Exemplo n.º 1
0
		// Create the appropriate item class - Defaults to a Static Item
		private Item CreateItem(int ItemID)
		{
			Item item = null;

			switch(ItemID)
			{
					// Don't import nodraw, node crystals, odd items, etc. 
					// Add any unwanted items here. 
					// TODO: Boat parts: planks, tillerman, etc. 
				case 0x0001: 
				case 0x1F19: 
				case 0x0FB7: 
					break; 
					/* 
					* Put all usable items here, for example, forges, anvils, 
					* training dummies, lights, containers, messageboards, etc. 
					* We'll need to wait until some of them are scripted. 
					* 
					* The following are some examples, I intend to finish things 
					* up as quickly as I can. 
					*/ 
				case 0x0FB1:  //forge 
					item = new SmallForgeAddon();
					break; 
				case 0x0FAF:  //anvil east 
					item = new AnvilEastAddon(); 
					break; 
				case 0x0FB0:  //anvil south 
					item = new AnvilSouthAddon(); 
					break; 

					// TODO: Gates 
                   
					/* 
					* Now create all of the doors according to graphic. 
					* NOTE: Some doors seem to open the wrong way, but 
					*       there's no way to determine correct CCW/CW 
					*       from the POL file. 
					*/ 

					// Metal Doors 2 
				case 0x0675: 
					item = new MetalDoor2( DoorFacing.WestCW ); 
					break; 
				case 0x0677: 
					item = new MetalDoor2( DoorFacing.EastCCW ); 
					break; 
				case 0x067D: 
					item = new MetalDoor2( DoorFacing.SouthCW ); 
					break; 
				case 0x067F: 
					item = new MetalDoor2( DoorFacing.NorthCCW ); 
					break; 
    
					// Barred Metal Doors 
				case 0x0685: 
					item = new BarredMetalDoor( DoorFacing.WestCW ); 
					break; 
				case 0x0687: 
					item = new BarredMetalDoor( DoorFacing.EastCCW ); 
					break; 
				case 0x068D: 
					item = new BarredMetalDoor( DoorFacing.SouthCW ); 
					break; 
				case 0x068F: 
					item = new BarredMetalDoor( DoorFacing.NorthCCW ); 
					break; 
    
					// Rattan Doors 
				case 0x0695: 
					item = new RattanDoor( DoorFacing.WestCW ); 
					break; 
				case 0x0697: 
					item = new RattanDoor( DoorFacing.EastCCW ); 
					break; 
				case 0x069D: 
					item = new RattanDoor( DoorFacing.SouthCW ); 
					break; 
				case 0x069F: 
					item = new RattanDoor( DoorFacing.NorthCCW ); 
					break; 
                
					// Dark Wood Doors 
				case 0x06A5: 
					item = new DarkWoodDoor( DoorFacing.WestCW ); 
					break; 
				case 0x06A7: 
					item = new DarkWoodDoor( DoorFacing.EastCCW ); 
					break; 
				case 0x06AD: 
					item = new DarkWoodDoor( DoorFacing.SouthCW ); 
					break; 
				case 0x06AF: 
					item = new DarkWoodDoor( DoorFacing.NorthCCW ); 
					break; 
                   
					// Medium Wood Doors 
				case 0x06B5: 
					item = new MediumWoodDoor( DoorFacing.WestCW ); 
					break; 
				case 0x06B7: 
					item = new MediumWoodDoor( DoorFacing.EastCCW ); 
					break; 
				case 0x06BD: 
					item = new MediumWoodDoor( DoorFacing.SouthCW ); 
					break; 
				case 0x06BF: 
					item = new MediumWoodDoor( DoorFacing.NorthCCW ); 
					break; 
    
					// Metal Doors 
				case 0x06C5: 
					item = new MetalDoor( DoorFacing.WestCW ); 
					break; 
				case 0x06C7: 
					item = new MetalDoor( DoorFacing.EastCCW ); 
					break; 
				case 0x06CD: 
					item = new MetalDoor( DoorFacing.SouthCW ); 
					break; 
				case 0x06CF: 
					item = new MetalDoor( DoorFacing.NorthCCW ); 
					break; 
    
					// Light Wood Doors 
				case 0x06D5: 
					item = new LightWoodDoor( DoorFacing.WestCW ); 
					break; 
				case 0x06D7: 
					item = new LightWoodDoor( DoorFacing.EastCCW ); 
					break; 
				case 0x06DD: 
					item = new LightWoodDoor( DoorFacing.SouthCW ); 
					break; 
				case 0x06DF: 
					item = new LightWoodDoor( DoorFacing.NorthCCW ); 
					break; 
    
					// Strong Wood Doors 
				case 0x06E5: 
					item = new StrongWoodDoor( DoorFacing.WestCW ); 
					break; 
				case 0x06E7: 
					item = new StrongWoodDoor( DoorFacing.EastCCW ); 
					break; 
				case 0x06ED: 
					item = new StrongWoodDoor( DoorFacing.SouthCW ); 
					break; 
				case 0x06EF: 
					item = new StrongWoodDoor( DoorFacing.NorthCCW ); 
					break; 
    
				default: 
					item = new Static(ItemID);
					item.Movable = false; 
					break; 

			}

			return item;
		}
Exemplo n.º 2
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.");
        }
Exemplo n.º 3
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.");
        }
Exemplo n.º 4
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.");
        }