using System; using UnityEngine; namespace Abilities { public class ArmorAbility : MonoBehaviour { public event Action MarkAbilityUsed; public event Action ArmorAbilityGained; [SerializeField] private Player player; [SerializeField] private int maxUses; private int currentUses; private bool _abilityAcive; private void OnEnable() { ChestRewardSelection.DiamondAndLifeSelected += HandleAbilityAcitvated; player.DamageTaken += HandleDamageDealt; } private void HandleDamageDealt(int damage) { for (int i = 0; i < damage; i++) { if (_abilityAcive) { player.Heal(1); currentUses--; MarkAbilityUsed?.Invoke(); if (currentUses < 1) { _abilityAcive = false; } } } } private void HandleAbilityAcitvated() { ArmorAbilityGained?.Invoke(); _abilityAcive = true; currentUses = maxUses; } } }