BoosterGenerator - slot types by rarity extracted into constants.

This commit is contained in:
Maxmtg
2013-05-06 11:53:47 +00:00
parent 8ddb9e0d01
commit d3fc200dec
2 changed files with 23 additions and 10 deletions

View File

@@ -47,6 +47,18 @@ import forge.util.TextUtil;
* @version $Id$
*/
public class BoosterGenerator {
public static final String ANY = "Any";
public static final String COMMON = "Common";
public static final String UNCOMMON = "Uncommon";
public static final String UNCOMMON_RARE = "UncommonRare";
public static final String RARE = "Rare";
public static final String RARE_MYTHIC = "RareMythic";
public static final String MYTHIC = "Mythic";
public static final String BASIC_LAND = "BasicLand";
public static final String TIME_SHIFTED = "TimeShifted";
private final static Map<String, PrintSheet> cachedSheets = new TreeMap<String, PrintSheet>(String.CASE_INSENSITIVE_ORDER);
private static final synchronized PrintSheet getPrintSheet(String key) {
if( !cachedSheets.containsKey(key) )
@@ -90,19 +102,19 @@ public class BoosterGenerator {
ps.add(CardDb.instance().getCard(cardName));
}
} else if( mainCode.equalsIgnoreCase("any") ) { // no restriction on rarity
} else if( mainCode.equalsIgnoreCase(ANY) ) { // no restriction on rarity
Predicate<CardPrinted> predicate = Predicates.and(setPred, extraPred);
ps.addAll(Iterables.filter(src, predicate));
} else if( mainCode.equalsIgnoreCase("common") ) {
} else if( mainCode.equalsIgnoreCase(COMMON) ) {
Predicate<CardPrinted> predicate = Predicates.and(setPred, IPaperCard.Predicates.Presets.IS_COMMON, extraPred);
ps.addAll(Iterables.filter(src, predicate));
} else if ( mainCode.equalsIgnoreCase("uncommon") ) {
} else if ( mainCode.equalsIgnoreCase(UNCOMMON) ) {
Predicate<CardPrinted> predicate = Predicates.and(setPred, IPaperCard.Predicates.Presets.IS_UNCOMMON, extraPred);
ps.addAll(Iterables.filter(src, predicate));
} else if ( mainCode.equalsIgnoreCase("uncommonrare") ) { // for sets like ARN, where U1 cards are considered rare and U3 are uncommon
} else if ( mainCode.equalsIgnoreCase(UNCOMMON_RARE) ) { // for sets like ARN, where U1 cards are considered rare and U3 are uncommon
Predicate<CardPrinted> predicateRares = Predicates.and(setPred, IPaperCard.Predicates.Presets.IS_RARE, extraPred);
ps.addAll(Iterables.filter(src, predicateRares));
@@ -110,7 +122,7 @@ public class BoosterGenerator {
Predicate<CardPrinted> predicateUncommon = Predicates.and( setPred, IPaperCard.Predicates.Presets.IS_UNCOMMON, extraPred);
ps.addAll(Iterables.filter(src, predicateUncommon), 3);
} else if ( mainCode.equalsIgnoreCase("raremythic") ) {
} else if ( mainCode.equalsIgnoreCase(RARE_MYTHIC) ) {
// Typical ratio of rares to mythics is 53:15, changing to 35:10 in smaller sets.
// To achieve the desired 1:8 are all mythics are added once, and all rares added twice per print sheet.
@@ -120,19 +132,19 @@ public class BoosterGenerator {
Predicate<CardPrinted> predicateRare = Predicates.and( setPred, IPaperCard.Predicates.Presets.IS_RARE, extraPred);
ps.addAll(Iterables.filter(src, predicateRare), 2);
} else if ( mainCode.equalsIgnoreCase("rare") ) {
} else if ( mainCode.equalsIgnoreCase(RARE) ) {
Predicate<CardPrinted> predicateRare = Predicates.and( setPred, IPaperCard.Predicates.Presets.IS_RARE, extraPred);
ps.addAll(Iterables.filter(src, predicateRare));
} else if ( mainCode.equalsIgnoreCase("mythic") ) {
} else if ( mainCode.equalsIgnoreCase(MYTHIC) ) {
Predicate<CardPrinted> predicateMythic = Predicates.and( setPred, IPaperCard.Predicates.Presets.IS_MYTHIC_RARE, extraPred);
ps.addAll(Iterables.filter(src, predicateMythic));
} else if ( mainCode.equalsIgnoreCase("basicland") ) {
} else if ( mainCode.equalsIgnoreCase(BASIC_LAND) ) {
Predicate<CardPrinted> predicateLand = Predicates.and( setPred, IPaperCard.Predicates.Presets.IS_BASIC_LAND, extraPred );
ps.addAll(Iterables.filter(src, predicateLand));
} else if ( mainCode.equalsIgnoreCase("timeshifted") ) {
} else if ( mainCode.equalsIgnoreCase(TIME_SHIFTED) ) {
Predicate<CardPrinted> predicate = Predicates.and( setPred, IPaperCard.Predicates.Presets.IS_SPECIAL, extraPred );
ps.addAll(Iterables.filter(src, predicate));

View File

@@ -16,7 +16,8 @@ public class BoosterTemplate extends SealedProductTemplate {
@SuppressWarnings("unchecked")
public final static BoosterTemplate genericBooster = new BoosterTemplate(null, 1, Lists.newArrayList(
Pair.of("Common", 10), Pair.of("Uncommon", 3), Pair.of("RareMythic", 1), Pair.of("BasicLand", 1)
Pair.of(BoosterGenerator.COMMON, 10), Pair.of(BoosterGenerator.UNCOMMON, 3),
Pair.of(BoosterGenerator.RARE_MYTHIC, 1), Pair.of(BoosterGenerator.BASIC_LAND, 1)
));
private final int foilRate = 68;