add docs/links for jumpstart, tweak the jumpstart packs file.

This commit is contained in:
John Hitchings 2020-06-19 22:10:09 -07:00
parent 1bd98d6435
commit c54c100b4d
4 changed files with 58 additions and 49 deletions

View file

@ -98,6 +98,8 @@
<tournamentType name="Sealed Elimination (Cube)" jar="mage-tournament-sealed-${project.version}.jar" className="mage.tournament.SealedEliminationTournament" typeName="mage.tournament.SealedEliminationCubeTournamentType"/> <tournamentType name="Sealed Elimination (Cube)" jar="mage-tournament-sealed-${project.version}.jar" className="mage.tournament.SealedEliminationTournament" typeName="mage.tournament.SealedEliminationCubeTournamentType"/>
<tournamentType name="Sealed Swiss" jar="mage-tournament-sealed-${project.version}.jar" className="mage.tournament.SealedSwissTournament" typeName="mage.tournament.SealedSwissTournamentType"/> <tournamentType name="Sealed Swiss" jar="mage-tournament-sealed-${project.version}.jar" className="mage.tournament.SealedSwissTournament" typeName="mage.tournament.SealedSwissTournamentType"/>
<tournamentType name="Sealed Swiss (Cube)" jar="mage-tournament-sealed-${project.version}.jar" className="mage.tournament.SealedSwissTournament" typeName="mage.tournament.SealedSwissCubeTournamentType"/> <tournamentType name="Sealed Swiss (Cube)" jar="mage-tournament-sealed-${project.version}.jar" className="mage.tournament.SealedSwissTournament" typeName="mage.tournament.SealedSwissCubeTournamentType"/>
<tournamentType name="Jumpstart Elimination" jar="mage-tournament-sealed.jar" className="mage.tournament.JumpstartEliminationTournament" typeName="mage.tournament.JumpstartEliminationTournamentType"/>
<tournamentType name="Jumpstart Swiss" jar="mage-tournament-sealed.jar" className="mage.tournament.JumpstartSwissTournament" typeName="mage.tournament.JumpstartSwissTournamentType"/>
</tournamentTypes> </tournamentTypes>
<draftCubes> <draftCubes>
<draftCube name="Adam Styborski's Pauper Cube" jar="mage-tournament-booster-draft-${project.version}.jar" className="mage.tournament.cubes.AdamStyborskisPauperCube"/> <draftCube name="Adam Styborski's Pauper Cube" jar="mage-tournament-booster-draft-${project.version}.jar" className="mage.tournament.cubes.AdamStyborskisPauperCube"/>

View file

@ -20,6 +20,36 @@ import mage.game.GameException;
public class JumpstartPoolGenerator { 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 String RESOURCE_NAME = "jumpstart/jumpstart.txt";
private static final List<JumpstartPack> JUMPSTART_PACKS; private static final List<JumpstartPack> JUMPSTART_PACKS;
@ -28,17 +58,21 @@ public class JumpstartPoolGenerator {
CharSource source = Resources.asCharSource(Resources.getResource(RESOURCE_NAME), Charsets.UTF_8); CharSource source = Resources.asCharSource(Resources.getResource(RESOURCE_NAME), Charsets.UTF_8);
List<JumpstartPack> packs = new ArrayList<>(); List<JumpstartPack> packs = new ArrayList<>();
JumpstartPack pack = new JumpstartPack(); JumpstartPack pack = new JumpstartPack();
packs.add(pack);
for (String line : source.readLines()) { for (String line : source.readLines()) {
if (line.isEmpty()) { if (line.isEmpty()) {
if (!pack.isEmpty()) { if (!pack.isEmpty()) {
packs.add(pack);
pack = new JumpstartPack(); pack = new JumpstartPack();
packs.add(pack);
} }
} else if (line.startsWith("#")) { } else if (line.startsWith("#")) {
// skip comment // skip comment
} else { } else {
String[] ls = line.split(" ", 3); String[] ls = line.split(" ", 4);
pack.add(new DeckCardInfo(ls[2], ls[1], ls[0])); 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); JUMPSTART_PACKS = Collections.unmodifiableList(packs);

View file

@ -411,7 +411,7 @@ public abstract class TournamentImpl implements Tournament {
player.getDeck().getSideboard().addAll(cube.createBooster()); player.getDeck().getSideboard().addAll(cube.createBooster());
} }
} else if (options.getLimitedOptions().getIsJumpstart()) { } else if (options.getLimitedOptions().getIsJumpstart()) {
player.getDeck().getSideboard().addAll(JumpstartPoolGenerator.generatePool()); player.getDeck().getCards().addAll(JumpstartPoolGenerator.generatePool());
} else { } else {
for (ExpansionSet set : sets) { for (ExpansionSet set : sets) {
player.getDeck().getSideboard().addAll(set.createBooster()); player.getDeck().getSideboard().addAll(set.createBooster());

View file

@ -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 # Red Cards
ELD 137 Rimrock Knight 3 ELD 137 Rimrock Knight
ELD 137 Rimrock Knight 4 ELD 115 Bonecrusher Giant
ELD 137 Rimrock Knight 2 ELD 120 Embercleave
ELD 137 Rimrock Knight 8 ELD 262 Mountain
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
# Green Cards # Green Cards
GRN 141 Pelt Collector 3 GRN 141 Pelt Collector
GRN 141 Pelt Collector 3 WAR 171 Paradise Druid
GRN 141 Pelt Collector 3 ELD 165 Lovestruck Beast
GRN 141 Pelt Collector 3 ELD 171 Questing Beast
WAR 171 Paradise Druid 8 ELD 266 Forest
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
# Black Cards # Black Cards
THB 123 Woe Strider 2 THB 123 Woe Strider
THB 123 Woe Strider 4 ELD 81 Cauldron Familiar
THB 123 Woe Strider 3 ELD 237 Witch's Oven
THB 123 Woe Strider 3 IKO 220 Fiend Artisan
ELD 81 Cauldron Familiar 8 ELD 258 Swamp
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