Esempio n. 1
0
 public static void AddFountain(FountainOfFortune fountain)
 {
     if (!m_Fountains.Contains(fountain))
     {
         m_Fountains.Add(fountain);
         StartTimer();
     }
 }
Esempio n. 2
0
        public static void RemoveFountain(FountainOfFortune fountain)
        {
            if (m_Fountains.Contains(fountain))
            {
                m_Fountains.Remove(fountain);
            }

            if (m_Fountains.Count == 0 && m_Timer != null)
            {
                m_Timer.Stop();
                m_Timer = null;
            }
        }
Esempio n. 3
0
        public bool IsCoolingDown(Mobile from)
        {
            for (var index = 0; index < m_Fountains.Count; index++)
            {
                FountainOfFortune fountain = m_Fountains[index];

                if (fountain.RewardCooldown != null && fountain.RewardCooldown.ContainsKey(from))
                {
                    return(true);
                }
            }

            return(false);
        }
Esempio n. 4
0
        public static void DefragTables()
        {
            for (var index = 0; index < m_Fountains.Count; index++)
            {
                FountainOfFortune fountain = m_Fountains[index];

                List <Mobile> list  = new List <Mobile>(fountain.ResCooldown.Keys);
                List <Mobile> list2 = new List <Mobile>(fountain.RewardCooldown.Keys);

                for (var i = 0; i < list.Count; i++)
                {
                    Mobile m = list[i];

                    if (fountain.ResCooldown.ContainsKey(m) && fountain.ResCooldown[m] < DateTime.UtcNow)
                    {
                        fountain.ResCooldown.Remove(m);
                    }
                }

                for (var i = 0; i < list2.Count; i++)
                {
                    Mobile m = list2[i];

                    if (fountain.RewardCooldown.ContainsKey(m) && fountain.RewardCooldown[m] < DateTime.UtcNow)
                    {
                        fountain.RewardCooldown.Remove(m);
                    }
                }

                list.Clear();
                list2.Clear();
            }

            List <Mobile> remove = new List <Mobile>();

            foreach (KeyValuePair <Mobile, DateTime> kvp in m_LuckTable)
            {
                if (kvp.Value < DateTime.UtcNow)
                {
                    remove.Add(kvp.Key);
                }
            }

            for (var index = 0; index < remove.Count; index++)
            {
                var m = remove[index];

                m_LuckTable.Remove(m);

                if (m.NetState != null)
                {
                    m.SendLocalizedMessage(1079552); //Your luck just ran out.
                }
            }

            remove.Clear();

            foreach (KeyValuePair <Mobile, DateTime> kvp in m_SpecialProtection)
            {
                if (kvp.Value < DateTime.UtcNow)
                {
                    remove.Add(kvp.Key);
                }
            }

            for (var index = 0; index < remove.Count; index++)
            {
                var m = remove[index];

                m_SpecialProtection.Remove(m);
            }

            remove.Clear();

            foreach (KeyValuePair <Mobile, DateTime> kvp in m_BalmBoost)
            {
                if (kvp.Value < DateTime.UtcNow)
                {
                    remove.Add(kvp.Key);
                }
            }

            for (var index = 0; index < remove.Count; index++)
            {
                var m = remove[index];

                m_BalmBoost.Remove(m);
            }

            remove.Clear();
        }
Esempio n. 5
0
        public static void Generate()
        {
            ExperimentalRoomController controller = new ExperimentalRoomController();

            controller.MoveToWorld(new Point3D(980, 1117, -42), Map.TerMur);

            //Room 0 to 1
            ExperimentalRoomDoor    door    = new ExperimentalRoomDoor(Room.RoomZero, DoorFacing.WestCCW);
            ExperimentalRoomBlocker blocker = new ExperimentalRoomBlocker(Room.RoomZero);

            door.Hue = 1109;
            door.MoveToWorld(new Point3D(984, 1116, -42), Map.TerMur);
            blocker.MoveToWorld(new Point3D(984, 1116, -42), Map.TerMur);

            door     = new ExperimentalRoomDoor(Room.RoomZero, DoorFacing.EastCW);
            blocker  = new ExperimentalRoomBlocker(Room.RoomZero);
            door.Hue = 1109;
            door.MoveToWorld(new Point3D(985, 1116, -42), Map.TerMur);
            blocker.MoveToWorld(new Point3D(985, 1116, -42), Map.TerMur);

            //Room 1 to 2
            door     = new ExperimentalRoomDoor(Room.RoomOne, DoorFacing.WestCCW);
            blocker  = new ExperimentalRoomBlocker(Room.RoomOne);
            door.Hue = 1109;
            door.MoveToWorld(new Point3D(984, 1102, -42), Map.TerMur);
            blocker.MoveToWorld(new Point3D(984, 1102, -42), Map.TerMur);

            door     = new ExperimentalRoomDoor(Room.RoomOne, DoorFacing.EastCW);
            blocker  = new ExperimentalRoomBlocker(Room.RoomOne);
            door.Hue = 1109;
            door.MoveToWorld(new Point3D(985, 1102, -42), Map.TerMur);
            blocker.MoveToWorld(new Point3D(985, 1102, -42), Map.TerMur);

            //Room 2 to 3
            door     = new ExperimentalRoomDoor(Room.RoomTwo, DoorFacing.WestCCW);
            blocker  = new ExperimentalRoomBlocker(Room.RoomTwo);
            door.Hue = 1109;
            door.MoveToWorld(new Point3D(984, 1090, -42), Map.TerMur);
            blocker.MoveToWorld(new Point3D(984, 1090, -42), Map.TerMur);

            door     = new ExperimentalRoomDoor(Room.RoomTwo, DoorFacing.EastCW);
            blocker  = new ExperimentalRoomBlocker(Room.RoomTwo);
            door.Hue = 1109;
            door.MoveToWorld(new Point3D(985, 1090, -42), Map.TerMur);
            blocker.MoveToWorld(new Point3D(985, 1090, -42), Map.TerMur);

            //Room 3 to 4
            door     = new ExperimentalRoomDoor(Room.RoomTwo, DoorFacing.WestCCW);
            blocker  = new ExperimentalRoomBlocker(Room.RoomThree);
            door.Hue = 1109;
            door.MoveToWorld(new Point3D(984, 1072, -42), Map.TerMur);
            blocker.MoveToWorld(new Point3D(984, 1072, -42), Map.TerMur);

            door     = new ExperimentalRoomDoor(Room.RoomTwo, DoorFacing.EastCW);
            blocker  = new ExperimentalRoomBlocker(Room.RoomThree);
            door.Hue = 1109;
            door.MoveToWorld(new Point3D(985, 1072, -42), Map.TerMur);
            blocker.MoveToWorld(new Point3D(985, 1072, -42), Map.TerMur);

            ExperimentalRoomChest chest = new ExperimentalRoomChest();

            chest.MoveToWorld(new Point3D(984, 1064, -37), Map.TerMur);

            ExperimentalBook instr = new ExperimentalBook();

            instr.Movable = false;
            instr.MoveToWorld(new Point3D(995, 1114, -36), Map.TerMur);

            SecretDungeonDoor dd = new SecretDungeonDoor(DoorFacing.NorthCCW);

            dd.ClosedID = 87;
            dd.OpenedID = 88;
            dd.MoveToWorld(new Point3D(1007, 1119, -42), Map.TerMur);

            LocalizedSign sign = new LocalizedSign(3026, 1113407);  // Experimental Room Access

            sign.Movable = false;
            sign.MoveToWorld(new Point3D(980, 1119, -37), Map.TerMur);

            //Puzze Room
            PuzzleBox box = new PuzzleBox(PuzzleType.WestBox);

            box.MoveToWorld(new Point3D(1090, 1171, 11), Map.TerMur);

            box = new PuzzleBox(PuzzleType.EastBox);
            box.MoveToWorld(new Point3D(1104, 1171, 11), Map.TerMur);

            box = new PuzzleBox(PuzzleType.NorthBox);
            box.MoveToWorld(new Point3D(1097, 1163, 11), Map.TerMur);

            XmlSpawner spawner = new XmlSpawner("MagicKey");

            spawner.MoveToWorld(new Point3D(1109, 1150, -12), Map.TerMur);
            spawner.SpawnRange = 0;
            spawner.MinDelay   = TimeSpan.FromSeconds(30);
            spawner.MaxDelay   = TimeSpan.FromSeconds(45);
            spawner.DoRespawn  = true;

            PuzzleBook book = new PuzzleBook();

            book.Movable = false;
            book.MoveToWorld(new Point3D(1109, 1153, -17), Map.TerMur);

            PuzzleRoomTeleporter tele = new PuzzleRoomTeleporter();

            tele.PointDest = new Point3D(1097, 1173, 1);
            tele.MapDest   = Map.TerMur;
            tele.MoveToWorld(new Point3D(1097, 1175, 0), Map.TerMur);

            tele           = new PuzzleRoomTeleporter();
            tele.PointDest = new Point3D(1098, 1173, 1);
            tele.MapDest   = Map.TerMur;
            tele.MoveToWorld(new Point3D(1098, 1175, 0), Map.TerMur);

            MetalDoor2 door2 = new MetalDoor2(DoorFacing.WestCCW);

            door2.Locked   = true;
            door2.KeyValue = 50000;
            door2.MoveToWorld(new Point3D(1097, 1174, 1), Map.TerMur);

            door2          = new MetalDoor2(DoorFacing.EastCW);
            door2.Locked   = true;
            door2.KeyValue = 50000;
            door2.MoveToWorld(new Point3D(1098, 1174, 1), Map.TerMur);

            Teleporter telep = new Teleporter();

            telep.PointDest = new Point3D(1097, 1175, 0);
            telep.MapDest   = Map.TerMur;
            telep.MoveToWorld(new Point3D(1097, 1173, 1), Map.TerMur);

            telep           = new Teleporter();
            telep.PointDest = new Point3D(1098, 1175, 0);
            telep.MapDest   = Map.TerMur;
            telep.MoveToWorld(new Point3D(1098, 1173, 1), Map.TerMur);

            telep           = new Teleporter();
            telep.PointDest = new Point3D(996, 1117, -42);
            telep.MapDest   = Map.TerMur;
            telep.MoveToWorld(new Point3D(980, 1064, -42), Map.TerMur);

            Static sparkle = new Static(14138);

            sparkle.MoveToWorld(new Point3D(980, 1064, -42), Map.TerMur);

            //Maze of Death
            UnderworldPuzzleBox pBox = new UnderworldPuzzleBox();

            pBox.MoveToWorld(new Point3D(1068, 1026, -37), Map.TerMur);

            GoldenCompass compass = new GoldenCompass();

            compass.MoveToWorld(new Point3D(1070, 1055, -34), Map.TerMur);

            Item map = new RolledMapOfTheUnderworld();

            map.MoveToWorld(new Point3D(1072, 1055, -36), Map.TerMur);
            map.Movable = false;

            FountainOfFortune f = new FountainOfFortune();

            f.MoveToWorld(new Point3D(1121, 957, -42), Map.TerMur);

            Item tile = new InvisibleTile();

            tile.MoveToWorld(new Point3D(1121, 965, -41), Map.TerMur);

            tile = new InvisibleTile();
            tile.MoveToWorld(new Point3D(1122, 965, -40), Map.TerMur);

            tile = new InvisibleTile();
            tile.MoveToWorld(new Point3D(1123, 965, -41), Map.TerMur);

            tile = new InvisibleTile();
            tile.MoveToWorld(new Point3D(1124, 965, -41), Map.TerMur);

            tile = new InvisibleTile();
            tile.MoveToWorld(new Point3D(1122, 964, -41), Map.TerMur);

            tile = new InvisibleTile();
            tile.MoveToWorld(new Point3D(1123, 964, -41), Map.TerMur);

            tile = new InvisibleTile();
            tile.MoveToWorld(new Point3D(1123, 963, -40), Map.TerMur);

            tile = new InvisibleTile();
            tile.MoveToWorld(new Point3D(1123, 962, -40), Map.TerMur);

            tile = new InvisibleTile();
            tile.MoveToWorld(new Point3D(1123, 961, -41), Map.TerMur);

            tile = new InvisibleTile();
            tile.MoveToWorld(new Point3D(1122, 961, -41), Map.TerMur);

            tile = new InvisibleTile();
            tile.MoveToWorld(new Point3D(1122, 960, -41), Map.TerMur);

            tile = new InvisibleTile();
            tile.MoveToWorld(new Point3D(1121, 960, -41), Map.TerMur);

            tile = new InvisibleTile();
            tile.MoveToWorld(new Point3D(1121, 959, -41), Map.TerMur);

            Console.WriteLine("Experimental Room, Puzzle Room and Maze of Death initialized.");
        }
Esempio n. 6
0
        public static void Generate()
        {
            ExperimentalRoomController controller = new ExperimentalRoomController();
            controller.MoveToWorld(new Point3D(980, 1117, -42), Map.TerMur);

            //Room 0 to 1
            ExperimentalRoomDoor door = new ExperimentalRoomDoor(Room.RoomZero, DoorFacing.WestCCW);
            ExperimentalRoomBlocker blocker = new ExperimentalRoomBlocker(Room.RoomZero);
            door.Hue = 1109;
            door.MoveToWorld(new Point3D(984, 1116, -42), Map.TerMur);
            blocker.MoveToWorld(new Point3D(984, 1116, -42), Map.TerMur);

            door = new ExperimentalRoomDoor(Room.RoomZero, DoorFacing.EastCW);
            blocker = new ExperimentalRoomBlocker(Room.RoomZero);
            door.Hue = 1109;
            door.MoveToWorld(new Point3D(985, 1116, -42), Map.TerMur);
            blocker.MoveToWorld(new Point3D(985, 1116, -42), Map.TerMur);

            //Room 1 to 2
            door = new ExperimentalRoomDoor(Room.RoomOne, DoorFacing.WestCCW);
            blocker = new ExperimentalRoomBlocker(Room.RoomOne);
            door.Hue = 1109;
            door.MoveToWorld(new Point3D(984, 1102, -42), Map.TerMur);
            blocker.MoveToWorld(new Point3D(984, 1102, -42), Map.TerMur);

            door = new ExperimentalRoomDoor(Room.RoomOne, DoorFacing.EastCW);
            blocker = new ExperimentalRoomBlocker(Room.RoomOne);
            door.Hue = 1109;
            door.MoveToWorld(new Point3D(985, 1102, -42), Map.TerMur);
            blocker.MoveToWorld(new Point3D(985, 1102, -42), Map.TerMur);

            //Room 2 to 3
            door = new ExperimentalRoomDoor(Room.RoomTwo, DoorFacing.WestCCW);
            blocker = new ExperimentalRoomBlocker(Room.RoomTwo);
            door.Hue = 1109;
            door.MoveToWorld(new Point3D(984, 1090, -42), Map.TerMur);
            blocker.MoveToWorld(new Point3D(984, 1090, -42), Map.TerMur);

            door = new ExperimentalRoomDoor(Room.RoomTwo, DoorFacing.EastCW);
            blocker = new ExperimentalRoomBlocker(Room.RoomTwo);
            door.Hue = 1109;
            door.MoveToWorld(new Point3D(985, 1090, -42), Map.TerMur);
            blocker.MoveToWorld(new Point3D(985, 1090, -42), Map.TerMur);

            //Room 3 to 4
            door = new ExperimentalRoomDoor(Room.RoomTwo, DoorFacing.WestCCW);
            blocker = new ExperimentalRoomBlocker(Room.RoomThree);
            door.Hue = 1109;
            door.MoveToWorld(new Point3D(984, 1072, -42), Map.TerMur);
            blocker.MoveToWorld(new Point3D(984, 1072, -42), Map.TerMur);

            door = new ExperimentalRoomDoor(Room.RoomTwo, DoorFacing.EastCW);
            blocker = new ExperimentalRoomBlocker(Room.RoomThree);
            door.Hue = 1109;
            door.MoveToWorld(new Point3D(985, 1072, -42), Map.TerMur);
            blocker.MoveToWorld(new Point3D(985, 1072, -42), Map.TerMur);

            ExperimentalRoomChest chest = new ExperimentalRoomChest();
            chest.MoveToWorld(new Point3D(984, 1064, -37), Map.TerMur);

            ExperimentalBook instr = new ExperimentalBook();
            instr.Movable = false;
            instr.MoveToWorld(new Point3D(995, 1114, -36), Map.TerMur);

            SecretDungeonDoor dd = new SecretDungeonDoor(DoorFacing.NorthCCW);
            dd.ClosedID = 87;
            dd.OpenedID = 88;
            dd.MoveToWorld(new Point3D(1007, 1119, -42), Map.TerMur);

            LocalizedSign sign = new LocalizedSign(3026, 1113407);  // Experimental Room Access
            sign.Movable = false;
            sign.MoveToWorld(new Point3D(980, 1119, -37), Map.TerMur);

            //Puzze Room
            PuzzleBox box = new PuzzleBox(PuzzleType.WestBox);
            box.MoveToWorld(new Point3D(1090, 1171, 11), Map.TerMur);

            box = new PuzzleBox(PuzzleType.EastBox);
            box.MoveToWorld(new Point3D(1104, 1171, 11), Map.TerMur);

            box = new PuzzleBox(PuzzleType.NorthBox);
            box.MoveToWorld(new Point3D(1097, 1163, 11), Map.TerMur);

            XmlSpawner spawner = new XmlSpawner("MagicKey");
            spawner.MoveToWorld(new Point3D(1109, 1150, -12), Map.TerMur);
            spawner.SpawnRange = 0;
            spawner.MinDelay = TimeSpan.FromSeconds(30);
            spawner.MaxDelay = TimeSpan.FromSeconds(45);
            spawner.DoRespawn = true;

            PuzzleBook book = new PuzzleBook();
            book.Movable = false;
            book.MoveToWorld(new Point3D(1109, 1153, -17), Map.TerMur);

            PuzzleRoomTeleporter tele = new PuzzleRoomTeleporter();
            tele.PointDest = new Point3D(1097, 1173, 1);
            tele.MapDest = Map.TerMur;
            tele.MoveToWorld(new Point3D(1097, 1175, 0), Map.TerMur);

            tele = new PuzzleRoomTeleporter();
            tele.PointDest = new Point3D(1098, 1173, 1);
            tele.MapDest = Map.TerMur;
            tele.MoveToWorld(new Point3D(1098, 1175, 0), Map.TerMur);

            MetalDoor2 door2 = new MetalDoor2(DoorFacing.WestCCW);
            door2.Locked = true;
            door2.KeyValue = 50000;
            door2.MoveToWorld(new Point3D(1097, 1174, 1), Map.TerMur);

            door2 = new MetalDoor2(DoorFacing.EastCW);
            door2.Locked = true;
            door2.KeyValue = 50000;
            door2.MoveToWorld(new Point3D(1098, 1174, 1), Map.TerMur);

            Teleporter telep = new Teleporter();
            telep.PointDest = new Point3D(1097, 1175, 0);
            telep.MapDest = Map.TerMur;
            telep.MoveToWorld(new Point3D(1097, 1173, 1), Map.TerMur);

            telep = new Teleporter();
            telep.PointDest = new Point3D(1098, 1175, 0);
            telep.MapDest = Map.TerMur;
            telep.MoveToWorld(new Point3D(1098, 1173, 1), Map.TerMur);

            telep = new Teleporter();
            telep.PointDest = new Point3D(996, 1117, -42);
            telep.MapDest = Map.TerMur;
            telep.MoveToWorld(new Point3D(980, 1064, -42), Map.TerMur);

            Static sparkle = new Static(14138);
            sparkle.MoveToWorld(new Point3D(980, 1064, -42), Map.TerMur);

            //Maze of Death
            UnderworldPuzzleBox pBox = new UnderworldPuzzleBox();
            pBox.MoveToWorld(new Point3D(1068, 1026, -37), Map.TerMur);

            GoldenCompass compass = new GoldenCompass();
            compass.MoveToWorld(new Point3D(1070, 1055, -34), Map.TerMur);

            Item map = new RolledMapOfTheUnderworld();
            map.MoveToWorld(new Point3D(1072, 1055, -36), Map.TerMur);
            map.Movable = false;

            FountainOfFortune f = new FountainOfFortune();
            f.MoveToWorld(new Point3D(1121, 962, -42), Map.TerMur);

            Console.WriteLine("Experimental Room, Puzzle Room and Maze of Death initialized.");
        }
Esempio n. 7
0
        public static void RemoveFountain(FountainOfFortune fountain)
        {
            if (m_Fountains.Contains(fountain))
                m_Fountains.Remove(fountain);

            if (m_Fountains.Count == 0 && m_Timer != null)
            {
                m_Timer.Stop();
                m_Timer = null;
            }
        }
Esempio n. 8
0
 public static void AddFountain(FountainOfFortune fountain)
 {
     if (!m_Fountains.Contains(fountain))
     {
         m_Fountains.Add(fountain);
         StartTimer();
     }
 }
Esempio n. 9
0
        public static void Generate()
        {
            ExperimentalRoomController controller = new ExperimentalRoomController();

            controller.MoveToWorld(new Point3D(980, 1117, -42), Map.TerMur);

            //Room 0 to 1
            ExperimentalRoomDoor    door    = new ExperimentalRoomDoor(Room.RoomZero, DoorFacing.WestCCW);
            ExperimentalRoomBlocker blocker = new ExperimentalRoomBlocker(Room.RoomZero);

            door.Hue = 1109;
            door.MoveToWorld(new Point3D(984, 1116, -42), Map.TerMur);
            blocker.MoveToWorld(new Point3D(984, 1116, -42), Map.TerMur);
            WeakEntityCollection.Add("sa", door);
            WeakEntityCollection.Add("sa", blocker);

            door     = new ExperimentalRoomDoor(Room.RoomZero, DoorFacing.EastCW);
            blocker  = new ExperimentalRoomBlocker(Room.RoomZero);
            door.Hue = 1109;
            door.MoveToWorld(new Point3D(985, 1116, -42), Map.TerMur);
            blocker.MoveToWorld(new Point3D(985, 1116, -42), Map.TerMur);
            WeakEntityCollection.Add("sa", door);
            WeakEntityCollection.Add("sa", blocker);

            //Room 1 to 2
            door     = new ExperimentalRoomDoor(Room.RoomOne, DoorFacing.WestCCW);
            blocker  = new ExperimentalRoomBlocker(Room.RoomOne);
            door.Hue = 1109;
            door.MoveToWorld(new Point3D(984, 1102, -42), Map.TerMur);
            blocker.MoveToWorld(new Point3D(984, 1102, -42), Map.TerMur);
            WeakEntityCollection.Add("sa", door);
            WeakEntityCollection.Add("sa", blocker);

            door     = new ExperimentalRoomDoor(Room.RoomOne, DoorFacing.EastCW);
            blocker  = new ExperimentalRoomBlocker(Room.RoomOne);
            door.Hue = 1109;
            door.MoveToWorld(new Point3D(985, 1102, -42), Map.TerMur);
            blocker.MoveToWorld(new Point3D(985, 1102, -42), Map.TerMur);
            WeakEntityCollection.Add("sa", door);
            WeakEntityCollection.Add("sa", blocker);

            //Room 2 to 3
            door     = new ExperimentalRoomDoor(Room.RoomTwo, DoorFacing.WestCCW);
            blocker  = new ExperimentalRoomBlocker(Room.RoomTwo);
            door.Hue = 1109;
            door.MoveToWorld(new Point3D(984, 1090, -42), Map.TerMur);
            blocker.MoveToWorld(new Point3D(984, 1090, -42), Map.TerMur);
            WeakEntityCollection.Add("sa", door);
            WeakEntityCollection.Add("sa", blocker);

            door     = new ExperimentalRoomDoor(Room.RoomTwo, DoorFacing.EastCW);
            blocker  = new ExperimentalRoomBlocker(Room.RoomTwo);
            door.Hue = 1109;
            door.MoveToWorld(new Point3D(985, 1090, -42), Map.TerMur);
            blocker.MoveToWorld(new Point3D(985, 1090, -42), Map.TerMur);
            WeakEntityCollection.Add("sa", door);
            WeakEntityCollection.Add("sa", blocker);

            //Room 3 to 4
            door     = new ExperimentalRoomDoor(Room.RoomTwo, DoorFacing.WestCCW);
            blocker  = new ExperimentalRoomBlocker(Room.RoomThree);
            door.Hue = 1109;
            door.MoveToWorld(new Point3D(984, 1072, -42), Map.TerMur);
            blocker.MoveToWorld(new Point3D(984, 1072, -42), Map.TerMur);
            WeakEntityCollection.Add("sa", door);
            WeakEntityCollection.Add("sa", blocker);

            door     = new ExperimentalRoomDoor(Room.RoomTwo, DoorFacing.EastCW);
            blocker  = new ExperimentalRoomBlocker(Room.RoomThree);
            door.Hue = 1109;
            door.MoveToWorld(new Point3D(985, 1072, -42), Map.TerMur);
            blocker.MoveToWorld(new Point3D(985, 1072, -42), Map.TerMur);
            WeakEntityCollection.Add("sa", door);
            WeakEntityCollection.Add("sa", blocker);

            ExperimentalRoomChest chest = new ExperimentalRoomChest();

            chest.MoveToWorld(new Point3D(984, 1064, -37), Map.TerMur);
            WeakEntityCollection.Add("sa", chest);

            ExperimentalBook instr = new ExperimentalBook
            {
                Movable = false
            };

            instr.MoveToWorld(new Point3D(995, 1114, -36), Map.TerMur);
            WeakEntityCollection.Add("sa", instr);

            SecretDungeonDoor dd = new SecretDungeonDoor(DoorFacing.NorthCCW)
            {
                ClosedID = 87,
                OpenedID = 88
            };

            dd.MoveToWorld(new Point3D(1007, 1119, -42), Map.TerMur);
            WeakEntityCollection.Add("sa", dd);

            LocalizedSign sign = new LocalizedSign(3026, 1113407)
            {
                Movable = false
            };  // Experimental Room Access

            sign.MoveToWorld(new Point3D(980, 1119, -37), Map.TerMur);
            WeakEntityCollection.Add("sa", sign);

            //Puzze Room
            PuzzleBox box = new PuzzleBox(PuzzleType.WestBox);

            box.MoveToWorld(new Point3D(1090, 1171, 11), Map.TerMur);
            WeakEntityCollection.Add("sa", box);

            box = new PuzzleBox(PuzzleType.EastBox);
            box.MoveToWorld(new Point3D(1104, 1171, 11), Map.TerMur);
            WeakEntityCollection.Add("sa", box);

            box = new PuzzleBox(PuzzleType.NorthBox);
            box.MoveToWorld(new Point3D(1097, 1163, 11), Map.TerMur);
            WeakEntityCollection.Add("sa", box);

            PuzzleBook book = new PuzzleBook
            {
                Movable = false
            };

            book.MoveToWorld(new Point3D(1109, 1153, -17), Map.TerMur);
            WeakEntityCollection.Add("sa", book);

            PuzzleRoomTeleporter tele = new PuzzleRoomTeleporter
            {
                PointDest = new Point3D(1097, 1173, 1),
                MapDest   = Map.TerMur
            };

            tele.MoveToWorld(new Point3D(1097, 1175, 0), Map.TerMur);
            WeakEntityCollection.Add("sa", tele);

            tele = new PuzzleRoomTeleporter
            {
                PointDest = new Point3D(1098, 1173, 1),
                MapDest   = Map.TerMur
            };
            tele.MoveToWorld(new Point3D(1098, 1175, 0), Map.TerMur);
            WeakEntityCollection.Add("sa", tele);

            MetalDoor2 door2 = new MetalDoor2(DoorFacing.WestCCW)
            {
                Locked   = true,
                KeyValue = 50000
            };

            door2.MoveToWorld(new Point3D(1097, 1174, 1), Map.TerMur);
            WeakEntityCollection.Add("sa", door2);

            door2 = new MetalDoor2(DoorFacing.EastCW)
            {
                Locked   = true,
                KeyValue = 50000
            };
            door2.MoveToWorld(new Point3D(1098, 1174, 1), Map.TerMur);
            WeakEntityCollection.Add("sa", door);

            Teleporter telep = new Teleporter
            {
                PointDest = new Point3D(1097, 1175, 0),
                MapDest   = Map.TerMur
            };

            telep.MoveToWorld(new Point3D(1097, 1173, 1), Map.TerMur);
            WeakEntityCollection.Add("sa", telep);

            telep = new Teleporter
            {
                PointDest = new Point3D(1098, 1175, 0),
                MapDest   = Map.TerMur
            };
            telep.MoveToWorld(new Point3D(1098, 1173, 1), Map.TerMur);
            WeakEntityCollection.Add("sa", telep);

            telep = new Teleporter
            {
                PointDest = new Point3D(996, 1117, -42),
                MapDest   = Map.TerMur
            };
            telep.MoveToWorld(new Point3D(980, 1064, -42), Map.TerMur);
            WeakEntityCollection.Add("sa", telep);

            Static sparkle = new Static(14138);

            sparkle.MoveToWorld(new Point3D(980, 1064, -42), Map.TerMur);
            WeakEntityCollection.Add("sa", sparkle);

            //Maze of Death
            UnderworldPuzzleBox pBox = new UnderworldPuzzleBox();

            pBox.MoveToWorld(new Point3D(1068, 1026, -37), Map.TerMur);
            WeakEntityCollection.Add("sa", pBox);

            GoldenCompass compass = new GoldenCompass();

            compass.MoveToWorld(new Point3D(1070, 1055, -34), Map.TerMur);
            WeakEntityCollection.Add("sa", compass);

            Item map = new RolledMapOfTheUnderworld();

            map.MoveToWorld(new Point3D(1072, 1055, -36), Map.TerMur);
            map.Movable = false;
            WeakEntityCollection.Add("sa", map);

            FountainOfFortune f = new FountainOfFortune();

            f.MoveToWorld(new Point3D(1121, 957, -42), Map.TerMur);
            WeakEntityCollection.Add("sa", f);

            Item tile = new InvisibleTile();

            tile.MoveToWorld(new Point3D(1121, 965, -41), Map.TerMur);
            WeakEntityCollection.Add("sa", tile);

            tile = new InvisibleTile();
            tile.MoveToWorld(new Point3D(1122, 965, -40), Map.TerMur);
            WeakEntityCollection.Add("sa", tile);

            tile = new InvisibleTile();
            tile.MoveToWorld(new Point3D(1123, 965, -41), Map.TerMur);
            WeakEntityCollection.Add("sa", tile);

            tile = new InvisibleTile();
            tile.MoveToWorld(new Point3D(1124, 965, -41), Map.TerMur);
            WeakEntityCollection.Add("sa", tile);

            tile = new InvisibleTile();
            tile.MoveToWorld(new Point3D(1122, 964, -41), Map.TerMur);
            WeakEntityCollection.Add("sa", tile);

            tile = new InvisibleTile();
            tile.MoveToWorld(new Point3D(1123, 964, -41), Map.TerMur);
            WeakEntityCollection.Add("sa", tile);

            tile = new InvisibleTile();
            tile.MoveToWorld(new Point3D(1123, 963, -40), Map.TerMur);
            WeakEntityCollection.Add("sa", tile);

            tile = new InvisibleTile();
            tile.MoveToWorld(new Point3D(1123, 962, -40), Map.TerMur);
            WeakEntityCollection.Add("sa", tile);

            tile = new InvisibleTile();
            tile.MoveToWorld(new Point3D(1123, 961, -41), Map.TerMur);
            WeakEntityCollection.Add("sa", tile);

            tile = new InvisibleTile();
            tile.MoveToWorld(new Point3D(1122, 961, -41), Map.TerMur);
            WeakEntityCollection.Add("sa", tile);

            tile = new InvisibleTile();
            tile.MoveToWorld(new Point3D(1122, 960, -41), Map.TerMur);
            WeakEntityCollection.Add("sa", tile);

            tile = new InvisibleTile();
            tile.MoveToWorld(new Point3D(1121, 960, -41), Map.TerMur);
            WeakEntityCollection.Add("sa", tile);

            tile = new InvisibleTile();
            tile.MoveToWorld(new Point3D(1121, 959, -41), Map.TerMur);
            WeakEntityCollection.Add("sa", tile);

            GenerateRevealTiles();
            CheckCannoneers();

            Console.WriteLine("Experimental Room, Puzzle Room and Maze of Death initialized.");
        }