diff --git a/Mage.Client/src/main/java/mage/client/deck/generator/DeckGenerator.java b/Mage.Client/src/main/java/mage/client/deck/generator/DeckGenerator.java index cb63a4d543a..5f654e18b75 100644 --- a/Mage.Client/src/main/java/mage/client/deck/generator/DeckGenerator.java +++ b/Mage.Client/src/main/java/mage/client/deck/generator/DeckGenerator.java @@ -155,7 +155,7 @@ public class DeckGenerator { * @return the final deck to use. */ private static Deck generateDeck(int deckSize, List allowedColors, List setsToUse) { - genPool = new DeckGeneratorPool(deckSize, allowedColors, genDialog.isSingleton()); + genPool = new DeckGeneratorPool(deckSize, allowedColors, genDialog.isSingleton(), genDialog.isColorless()); final String[] sets = setsToUse.toArray(new String[setsToUse.size()]); diff --git a/Mage.Client/src/main/java/mage/client/deck/generator/DeckGeneratorDialog.java b/Mage.Client/src/main/java/mage/client/deck/generator/DeckGeneratorDialog.java index e6ef49e9ec9..0c0ca158507 100644 --- a/Mage.Client/src/main/java/mage/client/deck/generator/DeckGeneratorDialog.java +++ b/Mage.Client/src/main/java/mage/client/deck/generator/DeckGeneratorDialog.java @@ -53,7 +53,7 @@ public class DeckGeneratorDialog { private JComboBox cbSets; private JComboBox cbDeckSize; private JButton btnGenerate, btnCancel; - private JCheckBox cArtifacts, cSingleton, cNonBasicLands; + private JCheckBox cArtifacts, cSingleton, cNonBasicLands, cColorless; private SimpleDateFormat dateFormat; public DeckGeneratorDialog() @@ -138,8 +138,15 @@ public class DeckGeneratorDialog { cNonBasicLands.setSelected(Boolean.valueOf(nonBasicEnabled)); jCheckBoxes.add(cNonBasicLands); - jCheckBoxes.setPreferredSize(new Dimension(300, 25)); - jCheckBoxes.setMaximumSize(new Dimension(300, 25)); + // Non-basic lands + cColorless = new JCheckBox("Colorless mana", false); + cColorless.setToolTipText("Allow cards with colorless mana cost."); + String colorlessEnabled = PreferencesDialog.getCachedValue(PreferencesDialog.KEY_NEW_DECK_GENERATOR_COLORLESS, "false"); + cColorless.setSelected(Boolean.valueOf(colorlessEnabled)); + jCheckBoxes.add(cColorless); + + jCheckBoxes.setPreferredSize(new Dimension(450, 25)); + jCheckBoxes.setMaximumSize(new Dimension(450, 25)); p0.add(jCheckBoxes); btnGenerate = new JButton("Ok"); @@ -205,6 +212,12 @@ public class DeckGeneratorDialog { return selected; } + public boolean isColorless() { + boolean selected = cColorless.isSelected(); + PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_DECK_GENERATOR_COLORLESS, Boolean.toString(selected)); + return selected; + } + public boolean useArtifacts() { boolean selected = cArtifacts.isSelected(); PreferencesDialog.saveValue(PreferencesDialog.KEY_NEW_DECK_GENERATOR_ARTIFACTS, Boolean.toString(selected)); diff --git a/Mage.Client/src/main/java/mage/client/deck/generator/DeckGeneratorPool.java b/Mage.Client/src/main/java/mage/client/deck/generator/DeckGeneratorPool.java index 3e92fef086e..849a31997d1 100644 --- a/Mage.Client/src/main/java/mage/client/deck/generator/DeckGeneratorPool.java +++ b/Mage.Client/src/main/java/mage/client/deck/generator/DeckGeneratorPool.java @@ -51,6 +51,7 @@ public class DeckGeneratorPool private static final int NONCREATURE_COUNT_60 = 13; private final List allowedColors; + private boolean colorlessAllowed; private final List poolCMCs; private final int creatureCount; private final int nonCreatureCount; @@ -68,11 +69,12 @@ public class DeckGeneratorPool private List reserveSpells = new ArrayList<>(); private Deck deck; - public DeckGeneratorPool(final int deckSize, final List allowedColors, boolean isSingleton) + public DeckGeneratorPool(final int deckSize, final List allowedColors, boolean isSingleton, boolean colorlessAllowed) { this.deckSize = deckSize; this.allowedColors = allowedColors; this.isSingleton = isSingleton; + this.colorlessAllowed = colorlessAllowed; this.deck = new Deck(); @@ -207,6 +209,9 @@ public class DeckGeneratorPool return false; } } + if (symbol.equals("C") && !colorlessAllowed) { + return false; + } } return true; } diff --git a/Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.java b/Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.java index b6fafef6105..14219e5e2e4 100644 --- a/Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.java +++ b/Mage.Client/src/main/java/mage/client/dialog/PreferencesDialog.java @@ -235,6 +235,7 @@ public class PreferencesDialog extends javax.swing.JDialog { public static final String KEY_NEW_DECK_GENERATOR_SINGLETON = "newDeckGeneratorSingleton"; public static final String KEY_NEW_DECK_GENERATOR_ARTIFACTS = "newDeckGeneratorArtifacts"; public static final String KEY_NEW_DECK_GENERATOR_NON_BASIC_LANDS = "newDeckGeneratorNonBasicLands"; + public static final String KEY_NEW_DECK_GENERATOR_COLORLESS = "newDeckGeneratorColorless"; // used to save and restore the settings for the cardArea (draft, sideboarding, deck builder) public static final String KEY_DRAFT_VIEW = "draftView";