From 608395979f5323dc69f3cc343715aba4f5c552bc Mon Sep 17 00:00:00 2001 From: chai Date: Mon, 19 Oct 2020 09:08:22 +0800 Subject: +Gun ability --- .../AbilitySystem/Actions/ActionJumpBack.cs | 18 +++++++ .../AbilitySystem/Actions/ActionJumpBack.cs.meta | 11 +++++ Assets/Scripts/Test/SaionjiScript_Ability.cs | 55 ++++++++++++++++++++-- Assets/Scripts/Test/SaionjiScript_Anim.cs | 12 ++++- 4 files changed, 90 insertions(+), 6 deletions(-) create mode 100644 Assets/Scripts/AbilitySystem/Actions/ActionJumpBack.cs create mode 100644 Assets/Scripts/AbilitySystem/Actions/ActionJumpBack.cs.meta (limited to 'Assets/Scripts') diff --git a/Assets/Scripts/AbilitySystem/Actions/ActionJumpBack.cs b/Assets/Scripts/AbilitySystem/Actions/ActionJumpBack.cs new file mode 100644 index 00000000..c21fce77 --- /dev/null +++ b/Assets/Scripts/AbilitySystem/Actions/ActionJumpBack.cs @@ -0,0 +1,18 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public class ActionJumpBack : MonoBehaviour +{ + // Start is called before the first frame update + void Start() + { + + } + + // Update is called once per frame + void Update() + { + + } +} diff --git a/Assets/Scripts/AbilitySystem/Actions/ActionJumpBack.cs.meta b/Assets/Scripts/AbilitySystem/Actions/ActionJumpBack.cs.meta new file mode 100644 index 00000000..c8db01c7 --- /dev/null +++ b/Assets/Scripts/AbilitySystem/Actions/ActionJumpBack.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 1b4b55d531ec4084294169cddfbeb57a +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: 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); } diff --git a/Assets/Scripts/Test/SaionjiScript_Anim.cs b/Assets/Scripts/Test/SaionjiScript_Anim.cs index f7c29d3b..1b99ce35 100644 --- a/Assets/Scripts/Test/SaionjiScript_Anim.cs +++ b/Assets/Scripts/Test/SaionjiScript_Anim.cs @@ -15,10 +15,15 @@ public partial class SaionjiScript : MonoBehaviour int Anim_SideKick; int Anim_DashWithSword; int Anim_SuperKick; + int Anim_Gun1; + int Anim_Gun2; + int Anim_Gun3; + int Anim_Gun4; void GetAnimHash() { - Anim_Idle = Animator.StringToHash("Idle_Fight"); + Anim_Idle = Animator.StringToHash("Idle_Gun"); + //Anim_Idle = Animator.StringToHash("Idle_Fight"); Anim_Run = Animator.StringToHash("Run_Sword_Fast"); Anim_LightAttack1 = Animator.StringToHash("Light_Attk_1"); @@ -32,6 +37,11 @@ public partial class SaionjiScript : MonoBehaviour Anim_SuperKick = Animator.StringToHash("SuperKickCombo"); Anim_DashWithSword = Animator.StringToHash("Dash_With_Sword"); + + Anim_Gun1 = Animator.StringToHash("Gun01"); + Anim_Gun2 = Animator.StringToHash("Gun02"); + Anim_Gun3 = Animator.StringToHash("Gun03"); + Anim_Gun4 = Animator.StringToHash("Gun04"); } } -- cgit v1.1-26-g67d0