From cfe2a7e98dc5fb702812cd81b4b45297bf47565d Mon Sep 17 00:00:00 2001 From: Myrd Date: Sun, 7 May 2017 19:36:14 +0000 Subject: [PATCH] Quitting a gauntlet match should abandon it (when not using the "quit and save" option after a win). With this change, you can now properly edit your deck between gauntlet tries and have the effect be reflected in the next gauntlet. --- .../main/java/forge/screens/match/GauntletWinLose.java | 6 ++++++ .../src/forge/screens/match/winlose/GauntletWinLose.java | 6 ++++++ forge-gui/src/main/java/forge/gauntlet/GauntletData.java | 1 + .../java/forge/gauntlet/GauntletWinLoseController.java | 9 +++++++++ 4 files changed, 22 insertions(+) diff --git a/forge-gui-desktop/src/main/java/forge/screens/match/GauntletWinLose.java b/forge-gui-desktop/src/main/java/forge/screens/match/GauntletWinLose.java index 126912cb05d..371120f8264 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/match/GauntletWinLose.java +++ b/forge-gui-desktop/src/main/java/forge/screens/match/GauntletWinLose.java @@ -114,4 +114,10 @@ public class GauntletWinLose extends ControlWinLose { super.actionOnContinue(); } } + + @Override + public void actionOnQuit() { + super.actionOnQuit(); + controller.actionOnQuit(); + } } diff --git a/forge-gui-mobile/src/forge/screens/match/winlose/GauntletWinLose.java b/forge-gui-mobile/src/forge/screens/match/winlose/GauntletWinLose.java index 0e0248e6516..8215fa93876 100644 --- a/forge-gui-mobile/src/forge/screens/match/winlose/GauntletWinLose.java +++ b/forge-gui-mobile/src/forge/screens/match/winlose/GauntletWinLose.java @@ -91,4 +91,10 @@ public class GauntletWinLose extends ControlWinLose { super.actionOnContinue(); } } + + @Override + public void actionOnQuit() { + super.actionOnQuit(); + controller.actionOnQuit(); + } } diff --git a/forge-gui/src/main/java/forge/gauntlet/GauntletData.java b/forge-gui/src/main/java/forge/gauntlet/GauntletData.java index 54506fb5c21..fb2c4c30dbf 100644 --- a/forge-gui/src/main/java/forge/gauntlet/GauntletData.java +++ b/forge-gui/src/main/java/forge/gauntlet/GauntletData.java @@ -69,6 +69,7 @@ public final class GauntletData { /** Resets a gauntlet data to an unplayed state, then stamps and saves. */ public void reset() { + userDeck = null; completed = 0; stamp(); eventRecords.clear(); diff --git a/forge-gui/src/main/java/forge/gauntlet/GauntletWinLoseController.java b/forge-gui/src/main/java/forge/gauntlet/GauntletWinLoseController.java index 1efd72816ad..486ffa915ee 100644 --- a/forge-gui/src/main/java/forge/gauntlet/GauntletWinLoseController.java +++ b/forge-gui/src/main/java/forge/gauntlet/GauntletWinLoseController.java @@ -15,6 +15,8 @@ import forge.model.FModel; import forge.player.GamePlayerUtil; public abstract class GauntletWinLoseController { + private static final String SAVE_AND_QUIT = "Save and Quit"; + private final IWinLoseView view; private final GameView lastGame; @@ -127,6 +129,13 @@ public abstract class GauntletWinLoseController { return false; } + public final void actionOnQuit() { + if (!SAVE_AND_QUIT.equals(view.getBtnQuit().getText())) { + // Quitting mid-match abandons the gauntlet. + FModel.getGauntletData().reset(); + } + } + protected abstract void showOutcome(boolean isMatchOver, String message1, String message2, FSkinProp icon, List lstEventNames, List lstEventRecords, int len, int num); protected abstract void saveOptions(); }