From 59d8ce65d474d6d46b16cae26ebb6db7cda5c8b2 Mon Sep 17 00:00:00 2001 From: JBM Date: Sun, 7 Jun 2020 14:26:49 +0200 Subject: [PATCH] Reorganize View/Player --- src/main/java/com/codingame/game/Referee.java | 2 +- src/main/java/com/codingame/game/View.java | 106 ++++++++++-------- 2 files changed, 61 insertions(+), 47 deletions(-) diff --git a/src/main/java/com/codingame/game/Referee.java b/src/main/java/com/codingame/game/Referee.java index f9c442b..186ca88 100644 --- a/src/main/java/com/codingame/game/Referee.java +++ b/src/main/java/com/codingame/game/Referee.java @@ -168,7 +168,7 @@ public class Referee extends AbstractReferee { if (model.haveWinner()) { int loser = model.getLoser(); - gameManager.getPlayer(loser).view.destroy(); + gameManager.getPlayer(loser).view.defeat(); victory = true; } else if (model.exhausted()) exhausted = true; diff --git a/src/main/java/com/codingame/game/View.java b/src/main/java/com/codingame/game/View.java index 370cad1..84e7b69 100644 --- a/src/main/java/com/codingame/game/View.java +++ b/src/main/java/com/codingame/game/View.java @@ -136,6 +136,62 @@ class View { pantsModule.displayOnToggleState(stoneReminder, "debug", true); } + void startTurn() { + graphicEntityModule.commitEntityState(0, stoneReminder); + } + + void victory() { + gameManager.addToGameSummary(GameManager.formatSuccessMessage(nicknameToken + " wins.")); + markWinner(); + } + + void defeat() { + gameManager.addToGameSummary(GameManager.formatErrorMessage(trollRace.starter + " destroys " + nicknameToken + ".")); + destroyCastle(); + } + + // ========== Player/avatar markings + + void markTimeout() { + animateLoss(avatar.getX(), avatar.getY(), 100, "SLOW\nPOKE"); + } + + void markIllegal() { + animateLoss(avatar.getX(), avatar.getY(), 100, "STUPID"); + } + + void markCheat() { + animateLoss(avatar.getX(), avatar.getY(), 100, "CHEATER"); + } + + void markWinner() { + graphicEntityModule.commitEntityState(0.5, avatar); + avatar.setScaleX(1.5, Curve.EASE_OUT); + avatar.setScaleY(1.5, Curve.EASE_OUT); + avatar.setRotation((random.nextDouble() - 0.5) * Math.PI / 18, + Curve.ELASTIC); + } + + void markLoser() { + graphicEntityModule.commitEntityState(0.5, avatar); + int dir = random.nextInt(2) == 1 ? 1 : -1; + avatar.setRotation(dir * 170 * Math.PI / 180, Curve.ELASTIC); + } + + // ==========Player/stones + + void throwStones(int stones) { + gameManager.addToGameSummary(String.format("%s throws %d stone%s at " + trollRace.nonStarter(), nicknameToken, stones, stones == 1 ? "" : "s")); + } + + void threwMoreStonesThanHad() { + gameManager.addToGameSummary(GameManager.formatErrorMessage(nicknameToken + " tried to throw more stones than they had. I'll let it slide for this time. (But not let them throw that much!)")); + } + + void failedToThrowStonesAndShouldHave() { + gameManager.addToGameSummary(GameManager.formatErrorMessage(nicknameToken + " tried not throwing any stones. Fixing that for them because I'm in a good mood today.")); + } + void updateStoneCounter() { int stones = model.getStones(); if (stones <= 0) { @@ -176,61 +232,19 @@ class View { graphicEntityModule.commitEntityState(0, stoneReminder); } + // ========== Player/castle + void displayMessage(String msg) { message.setText(msg); graphicEntityModule.commitEntityState(0, message); } - void markLoser() { - graphicEntityModule.commitEntityState(0.5, avatar); - int dir = random.nextInt(2) == 1 ? 1 : -1; - avatar.setRotation(dir * 170 * Math.PI / 180, Curve.ELASTIC); - } - - void destroy() { - gameManager.addToGameSummary(GameManager.formatErrorMessage(trollRace.starter + " destroys " + nicknameToken + ".")); + void destroyCastle() { graphicEntityModule.commitEntityState(0.5, castle); castle.setX(castle.getX(), Curve.ELASTIC); castle.setScaleY(-0.2, Curve.EASE_IN); } - - void startTurn() { - graphicEntityModule.commitEntityState(0, stoneReminder); - } - - void victory() { - gameManager.addToGameSummary(GameManager.formatSuccessMessage(nicknameToken + " wins.")); - graphicEntityModule.commitEntityState(0.5, avatar); - avatar.setScaleX(1.5, Curve.EASE_OUT); - avatar.setScaleY(1.5, Curve.EASE_OUT); - avatar.setRotation((random.nextDouble() - 0.5) * Math.PI / 18, - Curve.ELASTIC); - } - - void throwStones(int stones) { - gameManager.addToGameSummary(String.format("%s throws %d stone%s at " + trollRace.nonStarter(), nicknameToken, stones, stones == 1 ? "" : "s")); - } - - void threwMoreStonesThanHad() { - gameManager.addToGameSummary(GameManager.formatErrorMessage(nicknameToken + " tried to throw more stones than they had. I'll let it slide for this time. (But not let them throw that much!)")); - } - - void failedToThrowStonesAndShouldHave() { - gameManager.addToGameSummary(GameManager.formatErrorMessage(nicknameToken + " tried not throwing any stones. Fixing that for them because I'm in a good mood today.")); - } - - void markTimeout() { - animateLoss(avatar.getX(), avatar.getY(), 100, "SLOW\nPOKE"); - } - - void markIllegal() { - animateLoss(avatar.getX(), avatar.getY(), 100, "STUPID"); - } - - void markCheat() { - animateLoss(avatar.getX(), avatar.getY(), 100, "CHEATER"); - } - } + } // class Player Model model; Random random = new Random(); -- 2.30.2