diff --git a/forge-gui-mobile/src/forge/screens/limited/LoadDraftScreen.java b/forge-gui-mobile/src/forge/screens/limited/LoadDraftScreen.java index f7ecfb4089a..aaa25910d51 100644 --- a/forge-gui-mobile/src/forge/screens/limited/LoadDraftScreen.java +++ b/forge-gui-mobile/src/forge/screens/limited/LoadDraftScreen.java @@ -5,6 +5,7 @@ import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment; import forge.FThreads; import forge.Forge; import forge.GuiBase; +import forge.properties.ForgePreferences; import forge.properties.ForgePreferences.FPref; import forge.screens.LaunchScreen; import forge.screens.LoadingOverlay; @@ -104,14 +105,6 @@ public class LoadDraftScreen extends LaunchScreen { return; } - if (FModel.getPreferences().getPrefBoolean(FPref.ENFORCE_DECK_LEGALITY)) { - String errorMessage = GameType.Draft.getDeckFormat().getDeckConformanceProblem(humanDeck.getDeck()); - if (errorMessage != null) { - FOptionPane.showErrorDialog("Your deck " + errorMessage + "\nPlease edit or choose a different deck.", "Invalid Deck"); - return; - } - } - // TODO: if booster draft tournaments are supported in the future, add the possibility to choose them here final boolean gauntlet = cbMode.getSelectedItem().equals("Gauntlet"); @@ -125,6 +118,10 @@ public class LoadDraftScreen extends LaunchScreen { FThreads.invokeInEdtLater(new Runnable() { @Override public void run() { + if (!checkDeckLegality(humanDeck)) { + return; + } + LoadingOverlay.show("Loading new game...", new Runnable() { @Override public void run() { @@ -150,6 +147,10 @@ public class LoadDraftScreen extends LaunchScreen { LoadingOverlay.show("Loading new game...", new Runnable() { @Override public void run() { + if (!checkDeckLegality(humanDeck)) { + return; + } + final List starter = new ArrayList(); final RegisteredPlayer human = new RegisteredPlayer(humanDeck.getDeck()).setPlayer(GamePlayerUtil.getGuiPlayer()); starter.add(human); @@ -169,4 +170,15 @@ public class LoadDraftScreen extends LaunchScreen { } }); } + + private boolean checkDeckLegality(DeckProxy humanDeck) { + if (FModel.getPreferences().getPrefBoolean(FPref.ENFORCE_DECK_LEGALITY)) { + String errorMessage = GameType.Draft.getDeckFormat().getDeckConformanceProblem(humanDeck.getDeck()); + if (errorMessage != null) { + FOptionPane.showErrorDialog("Your deck " + errorMessage + "\nPlease edit or choose a different deck.", "Invalid Deck"); + return false; + } + } + return true; + } } diff --git a/forge-gui-mobile/src/forge/screens/limited/LoadSealedScreen.java b/forge-gui-mobile/src/forge/screens/limited/LoadSealedScreen.java index d9d11f6f8de..954919c412a 100644 --- a/forge-gui-mobile/src/forge/screens/limited/LoadSealedScreen.java +++ b/forge-gui-mobile/src/forge/screens/limited/LoadSealedScreen.java @@ -21,6 +21,7 @@ import forge.itemmanager.filters.ItemFilter; import forge.match.HostedMatch; import forge.model.FModel; import forge.player.GamePlayerUtil; +import forge.properties.ForgePreferences; import forge.properties.ForgePreferences.FPref; import forge.screens.LaunchScreen; import forge.screens.LoadingOverlay; @@ -103,20 +104,16 @@ public class LoadSealedScreen extends LaunchScreen { return; } - if (FModel.getPreferences().getPrefBoolean(FPref.ENFORCE_DECK_LEGALITY)) { - String errorMessage = GameType.Sealed.getDeckFormat().getDeckConformanceProblem(humanDeck.getDeck()); - if (errorMessage != null) { - FOptionPane.showErrorDialog("Your deck " + errorMessage + "\nPlease edit or choose a different deck.", "Invalid Deck"); - return; - } - } - final boolean gauntlet = cbMode.getSelectedItem().equals("Gauntlet"); if (gauntlet) { FThreads.invokeInEdtLater(new Runnable() { @Override public void run() { + if (!checkDeckLegality(humanDeck)) { + return; + } + LoadingOverlay.show("Loading new game...", new Runnable() { @Override public void run() { @@ -140,6 +137,10 @@ public class LoadSealedScreen extends LaunchScreen { FThreads.invokeInEdtLater(new Runnable() { @Override public void run() { + if (!checkDeckLegality(humanDeck)) { + return; + } + LoadingOverlay.show("Loading new game...", new Runnable() { @Override public void run() { @@ -162,4 +163,15 @@ public class LoadSealedScreen extends LaunchScreen { } }); } + + private boolean checkDeckLegality(DeckProxy humanDeck) { + if (FModel.getPreferences().getPrefBoolean(FPref.ENFORCE_DECK_LEGALITY)) { + String errorMessage = GameType.Sealed.getDeckFormat().getDeckConformanceProblem(humanDeck.getDeck()); + if (errorMessage != null) { + FOptionPane.showErrorDialog("Your deck " + errorMessage + "\nPlease edit or choose a different deck.", "Invalid Deck"); + return false; + } + } + return true; + } }