Exemple #1
0
 public override void Event_TimerRing(Timer timer)
 {
     if (timer == ti1 && boss.UnitState != UnitState.dead && phase3On)
     {
         Skill b = boss.SkillFromName("末日之雷");
         if (b.IsSkillUsable && boss.IsUsingSkill == false)
         {
             boss.CastSkill(b);
             Stage.AddRealtimeGameMessage("Doom: Thunder-of-Doom!", Color.Red, 2);
         }
     }
 }
Exemple #2
0
 public override void Event_UnitDied(Unit deadUnit)
 {
     if (phase2On && adds.Contains(deadUnit))
     {
         adds.Remove(deadUnit);
     }
     if (deadUnit == boss)
     {
         Stage.AddRealtimeGameMessage("Doom: System... fail...", Color.Red, 3);
         Stage.ScreenEffectManager.Blink(Color.Orange, 2);
         Stage.Victory("胜利!!");
         Stage.SavePlayer();
     }
 }
 public override void Touch()
 {
     if (t1 != null)
     {
         if (t1.IsEnd && b1 == false)
         {
             /*
              * Stage.AddRealtimeGameMessage(@"Rudolf the Commander: 呼叫附近星域的各单位,我们正在受到攻击!", Color.CornflowerBlue, 4);
              * Stage.AddRealtimeGameMessage(@"Rudolf the Commander: 我是第三舰队指挥官鲁道夫.巴特尔,", Color.CornflowerBlue, 3);
              * Stage.AddRealtimeGameMessage(@"Rudolf the Commander: 我们正在受到秩序之眼的攻击!", Color.CornflowerBlue, 3);
              * Stage.AddRealtimeGameMessage(@"Rudolf the Commander: 重复,我们正在受到秩序之眼的攻击!", Color.CornflowerBlue, 4);
              * Stage.AddRealtimeGameMessage(@"Rudolf the Commander: 损失惨重,请求支援!", Color.CornflowerBlue, 2);
              * Stage.AddRealtimeGameMessage(@"Rudolf the Commander: 该死,它们在攻击运输船!", Color.CornflowerBlue, 3);
              * Stage.AddRealtimeGameMessage(@"Rudolf the Commander: 重整队形,保护运输船!第三舰队重整队形!", Color.CornflowerBlue, 3);
              * Stage.AddRealtimeGameMessage(@"Rudolf the Commander: 它们摧毁了运输机!我们被包围了", Color.CornflowerBlue, 3);
              * Stage.AddRealtimeGameMessage(@"Rudolf the Commander: 那是什么?不!", Color.CornflowerBlue, 3);
              * Stage.AddRealtimeGameMessage(@"…… …… ……", Color.White, 2);
              * Stage.AddRealtimeGameMessage(@"苍隼系统信息:与目标失去联系。", Color.White, 4);
              *
              */
             Stage.AddRealtimeGameMessage(@"Rudolf the Commander: Mayday, mayday! We are under attack!", Color.CornflowerBlue, 4);
             Stage.AddRealtimeGameMessage(@"Rudolf the Commander: I am Rudolf Barter, commander of the 3rd Fleet.", Color.CornflowerBlue, 3);
             Stage.AddRealtimeGameMessage(@"Rudolf the Commander: We are under attack by the EoC", Color.CornflowerBlue, 3);
             Stage.AddRealtimeGameMessage(@"Rudolf the Commander: Repeat, we are under attack by the Eye of Cosmos!", Color.CornflowerBlue, 4);
             Stage.AddRealtimeGameMessage(@"Rudolf the Commander: We need some aid, immediately!", Color.CornflowerBlue, 2);
             Stage.AddRealtimeGameMessage(@"Rudolf the Commander: Damn, they are attacking the transport ship!", Color.CornflowerBlue, 3);
             Stage.AddRealtimeGameMessage(@"Rudolf the Commander: Regroup! Protect the transport!", Color.CornflowerBlue, 3);
             Stage.AddRealtimeGameMessage(@"Rudolf the Commander: Wait... what is that thing?", Color.CornflowerBlue, 3);
             Stage.AddRealtimeGameMessage(@"Rudolf the Commander: No!", Color.CornflowerBlue, 3);
             Stage.AddRealtimeGameMessage(@"................", Color.White, 2);
             Stage.AddRealtimeGameMessage(@"System: Connection lost.", Color.White, 4);
             b1 = true;
         }
     }
     if (Stage.IsMessageEnd && b1 == true)
     {
         Stage.Player.Stop();
         Stage.Player.isPlayerControlling = true;
         Stage.Player.IsAIControlling     = true;
         Stage.NextPart();
     }
 }
Exemple #4
0
 public override void Touch()
 {
     if (boss.UnitState == UnitState.alive)
     {
         if (battleBegin)
         {
             Skill s = boss.SkillFromName("轨道炮");
             if (s != null)
             {
                 if (s.IsSkillUsable && boss.IsUsingSkill == false)
                 {
                     boss.CastSkill(s);
                     Stage.AddRealtimeGameMessage("Doom: Railgun, full recharge.", Color.Red, 2);
                     if (phase3On)
                     {
                         ti1.Reset();
                     }
                 }
             }
             Skill g = boss.SkillFromName("空间吸引");
             if (g != null)
             {
                 if (g.IsCooldowned && boss.IsUsingSkill == false)
                 {
                     foreach (Unit u in Stage.Units)
                     {
                         if (Unit.Distance(boss, u) > 2300 && u.Group != boss.Group)
                         {
                             boss.CastSkill(g, u);
                             Stage.AddRealtimeGameMessage("Doom: Face your doom!", Color.Red, 2);
                             break;
                         }
                     }
                 }
             }
         }
         if (phase1On && battleBegin)
         {
             if (boss.Armor <= 12000)
             {
                 Stage.PlayMusic(@"Audio\Kai_Engel_-_Beneath_The_Stronghold", true, 5);
                 boss.Shield       = 12000;
                 boss.IsInvincible = true;
                 ((RegularAI)boss.unitAI).settings.isMoveAble = false;
                 Stage.ClearMessages();
                 Stage.AddRealtimeGameMessage("Doom: 检测到目标对本系统构成威胁。", Color.Red, 3);
                 Stage.AddRealtimeGameMessage("Doom: 释放防御力场产生器,防御模式启动中……", Color.Red, 3);
                 phase1On = false;
                 phase2On = true;
                 Stage.CreateNPCUnit(Content.Load <UnitType>(@"UnitTypes\DoomShield"), 3, new Vector3(500, 0, 0) + boss.Position);
                 adds.Add(Variables.LastCreatedUnit);
                 Stage.CreateNPCUnit(Content.Load <UnitType>(@"UnitTypes\DoomShield"), 3, new Vector3(-500, 0, 0) + boss.Position);
                 adds.Add(Variables.LastCreatedUnit);
                 Stage.CreateNPCUnit(Content.Load <UnitType>(@"UnitTypes\DoomShield"), 3, new Vector3(0, 500, 0) + boss.Position);
                 adds.Add(Variables.LastCreatedUnit);
                 Stage.CreateNPCUnit(Content.Load <UnitType>(@"UnitTypes\DoomShield"), 3, new Vector3(0, -500, 0) + boss.Position);
                 adds.Add(Variables.LastCreatedUnit);
                 Stage.CreateNPCUnit(Content.Load <UnitType>(@"UnitTypes\DoomShield"), 3, new Vector3(0, 0, 500) + boss.Position);
                 adds.Add(Variables.LastCreatedUnit);
                 Stage.CreateNPCUnit(Content.Load <UnitType>(@"UnitTypes\DoomShield"), 3, new Vector3(0, 0, -500) + boss.Position);
                 adds.Add(Variables.LastCreatedUnit);
             }
         }
         if (phase2On)
         {
             if (adds.Count == 0)
             {
                 Stage.PlayMusic(@"Audio\Antti_Martikainen_-_Through_Enemy_Lines", true, 5);
                 Stage.AddRealtimeGameMessage("Doom: 防御力场被破坏,防御模式关闭,狂暴模式启动中……", Color.Red, 3);
                 phase2On = false;
                 phase3On = true;
                 ((RegularAI)boss.unitAI).settings.isMoveAble = true;
                 boss.IsInvincible = false;
                 boss.angularRate  = 20.0f;
             }
         }
         if (phase3On)
         {
         }
     }
 }
        /// <summary>
        /// 关卡判断
        /// </summary>
        public override void Touch()
        {
            if (!win)
            {
                if (boss != null)
                {
                    if (boss.Shield <= 80000 && b1 == false)
                    {
                        /*
                         * Stage.AddRealtimeGameMessage(@"Vector: 只有我才有权限开启星际之门!", Color.Red, 2);
                         * Stage.AddRealtimeGameMessage(@"Vector: 如果你们不想一起死在秩序之眼的爆炸中,", Color.Red, 2);
                         * Stage.AddRealtimeGameMessage(@"Vector: 就把“遗迹”交给我!", Color.Red, 2);
                         *
                         */
                        Stage.AddRealtimeGameMessage(@"Vector: Only I can initiate the jump system!", Color.Red, 2);
                        Stage.AddRealtimeGameMessage(@"Vector: If you don't want to die in the explosion of the Eye", Color.Red, 2);
                        Stage.AddRealtimeGameMessage(@"Vector: The give me the Relic!", Color.Red, 2);

                        b1 = true;
                    }
                    else if (boss.Shield < 60000 && b2 == false)
                    {
                        /*
                         * Stage.AddRealtimeGameMessage(@"Vector: 如果你们不想一起死在秩序之眼的爆炸中,", Color.Red, 2);
                         * Stage.AddRealtimeGameMessage(@"Vector: 就把“遗迹”交给我!", Color.Red, 2);
                         * Stage.AddRealtimeGameMessage(@"Alicia: 没关系的,你会比秩序之眼先爆炸。", Color.Yellow, 4);
                         * Stage.AddRealtimeGameMessage(@"Alicia: 这将是秩序之眼最后一次维护真正的秩序。", Color.Yellow, 4);
                         * Stage.AddRealtimeGameMessage(@"Vector: 有趣。", Color.Red, 2);
                         *
                         */
                        Stage.AddRealtimeGameMessage(@"Vector: If you don't want to die in the explosion of the Eye", Color.Red, 2);
                        Stage.AddRealtimeGameMessage(@"Vector: The give me the Relic!", Color.Red, 2);
                        Stage.AddRealtimeGameMessage(@"Alicia: No matter, you will explode faster.", Color.Yellow, 4);
                        Stage.AddRealtimeGameMessage(@"Alicia: This is the time for cosmos.", Color.Yellow, 4);
                        Stage.AddRealtimeGameMessage(@"Vector: interesting.", Color.Red, 2);
                        Stage.ScreenEffectManager.Blink(Color.Orange, 10);

                        b2 = true;
                    }
                    else if (boss.Shield < 50000 && b3 == false && b6 == false && !Stage.Player.Dead)
                    {
                        ((RegularAI)boss.unitAI).Target           = Stage.Player;
                        ((RegularAI)boss.unitAI).TargetChangeAble = false;
                        Stage.ScreenEffectManager.Blink(Color.Orange, 10);

                        b3 = true;
                    }
                    else if (!b4 && boss.Shield < 100)
                    {
                        Stage.PlayMusic(@"Audio\Antti_Martikainen_-_Through_Enemy_Lines", true, 5);
                        Stage.AddRealtimeGameMessage(@"Vector: Drones online!", Color.Red, 2);
                        Stage.AddRealtimeGameMessage(@"Vector: You are doomed, traitors!", Color.Red, 2);

                        /*
                         * Stage.AddRealtimeGameMessage(@"Vector: 开始投放无人机!", Color.Red, 2);
                         * Stage.AddRealtimeGameMessage(@"Vector: 我要毁灭你们,叛徒!", Color.Red, 2);
                         */
                        boss.AddSkill(@"Skills\Summon_Falcon");
                        b4 = true;
                    }
                    else if (!b5 && boss.Armor < 50000)
                    {
                        Stage.PlayMusic(@"Audio\TitanSlayer_-_Dawning_of_Darkness", true, 5);
                        //Stage.AddRealtimeGameMessage(@"Vector: 这是你自找的,可恶!", Color.Red, 2);
                        Stage.AddRealtimeGameMessage(@"Vector: You asked this yourself!", Color.Red, 2);
                        boss.AddSkill(@"Skills\Ghost_AE");
                        b5 = true;
                    }
                }
            }
            if (win)
            {
                if (Stage.IsMessageEnd)
                {
                    Stage.Victory("哈哈!");
                    win = false;
                }
            }
        }
        public override void Event_TimerRing(Timer timer)
        {
            if (timer == t)
            {
                /*
                 * Stage.AddRealtimeGameMessage(@"马萨:第三舰队,向盖亚号发起突击!", Color.CornflowerBlue, 4);
                 * Stage.AddRealtimeGameMessage(@"Alrdis: 第四舰队,锁定盖亚号!", Color.CornflowerBlue, 4);
                 * Stage.AddRealtimeGameMessage(@"Vector: 你们这些渣滓!", Color.Red, 2);
                 */
                Stage.AddRealtimeGameMessage(@"Matha:1st Fleet,let's attack the Gaia!", Color.CornflowerBlue, 4);
                Stage.AddRealtimeGameMessage(@"Alrdis: 4th Fleet, lock on Gaia!", Color.CornflowerBlue, 4);
                Stage.AddRealtimeGameMessage(@"Vector: YOU ALL BETRAYED ME!?", Color.Red, 2);


                Stage.CreateNPCUnit(Content.Load <UnitType>(@"UnitTypes\Phoenix"), 1, new Vector3(3000, 0, 0));
                Variables.LastCreatedUnit.RiderName = "阿贝拉尔 <3rd fleet>";
                Stage.CreateNPCUnit(Content.Load <UnitType>(@"UnitTypes\Phoenix"), 1, new Vector3(3000, 100, 0));

                Variables.LastCreatedUnit.RiderName = "Book <1st Fleet>";
                Stage.CreateNPCUnit(Content.Load <UnitType>(@"UnitTypes\Phoenix"), 1, new Vector3(3000, -100, 0));
                Variables.LastCreatedUnit.RiderName = "Affton <1st Fleet>";
                Stage.CreateNPCUnit(Content.Load <UnitType>(@"UnitTypes\Phoenix"), 1, new Vector3(3000, 50, 0));
                Variables.LastCreatedUnit.RiderName = "Matha <1st Fleet Commander>";
                Stage.CreateNPCUnit(Content.Load <UnitType>(@"UnitTypes\Falcon3"), 1, new Vector3(-3000, 0, 0));
                Variables.LastCreatedUnit.RiderName = "Affron <4rd Fleet>";
                Stage.CreateNPCUnit(Content.Load <UnitType>(@"UnitTypes\Falcon2"), 1, new Vector3(-3000, 50, 0));
                Variables.LastCreatedUnit.RiderName = "Alrdis <4rd Fleet Commander>";
                Stage.CreateNPCUnit(Content.Load <UnitType>(@"UnitTypes\Falcon3"), 1, new Vector3(-3000, -50, 0));
                Variables.LastCreatedUnit.RiderName = "Orderi <4rd Fleet>";



                t1 = Stage.CreateTimer(20);

                Stage.CreateNPCUnit(Content.Load <UnitType>(@"UnitTypes\Titan_BOSS"), 3, new Vector3(0, 0, 0));

                Variables.LastCreatedUnit.RiderName = "Vector";
                boss = Variables.LastCreatedUnit;
                boss.IsInvincible = true;
                boss.MoveTo(Stage.Player.Position);
                b = true;
            }

            if (timer == t1)
            {
                Stage.PlayMusic(@"Audio\Kai_Engel_-_Beneath_The_Stronghold", true, 5);

                /*
                 * Stage.AddGameMessage(@"Vector: 哈哈哈哈!你们无法撼动盖亚号!", Color.Red, 2);
                 * Stage.AddGameMessage(@"Alicia: 是吗?", Color.Yellow, 4);
                 * Stage.AddGameMessage(@"Vector: 怎……怎么会!?", Color.Red, 2);
                 * Stage.AddGameMessage(@"Alicia: 看来你的护盾好像已经被我重写的“遗迹”发出的信号解除了。", Color.Yellow, 4);
                 * Stage.AddGameMessage(@"Alicia: 再次瘫痪吧!这次可没有什么能保护盖亚号了!", Color.Yellow, 4);
                 */

                Stage.AddGameMessage(@"Vector: Hahaha, you can't hurt the Gaia!", Color.Red, 2);
                Stage.AddGameMessage(@"Alicia: Is it?", Color.Yellow, 4);
                Stage.AddGameMessage(@"Vector: Wh...what!?", Color.Red, 2);
                Stage.AddGameMessage(@"Alicia: I hacked your shield.", Color.Yellow, 4);
                Stage.AddGameMessage(@"Alicia: Nothing can protect you now, Vector.", Color.Yellow, 4);
                boss.IsInvincible = false;
                boss.Stop();
            }
            if (timer == mori)
            {
                Stage.PlayMusic(@"Audio\Antti_Martikainen_-_The_Chase", true, 5);

                /*
                 * Stage.AddGameMessage(@"Vector: 死吧!", Color.Red, 2);
                 * Stage.AddGameMessage(@"Alicia: 正在激活末日级,钥匙:遗迹。", Color.Yellow, 4);
                 * Stage.AddGameMessage(@"Vector: 什么?", Color.Red, 2);
                 * Stage.AddGameMessage(@"Alicia: 末日,隐形模式关闭,攻击模式开启。", Color.Yellow, 4);
                 * Stage.AddGameMessage(@"Alicia: 杰诺,准备好了就按下发射钮吧。", Color.Yellow, 4);
                 * Stage.AddGameMessage(@"Vector: 就算是末日,也阻挡不了我!", Color.Red, 2);
                 * Stage.AddGameMessage(@"Price Jeffsion: 威克多,你的轨道偏转装置,刚才已经被我破坏了哦!", Color.CornflowerBlue, 4);
                 * Stage.AddGameMessage(@"Vector: 不!叛徒,死吧!这个世界属于我!", Color.Red, 2);
                 */

                Stage.AddGameMessage(@"Vector: Die!", Color.Red, 2);
                Stage.AddGameMessage(@"Alicia: Activating the Doom battleship, key: Relic.", Color.Yellow, 4);
                Stage.AddGameMessage(@"Vector: What!?", Color.Red, 2);
                Stage.AddGameMessage(@"Alicia: Doom, cloak off, railgunready.", Color.Yellow, 4);
                Stage.AddGameMessage(@"Alicia: Zero, if you are prepared, then shoot.", Color.Yellow, 4);
                Stage.AddGameMessage(@"Vector: It is your doom!", Color.Red, 2);
                //Stage.AddGameMessage(@"Price Jeffsion: 威克多,你的轨道偏转装置,刚才已经被我破坏了哦!", Color.CornflowerBlue, 4);
                Stage.AddGameMessage(@"Vector: NO! DIE! TRAITORS! THIS WORLD  IS MINE!", Color.Red, 2);


                Stage.CreatePlayerUnit(Content.Load <UnitType>(@"UnitTypes\Doom_Player"), 1, boss.Position + new Vector3(0, 0, 3000));
                Variables.LastCreatedUnit.RiderName = @"Zero";
                Stage.Player = Variables.LastCreatedUnit;
                ((AODGameLibrary2.AssistAI)Variables.Unit[2].unitAI).AssistUnit = Stage.Player;
                ((AODGameLibrary2.AssistAI)Variables.Unit[3].unitAI).AssistUnit = Stage.Player;
                ((AODGameLibrary2.AssistAI)Variables.Unit[4].unitAI).AssistUnit = Stage.Player;

                Stage.Player.IsLootAble = false;
                Stage.GameWorld.playerAimCamera.cameraObjOffset   = new Vector3(0, 100, 0);
                Stage.GameWorld.playerChaseCamera.cameraObjOffset = new Vector3(0, 130, 100);
                Stage.Player.SkillControlUnit = true;
                Stage.FailWhenPlayerDied      = true;

                ((RegularAI)boss.unitAI).Target                 = Stage.Player;
                ((RegularAI)boss.unitAI).TargetChangeAble       = false;
                ((RegularAI)boss.unitAI).settings.isCycleAble   = true;
                ((RegularAI)boss.unitAI).settings.minRange      = 150;
                ((RegularAI)boss.unitAI).settings.rangeOfCycle  = 1500;
                ((RegularAI)boss.unitAI).settings.rangeOfAttack = 90000;
                ((RegularAI)boss.unitAI).settings.rangeOfShot   = 5000;
                boss.angularRate = 90;
                b6 = true;
            }
            base.Event_TimerRing(timer);
        }
Exemple #7
0
        /// <summary>
        /// 关卡判断
        /// </summary>
        public override void Touch()
        {
            if (Vector3.Distance(Stage.Player.Position, Vector3.Zero) > 5000)
            {
                Damage x = new Damage();
                x.attacker    = boss;
                x.BasicDamage = 150;
                x.CrossValue  = 0.1f;
                x.Fold        = 1;
                x.FoldArmor   = 3;
                x.FoldShield  = 1;
                Stage.ScreenEffectManager.Blink(new Color(255, 0, 0, 55), 0.2f);

                Stage.Player.GetDamage(x);
            }
            if (!end)
            {
                if (b1)
                {
                    Skill s = boss.SkillFromName("轨道炮");
                    if (s != null)
                    {
                        if (s.IsSkillUsable && boss.IsUsingSkill == false)
                        {
                            boss.CastSkill(s);
                            Stage.AddRealtimeGameMessage("Eye of Cosmos: See in the Eye of Cosmos, mortal.", Color.Red, 2);
                        }
                    }
                }
                if (b3)
                {
                    Skill s = boss.SkillFromName("幽灵导弹_AE");
                    if (s != null)
                    {
                        if (s.IsSkillUsable && boss.IsUsingSkill == false)
                        {
                            boss.CastSkill(s);
                        }
                    }
                }
                if (b3)
                {
                    Skill s = boss.SkillFromName("墓地震击MK2");
                    if (s != null)
                    {
                        if (s.IsSkillUsable && boss.IsUsingSkill == false)
                        {
                            boss.CastSkill(s);
                            Stage.AddRealtimeGameMessage("Eye of Cosmos: Too weak!", Color.Red, 2);
                        }
                    }
                }
                if (b4)
                {
                    if (Stage.AliveUnitsInUnitGroup(2).Count < 5)
                    {
                        Stage.CreateNPCUnit(Content.Load <UnitType>(@"UnitTypes\ShadowSlain"), 2, new Vector3(0, -914, -4828));
                        Stage.CreateNPCUnit(Content.Load <UnitType>(@"UnitTypes\FlameDestroyer"), 2, new Vector3(0, 4500, 1748));
                    }
                }
            }
            if (end)
            {
                Stage.Victory("YES");
                end = false;
            }
        }
Exemple #8
0
        public override void Event_TimerRing(Timer timer)
        {
            if (timer == t)
            {
                Stage.PlayMusic(@"Audio\Kai_Engel_-_Beneath_The_Stronghold", true, 2);

                /*
                 * Stage.AddGameMessage(@"Vector: 听着,秩序之眼由一层坚固的外壳保护着。", Color.CornflowerBlue, 4);
                 * Stage.AddGameMessage(@"Vector: 打破外壳,然后马上把“遗迹”扔进去。", Color.CornflowerBlue, 2);
                 * Stage.AddGameMessage(@"Vector: 尽快行动,秩序之眼察觉到了你们的存在。", Color.CornflowerBlue, 2);
                 * Stage.AddGameMessage(@"Zero: 交给我了!", Color.LightGreen, 2);
                 * Stage.AddGameMessage(@"Vector: 只要“遗迹”接触到秩序之眼,一切就成功了!", Color.CornflowerBlue, 2);
                 * Stage.AddGameMessage(@"...............", Color.White, 4);
                 * Stage.AddGameMessage(@"Eye of Cosmos: 秩序之眼启动……消灭——侵略——者——", Color.Red, 4);
                 * Stage.AddGameMessage(@"Alicia: 小心,它不受我的控制了!", Color.Yellow, 4);
                 * Stage.AddRealtimeGameMessage(@"Eye of Cosmos: 紧急防御系统初始化……武器准备……", Color.Red, 4);
                 */

                Stage.AddGameMessage(@"Vector: Listen, it is protect by a hard shell.", Color.CornflowerBlue, 4);
                Stage.AddGameMessage(@"Vector: Destroy the shell, and shoot the Relic into the core.", Color.CornflowerBlue, 2);
                Stage.AddGameMessage(@"Vector: Do it fast.", Color.CornflowerBlue, 2);
                Stage.AddGameMessage(@"Zero: Fine.", Color.LightGreen, 2);
                Stage.AddGameMessage(@"Vector: We will succeed if the Relic touchs the core.", Color.CornflowerBlue, 2);
                Stage.AddGameMessage(@"...............", Color.White, 4);
                Stage.AddGameMessage(@"Eye of Cosmos: Eys of Cosmos online, destroying the invaders.", Color.Red, 4);
                Stage.AddGameMessage(@"Alicia: Watch out! it is out of my control!", Color.Yellow, 4);
                Stage.AddRealtimeGameMessage(@"Eye of Cosmos: Initializing emergency defence.", Color.Red, 4);

                Stage.CreateNPCUnit(Content.Load <UnitType>(@"UnitTypes\EOS"), 2, new Vector3(0, 0, 0));
                Variables.LastCreatedUnit.SetMoveState(Vector3.Zero, new Vector3(0, 180, 0));
                boss = Variables.LastCreatedUnit;
                //Stage.CreateNPCUnit(Content.Load<UnitType>(@"UnitTypes\EOSSh"), 2, new Vector3(0, 800, 0));
                //Variables.LastCreatedUnit.SetMoveState(Vector3.Zero, new Vector3(0, 180, 0));
                //Stage.CreateNPCUnit(Content.Load<UnitType>(@"UnitTypes\EOSMa"), 2, new Vector3(0, -800, 0));
                //Variables.LastCreatedUnit.SetMoveState(Vector3.Zero, new Vector3(0, 180, 0));
                //Stage.CreateNPCUnit(Content.Load<UnitType>(@"UnitTypes\EOSMi"), 2, new Vector3(800, 0, 0));
                //Variables.LastCreatedUnit.SetMoveState(Vector3.Zero, new Vector3(0, 180, 0));
                //Stage.CreateNPCUnit(Content.Load<UnitType>(@"UnitTypes\EOSMa"), 2, new Vector3(-800, 0, 0));
                //Variables.LastCreatedUnit.SetMoveState(Vector3.Zero, new Vector3(0, 180, 0));
                //Stage.CreateNPCUnit(Content.Load<UnitType>(@"UnitTypes\EOSMi"), 2, new Vector3(0, 0, -800));
                //Variables.LastCreatedUnit.SetMoveState(Vector3.Zero, new Vector3(0, 180, 0));

                t1 = Stage.CreateTimer(20);
                t3 = Stage.CreateTimer(50);
                t4 = Stage.CreateTimer(75);
                //Stage.CreateNPCUnit(Content.Load<UnitType>(@"UnitTypes\Scream"), 4, new Vector3(0, 0, 0));
                //Stage.CreateNPCUnit(Content.Load<UnitType>(@"UnitTypes\Scream"), 4, new Vector3(0, 0, 0));
                //Stage.CreateNPCUnit(Content.Load<UnitType>(@"UnitTypes\Scream"), 4, new Vector3(0, 0, 0));
                //Stage.CreateNPCUnit(Content.Load<UnitType>(@"UnitTypes\Scream"), 4, new Vector3(0, 0, 0));
                //Stage.CreateNPCUnit(Content.Load<UnitType>(@"UnitTypes\Scream"), 4, new Vector3(0, 0, 0));
                //Stage.CreateNPCUnit(Content.Load<UnitType>(@"UnitTypes\Scream"), 4, new Vector3(0, 0, 0));
                //Stage.CreateNPCUnit(Content.Load<UnitType>(@"UnitTypes\Scream"), 4, new Vector3(0, 0, 0));
                //Stage.CreateNPCUnit(Content.Load<UnitType>(@"UnitTypes\Scream"), 4, new Vector3(0, 0, 0));
                //Stage.CreateNPCUnit(Content.Load<UnitType>(@"UnitTypes\Scream"), 4, new Vector3(0, 0, 0));
                b = true;
            }
            if (!end)
            {
                if (timer == t1)
                {
                    Stage.PlayMusic(@"Audio\Antti_Martikainen_-_The_Chase", true, 2);

                    /*
                     * Stage.AddGameMessage(@"Alicia: 糟糕,秩序之眼正在启动内置的战略轨道炮!", Color.Yellow, 4);
                     * Stage.AddGameMessage(@"Alicia: 我已经没有权限阻止了,不要正面攻击它!", Color.Yellow, 4);
                     * Stage.AddGameMessage(@"Eye of Cosmos: 紧急防御系统初始化完毕……轨道炮激活……", Color.Red, 4);
                     * Stage.AddGameMessage(@"Eye of Cosmos: 轨道炮激活完毕……紧急防御系统第二阶段初始化中", Color.Red, 4);
                     * Stage.AddGameMessage(@"Vector: 通告!侦测到轨道炮,盖亚号,开启轨道偏转护盾!", Color.CornflowerBlue, 2);
                     * Stage.AddGameMessage(@"Vector: 盖亚号安全!各小队自行掩护!", Color.CornflowerBlue, 2);
                     */



                    Stage.AddGameMessage(@"Alicia: It is preparing the Strategic Railgun", Color.Yellow, 4);
                    Stage.AddGameMessage(@"Alicia: Don't engage it from ahead!", Color.Yellow, 4);
                    Stage.AddGameMessage(@"Eye of Cosmos: Railgun, active.", Color.Red, 4);
                    Stage.AddGameMessage(@"Eye of Cosmos: Second phase initializing...", Color.Red, 4);
                    Stage.AddGameMessage(@"Vector: Warning! Railgun threat detected!", Color.CornflowerBlue, 2);
                    Stage.AddGameMessage(@"Vector: Protect yourselves!", Color.CornflowerBlue, 2);

                    t2 = Stage.CreateTimer(10);
                }
                if (timer == t2)
                {
                    b1 = true;
                }
                if (timer == t3)
                {
                    Stage.PlayMusic(@"Audio\Antti_Martikainen_-_Through_Enemy_Lines", true, 2);
                    //Stage.AddRealtimeGameMessage(@"Eye of Cosmos: 紧急防御系统初始化第二阶段……飞弹风暴开启……", Color.Red, 4);
                    Stage.AddRealtimeGameMessage(@"Eye of Cosmos: Second phase completed, Missile Storm on.", Color.Red, 4);
                    //Stage.AddRealtimeGameMessage(@"Vector: 盖亚号安全!各小队自行掩护!", Color.CornflowerBlue, 2);
                    b3 = true;
                }
                if (timer == t4)
                {
                    Stage.PlayMusic(@"Audio\TitanSlayer_-_Dawning_of_Darkness", true, 2);
                    //Stage.AddRealtimeGameMessage(@"Eye of Cosmos: 紧急防御系统初始化第三阶段……快速装配开启……", Color.Red, 4);
                    Stage.AddRealtimeGameMessage(@"Eye of Cosmos: Third phase completed, Mob Module on.", Color.Red, 4);

                    b4 = true;
                }
            }

            base.Event_TimerRing(timer);
        }
        /// <summary>
        /// 关卡判断
        /// </summary>
        public override void Touch()
        {
            if (won)
            {
                Stage.Victory("哈哈!");
                won = false;
            }
            if (boss != null)
            {
                if (!b4)
                {
                    if (b2)
                    {
                        Skill s = boss.SkillFromName("能量爆发");
                        if (s != null)
                        {
                            if (s.IsSkillUsable && boss.IsUsingSkill == false)
                            {
                                boss.CastSkill(s);
                                Stage.AddRealtimeGameMessage("Chris: The power of the Relic is mine!", Color.Red, 2);
                            }
                        }
                    }
                    if (b3)
                    {
                        Skill s = boss.SkillFromName("墓地震击MK2");
                        if (s != null)
                        {
                            if (s.IsSkillUsable && boss.IsUsingSkill == false)
                            {
                                Stage.AddRealtimeGameMessage("Chris: Break up! The universe!", Color.Red, 2);
                                boss.CastSkill(s);
                            }
                        }
                    }
                    {
                        Skill s = boss.SkillFromName("充能弹");
                        if (s != null)
                        {
                            if (s.IsSkillUsable && boss.IsUsingSkill == false)
                            {
                                boss.CastSkill(s);
                                Stage.AddRealtimeGameMessage("Chris: Burn!", Color.Red, 2);
                            }
                        }
                    }
                    {
                        Skill g = boss.SkillFromName("空间吸引");
                        if (g != null)
                        {
                            if (g.IsCooldowned && boss.IsUsingSkill == false)
                            {
                                foreach (Unit u in Stage.Units)
                                {
                                    if (Unit.Distance(boss, u) > 2300 && u.Group != boss.Group)
                                    {
                                        boss.CastSkill(g, u);
                                        Stage.AddRealtimeGameMessage("Chris: Where do you want to go, child?", Color.Red, 2);
                                        break;
                                    }
                                }
                            }
                        }
                    }
                }


                if (!b2 && boss.Shield < 25000)
                {
                    Stage.AddGameMessage(@"...............", Color.White, 4);

                    /*
                     * Stage.AddGameMessage(@"Chris: 威克多算什么?除了一个野心家,他什么都不是。", Color.Red, 4);
                     * Stage.AddGameMessage(@"Chris: 想知道他的“伟大”计划么?", Color.Red, 4);
                     * Stage.AddGameMessage(@"Chris: 放心吧,我不会把真相告诉即将通向天堂的杂种!", Color.Red, 4);
                     * Stage.AddGameMessage(@"Alicia: 天堂……", Color.Yellow, 4);
                     * Stage.AddGameMessage(@"Chris: 把杰诺和“遗迹”交给我,然后去死吧!", Color.Red, 4);
                     * Stage.AddGameMessage(@"Maria Woodwind: 看来你需要冷静一下……", Color.CornflowerBlue, 4);
                     *
                     */
                    Stage.AddGameMessage(@"Chris: Vector is nothing.", Color.Red, 4);
                    Stage.AddGameMessage(@"Chris: You don't want to know his plan?", Color.Red, 4);
                    Stage.AddGameMessage(@"Chris: Good, you won't know the truth before you are in the heaven.", Color.Red, 4);
                    Stage.AddGameMessage(@"Alicia: Heaven...", Color.Yellow, 4);
                    Stage.AddGameMessage(@"Chris: Give me Relic, and die.", Color.Red, 4);
                    Stage.AddGameMessage(@"Maria Woodwind: You need to cool your head.", Color.CornflowerBlue, 4);

                    b2 = true;
                }
                else if (!b3 && boss.Shield < 10000)
                {
                    /*
                     * Stage.AddGameMessage(@"...............", Color.White, 4);
                     * Stage.AddGameMessage(@"Chris: 知道秩序之眼是如何被制造出来的吗?", Color.Red, 4);
                     * Stage.AddGameMessage(@"Alicia: 这是……最高机密……求求你……", Color.Yellow, 4);
                     * Stage.AddGameMessage(@"Chris: 光靠计算机作为核心,是不可能制造出现在的秩序之眼的。", Color.Red, 4);
                     * Stage.AddGameMessage(@"Chris: 所以……需要一项技术,将人类的智慧和计算机的计算能力结合起来……", Color.Red, 4);
                     * Stage.AddGameMessage(@"Chris: “遗迹”便是关键的钥匙!", Color.Red, 4);
                     * Stage.AddGameMessage(@"Chris: 当然,根据我刚刚入手的档案,还需要一个神圣的牺牲者与秩序之眼结合。", Color.Red, 4);
                     * Stage.AddGameMessage(@"Alicia: 停下来!", Color.Yellow, 4);
                     * Stage.AddGameMessage(@"Chris: 这个牺牲者是一个女孩——", Color.Red, 4);
                     * Stage.AddGameMessage(@"Zero: 难道说——", Color.LightGreen, 2);
                     * Stage.AddGameMessage(@"Alicia: 不!", Color.Yellow, 4);
                     * Stage.AddGameMessage(@"Chris: 她的名字叫——", Color.Red, 4);
                     * Stage.AddGameMessage(@"Bill: 阿莉西亚。", Color.CornflowerBlue, 4);
                     * Stage.AddGameMessage(@"Zero: !", Color.LightGreen, 2);
                     * Stage.AddGameMessage(@"Chris: 回答正确,不过你的回答是多余的,比尔。", Color.Red, 4);
                     * Stage.AddGameMessage(@"Alicia: ……哈……哈哈……哈哈哈哈……", Color.Yellow, 4);
                     */

                    Stage.AddGameMessage(@"...............", Color.White, 4);
                    Stage.AddGameMessage(@"Chris: You want to know how the Eye is created?", Color.Red, 4);
                    Stage.AddGameMessage(@"Alicia: This is... top secret... please...", Color.Yellow, 4);
                    Stage.AddGameMessage(@"Chris: We couldn't create such a system with computer chips only.", Color.Red, 4);
                    Stage.AddGameMessage(@"Chris: We needed a technology to bind human minds and the computer together.", Color.Red, 4);
                    Stage.AddGameMessage(@"Chris: And the Relic was the key!", Color.Red, 4);
                    Stage.AddGameMessage(@"Chris: A victim was chosen to take part in the experiment.", Color.Red, 4);
                    Stage.AddGameMessage(@"Alicia: Stop!", Color.Yellow, 4);
                    Stage.AddGameMessage(@"Chris: That victim was a girl.", Color.Red, 4);
                    Stage.AddGameMessage(@"Zero: I don't know what you are talking about.", Color.LightGreen, 2);
                    Stage.AddGameMessage(@"Alicia: No!", Color.Yellow, 4);
                    Stage.AddGameMessage(@"Chris: Her name is -", Color.Red, 4);
                    Stage.AddGameMessage(@"Bill: Alicia.", Color.CornflowerBlue, 4);
                    Stage.AddGameMessage(@"Zero: !", Color.LightGreen, 2);
                    Stage.AddGameMessage(@"Chris: Good answer.", Color.Red, 4);
                    Stage.AddGameMessage(@"Alicia: .....ha...hah....hahaha.....", Color.Yellow, 4);

                    Stage.PlayMusic(@"Audio\Antti_Martikainen_-_Through_Enemy_Lines", true, 2);
                    b3 = true;
                }
                else if (!b4 && boss.Armor < 45000 && boss.Shield < 10000)
                {
                    Stage.PlayMusic(@"Audio\TitanSlayer_-_Dawning_of_Darkness", true, 3);
                    Stage.AddGameMessage(@"...............", Color.White, 4);

                    /*
                     * Stage.AddGameMessage(@"Chris: 威克多想要统治世界,但是他做不到,因为他的棋子马上就会被干掉。", Color.Red, 4);
                     * Stage.AddGameMessage(@"Chris: 秩序,属于我!", Color.Red, 4);
                     * Stage.AddGameMessage(@"Alicia: 你……休想。", Color.Yellow, 4);
                     * Stage.AddGameMessage(@"Chris: 什么?", Color.Red, 4);
                     * Stage.AddGameMessage(@"Alicia: 秩序之剑,出击!", Color.Yellow, 4);
                     * Stage.AddGameMessage(@"Chris: 不——不——不!", Color.Red, 4);
                     *
                     */

                    Stage.AddGameMessage(@"Chris: Vector wants to role the world, but he will fail.", Color.Red, 4);
                    Stage.AddGameMessage(@"Chris: The Cosmos is mine!", Color.Red, 4);
                    Stage.AddGameMessage(@"Alicia: Don't even think about that!", Color.Yellow, 4);
                    Stage.AddGameMessage(@"Chris: What?", Color.Red, 4);
                    Stage.AddGameMessage(@"Alicia: Swords of Cosmos, strike!", Color.Yellow, 4);
                    Stage.AddGameMessage(@"Chris: No-no-no!", Color.Red, 4);

                    for (int i = 0; i < 10; i++)
                    {
                        Stage.CreateNPCUnit(Content.Load <UnitType>(@"UnitTypes\EyesElite"), 1, Stage.Player.Position + -2000 * Stage.Player.Face);
                    }
                    b4 = true;
                }
            }
        }
Exemple #10
0
        public override void Event_TimerRing(Timer timer)
        {
            if (timer == t2)
            {
                boss.CastSkill("末日之雷");
                foreach (Unit u in Stage.AliveUnitsInUnitGroup(2))
                {
                    u.Shield            = 0;
                    u.ShieldRestoreRate = 0;
                    u.Armor             = 1;
                }
                if (Variables.Unit[7] != null)
                {
                    ((RegularAI)Variables.Unit[7].unitAI).settings.isShotAble    = false;
                    ((RegularAI)Variables.Unit[7].unitAI).settings.isSkillUsable = false;
                }
                if (Variables.Unit[8] != null)
                {
                    Variables.Unit[8].BeginToDie();
                }
                rudolf.IsInvincible  = false;
                boss.IsAIControlling = true;
                bossStart            = Stage.CreateTimer(16);
                x = Stage.CreateTimer(5);
            }
            if (timer == x)
            {
                /*
                 * Stage.AddGameMessage(@"Alicia: 傻瓜,你们根本不知道怎样对付这个家伙,现在没人能伤到它。", Color.Yellow, 4);
                 * Stage.AddGameMessage(@"Zero: 难道你知道怎么对付它?小女孩?", Color.LightGreen, 3);
                 * Stage.AddGameMessage(@"Alicia: 我不是什么小女孩,我叫阿莉西亚,附近星域的黑客。", Color.Yellow, 4);
                 * Stage.AddGameMessage(@"Alicia: “遗迹”就在那个大家伙里面,它现在干扰了几乎所有的正常通信。", Color.Yellow, 4);
                 * Stage.AddGameMessage(@"Alicia: 我正在使用一个特殊的频道和你联系。只有你能听见我说话。", Color.Yellow, 4);
                 * Stage.AddGameMessage(@"Alicia: 靠近它,不要犹豫。照我说的做,然后打败它。", Color.Yellow, 4);
                 * Stage.AddGameMessage(@"Alicia: 它的防御系统基本上已经被我破解,再过几秒就可以被普通武器损伤了。", Color.Yellow, 4);
                 */

                Stage.AddGameMessage(@"Alicia: Fool, you can't hurt him, no one can hurt hime at the moment.", Color.Yellow, 4);
                Stage.AddGameMessage(@"Zero: And you know how to, little girl?", Color.LightGreen, 3);
                Stage.AddGameMessage(@"Alicia: Call me Alicia, I am a hacker nearby.", Color.Yellow, 4);
                Stage.AddGameMessage(@"Alicia: He has the Relic in his cargo, the unstable energy are disrupting all communications.", Color.Yellow, 4);
                Stage.AddGameMessage(@"Alicia: But I am using a special channel and only you can hear me.", Color.Yellow, 4);
                Stage.AddGameMessage(@"Alicia: Approach him, don't hesitate.", Color.Yellow, 4);
                Stage.AddGameMessage(@"Alicia: His defense system are being hacked by me, just wait a few sec.", Color.Yellow, 4);
            }
            if (timer == bossStart)
            {
                boss.IsInvincible = false;
                boss.Stop();
                boss.IsAIControlling = true;
                ((RegularAI)boss.unitAI).settings.isShotAble = false;
                boss.unitAI.Target = Stage.Player;
                ((RegularAI)boss.unitAI).TargetChangeAble = false;
                //boss.CastSkill("末日之雷");
                ti1 = Stage.CreateTimer(12.5f);
                Stage.AddRealtimeGameMessage("Doom: The Doom has come!", Color.Red, 3);
                foreach (Unit u in Stage.AliveUnitsInUnitGroup(1))
                {
                    if (u != Stage.Player)
                    {
                        u.EndlessBullets = false;
                    }
                }

                battleBegin = true;
                phase1On    = true;
                Stage.AddRealtimeGameMessage(@"Alicia: He is aware of you, avoid his great cannon!", Color.Yellow, 4);
                railgun = Stage.CreateTimer(9);
            }
            if (timer == ti1 && boss.UnitState != UnitState.dead && phase3On)
            {
                Skill b = boss.SkillFromName("末日之雷");
                if (b.IsSkillUsable && boss.IsUsingSkill == false)
                {
                    boss.CastSkill(b);
                    Stage.AddRealtimeGameMessage("Doom: Thunder-of-Doom!", Color.Red, 2);
                }
            }
            if (timer == t3)
            {
                /*
                 * Stage.AddGameMessage(@"Rudolf the Commander: 这是怎么回事?", Color.CornflowerBlue, 2);
                 * Stage.AddGameMessage(@"Jeffsion the Warrior: 看来抢走你所运送的“遗迹”的那个大家伙想你了……", Color.CornflowerBlue, 3);
                 * Stage.AddGameMessage(@"Bill: 一艘战列舰,载有轨道炮,我们几乎不可能在它面前活过一分钟。", Color.CornflowerBlue, 4);
                 * Stage.AddGameMessage(@"Zero: 奇怪——它们好像在自相残杀?", Color.LightGreen, 2);
                 * Stage.AddGameMessage(@"Doom: 接受命令——毁灭一切——", Color.Red, 4);
                 * Stage.AddGameMessage(@"Rudolf the Commander: 不!我们没有希望了!", Color.CornflowerBlue, 3);
                 * Stage.AddGameMessage(@"……信号受到强烈干扰,无法通信……", Color.White, 4);
                 */

                Stage.AddGameMessage(@"Rudolf the Commander: That big guy... again!?", Color.CornflowerBlue, 2);
                Stage.AddGameMessage(@"Jeffsion the Warrior: I assume it missed you.", Color.CornflowerBlue, 3);
                Stage.AddGameMessage(@"Bill: A battleship with railgun. Well, can we stay alive for one minute?", Color.CornflowerBlue, 4);
                Stage.AddGameMessage(@"Zero: Strange, these drones are attacking each other?", Color.LightGreen, 2);
                Stage.AddGameMessage(@"Doom: Command received, Doom will destroy all.", Color.Red, 4);
                Stage.AddGameMessage(@"Rudolf the Commander: No! We have no hope!", Color.CornflowerBlue, 3);
                Stage.AddGameMessage(@"...Strong disruption detected, communications lost.", Color.White, 4);
            }
            base.Event_TimerRing(timer);
        }
Exemple #11
0
        /// <summary>
        /// 关卡判断
        /// </summary>
        public override void Touch()
        {
            if (b1 == false)
            {
                if (t1.IsEnd)
                {
                    Stage.PlayMusic(@"Audio\Antti_Martikainen_-_The_Chase", true, 5);
                    if (Variables.Unit[9] != null)
                    {
                        Variables.Unit[9].BeginToDie();
                    }
                    if (Variables.Unit[10] != null)
                    {
                        Variables.Unit[10].BeginToDie();
                    }
                    Variables.Switch[13] = true;
                    Stage.CreateNPCUnit(Stage.Content.Load <UnitType>(@"UnitTypes\ShadowSlain"), 2, Stage.Player.Position + new Vector3(0, -3000, -4200));
                    Stage.CreateNPCUnit(Stage.Content.Load <UnitType>(@"UnitTypes\FlameDestroyer"), 2, Stage.Player.Position + new Vector3(4000, 2000, 0));
                    Stage.CreateNPCUnit(Stage.Content.Load <UnitType>(@"UnitTypes\ShadowSlain"), 2, Stage.Player.Position + new Vector3(0, -3000, -4200));
                    Stage.CreateNPCUnit(Stage.Content.Load <UnitType>(@"UnitTypes\EyesElite"), 2, Stage.Player.Position + new Vector3(4000, 2000, 0));
                    Stage.ScreenEffectManager.Blink(Color.Black, 3);

                    t3 = Stage.CreateTimer(4);
                    Stage.CreateNPCUnit(Stage.Content.Load <UnitType>(@"UnitTypes\Doom"), 3, destination + new Vector3(4000, 0, 0));
                    boss = Variables.LastCreatedUnit;
                    boss.IsInvincible = true;
                    foreach (Unit u in Stage.AliveUnitsInUnitGroup(2))
                    {
                        u.unitAI.Target         = Variables.LastCreatedUnit;
                        u.EndlessBullets        = false;
                        u.CurrentWeapon.AmmoNum = 100;
                        ((RegularAI)u.unitAI).TargetChangeAble = false;
                    }
                    foreach (Unit u in Stage.AliveUnitsInUnitGroup(1))
                    {
                        if (u != Stage.Player)
                        {
                            u.unitAI.Target = Variables.LastCreatedUnit;
                        }
                    }
                    t2 = Stage.CreateTimer(32);

                    boss.IsAIControlling = false;
                    boss.MoveTo(destination);
                    b1 = true;
                }
            }
            if (boss != null)
            {
                if (boss.UnitState == UnitState.alive)
                {
                    if (battleBegin)
                    {
                        if (railgun.IsEnd)
                        {
                            Skill s = boss.SkillFromName("轨道炮");
                            if (s != null)
                            {
                                if (s.IsSkillUsable && boss.IsUsingSkill == false)
                                {
                                    boss.CastSkill(s);
                                    Stage.AddRealtimeGameMessage("Doom: Railgun, full recharge.", Color.Red, 2);
                                    if (phase3On)
                                    {
                                        ti1.Reset();
                                    }
                                }
                            }
                        }

                        Skill g = boss.SkillFromName("空间吸引");
                        if (g != null)
                        {
                            if (g.IsCooldowned && boss.IsUsingSkill == false)
                            {
                                foreach (Unit u in Stage.Units)
                                {
                                    if (Unit.Distance(boss, u) > 2300 && u.Group != boss.Group)
                                    {
                                        boss.CastSkill(g, u);
                                        Stage.AddRealtimeGameMessage("Doom: Face your doom!", Color.Red, 2);
                                        break;
                                    }
                                }
                            }
                        }
                    }
                    if (phase1On && battleBegin)
                    {
                        if (boss.Armor <= 12000)
                        {
                            bill.CurrentWeapon.AmmoNum += 2000;
                            Stage.PlayMusic(@"Audio\Kai_Engel_-_Beneath_The_Stronghold", true, 5);
                            boss.Shield       = 12000;
                            boss.IsInvincible = true;
                            ((RegularAI)boss.unitAI).settings.isMoveAble = false;
                            Stage.ClearMessages();

                            /*
                             * Stage.AddRealtimeGameMessage("Doom: 检测到目标对本系统构成威胁。", Color.Red, 3);
                             * Stage.AddRealtimeGameMessage("Doom: 释放防御力场产生器,防御模式启动中……", Color.Red, 3);
                             * Stage.AddRealtimeGameMessage(@"Alicia: 这些东西构成了一个坚固的护盾……", Color.Yellow, 3);
                             * Stage.AddRealtimeGameMessage(@"Alicia: 最简单的办法是击垮它们。", Color.Yellow, 3);
                             *
                             */

                            Stage.AddRealtimeGameMessage("Doom: Threat detected", Color.Red, 3);
                            Stage.AddRealtimeGameMessage("Doom: Releasing Invincible Field Generators", Color.Red, 3);
                            Stage.AddRealtimeGameMessage(@"Alicia: With them on we cannot damage the battleship!", Color.Yellow, 3);
                            Stage.AddRealtimeGameMessage(@"Alicia: Destroy the generators first!", Color.Yellow, 3);


                            phase1On = false;
                            phase2On = true;
                            Stage.CreateNPCUnit(Content.Load <UnitType>(@"UnitTypes\DoomShield"), 3, new Vector3(500, 0, 0) + boss.Position);
                            adds.Add(Variables.LastCreatedUnit);
                            Stage.CreateNPCUnit(Content.Load <UnitType>(@"UnitTypes\DoomShield"), 3, new Vector3(-500, 0, 0) + boss.Position);
                            adds.Add(Variables.LastCreatedUnit);
                            Stage.CreateNPCUnit(Content.Load <UnitType>(@"UnitTypes\DoomShield"), 3, new Vector3(0, 500, 0) + boss.Position);
                            adds.Add(Variables.LastCreatedUnit);
                            Stage.CreateNPCUnit(Content.Load <UnitType>(@"UnitTypes\DoomShield"), 3, new Vector3(0, -500, 0) + boss.Position);
                            adds.Add(Variables.LastCreatedUnit);
                            Stage.CreateNPCUnit(Content.Load <UnitType>(@"UnitTypes\DoomShield"), 3, new Vector3(0, 0, 500) + boss.Position);
                            adds.Add(Variables.LastCreatedUnit);
                            Stage.CreateNPCUnit(Content.Load <UnitType>(@"UnitTypes\DoomShield"), 3, new Vector3(0, 0, -500) + boss.Position);
                            adds.Add(Variables.LastCreatedUnit);
                        }
                    }
                    if (phase2On)
                    {
                        if (adds.Count == 0)
                        {
                            Stage.PlayMusic(@"Audio\Antti_Martikainen_-_Through_Enemy_Lines", true, 5);

                            /*
                             * Stage.AddRealtimeGameMessage("Doom: 防御力场被破坏,防御模式关闭,狂暴模式启动中……", Color.Red, 3);
                             * Stage.AddRealtimeGameMessage(@"Alicia: 那么,现在就火力全开吧。", Color.Yellow, 3);
                             */

                            Stage.AddRealtimeGameMessage("Doom: Invincible Field down, Defensive Mode offline, Berserk Mode online.", Color.Red, 3);
                            Stage.AddRealtimeGameMessage(@"Alicia: Now, burst you fire!", Color.Yellow, 3);

                            phase2On = false;
                            phase3On = true;
                            ((RegularAI)boss.unitAI).settings.isMoveAble = true;
                            boss.IsInvincible           = false;
                            boss.angularRate            = 20.0f;
                            bill.CurrentWeapon.AmmoNum += 1500;
                        }
                    }
                    if (phase3On)
                    {
                    }
                }
            }
            if (won)
            {
                if (Stage.IsMessageEnd)
                {
                    Stage.Victory("胜利!!");
                }
            }
        }
        public override void Event_TimerRing(Timer timer)
        {
            if (boss.Dead == false)
            {
                if (timer == t0)
                {
                    /*
                     * Stage.AddGameMessage(@"Chris: 欢迎来到灵魂的狂欢派对!", Color.Red, 4);
                     * Stage.AddGameMessage(@"Chris: 我看到了“遗迹”,看到神谕,你们拿着它,却手足无措。", Color.Red, 4);
                     * Stage.AddGameMessage(@"Chris: 为了防止那个阴谋破坏主神的秩序,教会将收回这个东西。", Color.Red, 4);
                     * Stage.AddGameMessage(@"Chris: 而“遗迹”的力量将会毁掉你。", Color.Red, 4);
                     *
                     */

                    Stage.AddGameMessage(@"Chris: Welcome to my soul party!", Color.Red, 4);
                    Stage.AddGameMessage(@"Chris: Only the Church knows how the Relic is valuable.", Color.Red, 4);
                    Stage.AddGameMessage(@"Chris: And we will collect it from your wreckage.", Color.Red, 4);
                    Stage.AddGameMessage(@"Chris: To protect you from... conspiracy...", Color.Red, 4);


                    Stage.GameWorld.ReleaseCamera();
                    Stage.Player.SetMoveState(new Vector3(0, 0, -200), Vector3.Zero);
                    Variables.Unit[2].SetMoveState(new Vector3(0, 0, -300), Vector3.Zero);
                    Stage.Player.MoveTo(new Vector3(0, 0, -28000));
                    Variables.Unit[2].MoveTo(new Vector3(35, 35, -28000));
                }
                if (timer == t1)
                {
                    Stage.PlayMusic(@"Audio\TitanSlayer_-_Dawning_of_Darkness", true, 2);
                    Stage.Player.isPlayerControlling        = true;
                    Stage.Variables.Unit[2].IsAIControlling = true;
                    Stage.GameWorld.MovieModelEnd();
                    Stage.Player.IsInvincible      = false;
                    Variables.Unit[2].IsInvincible = false;
                    boss.IsInvincible    = false;
                    boss.IsAIControlling = true;
                    u1.IsInvincible      = false;
                    u1.IsAIControlling   = true;

                    /*
                     * Stage.AddGameMessage(@"Chris: 让祭祀开始吧!", Color.Red, 3);
                     * Stage.AddGameMessage(@"Bill: 牵制住旁边的敌人!", Color.CornflowerBlue, 2);
                     * Stage.AddGameMessage(@"Zero: 该死!“遗迹”开始不稳定了!", Color.LightGreen, 3);
                     * Stage.AddGameMessage(@"Alicia: 这是一个陷阱!", Color.Yellow, 3);
                     * Stage.AddGameMessage(@"Alicia: 空间正在坍塌,克雷斯在尝试引发“遗迹”的共振!", Color.Yellow, 4);
                     * Stage.AddGameMessage(@"Alicia: 在你被压扁之前解决掉他!", Color.Yellow, 3);
                     *
                     */

                    Stage.AddGameMessage(@"Chris: Let it begin!", Color.Red, 3);
                    Stage.AddGameMessage(@"Bill: Watch out!", Color.CornflowerBlue, 2);
                    Stage.AddGameMessage(@"Zero: Damn, the Relic is unstable again!", Color.LightGreen, 3);
                    Stage.AddGameMessage(@"Alicia: It is a trap!", Color.Yellow, 3);
                    Stage.AddGameMessage(@"Alicia: Chris is triggering the resonance of the Relic.", Color.Yellow, 4);
                    Stage.AddGameMessage(@"Alicia: The space is going to collapse! Make it quick!", Color.Yellow, 3);


                    cs[0].BeginToDie();
                }
                if (timer == t2)
                {
                    u2.IsInvincible    = false;
                    u2.IsAIControlling = true;

                    /*
                     * Stage.AddRealtimeGameMessage(@"Chris: 火焰燃起来了。", Color.Red, 4);
                     * Stage.AddRealtimeGameMessage(@"Bill: 更多的教徒投入战斗了,小心应付!", Color.CornflowerBlue, 4);
                     *
                     */
                    Stage.AddRealtimeGameMessage(@"Chris: The fire burns.", Color.Red, 4);
                    Stage.AddRealtimeGameMessage(@"Bill: More of them!", Color.CornflowerBlue, 4);


                    cs[1].BeginToDie();
                }
                if (timer == t3)
                {
                    u3.IsInvincible    = false;
                    u3.IsAIControlling = true;

                    /*
                     * Stage.AddRealtimeGameMessage(@"Chris: 让它更加混乱吧!", Color.Red, 4);
                     * Stage.AddRealtimeGameMessage(@"Alicia: ……撑得住吗?", Color.Yellow, 4);
                     * Stage.AddRealtimeGameMessage(@"Alicia: 没有了教徒的保护,黑骑士越来越容易受到伤害。", Color.Yellow, 4);
                     *
                     */
                    Stage.AddRealtimeGameMessage(@"Chris: Chaos, more chaos!", Color.Red, 4);
                    Stage.AddRealtimeGameMessage(@"Alicia: ...can you?", Color.Yellow, 4);
                    Stage.AddRealtimeGameMessage("Alicia: Without the protection of his followers, the Dark would be\nmore vulnerable.", Color.Yellow, 4);

                    cs[2].BeginToDie();
                }
                if (timer == t4)
                {
                    u4.IsInvincible    = false;
                    u4.IsAIControlling = true;

                    /*
                     * Stage.AddRealtimeGameMessage(@"Chris: 混乱风暴!蒙克依,你是最后一个祭品!", Color.Red, 4);
                     * Stage.AddRealtimeGameMessage(@"Zero: 又一个,可恶!", Color.LightGreen, 3);
                     */

                    Stage.AddRealtimeGameMessage(@"Chris: Chaos Storm! Monkie, you are the last to go!", Color.Red, 4);
                    Stage.AddRealtimeGameMessage(@"Zero: Another!", Color.Yellow, 4);
                    cs[3].BeginToDie();
                }
                if (timer == t5)
                {
                    //Stage.AddRealtimeGameMessage(@"Chris: 那么我亲自来终结这风暴吧。", Color.Red, 4);
                    //Stage.AddRealtimeGameMessage(@"Alicia: 空间坍塌非常严重!", Color.Yellow, 4);

                    Stage.AddRealtimeGameMessage(@"Chris: I'll put an end to this, myself.", Color.Red, 4);
                    Stage.AddRealtimeGameMessage(@"Alicia: The space are deforming!", Color.Yellow, 4);


                    ((RegularAI)boss.unitAI).settings.isMoveAble = true;
                }
            }



            base.Event_TimerRing(timer);
        }