using System; using TMPro; using UnityEngine; using UnityEngine.EventSystems; public class AbilityHotbarIcon : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler { [SerializeField] private Transform cooldownBar; [SerializeField] private TextMeshProUGUI text; private bool onCooldown; private PlayerAbility thisAbility; [SerializeField] private FloatingAbilityInfo infoUI; private void Update() { if (onCooldown) { cooldownBar.localScale = new Vector3(Math.Clamp(1 - thisAbility.currentCooldown/thisAbility.cooldown, 0, 1), 1, 1); if (thisAbility.currentCooldown <= 0) { onCooldown = false; } } } public void UpdateCooldown() { if (thisAbility.currentCooldown > 0) { onCooldown = true; } } public void UpdateAbility(PlayerAbility ability) { thisAbility = ability; text.text = thisAbility.abilityName; } public void OnPointerEnter(PointerEventData eventData) { infoUI.gameObject.SetActive(true); infoUI.ShowInfo(thisAbility); } public void OnPointerExit(PointerEventData eventData) { infoUI.gameObject.SetActive(false); } }