This commit is contained in:
Tobydrama 2020-04-02 12:51:21 +02:00
commit 40031f264c
2 changed files with 60 additions and 5 deletions

View File

@ -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.

View File

@ -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<ProgrammingCard> 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();