diff --git a/Projekte/.run/MdgaApp.run.xml b/Projekte/.run/MdgaApp.run.xml deleted file mode 100644 index f0626a72..00000000 --- a/Projekte/.run/MdgaApp.run.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - \ No newline at end of file diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/MdgaApp.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/MdgaApp.java index 9dcf17cc..6a69b6ba 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/MdgaApp.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/MdgaApp.java @@ -66,7 +66,7 @@ public class MdgaApp extends SimpleApplication { private ServerConnection networkConnection; - public static final int DEBUG_MULTIPLIER = 1; + public static final int DEBUG_MULTIPLIER = 0; public MdgaApp() { networkConnection = new NetworkSupport(this); 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 be1a4cfb..4cb2ca07 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 @@ -160,7 +160,7 @@ private void handleGame(Notification notification) { } else if (notification instanceof HomeMoveNotification home) { boardHandler.movePieceHomeAnim(home.getPieceId(), home.getHomeIndex()); guiHandler.hideText(); - app.getGameLogic().selectAnimationEnd(); + waitForAnimation = true; } else if (notification instanceof InterruptNotification notification1) { gameView.enterInterrupt(notification1.getColor()); } else if (notification instanceof MovePieceNotification n) { diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/board/BoardHandler.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/board/BoardHandler.java index 8022ea36..b2758a1d 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/board/BoardHandler.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/board/BoardHandler.java @@ -442,6 +442,7 @@ private void moveHomePiece(UUID uuid, int index){ pieceControl.setRotation(getRotationMove(firstHomeNode.getLocation(), lastHomeNode.getLocation())); app.getModelSynchronize().animationEnd(); + app.getModelSynchronize().animationEnd(); } /** diff --git a/Projekte/mdga/client/src/main/java/pp/mdga/client/gui/DiceControl.java b/Projekte/mdga/client/src/main/java/pp/mdga/client/gui/DiceControl.java index a8c4fb3c..e90f20f5 100644 --- a/Projekte/mdga/client/src/main/java/pp/mdga/client/gui/DiceControl.java +++ b/Projekte/mdga/client/src/main/java/pp/mdga/client/gui/DiceControl.java @@ -21,7 +21,7 @@ public class DiceControl extends AbstractControl { private Quaternion targetRotation; private final Vector3f angularVelocity = new Vector3f(); - private float deceleration = 1.7f; + private float deceleration = 1f; private float timeElapsed = 0.0f; private float rollDuration = 1f; private static final int ANGULAR_MIN = 5; diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/turnstate/choosepiecestate/SelectPieceState.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/turnstate/choosepiecestate/SelectPieceState.java index 99ab6da4..21eee439 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/turnstate/choosepiecestate/SelectPieceState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/turnstate/choosepiecestate/SelectPieceState.java @@ -4,12 +4,15 @@ import pp.mdga.client.ClientState; import pp.mdga.client.gamestate.turnstate.ChoosePieceState; import pp.mdga.game.Piece; +import pp.mdga.game.ShieldState; import pp.mdga.game.PieceState; import pp.mdga.message.client.RequestMoveMessage; import pp.mdga.message.client.SelectedPiecesMessage; import pp.mdga.message.server.MoveMessage; import pp.mdga.notification.HomeMoveNotification; import pp.mdga.notification.MovePieceNotification; +import pp.mdga.notification.ShieldActiveNotification; +import pp.mdga.notification.ShieldSuppressedNotification; import pp.mdga.notification.ThrowPieceNotification; import java.util.ArrayList; @@ -107,6 +110,15 @@ public void received(MoveMessage msg) { logic.getGame().getBoard().getInfield()[logic.getGame().getBoard().getInfieldIndexOfPiece(piece)].clearOccupant(); //set new node logic.getGame().getBoard().getInfield()[msg.getTargetIndex()].setOccupant(piece); + if (logic.getGame().getBoard().getInfield()[msg.getTargetIndex()].isStart()){ + if (piece.isShielded()){ + piece.setShield(ShieldState.SUPPRESSED); + logic.addNotification(new ShieldSuppressedNotification(piece.getUuid())); + } + } else if (piece.isSuppressed()){ + piece.setShield(ShieldState.ACTIVE); + logic.addNotification(new ShieldActiveNotification(piece.getUuid())); + } } logic.getGame().setTurboFlag(false); parent.getParent().setState(parent.getParent().getMovePiece()); diff --git a/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/turnstate/choosepiecestate/StartPieceState.java b/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/turnstate/choosepiecestate/StartPieceState.java index 9594e356..1ad5972b 100644 --- a/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/turnstate/choosepiecestate/StartPieceState.java +++ b/Projekte/mdga/model/src/main/java/pp/mdga/client/gamestate/turnstate/choosepiecestate/StartPieceState.java @@ -5,10 +5,14 @@ import pp.mdga.client.gamestate.turnstate.ChoosePieceState; import pp.mdga.game.Node; import pp.mdga.game.Piece; +import pp.mdga.game.ShieldState; import pp.mdga.message.client.RequestMoveMessage; import pp.mdga.message.client.SelectedPiecesMessage; import pp.mdga.message.server.MoveMessage; import pp.mdga.notification.MovePieceNotification; +import pp.mdga.notification.RemoveShieldNotification; +import pp.mdga.notification.ShieldActiveNotification; +import pp.mdga.notification.ShieldSuppressedNotification; import pp.mdga.notification.ThrowPieceNotification; import java.util.ArrayList; @@ -63,6 +67,17 @@ public void received(MoveMessage msg){ logic.addNotification(new ThrowPieceNotification(occ.getUuid(), piece.getColor())); } + if (targetNode.isStart()){ + if (piece.isShielded()){ + piece.setShield(ShieldState.SUPPRESSED); + logic.addNotification(new ShieldSuppressedNotification(piece.getUuid())); + } + } else if (piece.isSuppressed()){ + piece.setShield(ShieldState.ACTIVE); + logic.addNotification(new RemoveShieldNotification(piece.getUuid())); + logic.addNotification(new ShieldActiveNotification(piece.getUuid())); + } + targetNode.setOccupant(msg.getPiece()); logic.addNotification(new MovePieceNotification(msg.getPiece().getUuid(), oldIndex, targetIndex)); logic.getGame().setTurboFlag(false);