From d9cb196e2c46bc29378a087f0d1050a820fec2a4 Mon Sep 17 00:00:00 2001 From: Oleg Agafonov Date: Mon, 27 Jan 2025 00:15:44 +0400 Subject: [PATCH] refactor: added helper methods for default booster settings (see enableDraftBooster, enablePlayOrArenaBooster) --- .../src/mage/sets/InnistradRemastered.java | 9 +--- .../main/java/mage/cards/ExpansionSet.java | 48 +++++++++++++++++++ 2 files changed, 49 insertions(+), 8 deletions(-) diff --git a/Mage.Sets/src/mage/sets/InnistradRemastered.java b/Mage.Sets/src/mage/sets/InnistradRemastered.java index d3d970737f7..33127ab3962 100644 --- a/Mage.Sets/src/mage/sets/InnistradRemastered.java +++ b/Mage.Sets/src/mage/sets/InnistradRemastered.java @@ -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 #1–480, collector boosters #1–491 this.numBoosterDoubleFaced = -1; - this.maxCardNumberInBooster = 480; // play boosters #1–480, collector boosters #1–491 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)); diff --git a/Mage/src/main/java/mage/cards/ExpansionSet.java b/Mage/src/main/java/mage/cards/ExpansionSet.java index 47588847989..8257efa9267 100644 --- a/Mage/src/main/java/mage/cards/ExpansionSet.java +++ b/Mage/src/main/java/mage/cards/ExpansionSet.java @@ -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++; + } }