take and inventory command
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user