Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 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);
     }
 }