mirror of
https://github.com/inf112-v20/Fiasko.git
synced 2025-01-31 23:29:36 +01:00
Update RoboRallyGame.java
Implenterer updatePlayerLockedProgrammingCards og removeNonLockedProgrammingCardsFromPlayers Co-Authored-By: torlunjen <torlunjen@users.noreply.github.com>
This commit is contained in:
parent
6b3e15dcd7
commit
4738ce6baa
@ -124,7 +124,7 @@ public class RoboRallyGame implements IDrawableGame {
|
|||||||
initializePlayers();
|
initializePlayers();
|
||||||
gameBoard = BoardLoaderUtil.loadBoard("boards/Checkmate.txt", robots);
|
gameBoard = BoardLoaderUtil.loadBoard("boards/Checkmate.txt", robots);
|
||||||
generateTileLists();
|
generateTileLists();
|
||||||
|
|
||||||
if (host) {
|
if (host) {
|
||||||
mainDeck = DeckLoaderUtil.loadProgrammingCardsDeck();
|
mainDeck = DeckLoaderUtil.loadProgrammingCardsDeck();
|
||||||
}
|
}
|
||||||
@ -231,7 +231,6 @@ public class RoboRallyGame implements IDrawableGame {
|
|||||||
// Set damage of robots in power down to 0
|
// Set damage of robots in power down to 0
|
||||||
gameBoard.executePowerdown();
|
gameBoard.executePowerdown();
|
||||||
if (host) {
|
if (host) {
|
||||||
// TODO: Distribute programming cards to players not in power down
|
|
||||||
distributeProgrammingCardsToPlayers();
|
distributeProgrammingCardsToPlayers();
|
||||||
}
|
}
|
||||||
// TODO: Make program for this player, if not in power down
|
// 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
|
// Repair robots on repair tiles
|
||||||
repairAllRobotsOnRepairTiles();
|
repairAllRobotsOnRepairTiles();
|
||||||
// TODO: Update locked cards deck
|
if (host) {
|
||||||
// TODO: Remove non-locked programming cards
|
updatePlayerLockedProgrammingCards();
|
||||||
|
removeNonLockedProgrammingCardsFromPlayers();
|
||||||
|
}
|
||||||
// TODO: If this player is in power down, ask if it shall continue
|
// TODO: If this player is in power down, ask if it shall continue
|
||||||
// Respawn dead robots, as long as they have more lives left
|
// Respawn dead robots, as long as they have more lives left
|
||||||
respawnRobots();
|
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
|
* Deals correct amount of cards to active players, based on their robots damage
|
||||||
*/
|
*/
|
||||||
private void distributeProgrammingCardsToPlayers() {
|
public void distributeProgrammingCardsToPlayers() {
|
||||||
int robotDamage;
|
int robotDamage;
|
||||||
ProgrammingCardDeck playerDeck;
|
ProgrammingCardDeck playerDeck;
|
||||||
mainDeck.shuffle();
|
mainDeck.shuffle();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user