diff --git a/forge-core/src/main/java/forge/deck/DeckFormat.java b/forge-core/src/main/java/forge/deck/DeckFormat.java index 1802bc3c2af..1066153e1ba 100644 --- a/forge-core/src/main/java/forge/deck/DeckFormat.java +++ b/forge-core/src/main/java/forge/deck/DeckFormat.java @@ -18,15 +18,18 @@ package forge.deck; import forge.StaticData; +import forge.card.CardRules; import forge.card.CardType; import forge.card.ColorSet; import forge.deck.generation.DeckGenPool; +import forge.deck.generation.DeckGeneratorBase.FilterCMC; import forge.deck.generation.IDeckGenPool; import forge.item.IPaperCard; import forge.item.PaperCard; import forge.util.Aggregates; import org.apache.commons.lang3.Range; +import org.apache.commons.lang3.tuple.ImmutablePair; import com.google.common.base.Predicate; @@ -45,7 +48,7 @@ public enum DeckFormat { QuestDeck ( Range.between(40, Integer.MAX_VALUE), Range.between(0, 15), 4), Limited ( Range.between(40, Integer.MAX_VALUE), null, Integer.MAX_VALUE), Commander ( Range.is(99), Range.between(0, 10), 1), - TinyLeaders ( Range.is(49), Range.between(0, 10), 1, new Predicate() { + TinyLeaders ( Range.is(49), Range.between(0, 10), 1, new Predicate() { private final HashSet bannedCards = new HashSet(Arrays.asList( "Ancestral Recall", "Balance", "Black Lotus", "Black Vise", "Channel", "Chaos Orb", "Contract From Below", "Counterbalance", "Darkpact", "Demonic Attorney", "Demonic Tutor", "Earthcraft", "Edric, Spymaster of Trest", "Falling Star", "Fastbond", "Flash", "Goblin Recruiter", "Hermit Druid", "Imperial Seal", "Jeweled Bird", "Karakas", "Library of Alexandria", "Mana Crypt", "Mana Drain", "Mana Vault", "Metalworker", "Mind Twist", "Mishra's Workshop", "Mox Emerald", @@ -53,16 +56,32 @@ public enum DeckFormat { "Timmerian Fiends", "Tolarian Academy", "Umezawa's Jitte", "Vampiric Tutor", "Wheel of Fortune", "Yawgmoth's Will")); @Override - public boolean apply(PaperCard card) { - if (card.getRules().getManaCost().getCMC() > 3) { + public boolean apply(CardRules rules) { + if (rules.getManaCost().getCMC() > 3) { return false; //only cards with CMC less than 3 are allowed } - if (bannedCards.contains(card.getName())) { + if (bannedCards.contains(rules.getName())) { return false; } return true; } - }), + }) { + private final HashSet bannedCommanders = new HashSet(Arrays.asList( + "Derevi, Empyrial Tactician", "Erayo, Soratami Ascendant", "Rofellos, Llanowar Emissary")); + + @Override + public boolean isLegalCommander(CardRules rules) { + return super.isLegalCommander(rules) && !bannedCommanders.contains(rules.getName()); + } + + @Override + public void adjustCMCLevels(List> cmcLevels) { + cmcLevels.clear(); + cmcLevels.add(ImmutablePair.of(new FilterCMC(0, 1), 3)); + cmcLevels.add(ImmutablePair.of(new FilterCMC(2, 2), 3)); + cmcLevels.add(ImmutablePair.of(new FilterCMC(3, 3), 3)); + } + }, PlanarConquest ( Range.between(60, Integer.MAX_VALUE), Range.is(0), 1), Vanguard ( Range.between(60, Integer.MAX_VALUE), Range.is(0), 4), Planechase ( Range.between(60, Integer.MAX_VALUE), Range.is(0), 4), @@ -71,12 +90,12 @@ public enum DeckFormat { private final Range mainRange; private final Range sideRange; // null => no check private final int maxCardCopies; - private final Predicate cardPoolFilter; + private final Predicate cardPoolFilter; private DeckFormat(Range mainRange0, Range sideRange0, int maxCardCopies0) { this(mainRange0, sideRange0, maxCardCopies0, null); } - private DeckFormat(Range mainRange0, Range sideRange0, int maxCardCopies0, Predicate cardPoolFilter0) { + private DeckFormat(Range mainRange0, Range sideRange0, int maxCardCopies0, Predicate cardPoolFilter0) { mainRange = mainRange0; sideRange = sideRange0; maxCardCopies = maxCardCopies0; @@ -152,9 +171,8 @@ public enum DeckFormat { if (cmd == null || cmd.isEmpty()) { return "is missing a commander"; } - if (!cmd.get(0).getRules().getOracleText().contains("can be your commander") - && (!cmd.get(0).getRules().getType().isLegendary() || !cmd.get(0).getRules().getType().isCreature())) { - return "has a commander that is not a legendary creature"; + if (!isLegalCommander(cmd.get(0).getRules())) { + return "has an illegal commander"; } ColorSet cmdCI = cmd.get(0).getRules().getColorIdentity(); @@ -187,12 +205,12 @@ public enum DeckFormat { if (cardPoolFilter != null) { List erroneousCI = new ArrayList(); for (Entry cp : deck.getAllCardsInASinglePool()) { - if (!cardPoolFilter.apply(cp.getKey())) { + if (!cardPoolFilter.apply(cp.getKey().getRules())) { erroneousCI.add(cp.getKey()); } } if (erroneousCI.size() > 0) { - StringBuilder sb = new StringBuilder("contains card that have CMC higher than 3:"); + StringBuilder sb = new StringBuilder("contains the following illegal cards:\n"); for (PaperCard cp : erroneousCI) { sb.append("\n").append(cp.getName()); @@ -275,11 +293,37 @@ public enum DeckFormat { return null; } - public IDeckGenPool getCardPool() { - IDeckGenPool pool = StaticData.instance().getCommonCards(); - if (cardPoolFilter != null) { - pool = new DeckGenPool(pool.getAllCards(cardPoolFilter)); + public IDeckGenPool getCardPool(IDeckGenPool basePool) { + if (cardPoolFilter == null) { + return basePool; } - return pool; + DeckGenPool filteredPool = new DeckGenPool(); + for (PaperCard pc : basePool.getAllCards()) { + if (cardPoolFilter.apply(pc.getRules())) { + filteredPool.add(pc); + } + } + return filteredPool; + } + + public void adjustCMCLevels(List> cmcLevels) { + //not needed by default + } + + public boolean isLegalCard(PaperCard pc) { + if (cardPoolFilter == null) { + return true; + } + return cardPoolFilter.apply(pc.getRules()); + } + + public boolean isLegalCommander(CardRules rules) { + if (cardPoolFilter != null && !cardPoolFilter.apply(rules)) { + return false; + } + if (rules.getType().isLegendary() && rules.getType().isCreature()) { + return true; + } + return rules.getOracleText().contains("can be your commander"); } } diff --git a/forge-core/src/main/java/forge/deck/generation/DeckGenerator2Color.java b/forge-core/src/main/java/forge/deck/generation/DeckGenerator2Color.java index 1685d64d275..2967b7401bc 100644 --- a/forge-core/src/main/java/forge/deck/generation/DeckGenerator2Color.java +++ b/forge-core/src/main/java/forge/deck/generation/DeckGenerator2Color.java @@ -22,6 +22,7 @@ import com.google.common.collect.Lists; import forge.card.ColorSet; import forge.card.MagicColor; import forge.deck.CardPool; +import forge.deck.DeckFormat; import org.apache.commons.lang3.tuple.ImmutablePair; @@ -42,7 +43,7 @@ public class DeckGenerator2Color extends DeckGeneratorBase { @Override protected final float getSpellPercentage() { return 0.25f; } @SuppressWarnings("unchecked") - final List> cmcRelativeWeights = Lists.newArrayList( + final List> cmcLevels = Lists.newArrayList( ImmutablePair.of(new FilterCMC(0, 2), 6), ImmutablePair.of(new FilterCMC(3, 4), 4), ImmutablePair.of(new FilterCMC(5, 6), 2), @@ -56,11 +57,13 @@ public class DeckGenerator2Color extends DeckGeneratorBase { // 4x 7 - 20 // = 52x - card pool (before further random filtering) - public DeckGenerator2Color(IDeckGenPool pool, final String clr1, final String clr2) { - super(pool); + public DeckGenerator2Color(IDeckGenPool pool0, DeckFormat format0, final String clr1, final String clr2) { + super(pool0, format0); int c1 = MagicColor.fromName(clr1); int c2 = MagicColor.fromName(clr2); - + + format0.adjustCMCLevels(cmcLevels); + if( c1 == 0 && c2 == 0) { int color1 = r.nextInt(5); int color2 = (color1 + 1 + r.nextInt(4)) % 5; @@ -78,7 +81,7 @@ public class DeckGenerator2Color extends DeckGeneratorBase { @Override public final CardPool getDeck(final int size, final boolean forAi) { - addCreaturesAndSpells(size, cmcRelativeWeights, forAi); + addCreaturesAndSpells(size, cmcLevels, forAi); // Add lands int numLands = Math.round(size * getLandsPercentage()); diff --git a/forge-core/src/main/java/forge/deck/generation/DeckGenerator3Color.java b/forge-core/src/main/java/forge/deck/generation/DeckGenerator3Color.java index 72471d7572d..eef37928f6d 100644 --- a/forge-core/src/main/java/forge/deck/generation/DeckGenerator3Color.java +++ b/forge-core/src/main/java/forge/deck/generation/DeckGenerator3Color.java @@ -22,6 +22,7 @@ import com.google.common.collect.Lists; import forge.card.ColorSet; import forge.card.MagicColor; import forge.deck.CardPool; +import forge.deck.DeckFormat; import forge.util.MyRandom; import org.apache.commons.lang3.tuple.ImmutablePair; @@ -44,8 +45,11 @@ public class DeckGenerator3Color extends DeckGeneratorBase { ImmutablePair.of(new FilterCMC(6, 20), 3) ); - public DeckGenerator3Color(IDeckGenPool pool, final String clr1, final String clr2, final String clr3) { - super(pool); + public DeckGenerator3Color(IDeckGenPool pool0, DeckFormat format0, final String clr1, final String clr2, final String clr3) { + super(pool0, format0); + + format0.adjustCMCLevels(cmcLevels); + int c1 = MagicColor.fromName(clr1); int c2 = MagicColor.fromName(clr2); int c3 = MagicColor.fromName(clr3); diff --git a/forge-core/src/main/java/forge/deck/generation/DeckGenerator5Color.java b/forge-core/src/main/java/forge/deck/generation/DeckGenerator5Color.java index a979546bb77..9a24396b97e 100644 --- a/forge-core/src/main/java/forge/deck/generation/DeckGenerator5Color.java +++ b/forge-core/src/main/java/forge/deck/generation/DeckGenerator5Color.java @@ -21,6 +21,7 @@ import com.google.common.collect.Lists; import forge.card.ColorSet; import forge.deck.CardPool; +import forge.deck.DeckFormat; import org.apache.commons.lang3.tuple.ImmutablePair; @@ -51,8 +52,9 @@ public class DeckGenerator5Color extends DeckGeneratorBase { /** * Instantiates a new generate5 color deck. */ - public DeckGenerator5Color(IDeckGenPool pool) { - super(pool); + public DeckGenerator5Color(IDeckGenPool pool0, DeckFormat format0) { + super(pool0, format0); + format0.adjustCMCLevels(cmcLevels); colors = ColorSet.fromMask(0).inverse(); } diff --git a/forge-core/src/main/java/forge/deck/generation/DeckGeneratorBase.java b/forge-core/src/main/java/forge/deck/generation/DeckGeneratorBase.java index 1b99a3aa44c..12373e8e9ba 100644 --- a/forge-core/src/main/java/forge/deck/generation/DeckGeneratorBase.java +++ b/forge-core/src/main/java/forge/deck/generation/DeckGeneratorBase.java @@ -21,13 +21,16 @@ import com.google.common.base.Predicate; import com.google.common.base.Predicates; import com.google.common.collect.Iterables; import com.google.common.collect.Lists; + import forge.card.*; import forge.card.mana.ManaCost; import forge.deck.CardPool; +import forge.deck.DeckFormat; import forge.item.PaperCard; import forge.util.Aggregates; import forge.util.ItemPool; import forge.util.MyRandom; + import org.apache.commons.lang3.tuple.ImmutablePair; import java.util.*; @@ -50,6 +53,7 @@ public abstract class DeckGeneratorBase { protected ColorSet colors; protected final CardPool tDeck = new CardPool(); protected final IDeckGenPool pool; + protected final DeckFormat format; // 2-colored deck generator has its own constants. The rest works fine with these ones protected float getLandsPercentage() { return 0.44f; } @@ -58,8 +62,9 @@ public abstract class DeckGeneratorBase { StringBuilder tmpDeck = new StringBuilder(); - public DeckGeneratorBase(IDeckGenPool pool0) { - pool = pool0; + public DeckGeneratorBase(IDeckGenPool pool0, DeckFormat format0) { + pool = format0.getCardPool(pool0); + format = format0; } public void setSingleton(boolean singleton){ diff --git a/forge-core/src/main/java/forge/deck/generation/DeckGeneratorMonoColor.java b/forge-core/src/main/java/forge/deck/generation/DeckGeneratorMonoColor.java index a34ebe5b383..6a428fcc091 100644 --- a/forge-core/src/main/java/forge/deck/generation/DeckGeneratorMonoColor.java +++ b/forge-core/src/main/java/forge/deck/generation/DeckGeneratorMonoColor.java @@ -22,6 +22,7 @@ import com.google.common.collect.Lists; import forge.card.ColorSet; import forge.card.MagicColor; import forge.deck.CardPool; +import forge.deck.DeckFormat; import org.apache.commons.lang3.tuple.ImmutablePair; @@ -55,8 +56,8 @@ public class DeckGeneratorMonoColor extends DeckGeneratorBase { // 4x 7 - 20 // = 52x - card pool (before further random filtering) - public DeckGeneratorMonoColor(IDeckGenPool pool, final String clr1) { - super(pool); + public DeckGeneratorMonoColor(IDeckGenPool pool0, DeckFormat format0, final String clr1) { + super(pool0, format0); if (MagicColor.fromName(clr1) == 0) { int color1 = r.nextInt(5); colors = ColorSet.fromMask(MagicColor.WHITE << color1); diff --git a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CDeckgen.java b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CDeckgen.java index 8107f864894..a4cead083dc 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CDeckgen.java +++ b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CDeckgen.java @@ -11,6 +11,7 @@ import forge.card.CardRulesPredicates; import forge.card.MagicColor; import forge.deck.Deck; import forge.deck.DeckBase; +import forge.deck.DeckFormat; import forge.deck.generation.*; import forge.gui.framework.ICDoc; import forge.item.InventoryItem; @@ -112,10 +113,10 @@ public enum CDeckgen implements ICDoc { CardDb cardDb = FModel.getMagicDb().getCommonCards(); DeckGeneratorBase gen = null; switch (colorCount0) { - case 1: gen = new DeckGeneratorMonoColor(cardDb, null); break; - case 2: gen = new DeckGenerator2Color(cardDb, null, null); break; - case 3: gen = new DeckGenerator3Color(cardDb, null, null, null); break; - case 5: gen = new DeckGenerator5Color(cardDb); break; + case 1: gen = new DeckGeneratorMonoColor(cardDb, DeckFormat.Constructed, null); break; + case 2: gen = new DeckGenerator2Color(cardDb, DeckFormat.Constructed, null, null); break; + case 3: gen = new DeckGenerator3Color(cardDb, DeckFormat.Constructed, null, null, null); break; + case 5: gen = new DeckGenerator5Color(cardDb, DeckFormat.Constructed); break; } if( null != gen ) { diff --git a/forge-gui-desktop/src/test/java/forge/deck/generate/Generate2ColorDeckTest.java b/forge-gui-desktop/src/test/java/forge/deck/generate/Generate2ColorDeckTest.java index e90e4f2839d..03afa1a1163 100644 --- a/forge-gui-desktop/src/test/java/forge/deck/generate/Generate2ColorDeckTest.java +++ b/forge-gui-desktop/src/test/java/forge/deck/generate/Generate2ColorDeckTest.java @@ -1,6 +1,7 @@ package forge.deck.generate; import forge.card.CardDb; +import forge.deck.DeckFormat; import forge.deck.generation.DeckGenerator2Color; import forge.item.PaperCard; import forge.model.FModel; @@ -21,7 +22,7 @@ public class Generate2ColorDeckTest { @Test(enabled = false) public void generate2ColorDeckTest1() { CardDb cardDb = FModel.getMagicDb().getCommonCards(); - final DeckGenerator2Color gen = new DeckGenerator2Color(cardDb, "white", "blue"); + final DeckGenerator2Color gen = new DeckGenerator2Color(cardDb, DeckFormat.Constructed, "white", "blue"); final ItemPool cardList = gen.getDeck(60, false); Assert.assertNotNull(cardList); } diff --git a/forge-gui-desktop/src/test/java/forge/deck/generate/Generate3ColorDeckTest.java b/forge-gui-desktop/src/test/java/forge/deck/generate/Generate3ColorDeckTest.java index 6bb48fc8783..36e9ccc6360 100644 --- a/forge-gui-desktop/src/test/java/forge/deck/generate/Generate3ColorDeckTest.java +++ b/forge-gui-desktop/src/test/java/forge/deck/generate/Generate3ColorDeckTest.java @@ -2,6 +2,7 @@ package forge.deck.generate; import forge.card.CardDb; import forge.deck.CardPool; +import forge.deck.DeckFormat; import forge.deck.generation.DeckGenerator3Color; import forge.model.FModel; @@ -20,7 +21,7 @@ public class Generate3ColorDeckTest { @Test(timeOut = 1000, enabled = false) public void generate3ColorDeckTest1() { CardDb cardDb = FModel.getMagicDb().getCommonCards(); - final DeckGenerator3Color gen = new DeckGenerator3Color(cardDb, "white", "blue", "black"); + final DeckGenerator3Color gen = new DeckGenerator3Color(cardDb, DeckFormat.Constructed, "white", "blue", "black"); final CardPool cardList = gen.getDeck(60, false); Assert.assertNotNull(cardList); } diff --git a/forge-gui-desktop/src/test/java/forge/deck/generate/Generate5ColorDeckTest.java b/forge-gui-desktop/src/test/java/forge/deck/generate/Generate5ColorDeckTest.java index 4184c1ff472..37e89fbcaef 100644 --- a/forge-gui-desktop/src/test/java/forge/deck/generate/Generate5ColorDeckTest.java +++ b/forge-gui-desktop/src/test/java/forge/deck/generate/Generate5ColorDeckTest.java @@ -2,6 +2,7 @@ package forge.deck.generate; import forge.card.CardDb; import forge.deck.CardPool; +import forge.deck.DeckFormat; import forge.deck.generation.DeckGenerator5Color; import forge.model.FModel; @@ -20,7 +21,7 @@ public class Generate5ColorDeckTest { @Test(timeOut = 1000, enabled = false) public void generate5ColorDeckTest1() { CardDb cardDb = FModel.getMagicDb().getCommonCards(); - final DeckGenerator5Color gen = new DeckGenerator5Color(cardDb); + final DeckGenerator5Color gen = new DeckGenerator5Color(cardDb, DeckFormat.Constructed); final CardPool cardList = gen.getDeck(60, false); Assert.assertNotNull(cardList); } diff --git a/forge-gui/src/main/java/forge/deck/DeckGeneratorTheme.java b/forge-gui/src/main/java/forge/deck/DeckGeneratorTheme.java index 19b4eb09c93..07b3578e724 100644 --- a/forge-gui/src/main/java/forge/deck/DeckGeneratorTheme.java +++ b/forge-gui/src/main/java/forge/deck/DeckGeneratorTheme.java @@ -47,8 +47,8 @@ public class DeckGeneratorTheme extends DeckGeneratorBase { * Constructor for ThemeDeckGenerator. *

*/ - public DeckGeneratorTheme(IDeckGenPool pool) { - super(pool); + public DeckGeneratorTheme(IDeckGenPool pool0) { + super(pool0, DeckFormat.Constructed); this.maxDuplicates = 4; } diff --git a/forge-gui/src/main/java/forge/deck/DeckgenUtil.java b/forge-gui/src/main/java/forge/deck/DeckgenUtil.java index 195f93b71c1..6e121078f7e 100644 --- a/forge-gui/src/main/java/forge/deck/DeckgenUtil.java +++ b/forge-gui/src/main/java/forge/deck/DeckgenUtil.java @@ -52,16 +52,16 @@ public class DeckgenUtil { DeckGeneratorBase gen = null; CardDb cardDb = FModel.getMagicDb().getCommonCards(); if (selection.size() == 1) { - gen = new DeckGeneratorMonoColor(cardDb, selection.get(0)); + gen = new DeckGeneratorMonoColor(cardDb, DeckFormat.Constructed, selection.get(0)); } else if (selection.size() == 2) { - gen = new DeckGenerator2Color(cardDb, selection.get(0), selection.get(1)); + gen = new DeckGenerator2Color(cardDb, DeckFormat.Constructed, selection.get(0), selection.get(1)); } else if (selection.size() == 3) { - gen = new DeckGenerator3Color(cardDb, selection.get(0), selection.get(1), selection.get(2)); + gen = new DeckGenerator3Color(cardDb, DeckFormat.Constructed, selection.get(0), selection.get(1), selection.get(2)); } else { - gen = new DeckGenerator5Color(cardDb); + gen = new DeckGenerator5Color(cardDb, DeckFormat.Constructed); deckName = "5 colors"; } gen.setSingleton(FModel.getPreferences().getPrefBoolean(FPref.DECKGEN_SINGLETONS)); @@ -278,16 +278,23 @@ public class DeckgenUtil { /** Generate a 2-color Commander deck. */ public static Deck generateCommanderDeck(boolean forAi, GameType gameType) { final Deck deck; - IDeckGenPool cardDb = gameType.getDeckFormat().getCardPool(); + IDeckGenPool cardDb = FModel.getMagicDb().getCommonCards(); PaperCard commander; ColorSet colorID; // Get random multicolor Legendary creature + final DeckFormat format = gameType.getDeckFormat(); Predicate canPlay = forAi ? DeckGeneratorBase.AI_CAN_PLAY : DeckGeneratorBase.HUMAN_CAN_PLAY; - Iterable legends = cardDb.getAllCards(Predicates.compose(Predicates.and - (CardRulesPredicates.Presets.IS_CREATURE, CardRulesPredicates.Presets.IS_LEGENDARY), PaperCard.FN_GET_RULES)); - legends = Iterables.filter(legends, Predicates.compose(Predicates.and - (CardRulesPredicates.Presets.IS_MULTICOLOR, canPlay), PaperCard.FN_GET_RULES)); + @SuppressWarnings("unchecked") + Iterable legends = cardDb.getAllCards(Predicates.compose(Predicates.and( + new Predicate() { + @Override + public boolean apply(CardRules rules) { + return format.isLegalCommander(rules); + } + }, + CardRulesPredicates.Presets.IS_MULTICOLOR, + canPlay), PaperCard.FN_GET_RULES)); do { commander = Aggregates.random(legends); @@ -302,7 +309,7 @@ public class DeckgenUtil { if (colorID.hasGreen()) { comColors.add("Green"); } DeckGeneratorBase gen = null; - gen = new DeckGenerator2Color(cardDb, comColors.get(0), comColors.get(1)); + gen = new DeckGenerator2Color(cardDb, format, comColors.get(0), comColors.get(1)); gen.setSingleton(true); gen.setUseArtifacts(!FModel.getPreferences().getPrefBoolean(FPref.DECKGEN_ARTIFACTS)); CardPool cards = gen == null ? null : gen.getDeck(gameType.getDeckFormat().getMainRange().getMaximum(), forAi); diff --git a/forge-gui/src/main/java/forge/limited/LimitedDeckBuilder.java b/forge-gui/src/main/java/forge/limited/LimitedDeckBuilder.java index b5b53f30091..4ba376d6f88 100644 --- a/forge-gui/src/main/java/forge/limited/LimitedDeckBuilder.java +++ b/forge-gui/src/main/java/forge/limited/LimitedDeckBuilder.java @@ -10,6 +10,7 @@ import forge.card.mana.ManaCost; import forge.card.mana.ManaCostShard; import forge.deck.CardPool; import forge.deck.Deck; +import forge.deck.DeckFormat; import forge.deck.DeckSection; import forge.deck.generation.DeckGeneratorBase; import forge.item.IPaperCard; @@ -54,7 +55,7 @@ public class LimitedDeckBuilder extends DeckGeneratorBase{ * Chosen colors. */ public LimitedDeckBuilder(List dList, DeckColors pClrs) { - super(FModel.getMagicDb().getCommonCards()); + super(FModel.getMagicDb().getCommonCards(), DeckFormat.Limited); this.availableList = dList; this.deckColors = pClrs; this.colors = pClrs.getChosenColors(); diff --git a/forge-gui/src/main/java/forge/planarconquest/ConquestUtil.java b/forge-gui/src/main/java/forge/planarconquest/ConquestUtil.java index 67d92354ace..459ed27b79f 100644 --- a/forge-gui/src/main/java/forge/planarconquest/ConquestUtil.java +++ b/forge-gui/src/main/java/forge/planarconquest/ConquestUtil.java @@ -9,6 +9,7 @@ import forge.card.ColorSet; import forge.card.MagicColor; import forge.deck.CardPool; import forge.deck.Deck; +import forge.deck.DeckFormat; import forge.deck.DeckSection; import forge.deck.generation.DeckGenerator2Color; import forge.deck.generation.DeckGenerator3Color; @@ -39,19 +40,19 @@ public class ConquestUtil { DeckGeneratorBase gen; switch (colors.size()) { case 0: - gen = new DeckGeneratorMonoColor(pool, ""); + gen = new DeckGeneratorMonoColor(pool, DeckFormat.PlanarConquest, ""); break; case 1: - gen = new DeckGeneratorMonoColor(pool, colors.get(0)); + gen = new DeckGeneratorMonoColor(pool, DeckFormat.PlanarConquest, colors.get(0)); break; case 2: - gen = new DeckGenerator2Color(pool, colors.get(0), colors.get(1)); + gen = new DeckGenerator2Color(pool, DeckFormat.PlanarConquest, colors.get(0), colors.get(1)); break; case 3: - gen = new DeckGenerator3Color(pool, colors.get(0), colors.get(1), colors.get(2)); + gen = new DeckGenerator3Color(pool, DeckFormat.PlanarConquest, colors.get(0), colors.get(1), colors.get(2)); break; case 5: - gen = new DeckGenerator5Color(pool); + gen = new DeckGenerator5Color(pool, DeckFormat.PlanarConquest); break; default: return null; //shouldn't happen