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

text table formatting and a fight pause for ability

parent 0dd92091
No related branches found
No related tags found
No related merge requests found
...@@ -43,6 +43,11 @@ ...@@ -43,6 +43,11 @@
<artifactId>gson</artifactId> <artifactId>gson</artifactId>
<version>2.2.4</version> <version>2.2.4</version>
</dependency> </dependency>
<dependency>
<groupId>org.ow2.sirocco</groupId>
<artifactId>sirocco-text-table-formatter</artifactId>
<version>1.0</version>
</dependency>
</dependencies> </dependencies>
<build> <build>
......
...@@ -32,6 +32,14 @@ public class FightRun implements Callable<FightResults> { ...@@ -32,6 +32,14 @@ public class FightRun implements Callable<FightResults> {
break; break;
} }
gameManager.getFightManager().fightTurn(playerStats, npcStats, 3, player, npc); gameManager.getFightManager().fightTurn(playerStats, npcStats, 3, player, npc);
gameManager.getChannelUtils().write(player.getPlayerId(), "Use an ability!");
gameManager.getPlayerManager().getSessionManager().getSession(player.getPlayerId()).setIsAbleToDoAbility(true);
try {
Thread.sleep(2200);
} catch (InterruptedException e) {
e.printStackTrace();
}
gameManager.getPlayerManager().getSessionManager().getSession(player.getPlayerId()).setIsAbleToDoAbility(false);
} }
gameManager.getPlayerManager().savePlayerMetadata(playerMetadata); gameManager.getPlayerManager().savePlayerMetadata(playerMetadata);
......
...@@ -4,6 +4,7 @@ import com.comandante.creeper.fight.FightResults; ...@@ -4,6 +4,7 @@ import com.comandante.creeper.fight.FightResults;
import com.google.common.base.Optional; import com.google.common.base.Optional;
import java.util.concurrent.Future; import java.util.concurrent.Future;
import java.util.concurrent.atomic.AtomicBoolean;
public class CreeperSession { public class CreeperSession {
...@@ -11,6 +12,7 @@ public class CreeperSession { ...@@ -11,6 +12,7 @@ public class CreeperSession {
private Optional<String> password = Optional.absent(); private Optional<String> password = Optional.absent();
private boolean isAuthed = false; private boolean isAuthed = false;
private Optional<Future<FightResults>> activeFight = Optional.absent(); private Optional<Future<FightResults>> activeFight = Optional.absent();
private AtomicBoolean isAbleToDoAbility = new AtomicBoolean(false);
State state; State state;
...@@ -62,4 +64,12 @@ public class CreeperSession { ...@@ -62,4 +64,12 @@ public class CreeperSession {
public State getState() { public State getState() {
return state; return state;
} }
public void setIsAbleToDoAbility(boolean b) {
this.isAbleToDoAbility.set(b);
}
public boolean IsAbleToDoAbility() {
return this.isAbleToDoAbility.get();
}
} }
...@@ -4,14 +4,16 @@ import com.comandante.creeper.managers.GameManager; ...@@ -4,14 +4,16 @@ import com.comandante.creeper.managers.GameManager;
import com.comandante.creeper.player.Player; import com.comandante.creeper.player.Player;
import org.jboss.netty.channel.ChannelHandlerContext; import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.channel.MessageEvent; import org.jboss.netty.channel.MessageEvent;
import org.nocrala.tools.texttablefmt.BorderStyle;
import org.nocrala.tools.texttablefmt.CellStyle;
import org.nocrala.tools.texttablefmt.ShownBorders;
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;
import static com.comandante.creeper.server.Color.CYAN;
import static com.comandante.creeper.server.Color.RESET;
public class WhoCommand extends Command { public class WhoCommand extends Command {
final static List<String> validTriggers = Arrays.asList("who"); final static List<String> validTriggers = Arrays.asList("who");
...@@ -24,21 +26,49 @@ public class WhoCommand extends Command { ...@@ -24,21 +26,49 @@ 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_DOUBLE_BORDER,
ShownBorders.SURROUND_HEADER_FOOTER_AND_COLUMNS);
t.setColumnWidth(0, 8, 14);
t.setColumnWidth(1, 7, 16);
t.setColumnWidth(2, 9, 16);
Set<Player> allPlayers = getGameManager().getAllPlayers(); Set<Player> allPlayers = getGameManager().getAllPlayers();
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append(CYAN);
stringBuilder.append("----------------------\r\n");
stringBuilder.append("|--active users------|\r\n");
stringBuilder.append("----------------------\r\n");
for (Player allPlayer : allPlayers) { for (Player allPlayer : allPlayers) {
stringBuilder.append(allPlayer.getPlayerName()); t.addCell(allPlayer.getPlayerName());
stringBuilder.append(" - ").append(allPlayer.getChannel().getRemoteAddress().toString()); t.addCell(allPlayer.getChannel().getRemoteAddress().toString());
stringBuilder.append("\r\n"); t.addCell(new Date().toString());
} }
stringBuilder.append(RESET); getGameManager().getChannelUtils().write(getPlayerId(getCreeperSession(e.getChannel())), t.render());
getGameManager().getChannelUtils().write(getPlayerId(getCreeperSession(e.getChannel())), stringBuilder.toString());
} finally { } finally {
super.messageReceived(ctx, e); super.messageReceived(ctx, e);
} }
} }
public static void main(String[] args) {
CellStyle numberStyle = new CellStyle(CellStyle.HorizontalAlign.right);
Table t = new Table(3, BorderStyle.DESIGN_DIM,
ShownBorders.HEADER_ONLY);
t.setColumnWidth(0, 22, 28);
t.setColumnWidth(1, 12, 22);
t.setColumnWidth(2, 9, 16);
t.addCell("Chrisadfasdfas");
t.addCell("127.0.0.1");
t.addCell("November 1, 1997");
t.addCell("Brian");
t.addCell("127.0.0.1");
t.addCell("November 1, 1997");
t.addCell("Turd");
t.addCell("127.0.0.1");
t.addCell("November 1, 1997");
System.out.println("\n\n\n\n" + t.render());
}
} }
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