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

View File

@@ -63,3 +63,6 @@ riddler, friend
clock, item
keyboard, 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;
}
}