From 97da432c35b8c7aaf9dd2c39e2aa4b1f55f36065 Mon Sep 17 00:00:00 2001 From: chai Date: Wed, 27 Jan 2021 16:15:06 +0800 Subject: +behaviour designer --- .../AI/Actions/XAIActionTarget.cs | 236 +++++++++++++++++++++ 1 file changed, 236 insertions(+) create mode 100644 Client/Assets/Behavior Designer/AI/Actions/XAIActionTarget.cs (limited to 'Client/Assets/Behavior Designer/AI/Actions/XAIActionTarget.cs') diff --git a/Client/Assets/Behavior Designer/AI/Actions/XAIActionTarget.cs b/Client/Assets/Behavior Designer/AI/Actions/XAIActionTarget.cs new file mode 100644 index 00000000..67baf939 --- /dev/null +++ b/Client/Assets/Behavior Designer/AI/Actions/XAIActionTarget.cs @@ -0,0 +1,236 @@ +using UnityEngine; +using System.Collections.Generic; +using BehaviorDesigner.Runtime; +using BehaviorDesigner.Runtime.Tasks; + +public class FindTargetByDistance : Action +{ + public SharedFloat mAIArgDistance; + public bool mAIArgFilterImmortal; + public float mAIArgAngle; + public float mAIArgDelta; + public int mAIArgTargetType; + public override TaskStatus OnUpdate() + { + if (AIMgrUtil.GetAIMgrInterface().FindTargetByDistance(transform.gameObject, mAIArgDistance.Value, mAIArgFilterImmortal, mAIArgAngle, mAIArgDelta, mAIArgTargetType)) + return TaskStatus.Success; + else + return TaskStatus.Failure; + } +} + +public class FindTargetByHitLevel : Action +{ + //public SharedFloat mAIArgDistance; + public bool mAIArgFilterImmortal; + public override TaskStatus OnUpdate() + { + if (AIMgrUtil.GetAIMgrInterface().FindTargetByHitLevel(transform.gameObject, mAIArgFilterImmortal)) + return TaskStatus.Success; + else + return TaskStatus.Failure; + } +} + +public class FindTargetByNonImmortal : Action +{ + public override TaskStatus OnUpdate() + { + if (AIMgrUtil.GetAIMgrInterface().FindTargetByNonImmortal(transform.gameObject)) + return TaskStatus.Success; + else + return TaskStatus.Failure; + } +} + +public class TargetByHatredList : Action +{ + public SharedFloat mAIArgDistance; + public bool mAIArgFilterImmortal; + public override TaskStatus OnUpdate() + { + if (AIMgrUtil.GetAIMgrInterface().FindTargetByHartedList(transform.gameObject, mAIArgFilterImmortal)) + return TaskStatus.Success; + else + return TaskStatus.Failure; + } +} + +public class DoSelectByUID : Action +{ + public SharedString mAIArgUID; +} + +public class DoSelectRoleByIndex : Action +{ + public SharedInt mAIArgIndex; +} + +public class FindNavPath : Action +{ + public override TaskStatus OnUpdate() + { + if (AIMgrUtil.GetAIMgrInterface().FindNavPath(transform.gameObject)) + return TaskStatus.Success; + else + return TaskStatus.Failure; + } +} + +public class ResetTargets : Action +{ + public override TaskStatus OnUpdate() + { + if (AIMgrUtil.GetAIMgrInterface().ResetTargets(transform.gameObject)) + return TaskStatus.Success; + else + return TaskStatus.Failure; + } +} + +public class DoSelectNearest : Action +{ + public override TaskStatus OnUpdate() + { + if (AIMgrUtil.GetAIMgrInterface().DoSelectNearest(transform.gameObject)) + return TaskStatus.Success; + else + return TaskStatus.Failure; + } +} + + +public class DoSelectFarthest : Action +{ + public override TaskStatus OnUpdate() + { + if (AIMgrUtil.GetAIMgrInterface().DoSelectFarthest(transform.gameObject)) + return TaskStatus.Success; + else + return TaskStatus.Failure; + } +} + +public class DoSelectRandomTarget : Action +{ + public override TaskStatus OnUpdate() + { + if (AIMgrUtil.GetAIMgrInterface().DoSelectRandomTarget(transform.gameObject)) + return TaskStatus.Success; + else + return TaskStatus.Failure; + } +} + +public class CalDistance : Action +{ + public SharedTransform mAIArgObject; + public SharedFloat mAIArgDistance; + public SharedVector3 mAIArgDestPoint; + + + public override TaskStatus OnUpdate() + { + //if (mAIArgDistance.Value == null) + // return TaskStatus.Failure; + + if (mAIArgObject.Value != null) + { + mAIArgDistance.Value = (transform.position - mAIArgObject.Value.position).magnitude; + } + else + { + mAIArgDistance.Value = (transform.position - mAIArgDestPoint.Value).magnitude; + } + + + return TaskStatus.Success; + } +} + +public class SelectMoveTargetById : Action +{ + public SharedTransform mAIArgMoveTarget; + public int mAIArgObjectId; + + public override TaskStatus OnUpdate() + { + Transform moveTarget = AIMgrUtil.GetAIMgrInterface().SelectMoveTargetById(transform.gameObject, mAIArgObjectId); + + if (moveTarget == null) + return TaskStatus.Failure; + else + { + mAIArgMoveTarget.Value = moveTarget; + return TaskStatus.Success; + } + } +} + +public class SelectBuffTarget : Action +{ + //public SharedVector3 mAIArgBuffTarget; + public SharedTransform mAIArgBuffTarget; + + public override TaskStatus OnUpdate() + { + Transform buffTarget = AIMgrUtil.GetAIMgrInterface().SelectBuffTarget(transform.gameObject); + + if (buffTarget == null) + { + return TaskStatus.Failure; + } + else + { + mAIArgBuffTarget.Value = buffTarget; + return TaskStatus.Success; + } + } +} + +public class SelectItemTarget : Action +{ + //public SharedVector3 mAIArgBuffTarget; + public SharedTransform mAIArgItemTarget; + + public override TaskStatus OnUpdate() + { + Transform itemTarget = AIMgrUtil.GetAIMgrInterface().SelectItemTarget(transform.gameObject); + + if (itemTarget == null) + return TaskStatus.Failure; + else + { + mAIArgItemTarget.Value = itemTarget; + return TaskStatus.Success; + } + } +} + +public class SelectTargetBySkillCircle : Action +{ + public override TaskStatus OnUpdate() + { + if (AIMgrUtil.GetAIMgrInterface().SelectTargetBySkillCircle(transform.gameObject)) + return TaskStatus.Success; + else + return TaskStatus.Failure; + } +} + +public class SelectNonHartedList : Action +{ + public override TaskStatus OnUpdate() + { + return TaskStatus.Success; + } +} + +public class ResetHartedList : Action +{ + public override TaskStatus OnUpdate() + { + AIMgrUtil.GetAIMgrInterface().ResetHartedList(transform.gameObject); + return TaskStatus.Success; + } +} -- cgit v1.1-26-g67d0