Skip to content
Snippets Groups Projects
Commit a41b51a6 authored by Chris Kearney's avatar Chris Kearney
Browse files

prompt changes, spacing changes on command output.

parent 8bd0d8af
No related branches found
No related tags found
No related merge requests found
...@@ -14,7 +14,8 @@ public class NpcStats { ...@@ -14,7 +14,8 @@ public class NpcStats {
.setMaxHealth(100) .setMaxHealth(100)
.setWeaponRatingMin(5) .setWeaponRatingMin(5)
.setWeaponRatingMax(10) .setWeaponRatingMax(10)
.setNumberweaponOfRolls(1); .setNumberweaponOfRolls(1)
.setExperience(100);
public final static StatsBuilder DRUGGED_PIMP = new StatsBuilder() public final static StatsBuilder DRUGGED_PIMP = new StatsBuilder()
.setStrength(5) .setStrength(5)
...@@ -27,6 +28,7 @@ public class NpcStats { ...@@ -27,6 +28,7 @@ public class NpcStats {
.setMaxHealth(150) .setMaxHealth(150)
.setWeaponRatingMin(5) .setWeaponRatingMin(5)
.setWeaponRatingMax(10) .setWeaponRatingMax(10)
.setNumberweaponOfRolls(1); .setNumberweaponOfRolls(1)
.setExperience(100);
} }
...@@ -3,13 +3,17 @@ package com.comandante.creeper.player; ...@@ -3,13 +3,17 @@ package com.comandante.creeper.player;
import com.comandante.creeper.fight.FightManager; import com.comandante.creeper.fight.FightManager;
import com.comandante.creeper.managers.SessionManager; import com.comandante.creeper.managers.SessionManager;
import com.comandante.creeper.world.Room; import com.comandante.creeper.server.Color;
import com.comandante.creeper.stat.Stats; import com.comandante.creeper.stat.Stats;
import com.comandante.creeper.world.Room;
import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
import org.apache.commons.codec.binary.Base64; import org.apache.commons.codec.binary.Base64;
import org.mapdb.DB; import org.mapdb.DB;
import org.mapdb.HTreeMap; import org.mapdb.HTreeMap;
import org.nocrala.tools.texttablefmt.BorderStyle;
import org.nocrala.tools.texttablefmt.ShownBorders;
import org.nocrala.tools.texttablefmt.Table;
import java.util.Iterator; import java.util.Iterator;
import java.util.Map; import java.util.Map;
...@@ -108,7 +112,39 @@ public class PlayerManager { ...@@ -108,7 +112,39 @@ public class PlayerManager {
public String getLookString(Player player) { public String getLookString(Player player) {
PlayerMetadata playerMetadata = getPlayerMetadata(player.getPlayerId()); PlayerMetadata playerMetadata = getPlayerMetadata(player.getPlayerId());
Stats playerStats = playerMetadata.getStats(); Stats playerStats = playerMetadata.getStats();
return playerStats.toString();
Table t = new Table(2, BorderStyle.UNICODE_BOX,
ShownBorders.HEADER_AND_FOOTER);
t.setColumnWidth(0, 14, 14);
t.setColumnWidth(1, 3, 5);
t.addCell(player.getPlayerName());
t.addCell("");
t.addCell("Strength");
t.addCell(Integer.toString(playerStats.getStrength()));
t.addCell("Willpower");
t.addCell(Integer.toString(playerStats.getWillpower()));
t.addCell("Aim");
t.addCell(Integer.toString(playerStats.getAim()));
t.addCell("Agile");
t.addCell(Integer.toString(playerStats.getAgile()));
t.addCell("Armor");
t.addCell(Integer.toString(playerStats.getArmorRating()));
t.addCell("Mele");
t.addCell(Integer.toString(playerStats.getMeleSkill()));
t.addCell("Health");
t.addCell(Integer.toString(playerStats.getMaxHealth()));
t.addCell(Integer.toString(playerStats.getExperience()));
t.addCell("XP");
return t.render();
} }
public void updatePlayerHealth(String playerId, int amount) { public void updatePlayerHealth(String playerId, int amount) {
...@@ -121,7 +157,7 @@ public class PlayerManager { ...@@ -121,7 +157,7 @@ public class PlayerManager {
} }
public String getPrompt(String playerId, Integer roomId) { public String buildPrompt(String playerId, Integer roomId) {
boolean isFight = FightManager.isActiveFight(sessionManager.getSession(playerId)); boolean isFight = FightManager.isActiveFight(sessionManager.getSession(playerId));
Player player = getPlayer(playerId); Player player = getPlayer(playerId);
PlayerMetadata playerMetadata = getPlayerMetadata(playerId); PlayerMetadata playerMetadata = getPlayerMetadata(playerId);
...@@ -130,14 +166,10 @@ public class PlayerManager { ...@@ -130,14 +166,10 @@ public class PlayerManager {
StringBuilder sb = new StringBuilder() StringBuilder sb = new StringBuilder()
.append("[") .append("[")
.append(player.getPlayerName()) .append(player.getPlayerName())
.append(" health: ") .append("@creeper ")
.append(currentHealth).append("/").append(maxHealth) .append(currentHealth).append("/").append(maxHealth);
.append(" roomId:")
.append(roomId)
.append((" users:"))
.append(getNumberOfLoggedInUsers());
if (isFight) { if (isFight) {
sb.append(" in battle! "); sb.append(Color.RED + " ! " + Color.RESET);
} }
sb.append("] "); sb.append("] ");
return sb.toString(); return sb.toString();
......
...@@ -16,5 +16,6 @@ public class PlayerStats { ...@@ -16,5 +16,6 @@ public class PlayerStats {
.setMaxHealth(100) .setMaxHealth(100)
.setWeaponRatingMin(10) .setWeaponRatingMin(10)
.setWeaponRatingMax(20) .setWeaponRatingMax(20)
.setNumberweaponOfRolls(1); .setNumberweaponOfRolls(1)
.setExperience(0);
} }
...@@ -37,7 +37,7 @@ public class ChannelUtils { ...@@ -37,7 +37,7 @@ public class ChannelUtils {
} }
Player player = playerManager.getPlayer(playerId); Player player = playerManager.getPlayer(playerId);
Room playerCurrentRoom = roomManager.getPlayerCurrentRoom(player).get(); Room playerCurrentRoom = roomManager.getPlayerCurrentRoom(player).get();
player.getChannel().write(playerManager.getPrompt(playerId, playerCurrentRoom.getRoomId())); player.getChannel().write(playerManager.buildPrompt(playerId, playerCurrentRoom.getRoomId()));
} }
public void writeToRoom(String playerId, String message) { public void writeToRoom(String playerId, String message) {
...@@ -48,9 +48,6 @@ public class ChannelUtils { ...@@ -48,9 +48,6 @@ public class ChannelUtils {
Set<String> presentPlayerIds = playerCurrentRoom.getPresentPlayerIds(); Set<String> presentPlayerIds = playerCurrentRoom.getPresentPlayerIds();
for (String id : presentPlayerIds) { for (String id : presentPlayerIds) {
Player presentPlayer = playerManager.getPlayer(id); Player presentPlayer = playerManager.getPlayer(id);
// if (presentPlayer.getPlayerId().equals(playerId)) {
// write(playerId, message);
// } else {
writeNoPrompt(presentPlayer.getPlayerId(), message); writeNoPrompt(presentPlayer.getPlayerId(), message);
} }
} }
...@@ -70,13 +67,12 @@ public class ChannelUtils { ...@@ -70,13 +67,12 @@ public class ChannelUtils {
Player player = playerManager.getPlayer(playerId); Player player = playerManager.getPlayer(playerId);
Room playerCurrentRoom = roomManager.getPlayerCurrentRoom(player).get(); Room playerCurrentRoom = roomManager.getPlayerCurrentRoom(player).get();
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.append("\r\n");
sb.append(sanitze(message)); sb.append(sanitze(message));
if (isAfterSpace) { if (isAfterSpace) {
sb.append(("\r\n")); sb.append(("\r\n"));
} }
if (isPrompt) { if (isPrompt) {
sb.append(playerManager.getPrompt(playerId, playerCurrentRoom.getRoomId())); sb.append(playerManager.buildPrompt(playerId, playerCurrentRoom.getRoomId()));
} }
player.getChannel().write(sb.toString()); player.getChannel().write(sb.toString());
} }
......
...@@ -5,6 +5,8 @@ import com.comandante.creeper.fight.FightResults; ...@@ -5,6 +5,8 @@ import com.comandante.creeper.fight.FightResults;
import com.comandante.creeper.server.command.Command; import com.comandante.creeper.server.command.Command;
import com.google.common.base.Optional; import com.google.common.base.Optional;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.UUID; import java.util.UUID;
import java.util.concurrent.Future; import java.util.concurrent.Future;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
...@@ -17,6 +19,7 @@ public class CreeperSession { ...@@ -17,6 +19,7 @@ public class CreeperSession {
private Optional<Future<FightResults>> activeFight = Optional.absent(); private Optional<Future<FightResults>> activeFight = Optional.absent();
private AtomicBoolean isAbleToDoAbility = new AtomicBoolean(false); private AtomicBoolean isAbleToDoAbility = new AtomicBoolean(false);
private Optional<CreeperEntry<UUID, Command>> grabMultiLineInput = Optional.absent(); private Optional<CreeperEntry<UUID, Command>> grabMultiLineInput = Optional.absent();
private final long sessionCreationTimestamp = System.currentTimeMillis();
State state; State state;
...@@ -29,6 +32,14 @@ public class CreeperSession { ...@@ -29,6 +32,14 @@ public class CreeperSession {
authed authed
} }
public long getSessionCreationTimestamp() {
return sessionCreationTimestamp;
}
public String getPrettyDate() {
return new SimpleDateFormat("d MMM yyyy, hh:mm aaa").format(new Date(getSessionCreationTimestamp()));
}
public Optional<Future<FightResults>> getActiveFight() { public Optional<Future<FightResults>> getActiveFight() {
return activeFight; return activeFight;
} }
......
...@@ -10,7 +10,6 @@ import org.nocrala.tools.texttablefmt.ShownBorders; ...@@ -10,7 +10,6 @@ import org.nocrala.tools.texttablefmt.ShownBorders;
import org.nocrala.tools.texttablefmt.Table; import org.nocrala.tools.texttablefmt.Table;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
...@@ -26,19 +25,20 @@ public class WhoCommand extends Command { ...@@ -26,19 +25,20 @@ public class WhoCommand extends Command {
@Override @Override
public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception { public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception {
try { try {
CellStyle numberStyle = new CellStyle(CellStyle.HorizontalAlign.right); Table t = new Table(3, BorderStyle.UNICODE_BOX,
ShownBorders.HEADER_AND_FIRST_COLLUMN);
Table t = new Table(3, BorderStyle.UNICODE_BOX_DOUBLE_BORDER,
ShownBorders.SURROUND_HEADER_FOOTER_AND_COLUMNS);
t.setColumnWidth(0, 8, 14); t.setColumnWidth(0, 8, 14);
t.setColumnWidth(1, 7, 16); t.setColumnWidth(1, 14, 16);
t.setColumnWidth(2, 9, 16); t.setColumnWidth(2, 26, 26);
t.addCell("player");
t.addCell("ip address");
t.addCell("logged in since");
Set<Player> allPlayers = getGameManager().getAllPlayers(); Set<Player> allPlayers = getGameManager().getAllPlayers();
for (Player allPlayer : allPlayers) { for (Player allPlayer : allPlayers) {
t.addCell(allPlayer.getPlayerName()); t.addCell(allPlayer.getPlayerName());
t.addCell(allPlayer.getChannel().getRemoteAddress().toString()); t.addCell(allPlayer.getChannel().getRemoteAddress().toString().substring(1).split(":")[0]);
t.addCell(new Date().toString()); t.addCell(extractCreeperSession(e.getChannel()).getPrettyDate());
} }
getGameManager().getChannelUtils().write(getPlayerId(extractCreeperSession(e.getChannel())), t.render()); getGameManager().getChannelUtils().write(getPlayerId(extractCreeperSession(e.getChannel())), t.render());
} finally { } finally {
...@@ -49,11 +49,11 @@ public class WhoCommand extends Command { ...@@ -49,11 +49,11 @@ public class WhoCommand extends Command {
public static void main(String[] args) { public static void main(String[] args) {
CellStyle numberStyle = new CellStyle(CellStyle.HorizontalAlign.right); CellStyle numberStyle = new CellStyle(CellStyle.HorizontalAlign.right);
Table t = new Table(3, BorderStyle.DESIGN_DIM, Table t = new Table(3, BorderStyle.UNICODE_BOX,
ShownBorders.HEADER_ONLY); ShownBorders.HEADER_ONLY);
t.setColumnWidth(0, 22, 28); t.setColumnWidth(0, 22, 28);
t.setColumnWidth(1, 12, 22); t.setColumnWidth(1, 15, 22);
t.setColumnWidth(2, 9, 16); t.setColumnWidth(2, 9, 16);
t.addCell("Chrisadfasdfas"); t.addCell("Chrisadfasdfas");
...@@ -71,4 +71,5 @@ public class WhoCommand extends Command { ...@@ -71,4 +71,5 @@ public class WhoCommand extends Command {
System.out.println("\n\n\n\n" + t.render()); System.out.println("\n\n\n\n" + t.render());
} }
} }
...@@ -14,6 +14,15 @@ public class Stats implements Serializable { ...@@ -14,6 +14,15 @@ public class Stats implements Serializable {
private int weaponRatingMax; private int weaponRatingMax;
private int weaponRatingMin; private int weaponRatingMin;
private int numberweaponOfRolls; private int numberweaponOfRolls;
private int experience;
public int getExperience() {
return experience;
}
public void setExperience(int experience) {
this.experience = experience;
}
public int getStrength() { public int getStrength() {
return strength; return strength;
...@@ -113,7 +122,8 @@ public class Stats implements Serializable { ...@@ -113,7 +122,8 @@ public class Stats implements Serializable {
int maxHealth, int maxHealth,
int weaponRatingMax, int weaponRatingMax,
int weaponRatingMin, int weaponRatingMin,
int numberweaponOfRolls) { int numberweaponOfRolls,
int experience) {
this.strength = strength; this.strength = strength;
this.willpower = willpower; this.willpower = willpower;
this.aim = aim; this.aim = aim;
...@@ -125,6 +135,7 @@ public class Stats implements Serializable { ...@@ -125,6 +135,7 @@ public class Stats implements Serializable {
this.weaponRatingMax = weaponRatingMax; this.weaponRatingMax = weaponRatingMax;
this.weaponRatingMin = weaponRatingMin; this.weaponRatingMin = weaponRatingMin;
this.numberweaponOfRolls = numberweaponOfRolls; this.numberweaponOfRolls = numberweaponOfRolls;
this.experience = experience;
} }
@Override @Override
......
...@@ -12,6 +12,7 @@ public class StatsBuilder { ...@@ -12,6 +12,7 @@ public class StatsBuilder {
private int weaponRatingMax; private int weaponRatingMax;
private int weaponRatingMin; private int weaponRatingMin;
private int numberweaponOfRolls; private int numberweaponOfRolls;
private int experience;
public StatsBuilder setStrength(int strength) { public StatsBuilder setStrength(int strength) {
this.strength = strength; this.strength = strength;
...@@ -68,7 +69,12 @@ public class StatsBuilder { ...@@ -68,7 +69,12 @@ public class StatsBuilder {
return this; return this;
} }
public StatsBuilder setExperience(int experience) {
this.experience = experience;
return this;
}
public Stats createStats() { public Stats createStats() {
return new Stats(strength, willpower, aim, agile, armorRating, meleSkill, currentHealth, maxHealth, weaponRatingMax, weaponRatingMin, numberweaponOfRolls); return new Stats(strength, willpower, aim, agile, armorRating, meleSkill, currentHealth, maxHealth, weaponRatingMax, weaponRatingMin, numberweaponOfRolls, experience);
} }
} }
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment