try { player.model.consumeStones(player.stoneThrow); }
catch (Model.Player.ThrewMoreStonesThanHad e) {
if (model.random.nextInt(10) > 0) {
- gameManager.addToGameSummary(GameManager.formatErrorMessage(player.getNicknameToken() + " tried to throw more stones than they had. I'll let it slide for this time. (But not let them throw that much!)"));
+ player.view.threwMoreStonesThanHad();
player.stoneThrow = player.model.consumeMaxStones();
}
else {
}
catch (Model.Player.FailedToThrowStonesAndShouldHave e) {
if (model.random.nextInt(10) > 0) {
- gameManager.addToGameSummary(GameManager.formatErrorMessage(player.getNicknameToken() + " tried not throwing any stones. Fixing that for them because I'm in a good mood today."));
+ player.view.failedToThrowStonesAndShouldHave();
player.stoneThrow = player.model.consumeMinStones();
}
else {
boolean exhausted = false;
if (! disqual) {
for (Player player : gameManager.getActivePlayers()) {
- gameManager.addToGameSummary(String.format("%s throws %d stone%s at the troll.", player.getNicknameToken(), player.stoneThrow, player.stoneThrow == 1 ? "" : "s"));
+ player.view.throwStones(player.stoneThrow);
delta += player.model.getMultiplier() * player.stoneThrow;
if (player.stoneThrow < 0) {
else if (cheat1) delta = 1;
if (delta > 0) {
- gameManager.addToGameSummary("Troll walks right.");
model.trollPosition++;
+ view.moveTroll(View.Dir.RIGHT);
}
else if (delta < 0) {
- gameManager.addToGameSummary("Troll walks left.");
model.trollPosition--;
+ view.moveTroll(View.Dir.LEFT);
}
else {
- gameManager.addToGameSummary("Troll stands still.");
+ view.moveTroll(View.Dir.STILL);
// XXX animate
}
- view.moveTroll();
for (Player player : gameManager.getActivePlayers()) {
player.model.adjustScore(model.trollPosition);
if (model.haveWinner()) {
int loser = model.getLoser();
- gameManager.addToGameSummary(GameManager.formatErrorMessage("Troll destroys " + gameManager.getPlayer(loser).getNicknameToken()) + ".");
gameManager.getPlayer(loser).view.destroy();
victory = true;
}
int s1 = p1.getScore();
if (s0 > s1) {
- gameManager.addToGameSummary(GameManager.formatSuccessMessage(p0.getNicknameToken() + " wins."));
+ p0.view.victory();
p1.view.markLoser();
}
else if (s0 < s1) {
- gameManager.addToGameSummary(GameManager.formatSuccessMessage(p1.getNicknameToken() + " wins."));
+ p1.view.victory();
p0.view.markLoser();
}
else if (s0 < 0) {
- gameManager.addToGameSummary(GameManager.formatErrorMessage("Everybody loses!"));
+ view.doubleDefeat();
p0.view.markLoser();
p1.view.markLoser();
}
else {
- gameManager.addToGameSummary("Draw.");
+ view.draw();
}
}
}
import java.util.ArrayList;
import java.util.Comparator;
+import com.codingame.gameengine.core.GameManager;
import com.codingame.gameengine.core.MultiplayerGameManager;
import com.codingame.gameengine.module.entities.GraphicEntityModule;
import com.codingame.gameengine.module.entities.Rectangle;
@Inject private GraphicEntityModule graphicEntityModule;
@Inject ToggleModule toggleModule;
+ enum Dir {
+ LEFT("walks left."),
+ STILL("stands still."),
+ RIGHT("walks right.");
+
+ String movement;
+ Dir(String mvt) { movement = mvt; }
+ }
+
class Player {
Model.Player model;
}
void animateStones(int stones) {
- String stonesString = new Integer(stones).toString();
+ String stonesString = Integer.valueOf(stones).toString();
stone.setX(castle.getX());
stone.setY(castle.getY() - 100);
stone.setText(stonesString);
}
void destroy() {
+ gameManager.addToGameSummary(GameManager.formatErrorMessage("Troll destroys " + nicknameToken + "."));
graphicEntityModule.commitEntityState(0.5, castle);
castle.setX(castle.getX(), Curve.ELASTIC);
castle.setScaleY(-0.2, Curve.EASE_IN);
stoneReminder.setAlpha(0);
graphicEntityModule.commitEntityState(0, stoneReminder);
}
+
+ void victory() {
+ gameManager.addToGameSummary(GameManager.formatSuccessMessage(nicknameToken + " wins."));
+ }
+
+ void throwStones(int stones) {
+ gameManager.addToGameSummary(String.format("%s throws %d stone%s at the troll.", 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."));
+ }
}
Model model;
moveTroll();
}
- void moveTroll() {
+ private void moveTroll() {
graphicEntityModule.commitEntityState(0.5, troll, trollPositionGauge);
int x0 = p0.castle.getX(), x1 = p1.castle.getX();
int y0 = p0.castle.getY(), y1 = p1.castle.getY();
trollPositionGauge.setX(troll.getX());
}
+ void moveTroll(Dir d) {
+ moveTroll();
+ gameManager.addToGameSummary("Troll " + d.movement);
+ }
+
void animateTurnCounter() {
for (int i = 0; i < 10; i++) {
turnCounter.setText("T" + _turns + "." + i);
toggleModule.displayOnToggleState(turnCounter, "debug", true);
animateTurnCounter();
}
+
+ void doubleDefeat() {
+ gameManager.addToGameSummary(GameManager.formatErrorMessage("Everybody loses!"));
+ }
+
+ void draw() {
+ gameManager.addToGameSummary("Draw.");
+ }
}