/** * Saves and handles all of the things going on in the game. * * Joe Rivard * 4/13/03 */ import java.util.*; import java.io.*; public class Adventure implements Serializable { ArrayList items; //Items you have with you ArrayList friends; //Friends you have with you Stack stack; //Rooms you entered String s; //items you have int num; //amount of rooms entered AdvancedRoom room; //Rooms in the house AdvancedRoom kitchen, bathroom, sistersRoom, parentsBedRoom, poolRoom, livingRoom, laundryRoom, basement, backyard; Items ladder, beer, pants; //Items in the house Friends miller, brian, christina, bethann, jennelle; //Friends in the house int numOfRooms; //amount of rooms entered /** * constructor for Adventure */ public Adventure() { items = new ArrayList(); friends = new ArrayList(); stack = new Stack(); stack.push(room); ladder = new Ladder(); pants = new Pants(); beer = new Beer(); brian = new Brian(); jennelle = new Jennelle(); bethann = new Bethann(); miller = new Miller(); christina = new Christina(); kitchen = new Kitchen(); kitchen.addItem(beer); bathroom = new BathRoom(); bathroom.addFriend(bethann); sistersRoom = new SistersRoom(); sistersRoom.addFriend(brian); parentsBedRoom = new ParentsBedRoom(); parentsBedRoom.addFriend(miller); poolRoom = new PoolRoom(); poolRoom.addFriend(jennelle); livingRoom = new LivingRoom(); livingRoom.addFriend(christina); laundryRoom = new LaundryRoom(); laundryRoom.addItem(ladder); basement = new Basement(); basement.addItem(pants); backyard = new BackYard(); room = livingRoom; numOfRooms = 0; } /** * gets the names of items/friends you have in the room * @return String , names of friends and items you have in the room */ public String getRoomNames() { String s = ""; s = "Friends in the Room are:" + "\n" + room.getNames() + "Items in the Room are:" + "\n" + room.getItemNames() + "\n"; return s; } /** * changes room your in to the room in the direction you are moving * @param String , the direction * @return AdvancedRoom , next room */ public AdvancedRoom move(String dir) { AdvancedRoom r = null; if(room.next(dir).equals("livingroom")) r = livingRoom; else if(room.next(dir).equals("sistersroom")) r = sistersRoom; else if(room.next(dir).equals("kitchen")) r = kitchen; else if(room.next(dir).equals("laundryroom")) r = laundryRoom; else if(room.next(dir).equals("parentsbedroom")) r = parentsBedRoom; else if(room.next(dir).equals("poolroom")) r = poolRoom; else if(room.next(dir).equals("basement")) r = basement; else if(room.next(dir).equals("bathroom")) r = bathroom; else if(room.next(dir).equals("backyard")) { if(room.getFriend(christina) == true && room.getItem(beer) == true) if(friends.size() == 4 && items.size() == 2) r = backyard; else r = null; else r = null; } else r = null; return r; } /** * adds an item to what items you are carrying * @param String , name of item */ public void addItem(String add) { if(add.equals("beer")) { items.add(beer); room.removeItem(beer); } else if(add.equals("ladder")) { items.add(ladder); room.removeItem(ladder); } else if(add.equals("pants")) { items.add(pants); room.removeItem(pants); } } /** * adds a friend to the friends you are carrying * @param String , name of friend */ public void addFriend(String add) { if(add.equals("miller")) { friends.add(miller); room.removeFriend(miller); } else if(add.equals("christina")) { friends.add(christina); room.removeFriend(christina); } else if(add.equals("brian")) { friends.add(brian); room.removeFriend(brian); } else if(add.equals("jennelle")) { friends.add(jennelle); room.removeFriend(jennelle); } else if(add.equals("bethann")) { friends.add(bethann); room.removeFriend(bethann); } } /** * adds room to the stack of rooms * @param AdvancedRoom , the last room you were in */ public void addRoom(AdvancedRoom r) { numOfRooms++; room = r; stack.push(r); } /** * gets the number of rooms youve been in * @return int , number of rooms you were in */ public int getNumOfRooms() { return numOfRooms; } /** * returns the room you are currently in * @return AdvancedRoom, the room you are in */ public AdvancedRoom getRoom() { return room; } /** * returns what to do with each item/friend * @param String , the item/friend you want to know about */ public String getUse(String thing) { String s = ""; if(thing.equals("beer")) s = beer.getUse(); else if(thing.equals("pants")) s = pants.getUse(); else if(thing.equals("ladder")) s = ladder.getUse(); else if(thing.equals("bethann")) s = bethann.getUse(); else if(thing.equals("brian")) s = brian.getUse(); else if(thing.equals("jennelle")) s = jennelle.getUse(); else if(thing.equals("miller")) s = miller.getUse(); else if(thing.equals("christina")) s = christina.getUse(); return s; } /** * gets the names of items/friends you have * @return String , names of friends and items you have */ public String getGrabbed() { s = "Items/Friends picked up:" + "\n"; Items it; Friends fr; for(int i = 0; i < items.size(); i++) { it = (Items)items.get(i); s = s + it.getDescription() + "\n"; } for(int i = 0; i < friends.size(); i++) { fr = (Friends)friends.get(i); s = s + fr.getName() + "\n"; } return s; } /** * gets a specified item * @param String , name of item * @return Items , item you want */ public Items getItem(String item) { Items drop = null; if(item.equals("ladder")) { int i = items.indexOf(ladder); if(i > -1) drop = (Items)items.get(i); } else if(item.equals("beer")) { int i = items.indexOf(beer); if(i > -1) drop = (Items)items.get(i); } else if(item.equals("pants")) { int i = items.indexOf(pants); if(i > -1) drop = (Items)items.get(i); } return drop; } /** * gets a specified friend * @param String , name of friend * @return Friends , friend you want */ public Friends getFriend(String f) { Friends drop = null; if(f.equals("miller")) { int i = friends.indexOf(miller); if(i > -1) drop = (Friends)friends.get(i); } else if(f.equals("christina")) { int i = friends.indexOf(christina); if(i > -1) drop = (Friends)friends.get(i); } else if(f.equals("bethann")) { int i = friends.indexOf(bethann); if(i > -1) drop = (Friends)friends.get(i); } else if(f.equals("brian")) { int i = friends.indexOf(brian); if(i > -1) drop = (Friends)friends.get(i); } else if(f.equals("jennelle")) { int i = friends.indexOf(jennelle); if(i > -1) drop = (Friends)friends.get(i); } return drop; } /** * drops an item you have into the room you are in * @param String , name of item */ public void dropItem(String item) { if(item.equals("beer")) { int v = items.indexOf(beer); if(v >= 0) { items.remove(v); room.addItem(beer); } } else if(item.equals("ladder")) { int v = items.indexOf(ladder); if(v >= 0) { items.remove(v); room.addItem(ladder); } } else if(item.equals("pants")) { int v = items.indexOf(ladder); if(v >= 0) { items.remove(v); room.addItem(pants); } } } /** * drops an friend you have into the room you are in * @param String , name of friend */ public void dropFriend(String friend) { if(friend.equals("bethann")) { int v = friends.indexOf(bethann); if(v >= 0) { friends.remove(v); room.addFriend(bethann); } } else if(friend.equals("brian")) { int v = friends.indexOf(brian); if(v >= 0) { friends.remove(v); room.addFriend(brian); } } else if(friend.equals("jennelle")) { int v = friends.indexOf(jennelle); if(v >= 0) friends.remove(v); } else if(friend.equals("miller")) { int v = friends.indexOf(miller); if(v >= 0) { friends.remove(v); room.addFriend(miller); } } else if(friend.equals("christina")) { int v = friends.indexOf(christina); if(v >= 0) { friends.remove(v); room.addFriend(christina); } } } /** * undoes an action of going into a room * @return AdvancedRoom , the previous room */ public AdvancedRoom undo() { if(stack.empty() == false) { AdvancedRoom popped = (AdvancedRoom)stack.pop(); room = popped; numOfRooms--; return popped; } return room; } }