From 00902d2e6bfa5d681fd0517a686fb975df36fa87 Mon Sep 17 00:00:00 2001 From: Felix Koppe Date: Sun, 8 Dec 2024 23:05:30 +0100 Subject: [PATCH] Add move throw sync --- .../src/main/java/pp/mdga/client/ModelSynchronizer.java | 8 ++++++-- .../java/pp/mdga/client/NotificationSynchronizer.java | 7 +++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/ModelSynchronizer.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/ModelSynchronizer.java index 7c500115..cea98141 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/ModelSynchronizer.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/ModelSynchronizer.java @@ -23,7 +23,11 @@ public class ModelSynchronizer { } public void animationEnd() { - app.getGameLogic().selectAnimationEnd(); + if(app.getNotificationSynchronizer().waitForAnimation) { + app.getNotificationSynchronizer().waitForAnimation = false; + } else { + app.getGameLogic().selectAnimationEnd(); + } } public void select(UUID a, UUID b){ @@ -94,7 +98,7 @@ public void confirm() { a = null; b = null; card = null; - + gameView.noConfirm(); gameView.hideNoPower(); } 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 64aadb52..7bc98b81 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 @@ -22,12 +22,18 @@ public class NotificationSynchronizer { private static final float STANDARD_DELAY = 2.5f; + public boolean waitForAnimation = false; + NotificationSynchronizer(MdgaApp app) { this.app = app; } public void update() { while (timer.getTimeInSeconds() >= delay) { + if(waitForAnimation) { + return; + } + Notification n = app.getGameLogic().getNotification(); if(n == null) { @@ -161,6 +167,7 @@ private void handleGame(Notification notification) { guiHandler.hideText(); } else if (notification instanceof ThrowPieceNotification n) { boardHandler.throwPiece(n.getPieceId(), n.getThrowColor()); + waitForAnimation = true; } else if (notification instanceof NoShieldNotification n) { boardHandler.unshieldPiece(n.getPieceId()); } else if (notification instanceof PlayCardNotification n) {