AddBeat() public method

public AddBeat ( ChallengeBeat beat ) : void
beat ChallengeBeat
return void
示例#1
0
        protected void AddStaticWall(Challenge c, int y, int h, int gap, int beat)
        {
            int tempy = y;
            int temph = h;

            while (h > 0)
            {
                if (h != gap)
                {
                    c.AddBeat(new ChallengeBeat(beat, new EnemyMaker[] {
                    MakeStaticEnemy(y)
                    }));
                    y += 30;
                    h--;
                }
                else
                {
                    y += 40;
                    h--;
                }
            }
        }
示例#2
0
        //--------------------------------------------------------------------------------
        //   CODE FOR WHAT THE GAME ACTUALLY SENDS TO THE PLAYER
        //--------------------------------------------------------------------------------
        protected override void SetupChallenges()
        {
            const int INT5 = 68;
            const int MID = INT5*2;

            #region Demo Level
            /*
            Challenge wave0_0 = new Challenge(this, Game, 4);
            wave0_0.AddBeat(new ChallengeBeat(0, new EnemyMaker[] {
                MakeJerkEnemy(40), MakeJerkEnemy(100), MakeJerkEnemy(250)
            }));
            TriggerChallenge(0, wave0_0);

            Challenge wave1_0 = new Challenge(this, Game, 8);
            wave1_0.AddBeat(new ChallengeBeat(0, new EnemyMaker[] {
                MakeLoopEnemy(50), MakeLoopEnemy(150)
            }));
            wave1_0.AddBeat(new ChallengeBeat(2, new EnemyMaker[] {
                MakeLoopEnemy(100)
            }));
            TriggerChallenge(0, wave1_0);

            Challenge wave2_0 = new Challenge(this, Game, 12);
            AddStaticBlock(wave2_0, 20, 1, 9);
            TriggerChallenge(0, wave2_0);

            Challenge wave3_0 = new Challenge(this, Game, 16);
            AddEssBeats(wave3_0, 100, 12);
            TriggerChallenge(0, wave3_0);

            Challenge wave4_0 = new Challenge(this, Game, 20);
            wave4_0.AddBeat(new ChallengeBeat(0, new EnemyMaker[] {
                MakePongEnemy(0)
            }));
            TriggerChallenge(0, wave4_0);

            Challenge wave5_0 = new Challenge(this, Game, 30);
            AddStaticWall(wave5_0, 20, 9, 3); ;
            TriggerChallenge(0, wave5_0);
            Challenge wave6_0 = new Challenge(this, Game, 31);
            AddStaticWall(wave6_0, 20, 9, 4); ;
            TriggerChallenge(0, wave6_0);
            Challenge wave7_0 = new Challenge(this, Game, 32);
            AddStaticWall(wave7_0, 20, 9, 5); ;
            TriggerChallenge(0, wave7_0);
            Challenge wave8_0 = new Challenge(this, Game, 33);
            AddStaticWall(wave8_0, 20, 9, 6); ;
            TriggerChallenge(0, wave8_0);
            Challenge wave9_0 = new Challenge(this, Game, 34);
            AddStaticWall(wave9_0, 20, 9, 6); ;
            TriggerChallenge(0, wave9_0);
            */
            #endregion

            #region Intro

            Challenge wave1_0 = new Challenge(this, Game, 3);
            AddSpread(wave1_0, 1, 0, 2, 0);
            AddSpread(wave1_0, 1, INT5/2, 3, 4);
            AddSpread(wave1_0, 1, INT5, 3, 8);
            AddSpread(wave1_0, 1, 0, 3, 12);
            TriggerChallenge(0, wave1_0);

            Challenge wave2_0 = new Challenge(this, Game, 9);
            AddSpread(wave2_0, 1, 0, 2, 2);
            AddSpread(wave2_0, 2, INT5, 3, 4);
            AddSpread(wave2_0, 2, INT5*2, 3, 6);
            AddSpread(wave2_0, 1, 0, 3, 8);
            TriggerChallenge(0, wave2_0);

            Challenge wave3_0 = new Challenge(this, Game, 13);
            wave3_0.AddBeat(new ChallengeBeat(2, new EnemyMaker[] {
                MakeStaticEnemy(MID)
            }));
            wave3_0.AddBeat(new ChallengeBeat(4, new EnemyMaker[] {
                MakeJerkEnemy(MID+INT5), MakeJerkEnemy(MID-INT5)
            }));

            TriggerChallenge(0, wave3_0);

            Challenge wave4_0 = new Challenge(this, Game, 19);
            AddSpread(wave4_0, 3, INT5, 9, 0);
            wave4_0.AddBeat(new ChallengeBeat(4, new EnemyMaker[] {
                MakePongEnemy(0), MakeStaticEnemy(MID+INT5/2), MakeStaticEnemy(MID-INT5/2)
            }));
            AddSpread(wave4_0, 3, INT5, 9, 8);
            //AddEssBeats(wave4_0, MID + 100, 8, 12);
            AddSpread(wave4_0, 2, INT5, 9, 12);
            //AddEssBeats(wave4_0, MID - 100, 8, 12);
            TriggerChallenge(0, wave4_0);

            Challenge wave5_0 = new Challenge(this, Game, 25);
            wave5_0.AddBeat(new ChallengeBeat(2, new EnemyMaker[] {
                MakeLoopEnemy(MID)
            }));
            wave5_0.AddBeat(new ChallengeBeat(6, new EnemyMaker[] {
                MakeLoopEnemy(MID+80), MakeLoopEnemy(MID-80)
            }));
            TriggerChallenge(0, wave5_0);

            Challenge wave6_0 = new Challenge(this, Game, 29);
            wave6_0.AddBeat(new ChallengeBeat(2, new EnemyMaker[] {
                MakeStaticEnemy(MID-90), MakeStaticEnemy(MID+90)
            }));
            wave6_0.AddBeat(new ChallengeBeat(4, new EnemyMaker[] {
                MakeStaticEnemy(MID-30), MakeStaticEnemy(MID+30)
            }));
            wave6_0.AddBeat(new ChallengeBeat(6, new EnemyMaker[] {
                MakeStaticEnemy(MID+30), MakeStaticEnemy(MID-30)
            }));
            wave6_0.AddBeat(new ChallengeBeat(8, new EnemyMaker[] {
                MakeStaticEnemy(MID-90), MakeStaticEnemy(MID+90)
            }));
            AddSpread(wave6_0, 3, 60, 4, 16);
            AddSpread(wave6_0, 4, 60, 5, 24);
            AddEssBeats(wave6_0, MID - 90, 5, 32);
            AddEssBeats(wave6_0, MID + 90, 5, 32);
            TriggerChallenge(0, wave6_0);

            #endregion

            #region verse1

            Challenge wave7_0 = new Challenge(this, Game, 34);
            wave7_0.AddBeat(new ChallengeBeat(0, new EnemyMaker[] {
                MakePongEnemy(0), MakeStaticEnemy(MID-30), MakeStaticEnemy(MID+30)
            }));
            wave7_0.AddBeat(new ChallengeBeat(8, new EnemyMaker[] {
                MakeStaticEnemy(MID-60), MakeStaticEnemy(MID+60)
            }));
            TriggerChallenge(0, wave7_0);

            Challenge wave8_0 = new Challenge(this, Game, 38);
            AddSpread(wave8_0, 3, 90, 4, 0);
            AddSpread(wave8_0, 3, 60, 4, 4);
            AddSpread(wave8_0, 3, 30, 4, 8);
            AddSpread(wave8_0, 1, 60, 4, 12);
            //AddEssBeats(wave6_0, MID - 90, 5, 32);
            TriggerChallenge(0, wave8_0);

            Challenge wave9_0 = new Challenge(this, Game, 42);
            wave9_0.AddBeat(new ChallengeBeat(0, new EnemyMaker[] {
                MakeJerkEnemy(MID-60), MakeJerkEnemy(MID+60)
            }));
            AddEssBeats(wave9_0, MID, 5, 8);
            TriggerChallenge(0, wave9_0);

            Challenge wave10_0 = new Challenge(this, Game, 46);
            AddStaticBlock(wave10_0, 60, 5, 5, 0);
            wave10_0.AddBeat(new ChallengeBeat(0, new EnemyMaker[] {
                MakePongEnemy(0)
            }));
            TriggerChallenge(0, wave10_0);

            #endregion

            #region verse2

            Challenge wave11_0 = new Challenge(this, Game, 50);
            wave11_0.AddBeat(new ChallengeBeat(0, new EnemyMaker[] {
                MakeLoopEnemy(MID+60), MakeLoopEnemy(MID-60)
            }));
            AddSpread(wave11_0, 6, 30, 7, 8);
            wave11_0.AddBeat(new ChallengeBeat(8, new EnemyMaker[] {
                MakeLoopEnemy(MID+60), MakeLoopEnemy(MID-60)
            }));
            TriggerChallenge(0, wave11_0);

            Challenge wave12_0 = new Challenge(this, Game, 54);
            wave12_0.AddBeat(new ChallengeBeat(0, new EnemyMaker[] {
                MakeStaticEnemy(MID-90), MakeJerkEnemy(MID+90)
            }));
            wave12_0.AddBeat(new ChallengeBeat(4, new EnemyMaker[] {
                MakeStaticEnemy(MID-30), MakeJerkEnemy(MID+30)
            }));
            wave12_0.AddBeat(new ChallengeBeat(8, new EnemyMaker[] {
                MakeStaticEnemy(MID+30), MakeJerkEnemy(MID-30)
            }));
            wave12_0.AddBeat(new ChallengeBeat(12, new EnemyMaker[] {
                MakeJerkEnemy(MID-90), MakeStaticEnemy(MID+90)
            }));
            TriggerChallenge(0, wave12_0);

            Challenge wave13_0 = new Challenge(this, Game, 58);
            wave13_0.AddBeat(new ChallengeBeat(0, new EnemyMaker[] {
                MakeStaticEnemy(MID-105), MakePongEnemy(0)
            }));
            wave13_0.AddBeat(new ChallengeBeat(2, new EnemyMaker[] {
                MakeStaticEnemy(MID-75)
            }));
            wave13_0.AddBeat(new ChallengeBeat(4, new EnemyMaker[] {
                MakeStaticEnemy(MID-45), MakeStaticEnemy(MID+60)
            }));
            wave13_0.AddBeat(new ChallengeBeat(6, new EnemyMaker[] {
                MakeStaticEnemy(MID-15)
            }));
            wave13_0.AddBeat(new ChallengeBeat(8, new EnemyMaker[] {
                MakeStaticEnemy(MID+15)
            }));
            wave13_0.AddBeat(new ChallengeBeat(10, new EnemyMaker[] {
                MakeStaticEnemy(MID+45), MakeStaticEnemy(MID-60)
            }));
            wave13_0.AddBeat(new ChallengeBeat(12, new EnemyMaker[] {
                MakeStaticEnemy(MID+75)
            }));
            wave13_0.AddBeat(new ChallengeBeat(14, new EnemyMaker[] {
                MakeStaticEnemy(MID+105)
            }));
            TriggerChallenge(0, wave13_0);

            Challenge wave14_0 = new Challenge(this, Game, 62);
            AddEssBeats(wave14_0, MID - 60, 5, 0);
            AddEssBeats(wave14_0, MID + 60, 5, 0);
            AddEssBeats(wave14_0, MID, 5, 4);
            AddEssBeats(wave14_0, MID - 90, 5, 8);
            AddEssBeats(wave14_0, MID + 90, 5, 8);
            AddEssBeats(wave14_0, MID, 5, 12);

            TriggerChallenge(0, wave14_0);

            #endregion

            #region bridge

            Challenge wave15_0 = new Challenge(this, Game, 66);
            AddStaticWall(wave15_0, 15, 9, 0, 0);
            AddStaticWall(wave15_0, 15, 9, 1, 4);
            AddStaticWall(wave15_0, 15, 9, 2, 8);
            AddStaticWall(wave15_0, 15, 9, 3, 12);
            TriggerChallenge(0, wave15_0);

            Challenge wave16_0 = new Challenge(this, Game, 70);
            AddStaticWall(wave16_0, 15, 9, 4, 0);
            AddStaticWall(wave16_0, 15, 9, 5, 4);
            AddStaticWall(wave16_0, 15, 9, 4, 8);
            AddStaticWall(wave16_0, 15, 9, 5, 9);
            AddStaticWall(wave16_0, 15, 9, 6, 10);
            AddStaticWall(wave16_0, 15, 9, 7, 11);
            TriggerChallenge(0, wave16_0);

            Challenge wave17_0 = new Challenge(this, Game, 73);
            AddSpread(wave17_0, 5, 45, 2, 0);
            wave17_0.AddBeat(new ChallengeBeat(0, new EnemyMaker[] {
                MakeJerkEnemy(MID-15)
            }));
            AddSpread(wave17_0, 5, 60, 2, 2);
            wave17_0.AddBeat(new ChallengeBeat(2, new EnemyMaker[] {
                MakeJerkEnemy(MID+15)
            }));
            AddSpread(wave17_0, 5, 45, 2, 4);
            AddSpread(wave17_0, 5, 60, 2, 6);

            wave17_0.AddBeat(new ChallengeBeat(8, new EnemyMaker[] {
                MakeLoopEnemy(MID+60), MakeLoopEnemy(MID-60), MakeJerkEnemy(MID+60), MakeJerkEnemy(MID-60), MakeStaticEnemy(15), MakeStaticEnemy(285)
            }));
            wave17_0.AddBeat(new ChallengeBeat(10, new EnemyMaker[] {
                MakeLoopEnemy(MID+45), MakeLoopEnemy(MID-45)
            }));
            wave17_0.AddBeat(new ChallengeBeat(12, new EnemyMaker[] {
                MakeLoopEnemy(MID+60), MakeLoopEnemy(MID-60), MakeJerkEnemy(MID), MakeStaticEnemy(15), MakeStaticEnemy(285)
            }));
            wave17_0.AddBeat(new ChallengeBeat(14, new EnemyMaker[] {
                MakeLoopEnemy(MID+45), MakeLoopEnemy(MID-45)
            }));
            TriggerChallenge(0, wave17_0);

            Challenge wave18_0 = new Challenge(this, Game, 77);
            AddSpread(wave18_0, 1, 0, 9, 0);
            wave18_0.AddBeat(new ChallengeBeat(0, new EnemyMaker[] {
                MakeLoopEnemy(MID-100), MakeLoopEnemy(MID+100)
            }));
            AddSpread(wave18_0, 2, 30, 9, 1);
            AddSpread(wave18_0, 2, 60, 9, 2);
            AddSpread(wave18_0, 2, 90, 9, 3);
            wave18_0.AddBeat(new ChallengeBeat(3, new EnemyMaker[] {
                MakeLoopEnemy(MID-100), MakeLoopEnemy(MID+100), MakeJerkEnemy(MID), MakeJerkEnemy(MID+15), MakeJerkEnemy(MID-15)
            }));
            AddSpread(wave18_0, 2, 60, 9, 4);
            AddSpread(wave18_0, 2, 30, 9, 5);
            AddSpread(wave18_0, 1, 0, 9, 6);
            AddStaticBlock(wave18_0, 15, 3, 10, 7);
            AddEssBeats(wave18_0, 30, 8, 8);
            AddEssBeats(wave18_0, 270, 8, 8);
            AddEssBeats(wave18_0, MID, 8, 8);
            TriggerChallenge(0, wave18_0);

            #endregion

            #region verse3

            Challenge wave19_0 = new Challenge(this, Game, 81);
            wave19_0.AddBeat(new ChallengeBeat(0, new EnemyMaker[] {
                MakeLoopEnemy(MID-15), MakeLoopEnemy(MID+75), MakeLoopEnemy(MID-105), MakePongEnemy(0)
            }));
            wave19_0.AddBeat(new ChallengeBeat(2, new EnemyMaker[] {
                MakeLoopEnemy(MID+15), MakeLoopEnemy(MID+105), MakeLoopEnemy(MID-75), MakePongEnemy(0)
            }));
            wave19_0.AddBeat(new ChallengeBeat(4, new EnemyMaker[] {
                MakeJerkEnemy(MID+15), MakeJerkEnemy(MID+105), MakeJerkEnemy(MID-75), MakePongEnemy(0)
            }));
            wave19_0.AddBeat(new ChallengeBeat(6, new EnemyMaker[] {
                MakeJerkEnemy(MID+15), MakeJerkEnemy(MID+105), MakeJerkEnemy(MID-75), MakePongEnemy(0)
            }));
            AddStaticWall(wave19_0, 15, 10, 10, 8);
            AddSpread(wave19_0, 9, 30, 4, 9);
            AddStaticWall(wave19_0, 15, 10, 10, 10);
            AddSpread(wave19_0, 9, 30, 4, 11);
            TriggerChallenge(0, wave19_0);

            Challenge wave20_0 = new Challenge(this, Game, 85);
            wave20_0.AddBeat(new ChallengeBeat(0, new EnemyMaker[] {
                MakeLoopEnemy(MID), MakeLoopEnemy(MID+90), MakeLoopEnemy(MID-90)
            }));
            AddStaticWall(wave20_0, 15, 10, 3, 0);
            AddStaticWall(wave20_0, 15, 10, 4, 1);
            AddStaticWall(wave20_0, 15, 10, 5, 2);
            AddStaticWall(wave20_0, 15, 10, 6, 3);
            wave20_0.AddBeat(new ChallengeBeat(3, new EnemyMaker[] {
                MakePongEnemy(0)
            }));
            AddStaticWall(wave20_0, 15, 10, 7, 4);
            wave20_0.AddBeat(new ChallengeBeat(4, new EnemyMaker[] {
                MakeJerkEnemy(30), MakeJerkEnemy(60), MakeJerkEnemy(90), MakeJerkEnemy(120), MakeJerkEnemy(150), MakeJerkEnemy(180), MakeJerkEnemy(210), MakeJerkEnemy(240), MakeJerkEnemy(270)
            }));

            wave20_0.AddBeat(new ChallengeBeat(4, new EnemyMaker[] {
                MakePongEnemy(0)
            }));
            AddStaticWall(wave20_0, 15, 10, 6, 5);
            wave20_0.AddBeat(new ChallengeBeat(5, new EnemyMaker[] {
                MakePongEnemy(0)
            }));
            AddStaticWall(wave20_0, 15, 10, 5, 6);
            wave20_0.AddBeat(new ChallengeBeat(6, new EnemyMaker[] {
                MakePongEnemy(0)
            }));
            AddStaticWall(wave20_0, 15, 10, 4, 7);
            wave20_0.AddBeat(new ChallengeBeat(7, new EnemyMaker[] {
                MakePongEnemy(0)
            }));
            AddStaticWall(wave20_0, 15, 10, 3, 8);
            wave20_0.AddBeat(new ChallengeBeat(8, new EnemyMaker[] {
                MakePongEnemy(0)
            }));
            AddStaticWall(wave20_0, 15, 10, 4, 9);
            wave20_0.AddBeat(new ChallengeBeat(9, new EnemyMaker[] {
                MakePongEnemy(0)
            }));
            AddStaticWall(wave20_0, 15, 10, 5, 10);
            wave20_0.AddBeat(new ChallengeBeat(10, new EnemyMaker[] {
                MakePongEnemy(0)
            }));
            AddStaticWall(wave20_0, 15, 10, 6, 11);
            wave20_0.AddBeat(new ChallengeBeat(11, new EnemyMaker[] {
                MakePongEnemy(0)
            }));

            wave20_0.AddBeat(new ChallengeBeat(12, new EnemyMaker[] {
                MakeJerkEnemy(30), MakeJerkEnemy(60), MakeJerkEnemy(90), MakeJerkEnemy(120), MakeJerkEnemy(150), MakeJerkEnemy(180), MakeJerkEnemy(210), MakeJerkEnemy(240), MakeJerkEnemy(270)
            }));
            //AddStaticWall(wave20_0, 15, 10, 7, 12);
            AddStaticWall(wave20_0, 15, 10, 8, 13);

            AddEssBeats(wave20_0, 15, 16, 16);
            AddEssBeats(wave20_0, 45, 16, 16);
            AddEssBeats(wave20_0, 75, 16, 16);
            AddEssBeats(wave20_0, 105, 16, 16);
            AddEssBeats(wave20_0, 135, 16, 16);
            AddEssBeats(wave20_0, 165, 16, 16);
            AddEssBeats(wave20_0, 195, 16, 16);
            AddEssBeats(wave20_0, 225, 16, 16);
            AddEssBeats(wave20_0, 255, 16, 16);
            AddEssBeats(wave20_0, 285, 16, 16);

            TriggerChallenge(0, wave20_0);

            #endregion
        }
示例#3
0
        protected void AddStaticBlock(Challenge c, int y, int w, int h, int beat)
        {
            int tempy = y;
            int temph = h;
            int tempw = w;

            while (w > 0)
            {
                while (h > 0)
                {
                    c.AddBeat(new ChallengeBeat(beat+((2 * tempw) - (2 * w)), new EnemyMaker[] {
                    MakeStaticEnemy(y)
                    }));
                    y += 30;
                    h--;
                }
                y = tempy;
                h = temph;
                w--;
            }
        }
示例#4
0
        protected void AddSpread(Challenge c, int number, int interval, int gap, int beat)
        {
            int tempy = 0;
            int temph = 0;

            if (number % 2 == 1)
            {
                tempy = MID - (((number - 1) / 2)*interval);
            }
            else
            {
                tempy = (MID + interval / 2) - (interval*number/2);
            }

            while (temph < number)
            {
                if (temph != gap)
                {
                    c.AddBeat(new ChallengeBeat(beat, new EnemyMaker[] {
                        MakeStaticEnemy(tempy)
                    }));
                    tempy += interval;
                    temph++;
                }
                else
                {
                    tempy += interval;
                    temph ++;
                }
            }
        }
示例#5
0
        //--------------------------------------------------------------------------------
        //   DEFINE ENEMY GROUPS
        //--------------------------------------------------------------------------------
        //protected ChallengeBeat MakeEssString(int y)
        //{
        //    EnemyMaker[] makers = new EnemyMaker[] { MakeEssEnemy(0, y), MakeEssEnemy(16, y) };
        //    EnemyMaker[] moreMakers = new EnemyMaker[] { MakeEssEnemy(32, y) };
        //    makers.Concat(moreMakers);
        //}
        protected void AddEssBeats(Challenge c, int y, int length, int beat)
        {
            int templength = length;

            while (length > 0)
            {
                c.AddBeat(new ChallengeBeat(beat+(templength - length), new EnemyMaker[] {
                MakeEssEnemy(y)
                }));
                length--;
            }
        }
示例#6
0
 protected virtual void CoalesceChallengeBeats(Challenge l, Challenge r)
 {
     ChallengeBeat[] leftBeats = CoalesceChallengeBeatEnemies(true, NextMeasureLeftDifficulty);
     ChallengeBeat[] rightBeats = CoalesceChallengeBeatEnemies(false, NextMeasureRightDifficulty);
     foreach (ChallengeBeat b in leftBeats)
     {
         l.AddBeat(b);
     }
     foreach (ChallengeBeat b in rightBeats)
     {
         r.AddBeat(b);
     }
 }
示例#7
0
        protected override void SetupChallenges()
        {
            #region Demo Level
            //Challenge testChallenge = new Challenge(this, Game, 4);
            //testChallenge.AddBeat(new ChallengeBeat(0, new EnemyMaker[] { MakeEnemy(false, 1), MakeEnemy(false, 1) }));
            //testChallenge.AddBeat(new ChallengeBeat(2, new EnemyMaker[] { MakeEnemy(true, 1), MakeEnemy(true, 1) }));
            //TriggerChallenge(0, testChallenge);
            #endregion

            #region Intro

            Challenge wave1_0 = new Challenge(this, Game, 3);
            wave1_0.AddBeat(new ChallengeBeat(0, new EnemyMaker[] {
                MakeSpiderEnemy(1,1)
            }));
            wave1_0.AddBeat(new ChallengeBeat(4, new EnemyMaker[] {
                MakeRobotEnemy(1,1)
            }));
            wave1_0.AddBeat(new ChallengeBeat(8, new EnemyMaker[] {
                MakeSpiderEnemy(1,1), MakeSpiderEnemy(1,1)
            }));
            TriggerChallenge(0, wave1_0);

            Challenge wave2_0 = new Challenge(this, Game, 9);
            wave2_0.AddBeat(new ChallengeBeat(2, new EnemyMaker[] {
                MakeFrogEnemy(1,2)
            }));
            wave2_0.AddBeat(new ChallengeBeat(4, new EnemyMaker[] {
                MakeFrogEnemy(1,2)
            }));
            wave2_0.AddBeat(new ChallengeBeat(6, new EnemyMaker[] {
                MakeSpiderEnemy(1,2)
            }));
            wave2_0.AddBeat(new ChallengeBeat(8, new EnemyMaker[] {
                MakeFrogEnemy(1,2)
            }));
            TriggerChallenge(0, wave2_0);

            Challenge wave3_0 = new Challenge(this, Game, 13);
            wave3_0.AddBeat(new ChallengeBeat(2, new EnemyMaker[] {
                MakeFrogEnemy(1,1)
            }));
            wave3_0.AddBeat(new ChallengeBeat(4, new EnemyMaker[] {
                MakeFrogEnemy(1,1)
            }));
            TriggerChallenge(0, wave3_0);

            Challenge wave4_0 = new Challenge(this, Game, 19);
            wave4_0.AddBeat(new ChallengeBeat(0, new EnemyMaker[] {
                MakeRobotEnemy(1,1), MakeHoverEnemy(100, 1, 2)
            }));
            wave4_0.AddBeat(new ChallengeBeat(4, new EnemyMaker[] {
                MakeFrogEnemy(1,1)
            }));
            wave4_0.AddBeat(new ChallengeBeat(8, new EnemyMaker[] {
                MakeSpiderEnemy(1,1)
            }));
            wave4_0.AddBeat(new ChallengeBeat(10, new EnemyMaker[] {
                MakeSpiderEnemy(1,1)
            }));
            wave4_0.AddBeat(new ChallengeBeat(12, new EnemyMaker[] {
                MakeSpiderEnemy(1,1)
            }));
            TriggerChallenge(0, wave4_0);

            Challenge wave5_0 = new Challenge(this, Game, 25);
            wave5_0.AddBeat(new ChallengeBeat(2, new EnemyMaker[] {
                MakeHoverEnemy(30, 1, 1), MakeHoverEnemy(80, 1, 1), MakeHoverEnemy(130,                1, 1), MakeHoverEnemy(180, 1, 1), MakeHoverEnemy(230, 1, 1)
            }));
            TriggerChallenge(0, wave5_0);

            Challenge wave6_0 = new Challenge(this, Game, 29);
            wave6_0.AddBeat(new ChallengeBeat(2, new EnemyMaker[] {
                MakeRobotEnemy(1,1)
            }));
            wave6_0.AddBeat(new ChallengeBeat(4, new EnemyMaker[] {
                MakeRobotEnemy(1,1)
            }));
            wave6_0.AddBeat(new ChallengeBeat(6, new EnemyMaker[] {
                MakeRobotEnemy(1,1)
            }));
            wave6_0.AddBeat(new ChallengeBeat(8, new EnemyMaker[] {
                MakeRobotEnemy(1,1)
            }));
            TriggerChallenge(0, wave6_0);

            #endregion

            #region verse1

            Challenge wave7_0 = new Challenge(this, Game, 34);
            wave7_0.AddBeat(new ChallengeBeat(0, new EnemyMaker[] {
                MakeHoverEnemy(0,1,2), MakeHoverEnemy(30,1,2), MakeHoverEnemy(60,1,2),                 MakeHoverEnemy(90,1,2), MakeHoverEnemy(120,1,2), MakeHoverEnemy(150,1,                 2), MakeHoverEnemy(180,1,2), MakeHoverEnemy(210,1,2), MakeHoverEnemy                   (240,1,2)
            }));
            wave7_0.AddBeat(new ChallengeBeat(8, new EnemyMaker[] {
                MakeRobotEnemy(2,1)
            }));
            TriggerChallenge(0, wave7_0);

            Challenge wave8_0 = new Challenge(this, Game, 38);
            wave8_0.AddBeat(new ChallengeBeat(0, new EnemyMaker[] {
                MakeHoverEnemy(260,1,2)
            }));
            wave8_0.AddBeat(new ChallengeBeat(4, new EnemyMaker[] {
                MakeHoverEnemy(230,1,2)
            }));
            wave8_0.AddBeat(new ChallengeBeat(8, new EnemyMaker[] {
                MakeHoverEnemy(200,1,2)
            }));
            wave8_0.AddBeat(new ChallengeBeat(12, new EnemyMaker[] {
                MakeSpiderEnemy(1,1)
            }));
            wave8_0.AddBeat(new ChallengeBeat(16, new EnemyMaker[] {
                MakeHoverEnemy(170,1,2)
            }));
            wave8_0.AddBeat(new ChallengeBeat(20, new EnemyMaker[] {
                MakeHoverEnemy(140,1,2)
            }));
            TriggerChallenge(0, wave8_0);

            Challenge wave9_0 = new Challenge(this, Game, 42);
            wave9_0.AddBeat(new ChallengeBeat(0, new EnemyMaker[] {
                MakeHoverEnemy(0,1,1), MakeHoverEnemy(30,1,1), MakeFrogEnemy(1,1)
            }));
            wave9_0.AddBeat(new ChallengeBeat(0, new EnemyMaker[] {
                MakeHoverEnemy(0,1,1), MakeHoverEnemy(30,1,1), MakeRobotEnemy(1,1)
            }));
            TriggerChallenge(0, wave9_0);

            Challenge wave10_0 = new Challenge(this, Game, 46);
            wave10_0.AddBeat(new ChallengeBeat(0, new EnemyMaker[] {
                MakeSpiderEnemy(1,1), MakeHoverEnemy(50, 1, 1)
            }));
            wave10_0.AddBeat(new ChallengeBeat(2, new EnemyMaker[] {
                MakeSpiderEnemy(1,1), MakeHoverEnemy(50, 1, 1)
            }));
            wave10_0.AddBeat(new ChallengeBeat(4, new EnemyMaker[] {
                MakeSpiderEnemy(1,1), MakeHoverEnemy(50, 1, 1)
            }));
            wave10_0.AddBeat(new ChallengeBeat(6, new EnemyMaker[] {
                MakeSpiderEnemy(1,1), MakeHoverEnemy(50, 1, 1)
            }));
            TriggerChallenge(0, wave10_0);

            #endregion

            #region verse2

            Challenge wave11_0 = new Challenge(this, Game, 50);
            wave11_0.AddBeat(new ChallengeBeat(0, new EnemyMaker[] {
                MakeHoverEnemy(140,1,1)
            }));
            wave11_0.AddBeat(new ChallengeBeat(2, new EnemyMaker[] {
                MakeHoverEnemy(170,1,1), MakeHoverEnemy(110,1,1)
            }));
            wave11_0.AddBeat(new ChallengeBeat(4, new EnemyMaker[] {
                MakeHoverEnemy(200,1,1), MakeHoverEnemy(80,1,1)
            }));
            wave11_0.AddBeat(new ChallengeBeat(6, new EnemyMaker[] {
                MakeHoverEnemy(230,1,1), MakeHoverEnemy(50,1,1)
            }));
            wave11_0.AddBeat(new ChallengeBeat(8, new EnemyMaker[] {
                MakeHoverEnemy(260,1,1), MakeHoverEnemy(20,1,1)
            }));
            TriggerChallenge(0, wave11_0);

            Challenge wave12_0 = new Challenge(this, Game, 54);
            wave12_0.AddBeat(new ChallengeBeat(0, new EnemyMaker[] {
                MakeSpiderEnemy(1,2)
            }));
            TriggerChallenge(0, wave12_0);

            Challenge wave13_0 = new Challenge(this, Game, 58);
            wave13_0.AddBeat(new ChallengeBeat(0, new EnemyMaker[] {
                MakeRobotEnemy(2,1)
            }));
            TriggerChallenge(0, wave13_0);

            Challenge wave14_0 = new Challenge(this, Game, 62);
            wave14_0.AddBeat(new ChallengeBeat(0, new EnemyMaker[] {
                MakeFrogEnemy(1,1)
            }));
            wave14_0.AddBeat(new ChallengeBeat(8, new EnemyMaker[] {
                MakeFrogEnemy(1,1)
            }));
            TriggerChallenge(0, wave14_0);

            #endregion

            #region bridge

            Challenge wave15_0 = new Challenge(this, Game, 66);
            wave15_0.AddBeat(new ChallengeBeat(0, new EnemyMaker[] {
                MakeHoverEnemy(180,1,1)
            }));
            wave15_0.AddBeat(new ChallengeBeat(2, new EnemyMaker[] {
                MakeHoverEnemy(220,1,1)
            }));
            wave15_0.AddBeat(new ChallengeBeat(4, new EnemyMaker[] {
                MakeHoverEnemy(180, 1,1)
            }));
            wave15_0.AddBeat(new ChallengeBeat(6, new EnemyMaker[] {
                MakeHoverEnemy(220, 1,1)
            }));
            wave15_0.AddBeat(new ChallengeBeat(8, new EnemyMaker[] {
                MakeHoverEnemy(180, 1,1)
            }));
            wave15_0.AddBeat(new ChallengeBeat(10, new EnemyMaker[] {
                MakeHoverEnemy(220, 1,1)
            }));
            TriggerChallenge(0, wave15_0);

            Challenge wave16_0 = new Challenge(this, Game, 70);
            wave16_0.AddBeat(new ChallengeBeat(0, new EnemyMaker[] {
                MakeRobotEnemy(1,1), MakeHoverEnemy(80, 1,1)
            }));
            wave16_0.AddBeat(new ChallengeBeat(4, new EnemyMaker[] {
                MakeRobotEnemy(1,1), MakeHoverEnemy(80, 1,1)
            }));
            wave16_0.AddBeat(new ChallengeBeat(8, new EnemyMaker[] {
                MakeRobotEnemy(1,1), MakeHoverEnemy(80, 1,1)
            }));
            TriggerChallenge(0, wave16_0);

            Challenge wave17_0 = new Challenge(this, Game, 73);
            wave17_0.AddBeat(new ChallengeBeat(0, new EnemyMaker[] {
                MakeHoverEnemy(0,1,1), MakeHoverEnemy(30,1,1), MakeHoverEnemy(60,1,1), MakeHoverEnemy(90,1,1),MakeHoverEnemy(120,1,1),MakeHoverEnemy(150,1,1), MakeHoverEnemy(180,1,1), MakeHoverEnemy(210,1,1), MakeHoverEnemy(240,1,1), MakeHoverEnemy(270,1,1),
            }));
            wave17_0.AddBeat(new ChallengeBeat(2, new EnemyMaker[] {
                MakeHoverEnemy(0,1,1), MakeHoverEnemy(30,1,1), MakeHoverEnemy(60,1,1), MakeHoverEnemy(90,1,1),MakeHoverEnemy(120,1,1),MakeHoverEnemy(150,1,1), MakeHoverEnemy(180,1,1), MakeHoverEnemy(210,1,1), MakeHoverEnemy(240,1,1), MakeHoverEnemy(270,1,1),
            }));
            TriggerChallenge(0, wave17_0);

            Challenge wave18_0 = new Challenge(this, Game, 77);
            wave18_0.AddBeat(new ChallengeBeat(0, new EnemyMaker[] {
                MakeSpiderEnemy(1,1), MakeFrogEnemy(1,1)
            }));
            wave18_0.AddBeat(new ChallengeBeat(2, new EnemyMaker[] {
                MakeSpiderEnemy(1,1),
            }));
            wave18_0.AddBeat(new ChallengeBeat(4, new EnemyMaker[] {
                MakeSpiderEnemy(1,1),
            }));
            wave18_0.AddBeat(new ChallengeBeat(6, new EnemyMaker[] {
                MakeSpiderEnemy(1,1),
            }));
            wave18_0.AddBeat(new ChallengeBeat(8, new EnemyMaker[] {
                MakeSpiderEnemy(1,1),
            }));
            wave18_0.AddBeat(new ChallengeBeat(10, new EnemyMaker[] {
                MakeSpiderEnemy(1,1),
            }));
            TriggerChallenge(0, wave18_0);

            #endregion

            #region verse3

            Challenge wave19_0 = new Challenge(this, Game, 79);
            wave19_0.AddBeat(new ChallengeBeat(0, new EnemyMaker[] {
                MakeHoverEnemy(0,1,1), MakeHoverEnemy(60,1,1), MakeHoverEnemy(120,1,1), MakeHoverEnemy(180,1,1), MakeHoverEnemy(240,1,1)
            }));
            wave19_0.AddBeat(new ChallengeBeat(2, new EnemyMaker[] {
                MakeHoverEnemy(30,1,1), MakeHoverEnemy(90,1,1), MakeHoverEnemy(150,1,1), MakeHoverEnemy(210,1,1), MakeHoverEnemy(270,1,1)
            }));
            wave19_0.AddBeat(new ChallengeBeat(4, new EnemyMaker[] {
                MakeHoverEnemy(0,1,1), MakeHoverEnemy(60,1,1), MakeHoverEnemy(120,1,1), MakeHoverEnemy(180,1,1), MakeHoverEnemy(240,1,1)
            }));
            wave19_0.AddBeat(new ChallengeBeat(6, new EnemyMaker[] {
                MakeHoverEnemy(30,1,1), MakeHoverEnemy(90,1,1), MakeHoverEnemy(150,1,1), MakeHoverEnemy(210,1,1), MakeHoverEnemy(270,1,1)
            }));
            wave19_0.AddBeat(new ChallengeBeat(8, new EnemyMaker[] {
                MakeHoverEnemy(0,1,1), MakeHoverEnemy(60,1,1), MakeHoverEnemy(120,1,1), MakeHoverEnemy(180,1,1), MakeHoverEnemy(240,1,1)
            }));
            wave19_0.AddBeat(new ChallengeBeat(12, new EnemyMaker[] {
                MakeHoverEnemy(30,1,1), MakeHoverEnemy(90,1,1), MakeHoverEnemy(150,1,1), MakeHoverEnemy(210,1,1), MakeHoverEnemy(270,1,1)
            }));
            TriggerChallenge(0, wave19_0);

            Challenge wave20_0 = new Challenge(this, Game, 82);
            wave20_0.AddBeat(new ChallengeBeat(0, new EnemyMaker[] {
                MakeRobotEnemy(5,1), MakeRobotEnemy(3,2)
            }));
            TriggerChallenge(0, wave20_0);

            #endregion
        }