using System; using TMPro; using UnityEngine; using UnityEngine.UI; public class TorchAbility : MonoBehaviour { public static event Action TorchAbilityUsed; public event Action AbilityGained; private int _uses = 2; private bool _canClick; private void OnEnable() { GameManager.StateChanged += HandleStateChanged; ChestRewardSelection.TorchAbilitySelected += HandleGainedTorchAbility; } private void OnDisable() { GameManager.StateChanged -= HandleStateChanged; ChestRewardSelection.TorchAbilitySelected -= HandleGainedTorchAbility; } public void UseClicked() { if (!_canClick) return; if (_uses > 0) { TorchAbilityUsed?.Invoke(); _uses -= 1; } _canClick = false; } private void HandleStateChanged(GameState state) { _canClick = true; } private void HandleGainedTorchAbility() { AbilityGained?.Invoke(); } }