take and inventory command

This commit is contained in:
jslightham
2019-05-16 22:40:55 -04:00
parent 4506c1e17f
commit 2781520ba5
5 changed files with 66 additions and 29 deletions

View File

@@ -14,20 +14,10 @@ public class Player extends Entity{
super();
}
public boolean addToInventory(String item){
Class<?> clazz;
Item object;
try {
clazz = Class.forName("com.bayviewglen.zork.Items." + item.trim());
Constructor<?> ctor = clazz.getConstructor();
object = (Item) ctor.newInstance();
if(currentInventoryWeight + object.getWeight() < INVENTORY_CAPACITY){
inventory.add(object);
return true;
}
} catch (Exception e) {
return false;
public boolean addToInventory(Item item){
if(currentInventoryWeight + item.getWeight() < INVENTORY_CAPACITY){
inventory.add(item);
return true;
}
return false;
}
@@ -36,5 +26,9 @@ public class Player extends Entity{
inventory.remove(item);
}
public ArrayList<Item> getInventory() {
return inventory;
}
}

View File

@@ -175,12 +175,24 @@ class Game {
break;
case "take":
if(command.hasItem()) {
if(player.addToInventory(command.getItem())) {
System.out.println("Taken");
}else {
System.out.println("You cannot carry any more!");
Class<?> clazz;
Item 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 = (Item) ctor.newInstance();
if(!currentRoom.hasItem(object)) {
System.out.println("This room has no " + command.getItem() + "!");
}
else if(player.addToInventory(object)) {
currentRoom.removeItem(object);
System.out.println("Taken");
}else {
System.out.println("You cannot carry any more!");
}
} catch(Exception e) {
}
}else {
System.out.println("Take what?");
}
@@ -188,18 +200,39 @@ class Game {
break;
case "look":
System.out.print("Items: ");
boolean hasItems = false;
String items = "";
for(Item i : currentRoom.getItems()) {
System.out.print(i.getName() + " ");
hasItems = true;
items += i.getName() + " ";
}
System.out.println();
/*
for (Item i : itemsInRooms.keySet()) {
System.out.print(i.getName() + " ");
if(hasItems) {
System.out.println(currentRoom.longDescription());
System.out.print("Items: ");
System.out.print(items);
System.out.println();
}else {
System.out.println(currentRoom.longDescription());
System.out.println("There are no items.");
}
System.out.println();
*/
break;
case "inventory": case "i":
boolean hasPlayerItems = false;
String itemsP = "";
for(Item i : player.getInventory()) {
hasPlayerItems = true;
itemsP += i.getName() + " ";
}
if(hasPlayerItems) {
System.out.print("Inventory: ");
System.out.print(itemsP);
System.out.println();
}else {
System.out.println("You are empty handed.");
}
break;
default:
return false;
}

View File

@@ -187,4 +187,12 @@ class Room {
public void setDescription(String description) {
this.description = description;
}
public boolean hasItem(Item item) {
boolean hasItem = false;
for(Item i : items) {
if(i.equals(item))
hasItem = true;
}
return hasItem;
}
}