private void SpawnEnemies(Wave wave) { if (onSpawnEnemies != null) { onSpawnEnemies.Invoke(wave.enemyType); } switch (wave.enemyType) { case Wave.EnemyType.Asteroid: asteroidManager.SpawnNewSet(wave.enemyCount, CalculateForDifficulty(maxAsteroidSizeStart, maxAsteroidSizeEnd, wave.Difficulty), CalculateForDifficulty(initialAsteroidSpeedStart, initialAsteroidSpeedEnd, wave.Difficulty), wave.Difficulty); break; case Wave.EnemyType.Droid: if (wave.objective == Wave.ObjectiveType.Protect) { saucerManager.SetTargets(SelectProtectionTargets()); } else { saucerManager.SetTargets(new List <HealthController> { player.healthController, player.healthController, null }); // 33% chance of shooting randomly } saucerManager.SpawnNewSet(wave.enemyCount, 1f, CalculateForDifficulty(saucerSpeedStart, saucerSpeedEnd, wave.Difficulty), wave.Difficulty); break; } }