From 15a0782998530ee5e271593826827fe2b620adb4 Mon Sep 17 00:00:00 2001 From: Steinar Aalstad Lillesund Date: Thu, 2 Apr 2020 12:11:24 +0200 Subject: [PATCH 1/2] =?UTF-8?q?Referat=20fra=20m=C3=B8te.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/team/referater/referat_02_04_2020.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 docs/team/referater/referat_02_04_2020.md diff --git a/docs/team/referater/referat_02_04_2020.md b/docs/team/referater/referat_02_04_2020.md new file mode 100644 index 0000000..6e95378 --- /dev/null +++ b/docs/team/referater/referat_02_04_2020.md @@ -0,0 +1,13 @@ +## Oppmøte +Tilstede: Steinar, Gabriel, Kristian, Torbjørn, Petter +Ikke tilstede: + +## Agenda +- Hørre om det er noen utfordringer/spørmsål + +- Fortsette arbeidet + +## Møte +Starter møte med å gå igjennom mail som sier noe om endring av prosjekt. Prosjekteleder gir uttrykk for hvordan han +tenker vi burde gå frem. Enighet i gruppen. +Etter dette deler vi opp i grupper og jobber videre. \ No newline at end of file From 4738ce6baa54fc2b9b4aca372f24f0d347596200 Mon Sep 17 00:00:00 2001 From: GabrielMagnus Date: Thu, 2 Apr 2020 12:27:50 +0200 Subject: [PATCH 2/2] Update RoboRallyGame.java Implenterer updatePlayerLockedProgrammingCards og removeNonLockedProgrammingCardsFromPlayers Co-Authored-By: torlunjen --- .../roborally/objects/RoboRallyGame.java | 52 +++++++++++++++++-- 1 file changed, 47 insertions(+), 5 deletions(-) diff --git a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java index 80519c8..75a1414 100644 --- a/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java +++ b/src/main/java/inf112/fiasko/roborally/objects/RoboRallyGame.java @@ -124,7 +124,7 @@ public class RoboRallyGame implements IDrawableGame { initializePlayers(); gameBoard = BoardLoaderUtil.loadBoard("boards/Checkmate.txt", robots); generateTileLists(); - + if (host) { mainDeck = DeckLoaderUtil.loadProgrammingCardsDeck(); } @@ -231,7 +231,6 @@ public class RoboRallyGame implements IDrawableGame { // Set damage of robots in power down to 0 gameBoard.executePowerdown(); if (host) { - // TODO: Distribute programming cards to players not in power down distributeProgrammingCardsToPlayers(); } // TODO: Make program for this player, if not in power down @@ -245,17 +244,60 @@ public class RoboRallyGame implements IDrawableGame { // Repair robots on repair tiles repairAllRobotsOnRepairTiles(); - // TODO: Update locked cards deck - // TODO: Remove non-locked programming cards + if (host) { + updatePlayerLockedProgrammingCards(); + removeNonLockedProgrammingCardsFromPlayers(); + } // TODO: If this player is in power down, ask if it shall continue // Respawn dead robots, as long as they have more lives left respawnRobots(); } + /** + * Locks the players programming cards in relation to the robots damage + */ + private void updatePlayerLockedProgrammingCards() { + for (Player player : playerList) { + List playerProgram = player.getProgram(); + ProgrammingCardDeck playerDeck = player.getPlayerDeck(); + ProgrammingCardDeck lockedPlayerDeck = player.getLockedPlayerDeck(); + int robotDamage = gameBoard.getRobotDamage(player.getRobotID()); + + if (robotDamage <= 4) { + lockedPlayerDeck.emptyInto(player.getPlayerDeck()); + player.setLockedPlayerDeck(lockedPlayerDeck); + continue; + } + + for (int i = 1; i <= (robotDamage-4); i++) { + ProgrammingCard card = playerProgram.get(playerProgram.size()-i); + + if (card.compareTo(playerDeck.peekTop()) == 0) { + lockedPlayerDeck.draw(playerDeck); + } else { + playerDeck.draw(playerDeck); + } + } + player.setPlayerDeck(playerDeck); + player.setLockedPlayerDeck(lockedPlayerDeck); + } + } + + /** + * Moves non-locked player programming cards from their hand back to the main deck + */ + private void removeNonLockedProgrammingCardsFromPlayers() { + for (Player player : playerList) { + ProgrammingCardDeck playerDeck = player.getPlayerDeck(); + playerDeck.emptyInto(mainDeck); + player.setPlayerDeck(playerDeck); + } + } + /** * Deals correct amount of cards to active players, based on their robots damage */ - private void distributeProgrammingCardsToPlayers() { + public void distributeProgrammingCardsToPlayers() { int robotDamage; ProgrammingCardDeck playerDeck; mainDeck.shuffle();