private void HandleMovementActions(float delta) { #region Sprint if (Input.GetKey(KeyCode.Space) && _playerStatus.HasStamina(0f)) { _sprintInputTimer += delta; _isSprinting = true; } #endregion #region Dash and Backstep else { if (_sprintInputTimer > 0 && _sprintInputTimer < 0.5f) { _isSprinting = false; if (Time.time > _playerMovement.GetNextDashTime() && _playerStatus.HasStamina(_dashStaminaCost) && !_disableDash) { if (_movement.magnitude > 0) { _playerMovement.SetIsDashing(true); _animatorHandler.ActivateTargetTrigger("Dash"); } else { _playerMovement.SetIsBackstepping(true); _animatorHandler.ActivateTargetTrigger("Backstep"); } _playerMovement.UpdateDashTime(); _playerStatus.SpendStamina(_dashStaminaCost); } } _sprintInputTimer = 0; } #endregion if (_isSprinting) { _playerStatus.SpendStamina(_dashStaminaCost * Time.deltaTime); } _playerMovement.SetIsSprinting(_isSprinting); }
public void HandleShooting(Weapon weapon) { Debug.Log("the dmg should be : " + weapon.GetLightDamage() + " the multiplier is : " + _playerStatus.getEnancheMultiplier() + "% so the dmg became : " + calculateDamage(weapon.GetLightDamage())); _playerStatus.SpendStamina(12f); _shootingHandler.SetArrowStats(calculateDamage(weapon.GetLightDamage())); _shootingHandler.Shoot(); _attackRate = weapon.GetLightAttackRate(); }
private void OnTriggerEnter(Collider other) { if (_hitMask == (_hitMask | (1 << other.gameObject.layer))) { PlayerStatus status = other.GetComponent <PlayerStatus>(); if (status != null) { status.TakeDamage(_damage); status.SpendStamina(_staminaSteal); } Destroy(gameObject); return; } if (other.GetComponent <LuckyStar>() != null) { Destroy(gameObject); } }