diff --git a/forge-core/src/main/java/forge/StaticData.java b/forge-core/src/main/java/forge/StaticData.java index a58d286a0cd..e616d13adfb 100644 --- a/forge-core/src/main/java/forge/StaticData.java +++ b/forge-core/src/main/java/forge/StaticData.java @@ -52,8 +52,6 @@ public class StaticData { private IStorage boosters; private IStorage specialBoosters; private IStorage tournaments; - private IStorage fatPacks; - private IStorage boosterBoxes; private IStorage printSheets; private static StaticData lastInstance = null; @@ -239,14 +237,6 @@ public class StaticData { } } - // TODO Remove these in favor of them being associated to the Edition - /** @return {@link forge.util.storage.IStorage}<{@link forge.item.SealedProduct.Template}> */ - public IStorage getFatPacks() { - if (fatPacks == null) - fatPacks = new StorageBase<>("Fat packs", new FatPack.Template.Reader(blockDataFolder + "fatpacks.txt")); - return fatPacks; - } - /** @return {@link forge.util.storage.IStorage}<{@link forge.item.SealedProduct.Template}> */ public final IStorage getTournamentPacks() { if (tournaments == null) diff --git a/forge-core/src/main/java/forge/card/CardEdition.java b/forge-core/src/main/java/forge/card/CardEdition.java index be8e277b372..8bde74d940d 100644 --- a/forge-core/src/main/java/forge/card/CardEdition.java +++ b/forge-core/src/main/java/forge/card/CardEdition.java @@ -102,6 +102,16 @@ public final class CardEdition implements Comparable { } } + public String getFatPackDefault() { + switch (this) { + case CORE: + case EXPANSION: + return "10"; + default: + return "0"; + } + } + public String toString(){ String[] names = TextUtil.splitWithParenthesis(this.name().toLowerCase(), '_'); for (int i = 0; i < names.length; i++) @@ -261,6 +271,8 @@ public final class CardEdition implements Comparable { // SealedProduct private String prerelease = null; private int boosterBoxCount = 36; + private int fatPackCount = 10; + private String fatPackExtraSlots = ""; // Booster/draft info private boolean smallSetOverride = false; @@ -351,6 +363,8 @@ public final class CardEdition implements Comparable { public String getPrerelease() { return prerelease; } public int getBoosterBoxCount() { return boosterBoxCount; } + public int getFatPackCount() { return fatPackCount; } + public String getFatPackExtraSlots() { return fatPackExtraSlots; } public FoilType getFoilType() { return foilType; } public double getFoilChanceInBooster() { return foilChanceInBooster; } @@ -636,6 +650,8 @@ public final class CardEdition implements Comparable { res.type = enumType; res.prerelease = section.get("Prerelease", null); res.boosterBoxCount = Integer.parseInt(section.get("BoosterBox", enumType.getBoosterBoxDefault())); + res.fatPackCount = Integer.parseInt(section.get("FatPack", enumType.getFatPackDefault())); + res.fatPackExtraSlots = section.get("FatPackExtraSlots", ""); switch (section.get("foil", "newstyle").toLowerCase()) { case "notsupported": @@ -853,7 +869,7 @@ public final class CardEdition implements Comparable { private static class CanMakeFatPack implements Predicate { @Override public boolean apply(final CardEdition subject) { - return StaticData.instance().getFatPacks().contains(subject.getCode()); + return subject.getFatPackCount() > 0; } } diff --git a/forge-core/src/main/java/forge/item/FatPack.java b/forge-core/src/main/java/forge/item/FatPack.java index 2ee80d07309..3d0f65a3b7b 100644 --- a/forge-core/src/main/java/forge/item/FatPack.java +++ b/forge-core/src/main/java/forge/item/FatPack.java @@ -18,10 +18,8 @@ package forge.item; -import java.util.ArrayList; import java.util.List; -import org.apache.commons.lang3.tuple.ImmutablePair; import org.apache.commons.lang3.tuple.Pair; import com.google.common.base.Function; @@ -30,16 +28,17 @@ import forge.ImageKeys; import forge.StaticData; import forge.card.CardEdition; import forge.item.generation.BoosterGenerator; -import forge.util.TextUtil; -import forge.util.storage.StorageReaderFile; public class FatPack extends BoxedProduct { public static final Function FN_FROM_SET = new Function() { @Override - public FatPack apply(final CardEdition arg1) { - FatPack.Template d = StaticData.instance().getFatPacks().get(arg1.getCode()); + public FatPack apply(final CardEdition edition) { + int boosters = edition.getFatPackCount(); + if (boosters <= 0) { return null; } + + FatPack.Template d = new Template(edition); if (d == null) { return null; } - return new FatPack(arg1.getName(), d, d.cntBoosters); + return new FatPack(edition.getName(), d, d.cntBoosters); } }; @@ -68,17 +67,6 @@ public class FatPack extends BoxedProduct { return BoosterGenerator.getBoosterPack(fpData); } - /*@Override - protected List generate() { - List result = new ArrayList(); - for (int i = 0; i < fpData.getCntBoosters(); i++) { - result.addAll(super.generate()); - } - // Add any extra cards that may come in the fatpack after Boosters - result.addAll(BoosterGenerator.getBoosterPack(fpData)); - return result; - }*/ - @Override public final Object clone() { return new FatPack(name, fpData, fpData.cntBoosters); @@ -92,38 +80,12 @@ public class FatPack extends BoxedProduct { public static class Template extends SealedProduct.Template { private final int cntBoosters; - public int getCntBoosters() { return cntBoosters; } - private Template(String edition, int boosters, Iterable> itrSlots) - { - super(edition, itrSlots); - cntBoosters = boosters; - } + private Template(CardEdition edition) { + super(edition.getCode(), edition.getFatPackExtraSlots()); - public static final class Reader extends StorageReaderFile