MarisaMagicalStudy/Assets/Scripts/Abilities/AbilityHotbarIcon.cs

50 lines
1.2 KiB
C#

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);
}
}