diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/GameState.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/GameState.java index fd47e32e..34ad5d44 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/GameState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/GameState.java @@ -3,8 +3,10 @@ import pp.mdga.client.gameState.*; import pp.mdga.game.BonusCard; import pp.mdga.game.Piece; +import pp.mdga.message.client.LeaveGameMessage; import pp.mdga.message.server.*; import pp.mdga.notification.InterruptNotification; +import pp.mdga.notification.StartDialogNotification; public class GameState extends ClientState { @@ -105,6 +107,13 @@ public void received(PauseGameMessage msg){ logic.addNotification(new InterruptNotification(logic.getGame().getPlayers().get(msg.getPlayerId()).getColor())); } + @Override + public void selectLeave(){ + logic.send(new LeaveGameMessage()); + logic.addNotification(new StartDialogNotification()); + logic.setState(logic.getDialogs()); + } + /** * This method is used to call the received method of the current state * diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/dialogState/LobbyState.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/dialogState/LobbyState.java index f40d4770..5742998e 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/dialogState/LobbyState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/dialogState/LobbyState.java @@ -5,6 +5,7 @@ import pp.mdga.client.DialogsState; import pp.mdga.game.Color; import pp.mdga.game.Piece; +import pp.mdga.game.Player; import pp.mdga.game.PlayerData; import pp.mdga.message.client.*; import pp.mdga.message.server.LobbyPlayerJoinedMessage; @@ -74,14 +75,15 @@ public void selectStart(){ @Override public void received(ServerStartGameMessage msg){ + logic.getGame().setBoard(msg.getBoard()); logic.addNotification(new GameNotification(logic.getGame().getPlayerById(logic.getOwnPlayerId()).getColor())); - for (Map.Entry entry : logic.getGame().getBoard().getPlayerData().entrySet()) { - List pieceList = new ArrayList<>(); + for (Map.Entry entry : logic.getGame().getPlayers().entrySet()) { + entry.getValue().initialize(); + List pieces = new ArrayList<>(); for(Piece piece : entry.getValue().getPieces()){ - System.out.println(piece.getUuid()); - pieceList.add(piece.getUuid()); + pieces.add(piece.getUuid()); } - logic.addNotification(new PlayerInGameNotification(entry.getKey(), pieceList , logic.getGame().getPlayerByColor(entry.getKey()).getName())); + logic.addNotification(new PlayerInGameNotification(entry.getValue().getColor(), pieces, entry.getValue().getName())); } logic.setState(logic.getGameState()); }