PuzzleGame/PuzzleGameProject/Assets/Scripts/Abilities/TorchAbility.cs
2025-02-27 15:52:40 +01:00

49 lines
1,005 B
C#

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