From 8834c57999ce2e9d88262d5e7d2f31b65eaf3477 Mon Sep 17 00:00:00 2001 From: chai Date: Tue, 27 Oct 2020 09:08:54 +0800 Subject: =?UTF-8?q?*=E8=B7=B3=E8=B7=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/Test/SaionjiScript_Ability.cs | 29 +++++++++++++++++++++++----- 1 file changed, 24 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 c3fa94ce..10f358e4 100644 --- a/Assets/Scripts/Test/SaionjiScript_Ability.cs +++ b/Assets/Scripts/Test/SaionjiScript_Ability.cs @@ -19,6 +19,18 @@ public partial class SaionjiScript : MonoBehaviour return new ConditionAnd(c1, c2); } + + ConditionBase Ands(params ConditionBase[] cond) + { + List conditions = new List(); + for(int i = 0;i < cond.Length; ++i) + { + conditions.Add(cond[i]); + } + ConditionMultiAnd and = new ConditionMultiAnd(conditions); + return and; + } + ConditionBase Or(ConditionBase c1, ConditionBase c2) { return new ConditionOr(c1,c2); @@ -42,8 +54,8 @@ public partial class SaionjiScript : MonoBehaviour jumpConfig.collider = m_BodyCollider; jumpConfig.body = m_Body; jumpConfig.neutralJumpSpeedY = 10f; - jumpConfig.fowardJumpSpeedX = 1f; - jumpConfig.backwardJumpSpeedX = -1f; + jumpConfig.fowardJumpSpeedX = 5f; + jumpConfig.backwardJumpSpeedX = -5f; jumpConfig.animJump = Anim_JumpStart; jumpConfig.animJumpEnd = Anim_JumpEnd; jumpConfig.animNU = Anim_JumpUp; @@ -83,6 +95,7 @@ public partial class SaionjiScript : MonoBehaviour ActionTowardRight towardRight = new ActionTowardRight(this.transform); ActionJump toJump = new ActionJump(m_AbilitySystem, jump); + ActionJumpForward toJumpForward = new ActionJumpForward(m_AbilitySystem, jump); ActionSwitchAbility switchToMove = new ActionSwitchAbility(m_AbilitySystem, move); ActionSwitchAbility switchToIdle = new ActionSwitchAbility(m_AbilitySystem, idle); @@ -114,6 +127,7 @@ public partial class SaionjiScript : MonoBehaviour ConditionNoMoveButtonHold condNoMoveButtonHold = new ConditionNoMoveButtonHold(); ConditionButtonHold condRightButtonHold = new ConditionButtonHold(GamepadButton.Right); ConditionButtonHold condLeftButtonHold = new ConditionButtonHold(GamepadButton.Left); + ConditionCommand condUpCmd = new ConditionCommand(GamepadButton.Up); ConditionCommand condTriangleCmd = new ConditionCommand(GamepadButton.Triangle); ConditionCommand condCircleCmd = new ConditionCommand(GamepadButton.Circle); ConditionCommand condCrossCmd = new ConditionCommand(GamepadButton.Cross); @@ -128,6 +142,7 @@ public partial class SaionjiScript : MonoBehaviour ConditionHit condIsHit = new ConditionHit(this); ConditionJumpDone condJumpDone = new ConditionJumpDone(jump); + ConditionJumpOnGround condJumpOnGround = new ConditionJumpOnGround(jump); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // common triggers @@ -142,7 +157,7 @@ public partial class SaionjiScript : MonoBehaviour //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // idle ability - trigger = new Trigger(condTriangleCmd, toJump) ; + trigger = new Trigger(condUpCmd, toJump) ; idle.AddTrigger(trigger); trigger = new Trigger(And(condTowardRight, condDRC), new List { wipeCmdRecord, switchToSuperKick }); idle.AddTrigger(trigger); @@ -166,6 +181,8 @@ public partial class SaionjiScript : MonoBehaviour idle.AddTrigger(triggerTurnLeft); // move ability + trigger = new Trigger(Or(Ands(condRightButtonHold, condTowardRight, condUpCmd), Ands(condLeftButtonHold, condTowardLeft, condUpCmd)), toJumpForward); + move.AddTrigger(trigger); trigger = new Trigger(And(condTowardRight, And(condRightCmd, condRight2Cmd)), new List { wipeCmdRecord, switchToDash, }); move.AddTrigger(trigger); trigger = new Trigger(And(condTowardLeft, And(condLeftCmd, condLeft2Cmd)), new List { wipeCmdRecord, switchToDash }); @@ -187,8 +204,10 @@ public partial class SaionjiScript : MonoBehaviour trigger = new Trigger(condCrossCmd, switchToSideKick); move.AddTrigger(trigger); - // jump ability - trigger = new Trigger(condJumpDone, switchToIdle); + // jump ability + trigger = new Trigger(condJumpOnGround, new ActionSetVelocity(m_Body, Vector3.zero), TriggerOnlyOnce.On, TriggerSwallow.Off); + jump.AddTrigger(trigger); + trigger = new Trigger(condJumpDone, switchToIdle); jump.AddTrigger(trigger); // dash ability -- cgit v1.1-26-g67d0