49 lines
1,005 B
C#
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();
|
|
}
|
|
}
|