From 7d2db7ddddc9de968ff56b3f4447b0dceeb43c2b Mon Sep 17 00:00:00 2001 From: tiera3 <87589219+tiera3@users.noreply.github.com> Date: Thu, 3 Oct 2024 10:03:44 +1000 Subject: [PATCH] [EXO] Exodus - collation - commons (closes #12966) --- Mage.Sets/src/mage/sets/Exodus.java | 48 +++++++++++++++++++++++++++-- 1 file changed, 46 insertions(+), 2 deletions(-) diff --git a/Mage.Sets/src/mage/sets/Exodus.java b/Mage.Sets/src/mage/sets/Exodus.java index 072d1e0c9bb..de821457fe9 100644 --- a/Mage.Sets/src/mage/sets/Exodus.java +++ b/Mage.Sets/src/mage/sets/Exodus.java @@ -1,9 +1,15 @@ - package mage.sets; import mage.cards.ExpansionSet; import mage.constants.Rarity; import mage.constants.SetType; +import mage.collation.BoosterCollator; +import mage.collation.BoosterStructure; +import mage.collation.CardRun; +import mage.collation.RarityConfiguration; + +import java.util.ArrayList; +import java.util.List; /** * @@ -75,7 +81,7 @@ public final class Exodus extends ExpansionSet { cards.add(new SetCardInfo("Keeper of the Beasts", 112, Rarity.UNCOMMON, mage.cards.k.KeeperOfTheBeasts.class)); cards.add(new SetCardInfo("Keeper of the Dead", 65, Rarity.UNCOMMON, mage.cards.k.KeeperOfTheDead.class)); cards.add(new SetCardInfo("Keeper of the Flame", 85, Rarity.UNCOMMON, mage.cards.k.KeeperOfTheFlame.class)); - cards.add(new SetCardInfo("Keeper of the Light", 8, Rarity.UNCOMMON, mage.cards.k.KeeperOfTheLight.class)); + cards.add(new SetCardInfo("Keeper of the Light", 8, Rarity.UNCOMMON, mage.cards.k.KeeperOfTheLight.class)); cards.add(new SetCardInfo("Keeper of the Mind", 36, Rarity.UNCOMMON, mage.cards.k.KeeperOfTheMind.class)); cards.add(new SetCardInfo("Killer Whale", 37, Rarity.UNCOMMON, mage.cards.k.KillerWhale.class)); cards.add(new SetCardInfo("Kor Chant", 9, Rarity.COMMON, mage.cards.k.KorChant.class)); @@ -172,4 +178,42 @@ public final class Exodus extends ExpansionSet { cards.add(new SetCardInfo("Workhorse", 142, Rarity.RARE, mage.cards.w.Workhorse.class)); cards.add(new SetCardInfo("Zealots en-Dal", 26, Rarity.UNCOMMON, mage.cards.z.ZealotsEnDal.class)); } + + @Override + public BoosterCollator createCollator() { + return new ExodusCollator(); + } +} + +// Booster collation info from https://www.lethe.xyz/mtg/collation/exo.html +// Using US collation - commons only +class ExodusCollator implements BoosterCollator { + private final CardRun commonA = new CardRun(true, "67", "130", "52", "86", "9", "58", "105", "34", "98", "19", "77", "122", "39", "87", "20", "76", "119", "34", "79", "18", "54", "118", "48", "92", "22", "58", "116", "52", "103", "19", "67", "122", "51", "79", "9", "63", "119", "28", "98", "21", "77", "130", "39", "92", "20", "54", "116", "28", "86", "18", "76", "105", "48", "87", "22", "63", "118", "51", "103", "21"); + private final CardRun commonB = new CardRun(true, "56", "106", "44", "102", "4", "53", "120", "43", "81", "25", "60", "106", "45", "96", "2", "56", "117", "27", "84", "4", "60", "111", "43", "80", "1", "55", "110", "49", "96", "25", "73", "120", "44", "81", "16", "55", "111", "45", "102", "2", "73", "110", "27", "80", "16", "53", "117", "49", "84", "1"); + private final CardRun uncommon = new CardRun(false, "107", "108", "29", "57", "59", "109", "83", "35", "62", "7", "112", "65", "85", "8", "36", "37", "38", "133", "66", "41", "88", "68", "94", "13", "14", "15", "95", "17", "121", "99", "100", "46", "137", "123", "74", "125", "138", "104", "75", "127", "141", "23", "50", "26"); + private final CardRun rare = new CardRun(false, "3", "143", "131", "5", "30", "61", "31", "32", "132", "33", "6", "82", "64", "10", "113", "134", "135", "40", "114", "89", "136", "115", "69", "11", "90", "42", "91", "12", "93", "70", "71", "97", "72", "101", "124", "139", "126", "128", "129", "47", "140", "78", "24", "142"); + + private final BoosterStructure A6 = new BoosterStructure( + commonA, commonA, commonA, commonA, commonA, commonA + ); + private final BoosterStructure B5 = new BoosterStructure( + commonB, commonB, commonB, commonB, commonB + ); + private final BoosterStructure U3 = new BoosterStructure(uncommon, uncommon, uncommon); + private final BoosterStructure R1 = new BoosterStructure(rare); + + private final RarityConfiguration commonRunsA = new RarityConfiguration(A6); + private final RarityConfiguration commonRunsB = new RarityConfiguration(B5); + private final RarityConfiguration uncommonRuns = new RarityConfiguration(U3); + private final RarityConfiguration rareRuns = new RarityConfiguration(R1); + + @Override + public List makeBooster() { + List booster = new ArrayList<>(); + booster.addAll(commonRunsA.getNext().makeRun()); + booster.addAll(uncommonRuns.getNext().makeRun()); + booster.addAll(rareRuns.getNext().makeRun()); + booster.addAll(commonRunsB.getNext().makeRun()); + return booster; + } }