diff --git a/data/enemies.dat b/data/enemies.dat
index 20db5aa..668d236 100644
--- a/data/enemies.dat
+++ b/data/enemies.dat
@@ -1,4 +1,10 @@
Enemy Name: Henry Pellatt
Description: The owner of the Castle
-Starting Room: Circle Room
-Damage Given: 25
\ No newline at end of file
+Starting Room: Apple Hallway
+Damage Given: 25
+Loot: Crowbar
+Enemy Name: Lady Pellatt
+Description: The wife to the owner of the Castle
+Starting Room: Lady Pellatt's Bedroom
+Damage Given: 25
+Loot: Crowbar
\ No newline at end of file
diff --git a/data/rooms.dat b/data/rooms.dat
index ddd92e6..be4ecab 100644
--- a/data/rooms.dat
+++ b/data/rooms.dat
@@ -146,7 +146,7 @@ Room name: Evergreen Bedroom
Room Description: Oh look! Another bedroom! How exciting! This one's walls are even green this time.
Cool!
Locked: false
Boarded: false
-Items:
+Items:Sword
Riddler:
Exit Rooms: N-Silver Stairs (2nd Floor), W-Aspen Bedroom
diff --git a/data/synonyms.dat b/data/synonyms.dat
index a9b1aa8..0480e44 100644
--- a/data/synonyms.dat
+++ b/data/synonyms.dat
@@ -46,10 +46,12 @@ absorb, eat
drink, eat
i, inventory
henry, henrypellatt
-pellatt, henrypellatt
+lady, ladypellatt
shaving, shavingcream
cream, shavingcream
water, waterbottle
bottle, waterbottle
warm, warmbread
-bread, warmbread
\ No newline at end of file
+bread, warmbread
+battering, batteringram
+ram, batteringram
\ No newline at end of file
diff --git a/data/words.dat b/data/words.dat
index be128e2..08032e7 100644
--- a/data/words.dat
+++ b/data/words.dat
@@ -62,4 +62,7 @@ henrypellatt, enemy
riddler, friend
clock, item
keyboard, item
-lightbulb, item
\ No newline at end of file
+lightbulb, item
+craft, verb
+batteringram, item
+ladypellatt, enemy
\ No newline at end of file
diff --git a/src/com/bayviewglen/zork/Entities/Enemies/Enemy.java b/src/com/bayviewglen/zork/Entities/Enemies/Enemy.java
index 1128342..bf5e804 100644
--- a/src/com/bayviewglen/zork/Entities/Enemies/Enemy.java
+++ b/src/com/bayviewglen/zork/Entities/Enemies/Enemy.java
@@ -7,6 +7,7 @@ public class Enemy extends Entity{
private String name;
private String description;
private String room;
+ private String loot;
private boolean blinded;
public Enemy(){
@@ -54,4 +55,10 @@ public class Enemy extends Entity{
public void setBlinded(boolean blinded) {
this.blinded = blinded;
}
+ public void setLoot(String loot) {
+ this.loot = loot;
+ }
+ public String getLoot() {
+ return loot;
+ }
}
diff --git a/src/com/bayviewglen/zork/Game.java b/src/com/bayviewglen/zork/Game.java
index 2e79bcc..8305e06 100644
--- a/src/com/bayviewglen/zork/Game.java
+++ b/src/com/bayviewglen/zork/Game.java
@@ -161,7 +161,6 @@ class Game {
}
} catch (Exception ex) {
}
- masterEnemyMap.put(e, e.getRoom());
enemyScanner.close();
}
@@ -277,15 +276,18 @@ class Game {
if (command.hasDirection() && hasLockPick) {
Room nextRoom = currentRoom.nextRoom(command.getDirection());
try {
- if (nextRoom.getLocked()) {
- nextRoom.setLocked(false);
- player.removeFromInventory(new Lockpick());
- System.out.println(
- "After a little bit of picking, a click is heard and the door opens slightly!");
- } else {
- System.out.println("That door is already unlocked!");
- }
- } catch (Exception e) {
+if(nextRoom.getLocked()) {
+ nextRoom.setLocked(false);
+ player.removeFromInventory(new Lockpick());
+ System.out.println("After a little bit of picking, a click is heard and the door opens slightly!");
+ if(!nextRoom.getBoarded())
+ break;
+ }else{
+ System.out.println("That door is already unlocked!");
+ if(!nextRoom.getBoarded())
+ break;
+ }
+ }catch(Exception e) {
System.out.println("There is no door there!");
}
} else if (!command.hasDirection()) {
@@ -317,7 +319,7 @@ class Game {
} else if (!command.hasDirection()) {
} else {
-
+ System.out.println("What do you want to unboard the door with?");
}
break;
case "go":
@@ -563,6 +565,51 @@ class Game {
}
}
break;
+ case "craft":
+ if(command.hasItem()) {
+ Class> clazz;
+ CraftableItem object;
+ try {
+ clazz = Class.forName("com.bayviewglen.zork.Items." + command.getItem().substring(0, 1).toUpperCase().trim() + command.getItem().substring(1).trim());
+ Constructor> ctor = clazz.getConstructor();
+ object = (CraftableItem) ctor.newInstance();
+ if(object.isCraftable()) {
+ boolean playerHasItems = true;
+ boolean hasItem = false;
+ for(Item i : object.getMaterials()) {
+ hasItem = false;
+ for(Item pi : player.getInventory()) {
+ if(i.equals(pi)) {
+ hasItem = true;
+ }
+ }
+ if(playerHasItems) {
+ playerHasItems = hasItem;
+ }
+ }
+ if(playerHasItems) {
+ if(player.addToInventory(object)) {
+ for(Item i : object.getMaterials()) {
+ player.removeFromInventory(i);
+ }
+ System.out.println("You have crafted a " + object.getName());
+ }else {
+ System.out.println("You cannot carry any more!");
+ }
+ }else {
+ System.out.println("You do not have the nessecary parts to make a " + object.getName() + "!");
+ }
+
+ }else {
+ System.out.println("You cannot make that item!");
+ }
+ }catch(Exception e) {
+ System.out.println("You cannot make that item!");
+ }
+ }else {
+ System.out.println("Craft what?");
+ }
+ break;
default:
return false;
}
diff --git a/src/com/bayviewglen/zork/Items/Batteringram.java b/src/com/bayviewglen/zork/Items/Batteringram.java
new file mode 100644
index 0000000..be8392f
--- /dev/null
+++ b/src/com/bayviewglen/zork/Items/Batteringram.java
@@ -0,0 +1,10 @@
+package com.bayviewglen.zork.Items;
+
+public class Batteringram extends CraftableItem{
+ public Batteringram() {
+ super(99, "Battering Ram", "Description", false, 1, 1);
+ super.addMaterial(new Base());
+ super.addMaterial(new Cylinder());
+ super.addMaterial(new Point());
+ }
+}
\ No newline at end of file
diff --git a/src/com/bayviewglen/zork/Items/CraftableItem.java b/src/com/bayviewglen/zork/Items/CraftableItem.java
new file mode 100644
index 0000000..5fffe2e
--- /dev/null
+++ b/src/com/bayviewglen/zork/Items/CraftableItem.java
@@ -0,0 +1,20 @@
+package com.bayviewglen.zork.Items;
+
+import java.util.ArrayList;
+
+public class CraftableItem extends Item{
+ private ArrayList- materials;
+ public CraftableItem(int id, String name, String description, boolean isConsumable, int health, int weight) {
+ super(id, name, description, isConsumable, health, weight);
+ materials = new ArrayList
- ();
+ }
+ public boolean isCraftable() {
+ return true;
+ }
+ public void addMaterial(Item item) {
+ materials.add(item);
+ }
+ public ArrayList
- getMaterials(){
+ return materials;
+ }
+}
diff --git a/src/com/bayviewglen/zork/Items/Item.java b/src/com/bayviewglen/zork/Items/Item.java
index 5dfbd20..7e922bb 100644
--- a/src/com/bayviewglen/zork/Items/Item.java
+++ b/src/com/bayviewglen/zork/Items/Item.java
@@ -67,5 +67,7 @@ public class Item {
public int getDamage() {
return this.damage;
}
-
+ public boolean isCraftable() {
+ return false;
+ }
}