- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- [CreateAssetMenu(menuName = "Finite State Machine/Condition/On Damage Taken")]
- public class OnDamageTaken : Condition
- {
- [SerializeField] private float distance;
- protected override bool Test(FiniteStateMachine fsm)
- {
- if (!fsm.monoDictionary.HasKey("hp")) fsm.monoDictionary.SetValue("hp", fsm.GetComponent<Health>());
- if(Vector3.Distance(fsm.transform.position, fsm.target.transform.position) < distance && (fsm.monoDictionary.GetValue("hp") as Health).gotHit)
- {
- (fsm.monoDictionary.GetValue("hp") as Health).gotHit = false;
- return true;
- }
- return false;
- }
-
- }