public void Tick() { switch (SpawnerState) { case SpawnState.PAUSE: break; case SpawnState.SPAWNING: if (_waveSpawner.AreAllCreepsSpawned()) { SpawnerState = SpawnState.WAITING; } break; case SpawnState.WAITING: if (WaveIsKilled()) { WaveCompleted(); return; } break; case SpawnState.COUNTDOWN: if (waveCountDown <= 0) { SpawnerState = SpawnState.SPAWNING; SpawnWave(); } else { waveCountDown -= Time.deltaTime; } return; } }