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(); }