예제 #1
0
    void CreateBosses()
    {
        EnemyMovementPattern mp = new EnemyMovementPattern(enterLeave);

        mp.Customize("StayTime", 27f);
        mp.Customize("LeaveDir", "Up");
        bossMid1 = new Wave(55f, mp, null, 1, false, 150, false, 3f, 1);
        bossMid1.SetUpBoss(0.5f, "Asura");
        bossMid1.isMidBoss = true;

        mp = new EnemyMovementPattern(enterLeave);
        mp.Customize("StayTime", 0);
        boss1 = new Wave(96f, mp, null, 1, false, 200, true, 3f, 2);
        boss1.SetUpBoss(1, "Forest Guardian");

        boss2 = new Wave(30f, null, null, 1, false, 200, true, 3f, 2);
        boss2.SetUpBoss(2, "Spider Queen");
        boss2.movementPattern = enterFromTop;
    }
예제 #2
0
    public IEnumerator Execute(string boss, int phase, EnemyShoot enemy, EnemyMovement enemyMove)
    {
        endOfPhase = false;
        EnemyLib lib = GameController.gameControl.enemyLib;

        patterns.Clear();

        p1 = null;
        p2 = null;
        p3 = null;
        p4 = null;
        p5 = null;

        mp1 = null;
        mp2 = null;
        mp3 = null;
        mp4 = null;
        mp5 = null;
        GameController.gameControl.ui.UpdateTopPlayer("Boss" + enemy.wave.bossIndex + "_" + (phase));

//		Debug.Log ("executing phase " + phase);
        switch (boss)
        {
        case "Boss0.5":
            switch (phase)
            {
            case 0:
                enemy.NextBossPhase();
                break;

            case 1:
                GameController.gameControl.ui.UpdateTopPlayer(1f);

                enemy.enemyLife.SetInvulnerable(true);
                p1 = new Pattern(lib.spiral);
                p1.Customize(new BulletMovementPattern(true, "WaitAndExplode", 5f, p1, 0, 14));
                p1.Customize("LoopCircles", 1440);
                p1.Customize("BulletCount", 100);
                p1.SetSprite("Circle", "Glow", "Green");

                p2 = new Pattern(lib.maelStrom);
                p2.Customize(new BulletMovementPattern(true, "Explode", 6f, p2, 0, 14));
                p2.Customize("RotationDirection", 1);
                p2.SetSprite("Circle", "Glow", "Green");

                p3 = new Pattern(lib.maelStrom);
                p3.SetSprite("Circle", "Glow", "Yellow");
                p3.Customize(new BulletMovementPattern(true, "Explode", 6f, p3, 0, 14));
                p3.Customize("RotationDirection", -1);

                mp1 = new EnemyMovementPattern(lib.centerHor);
                mp1.Customize("Speed", 7f);

                enemyMove.SetUpPatternAndMove(mp1);
                for (int i = 0; i < 5; i++)
                {
                    yield return(new WaitForSeconds(2f));

                    enemy.BossShoot(p2);
                    enemy.BossShoot(p3);
                    yield return(new WaitForSeconds(2.2f));

                    p2.stop = true;
                    p3.stop = true;
                }

                mp1 = new EnemyMovementPattern("Leaving", new Vector3(lib.centerX, 13, 0), false, 0);
                enemyMove.SetUpPatternAndMove(mp1);
                yield return(new WaitForSeconds(2f));

                enemy.enemyLife.Die();


                p2.stop = true;
                p3.stop = true;


                break;
            }
            break;

        //BOSS 1 - FOREST GUARDIAN
        case "Boss1":
            switch (phase)
            {
            case 0:
                p1 = new Pattern(lib.spiral);
                p1.Customize(new BulletMovementPattern(true, "WaitAndExplode", 5f, p1, 0, 14));
                p1.Customize("LoopCircles", 1440);
                p1.Customize("BulletCount", 100);
                p1.SetSprite("Circle", "Glow", "Green");

                p2 = new Pattern(lib.maelStrom);
                p2.Customize(new BulletMovementPattern(true, "Explode", 6f, p2, 0, 14));
                p2.Customize("RotationDirection", 1);
                p2.SetSprite("Circle", "Glow", "Green");

                p3 = new Pattern(lib.maelStrom);
                p3.SetSprite("Circle", "Glow", "Yellow");
                p3.Customize(new BulletMovementPattern(true, "Explode", 6f, p3, 0, 14));
                p3.Customize("RotationDirection", -1);

                mp1 = new EnemyMovementPattern(lib.centerHor);
                mp1.Customize("Speed", 7f);
                mp2 = new EnemyMovementPattern(lib.rocking);
                mp2.Customize("Speed", 7f);

                while (!endOfPhase)
                {
                    enemyMove.SetUpPatternAndMove(mp1);
                    yield return(new WaitForSeconds(2f));

                    enemy.BossShoot(p2);
                    enemy.BossShoot(p3);
                    yield return(new WaitForSeconds(2.2f));

                    p2.stop = true;
                    p3.stop = true;
                    if (endOfPhase)
                    {
                        break;
                    }
                    enemyMove.SetUpPatternAndMove(new EnemyMovementPattern(lib.rocking));
                    yield return(new WaitForSeconds(1f));

                    enemy.BossShoot(p1);
                    yield return(new WaitForSeconds(2.2f));

                    enemy.BossShoot(p1);
                    yield return(new WaitForSeconds(3f));
                }
                p2.stop = true;
                p3.stop = true;
                break;

            case 1:
                GameController.gameControl.sound.PlaySpellSound("Enemy");
                GameController.gameControl.ui.ShowActivatedPhase("Boss", "Justice Seal: Ninetailed Spear");

                p1 = new Pattern(lib.curtain);
                p1.Customize("BulletCount", 9);
                p1.SetSprite("Circle", "Bevel", "Lilac");
                p1.Customize(new BulletMovementPattern(false, "TurnToSpears", 6f, p1, 0, 14));

                p2 = new Pattern(lib.maelStrom);
                p2.Customize(new BulletMovementPattern(true, "Explode", 6f, p2, 0, 14));
                p2.Customize("RotationDirection", 1);
                p2.SetSprite("Circle", "Glow", "Green");

                p3 = new Pattern(lib.maelStrom);
                p3.SetSprite("Circle", "Glow", "Yellow");
                p3.Customize(new BulletMovementPattern(true, "Explode", 4f, p3, 0, 14));
                p3.Customize("RotationDirection", -1);

                mp1 = new EnemyMovementPattern("", new Vector3(-15, 6f, 0f), false, 0);
                mp1.Customize("Speed", 7f);

                mp2 = new EnemyMovementPattern("", new Vector3(1, 6, 0), false, 0);
                mp2.Customize("Speed", 7f);



                enemyMove.SetUpPatternAndMove(mp1);
                yield return(new WaitForSeconds(2.2f));

                while (!endOfPhase)
                {
                    yield return(new WaitUntil(() => mp1.CheckIfReachedDestination(enemyMove) == true));

                    enemyMove.SetUpPatternAndMove(mp2);
                    enemy.BossShoot(p1);
                    yield return(new WaitUntil(() => mp1.CheckIfReachedDestination(enemyMove) == true));

                    yield return(new WaitForSeconds(1f));

                    enemy.BossShoot(p2);
                    enemy.BossShoot(p3);
                    yield return(new WaitForSeconds(2.2f));

                    p2.stop = true;
                    p3.stop = true;
                    yield return(new WaitForSeconds(1f));

                    enemyMove.SetUpPatternAndMove(mp1);
                    enemy.BossShoot(p1);
                    yield return(new WaitUntil(() => mp1.CheckIfReachedDestination(enemyMove) == true));

                    yield return(new WaitForSeconds(1f));

                    enemy.BossShoot(p2);
                    enemy.BossShoot(p3);
                    yield return(new WaitForSeconds(2.2f));

                    p2.stop = true;
                    p3.stop = true;
                    yield return(new WaitForSeconds(1f));
                }

                break;

            case 2:
                mp1 = new EnemyMovementPattern("", new Vector3(lib.centerX + 4f, enemy.transform.position.y, 0), false, 0);
                mp1.Customize("Teleport", 1);
                mp2 = new EnemyMovementPattern("", new Vector3(lib.centerX - 4f, enemy.transform.position.y, 0), false, 0);
                mp2.Customize("Teleport", 1);

                while (!endOfPhase)
                {
                    enemyMove.SetUpPatternAndMove(mp1);
                    yield return(new WaitForSeconds(5f));

                    enemyMove.SetUpPatternAndMove(mp2);
                    yield return(new WaitForSeconds(5f));
                }
                break;

            case 3:
                /*p2 = new Pattern (lib.maelStrom);
                 * p2.Customize (new BulletMovementPattern (true, "Explode", 6f, p2, 0, 14));
                 * p2.Customize ("RotationDirection", 1);
                 * p2.SetSprite ("Circle", "Glow", "Green");
                 *
                 * p3 = new Pattern (lib.maelStrom);
                 * p3.SetSprite ("Circle", "Glow", "Yellow");
                 * p3.Customize (new BulletMovementPattern (true, "Explode", 6f, p3, 0, 14));
                 * p3.Customize ("RotationDirection", -1);*/
                GameController.gameControl.ui.ShowActivatedPhase("Boss", "Guardian Seal: Fox Fires");

                p1 = new Pattern("Cluster", true, 150, 0, 0.01f, 0, 1f);
                p1.SetSprite("Fireball", "Glow", "Orange");

                p2 = new Pattern(lib.maelStrom);
                p2.Customize(new BulletMovementPattern(true, "Explode", 6f, p2, 0, 14));
                p2.Customize("RotationDirection", 1);
                p2.SetSprite("Circle", "Big", "Red");
                p2.Customize("BulletCount", 6);
                p2.Customize("CoolDown", .5f);

                mp1 = new EnemyMovementPattern("Swing", new Vector3(-13, enemy.transform.position.y, 0), false, 0);
                mp1.Customize("Speed", 5f);
                mp1.Customize("Direction", 1);

                mp2 = new EnemyMovementPattern("", new Vector3(lib.centerX, lib.centerY, 0), false, 0);

                while (!endOfPhase)
                {
                    enemyMove.SetUpPatternAndMove(mp1);
                    yield return(new WaitForSeconds(2f));

                    enemy.BossShoot(p1);
                    yield return(new WaitForSeconds(4f));

                    mp1.Customize("Speed", 7f);

                    enemyMove.SetUpPatternAndMove(mp2);
                    yield return(new WaitForSeconds(1f));

                    enemy.BossShoot(p2);

                    yield return(new WaitForSeconds(4f));

                    p2.stop = true;
                }
                //mp1.Customize ("Speed", 1f);
                break;
            }
            break;


        //BOSS 2 - SPIDER BOSS
        case "Boss2":
            switch (phase)
            {
            case 0:
                p1 = lib.singleHoming;
                p1.Customize(new BulletMovementPattern(true, null, 0.5f, p1, 0, 14));
                p1.SetSprite("Circle", "Big", "Red");

                p2 = lib.maelStrom;
                p2.Customize(new BulletMovementPattern(true, "Explode", 6f, p2, 0, 14));
                p2.SetSprite("Diamond", "Glow", "Red");

                enemy.BossShoot(p2);
                while (!endOfPhase)
                {
                    if (endOfPhase)
                    {
                        break;
                    }

                    enemy.BossShoot(p1);
                    yield return(new WaitForSeconds(1f));
                }
                break;

            case 1:
                enemyMove.SetUpPatternAndMove(GameController.gameControl.enemyLib.centerHor);
                GameController.gameControl.ui.ShowActivatedPhase("Boss", "Dark Core: Web of Lies");

                p1 = new Pattern(lib.giantWeb);
                p2 = lib.maelStrom;
                p2.Customize(new BulletMovementPattern(true, "Explode", 6f, p2, 0, 14));
                p2.SetSprite("Diamond", "Glow", "Red");

                enemy.BossShoot(p2);
                while (!endOfPhase)
                {
                    enemy.BossShoot(p1);
                    yield return(new WaitForSeconds(10));
                }
                endOfPhase = true;
                break;

            case 2:

                yield return(new WaitForSeconds(2f));


                p1 = new Pattern(lib.spiral);
                p1.Customize(new BulletMovementPattern(true, "WaitAndExplode", 6f, p1, 0, 14));
                p1.SetSprite("Diamond", "Glow", "Red");
                p2 = lib.spiderWeb;
                p2.Customize(new BulletMovementPattern(false, "DownAndExplode", 0.5f, p2, 0, 14));
                p2.SetSprite("Circle", "Glow", "Red");
                while (!endOfPhase)
                {
                    for (int i = 0; i < 2; i++)
                    {
                        enemy.BossShoot(p1);
                        p1.SetSprite("Circle", "Glow", "Yellow");
                        yield return(new WaitForSeconds(2f));

                        enemy.BossShoot(p1);
                        p1.SetSprite("Circle", "Glow", "Green");
                    }
                    yield return(new WaitForSeconds(2f));

                    enemyMove.SetUpPatternAndMove(new EnemyMovementPattern(GameController.gameControl.enemyLib.rocking));
                    for (int i = 0; i < 4; i++)
                    {
                        enemy.BossShoot(p2);
                        yield return(new WaitForSeconds(1f));

                        enemy.BossShoot(p1);
                        yield return(new WaitForSeconds(1f));
                    }
                }
                break;

            case 3:
                enemyMove.SetUpPatternAndMove(new EnemyMovementPattern(GameController.gameControl.enemyLib.centerHor));
                yield return(new WaitForSeconds(2f));

                GameController.gameControl.ui.ShowActivatedPhase("Boss", "Dark Core: Weave Misfortune");

                p1 = lib.laser;
                p1.Customize("BulletCount", 6);
                p1.SetSprite("Circle", "Glow", "White");
                p2 = lib.giantWeb;

                while (!endOfPhase)
                {
                    for (int i = 0; i < 12; i++)
                    {
                        enemy.BossShoot(p1);
                        yield return(new WaitForSeconds(1f));
                    }
                    enemy.BossShoot(p2);
                    yield return(new WaitForSeconds(2f));
                }
                break;
            }
            break;
        }
    }
예제 #3
0
    public void InitWaves(int stage)
    {
        stageWaves.Clear();
        Pattern p;
        EnemyMovementPattern mp;

        switch (stage)
        {
        case 1:
            //

            //1ST PHASE
            mp = new EnemyMovementPattern(enterLeave);
            mp.Customize("LeaveDir", "Right");
            mp.Customize("StayTime", .5f);
            p = new Pattern(singleHoming);
            p.Customize(new BulletMovementPattern(true, null, 0.5f, p, 0, 14));
            p.SetSprite("Circle", "Big", "Red");                //enmyCnt simul hlth isBoss, cd, hlthBars, spawnPositions
            NewWave(stageWaves, new Wave(1f, mp, p, 5, false, 0, false, .6f, 0), new ArrayList {
                rightTop
            });

            mp = new EnemyMovementPattern(enterLeave);
            mp.Customize("LeaveDir", "Left");
            mp.Customize("StayTime", 2f);
            p = new Pattern(singleHoming);
            p.Customize(new BulletMovementPattern(true, null, 0.5f, p, 0, 14));
            p.SetSprite("Circle", "Big", "Red");                //enmyCnt simul hlth isBoss, cd, hlthBars, spawnPositions
            NewWave(stageWaves, new Wave(3f, mp, p, 5, false, 0, false, .6f, 0), new ArrayList {
                leftTop
            });

            //2ND PHASE
            mp = new EnemyMovementPattern(enterLeave);
            mp.Customize("LeaveDir", "Right");
            mp.Customize("StayTime", .5f);
            p = new Pattern(singleHoming);
            p.Customize(new BulletMovementPattern(true, null, 0.5f, p, 0, 14));
            p.SetSprite("Circle", "Big", "Red");                //enmyCnt simul hlth isBoss, cd, hlthBars, spawnPositions
            NewWave(stageWaves, new Wave(4f, mp, p, 5, false, 0, false, .6f, 0), new ArrayList {
                rightTop
            });

            mp = new EnemyMovementPattern(enterLeave);
            mp.Customize("LeaveDir", "Left");
            mp.Customize("StayTime", 2f);
            p = new Pattern(singleHoming);
            p.Customize(new BulletMovementPattern(true, null, 0.5f, p, 0, 14));
            p.SetSprite("Circle", "Big", "Red");                //enmyCnt simul hlth isBoss, cd, hlthBars, spawnPositions
            NewWave(stageWaves, new Wave(15f, mp, p, 5, false, 0, false, .6f, 0), new ArrayList {
                leftTop
            });

            mp = new EnemyMovementPattern(zigZag);
            p  = new Pattern(circle);
            p.Customize(new BulletMovementPattern(false, "Explode", 7f, p, 0, 14));
            p.SetSprite("Circle", "Glow", "Green");                     //enmyCnt simul hlth isBoss, cd, hlthBars, spawnPositions
            NewWave(stageWaves, new Wave(16f, mp, p, 5, false, 0, false, .6f, 0), new ArrayList {
                rightTop
            });

            mp = new EnemyMovementPattern(stopOnce);
            mp.Customize("LeaveDir", "Right");
            p = new Pattern(circle);
            p.Customize(new BulletMovementPattern(false, "Explode", 7f, p, 0, 14));
            p.SetSprite("Circle", "Glow", "Green");                     //enmyCnt simul hlth isBoss, cd, hlthBars, spawnPositions
            NewWave(stageWaves, new Wave(17f, mp, p, 5, false, 0, false, .6f, 0), new ArrayList {
                topLeft
            });


            //PHASE3

            mp = new EnemyMovementPattern(stopOnce);
            mp.Customize("LeaveDir", "Right");
            //mp.targetPos = new Vector3 (-14, 7, 0);
            p = new Pattern(circle);
            p.Customize(new BulletMovementPattern(false, "Explode", 7f, p, 0, 14));
            p.SetSprite("Circle", "Glow", "Green");                     //enmyCnt simul hlth isBoss, cd, hlthBars, spawnPositions
            NewWave(stageWaves, new Wave(28f, mp, p, 5, false, 0, false, .6f, 0), new ArrayList {
                topLeft
            });

            mp = new EnemyMovementPattern(stopOnce);
            mp.Customize("LeaveDir", "Left");
            mp.targetPos = new Vector3(1, 6, 0);
            p            = new Pattern(circle);
            p.Customize(new BulletMovementPattern(false, "Explode", 7f, p, 0, 14));
            p.SetSprite("Circle", "Glow", "Green");                     //enmyCnt simul hlth isBoss, cd, hlthBars, spawnPositions
            NewWave(stageWaves, new Wave(31f, mp, p, 5, false, 0, false, .6f, 0), new ArrayList {
                topRight
            });

            mp = new EnemyMovementPattern(stopOnce);
            mp.Customize("LeaveDir", "Right");
            //mp.targetPos = new Vector3 (-14, 7, 0);
            p = new Pattern(circle);
            p.Customize("BulletCount", 10);
            p.Customize(new BulletMovementPattern(false, "Explode", 7f, p, 0, 14));
            p.SetSprite("Circle", "Glow", "Green");                     //enmyCnt simul hlth isBoss, cd, hlthBars, spawnPositions
            NewWave(stageWaves, new Wave(33f, mp, p, 3, false, 0, false, .6f, 0), new ArrayList {
                topRight
            });

            mp = new EnemyMovementPattern(stopOnce);
            mp.Customize("LeaveDir", "Left");
            mp.targetPos = new Vector3(1, 6, 0);
            p            = new Pattern(circle);
            p.Customize("BulletCount", 10);
            p.Customize(new BulletMovementPattern(false, "Explode", 7f, p, 0, 14));
            p.SetSprite("Circle", "Glow", "Green");                     //enmyCnt simul hlth isBoss, cd, hlthBars, spawnPositions
            NewWave(stageWaves, new Wave(36f, mp, p, 3, false, 0, false, .6f, 0), new ArrayList {
                topLeft
            });


            mp           = new EnemyMovementPattern(enterLeave);
            mp.targetPos = new Vector3(0, 7, 0);
            mp.speed     = 2f;
            mp.Customize("LeaveDir", "Right");
            mp.Customize("StayTime", 2f);
            p = new Pattern(circle);
            p.Customize("BulletCount", 20);
            p.Customize(new BulletMovementPattern(false, "Explode", 11f, p, 0, 14));
            p.SetSprite("Circle", "Glow", "Green");                     //enmyCnt simul hlth isBoss, cd, hlthBars, spawnPositions
            NewWave(stageWaves, new Wave(41f, mp, p, 3, false, 40, false, .6f, 0), new ArrayList {
                rightTop
            });

            mp           = new EnemyMovementPattern(enterLeave);
            mp.targetPos = new Vector3(-14, 7, 0);
            mp.speed     = 2f;
            mp.Customize("LeaveDir", "Left");
            mp.Customize("StayTime", 2f);
            p = new Pattern(circle);
            p.Customize("BulletCount", 20);
            p.Customize(new BulletMovementPattern(false, "Explode", 11f, p, 0, 14));
            p.SetSprite("Circle", "Glow", "Yellow");                    //enmyCnt simul hlth isBoss, cd, hlthBars, spawnPositions
            NewWave(stageWaves, new Wave(41.5f, mp, p, 3, false, 40, false, .6f, 0), new ArrayList {
                leftTop
            });


            //MID-BOSS

            NewWave(stageWaves, bossMid1, new ArrayList {
                middleTop
            });


            //CONTD
            mp = new EnemyMovementPattern(stopOnce);
            mp.Customize("LeaveDir", "Left");
            mp.targetPos = new Vector3(1, 6, 0);
            p            = new Pattern(circle);
            p.Customize(new BulletMovementPattern(false, "Explode", 7f, p, 0, 14));
            p.SetSprite("Circle", "Glow", "Green");                     //enmyCnt simul hlth isBoss, cd, hlthBars, spawnPositions
            NewWave(stageWaves, new Wave(82f, mp, p, 5, false, 0, false, .6f, 0), new ArrayList {
                topRight
            });


            mp = new EnemyMovementPattern(stopOnce);
            mp.Customize("LeaveDir", "Right");
            //mp.targetPos = new Vector3 (-14, 7, 0);
            p = new Pattern(circle);
            p.Customize("BulletCount", 10);
            p.Customize(new BulletMovementPattern(false, "Explode", 7f, p, 0, 14));
            p.SetSprite("Circle", "Glow", "Green");                     //enmyCnt simul hlth isBoss, cd, hlthBars, spawnPositions
            NewWave(stageWaves, new Wave(87f, mp, p, 3, false, 0, false, .6f, 0), new ArrayList {
                topRight
            });

            mp = new EnemyMovementPattern(stopOnce);
            mp.Customize("LeaveDir", "Left");
            mp.targetPos = new Vector3(1, 6, 0);
            p            = new Pattern(circle);
            p.Customize("BulletCount", 10);
            p.Customize(new BulletMovementPattern(false, "Explode", 7f, p, 0, 14));
            p.SetSprite("Circle", "Glow", "Green");                     //enmyCnt simul hlth isBoss, cd, hlthBars, spawnPositions
            NewWave(stageWaves, new Wave(90f, mp, p, 3, false, 0, false, .6f, 0), new ArrayList {
                topLeft
            });

            mp           = new EnemyMovementPattern(enterLeave);
            mp.targetPos = new Vector3(0, 7, 0);
            mp.speed     = 2f;
            mp.Customize("LeaveDir", "Right");
            mp.Customize("StayTime", 2f);
            p = new Pattern(circle);
            p.Customize("BulletCount", 20);
            p.Customize(new BulletMovementPattern(false, "Explode", 11f, p, 0, 14));
            p.SetSprite("Circle", "Glow", "Green");                     //enmyCnt simul hlth isBoss, cd, hlthBars, spawnPositions
            NewWave(stageWaves, new Wave(90f, mp, p, 3, false, 40, false, .6f, 0), new ArrayList {
                rightTop
            });

            mp           = new EnemyMovementPattern(enterLeave);
            mp.targetPos = new Vector3(-14, 7, 0);
            mp.speed     = 2f;
            mp.Customize("LeaveDir", "Left");
            mp.Customize("StayTime", 2f);
            p = new Pattern(circle);
            p.Customize("BulletCount", 20);
            p.Customize(new BulletMovementPattern(false, "Explode", 11f, p, 0, 14));
            p.SetSprite("Circle", "Glow", "Yellow");                    //enmyCnt simul hlth isBoss, cd, hlthBars, spawnPositions
            NewWave(stageWaves, new Wave(90.5f, mp, p, 3, false, 40, false, .6f, 0), new ArrayList {
                leftTop
            });



            NewWave(stageWaves, boss1, new ArrayList {
                middleTop
            });



            break;

        case 2:

            //															enmyCnt simul hlth  isBoss, cd, hlthBars, spawnPositions
            p = new Pattern(singleHoming);
            p.Customize(new BulletMovementPattern(true, null, 0.5f, p, 0, 14));
            p.SetSprite("Circle", "Big", "Red");
            NewWave(stageWaves, new Wave(2f, zigZag, p, 5, false, 0, false, 1f, 0), new ArrayList {
                middleTop
            });

            /*w = (Wave)stage1Waves [stage1Waves.Count - 1];
             * w.shootPattern.Customize(new BulletMovementPattern (true, null, 0.5f, w.shootPattern, 0, 14));
             * w.shootPattern.SetSprite("Circle", "Big", "Red");
             *
             */
            p = new Pattern(circle);
            p.Customize(new BulletMovementPattern(true, "Explode", 2f, p, 0, 14));
            p.SetSprite("Circle", "Glow", "Green");
            NewWave(stageWaves, new Wave(3f, stopOnce, p, 6, false, 0, false, 1f, 0), new ArrayList {
                topRight
            });

            //NewWave (stage1Waves, new Wave (6f, zigZag, singleHoming, 6, false, 0, false, 1f,	0), new ArrayList { middleTop });
            //NewWave (stage1Waves, new Wave (10f, zigZag, circle, 6, false, 0, false, 1f,	0), new ArrayList { middleTop });
            p = new Pattern(circle);
            p.Customize(new BulletMovementPattern(true, "Explode", 6f, p, 0, 14));
            p.SetSprite("Circle", "Glow", "Yellow");
            NewWave(stageWaves, new Wave(10f, stopOnce, p, 6, false, 0, false, 1f, 0), new ArrayList {
                topRight
            });



            //p = new Pattern (laser);

            /*NewWave (stage1Waves, new Wave (25f, enterAndLeave, p, 2, true, 10, false,	1f, 0), new ArrayList {
             *      rightTop,
             *      leftTop
             * });*/

            p = new Pattern(singleHoming);
            p.Customize(new BulletMovementPattern(true, null, 0.5f, p, 0, 14));
            p.SetSprite("Circle", "Big", "Red");
            NewWave(stageWaves, new Wave(15f, zigZag, p, 5, false, 0, false, 1f, 0), new ArrayList {
                middleTop
            });
            NewWave(stageWaves, new Wave(20f, stopOnce, p, 6, false, 0, false, 2f, 0), new ArrayList {
                topRight
            });

            NewWave(stageWaves, new Wave(boss2), new ArrayList {
                middleTop
            });
            break;
        }
    }