2013-04-12 19:32:25 -07:00
|
|
|
package magic.model;
|
|
|
|
|
2014-07-14 20:32:20 -07:00
|
|
|
import java.util.ArrayList;
|
2020-01-15 12:02:42 -08:00
|
|
|
import java.util.List;
|
2014-07-14 20:32:20 -07:00
|
|
|
|
2013-04-12 19:32:25 -07:00
|
|
|
public class MagicLogMessageBuilder {
|
|
|
|
|
|
|
|
private final MagicGame game;
|
|
|
|
private final StringBuilder[] messageBuilders;
|
2014-07-14 20:32:20 -07:00
|
|
|
private final List<MagicPlayer> order;
|
2013-06-23 18:33:35 -07:00
|
|
|
|
2014-07-14 20:32:20 -07:00
|
|
|
MagicLogMessageBuilder(final MagicGame aGame) {
|
|
|
|
game = aGame;
|
2013-04-12 19:32:25 -07:00
|
|
|
messageBuilders=new StringBuilder[]{new StringBuilder(),new StringBuilder()};
|
2018-04-07 17:59:14 -07:00
|
|
|
order = new ArrayList<>(2);
|
2013-04-12 19:32:25 -07:00
|
|
|
}
|
2013-06-23 18:33:35 -07:00
|
|
|
|
2013-04-12 19:32:25 -07:00
|
|
|
void appendMessage(final MagicPlayer player,final String message) {
|
|
|
|
final StringBuilder messageBuilder=messageBuilders[player.getIndex()];
|
|
|
|
if (messageBuilder.length()>0) {
|
|
|
|
messageBuilder.append(' ');
|
|
|
|
}
|
|
|
|
messageBuilder.append(message);
|
2014-07-14 20:32:20 -07:00
|
|
|
|
2018-04-07 17:59:14 -07:00
|
|
|
if (!order.contains(player)) {
|
2014-07-14 20:32:20 -07:00
|
|
|
order.add(player);
|
|
|
|
}
|
2013-04-12 19:32:25 -07:00
|
|
|
}
|
2013-06-23 18:33:35 -07:00
|
|
|
|
2013-04-12 19:32:25 -07:00
|
|
|
void logMessages() {
|
2014-07-14 20:32:20 -07:00
|
|
|
for (final MagicPlayer player : order) {
|
2013-04-12 19:32:25 -07:00
|
|
|
final StringBuilder messageBuilder=messageBuilders[player.getIndex()];
|
|
|
|
if (messageBuilder.length()>0) {
|
|
|
|
game.getLogBook().add(new MagicMessage(game,player,messageBuilder.toString()));
|
|
|
|
messageBuilder.setLength(0);
|
|
|
|
}
|
|
|
|
}
|
2014-07-14 20:32:20 -07:00
|
|
|
order.clear();
|
2013-04-12 19:32:25 -07:00
|
|
|
}
|
2013-06-23 18:33:35 -07:00
|
|
|
|
2013-04-12 19:32:25 -07:00
|
|
|
void clearMessages() {
|
|
|
|
messageBuilders[0].setLength(0);
|
|
|
|
messageBuilders[1].setLength(0);
|
2014-07-14 20:32:20 -07:00
|
|
|
order.clear();
|
2013-04-12 19:32:25 -07:00
|
|
|
}
|
|
|
|
}
|