From 6210fdd9fc30115507b23e857be3c75e88e890e8 Mon Sep 17 00:00:00 2001 From: friarsol Date: Fri, 23 Jul 2021 22:46:58 -0400 Subject: [PATCH] Move FatPacks to editions file --- .../src/main/java/forge/StaticData.java | 10 --- .../src/main/java/forge/card/CardEdition.java | 18 +++- .../src/main/java/forge/item/FatPack.java | 56 ++----------- .../main/java/forge/item/SealedProduct.java | 2 +- forge-gui/res/blockdata/fatpacks.txt | 84 ------------------- forge-gui/res/editions/Aether Revolt.txt | 2 + forge-gui/res/editions/Alara Reborn.txt | 2 + forge-gui/res/editions/Amonkhet.txt | 2 + forge-gui/res/editions/Apocalypse.txt | 1 + forge-gui/res/editions/Avacyn Restored.txt | 2 + .../res/editions/Battle for Zendikar.txt | 2 + .../res/editions/Betrayers of Kamigawa.txt | 1 + forge-gui/res/editions/Born of the Gods.txt | 2 + .../res/editions/Champions of Kamigawa.txt | 1 + forge-gui/res/editions/Coldsnap.txt | 2 + forge-gui/res/editions/Conflux.txt | 2 + forge-gui/res/editions/Dark Ascension.txt | 2 + forge-gui/res/editions/Darksteel.txt | 1 + forge-gui/res/editions/Dissension.txt | 2 + forge-gui/res/editions/Dominaria.txt | 2 + forge-gui/res/editions/Dragon's Maze.txt | 2 + forge-gui/res/editions/Dragons of Tarkir.txt | 2 + forge-gui/res/editions/Eldritch Moon.txt | 2 + forge-gui/res/editions/Eventide.txt | 2 + forge-gui/res/editions/Fate Reforged.txt | 2 + forge-gui/res/editions/Fifth Dawn.txt | 1 + forge-gui/res/editions/Future Sight.txt | 2 + forge-gui/res/editions/Gatecrash.txt | 2 + forge-gui/res/editions/Guildpact.txt | 2 + forge-gui/res/editions/Guilds of Ravnica.txt | 2 + .../res/editions/Hour of Devastation.txt | 2 + .../res/editions/Ikoria Lair of Behemoths.txt | 1 + forge-gui/res/editions/Innistrad.txt | 2 + forge-gui/res/editions/Invasion.txt | 1 + forge-gui/res/editions/Ixalan.txt | 2 + forge-gui/res/editions/Journey into Nyx.txt | 2 + forge-gui/res/editions/Judgment.txt | 1 + forge-gui/res/editions/Kaladesh.txt | 2 + forge-gui/res/editions/Kaldheim.txt | 1 + forge-gui/res/editions/Khans of Tarkir.txt | 2 + forge-gui/res/editions/Legions.txt | 1 + forge-gui/res/editions/Lorwyn.txt | 2 + forge-gui/res/editions/M19 Gift Pack.txt | 2 +- forge-gui/res/editions/Magic 2010.txt | 2 + forge-gui/res/editions/Magic 2011.txt | 2 + forge-gui/res/editions/Magic 2012.txt | 2 + forge-gui/res/editions/Magic 2013.txt | 2 + forge-gui/res/editions/Magic 2014.txt | 2 + forge-gui/res/editions/Magic 2015.txt | 2 + forge-gui/res/editions/Magic 2019.txt | 2 + forge-gui/res/editions/Magic 2020.txt | 1 + forge-gui/res/editions/Magic 2021.txt | 1 + forge-gui/res/editions/Magic Origins.txt | 2 + forge-gui/res/editions/Mercadian Masques.txt | 4 +- forge-gui/res/editions/Mirrodin Besieged.txt | 2 + forge-gui/res/editions/Mirrodin.txt | 1 + forge-gui/res/editions/Morningtide.txt | 2 + forge-gui/res/editions/Nemesis.txt | 3 +- forge-gui/res/editions/New Phyrexia.txt | 2 + forge-gui/res/editions/Ninth Edition.txt | 2 + .../res/editions/Oath of the Gatewatch.txt | 2 + forge-gui/res/editions/Odyssey.txt | 1 + forge-gui/res/editions/Onslaught.txt | 2 + forge-gui/res/editions/Planar Chaos.txt | 2 + forge-gui/res/editions/Planeshift.txt | 1 + forge-gui/res/editions/Prophecy.txt | 3 +- forge-gui/res/editions/Ravnica Allegiance.txt | 2 + .../res/editions/Ravnica City of Guilds.txt | 2 + forge-gui/res/editions/Return to Ravnica.txt | 2 + .../res/editions/Rise of the Eldrazi.txt | 2 + forge-gui/res/editions/Rivals of Ixalan.txt | 2 + .../res/editions/Saviors of Kamigawa.txt | 1 + forge-gui/res/editions/Scars of Mirrodin.txt | 2 + forge-gui/res/editions/Scourge.txt | 1 + forge-gui/res/editions/Shadowmoor.txt | 2 + .../res/editions/Shadows over Innistrad.txt | 2 + forge-gui/res/editions/Shards of Alara.txt | 2 + .../editions/Strixhaven School of Mages.txt | 1 + forge-gui/res/editions/Tenth Edition.txt | 2 + .../res/editions/Theros Beyond Death.txt | 1 + forge-gui/res/editions/Theros.txt | 2 + forge-gui/res/editions/Throne of Eldraine.txt | 2 + .../res/editions/Time Spiral Timeshifted.txt | 2 + forge-gui/res/editions/Time Spiral.txt | 2 + forge-gui/res/editions/Torment.txt | 1 + forge-gui/res/editions/War of the Spark.txt | 2 + forge-gui/res/editions/Worldwake.txt | 2 + forge-gui/res/editions/Zendikar Rising.txt | 1 + forge-gui/res/editions/Zendikar.txt | 2 + 89 files changed, 174 insertions(+), 147 deletions(-) delete mode 100644 forge-gui/res/blockdata/fatpacks.txt diff --git a/forge-core/src/main/java/forge/StaticData.java b/forge-core/src/main/java/forge/StaticData.java index 4dc8e927706..6dd7ad72253 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 533f425c466..fdceecf16ef 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++) @@ -260,6 +270,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; @@ -350,6 +362,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; } @@ -635,6 +649,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": @@ -852,7 +868,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