From 97da432c35b8c7aaf9dd2c39e2aa4b1f55f36065 Mon Sep 17 00:00:00 2001 From: chai Date: Wed, 27 Jan 2021 16:15:06 +0800 Subject: +behaviour designer --- .../AI/Conditionals/XAIConditionValue.cs | 216 +++++++++++++++++++++ 1 file changed, 216 insertions(+) create mode 100644 Client/Assets/Behavior Designer/AI/Conditionals/XAIConditionValue.cs (limited to 'Client/Assets/Behavior Designer/AI/Conditionals/XAIConditionValue.cs') diff --git a/Client/Assets/Behavior Designer/AI/Conditionals/XAIConditionValue.cs b/Client/Assets/Behavior Designer/AI/Conditionals/XAIConditionValue.cs new file mode 100644 index 00000000..6d998a81 --- /dev/null +++ b/Client/Assets/Behavior Designer/AI/Conditionals/XAIConditionValue.cs @@ -0,0 +1,216 @@ +using UnityEngine; +using BehaviorDesigner.Runtime.Tasks; +using BehaviorDesigner.Runtime; +using XUtliPoolLib; + +public class ValueHP : Conditional +{ + public int mAIArgMaxPercent; + public int mAIArgMinPercent; + + public override TaskStatus OnUpdate() + { + if (AIMgrUtil.GetAIMgrInterface().IsHPValue(transform, mAIArgMinPercent, mAIArgMaxPercent)) + return TaskStatus.Success; + else + return TaskStatus.Failure; + } +} + +public class ValueMP : Conditional +{ + public int mAIArgMaxPercent; + public int mAIArgMinPercent; + + public override TaskStatus OnUpdate() + { + if (AIMgrUtil.GetAIMgrInterface().IsMPValue(transform, mAIArgMinPercent, mAIArgMaxPercent)) + return TaskStatus.Success; + else + return TaskStatus.Failure; + } +} + +public class ValueFP : Conditional +{ + public int mAIArgMaxFP; + public int mAIArgMinFP; + + public override TaskStatus OnUpdate() + { + return TaskStatus.Success; + } +} + +public class ValueTarget : Conditional +{ + public SharedTransform mAIArgTarget; + + public override TaskStatus OnUpdate() + { + if (AIMgrUtil.GetAIMgrInterface().IsValid(mAIArgTarget.Value)) + return TaskStatus.Success; + else + { + AIMgrUtil.GetAIMgrInterface().ClearTarget(transform); + return TaskStatus.Failure; + } + } +} + +public class ValueDistance : Conditional +{ + public SharedTransform mAIArgTarget; + public SharedFloat mAIArgMaxDistance; + + public override TaskStatus OnUpdate() + { + if (mAIArgTarget.Value == null) + return TaskStatus.Failure; + + if ((transform.position - mAIArgTarget.Value.position).magnitude <= mAIArgMaxDistance.Value) + return TaskStatus.Success; + else + return TaskStatus.Failure; + } +} + +public class IsOppoCastingSkill : Conditional +{ + public override TaskStatus OnUpdate() + { + if (AIMgrUtil.GetAIMgrInterface().IsOppoCastingSkill(transform)) + return TaskStatus.Success; + else + return TaskStatus.Failure; + } +} + +public class IsHurtOppo : Conditional +{ + public override TaskStatus OnUpdate() + { + if (AIMgrUtil.GetAIMgrInterface().IsHurtOppo(transform)) + return TaskStatus.Success; + else + return TaskStatus.Failure; + } +} + +public class IsFixedInCd : Conditional +{ + public override TaskStatus OnUpdate() + { + if (AIMgrUtil.GetAIMgrInterface().IsFixedInCd(transform)) + return TaskStatus.Success; + else + return TaskStatus.Failure; + } +} + +public class IsWander : Conditional +{ + public override TaskStatus OnUpdate() + { + if (AIMgrUtil.GetAIMgrInterface().IsWander(transform)) + return TaskStatus.Success; + else + return TaskStatus.Failure; + } +} + +public class IsCastingSkill : Conditional +{ + public override TaskStatus OnUpdate() + { + if (AIMgrUtil.GetAIMgrInterface().IsCastSkill(transform.gameObject)) + return TaskStatus.Success; + else + return TaskStatus.Failure; + } +} + +public class IsFighting : Conditional +{ + public override TaskStatus OnUpdate() + { + if (AIMgrUtil.GetAIMgrInterface().IsFighting(transform)) + return TaskStatus.Success; + else + { + AIMgrUtil.GetAIMgrInterface().ClearTarget(transform); + return TaskStatus.Failure; + } + } +} + +public class IsSkillChoosed : Conditional +{ + public override TaskStatus OnUpdate() + { + if (AIMgrUtil.GetAIMgrInterface().IsSkillChoosed(transform)) + return TaskStatus.Success; + else + return TaskStatus.Failure; + } +} + +public class ConditionDist : Conditional +{ + public SharedTransform mAIArgTarget; + public SharedFloat mAIArgUpper; + public SharedFloat mAIArgLower; + + public override TaskStatus OnUpdate() + { + if (mAIArgTarget.Value == null) + return TaskStatus.Failure; + + float dist = (mAIArgTarget.Value.position - transform.position).magnitude; + + if (dist >= mAIArgLower.Value && dist <= mAIArgUpper.Value) + return TaskStatus.Success; + else + return TaskStatus.Failure; + } +} + +public class ConditionMonsterNum : Conditional +{ + public SharedInt mAIArgNum; + public int mAIArgMonsterId; + + public override TaskStatus OnUpdate() + { + return TaskStatus.Success; + } +} + +public class ConditionPlayerNum : Conditional +{ + + public int mAIArgPlayerBaseProf; + public int mAIArgPlayerDetailProf; + public int mAIArgWay; + public Vector3 mAIArgCenter; + public float mAIArgRadius; + public SharedInt mAIArgNum; + + public override TaskStatus OnUpdate() + { + int playerprof = AIMgrUtil.GetAIMgrInterface().GetPlayerProf(); + + if (mAIArgPlayerBaseProf == 0 && mAIArgPlayerDetailProf == 0) + mAIArgNum.Value = 1; + else + { + if (mAIArgPlayerBaseProf != 0 && playerprof % 10 == mAIArgPlayerBaseProf) + mAIArgNum.Value = 1; + + if (mAIArgPlayerDetailProf != 0 && playerprof == mAIArgPlayerDetailProf) + mAIArgNum.Value = 1; + } + + return TaskStatus.Success; + } +} \ No newline at end of file -- cgit v1.1-26-g67d0