Reorganize View/Player
authorJBM <jbm@codingame.com>
Sun, 7 Jun 2020 12:26:49 +0000 (14:26 +0200)
committerJBM <jbm@codingame.com>
Sun, 7 Jun 2020 12:26:49 +0000 (14:26 +0200)
src/main/java/com/codingame/game/Referee.java
src/main/java/com/codingame/game/View.java

index f9c442b..186ca88 100644 (file)
@@ -168,7 +168,7 @@ public class Referee extends AbstractReferee {
 
         if (model.haveWinner()) {
             int loser = model.getLoser();
 
         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;
             victory = true;
         }
         else if (model.exhausted()) exhausted = true;
index 370cad1..84e7b69 100644 (file)
@@ -136,6 +136,62 @@ class View {
             pantsModule.displayOnToggleState(stoneReminder, "debug", true);
         }
 
             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) {
         void updateStoneCounter() {
             int stones = model.getStones();
             if (stones <= 0) {
@@ -176,61 +232,19 @@ class View {
             graphicEntityModule.commitEntityState(0, stoneReminder);
         }
 
             graphicEntityModule.commitEntityState(0, stoneReminder);
         }
 
+        // ========== Player/castle
+        
         void displayMessage(String msg) {
             message.setText(msg);
             graphicEntityModule.commitEntityState(0, message);
         }
 
         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);
         }
             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();
 
     Model model;
     Random random = new Random();