123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155 |
- using System;
- using ExtensionMethods;
- using GameWorld;
- using UnityEngine;
- public class PlayerJumpAbility : CharacterState
- {
- public override void Update()
- {
- if (this._invincibleRecover > 0)
- {
- this._invincibleRecover--;
- if (this._invincibleRecover <= 0)
- {
- this.pab.hurt.Invincible = false;
- }
- }
- }
- public void Jump()
- {
- if (R.Player.TimeController.isPause)
- {
- return;
- }
- if ((this.stateMachine.currentState.IsInArray(PlayerJumpAbility.CanJumpSta) || (this.stateMachine.currentState == "AtkUpRising" && this.pac.canChangeAnim)) && !this._firstJumped)
- {
- this._firstJumped = true;
- this.listener.PhysicReset();
- this.StateCheck();
- this.pac.ChangeState(PlayerAction.StateEnum.Jump, 1f);
- Vector2 currentSpeed = R.Player.TimeController.GetCurrentSpeed();
- currentSpeed.y = 20f;
- R.Player.TimeController.SetSpeed(currentSpeed);
- EventManager.PostEvent<PlayerJumpAbility, AssessmentEventArgs>("Assessment", this, new AssessmentEventArgs(AssessmentEventArgs.EventType.CurrentComboFinish));
- return;
- }
- if ((this.stateMachine.currentState.IsInArray(PlayerJumpAbility.SecondJumpSta) && this._firstJumped && !this._secondJumpped) || (this.stateMachine.currentState.IsInArray(PlayerJumpAbility.HurtJumpSta) && this.listener.hitJump))
- {
- if (this.listener.hitJump && this.stateMachine.currentState.IsInArray(PlayerJumpAbility.HurtJumpSta))
- {
- this.JumpEffect();
- this.listener.hitJump = false;
- this.listener.flyHitFlag = false;
- this.listener.flyHitGround = false;
- this.pab.hurt.Invincible = true;
- this._invincibleRecover = WorldTime.SecondToFrame(0.3f);
- }
- this._firstJumped = true;
- this._secondJumpped = true;
- this.listener.PhysicReset();
- this.StateCheck();
- this.pac.ChangeState(PlayerAction.StateEnum.RollJump, 1f);
- Vector2 currentSpeed2 = R.Player.TimeController.GetCurrentSpeed();
- currentSpeed2.y = 16f;
- R.Player.TimeController.SetSpeed(currentSpeed2);
- EventManager.PostEvent<PlayerJumpAbility, AssessmentEventArgs>("Assessment", this, new AssessmentEventArgs(AssessmentEventArgs.EventType.CurrentComboFinish));
- }
- }
- private void StateCheck()
- {
- this.listener.checkFallDown = false;
- this.listener.isFalling = false;
- this.listener.airAtkDown = false;
- }
- private void JumpEffect()
- {
- Transform transform = R.Effect.Generate(212, null, this.pab.transform.position, default(Vector3), default(Vector3), true);
- transform.localScale = this.pab.transform.localScale;
- }
- public override void OnStateMachineStateTransfer(object sender, StateMachine.TransferEventArgs args)
- {
- if (!args.lastState.IsInArray(PlayerAction.NormalSta) && args.nextState.IsInArray(PlayerAction.NormalSta))
- {
- this._firstJumped = false;
- this._secondJumpped = false;
- }
- }
- private bool _firstJumped;
- private bool _secondJumpped;
- private int _invincibleRecover;
- private static readonly string[] CanJumpSta = new string[]
- {
- "EndAtk",
- "Fall1",
- "Fall2",
- "GetUp",
- "Idle",
- "Ready",
- "Run",
- "RunSlow",
- "Atk1",
- "Atk2",
- "Atk3",
- "Atk4",
- "Atk5",
- "Atk6",
- "Atk7",
- "Atk8",
- "Atk11",
- "Atk12",
- "Atk13",
- "Atk14",
- "Atk23",
- "Atk15",
- "Atk16",
- "AtkHv1",
- "AtkHv2",
- "AtkHv3",
- "AtkHv1Push",
- "AtkUpRising",
- "RollReady",
- "Roll",
- "RollEnd",
- "Charge1Ready",
- "Charging1",
- "Charge1End",
- "AirAtk1",
- "AirAtk2",
- "AirAtk3",
- "AirAtk4",
- "AirAtk6",
- "AirAtkHv1",
- "AirAtkHv2",
- "AirAtkHv3",
- "AirAtkHv4",
- "AirAtkHv5",
- "AirAtkHv1Push",
- "AtkRollReady",
- "AtkRollEnd",
- "AirAtkRollReady",
- "AirAtkRoll"
- };
- private static readonly string[] SecondJumpSta = new string[]
- {
- "Fall1",
- "Fall2",
- "Jump"
- };
- private static readonly string[] HurtJumpSta = new string[]
- {
- "UnderAtkFlyToFall",
- "UnderAtkHitGround",
- "UnderAtkHitToFly"
- };
- }
|