Update: TUI totem choice impl

This commit is contained in:
rubenpirreram
2026-05-13 17:43:46 +02:00
parent 110526d836
commit c3095ae69d
4 changed files with 71 additions and 12 deletions
@@ -19,6 +19,7 @@ import it.polimi.ingsw.gc14.Model.GamePackage.GameStages;
import java.io.Serializable;
import java.util.*;
import java.util.random.RandomGenerator;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -61,11 +62,27 @@ public class Game implements Serializable {
}
player.totem=totem;
Player nextPlayer= totemChoiceQueue.poll();
if(nextPlayer==null)
{
currentState.GameStageUpdate(GameStages.SLOT_CHOICE);
currentState.PlayerUpdate(orderLogicCard.pull(),null);
}
else
{
while(disconnetedPlayers.containsKey(nextPlayer)&& disconnetedPlayers.get(nextPlayer))
{
nextPlayer.totem=getAvailableTotems().get(new Random().nextInt(getAvailableTotems().size()-1));
nextPlayer=totemChoiceQueue.poll();
if(nextPlayer==null)
{
currentState.GameStageUpdate(GameStages.SLOT_CHOICE);
currentState.PlayerUpdate(orderLogicCard.pull(),null);
return true;
}
}
currentState.PlayerUpdate(nextPlayer,null);
}
return true;
}
@@ -80,7 +97,20 @@ public class Game implements Serializable {
}
disconnetedPlayers.put(player,true);
if(currentState.getCurrentPlayer().equals(player))
nextPlayerSetup();
if(!currentState.getGameStage().equals(GameStages.TOTEM_CHOICE))
nextPlayerSetup();
else
{
if(totemChoiceQueue.isEmpty())
{
player.totem=getAvailableTotems().get(new Random().nextInt(getAvailableTotems().size()-1));
}
else {
totemChoiceQueue.add(player);
}
currentState.PlayerUpdate(totemChoiceQueue.poll(),null);
}
return true;
}