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/XAIActionCastSkill.cs | 166 +++++++++++++++++++++ 1 file changed, 166 insertions(+) create mode 100644 Client/Assets/Behavior Designer/AI/Actions/XAIActionCastSkill.cs (limited to 'Client/Assets/Behavior Designer/AI/Actions/XAIActionCastSkill.cs') diff --git a/Client/Assets/Behavior Designer/AI/Actions/XAIActionCastSkill.cs b/Client/Assets/Behavior Designer/AI/Actions/XAIActionCastSkill.cs new file mode 100644 index 00000000..9db35f96 --- /dev/null +++ b/Client/Assets/Behavior Designer/AI/Actions/XAIActionCastSkill.cs @@ -0,0 +1,166 @@ +using UnityEngine; +using System.Collections.Generic; +using BehaviorDesigner.Runtime; +using BehaviorDesigner.Runtime.Tasks; + +public enum ComboSkillType +{ + StartSkill, + ComboSkill, +} + +public class PhysicalAttack : Action +{ + public SharedTransform mAIArgTarget; + + public override TaskStatus OnUpdate() + { + if (mAIArgTarget.Value == null) + return TaskStatus.Failure; + + if (AIMgrUtil.GetAIMgrInterface().TryCastPhysicalSkill(transform.gameObject, mAIArgTarget.Value.gameObject)) + return TaskStatus.Success; + else + return TaskStatus.Failure; + } +} + +public class TryCastQTE : Action +{ + public override TaskStatus OnUpdate() + { + if (AIMgrUtil.GetAIMgrInterface().CastQTESkill(transform.gameObject)) + return TaskStatus.Success; + else + return TaskStatus.Failure; + } +} + +public class CastDash : Action +{ + public override TaskStatus OnUpdate() + { + if (AIMgrUtil.GetAIMgrInterface().CastDashSkill(transform.gameObject)) + return TaskStatus.Success; + else + return TaskStatus.Failure; + } +} + +public class CastStartSkill : Action +{ + public SharedTransform mAIArgTarget; + public override TaskStatus OnUpdate() + { + return TaskStatus.Failure; + } +} + +public class CastNextSkill : Action +{ + public SharedTransform mAIArgTarget; + public override TaskStatus OnUpdate() + { + return TaskStatus.Failure; + } +} + +public class FilterSkill : Action +{ + public SharedTransform mAIArgTarget; + //public bool mAIArgUseInstall; + public bool mAIArgUseMP; + public bool mAIArgUseName; + public bool mAIArgUseHP; + public bool mAIArgUseCoolDown; + public bool mAIArgUseAttackField; + public bool mAIArgUseCombo; + public bool mAIArgUseInstall = false; + public ComboSkillType mAIArgSkillType; + public string mAIArgSkillName; + public bool mAIArgDetectAllPlayInAttackField; + public int mAIArgMaxSkillNum; + + public override TaskStatus OnUpdate() + { + XUtliPoolLib.FilterSkillArg skillArg = new XUtliPoolLib.FilterSkillArg(); + skillArg.mAIArgTarget = mAIArgTarget.Value; + skillArg.mAIArgUseMP = mAIArgUseMP; + skillArg.mAIArgUseName = mAIArgUseName; + skillArg.mAIArgUseHP = mAIArgUseHP; + skillArg.mAIArgUseCoolDown = mAIArgUseCoolDown; + skillArg.mAIArgUseAttackField = mAIArgUseAttackField; + skillArg.mAIArgUseCombo = mAIArgUseCombo; + skillArg.mAIArgUseInstall = mAIArgUseInstall; + skillArg.mAIArgSkillType = (int)mAIArgSkillType; + skillArg.mAIArgSkillName = mAIArgSkillName; + skillArg.mAIArgDetectAllPlayInAttackField = mAIArgDetectAllPlayInAttackField; + skillArg.mAIArgMaxSkillNum = mAIArgMaxSkillNum; + + if (AIMgrUtil.GetAIMgrInterface().SelectSkill(transform.gameObject, skillArg)) + return TaskStatus.Success; + else + return TaskStatus.Failure; + } +} + +public class DoSelectSkillInOrder : Action +{ + public override TaskStatus OnUpdate() + { + if (AIMgrUtil.GetAIMgrInterface().DoSelectInOrder(transform.gameObject)) + return TaskStatus.Success; + else + return TaskStatus.Failure; + } +} + +public class DoSelectSkillRandom : Action +{ + public override TaskStatus OnUpdate() + { + if (AIMgrUtil.GetAIMgrInterface().DoSelectRandom(transform.gameObject)) + return TaskStatus.Success; + else + return TaskStatus.Failure; + } +} + +public class DoCastSkill : Action +{ + public SharedTransform mAIArgTarget; + public override TaskStatus OnUpdate() + { + if (mAIArgTarget.Value == null) + { + if (AIMgrUtil.GetAIMgrInterface().DoCastSkill(transform.gameObject, null)) + return TaskStatus.Success; + else + return TaskStatus.Failure; + } + else + { + if (AIMgrUtil.GetAIMgrInterface().DoCastSkill(transform.gameObject, mAIArgTarget.Value.gameObject)) + return TaskStatus.Success; + else + return TaskStatus.Failure; + } + } +} + +public class StopCastingSkill : Action +{ + public override TaskStatus OnUpdate() + { + if (AIMgrUtil.GetAIMgrInterface().StopCastingSkill(transform.gameObject)) + return TaskStatus.Success; + else + return TaskStatus.Failure; + } +} + +public class IsInSkillAttackField : Action +{ + public SharedString mAIArgUID; + public SharedInt mAIArgSkillID; +} \ No newline at end of file -- cgit v1.1-26-g67d0