Пример #1
0
        public void PowerfullAttack()
        {
            if (isAttackGoing || isCalledToHideWeapon || isCastGoing || isBlocking || isPowerfullAtkInCooldown || chargesLeft == 0 || backWeapon == null)
            {
                return;
            }
            if (currentWeapon.name == "Unarmed" && backWeapon != null)
            {
                if (!backWeapon.HasPowerfullAttack())
                {
                    return;
                }
            }

            mover.RestrictMovement();

            remainingTimeToHideWeapon       = Time.time + timeToHideWeapon;
            remainingTimeToStopAttackSeries = Time.time + timeToStopAttackSeries;

            isAttackGoing        = true;
            isCalledToHideWeapon = false;

            if (currentWeapon.name == "Unarmed" && backWeapon != null)
            {
                TakeHideBackWeapon(true);
                return;
            }

            OnPowerfullAttackStarted();

            animator.SetBool("ChargingPowerfullAttack", true);

            switch (currentWeapon.GetWeaponType())
            {
            case 1:
            {
                playerCamera.SetIsChangingCameraDist(true);
                chargeParticle = Instantiate(currentWeapon.GetChargePowParticle(), this.transform);
                chargeParticle.transform.parent = null;
                break;
            }

            case 2:
            {
                chargeParticle = Instantiate(
                    currentWeapon.GetChargePowParticle(),
                    GameObject.Find("AxeChargeArea").transform);
                playerCamera.SetIsChangingCameraDist(true);
                break;
            }

            default: break;
            }

            powAttackCoroutine = PowerfullAttackCharging(currentWeapon.GetPowChargeTime());
            StartCoroutine(powAttackCoroutine);
        }