X-Git-Url: https://troll.desast.re/troll.git/blobdiff_plain/b41b9823fbe2eed146db478fd5a1353bb558215c..643a6e62e19c389a7a0da3176af340228a52d3ab:/src/main/java/com/codingame/game/Referee.java diff --git a/src/main/java/com/codingame/game/Referee.java b/src/main/java/com/codingame/game/Referee.java index eaac5fb..b907739 100644 --- a/src/main/java/com/codingame/game/Referee.java +++ b/src/main/java/com/codingame/game/Referee.java @@ -40,6 +40,12 @@ public class Referee extends AbstractReferee { gameManager.setFrameDuration(2000); } + private void disqualify(Player player, String popup, String message) { + player.deactivate(player.getNicknameToken() + " " + popup); + gameManager.addToGameSummary(GameManager.formatErrorMessage(player.getNicknameToken() + " " + message)); + player.setScore(-1); + } + @Override public void gameTurn(int turn) { // System.err.println("Starting turn " + turn); @@ -61,15 +67,11 @@ public class Referee extends AbstractReferee { player.receiveGameTurn(); switch (player.type) { case Timeout: - gameManager.addToGameSummary(player.getNicknameToken() + " timed out!"); - player.deactivate(player.getNicknameToken() + " T/O"); - player.setScore(-1); + disqualify(player, "T/O", "timed out!"); disqual = true; break; case Invalid: - player.deactivate(player.getNicknameToken() + " INVALID"); - gameManager.addToGameSummary(GameManager.formatErrorMessage(player.getNicknameToken() + " provided an ill-formed action")); - player.setScore(-1); + disqualify(player, "INVALID", "provided an ill-formed action"); disqual = true; break; case Throw: @@ -80,9 +82,7 @@ public class Referee extends AbstractReferee { player.stoneThrow = player.model.consumeMaxStones(); } else { - gameManager.addToGameSummary(GameManager.formatErrorMessage(player.getNicknameToken() + " tried to throw more stones than they had. They went into debt trying to provide. The economy tanked, recession and famine ensued; even the troll wouldn't have wanted to bash them anymore. But that's no victory.")); - player.deactivate(player.getNicknameToken() + " ILLEGAL"); - player.setScore(-1); + disqualify(player, "ILLEGAL", "tried to throw more stones than they had. They went into debt trying to provide. The economy tanked, recession and famine ensued; even the troll wouldn't have wanted to bash them anymore. But that's no victory."); disqual = true; } } @@ -92,9 +92,7 @@ public class Referee extends AbstractReferee { player.stoneThrow = player.model.consumeMinStones(); } else { - gameManager.addToGameSummary(GameManager.formatErrorMessage(player.getNicknameToken() + "tried not throwing any stones. They were then eaten by a grue.")); - player.deactivate(player.getNicknameToken() + " ILLEGAL"); - player.setScore(-1); + disqualify(player, "ILLEGAL", "tried not throwing any stones. They were then eaten by a grue."); disqual = true; } } @@ -122,9 +120,7 @@ public class Referee extends AbstractReferee { delta += player.model.getMultiplier() * player.stoneThrow; if (player.stoneThrow < 0) { - player.deactivate(player.getNicknameToken() + " CHEAT"); - gameManager.addToGameSummary(GameManager.formatErrorMessage(player.getNicknameToken() + " cheated. Banning account.")); - player.setScore(-1); + disqualify(player, "CHEAT", "cheated. Banning account."); disqual = true; } else if (player.stoneThrow > 0) { @@ -168,6 +164,7 @@ public class Referee extends AbstractReferee { if (model.haveWinner()) { int loser = model.getLoser(); gameManager.addToGameSummary(GameManager.formatErrorMessage("Troll destroys " + gameManager.getPlayer(loser).getNicknameToken()) + "."); + gameManager.getPlayer(loser).view.destroy(); victory = true; } else if (model.exhausted()) exhausted = true; @@ -187,16 +184,16 @@ public class Referee extends AbstractReferee { if (s0 > s1) { gameManager.addToGameSummary(GameManager.formatSuccessMessage(p0.getNicknameToken() + " wins.")); - p1.view.destroy(); + p1.view.markLoser(); } else if (s0 < s1) { gameManager.addToGameSummary(GameManager.formatSuccessMessage(p1.getNicknameToken() + " wins.")); - p0.view.destroy(); + p0.view.markLoser(); } else if (s0 < 0) { gameManager.addToGameSummary(GameManager.formatErrorMessage("Everybody loses!")); - p0.view.destroy(); - p1.view.destroy(); + p0.view.markLoser(); + p1.view.markLoser(); } else { gameManager.addToGameSummary("Draw.");