From d3fc200deca658c9098f38f663947849c258adc8 Mon Sep 17 00:00:00 2001 From: Maxmtg Date: Mon, 6 May 2013 11:53:47 +0000 Subject: [PATCH] BoosterGenerator - slot types by rarity extracted into constants. --- .../java/forge/card/BoosterGenerator.java | 30 +++++++++++++------ src/main/java/forge/card/BoosterTemplate.java | 3 +- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/src/main/java/forge/card/BoosterGenerator.java b/src/main/java/forge/card/BoosterGenerator.java index e8f028689e0..033eb69727d 100644 --- a/src/main/java/forge/card/BoosterGenerator.java +++ b/src/main/java/forge/card/BoosterGenerator.java @@ -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 cachedSheets = new TreeMap(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 predicate = Predicates.and(setPred, extraPred); ps.addAll(Iterables.filter(src, predicate)); - } else if( mainCode.equalsIgnoreCase("common") ) { + } else if( mainCode.equalsIgnoreCase(COMMON) ) { Predicate 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 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 predicateRares = Predicates.and(setPred, IPaperCard.Predicates.Presets.IS_RARE, extraPred); ps.addAll(Iterables.filter(src, predicateRares)); @@ -110,7 +122,7 @@ public class BoosterGenerator { Predicate 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 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 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 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 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 predicate = Predicates.and( setPred, IPaperCard.Predicates.Presets.IS_SPECIAL, extraPred ); ps.addAll(Iterables.filter(src, predicate)); diff --git a/src/main/java/forge/card/BoosterTemplate.java b/src/main/java/forge/card/BoosterTemplate.java index 281c4c761c2..301650a504f 100644 --- a/src/main/java/forge/card/BoosterTemplate.java +++ b/src/main/java/forge/card/BoosterTemplate.java @@ -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;