private IEnumerator AttackAnimation(string attackType)
    {
        if (playerController.stateMachine.currentPlayerState != PlayerState.interact)
        {
            playerController.stateMachine.currentPlayerState = PlayerState.attack;

            if (attackType == "IsAttackingBow")
            {
                AttackWithBow();

                yield return(new WaitForSecondsRealtime(attackTimer));

                if (playerController.stateMachine.currentPlayerState != PlayerState.interact)
                {
                    playerController.stateMachine.currentPlayerState = PlayerState.idle;
                }
                yield break;
            }
            if (staminaManager.currentStamina > 5)
            {
                isAttacking = true;
                staminaManager.DecreaseStamina(30);
                animator.SetBool(attackType, isAttacking);
                playerController.SlowPlayerDuringAttack();
                yield return(new WaitForSecondsRealtime(attackTimer));

                StopAttacking(attackType);
            }
        }
    }
Пример #2
0
    private void checkIfPlayerCanRun()
    {
        if (Input.GetAxis("Run") == 1)
        {
            stateMachine.ChangeState(PlayerState.run);

            if (staminaManager.currentStamina > 5 && stateMachine.currentPlayerState == PlayerState.run)
            {
                playerSpeed = 8f;
                staminaManager.DecreaseStamina(2f);
            }
            if (staminaManager.currentStamina < 5)
            {
                stateMachine.ChangeState(PlayerState.walk);
                playerSpeed = oldPlayerSpeed;
            }
        }
        else if (Input.GetAxis("Run") == 0)
        {
            playerSpeed = oldPlayerSpeed;
        }
    }