public void HandleMovement(float delta) { if (inputHandler.isRolling) { return; } if (playerManager.isInteracting) { return; } moveDirection = cameraObject.forward * inputHandler.vertical; moveDirection += cameraObject.right * inputHandler.horizontal; moveDirection.Normalize(); moveDirection.y = 0; float speed = movementSpeed; if (inputHandler.sprintFlag && inputHandler.moveAmount > 0.5) { speed = sprintSpeed; playerManager.isSprinting = true; moveDirection *= speed; playerStats.TakeStamina(sprintStaminaCost); } else { if (inputHandler.moveAmount < 0.5) { moveDirection *= walkingSpeed; playerManager.isSprinting = false; } else { moveDirection *= speed; playerManager.isSprinting = false; } } Vector3 projectedVelocity = Vector3.ProjectOnPlane(moveDirection, normalVector); rigidbody.velocity = projectedVelocity; //animatorHandler.UpdateAnimatorValues(inputHandler.moveAmount, 0, playerManager.isSprinting); if (inputHandler.lockOnFlag && inputHandler.sprintFlag == false) { animatorHandler.UpdateAnimatorValues(inputHandler.vertical, inputHandler.horizontal, playerManager.isSprinting); } else { animatorHandler.UpdateAnimatorValues(inputHandler.moveAmount, 0, playerManager.isSprinting); } }
public void DrainStaminaLightAttack() { playerStats.TakeStamina(Mathf.RoundToInt(attackingWeapon.baseStamina * attackingWeapon.lightAttackMultiplier)); }