From 9dd2d3f58b458dd3cfcd291a761079f0eb167abf Mon Sep 17 00:00:00 2001 From: Cedric Beck Date: Sun, 1 Dec 2024 23:57:53 +0100 Subject: [PATCH] added finish text; edited Notifications --- .../pp/mdga/client/InputSynchronizer.java | 3 +- .../mdga/client/NotificationSynchronizer.java | 5 +-- .../pp/mdga/client/gui/ActionTextHandler.java | 10 ++++++ .../java/pp/mdga/client/gui/GuiHandler.java | 7 ++++- .../mdga/notification/DicingNotification.java | 31 ------------------- .../mdga/notification/FinishNotification.java | 15 +++++++++ 6 files changed, 36 insertions(+), 35 deletions(-) delete mode 100644 Projekte/mdga/model/src/main/java/pp/mdga/notification/DicingNotification.java create mode 100644 Projekte/mdga/model/src/main/java/pp/mdga/notification/FinishNotification.java diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/InputSynchronizer.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/InputSynchronizer.java index 0c269d1e..83c1d4ea 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/InputSynchronizer.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/InputSynchronizer.java @@ -21,6 +21,7 @@ import pp.mdga.game.BonusCard; import pp.mdga.game.Color; import pp.mdga.game.Piece; +import pp.mdga.notification.FinishNotification; import pp.mdga.notification.SelectableCardsNotification; import java.util.List; @@ -116,7 +117,7 @@ else if(boardSelect != null) { } if(name.equals("Test") &&isPressed){ if(app.getView() instanceof GameView gameView){ - app.getNotificationSynchronizer().addTestNotification(new SelectableCardsNotification(List.of(BonusCard.SHIELD))); + app.getNotificationSynchronizer().addTestNotification(new FinishNotification(Color.NAVY)); } } } 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 b2a733f6..a704e3e8 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 @@ -113,8 +113,6 @@ private void handleGame(Notification notification) { } } else if (notification instanceof DiceNowNotification) { guiHandler.showDice(); - } else if (notification instanceof DicingNotification n) { - //TODO ??? } else if (notification instanceof DrawCardNotification n) { guiHandler.drawCard(n.getColor()); } else if (notification instanceof HomeMoveNotification home) { @@ -131,6 +129,7 @@ private void handleGame(Notification notification) { //InfieldMove boardHandler.movePiece(n.getPiece(), n.getStartIndex(), n.getMoveIndex()); } + guiHandler.hideText(); } else if (notification instanceof ThrowPieceNotification n) { boardHandler.throwPiece(n.getPieceId()); } else if (notification instanceof NoShieldNotification n) { @@ -179,6 +178,8 @@ private void handleGame(Notification notification) { modelSynchronizer.setSwap(false); } else if (notification instanceof TurboActiveNotification){ guiHandler.turbo(); + } else if (notification instanceof FinishNotification n){ + guiHandler.finish(n.getColorFinished()); } else { throw new RuntimeException("notification not expected: " + notification.toString()); } diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/gui/ActionTextHandler.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/gui/ActionTextHandler.java index aa41bdf5..1b868163 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/gui/ActionTextHandler.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/gui/ActionTextHandler.java @@ -111,6 +111,16 @@ public void drawCardOwn(Color color){ createTopText(new String[]{"Du"," erhälst eine Bonuskarte"}, 5,70, new ColorRGBA[]{playerColorToColorRGBA(color),ColorRGBA.White}, 0).addControl(new ZoomControl()); } + public void finishText(String name, Color color){ + createTopText(new String[]{name," ist fertig!"}, 7,70, new ColorRGBA[]{playerColorToColorRGBA(color),ColorRGBA.White}, 0).addControl(new ZoomControl()); + } + + public void finishTextOwn(Color color){ + createTopText(new String[]{"Du", " bist fertig!"}, 7,70, new ColorRGBA[]{playerColorToColorRGBA(color),ColorRGBA.White}, 0).addControl(new ZoomControl()); + } + + + private ColorRGBA playerColorToColorRGBA(Color color){ return switch (color){ case ARMY -> ColorRGBA.Green; diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/gui/GuiHandler.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/gui/GuiHandler.java index 816f0874..8761e3da 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/gui/GuiHandler.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/gui/GuiHandler.java @@ -51,7 +51,7 @@ public void rollDice(int rollNum, int mult) { if(mult == -1) actionTextHandler.ownDice(rollNum); else actionTextHandler.ownDiceMult(rollNum, mult); hideDice(); - //TODO send Model finished + app.getModelSynchronize().animationEnd(); }); } @@ -129,5 +129,10 @@ public void drawCard(Color color) { else actionTextHandler.drawCard(playerNameHandler.getName(color), color); } + public void finish(Color color){ + if(ownColor == color) actionTextHandler.finishTextOwn(color); + else actionTextHandler.finishText(playerNameHandler.getName(color), color); + } + } diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/notification/DicingNotification.java b/Projekte/mdga/model/src/main/java/pp/mdga/notification/DicingNotification.java deleted file mode 100644 index b2254605..00000000 --- a/Projekte/mdga/model/src/main/java/pp/mdga/notification/DicingNotification.java +++ /dev/null @@ -1,31 +0,0 @@ -package pp.mdga.notification; - -import pp.mdga.game.Color; - -/** - * Notification that is sent when a player has diced. - */ -public class DicingNotification extends Notification { - /** - * The color of the player that diced. - */ - private final Color color; - - /** - * Constructor. - * - * @param color The color of the player that diced. - */ - public DicingNotification(Color color) { - this.color = color; - } - - /** - * Get the color of the player that diced. - * - * @return The color of the player that diced. - */ - public Color getColor() { - return color; - } -} diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/notification/FinishNotification.java b/Projekte/mdga/model/src/main/java/pp/mdga/notification/FinishNotification.java new file mode 100644 index 00000000..d51a843f --- /dev/null +++ b/Projekte/mdga/model/src/main/java/pp/mdga/notification/FinishNotification.java @@ -0,0 +1,15 @@ +package pp.mdga.notification; + +import pp.mdga.game.Color; + +public class FinishNotification extends Notification{ + private Color colorFinished; + + public FinishNotification(Color colorFinished){ + this.colorFinished = colorFinished; + } + + public Color getColorFinished() { + return colorFinished; + } +}