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

66 lines
1.6 KiB
C#

using System;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
namespace Abilities
{
public class StartingBlackDieAbility : MonoBehaviour
{
public static event Action AbilitySelected;
public event Action UnmarkUseUsedEvent;
public event Action MarkUseUsedEvent;
private int _uses = 3;
private GameObject[] _usesUsed;
private bool _canClick;
protected virtual void OnEnable() {
GameManager.StateChanged += HandleStateChanged;
}
protected virtual void OnDisable() {
GameManager.StateChanged -= HandleStateChanged;
}
public void UseClicked() {
if (!_canClick) return;
if (_uses > 0)
{
AbilitySelected?.Invoke();
MarkUseUsed();
_uses -= 1;
}
_canClick = false;
}
private void MarkUseUsed() {
MarkUseUsedEvent?.Invoke();
}
private void UnmarkUseUsed() {
UnmarkUseUsedEvent?.Invoke();
}
public void AbilitySelectedButNotUsed() {
UnmarkUseUsedEvent?.Invoke();
_uses += 1;
}
private void HandleStateChanged(GameState state) {
switch (state)
{
case GameState.PickDiceOne:
case GameState.PickDiceTwo:
_canClick = true;
break;
default:
_canClick = false;
break;
}
}
}
}