From 69546c82ce3a50aceb83f1829da03e887e074b57 Mon Sep 17 00:00:00 2001 From: Oleg Agafonov Date: Wed, 3 Oct 2018 20:32:58 +0400 Subject: [PATCH] * Added missing images for WPN and Gateway Promos (GRC) set in scryfall source; --- .../card/dl/sources/ScryfallImageSource.java | 84 +++++++++++++++- .../src/mage/sets/WPNAndGatewayPromos.java | 95 +++++++++++++++++++ Mage.Sets/src/mage/sets/WPNGateway.java | 93 ------------------ .../src/main/java/mage/verify/MtgJson.java | 18 +++- Utils/known-sets.txt | 2 +- 5 files changed, 190 insertions(+), 102 deletions(-) create mode 100644 Mage.Sets/src/mage/sets/WPNAndGatewayPromos.java delete mode 100644 Mage.Sets/src/mage/sets/WPNGateway.java diff --git a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/ScryfallImageSource.java b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/ScryfallImageSource.java index 294d6605032..096768dc349 100644 --- a/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/ScryfallImageSource.java +++ b/Mage.Client/src/main/java/org/mage/plugins/card/dl/sources/ScryfallImageSource.java @@ -238,6 +238,7 @@ public enum ScryfallImageSource implements CardImageSource { supportedSets.add("EURO"); supportedSets.add("GPX"); supportedSets.add("ATH"); + supportedSets.add("GRC"); } @Override @@ -254,9 +255,18 @@ public enum ScryfallImageSource implements CardImageSource { // direct links to images (non localization) if (baseUrl == null) { - String linkCode = card.getSet() + "/" + card.getName(); - if (directDownloadLinks.containsKey(linkCode)) { - baseUrl = directDownloadLinks.get(linkCode); + + // set/card/number + String linkCode1 = card.getSet() + "/" + card.getName() + "/" + card.getCollectorId(); + if (directDownloadLinks.containsKey(linkCode1)) { + baseUrl = directDownloadLinks.get(linkCode1); + alternativeUrl = null; + } + + // set/card + String linkCode2 = card.getSet() + "/" + card.getName(); + if (directDownloadLinks.containsKey(linkCode2)) { + baseUrl = directDownloadLinks.get(linkCode2); alternativeUrl = null; } } @@ -377,6 +387,74 @@ public enum ScryfallImageSource implements CardImageSource { put("DPAP/Soul of Ravnica", "https://img.scryfall.com/cards/large/en/pdp14/1.jpg"); put("DPAP/Soul of Zendikar", "https://img.scryfall.com/cards/large/en/pdp14/2.jpg"); + // Gateway Promos -- xmage uses one set (GRC), but scryfall store it by years + // 2006 - https://scryfall.com/sets/pgtw + put("GRC/Fiery Temper", "https://img.scryfall.com/cards/large/en/pgtw/3.jpg"); + put("GRC/Icatian Javelineers", "https://img.scryfall.com/cards/large/en/pgtw/2.jpg"); + put("GRC/Wood Elves", "https://img.scryfall.com/cards/large/en/pgtw/1.jpg"); + // 2007 - https://scryfall.com/sets/pg07 + put("GRC/Boomerang", "https://img.scryfall.com/cards/large/en/pg07/4.jpg"); + put("GRC/Calciderm", "https://img.scryfall.com/cards/large/en/pg07/5.jpg"); + put("GRC/Dauntless Dourbark", "https://img.scryfall.com/cards/large/en/pg07/12.jpg"); + put("GRC/Llanowar Elves", "https://img.scryfall.com/cards/large/en/pg07/9.jpg"); + put("GRC/Mind Stone", "https://img.scryfall.com/cards/large/en/pg07/11.jpg"); + put("GRC/Mogg Fanatic", "https://img.scryfall.com/cards/large/en/pg07/10.jpg"); + put("GRC/Reckless Wurm", "https://img.scryfall.com/cards/large/en/pg07/6.jpg"); + put("GRC/Yixlid Jailer", "https://img.scryfall.com/cards/large/en/pg07/7.jpg"); + put("GRC/Zoetic Cavern", "https://img.scryfall.com/cards/large/en/pg07/8.jpg"); + // 2008a - https://scryfall.com/sets/pg08 + put("GRC/Boggart Ram-Gang", "https://img.scryfall.com/cards/large/en/pg08/17.jpg"); + put("GRC/Cenn's Tactician", "https://img.scryfall.com/cards/large/en/pg08/14.jpg"); + put("GRC/Duergar Hedge-Mage", "https://img.scryfall.com/cards/large/en/pg08/19.jpg"); + put("GRC/Gravedigger", "https://img.scryfall.com/cards/large/en/pg08/16.jpg"); + put("GRC/Lava Axe", "https://img.scryfall.com/cards/large/en/pg08/13.jpg"); + put("GRC/Oona's Blackguard", "https://img.scryfall.com/cards/large/en/pg08/15.jpg"); + put("GRC/Selkie Hedge-Mage", "https://img.scryfall.com/cards/large/en/pg08/20.jpg"); + put("GRC/Wilt-Leaf Cavaliers", "https://img.scryfall.com/cards/large/en/pg08/18.jpg"); + + // Wizards Play Network Promos -- xmage uses one set (GRC), but scryfall store it by years + // 2008b - https://scryfall.com/sets/pwpn + put("GRC/Sprouting Thrinax", "https://img.scryfall.com/cards/large/en/pwpn/21.jpg"); + put("GRC/Woolly Thoctar", "https://img.scryfall.com/cards/large/en/pwpn/22.jpg"); + // 2009 - https://scryfall.com/sets/pwp09 + put("GRC/Hellspark Elemental", "https://img.scryfall.com/cards/large/en/pwp09/25.jpg"); + put("GRC/Kor Duelist", "https://img.scryfall.com/cards/large/en/pwp09/32.jpg"); + put("GRC/Marisi's Twinclaws", "https://img.scryfall.com/cards/large/en/pwp09/26.jpg"); + put("GRC/Mind Control", "https://img.scryfall.com/cards/large/en/pwp09/30.jpg"); + put("GRC/Path to Exile", "https://img.scryfall.com/cards/large/en/pwp09/24.jpg"); + put("GRC/Rise from the Grave", "https://img.scryfall.com/cards/large/en/pwp09/31.jpg"); + put("GRC/Slave of Bolas", "https://img.scryfall.com/cards/large/en/pwp09/27.jpg"); + put("GRC/Vampire Nighthawk", "https://img.scryfall.com/cards/large/en/pwp09/33.jpg"); + // 2010 - https://scryfall.com/sets/pwp10 + put("GRC/Kor Firewalker", "https://img.scryfall.com/cards/large/en/pwp10/36.jpg"); + put("GRC/Leatherback Baloth", "https://img.scryfall.com/cards/large/en/pwp10/37.jpg"); + put("GRC/Syphon Mind", "https://img.scryfall.com/cards/large/en/pwp10/40.jpg"); + put("GRC/Pathrazer of Ulamog", "https://img.scryfall.com/cards/large/en/pwp10/46.jpg"); + put("GRC/Curse of Wizardry", "https://img.scryfall.com/cards/large/en/pwp10/47.jpg"); + put("GRC/Fling/50", "https://img.scryfall.com/cards/large/en/pwp10/50.jpg"); // same card but different year + put("GRC/Sylvan Ranger/51", "https://img.scryfall.com/cards/large/en/pwp10/51.jpg"); // same card but different year + put("GRC/Plague Stinger", "https://img.scryfall.com/cards/large/en/pwp10/59.jpg"); + put("GRC/Golem's Heart", "https://img.scryfall.com/cards/large/en/pwp10/60.jpg"); + put("GRC/Skinrender", "https://img.scryfall.com/cards/large/en/pwp10/63.jpg"); + // 2011 - https://scryfall.com/sets/pwp11 + put("GRC/Auramancer", "https://img.scryfall.com/cards/large/en/pwp11/77.jpg"); + put("GRC/Bloodcrazed Neonate", "https://img.scryfall.com/cards/large/en/pwp11/83.jpg"); + put("GRC/Boneyard Wurm", "https://img.scryfall.com/cards/large/en/pwp11/84.jpg"); + put("GRC/Circle of Flame", "https://img.scryfall.com/cards/large/en/pwp11/78.jpg"); + put("GRC/Curse of the Bloody Tome", "https://img.scryfall.com/cards/large/en/pwp11/80.jpg"); + put("GRC/Fling/69", "https://img.scryfall.com/cards/large/en/pwp11/69.jpg"); // same card but different year + put("GRC/Master's Call", "https://img.scryfall.com/cards/large/en/pwp11/64.jpg"); + put("GRC/Maul Splicer", "https://img.scryfall.com/cards/large/en/pwp11/72.jpg"); + put("GRC/Plague Myr", "https://img.scryfall.com/cards/large/en/pwp11/65.jpg"); + put("GRC/Shrine of Burning Rage", "https://img.scryfall.com/cards/large/en/pwp11/73.jpg"); + put("GRC/Signal Pest", "https://img.scryfall.com/cards/large/en/pwp11/66.jpg"); + put("GRC/Sylvan Ranger/70", "https://img.scryfall.com/cards/large/en/pwp11/70.jpg"); // same card but different year + put("GRC/Tormented Soul", "https://img.scryfall.com/cards/large/en/pwp11/76.jpg"); + put("GRC/Vault Skirge", "https://img.scryfall.com/cards/large/en/pwp11/71.jpg"); + // 2012 - https://scryfall.com/sets/pwp12 + put("GRC/Curse of Thirst", "https://img.scryfall.com/cards/large/en/pwp12/81.jpg"); + put("GRC/Gather the Townsfolk", "https://img.scryfall.com/cards/large/en/pwp12/79.jpg"); + put("GRC/Nearheath Stalker", "https://img.scryfall.com/cards/large/en/pwp12/82.jpg"); // TODO: remove Grand Prix fix after scryfall fix image's link (that's link must be work: https://img.scryfall.com/cards/large/en/pgpx/2016b.jpg ) put("GPX/Sword of Feast and Famine", "https://img.scryfall.com/cards/large/en/pgpx/1%E2%98%85.jpg"); diff --git a/Mage.Sets/src/mage/sets/WPNAndGatewayPromos.java b/Mage.Sets/src/mage/sets/WPNAndGatewayPromos.java new file mode 100644 index 00000000000..5f5df117051 --- /dev/null +++ b/Mage.Sets/src/mage/sets/WPNAndGatewayPromos.java @@ -0,0 +1,95 @@ +package mage.sets; + +import mage.cards.ExpansionSet; +import mage.constants.Rarity; +import mage.constants.SetType; + +/** + * @author fireshoes, JayDi85 + */ +public final class WPNAndGatewayPromos extends ExpansionSet { + + private static final WPNAndGatewayPromos instance = new WPNAndGatewayPromos(); + + public static WPNAndGatewayPromos getInstance() { + return instance; + } + + private WPNAndGatewayPromos() { + super("WPN and Gateway Promos", "GRC", ExpansionSet.buildDate(2011, 6, 17), SetType.PROMOTIONAL); + this.hasBoosters = false; + this.hasBasicLands = false; + + // one inner set for many promos by years (Gameway + Wizards Play Network promos by years) + // https://mtg.gamepedia.com/Gateway_cards + + // Gateway Promos -- xmage uses one set (GRC), but scryfall store it by years + // 2006 - https://scryfall.com/sets/pgtw + cards.add(new SetCardInfo("Fiery Temper", 3, Rarity.RARE, mage.cards.f.FieryTemper.class)); + cards.add(new SetCardInfo("Icatian Javelineers", 2, Rarity.RARE, mage.cards.i.IcatianJavelineers.class)); + cards.add(new SetCardInfo("Wood Elves", 1, Rarity.RARE, mage.cards.w.WoodElves.class)); + // 2007 - https://scryfall.com/sets/pg07 + cards.add(new SetCardInfo("Boomerang", 4, Rarity.RARE, mage.cards.b.Boomerang.class)); + cards.add(new SetCardInfo("Calciderm", 5, Rarity.RARE, mage.cards.c.Calciderm.class)); + cards.add(new SetCardInfo("Dauntless Dourbark", 12, Rarity.RARE, mage.cards.d.DauntlessDourbark.class)); + cards.add(new SetCardInfo("Llanowar Elves", 9, Rarity.RARE, mage.cards.l.LlanowarElves.class)); + cards.add(new SetCardInfo("Mind Stone", 11, Rarity.RARE, mage.cards.m.MindStone.class)); + cards.add(new SetCardInfo("Mogg Fanatic", 10, Rarity.RARE, mage.cards.m.MoggFanatic.class)); + cards.add(new SetCardInfo("Reckless Wurm", 6, Rarity.RARE, mage.cards.r.RecklessWurm.class)); + cards.add(new SetCardInfo("Yixlid Jailer", 7, Rarity.RARE, mage.cards.y.YixlidJailer.class)); + cards.add(new SetCardInfo("Zoetic Cavern", 8, Rarity.RARE, mage.cards.z.ZoeticCavern.class)); + // 2008a - https://scryfall.com/sets/pg08 + cards.add(new SetCardInfo("Boggart Ram-Gang", 17, Rarity.RARE, mage.cards.b.BoggartRamGang.class)); + cards.add(new SetCardInfo("Cenn's Tactician", 14, Rarity.RARE, mage.cards.c.CennsTactician.class)); + cards.add(new SetCardInfo("Duergar Hedge-Mage", 19, Rarity.RARE, mage.cards.d.DuergarHedgeMage.class)); + cards.add(new SetCardInfo("Gravedigger", 16, Rarity.RARE, mage.cards.g.Gravedigger.class)); + cards.add(new SetCardInfo("Lava Axe", 13, Rarity.RARE, mage.cards.l.LavaAxe.class)); + cards.add(new SetCardInfo("Oona's Blackguard", 15, Rarity.RARE, mage.cards.o.OonasBlackguard.class)); + cards.add(new SetCardInfo("Selkie Hedge-Mage", 20, Rarity.RARE, mage.cards.s.SelkieHedgeMage.class)); + cards.add(new SetCardInfo("Wilt-Leaf Cavaliers", 18, Rarity.RARE, mage.cards.w.WiltLeafCavaliers.class)); + + // Wizards Play Network Promos -- xmage uses one set (GRC), but scryfall store it by years + // 2008b - https://scryfall.com/sets/pwpn + cards.add(new SetCardInfo("Sprouting Thrinax", 21, Rarity.RARE, mage.cards.s.SproutingThrinax.class)); + cards.add(new SetCardInfo("Woolly Thoctar", 22, Rarity.RARE, mage.cards.w.WoollyThoctar.class)); + // 2009 - https://scryfall.com/sets/pwp09 + cards.add(new SetCardInfo("Hellspark Elemental", 25, Rarity.RARE, mage.cards.h.HellsparkElemental.class)); + cards.add(new SetCardInfo("Kor Duelist", 32, Rarity.RARE, mage.cards.k.KorDuelist.class)); + cards.add(new SetCardInfo("Marisi's Twinclaws", 26, Rarity.RARE, mage.cards.m.MarisisTwinclaws.class)); + cards.add(new SetCardInfo("Mind Control", 30, Rarity.RARE, mage.cards.m.MindControl.class)); + cards.add(new SetCardInfo("Path to Exile", 24, Rarity.RARE, mage.cards.p.PathToExile.class)); + cards.add(new SetCardInfo("Rise from the Grave", 31, Rarity.RARE, mage.cards.r.RiseFromTheGrave.class)); + cards.add(new SetCardInfo("Slave of Bolas", 27, Rarity.RARE, mage.cards.s.SlaveOfBolas.class)); + cards.add(new SetCardInfo("Vampire Nighthawk", 33, Rarity.RARE, mage.cards.v.VampireNighthawk.class)); + // 2010 - https://scryfall.com/sets/pwp10 + cards.add(new SetCardInfo("Curse of Wizardry", 47, Rarity.RARE, mage.cards.c.CurseOfWizardry.class)); + cards.add(new SetCardInfo("Fling", 50, Rarity.RARE, mage.cards.f.Fling.class)); + cards.add(new SetCardInfo("Golem's Heart", 60, Rarity.RARE, mage.cards.g.GolemsHeart.class)); + cards.add(new SetCardInfo("Kor Firewalker", 36, Rarity.RARE, mage.cards.k.KorFirewalker.class)); + cards.add(new SetCardInfo("Leatherback Baloth", 37, Rarity.RARE, mage.cards.l.LeatherbackBaloth.class)); + cards.add(new SetCardInfo("Pathrazer of Ulamog", 46, Rarity.RARE, mage.cards.p.PathrazerOfUlamog.class)); + cards.add(new SetCardInfo("Plague Stinger", 59, Rarity.RARE, mage.cards.p.PlagueStinger.class)); + cards.add(new SetCardInfo("Skinrender", 63, Rarity.RARE, mage.cards.s.Skinrender.class)); + cards.add(new SetCardInfo("Sylvan Ranger", 51, Rarity.RARE, mage.cards.s.SylvanRanger.class)); + cards.add(new SetCardInfo("Syphon Mind", 40, Rarity.RARE, mage.cards.s.SyphonMind.class)); + // 2011 - https://scryfall.com/sets/pwp11 + cards.add(new SetCardInfo("Auramancer", 77, Rarity.RARE, mage.cards.a.Auramancer.class)); + cards.add(new SetCardInfo("Bloodcrazed Neonate", 83, Rarity.RARE, mage.cards.b.BloodcrazedNeonate.class)); + cards.add(new SetCardInfo("Boneyard Wurm", 84, Rarity.RARE, mage.cards.b.BoneyardWurm.class)); + cards.add(new SetCardInfo("Circle of Flame", 78, Rarity.RARE, mage.cards.c.CircleOfFlame.class)); + cards.add(new SetCardInfo("Curse of the Bloody Tome", 80, Rarity.RARE, mage.cards.c.CurseOfTheBloodyTome.class)); + cards.add(new SetCardInfo("Fling", 69, Rarity.RARE, mage.cards.f.Fling.class)); + cards.add(new SetCardInfo("Master's Call", 64, Rarity.RARE, mage.cards.m.MastersCall.class)); + cards.add(new SetCardInfo("Maul Splicer", 72, Rarity.RARE, mage.cards.m.MaulSplicer.class)); + cards.add(new SetCardInfo("Plague Myr", 65, Rarity.RARE, mage.cards.p.PlagueMyr.class)); + cards.add(new SetCardInfo("Shrine of Burning Rage", 73, Rarity.RARE, mage.cards.s.ShrineOfBurningRage.class)); + cards.add(new SetCardInfo("Signal Pest", 66, Rarity.RARE, mage.cards.s.SignalPest.class)); + cards.add(new SetCardInfo("Sylvan Ranger", 70, Rarity.RARE, mage.cards.s.SylvanRanger.class)); + cards.add(new SetCardInfo("Tormented Soul", 76, Rarity.RARE, mage.cards.t.TormentedSoul.class)); + cards.add(new SetCardInfo("Vault Skirge", 71, Rarity.RARE, mage.cards.v.VaultSkirge.class)); + // 2012 - https://scryfall.com/sets/pwp12 + cards.add(new SetCardInfo("Curse of Thirst", 81, Rarity.RARE, mage.cards.c.CurseOfThirst.class)); + cards.add(new SetCardInfo("Gather the Townsfolk", 79, Rarity.RARE, mage.cards.g.GatherTheTownsfolk.class)); + cards.add(new SetCardInfo("Nearheath Stalker", 82, Rarity.RARE, mage.cards.n.NearheathStalker.class)); + } +} \ No newline at end of file diff --git a/Mage.Sets/src/mage/sets/WPNGateway.java b/Mage.Sets/src/mage/sets/WPNGateway.java deleted file mode 100644 index ea7ec76c723..00000000000 --- a/Mage.Sets/src/mage/sets/WPNGateway.java +++ /dev/null @@ -1,93 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package mage.sets; - -import mage.cards.ExpansionSet; -import mage.cards.i.IcatianJavelineers; -import mage.constants.Rarity; -import mage.constants.SetType; - -/** - * - * @author fireshoes - */ -public final class WPNGateway extends ExpansionSet { - - private static final WPNGateway instance = new WPNGateway(); - - public static WPNGateway getInstance() { - return instance; - } - - private WPNGateway() { - super("WPN Gateway", "GRC", ExpansionSet.buildDate(2011, 6, 17), SetType.PROMOTIONAL); - this.hasBoosters = false; - this.hasBasicLands = false; - cards.add(new SetCardInfo("Auramancer", 77, Rarity.SPECIAL, mage.cards.a.Auramancer.class)); - cards.add(new SetCardInfo("Bloodcrazed Neonate", 83, Rarity.SPECIAL, mage.cards.b.BloodcrazedNeonate.class)); - cards.add(new SetCardInfo("Boggart Ram-Gang", 17, Rarity.SPECIAL, mage.cards.b.BoggartRamGang.class)); - cards.add(new SetCardInfo("Boneyard Wurm", 84, Rarity.SPECIAL, mage.cards.b.BoneyardWurm.class)); - cards.add(new SetCardInfo("Boomerang", 4, Rarity.SPECIAL, mage.cards.b.Boomerang.class)); - cards.add(new SetCardInfo("Calciderm", 5, Rarity.SPECIAL, mage.cards.c.Calciderm.class)); - cards.add(new SetCardInfo("Cenn's Tactician", 14, Rarity.SPECIAL, mage.cards.c.CennsTactician.class)); - cards.add(new SetCardInfo("Circle of Flame", 78, Rarity.SPECIAL, mage.cards.c.CircleOfFlame.class)); - cards.add(new SetCardInfo("Curse of the Bloody Tome", 80, Rarity.SPECIAL, mage.cards.c.CurseOfTheBloodyTome.class)); - cards.add(new SetCardInfo("Curse of Thirst", 81, Rarity.SPECIAL, mage.cards.c.CurseOfThirst.class)); - cards.add(new SetCardInfo("Curse of Wizardry", 47, Rarity.SPECIAL, mage.cards.c.CurseOfWizardry.class)); - cards.add(new SetCardInfo("Dauntless Dourbark", 12, Rarity.SPECIAL, mage.cards.d.DauntlessDourbark.class)); - cards.add(new SetCardInfo("Deathless Angel", 49, Rarity.SPECIAL, mage.cards.d.DeathlessAngel.class)); - cards.add(new SetCardInfo("Duergar Hedge-Mage", 19, Rarity.SPECIAL, mage.cards.d.DuergarHedgeMage.class)); - cards.add(new SetCardInfo("Emeria Angel", 35, Rarity.SPECIAL, mage.cards.e.EmeriaAngel.class)); - cards.add(new SetCardInfo("Fiery Temper", 3, Rarity.SPECIAL, mage.cards.f.FieryTemper.class)); - cards.add(new SetCardInfo("Fling", 69, Rarity.SPECIAL, mage.cards.f.Fling.class)); - cards.add(new SetCardInfo("Gather the Townsfolk", 79, Rarity.SPECIAL, mage.cards.g.GatherTheTownsfolk.class)); - cards.add(new SetCardInfo("Golem's Heart", 60, Rarity.SPECIAL, mage.cards.g.GolemsHeart.class)); - cards.add(new SetCardInfo("Gravedigger", 16, Rarity.SPECIAL, mage.cards.g.Gravedigger.class)); - cards.add(new SetCardInfo("Hada Freeblade", 38, Rarity.SPECIAL, mage.cards.h.HadaFreeblade.class)); - cards.add(new SetCardInfo("Hellspark Elemental", 25, Rarity.SPECIAL, mage.cards.h.HellsparkElemental.class)); - cards.add(new SetCardInfo("Icatian Javelineers", 2, Rarity.SPECIAL, IcatianJavelineers.class)); - cards.add(new SetCardInfo("Kalastria Highborn", 39, Rarity.SPECIAL, mage.cards.k.KalastriaHighborn.class)); - cards.add(new SetCardInfo("Kor Duelist", 32, Rarity.SPECIAL, mage.cards.k.KorDuelist.class)); - cards.add(new SetCardInfo("Kor Firewalker", 36, Rarity.SPECIAL, mage.cards.k.KorFirewalker.class)); - cards.add(new SetCardInfo("Lava Axe", 13, Rarity.SPECIAL, mage.cards.l.LavaAxe.class)); - cards.add(new SetCardInfo("Leatherback Baloth", 37, Rarity.SPECIAL, mage.cards.l.LeatherbackBaloth.class)); - cards.add(new SetCardInfo("Llanowar Elves", 9, Rarity.SPECIAL, mage.cards.l.LlanowarElves.class)); - cards.add(new SetCardInfo("Marisi's Twinclaws", 26, Rarity.SPECIAL, mage.cards.m.MarisisTwinclaws.class)); - cards.add(new SetCardInfo("Master's Call", 64, Rarity.SPECIAL, mage.cards.m.MastersCall.class)); - cards.add(new SetCardInfo("Maul Splicer", 72, Rarity.SPECIAL, mage.cards.m.MaulSplicer.class)); - cards.add(new SetCardInfo("Mind Control", 30, Rarity.SPECIAL, mage.cards.m.MindControl.class)); - cards.add(new SetCardInfo("Mind Stone", 11, Rarity.SPECIAL, mage.cards.m.MindStone.class)); - cards.add(new SetCardInfo("Mogg Fanatic", 10, Rarity.SPECIAL, mage.cards.m.MoggFanatic.class)); - cards.add(new SetCardInfo("Mycoid Shepherd", 28, Rarity.SPECIAL, mage.cards.m.MycoidShepherd.class)); - cards.add(new SetCardInfo("Naya Sojourners", 29, Rarity.SPECIAL, mage.cards.n.NayaSojourners.class)); - cards.add(new SetCardInfo("Nearheath Stalker", 82, Rarity.SPECIAL, mage.cards.n.NearheathStalker.class)); - cards.add(new SetCardInfo("Nissa's Chosen", 34, Rarity.SPECIAL, mage.cards.n.NissasChosen.class)); - cards.add(new SetCardInfo("Oona's Blackguard", 15, Rarity.SPECIAL, mage.cards.o.OonasBlackguard.class)); - cards.add(new SetCardInfo("Pathrazer of Ulamog", 46, Rarity.SPECIAL, mage.cards.p.PathrazerOfUlamog.class)); - cards.add(new SetCardInfo("Path to Exile", 24, Rarity.SPECIAL, mage.cards.p.PathToExile.class)); - cards.add(new SetCardInfo("Plague Myr", 65, Rarity.SPECIAL, mage.cards.p.PlagueMyr.class)); - cards.add(new SetCardInfo("Plague Stinger", 59, Rarity.SPECIAL, mage.cards.p.PlagueStinger.class)); - cards.add(new SetCardInfo("Reckless Wurm", 6, Rarity.SPECIAL, mage.cards.r.RecklessWurm.class)); - cards.add(new SetCardInfo("Rise from the Grave", 31, Rarity.SPECIAL, mage.cards.r.RiseFromTheGrave.class)); - cards.add(new SetCardInfo("Selkie Hedge-Mage", 20, Rarity.SPECIAL, mage.cards.s.SelkieHedgeMage.class)); - cards.add(new SetCardInfo("Shrine of Burning Rage", 73, Rarity.SPECIAL, mage.cards.s.ShrineOfBurningRage.class)); - cards.add(new SetCardInfo("Signal Pest", 66, Rarity.SPECIAL, mage.cards.s.SignalPest.class)); - cards.add(new SetCardInfo("Skinrender", 63, Rarity.SPECIAL, mage.cards.s.Skinrender.class)); - cards.add(new SetCardInfo("Slave of Bolas", 27, Rarity.SPECIAL, mage.cards.s.SlaveOfBolas.class)); - cards.add(new SetCardInfo("Sprouting Thrinax", 21, Rarity.SPECIAL, mage.cards.s.SproutingThrinax.class)); - cards.add(new SetCardInfo("Staggershock", 48, Rarity.SPECIAL, mage.cards.s.Staggershock.class)); - cards.add(new SetCardInfo("Sylvan Ranger", 70, Rarity.SPECIAL, mage.cards.s.SylvanRanger.class)); - cards.add(new SetCardInfo("Syphon Mind", 40, Rarity.SPECIAL, mage.cards.s.SyphonMind.class)); - cards.add(new SetCardInfo("Tormented Soul", 76, Rarity.SPECIAL, mage.cards.t.TormentedSoul.class)); - cards.add(new SetCardInfo("Vampire Nighthawk", 33, Rarity.SPECIAL, mage.cards.v.VampireNighthawk.class)); - cards.add(new SetCardInfo("Vault Skirge", 71, Rarity.SPECIAL, mage.cards.v.VaultSkirge.class)); - cards.add(new SetCardInfo("Wilt-Leaf Cavaliers", 18, Rarity.SPECIAL, mage.cards.w.WiltLeafCavaliers.class)); - cards.add(new SetCardInfo("Wood Elves", 1, Rarity.SPECIAL, mage.cards.w.WoodElves.class)); - cards.add(new SetCardInfo("Woolly Thoctar", 22, Rarity.SPECIAL, mage.cards.w.WoollyThoctar.class)); - cards.add(new SetCardInfo("Yixlid Jailer", 7, Rarity.SPECIAL, mage.cards.y.YixlidJailer.class)); - cards.add(new SetCardInfo("Zoetic Cavern", 8, Rarity.SPECIAL, mage.cards.z.ZoeticCavern.class)); - } -} diff --git a/Mage.Verify/src/main/java/mage/verify/MtgJson.java b/Mage.Verify/src/main/java/mage/verify/MtgJson.java index 287aecef3dd..1919f8db0f8 100644 --- a/Mage.Verify/src/main/java/mage/verify/MtgJson.java +++ b/Mage.Verify/src/main/java/mage/verify/MtgJson.java @@ -27,7 +27,8 @@ public final class MtgJson { mtgJsonToXMageCodes.put("pPRE", "PTC"); mtgJsonToXMageCodes.put("pMPR", "MPRP"); mtgJsonToXMageCodes.put("pMEI", "MBP"); - mtgJsonToXMageCodes.put("pGTW", "GRC"); // pGTW - Gateway = GRC - WPN Gateway ??? + mtgJsonToXMageCodes.put("pGTW", "GRC"); // pGTW - Gateway = GRC (WPN + Gateway in one inner set) + mtgJsonToXMageCodes.put("pWPN", "GRC"); // pWPN - Wizards Play Network = GRC (WPN + Gateway in one inner set) mtgJsonToXMageCodes.put("pGRU", "GUR"); mtgJsonToXMageCodes.put("pGPX", "GPX"); mtgJsonToXMageCodes.put("pFNM", "FNMP"); @@ -41,18 +42,22 @@ public final class MtgJson { mtgJsonToXMageCodes.put("DD3_DVD", "DDC"); mtgJsonToXMageCodes.put("NMS", "NEM"); mtgJsonToXMageCodes.put("MPS_AKH", "MPS-AKH"); + mtgJsonToXMageCodes.put("FRF_UGIN", "UGIN"); + mtgJsonToXMageCodes.put("pCMP", "CP"); // revert search - for(Map.Entry entry: mtgJsonToXMageCodes.entrySet()){ + for (Map.Entry entry : mtgJsonToXMageCodes.entrySet()) { xMageToMtgJsonCodes.put(entry.getValue(), entry.getKey()); } } - private MtgJson() {} + private MtgJson() { + } private static final class CardHolder { private static final Map cards; + static { try { cards = loadAllCards(); @@ -65,6 +70,7 @@ public final class MtgJson { private static final class SetHolder { private static final Map sets; + static { try { sets = loadAllSets(); @@ -75,11 +81,13 @@ public final class MtgJson { } private static Map loadAllCards() throws IOException { - return readFromZip("AllCards.json.zip", new TypeReference>() {}); + return readFromZip("AllCards.json.zip", new TypeReference>() { + }); } private static Map loadAllSets() throws IOException { - return readFromZip("AllSets.json.zip", new TypeReference>() {}); + return readFromZip("AllSets.json.zip", new TypeReference>() { + }); } private static T readFromZip(String filename, TypeReference ref) throws IOException { diff --git a/Utils/known-sets.txt b/Utils/known-sets.txt index ad1a34fa350..8930efa5479 100644 --- a/Utils/known-sets.txt +++ b/Utils/known-sets.txt @@ -200,6 +200,6 @@ Welcome Deck 2016|WelcomeDeck2016| Welcome Deck 2017|WelcomeDeck2017| World Magic Cup Qualifier|WorldMagicCupQualifier| Worldwake|Worldwake| -WPN Gateway|WPNGateway| +WPN Gateway|WPNAndGatewayPromos| Zendikar|Zendikar| Zendikar Expeditions|ZendikarExpeditions| \ No newline at end of file