Encounter / Assets / Scripts / GUIHandlers / SkillGUI.cs
SkillGUI.cs
Raw
using System;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;

/// <summary>
/// Handles visual instancing of the Skill GUI Helper
/// </summary>
public class SkillGUI : MonoBehaviour
{
    [SerializeField] private Image skillSpriteField;
    [SerializeField] private TextMeshProUGUI skillNameField;
    [SerializeField] private TextMeshProUGUI skillCostField;
    [SerializeField] private TextMeshProUGUI skillDescriptionField;
    [SerializeField] private TextMeshProUGUI requirementFields;

    public void InjectData(SkillSO skillData)
    {
        skillSpriteField.sprite = skillData.SkillSprite;
        skillNameField.text = skillData.SkillName;

        string pointText = skillData.SkillPointCost is 1 ? "Point" : "Points";

        skillCostField.text = $"Cost\n{skillData.SkillPointCost} {pointText}";
        skillDescriptionField.text = skillData.SkillDescription;

        requirementFields.text = "Requirements\n";
        for (int i = 0; i < skillData.RequiredSkills.Count; ++i)
        {
            if (i == skillData.RequiredSkills.Count - 1)
                requirementFields.text += $"- {skillData.RequiredSkills[i].SkillName}";
            else
                requirementFields.text += $"- {skillData.RequiredSkills[i].SkillName}\n";
        }
    }
}