
using TMPro;
using UnityEngine;
using UnityEngine.UI;

namespace Gyvr.Mythril2D
{
    public class UISkillEntryDetail : MonoBehaviour
    {
        // Inspector Settings
        [Header("References")]
        [SerializeField] private GameObject m_skillDetailsBox = null;
        [SerializeField] private Image m_skillIcon = null;
        [SerializeField] private TextMeshProUGUI m_skillName = null;
        [SerializeField] private TextMeshProUGUI m_skillDescription = null;

        private void Start()
        {
            m_skillDetailsBox.SetActive(false);

            GameManager.NotificationSystem.skillDetailsOpened.AddListener(OnDetailsOpened);
            GameManager.NotificationSystem.skillDetailsClosed.AddListener(OnDetailsClosed);
        }

        private void OnDetailsOpened(Skill skill)
        {
            if (skill)
            {
                m_skillDetailsBox.SetActive(true);
                m_skillIcon.sprite = skill.icon;
                m_skillName.text = skill.displayName;
                m_skillDescription.text = skill.description;

                if (GameManager.Player.HasSkill(skill))
                {
                    m_skillDescription.text += "<br> (SKILL LEARNED) ";
                }
                else if (skill.hasConditions)
                {
                    m_skillDescription.text += "<br> Requires: " + skill.GenerateInlineDescription();
                }
            }
            else
            {
                OnDetailsClosed();
            }
        }

        private void OnDetailsClosed()
        {
            m_skillDetailsBox.SetActive(false);
        }
    }
}
