diff options
Diffstat (limited to 'Assets/Scripts/Test/SaionjiScript_Ability.cs')
-rw-r--r-- | Assets/Scripts/Test/SaionjiScript_Ability.cs | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/Assets/Scripts/Test/SaionjiScript_Ability.cs b/Assets/Scripts/Test/SaionjiScript_Ability.cs index d8233f56..665b787c 100644 --- a/Assets/Scripts/Test/SaionjiScript_Ability.cs +++ b/Assets/Scripts/Test/SaionjiScript_Ability.cs @@ -64,6 +64,8 @@ public partial class SaionjiScript : Avatar };
JumpAbility jump = new JumpAbility(jumpConfig);
+ AttackAbility airDash = new AttackAbility(animator, Anim_AirDash, m_Body);
+
AttackAbilityConfig config;
//招式会绑定一个motion
@@ -97,6 +99,8 @@ public partial class SaionjiScript : Avatar AttackAbility gun3 = new AttackAbility(animator, Anim_Gun3, m_Body);
AttackAbility gun4 = new AttackAbility(animator, Anim_Gun4, m_Body);
+ AttackAbility airAttk1 = new AttackAbility(animator, Anim_AirAttack1, m_Body);
+
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// actions
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -124,6 +128,9 @@ public partial class SaionjiScript : Avatar ActionSwitchAbility switchToGun3 = new ActionSwitchAbility(m_AbilitySystem, gun3);
ActionSwitchAbility switchToGun4 = new ActionSwitchAbility(m_AbilitySystem, gun4);
+ ActionSwitchAbility switchToAirDash = new ActionSwitchAbility(m_AbilitySystem, airDash);
+ ActionSwitchAbility switchToAirAttk1 = new ActionSwitchAbility(m_AbilitySystem, airAttk1);
+
ActionWipeCmdRecord wipeCmdRecord = new ActionWipeCmdRecord();
ActionEffectGhost enableGhost = new ActionEffectGhost(Effects[0] as CharacterGhostEffect);
@@ -154,6 +161,8 @@ public partial class SaionjiScript : Avatar ConditionJumpDone condJumpDone = new ConditionJumpDone(jump);
ConditionJumpOnGround condJumpOnGround = new ConditionJumpOnGround(jump);
+ ConditionInAir condInAir = new ConditionInAir(m_BodyCollider);
+
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// common triggers
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -217,6 +226,12 @@ public partial class SaionjiScript : Avatar move.AddTrigger(trigger);
// jump ability
+ trigger = new Trigger(Ands(condInAir, condRightCmd, condRight2Cmd), new List<ActionBase> { towardRight, switchToAirDash, new ActionSetVelocity(m_Body, new Vector3(25, 0, 0)), new ActionDontUseGravity(m_Body) });
+ jump.AddTrigger(trigger);
+ trigger = new Trigger(Ands(condInAir, condLeftCmd, condLeft2Cmd), new List<ActionBase> { towardLeft, switchToAirDash, new ActionSetVelocity(m_Body, new Vector3(-25, 0, 0)), new ActionDontUseGravity(m_Body) });
+ jump.AddTrigger(trigger);
+ trigger = new Trigger(Ands(condInAir, condCircleCmd), new List<ActionBase> { switchToAirAttk1, new ActionSetLocalVelocity(m_Body, new Vector3(0, 0, 0)), new ActionDontUseGravity(m_Body)});
+ jump.AddTrigger(trigger);
ConditionCheckJumpState condCheckJump = new ConditionCheckJumpState(jump, JumpAbility.State.None, JumpAbility.Direction.Neutral);
trigger = new Trigger(And(condRightButtonHold, condCheckJump), new List<ActionBase> { towardRight, new ActionSetVelocityX(m_Body, 4)}, TriggerOnlyOnce.Off, TriggerSwallow.Off);
jump.AddTrigger(trigger);
@@ -361,6 +376,13 @@ public partial class SaionjiScript : Avatar trigger = new Trigger(And(condGun4MotionRange, condLeft2Cmd), new List<ActionBase> { switchToDash, towardLeft });
gun4.AddTrigger(trigger);
+ // air dash
+ trigger = new Trigger(new ConditionMotionAtEnd(animator, Anim_AirDash), new List<ActionBase> { new ActionSetVelocity(m_Body, Vector3.zero), new ActionUseGravity(m_Body), toJump });
+ airDash.AddTrigger(trigger);
+
+ trigger = new Trigger(new ConditionMotionAtEnd(animator, Anim_AirAttack1), new List<ActionBase> { new ActionSetVelocity(m_Body, Vector3.zero), new ActionUseGravity(m_Body), toJump });
+ airAttk1.AddTrigger(trigger);
+
m_AbilitySystem.ForceStart(idle);
}
|