using System.Collections; using System.Collections.Generic; using UnityEngine; [CreateAssetMenu(menuName = "Finite State Machine/Action/Recovery")] public class RecoveryAction : Action { [SerializeField] private float regenerationRate; public override void Act(FiniteStateMachine fsm) { if (fsm.booleanDictionary.HasKey("escaping")) fsm.booleanDictionary.SetValue("escaping", false); if (!fsm.monoDictionary.HasKey("hp")) fsm.monoDictionary.SetValue("hp", fsm.GetComponent<Health>()); if((fsm.monoDictionary.GetValue("hp") as Health).hp < 100) { (fsm.monoDictionary.GetValue("hp") as Health).hp += regenerationRate * Time.deltaTime; (fsm.monoDictionary.GetValue("hp") as Health).regenerating = true; } else (fsm.monoDictionary.GetValue("hp") as Health).hp = 100; } }