diff --git a/src/main/java/forge/card/CardSet.java b/src/main/java/forge/card/CardSet.java index c66ccc0d78f..4d83706a380 100644 --- a/src/main/java/forge/card/CardSet.java +++ b/src/main/java/forge/card/CardSet.java @@ -1,5 +1,6 @@ package forge.card; +import forge.SetUtils; import forge.game.GameFormat; import net.slightlymagic.braids.util.lambda.Lambda1; import net.slightlymagic.maxmtg.Predicate; @@ -116,6 +117,12 @@ public final class CardSet implements Comparable { // immutable public boolean isTrue(CardSet subject) { return format.isSetLegal(subject.getCode()); } - } + } + + public static abstract class Presets { + public final static Predicate setsInT2 = isLegalInFormat(SetUtils.getStandard()); + public final static Predicate setsInExt = isLegalInFormat(SetUtils.getExtended()); + public final static Predicate setsInModern = isLegalInFormat(SetUtils.getModern()); + } } } diff --git a/src/main/java/forge/quest/data/QuestUtilCards.java b/src/main/java/forge/quest/data/QuestUtilCards.java index 3d4462d65b0..3057bc14222 100644 --- a/src/main/java/forge/quest/data/QuestUtilCards.java +++ b/src/main/java/forge/quest/data/QuestUtilCards.java @@ -159,11 +159,11 @@ public final class QuestUtilCards { int winPacks = q.getWin() / 10; int totalPacks = Math.min(levelPacks + winPacks, 6); + final Predicate filterExt = CardSet.Predicates.Presets.setsInExt; + final Predicate filterT2booster = Predicate.and(CardSet.Predicates.canMakeBooster, CardSet.Predicates.Presets.setsInT2); + final Predicate filterExtButT2 = Predicate.and(CardSet.Predicates.canMakeBooster, Predicate.and(filterExt, Predicate.not(CardSet.Predicates.Presets.setsInT2))); + final Predicate filterNotExt = Predicate.and(CardSet.Predicates.canMakeBooster, Predicate.not(filterExt)); - Predicate filterT2 = CardSet.Predicates.isLegalInFormat(SetUtils.getStandard()); - Predicate filterExt = CardSet.Predicates.isLegalInFormat(SetUtils.getExtended()); - Predicate filterExtButT2 = Predicate.and(filterExt, Predicate.not(filterT2)); - Predicate filterNotExt = Predicate.not(filterExt); q.shopList.clear(); for (int i = 0; i < totalPacks; i++) { @@ -171,7 +171,7 @@ public final class QuestUtilCards { // add some boosters int rollD100 = MyRandom.random.nextInt(100); - Predicate filter = rollD100 < 40 ? filterT2 : (rollD100 < 75 ? filterExtButT2 : filterNotExt); + Predicate filter = rollD100 < 40 ? filterT2booster : (rollD100 < 75 ? filterExtButT2 : filterNotExt); q.shopList.addAllCards(filter.random(SetUtils.getAllSets(), 1, BoosterPack.fnFromSet)); }