Newer
Older
Dreamsturbia-Project-IADE-Unity3D / Assets / Scripts / AI / FSM / Actions / RecoveryAction.cs
@Rackday Rackday on 21 Aug 857 bytes Project Added
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;

    }
}