public override void LogicUpdate() { base.LogicUpdate(); if (isExitingState) { return; } if (_jumpInput && _isHolding && IsGrounded) { SwordCharacter.RB.drag = 0; SwordCharacter.SetVelocityAngular(SwordCharacterData.DashJumpVelocity, SwordCharacterData.DashJumpAngle, SwordCharacter.FacingDirection); } if (_isHolding && IsGrounded) { _dashInputStop = SwordCharacter.InputHandler.DashInputStop; if (_dashInputStop) { _isHolding = false; } SwordCharacter.RB.drag = SwordCharacterData.Drag; SwordCharacter.CheckIfShouldFlip(XInput); SwordCharacter.SetVelocityX(SwordCharacterData.DashVelocity * SwordCharacter.FacingDirection); } if (!_isHolding || !IsGrounded || Time.time >= startTime + SwordCharacterData.DashTimeDistance) { SwordCharacter.RB.drag = 0; IsAbilityDone = true; _lastDashTime = Time.time; } }
public override void Enter() { base.Enter(); SwordCharacter.InputHandler.JumpButtonUsed(); SwordCharacter.JumpState.ResetAmountOfJumpsLeft(); SwordCharacter.SetVelocityAngular(SwordCharacterData.WallJumpVelocity, SwordCharacterData.WallJumpAngle, _wallJumpDirection); SwordCharacter.CheckIfShouldFlip(_wallJumpDirection); SwordCharacter.JumpState.DecreaseAmountOfJumpsLeft(); }