diff --git a/forge-gui/src/main/java/forge/planarconquest/ConquestUtil.java b/forge-gui/src/main/java/forge/planarconquest/ConquestUtil.java index ac0c9140f49..1750c238874 100644 --- a/forge-gui/src/main/java/forge/planarconquest/ConquestUtil.java +++ b/forge-gui/src/main/java/forge/planarconquest/ConquestUtil.java @@ -15,6 +15,7 @@ import forge.deck.Deck; import forge.deck.DeckFormat; import forge.deck.DeckSection; import forge.deck.generation.*; +import forge.game.card.CardCollection; import forge.item.PaperCard; import forge.model.FModel; import forge.planarconquest.ConquestPreferences.CQPref; @@ -175,13 +176,27 @@ public class ConquestUtil { public static Iterable getStartingPlaneswalkerOptions(final PaperCard startingCommander) { final byte colorIdentity = startingCommander.getRules().getColorIdentity().getColor(); - return Iterables.filter(FModel.getMagicDb().getCommonCards().getUniqueCards(), new Predicate() { + final List selected = Lists.newArrayList(); + return Iterables.filter(FModel.getMagicDb().getCommonCards(), new Predicate() { @Override public boolean apply(PaperCard card) { + if (FModel.getMagicDb().getEditions().get(card.getEdition()).getType() == CardEdition.Type.REPRINT) { + return false; // exclude promos from the starting planeswalker set + } + if (selected.contains(card.getName())) { + return false; + } CardRules rules = card.getRules(); - return rules.getType().isPlaneswalker() && + boolean allowed = rules.getType().isPlaneswalker() && !card.getName().equals(startingCommander.getName()) && //don't allow picking a commander as a starting planeswalker rules.getColorIdentity().hasNoColorsExcept(colorIdentity); + + if (allowed) { + selected.add(card.getName()); + return true; + } + + return false; } }); }