using System.Collections.Generic;
using TMPro;
using UnityEngine;

public class PotionHandler:MonoBehaviour
{
    // Start is called once before the first execution of Update after the MonoBehaviour is created

    private Dictionary<PotionType, int> potions = new Dictionary<PotionType, int>();
    [SerializeField] private TMP_Text textMeshProUGUI;
    [SerializeField] private PotionHandler.PotionType potionType;

    public enum PotionType
    {
        HealthSmall,
        HealthBig,
        Mana,
        None
    }

    private void Awake()
    {
        foreach (PotionType type in System.Enum.GetValues(typeof(PotionType)))
        {
            potions.Add(type, 0);
        }

        textMeshProUGUI.text = potions[potionType].ToString();

        // Register this handler with the PlayerSkillTree
        PlayerSkillTree.Instance.RegisterPotionHandler(potionType, this);
    }

    public void AddPotion(PotionType type, int amount = 1)
    {
        potions[type] += amount;
        
        if(type == potionType)
        {
            textMeshProUGUI.text= potions[type].ToString();
        }

        Debug.Log("Potion text is: " + textMeshProUGUI.text);
    }

    public bool UsePotion(PotionType type, int amount = 1)
    {
        if(potions[type] == 0)
            return false;
        

        potions[type] -= amount;
        Debug.Log($"Amount of potions of type {type} is: {potions[type]}");

        if (type == potionType)
        {
            textMeshProUGUI.text = potions[type].ToString();
        }

        return true;
    }

    public int GetAmount(PotionType type)
    {
        return potions[type];
    }

    public bool IsEmpty(PotionType type)
    {
        return GetAmount(type) == 0;
    }
}
