diff options
Diffstat (limited to 'Assets/Scripts/Test/SaionjiScript_Ability.cs')
-rw-r--r-- | Assets/Scripts/Test/SaionjiScript_Ability.cs | 42 |
1 files changed, 33 insertions, 9 deletions
diff --git a/Assets/Scripts/Test/SaionjiScript_Ability.cs b/Assets/Scripts/Test/SaionjiScript_Ability.cs index 21901096..c3fa94ce 100644 --- a/Assets/Scripts/Test/SaionjiScript_Ability.cs +++ b/Assets/Scripts/Test/SaionjiScript_Ability.cs @@ -37,6 +37,19 @@ public partial class SaionjiScript : MonoBehaviour MoveAbility move = new MoveAbility(animator, Anim_Run);
MoveAbility dash = new MoveAbility(animator, Anim_DashWithSword);
+ JumpAbilityConfig jumpConfig = new JumpAbilityConfig();
+ jumpConfig.animator = animator;
+ jumpConfig.collider = m_BodyCollider;
+ jumpConfig.body = m_Body;
+ jumpConfig.neutralJumpSpeedY = 10f;
+ jumpConfig.fowardJumpSpeedX = 1f;
+ jumpConfig.backwardJumpSpeedX = -1f;
+ jumpConfig.animJump = Anim_JumpStart;
+ jumpConfig.animJumpEnd = Anim_JumpEnd;
+ jumpConfig.animNU = Anim_JumpUp;
+ jumpConfig.animND = Anim_JumpDown;
+ JumpAbility jump = new JumpAbility(jumpConfig);
+
AttackAbilityConfig config;
//招式会绑定一个motion
@@ -69,6 +82,8 @@ public partial class SaionjiScript : MonoBehaviour ActionTowardLeft towardLeft = new ActionTowardLeft(this.transform);
ActionTowardRight towardRight = new ActionTowardRight(this.transform);
+ ActionJump toJump = new ActionJump(m_AbilitySystem, jump);
+
ActionSwitchAbility switchToMove = new ActionSwitchAbility(m_AbilitySystem, move);
ActionSwitchAbility switchToIdle = new ActionSwitchAbility(m_AbilitySystem, idle);
ActionSwitchAbility switchToAttk1 = new ActionSwitchAbility(m_AbilitySystem, attk1);
@@ -99,8 +114,9 @@ public partial class SaionjiScript : MonoBehaviour ConditionNoMoveButtonHold condNoMoveButtonHold = new ConditionNoMoveButtonHold();
ConditionButtonHold condRightButtonHold = new ConditionButtonHold(GamepadButton.Right);
ConditionButtonHold condLeftButtonHold = new ConditionButtonHold(GamepadButton.Left);
+ ConditionCommand condTriangleCmd = new ConditionCommand(GamepadButton.Triangle);
ConditionCommand condCircleCmd = new ConditionCommand(GamepadButton.Circle);
- ConditionCommand condCrossCmd = new ConditionCommand(GamepadButton.Cross);
+ ConditionCommand condCrossCmd = new ConditionCommand(GamepadButton.Cross);
ConditionCommand condSquareCmd = new ConditionCommand(GamepadButton.Square);
ConditionTowardLeft condTowardLeft = new ConditionTowardLeft(this.transform);
ConditionTowardRight condTowardRight = new ConditionTowardRight(this.transform);
@@ -111,19 +127,23 @@ public partial class SaionjiScript : MonoBehaviour ConditionHit condIsHit = new ConditionHit(this);
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- // common triggers
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- Trigger triggerTurnRight = new Trigger(And(condRightCmd, Not(condTowardRight)), towardRight);
+ ConditionJumpDone condJumpDone = new ConditionJumpDone(jump);
+
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // common triggers
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ Trigger triggerTurnRight = new Trigger(And(condRightCmd, Not(condTowardRight)), towardRight);
Trigger triggerTurnLeft = new Trigger(And(condLeftCmd, Not(condTowardLeft)), towardLeft);
Trigger trigger = null;
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- // ability setup
- ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+ // ability setup
+ ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
- // idle ability
+ // idle ability
+ trigger = new Trigger(condTriangleCmd, toJump) ;
+ idle.AddTrigger(trigger);
trigger = new Trigger(And(condTowardRight, condDRC), new List<ActionBase> { wipeCmdRecord, switchToSuperKick });
idle.AddTrigger(trigger);
trigger = new Trigger(And(condTowardLeft, condDLC), new List<ActionBase> { wipeCmdRecord, switchToSuperKick });
@@ -167,6 +187,10 @@ public partial class SaionjiScript : MonoBehaviour trigger = new Trigger(condCrossCmd, switchToSideKick);
move.AddTrigger(trigger);
+ // jump ability
+ trigger = new Trigger(condJumpDone, switchToIdle);
+ jump.AddTrigger(trigger);
+
// dash ability
trigger = new Trigger(And(new ConditionMotionRange(animator, 0.5f, 1.0f), condCircleCmd), switchToAttk1);
dash.AddTrigger(trigger);
|