diff --git a/src/main/java/inf112/fiasko/roborally/objects/Board.java b/src/main/java/inf112/fiasko/roborally/objects/Board.java index b5e1ff3..e6b5e76 100644 --- a/src/main/java/inf112/fiasko/roborally/objects/Board.java +++ b/src/main/java/inf112/fiasko/roborally/objects/Board.java @@ -158,7 +158,7 @@ public class Board { */ public void repairRobotOnTile(RobotID robotID){ Robot robot = robots.get(robotID); - int newDamage =Math.max(robot.getDamageTaken()-1,0); + int newDamage = Math.max(robot.getDamageTaken()-1,0); robot.setDamageTaken(newDamage); } diff --git a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java index 6b0c8ab..4470f40 100644 --- a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java +++ b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java @@ -414,9 +414,9 @@ public class RoboRallyGame implements IDrawableGame { } /** - * repair all robots standing on a reparer tile + * repair all robots standing on a repair tile */ - private void repairAllRobotsOnReparerTiles(){ + private void repairAllRobotsOnRepairTiles(){ List> listOfRepareTiles = gameBoard.getPositionsOfTileOnBoard(TileType.FLAG_1, TileType.FLAG_2, TileType.FLAG_3, TileType.FLAG_4, TileType.WRENCH, TileType.WRENCH_AND_HAMMER); for (BoardElementContainer repareTile:listOfRepareTiles) { @@ -437,4 +437,13 @@ public class RoboRallyGame implements IDrawableGame { player.setPowerDownNextRound(false); } } + + /** + * sets the powerdown status of a robots + * @param player the player that owns the robot + * @param powerdownStatus the powerdown status + */ + private void setRobotPowerDown(Player player,Boolean powerdownStatus){ + gameBoard.setPowerDown(player.getRobotID(),powerdownStatus); + } } \ No newline at end of file diff --git a/src/test/java/inf112/fiasko/roborally/objects/BoardTest.java b/src/test/java/inf112/fiasko/roborally/objects/BoardTest.java index 515fcf1..7d4562f 100644 --- a/src/test/java/inf112/fiasko/roborally/objects/BoardTest.java +++ b/src/test/java/inf112/fiasko/roborally/objects/BoardTest.java @@ -39,6 +39,8 @@ public class BoardTest { private final Map tileTypeNumberMap = new HashMap<>(); private List robotListforlaser; private Board boardforlaser; + private List robotListforpowerdown; + private Board boardforpowerdown; @BeforeClass public static void globalSetUp() { @@ -56,6 +58,19 @@ public class BoardTest { @Before public void setUp() { + Grid tileGridforpowerdown = new Grid<>(8, 8, new Tile(TileType.TILE, Direction.NORTH)); + Grid wallGridforpowerdown = new Grid<>(8, 8); + robotListforpowerdown = new ArrayList<>(); + robotListforpowerdown.add(new Robot(RobotID.ROBOT_1, new Position(2,1))); + robotListforpowerdown.add(new Robot(RobotID.ROBOT_2, new Position(4,0))); + robotListforpowerdown.add(new Robot(RobotID.ROBOT_3, new Position(4,1))); + robotListforpowerdown.add(new Robot(RobotID.ROBOT_4, new Position(1,7))); + robotListforpowerdown.add(new Robot(RobotID.ROBOT_5, new Position(0,4))); + robotListforpowerdown.add(new Robot(RobotID.ROBOT_6, new Position(0,5))); + robotListforpowerdown.add(new Robot(RobotID.ROBOT_7, new Position(7,0))); + robotListforpowerdown.add(new Robot(RobotID.ROBOT_8, new Position(1,1))); + boardforpowerdown = new Board(tileGridforpowerdown, wallGridforpowerdown, robotListforpowerdown); + Grid tileGridforlaser = new Grid<>(8, 8, new Tile(TileType.TILE, Direction.NORTH)); Grid wallGridforlaser = new Grid<>(8, 8); robotListforlaser = new ArrayList<>(); @@ -123,6 +138,30 @@ public class BoardTest { boardWithDifferentAmountOfAllTypes = new Board(tileGridAllTypes,wallGridAllTypes,emptyRobotList); } + @Test + public void setRobotPowerDownStatus(){ + Robot testrobot = robotListforpowerdown.get(0); + assertEquals(false , testrobot.isInPowerDown()); + boardforpowerdown.setPowerDown(RobotID.ROBOT_1,true); + assertEquals(true , testrobot.isInPowerDown()); + } + @Test + public void executRobotPowerDown(){ + Robot testrobot = robotListforpowerdown.get(1); + boardforpowerdown.setPowerDown(RobotID.ROBOT_2,true); + testrobot.setDamageTaken(4); + assertEquals(4,testrobot.getDamageTaken()); + boardforpowerdown.executePowerdown(); + assertEquals(0,testrobot.getDamageTaken()); + } + @Test + public void repairRobotOnRepairTile(){ + Robot testrobot = robotListforpowerdown.get(2); + testrobot.setDamageTaken(4); + assertEquals(4,testrobot.getDamageTaken()); + boardforpowerdown.repairRobotOnTile(RobotID.ROBOT_3); + assertEquals(3,testrobot.getDamageTaken()); + } @Test public void robotHitByLaserGetsDamaged(){ @@ -155,9 +194,7 @@ public class BoardTest { assertEquals(0, testRobot.getDamageTaken()); boardforlaser.fireAllLasers(); assertEquals(2,testRobot.getDamageTaken()); - } - @Test public void robotGetsHitByTwoLasers(){ Robot testRobot = robotListforlaser.get(3); @@ -165,9 +202,6 @@ public class BoardTest { boardforlaser.fireAllLasers(); assertEquals(2, testRobot.getDamageTaken()); } - - - @Test public void robotDamageEachOther() { Robot robot5 = robotListforlaser.get(4); @@ -179,9 +213,6 @@ public class BoardTest { assertEquals(1, robot5.getDamageTaken()); assertEquals(2, robot6.getDamageTaken()); } - - - @Test public void robotStandingOnLaserTakesDamage() { Robot robot6 = robotListforlaser.get(5); @@ -189,11 +220,6 @@ public class BoardTest { boardforlaser.fireAllLasers(); assertEquals(1, robot6.getDamageTaken()); } - - - - - @Test public void flagGetsUpdatedOnRobotWithCorrectLastVisitedFlag() { Robot testRobot = robotList.get(6);