Istiak Khan
Istiak Khan

Reputation: 183

Java Game - Pick up Item and Look around Function

I have been creating a java text game but I am stuck trying to figure out on how to implement the last 2 methods. I want it to print out the items in the room and the name of the npc thats in the room (A sort of a Look function). I am not sure on how to go on about it. Any help would be appriciated. enter image description here

Room[] place = new Room[]{station, UC, Ollies, lounge, palace, AT301};
Sword sword = new Sword();
Thing heal = new HealthPotion();
Thing armour = new Armour();
Thing trap = new Trap();

and for the NPC (Mike, Jake, Evil, Carl)

public abstract class Player{

//abstract attributes
private String name;
private int currentHealth;
private int maxHealth;
private int damage;
private Room currentRoom;
private int stack;
private int effect;


//Constructor for player
public Player(String name, int currentHealth, int maxHealth, int damage, int effect, int stack){
    this.name = name;
    this.currentHealth = currentHealth;
    this.maxHealth = maxHealth;
    this.damage = damage;
    this.effect = effect;
    this.stack = stack;
}

//getters
public String getName(){ return name;}
public int  getCurrentHealth(){ return currentHealth;}
public int getMaxHealth(){ return maxHealth;}
public int getDamage(){ return damage;}
public Room getCurrentRoom(){ return currentRoom;}
public int getEffect(){ return effect;}
public int getStack(){ return stack;}


//setters
public void setCurrentHealth(int currentHealth){this.currentHealth = currentHealth;}
public void setMaxHealth(int maxHealth){this.maxHealth = maxHealth;}
public void setDamage(int damage){ this.damage = damage;}
public void setCurrentRoom(Room room){this.currentRoom = room;}
public void setEffect(int effect){ this.effect = effect;}
public void setStack(int stack){ this.stack = stack;}
public void enter(Room room){ this.currentRoom = room;}

//abstract method because each player has a different attack;


public void takeDamage(int damage){ setCurrentHealth(this.currentHealth-damage);}

public boolean isDead(){
    if(this.currentHealth<=0){ return true;}
    return false;
}

}

I was able to make everything functional except the Look function for the player. I can't figure out how to go on about it.

Upvotes: 1

Views: 1046

Answers (2)

Tiago_nes
Tiago_nes

Reputation: 933

I would recommend you first of all creating a class Npc with attribute name and add it to the room.

Upvotes: 0

Pmsmm
Pmsmm

Reputation: 440

Room is a vector of items right ? If so you can do a function on the player class that when it is called it goes to the vector of the room you're in and simply print out the items that are in the vector, something like this:

String lookAround(){
    ArrayList temp = (ArrayList)getCurrentRoom(); //returns the array containing the items in the current room
    for(Thing i : temp){
        i.getDescription(); //Method present in all classes that come from Thing that prints out the name of the item and/or its caracheteristics
    }
}

In the array of the room you should try to include the name of all players in the room including yourself so that you can print out everyone present in the room

Hope this helps

Upvotes: 1

Related Questions