using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems; public class ModifierHelper : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler { [SerializeField] private GameObject mod_Helper_Prefab; private GameObject activeHelper; private Modifier modifier; private int turnsLeft; public string ModifierName { get => modifier.Name; } public void CallTurnDecrement() { --turnsLeft; if (turnsLeft is 0) Destroy(this.gameObject); } public void InjectModifier(Modifier m, int turnsActive) { modifier = m; turnsLeft = turnsActive; } public void OnPointerEnter(PointerEventData eventData) { if (activeHelper == null) { activeHelper = Instantiate(mod_Helper_Prefab); activeHelper.GetComponent<HelperUI>().InjectModifierInfo(modifier, turnsLeft); } } public void OnPointerExit(PointerEventData eventData) { if (activeHelper != null) DestroyImmediate(activeHelper); } private void OnDisable() { if (activeHelper != null) DestroyImmediate(activeHelper); } private void OnDestroy() { if (activeHelper != null) DestroyImmediate(activeHelper); } public void DestroyModifierEarly() => Destroy(this.gameObject); }