diff options
Diffstat (limited to 'Client/Assets/Behavior Designer/AI/Conditionals')
4 files changed, 404 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 diff --git a/Client/Assets/Behavior Designer/AI/Conditionals/XAIConditionStatus.cs.meta b/Client/Assets/Behavior Designer/AI/Conditionals/XAIConditionStatus.cs.meta new file mode 100644 index 00000000..f62f1a28 --- /dev/null +++ b/Client/Assets/Behavior Designer/AI/Conditionals/XAIConditionStatus.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2
+guid: 23511b3fb9bca1841821dc6c4649523f
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
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 diff --git a/Client/Assets/Behavior Designer/AI/Conditionals/XAIConditionValue.cs.meta b/Client/Assets/Behavior Designer/AI/Conditionals/XAIConditionValue.cs.meta new file mode 100644 index 00000000..cdccdc95 --- /dev/null +++ b/Client/Assets/Behavior Designer/AI/Conditionals/XAIConditionValue.cs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2
+guid: 53441264acbdd0542b20476fcdef876c
+MonoImporter:
+ serializedVersion: 2
+ defaultReferences: []
+ executionOrder: 0
+ icon: {instanceID: 0}
+ userData:
|