Example #1
0
        protected override IEnumerable <bool> E_EachFrame()
        {
            // TODO TODO TODO TODO TODO
            // TODO TODO TODO TODO TODO
            // TODO TODO TODO TODO TODO
            // TODO TODO TODO TODO TODO
            // TODO TODO TODO TODO TODO

            Ground.I.Music.MUS_STAGE_02.Play();

            Game.I.Walls.Add(new Wall_Dark());
            Game.I.Walls.Add(new Wall_21001());
            Game.I.Walls.Add(new Wall_21002());

            for (int c = 0; c < 60; c++)
            {
                yield return(true);
            }

            Game.I.Enemies.Add(new Enemy_0001(40.0, -50.0, 1, 10, 0, 110, 2, 4.0, 1, 250.0, 0.97));
            Game.I.Enemies.Add(new Enemy_0001(40.0, -100.0, 1, 10, 0, 100, 2, 4.0, 1, 250.0, 0.97));
            Game.I.Enemies.Add(new Enemy_0001(40.0, -150.0, 1, 10, 0, 100, 2, 4.0, 1, 250.0, 0.97));
            Game.I.Enemies.Add(new Enemy_0001(40.0, -200.0, 1, 10, 0, 100, 2, 4.0, 1, 250.0, 0.97));
            Game.I.Enemies.Add(new Enemy_0001(40.0, -250.0, 1, 10, 0, 100, 2, 4.0, 1, 250.0, 0.97));

            for (int c = 0; c < 60; c++)
            {
                yield return(true);
            }

            Game.I.Enemies.Add(new Enemy_0001(472.0, -50.0, 1, 10, 0, 110, 2, 4.0, -1, 350.0, 0.97));
            Game.I.Enemies.Add(new Enemy_0001(472.0, -100.0, 1, 10, 0, 100, 2, 4.0, -1, 350.0, 0.97));
            Game.I.Enemies.Add(new Enemy_0001(472.0, -150.0, 1, 10, 0, 100, 2, 4.0, -1, 350.0, 0.97));
            Game.I.Enemies.Add(new Enemy_0001(472.0, -200.0, 1, 10, 0, 100, 2, 4.0, -1, 350.0, 0.97));
            Game.I.Enemies.Add(new Enemy_0001(472.0, -250.0, 1, 10, 0, 100, 2, 4.0, -1, 350.0, 0.97));

            for (int c = 0; c < 120; c++)
            {
                yield return(true);
            }

            Game.I.Enemies.Add(new Enemy_0001(40.0, -50.0, 1, 30, 1, 101, 2, 4.0, 1, 250.0, 0.97));
            Game.I.Enemies.Add(new Enemy_0001(40.0, -100.0, 1, 30, 1, 101, 2, 4.0, 1, 250.0, 0.97));
            Game.I.Enemies.Add(new Enemy_0001(40.0, -150.0, 1, 30, 1, 101, 2, 4.0, 1, 250.0, 0.97));
            Game.I.Enemies.Add(new Enemy_0001(40.0, -200.0, 1, 30, 1, 101, 2, 4.0, 1, 250.0, 0.97));
            Game.I.Enemies.Add(new Enemy_0001(40.0, -250.0, 1, 30, 1, 111, 2, 4.0, 1, 250.0, 0.97));

            for (int c = 0; c < 60; c++)
            {
                yield return(true);
            }

            Game.I.Enemies.Add(new Enemy_0001(472.0, -50.0, 1, 30, 1, 101, 2, 4.0, -1, 350.0, 0.97));
            Game.I.Enemies.Add(new Enemy_0001(472.0, -100.0, 1, 30, 1, 101, 2, 4.0, -1, 350.0, 0.97));
            Game.I.Enemies.Add(new Enemy_0001(472.0, -150.0, 1, 30, 1, 101, 2, 4.0, -1, 350.0, 0.97));
            Game.I.Enemies.Add(new Enemy_0001(472.0, -200.0, 1, 30, 1, 101, 2, 4.0, -1, 350.0, 0.97));
            Game.I.Enemies.Add(new Enemy_0001(472.0, -250.0, 1, 30, 1, 111, 2, 4.0, -1, 350.0, 0.97));

            for (int c = 0; c < 180; c++)
            {
                yield return(true);
            }

            Game.I.Enemies.Add(new Enemy_JackOLantern_02(-50.0, 450.0, 150, 30, 200, 2, 1.0));
            Game.I.Enemies.Add(new Enemy_JackOLantern_02(-150.0, 450.0, 150, 30, 200, 2, 1.0));
            Game.I.Enemies.Add(new Enemy_JackOLantern_02(-250.0, 450.0, 150, 30, 200, 2, 1.0));

            for (int c = 0; c < 180; c++)
            {
                yield return(true);
            }

            Game.I.Enemies.Add(new Enemy_JackOLantern_02(GameConsts.FIELD_W + 50.0, 450.0, 150, 30, 200, 2, -1.0));
            Game.I.Enemies.Add(new Enemy_JackOLantern_02(GameConsts.FIELD_W + 150.0, 400.0, 150, 30, 200, 2, -1.0));
            Game.I.Enemies.Add(new Enemy_JackOLantern_02(GameConsts.FIELD_W + 250.0, 350.0, 300, 30, 210, 2, -1.0));

            for (int c = 0; c < 500; c++)
            {
                yield return(true);
            }

            for (int c = 0; c < 100; c++)
            {
                double rate = DDUtils.Random.Real();

                Game.I.Enemies.Add(new Enemy_0001B(-30.0,
                                                   rate * GameConsts.FIELD_H, 1, 10, 1, 0, 2, 1.0));
                Game.I.Enemies.Add(new Enemy_0001B(GameConsts.FIELD_W + 30.0,
                                                   rate * GameConsts.FIELD_H, 1, 10, 2, 0, 2, 1.0));
                Game.I.Enemies.Add(new Enemy_0001B(rate * GameConsts.FIELD_W, -30.0,
                                                   1, 10, 3, 0, 3, 1.0));
                Game.I.Enemies.Add(new Enemy_0001B(rate * GameConsts.FIELD_W, GameConsts.FIELD_H + 30.0,
                                                   1, 10, 4, 0, 4, 1.0));

                for (int d = 0; d < 10; d++)
                {
                    yield return(true);
                }
            }

            for (int c = 0; c < 300; c++)
            {
                yield return(true);
            }

            // ---- BOSS 登場

            {
                Game.I.Shots.Add(new Shot_BossBomb());

                Enemy_ルーミア boss = new Enemy_ルーミア();

                Game.I.Enemies.Add(boss);

                for (int c = 0; c < 90; c++)
                {
                    yield return(true);
                }

                string scenarioFile;

                switch (Game.I.Player.PlayerWho)
                {
                case Player.PlayerWho_e.メディスン:
                    scenarioFile = @"res\掛け合いシナリオ\メディスン_ルーミア.txt";
                    break;

                case Player.PlayerWho_e.小悪魔:
                    scenarioFile = @"res\掛け合いシナリオ\小悪魔_ルーミア.txt";
                    break;

                default:
                    throw null;                             // never
                }
                foreach (bool v in ScriptCommon.掛け合い(new Scenario(scenarioFile)))
                {
                    yield return(v);
                }

                boss.NextFlag = true;

                // boss はすぐに消滅することに注意
            }

            Ground.I.Music.MUS_BOSS_02.Play();

            while (!Game.I.BossKilled)
            {
                yield return(true);
            }

            for (int c = 0; c < 30; c++)
            {
                yield return(true);
            }

            Game.I.Shots.Add(new Shot_BossBomb());

            // ---- BOSS 撃破

            for (int c = 0; c < 180; c++)
            {
                yield return(true);
            }

            // All Clear Bonus
            {
                long bonus = 100000000;

                DDGround.EL.Add(SCommon.Supplier(Effects.Message(
                                                     "ALL CLEAR BONUS +" + bonus,
                                                     new I3Color(64, 64, 0),
                                                     new I3Color(255, 255, 0)
                                                     )));

                Game.I.Score += bonus;
            }

            for (int c = 0; c < 300; c++)
            {
                yield return(true);
            }
        }
Example #2
0
        protected override IEnumerable <bool> E_EachFrame()
        {
            Ground.I.Music.MUS_STAGE_01.Play();

            Game.I.Walls.Add(new Wall_Dark());
            Game.I.Walls.Add(new Wall_11001());
            Game.I.Walls.Add(new Wall_11002());

            for (int c = 0; c < 60; c++)
            {
                yield return(true);
            }

            Game.I.Enemies.Add(new Enemy_0001(40.0, -50.0, 1, 10, 0, 100, 2, 4.0, 1, 250.0, 0.97));
            Game.I.Enemies.Add(new Enemy_0001(40.0, -100.0, 1, 10, 0, 100, 2, 4.0, 1, 250.0, 0.97));
            Game.I.Enemies.Add(new Enemy_0001(40.0, -150.0, 1, 10, 0, 100, 2, 4.0, 1, 250.0, 0.97));
            Game.I.Enemies.Add(new Enemy_0001(40.0, -200.0, 1, 10, 0, 100, 2, 4.0, 1, 250.0, 0.97));
            Game.I.Enemies.Add(new Enemy_0001(40.0, -250.0, 1, 10, 0, 100, 2, 4.0, 1, 250.0, 0.97));

            for (int c = 0; c < 60; c++)
            {
                yield return(true);
            }

            Game.I.Enemies.Add(new Enemy_0001(GameConsts.FIELD_W - 40.0, -50.0, 1, 10, 0, 100, 2, 4.0, -1, 350.0, 0.97));
            Game.I.Enemies.Add(new Enemy_0001(GameConsts.FIELD_W - 40.0, -100.0, 1, 10, 0, 100, 2, 4.0, -1, 350.0, 0.97));
            Game.I.Enemies.Add(new Enemy_0001(GameConsts.FIELD_W - 40.0, -150.0, 1, 10, 0, 100, 2, 4.0, -1, 350.0, 0.97));
            Game.I.Enemies.Add(new Enemy_0001(GameConsts.FIELD_W - 40.0, -200.0, 1, 10, 0, 100, 2, 4.0, -1, 350.0, 0.97));
            Game.I.Enemies.Add(new Enemy_0001(GameConsts.FIELD_W - 40.0, -250.0, 1, 10, 0, 100, 2, 4.0, -1, 350.0, 0.97));

            for (int c = 0; c < 180; c++)
            {
                yield return(true);
            }

            Game.I.Enemies.Add(new Enemy_0001(40.0, -50.0, 1, 30, 1, 101, 2, 4.0, 1, 250.0, 0.97));
            Game.I.Enemies.Add(new Enemy_0001(40.0, -100.0, 1, 30, 1, 101, 2, 4.0, 1, 250.0, 0.97));
            Game.I.Enemies.Add(new Enemy_0001(40.0, -150.0, 1, 30, 1, 101, 2, 4.0, 1, 250.0, 0.97));
            Game.I.Enemies.Add(new Enemy_0001(40.0, -200.0, 1, 30, 1, 101, 2, 4.0, 1, 250.0, 0.97));
            Game.I.Enemies.Add(new Enemy_0001(40.0, -250.0, 1, 30, 1, 101, 2, 4.0, 1, 250.0, 0.97));

            for (int c = 0; c < 60; c++)
            {
                yield return(true);
            }

            Game.I.Enemies.Add(new Enemy_0001(GameConsts.FIELD_W - 40.0, -50.0, 1, 30, 1, 101, 2, 4.0, -1, 350.0, 0.97));
            Game.I.Enemies.Add(new Enemy_0001(GameConsts.FIELD_W - 40.0, -100.0, 1, 30, 1, 101, 2, 4.0, -1, 350.0, 0.97));
            Game.I.Enemies.Add(new Enemy_0001(GameConsts.FIELD_W - 40.0, -150.0, 1, 30, 1, 101, 2, 4.0, -1, 350.0, 0.97));
            Game.I.Enemies.Add(new Enemy_0001(GameConsts.FIELD_W - 40.0, -200.0, 1, 30, 1, 101, 2, 4.0, -1, 350.0, 0.97));
            Game.I.Enemies.Add(new Enemy_0001(GameConsts.FIELD_W - 40.0, -250.0, 1, 30, 1, 101, 2, 4.0, -1, 350.0, 0.97));

            for (int c = 0; c < 300; c++)
            {
                yield return(true);
            }

            Game.I.Enemies.Add(new Enemy_0001(55.0, -50.0, 10, 10, 2, 100, 1, 2.0, -1, 400.0, 0.99));
            Game.I.Enemies.Add(new Enemy_0001(155.0, -50.0, 10, 10, 2, 100, 1, 2.0, -1, 350.0, 0.99));
            Game.I.Enemies.Add(new Enemy_0001(255.0, -50.0, 10, 10, 2, 100, 1, 2.0, 1, 300.0, 0.99));
            Game.I.Enemies.Add(new Enemy_0001(355.0, -50.0, 10, 10, 2, 100, 1, 2.0, 1, 350.0, 0.99));
            Game.I.Enemies.Add(new Enemy_0001(455.0, -50.0, 10, 10, 2, 100, 1, 2.0, 1, 400.0, 0.99));

            for (int c = 0; c < 60; c++)
            {
                yield return(true);
            }

            Game.I.Enemies.Add(new Enemy_0002(GameConsts.FIELD_W, -100.0, 100, 10, 4, 200, 11, 0.0, 100.0, 1.0, 0.0, 0.98));

            for (int c = 0; c < 60; c++)
            {
                yield return(true);
            }

            Game.I.Enemies.Add(new Enemy_0002(0.0, -100.0, 100, 10, 4, 200, 11, GameConsts.FIELD_W, 200.0, -1.0, 0.0, 0.98));

            for (int c = 0; c < 120; c++)
            {
                yield return(true);
            }

            Game.I.Enemies.Add(new Enemy_0003(GameConsts.FIELD_W / 2, -100.0, 30, 30, 6, 0, 1, 80.0, 150.0, 200, -0.01, -0.01));
            Game.I.Enemies.Add(new Enemy_0003(GameConsts.FIELD_W / 2, -100.0, 30, 30, 7, 0, 1, 80.0, 300.0, 200, -0.01, -0.01));
            Game.I.Enemies.Add(new Enemy_0003(GameConsts.FIELD_W / 2, -100.0, 30, 30, 6, 0, 1, 80.0, 450.0, 200, -0.01, -0.01));
            Game.I.Enemies.Add(new Enemy_0003(GameConsts.FIELD_W / 2, -100.0, 30, 30, 7, 0, 1, 400.0, 150.0, 200, 0.01, -0.01));
            Game.I.Enemies.Add(new Enemy_0003(GameConsts.FIELD_W / 2, -100.0, 30, 30, 6, 0, 1, 400.0, 300.0, 200, 0.01, -0.01));
            Game.I.Enemies.Add(new Enemy_0003(GameConsts.FIELD_W / 2, -100.0, 30, 30, 7, 0, 1, 400.0, 450.0, 200, 0.01, -0.01));

            for (int c = 0; c < 600; c++)
            {
                yield return(true);
            }

            Game.I.Enemies.Add(new Enemy_JackOLantern(55.0, -100.0, 30, 10, 100, 0, 50.0, 2.0, 0.0, 0.1));
            Game.I.Enemies.Add(new Enemy_JackOLantern(155.0, -100.0, 30, 10, 100, 0, 50.0, 2.0, 0.0, 0.1));
            Game.I.Enemies.Add(new Enemy_JackOLantern(255.0, -100.0, 30, 10, 100, 1, 50.0, 2.0, 0.0, 0.1));
            Game.I.Enemies.Add(new Enemy_JackOLantern(355.0, -100.0, 30, 10, 100, 0, 50.0, 2.0, 0.0, 0.1));
            Game.I.Enemies.Add(new Enemy_JackOLantern(455.0, -100.0, 30, 10, 100, 0, 50.0, 2.0, 0.0, 0.1));

            for (int c = 0; c < 180; c++)
            {
                yield return(true);
            }

            Game.I.Enemies.Add(new Enemy_BigJackOLantern(GameConsts.FIELD_W / 2, 0.0, 100, 10, 100, 2, 300.0, 0.99, 4.7, -0.05, 0.0, 1.0));

            for (int c = 0; c < 200; c++)
            {
                yield return(true);
            }

            Game.I.Walls.Add(new Wall_12001());

            Game.I.Enemies.Add(new Enemy_0002(GameConsts.FIELD_W / 2, -100.0, 100, 10, 5, 200, 3, 0.0, 100.0, 1.0, 1.0, 0.98));
            Game.I.Enemies.Add(new Enemy_0002(GameConsts.FIELD_W / 2, -100.0, 100, 10, 5, 200, 4, GameConsts.FIELD_W, 200.0, -1.0, 1.0, 0.98));

            for (int c = 0; c < 300; c++)
            {
                yield return(true);
            }

            Game.I.Walls.Add(new Wall_13001());

            for (int c = 0; c < 60; c++)
            {
                yield return(true);
            }

            Game.I.Enemies.Add(new Enemy_BigJackOLantern(GameConsts.FIELD_W, 0.0, 100, 10, 100, 11, 100.0, 0.996, 4.7, -0.03, -0.5, 0.3));
            Game.I.Enemies.Add(new Enemy_BigJackOLantern(0.0, 0.0, 100, 10, 100, 22, 100.0, 0.996, 4.7, 0.03, 0.5, 0.5));

            for (int c = 0; c < 500; c++)
            {
                yield return(true);
            }

            Game.I.Enemies.Add(new Enemy_BigJackOLantern(GameConsts.FIELD_W, 0.0, 100, 10, 100, 21, 100.0, 0.996, 4.7, -0.03, -0.5, 0.3));
            Game.I.Enemies.Add(new Enemy_BigJackOLantern(0.0, 0.0, 100, 10, 100, 11, 100.0, 0.996, 4.7, 0.03, 0.5, 0.5));

            for (int c = 0; c < 400; c++)
            {
                yield return(true);
            }

            // ---- BOSS 登場

            {
                Game.I.Shots.Add(new Shot_BossBomb());

                Enemy_鍵山雛 boss = new Enemy_鍵山雛();

                Game.I.Enemies.Add(boss);

                for (int c = 0; c < 90; c++)
                {
                    yield return(true);
                }

                string scenarioFile;

                switch (Game.I.Player.PlayerWho)
                {
                case Player.PlayerWho_e.メディスン:
                    scenarioFile = @"res\掛け合いシナリオ\メディスン_鍵山雛.txt";
                    break;

                case Player.PlayerWho_e.小悪魔:
                    scenarioFile = @"res\掛け合いシナリオ\小悪魔_鍵山雛.txt";
                    break;

                default:
                    throw null;                             // never
                }
                foreach (bool v in ScriptCommon.掛け合い(new Scenario(scenarioFile)))
                {
                    yield return(v);
                }

                boss.NextFlag = true;

                // boss はすぐに消滅することに注意
            }

            Ground.I.Music.MUS_BOSS_01.Play();

            while (!Game.I.BossKilled)
            {
                yield return(true);
            }

            for (int c = 0; c < 30; c++)
            {
                yield return(true);
            }

            Game.I.Shots.Add(new Shot_BossBomb());

            // ---- BOSS 撃破

            for (int c = 0; c < 180; c++)
            {
                yield return(true);
            }
        }