diff --git a/Mage.Server/release/config/config.xml b/Mage.Server/release/config/config.xml index aac80217ba5..3a9810f3866 100644 --- a/Mage.Server/release/config/config.xml +++ b/Mage.Server/release/config/config.xml @@ -98,6 +98,8 @@ + + diff --git a/Mage/src/main/java/mage/game/jumpstart/JumpstartPoolGenerator.java b/Mage/src/main/java/mage/game/jumpstart/JumpstartPoolGenerator.java index b9425d2c3a7..9039e28e07c 100644 --- a/Mage/src/main/java/mage/game/jumpstart/JumpstartPoolGenerator.java +++ b/Mage/src/main/java/mage/game/jumpstart/JumpstartPoolGenerator.java @@ -20,6 +20,36 @@ import mage.game.GameException; public class JumpstartPoolGenerator { + /** + * "Jumpstart is a new way to play Magic that mashes together themes from throughout the history of the game and + * lets you skip the deckbuilding part. Grab two boosters, shuffle them into a 40-card deck, and start playing. + * The set contains almost 500 reprints but also introduces 37 new cards that were designed to help fill out some + * of the themes. These are not going to be Standard-, Pioneer-, or Modern-legal cards, but are legal in Eternal + * formats (Legacy, Vintage, Pauper and Commander). There are no foil cards in the set. 120 cards are from Core + * Set 2021[7], and more than 400 reprints are from sets before Core Set 2021. Cards from M21 have the M21 expansion + * symbol, while new cards and other reprints will have the Jumpstart symbol. Reprints have a Post-M15 card frame. + * The new cards and cards with new art are numbered #1/78 to #78/78 (40 basic lands, TBA common, TBA uncommon, + * TBA rare, and TBA mythic rare). The other reprints with the Jumpstart expansion symbol are numbered #79 to 495." + * + * "Jumpstart is sold in 20-card boosters, and booster boxes contain 24 boosters.[9] All 20 cards in a booster fit a + * theme, and most themes are mono-color and have multiple variations of cards included in the pack, totaling 121 + * different possible pack contents. Special "Mythic Rare" packs don't have variations at all, but just one possible + * card list and can feature multiple colors. What theme each booster contains is randomized. Most packs are + * singletons, but there are some instances of having two copies of a card in the pack. All boosters contain at + * least one rare, and one in three boosters includes an extra rare. Of the 20 cards in a pack, seven or eight + * are lands. One basic land (or in the case of Rainbow, Terramorphic Expanse) features art that matches the pack's + * theme. The planeswalker themed packs use the respective Showcase lands from M21, but the other packs use brand-new + * themed land art created for the set. The booster pack is wrapped like a regular pack, but the set of cards is + * packed in an additional plastic wrap, with a face card (the "Pack Summary card") that indicates the theme and + * the color of the half-deck." + * + * Source: https://mtg.gamepedia.com/Jumpstart + * + * Announcement: https://magic.wizards.com/en/articles/archive/news/introducing-jumpstart-new-way-play-magic-2020-02-20 + * Card Pool: https://magic.wizards.com/en/articles/archive/card-image-gallery/jumpstart + * Deck Lists: https://magic.wizards.com/en/articles/archive/feature/jumpstart-decklists-2020-06-18 + */ + private static final String RESOURCE_NAME = "jumpstart/jumpstart.txt"; private static final List JUMPSTART_PACKS; @@ -28,17 +58,21 @@ public class JumpstartPoolGenerator { CharSource source = Resources.asCharSource(Resources.getResource(RESOURCE_NAME), Charsets.UTF_8); List packs = new ArrayList<>(); JumpstartPack pack = new JumpstartPack(); + packs.add(pack); for (String line : source.readLines()) { if (line.isEmpty()) { if (!pack.isEmpty()) { - packs.add(pack); pack = new JumpstartPack(); + packs.add(pack); } } else if (line.startsWith("#")) { // skip comment } else { - String[] ls = line.split(" ", 3); - pack.add(new DeckCardInfo(ls[2], ls[1], ls[0])); + String[] ls = line.split(" ", 4); + int quantity = Integer.parseInt(ls[0]); + for (int i = 0; i < quantity; i++) { + pack.add(new DeckCardInfo(ls[3], ls[2], ls[1])); + } } } JUMPSTART_PACKS = Collections.unmodifiableList(packs); diff --git a/Mage/src/main/java/mage/game/tournament/TournamentImpl.java b/Mage/src/main/java/mage/game/tournament/TournamentImpl.java index cd3729b844b..001cf9dc6ea 100644 --- a/Mage/src/main/java/mage/game/tournament/TournamentImpl.java +++ b/Mage/src/main/java/mage/game/tournament/TournamentImpl.java @@ -411,7 +411,7 @@ public abstract class TournamentImpl implements Tournament { player.getDeck().getSideboard().addAll(cube.createBooster()); } } else if (options.getLimitedOptions().getIsJumpstart()) { - player.getDeck().getSideboard().addAll(JumpstartPoolGenerator.generatePool()); + player.getDeck().getCards().addAll(JumpstartPoolGenerator.generatePool()); } else { for (ExpansionSet set : sets) { player.getDeck().getSideboard().addAll(set.createBooster()); diff --git a/Mage/src/main/resources/jumpstart/jumpstart.txt b/Mage/src/main/resources/jumpstart/jumpstart.txt index f0302537725..e9e6ddb0d6a 100644 --- a/Mage/src/main/resources/jumpstart/jumpstart.txt +++ b/Mage/src/main/resources/jumpstart/jumpstart.txt @@ -1,50 +1,23 @@ -# setCode cardNum cardName +# Jumpstart Decklists +# https://magic.wizards.com/en/articles/archive/feature/jumpstart-decklists-2020-06-18 +# quantity setCode cardNum cardName + # Red Cards -ELD 137 Rimrock Knight -ELD 137 Rimrock Knight -ELD 137 Rimrock Knight -ELD 137 Rimrock Knight -ELD 291 Bonecrusher Giant -ELD 291 Bonecrusher Giant -ELD 291 Bonecrusher Giant -ELD 291 Bonecrusher Giant -ELD 120 Embercleave -ELD 120 Embercleave -ELD 120 Embercleave -ELD 120 Embercleave +3 ELD 137 Rimrock Knight +4 ELD 115 Bonecrusher Giant +2 ELD 120 Embercleave +8 ELD 262 Mountain # Green Cards -GRN 141 Pelt Collector -GRN 141 Pelt Collector -GRN 141 Pelt Collector -GRN 141 Pelt Collector -WAR 171 Paradise Druid -WAR 171 Paradise Druid -WAR 171 Paradise Druid -WAR 171 Paradise Druid -ELD 165 Lovestruck Beast -ELD 165 Lovestruck Beast -ELD 165 Lovestruck Beast -ELD 165 Lovestruck Beast -ELD 171 Questing Beast -ELD 171 Questing Beast -ELD 171 Questing Beast -ELD 171 Questing Beast +3 GRN 141 Pelt Collector +3 WAR 171 Paradise Druid +3 ELD 165 Lovestruck Beast +3 ELD 171 Questing Beast +8 ELD 266 Forest # Black Cards -THB 123 Woe Strider -THB 123 Woe Strider -THB 123 Woe Strider -THB 123 Woe Strider -ELD 81 Cauldron Familiar -ELD 81 Cauldron Familiar -ELD 81 Cauldron Familiar -ELD 81 Cauldron Familiar -ELD 237 Witch's Oven -ELD 237 Witch's Oven -ELD 237 Witch's Oven -ELD 237 Witch's Oven -IKO 220 Fiend Artisan -IKO 220 Fiend Artisan -IKO 220 Fiend Artisan -IKO 220 Fiend Artisan \ No newline at end of file +2 THB 123 Woe Strider +4 ELD 81 Cauldron Familiar +3 ELD 237 Witch's Oven +3 IKO 220 Fiend Artisan +8 ELD 258 Swamp