From 8f2b268f75f30c257933ec1b4b1847c91e05037a Mon Sep 17 00:00:00 2001 From: Michael Kamensky Date: Sun, 28 Feb 2021 18:29:04 +0000 Subject: [PATCH] Skip promo sets when determining starter Planeswalker options in Planar Conquest. --- .../forge/planarconquest/ConquestUtil.java | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/forge-gui/src/main/java/forge/planarconquest/ConquestUtil.java b/forge-gui/src/main/java/forge/planarconquest/ConquestUtil.java index ac0c9140f49..ed48786dd73 100644 --- a/forge-gui/src/main/java/forge/planarconquest/ConquestUtil.java +++ b/forge-gui/src/main/java/forge/planarconquest/ConquestUtil.java @@ -21,9 +21,9 @@ import forge.planarconquest.ConquestPreferences.CQPref; import forge.properties.ForgeConstants; import forge.quest.QuestUtil; import forge.util.FileUtil; +import forge.util.Localizer; import forge.util.MyRandom; import forge.util.gui.SOptionPane; -import forge.util.Localizer; import java.util.EnumSet; import java.util.List; @@ -175,13 +175,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; } }); }