Exemplo n.º 1
0
    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;
        }
    }