refactor: added helper methods for default booster settings (see enableDraftBooster, enablePlayOrArenaBooster)

This commit is contained in:
Oleg Agafonov 2025-01-27 00:15:44 +04:00
parent 5502b75bec
commit d9cb196e2c
2 changed files with 49 additions and 8 deletions

View file

@ -19,15 +19,8 @@ public class InnistradRemastered extends ExpansionSet {
private InnistradRemastered() {
super("Innistrad Remastered", "INR", ExpansionSet.buildDate(2025, 1, 24), SetType.SUPPLEMENTAL);
this.hasBoosters = true; // TODO: after set release - improve rarity distribution or implement collation
this.hasBasicLands = true;
this.numBoosterLands = 1;
this.numBoosterCommon = 7 + 1; // +1 instead the list
this.numBoosterUncommon = 3 + 1; // +1 instead 1 of 2 wildcards
this.numBoosterRare = 1 + 1; // +1 instead 2 of 2 wildcards
this.ratioBoosterMythic = 8;
this.enablePlayOrArenaBooster(480); // play boosters #1480, collector boosters #1491
this.numBoosterDoubleFaced = -1;
this.maxCardNumberInBooster = 480; // play boosters #1480, collector boosters #1491
cards.add(new SetCardInfo("Aberrant Researcher", 454, Rarity.UNCOMMON, mage.cards.a.AberrantResearcher.class, NON_FULL_USE_VARIOUS));
cards.add(new SetCardInfo("Aberrant Researcher", 52, Rarity.UNCOMMON, mage.cards.a.AberrantResearcher.class, NON_FULL_USE_VARIOUS));

View file

@ -741,4 +741,52 @@ public abstract class ExpansionSet implements Serializable {
}
}
/**
* Old default booster configuration (before 2024 - MKM)
*/
public void enableDraftBooster(int maxCardNumberInBooster) {
// https://draftsim.com/draft-booster-vs-set-booster-mtg/
this.hasBoosters = true;
this.maxCardNumberInBooster = maxCardNumberInBooster;
this.hasBasicLands = true;
this.numBoosterLands = 1;
this.numBoosterCommon = 10;
this.numBoosterUncommon = 3;
this.numBoosterRare = 1;
this.ratioBoosterMythic = 8;
}
/**
* New default booster configuration (after 2024 - MKM)
*/
public void enablePlayOrArenaBooster(int maxCardNumberInBooster) {
// https://mtg.fandom.com/wiki/Play_Booster
this.hasBoosters = true;
this.maxCardNumberInBooster = maxCardNumberInBooster;
// #1-6 Common
this.numBoosterCommon = 6;
// #7 Common or The List
// simplify: ignore 1.5% chance of a Special Guest card
this.numBoosterCommon++;
// #8-10 Uncommon
this.numBoosterUncommon = 3;
// #12 Rare or Mythic Rare
this.numBoosterRare = 1;
this.ratioBoosterMythic = 8; // 12.5% chance of a mythic rare
// #13 Basic land
this.hasBasicLands = true;
this.numBoosterLands = 1;
// #11 Non-foil Wildcard (A card of any rarity from the set. Guaranteed to be non-foil.)
// #14 Foil Wildcard (A card of any rarity from the set. Guaranteed to be foil.)
// simplify: use U + R instead x2 wild cards
this.numBoosterUncommon++;
this.numBoosterRare++;
}
}