Fix: GameTest and Game
This commit is contained in:
@@ -157,8 +157,9 @@ public class Game implements Serializable {
|
||||
* @throws IllegalArgumentException if {@code nPlayers < 0} or {@code nPlayers > 5}.
|
||||
*/
|
||||
public Game(int nPlayers) throws IllegalArgumentException{
|
||||
if(nPlayers < 0||nPlayers > 5)
|
||||
if(nPlayers !=0 && (nPlayers < 2 || nPlayers > 5)) {
|
||||
throw new IllegalArgumentException();
|
||||
}
|
||||
this.nPlayers = nPlayers;
|
||||
board=new Board(nPlayers);
|
||||
slotMap = new LinkedHashMap<>();
|
||||
@@ -406,7 +407,7 @@ public class Game implements Serializable {
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
if(!player.equals(currentState.getCurrentPlayer()))
|
||||
{
|
||||
return false;
|
||||
@@ -497,8 +498,8 @@ public class Game implements Serializable {
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
nextPlayerSetup();
|
||||
OptionalCardQueue.removeIf(x->x.equals(player));
|
||||
nextPlayerSetup();
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -588,7 +589,7 @@ public class Game implements Serializable {
|
||||
{
|
||||
OptionalCardQueue.add(e.getKey());
|
||||
}
|
||||
currentState.PlayerUpdate(OptionalCardQueue.remove(), null);
|
||||
currentState.PlayerUpdate(OptionalCardQueue.poll(), null);
|
||||
if(currentState.getCurrentPlayer()==null)
|
||||
{
|
||||
currentState.GameStageUpdate(GameStages.RESOLVING_EVENT);
|
||||
@@ -605,14 +606,27 @@ public class Game implements Serializable {
|
||||
|
||||
return;
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
if(GameStages.OPTIONAL_CARD_EFFECT==currentState.getGameStage()) {
|
||||
currentState.PlayerUpdate(OptionalCardQueue.remove(), null);
|
||||
if(currentState.getCurrentPlayer()==null)
|
||||
{
|
||||
currentState.GameStageUpdate(GameStages.RESOLVING_EVENT);
|
||||
if (GameStages.OPTIONAL_CARD_EFFECT == currentState.getGameStage()) {
|
||||
Player optionalPlayer = OptionalCardQueue.poll();
|
||||
|
||||
if (optionalPlayer != null) {
|
||||
currentState.PlayerUpdate(optionalPlayer, null);
|
||||
return;
|
||||
}
|
||||
|
||||
currentState.GameStageUpdate(GameStages.RESOLVING_EVENT);
|
||||
|
||||
if (currentState.getRound() < 10) {
|
||||
nextRound();
|
||||
} else {
|
||||
EventResolution();
|
||||
currentState.GameStageUpdate(GameStages.ENDING);
|
||||
endGame();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -657,9 +671,13 @@ public class Game implements Serializable {
|
||||
{
|
||||
currentState.GameStageUpdate(GameStages.ENDING);
|
||||
endGame();
|
||||
return;
|
||||
}
|
||||
if(currentState.getEra()!= board.nextRound())
|
||||
|
||||
if(currentState.getEra()!= board.nextRound()) {
|
||||
currentState.EraUpdate();
|
||||
}
|
||||
|
||||
currentState.RoundUpdate();
|
||||
|
||||
}
|
||||
@@ -683,11 +701,28 @@ public class Game implements Serializable {
|
||||
* @param nPlayers the new configured number of players.
|
||||
* @return {@code true} if the number of players is updated, {@code false} otherwise.
|
||||
*/
|
||||
public boolean setNPlayer(int nPlayers)
|
||||
{
|
||||
if(this.nPlayers!=0)
|
||||
public boolean setNPlayer(int nPlayers) {
|
||||
if (this.nPlayers != 0) {
|
||||
return false;
|
||||
this.nPlayers=nPlayers;
|
||||
}
|
||||
|
||||
if (nPlayers < 2 || nPlayers > 5) {
|
||||
return false;
|
||||
}
|
||||
|
||||
this.nPlayers = nPlayers;
|
||||
|
||||
board = new Board(nPlayers);
|
||||
|
||||
slotMap = new LinkedHashMap<>();
|
||||
for (Slot s : board.getSlotList()) {
|
||||
slotMap.put(s, null);
|
||||
}
|
||||
|
||||
currentState = new CurrentState();
|
||||
playersList = new ArrayList<>();
|
||||
OptionalCardQueue = new LinkedList<>();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user