package net.sourceforge.pain.logic.fn;
import net.sourceforge.pain.data.type.*;
import net.sourceforge.pain.network.console.*;
public final class PromptFn {
public static void printPrompt(Console console) {
Player p = console.getPlayer();
Creature creature = (Creature) p.getRole(Creature.class);
Mobile mobile = (Mobile) p.getRole(Mobile.class);
MessageOutFn.out(console, "\n");
Room exits = (Room) p.getLocation().getRole(Room.class);
StringBuffer promptBuf = new StringBuffer();
if (creature != null) {
promptBuf.append(creature.getHitPoints() + "/" + creature.getMaxLifePoints() + "hp ");
}
if (mobile != null) {
promptBuf.append(mobile.getMoves() + "/" + mobile.getMaxMoves() + "mv ");
}
if (creature != null || mobile != null) {
promptBuf.append(": {c");
} else {
promptBuf.append("{c");
}
boolean exitsFound = false;
if (exits != null) {
if (exits.getExit(Room.DIR_NORTH) != null) {
promptBuf.append("N");
exitsFound = true;
}
if (exits.getExit(Room.DIR_EAST) != null) {
promptBuf.append("E");
exitsFound = true;
}
if (exits.getExit(Room.DIR_SOUTH) != null) {
promptBuf.append("S");
exitsFound = true;
}
if (exits.getExit(Room.DIR_WEST) != null) {
promptBuf.append("W");
exitsFound = true;
}
if (exits.getExit(Room.DIR_UP) != null) {
promptBuf.append("U");
exitsFound = true;
}
if (exits.getExit(Room.DIR_DOWN) != null) {
promptBuf.append("D");
exitsFound = true;
}
}
if (!exitsFound) {
promptBuf.append("*");
}
promptBuf.append(" {x# ");
MessageOutFn.out(console, promptBuf.toString());
}
}