* Added missing images for WPN and Gateway Promos (GRC) set in scryfall source;

This commit is contained in:
Oleg Agafonov 2018-10-03 20:32:58 +04:00
parent ac8540216f
commit 69546c82ce
5 changed files with 190 additions and 102 deletions

View file

@ -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");

View file

@ -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));
}
}

View file

@ -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));
}
}

View file

@ -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<String, String> entry: mtgJsonToXMageCodes.entrySet()){
for (Map.Entry<String, String> entry : mtgJsonToXMageCodes.entrySet()) {
xMageToMtgJsonCodes.put(entry.getValue(), entry.getKey());
}
}
private MtgJson() {}
private MtgJson() {
}
private static final class CardHolder {
private static final Map<String, JsonCard> cards;
static {
try {
cards = loadAllCards();
@ -65,6 +70,7 @@ public final class MtgJson {
private static final class SetHolder {
private static final Map<String, JsonSet> sets;
static {
try {
sets = loadAllSets();
@ -75,11 +81,13 @@ public final class MtgJson {
}
private static Map<String, JsonCard> loadAllCards() throws IOException {
return readFromZip("AllCards.json.zip", new TypeReference<Map<String, JsonCard>>() {});
return readFromZip("AllCards.json.zip", new TypeReference<Map<String, JsonCard>>() {
});
}
private static Map<String, JsonSet> loadAllSets() throws IOException {
return readFromZip("AllSets.json.zip", new TypeReference<Map<String, JsonSet>>() {});
return readFromZip("AllSets.json.zip", new TypeReference<Map<String, JsonSet>>() {
});
}
private static <T> T readFromZip(String filename, TypeReference<T> ref) throws IOException {

View file

@ -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|