Exemple #1
0
    private Wave GenerateRandomWave()
    {
        var enemyType    = Randomizer.GetEnemyType();
        var spawnPattern = Randomizer.GetSpawnPattern();
        var spawnZone    = Randomizer.GetSpawnZone();

        var randomizedSquadron = new Squadron(enemyType, spawnPattern, spawnZone);

        return(new Wave(new List <WaveEvent>
        {
            WaveEvent.ShortDelay(),
            WaveEvent.SpawnSquadron(randomizedSquadron),
            WaveEvent.MediumDelay(),
        }));
    }
Exemple #2
0
    private void InitializeWaves()
    {
        int currentMissionId = PlayerPrefs.GetInt("mission_number");

        MissionDetails missionDetails = GetComponent <MissionDetails>();

        if (missionDetails != null)
        {
            Waves = missionDetails.Waves;

            Debug.Log("Loading Mission " + missionDetails.Name + " : " + missionDetails.Description + " num waves = " + Waves.Count);
        }

        if (endlessSingleEnemyWave != EnemyType.Unknown)
        {
            Waves = new List <Wave> {
                new Wave(new List <WaveEvent>
                {
                    WaveEvent.ShortDelay(),
                    WaveEvent.SpawnSquadron(new Squadron(endlessSingleEnemyWave, SpawnPattern.Center)),
                })
            };
        }
    }
    public void Awake()
    {
        _name = "Asteroid Belt";

        _description = "Navigate through a dangerous asteroid belt, guarded by pirates and aliens alike.";

        _waves = new List <Wave>
        {
            /*
             * new Wave(new List<WaveEvent>
             * {
             *  WaveEvent.ShortDelay(),
             *  WaveEvent.SpawnSquadron(new Squadron(EnemyType.AsteroidTurret, SpawnPattern.JostledRow, SpawnZone.Top, 1)),
             *  WaveEvent.ShortDelay(),
             *  WaveEvent.SpawnSquadron(new Squadron(EnemyType.AsteroidTurret, SpawnPattern.JostledRow, SpawnZone.Top, 2)),
             *  WaveEvent.ShortDelay(),
             *  WaveEvent.SpawnSquadron(new Squadron(EnemyType.AsteroidTurret, SpawnPattern.JostledRow, SpawnZone.Top, 3, -1, true)),
             *  WaveEvent.ShortDelay(),
             *  WaveEvent.SpawnSquadron(new Squadron(EnemyType.CrabLeft, SpawnPattern.Column, SpawnZone.Left)),
             *  WaveEvent.LongDelay(),
             *
             * }),
             */
            new Wave(new List <WaveEvent>
            {
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.MediumAsteroid, SpawnPattern.JostledRow)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.MediumAsteroid, SpawnPattern.JostledRow)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.ResourceAsteroid, SpawnPattern.Random, SpawnZone.Top, 1)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.MediumAsteroid, SpawnPattern.JostledRow)),
            }),
            new Wave(new List <WaveEvent>
            {
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.MediumAsteroid, SpawnPattern.JostledRow)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.MediumAsteroid, SpawnPattern.JostledRow)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.ResourceAsteroid, SpawnPattern.Random, SpawnZone.Top, 1)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.MediumAsteroid, SpawnPattern.JostledRow)),
                WaveEvent.MediumDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.AsteroidTurret, SpawnPattern.JostledRow, SpawnZone.Top, 1)),
            }),
            new Wave(new List <WaveEvent>
            {
                WaveEvent.LongDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.MediumAsteroid, SpawnPattern.Random, SpawnZone.Top, 8)),
                WaveEvent.MediumDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.MediumAsteroid, SpawnPattern.JostledRow)),
                WaveEvent.MediumDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.MediumShrapnelAsteroid, SpawnPattern.JostledRow)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.ResourceAsteroid, SpawnPattern.Random, SpawnZone.Top, 1)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.MediumShrapnelAsteroid, SpawnPattern.JostledRow)),
                WaveEvent.MediumDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.AsteroidTurret, SpawnPattern.JostledRow, SpawnZone.Top, 2, -1, true)),
            }),
            new Wave(new List <WaveEvent>
            {
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.MediumAsteroid, SpawnPattern.JostledRow)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.MediumAsteroid, SpawnPattern.JostledRow)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.ResourceAsteroid, SpawnPattern.Random, SpawnZone.Top, 1)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.MediumShrapnelAsteroid, SpawnPattern.JostledRow)),
                WaveEvent.MediumDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.AsteroidTurret, SpawnPattern.JostledRow, SpawnZone.Top, 3, -1, true)),
            }),
            new Wave(new List <WaveEvent>
            {
                WaveEvent.MediumDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.MediumAsteroid, SpawnPattern.JostledRow)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.MediumAsteroid, SpawnPattern.JostledRow)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.ResourceAsteroid, SpawnPattern.Random, SpawnZone.Top, 1)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.MediumShrapnelAsteroid, SpawnPattern.JostledRow)),
                WaveEvent.MediumDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.AsteroidTurret, SpawnPattern.JostledRow, SpawnZone.Top, 4, -1, true)),
            }),
            new Wave(new List <WaveEvent>
            {
                WaveEvent.MediumDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.BulletAsteroid, SpawnPattern.Random, SpawnZone.Top, 20, 0.2f)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.BulletAsteroid, SpawnPattern.Random, SpawnZone.Top, 20, 0.2f)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.BulletAsteroid, SpawnPattern.Random, SpawnZone.Top, 20, 0.2f)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.BulletAsteroid, SpawnPattern.Random, SpawnZone.Top, 20, 0.2f)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.BulletAsteroid, SpawnPattern.Random, SpawnZone.Top, 20, 0.2f)),
            }),
            new Wave(new List <WaveEvent>
            {
                WaveEvent.MediumDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.MediumAsteroid, SpawnPattern.JostledRow)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.MediumAsteroid, SpawnPattern.JostledRow)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.ResourceAsteroid, SpawnPattern.Random, SpawnZone.Top, 1)),
                WaveEvent.MediumDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.AsteroidTurret, SpawnPattern.JostledRow, SpawnZone.Top, 5, -1, true)),
                WaveEvent.MediumDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.HugeAsteroid, SpawnPattern.Center, SpawnZone.TopAsteroid, 1)),
            }),
            new Wave(new List <WaveEvent>
            {
                WaveEvent.LongDelay(),
                WaveEvent.LongDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.RadialTurret, SpawnPattern.Center, SpawnZone.Top, 1)),
                WaveEvent.MediumDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.RadialTurret, SpawnPattern.JostledRow, SpawnZone.Top, 2, -1, true)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.AsteroidTurret, SpawnPattern.JostledRow, SpawnZone.Top, 2, -1, true)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.RadialTurret, SpawnPattern.JostledRow, SpawnZone.Top, 3, -1, true)),
                WaveEvent.MediumDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.AsteroidTurret, SpawnPattern.JostledRow, SpawnZone.Top, 3, -1, true)),
            }),
            new Wave(new List <WaveEvent>
            {
                WaveEvent.LongDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.BigBoi, SpawnPattern.Center)),
                WaveEvent.MediumDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.PlainJane, SpawnPattern.FlyingV, SpawnZone.Top, 3)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.BigBoi, SpawnPattern.Center)),
                WaveEvent.MediumDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.PlainJane, SpawnPattern.FlyingV, SpawnZone.Top, 4)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.BigBoi, SpawnPattern.FlyingV, SpawnZone.Top, 3)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.PlainJane, SpawnPattern.FlyingV, SpawnZone.Top, 5)),
            }),
            new Wave(new List <WaveEvent>
            {
                WaveEvent.LongDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.CrabLeft, SpawnPattern.Column, SpawnZone.Left)),
                WaveEvent.MediumDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.CrabRight, SpawnPattern.Column, SpawnZone.Right)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.RadialTurret, SpawnPattern.JostledRow, SpawnZone.Top, 4, -1, true)),
                WaveEvent.MediumDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.PlainJane, SpawnPattern.FlyingV, SpawnZone.Top, 4)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.ResourceAsteroid, SpawnPattern.Random, SpawnZone.Top, 1)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.AsteroidTurret, SpawnPattern.FlyingV, SpawnZone.Top, 2)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.CrabLeft, SpawnPattern.DoubleColumn, SpawnZone.Left)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.CrabRight, SpawnPattern.DoubleColumn, SpawnZone.Right)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.BigBoi, SpawnPattern.FlyingV, SpawnZone.Top, 3)),
            }),
            new Wave(new List <WaveEvent>
            {
                WaveEvent.LongDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.BulletAsteroid, SpawnPattern.Random, SpawnZone.Top, 20, 0.2f)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.BulletAsteroid, SpawnPattern.Random, SpawnZone.Top, 20, 0.2f)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.BulletAsteroid, SpawnPattern.Random, SpawnZone.Top, 20, 0.2f)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.BulletAsteroid, SpawnPattern.Random, SpawnZone.Top, 20, 0.2f)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.BulletAsteroid, SpawnPattern.Random, SpawnZone.Top, 20, 0.2f)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.BulletAsteroid, SpawnPattern.Random, SpawnZone.Top, 20, 0.2f)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.BulletAsteroid, SpawnPattern.Random, SpawnZone.Top, 20, 0.2f)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.BulletAsteroid, SpawnPattern.Random, SpawnZone.Top, 20, 0.2f)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.BulletAsteroid, SpawnPattern.Random, SpawnZone.Top, 20, 0.2f)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.BulletAsteroid, SpawnPattern.Random, SpawnZone.Top, 20, 0.2f)),
            }),
            new Wave(new List <WaveEvent>
            {
                WaveEvent.LongDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.RadialTurret, SpawnPattern.Center, SpawnZone.Top, 1)),
                WaveEvent.MediumDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.RadialTurret, SpawnPattern.JostledRow, SpawnZone.Top, 2, -1, true)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.AsteroidTurret, SpawnPattern.JostledRow, SpawnZone.Top, 2, -1, true)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.ResourceAsteroid, SpawnPattern.Random, SpawnZone.Top, 1)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.RadialTurret, SpawnPattern.JostledRow, SpawnZone.Top, 3, -1, true)),
                WaveEvent.MediumDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.AsteroidTurret, SpawnPattern.JostledRow, SpawnZone.Top, 3, -1, true)),
            }),
            new Wave(new List <WaveEvent>
            {
                WaveEvent.MediumDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.MediumAsteroid, SpawnPattern.JostledRow)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.MediumAsteroid, SpawnPattern.JostledRow)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.ResourceAsteroid, SpawnPattern.Random, SpawnZone.Top, 1)),
                WaveEvent.MediumDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.AsteroidTurret, SpawnPattern.JostledRow, SpawnZone.Top, 5, -1, true)),
                WaveEvent.MediumDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.HugeAsteroid, SpawnPattern.Center, SpawnZone.TopAsteroid, 1)),
            }),
            new Wave(new List <WaveEvent>
            {
                WaveEvent.LongDelay(),
                WaveEvent.LongDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.Shockwave, SpawnPattern.Center, SpawnZone.Top, 1)),
                WaveEvent.LongDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.NovaSaucer, SpawnPattern.Center, SpawnZone.Top, 1)),
                WaveEvent.MediumDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.NovaSaucer, SpawnPattern.JostledRow, SpawnZone.Top, 2, -1, true)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.AsteroidTurret, SpawnPattern.JostledRow, SpawnZone.Top, 2, -1, true)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.NovaSaucer, SpawnPattern.JostledRow, SpawnZone.Top, 3, -1, true)),
                WaveEvent.MediumDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.AsteroidTurret, SpawnPattern.JostledRow, SpawnZone.Top, 3, -1, true)),
            }),
            new Wave(new List <WaveEvent>
            {
                WaveEvent.MediumDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.Canon, SpawnPattern.Center, SpawnZone.Top, 1)),
                WaveEvent.MediumDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.AsteroidTurret, SpawnPattern.Center, SpawnZone.Top, 1)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.Canon, SpawnPattern.JostledRow, SpawnZone.Top, 2, -1, true)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.PlainJane, SpawnPattern.JostledRow, SpawnZone.Top, 6, -1, true)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.CrabLeft, SpawnPattern.Column, SpawnZone.Left)),
                WaveEvent.MediumDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.BigBoi, SpawnPattern.JostledRow, SpawnZone.Top, 3, -1, true)),
            }),
            new Wave(new List <WaveEvent>
            {
                WaveEvent.MediumDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.Speedster, SpawnPattern.Random, SpawnZone.Top, 1)),
                WaveEvent.MediumDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.Speedster, SpawnPattern.JostledRow, SpawnZone.Top, 2, -1, true)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.Canon, SpawnPattern.JostledRow, SpawnZone.Top, 2, -1, true)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.PlainJane, SpawnPattern.JostledRow, SpawnZone.Top, 6, -1, true)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.Speedster, SpawnPattern.JostledRow, SpawnZone.Top, 2, -1, true)),
                WaveEvent.MediumDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.BigBoi, SpawnPattern.JostledRow, SpawnZone.Top, 3, -1, true)),
            }),
            new Wave(new List <WaveEvent>
            {
                WaveEvent.LongDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.NovaSaucer, SpawnPattern.Center, SpawnZone.Top, 1)),
                WaveEvent.MediumDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.NovaSaucer, SpawnPattern.JostledRow, SpawnZone.Top, 2, -1, true)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.RadialTurret, SpawnPattern.JostledRow, SpawnZone.Top, 2, -1, true)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.NovaSaucer, SpawnPattern.JostledRow, SpawnZone.Top, 3, -1, true)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.Canon, SpawnPattern.JostledRow, SpawnZone.Top, 2, -1, true)),
                WaveEvent.MediumDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.BigBoi, SpawnPattern.JostledRow, SpawnZone.Top, 3, -1, true)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.AsteroidTurret, SpawnPattern.Center, SpawnZone.Top, 1)),
                WaveEvent.MediumDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.ResourceAsteroid, SpawnPattern.Random, SpawnZone.Top, 1)),
            }),
            new Wave(new List <WaveEvent>
            {
                WaveEvent.LongDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.BulletAsteroid, SpawnPattern.Random, SpawnZone.Top, 20, 0.2f)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.BulletAsteroid, SpawnPattern.Random, SpawnZone.Top, 20, 0.2f)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.BulletAsteroid, SpawnPattern.Random, SpawnZone.Top, 20, 0.2f)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.BulletAsteroid, SpawnPattern.Random, SpawnZone.Top, 20, 0.2f)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.BulletAsteroid, SpawnPattern.Random, SpawnZone.Top, 20, 0.2f)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.BulletAsteroid, SpawnPattern.Random, SpawnZone.Top, 20, 0.2f)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.BulletAsteroid, SpawnPattern.Random, SpawnZone.Top, 20, 0.2f)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.BulletAsteroid, SpawnPattern.Random, SpawnZone.Top, 20, 0.2f)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.BulletAsteroid, SpawnPattern.Random, SpawnZone.Top, 20, 0.2f)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.BulletAsteroid, SpawnPattern.Random, SpawnZone.Top, 20, 0.2f)),
            }),
            new Wave(new List <WaveEvent>
            {
                WaveEvent.LongDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.NovaSaucer, SpawnPattern.Center, SpawnZone.Top, 1)),
                WaveEvent.MediumDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.NovaSaucer, SpawnPattern.JostledRow, SpawnZone.Top, 2, -1, true)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.RadialTurret, SpawnPattern.JostledRow, SpawnZone.Top, 2, -1, true)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.NovaSaucer, SpawnPattern.JostledRow, SpawnZone.Top, 3, -1, true)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.Canon, SpawnPattern.JostledRow, SpawnZone.Top, 2, -1, true)),
                WaveEvent.MediumDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.BigBoi, SpawnPattern.JostledRow, SpawnZone.Top, 3, -1, true)),
            }),
            new Wave(new List <WaveEvent>
            {
                WaveEvent.MediumDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.MediumAsteroid, SpawnPattern.JostledRow)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.MediumAsteroid, SpawnPattern.JostledRow)),
                WaveEvent.ShortDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.ResourceAsteroid, SpawnPattern.Random, SpawnZone.Top, 1)),
                WaveEvent.MediumDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.AsteroidTurret, SpawnPattern.JostledRow, SpawnZone.Top, 5, -1, true)),
                WaveEvent.MediumDelay(),
                WaveEvent.SpawnSquadron(new Squadron(EnemyType.HugeAsteroid, SpawnPattern.Center, SpawnZone.TopAsteroid, 1)),
            }),
        };
    }