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; } }