Merge branch 'move-fatpacks-to-editions' into 'master'

Move fatpacks to editions

See merge request core-developers/forge!5102
This commit is contained in:
Michael Kamensky
2021-07-24 05:18:05 +00:00
90 changed files with 175 additions and 147 deletions

View File

@@ -52,8 +52,6 @@ public class StaticData {
private IStorage<SealedProduct.Template> boosters;
private IStorage<SealedProduct.Template> specialBoosters;
private IStorage<SealedProduct.Template> tournaments;
private IStorage<FatPack.Template> fatPacks;
private IStorage<BoosterBox.Template> boosterBoxes;
private IStorage<PrintSheet> 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<FatPack.Template> 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<SealedProduct.Template> getTournamentPacks() {
if (tournaments == null)

View File

@@ -102,6 +102,16 @@ public final class CardEdition implements Comparable<CardEdition> {
}
}
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<CardEdition> {
// 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<CardEdition> {
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<CardEdition> {
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<CardEdition> {
private static class CanMakeFatPack implements Predicate<CardEdition> {
@Override
public boolean apply(final CardEdition subject) {
return StaticData.instance().getFatPacks().contains(subject.getCode());
return subject.getFatPackCount() > 0;
}
}

View File

@@ -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<CardEdition, FatPack> FN_FROM_SET = new Function<CardEdition, FatPack>() {
@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<PaperCard> generate() {
List<PaperCard> result = new ArrayList<PaperCard>();
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<Pair<String, Integer>> itrSlots)
{
super(edition, itrSlots);
cntBoosters = boosters;
}
private Template(CardEdition edition) {
super(edition.getCode(), edition.getFatPackExtraSlots());
public static final class Reader extends StorageReaderFile<Template> {
public Reader(String pathname) {
super(pathname, FN_GET_NAME);
}
@Override
protected Template read(String line, int i) {
String[] headAndData = TextUtil.split(line, ':', 2);
final String edition = headAndData[0];
final String[] data = TextUtil.splitWithParenthesis(headAndData[1], ',');
int nBoosters = 6;
List<Pair<String, Integer>> slots = new ArrayList<>();
for(String slotDesc : data) {
String[] kv = TextUtil.split(slotDesc, ' ', 2);
if (kv[1].startsWith("Booster"))
nBoosters = Integer.parseInt(kv[0]);
else
slots.add(ImmutablePair.of(kv[1], Integer.parseInt(kv[0])));
}
return new FatPack.Template(edition, nBoosters, slots);
}
cntBoosters = edition.getFatPackCount();
}
@Override

View File

@@ -60,7 +60,7 @@ public abstract class SealedProduct implements InventoryItemFromSet {
public SealedProduct(String name0, Template boosterData) {
if (null == name0) { throw new IllegalArgumentException("name0 must not be null"); }
if (null == boosterData) {
throw new IllegalArgumentException("boosterData must not be null");
throw new IllegalArgumentException("boosterData for " + name0 + " must not be null");
}
contents = boosterData;
name = name0;

View File

@@ -1,84 +0,0 @@
MMQ: 6 Boosters, 30 BasicLands
NMS: 6 Boosters
PCY: 6 Boosters
INV: 6 Boosters
PLS: 6 Boosters
APC: 6 Boosters
ODY: 6 Boosters
TOR: 6 Boosters
JUD: 6 Boosters
ONS: 9 Boosters, 30 BasicLands
LGN: 6 Boosters
SCG: 6 Boosters
MRD: 6 Boosters
DST: 6 Boosters
5DN: 6 Boosters
CHK: 6 Boosters
BOK: 6 Boosters
SOK: 6 Boosters
9ED: 6 Boosters, 40 BasicLands
RAV: 6 Boosters, 40 BasicLands
GPT: 6 Boosters, 40 BasicLands RAV
DIS: 6 Boosters, 40 BasicLands RAV
CSP: 6 Boosters, 40 BasicLands
TSP: 6 Boosters, 40 BasicLands
PLC: 6 Boosters, 40 BasicLands TSP
FUT: 6 Boosters, 40 BasicLands TSP
10E: 6 Boosters, 40 BasicLands
LRW: 6 Boosters, 40 BasicLands
MOR: 6 Boosters, 40 BasicLands LRW
SHM: 8 Boosters, 40 BasicLands
EVE: 8 Boosters, 40 BasicLands SHM
ALA: 8 Boosters, 40 BasicLands
CFX: 8 Boosters, 40 BasicLands ALA
ARB: 8 Boosters, 40 BasicLands ALA
M10: 8 Boosters, 40 BasicLands
ZEN: 8 Boosters, 40 BasicLands
WWK: 8 Boosters, 40 BasicLands ZEN
ROE: 8 Boosters, 40 BasicLands
M11: 8 Boosters, 40 BasicLands
SOM: 8 Boosters, 40 BasicLands
MBS: 9 Boosters, 80 BasicLands MBS
NPH: 9 Boosters, 80 BasicLands NPH
M12: 9 Boosters, 80 BasicLands
ISD: 9 Boosters, 70 BasicLands
DKA: 9 Boosters, 70 BasicLands ISD
AVR: 9 Boosters, 80 BasicLands
M13: 9 Boosters, 80 BasicLands
RTR: 9 Boosters, 80 BasicLands
GTC: 9 Boosters, 80 BasicLands RTR
DGM: 9 Boosters, 80 BasicLands RTR
M14: 9 Boosters, 80 BasicLands
THS: 9 Boosters, 80 BasicLands
BNG: 9 Boosters, 80 BasicLands THS
JOU: 9 Boosters, 80 BasicLands THS
M15: 9 Boosters, 80 BasicLands
KTK: 9 Boosters, 80 BasicLands
FRF: 9 Boosters, 80 BasicLands
DTK: 9 Boosters, 80 BasicLands
ORI: 9 Boosters, 80 BasicLands
BFZ: 9 Boosters, 80 BasicLands
OGW: 9 Boosters, 66 BasicLands BFZ, 14 name("Wastes")
SOI: 9 Boosters, 80 BasicLands
EMN: 9 Boosters, 80 BasicLands SOI
KLD: 10 Boosters, 80 BasicLands
AER: 10 Boosters, 80 BasicLands KLD
AKH: 10 Boosters, 80 BasicLands
HOU: 10 Boosters, 80 BasicLands
XLN: 10 Boosters, 80 BasicLands
RIX: 10 Boosters, 80 BasicLands
DOM: 10 Boosters, 80 BasicLands
M19: 10 Boosters, 80 BasicLands
GRN: 10 Boosters, 80 BasicLands
RNA: 10 Boosters, 80 BasicLands
WAR: 10 Boosters, 80 BasicLands
ELD: 10 Boosters, 40 BasicLands
#needs to be 20 BasicLands, 20 Foil BasicLands, 1 Piper of the Swarm+|ELD|3
THB: 10 Boosters, 40 BasicLands
#needs to be 20 BasicLands, 20 Foil BasicLands, 1 Arasta of the Endless Web+|THB|3
IKO: 10 Boosters, 40 BasicLands
#needs to be 20 BasicLands, 20 Foil BasicLands, 1 Colossification+|IKO|3
M21: 10 Boosters, 40 BasicLands
#needs to be 20 BasicLands, 20 Foil BasicLands, 1 Pack Leader+|M21|3
ZNR: 10 Boosters, 40 BasicLands
#needs to be 20 BasicLands, 20 Foil BasicLands, 1 Charix, the Raging Isle+|ZNR|3

View File

@@ -8,6 +8,8 @@ MciCode=aer
BoosterCovers=3
Booster=10 Common:fromSheet("AER cards"), 3 Uncommon:fromSheet("AER cards"), 1 RareMythic:fromSheet("AER cards"), 1 BasicLand KLD
AdditionalSheetForFoils=fromSheet("AER Aether Revolt Inventions")
FatPack=10
FatPackExtraSlots=80 BasicLands KLD
AdditionalSetUnlockedInQuest=MPS_KLD
ScryfallCode=AER

View File

@@ -7,6 +7,8 @@ MciCode=arb
Type=Expansion
BoosterCovers=3
Booster=10 Common, 3 Uncommon, 1 RareMythic, 1 BasicLand ALA
FatPack=8
FatPackExtraSlots=40 BasicLands ALA
ScryfallCode=ARB
[cards]

View File

@@ -8,6 +8,8 @@ MciCode=akh
BoosterCovers=5
Booster=10 Common:!fromSheet("AKH Planeswalker Decks and Toolkit"), 3 Uncommon:!fromSheet("AKH Planeswalker Decks and Toolkit"), 1 RareMythic:!fromSheet("AKH Planeswalker Decks and Toolkit"), 1 BasicLand AKH
AdditionalSheetForFoils=fromSheet("MPS Amonkhet Invocations")
FatPack=10
FatPackExtraSlots=80 BasicLands
AdditionalSetUnlockedInQuest=MPS_AKH
ChaosDraftThemes=GRAVEYARD_MATTERS
ScryfallCode=AKH

View File

@@ -7,6 +7,7 @@ MciCode=ap
Type=Expansion
BoosterCovers=1
Booster=11 Common, 3 Uncommon, 1 Rare
FatPack=6
Foil=OldStyle
FoilAlwaysInCommonSlot=False
ScryfallCode=APC

View File

@@ -7,6 +7,8 @@ MciCode=avr
Type=Expansion
BoosterCovers=5
Booster=10 Common, 3 Uncommon, 1 RareMythic, 1 BasicLand
FatPack=9
FatPackExtraSlots=80 BasicLands
ChaosDraftThemes=GRAVEYARD_MATTERS
ScryfallCode=AVR

View File

@@ -7,6 +7,8 @@ MciCode=bfz
Type=Expansion
BoosterCovers=5
Booster=10 Common, 3 Uncommon, 1 RareMythic, 1 BasicLand BFZ
FatPack=9
FatPackExtraSlots=80 BasicLands
AdditionalSheetForFoils=fromSheet("EXP Lands")
AdditionalSetUnlockedInQuest=EXP
ScryfallCode=BFZ

View File

@@ -7,6 +7,7 @@ MciCode=bok
Type=Expansion
BoosterCovers=3
Booster=11 Common, 3 Uncommon, 1 Rare
FatPack=6
FoilAlwaysInCommonSlot=False
ScryfallCode=BOK

View File

@@ -6,6 +6,8 @@ MciCode=bng
Type=Expansion
BoosterCovers=3
Booster=10 Common, 3 Uncommon, 1 RareMythic, 1 BasicLand THS
FatPack=9
FatPackExtraSlots=80 BasicLands THS
ScryfallCode=BNG
[cards]

View File

@@ -7,6 +7,7 @@ MciCode=chk
Type=Expansion
BoosterCovers=5
Booster=11 Common, 3 Uncommon, 1 Rare
FatPack=6
FoilAlwaysInCommonSlot=False
ScryfallCode=CHK

View File

@@ -7,6 +7,8 @@ MciCode=cs
Type=Expansion
BoosterCovers=3
Booster=11 Common, 3 Uncommon, 1 Rare
FatPack=6
FatPackExtraSlots=40 BasicLands
ScryfallCode=CSP
[cards]

View File

@@ -8,6 +8,8 @@ MciCode=cfx
Type=Expansion
BoosterCovers=3
Booster=10 Common, 3 Uncommon, 1 RareMythic, 1 BasicLand ALA
FatPack=8
FatPackExtraSlots=40 BasicLands ALA
ScryfallCode=CON
[cards]

View File

@@ -7,6 +7,8 @@ MciCode=dka
Type=Expansion
BoosterCovers=3
Booster=9 Common:!dfc, 3 Uncommon:!dfc, 1 RareMythic:!dfc, 1 dfc, 1 BasicLand ISD
FatPack=9
FatPackExtraSlots=70 BasicLands ISD
ChaosDraftThemes=GRAVEYARD_MATTERS
ScryfallCode=DKA

View File

@@ -7,6 +7,7 @@ MciCode=ds
Type=Expansion
BoosterCovers=3
Booster=11 Common, 3 Uncommon, 1 Rare
FatPack=6
FoilAlwaysInCommonSlot=False
ChaosDraftThemes=MIRRODIN
ScryfallCode=DST

View File

@@ -7,6 +7,8 @@ MciCode=di
Type=Expansion
BoosterCovers=3
Booster=11 Common, 3 Uncommon, 1 Rare
FatPack=6
FatPackExtraSlots=40 BasicLands RAV
FoilAlwaysInCommonSlot=False
ChaosDraftThemes=RAVNICA
ScryfallCode=DIS

View File

@@ -7,6 +7,8 @@ MciCode=dom
BoosterCovers=5
Booster=10 Common:!fromSheet("DOM Planeswalker Decks and Additional Promo"), 3 Uncommon:!fromSheet("DOM Planeswalker Decks and Additional Promo"), 1 RareMythic:!fromSheet("DOM Planeswalker Decks and Additional Promo"), 1 BasicLand DOM
BoosterMustContain=Legendary Creature
FatPack=10
FatPackExtraSlots=80 BasicLands
ScryfallCode=DOM
[cards]

View File

@@ -7,6 +7,8 @@ MciCode=dgm
Type=Expansion
BoosterCovers=3
Booster=10 Common:!land, 3 Uncommon, 1 RareMythic:!land, 1 fromSheet("DGM Lands")
FatPack=9
FatPackExtraSlots=80 BasicLands RTR
ChaosDraftThemes=RAVNICA
ScryfallCode=DGM

View File

@@ -7,6 +7,8 @@ MciCode=dtk
Type=Expansion
BoosterCovers=5
Booster=10 Common, 3 Uncommon, 1 RareMythic, 1 BasicLand DTK
FatPack=9
FatPackExtraSlots=80 BasicLands
ScryfallCode=DTK
[cards]

View File

@@ -9,6 +9,7 @@ ScryfallCode=AFR
BoosterCovers=5
Booster=10 Common, 3 Uncommon, 1 RareMythic, 1 BasicLand
Prerelease=6 Boosters, 1 RareMythic+
FatPackExtraSlots=20 BasicLands, 20 BasicLands+
[cards]
1 C +2 Mace

View File

@@ -7,6 +7,8 @@ Type=Expansion
MciCode=emn
BoosterCovers=3
Booster=9 Common:!dfc, 3 Uncommon:!dfc, 1 RareMythic:!dfc, 1 dfc:!Rare:!Mythic, 1 BasicLand SOI
FatPack=9
FatPackExtraSlots=80 BasicLands SOI
ChanceReplaceCommonWith=.125F dfc:RareMythic
TreatAsSmallSet=true
ChaosDraftThemes=GRAVEYARD_MATTERS

View File

@@ -8,6 +8,8 @@ MciCode=eve
Type=Expansion
BoosterCovers=3
Booster=11 Common, 3 Uncommon, 1 Rare
FatPack=8
FatPackExtraSlots=40 BasicLands SHM
ScryfallCode=EVE
[cards]

View File

@@ -6,6 +6,8 @@ MciCode=frf
Type=Expansion
BoosterCovers=3
Booster=10 Common:!land, 3 Uncommon, 1 RareMythic, 1 fromSheet("FRF Lands"), 0 fromSheet("FRF Basic Lands")
FatPack=9
FatPackExtraSlots=80 BasicLands
ChaosDraftThemes=GRAVEYARD_MATTERS
ScryfallCode=FRF

View File

@@ -7,6 +7,7 @@ MciCode=5dn
Type=Expansion
BoosterCovers=3
Booster=11 Common, 3 Uncommon, 1 Rare
FatPack=6
FoilAlwaysInCommonSlot=False
ChaosDraftThemes=MIRRODIN
ScryfallCode=5DN

View File

@@ -7,6 +7,8 @@ MciCode=fut
Type=Expansion
BoosterCovers=3
Booster=11 Common, 3 Uncommon, 1 Rare
FatPack=6
FatPackExtraSlots=40 BasicLands TSP
ScryfallCode=FUT
[cards]

View File

@@ -7,6 +7,8 @@ MciCode=gtc
Type=Expansion
BoosterCovers=5
Booster=10 Common, 3 Uncommon, 1 RareMythic, 1 BasicLand RTR
FatPack=9
FatPackExtraSlots=80 BasicLands RTR
ChaosDraftThemes=RAVNICA
ScryfallCode=GTC

View File

@@ -7,6 +7,8 @@ MciCode=gp
Type=Expansion
BoosterCovers=3
Booster=11 Common, 3 Uncommon, 1 Rare
FatPack=6
FatPackExtraSlots=40 BasicLands RAV
FoilAlwaysInCommonSlot=False
ChaosDraftThemes=RAVNICA
ScryfallCode=GPT

View File

@@ -8,6 +8,8 @@ Type=Expansion
BoosterCovers=5
Booster=10 Common:!fromSheet("GRN Secret Cards"), 3 Uncommon:!fromSheet("GRN Secret Cards"), 1 RareMythic:!fromSheet("GRN Secret Cards"), 1 fromSheet("GRN Lands")
AdditionalSetUnlockedInQuest=GK1
FatPack=10
FatPackExtraSlots=80 BasicLands
ChaosDraftThemes=RAVNICA;GRAVEYARD_MATTERS
ScryfallCode=GRN

View File

@@ -8,6 +8,8 @@ MciCode=hou
BoosterCovers=5
Booster=10 Common:!fromSheet("HOU Planeswalker Decks and Toolkit"), 3 Uncommon:!fromSheet("HOU Planeswalker Decks and Toolkit"), 1 RareMythic:!fromSheet("HOU Planeswalker Decks and Toolkit"), 1 BasicLand
AdditionalSheetForFoils=fromSheet("MPS Hour of Devastation Invocations")
FatPack=10
FatPackExtraSlots=80 BasicLands
AdditionalSetUnlockedInQuest=MPS_AKH
TreatAsSmallSet=true
ChaosDraftThemes=GRAVEYARD_MATTERS

View File

@@ -8,6 +8,7 @@ Type=Expansion
BoosterCovers=3
Booster=10 Common:fromSheet("IKO cards"):!fromSheet("IKO Lands"), 3 Uncommon:fromSheet("IKO cards"), 1 RareMythic:fromSheet("IKO cards"), 1 fromSheet("IKO Lands")
Prerelease=6 Boosters, 1 RareMythic+
FatPackExtraSlots=20 BasicLands, 20 BasicLands+, 1 Colossification+|IKO|3
ScryfallCode=IKO
[cards]

View File

@@ -7,6 +7,8 @@ MciCode=isd
Type=Expansion
BoosterCovers=5
Booster=9 Common:!dfc, 3 Uncommon:!dfc, 1 RareMythic:!dfc, 1 dfc, 1 BasicLand
FatPack=9
FatPackExtraSlots=70 BasicLands
ChaosDraftThemes=GRAVEYARD_MATTERS
ScryfallCode=ISD

View File

@@ -7,6 +7,7 @@ MciCode=in
Type=Expansion
BoosterCovers=3
Booster=11 Common, 3 Uncommon, 1 Rare
FatPack=6
Foil=OldStyle
FoilAlwaysInCommonSlot=False
ScryfallCode=INV

View File

@@ -7,6 +7,8 @@ Type=Expansion
MciCode=xln
BoosterCovers=5
Booster=10 Common:fromSheet("XLN cards"), 3 Uncommon:fromSheet("XLN cards"), 1 RareMythic:fromSheet("XLN cards"), 1 BasicLand
FatPack=10
FatPackExtraSlots=80 BasicLands
ScryfallCode=XLN
[cards]

View File

@@ -6,6 +6,8 @@ MciCode=jou
Type=Expansion
BoosterCovers=3
Booster=10 Common, 3 Uncommon, 1 RareMythic, 1 BasicLand THS
FatPack=9
FatPackExtraSlots=80 BasicLands THS
ScryfallCode=JOU
[cards]

View File

@@ -7,6 +7,7 @@ MciCode=ju
Type=Expansion
BoosterCovers=1
Booster=11 Common, 3 Uncommon, 1 Rare
FatPack=6
Foil=OldStyle
FoilAlwaysInCommonSlot=False
ChaosDraftThemes=GRAVEYARD_MATTERS

View File

@@ -8,6 +8,8 @@ MciCode=kld
BoosterCovers=3
Booster=10 Common:fromSheet("KLD cards"), 3 Uncommon:fromSheet("KLD cards"), 1 RareMythic:fromSheet("KLD cards"), 1 BasicLand
AdditionalSheetForFoils=fromSheet("KLD Kaladesh Inventions")
FatPack=10
FatPackExtraSlots=80 BasicLands
AdditionalSetUnlockedInQuest=MPS_KLD
ScryfallCode=KLD

View File

@@ -9,6 +9,7 @@ BoosterCovers=3
Booster=10 Common:!fromSheet("KHM Snow Lands"):fromsheet("KHM cards"), 3 Uncommon:fromSheet("KHM cards"), 1 RareMythic:fromSheet("KHM cards"), 1 fromSheet("KHM Snow Lands")
Prerelease=6 Boosters, 1 RareMythic+
#BoosterBox=36 Boosters, 1 fromSheet('KHM buy a box')+
FatPackExtraSlots=20 BasicLands, 20 BasicLands+
ScryfallCode=KHM
[cards]

View File

@@ -7,6 +7,8 @@ MciCode=ktk
Type=Expansion
BoosterCovers=5
Booster=10 Common, 3 Uncommon, 1 RareMythic, 1 BasicLand KTK
FatPack=9
FatPackExtraSlots=80 BasicLands
ChaosDraftThemes=GRAVEYARD_MATTERS
ScryfallCode=KTK

View File

@@ -7,6 +7,7 @@ MciCode=le
Type=Expansion
BoosterCovers=3
Booster=11 Common, 3 Uncommon, 1 Rare
FatPack=6
Foil=OldStyle
FoilAlwaysInCommonSlot=False
ScryfallCode=LGN

View File

@@ -7,6 +7,8 @@ MciCode=lw
Type=Expansion
BoosterCovers=5
Booster=11 Common, 3 Uncommon, 1 Rare
FatPack=6
FatPackExtraSlots=40 BasicLands
ScryfallCode=LRW
[cards]

View File

@@ -4,7 +4,7 @@ Date=2018-11-16
Name=M19 Gift Pack
Code2=G18
MciCode=g18
Type=Core
Type=Promo
ScryfallCode=g18
[cards]

View File

@@ -7,6 +7,8 @@ MciCode=m10
Type=Core
BoosterCovers=5
Booster=10 Common, 3 Uncommon, 1 RareMythic, 1 BasicLand
FatPack=8
FatPackExtraSlots=40 BasicLands
ChaosDraftThemes=CORE_SET
ScryfallCode=M10

View File

@@ -7,6 +7,8 @@ MciCode=m11
Type=Core
BoosterCovers=5
Booster=10 Common, 3 Uncommon, 1 RareMythic, 1 BasicLand
FatPack=8
FatPackExtraSlots=40 BasicLands
ChaosDraftThemes=CORE_SET
ScryfallCode=M11

View File

@@ -7,6 +7,8 @@ MciCode=m12
Type=Core
BoosterCovers=5
Booster=10 Common, 3 Uncommon, 1 RareMythic, 1 BasicLand
FatPack=9
FatPackExtraSlots=40 BasicLands
ChaosDraftThemes=CORE_SET
ScryfallCode=M12

View File

@@ -7,6 +7,8 @@ MciCode=m13
Type=Core
BoosterCovers=5
Booster=10 Common, 3 Uncommon, 1 RareMythic, 1 BasicLand
FatPack=9
FatPackExtraSlots=80 BasicLands
ChaosDraftThemes=CORE_SET
ScryfallCode=M13

View File

@@ -7,6 +7,8 @@ MciCode=m14
Type=Core
BoosterCovers=5
Booster=10 Common, 3 Uncommon, 1 RareMythic, 1 BasicLand
FatPack=9
FatPackExtraSlots=80 BasicLands
ChaosDraftThemes=CORE_SET
ScryfallCode=M14

View File

@@ -7,6 +7,8 @@ MciCode=m15
Type=Core
BoosterCovers=5
Booster=10 Common:!fromSheet("M15 Sample Cards"), 3 Uncommon:!fromSheet("M15 Sample Cards"), 1 RareMythic:!fromSheet("M15 Sample Cards"), 1 BasicLand
FatPack=9
FatPackExtraSlots=80 BasicLands
ChaosDraftThemes=CORE_SET
ScryfallCode=M15

View File

@@ -8,6 +8,8 @@ Type=Core
BoosterCovers=5
Booster=10 Common:!fromSheet("M19 Secret Cards"), 3 Uncommon:!fromSheet("M19 Secret Cards"), 1 RareMythic:!fromSheet("M19 Secret Cards"), 1 fromSheet("M19 Lands")
ChaosDraftThemes=CORE_SET
FatPack=10
FatPackExtraSlots=80 BasicLands
ScryfallCode=M19
[cards]

View File

@@ -6,6 +6,7 @@ MciCode=m20
Type=Core
BoosterCovers=3
Booster=10 Common:!fromSheet("M20 Secret Cards"), 3 Uncommon:!fromSheet("M20 Secret Cards"), 1 RareMythic:!fromSheet("M20 Secret Cards"), 1 fromSheet("M20 Lands")
FatPackExtraSlots=80 BasicLands
ChaosDraftThemes=CORE_SET
ScryfallCode=M20

View File

@@ -6,6 +6,7 @@ Type=Core
BoosterCovers=3
Booster=10 Common:fromSheet("M21 cards"):!fromSheet("M21 Lands"), 3 Uncommon:fromSheet("M21 cards"), 1 RareMythic:fromSheet("M21 cards"), 1 fromSheet("M21 Lands")
Prerelease=6 Boosters, 1 RareMythic+
FatPackExtraSlots=20 BasicLands, 20 BasicLands+, 1 Pack Leader+|M21|3
ChaosDraftThemes=CORE_SET
ScryfallCode=M21

View File

@@ -7,6 +7,8 @@ MciCode=ori
Type=Core
BoosterCovers=5
Booster=10 Common:!fromSheet("ORI Sample Cards"), 3 Uncommon:!fromSheet("ORI Sample Cards"), 1 RareMythic:!fromSheet("ORI Sample Cards"), 1 BasicLand
FatPack=9
FatPackExtraSlots=80 BasicLands
ChaosDraftThemes=CORE_SET
ScryfallCode=ORI

View File

@@ -4,12 +4,14 @@ Date=1999-10-04
Name=Mercadian Masques
Code2=MM
MciCode=mm
ScryfallCode=MMQ
Type=Expansion
BoosterCovers=3
Booster=11 Common, 3 Uncommon, 1 Rare
FatPack=6
FatPackExtraSlots=30 BasicLands
Foil=OldStyle
FoilAlwaysInCommonSlot=False
ScryfallCode=MMQ
[cards]
58 R Aerial Caravan

View File

@@ -7,6 +7,8 @@ MciCode=mbs
Type=Expansion
BoosterCovers=3
Booster=10 Common, 3 Uncommon, 1 RareMythic, 1 BasicLand
FatPack=9
FatPackExtraSlots=40 BasicLands
ChaosDraftThemes=MIRRODIN
ScryfallCode=MBS

View File

@@ -7,6 +7,7 @@ MciCode=mi
Type=Expansion
BoosterCovers=5
Booster=11 Common, 3 Uncommon, 1 Rare
FatPack=6
FoilAlwaysInCommonSlot=False
ChaosDraftThemes=MIRRODIN
ScryfallCode=MRD

View File

@@ -7,6 +7,8 @@ MciCode=mt
Type=Expansion
BoosterCovers=3
Booster=11 Common, 3 Uncommon, 1 Rare
FatPack=6
FatPackExtraSlots=40 BasicLands LRW
ScryfallCode=MOR
[cards]

View File

@@ -5,12 +5,13 @@ Name=Nemesis
Code2=NE
Alias=NEM
MciCode=ne
ScryfallCode=NEM
Type=Expansion
BoosterCovers=1
Booster=11 Common, 3 Uncommon, 1 Rare
FatPack=6
Foil=OldStyle
FoilAlwaysInCommonSlot=False
ScryfallCode=NEM
[cards]
27 R AEther Barrier

View File

@@ -7,6 +7,8 @@ MciCode=nph
Type=Expansion
BoosterCovers=3
Booster=10 Common, 3 Uncommon, 1 RareMythic, 1 BasicLand
FatPack=9
FatPackExtraSlots=40 BasicLands
ChaosDraftThemes=MIRRODIN
ScryfallCode=NPH

View File

@@ -8,6 +8,8 @@ Type=Core
Border=White
BoosterCovers=5
Booster=10 Common, 3 Uncommon, 1 Rare, 1 BasicLand
FatPack=6
FatPackExtraSlots=40 BasicLands
FoilAlwaysInCommonSlot=False
ChaosDraftThemes=CORE_SET
ScryfallCode=9ED

View File

@@ -7,6 +7,8 @@ MciCode=ogw
Type=Expansion
BoosterCovers=4
Booster=10 Common, 3 Uncommon, 1 RareMythic, 1 BasicLand BFZ
FatPack=9
FatPackExtraSlots=66 BasicLands BFZ, 14 name("Wastes")
AdditionalSheetForFoils=fromSheet("EXP Lands 2")
AdditionalSetUnlockedInQuest=EXP
ScryfallCode=OGW

View File

@@ -7,6 +7,7 @@ MciCode=od
Type=Expansion
BoosterCovers=3
Booster=11 Common, 3 Uncommon, 1 Rare
FatPack=6
Foil=OldStyle
FoilAlwaysInCommonSlot=False
ChaosDraftThemes=GRAVEYARD_MATTERS

View File

@@ -7,6 +7,8 @@ MciCode=on
Type=Expansion
BoosterCovers=5
Booster=11 Common, 3 Uncommon, 1 Rare
FatPack=9
FatPackExtraSlots=30 BasicLands
Foil=OldStyle
FoilAlwaysInCommonSlot=False
ScryfallCode=ONS

View File

@@ -7,6 +7,8 @@ MciCode=pc
Type=Expansion
BoosterCovers=3
Booster=11 Common, 3 Uncommon, 1 Rare
FatPack=6
FatPackExtraSlots=40 BasicLands TSP
ScryfallCode=PLC
[cards]

View File

@@ -7,6 +7,7 @@ MciCode=ps
Type=Expansion
BoosterCovers=1
Booster=11 Common, 3 Uncommon, 1 Rare, 0 Special
FatPack=6
Foil=OldStyle
FoilAlwaysInCommonSlot=False
ScryfallCode=PLS

View File

@@ -4,12 +4,13 @@ Date=2000-06-05
Name=Prophecy
Code2=PY
MciCode=pr
ScryfallCode=PCY
Type=Expansion
BoosterCovers=1
Booster=11 Common, 3 Uncommon, 1 Rare
FatPack=6
Foil=OldStyle
FoilAlwaysInCommonSlot=False
ScryfallCode=PCY
[cards]
1 U Abolish

View File

@@ -7,6 +7,8 @@ MciCode=rna
Type=Expansion
BoosterCovers=5
Booster=10 Common:!fromSheet("RNA Secret Cards"), 3 Uncommon:!fromSheet("RNA Secret Cards"), 1 RareMythic:!fromSheet("RNA Secret Cards"), 1 fromSheet("RNA Lands")
FatPack=10
FatPackExtraSlots=80 BasicLands
ChaosDraftThemes=RAVNICA
ScryfallCode=RNA

View File

@@ -7,6 +7,8 @@ MciCode=rav
Type=Expansion
BoosterCovers=5
Booster=11 Common, 3 Uncommon, 1 Rare
FatPack=6
FatPackExtraSlots=30 BasicLands
FoilAlwaysInCommonSlot=False
ChaosDraftThemes=RAVNICA
ScryfallCode=RAV

View File

@@ -7,6 +7,8 @@ MciCode=rtr
Type=Expansion
BoosterCovers=5
Booster=10 Common, 3 Uncommon, 1 RareMythic, 1 BasicLand
FatPack=9
FatPackExtraSlots=80 BasicLands
ChaosDraftThemes=RAVNICA;GRAVEYARD_MATTERS
ScryfallCode=RTR

View File

@@ -7,6 +7,8 @@ MciCode=roe
Type=Expansion
BoosterCovers=5
Booster=10 Common, 3 Uncommon, 1 RareMythic, 1 BasicLand
FatPack=8
FatPackExtraSlots=40 BasicLands
ScryfallCode=ROE
[cards]

View File

@@ -7,6 +7,8 @@ Type=Expansion
MciCode=rix
BoosterCovers=5
Booster=10 Common:fromSheet("RIX cards"), 3 Uncommon:fromSheet("RIX cards"), 1 RareMythic:fromSheet("RIX cards"), 1 BasicLand:fromSheet("RIX Basic Lands")
FatPack=10
FatPackExtraSlots=80 BasicLands
TreatAsSmallSet=true
ScryfallCode=RIX

View File

@@ -7,6 +7,7 @@ MciCode=sok
Type=Expansion
BoosterCovers=3
Booster=11 Common, 3 Uncommon, 1 Rare
FatPack=6
FoilAlwaysInCommonSlot=False
ScryfallCode=SOK

View File

@@ -7,6 +7,8 @@ MciCode=som
Type=Expansion
BoosterCovers=5
Booster=10 Common, 3 Uncommon, 1 RareMythic, 1 BasicLand
FatPack=8
FatPackExtraSlots=40 BasicLands
ChaosDraftThemes=MIRRODIN
ScryfallCode=SOM

View File

@@ -7,6 +7,7 @@ MciCode=sc
Type=Expansion
BoosterCovers=3
Booster=11 Common, 3 Uncommon, 1 Rare
FatPack=6
Foil=OldStyle
FoilAlwaysInCommonSlot=False
ChaosDraftThemes=GRAVEYARD_MATTERS

View File

@@ -7,6 +7,8 @@ MciCode=shm
Type=Expansion
BoosterCovers=5
Booster=11 Common, 3 Uncommon, 1 Rare
FatPack=8
FatPackExtraSlots=40 BasicLands
ScryfallCode=SHM
[cards]

View File

@@ -7,6 +7,8 @@ Type=Expansion
MciCode=soi
BoosterCovers=5
Booster=9 Common:!dfc, 3 Uncommon:!dfc, 1 RareMythic:!dfc, 1 dfc:!Rare:!Mythic, 1 BasicLand
FatPack=9
FatPackExtraSlots=80 BasicLands
ChanceReplaceCommonWith=.125F dfc:RareMythic
ChaosDraftThemes=GRAVEYARD_MATTERS
ScryfallCode=SOI

View File

@@ -7,6 +7,8 @@ MciCode=ala
Type=Expansion
BoosterCovers=5
Booster=10 Common, 3 Uncommon, 1 RareMythic, 1 BasicLand
FatPack=8
FatPackExtraSlots=40 BasicLands
ScryfallCode=ALA
[cards]

View File

@@ -9,6 +9,7 @@ BoosterCovers=5
DraftBooster=1 fromSheet("STX lesson"), 9 Common, 3 Uncommon, 1 RareMythic, 1 Any STA
CollectorBooster=1 Uncommon:fromSheet("STA borderless")+, 1 RareMythic:fromSheet("STA borderless")+, 1 Uncommon:fromSheet("STA etched")+, 1 RareMythic:fromSheet("STA etched")+, 1 RareMythic C21+, 1 RareMythic STA, 1 Uncommon STA, 1 fromSheet("STX lesson")+, 1 RareMythic+, 2 Uncommon+, 5 Common+
Prerelease=6 Boosters, 1 RareMythic+
FatPackExtraSlots=20 BasicLands, 20 BasicLands+
ScryfallCode=STX
[cards]

View File

@@ -7,6 +7,8 @@ MciCode=10e
Type=Core
BoosterCovers=5
Booster=10 Common, 3 Uncommon, 1 Rare, 1 BasicLand
FatPack=6
FatPackExtraSlots=40 BasicLands
ChaosDraftThemes=CORE_SET
ScryfallCode=10E

View File

@@ -7,6 +7,7 @@ Type=Expansion
BoosterCovers=3
Booster=10 Common:fromSheet("THB Commons"), 3 Uncommon:fromSheet("THB Uncommons"), 1 RareMythic:fromSheet("THB RareMythics"), 1 BasicLand
Prerelease=6 Boosters, 1 RareMythic+
FatPackExtraSlots=20 BasicLands, 20 BasicLands+, 1 Arasta of the Endless Web+|THB|3
ChaosDraftThemes=GRAVEYARD_MATTERS
ScryfallCode=THB

View File

@@ -6,6 +6,8 @@ MciCode=ths
Type=Expansion
BoosterCovers=5
Booster=10 Common, 3 Uncommon, 1 RareMythic, 1 BasicLand
FatPack=9
FatPackExtraSlots=80 BasicLands
ScryfallCode=THS
[cards]

View File

@@ -8,6 +8,8 @@ Type=Expansion
BoosterCovers=3
Booster=10 Common:fromSheet("ELD cards"), 3 Uncommon:fromSheet("ELD cards"), 1 RareMythic:fromSheet("ELD cards"), 1 BasicLand
Prerelease=6 Boosters, 1 RareMythic+
FatPack=10
FatPackExtraSlots=20 BasicLands, 20 BasicLands+, 1 Piper of the Swarm+|ELD|3
ScryfallCode=ELD
[cards]

View File

@@ -6,6 +6,8 @@ Code2=TSB
MciCode=tsts
Type=Expansion
ScryfallCode=TSB
BoosterBox=0
FatPack=0
[cards]
1 S Akroma, Angel of Wrath

View File

@@ -7,6 +7,8 @@ MciCode=ts
Type=Expansion
BoosterCovers=5
Booster=10 Common, 3 Uncommon, 1 Rare, 1 TimeShifted TSB
FatPack=6
FatPackExtraSlots=40 BasicLands
AdditionalSetUnlockedInQuest=TSB
ScryfallCode=TSP

View File

@@ -7,6 +7,7 @@ MciCode=tr
Type=Expansion
BoosterCovers=1
Booster=11 Common, 3 Uncommon, 1 Rare
FatPack=6
Foil=OldStyle
FoilAlwaysInCommonSlot=False
ChaosDraftThemes=GRAVEYARD_MATTERS

View File

@@ -8,6 +8,8 @@ Type=Expansion
BoosterCovers=3
Booster=10 Common:!fromSheet("WAR Secret Cards"), 3 Uncommon:!fromSheet("WAR Secret Cards"), 1 RareMythic:!fromSheet("WAR Secret Cards"), 1 BasicLand
BoosterMustContain=Planeswalker
FatPack=10
FatPackExtraSlots=80 BasicLands
ChaosDraftThemes=RAVNICA
ScryfallCode=WAR

View File

@@ -7,6 +7,8 @@ MciCode=wwk
Type=Expansion
BoosterCovers=3
Booster=10 Common, 3 Uncommon, 1 RareMythic, 1 BasicLand ZEN
FatPack=8
FatPackExtraSlots=40 BasicLands ZEN
ScryfallCode=WWK
[cards]

View File

@@ -10,6 +10,7 @@ Booster=10 Common:!dfc:fromSheet("ZNR cards"), 3 Uncommon:!dfc:fromSheet("ZNR ca
BoosterReplaceSlotFromPrintSheet=ZNR ModalDoubleFaceCards
Prerelease=6 Boosters, 1 RareMythic+
#BoosterBox=36 Boosters, 1 fromSheet('ZNR buy a box')+
FatPackExtraSlots=20 BasicLands, 20 BasicLands+, 1 Charix, the Raging Isle+|ZNR|3
ScryfallCode=ZNR
[cards]

View File

@@ -7,6 +7,8 @@ MciCode=zen
Type=Expansion
BoosterCovers=5
Booster=10 Common, 3 Uncommon, 1 RareMythic, 1 BasicLand
FatPack=8
FatPackExtraSlots=40 BasicLands
ScryfallCode=ZEN
[cards]