From 3e8ab8f4b98086e9a1a4b2fd1221e86e9abceea4 Mon Sep 17 00:00:00 2001 From: chai Date: Sun, 18 Oct 2020 08:22:25 +0800 Subject: +gamepad +superkick combo --- Assets/Scripts/Test/SaionjiScript_Ability.cs | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 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 bd62c138..49c0b5e9 100644 --- a/Assets/Scripts/Test/SaionjiScript_Ability.cs +++ b/Assets/Scripts/Test/SaionjiScript_Ability.cs @@ -41,6 +41,7 @@ public partial class SaionjiScript : MonoBehaviour AttackAbility attk4 = new AttackAbility(animator, Anim_LightAttack4); AttackAbility attk5 = new AttackAbility(animator, Anim_LightAttack5); AttackAbility sideKick = new AttackAbility(animator, Anim_SideKick); + AttackAbility superKick = new AttackAbility(animator, Anim_SuperKick); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // actions @@ -58,6 +59,7 @@ public partial class SaionjiScript : MonoBehaviour ActionSwitchAbility switchToAttk5 = new ActionSwitchAbility(m_AbilitySystem, attk5); ActionSwitchAbility switchToSideKick = new ActionSwitchAbility(m_AbilitySystem, sideKick); ActionSwitchAbility switchToDash = new ActionSwitchAbility(m_AbilitySystem, dash); + ActionSwitchAbility switchToSuperKick = new ActionSwitchAbility(m_AbilitySystem, superKick); ActionWipeCmdRecord wipeCmdRecord = new ActionWipeCmdRecord(); @@ -74,13 +76,15 @@ public partial class SaionjiScript : MonoBehaviour ConditionTowardLeft condTowardLeft = new ConditionTowardLeft(this.transform); ConditionTowardRight condTowardRight = new ConditionTowardRight(this.transform); ConditionCommandSeq condRight2Cmd = new ConditionCommandSeq(new List{GamepadButton.Right, GamepadButton.Right }, 1f); - ConditionCommandSeq condLeft2Cmd = new ConditionCommandSeq(new List{GamepadButton.Left, GamepadButton.Left }, 1f); + ConditionCommandSeq condLeft2Cmd = new ConditionCommandSeq(new List { GamepadButton.Left, GamepadButton.Left }, 1f); + ConditionCommandSeq condDRC = new ConditionCommandSeq(new List { GamepadButton.Down, GamepadButton.Right, GamepadButton.Circle}, 1f); + ConditionCommandSeq condDLC = new ConditionCommandSeq(new List { GamepadButton.Down, GamepadButton.Left, GamepadButton.Circle}, 1f); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // common triggers //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// - Trigger triggerTurnRight = new Trigger(And(condRightButtonHold, Not(condTowardRight)), towardRight); - Trigger triggerTurnLeft = new Trigger(And(condLeftButtonHold, Not(condTowardLeft)), towardLeft); + Trigger triggerTurnRight = new Trigger(And(condRightCmd, Not(condTowardRight)), towardRight); + Trigger triggerTurnLeft = new Trigger(And(condLeftCmd, Not(condTowardLeft)), towardLeft); Trigger trigger = null; @@ -89,6 +93,10 @@ public partial class SaionjiScript : MonoBehaviour //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // idle ability + trigger = new Trigger(And(condTowardRight, condDRC), new List { wipeCmdRecord, switchToSuperKick }); + idle.AddTrigger(trigger); + trigger = new Trigger(And(condTowardLeft, condDLC), new List { wipeCmdRecord, switchToSuperKick }); + idle.AddTrigger(trigger); trigger = new Trigger(And(condTowardRight, And(condRightCmd, condRight2Cmd)), new List { wipeCmdRecord , switchToDash }); idle.AddTrigger(trigger); trigger = new Trigger(And(condTowardLeft, And(condLeftCmd, condLeft2Cmd)), new List { wipeCmdRecord , switchToDash }); @@ -101,8 +109,8 @@ public partial class SaionjiScript : MonoBehaviour idle.AddTrigger(trigger); trigger = new Trigger(condCrossCmd, switchToSideKick); idle.AddTrigger(trigger); - trigger = new Trigger(condLeftCmd, turn180); - idle.AddTrigger(trigger); + idle.AddTrigger(triggerTurnRight); + idle.AddTrigger(triggerTurnLeft); // move ability trigger = new Trigger(And(condTowardRight, And(condRightCmd, condRight2Cmd)), new List { wipeCmdRecord, switchToDash, }); @@ -174,6 +182,10 @@ public partial class SaionjiScript : MonoBehaviour trigger = new Trigger(condSideKickExpireTime, switchToIdle); sideKick.AddTrigger(trigger); + ConditionAttkExpireTime condSuperKickExpireTime = new ConditionAttkExpireTime(superKick, expireTime); + trigger = new Trigger(condSuperKickExpireTime, switchToIdle); + superKick.AddTrigger(trigger); + m_AbilitySystem.ForceStart(idle); } -- cgit v1.1-26-g67d0