fixed continue powerdown bugs closes #66

This commit is contained in:
Tobydrama
2020-04-21 14:04:45 +02:00
parent 17a3d4f27a
commit ee18396d3e
6 changed files with 48 additions and 8 deletions

View File

@@ -77,7 +77,7 @@ public class Player {
* @param cardList list the size of 5 with programing cards
*/
public void setProgram(List<ProgrammingCard> cardList) {
if (cardList.size() != 5) {
if (cardList.size() != 5 && !cardList.isEmpty()) {
throw new IllegalArgumentException("The program must contain exactly 5 cards.");
} else {
program = new ArrayList<>(cardList);

View File

@@ -15,6 +15,7 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
/**
* This class represent a game which is drawable using libgdx
@@ -33,6 +34,13 @@ public class RoboRallyGame implements DrawableGame, InteractableGame {
private ProgrammingCardDeck playerHand;
private Phase phase;
public Boolean getRobotPowerdown(){
if(getPlayerFromName(this.playerName)!=null){
return gameBoard.getPowerDown(Objects.requireNonNull(getPlayerFromName(this.playerName)).getRobotID());
}
return false;
}
/**
* Instantiates a new Robo Rally game
*
@@ -173,19 +181,20 @@ public class RoboRallyGame implements DrawableGame, InteractableGame {
removeNonLockedProgrammingCardsFromPlayers();
}
if (gameBoard.getPowerDown(getPlayerFromName(this.playerName).getRobotID())) {
if (gameBoard.getPowerDown(Objects.requireNonNull(getPlayerFromName(this.playerName)).getRobotID())) {
setGameState(GameState.CHOOSING_STAY_IN_POWER_DOWN);
} else {
setGameState(GameState.LOADING);
}
//updateRobotPowerDown(); Should this be here?
}
@Override
public void receiveStayInPowerDown(PowerDownContainer powerDowns) {
for (Player player : playerList) {
player.setPowerDownNextRound(powerDowns.getPowerDown().get(player.getName()));
if(gameBoard.getPowerDown(player.getRobotID())) {
player.setPowerDownNextRound(powerDowns.getPowerDown().get(player.getName()));
}
}
respawnRobots();
sendAllDeadPlayersToServer();