From 608395979f5323dc69f3cc343715aba4f5c552bc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 19 Oct 2020 09:08:22 +0800 Subject: +Gun ability --- Assets/Scripts/Test/SaionjiScript_Ability.cs | 55 +++++++++++++++++++++++++--- 1 file changed, 50 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 b0a124c7..18cc93dd 100644 --- a/Assets/Scripts/Test/SaionjiScript_Ability.cs +++ b/Assets/Scripts/Test/SaionjiScript_Ability.cs @@ -42,6 +42,10 @@ public partial class SaionjiScript : MonoBehaviour AttackAbility attk5 = new AttackAbility(animator, Anim_LightAttack5); AttackAbility sideKick = new AttackAbility(animator, Anim_SideKick); AttackAbility superKick = new AttackAbility(animator, Anim_SuperKick); + AttackAbility gun1 = new AttackAbility(animator, Anim_Gun1); + AttackAbility gun2 = new AttackAbility(animator, Anim_Gun2); + AttackAbility gun3 = new AttackAbility(animator, Anim_Gun3); + AttackAbility gun4 = new AttackAbility(animator, Anim_Gun4); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // actions @@ -60,6 +64,10 @@ public partial class SaionjiScript : MonoBehaviour ActionSwitchAbility switchToSideKick = new ActionSwitchAbility(m_AbilitySystem, sideKick); ActionSwitchAbility switchToDash = new ActionSwitchAbility(m_AbilitySystem, dash); ActionSwitchAbility switchToSuperKick = new ActionSwitchAbility(m_AbilitySystem, superKick); + ActionSwitchAbility switchToGun1 = new ActionSwitchAbility(m_AbilitySystem, gun1); + ActionSwitchAbility switchToGun2 = new ActionSwitchAbility(m_AbilitySystem, gun2); + ActionSwitchAbility switchToGun3 = new ActionSwitchAbility(m_AbilitySystem, gun3); + ActionSwitchAbility switchToGun4 = new ActionSwitchAbility(m_AbilitySystem, gun4); ActionWipeCmdRecord wipeCmdRecord = new ActionWipeCmdRecord(); @@ -73,10 +81,11 @@ public partial class SaionjiScript : MonoBehaviour ConditionButtonHold condLeftButtonHold = new ConditionButtonHold(GamepadButton.Left); ConditionCommand condCircleCmd = new ConditionCommand(GamepadButton.Circle); ConditionCommand condCrossCmd = new ConditionCommand(GamepadButton.Cross); + ConditionCommand condSquareCmd = new ConditionCommand(GamepadButton.Square); 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 condRight2Cmd = new ConditionCommandSeq(new List{GamepadButton.Right, GamepadButton.Right }, 0.8f); + ConditionCommandSeq condLeft2Cmd = new ConditionCommandSeq(new List { GamepadButton.Left, GamepadButton.Left }, 0.8f); 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); @@ -101,14 +110,16 @@ public partial class SaionjiScript : MonoBehaviour idle.AddTrigger(trigger); trigger = new Trigger(And(condTowardLeft, And(condLeftCmd, condLeft2Cmd)), new List { wipeCmdRecord , switchToDash }); idle.AddTrigger(trigger); - trigger = new Trigger(And(condRightButtonHold, Not(condRight2Cmd)), new List { switchToMove, towardRight }); + trigger = new Trigger(condRightButtonHold, new List { switchToMove, towardRight }); idle.AddTrigger(trigger); - trigger = new Trigger(And(condLeftButtonHold, Not(condLeft2Cmd)), new List { switchToMove, towardLeft }); + trigger = new Trigger(condLeftButtonHold, new List { switchToMove, towardLeft }); idle.AddTrigger(trigger); trigger = new Trigger(condCircleCmd, switchToAttk1); idle.AddTrigger(trigger); trigger = new Trigger(condCrossCmd, switchToSideKick); idle.AddTrigger(trigger); + trigger = new Trigger(condSquareCmd, switchToGun1); + idle.AddTrigger(trigger); idle.AddTrigger(triggerTurnRight); idle.AddTrigger(triggerTurnLeft); @@ -134,7 +145,8 @@ public partial class SaionjiScript : MonoBehaviour // attack abilities float expireTime = 0.3f; - + + // sword normal attack ConditionAnimAtEnd condAttk1AtEnd = new ConditionAnimAtEnd(animator, Anim_LightAttack1); trigger = new Trigger(And(condAttk1AtEnd, condCircleCmd), switchToAttk2); attk1.AddTrigger(trigger); @@ -180,14 +192,47 @@ public partial class SaionjiScript : MonoBehaviour attk5.AddTrigger(triggerTurnRight); attk5.AddTrigger(triggerTurnLeft); + // side kick normal ConditionAttkExpireTime condSideKickExpireTime = new ConditionAttkExpireTime(sideKick, expireTime); trigger = new Trigger(condSideKickExpireTime, switchToIdle); sideKick.AddTrigger(trigger); + // super kick combo ConditionAttkExpireTime condSuperKickExpireTime = new ConditionAttkExpireTime(superKick, expireTime); trigger = new Trigger(condSuperKickExpireTime, switchToIdle); superKick.AddTrigger(trigger); + // gun normal + ConditionAnimAtEnd condGun1AtEnd = new ConditionAnimAtEnd(animator, Anim_Gun1); + trigger = new Trigger(And(condGun1AtEnd, condSquareCmd), switchToGun2); + gun1.AddTrigger(trigger); + ConditionAttkExpireTime condGun1ExpireTime = new ConditionAttkExpireTime(gun1, expireTime); + trigger = new Trigger(condGun1ExpireTime, switchToIdle); + gun1.AddTrigger(trigger); + + ConditionAnimAtEnd condGun2AtEnd = new ConditionAnimAtEnd(animator, Anim_Gun2); + trigger = new Trigger(And(condGun2AtEnd, condSquareCmd), switchToGun3); + gun2.AddTrigger(trigger); + ConditionAttkExpireTime condGun2ExpireTime = new ConditionAttkExpireTime(gun2, expireTime); + trigger = new Trigger(condGun2ExpireTime, switchToIdle); + gun2.AddTrigger(trigger); + + ConditionAnimAtEnd condGun3AtEnd = new ConditionAnimAtEnd(animator, Anim_Gun3); + trigger = new Trigger(And(condGun3AtEnd, condSquareCmd), switchToGun4); + gun3.AddTrigger(trigger); + ConditionAttkExpireTime condGun3ExpireTime = new ConditionAttkExpireTime(gun3, expireTime); + trigger = new Trigger(condGun3ExpireTime, switchToIdle); + gun3.AddTrigger(trigger); + + ConditionAttkExpireTime condGun4ExpireTime = new ConditionAttkExpireTime(gun4, expireTime); + trigger = new Trigger(condGun4ExpireTime, switchToIdle); + gun4.AddTrigger(trigger); + ConditionAnimRange condGun4AnimRange = new ConditionAnimRange(animator, 0.6f, 1f); + trigger = new Trigger(And(condGun4AnimRange, condRight2Cmd), new List { switchToDash, towardRight }); + gun4.AddTrigger(trigger); + trigger = new Trigger(And(condGun4AnimRange, condLeft2Cmd), new List { switchToDash, towardLeft }); + gun4.AddTrigger(trigger); + m_AbilitySystem.ForceStart(idle); } -- cgit v1.1-26-g67d0