private void HandleInputOnce(PlayerInputData inputData) { if (inputData.inputTokens[6]) // Jump { inputData.EatInputToken(6); if (AdvancedMovement.CanStand(movementController)) // If can stand { if (!movementController.IsAirborne()) { stateMachine.ChangeState(playerController.jumpingState); } } } else if (inputData.inputTokens[3]) // Crouch { inputData.EatInputToken(3); if (!movementController.IsAirborne()) { stateMachine.ChangeState(playerController.crouchingState); } else { stateMachine.ChangeState(playerController.fallingState); } } }
public void Enter() { RunAnimation(); BasicMovement.StopHorizontal(movementController); AdvancedMovement.Crouch(movementController); }
public void Enter() { timeInSeconds = 0d; animationController.RunAnimation(animations.fall, PlayerTimings.FALL_TIMES, ref animate, true); AdvancedMovement.Stand(movementController); }
public void Enter() { RunAnimation(); movementController.SetPhysicsMaterialSlope(movementController.IsOnSlope()); BasicMovement.StopHorizontal(movementController, true); AdvancedMovement.Crouch(movementController); timeInSeconds = 0d; }
private void HandleInputOnce(PlayerInputData inputData) { WeaponType primaryWeapon = playerController.playerCharacterData.GetPrimaryWeapon(); if (inputData.inputTokens[8]) // Light { inputData.EatInputToken(8); if (primaryWeapon != WeaponType.NONE) { stateMachine.ChangeState(playerController.lightActionState); } } else if (inputData.inputTokens[9]) // Medium { inputData.EatInputToken(9); if (primaryWeapon != WeaponType.NONE) { stateMachine.ChangeState(playerController.mediumActionState); } } else if (inputData.inputTokens[10]) // Heavy { inputData.EatInputToken(10); if (primaryWeapon != WeaponType.NONE) { stateMachine.ChangeState(playerController.heavyActionState); } } else if (inputData.inputTokens[6]) // Jump { inputData.EatInputToken(6); if (AdvancedMovement.CanStand(movementController)) // If can stand { IState prevState = stateMachine.PeekPreviousState(); if (prevState == playerController.crouchingState) { // If prev state was crouching, skip airborne check stateMachine.ChangeState(playerController.jumpingState); } else if (!movementController.IsAirborne()) { stateMachine.ChangeState(playerController.jumpingState); } } } else if (inputData.inputTokens[3]) // Crouch { inputData.EatInputToken(3); if (!movementController.IsAirborne()) { stateMachine.ChangeState(playerController.crouchingState); } else { stateMachine.ChangeState(playerController.fallingState); } } }
public void Enter() { canSprint = true; playerController.canAirDash = false; timeInSeconds = 0; animationController.RunAnimation(animations.dash, PlayerTimings.DASH_TIMES, ref animate, false); AdvancedMovement.Crouch(movementController); }
public void Enter() { timeInSeconds = 0; animationController.SetSprite(animations.crouch[0]); AdvancedMovement.Crouch(movementController); movementController.SetPhysicsMaterialSlope(movementController.IsOnSlope()); BasicMovement.StopHorizontal(movementController, true); }
public void Exit() { if (animate != null) { animationController.StopAnimation(ref animate); } BasicMovement.StopHorizontal(movementController); AdvancedMovement.Stand(movementController); playerController.playerInputData.ResetInputTokens(); }
// return true if sliding and false otherwise public bool HandleSlideCheck() { if (AdvancedMovement.CheckSlide(movementController)) // if wall in front of player { return(SlideCheckRoutine()); } else //Nothing in front { return(false); } }
public void ExecutePhysics() { AdvancedMovement.Slide(movementController, GameConstants.WALL_SLIDE_MAX_DROP_SPEED); if (playerController.HandleSlideCheck()) // is sliding { if (!movementController.IsAirborne()) { stateMachine.ChangeState(playerController.standingState); } } else // is not sliding { stateMachine.ChangeState(playerController.fallingState); return; } playerController.HandleAirborneMoveInput(PlayerTimings.PLAYER_AIR_MOVE_SPEED); HandleInputOnce(playerController.playerInputData); }
private void HandleDashStop() { BasicMovement.StopAll(movementController); playerController.playerInputData.EatInputToken(7); // remove dash input token if present if (movementController.IsAirborne()) // if in the air { if (AdvancedMovement.CanStand(movementController)) { stateMachine.ChangeState(playerController.fallingState); // fall } else { stateMachine.ChangeState(playerController.crouchingState); // crouch } } else if (AdvancedMovement.CanStand(movementController))// else if on the ground and can stand { BasicMovement.StopHorizontal(movementController); if (canSprint) // If player can sprint { stateMachine.ChangeState(playerController.sprintingState); // sprint } else if (timeInSeconds >= PlayerTimings.PLAYER_DASH_TOTAL) // if recovery is over { if (playerController.playerInputData.pressedInputs[3]) // if holding down (crouch) { stateMachine.ChangeState(playerController.crouchingState); // crouch } else // if not holding down { stateMachine.ChangeState(playerController.standingState); // stand } } } else { stateMachine.ChangeState(playerController.crouchingState); // crouch } return; }
public void Enter() { timeInSeconds = 0; isArmed = false; if (playerController.playerCharacterData.GetPrimaryWeapon() != WeaponType.NONE) { isArmed = true; } RunAnimation(); AdvancedMovement.Stand(movementController); movementController.SetPhysicsMaterialSlope(movementController.IsOnSlope()); if (stateMachine.PeekPreviousState() == playerController.fallingState) { BasicMovement.StopHorizontal(movementController); } else { BasicMovement.StopHorizontal(movementController, true); } }
public void ExecutePhysics() { if (movementController.IsAirborne()) { if (AdvancedMovement.CanStand(movementController)) { stateMachine.ChangeState(playerController.fallingState); // Go to falling state return; } } if (!playerController.playerInputData.pressedInputs[3]) // crouch release { if (AdvancedMovement.CanStand(movementController)) { stateMachine.ChangeState(playerController.standingState); return; } } HandleInput(playerController.playerInputData); HandleInputOnce(playerController.playerInputData); }
private IState DetermineStateEnding() { IState prevState = stateMachine.PeekPreviousState(); if (AdvancedMovement.CanStand(movementController)) { if (prevState == playerController.crouchingState) { return(prevState); } else if (prevState == playerController.crouchingGuardState) { return(prevState); } else if (prevState == playerController.standingGuardState) { return(prevState); } else if (prevState == playerController.walkingState) { return(playerController.standingGuardState); } else if (movementController.IsAirborne()) { return(playerController.fallingState); } else // default { return(playerController.standingState); } } else // if there is no room above the player's head { return(playerController.crouchingState); // crouch } }
public void Enter() { timeInSeconds = 0; if (HandlePreInputs()) { return; } if (playerController.isInCombat) { stateMachine.ChangeState(playerController.combatIdleState); return; } animationController.RunAnimation(animations.idle, PlayerTimings.IDLE_TIMES, ref animate, true); AdvancedMovement.Stand(movementController); movementController.SetPhysicsMaterialSlope(movementController.IsOnSlope()); if (stateMachine.PeekPreviousState() == playerController.fallingState) { BasicMovement.StopHorizontal(movementController); } else { BasicMovement.StopHorizontal(movementController, true); } if (playerController.jumpInputBuffer) { playerController.jumpInputBuffer = false; stateMachine.ChangeState(playerController.jumpingState); return; } }
public void Enter() { timeInSeconds = 0; RunAnimation(); AdvancedMovement.Stand(movementController); movementController.SetPhysicsMaterialSlope(movementController.IsOnSlope()); if (stateMachine.PeekPreviousState() == playerController.fallingState) { BasicMovement.StopHorizontal(movementController); } else { BasicMovement.StopHorizontal(movementController, true); } if (playerController.jumpInputBuffer) { playerController.jumpInputBuffer = false; stateMachine.ChangeState(playerController.jumpingState); return; } }
private void HandleInputOnce(PlayerInputData inputData) { if (inputData.inputTokens[8]) // Light { inputData.EatInputToken(8); if (playerController.playerCharacterData.GetPrimaryWeapon() != WeaponType.NONE) { stateMachine.ChangeState(playerController.lightActionState); } } else if (inputData.inputTokens[9]) // Medium { inputData.EatInputToken(9); if (playerController.playerCharacterData.GetPrimaryWeapon() != WeaponType.NONE) { stateMachine.ChangeState(playerController.mediumActionState); } } else if (inputData.inputTokens[10]) // Heavy { inputData.EatInputToken(10); if (playerController.playerCharacterData.GetPrimaryWeapon() != WeaponType.NONE) { stateMachine.ChangeState(playerController.heavyActionState); } } else if (inputData.inputTokens[7]) // Dash { inputData.EatInputToken(7); if (playerController.canAirDash) { stateMachine.ChangeState(playerController.dashingState); } } else if (inputData.inputTokens[6]) // Jump { inputData.EatInputToken(6); if (stateMachine.PeekPreviousState() == playerController.slidingState) { // coyote jump but with sliding if (timeInSeconds < GameConstants.SLIDE_JUMP_BUFFER) { if (AdvancedMovement.CheckSlideFar(movementController)) { stateMachine.ChangeState(playerController.slidingJumpState); } else { BasicMovement.TurnAround(movementController); stateMachine.ChangeState(playerController.slidingJumpState); } } } else if (stateMachine.PeekPreviousState() == playerController.movingState) { if (timeInSeconds < GameConstants.COYOTE_JUMP_DELAY) { stateMachine.ChangeState(playerController.jumpingState); } } else // Previous state was NOT moving state or sliding state { playerController.jumpBufferTimer = 0d; // Reset the timer playerController.jumpInputBuffer = true; // Buffer the jump command } } }