Conflicts:
	src/com/bayviewglen/zork/Game.java
This commit is contained in:
Luca Carnegie
2019-05-31 20:20:28 -04:00
9 changed files with 115 additions and 18 deletions

View File

@@ -1,4 +1,10 @@
Enemy Name: Henry Pellatt
Description: The owner of the Castle
Starting Room: Circle Room
Damage Given: 25
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

View File

@@ -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.<br>Cool!
Locked: false
Boarded: false
Items:
Items:Sword
Riddler:
Exit Rooms: N-Silver Stairs (2nd Floor), W-Aspen Bedroom

View File

@@ -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
bread, warmbread
battering, batteringram
ram, batteringram

View File

@@ -62,4 +62,7 @@ henrypellatt, enemy
riddler, friend
clock, item
keyboard, item
lightbulb, item
lightbulb, item
craft, verb
batteringram, item
ladypellatt, enemy

View File

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

View File

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

View File

@@ -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());
}
}

View File

@@ -0,0 +1,20 @@
package com.bayviewglen.zork.Items;
import java.util.ArrayList;
public class CraftableItem extends Item{
private ArrayList<Item> 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<Item>();
}
public boolean isCraftable() {
return true;
}
public void addMaterial(Item item) {
materials.add(item);
}
public ArrayList<Item> getMaterials(){
return materials;
}
}

View File

@@ -67,5 +67,7 @@ public class Item {
public int getDamage() {
return this.damage;
}
public boolean isCraftable() {
return false;
}
}