From 48384686fb017fe010b5c64a3f835cadcb376d2f Mon Sep 17 00:00:00 2001 From: Tobydrama Date: Mon, 20 Apr 2020 18:04:34 +0200 Subject: [PATCH] added ask if continue powerdown --- .../roborally/gamewrapper/ScreenManager.java | 10 ++-------- .../fiasko/roborally/objects/RoboRallyGame.java | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/gamewrapper/ScreenManager.java b/src/main/java/inf112/fiasko/roborally/gamewrapper/ScreenManager.java index 504c448..e01676d 100644 --- a/src/main/java/inf112/fiasko/roborally/gamewrapper/ScreenManager.java +++ b/src/main/java/inf112/fiasko/roborally/gamewrapper/ScreenManager.java @@ -25,10 +25,7 @@ public class ScreenManager { public synchronized CardChoiceScreen getCardChoiceScreen(RoboRallyWrapper roboRallyWrapper) { - if (this.cardChoiceScreen == null) { - this.cardChoiceScreen = new CardChoiceScreen(roboRallyWrapper); - } - return cardChoiceScreen; + return new CardChoiceScreen(roboRallyWrapper); } /** @@ -51,10 +48,7 @@ public class ScreenManager { * @return A power down screen instance */ public synchronized PowerDownScreen getPowerDownScreen(RoboRallyWrapper roboRallyWrapper) { - if (this.powerDownScreen == null) { - this.powerDownScreen = new PowerDownScreen(roboRallyWrapper); - } - return powerDownScreen; + return new PowerDownScreen(roboRallyWrapper); } /** diff --git a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java index 17c03d9..4a0f583 100644 --- a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java +++ b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java @@ -167,13 +167,24 @@ public class RoboRallyGame implements DrawableGame, InteractableGame { // Repair robots on repair tiles repairAllRobotsOnRepairTiles(); //Updates the host's card deck + if (host) { //TODO: Fix updateLockedProgrammingCardsForAllPlayers throwing NullPointerException on robotDamage updateLockedProgrammingCardsForAllPlayers(); removeNonLockedProgrammingCardsFromPlayers(); } + sendAllDeadPlayersToServer(); // TODO: If this player is in power down, ask if it shall continue + if(gameBoard.getPowerDown(getPlayerFromName(this.playerName).getRobotID())){ + setGameState(GameState.CHOOSING_STAY_IN_POWER_DOWN); + + } else { + setGameState(GameState.LOADING); + + } + updateRobotPowerDown(); + } @Override @@ -183,6 +194,8 @@ public class RoboRallyGame implements DrawableGame, InteractableGame { } respawnRobots(); resetHasTouchedFlagThisTurnForAllRobots(); + setGameState(GameState.BEGINNING_OF_GAME); + runTurn(); } @Override @@ -230,6 +243,7 @@ public class RoboRallyGame implements DrawableGame, InteractableGame { gameBoard = BoardLoaderUtil.loadBoard("boards/" + boardName, robots); moveRobotsToSpawn(); + repairTiles = gameBoard.getPositionsOfTileOnBoard(TileType.FLAG_1, TileType.FLAG_2, TileType.FLAG_3, TileType.FLAG_4, TileType.WRENCH, TileType.WRENCH_AND_HAMMER); @@ -256,7 +270,10 @@ public class RoboRallyGame implements DrawableGame, InteractableGame { } BoardElementContainer spawnTileContainer = spawnTileContainerList.get(0); gameBoard.teleportRobot(robotID, spawnTileContainer.getPosition()); + gameBoard.setBackupPositionOfRobot(robotID, spawnTileContainer.getPosition()); + } + } /**