示例#1
0
    private void ShootAbility()
    {
        playerController.currentMovementSpeed = playerController.shootingMovementSpeed;
        playerController.StopVelocity();

        _newTime = Time.time + _fireRate;
        StartCoroutine(ShootBehaviour());

        GameObject playerProjectile = Resources.Load <GameObject>(AssetPaths.pref_playerProjectile);

        GameObject proj      = Instantiate(playerProjectile, _shootOrigin.position, playerProjectile.transform.rotation);
        Vector2    direction = playerController.AimDirection(); //normalized not actually needed

        proj.transform.rotation = Quaternion.LookRotation(Vector3.forward, direction);
        proj.GetComponent <Rigidbody2D>().velocity = direction * _projSpeed * Time.deltaTime;

        //set damage
        projBehaviour        = proj.GetComponent <ProjectileBehaviour>();
        projBehaviour.damage = _projDamage;

        //_healthComponent.Damage(_healthCost);
        //_uiManager.UpdateHealthSlider();
        playerEnergy.RemoveEnergy(_energyCost);
        uiManager.UpdateEnergySlider();
        uiManager.DamageEnergyBar();
    }
示例#2
0
 public void Dash()
 {
     playerEnergy.RemoveEnergy(dashEnergyCost);
     StartCoroutine(DashBehaviour(dashTime));
     uiManager.UpdateEnergySlider();
     uiManager.DamageEnergyBar();
     playerCamera.CameraShake(0.15f, 0.11f);
     gameManager.TutorialCheckDash();
 }
    public void MeleeAttack()
    {
        gameManager.TutorialCheckMelee();

        if (_newTime <= Time.time && playerEnergy.currentEnergy >= _energyCost)
        {
            _canMeleeDamage = true;
            //_playerController.canMove = false;
            //_playerController.StopVelocity();
            _newTime = Time.time + _attackRate;
            StartCoroutine(MeleeBehaviour());
            playerEnergy.RemoveEnergy(_energyCost);
            uiManager.UpdateEnergySlider();
            uiManager.DamageEnergyBar();
        }
    }