DroidQuest/src/com/droidquest/levels/ROLab.java

606 lines
26 KiB
Java

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;
}
}