Merge pull request #6190 from luziferius/refactor_promo_sets

[RFC] Refactor promo sets, add missing sets as listed on Scryfall
This commit is contained in:
Oleg Agafonov 2020-08-10 16:57:00 +02:00 committed by GitHub
commit b16d30b79b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
438 changed files with 14861 additions and 3880 deletions

View file

@ -2,12 +2,12 @@ NAME:RB Aggro
1 [SOM:242] Mountain
1 [INV:344] Mountain
1 [INV:345] Mountain
1 [ZEN:263] Mountain
1 [ZEN:242a] Mountain
1 [SHM:294] Mountain
1 [ZEN:264] Mountain
1 [ZEN:242a] Mountain
1 [SHM:295] Mountain
1 [SHM:296] Mountain
1 [ZEN:262] Mountain
1 [ZEN:242a] Mountain
1 [ISD:261] Mountain
1 [ISD:260] Mountain
1 [AVR:240] Mountain
@ -19,7 +19,7 @@ NAME:RB Aggro
1 [M10:245] Mountain
1 [M10:242] Mountain
1 [M10:243] Mountain
1 [GUR:3] Mountain
1 [PGRU:4] Mountain
1 [MRD:299] Mountain
1 [SOM:245] Mountain
1 [SOM:244] Mountain
@ -67,5 +67,5 @@ NAME:RB Aggro
1 [TSP:295] Mountain
1 [TSP:294] Mountain
1 [ISD:259] Mountain
LAYOUT MAIN:(2,1)(CMC,true,5)|()([GUR:3],[SHM:296],[AVR:240],[SHM:295],[SHM:294],[TSP:295],[TSP:294],[10E:379],[SOM:245],[ZEN:262],[ZEN:245],[10E:378],[SOM:244],[SOM:243],[ZEN:244],[SOM:242],[ZEN:243],[ZEN:242],[ALA:243],[ALA:242],[M12:245],[CHK:299],[M12:243],[M12:244],[CHK:300],[CHK:301],[M12:242],[CHK:302],[10E:376],[M11:243],[M11:242],[M11:245],[M11:244],[MBS:152],[ALA:244],[ALA:245],[ZEN:263],[ZEN:264],[RAV:301],[RAV:300],[RAV:299],[USG:345],[USG:346],[M10:242],[RAV:302],[USG:343],[USG:344],[ISD:259],[ROE:244],[ISD:261],[ISD:260],[ROE:241],[ROE:242],[ROE:243],[MRD:301],[MRD:300],[MRD:299],[M10:244],[M10:243],[M10:245],[LRW:294],[TMP:343],[LRW:295],[LRW:296],[LRW:297],[TMP:343],[MRD:302],[TMP:343],[TMP:343],[INV:345],[INV:344])
LAYOUT MAIN:(2,1)(CMC,true,5)|()([PGRU:4],[SHM:296],[AVR:240],[SHM:295],[SHM:294],[TSP:295],[TSP:294],[10E:379],[SOM:245],[ZEN:242a],[ZEN:245],[10E:378],[SOM:244],[SOM:243],[ZEN:244],[SOM:242],[ZEN:243],[ZEN:242],[ALA:243],[ALA:242],[M12:245],[CHK:299],[M12:243],[M12:244],[CHK:300],[CHK:301],[M12:242],[CHK:302],[10E:376],[M11:243],[M11:242],[M11:245],[M11:244],[MBS:152],[ALA:244],[ALA:245],[ZEN:242a],[ZEN:242a],[RAV:301],[RAV:300],[RAV:299],[USG:345],[USG:346],[M10:242],[RAV:302],[USG:343],[USG:344],[ISD:259],[ROE:244],[ISD:261],[ISD:260],[ROE:241],[ROE:242],[ROE:243],[MRD:301],[MRD:300],[MRD:299],[M10:244],[M10:243],[M10:245],[LRW:294],[TMP:343],[LRW:295],[LRW:296],[LRW:297],[TMP:343],[MRD:302],[TMP:343],[TMP:343],[INV:345],[INV:344])
LAYOUT SIDEBOARD:(0,0)(COLOR_IDENTITY,true,5)|

View file

@ -35,7 +35,7 @@ public class TxtDeckImporterTest {
Assert.assertEquals("Deck does not contain 3 cards, found " + deck.getCards().size(), 3, deck.getCards().size());
Assert.assertEquals("Sideboard does not contain 2 cards, found " + deck.getSideboard().size(), 2, deck.getSideboard().size());
DeckCardLists imported = importer.importDeck("JustLands.txt");
DeckCardLists imported = importer.importDeck("JustLands.txt", false);
Assert.assertEquals("Imported deck does not contain 3 cards, found " + imported.getCards().size(), 3, imported.getCards().size());
Assert.assertEquals("Imported sideboard does not contain 2 cards, found " + imported.getSideboard().size(), 2, imported.getSideboard().size());

View file

@ -59,46 +59,60 @@ public class LoadTest {
Deck deck;
deck = DeckTestUtils.buildRandomDeck("G", false);
Assert.assertNotNull(deck);
for (Card card : deck.getCards()) {
Assert.assertNotNull(card);
Assert.assertTrue("card " + card.getName() + " color " + card.getColorIdentity().toString() + " must be in G",
card.getColorIdentity().isGreen());
}
deck = DeckTestUtils.buildRandomDeck("U", false);
Assert.assertNotNull(deck);
for (Card card : deck.getCards()) {
Assert.assertNotNull(card);
Assert.assertTrue("card " + card.getName() + " color " + card.getColorIdentity().toString() + " must be in U",
card.getColorIdentity().isBlue());
}
deck = DeckTestUtils.buildRandomDeck("BR", false);
Assert.assertNotNull(deck);
for (Card card : deck.getCards()) {
Assert.assertNotNull(card);
Assert.assertTrue("card " + card.getName() + " color " + card.getColorIdentity().toString() + " must be in BR",
card.getColorIdentity().isBlack() || card.getColorIdentity().isRed());
}
deck = DeckTestUtils.buildRandomDeck("BUG", false);
Assert.assertNotNull(deck);
for (Card card : deck.getCards()) {
Assert.assertNotNull(card);
Assert.assertTrue("card " + card.getName() + " color " + card.getColorIdentity().toString() + " must be in BUG",
card.getColorIdentity().isBlack() || card.getColorIdentity().isBlue() || card.getColorIdentity().isGreen());
}
// lands
deck = DeckTestUtils.buildRandomDeck("UR", true);
Assert.assertNotNull(deck);
for (Card card : deck.getCards()) {
Assert.assertNotNull(card);
Assert.assertTrue("card " + card.getName() + " color " + card.getColorIdentity().toString() + " must be in UR",
card.getColorIdentity().isBlue() || card.getColorIdentity().isRed());
Assert.assertEquals("card " + card.getName() + " must be basic land ", Rarity.LAND, card.getRarity());
}
deck = DeckTestUtils.buildRandomDeck("B", true);
Assert.assertNotNull(deck);
for (Card card : deck.getCards()) {
Assert.assertNotNull(card);
Assert.assertTrue("card " + card.getName() + " color " + card.getColorIdentity().toString() + " must be in B", card.getColorIdentity().isBlack());
Assert.assertEquals("card " + card.getName() + " must be basic land ", Rarity.LAND, card.getRarity());
}
// allowed sets
deck = DeckTestUtils.buildRandomDeck("B", true, "GRN");
Assert.assertNotNull(deck);
for (Card card : deck.getCards()) {
Assert.assertNotNull(card);
Assert.assertTrue("card " + card.getName() + " color " + card.getColorIdentity().toString() + " must be in B", card.getColorIdentity().isBlack());
Assert.assertEquals("card " + card.getName() + " have wrong set code " + card.getExpansionSetCode(), "GRN", card.getExpansionSetCode());
}

View file

@ -248,7 +248,7 @@ public abstract class CardTestPlayerAPIImpl extends MageTestPlayerBase implement
if (loadedDeckCardLists.containsKey(deckName)) {
list = loadedDeckCardLists.get(deckName);
} else {
list = DeckImporter.importDeckFromFile(deckName);
list = DeckImporter.importDeckFromFile(deckName, true);
loadedDeckCardLists.put(deckName, list);
}
Deck deck = Deck.load(list, false, false);

View file

@ -114,7 +114,7 @@ public class DeckValidatorTest extends MageTestBase {
@Test
public void testModernCounterspell1() {
ArrayList<CardNameAmount> deckList = new ArrayList<>();
deckList.add(new CardNameAmount("DD3JVC", 24, 4));
deckList.add(new CardNameAmount("JVC", 24, 4));
deckList.add(new CardNameAmount("Mountain", 56));
Assert.assertFalse("Counterspell not allowed in modern", testDeckValid(new Modern(), deckList));
@ -134,7 +134,7 @@ public class DeckValidatorTest extends MageTestBase {
Assert.assertFalse("Counterspell not allowed in modern", testDeckValid(new Modern(), deckList));
deckList.clear();
deckList.add(new CardNameAmount("JR", 5, 4));
deckList.add(new CardNameAmount("G00", 1, 4));
deckList.add(new CardNameAmount("Mountain", 56));
Assert.assertFalse("Counterspell not allowed in modern", testDeckValid(new Modern(), deckList));
@ -149,7 +149,7 @@ public class DeckValidatorTest extends MageTestBase {
Assert.assertFalse("Counterspell not allowed in modern", testDeckValid(new Modern(), deckList));
deckList.clear();
deckList.add(new CardNameAmount("FNMP", 66, 4));
deckList.add(new CardNameAmount("F05", 11, 4));
deckList.add(new CardNameAmount("Mountain", 56));
Assert.assertFalse("Counterspell not allowed in modern", testDeckValid(new Modern(), deckList));
@ -213,11 +213,6 @@ public class DeckValidatorTest extends MageTestBase {
deckList.add(new CardNameAmount("Mountain", 56));
Assert.assertFalse("Counterspell not allowed in modern", testDeckValid(new Modern(), deckList));
deckList.clear();
deckList.add(new CardNameAmount("S00", 12, 4));
deckList.add(new CardNameAmount("Mountain", 56));
Assert.assertFalse("Counterspell not allowed in modern", testDeckValid(new Modern(), deckList));
}
@Test