From fee35151213939d61d2dbd9d6a0ba71ac93b91cf Mon Sep 17 00:00:00 2001 From: chai Date: Sat, 17 Oct 2020 15:39:34 +0800 Subject: =?UTF-8?q?+=20=E8=BF=9E=E5=87=BB=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/Test/SaionjiScript_Ability.cs | 55 ++++++++++++++++++++++++++-- 1 file changed, 52 insertions(+), 3 deletions(-) (limited to 'Assets/Scripts/Test/SaionjiScript_Ability.cs') diff --git a/Assets/Scripts/Test/SaionjiScript_Ability.cs b/Assets/Scripts/Test/SaionjiScript_Ability.cs index 4b8f4693..1b248751 100644 --- a/Assets/Scripts/Test/SaionjiScript_Ability.cs +++ b/Assets/Scripts/Test/SaionjiScript_Ability.cs @@ -24,10 +24,59 @@ public partial class SaionjiScript : MonoBehaviour /// void SetupAbilities() { - IdleAbility idleAbility = new IdleAbility(Anim_Idle); + IdleAbility idle = new IdleAbility(animator, Anim_Idle); + MoveAbility move = new MoveAbility(animator, Anim_Run); + AttackAbility attk1 = new AttackAbility(animator, Anim_LightAttack1); + AttackAbility attk2 = new AttackAbility(animator, Anim_LightAttack2); + AttackAbility attk3 = new AttackAbility(animator, Anim_LightAttack3); + AttackAbility attk4 = new AttackAbility(animator, Anim_LightAttack4); + AttackAbility attk5 = new AttackAbility(animator, Anim_LightAttack5); + ActionSwitchAbility switchToMove = new ActionSwitchAbility(m_AbilitySystem, move); + ActionSwitchAbility switchToIdle = new ActionSwitchAbility(m_AbilitySystem, idle); + ActionSwitchAbility switchToAttk1 = new ActionSwitchAbility(m_AbilitySystem, attk1); + ActionSwitchAbility switchToAttk2 = new ActionSwitchAbility(m_AbilitySystem, attk2); + ActionSwitchAbility switchToAttk3 = new ActionSwitchAbility(m_AbilitySystem, attk3); + ActionSwitchAbility switchToAttk4 = new ActionSwitchAbility(m_AbilitySystem, attk4); + ActionSwitchAbility switchToAttk5 = new ActionSwitchAbility(m_AbilitySystem, attk5); - m_AbilitySystem.AddAbility(idleAbility); - } + ConditionCommand condRightCmd = new ConditionCommand(GamepadButton.Right); + ConditionNoMoveButtonHold condNoMoveButtonHold = new ConditionNoMoveButtonHold(); + ConditionCommand condCircleCmd = new ConditionCommand(GamepadButton.Circle); + + Trigger trigger = null; + + trigger = new Trigger(condRightCmd, switchToMove); + idle.AddTrigger(trigger); + trigger = new Trigger(condCircleCmd, switchToAttk1); + idle.AddTrigger(trigger); + + trigger = new Trigger(condNoMoveButtonHold, switchToIdle); + move.AddTrigger(trigger); + trigger = new Trigger(condCircleCmd, switchToAttk1); + move.AddTrigger(trigger); + + ConditionAnimAtEnd condAttk1AtEnd = new ConditionAnimAtEnd(animator, Anim_LightAttack1); + trigger = new Trigger(And(condAttk1AtEnd, condCircleCmd), switchToAttk2); + attk1.AddTrigger(trigger); + + ConditionAnimAtEnd condAttk2AtEnd = new ConditionAnimAtEnd(animator, Anim_LightAttack2); + trigger = new Trigger(And(condAttk2AtEnd, condCircleCmd), switchToAttk3); + attk2.AddTrigger(trigger); + + ConditionAnimAtEnd condAttk3AtEnd = new ConditionAnimAtEnd(animator, Anim_LightAttack3); + trigger = new Trigger(And(condAttk3AtEnd, condCircleCmd), switchToAttk4); + attk3.AddTrigger(trigger); + + ConditionAnimAtEnd condAttk4AtEnd = new ConditionAnimAtEnd(animator, Anim_LightAttack4); + trigger = new Trigger(And(condAttk4AtEnd, condCircleCmd), switchToAttk5); + attk4.AddTrigger(trigger); + + ConditionAnimAtEnd condAttk5AtEnd = new ConditionAnimAtEnd(animator, Anim_LightAttack5); + trigger = new Trigger(condAttk5AtEnd, switchToIdle); + attk5.AddTrigger(trigger); + + m_AbilitySystem.ForceStart(idle); + } } \ No newline at end of file -- cgit v1.1-26-g67d0