From 4eee62079eeef8728675ee04c0d077378bee8393 Mon Sep 17 00:00:00 2001 From: Felix Koppe Date: Tue, 10 Dec 2024 13:56:42 +0100 Subject: [PATCH 1/4] Add RankingResponceNotification --- .../mdga/client/NotificationSynchronizer.java | 4 +++ .../RankingResponceNotification.java | 30 +++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 Projekte/mdga/model/src/main/java/pp/mdga/notification/RankingResponceNotification.java 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/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; + } +} From d65111680b324806d1b6658e79b23fd4c24eb35b Mon Sep 17 00:00:00 2001 From: Fleischer Hanno Date: Tue, 10 Dec 2024 13:55:58 +0100 Subject: [PATCH 2/4] added RankingResponseNotification to be sent to the client --- .../determinestartplayerstate/WaitRankingState.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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 From 11fa303f1bcef0708d4bbe291b516c3c54b3bbcf Mon Sep 17 00:00:00 2001 From: Benjamin Feyer Date: Tue, 10 Dec 2024 14:05:43 +0100 Subject: [PATCH 3/4] added flag --- .../gamestate/turnstate/powercardstate/SwapState.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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 9b9754aa..b77d5cef 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 @@ -18,6 +18,7 @@ public class SwapState extends PowerCardStates { private final System.Logger LOGGER = System.getLogger(this.getClass().getName()); private final PowerCardState parent; + private boolean hasSended = false; private ArrayList possibleOwnPieces; private ArrayList possibleEnemyPieces; @@ -33,6 +34,7 @@ public SwapState(ClientState parent, ClientGameLogic logic) { @Override public void enter() { + hasSended = false; LOGGER.log(System.Logger.Level.INFO, "Entering SwapState"); ArrayList ownPieces = new ArrayList<>(possibleOwnPieces.stream().map(Piece::getUuid).toList()); ArrayList enemyPieces = new ArrayList<>(possibleEnemyPieces.stream().map(Piece::getUuid).toList()); @@ -41,6 +43,7 @@ public void enter() { @Override public void exit() { + hasSended = false; LOGGER.log(System.Logger.Level.INFO, "Exiting SwapState"); possibleOwnPieces = null; possibleEnemyPieces = null; @@ -66,7 +69,10 @@ public void selectPiece(Piece piece){ temp.add(selectedOwnPiece); temp.add(selectedEnemyPiece); System.out.println("Client : Swap: temp: "+temp.get(0)+temp.get(1)); - logic.send(new SelectedPiecesMessage(temp)); + if(!hasSended){ + hasSended = true; + logic.send(new SelectedPiecesMessage(temp)); + } } } From 40a61daa58abc18ced8495e179e0c96ba9f61e9f Mon Sep 17 00:00:00 2001 From: Benjamin Feyer Date: Tue, 10 Dec 2024 14:07:52 +0100 Subject: [PATCH 4/4] added flag --- .../client/gamestate/turnstate/powercardstate/SwapState.java | 2 ++ 1 file changed, 2 insertions(+) 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 b77d5cef..d3ef4a67 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 @@ -39,6 +39,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