Uses more reliable way to detect sets with all basic lands present

This commit is contained in:
Maxmtg
2013-06-16 21:41:40 +00:00
parent 56df11005b
commit 5506af61ab
2 changed files with 12 additions and 4 deletions

View File

@@ -32,6 +32,7 @@ import org.apache.commons.lang3.StringUtils;
import com.google.common.base.Function; import com.google.common.base.Function;
import com.google.common.base.Predicate; import com.google.common.base.Predicate;
import forge.Constant;
import forge.Singletons; import forge.Singletons;
import forge.game.GameFormat; import forge.game.GameFormat;
import forge.util.FileSection; import forge.util.FileSection;
@@ -247,7 +248,11 @@ public final class CardEdition implements Comparable<CardEdition> { // immutable
public static final Predicate<CardEdition> hasBasicLands = new Predicate<CardEdition>() { public static final Predicate<CardEdition> hasBasicLands = new Predicate<CardEdition>() {
@Override @Override
public boolean apply(CardEdition ed) { 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;
}; };
}; };

View File

@@ -98,9 +98,12 @@ public final class QuestUtilCards {
if (usedFormat != null) { if (usedFormat != null) {
List<String> availableEditions = usedFormat.getAllowedSetCodes(); List<String> availableEditions = usedFormat.getAllowedSetCodes();
for (String edition : availableEditions) {
if (null != db.tryGetCard("Plains", edition)) { for (String edCode : availableEditions) {
landCodes.add(edition); 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")) { if (usedFormat.isSetLegal("ICE")) {