public void Stage2()
        {
            COMInvasionMage randomMage = m_Mages[Utility.Random(m_Mages.Count)].Item1;

            randomMage.Say("We must leave immediately!");

            Timer.DelayCall(TimeSpan.FromSeconds(1.0), new TimerCallback(Stage3));
        }
        public void Stage1()
        {
            COMInvasionMage randomMage = m_Mages[Utility.Random(m_Mages.Count)].Item1;

            randomMage.Say("We cannot keep the portal open much longer!");

            Timer.DelayCall(TimeSpan.FromSeconds(4.0), new TimerCallback(Stage2));
        }
        public void Stage3()
        {
            //Gate out the Mages
            foreach (Tuple <COMInvasionMage, Point3D> tuple in m_Mages)
            {
                COMInvasionMage mage     = tuple.Item1;
                GateHide        hideball = new GateHide();
                hideball.AccessLevel = AccessLevel.Player;

                mage.PlaceInBackpack(hideball);
                mage.Use(hideball);
                Timer.DelayCall(TimeSpan.FromSeconds(10.0), new TimerCallback(mage.Delete));
            }

            m_Mages.Clear();

            Timer.DelayCall(TimeSpan.FromSeconds(4.0), new TimerCallback(Stage4));
        }