Merge origin/master
This commit is contained in:
parent
5996c744a2
commit
80e9ec9dbc
@ -28,6 +28,9 @@ public class Game {
|
|||||||
private static ArrayList<String> story = new ArrayList<String>();
|
private static ArrayList<String> story = new ArrayList<String>();
|
||||||
private static ArrayList<Item> items = new ArrayList<Item>();
|
private static ArrayList<Item> items = new ArrayList<Item>();
|
||||||
private static ArrayList<Puzzle> puzzles = new ArrayList<Puzzle>();
|
private static ArrayList<Puzzle> puzzles = new ArrayList<Puzzle>();
|
||||||
|
private String deviceId = null;
|
||||||
|
|
||||||
|
|
||||||
private boolean stoppFlag = false;
|
private boolean stoppFlag = false;
|
||||||
private Map<String, Object> jsonMap = null;
|
private Map<String, Object> jsonMap = null;
|
||||||
private String[] inputArray = null;
|
private String[] inputArray = null;
|
||||||
@ -38,15 +41,8 @@ public class Game {
|
|||||||
private String input = null;
|
private String input = null;
|
||||||
private Room currentRoom = null;
|
private Room currentRoom = null;
|
||||||
|
|
||||||
private Room intro;
|
|
||||||
private Room keller;
|
|
||||||
private Puzzle durchgang;
|
|
||||||
private Puzzle schloss;
|
|
||||||
private Puzzle door;
|
|
||||||
private Item schluessel;
|
|
||||||
private Item stahlschluessel;
|
|
||||||
|
|
||||||
public Game() {
|
public Game() {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
startGame();
|
startGame();
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
@ -89,21 +85,18 @@ public class Game {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String generateJSON() throws IOException {
|
public static String writeJSON(File f) throws IOException {
|
||||||
ObjectMapper mapper = new ObjectMapper();
|
ObjectMapper mapper = new ObjectMapper();
|
||||||
String s = "";
|
String s = "";
|
||||||
try (
|
try (
|
||||||
JsonGenerator jGenerator
|
JsonGenerator jGenerator
|
||||||
= mapper.getFactory().createGenerator(
|
= mapper.getFactory().createGenerator(f,JsonEncoding.UTF8)) {
|
||||||
new File("game.JSON"),
|
|
||||||
JsonEncoding.UTF8)) {
|
|
||||||
|
|
||||||
jGenerator.writeStartObject();
|
jGenerator.writeStartObject();
|
||||||
jGenerator.writeObjectField("room", rooms);
|
jGenerator.writeObjectField("room", rooms);
|
||||||
jGenerator.writeObjectField("puzzle", puzzles);
|
jGenerator.writeObjectField("puzzle", puzzles);
|
||||||
jGenerator.writeObjectField("item", items);
|
jGenerator.writeObjectField("item", items);
|
||||||
jGenerator.writeObjectField("story", story);
|
jGenerator.writeObjectField("story", story);
|
||||||
|
|
||||||
jGenerator.writeEndObject();
|
jGenerator.writeEndObject();
|
||||||
jGenerator.close();
|
jGenerator.close();
|
||||||
|
|
||||||
@ -130,76 +123,43 @@ public class Game {
|
|||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Item getItem(String s) {
|
||||||
|
for (int i = 0; i < items.size(); i++) {
|
||||||
|
if (items.get(i).getName().toLowerCase().equals(s.toLowerCase())) {
|
||||||
|
if (currentRoom.getItems().contains(items.get(i).getId())) {
|
||||||
|
return items.get(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Puzzle getPuzzle(String s) {
|
||||||
|
for (int i = 0; i < items.size(); i++) {
|
||||||
|
if (items.get(i).getName().toLowerCase().equals(s.toLowerCase())) {
|
||||||
|
if (currentRoom.getPuzzles().contains(puzzles.get(i).getId())) {
|
||||||
|
return puzzles.get(i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getId()
|
||||||
|
{
|
||||||
|
return deviceId;
|
||||||
|
}
|
||||||
|
|
||||||
public void setVariables() throws Exception {
|
public void setVariables() throws Exception {
|
||||||
|
|
||||||
// Intro Raum
|
|
||||||
intro = new Room("Intro");
|
|
||||||
intro.setDescription("Hier ist das Intro von Kidnappd");
|
|
||||||
durchgang = new Puzzle("Durchgang");
|
|
||||||
durchgang.setSolvedText("Hurra, du hast das Intro Level beendet");
|
|
||||||
intro.puzzles.add(durchgang);
|
|
||||||
|
|
||||||
//Raum Object
|
|
||||||
keller = new Room("Keller");
|
|
||||||
|
|
||||||
durchgang.setNextRoom(keller);
|
|
||||||
keller.setDescription("der kleine Mondschein, der zuvor den unbekannten Raum schwach beleuchtet hat, leuchtet viel gr��er und viel heller und du erkennst nun den gesamten Raum. Er ist klein und d�ster. "
|
|
||||||
+ "überall h�ngen Spinnennetze und Staub sammelt sich am Betonboden. Du erkennst am anderen Ende des Raumes eine T�r");
|
|
||||||
|
|
||||||
//Puzzle Object
|
|
||||||
schloss = new Puzzle("Schloss");
|
|
||||||
schloss.setDescription("Es ist ein altes Schloss aus Metall, dass eine Einkerbung f�r einen Schl�ssel hat");
|
|
||||||
schloss.setSolvedText("Ja, es hat funktioniert! Mit einem Knacksen geht das Schloss auf und du kannst dich von deiner Beinfessel befreien. ");
|
|
||||||
puzzles.add(schloss);
|
|
||||||
keller.puzzles.add(schloss);
|
|
||||||
|
|
||||||
//Ausgang
|
|
||||||
door = new Puzzle("Tuer");
|
|
||||||
door.setDescription("Ausgang aus dem Keller");
|
|
||||||
door.setGameOverFlag(true);
|
|
||||||
door.setSolvedText("Geschafft! Die Tuer ist offen. Das Intro ist nun beendet");
|
|
||||||
keller.puzzles.add(door);
|
|
||||||
puzzles.add(door);
|
|
||||||
|
|
||||||
//Item Object
|
|
||||||
schluessel = new Item("Schluessel");
|
|
||||||
schluessel.setHiddenFlag(false);
|
|
||||||
schluessel.setPortableFlag(true);
|
|
||||||
schluessel.setDescription("Der Schl�ssel ist kalt und klein. Vielleicht hast du Gl�ck und er passt ins Schloss. Versuche es zu �ffnen!");
|
|
||||||
schloss.addItem(schluessel);
|
|
||||||
keller.items.add(schluessel);
|
|
||||||
items.add(schluessel);
|
|
||||||
|
|
||||||
door.setDependency(schloss);
|
|
||||||
door.setDependencyText("Du musst erst das Schloss der Kette knacken um die Tür öffnen zu können");
|
|
||||||
|
|
||||||
//Item Object
|
|
||||||
stahlschluessel = new Item("Stahlschluessel");
|
|
||||||
stahlschluessel.setHiddenFlag(false);
|
|
||||||
stahlschluessel.setPortableFlag(false);
|
|
||||||
stahlschluessel.setDescription("Ein Stahlschlüssel");
|
|
||||||
intro.items.add(stahlschluessel);
|
|
||||||
items.add(stahlschluessel);
|
|
||||||
|
|
||||||
rooms.add(intro);
|
|
||||||
rooms.add(keller);
|
|
||||||
story.add("Dein ganzer K�rper schmerzt, du liegst auf Betonboden. Du f�ngst laut an zu husten und Staubklumpen fliegen aus deinem Mund. Du �ffnest langsam und nur schwer die Augen, "
|
|
||||||
+ "doch es ist fast gar nichts zu sehen. Die einzige Lichtquelle ist ein kleines Fenster �ber dir, durch die ein schwacher Mondschein f�llt. Es ist also Nachts... "
|
|
||||||
+ "Langsam versuchst du dich an die fast komplette Dunkelheit zu gew�hnen und erkennst, dass du dich in einem kleinen dir unbekannten Raum befindest. Dich packt die Angst! "
|
|
||||||
+ "Was ist passiert, wo bist du und wie bist du hier gelandet?"
|
|
||||||
+ "Du nimmst die Stahlkette in die Hand. Sie ist schwer und verrostet. Mit den H�nden tastest du dich voran bis an die Heizung, wo du ein Schloss an der Kette entdeckst."
|
|
||||||
+ "Das Mondlicht ist nur sehr schwach, um den Raum zu begutachten. Du gehst in die Knie und tastest mit deinem H�nden wild und in Panik am Betonboden. "
|
|
||||||
+ "Pl�tzlich st��t du auf einen kleinen Gegenstand, der sich tats�chlich anf�hlt wie ein Schl�ssel. Du solltest ihn aufheben");
|
|
||||||
|
|
||||||
currentRoom = intro;
|
|
||||||
stoppFlag = false;
|
|
||||||
inventory = new ArrayList<Item>();
|
|
||||||
log("JSON: " + generateJSON());
|
|
||||||
|
|
||||||
readJSON();
|
readJSON();
|
||||||
|
|
||||||
log("Readjson fertig");
|
log("Readjson fertig");
|
||||||
|
|
||||||
|
currentRoom = rooms.get(0);
|
||||||
|
stoppFlag = false;
|
||||||
|
inventory = new ArrayList<>();
|
||||||
|
|
||||||
|
//log("JSON: " + writeJSON());
|
||||||
ObjectMapper objectMapper = new ObjectMapper();
|
ObjectMapper objectMapper = new ObjectMapper();
|
||||||
objectMapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
|
objectMapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
|
||||||
|
|
||||||
@ -208,8 +168,6 @@ public class Game {
|
|||||||
String jsonStringPuzzle = objectMapper.writeValueAsString(jsonMap.get("puzzle"));
|
String jsonStringPuzzle = objectMapper.writeValueAsString(jsonMap.get("puzzle"));
|
||||||
String jsonStringStory = objectMapper.writeValueAsString(jsonMap.get("story"));
|
String jsonStringStory = objectMapper.writeValueAsString(jsonMap.get("story"));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
log("Item: " + jsonStringItem);
|
log("Item: " + jsonStringItem);
|
||||||
log("Room: " + jsonStringRoom);
|
log("Room: " + jsonStringRoom);
|
||||||
log("Story: " + jsonStringStory);
|
log("Story: " + jsonStringStory);
|
||||||
@ -224,31 +182,23 @@ public class Game {
|
|||||||
Room[] ro = objectMapper.readValue(jsonStringRoom, Room[].class);
|
Room[] ro = objectMapper.readValue(jsonStringRoom, Room[].class);
|
||||||
log("Room Array OK");
|
log("Room Array OK");
|
||||||
|
|
||||||
for(int i=0; i < ro.length; i++)
|
for (int i = 0; i < ro.length; i++) {
|
||||||
{
|
|
||||||
log("Room: " + ro[i].getName());
|
log("Room: " + ro[i].getName());
|
||||||
log("Description: " + ro[i].getDescription());
|
log("Description: " + ro[i].getDescription());
|
||||||
}
|
}
|
||||||
|
|
||||||
for(int i=0; i < it.length; i++)
|
for (int i = 0; i < it.length; i++) {
|
||||||
{
|
|
||||||
log("Item: " + it[i].getName());
|
log("Item: " + it[i].getName());
|
||||||
log("Description: " + it[i].getDescription());
|
log("Description: " + it[i].getDescription());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < pu.length; i++) {
|
||||||
|
|
||||||
for(int i=0; i < pu.length; i++)
|
|
||||||
{
|
|
||||||
log("Puzzle: " + pu[i].getName());
|
log("Puzzle: " + pu[i].getName());
|
||||||
log("Description: " + pu[i].getDescription());
|
log("Description: " + pu[i].getDescription());
|
||||||
log("DependencyText: " + pu[i].getDependencyText());
|
log("DependencyText: " + pu[i].getDependencyText());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < st.length; i++) {
|
||||||
|
|
||||||
for(int i=0; i < st.length; i++)
|
|
||||||
{
|
|
||||||
log("Story: " + st[i]);
|
log("Story: " + st[i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -259,10 +209,10 @@ public class Game {
|
|||||||
log("currentRoom: " + currentRoom.getName());
|
log("currentRoom: " + currentRoom.getName());
|
||||||
|
|
||||||
for (int i = 0; i < currentRoom.getPuzzles().size(); i++) {
|
for (int i = 0; i < currentRoom.getPuzzles().size(); i++) {
|
||||||
log("Puzzle im Raum: " + currentRoom.getPuzzles().get(i).getName());
|
log("Puzzle im Raum: " + currentRoom.getPuzzles().get(i)); //getPuzzles().get(i).getName());
|
||||||
}
|
}
|
||||||
for (int i = 0; i < currentRoom.getItems().size(); i++) {
|
for (int i = 0; i < currentRoom.getItems().size(); i++) {
|
||||||
log("Item im Raum: " + currentRoom.getItems().get(i).getName());
|
log("Item im Raum: " + currentRoom.getItems().get(i)); //getItems().get(i).getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
input = input.replace("ä", "ae");
|
input = input.replace("ä", "ae");
|
||||||
@ -274,11 +224,11 @@ public class Game {
|
|||||||
inputArray = input.split(" ");
|
inputArray = input.split(" ");
|
||||||
|
|
||||||
for (String s : inputArray) {
|
for (String s : inputArray) {
|
||||||
if (currentRoom.getItem(s) != null) {
|
if (getItem(s) != null) {
|
||||||
itemName = currentRoom.getItem(s).getName();
|
itemName = getItem(s).getName();
|
||||||
log("itemName: " + itemName);
|
log("itemName: " + itemName);
|
||||||
} else if (currentRoom.getPuzzle(s) != null) {
|
} else if (getPuzzle(s) != null) {
|
||||||
puzzleName = currentRoom.getPuzzle(s).getName();
|
puzzleName = getPuzzle(s).getName();
|
||||||
log("PuzzleName: " + puzzleName);
|
log("PuzzleName: " + puzzleName);
|
||||||
} else {
|
} else {
|
||||||
intentName = s;
|
intentName = s;
|
||||||
@ -301,10 +251,10 @@ public class Game {
|
|||||||
//intent
|
//intent
|
||||||
case "inspectintent":
|
case "inspectintent":
|
||||||
log("Switch: InspectIntent");
|
log("Switch: InspectIntent");
|
||||||
if (currentRoom.getItem(itemName) != null) {
|
if (getItem(itemName) != null) {
|
||||||
inspect(currentRoom.getItem(itemName));
|
inspect(getItem(itemName));
|
||||||
} else if (currentRoom.getPuzzle(puzzleName) != null) {
|
} else if (getPuzzle(puzzleName) != null) {
|
||||||
inspect(currentRoom.getPuzzle(puzzleName));
|
inspect(getPuzzle(puzzleName));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -319,15 +269,15 @@ public class Game {
|
|||||||
//intent
|
//intent
|
||||||
case "takeintent":
|
case "takeintent":
|
||||||
log("Switch: TakeIntent");
|
log("Switch: TakeIntent");
|
||||||
if (currentRoom.getItem(itemName) != null) {
|
if (getItem(itemName) != null) {
|
||||||
take(currentRoom.getItem(itemName));
|
take(getItem(itemName));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
//intent
|
//intent
|
||||||
case "openintent":
|
case "openintent":
|
||||||
log("Switch: OpenIntent");
|
log("Switch: OpenIntent");
|
||||||
if (currentRoom.getPuzzle(puzzleName) != null) {
|
if (getPuzzle(puzzleName) != null) {
|
||||||
open(currentRoom.getPuzzle(puzzleName));
|
open(getPuzzle(puzzleName));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
//intent
|
//intent
|
||||||
@ -344,8 +294,8 @@ public class Game {
|
|||||||
if (itemName == null && puzzleName == null) {
|
if (itemName == null && puzzleName == null) {
|
||||||
resetGame();
|
resetGame();
|
||||||
for (int i = 0; i < currentRoom.puzzles.size(); i++) {
|
for (int i = 0; i < currentRoom.puzzles.size(); i++) {
|
||||||
if (currentRoom.puzzles.get(i).getNextRoom() != null) {
|
if (getPuzzleById(currentRoom.puzzles.get(i)).getNextRoom() != null) {
|
||||||
setRoom(currentRoom.puzzles.get(i).getNextRoom());
|
setRoom(getRoomById(getPuzzleById(currentRoom.puzzles.get(i)).getNextRoom()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -364,6 +314,34 @@ public class Game {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Room getRoomById(int i) {
|
||||||
|
for (int j = 0; j < rooms.size(); j++) {
|
||||||
|
if (rooms.get(j).getId() == i) {
|
||||||
|
return rooms.get(j);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Item getItemById(int i) {
|
||||||
|
for (int j = 0; j < items.size(); j++) {
|
||||||
|
if (items.get(j).getId() == i) {
|
||||||
|
return items.get(j);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Puzzle getPuzzleById(int i) {
|
||||||
|
for (int j = 0; j < puzzles.size(); j++) {
|
||||||
|
if (puzzles.get(j).getId() == i) {
|
||||||
|
return puzzles.get(j);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
public void log(String s) throws Exception {
|
public void log(String s) throws Exception {
|
||||||
String url = "https://medinf.efi.th-nuernberg.de/tomcat/WebAdventure/Log";
|
String url = "https://medinf.efi.th-nuernberg.de/tomcat/WebAdventure/Log";
|
||||||
URL obj = new URL(url);
|
URL obj = new URL(url);
|
||||||
@ -414,7 +392,7 @@ public class Game {
|
|||||||
log("inspect(" + currentPuzzle.getName() + ")");
|
log("inspect(" + currentPuzzle.getName() + ")");
|
||||||
|
|
||||||
for (int i = 0; i < currentRoom.getItems().size(); i++) {
|
for (int i = 0; i < currentRoom.getItems().size(); i++) {
|
||||||
if (currentRoom.getPuzzles().get(i) == currentPuzzle) {
|
if (currentRoom.getPuzzles().get(i) == currentPuzzle.getId()) {
|
||||||
say(currentPuzzle.getDescription());
|
say(currentPuzzle.getDescription());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -424,7 +402,7 @@ public class Game {
|
|||||||
log("inspect(" + currentItem.getName() + ")");
|
log("inspect(" + currentItem.getName() + ")");
|
||||||
|
|
||||||
for (int i = 0; i < currentRoom.getItems().size(); i++) {
|
for (int i = 0; i < currentRoom.getItems().size(); i++) {
|
||||||
if (currentRoom.getItems().get(i) == currentItem) {
|
if (currentRoom.getItems().get(i) == currentItem.getId()) {
|
||||||
say(currentItem.getDescription());
|
say(currentItem.getDescription());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -512,13 +490,13 @@ public class Game {
|
|||||||
say("ist bereits geöffnet");
|
say("ist bereits geöffnet");
|
||||||
if (currentPuzzle.getNextRoom() != null) // wenn es eine Tür ist die in den nächsten Raum führt
|
if (currentPuzzle.getNextRoom() != null) // wenn es eine Tür ist die in den nächsten Raum führt
|
||||||
{
|
{
|
||||||
setRoom(currentPuzzle.getNextRoom()); // wechselt in den nächsten Raum
|
setRoom(getRoomById(currentPuzzle.getNextRoom())); // wechselt in den nächsten Raum
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (!currentPuzzle.hasDependency() || currentPuzzle.getDependency().isSolved()) // ist keine Abhängigkeit vorhanden oder aber die Abhängigkeit ist gelöst
|
if (!currentPuzzle.hasDependency() || getPuzzleById(currentPuzzle.getDependency()).isSolved()) // ist keine Abhängigkeit vorhanden oder aber die Abhängigkeit ist gelöst
|
||||||
{
|
{
|
||||||
if (currentPuzzle.getItems().isEmpty() || getInventory().containsAll(currentPuzzle.getItems())) // keine Items zum lösen notwendig oder alle Items zum lösen befinden sich im Inventar
|
if (currentPuzzle.getItems().isEmpty() || checkPuzzleItemsInInventory(currentPuzzle.getId())) // keine Items zum lösen notwendig oder alle Items zum lösen befinden sich im Inventar
|
||||||
{
|
{
|
||||||
currentPuzzle.setSolved(true); // auf gelöst setzen
|
currentPuzzle.setSolved(true); // auf gelöst setzen
|
||||||
say(currentPuzzle.getSolvedText()); // Lösungstext
|
say(currentPuzzle.getSolvedText()); // Lösungstext
|
||||||
@ -530,7 +508,7 @@ public class Game {
|
|||||||
|
|
||||||
if (currentPuzzle.getNextRoom() != null) // wenn es eine Tür ist die in den nächsten Raum führt
|
if (currentPuzzle.getNextRoom() != null) // wenn es eine Tür ist die in den nächsten Raum führt
|
||||||
{
|
{
|
||||||
setRoom(currentPuzzle.getNextRoom()); // wechselt in den nächsten Raum
|
setRoom(getRoomById(currentPuzzle.getNextRoom())); // wechselt in den nächsten Raum
|
||||||
}
|
}
|
||||||
} else // Item zum lösen fehlt
|
} else // Item zum lösen fehlt
|
||||||
{
|
{
|
||||||
@ -538,7 +516,7 @@ public class Game {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!currentPuzzle.getDependency().isSolved()) // Abhängigkeit nicht gelöst
|
if (!getPuzzleById(currentPuzzle.getDependency()).isSolved()) // Abhängigkeit nicht gelöst
|
||||||
{
|
{
|
||||||
say(currentPuzzle.getDependencyText());
|
say(currentPuzzle.getDependencyText());
|
||||||
}
|
}
|
||||||
@ -558,16 +536,19 @@ public class Game {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public ArrayList<Room> getRooms() {
|
public boolean checkPuzzleItemsInInventory(int puzzleId) {
|
||||||
return rooms;
|
Puzzle p = getPuzzleById(puzzleId);
|
||||||
|
for (int i = 0; i < p.getItems().size(); i++) {
|
||||||
|
if (inventory.contains(getItemById(p.getItems().get(i)))) {
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ArrayList<Item> getInventory() {
|
public ArrayList<Item> getInventory() {
|
||||||
return inventory;
|
return inventory;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ArrayList<String> getStory() {
|
|
||||||
return story;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -1,17 +1,19 @@
|
|||||||
|
|
||||||
public class Item
|
public class Item
|
||||||
{
|
{
|
||||||
|
private Integer id;
|
||||||
private String name;
|
private String name;
|
||||||
private boolean portableFlag;
|
private boolean portableFlag;
|
||||||
private boolean hiddenFlag;
|
private boolean hiddenFlag;
|
||||||
private String description;
|
private String description;
|
||||||
|
|
||||||
public Item(String n, boolean p, boolean h, String d)
|
public Item(Integer i, String n, boolean portable, boolean hidden, String desc)
|
||||||
{
|
{
|
||||||
|
id = i;
|
||||||
name = n;
|
name = n;
|
||||||
portableFlag = p;
|
portableFlag = portable;
|
||||||
hiddenFlag = h;
|
hiddenFlag = hidden;
|
||||||
description = d;
|
description = desc;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Item()
|
public Item()
|
||||||
@ -19,42 +21,26 @@ public class Item
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Item(String name)
|
|
||||||
{
|
|
||||||
this.name = name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDescription()
|
public String getDescription()
|
||||||
{
|
{
|
||||||
return description;
|
return description;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDescription(String description)
|
|
||||||
{
|
|
||||||
this.description = description;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getName() {
|
public String getName() {
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setName(String name) {
|
|
||||||
this.name = name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isPortableFlag() {
|
public boolean isPortableFlag() {
|
||||||
return portableFlag;
|
return portableFlag;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setPortableFlag(boolean portableFlag) {
|
|
||||||
this.portableFlag = portableFlag;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isHiddenFlag() {
|
public boolean isHiddenFlag() {
|
||||||
return hiddenFlag;
|
return hiddenFlag;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setHiddenFlag(boolean hiddenFlag) {
|
public Integer getId()
|
||||||
this.hiddenFlag = hiddenFlag;
|
{
|
||||||
|
return id;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -61,7 +61,7 @@ public class Log extends HttpServlet {
|
|||||||
@Override
|
@Override
|
||||||
protected void doGet(HttpServletRequest request, HttpServletResponse response)
|
protected void doGet(HttpServletRequest request, HttpServletResponse response)
|
||||||
throws ServletException, IOException {
|
throws ServletException, IOException {
|
||||||
response.setIntHeader("Refresh", 2);
|
response.setIntHeader("Refresh", 10);
|
||||||
try {
|
try {
|
||||||
processRequest(request, response);
|
processRequest(request, response);
|
||||||
|
|
||||||
@ -81,7 +81,7 @@ public class Log extends HttpServlet {
|
|||||||
@Override
|
@Override
|
||||||
protected void doPost(HttpServletRequest request, HttpServletResponse response)
|
protected void doPost(HttpServletRequest request, HttpServletResponse response)
|
||||||
throws ServletException, IOException {
|
throws ServletException, IOException {
|
||||||
response.setIntHeader("Refresh", 2);
|
response.setIntHeader("Refresh", 10);
|
||||||
try {
|
try {
|
||||||
processRequest(request, response);
|
processRequest(request, response);
|
||||||
} catch (Exception ex) {
|
} catch (Exception ex) {
|
||||||
|
@ -7,6 +7,7 @@
|
|||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.PrintWriter;
|
import java.io.PrintWriter;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
import javax.servlet.ServletException;
|
import javax.servlet.ServletException;
|
||||||
@ -21,6 +22,7 @@ import javax.servlet.http.HttpServletResponse;
|
|||||||
*/
|
*/
|
||||||
@WebServlet(urlPatterns = {"/IO"})
|
@WebServlet(urlPatterns = {"/IO"})
|
||||||
public class Logic extends HttpServlet {
|
public class Logic extends HttpServlet {
|
||||||
|
private ArrayList<Game> games = new ArrayList<Game>();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
|
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
|
||||||
@ -56,7 +58,7 @@ public class Logic extends HttpServlet {
|
|||||||
|
|
||||||
out.println(context);
|
out.println(context);
|
||||||
|
|
||||||
|
//String deviceId = request.getParameter("deviceId"); // einzigartige DeviceID des Alexa Geräts
|
||||||
|
|
||||||
String input = request.getParameter("intent");
|
String input = request.getParameter("intent");
|
||||||
if (request.getParameter("slot") != null) {
|
if (request.getParameter("slot") != null) {
|
||||||
@ -69,6 +71,17 @@ public class Logic extends HttpServlet {
|
|||||||
g.play();
|
g.play();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Mehrere Spieler auf einem Server
|
||||||
|
for(int i = 0; i < games.size(); i++)
|
||||||
|
{
|
||||||
|
if(games.get(i).getId().equals(deviceId))
|
||||||
|
{
|
||||||
|
games.get(i).setInput(input);
|
||||||
|
games.get(i).play();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,37 +2,34 @@ import java.util.ArrayList;
|
|||||||
|
|
||||||
public class Puzzle
|
public class Puzzle
|
||||||
{
|
{
|
||||||
|
private Integer id;
|
||||||
private String name;
|
private String name;
|
||||||
private ArrayList<Item> items = new ArrayList<Item>();
|
private ArrayList<Integer> items = new ArrayList<>();
|
||||||
private String description="";
|
private String description="";
|
||||||
private boolean solved = false;
|
private boolean solved = false;
|
||||||
private String solvedText = "";
|
private String solvedText = "";
|
||||||
private boolean gameOverFlag=false;
|
private boolean gameOverFlag=false;
|
||||||
private Room nextRoom = null;
|
private Integer nextRoom = null;
|
||||||
private String dependencyText = null;
|
private String dependencyText = null;
|
||||||
private Puzzle dependency= null;
|
private Integer dependency= null;
|
||||||
|
|
||||||
public Puzzle(String name)
|
|
||||||
{
|
|
||||||
this.name = name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Puzzle()
|
public Puzzle()
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Puzzle(String n, ArrayList<Item> i, String d, boolean s, String st, boolean g, Room nx, String dt, Puzzle p)
|
public Puzzle(Integer i, String n, ArrayList<Integer> itemList, String desc, boolean solvedFlag, String solvedTxt, boolean gameOver, Integer next, String dependencytxt, Integer dependentFrom)
|
||||||
{
|
{
|
||||||
|
id = i;
|
||||||
name = n;
|
name = n;
|
||||||
items = i;
|
items = itemList;
|
||||||
description = d;
|
description = desc;
|
||||||
solved = s;
|
solved = solvedFlag;
|
||||||
solvedText = st;
|
solvedText = solvedTxt;
|
||||||
gameOverFlag = g;
|
gameOverFlag = gameOver;
|
||||||
nextRoom = nx;
|
nextRoom = next;
|
||||||
dependencyText = dt;
|
dependencyText = dependencytxt;
|
||||||
dependency = p;
|
dependency = dependentFrom;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean hasDependency()
|
public boolean hasDependency()
|
||||||
@ -40,17 +37,8 @@ public class Puzzle
|
|||||||
return dependency != null;
|
return dependency != null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDependency(Puzzle p)
|
|
||||||
{
|
|
||||||
dependency = p;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDependencyText(String s)
|
public Integer getDependency()
|
||||||
{
|
|
||||||
dependencyText = s;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Puzzle getDependency()
|
|
||||||
{
|
{
|
||||||
return dependency;
|
return dependency;
|
||||||
}
|
}
|
||||||
@ -60,60 +48,38 @@ public class Puzzle
|
|||||||
return dependencyText;
|
return dependencyText;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Room getNextRoom()
|
public Integer getNextRoom()
|
||||||
{
|
{
|
||||||
return nextRoom;
|
return nextRoom;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void addItem(Item i)
|
|
||||||
{
|
|
||||||
items.add(i);
|
|
||||||
}
|
|
||||||
|
|
||||||
public ArrayList<Item> getItems() {
|
public ArrayList<Integer> getItems() {
|
||||||
return items;
|
return items;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setItems(ArrayList<Item> items) {
|
|
||||||
this.items = items;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getName() {
|
public String getName() {
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setName(String name) {
|
|
||||||
this.name = name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDescription() {
|
public String getDescription() {
|
||||||
return description;
|
return description;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setDescription(String description) {
|
|
||||||
this.description = description;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getSolvedText() {
|
public String getSolvedText() {
|
||||||
return solvedText;
|
return solvedText;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSolvedText(String solvedText) {
|
|
||||||
this.solvedText = solvedText;
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isSolved() {
|
public boolean isSolved() {
|
||||||
return solved;
|
return solved;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setSolved(boolean solved) {
|
public void setSolved(boolean s)
|
||||||
this.solved = solved;
|
{
|
||||||
}
|
solved = s;
|
||||||
|
|
||||||
public void setGameOverFlag(boolean b) {
|
|
||||||
// TODO Auto-generated method stub
|
|
||||||
gameOverFlag = b;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean getGameOverFlag() {
|
public boolean getGameOverFlag() {
|
||||||
@ -121,8 +87,8 @@ public class Puzzle
|
|||||||
return gameOverFlag;
|
return gameOverFlag;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setNextRoom(Room r)
|
public Integer getId()
|
||||||
{
|
{
|
||||||
nextRoom = r;
|
return id;
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -3,74 +3,51 @@ import java.util.ArrayList;
|
|||||||
|
|
||||||
public class Room
|
public class Room
|
||||||
{
|
{
|
||||||
|
private Integer id;
|
||||||
private String name;
|
private String name;
|
||||||
private String description;
|
private String description;
|
||||||
private boolean gameoverFlag;
|
private boolean gameoverFlag;
|
||||||
ArrayList<Item> items = new ArrayList<>();
|
ArrayList<Integer> items = new ArrayList<>();
|
||||||
ArrayList<Puzzle> puzzles = new ArrayList<>();
|
ArrayList<Integer> puzzles = new ArrayList<>();
|
||||||
public Room(String name)
|
|
||||||
{
|
|
||||||
this.name = name;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Room()
|
public Room()
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Room(String n, String d, boolean g, ArrayList<Item> i, ArrayList<Puzzle> p)
|
public Room(Integer i, String n, String desc, boolean gameover, ArrayList<Integer> itemList, ArrayList<Integer> puzzleList)
|
||||||
{
|
{
|
||||||
|
id = i;
|
||||||
name = n;
|
name = n;
|
||||||
description = d;
|
description = desc;
|
||||||
gameoverFlag = g;
|
gameoverFlag = gameover;
|
||||||
items = i;
|
items = itemList;
|
||||||
puzzles = p;
|
puzzles = puzzleList;
|
||||||
}
|
|
||||||
|
|
||||||
public Item getItem(String s)
|
|
||||||
{
|
|
||||||
for(Item i: items)
|
|
||||||
{
|
|
||||||
if(i.getName().equalsIgnoreCase(s))
|
|
||||||
return i;
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Puzzle getPuzzle(String s)
|
|
||||||
{
|
|
||||||
for(Puzzle p: puzzles)
|
|
||||||
{
|
|
||||||
if(p.getName().equalsIgnoreCase(s))
|
|
||||||
return p;
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getName() {
|
public String getName() {
|
||||||
return name;
|
return name;
|
||||||
}
|
}
|
||||||
public void setName(String name) {
|
|
||||||
this.name = name;
|
|
||||||
}
|
|
||||||
public String getDescription() {
|
public String getDescription() {
|
||||||
return description;
|
return description;
|
||||||
}
|
}
|
||||||
public void setDescription(String description) {
|
|
||||||
this.description = description;
|
|
||||||
}
|
|
||||||
public boolean getGameoverFlag() {
|
public boolean getGameoverFlag() {
|
||||||
return gameoverFlag;
|
return gameoverFlag;
|
||||||
}
|
}
|
||||||
public void setGameoverFlag(boolean gameOverFlag) {
|
|
||||||
gameoverFlag = gameOverFlag;
|
public ArrayList<Integer> getItems() {
|
||||||
}
|
|
||||||
public ArrayList<Item> getItems() {
|
|
||||||
return items;
|
return items;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ArrayList<Puzzle> getPuzzles() {
|
public ArrayList<Integer> getPuzzles() {
|
||||||
return puzzles;
|
return puzzles;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Integer getId()
|
||||||
|
{
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
1
src/java/original.json
Normal file
1
src/java/original.json
Normal file
@ -0,0 +1 @@
|
|||||||
|
{"room":[{"id":0,"name":"Intro","description":"Hier ist das Intro von Kidnappd","gameoverFlag":false,"items":[],"puzzles":[0]},{"id":1,"name":"Keller","description":"der kleine Mondschein, der zuvor den unbekannten Raum schwach beleuchtet hat, leuchtet viel gr��er und viel heller und du erkennst nun den gesamten Raum. Er ist klein und d�ster. überall h�ngen Spinnennetze und Staub sammelt sich am Betonboden. Du erkennst am anderen Ende des Raumes eine T�r","gameoverFlag":false,"items":[0,1],"puzzles":[1,2]}],"puzzle":[{"id":0,"name":"Durchgang","items":[],"description":"Ausgang Intro Level","solved":false,"solvedText":"Hurra, du hast es geschafft","gameOverFlag":false,"nextRoom":null,"dependencyText":null,"dependency":null},{"id":1,"name":"Tuer","items":[1],"description":"Ausgang aus dem Keller","solved":false,"solvedText":"Geschafft! Die Tuer ist offen. Das Intro ist nun beendet","gameOverFlag":true,"nextRoom":null,"dependencyText":null,"dependency":null},{"id":2,"name":"Schloss","items":[0],"description":"Es ist ein altes Schloss aus Metall, dass eine Einkerbung f�r einen Schl�ssel hat","solved":false,"solvedText":"Ja, es hat funktioniert! Mit einem Knacksen geht das Schloss auf und du kannst dich von deiner Beinfessel befreien. ","gameOverFlag":false,"nextRoom":null,"dependencyText":null,"dependency":null}],"item":[{"id":1,"name":"Stahlschluessel","portableFlag":true,"hiddenFlag":false,"description":"Ein Stahlschlüssel"},{"id":0,"name":"Schluessel","portableFlag":true,"hiddenFlag":false,"description":"Der Schlüssel ist kalt und klein. Vielleicht hast du Glück und er passt ins Schloss. Versuche es zu öffnen!"}],"story":["Dein ganzer K�rper schmerzt, du liegst auf Betonboden. Du f�ngst laut an zu husten und Staubklumpen fliegen aus deinem Mund. Du �ffnest langsam und nur schwer die Augen, doch es ist fast gar nichts zu sehen. Die einzige Lichtquelle ist ein kleines Fenster �ber dir, durch die ein schwacher Mondschein f�llt. Es ist also Nachts... Langsam versuchst du dich an die fast komplette Dunkelheit zu gew�hnen und erkennst, dass du dich in einem kleinen dir unbekannten Raum befindest. Dich packt die Angst! Was ist passiert, wo bist du und wie bist du hier gelandet?Du nimmst die Stahlkette in die Hand. Sie ist schwer und verrostet. Mit den H�nden tastest du dich voran bis an die Heizung, wo du ein Schloss an der Kette entdeckst.Das Mondlicht ist nur sehr schwach, um den Raum zu begutachten. Du gehst in die Knie und tastest mit deinem H�nden wild und in Panik am Betonboden. Pl�tzlich st��t du auf einen kleinen Gegenstand, der sich tats�chlich anf�hlt wie ein Schl�ssel. Du solltest ihn aufheben"]}
|
Loading…
x
Reference in New Issue
Block a user