Newer
Older
Dreamsturbia-Project-IADE-Unity3D / Assets / Scripts / AI / Navmesh / Conditions / OnDamageTaken.cs
@Rackday Rackday on 21 Aug 726 bytes Project Added
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. [CreateAssetMenu(menuName = "Finite State Machine/Condition/On Damage Taken")]
  5. public class OnDamageTaken : Condition
  6. {
  7. [SerializeField] private float distance;
  8. protected override bool Test(FiniteStateMachine fsm)
  9. {
  10. if (!fsm.monoDictionary.HasKey("hp")) fsm.monoDictionary.SetValue("hp", fsm.GetComponent<Health>());
  11. if(Vector3.Distance(fsm.transform.position, fsm.target.transform.position) < distance && (fsm.monoDictionary.GetValue("hp") as Health).gotHit)
  12. {
  13. (fsm.monoDictionary.GetValue("hp") as Health).gotHit = false;
  14. return true;
  15. }
  16. return false;
  17. }
  18. }