diff --git a/src/main/java/forge/card/CardEdition.java b/src/main/java/forge/card/CardEdition.java index c18eb0c0dcc..7273f5c191e 100644 --- a/src/main/java/forge/card/CardEdition.java +++ b/src/main/java/forge/card/CardEdition.java @@ -32,6 +32,7 @@ import org.apache.commons.lang3.StringUtils; import com.google.common.base.Function; import com.google.common.base.Predicate; +import forge.Constant; import forge.Singletons; import forge.game.GameFormat; import forge.util.FileSection; @@ -247,7 +248,11 @@ public final class CardEdition implements Comparable { // immutable public static final Predicate hasBasicLands = new Predicate() { @Override public boolean apply(CardEdition ed) { - return null != CardDb.instance().tryGetCard("Plains", ed.getCode(), 0); + for(String landName : Constant.Color.BASIC_LANDS) { + if (null == CardDb.instance().tryGetCard(landName, ed.getCode(), 0)) + return false; + } + return true; }; }; diff --git a/src/main/java/forge/quest/QuestUtilCards.java b/src/main/java/forge/quest/QuestUtilCards.java index 733ca922b76..c2ad9b86ad4 100644 --- a/src/main/java/forge/quest/QuestUtilCards.java +++ b/src/main/java/forge/quest/QuestUtilCards.java @@ -98,9 +98,12 @@ public final class QuestUtilCards { if (usedFormat != null) { List availableEditions = usedFormat.getAllowedSetCodes(); - for (String edition : availableEditions) { - if (null != db.tryGetCard("Plains", edition)) { - landCodes.add(edition); + + for (String edCode : availableEditions) { + CardEdition ed = Singletons.getModel().getEditions().get(edCode); + // Duel decks might have only 2 types of basic lands + if( CardEdition.Predicates.hasBasicLands.apply(ed) ) { + landCodes.add(edCode); } } if (usedFormat.isSetLegal("ICE")) {