Newer
Older
Dreamsturbia-Project-IADE-Unity3D / Assets / Scripts / AI / FSM / Actions / RecoveryAction.cs
@Rackday Rackday on 21 Aug 857 bytes Project Added
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. [CreateAssetMenu(menuName = "Finite State Machine/Action/Recovery")]
  5. public class RecoveryAction : Action
  6. {
  7. [SerializeField] private float regenerationRate;
  8. public override void Act(FiniteStateMachine fsm)
  9. {
  10. if (fsm.booleanDictionary.HasKey("escaping")) fsm.booleanDictionary.SetValue("escaping", false);
  11. if (!fsm.monoDictionary.HasKey("hp")) fsm.monoDictionary.SetValue("hp", fsm.GetComponent<Health>());
  12. if((fsm.monoDictionary.GetValue("hp") as Health).hp < 100)
  13. {
  14. (fsm.monoDictionary.GetValue("hp") as Health).hp += regenerationRate * Time.deltaTime;
  15. (fsm.monoDictionary.GetValue("hp") as Health).regenerating = true;
  16. }
  17. else (fsm.monoDictionary.GetValue("hp") as Health).hp = 100;
  18. }
  19. }