package com.droidquest.levels; import java.awt.Color; import com.droidquest.Room; import com.droidquest.RoomDisplay; import com.droidquest.avatars.HelpCam; import com.droidquest.avatars.LabCursor; import com.droidquest.avatars.PaintBrush; import com.droidquest.avatars.Remote; import com.droidquest.avatars.SolderingPen; import com.droidquest.chipstuff.Port; import com.droidquest.decorations.Arrow; import com.droidquest.devices.ContactSensor; import com.droidquest.devices.DirectionalSensor; import com.droidquest.devices.PortDevice; import com.droidquest.devices.PrototypeChip; import com.droidquest.devices.RoomSensor; import com.droidquest.devices.SmallChip; import com.droidquest.items.AutoWire; import com.droidquest.items.BlueRobot; import com.droidquest.items.Burner; import com.droidquest.items.Crystal; import com.droidquest.items.Factory; import com.droidquest.items.Hexagon; import com.droidquest.items.Key; import com.droidquest.items.MazeControl; import com.droidquest.items.MazeCreator; import com.droidquest.items.MazeLock; import com.droidquest.items.OrangeRobot; import com.droidquest.items.PC16Button; import com.droidquest.items.PC32Button; import com.droidquest.items.PCButton; import com.droidquest.items.SpeedControl; import com.droidquest.items.Square; import com.droidquest.items.ToolBox; import com.droidquest.items.Triangle; import com.droidquest.items.UnBurner; import com.droidquest.items.WhiteRobot; import com.droidquest.items.WireTester; import com.droidquest.materials.ChipTester; import com.droidquest.materials.ChipTrash; import com.droidquest.materials.CrystalRecharger; import com.droidquest.materials.Lock; import com.droidquest.materials.Material; import com.droidquest.materials.PrototypeBurner; import com.droidquest.materials.ShapeEditor; import com.droidquest.materials.SmallChipBurner; class ROLab extends Level { public ROLab(RoomDisplay rd) { super(rd); // Material 0, Blank materials.addElement(new Material(true, false)); // Material 1, LightBlue Wall materials.addElement(new Material(new Color(192,192,255),false, true)); // Material 2, LightOrange Wall materials.addElement(new Material(new Color(255,224,192),false, true)); // Material 3, Red Wall materials.addElement(new Material(new Color(255,0,0),false, true)); // Material 4, Green Wall materials.addElement(new Material(new Color(0,255,0),false, false)); // Material 5, CrystalRecharger materials.addElement(new CrystalRecharger()); // Material 6, Crystal Shape Editor materials.addElement(new ShapeEditor(new Crystal(0,0,null,0))); // Material 7, Hexagon Shape Editor materials.addElement(new ShapeEditor(new Hexagon(0,0,null,Color.blue))); // Material 8, Square Shape Editor materials.addElement(new ShapeEditor(new Square(0,0,null,Color.white))); // Material 9, Triangle Shape Editor materials.addElement(new ShapeEditor(new Triangle(0,0,null,new Color(255,128,0)))); // Material 10, PrototypeBurner materials.addElement(new PrototypeBurner()); // Material 11, SmallChipBurner materials.addElement(new SmallChipBurner()); // Material 12, ChipTrash materials.addElement(new ChipTrash()); // Material 13, ChipTester materials.addElement(new ChipTester()); // Material 14, Lock int[][] lockProgram = { {Lock.NARROW}, {0,1,1, 19,1,1}, {0,2,1, 19,2,1}, {0,3,1, 19,3,1}, {Lock.NARROW}, {0,3,0, 19,3,0}, {0,2,0, 19,2,0}, {0,1,0, 19,1,0}, }; materials.addElement(new Lock(new Color(192,192,255), Color.white, lockProgram)); // Materials 15, MazeLock materials.addElement(new MazeLock()); for (int a=0; a<18; a++) rooms.addElement(new Room()); { // Room 0, Help Screen Room room = (Room) rooms.elementAt(0); int[][] table = { {4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4}, {4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4}, {4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4}, {4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4}, {4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4}, {4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4}, {4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4}, {4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4}, {4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4}, {4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4}, {4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4}, {4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4} }; room.RoomArray = table; room.AddTextBox("Use the Innovation Lab to design and test circuits in robots and the large prototype chip.", 2*28, 2*32, 500); room.AddTextBox("Burn a small chip from your prototype chip in the burn room.", 2*28, 5*32, 500); room.AddTextBox("Change maze walls with the paint brush. Change sensor bodies and maze objects in the Shape Editor.", 2*28, 7*32, 500); room.AddTextBox("For help, see Tutorials.", 2*28, 10*32, 500); room.AddTextBox("(To go to Lab, press Return.)", 4*28, 11*32, 500); } { // Room 1, Chip Testing Room Room room = (Room) rooms.elementAt(1); int[][] table = { {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1}, {1, 0, 0, 0, 0, 0, 1,13,13,13,13,13,13, 1, 0, 0, 0, 0, 0, 1}, {1, 0, 0, 0, 0, 0, 1,13,13,13,13,13,13, 1, 0, 0, 0, 0, 0, 1}, {1, 0, 0, 0, 0, 0, 1,13,13,13,13,13,13, 1, 0, 0, 0, 0, 0, 0}, {1, 0, 0, 0, 0, 0, 1,13,13,13,13,13,13, 1, 0, 0, 0, 0, 0, 0}, {1, 0, 0, 0, 0, 0, 1,13,13,13,13,13,13, 1, 0, 0, 0, 0, 0, 0}, {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1} }; room.RoomArray = table; room.AddTextBox("{000,000,000} Chip Tester", (560-(11*12))/2, 32+24, 500); PortDevice[] portdevices = new PortDevice[8]; portdevices[0] = new PortDevice(6*28+4,3*32+4,room,28,Port.TYPE_UNDEFINED); portdevices[1] = new PortDevice(6*28+4,4*32+4,room,28,Port.TYPE_UNDEFINED); portdevices[2] = new PortDevice(6*28+4,5*32+4,room,28,Port.TYPE_UNDEFINED); portdevices[3] = new PortDevice(6*28+4,6*32+4,room,28,Port.TYPE_UNDEFINED); portdevices[4] = new PortDevice(12*28+4,6*32+4,room,28,Port.TYPE_UNDEFINED); portdevices[5] = new PortDevice(12*28+4,5*32+4,room,28,Port.TYPE_UNDEFINED); portdevices[6] = new PortDevice(12*28+4,4*32+4,room,28,Port.TYPE_UNDEFINED); portdevices[7] = new PortDevice(12*28+4,3*32+4,room,28,Port.TYPE_UNDEFINED); portdevices[0].rotate(1); portdevices[1].rotate(1); portdevices[2].rotate(1); portdevices[3].rotate(1); portdevices[4].rotate(-1); portdevices[5].rotate(-1); portdevices[6].rotate(-1); portdevices[7].rotate(-1); for (int a=0; a<8; a++) items.addElement(portdevices[a]); items.addElement(new AutoWire(2*28,10*32,room)); items.addElement(new WireTester(5*28,3*32,room,portdevices[0])); items.addElement(new WireTester(5*28,4*32,room,portdevices[1])); items.addElement(new WireTester(5*28,5*32,room,portdevices[2])); items.addElement(new WireTester(5*28,6*32,room,portdevices[3])); items.addElement(new WireTester(14*28+2,6*32,room,portdevices[4])); items.addElement(new WireTester(14*28+2,5*32,room,portdevices[5])); items.addElement(new WireTester(14*28+2,4*32,room,portdevices[6])); items.addElement(new WireTester(14*28+2,3*32,room,portdevices[7])); room.AddArrow(3*28,10*32+16,Arrow.DIR_LEFT,28,Color.white); room.AddTextBox("Autowirer",4*28,11*32-8,200); } { // Room 2, Storage Space 1 Room room = (Room) rooms.elementAt(2); int[][] table = { {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1} }; room.RoomArray = table; room.AddTextBox("Storage Space", 2*28, 2*32, 500); } { // Room 3, Storage Space 2 Room room = (Room) rooms.elementAt(3); int[][] table = { {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1} }; room.RoomArray = table; } { // Room 4, Burner Room Room room = (Room) rooms.elementAt(4); int[][] table = { {2, 2, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2}, {2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2}, {2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2}, {2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 2,10,10,10,10, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 2,10,10,10,10, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 2,10,10,10,10, 2, 0, 0, 0, 2,11,11, 2, 0, 0, 0, 0, 0}, {2, 0, 2, 2, 2, 2, 2, 2, 0, 0, 0, 2,11,11, 2, 0, 0, 0, 0, 0}, {2, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 2, 2, 2, 2, 0, 0, 0, 0, 2}, {2, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 0, 2, 2, 0, 0, 0, 0, 0, 2}, {2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2} }; room.RoomArray = table; room.AddTextBox("Burner Room", 2*28, 2*32, 200); room.AddTextBox("1x",15*28-14,11*32-8,100); items.addElement(new SpeedControl(15*28,7*32,room,SpeedControl.DIR_UP)); items.addElement(new SpeedControl(15*28,9*32,room,SpeedControl.DIR_DOWN)); items.addElement(new SmallChip(12*28, 1*32+16, room, "1")); items.addElement(new SmallChip(14*28, 1*32+16, room, "2")); items.addElement(new SmallChip(16*28, 1*32+16, room, "3")); items.addElement(new SmallChip(18*28, 1*32+16, room, "4")); items.addElement(new SmallChip(12*28, 3*32, room, "5")); items.addElement(new SmallChip(14*28, 3*32, room, "6")); items.addElement(new SmallChip(16*28, 3*32, room, "7")); items.addElement(new SmallChip(18*28, 3*32, room, "8")); items.addElement(new Burner(18*28, 10*32+2, room)); items.addElement(new UnBurner(2*28, 10*32+2, room)); room.AddTextBox("{000,000,000} Unburner", 1*28, 12*32-8, 200); room.AddTextBox("{000,000,000} Burner", 17*28, 12*32-8, 200); } { // Room 5, Title Room Room room = (Room) rooms.elementAt(5); int[][] table = { {1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1} }; room.RoomArray = table; room.AddTextBox("{BIG} Innovation Lab", 3*28, 2*32, 600); items.addElement(new PrototypeChip(8*28, 4*32, room)); items.addElement(new BlueRobot(4*28, 8*32, room)); items.addElement(new WhiteRobot(9*28, 8*32, room)); items.addElement(new OrangeRobot(14*28, 8*32, room)); } { // Room 6, Chip Factory Room room = (Room) rooms.elementAt(6); int[][] table = { {1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,12,12,12,12, 1}, {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,12,12,12,12, 1}, {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,12,12,12,12, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1} }; room.RoomArray = table; room.AddTextBox("Chip Factory", 2*28, 2*32, 500); room.AddTextBox("Press for Prototype", 5*28, 9*32+18, 500); room.AddTextBox("Press for Small Chip", 5*28, 10*32+18, 500); room.AddTextBox("TRASH", 16*28-2, 9*32, 500); room.AddArrow(3*28+14,9*32+12, Arrow.DIR_LEFT, 28, Color.white); room.AddArrow(3*28+14,10*32+12, Arrow.DIR_LEFT, 28, Color.white); items.addElement(new PCButton(2*28, 9*32, room)); items.addElement(new Factory(2*28, 10*32, room, new SmallChip(0,0,null,"X"))); items.addElement(new PC16Button(18*28,1*32,room)); items.addElement(new PC32Button(18*28,2*32,room)); room.AddTextBox("16 Pin", 15*28, 1*32+14, 500); room.AddTextBox("32 Pin", 15*28, 2*32+14, 500); } { // Room 7, Sensor & Object Factory Room room = (Room) rooms.elementAt(7); int[][] table = { {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {1,12,12,12, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {1,12,12,12, 1, 0, 0, 6, 0, 0, 7, 0, 0, 8, 0, 0, 9, 0, 0, 1}, {1,12,12,12, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1} }; room.RoomArray = table; Triangle t = new Triangle(0,0, null, new Color(255,128,0)); items.addElement(new Factory(2*28, 3*32, room, t)); items.addElement(new Factory(5*28, 3*32, room, new ContactSensor(0,0,null, t))); items.addElement(new Factory(8*28, 3*32, room, new RoomSensor(0,0,null, t))); items.addElement(new Factory(12*28, 3*32, room, new DirectionalSensor(0,0,null,t))); room.AddTextBox("Sensor & Object Factory", 142, 2*32-8, 500); room.AddTextBox("Shape Editor Icons", 228, 8*32, 400); room.AddTextBox("TRASH", 40, 9*32, 400); // items.addElement(new Crystal(2*28,10*32,room,100000)); // items.addElement(new Crystal(5*28,10*32,room,100000)); // items.addElement(new Square(8*28,10*32,room,Color.white)); // items.addElement(new Triangle(11*28,10*32,room,Color.blue)); // items.addElement(new Hexagon(14*28,10*32,room,new Color(255,128,0))); // items.addElement(new Crystal(17*28,10*32,room,0)); // items.addElement(new ContactSensor(3*28,2*32,room,new Square(0,0,null,Color.white))); // items.addElement(new ContactSensor(9*28,2*32,room,new Crystal(0,0,null,0))); // items.addElement(new ContactSensor(15*28,2*32,room,new Hexagon(0,0,null,Color.white))); // items.addElement(new RoomSensor(3*28,4*32,room,new Crystal(0,0,null,0))); // items.addElement(new RoomSensor(9*28,4*32,room,new Hexagon(0,0,null,Color.white))); // items.addElement(new RoomSensor(15*28,4*32,room,new Triangle(0,0,null,Color.white))); // items.addElement(new DirectionalSensor(2*28,6*32,room,new Hexagon(0,0,null,Color.white))); // items.addElement(new DirectionalSensor(8*28,6*32,room,new Triangle(0,0,null,Color.white))); // items.addElement(new DirectionalSensor(14*28,6*32,room,new Square(0,0,null,Color.white))); } { // Room 8, Recharger Room Room room = (Room) rooms.elementAt(8); int[][] table = { {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,0,14}, {1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1} }; room.RoomArray = table; room.AddTextBox("To Maze", 2*28, 11*32, 200); room.AddArrow(28+14,12*32-1, Arrow.DIR_DOWN, 32, Color.white); room.AddArrow(28+14,12*32-1, Arrow.DIR_DOWN, 32, Color.white); items.addElement(new Key(15*28+16, 10*32+12, room, Color.white)); } { // Room 9, Maze Control Room Room room = (Room) rooms.elementAt(9); int[][] table = { {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1}, {1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,1}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1} }; room.RoomArray = table; room.AddTextBox("Maze Control Room", 178, 2*32, 300); room.AddTextBox("4x2", 262, 5*32+24, 500); items.addElement(new MazeControl(9*28+14,3*32+6,room,MazeControl.DIR_UP)); items.addElement(new MazeControl(9*28+14,7*32,room,MazeControl.DIR_DOWN)); items.addElement(new MazeControl(7*28+2,5*32+4,room,MazeControl.DIR_LEFT)); items.addElement(new MazeControl(12*28,5*32+4,room,MazeControl.DIR_RIGHT)); items.addElement(new MazeCreator(2*28, 10*32, room)); room.AddArrow(3*28+14,10*32+12, Arrow.DIR_LEFT, 28, Color.white); room.AddTextBox("Press to resize Maze", 5*28, 10*32+18, 500); room.AddArrow(18*28,10*32, Arrow.DIR_DOWN, 28, Color.white); room.AddTextBox("Lock", 17*28+14, 9*32, 100); } { // Room 10, Maze Top Far Left Room room = (Room) rooms.elementAt(10); int[][] table = { {3,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, {3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3}, {3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3}, {3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3}, {3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3}, {3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3}, {3,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0}, {3,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0}, {3,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0}, {3,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0}, {3,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0}, {3,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3} }; room.RoomArray = table; room.editable=true; } { // Room 11, Maze Top Near Left Room room = (Room) rooms.elementAt(11); int[][] table = { {3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, {3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3}, {3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3}, {3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3}, {3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3}, {3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3}, {0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0}, {3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3} }; room.RoomArray = table; room.editable=true; } { // Room 12, Maze Top Near Right Room room = (Room) rooms.elementAt(12); int[][] table = { {3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, {3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3}, {3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3}, {3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3}, {3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3}, {3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3}, {0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0}, {3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3} }; room.RoomArray = table; room.editable=true; } { // Room 13, Maze Top Far Right Room room =(Room) rooms.elementAt(13); int[][] table = { {3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, {3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3}, {3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3}, {3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3}, {3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3}, {3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3}, {0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,3}, {0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,3}, {0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,3}, {0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,3}, {0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,3}, {3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,0,3} }; room.RoomArray = table; room.editable=true; } { // Room 14, Maze Bot Far Left Room room = (Room) rooms.elementAt(14); int[][] table = { {3,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, {3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3} }; room.RoomArray = table; room.editable=true; } { // Room 15, Maze Bot Near Left Room room = (Room) rooms.elementAt(15); int[][] table = { {3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3} }; room.RoomArray = table; room.editable=true; } { // Room 16, Maze Bot Near Right Room room = (Room) rooms.elementAt(16); int[][] table = { {3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3} }; room.RoomArray = table; room.editable=true; } { // Room 17, Maze Bot Far Right Room room = (Room) rooms.elementAt(17); int[][] table = { {3,3,3,3,3,3,3,3,3,3,3,0,0,0,0,0,0,0,0,3}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3}, {3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3} }; room.RoomArray = table; room.editable=true; } // 00=Help // // 01-02-03 // 04-05-06 // 07-08-09 // // 10+ = Maze // 10-11-12-13 // 14-15-16-17 // 15-16-17 // 00-01-14 // 02-03-04 // // 05-06-07-08 // 09-10-11-12 int[][] roomgrid1={ {1,2,3}, {4,5,6}, {7,8,9} }; LinkRoomsGrid(roomgrid1); LinkRoomsLeftRight(6,4); int[][] roomgrid2={ {10,11,12,13}, {14,15,16,17} }; LinkRoomsGrid(roomgrid2); LinkRoomsUpDown(8,10); gameCursor = new LabCursor(9*28+14,9*32+16,(Room) rooms.elementAt(5)); solderingPen = new SolderingPen(); remote = new Remote(); toolbox = new ToolBox(7*28,10*32, (Room) rooms.elementAt(8)); helpCam = new HelpCam( (Room) rooms.elementAt(0)); items.addElement(toolbox); ((ToolBox)toolbox).Toggle(); paintbrush = new PaintBrush(); items.addElement(paintbrush); items.addElement(gameCursor); items.addElement(solderingPen); items.addElement(remote); items.addElement(helpCam); player = gameCursor; currentViewer = player; } }