diff options
author | chai <chaifix@163.com> | 2021-01-27 16:15:06 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2021-01-27 16:15:06 +0800 |
commit | 97da432c35b8c7aaf9dd2c39e2aa4b1f55f36065 (patch) | |
tree | d9b1db5908a3a030c529e230386fe01062923b09 /Client/Assets/Behavior Designer/AI/Conditionals/XAIConditionStatus.cs | |
parent | 1fe4ffba72f56ccc6a89d1896142425c666887d4 (diff) |
+behaviour designer
Diffstat (limited to 'Client/Assets/Behavior Designer/AI/Conditionals/XAIConditionStatus.cs')
-rw-r--r-- | Client/Assets/Behavior Designer/AI/Conditionals/XAIConditionStatus.cs | 172 |
1 files changed, 172 insertions, 0 deletions
diff --git a/Client/Assets/Behavior Designer/AI/Conditionals/XAIConditionStatus.cs b/Client/Assets/Behavior Designer/AI/Conditionals/XAIConditionStatus.cs new file mode 100644 index 00000000..bf5d06d0 --- /dev/null +++ b/Client/Assets/Behavior Designer/AI/Conditionals/XAIConditionStatus.cs @@ -0,0 +1,172 @@ +using UnityEngine;
+using BehaviorDesigner.Runtime.Tasks;
+using BehaviorDesigner.Runtime;
+
+internal enum XStateDefine
+{
+ XState_Idle = 0,
+ XState_Move,
+ XState_Jump,
+ XState_Fall,
+ XState_Freeze,
+ XState_BeHit,
+ XState_Death,
+ XState_Charge,
+}
+
+public enum XQTEState
+{
+ None = 0,
+ HitBackPresent,
+ HitBackStraight,
+ HitBackGetup,
+ HitFlyPresent,
+ HitFlyLand,
+ HitFlyStraight,
+ HitFlyGetup,
+ HitRollPresent,
+ HitRollStraight,
+ HitRollGetup,
+ CanDash = 20,
+ DashState,
+ ChargeState,
+ DashAttackState,
+ StayInAir,
+ firedash,
+ onelight,
+ Any = 1000,
+}
+
+public class StatusIdle : Conditional
+{
+ public override TaskStatus OnUpdate()
+ {
+ if (AIMgrUtil.GetAIMgrInterface().IsAtState(transform.gameObject, (int)XStateDefine.XState_Idle))
+ return TaskStatus.Success;
+ else
+ return TaskStatus.Failure;
+ }
+}
+
+public class StatusMove : Conditional
+{
+ public override TaskStatus OnUpdate()
+ {
+ if (AIMgrUtil.GetAIMgrInterface().IsAtState(transform.gameObject, (int)XStateDefine.XState_Move))
+ return TaskStatus.Success;
+ else
+ return TaskStatus.Failure;
+ }
+}
+
+public class StatusRotate : Conditional
+{
+ public override TaskStatus OnUpdate()
+ {
+ if (AIMgrUtil.GetAIMgrInterface().IsRotate(transform.gameObject))
+ return TaskStatus.Success;
+ else
+ return TaskStatus.Failure;
+ }
+}
+
+public class StatusBehit : Conditional
+{
+ public override TaskStatus OnUpdate()
+ {
+ if (AIMgrUtil.GetAIMgrInterface().IsAtState(transform.gameObject, (int)XStateDefine.XState_BeHit))
+ return TaskStatus.Success;
+ else
+ return TaskStatus.Failure;
+ }
+}
+
+public class StatusDeath : Conditional
+{
+ public override TaskStatus OnUpdate()
+ {
+ if (AIMgrUtil.GetAIMgrInterface().IsAtState(transform.gameObject, (int)XStateDefine.XState_Death))
+ return TaskStatus.Success;
+ else
+ return TaskStatus.Failure;
+ }
+}
+
+public class StatusFreeze : Conditional
+{
+ public override TaskStatus OnUpdate()
+ {
+ if (AIMgrUtil.GetAIMgrInterface().IsAtState(transform.gameObject, (int)XStateDefine.XState_Freeze))
+ return TaskStatus.Success;
+ else
+ return TaskStatus.Failure;
+ }
+}
+
+public class StatusSkill : Conditional
+{
+ public override TaskStatus OnUpdate()
+ {
+ if (AIMgrUtil.GetAIMgrInterface().IsCastSkill(transform.gameObject))
+ return TaskStatus.Success;
+ else
+ return TaskStatus.Failure;
+ }
+}
+
+public class StatusWoozy : Conditional
+{
+ public override TaskStatus OnUpdate()
+ {
+ if (AIMgrUtil.GetAIMgrInterface().IsWoozy(transform.gameObject))
+ return TaskStatus.Success;
+ else
+ return TaskStatus.Failure;
+ }
+}
+
+public class IsQTEState : Conditional
+{
+ public XQTEState mAIArgQTEState;
+ public override TaskStatus OnUpdate()
+ {
+ if (AIMgrUtil.GetAIMgrInterface().HasQTE(transform.gameObject, (int)mAIArgQTEState))
+ return TaskStatus.Success;
+ else
+ return TaskStatus.Failure;
+ }
+}
+
+public class TargetQTEState : Conditional
+{
+ public SharedTransform mAIArgTarget;
+ public XQTEState mAIArgQTEState;
+
+ public override TaskStatus OnUpdate()
+ {
+ if (mAIArgTarget.Value == null)
+ return TaskStatus.Failure;
+
+ if (AIMgrUtil.GetAIMgrInterface().HasQTE(mAIArgTarget.Value.gameObject, (int)mAIArgQTEState))
+ return TaskStatus.Success;
+ else
+ return TaskStatus.Failure;
+ }
+
+}
+
+public class IsTargetImmortal : Conditional
+{
+ public SharedTransform mAIArgTarget;
+
+ public override TaskStatus OnUpdate()
+ {
+ if (mAIArgTarget.Value == null)
+ return TaskStatus.Failure;
+ ulong id = ulong.Parse(mAIArgTarget.Value.gameObject.name);
+ if (AIMgrUtil.GetAIMgrInterface().IsTargetImmortal(id))
+ return TaskStatus.Success;
+ else
+ return TaskStatus.Failure;
+ }
+}
\ No newline at end of file |