using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.Events; public class Mana : MonoBehaviour { public float mana = 100; [SerializeField] private float regenRate; public bool instaRegen; public float maxMana = 100; public UnityEvent<float> onManaUpdated; void Update() { if (mana < maxMana) { float v = regenRate * Time.deltaTime; mana += v; onManaUpdated.Invoke(v); } if (mana > maxMana) { mana = maxMana; } if (mana < 0) mana = 0; if (instaRegen) { mana = maxMana; } } public void Consume(float cost) { mana -= cost; onManaUpdated.Invoke(-cost); } }