diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/NotificationSynchronizer.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/NotificationSynchronizer.java index 4cb2ca07..3b3d03b1 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/NotificationSynchronizer.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/NotificationSynchronizer.java @@ -119,6 +119,10 @@ private void handleGame(Notification notification) { guiHandler.addCardOwn(n.getBonusCard()); app.getAcousticHandler().playSound(MdgaSound.BONUS); delay = STANDARD_DELAY; + } else if(notification instanceof RankingResponceNotification n) { + n.getRankingResults().forEach((c, i) -> { + guiHandler.rollRankingResult(c, i); + }); } else if (notification instanceof ActivePlayerNotification n) { gameView.getGuiHandler().setActivePlayer(n.getColor()); boardHandler.hideDice(); diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/determinestartplayerstate/WaitRankingState.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/determinestartplayerstate/WaitRankingState.java index 341e1774..78787453 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/determinestartplayerstate/WaitRankingState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/determinestartplayerstate/WaitRankingState.java @@ -3,9 +3,14 @@ import pp.mdga.client.ClientGameLogic; import pp.mdga.client.ClientState; import pp.mdga.client.gamestate.DetermineStartPlayerState; +import pp.mdga.game.Color; import pp.mdga.message.client.AnimationEndMessage; import pp.mdga.message.server.*; import pp.mdga.notification.ActivePlayerNotification; +import pp.mdga.notification.RankingResponceNotification; + +import java.util.HashMap; +import java.util.Map; public class WaitRankingState extends DetermineStartPlayerStates { @@ -45,7 +50,11 @@ public void received(DiceNowMessage msg){ @Override public void received(RankingResponseMessage msg){ - + Map rankingResults = new HashMap<>(); + for (var entry : msg.getRankingResults().entrySet()) { + rankingResults.put(logic.getGame().getPlayerById(entry.getKey()).getColor(), entry.getValue()); + } + logic.addNotification(new RankingResponceNotification(rankingResults)); } @Override diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/turnstate/powercardstate/SwapState.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/turnstate/powercardstate/SwapState.java index e12a3017..293830e6 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/turnstate/powercardstate/SwapState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/turnstate/powercardstate/SwapState.java @@ -37,6 +37,8 @@ public void enter() { ArrayList ownPieces = new ArrayList<>(possibleOwnPieces.stream().map(Piece::getUuid).toList()); ArrayList enemyPieces = new ArrayList<>(possibleEnemyPieces.stream().map(Piece::getUuid).toList()); logic.addNotification(new SelectableSwapNotification(ownPieces, enemyPieces)); + possibleOwnPieces = null; + possibleEnemyPieces = null; } @Override @@ -55,7 +57,7 @@ public void setPossibleEnemyPieces(ArrayList possibleEnemyPieces) { } @Override - public void selectPiece(Piece piece) { + public void selectPiece(Piece piece){ if (possibleOwnPieces.contains(piece)){ selectedOwnPiece = piece; } else if (possibleEnemyPieces.contains(piece)){ diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/game/Game.java b/Projekte/mdga/model/src/main/java/pp/mdga/game/Game.java index 8bac5e64..c442c6c3 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/game/Game.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/game/Game.java @@ -88,7 +88,7 @@ public Game() { initializeDrawPile(); board = new Board(); die = new Die(1,2, - 1,1,6,1 + 1,1,6,1,6 ); } diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/notification/RankingResponceNotification.java b/Projekte/mdga/model/src/main/java/pp/mdga/notification/RankingResponceNotification.java new file mode 100644 index 00000000..fd39acc6 --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/notification/RankingResponceNotification.java @@ -0,0 +1,30 @@ +package pp.mdga.notification; + +import pp.mdga.game.Color; +import pp.mdga.message.server.ServerMessage; + +import java.util.HashMap; +import java.util.Map; + +public class RankingResponceNotification extends Notification { + private final Map rankingResults; + /** + * Constructor. + * + * @param rankingResults as the results of all players after the start player was determined as a Map combining + * Integers and Integers. + */ + public RankingResponceNotification(Map rankingResults) { + super(); + this.rankingResults = rankingResults; + } + + /** + * This method will be used to return rankingResults attribute of RankingResponseMessage class. + * + * @return rankingResults as a Map combining Integers and Integers. + */ + public Map getRankingResults() { + return this.rankingResults; + } +}