import com.codingame.gameengine.core.AbstractReferee;
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;
-import com.codingame.gameengine.module.entities.Sprite;
-import com.codingame.gameengine.module.entities.Text;
-import com.codingame.gameengine.module.entities.Curve;
+import com.codingame.game.GodModeManager;
import com.google.inject.Inject;
import com.google.inject.Provider;
public class Referee extends AbstractReferee {
@Inject private MultiplayerGameManager<Player> gameManager;
- @Inject private GraphicEntityModule graphicEntityModule;
+ @Inject private GodModeManager gm;
@Inject private View view;
@Inject private Model model;
@Override
public void init() {
+ gm.init();
model.init(gameManager.getSeed());
gameManager.getPlayer(0).model = model.p0;
gameManager.getPlayer(1).model = model.p1;
for (Player p: gameManager.getPlayers()) {
p.gameInit(model.roadLength, model.initialStones,
- gameManager.getSeed());
+ gameManager.getSeed(), gm.getSalt());
}
view.init(model);
* least.
*/
for (Player player : gameManager.getActivePlayers()) {
- player.receiveGameTurn();
+ player.receiveGameTurn(); gm.transcend(player);
switch (player.type) {
case Timeout:
disqualify(player, "T/O", "timed out!");
* exhaustion).
*/
int delta = 0;
+ gm.update(gameManager.getPlayers());
for (Player player : gameManager.getActivePlayers()) {
player.view.throwStones(player.stoneThrow);
delta += player.model.getMultiplier() * player.stoneThrow;
boolean noStones = true;
int delta = 0;
for (Player player : gameManager.getActivePlayers()) {
+ if (model.haveWinner() && player.getIndex() == model.getLoser())
+ continue;
player.stoneThrow = player.model.getStones();
player.model.setStones(0);
delta += player.stoneThrow * player.model.getMultiplier();