diff --git a/src/main/java/forge/Card.java b/src/main/java/forge/Card.java index aa964ab83b5..053f6fd8812 100644 --- a/src/main/java/forge/Card.java +++ b/src/main/java/forge/Card.java @@ -7194,15 +7194,13 @@ public class Card extends GameEntity implements Comparable { if (!this.isInZone(realZone)) { return false; } + } else if (property.equals("ChosenType")) { + if (!this.isType(source.getChosenType())) { + return false; + } } else { - if (property.equals("ChosenType")) { - if (!this.isType(source.getChosenType())) { - return false; - } - } else { - if (!this.isType(property)) { - return false; - } + if (!this.isType(property)) { + return false; } } return true; diff --git a/src/main/java/forge/deck/DeckFormat.java b/src/main/java/forge/deck/DeckFormat.java index 440e5ac4957..7d43e271905 100644 --- a/src/main/java/forge/deck/DeckFormat.java +++ b/src/main/java/forge/deck/DeckFormat.java @@ -23,9 +23,11 @@ import java.util.Map.Entry; import org.apache.commons.lang.math.IntRange; +import forge.Singletons; import forge.card.CardCoreType; import forge.item.CardDb; import forge.item.CardPrinted; +import forge.properties.ForgePreferences.FPref; import forge.util.Aggregates; /** @@ -109,6 +111,11 @@ public enum DeckFormat { @SuppressWarnings("incomplete-switch") public String getDeckConformanceProblem(Deck deck) { + // That's really a bad dependence + if (!Singletons.getModel().getPreferences().getPrefBoolean(FPref.ENFORCE_DECK_LEGALITY)) { + return null; + } + int deckSize = deck.getMain().countAll(); int min = getMainRange().getMinimumInteger(); diff --git a/src/main/java/forge/gui/home/sanctioned/CSubmenuConstructed.java b/src/main/java/forge/gui/home/sanctioned/CSubmenuConstructed.java index 94599bf9578..9ed1e2bc6a1 100644 --- a/src/main/java/forge/gui/home/sanctioned/CSubmenuConstructed.java +++ b/src/main/java/forge/gui/home/sanctioned/CSubmenuConstructed.java @@ -98,12 +98,10 @@ public enum CSubmenuConstructed implements ICDoc { private void startGame(final GameType gameType) { Deck humanDeck = VSubmenuConstructed.SINGLETON_INSTANCE.getDcHuman().getDeck(); - if (Singletons.getModel().getPreferences().getPrefBoolean(FPref.ENFORCE_DECK_LEGALITY)) { - String errorMessage = gameType.getDecksFormat().getDeckConformanceProblem(humanDeck); - if (null != errorMessage) { - JOptionPane.showMessageDialog(null, "Your deck " + errorMessage, "Invalid deck", JOptionPane.ERROR_MESSAGE); - return; - } + String errorMessage = gameType.getDecksFormat().getDeckConformanceProblem(humanDeck); + if (null != errorMessage) { + JOptionPane.showMessageDialog(null, "Your deck " + errorMessage, "Invalid deck", JOptionPane.ERROR_MESSAGE); + return; } SwingUtilities.invokeLater(new Runnable() {