diff --git a/.gitattributes b/.gitattributes index 0eff29ea9c1..a5efb479ce0 100644 --- a/.gitattributes +++ b/.gitattributes @@ -16146,6 +16146,7 @@ forge-m-base/src/forge/screens/sealed/SealedScreen.java -text forge-m-base/src/forge/screens/settings/SettingsScreen.java -text forge-m-base/src/forge/toolbox/FButton.java -text forge-m-base/src/forge/toolbox/FCardPanel.java -text +forge-m-base/src/forge/toolbox/FCardZoom.java -text forge-m-base/src/forge/toolbox/FContainer.java -text forge-m-base/src/forge/toolbox/FDisplayObject.java -text forge-m-base/src/forge/toolbox/FFileChooser.java -text @@ -16160,7 +16161,6 @@ forge-m-base/src/forge/toolbox/FScrollPane.java -text forge-m-base/src/forge/toolbox/FTextArea.java -text forge-m-base/src/forge/toolbox/GuiChoose.java -text forge-m-base/src/forge/toolbox/GuiDialog.java -text -forge-m-base/src/forge/toolbox/VCardZoom.java -text forge-m-base/src/forge/utils/Constants.java -text forge-m-base/src/forge/utils/Evaluator.java -text forge-m-base/src/forge/utils/ForgePreferences.java -text diff --git a/forge-game/src/main/java/forge/game/combat/Combat.java b/forge-game/src/main/java/forge/game/combat/Combat.java index 9f35f12260d..1c938d57efa 100644 --- a/forge-game/src/main/java/forge/game/combat/Combat.java +++ b/forge-game/src/main/java/forge/game/combat/Combat.java @@ -389,17 +389,16 @@ public class Combat { } } - Collection toRemove = Lists.newArrayList(); for(Entry be : blockedBands.entries()) { Card blocker = be.getValue(); if ( !blocker.isInPlay() || !blocker.isCreature() ) { missingCombatants.add(blocker); } } - for (Card c : missingCombatants) + for (Card c : missingCombatants) { removeFromCombat(c); + } } - // Call this method right after turn-based action of declare blockers has been performed public final void fireTriggersForUnblockedAttackers() { diff --git a/forge-m-base/src/forge/Forge.java b/forge-m-base/src/forge/Forge.java index c5bf7cce956..660b9c8cfbf 100644 --- a/forge-m-base/src/forge/Forge.java +++ b/forge-m-base/src/forge/Forge.java @@ -32,6 +32,7 @@ import forge.screens.home.HomeScreen; import forge.toolbox.FContainer; import forge.toolbox.FDisplayObject; import forge.toolbox.FGestureAdapter; +import forge.toolbox.FOverlay; public class Forge implements ApplicationListener { private static Forge game; @@ -134,6 +135,10 @@ public class Forge implements ApplicationListener { batch.begin(); Graphics g = new Graphics(); screen.draw(g); + for (FOverlay overlay : FOverlay.getOverlays()) { + overlay.setSize(screenWidth, screenHeight); //update overlay sizes as they're rendered + overlay.draw(g); + } batch.end(); } @@ -160,6 +165,11 @@ public class Forge implements ApplicationListener { @Override public void dispose () { if (currentScreen != null) { + FOverlay overlay = FOverlay.getTopOverlay(); + while (overlay != null) { + overlay.hide(); + overlay = FOverlay.getTopOverlay(); + } currentScreen.onClose(false); currentScreen = null; } @@ -175,7 +185,13 @@ public class Forge implements ApplicationListener { public boolean touchDown(int x, int y, int pointer, int button) { potentialListeners.clear(); if (currentScreen != null) { //base potential listeners on object containing touch down point - currentScreen.buildTouchListeners(x, y, potentialListeners); + FOverlay overlay = FOverlay.getTopOverlay(); + if (overlay != null) { //let top overlay handle gestures if any is open + overlay.buildTouchListeners(x, y, potentialListeners); + } + else { + currentScreen.buildTouchListeners(x, y, potentialListeners); + } } return super.touchDown(x, y, pointer, button); } diff --git a/forge-m-base/src/forge/screens/match/FControl.java b/forge-m-base/src/forge/screens/match/FControl.java index 622791e0df8..62a5622afb1 100644 --- a/forge-m-base/src/forge/screens/match/FControl.java +++ b/forge-m-base/src/forge/screens/match/FControl.java @@ -43,6 +43,7 @@ import forge.screens.match.views.VAssignDamage; import forge.screens.match.views.VPhaseIndicator.PhaseLabel; import forge.screens.match.views.VPlayerPanel; import forge.toolbox.FCardPanel; +import forge.toolbox.FCardZoom; import forge.toolbox.FOptionPane; import forge.utils.ForgePreferences.FPref; @@ -229,10 +230,9 @@ public class FControl { } public static void showMessage(final String s0) { - if (view.getCardZoom().isVisible() && - view.getCardZoom().getPrompt().getMessage().equals(view.getPrompt().getMessage())) { + if (FCardZoom.isOpen() && FCardZoom.getMessage().equals(view.getPrompt().getMessage())) { //update zoom view's prompt message if it's shared with main view's prompt's message - view.getCardZoom().getPrompt().setMessage(s0); + FCardZoom.setMessage(s0); } view.getPrompt().setMessage(s0); } diff --git a/forge-m-base/src/forge/screens/match/FControlGameEventHandler.java b/forge-m-base/src/forge/screens/match/FControlGameEventHandler.java index ad5d7a90992..363342ab7d2 100644 --- a/forge-m-base/src/forge/screens/match/FControlGameEventHandler.java +++ b/forge-m-base/src/forge/screens/match/FControlGameEventHandler.java @@ -14,6 +14,7 @@ import forge.game.zone.Zone; import forge.game.zone.ZoneType; import forge.net.FServer; import forge.screens.match.views.VPhaseIndicator.PhaseLabel; +import forge.screens.match.winlose.ViewWinLose; import forge.toolbox.GuiChoose; import forge.util.Lang; import forge.util.maps.MapOfLists; @@ -136,8 +137,7 @@ public class FControlGameEventHandler extends IGameEventVisitor.Base { FThreads.invokeInEdtNowOrLater(new Runnable() { @Override public void run() { - /*new ViewWinLose(FControl.getGame()); - SOverlayUtils.showOverlay();*/ + new ViewWinLose(FControl.getGame()).setVisible(true); } }); return null; diff --git a/forge-m-base/src/forge/screens/match/MatchScreen.java b/forge-m-base/src/forge/screens/match/MatchScreen.java index 67af5c909d5..152da0c388d 100644 --- a/forge-m-base/src/forge/screens/match/MatchScreen.java +++ b/forge-m-base/src/forge/screens/match/MatchScreen.java @@ -10,7 +10,6 @@ import forge.screens.match.views.VAvatar; import forge.screens.match.views.VHeader; import forge.screens.match.views.VPlayerPanel; import forge.screens.match.views.VPrompt; -import forge.toolbox.VCardZoom; import forge.Forge.Graphics; import forge.assets.FSkinColor; import forge.assets.FSkinTexture; @@ -24,7 +23,6 @@ public class MatchScreen extends FScreen { private final Map playerPanels = new HashMap(); private final VHeader header; private final VPrompt prompt; - private final VCardZoom cardZoom; private VPlayerPanel bottomPlayerPanel, topPlayerPanel; @@ -54,8 +52,6 @@ public class MatchScreen extends FScreen { })); header = add(new VHeader(this)); //add header just before zoom so drop downs appear on top - - cardZoom = add(new VCardZoom()); } public void updatePlayers() { @@ -82,10 +78,6 @@ public class MatchScreen extends FScreen { return header; } - public VCardZoom getCardZoom() { - return cardZoom; - } - public VPlayerPanel getTopPlayerPanel() { return topPlayerPanel; } @@ -157,7 +149,6 @@ public class MatchScreen extends FScreen { topPlayerPanel.setBounds(0, startY, width, topPlayerPanelHeight); bottomPlayerPanel.setBounds(0, height - VPrompt.HEIGHT - bottomPlayerPanelHeight, width, bottomPlayerPanelHeight); prompt.setBounds(0, height - VPrompt.HEIGHT, width, VPrompt.HEIGHT); - cardZoom.setBounds(0, 0, width, height); header.setDropDownHeight(topPlayerPanel.getBottom() - header.getHeight()); //make header drop downs go to bottom of top player panel } } diff --git a/forge-m-base/src/forge/screens/match/input/InputAttack.java b/forge-m-base/src/forge/screens/match/input/InputAttack.java index 56d83a17709..ed365434a2c 100644 --- a/forge-m-base/src/forge/screens/match/input/InputAttack.java +++ b/forge-m-base/src/forge/screens/match/input/InputAttack.java @@ -30,7 +30,8 @@ import forge.game.player.Player; import forge.game.zone.ZoneType; import forge.screens.match.FControl; import forge.screens.match.events.UiEventAttackerDeclared; -import forge.toolbox.VCardZoom.ZoomController; +import forge.toolbox.FCardZoom; +import forge.toolbox.FCardZoom.ZoomController; import java.util.ArrayList; import java.util.List; @@ -143,7 +144,7 @@ public class InputAttack extends InputSyncronizedBase { /** {@inheritDoc} */ @Override protected final void onCardSelected(final Card card, final List orderedCardOptions) { - FControl.getView().getCardZoom().show(FControl.getView().getPrompt().getMessage(), + FCardZoom.show(FControl.getView().getPrompt().getMessage(), card, orderedCardOptions, new ZoomController