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);
         }
     }
 }
Пример #2
0
    public void Enter()
    {
        RunAnimation();

        BasicMovement.StopHorizontal(movementController);
        AdvancedMovement.Crouch(movementController);
    }
Пример #3
0
    public void Enter()
    {
        timeInSeconds = 0d;

        animationController.RunAnimation(animations.fall, PlayerTimings.FALL_TIMES, ref animate, true);

        AdvancedMovement.Stand(movementController);
    }
Пример #4
0
 public void Enter()
 {
     RunAnimation();
     movementController.SetPhysicsMaterialSlope(movementController.IsOnSlope());
     BasicMovement.StopHorizontal(movementController, true);
     AdvancedMovement.Crouch(movementController);
     timeInSeconds = 0d;
 }
Пример #5
0
    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);
            }
        }
    }
Пример #6
0
    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);
    }
Пример #8
0
    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);
     }
 }
Пример #10
0
    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);
    }
Пример #11
0
 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;
 }
Пример #12
0
    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
        }
    }
Пример #15
0
    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;
        }
    }
Пример #16
0
    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;
        }
    }
Пример #17
0
 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
         }
     }
 }