Beispiel #1
0
    private void Update()
    {
        // if stun timer expired
        if (IsStunned && Time.time - _lastStunTime > StunDuration)
        {
            RemoveStun();
        }

        if (!IsStunned)
        {
            // if fire timer expired
            if (CanShoot && Time.time - _lastFireTime > _nextFiringInterval)
            {
                FireGun();
            }

            if (SpeedBoostIsActive)
            {
                float currentDisplacement = -Time.deltaTime * _basicMoveScript.MoveSpeed * (_basicMoveScript.SpeedCoef - 1.0f);
                float displacementChange  = MakeDisplacementChange(currentDisplacement);
                OnDisplaced(displacementChange);

                if (_assignedEnemyWave != null)
                {
                    _assignedEnemyWave.OnEnemyDisplacementChanged();
                }
            }

            if (transform.position.x < DestructionHorizontalMinCoord)
            {
                if (_assignedEnemyWave != null)
                {
                    _assignedEnemyWave.OnEnemyCountChanged();
                }
                RemoveFromScene();
            }
        }
    }