void Update()
    {
        currentTimePassed += Time.deltaTime;
        switch (activeAttack)
        {
        case ActiveAttack.DEFAULT_DELAY:
            if (currentTimePassed >= defaultAttackDelay)
            {
                if (numDefaultAttacksDone >= numDefaultAttacksBeforeStrong)
                {
                    numDefaultAttacksDone = 0;
                    startStrongAttackDelay();
                }
                else
                {
                    startDefaultAttack();
                }
            }
            break;

        case ActiveAttack.DEFAULT:
            if (currentTimePassed >= defaultAttackDuration)
            {
                activeAttack = ActiveAttack.DEFAULT_DELAY;
            }
            else
            {
                if (Random.value <= defaultAttackSpawnRate)
                {
                    spawnDefaultAttackSpike();
                }
            }
            break;

        case ActiveAttack.STRONG_DELAY:
            if (currentTimePassed >= strongAttackDelay)
            {
                startStrongAttack();
            }
            break;

        case ActiveAttack.STRONG:
            if (currentTimePassed >= strongAttackDuration)
            {
                activeAttack      = ActiveAttack.LONG_DELAY;
                currentTimePassed = 0;
            }
            else
            {
                foreach (Transform spawnPoint in strongAttackSpawnPoints)
                {
                    if (Random.value <= defaultAttackSpawnRate)
                    {
                        spawnStrongAttackSpike(spawnPoint);
                    }
                }
            }
            break;

        case ActiveAttack.LONG_DELAY:
            if (currentTimePassed >= longDelay)
            {
                activeAttack      = ActiveAttack.DEFAULT_DELAY;
                currentTimePassed = 0;
                playerPickupController.DeactivateHelmetPowerup();
            }
            break;
        }
    }