diff options
Diffstat (limited to 'Assets/Scripts/Test/SaionjiScript_Ability.cs')
-rw-r--r-- | Assets/Scripts/Test/SaionjiScript_Ability.cs | 80 |
1 files changed, 48 insertions, 32 deletions
diff --git a/Assets/Scripts/Test/SaionjiScript_Ability.cs b/Assets/Scripts/Test/SaionjiScript_Ability.cs index 2ed956ef..21901096 100644 --- a/Assets/Scripts/Test/SaionjiScript_Ability.cs +++ b/Assets/Scripts/Test/SaionjiScript_Ability.cs @@ -33,21 +33,34 @@ public partial class SaionjiScript : MonoBehaviour // abilities
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
IdleAbility idle = new IdleAbility(animator, Anim_Idle);
+
MoveAbility move = new MoveAbility(animator, Anim_Run);
MoveAbility dash = new MoveAbility(animator, Anim_DashWithSword);
- AttackAbility attk1 = new AttackAbility(animator, Anim_LightAttack1);
- AttackAbility attk2 = new AttackAbility(animator, Anim_LightAttack2);
- AttackAbility attk3 = new AttackAbility(animator, Anim_LightAttack3);
- AttackAbility attk4 = new AttackAbility(animator, Anim_LightAttack4);
- AttackAbility attk5 = new AttackAbility(animator, Anim_LightAttack5);
- AttackAbility attkRush = new AttackAbility(animator, Anim_LightAttackRush);
- AttackAbility sideKick = new AttackAbility(animator, Anim_SideKick);
- AttackAbility sideKickRush = new AttackAbility(animator, Anim_SideKickRush);
- 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);
+
+ AttackAbilityConfig config;
+
+ //招式会绑定一个motion
+ AttackAbility attk1 = new AttackAbility(animator, Anim_LightAttack1, m_Body);
+ AttackAbility attk2 = new AttackAbility(animator, Anim_LightAttack2, m_Body);
+ AttackAbility attk3 = new AttackAbility(animator, Anim_LightAttack3, m_Body);
+ AttackAbility attk4 = new AttackAbility(animator, Anim_LightAttack4, m_Body);
+ AttackAbility attk5 = new AttackAbility(animator, Anim_LightAttack5, m_Body);
+ AttackAbility attkRush = new AttackAbility(animator, Anim_LightAttackRush, m_Body);
+
+ config = new AttackAbilityConfig() {
+ animator = this.animator,
+ body = this.m_Body,
+ motion = Anim_SideKick,
+ velocity = new Vector3(20, 1.5f, 0)
+ };
+ AttackAbility sideKick = new AttackAbility(config);
+
+ AttackAbility sideKickRush = new AttackAbility(animator, Anim_SideKickRush, m_Body);
+ AttackAbility superKick = new AttackAbility(animator, Anim_SuperKick, m_Body);
+ AttackAbility gun1 = new AttackAbility(animator, Anim_Gun1, m_Body);
+ AttackAbility gun2 = new AttackAbility(animator, Anim_Gun2, m_Body);
+ AttackAbility gun3 = new AttackAbility(animator, Anim_Gun3, m_Body);
+ AttackAbility gun4 = new AttackAbility(animator, Anim_Gun4, m_Body);
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// actions
@@ -155,16 +168,16 @@ public partial class SaionjiScript : MonoBehaviour move.AddTrigger(trigger);
// dash ability
- trigger = new Trigger(And(new ConditionAnimRange(animator, 0.5f, 1.0f), condCircleCmd), switchToAttk1);
+ trigger = new Trigger(And(new ConditionMotionRange(animator, 0.5f, 1.0f), condCircleCmd), switchToAttk1);
dash.AddTrigger(trigger);
- trigger = new Trigger(new ConditionAnimAtEnd(animator, Anim_DashWithSword), switchToIdle);
+ trigger = new Trigger(new ConditionMotionAtEnd(animator, Anim_DashWithSword), switchToIdle);
dash.AddTrigger(trigger);
// attack abilities
float expireTime = 0.3f;
// sword normal attack
- ConditionAnimAtEnd condAttk1AtEnd = new ConditionAnimAtEnd(animator, Anim_LightAttack1);
+ ConditionMotionAtEnd condAttk1AtEnd = new ConditionMotionAtEnd(animator, Anim_LightAttack1);
trigger = new Trigger(And(condAttk1AtEnd, condCircleCmd), switchToAttk2);
attk1.AddTrigger(trigger);
ConditionAttkExpireTime condAttk1ExpireTime = new ConditionAttkExpireTime(attk1, expireTime);
@@ -175,13 +188,13 @@ public partial class SaionjiScript : MonoBehaviour trigger = new Trigger(condIsHit, new ActionLog("hit!!!"));
attk1.AddLateTrigger(trigger);
- //ConditionAnimRange condAttkRushGhostRange = new ConditionAnimRange(animator, 0f, 0.8f);
+ //ConditionMotionRange condAttkRushGhostRange = new ConditionMotionRange(animator, 0f, 0.8f);
//trigger = new Trigger(condAttkRushGhostRange, enableGhost, false);
//attkRush.AddTrigger(trigger);
- //ConditionAnimRange condAttkRushGhostDisableRange = new ConditionAnimRange(animator, 0.8f, 10f);
+ //ConditionMotionRange condAttkRushGhostDisableRange = new ConditionMotionRange(animator, 0.8f, 10f);
//trigger = new Trigger(condAttkRushGhostDisableRange, disableGhost, false);
//attkRush.AddTrigger(trigger);
- ConditionAnimRange condAttkRushAtRange = new ConditionAnimRange(animator, 0.5f, 1f);
+ ConditionMotionRange condAttkRushAtRange = new ConditionMotionRange(animator, 0.5f, 1f);
trigger = new Trigger(And(condAttkRushAtRange, condCircleCmd), switchToAttk2);
attkRush.AddTrigger(trigger);
//trigger = new Trigger(And(And(condAttkRushAtRange, condTowardRight), condRightCmd), switchToAttkRush);
@@ -194,7 +207,7 @@ public partial class SaionjiScript : MonoBehaviour //attkRush.AddTrigger(triggerTurnRight);
//attkRush.AddTrigger(triggerTurnLeft);
- ConditionAnimAtEnd condAttk2AtEnd = new ConditionAnimAtEnd(animator, Anim_LightAttack2);
+ ConditionMotionAtEnd condAttk2AtEnd = new ConditionMotionAtEnd(animator, Anim_LightAttack2);
trigger = new Trigger(And(condAttk2AtEnd, condCircleCmd), switchToAttk3);
attk2.AddTrigger(trigger);
ConditionAttkExpireTime condAttk2ExpireTime = new ConditionAttkExpireTime(attk2, expireTime);
@@ -203,7 +216,7 @@ public partial class SaionjiScript : MonoBehaviour attk2.AddTrigger(triggerTurnRight);
attk2.AddTrigger(triggerTurnLeft);
- ConditionAnimAtEnd condAttk3AtEnd = new ConditionAnimAtEnd(animator, Anim_LightAttack3);
+ ConditionMotionAtEnd condAttk3AtEnd = new ConditionMotionAtEnd(animator, Anim_LightAttack3);
trigger = new Trigger(And(condAttk3AtEnd, condCircleCmd), switchToAttk4);
attk3.AddTrigger(trigger);
ConditionAttkExpireTime condAttk3ExpireTime = new ConditionAttkExpireTime(attk3, expireTime);
@@ -212,7 +225,7 @@ public partial class SaionjiScript : MonoBehaviour attk3.AddTrigger(triggerTurnRight);
attk3.AddTrigger(triggerTurnLeft);
- ConditionAnimAtEnd condAttk4AtEnd = new ConditionAnimAtEnd(animator, Anim_LightAttack4);
+ ConditionMotionAtEnd condAttk4AtEnd = new ConditionMotionAtEnd(animator, Anim_LightAttack4);
trigger = new Trigger(And(condAttk4AtEnd, condCircleCmd), switchToAttk5);
attk4.AddTrigger(trigger);
ConditionAttkExpireTime condAttk4ExpireTime = new ConditionAttkExpireTime(attk4, expireTime);
@@ -221,7 +234,7 @@ public partial class SaionjiScript : MonoBehaviour attk4.AddTrigger(triggerTurnRight);
attk4.AddTrigger(triggerTurnLeft);
- ConditionAnimAtEnd condAttk5AtEnd = new ConditionAnimAtEnd(animator, Anim_LightAttack5);
+ ConditionMotionAtEnd condAttk5AtEnd = new ConditionMotionAtEnd(animator, Anim_LightAttack5);
trigger = new Trigger(condAttk5AtEnd, switchToIdle);
attk5.AddTrigger(trigger);
ConditionAttkExpireTime condAttk5ExpireTime = new ConditionAttkExpireTime(attk5, expireTime);
@@ -231,6 +244,9 @@ public partial class SaionjiScript : MonoBehaviour attk5.AddTrigger(triggerTurnLeft);
// side kick normal
+ ConditionMotionAtEnd condKickMotionEnd = new ConditionMotionAtEnd(animator, Anim_SideKick);
+ trigger = new Trigger(condKickMotionEnd, new ActionSetVelocity(m_Body, Vector3.zero), TriggerOnlyOnce.On, TriggerSwallow.Off);
+ sideKick.AddTrigger(trigger);
ConditionAttkExpireTime condSideKickExpireTime = new ConditionAttkExpireTime(sideKick, expireTime);
trigger = new Trigger(condSideKickExpireTime, switchToIdle);
sideKick.AddTrigger(trigger);
@@ -239,10 +255,10 @@ public partial class SaionjiScript : MonoBehaviour ConditionAttkExpireTime condSideKickRushExpireTime = new ConditionAttkExpireTime(sideKickRush, expireTime);
trigger = new Trigger(condSideKickRushExpireTime, switchToIdle);
sideKickRush.AddTrigger(trigger);
- ConditionAnimRange condSideKickRushAnimRange = new ConditionAnimRange(animator, 0.5f, 10f);
- trigger = new Trigger(And(condSideKickRushAnimRange, And(condRightButtonHold, condCircleCmd)), new List<ActionBase> { towardRight, switchToAttkRush });
+ ConditionMotionRange condSideKickRushMotionRange = new ConditionMotionRange(animator, 0.5f, 10f);
+ trigger = new Trigger(And(condSideKickRushMotionRange, And(condRightButtonHold, condCircleCmd)), new List<ActionBase> { towardRight, switchToAttkRush });
sideKickRush.AddTrigger(trigger);
- trigger = new Trigger(And(condSideKickRushAnimRange, And(condLeftButtonHold, condCircleCmd)), new List<ActionBase> { towardLeft, switchToAttkRush });
+ trigger = new Trigger(And(condSideKickRushMotionRange, And(condLeftButtonHold, condCircleCmd)), new List<ActionBase> { towardLeft, switchToAttkRush });
sideKickRush.AddTrigger(trigger);
// super kick combo
@@ -251,21 +267,21 @@ public partial class SaionjiScript : MonoBehaviour superKick.AddTrigger(trigger);
// gun normal
- ConditionAnimAtEnd condGun1AtEnd = new ConditionAnimAtEnd(animator, Anim_Gun1);
+ ConditionMotionAtEnd condGun1AtEnd = new ConditionMotionAtEnd(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);
+ ConditionMotionAtEnd condGun2AtEnd = new ConditionMotionAtEnd(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);
+ ConditionMotionAtEnd condGun3AtEnd = new ConditionMotionAtEnd(animator, Anim_Gun3);
trigger = new Trigger(And(condGun3AtEnd, condSquareCmd), switchToGun4);
gun3.AddTrigger(trigger);
ConditionAttkExpireTime condGun3ExpireTime = new ConditionAttkExpireTime(gun3, expireTime);
@@ -275,10 +291,10 @@ public partial class SaionjiScript : MonoBehaviour 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<ActionBase> { switchToDash, towardRight });
+ ConditionMotionRange condGun4MotionRange = new ConditionMotionRange(animator, 0.6f, 1f);
+ trigger = new Trigger(And(condGun4MotionRange, condRight2Cmd), new List<ActionBase> { switchToDash, towardRight });
gun4.AddTrigger(trigger);
- trigger = new Trigger(And(condGun4AnimRange, condLeft2Cmd), new List<ActionBase> { switchToDash, towardLeft });
+ trigger = new Trigger(And(condGun4MotionRange, condLeft2Cmd), new List<ActionBase> { switchToDash, towardLeft });
gun4.AddTrigger(trigger);
m_AbilitySystem.ForceStart(idle);
|