From a399b14291bc575d4157b7f2e6aafe59717b7124 Mon Sep 17 00:00:00 2001 From: Felix Koppe Date: Thu, 5 Dec 2024 18:11:57 +0100 Subject: [PATCH] Improve interrupt --- .../mdga/client/NotificationSynchronizer.java | 5 +++-- .../mdga/client/dialog/InterruptDialog.java | 22 ++++++++++++++++++- .../java/pp/mdga/client/view/GameView.java | 5 ++++- 3 files changed, 28 insertions(+), 4 deletions(-) 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 8578b46e..64bc3545 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 @@ -89,6 +89,7 @@ private void handleGame(Notification notification) { if (notification instanceof AcquireCardNotification n) { guiHandler.addCardOwn(n.getBonusCard()); + app.getAcousticHandler().playSound(MdgaSound.BONUS); } else if (notification instanceof ActivePlayerNotification n) { gameView.getGuiHandler().setActivePlayer(n.getColor()); boardHandler.showDice(n.getColor()); @@ -127,8 +128,8 @@ private void handleGame(Notification notification) { } else if (notification instanceof HomeMoveNotification home) { boardHandler.movePieceHomeAnim(home.getPieceId(), home.getHomeIndex()); guiHandler.hideText(); - } else if (notification instanceof InterruptNotification) { - gameView.enterInterrupt(); + } else if (notification instanceof InterruptNotification notification1) { + gameView.enterInterrupt(notification1.getColor()); } else if (notification instanceof MovePieceNotification n) { if(n.isMoveStart()) { //StartMove diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/dialog/InterruptDialog.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/dialog/InterruptDialog.java index 7b8d63e2..79161b45 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/dialog/InterruptDialog.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/dialog/InterruptDialog.java @@ -8,18 +8,21 @@ import pp.mdga.client.button.LabelButton; import pp.mdga.client.button.MenuButton; import pp.mdga.client.view.MdgaView; +import pp.mdga.game.Color; public class InterruptDialog extends Dialog { private ButtonRight forceButton; private LabelButton label; + private String text = ""; + public InterruptDialog(MdgaApp app, Node node) { super(app, node); forceButton = new ButtonRight(app, node, () -> app.getModelSynchronize().force(), "Erzwingen", 1); - label = new LabelButton(app, node, "Warte auf Spieler...", new Vector2f(5.5f * 1.5f, 2), new Vector2f(0.5f, 0f), false); + label = new LabelButton(app, node, "Warte auf " + text + "...", new Vector2f(5.5f * 1.5f, 2), new Vector2f(0.5f, 0f), false); float offset = 2.8f; @@ -40,4 +43,21 @@ protected void onHide() { forceButton.hide(); label.hide(); } + + public void setColor(Color color) { + switch (color) { + case AIRFORCE: + text = "Luftwaffe"; + break; + case ARMY: + text = "Heer"; + break; + case NAVY: + text = "Marine"; + break; + case CYBER: + text = "CIR"; + break; + } + } } diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/view/GameView.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/view/GameView.java index 973327c2..f28810a1 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/view/GameView.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/view/GameView.java @@ -116,7 +116,7 @@ public void noConfirm() { confirmButton.hide(); } - public void enterInterrupt() { + public void enterInterrupt(Color color) { enterOverlay(Overlay.INTERRUPT); guiNode.detachChild(guiHandlerNode); @@ -124,6 +124,7 @@ public void enterInterrupt() { app.getInputSynchronize().setClickAllowed(false); + interruptDialog.setColor(color); interruptDialog.show(); } @@ -135,6 +136,8 @@ public void leaveInterrupt() { app.getInputSynchronize().setClickAllowed(true); + app.getAcousticHandler().playSound(MdgaSound.START); + interruptDialog.hide(); } }