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

342 lines
14 KiB
Java
Raw Normal View History

2014-02-02 18:39:08 -03:00
package com.droidquest.levels;
import java.awt.Color;
import java.io.File;
import com.droidquest.Room;
import com.droidquest.RoomDisplay;
import com.droidquest.avatars.GameCursor;
import com.droidquest.avatars.HelpCam;
import com.droidquest.decorations.Arrow;
import com.droidquest.items.BlueRobot;
import com.droidquest.items.Crystal;
import com.droidquest.materials.Material;
import com.droidquest.materials.Portal;
public class MainMenu extends Level
{
public MainMenu(RoomDisplay rd)
{
super(rd);
// Material 0, Blank
materials.addElement(new Material(true, false));
// Material 1, White Wall
materials.addElement(new Material(new Color(255,255,255),false, true));
// Material 2, Green Wall
materials.addElement(new Material(new Color(0,255,0),false, true));
// Material 3, Red Wall
materials.addElement(new Material(new Color(255,0,0),false, true));
// Material 4, Blue Wall
materials.addElement(new Material(new Color(0,0,255),false, true));
// Material 5, Portal to RO game
materials.addElement(new Portal("RO1.lvl",false, true));
// Material 6, Portal to RO Lab
materials.addElement(new Portal("ROLab.lvl",false, true));
// Material 7, Portal to RO tutorial A
materials.addElement(new Portal("ROTutA.lvl",false, true));
// Material 8, Portal to RO tutorial B
materials.addElement(new Portal("ROTutB.lvl",false, true));
// Material 9, Portal to RO tutorial C
materials.addElement(new Portal("ROTutC.lvl",false, true));
// Material 10, Portal to RO tutorial D
materials.addElement(new Portal("ROTutD.lvl",false, true));
// Material 11, Portal to RO tutorial E
materials.addElement(new Portal("ROTutE.lvl",false, true));
// Material 12, Portal to RO tutorial F
materials.addElement(new Portal("ROTutF.lvl",false, true));
// Material 13, Portal to RO Tutorial 3
materials.addElement(new Portal("ROTut3.lvl",false, true));
// Material 14, Portal to EndGame 1
materials.addElement(new Portal("ROEndGame.lvl", true, true));
// Material 15, Portal to RO Level 6
materials.addElement(new Portal("RO6.lvl",true, true));
// Material 7, Portal to RO Tutorial 1
// materials.addElement(new Portal("ROTut1.lvl",false, true));
// Material 8, Portal to RO Tutorial 2
// materials.addElement(new Portal("ROTut2.lvl",false, true));
// Material 9, Portal to RO Tutorial 3
// materials.addElement(new Portal("ROTut3.lvl",false, true));
// Material 10, Portal to RO Level 2
// materials.addElement(new Portal("RO2.lvl",true, true));
// Material 11, Portal to RO Level 3
// materials.addElement(new Portal("RO3.lvl",true, true));
// Material 12, Portal to RO Level 4
// materials.addElement(new Portal("RO4.lvl",true, true));
// Material 13, Portal to RO Level 5
// materials.addElement(new Portal("RO5.lvl",true, true));
// Material 14, Portal to RO Level EndGame
// materials.addElement(new Portal("ROEndGame.lvl",true, true));
// Room 0, Help Screen
// Room 1, Credits
// Room 2, Credits part 2
// Room 3, Credits part 3
// Room 4, Title, Entry Point
// Room 5, Saved Games List
// Room 6, New Games List
for (int a=0; a<10; a++)
rooms.addElement(new Room());
{ // Room 0: Help Screen
Room room = (Room) rooms.elementAt(0);
room.AddTextBox("Droid Quest Temporary Cheats", 4*28,2*32, 500);
room.AddTextBox("Q = Quicken the Animation Timer", 2*28,4*32, 500);
room.AddTextBox("W = Slow the Animation Timer", 2*28,5*32, 500);
room.AddTextBox("M = Memory Report", 2*28,6*32, 500);
room.AddTextBox("(To go to Main Menu, press Return.)", 70, 11*32, 500);
}
{ // Room 1: Credits
Room room = (Room) rooms.elementAt(1);
room.AddTextBox("Credits:", 7*28, 2*32, 500);
room.AddTextBox("Original Robot Odyssey by Mike Wallace and Leslie Grimm, (C) The Learning Company",
2*28,3*32, 500);
room.AddTextBox("Original Atari Adventure by Warren Robinett, (C) Atari International",
2*28,6*32, 500);
room.AddTextBox("DroidQuest (C) 2000 Thomas Foote", 2*28,8*32, 500);
int[][] table = {
{2,2,2,2,2,2,2,2,2,2,2,2,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},
{2,0,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},
{2,0,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},
{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},
{2,2,2,2,2,2,2,2,0,0,0,0,2,2,2,2,2,2,2,2}
};
room.RoomArray = table;
}
{ // Room 2: Credits 2
Room room = (Room) rooms.elementAt(2);
room.AddTextBox("Special thanks to...", 2*28,2*32, 500);
room.AddTextBox("Eric Welsh Eric Jacobs Vladimir Dimitrov Nathan Woods John Isidoro Derek Pechel Jeffery Hanke Matheww Russo Jim Veneskey Erik Santiso Michael Mol",2*28,4*32,220);
room.AddTextBox("Che Fox illuvius lexspoon shuffles Locklainn samdroid", 12*28,4*32, 200);
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},
{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},
{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},
{2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2},
{2,2,2,2,2,2,2,2,0,0,0,0,2,2,2,2,2,2,2,2}
};
room.RoomArray = table;
LinkRoomsUpDown(1,2);
}
{ // Room 3: Credits 3
Room room = (Room) rooms.elementAt(3);
room.AddTextBox("Christopher Walkup, age 6 Billy Leete, age 5", 2*28, 4*32, 350);
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},
{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},
{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},
{2,0,0,0,0,0,0,0,0,0,0,0,0,0,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;
LinkRoomsUpDown(2,3);
}
{ // Room 4: Title
Room room = (Room) rooms.elementAt(4);
room.AddGraphix("DQlogo.gif",2*28,1*32);
room.AddTextBox("Credits", 2*28,6*32+8, 500);
room.AddArrow(0,6*32,Arrow.DIR_LEFT, 28, Color.white);
room.AddTextBox("Saved Games", 9*28,10*32, 80);
room.AddTextBox("Games", 450,6*32+8, 500);
room.AddArrow(559,6*32,Arrow.DIR_RIGHT, 28, Color.white);
room.AddTextBox("{000,000,000} Version 2.7", 0,16,500);
if (cheatmode)
room.AddTextBox("{BIG} CHEAT ENABLED!", 91, 8*32, 500);
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;
LinkRoomsLeftRight(1,4);
}
{ // Room 5: Save games
Room room = (Room) rooms.elementAt(5);
int[][] table = {
{3,3,3,3,3,3,3,3,0,0,0,0,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,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,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}
};
room.RoomArray = table;
LinkRoomsUpDown(4,5);
}
{ // Room 6: Robot Odyssey
Room room = (Room) rooms.elementAt(6);
room.AddTextBox("{BIG} ROBOT ODYSSEY I", 2*28,2*32, 600);
room.AddTextBox("The Original Game", 2*28,3*32, 500);
room.AddTextBox("Robotropolis", 8*28,6*32, 500);
room.AddTextBox("Innovation Lab", 8*28,8*32, 500);
room.AddTextBox("Tutorials", 8*28, 11*32, 300);
room.AddArrow(10*28, 383, Arrow.DIR_DOWN, 32, Color.white);
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},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
{0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,4},
{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4},
{0,0,0,0,0,0,0,6,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,0,0,0,0,4,4,4,4,4,4,4,4}
};
room.RoomArray = table;
LinkRoomsLeftRight(4,6);
}
{ // Room 7: RO Tutorials
Room room = (Room) rooms.elementAt(7);
int[][] table = {
{4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 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, 7, 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, 8, 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, 9, 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,10, 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, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4}
};
room.RoomArray = table;
room.AddTextBox("Robot Anatomy", 3*28, 4*32, 500);
room.AddTextBox("Robot Wiring", 3*28, 6*32, 500);
room.AddTextBox("Sensors", 3*28, 8*32, 500);
room.AddTextBox("Toolkit", 3*28, 10*32, 500);
LinkRoomsUpDown(6,7);
}
{ // Room 8: RO Tutorials
Room room = (Room) rooms.elementAt(8);
int[][] table = {
{4, 4, 4, 4, 4, 4, 4, 4, 0, 0, 0, 0, 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,11, 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,12, 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,13, 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("Robot Circuits", 3*28, 4*32, 500);
room.AddTextBox("Robot Teamwork", 3*28, 6*32, 500);
room.AddTextBox("Chip Design", 3*28, 8*32, 500);
LinkRoomsUpDown(7,8);
}
{ // Room 9: Secret Room
Room room = (Room) rooms.elementAt(9);
room.SetMaterialOutline(0,0,19,11,1);
room.SetMaterial(2,2,14);
room.SetMaterial(2,4,15);
LinkRoomsUpDown(9,4);
items.addElement(new BlueRobot(2*28, 6*32,room));
items.addElement(new Crystal(5*28, 6*32,room,100000));
}
gameCursor = new GameCursor(9*28,6*32,(Room) rooms.elementAt(4));
helpCam = new HelpCam( (Room) rooms.elementAt(0));
items.addElement(gameCursor);
items.addElement(helpCam);
player = gameCursor;
currentViewer = player;
File f = new File("ROlevels/");
if (!f.exists())
f.mkdir();
String[] files = f.list();
int pageIndex=5;
for (int a=0; a<files.length; a++)
{
if (a>4 && a%5==0)
{
// Add a new room
Room oldRoom = (Room) rooms.elementAt(pageIndex);
oldRoom.RoomArray[11][8]=0;
oldRoom.RoomArray[11][9]=0;
oldRoom.RoomArray[11][10]=0;
oldRoom.RoomArray[11][11]=0;
Room newRoom = new Room();
rooms.addElement(newRoom);
int[][] tablex = {
{3,3,3,3,3,3,3,3,0,0,0,0,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,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,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3}
};
newRoom.RoomArray = tablex;
int newPageIndex = rooms.indexOf(newRoom);
LinkRoomsUpDown(pageIndex,newPageIndex);
pageIndex=newPageIndex;
}
materials.addElement(new Portal("ROlevels/"+files[a], false, false));
int matIndex = materials.size()-1;
int y = 1+(a%5)*2;
Room room = (Room) rooms.elementAt(pageIndex);
room.RoomArray[y][2] = matIndex;
room.AddTextBox(files[a], 3*28+14, y*32+32, 400);
}
}
}