diff --git a/.gitattributes b/.gitattributes index bb73b93041f..caf38a53e32 100644 --- a/.gitattributes +++ b/.gitattributes @@ -9,7 +9,6 @@ /CHANGES.txt svneol=native#text/plain /LICENSE.txt svneol=native#text/plain /README.txt svneol=native#text/plain -/forge.properties svneol=native#text/plain /pom.xml svneol=native#text/xml res/AllTokens.txt svneol=native#text/plain res/PerSetTracking.py svneol=native#text/x-python @@ -21,7 +20,6 @@ res/blockdata/fatpacks.txt -text res/blockdata/formats.txt -text res/blockdata/setdata.txt svneol=native#text/plain res/blockdata/starters.txt -text -res/booster-decks -text res/cardTemplateScript.py -text svneol=unset#text/x-python res/cardsfolder/a/a_display_of_my_dark_power.txt -text res/cardsfolder/a/abandon_hope.txt -text @@ -12418,49 +12416,18 @@ res/cardsfolder/z/zur_the_enchanter.txt svneol=native#text/plain res/cardsfolder/z/zuran_enchanter.txt svneol=native#text/plain res/cardsfolder/z/zuran_orb.txt svneol=native#text/plain res/cardsfolder/z/zuran_spellcaster.txt svneol=native#text/plain -res/decks/SkieraCube-cards_not_supported_yet.txt -text -res/decks/cube/ArabianExtended.dck -text -res/decks/cube/GtcGuildBoros.dck -text -res/decks/cube/GtcGuildDimir.dck -text -res/decks/cube/GtcGuildGruul.dck -text -res/decks/cube/GtcGuildOrzhov.dck -text -res/decks/cube/GtcGuildSimic.dck -text -res/decks/cube/GtcPromoBoros.dck -text -res/decks/cube/GtcPromoDimir.dck -text -res/decks/cube/GtcPromoGruul.dck -text -res/decks/cube/GtcPromoOrzhov.dck -text -res/decks/cube/GtcPromoSimic.dck -text -res/decks/cube/JuzamjediCube.dck -text -res/decks/cube/RtRGuildAzorius.dck -text -res/decks/cube/RtRGuildGolgari.dck -text -res/decks/cube/RtRGuildIzzet.dck -text -res/decks/cube/RtRGuildRakdos.dck -text -res/decks/cube/RtRGuildSelesnya.dck -text -res/decks/cube/RtRPromoAzorius.dck -text -res/decks/cube/RtRPromoGolgari.dck -text -res/decks/cube/RtRPromoIzzet.dck -text -res/decks/cube/RtRPromoRakdos.dck -text -res/decks/cube/RtRPromoSelesnya.dck -text -res/decks/cube/SkieraCube.dck -text -res/draft/common.txt svneol=native#text/plain +res/defaults/editor.preferences svneol=native#text/xml +res/defaults/editor.xml svneol=native#text/xml +res/defaults/gauntlet/LOCKED_DotP[!!-~]Preconstructed.dat -text +res/defaults/gauntlet/LOCKED_Swimming[!!-~]With[!!-~]Sharks.dat -text +res/defaults/home.xml svneol=native#text/xml +res/defaults/match.xml svneol=native#text/xml res/draft/cube_juzamjedi.draft -text res/draft/cube_skiera.draft -text -res/draft/draft.properties svneol=native#text/plain res/draft/rankings.txt -text -res/draft/rare.txt svneol=native#text/plain -res/draft/uncommon.txt svneol=native#text/plain res/gamedata/NonStackingKWList.txt svneol=native#text/plain res/gamedata/TypeLists.txt svneol=native#text/plain -res/gauntlet/LOCKED_DotP[!!-~]Preconstructed.dat -text -res/gauntlet/LOCKED_Swimming[!!-~]With[!!-~]Sharks.dat -text -res/lang/de.properties svneol=native#text/plain -res/lang/en.properties svneol=native#text/plain -res/lang/howTo/de.properties svneol=native#text/plain -res/lang/howTo/en.properties svneol=native#text/plain -res/lang/lang.properties svneol=native#text/plain -res/layouts/editor_default.xml svneol=native#text/xml -res/layouts/home_default.xml svneol=native#text/xml -res/layouts/match_default.xml svneol=native#text/xml +res/howto.txt svneol=native#text/plain res/licenses/java-yield-license.txt svneol=native#text/plain res/licenses/log4j-license.txt svneol=native#text/plain res/licenses/multiline-label-license.txt svneol=native#text/plain @@ -12469,34 +12436,6 @@ res/licenses/xstream-license.txt svneol=native#text/plain res/mtg-data.txt svneol=native#text/plain res/mtgdata-sets-to-forge.txt -text res/oracleScript.py -text svneol=unset#text/x-python -res/pics_link/card-pictures_a.txt svneol=native#text/plain -res/pics_link/card-pictures_b.txt svneol=native#text/plain -res/pics_link/card-pictures_c.txt svneol=native#text/plain -res/pics_link/card-pictures_d.txt svneol=native#text/plain -res/pics_link/card-pictures_e.txt svneol=native#text/plain -res/pics_link/card-pictures_f.txt svneol=native#text/plain -res/pics_link/card-pictures_g.txt svneol=native#text/plain -res/pics_link/card-pictures_h.txt svneol=native#text/plain -res/pics_link/card-pictures_i.txt svneol=native#text/plain -res/pics_link/card-pictures_j.txt svneol=native#text/plain -res/pics_link/card-pictures_k.txt svneol=native#text/plain -res/pics_link/card-pictures_l.txt svneol=native#text/plain -res/pics_link/card-pictures_m.txt svneol=native#text/plain -res/pics_link/card-pictures_n.txt svneol=native#text/plain -res/pics_link/card-pictures_o.txt svneol=native#text/plain -res/pics_link/card-pictures_other.txt svneol=native#text/plain -res/pics_link/card-pictures_p.txt svneol=native#text/plain -res/pics_link/card-pictures_q.txt svneol=native#text/plain -res/pics_link/card-pictures_r.txt svneol=native#text/plain -res/pics_link/card-pictures_s.txt svneol=native#text/plain -res/pics_link/card-pictures_t.txt svneol=native#text/plain -res/pics_link/card-pictures_token.txt svneol=native#text/plain -res/pics_link/card-pictures_u.txt svneol=native#text/plain -res/pics_link/card-pictures_v.txt svneol=native#text/plain -res/pics_link/card-pictures_w.txt svneol=native#text/plain -res/pics_link/card-pictures_x.txt svneol=native#text/plain -res/pics_link/card-pictures_y.txt svneol=native#text/plain -res/pics_link/card-pictures_z.txt svneol=native#text/plain res/pics_product/booster/10E.png -text res/pics_product/booster/5DN.png -text res/pics_product/booster/7E.png -text @@ -12781,10 +12720,6 @@ res/pics_product/tournamentpacks/SHM.jpg -text res/pics_product/tournamentpacks/TMP.jpg -text res/pics_product/tournamentpacks/TSP.jpg -text res/pics_product/tournamentpacks/USG.jpg -text -res/preferences/.project -text -res/preferences/editor.default.preferences svneol=native#text/xml -res/preferences/main.properties -text -res/product-images.txt -text res/quest/all-prices.txt svneol=native#text/plain res/quest/bazaar/ape_pet_l1.txt -text res/quest/bazaar/ape_pet_l2.txt -text @@ -13358,11 +13293,9 @@ res/quest/precons/Wicked[!!-~]Big.dck -text res/quest/precons/Wild[!!-~]Rush.dck -text res/quest/precons/World[!!-~]Aflame.dck -text res/quest/precons/Zombies[!!-~]Unleashed.dck -text -res/quest/price.txt svneol=native#text/plain res/quest/quest-opponent-icons.txt -text res/quest/quest-pet-shop-icons.txt -text res/quest/quest-pet-token-images.txt -text -res/quest/quest.properties svneol=native#text/plain res/quest/themes/-1[!!-~]-1[!!-~]Counters[!!-~]BG.thm -text res/quest/themes/Anti[!!-~]Black[!!-~]WB.thm -text res/quest/themes/Anti[!!-~]Black[!!-~]WG.thm -text @@ -14223,7 +14156,6 @@ src/main/java/forge/game/limited/BoosterDraftAI.java svneol=native#text/plain src/main/java/forge/game/limited/CCnt.java svneol=native#text/plain src/main/java/forge/game/limited/CardPoolLimitation.java -text src/main/java/forge/game/limited/CardRankingComparator.java -text -src/main/java/forge/game/limited/CardRatings.java -text src/main/java/forge/game/limited/CustomLimited.java svneol=native#text/plain src/main/java/forge/game/limited/DeckColors.java svneol=native#text/plain src/main/java/forge/game/limited/DraftRankCache.java -text @@ -14278,7 +14210,6 @@ src/main/java/forge/gui/ForgeAction.java svneol=native#text/plain src/main/java/forge/gui/GuiChoose.java -text src/main/java/forge/gui/GuiDialog.java -text src/main/java/forge/gui/GuiDisplayUtil.java svneol=native#text/plain -src/main/java/forge/gui/GuiImportPicture.java svneol=native#text/plain src/main/java/forge/gui/GuiProgressBarWindow.java svneol=native#text/plain src/main/java/forge/gui/GuiUtils.java svneol=native#text/plain src/main/java/forge/gui/InputProxy.java svneol=native#text/plain @@ -14493,7 +14424,6 @@ src/main/java/forge/model/package-info.java svneol=native#text/plain src/main/java/forge/net/package-info.java -text src/main/java/forge/package-info.java svneol=native#text/plain src/main/java/forge/properties/ForgePreferences.java svneol=native#text/plain -src/main/java/forge/properties/ForgeProps.java svneol=native#text/plain src/main/java/forge/properties/NewConstants.java svneol=native#text/plain src/main/java/forge/properties/Preferences.java svneol=native#text/plain src/main/java/forge/properties/SavePreferencesListener.java svneol=native#text/plain @@ -14552,9 +14482,7 @@ src/main/java/forge/util/Aggregates.java -text src/main/java/forge/util/Base64Coder.java svneol=native#text/plain src/main/java/forge/util/BinaryUtil.java -text src/main/java/forge/util/ComparableOp.java -text -src/main/java/forge/util/CopyFiles.java svneol=native#text/plain src/main/java/forge/util/Expressions.java -text -src/main/java/forge/util/FileFinder.java svneol=native#text/plain src/main/java/forge/util/FileSection.java -text src/main/java/forge/util/FileSectionManual.java -text src/main/java/forge/util/FileUtil.java svneol=native#text/plain @@ -14570,7 +14498,6 @@ src/main/java/forge/util/PredicateString.java -text src/main/java/forge/util/ReflectionUtil.java -text src/main/java/forge/util/TextUtil.java -text src/main/java/forge/util/ThreadUtil.java svneol=native#text/plain -src/main/java/forge/util/TreeProperties.java svneol=native#text/plain src/main/java/forge/util/XmlUtil.java -text src/main/java/forge/util/package-info.java -text src/main/java/forge/util/storage/IStorage.java -text diff --git a/.gitignore b/.gitignore index d8d63ae33be..3268b6554e3 100644 --- a/.gitignore +++ b/.gitignore @@ -2,402 +2,15 @@ /*.iml /*.tmp /.metadata -.settings/org.eclipse.core.resources.prefs -/build -/forge.log -/forge.preferences +/forge.profile.properties +/nbactions.xml +/pom.xml.next +/pom.xml.releaseBackup +/pom.xml.tag /release.properties res/PerSetTrackingResults -res/cardsfolder/cardsfolder.zip -res/cardsfolder/test_cards -res/decks/30to1's[!!-~]Mine[!!-~]Combo.dck -res/decks/A[!!-~]Real[!!-~]BoonNoggle[!!-~](Levi[!!-~]Howa).dck -res/decks/AI_o1.dck -res/decks/AJ[!!-~]Sacher's[!!-~]Planeswalker[!!-~]Control.dck -res/decks/Aaron[!!-~]Forsythe's[!!-~]Knights.dck -res/decks/Adam[!!-~]Cai's[!!-~]Green-White[!!-~]Survival.dck -res/decks/Adam[!!-~]Prosak[!!-~]-[!!-~]Turboland.dck -res/decks/Adrian[!!-~]Sullivan's[!!-~]Blastminer[!!-~]Red.dck -res/decks/Alex[!!-~]Muhich's[!!-~]Planeswalkers.dck -res/decks/Alex[!!-~]Shvartsman's[!!-~]5cGreen.dck -res/decks/Alexander[!!-~]Shearer's[!!-~]Kessig[!!-~]Curse[!!-~]Rund.dck -res/decks/Alexander[!!-~]Shearer's[!!-~]Nayamorphic.dck -res/decks/Almerick[!!-~]Li's[!!-~]Mono-red[!!-~]Aggro.dck -res/decks/Andrew[!!-~]Jacobs's[!!-~]Blue-Red-Green[!!-~]Pod.dck -res/decks/Andrew[!!-~]Olson's[!!-~]Doran[!!-~]Control.dck -res/decks/Anthony[!!-~]Gabrielli's[!!-~]Grixis[!!-~]with[!!-~]Rise[!!-~]of[!!-~]the[!!-~]Eldrazi.dck -res/decks/Anthony[!!-~]Patronick[!!-~]-[!!-~]Red[!!-~]Deck[!!-~]Wins.dck -res/decks/Anyone[!!-~]but[!!-~]Stephen[!!-~]Colbert's[!!-~]BEARS!.dck -res/decks/Avantasian's[!!-~]White[!!-~]Weenie.dck -res/decks/BadBeatBret's[!!-~]Esper[!!-~]Beatdown.dck -res/decks/Ben[!!-~]Rubin's[!!-~]Ob[!!-~]Nix[!!-~]Control.dck -res/decks/Ben[!!-~]Stark's[!!-~]Affinity.dck -res/decks/Bernhard[!!-~]Lehner's[!!-~]Standard[!!-~]LD.dck -res/decks/Bill[!!-~]Stark's[!!-~]Open[!!-~]the[!!-~]Vaults.dck -res/decks/Blake[!!-~]Patrow's[!!-~]Counter[!!-~]Slivers.dck -res/decks/Brad[!!-~]Nelson's[!!-~]Boss[!!-~]Naya.dck -res/decks/Brad[!!-~]Nelson's[!!-~]Caw[!!-~]Go.dck -res/decks/Brett[!!-~]Anderson's[!!-~]White[!!-~]Weenie.dck -res/decks/Brian[!!-~]Frye's[!!-~]Koth[!!-~]Red.dck -res/decks/Brian[!!-~]Kibler's[!!-~]Blue-Black[!!-~]Infect.dck -res/decks/Brian[!!-~]Kibler's[!!-~]Caw-Go.dck -res/decks/Brian[!!-~]Kibler's[!!-~]Doran[!!-~]Rock.dck -res/decks/BryTheFryGuy's[!!-~]Pauper[!!-~]Martyr.dck -res/decks/Buuchan's[!!-~]Naya.dck -res/decks/BytorAndTheSnowdog's[!!-~]Tempered[!!-~]Steel.dck -res/decks/Caleb[!!-~]Durward's[!!-~]Delver[!!-~]Red.dck -res/decks/Calosso[!!-~]Fuentes's[!!-~]Blue-Red-Green[!!-~]Counterbalance.dck -res/decks/Cco's[!!-~]Swans.dck -res/decks/Charles[!!-~]Gindy's[!!-~]Boss[!!-~]Naya.dck -res/decks/Charles[!!-~]Gindy's[!!-~]Cruel[!!-~]Control.dck -res/decks/Charles[!!-~]Lancaster's[!!-~]White-Black[!!-~]Pox.dck -res/decks/Charles[!!-~]Morrison's[!!-~]Cannon[!!-~]Control.dck -res/decks/Christopher[!!-~]Murray's[!!-~]Black-White[!!-~]Goodstuff.dck -res/decks/Christopher[!!-~]Schiber's[!!-~]Black-Green[!!-~]Discard.dck -res/decks/Colas[!!-~]Duarte's[!!-~]Goblins.dck -res/decks/Cole[!!-~]Griffith's[!!-~]Bant[!!-~]Control.dck -res/decks/Conley[!!-~]Woods's[!!-~]A[!!-~]River[!!-~]Kelpie[!!-~]Runs[!!-~]Through[!!-~]It.dck -res/decks/Conley[!!-~]Woods's[!!-~]Genesis[!!-~]Wave.dck -res/decks/Coomaster's[!!-~]Death[!!-~]Cloud.dck -res/decks/CoryMac's[!!-~]Esper[!!-~]Control.dck -res/decks/Cpage01's[!!-~]Core[!!-~]Control.dck -res/decks/Craig[!!-~]Jones's[!!-~]Troll-a-Tog.dck -res/decks/Craig[!!-~]Wescoe's[!!-~]Zombies.dck -res/decks/Dan[!!-~]Rodemann's[!!-~]Affinity.dck -res/decks/Daniel[!!-~]Brubaker's[!!-~]Vampires.dck -res/decks/Daniel[!!-~]Signorini's[!!-~]Team[!!-~]America.dck -res/decks/Daniel[!!-~]Villamizar's[!!-~]Time[!!-~]Sieve[!!-~]Combo.dck -res/decks/Dave[!!-~]Humpherys[!!-~]-[!!-~]Free[!!-~]Whaley.dck -res/decks/David[!!-~]Daniel's[!!-~]Meddling[!!-~]Mage[!!-~]Control.dck -res/decks/David[!!-~]Vo's[!!-~]Legacy[!!-~]Elves.dck -res/decks/David[!!-~]Williams's[!!-~]Genesis[!!-~]Wave.dck -res/decks/Dean[!!-~]Kruse's[!!-~]Bloodchief[!!-~]Ascension.dck -res/decks/Derek[!!-~]Mortimer's[!!-~]Erhnam[!!-~]and[!!-~]Burn[!!-~]'Em.dck -res/decks/Derrick[!!-~]Steele's[!!-~]Cascade[!!-~]Control.dck -res/decks/DoctorPenick's[!!-~]Tempest[!!-~]Blue.dck -res/decks/Donnie[!!-~]Noland's[!!-~]Noland[!!-~]Control.dck -res/decks/Douglas[!!-~]Bishop's[!!-~]Tokens.dck -res/decks/Douglas[!!-~]Scheinberg's[!!-~]Goblins.dck -res/decks/DrVendigo's[!!-~]Erayoffinity.dck -res/decks/Dredge[!!-~]-[!!-~]Armin[!!-~]Berner.dck -res/decks/Dunkle_stille's[!!-~]Mono-black[!!-~]Control.dck -res/decks/DustyStorm's[!!-~]Goblins.dck -res/decks/Eaglescout16's[!!-~]Aggro[!!-~]Bant.dck -res/decks/Eduardo[!!-~]Simoa[!!-~]Texeira's[!!-~]Black-Green.dck -res/decks/Elves[!!-~](MBS[!!-~]Prerelease).dck -res/decks/Eric[!!-~]Froehlich's[!!-~]Esper[!!-~]Control.dck -res/decks/Eulaers[!!-~]Wannes[!!-~]Mono-white.dck -res/decks/FedorEmelianenko's[!!-~]Red-White[!!-~]Aggro.dck -res/decks/Filippo[!!-~]Kratter's[!!-~]Faeries.dck -res/decks/Gavin[!!-~]Verhey's[!!-~]Brain[!!-~]Drain.dck -res/decks/Gavin[!!-~]Verhey's[!!-~]Sphinx[!!-~]Control.dck -res/decks/Gerard[!!-~]Fabiano's[!!-~]White-Blue[!!-~]Control[!!-~](NY[!!-~]2010).dck -res/decks/Gerry[!!-~]Thompson's[!!-~]White-Blue-Black[!!-~]Caw-Blade.dck -res/decks/Goliat2's[!!-~]Block[!!-~]Tezzerator.dck -res/decks/Graham[!!-~]Stark's[!!-~]Green-White[!!-~]Infect.dck -res/decks/Grgur[!!-~]Petric[!!-~]Maretic's[!!-~]Faeries.dck -res/decks/Guillaume[!!-~]Wafo-Tapa's[!!-~]Five-Color[!!-~]Control.dck -res/decks/Hankyu's[!!-~]Red-Green-Blue[!!-~]Delver.dck -res/decks/Hannu[!!-~]Vallin's[!!-~]Megrims!.dck -res/decks/ImACloud's[!!-~]ELVES!.dck -res/decks/Ivan[!!-~]Floch[!!-~]-[!!-~]Turbo[!!-~]Land.dck -res/decks/JJonasN's[!!-~]Pauper[!!-~]Elves.dck -res/decks/Jacob[!!-~]Baugh's[!!-~]Elves.dck -res/decks/Jake[!!-~]Lehmkuhl's[!!-~]Soul[!!-~]Sisters.dck -res/decks/Jan[!!-~]franen's[!!-~]Sharuum[!!-~]Control.dck -res/decks/Jasper[!!-~]Johnson-Epstein's[!!-~]Mono[!!-~]Black.dck -res/decks/Jbozek's[!!-~]Green-White[!!-~]Allies.dck -res/decks/Jeff[!!-~]Blyden's[!!-~]Kuldotha[!!-~]Combo.dck -res/decks/Jeremy[!!-~]Neeman's[!!-~]Big[!!-~]Naya.dck -res/decks/Jimdownside's[!!-~]Goblins!.dck -res/decks/Jody[!!-~]Dunnville's[!!-~]Red-White[!!-~]Control.dck -res/decks/Joel[!!-~]Allen's[!!-~]Mono-White[!!-~]Control.dck -res/decks/Johan[!!-~]Sadeghpour's[!!-~]Goblins!.dck -res/decks/John[!!-~]Moore's[!!-~]Vampire[!!-~]Vapors.dck -res/decks/John[!!-~]Wickham's[!!-~]Doran.dck -res/decks/Jonas[!!-~]Wallendorf's[!!-~]Faeries.dck -res/decks/Jonathan[!!-~]Job's[!!-~]Parallel[!!-~]Lives.dck -res/decks/Jonathan[!!-~]Job's[!!-~]Sun[!!-~]Titan[!!-~]Control.dck -res/decks/Jonathan[!!-~]Sukenik's[!!-~]Night[!!-~]Shift.dck -res/decks/Josh[!!-~]Utter-Leyton's[!!-~]Counter[!!-~]Cat.dck -res/decks/Josh[!!-~]Weinundy's[!!-~]Legacy[!!-~]Reanimator.dck -res/decks/Joshua[!!-~]Owens's[!!-~]Bant[!!-~]Control.dck -res/decks/Justin[!!-~]Corbett's[!!-~]Aggro[!!-~]Valakut.dck -res/decks/Justin[!!-~]Corbett's[!!-~]Valakut[!!-~]Ramp.dck -res/decks/Justin[!!-~]Vizaro's[!!-~]Bounce-Delver.dck -res/decks/Justin[!!-~]Vizaro's[!!-~]White-Blue[!!-~]Aggro.dck -res/decks/Kai[!!-~]Budde's[!!-~]Hall[!!-~]of[!!-~]Fame[!!-~]Jund.dck -res/decks/KaijiItou's[!!-~]Blue-Black[!!-~]Block[!!-~]Control.dck -res/decks/Kalebas's[!!-~]Naya[!!-~]Aggro.dck -res/decks/Kellen[!!-~]Abel's[!!-~]Cruel[!!-~]Control.dck -res/decks/Ken[!!-~]Adams's[!!-~]Hawkward.dck -res/decks/Ken[!!-~]Adams's[!!-~]Red-Black[!!-~]Bloodhall.dck -res/decks/Ken[!!-~]Nagle's[!!-~]Blue-Red[!!-~]Proliferate.dck -res/decks/Kevin's[!!-~]Monoblack.dck -res/decks/Kine[!!-~]Thorvaldsen's[!!-~]Mono-Green[!!-~]Poison.dck -res/decks/Kiora[!!-~]Atua's[!!-~]Ancient[!!-~]Depths.dck -res/decks/Konrad[!!-~]Sokolowski's[!!-~]Oracle.dck -res/decks/Kyle[!!-~]Boddy's[!!-~]Boddy[!!-~]Horizons.dck -res/decks/Kyle[!!-~]Boddy's[!!-~]Red[!!-~]Deck[!!-~]Wins.dck -res/decks/Kyle[!!-~]Sanchez's[!!-~]Get[!!-~]Ahead[!!-~]in[!!-~]Life.dck -res/decks/L1X0's[!!-~]Junk[!!-~]Control.dck -res/decks/Lee[!!-~]Sharpe's[!!-~]Kuldotha[!!-~]Red.dck -res/decks/Lennyo's[!!-~]Green-Blue-Black[!!-~]Control.dck -res/decks/Lichfzd's[!!-~]White-Blue[!!-~]Control.dck -res/decks/Lobster411's[!!-~]Pauper[!!-~]Combo.dck -res/decks/Lu[!!-~]Chao's[!!-~]Boros[!!-~]Landfall.dck -res/decks/Luis[!!-~]Scott-Vargas's[!!-~]Modern[!!-~]Elves.dck -res/decks/Luolb000's[!!-~]ZEN[!!-~]Block[!!-~]Control.dck -res/decks/MantafahrerXY's[!!-~]Smallpox.dck -res/decks/Marc[!!-~]Garcia[!!-~]Freixa's[!!-~]Blue-Black[!!-~]Infect.dck -res/decks/Mark[!!-~]Miller's[!!-~]The[!!-~]Wave.dck -res/decks/MarthaJones's[!!-~]Red-White[!!-~]Control.dck -res/decks/Matej[!!-~]Zatlkaj's[!!-~]Junk.dck -res/decks/Matt[!!-~]Nass's[!!-~]Elves!.dck -res/decks/Matt[!!-~]Rader's[!!-~]Turbo[!!-~]'Flare.dck -res/decks/Matt[!!-~]Severa's[!!-~]Mono-Green.dck -res/decks/Matthew[!!-~]Cerino's[!!-~]Bant[!!-~]Control.dck -res/decks/Matthew[!!-~]Macmullin's[!!-~]New[!!-~]Jund.dck -res/decks/Micah[!!-~]Rabin's[!!-~]RGW[!!-~]Zoo.dck -res/decks/Michael[!!-~]Pozsgay's[!!-~]Imperial[!!-~]Painter.dck -res/decks/Michael[!!-~]Rooks's[!!-~]Furnace[!!-~]Celebration.dck -res/decks/Michael[!!-~]Rooks's[!!-~]Red-Black[!!-~]Metalcraft.dck -res/decks/Mike[!!-~]Huttman's[!!-~]Halloweenies.dck -res/decks/Mike[!!-~]Magby's[!!-~]Bant[!!-~]Aggro.dck -res/decks/Mike[!!-~]Turian's[!!-~]ROE[!!-~]White[!!-~]Weenie.dck -res/decks/Misha[!!-~]Gurevich's[!!-~]Cunning[!!-~]Naya.dck -res/decks/Modern[!!-~]Affinity.dck -res/decks/Monkeywrenched85's[!!-~]Pauper[!!-~]Aggro.dck -res/decks/Mons[!!-~]Johnson's[!!-~]Blue-Red-Green[!!-~]Werewolves.dck -res/decks/Mons[!!-~]Johnson's[!!-~]Fauna[!!-~]Shaman.dck -res/decks/Naoki[!!-~]Nakada's[!!-~]Bant[!!-~]Conscription.dck -res/decks/Nathaniel[!!-~]Muesing's[!!-~]Elves!.dck -res/decks/Nemesisjoe's[!!-~]Modern[!!-~]Zoo.dck -res/decks/Nicholas[!!-~]Sabin's[!!-~]Polymorph.dck -res/decks/Nick[!!-~]Montaquila's[!!-~]Goblins.dck -res/decks/Nicola[!!-~]Landoni's[!!-~]Survival[!!-~]Bant.dck -res/decks/Nukesaku's[!!-~]Block[!!-~]Five-Color[!!-~]Control.dck -res/decks/Numdiar's[!!-~]Pester[!!-~]Twin.dck -res/decks/Nunca's[!!-~]Tempered[!!-~]Steel.dck -res/decks/Octop's[!!-~]Black-Red[!!-~]Heartless[!!-~]Summoning.dck -res/decks/Orie[!!-~]Guo's[!!-~]Doran.dck -res/decks/Owen[!!-~]Turtenwald's[!!-~]Time[!!-~]Vault.dck -res/decks/Pascal[!!-~]Maynard's[!!-~]Steel[!!-~]Artifact.dck -res/decks/Pat[!!-~]Cox's[!!-~]Blue-Red-Green[!!-~](RUG).dck -res/decks/Pat[!!-~]McGregor's[!!-~]Aggro[!!-~]Loam.dck -res/decks/Pat[!!-~]McGregor's[!!-~]Boros.dck -res/decks/Patrick[!!-~]Chapin's[!!-~]Machine[!!-~]Red.dck -res/decks/Patrick[!!-~]Chapin's[!!-~]White-Blue[!!-~]Control.dck -res/decks/Patrick[!!-~]Cox's[!!-~]Worldwake[!!-~]Zoo.dck -res/decks/Paul[!!-~]Rietzl's[!!-~]Robots.dck -res/decks/Pedestrian's[!!-~]Elves.dck -res/decks/Peruzo's[!!-~]Blue-black[!!-~]Teachings.dck -res/decks/Petkos's[!!-~]Pauper[!!-~]Slivers.dck -res/decks/Podlos[!!-~]-[!!-~]Quick[!!-~]and[!!-~]Toast.dck -res/decks/Poison[!!-~](Ken[!!-~]Nagle).dck -res/decks/Qj_wong's[!!-~]Red-White[!!-~]Aggro.dck -res/decks/RagaMufin's[!!-~]Open[!!-~]the[!!-~]Vaults.dck -res/decks/Raphael[!!-~]Levy's[!!-~]Frites.dck -res/decks/Red-Green[!!-~]Goblins[!!-~](Mons[!!-~]Johnson).dck -res/decks/Reiderrabbit's[!!-~]Bant.dck -res/decks/Remotepoet's[!!-~]White-Blue[!!-~]Beatdown.dck -res/decks/Ricky[!!-~]Wen's[!!-~]White-Black[!!-~]Dead[!!-~]Guy[!!-~]Ale.dck -res/decks/Rille3's[!!-~]Blue-White[!!-~]Control.dck -res/decks/Rob[!!-~]Dougherty's[!!-~]Black-White[!!-~]Tokens.dck -res/decks/Robert[!!-~]Moody's[!!-~]Black-Red[!!-~]Vampires.dck -res/decks/Robert[!!-~]Smith's[!!-~]Green-White[!!-~]Township[!!-~]Tokens.dck -res/decks/Roger[!!-~]Samson's[!!-~]Mono-Green.dck -res/decks/Ruski_Layki's[!!-~]White-Blue[!!-~]Control.dck -res/decks/Ryan[!!-~]Reynolds's[!!-~]Runeflare[!!-~]Combo.dck -res/decks/Ryland[!!-~]Foster's[!!-~]Mono-Blue[!!-~]Prison.dck -res/decks/Ryuma[!!-~]Narumiya's[!!-~]Japanese[!!-~]Green.dck -res/decks/Sam[!!-~]Roukas's[!!-~]Sneak[!!-~]Attack.dck -res/decks/Sarcasto's[!!-~]Pauper[!!-~]Affinity.dck -res/decks/Scott[!!-~]Alshansi's[!!-~]Abyssal[!!-~]Black-Red.dck -res/decks/Shirai[!!-~]Taiga's[!!-~]Nayallies.dck -res/decks/Shouta[!!-~]Yasooka's[!!-~]Faeries.dck -res/decks/Shouta[!!-~]Yasooka's[!!-~]Four-Color[!!-~]Vial.dck -res/decks/Skizzik_cn's[!!-~]Titan[!!-~]Ramp.dck -res/decks/Skyler[!!-~]Stewart's[!!-~]Big[!!-~]White.dck -res/decks/Sneakattackkid's[!!-~]SquirrelCraft.dck -res/decks/Snowwind's[!!-~]White[!!-~]Weenie.dck -res/decks/SorryMsJackson's[!!-~]Solar[!!-~]Flare.dck -res/decks/Superchibi's[!!-~]Living[!!-~]End.dck -res/decks/Takagi[!!-~]Yui's[!!-~]Rite[!!-~]of[!!-~]Replication.dck -res/decks/Tallandskinnyman's[!!-~]Bant.dck -res/decks/Tamas[!!-~]Nagy's[!!-~]Mythic.dck -res/decks/Thabg3's[!!-~]Core[!!-~]'Vore.dck -res/decks/The[!!-~]Original.dck -res/decks/The_Apologist's[!!-~]Aggro[!!-~]Grixis.dck -res/decks/The_Raging_Flump's[!!-~]Pauper[!!-~]Storm.dck -res/decks/Thekid's[!!-~]Singleton[!!-~]Zoo.dck -res/decks/Thierry[!!-~]Ramboa's[!!-~]Elves.dck -res/decks/Thomas[!!-~]Scharwark's[!!-~]Blue-Black[!!-~]Infect.dck -res/decks/Tim[!!-~]Hunt's[!!-~]Spread[!!-~]'Em.dck -res/decks/Tim[!!-~]Landale's[!!-~]Conley[!!-~]Woods[!!-~]Special.dck -res/decks/Tim[!!-~]Sussino's[!!-~]Polymorph.dck -res/decks/Timmins's[!!-~]Bant[!!-~]Aggro.dck -res/decks/Titanic[!!-~](Dave[!!-~]Guskin).dck -res/decks/Todd[!!-~]Anderson's[!!-~]Caw-Blade.dck -res/decks/Tom[!!-~]Lapille's[!!-~]Mono-Green[!!-~]Infect.dck -res/decks/Tomoaki[!!-~]Oomori's[!!-~]White-Black.dck -res/decks/Tomoharu[!!-~]Saito's[!!-~]Super[!!-~]Naya[!!-~]Zoo.dck -res/decks/Tony[!!-~]DeVeyra's[!!-~]Aggro[!!-~]Loam.dck -res/decks/Travis[!!-~]Woo's[!!-~]Wolfball.dck -res/decks/Troy[!!-~]Reppas's[!!-~]White[!!-~]Weenie.dck -res/decks/Tsuyoshi[!!-~]Ikeda's[!!-~]Blue-Black-Red[!!-~]Trix.dck -res/decks/TuSaisPas's[!!-~]Block[!!-~]Control.dck -res/decks/Typhodius's[!!-~]Angels.dck -res/decks/VAT21's[!!-~]Red-Green[!!-~]Aggro.dck -res/decks/Valencia121850's[!!-~]Red-Green[!!-~]Aggro.dck -res/decks/VinnieD's[!!-~]Blue-Black[!!-~]Block[!!-~]Control.dck -res/decks/WWWar[!!-~]Cry![!!-~](Zac[!!-~]Hill).dck -res/decks/Watchwolf's[!!-~]Mono-Red.dck -res/decks/WhoisMaranda's[!!-~]White-Blue[!!-~]Control.dck -res/decks/Wiks's[!!-~]Green-White[!!-~]Aggro[!!-~]Standard.dck -res/decks/William's[!!-~]Vanguard[!!-~]Etherium.dck -res/decks/Yoel42[!!-~]-[!!-~]Mono-Green[!!-~]Overrun.dck -res/decks/Yuuki[!!-~]Wada's[!!-~]Goblins.dck -res/decks/Yuuya[!!-~]Watanabe's[!!-~]Blue-Green-Red.dck -res/decks/Zac[!!-~]Hill's[!!-~]Cascade[!!-~]Control.dck -res/decks/Zac[!!-~]Hill's[!!-~]Eldrazi[!!-~]Green.dck -res/decks/Zac[!!-~]Hill's[!!-~]Fauna[!!-~]Shaman.dck -res/decks/Zac[!!-~]Hill's[!!-~]Frogger's[!!-~]Revenge.dck -res/decks/Zac[!!-~]Hill's[!!-~]Infectious.dck -res/decks/Zac[!!-~]Hill's[!!-~]Kuldotha[!!-~]Red.dck -res/decks/Zack[!!-~]Shaffner's[!!-~]Creatureless[!!-~]Control.dck -res/decks/Zemox's[!!-~]Mono-Green[!!-~]Infect.dck -res/decks/Zvi[!!-~]Mowshowitz's[!!-~]Mono-Black[!!-~]Control.dck -res/decks/constructed/*.dck -res/decks/draft/* -res/decks/o1.bdk -res/decks/plane/*.dck -res/decks/scheme/*.dck -res/decks/sealed/* -res/gauntlet -res/images -res/layouts/*.xml res/oracleScript.log -res/pics -res/pics/*.jpg -res/pics/10E -res/pics/2ED -res/pics/3ED -res/pics/4ED -res/pics/5DN -res/pics/5ED -res/pics/6ED -res/pics/7ED -res/pics/8ED -res/pics/9ED -res/pics/ALA -res/pics/ALL -res/pics/APC -res/pics/ARB -res/pics/ARC -res/pics/ARN -res/pics/ATQ -res/pics/AVR -res/pics/BOK -res/pics/CFX -res/pics/CHK -res/pics/CHR -res/pics/COM -res/pics/CSP -res/pics/DIS -res/pics/DKA -res/pics/DRK -res/pics/DST -res/pics/EVE -res/pics/EXO -res/pics/FEM -res/pics/FUT -res/pics/GPT -res/pics/GTC -res/pics/HML -res/pics/HOP -res/pics/ICE -res/pics/INV -res/pics/ISD -res/pics/JUD -res/pics/LEA -res/pics/LEB -res/pics/LEG -res/pics/LGN -res/pics/LOR -res/pics/LRW -res/pics/M10 -res/pics/M11 -res/pics/M12 -res/pics/M13 -res/pics/MBP -res/pics/MBS -res/pics/MIR -res/pics/MMQ -res/pics/MOR -res/pics/MRD -res/pics/NMS -res/pics/NPH -res/pics/ODY -res/pics/ONS -res/pics/PC2 -res/pics/PCY -res/pics/PLC -res/pics/PLS -res/pics/PO2 -res/pics/POR -res/pics/PTK -res/pics/RAV -res/pics/ROE -res/pics/RTR -res/pics/S00 -res/pics/S99 -res/pics/SCG -res/pics/SHM -res/pics/SOK -res/pics/SOM -res/pics/STH -res/pics/TMP -res/pics/TOR -res/pics/TSB -res/pics/TSP -res/pics/UDS -res/pics/ULG -res/pics/USG -res/pics/VAN -res/pics/VIS -res/pics/WTH -res/pics/WWK -res/pics/ZEN -res/pics/booster -res/pics/icons -res/pics/tokens res/pics_product/*.jpg -res/preferences -res/preferences/editor.preferences -res/preferences/forge.preferences -res/quest/data -res/quest/quest.preferences -res/quest/questData.dat -res/quest/questData.dat.xml res/reprintSetInfo.log res/setInfoScript.log -src/main/java/forge/control -src/main/java/forge/gui/control -src/main/java/forge/gui/ds -src/main/java/forge/gui/editor -src/main/java/forge/gui/home -src/main/java/forge/gui/match -src/main/java/forge/gui/matchOLD -src/main/java/forge/gui/toolbox -src/main/java/forge/gui/unfinished -src/main/java/forge/interfaces -src/main/java/forge/view/components -src/main/java/forge/view/controllers -src/main/java/forge/view/editor -src/main/java/forge/view/home -src/main/java/forge/view/interfaces -src/main/java/forge/view/match -src/main/java/forge/view/toolbox /target -/test-output diff --git a/.project b/.project index 69863d04088..79d327407e2 100644 --- a/.project +++ b/.project @@ -10,11 +10,6 @@ - - org.eclipse.m2e.core.maven2Builder - - - org.eclipse.pde.ManifestBuilder @@ -30,6 +25,11 @@ + + org.eclipse.m2e.core.maven2Builder + + + org.eclipse.m2e.core.maven2Nature diff --git a/.settings/net.sf.jautodoc.prefs b/.settings/net.sf.jautodoc.prefs index 62ac41e3b26..d2ae4087365 100644 --- a/.settings/net.sf.jautodoc.prefs +++ b/.settings/net.sf.jautodoc.prefs @@ -1,4 +1,3 @@ -#Mon Nov 28 12:55:58 PST 2011 add_header=true add_todo=false eclipse.preferences.version=1 diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 00000000000..370ae2c6983 --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=ISO-8859-1 diff --git a/forge.profile.properties.example b/forge.profile.properties.example new file mode 100644 index 00000000000..7bf7fb3720b --- /dev/null +++ b/forge.profile.properties.example @@ -0,0 +1,68 @@ +# +# forge.profile.properties.example +# +# To get started using this file, just copy or rename it to +# forge.profile.properties and edit one or more of the paths below. +# +# Normally, users will not need to do anything here. Keeping the default paths +# is an easy way to make sure your Forge settings and data are kept safe when +# you upgrade Forge, even if you install to a different path or delete the +# entire Forge program directory before you upgrade. +# +# If you need to, though, you can use this file to set the locations that Forge +# will use to store your data. However, remember that whenever you install a +# new version of Forge into a different directory, it will not see your data +# unless you copy this file into the new program directory. +# +# If you specify a relative path in this file, it will be relative to the Forge +# program directory. Note that paths defined in this file will each have the +# whitespace trimmed from their start and end. If you need the path to start or +# end with a space or tab character, put a slash before or after it, as +# appropriate. For example, for the directory "/ local ", use: +# xxxDir=./ local / +# +# EXAMPLES +# -------- +# +# To have Forge use the default directories: +# userDir= +# cacheDir= +# cardPicsDir= +# +# To use a specific user data directory but the default cache dir on Windows: +# userDir=D:/ForgeData +# cacheDir= +# cardPicsDir= +# +# To put everything under a specific path on a Unix-based system: +# userDir=/local/path/forge +# cacheDir=/local/path/forge/cache +# cardPicsDir= + + + +# This is where Forge will save your personal data, such as your saved decks, +# preferences, and quest progress. If you want to back up your data or copy it +# to another computer, this is the directory to copy. The default value is +# platform-specific, and may differ a bit from what is listed here if you have +# an older version of Windows: +# Windows: /Forge/ +# (usually, C:/Users//Application Data/Roaming/Forge/) +# OSX: /Library/Application Support/Forge/ +# Linux: /.forge/ +userDir= + +# This is where forge will keep downloaded content, such as card pictures and +# updated price lists. The default values are: +# Windows: /Forge/Cache/ +# (usually C:/Users//Application Data/Local/Forge/Cache/) +# OSX: /Library/Caches/Forge/ +# Linux: /.cache/forge/ +cacheDir= + +# This is where forge will download and/or look for card picture data. The +# directory structure and filenames are the same as those used by Magic +# Workstation, and if you have both programs installed, you can share the same +# picture database between them. The default value (for all plaforms) is: +# /pics/cards/ +cardPicsDir= diff --git a/forge.properties b/forge.properties deleted file mode 100644 index e6f0c145c8c..00000000000 --- a/forge.properties +++ /dev/null @@ -1,46 +0,0 @@ -#properties-file for mtg forge - -##################### -## The file format ## -##################### - -# maybe you're familiar with property files. it's a simple way for key/value mappings: -# a line starting with '#' is a comment and is ignored. empty lines are also ignored -# other lines are interpreted as =. If you want to use special characters, -# you have to escape them, by prepending '\'. -# so for the key "contains'='", write "contains'\='", and for the key "contains'\'", write "contains'\\'" -# line breaks can be added as \n - - -# this file uses a slightly enhanced concept, including key suffixes. -# you can't use keys containing "--" for this reason: - -# a property ending with "--transparent-properties" results in the referenced properties-file being added - -# a property ending with "--properties" also result in adding, but the name used to add it is prepended. - -# assume a properties file: -# #example.properties -# property=value -# referencing it with -# example--properties=example.properties -# will result in the key "example/property". referencing it with -# example--transparent-properties=example.properties -# will result in the key "property". - -# the third suffix is "--file", and used to reference other files/directories needed in forge -# all paths specified, no matter what suffix, are relative to the current file and not neccessarily to this one - -# some substitutions are applied to a path. "$$" is replaced with "$", a "~/" or "~\" at the path's beginning is -# replaced with the user's home directory. a pattern like "${*}" ("*" being any string) is replaced with the -# system variable, for example, ${user.home} is (at the beginning) the same as "~" - -# all that said, the only thing of importance is that the keys do not change, and that all files are referenced -# correctly. the structure of your properties is not of relevance. you could also include all information in this -# file if you preserve the full keys. - - - -# this link includes the main properties file. you can move/rename etc. the res-folder. you just have to change -# this single line -main--transparent-properties=res/preferences/main.properties diff --git a/pom.xml b/pom.xml index 038714dc54e..b0f0c49fc9d 100644 --- a/pom.xml +++ b/pom.xml @@ -114,13 +114,6 @@ developer - - moonmarc - moonmarc - - developer - - SoulStorm soulstorm @@ -135,6 +128,13 @@ developer + + myk + Myk Taylor + + developer + + @@ -604,37 +604,6 @@ - - org.codehaus.mojo - l10n-maven-plugin - 1.0-alpha-2 - - - cs - de - es - fr - gl - hu - it - ja - ko - lt - nl - no - pl - pt - pt_BR - ru - sk - sv - tr - zh_CN - zh_TW - - - - org.apache.maven.plugins maven-pmd-plugin @@ -879,15 +848,13 @@ - + - - @@ -997,11 +964,9 @@ - + - - diff --git a/res/booster-decks b/res/booster-decks deleted file mode 100644 index 7549badbc75..00000000000 Binary files a/res/booster-decks and /dev/null differ diff --git a/res/cardsfolder/s/snow_covered_forest.txt b/res/cardsfolder/s/snow_covered_forest.txt index af52b46506b..4c7522c9213 100644 --- a/res/cardsfolder/s/snow_covered_forest.txt +++ b/res/cardsfolder/s/snow_covered_forest.txt @@ -1,7 +1,7 @@ Name:Snow-Covered Forest ManaCost:no cost Types:Basic Snow Land Forest -SVar:Picture:http://www.wizards.com/global/images/magic/general/snow_covered_forest.jpg\http://www.wizards.com/global/images/magic/general/snow_covered_forest.jpg\http://www.magickartenmarkt.de/img/cards/Ice_Age/snow_covered_forest.jpg\http://www.magickartenmarkt.de/img/cards/Ice_Age/snow_covered_forest.jpg +SVar:Picture:http://www.wizards.com/global/images/magic/general/snow_covered_forest.jpg Oracle:G SetInfo:ICE Land -SetInfo:CSP Common \ No newline at end of file +SetInfo:CSP Common diff --git a/res/cardsfolder/s/snow_covered_island.txt b/res/cardsfolder/s/snow_covered_island.txt index a88caaae8bd..e736ecba831 100644 --- a/res/cardsfolder/s/snow_covered_island.txt +++ b/res/cardsfolder/s/snow_covered_island.txt @@ -1,7 +1,7 @@ Name:Snow-Covered Island ManaCost:no cost Types:Basic Snow Land Island -SVar:Picture:http://www.wizards.com/global/images/magic/general/snow_covered_island.jpg\http://www.wizards.com/global/images/magic/general/snow_covered_island.jpg\http://www.magickartenmarkt.de/img/cards/Ice_Age/snow_covered_island.jpg\http://www.magickartenmarkt.de/img/cards/Ice_Age/snow_covered_island.jpg +SVar:Picture:http://www.wizards.com/global/images/magic/general/snow_covered_island.jpg Oracle:U SetInfo:ICE Land -SetInfo:CSP Common \ No newline at end of file +SetInfo:CSP Common diff --git a/res/cardsfolder/s/snow_covered_mountain.txt b/res/cardsfolder/s/snow_covered_mountain.txt index 7fe59eca06c..3de20b2a7fc 100644 --- a/res/cardsfolder/s/snow_covered_mountain.txt +++ b/res/cardsfolder/s/snow_covered_mountain.txt @@ -1,7 +1,7 @@ Name:Snow-Covered Mountain ManaCost:no cost Types:Basic Snow Land Mountain -SVar:Picture:http://www.wizards.com/global/images/magic/general/snow_covered_mountain.jpg\http://www.wizards.com/global/images/magic/general/snow_covered_mountain.jpg\http://www.magickartenmarkt.de/img/cards/Ice_Age/snow_covered_mountain.jpg\http://www.magickartenmarkt.de/img/cards/Ice_Age/snow_covered_mountain.jpg +SVar:Picture:http://www.wizards.com/global/images/magic/general/snow_covered_mountain.jpg Oracle:R SetInfo:ICE Land -SetInfo:CSP Common \ No newline at end of file +SetInfo:CSP Common diff --git a/res/cardsfolder/s/snow_covered_plains.txt b/res/cardsfolder/s/snow_covered_plains.txt index 4f6f0b23c56..1fbbd5bd44a 100644 --- a/res/cardsfolder/s/snow_covered_plains.txt +++ b/res/cardsfolder/s/snow_covered_plains.txt @@ -1,7 +1,7 @@ Name:Snow-Covered Plains ManaCost:no cost Types:Basic Snow Land Plains -SVar:Picture:http://www.wizards.com/global/images/magic/general/snow_covered_plains.jpg\http://www.wizards.com/global/images/magic/general/snow_covered_plains.jpg\http://www.magickartenmarkt.de/img/cards/Ice_Age/snow_covered_plains.jpg\http://www.magickartenmarkt.de/img/cards/Ice_Age/snow_covered_plains.jpg +SVar:Picture:http://www.wizards.com/global/images/magic/general/snow_covered_plains.jpg Oracle:W SetInfo:ICE Land -SetInfo:CSP Common \ No newline at end of file +SetInfo:CSP Common diff --git a/res/cardsfolder/s/snow_covered_swamp.txt b/res/cardsfolder/s/snow_covered_swamp.txt index 0dc27dd4b56..38ddc434a7a 100644 --- a/res/cardsfolder/s/snow_covered_swamp.txt +++ b/res/cardsfolder/s/snow_covered_swamp.txt @@ -1,7 +1,7 @@ Name:Snow-Covered Swamp ManaCost:no cost Types:Basic Snow Land Swamp -SVar:Picture:http://www.wizards.com/global/images/magic/general/snow_covered_swamp.jpg\http://www.wizards.com/global/images/magic/general/snow_covered_swamp.jpg\http://www.magickartenmarkt.de/img/cards/Ice_Age/snow_covered_swamp.jpg\http://www.magickartenmarkt.de/img/cards/Ice_Age/snow_covered_swamp.jpg +SVar:Picture:http://www.wizards.com/global/images/magic/general/snow_covered_swamp.jpg Oracle:B SetInfo:ICE Land -SetInfo:CSP Common \ No newline at end of file +SetInfo:CSP Common diff --git a/res/decks/cube/ArabianExtended.dck b/res/cube/ArabianExtended.dck similarity index 95% rename from res/decks/cube/ArabianExtended.dck rename to res/cube/ArabianExtended.dck index 28047b7737d..9197a830246 100644 --- a/res/decks/cube/ArabianExtended.dck +++ b/res/cube/ArabianExtended.dck @@ -1,100 +1,100 @@ -[metadata] -Name=ArabianExtended -[main] -1 Abu Ja'far|ARN -1 Al-abara's Carpet|LEG -1 Aladdin|ARN -1 Aladdin's Ring|ARN -1 Ali Baba|ARN -1 Ali from Cairo|ARN -1 Army of Allah|ARN -1 Bazaar of Baghdad|ARN -1 Bird Maiden|ARN -1 Bottle of Suleiman|ARN -1 Brass Man|ARN -1 City in a Bottle|ARN -1 City of Brass|ARN -1 Dancing Scimitar|ARN -1 Dandan|ARN -1 Desert|ARN -1 Desert Nomads|ARN -1 Desert Twister|ARN -1 Diamond Valley|ARN -1 Drop of Honey|ARN -1 Ebony Horse|ARN -1 El-Hajjaj|ARN -1 Elephant Graveyard|ARN -1 Erg Raiders|ARN -1 Erhnam Djinn|ARN -1 Fishliver Oil|ARN -1 Flying Carpet|ARN -1 Flying Men|ARN -1 Ghazban Ogre|ARN -1 Giant Tortoise|ARN -1 Hasran Ogress|ARN -1 Hurr Jackal|ARN -1 Ifh-Biff Efreet|ARN -1 Island Fish Jasconius|ARN -1 Island of Wak-Wak|ARN -1 Jandor's Ring|ARN -1 Jandor's Saddlebags|ARN -1 Jeweled Bird|ARN -1 Jihad|ARN -1 Junun Efreet|ARN -1 Juzam Djinn|ARN -1 Khabal Ghoul|ARN -1 King Suleiman|ARN -1 Kird Ape|ARN -1 Library of Alexandria|ARN -1 Mahamoti Djinn|2ED -1 Merchant Ship|ARN -1 Metamorphosis|ARN -1 Mijae Djinn|ARN -1 Moorish Cavalry|ARN -1 Mountain|ARN -1 Nekrataal|VIS -1 Oasis|ARN -1 Old Man of the Sea|ARN -1 Oubliette|ARN -1 Piety|ARN -1 Repentant Blacksmith|ARN -1 Rukh Egg|ARN -1 Sandals of Abdallah|ARN -1 Sandstorm|ARN -1 Serendib Djinn|ARN -1 Serendib Efreet|ARN -1 Sindbad|ARN -1 Singing Tree|ARN -1 Sorceress Queen|ARN -1 Stone-Throwing Devils|ARN -1 Unstable Mutation|ARN -1 Wyluli Wolf|ARN -1 Cave People|DRK -1 Crimson Manticore|LEG -1 Cyclopean Mummy|LEG -1 Elder Land Wurm|LEG -1 Forget|HML -1 Frenetic Efreet|MIR -1 Hazezon Tamar|LEG -1 Infernal Contract|MIR -1 Kismet|LEG -1 Mesmeric Trance|ICE -1 Mirror Universe|LEG -1 Nebuchadnezzar|CHR -1 Petra Sphinx|LEG -1 Shimmer|MIR -1 Sidar Jabari|MIR -1 Spiritual Sanctuary|LEG -1 Telim'Tor|MIR -1 Telim'Tor's Edict|MIR -1 Unfulfilled Desires|MIR -1 Drifting Djinn|USG -1 El-Hajjaj|3ED -1 Emberwilde Caliph|MIR -1 Island Fish Jasconius|3ED -1 Mijae Djinn|3ED -1 Pirate Ship|3ED -1 Roc of Kher Ridges|2ED -1 Savannah Lions|3ED -100 Suleiman's Legacy|VIS -[sideboard] +[metadata] +Name=ArabianExtended +[main] +1 Abu Ja'far|ARN +1 Al-abara's Carpet|LEG +1 Aladdin|ARN +1 Aladdin's Ring|ARN +1 Ali Baba|ARN +1 Ali from Cairo|ARN +1 Army of Allah|ARN +1 Bazaar of Baghdad|ARN +1 Bird Maiden|ARN +1 Bottle of Suleiman|ARN +1 Brass Man|ARN +1 City in a Bottle|ARN +1 City of Brass|ARN +1 Dancing Scimitar|ARN +1 Dandan|ARN +1 Desert|ARN +1 Desert Nomads|ARN +1 Desert Twister|ARN +1 Diamond Valley|ARN +1 Drop of Honey|ARN +1 Ebony Horse|ARN +1 El-Hajjaj|ARN +1 Elephant Graveyard|ARN +1 Erg Raiders|ARN +1 Erhnam Djinn|ARN +1 Fishliver Oil|ARN +1 Flying Carpet|ARN +1 Flying Men|ARN +1 Ghazban Ogre|ARN +1 Giant Tortoise|ARN +1 Hasran Ogress|ARN +1 Hurr Jackal|ARN +1 Ifh-Biff Efreet|ARN +1 Island Fish Jasconius|ARN +1 Island of Wak-Wak|ARN +1 Jandor's Ring|ARN +1 Jandor's Saddlebags|ARN +1 Jeweled Bird|ARN +1 Jihad|ARN +1 Junun Efreet|ARN +1 Juzam Djinn|ARN +1 Khabal Ghoul|ARN +1 King Suleiman|ARN +1 Kird Ape|ARN +1 Library of Alexandria|ARN +1 Mahamoti Djinn|2ED +1 Merchant Ship|ARN +1 Metamorphosis|ARN +1 Mijae Djinn|ARN +1 Moorish Cavalry|ARN +1 Mountain|ARN +1 Nekrataal|VIS +1 Oasis|ARN +1 Old Man of the Sea|ARN +1 Oubliette|ARN +1 Piety|ARN +1 Repentant Blacksmith|ARN +1 Rukh Egg|ARN +1 Sandals of Abdallah|ARN +1 Sandstorm|ARN +1 Serendib Djinn|ARN +1 Serendib Efreet|ARN +1 Sindbad|ARN +1 Singing Tree|ARN +1 Sorceress Queen|ARN +1 Stone-Throwing Devils|ARN +1 Unstable Mutation|ARN +1 Wyluli Wolf|ARN +1 Cave People|DRK +1 Crimson Manticore|LEG +1 Cyclopean Mummy|LEG +1 Elder Land Wurm|LEG +1 Forget|HML +1 Frenetic Efreet|MIR +1 Hazezon Tamar|LEG +1 Infernal Contract|MIR +1 Kismet|LEG +1 Mesmeric Trance|ICE +1 Mirror Universe|LEG +1 Nebuchadnezzar|CHR +1 Petra Sphinx|LEG +1 Shimmer|MIR +1 Sidar Jabari|MIR +1 Spiritual Sanctuary|LEG +1 Telim'Tor|MIR +1 Telim'Tor's Edict|MIR +1 Unfulfilled Desires|MIR +1 Drifting Djinn|USG +1 El-Hajjaj|3ED +1 Emberwilde Caliph|MIR +1 Island Fish Jasconius|3ED +1 Mijae Djinn|3ED +1 Pirate Ship|3ED +1 Roc of Kher Ridges|2ED +1 Savannah Lions|3ED +100 Suleiman's Legacy|VIS +[sideboard] diff --git a/res/decks/cube/GtcGuildBoros.dck b/res/cube/GtcGuildBoros.dck similarity index 95% rename from res/decks/cube/GtcGuildBoros.dck rename to res/cube/GtcGuildBoros.dck index cb9bd4e17f8..59d6dc06e2d 100644 --- a/res/decks/cube/GtcGuildBoros.dck +++ b/res/cube/GtcGuildBoros.dck @@ -1,59 +1,59 @@ -[metadata] -Name=GtcGuildBoros -[Main] -1 Act of Treason|GTC -1 Aerial Maneuver|GTC -1 Angelic Edict|GTC -1 Arrows of Justice|GTC -1 Assault Griffin|GTC -1 Assemble the Legion|GTC -1 Aurelia, the Warleader|GTC -1 Bomber Corps|GTC -1 Boros Charm|GTC -1 Boros Elite|GTC -1 Boros Keyrune|GTC -1 Boros Reckoner|GTC -1 Cinder Elemental|GTC -1 Court Street Denizen|GTC -1 Crackling Perimeter|GTC -1 Daring Skyjek|GTC -1 Debtor's Pulpit|GTC -1 Ember Beast|GTC -1 Firefist Striker|GTC -1 Firemane Avenger|GTC -1 Fortress Cyclops|GTC -1 Foundry Street Denizen|GTC -1 Frontline Medic|GTC -1 Furious Resistance|GTC -1 Guardian of the Gateless|GTC -1 Guildscorn Ward|GTC -1 Hellraiser Goblin|GTC -1 Homing Lightning|GTC -1 Knight Watch|GTC -1 Legion Loyalist|GTC -1 Madcap Skills|GTC -1 Mark for Death|GTC -1 Martial Glory|GTC -1 Massive Raid|GTC -1 Molten Primordial|GTC -1 Mugging|GTC -1 Murder Investigation|GTC -1 Nav Squad Commandos|GTC -1 Ordruun Veteran|GTC -1 Righteous Charge|GTC -1 Ripscale Predator|GTC -1 Shattering Blow|GTC -1 Shielded Passage|GTC -1 Skullcrack|GTC -1 Skyknight Legionnaire|GTC -1 Smite|GTC -1 Spark Trooper|GTC -1 Structural Collapse|GTC -1 Sunhome Guildmage|GTC -1 Tin Street Market|GTC -1 Towering Thunderfist|GTC -1 Truefire Paladin|GTC -1 Urbis Protector|GTC -1 Warmind Infantry|GTC -1 Wojek Halberdiers|GTC -1 Zarichi Tiger|GTC +[metadata] +Name=GtcGuildBoros +[Main] +1 Act of Treason|GTC +1 Aerial Maneuver|GTC +1 Angelic Edict|GTC +1 Arrows of Justice|GTC +1 Assault Griffin|GTC +1 Assemble the Legion|GTC +1 Aurelia, the Warleader|GTC +1 Bomber Corps|GTC +1 Boros Charm|GTC +1 Boros Elite|GTC +1 Boros Keyrune|GTC +1 Boros Reckoner|GTC +1 Cinder Elemental|GTC +1 Court Street Denizen|GTC +1 Crackling Perimeter|GTC +1 Daring Skyjek|GTC +1 Debtor's Pulpit|GTC +1 Ember Beast|GTC +1 Firefist Striker|GTC +1 Firemane Avenger|GTC +1 Fortress Cyclops|GTC +1 Foundry Street Denizen|GTC +1 Frontline Medic|GTC +1 Furious Resistance|GTC +1 Guardian of the Gateless|GTC +1 Guildscorn Ward|GTC +1 Hellraiser Goblin|GTC +1 Homing Lightning|GTC +1 Knight Watch|GTC +1 Legion Loyalist|GTC +1 Madcap Skills|GTC +1 Mark for Death|GTC +1 Martial Glory|GTC +1 Massive Raid|GTC +1 Molten Primordial|GTC +1 Mugging|GTC +1 Murder Investigation|GTC +1 Nav Squad Commandos|GTC +1 Ordruun Veteran|GTC +1 Righteous Charge|GTC +1 Ripscale Predator|GTC +1 Shattering Blow|GTC +1 Shielded Passage|GTC +1 Skullcrack|GTC +1 Skyknight Legionnaire|GTC +1 Smite|GTC +1 Spark Trooper|GTC +1 Structural Collapse|GTC +1 Sunhome Guildmage|GTC +1 Tin Street Market|GTC +1 Towering Thunderfist|GTC +1 Truefire Paladin|GTC +1 Urbis Protector|GTC +1 Warmind Infantry|GTC +1 Wojek Halberdiers|GTC +1 Zarichi Tiger|GTC diff --git a/res/decks/cube/GtcGuildDimir.dck b/res/cube/GtcGuildDimir.dck similarity index 95% rename from res/decks/cube/GtcGuildDimir.dck rename to res/cube/GtcGuildDimir.dck index 5191e001ebe..732e5d36ab6 100644 --- a/res/decks/cube/GtcGuildDimir.dck +++ b/res/cube/GtcGuildDimir.dck @@ -1,59 +1,59 @@ -[metadata] -Name=GtcGuildDimir -[Main] -1 AEtherize|GTC -1 Agoraphobia|GTC -1 Balustrade Spy|GTC -1 Call of the Nightwing|GTC -1 Coerced Confession|GTC -1 Contaminated Ground|GTC -1 Corpse Blockade|GTC -1 Death's Approach|GTC -1 Deathcult Rogue|GTC -1 Dimir Charm|GTC -1 Dimir Keyrune|GTC -1 Dinrova Horror|GTC -1 Duskmantle Guildmage|GTC -1 Dying Wish|GTC -1 Gateway Shade|GTC -1 Gridlock|GTC -1 Grisly Spectacle|GTC -1 Gutter Skulk|GTC -1 Hands of Binding|GTC -1 Horror of the Dim|GTC -1 Illness in the Ranks|GTC -1 Incursion Specialist|GTC -1 Keymaster Rogue|GTC -1 Killing Glare|GTC -1 Last Thoughts|GTC -1 Lazav, Dimir Mastermind|GTC -1 Leyline Phantom|GTC -1 Mental Vapors|GTC -1 Metropolis Sprite|GTC -1 Midnight Recovery|GTC -1 Mind Grind|GTC -1 Mindeye Drake|GTC -1 Mortus Strider|GTC -1 Nightveil Specter|GTC -1 Paranoid Delusions|GTC -1 Psychic Strike|GTC -1 Rapid Hybridization|GTC -1 Sage's Row Denizen|GTC -1 Sapphire Drake|GTC -1 Scatter Arc|GTC -1 Sepulchral Primordial|GTC -1 Shadow Alley Denizen|GTC -1 Shadow Slice|GTC -1 Skygames|GTC -1 Slate Street Ruffian|GTC -1 Smog Elemental|GTC -1 Soul Ransom|GTC -1 Spell Rupture|GTC -1 Stolen Identity|GTC -1 Totally Lost|GTC -1 Undercity Informer|GTC -1 Undercity Plague|GTC -1 Voidwalk|GTC -1 Way of the Thief|GTC -1 Whispering Madness|GTC -1 Wight of Precinct Six|GTC +[metadata] +Name=GtcGuildDimir +[Main] +1 AEtherize|GTC +1 Agoraphobia|GTC +1 Balustrade Spy|GTC +1 Call of the Nightwing|GTC +1 Coerced Confession|GTC +1 Contaminated Ground|GTC +1 Corpse Blockade|GTC +1 Death's Approach|GTC +1 Deathcult Rogue|GTC +1 Dimir Charm|GTC +1 Dimir Keyrune|GTC +1 Dinrova Horror|GTC +1 Duskmantle Guildmage|GTC +1 Dying Wish|GTC +1 Gateway Shade|GTC +1 Gridlock|GTC +1 Grisly Spectacle|GTC +1 Gutter Skulk|GTC +1 Hands of Binding|GTC +1 Horror of the Dim|GTC +1 Illness in the Ranks|GTC +1 Incursion Specialist|GTC +1 Keymaster Rogue|GTC +1 Killing Glare|GTC +1 Last Thoughts|GTC +1 Lazav, Dimir Mastermind|GTC +1 Leyline Phantom|GTC +1 Mental Vapors|GTC +1 Metropolis Sprite|GTC +1 Midnight Recovery|GTC +1 Mind Grind|GTC +1 Mindeye Drake|GTC +1 Mortus Strider|GTC +1 Nightveil Specter|GTC +1 Paranoid Delusions|GTC +1 Psychic Strike|GTC +1 Rapid Hybridization|GTC +1 Sage's Row Denizen|GTC +1 Sapphire Drake|GTC +1 Scatter Arc|GTC +1 Sepulchral Primordial|GTC +1 Shadow Alley Denizen|GTC +1 Shadow Slice|GTC +1 Skygames|GTC +1 Slate Street Ruffian|GTC +1 Smog Elemental|GTC +1 Soul Ransom|GTC +1 Spell Rupture|GTC +1 Stolen Identity|GTC +1 Totally Lost|GTC +1 Undercity Informer|GTC +1 Undercity Plague|GTC +1 Voidwalk|GTC +1 Way of the Thief|GTC +1 Whispering Madness|GTC +1 Wight of Precinct Six|GTC diff --git a/res/decks/cube/GtcGuildGruul.dck b/res/cube/GtcGuildGruul.dck similarity index 95% rename from res/decks/cube/GtcGuildGruul.dck rename to res/cube/GtcGuildGruul.dck index 8e86d97a51a..1ce597502e4 100644 --- a/res/decks/cube/GtcGuildGruul.dck +++ b/res/cube/GtcGuildGruul.dck @@ -1,60 +1,60 @@ -[metadata] -Name=GtcGuildGruul -[Main] -1 Act of Treason|GTC -1 Alpha Authority|GTC -1 Borborygmos Enraged|GTC -1 Burning-Tree Emissary|GTC -1 Burst of Strength|GTC -1 Cinder Elemental|GTC -1 Clan Defiance|GTC -1 Crackling Perimeter|GTC -1 Crowned Ceratok|GTC -1 Disciple of the Old Ways|GTC -1 Ember Beast|GTC -1 Forced Adaptation|GTC -1 Foundry Street Denizen|GTC -1 Frenzied Tilling|GTC -1 Furious Resistance|GTC -1 Ghor-Clan Rampager|GTC -1 Greenside Watcher|GTC -1 Ground Assault|GTC -1 Gruul Charm|GTC -1 Gruul Keyrune|GTC -1 Gruul Ragebeast|GTC -1 Hellraiser Goblin|GTC -1 Hindervines|GTC -1 Homing Lightning|GTC -1 Ivy Lane Denizen|GTC -1 Madcap Skills|GTC -1 Mark for Death|GTC -1 Massive Raid|GTC -1 Miming Slime|GTC -1 Mugging|GTC -1 Naturalize|GTC -1 Pit Fight|GTC -1 Primal Visitation|GTC -1 Ripscale Predator|GTC -1 Rubblebelt Raiders|GTC -1 Ruination Wurm|GTC -1 Rust Scarab|GTC -1 Scab-Clan Charger|GTC -1 Scorchwalker|GTC -1 Serene Remembrance|GTC -1 Signal the Clans|GTC -1 Skarrg Goliath|GTC -1 Skarrg Guildmage|GTC -1 Skinbrand Goblin|GTC -1 Skullcrack|GTC -1 Slaughterhorn|GTC -1 Spire Tracer|GTC -1 Structural Collapse|GTC -1 Sylvan Primordial|GTC -1 Tin Street Market|GTC -1 Tower Defense|GTC -1 Verdant Haven|GTC -1 Viashino Shanktail|GTC -1 Wasteland Viper|GTC -1 Wildwood Rebirth|GTC -1 Wrecking Ogre|GTC -1 Zhur-Taa Swine|GTC +[metadata] +Name=GtcGuildGruul +[Main] +1 Act of Treason|GTC +1 Alpha Authority|GTC +1 Borborygmos Enraged|GTC +1 Burning-Tree Emissary|GTC +1 Burst of Strength|GTC +1 Cinder Elemental|GTC +1 Clan Defiance|GTC +1 Crackling Perimeter|GTC +1 Crowned Ceratok|GTC +1 Disciple of the Old Ways|GTC +1 Ember Beast|GTC +1 Forced Adaptation|GTC +1 Foundry Street Denizen|GTC +1 Frenzied Tilling|GTC +1 Furious Resistance|GTC +1 Ghor-Clan Rampager|GTC +1 Greenside Watcher|GTC +1 Ground Assault|GTC +1 Gruul Charm|GTC +1 Gruul Keyrune|GTC +1 Gruul Ragebeast|GTC +1 Hellraiser Goblin|GTC +1 Hindervines|GTC +1 Homing Lightning|GTC +1 Ivy Lane Denizen|GTC +1 Madcap Skills|GTC +1 Mark for Death|GTC +1 Massive Raid|GTC +1 Miming Slime|GTC +1 Mugging|GTC +1 Naturalize|GTC +1 Pit Fight|GTC +1 Primal Visitation|GTC +1 Ripscale Predator|GTC +1 Rubblebelt Raiders|GTC +1 Ruination Wurm|GTC +1 Rust Scarab|GTC +1 Scab-Clan Charger|GTC +1 Scorchwalker|GTC +1 Serene Remembrance|GTC +1 Signal the Clans|GTC +1 Skarrg Goliath|GTC +1 Skarrg Guildmage|GTC +1 Skinbrand Goblin|GTC +1 Skullcrack|GTC +1 Slaughterhorn|GTC +1 Spire Tracer|GTC +1 Structural Collapse|GTC +1 Sylvan Primordial|GTC +1 Tin Street Market|GTC +1 Tower Defense|GTC +1 Verdant Haven|GTC +1 Viashino Shanktail|GTC +1 Wasteland Viper|GTC +1 Wildwood Rebirth|GTC +1 Wrecking Ogre|GTC +1 Zhur-Taa Swine|GTC diff --git a/res/decks/cube/GtcGuildOrzhov.dck b/res/cube/GtcGuildOrzhov.dck similarity index 95% rename from res/decks/cube/GtcGuildOrzhov.dck rename to res/cube/GtcGuildOrzhov.dck index 36fce50442e..5dcfeaf02c6 100644 --- a/res/decks/cube/GtcGuildOrzhov.dck +++ b/res/cube/GtcGuildOrzhov.dck @@ -1,58 +1,58 @@ -[metadata] -Name=GtcGuildOrzhov -[Main] -1 Aerial Maneuver|GTC -1 Alms Beast|GTC -1 Angelic Edict|GTC -1 Assault Griffin|GTC -1 Balustrade Spy|GTC -1 Basilica Guards|GTC -1 Basilica Screecher|GTC -1 Beckon Apparition|GTC -1 Blind Obedience|GTC -1 Cartel Aristocrat|GTC -1 Contaminated Ground|GTC -1 Corpse Blockade|GTC -1 Court Street Denizen|GTC -1 Crypt Ghast|GTC -1 Death's Approach|GTC -1 Debtor's Pulpit|GTC -1 Dutiful Thrull|GTC -1 Dying Wish|GTC -1 Executioner's Swing|GTC -1 Gateway Shade|GTC -1 Gift of Orzhova|GTC -1 Grisly Spectacle|GTC -1 Guardian of the Gateless|GTC -1 Guildscorn Ward|GTC -1 Gutter Skulk|GTC -1 High Priest of Penance|GTC -1 Illness in the Ranks|GTC -1 Immortal Servitude|GTC -1 Killing Glare|GTC -1 Kingpin's Pet|GTC -1 Knight of Obligation|GTC -1 Knight Watch|GTC -1 Luminate Primordial|GTC -1 Merciless Eviction|GTC -1 Murder Investigation|GTC -1 Obzedat, Ghost Council|GTC -1 One Thousand Lashes|GTC -1 Orzhov Charm|GTC -1 Orzhov Keyrune|GTC -1 Purge the Profane|GTC -1 Righteous Charge|GTC -1 Shadow Alley Denizen|GTC -1 Shielded Passage|GTC -1 Slate Street Ruffian|GTC -1 Smite|GTC -1 Smog Elemental|GTC -1 Syndic of Tithes|GTC -1 Syndicate Enforcer|GTC -1 Thrull Parasite|GTC -1 Undercity Informer|GTC -1 Urbis Protector|GTC -1 Vizkopa Confessor|GTC -1 Vizkopa Guildmage|GTC -1 Wight of Precinct Six|GTC -1 Zarichi Tiger|GTC +[metadata] +Name=GtcGuildOrzhov +[Main] +1 Aerial Maneuver|GTC +1 Alms Beast|GTC +1 Angelic Edict|GTC +1 Assault Griffin|GTC +1 Balustrade Spy|GTC +1 Basilica Guards|GTC +1 Basilica Screecher|GTC +1 Beckon Apparition|GTC +1 Blind Obedience|GTC +1 Cartel Aristocrat|GTC +1 Contaminated Ground|GTC +1 Corpse Blockade|GTC +1 Court Street Denizen|GTC +1 Crypt Ghast|GTC +1 Death's Approach|GTC +1 Debtor's Pulpit|GTC +1 Dutiful Thrull|GTC +1 Dying Wish|GTC +1 Executioner's Swing|GTC +1 Gateway Shade|GTC +1 Gift of Orzhova|GTC +1 Grisly Spectacle|GTC +1 Guardian of the Gateless|GTC +1 Guildscorn Ward|GTC +1 Gutter Skulk|GTC +1 High Priest of Penance|GTC +1 Illness in the Ranks|GTC +1 Immortal Servitude|GTC +1 Killing Glare|GTC +1 Kingpin's Pet|GTC +1 Knight of Obligation|GTC +1 Knight Watch|GTC +1 Luminate Primordial|GTC +1 Merciless Eviction|GTC +1 Murder Investigation|GTC +1 Obzedat, Ghost Council|GTC +1 One Thousand Lashes|GTC +1 Orzhov Charm|GTC +1 Orzhov Keyrune|GTC +1 Purge the Profane|GTC +1 Righteous Charge|GTC +1 Shadow Alley Denizen|GTC +1 Shielded Passage|GTC +1 Slate Street Ruffian|GTC +1 Smite|GTC +1 Smog Elemental|GTC +1 Syndic of Tithes|GTC +1 Syndicate Enforcer|GTC +1 Thrull Parasite|GTC +1 Undercity Informer|GTC +1 Urbis Protector|GTC +1 Vizkopa Confessor|GTC +1 Vizkopa Guildmage|GTC +1 Wight of Precinct Six|GTC +1 Zarichi Tiger|GTC diff --git a/res/decks/cube/GtcGuildSimic.dck b/res/cube/GtcGuildSimic.dck similarity index 95% rename from res/decks/cube/GtcGuildSimic.dck rename to res/cube/GtcGuildSimic.dck index e61cfdbb17c..07bcf2eaf4a 100644 --- a/res/decks/cube/GtcGuildSimic.dck +++ b/res/cube/GtcGuildSimic.dck @@ -1,60 +1,60 @@ -[metadata] -Name=GtcGuildSimic -[Main] -1 Adaptive Snapjaw|GTC -1 AEtherize|GTC -1 Agoraphobia|GTC -1 Alpha Authority|GTC -1 Biomass Mutation|GTC -1 Bioshift|GTC -1 Biovisionary|GTC -1 Burst of Strength|GTC -1 Clinging Anemones|GTC -1 Cloudfin Raptor|GTC -1 Crocanura|GTC -1 Crowned Ceratok|GTC -1 Diluvian Primordial|GTC -1 Drakewing Krasis|GTC -1 Elusive Krasis|GTC -1 Experiment One|GTC -1 Forced Adaptation|GTC -1 Frilled Oculus|GTC -1 Greenside Watcher|GTC -1 Gridlock|GTC -1 Gyre Sage|GTC -1 Hindervines|GTC -1 Hydroform|GTC -1 Incursion Specialist|GTC -1 Ivy Lane Denizen|GTC -1 Keymaster Rogue|GTC -1 Leyline Phantom|GTC -1 Merfolk of the Depths|GTC -1 Metropolis Sprite|GTC -1 Miming Slime|GTC -1 Mindeye Drake|GTC -1 Mystic Genesis|GTC -1 Naturalize|GTC -1 Nimbus Swimmer|GTC -1 Prime Speaker Zegana|GTC -1 Rapid Hybridization|GTC -1 Rust Scarab|GTC -1 Sage's Row Denizen|GTC -1 Sapphire Drake|GTC -1 Scatter Arc|GTC -1 Serene Remembrance|GTC -1 Shambleshark|GTC -1 Simic Charm|GTC -1 Simic Fluxmage|GTC -1 Simic Keyrune|GTC -1 Simic Manipulator|GTC -1 Skygames|GTC -1 Spell Rupture|GTC -1 Spire Tracer|GTC -1 Totally Lost|GTC -1 Tower Defense|GTC -1 Unexpected Results|GTC -1 Urban Evolution|GTC -1 Verdant Haven|GTC -1 Way of the Thief|GTC -1 Wildwood Rebirth|GTC -1 Zameck Guildmage|GTC +[metadata] +Name=GtcGuildSimic +[Main] +1 Adaptive Snapjaw|GTC +1 AEtherize|GTC +1 Agoraphobia|GTC +1 Alpha Authority|GTC +1 Biomass Mutation|GTC +1 Bioshift|GTC +1 Biovisionary|GTC +1 Burst of Strength|GTC +1 Clinging Anemones|GTC +1 Cloudfin Raptor|GTC +1 Crocanura|GTC +1 Crowned Ceratok|GTC +1 Diluvian Primordial|GTC +1 Drakewing Krasis|GTC +1 Elusive Krasis|GTC +1 Experiment One|GTC +1 Forced Adaptation|GTC +1 Frilled Oculus|GTC +1 Greenside Watcher|GTC +1 Gridlock|GTC +1 Gyre Sage|GTC +1 Hindervines|GTC +1 Hydroform|GTC +1 Incursion Specialist|GTC +1 Ivy Lane Denizen|GTC +1 Keymaster Rogue|GTC +1 Leyline Phantom|GTC +1 Merfolk of the Depths|GTC +1 Metropolis Sprite|GTC +1 Miming Slime|GTC +1 Mindeye Drake|GTC +1 Mystic Genesis|GTC +1 Naturalize|GTC +1 Nimbus Swimmer|GTC +1 Prime Speaker Zegana|GTC +1 Rapid Hybridization|GTC +1 Rust Scarab|GTC +1 Sage's Row Denizen|GTC +1 Sapphire Drake|GTC +1 Scatter Arc|GTC +1 Serene Remembrance|GTC +1 Shambleshark|GTC +1 Simic Charm|GTC +1 Simic Fluxmage|GTC +1 Simic Keyrune|GTC +1 Simic Manipulator|GTC +1 Skygames|GTC +1 Spell Rupture|GTC +1 Spire Tracer|GTC +1 Totally Lost|GTC +1 Tower Defense|GTC +1 Unexpected Results|GTC +1 Urban Evolution|GTC +1 Verdant Haven|GTC +1 Way of the Thief|GTC +1 Wildwood Rebirth|GTC +1 Zameck Guildmage|GTC diff --git a/res/decks/cube/GtcPromoBoros.dck b/res/cube/GtcPromoBoros.dck similarity index 94% rename from res/decks/cube/GtcPromoBoros.dck rename to res/cube/GtcPromoBoros.dck index dca19b571a2..b2408ed0dc3 100644 --- a/res/decks/cube/GtcPromoBoros.dck +++ b/res/cube/GtcPromoBoros.dck @@ -1,5 +1,5 @@ -[metadata] -Name=GtcPromoBoros -[Main] -1 Boros Guildgate|GTC -1 Foundry Champion|GTC +[metadata] +Name=GtcPromoBoros +[Main] +1 Boros Guildgate|GTC +1 Foundry Champion|GTC diff --git a/res/decks/cube/GtcPromoDimir.dck b/res/cube/GtcPromoDimir.dck similarity index 94% rename from res/decks/cube/GtcPromoDimir.dck rename to res/cube/GtcPromoDimir.dck index ce9c6555d92..ec6f60d07c5 100644 --- a/res/decks/cube/GtcPromoDimir.dck +++ b/res/cube/GtcPromoDimir.dck @@ -1,5 +1,5 @@ -[metadata] -Name=GtcPromoDimir -[Main] -1 Consuming Aberration|GTC -1 Dimir Guildgate|GTC +[metadata] +Name=GtcPromoDimir +[Main] +1 Consuming Aberration|GTC +1 Dimir Guildgate|GTC diff --git a/res/decks/cube/GtcPromoGruul.dck b/res/cube/GtcPromoGruul.dck similarity index 93% rename from res/decks/cube/GtcPromoGruul.dck rename to res/cube/GtcPromoGruul.dck index ff2d00dfbb5..553fe167bfb 100644 --- a/res/decks/cube/GtcPromoGruul.dck +++ b/res/cube/GtcPromoGruul.dck @@ -1,5 +1,5 @@ -[metadata] -Name=GtcPromoGruul -[Main] -1 Gruul Guildgate|GTC -1 Rubblehulk|GTC +[metadata] +Name=GtcPromoGruul +[Main] +1 Gruul Guildgate|GTC +1 Rubblehulk|GTC diff --git a/res/decks/cube/GtcPromoOrzhov.dck b/res/cube/GtcPromoOrzhov.dck similarity index 94% rename from res/decks/cube/GtcPromoOrzhov.dck rename to res/cube/GtcPromoOrzhov.dck index 08df24c78a0..437b041ef1e 100644 --- a/res/decks/cube/GtcPromoOrzhov.dck +++ b/res/cube/GtcPromoOrzhov.dck @@ -1,5 +1,5 @@ -[metadata] -Name=GtcPromoOrzhov -[Main] -1 Orzhov Guildgate|GTC -1 Treasury Thrull|GTC +[metadata] +Name=GtcPromoOrzhov +[Main] +1 Orzhov Guildgate|GTC +1 Treasury Thrull|GTC diff --git a/res/decks/cube/GtcPromoSimic.dck b/res/cube/GtcPromoSimic.dck similarity index 93% rename from res/decks/cube/GtcPromoSimic.dck rename to res/cube/GtcPromoSimic.dck index 79a6b707d9a..3277009bfc3 100644 --- a/res/decks/cube/GtcPromoSimic.dck +++ b/res/cube/GtcPromoSimic.dck @@ -1,5 +1,5 @@ -[metadata] -Name=GtcPromoSimic -[Main] -1 Fathom Mage|GTC -1 Simic Guildgate|GTC +[metadata] +Name=GtcPromoSimic +[Main] +1 Fathom Mage|GTC +1 Simic Guildgate|GTC diff --git a/res/decks/cube/JuzamjediCube.dck b/res/cube/JuzamjediCube.dck similarity index 95% rename from res/decks/cube/JuzamjediCube.dck rename to res/cube/JuzamjediCube.dck index 30be4242b9e..fb98d7198e0 100644 --- a/res/decks/cube/JuzamjediCube.dck +++ b/res/cube/JuzamjediCube.dck @@ -1,434 +1,434 @@ -[metadata] -Name=JuzamjediCube -[main] -1 Accorder Paladin|MBS -1 Acidic Slime|M11 -1 AEther Adept|M11 -1 Agony Warp|ALA -1 Ajani Goldmane|M11 -1 Ajani Vengeant|ALA -1 Ambush Viper|ISD -1 Ancestral Recall|2ED -1 Animate Dead|4ED -1 Arc Lightning|USG -1 Arc Trail|SOM -1 Arcane Denial|ALL -1 Archwing Dragon|AVR -1 Arid Mesa|ZEN -1 Armageddon|S99 -1 Arrogant Bloodlord|ROE -1 Avacyn's Pilgrim|ISD -1 Avalanche Riders|TSB -1 Azorius Guildmage|DIS -1 Azure Mage|M12 -1 Badlands|3ED -1 Balance|4ED -1 Baneslayer Angel|M11 -1 Basilisk Collar|WWK -1 Batterskull|NPH -1 Battlefield Forge|10E -1 Bayou|3ED -1 Birds of Paradise|M11 -1 Bitterblossom|MOR -1 Black Vise|4ED -1 Blade of the Sixth Pride|FUT -1 Blade Splicer|NPH -1 Blastoderm|NMS -1 Blightsteel Colossus|MBS -1 Blind Creeper|5DN -1 Blistering Firecat|ONS -1 Blood Crypt|DIS -1 Blood Ogre|M12 -1 Bloodbraid Elf|ARB -1 Bloodghast|ZEN -1 Bloodgift Demon|ISD -1 Bloodstained Mire|ONS -1 Boggart Ram-Gang|SHM -1 Bone Shredder|ULG -1 Bonesplitter|MRD -1 Bonfire of the Damned|AVR -1 Breeding Pool|DIS -1 Briarhorn|LRW -1 Bribery|8ED -1 Brimstone Volley|ISD -1 Burst Lightning|ZEN -1 Calciderm|PLC -1 Capsize|TMP -1 Carnophage|EXO -1 Caves of Koilos|10E -1 Celestial Colonnade|WWK -1 Chainer's Edict|TOR -1 Chameleon Colossus|MOR -1 Champion of Lambholt|AVR -1 Chandra Nalaar|M11 -1 Chandra's Phoenix|M12 -1 Char|RAV -1 City of Brass|ARN -1 Cloistered Youth|ISD -1 Cloud Spirit|POR -1 Cloudgoat Ranger|LRW -1 Consecrated Sphinx|MBS -1 Consuming Vapors|ROE -1 Control Magic|4ED -1 Coralhelm Commander|ROE -1 Counterspell|7ED -1 Creeping Tar Pit|WWK -1 Crippling Chill|AVR -1 Cultivate|M11 -1 Cursed Scroll|TMP -1 Damnation|PLC -1 Dance of the Dead|ICE -1 Dark Confidant|RAV -1 Dauthi Horror|TMP -1 Dauthi Marauder|TMP -1 Dauthi Slayer|TSB -1 Day of Judgment|M11 -1 Deep Analysis|TOR -1 Delver of Secrets|ISD -1 Deranged Hermit|ULG -1 Devil's Play|ISD -1 Diabolic Edict|TMP -1 Diabolic Servitude|USG -1 Diregraf Ghoul|ISD -1 Disenchant|TSB -1 Dismember|NPH -1 Dismiss|TMP -1 Dispel|WWK -1 Doom Blade|M11 -1 Dungeon Geists|DKA -1 Duress|M11 -1 Dwarven Blastminer|ONS -1 Edric, Spymaster of Trest|COM -1 Electrolyze|GPT -1 Elesh Norn, Grand Cenobite|NPH -1 Elite Vanguard|M11 -1 Elspeth Tirel|SOM -1 Elspeth, Knight-Errant|ALA -1 Ember Hauler|M11 -1 Enclave Cryptologist|ROE -1 Entreat the Angels|AVR -1 Eternal Witness|5DN -1 Evolving Wilds|COM -1 Exalted Angel|ONS -1 Exclude|INV -1 Exhume|USG -1 Fact or Fiction|INV -1 Faerie Conclave|10E -1 Faith's Fetters|RAV -1 Faithless Looting|DKA -1 Fallen Askari|VIS -1 Fauna Shaman|M11 -1 Fiend Hunter|ISD -1 Figure of Destiny|EVE -1 Fire Imp|POR -1 Fireblast|VIS -1 Firebolt|ODY -1 Flagstones of Trokair|TSP -1 Flametongue Kavu|PLS -1 Flickerwisp|EVE -1 Flooded Strand|ONS -1 Fog Bank|COM -1 Force Spike|7ED -1 Forked Bolt|ROE -1 Frost Titan|M11 -1 Fyndhorn Elves|ICE -1 Galvanic Juggernaut|ISD -1 Garruk Relentless|ISD -1 Garruk Wildspeaker|M11 -1 Garruk's Companion|M11 -1 Garruk, Primal Hunter|M12 -1 Gatekeeper of Malakir|ZEN -1 Geist of Saint Traft|ISD -1 Geist-Honored Monk|ISD -1 Genesis|JUD -1 Geralf's Messenger|DKA -1 Ghitu Encampment|10E -1 Glen Elendra Archmage|EVE -1 Go for the Throat|MBS -1 Goblin Guide|ZEN -1 Goblin Patrol|USG -1 Goblin Ruinblaster|ZEN -1 Goblin Wardriver|MBS -1 Godless Shrine|GPT -1 Grafted Wargear|5DN -1 Grand Arbiter Augustin IV|DIS -1 Grand Coliseum|ONS -1 Grave Titan|M11 -1 Graveborn Muse|10E -1 Gravecrawler|DKA -1 Green Sun's Zenith|MBS -1 Grim Lavamancer|M12 -1 Griselbrand|AVR -1 Gush|MMQ -1 Hallowed Fountain|DIS -1 Harmonize|PLC -1 Hell's Thunder|ALA -1 Hellrider|DKA -1 Hellspark Elemental|CFX -1 Hero of Bladehold|MBS -1 Hinterland Harbor|ISD -1 Homicidal Seclusion|AVR -1 Honor of the Pure|M10 -1 Huntmaster of the Fells|DKA -1 Hymn to Tourach|FEM -1 Hypnotic Specter|M10 -1 Incinerate|10E -1 Indrik Stomphowler|DIS -1 Inferno Titan|M11 -1 Inner-Flame Acolyte|LRW -1 Inquisition of Kozilek|ROE -1 Into the Roil|ZEN -1 Invisible Stalker|ISD -1 Isamaru, Hound of Konda|CHK -1 Jace Beleren|M11 -1 Jace, the Mind Sculptor|WWK -1 Jackal Pup|TMP -1 Jade Mage|M12 -1 Journey to Nowhere|ZEN -1 Jungle Lion|POR -1 Kargan Dragonlord|ROE -1 Keiga, the Tide Star|CHK -1 Keldon Champion|UDS -1 Keldon Marauders|PLC -1 Keldon Vandals|UDS -1 Kird Ape|9ED -1 Kitchen Finks|SHM -1 Knight of Meadowgrain|LRW -1 Knight of the Reliquary|CFX -1 Kodama's Reach|CHK -1 Kokusho, the Evening Star|CHK -1 Koth of the Hammer|SOM -1 Krosan Tusker|ONS -1 Land Tax|4ED -1 Lavaclaw Reaches|WWK -1 Leonin Relic-Warder|MBS -1 Library of Alexandria|ARN -1 Life from the Loam|RAV -1 Lightning Bolt|M11 -1 Lightning Greaves|MRD -1 Lightning Helix|RAV -1 Lightning Mauler|AVR -1 Liliana Vess|M11 -1 Liliana's Specter|M11 -1 Lingering Souls|DKA -1 Llanowar Elves|M11 -1 Llanowar Wastes|10E -1 Loam Lion|WWK -1 Lodestone Golem|WWK -1 Looter il-Kor|TSP -1 Loxodon Warhammer|10E -1 Loyal Cathar|DKA -1 Lu Xun, Scholar General|PTK -1 Maelstrom Pulse|ARB -1 Magma Jet|5DN -1 Makeshift Mannequin|LRW -1 Man-o'-War|S99 -1 Mana Drain|LEG -1 Mana Leak|M11 -1 Mana Tithe|PLC -1 Marsh Flats|ZEN -1 Martial Coup|CFX -1 Massacre Wurm|MBS -1 Master of the Wild Hunt|M10 -1 Maze of Ith|DRK -1 Memory Lapse|7ED -1 Midnight Haunting|ISD -1 Mikaeus, the Lunarch|ISD -1 Mind Stone|10E -1 Mire Boa|PLC -1 Mirran Crusader|MBS -1 Miscalculation|ULG -1 Mishra's Factory|4ED -1 Mist Raven|AVR -1 Misty Rainforest|ZEN -1 Molten Rain|MRD -1 Mox Emerald|2ED -1 Mox Jet|2ED -1 Mox Pearl|2ED -1 Mox Ruby|2ED -1 Mox Sapphire|2ED -1 Mulldrifter|LRW -1 Murderous Redcap|SHM -1 Mutavault|MOR -1 Myr Battlesphere|SOM -1 Nantuko Shade|M11 -1 Nantuko Vigilante|LGN -1 Negate|M11 -1 Nekrataal|10E -1 Nevinyrral's Disk|5ED -1 Nezumi Graverobber|CHK -1 Nezumi Shortfang|CHK -1 Night's Whisper|5DN -1 Niv-Mizzet, the Firemind|GPT -1 Noble Hierarch|CFX -1 Oblivion Ring|ALA -1 Ohran Viper|CSP -1 Old Man of the Sea|ARN -1 Olivia Voldaren|ISD -1 Overgrown Tomb|RAV -1 Overrun|ODY -1 Path to Exile|CFX -1 Pelakka Wurm|ROE -1 Phantasmal Image|M12 -1 Phantom Centaur|JUD -1 Phyrexian Arena|9ED -1 Phyrexian Metamorph|NPH -1 Pianna, Nomad Captain|ODY -1 Pillage|7ED -1 Pillar of Flame|AVR -1 Plateau|3ED -1 Plated Geopede|ZEN -1 Plow Under|8ED -1 Polluted Delta|ONS -1 Porcelain Legionnaire|NPH -1 Pouncing Jaguar|USG -1 Primeval Titan|M11 -1 Prophetic Bolt|APC -1 Psionic Blast|TSB -1 Putrefy|RAV -1 Pyroclasm|9ED -1 Raging Ravine|WWK -1 Rampaging Baloths|ZEN -1 Rancor|ULG -1 Ravages of War|PTK -1 Reanimate|TMP -1 Reckless Charge|ODY -1 Red Sun's Zenith|MBS -1 Regrowth|3ED -1 Remand|RAV -1 Repulse|INV -1 Restoration Angel|AVR -1 Reveillark|MOR -1 Rift Bolt|TSP -1 Riftwing Cloudskate|TSP -1 River Boa|ZEN -1 Sacred Foundry|RAV -1 Sakura-Tribe Elder|CHK -1 Sarcomancy|TMP -1 Savannah|3ED -1 Savannah Lions|9ED -1 Scalding Tarn|ZEN -1 Scavenging Ooze|COM -1 Scrubland|3ED -1 Sea Gate Oracle|ROE -1 Searing Blaze|WWK -1 Serendib Efreet|3ED -1 Serra Avenger|TSP -1 Serum Visions|5DN -1 Shadowmage Infiltrator|TSB -1 Sheoldred, Whispering One|NPH -1 Shriekmaw|LRW -1 Shrine of Burning Rage|NPH -1 Siege-Gang Commander|10E -1 Sigarda, Host of Herons|AVR -1 Silverblade Paladin|AVR -1 Simic Sky Swallower|DIS -1 Sinkhole|LEA -1 Skinrender|SOM -1 Skullclamp|DST -1 Skyshroud Elite|EXO -1 Skywinder Drake|M12 -1 Smash to Smithereens|SHM -1 Snuff Out|MMQ -1 Solemn Simulacrum|MRD -1 Soltari Champion|STH -1 Soltari Monk|TMP -1 Soltari Priest|TSB -1 Soltari Trooper|TMP -1 Sorin, Lord of Innistrad|DKA -1 Sower of Temptation|LRW -1 Spectral Procession|SHM -1 Spell Pierce|ZEN -1 Sphinx of Jwar Isle|ZEN -1 Spikeshot Elder|SOM -1 Spiritmonger|APC -1 Staggershock|ROE -1 Steam Vents|GPT -1 Steppe Lynx|ZEN -1 Stillmoon Cavalier|EVE -1 Stirring Wildwood|WWK -1 Stomping Ground|GPT -1 Stone Rain|9ED -1 Stoneforge Mystic|WWK -1 Stormblood Berserker|M12 -1 Stormbound Geist|DKA -1 Strangleroot Geist|DKA -1 Strip Mine|4ED -1 Stromkirk Noble|ISD -1 Student of Warfare|ROE -1 Stupor|TSB -1 Sulfur Falls|ISD -1 Sulfuric Vortex|SCG -1 Sun Titan|M11 -1 Sunblast Angel|SOM -1 Sword of Body and Mind|SOM -1 Sword of Feast and Famine|MBS -1 Sword of Fire and Ice|DST -1 Sword of Light and Shadow|DST -1 Sword of War and Peace|NPH -1 Swords to Plowshares|ICE -1 Taiga|3ED -1 Tamiyo, the Moon Sage|AVR -1 Tarmogoyf|FUT -1 Temple Garden|RAV -1 Temporal Isolation|TSP -1 Terminate|ARB -1 Terminus|AVR -1 Terramorphic Expanse|10E -1 Terror|6ED -1 Thalia, Guardian of Thraben|DKA -1 The Abyss|LEG -1 Thirst for Knowledge|MRD -1 Thornling|CFX -1 Thoughtseize|LRW -1 Thrun, the Last Troll|MBS -1 Thunderous Wrath|AVR -1 Time Walk|2ED -1 Torch Fiend|DKA -1 Tragic Slip|DKA -1 Treachery|UDS -1 Treetop Village|10E -1 Trinket Mage|5DN -1 Troll Ascetic|10E -1 Tropical Island|3ED -1 Trygon Predator|DIS -1 Tundra|3ED -1 Twinblade Slasher|EVE -1 Uktabi Orangutan|6ED -1 Umezawa's Jitte|BOK -1 Underground Sea|3ED -1 Undermine|INV -1 Upheaval|ODY -1 Urborg, Tomb of Yawgmoth|PLC -1 Vampire Interloper|ISD -1 Vampire Lacerator|ZEN -1 Vampire Nighthawk|ZEN -1 Vedalken Shackles|5DN -1 Vendilion Clique|MOR -1 Vengevine|ROE -1 Verdant Catacombs|ZEN -1 Vexing Devil|AVR -1 Vindicate|APC -1 Viridian Shaman|10E -1 Volcanic Island|3ED -1 Wake Thrasher|EVE -1 Wall of Blossoms|STH -1 Wall of Omens|ROE -1 Wasteland|TMP -1 Watery Grave|RAV -1 Wei Ambush Force|PTK -1 Wickerbough Elder|EVE -1 Wild Mongrel|ODY -1 Wild Nacatl|ALA -1 Windswept Heath|ONS -1 Wolfbitten Captive|DKA -1 Wolfir Avenger|AVR -1 Wolfir Silverheart|AVR -1 Wooded Foothills|ONS -1 Woodfall Primus|SHM -1 Wrath of God|10E -1 Wrench Mind|MRD -1 Wurmcoil Engine|SOM -1 Yavimaya Elder|UDS -1 Zealous Conscripts|AVR -[sideboard] +[metadata] +Name=JuzamjediCube +[main] +1 Accorder Paladin|MBS +1 Acidic Slime|M11 +1 AEther Adept|M11 +1 Agony Warp|ALA +1 Ajani Goldmane|M11 +1 Ajani Vengeant|ALA +1 Ambush Viper|ISD +1 Ancestral Recall|2ED +1 Animate Dead|4ED +1 Arc Lightning|USG +1 Arc Trail|SOM +1 Arcane Denial|ALL +1 Archwing Dragon|AVR +1 Arid Mesa|ZEN +1 Armageddon|S99 +1 Arrogant Bloodlord|ROE +1 Avacyn's Pilgrim|ISD +1 Avalanche Riders|TSB +1 Azorius Guildmage|DIS +1 Azure Mage|M12 +1 Badlands|3ED +1 Balance|4ED +1 Baneslayer Angel|M11 +1 Basilisk Collar|WWK +1 Batterskull|NPH +1 Battlefield Forge|10E +1 Bayou|3ED +1 Birds of Paradise|M11 +1 Bitterblossom|MOR +1 Black Vise|4ED +1 Blade of the Sixth Pride|FUT +1 Blade Splicer|NPH +1 Blastoderm|NMS +1 Blightsteel Colossus|MBS +1 Blind Creeper|5DN +1 Blistering Firecat|ONS +1 Blood Crypt|DIS +1 Blood Ogre|M12 +1 Bloodbraid Elf|ARB +1 Bloodghast|ZEN +1 Bloodgift Demon|ISD +1 Bloodstained Mire|ONS +1 Boggart Ram-Gang|SHM +1 Bone Shredder|ULG +1 Bonesplitter|MRD +1 Bonfire of the Damned|AVR +1 Breeding Pool|DIS +1 Briarhorn|LRW +1 Bribery|8ED +1 Brimstone Volley|ISD +1 Burst Lightning|ZEN +1 Calciderm|PLC +1 Capsize|TMP +1 Carnophage|EXO +1 Caves of Koilos|10E +1 Celestial Colonnade|WWK +1 Chainer's Edict|TOR +1 Chameleon Colossus|MOR +1 Champion of Lambholt|AVR +1 Chandra Nalaar|M11 +1 Chandra's Phoenix|M12 +1 Char|RAV +1 City of Brass|ARN +1 Cloistered Youth|ISD +1 Cloud Spirit|POR +1 Cloudgoat Ranger|LRW +1 Consecrated Sphinx|MBS +1 Consuming Vapors|ROE +1 Control Magic|4ED +1 Coralhelm Commander|ROE +1 Counterspell|7ED +1 Creeping Tar Pit|WWK +1 Crippling Chill|AVR +1 Cultivate|M11 +1 Cursed Scroll|TMP +1 Damnation|PLC +1 Dance of the Dead|ICE +1 Dark Confidant|RAV +1 Dauthi Horror|TMP +1 Dauthi Marauder|TMP +1 Dauthi Slayer|TSB +1 Day of Judgment|M11 +1 Deep Analysis|TOR +1 Delver of Secrets|ISD +1 Deranged Hermit|ULG +1 Devil's Play|ISD +1 Diabolic Edict|TMP +1 Diabolic Servitude|USG +1 Diregraf Ghoul|ISD +1 Disenchant|TSB +1 Dismember|NPH +1 Dismiss|TMP +1 Dispel|WWK +1 Doom Blade|M11 +1 Dungeon Geists|DKA +1 Duress|M11 +1 Dwarven Blastminer|ONS +1 Edric, Spymaster of Trest|COM +1 Electrolyze|GPT +1 Elesh Norn, Grand Cenobite|NPH +1 Elite Vanguard|M11 +1 Elspeth Tirel|SOM +1 Elspeth, Knight-Errant|ALA +1 Ember Hauler|M11 +1 Enclave Cryptologist|ROE +1 Entreat the Angels|AVR +1 Eternal Witness|5DN +1 Evolving Wilds|COM +1 Exalted Angel|ONS +1 Exclude|INV +1 Exhume|USG +1 Fact or Fiction|INV +1 Faerie Conclave|10E +1 Faith's Fetters|RAV +1 Faithless Looting|DKA +1 Fallen Askari|VIS +1 Fauna Shaman|M11 +1 Fiend Hunter|ISD +1 Figure of Destiny|EVE +1 Fire Imp|POR +1 Fireblast|VIS +1 Firebolt|ODY +1 Flagstones of Trokair|TSP +1 Flametongue Kavu|PLS +1 Flickerwisp|EVE +1 Flooded Strand|ONS +1 Fog Bank|COM +1 Force Spike|7ED +1 Forked Bolt|ROE +1 Frost Titan|M11 +1 Fyndhorn Elves|ICE +1 Galvanic Juggernaut|ISD +1 Garruk Relentless|ISD +1 Garruk Wildspeaker|M11 +1 Garruk's Companion|M11 +1 Garruk, Primal Hunter|M12 +1 Gatekeeper of Malakir|ZEN +1 Geist of Saint Traft|ISD +1 Geist-Honored Monk|ISD +1 Genesis|JUD +1 Geralf's Messenger|DKA +1 Ghitu Encampment|10E +1 Glen Elendra Archmage|EVE +1 Go for the Throat|MBS +1 Goblin Guide|ZEN +1 Goblin Patrol|USG +1 Goblin Ruinblaster|ZEN +1 Goblin Wardriver|MBS +1 Godless Shrine|GPT +1 Grafted Wargear|5DN +1 Grand Arbiter Augustin IV|DIS +1 Grand Coliseum|ONS +1 Grave Titan|M11 +1 Graveborn Muse|10E +1 Gravecrawler|DKA +1 Green Sun's Zenith|MBS +1 Grim Lavamancer|M12 +1 Griselbrand|AVR +1 Gush|MMQ +1 Hallowed Fountain|DIS +1 Harmonize|PLC +1 Hell's Thunder|ALA +1 Hellrider|DKA +1 Hellspark Elemental|CFX +1 Hero of Bladehold|MBS +1 Hinterland Harbor|ISD +1 Homicidal Seclusion|AVR +1 Honor of the Pure|M10 +1 Huntmaster of the Fells|DKA +1 Hymn to Tourach|FEM +1 Hypnotic Specter|M10 +1 Incinerate|10E +1 Indrik Stomphowler|DIS +1 Inferno Titan|M11 +1 Inner-Flame Acolyte|LRW +1 Inquisition of Kozilek|ROE +1 Into the Roil|ZEN +1 Invisible Stalker|ISD +1 Isamaru, Hound of Konda|CHK +1 Jace Beleren|M11 +1 Jace, the Mind Sculptor|WWK +1 Jackal Pup|TMP +1 Jade Mage|M12 +1 Journey to Nowhere|ZEN +1 Jungle Lion|POR +1 Kargan Dragonlord|ROE +1 Keiga, the Tide Star|CHK +1 Keldon Champion|UDS +1 Keldon Marauders|PLC +1 Keldon Vandals|UDS +1 Kird Ape|9ED +1 Kitchen Finks|SHM +1 Knight of Meadowgrain|LRW +1 Knight of the Reliquary|CFX +1 Kodama's Reach|CHK +1 Kokusho, the Evening Star|CHK +1 Koth of the Hammer|SOM +1 Krosan Tusker|ONS +1 Land Tax|4ED +1 Lavaclaw Reaches|WWK +1 Leonin Relic-Warder|MBS +1 Library of Alexandria|ARN +1 Life from the Loam|RAV +1 Lightning Bolt|M11 +1 Lightning Greaves|MRD +1 Lightning Helix|RAV +1 Lightning Mauler|AVR +1 Liliana Vess|M11 +1 Liliana's Specter|M11 +1 Lingering Souls|DKA +1 Llanowar Elves|M11 +1 Llanowar Wastes|10E +1 Loam Lion|WWK +1 Lodestone Golem|WWK +1 Looter il-Kor|TSP +1 Loxodon Warhammer|10E +1 Loyal Cathar|DKA +1 Lu Xun, Scholar General|PTK +1 Maelstrom Pulse|ARB +1 Magma Jet|5DN +1 Makeshift Mannequin|LRW +1 Man-o'-War|S99 +1 Mana Drain|LEG +1 Mana Leak|M11 +1 Mana Tithe|PLC +1 Marsh Flats|ZEN +1 Martial Coup|CFX +1 Massacre Wurm|MBS +1 Master of the Wild Hunt|M10 +1 Maze of Ith|DRK +1 Memory Lapse|7ED +1 Midnight Haunting|ISD +1 Mikaeus, the Lunarch|ISD +1 Mind Stone|10E +1 Mire Boa|PLC +1 Mirran Crusader|MBS +1 Miscalculation|ULG +1 Mishra's Factory|4ED +1 Mist Raven|AVR +1 Misty Rainforest|ZEN +1 Molten Rain|MRD +1 Mox Emerald|2ED +1 Mox Jet|2ED +1 Mox Pearl|2ED +1 Mox Ruby|2ED +1 Mox Sapphire|2ED +1 Mulldrifter|LRW +1 Murderous Redcap|SHM +1 Mutavault|MOR +1 Myr Battlesphere|SOM +1 Nantuko Shade|M11 +1 Nantuko Vigilante|LGN +1 Negate|M11 +1 Nekrataal|10E +1 Nevinyrral's Disk|5ED +1 Nezumi Graverobber|CHK +1 Nezumi Shortfang|CHK +1 Night's Whisper|5DN +1 Niv-Mizzet, the Firemind|GPT +1 Noble Hierarch|CFX +1 Oblivion Ring|ALA +1 Ohran Viper|CSP +1 Old Man of the Sea|ARN +1 Olivia Voldaren|ISD +1 Overgrown Tomb|RAV +1 Overrun|ODY +1 Path to Exile|CFX +1 Pelakka Wurm|ROE +1 Phantasmal Image|M12 +1 Phantom Centaur|JUD +1 Phyrexian Arena|9ED +1 Phyrexian Metamorph|NPH +1 Pianna, Nomad Captain|ODY +1 Pillage|7ED +1 Pillar of Flame|AVR +1 Plateau|3ED +1 Plated Geopede|ZEN +1 Plow Under|8ED +1 Polluted Delta|ONS +1 Porcelain Legionnaire|NPH +1 Pouncing Jaguar|USG +1 Primeval Titan|M11 +1 Prophetic Bolt|APC +1 Psionic Blast|TSB +1 Putrefy|RAV +1 Pyroclasm|9ED +1 Raging Ravine|WWK +1 Rampaging Baloths|ZEN +1 Rancor|ULG +1 Ravages of War|PTK +1 Reanimate|TMP +1 Reckless Charge|ODY +1 Red Sun's Zenith|MBS +1 Regrowth|3ED +1 Remand|RAV +1 Repulse|INV +1 Restoration Angel|AVR +1 Reveillark|MOR +1 Rift Bolt|TSP +1 Riftwing Cloudskate|TSP +1 River Boa|ZEN +1 Sacred Foundry|RAV +1 Sakura-Tribe Elder|CHK +1 Sarcomancy|TMP +1 Savannah|3ED +1 Savannah Lions|9ED +1 Scalding Tarn|ZEN +1 Scavenging Ooze|COM +1 Scrubland|3ED +1 Sea Gate Oracle|ROE +1 Searing Blaze|WWK +1 Serendib Efreet|3ED +1 Serra Avenger|TSP +1 Serum Visions|5DN +1 Shadowmage Infiltrator|TSB +1 Sheoldred, Whispering One|NPH +1 Shriekmaw|LRW +1 Shrine of Burning Rage|NPH +1 Siege-Gang Commander|10E +1 Sigarda, Host of Herons|AVR +1 Silverblade Paladin|AVR +1 Simic Sky Swallower|DIS +1 Sinkhole|LEA +1 Skinrender|SOM +1 Skullclamp|DST +1 Skyshroud Elite|EXO +1 Skywinder Drake|M12 +1 Smash to Smithereens|SHM +1 Snuff Out|MMQ +1 Solemn Simulacrum|MRD +1 Soltari Champion|STH +1 Soltari Monk|TMP +1 Soltari Priest|TSB +1 Soltari Trooper|TMP +1 Sorin, Lord of Innistrad|DKA +1 Sower of Temptation|LRW +1 Spectral Procession|SHM +1 Spell Pierce|ZEN +1 Sphinx of Jwar Isle|ZEN +1 Spikeshot Elder|SOM +1 Spiritmonger|APC +1 Staggershock|ROE +1 Steam Vents|GPT +1 Steppe Lynx|ZEN +1 Stillmoon Cavalier|EVE +1 Stirring Wildwood|WWK +1 Stomping Ground|GPT +1 Stone Rain|9ED +1 Stoneforge Mystic|WWK +1 Stormblood Berserker|M12 +1 Stormbound Geist|DKA +1 Strangleroot Geist|DKA +1 Strip Mine|4ED +1 Stromkirk Noble|ISD +1 Student of Warfare|ROE +1 Stupor|TSB +1 Sulfur Falls|ISD +1 Sulfuric Vortex|SCG +1 Sun Titan|M11 +1 Sunblast Angel|SOM +1 Sword of Body and Mind|SOM +1 Sword of Feast and Famine|MBS +1 Sword of Fire and Ice|DST +1 Sword of Light and Shadow|DST +1 Sword of War and Peace|NPH +1 Swords to Plowshares|ICE +1 Taiga|3ED +1 Tamiyo, the Moon Sage|AVR +1 Tarmogoyf|FUT +1 Temple Garden|RAV +1 Temporal Isolation|TSP +1 Terminate|ARB +1 Terminus|AVR +1 Terramorphic Expanse|10E +1 Terror|6ED +1 Thalia, Guardian of Thraben|DKA +1 The Abyss|LEG +1 Thirst for Knowledge|MRD +1 Thornling|CFX +1 Thoughtseize|LRW +1 Thrun, the Last Troll|MBS +1 Thunderous Wrath|AVR +1 Time Walk|2ED +1 Torch Fiend|DKA +1 Tragic Slip|DKA +1 Treachery|UDS +1 Treetop Village|10E +1 Trinket Mage|5DN +1 Troll Ascetic|10E +1 Tropical Island|3ED +1 Trygon Predator|DIS +1 Tundra|3ED +1 Twinblade Slasher|EVE +1 Uktabi Orangutan|6ED +1 Umezawa's Jitte|BOK +1 Underground Sea|3ED +1 Undermine|INV +1 Upheaval|ODY +1 Urborg, Tomb of Yawgmoth|PLC +1 Vampire Interloper|ISD +1 Vampire Lacerator|ZEN +1 Vampire Nighthawk|ZEN +1 Vedalken Shackles|5DN +1 Vendilion Clique|MOR +1 Vengevine|ROE +1 Verdant Catacombs|ZEN +1 Vexing Devil|AVR +1 Vindicate|APC +1 Viridian Shaman|10E +1 Volcanic Island|3ED +1 Wake Thrasher|EVE +1 Wall of Blossoms|STH +1 Wall of Omens|ROE +1 Wasteland|TMP +1 Watery Grave|RAV +1 Wei Ambush Force|PTK +1 Wickerbough Elder|EVE +1 Wild Mongrel|ODY +1 Wild Nacatl|ALA +1 Windswept Heath|ONS +1 Wolfbitten Captive|DKA +1 Wolfir Avenger|AVR +1 Wolfir Silverheart|AVR +1 Wooded Foothills|ONS +1 Woodfall Primus|SHM +1 Wrath of God|10E +1 Wrench Mind|MRD +1 Wurmcoil Engine|SOM +1 Yavimaya Elder|UDS +1 Zealous Conscripts|AVR +[sideboard] diff --git a/res/decks/cube/RtRGuildAzorius.dck b/res/cube/RtRGuildAzorius.dck similarity index 95% rename from res/decks/cube/RtRGuildAzorius.dck rename to res/cube/RtRGuildAzorius.dck index 6ee4ecf93b9..9edea4986b4 100644 --- a/res/decks/cube/RtRGuildAzorius.dck +++ b/res/cube/RtRGuildAzorius.dck @@ -1,71 +1,71 @@ -[metadata] -Name=RtRGuildAzorius -[main] -1 Aquus Steed|RTR -1 Armory Guard|RTR -1 Arrest|RTR -1 Avenging Arrow|RTR -1 Azor's Elocutors|RTR -1 Azorius Arrester|RTR -1 Azorius Charm|RTR -1 Azorius Justiciar|RTR -1 Azorius Keyrune|RTR -1 Bazaar Krovod|RTR -1 Cancel|RTR -1 Chronic Flooding|RTR -1 Civic Saber|RTR -1 Codex Shredder|RTR -1 Concordia Pegasus|RTR -1 Conjured Currency|RTR -1 Crosstown Courier|RTR -1 Detention Sphere|RTR -1 Dispel|RTR -1 Doorkeeper|RTR -1 Dramatic Rescue|RTR -1 Ethereal Armor|RTR -1 Faerie Impostor|RTR -1 Fall of the Gavel|RTR -1 Fencing Ace|RTR -1 Hallowed Fountain|RTR -1 Hover Barrier|RTR -1 Hussar Patrol|RTR -1 Inaction Injunction|RTR -1 Inspiration|RTR -1 Isperia's Skywatch|RTR -1 Isperia, Supreme Judge|RTR -1 Judge's Familiar|RTR -1 Keening Apparition|RTR -1 Knightly Valor|RTR -1 Lyev Skyknight|RTR -1 Martial Law|RTR -1 New Prahv Guildmage|RTR -1 Palisade Giant|RTR -1 Paralyzing Grasp|RTR -1 Phantom General|RTR -1 Precinct Captain|RTR -1 Psychic Spiral|RTR -1 Rest in Peace|RTR -1 Righteous Authority|RTR -1 Runewing|RTR -1 Search the City|RTR -1 Search Warrant|RTR -1 Security Blockade|RTR -1 Seller of Songbirds|RTR -1 Skyline Predator|RTR -1 Skymark Roc|RTR -1 Soul Tithe|RTR -1 Soulsworn Spirit|RTR -1 Sphere of Safety|RTR -1 Sphinx of the Chimes|RTR -1 Stealer of Secrets|RTR -1 Street Sweeper|RTR -1 Sunspire Griffin|RTR -1 Supreme Verdict|RTR -1 Swift Justice|RTR -1 Syncopate|RTR -1 Tablet of the Guilds|RTR -1 Tower Drake|RTR -1 Trained Caracal|RTR -1 Vassal Soul|RTR -1 Voidwielder|RTR -[sideboard] +[metadata] +Name=RtRGuildAzorius +[main] +1 Aquus Steed|RTR +1 Armory Guard|RTR +1 Arrest|RTR +1 Avenging Arrow|RTR +1 Azor's Elocutors|RTR +1 Azorius Arrester|RTR +1 Azorius Charm|RTR +1 Azorius Justiciar|RTR +1 Azorius Keyrune|RTR +1 Bazaar Krovod|RTR +1 Cancel|RTR +1 Chronic Flooding|RTR +1 Civic Saber|RTR +1 Codex Shredder|RTR +1 Concordia Pegasus|RTR +1 Conjured Currency|RTR +1 Crosstown Courier|RTR +1 Detention Sphere|RTR +1 Dispel|RTR +1 Doorkeeper|RTR +1 Dramatic Rescue|RTR +1 Ethereal Armor|RTR +1 Faerie Impostor|RTR +1 Fall of the Gavel|RTR +1 Fencing Ace|RTR +1 Hallowed Fountain|RTR +1 Hover Barrier|RTR +1 Hussar Patrol|RTR +1 Inaction Injunction|RTR +1 Inspiration|RTR +1 Isperia's Skywatch|RTR +1 Isperia, Supreme Judge|RTR +1 Judge's Familiar|RTR +1 Keening Apparition|RTR +1 Knightly Valor|RTR +1 Lyev Skyknight|RTR +1 Martial Law|RTR +1 New Prahv Guildmage|RTR +1 Palisade Giant|RTR +1 Paralyzing Grasp|RTR +1 Phantom General|RTR +1 Precinct Captain|RTR +1 Psychic Spiral|RTR +1 Rest in Peace|RTR +1 Righteous Authority|RTR +1 Runewing|RTR +1 Search the City|RTR +1 Search Warrant|RTR +1 Security Blockade|RTR +1 Seller of Songbirds|RTR +1 Skyline Predator|RTR +1 Skymark Roc|RTR +1 Soul Tithe|RTR +1 Soulsworn Spirit|RTR +1 Sphere of Safety|RTR +1 Sphinx of the Chimes|RTR +1 Stealer of Secrets|RTR +1 Street Sweeper|RTR +1 Sunspire Griffin|RTR +1 Supreme Verdict|RTR +1 Swift Justice|RTR +1 Syncopate|RTR +1 Tablet of the Guilds|RTR +1 Tower Drake|RTR +1 Trained Caracal|RTR +1 Vassal Soul|RTR +1 Voidwielder|RTR +[sideboard] diff --git a/res/decks/cube/RtRGuildGolgari.dck b/res/cube/RtRGuildGolgari.dck similarity index 95% rename from res/decks/cube/RtRGuildGolgari.dck rename to res/cube/RtRGuildGolgari.dck index 03f06ca14ec..e3edbe77297 100644 --- a/res/decks/cube/RtRGuildGolgari.dck +++ b/res/cube/RtRGuildGolgari.dck @@ -1,73 +1,73 @@ -[metadata] -Name=RtRGuildGolgari -[main] -1 Abrupt Decay|RTR -1 Aerial Predation|RTR -1 Archweaver|RTR -1 Assassin's Strike|RTR -1 Axebane Guardian|RTR -1 Axebane Stag|RTR -1 Brushstrider|RTR -1 Catacomb Slug|RTR -1 Centaur's Herald|RTR -1 Chorus of Might|RTR -1 Civic Saber|RTR -1 Codex Shredder|RTR -1 Cremate|RTR -1 Daggerdrome Imp|RTR -1 Dark Revenant|RTR -1 Deadbridge Goliath|RTR -1 Death's Presence|RTR -1 Deathrite Shaman|RTR -1 Desecration Demon|RTR -1 Destroy the Evidence|RTR -1 Drainpipe Vermin|RTR -1 Dreg Mangler|RTR -1 Drudge Beetle|RTR -1 Gatecreeper Vine|RTR -1 Giant Growth|RTR -1 Gobbling Ooze|RTR -1 Golgari Charm|RTR -1 Golgari Decoy|RTR -1 Golgari Keyrune|RTR -1 Golgari Longlegs|RTR -1 Grave Betrayal|RTR -1 Grisly Salvage|RTR -1 Jarad's Orders|RTR -1 Jarad, Golgari Lich Lord|RTR -1 Korozda Guildmage|RTR -1 Korozda Monitor|RTR -1 Launch Party|RTR -1 Lotleth Troll|RTR -1 Mana Bloom|RTR -1 Mind Rot|RTR -1 Oak Street Innkeeper|RTR -1 Ogre Jailbreaker|RTR -1 Overgrown Tomb|RTR -1 Pack Rat|RTR -1 Perilous Shadow|RTR -1 Rites of Reaping|RTR -1 Rubbleback Rhino|RTR -1 Savage Surge|RTR -1 Seek the Horizon|RTR -1 Sewer Shambler|RTR -1 Shrieking Affliction|RTR -1 Slime Molding|RTR -1 Slitherhead|RTR -1 Sluiceway Scorpion|RTR -1 Slum Reaper|RTR -1 Stab Wound|RTR -1 Stonefare Crocodile|RTR -1 Street Sweeper|RTR -1 Tablet of the Guilds|RTR -1 Tavern Swindler|RTR -1 Terrus Wurm|RTR -1 Towering Indrik|RTR -1 Treasured Find|RTR -1 Trestle Troll|RTR -1 Ultimate Price|RTR -1 Underworld Connections|RTR -1 Urban Burgeoning|RTR -1 Wild Beastmaster|RTR -1 Zanikev Locust|RTR -[sideboard] +[metadata] +Name=RtRGuildGolgari +[main] +1 Abrupt Decay|RTR +1 Aerial Predation|RTR +1 Archweaver|RTR +1 Assassin's Strike|RTR +1 Axebane Guardian|RTR +1 Axebane Stag|RTR +1 Brushstrider|RTR +1 Catacomb Slug|RTR +1 Centaur's Herald|RTR +1 Chorus of Might|RTR +1 Civic Saber|RTR +1 Codex Shredder|RTR +1 Cremate|RTR +1 Daggerdrome Imp|RTR +1 Dark Revenant|RTR +1 Deadbridge Goliath|RTR +1 Death's Presence|RTR +1 Deathrite Shaman|RTR +1 Desecration Demon|RTR +1 Destroy the Evidence|RTR +1 Drainpipe Vermin|RTR +1 Dreg Mangler|RTR +1 Drudge Beetle|RTR +1 Gatecreeper Vine|RTR +1 Giant Growth|RTR +1 Gobbling Ooze|RTR +1 Golgari Charm|RTR +1 Golgari Decoy|RTR +1 Golgari Keyrune|RTR +1 Golgari Longlegs|RTR +1 Grave Betrayal|RTR +1 Grisly Salvage|RTR +1 Jarad's Orders|RTR +1 Jarad, Golgari Lich Lord|RTR +1 Korozda Guildmage|RTR +1 Korozda Monitor|RTR +1 Launch Party|RTR +1 Lotleth Troll|RTR +1 Mana Bloom|RTR +1 Mind Rot|RTR +1 Oak Street Innkeeper|RTR +1 Ogre Jailbreaker|RTR +1 Overgrown Tomb|RTR +1 Pack Rat|RTR +1 Perilous Shadow|RTR +1 Rites of Reaping|RTR +1 Rubbleback Rhino|RTR +1 Savage Surge|RTR +1 Seek the Horizon|RTR +1 Sewer Shambler|RTR +1 Shrieking Affliction|RTR +1 Slime Molding|RTR +1 Slitherhead|RTR +1 Sluiceway Scorpion|RTR +1 Slum Reaper|RTR +1 Stab Wound|RTR +1 Stonefare Crocodile|RTR +1 Street Sweeper|RTR +1 Tablet of the Guilds|RTR +1 Tavern Swindler|RTR +1 Terrus Wurm|RTR +1 Towering Indrik|RTR +1 Treasured Find|RTR +1 Trestle Troll|RTR +1 Ultimate Price|RTR +1 Underworld Connections|RTR +1 Urban Burgeoning|RTR +1 Wild Beastmaster|RTR +1 Zanikev Locust|RTR +[sideboard] diff --git a/res/decks/cube/RtRGuildIzzet.dck b/res/cube/RtRGuildIzzet.dck similarity index 95% rename from res/decks/cube/RtRGuildIzzet.dck rename to res/cube/RtRGuildIzzet.dck index 4c52123d48b..68f93e62e6f 100644 --- a/res/decks/cube/RtRGuildIzzet.dck +++ b/res/cube/RtRGuildIzzet.dck @@ -1,71 +1,71 @@ -[metadata] -Name=RtRGuildIzzet -[main] -1 Annihilating Fire|RTR -1 Aquus Steed|RTR -1 Ash Zealot|RTR -1 Batterhorn|RTR -1 Bellows Lizard|RTR -1 Blistercoil Weird|RTR -1 Blustersquall|RTR -1 Cancel|RTR -1 Chemister's Trick|RTR -1 Chronic Flooding|RTR -1 Civic Saber|RTR -1 Cobblebrute|RTR -1 Codex Shredder|RTR -1 Conjured Currency|RTR -1 Counterflux|RTR -1 Crosstown Courier|RTR -1 Cyclonic Rift|RTR -1 Dispel|RTR -1 Doorkeeper|RTR -1 Downsize|RTR -1 Dynacharge|RTR -1 Electrickery|RTR -1 Essence Backlash|RTR -1 Explosive Impact|RTR -1 Faerie Impostor|RTR -1 Firemind's Foresight|RTR -1 Frostburn Weird|RTR -1 Goblin Electromancer|RTR -1 Goblin Rally|RTR -1 Guild Feud|RTR -1 Guttersnipe|RTR -1 Hover Barrier|RTR -1 Inspiration|RTR -1 Izzet Charm|RTR -1 Izzet Keyrune|RTR -1 Izzet Staticaster|RTR -1 Lobber Crew|RTR -1 Mercurial Chemister|RTR -1 Minotaur Aggressor|RTR -1 Mizzium Mortars|RTR -1 Mizzium Skin|RTR -1 Niv-Mizzet, Dracogenius|RTR -1 Nivix Guildmage|RTR -1 Nivmagus Elemental|RTR -1 Paralyzing Grasp|RTR -1 Psychic Spiral|RTR -1 Pursuit of Flight|RTR -1 Pyroconvergence|RTR -1 Racecourse Fury|RTR -1 Runewing|RTR -1 Search the City|RTR -1 Skyline Predator|RTR -1 Sphinx of the Chimes|RTR -1 Stealer of Secrets|RTR -1 Steam Vents|RTR -1 Street Spasm|RTR -1 Street Sweeper|RTR -1 Survey the Wreckage|RTR -1 Syncopate|RTR -1 Tablet of the Guilds|RTR -1 Teleportal|RTR -1 Tenement Crasher|RTR -1 Thoughtflare|RTR -1 Traitorous Instinct|RTR -1 Vandalblast|RTR -1 Viashino Racketeer|RTR -1 Voidwielder|RTR -[sideboard] +[metadata] +Name=RtRGuildIzzet +[main] +1 Annihilating Fire|RTR +1 Aquus Steed|RTR +1 Ash Zealot|RTR +1 Batterhorn|RTR +1 Bellows Lizard|RTR +1 Blistercoil Weird|RTR +1 Blustersquall|RTR +1 Cancel|RTR +1 Chemister's Trick|RTR +1 Chronic Flooding|RTR +1 Civic Saber|RTR +1 Cobblebrute|RTR +1 Codex Shredder|RTR +1 Conjured Currency|RTR +1 Counterflux|RTR +1 Crosstown Courier|RTR +1 Cyclonic Rift|RTR +1 Dispel|RTR +1 Doorkeeper|RTR +1 Downsize|RTR +1 Dynacharge|RTR +1 Electrickery|RTR +1 Essence Backlash|RTR +1 Explosive Impact|RTR +1 Faerie Impostor|RTR +1 Firemind's Foresight|RTR +1 Frostburn Weird|RTR +1 Goblin Electromancer|RTR +1 Goblin Rally|RTR +1 Guild Feud|RTR +1 Guttersnipe|RTR +1 Hover Barrier|RTR +1 Inspiration|RTR +1 Izzet Charm|RTR +1 Izzet Keyrune|RTR +1 Izzet Staticaster|RTR +1 Lobber Crew|RTR +1 Mercurial Chemister|RTR +1 Minotaur Aggressor|RTR +1 Mizzium Mortars|RTR +1 Mizzium Skin|RTR +1 Niv-Mizzet, Dracogenius|RTR +1 Nivix Guildmage|RTR +1 Nivmagus Elemental|RTR +1 Paralyzing Grasp|RTR +1 Psychic Spiral|RTR +1 Pursuit of Flight|RTR +1 Pyroconvergence|RTR +1 Racecourse Fury|RTR +1 Runewing|RTR +1 Search the City|RTR +1 Skyline Predator|RTR +1 Sphinx of the Chimes|RTR +1 Stealer of Secrets|RTR +1 Steam Vents|RTR +1 Street Spasm|RTR +1 Street Sweeper|RTR +1 Survey the Wreckage|RTR +1 Syncopate|RTR +1 Tablet of the Guilds|RTR +1 Teleportal|RTR +1 Tenement Crasher|RTR +1 Thoughtflare|RTR +1 Traitorous Instinct|RTR +1 Vandalblast|RTR +1 Viashino Racketeer|RTR +1 Voidwielder|RTR +[sideboard] diff --git a/res/decks/cube/RtRGuildRakdos.dck b/res/cube/RtRGuildRakdos.dck similarity index 95% rename from res/decks/cube/RtRGuildRakdos.dck rename to res/cube/RtRGuildRakdos.dck index 0af4733eef0..de1b0873978 100644 --- a/res/decks/cube/RtRGuildRakdos.dck +++ b/res/cube/RtRGuildRakdos.dck @@ -1,70 +1,70 @@ -[metadata] -Name=RtRGuildRakdos -[main] -1 Annihilating Fire|RTR -1 Ash Zealot|RTR -1 Assassin's Strike|RTR -1 Auger Spree|RTR -1 Batterhorn|RTR -1 Bellows Lizard|RTR -1 Blood Crypt|RTR -1 Bloodfray Giant|RTR -1 Catacomb Slug|RTR -1 Chaos Imps|RTR -1 Civic Saber|RTR -1 Cobblebrute|RTR -1 Codex Shredder|RTR -1 Cremate|RTR -1 Cryptborn Horror|RTR -1 Daggerdrome Imp|RTR -1 Dark Revenant|RTR -1 Dead Reveler|RTR -1 Desecration Demon|RTR -1 Destroy the Evidence|RTR -1 Deviant Glee|RTR -1 Drainpipe Vermin|RTR -1 Dreadbore|RTR -1 Explosive Impact|RTR -1 Goblin Rally|RTR -1 Gore-House Chainwalker|RTR -1 Grave Betrayal|RTR -1 Grim Roustabout|RTR -1 Guild Feud|RTR -1 Guttersnipe|RTR -1 Havoc Festival|RTR -1 Hellhole Flailer|RTR -1 Launch Party|RTR -1 Lobber Crew|RTR -1 Mind Rot|RTR -1 Minotaur Aggressor|RTR -1 Ogre Jailbreaker|RTR -1 Pack Rat|RTR -1 Perilous Shadow|RTR -1 Pyroconvergence|RTR -1 Racecourse Fury|RTR -1 Rakdos Cackler|RTR -1 Rakdos Charm|RTR -1 Rakdos Keyrune|RTR -1 Rakdos Ragemutt|RTR -1 Rakdos Ringleader|RTR -1 Rakdos Shred-Freak|RTR -1 Rakdos, Lord of Riots|RTR -1 Rix Maadi Guildmage|RTR -1 Shrieking Affliction|RTR -1 Skull Rend|RTR -1 Slaughter Games|RTR -1 Slum Reaper|RTR -1 Spawn of Rix Maadi|RTR -1 Splatter Thug|RTR -1 Stab Wound|RTR -1 Street Sweeper|RTR -1 Survey the Wreckage|RTR -1 Tablet of the Guilds|RTR -1 Tavern Swindler|RTR -1 Tenement Crasher|RTR -1 Thrill-Kill Assassin|RTR -1 Traitorous Instinct|RTR -1 Ultimate Price|RTR -1 Underworld Connections|RTR -1 Viashino Racketeer|RTR -[sideboard] +[metadata] +Name=RtRGuildRakdos +[main] +1 Annihilating Fire|RTR +1 Ash Zealot|RTR +1 Assassin's Strike|RTR +1 Auger Spree|RTR +1 Batterhorn|RTR +1 Bellows Lizard|RTR +1 Blood Crypt|RTR +1 Bloodfray Giant|RTR +1 Catacomb Slug|RTR +1 Chaos Imps|RTR +1 Civic Saber|RTR +1 Cobblebrute|RTR +1 Codex Shredder|RTR +1 Cremate|RTR +1 Cryptborn Horror|RTR +1 Daggerdrome Imp|RTR +1 Dark Revenant|RTR +1 Dead Reveler|RTR +1 Desecration Demon|RTR +1 Destroy the Evidence|RTR +1 Deviant Glee|RTR +1 Drainpipe Vermin|RTR +1 Dreadbore|RTR +1 Explosive Impact|RTR +1 Goblin Rally|RTR +1 Gore-House Chainwalker|RTR +1 Grave Betrayal|RTR +1 Grim Roustabout|RTR +1 Guild Feud|RTR +1 Guttersnipe|RTR +1 Havoc Festival|RTR +1 Hellhole Flailer|RTR +1 Launch Party|RTR +1 Lobber Crew|RTR +1 Mind Rot|RTR +1 Minotaur Aggressor|RTR +1 Ogre Jailbreaker|RTR +1 Pack Rat|RTR +1 Perilous Shadow|RTR +1 Pyroconvergence|RTR +1 Racecourse Fury|RTR +1 Rakdos Cackler|RTR +1 Rakdos Charm|RTR +1 Rakdos Keyrune|RTR +1 Rakdos Ragemutt|RTR +1 Rakdos Ringleader|RTR +1 Rakdos Shred-Freak|RTR +1 Rakdos, Lord of Riots|RTR +1 Rix Maadi Guildmage|RTR +1 Shrieking Affliction|RTR +1 Skull Rend|RTR +1 Slaughter Games|RTR +1 Slum Reaper|RTR +1 Spawn of Rix Maadi|RTR +1 Splatter Thug|RTR +1 Stab Wound|RTR +1 Street Sweeper|RTR +1 Survey the Wreckage|RTR +1 Tablet of the Guilds|RTR +1 Tavern Swindler|RTR +1 Tenement Crasher|RTR +1 Thrill-Kill Assassin|RTR +1 Traitorous Instinct|RTR +1 Ultimate Price|RTR +1 Underworld Connections|RTR +1 Viashino Racketeer|RTR +[sideboard] diff --git a/res/decks/cube/RtRGuildSelesnya.dck b/res/cube/RtRGuildSelesnya.dck similarity index 95% rename from res/decks/cube/RtRGuildSelesnya.dck rename to res/cube/RtRGuildSelesnya.dck index d21b0126ada..f22a4f80adb 100644 --- a/res/decks/cube/RtRGuildSelesnya.dck +++ b/res/cube/RtRGuildSelesnya.dck @@ -1,71 +1,71 @@ -[metadata] -Name=RtRGuildSelesnya -[main] -1 Aerial Predation|RTR -1 Archweaver|RTR -1 Armory Guard|RTR -1 Arrest|RTR -1 Avenging Arrow|RTR -1 Axebane Guardian|RTR -1 Axebane Stag|RTR -1 Bazaar Krovod|RTR -1 Brushstrider|RTR -1 Call of the Conclave|RTR -1 Centaur Healer|RTR -1 Centaur's Herald|RTR -1 Chorus of Might|RTR -1 Civic Saber|RTR -1 Codex Shredder|RTR -1 Collective Blessing|RTR -1 Common Bond|RTR -1 Concordia Pegasus|RTR -1 Coursers' Accord|RTR -1 Death's Presence|RTR -1 Druid's Deliverance|RTR -1 Dryad Militant|RTR -1 Ethereal Armor|RTR -1 Eyes in the Skies|RTR -1 Fencing Ace|RTR -1 Gatecreeper Vine|RTR -1 Giant Growth|RTR -1 Gobbling Ooze|RTR -1 Growing Ranks|RTR -1 Heroes' Reunion|RTR -1 Horncaller's Chant|RTR -1 Keening Apparition|RTR -1 Knightly Valor|RTR -1 Loxodon Smiter|RTR -1 Mana Bloom|RTR -1 Oak Street Innkeeper|RTR -1 Palisade Giant|RTR -1 Phantom General|RTR -1 Precinct Captain|RTR -1 Rest in Peace|RTR -1 Risen Sanctuary|RTR -1 Rootborn Defenses|RTR -1 Rubbleback Rhino|RTR -1 Savage Surge|RTR -1 Security Blockade|RTR -1 Seek the Horizon|RTR -1 Selesnya Charm|RTR -1 Selesnya Keyrune|RTR -1 Selesnya Sentry|RTR -1 Seller of Songbirds|RTR -1 Slime Molding|RTR -1 Soul Tithe|RTR -1 Sphere of Safety|RTR -1 Street Sweeper|RTR -1 Sundering Growth|RTR -1 Sunspire Griffin|RTR -1 Swift Justice|RTR -1 Tablet of the Guilds|RTR -1 Temple Garden|RTR -1 Towering Indrik|RTR -1 Trained Caracal|RTR -1 Trostani's Judgment|RTR -1 Trostani, Selesnya's Voice|RTR -1 Urban Burgeoning|RTR -1 Vitu-Ghazi Guildmage|RTR -1 Wayfaring Temple|RTR -1 Wild Beastmaster|RTR -[sideboard] +[metadata] +Name=RtRGuildSelesnya +[main] +1 Aerial Predation|RTR +1 Archweaver|RTR +1 Armory Guard|RTR +1 Arrest|RTR +1 Avenging Arrow|RTR +1 Axebane Guardian|RTR +1 Axebane Stag|RTR +1 Bazaar Krovod|RTR +1 Brushstrider|RTR +1 Call of the Conclave|RTR +1 Centaur Healer|RTR +1 Centaur's Herald|RTR +1 Chorus of Might|RTR +1 Civic Saber|RTR +1 Codex Shredder|RTR +1 Collective Blessing|RTR +1 Common Bond|RTR +1 Concordia Pegasus|RTR +1 Coursers' Accord|RTR +1 Death's Presence|RTR +1 Druid's Deliverance|RTR +1 Dryad Militant|RTR +1 Ethereal Armor|RTR +1 Eyes in the Skies|RTR +1 Fencing Ace|RTR +1 Gatecreeper Vine|RTR +1 Giant Growth|RTR +1 Gobbling Ooze|RTR +1 Growing Ranks|RTR +1 Heroes' Reunion|RTR +1 Horncaller's Chant|RTR +1 Keening Apparition|RTR +1 Knightly Valor|RTR +1 Loxodon Smiter|RTR +1 Mana Bloom|RTR +1 Oak Street Innkeeper|RTR +1 Palisade Giant|RTR +1 Phantom General|RTR +1 Precinct Captain|RTR +1 Rest in Peace|RTR +1 Risen Sanctuary|RTR +1 Rootborn Defenses|RTR +1 Rubbleback Rhino|RTR +1 Savage Surge|RTR +1 Security Blockade|RTR +1 Seek the Horizon|RTR +1 Selesnya Charm|RTR +1 Selesnya Keyrune|RTR +1 Selesnya Sentry|RTR +1 Seller of Songbirds|RTR +1 Slime Molding|RTR +1 Soul Tithe|RTR +1 Sphere of Safety|RTR +1 Street Sweeper|RTR +1 Sundering Growth|RTR +1 Sunspire Griffin|RTR +1 Swift Justice|RTR +1 Tablet of the Guilds|RTR +1 Temple Garden|RTR +1 Towering Indrik|RTR +1 Trained Caracal|RTR +1 Trostani's Judgment|RTR +1 Trostani, Selesnya's Voice|RTR +1 Urban Burgeoning|RTR +1 Vitu-Ghazi Guildmage|RTR +1 Wayfaring Temple|RTR +1 Wild Beastmaster|RTR +[sideboard] diff --git a/res/decks/cube/RtRPromoAzorius.dck b/res/cube/RtRPromoAzorius.dck similarity index 94% rename from res/decks/cube/RtRPromoAzorius.dck rename to res/cube/RtRPromoAzorius.dck index ab38d37c363..b14c4cf3df2 100644 --- a/res/decks/cube/RtRPromoAzorius.dck +++ b/res/cube/RtRPromoAzorius.dck @@ -1,6 +1,6 @@ -[metadata] -Name=RtRPromoAzorius -[main] -1 Archon of the Triumvirate|RTR -1 Azorius Guildgate|RTR -[sideboard] +[metadata] +Name=RtRPromoAzorius +[main] +1 Archon of the Triumvirate|RTR +1 Azorius Guildgate|RTR +[sideboard] diff --git a/res/decks/cube/RtRPromoGolgari.dck b/res/cube/RtRPromoGolgari.dck similarity index 94% rename from res/decks/cube/RtRPromoGolgari.dck rename to res/cube/RtRPromoGolgari.dck index 60bae453c52..6fc7a18fb0c 100644 --- a/res/decks/cube/RtRPromoGolgari.dck +++ b/res/cube/RtRPromoGolgari.dck @@ -1,6 +1,6 @@ -[metadata] -Name=RtRPromoGolgari -[main] -1 Corpsejack Menace|RTR -1 Golgari Guildgate|RTR -[sideboard] +[metadata] +Name=RtRPromoGolgari +[main] +1 Corpsejack Menace|RTR +1 Golgari Guildgate|RTR +[sideboard] diff --git a/res/decks/cube/RtRPromoIzzet.dck b/res/cube/RtRPromoIzzet.dck similarity index 94% rename from res/decks/cube/RtRPromoIzzet.dck rename to res/cube/RtRPromoIzzet.dck index 4f75491b407..d4fb85dc820 100644 --- a/res/decks/cube/RtRPromoIzzet.dck +++ b/res/cube/RtRPromoIzzet.dck @@ -1,6 +1,6 @@ -[metadata] -Name=RtRPromoIzzet -[main] -1 Hypersonic Dragon|RTR -1 Izzet Guildgate|RTR -[sideboard] +[metadata] +Name=RtRPromoIzzet +[main] +1 Hypersonic Dragon|RTR +1 Izzet Guildgate|RTR +[sideboard] diff --git a/res/decks/cube/RtRPromoRakdos.dck b/res/cube/RtRPromoRakdos.dck similarity index 94% rename from res/decks/cube/RtRPromoRakdos.dck rename to res/cube/RtRPromoRakdos.dck index 88bda70d232..dce3d2d606b 100644 --- a/res/decks/cube/RtRPromoRakdos.dck +++ b/res/cube/RtRPromoRakdos.dck @@ -1,6 +1,6 @@ -[metadata] -Name=RtRPromoRakdos -[main] -1 Carnival Hellsteed|RTR -1 Rakdos Guildgate|RTR -[sideboard] +[metadata] +Name=RtRPromoRakdos +[main] +1 Carnival Hellsteed|RTR +1 Rakdos Guildgate|RTR +[sideboard] diff --git a/res/decks/cube/RtRPromoSelesnya.dck b/res/cube/RtRPromoSelesnya.dck similarity index 94% rename from res/decks/cube/RtRPromoSelesnya.dck rename to res/cube/RtRPromoSelesnya.dck index ff8dc5c43e5..6485a2a46ab 100644 --- a/res/decks/cube/RtRPromoSelesnya.dck +++ b/res/cube/RtRPromoSelesnya.dck @@ -1,6 +1,6 @@ -[metadata] -Name=RtRPromoSelesnya -[main] -1 Grove of the Guardian|RTR -1 Selesnya Guildgate|RTR -[sideboard] +[metadata] +Name=RtRPromoSelesnya +[main] +1 Grove of the Guardian|RTR +1 Selesnya Guildgate|RTR +[sideboard] diff --git a/res/decks/SkieraCube-cards_not_supported_yet.txt b/res/cube/SkieraCube-cards_not_supported_yet.txt similarity index 94% rename from res/decks/SkieraCube-cards_not_supported_yet.txt rename to res/cube/SkieraCube-cards_not_supported_yet.txt index 21fe2096214..872cbf981a8 100644 --- a/res/decks/SkieraCube-cards_not_supported_yet.txt +++ b/res/cube/SkieraCube-cards_not_supported_yet.txt @@ -1,23 +1,23 @@ -1 Banefire -1 Chain Lightning -1 Desertion -1 Duplicant -1 Eight-and-a-Half-Tails -1 Fire/Ice -1 Gifts Ungiven -1 Gilded Drake -1 Greater Gargadon -1 Karn Liberated -1 Kira, Great Glass-Spinner -1 Mindslaver -1 Necromancy -1 Precursor Golem -1 Rout -1 Searing Blaze -1 Sewer Nemesis -1 Shelldock Isle -1 Sorin Markov -1 Spellskite -1 Venser, Shaper Savant -1 Vesuvan Shapeshifter -1 Willbender +1 Banefire +1 Chain Lightning +1 Desertion +1 Duplicant +1 Eight-and-a-Half-Tails +1 Fire/Ice +1 Gifts Ungiven +1 Gilded Drake +1 Greater Gargadon +1 Karn Liberated +1 Kira, Great Glass-Spinner +1 Mindslaver +1 Necromancy +1 Precursor Golem +1 Rout +1 Searing Blaze +1 Sewer Nemesis +1 Shelldock Isle +1 Sorin Markov +1 Spellskite +1 Venser, Shaper Savant +1 Vesuvan Shapeshifter +1 Willbender diff --git a/res/decks/cube/SkieraCube.dck b/res/cube/SkieraCube.dck similarity index 95% rename from res/decks/cube/SkieraCube.dck rename to res/cube/SkieraCube.dck index e3bd51a9f35..2f13d90188e 100644 --- a/res/decks/cube/SkieraCube.dck +++ b/res/cube/SkieraCube.dck @@ -1,521 +1,521 @@ -[metadata] -Name=SkieraCube -[main] -1 Abyssal Persecutor|WWK -1 Academy Ruins|TSP -1 Accorder Paladin|MBS -1 Acidic Slime|M12 -1 AEther Adept|M12 -1 AEther Vial|DST -1 Aftershock|TMP -1 Ajani Goldmane|M11 -1 Ajani Vengeant|ALA -1 Akroma's Vengeance|ONS -1 Albino Troll|USG -1 Ancestral Vision|TSP -1 Ancient Tomb|TMP -1 Animate Dead|LEB -1 Ankh of Mishra|LEB -1 Arbor Elf|WWK -1 Arc Lightning|USG -1 Arc Trail|SOM -1 Arcane Denial|ALL -1 Arid Mesa|ZEN -1 Armageddon|S99 -1 Austere Command|LRW -1 Avalanche Riders|ULG -1 Badlands|LEB -1 Balance|LEB -1 Bane of the Living|LGN -1 Baneslayer Angel|M11 -1 Barter in Blood|MRD -1 Basilisk Collar|WWK -1 Basking Rootwalla|TOR -1 Batterskull|NPH -1 Battlefield Forge|APC -1 Bayou|LEB -1 Beast Within|NPH -1 Berserk|LEB -1 Birds of Paradise|RAV -1 Bitterblossom|MOR -1 Black Knight|M11 -1 Black Sun's Zenith|MBS -1 Black Vise|LEB -1 Blade Splicer|NPH -1 Blastoderm|NMS -1 Blightning|ALA -1 Blistering Firecat|ONS -1 Blood Crypt|DIS -1 Blood Knight|PLC -1 Bloodbraid Elf|ARB -1 Bloodghast|ZEN -1 Bloodgift Demon|ISD -1 Bloodstained Mire|ONS -1 Bogardan Hellkite|TSP -1 Bone Shredder|ULG -1 Bonehoard|MBS -1 Bonesplitter|MRD -1 Braids, Cabal Minion|ODY -1 Brainstorm|MMQ -1 Bramblecrush|ISD -1 Breeding Pool|DIS -1 Bribery|MMQ -1 Brimstone Volley|ISD -1 Brion Stoutarm|LRW -1 Burst Lightning|ZEN -1 Calciderm|PLC -1 Call of the Herd|TSB -1 Capsize|TMP -1 Carnophage|EXO -1 Catastrophe|USG -1 Celestial Colonnade|WWK -1 Chainer's Edict|TOR -1 Chameleon Colossus|MOR -1 Chandra Nalaar|M11 -1 Chandra's Phoenix|M12 -1 Chandra, the Firebrand|M12 -1 Char|RAV -1 Chimeric Mass|SOM -1 Chrome Mox|MRD -1 City of Brass|CHR -1 Cloudgoat Ranger|LRW -1 Coalition Relic|FUT -1 Compulsive Research|RAV -1 Condemn|M11 -1 Condescend|5DN -1 Consecrated Sphinx|MBS -1 Consuming Vapors|ROE -1 Control Magic|LEB -1 Counterspell|TMP -1 Crater Hellion|USG -1 Creeping Mold|VIS -1 Creeping Tar Pit|WWK -1 Crucible of Worlds|5DN -1 Cryptic Command|LRW -1 Crystal Ball|M11 -1 Crystal Shard|MRD -1 Cultivate|M11 -1 Cursed Scroll|TMP -1 Damnation|PLC -1 Dark Confidant|RAV -1 Dark Ritual|USG -1 Dauthi Horror|TMP -1 Dauthi Marauder|TMP -1 Dauthi Slayer|TSB -1 Day of Judgment|ZEN -1 Daze|NMS -1 Decree of Justice|SCG -1 Deep Analysis|TOR -1 Demonic Tutor|LEB -1 Deranged Hermit|ULG -1 Devil's Play|ISD -1 Diabolic Edict|TMP -1 Diregraf Ghoul|ISD -1 Disenchant|USG -1 Disfigure|ZEN -1 Dismember|NPH -1 Dismiss|TMP -1 Doom Blade|M12 -1 Drana, Kalastria Bloodchief|ROE -1 Duress|USG -1 Dust Bowl|MMQ -1 Earthquake|POR -1 Edric, Spymaster of Trest|COM -1 Electrolyze|GPT -1 Elite Vanguard|M12 -1 Elspeth Tirel|SOM -1 Elspeth, Knight-Errant|ALA -1 Ember Hauler|M11 -1 Emeria Angel|ZEN -1 Enclave Cryptologist|ROE -1 Engineered Explosives|5DN -1 Enlightened Tutor|MIR -1 Entomb|ODY -1 Erratic Portal|EXO -1 Eternal Dragon|SCG -1 Eternal Witness|COM -1 Everflowing Chalice|WWK -1 Evolving Wilds|ROE -1 Exalted Angel|ONS -1 Exhume|USG -1 Fact or Fiction|INV -1 Faith's Fetters|RAV -1 Faithless Looting|DKA -1 Farseek|RAV -1 Fauna Shaman|M11 -1 Fetid Heath|EVE -1 Fiend Hunter|ISD -1 Figure of Destiny|EVE -1 Fire Imp|POR -1 Fireball|M12 -1 Fireblast|VIS -1 Firebolt|ODY -1 Fireslinger|TMP -1 Flame Javelin|SHM -1 Flametongue Kavu|PLS -1 Flickerwisp|EVE -1 Flooded Strand|ONS -1 Forbid|EXO -1 Force of Will|ALL -1 Force Spike|LEG -1 Forked Bolt|ROE -1 Frantic Search|ULG -1 Frost Titan|M12 -1 Fume Spitter|SOM -1 Fyndhorn Elves|ICE -1 Garruk Wildspeaker|M11 -1 Garruk, Primal Hunter|M12 -1 Geist of Saint Traft|ISD -1 Gelectrode|GPT -1 Gemstone Mine|WTH -1 Genesis|JUD -1 Ghitu Slinger|ULG -1 Giant Solifuge|GPT -1 Gideon Jura|ROE -1 Glen Elendra Archmage|EVE -1 Glorious Anthem|USG -1 Go for the Throat|MBS -1 Goblin Guide|ZEN -1 Goblin Patrol|USG -1 Goblin Ruinblaster|ZEN -1 Godless Shrine|GPT -1 Goldmeadow Harrier|LRW -1 Grafted Wargear|5DN -1 Grand Arbiter Augustin IV|DIS -1 Grand Coliseum|ONS -1 Grave Titan|M12 -1 Gravecrawler|DKA -1 Graveborn Muse|LGN -1 Great Sable Stag|M10 -1 Green Sun's Zenith|MBS -1 Grim Lavamancer|TOR -1 Grim Monolith|ULG -1 Hallowed Fountain|DIS -1 Harmonize|PLC -1 Harrow|ZEN -1 Hearth Kami|CHK -1 Hell's Thunder|ALA -1 Hellrider|DKA -1 Hellspark Elemental|CFX -1 Hero of Bladehold|MBS -1 Hero of Oxid Ridge|MBS -1 Hymn to Tourach|FEM -1 Hypnotic Specter|M10 -1 Icy Manipulator|MRD -1 Impulse|VIS -1 Incinerate|MIR -1 Indrik Stomphowler|DIS -1 Inferno Titan|M12 -1 Inkwell Leviathan|CFX -1 Innocent Blood|ODY -1 Inquisition of Kozilek|ROE -1 Into the Roil|ZEN -1 Isamaru, Hound of Konda|CHK -1 Isochron Scepter|MRD -1 Izzet Boilerworks|GPT -1 Jace Beleren|M11 -1 Jace, Memory Adept|M12 -1 Jace, the Mind Sculptor|WWK -1 Jackal Pup|TMP -1 Joraga Treespeaker|ROE -1 Journey to Nowhere|ZEN -1 Juggernaut|M11 -1 Jungle Lion|POR -1 Kargan Dragonlord|ROE -1 Karmic Guide|ULG -1 Keiga, the Tide Star|CHK -1 Keldon Champion|UDS -1 Keldon Marauders|PLC -1 Keldon Vandals|UDS -1 Kird Ape|ARN -1 Kitchen Finks|SHM -1 Knight of Meadowgrain|LRW -1 Knight Of The Reliquary|CFX -1 Knight of the White Orchid|ALA -1 Kodama of the North Tree|CHK -1 Kodama's Reach|COM -1 Kokusho, the Evening Star|CHK -1 Kor Sanctifiers|ZEN -1 Kor Skyfisher|ZEN -1 Koth of the Hammer|SOM -1 Krosan Grip|TSP -1 Krosan Tusker|ONS -1 Land Tax|LEG -1 Lavaclaw Reaches|WWK -1 Library of Alexandria|ARN -1 Life from the Loam|RAV -1 Lightning Bolt|M11 -1 Lightning Greaves|MRD -1 Lightning Helix|RAV -1 Liliana of the Veil|ISD -1 Liliana Vess|M11 -1 Liliana's Specter|M11 -1 Llanowar Elves|M12 -1 Loam Lion|WWK -1 Lodestone Golem|WWK -1 Lone Missionary|ROE -1 Looter il-Kor|TSP -1 Lotus Cobra|ZEN -1 Loxodon Warhammer|MRD -1 Maelstrom Pulse|ARB -1 Magma Jet|5DN -1 Makeshift Mannequin|LRW -1 Man-o'-War|VIS -1 Mana Drain|LEG -1 Mana Leak|STH -1 Mana Tithe|PLC -1 Mana Vault|LEB -1 Manic Vandal|M12 -1 Marsh Flats|ZEN -1 Martial Coup|CFX -1 Masticore|UDS -1 Maze of Ith|DRK -1 Meloku the Clouded Mirror|CHK -1 Memory Jar|ULG -1 Memory Lapse|MIR -1 Merfolk Looter|M12 -1 Mikaeus, the Lunarch|ISD -1 Mimic Vat|SOM -1 Mind Stone|WTH -1 Mind Twist|LEB -1 Mirari's Wake|JUD -1 Mire Boa|PLC -1 Mirran Crusader|MBS -1 Mirror Entity|LRW -1 Miscalculation|ULG -1 Mishra's Factory|ATQ -1 Mistral Charger|DIS -1 Misty Rainforest|ZEN -1 Moat|LEG -1 Mogg Fanatic|TMP -1 Molten Rain|MRD -1 Molten-Tail Masticore|SOM -1 Moltensteel Dragon|NPH -1 Morphling|USG -1 Mortify|GPT -1 Mother of Runes|ULG -1 Mox Diamond|STH -1 Mulldrifter|LRW -1 Murderous Redcap|SHM -1 Mutavault|MOR -1 Myr Battlesphere|SOM -1 Mystic Snake|TSB -1 Mystical Tutor|MIR -1 Nantuko Shade|TOR -1 Nantuko Vigilante|LGN -1 Naturalize|ROE -1 Nekrataal|VIS -1 Nether Void|LEG -1 Nevinyrral's Disk|LEB -1 Nezumi Graverobber|CHK -1 Night's Whisper|5DN -1 Noble Hierarch|CFX -1 Noxious Revival|NPH -1 Ob Nixilis, the Fallen|ZEN -1 Oblivion Ring|M12 -1 Oblivion Stone|MRD -1 Obstinate Baloth|M11 -1 Ohran Viper|CSP -1 Olivia Voldaren|ISD -1 Oona's Prowler|LRW -1 Oona, Queen of the Fae|SHM -1 Oracle of Mul Daya|ZEN -1 Overgrown Tomb|RAV -1 Paladin en-Vec|EXO -1 Palinchron|ULG -1 Parallax Wave|NMS -1 Path to Exile|COM -1 Pernicious Deed|APC -1 Pestermite|LRW -1 Phantasmal Image|M12 -1 Phantom Centaur|JUD -1 Phyrexian Arena|APC -1 Phyrexian Metamorph|NPH -1 Phyrexian Processor|USG -1 Phyrexian Revoker|MBS -1 Pillage|ALL -1 Pithing Needle|SOK -1 Plague Sliver|TSP -1 Plateau|LEB -1 Plated Geopede|ZEN -1 Plow Under|UDS -1 Polluted Delta|ONS -1 Ponder|M12 -1 Porcelain Legionnaire|NPH -1 Pouncing Jaguar|USG -1 Preordain|M11 -1 Profane Command|LRW -1 Prophetic Bolt|COM -1 Psionic Blast|TSB -1 Psychatog|ODY -1 Puppeteer Clique|SHM -1 Putrefy|RAV -1 Putrid Leech|ARB -1 Pyroclasm|POR -1 Qasali Pridemage|ARB -1 Raging Ravine|WWK -1 Rampaging Baloths|ZEN -1 Rancor|ULG -1 Ratchet Bomb|SOM -1 Razormane Masticore|5DN -1 Reanimate|TMP -1 Recurring Nightmare|EXO -1 Red Sun's Zenith|MBS -1 Reflecting Pool|TMP -1 Regrowth|LEB -1 Remand|RAV -1 Repeal|GPT -1 Reveillark|MOR -1 Rift Bolt|TSP -1 Ring of Gix|ULG -1 Rishadan Port|MMQ -1 Rite of Replication|ZEN -1 River Boa|ZEN -1 Rofellos, Llanowar Emissary|UDS -1 Sacred Foundry|RAV -1 Sakura-Tribe Elder|COM -1 Sarcomancy|TMP -1 Sarkhan Vol|ALA -1 Savannah|LEB -1 Savannah Lions|LEB -1 Scalding Tarn|ZEN -1 Scavenging Ooze|COM -1 Scroll Rack|TMP -1 Scrubland|LEB -1 Sea Gate Oracle|ROE -1 Seal of Cleansing|NMS -1 Sensei's Divining Top|CHK -1 Serendib Efreet|ARN -1 Shadowmage Infiltrator|TSB -1 Shriekmaw|LRW -1 Siege-Gang Commander|SCG -1 Silver Knight|SCG -1 Simic Growth Chamber|DIS -1 Simic Sky Swallower|DIS -1 Sinkhole|LEB -1 Skinrender|SOM -1 Skinshifter|M12 -1 Skullclamp|DST -1 Slagstorm|MBS -1 Smash to Smithereens|SHM -1 Smokestack|USG -1 Snapcaster Mage|ISD -1 Snuff Out|MMQ -1 Sol Ring|LEB -1 Solemn Simulacrum|MRD -1 Soltari Champion|STH -1 Soltari Monk|TMP -1 Soltari Priest|TSB -1 Soltari Trooper|TMP -1 Sorin, Lord of Innistrad|DKA -1 Sower of Temptation|LRW -1 Spectral Procession|SHM -1 Sphinx of Jwar Isle|ZEN -1 Spikeshot Elder|SOM -1 Spined Thopter|NPH -1 Squee, Goblin Nabob|MMQ -1 Staggershock|ROE -1 Steam Vents|GPT -1 Steel Hellkite|SOM -1 Steppe Lynx|ZEN -1 Stillmoon Cavalier|EVE -1 Stirring Wildwood|WWK -1 Stomping Ground|GPT -1 Stone Rain|TMP -1 Stoneforge Mystic|WWK -1 Stormbind|TSB -1 Stormblood Berserker|M12 -1 Stormfront Pegasus|M12 -1 Strangleroot Geist|DKA -1 Strip Mine|ATQ -1 Stromkirk Noble|ISD -1 Student of Warfare|ROE -1 Stupor|TSB -1 Sulfuric Vortex|SCG -1 Sun Titan|M12 -1 Sundering Titan|DST -1 Survival of the Fittest|EXO -1 Sword of Body and Mind|SOM -1 Sword of Feast and Famine|MBS -1 Sword of Fire and Ice|DST -1 Sword of Light and Shadow|DST -1 Sword of War and Peace|NPH -1 Swords to Plowshares|LEB -1 Sylvan Library|LEG -1 Taiga|LEB -1 Tangle Wire|NMS -1 Tarmogoyf|FUT -1 Teferi, Mage of Zhalfir|TSP -1 Temple Garden|RAV -1 Temporal Isolation|TSP -1 Terminate|PLS -1 Terramorphic Expanse|TSP -1 Tezzeret the Seeker|ALA -1 Tezzeret, Agent of Bolas|MBS -1 Thalia, Guardian of Thraben|DKA -1 Thawing Glaciers|ALL -1 Thieving Magpie|UDS -1 Thirst for Knowledge|MRD -1 Thornling|CFX -1 Thoughtseize|LRW -1 Thrun, the Last Troll|MBS -1 Time Spiral|USG -1 Tinker|ULG -1 Tombstalker|FUT -1 Torch Fiend|DKA -1 Treachery|UDS -1 Treetop Village|ULG -1 Triskelion|MRD -1 Troll Ascetic|MRD -1 Tropical Island|LEB -1 Trygon Predator|DIS -1 Tundra|LEB -1 Twilight Mire|EVE -1 Twinblade Slasher|EVE -1 Uktabi Orangutan|VIS -1 Umezawa's Jitte|BOK -1 Underground Sea|LEB -1 Upheaval|ODY -1 Vampire Hexmage|ZEN -1 Vampire Interloper|ISD -1 Vampire Lacerator|ZEN -1 Vampire Nighthawk|ZEN -1 Vampiric Tutor|VIS -1 Vedalken Shackles|5DN -1 Vendilion Clique|MOR -1 Vengevine|ROE -1 Venser, the Sojourner|SOM -1 Verdant Catacombs|ZEN -1 Vindicate|APC -1 Vines of Vastwood|ZEN -1 Viridian Shaman|MRD -1 Volcanic Hammer|S99 -1 Volcanic Island|LEB -1 Volrath's Stronghold|STH -1 Vorapede|DKA -1 Wake Thrasher|EVE -1 Wall of Blossoms|STH -1 Wall of Denial|COM -1 Wall of Omens|ROE -1 Wall of Roots|TSB -1 Wasteland|TMP -1 Waterfront Bouncer|MMQ -1 Watery Grave|RAV -1 Weathered Wayfarer|ONS -1 Wheel of Fortune|LEB -1 Wickerbough Elder|EVE -1 Wild Dogs|USG -1 Wild Mongrel|ODY -1 Wild Nacatl|ALA -1 Wildfire|USG -1 Windswept Heath|ONS -1 Winter Orb|LEB -1 Wooded Foothills|ONS -1 Woodfall Primus|SHM -1 Wrath of God|POR -1 Wurmcoil Engine|SOM -1 Yavimaya Elder|UDS -1 Yawgmoth's Will|USG -1 Yosei, the Morning Star|CHK -1 Zo-Zu the Punisher|CHK -[sideboard] +[metadata] +Name=SkieraCube +[main] +1 Abyssal Persecutor|WWK +1 Academy Ruins|TSP +1 Accorder Paladin|MBS +1 Acidic Slime|M12 +1 AEther Adept|M12 +1 AEther Vial|DST +1 Aftershock|TMP +1 Ajani Goldmane|M11 +1 Ajani Vengeant|ALA +1 Akroma's Vengeance|ONS +1 Albino Troll|USG +1 Ancestral Vision|TSP +1 Ancient Tomb|TMP +1 Animate Dead|LEB +1 Ankh of Mishra|LEB +1 Arbor Elf|WWK +1 Arc Lightning|USG +1 Arc Trail|SOM +1 Arcane Denial|ALL +1 Arid Mesa|ZEN +1 Armageddon|S99 +1 Austere Command|LRW +1 Avalanche Riders|ULG +1 Badlands|LEB +1 Balance|LEB +1 Bane of the Living|LGN +1 Baneslayer Angel|M11 +1 Barter in Blood|MRD +1 Basilisk Collar|WWK +1 Basking Rootwalla|TOR +1 Batterskull|NPH +1 Battlefield Forge|APC +1 Bayou|LEB +1 Beast Within|NPH +1 Berserk|LEB +1 Birds of Paradise|RAV +1 Bitterblossom|MOR +1 Black Knight|M11 +1 Black Sun's Zenith|MBS +1 Black Vise|LEB +1 Blade Splicer|NPH +1 Blastoderm|NMS +1 Blightning|ALA +1 Blistering Firecat|ONS +1 Blood Crypt|DIS +1 Blood Knight|PLC +1 Bloodbraid Elf|ARB +1 Bloodghast|ZEN +1 Bloodgift Demon|ISD +1 Bloodstained Mire|ONS +1 Bogardan Hellkite|TSP +1 Bone Shredder|ULG +1 Bonehoard|MBS +1 Bonesplitter|MRD +1 Braids, Cabal Minion|ODY +1 Brainstorm|MMQ +1 Bramblecrush|ISD +1 Breeding Pool|DIS +1 Bribery|MMQ +1 Brimstone Volley|ISD +1 Brion Stoutarm|LRW +1 Burst Lightning|ZEN +1 Calciderm|PLC +1 Call of the Herd|TSB +1 Capsize|TMP +1 Carnophage|EXO +1 Catastrophe|USG +1 Celestial Colonnade|WWK +1 Chainer's Edict|TOR +1 Chameleon Colossus|MOR +1 Chandra Nalaar|M11 +1 Chandra's Phoenix|M12 +1 Chandra, the Firebrand|M12 +1 Char|RAV +1 Chimeric Mass|SOM +1 Chrome Mox|MRD +1 City of Brass|CHR +1 Cloudgoat Ranger|LRW +1 Coalition Relic|FUT +1 Compulsive Research|RAV +1 Condemn|M11 +1 Condescend|5DN +1 Consecrated Sphinx|MBS +1 Consuming Vapors|ROE +1 Control Magic|LEB +1 Counterspell|TMP +1 Crater Hellion|USG +1 Creeping Mold|VIS +1 Creeping Tar Pit|WWK +1 Crucible of Worlds|5DN +1 Cryptic Command|LRW +1 Crystal Ball|M11 +1 Crystal Shard|MRD +1 Cultivate|M11 +1 Cursed Scroll|TMP +1 Damnation|PLC +1 Dark Confidant|RAV +1 Dark Ritual|USG +1 Dauthi Horror|TMP +1 Dauthi Marauder|TMP +1 Dauthi Slayer|TSB +1 Day of Judgment|ZEN +1 Daze|NMS +1 Decree of Justice|SCG +1 Deep Analysis|TOR +1 Demonic Tutor|LEB +1 Deranged Hermit|ULG +1 Devil's Play|ISD +1 Diabolic Edict|TMP +1 Diregraf Ghoul|ISD +1 Disenchant|USG +1 Disfigure|ZEN +1 Dismember|NPH +1 Dismiss|TMP +1 Doom Blade|M12 +1 Drana, Kalastria Bloodchief|ROE +1 Duress|USG +1 Dust Bowl|MMQ +1 Earthquake|POR +1 Edric, Spymaster of Trest|COM +1 Electrolyze|GPT +1 Elite Vanguard|M12 +1 Elspeth Tirel|SOM +1 Elspeth, Knight-Errant|ALA +1 Ember Hauler|M11 +1 Emeria Angel|ZEN +1 Enclave Cryptologist|ROE +1 Engineered Explosives|5DN +1 Enlightened Tutor|MIR +1 Entomb|ODY +1 Erratic Portal|EXO +1 Eternal Dragon|SCG +1 Eternal Witness|COM +1 Everflowing Chalice|WWK +1 Evolving Wilds|ROE +1 Exalted Angel|ONS +1 Exhume|USG +1 Fact or Fiction|INV +1 Faith's Fetters|RAV +1 Faithless Looting|DKA +1 Farseek|RAV +1 Fauna Shaman|M11 +1 Fetid Heath|EVE +1 Fiend Hunter|ISD +1 Figure of Destiny|EVE +1 Fire Imp|POR +1 Fireball|M12 +1 Fireblast|VIS +1 Firebolt|ODY +1 Fireslinger|TMP +1 Flame Javelin|SHM +1 Flametongue Kavu|PLS +1 Flickerwisp|EVE +1 Flooded Strand|ONS +1 Forbid|EXO +1 Force of Will|ALL +1 Force Spike|LEG +1 Forked Bolt|ROE +1 Frantic Search|ULG +1 Frost Titan|M12 +1 Fume Spitter|SOM +1 Fyndhorn Elves|ICE +1 Garruk Wildspeaker|M11 +1 Garruk, Primal Hunter|M12 +1 Geist of Saint Traft|ISD +1 Gelectrode|GPT +1 Gemstone Mine|WTH +1 Genesis|JUD +1 Ghitu Slinger|ULG +1 Giant Solifuge|GPT +1 Gideon Jura|ROE +1 Glen Elendra Archmage|EVE +1 Glorious Anthem|USG +1 Go for the Throat|MBS +1 Goblin Guide|ZEN +1 Goblin Patrol|USG +1 Goblin Ruinblaster|ZEN +1 Godless Shrine|GPT +1 Goldmeadow Harrier|LRW +1 Grafted Wargear|5DN +1 Grand Arbiter Augustin IV|DIS +1 Grand Coliseum|ONS +1 Grave Titan|M12 +1 Gravecrawler|DKA +1 Graveborn Muse|LGN +1 Great Sable Stag|M10 +1 Green Sun's Zenith|MBS +1 Grim Lavamancer|TOR +1 Grim Monolith|ULG +1 Hallowed Fountain|DIS +1 Harmonize|PLC +1 Harrow|ZEN +1 Hearth Kami|CHK +1 Hell's Thunder|ALA +1 Hellrider|DKA +1 Hellspark Elemental|CFX +1 Hero of Bladehold|MBS +1 Hero of Oxid Ridge|MBS +1 Hymn to Tourach|FEM +1 Hypnotic Specter|M10 +1 Icy Manipulator|MRD +1 Impulse|VIS +1 Incinerate|MIR +1 Indrik Stomphowler|DIS +1 Inferno Titan|M12 +1 Inkwell Leviathan|CFX +1 Innocent Blood|ODY +1 Inquisition of Kozilek|ROE +1 Into the Roil|ZEN +1 Isamaru, Hound of Konda|CHK +1 Isochron Scepter|MRD +1 Izzet Boilerworks|GPT +1 Jace Beleren|M11 +1 Jace, Memory Adept|M12 +1 Jace, the Mind Sculptor|WWK +1 Jackal Pup|TMP +1 Joraga Treespeaker|ROE +1 Journey to Nowhere|ZEN +1 Juggernaut|M11 +1 Jungle Lion|POR +1 Kargan Dragonlord|ROE +1 Karmic Guide|ULG +1 Keiga, the Tide Star|CHK +1 Keldon Champion|UDS +1 Keldon Marauders|PLC +1 Keldon Vandals|UDS +1 Kird Ape|ARN +1 Kitchen Finks|SHM +1 Knight of Meadowgrain|LRW +1 Knight Of The Reliquary|CFX +1 Knight of the White Orchid|ALA +1 Kodama of the North Tree|CHK +1 Kodama's Reach|COM +1 Kokusho, the Evening Star|CHK +1 Kor Sanctifiers|ZEN +1 Kor Skyfisher|ZEN +1 Koth of the Hammer|SOM +1 Krosan Grip|TSP +1 Krosan Tusker|ONS +1 Land Tax|LEG +1 Lavaclaw Reaches|WWK +1 Library of Alexandria|ARN +1 Life from the Loam|RAV +1 Lightning Bolt|M11 +1 Lightning Greaves|MRD +1 Lightning Helix|RAV +1 Liliana of the Veil|ISD +1 Liliana Vess|M11 +1 Liliana's Specter|M11 +1 Llanowar Elves|M12 +1 Loam Lion|WWK +1 Lodestone Golem|WWK +1 Lone Missionary|ROE +1 Looter il-Kor|TSP +1 Lotus Cobra|ZEN +1 Loxodon Warhammer|MRD +1 Maelstrom Pulse|ARB +1 Magma Jet|5DN +1 Makeshift Mannequin|LRW +1 Man-o'-War|VIS +1 Mana Drain|LEG +1 Mana Leak|STH +1 Mana Tithe|PLC +1 Mana Vault|LEB +1 Manic Vandal|M12 +1 Marsh Flats|ZEN +1 Martial Coup|CFX +1 Masticore|UDS +1 Maze of Ith|DRK +1 Meloku the Clouded Mirror|CHK +1 Memory Jar|ULG +1 Memory Lapse|MIR +1 Merfolk Looter|M12 +1 Mikaeus, the Lunarch|ISD +1 Mimic Vat|SOM +1 Mind Stone|WTH +1 Mind Twist|LEB +1 Mirari's Wake|JUD +1 Mire Boa|PLC +1 Mirran Crusader|MBS +1 Mirror Entity|LRW +1 Miscalculation|ULG +1 Mishra's Factory|ATQ +1 Mistral Charger|DIS +1 Misty Rainforest|ZEN +1 Moat|LEG +1 Mogg Fanatic|TMP +1 Molten Rain|MRD +1 Molten-Tail Masticore|SOM +1 Moltensteel Dragon|NPH +1 Morphling|USG +1 Mortify|GPT +1 Mother of Runes|ULG +1 Mox Diamond|STH +1 Mulldrifter|LRW +1 Murderous Redcap|SHM +1 Mutavault|MOR +1 Myr Battlesphere|SOM +1 Mystic Snake|TSB +1 Mystical Tutor|MIR +1 Nantuko Shade|TOR +1 Nantuko Vigilante|LGN +1 Naturalize|ROE +1 Nekrataal|VIS +1 Nether Void|LEG +1 Nevinyrral's Disk|LEB +1 Nezumi Graverobber|CHK +1 Night's Whisper|5DN +1 Noble Hierarch|CFX +1 Noxious Revival|NPH +1 Ob Nixilis, the Fallen|ZEN +1 Oblivion Ring|M12 +1 Oblivion Stone|MRD +1 Obstinate Baloth|M11 +1 Ohran Viper|CSP +1 Olivia Voldaren|ISD +1 Oona's Prowler|LRW +1 Oona, Queen of the Fae|SHM +1 Oracle of Mul Daya|ZEN +1 Overgrown Tomb|RAV +1 Paladin en-Vec|EXO +1 Palinchron|ULG +1 Parallax Wave|NMS +1 Path to Exile|COM +1 Pernicious Deed|APC +1 Pestermite|LRW +1 Phantasmal Image|M12 +1 Phantom Centaur|JUD +1 Phyrexian Arena|APC +1 Phyrexian Metamorph|NPH +1 Phyrexian Processor|USG +1 Phyrexian Revoker|MBS +1 Pillage|ALL +1 Pithing Needle|SOK +1 Plague Sliver|TSP +1 Plateau|LEB +1 Plated Geopede|ZEN +1 Plow Under|UDS +1 Polluted Delta|ONS +1 Ponder|M12 +1 Porcelain Legionnaire|NPH +1 Pouncing Jaguar|USG +1 Preordain|M11 +1 Profane Command|LRW +1 Prophetic Bolt|COM +1 Psionic Blast|TSB +1 Psychatog|ODY +1 Puppeteer Clique|SHM +1 Putrefy|RAV +1 Putrid Leech|ARB +1 Pyroclasm|POR +1 Qasali Pridemage|ARB +1 Raging Ravine|WWK +1 Rampaging Baloths|ZEN +1 Rancor|ULG +1 Ratchet Bomb|SOM +1 Razormane Masticore|5DN +1 Reanimate|TMP +1 Recurring Nightmare|EXO +1 Red Sun's Zenith|MBS +1 Reflecting Pool|TMP +1 Regrowth|LEB +1 Remand|RAV +1 Repeal|GPT +1 Reveillark|MOR +1 Rift Bolt|TSP +1 Ring of Gix|ULG +1 Rishadan Port|MMQ +1 Rite of Replication|ZEN +1 River Boa|ZEN +1 Rofellos, Llanowar Emissary|UDS +1 Sacred Foundry|RAV +1 Sakura-Tribe Elder|COM +1 Sarcomancy|TMP +1 Sarkhan Vol|ALA +1 Savannah|LEB +1 Savannah Lions|LEB +1 Scalding Tarn|ZEN +1 Scavenging Ooze|COM +1 Scroll Rack|TMP +1 Scrubland|LEB +1 Sea Gate Oracle|ROE +1 Seal of Cleansing|NMS +1 Sensei's Divining Top|CHK +1 Serendib Efreet|ARN +1 Shadowmage Infiltrator|TSB +1 Shriekmaw|LRW +1 Siege-Gang Commander|SCG +1 Silver Knight|SCG +1 Simic Growth Chamber|DIS +1 Simic Sky Swallower|DIS +1 Sinkhole|LEB +1 Skinrender|SOM +1 Skinshifter|M12 +1 Skullclamp|DST +1 Slagstorm|MBS +1 Smash to Smithereens|SHM +1 Smokestack|USG +1 Snapcaster Mage|ISD +1 Snuff Out|MMQ +1 Sol Ring|LEB +1 Solemn Simulacrum|MRD +1 Soltari Champion|STH +1 Soltari Monk|TMP +1 Soltari Priest|TSB +1 Soltari Trooper|TMP +1 Sorin, Lord of Innistrad|DKA +1 Sower of Temptation|LRW +1 Spectral Procession|SHM +1 Sphinx of Jwar Isle|ZEN +1 Spikeshot Elder|SOM +1 Spined Thopter|NPH +1 Squee, Goblin Nabob|MMQ +1 Staggershock|ROE +1 Steam Vents|GPT +1 Steel Hellkite|SOM +1 Steppe Lynx|ZEN +1 Stillmoon Cavalier|EVE +1 Stirring Wildwood|WWK +1 Stomping Ground|GPT +1 Stone Rain|TMP +1 Stoneforge Mystic|WWK +1 Stormbind|TSB +1 Stormblood Berserker|M12 +1 Stormfront Pegasus|M12 +1 Strangleroot Geist|DKA +1 Strip Mine|ATQ +1 Stromkirk Noble|ISD +1 Student of Warfare|ROE +1 Stupor|TSB +1 Sulfuric Vortex|SCG +1 Sun Titan|M12 +1 Sundering Titan|DST +1 Survival of the Fittest|EXO +1 Sword of Body and Mind|SOM +1 Sword of Feast and Famine|MBS +1 Sword of Fire and Ice|DST +1 Sword of Light and Shadow|DST +1 Sword of War and Peace|NPH +1 Swords to Plowshares|LEB +1 Sylvan Library|LEG +1 Taiga|LEB +1 Tangle Wire|NMS +1 Tarmogoyf|FUT +1 Teferi, Mage of Zhalfir|TSP +1 Temple Garden|RAV +1 Temporal Isolation|TSP +1 Terminate|PLS +1 Terramorphic Expanse|TSP +1 Tezzeret the Seeker|ALA +1 Tezzeret, Agent of Bolas|MBS +1 Thalia, Guardian of Thraben|DKA +1 Thawing Glaciers|ALL +1 Thieving Magpie|UDS +1 Thirst for Knowledge|MRD +1 Thornling|CFX +1 Thoughtseize|LRW +1 Thrun, the Last Troll|MBS +1 Time Spiral|USG +1 Tinker|ULG +1 Tombstalker|FUT +1 Torch Fiend|DKA +1 Treachery|UDS +1 Treetop Village|ULG +1 Triskelion|MRD +1 Troll Ascetic|MRD +1 Tropical Island|LEB +1 Trygon Predator|DIS +1 Tundra|LEB +1 Twilight Mire|EVE +1 Twinblade Slasher|EVE +1 Uktabi Orangutan|VIS +1 Umezawa's Jitte|BOK +1 Underground Sea|LEB +1 Upheaval|ODY +1 Vampire Hexmage|ZEN +1 Vampire Interloper|ISD +1 Vampire Lacerator|ZEN +1 Vampire Nighthawk|ZEN +1 Vampiric Tutor|VIS +1 Vedalken Shackles|5DN +1 Vendilion Clique|MOR +1 Vengevine|ROE +1 Venser, the Sojourner|SOM +1 Verdant Catacombs|ZEN +1 Vindicate|APC +1 Vines of Vastwood|ZEN +1 Viridian Shaman|MRD +1 Volcanic Hammer|S99 +1 Volcanic Island|LEB +1 Volrath's Stronghold|STH +1 Vorapede|DKA +1 Wake Thrasher|EVE +1 Wall of Blossoms|STH +1 Wall of Denial|COM +1 Wall of Omens|ROE +1 Wall of Roots|TSB +1 Wasteland|TMP +1 Waterfront Bouncer|MMQ +1 Watery Grave|RAV +1 Weathered Wayfarer|ONS +1 Wheel of Fortune|LEB +1 Wickerbough Elder|EVE +1 Wild Dogs|USG +1 Wild Mongrel|ODY +1 Wild Nacatl|ALA +1 Wildfire|USG +1 Windswept Heath|ONS +1 Winter Orb|LEB +1 Wooded Foothills|ONS +1 Woodfall Primus|SHM +1 Wrath of God|POR +1 Wurmcoil Engine|SOM +1 Yavimaya Elder|UDS +1 Yawgmoth's Will|USG +1 Yosei, the Morning Star|CHK +1 Zo-Zu the Punisher|CHK +[sideboard] diff --git a/res/preferences/editor.default.preferences b/res/defaults/editor.preferences similarity index 100% rename from res/preferences/editor.default.preferences rename to res/defaults/editor.preferences diff --git a/res/layouts/editor_default.xml b/res/defaults/editor.xml similarity index 100% rename from res/layouts/editor_default.xml rename to res/defaults/editor.xml diff --git a/res/defaults/gauntlet/LOCKED_DotP Preconstructed.dat b/res/defaults/gauntlet/LOCKED_DotP Preconstructed.dat new file mode 100644 index 00000000000..3b869fdb410 Binary files /dev/null and b/res/defaults/gauntlet/LOCKED_DotP Preconstructed.dat differ diff --git a/res/defaults/gauntlet/LOCKED_Swimming With Sharks.dat b/res/defaults/gauntlet/LOCKED_Swimming With Sharks.dat new file mode 100644 index 00000000000..43ce343ef5f Binary files /dev/null and b/res/defaults/gauntlet/LOCKED_Swimming With Sharks.dat differ diff --git a/res/layouts/home_default.xml b/res/defaults/home.xml similarity index 100% rename from res/layouts/home_default.xml rename to res/defaults/home.xml diff --git a/res/layouts/match_default.xml b/res/defaults/match.xml similarity index 100% rename from res/layouts/match_default.xml rename to res/defaults/match.xml diff --git a/res/draft/common.txt b/res/draft/common.txt deleted file mode 100644 index acef2735370..00000000000 --- a/res/draft/common.txt +++ /dev/null @@ -1,106 +0,0 @@ -Akrasan Squire -Alpha Myr -Anarchist -Aven Squire -Azorius Chancery -Battering Sliver -Blade of the Sixth Pride -Blastoderm -Blightning -Bonesplitter Sliver -Brainstorm -Brilliant Halo -Capsize -Carnophage -Cavern Harpy -Child of Night -Cloud of Faeries -Coiled Tinviper -Colossal Might -Corrupt -Dark Ritual -Darksteel Ingot -Dauthi Marauder -Dauthi Slayer -Deep Analysis -Deft Duelist -Diabolic Edict -Dimir Aqueduct -Disenchant -Divination -Drift of Phantasms -Duress -Elephant Ambush -Elvish Fury -Exclude -Faceless Butcher -False Defeat -Firebolt -Fledgling Djinn -Foul Imp -Frostling -Gemhide Sliver -Giant Spider -Gruul Turf -Guardians of Akrasa -Hymn to Tourach -Imperious Perfect -Impulse -Kindle -Kird Ape -Kitesail -Kodama's Reach -Kor Skyfisher -Lightning Blast -Lightning Bolt -Lignify -Llanowar Elves -Mana Leak -Metallic Sliver -Moaning Spirit -Molten Rain -Mudbutton Torchrunner -Mulldrifter -Multani's Acolyte -Muscle Sliver -Naturalize -Nightguard Patrol -Oblivion Ring -Order of the Ebon Hand -Pacifism -Pestermite -Phyrexian Rager -Plated Geopede -Plated Sliver -Pouncing Jaguar -Qasali Pridemage -Rakdos Carnarium -Rancor -Repulse -Rishadan Airship -River Boa -Selesnya Sanctuary -Serum Visions -Shock -Sign in Blood -Sinew Sliver -Snapping Drake -Sprout Swarm -Steppe Lynx -Stone Rain -Sunlance -Synchronous Sliver -Talruum Minotaur -Tarfire -Tendrils of Corruption -Trinket Mage -Vampire Lacerator -Veteran Armorer -Veteran Armorsmith -Veteran Swordsmith -Viashino Fangtail -Vulshok Morningstar -Vulshok Sorcerer -Wild Nacatl -Winged Sliver -Yavimaya Wurm diff --git a/res/draft/draft.properties b/res/draft/draft.properties deleted file mode 100644 index 6344efeaa1d..00000000000 --- a/res/draft/draft.properties +++ /dev/null @@ -1,3 +0,0 @@ -common--file=common.txt -uncommon--file=uncommon.txt -rare--file=rare.txt diff --git a/res/draft/rare.txt b/res/draft/rare.txt deleted file mode 100644 index b0dfa02bb6c..00000000000 --- a/res/draft/rare.txt +++ /dev/null @@ -1,68 +0,0 @@ -Absorb -Armageddon -Badlands -Baneslayer Angel -Beacon of Destruction -Birds of Paradise -Bitterblossom -Bloodghast -Bribery -Captain of the Watch -Chameleon Colossus -Chandra Nalaar -Char -Day of Judgment -Dragon Roost -Elspeth, Knight-Errant -Gaea's Anthem -Garruk Wildspeaker -Goblin Guide -Goblin Piledriver -Honor of the Pure -Iona, Shield of Emeria -Jace, the Mind Sculptor -Jeska, Warrior Adept -Juzam Djinn -Keiga, the Tide Star -Knight of the White Orchid -Kokusho, the Evening Star -Liliana Vess -Loxodon Hierarch -Meloku the Clouded Mirror -Morphling -Mycoloth -Nantuko Shade -Nevinyrral's Disk -Noble Hierarch -Ob Nixilis, the Fallen -Paladin en-Vec -Phyrexian Arena -Rakka Mar -Rampaging Baloths -Rolling Earthquake -Rorix Bladewing -Sarkhan Vol -Savannah -Scion of Oona -Serendib Efreet -Shadowmage Infiltrator -Siege-Gang Commander -Solemn Simulacrum -Sower of Temptation -Sphinx of Jwar Isle -Squall Line -Survival of the Fittest -Taiga -Tarmogoyf -Thoughtseize -Time Warp -Troll Ascetic -Tundra -Umezawa's Jitte -Underground Sea -Vampiric Tutor -Vendilion Clique -Visara the Dreadful -Wall of Reverence -Wort, Boggart Auntie -Wrath of God diff --git a/res/draft/uncommon.txt b/res/draft/uncommon.txt deleted file mode 100644 index cf12eb1fc1a..00000000000 --- a/res/draft/uncommon.txt +++ /dev/null @@ -1,60 +0,0 @@ -Air Elemental -Animate Dead -Behemoth Sledge -Bituminous Blast -Blade Sliver -Blaze -Blood Knight -Briarhorn -Calciderm -Centaur Glade -Chainer's Edict -Cloud Djinn -Control Magic -Council of Advisors -Counterspell -Demonic Tutor -Dimir Guildmage -Elite Vanguard -Enlightened Tutor -Eternal Witness -Flame Javelin -Flametongue Kavu -Force of Will -Ghitu Encampment -Harmonize -Honden of Cleansing Fire -Honden of Infinite Rage -Honden of Life's Web -Honden of Night's Reach -Honden of Seeing Winds -Infest -Isochron Scepter -Ivory Tower -Jackal Pup -Keening Banshee -Knight of Meadowgrain -Knight of Stromgald -Magma Jet -Might Sliver -Path to Exile -Pillage -Regrowth -Sejiri Merfolk -Shriekmaw -Skullclamp -Smother -Sol Ring -Soltari Monk -Soltari Priest -Spectral Procession -Spell Snare -Swords to Plowshares -Thieving Magpie -Treetop Village -Twinblade Slasher -Vampire Nighthawk -Viridian Shaman -Volcanic Fallout -Wall of Blossoms -Wall of Denial diff --git a/res/gauntlet/LOCKED_DotP Preconstructed.dat b/res/gauntlet/LOCKED_DotP Preconstructed.dat deleted file mode 100644 index e07cc44ff0e..00000000000 Binary files a/res/gauntlet/LOCKED_DotP Preconstructed.dat and /dev/null differ diff --git a/res/gauntlet/LOCKED_Swimming With Sharks.dat b/res/gauntlet/LOCKED_Swimming With Sharks.dat deleted file mode 100644 index 4e6941bbe82..00000000000 Binary files a/res/gauntlet/LOCKED_Swimming With Sharks.dat and /dev/null differ diff --git a/res/howto.txt b/res/howto.txt new file mode 100644 index 00000000000..d317ff3e843 --- /dev/null +++ b/res/howto.txt @@ -0,0 +1,122 @@ +How to Play + + + +Introduction + +1. This game is similar to many other trading card games. You start out with 20 life and your goal is to reduce your opponents life to zero by attacking with your creatures. The game will end when your life or the computer's life is reduced to zero. You play "matches" against the computer as a set of "best two out of three" games. + +2. You use land to pay for spells. You can play one land a turn. + +3. Each land produces a different magical energy. This magical energy is shortened to one letter on cards. + + Forests make G + Swamps make B + Plains make W + Islands make U + Mountains make R + +4. Each non-land card has a name and a cost. The cost looks like this "2GG" A cost like that would require two Forest lands and two other lands. The number 2 can be paid for by any land. A cost like "R", would require a Mountain land. + +5. Creature cards stay in play and can attack on the turn AFTER they are played. A creature's attack and defense is shown like 2/4 meaning that the creature has an attack power of 2 and a defense of 4. If this creature receives 4 damage it is put into the graveyard. + +6. When you attack with your creatures the computer has a chance to block with his creatures. When you attack you "tap" your creatures by turning them sideways. Your creatures will untap during your next turn. When you block, only untapped creatures can block. Usually a creature cannot attack and block during the same turn. + +7. Sorcery and Instant cards have an effect on the game. After you play any card it goes on the stack to the left, click OK and the stack will clear. Sorcery cards can only be played during your turn and when the stack is empty. Instant cards can be played at any time and are more versatile. + +8. If a card has a target, you get to choose that target. If the target is a player, click on that player's picture (next to their life points). + +9. When you mulligan, the cards in your hand are shuffled into you deck and you are given 1 less card. + + +Legendary Cards + +Legendary cards are powerful cards that can be either creatures, enchantments, lands, artifacts, or planeswalkers. These cards can only exist once in the battlefield, and if another copy of the legendary card is played, all copies of the card are destroyed and sent to the graveyard. + + +Planeswalkers + +There are relatively few planeswalkers available in the game and they have specific rules for their special abilities. + +You can only use one ability a turn. A planeswalker can be attacked, but you can also block with your creatures. For each 1 damage a planeswalker receives, you remove 1 counter. When a planeswalker doesn't have any counters, it goes to the graveyard. + + +Hybrid Mana and Multicolored Cards + +1. Hybrid Mana Cards are unique in their casting cost as seen in the card. Instead of seeing a single color per mana symbol, these cards have 2 colors per mana symbol indicating that the player has the choice of playing either of the two. There are also cases where numbers and colors are combined together in one mana symbol, which indicates that either colorless or colored mana can be paid for each symbol. Hybrid cards are treated as two colors and as such can be said to be multicolored. + +2. Multicolored Cards are slightly different than hybrid mana cards, as they require two or more different colors of mana, which may or not be in a single mana symbol. An example would be a card like Lightning Helix which requires one red and one white mana to be played. + + +Game Types + +1. In Constructed Deck mode you can use any of the cards to make your deck. To make a constructed deck, select the "Deck Editor" button on the main screen. + +2. In Sealed Deck mode you are given 75 cards and you have to make your deck from just those cards. + +3. In Booster Draft mode you select 1 card at a time and then make your deck from just those cards. You can then play against the other 7 computer opponents that were drafting with you. + +4. In Quest Mode you start out with just a few cards. As you complete matches in your quest you will win more cards. In easy mode you get more cards after every game, whether you win or lose. Your goal is to become world champion. Once you reach the end of your quest you can continue to play additional matches and win even more cards or you can start a new quest at anytime. + +At the Quest Options screen you will be given a choice of four different difficulty levels. These difficulty levels control: + +1) the length of the quest in matches +2) the hardness of the AI deck that you will face as an opponent +3) the number of wins or losses needed to get more cards +4) the number of wins needed to advance a player to the next rank + + +Quick Games + +There may be occasions where you only have a few minutes to play a quick game or two. At the top of the list of submenus on the left, choose "Sanctioned Formats" and then "Constructed". For the least amount of setup, just accept the default settings for random decks, and click Start at the bottom of the page. + + +Abilities + +There are three kinds of abilities: Activated, Triggered, and Static. + +1. Activated abilities contain a colon that separates cost and effect, these can be played any time you could play an instant. An example is Elvish Piper's ability. That cost also contains the tap symbol. For creatures only, abilities containing the tap- or untap symbol can be played starting the turn after the creature came into play. Another common cost for an activated ability is sacrificing the card. You do that by putting it into your graveyard. Such abilities can only be played once. + +2. Triggered abilities aren't played, they simply trigger when their condition occurs. An example is Angel of Mercy: You don't play the ability, but gain 3 life when it comes into play. + +3. Static abilities are neither played, nor do they trigger. They still have an effect for as long as they are in play. An example is Glorious Anthem. There is no condition or cost, your creatures are just stronger. + + +Keyword Abilities + +1. Flying: Creatures with flying are harder to block. Only creatures with flying or reach can block other flyers. + +2. Haste: Haste lets a creature attack or use any abilities immediately during this turn. + +3. Fear: Creatures with fear can only be blocked by artifact or black creatures. Creatures with fear are harder to block. + +4. Cycling: When you cycle a card you pay some small cost (usually 2 or so) and then you discard that card and draw a new card. Cycling helps make your deck more versatile. + +5. Vigilance: This means that the creature will not tap when attacking. This creature can both attack and block during the same turn. + +6. Trample: If you use 2/1 creature to block an attacking 3/4 creature with trample, you will still receive 2 damage because the 3/4 trampled over your 2/1 creature. Trample damage is calculated by (attack - blocker's defense), in this case 3-1 which is 2. + +7. Deathtouch: When a creatures with deathtouch deals damage to a creature, that creature is destroyed. + +8. Defender: Creatures with defender can not attack, they can only block another attacker. + +9. First Strike and Double Strike: Creatures with first strike deals their combat damage first. Creatures with double strike deals their combat damage first, and then deals their combat damage a second time during the combat damage step. + +10. Flash: You can play a creature with flash anytime that you can play an Instant. + +11. Landwalk: Allows your creature to attack without being blocked if your opponent controls the appropriate land type. + +12. Lifelink: With lifeline you gain life equal to the amount of damage dealt. + +13. Protection: Can not be damaged, blocked or targeted by sources that match the protection type. + +14. Reach: Creatures with reach can block flying creatures. + +15. Shroud: Permanents with shroud can not be targeted by abilities or spells. + +16. Regenerate: Regenerate is an ability that some creatures have which prevents them from being destroyed and put into the graveyard. When you regenerate a creature, it acts like a shield until end of turn. + +17. Morph: A creature with morph can be played by usually paying 3 mana of any color and be treated as a 2/2 creature with no abilities rather than playing the creature's actual cost. This creature is placed face down in the battlefield and can be flipped face up anytime as long as you pay its morph cost which is indicated on the card. Once flipped face up the card is treated as the original card, the one that you would normally play with its original-full casting cost. + + +Have fun! diff --git a/res/lang/de.properties b/res/lang/de.properties deleted file mode 100644 index 64795b46783..00000000000 --- a/res/lang/de.properties +++ /dev/null @@ -1,181 +0,0 @@ -program/name=Forge - http://cardforge.org - - - -BoosterDraft/close/message=Dein Fortschritt kann nicht gespeichert werden, wirklich schließen? -BoosterDraft/save/message=Willst du dieses Deck Speichern -BoosterDraft/save/title=Deck speichern -BoosterDraft/rename/message=Deck Name -BoosterDraft/rename/title=Deck umbenennen -BoosterDraft/saveDraft/message=Draft Name -BoosterDraft/saveDraft/title=Draft benennen - - - -Display/menu/title=Menü -Display/phase/title=Phase Stop -Display/dev/title=Developer - -Display/human/title=Spieler -Display/human/hand/title=Hand: -Display/human/exiled/menu=Spieler - Entfernte Karten ansehen -Display/human/exiled/button=Entfernt: -Display/human/exiled/title=Deine entfernten Karten -Display/human/library/title=Bibliothek: -Display/human/graveyard/menu=Spieler - Friedhof ansehen -Display/human/graveyard/button=Friedhof: -Display/human/graveyard/title=Dein Friedhof -Display/human/flashback/menu=Karte mit Rückblende spielen -Display/human/flashback/button=Rückblende: -Display/human/flashback/title=Karte mit Rückblende spielen - -Display/combat/title=Kampf - -Display/computer/title=Computer -Display/computer/hand/title=Hand: -Display/computer/exiled/menu=Computer - Entfernte Karten ansehen -Display/computer/exiled/button=Entfernt: -Display/computer/exiled/title=Computer's entfernte Karten -Display/computer/library/title=Bibliothek: -Display/computer/graveyard/menu=Computer - Friedhof ansehen -Display/computer/graveyard/button=Friedhof: -Display/computer/graveyard/title=Computer's Friedhof -Display/computer/flashback/menu=Computer Flashback Cards -Display/computer/flashback/button=Computer's Flashback: -Display/computer/flashback/title=Computer Flashback Cards - -Display/concede/menu=Aufgeben -Display/concede/button=Aufgeben - - - -DownloadPictures/title=Download -DownloadPictures/no-more=Es wurden bereits alle Bilder heruntergeladen! - -#Das sind die Vorgabewerte für Proxyverbindungen -DownloadPictures/proxy/address=Proxy Addresse -DownloadPictures/proxy/port=Proxy Port - -DownloadPictures/proxy/type/none=Kein Proxy -DownloadPictures/proxy/type/http=HTTP Proxy -DownloadPictures/proxy/type/socks=SOCKS Proxy - -DownloadPictures/button/start=Start Download -DownloadPictures/button/cancel=Abbrechen -DownloadPictures/button/close=Schließen - -DownloadPictures/bar/before-start=Proxy konfigurieren, dann Start drücken -DownloadPictures/bar/wait=%d von %d Karten heruntergeladen! Bitte warten! -DownloadPictures/bar/close=%d von %d Karten heruntergeladen! Bitte schließen! - -DownloadPictures/errors/proxy/connect=Proxy-Verbindung konnte nicht hergestellt werden!\n\ - Proxy Addresse: %s\n\ - Proxy Port: %s -DownloadPictures/errors/other=Du musst mit dem Internet Verbunden sein. Fehler beim herunterladen:\n\ - Karte: %s\n\ - URL: %s - - - -ErrorViewer/show=Stack Report -ErrorViewer/title=Crash Report -ErrorViewer/message=Dieses Dokument ist ein "Crash Report". Ein Fehler ist aufgetreten. Bitte speichern Sie den Fehlerbericht in einer Datei.\n\ - Bitte folgen Sie den Anweisungen auf der folgenden Internetseite (leider nur auf Englisch) um diesen Fehler zu melden. \n\ - Bitte schliessen Sie auch ein, wie der Fehler aufgetreten ist.\n\ - \t%s\n\ - Es ist sehr wichtig, dass die Entwickler von Forge solche Information haben. Wir danken Ihnen für Ihre Hilfe.\n\ - \n\ - %s\n\n\n\ - Version:\n\ - %s\n\n\ - OS: %s Version: %s Architecture: %s\n\n\ - Java Version: %s Vendor: %s\n\n\ - Detailed error trace:\n -ErrorViewer/button/save=Speichern... -ErrorViewer/button/close=Schließen -ErrorViewer/button/exit=Programm verlassen - -ErrorViewer/errors/save/message=Entschuldigung, während des Speicherns ist ein Fehler aufgetreten! -ErrorViewer/errors/show/message=Sie haben einen vollständigen Report verlangt - - - -#Das Tutorial ist ziemlich lang, deshalb ist es in einem eigenen File -HowTo--properties=howTo/de.properties - - - -NewGame/menu/title=Menü -NewGame/menu/lookAndFeel=Anzeige-Einstellungen -NewGame/menu/download=Bilder downloaden (HQ) -NewGame/menu/downloadlq=Bilder downloaden (LQ) -NewGame/menu/downloadsetlq=Bilder downloaden (Set LQ) -NewGame/menu/importPicture=Bilder importieren -NewGame/menu/downloadPrice=Preise aktualisieren -NewGame/menu/cardSizes=Kartengröße einstellen -NewGame/menu/cardStack="Stack" größe einstellen -NewGame/menu/cardStackOffset="Stack Offset" einstellen -NewGame/menu/about=Über -NewGame/menu/exit=Aufgang -NewGame/options/title=Optionen -NewGame/options/font=Benutze LAF Schriften -NewGame/options/cardOverlay=Benutze Mana und Text -NewGame/options/cardScale=Karten vergrössern -NewGame/options/generate/title=Deckgenerator -NewGame/options/generate/singletons=Keine doppelten außer Ländern -NewGame/options/generate/removeSmall=1/1 und 0/X Kreaturen entfernen -NewGame/options/generate/removeArtifacts=Artefakte entfernen -NewGame/help/title=Hilfe - -NewGame/gametype=Spieltyp -NewGame/library=Bibliothek -NewGame/settings=Einstellungen -NewGame/new_game=Neues Spiel -NewGame/constructed_text=Konstruiert (Einfach) - Benutze alle Karten um den Computer zu besiegen -NewGame/sealed_text=Sealed Deck (Mittel) - Erstelle dein Deck aus 75 verfügbaren Karten -NewGame/booster_text=Booster Draft (Schwierig) - Wähle immer eine Karte bis du dein Deck erstellt hast -NewGame/yourdeck=Dein Deck -NewGame/opponent=Gegner -NewGame/deckeditor=Deck Editor -NewGame/oldgui=Old Gui -NewGame/ailand=Stack AI Land -NewGame/devmode=Developer Mode -NewGame/questmode=Quest Mode -NewGame/startgame=Spiel starten -NewGame/savesealed_msg=Please name this sealed deck -NewGame/savesealed_ttl=Save Sealed Deck - -WinLose/won=Siege: -WinLose/lost=, Niederlagen: -WinLose/win=Gewonnen -WinLose/lose=Verloren -WinLose/continue=Weiter -WinLose/restart=Neu Starten -WinLose/quit=Verlassen - -DownloadPrices/title=Preise Aktualisieren -DownloadPrices/startupdate=Starte Update -DownloadPrices/downloading=Downloade -DownloadPrices/compiling=Compiling - -GameAction/heads=Kopf -GameAction/tails=Zahl -GameAction/heads_or_tails=Kopf oder Zahl? -GameAction/coin_toss=Münze werfen -GameAction/human_win=Spieler gewinnt das Münzewerfen -GameAction/computer_win=Computer gewinnt das Münzewerfen -GameAction/human_mana_cost=Human has no cards with a converted mana cost in library. -GameAction/computer_mana_cost=Computer has no cards with a converted mana cost in library. -GameAction/computer_starts=Spieler beginnt -GameAction/human_starts=Computer beginnt -GameAction/computer_cut=Computer cut his / her deck to : -GameAction/human_cut=Human cut his / her deck to : -GameAction/cut_number=Number of times the deck has been cut: -GameAction/resolve_starter=Can't resolve starter by cut: Reverting to Coin Toss\r\n -GameAction/equal_converted_mana=Equal Converted Mana Cost Cut -GameAction/cutting_again=Cutting Again..... -GameAction/yes=Ja -GameAction/no=Nein -GameAction/want_dredge=Do you want to dredge? -GameAction/select_dredge=Select card to dredge -GameAction/choose_2nd_land=Wähle zweites Land diff --git a/res/lang/en.properties b/res/lang/en.properties deleted file mode 100644 index eb8b358ddfd..00000000000 --- a/res/lang/en.properties +++ /dev/null @@ -1,221 +0,0 @@ -program/name=Forge - http://cardforge.org - - - -BoosterDraft/close/message=Your progress cannot be saved, do you want to exit? -BoosterDraft/save/message=Do you want to save this deck? -BoosterDraft/save/title=Save Deck -BoosterDraft/rename/message=Deck Name -BoosterDraft/rename/title=Rename Deck -BoosterDraft/saveDraft/message=Please name this draft -BoosterDraft/saveDraft/title=Save Draft - - - -Display/menu/title=Menu -Display/phase/title=Phase Stop -Display/dev/title=Developer - -Display/human/title=Player -Display/human/hand/menu=Player - View Hand -Display/human/hand/button=Hand: -Display/human/hand/title=Player's Hand -Display/human/exiled/menu=Player - View Exile -Display/human/exiled/button=Exile: -Display/human/exiled/title=Player's Exile -Display/human/library/menu=Player - View Library -Display/human/library/button=Library: -Display/human/library/title=Player's Library -Display/human/graveyard/menu=Player - View Graveyard -Display/human/graveyard/button=Graveyard: -Display/human/graveyard/title=Player's Graveyard -Display/human/flashback/menu=Play card with Flashback -Display/human/flashback/button=Human Flashback: -Display/human/flashback/title=Play card with Flashback -Display/human/decklist/menu=Player - View Decklist -Display/human/decklist/button=Decklist - -Display/combat/title=Combat - -Display/computer/title=Computer -Display/computer/hand/menu=Computer - View Hand -Display/computer/hand/button=Hand: -Display/computer/hand/title=Computer's Hand -Display/computer/exiled/menu=Computer - View Exile -Display/computer/exiled/button=Exile: -Display/computer/exiled/title=Computer's Exile -Display/computer/library/menu=Computer - View Library -Display/computer/library/button=Library: -Display/computer/library/title=Computer's Library -Display/computer/graveyard/menu=Computer - View Graveyard -Display/computer/graveyard/button=Graveyard: -Display/computer/graveyard/title=Computer's Graveyard -Display/computer/flashback/menu=Computer Flashback Cards -Display/computer/flashback/button=Computer's Flashback: -Display/computer/flashback/title=Computer Flashback Cards - -Display/concede/menu=Concede Game -Display/concede/button=Concede Game - -Display/managen/menu=Generate Mana -Display/managen/button=Generate Mana - -Display/setupbattlefield/menu=Setup Game State -Display/setupbattlefield/button=Setup Game State - -Display/tutor/menu=Tutor for Card -Display/tutor/button=Tutor for Card - -Display/addcounter/menu=Add Counter to Permanent -Display/addcounter/button=Add Counter to Permanent - -Display/tapperm/menu=Tap Permanent -Display/tapperm/button=Tap Permanent - -Display/untapperm/menu=Untap Permanent -Display/untapperm/button=Untap Permanent - -Display/nolandlimit/menu=Play Unlimited Lands This Turn -Display/nolandlimit/button=Play Unlimited Lands This Turn - -Display/setlife/menu=Set Player Life -Display/setlife/button=Set Player Life - -Display/alwaysaccept/menu=Always accept this trigger -Display/alwaysaccept/button=Always accept this trigger - -Display/alwaysdecline/menu=Always decline this trigger -Display/alwaysdecline/button=Always decline this trigger - -Display/alwaysask/menu=Always ask -Display/alwaysask/button=Always ask - -DownloadPictures/title=Downloading -DownloadPictures/no-more=All items have been downloaded. - -#These are the default values for the proxy textfields -DownloadPictures/proxy/address=Proxy Address -DownloadPictures/proxy/port=Proxy Port - -DownloadPictures/proxy/type/none=No Proxy -DownloadPictures/proxy/type/http=HTTP Proxy -DownloadPictures/proxy/type/socks=SOCKS Proxy - -DownloadPictures/button/start=Start download -DownloadPictures/button/cancel=Cancel -DownloadPictures/button/close=Close - -DownloadPictures/bar/before-start=Configure Proxy, then press Start -DownloadPictures/bar/wait=%d of %d items finished! Please wait! -DownloadPictures/bar/close=%d of %d items finished! Please close! - -DownloadPictures/errors/proxy/connect=Proxy connection could not be established!\n\ - Proxy address: %s\n\ - Proxy port: %s -DownloadPictures/errors/other=You must be connected to the Internet. Error downloading card:\n\ - Card name: %s\n\ - URL: %s - - - -ErrorViewer/show=Stack Report -ErrorViewer/title=Crash Report -ErrorViewer/message=This is a Crash Report. An error has occurred. Please save this message to a file.\n\ - Please follow the instructions at this address to submit this Crash Report, plus what you were doing at the time:\n\ - \t%s\n\ - Reporting bugs in Forge is very important. We thank you for your time.\n\ - \n\ - %s\n\n\n\ - Version:\n\ - %s\n\n\ - OS: %s Version: %s Architecture: %s\n\n\ - Java Version: %s Vendor: %s\n\n\ - Detailed error trace:\n -ErrorViewer/button/save=Save... -ErrorViewer/button/close=Close -ErrorViewer/button/exit=Exit Application - -ErrorViewer/errors/save/message=There was an error during saving, sorry! -ErrorViewer/errors/show/message=You requested a full error report - - - -#The how to text is pretty long, so it's moved to a separate file -HowTo--properties=howTo/en.properties - - -NewGame/menu/title=Menu -NewGame/menu/lookAndFeel=Display Options -NewGame/menu/download=Download Card HQ Pictures -NewGame/menu/downloadlq=Download Card LQ Pictures -NewGame/menu/downloadsetlq=Download Card Set LQ Pictures -NewGame/menu/downloadquest=Download Quest Images -NewGame/menu/importPicture=Import Pictures -NewGame/menu/downloadPrice=Update Price -NewGame/menu/cardSizes=Specify Max Card Size -NewGame/menu/cardStack=Specify Max Stack Size -NewGame/menu/cardStackOffset=Specify Stack Offset -NewGame/menu/about=About -NewGame/menu/exit=Exit -NewGame/options/title=Options -NewGame/options/font=Use LAF Fonts -NewGame/options/cardOverlay=Use mana and text card overlay -NewGame/options/cardScale=Scale card images larger than original -NewGame/options/generate/title=Generate Deck -NewGame/options/generate/singletons=No nonland duplicates -NewGame/options/generate/removeSmall=Remove 1/1 and 0/X Creatures -NewGame/options/generate/removeArtifacts=Remove Artifacts -NewGame/help/title=Help - -NewGame/gametype=Game Type -NewGame/library=Library -NewGame/settings=Settings -NewGame/new_game=New Game -NewGame/constructed_text=Constructed (Easy) - Use all of the cards to defeat the computer -NewGame/sealed_text=Sealed Deck (Medium) - Create your deck from 75 available cards -NewGame/booster_text=Booster Draft (Hard) - Pick cards 1 at a time to create your deck -NewGame/yourdeck=Your Deck -NewGame/opponent=Opponent -NewGame/deckeditor=Deck Editor -NewGame/oldgui=Old Gui -NewGame/ailand=Stack AI Land -NewGame/devmode=Developer Mode -NewGame/questmode=Quest Mode -NewGame/startgame=Start Game -NewGame/savesealed_msg=Please name this sealed deck -NewGame/savesealed_ttl=Save Sealed Deck - -WinLose/won=Won: -WinLose/lost=, Lost: -WinLose/win=You Win -WinLose/lose=You Lost -WinLose/continue=Continue -WinLose/restart=Restart -WinLose/quit=Quit - -DownloadPrices/title=Update Prices -DownloadPrices/startupdate=Start Update -DownloadPrices/downloading=Downloading -DownloadPrices/compiling=Compiling - -GameAction/heads=Heads -GameAction/tails=Tails -GameAction/heads_or_tails=Heads or Tails? -GameAction/coin_toss=Coin Toss to Start the Game -GameAction/human_win=Human Wins by Coin Toss -GameAction/computer_win=Computer Wins by Coin Toss -GameAction/human_mana_cost=Human has no cards with a converted mana cost in library. -GameAction/computer_mana_cost=Computer has no cards with a converted mana cost in library. -GameAction/computer_starts=Human Starts -GameAction/human_starts=Computer Starts -GameAction/computer_cut=Computer cut his / her deck to : -GameAction/human_cut=Human cut his / her deck to : -GameAction/cut_number=Number of times the deck has been cut: -GameAction/resolve_starter=Can't resolve starter by cut: Reverting to Coin Toss\r\n -GameAction/equal_converted_mana=Equal Converted Mana Cost Cut -GameAction/cutting_again=Cutting Again..... -GameAction/yes=Yes -GameAction/no=No -GameAction/want_dredge=Do you want to dredge? -GameAction/select_dredge=Select card to dredge -GameAction/choose_2nd_land=Choose second land diff --git a/res/lang/howTo/de.properties b/res/lang/howTo/de.properties deleted file mode 100644 index d0548799e2f..00000000000 --- a/res/lang/howTo/de.properties +++ /dev/null @@ -1,68 +0,0 @@ -title=(Wie man spielt) -message=Wie man Spielt - (Revision: September 2009.)\n\n\n\ -Einleitung\n\n\ -1. Dieses Spiel ist ähnlich wie viele andere Sammelkartenspiele. Du startest mit 20 Lebenspunkten und dein Ziel ist es die Lebenspunkte deines Gegners durch einen Angriff mit deinen Kreaturen auf 0 zu bringen. Du spielst einen Match gegen den Computer. Der beste von 2 aus 3 Spielen gewinnt."\n\n\ -2. Du brauchst Länder um deine Zauberkosten zu bezahlen. Du kannst immer nur ein Land pro Zug spielen.\n\n\ -3. Jedes Land erzeugt verschiedenes Mana. Das Mana findest du auf jeder Karte\n\n\ -\ Wald erzeugt G\n\ -\ Sumpf erzeugt B\n\ -\ Ebene erzeugt W\n\ -\ Insel erzeugt U\n\ -\ Gebirge erzeugt R\n\n\ -4. Jede Karte, die kein Land ist hat einen Namen und Kosten. Die Kosten sehen aus wie \"2GG\". Kosten wie zum Beispiel das, brauchen 2 Wälder und 2 andere Länder. Die Nummer 2 kann durch jedes beliebige Land bezahlt werden. Kosten wie \"R\" jedoch, brauchen ein Gebirge.\n\n\ -5. Kreaturenkarten bleiben im Spiel und können im NÄCHSTEN Zug angreifen. Die Angriffs- und Verteidigungsstärke einer Karte steht unten rechts. Wie zum Beispiel 2/4, das bedeutet die Kreatur hat eine Angriffsstärke von 2 und eine Verteidigungsstärke von 4. Wenn diese Kreatur 4 Schadenspunkte erhält kommt sie auf den Friedhof.\n\n\ -6. Wenn du mit deinen Kreaturen angreifst, hat der Gegner die Chance mit seinen Kreaturen zu blocken. Wenn du angreifst, dann \"tappst\" du deine Karte zur Seite. Deine Kreaturen bleiben bis zu deinem nächsten Zug getappt. Du kannst nur mit ungetappten Kreaturen blocken. Normalerweise kann eine Kreatur nicht im selben Zug angreifen und blocken.\n\n\ -7. Hexerei- und Spontanzauberkarten haben einen einfluss auf das Spiel. Nachdem du eine Karte gespielt hast kommt sie auf den Stapel auf der linken Seite, drücke OK und der Stapel wird geleert. Hexereien können nur gespielt werden wenn du an der Reihe bist und der Stapel leer ist. Spontanzauber können immer gespielt werden und sind somit vielseitiger.\n\n\ -8. Wenn eine Karte ein Ziel hat, musst du dieses Wählen. Wenn das Ziel dein Gegener ist, klicke auf seine Lebenspunkte.\n\n\ -9. Wenn du einen Mulligan willst, werden alle Karten in deiner Hand wieder in die Bibliothek gemischt und du erhälst neue Karten, aber eine Karte weniger.\n\n\n\ -Legendäre Karten\n\n\ -Legenäre Karten sind mächtige Karten die entweder Kreaturen, Verzauberungen, Länder, Artefakte oder Planeswalker sein können. Diese Karten können nur einmal auf dem Spielfeld vorkommen. Wenn eine andere legenäre Karte ins Spiel kommt, werden alle Kopien der legendären Karte zerstört und kommen auf den Friedhof.\n\n\n\ -Planeswalker\n\n\ -Es gibt 7 Planswalkers (Ajani Goldmähne; Liliana Vess; Garruk Wildsprecher; Chandra Nalaar; Nicol Bolas; Elspeth, fahrende Ritterin; Nissa Revane). Sie haben alle spezielle Regeln und besondere Fähigkeiten.\n\n\ -Du kannst nur eine Fähigkeit pro Zug nutzen. Ein Planeswalker kann angegriffen werden, aber du kannst ihn mit deinen Kreaturen blocken. Für jeden Schadenspunkt, den der Planswalker erhält verliert er eine Loyalitätsmarke. Wennd der Planswalker keine Loyalitätsmarken mehr besitzt, kommt er auf den Friedhof.\n\n\n\ -Hybrid Mana und mehrfarbige Karten\n\n\ -1. Hybride Mana Karten sind einzigartig in ihrer Manaproduktion. Anstelle von einem, haben diese Karten zwei Manasymbole. Der Spieler kann aussuchen welches Mana er spielen will. Es gibt auch Fälle in denen Nummern und Farben zusammen in einem Manasymbol vorkommen, was bedeutet das entweder fabriges oder farbloses Mana für jedes Symbol bezahlt werden darf.\n\n\ -2. Mehrfarbige Karten sind leicht anders als Hybride Mana Karten, weil sie zwei oder mehr verschiedenfarbiges Mana brauchen. Ein Beispiel ist der Spontanzauber Blitzhelix, welcher ein rotes und ein weisses Mana braucht um gespielt zu werden.\n\n\n\ -Spielarten\n\n\ -1. Im konstruierten Deck Modus kannst du alle Karten brauchen um dein Deck zu bauen. Um ein konstruiertes Deck zu erstllen, wähle vom Deck Editor \"Neues Deck \u2013 Konstruiert\". Eine Liste mit allen Karten wird angezeigt.\n\n\ -2. Im Sealed Deck Modus bekommst du 75 Karten aus denen du dein Deck erstellen musst.\n\n\ -3. Im Booster Draft Modus wählst du immer eine Karte und erstellst daraus dein Deck. Wenn du mit dem drafting fertig bist, gibst du einen Dateinamen ein, dann gehst du zum Deck Editor und wählst vom Menü \"Deck Öffnen - Draft\" und finde den Dateinamen. So kannst du dein Deck konstruieren. Du kannst dann gegen die 7 anderen Computergegner spielen, die mit dir gedraftet haben.\n\n\ -4. Im Quest Modus beginnst du mit 275 Karten, davon sind 200 Länder. Wenn du einen Match beendest hast gewinnst du mehr Karten. Wenn du einfach ausgewählt hast, bekommst du mehr Karten, auch wenn du verloren hast. Dein Ziel ist es Weltmeister zu werden. Nach dem du das Ende deiner Quest erreicht hast kannst du entweder weitere Spiele spielen und mehr Karten gewinnen oder jederzeit eine neue Quest beginnen.\n\n\ -Bei den Quest Einstellungen kannst du aus vier Schwierigkeitsstufen aussuchen. Diese Schwierigkeitsstufen beinhalten:\n\n\ -1) die länge der Quest in der Anzahl Matches,\n\ -2) die Schwierigkeit des Decks der AI,\n\ -3) die Zahl der Siege oder Niederlagen für neue Karten,\n\ -4) die Zahl der Siege um auf den nächsten Rang aufzusteigen.\n\n\n\ -Schnelle Spiele\n\n\ -Manchmal hast du nur wenig Zeit um ein, zwei Spiele zu spielen. Zuoberst beim Startbildschirm findest du drei Auswahlmöglichkeiten. Klick auf den Konstruiert (Einfach) Knopf um ihn auszuwählen.\n\n\ -In der mitte des Startbildschirms findest du zwei Menüs, das eine heisst \"Dein Deck\" und das andere \"Gegner\". Für ein schnelles Spiel solltest du \"Generate Deck\" oder \"Random\" für dich und den Computer wählen.\n\n\ -1. Die \"Generate Deck\" Option erstellt ein zweifarbiges Deck. Diese Option wählt zufällig Karten aus und manchmal kann die Manakurve zu hoch werden.\n\n\ -2. Die \"Random\" Option wählt zufällig eines von den konstruierten Decks aus. Entweder du stellst diese Decks im Deckeditor zusammen oder du importierst eine .deck Datei aus dem Deckeditor.\n\n\ -Wenn du die \"Random\" Option wählst auf den \"Start Game\" Knopf und der Start des Matches scheitert \u2026 das passiert, wenn du alle deine Decks in deine all-decks2 Datei gespeichert hast. Du solltest sattessen die \"Generate Deck\" Option benutzen.\n\n\n\ -Resizable Game Area & Stack AI Land\n\n\ -1. Die \"Resizable Game Area\" Option sollte ausgewählt werden wenn der Bildschirm mehr als 1024 x 768 Pixel unterstützt. Das Fenster mit dem Spielfeld und der Informationsanzeige wird dann den ganzen Bildschirm ausfülllen.\n\n\ -2. Die \"Stack AI Land\" Option führt dazu, dass der Coputer ein wenig schwieriger zu besiegen ist. Der Computer zieht nur Länderkarten, bis er genug Länder bestitzt um die Kosten seiner Zauber zu bezahlen. Wähle die Option um gegen einen schwächeren oder stärkeren Gegner zu spielen.\n\n\ -Manchmal wenn du auf den \"Spiel Starten\" Knopf drückst kann es vorkommen, dass eine Fehlermeldung erscheint. In dem Fall soltest du die \"Stack AI Land\" Option ausschalten.\n\n\n\ -Fähigkeiten\n\n\ -Es gibt drei verschiedene Arten von Fähigkeiten: aktivierte, ausgelöste, und statische.\n\n\ -1. Aktivierte Fähigkeiten haben einen Doppelpunkt, der die Kosten und den Effekt trennt. Diese können immer dann gespielt werden, wenn du auch ein Spontanzauber spielen könntest. Ein Beispiel ist die Fähigkeit des Elfischer Pfeifer's. Diese Kosten besitzen auch ein Tapsymbol. Kreaturen, deren Fähigkeiten ein tap- oder enttap symbol besitzen, können erst nach dem Zug in dem sie ins Spiel kamen gespielt werden. Manchmal musst du deine Kreatur dafür auch opfern. Das machst du, indem du sie auf den Freidhof legst. Solche Fähigkeiten können nur einmal gespielt werden.\n\n\n\ -2. Ausgelöste Fähigkeiten werden nicht gespielt, sie werden ausgelöst wenn bestimmte Dinge passieren. Ein Beispiel ist Engel der Gnade: Du spielst nicht seine Fähigkeit, aber bekommst 3 Leben wenn er ins spiel kommt.\n\n\ -3. Statische Fähigkeiten werden nicht gespielt und auch nicht ausgelöst. Sie gehen niemals auf den Stapel. Sie wirken einfach ab dem Moment, da die bleibende Karte mit dieser Fähigkeit ins Spiel kommt. Statische Fähigkeiten erzeugen fast immer dauerhaft Effekte.\n\n\n\ -Stichwörter der Fähigkeiten\n\n\ -1. Fliegend: Kreaturen die fliegen sind schwieriger zu blocken. Nur Kreaturen die fliegen oder Reichweite besitzen konnen fliegende Kreaturen blocken.\n\n\ -2. Eile: Kreaturen mit Eile können sobald sie gespielt wurden angreifen oder ihre Fähigkeiten einsetzen .\n\n\ -3. Furcht: Eine Kreatur mit der Eigenschaft "Furcht" kann nur von schwarzen oder Artefaktkreaturen geblockt werden.\n\n\ -4. Umwandlung: Wenn Du eine Karte mit "Umwandlung" in der Hand hältst, kannst Du, anstatt sie auszuspielen, die Umwandlungskosten bezahlen und die Karte abwerfen, um eine andere Karte nachzuziehen. Das ist dann sinnvoll, wenn Du die Karte mit Umwandlung im Moment nicht benötigst. \n\n\ -5. Wachsamkeit: "Wachsamkeit" ist ein neues Schlüsselwort für eine alte Fähigkeit. Es bedetet einfach: "Diese Kreatur wird beim Angreifen nicht getappt". Bestimmst du, mit einer Kreatur anzugreifen, die Wachsamkeit hat, wird diese Kreatur dabei nicht getappt.\n\n\ -6. Trampeln: Angreifende Kreaturen mit der Fähigkeit "Trampeln" sind in der Lage, dem verteidigenden Spieler Schaden zuzufügen, obwohl sie geblockt wurden. Wenn eine Kreatur mit Trampeln einer blockenden Kreatur mehr Schaden zufügt, als nötig ist um die blockende Kreatur zu töten, wird der restliche Schaden auf den verteidigenden Spieler umgeleitet. Wenn eine angreifende Kreatur mit 5/3 und "Trampeln" von einer 2/2 Kreatur geblockt wird, so erhält der verteidigende Spieler trotz des Blockens 3 Schaden. Die blockende Kreatur stirbt.\n\n\ -7. Todesberührung: Immer wenn eine Kreatur mit Todesberührung einer anderen Kreatur Schadenzufügt, zerstöre jene Kreatur.\n\n\ -8. Verteidiger: Diese Kreatur kann nicht angreifen.\n\n\ -9. Erstschlag: Im normalen Kampf wird der Schaden der beteiligten Kreaturen gleichzeitig verrechnet. Hat aber eine von beiden Kreaturen Erstschlag, so hat diese einen entscheidenden Vorteil. Zuerst wird der Schaden der Kreatur mit Erstschlag auf die gegnerische Kreatur übertragen. Stirbt die gegnerische Kreatur dabei, so erhält die Kreatur mit Erstschlag keinen Schaden und bleibt somit unversehrt. Haben beide Kreaturen Erstschlag, so hebt sich dieser auf und der Kampfschaden wird "normal" verrechnet.\n\n\ -10. Aufblitzen: Eine Kreatur mit der Fähigkeit Aufblitzen kann zu jedem Zeitpunkt gespielt werden, zu dem man auch einen Spontanzauber spielen könnte.\n\n\ -11. Landtarung: Wenn Du eine Kreatur mit "Landtarung" hast und mit ihr angreifst, ist sie unblockbar, solange dein Gegner ein Land der beschriebenen Sorte im Spiel hat.\n\n\ -12. Lebensverknüpfung: Immer wenn eine deiner Kreaturen mit Lebensverknüpfung Schaden zufügt, erhältst Du ebenso viele Lebenspunkte dazu.\n\n\ -13. Schutz vor: Eine Kreatur mit Schutz ist weitgehend immun gegen Sprüche, Fähigkeiten und bleibende Karten.\n\n\ -14. Reichweite: Eine Kreatur mit der Fähikeit Reichweite kann fliegende Kreaturen blocken\n\n\ -15. Verhüllt: Eine bleibende Karte mit der Fähigkeit Verhüllt kann nicht das Ziel von Zaubersprüchen oder Fähigkeiten sein..\n\n\ -16. Regeneration: Eine Kreaturenfähigkeit, die eine Kreatur vor der Zerstörung rettet. Regenerationseffekte funktionieren wie Schilde. Wenn der Regenerationszauberspruch oder die Fähigkeit verrechnet wurde, wartet der Effekt auf den nächsten Moment, wo die Kreatur zerstört werden soll. Wenn die Kreatur zerstört würde, rettet der Effekt die Kreatur.\n\n\ -17. Morph: Kreaturen mit einer Morph-Fähigkeit sind sehr besondere Kreaturen. Wenn du eine Morph-Kreatur auf der Hand hast kannst du sie für 3 farblose Mana als eine 2/2 Kreatur spielen. Die Kreatur kommt verdeckt ins Spiel, Dein Gegner weiss nicht, was sich darunter verbirgt. Du kannst sie zu einem beliebigen Zeitpunkt für ihre Morph-Kosten aufdecken. diff --git a/res/lang/howTo/en.properties b/res/lang/howTo/en.properties deleted file mode 100644 index ca12037e84f..00000000000 --- a/res/lang/howTo/en.properties +++ /dev/null @@ -1,68 +0,0 @@ -title=How to Play -message=How to Play - (Revised: September 2009.)\n\n\n\ -Introduction\n\n\ -1. This game is similar to many other trading card games. You start out with 20 life and your goal is to reduce your opponents life to zero by attacking with your creatures. The game will end when your life or the computer's life is reduced to zero. You play \"matches\" against the computer as a set of \"best two out of three\" games."\n\n\ -2. You use land to pay for spells. You can play one land a turn.\n\n\ -3. Each land produces a different magical energy. This magical energy is shortened to one letter on cards.\n\n\ -\ Forests make G\n\ -\ Swamps make B\n\ -\ Plains make W\n\ -\ Islands make U\n\ -\ Mountains make R\n\n\ -4. Each non-land card has a name and a cost. The cost looks like this \"2GG\" A cost like that would require two Forest lands and two other lands. The number 2 can be paid for by any land. A cost like \"R\", would require a Mountain land.\n\n\ -5. Creature cards stay in play and can attack on the turn AFTER they are played. A creature's attack and defense is shown like 2/4 meaning that the creature has an attack power of 2 and a defense of 4. If this creature receives 4 damage it is put into the graveyard.\n\n\ -6. When you attack with your creatures the computer has a chance to block with his creatures. When you attack you \"tap\" your creatures by turning them sideways. Your creatures will untap during your next turn. When you block, only untapped creatures can block. Usually a creature cannot attack and block during the same turn.\n\n\ -7. Sorcery and Instant cards have an effect on the game. After you play any card it goes on the stack to the left, click OK and the stack will clear. Sorcery cards can only be played during your turn and when the stack is empty. Instant cards can be played at any time and are more versatile.\n\n\ -8. If a card has a target, you get to choose that target. If the target is a player, click on that player's life points.\n\n\ -9. When you mulligan, the cards in your hand are shuffled into you deck and you are given 1 less card.\n\n\n\ -Legendary Cards\n\n\ -Legendary cards are powerful cards that can be either creatures, enchantments, lands, artifacts or planeswalkers. These cards can only exist once in the battlefield, and if another copy of the legendary card is played, all copies of the card are destroyed and sent to the graveyard.\n\n\n\ -Planeswalkers\n\n\ -There are 7 planeswalkers (Ajani Goldmane; Liliana Vess; Garruk Wildspeaker; Chandra Nalaar; Nicol Bolas; Elspeth, Knight-Errant; Nissa Revane) and they have specific rules for their special abilities.\n\n\ -You can only use one ability a turn. A planeswalker can be attacked, but you can also block with your creatures. For each 1 damage a planeswalker receives, you remove 1 counter. When a planeswalker doesn't have any counters, it goes to the graveyard.\n\n\n\ -Hybrid Mana and Multicolored Cards\n\n\ -1. Hybrid Mana Cards are unique in their casting cost as seen in the card. Instead of seeing a single color per mana symbol, these cards have 2 colors per mana symbol indicating that the player has the choice of playing either of the two. There are also cases where numbers and colors are combined together in one mana symbol, which indicates that either colorless or colored mana can be paid for each symbol. Hybrid cards are treated as two colors and as such can be said to be multicolored.\n\n\ -2. Multicolored Cards are slightly different than hybrid mana cards, as they require two or more different colors of mana, which may or not be in a single mana symbol. An example would be a card like Lightning Helix which requires one red and one white mana to be played.\n\n\n\ -Game Types\n\n\ -1. In Constructed Deck mode you can use any of the cards to make your deck. To make a constructed deck, from the Deck Editor select \"New Deck \u2013 Constructed\". A list of all the cards will be displayed.\n\n\ -2. In Sealed Deck mode you are given 75 cards and you have to make your deck from just those cards.\n\n\ -3. In Booster Draft mode you select 1 card at a time and then make your deck from just those cards. After you are done drafting you have to type in a filename, then go to the Deck Editor and from the menu select \"Open Deck - Draft\" and find the filename. This will allow you to construct your deck. You can then play against the other 7 computer opponents that were drafting with you.\n\n\ -4. In Quest Mode you start out with 275 cards, 200 are Basic Lands. As you complete matches in your quest you will win more cards. In easy mode you get more cards after every game, whether you win or lose. Your goal is to become world champion. Once you reach the end of your quest you can continue to play additional matches and win even more cards or you can start a new quest at anytime.\n\n\ -At the Quest Options screen you will be given a choice of four different difficulty levels. These difficulty levels control:\n\n\ -1) the length of the quest in matches,\n\ -2) the hardness of the AI deck that you will face as an opponent,\n\ -3) the number of wins or loses needed to get more cards,\n\ -4) the number of wins needed to advance a player to the next rank.\n\n\n\ -Quick Games\n\n\ -There may be occasions where you only have a few minutes to play a quick game or two. At the top of the New Game window you will see the three different game types with radio buttons. Click on the Constructed (Easy) button and it will become highlighted.\n\n\ -In the middle area of the New Game window you will see two menus, one labeled \"Your Deck\" and the other \"Opponent\". For a quick game you should select the \"Generate Deck\" or the \"Random\" option for both you and the computer.\n\n\ -1. The \"Generate Deck\" option creates a 2 color deck. This option randomly picks cards and sometimes your mana curve may be too high.\n\n\ -2. The \"Random\" option will randomly select one of the constructed decks that appear in the two deck menus. You either construct these decks in the Deck Editor or you imported a .deck file from the Deck Editor.\n\n\ -If you select the \"Random\" option and click on the \"Start Game\" button and the match fails to begin \u2026 well, this happens if you fail to have any constructed decks saved to your all-decks2 file. You should choose the \"Generate Deck\" option instead.\n\n\n\ -Resizable Game Area & Stack AI Land\n\n\ -1. The \"Resizable Game Area\" check box should be set to on if your monitor will display more than 1024 x 768 pixels. The window containing the Battlefield and the informational displays will fill the entire screen.\n\n\ -2. The \"Stack AI Land\" option will make the computer a more difficult opponent to beat. The computer will draw non-land cards from it's library after it has drawn enough lands to cover the cost of it's spells. Set the check box to on for a stronger opponent and set the check box to off for a weaker opponent.\n\n\ -At times, you may notice that when you click the \"Start Game\" button that the match fails to begin. In this case you should turn the \"Stack AI Land\" option to off.\n\n\n\ -Abilities\n\n\ -There are three kinds of abilities: Activated, Triggered, and Static.\n\n\ -1. Activated abilities contain a colon that separates cost and effect, these can be played any time you could play an instant. An example is Elvish Piper's ability. That cost also contains the tap symbol. For creatures only, abilities containing the tap- or untap symbol can be played starting the turn after the creature came into play. Another common cost for an activated ability is sacrificing the card. You do that by putting it into your graveyard. Such abilities can only be played once.\n\n\n\ -2. Triggered abilities aren't played, they simply trigger when their condition occurs. An example is Angel of Mercy: You don't play the ability, but gain 3 life when it comes into play.\n\n\ -3. Static abilities are neither played, nor do they trigger. They still have an effect for as long as they are in play. An example is Glorious Anthem. There is no condition or cost, your creatures are just stronger.\n\n\n\ -Keyword Abilities\n\n\ -1. Flying: Creatures with flying are harder to block. Only creatures with flying or reach can block other flyers.\n\n\ -2. Haste: Haste lets a creature attack or use any abilities immediately during this turn.\n\n\ -3. Fear: Creatures with fear can only be blocked by artifact or black creatures. Creatures with fear are harder to block.\n\n\ -4. Cycling: When you cycle a card you pay some cost like 2 and then you discard that card, and then draw a new card. Cycling helps make your deck more versatile.\n\n\ -5. Vigilance: This means that the creature will not tap when attacking. This creature can both attack and block during the same turn.\n\n\ -6. Trample: If you use 2/1 creature to block an attacking 3/4 creature with trample, you will still receive 2 damage because the 3/4 trampled over your 2/1 creature. Trample damage is calculated by (attack - blocker's defense), in this case 3-1 which is 2.\n\n\ -7. Deathtouch: When a creatures with deathtouch deals damage to a creature, that creature is destroyed.\n\n\ -8. Defender: Creatures with defender can not attack, they can only block another attacker.\n\n\ -9. First Strike and Double Strike: Creatures with first strike deals their combat damage first. Creatures with double strike deals their combat damage first, and then deals their combat damage a second time during the combat damage step.\n\n\ -10. Flash: You can play a creature with flash anytime that you can play an Instant.\n\n\ -11. Landwalk: Allows your creature to attack without being blocked if your opponent controls the appropriate land type.\n\n\ -12. Lifelink: With lifeline you gain life equal to the amount of damage dealt.\n\n\ -13. Protection: Can not be damaged, blocked or targeted by sources that match the protection type.\n\n\ -14. Reach: Creatures with reach can block flying creatures.\n\n\ -15. Shroud: Permanents with shroud can not be targeted by abilities or spells.\n\n\ -16. Regenerate: Regenerate is an ability that some creatures have which prevents them from being destroyed and put into the graveyard. When you regenerate a creature, it acts like a shield until end of turn.\n\n\ -17. Morph: A creature with morph can be played by usually paying 3 mana of any color and be treated as a 2/2 creature with no abilities rather than playing the creature's actual cost. This creature is placed face down in the battlefield and can be flipped face up anytime as long as you pay its morph cost which is indicated on the card. Once flipped face up the card is treated as the original card, the one that you would normally play with its original-full casting cost. diff --git a/res/lang/lang.properties b/res/lang/lang.properties deleted file mode 100644 index 162b2d4a8fb..00000000000 --- a/res/lang/lang.properties +++ /dev/null @@ -1,6 +0,0 @@ -#the preferred language (a key from the list below) -lang=en - -#the languages available -en--properties=en.properties -de--properties=de.properties diff --git a/res/pics_link/card-pictures_a.txt b/res/pics_link/card-pictures_a.txt deleted file mode 100644 index efc1b0bb386..00000000000 --- a/res/pics_link/card-pictures_a.txt +++ /dev/null @@ -1,556 +0,0 @@ -abandon_hope.jpg http://[server]/TE/Abandon%20Hope.full.jpg -abandoned_outpost.jpg http://[server]/OD/Abandoned%20Outpost.full.jpg -abbey_gargoyles.jpg http://[server]/HL/Abbey%20Gargoyles.full.jpg -abbey_matron.jpg http://[server]/HL/Abbey%20Matron1.full.jpg -abduction.jpg http://[server]/WL/Abduction.full.jpg -abeyance.jpg http://[server]/WL/Abeyance.full.jpg -abjure.jpg http://[server]/WL/Abjure.full.jpg -abolish.jpg http://[server]/PY/Abolish.full.jpg -abomination.jpg http://[server]/LG/Abomination.full.jpg -aboroth.jpg http://[server]/WL/Aboroth.full.jpg -aboshan_cephalid_emperor.jpg http://[server]/OD/Aboshan,%20Cephalid%20Emperor.full.jpg -aboshans_desire.jpg http://[server]/OD/Aboshan's%20Desire.full.jpg -about_face.jpg http://[server]/UL/About%20Face.full.jpg -absolute_grace.jpg http://[server]/US/Absolute%20Grace.full.jpg -absolute_law.jpg http://[server]/US/Absolute%20Law.full.jpg -absolver_thrull.jpg http://[server]/GP/Absolver%20Thrull.full.jpg -absorb.jpg http://[server]/IN/Absorb.full.jpg -absorb_vis.jpg http://[server]/CFX/Absorb%20Vis.full.jpg -abu_jafar.jpg http://[server]/CH/Abu%20Ja'far.full.jpg -abunas_chant.jpg http://[server]/FD/Abuna's%20Chant.full.jpg -abundance.jpg http://[server]/10E/Abundance.full.jpg -abyssal_gatekeeper.jpg http://[server]/WL/Abyssal%20Gatekeeper.full.jpg -abyssal_horror.jpg http://[server]/7E/Abyssal%20Horror.full.jpg -abyssal_hunter.jpg http://[server]/MI/Abyssal%20Hunter.full.jpg -abyssal_nightstalker.jpg http://[server]/P2/Abyssal%20Nightstalker.full.jpg -abyssal_nocturnus.jpg http://[server]/GP/Abyssal%20Nocturnus.full.jpg -abyssal_specter.jpg http://[server]/8E/Abyssal%20Specter.full.jpg -academy_rector.jpg http://[server]/UD/Academy%20Rector.full.jpg -academy_researchers.jpg http://[server]/10E/Academy%20Researchers.full.jpg -academy_ruins.jpg http://[server]/TSP/Academy%20Ruins.full.jpg -accelerate.jpg http://[server]/TO/Accelerate.full.jpg -accelerated_mutation.jpg http://[server]/SC/Accelerated%20Mutation.full.jpg -acceptable_losses.jpg http://[server]/OD/Acceptable%20Losses.full.jpg -accumulated_knowledge.jpg http://[server]/NE/Accumulated%20Knowledge.full.jpg -accursed_centaur.jpg http://[server]/ON/Accursed%20Centaur.full.jpg -ach!_hans_run!.jpg http://[server]/UNH/Ach!%20Hans,%20Run!.full.jpg -acid_rain.jpg http://[server]/LG/Acid%20Rain.full.jpg -acidic_dagger.jpg http://[server]/MI/Acidic%20Dagger.full.jpg -acidic_slime.jpg http://[server]/M10/Acidic%20Slime.full.jpg -acidic_sliver.jpg http://[server]/SH/Acidic%20Sliver.full.jpg -acidic_soil.jpg http://[server]/US/Acidic%20Soil.full.jpg -acolyte_of_xathrid.jpg http://[server]/M10/Acolyte%20of%20Xathrid.full.jpg -acorn_harvest.jpg http://[server]/TO/Acorn%20Harvest.full.jpg -acquire.jpg http://[server]/FD/Acquire.full.jpg -acridian.jpg http://[server]/US/Acridian.full.jpg -act_of_treason.jpg http://[server]/M10/Act%20of%20Treason.full.jpg -active_volcano.jpg http://[server]/LG/Active%20Volcano.full.jpg -ad_nauseam.jpg http://[server]/ALA/Ad%20Nauseam.full.jpg -adamaro_first_to_desire.jpg http://[server]/SOK/Adamaro,%20First%20to%20Desire.full.jpg -adarkar_sentinel.jpg http://[server]/IA/Adarkar%20Sentinel.full.jpg -adarkar_unicorn.jpg http://[server]/IA/Adarkar%20Unicorn.full.jpg -adarkar_valkyrie.jpg http://[server]/CS/Adarkar%20Valkyrie.full.jpg -adarkar_wastes.jpg http://[server]/10E/Adarkar%20Wastes.full.jpg -adarkar_windform.jpg http://[server]/CS/Adarkar%20Windform.full.jpg -adder_staff_boggart.jpg http://[server]/LRW/Adder-Staff%20Boggart.full.jpg -addle.jpg http://[server]/IN/Addle.full.jpg -adun_oakenshield.jpg http://[server]/LG/Adun%20Oakenshield.full.jpg -advance_scout.jpg http://[server]/TE/Advance%20Scout.full.jpg -advanced_hoverguard.jpg http://[server]/FD/Advanced%20Hoverguard.full.jpg -adventurers_guildhouse.jpg http://[server]/LG/Adventurers'%20Guildhouse.full.jpg -adventuring_gear.jpg http://[server]/ZEN/Adventuring%20Gear.full.jpg -advice_from_the_fae.jpg http://[server]/SHM/Advice%20from%20the%20Fae.full.jpg -aegis_of_honor.jpg http://[server]/OD/Aegis%20of%20Honor.full.jpg -aegis_of_the_meek.jpg http://[server]/IA/Aegis%20of%20the%20Meek.full.jpg -aeolipile.jpg http://[server]/FE/Aeolipile.full.jpg -aeon_chronicler.jpg http://[server]/PLC/Aeon%20Chronicler.full.jpg -aerathi_berserker.jpg http://[server]/LG/AErathi%20Berserker.full.jpg -aerial_caravan.jpg http://[server]/MM/Aerial%20Caravan.full.jpg -aerie_mystics.jpg http://[server]/CFX/Aerie%20Mystics.full.jpg -aerie_ouphes.jpg http://[server]/EVE/Aerie%20Ouphes.full.jpg -aesthetic_consultation.jpg http://[server]/UNH/Aesthetic%20Consultation.full.jpg -aesthir_glider.jpg http://[server]/AT/Aesthir%20Glider.full.jpg -aether_barrier.jpg http://[server]/NE/AEther%20Barrier.full.jpg -aether_burst.jpg http://[server]/OD/AEther%20Burst.full.jpg -aether_charge.jpg http://[server]/ON/AEther%20Charge.full.jpg -aether_figment.jpg http://[server]/ZEN/AEther%20Figment.full.jpg -aether_flash.jpg http://[server]/7E/Aether%20Flash.full.jpg -aether_membrane.jpg http://[server]/PLC/AEther%20Membrane.full.jpg -aether_mutation.jpg http://[server]/AP/AEther%20Mutation.full.jpg -aether_rift.jpg http://[server]/IN/AEther%20Rift.full.jpg -aether_shockwave.jpg http://[server]/SOK/Aether%20Shockwave.full.jpg -aether_snap.jpg http://[server]/DS/AEther%20Snap.full.jpg -aether_spellbomb.jpg http://[server]/MR/AEther%20Spellbomb.full.jpg -aether_sting.jpg http://[server]/UD/AEther%20Sting.full.jpg -aether_storm.jpg http://[server]/HL/AEther%20Storm.full.jpg -aether_tide.jpg http://[server]/EX/AEther%20Tide.full.jpg -aether_vial.jpg http://[server]/DS/AEther%20Vial.full.jpg -aether_web.jpg http://[server]/TSP/Aether%20Web.full.jpg -aetherflame_wall.jpg http://[server]/TSP/Aetherflame%20Wall.full.jpg -aethermages_touch.jpg http://[server]/DIS/AEthermage's%20Touch.full.jpg -aetherplasm.jpg http://[server]/GP/AEtherplasm.full.jpg -aethersnipe.jpg http://[server]/LRW/AEthersnipe.full.jpg -aethertow.jpg http://[server]/SHM/AEthertow.full.jpg -afflict.jpg http://[server]/OD/Afflict.full.jpg -afiya_grove.jpg http://[server]/MI/Afiya%20Grove.full.jpg -afterlife.jpg http://[server]/MM/Afterlife.full.jpg -aftershock.jpg http://[server]/TE/Aftershock.full.jpg -ageless_entity.jpg http://[server]/DS/Ageless%20Entity.full.jpg -ageless_sentinels.jpg http://[server]/SC/Ageless%20Sentinels.full.jpg -agent_of_masks.jpg http://[server]/GP/Agent%20of%20Masks.full.jpg -agent_of_shauku.jpg http://[server]/PY/Agent%20of%20Shauku.full.jpg -agent_of_stromgald.jpg http://[server]/AL/Agent%20of%20Stromgald1.full.jpg -aggravated_assault.jpg http://[server]/ON/Aggravated%20Assault.full.jpg -aggression.jpg http://[server]/IA/Aggression.full.jpg -aggressive_urge.jpg http://[server]/10E/Aggressive%20Urge.full.jpg -agility.jpg http://[server]/MI/Agility.full.jpg -agonizing_demise.jpg http://[server]/IN/Agonizing%20Demise.full.jpg -agonizing_memories.jpg http://[server]/10E/Agonizing%20Memories.full.jpg -agony_warp.jpg http://[server]/ALA/Agony%20Warp.full.jpg -agrus_kos_wojek_veteran.jpg http://[server]/RAV/Agrus%20Kos,%20Wojek%20Veteran.full.jpg -air_bladder.jpg http://[server]/NE/Air%20Bladder.full.jpg -air_elemental.jpg http://[server]/10E/Air%20Elemental.full.jpg -airborne_aid.jpg http://[server]/ON/Airborne%20Aid.full.jpg -airdrop_condor.jpg http://[server]/ON/Airdrop%20Condor.full.jpg -aisling_leprechaun.jpg http://[server]/LG/Aisling%20Leprechaun.full.jpg -ajani_goldmane.jpg http://[server]/M10/Ajani%20Goldmane.full.jpg -ajani_vengeant.jpg http://[server]/ALA/Ajani%20Vengeant.full.jpg -akki_avalanchers.jpg http://[server]/CHK/Akki%20Avalanchers.full.jpg -akki_blizzard_herder.jpg http://[server]/BOK/Akki%20Blizzard-Herder.full.jpg -akki_coalflinger.jpg http://[server]/CHK/Akki%20Coalflinger.full.jpg -akki_drillmaster.jpg http://[server]/SOK/Akki%20Drillmaster.full.jpg -akki_lavarunner.jpg http://[server]/CHK/Akki%20Lavarunner.full.jpg -akki_raider.jpg http://[server]/BOK/Akki%20Raider.full.jpg -akki_rockspeaker.jpg http://[server]/CHK/Akki%20Rockspeaker.full.jpg -akki_underling.jpg http://[server]/SOK/Akki%20Underling.full.jpg -akki_underminer.jpg http://[server]/CHK/Akki%20Underminer.full.jpg -akoum_refuge.jpg http://[server]/ZEN/Akoum%20Refuge.full.jpg -akrasan_squire.jpg http://[server]/ALA/Akrasan%20Squire.full.jpg -akroma_angel_of_fury.jpg http://[server]/PLC/Akroma,%20Angel%20of%20Fury.full.jpg -akroma_angel_of_wrath.jpg http://[server]/TSB/Akroma,%20Angel%20of%20Wrath.full.jpg -akromas_blessing.jpg http://[server]/ON/Akroma's%20Blessing.full.jpg -akromas_devoted.jpg http://[server]/LE/Akroma's%20Devoted.full.jpg -akromas_memorial.jpg http://[server]/FUT/Akroma's%20Memorial.full.jpg -akromas_vengeance.jpg http://[server]/ON/Akroma's%20Vengeance.full.jpg -akron_legionnaire.jpg http://[server]/LG/Akron%20Legionnaire.full.jpg -aku_djinn.jpg http://[server]/VI/Aku%20Djinn.full.jpg -akuta_born_of_ash.jpg http://[server]/SOK/Akuta,%20Born%20of%20Ash.full.jpg -al_abaras_carpet.jpg http://[server]/LG/Al-abara's%20Carpet.full.jpg -alabaster_dragon.jpg http://[server]/WL/Alabaster%20Dragon.full.jpg -alabaster_leech.jpg http://[server]/IN/Alabaster%20Leech.full.jpg -alabaster_potion.jpg http://[server]/LG/Alabaster%20Potion.full.jpg -alabaster_wall.jpg http://[server]/MM/Alabaster%20Wall.full.jpg -alaborn_cavalier.jpg http://[server]/P2/Alaborn%20Cavalier.full.jpg -alaborn_grenadier.jpg http://[server]/P2/Alaborn%20Grenadier.full.jpg -alaborn_musketeer.jpg http://[server]/P2/Alaborn%20Musketeer.full.jpg -alaborn_trooper.jpg http://[server]/P2/Alaborn%20Trooper.full.jpg -alaborn_veteran.jpg http://[server]/P2/Alaborn%20Veteran.full.jpg -alaborn_zealot.jpg http://[server]/P2/Alaborn%20Zealot.full.jpg -aladdin.jpg http://[server]/CH/Aladdin.full.jpg -aladdins_lamp.jpg http://[server]/R/Aladdin's%20Lamp.full.jpg -aladdins_ring.jpg http://[server]/9E/Aladdin's%20Ring.full.jpg -alarum.jpg http://[server]/MI/Alarum.full.jpg -albino_troll.jpg http://[server]/US/Albino%20Troll.full.jpg -alchors_tomb.jpg http://[server]/LG/Alchor's%20Tomb.full.jpg -aleatory.jpg http://[server]/MI/Aleatory.full.jpg -alert_shu_infantry.jpg http://[server]/P3/Alert%20Shu%20Infantry.full.jpg -alexi_zephyr_mage.jpg http://[server]/PY/Alexi,%20Zephyr%20Mage.full.jpg -alexis_cloak.jpg http://[server]/PY/Alexi's%20Cloak.full.jpg -algae_gharial.jpg http://[server]/ALA/Algae%20Gharial.full.jpg -ali_baba.jpg http://[server]/AN/Ali%20Baba.full.jpg -ali_from_cairo.jpg http://[server]/AN/Ali%20from%20Cairo.full.jpg -alibans_tower.jpg http://[server]/HL/Aliban's%20Tower1.full.jpg -all_hallows_eve.jpg http://[server]/LG/All%20Hallow's%20Eve.full.jpg -all_suns_dawn.jpg http://[server]/FD/All%20Suns'%20Dawn.full.jpg -allay.jpg http://[server]/EX/Allay.full.jpg -alley_grifters.jpg http://[server]/MM/Alley%20Grifters.full.jpg -allied_strategies.jpg http://[server]/PS/Allied%20Strategies.full.jpg -allosaurus_rider.jpg http://[server]/CS/Allosaurus%20Rider.full.jpg -alloy_golem.jpg http://[server]/IN/Alloy%20Golem.full.jpg -alluring_scent.jpg http://[server]/ST/Alluring%20Scent.full.jpg -alluring_siren.jpg http://[server]/M10/Alluring%20Siren.full.jpg -alms.jpg http://[server]/WL/Alms.full.jpg -alpha_kavu.jpg http://[server]/PS/Alpha%20Kavu.full.jpg -alpha_myr.jpg http://[server]/MR/Alpha%20Myr.full.jpg -alpha_status.jpg http://[server]/SC/Alpha%20Status.full.jpg -altar_golem.jpg http://[server]/EVE/Altar%20Golem.full.jpg -altar_of_bone.jpg http://[server]/IA/Altar%20of%20Bone.full.jpg -altar_of_dementia.jpg http://[server]/TE/Altar%20of%20Dementia.full.jpg -altar_of_shadows.jpg http://[server]/MR/Altar%20of%20Shadows.full.jpg -altars_light.jpg http://[server]/MR/Altar's%20Light.full.jpg -alter_reality.jpg http://[server]/TO/Alter%20Reality.full.jpg -aluren.jpg http://[server]/TE/Aluren.full.jpg -ambassador_laquatus.jpg http://[server]/10E/Ambassador%20Laquatus.full.jpg -ambassador_oak.jpg http://[server]/MOR/Ambassador%20Oak.full.jpg -amber_prison.jpg http://[server]/MI/Amber%20Prison.full.jpg -ambiguity.jpg http://[server]/UNH/Ambiguity.full.jpg -ambitions_cost.jpg http://[server]/8E/Ambition's%20Cost.full.jpg -ambush.jpg http://[server]/HL/Ambush.full.jpg -ambush_commander.jpg http://[server]/SC/Ambush%20Commander.full.jpg -ambush_party.jpg http://[server]/5E/Ambush%20Party.full.jpg -amnesia.jpg http://[server]/DK/Amnesia.full.jpg -amoeboid_changeling.jpg http://[server]/LRW/Amoeboid%20Changeling.full.jpg -amok.jpg http://[server]/SH/Amok.full.jpg -amphibious_kavu.jpg http://[server]/PS/Amphibious%20Kavu.full.jpg -amrou_kithkin.jpg http://[server]/LG/Amrou%20Kithkin.full.jpg -amrou_scout.jpg http://[server]/TSP/Amrou%20Scout.full.jpg -amrou_seekers.jpg http://[server]/TSP/Amrou%20Seekers.full.jpg -amugaba.jpg http://[server]/OD/Amugaba.full.jpg -amulet_of_kroog.jpg http://[server]/AQ/Amulet%20of%20Kroog.full.jpg -amulet_of_quoz.jpg http://[server]/IA/Amulet%20of%20Quoz.full.jpg -amulet_of_unmaking.jpg http://[server]/MI/Amulet%20of%20Unmaking.full.jpg -an_havva_constable.jpg http://[server]/HL/An-Havva%20Constable.full.jpg -an_havva_inn.jpg http://[server]/HL/An-Havva%20Inn.full.jpg -an_havva_township.jpg http://[server]/HL/An-Havva%20Township.full.jpg -an_zerrin_ruins.jpg http://[server]/HL/An-Zerrin%20Ruins.full.jpg -ana_battlemage.jpg http://[server]/PLC/Ana%20Battlemage.full.jpg -ana_disciple.jpg http://[server]/AP/Ana%20Disciple.full.jpg -ana_sanctuary.jpg http://[server]/AP/Ana%20Sanctuary.full.jpg -anaba_ancestor.jpg http://[server]/HL/Anaba%20Ancestor.full.jpg -anaba_bodyguard.jpg http://[server]/10E/Anaba%20Bodyguard.full.jpg -anaba_shaman.jpg http://[server]/9E/Anaba%20Shaman.full.jpg -anaba_spirit_crafter.jpg http://[server]/HL/Anaba%20Spirit%20Crafter.full.jpg -anaconda.jpg http://[server]/9E/Anaconda.full.jpg -anarchist.jpg http://[server]/9E/Anarchist.full.jpg -anarchy.jpg http://[server]/IA/Anarchy.full.jpg -anathemancer.jpg http://[server]/ARB/Anathemancer.full.jpg -anavolver.jpg http://[server]/AP/Anavolver.full.jpg -ancestors_chosen.jpg http://[server]/10E/Ancestor's%20Chosen.full.jpg -ancestors_prophet.jpg http://[server]/ON/Ancestor's%20Prophet.full.jpg -ancestral_knowledge.jpg http://[server]/WL/Ancestral%20Knowledge.full.jpg -ancestral_mask.jpg http://[server]/MM/Ancestral%20Mask.full.jpg -ancestral_memories.jpg http://[server]/MI/Ancestral%20Memories.full.jpg -ancestral_recall.jpg http://[server]/U/Ancestral%20Recall.full.jpg -ancestral_tribute.jpg http://[server]/OD/Ancestral%20Tribute.full.jpg -ancestral_vision.jpg http://[server]/TSP/Ancestral%20Vision.full.jpg -ancient_amphitheater.jpg http://[server]/LRW/Ancient%20Amphitheater.full.jpg -ancient_craving.jpg http://[server]/ST/Ancient%20Craving.full.jpg -ancient_den.jpg http://[server]/MR/Ancient%20Den.full.jpg -ancient_grudge.jpg http://[server]/TSP/Ancient%20Grudge.full.jpg -ancient_hydra.jpg http://[server]/NE/Ancient%20Hydra.full.jpg -ancient_kavu.jpg http://[server]/IN/Ancient%20Kavu.full.jpg -ancient_ooze.jpg http://[server]/SC/Ancient%20Ooze.full.jpg -ancient_runes.jpg http://[server]/TE/Ancient%20Runes.full.jpg -ancient_silverback.jpg http://[server]/9E/Ancient%20Silverback.full.jpg -ancient_spider.jpg http://[server]/PS/Ancient%20Spider.full.jpg -ancient_spring.jpg http://[server]/IN/Ancient%20Spring.full.jpg -ancient_tomb.jpg http://[server]/TE/Ancient%20Tomb.full.jpg -ancient_ziggurat.jpg http://[server]/CFX/Ancient%20Ziggurat.full.jpg -andradite_leech.jpg http://[server]/IN/Andradite%20Leech.full.jpg -angel_of_despair.jpg http://[server]/GP/Angel%20of%20Despair.full.jpg -angel_of_fury.jpg http://[server]/P2/Angel%20of%20Fury.full.jpg -angel_of_light.jpg http://[server]/ST/Angel%20of%20Light.full.jpg -angel_of_mercy.jpg http://[server]/10E/Angel%20of%20Mercy.full.jpg -angel_of_retribution.jpg http://[server]/TO/Angel%20of%20Retribution.full.jpg -angel_of_salvation.jpg http://[server]/FUT/Angel%20of%20Salvation.full.jpg -angelfire_crusader.jpg http://[server]/AP/Angelfire%20Crusader.full.jpg -angelic_benediction.jpg http://[server]/ALA/Angelic%20Benediction.full.jpg -angelic_blessing.jpg http://[server]/10E/Angelic%20Blessing.full.jpg -angelic_chorus.jpg http://[server]/10E/Angelic%20Chorus.full.jpg -angelic_curator.jpg http://[server]/UL/Angelic%20Curator.full.jpg -angelic_favor.jpg http://[server]/NE/Angelic%20Favor.full.jpg -angelic_page.jpg http://[server]/8E/Angelic%20Page.full.jpg -angelic_protector.jpg http://[server]/TE/Angelic%20Protector.full.jpg -angelic_renewal.jpg http://[server]/WL/Angelic%20Renewal.full.jpg -angelic_shield.jpg http://[server]/IN/Angelic%20Shield.full.jpg -angelic_voices.jpg http://[server]/LG/Angelic%20Voices.full.jpg -angelic_wall.jpg http://[server]/OD/Angelic%20Wall.full.jpg -angels_feather.jpg http://[server]/10E/Angel's%20Feather.full.jpg -angels_grace.jpg http://[server]/TSP/Angel's%20Grace.full.jpg -angels_herald.jpg http://[server]/ALA/Angel's%20Herald.full.jpg -angels_mercy.jpg http://[server]/M10/Angel's%20Mercy.full.jpg -angels_trumpet.jpg http://[server]/UL/Angel's%20Trumpet.full.jpg -angelsong.jpg http://[server]/ALA/Angelsong.full.jpg -anger.jpg http://[server]/JU/Anger.full.jpg -angry_mob.jpg http://[server]/DK/Angry%20Mob.full.jpg -angus_mackenzie.jpg http://[server]/LG/Angus%20Mackenzie.full.jpg -animal_boneyard.jpg http://[server]/OD/Animal%20Boneyard.full.jpg -animal_magnetism.jpg http://[server]/ON/Animal%20Magnetism.full.jpg -animate_artifact.jpg http://[server]/4E/Animate%20Artifact.full.jpg -animate_dead.jpg http://[server]/5E/Animate%20Dead.full.jpg -animate_land.jpg http://[server]/NE/Animate%20Land.full.jpg -animate_wall.jpg http://[server]/6E/Animate%20Wall.full.jpg -ankh_of_mishra.jpg http://[server]/6E/Ankh%20of%20Mishra.full.jpg -annex.jpg http://[server]/9E/Annex.full.jpg -annihilate.jpg http://[server]/IN/Annihilate.full.jpg -annul.jpg http://[server]/MR/Annul.full.jpg -anodet_lurker.jpg http://[server]/FD/Anodet%20Lurker.full.jpg -anoint.jpg http://[server]/TE/Anoint.full.jpg -ant_queen.jpg http://[server]/M10/Ant%20Queen.full.jpg -antagonism.jpg http://[server]/US/Antagonism.full.jpg -anthem_of_rakdos.jpg http://[server]/DIS/Anthem%20of%20Rakdos.full.jpg -anthroplasm.jpg http://[server]/UL/Anthroplasm.full.jpg -anti_magic_aura.jpg http://[server]/LG/Anti-Magic%20Aura.full.jpg -antler_skulkin.jpg http://[server]/EVE/Antler%20Skulkin.full.jpg -anurid_barkripper.jpg http://[server]/JU/Anurid%20Barkripper.full.jpg -anurid_brushhopper.jpg http://[server]/JU/Anurid%20Brushhopper.full.jpg -anurid_murkdiver.jpg http://[server]/ON/Anurid%20Murkdiver.full.jpg -anurid_scavenger.jpg http://[server]/TO/Anurid%20Scavenger.full.jpg -anurid_swarmsnapper.jpg http://[server]/JU/Anurid%20Swarmsnapper.full.jpg -anvil_of_bogardan.jpg http://[server]/VI/Anvil%20of%20Bogardan.full.jpg -apathy.jpg http://[server]/WL/Apathy.full.jpg -apes_of_rath.jpg http://[server]/TE/Apes%20of%20Rath.full.jpg -aphetto_alchemist.jpg http://[server]/ON/Aphetto%20Alchemist.full.jpg -aphetto_dredging.jpg http://[server]/ON/Aphetto%20Dredging.full.jpg -aphetto_exterminator.jpg http://[server]/LE/Aphetto%20Exterminator.full.jpg -aphetto_grifter.jpg http://[server]/ON/Aphetto%20Grifter.full.jpg -aphetto_runecaster.jpg http://[server]/SC/Aphetto%20Runecaster.full.jpg -aphetto_vulture.jpg http://[server]/ON/Aphetto%20Vulture.full.jpg -aphotic_wisps.jpg http://[server]/SHM/Aphotic%20Wisps.full.jpg -apocalypse.jpg http://[server]/TE/Apocalypse.full.jpg -apocalypse_chime.jpg http://[server]/HL/Apocalypse%20Chime.full.jpg -apocalypse_hydra.jpg http://[server]/CFX/Apocalypse%20Hydra.full.jpg -apothecary_initiate.jpg http://[server]/SHM/Apothecary%20Initiate.full.jpg -apprentice_necromancer.jpg http://[server]/UD/Apprentice%20Necromancer.full.jpg -apprentice_sorcerer.jpg http://[server]/P2/Apprentice%20Sorcerer.full.jpg -apprentice_wizard.jpg http://[server]/DK/Apprentice%20Wizard.full.jpg -aquamoeba.jpg http://[server]/TO/Aquamoeba.full.jpg -aquamorph_entity.jpg http://[server]/PLC/Aquamorph%20Entity.full.jpg -aquastrand_spider.jpg http://[server]/DIS/Aquastrand%20Spider.full.jpg -aquitects_will.jpg http://[server]/LRW/Aquitect's%20Will.full.jpg -araba_mothrider.jpg http://[server]/SOK/Araba%20Mothrider.full.jpg -arachnoid.jpg http://[server]/FD/Arachnoid.full.jpg -arashi_the_sky_asunder.jpg http://[server]/SOK/Arashi,%20the%20Sky%20Asunder.full.jpg -arbiter_of_knollridge.jpg http://[server]/LRW/Arbiter%20of%20Knollridge.full.jpg -arboria.jpg http://[server]/LG/Arboria.full.jpg -arc_blade.jpg http://[server]/FUT/Arc%20Blade.full.jpg -arc_lightning.jpg http://[server]/HOP/Arc%20Lightning.full.jpg -arc_mage.jpg http://[server]/NE/Arc%20Mage.full.jpg -arc_slogger.jpg http://[server]/MR/Arc-Slogger.full.jpg -arcades_sabboth.jpg http://[server]/LG/Arcades%20Sabboth.full.jpg -arcane_denial.jpg http://[server]/AL/Arcane%20Denial1.full.jpg -arcane_laboratory.jpg http://[server]/7E/Arcane%20Laboratory.full.jpg -arcane_sanctum.jpg http://[server]/ALA/Arcane%20Sanctum.full.jpg -arcane_spyglass.jpg http://[server]/DS/Arcane%20Spyglass.full.jpg -arcane_teachings.jpg http://[server]/10E/Arcane%20Teachings.full.jpg -arcanis_the_omnipotent.jpg http://[server]/10E/Arcanis%20the%20Omnipotent.full.jpg -arcanum_wings.jpg http://[server]/FUT/Arcanum%20Wings.full.jpg -arcbound_bruiser.jpg http://[server]/DS/Arcbound%20Bruiser.full.jpg -arcbound_crusher.jpg http://[server]/DS/Arcbound%20Crusher.full.jpg -arcbound_fiend.jpg http://[server]/DS/Arcbound%20Fiend.full.jpg -arcbound_hybrid.jpg http://[server]/DS/Arcbound%20Hybrid.full.jpg -arcbound_lancer.jpg http://[server]/DS/Arcbound%20Lancer.full.jpg -arcbound_overseer.jpg http://[server]/DS/Arcbound%20Overseer.full.jpg -arcbound_ravager.jpg http://[server]/DS/Arcbound%20Ravager.full.jpg -arcbound_reclaimer.jpg http://[server]/DS/Arcbound%20Reclaimer.full.jpg -arcbound_slith.jpg http://[server]/DS/Arcbound%20Slith.full.jpg -arcbound_stinger.jpg http://[server]/DS/Arcbound%20Stinger.full.jpg -arcbound_wanderer.jpg http://[server]/FD/Arcbound%20Wanderer.full.jpg -arcbound_worker.jpg http://[server]/DS/Arcbound%20Worker.full.jpg -archaeological_dig.jpg http://[server]/IN/Archaeological%20Dig.full.jpg -archangel.jpg http://[server]/VI/Archangel.full.jpg -archdemon_of_unx.jpg http://[server]/ALA/Archdemon%20of%20Unx.full.jpg -archery_training.jpg http://[server]/UD/Archery%20Training.full.jpg -architects_of_will.jpg http://[server]/ARB/Architects%20of%20Will.full.jpg -archive_trap.jpg http://[server]/ZEN/Archive%20Trap.full.jpg -archivist.jpg http://[server]/9E/Archivist.full.jpg -archmage_ascension.jpg http://[server]/ZEN/Archmage%20Ascension.full.jpg -archon_of_justice.jpg http://[server]/EVE/Archon%20of%20Justice.full.jpg -arctic_flats.jpg http://[server]/CS/Arctic%20Flats.full.jpg -arctic_foxes.jpg http://[server]/IA/Arctic%20Foxes.full.jpg -arctic_merfolk.jpg http://[server]/PS/Arctic%20Merfolk.full.jpg -arctic_nishoba.jpg http://[server]/CS/Arctic%20Nishoba.full.jpg -arctic_wolves.jpg http://[server]/WL/Arctic%20Wolves.full.jpg -arcum_dagsson.jpg http://[server]/CS/Arcum%20Dagsson.full.jpg -arcums_sleigh.jpg http://[server]/IA/Arcum's%20Sleigh.full.jpg -arcums_weathervane.jpg http://[server]/IA/Arcum's%20Weathervane.full.jpg -arcums_whistle.jpg http://[server]/IA/Arcum's%20Whistle.full.jpg -ardent_militia.jpg http://[server]/8E/Ardent%20Militia.full.jpg -ardent_plea.jpg http://[server]/ARB/Ardent%20Plea.full.jpg -ardent_soldier.jpg http://[server]/IN/Ardent%20Soldier.full.jpg -arena.jpg http://[server]/HPB/Arena.full.jpg -arena_of_the_ancients.jpg http://[server]/LG/Arena%20of%20the%20Ancients.full.jpg -arensons_aura.jpg http://[server]/IA/Arenson's%20Aura.full.jpg -argivian_archaeologist.jpg http://[server]/AQ/Argivian%20Archaeologist.full.jpg -argivian_blacksmith.jpg http://[server]/AQ/Argivian%20Blacksmith.full.jpg -argivian_find.jpg http://[server]/WL/Argivian%20Find.full.jpg -argivian_restoration.jpg http://[server]/WL/Argivian%20Restoration.full.jpg -argothian_elder.jpg http://[server]/US/Argothian%20Elder.full.jpg -argothian_enchantress.jpg http://[server]/US/Argothian%20Enchantress.full.jpg -argothian_pixies.jpg http://[server]/CH/Argothian%20Pixies.full.jpg -argothian_swine.jpg http://[server]/US/Argothian%20Swine.full.jpg -argothian_treefolk.jpg http://[server]/AQ/Argothian%20Treefolk.full.jpg -argothian_wurm.jpg http://[server]/US/Argothian%20Wurm.full.jpg -arid_mesa.jpg http://[server]/ZEN/Arid%20Mesa.full.jpg -ark_of_blight.jpg http://[server]/SC/Ark%20of%20Blight.full.jpg -armadillo_cloak.jpg http://[server]/IN/Armadillo%20Cloak.full.jpg -armageddon.jpg http://[server]/6E/Armageddon.full.jpg -armageddon_clock.jpg http://[server]/AQ/Armageddon%20Clock.full.jpg -armament_master.jpg http://[server]/ZEN/Armament%20Master.full.jpg -armed_response.jpg http://[server]/FD/Armed%20Response.full.jpg -armillary_sphere.jpg http://[server]/CFX/Armillary%20Sphere.full.jpg -armistice.jpg http://[server]/MM/Armistice.full.jpg -armor_of_faith.jpg http://[server]/IA/Armor%20of%20Faith.full.jpg -armor_of_thorns.jpg http://[server]/MI/Armor%20of%20Thorns.full.jpg -armor_sliver.jpg http://[server]/TE/Armor%20Sliver.full.jpg -armor_thrull.jpg http://[server]/FE/Armor%20Thrull1.full.jpg -armored_ascension.jpg http://[server]/M10/Armored%20Ascension.full.jpg -armored_galleon.jpg http://[server]/P2/Armored%20Galleon.full.jpg -armored_griffin.jpg http://[server]/P2/Armored%20Griffin.full.jpg -armored_guardian.jpg http://[server]/IN/Armored%20Guardian.full.jpg -armored_pegasus.jpg http://[server]/TE/Armored%20Pegasus.full.jpg -armorer_guildmage.jpg http://[server]/MI/Armorer%20Guildmage.full.jpg -arms_dealer.jpg http://[server]/MM/Arms%20Dealer.full.jpg -army_ants.jpg http://[server]/VI/Army%20Ants.full.jpg -army_of_allah.jpg http://[server]/AN/Army%20of%20Allah1.full.jpg -arnjlots_ascent.jpg http://[server]/IA/Arnjlot's%20Ascent.full.jpg -arrest.jpg http://[server]/MR/Arrest.full.jpg -arrogant_vampire.jpg http://[server]/PT/Arrogant%20Vampire.full.jpg -arrogant_wurm.jpg http://[server]/TO/Arrogant%20Wurm.full.jpg -arrow_volley_trap.jpg http://[server]/ZEN/Arrow%20Volley%20Trap.full.jpg -arsenal_thresher.jpg http://[server]/HOP/Arsenal%20Thresher.full.jpg -artful_looter.jpg http://[server]/UNH/Artful%20Looter.full.jpg -artifact_blast.jpg http://[server]/AQ/Artifact%20Blast.full.jpg -artifact_mutation.jpg http://[server]/IN/Artifact%20Mutation.full.jpg -artifact_possession.jpg http://[server]/AQ/Artifact%20Possession.full.jpg -artifact_ward.jpg http://[server]/AQ/Artifact%20Ward.full.jpg -artificers_intuition.jpg http://[server]/FD/Artificer's%20Intuition.full.jpg -artificial_evolution.jpg http://[server]/ON/Artificial%20Evolution.full.jpg -ascendant_evincar.jpg http://[server]/10E/Ascendant%20Evincar.full.jpg -ascending_aven.jpg http://[server]/ON/Ascending%20Aven.full.jpg -ashas_favor.jpg http://[server]/CFX/Asha's%20Favor.full.jpg -ashcoat_bear.jpg http://[server]/TSP/Ashcoat%20Bear.full.jpg -ashen_firebeast.jpg http://[server]/OD/Ashen%20Firebeast.full.jpg -ashen_ghoul.jpg http://[server]/IA/Ashen%20Ghoul.full.jpg -ashen_monstrosity.jpg http://[server]/BOK/Ashen%20Monstrosity.full.jpg -ashen_powder.jpg http://[server]/MI/Ashen%20Powder.full.jpg -ashen_skin_zubera.jpg http://[server]/CHK/Ashen-Skin%20Zubera.full.jpg -ashenmoor_cohort.jpg http://[server]/SHM/Ashenmoor%20Cohort.full.jpg -ashenmoor_gouger.jpg http://[server]/SHM/Ashenmoor%20Gouger.full.jpg -ashenmoor_liege.jpg http://[server]/SHM/Ashenmoor%20Liege.full.jpg -ashes_of_the_fallen.jpg http://[server]/SOK/Ashes%20of%20the%20Fallen.full.jpg -ashes_to_ashes.jpg http://[server]/DK/Ashes%20to%20Ashes.full.jpg -ashling_the_extinguisher.jpg http://[server]/EVE/Ashling,%20the%20Extinguisher.full.jpg -ashling_the_pilgrim.jpg http://[server]/LRW/Ashling%20the%20Pilgrim.full.jpg -ashlings_prerogative.jpg http://[server]/LRW/Ashling's%20Prerogative.full.jpg -ashnod.jpg http://[server]/VG/Ashnod.full.jpg -ashnods_altar.jpg http://[server]/6E/Ashnod's%20Altar.full.jpg -ashnods_battle_gear.jpg http://[server]/AQ/Ashnod's%20Battle%20Gear.full.jpg -ashnods_coupon.jpg http://[server]/UG/Ashnod's%20Coupon.full.jpg -ashnods_cylix.jpg http://[server]/AL/Ashnod's%20Cylix.full.jpg -ashnods_transmogrant.jpg http://[server]/CH/Ashnod's%20Transmogrant.full.jpg -asmira_holy_avenger.jpg http://[server]/MI/Asmira,%20Holy%20Avenger.full.jpg -aspect_of_mongoose.jpg http://[server]/TSP/Aspect%20of%20Mongoose.full.jpg -aspect_of_wolf.jpg http://[server]/5E/Aspect%20of%20Wolf.full.jpg -ass_whuppin.jpg http://[server]/UNH/Ass%20Whuppin'.full.jpg -assassinate.jpg http://[server]/M10/Assassinate.full.jpg -assassins_blade.jpg http://[server]/PT/Assassin's%20Blade.full.jpg -assault_battery.jpg http://[server]/HOP/Assault%20Battery.full.jpg -assault_zeppelid.jpg http://[server]/DIS/Assault%20Zeppelid.full.jpg -assaultbattery.jpg http://[server]/IN/AssaultBattery.full.jpg -assembly_hall.jpg http://[server]/MM/Assembly%20Hall.full.jpg -assembly_worker.jpg http://[server]/TSP/Assembly-Worker.full.jpg -assert_authority.jpg http://[server]/MR/Assert%20Authority.full.jpg -assquatch.jpg http://[server]/UNH/Assquatch.full.jpg -astral_slide.jpg http://[server]/ON/Astral%20Slide.full.jpg -astral_steel.jpg http://[server]/SC/Astral%20Steel.full.jpg -astrolabe.jpg http://[server]/AL/Astrolabe1.full.jpg -aswan_jaguar.jpg http://[server]/OV/Aswan%20Jaguar.full.jpg -atalya_samite_master.jpg http://[server]/IN/Atalya,%20Samite%20Master.full.jpg -atinlay_igpay.jpg http://[server]/UNH/Atinlay%20Igpay.full.jpg -atog.jpg http://[server]/MR/Atog.full.jpg -atogatog.jpg http://[server]/OD/Atogatog.full.jpg -attrition.jpg http://[server]/UD/Attrition.full.jpg -attunement.jpg http://[server]/US/Attunement.full.jpg -augur_il_vec.jpg http://[server]/FUT/Augur%20il-Vec.full.jpg -augur_of_skulls.jpg http://[server]/FUT/Augur%20of%20Skulls.full.jpg -augury_adept.jpg http://[server]/SHM/Augury%20Adept.full.jpg -aunties_hovel.jpg http://[server]/LRW/Auntie's%20Hovel.full.jpg -aunties_snitch.jpg http://[server]/MOR/Auntie's%20Snitch.full.jpg -aura_barbs.jpg http://[server]/BOK/Aura%20Barbs.full.jpg -aura_blast.jpg http://[server]/PS/Aura%20Blast.full.jpg -aura_extraction.jpg http://[server]/ON/Aura%20Extraction.full.jpg -aura_flux.jpg http://[server]/UL/Aura%20Flux.full.jpg -aura_fracture.jpg http://[server]/PY/Aura%20Fracture.full.jpg -aura_graft.jpg http://[server]/10E/Aura%20Graft.full.jpg -aura_mutation.jpg http://[server]/IN/Aura%20Mutation.full.jpg -aura_of_dominion.jpg http://[server]/CHK/Aura%20of%20Dominion.full.jpg -aura_of_silence.jpg http://[server]/10E/Aura%20of%20Silence.full.jpg -aura_shards.jpg http://[server]/IN/Aura%20Shards.full.jpg -aura_thief.jpg http://[server]/UD/Aura%20Thief.full.jpg -auramancer.jpg http://[server]/OD/Auramancer.full.jpg -auramancers_guise.jpg http://[server]/PLC/Auramancer's%20Guise.full.jpg -auratog.jpg http://[server]/TE/Auratog.full.jpg -auratouched_mage.jpg http://[server]/RAV/Auratouched%20Mage.full.jpg -aurification.jpg http://[server]/ON/Aurification.full.jpg -auriok_bladewarden.jpg http://[server]/MR/Auriok%20Bladewarden.full.jpg -auriok_champion.jpg http://[server]/FD/Auriok%20Champion.full.jpg -auriok_glaivemaster.jpg http://[server]/DS/Auriok%20Glaivemaster.full.jpg -auriok_salvagers.jpg http://[server]/FD/Auriok%20Salvagers.full.jpg -auriok_siege_sled.jpg http://[server]/DS/Auriok%20Siege%20Sled.full.jpg -auriok_steelshaper.jpg http://[server]/MR/Auriok%20Steelshaper.full.jpg -auriok_transfixer.jpg http://[server]/MR/Auriok%20Transfixer.full.jpg -auriok_windwalker.jpg http://[server]/FD/Auriok%20Windwalker.full.jpg -aurochs.jpg http://[server]/IA/Aurochs.full.jpg -aurochs_herd.jpg http://[server]/CS/Aurochs%20Herd.full.jpg -aurora_eidolon.jpg http://[server]/DIS/Aurora%20Eidolon.full.jpg -aurora_griffin.jpg http://[server]/PS/Aurora%20Griffin.full.jpg -auspicious_ancestor.jpg http://[server]/MI/Auspicious%20Ancestor.full.jpg -austere_command.jpg http://[server]/LRW/Austere%20Command.full.jpg -autochthon_wurm.jpg http://[server]/RAV/Autochthon%20Wurm.full.jpg -autumn_willow.jpg http://[server]/HL/Autumn%20Willow.full.jpg -avalanche.jpg http://[server]/IA/Avalanche.full.jpg -avalanche_riders.jpg http://[server]/FNM/Avalanche%20Riders.full.jpg -avarax.jpg http://[server]/ON/Avarax.full.jpg -avarice_totem.jpg http://[server]/FD/Avarice%20Totem.full.jpg -avatar_of_discord.jpg http://[server]/DIS/Avatar%20of%20Discord.full.jpg -avatar_of_fury.jpg http://[server]/PY/Avatar%20of%20Fury.full.jpg -avatar_of_hope.jpg http://[server]/8E/Avatar%20of%20Hope.full.jpg -avatar_of_me.jpg http://[server]/UNH/Avatar%20of%20Me.full.jpg -avatar_of_might.jpg http://[server]/10E/Avatar%20of%20Might.full.jpg -avatar_of_will.jpg http://[server]/PY/Avatar%20of%20Will.full.jpg -avatar_of_woe.jpg http://[server]/PY/Avatar%20of%20Woe.full.jpg -aven_archer.jpg http://[server]/OD/Aven%20Archer.full.jpg -aven_augur.jpg http://[server]/FUT/Aven%20Augur.full.jpg -aven_brigadier.jpg http://[server]/ON/Aven%20Brigadier.full.jpg -aven_cloudchaser.jpg http://[server]/10E/Aven%20Cloudchaser.full.jpg -aven_envoy.jpg http://[server]/LE/Aven%20Envoy.full.jpg -aven_farseer.jpg http://[server]/SC/Aven%20Farseer.full.jpg -aven_fateshaper.jpg http://[server]/ON/Aven%20Fateshaper.full.jpg -aven_fisher.jpg http://[server]/10E/Aven%20Fisher.full.jpg -aven_flock.jpg http://[server]/9E/Aven%20Flock.full.jpg -aven_fogbringer.jpg http://[server]/JU/Aven%20Fogbringer.full.jpg -aven_liberator.jpg http://[server]/SC/Aven%20Liberator.full.jpg -aven_mimeomancer.jpg http://[server]/ARB/Aven%20Mimeomancer.full.jpg -aven_mindcensor.jpg http://[server]/FUT/Aven%20Mindcensor.full.jpg -aven_redeemer.jpg http://[server]/LE/Aven%20Redeemer.full.jpg -aven_riftwatcher.jpg http://[server]/PLC/Aven%20Riftwatcher.full.jpg -aven_shrine.jpg http://[server]/OD/Aven%20Shrine.full.jpg -aven_smokeweaver.jpg http://[server]/OD/Aven%20Smokeweaver.full.jpg -aven_soulgazer.jpg http://[server]/ON/Aven%20Soulgazer.full.jpg -aven_squire.jpg http://[server]/CFX/Aven%20Squire.full.jpg -aven_trailblazer.jpg http://[server]/CFX/Aven%20Trailblazer.full.jpg -aven_trooper.jpg http://[server]/TO/Aven%20Trooper.full.jpg -aven_warcraft.jpg http://[server]/JU/Aven%20Warcraft.full.jpg -aven_warhawk.jpg http://[server]/LE/Aven%20Warhawk.full.jpg -aven_windreader.jpg http://[server]/10E/Aven%20Windreader.full.jpg -avenger_en_dal.jpg http://[server]/NE/Avenger%20en-Dal.full.jpg -avenging_angel.jpg http://[server]/TE/Avenging%20Angel.full.jpg -avenging_druid.jpg http://[server]/EX/Avenging%20Druid.full.jpg -avian_changeling.jpg http://[server]/LRW/Avian%20Changeling.full.jpg -avizoa.jpg http://[server]/WL/Avizoa.full.jpg -avoid_fate.jpg http://[server]/LG/Avoid%20Fate.full.jpg -awakener_druid.jpg http://[server]/M10/Awakener%20Druid.full.jpg -awakening.jpg http://[server]/SH/Awakening.full.jpg -awe_strike.jpg http://[server]/MR/Awe%20Strike.full.jpg -awesome_presence.jpg http://[server]/AL/Awesome%20Presence1.full.jpg -awol.jpg http://[server]/UNH/AWOL.full.jpg -axegrinder_giant.jpg http://[server]/LRW/Axegrinder%20Giant.full.jpg -axelrod_gunnarson.jpg http://[server]/LG/Axelrod%20Gunnarson.full.jpg -ayesha_tanaka.jpg http://[server]/LG/Ayesha%20Tanaka.full.jpg -aysen_abbey.jpg http://[server]/HL/Aysen%20Abbey.full.jpg -aysen_bureaucrats.jpg http://[server]/5E/Aysen%20Bureaucrats.full.jpg -aysen_crusader.jpg http://[server]/HL/Aysen%20Crusader.full.jpg -aysen_highway.jpg http://[server]/HL/Aysen%20Highway.full.jpg -ayumi_the_last_visitor.jpg http://[server]/SOK/Ayumi,%20the%20Last%20Visitor.full.jpg -azami_lady_of_scrolls.jpg http://[server]/CHK/Azami,%20Lady%20of%20Scrolls.full.jpg -azimaet_drake.jpg http://[server]/MI/Azimaet%20Drake.full.jpg -azorius_aethermage.jpg http://[server]/DIS/Azorius%20AEthermage.full.jpg -azorius_chancery.jpg http://[server]/DIS/Azorius%20Chancery.full.jpg -azorius_first_wing.jpg http://[server]/DIS/Azorius%20First-Wing.full.jpg -azorius_guildmage.jpg http://[server]/DIS/Azorius%20Guildmage.full.jpg -azorius_herald.jpg http://[server]/DIS/Azorius%20Herald.full.jpg -azorius_ploy.jpg http://[server]/DIS/Azorius%20Ploy.full.jpg -azorius_signet.jpg http://[server]/DIS/Azorius%20Signet.full.jpg -azure_drake.jpg http://[server]/9E/Azure%20Drake.full.jpg -azusa_lost_but_seeking.jpg http://[server]/CHK/Azusa,%20Lost%20but%20Seeking.full.jpg diff --git a/res/pics_link/card-pictures_b.txt b/res/pics_link/card-pictures_b.txt deleted file mode 100644 index a460629f15b..00000000000 --- a/res/pics_link/card-pictures_b.txt +++ /dev/null @@ -1,600 +0,0 @@ -b.f.m..jpg http://mtgpics.chutography.com/UG/B.F.M.%201.full.jpg -b_i_n_g_o.jpg http://[server]/UNH/B-I-N-G-O.full.jpg -back_to_basics.jpg http://[server]/US/Back%20to%20Basics.full.jpg -backdraft.jpg http://[server]/LG/Backdraft.full.jpg -backfire.jpg http://[server]/LG/Backfire.full.jpg -backlash.jpg http://[server]/IN/Backlash.full.jpg -backslide.jpg http://[server]/ON/Backslide.full.jpg -bad_ass.jpg http://[server]/UNH/Bad%20Ass.full.jpg -bad_moon.jpg http://[server]/5E/Bad%20Moon.full.jpg -bad_river.jpg http://[server]/MI/Bad%20River.full.jpg -badlands.jpg http://[server]/U/Badlands.full.jpg -bakis_curse.jpg http://[server]/HL/Baki's%20Curse.full.jpg -baku_altar.jpg http://[server]/BOK/Baku%20Altar.full.jpg -bala_ged_thief.jpg http://[server]/ZEN/Bala%20Ged%20Thief.full.jpg -balance.jpg http://[server]/4E/Balance.full.jpg -balance_of_power.jpg http://[server]/8E/Balance%20of%20Power.full.jpg -balancing_act.jpg http://[server]/OD/Balancing%20Act.full.jpg -balduvian_barbarians.jpg http://[server]/9E/Balduvian%20Barbarians.full.jpg -balduvian_bears.jpg http://[server]/IA/Balduvian%20Bears.full.jpg -balduvian_conjurer.jpg http://[server]/IA/Balduvian%20Conjurer.full.jpg -balduvian_dead.jpg http://[server]/AL/Balduvian%20Dead.full.jpg -balduvian_fallen.jpg http://[server]/CS/Balduvian%20Fallen.full.jpg -balduvian_frostwaker.jpg http://[server]/CS/Balduvian%20Frostwaker.full.jpg -balduvian_horde.jpg http://[server]/OV/Balduvian%20Horde.full.jpg -balduvian_hydra.jpg http://[server]/IA/Balduvian%20Hydra.full.jpg -balduvian_rage.jpg http://[server]/CS/Balduvian%20Rage.full.jpg -balduvian_shaman.jpg http://[server]/IA/Balduvian%20Shaman.full.jpg -balduvian_trading_post.jpg http://[server]/AL/Balduvian%20Trading%20Post.full.jpg -balduvian_war_makers.jpg http://[server]/AL/Balduvian%20War-Makers1.full.jpg -balduvian_warlord.jpg http://[server]/CS/Balduvian%20Warlord.full.jpg -balefire_liege.jpg http://[server]/EVE/Balefire%20Liege.full.jpg -baleful_stare.jpg http://[server]/9E/Baleful%20Stare.full.jpg -ball_lightning.jpg http://[server]/M10/Ball%20Lightning.full.jpg -ballista_squad.jpg http://[server]/10E/Ballista%20Squad.full.jpg -balloon_peddler.jpg http://[server]/MM/Balloon%20Peddler.full.jpg -ballynock_cohort.jpg http://[server]/SHM/Ballynock%20Cohort.full.jpg -ballynock_trapper.jpg http://[server]/EVE/Ballynock%20Trapper.full.jpg -ballyrush_banneret.jpg http://[server]/MOR/Ballyrush%20Banneret.full.jpg -balm_of_restoration.jpg http://[server]/FE/Balm%20of%20Restoration.full.jpg -baloth_cage_trap.jpg http://[server]/ZEN/Baloth%20Cage%20Trap.full.jpg -baloth_woodcrasher.jpg http://[server]/ZEN/Baloth%20Woodcrasher.full.jpg -balshan_beguiler.jpg http://[server]/OD/Balshan%20Beguiler.full.jpg -balshan_collaborator.jpg http://[server]/TO/Balshan%20Collaborator.full.jpg -balshan_griffin.jpg http://[server]/OD/Balshan%20Griffin.full.jpg -balthor_the_defiled.jpg http://[server]/JU/Balthor%20the%20Defiled.full.jpg -balthor_the_stout.jpg http://[server]/TO/Balthor%20the%20Stout.full.jpg -bamboozle.jpg http://[server]/OD/Bamboozle.full.jpg -bandage.jpg http://[server]/10E/Bandage.full.jpg -bane_of_the_living.jpg http://[server]/LE/Bane%20of%20the%20Living.full.jpg -banefire.jpg http://[server]/CFX/Banefire.full.jpg -baneslayer_angel.jpg http://[server]/M10/Baneslayer%20Angel.full.jpg -banewasp_affliction.jpg http://[server]/ALA/Banewasp%20Affliction.full.jpg -banishing_knack.jpg http://[server]/EVE/Banishing%20Knack.full.jpg -banshee.jpg http://[server]/CH/Banshee.full.jpg -banshees_blade.jpg http://[server]/MR/Banshee's%20Blade.full.jpg -bant_battlemage.jpg http://[server]/ALA/Bant%20Battlemage.full.jpg -bant_charm.jpg http://[server]/ALA/Bant%20Charm.full.jpg -bant_panorama.jpg http://[server]/ALA/Bant%20Panorama.full.jpg -bant_sojourners.jpg http://[server]/ARB/Bant%20Sojourners.full.jpg -bant_sureblade.jpg http://[server]/ARB/Bant%20Sureblade.full.jpg -barbarian_bully.jpg http://[server]/JU/Barbarian%20Bully.full.jpg -barbarian_general.jpg http://[server]/P3/Barbarian%20General.full.jpg -barbarian_guides.jpg http://[server]/IA/Barbarian%20Guides.full.jpg -barbarian_horde.jpg http://[server]/P3/Barbarian%20Horde.full.jpg -barbarian_lunatic.jpg http://[server]/OD/Barbarian%20Lunatic.full.jpg -barbarian_outcast.jpg http://[server]/TO/Barbarian%20Outcast.full.jpg -barbarian_riftcutter.jpg http://[server]/RAV/Barbarian%20Riftcutter.full.jpg -barbarian_ring.jpg http://[server]/OD/Barbarian%20Ring.full.jpg -barbary_apes.jpg http://[server]/LG/Barbary%20Apes.full.jpg -barbed_back_wurm.jpg http://[server]/MI/Barbed-Back%20Wurm.full.jpg -barbed_field.jpg http://[server]/PY/Barbed%20Field.full.jpg -barbed_foliage.jpg http://[server]/MI/Barbed%20Foliage.full.jpg -barbed_lightning.jpg http://[server]/DS/Barbed%20Lightning.full.jpg -barbed_sextant.jpg http://[server]/IA/Barbed%20Sextant.full.jpg -barbed_shocker.jpg http://[server]/TSP/Barbed%20Shocker.full.jpg -barbed_sliver.jpg http://[server]/TE/Barbed%20Sliver.full.jpg -barbed_wire.jpg http://[server]/MM/Barbed%20Wire.full.jpg -barbtooth_wurm.jpg http://[server]/ST/Barbtooth%20Wurm.full.jpg -bargain.jpg http://[server]/ST/Bargain.full.jpg -bargaining_table.jpg http://[server]/MM/Bargaining%20Table.full.jpg -barishi.jpg http://[server]/WL/Barishi.full.jpg -barkhide_mauler.jpg http://[server]/ON/Barkhide%20Mauler.full.jpg -barkshell_blessing.jpg http://[server]/SHM/Barkshell%20Blessing.full.jpg -barktooth_warbeard.jpg http://[server]/LG/Barktooth%20Warbeard.full.jpg -barls_cage.jpg http://[server]/DK/Barl's%20Cage.full.jpg -baron_sengir.jpg http://[server]/HL/Baron%20Sengir.full.jpg -barrel_down_sokenzan.jpg http://[server]/SOK/Barrel%20Down%20Sokenzan.full.jpg -barreling_attack.jpg http://[server]/MI/Barreling%20Attack.full.jpg -barren_glory.jpg http://[server]/FUT/Barren%20Glory.full.jpg -barren_moor.jpg http://[server]/ON/Barren%20Moor.full.jpg -barrenton_cragtreads.jpg http://[server]/SHM/Barrenton%20Cragtreads.full.jpg -barrenton_medic.jpg http://[server]/SHM/Barrenton%20Medic.full.jpg -barrin.jpg http://[server]/VG/Barrin.full.jpg -barrin_master_wizard.jpg http://[server]/US/Barrin,%20Master%20Wizard.full.jpg -barrins_codex.jpg http://[server]/US/Barrin's%20Codex.full.jpg -barrins_spite.jpg http://[server]/IN/Barrin's%20Spite.full.jpg -barrins_unmaking.jpg http://[server]/IN/Barrin's%20Unmaking.full.jpg -barrow_ghoul.jpg http://[server]/WL/Barrow%20Ghoul.full.jpg -bartel_runeaxe.jpg http://[server]/LG/Bartel%20Runeaxe.full.jpg -barter_in_blood.jpg http://[server]/MR/Barter%20in%20Blood.full.jpg -baru_fist_of_krosa.jpg http://[server]/FUT/Baru,%20Fist%20of%20Krosa.full.jpg -basal_sliver.jpg http://[server]/TSP/Basal%20Sliver.full.jpg -basal_thrull.jpg http://[server]/FE/Basal%20Thrull1.full.jpg -basalt_gargoyle.jpg http://[server]/TSP/Basalt%20Gargoyle.full.jpg -basalt_golem.jpg http://[server]/MI/Basalt%20Golem.full.jpg -basalt_monolith.jpg http://[server]/U/Basalt%20Monolith.full.jpg -bash_to_bits.jpg http://[server]/OD/Bash%20to%20Bits.full.jpg -basking_rootwalla.jpg http://[server]/TO/Basking%20Rootwalla.full.jpg -bathe_in_light.jpg http://[server]/RAV/Bathe%20in%20Light.full.jpg -baton_of_courage.jpg http://[server]/FD/Baton%20of%20Courage.full.jpg -baton_of_morale.jpg http://[server]/IA/Baton%20of%20Morale.full.jpg -battered_golem.jpg http://[server]/FD/Battered%20Golem.full.jpg -battering_craghorn.jpg http://[server]/ON/Battering%20Craghorn.full.jpg -battering_ram.jpg http://[server]/5E/Battering%20Ram.full.jpg -battering_sliver.jpg http://[server]/PLC/Battering%20Sliver.full.jpg -battering_wurm.jpg http://[server]/GP/Battering%20Wurm.full.jpg -battle_cry.jpg http://[server]/IA/Battle%20Cry.full.jpg -battle_frenzy.jpg http://[server]/IA/Battle%20Frenzy.full.jpg -battle_mad_ronin.jpg http://[server]/CHK/Battle-Mad%20Ronin.full.jpg -battle_mastery.jpg http://[server]/LRW/Battle%20Mastery.full.jpg -battle_of_wits.jpg http://[server]/OD/Battle%20of%20Wits.full.jpg -battle_rampart.jpg http://[server]/MM/Battle%20Rampart.full.jpg -battle_screech.jpg http://[server]/JU/Battle%20Screech.full.jpg -battle_squadron.jpg http://[server]/MM/Battle%20Squadron.full.jpg -battle_strain.jpg http://[server]/OD/Battle%20Strain.full.jpg -battlefield_forge.jpg http://[server]/10E/Battlefield%20Forge.full.jpg -battlefield_medic.jpg http://[server]/ON/Battlefield%20Medic.full.jpg -battlefield_percher.jpg http://[server]/NE/Battlefield%20Percher.full.jpg -battlefield_scrounger.jpg http://[server]/JU/Battlefield%20Scrounger.full.jpg -battlegate_mimic.jpg http://[server]/EVE/Battlegate%20Mimic.full.jpg -battlegrace_angel.jpg http://[server]/ALA/Battlegrace%20Angel.full.jpg -battlegrowth.jpg http://[server]/MR/Battlegrowth.full.jpg -battletide_alchemist.jpg http://[server]/MOR/Battletide%20Alchemist.full.jpg -battlewand_oak.jpg http://[server]/LRW/Battlewand%20Oak.full.jpg -battlewise_aven.jpg http://[server]/JU/Battlewise%20Aven.full.jpg -batwing_brume.jpg http://[server]/EVE/Batwing%20Brume.full.jpg -bay_falcon.jpg http://[server]/MI/Bay%20Falcon.full.jpg -bayou.jpg http://[server]/U/Bayou.full.jpg -bayou_dragonfly.jpg http://[server]/TE/Bayou%20Dragonfly.full.jpg -bazaar_of_baghdad.jpg http://[server]/AN/Bazaar%20of%20Baghdad.full.jpg -bazaar_of_wonders.jpg http://[server]/MI/Bazaar%20of%20Wonders.full.jpg -beacon_behemoth.jpg http://[server]/CFX/Beacon%20Behemoth.full.jpg -beacon_hawk.jpg http://[server]/DIS/Beacon%20Hawk.full.jpg -beacon_of_creation.jpg http://[server]/FD/Beacon%20of%20Creation.full.jpg -beacon_of_destiny.jpg http://[server]/LE/Beacon%20of%20Destiny.full.jpg -beacon_of_destruction.jpg http://[server]/10E/Beacon%20of%20Destruction.full.jpg -beacon_of_immortality.jpg http://[server]/10E/Beacon%20of%20Immortality.full.jpg -beacon_of_tomorrows.jpg http://[server]/FD/Beacon%20of%20Tomorrows.full.jpg -beacon_of_unrest.jpg http://[server]/10E/Beacon%20of%20Unrest.full.jpg -bear_cub.jpg http://[server]/P2/Bear%20Cub.full.jpg -bearscape.jpg http://[server]/OD/Bearscape.full.jpg -beast_attack.jpg http://[server]/OD/Beast%20Attack.full.jpg -beast_hunt.jpg http://[server]/HOP/Beast%20Hunt.full.jpg -beast_of_burden.jpg http://[server]/9E/Beast%20of%20Burden.full.jpg -beast_walkers.jpg http://[server]/HL/Beast%20Walkers.full.jpg -beastmaster_ascension.jpg http://[server]/ZEN/Beastmaster%20Ascension.full.jpg -beastmasters_magemark.jpg http://[server]/GP/Beastmaster's%20Magemark.full.jpg -beasts_of_bogardan.jpg http://[server]/LG/Beasts%20of%20Bogardan.full.jpg -beckon_apparition.jpg http://[server]/EVE/Beckon%20Apparition.full.jpg -bedlam.jpg http://[server]/7E/Bedlam.full.jpg -bee_sting.jpg http://[server]/PT/Bee%20Sting.full.jpg -befoul.jpg http://[server]/7E/Befoul.full.jpg -behemoth_sledge.jpg http://[server]/ARB/Behemoth%20Sledge.full.jpg -behemoths_herald.jpg http://[server]/ALA/Behemoth's%20Herald.full.jpg -belbes_armor.jpg http://[server]/NE/Belbe's%20Armor.full.jpg -belbes_percher.jpg http://[server]/NE/Belbe's%20Percher.full.jpg -belbes_portal.jpg http://[server]/NE/Belbe's%20Portal.full.jpg -belfry_spirit.jpg http://[server]/GP/Belfry%20Spirit.full.jpg -belligerent_hatchling.jpg http://[server]/EVE/Belligerent%20Hatchling.full.jpg -bellowing_fiend.jpg http://[server]/7E/Bellowing%20Fiend.full.jpg -belltower_sphinx.jpg http://[server]/RAV/Belltower%20Sphinx.full.jpg -beloved_chaplain.jpg http://[server]/OD/Beloved%20Chaplain.full.jpg -ben_ben_akki_hermit.jpg http://[server]/CHK/Ben-Ben,%20Akki%20Hermit.full.jpg -benalish_cavalry.jpg http://[server]/TSP/Benalish%20Cavalry.full.jpg -benalish_commander.jpg http://[server]/PLC/Benalish%20Commander.full.jpg -benalish_emissary.jpg http://[server]/IN/Benalish%20Emissary.full.jpg -benalish_heralds.jpg http://[server]/IN/Benalish%20Heralds.full.jpg -benalish_hero.jpg http://[server]/5E/Benalish%20Hero.full.jpg -benalish_infantry.jpg http://[server]/WL/Benalish%20Infantry.full.jpg -benalish_knight.jpg http://[server]/10E/Benalish%20Knight.full.jpg -benalish_lancer.jpg http://[server]/IN/Benalish%20Lancer.full.jpg -benalish_missionary.jpg http://[server]/WL/Benalish%20Missionary.full.jpg -benalish_trapper.jpg http://[server]/IN/Benalish%20Trapper.full.jpg -bend_or_break.jpg http://[server]/IN/Bend%20or%20Break.full.jpg -benediction_of_moons.jpg http://[server]/GP/Benediction%20of%20Moons.full.jpg -benevolent_ancestor.jpg http://[server]/RAV/Benevolent%20Ancestor.full.jpg -benevolent_bodyguard.jpg http://[server]/JU/Benevolent%20Bodyguard.full.jpg -benevolent_unicorn.jpg http://[server]/MI/Benevolent%20Unicorn.full.jpg -benthic_behemoth.jpg http://[server]/7E/Benthic%20Behemoth.full.jpg -benthic_djinn.jpg http://[server]/MI/Benthic%20Djinn.full.jpg -benthic_explorers.jpg http://[server]/AL/Benthic%20Explorers1.full.jpg -benthicore.jpg http://[server]/LRW/Benthicore.full.jpg -bequeathal.jpg http://[server]/EX/Bequeathal.full.jpg -bereavement.jpg http://[server]/7E/Bereavement.full.jpg -berserk.jpg http://[server]/U/Berserk.full.jpg -berserk_murlodont.jpg http://[server]/LE/Berserk%20Murlodont.full.jpg -berserkers_of_blood_ridge.jpg http://[server]/M10/Berserkers%20of%20Blood%20Ridge.full.jpg -beseech_the_queen.jpg http://[server]/SHM/Beseech%20the%20Queen.full.jpg -bestial_fury.jpg http://[server]/AL/Bestial%20Fury1.full.jpg -betrayal.jpg http://[server]/VI/Betrayal.full.jpg -betrayal_of_flesh.jpg http://[server]/MR/Betrayal%20of%20Flesh.full.jpg -betrothed_of_fire.jpg http://[server]/WL/Betrothed%20of%20Fire.full.jpg -bewilder.jpg http://[server]/TSP/Bewilder.full.jpg -bifurcate.jpg http://[server]/MM/Bifurcate.full.jpg -big_game_hunter.jpg http://[server]/PLC/Big%20Game%20Hunter.full.jpg -bile_urchin.jpg http://[server]/BOK/Bile%20Urchin.full.jpg -bind.jpg http://[server]/IN/Bind.full.jpg -binding_agony.jpg http://[server]/MI/Binding%20Agony.full.jpg -binding_grasp.jpg http://[server]/IA/Binding%20Grasp.full.jpg -biomantic_mastery.jpg http://[server]/DIS/Biomantic%20Mastery.full.jpg -bioplasm.jpg http://[server]/GP/Bioplasm.full.jpg -biorhythm.jpg http://[server]/9E/Biorhythm.full.jpg -birchlore_rangers.jpg http://[server]/ON/Birchlore%20Rangers.full.jpg -bird_maiden.jpg http://[server]/5E/Bird%20Maiden.full.jpg -birds_of_paradise.jpg http://[server]/M10/Birds%20of%20Paradise.full.jpg -biting_tether.jpg http://[server]/SHM/Biting%20Tether.full.jpg -bitter_ordeal.jpg http://[server]/FUT/Bitter%20Ordeal.full.jpg -bitterblossom.jpg http://[server]/MOR/Bitterblossom.full.jpg -bituminous_blast.jpg http://[server]/ARB/Bituminous%20Blast.full.jpg -black_carriage.jpg http://[server]/HL/Black%20Carriage.full.jpg -black_knight.jpg http://[server]/M10/Black%20Knight.full.jpg -black_lotus.jpg http://[server]/U/Black%20Lotus.full.jpg -black_mana_battery.jpg http://[server]/LG/Black%20Mana%20Battery.full.jpg -black_market.jpg http://[server]/MM/Black%20Market.full.jpg -black_poplar_shaman.jpg http://[server]/LRW/Black%20Poplar%20Shaman.full.jpg -black_scarab.jpg http://[server]/IA/Black%20Scarab.full.jpg -black_vise.jpg http://[server]/4E/Black%20Vise.full.jpg -black_ward.jpg http://[server]/4E/Black%20Ward.full.jpg -blacker_lotus.jpg http://[server]/OV/Blacker%20Lotus.full.jpg -blackmail.jpg http://[server]/9E/Blackmail.full.jpg -blade_of_the_bloodchief.jpg http://[server]/ZEN/Blade%20of%20the%20Bloodchief.full.jpg -blade_of_the_sixth_pride.jpg http://[server]/FUT/Blade%20of%20the%20Sixth%20Pride.full.jpg -blade_sliver.jpg http://[server]/LE/Blade%20Sliver.full.jpg -blademane_baku.jpg http://[server]/BOK/Blademane%20Baku.full.jpg -blades_of_velis_vel.jpg http://[server]/LRW/Blades%20of%20Velis%20Vel.full.jpg -bladetusk_boar.jpg http://[server]/ZEN/Bladetusk%20Boar.full.jpg -bladewing_the_risen.jpg http://[server]/SC/Bladewing%20the%20Risen.full.jpg -bladewings_thrall.jpg http://[server]/SC/Bladewing's%20Thrall.full.jpg -blanchwood_armor.jpg http://[server]/10E/Blanchwood%20Armor.full.jpg -blanchwood_treefolk.jpg http://[server]/US/Blanchwood%20Treefolk.full.jpg -blanket_of_night.jpg http://[server]/VI/Blanket%20of%20Night.full.jpg -blast_from_the_past.jpg http://[server]/UNH/Blast%20from%20the%20Past.full.jpg -blasted_landscape.jpg http://[server]/US/Blasted%20Landscape.full.jpg -blaster_mage.jpg http://[server]/MM/Blaster%20Mage.full.jpg -blasting_station.jpg http://[server]/FD/Blasting%20Station.full.jpg -blastoderm.jpg http://[server]/NE/Blastoderm.full.jpg -blatant_thievery.jpg http://[server]/ON/Blatant%20Thievery.full.jpg -blaze.jpg http://[server]/10E/Blaze.full.jpg -blaze_of_glory.jpg http://[server]/U/Blaze%20of%20Glory.full.jpg -blazethorn_scarecrow.jpg http://[server]/SHM/Blazethorn%20Scarecrow.full.jpg -blazing_archon.jpg http://[server]/RAV/Blazing%20Archon.full.jpg -blazing_blade_askari.jpg http://[server]/TSP/Blazing%20Blade%20Askari.full.jpg -blazing_effigy.jpg http://[server]/LG/Blazing%20Effigy.full.jpg -blazing_salvo.jpg http://[server]/OD/Blazing%20Salvo.full.jpg -blazing_shoal.jpg http://[server]/BOK/Blazing%20Shoal.full.jpg -blazing_specter.jpg http://[server]/IN/Blazing%20Specter.full.jpg -blazing_torch.jpg http://[server]/ZEN/Blazing%20Torch.full.jpg -blessed_breath.jpg http://[server]/CHK/Blessed%20Breath.full.jpg -blessed_orator.jpg http://[server]/9E/Blessed%20Orator.full.jpg -blessed_reversal.jpg http://[server]/8E/Blessed%20Reversal.full.jpg -blessed_wind.jpg http://[server]/PY/Blessed%20Wind.full.jpg -blessed_wine.jpg http://[server]/IA/Blessed%20Wine.full.jpg -blessing.jpg http://[server]/4E/Blessing.full.jpg -blessing_of_leeches.jpg http://[server]/BOK/Blessing%20of%20Leeches.full.jpg -blessing_of_the_nephilim.jpg http://[server]/DIS/Blessing%20of%20the%20Nephilim.full.jpg -blight.jpg http://[server]/6E/Blight.full.jpg -blight_sickle.jpg http://[server]/SHM/Blight%20Sickle.full.jpg -blighted_shaman.jpg http://[server]/MI/Blighted%20Shaman.full.jpg -blightning.jpg http://[server]/ALA/Blightning.full.jpg -blightsoil_druid.jpg http://[server]/MOR/Blightsoil%20Druid.full.jpg -blightspeaker.jpg http://[server]/PLC/Blightspeaker.full.jpg -blind_creeper.jpg http://[server]/FD/Blind%20Creeper.full.jpg -blind_fury.jpg http://[server]/MI/Blind%20Fury.full.jpg -blind_hunter.jpg http://[server]/GP/Blind%20Hunter.full.jpg -blind_phantasm.jpg http://[server]/FUT/Blind%20Phantasm.full.jpg -blind_seer.jpg http://[server]/IN/Blind%20Seer.full.jpg -blind_spot_giant.jpg http://[server]/LRW/Blind-Spot%20Giant.full.jpg -blind_with_anger.jpg http://[server]/CHK/Blind%20with%20Anger.full.jpg -blinding_angel.jpg http://[server]/9E/Blinding%20Angel.full.jpg -blinding_beam.jpg http://[server]/MR/Blinding%20Beam.full.jpg -blinding_light.jpg http://[server]/IN/Blinding%20Light.full.jpg -blinding_mage.jpg http://[server]/M10/Blinding%20Mage.full.jpg -blinding_powder.jpg http://[server]/BOK/Blinding%20Powder.full.jpg -blinking_spirit.jpg http://[server]/9E/Blinking%20Spirit.full.jpg -blinkmoth_infusion.jpg http://[server]/FD/Blinkmoth%20Infusion.full.jpg -blinkmoth_nexus.jpg http://[server]/DS/Blinkmoth%20Nexus.full.jpg -blinkmoth_urn.jpg http://[server]/MR/Blinkmoth%20Urn.full.jpg -blinkmoth_well.jpg http://[server]/MR/Blinkmoth%20Well.full.jpg -blister_beetle.jpg http://[server]/ALA/Blister%20Beetle.full.jpg -blistering_barrier.jpg http://[server]/MI/Blistering%20Barrier.full.jpg -blistering_dieflyn.jpg http://[server]/SHM/Blistering%20Dieflyn.full.jpg -blistering_firecat.jpg http://[server]/ON/Blistering%20Firecat.full.jpg -blitz_hellion.jpg http://[server]/ARB/Blitz%20Hellion.full.jpg -blizzard.jpg http://[server]/IA/Blizzard.full.jpg -blizzard_elemental.jpg http://[server]/BD/Blizzard%20Elemental.full.jpg -blizzard_specter.jpg http://[server]/CS/Blizzard%20Specter.full.jpg -bloated_toad.jpg http://[server]/UL/Bloated%20Toad.full.jpg -blockade_runner.jpg http://[server]/MM/Blockade%20Runner.full.jpg -blockbuster.jpg http://[server]/RAV/Blockbuster.full.jpg -blood_celebrant.jpg http://[server]/LE/Blood%20Celebrant.full.jpg -blood_clock.jpg http://[server]/SOK/Blood%20Clock.full.jpg -blood_crypt.jpg http://[server]/DIS/Blood%20Crypt.full.jpg -blood_cultist.jpg http://[server]/ALA/Blood%20Cultist.full.jpg -blood_frenzy.jpg http://[server]/TE/Blood%20Frenzy.full.jpg -blood_funnel.jpg http://[server]/RAV/Blood%20Funnel.full.jpg -blood_hound.jpg http://[server]/MM/Blood%20Hound.full.jpg -blood_knight.jpg http://[server]/PLC/Blood%20Knight.full.jpg -blood_lust.jpg http://[server]/5E/Blood%20Lust.full.jpg -blood_moon.jpg http://[server]/9E/Blood%20Moon.full.jpg -blood_oath.jpg http://[server]/MM/Blood%20Oath.full.jpg -blood_of_the_martyr.jpg http://[server]/DK/Blood%20of%20the%20Martyr.full.jpg -blood_pet.jpg http://[server]/7E/Blood%20Pet.full.jpg -blood_rites.jpg http://[server]/CHK/Blood%20Rites.full.jpg -blood_seeker.jpg http://[server]/ZEN/Blood%20Seeker.full.jpg -blood_speaker.jpg http://[server]/CHK/Blood%20Speaker.full.jpg -blood_tribute.jpg http://[server]/ZEN/Blood%20Tribute.full.jpg -blood_tyrant.jpg http://[server]/CFX/Blood%20Tyrant.full.jpg -blood_vassal.jpg http://[server]/US/Blood%20Vassal.full.jpg -bloodbond_march.jpg http://[server]/RAV/Bloodbond%20March.full.jpg -bloodbraid_elf.jpg http://[server]/ARB/Bloodbraid%20Elf.full.jpg -bloodchief_ascension.jpg http://[server]/ZEN/Bloodchief%20Ascension.full.jpg -bloodcurdler.jpg http://[server]/OD/Bloodcurdler.full.jpg -bloodcurdling_scream.jpg http://[server]/P2/Bloodcurdling%20Scream.full.jpg -bloodfire_colossus.jpg http://[server]/10E/Bloodfire%20Colossus.full.jpg -bloodfire_dwarf.jpg http://[server]/AP/Bloodfire%20Dwarf.full.jpg -bloodfire_infusion.jpg http://[server]/AP/Bloodfire%20Infusion.full.jpg -bloodfire_kavu.jpg http://[server]/AP/Bloodfire%20Kavu.full.jpg -bloodghast.jpg http://[server]/ZEN/Bloodghast.full.jpg -bloodhall_ooze.jpg http://[server]/CFX/Bloodhall%20Ooze.full.jpg -bloodied_ghost.jpg http://[server]/EVE/Bloodied%20Ghost.full.jpg -bloodletter.jpg http://[server]/UNH/Bloodletter.full.jpg -bloodletter_quill.jpg http://[server]/RAV/Bloodletter%20Quill.full.jpg -bloodline_shaman.jpg http://[server]/ON/Bloodline%20Shaman.full.jpg -bloodmark_mentor.jpg http://[server]/SHM/Bloodmark%20Mentor.full.jpg -bloodpyre_elemental.jpg http://[server]/ALA/Bloodpyre%20Elemental.full.jpg -bloodrock_cyclops.jpg http://[server]/10E/Bloodrock%20Cyclops.full.jpg -bloodscale_prowler.jpg http://[server]/GP/Bloodscale%20Prowler.full.jpg -bloodscent.jpg http://[server]/MR/Bloodscent.full.jpg -bloodshed_fever.jpg http://[server]/SHM/Bloodshed%20Fever.full.jpg -bloodshot_cyclops.jpg http://[server]/8E/Bloodshot%20Cyclops.full.jpg -bloodshot_trainee.jpg http://[server]/FUT/Bloodshot%20Trainee.full.jpg -bloodstained_mire.jpg http://[server]/ON/Bloodstained%20Mire.full.jpg -bloodstoke_howler.jpg http://[server]/LE/Bloodstoke%20Howler.full.jpg -bloodstone_cameo.jpg http://[server]/IN/Bloodstone%20Cameo.full.jpg -bloodthirsty_ogre.jpg http://[server]/CHK/Bloodthirsty%20Ogre.full.jpg -bloodthorn_taunter.jpg http://[server]/ALA/Bloodthorn%20Taunter.full.jpg -bloom_tender.jpg http://[server]/EVE/Bloom%20Tender.full.jpg -blossoming_wreath.jpg http://[server]/WL/Blossoming%20Wreath.full.jpg -blowfly_infestation.jpg http://[server]/SHM/Blowfly%20Infestation.full.jpg -blue_elemental_blast.jpg http://[server]/4E/Blue%20Elemental%20Blast.full.jpg -blue_mana_battery.jpg http://[server]/LG/Blue%20Mana%20Battery.full.jpg -blue_scarab.jpg http://[server]/IA/Blue%20Scarab.full.jpg -blue_ward.jpg http://[server]/4E/Blue%20Ward.full.jpg -blurred_mongoose.jpg http://[server]/IN/Blurred%20Mongoose.full.jpg -boa_constrictor.jpg http://[server]/MM/Boa%20Constrictor.full.jpg -boartusk_liege.jpg http://[server]/SHM/Boartusk%20Liege.full.jpg -body_double.jpg http://[server]/PLC/Body%20Double.full.jpg -body_of_jukai.jpg http://[server]/BOK/Body%20of%20Jukai.full.jpg -body_snatcher.jpg http://[server]/UD/Body%20Snatcher.full.jpg -bog_down.jpg http://[server]/PS/Bog%20Down.full.jpg -bog_elemental.jpg http://[server]/PY/Bog%20Elemental.full.jpg -bog_glider.jpg http://[server]/PY/Bog%20Glider.full.jpg -bog_gnarr.jpg http://[server]/AP/Bog%20Gnarr.full.jpg -bog_hoodlums.jpg http://[server]/LRW/Bog%20Hoodlums.full.jpg -bog_imp.jpg http://[server]/9E/Bog%20Imp.full.jpg -bog_initiate.jpg http://[server]/IN/Bog%20Initiate.full.jpg -bog_raiders.jpg http://[server]/ST/Bog%20Raiders.full.jpg -bog_rats.jpg http://[server]/6E/Bog%20Rats.full.jpg -bog_serpent.jpg http://[server]/PLC/Bog%20Serpent.full.jpg -bog_smugglers.jpg http://[server]/MM/Bog%20Smugglers.full.jpg -bog_strider_ash.jpg http://[server]/LRW/Bog-Strider%20Ash.full.jpg -bog_tatters.jpg http://[server]/ZEN/Bog%20Tatters.full.jpg -bog_witch.jpg http://[server]/MM/Bog%20Witch.full.jpg -bog_wraith.jpg http://[server]/M10/Bog%20Wraith.full.jpg -bog_wreckage.jpg http://[server]/OD/Bog%20Wreckage.full.jpg -bogardan_firefiend.jpg http://[server]/10E/Bogardan%20Firefiend.full.jpg -bogardan_hellkite.jpg http://[server]/M10/Bogardan%20Hellkite.full.jpg -bogardan_lancer.jpg http://[server]/FUT/Bogardan%20Lancer.full.jpg -bogardan_phoenix.jpg http://[server]/VI/Bogardan%20Phoenix.full.jpg -bogardan_rager.jpg http://[server]/TSP/Bogardan%20Rager.full.jpg -boggart_arsonists.jpg http://[server]/SHM/Boggart%20Arsonists.full.jpg -boggart_birth_rite.jpg http://[server]/LRW/Boggart%20Birth%20Rite.full.jpg -boggart_forager.jpg http://[server]/LRW/Boggart%20Forager.full.jpg -boggart_harbinger.jpg http://[server]/LRW/Boggart%20Harbinger.full.jpg -boggart_loggers.jpg http://[server]/LRW/Boggart%20Loggers.full.jpg -boggart_mob.jpg http://[server]/LRW/Boggart%20Mob.full.jpg -boggart_ram_gang.jpg http://[server]/SHM/Boggart%20Ram-Gang.full.jpg -boggart_shenanigans.jpg http://[server]/EVG/Boggart%20Shenanigans.full.jpg -boggart_sprite_chaser.jpg http://[server]/LRW/Boggart%20Sprite-Chaser.full.jpg -boil.jpg http://[server]/8E/Boil.full.jpg -boiling_blood.jpg http://[server]/WL/Boiling%20Blood.full.jpg -boiling_seas.jpg http://[server]/9E/Boiling%20Seas.full.jpg -bola_warrior.jpg http://[server]/NE/Bola%20Warrior.full.jpg -bold_defense.jpg http://[server]/ZEN/Bold%20Defense.full.jpg -boldwyr_heavyweights.jpg http://[server]/MOR/Boldwyr%20Heavyweights.full.jpg -boldwyr_intimidator.jpg http://[server]/FUT/Boldwyr%20Intimidator.full.jpg -bomb_squad.jpg http://[server]/OD/Bomb%20Squad.full.jpg -bond_of_agony.jpg http://[server]/DIS/Bond%20of%20Agony.full.jpg -bonded_fetch.jpg http://[server]/FUT/Bonded%20Fetch.full.jpg -bone_dancer.jpg http://[server]/WL/Bone%20Dancer.full.jpg -bone_flute.jpg http://[server]/DK/Bone%20Flute.full.jpg -bone_harvest.jpg http://[server]/MI/Bone%20Harvest.full.jpg -bone_mask.jpg http://[server]/MI/Bone%20Mask.full.jpg -bone_saw.jpg http://[server]/CFX/Bone%20Saw.full.jpg -bone_shaman.jpg http://[server]/IA/Bone%20Shaman.full.jpg -bone_shredder.jpg http://[server]/UL/Bone%20Shredder.full.jpg -bone_splinters.jpg http://[server]/ALA/Bone%20Splinters.full.jpg -boneknitter.jpg http://[server]/ON/Boneknitter.full.jpg -boneshard_slasher.jpg http://[server]/TO/Boneshard%20Slasher.full.jpg -bonesplitter.jpg http://[server]/MR/Bonesplitter.full.jpg -bonesplitter_sliver.jpg http://[server]/TSP/Bonesplitter%20Sliver.full.jpg -bonethorn_valesk.jpg http://[server]/SC/Bonethorn%20Valesk.full.jpg -booby_trap.jpg http://[server]/9E/Booby%20Trap.full.jpg -book_burning.jpg http://[server]/JU/Book%20Burning.full.jpg -book_of_rass.jpg http://[server]/CH/Book%20of%20Rass.full.jpg -boombust.jpg http://[server]/PLC/BoomBust.full.jpg -boomerang.jpg http://[server]/10E/Boomerang.full.jpg -boon_reflection.jpg http://[server]/SHM/Boon%20Reflection.full.jpg -booster_tutor.jpg http://[server]/UNH/Booster%20Tutor.full.jpg -borborygmos.jpg http://[server]/GP/Borborygmos.full.jpg -border_guard.jpg http://[server]/PT/Border%20Guard.full.jpg -border_patrol.jpg http://[server]/JU/Border%20Patrol.full.jpg -borderland_behemoth.jpg http://[server]/MOR/Borderland%20Behemoth.full.jpg -borderland_ranger.jpg http://[server]/M10/Borderland%20Ranger.full.jpg -boreal_centaur.jpg http://[server]/CS/Boreal%20Centaur.full.jpg -boreal_druid.jpg http://[server]/CS/Boreal%20Druid.full.jpg -boreal_griffin.jpg http://[server]/CS/Boreal%20Griffin.full.jpg -boreal_shelf.jpg http://[server]/CS/Boreal%20Shelf.full.jpg -boris_devilboon.jpg http://[server]/LG/Boris%20Devilboon.full.jpg -boros_fury_shield.jpg http://[server]/RAV/Boros%20Fury-Shield.full.jpg -boros_garrison.jpg http://[server]/HOP/Boros%20Garrison.full.jpg -boros_guildmage.jpg http://[server]/HOP/Boros%20Guildmage.full.jpg -boros_recruit.jpg http://[server]/RAV/Boros%20Recruit.full.jpg -boros_signet.jpg http://[server]/HOP/Boros%20Signet.full.jpg -boros_swiftblade.jpg http://[server]/HOP/Boros%20Swiftblade.full.jpg -borrowing_100000_arrows.jpg http://[server]/P3/Borrowing%20100,000%20Arrows.full.jpg -borrowing_the_east_wind.jpg http://[server]/P3/Borrowing%20the%20East%20Wind.full.jpg -boseiju_who_shelters_all.jpg http://[server]/CHK/Boseiju,%20Who%20Shelters%20All.full.jpg -bosh_iron_golem.jpg http://[server]/MR/Bosh,%20Iron%20Golem.full.jpg -bosium_strip.jpg http://[server]/WL/Bosium%20Strip.full.jpg -bosk_banneret.jpg http://[server]/MOR/Bosk%20Banneret.full.jpg -bosom_buddy.jpg http://[server]/UNH/Bosom%20Buddy.full.jpg -bottle_gnomes.jpg http://[server]/10E/Bottle%20Gnomes.full.jpg -bottle_of_suleiman.jpg http://[server]/6E/Bottle%20of%20Suleiman.full.jpg -bottled_cloister.jpg http://[server]/RAV/Bottled%20Cloister.full.jpg -bottomless_pit.jpg http://[server]/SH/Bottomless%20Pit.full.jpg -bottomless_vault.jpg http://[server]/FE/Bottomless%20Vault.full.jpg -bouncing_beebles.jpg http://[server]/UL/Bouncing%20Beebles.full.jpg -bound_in_silence.jpg http://[server]/FUT/Bound%20in%20Silence.full.jpg -bounddetermined.jpg http://[server]/DIS/BoundDetermined.full.jpg -bounteous_kirin.jpg http://[server]/SOK/Bounteous%20Kirin.full.jpg -bountiful_harvest.jpg http://[server]/M10/Bountiful%20Harvest.full.jpg -bounty_hunter.jpg http://[server]/TE/Bounty%20Hunter.full.jpg -bounty_of_the_hunt.jpg http://[server]/AL/Bounty%20of%20the%20Hunt.full.jpg -brace_for_impact.jpg http://[server]/DIS/Brace%20for%20Impact.full.jpg -brackwater_elemental.jpg http://[server]/CFX/Brackwater%20Elemental.full.jpg -braid_of_fire.jpg http://[server]/CS/Braid%20of%20Fire.full.jpg -braids_cabal_minion.jpg http://[server]/OD/Braids,%20Cabal%20Minion.full.jpg -braids_conjurer_adept.jpg http://[server]/PLC/Braids,%20Conjurer%20Adept.full.jpg -braidwood_cup.jpg http://[server]/UD/Braidwood%20Cup.full.jpg -braidwood_sextant.jpg http://[server]/UD/Braidwood%20Sextant.full.jpg -brain_freeze.jpg http://[server]/SC/Brain%20Freeze.full.jpg -brain_gorgers.jpg http://[server]/PLC/Brain%20Gorgers.full.jpg -brain_pry.jpg http://[server]/DIS/Brain%20Pry.full.jpg -brainbite.jpg http://[server]/ARB/Brainbite.full.jpg -braingeyser.jpg http://[server]/U/Braingeyser.full.jpg -brainspoil.jpg http://[server]/RAV/Brainspoil.full.jpg -brainstorm.jpg http://[server]/MM/Brainstorm.full.jpg -brainwash.jpg http://[server]/DK/Brainwash.full.jpg -bramble_creeper.jpg http://[server]/M10/Bramble%20Creeper.full.jpg -bramble_elemental.jpg http://[server]/RAV/Bramble%20Elemental.full.jpg -bramblewood_paragon.jpg http://[server]/MOR/Bramblewood%20Paragon.full.jpg -branching_bolt.jpg http://[server]/HOP/Branching%20Bolt.full.jpg -branchsnap_lorian.jpg http://[server]/LE/Branchsnap%20Lorian.full.jpg -brand.jpg http://[server]/US/Brand.full.jpg -brand_of_ill_omen.jpg http://[server]/IA/Brand%20of%20Ill%20Omen.full.jpg -branded_brawlers.jpg http://[server]/PY/Branded%20Brawlers.full.jpg -brass_gnat.jpg http://[server]/TSP/Brass%20Gnat.full.jpg -brass_herald.jpg http://[server]/8E/Brass%20Herald.full.jpg -brass_man.jpg http://[server]/AN/Brass%20Man.full.jpg -brass_secretary.jpg http://[server]/UD/Brass%20Secretary.full.jpg -brass_talon_chimera.jpg http://[server]/VI/Brass-Talon%20Chimera.full.jpg -brassclaw_orcs.jpg http://[server]/5E/Brassclaw%20Orcs.full.jpg -bravado.jpg http://[server]/US/Bravado.full.jpg -brave_the_elements.jpg http://[server]/ZEN/Brave%20the%20Elements.full.jpg -brawl.jpg http://[server]/MM/Brawl.full.jpg -brawn.jpg http://[server]/JU/Brawn.full.jpg -breach.jpg http://[server]/US/Breach.full.jpg -break_asunder.jpg http://[server]/SC/Break%20Asunder.full.jpg -break_open.jpg http://[server]/ON/Break%20Open.full.jpg -breaking_point.jpg http://[server]/JU/Breaking%20Point.full.jpg -breaking_wave.jpg http://[server]/IN/Breaking%20Wave.full.jpg -breakthrough.jpg http://[server]/TO/Breakthrough.full.jpg -breath_of_darigaaz.jpg http://[server]/IN/Breath%20of%20Darigaaz.full.jpg -breath_of_dreams.jpg http://[server]/IA/Breath%20of%20Dreams.full.jpg -breath_of_fury.jpg http://[server]/RAV/Breath%20of%20Fury.full.jpg -breath_of_life.jpg http://[server]/7E/Breath%20of%20Life.full.jpg -breath_of_malfegor.jpg http://[server]/ARB/Breath%20of%20Malfegor.full.jpg -breathstealer.jpg http://[server]/MI/Breathstealer.full.jpg -breathstealers_crypt.jpg http://[server]/VI/Breathstealer's%20Crypt.full.jpg -breeding_pit.jpg http://[server]/5E/Breeding%20Pit.full.jpg -breeding_pool.jpg http://[server]/DIS/Breeding%20Pool.full.jpg -breezekeeper.jpg http://[server]/VI/Breezekeeper.full.jpg -briar_patch.jpg http://[server]/MM/Briar%20Patch.full.jpg -briar_shield.jpg http://[server]/WL/Briar%20Shield.full.jpg -briarberry_cohort.jpg http://[server]/SHM/Briarberry%20Cohort.full.jpg -briarhorn.jpg http://[server]/HOP/Briarhorn.full.jpg -briarknit_kami.jpg http://[server]/SOK/Briarknit%20Kami.full.jpg -bribery.jpg http://[server]/8E/Bribery.full.jpg -bridge_from_below.jpg http://[server]/FUT/Bridge%20from%20Below.full.jpg -brightflame.jpg http://[server]/RAV/Brightflame.full.jpg -brighthearth_banneret.jpg http://[server]/MOR/Brighthearth%20Banneret.full.jpg -brightstone_ritual.jpg http://[server]/ON/Brightstone%20Ritual.full.jpg -brigid_hero_of_kinsbaile.jpg http://[server]/LRW/Brigid,%20Hero%20of%20Kinsbaile.full.jpg -brilliant_halo.jpg http://[server]/US/Brilliant%20Halo.full.jpg -brilliant_plan.jpg http://[server]/P3/Brilliant%20Plan.full.jpg -brilliant_ultimatum.jpg http://[server]/ALA/Brilliant%20Ultimatum.full.jpg -brimstone_dragon.jpg http://[server]/P2/Brimstone%20Dragon.full.jpg -brine_elemental.jpg http://[server]/TSP/Brine%20Elemental.full.jpg -brine_hag.jpg http://[server]/LG/Brine%20Hag.full.jpg -brine_seer.jpg http://[server]/UD/Brine%20Seer.full.jpg -brine_shaman.jpg http://[server]/IA/Brine%20Shaman.full.jpg -bringer_of_the_black_dawn.jpg http://[server]/FD/Bringer%20of%20the%20Black%20Dawn.full.jpg -bringer_of_the_blue_dawn.jpg http://[server]/FD/Bringer%20of%20the%20Blue%20Dawn.full.jpg -bringer_of_the_green_dawn.jpg http://[server]/FD/Bringer%20of%20the%20Green%20Dawn.full.jpg -bringer_of_the_red_dawn.jpg http://[server]/FD/Bringer%20of%20the%20Red%20Dawn.full.jpg -bringer_of_the_white_dawn.jpg http://[server]/FD/Bringer%20of%20the%20White%20Dawn.full.jpg -brink_of_madness.jpg http://[server]/UL/Brink%20of%20Madness.full.jpg -brion_stoutarm.jpg http://[server]/LRW/Brion%20Stoutarm.full.jpg -broken_ambitions.jpg http://[server]/LRW/Broken%20Ambitions.full.jpg -broken_dam.jpg http://[server]/P3/Broken%20Dam.full.jpg -broken_fall.jpg http://[server]/TE/Broken%20Fall.full.jpg -broken_visage.jpg http://[server]/HL/Broken%20Visage.full.jpg -brontotherium.jpg http://[server]/LE/Brontotherium.full.jpg -bronze_bombshell.jpg http://[server]/DIS/Bronze%20Bombshell.full.jpg -bronze_calendar.jpg http://[server]/UG/Bronze%20Calendar.full.jpg -bronze_horse.jpg http://[server]/LG/Bronze%20Horse.full.jpg -bronze_tablet.jpg http://[server]/AQ/Bronze%20Tablet.full.jpg -brood_of_cockroaches.jpg http://[server]/VI/Brood%20of%20Cockroaches.full.jpg -brood_sliver.jpg http://[server]/LE/Brood%20Sliver.full.jpg -broodhatch_nantuko.jpg http://[server]/ON/Broodhatch%20Nantuko.full.jpg -brooding_saurian.jpg http://[server]/CS/Brooding%20Saurian.full.jpg -broodmate_dragon.jpg http://[server]/ALA/Broodmate%20Dragon.full.jpg -broodstar.jpg http://[server]/MR/Broodstar.full.jpg -brothers_of_fire.jpg http://[server]/DK/Brothers%20of%20Fire.full.jpg -brothers_yamazaki.jpg http://[server]/CHK/Brothers%20Yamazaki1.full.jpg -browbeat.jpg http://[server]/JU/Browbeat.full.jpg -brown_ouphe.jpg http://[server]/MR/Brown%20Ouphe.full.jpg -browse.jpg http://[server]/6E/Browse.full.jpg -brush_with_death.jpg http://[server]/SH/Brush%20with%20Death.full.jpg -brushland.jpg http://[server]/10E/Brushland.full.jpg -brushstroke_paintermage.jpg http://[server]/UNH/Brushstroke%20Paintermage.full.jpg -brushwagg.jpg http://[server]/MI/Brushwagg.full.jpg -brutal_deceiver.jpg http://[server]/CHK/Brutal%20Deceiver.full.jpg -brutal_nightstalker.jpg http://[server]/P2/Brutal%20Nightstalker.full.jpg -brutal_suppression.jpg http://[server]/PY/Brutal%20Suppression.full.jpg -brute_force.jpg http://[server]/PLC/Brute%20Force.full.jpg -bubble_matrix.jpg http://[server]/WL/Bubble%20Matrix.full.jpg -bubbling_beebles.jpg http://[server]/UD/Bubbling%20Beebles.full.jpg -bubbling_muck.jpg http://[server]/UD/Bubbling%20Muck.full.jpg -budoka_gardener.jpg http://[server]/CHK/Budoka%20Gardener.full.jpg -budoka_pupil.jpg http://[server]/REL/Budoka%20Pupil.full.jpg -builders_bane.jpg http://[server]/MI/Builder's%20Bane.full.jpg -bull_aurochs.jpg http://[server]/CS/Bull%20Aurochs.full.jpg -bull_cerodon.jpg http://[server]/HOP/Bull%20Cerodon.full.jpg -bull_elephant.jpg http://[server]/VI/Bull%20Elephant.full.jpg -bull_hippo.jpg http://[server]/7E/Bull%20Hippo.full.jpg -bullwhip.jpg http://[server]/SH/Bullwhip.full.jpg -bulwark.jpg http://[server]/US/Bulwark.full.jpg -buoyancy.jpg http://[server]/MM/Buoyancy.full.jpg -burden_of_greed.jpg http://[server]/DS/Burden%20of%20Greed.full.jpg -bureaucracy.jpg http://[server]/UG/Bureaucracy.full.jpg -burgeoning.jpg http://[server]/SH/Burgeoning.full.jpg -buried_alive.jpg http://[server]/OD/Buried%20Alive.full.jpg -burn_trail.jpg http://[server]/SHM/Burn%20Trail.full.jpg -burning_cinder_fury_of_crimson_chaos_fire.jpg http://[server]/UG/Burning%20Cinder%20Fury%20of%20Crimson%20Chaos%20Fire.full.jpg -burning_cloak.jpg http://[server]/PT/Burning%20Cloak.full.jpg -burning_eye_zubera.jpg http://[server]/SOK/Burning-Eye%20Zubera.full.jpg -burning_fields.jpg http://[server]/P3/Burning%20Fields.full.jpg -burning_inquiry.jpg http://[server]/M10/Burning%20Inquiry.full.jpg -burning_of_xinye.jpg http://[server]/P3/Burning%20of%20Xinye.full.jpg -burning_palm_efreet.jpg http://[server]/MI/Burning%20Palm%20Efreet.full.jpg -burning_sands.jpg http://[server]/OD/Burning%20Sands.full.jpg -burning_shield_askari.jpg http://[server]/MI/Burning%20Shield%20Askari.full.jpg -burning_tree_bloodscale.jpg http://[server]/GP/Burning-Tree%20Bloodscale.full.jpg -burning_tree_shaman.jpg http://[server]/GP/Burning-Tree%20Shaman.full.jpg -burning_wish.jpg http://[server]/JU/Burning%20Wish.full.jpg -burnout.jpg http://[server]/AL/Burnout.full.jpg -burnt_offering.jpg http://[server]/IA/Burnt%20Offering.full.jpg -burr_grafter.jpg http://[server]/CHK/Burr%20Grafter.full.jpg -burrenton_bombardier.jpg http://[server]/MOR/Burrenton%20Bombardier.full.jpg -burrenton_forge_tender.jpg http://[server]/LRW/Burrenton%20Forge-Tender.full.jpg -burrenton_shield_bearers.jpg http://[server]/MOR/Burrenton%20Shield-Bearers.full.jpg -burrowing.jpg http://[server]/6E/Burrowing.full.jpg -burst_lightning.jpg http://[server]/ZEN/Burst%20Lightning.full.jpg -burst_of_energy.jpg http://[server]/UL/Burst%20of%20Energy.full.jpg -burst_of_speed.jpg http://[server]/M10/Burst%20of%20Speed.full.jpg -bursting_beebles.jpg http://[server]/UNH/Bursting%20Beebles.full.jpg -bushi_tenderfoot.jpg http://[server]/CHK/Bushi%20Tenderfoot.full.jpg -butcher_orgg.jpg http://[server]/ON/Butcher%20Orgg.full.jpg \ No newline at end of file diff --git a/res/pics_link/card-pictures_c.txt b/res/pics_link/card-pictures_c.txt deleted file mode 100644 index 908fb690ed8..00000000000 --- a/res/pics_link/card-pictures_c.txt +++ /dev/null @@ -1,765 +0,0 @@ -cabal_archon.jpg http://[server]/ON/Cabal%20Archon.full.jpg -cabal_coffers.jpg http://[server]/TO/Cabal%20Coffers.full.jpg -cabal_conditioning.jpg http://[server]/SC/Cabal%20Conditioning.full.jpg -cabal_executioner.jpg http://[server]/ON/Cabal%20Executioner.full.jpg -cabal_inquisitor.jpg http://[server]/OD/Cabal%20Inquisitor.full.jpg -cabal_interrogator.jpg http://[server]/SC/Cabal%20Interrogator.full.jpg -cabal_patriarch.jpg http://[server]/OD/Cabal%20Patriarch.full.jpg -cabal_pit.jpg http://[server]/OD/Cabal%20Pit.full.jpg -cabal_ritual.jpg http://[server]/TO/Cabal%20Ritual.full.jpg -cabal_shrine.jpg http://[server]/OD/Cabal%20Shrine.full.jpg -cabal_slaver.jpg http://[server]/ON/Cabal%20Slaver.full.jpg -cabal_surgeon.jpg http://[server]/TO/Cabal%20Surgeon.full.jpg -cabal_therapy.jpg http://[server]/JU/Cabal%20Therapy.full.jpg -cabal_torturer.jpg http://[server]/TO/Cabal%20Torturer.full.jpg -cabal_trainee.jpg http://[server]/JU/Cabal%20Trainee.full.jpg -cache_raiders.jpg http://[server]/EVE/Cache%20Raiders.full.jpg -cackling_fiend.jpg http://[server]/US/Cackling%20Fiend.full.jpg -cackling_flames.jpg http://[server]/DIS/Cackling%20Flames.full.jpg -cackling_imp.jpg http://[server]/FD/Cackling%20Imp.full.jpg -cackling_witch.jpg http://[server]/MM/Cackling%20Witch.full.jpg -cadaverous_bloom.jpg http://[server]/MI/Cadaverous%20Bloom.full.jpg -cadaverous_knight.jpg http://[server]/MI/Cadaverous%20Knight.full.jpg -cage_of_hands.jpg http://[server]/CHK/Cage%20of%20Hands.full.jpg -cagemail.jpg http://[server]/JU/Cagemail.full.jpg -cairn_wanderer.jpg http://[server]/LRW/Cairn%20Wanderer.full.jpg -calciderm.jpg http://[server]/PLC/Calciderm.full.jpg -calciform_pools.jpg http://[server]/TSP/Calciform%20Pools.full.jpg -caldera_hellion.jpg http://[server]/ALA/Caldera%20Hellion.full.jpg -caldera_kavu.jpg http://[server]/PS/Caldera%20Kavu.full.jpg -caldera_lake.jpg http://[server]/TE/Caldera%20Lake.full.jpg -call_for_blood.jpg http://[server]/BOK/Call%20for%20Blood.full.jpg -call_of_the_herd.jpg http://[server]/OD/Call%20of%20the%20Herd.full.jpg -call_of_the_wild.jpg http://[server]/8E/Call%20of%20the%20Wild.full.jpg -call_the_skybreaker.jpg http://[server]/EVE/Call%20the%20Skybreaker.full.jpg -call_to_arms.jpg http://[server]/IA/Call%20to%20Arms.full.jpg -call_to_glory.jpg http://[server]/CHK/Call%20to%20Glory.full.jpg -call_to_heel.jpg http://[server]/ALA/Call%20to%20Heel.full.jpg -call_to_the_grave.jpg http://[server]/SC/Call%20to%20the%20Grave.full.jpg -call_to_the_netherworld.jpg http://[server]/TSP/Call%20to%20the%20Netherworld.full.jpg -caller_of_gales.jpg http://[server]/ZEN/Caller%20of%20Gales.full.jpg -caller_of_the_claw.jpg http://[server]/LE/Caller%20of%20the%20Claw.full.jpg -caller_of_the_hunt.jpg http://[server]/MM/Caller%20of%20the%20Hunt.full.jpg -callous_deceiver.jpg http://[server]/CHK/Callous%20Deceiver.full.jpg -callous_giant.jpg http://[server]/IN/Callous%20Giant.full.jpg -callous_oppressor.jpg http://[server]/ON/Callous%20Oppressor.full.jpg -callow_jushi.jpg http://[server]/BOK/Callow%20Jushi.full.jpg -calming_licid.jpg http://[server]/SH/Calming%20Licid.full.jpg -calming_verse.jpg http://[server]/PY/Calming%20Verse.full.jpg -caltrops.jpg http://[server]/7E/Caltrops.full.jpg -camel.jpg http://[server]/AN/Camel.full.jpg -camouflage.jpg http://[server]/U/Camouflage.full.jpg -cancel.jpg http://[server]/M10/Cancel.full.jpg -candelabra_of_tawnos.jpg http://[server]/AQ/Candelabra%20of%20Tawnos.full.jpg -candles_glow.jpg http://[server]/CHK/Candles'%20Glow.full.jpg -candles_of_leng.jpg http://[server]/TSP/Candles%20of%20Leng.full.jpg -canker_abomination.jpg http://[server]/EVE/Canker%20Abomination.full.jpg -cankerous_thirst.jpg http://[server]/EVE/Cankerous%20Thirst.full.jpg -cannibalize.jpg http://[server]/SH/Cannibalize.full.jpg -canopy_claws.jpg http://[server]/JU/Canopy%20Claws.full.jpg -canopy_crawler.jpg http://[server]/LE/Canopy%20Crawler.full.jpg -canopy_dragon.jpg http://[server]/MI/Canopy%20Dragon.full.jpg -canopy_spider.jpg http://[server]/10E/Canopy%20Spider.full.jpg -canopy_surge.jpg http://[server]/IN/Canopy%20Surge.full.jpg -cantivore.jpg http://[server]/OD/Cantivore.full.jpg -canyon_drake.jpg http://[server]/TE/Canyon%20Drake.full.jpg -canyon_minotaur.jpg http://[server]/M10/Canyon%20Minotaur.full.jpg -canyon_wildcat.jpg http://[server]/8E/Canyon%20Wildcat.full.jpg -cao_cao_lord_of_wei.jpg http://[server]/P3/Cao%20Cao,%20Lord%20of%20Wei.full.jpg -cao_ren_wei_commander.jpg http://[server]/P3/Cao%20Ren,%20Wei%20Commander.full.jpg -capashen_knight.jpg http://[server]/UD/Capashen%20Knight.full.jpg -capashen_standard.jpg http://[server]/UD/Capashen%20Standard.full.jpg -capashen_templar.jpg http://[server]/UD/Capashen%20Templar.full.jpg -capashen_unicorn.jpg http://[server]/IN/Capashen%20Unicorn.full.jpg -capricious_efreet.jpg http://[server]/M10/Capricious%20Efreet.full.jpg -capricious_sorcerer.jpg http://[server]/PT/Capricious%20Sorcerer.full.jpg -capsize.jpg http://[server]/TE/Capsize.full.jpg -captain_of_the_watch.jpg http://[server]/M10/Captain%20of%20the%20Watch.full.jpg -captain_sisay.jpg http://[server]/IN/Captain%20Sisay.full.jpg -captains_maneuver.jpg http://[server]/AP/Captain's%20Maneuver.full.jpg -captivating_glance.jpg http://[server]/LRW/Captivating%20Glance.full.jpg -captive_flame.jpg http://[server]/SOK/Captive%20Flame.full.jpg -capture_of_jingzhou.jpg http://[server]/P3/Capture%20of%20Jingzhou.full.jpg -captured_sunlight.jpg http://[server]/ARB/Captured%20Sunlight.full.jpg -carapace.jpg http://[server]/5E/Carapace.full.jpg -caravan_hurda.jpg http://[server]/ZEN/Caravan%20Hurda.full.jpg -carbonize.jpg http://[server]/SC/Carbonize.full.jpg -cardboard_carapace.jpg http://[server]/UG/Cardboard%20Carapace.full.jpg -cardpecker.jpg http://[server]/UNH/Cardpecker.full.jpg -careful_consideration.jpg http://[server]/TSP/Careful%20Consideration.full.jpg -careful_study.jpg http://[server]/OD/Careful%20Study.full.jpg -caregiver.jpg http://[server]/RAV/Caregiver.full.jpg -caribou_range.jpg http://[server]/IA/Caribou%20Range.full.jpg -carnage_altar.jpg http://[server]/ZEN/Carnage%20Altar.full.jpg -carnassid.jpg http://[server]/SH/Carnassid.full.jpg -carnival_of_souls.jpg http://[server]/UD/Carnival%20of%20Souls.full.jpg -carnivorous_death_parrot.jpg http://[server]/UNH/Carnivorous%20Death-Parrot.full.jpg -carnivorous_plant.jpg http://[server]/DK/Carnivorous%20Plant.full.jpg -carnophage.jpg http://[server]/EX/Carnophage.full.jpg -carom.jpg http://[server]/DIS/Carom.full.jpg -carpet_of_flowers.jpg http://[server]/US/Carpet%20of%20Flowers.full.jpg -carrier_pigeons.jpg http://[server]/AL/Carrier%20Pigeons1.full.jpg -carrion.jpg http://[server]/MI/Carrion.full.jpg -carrion_ants.jpg http://[server]/LG/Carrion%20Ants.full.jpg -carrion_beetles.jpg http://[server]/US/Carrion%20Beetles.full.jpg -carrion_feeder.jpg http://[server]/FNM/Carrion%20Feeder.full.jpg -carrion_howler.jpg http://[server]/RAV/Carrion%20Howler.full.jpg -carrion_rats.jpg http://[server]/TO/Carrion%20Rats.full.jpg -carrion_thrash.jpg http://[server]/ALA/Carrion%20Thrash.full.jpg -carrion_wall.jpg http://[server]/8E/Carrion%20Wall.full.jpg -carrion_wurm.jpg http://[server]/TO/Carrion%20Wurm.full.jpg -carrionette.jpg http://[server]/TE/Carrionette.full.jpg -carry_away.jpg http://[server]/DS/Carry%20Away.full.jpg -cartographer.jpg http://[server]/OD/Cartographer.full.jpg -carven_caryatid.jpg http://[server]/RAV/Carven%20Caryatid.full.jpg -cascade_bluffs.jpg http://[server]/EVE/Cascade%20Bluffs.full.jpg -castigate.jpg http://[server]/GP/Castigate.full.jpg -casting_of_bones.jpg http://[server]/CST/Casting%20of%20Bones.full.jpg -castle.jpg http://[server]/7E/Castle.full.jpg -castle_raptors.jpg http://[server]/TSP/Castle%20Raptors.full.jpg -castle_sengir.jpg http://[server]/HL/Castle%20Sengir.full.jpg -cat_burglar.jpg http://[server]/EX/Cat%20Burglar.full.jpg -cat_warriors.jpg http://[server]/6E/Cat%20Warriors.full.jpg -cataclysm.jpg http://[server]/EX/Cataclysm.full.jpg -catacomb_dragon.jpg http://[server]/MI/Catacomb%20Dragon.full.jpg -catalog.jpg http://[server]/8E/Catalog.full.jpg -catalyst_stone.jpg http://[server]/OD/Catalyst%20Stone.full.jpg -catapult_master.jpg http://[server]/ON/Catapult%20Master.full.jpg -catapult_squad.jpg http://[server]/ON/Catapult%20Squad.full.jpg -catastrophe.jpg http://[server]/US/Catastrophe.full.jpg -cateran_brute.jpg http://[server]/MM/Cateran%20Brute.full.jpg -cateran_enforcer.jpg http://[server]/MM/Cateran%20Enforcer.full.jpg -cateran_kidnappers.jpg http://[server]/MM/Cateran%20Kidnappers.full.jpg -cateran_overlord.jpg http://[server]/MM/Cateran%20Overlord.full.jpg -cateran_persuader.jpg http://[server]/MM/Cateran%20Persuader.full.jpg -cateran_slaver.jpg http://[server]/MM/Cateran%20Slaver.full.jpg -cateran_summons.jpg http://[server]/MM/Cateran%20Summons.full.jpg -caterwauling_boggart.jpg http://[server]/LRW/Caterwauling%20Boggart.full.jpg -cathartic_adept.jpg http://[server]/ALA/Cathartic%20Adept.full.jpg -cathedral_of_serra.jpg http://[server]/LG/Cathedral%20of%20Serra.full.jpg -cathodion.jpg http://[server]/MR/Cathodion.full.jpg -cauldron_dance.jpg http://[server]/IN/Cauldron%20Dance.full.jpg -cauldron_haze.jpg http://[server]/EVE/Cauldron%20Haze.full.jpg -cauldron_of_souls.jpg http://[server]/SHM/Cauldron%20of%20Souls.full.jpg -caustic_rain.jpg http://[server]/GP/Caustic%20Rain.full.jpg -caustic_tar.jpg http://[server]/OD/Caustic%20Tar.full.jpg -caustic_wasps.jpg http://[server]/MM/Caustic%20Wasps.full.jpg -cautery_sliver.jpg http://[server]/PLC/Cautery%20Sliver.full.jpg -cavalry_master.jpg http://[server]/TSP/Cavalry%20Master.full.jpg -cave_in.jpg http://[server]/MM/Cave-In.full.jpg -cave_people.jpg http://[server]/5E/Cave%20People.full.jpg -cave_sense.jpg http://[server]/MM/Cave%20Sense.full.jpg -cave_tiger.jpg http://[server]/US/Cave%20Tiger.full.jpg -cavern_crawler.jpg http://[server]/MM/Cavern%20Crawler.full.jpg -cavern_harpy.jpg http://[server]/PS/Cavern%20Harpy.full.jpg -cavern_thoctar.jpg http://[server]/ALA/Cavern%20Thoctar.full.jpg -caverns_of_despair.jpg http://[server]/LG/Caverns%20of%20Despair.full.jpg -caves_of_koilos.jpg http://[server]/10E/Caves%20of%20Koilos.full.jpg -cease_fire.jpg http://[server]/OD/Cease-Fire.full.jpg -ceaseless_searblades.jpg http://[server]/LRW/Ceaseless%20Searblades.full.jpg -celestial_ancient.jpg http://[server]/DIS/Celestial%20Ancient.full.jpg -celestial_convergence.jpg http://[server]/PY/Celestial%20Convergence.full.jpg -celestial_crusader.jpg http://[server]/TSP/Celestial%20Crusader.full.jpg -celestial_dawn.jpg http://[server]/6E/Celestial%20Dawn.full.jpg -celestial_gatekeeper.jpg http://[server]/LE/Celestial%20Gatekeeper.full.jpg -celestial_kirin.jpg http://[server]/SOK/Celestial%20Kirin.full.jpg -celestial_mantle.jpg http://[server]/ZEN/Celestial%20Mantle.full.jpg -celestial_prism.jpg http://[server]/4E/Celestial%20Prism.full.jpg -celestial_purge.jpg http://[server]/M10/Celestial%20Purge.full.jpg -celestial_sword.jpg http://[server]/IA/Celestial%20Sword.full.jpg -cemetery_gate.jpg http://[server]/HL/Cemetery%20Gate1.full.jpg -cemetery_puca.jpg http://[server]/SHM/Cemetery%20Puca.full.jpg -cemetery_reaper.jpg http://[server]/M10/Cemetery%20Reaper.full.jpg -cenns_enlistment.jpg http://[server]/EVE/Cenn's%20Enlistment.full.jpg -cenns_heir.jpg http://[server]/LRW/Cenn's%20Heir.full.jpg -cenns_tactician.jpg http://[server]/MOR/Cenn's%20Tactician.full.jpg -censorship.jpg http://[server]/UG/Censorship.full.jpg -centaur_archer.jpg http://[server]/IA/Centaur%20Archer.full.jpg -centaur_chieftain.jpg http://[server]/TO/Centaur%20Chieftain.full.jpg -centaur_courser.jpg http://[server]/M10/Centaur%20Courser.full.jpg -centaur_garden.jpg http://[server]/OD/Centaur%20Garden.full.jpg -centaur_glade.jpg http://[server]/ON/Centaur%20Glade.full.jpg -centaur_omenreader.jpg http://[server]/FUT/Centaur%20Omenreader.full.jpg -centaur_rootcaster.jpg http://[server]/JU/Centaur%20Rootcaster.full.jpg -centaur_safeguard.jpg http://[server]/RAV/Centaur%20Safeguard.full.jpg -centaur_veteran.jpg http://[server]/TO/Centaur%20Veteran.full.jpg -cephalid_aristocrat.jpg http://[server]/TO/Cephalid%20Aristocrat.full.jpg -cephalid_broker.jpg http://[server]/OD/Cephalid%20Broker.full.jpg -cephalid_coliseum.jpg http://[server]/OD/Cephalid%20Coliseum.full.jpg -cephalid_constable.jpg http://[server]/10E/Cephalid%20Constable.full.jpg -cephalid_illusionist.jpg http://[server]/TO/Cephalid%20Illusionist.full.jpg -cephalid_inkshrouder.jpg http://[server]/JU/Cephalid%20Inkshrouder.full.jpg -cephalid_looter.jpg http://[server]/OD/Cephalid%20Looter.full.jpg -cephalid_pathmage.jpg http://[server]/LE/Cephalid%20Pathmage.full.jpg -cephalid_retainer.jpg http://[server]/OD/Cephalid%20Retainer.full.jpg -cephalid_sage.jpg http://[server]/TO/Cephalid%20Sage.full.jpg -cephalid_scout.jpg http://[server]/OD/Cephalid%20Scout.full.jpg -cephalid_shrine.jpg http://[server]/OD/Cephalid%20Shrine.full.jpg -cephalid_snitch.jpg http://[server]/TO/Cephalid%20Snitch.full.jpg -cephalid_vandal.jpg http://[server]/TO/Cephalid%20Vandal.full.jpg -cerebral_vortex.jpg http://[server]/GP/Cerebral%20Vortex.full.jpg -ceremonial_guard.jpg http://[server]/MM/Ceremonial%20Guard.full.jpg -cerodon_yearling.jpg http://[server]/HOP/Cerodon%20Yearling.full.jpg -cerulean_sphinx.jpg http://[server]/RAV/Cerulean%20Sphinx.full.jpg -cerulean_wisps.jpg http://[server]/SHM/Cerulean%20Wisps.full.jpg -cerulean_wyvern.jpg http://[server]/MI/Cerulean%20Wyvern.full.jpg -cessation.jpg http://[server]/UL/Cessation.full.jpg -ceta_disciple.jpg http://[server]/AP/Ceta%20Disciple.full.jpg -ceta_sanctuary.jpg http://[server]/AP/Ceta%20Sanctuary.full.jpg -cetavolver.jpg http://[server]/AP/Cetavolver.full.jpg -chain_lightning.jpg http://[server]/LG/Chain%20Lightning.full.jpg -chain_of_acid.jpg http://[server]/ON/Chain%20of%20Acid.full.jpg -chain_of_plasma.jpg http://[server]/ON/Chain%20of%20Plasma.full.jpg -chain_of_silence.jpg http://[server]/ON/Chain%20of%20Silence.full.jpg -chain_of_smog.jpg http://[server]/ON/Chain%20of%20Smog.full.jpg -chain_of_vapor.jpg http://[server]/ON/Chain%20of%20Vapor.full.jpg -chain_stasis.jpg http://[server]/HL/Chain%20Stasis.full.jpg -chainbreaker.jpg http://[server]/SHM/Chainbreaker.full.jpg -chainer_dementia_master.jpg http://[server]/TO/Chainer,%20Dementia%20Master.full.jpg -chainers_edict.jpg http://[server]/TO/Chainer's%20Edict.full.jpg -chainflinger.jpg http://[server]/OD/Chainflinger.full.jpg -chains_of_mephistopheles.jpg http://[server]/LG/Chains%20of%20Mephistopheles.full.jpg -chalice_of_the_void.jpg http://[server]/MR/Chalice%20of%20the%20Void.full.jpg -chamber_of_manipulation.jpg http://[server]/OD/Chamber%20of%20Manipulation.full.jpg -chambered_nautilus.jpg http://[server]/MM/Chambered%20Nautilus.full.jpg -chameleon_blur.jpg http://[server]/TSP/Chameleon%20Blur.full.jpg -chameleon_colossus.jpg http://[server]/MOR/Chameleon%20Colossus.full.jpg -chameleon_spirit.jpg http://[server]/MM/Chameleon%20Spirit.full.jpg -champion_lancer.jpg http://[server]/ST/Champion%20Lancer.full.jpg -champions_victory.jpg http://[server]/P3/Champion's%20Victory.full.jpg -chance_encounter.jpg http://[server]/OD/Chance%20Encounter.full.jpg -chandler.jpg http://[server]/HL/Chandler.full.jpg -chandra_ablaze.jpg http://[server]/ZEN/Chandra%20Ablaze.full.jpg -chandra_nalaar.jpg http://[server]/M10/Chandra%20Nalaar.full.jpg -change_of_heart.jpg http://[server]/SH/Change%20of%20Heart.full.jpg -changeling_berserker.jpg http://[server]/LRW/Changeling%20Berserker.full.jpg -changeling_hero.jpg http://[server]/LRW/Changeling%20Hero.full.jpg -changeling_sentinel.jpg http://[server]/MOR/Changeling%20Sentinel.full.jpg -changeling_titan.jpg http://[server]/LRW/Changeling%20Titan.full.jpg -channel.jpg http://[server]/4E/Channel.full.jpg -channel_the_suns.jpg http://[server]/FD/Channel%20the%20Suns.full.jpg -chant_of_vitu_ghazi.jpg http://[server]/RAV/Chant%20of%20Vitu-Ghazi.full.jpg -chaos_charm.jpg http://[server]/MI/Chaos%20Charm.full.jpg -chaos_confetti.jpg http://[server]/UG/Chaos%20Confetti.full.jpg -chaos_harlequin.jpg http://[server]/AL/Chaos%20Harlequin.full.jpg -chaos_lord.jpg http://[server]/IA/Chaos%20Lord.full.jpg -chaos_moon.jpg http://[server]/IA/Chaos%20Moon.full.jpg -chaos_orb.jpg http://[server]/OV/Chaos%20Orb.full.jpg -chaoslace.jpg http://[server]/4E/Chaoslace.full.jpg -chaosphere.jpg http://[server]/MI/Chaosphere.full.jpg -chaotic_backlash.jpg http://[server]/EVE/Chaotic%20Backlash.full.jpg -chaotic_goo.jpg http://[server]/TE/Chaotic%20Goo.full.jpg -chaotic_strike.jpg http://[server]/IN/Chaotic%20Strike.full.jpg -char.jpg http://[server]/RAV/Char.full.jpg -char_rumbler.jpg http://[server]/FUT/Char-Rumbler.full.jpg -charcoal_diamond.jpg http://[server]/7E/Charcoal%20Diamond.full.jpg -charge_across_the_araba.jpg http://[server]/SOK/Charge%20Across%20the%20Araba.full.jpg -charging_bandits.jpg http://[server]/PT/Charging%20Bandits.full.jpg -charging_paladin.jpg http://[server]/EX/Charging%20Paladin.full.jpg -charging_rhino.jpg http://[server]/TE/Charging%20Rhino.full.jpg -charging_slateback.jpg http://[server]/ON/Charging%20Slateback.full.jpg -charging_troll.jpg http://[server]/IN/Charging%20Troll.full.jpg -chariot_of_the_sun.jpg http://[server]/MI/Chariot%20of%20the%20Sun.full.jpg -charisma.jpg http://[server]/MM/Charisma.full.jpg -charm_peddler.jpg http://[server]/MM/Charm%20Peddler.full.jpg -charm_school.jpg http://[server]/UG/Charm%20School.full.jpg -charmed_griffin.jpg http://[server]/MM/Charmed%20Griffin.full.jpg -charmed_pendant.jpg http://[server]/OD/Charmed%20Pendant.full.jpg -charnelhoard_wurm.jpg http://[server]/CFX/Charnelhoard%20Wurm.full.jpg -chartooth_cougar.jpg http://[server]/SC/Chartooth%20Cougar.full.jpg -chastise.jpg http://[server]/9E/Chastise.full.jpg -chatter_of_the_squirrel.jpg http://[server]/OD/Chatter%20of%20the%20Squirrel.full.jpg -cheap_ass.jpg http://[server]/UNH/Cheap%20Ass.full.jpg -cheatyface.jpg http://[server]/UNH/Cheatyface.full.jpg -checks_and_balances.jpg http://[server]/UG/Checks%20and%20Balances.full.jpg -chicken_a_la_king.jpg http://[server]/UG/Chicken%20a%20la%20King.full.jpg -chicken_egg.jpg http://[server]/UG/Chicken%20Egg.full.jpg -chieftain_en_dal.jpg http://[server]/NE/Chieftain%20en-Dal.full.jpg -child_of_alara.jpg http://[server]/CFX/Child%20of%20Alara.full.jpg -child_of_gaea.jpg http://[server]/US/Child%20of%20Gaea.full.jpg -child_of_night.jpg http://[server]/M10/Child%20of%20Night.full.jpg -child_of_thorns.jpg http://[server]/BOK/Child%20of%20Thorns.full.jpg -childhood_horror.jpg http://[server]/OD/Childhood%20Horror.full.jpg -children_of_korlis.jpg http://[server]/TSP/Children%20of%20Korlis.full.jpg -chill.jpg http://[server]/TE/Chill.full.jpg -chill_haunting.jpg http://[server]/SC/Chill%20Haunting.full.jpg -chill_to_the_bone.jpg http://[server]/CS/Chill%20to%20the%20Bone.full.jpg -chilling_apparition.jpg http://[server]/PY/Chilling%20Apparition.full.jpg -chilling_shade.jpg http://[server]/CS/Chilling%20Shade.full.jpg -chime_of_night.jpg http://[server]/UD/Chime%20of%20Night.full.jpg -chimeric_coils.jpg http://[server]/FD/Chimeric%20Coils.full.jpg -chimeric_egg.jpg http://[server]/DS/Chimeric%20Egg.full.jpg -chimeric_idol.jpg http://[server]/PY/Chimeric%20Idol.full.jpg -chimeric_sphere.jpg http://[server]/WL/Chimeric%20Sphere.full.jpg -chimeric_staff.jpg http://[server]/10E/Chimeric%20Staff.full.jpg -chimney_imp.jpg http://[server]/MR/Chimney%20Imp.full.jpg -chisei_heart_of_oceans.jpg http://[server]/BOK/Chisei,%20Heart%20of%20Oceans.full.jpg -chittering_rats.jpg http://[server]/DS/Chittering%20Rats.full.jpg -chlorophant.jpg http://[server]/OD/Chlorophant.full.jpg -cho_arrim_alchemist.jpg http://[server]/MM/Cho-Arrim%20Alchemist.full.jpg -cho_arrim_bruiser.jpg http://[server]/MM/Cho-Arrim%20Bruiser.full.jpg -cho_arrim_legate.jpg http://[server]/MM/Cho-Arrim%20Legate.full.jpg -cho_manno_revolutionary.jpg http://[server]/10E/Cho-Manno,%20Revolutionary.full.jpg -cho_mannos_blessing.jpg http://[server]/MM/Cho-Manno's%20Blessing.full.jpg -choice_of_damnations.jpg http://[server]/SOK/Choice%20of%20Damnations.full.jpg -choke.jpg http://[server]/8E/Choke.full.jpg -choking_sands.jpg http://[server]/MI/Choking%20Sands.full.jpg -choking_tethers.jpg http://[server]/ON/Choking%20Tethers.full.jpg -choking_vines.jpg http://[server]/WL/Choking%20Vines.full.jpg -chord_of_calling.jpg http://[server]/RAV/Chord%20of%20Calling.full.jpg -chorus_of_the_conclave.jpg http://[server]/RAV/Chorus%20of%20the%20Conclave.full.jpg -chorus_of_woe.jpg http://[server]/ST/Chorus%20of%20Woe.full.jpg -chromatic_armor.jpg http://[server]/IA/Chromatic%20Armor.full.jpg -chromatic_sphere.jpg http://[server]/IN/Chromatic%20Sphere.full.jpg -chromatic_star.jpg http://[server]/10E/Chromatic%20Star.full.jpg -chrome_mox.jpg http://[server]/MR/Chrome%20Mox.full.jpg -chromescale_drake.jpg http://[server]/DS/Chromescale%20Drake.full.jpg -chromeshell_crab.jpg http://[server]/LE/Chromeshell%20Crab.full.jpg -chromium.jpg http://[server]/CH/Chromium.full.jpg -chronatog.jpg http://[server]/VI/Chronatog.full.jpg -chronatog_totem.jpg http://[server]/TSP/Chronatog%20Totem.full.jpg -chronomantic_escape.jpg http://[server]/FUT/Chronomantic%20Escape.full.jpg -chronosavant.jpg http://[server]/TSP/Chronosavant.full.jpg -chronozoa.jpg http://[server]/PLC/Chronozoa.full.jpg -chub_toad.jpg http://[server]/IA/Chub%20Toad.full.jpg -churning_eddy.jpg http://[server]/TO/Churning%20Eddy.full.jpg -cinder_cloud.jpg http://[server]/MI/Cinder%20Cloud.full.jpg -cinder_crawler.jpg http://[server]/EX/Cinder%20Crawler.full.jpg -cinder_elemental.jpg http://[server]/MM/Cinder%20Elemental.full.jpg -cinder_giant.jpg http://[server]/WL/Cinder%20Giant.full.jpg -cinder_marsh.jpg http://[server]/TE/Cinder%20Marsh.full.jpg -cinder_pyromancer.jpg http://[server]/EVE/Cinder%20Pyromancer.full.jpg -cinder_seer.jpg http://[server]/UD/Cinder%20Seer.full.jpg -cinder_shade.jpg http://[server]/IN/Cinder%20Shade.full.jpg -cinder_storm.jpg http://[server]/ST/Cinder%20Storm.full.jpg -cinder_wall.jpg http://[server]/8E/Cinder%20Wall.full.jpg -cinderbones.jpg http://[server]/SHM/Cinderbones.full.jpg -cinderhaze_wretch.jpg http://[server]/SHM/Cinderhaze%20Wretch.full.jpg -circle_of_affliction.jpg http://[server]/PLC/Circle%20of%20Affliction.full.jpg -circle_of_despair.jpg http://[server]/MI/Circle%20of%20Despair.full.jpg -circle_of_protection_art.jpg http://[server]/UNH/Circle%20of%20Protection%20Art.full.jpg -circle_of_protection_artifacts.jpg http://[server]/5E/Circle%20of%20Protection%20Artifacts.full.jpg -circle_of_protection_black.jpg http://[server]/9E/Circle%20of%20Protection%20Black.full.jpg -circle_of_protection_blue.jpg http://[server]/8E/Circle%20of%20Protection%20Blue.full.jpg -circle_of_protection_green.jpg http://[server]/8E/Circle%20of%20Protection%20Green.full.jpg -circle_of_protection_red.jpg http://[server]/9E/Circle%20of%20Protection%20Red.full.jpg -circle_of_protection_shadow.jpg http://[server]/TE/Circle%20of%20Protection%20Shadow.full.jpg -circle_of_protection_white.jpg http://[server]/8E/Circle%20of%20Protection%20White.full.jpg -circle_of_solace.jpg http://[server]/ON/Circle%20of%20Solace.full.jpg -circling_vultures.jpg http://[server]/WL/Circling%20Vultures.full.jpg -circu_dimir_lobotomist.jpg http://[server]/RAV/Circu,%20Dimir%20Lobotomist.full.jpg -circular_logic.jpg http://[server]/TO/Circular%20Logic.full.jpg -citadel_of_pain.jpg http://[server]/PY/Citadel%20of%20Pain.full.jpg -citanul_centaurs.jpg http://[server]/US/Citanul%20Centaurs.full.jpg -citanul_druid.jpg http://[server]/AQ/Citanul%20Druid.full.jpg -citanul_flute.jpg http://[server]/10E/Citanul%20Flute.full.jpg -citanul_hierophants.jpg http://[server]/US/Citanul%20Hierophants.full.jpg -citanul_woodreaders.jpg http://[server]/PLC/Citanul%20Woodreaders.full.jpg -city_in_a_bottle.jpg http://[server]/AN/City%20in%20a%20Bottle.full.jpg -city_of_ass.jpg http://[server]/UNH/City%20of%20Ass.full.jpg -city_of_brass.jpg http://[server]/8E/City%20of%20Brass.full.jpg -city_of_shadows.jpg http://[server]/DK/City%20of%20Shadows.full.jpg -city_of_solitude.jpg http://[server]/VI/City%20of%20Solitude.full.jpg -city_of_traitors.jpg http://[server]/EX/City%20of%20Traitors.full.jpg -civic_guildmage.jpg http://[server]/MI/Civic%20Guildmage.full.jpg -civic_wayfinder.jpg http://[server]/10E/Civic%20Wayfinder.full.jpg -clairvoyance.jpg http://[server]/IA/Clairvoyance.full.jpg -clam_i_am.jpg http://[server]/UG/Clam-I-Am.full.jpg -clam_session.jpg http://[server]/UG/Clam%20Session.full.jpg -clambassadors.jpg http://[server]/UG/Clambassadors.full.jpg -clarion_ultimatum.jpg http://[server]/ALA/Clarion%20Ultimatum.full.jpg -clash_of_realities.jpg http://[server]/BOK/Clash%20of%20Realities.full.jpg -claws_of_gix.jpg http://[server]/US/Claws%20of%20Gix.full.jpg -claws_of_wirewood.jpg http://[server]/SC/Claws%20of%20Wirewood.full.jpg -clay_pigeon.jpg http://[server]/UG/Clay%20Pigeon.full.jpg -clay_statue.jpg http://[server]/5E/Clay%20Statue.full.jpg -cleanfall.jpg http://[server]/CHK/Cleanfall.full.jpg -cleanse.jpg http://[server]/LG/Cleanse.full.jpg -cleansing.jpg http://[server]/DK/Cleansing.full.jpg -cleansing_beam.jpg http://[server]/RAV/Cleansing%20Beam.full.jpg -cleansing_meditation.jpg http://[server]/TO/Cleansing%20Meditation.full.jpg -clear.jpg http://[server]/US/Clear.full.jpg -clear_the_land.jpg http://[server]/MM/Clear%20the%20Land.full.jpg -clearwater_goblet.jpg http://[server]/FD/Clearwater%20Goblet.full.jpg -clergy_en_vec.jpg http://[server]/TE/Clergy%20en-Vec.full.jpg -clergy_of_the_holy_nimbus.jpg http://[server]/LG/Clergy%20of%20the%20Holy%20Nimbus.full.jpg -clickslither.jpg http://[server]/LE/Clickslither.full.jpg -cliff_threader.jpg http://[server]/ZEN/Cliff%20Threader.full.jpg -cliffrunner_behemoth.jpg http://[server]/CFX/Cliffrunner%20Behemoth.full.jpg -clinging_darkness.jpg http://[server]/RAV/Clinging%20Darkness.full.jpg -cloak_and_dagger.jpg http://[server]/MOR/Cloak%20and%20Dagger.full.jpg -cloak_of_confusion.jpg http://[server]/5E/Cloak%20of%20Confusion.full.jpg -cloak_of_feathers.jpg http://[server]/PT/Cloak%20of%20Feathers.full.jpg -cloak_of_invisibility.jpg http://[server]/MI/Cloak%20of%20Invisibility.full.jpg -cloak_of_mists.jpg http://[server]/US/Cloak%20of%20Mists.full.jpg -clock_of_omens.jpg http://[server]/FD/Clock%20of%20Omens.full.jpg -clockspinning.jpg http://[server]/TSP/Clockspinning.full.jpg -clockwork_avian.jpg http://[server]/BD/Clockwork%20Avian.full.jpg -clockwork_beast.jpg http://[server]/5E/Clockwork%20Beast.full.jpg -clockwork_beetle.jpg http://[server]/MR/Clockwork%20Beetle.full.jpg -clockwork_condor.jpg http://[server]/MR/Clockwork%20Condor.full.jpg -clockwork_dragon.jpg http://[server]/MR/Clockwork%20Dragon.full.jpg -clockwork_gnomes.jpg http://[server]/HL/Clockwork%20Gnomes.full.jpg -clockwork_hydra.jpg http://[server]/TSP/Clockwork%20Hydra.full.jpg -clockwork_steed.jpg http://[server]/5E/Clockwork%20Steed.full.jpg -clockwork_swarm.jpg http://[server]/HL/Clockwork%20Swarm.full.jpg -clockwork_vorrac.jpg http://[server]/MR/Clockwork%20Vorrac.full.jpg -clone.jpg http://[server]/M10/Clone.full.jpg -close_quarters.jpg http://[server]/MM/Close%20Quarters.full.jpg -clot_sliver.jpg http://[server]/TE/Clot%20Sliver.full.jpg -cloud_cover.jpg http://[server]/PS/Cloud%20Cover.full.jpg -cloud_djinn.jpg http://[server]/BD/Cloud%20Djinn.full.jpg -cloud_dragon.jpg http://[server]/PT/Cloud%20Dragon.full.jpg -cloud_elemental.jpg http://[server]/10E/Cloud%20Elemental.full.jpg -cloud_key.jpg http://[server]/FUT/Cloud%20Key.full.jpg -cloud_of_faeries.jpg http://[server]/UL/Cloud%20of%20Faeries.full.jpg -cloud_pirates.jpg http://[server]/PT/Cloud%20Pirates.full.jpg -cloud_spirit.jpg http://[server]/PT/Cloud%20Spirit.full.jpg -cloud_sprite.jpg http://[server]/10E/Cloud%20Sprite.full.jpg -cloudchaser_eagle.jpg http://[server]/7E/Cloudchaser%20Eagle.full.jpg -cloudchaser_kestrel.jpg http://[server]/TSP/Cloudchaser%20Kestrel.full.jpg -cloudcrest_lake.jpg http://[server]/CHK/Cloudcrest%20Lake.full.jpg -cloudcrown_oak.jpg http://[server]/LRW/Cloudcrown%20Oak.full.jpg -cloudgoat_ranger.jpg http://[server]/LRW/Cloudgoat%20Ranger.full.jpg -cloudheath_drake.jpg http://[server]/ALA/Cloudheath%20Drake.full.jpg -cloudhoof_kirin.jpg http://[server]/SOK/Cloudhoof%20Kirin.full.jpg -cloudpost.jpg http://[server]/MR/Cloudpost.full.jpg -cloudreach_cavalry.jpg http://[server]/LE/Cloudreach%20Cavalry.full.jpg -cloudseeder.jpg http://[server]/FUT/Cloudseeder.full.jpg -cloudskate.jpg http://[server]/NE/Cloudskate.full.jpg -cloudstone_curio.jpg http://[server]/RAV/Cloudstone%20Curio.full.jpg -cloudthresher.jpg http://[server]/LRW/Cloudthresher.full.jpg -clout_of_the_dominus.jpg http://[server]/EVE/Clout%20of%20the%20Dominus.full.jpg -cloven_casting.jpg http://[server]/ARB/Cloven%20Casting.full.jpg -clutch_of_the_undercity.jpg http://[server]/RAV/Clutch%20of%20the%20Undercity.full.jpg -clutch_of_undeath.jpg http://[server]/SC/Clutch%20of%20Undeath.full.jpg -coal_golem.jpg http://[server]/DK/Coal%20Golem.full.jpg -coal_stoker.jpg http://[server]/TSP/Coal%20Stoker.full.jpg -coalhauler_swine.jpg http://[server]/RAV/Coalhauler%20Swine.full.jpg -coalition_flag.jpg http://[server]/AP/Coalition%20Flag.full.jpg -coalition_honor_guard.jpg http://[server]/AP/Coalition%20Honor%20Guard.full.jpg -coalition_relic.jpg http://[server]/FUT/Coalition%20Relic.full.jpg -coalition_victory.jpg http://[server]/IN/Coalition%20Victory.full.jpg -coast_watcher.jpg http://[server]/SC/Coast%20Watcher.full.jpg -coastal_drake.jpg http://[server]/AP/Coastal%20Drake.full.jpg -coastal_hornclaw.jpg http://[server]/8E/Coastal%20Hornclaw.full.jpg -coastal_piracy.jpg http://[server]/8E/Coastal%20Piracy.full.jpg -coastal_tower.jpg http://[server]/8E/Coastal%20Tower.full.jpg -coastal_wizard.jpg http://[server]/P2/Coastal%20Wizard.full.jpg -coat_of_arms.jpg http://[server]/M10/Coat%20of%20Arms.full.jpg -cobalt_golem.jpg http://[server]/MR/Cobalt%20Golem.full.jpg -cobra_trap.jpg http://[server]/ZEN/Cobra%20Trap.full.jpg -cockatrice.jpg http://[server]/5E/Cockatrice.full.jpg -cocoon.jpg http://[server]/CH/Cocoon.full.jpg -coercion.jpg http://[server]/9E/Coercion.full.jpg -coffin_puppets.jpg http://[server]/PY/Coffin%20Puppets.full.jpg -coffin_purge.jpg http://[server]/OD/Coffin%20Purge.full.jpg -coffin_queen.jpg http://[server]/TE/Coffin%20Queen.full.jpg -cognivore.jpg http://[server]/OD/Cognivore.full.jpg -coiled_tinviper.jpg http://[server]/TE/Coiled%20Tinviper.full.jpg -coiling_oracle.jpg http://[server]/DIS/Coiling%20Oracle.full.jpg -coiling_woodworm.jpg http://[server]/NE/Coiling%20Woodworm.full.jpg -coils_of_the_medusa.jpg http://[server]/WL/Coils%20of%20the%20Medusa.full.jpg -cold_eyed_selkie.jpg http://[server]/EVE/Cold-Eyed%20Selkie.full.jpg -cold_snap.jpg http://[server]/IA/Cold%20Snap.full.jpg -cold_storage.jpg http://[server]/TE/Cold%20Storage.full.jpg -coldsteel_heart.jpg http://[server]/CS/Coldsteel%20Heart.full.jpg -colfenors_plans.jpg http://[server]/LRW/Colfenor's%20Plans.full.jpg -colfenors_urn.jpg http://[server]/LRW/Colfenor's%20Urn.full.jpg -collapsing_borders.jpg http://[server]/IN/Collapsing%20Borders.full.jpg -collective_restraint.jpg http://[server]/IN/Collective%20Restraint.full.jpg -collective_unconscious.jpg http://[server]/8E/Collective%20Unconscious.full.jpg -collector_protector.jpg http://[server]/UNH/Collector%20Protector.full.jpg -colos_yearling.jpg http://[server]/UD/Colos%20Yearling.full.jpg -colossal_might.jpg http://[server]/ARB/Colossal%20Might.full.jpg -colossus_of_sardia.jpg http://[server]/10E/Colossus%20of%20Sardia.full.jpg -coma_veil.jpg http://[server]/ALA/Coma%20Veil.full.jpg -combat_medic.jpg http://[server]/AT/Combat%20Medic.full.jpg -command_of_unsummoning.jpg http://[server]/PT/Command%20of%20Unsummoning.full.jpg -commandeer.jpg http://[server]/CS/Commandeer.full.jpg -commander_eesha.jpg http://[server]/JU/Commander%20Eesha.full.jpg -commander_greven_il_vec.jpg http://[server]/TE/Commander%20Greven%20il-Vec.full.jpg -commando_raid.jpg http://[server]/ON/Commando%20Raid.full.jpg -common_cause.jpg http://[server]/MM/Common%20Cause.full.jpg -common_courtesy.jpg http://[server]/UG/Common%20Courtesy.full.jpg -commune_with_nature.jpg http://[server]/10E/Commune%20with%20Nature.full.jpg -complex_automaton.jpg http://[server]/NE/Complex%20Automaton.full.jpg -complicate.jpg http://[server]/ON/Complicate.full.jpg -composite_golem.jpg http://[server]/10E/Composite%20Golem.full.jpg -compost.jpg http://[server]/7E/Compost.full.jpg -compulsion.jpg http://[server]/TO/Compulsion.full.jpg -compulsive_research.jpg http://[server]/RAV/Compulsive%20Research.full.jpg -concentrate.jpg http://[server]/8E/Concentrate.full.jpg -concerted_effort.jpg http://[server]/RAV/Concerted%20Effort.full.jpg -conch_horn.jpg http://[server]/FE/Conch%20Horn.full.jpg -conclave_equenaut.jpg http://[server]/RAV/Conclave%20Equenaut.full.jpg -conclave_phalanx.jpg http://[server]/RAV/Conclave%20Phalanx.full.jpg -conclaves_blessing.jpg http://[server]/RAV/Conclave's%20Blessing.full.jpg -concordant_crossroads.jpg http://[server]/CH/Concordant%20Crossroads.full.jpg -condemn.jpg http://[server]/10E/Condemn.full.jpg -condescend.jpg http://[server]/FD/Condescend.full.jpg -cone_of_flame.jpg http://[server]/10E/Cone%20of%20Flame.full.jpg -confessor.jpg http://[server]/OD/Confessor.full.jpg -confiscate.jpg http://[server]/9E/Confiscate.full.jpg -conflagrate.jpg http://[server]/TSP/Conflagrate.full.jpg -conflux.jpg http://[server]/CFX/Conflux.full.jpg -confound.jpg http://[server]/PS/Confound.full.jpg -confusion_in_the_ranks.jpg http://[server]/MR/Confusion%20in%20the%20Ranks.full.jpg -congregate.jpg http://[server]/US/Congregate.full.jpg -congregation_at_dawn.jpg http://[server]/RAV/Congregation%20At%20Dawn.full.jpg -conjurers_ban.jpg http://[server]/GP/Conjurer's%20Ban.full.jpg -conjurers_bauble.jpg http://[server]/FD/Conjurer's%20Bauble.full.jpg -conquer.jpg http://[server]/6E/Conquer.full.jpg -conquerors_pledge.jpg http://[server]/ZEN/Conqueror's%20Pledge.full.jpg -consecrate_land.jpg http://[server]/U/Consecrate%20Land.full.jpg -conservator.jpg http://[server]/4E/Conservator.full.jpg -consign_to_dream.jpg http://[server]/SHM/Consign%20to%20Dream.full.jpg -conspiracy.jpg http://[server]/MM/Conspiracy.full.jpg -constant_mists.jpg http://[server]/SH/Constant%20Mists.full.jpg -constricting_tendrils.jpg http://[server]/CFX/Constricting%20Tendrils.full.jpg -consult_the_necrosages.jpg http://[server]/RAV/Consult%20the%20Necrosages.full.jpg -consume_spirit.jpg http://[server]/10E/Consume%20Spirit.full.jpg -consume_strength.jpg http://[server]/AP/Consume%20Strength.full.jpg -consuming_bonfire.jpg http://[server]/LRW/Consuming%20Bonfire.full.jpg -consuming_ferocity.jpg http://[server]/MI/Consuming%20Ferocity.full.jpg -consuming_vortex.jpg http://[server]/CHK/Consuming%20Vortex.full.jpg -consumptive_goo.jpg http://[server]/SC/Consumptive%20Goo.full.jpg -contagion.jpg http://[server]/AL/Contagion.full.jpg -contaminated_bond.jpg http://[server]/10E/Contaminated%20Bond.full.jpg -contamination.jpg http://[server]/US/Contamination.full.jpg -contemplation.jpg http://[server]/SH/Contemplation.full.jpg -contempt.jpg http://[server]/SH/Contempt.full.jpg -contested_cliffs.jpg http://[server]/ON/Contested%20Cliffs.full.jpg -contract_from_below.jpg http://[server]/U/Contract%20from%20Below.full.jpg -control_magic.jpg http://[server]/4E/Control%20Magic.full.jpg -control_of_the_court.jpg http://[server]/P3/Control%20of%20the%20Court.full.jpg -controlled_instincts.jpg http://[server]/CFX/Controlled%20Instincts.full.jpg -controvert.jpg http://[server]/CS/Controvert.full.jpg -convalescence.jpg http://[server]/EX/Convalescence.full.jpg -convalescent_care.jpg http://[server]/ON/Convalescent%20Care.full.jpg -conversion.jpg http://[server]/4E/Conversion.full.jpg -conviction.jpg http://[server]/SH/Conviction.full.jpg -convincing_mirage.jpg http://[server]/M10/Convincing%20Mirage.full.jpg -convolute.jpg http://[server]/RAV/Convolute.full.jpg -convulsing_licid.jpg http://[server]/SH/Convulsing%20Licid.full.jpg -cooperation.jpg http://[server]/IA/Cooperation.full.jpg -coordinated_barrage.jpg http://[server]/MOR/Coordinated%20Barrage.full.jpg -copper_gnomes.jpg http://[server]/US/Copper%20Gnomes.full.jpg -copper_leaf_angel.jpg http://[server]/PY/Copper-Leaf%20Angel.full.jpg -copper_myr.jpg http://[server]/MR/Copper%20Myr.full.jpg -copper_tablet.jpg http://[server]/U/Copper%20Tablet.full.jpg -copperhoof_vorrac.jpg http://[server]/MR/Copperhoof%20Vorrac.full.jpg -copy_artifact.jpg http://[server]/U/Copy%20Artifact.full.jpg -copy_enchantment.jpg http://[server]/RAV/Copy%20Enchantment.full.jpg -coral_atoll.jpg http://[server]/VI/Coral%20Atoll.full.jpg -coral_eel.jpg http://[server]/9E/Coral%20Eel.full.jpg -coral_fighters.jpg http://[server]/MI/Coral%20Fighters.full.jpg -coral_helm.jpg http://[server]/5E/Coral%20Helm.full.jpg -coral_merfolk.jpg http://[server]/M10/Coral%20Merfolk.full.jpg -coral_net.jpg http://[server]/TO/Coral%20Net.full.jpg -coral_reef.jpg http://[server]/HL/Coral%20Reef.full.jpg -coral_trickster.jpg http://[server]/TSP/Coral%20Trickster.full.jpg -coretapper.jpg http://[server]/DS/Coretapper.full.jpg -cornered_market.jpg http://[server]/MM/Cornered%20Market.full.jpg -corpse_connoisseur.jpg http://[server]/ALA/Corpse%20Connoisseur.full.jpg -corpse_dance.jpg http://[server]/TE/Corpse%20Dance.full.jpg -corpse_harvester.jpg http://[server]/LE/Corpse%20Harvester.full.jpg -corpulent_corpse.jpg http://[server]/TSP/Corpulent%20Corpse.full.jpg -corrosion.jpg http://[server]/VI/Corrosion.full.jpg -corrosive_mentor.jpg http://[server]/SHM/Corrosive%20Mentor.full.jpg -corrupt.jpg http://[server]/7E/Corrupt.full.jpg -corrupt_court_official.jpg http://[server]/P3/Corrupt%20Court%20Official.full.jpg -corrupt_eunuchs.jpg http://[server]/P3/Corrupt%20Eunuchs.full.jpg -corrupt_official.jpg http://[server]/MM/Corrupt%20Official.full.jpg -corrupted_roots.jpg http://[server]/CFX/Corrupted%20Roots.full.jpg -corrupting_licid.jpg http://[server]/SH/Corrupting%20Licid.full.jpg -cosis_trickster.jpg http://[server]/ZEN/Cosi's%20Trickster.full.jpg -cosmic_horror.jpg http://[server]/LG/Cosmic%20Horror.full.jpg -cosmic_larva.jpg http://[server]/FD/Cosmic%20Larva.full.jpg -council_of_advisors.jpg http://[server]/P3/Council%20of%20Advisors.full.jpg -counsel_of_the_soratami.jpg http://[server]/10E/Counsel%20of%20the%20Soratami.full.jpg -counterbalance.jpg http://[server]/CS/Counterbalance.full.jpg -counterbore.jpg http://[server]/SHM/Counterbore.full.jpg -counterintelligence.jpg http://[server]/P3/Counterintelligence.full.jpg -counterspell.jpg http://[server]/7E/Counterspell.full.jpg -countersquall.jpg http://[server]/CFX/Countersquall.full.jpg -countryside_crusher.jpg http://[server]/MOR/Countryside%20Crusher.full.jpg -courier_hawk.jpg http://[server]/RAV/Courier%20Hawk.full.jpg -couriers_capsule.jpg http://[server]/ALA/Courier's%20Capsule.full.jpg -court_archers.jpg http://[server]/ALA/Court%20Archers.full.jpg -court_homunculus.jpg http://[server]/CFX/Court%20Homunculus.full.jpg -court_hussar.jpg http://[server]/DIS/Court%20Hussar.full.jpg -covenant_of_minds.jpg http://[server]/ALA/Covenant%20of%20Minds.full.jpg -cover_of_darkness.jpg http://[server]/ON/Cover%20of%20Darkness.full.jpg -cover_of_winter.jpg http://[server]/CS/Cover%20of%20Winter.full.jpg -covert_operative.jpg http://[server]/LE/Covert%20Operative.full.jpg -covetous_dragon.jpg http://[server]/UD/Covetous%20Dragon.full.jpg -cowardice.jpg http://[server]/9E/Cowardice.full.jpg -cowed_by_wisdom.jpg http://[server]/SOK/Cowed%20by%20Wisdom.full.jpg -crabapple_cohort.jpg http://[server]/SHM/Crabapple%20Cohort.full.jpg -crack_the_earth.jpg http://[server]/BOK/Crack%20the%20Earth.full.jpg -crackdown.jpg http://[server]/MM/Crackdown.full.jpg -crackleburr.jpg http://[server]/EVE/Crackleburr.full.jpg -crackling_club.jpg http://[server]/TO/Crackling%20Club.full.jpg -cradle_guard.jpg http://[server]/US/Cradle%20Guard.full.jpg -cradle_of_vitality.jpg http://[server]/ALA/Cradle%20of%20Vitality.full.jpg -cradle_to_grave.jpg http://[server]/PLC/Cradle%20to%20Grave.full.jpg -crafty_pathmage.jpg http://[server]/10E/Crafty%20Pathmage.full.jpg -crag_puca.jpg http://[server]/EVE/Crag%20Puca.full.jpg -crag_saurian.jpg http://[server]/MM/Crag%20Saurian.full.jpg -cragganwick_cremator.jpg http://[server]/SHM/Cragganwick%20Cremator.full.jpg -cranial_extraction.jpg http://[server]/CHK/Cranial%20Extraction.full.jpg -cranial_plating.jpg http://[server]/FD/Cranial%20Plating.full.jpg -crash.jpg http://[server]/MM/Crash.full.jpg -crash_landing.jpg http://[server]/GP/Crash%20Landing.full.jpg -crash_of_rhinos.jpg http://[server]/MI/Crash%20of%20Rhinos.full.jpg -crashing_boars.jpg http://[server]/BD/Crashing%20Boars.full.jpg -crashing_centaur.jpg http://[server]/OD/Crashing%20Centaur.full.jpg -crater_hellion.jpg http://[server]/US/Crater%20Hellion.full.jpg -craven_giant.jpg http://[server]/PT/Craven%20Giant.full.jpg -craven_knight.jpg http://[server]/PT/Craven%20Knight.full.jpg -craw_giant.jpg http://[server]/LG/Craw%20Giant.full.jpg -craw_wurm.jpg http://[server]/M10/Craw%20Wurm.full.jpg -crawling_filth.jpg http://[server]/BOK/Crawling%20Filth.full.jpg -crawlspace.jpg http://[server]/UL/Crawlspace.full.jpg -crazed_armodon.jpg http://[server]/TE/Crazed%20Armodon.full.jpg -crazed_firecat.jpg http://[server]/TO/Crazed%20Firecat.full.jpg -crazed_goblin.jpg http://[server]/DS/Crazed%20Goblin.full.jpg -crazed_skirge.jpg http://[server]/US/Crazed%20Skirge.full.jpg -creakwood_ghoul.jpg http://[server]/EVE/Creakwood%20Ghoul.full.jpg -creakwood_liege.jpg http://[server]/EVE/Creakwood%20Liege.full.jpg -cream_of_the_crop.jpg http://[server]/MOR/Cream%20of%20the%20Crop.full.jpg -creature_bond.jpg http://[server]/4E/Creature%20Bond.full.jpg -creature_guy.jpg http://[server]/UNH/Creature%20Guy.full.jpg -credit_voucher.jpg http://[server]/MM/Credit%20Voucher.full.jpg -creeping_mold.jpg http://[server]/10E/Creeping%20Mold.full.jpg -cremate.jpg http://[server]/IN/Cremate.full.jpg -crenellated_wall.jpg http://[server]/MM/Crenellated%20Wall.full.jpg -crested_craghorn.jpg http://[server]/LE/Crested%20Craghorn.full.jpg -crevasse.jpg http://[server]/LG/Crevasse.full.jpg -crib_swap.jpg http://[server]/LRW/Crib%20Swap.full.jpg -crimepunishment.jpg http://[server]/DIS/CrimePunishment.full.jpg -crimson_acolyte.jpg http://[server]/IN/Crimson%20Acolyte.full.jpg -crimson_hellkite.jpg http://[server]/7E/Crimson%20Hellkite.full.jpg -crimson_kobolds.jpg http://[server]/LG/Crimson%20Kobolds.full.jpg -crimson_manticore.jpg http://[server]/LG/Crimson%20Manticore.full.jpg -crimson_roc.jpg http://[server]/MI/Crimson%20Roc.full.jpg -crimson_wisps.jpg http://[server]/SHM/Crimson%20Wisps.full.jpg -crippling_fatigue.jpg http://[server]/TO/Crippling%20Fatigue.full.jpg -cromat.jpg http://[server]/AP/Cromat.full.jpg -crookclaw_elder.jpg http://[server]/LE/Crookclaw%20Elder.full.jpg -crookclaw_transmuter.jpg http://[server]/TSP/Crookclaw%20Transmuter.full.jpg -crooked_scales.jpg http://[server]/MM/Crooked%20Scales.full.jpg -crookshank_kobolds.jpg http://[server]/LG/Crookshank%20Kobolds.full.jpg -crop_rotation.jpg http://[server]/UL/Crop%20Rotation.full.jpg -crosis_the_purger.jpg http://[server]/IN/Crosis,%20the%20Purger.full.jpg -crosiss_attendant.jpg http://[server]/IN/Crosis's%20Attendant.full.jpg -crosiss_catacombs.jpg http://[server]/PS/Crosis's%20Catacombs.full.jpg -crosiss_charm.jpg http://[server]/PS/Crosis's%20Charm.full.jpg -crossbow_ambush.jpg http://[server]/SH/Crossbow%20Ambush.full.jpg -crossbow_infantry.jpg http://[server]/9E/Crossbow%20Infantry.full.jpg -crosswinds.jpg http://[server]/US/Crosswinds.full.jpg -crovax.jpg http://[server]/VG/Crovax.full.jpg -crovax_ascendant_hero.jpg http://[server]/PLC/Crovax,%20Ascendant%20Hero.full.jpg -crovax_the_cursed.jpg http://[server]/SH/Crovax%20the%20Cursed.full.jpg -crowd_favorites.jpg http://[server]/ON/Crowd%20Favorites.full.jpg -crowd_of_cinders.jpg http://[server]/SHM/Crowd%20of%20Cinders.full.jpg -crown_of_ascension.jpg http://[server]/ON/Crown%20of%20Ascension.full.jpg -crown_of_awe.jpg http://[server]/ON/Crown%20of%20Awe.full.jpg -crown_of_convergence.jpg http://[server]/RAV/Crown%20of%20Convergence.full.jpg -crown_of_flames.jpg http://[server]/IN/Crown%20of%20Flames.full.jpg -crown_of_fury.jpg http://[server]/ON/Crown%20of%20Fury.full.jpg -crown_of_suspicion.jpg http://[server]/ON/Crown%20of%20Suspicion.full.jpg -crown_of_the_ages.jpg http://[server]/IA/Crown%20of%20the%20Ages.full.jpg -crown_of_vigor.jpg http://[server]/ON/Crown%20of%20Vigor.full.jpg -crucible_of_fire.jpg http://[server]/ALA/Crucible%20of%20Fire.full.jpg -crucible_of_worlds.jpg http://[server]/10E/Crucible%20of%20Worlds.full.jpg -crude_rampart.jpg http://[server]/ON/Crude%20Rampart.full.jpg -cruel_bargain.jpg http://[server]/PT/Cruel%20Bargain.full.jpg -cruel_deceiver.jpg http://[server]/CHK/Cruel%20Deceiver.full.jpg -cruel_edict.jpg http://[server]/10E/Cruel%20Edict.full.jpg -cruel_fate.jpg http://[server]/PT/Cruel%20Fate.full.jpg -cruel_revival.jpg http://[server]/ON/Cruel%20Revival.full.jpg -cruel_tutor.jpg http://[server]/PT/Cruel%20Tutor.full.jpg -cruel_ultimatum.jpg http://[server]/ALA/Cruel%20Ultimatum.full.jpg -crumble.jpg http://[server]/5E/Crumble.full.jpg -crumbling_ashes.jpg http://[server]/EVE/Crumbling%20Ashes.full.jpg -crumbling_necropolis.jpg http://[server]/ALA/Crumbling%20Necropolis.full.jpg -crumbling_sanctuary.jpg http://[server]/MM/Crumbling%20Sanctuary.full.jpg -crusade.jpg http://[server]/6E/Crusade.full.jpg -crusading_knight.jpg http://[server]/IN/Crusading%20Knight.full.jpg -crush_of_wurms.jpg http://[server]/JU/Crush%20of%20Wurms.full.jpg -crush_underfoot.jpg http://[server]/LRW/Crush%20Underfoot.full.jpg -crushing_pain.jpg http://[server]/CHK/Crushing%20Pain.full.jpg -cry_of_contrition.jpg http://[server]/GP/Cry%20of%20Contrition.full.jpg -cryoclasm.jpg http://[server]/10E/Cryoclasm.full.jpg -crypt_angel.jpg http://[server]/IN/Crypt%20Angel.full.jpg -crypt_champion.jpg http://[server]/DIS/Crypt%20Champion.full.jpg -crypt_cobra.jpg http://[server]/MI/Crypt%20Cobra.full.jpg -crypt_creeper.jpg http://[server]/OD/Crypt%20Creeper.full.jpg -crypt_of_agadeem.jpg http://[server]/ZEN/Crypt%20of%20Agadeem.full.jpg -crypt_rats.jpg http://[server]/7E/Crypt%20Rats.full.jpg -crypt_ripper.jpg http://[server]/ZEN/Crypt%20Ripper.full.jpg -crypt_sliver.jpg http://[server]/LE/Crypt%20Sliver.full.jpg -cryptic_annelid.jpg http://[server]/FUT/Cryptic%20Annelid.full.jpg -cryptic_command.jpg http://[server]/LRW/Cryptic%20Command.full.jpg -cryptic_gateway.jpg http://[server]/ON/Cryptic%20Gateway.full.jpg -cryptwailing.jpg http://[server]/GP/Cryptwailing.full.jpg -crystal_chimes.jpg http://[server]/US/Crystal%20Chimes.full.jpg -crystal_golem.jpg http://[server]/MI/Crystal%20Golem.full.jpg -crystal_quarry.jpg http://[server]/OD/Crystal%20Quarry.full.jpg -crystal_rod.jpg http://[server]/8E/Crystal%20Rod.full.jpg -crystal_seer.jpg http://[server]/GP/Crystal%20Seer.full.jpg -crystal_shard.jpg http://[server]/MR/Crystal%20Shard.full.jpg -crystal_spray.jpg http://[server]/IN/Crystal%20Spray.full.jpg -crystal_vein.jpg http://[server]/MI/Crystal%20Vein.full.jpg -crystalline_sliver.jpg http://[server]/SH/Crystalline%20Sliver.full.jpg -crystallization.jpg http://[server]/ARB/Crystallization.full.jpg -cudgel_troll.jpg http://[server]/M10/Cudgel%20Troll.full.jpg -culling_scales.jpg http://[server]/MR/Culling%20Scales.full.jpg -culling_sun.jpg http://[server]/GP/Culling%20Sun.full.jpg -culling_the_weak.jpg http://[server]/EX/Culling%20the%20Weak.full.jpg -cultbrand_cinder.jpg http://[server]/SHM/Cultbrand%20Cinder.full.jpg -cultural_exchange.jpg http://[server]/OD/Cultural%20Exchange.full.jpg -cumber_stone.jpg http://[server]/CFX/Cumber%20Stone.full.jpg -cunning.jpg http://[server]/EX/Cunning.full.jpg -cunning_advisor.jpg http://[server]/P3/Cunning%20Advisor.full.jpg -cunning_bandit.jpg http://[server]/BOK/Cunning%20Bandit.full.jpg -cunning_giant.jpg http://[server]/P2/Cunning%20Giant.full.jpg -cunning_lethemancer.jpg http://[server]/ALA/Cunning%20Lethemancer.full.jpg -cunning_wish.jpg http://[server]/JGC/Cunning%20Wish.full.jpg -cuombajj_witches.jpg http://[server]/CH/Cuombajj%20Witches.full.jpg -curfew.jpg http://[server]/US/Curfew.full.jpg -curiosity.jpg http://[server]/8E/Curiosity.full.jpg -curse_artifact.jpg http://[server]/DK/Curse%20Artifact.full.jpg -curse_of_chains.jpg http://[server]/SHM/Curse%20of%20Chains.full.jpg -curse_of_marit_lage.jpg http://[server]/IA/Curse%20of%20Marit%20Lage.full.jpg -curse_of_the_cabal.jpg http://[server]/TSP/Curse%20of%20the%20Cabal.full.jpg -curse_of_the_fire_penguin.jpg http://[server]/UNH/Curse%20of%20the%20Fire%20Penguin.full.jpg -cursecatcher.jpg http://[server]/SHM/Cursecatcher.full.jpg -cursed_flesh.jpg http://[server]/IN/Cursed%20Flesh.full.jpg -cursed_land.jpg http://[server]/5E/Cursed%20Land.full.jpg -cursed_monstrosity.jpg http://[server]/OD/Cursed%20Monstrosity.full.jpg -cursed_rack.jpg http://[server]/AQ/Cursed%20Rack.full.jpg -cursed_ronin.jpg http://[server]/CHK/Cursed%20Ronin.full.jpg -cursed_scroll.jpg http://[server]/TE/Cursed%20Scroll.full.jpg -cursed_totem.jpg http://[server]/MI/Cursed%20Totem.full.jpg -curtain_of_light.jpg http://[server]/SOK/Curtain%20of%20Light.full.jpg -custody_battle.jpg http://[server]/ON/Custody%20Battle.full.jpg -customs_depot.jpg http://[server]/MM/Customs%20Depot.full.jpg -cut_the_earthly_bond.jpg http://[server]/SOK/Cut%20the%20Earthly%20Bond.full.jpg -cut_the_tethers.jpg http://[server]/CHK/Cut%20the%20Tethers.full.jpg -cutthroat_il_dal.jpg http://[server]/FUT/Cutthroat%20il-Dal.full.jpg -cycle_of_life.jpg http://[server]/MI/Cycle%20of%20Life.full.jpg -cyclical_evolution.jpg http://[server]/FUT/Cyclical%20Evolution.full.jpg -cyclone.jpg http://[server]/CH/Cyclone.full.jpg -cyclopean_giant.jpg http://[server]/TSP/Cyclopean%20Giant.full.jpg -cyclopean_mummy.jpg http://[server]/LG/Cyclopean%20Mummy.full.jpg -cyclopean_snare.jpg http://[server]/RAV/Cyclopean%20Snare.full.jpg -cyclopean_tomb.jpg http://[server]/U/Cyclopean%20Tomb.full.jpg -cylian_elf.jpg http://[server]/ALA/Cylian%20Elf.full.jpg -cylian_sunsinger.jpg http://[server]/CFX/Cylian%20Sunsinger.full.jpg -cytoplast_manipulator.jpg http://[server]/DIS/Cytoplast%20Manipulator.full.jpg -cytoplast_root_kin.jpg http://[server]/DIS/Cytoplast%20Root-Kin.full.jpg -cytoshape.jpg http://[server]/DIS/Cytoshape.full.jpg -cytospawn_shambler.jpg http://[server]/DIS/Cytospawn%20Shambler.full.jpg \ No newline at end of file diff --git a/res/pics_link/card-pictures_d.txt b/res/pics_link/card-pictures_d.txt deleted file mode 100644 index 1371273c7f3..00000000000 --- a/res/pics_link/card-pictures_d.txt +++ /dev/null @@ -1,623 +0,0 @@ -daggerclaw_imp.jpg http://[server]/GP/Daggerclaw%20Imp.full.jpg -daily_regimen.jpg http://[server]/MOR/Daily%20Regimen.full.jpg -dakkon_blackblade.jpg http://[server]/LG/Dakkon%20Blackblade.full.jpg -dakmor_bat.jpg http://[server]/P2/Dakmor%20Bat.full.jpg -dakmor_ghoul.jpg http://[server]/ST/Dakmor%20Ghoul.full.jpg -dakmor_lancer.jpg http://[server]/7E/Dakmor%20Lancer.full.jpg -dakmor_plague.jpg http://[server]/ST/Dakmor%20Plague.full.jpg -dakmor_salvage.jpg http://[server]/FUT/Dakmor%20Salvage.full.jpg -dakmor_scorpion.jpg http://[server]/ST/Dakmor%20Scorpion.full.jpg -dakmor_sorceress.jpg http://[server]/ST/Dakmor%20Sorceress.full.jpg -damnation.jpg http://[server]/PLC/Damnation.full.jpg -dampen_thought.jpg http://[server]/CHK/Dampen%20Thought.full.jpg -damping_engine.jpg http://[server]/UL/Damping%20Engine.full.jpg -damping_field.jpg http://[server]/AQ/Damping%20Field.full.jpg -damping_matrix.jpg http://[server]/MR/Damping%20Matrix.full.jpg -dance_of_many.jpg http://[server]/CH/Dance%20of%20Many.full.jpg -dance_of_shadows.jpg http://[server]/CHK/Dance%20of%20Shadows.full.jpg -dance_of_the_dead.jpg http://[server]/IA/Dance%20of%20the%20Dead.full.jpg -dancing_scimitar.jpg http://[server]/9E/Dancing%20Scimitar.full.jpg -dandan.jpg http://[server]/5E/Dandan.full.jpg -daraja_griffin.jpg http://[server]/6E/Daraja%20Griffin.full.jpg -darba.jpg http://[server]/PY/Darba.full.jpg -darien_king_of_kjeldor.jpg http://[server]/CS/Darien,%20King%20of%20Kjeldor.full.jpg -darigaaz_the_igniter.jpg http://[server]/IN/Darigaaz,%20the%20Igniter.full.jpg -darigaazs_attendant.jpg http://[server]/IN/Darigaaz's%20Attendant.full.jpg -darigaazs_caldera.jpg http://[server]/PS/Darigaaz's%20Caldera.full.jpg -darigaazs_charm.jpg http://[server]/PS/Darigaaz's%20Charm.full.jpg -daring_apprentice.jpg http://[server]/9E/Daring%20Apprentice.full.jpg -daring_leap.jpg http://[server]/PS/Daring%20Leap.full.jpg -dark_banishing.jpg http://[server]/9E/Dark%20Banishing.full.jpg -dark_confidant.jpg http://[server]/RAV/Dark%20Confidant.full.jpg -dark_depths.jpg http://[server]/CS/Dark%20Depths.full.jpg -dark_hatchling.jpg http://[server]/US/Dark%20Hatchling.full.jpg -dark_heart_of_the_wood.jpg http://[server]/DK/Dark%20Heart%20of%20the%20Wood.full.jpg -dark_maze.jpg http://[server]/5E/Dark%20Maze.full.jpg -dark_offering.jpg http://[server]/ST/Dark%20Offering.full.jpg -dark_privilege.jpg http://[server]/VI/Dark%20Privilege.full.jpg -dark_ritual.jpg http://[server]/5E/Dark%20Ritual.full.jpg -dark_sphere.jpg http://[server]/DK/Dark%20Sphere.full.jpg -dark_supplicant.jpg http://[server]/LE/Dark%20Supplicant.full.jpg -dark_suspicions.jpg http://[server]/PS/Dark%20Suspicions.full.jpg -dark_temper.jpg http://[server]/CFX/Dark%20Temper.full.jpg -dark_triumph.jpg http://[server]/NE/Dark%20Triumph.full.jpg -dark_withering.jpg http://[server]/TSP/Dark%20Withering.full.jpg -darkblast.jpg http://[server]/RAV/Darkblast.full.jpg -darkest_hour.jpg http://[server]/7E/Darkest%20Hour.full.jpg -darkheart_sliver.jpg http://[server]/PLC/Darkheart%20Sliver.full.jpg -darkling_stalker.jpg http://[server]/TE/Darkling%20Stalker.full.jpg -darklit_gargoyle.jpg http://[server]/CFX/Darklit%20Gargoyle.full.jpg -darkness.jpg http://[server]/LG/Darkness.full.jpg -darkpact.jpg http://[server]/U/Darkpact.full.jpg -darksteel_brute.jpg http://[server]/DS/Darksteel%20Brute.full.jpg -darksteel_citadel.jpg http://[server]/DS/Darksteel%20Citadel.full.jpg -darksteel_colossus.jpg http://[server]/M10/Darksteel%20Colossus.full.jpg -darksteel_forge.jpg http://[server]/DS/Darksteel%20Forge.full.jpg -darksteel_gargoyle.jpg http://[server]/DS/Darksteel%20Gargoyle.full.jpg -darksteel_garrison.jpg http://[server]/FUT/Darksteel%20Garrison.full.jpg -darksteel_ingot.jpg http://[server]/DS/Darksteel%20Ingot.full.jpg -darksteel_pendant.jpg http://[server]/DS/Darksteel%20Pendant.full.jpg -darksteel_reactor.jpg http://[server]/DS/Darksteel%20Reactor.full.jpg -darkwatch_elves.jpg http://[server]/UL/Darkwatch%20Elves.full.jpg -darkwater_catacombs.jpg http://[server]/OD/Darkwater%20Catacombs.full.jpg -darkwater_egg.jpg http://[server]/OD/Darkwater%20Egg.full.jpg -darting_merfolk.jpg http://[server]/MM/Darting%20Merfolk.full.jpg -daru_cavalier.jpg http://[server]/ON/Daru%20Cavalier.full.jpg -daru_encampment.jpg http://[server]/ON/Daru%20Encampment.full.jpg -daru_healer.jpg http://[server]/ON/Daru%20Healer.full.jpg -daru_lancer.jpg http://[server]/ON/Daru%20Lancer.full.jpg -daru_mender.jpg http://[server]/LE/Daru%20Mender.full.jpg -daru_sanctifier.jpg http://[server]/LE/Daru%20Sanctifier.full.jpg -daru_spiritualist.jpg http://[server]/SC/Daru%20Spiritualist.full.jpg -daru_stinger.jpg http://[server]/LE/Daru%20Stinger.full.jpg -daru_warchief.jpg http://[server]/SC/Daru%20Warchief.full.jpg -dash_hopes.jpg http://[server]/PLC/Dash%20Hopes.full.jpg -daughter_of_autumn.jpg http://[server]/HL/Daughter%20of%20Autumn.full.jpg -daunting_defender.jpg http://[server]/ON/Daunting%20Defender.full.jpg -dauntless_dourbark.jpg http://[server]/LRW/Dauntless%20Dourbark.full.jpg -dauntless_escort.jpg http://[server]/ARB/Dauntless%20Escort.full.jpg -dauthi_cutthroat.jpg http://[server]/EX/Dauthi%20Cutthroat.full.jpg -dauthi_embrace.jpg http://[server]/TE/Dauthi%20Embrace.full.jpg -dauthi_ghoul.jpg http://[server]/TE/Dauthi%20Ghoul.full.jpg -dauthi_horror.jpg http://[server]/TE/Dauthi%20Horror.full.jpg -dauthi_jackal.jpg http://[server]/EX/Dauthi%20Jackal.full.jpg -dauthi_marauder.jpg http://[server]/TE/Dauthi%20Marauder.full.jpg -dauthi_mercenary.jpg http://[server]/TE/Dauthi%20Mercenary.full.jpg -dauthi_mindripper.jpg http://[server]/TE/Dauthi%20Mindripper.full.jpg -dauthi_slayer.jpg http://[server]/TE/Dauthi%20Slayer.full.jpg -dauthi_trapper.jpg http://[server]/SH/Dauthi%20Trapper.full.jpg -dauthi_warlord.jpg http://[server]/EX/Dauthi%20Warlord.full.jpg -davenant_archer.jpg http://[server]/LG/D'Avenant%20Archer.full.jpg -davenant_healer.jpg http://[server]/TSP/D'Avenant%20Healer.full.jpg -dawn_charm.jpg http://[server]/PLC/Dawn%20Charm.full.jpg -dawn_elemental.jpg http://[server]/SC/Dawn%20Elemental.full.jpg -dawn_of_the_dead.jpg http://[server]/TO/Dawn%20of%20the%20Dead.full.jpg -dawnfluke.jpg http://[server]/LRW/Dawnfluke.full.jpg -dawnglow_infusion.jpg http://[server]/SHM/Dawnglow%20Infusion.full.jpg -dawning_purist.jpg http://[server]/ON/Dawning%20Purist.full.jpg -dawnray_archer.jpg http://[server]/ALA/Dawnray%20Archer.full.jpg -dawns_reflection.jpg http://[server]/FD/Dawn's%20Reflection.full.jpg -dawnstrider.jpg http://[server]/MM/Dawnstrider.full.jpg -day_of_destiny.jpg http://[server]/BOK/Day%20of%20Destiny.full.jpg -day_of_judgment.jpg http://[server]/ZEN/Day%20of%20Judgment.full.jpg -day_of_the_dragons.jpg http://[server]/SC/Day%20of%20the%20Dragons.full.jpg -daybreak_coronet.jpg http://[server]/FUT/Daybreak%20Coronet.full.jpg -daze.jpg http://[server]/NE/Daze.full.jpg -dazzling_beauty.jpg http://[server]/MI/Dazzling%20Beauty.full.jpg -dead_iron_sledge.jpg http://[server]/MR/Dead-Iron%20Sledge.full.jpg -dead_ringers.jpg http://[server]/AP/Dead%20Ringers.full.jpg -deadapult.jpg http://[server]/PS/Deadapult.full.jpg -deadfall.jpg http://[server]/LG/Deadfall.full.jpg -deadgone.jpg http://[server]/PLC/Deadgone.full.jpg -deadhead.jpg http://[server]/UG/Deadhead.full.jpg -deadly_grub.jpg http://[server]/PLC/Deadly%20Grub.full.jpg -deadly_insect.jpg http://[server]/MM/Deadly%20Insect.full.jpg -deadly_recluse.jpg http://[server]/M10/Deadly%20Recluse.full.jpg -deadshot.jpg http://[server]/TE/Deadshot.full.jpg -deadshot_minotaur.jpg http://[server]/ARB/Deadshot%20Minotaur.full.jpg -deadwood_treefolk.jpg http://[server]/PLC/Deadwood%20Treefolk.full.jpg -deal_damage.jpg http://[server]/UNH/Deal%20Damage.full.jpg -death_baron.jpg http://[server]/ALA/Death%20Baron.full.jpg -death_bomb.jpg http://[server]/PS/Death%20Bomb.full.jpg -death_charmer.jpg http://[server]/PY/Death%20Charmer.full.jpg -death_cloud.jpg http://[server]/DS/Death%20Cloud.full.jpg -death_denied.jpg http://[server]/SOK/Death%20Denied.full.jpg -death_grasp.jpg http://[server]/AP/Death%20Grasp.full.jpg -death_mask_duplicant.jpg http://[server]/DS/Death-Mask%20Duplicant.full.jpg -death_match.jpg http://[server]/ON/Death%20Match.full.jpg -death_mutation.jpg http://[server]/AP/Death%20Mutation.full.jpg -death_of_a_thousand_stings.jpg http://[server]/SOK/Death%20of%20a%20Thousand%20Stings.full.jpg -death_or_glory.jpg http://[server]/IN/Death%20or%20Glory.full.jpg -death_pit_offering.jpg http://[server]/8E/Death%20Pit%20Offering.full.jpg -death_pits_of_rath.jpg http://[server]/9E/Death%20Pits%20of%20Rath.full.jpg -death_pulse.jpg http://[server]/ON/Death%20Pulse.full.jpg -death_rattle.jpg http://[server]/FUT/Death%20Rattle.full.jpg -death_spark.jpg http://[server]/AL/Death%20Spark.full.jpg -death_speakers.jpg http://[server]/HL/Death%20Speakers.full.jpg -death_stroke.jpg http://[server]/SH/Death%20Stroke.full.jpg -death_ward.jpg http://[server]/5E/Death%20Ward.full.jpg -death_watch.jpg http://[server]/VI/Death%20Watch.full.jpg -death_wish.jpg http://[server]/JU/Death%20Wish.full.jpg -deathbringer_liege.jpg http://[server]/EVE/Deathbringer%20Liege.full.jpg -deathbringer_thoctar.jpg http://[server]/ARB/Deathbringer%20Thoctar.full.jpg -deathcoil_wurm.jpg http://[server]/P2/Deathcoil%20Wurm.full.jpg -deathcurse_ogre.jpg http://[server]/CHK/Deathcurse%20Ogre.full.jpg -deathgazer.jpg http://[server]/9E/Deathgazer.full.jpg -deathgreeter.jpg http://[server]/ALA/Deathgreeter.full.jpg -deathgrip.jpg http://[server]/5E/Deathgrip.full.jpg -deathknell_kami.jpg http://[server]/SOK/Deathknell%20Kami.full.jpg -deathlace.jpg http://[server]/4E/Deathlace.full.jpg -deathmark.jpg http://[server]/M10/Deathmark.full.jpg -deathmark_prelate.jpg http://[server]/LE/Deathmark%20Prelate.full.jpg -deathmask_nezumi.jpg http://[server]/SOK/Deathmask%20Nezumi.full.jpg -deathrender.jpg http://[server]/LRW/Deathrender.full.jpg -deaths_duet.jpg http://[server]/EX/Death's%20Duet.full.jpg -deaths_head_buzzard.jpg http://[server]/SC/Death's-Head%20Buzzard.full.jpg -deathspore_thallid.jpg http://[server]/TSP/Deathspore%20Thallid.full.jpg -debt_of_loyalty.jpg http://[server]/WL/Debt%20of%20Loyalty.full.jpg -debtors_knell.jpg http://[server]/GP/Debtors'%20Knell.full.jpg -decaying_soil.jpg http://[server]/OD/Decaying%20Soil.full.jpg -deception.jpg http://[server]/P3/Deception.full.jpg -decimate.jpg http://[server]/OD/Decimate.full.jpg -declaration_of_naught.jpg http://[server]/MOR/Declaration%20of%20Naught.full.jpg -decompose.jpg http://[server]/OD/Decompose.full.jpg -decomposition.jpg http://[server]/MI/Decomposition.full.jpg -deconstruct.jpg http://[server]/MR/Deconstruct.full.jpg -decree_of_annihilation.jpg http://[server]/SC/Decree%20of%20Annihilation.full.jpg -decree_of_justice.jpg http://[server]/SC/Decree%20of%20Justice.full.jpg -decree_of_pain.jpg http://[server]/SC/Decree%20of%20Pain.full.jpg -decree_of_savagery.jpg http://[server]/SC/Decree%20of%20Savagery.full.jpg -decree_of_silence.jpg http://[server]/SC/Decree%20of%20Silence.full.jpg -dedicated_martyr.jpg http://[server]/OD/Dedicated%20Martyr.full.jpg -deep_analysis.jpg http://[server]/TO/Deep%20Analysis.full.jpg -deep_reconnaissance.jpg http://[server]/OD/Deep%20Reconnaissance.full.jpg -deep_sea_kraken.jpg http://[server]/TSP/Deep-Sea%20Kraken.full.jpg -deep_sea_serpent.jpg http://[server]/PT/Deep-Sea%20Serpent.full.jpg -deep_slumber_titan.jpg http://[server]/SHM/Deep-Slumber%20Titan.full.jpg -deep_spawn.jpg http://[server]/FE/Deep%20Spawn.full.jpg -deep_water.jpg http://[server]/DK/Deep%20Water.full.jpg -deep_wood.jpg http://[server]/PT/Deep%20Wood.full.jpg -deepcavern_imp.jpg http://[server]/FUT/Deepcavern%20Imp.full.jpg -deepchannel_mentor.jpg http://[server]/SHM/Deepchannel%20Mentor.full.jpg -deepfire_elemental.jpg http://[server]/CS/Deepfire%20Elemental.full.jpg -deeptread_merrow.jpg http://[server]/LRW/Deeptread%20Merrow.full.jpg -deepwood_drummer.jpg http://[server]/MM/Deepwood%20Drummer.full.jpg -deepwood_elder.jpg http://[server]/MM/Deepwood%20Elder.full.jpg -deepwood_ghoul.jpg http://[server]/8E/Deepwood%20Ghoul.full.jpg -deepwood_legate.jpg http://[server]/MM/Deepwood%20Legate.full.jpg -deepwood_tantiv.jpg http://[server]/MM/Deepwood%20Tantiv.full.jpg -deepwood_wolverine.jpg http://[server]/MM/Deepwood%20Wolverine.full.jpg -defender_en_vec.jpg http://[server]/NE/Defender%20en-Vec.full.jpg -defender_of_chaos.jpg http://[server]/UL/Defender%20of%20Chaos.full.jpg -defender_of_law.jpg http://[server]/UL/Defender%20of%20Law.full.jpg -defender_of_the_order.jpg http://[server]/LE/Defender%20of%20the%20Order.full.jpg -defense_grid.jpg http://[server]/9E/Defense%20Grid.full.jpg -defense_of_the_heart.jpg http://[server]/UL/Defense%20of%20the%20Heart.full.jpg -defensive_formation.jpg http://[server]/US/Defensive%20Formation.full.jpg -defensive_maneuvers.jpg http://[server]/ON/Defensive%20Maneuvers.full.jpg -defiant_elf.jpg http://[server]/LE/Defiant%20Elf.full.jpg -defiant_falcon.jpg http://[server]/NE/Defiant%20Falcon.full.jpg -defiant_stand.jpg http://[server]/PT/Defiant%20Stand.full.jpg -defiant_vanguard.jpg http://[server]/NE/Defiant%20Vanguard.full.jpg -defiler_of_souls.jpg http://[server]/ARB/Defiler%20of%20Souls.full.jpg -defiling_tears.jpg http://[server]/IN/Defiling%20Tears.full.jpg -deflection.jpg http://[server]/8E/Deflection.full.jpg -deft_duelist.jpg http://[server]/ALA/Deft%20Duelist.full.jpg -deftblade_elite.jpg http://[server]/LE/Deftblade%20Elite.full.jpg -defy_gravity.jpg http://[server]/JU/Defy%20Gravity.full.jpg -dega_disciple.jpg http://[server]/AP/Dega%20Disciple.full.jpg -dega_sanctuary.jpg http://[server]/AP/Dega%20Sanctuary.full.jpg -degavolver.jpg http://[server]/AP/Degavolver.full.jpg -deglamer.jpg http://[server]/MOR/Deglamer.full.jpg -dehydration.jpg http://[server]/10E/Dehydration.full.jpg -deity_of_scars.jpg http://[server]/EVE/Deity%20of%20Scars.full.jpg -deja_vu.jpg http://[server]/PT/Deja%20Vu.full.jpg -delay.jpg http://[server]/FUT/Delay.full.jpg -delaying_shield.jpg http://[server]/OD/Delaying%20Shield.full.jpg -delifs_cone.jpg http://[server]/FE/Delif's%20Cone.full.jpg -delifs_cube.jpg http://[server]/FE/Delif's%20Cube.full.jpg -delirium.jpg http://[server]/MI/Delirium.full.jpg -delirium_skeins.jpg http://[server]/DIS/Delirium%20Skeins.full.jpg -delraich.jpg http://[server]/MM/Delraich.full.jpg -deluge.jpg http://[server]/10E/Deluge.full.jpg -delusions_of_mediocrity.jpg http://[server]/7E/Delusions%20of%20Mediocrity.full.jpg -dematerialize.jpg http://[server]/OD/Dematerialize.full.jpg -dementia_sliver.jpg http://[server]/TSP/Dementia%20Sliver.full.jpg -demigod_of_revenge.jpg http://[server]/SHM/Demigod%20of%20Revenge.full.jpg -demolish.jpg http://[server]/10E/Demolish.full.jpg -demonfire.jpg http://[server]/DIS/Demonfire.full.jpg -demonic_attorney.jpg http://[server]/U/Demonic%20Attorney.full.jpg -demonic_collusion.jpg http://[server]/TSP/Demonic%20Collusion.full.jpg -demonic_consultation.jpg http://[server]/IA/Demonic%20Consultation.full.jpg -demonic_dread.jpg http://[server]/ARB/Demonic%20Dread.full.jpg -demonic_hordes.jpg http://[server]/U/Demonic%20Hordes.full.jpg -demonic_torment.jpg http://[server]/LG/Demonic%20Torment.full.jpg -demonic_tutor.jpg http://[server]/U/Demonic%20Tutor.full.jpg -demons_herald.jpg http://[server]/ALA/Demon's%20Herald.full.jpg -demons_horn.jpg http://[server]/M10/Demon's%20Horn.full.jpg -demons_jester.jpg http://[server]/DIS/Demon's%20Jester.full.jpg -demonspine_whip.jpg http://[server]/ARB/Demonspine%20Whip.full.jpg -demoralize.jpg http://[server]/OD/Demoralize.full.jpg -demystify.jpg http://[server]/10E/Demystify.full.jpg -denied!.jpg http://[server]/UG/Denied!.full.jpg -denizen_of_the_deep.jpg http://[server]/10E/Denizen%20of%20the%20Deep.full.jpg -dense_canopy.jpg http://[server]/SOK/Dense%20Canopy.full.jpg -dense_foliage.jpg http://[server]/6E/Dense%20Foliage.full.jpg -deny_reality.jpg http://[server]/ARB/Deny%20Reality.full.jpg -denying_wind.jpg http://[server]/PY/Denying%20Wind.full.jpg -deranged_hermit.jpg http://[server]/UL/Deranged%20Hermit.full.jpg -derelor.jpg http://[server]/6E/Derelor.full.jpg -dermoplasm.jpg http://[server]/LE/Dermoplasm.full.jpg -descendant_of_kiyomaro.jpg http://[server]/SOK/Descendant%20of%20Kiyomaro.full.jpg -descendant_of_masumaro.jpg http://[server]/SOK/Descendant%20of%20Masumaro.full.jpg -descendant_of_soramaro.jpg http://[server]/SOK/Descendant%20of%20Soramaro.full.jpg -desecrated_earth.jpg http://[server]/ZEN/Desecrated%20Earth.full.jpg -desecration_elemental.jpg http://[server]/FD/Desecration%20Elemental.full.jpg -desecrator_hag.jpg http://[server]/EVE/Desecrator%20Hag.full.jpg -desert.jpg http://[server]/AN/Desert.full.jpg -desert_drake.jpg http://[server]/PT/Desert%20Drake.full.jpg -desert_nomads.jpg http://[server]/AN/Desert%20Nomads.full.jpg -desert_sandstorm.jpg http://[server]/P3/Desert%20Sandstorm.full.jpg -desert_twister.jpg http://[server]/5E/Desert%20Twister.full.jpg -deserted_temple.jpg http://[server]/OD/Deserted%20Temple.full.jpg -desertion.jpg http://[server]/6E/Desertion.full.jpg -desolation.jpg http://[server]/VI/Desolation.full.jpg -desolation_angel.jpg http://[server]/AP/Desolation%20Angel.full.jpg -desolation_giant.jpg http://[server]/AP/Desolation%20Giant.full.jpg -desperate_charge.jpg http://[server]/P3/Desperate%20Charge.full.jpg -desperate_gambit.jpg http://[server]/WL/Desperate%20Gambit.full.jpg -desperate_research.jpg http://[server]/IN/Desperate%20Research.full.jpg -desperate_ritual.jpg http://[server]/CHK/Desperate%20Ritual.full.jpg -despoil.jpg http://[server]/PY/Despoil.full.jpg -despondency.jpg http://[server]/US/Despondency.full.jpg -despotic_scepter.jpg http://[server]/IA/Despotic%20Scepter.full.jpg -destructive_flow.jpg http://[server]/PS/Destructive%20Flow.full.jpg -destructive_urge.jpg http://[server]/US/Destructive%20Urge.full.jpg -detainment_spell.jpg http://[server]/TSP/Detainment%20Spell.full.jpg -detonate.jpg http://[server]/5E/Detonate.full.jpg -detritivore.jpg http://[server]/PLC/Detritivore.full.jpg -deus_of_calamity.jpg http://[server]/SHM/Deus%20of%20Calamity.full.jpg -devastate.jpg http://[server]/PY/Devastate.full.jpg -devastating_dreams.jpg http://[server]/TO/Devastating%20Dreams.full.jpg -devastation.jpg http://[server]/ST/Devastation.full.jpg -devoted_caretaker.jpg http://[server]/OD/Devoted%20Caretaker.full.jpg -devoted_druid.jpg http://[server]/SHM/Devoted%20Druid.full.jpg -devoted_hero.jpg http://[server]/ST/Devoted%20Hero.full.jpg -devoted_retainer.jpg http://[server]/CHK/Devoted%20Retainer.full.jpg -devour_in_shadow.jpg http://[server]/FD/Devour%20in%20Shadow.full.jpg -devouring_deep.jpg http://[server]/LG/Devouring%20Deep.full.jpg -devouring_greed.jpg http://[server]/CHK/Devouring%20Greed.full.jpg -devouring_light.jpg http://[server]/RAV/Devouring%20Light.full.jpg -devouring_rage.jpg http://[server]/CHK/Devouring%20Rage.full.jpg -devouring_strossus.jpg http://[server]/IN/Devouring%20Strossus.full.jpg -devout_harpist.jpg http://[server]/UL/Devout%20Harpist.full.jpg -devout_lightcaster.jpg http://[server]/ZEN/Devout%20Lightcaster.full.jpg -devout_monk.jpg http://[server]/ST/Devout%20Monk.full.jpg -devout_witness.jpg http://[server]/MM/Devout%20Witness.full.jpg -dewdrop_spy.jpg http://[server]/MOR/Dewdrop%20Spy.full.jpg -diabolic_edict.jpg http://[server]/TE/Diabolic%20Edict.full.jpg -diabolic_intent.jpg http://[server]/PS/Diabolic%20Intent.full.jpg -diabolic_machine.jpg http://[server]/5E/Diabolic%20Machine.full.jpg -diabolic_servitude.jpg http://[server]/US/Diabolic%20Servitude.full.jpg -diabolic_tutor.jpg http://[server]/M10/Diabolic%20Tutor.full.jpg -diabolic_vision.jpg http://[server]/IA/Diabolic%20Vision.full.jpg -diamond_faerie.jpg http://[server]/CS/Diamond%20Faerie.full.jpg -diamond_kaleidoscope.jpg http://[server]/VI/Diamond%20Kaleidoscope.full.jpg -diamond_valley.jpg http://[server]/AN/Diamond%20Valley.full.jpg -diaochan_artful_beauty.jpg http://[server]/P3/Diaochan,%20Artful%20Beauty.full.jpg -dichotomancy.jpg http://[server]/PLC/Dichotomancy.full.jpg -didgeridoo.jpg http://[server]/HL/Didgeridoo.full.jpg -diligent_farmhand.jpg http://[server]/OD/Diligent%20Farmhand.full.jpg -dimensional_breach.jpg http://[server]/SC/Dimensional%20Breach.full.jpg -diminishing_returns.jpg http://[server]/6E/Diminishing%20Returns.full.jpg -dimir_aqueduct.jpg http://[server]/RAV/Dimir%20Aqueduct.full.jpg -dimir_cutpurse.jpg http://[server]/RAV/Dimir%20Cutpurse.full.jpg -dimir_doppelganger.jpg http://[server]/RAV/Dimir%20Doppelganger.full.jpg -dimir_guildmage.jpg http://[server]/RAV/Dimir%20Guildmage.full.jpg -dimir_house_guard.jpg http://[server]/RAV/Dimir%20House%20Guard.full.jpg -dimir_infiltrator.jpg http://[server]/RAV/Dimir%20Infiltrator.full.jpg -dimir_machinations.jpg http://[server]/RAV/Dimir%20Machinations.full.jpg -dimir_signet.jpg http://[server]/RAV/Dimir%20Signet.full.jpg -din_of_the_fireherd.jpg http://[server]/SHM/Din%20of%20the%20Fireherd.full.jpg -dingus_egg.jpg http://[server]/8E/Dingus%20Egg.full.jpg -dingus_staff.jpg http://[server]/WL/Dingus%20Staff.full.jpg -diplomatic_escort.jpg http://[server]/MM/Diplomatic%20Escort.full.jpg -diplomatic_immunity.jpg http://[server]/MM/Diplomatic%20Immunity.full.jpg -dire_undercurrents.jpg http://[server]/SHM/Dire%20Undercurrents.full.jpg -dire_wolves.jpg http://[server]/IA/Dire%20Wolves.full.jpg -dirge_of_dread.jpg http://[server]/ON/Dirge%20of%20Dread.full.jpg -dirtcowl_wurm.jpg http://[server]/TE/Dirtcowl%20Wurm.full.jpg -dirtwater_wraith.jpg http://[server]/MI/Dirtwater%20Wraith.full.jpg -dirty_wererat.jpg http://[server]/OD/Dirty%20Wererat.full.jpg -disappear.jpg http://[server]/UD/Disappear.full.jpg -disarm.jpg http://[server]/MR/Disarm.full.jpg -disciple_of_grace.jpg http://[server]/ON/Disciple%20of%20Grace.full.jpg -disciple_of_kangee.jpg http://[server]/PS/Disciple%20of%20Kangee.full.jpg -disciple_of_law.jpg http://[server]/US/Disciple%20of%20Law.full.jpg -disciple_of_malice.jpg http://[server]/ON/Disciple%20of%20Malice.full.jpg -disciple_of_tevesh_szat.jpg http://[server]/CS/Disciple%20of%20Tevesh%20Szat.full.jpg -disciple_of_the_vault.jpg http://[server]/MR/Disciple%20of%20the%20Vault.full.jpg -discombobulate.jpg http://[server]/10E/Discombobulate.full.jpg -discordant_dirge.jpg http://[server]/US/Discordant%20Dirge.full.jpg -discordant_spirit.jpg http://[server]/MI/Discordant%20Spirit.full.jpg -disease_carriers.jpg http://[server]/UD/Disease%20Carriers.full.jpg -diseased_vermin.jpg http://[server]/AL/Diseased%20Vermin.full.jpg -disembowel.jpg http://[server]/RAV/Disembowel.full.jpg -disempower.jpg http://[server]/MI/Disempower.full.jpg -disenchant.jpg http://[server]/7E/Disenchant.full.jpg -disentomb.jpg http://[server]/M10/Disentomb.full.jpg -disfigure.jpg http://[server]/ZEN/Disfigure.full.jpg -disharmony.jpg http://[server]/LG/Disharmony.full.jpg -disintegrate.jpg http://[server]/5E/Disintegrate.full.jpg -dismal_failure.jpg http://[server]/PLC/Dismal%20Failure.full.jpg -dismantle.jpg http://[server]/DS/Dismantle.full.jpg -dismantling_blow.jpg http://[server]/IN/Dismantling%20Blow.full.jpg -dismiss.jpg http://[server]/TE/Dismiss.full.jpg -disorder.jpg http://[server]/7E/Disorder.full.jpg -disorient.jpg http://[server]/M10/Disorient.full.jpg -dispellers_capsule.jpg http://[server]/ALA/Dispeller's%20Capsule.full.jpg -dispersal_shield.jpg http://[server]/SC/Dispersal%20Shield.full.jpg -disperse.jpg http://[server]/MOR/Disperse.full.jpg -dispersing_orb.jpg http://[server]/ON/Dispersing%20Orb.full.jpg -disrupt.jpg http://[server]/IN/Disrupt.full.jpg -disrupting_scepter.jpg http://[server]/9E/Disrupting%20Scepter.full.jpg -disrupting_shoal.jpg http://[server]/BOK/Disrupting%20Shoal.full.jpg -disruption_aura.jpg http://[server]/FD/Disruption%20Aura.full.jpg -disruptive_pitmage.jpg http://[server]/ON/Disruptive%20Pitmage.full.jpg -disruptive_student.jpg http://[server]/US/Disruptive%20Student.full.jpg -dissipate.jpg http://[server]/MI/Dissipate.full.jpg -distant_melody.jpg http://[server]/MOR/Distant%20Melody.full.jpg -distorting_lens.jpg http://[server]/8E/Distorting%20Lens.full.jpg -distorting_wake.jpg http://[server]/IN/Distorting%20Wake.full.jpg -distress.jpg http://[server]/10E/Distress.full.jpg -disturbed_burial.jpg http://[server]/TE/Disturbed%20Burial.full.jpg -disturbing_plot.jpg http://[server]/SHM/Disturbing%20Plot.full.jpg -dive_bomber.jpg http://[server]/ON/Dive%20Bomber.full.jpg -divebomber_griffin.jpg http://[server]/RAV/Divebomber%20Griffin.full.jpg -divergent_growth.jpg http://[server]/SC/Divergent%20Growth.full.jpg -diversionary_tactics.jpg http://[server]/AP/Diversionary%20Tactics.full.jpg -divert.jpg http://[server]/OD/Divert.full.jpg -divination.jpg http://[server]/M10/Divination.full.jpg -divine_congregation.jpg http://[server]/TSP/Divine%20Congregation.full.jpg -divine_intervention.jpg http://[server]/LG/Divine%20Intervention.full.jpg -divine_light.jpg http://[server]/AP/Divine%20Light.full.jpg -divine_offering.jpg http://[server]/MI/Divine%20Offering.full.jpg -divine_presence.jpg http://[server]/IN/Divine%20Presence.full.jpg -divine_retribution.jpg http://[server]/MI/Divine%20Retribution.full.jpg -divine_sacrament.jpg http://[server]/OD/Divine%20Sacrament.full.jpg -divine_transformation.jpg http://[server]/LG/Divine%20Transformation.full.jpg -divine_verdict.jpg http://[server]/M10/Divine%20Verdict.full.jpg -diviners_wand.jpg http://[server]/MOR/Diviner's%20Wand.full.jpg -diving_griffin.jpg http://[server]/8E/Diving%20Griffin.full.jpg -divining_witch.jpg http://[server]/NE/Divining%20Witch.full.jpg -divinity_of_pride.jpg http://[server]/EVE/Divinity%20of%20Pride.full.jpg -dizzy_spell.jpg http://[server]/RAV/Dizzy%20Spell.full.jpg -dizzying_gaze.jpg http://[server]/EX/Dizzying%20Gaze.full.jpg -djinn_illuminatus.jpg http://[server]/GP/Djinn%20Illuminatus.full.jpg -djinn_of_the_lamp.jpg http://[server]/PT/Djinn%20of%20the%20Lamp.full.jpg -djinn_of_wishes.jpg http://[server]/M10/Djinn%20of%20Wishes.full.jpg -do_or_die.jpg http://[server]/IN/Do%20or%20Die.full.jpg -dodecapod.jpg http://[server]/AP/Dodecapod.full.jpg -dogged_hunter.jpg http://[server]/OD/Dogged%20Hunter.full.jpg -dogpile.jpg http://[server]/RAV/Dogpile.full.jpg -dolmen_gate.jpg http://[server]/LRW/Dolmen%20Gate.full.jpg -dominarias_judgment.jpg http://[server]/PS/Dominaria's%20Judgment.full.jpg -dominate.jpg http://[server]/NE/Dominate.full.jpg -dominating_licid.jpg http://[server]/EX/Dominating%20Licid.full.jpg -domineer.jpg http://[server]/MR/Domineer.full.jpg -dominus_of_fealty.jpg http://[server]/EVE/Dominus%20of%20Fealty.full.jpg -donate.jpg http://[server]/UD/Donate.full.jpg -dong_zhou_the_tyrant.jpg http://[server]/P3/Dong%20Zhou,%20the%20Tyrant.full.jpg -doom_blade.jpg http://[server]/M10/Doom%20Blade.full.jpg -doom_cannon.jpg http://[server]/ON/Doom%20Cannon.full.jpg -doomed_necromancer.jpg http://[server]/10E/Doomed%20Necromancer.full.jpg -doomgape.jpg http://[server]/EVE/Doomgape.full.jpg -doomsday.jpg http://[server]/WL/Doomsday.full.jpg -doomsday_specter.jpg http://[server]/PS/Doomsday%20Specter.full.jpg -door_of_destinies.jpg http://[server]/MOR/Door%20of%20Destinies.full.jpg -door_to_nothingness.jpg http://[server]/FD/Door%20to%20Nothingness.full.jpg -doran_the_siege_tower.jpg http://[server]/LRW/Doran,%20the%20Siege%20Tower.full.jpg -dormant_sliver.jpg http://[server]/PLC/Dormant%20Sliver.full.jpg -dormant_volcano.jpg http://[server]/VI/Dormant%20Volcano.full.jpg -dosan_the_falling_leaf.jpg http://[server]/CHK/Dosan%20the%20Falling%20Leaf.full.jpg -dosans_oldest_chant.jpg http://[server]/SOK/Dosan's%20Oldest%20Chant.full.jpg -double_cleave.jpg http://[server]/EVE/Double%20Cleave.full.jpg -double_cross.jpg http://[server]/UG/Double%20Cross.full.jpg -double_deal.jpg http://[server]/UG/Double%20Deal.full.jpg -double_dip.jpg http://[server]/UG/Double%20Dip.full.jpg -double_header.jpg http://[server]/UNH/Double%20Header.full.jpg -double_negative.jpg http://[server]/ARB/Double%20Negative.full.jpg -double_play.jpg http://[server]/UG/Double%20Play.full.jpg -double_take.jpg http://[server]/UG/Double%20Take.full.jpg -doubling_cube.jpg http://[server]/10E/Doubling%20Cube.full.jpg -doubling_season.jpg http://[server]/RAV/Doubling%20Season.full.jpg -doubtless_one.jpg http://[server]/ON/Doubtless%20One.full.jpg -douse.jpg http://[server]/US/Douse.full.jpg -douse_in_gloom.jpg http://[server]/GP/Douse%20in%20Gloom.full.jpg -dovescape.jpg http://[server]/DIS/Dovescape.full.jpg -downdraft.jpg http://[server]/WL/Downdraft.full.jpg -downhill_charge.jpg http://[server]/NE/Downhill%20Charge.full.jpg -dowsing_shaman.jpg http://[server]/RAV/Dowsing%20Shaman.full.jpg -draco.jpg http://[server]/PS/Draco.full.jpg -draconian_cylix.jpg http://[server]/FE/Draconian%20Cylix.full.jpg -dracoplasm.jpg http://[server]/TE/Dracoplasm.full.jpg -drafnas_restoration.jpg http://[server]/AQ/Drafna's%20Restoration.full.jpg -drag_down.jpg http://[server]/CFX/Drag%20Down.full.jpg -dragon_appeasement.jpg http://[server]/ARB/Dragon%20Appeasement.full.jpg -dragon_arch.jpg http://[server]/AP/Dragon%20Arch.full.jpg -dragon_blood.jpg http://[server]/MR/Dragon%20Blood.full.jpg -dragon_breath.jpg http://[server]/SC/Dragon%20Breath.full.jpg -dragon_broodmother.jpg http://[server]/ARB/Dragon%20Broodmother.full.jpg -dragon_engine.jpg http://[server]/6E/Dragon%20Engine.full.jpg -dragon_fangs.jpg http://[server]/SC/Dragon%20Fangs.full.jpg -dragon_fodder.jpg http://[server]/ALA/Dragon%20Fodder.full.jpg -dragon_mage.jpg http://[server]/SC/Dragon%20Mage.full.jpg -dragon_mask.jpg http://[server]/6E/Dragon%20Mask.full.jpg -dragon_roost.jpg http://[server]/10E/Dragon%20Roost.full.jpg -dragon_scales.jpg http://[server]/SC/Dragon%20Scales.full.jpg -dragon_shadow.jpg http://[server]/SC/Dragon%20Shadow.full.jpg -dragon_tyrant.jpg http://[server]/SC/Dragon%20Tyrant.full.jpg -dragon_whelp.jpg http://[server]/M10/Dragon%20Whelp.full.jpg -dragon_wings.jpg http://[server]/SC/Dragon%20Wings.full.jpg -dragons_claw.jpg http://[server]/M10/Dragon's%20Claw.full.jpg -dragons_herald.jpg http://[server]/ALA/Dragon's%20Herald.full.jpg -dragonskull_summit.jpg http://[server]/M10/Dragonskull%20Summit.full.jpg -dragonsoul_knight.jpg http://[server]/CFX/Dragonsoul%20Knight.full.jpg -dragonspeaker_shaman.jpg http://[server]/SC/Dragonspeaker%20Shaman.full.jpg -dragonstalker.jpg http://[server]/SC/Dragonstalker.full.jpg -dragonstorm.jpg http://[server]/SC/Dragonstorm.full.jpg -drain_life.jpg http://[server]/5E/Drain%20Life.full.jpg -drain_power.jpg http://[server]/5E/Drain%20Power.full.jpg -drain_the_well.jpg http://[server]/EVE/Drain%20the%20Well.full.jpg -draining_whelk.jpg http://[server]/TSP/Draining%20Whelk.full.jpg -drake_familiar.jpg http://[server]/RAV/Drake%20Familiar.full.jpg -drake_hatchling.jpg http://[server]/MM/Drake%20Hatchling.full.jpg -drake_skull_cameo.jpg http://[server]/IN/Drake-Skull%20Cameo.full.jpg -dralnu_lich_lord.jpg http://[server]/TSP/Dralnu,%20Lich%20Lord.full.jpg -dralnus_crusade.jpg http://[server]/PS/Dralnu's%20Crusade.full.jpg -dralnus_pet.jpg http://[server]/PS/Dralnu's%20Pet.full.jpg -dramatic_entrance.jpg http://[server]/SHM/Dramatic%20Entrance.full.jpg -drastic_revelation.jpg http://[server]/ARB/Drastic%20Revelation.full.jpg -drawn_together.jpg http://[server]/UNH/Drawn%20Together.full.jpg -dread.jpg http://[server]/LRW/Dread.full.jpg -dread_charge.jpg http://[server]/PT/Dread%20Charge.full.jpg -dread_of_night.jpg http://[server]/TE/Dread%20of%20Night.full.jpg -dread_reaper.jpg http://[server]/PT/Dread%20Reaper.full.jpg -dread_return.jpg http://[server]/TSP/Dread%20Return.full.jpg -dread_slag.jpg http://[server]/DIS/Dread%20Slag.full.jpg -dread_specter.jpg http://[server]/MI/Dread%20Specter.full.jpg -dread_warlock.jpg http://[server]/M10/Dread%20Warlock.full.jpg -dread_wight.jpg http://[server]/IA/Dread%20Wight.full.jpg -dreadship_reef.jpg http://[server]/TSP/Dreadship%20Reef.full.jpg -dreadwing.jpg http://[server]/CFX/Dreadwing.full.jpg -dream_cache.jpg http://[server]/MI/Dream%20Cache.full.jpg -dream_chisel.jpg http://[server]/ON/Dream%20Chisel.full.jpg -dream_coat.jpg http://[server]/LG/Dream%20Coat.full.jpg -dream_fighter.jpg http://[server]/MI/Dream%20Fighter.full.jpg -dream_fracture.jpg http://[server]/EVE/Dream%20Fracture.full.jpg -dream_halls.jpg http://[server]/SH/Dream%20Halls.full.jpg -dream_leash.jpg http://[server]/RAV/Dream%20Leash.full.jpg -dream_prowler.jpg http://[server]/9E/Dream%20Prowler.full.jpg -dream_salvage.jpg http://[server]/SHM/Dream%20Salvage.full.jpg -dream_stalker.jpg http://[server]/TSP/Dream%20Stalker.full.jpg -dream_thief.jpg http://[server]/EVE/Dream%20Thief.full.jpg -dream_thrush.jpg http://[server]/IN/Dream%20Thrush.full.jpg -dream_tides.jpg http://[server]/VI/Dream%20Tides.full.jpg -dreamborn_muse.jpg http://[server]/10E/Dreamborn%20Muse.full.jpg -dreamcatcher.jpg http://[server]/SOK/Dreamcatcher.full.jpg -dreams_grip.jpg http://[server]/MR/Dream's%20Grip.full.jpg -dreams_of_the_dead.jpg http://[server]/IA/Dreams%20of%20the%20Dead.full.jpg -dreamscape_artist.jpg http://[server]/PLC/Dreamscape%20Artist.full.jpg -dreamspoiler_witches.jpg http://[server]/LRW/Dreamspoiler%20Witches.full.jpg -dreamwinder.jpg http://[server]/OD/Dreamwinder.full.jpg -dredge.jpg http://[server]/IN/Dredge.full.jpg -dreg_reaver.jpg http://[server]/ALA/Dreg%20Reaver.full.jpg -dregs_of_sorrow.jpg http://[server]/7E/Dregs%20of%20Sorrow.full.jpg -dregscape_zombie.jpg http://[server]/ALA/Dregscape%20Zombie.full.jpg -drekavac.jpg http://[server]/DIS/Drekavac.full.jpg -drelnoch.jpg http://[server]/CS/Drelnoch.full.jpg -drift_of_phantasms.jpg http://[server]/RAV/Drift%20of%20Phantasms.full.jpg -drift_of_the_dead.jpg http://[server]/IA/Drift%20of%20the%20Dead.full.jpg -drifter_il_dal.jpg http://[server]/TSP/Drifter%20il-Dal.full.jpg -drifting_djinn.jpg http://[server]/US/Drifting%20Djinn.full.jpg -drifting_meadow.jpg http://[server]/AT/Drifting%20Meadow.full.jpg -drill_skimmer.jpg http://[server]/DS/Drill-Skimmer.full.jpg -drinker_of_sorrow.jpg http://[server]/LE/Drinker%20of%20Sorrow.full.jpg -dripping_dead.jpg http://[server]/LE/Dripping%20Dead.full.jpg -dripping_tongue_zubera.jpg http://[server]/CHK/Dripping-Tongue%20Zubera.full.jpg -dromad_purebred.jpg http://[server]/RAV/Dromad%20Purebred.full.jpg -dromar_the_banisher.jpg http://[server]/IN/Dromar,%20the%20Banisher.full.jpg -dromars_attendant.jpg http://[server]/IN/Dromar's%20Attendant.full.jpg -dromars_cavern.jpg http://[server]/PS/Dromar's%20Cavern.full.jpg -dromars_charm.jpg http://[server]/PS/Dromar's%20Charm.full.jpg -dromosaur.jpg http://[server]/US/Dromosaur.full.jpg -droning_bureaucrats.jpg http://[server]/GP/Droning%20Bureaucrats.full.jpg -drooling_groodion.jpg http://[server]/RAV/Drooling%20Groodion.full.jpg -drooling_ogre.jpg http://[server]/DS/Drooling%20Ogre.full.jpg -drop_of_honey.jpg http://[server]/AN/Drop%20of%20Honey.full.jpg -dross_crocodile.jpg http://[server]/10E/Dross%20Crocodile.full.jpg -dross_golem.jpg http://[server]/DS/Dross%20Golem.full.jpg -dross_harvester.jpg http://[server]/MR/Dross%20Harvester.full.jpg -dross_prowler.jpg http://[server]/MR/Dross%20Prowler.full.jpg -dross_scorpion.jpg http://[server]/MR/Dross%20Scorpion.full.jpg -drought.jpg http://[server]/IA/Drought.full.jpg -drove_of_elves.jpg http://[server]/SHM/Drove%20of%20Elves.full.jpg -drowned.jpg http://[server]/DK/Drowned.full.jpg -drowned_catacomb.jpg http://[server]/M10/Drowned%20Catacomb.full.jpg -drowned_rusalka.jpg http://[server]/GP/Drowned%20Rusalka.full.jpg -drowner_initiate.jpg http://[server]/SHM/Drowner%20Initiate.full.jpg -drowner_of_secrets.jpg http://[server]/LRW/Drowner%20of%20Secrets.full.jpg -drudge_reavers.jpg http://[server]/TSP/Drudge%20Reavers.full.jpg -drudge_skeletons.jpg http://[server]/M10/Drudge%20Skeletons.full.jpg -drudge_spell.jpg http://[server]/HL/Drudge%20Spell.full.jpg -druid_lyrist.jpg http://[server]/OD/Druid%20Lyrist.full.jpg -druid_of_the_anima.jpg http://[server]/ALA/Druid%20of%20the%20Anima.full.jpg -druids_call.jpg http://[server]/OD/Druid's%20Call.full.jpg -drumhunter.jpg http://[server]/ALA/Drumhunter.full.jpg -dry_spell.jpg http://[server]/6E/Dry%20Spell.full.jpg -dryad_arbor.jpg http://[server]/FUT/Dryad%20Arbor.full.jpg -dryad_sophisticate.jpg http://[server]/GP/Dryad%20Sophisticate.full.jpg -dryads_caress.jpg http://[server]/RAV/Dryad's%20Caress.full.jpg -dual_nature.jpg http://[server]/PY/Dual%20Nature.full.jpg -duct_crawler.jpg http://[server]/10E/Duct%20Crawler.full.jpg -dueling_grounds.jpg http://[server]/IN/Dueling%20Grounds.full.jpg -duergar_assailant.jpg http://[server]/EVE/Duergar%20Assailant.full.jpg -duergar_cave_guard.jpg http://[server]/EVE/Duergar%20Cave-Guard.full.jpg -duergar_hedge_mage.jpg http://[server]/EVE/Duergar%20Hedge-Mage.full.jpg -duergar_mine_captain.jpg http://[server]/EVE/Duergar%20Mine-Captain.full.jpg -duh.jpg http://[server]/UNH/Duh.full.jpg -dumb_ass.jpg http://[server]/UNH/Dumb%20Ass.full.jpg -dune_brood_nephilim.jpg http://[server]/GP/Dune-Brood%20Nephilim.full.jpg -dunerider_outlaw.jpg http://[server]/PLC/Dunerider%20Outlaw.full.jpg -dungeon_shade.jpg http://[server]/SH/Dungeon%20Shade.full.jpg -duplicant.jpg http://[server]/MR/Duplicant.full.jpg -duplicity.jpg http://[server]/TE/Duplicity.full.jpg -duress.jpg http://[server]/M10/Duress.full.jpg -durkwood_baloth.jpg http://[server]/TSP/Durkwood%20Baloth.full.jpg -durkwood_boars.jpg http://[server]/LG/Durkwood%20Boars.full.jpg -durkwood_tracker.jpg http://[server]/TSP/Durkwood%20Tracker.full.jpg -dusk_imp.jpg http://[server]/10E/Dusk%20Imp.full.jpg -dusk_urchins.jpg http://[server]/SHM/Dusk%20Urchins.full.jpg -duskdale_wurm.jpg http://[server]/EVE/Duskdale%20Wurm.full.jpg -duskmantle_house_of_shadow.jpg http://[server]/RAV/Duskmantle,%20House%20of%20Shadow.full.jpg -duskrider_falcon.jpg http://[server]/WL/Duskrider%20Falcon.full.jpg -duskrider_peregrine.jpg http://[server]/TSP/Duskrider%20Peregrine.full.jpg -duskwalker.jpg http://[server]/IN/Duskwalker.full.jpg -duskworker.jpg http://[server]/MR/Duskworker.full.jpg -dust_bowl.jpg http://[server]/MM/Dust%20Bowl.full.jpg -dust_corona.jpg http://[server]/PLC/Dust%20Corona.full.jpg -dust_elemental.jpg http://[server]/PLC/Dust%20Elemental.full.jpg -dust_of_moments.jpg http://[server]/FUT/Dust%20of%20Moments.full.jpg -dust_to_dust.jpg http://[server]/5E/Dust%20to%20Dust.full.jpg -dwarven_armorer.jpg http://[server]/FE/Dwarven%20Armorer.full.jpg -dwarven_armory.jpg http://[server]/IA/Dwarven%20Armory.full.jpg -dwarven_berserker.jpg http://[server]/WL/Dwarven%20Berserker.full.jpg -dwarven_blastminer.jpg http://[server]/ON/Dwarven%20Blastminer.full.jpg -dwarven_bloodboiler.jpg http://[server]/JU/Dwarven%20Bloodboiler.full.jpg -dwarven_catapult.jpg http://[server]/FE/Dwarven%20Catapult.full.jpg -dwarven_demolition_team.jpg http://[server]/8E/Dwarven%20Demolition%20Team.full.jpg -dwarven_driller.jpg http://[server]/JU/Dwarven%20Driller.full.jpg -dwarven_grunt.jpg http://[server]/OD/Dwarven%20Grunt.full.jpg -dwarven_hold.jpg http://[server]/FE/Dwarven%20Hold.full.jpg -dwarven_landslide.jpg http://[server]/AP/Dwarven%20Landslide.full.jpg -dwarven_lieutenant.jpg http://[server]/FE/Dwarven%20Lieutenant.full.jpg -dwarven_miner.jpg http://[server]/MI/Dwarven%20Miner.full.jpg -dwarven_nomad.jpg http://[server]/MI/Dwarven%20Nomad.full.jpg -dwarven_patrol.jpg http://[server]/AP/Dwarven%20Patrol.full.jpg -dwarven_pony.jpg http://[server]/HL/Dwarven%20Pony.full.jpg -dwarven_recruiter.jpg http://[server]/OD/Dwarven%20Recruiter.full.jpg -dwarven_ruins.jpg http://[server]/6E/Dwarven%20Ruins.full.jpg -dwarven_scorcher.jpg http://[server]/JU/Dwarven%20Scorcher.full.jpg -dwarven_sea_clan.jpg http://[server]/HL/Dwarven%20Sea%20Clan.full.jpg -dwarven_shrine.jpg http://[server]/OD/Dwarven%20Shrine.full.jpg -dwarven_soldier.jpg http://[server]/5E/Dwarven%20Soldier.full.jpg -dwarven_song.jpg http://[server]/LG/Dwarven%20Song.full.jpg -dwarven_strike_force.jpg http://[server]/OD/Dwarven%20Strike%20Force.full.jpg -dwarven_thaumaturgist.jpg http://[server]/WL/Dwarven%20Thaumaturgist.full.jpg -dwarven_trader.jpg http://[server]/HL/Dwarven%20Trader1.full.jpg -dwarven_vigilantes.jpg http://[server]/VI/Dwarven%20Vigilantes.full.jpg -dwarven_warriors.jpg http://[server]/5E/Dwarven%20Warriors.full.jpg -dwarven_weaponsmith.jpg http://[server]/AQ/Dwarven%20Weaponsmith.full.jpg -dwell_on_the_past.jpg http://[server]/TO/Dwell%20on%20the%20Past.full.jpg -dying_wail.jpg http://[server]/UD/Dying%20Wail.full.jpg -dystopia.jpg http://[server]/AL/Dystopia.full.jpg \ No newline at end of file diff --git a/res/pics_link/card-pictures_e.txt b/res/pics_link/card-pictures_e.txt deleted file mode 100644 index 5a9f315961e..00000000000 --- a/res/pics_link/card-pictures_e.txt +++ /dev/null @@ -1,369 +0,0 @@ -eager_cadet.jpg http://[server]/9E/Eager%20Cadet.full.jpg -early_frost.jpg http://[server]/FD/Early%20Frost.full.jpg -early_harvest.jpg http://[server]/9E/Early%20Harvest.full.jpg -earnest_fellowship.jpg http://[server]/OD/Earnest%20Fellowship.full.jpg -earsplitting_rats.jpg http://[server]/JU/Earsplitting%20Rats.full.jpg -earth_elemental.jpg http://[server]/10E/Earth%20Elemental.full.jpg -earth_rift.jpg http://[server]/OD/Earth%20Rift.full.jpg -earth_surge.jpg http://[server]/GP/Earth%20Surge.full.jpg -earthbind.jpg http://[server]/U/Earthbind.full.jpg -earthblighter.jpg http://[server]/LE/Earthblighter.full.jpg -earthbrawn.jpg http://[server]/MOR/Earthbrawn.full.jpg -earthcraft.jpg http://[server]/TE/Earthcraft.full.jpg -earthen_goo.jpg http://[server]/CS/Earthen%20Goo.full.jpg -earthlink.jpg http://[server]/IA/Earthlink.full.jpg -earthlore.jpg http://[server]/IA/Earthlore.full.jpg -earthquake.jpg http://[server]/M10/Earthquake.full.jpg -earthshaker.jpg http://[server]/CHK/Earthshaker.full.jpg -earwig_squad.jpg http://[server]/REL/Earwig%20Squad.full.jpg -eastern_paladin.jpg http://[server]/8E/Eastern%20Paladin.full.jpg -eater_of_days.jpg http://[server]/DS/Eater%20of%20Days.full.jpg -eater_of_the_dead.jpg http://[server]/DK/Eater%20of%20the%20Dead.full.jpg -ebon_dragon.jpg http://[server]/PT/Ebon%20Dragon.full.jpg -ebon_drake.jpg http://[server]/FD/Ebon%20Drake.full.jpg -ebon_praetor.jpg http://[server]/FE/Ebon%20Praetor.full.jpg -ebon_stronghold.jpg http://[server]/6E/Ebon%20Stronghold.full.jpg -ebonblade_reaper.jpg http://[server]/ON/Ebonblade%20Reaper.full.jpg -ebony_charm.jpg http://[server]/MI/Ebony%20Charm.full.jpg -ebony_horse.jpg http://[server]/AN/Ebony%20Horse.full.jpg -ebony_owl_netsuke.jpg http://[server]/SOK/Ebony%20Owl%20Netsuke.full.jpg -ebony_rhino.jpg http://[server]/HL/Ebony%20Rhino.full.jpg -ebony_treefolk.jpg http://[server]/AP/Ebony%20Treefolk.full.jpg -echo_chamber.jpg http://[server]/TE/Echo%20Chamber.full.jpg -echo_tracer.jpg http://[server]/LE/Echo%20Tracer.full.jpg -echoing_calm.jpg http://[server]/DS/Echoing%20Calm.full.jpg -echoing_courage.jpg http://[server]/DS/Echoing%20Courage.full.jpg -echoing_decay.jpg http://[server]/DS/Echoing%20Decay.full.jpg -echoing_ruin.jpg http://[server]/DS/Echoing%20Ruin.full.jpg -echoing_truth.jpg http://[server]/DS/Echoing%20Truth.full.jpg -edge_of_autumn.jpg http://[server]/FUT/Edge%20of%20Autumn.full.jpg -edge_of_the_divinity.jpg http://[server]/EVE/Edge%20of%20the%20Divinity.full.jpg -edgewalker.jpg http://[server]/SC/Edgewalker.full.jpg -eerie_procession.jpg http://[server]/CHK/Eerie%20Procession.full.jpg -ego_erasure.jpg http://[server]/LRW/Ego%20Erasure.full.jpg -eiganjo_castle.jpg http://[server]/CHK/Eiganjo%20Castle.full.jpg -eiganjo_free_riders.jpg http://[server]/SOK/Eiganjo%20Free-Riders.full.jpg -eight_and_a_half_tails.jpg http://[server]/CHK/Eight-and-a-Half-Tails.full.jpg -eightfold_maze.jpg http://[server]/P3/Eightfold%20Maze.full.jpg -ekundu_cyclops.jpg http://[server]/MI/Ekundu%20Cyclops.full.jpg -ekundu_griffin.jpg http://[server]/MI/Ekundu%20Griffin.full.jpg -el_hajjaj.jpg http://[server]/AN/El-Hajjaj.full.jpg -eladamri.jpg http://[server]/VG/Eladamri.full.jpg -eladamri_lord_of_leaves.jpg http://[server]/TE/Eladamri,%20Lord%20of%20Leaves.full.jpg -eladamris_call.jpg http://[server]/PS/Eladamri's%20Call.full.jpg -eladamris_vineyard.jpg http://[server]/TE/Eladamri's%20Vineyard.full.jpg -elder_druid.jpg http://[server]/7E/Elder%20Druid.full.jpg -elder_land_wurm.jpg http://[server]/LG/Elder%20Land%20Wurm.full.jpg -elder_mastery.jpg http://[server]/CFX/Elder%20Mastery.full.jpg -elder_pine_of_jukai.jpg http://[server]/SOK/Elder%20Pine%20of%20Jukai.full.jpg -elder_spawn.jpg http://[server]/LG/Elder%20Spawn.full.jpg -eldrazi_monument.jpg http://[server]/ZEN/Eldrazi%20Monument.full.jpg -electric_eel.jpg http://[server]/DK/Electric%20Eel.full.jpg -electrolyze.jpg http://[server]/GP/Electrolyze.full.jpg -electropotence.jpg http://[server]/ZEN/Electropotence.full.jpg -electrostatic_bolt.jpg http://[server]/MR/Electrostatic%20Bolt.full.jpg -electryte.jpg http://[server]/US/Electryte.full.jpg -elemental_appeal.jpg http://[server]/ZEN/Elemental%20Appeal.full.jpg -elemental_augury.jpg http://[server]/IA/Elemental%20Augury.full.jpg -elemental_mastery.jpg http://[server]/SHM/Elemental%20Mastery.full.jpg -elemental_resonance.jpg http://[server]/DIS/Elemental%20Resonance.full.jpg -elephant_ambush.jpg http://[server]/OD/Elephant%20Ambush.full.jpg -elephant_grass.jpg http://[server]/VI/Elephant%20Grass.full.jpg -elephant_graveyard.jpg http://[server]/AN/Elephant%20Graveyard.full.jpg -elephant_guide.jpg http://[server]/JU/Elephant%20Guide.full.jpg -elephant_resurgence.jpg http://[server]/PY/Elephant%20Resurgence.full.jpg -elf_replica.jpg http://[server]/MR/Elf%20Replica.full.jpg -elfhame_palace.jpg http://[server]/8E/Elfhame%20Palace.full.jpg -elfhame_sanctuary.jpg http://[server]/IN/Elfhame%20Sanctuary.full.jpg -elite_archers.jpg http://[server]/8E/Elite%20Archers.full.jpg -elite_cat_warrior.jpg http://[server]/PT/Elite%20Cat%20Warrior1.full.jpg -elite_javelineer.jpg http://[server]/8E/Elite%20Javelineer.full.jpg -elite_vanguard.jpg http://[server]/M10/Elite%20Vanguard.full.jpg -elixir_of_vitality.jpg http://[server]/MI/Elixir%20of%20Vitality.full.jpg -elkin_bottle.jpg http://[server]/5E/Elkin%20Bottle.full.jpg -elkin_lair.jpg http://[server]/VI/Elkin%20Lair.full.jpg -elsewhere_flask.jpg http://[server]/SHM/Elsewhere%20Flask.full.jpg -elspeth_knight_errant.jpg http://[server]/ALA/Elspeth,%20Knight-Errant.full.jpg -elven_cache.jpg http://[server]/6E/Elven%20Cache.full.jpg -elven_fortress.jpg http://[server]/FE/Elven%20Fortress1.full.jpg -elven_lyre.jpg http://[server]/FE/Elven%20Lyre.full.jpg -elven_palisade.jpg http://[server]/EX/Elven%20Palisade.full.jpg -elven_riders.jpg http://[server]/10E/Elven%20Riders.full.jpg -elven_rite.jpg http://[server]/SH/Elven%20Rite.full.jpg -elven_warhounds.jpg http://[server]/TE/Elven%20Warhounds.full.jpg -elves_of_deep_shadow.jpg http://[server]/DK/Elves%20of%20Deep%20Shadow.full.jpg -elvish_aberration.jpg http://[server]/SC/Elvish%20Aberration.full.jpg -elvish_archdruid.jpg http://[server]/M10/Elvish%20Archdruid.full.jpg -elvish_archers.jpg http://[server]/7E/Elvish%20Archers.full.jpg -elvish_bard.jpg http://[server]/9E/Elvish%20Bard.full.jpg -elvish_berserker.jpg http://[server]/10E/Elvish%20Berserker.full.jpg -elvish_branchbender.jpg http://[server]/LRW/Elvish%20Branchbender.full.jpg -elvish_champion.jpg http://[server]/10E/Elvish%20Champion.full.jpg -elvish_eulogist.jpg http://[server]/EVG/Elvish%20Eulogist.full.jpg -elvish_farmer.jpg http://[server]/FE/Elvish%20Farmer.full.jpg -elvish_fury.jpg http://[server]/TE/Elvish%20Fury.full.jpg -elvish_guidance.jpg http://[server]/ON/Elvish%20Guidance.full.jpg -elvish_handservant.jpg http://[server]/LRW/Elvish%20Handservant.full.jpg -elvish_harbinger.jpg http://[server]/EVG/Elvish%20Harbinger.full.jpg -elvish_healer.jpg http://[server]/IA/Elvish%20Healer.full.jpg -elvish_herder.jpg http://[server]/US/Elvish%20Herder.full.jpg -elvish_hexhunter.jpg http://[server]/SHM/Elvish%20Hexhunter.full.jpg -elvish_house_party.jpg http://[server]/UNH/Elvish%20House%20Party.full.jpg -elvish_hunter.jpg http://[server]/FE/Elvish%20Hunter1.full.jpg -elvish_impersonators.jpg http://[server]/UG/Elvish%20Impersonators.full.jpg -elvish_lookout.jpg http://[server]/UD/Elvish%20Lookout.full.jpg -elvish_lyrist.jpg http://[server]/8E/Elvish%20Lyrist.full.jpg -elvish_pathcutter.jpg http://[server]/ON/Elvish%20Pathcutter.full.jpg -elvish_pioneer.jpg http://[server]/8E/Elvish%20Pioneer.full.jpg -elvish_piper.jpg http://[server]/M10/Elvish%20Piper.full.jpg -elvish_promenade.jpg http://[server]/EVG/Elvish%20Promenade.full.jpg -elvish_ranger.jpg http://[server]/PT/Elvish%20Ranger.full.jpg -elvish_scout.jpg http://[server]/FE/Elvish%20Scout1.full.jpg -elvish_scrapper.jpg http://[server]/8E/Elvish%20Scrapper.full.jpg -elvish_skysweeper.jpg http://[server]/RAV/Elvish%20Skysweeper.full.jpg -elvish_soultiller.jpg http://[server]/LE/Elvish%20Soultiller.full.jpg -elvish_spirit_guide.jpg http://[server]/AL/Elvish%20Spirit%20Guide.full.jpg -elvish_vanguard.jpg http://[server]/ON/Elvish%20Vanguard.full.jpg -elvish_visionary.jpg http://[server]/M10/Elvish%20Visionary.full.jpg -elvish_warrior.jpg http://[server]/9E/Elvish%20Warrior.full.jpg -embalmed_brawler.jpg http://[server]/LE/Embalmed%20Brawler.full.jpg -embargo.jpg http://[server]/MM/Embargo.full.jpg -ember_beast.jpg http://[server]/OD/Ember%20Beast.full.jpg -ember_fist_zubera.jpg http://[server]/CHK/Ember-Fist%20Zubera.full.jpg -ember_gale.jpg http://[server]/SHM/Ember%20Gale.full.jpg -ember_shot.jpg http://[server]/JU/Ember%20Shot.full.jpg -ember_weaver.jpg http://[server]/CFX/Ember%20Weaver.full.jpg -embermage_goblin.jpg http://[server]/ON/Embermage%20Goblin.full.jpg -emberstrike_duo.jpg http://[server]/SHM/Emberstrike%20Duo.full.jpg -emberwilde_augur.jpg http://[server]/FUT/Emberwilde%20Augur.full.jpg -emberwilde_caliph.jpg http://[server]/MI/Emberwilde%20Caliph.full.jpg -emberwilde_djinn.jpg http://[server]/MI/Emberwilde%20Djinn.full.jpg -emblazoned_golem.jpg http://[server]/AP/Emblazoned%20Golem.full.jpg -emblem_of_the_warmind.jpg http://[server]/FUT/Emblem%20of%20the%20Warmind.full.jpg -embolden.jpg http://[server]/OD/Embolden.full.jpg -emcee.jpg http://[server]/UNH/Emcee.full.jpg -emerald_charm.jpg http://[server]/VI/Emerald%20Charm.full.jpg -emerald_dragonfly.jpg http://[server]/LG/Emerald%20Dragonfly.full.jpg -emerald_medallion.jpg http://[server]/TE/Emerald%20Medallion.full.jpg -emerald_oryx.jpg http://[server]/M10/Emerald%20Oryx.full.jpg -emeria_angel.jpg http://[server]/ZEN/Emeria%20Angel.full.jpg -emeria_the_sky_ruin.jpg http://[server]/ZEN/Emeria,%20the%20Sky%20Ruin.full.jpg -emissary_of_despair.jpg http://[server]/DS/Emissary%20of%20Despair.full.jpg -emissary_of_hope.jpg http://[server]/DS/Emissary%20of%20Hope.full.jpg -emmessi_tome.jpg http://[server]/TE/Emmessi%20Tome.full.jpg -emperor_crocodile.jpg http://[server]/9E/Emperor%20Crocodile.full.jpg -empress_galina.jpg http://[server]/IN/Empress%20Galina.full.jpg -empty_city_ruse.jpg http://[server]/P3/Empty%20City%20Ruse.full.jpg -empty_shrine_kannushi.jpg http://[server]/BOK/Empty-Shrine%20Kannushi.full.jpg -empty_the_catacombs.jpg http://[server]/RAV/Empty%20the%20Catacombs.full.jpg -empty_the_warrens.jpg http://[server]/TSP/Empty%20the%20Warrens.full.jpg -empyrial_archangel.jpg http://[server]/ALA/Empyrial%20Archangel.full.jpg -empyrial_armor.jpg http://[server]/WL/Empyrial%20Armor.full.jpg -empyrial_plate.jpg http://[server]/MR/Empyrial%20Plate.full.jpg -enchanted_being.jpg http://[server]/LG/Enchanted%20Being.full.jpg -enchanted_evening.jpg http://[server]/SHM/Enchanted%20Evening.full.jpg -enchantment_alteration.jpg http://[server]/LG/Enchantment%20Alteration.full.jpg -enchantresss_presence.jpg http://[server]/ON/Enchantress's%20Presence.full.jpg -encroach.jpg http://[server]/UD/Encroach.full.jpg -endangered_armodon.jpg http://[server]/SH/Endangered%20Armodon.full.jpg -endbringers_revel.jpg http://[server]/PY/Endbringer's%20Revel.full.jpg -endemic_plague.jpg http://[server]/ON/Endemic%20Plague.full.jpg -endless_cockroaches.jpg http://[server]/PT/Endless%20Cockroaches.full.jpg -endless_horizons.jpg http://[server]/EVE/Endless%20Horizons.full.jpg -endless_scream.jpg http://[server]/TE/Endless%20Scream.full.jpg -endless_swarm.jpg http://[server]/SOK/Endless%20Swarm.full.jpg -endless_whispers.jpg http://[server]/FD/Endless%20Whispers.full.jpg -endless_wurm.jpg http://[server]/US/Endless%20Wurm.full.jpg -endoskeleton.jpg http://[server]/US/Endoskeleton.full.jpg -endrek_sahr_master_breeder.jpg http://[server]/TSP/Endrek%20Sahr,%20Master%20Breeder.full.jpg -endure.jpg http://[server]/EVE/Endure.full.jpg -enduring_ideal.jpg http://[server]/SOK/Enduring%20Ideal.full.jpg -enduring_renewal.jpg http://[server]/IA/Enduring%20Renewal.full.jpg -enemy_of_the_guildpact.jpg http://[server]/DIS/Enemy%20of%20the%20Guildpact.full.jpg -energizer.jpg http://[server]/TE/Energizer.full.jpg -energy_arc.jpg http://[server]/AL/Energy%20Arc.full.jpg -energy_bolt.jpg http://[server]/MI/Energy%20Bolt.full.jpg -energy_chamber.jpg http://[server]/FD/Energy%20Chamber.full.jpg -energy_field.jpg http://[server]/US/Energy%20Field.full.jpg -energy_flux.jpg http://[server]/MM/Energy%20Flux.full.jpg -energy_storm.jpg http://[server]/IA/Energy%20Storm.full.jpg -energy_tap.jpg http://[server]/LG/Energy%20Tap.full.jpg -energy_vortex.jpg http://[server]/MI/Energy%20Vortex.full.jpg -enervate.jpg http://[server]/5E/Enervate.full.jpg -enfeeblement.jpg http://[server]/9E/Enfeeblement.full.jpg -engineered_explosives.jpg http://[server]/FD/Engineered%20Explosives.full.jpg -engineered_plague.jpg http://[server]/7E/Engineered%20Plague.full.jpg -engulfing_flames.jpg http://[server]/OD/Engulfing%20Flames.full.jpg -enigma_eidolon.jpg http://[server]/DIS/Enigma%20Eidolon.full.jpg -enigma_sphinx.jpg http://[server]/ARB/Enigma%20Sphinx.full.jpg -enlightened_tutor.jpg http://[server]/MI/Enlightened%20Tutor.full.jpg -enlisted_wurm.jpg http://[server]/ARB/Enlisted%20Wurm.full.jpg -enlistment_officer.jpg http://[server]/AP/Enlistment%20Officer.full.jpg -enormous_baloth.jpg http://[server]/M10/Enormous%20Baloth.full.jpg -enrage.jpg http://[server]/9E/Enrage.full.jpg -enraging_licid.jpg http://[server]/TE/Enraging%20Licid.full.jpg -enshrined_memories.jpg http://[server]/BOK/Enshrined%20Memories.full.jpg -enslave.jpg http://[server]/PLC/Enslave.full.jpg -enslaved_dwarf.jpg http://[server]/TO/Enslaved%20Dwarf.full.jpg -enslaved_horror.jpg http://[server]/MM/Enslaved%20Horror.full.jpg -enslaved_scout.jpg http://[server]/AL/Enslaved%20Scout1.full.jpg -ensnare.jpg http://[server]/NE/Ensnare.full.jpg -ensnaring_bridge.jpg http://[server]/8E/Ensnaring%20Bridge.full.jpg -ensouled_scimitar.jpg http://[server]/FD/Ensouled%20Scimitar.full.jpg -entangler.jpg http://[server]/PY/Entangler.full.jpg -entangling_trap.jpg http://[server]/LRW/Entangling%20Trap.full.jpg -entangling_vines.jpg http://[server]/M10/Entangling%20Vines.full.jpg -enter_the_dungeon.jpg http://[server]/UNH/Enter%20the%20Dungeon.full.jpg -entomb.jpg http://[server]/OD/Entomb.full.jpg -entrails_feaster.jpg http://[server]/ON/Entrails%20Feaster.full.jpg -entropic_eidolon.jpg http://[server]/DIS/Entropic%20Eidolon.full.jpg -entropic_specter.jpg http://[server]/EX/Entropic%20Specter.full.jpg -envelop.jpg http://[server]/JU/Envelop.full.jpg -eon_hub.jpg http://[server]/FD/Eon%20Hub.full.jpg -ephemeron.jpg http://[server]/EX/Ephemeron.full.jpg -epic_proportions.jpg http://[server]/LRW/Epic%20Proportions.full.jpg -epic_struggle.jpg http://[server]/JU/Epic%20Struggle.full.jpg -epicenter.jpg http://[server]/OD/Epicenter.full.jpg -epochrasite.jpg http://[server]/FUT/Epochrasite.full.jpg -equal_treatment.jpg http://[server]/TO/Equal%20Treatment.full.jpg -equilibrium.jpg http://[server]/7E/Equilibrium.full.jpg -equinox.jpg http://[server]/LG/Equinox.full.jpg -equipoise.jpg http://[server]/VI/Equipoise.full.jpg -eradicate.jpg http://[server]/UD/Eradicate.full.jpg -erase.jpg http://[server]/UL/Erase.full.jpg -erase_(not_the_urzas_legacy_one).jpg http://[server]/UNH/Erase%20(Not%20the%20Urza's%20Legacy%20One).full.jpg -erayo_soratami_ascendant.jpg http://[server]/SOK/Erayo,%20Soratami%20Ascendant.full.jpg -erg_raiders.jpg http://[server]/5E/Erg%20Raiders.full.jpg -erhnam_djinn.jpg http://[server]/OV/Erhnam%20Djinn.full.jpg -erithizon.jpg http://[server]/MM/Erithizon.full.jpg -eron_the_relentless.jpg http://[server]/HL/Eron%20the%20Relentless.full.jpg -erosion.jpg http://[server]/DK/Erosion.full.jpg -errand_of_duty.jpg http://[server]/AL/Errand%20of%20Duty1.full.jpg -errant_doomsayers.jpg http://[server]/TSP/Errant%20Doomsayers.full.jpg -errant_ephemeron.jpg http://[server]/TSP/Errant%20Ephemeron.full.jpg -errant_minion.jpg http://[server]/IA/Errant%20Minion.full.jpg -errantry.jpg http://[server]/IA/Errantry.full.jpg -erratic_explosion.jpg http://[server]/ON/Erratic%20Explosion.full.jpg -erratic_mutation.jpg http://[server]/PLC/Erratic%20Mutation.full.jpg -erratic_portal.jpg http://[server]/EX/Erratic%20Portal.full.jpg -ersatz_gnomes.jpg http://[server]/MI/Ersatz%20Gnomes.full.jpg -ertai.jpg http://[server]/VG/Ertai.full.jpg -ertai_the_corrupted.jpg http://[server]/PS/Ertai,%20the%20Corrupted.full.jpg -ertai_wizard_adept.jpg http://[server]/EX/Ertai,%20Wizard%20Adept.full.jpg -ertais_familiar.jpg http://[server]/WL/Ertai's%20Familiar.full.jpg -ertais_meddling.jpg http://[server]/TE/Ertai's%20Meddling.full.jpg -ertais_trickery.jpg http://[server]/PS/Ertai's%20Trickery.full.jpg -escape_artist.jpg http://[server]/OD/Escape%20Artist.full.jpg -escape_routes.jpg http://[server]/PS/Escape%20Routes.full.jpg -escaped_shapeshifter.jpg http://[server]/TE/Escaped%20Shapeshifter.full.jpg -esper_battlemage.jpg http://[server]/ALA/Esper%20Battlemage.full.jpg -esper_charm.jpg http://[server]/ALA/Esper%20Charm.full.jpg -esper_cormorants.jpg http://[server]/CFX/Esper%20Cormorants.full.jpg -esper_panorama.jpg http://[server]/ALA/Esper%20Panorama.full.jpg -esper_sojourners.jpg http://[server]/ARB/Esper%20Sojourners.full.jpg -esper_stormblade.jpg http://[server]/ARB/Esper%20Stormblade.full.jpg -esperzoa.jpg http://[server]/CFX/Esperzoa.full.jpg -essence_bottle.jpg http://[server]/TE/Essence%20Bottle.full.jpg -essence_drain.jpg http://[server]/10E/Essence%20Drain.full.jpg -essence_filter.jpg http://[server]/IA/Essence%20Filter.full.jpg -essence_flare.jpg http://[server]/IA/Essence%20Flare.full.jpg -essence_fracture.jpg http://[server]/ON/Essence%20Fracture.full.jpg -essence_leak.jpg http://[server]/IN/Essence%20Leak.full.jpg -essence_scatter.jpg http://[server]/M10/Essence%20Scatter.full.jpg -essence_sliver.jpg http://[server]/LE/Essence%20Sliver.full.jpg -essence_vortex.jpg http://[server]/IA/Essence%20Vortex.full.jpg -essence_warden.jpg http://[server]/PLC/Essence%20Warden.full.jpg -etched_oracle.jpg http://[server]/FD/Etched%20Oracle.full.jpg -eternal_dominion.jpg http://[server]/SOK/Eternal%20Dominion.full.jpg -eternal_dragon.jpg http://[server]/SC/Eternal%20Dragon.full.jpg -eternal_flame.jpg http://[server]/DK/Eternal%20Flame.full.jpg -eternal_warrior.jpg http://[server]/LG/Eternal%20Warrior.full.jpg -eternal_witness.jpg http://[server]/FD/Eternal%20Witness.full.jpg -eternity_snare.jpg http://[server]/TSP/Eternity%20Snare.full.jpg -eternity_vessel.jpg http://[server]/ZEN/Eternity%20Vessel.full.jpg -ether_well.jpg http://[server]/MI/Ether%20Well.full.jpg -ethercaste_knight.jpg http://[server]/ARB/Ethercaste%20Knight.full.jpg -ethereal_champion.jpg http://[server]/MI/Ethereal%20Champion.full.jpg -ethereal_haze.jpg http://[server]/CHK/Ethereal%20Haze.full.jpg -ethereal_usher.jpg http://[server]/RAV/Ethereal%20Usher.full.jpg -ethereal_whiskergill.jpg http://[server]/LRW/Ethereal%20Whiskergill.full.jpg -etherium_abomination.jpg http://[server]/ARB/Etherium%20Abomination.full.jpg -etherium_astrolabe.jpg http://[server]/ALA/Etherium%20Astrolabe.full.jpg -etherium_sculptor.jpg http://[server]/ALA/Etherium%20Sculptor.full.jpg -ethersworn_adjudicator.jpg http://[server]/CFX/Ethersworn%20Adjudicator.full.jpg -ethersworn_canonist.jpg http://[server]/ALA/Ethersworn%20Canonist.full.jpg -ethersworn_shieldmage.jpg http://[server]/ARB/Ethersworn%20Shieldmage.full.jpg -etherwrought_page.jpg http://[server]/ARB/Etherwrought%20Page.full.jpg -eunuchs_intrigues.jpg http://[server]/P3/Eunuchs'%20Intrigues.full.jpg -eureka.jpg http://[server]/LG/Eureka.full.jpg -evacuation.jpg http://[server]/10E/Evacuation.full.jpg -evangelize.jpg http://[server]/TSP/Evangelize.full.jpg -evaporate.jpg http://[server]/HL/Evaporate.full.jpg -evasive_action.jpg http://[server]/AP/Evasive%20Action.full.jpg -even_the_odds.jpg http://[server]/FUT/Even%20the%20Odds.full.jpg -everbark_shaman.jpg http://[server]/MOR/Everbark%20Shaman.full.jpg -everglades.jpg http://[server]/VI/Everglades.full.jpg -everglove_courier.jpg http://[server]/ON/Everglove%20Courier.full.jpg -everlasting_torment.jpg http://[server]/SHM/Everlasting%20Torment.full.jpg -evermind.jpg http://[server]/SOK/Evermind.full.jpg -evershrike.jpg http://[server]/EVE/Evershrike.full.jpg -evil_eye_of_orms_by_gore.jpg http://[server]/LG/Evil%20Eye%20of%20Orms-By-Gore.full.jpg -evil_eye_of_urborg.jpg http://[server]/TSP/Evil%20Eye%20of%20Urborg.full.jpg -evil_presence.jpg http://[server]/5E/Evil%20Presence.full.jpg -evincars_justice.jpg http://[server]/TE/Evincar's%20Justice.full.jpg -eviscerator.jpg http://[server]/UL/Eviscerator.full.jpg -evolution_charm.jpg http://[server]/PLC/Evolution%20Charm.full.jpg -evolution_vat.jpg http://[server]/DIS/Evolution%20Vat.full.jpg -exalted_angel.jpg http://[server]/ON/Exalted%20Angel.full.jpg -exalted_dragon.jpg http://[server]/EX/Exalted%20Dragon.full.jpg -excavation.jpg http://[server]/PY/Excavation.full.jpg -excavator.jpg http://[server]/TE/Excavator.full.jpg -excise.jpg http://[server]/PY/Excise.full.jpg -exclude.jpg http://[server]/IN/Exclude.full.jpg -excommunicate.jpg http://[server]/M10/Excommunicate.full.jpg -excruciator.jpg http://[server]/RAV/Excruciator.full.jpg -execute.jpg http://[server]/9E/Execute.full.jpg -executioners_capsule.jpg http://[server]/ALA/Executioner's%20Capsule.full.jpg -exhaustion.jpg http://[server]/9E/Exhaustion.full.jpg -exhume.jpg http://[server]/US/Exhume.full.jpg -exhumer_thrull.jpg http://[server]/GP/Exhumer%20Thrull.full.jpg -exile.jpg http://[server]/AL/Exile.full.jpg -exile_into_darkness.jpg http://[server]/SOK/Exile%20into%20Darkness.full.jpg -exiled_boggart.jpg http://[server]/LRW/Exiled%20Boggart.full.jpg -exiled_doomsayer.jpg http://[server]/SC/Exiled%20Doomsayer.full.jpg -exorcist.jpg http://[server]/DK/Exorcist.full.jpg -exoskeletal_armor.jpg http://[server]/JU/Exoskeletal%20Armor.full.jpg -exotic_curse.jpg http://[server]/IN/Exotic%20Curse.full.jpg -exotic_disease.jpg http://[server]/PS/Exotic%20Disease.full.jpg -exotic_orchard.jpg http://[server]/CFX/Exotic%20Orchard.full.jpg -expedition_map.jpg http://[server]/ZEN/Expedition%20Map.full.jpg -expendable_troops.jpg http://[server]/UL/Expendable%20Troops.full.jpg -experiment_kraj.jpg http://[server]/DIS/Experiment%20Kraj.full.jpg -exploding_borders.jpg http://[server]/CFX/Exploding%20Borders.full.jpg -exploration.jpg http://[server]/US/Exploration.full.jpg -explorers_scope.jpg http://[server]/ZEN/Explorer's%20Scope.full.jpg -explosive_growth.jpg http://[server]/IN/Explosive%20Growth.full.jpg -explosive_vegetation.jpg http://[server]/ON/Explosive%20Vegetation.full.jpg -expunge.jpg http://[server]/US/Expunge.full.jpg -extinction.jpg http://[server]/TE/Extinction.full.jpg -extinguish.jpg http://[server]/ST/Extinguish.full.jpg -extirpate.jpg http://[server]/PLC/Extirpate.full.jpg -extortion.jpg http://[server]/MM/Extortion.full.jpg -extra_arms.jpg http://[server]/SC/Extra%20Arms.full.jpg -extract.jpg http://[server]/OD/Extract.full.jpg -extractor_demon.jpg http://[server]/CFX/Extractor%20Demon.full.jpg -extraplanar_lens.jpg http://[server]/MR/Extraplanar%20Lens.full.jpg -extravagant_spirit.jpg http://[server]/MM/Extravagant%20Spirit.full.jpg -extruder.jpg http://[server]/UD/Extruder.full.jpg -exuberant_firestoker.jpg http://[server]/ALA/Exuberant%20Firestoker.full.jpg -eye_for_an_eye.jpg http://[server]/AN/Eye%20for%20an%20Eye.full.jpg -eye_of_nowhere.jpg http://[server]/CHK/Eye%20of%20Nowhere.full.jpg -eye_of_ramos.jpg http://[server]/MM/Eye%20of%20Ramos.full.jpg -eye_of_singularity.jpg http://[server]/VI/Eye%20of%20Singularity.full.jpg -eye_of_the_storm.jpg http://[server]/RAV/Eye%20of%20the%20Storm.full.jpg -eye_of_yawgmoth.jpg http://[server]/NE/Eye%20of%20Yawgmoth.full.jpg -eye_spy.jpg http://[server]/ST/Eye%20Spy.full.jpg -eye_to_eye.jpg http://[server]/UNH/Eye%20to%20Eye.full.jpg -eyeblights_ending.jpg http://[server]/LRW/Eyeblight's%20Ending.full.jpg -eyes_of_the_watcher.jpg http://[server]/FD/Eyes%20of%20the%20Watcher.full.jpg -eyes_of_the_wisent.jpg http://[server]/LRW/Eyes%20of%20the%20Wisent.full.jpg \ No newline at end of file diff --git a/res/pics_link/card-pictures_f.txt b/res/pics_link/card-pictures_f.txt deleted file mode 100644 index cdd2270ab20..00000000000 --- a/res/pics_link/card-pictures_f.txt +++ /dev/null @@ -1,502 +0,0 @@ -faadiyah_seer.jpg http://[server]/PLC/Fa'adiyah%20Seer.full.jpg -fable_of_wolf_and_owl.jpg http://[server]/EVE/Fable%20of%20Wolf%20and%20Owl.full.jpg -fabricate.jpg http://[server]/M10/Fabricate.full.jpg -face_of_fear.jpg http://[server]/OD/Face%20of%20Fear.full.jpg -face_to_face.jpg http://[server]/UNH/Face%20to%20Face.full.jpg -faceless_butcher.jpg http://[server]/TO/Faceless%20Butcher.full.jpg -faceless_devourer.jpg http://[server]/TSP/Faceless%20Devourer.full.jpg -faces_of_the_past.jpg http://[server]/SC/Faces%20of%20the%20Past.full.jpg -facevaulter.jpg http://[server]/LRW/Facevaulter.full.jpg -fact_or_fiction.jpg http://[server]/IN/Fact%20or%20Fiction.full.jpg -fade_away.jpg http://[server]/EX/Fade%20Away.full.jpg -fade_from_memory.jpg http://[server]/ON/Fade%20from%20Memory.full.jpg -faerie_conclave.jpg http://[server]/10E/Faerie%20Conclave.full.jpg -faerie_harbinger.jpg http://[server]/LRW/Faerie%20Harbinger.full.jpg -faerie_macabre.jpg http://[server]/SHM/Faerie%20Macabre.full.jpg -faerie_mechanist.jpg http://[server]/CFX/Faerie%20Mechanist.full.jpg -faerie_noble.jpg http://[server]/HL/Faerie%20Noble.full.jpg -faerie_squadron.jpg http://[server]/IN/Faerie%20Squadron.full.jpg -faerie_swarm.jpg http://[server]/SHM/Faerie%20Swarm.full.jpg -faerie_tauntings.jpg http://[server]/LRW/Faerie%20Tauntings.full.jpg -faerie_trickery.jpg http://[server]/LRW/Faerie%20Trickery.full.jpg -faith_healer.jpg http://[server]/US/Faith%20Healer.full.jpg -faithful_squire.jpg http://[server]/BOK/Faithful%20Squire.full.jpg -faiths_fetters.jpg http://[server]/RAV/Faith's%20Fetters.full.jpg -fallen_angel.jpg http://[server]/8E/Fallen%20Angel.full.jpg -fallen_askari.jpg http://[server]/VI/Fallen%20Askari.full.jpg -fallen_cleric.jpg http://[server]/ON/Fallen%20Cleric.full.jpg -fallen_ideal.jpg http://[server]/TSP/Fallen%20Ideal.full.jpg -falling_star.jpg http://[server]/LG/Falling%20Star.full.jpg -falling_timber.jpg http://[server]/PS/Falling%20Timber.full.jpg -fallow_earth.jpg http://[server]/MI/Fallow%20Earth.full.jpg -fallow_wurm.jpg http://[server]/WL/Fallow%20Wurm.full.jpg -fallowsage.jpg http://[server]/LRW/Fallowsage.full.jpg -false_cure.jpg http://[server]/ON/False%20Cure.full.jpg -false_dawn.jpg http://[server]/AP/False%20Dawn.full.jpg -false_defeat.jpg http://[server]/P3/False%20Defeat.full.jpg -false_demise.jpg http://[server]/MM/False%20Demise.full.jpg -false_memories.jpg http://[server]/TO/False%20Memories.full.jpg -false_mourning.jpg http://[server]/P3/False%20Mourning.full.jpg -false_orders.jpg http://[server]/U/False%20Orders.full.jpg -false_peace.jpg http://[server]/ST/False%20Peace.full.jpg -false_prophet.jpg http://[server]/UD/False%20Prophet.full.jpg -false_summoning.jpg http://[server]/P2/False%20Summoning.full.jpg -falter.jpg http://[server]/US/Falter.full.jpg -familiar_ground.jpg http://[server]/WL/Familiar%20Ground.full.jpg -familiars_ruse.jpg http://[server]/LRW/Familiar's%20Ruse.full.jpg -famine.jpg http://[server]/P3/Famine.full.jpg -famished_ghoul.jpg http://[server]/OD/Famished%20Ghoul.full.jpg -fanatical_devotion.jpg http://[server]/NE/Fanatical%20Devotion.full.jpg -fanatical_fever.jpg http://[server]/IA/Fanatical%20Fever.full.jpg -fang_skulkin.jpg http://[server]/EVE/Fang%20Skulkin.full.jpg -fangren_firstborn.jpg http://[server]/DS/Fangren%20Firstborn.full.jpg -fangren_hunter.jpg http://[server]/MR/Fangren%20Hunter.full.jpg -fangren_pathcutter.jpg http://[server]/FD/Fangren%20Pathcutter.full.jpg -fanning_the_flames.jpg http://[server]/SH/Fanning%20the%20Flames.full.jpg -far_wanderings.jpg http://[server]/TO/Far%20Wanderings.full.jpg -farewell_to_arms.jpg http://[server]/UNH/Farewell%20to%20Arms.full.jpg -farhaven_elf.jpg http://[server]/SHM/Farhaven%20Elf.full.jpg -farmstead.jpg http://[server]/U/Farmstead.full.jpg -farrelite_priest.jpg http://[server]/FE/Farrelite%20Priest.full.jpg -farrels_mantle.jpg http://[server]/FE/Farrel's%20Mantle.full.jpg -farrels_zealot.jpg http://[server]/FE/Farrel's%20Zealot1.full.jpg -farseek.jpg http://[server]/RAV/Farseek.full.jpg -farsight_mask.jpg http://[server]/MR/Farsight%20Mask.full.jpg -fascist_art_director.jpg http://[server]/UNH/Fascist%20Art%20Director.full.jpg -fastbond.jpg http://[server]/U/Fastbond.full.jpg -fasting.jpg http://[server]/DK/Fasting.full.jpg -fat_ass.jpg http://[server]/UNH/Fat%20Ass.full.jpg -fatal_attraction.jpg http://[server]/FUT/Fatal%20Attraction.full.jpg -fatal_blow.jpg http://[server]/6E/Fatal%20Blow.full.jpg -fatal_frenzy.jpg http://[server]/PLC/Fatal%20Frenzy.full.jpg -fatal_lore.jpg http://[server]/AL/Fatal%20Lore.full.jpg -fatal_mutation.jpg http://[server]/SC/Fatal%20Mutation.full.jpg -fate_transfer.jpg http://[server]/SHM/Fate%20Transfer.full.jpg -fatespinner.jpg http://[server]/MR/Fatespinner.full.jpg -fatestitcher.jpg http://[server]/ALA/Fatestitcher.full.jpg -fathom_seer.jpg http://[server]/TSP/Fathom%20Seer.full.jpg -fathom_trawl.jpg http://[server]/LRW/Fathom%20Trawl.full.jpg -fatigue.jpg http://[server]/UD/Fatigue.full.jpg -fault_line.jpg http://[server]/US/Fault%20Line.full.jpg -fault_riders.jpg http://[server]/PY/Fault%20Riders.full.jpg -faultgrinder.jpg http://[server]/LRW/Faultgrinder.full.jpg -favor_of_the_mighty.jpg http://[server]/LRW/Favor%20of%20the%20Mighty.full.jpg -favor_of_the_overbeing.jpg http://[server]/EVE/Favor%20of%20the%20Overbeing.full.jpg -favorable_destiny.jpg http://[server]/MI/Favorable%20Destiny.full.jpg -fear.jpg http://[server]/10E/Fear.full.jpg -feast_of_blood.jpg http://[server]/ZEN/Feast%20of%20Blood.full.jpg -feast_of_flesh.jpg http://[server]/CS/Feast%20of%20Flesh.full.jpg -feast_of_the_unicorn.jpg http://[server]/AT/Feast%20of%20the%20Unicorn.full.jpg -feast_of_worms.jpg http://[server]/CHK/Feast%20of%20Worms.full.jpg -feast_or_famine.jpg http://[server]/AL/Feast%20or%20Famine1.full.jpg -fecundity.jpg http://[server]/8E/Fecundity.full.jpg -feebleness.jpg http://[server]/TSP/Feebleness.full.jpg -feedback.jpg http://[server]/5E/Feedback.full.jpg -feedback_bolt.jpg http://[server]/FD/Feedback%20Bolt.full.jpg -feeding_frenzy.jpg http://[server]/ON/Feeding%20Frenzy.full.jpg -feint.jpg http://[server]/LG/Feint.full.jpg -feldons_cane.jpg http://[server]/AQ/Feldon's%20Cane.full.jpg -felidar_sovereign.jpg http://[server]/ZEN/Felidar%20Sovereign.full.jpg -fellwar_stone.jpg http://[server]/9E/Fellwar%20Stone.full.jpg -femeref_archers.jpg http://[server]/10E/Femeref%20Archers.full.jpg -femeref_enchantress.jpg http://[server]/VI/Femeref%20Enchantress.full.jpg -femeref_healer.jpg http://[server]/MI/Femeref%20Healer.full.jpg -femeref_knight.jpg http://[server]/MI/Femeref%20Knight.full.jpg -femeref_scouts.jpg http://[server]/MI/Femeref%20Scouts.full.jpg -fen_stalker.jpg http://[server]/PY/Fen%20Stalker.full.jpg -fencer_clique.jpg http://[server]/MOR/Fencer%20Clique.full.jpg -fencers_magemark.jpg http://[server]/GP/Fencer's%20Magemark.full.jpg -fend_off.jpg http://[server]/UD/Fend%20Off.full.jpg -fendeep_summoner.jpg http://[server]/MOR/Fendeep%20Summoner.full.jpg -feral_animist.jpg http://[server]/GP/Feral%20Animist.full.jpg -feral_deceiver.jpg http://[server]/CHK/Feral%20Deceiver.full.jpg -feral_hydra.jpg http://[server]/ALA/Feral%20Hydra.full.jpg -feral_instinct.jpg http://[server]/VI/Feral%20Instinct.full.jpg -feral_lightning.jpg http://[server]/SOK/Feral%20Lightning.full.jpg -feral_shadow.jpg http://[server]/6E/Feral%20Shadow.full.jpg -feral_thallid.jpg http://[server]/FE/Feral%20Thallid.full.jpg -feral_throwback.jpg http://[server]/LE/Feral%20Throwback.full.jpg -ferocious_charge.jpg http://[server]/FD/Ferocious%20Charge.full.jpg -ferocity.jpg http://[server]/MM/Ferocity.full.jpg -ferozs_ban.jpg http://[server]/7E/Feroz's%20Ban.full.jpg -ferropede.jpg http://[server]/FD/Ferropede.full.jpg -fertile_ground.jpg http://[server]/8E/Fertile%20Ground.full.jpg -fertile_imagination.jpg http://[server]/DIS/Fertile%20Imagination.full.jpg -fertilid.jpg http://[server]/HOP/Fertilid.full.jpg -fervent_charge.jpg http://[server]/AP/Fervent%20Charge.full.jpg -fervent_denial.jpg http://[server]/OD/Fervent%20Denial.full.jpg -fervor.jpg http://[server]/6E/Fervor.full.jpg -festercreep.jpg http://[server]/MOR/Festercreep.full.jpg -festering_evil.jpg http://[server]/WL/Festering%20Evil.full.jpg -festering_goblin.jpg http://[server]/10E/Festering%20Goblin.full.jpg -festering_march.jpg http://[server]/FUT/Festering%20March.full.jpg -festering_wound.jpg http://[server]/UD/Festering%20Wound.full.jpg -festival.jpg http://[server]/DK/Festival.full.jpg -festival_of_the_guildpact.jpg http://[server]/RAV/Festival%20of%20the%20Guildpact.full.jpg -festival_of_trokin.jpg http://[server]/P2/Festival%20of%20Trokin.full.jpg -fetid_heath.jpg http://[server]/EVE/Fetid%20Heath.full.jpg -fetid_horror.jpg http://[server]/MI/Fetid%20Horror.full.jpg -feudkillers_verdict.jpg http://[server]/MOR/Feudkiller's%20Verdict.full.jpg -fever_charm.jpg http://[server]/ON/Fever%20Charm.full.jpg -fevered_convulsions.jpg http://[server]/TE/Fevered%20Convulsions.full.jpg -fevered_strength.jpg http://[server]/AL/Fevered%20Strength1.full.jpg -fickle_efreet.jpg http://[server]/PY/Fickle%20Efreet.full.jpg -fiddlehead_kami.jpg http://[server]/SOK/Fiddlehead%20Kami.full.jpg -field_marshal.jpg http://[server]/10E/Field%20Marshal.full.jpg -field_of_dreams.jpg http://[server]/LG/Field%20of%20Dreams.full.jpg -field_of_reality.jpg http://[server]/CHK/Field%20of%20Reality.full.jpg -field_of_souls.jpg http://[server]/TE/Field%20of%20Souls.full.jpg -field_surgeon.jpg http://[server]/UD/Field%20Surgeon.full.jpg -fieldmist_borderpost.jpg http://[server]/ARB/Fieldmist%20Borderpost.full.jpg -fierce_empath.jpg http://[server]/SC/Fierce%20Empath.full.jpg -fiery_bombardment.jpg http://[server]/EVE/Fiery%20Bombardment.full.jpg -fiery_conclusion.jpg http://[server]/RAV/Fiery%20Conclusion.full.jpg -fiery_fall.jpg http://[server]/CFX/Fiery%20Fall.full.jpg -fiery_gambit.jpg http://[server]/MR/Fiery%20Gambit.full.jpg -fiery_hellhound.jpg http://[server]/M10/Fiery%20Hellhound.full.jpg -fiery_justice.jpg http://[server]/IA/Fiery%20Justice.full.jpg -fiery_mantle.jpg http://[server]/US/Fiery%20Mantle.full.jpg -fiery_temper.jpg http://[server]/TO/Fiery%20Temper.full.jpg -fight_or_flight.jpg http://[server]/IN/Fight%20or%20Flight.full.jpg -fight_to_the_death.jpg http://[server]/ARB/Fight%20to%20the%20Death.full.jpg -fighting_chance.jpg http://[server]/EX/Fighting%20Chance.full.jpg -fighting_drake.jpg http://[server]/8E/Fighting%20Drake.full.jpg -figure_of_destiny.jpg http://[server]/EVE/Figure%20of%20Destiny.full.jpg -filigree_angel.jpg http://[server]/ARB/Filigree%20Angel.full.jpg -filigree_fracture.jpg http://[server]/CFX/Filigree%20Fracture.full.jpg -filigree_sages.jpg http://[server]/ALA/Filigree%20Sages.full.jpg -fill_with_fright.jpg http://[server]/FD/Fill%20with%20Fright.full.jpg -filth.jpg http://[server]/JU/Filth.full.jpg -filthy_cur.jpg http://[server]/OD/Filthy%20Cur.full.jpg -final_fortune.jpg http://[server]/7E/Final%20Fortune.full.jpg -final_judgment.jpg http://[server]/BOK/Final%20Judgment.full.jpg -final_punishment.jpg http://[server]/9E/Final%20Punishment.full.jpg -final_revels.jpg http://[server]/LRW/Final%20Revels.full.jpg -final_sting_faerie.jpg http://[server]/MOR/Final-Sting%20Faerie.full.jpg -final_strike.jpg http://[server]/PT/Final%20Strike.full.jpg -finest_hour.jpg http://[server]/ARB/Finest%20Hour.full.jpg -fire_ambush.jpg http://[server]/P3/Fire%20Ambush.full.jpg -fire_and_brimstone.jpg http://[server]/DK/Fire%20and%20Brimstone.full.jpg -fire_ants.jpg http://[server]/US/Fire%20Ants.full.jpg -fire_at_will.jpg http://[server]/EVE/Fire%20at%20Will.full.jpg -fire_belly_changeling.jpg http://[server]/LRW/Fire-Belly%20Changeling.full.jpg -fire_bowman.jpg http://[server]/P3/Fire%20Bowman.full.jpg -fire_covenant.jpg http://[server]/IA/Fire%20Covenant.full.jpg -fire_diamond.jpg http://[server]/7E/Fire%20Diamond.full.jpg -fire_dragon.jpg http://[server]/PT/Fire%20Dragon.full.jpg -fire_drake.jpg http://[server]/5E/Fire%20Drake.full.jpg -fire_elemental.jpg http://[server]/7E/Fire%20Elemental.full.jpg -fire_field_ogre.jpg http://[server]/ALA/Fire-Field%20Ogre.full.jpg -fire_imp.jpg http://[server]/PT/Fire%20Imp.full.jpg -fire_juggler.jpg http://[server]/MOR/Fire%20Juggler.full.jpg -fire_lit_thicket.jpg http://[server]/SHM/Fire-Lit%20Thicket.full.jpg -fire_snake.jpg http://[server]/PT/Fire%20Snake.full.jpg -fire_sprites.jpg http://[server]/LG/Fire%20Sprites.full.jpg -fire_tempest.jpg http://[server]/PT/Fire%20Tempest.full.jpg -fire_whip.jpg http://[server]/WL/Fire%20Whip.full.jpg -fireball.jpg http://[server]/M10/Fireball.full.jpg -fireblast.jpg http://[server]/VI/Fireblast.full.jpg -firebolt.jpg http://[server]/OD/Firebolt.full.jpg -firebrand_ranger.jpg http://[server]/IN/Firebrand%20Ranger.full.jpg -firebreathing.jpg http://[server]/M10/Firebreathing.full.jpg -firecat_blitz.jpg http://[server]/JU/Firecat%20Blitz.full.jpg -firefly.jpg http://[server]/TE/Firefly.full.jpg -firefright_mage.jpg http://[server]/PLC/Firefright%20Mage.full.jpg -fireice.jpg http://[server]/AP/FireIce.full.jpg -firemane_angel.jpg http://[server]/RAV/Firemane%20Angel.full.jpg -firemaw_kavu.jpg http://[server]/TSP/Firemaw%20Kavu.full.jpg -fires_of_yavimaya.jpg http://[server]/IN/Fires%20of%20Yavimaya.full.jpg -firescreamer.jpg http://[server]/IN/Firescreamer.full.jpg -fireshrieker.jpg http://[server]/MR/Fireshrieker.full.jpg -fireslinger.jpg http://[server]/TE/Fireslinger.full.jpg -firespout.jpg http://[server]/SHM/Firespout.full.jpg -firestorm.jpg http://[server]/WL/Firestorm.full.jpg -firestorm_hellkite.jpg http://[server]/VI/Firestorm%20Hellkite.full.jpg -firestorm_phoenix.jpg http://[server]/LG/Firestorm%20Phoenix.full.jpg -firewake_sliver.jpg http://[server]/TSP/Firewake%20Sliver.full.jpg -firewild_borderpost.jpg http://[server]/ARB/Firewild%20Borderpost.full.jpg -first_come_first_served.jpg http://[server]/UNH/First%20Come,%20First%20Served.full.jpg -first_volley.jpg http://[server]/BOK/First%20Volley.full.jpg -fishliver_oil.jpg http://[server]/9E/Fishliver%20Oil.full.jpg -fissure.jpg http://[server]/DK/Fissure.full.jpg -fist_of_suns.jpg http://[server]/FD/Fist%20of%20Suns.full.jpg -fistful_of_force.jpg http://[server]/LRW/Fistful%20of%20Force.full.jpg -fists_of_ironwood.jpg http://[server]/RAV/Fists%20of%20Ironwood.full.jpg -fists_of_the_anvil.jpg http://[server]/10E/Fists%20of%20the%20Anvil.full.jpg -fists_of_the_demigod.jpg http://[server]/SHM/Fists%20of%20the%20Demigod.full.jpg -fit_of_rage.jpg http://[server]/WL/Fit%20of%20Rage.full.jpg -flaccify.jpg http://[server]/UNH/Flaccify.full.jpg -flagstones_of_trokair.jpg http://[server]/TSP/Flagstones%20of%20Trokair.full.jpg -flailing_drake.jpg http://[server]/TE/Flailing%20Drake.full.jpg -flailing_manticore.jpg http://[server]/MM/Flailing%20Manticore.full.jpg -flailing_ogre.jpg http://[server]/MM/Flailing%20Ogre.full.jpg -flailing_soldier.jpg http://[server]/MM/Flailing%20Soldier.full.jpg -flame_burst.jpg http://[server]/OD/Flame%20Burst.full.jpg -flame_elemental.jpg http://[server]/MI/Flame%20Elemental.full.jpg -flame_fusillade.jpg http://[server]/RAV/Flame%20Fusillade.full.jpg -flame_jab.jpg http://[server]/EVE/Flame%20Jab.full.jpg -flame_javelin.jpg http://[server]/SHM/Flame%20Javelin.full.jpg -flame_jet.jpg http://[server]/UD/Flame%20Jet.full.jpg -flame_kin_war_scout.jpg http://[server]/DIS/Flame-Kin%20War%20Scout.full.jpg -flame_kin_zealot.jpg http://[server]/RAV/Flame-Kin%20Zealot.full.jpg -flame_rift.jpg http://[server]/NE/Flame%20Rift.full.jpg -flame_spirit.jpg http://[server]/IA/Flame%20Spirit.full.jpg -flame_wave.jpg http://[server]/9E/Flame%20Wave.full.jpg -flameblast_dragon.jpg http://[server]/ALA/Flameblast%20Dragon.full.jpg -flamebreak.jpg http://[server]/DS/Flamebreak.full.jpg -flamecore_elemental.jpg http://[server]/TSP/Flamecore%20Elemental.full.jpg -flamekin_bladewhirl.jpg http://[server]/LRW/Flamekin%20Bladewhirl.full.jpg -flamekin_brawler.jpg http://[server]/LRW/Flamekin%20Brawler.full.jpg -flamekin_harbinger.jpg http://[server]/LRW/Flamekin%20Harbinger.full.jpg -flamekin_spitfire.jpg http://[server]/LRW/Flamekin%20Spitfire.full.jpg -flames_of_the_blood_hand.jpg http://[server]/BOK/Flames%20of%20the%20Blood%20Hand.full.jpg -flameshot.jpg http://[server]/PY/Flameshot.full.jpg -flamestick_courier.jpg http://[server]/ON/Flamestick%20Courier.full.jpg -flametongue_kavu.jpg http://[server]/PS/Flametongue%20Kavu.full.jpg -flamewave_invoker.jpg http://[server]/10E/Flamewave%20Invoker.full.jpg -flaming_gambit.jpg http://[server]/TO/Flaming%20Gambit.full.jpg -flaming_sword.jpg http://[server]/MM/Flaming%20Sword.full.jpg -flanking_troops.jpg http://[server]/P3/Flanking%20Troops.full.jpg -flare.jpg http://[server]/MI/Flare.full.jpg -flaring_flame_kin.jpg http://[server]/DIS/Flaring%20Flame-Kin.full.jpg -flaring_pain.jpg http://[server]/JU/Flaring%20Pain.full.jpg -flash.jpg http://[server]/MI/Flash.full.jpg -flash_conscription.jpg http://[server]/RAV/Flash%20Conscription.full.jpg -flash_counter.jpg http://[server]/8E/Flash%20Counter.full.jpg -flash_flood.jpg http://[server]/LG/Flash%20Flood.full.jpg -flash_foliage.jpg http://[server]/DIS/Flash%20Foliage.full.jpg -flash_of_defiance.jpg http://[server]/TO/Flash%20of%20Defiance.full.jpg -flash_of_insight.jpg http://[server]/JU/Flash%20of%20Insight.full.jpg -flashfires.jpg http://[server]/9E/Flashfires.full.jpg -flashfreeze.jpg http://[server]/M10/Flashfreeze.full.jpg -flay.jpg http://[server]/PY/Flay.full.jpg -flayed_nim.jpg http://[server]/MR/Flayed%20Nim.full.jpg -fledgling_djinn.jpg http://[server]/WL/Fledgling%20Djinn.full.jpg -fledgling_dragon.jpg http://[server]/JU/Fledgling%20Dragon.full.jpg -fledgling_imp.jpg http://[server]/OD/Fledgling%20Imp.full.jpg -fledgling_mawcor.jpg http://[server]/TSP/Fledgling%20Mawcor.full.jpg -fledgling_osprey.jpg http://[server]/UD/Fledgling%20Osprey.full.jpg -fleet_footed_monk.jpg http://[server]/PT/Fleet-Footed%20Monk.full.jpg -fleetfoot_panther.jpg http://[server]/PS/Fleetfoot%20Panther.full.jpg -fleeting_aven.jpg http://[server]/ON/Fleeting%20Aven.full.jpg -fleeting_image.jpg http://[server]/9E/Fleeting%20Image.full.jpg -flesh_reaver.jpg http://[server]/US/Flesh%20Reaver.full.jpg -fleshbag_marauder.jpg http://[server]/ALA/Fleshbag%20Marauder.full.jpg -fleshformer.jpg http://[server]/CFX/Fleshformer.full.jpg -fleshgrafter.jpg http://[server]/FD/Fleshgrafter.full.jpg -fleshwrither.jpg http://[server]/FUT/Fleshwrither.full.jpg -flicker.jpg http://[server]/UD/Flicker.full.jpg -flickerform.jpg http://[server]/RAV/Flickerform.full.jpg -flickering_spirit.jpg http://[server]/TSP/Flickering%20Spirit.full.jpg -flickering_ward.jpg http://[server]/TE/Flickering%20Ward.full.jpg -flickerwisp.jpg http://[server]/EVE/Flickerwisp.full.jpg -flight.jpg http://[server]/9E/Flight.full.jpg -flight_of_fancy.jpg http://[server]/RAV/Flight%20of%20Fancy.full.jpg -fling.jpg http://[server]/SH/Fling.full.jpg -flint_golem.jpg http://[server]/NE/Flint%20Golem.full.jpg -floating_dream_zubera.jpg http://[server]/CHK/Floating-Dream%20Zubera.full.jpg -floating_shield.jpg http://[server]/TO/Floating%20Shield.full.jpg -flock_of_rabid_sheep.jpg http://[server]/UG/Flock%20of%20Rabid%20Sheep.full.jpg -flood.jpg http://[server]/DK/Flood.full.jpg -flood_plain.jpg http://[server]/MI/Flood%20Plain.full.jpg -floodbringer.jpg http://[server]/BOK/Floodbringer.full.jpg -floodchaser.jpg http://[server]/MOR/Floodchaser.full.jpg -flooded_grove.jpg http://[server]/EVE/Flooded%20Grove.full.jpg -flooded_shoreline.jpg http://[server]/VI/Flooded%20Shoreline.full.jpg -flooded_strand.jpg http://[server]/ON/Flooded%20Strand.full.jpg -flooded_woodlands.jpg http://[server]/IA/Flooded%20Woodlands.full.jpg -floodgate.jpg http://[server]/MI/Floodgate.full.jpg -floodwater_dam.jpg http://[server]/AL/Floodwater%20Dam.full.jpg -floral_spuzzem.jpg http://[server]/LG/Floral%20Spuzzem.full.jpg -flourishing_defenses.jpg http://[server]/SHM/Flourishing%20Defenses.full.jpg -flow_of_ideas.jpg http://[server]/SHM/Flow%20of%20Ideas.full.jpg -flow_of_maggots.jpg http://[server]/IA/Flow%20of%20Maggots.full.jpg -flowering_field.jpg http://[server]/PY/Flowering%20Field.full.jpg -flowstone_armor.jpg http://[server]/NE/Flowstone%20Armor.full.jpg -flowstone_blade.jpg http://[server]/SH/Flowstone%20Blade.full.jpg -flowstone_channeler.jpg http://[server]/TSP/Flowstone%20Channeler.full.jpg -flowstone_charger.jpg http://[server]/AP/Flowstone%20Charger.full.jpg -flowstone_crusher.jpg http://[server]/9E/Flowstone%20Crusher.full.jpg -flowstone_embrace.jpg http://[server]/FUT/Flowstone%20Embrace.full.jpg -flowstone_flood.jpg http://[server]/EX/Flowstone%20Flood.full.jpg -flowstone_giant.jpg http://[server]/TE/Flowstone%20Giant.full.jpg -flowstone_hellion.jpg http://[server]/SH/Flowstone%20Hellion.full.jpg -flowstone_mauler.jpg http://[server]/SH/Flowstone%20Mauler.full.jpg -flowstone_overseer.jpg http://[server]/NE/Flowstone%20Overseer.full.jpg -flowstone_salamander.jpg http://[server]/TE/Flowstone%20Salamander.full.jpg -flowstone_sculpture.jpg http://[server]/TE/Flowstone%20Sculpture.full.jpg -flowstone_shambler.jpg http://[server]/9E/Flowstone%20Shambler.full.jpg -flowstone_slide.jpg http://[server]/10E/Flowstone%20Slide.full.jpg -flowstone_strike.jpg http://[server]/NE/Flowstone%20Strike.full.jpg -flowstone_surge.jpg http://[server]/NE/Flowstone%20Surge.full.jpg -flowstone_thopter.jpg http://[server]/NE/Flowstone%20Thopter.full.jpg -flowstone_wall.jpg http://[server]/NE/Flowstone%20Wall.full.jpg -flowstone_wyvern.jpg http://[server]/TE/Flowstone%20Wyvern.full.jpg -fluctuator.jpg http://[server]/US/Fluctuator.full.jpg -flurry_of_wings.jpg http://[server]/ARB/Flurry%20of%20Wings.full.jpg -flux.jpg http://[server]/PT/Flux.full.jpg -flying_carpet.jpg http://[server]/8E/Flying%20Carpet.full.jpg -flying_men.jpg http://[server]/AN/Flying%20Men.full.jpg -fodder_cannon.jpg http://[server]/8E/Fodder%20Cannon.full.jpg -fodder_launch.jpg http://[server]/LRW/Fodder%20Launch.full.jpg -fog.jpg http://[server]/M10/Fog.full.jpg -fog_bank.jpg http://[server]/US/Fog%20Bank.full.jpg -fog_elemental.jpg http://[server]/10E/Fog%20Elemental.full.jpg -fog_of_gnats.jpg http://[server]/UL/Fog%20of%20Gnats.full.jpg -fog_patch.jpg http://[server]/NE/Fog%20Patch.full.jpg -foil.jpg http://[server]/PY/Foil.full.jpg -fold_into_aether.jpg http://[server]/FD/Fold%20into%20AEther.full.jpg -folk_medicine.jpg http://[server]/JU/Folk%20Medicine.full.jpg -folk_of_an_havva.jpg http://[server]/HL/Folk%20of%20An-Havva1.full.jpg -folk_of_the_pines.jpg http://[server]/IA/Folk%20of%20the%20Pines.full.jpg -followed_footsteps.jpg http://[server]/RAV/Followed%20Footsteps.full.jpg -fomori_nomad.jpg http://[server]/FUT/Fomori%20Nomad.full.jpg -font_of_mythos.jpg http://[server]/CFX/Font%20of%20Mythos.full.jpg -food_chain.jpg http://[server]/MM/Food%20Chain.full.jpg -fools_demise.jpg http://[server]/TSP/Fool's%20Demise.full.jpg -fools_tome.jpg http://[server]/TE/Fool's%20Tome.full.jpg -foot_soldiers.jpg http://[server]/9E/Foot%20Soldiers.full.jpg -footbottom_feast.jpg http://[server]/LRW/Footbottom%20Feast.full.jpg -foothill_guide.jpg http://[server]/ON/Foothill%20Guide.full.jpg -footsteps_of_the_goryo.jpg http://[server]/SOK/Footsteps%20of%20the%20Goryo.full.jpg -foratog.jpg http://[server]/8E/Foratog.full.jpg -forbid.jpg http://[server]/EX/Forbid.full.jpg -forbidden_crypt.jpg http://[server]/MI/Forbidden%20Crypt.full.jpg -forbidden_lore.jpg http://[server]/IA/Forbidden%20Lore.full.jpg -forbidden_orchard.jpg http://[server]/CHK/Forbidden%20Orchard.full.jpg -forbidden_ritual.jpg http://[server]/VI/Forbidden%20Ritual.full.jpg -forbidding_watchtower.jpg http://[server]/10E/Forbidding%20Watchtower.full.jpg -force_bubble.jpg http://[server]/SC/Force%20Bubble.full.jpg -force_of_nature.jpg http://[server]/9E/Force%20of%20Nature.full.jpg -force_of_savagery.jpg http://[server]/FUT/Force%20of%20Savagery.full.jpg -force_of_will.jpg http://[server]/AL/Force%20of%20Will.full.jpg -force_spike.jpg http://[server]/7E/Force%20Spike.full.jpg -force_void.jpg http://[server]/IA/Force%20Void.full.jpg -forced_fruition.jpg http://[server]/LRW/Forced%20Fruition.full.jpg -forced_march.jpg http://[server]/MM/Forced%20March.full.jpg -forced_retreat.jpg http://[server]/P3/Forced%20Retreat.full.jpg -forcefield.jpg http://[server]/U/Forcefield.full.jpg -forcemage_advocate.jpg http://[server]/JU/Forcemage%20Advocate.full.jpg -foresee.jpg http://[server]/FUT/Foresee.full.jpg -foreshadow.jpg http://[server]/VI/Foreshadow.full.jpg -foresight.jpg http://[server]/AL/Foresight1.full.jpg -forest_bear.jpg http://[server]/P3/Forest%20Bear.full.jpg -forethought_amulet.jpg http://[server]/LG/Forethought%20Amulet.full.jpg -forfend.jpg http://[server]/MOR/Forfend.full.jpg -forge_armor.jpg http://[server]/MR/Forge%20Armor.full.jpg -forget.jpg http://[server]/6E/Forget.full.jpg -forgotten_ancient.jpg http://[server]/SC/Forgotten%20Ancient.full.jpg -forgotten_cave.jpg http://[server]/ON/Forgotten%20Cave.full.jpg -forgotten_harvest.jpg http://[server]/PY/Forgotten%20Harvest.full.jpg -forgotten_lore.jpg http://[server]/IA/Forgotten%20Lore.full.jpg -foriysian_brigade.jpg http://[server]/WL/Foriysian%20Brigade.full.jpg -foriysian_interceptor.jpg http://[server]/TSP/Foriysian%20Interceptor.full.jpg -foriysian_totem.jpg http://[server]/TSP/Foriysian%20Totem.full.jpg -fork.jpg http://[server]/U/Fork.full.jpg -forked_branch_garami.jpg http://[server]/BOK/Forked-Branch%20Garami.full.jpg -forked_lightning.jpg http://[server]/PT/Forked%20Lightning.full.jpg -form_of_the_dragon.jpg http://[server]/9E/Form%20of%20the%20Dragon.full.jpg -form_of_the_squirrel.jpg http://[server]/UNH/Form%20of%20the%20Squirrel.full.jpg -formation.jpg http://[server]/IA/Formation.full.jpg -forsaken_city.jpg http://[server]/PS/Forsaken%20City.full.jpg -forsaken_wastes.jpg http://[server]/MI/Forsaken%20Wastes.full.jpg -fortified_area.jpg http://[server]/LG/Fortified%20Area.full.jpg -fortify.jpg http://[server]/TSP/Fortify.full.jpg -fortitude.jpg http://[server]/US/Fortitude.full.jpg -fortune_thief.jpg http://[server]/TSP/Fortune%20Thief.full.jpg -fossil_find.jpg http://[server]/SHM/Fossil%20Find.full.jpg -foster.jpg http://[server]/MM/Foster.full.jpg -foul_familiar.jpg http://[server]/IA/Foul%20Familiar.full.jpg -foul_imp.jpg http://[server]/9E/Foul%20Imp.full.jpg -foul_presence.jpg http://[server]/AP/Foul%20Presence.full.jpg -foul_spirit.jpg http://[server]/P2/Foul%20Spirit.full.jpg -fountain_of_cho.jpg http://[server]/MM/Fountain%20of%20Cho.full.jpg -fountain_of_youth.jpg http://[server]/10E/Fountain%20of%20Youth.full.jpg -fountain_watch.jpg http://[server]/MM/Fountain%20Watch.full.jpg -fowl_play.jpg http://[server]/UG/Fowl%20Play.full.jpg -foxfire.jpg http://[server]/IA/Foxfire.full.jpg -foxfire_oak.jpg http://[server]/SHM/Foxfire%20Oak.full.jpg -fraction_jackson.jpg http://[server]/UNH/Fraction%20Jackson.full.jpg -fractured_loyalty.jpg http://[server]/MR/Fractured%20Loyalty.full.jpg -fracturing_gust.jpg http://[server]/SHM/Fracturing%20Gust.full.jpg -framed!.jpg http://[server]/UNH/Framed!.full.jpg -frankensteins_monster.jpg http://[server]/DK/Frankenstein's%20Monster.full.jpg -frankie_peanuts.jpg http://[server]/UNH/Frankie%20Peanuts.full.jpg -frantic_purification.jpg http://[server]/TO/Frantic%20Purification.full.jpg -frantic_search.jpg http://[server]/UL/Frantic%20Search.full.jpg -fraternal_exaltation.jpg http://[server]/PR/Fraternal%20Exaltation.full.jpg -frazzle.jpg http://[server]/GP/Frazzle.full.jpg -frazzled_editor.jpg http://[server]/UNH/Frazzled%20Editor.full.jpg -free_for_all.jpg http://[server]/UG/Free-for-All.full.jpg -free_range_chicken.jpg http://[server]/UG/Free-Range%20Chicken.full.jpg -freed_from_the_real.jpg http://[server]/SOK/Freed%20from%20the%20Real.full.jpg -freewind_equenaut.jpg http://[server]/DIS/Freewind%20Equenaut.full.jpg -freewind_falcon.jpg http://[server]/AT/Freewind%20Falcon.full.jpg -frenetic_efreet.jpg http://[server]/MI/Frenetic%20Efreet.full.jpg -frenetic_ogre.jpg http://[server]/OD/Frenetic%20Ogre.full.jpg -frenetic_raptor.jpg http://[server]/LE/Frenetic%20Raptor.full.jpg -frenetic_sliver.jpg http://[server]/PLC/Frenetic%20Sliver.full.jpg -frenzied_goblin.jpg http://[server]/RAV/Frenzied%20Goblin.full.jpg -frenzied_tilling.jpg http://[server]/IN/Frenzied%20Tilling.full.jpg -frenzy_sliver.jpg http://[server]/FUT/Frenzy%20Sliver.full.jpg -fresh_volunteers.jpg http://[server]/MM/Fresh%20Volunteers.full.jpg -freyalise_supplicant.jpg http://[server]/IA/Freyalise%20Supplicant.full.jpg -freyalises_charm.jpg http://[server]/IA/Freyalise's%20Charm.full.jpg -freyalises_radiance.jpg http://[server]/CS/Freyalise's%20Radiance.full.jpg -freyalises_winds.jpg http://[server]/IA/Freyalise's%20Winds.full.jpg -frightcrawler.jpg http://[server]/OD/Frightcrawler.full.jpg -frightshroud_courier.jpg http://[server]/ON/Frightshroud%20Courier.full.jpg -frog_tongue.jpg http://[server]/TE/Frog%20Tongue.full.jpg -frogmite.jpg http://[server]/MR/Frogmite.full.jpg -frogtosser_banneret.jpg http://[server]/MOR/Frogtosser%20Banneret.full.jpg -frontier_guide.jpg http://[server]/ZEN/Frontier%20Guide.full.jpg -frontline_sage.jpg http://[server]/CFX/Frontline%20Sage.full.jpg -frontline_strategist.jpg http://[server]/SC/Frontline%20Strategist.full.jpg -frost_giant.jpg http://[server]/LG/Frost%20Giant.full.jpg -frost_marsh.jpg http://[server]/CS/Frost%20Marsh.full.jpg -frost_ogre.jpg http://[server]/BOK/Frost%20Ogre.full.jpg -frost_raptor.jpg http://[server]/CS/Frost%20Raptor.full.jpg -frostling.jpg http://[server]/BOK/Frostling.full.jpg -frostweb_spider.jpg http://[server]/CS/Frostweb%20Spider.full.jpg -frostwielder.jpg http://[server]/CHK/Frostwielder.full.jpg -frozen_aether.jpg http://[server]/PLC/Frozen%20Aether.full.jpg -frozen_shade.jpg http://[server]/5E/Frozen%20Shade.full.jpg -frozen_solid.jpg http://[server]/SC/Frozen%20Solid.full.jpg -fruitcake_elemental.jpg http://[server]/HHL/Fruitcake%20Elemental.full.jpg -fruition.jpg http://[server]/PT/Fruition.full.jpg -fugitive_druid.jpg http://[server]/TE/Fugitive%20Druid.full.jpg -fugitive_wizard.jpg http://[server]/10E/Fugitive%20Wizard.full.jpg -fugue.jpg http://[server]/7E/Fugue.full.jpg -fulminator_mage.jpg http://[server]/SHM/Fulminator%20Mage.full.jpg -fumarole.jpg http://[server]/IA/Fumarole.full.jpg -fumiko_the_lowblood.jpg http://[server]/BOK/Fumiko%20the%20Lowblood.full.jpg -funeral_charm.jpg http://[server]/VI/Funeral%20Charm.full.jpg -funeral_march.jpg http://[server]/HL/Funeral%20March.full.jpg -funeral_pyre.jpg http://[server]/JU/Funeral%20Pyre.full.jpg -fungal_behemoth.jpg http://[server]/PLC/Fungal%20Behemoth.full.jpg -fungal_bloom.jpg http://[server]/FE/Fungal%20Bloom.full.jpg -fungal_reaches.jpg http://[server]/TSP/Fungal%20Reaches.full.jpg -fungal_shambler.jpg http://[server]/AP/Fungal%20Shambler.full.jpg -fungus_elemental.jpg http://[server]/WL/Fungus%20Elemental.full.jpg -fungus_sliver.jpg http://[server]/TSP/Fungus%20Sliver.full.jpg -fungusaur.jpg http://[server]/8E/Fungusaur.full.jpg -furious_assault.jpg http://[server]/MM/Furious%20Assault.full.jpg -furnace_brood.jpg http://[server]/EX/Furnace%20Brood.full.jpg -furnace_dragon.jpg http://[server]/DS/Furnace%20Dragon.full.jpg -furnace_of_rath.jpg http://[server]/10E/Furnace%20of%20Rath.full.jpg -furnace_spirit.jpg http://[server]/SH/Furnace%20Spirit.full.jpg -furnace_whelp.jpg http://[server]/10E/Furnace%20Whelp.full.jpg -fury_charm.jpg http://[server]/PLC/Fury%20Charm.full.jpg -fury_of_the_horde.jpg http://[server]/CS/Fury%20of%20the%20Horde.full.jpg -fury_sliver.jpg http://[server]/TSP/Fury%20Sliver.full.jpg -furystoke_giant.jpg http://[server]/SHM/Furystoke%20Giant.full.jpg -fusion_elemental.jpg http://[server]/CFX/Fusion%20Elemental.full.jpg -future_sight.jpg http://[server]/ON/Future%20Sight.full.jpg -fylamarid.jpg http://[server]/TE/Fylamarid.full.jpg -fylgja.jpg http://[server]/IA/Fylgja.full.jpg -fyndhorn_bow.jpg http://[server]/IA/Fyndhorn%20Bow.full.jpg -fyndhorn_brownie.jpg http://[server]/IA/Fyndhorn%20Brownie.full.jpg -fyndhorn_druid.jpg http://[server]/AL/Fyndhorn%20Druid1.full.jpg -fyndhorn_elder.jpg http://[server]/8E/Fyndhorn%20Elder.full.jpg -fyndhorn_elves.jpg http://[server]/IA/Fyndhorn%20Elves.full.jpg -fyndhorn_pollen.jpg http://[server]/IA/Fyndhorn%20Pollen.full.jpg \ No newline at end of file diff --git a/res/pics_link/card-pictures_g.txt b/res/pics_link/card-pictures_g.txt deleted file mode 100644 index 02bc537bdcd..00000000000 --- a/res/pics_link/card-pictures_g.txt +++ /dev/null @@ -1,568 +0,0 @@ -gabriel_angelfire.jpg http://[server]/LG/Gabriel%20Angelfire.full.jpg -gaddock_teeg.jpg http://[server]/LRW/Gaddock%20Teeg.full.jpg -gaeas_anthem.jpg http://[server]/PLC/Gaea's%20Anthem.full.jpg -gaeas_avenger.jpg http://[server]/AQ/Gaea's%20Avenger.full.jpg -gaeas_balance.jpg http://[server]/AP/Gaea's%20Balance.full.jpg -gaeas_blessing.jpg http://[server]/WL/Gaea's%20Blessing.full.jpg -gaeas_bounty.jpg http://[server]/US/Gaea's%20Bounty.full.jpg -gaeas_cradle.jpg http://[server]/US/Gaea's%20Cradle.full.jpg -gaeas_embrace.jpg http://[server]/US/Gaea's%20Embrace.full.jpg -gaeas_herald.jpg http://[server]/10E/Gaea's%20Herald.full.jpg -gaeas_liege.jpg http://[server]/4E/Gaea's%20Liege.full.jpg -gaeas_might.jpg http://[server]/PS/Gaea's%20Might.full.jpg -gaeas_skyfolk.jpg http://[server]/AP/Gaea's%20Skyfolk.full.jpg -gaeas_touch.jpg http://[server]/DK/Gaea's%20Touch.full.jpg -gainsay.jpg http://[server]/PS/Gainsay.full.jpg -gale_force.jpg http://[server]/CHK/Gale%20Force.full.jpg -galepowder_mage.jpg http://[server]/LRW/Galepowder%20Mage.full.jpg -galinas_knight.jpg http://[server]/IN/Galina's%20Knight.full.jpg -gallantry.jpg http://[server]/OD/Gallantry.full.jpg -gallowbraid.jpg http://[server]/WL/Gallowbraid.full.jpg -galvanic_arc.jpg http://[server]/RAV/Galvanic%20Arc.full.jpg -galvanic_key.jpg http://[server]/MR/Galvanic%20Key.full.jpg -gamble.jpg http://[server]/US/Gamble.full.jpg -game_of_chaos.jpg http://[server]/5E/Game%20of%20Chaos.full.jpg -game_preserve.jpg http://[server]/MM/Game%20Preserve.full.jpg -game_trail_changeling.jpg http://[server]/MOR/Game-Trail%20Changeling.full.jpg -gamekeeper.jpg http://[server]/UD/Gamekeeper.full.jpg -gang_of_elk.jpg http://[server]/7E/Gang%20of%20Elk.full.jpg -gangrenous_goliath.jpg http://[server]/ON/Gangrenous%20Goliath.full.jpg -gangrenous_zombies.jpg http://[server]/IA/Gangrenous%20Zombies.full.jpg -gargantuan_gorilla.jpg http://[server]/AL/Gargantuan%20Gorilla.full.jpg -gargoyle_castle.jpg http://[server]/M10/Gargoyle%20Castle.full.jpg -garruk_wildspeaker.jpg http://[server]/M10/Garruk%20Wildspeaker.full.jpg -garza_zol_plague_queen.jpg http://[server]/CS/Garza%20Zol,%20Plague%20Queen.full.jpg -garzas_assassin.jpg http://[server]/CS/Garza's%20Assassin.full.jpg -gaseous_form.jpg http://[server]/6E/Gaseous%20Form.full.jpg -gate_hound.jpg http://[server]/RAV/Gate%20Hound.full.jpg -gate_to_phyrexia.jpg http://[server]/AQ/Gate%20to%20Phyrexia.full.jpg -gate_to_the_aether.jpg http://[server]/MR/Gate%20to%20the%20AEther.full.jpg -gatekeeper_of_malakir.jpg http://[server]/ZEN/Gatekeeper%20of%20Malakir.full.jpg -gathan_raiders.jpg http://[server]/FUT/Gathan%20Raiders.full.jpg -gather_courage.jpg http://[server]/RAV/Gather%20Courage.full.jpg -gather_specimens.jpg http://[server]/ALA/Gather%20Specimens.full.jpg -gatherer_of_graces.jpg http://[server]/GP/Gatherer%20of%20Graces.full.jpg -gauntlet_of_might.jpg http://[server]/U/Gauntlet%20of%20Might.full.jpg -gauntlet_of_power.jpg http://[server]/TSP/Gauntlet%20of%20Power.full.jpg -gauntlets_of_chaos.jpg http://[server]/LG/Gauntlets%20of%20Chaos.full.jpg -gaze_of_adamaro.jpg http://[server]/SOK/Gaze%20of%20Adamaro.full.jpg -gaze_of_justice.jpg http://[server]/TSP/Gaze%20of%20Justice.full.jpg -gaze_of_pain.jpg http://[server]/IA/Gaze%20of%20Pain.full.jpg -gaze_of_the_gorgon.jpg http://[server]/RAV/Gaze%20of%20the%20Gorgon.full.jpg -gelectrode.jpg http://[server]/GP/Gelectrode.full.jpg -gelid_shackles.jpg http://[server]/CS/Gelid%20Shackles.full.jpg -gemhide_sliver.jpg http://[server]/TSP/Gemhide%20Sliver.full.jpg -gemini_engine.jpg http://[server]/DS/Gemini%20Engine.full.jpg -gempalm_avenger.jpg http://[server]/LE/Gempalm%20Avenger.full.jpg -gempalm_incinerator.jpg http://[server]/LE/Gempalm%20Incinerator.full.jpg -gempalm_polluter.jpg http://[server]/LE/Gempalm%20Polluter.full.jpg -gempalm_sorcerer.jpg http://[server]/LE/Gempalm%20Sorcerer.full.jpg -gempalm_strider.jpg http://[server]/LE/Gempalm%20Strider.full.jpg -gemstone_array.jpg http://[server]/FD/Gemstone%20Array.full.jpg -gemstone_caverns.jpg http://[server]/TSP/Gemstone%20Caverns.full.jpg -gemstone_mine.jpg http://[server]/WL/Gemstone%20Mine.full.jpg -general_jarkeld.jpg http://[server]/IA/General%20Jarkeld.full.jpg -generals_kabuto.jpg http://[server]/CHK/General's%20Kabuto.full.jpg -generals_regalia.jpg http://[server]/MM/General's%20Regalia.full.jpg -genesis.jpg http://[server]/JU/Genesis.full.jpg -genesis_chamber.jpg http://[server]/DS/Genesis%20Chamber.full.jpg -genju_of_the_cedars.jpg http://[server]/BOK/Genju%20of%20the%20Cedars.full.jpg -genju_of_the_falls.jpg http://[server]/BOK/Genju%20of%20the%20Falls.full.jpg -genju_of_the_fens.jpg http://[server]/BOK/Genju%20of%20the%20Fens.full.jpg -genju_of_the_fields.jpg http://[server]/BOK/Genju%20of%20the%20Fields.full.jpg -genju_of_the_realm.jpg http://[server]/BOK/Genju%20of%20the%20Realm.full.jpg -genju_of_the_spires.jpg http://[server]/BOK/Genju%20of%20the%20Spires.full.jpg -geothermal_crevice.jpg http://[server]/IN/Geothermal%20Crevice.full.jpg -gerrard.jpg http://[server]/VG/Gerrard.full.jpg -gerrard_capashen.jpg http://[server]/AP/Gerrard%20Capashen.full.jpg -gerrards_battle_cry.jpg http://[server]/TE/Gerrard's%20Battle%20Cry.full.jpg -gerrards_command.jpg http://[server]/PS/Gerrard's%20Command.full.jpg -gerrards_irregulars.jpg http://[server]/MM/Gerrard's%20Irregulars.full.jpg -gerrards_verdict.jpg http://[server]/AP/Gerrard's%20Verdict.full.jpg -gerrards_wisdom.jpg http://[server]/7E/Gerrard's%20Wisdom.full.jpg -gerrymandering.jpg http://[server]/UG/Gerrymandering.full.jpg -get_a_life.jpg http://[server]/UG/Get%20a%20Life.full.jpg -geths_grimoire.jpg http://[server]/DS/Geth's%20Grimoire.full.jpg -geyser_glider.jpg http://[server]/ZEN/Geyser%20Glider.full.jpg -ghastlord_of_fugue.jpg http://[server]/SHM/Ghastlord%20of%20Fugue.full.jpg -ghastly_demise.jpg http://[server]/OD/Ghastly%20Demise.full.jpg -ghastly_discovery.jpg http://[server]/SHM/Ghastly%20Discovery.full.jpg -ghastly_remains.jpg http://[server]/LE/Ghastly%20Remains.full.jpg -ghazban_ogre.jpg http://[server]/5E/Ghazban%20Ogre.full.jpg -ghazban_ogress.jpg http://[server]/UG/Ghazban%20Ogress.full.jpg -ghitu_encampment.jpg http://[server]/10E/Ghitu%20Encampment.full.jpg -ghitu_fire.jpg http://[server]/IN/Ghitu%20Fire.full.jpg -ghitu_fire_eater.jpg http://[server]/7E/Ghitu%20Fire-Eater.full.jpg -ghitu_firebreathing.jpg http://[server]/TSP/Ghitu%20Firebreathing.full.jpg -ghitu_slinger.jpg http://[server]/UL/Ghitu%20Slinger.full.jpg -ghitu_war_cry.jpg http://[server]/UL/Ghitu%20War%20Cry.full.jpg -ghor_clan_bloodscale.jpg http://[server]/GP/Ghor-Clan%20Bloodscale.full.jpg -ghor_clan_savage.jpg http://[server]/GP/Ghor-Clan%20Savage.full.jpg -ghost_council_of_orzhova.jpg http://[server]/GP/Ghost%20Council%20of%20Orzhova.full.jpg -ghost_hounds.jpg http://[server]/HL/Ghost%20Hounds.full.jpg -ghost_lit_nourisher.jpg http://[server]/SOK/Ghost-Lit%20Nourisher.full.jpg -ghost_lit_raider.jpg http://[server]/REL/Ghost-Lit%20Raider.full.jpg -ghost_lit_redeemer.jpg http://[server]/SOK/Ghost-Lit%20Redeemer.full.jpg -ghost_lit_stalker.jpg http://[server]/SOK/Ghost-Lit%20Stalker.full.jpg -ghost_lit_warder.jpg http://[server]/SOK/Ghost-Lit%20Warder.full.jpg -ghost_quarter.jpg http://[server]/DIS/Ghost%20Quarter.full.jpg -ghost_ship.jpg http://[server]/4E/Ghost%20Ship.full.jpg -ghost_tactician.jpg http://[server]/PLC/Ghost%20Tactician.full.jpg -ghost_town.jpg http://[server]/TE/Ghost%20Town.full.jpg -ghost_warden.jpg http://[server]/10E/Ghost%20Warden.full.jpg -ghostfire.jpg http://[server]/FUT/Ghostfire.full.jpg -ghostflame_sliver.jpg http://[server]/TSP/Ghostflame%20Sliver.full.jpg -ghosthelm_courier.jpg http://[server]/ON/Ghosthelm%20Courier.full.jpg -ghostly_changeling.jpg http://[server]/LRW/Ghostly%20Changeling.full.jpg -ghostly_flame.jpg http://[server]/IA/Ghostly%20Flame.full.jpg -ghostly_prison.jpg http://[server]/CHK/Ghostly%20Prison.full.jpg -ghostly_visit.jpg http://[server]/P3/Ghostly%20Visit.full.jpg -ghostly_wings.jpg http://[server]/TO/Ghostly%20Wings.full.jpg -ghosts_of_the_damned.jpg http://[server]/LG/Ghosts%20of%20the%20Damned.full.jpg -ghosts_of_the_innocent.jpg http://[server]/RAV/Ghosts%20of%20the%20Innocent.full.jpg -ghostway.jpg http://[server]/GP/Ghostway.full.jpg -ghouls_feast.jpg http://[server]/MM/Ghoul's%20Feast.full.jpg -giant_albatross.jpg http://[server]/HL/Giant%20Albatross1.full.jpg -giant_ambush_beetle.jpg http://[server]/ARB/Giant%20Ambush%20Beetle.full.jpg -giant_badger.jpg http://[server]/8E/Giant%20Badger.full.jpg -giant_caterpillar.jpg http://[server]/MM/Giant%20Caterpillar.full.jpg -giant_cockroach.jpg http://[server]/9E/Giant%20Cockroach.full.jpg -giant_crab.jpg http://[server]/TE/Giant%20Crab.full.jpg -giant_dustwasp.jpg http://[server]/PLC/Giant%20Dustwasp.full.jpg -giant_fan.jpg http://[server]/UG/Giant%20Fan.full.jpg -giant_growth.jpg http://[server]/M10/Giant%20Growth.full.jpg -giant_harbinger.jpg http://[server]/LRW/Giant%20Harbinger.full.jpg -giant_mantis.jpg http://[server]/MI/Giant%20Mantis.full.jpg -giant_octopus.jpg http://[server]/9E/Giant%20Octopus.full.jpg -giant_oyster.jpg http://[server]/HL/Giant%20Oyster.full.jpg -giant_scorpion.jpg http://[server]/ZEN/Giant%20Scorpion.full.jpg -giant_shark.jpg http://[server]/DK/Giant%20Shark.full.jpg -giant_slug.jpg http://[server]/LG/Giant%20Slug.full.jpg -giant_solifuge.jpg http://[server]/GP/Giant%20Solifuge.full.jpg -giant_spider.jpg http://[server]/M10/Giant%20Spider.full.jpg -giant_strength.jpg http://[server]/LG/Giant%20Strength.full.jpg -giant_tortoise.jpg http://[server]/4E/Giant%20Tortoise.full.jpg -giant_trap_door_spider.jpg http://[server]/IA/Giant%20Trap%20Door%20Spider.full.jpg -giant_turtle.jpg http://[server]/LG/Giant%20Turtle.full.jpg -giant_warthog.jpg http://[server]/JU/Giant%20Warthog.full.jpg -giantbaiting.jpg http://[server]/SHM/Giantbaiting.full.jpg -giants_ire.jpg http://[server]/LRW/Giant's%20Ire.full.jpg -gibbering_descent.jpg http://[server]/FUT/Gibbering%20Descent.full.jpg -gibbering_hyenas.jpg http://[server]/MI/Gibbering%20Hyenas.full.jpg -gibbering_kami.jpg http://[server]/CHK/Gibbering%20Kami.full.jpg -gift_of_estates.jpg http://[server]/PT/Gift%20of%20Estates.full.jpg -gift_of_granite.jpg http://[server]/FUT/Gift%20of%20Granite.full.jpg -gift_of_the_deity.jpg http://[server]/EVE/Gift%20of%20the%20Deity.full.jpg -gift_of_the_gargantuan.jpg http://[server]/ALA/Gift%20of%20the%20Gargantuan.full.jpg -gift_of_the_woods.jpg http://[server]/AL/Gift%20of%20the%20Woods1.full.jpg -gifts_ungiven.jpg http://[server]/CHK/Gifts%20Ungiven.full.jpg -gigadrowse.jpg http://[server]/GP/Gigadrowse.full.jpg -gigantiform.jpg http://[server]/ZEN/Gigantiform.full.jpg -gigapede.jpg http://[server]/ON/Gigapede.full.jpg -gilded_drake.jpg http://[server]/US/Gilded%20Drake.full.jpg -gilded_light.jpg http://[server]/SC/Gilded%20Light.full.jpg -gilded_lotus.jpg http://[server]/MR/Gilded%20Lotus.full.jpg -gilder_bairn.jpg http://[server]/EVE/Gilder%20Bairn.full.jpg -gilt_leaf_ambush.jpg http://[server]/LRW/Gilt-Leaf%20Ambush.full.jpg -gilt_leaf_archdruid.jpg http://[server]/MOR/Gilt-Leaf%20Archdruid.full.jpg -gilt_leaf_palace.jpg http://[server]/LRW/Gilt-Leaf%20Palace.full.jpg -gilt_leaf_seer.jpg http://[server]/LRW/Gilt-Leaf%20Seer.full.jpg -giltspire_avenger.jpg http://[server]/CFX/Giltspire%20Avenger.full.jpg -gix.jpg http://[server]/VG/Gix.full.jpg -glacial_chasm.jpg http://[server]/IA/Glacial%20Chasm.full.jpg -glacial_crevasses.jpg http://[server]/IA/Glacial%20Crevasses.full.jpg -glacial_fortress.jpg http://[server]/M10/Glacial%20Fortress.full.jpg -glacial_plating.jpg http://[server]/CS/Glacial%20Plating.full.jpg -glacial_ray.jpg http://[server]/CHK/Glacial%20Ray.full.jpg -glacial_wall.jpg http://[server]/7E/Glacial%20Wall.full.jpg -glaciers.jpg http://[server]/IA/Glaciers.full.jpg -glade_gnarr.jpg http://[server]/AP/Glade%20Gnarr.full.jpg -glamer_spinners.jpg http://[server]/SHM/Glamer%20Spinners.full.jpg -glamerdye.jpg http://[server]/EVE/Glamerdye.full.jpg -glare_of_subdual.jpg http://[server]/RAV/Glare%20of%20Subdual.full.jpg -glarecaster.jpg http://[server]/ON/Glarecaster.full.jpg -glarewielder.jpg http://[server]/LRW/Glarewielder.full.jpg -glass_asp.jpg http://[server]/TSP/Glass%20Asp.full.jpg -glass_golem.jpg http://[server]/RAV/Glass%20Golem.full.jpg -glassdust_hulk.jpg http://[server]/ARB/Glassdust%20Hulk.full.jpg -glasses_of_urza.jpg http://[server]/6E/Glasses%20of%20Urza.full.jpg -glaze_fiend.jpg http://[server]/ALA/Glaze%20Fiend.full.jpg -gleam_of_resistance.jpg http://[server]/CFX/Gleam%20of%20Resistance.full.jpg -gleancrawler.jpg http://[server]/RAV/Gleancrawler.full.jpg -gleeful_sabotage.jpg http://[server]/SHM/Gleeful%20Sabotage.full.jpg -gleemax.jpg http://[server]/UNH/Gleemax.full.jpg -glen_elendra_archmage.jpg http://[server]/EVE/Glen%20Elendra%20Archmage.full.jpg -glen_elendra_liege.jpg http://[server]/SHM/Glen%20Elendra%20Liege.full.jpg -glen_elendra_pranksters.jpg http://[server]/LRW/Glen%20Elendra%20Pranksters.full.jpg -gliding_licid.jpg http://[server]/SH/Gliding%20Licid.full.jpg -glimmerdust_nap.jpg http://[server]/LRW/Glimmerdust%20Nap.full.jpg -glimmering_angel.jpg http://[server]/IN/Glimmering%20Angel.full.jpg -glimmervoid.jpg http://[server]/MR/Glimmervoid.full.jpg -glimpse_of_nature.jpg http://[server]/CHK/Glimpse%20of%20Nature.full.jpg -glimpse_the_unthinkable.jpg http://[server]/RAV/Glimpse%20the%20Unthinkable.full.jpg -glint_eye_nephilim.jpg http://[server]/GP/Glint-Eye%20Nephilim.full.jpg -glintwing_invoker.jpg http://[server]/LE/Glintwing%20Invoker.full.jpg -glissa_sunseeker.jpg http://[server]/MR/Glissa%20Sunseeker.full.jpg -glitterfang.jpg http://[server]/SOK/Glitterfang.full.jpg -glittering_lion.jpg http://[server]/PY/Glittering%20Lion.full.jpg -glittering_lynx.jpg http://[server]/PY/Glittering%20Lynx.full.jpg -glittering_wish.jpg http://[server]/FUT/Glittering%20Wish.full.jpg -global_ruin.jpg http://[server]/IN/Global%20Ruin.full.jpg -gloom.jpg http://[server]/5E/Gloom.full.jpg -gloomdrifter.jpg http://[server]/TO/Gloomdrifter.full.jpg -gloomlance.jpg http://[server]/SHM/Gloomlance.full.jpg -gloomwidow.jpg http://[server]/SHM/Gloomwidow.full.jpg -gloomwidows_feast.jpg http://[server]/SHM/Gloomwidow's%20Feast.full.jpg -glorious_anthem.jpg http://[server]/10E/Glorious%20Anthem.full.jpg -glorious_charge.jpg http://[server]/M10/Glorious%20Charge.full.jpg -glory.jpg http://[server]/JU/Glory.full.jpg -glory_of_warfare.jpg http://[server]/HOP/Glory%20of%20Warfare.full.jpg -glory_seeker.jpg http://[server]/9E/Glory%20Seeker.full.jpg -gloryscale_viashino.jpg http://[server]/ARB/Gloryscale%20Viashino.full.jpg -glowering_rogon.jpg http://[server]/LE/Glowering%20Rogon.full.jpg -glowing_anemone.jpg http://[server]/MM/Glowing%20Anemone.full.jpg -glowrider.jpg http://[server]/LE/Glowrider.full.jpg -gluetius_maximus.jpg http://[server]/UNH/Gluetius%20Maximus.full.jpg -gluttonous_slime.jpg http://[server]/CFX/Gluttonous%20Slime.full.jpg -gluttonous_zombie.jpg http://[server]/9E/Gluttonous%20Zombie.full.jpg -glyph_of_delusion.jpg http://[server]/LG/Glyph%20of%20Delusion.full.jpg -glyph_of_destruction.jpg http://[server]/LG/Glyph%20of%20Destruction.full.jpg -glyph_of_doom.jpg http://[server]/LG/Glyph%20of%20Doom.full.jpg -glyph_of_life.jpg http://[server]/LG/Glyph%20of%20Life.full.jpg -glyph_of_reincarnation.jpg http://[server]/LG/Glyph%20of%20Reincarnation.full.jpg -gnarled_effigy.jpg http://[server]/SHM/Gnarled%20Effigy.full.jpg -gnarled_mass.jpg http://[server]/BOK/Gnarled%20Mass.full.jpg -gnat_alley_creeper.jpg http://[server]/DIS/Gnat%20Alley%20Creeper.full.jpg -gnat_miser.jpg http://[server]/SOK/Gnat%20Miser.full.jpg -goatnapper.jpg http://[server]/LRW/Goatnapper.full.jpg -gobhobbler_rats.jpg http://[server]/DIS/Gobhobbler%20Rats.full.jpg -goblin_archaeologist.jpg http://[server]/DS/Goblin%20Archaeologist.full.jpg -goblin_artillery.jpg http://[server]/M10/Goblin%20Artillery.full.jpg -goblin_artisans.jpg http://[server]/AQ/Goblin%20Artisans.full.jpg -goblin_assassin.jpg http://[server]/LE/Goblin%20Assassin.full.jpg -goblin_assault.jpg http://[server]/ALA/Goblin%20Assault.full.jpg -goblin_balloon_brigade.jpg http://[server]/9E/Goblin%20Balloon%20Brigade.full.jpg -goblin_berserker.jpg http://[server]/UD/Goblin%20Berserker.full.jpg -goblin_bomb.jpg http://[server]/WL/Goblin%20Bomb.full.jpg -goblin_bombardment.jpg http://[server]/TE/Goblin%20Bombardment.full.jpg -goblin_bookie.jpg http://[server]/UG/Goblin%20Bookie.full.jpg -goblin_bowling_team.jpg http://[server]/UG/Goblin%20Bowling%20Team.full.jpg -goblin_brawler.jpg http://[server]/FD/Goblin%20Brawler.full.jpg -goblin_brigand.jpg http://[server]/9E/Goblin%20Brigand.full.jpg -goblin_bully.jpg http://[server]/PT/Goblin%20Bully.full.jpg -goblin_burrows.jpg http://[server]/ON/Goblin%20Burrows.full.jpg -goblin_bushwhacker.jpg http://[server]/ZEN/Goblin%20Bushwhacker.full.jpg -goblin_cadets.jpg http://[server]/US/Goblin%20Cadets.full.jpg -goblin_cannon.jpg http://[server]/FD/Goblin%20Cannon.full.jpg -goblin_cavaliers.jpg http://[server]/ST/Goblin%20Cavaliers.full.jpg -goblin_caves.jpg http://[server]/DK/Goblin%20Caves.full.jpg -goblin_charbelcher.jpg http://[server]/MR/Goblin%20Charbelcher.full.jpg -goblin_chariot.jpg http://[server]/9E/Goblin%20Chariot.full.jpg -goblin_chieftain.jpg http://[server]/M10/Goblin%20Chieftain.full.jpg -goblin_chirurgeon.jpg http://[server]/FE/Goblin%20Chirurgeon1.full.jpg -goblin_clearcutter.jpg http://[server]/LE/Goblin%20Clearcutter.full.jpg -goblin_cohort.jpg http://[server]/BOK/Goblin%20Cohort.full.jpg -goblin_commando.jpg http://[server]/ST/Goblin%20Commando.full.jpg -goblin_deathraiders.jpg http://[server]/ALA/Goblin%20Deathraiders.full.jpg -goblin_digging_team.jpg http://[server]/7E/Goblin%20Digging%20Team.full.jpg -goblin_dirigible.jpg http://[server]/MR/Goblin%20Dirigible.full.jpg -goblin_dynamo.jpg http://[server]/LE/Goblin%20Dynamo.full.jpg -goblin_elite_infantry.jpg http://[server]/10E/Goblin%20Elite%20Infantry.full.jpg -goblin_festival.jpg http://[server]/UD/Goblin%20Festival.full.jpg -goblin_fire_fiend.jpg http://[server]/RAV/Goblin%20Fire%20Fiend.full.jpg -goblin_firebug.jpg http://[server]/LE/Goblin%20Firebug.full.jpg -goblin_firestarter.jpg http://[server]/P2/Goblin%20Firestarter.full.jpg -goblin_flectomancer.jpg http://[server]/GP/Goblin%20Flectomancer.full.jpg -goblin_flotilla.jpg http://[server]/FE/Goblin%20Flotilla.full.jpg -goblin_furrier.jpg http://[server]/CS/Goblin%20Furrier.full.jpg -goblin_game.jpg http://[server]/PS/Goblin%20Game.full.jpg -goblin_gardener.jpg http://[server]/7E/Goblin%20Gardener.full.jpg -goblin_general.jpg http://[server]/ST/Goblin%20General.full.jpg -goblin_glider.jpg http://[server]/8E/Goblin%20Glider.full.jpg -goblin_goon.jpg http://[server]/LE/Goblin%20Goon.full.jpg -goblin_grappler.jpg http://[server]/LE/Goblin%20Grappler.full.jpg -goblin_grenade.jpg http://[server]/AT/Goblin%20Grenade.full.jpg -goblin_grenadiers.jpg http://[server]/WL/Goblin%20Grenadiers.full.jpg -goblin_guide.jpg http://[server]/ZEN/Goblin%20Guide.full.jpg -goblin_hero.jpg http://[server]/6E/Goblin%20Hero.full.jpg -goblin_king.jpg http://[server]/10E/Goblin%20King.full.jpg -goblin_kites.jpg http://[server]/FE/Goblin%20Kites.full.jpg -goblin_lackey.jpg http://[server]/US/Goblin%20Lackey.full.jpg -goblin_legionnaire.jpg http://[server]/AP/Goblin%20Legionnaire.full.jpg -goblin_lookout.jpg http://[server]/LE/Goblin%20Lookout.full.jpg -goblin_lore.jpg http://[server]/10E/Goblin%20Lore.full.jpg -goblin_lyre.jpg http://[server]/IA/Goblin%20Lyre.full.jpg -goblin_machinist.jpg http://[server]/ON/Goblin%20Machinist.full.jpg -goblin_marshal.jpg http://[server]/UD/Goblin%20Marshal.full.jpg -goblin_masons.jpg http://[server]/UD/Goblin%20Masons.full.jpg -goblin_matron.jpg http://[server]/7E/Goblin%20Matron.full.jpg -goblin_medics.jpg http://[server]/UL/Goblin%20Medics.full.jpg -goblin_mime.jpg http://[server]/UNH/Goblin%20Mime.full.jpg -goblin_mountaineer.jpg http://[server]/9E/Goblin%20Mountaineer.full.jpg -goblin_mutant.jpg http://[server]/IA/Goblin%20Mutant.full.jpg -goblin_offensive.jpg http://[server]/US/Goblin%20Offensive.full.jpg -goblin_outlander.jpg http://[server]/CFX/Goblin%20Outlander.full.jpg -goblin_patrol.jpg http://[server]/US/Goblin%20Patrol.full.jpg -goblin_piker.jpg http://[server]/M10/Goblin%20Piker.full.jpg -goblin_piledriver.jpg http://[server]/ON/Goblin%20Piledriver.full.jpg -goblin_psychopath.jpg http://[server]/SC/Goblin%20Psychopath.full.jpg -goblin_pyromancer.jpg http://[server]/ON/Goblin%20Pyromancer.full.jpg -goblin_raider.jpg http://[server]/9E/Goblin%20Raider.full.jpg -goblin_razerunners.jpg http://[server]/CFX/Goblin%20Razerunners.full.jpg -goblin_recruiter.jpg http://[server]/6E/Goblin%20Recruiter.full.jpg -goblin_replica.jpg http://[server]/MR/Goblin%20Replica.full.jpg -goblin_rimerunner.jpg http://[server]/CS/Goblin%20Rimerunner.full.jpg -goblin_ringleader.jpg http://[server]/AP/Goblin%20Ringleader.full.jpg -goblin_rock_sled.jpg http://[server]/DK/Goblin%20Rock%20Sled.full.jpg -goblin_ruinblaster.jpg http://[server]/ZEN/Goblin%20Ruinblaster.full.jpg -goblin_s.w.a.t._team.jpg http://[server]/UNH/Goblin%20S.W.A.T.%20Team.full.jpg -goblin_sappers.jpg http://[server]/IA/Goblin%20Sappers.full.jpg -goblin_scouts.jpg http://[server]/MI/Goblin%20Scouts.full.jpg -goblin_secret_agent.jpg http://[server]/UNH/Goblin%20Secret%20Agent.full.jpg -goblin_settler.jpg http://[server]/ST/Goblin%20Settler.full.jpg -goblin_sharpshooter.jpg http://[server]/ON/Goblin%20Sharpshooter.full.jpg -goblin_shortcutter.jpg http://[server]/ZEN/Goblin%20Shortcutter.full.jpg -goblin_shrine.jpg http://[server]/CH/Goblin%20Shrine.full.jpg -goblin_ski_patrol.jpg http://[server]/IA/Goblin%20Ski%20Patrol.full.jpg -goblin_sky_raider.jpg http://[server]/10E/Goblin%20Sky%20Raider.full.jpg -goblin_skycutter.jpg http://[server]/TSP/Goblin%20Skycutter.full.jpg -goblin_sledder.jpg http://[server]/ON/Goblin%20Sledder.full.jpg -goblin_snowman.jpg http://[server]/IA/Goblin%20Snowman.full.jpg -goblin_soothsayer.jpg http://[server]/MI/Goblin%20Soothsayer.full.jpg -goblin_spelunkers.jpg http://[server]/7E/Goblin%20Spelunkers.full.jpg -goblin_spy.jpg http://[server]/IN/Goblin%20Spy.full.jpg -goblin_striker.jpg http://[server]/MR/Goblin%20Striker.full.jpg -goblin_swine_rider.jpg http://[server]/VI/Goblin%20Swine-Rider.full.jpg -goblin_taskmaster.jpg http://[server]/ON/Goblin%20Taskmaster.full.jpg -goblin_tinkerer.jpg http://[server]/MI/Goblin%20Tinkerer.full.jpg -goblin_trenches.jpg http://[server]/AP/Goblin%20Trenches.full.jpg -goblin_turncoat.jpg http://[server]/LE/Goblin%20Turncoat.full.jpg -goblin_tutor.jpg http://[server]/UG/Goblin%20Tutor.full.jpg -goblin_vandal.jpg http://[server]/AT/Goblin%20Vandal.full.jpg -goblin_war_buggy.jpg http://[server]/US/Goblin%20War%20Buggy.full.jpg -goblin_war_cry.jpg http://[server]/P2/Goblin%20War%20Cry.full.jpg -goblin_war_drums.jpg http://[server]/7E/Goblin%20War%20Drums.full.jpg -goblin_war_paint.jpg http://[server]/ZEN/Goblin%20War%20Paint.full.jpg -goblin_war_strike.jpg http://[server]/SC/Goblin%20War%20Strike.full.jpg -goblin_war_wagon.jpg http://[server]/MR/Goblin%20War%20Wagon.full.jpg -goblin_warchief.jpg http://[server]/SC/Goblin%20Warchief.full.jpg -goblin_warrens.jpg http://[server]/6E/Goblin%20Warrens.full.jpg -goblin_welder.jpg http://[server]/UL/Goblin%20Welder.full.jpg -goblin_wizard.jpg http://[server]/DK/Goblin%20Wizard.full.jpg -goblins_of_the_flarg.jpg http://[server]/DK/Goblins%20of%20the%20Flarg.full.jpg -godhead_of_awe.jpg http://[server]/SHM/Godhead%20of%20Awe.full.jpg -godless_shrine.jpg http://[server]/GP/Godless%20Shrine.full.jpg -godo_bandit_warlord.jpg http://[server]/CHK/Godo,%20Bandit%20Warlord.full.jpg -godos_irregulars.jpg http://[server]/SOK/Godo's%20Irregulars.full.jpg -gods_eye_gate_to_the_reikai.jpg http://[server]/BOK/Gods'%20Eye,%20Gate%20to%20the%20Reikai.full.jpg -godsire.jpg http://[server]/ALA/Godsire.full.jpg -godtoucher.jpg http://[server]/ALA/Godtoucher.full.jpg -godtracker_of_jund.jpg http://[server]/ARB/Godtracker%20of%20Jund.full.jpg -goham_djinn.jpg http://[server]/IN/Goham%20Djinn.full.jpg -gold_myr.jpg http://[server]/MR/Gold%20Myr.full.jpg -golden_bear.jpg http://[server]/P2/Golden%20Bear.full.jpg -golden_wish.jpg http://[server]/JU/Golden%20Wish.full.jpg -goldenglow_moth.jpg http://[server]/SHM/Goldenglow%20Moth.full.jpg -goldmeadow_dodger.jpg http://[server]/LRW/Goldmeadow%20Dodger.full.jpg -goldmeadow_harrier.jpg http://[server]/LRW/Goldmeadow%20Harrier.full.jpg -goldmeadow_lookout.jpg http://[server]/FUT/Goldmeadow%20Lookout.full.jpg -goldmeadow_stalwart.jpg http://[server]/LRW/Goldmeadow%20Stalwart.full.jpg -golem_skin_gauntlets.jpg http://[server]/MR/Golem-Skin%20Gauntlets.full.jpg -golgari_brownscale.jpg http://[server]/RAV/Golgari%20Brownscale.full.jpg -golgari_germination.jpg http://[server]/RAV/Golgari%20Germination.full.jpg -golgari_grave_troll.jpg http://[server]/RAV/Golgari%20Grave-Troll.full.jpg -golgari_guildmage.jpg http://[server]/RAV/Golgari%20Guildmage.full.jpg -golgari_rot_farm.jpg http://[server]/RAV/Golgari%20Rot%20Farm.full.jpg -golgari_rotwurm.jpg http://[server]/RAV/Golgari%20Rotwurm.full.jpg -golgari_signet.jpg http://[server]/RAV/Golgari%20Signet.full.jpg -golgari_thug.jpg http://[server]/RAV/Golgari%20Thug.full.jpg -golgothian_sylex.jpg http://[server]/AQ/Golgothian%20Sylex.full.jpg -goliath_beetle.jpg http://[server]/UD/Goliath%20Beetle.full.jpg -goliath_spider.jpg http://[server]/RAV/Goliath%20Spider.full.jpg -gomazoa.jpg http://[server]/ZEN/Gomazoa.full.jpg -goretusk_firebeast.jpg http://[server]/JU/Goretusk%20Firebeast.full.jpg -gorger_wurm.jpg http://[server]/ARB/Gorger%20Wurm.full.jpg -gorgon_flail.jpg http://[server]/M10/Gorgon%20Flail.full.jpg -gorgon_recluse.jpg http://[server]/TSP/Gorgon%20Recluse.full.jpg -gorilla_berserkers.jpg http://[server]/AL/Gorilla%20Berserkers1.full.jpg -gorilla_chieftain.jpg http://[server]/7E/Gorilla%20Chieftain.full.jpg -gorilla_pack.jpg http://[server]/IA/Gorilla%20Pack.full.jpg -gorilla_shaman.jpg http://[server]/CST/Gorilla%20Shaman.full.jpg -gorilla_titan.jpg http://[server]/OD/Gorilla%20Titan.full.jpg -gorilla_war_cry.jpg http://[server]/AL/Gorilla%20War%20Cry1.full.jpg -gorilla_warrior.jpg http://[server]/US/Gorilla%20Warrior.full.jpg -goryos_vengeance.jpg http://[server]/BOK/Goryo's%20Vengeance.full.jpg -gossamer_chains.jpg http://[server]/VI/Gossamer%20Chains.full.jpg -gossamer_phantasm.jpg http://[server]/PLC/Gossamer%20Phantasm.full.jpg -gosta_dirk.jpg http://[server]/LG/Gosta%20Dirk.full.jpg -govern_the_guildless.jpg http://[server]/DIS/Govern%20the%20Guildless.full.jpg -grab_the_reins.jpg http://[server]/MR/Grab%20the%20Reins.full.jpg -graceful_adept.jpg http://[server]/CHK/Graceful%20Adept.full.jpg -graceful_antelope.jpg http://[server]/OD/Graceful%20Antelope.full.jpg -graceful_reprieve.jpg http://[server]/MOR/Graceful%20Reprieve.full.jpg -grafted_skullcap.jpg http://[server]/7E/Grafted%20Skullcap.full.jpg -grafted_wargear.jpg http://[server]/FD/Grafted%20Wargear.full.jpg -grand_arbiter_augustin_iv.jpg http://[server]/DIS/Grand%20Arbiter%20Augustin%20IV.full.jpg -grand_coliseum.jpg http://[server]/ON/Grand%20Coliseum.full.jpg -grand_melee.jpg http://[server]/ON/Grand%20Melee.full.jpg -grandmother_sengir.jpg http://[server]/HL/Grandmother%20Sengir.full.jpg -granger_guildmage.jpg http://[server]/MI/Granger%20Guildmage.full.jpg -granite_gargoyle.jpg http://[server]/U/Granite%20Gargoyle.full.jpg -granite_grip.jpg http://[server]/7E/Granite%20Grip.full.jpg -granite_shard.jpg http://[server]/MR/Granite%20Shard.full.jpg -grannys_payback.jpg http://[server]/UNH/Granny's%20Payback.full.jpg -granulate.jpg http://[server]/FD/Granulate.full.jpg -grapeshot.jpg http://[server]/TSP/Grapeshot.full.jpg -grapeshot_catapult.jpg http://[server]/7E/Grapeshot%20Catapult.full.jpg -graphic_violence.jpg http://[server]/UNH/Graphic%20Violence.full.jpg -grappling_hook.jpg http://[server]/ZEN/Grappling%20Hook.full.jpg -grassland_crusader.jpg http://[server]/ON/Grassland%20Crusader.full.jpg -grasslands.jpg http://[server]/MI/Grasslands.full.jpg -gratuitous_violence.jpg http://[server]/ON/Gratuitous%20Violence.full.jpg -grave_consequences.jpg http://[server]/JU/Grave%20Consequences.full.jpg -grave_defiler.jpg http://[server]/AP/Grave%20Defiler.full.jpg -grave_pact.jpg http://[server]/10E/Grave%20Pact.full.jpg -grave_peril.jpg http://[server]/FUT/Grave%20Peril.full.jpg -grave_robbers.jpg http://[server]/DK/Grave%20Robbers.full.jpg -grave_scrabbler.jpg http://[server]/FUT/Grave%20Scrabbler.full.jpg -grave_servitude.jpg http://[server]/MI/Grave%20Servitude.full.jpg -grave_shell_scarab.jpg http://[server]/RAV/Grave-Shell%20Scarab.full.jpg -gravebane_zombie.jpg http://[server]/MI/Gravebane%20Zombie.full.jpg -gravebind.jpg http://[server]/IA/Gravebind.full.jpg -graveborn_muse.jpg http://[server]/10E/Graveborn%20Muse.full.jpg -gravedigger.jpg http://[server]/M10/Gravedigger.full.jpg -gravegouger.jpg http://[server]/TO/Gravegouger.full.jpg -gravel_slinger.jpg http://[server]/ON/Gravel%20Slinger.full.jpg -gravelgill_axeshark.jpg http://[server]/SHM/Gravelgill%20Axeshark.full.jpg -gravelgill_duo.jpg http://[server]/SHM/Gravelgill%20Duo.full.jpg -graven_cairns.jpg http://[server]/FUT/Graven%20Cairns.full.jpg -graven_dominator.jpg http://[server]/GP/Graven%20Dominator.full.jpg -gravespawn_sovereign.jpg http://[server]/ON/Gravespawn%20Sovereign.full.jpg -gravestorm.jpg http://[server]/OD/Gravestorm.full.jpg -gravity_sphere.jpg http://[server]/LG/Gravity%20Sphere.full.jpg -graxiplon.jpg http://[server]/ON/Graxiplon.full.jpg -gray_ogre.jpg http://[server]/4E/Gray%20Ogre.full.jpg -graypelt_refuge.jpg http://[server]/ZEN/Graypelt%20Refuge.full.jpg -grayscaled_gharial.jpg http://[server]/RAV/Grayscaled%20Gharial.full.jpg -grazing_gladehart.jpg http://[server]/ZEN/Grazing%20Gladehart.full.jpg -grazing_kelpie.jpg http://[server]/EVE/Grazing%20Kelpie.full.jpg -great_defender.jpg http://[server]/LG/Great%20Defender.full.jpg -great_furnace.jpg http://[server]/MR/Great%20Furnace.full.jpg -great_sable_stag.jpg http://[server]/M10/Great%20Sable%20Stag.full.jpg -great_wall.jpg http://[server]/LG/Great%20Wall.full.jpg -great_whale.jpg http://[server]/US/Great%20Whale.full.jpg -greatbow_doyen.jpg http://[server]/MOR/Greatbow%20Doyen.full.jpg -greater_auramancy.jpg http://[server]/SHM/Greater%20Auramancy.full.jpg -greater_forgeling.jpg http://[server]/RAV/Greater%20Forgeling.full.jpg -greater_gargadon.jpg http://[server]/TSP/Greater%20Gargadon.full.jpg -greater_good.jpg http://[server]/9E/Greater%20Good.full.jpg -greater_harvester.jpg http://[server]/DS/Greater%20Harvester.full.jpg -greater_morphling.jpg http://[server]/UNH/Greater%20Morphling.full.jpg -greater_mossdog.jpg http://[server]/RAV/Greater%20Mossdog.full.jpg -greater_realm_of_preservation.jpg http://[server]/LG/Greater%20Realm%20of%20Preservation.full.jpg -greater_stone_spirit.jpg http://[server]/CS/Greater%20Stone%20Spirit.full.jpg -greater_werewolf.jpg http://[server]/HL/Greater%20Werewolf.full.jpg -greed.jpg http://[server]/7E/Greed.full.jpg -greel_mind_raker.jpg http://[server]/PY/Greel,%20Mind%20Raker.full.jpg -greels_caress.jpg http://[server]/PY/Greel's%20Caress.full.jpg -green_mana_battery.jpg http://[server]/LG/Green%20Mana%20Battery.full.jpg -green_scarab.jpg http://[server]/IA/Green%20Scarab.full.jpg -green_ward.jpg http://[server]/4E/Green%20Ward.full.jpg -greener_pastures.jpg http://[server]/US/Greener%20Pastures.full.jpg -greenseeker.jpg http://[server]/TSP/Greenseeker.full.jpg -greenweaver_druid.jpg http://[server]/ZEN/Greenweaver%20Druid.full.jpg -greven_il_vec.jpg http://[server]/VG/Greven%20il-Vec.full.jpg -grid_monitor.jpg http://[server]/MR/Grid%20Monitor.full.jpg -grief_tyrant.jpg http://[server]/SHM/Grief%20Tyrant.full.jpg -griffin_canyon.jpg http://[server]/VI/Griffin%20Canyon.full.jpg -griffin_guide.jpg http://[server]/TSP/Griffin%20Guide.full.jpg -griffin_sentinel.jpg http://[server]/M10/Griffin%20Sentinel.full.jpg -grifters_blade.jpg http://[server]/RAV/Grifter's%20Blade.full.jpg -grim_discovery.jpg http://[server]/ZEN/Grim%20Discovery.full.jpg -grim_feast.jpg http://[server]/MI/Grim%20Feast.full.jpg -grim_harvest.jpg http://[server]/CS/Grim%20Harvest.full.jpg -grim_lavamancer.jpg http://[server]/TO/Grim%20Lavamancer.full.jpg -grim_monolith.jpg http://[server]/UL/Grim%20Monolith.full.jpg -grim_poppet.jpg http://[server]/SHM/Grim%20Poppet.full.jpg -grim_reminder.jpg http://[server]/MR/Grim%20Reminder.full.jpg -grim_tutor.jpg http://[server]/ST/Grim%20Tutor.full.jpg -grimclaw_bats.jpg http://[server]/DS/Grimclaw%20Bats.full.jpg -grimoire_thief.jpg http://[server]/MOR/Grimoire%20Thief.full.jpg -grinding_station.jpg http://[server]/FD/Grinding%20Station.full.jpg -grindstone.jpg http://[server]/TE/Grindstone.full.jpg -grinning_demon.jpg http://[server]/ON/Grinning%20Demon.full.jpg -grinning_ignus.jpg http://[server]/FUT/Grinning%20Ignus.full.jpg -grinning_totem.jpg http://[server]/6E/Grinning%20Totem.full.jpg -grip_of_amnesia.jpg http://[server]/JU/Grip%20of%20Amnesia.full.jpg -grip_of_chaos.jpg http://[server]/SC/Grip%20of%20Chaos.full.jpg -gristle_grinner.jpg http://[server]/CS/Gristle%20Grinner.full.jpg -gristleback.jpg http://[server]/GP/Gristleback.full.jpg -grixis_battlemage.jpg http://[server]/ALA/Grixis%20Battlemage.full.jpg -grixis_charm.jpg http://[server]/ALA/Grixis%20Charm.full.jpg -grixis_grimblade.jpg http://[server]/ARB/Grixis%20Grimblade.full.jpg -grixis_illusionist.jpg http://[server]/CFX/Grixis%20Illusionist.full.jpg -grixis_panorama.jpg http://[server]/ALA/Grixis%20Panorama.full.jpg -grixis_slavedriver.jpg http://[server]/CFX/Grixis%20Slavedriver.full.jpg -grixis_sojourners.jpg http://[server]/ARB/Grixis%20Sojourners.full.jpg -grizzled_leotau.jpg http://[server]/ARB/Grizzled%20Leotau.full.jpg -grizzled_wolverine.jpg http://[server]/IA/Grizzled%20Wolverine.full.jpg -grizzly_bears.jpg http://[server]/10E/Grizzly%20Bears.full.jpg -grizzly_fate.jpg http://[server]/JU/Grizzly%20Fate.full.jpg -groffskithur.jpg http://[server]/MR/Groffskithur.full.jpg -grollub.jpg http://[server]/EX/Grollub.full.jpg -grotesque_hybrid.jpg http://[server]/TO/Grotesque%20Hybrid.full.jpg -ground_rift.jpg http://[server]/TSP/Ground%20Rift.full.jpg -ground_seal.jpg http://[server]/OD/Ground%20Seal.full.jpg -groundbreaker.jpg http://[server]/PLC/Groundbreaker.full.jpg -groundling_pouncer.jpg http://[server]/EVE/Groundling%20Pouncer.full.jpg -groundskeeper.jpg http://[server]/9E/Groundskeeper.full.jpg -grove_of_the_burnwillows.jpg http://[server]/FUT/Grove%20of%20the%20Burnwillows.full.jpg -growth_spurt.jpg http://[server]/UG/Growth%20Spurt.full.jpg -grozoth.jpg http://[server]/RAV/Grozoth.full.jpg -gruul_guildmage.jpg http://[server]/GP/Gruul%20Guildmage.full.jpg -gruul_nodorog.jpg http://[server]/GP/Gruul%20Nodorog.full.jpg -gruul_scrapper.jpg http://[server]/GP/Gruul%20Scrapper.full.jpg -gruul_signet.jpg http://[server]/GP/Gruul%20Signet.full.jpg -gruul_turf.jpg http://[server]/GP/Gruul%20Turf.full.jpg -gruul_war_plow.jpg http://[server]/GP/Gruul%20War%20Plow.full.jpg -guan_yu_sainted_warrior.jpg http://[server]/P3/Guan%20Yu,%20Sainted%20Warrior.full.jpg -guan_yus_1000_li_march.jpg http://[server]/P3/Guan%20Yu's%201,000-Li%20March.full.jpg -guard_dogs.jpg http://[server]/PS/Guard%20Dogs.full.jpg -guardian_angel.jpg http://[server]/U/Guardian%20Angel.full.jpg -guardian_beast.jpg http://[server]/AN/Guardian%20Beast.full.jpg -guardian_idol.jpg http://[server]/FD/Guardian%20Idol.full.jpg -guardian_of_cloverdell.jpg http://[server]/LRW/Guardian%20of%20Cloverdell.full.jpg -guardian_of_solitude.jpg http://[server]/CHK/Guardian%20of%20Solitude.full.jpg -guardian_of_the_guildpact.jpg http://[server]/DIS/Guardian%20of%20the%20Guildpact.full.jpg -guardian_of_vitu_ghazi.jpg http://[server]/RAV/Guardian%20of%20Vitu-Ghazi.full.jpg -guardian_seraph.jpg http://[server]/M10/Guardian%20Seraph.full.jpg -guardians_magemark.jpg http://[server]/GP/Guardian's%20Magemark.full.jpg -guardians_of_akrasa.jpg http://[server]/ALA/Guardians%20of%20Akrasa.full.jpg -guerrilla_tactics.jpg http://[server]/10E/Guerrilla%20Tactics.full.jpg -guided_passage.jpg http://[server]/AP/Guided%20Passage.full.jpg -guided_strike.jpg http://[server]/JU/Guided%20Strike.full.jpg -guiding_spirit.jpg http://[server]/VI/Guiding%20Spirit.full.jpg -guile.jpg http://[server]/LRW/Guile.full.jpg -guiltfeeder.jpg http://[server]/JU/Guiltfeeder.full.jpg -guilty_conscience.jpg http://[server]/SC/Guilty%20Conscience.full.jpg -gulf_squid.jpg http://[server]/PY/Gulf%20Squid.full.jpg -guma.jpg http://[server]/US/Guma.full.jpg -gurzigost.jpg http://[server]/TO/Gurzigost.full.jpg -gus.jpg http://[server]/UG/Gus.full.jpg -gush.jpg http://[server]/MM/Gush.full.jpg -gustcloak_cavalier.jpg http://[server]/TSP/Gustcloak%20Cavalier.full.jpg -gustcloak_harrier.jpg http://[server]/ON/Gustcloak%20Harrier.full.jpg -gustcloak_runner.jpg http://[server]/ON/Gustcloak%20Runner.full.jpg -gustcloak_savior.jpg http://[server]/ON/Gustcloak%20Savior.full.jpg -gustcloak_sentinel.jpg http://[server]/ON/Gustcloak%20Sentinel.full.jpg -gustcloak_skirmisher.jpg http://[server]/ON/Gustcloak%20Skirmisher.full.jpg -gusthas_scepter.jpg http://[server]/AL/Gustha's%20Scepter.full.jpg -gustrider_exuberant.jpg http://[server]/ALA/Gustrider%20Exuberant.full.jpg -gutless_ghoul.jpg http://[server]/CS/Gutless%20Ghoul.full.jpg -guttural_response.jpg http://[server]/SHM/Guttural%20Response.full.jpg -gutwrencher_oni.jpg http://[server]/CHK/Gutwrencher%20Oni.full.jpg -guul_draz_specter.jpg http://[server]/ZEN/Guul%20Draz%20Specter.full.jpg -guul_draz_vampire.jpg http://[server]/ZEN/Guul%20Draz%20Vampire.full.jpg -gwafa_hazid_profiteer.jpg http://[server]/CFX/Gwafa%20Hazid,%20Profiteer.full.jpg -gwendlyn_di_corci.jpg http://[server]/LG/Gwendlyn%20Di%20Corci.full.jpg -gwyllion_hedge_mage.jpg http://[server]/EVE/Gwyllion%20Hedge-Mage.full.jpg \ No newline at end of file diff --git a/res/pics_link/card-pictures_h.txt b/res/pics_link/card-pictures_h.txt deleted file mode 100644 index 4ec150c502e..00000000000 --- a/res/pics_link/card-pictures_h.txt +++ /dev/null @@ -1,363 +0,0 @@ -haakon_stromgald_scourge.jpg http://[server]/CS/Haakon,%20Stromgald%20Scourge.full.jpg -haazda_exonerator.jpg http://[server]/DIS/Haazda%20Exonerator.full.jpg -haazda_shield_mate.jpg http://[server]/DIS/Haazda%20Shield%20Mate.full.jpg -hag_hedge_mage.jpg http://[server]/EVE/Hag%20Hedge-Mage.full.jpg -hagra_crocodile.jpg http://[server]/ZEN/Hagra%20Crocodile.full.jpg -hagra_diabolist.jpg http://[server]/ZEN/Hagra%20Diabolist.full.jpg -hail_of_arrows.jpg http://[server]/10E/Hail%20of%20Arrows.full.jpg -hail_storm.jpg http://[server]/AL/Hail%20Storm.full.jpg -hair_strung_koto.jpg http://[server]/CHK/Hair-Strung%20Koto.full.jpg -hakim_loreweaver.jpg http://[server]/MI/Hakim,%20Loreweaver.full.jpg -halam_djinn.jpg http://[server]/IN/Halam%20Djinn.full.jpg -halberdier.jpg http://[server]/OD/Halberdier.full.jpg -halcyon_glaze.jpg http://[server]/RAV/Halcyon%20Glaze.full.jpg -halfdane.jpg http://[server]/LG/Halfdane.full.jpg -hall_of_gemstone.jpg http://[server]/MI/Hall%20of%20Gemstone.full.jpg -hall_of_the_bandit_lord.jpg http://[server]/CHK/Hall%20of%20the%20Bandit%20Lord.full.jpg -hallow.jpg http://[server]/DS/Hallow.full.jpg -hallowed_burial.jpg http://[server]/EVE/Hallowed%20Burial.full.jpg -hallowed_fountain.jpg http://[server]/DIS/Hallowed%20Fountain.full.jpg -hallowed_ground.jpg http://[server]/IA/Hallowed%20Ground.full.jpg -hallowed_healer.jpg http://[server]/OD/Hallowed%20Healer.full.jpg -halls_of_mist.jpg http://[server]/IA/Halls%20of%20Mist.full.jpg -halo_hunter.jpg http://[server]/ZEN/Halo%20Hunter.full.jpg -hamletback_goliath.jpg http://[server]/LRW/Hamletback%20Goliath.full.jpg -hammer_mage.jpg http://[server]/MM/Hammer%20Mage.full.jpg -hammer_of_bogardan.jpg http://[server]/8E/Hammer%20of%20Bogardan.full.jpg -hammerfist_giant.jpg http://[server]/RAV/Hammerfist%20Giant.full.jpg -hammerhead_shark.jpg http://[server]/SH/Hammerhead%20Shark.full.jpg -hammerheim.jpg http://[server]/LG/Hammerheim.full.jpg -hammerheim_deadeye.jpg http://[server]/PLC/Hammerheim%20Deadeye.full.jpg -hana_kami.jpg http://[server]/CHK/Hana%20Kami.full.jpg -hanabi_blast.jpg http://[server]/CHK/Hanabi%20Blast.full.jpg -hand_of_cruelty.jpg http://[server]/SOK/Hand%20of%20Cruelty.full.jpg -hand_of_death.jpg http://[server]/ST/Hand%20of%20Death.full.jpg -hand_of_honor.jpg http://[server]/SOK/Hand%20of%20Honor.full.jpg -hand_of_justice.jpg http://[server]/FE/Hand%20of%20Justice.full.jpg -hand_to_hand.jpg http://[server]/TE/Hand%20to%20Hand.full.jpg -handcuffs.jpg http://[server]/UG/Handcuffs.full.jpg -hankyu.jpg http://[server]/CHK/Hankyu.full.jpg -hanna.jpg http://[server]/VG/Hanna.full.jpg -hanna_ships_navigator.jpg http://[server]/IN/Hanna,%20Ship's%20Navigator.full.jpg -hannas_custody.jpg http://[server]/TE/Hanna's%20Custody.full.jpg -hapless_researcher.jpg http://[server]/JU/Hapless%20Researcher.full.jpg -harbinger_of_night.jpg http://[server]/MI/Harbinger%20of%20Night.full.jpg -harbinger_of_spring.jpg http://[server]/BOK/Harbinger%20of%20Spring.full.jpg -harbor_guardian.jpg http://[server]/MI/Harbor%20Guardian.full.jpg -harmattan_efreet.jpg http://[server]/MI/Harmattan%20Efreet.full.jpg -harmonic_convergence.jpg http://[server]/UL/Harmonic%20Convergence.full.jpg -harmonic_sliver.jpg http://[server]/TSP/Harmonic%20Sliver.full.jpg -harmonize.jpg http://[server]/PLC/Harmonize.full.jpg -harmony_of_nature.jpg http://[server]/P2/Harmony%20of%20Nature.full.jpg -harms_way.jpg http://[server]/M10/Harm's%20Way.full.jpg -harpoon_sniper.jpg http://[server]/LRW/Harpoon%20Sniper.full.jpg -harrier_griffin.jpg http://[server]/GP/Harrier%20Griffin.full.jpg -harrow.jpg http://[server]/IN/Harrow.full.jpg -harsh_deceiver.jpg http://[server]/CHK/Harsh%20Deceiver.full.jpg -harsh_judgment.jpg http://[server]/IN/Harsh%20Judgment.full.jpg -harsh_justice.jpg http://[server]/PT/Harsh%20Justice.full.jpg -harsh_mercy.jpg http://[server]/ON/Harsh%20Mercy.full.jpg -haru_onna.jpg http://[server]/SOK/Haru-Onna.full.jpg -harvest_gwyllion.jpg http://[server]/EVE/Harvest%20Gwyllion.full.jpg -harvest_mage.jpg http://[server]/NE/Harvest%20Mage.full.jpg -harvest_wurm.jpg http://[server]/WL/Harvest%20Wurm.full.jpg -harvester_druid.jpg http://[server]/JU/Harvester%20Druid.full.jpg -hasran_ogress.jpg http://[server]/CH/Hasran%20Ogress.full.jpg -hatchet_bully.jpg http://[server]/EVE/Hatchet%20Bully.full.jpg -hatching_plans.jpg http://[server]/GP/Hatching%20Plans.full.jpg -hate_weaver.jpg http://[server]/10E/Hate%20Weaver.full.jpg -hateflayer.jpg http://[server]/EVE/Hateflayer.full.jpg -hatred.jpg http://[server]/EX/Hatred.full.jpg -haunted_angel.jpg http://[server]/AP/Haunted%20Angel.full.jpg -haunted_cadaver.jpg http://[server]/ON/Haunted%20Cadaver.full.jpg -haunted_crossroads.jpg http://[server]/MM/Haunted%20Crossroads.full.jpg -haunting_apparition.jpg http://[server]/MI/Haunting%20Apparition.full.jpg -haunting_echoes.jpg http://[server]/M10/Haunting%20Echoes.full.jpg -haunting_hymn.jpg http://[server]/TSP/Haunting%20Hymn.full.jpg -haunting_misery.jpg http://[server]/WL/Haunting%20Misery.full.jpg -haunting_wind.jpg http://[server]/AQ/Haunting%20Wind.full.jpg -havenwood_battleground.jpg http://[server]/6E/Havenwood%20Battleground.full.jpg -havenwood_wurm.jpg http://[server]/TSP/Havenwood%20Wurm.full.jpg -havoc.jpg http://[server]/TE/Havoc.full.jpg -havoc_demon.jpg http://[server]/LE/Havoc%20Demon.full.jpg -hawkeater_moth.jpg http://[server]/US/Hawkeater%20Moth.full.jpg -hazduhr_the_abbot.jpg http://[server]/HL/Hazduhr%20the%20Abbot.full.jpg -haze_of_rage.jpg http://[server]/FUT/Haze%20of%20Rage.full.jpg -hazerider_drake.jpg http://[server]/MI/Hazerider%20Drake.full.jpg -hazezon_tamar.jpg http://[server]/LG/Hazezon%20Tamar.full.jpg -hazy_homunculus.jpg http://[server]/PY/Hazy%20Homunculus.full.jpg -he_who_hungers.jpg http://[server]/CHK/He%20Who%20Hungers.full.jpg -head_games.jpg http://[server]/10E/Head%20Games.full.jpg -head_to_head.jpg http://[server]/UNH/Head%20to%20Head.full.jpg -headhunter.jpg http://[server]/ON/Headhunter.full.jpg -headless_horseman.jpg http://[server]/LG/Headless%20Horseman.full.jpg -headlong_rush.jpg http://[server]/US/Headlong%20Rush.full.jpg -headstone.jpg http://[server]/HL/Headstone.full.jpg -heal.jpg http://[server]/IA/Heal.full.jpg -heal_the_scars.jpg http://[server]/LRW/Heal%20the%20Scars.full.jpg -healers_headdress.jpg http://[server]/FD/Healer's%20Headdress.full.jpg -healing_leaves.jpg http://[server]/PLC/Healing%20Leaves.full.jpg -healing_salve.jpg http://[server]/8E/Healing%20Salve.full.jpg -heap_doll.jpg http://[server]/SHM/Heap%20Doll.full.jpg -heart_of_bogardan.jpg http://[server]/WL/Heart%20of%20Bogardan.full.jpg -heart_of_light.jpg http://[server]/10E/Heart%20of%20Light.full.jpg -heart_of_ramos.jpg http://[server]/MM/Heart%20of%20Ramos.full.jpg -heart_of_yavimaya.jpg http://[server]/AL/Heart%20of%20Yavimaya.full.jpg -heart_sliver.jpg http://[server]/TE/Heart%20Sliver.full.jpg -heart_warden.jpg http://[server]/UD/Heart%20Warden.full.jpg -heart_wolf.jpg http://[server]/HL/Heart%20Wolf.full.jpg -heartbeat_of_spring.jpg http://[server]/CHK/Heartbeat%20of%20Spring.full.jpg -hearth_charm.jpg http://[server]/VI/Hearth%20Charm.full.jpg -hearth_kami.jpg http://[server]/CHK/Hearth%20Kami.full.jpg -hearthcage_giant.jpg http://[server]/LRW/Hearthcage%20Giant.full.jpg -hearthfire_hobgoblin.jpg http://[server]/EVE/Hearthfire%20Hobgoblin.full.jpg -heartlash_cinder.jpg http://[server]/EVE/Heartlash%20Cinder.full.jpg -heartless_hidetsugu.jpg http://[server]/BOK/Heartless%20Hidetsugu.full.jpg -heartmender.jpg http://[server]/SHM/Heartmender.full.jpg -heartseeker.jpg http://[server]/DS/Heartseeker.full.jpg -heartstabber_mosquito.jpg http://[server]/ZEN/Heartstabber%20Mosquito.full.jpg -heartstone.jpg http://[server]/SH/Heartstone.full.jpg -heartwood_dryad.jpg http://[server]/TE/Heartwood%20Dryad.full.jpg -heartwood_giant.jpg http://[server]/TE/Heartwood%20Giant.full.jpg -heartwood_shard.jpg http://[server]/MR/Heartwood%20Shard.full.jpg -heartwood_storyteller.jpg http://[server]/FUT/Heartwood%20Storyteller.full.jpg -heartwood_treefolk.jpg http://[server]/TE/Heartwood%20Treefolk.full.jpg -heat_of_battle.jpg http://[server]/SH/Heat%20of%20Battle.full.jpg -heat_ray.jpg http://[server]/US/Heat%20Ray.full.jpg -heat_shimmer.jpg http://[server]/LRW/Heat%20Shimmer.full.jpg -heat_stroke.jpg http://[server]/WL/Heat%20Stroke.full.jpg -heat_wave.jpg http://[server]/VI/Heat%20Wave.full.jpg -heavens_gate.jpg http://[server]/LG/Heaven's%20Gate.full.jpg -heavy_ballista.jpg http://[server]/7E/Heavy%20Ballista.full.jpg -heavy_fog.jpg http://[server]/P3/Heavy%20Fog.full.jpg -hecatomb.jpg http://[server]/6E/Hecatomb.full.jpg -hedge_troll.jpg http://[server]/REL/Hedge%20Troll.full.jpg -hedron_crab.jpg http://[server]/ZEN/Hedron%20Crab.full.jpg -hedron_scrabbler.jpg http://[server]/ZEN/Hedron%20Scrabbler.full.jpg -heed_the_mists.jpg http://[server]/BOK/Heed%20the%20Mists.full.jpg -heedless_one.jpg http://[server]/ON/Heedless%20One.full.jpg -heidar_rimewind_master.jpg http://[server]/CS/Heidar,%20Rimewind%20Master.full.jpg -heightened_awareness.jpg http://[server]/PY/Heightened%20Awareness.full.jpg -helionaut.jpg http://[server]/AP/Helionaut.full.jpg -heliophial.jpg http://[server]/FD/Heliophial.full.jpg -helium_squirter.jpg http://[server]/DIS/Helium%20Squirter.full.jpg -helix_pinnacle.jpg http://[server]/EVE/Helix%20Pinnacle.full.jpg -hell_bent_raider.jpg http://[server]/TO/Hell-Bent%20Raider.full.jpg -hell_swarm.jpg http://[server]/LG/Hell%20Swarm.full.jpg -helldozer.jpg http://[server]/RAV/Helldozer.full.jpg -hellfire.jpg http://[server]/LG/Hellfire.full.jpg -hellfire_mongrel.jpg http://[server]/ZEN/Hellfire%20Mongrel.full.jpg -hellhole_rats.jpg http://[server]/DIS/Hellhole%20Rats.full.jpg -hellkite_charger.jpg http://[server]/ZEN/Hellkite%20Charger.full.jpg -hellkite_hatchling.jpg http://[server]/CFX/Hellkite%20Hatchling.full.jpg -hellkite_overlord.jpg http://[server]/ALA/Hellkite%20Overlord.full.jpg -hells_caretaker.jpg http://[server]/9E/Hell's%20Caretaker.full.jpg -hells_thunder.jpg http://[server]/ALA/Hell's%20Thunder.full.jpg -hellspark_elemental.jpg http://[server]/CFX/Hellspark%20Elemental.full.jpg -helm_of_awakening.jpg http://[server]/VI/Helm%20of%20Awakening.full.jpg -helm_of_chatzuk.jpg http://[server]/5E/Helm%20of%20Chatzuk.full.jpg -helm_of_kaldra.jpg http://[server]/FD/Helm%20of%20Kaldra.full.jpg -helm_of_obedience.jpg http://[server]/AL/Helm%20of%20Obedience.full.jpg -helm_of_possession.jpg http://[server]/TE/Helm%20of%20Possession.full.jpg -helm_of_the_ghastlord.jpg http://[server]/SHM/Helm%20of%20the%20Ghastlord.full.jpg -hematite_golem.jpg http://[server]/MR/Hematite%20Golem.full.jpg -hematite_talisman.jpg http://[server]/IA/Hematite%20Talisman.full.jpg -henchfiend_of_ukor.jpg http://[server]/FUT/Henchfiend%20of%20Ukor.full.jpg -henge_guardian.jpg http://[server]/MM/Henge%20Guardian.full.jpg -henge_of_ramos.jpg http://[server]/MM/Henge%20of%20Ramos.full.jpg -herald_of_leshrac.jpg http://[server]/CS/Herald%20of%20Leshrac.full.jpg -herald_of_serra.jpg http://[server]/US/Herald%20of%20Serra.full.jpg -herbal_poultice.jpg http://[server]/LRW/Herbal%20Poultice.full.jpg -herd_gnarr.jpg http://[server]/TSP/Herd%20Gnarr.full.jpg -heritage_druid.jpg http://[server]/MOR/Heritage%20Druid.full.jpg -hermetic_study.jpg http://[server]/US/Hermetic%20Study.full.jpg -hermit_druid.jpg http://[server]/SH/Hermit%20Druid.full.jpg -heroes_remembered.jpg http://[server]/PLC/Heroes%20Remembered.full.jpg -heroes_reunion.jpg http://[server]/IN/Heroes'%20Reunion.full.jpg -heroic_defiance.jpg http://[server]/PS/Heroic%20Defiance.full.jpg -heroism.jpg http://[server]/FE/Heroism.full.jpg -heros_demise.jpg http://[server]/BOK/Hero's%20Demise.full.jpg -heros_resolve.jpg http://[server]/6E/Hero's%20Resolve.full.jpg -hesitation.jpg http://[server]/SH/Hesitation.full.jpg -hex.jpg http://[server]/RAV/Hex.full.jpg -hibernation.jpg http://[server]/8E/Hibernation.full.jpg -hibernation_sliver.jpg http://[server]/SH/Hibernation%20Sliver.full.jpg -hibernations_end.jpg http://[server]/CS/Hibernation's%20End.full.jpg -hickory_woodlot.jpg http://[server]/MM/Hickory%20Woodlot.full.jpg -hidden_ancients.jpg http://[server]/US/Hidden%20Ancients.full.jpg -hidden_gibbons.jpg http://[server]/UL/Hidden%20Gibbons.full.jpg -hidden_guerrillas.jpg http://[server]/US/Hidden%20Guerrillas.full.jpg -hidden_herd.jpg http://[server]/US/Hidden%20Herd.full.jpg -hidden_horror.jpg http://[server]/10E/Hidden%20Horror.full.jpg -hidden_path.jpg http://[server]/DK/Hidden%20Path.full.jpg -hidden_predators.jpg http://[server]/US/Hidden%20Predators.full.jpg -hidden_retreat.jpg http://[server]/SH/Hidden%20Retreat.full.jpg -hidden_spider.jpg http://[server]/US/Hidden%20Spider.full.jpg -hidden_stag.jpg http://[server]/US/Hidden%20Stag.full.jpg -hideous_end.jpg http://[server]/HOP/Hideous%20End.full.jpg -hideous_laughter.jpg http://[server]/CHK/Hideous%20Laughter.full.jpg -hideseek.jpg http://[server]/DIS/HideSeek.full.jpg -hidetsugus_second_rite.jpg http://[server]/SOK/Hidetsugu's%20Second%20Rite.full.jpg -high_ground.jpg http://[server]/10E/High%20Ground.full.jpg -high_market.jpg http://[server]/MM/High%20Market.full.jpg -high_seas.jpg http://[server]/MM/High%20Seas.full.jpg -high_tide.jpg http://[server]/FE/High%20Tide1.full.jpg -highland_berserker.jpg http://[server]/ZEN/Highland%20Berserker.full.jpg -highland_giant.jpg http://[server]/PT/Highland%20Giant.full.jpg -highland_weald.jpg http://[server]/CS/Highland%20Weald.full.jpg -highway_robber.jpg http://[server]/10E/Highway%20Robber.full.jpg -higure_the_still_wind.jpg http://[server]/BOK/Higure,%20the%20Still%20Wind.full.jpg -hikari_twilight_guardian.jpg http://[server]/CHK/Hikari,%20Twilight%20Guardian.full.jpg -hill_giant.jpg http://[server]/10E/Hill%20Giant.full.jpg -hillcomber_giant.jpg http://[server]/LRW/Hillcomber%20Giant.full.jpg -hinder.jpg http://[server]/CHK/Hinder.full.jpg -hindering_light.jpg http://[server]/ALA/Hindering%20Light.full.jpg -hindering_touch.jpg http://[server]/SC/Hindering%20Touch.full.jpg -hint_of_insanity.jpg http://[server]/OD/Hint%20of%20Insanity.full.jpg -hipparion.jpg http://[server]/IA/Hipparion.full.jpg -hired_giant.jpg http://[server]/MM/Hired%20Giant.full.jpg -hired_muscle.jpg http://[server]/BOK/Hired%20Muscle.full.jpg -hisoka_minamo_sensei.jpg http://[server]/CHK/Hisoka,%20Minamo%20Sensei.full.jpg -hisokas_defiance.jpg http://[server]/CHK/Hisoka's%20Defiance.full.jpg -hisokas_guard.jpg http://[server]/CHK/Hisoka's%20Guard.full.jpg -hissing_iguanar.jpg http://[server]/ALA/Hissing%20Iguanar.full.jpg -hissing_miasma.jpg http://[server]/GP/Hissing%20Miasma.full.jpg -hitrun.jpg http://[server]/DIS/HitRun.full.jpg -hive_mind.jpg http://[server]/M10/Hive%20Mind.full.jpg -hivestone.jpg http://[server]/TSP/Hivestone.full.jpg -hivis_of_the_scale.jpg http://[server]/MI/Hivis%20of%20the%20Scale.full.jpg -hoar_shade.jpg http://[server]/IA/Hoar%20Shade.full.jpg -hoarders_greed.jpg http://[server]/LRW/Hoarder's%20Greed.full.jpg -hobble.jpg http://[server]/PS/Hobble.full.jpg -hobgoblin_dragoon.jpg http://[server]/EVE/Hobgoblin%20Dragoon.full.jpg -hokori_dust_drinker.jpg http://[server]/BOK/Hokori,%20Dust%20Drinker.full.jpg -hold_the_line.jpg http://[server]/CHK/Hold%20the%20Line.full.jpg -holistic_wisdom.jpg http://[server]/OD/Holistic%20Wisdom.full.jpg -hollow_dogs.jpg http://[server]/9E/Hollow%20Dogs.full.jpg -hollow_specter.jpg http://[server]/LE/Hollow%20Specter.full.jpg -hollow_trees.jpg http://[server]/5E/Hollow%20Trees.full.jpg -hollow_warrior.jpg http://[server]/PY/Hollow%20Warrior.full.jpg -hollowborn_barghest.jpg http://[server]/SHM/Hollowborn%20Barghest.full.jpg -hollowsage.jpg http://[server]/SHM/Hollowsage.full.jpg -holy_armor.jpg http://[server]/4E/Holy%20Armor.full.jpg -holy_day.jpg http://[server]/10E/Holy%20Day.full.jpg -holy_light.jpg http://[server]/DK/Holy%20Light.full.jpg -holy_strength.jpg http://[server]/M10/Holy%20Strength.full.jpg -homarid_shaman.jpg http://[server]/FE/Homarid%20Shaman.full.jpg -homarid_spawning_bed.jpg http://[server]/FE/Homarid%20Spawning%20Bed.full.jpg -homarid_warrior.jpg http://[server]/5E/Homarid%20Warrior.full.jpg -homarid.jpg http://[server]/FE/Homarid1.full.jpg -homing_sliver.jpg http://[server]/FUT/Homing%20Sliver.full.jpg -homura_human_ascendant.jpg http://[server]/SOK/Homura,%20Human%20Ascendant.full.jpg -honden_of_cleansing_fire.jpg http://[server]/CHK/Honden%20of%20Cleansing%20Fire.full.jpg -honden_of_infinite_rage.jpg http://[server]/CHK/Honden%20of%20Infinite%20Rage.full.jpg -honden_of_lifes_web.jpg http://[server]/CHK/Honden%20of%20Life's%20Web.full.jpg -honden_of_nights_reach.jpg http://[server]/CHK/Honden%20of%20Night's%20Reach.full.jpg -honden_of_seeing_winds.jpg http://[server]/CHK/Honden%20of%20Seeing%20Winds.full.jpg -honor_guard.jpg http://[server]/10E/Honor%20Guard.full.jpg -honor_of_the_pure.jpg http://[server]/M10/Honor%20of%20the%20Pure.full.jpg -honor_the_fallen.jpg http://[server]/MM/Honor%20the%20Fallen.full.jpg -honor_worn_shaku.jpg http://[server]/CHK/Honor-Worn%20Shaku.full.jpg -honorable_passage.jpg http://[server]/VI/Honorable%20Passage.full.jpg -honorable_scout.jpg http://[server]/PS/Honorable%20Scout.full.jpg -hooded_kavu.jpg http://[server]/IN/Hooded%20Kavu.full.jpg -hoodwink.jpg http://[server]/MM/Hoodwink.full.jpg -hoof_skulkin.jpg http://[server]/EVE/Hoof%20Skulkin.full.jpg -hoofprints_of_the_stag.jpg http://[server]/LRW/Hoofprints%20of%20the%20Stag.full.jpg -hope_and_glory.jpg http://[server]/UL/Hope%20and%20Glory.full.jpg -hope_charm.jpg http://[server]/VI/Hope%20Charm.full.jpg -hopping_automaton.jpg http://[server]/US/Hopping%20Automaton.full.jpg -horde_of_boggarts.jpg http://[server]/SHM/Horde%20of%20Boggarts.full.jpg -horde_of_notions.jpg http://[server]/LRW/Horde%20of%20Notions.full.jpg -horizon_canopy.jpg http://[server]/FUT/Horizon%20Canopy.full.jpg -horizon_seed.jpg http://[server]/CHK/Horizon%20Seed.full.jpg -horn_of_deafening.jpg http://[server]/LG/Horn%20of%20Deafening.full.jpg -horn_of_greed.jpg http://[server]/SH/Horn%20of%20Greed.full.jpg -horn_of_plenty.jpg http://[server]/MM/Horn%20of%20Plenty.full.jpg -horn_of_ramos.jpg http://[server]/MM/Horn%20of%20Ramos.full.jpg -horned_cheetah.jpg http://[server]/IN/Horned%20Cheetah.full.jpg -horned_helm.jpg http://[server]/FD/Horned%20Helm.full.jpg -horned_kavu.jpg http://[server]/PS/Horned%20Kavu.full.jpg -horned_sliver.jpg http://[server]/TE/Horned%20Sliver.full.jpg -horned_troll.jpg http://[server]/MM/Horned%20Troll.full.jpg -horned_turtle.jpg http://[server]/M10/Horned%20Turtle.full.jpg -hornet_cannon.jpg http://[server]/SH/Hornet%20Cannon.full.jpg -hornet_cobra.jpg http://[server]/LG/Hornet%20Cobra.full.jpg -hornet_harasser.jpg http://[server]/LRW/Hornet%20Harasser.full.jpg -horobi_deaths_wail.jpg http://[server]/CHK/Horobi,%20Death's%20Wail.full.jpg -horobis_whisper.jpg http://[server]/BOK/Horobi's%20Whisper.full.jpg -horrible_hordes.jpg http://[server]/MI/Horrible%20Hordes.full.jpg -horror_of_horrors.jpg http://[server]/LG/Horror%20of%20Horrors.full.jpg -horseshoe_crab.jpg http://[server]/10E/Horseshoe%20Crab.full.jpg -hostile_realm.jpg http://[server]/MOR/Hostile%20Realm.full.jpg -hostility.jpg http://[server]/LRW/Hostility.full.jpg -hot_springs.jpg http://[server]/IA/Hot%20Springs.full.jpg -hotheaded_giant.jpg http://[server]/EVE/Hotheaded%20Giant.full.jpg -hour_of_reckoning.jpg http://[server]/RAV/Hour%20of%20Reckoning.full.jpg -hoverguard_observer.jpg http://[server]/DS/Hoverguard%20Observer.full.jpg -hoverguard_sweepers.jpg http://[server]/FD/Hoverguard%20Sweepers.full.jpg -howl_from_beyond.jpg http://[server]/7E/Howl%20from%20Beyond.full.jpg -howl_of_the_night_pack.jpg http://[server]/M10/Howl%20of%20the%20Night%20Pack.full.jpg -howling_banshee.jpg http://[server]/M10/Howling%20Banshee.full.jpg -howling_fury.jpg http://[server]/ST/Howling%20Fury.full.jpg -howling_gale.jpg http://[server]/OD/Howling%20Gale.full.jpg -howling_mine.jpg http://[server]/M10/Howling%20Mine.full.jpg -howling_wolf.jpg http://[server]/MM/Howling%20Wolf.full.jpg -howltooth_hollow.jpg http://[server]/LRW/Howltooth%20Hollow.full.jpg -hua_tuo_honored_physician.jpg http://[server]/P3/Hua%20Tuo,%20Honored%20Physician.full.jpg -huang_zhong_shu_general.jpg http://[server]/P3/Huang%20Zhong,%20Shu%20General.full.jpg -hulking_cyclops.jpg http://[server]/8E/Hulking%20Cyclops.full.jpg -hulking_goblin.jpg http://[server]/ST/Hulking%20Goblin.full.jpg -hulking_ogre.jpg http://[server]/ST/Hulking%20Ogre.full.jpg -hull_breach.jpg http://[server]/PS/Hull%20Breach.full.jpg -hum_of_the_radix.jpg http://[server]/MR/Hum%20of%20the%20Radix.full.jpg -humble.jpg http://[server]/US/Humble.full.jpg -humble_budoka.jpg http://[server]/CHK/Humble%20Budoka.full.jpg -humility.jpg http://[server]/TE/Humility.full.jpg -hunding_gjornersen.jpg http://[server]/LG/Hunding%20Gjornersen.full.jpg -hundred_talon_kami.jpg http://[server]/CHK/Hundred-Talon%20Kami.full.jpg -hundred_talon_strike.jpg http://[server]/BOK/Hundred-Talon%20Strike.full.jpg -hundroog.jpg http://[server]/LE/Hundroog.full.jpg -hunger_of_the_nim.jpg http://[server]/DS/Hunger%20of%20the%20Nim.full.jpg -hungry_hungry_heifer.jpg http://[server]/UG/Hungry%20Hungry%20Heifer.full.jpg -hungry_mist.jpg http://[server]/5E/Hungry%20Mist.full.jpg -hungry_spriggan.jpg http://[server]/SHM/Hungry%20Spriggan.full.jpg -hunt_down.jpg http://[server]/LRW/Hunt%20Down.full.jpg -hunted_dragon.jpg http://[server]/RAV/Hunted%20Dragon.full.jpg -hunted_horror.jpg http://[server]/RAV/Hunted%20Horror.full.jpg -hunted_lammasu.jpg http://[server]/RAV/Hunted%20Lammasu.full.jpg -hunted_phantasm.jpg http://[server]/RAV/Hunted%20Phantasm.full.jpg -hunted_troll.jpg http://[server]/RAV/Hunted%20Troll.full.jpg -hunted_wumpus.jpg http://[server]/10E/Hunted%20Wumpus.full.jpg -hunter_of_eyeblights.jpg http://[server]/LRW/Hunter%20of%20Eyeblights.full.jpg -hunter_sliver.jpg http://[server]/LE/Hunter%20Sliver.full.jpg -hunting_cheetah.jpg http://[server]/P3/Hunting%20Cheetah.full.jpg -hunting_drake.jpg http://[server]/PS/Hunting%20Drake.full.jpg -hunting_grounds.jpg http://[server]/JU/Hunting%20Grounds.full.jpg -hunting_kavu.jpg http://[server]/IN/Hunting%20Kavu.full.jpg -hunting_moa.jpg http://[server]/UD/Hunting%20Moa.full.jpg -hunting_pack.jpg http://[server]/SC/Hunting%20Pack.full.jpg -hunting_triad.jpg http://[server]/MOR/Hunting%20Triad.full.jpg -hunting_wilds.jpg http://[server]/PLC/Hunting%20Wilds.full.jpg -hurkyls_recall.jpg http://[server]/10E/Hurkyl's%20Recall.full.jpg -hurloon_minotaur.jpg http://[server]/5E/Hurloon%20Minotaur.full.jpg -hurloon_shaman.jpg http://[server]/WL/Hurloon%20Shaman.full.jpg -hurloon_wrangler.jpg http://[server]/UG/Hurloon%20Wrangler.full.jpg -hurly_burly.jpg http://[server]/LRW/Hurly-Burly.full.jpg -hurr_jackal.jpg http://[server]/4E/Hurr%20Jackal.full.jpg -hurricane.jpg http://[server]/10E/Hurricane.full.jpg -hush.jpg http://[server]/US/Hush.full.jpg -hyalopterous_lemure.jpg http://[server]/IA/Hyalopterous%20Lemure.full.jpg -hydroblast.jpg http://[server]/5E/Hydroblast.full.jpg -hydromorph_guardian.jpg http://[server]/TO/Hydromorph%20Guardian.full.jpg -hydromorph_gull.jpg http://[server]/TO/Hydromorph%20Gull.full.jpg -hymn_of_rebirth.jpg http://[server]/IA/Hymn%20of%20Rebirth.full.jpg -hymn_to_tourach.jpg http://[server]/AT/Hymn%20to%20Tourach.full.jpg -hypergenesis.jpg http://[server]/TSP/Hypergenesis.full.jpg -hyperion_blacksmith.jpg http://[server]/LG/Hyperion%20Blacksmith.full.jpg -hypervolt_grasp.jpg http://[server]/GP/Hypervolt%20Grasp.full.jpg -hypnotic_cloud.jpg http://[server]/IN/Hypnotic%20Cloud.full.jpg -hypnotic_specter.jpg http://[server]/M10/Hypnotic%20Specter.full.jpg -hypnox.jpg http://[server]/TO/Hypnox.full.jpg -hypochondria.jpg http://[server]/TO/Hypochondria.full.jpg -hystrodon.jpg http://[server]/ON/Hystrodon.full.jpg \ No newline at end of file diff --git a/res/pics_link/card-pictures_i.txt b/res/pics_link/card-pictures_i.txt deleted file mode 100644 index ddbdd5a7d11..00000000000 --- a/res/pics_link/card-pictures_i.txt +++ /dev/null @@ -1,256 +0,0 @@ -ib_halfheart_goblin_tactician.jpg http://[server]/TSP/Ib%20Halfheart,%20Goblin%20Tactician.full.jpg -icatian_crier.jpg http://[server]/TSP/Icatian%20Crier.full.jpg -icatian_infantry.jpg http://[server]/FE/Icatian%20Infantry1.full.jpg -icatian_javelineers.jpg http://[server]/AT/Icatian%20Javelineers.full.jpg -icatian_lieutenant.jpg http://[server]/FE/Icatian%20Lieutenant.full.jpg -icatian_moneychanger.jpg http://[server]/FE/Icatian%20Moneychanger1.full.jpg -icatian_phalanx.jpg http://[server]/FE/Icatian%20Phalanx.full.jpg -icatian_priest.jpg http://[server]/10E/Icatian%20Priest.full.jpg -icatian_scout.jpg http://[server]/5E/Icatian%20Scout.full.jpg -icatian_skirmishers.jpg http://[server]/FE/Icatian%20Skirmishers.full.jpg -icatian_store.jpg http://[server]/FE/Icatian%20Store.full.jpg -icatian_town.jpg http://[server]/6E/Icatian%20Town.full.jpg -ice_cage.jpg http://[server]/M10/Ice%20Cage.full.jpg -ice_cauldron.jpg http://[server]/IA/Ice%20Cauldron.full.jpg -ice_cave.jpg http://[server]/AP/Ice%20Cave.full.jpg -ice_floe.jpg http://[server]/IA/Ice%20Floe.full.jpg -ice_storm.jpg http://[server]/U/Ice%20Storm.full.jpg -iceberg.jpg http://[server]/IA/Iceberg.full.jpg -icefall.jpg http://[server]/CS/Icefall.full.jpg -icequake.jpg http://[server]/IA/Icequake.full.jpg -ichneumon_druid.jpg http://[server]/LG/Ichneumon%20Druid.full.jpg -ichor_slick.jpg http://[server]/FUT/Ichor%20Slick.full.jpg -ichorid.jpg http://[server]/TO/Ichorid.full.jpg -icy_manipulator.jpg http://[server]/10E/Icy%20Manipulator.full.jpg -icy_prison.jpg http://[server]/IA/Icy%20Prison.full.jpg -ideas_unbound.jpg http://[server]/SOK/Ideas%20Unbound.full.jpg -identity_crisis.jpg http://[server]/ARB/Identity%20Crisis.full.jpg -idle_thoughts.jpg http://[server]/EVE/Idle%20Thoughts.full.jpg -idyllic_tutor.jpg http://[server]/MOR/Idyllic%20Tutor.full.jpg -ifh_biff_efreet.jpg http://[server]/AN/Ifh-Biff%20Efreet.full.jpg -igneous_golem.jpg http://[server]/MI/Igneous%20Golem.full.jpg -igneous_pouncer.jpg http://[server]/ARB/Igneous%20Pouncer.full.jpg -ignite_disorder.jpg http://[server]/M10/Ignite%20Disorder.full.jpg -ignite_memories.jpg http://[server]/TSP/Ignite%20Memories.full.jpg -ignoble_soldier.jpg http://[server]/MM/Ignoble%20Soldier.full.jpg -ignorant_bliss.jpg http://[server]/DIS/Ignorant%20Bliss.full.jpg -ihsans_shade.jpg http://[server]/HL/Ihsan's%20Shade.full.jpg -iizuka_the_ruthless.jpg http://[server]/SOK/Iizuka%20the%20Ruthless.full.jpg -ill_gotten_gains.jpg http://[server]/US/Ill-Gotten%20Gains.full.jpg -illicit_auction.jpg http://[server]/MI/Illicit%20Auction.full.jpg -illuminate.jpg http://[server]/AP/Illuminate.full.jpg -illuminated_folio.jpg http://[server]/SHM/Illuminated%20Folio.full.jpg -illuminated_wings.jpg http://[server]/UD/Illuminated%20Wings.full.jpg -illumination.jpg http://[server]/MI/Illumination.full.jpg -illusionary_forces.jpg http://[server]/IA/Illusionary%20Forces.full.jpg -illusionary_mask.jpg http://[server]/U/Illusionary%20Mask.full.jpg -illusionary_presence.jpg http://[server]/IA/Illusionary%20Presence.full.jpg -illusionary_servant.jpg http://[server]/M10/Illusionary%20Servant.full.jpg -illusionary_terrain.jpg http://[server]/IA/Illusionary%20Terrain.full.jpg -illusionary_wall.jpg http://[server]/IA/Illusionary%20Wall.full.jpg -illusionreality.jpg http://[server]/AP/IllusionReality.full.jpg -illusions_of_grandeur.jpg http://[server]/IA/Illusions%20of%20Grandeur.full.jpg -illusory_demon.jpg http://[server]/ARB/Illusory%20Demon.full.jpg -im_rubber_youre_glue.jpg http://[server]/UG/I'm%20Rubber,%20You're%20Glue.full.jpg -imagecrafter.jpg http://[server]/ON/Imagecrafter.full.jpg -imaginary_pet.jpg http://[server]/9E/Imaginary%20Pet.full.jpg -imi_statue.jpg http://[server]/CHK/Imi%20Statue.full.jpg -immaculate_magistrate.jpg http://[server]/LRW/Immaculate%20Magistrate.full.jpg -immobilizing_ink.jpg http://[server]/OD/Immobilizing%20Ink.full.jpg -immolation.jpg http://[server]/LG/Immolation.full.jpg -immortal_coil.jpg http://[server]/ALA/Immortal%20Coil.full.jpg -impatience.jpg http://[server]/7E/Impatience.full.jpg -impelled_giant.jpg http://[server]/EVE/Impelled%20Giant.full.jpg -impending_disaster.jpg http://[server]/UL/Impending%20Disaster.full.jpg -imperial_edict.jpg http://[server]/P3/Imperial%20Edict.full.jpg -imperial_hellkite.jpg http://[server]/LE/Imperial%20Hellkite.full.jpg -imperial_mask.jpg http://[server]/FUT/Imperial%20Mask.full.jpg -imperial_recruiter.jpg http://[server]/P3/Imperial%20Recruiter.full.jpg -imperial_seal.jpg http://[server]/P3/Imperial%20Seal.full.jpg -imperiosaur.jpg http://[server]/FUT/Imperiosaur.full.jpg -imperious_perfect.jpg http://[server]/LRW/Imperious%20Perfect.full.jpg -implements_of_sacrifice.jpg http://[server]/FE/Implements%20of%20Sacrifice.full.jpg -implode.jpg http://[server]/PS/Implode.full.jpg -imposing_visage.jpg http://[server]/IA/Imposing%20Visage.full.jpg -imprison.jpg http://[server]/LG/Imprison.full.jpg -impromptu_raid.jpg http://[server]/SHM/Impromptu%20Raid.full.jpg -improvised_armor.jpg http://[server]/ON/Improvised%20Armor.full.jpg -imps_mischief.jpg http://[server]/PLC/Imp's%20Mischief.full.jpg -imps_taunt.jpg http://[server]/TE/Imps'%20Taunt.full.jpg -impulse.jpg http://[server]/VI/Impulse.full.jpg -impulsive_maneuvers.jpg http://[server]/OD/Impulsive%20Maneuvers.full.jpg -in_the_eye_of_chaos.jpg http://[server]/LG/In%20the%20Eye%20of%20Chaos.full.jpg -in_the_web_of_war.jpg http://[server]/BOK/In%20the%20Web%20of%20War.full.jpg -iname_as_one.jpg http://[server]/SOK/Iname%20as%20One.full.jpg -iname_death_aspect.jpg http://[server]/CHK/Iname,%20Death%20Aspect.full.jpg -iname_life_aspect.jpg http://[server]/CHK/Iname,%20Life%20Aspect.full.jpg -incandescent_soulstoke.jpg http://[server]/LRW/Incandescent%20Soulstoke.full.jpg -incendiary.jpg http://[server]/UD/Incendiary.full.jpg -incendiary_command.jpg http://[server]/LRW/Incendiary%20Command.full.jpg -incinerate.jpg http://[server]/10E/Incinerate.full.jpg -incite_hysteria.jpg http://[server]/RAV/Incite%20Hysteria.full.jpg -incite_war.jpg http://[server]/MR/Incite%20War.full.jpg -incoming!.jpg http://[server]/OV/Incoming!.full.jpg -incremental_blight.jpg http://[server]/HOP/Incremental%20Blight.full.jpg -incremental_growth.jpg http://[server]/LRW/Incremental%20Growth.full.jpg -incurable_ogre.jpg http://[server]/ALA/Incurable%20Ogre.full.jpg -indebted_samurai.jpg http://[server]/BOK/Indebted%20Samurai.full.jpg -indentured_djinn.jpg http://[server]/MM/Indentured%20Djinn.full.jpg -indentured_oaf.jpg http://[server]/RAV/Indentured%20Oaf.full.jpg -independent_troops.jpg http://[server]/P3/Independent%20Troops.full.jpg -indestructibility.jpg http://[server]/M10/Indestructibility.full.jpg -indestructible_aura.jpg http://[server]/LG/Indestructible%20Aura.full.jpg -index.jpg http://[server]/AP/Index.full.jpg -indigo_faerie.jpg http://[server]/EVE/Indigo%20Faerie.full.jpg -indomitable_ancients.jpg http://[server]/MOR/Indomitable%20Ancients.full.jpg -indomitable_will.jpg http://[server]/CHK/Indomitable%20Will.full.jpg -indrik_stomphowler.jpg http://[server]/DIS/Indrik%20Stomphowler.full.jpg -induce_paranoia.jpg http://[server]/RAV/Induce%20Paranoia.full.jpg -inertia_bubble.jpg http://[server]/MR/Inertia%20Bubble.full.jpg -inescapable_brute.jpg http://[server]/SHM/Inescapable%20Brute.full.jpg -infantry_veteran.jpg http://[server]/9E/Infantry%20Veteran.full.jpg -infected_vermin.jpg http://[server]/OD/Infected%20Vermin.full.jpg -infectious_horror.jpg http://[server]/CFX/Infectious%20Horror.full.jpg -infectious_host.jpg http://[server]/RAV/Infectious%20Host.full.jpg -infectious_rage.jpg http://[server]/JU/Infectious%20Rage.full.jpg -infernal_caretaker.jpg http://[server]/LE/Infernal%20Caretaker.full.jpg -infernal_contract.jpg http://[server]/7E/Infernal%20Contract.full.jpg -infernal_darkness.jpg http://[server]/IA/Infernal%20Darkness.full.jpg -infernal_denizen.jpg http://[server]/IA/Infernal%20Denizen.full.jpg -infernal_genesis.jpg http://[server]/PY/Infernal%20Genesis.full.jpg -infernal_harvest.jpg http://[server]/VI/Infernal%20Harvest.full.jpg -infernal_kirin.jpg http://[server]/SOK/Infernal%20Kirin.full.jpg -infernal_medusa.jpg http://[server]/LG/Infernal%20Medusa.full.jpg -infernal_spawn_of_evil.jpg http://[server]/UG/Infernal%20Spawn%20of%20Evil.full.jpg -infernal_spawn_of_infernal_spawn_of_evil.jpg http://[server]/UNH/Infernal%20Spawn%20of%20Infernal%20Spawn%20of%20Evil.full.jpg -infernal_tribute.jpg http://[server]/WL/Infernal%20Tribute.full.jpg -infernal_tutor.jpg http://[server]/DIS/Infernal%20Tutor.full.jpg -inferno.jpg http://[server]/8E/Inferno.full.jpg -inferno_elemental.jpg http://[server]/M10/Inferno%20Elemental.full.jpg -inferno_trap.jpg http://[server]/ZEN/Inferno%20Trap.full.jpg -infest.jpg http://[server]/ON/Infest.full.jpg -infested_roothold.jpg http://[server]/DS/Infested%20Roothold.full.jpg -infiltrate.jpg http://[server]/NE/Infiltrate.full.jpg -infiltrator_il_kor.jpg http://[server]/FUT/Infiltrator%20il-Kor.full.jpg -infiltrators_magemark.jpg http://[server]/GP/Infiltrator's%20Magemark.full.jpg -infinite_authority.jpg http://[server]/LG/Infinite%20Authority.full.jpg -infinite_hourglass.jpg http://[server]/5E/Infinite%20Hourglass.full.jpg -inflame.jpg http://[server]/PY/Inflame.full.jpg -information_dealer.jpg http://[server]/ON/Information%20Dealer.full.jpg -infuse.jpg http://[server]/IA/Infuse.full.jpg -infused_arrows.jpg http://[server]/FD/Infused%20Arrows.full.jpg -ingenious_thief.jpg http://[server]/ST/Ingenious%20Thief.full.jpg -ingot_chewer.jpg http://[server]/LRW/Ingot%20Chewer.full.jpg -inheritance.jpg http://[server]/AL/Inheritance.full.jpg -initiate_of_blood.jpg http://[server]/CHK/Initiate%20of%20Blood.full.jpg -initiates_of_the_ebon_hand.jpg http://[server]/5E/Initiates%20of%20the%20Ebon%20Hand.full.jpg -ink_dissolver.jpg http://[server]/MOR/Ink%20Dissolver.full.jpg -ink_eyes_servant_of_oni.jpg http://[server]/BOK/Ink-Eyes,%20Servant%20of%20Oni.full.jpg -ink_treader_nephilim.jpg http://[server]/GP/Ink-Treader%20Nephilim.full.jpg -inkfathom_divers.jpg http://[server]/LRW/Inkfathom%20Divers.full.jpg -inkfathom_infiltrator.jpg http://[server]/SHM/Inkfathom%20Infiltrator.full.jpg -inkfathom_witch.jpg http://[server]/SHM/Inkfathom%20Witch.full.jpg -inkwell_leviathan.jpg http://[server]/CFX/Inkwell%20Leviathan.full.jpg -inner_calm_outer_strength.jpg http://[server]/SOK/Inner%20Calm,%20Outer%20Strength.full.jpg -inner_chamber_guard.jpg http://[server]/SOK/Inner-Chamber%20Guard.full.jpg -inner_fire.jpg http://[server]/SOK/Inner%20Fire.full.jpg -inner_flame_acolyte.jpg http://[server]/LRW/Inner-Flame%20Acolyte.full.jpg -inner_flame_igniter.jpg http://[server]/LRW/Inner-Flame%20Igniter.full.jpg -inner_sanctum.jpg http://[server]/WL/Inner%20Sanctum.full.jpg -innocence_kami.jpg http://[server]/CHK/Innocence%20Kami.full.jpg -innocent_blood.jpg http://[server]/OD/Innocent%20Blood.full.jpg -inquisition.jpg http://[server]/DK/Inquisition.full.jpg -inquisitors_snare.jpg http://[server]/SHM/Inquisitor's%20Snare.full.jpg -inside_out.jpg http://[server]/EVE/Inside%20Out.full.jpg -insidious_bookworms.jpg http://[server]/CST/Insidious%20Bookworms.full.jpg -insidious_dreams.jpg http://[server]/TO/Insidious%20Dreams.full.jpg -insight.jpg http://[server]/6E/Insight.full.jpg -insist.jpg http://[server]/TO/Insist.full.jpg -insolence.jpg http://[server]/PS/Insolence.full.jpg -inspiration.jpg http://[server]/8E/Inspiration.full.jpg -inspired_sprite.jpg http://[server]/MOR/Inspired%20Sprite.full.jpg -inspirit.jpg http://[server]/9E/Inspirit.full.jpg -instigator.jpg http://[server]/MM/Instigator.full.jpg -instill_energy.jpg http://[server]/5E/Instill%20Energy.full.jpg -instill_furor.jpg http://[server]/RAV/Instill%20Furor.full.jpg -insubordination.jpg http://[server]/MM/Insubordination.full.jpg -insurrection.jpg http://[server]/ON/Insurrection.full.jpg -interdict.jpg http://[server]/TE/Interdict.full.jpg -intervene.jpg http://[server]/UL/Intervene.full.jpg -intervention_pact.jpg http://[server]/FUT/Intervention%20Pact.full.jpg -intet_the_dreamer.jpg http://[server]/PLC/Intet,%20the%20Dreamer.full.jpg -intimidation.jpg http://[server]/MM/Intimidation.full.jpg -intimidation_bolt.jpg http://[server]/ARB/Intimidation%20Bolt.full.jpg -intimidator_initiate.jpg http://[server]/SHM/Intimidator%20Initiate.full.jpg -into_the_fray.jpg http://[server]/SOK/Into%20the%20Fray.full.jpg -into_the_north.jpg http://[server]/CS/Into%20the%20North.full.jpg -into_the_roil.jpg http://[server]/ZEN/Into%20the%20Roil.full.jpg -into_thin_air.jpg http://[server]/FD/Into%20Thin%20Air.full.jpg -intrepid_hero.jpg http://[server]/8E/Intrepid%20Hero.full.jpg -intruder_alarm.jpg http://[server]/8E/Intruder%20Alarm.full.jpg -intuition.jpg http://[server]/TE/Intuition.full.jpg -inundate.jpg http://[server]/EVE/Inundate.full.jpg -invasion_plans.jpg http://[server]/SH/Invasion%20Plans.full.jpg -invert_the_skies.jpg http://[server]/EVE/Invert%20the%20Skies.full.jpg -invigorate.jpg http://[server]/MM/Invigorate.full.jpg -invigorating_boon.jpg http://[server]/ON/Invigorating%20Boon.full.jpg -invigorating_falls.jpg http://[server]/TO/Invigorating%20Falls.full.jpg -invincible_hymn.jpg http://[server]/ALA/Invincible%20Hymn.full.jpg -inviolability.jpg http://[server]/MM/Inviolability.full.jpg -invisibility.jpg http://[server]/8E/Invisibility.full.jpg -invoke_prejudice.jpg http://[server]/LG/Invoke%20Prejudice.full.jpg -invoke_the_firemind.jpg http://[server]/GP/Invoke%20the%20Firemind.full.jpg -invulnerability.jpg http://[server]/TE/Invulnerability.full.jpg -ion_storm.jpg http://[server]/FD/Ion%20Storm.full.jpg -iona_shield_of_emeria.jpg http://[server]/ZEN/Iona,%20Shield%20of%20Emeria.full.jpg -ior_ruin_expedition.jpg http://[server]/ZEN/Ior%20Ruin%20Expedition.full.jpg -ire_of_kaminari.jpg http://[server]/BOK/Ire%20of%20Kaminari.full.jpg -iridescent_angel.jpg http://[server]/OD/Iridescent%20Angel.full.jpg -iridescent_drake.jpg http://[server]/UD/Iridescent%20Drake.full.jpg -irini_sengir.jpg http://[server]/HL/Irini%20Sengir.full.jpg -iron_barb_hellion.jpg http://[server]/FD/Iron-Barb%20Hellion.full.jpg -iron_heart_chimera.jpg http://[server]/VI/Iron-Heart%20Chimera.full.jpg -iron_lance.jpg http://[server]/MM/Iron%20Lance.full.jpg -iron_maiden.jpg http://[server]/UL/Iron%20Maiden.full.jpg -iron_myr.jpg http://[server]/MR/Iron%20Myr.full.jpg -iron_star.jpg http://[server]/8E/Iron%20Star.full.jpg -iron_tusk_elephant.jpg http://[server]/MI/Iron%20Tusk%20Elephant.full.jpg -iron_will.jpg http://[server]/UL/Iron%20Will.full.jpg -ironclaw_buzzardiers.jpg http://[server]/TSP/Ironclaw%20Buzzardiers.full.jpg -ironclaw_curse.jpg http://[server]/HL/Ironclaw%20Curse.full.jpg -ironclaw_orcs.jpg http://[server]/5E/Ironclaw%20Orcs.full.jpg -ironfist_crusher.jpg http://[server]/ON/Ironfist%20Crusher.full.jpg -ironhoof_ox.jpg http://[server]/P2/Ironhoof%20Ox.full.jpg -ironroot_treefolk.jpg http://[server]/5E/Ironroot%20Treefolk.full.jpg -ironshell_beetle.jpg http://[server]/JU/Ironshell%20Beetle.full.jpg -irradiate.jpg http://[server]/MR/Irradiate.full.jpg -irrigation_ditch.jpg http://[server]/IN/Irrigation%20Ditch.full.jpg -isamaru_hound_of_konda.jpg http://[server]/CHK/Isamaru,%20Hound%20of%20Konda.full.jpg -isao_enlightened_bushi.jpg http://[server]/BOK/Isao,%20Enlightened%20Bushi.full.jpg -ishi_ishi_akki_crackshot.jpg http://[server]/BOK/Ishi-Ishi,%20Akki%20Crackshot.full.jpg -island_fish_jasconius.jpg http://[server]/4E/Island%20Fish%20Jasconius.full.jpg -island_of_wak_wak.jpg http://[server]/AN/Island%20of%20Wak-Wak.full.jpg -island_sanctuary.jpg http://[server]/5E/Island%20Sanctuary.full.jpg -isleback_spawn.jpg http://[server]/SHM/Isleback%20Spawn.full.jpg -isochron_scepter.jpg http://[server]/MR/Isochron%20Scepter.full.jpg -isperia_the_inscrutable.jpg http://[server]/DIS/Isperia%20the%20Inscrutable.full.jpg -ith_high_arcanist.jpg http://[server]/TSP/Ith,%20High%20Arcanist.full.jpg -ivory_charm.jpg http://[server]/MI/Ivory%20Charm.full.jpg -ivory_crane_netsuke.jpg http://[server]/SOK/Ivory%20Crane%20Netsuke.full.jpg -ivory_cup.jpg http://[server]/8E/Ivory%20Cup.full.jpg -ivory_gargoyle.jpg http://[server]/AL/Ivory%20Gargoyle.full.jpg -ivory_giant.jpg http://[server]/TSP/Ivory%20Giant.full.jpg -ivory_guardians.jpg http://[server]/LG/Ivory%20Guardians.full.jpg -ivory_mask.jpg http://[server]/9E/Ivory%20Mask.full.jpg -ivory_tower.jpg http://[server]/4E/Ivory%20Tower.full.jpg -ivy_dancer.jpg http://[server]/RAV/Ivy%20Dancer.full.jpg -ivy_elemental.jpg http://[server]/OD/Ivy%20Elemental.full.jpg -ivy_seer.jpg http://[server]/UD/Ivy%20Seer.full.jpg -iwamori_of_the_open_fist.jpg http://[server]/BOK/Iwamori%20of%20the%20Open%20Fist.full.jpg -ixidor_reality_sculptor.jpg http://[server]/ON/Ixidor,%20Reality%20Sculptor.full.jpg -ixidors_will.jpg http://[server]/ON/Ixidor's%20Will.full.jpg -ixidron.jpg http://[server]/TSP/Ixidron.full.jpg -izzet_boilerworks.jpg http://[server]/GP/Izzet%20Boilerworks.full.jpg -izzet_chronarch.jpg http://[server]/GP/Izzet%20Chronarch.full.jpg -izzet_guildmage.jpg http://[server]/GP/Izzet%20Guildmage.full.jpg -izzet_signet.jpg http://[server]/GP/Izzet%20Signet.full.jpg \ No newline at end of file diff --git a/res/pics_link/card-pictures_j.txt b/res/pics_link/card-pictures_j.txt deleted file mode 100644 index cf7ca0242ae..00000000000 --- a/res/pics_link/card-pictures_j.txt +++ /dev/null @@ -1,121 +0,0 @@ -jabaris_banner.jpg http://[server]/WL/Jabari's%20Banner.full.jpg -jabaris_influence.jpg http://[server]/MI/Jabari's%20Influence.full.jpg -jace_beleren.jpg http://[server]/M10/Jace%20Beleren.full.jpg -jack_in_the_mox.jpg http://[server]/UG/Jack-in-the-Mox.full.jpg -jackal_familiar.jpg http://[server]/M10/Jackal%20Familiar.full.jpg -jackal_pup.jpg http://[server]/TE/Jackal%20Pup.full.jpg -jackalope_herd.jpg http://[server]/EX/Jackalope%20Herd.full.jpg -jacques_le_vert.jpg http://[server]/LG/Jacques%20le%20Vert.full.jpg -jade_idol.jpg http://[server]/CHK/Jade%20Idol.full.jpg -jade_leech.jpg http://[server]/IN/Jade%20Leech.full.jpg -jade_monolith.jpg http://[server]/6E/Jade%20Monolith.full.jpg -jade_statue.jpg http://[server]/9E/Jade%20Statue.full.jpg -jaded_response.jpg http://[server]/AP/Jaded%20Response.full.jpg -jagged_lightning.jpg http://[server]/US/Jagged%20Lightning.full.jpg -jagged_poppet.jpg http://[server]/DIS/Jagged%20Poppet.full.jpg -jagged_scar_archers.jpg http://[server]/LRW/Jagged-Scar%20Archers.full.jpg -jalum_grifter.jpg http://[server]/UG/Jalum%20Grifter.full.jpg -jalum_tome.jpg http://[server]/7E/Jalum%20Tome.full.jpg -jamuraan_lion.jpg http://[server]/VI/Jamuraan%20Lion.full.jpg -jandors_ring.jpg http://[server]/AN/Jandor's%20Ring.full.jpg -jandors_saddlebags.jpg http://[server]/7E/Jandor's%20Saddlebags.full.jpg -jangling_automaton.jpg http://[server]/WL/Jangling%20Automaton.full.jpg -jareth_leonine_titan.jpg http://[server]/ON/Jareth,%20Leonine%20Titan.full.jpg -jasmine_boreal.jpg http://[server]/LG/Jasmine%20Boreal.full.jpg -jasmine_seer.jpg http://[server]/UD/Jasmine%20Seer.full.jpg -jawbone_skulkin.jpg http://[server]/EVE/Jawbone%20Skulkin.full.jpg -jaws_of_stone.jpg http://[server]/SHM/Jaws%20of%20Stone.full.jpg -jaya_ballard_task_mage.jpg http://[server]/TSP/Jaya%20Ballard,%20Task%20Mage.full.jpg -jayemdae_tome.jpg http://[server]/10E/Jayemdae%20Tome.full.jpg -jedit_ojanen.jpg http://[server]/LG/Jedit%20Ojanen.full.jpg -jedit_ojanen_of_efrava.jpg http://[server]/PLC/Jedit%20Ojanen%20of%20Efrava.full.jpg -jedits_dragoons.jpg http://[server]/TSP/Jedit's%20Dragoons.full.jpg -jenara_asura_of_war.jpg http://[server]/ARB/Jenara,%20Asura%20of%20War.full.jpg -jerrard_of_the_closed_fist.jpg http://[server]/LG/Jerrard%20of%20the%20Closed%20Fist.full.jpg -jeska_warrior_adept.jpg http://[server]/JU/Jeska,%20Warrior%20Adept.full.jpg -jesters_cap.jpg http://[server]/9E/Jester's%20Cap.full.jpg -jesters_mask.jpg http://[server]/IA/Jester's%20Mask.full.jpg -jesters_scepter.jpg http://[server]/CS/Jester's%20Scepter.full.jpg -jesters_sombrero.jpg http://[server]/UG/Jester's%20Sombrero.full.jpg -jet_medallion.jpg http://[server]/TE/Jet%20Medallion.full.jpg -jetting_glasskite.jpg http://[server]/BOK/Jetting%20Glasskite.full.jpg -jeweled_amulet.jpg http://[server]/IA/Jeweled%20Amulet.full.jpg -jeweled_bird.jpg http://[server]/CH/Jeweled%20Bird.full.jpg -jeweled_spirit.jpg http://[server]/PY/Jeweled%20Spirit.full.jpg -jeweled_torque.jpg http://[server]/MM/Jeweled%20Torque.full.jpg -jhessian_balmgiver.jpg http://[server]/CFX/Jhessian%20Balmgiver.full.jpg -jhessian_infiltrator.jpg http://[server]/ALA/Jhessian%20Infiltrator.full.jpg -jhessian_lookout.jpg http://[server]/ALA/Jhessian%20Lookout.full.jpg -jhessian_zombies.jpg http://[server]/ARB/Jhessian%20Zombies.full.jpg -jhoira_of_the_ghitu.jpg http://[server]/FUT/Jhoira%20of%20the%20Ghitu.full.jpg -jhoiras_timebug.jpg http://[server]/TSP/Jhoira's%20Timebug.full.jpg -jhoiras_toolbox.jpg http://[server]/UL/Jhoira's%20Toolbox.full.jpg -jhovall_queen.jpg http://[server]/MM/Jhovall%20Queen.full.jpg -jhovall_rider.jpg http://[server]/MM/Jhovall%20Rider.full.jpg -jihad.jpg http://[server]/AN/Jihad.full.jpg -jilt.jpg http://[server]/AP/Jilt.full.jpg -jinx.jpg http://[server]/HL/Jinx.full.jpg -jinxed_choker.jpg http://[server]/MR/Jinxed%20Choker.full.jpg -jinxed_idol.jpg http://[server]/TE/Jinxed%20Idol.full.jpg -jinxed_ring.jpg http://[server]/SH/Jinxed%20Ring.full.jpg -jiwari_the_earth_aflame.jpg http://[server]/SOK/Jiwari,%20the%20Earth%20Aflame.full.jpg -jodahs_avenger.jpg http://[server]/PLC/Jodah's%20Avenger.full.jpg -johan.jpg http://[server]/LG/Johan.full.jpg -johnny_combo_player.jpg http://[server]/UNH/Johnny,%20Combo%20Player.full.jpg -johtull_wurm.jpg http://[server]/5E/Johtull%20Wurm.full.jpg -joiner_adept.jpg http://[server]/10E/Joiner%20Adept.full.jpg -jokulhaups.jpg http://[server]/6E/Jokulhaups.full.jpg -jokulmorder.jpg http://[server]/CS/Jokulmorder.full.jpg -jolrael_empress_of_beasts.jpg http://[server]/PY/Jolrael,%20Empress%20of%20Beasts.full.jpg -jolraels_centaur.jpg http://[server]/MI/Jolrael's%20Centaur.full.jpg -jolraels_favor.jpg http://[server]/PY/Jolrael's%20Favor.full.jpg -jolt.jpg http://[server]/MI/Jolt.full.jpg -jolting_merfolk.jpg http://[server]/NE/Jolting%20Merfolk.full.jpg -joraga_bard.jpg http://[server]/ZEN/Joraga%20Bard.full.jpg -jotun_grunt.jpg http://[server]/CS/Jotun%20Grunt.full.jpg -jotun_owl_keeper.jpg http://[server]/CS/Jotun%20Owl%20Keeper.full.jpg -journey_of_discovery.jpg http://[server]/MR/Journey%20of%20Discovery.full.jpg -journey_to_nowhere.jpg http://[server]/ZEN/Journey%20to%20Nowhere.full.jpg -journeyers_kite.jpg http://[server]/CHK/Journeyer's%20Kite.full.jpg -joven.jpg http://[server]/HL/Joven.full.jpg -jovens_ferrets.jpg http://[server]/HL/Joven's%20Ferrets.full.jpg -jovens_tools.jpg http://[server]/HL/Joven's%20Tools.full.jpg -jovial_evil.jpg http://[server]/LG/Jovial%20Evil.full.jpg -joyous_respite.jpg http://[server]/CHK/Joyous%20Respite.full.jpg -judge_of_currents.jpg http://[server]/LRW/Judge%20of%20Currents.full.jpg -judge_unworthy.jpg http://[server]/FUT/Judge%20Unworthy.full.jpg -jugan_the_rising_star.jpg http://[server]/CHK/Jugan,%20the%20Rising%20Star.full.jpg -juggernaut.jpg http://[server]/10E/Juggernaut.full.jpg -juju_bubble.jpg http://[server]/VI/Juju%20Bubble.full.jpg -jukai_messenger.jpg http://[server]/CHK/Jukai%20Messenger.full.jpg -jumbo_imp.jpg http://[server]/UG/Jumbo%20Imp.full.jpg -jump.jpg http://[server]/M10/Jump.full.jpg -jund_battlemage.jpg http://[server]/ALA/Jund%20Battlemage.full.jpg -jund_charm.jpg http://[server]/ALA/Jund%20Charm.full.jpg -jund_hackblade.jpg http://[server]/ARB/Jund%20Hackblade.full.jpg -jund_panorama.jpg http://[server]/ALA/Jund%20Panorama.full.jpg -jund_sojourners.jpg http://[server]/ARB/Jund%20Sojourners.full.jpg -jungle_barrier.jpg http://[server]/AP/Jungle%20Barrier.full.jpg -jungle_basin.jpg http://[server]/VI/Jungle%20Basin.full.jpg -jungle_lion.jpg http://[server]/PT/Jungle%20Lion.full.jpg -jungle_patrol.jpg http://[server]/MI/Jungle%20Patrol.full.jpg -jungle_shrine.jpg http://[server]/ALA/Jungle%20Shrine.full.jpg -jungle_troll.jpg http://[server]/MI/Jungle%20Troll.full.jpg -jungle_weaver.jpg http://[server]/ALA/Jungle%20Weaver.full.jpg -jungle_wurm.jpg http://[server]/MI/Jungle%20Wurm.full.jpg -juniper_order_advocate.jpg http://[server]/AL/Juniper%20Order%20Advocate.full.jpg -juniper_order_druid.jpg http://[server]/IA/Juniper%20Order%20Druid.full.jpg -juniper_order_ranger.jpg http://[server]/CS/Juniper%20Order%20Ranger.full.jpg -junk_diver.jpg http://[server]/UD/Junk%20Diver.full.jpg -junk_golem.jpg http://[server]/OD/Junk%20Golem.full.jpg -junktroller.jpg http://[server]/RAV/Junktroller.full.jpg -junkyo_bell.jpg http://[server]/CHK/Junkyo%20Bell.full.jpg -juntu_stakes.jpg http://[server]/IN/Juntu%20Stakes.full.jpg -junun_efreet.jpg http://[server]/AN/Junun%20Efreet.full.jpg -jushi_apprentice.jpg http://[server]/CHK/Jushi%20Apprentice.full.jpg -just_fate.jpg http://[server]/P2/Just%20Fate.full.jpg -justice.jpg http://[server]/5E/Justice.full.jpg -juvenile_gloomwidow.jpg http://[server]/SHM/Juvenile%20Gloomwidow.full.jpg -juxtapose.jpg http://[server]/LG/Juxtapose.full.jpg -juzam_djinn.jpg http://[server]/AN/Juzam%20Djinn.full.jpg -jwar_isle_refuge.jpg http://[server]/ZEN/Jwar%20Isle%20Refuge.full.jpg \ No newline at end of file diff --git a/res/pics_link/card-pictures_k.txt b/res/pics_link/card-pictures_k.txt deleted file mode 100644 index 198135bcf92..00000000000 --- a/res/pics_link/card-pictures_k.txt +++ /dev/null @@ -1,313 +0,0 @@ -kabira_crossroads.jpg http://[server]/ZEN/Kabira%20Crossroads.full.jpg -kabira_evangel.jpg http://[server]/ZEN/Kabira%20Evangel.full.jpg -kaboom!.jpg http://[server]/ON/Kaboom!.full.jpg -kabuto_moth.jpg http://[server]/CHK/Kabuto%20Moth.full.jpg -kaervek_the_merciless.jpg http://[server]/TSP/Kaervek%20the%20Merciless.full.jpg -kaerveks_hex.jpg http://[server]/MI/Kaervek's%20Hex.full.jpg -kaerveks_purge.jpg http://[server]/MI/Kaervek's%20Purge.full.jpg -kaerveks_spite.jpg http://[server]/VI/Kaervek's%20Spite.full.jpg -kaerveks_torch.jpg http://[server]/MI/Kaervek's%20Torch.full.jpg -kagemaro_first_to_suffer.jpg http://[server]/SOK/Kagemaro,%20First%20to%20Suffer.full.jpg -kagemaros_clutch.jpg http://[server]/SOK/Kagemaro's%20Clutch.full.jpg -kaho_minamo_historian.jpg http://[server]/SOK/Kaho,%20Minamo%20Historian.full.jpg -kaijin_of_the_vanishing_touch.jpg http://[server]/BOK/Kaijin%20of%20the%20Vanishing%20Touch.full.jpg -kaleidostone.jpg http://[server]/CFX/Kaleidostone.full.jpg -kalitas_bloodchief_of_ghet.jpg http://[server]/ZEN/Kalitas,%20Bloodchief%20of%20Ghet.full.jpg -kalonian_behemoth.jpg http://[server]/M10/Kalonian%20Behemoth.full.jpg -kamahl_fist_of_krosa.jpg http://[server]/ON/Kamahl,%20Fist%20of%20Krosa.full.jpg -kamahl_pit_fighter.jpg http://[server]/10E/Kamahl,%20Pit%20Fighter.full.jpg -kamahls_desire.jpg http://[server]/OD/Kamahl's%20Desire.full.jpg -kamahls_sledge.jpg http://[server]/TO/Kamahl's%20Sledge.full.jpg -kamahls_summons.jpg http://[server]/ON/Kamahl's%20Summons.full.jpg -kami_of_ancient_law.jpg http://[server]/CHK/Kami%20of%20Ancient%20Law.full.jpg -kami_of_empty_graves.jpg http://[server]/SOK/Kami%20of%20Empty%20Graves.full.jpg -kami_of_false_hope.jpg http://[server]/BOK/Kami%20of%20False%20Hope.full.jpg -kami_of_fires_roar.jpg http://[server]/CHK/Kami%20of%20Fire's%20Roar.full.jpg -kami_of_lunacy.jpg http://[server]/CHK/Kami%20of%20Lunacy.full.jpg -kami_of_old_stone.jpg http://[server]/9E/Kami%20of%20Old%20Stone.full.jpg -kami_of_tattered_shoji.jpg http://[server]/BOK/Kami%20of%20Tattered%20Shoji.full.jpg -kami_of_the_crescent_moon.jpg http://[server]/SOK/Kami%20of%20the%20Crescent%20Moon.full.jpg -kami_of_the_honored_dead.jpg http://[server]/BOK/Kami%20of%20the%20Honored%20Dead.full.jpg -kami_of_the_hunt.jpg http://[server]/CHK/Kami%20of%20the%20Hunt.full.jpg -kami_of_the_painted_road.jpg http://[server]/CHK/Kami%20of%20the%20Painted%20Road.full.jpg -kami_of_the_palace_fields.jpg http://[server]/CHK/Kami%20of%20the%20Palace%20Fields.full.jpg -kami_of_the_tended_garden.jpg http://[server]/SOK/Kami%20of%20the%20Tended%20Garden.full.jpg -kami_of_the_waning_moon.jpg http://[server]/CHK/Kami%20of%20the%20Waning%20Moon.full.jpg -kami_of_twisted_reflection.jpg http://[server]/CHK/Kami%20of%20Twisted%20Reflection.full.jpg -kangee_aerie_keeper.jpg http://[server]/IN/Kangee,%20Aerie%20Keeper.full.jpg -karakas.jpg http://[server]/LG/Karakas.full.jpg -karma.jpg http://[server]/8E/Karma.full.jpg -karmic_guide.jpg http://[server]/UL/Karmic%20Guide.full.jpg -karmic_justice.jpg http://[server]/OD/Karmic%20Justice.full.jpg -karn.jpg http://[server]/VG/Karn.full.jpg -karn_silver_golem.jpg http://[server]/US/Karn,%20Silver%20Golem.full.jpg -karns_touch.jpg http://[server]/MM/Karn's%20Touch.full.jpg -karona_false_god.jpg http://[server]/SC/Karona,%20False%20God.full.jpg -karonas_zealot.jpg http://[server]/SC/Karona's%20Zealot.full.jpg -karoo.jpg http://[server]/VI/Karoo.full.jpg -karoo_meerkat.jpg http://[server]/MI/Karoo%20Meerkat.full.jpg -karplusan_forest.jpg http://[server]/10E/Karplusan%20Forest.full.jpg -karplusan_giant.jpg http://[server]/IA/Karplusan%20Giant.full.jpg -karplusan_minotaur.jpg http://[server]/CS/Karplusan%20Minotaur.full.jpg -karplusan_strider.jpg http://[server]/10E/Karplusan%20Strider.full.jpg -karplusan_wolverine.jpg http://[server]/CS/Karplusan%20Wolverine.full.jpg -karplusan_yeti.jpg http://[server]/9E/Karplusan%20Yeti.full.jpg -karrthus_tyrant_of_jund.jpg http://[server]/ARB/Karrthus,%20Tyrant%20of%20Jund.full.jpg -karstoderm.jpg http://[server]/DS/Karstoderm.full.jpg -kashi_tribe_elite.jpg http://[server]/SOK/Kashi-Tribe%20Elite.full.jpg -kashi_tribe_reaver.jpg http://[server]/CHK/Kashi-Tribe%20Reaver.full.jpg -kashi_tribe_warriors.jpg http://[server]/CHK/Kashi-Tribe%20Warriors.full.jpg -kasimir_the_lone_wolf.jpg http://[server]/LG/Kasimir%20the%20Lone%20Wolf.full.jpg -katabatic_winds.jpg http://[server]/VI/Katabatic%20Winds.full.jpg -kataki_wars_wage.jpg http://[server]/SOK/Kataki,%20War's%20Wage.full.jpg -kathari_bomber.jpg http://[server]/ARB/Kathari%20Bomber.full.jpg -kathari_remnant.jpg http://[server]/ARB/Kathari%20Remnant.full.jpg -kathari_screecher.jpg http://[server]/ALA/Kathari%20Screecher.full.jpg -kavu_aggressor.jpg http://[server]/IN/Kavu%20Aggressor.full.jpg -kavu_chameleon.jpg http://[server]/IN/Kavu%20Chameleon.full.jpg -kavu_climber.jpg http://[server]/10E/Kavu%20Climber.full.jpg -kavu_glider.jpg http://[server]/AP/Kavu%20Glider.full.jpg -kavu_howler.jpg http://[server]/AP/Kavu%20Howler.full.jpg -kavu_lair.jpg http://[server]/IN/Kavu%20Lair.full.jpg -kavu_mauler.jpg http://[server]/AP/Kavu%20Mauler.full.jpg -kavu_monarch.jpg http://[server]/IN/Kavu%20Monarch.full.jpg -kavu_predator.jpg http://[server]/PLC/Kavu%20Predator.full.jpg -kavu_primarch.jpg http://[server]/FUT/Kavu%20Primarch.full.jpg -kavu_recluse.jpg http://[server]/PS/Kavu%20Recluse.full.jpg -kavu_runner.jpg http://[server]/IN/Kavu%20Runner.full.jpg -kavu_scout.jpg http://[server]/IN/Kavu%20Scout.full.jpg -kavu_titan.jpg http://[server]/IN/Kavu%20Titan.full.jpg -kaysa.jpg http://[server]/AL/Kaysa.full.jpg -kazandu_blademaster.jpg http://[server]/ZEN/Kazandu%20Blademaster.full.jpg -kazandu_refuge.jpg http://[server]/ZEN/Kazandu%20Refuge.full.jpg -kazuul_warlord.jpg http://[server]/ZEN/Kazuul%20Warlord.full.jpg -kederekt_creeper.jpg http://[server]/ALA/Kederekt%20Creeper.full.jpg -kederekt_leviathan.jpg http://[server]/ALA/Kederekt%20Leviathan.full.jpg -kederekt_parasite.jpg http://[server]/CFX/Kederekt%20Parasite.full.jpg -keen_eyed_archers.jpg http://[server]/PT/Keen-Eyed%20Archers.full.jpg -keen_sense.jpg http://[server]/PLC/Keen%20Sense.full.jpg -keeneye_aven.jpg http://[server]/LE/Keeneye%20Aven.full.jpg -keening_banshee.jpg http://[server]/RAV/Keening%20Banshee.full.jpg -keep_watch.jpg http://[server]/JU/Keep%20Watch.full.jpg -keeper_of_kookus.jpg http://[server]/VI/Keeper%20of%20Kookus.full.jpg -keeper_of_progenitus.jpg http://[server]/ALA/Keeper%20of%20Progenitus.full.jpg -keeper_of_the_beasts.jpg http://[server]/EX/Keeper%20of%20the%20Beasts.full.jpg -keeper_of_the_dead.jpg http://[server]/EX/Keeper%20of%20the%20Dead.full.jpg -keeper_of_the_flame.jpg http://[server]/EX/Keeper%20of%20the%20Flame.full.jpg -keeper_of_the_light.jpg http://[server]/EX/Keeper%20of%20the%20Light.full.jpg -keeper_of_the_mind.jpg http://[server]/EX/Keeper%20of%20the%20Mind.full.jpg -keeper_of_the_nine_gales.jpg http://[server]/LE/Keeper%20of%20the%20Nine%20Gales.full.jpg -keeper_of_the_sacred_word.jpg http://[server]/UNH/Keeper%20of%20the%20Sacred%20Word.full.jpg -keeper_of_tresserhorn.jpg http://[server]/AL/Keeper%20of%20Tresserhorn.full.jpg -keepers_of_the_faith.jpg http://[server]/LG/Keepers%20of%20the%20Faith.full.jpg -kei_takahashi.jpg http://[server]/LG/Kei%20Takahashi.full.jpg -keiga_the_tide_star.jpg http://[server]/CHK/Keiga,%20the%20Tide%20Star.full.jpg -keldon_arsonist.jpg http://[server]/PY/Keldon%20Arsonist.full.jpg -keldon_battlewagon.jpg http://[server]/PY/Keldon%20Battlewagon.full.jpg -keldon_berserker.jpg http://[server]/PY/Keldon%20Berserker.full.jpg -keldon_champion.jpg http://[server]/UD/Keldon%20Champion.full.jpg -keldon_firebombers.jpg http://[server]/PY/Keldon%20Firebombers.full.jpg -keldon_halberdier.jpg http://[server]/TSP/Keldon%20Halberdier.full.jpg -keldon_mantle.jpg http://[server]/PS/Keldon%20Mantle.full.jpg -keldon_marauders.jpg http://[server]/PLC/Keldon%20Marauders.full.jpg -keldon_megaliths.jpg http://[server]/FUT/Keldon%20Megaliths.full.jpg -keldon_necropolis.jpg http://[server]/IN/Keldon%20Necropolis.full.jpg -keldon_twilight.jpg http://[server]/PS/Keldon%20Twilight.full.jpg -keldon_vandals.jpg http://[server]/UD/Keldon%20Vandals.full.jpg -keldon_warlord.jpg http://[server]/5E/Keldon%20Warlord.full.jpg -kelinore_bat.jpg http://[server]/M10/Kelinore%20Bat.full.jpg -kelsinko_ranger.jpg http://[server]/IA/Kelsinko%20Ranger.full.jpg -kemuri_onna.jpg http://[server]/SOK/Kemuri-Onna.full.jpg -kentaro_the_smiling_cat.jpg http://[server]/BOK/Kentaro,%20the%20Smiling%20Cat.full.jpg -kezzerdrix.jpg http://[server]/TE/Kezzerdrix.full.jpg -khabal_ghoul.jpg http://[server]/AN/Khabal%20Ghoul.full.jpg -khalni_gem.jpg http://[server]/ZEN/Khalni%20Gem.full.jpg -khalni_heart_expedition.jpg http://[server]/ZEN/Khalni%20Heart%20Expedition.full.jpg -kher_keep.jpg http://[server]/TSP/Kher%20Keep.full.jpg -kiki_jiki_mirror_breaker.jpg http://[server]/CHK/Kiki-Jiki,%20Mirror%20Breaker.full.jpg -kiku_nights_flower.jpg http://[server]/CHK/Kiku,%20Night's%20Flower.full.jpg -kikus_shadow.jpg http://[server]/SOK/Kiku's%20Shadow.full.jpg -kill!_destroy!.jpg http://[server]/UNH/Kill!%20Destroy!.full.jpg -kill_suit_cultist.jpg http://[server]/DIS/Kill-Suit%20Cultist.full.jpg -kill_switch.jpg http://[server]/NE/Kill%20Switch.full.jpg -killer_bees.jpg http://[server]/LG/Killer%20Bees.full.jpg -killer_instinct.jpg http://[server]/GP/Killer%20Instinct.full.jpg -killer_whale.jpg http://[server]/EX/Killer%20Whale.full.jpg -kilnmouth_dragon.jpg http://[server]/LE/Kilnmouth%20Dragon.full.jpg -kindle.jpg http://[server]/TE/Kindle.full.jpg -kindle_the_carnage.jpg http://[server]/DIS/Kindle%20the%20Carnage.full.jpg -kindled_fury.jpg http://[server]/M10/Kindled%20Fury.full.jpg -king_cheetah.jpg http://[server]/9E/King%20Cheetah.full.jpg -king_crab.jpg http://[server]/UL/King%20Crab.full.jpg -king_suleiman.jpg http://[server]/AN/King%20Suleiman.full.jpg -kingfisher.jpg http://[server]/UD/Kingfisher.full.jpg -kings_assassin.jpg http://[server]/PT/King's%20Assassin.full.jpg -kinsbaile_balloonist.jpg http://[server]/LRW/Kinsbaile%20Balloonist.full.jpg -kinsbaile_borderguard.jpg http://[server]/MOR/Kinsbaile%20Borderguard.full.jpg -kinsbaile_cavalier.jpg http://[server]/MOR/Kinsbaile%20Cavalier.full.jpg -kinsbaile_skirmisher.jpg http://[server]/LRW/Kinsbaile%20Skirmisher.full.jpg -kinscaer_harpoonist.jpg http://[server]/SHM/Kinscaer%20Harpoonist.full.jpg -kira_great_glass_spinner.jpg http://[server]/BOK/Kira,%20Great%20Glass-Spinner.full.jpg -kird_ape.jpg http://[server]/9E/Kird%20Ape.full.jpg -kiri_onna.jpg http://[server]/SOK/Kiri-Onna.full.jpg -kirtars_desire.jpg http://[server]/OD/Kirtar's%20Desire.full.jpg -kirtars_wrath.jpg http://[server]/OD/Kirtar's%20Wrath.full.jpg -kismet.jpg http://[server]/LG/Kismet.full.jpg -kiss_of_death.jpg http://[server]/P2/Kiss%20of%20Death.full.jpg -kiss_of_the_amesha.jpg http://[server]/ALA/Kiss%20of%20the%20Amesha.full.jpg -kitchen_finks.jpg http://[server]/SHM/Kitchen%20Finks.full.jpg -kithkin_armor.jpg http://[server]/WL/Kithkin%20Armor.full.jpg -kithkin_daggerdare.jpg http://[server]/LRW/Kithkin%20Daggerdare.full.jpg -kithkin_greatheart.jpg http://[server]/LRW/Kithkin%20Greatheart.full.jpg -kithkin_harbinger.jpg http://[server]/LRW/Kithkin%20Harbinger.full.jpg -kithkin_healer.jpg http://[server]/LRW/Kithkin%20Healer.full.jpg -kithkin_mourncaller.jpg http://[server]/LRW/Kithkin%20Mourncaller.full.jpg -kithkin_rabble.jpg http://[server]/SHM/Kithkin%20Rabble.full.jpg -kithkin_shielddare.jpg http://[server]/SHM/Kithkin%20Shielddare.full.jpg -kithkin_spellduster.jpg http://[server]/EVE/Kithkin%20Spellduster.full.jpg -kithkin_zealot.jpg http://[server]/EVE/Kithkin%20Zealot.full.jpg -kithkin_zephyrnaut.jpg http://[server]/MOR/Kithkin%20Zephyrnaut.full.jpg -kitsune_blademaster.jpg http://[server]/CHK/Kitsune%20Blademaster.full.jpg -kitsune_bonesetter.jpg http://[server]/SOK/Kitsune%20Bonesetter.full.jpg -kitsune_dawnblade.jpg http://[server]/SOK/Kitsune%20Dawnblade.full.jpg -kitsune_diviner.jpg http://[server]/CHK/Kitsune%20Diviner.full.jpg -kitsune_healer.jpg http://[server]/CHK/Kitsune%20Healer.full.jpg -kitsune_loreweaver.jpg http://[server]/SOK/Kitsune%20Loreweaver.full.jpg -kitsune_mystic.jpg http://[server]/CHK/Kitsune%20Mystic.full.jpg -kitsune_palliator.jpg http://[server]/BOK/Kitsune%20Palliator.full.jpg -kitsune_riftwalker.jpg http://[server]/CHK/Kitsune%20Riftwalker.full.jpg -kiyomaro_first_to_stand.jpg http://[server]/SOK/Kiyomaro,%20First%20to%20Stand.full.jpg -kjeldoran_dead.jpg http://[server]/6E/Kjeldoran%20Dead.full.jpg -kjeldoran_elite_guard.jpg http://[server]/IA/Kjeldoran%20Elite%20Guard.full.jpg -kjeldoran_escort.jpg http://[server]/AL/Kjeldoran%20Escort1.full.jpg -kjeldoran_frostbeast.jpg http://[server]/IA/Kjeldoran%20Frostbeast.full.jpg -kjeldoran_gargoyle.jpg http://[server]/CS/Kjeldoran%20Gargoyle.full.jpg -kjeldoran_guard.jpg http://[server]/IA/Kjeldoran%20Guard.full.jpg -kjeldoran_home_guard.jpg http://[server]/AL/Kjeldoran%20Home%20Guard.full.jpg -kjeldoran_javelineer.jpg http://[server]/CS/Kjeldoran%20Javelineer.full.jpg -kjeldoran_knight.jpg http://[server]/IA/Kjeldoran%20Knight.full.jpg -kjeldoran_outpost.jpg http://[server]/AL/Kjeldoran%20Outpost.full.jpg -kjeldoran_outrider.jpg http://[server]/CS/Kjeldoran%20Outrider.full.jpg -kjeldoran_phalanx.jpg http://[server]/IA/Kjeldoran%20Phalanx.full.jpg -kjeldoran_pride.jpg http://[server]/CST/Kjeldoran%20Pride.full.jpg -kjeldoran_royal_guard.jpg http://[server]/10E/Kjeldoran%20Royal%20Guard.full.jpg -kjeldoran_skycaptain.jpg http://[server]/IA/Kjeldoran%20Skycaptain.full.jpg -kjeldoran_skyknight.jpg http://[server]/IA/Kjeldoran%20Skyknight.full.jpg -kjeldoran_war_cry.jpg http://[server]/CS/Kjeldoran%20War%20Cry.full.jpg -kjeldoran_warrior.jpg http://[server]/IA/Kjeldoran%20Warrior.full.jpg -knacksaw_clique.jpg http://[server]/SHM/Knacksaw%20Clique.full.jpg -knight_captain_of_eos.jpg http://[server]/ALA/Knight-Captain%20of%20Eos.full.jpg -knight_errant.jpg http://[server]/7E/Knight%20Errant.full.jpg -knight_of_dawn.jpg http://[server]/TE/Knight%20of%20Dawn.full.jpg -knight_of_dusk.jpg http://[server]/10E/Knight%20of%20Dusk.full.jpg -knight_of_meadowgrain.jpg http://[server]/LRW/Knight%20of%20Meadowgrain.full.jpg -knight_of_new_alara.jpg http://[server]/ARB/Knight%20of%20New%20Alara.full.jpg -knight_of_stromgald.jpg http://[server]/IA/Knight%20of%20Stromgald.full.jpg -knight_of_sursi.jpg http://[server]/FUT/Knight%20of%20Sursi.full.jpg -knight_of_the_hokey_pokey.jpg http://[server]/UG/Knight%20of%20the%20Hokey%20Pokey.full.jpg -knight_of_the_holy_nimbus.jpg http://[server]/TSP/Knight%20of%20the%20Holy%20Nimbus.full.jpg -knight_of_the_mists.jpg http://[server]/VI/Knight%20of%20the%20Mists.full.jpg -knight_of_the_reliquary.jpg http://[server]/CFX/Knight%20of%20the%20Reliquary.full.jpg -knight_of_the_skyward_eye.jpg http://[server]/ALA/Knight%20of%20the%20Skyward%20Eye.full.jpg -knight_of_the_white_orchid.jpg http://[server]/ALA/Knight%20of%20the%20White%20Orchid.full.jpg -knight_of_valor.jpg http://[server]/VI/Knight%20of%20Valor.full.jpg -knighthood.jpg http://[server]/7E/Knighthood.full.jpg -knights_of_thorn.jpg http://[server]/DK/Knights%20of%20Thorn.full.jpg -knollspine_dragon.jpg http://[server]/SHM/Knollspine%20Dragon.full.jpg -knollspine_invocation.jpg http://[server]/SHM/Knollspine%20Invocation.full.jpg -knotvine_mystic.jpg http://[server]/CFX/Knotvine%20Mystic.full.jpg -knotvine_paladin.jpg http://[server]/ARB/Knotvine%20Paladin.full.jpg -knowledge_exploitation.jpg http://[server]/MOR/Knowledge%20Exploitation.full.jpg -knowledge_vault.jpg http://[server]/LG/Knowledge%20Vault.full.jpg -knucklebone_witch.jpg http://[server]/LRW/Knucklebone%20Witch.full.jpg -kobold_drill_sergeant.jpg http://[server]/LG/Kobold%20Drill%20Sergeant.full.jpg -kobold_overlord.jpg http://[server]/LG/Kobold%20Overlord.full.jpg -kobold_taskmaster.jpg http://[server]/LG/Kobold%20Taskmaster.full.jpg -kobolds_of_kher_keep.jpg http://[server]/LG/Kobolds%20of%20Kher%20Keep.full.jpg -kodama_of_the_center_tree.jpg http://[server]/BOK/Kodama%20of%20the%20Center%20Tree.full.jpg -kodama_of_the_north_tree.jpg http://[server]/CHK/Kodama%20of%20the%20North%20Tree.full.jpg -kodama_of_the_south_tree.jpg http://[server]/CHK/Kodama%20of%20the%20South%20Tree.full.jpg -kodamas_might.jpg http://[server]/CHK/Kodama's%20Might.full.jpg -kodamas_reach.jpg http://[server]/CHK/Kodama's%20Reach.full.jpg -kokusho_the_evening_star.jpg http://[server]/DRB/Kokusho,%20the%20Evening%20Star.full.jpg -konda_lord_of_eiganjo.jpg http://[server]/CHK/Konda,%20Lord%20of%20Eiganjo.full.jpg -kondas_banner.jpg http://[server]/CHK/Konda's%20Banner.full.jpg -kondas_hatamoto.jpg http://[server]/CHK/Konda's%20Hatamoto.full.jpg -kongming_sleeping_dragon.jpg http://[server]/P3/Kongming,%20Sleeping%20Dragon.full.jpg -kongmings_contraptions.jpg http://[server]/P3/Kongming's%20Contraptions.full.jpg -kookus.jpg http://[server]/VI/Kookus.full.jpg -kor_aeronaut.jpg http://[server]/ZEN/Kor%20Aeronaut.full.jpg -kor_cartographer.jpg http://[server]/ZEN/Kor%20Cartographer.full.jpg -kor_chant.jpg http://[server]/EX/Kor%20Chant.full.jpg -kor_dirge.jpg http://[server]/PLC/Kor%20Dirge.full.jpg -kor_duelist.jpg http://[server]/ZEN/Kor%20Duelist.full.jpg -kor_haven.jpg http://[server]/NE/Kor%20Haven.full.jpg -kor_hookmaster.jpg http://[server]/ZEN/Kor%20Hookmaster.full.jpg -kor_outfitter.jpg http://[server]/ZEN/Kor%20Outfitter.full.jpg -kor_sanctifiers.jpg http://[server]/HOP/Kor%20Sanctifiers.full.jpg -kor_skyfisher.jpg http://[server]/ZEN/Kor%20Skyfisher.full.jpg -korlash_heir_to_blackblade.jpg http://[server]/FUT/Korlash,%20Heir%20to%20Blackblade.full.jpg -kormus_bell.jpg http://[server]/4E/Kormus%20Bell.full.jpg -koskun_falls.jpg http://[server]/HL/Koskun%20Falls.full.jpg -koskun_keep.jpg http://[server]/HL/Koskun%20Keep.full.jpg -kraken_hatchling.jpg http://[server]/ZEN/Kraken%20Hatchling.full.jpg -krakens_eye.jpg http://[server]/M10/Kraken's%20Eye.full.jpg -krakilin.jpg http://[server]/TE/Krakilin.full.jpg -kranioceros.jpg http://[server]/CFX/Kranioceros.full.jpg -krark_clan_engineers.jpg http://[server]/FD/Krark-Clan%20Engineers.full.jpg -krark_clan_grunt.jpg http://[server]/MR/Krark-Clan%20Grunt.full.jpg -krark_clan_ironworks.jpg http://[server]/FD/Krark-Clan%20Ironworks.full.jpg -krark_clan_ogre.jpg http://[server]/FD/Krark-Clan%20Ogre.full.jpg -krark_clan_shaman.jpg http://[server]/MR/Krark-Clan%20Shaman.full.jpg -krark_clan_stoker.jpg http://[server]/DS/Krark-Clan%20Stoker.full.jpg -krarks_thumb.jpg http://[server]/MR/Krark's%20Thumb.full.jpg -krazy_kow.jpg http://[server]/UG/Krazy%20Kow.full.jpg -kresh_the_bloodbraided.jpg http://[server]/ALA/Kresh%20the%20Bloodbraided.full.jpg -kris_mage.jpg http://[server]/MM/Kris%20Mage.full.jpg -krosan_archer.jpg http://[server]/OD/Krosan%20Archer.full.jpg -krosan_avenger.jpg http://[server]/OD/Krosan%20Avenger.full.jpg -krosan_beast.jpg http://[server]/OD/Krosan%20Beast.full.jpg -krosan_cloudscraper.jpg http://[server]/LE/Krosan%20Cloudscraper.full.jpg -krosan_colossus.jpg http://[server]/ON/Krosan%20Colossus.full.jpg -krosan_constrictor.jpg http://[server]/TO/Krosan%20Constrictor.full.jpg -krosan_drover.jpg http://[server]/SC/Krosan%20Drover.full.jpg -krosan_grip.jpg http://[server]/TSP/Krosan%20Grip.full.jpg -krosan_groundshaker.jpg http://[server]/ON/Krosan%20Groundshaker.full.jpg -krosan_reclamation.jpg http://[server]/JU/Krosan%20Reclamation.full.jpg -krosan_restorer.jpg http://[server]/TO/Krosan%20Restorer.full.jpg -krosan_tusker.jpg http://[server]/ON/Krosan%20Tusker.full.jpg -krosan_verge.jpg http://[server]/JU/Krosan%20Verge.full.jpg -krosan_vorine.jpg http://[server]/LE/Krosan%20Vorine.full.jpg -krosan_warchief.jpg http://[server]/SC/Krosan%20Warchief.full.jpg -krosan_wayfarer.jpg http://[server]/JU/Krosan%20Wayfarer.full.jpg -krovikan_elementalist.jpg http://[server]/IA/Krovikan%20Elementalist.full.jpg -krovikan_fetish.jpg http://[server]/5E/Krovikan%20Fetish.full.jpg -krovikan_horror.jpg http://[server]/AL/Krovikan%20Horror.full.jpg -krovikan_mist.jpg http://[server]/CS/Krovikan%20Mist.full.jpg -krovikan_plague.jpg http://[server]/AL/Krovikan%20Plague.full.jpg -krovikan_rot.jpg http://[server]/CS/Krovikan%20Rot.full.jpg -krovikan_scoundrel.jpg http://[server]/CS/Krovikan%20Scoundrel.full.jpg -krovikan_sorcerer.jpg http://[server]/5E/Krovikan%20Sorcerer.full.jpg -krovikan_vampire.jpg http://[server]/IA/Krovikan%20Vampire.full.jpg -krovikan_whispers.jpg http://[server]/CS/Krovikan%20Whispers.full.jpg -kry_shield.jpg http://[server]/LG/Kry%20Shield.full.jpg -kudzu.jpg http://[server]/U/Kudzu.full.jpg -kukemssa_pirates.jpg http://[server]/MI/Kukemssa%20Pirates.full.jpg -kukemssa_serpent.jpg http://[server]/MI/Kukemssa%20Serpent.full.jpg -kulrath_knight.jpg http://[server]/SHM/Kulrath%20Knight.full.jpg -kumano_master_yamabushi.jpg http://[server]/CHK/Kumano,%20Master%20Yamabushi.full.jpg -kumanos_blessing.jpg http://[server]/BOK/Kumano's%20Blessing.full.jpg -kumanos_pupils.jpg http://[server]/CHK/Kumano's%20Pupils.full.jpg -kuon_ogre_ascendant.jpg http://[server]/SOK/Kuon,%20Ogre%20Ascendant.full.jpg -kurgadon.jpg http://[server]/SC/Kurgadon.full.jpg -kuro_pitlord.jpg http://[server]/CHK/Kuro,%20Pitlord.full.jpg -kuros_taken.jpg http://[server]/SOK/Kuro's%20Taken.full.jpg -kusari_gama.jpg http://[server]/CHK/Kusari-Gama.full.jpg -kyoki_sanitys_eclipse.jpg http://[server]/BOK/Kyoki,%20Sanity's%20Eclipse.full.jpg -kyren_archive.jpg http://[server]/MM/Kyren%20Archive.full.jpg -kyren_glider.jpg http://[server]/MM/Kyren%20Glider.full.jpg -kyren_legate.jpg http://[server]/MM/Kyren%20Legate.full.jpg -kyren_negotiations.jpg http://[server]/MM/Kyren%20Negotiations.full.jpg -kyren_sniper.jpg http://[server]/MM/Kyren%20Sniper.full.jpg -kyren_toy.jpg http://[server]/MM/Kyren%20Toy.full.jpg -kyscu_drake.jpg http://[server]/VI/Kyscu%20Drake.full.jpg \ No newline at end of file diff --git a/res/pics_link/card-pictures_l.txt b/res/pics_link/card-pictures_l.txt deleted file mode 100644 index 5a103d1fe33..00000000000 --- a/res/pics_link/card-pictures_l.txt +++ /dev/null @@ -1,344 +0,0 @@ -lab_rats.jpg http://[server]/SH/Lab%20Rats.full.jpg -labyrinth_minotaur.jpg http://[server]/5E/Labyrinth%20Minotaur.full.jpg -laccolith_grunt.jpg http://[server]/NE/Laccolith%20Grunt.full.jpg -laccolith_rig.jpg http://[server]/NE/Laccolith%20Rig.full.jpg -laccolith_titan.jpg http://[server]/NE/Laccolith%20Titan.full.jpg -laccolith_warrior.jpg http://[server]/NE/Laccolith%20Warrior.full.jpg -laccolith_whelp.jpg http://[server]/NE/Laccolith%20Whelp.full.jpg -lace_with_moonglove.jpg http://[server]/LRW/Lace%20with%20Moonglove.full.jpg -ladies_knight.jpg http://[server]/UNH/Ladies'%20Knight.full.jpg -lady_caleria.jpg http://[server]/LG/Lady%20Caleria.full.jpg -lady_evangela.jpg http://[server]/LG/Lady%20Evangela.full.jpg -lady_orca.jpg http://[server]/LG/Lady%20Orca.full.jpg -lady_sun.jpg http://[server]/P3/Lady%20Sun.full.jpg -lady_zhurong_warrior_queen.jpg http://[server]/P3/Lady%20Zhurong,%20Warrior%20Queen.full.jpg -lairwatch_giant.jpg http://[server]/LRW/Lairwatch%20Giant.full.jpg -lake_of_the_dead.jpg http://[server]/AL/Lake%20of%20the%20Dead.full.jpg -lammastide_weave.jpg http://[server]/LRW/Lammastide%20Weave.full.jpg -lance.jpg http://[server]/U/Lance.full.jpg -lancers_en_kor.jpg http://[server]/SH/Lancers%20en-Kor.full.jpg -land_aid_04.jpg http://[server]/UNH/Land%20Aid%20'04.full.jpg -land_cap.jpg http://[server]/IA/Land%20Cap.full.jpg -land_equilibrium.jpg http://[server]/LG/Land%20Equilibrium.full.jpg -land_grant.jpg http://[server]/MM/Land%20Grant.full.jpg -land_leeches.jpg http://[server]/DK/Land%20Leeches.full.jpg -land_tax.jpg http://[server]/LG/Land%20Tax.full.jpg -landbind_ritual.jpg http://[server]/ZEN/Landbind%20Ritual.full.jpg -landfill.jpg http://[server]/UG/Landfill.full.jpg -lands_edge.jpg http://[server]/LG/Land's%20Edge.full.jpg -landslide.jpg http://[server]/UD/Landslide.full.jpg -lantern_kami.jpg http://[server]/CHK/Lantern%20Kami.full.jpg -lantern_lit_graveyard.jpg http://[server]/CHK/Lantern-Lit%20Graveyard.full.jpg -lantern_of_insight.jpg http://[server]/FD/Lantern%20of%20Insight.full.jpg -lapis_lazuli_talisman.jpg http://[server]/IA/Lapis%20Lazuli%20Talisman.full.jpg -lapse_of_certainty.jpg http://[server]/CFX/Lapse%20of%20Certainty.full.jpg -laquatuss_champion.jpg http://[server]/TO/Laquatus's%20Champion.full.jpg -laquatuss_creativity.jpg http://[server]/OD/Laquatus's%20Creativity.full.jpg -laquatuss_disdain.jpg http://[server]/JU/Laquatus's%20Disdain.full.jpg -larceny.jpg http://[server]/8E/Larceny.full.jpg -lash_out.jpg http://[server]/LRW/Lash%20Out.full.jpg -lashknife.jpg http://[server]/NE/Lashknife.full.jpg -lashknife_barrier.jpg http://[server]/PS/Lashknife%20Barrier.full.jpg -last_breath.jpg http://[server]/MM/Last%20Breath.full.jpg -last_caress.jpg http://[server]/AP/Last%20Caress.full.jpg -last_chance.jpg http://[server]/PT/Last%20Chance.full.jpg -last_ditch_effort.jpg http://[server]/UL/Last-Ditch%20Effort.full.jpg -last_gasp.jpg http://[server]/RAV/Last%20Gasp.full.jpg -last_laugh.jpg http://[server]/TO/Last%20Laugh.full.jpg -last_rites.jpg http://[server]/OD/Last%20Rites.full.jpg -last_stand.jpg http://[server]/AP/Last%20Stand.full.jpg -last_word.jpg http://[server]/DS/Last%20Word.full.jpg -lat_nams_legacy.jpg http://[server]/CST/Lat-Nam's%20Legacy.full.jpg -latchkey_faerie.jpg http://[server]/MOR/Latchkey%20Faerie.full.jpg -latulla_keldon_overseer.jpg http://[server]/PY/Latulla,%20Keldon%20Overseer.full.jpg -latullas_orders.jpg http://[server]/PY/Latulla's%20Orders.full.jpg -laughing_hyena.jpg http://[server]/UNH/Laughing%20Hyena.full.jpg -launch.jpg http://[server]/US/Launch.full.jpg -lava_axe.jpg http://[server]/M10/Lava%20Axe.full.jpg -lava_blister.jpg http://[server]/OD/Lava%20Blister.full.jpg -lava_burst.jpg http://[server]/IA/Lava%20Burst.full.jpg -lava_dart.jpg http://[server]/JU/Lava%20Dart.full.jpg -lava_flow.jpg http://[server]/PT/Lava%20Flow.full.jpg -lava_hounds.jpg http://[server]/8E/Lava%20Hounds.full.jpg -lava_runner.jpg http://[server]/MM/Lava%20Runner.full.jpg -lava_spike.jpg http://[server]/CHK/Lava%20Spike.full.jpg -lava_storm.jpg http://[server]/WL/Lava%20Storm.full.jpg -lava_tubes.jpg http://[server]/IA/Lava%20Tubes.full.jpg -lava_zombie.jpg http://[server]/PS/Lava%20Zombie.full.jpg -lavaball_trap.jpg http://[server]/ZEN/Lavaball%20Trap.full.jpg -lavaborn_muse.jpg http://[server]/10E/Lavaborn%20Muse.full.jpg -lavacore_elemental.jpg http://[server]/PLC/Lavacore%20Elemental.full.jpg -lavalanche.jpg http://[server]/ARB/Lavalanche.full.jpg -lavamancers_skill.jpg http://[server]/ON/Lavamancer's%20Skill.full.jpg -lawbringer.jpg http://[server]/NE/Lawbringer.full.jpg -lay_of_the_land.jpg http://[server]/AP/Lay%20of%20the%20Land.full.jpg -lay_waste.jpg http://[server]/ON/Lay%20Waste.full.jpg -lead_astray.jpg http://[server]/JU/Lead%20Astray.full.jpg -lead_belly_chimera.jpg http://[server]/VI/Lead-Belly%20Chimera.full.jpg -lead_golem.jpg http://[server]/MI/Lead%20Golem.full.jpg -leaden_fists.jpg http://[server]/FUT/Leaden%20Fists.full.jpg -leaden_myr.jpg http://[server]/MR/Leaden%20Myr.full.jpg -leaf_crowned_elder.jpg http://[server]/MOR/Leaf-Crowned%20Elder.full.jpg -leaf_dancer.jpg http://[server]/OD/Leaf%20Dancer.full.jpg -leaf_gilder.jpg http://[server]/LRW/Leaf%20Gilder.full.jpg -leafdrake_roost.jpg http://[server]/DIS/Leafdrake%20Roost.full.jpg -leap.jpg http://[server]/SH/Leap.full.jpg -leap_of_flame.jpg http://[server]/GP/Leap%20of%20Flame.full.jpg -leaping_lizard.jpg http://[server]/HL/Leaping%20Lizard.full.jpg -leashling.jpg http://[server]/RAV/Leashling.full.jpg -leave_no_trace.jpg http://[server]/RAV/Leave%20No%20Trace.full.jpg -leech_bonder.jpg http://[server]/SHM/Leech%20Bonder.full.jpg -leeches.jpg http://[server]/HL/Leeches.full.jpg -leeching_licid.jpg http://[server]/TE/Leeching%20Licid.full.jpg -leechridden_swamp.jpg http://[server]/HOP/Leechridden%20Swamp.full.jpg -leering_emblem.jpg http://[server]/EVE/Leering%20Emblem.full.jpg -leering_gargoyle.jpg http://[server]/MI/Leering%20Gargoyle.full.jpg -leery_fogbeast.jpg http://[server]/ON/Leery%20Fogbeast.full.jpg -legacy_weapon.jpg http://[server]/10E/Legacy%20Weapon.full.jpg -legacys_allure.jpg http://[server]/TE/Legacy's%20Allure.full.jpg -legerdemain.jpg http://[server]/TE/Legerdemain.full.jpg -legions_of_lim_dul.jpg http://[server]/IA/Legions%20of%20Lim-Dul.full.jpg -leonin_abunas.jpg http://[server]/MR/Leonin%20Abunas.full.jpg -leonin_armorguard.jpg http://[server]/ARB/Leonin%20Armorguard.full.jpg -leonin_battlemage.jpg http://[server]/DS/Leonin%20Battlemage.full.jpg -leonin_bladetrap.jpg http://[server]/MR/Leonin%20Bladetrap.full.jpg -leonin_bola.jpg http://[server]/DS/Leonin%20Bola.full.jpg -leonin_den_guard.jpg http://[server]/MR/Leonin%20Den-Guard.full.jpg -leonin_elder.jpg http://[server]/MR/Leonin%20Elder.full.jpg -leonin_scimitar.jpg http://[server]/10E/Leonin%20Scimitar.full.jpg -leonin_shikari.jpg http://[server]/DS/Leonin%20Shikari.full.jpg -leonin_skyhunter.jpg http://[server]/9E/Leonin%20Skyhunter.full.jpg -leonin_squire.jpg http://[server]/FD/Leonin%20Squire.full.jpg -leonin_sun_standard.jpg http://[server]/MR/Leonin%20Sun%20Standard.full.jpg -leshracs_rite.jpg http://[server]/7E/Leshrac's%20Rite.full.jpg -leshracs_sigil.jpg http://[server]/IA/Leshrac's%20Sigil.full.jpg -lesser_gargadon.jpg http://[server]/8E/Lesser%20Gargadon.full.jpg -lesser_werewolf.jpg http://[server]/LG/Lesser%20Werewolf.full.jpg -lethal_vapors.jpg http://[server]/SC/Lethal%20Vapors.full.jpg -lethargy_trap.jpg http://[server]/ZEN/Lethargy%20Trap.full.jpg -letter_bomb.jpg http://[server]/UNH/Letter%20Bomb.full.jpg -leveler.jpg http://[server]/MR/Leveler.full.jpg -leviathan.jpg http://[server]/5E/Leviathan.full.jpg -levitation.jpg http://[server]/M10/Levitation.full.jpg -lexivore.jpg http://[server]/UG/Lexivore.full.jpg -ley_druid.jpg http://[server]/9E/Ley%20Druid.full.jpg -ley_line.jpg http://[server]/MM/Ley%20Line.full.jpg -leyline_of_lifeforce.jpg http://[server]/GP/Leyline%20of%20Lifeforce.full.jpg -leyline_of_lightning.jpg http://[server]/GP/Leyline%20of%20Lightning.full.jpg -leyline_of_singularity.jpg http://[server]/GP/Leyline%20of%20Singularity.full.jpg -leyline_of_the_meek.jpg http://[server]/GP/Leyline%20of%20the%20Meek.full.jpg -leyline_of_the_void.jpg http://[server]/GP/Leyline%20of%20the%20Void.full.jpg -lhurgoyf.jpg http://[server]/8E/Lhurgoyf.full.jpg -liability.jpg http://[server]/MM/Liability.full.jpg -liars_pendulum.jpg http://[server]/MR/Liar's%20Pendulum.full.jpg -liberate.jpg http://[server]/IN/Liberate.full.jpg -liberated_dwarf.jpg http://[server]/JU/Liberated%20Dwarf.full.jpg -library_of_alexandria.jpg http://[server]/AN/Library%20of%20Alexandria.full.jpg -library_of_lat_nam.jpg http://[server]/6E/Library%20of%20Lat-Nam.full.jpg -library_of_leng.jpg http://[server]/5E/Library%20of%20Leng.full.jpg -lich.jpg http://[server]/U/Lich.full.jpg -lich_lord_of_unx.jpg http://[server]/ARB/Lich%20Lord%20of%20Unx.full.jpg -lichenthrope.jpg http://[server]/VI/Lichenthrope.full.jpg -lichs_mirror.jpg http://[server]/ALA/Lich's%20Mirror.full.jpg -lichs_tomb.jpg http://[server]/DS/Lich's%20Tomb.full.jpg -liege_of_the_axe.jpg http://[server]/LE/Liege%20of%20the%20Axe.full.jpg -liege_of_the_hollows.jpg http://[server]/WL/Liege%20of%20the%20Hollows.full.jpg -liege_of_the_pit.jpg http://[server]/TSP/Liege%20of%20the%20Pit.full.jpg -lieutenant_kirtar.jpg http://[server]/OD/Lieutenant%20Kirtar.full.jpg -life_and_limb.jpg http://[server]/PLC/Life%20and%20Limb.full.jpg -life_burst.jpg http://[server]/OD/Life%20Burst.full.jpg -life_chisel.jpg http://[server]/LG/Life%20Chisel.full.jpg -life_from_the_loam.jpg http://[server]/RAV/Life%20From%20the%20Loam.full.jpg -life_matrix.jpg http://[server]/LG/Life%20Matrix.full.jpg -lifeblood.jpg http://[server]/LG/Lifeblood.full.jpg -lifedeath.jpg http://[server]/AP/LifeDeath.full.jpg -lifeforce.jpg http://[server]/5E/Lifeforce.full.jpg -lifegift.jpg http://[server]/BOK/Lifegift.full.jpg -lifelace.jpg http://[server]/4E/Lifelace.full.jpg -lifeline.jpg http://[server]/US/Lifeline.full.jpg -lifelink.jpg http://[server]/M10/Lifelink.full.jpg -lifespark_spellbomb.jpg http://[server]/MR/Lifespark%20Spellbomb.full.jpg -lifespinner.jpg http://[server]/BOK/Lifespinner.full.jpg -lifetap.jpg http://[server]/5E/Lifetap.full.jpg -lifted_by_clouds.jpg http://[server]/CHK/Lifted%20by%20Clouds.full.jpg -light_from_within.jpg http://[server]/EVE/Light%20from%20Within.full.jpg -light_of_day.jpg http://[server]/6E/Light%20of%20Day.full.jpg -light_of_sanction.jpg http://[server]/RAV/Light%20of%20Sanction.full.jpg -lightbringer.jpg http://[server]/NE/Lightbringer.full.jpg -lightning_angel.jpg http://[server]/AP/Lightning%20Angel.full.jpg -lightning_axe.jpg http://[server]/TSP/Lightning%20Axe.full.jpg -lightning_blast.jpg http://[server]/8E/Lightning%20Blast.full.jpg -lightning_blow.jpg http://[server]/IA/Lightning%20Blow.full.jpg -lightning_bolt.jpg http://[server]/M10/Lightning%20Bolt.full.jpg -lightning_cloud.jpg http://[server]/VI/Lightning%20Cloud.full.jpg -lightning_coils.jpg http://[server]/MR/Lightning%20Coils.full.jpg -lightning_crafter.jpg http://[server]/MOR/Lightning%20Crafter.full.jpg -lightning_dart.jpg http://[server]/IN/Lightning%20Dart.full.jpg -lightning_dragon.jpg http://[server]/US/Lightning%20Dragon.full.jpg -lightning_elemental.jpg http://[server]/M10/Lightning%20Elemental.full.jpg -lightning_greaves.jpg http://[server]/MR/Lightning%20Greaves.full.jpg -lightning_helix.jpg http://[server]/HOP/Lightning%20Helix.full.jpg -lightning_hounds.jpg http://[server]/MM/Lightning%20Hounds.full.jpg -lightning_reaver.jpg http://[server]/ARB/Lightning%20Reaver.full.jpg -lightning_reflexes.jpg http://[server]/MI/Lightning%20Reflexes.full.jpg -lightning_rift.jpg http://[server]/ON/Lightning%20Rift.full.jpg -lightning_serpent.jpg http://[server]/CS/Lightning%20Serpent.full.jpg -lightning_storm.jpg http://[server]/CS/Lightning%20Storm.full.jpg -lightning_surge.jpg http://[server]/JU/Lightning%20Surge.full.jpg -lightning_talons.jpg http://[server]/ALA/Lightning%20Talons.full.jpg -lightwielder_paladin.jpg http://[server]/M10/Lightwielder%20Paladin.full.jpg -lignify.jpg http://[server]/LRW/Lignify.full.jpg -liliana_vess.jpg http://[server]/M10/Liliana%20Vess.full.jpg -lilting_refrain.jpg http://[server]/US/Lilting%20Refrain.full.jpg -lim_dul_the_necromancer.jpg http://[server]/TSP/Lim-Dul%20the%20Necromancer.full.jpg -lim_duls_cohort.jpg http://[server]/IA/Lim-Dul's%20Cohort.full.jpg -lim_duls_hex.jpg http://[server]/IA/Lim-Dul's%20Hex.full.jpg -lim_duls_high_guard.jpg http://[server]/AL/Lim-Dul's%20High%20Guard1.full.jpg -lim_duls_paladin.jpg http://[server]/AL/Lim-Dul's%20Paladin.full.jpg -lim_duls_vault.jpg http://[server]/AL/Lim-Dul's%20Vault.full.jpg -limestone_golem.jpg http://[server]/OD/Limestone%20Golem.full.jpg -limited_resources.jpg http://[server]/EX/Limited%20Resources.full.jpg -lin_sivvi_defiant_hero.jpg http://[server]/NE/Lin%20Sivvi,%20Defiant%20Hero.full.jpg -linessa_zephyr_mage.jpg http://[server]/FUT/Linessa,%20Zephyr%20Mage.full.jpg -lingering_death.jpg http://[server]/SC/Lingering%20Death.full.jpg -lingering_mirage.jpg http://[server]/US/Lingering%20Mirage.full.jpg -lingering_tormentor.jpg http://[server]/EVE/Lingering%20Tormentor.full.jpg -lionheart_maverick.jpg http://[server]/GP/Lionheart%20Maverick.full.jpg -lions_eye_diamond.jpg http://[server]/MI/Lion's%20Eye%20Diamond.full.jpg -liquid_fire.jpg http://[server]/OD/Liquid%20Fire.full.jpg -liquify.jpg http://[server]/TO/Liquify.full.jpg -lithatog.jpg http://[server]/OD/Lithatog.full.jpg -lithophage.jpg http://[server]/MM/Lithophage.full.jpg -little_girl.jpg http://[server]/UNH/Little%20Girl.full.jpg -liu_bei_lord_of_shu.jpg http://[server]/P3/Liu%20Bei,%20Lord%20of%20Shu.full.jpg -living_airship.jpg http://[server]/AP/Living%20Airship.full.jpg -living_armor.jpg http://[server]/CH/Living%20Armor.full.jpg -living_artifact.jpg http://[server]/5E/Living%20Artifact.full.jpg -living_death.jpg http://[server]/TE/Living%20Death.full.jpg -living_end.jpg http://[server]/TSP/Living%20End.full.jpg -living_hive.jpg http://[server]/MR/Living%20Hive.full.jpg -living_inferno.jpg http://[server]/GP/Living%20Inferno.full.jpg -living_lands.jpg http://[server]/6E/Living%20Lands.full.jpg -living_plane.jpg http://[server]/LG/Living%20Plane.full.jpg -living_terrain.jpg http://[server]/8E/Living%20Terrain.full.jpg -living_tsunami.jpg http://[server]/ZEN/Living%20Tsunami.full.jpg -living_wall.jpg http://[server]/U/Living%20Wall.full.jpg -living_wish.jpg http://[server]/JU/Living%20Wish.full.jpg -livonya_silone.jpg http://[server]/LG/Livonya%20Silone.full.jpg -lizard_warrior.jpg http://[server]/PT/Lizard%20Warrior.full.jpg -llanowar_augur.jpg http://[server]/FUT/Llanowar%20Augur.full.jpg -llanowar_behemoth.jpg http://[server]/9E/Llanowar%20Behemoth.full.jpg -llanowar_cavalry.jpg http://[server]/IN/Llanowar%20Cavalry.full.jpg -llanowar_dead.jpg http://[server]/AP/Llanowar%20Dead.full.jpg -llanowar_druid.jpg http://[server]/WL/Llanowar%20Druid.full.jpg -llanowar_elite.jpg http://[server]/IN/Llanowar%20Elite.full.jpg -llanowar_elves.jpg http://[server]/M10/Llanowar%20Elves.full.jpg -llanowar_empath.jpg http://[server]/FUT/Llanowar%20Empath.full.jpg -llanowar_knight.jpg http://[server]/IN/Llanowar%20Knight.full.jpg -llanowar_mentor.jpg http://[server]/FUT/Llanowar%20Mentor.full.jpg -llanowar_reborn.jpg http://[server]/FUT/Llanowar%20Reborn.full.jpg -llanowar_sentinel.jpg http://[server]/10E/Llanowar%20Sentinel.full.jpg -llanowar_vanguard.jpg http://[server]/IN/Llanowar%20Vanguard.full.jpg -llanowar_wastes.jpg http://[server]/10E/Llanowar%20Wastes.full.jpg -llawan_cephalid_empress.jpg http://[server]/TO/Llawan,%20Cephalid%20Empress.full.jpg -loafing_giant.jpg http://[server]/IN/Loafing%20Giant.full.jpg -loam_dweller.jpg http://[server]/BOK/Loam%20Dweller.full.jpg -loamdragger_giant.jpg http://[server]/SHM/Loamdragger%20Giant.full.jpg -loaming_shaman.jpg http://[server]/DIS/Loaming%20Shaman.full.jpg -lobotomy.jpg http://[server]/IN/Lobotomy.full.jpg -loch_korrigan.jpg http://[server]/SHM/Loch%20Korrigan.full.jpg -locket_of_yesterdays.jpg http://[server]/TSP/Locket%20of%20Yesterdays.full.jpg -lockjaw_snapper.jpg http://[server]/SHM/Lockjaw%20Snapper.full.jpg -locust_miser.jpg http://[server]/SOK/Locust%20Miser.full.jpg -locust_swarm.jpg http://[server]/MI/Locust%20Swarm.full.jpg -lodestone_bauble.jpg http://[server]/AL/Lodestone%20Bauble.full.jpg -lodestone_myr.jpg http://[server]/MR/Lodestone%20Myr.full.jpg -logic_knot.jpg http://[server]/FUT/Logic%20Knot.full.jpg -lone_wolf.jpg http://[server]/8E/Lone%20Wolf.full.jpg -lonely_sandbar.jpg http://[server]/ON/Lonely%20Sandbar.full.jpg -long_forgotten_gohei.jpg http://[server]/CHK/Long-Forgotten%20Gohei.full.jpg -long_term_plans.jpg http://[server]/SC/Long-Term%20Plans.full.jpg -longbow_archer.jpg http://[server]/7E/Longbow%20Archer.full.jpg -longhorn_firebeast.jpg http://[server]/TO/Longhorn%20Firebeast.full.jpg -look_at_me_im_r&d.jpg http://[server]/UNH/Look%20at%20Me,%20I'm%20R&D.full.jpg -look_at_me_im_the_dci.jpg http://[server]/UG/Look%20at%20Me,%20I'm%20the%20DCI.full.jpg -looming_hoverguard.jpg http://[server]/MR/Looming%20Hoverguard.full.jpg -looming_shade.jpg http://[server]/M10/Looming%20Shade.full.jpg -loose_lips.jpg http://[server]/UNH/Loose%20Lips.full.jpg -looter_il_kor.jpg http://[server]/TSP/Looter%20il-Kor.full.jpg -lord_magnus.jpg http://[server]/LG/Lord%20Magnus.full.jpg -lord_of_atlantis.jpg http://[server]/7E/Lord%20of%20Atlantis.full.jpg -lord_of_extinction.jpg http://[server]/ARB/Lord%20of%20Extinction.full.jpg -lord_of_the_pit.jpg http://[server]/10E/Lord%20of%20the%20Pit.full.jpg -lord_of_the_undead.jpg http://[server]/10E/Lord%20of%20the%20Undead.full.jpg -lord_of_tresserhorn.jpg http://[server]/AL/Lord%20of%20Tresserhorn.full.jpg -lore_broker.jpg http://[server]/RAV/Lore%20Broker.full.jpg -lorescale_coatl.jpg http://[server]/ARB/Lorescale%20Coatl.full.jpg -lorthos_the_tidemaker.jpg http://[server]/ZEN/Lorthos,%20the%20Tidemaker.full.jpg -lose_hope.jpg http://[server]/FD/Lose%20Hope.full.jpg -lost_auramancers.jpg http://[server]/FUT/Lost%20Auramancers.full.jpg -lost_hours.jpg http://[server]/FUT/Lost%20Hours.full.jpg -lost_in_thought.jpg http://[server]/JU/Lost%20in%20Thought.full.jpg -lost_order_of_jarkeld.jpg http://[server]/IA/Lost%20Order%20of%20Jarkeld.full.jpg -lost_soul.jpg http://[server]/6E/Lost%20Soul.full.jpg -lotus_bloom.jpg http://[server]/TSP/Lotus%20Bloom.full.jpg -lotus_blossom.jpg http://[server]/US/Lotus%20Blossom.full.jpg -lotus_cobra.jpg http://[server]/ZEN/Lotus%20Cobra.full.jpg -lotus_guardian.jpg http://[server]/IN/Lotus%20Guardian.full.jpg -lotus_petal.jpg http://[server]/TE/Lotus%20Petal.full.jpg -lotus_vale.jpg http://[server]/WL/Lotus%20Vale.full.jpg -lovisa_coldeyes.jpg http://[server]/CS/Lovisa%20Coldeyes.full.jpg -lowland_basilisk.jpg http://[server]/SH/Lowland%20Basilisk.full.jpg -lowland_giant.jpg http://[server]/TE/Lowland%20Giant.full.jpg -lowland_oaf.jpg http://[server]/LRW/Lowland%20Oaf.full.jpg -lowland_tracker.jpg http://[server]/LE/Lowland%20Tracker.full.jpg -loxodon_anchorite.jpg http://[server]/FD/Loxodon%20Anchorite.full.jpg -loxodon_gatekeeper.jpg http://[server]/RAV/Loxodon%20Gatekeeper.full.jpg -loxodon_hierarch.jpg http://[server]/RAV/Loxodon%20Hierarch.full.jpg -loxodon_mender.jpg http://[server]/MR/Loxodon%20Mender.full.jpg -loxodon_mystic.jpg http://[server]/10E/Loxodon%20Mystic.full.jpg -loxodon_peacekeeper.jpg http://[server]/MR/Loxodon%20Peacekeeper.full.jpg -loxodon_punisher.jpg http://[server]/MR/Loxodon%20Punisher.full.jpg -loxodon_stalwart.jpg http://[server]/FD/Loxodon%20Stalwart.full.jpg -loxodon_warhammer.jpg http://[server]/10E/Loxodon%20Warhammer.full.jpg -loyal_gyrfalcon.jpg http://[server]/EVE/Loyal%20Gyrfalcon.full.jpg -loyal_retainers.jpg http://[server]/P3/Loyal%20Retainers.full.jpg -loyal_sentry.jpg http://[server]/10E/Loyal%20Sentry.full.jpg -lu_bu_master_at_arms.jpg http://[server]/P3/Lu%20Bu,%20Master-at-Arms.full.jpg -lu_meng_wu_general.jpg http://[server]/P3/Lu%20Meng,%20Wu%20General.full.jpg -lu_su_wu_advisor.jpg http://[server]/P3/Lu%20Su,%20Wu%20Advisor.full.jpg -lu_xun_scholar_general.jpg http://[server]/P3/Lu%20Xun,%20Scholar%20General.full.jpg -lucent_liminid.jpg http://[server]/FUT/Lucent%20Liminid.full.jpg -lull.jpg http://[server]/US/Lull.full.jpg -lullmage_mentor.jpg http://[server]/ZEN/Lullmage%20Mentor.full.jpg -lumbering_satyr.jpg http://[server]/MM/Lumbering%20Satyr.full.jpg -lumengrid_augur.jpg http://[server]/MR/Lumengrid%20Augur.full.jpg -lumengrid_sentinel.jpg http://[server]/MR/Lumengrid%20Sentinel.full.jpg -lumengrid_warden.jpg http://[server]/10E/Lumengrid%20Warden.full.jpg -luminarch_ascension.jpg http://[server]/ZEN/Luminarch%20Ascension.full.jpg -luminesce.jpg http://[server]/10E/Luminesce.full.jpg -luminescent_rain.jpg http://[server]/MOR/Luminescent%20Rain.full.jpg -luminous_angel.jpg http://[server]/MR/Luminous%20Angel.full.jpg -luminous_guardian.jpg http://[server]/OD/Luminous%20Guardian.full.jpg -lumithread_field.jpg http://[server]/FUT/Lumithread%20Field.full.jpg -lunar_avenger.jpg http://[server]/FD/Lunar%20Avenger.full.jpg -lunge.jpg http://[server]/MM/Lunge.full.jpg -lunk_errant.jpg http://[server]/MOR/Lunk%20Errant.full.jpg -lure.jpg http://[server]/10E/Lure.full.jpg -lure_of_prey.jpg http://[server]/MI/Lure%20of%20Prey.full.jpg -lurebound_scarecrow.jpg http://[server]/SHM/Lurebound%20Scarecrow.full.jpg -lurker.jpg http://[server]/DK/Lurker.full.jpg -lurking_evil.jpg http://[server]/US/Lurking%20Evil.full.jpg -lurking_informant.jpg http://[server]/RAV/Lurking%20Informant.full.jpg -lurking_jackals.jpg http://[server]/UD/Lurking%20Jackals.full.jpg -lurking_nightstalker.jpg http://[server]/P2/Lurking%20Nightstalker.full.jpg -lurking_predators.jpg http://[server]/M10/Lurking%20Predators.full.jpg -lurking_skirge.jpg http://[server]/UL/Lurking%20Skirge.full.jpg -lush_growth.jpg http://[server]/ALA/Lush%20Growth.full.jpg -lymph_sliver.jpg http://[server]/FUT/Lymph%20Sliver.full.jpg -lyna.jpg http://[server]/VG/Lyna.full.jpg -lynx.jpg http://[server]/ST/Lynx.full.jpg -lys_alana_bowmaster.jpg http://[server]/MOR/Lys%20Alana%20Bowmaster.full.jpg -lys_alana_huntmaster.jpg http://[server]/EVG/Lys%20Alana%20Huntmaster.full.jpg -lys_alana_scarblade.jpg http://[server]/LRW/Lys%20Alana%20Scarblade.full.jpg -lyzolda_the_blood_witch.jpg http://[server]/DIS/Lyzolda,%20the%20Blood%20Witch.full.jpg \ No newline at end of file diff --git a/res/pics_link/card-pictures_m.txt b/res/pics_link/card-pictures_m.txt deleted file mode 100644 index 7d7ada3551f..00000000000 --- a/res/pics_link/card-pictures_m.txt +++ /dev/null @@ -1,679 +0,0 @@ -ma_chao_western_warrior.jpg http://[server]/P3/Ma%20Chao,%20Western%20Warrior.full.jpg -macabre_waltz.jpg http://[server]/DIS/Macabre%20Waltz.full.jpg -macetail_hystrodon.jpg http://[server]/LE/Macetail%20Hystrodon.full.jpg -machinate.jpg http://[server]/DS/Machinate.full.jpg -mad_auntie.jpg http://[server]/LRW/Mad%20Auntie.full.jpg -mad_dog.jpg http://[server]/OD/Mad%20Dog.full.jpg -madblind_mountain.jpg http://[server]/SHM/Madblind%20Mountain.full.jpg -maddening_imp.jpg http://[server]/TE/Maddening%20Imp.full.jpg -maddening_wind.jpg http://[server]/IA/Maddening%20Wind.full.jpg -madrush_cyclops.jpg http://[server]/ARB/Madrush%20Cyclops.full.jpg -maelstrom_archangel.jpg http://[server]/CFX/Maelstrom%20Archangel.full.jpg -maelstrom_djinn.jpg http://[server]/FUT/Maelstrom%20Djinn.full.jpg -maelstrom_nexus.jpg http://[server]/ARB/Maelstrom%20Nexus.full.jpg -maelstrom_pulse.jpg http://[server]/ARB/Maelstrom%20Pulse.full.jpg -maga_traitor_to_mortals.jpg http://[server]/SOK/Maga,%20Traitor%20to%20Mortals.full.jpg -mage_il_vec.jpg http://[server]/EX/Mage%20il-Vec.full.jpg -mage_slayer.jpg http://[server]/ARB/Mage%20Slayer.full.jpg -magebane_armor.jpg http://[server]/M10/Magebane%20Armor.full.jpg -magefire_wings.jpg http://[server]/ARB/Magefire%20Wings.full.jpg -mages_contest.jpg http://[server]/IN/Mages'%20Contest.full.jpg -mages_guile.jpg http://[server]/ON/Mage's%20Guile.full.jpg -mageta_the_lion.jpg http://[server]/PY/Mageta%20the%20Lion.full.jpg -magetas_boon.jpg http://[server]/PY/Mageta's%20Boon.full.jpg -magewrights_stone.jpg http://[server]/DIS/Magewright's%20Stone.full.jpg -maggot_carrier.jpg http://[server]/8E/Maggot%20Carrier.full.jpg -maggot_therapy.jpg http://[server]/MM/Maggot%20Therapy.full.jpg -magical_hack.jpg http://[server]/5E/Magical%20Hack.full.jpg -magical_hacker.jpg http://[server]/UNH/Magical%20Hacker.full.jpg -magister_sphinx.jpg http://[server]/CFX/Magister%20Sphinx.full.jpg -magistrates_scepter.jpg http://[server]/MM/Magistrate's%20Scepter.full.jpg -magistrates_veto.jpg http://[server]/MM/Magistrate's%20Veto.full.jpg -magma_burst.jpg http://[server]/PS/Magma%20Burst.full.jpg -magma_giant.jpg http://[server]/FD/Magma%20Giant.full.jpg -magma_jet.jpg http://[server]/FD/Magma%20Jet.full.jpg -magma_mine.jpg http://[server]/VI/Magma%20Mine.full.jpg -magma_phoenix.jpg http://[server]/M10/Magma%20Phoenix.full.jpg -magma_rift.jpg http://[server]/ZEN/Magma%20Rift.full.jpg -magma_sliver.jpg http://[server]/LE/Magma%20Sliver.full.jpg -magma_spray.jpg http://[server]/ALA/Magma%20Spray.full.jpg -magma_vein.jpg http://[server]/OD/Magma%20Vein.full.jpg -magmasaur.jpg http://[server]/TE/Magmasaur.full.jpg -magmatic_core.jpg http://[server]/CS/Magmatic%20Core.full.jpg -magnetic_flux.jpg http://[server]/DS/Magnetic%20Flux.full.jpg -magnetic_mountain.jpg http://[server]/4E/Magnetic%20Mountain.full.jpg -magnetic_theft.jpg http://[server]/FD/Magnetic%20Theft.full.jpg -magnetic_web.jpg http://[server]/TE/Magnetic%20Web.full.jpg -magnify.jpg http://[server]/UD/Magnify.full.jpg -magnigoth_treefolk.jpg http://[server]/PS/Magnigoth%20Treefolk.full.jpg -magnivore.jpg http://[server]/9E/Magnivore.full.jpg -magosi_the_waterveil.jpg http://[server]/ZEN/Magosi,%20the%20Waterveil.full.jpg -magus_of_the_abyss.jpg http://[server]/FUT/Magus%20of%20the%20Abyss.full.jpg -magus_of_the_arena.jpg http://[server]/PLC/Magus%20of%20the%20Arena.full.jpg -magus_of_the_bazaar.jpg http://[server]/PLC/Magus%20of%20the%20Bazaar.full.jpg -magus_of_the_candelabra.jpg http://[server]/TSP/Magus%20of%20the%20Candelabra.full.jpg -magus_of_the_coffers.jpg http://[server]/PLC/Magus%20of%20the%20Coffers.full.jpg -magus_of_the_disk.jpg http://[server]/TSP/Magus%20of%20the%20Disk.full.jpg -magus_of_the_future.jpg http://[server]/FUT/Magus%20of%20the%20Future.full.jpg -magus_of_the_jar.jpg http://[server]/TSP/Magus%20of%20the%20Jar.full.jpg -magus_of_the_library.jpg http://[server]/PLC/Magus%20of%20the%20Library.full.jpg -magus_of_the_mirror.jpg http://[server]/TSP/Magus%20of%20the%20Mirror.full.jpg -magus_of_the_moat.jpg http://[server]/FUT/Magus%20of%20the%20Moat.full.jpg -magus_of_the_moon.jpg http://[server]/FUT/Magus%20of%20the%20Moon.full.jpg -magus_of_the_scroll.jpg http://[server]/TSP/Magus%20of%20the%20Scroll.full.jpg -magus_of_the_tabernacle.jpg http://[server]/PLC/Magus%20of%20the%20Tabernacle.full.jpg -magus_of_the_unseen.jpg http://[server]/5E/Magus%20of%20the%20Unseen.full.jpg -magus_of_the_vineyard.jpg http://[server]/FUT/Magus%20of%20the%20Vineyard.full.jpg -mahamoti_djinn.jpg http://[server]/10E/Mahamoti%20Djinn.full.jpg -major_teroh.jpg http://[server]/TO/Major%20Teroh.full.jpg -makeshift_mannequin.jpg http://[server]/LRW/Makeshift%20Mannequin.full.jpg -makindi_shieldmate.jpg http://[server]/ZEN/Makindi%20Shieldmate.full.jpg -malach_of_the_dawn.jpg http://[server]/PLC/Malach%20of%20the%20Dawn.full.jpg -malachite_golem.jpg http://[server]/MR/Malachite%20Golem.full.jpg -malachite_talisman.jpg http://[server]/IA/Malachite%20Talisman.full.jpg -malakir_bloodwitch.jpg http://[server]/ZEN/Malakir%20Bloodwitch.full.jpg -malevolent_awakening.jpg http://[server]/OD/Malevolent%20Awakening.full.jpg -malfegor.jpg http://[server]/CFX/Malfegor.full.jpg -malicious_advice.jpg http://[server]/PS/Malicious%20Advice.full.jpg -malignant_growth.jpg http://[server]/MI/Malignant%20Growth.full.jpg -mammoth_harness.jpg http://[server]/HL/Mammoth%20Harness.full.jpg -man_o_war.jpg http://[server]/PT/Man-o'-War.full.jpg -man_of_measure.jpg http://[server]/UNH/Man%20of%20Measure.full.jpg -mana_breach.jpg http://[server]/7E/Mana%20Breach.full.jpg -mana_cache.jpg http://[server]/NE/Mana%20Cache.full.jpg -mana_chains.jpg http://[server]/WL/Mana%20Chains.full.jpg -mana_clash.jpg http://[server]/9E/Mana%20Clash.full.jpg -mana_crypt.jpg http://[server]/HPB/Mana%20Crypt.full.jpg -mana_cylix.jpg http://[server]/PS/Mana%20Cylix.full.jpg -mana_drain.jpg http://[server]/LG/Mana%20Drain.full.jpg -mana_echoes.jpg http://[server]/ON/Mana%20Echoes.full.jpg -mana_flair.jpg http://[server]/UNH/Mana%20Flair.full.jpg -mana_flare.jpg http://[server]/5E/Mana%20Flare.full.jpg -mana_geyser.jpg http://[server]/FD/Mana%20Geyser.full.jpg -mana_leak.jpg http://[server]/9E/Mana%20Leak.full.jpg -mana_leech.jpg http://[server]/US/Mana%20Leech.full.jpg -mana_matrix.jpg http://[server]/LG/Mana%20Matrix.full.jpg -mana_maze.jpg http://[server]/IN/Mana%20Maze.full.jpg -mana_prism.jpg http://[server]/MI/Mana%20Prism.full.jpg -mana_reflection.jpg http://[server]/SHM/Mana%20Reflection.full.jpg -mana_screw.jpg http://[server]/UNH/Mana%20Screw.full.jpg -mana_seism.jpg http://[server]/CHK/Mana%20Seism.full.jpg -mana_severance.jpg http://[server]/TE/Mana%20Severance.full.jpg -mana_short.jpg http://[server]/7E/Mana%20Short.full.jpg -mana_skimmer.jpg http://[server]/TSP/Mana%20Skimmer.full.jpg -mana_tithe.jpg http://[server]/PLC/Mana%20Tithe.full.jpg -mana_vapors.jpg http://[server]/PY/Mana%20Vapors.full.jpg -mana_vault.jpg http://[server]/5E/Mana%20Vault.full.jpg -mana_vortex.jpg http://[server]/DK/Mana%20Vortex.full.jpg -mana_web.jpg http://[server]/WL/Mana%20Web.full.jpg -manabarbs.jpg http://[server]/M10/Manabarbs.full.jpg -manabond.jpg http://[server]/EX/Manabond.full.jpg -manacles_of_decay.jpg http://[server]/AP/Manacles%20of%20Decay.full.jpg -manaforce_mace.jpg http://[server]/CFX/Manaforce%20Mace.full.jpg -manaforge_cinder.jpg http://[server]/SHM/Manaforge%20Cinder.full.jpg -manakin.jpg http://[server]/TE/Manakin.full.jpg -manamorphose.jpg http://[server]/SHM/Manamorphose.full.jpg -manaplasm.jpg http://[server]/ALA/Manaplasm.full.jpg -mangara_of_corondor.jpg http://[server]/TSP/Mangara%20of%20Corondor.full.jpg -mangaras_blessing.jpg http://[server]/MI/Mangara's%20Blessing.full.jpg -mangaras_equity.jpg http://[server]/MI/Mangara's%20Equity.full.jpg -mangaras_tome.jpg http://[server]/MI/Mangara's%20Tome.full.jpg -maniacal_rage.jpg http://[server]/IN/Maniacal%20Rage.full.jpg -manipulate_fate.jpg http://[server]/IN/Manipulate%20Fate.full.jpg -mannichi_the_fevered_dream.jpg http://[server]/BOK/Mannichi,%20the%20Fevered%20Dream.full.jpg -manriki_gusari.jpg http://[server]/SOK/Manriki-Gusari.full.jpg -manta_ray.jpg http://[server]/WL/Manta%20Ray.full.jpg -manta_riders.jpg http://[server]/TE/Manta%20Riders.full.jpg -mantis_engine.jpg http://[server]/10E/Mantis%20Engine.full.jpg -mantle_of_leadership.jpg http://[server]/PLC/Mantle%20of%20Leadership.full.jpg -maralen_of_the_mornsong.jpg http://[server]/MOR/Maralen%20of%20the%20Mornsong.full.jpg -marauding_knight.jpg http://[server]/IN/Marauding%20Knight.full.jpg -maraxus.jpg http://[server]/VG/Maraxus.full.jpg -maraxus_of_keld.jpg http://[server]/WL/Maraxus%20of%20Keld.full.jpg -marble_chalice.jpg http://[server]/ALA/Marble%20Chalice.full.jpg -marble_diamond.jpg http://[server]/7E/Marble%20Diamond.full.jpg -marble_priest.jpg http://[server]/LG/Marble%20Priest.full.jpg -marble_titan.jpg http://[server]/9E/Marble%20Titan.full.jpg -march_of_souls.jpg http://[server]/PS/March%20of%20Souls.full.jpg -march_of_the_machines.jpg http://[server]/10E/March%20of%20the%20Machines.full.jpg -marhault_elsdragon.jpg http://[server]/LG/Marhault%20Elsdragon.full.jpg -marisis_twinclaws.jpg http://[server]/ARB/Marisi's%20Twinclaws.full.jpg -marit_lage.jpg http://[server]/REL/Marit%20Lage.full.jpg -marjhan.jpg http://[server]/HL/Marjhan.full.jpg -mark_of_asylum.jpg http://[server]/CFX/Mark%20of%20Asylum.full.jpg -mark_of_eviction.jpg http://[server]/RAV/Mark%20of%20Eviction.full.jpg -mark_of_fury.jpg http://[server]/UD/Mark%20of%20Fury.full.jpg -mark_of_mutiny.jpg http://[server]/ZEN/Mark%20of%20Mutiny.full.jpg -mark_of_sakiko.jpg http://[server]/BOK/Mark%20of%20Sakiko.full.jpg -mark_of_the_oni.jpg http://[server]/BOK/Mark%20of%20the%20Oni.full.jpg -marker_beetles.jpg http://[server]/UD/Marker%20Beetles.full.jpg -maro.jpg http://[server]/9E/Maro.full.jpg -marrow_chomper.jpg http://[server]/ARB/Marrow%20Chomper.full.jpg -marrow_gnawer.jpg http://[server]/CHK/Marrow-Gnawer.full.jpg -marsh_boa.jpg http://[server]/PY/Marsh%20Boa.full.jpg -marsh_casualties.jpg http://[server]/ZEN/Marsh%20Casualties.full.jpg -marsh_crocodile.jpg http://[server]/PS/Marsh%20Crocodile.full.jpg -marsh_flats.jpg http://[server]/ZEN/Marsh%20Flats.full.jpg -marsh_flitter.jpg http://[server]/LRW/Marsh%20Flitter.full.jpg -marsh_gas.jpg http://[server]/DK/Marsh%20Gas.full.jpg -marsh_goblins.jpg http://[server]/DK/Marsh%20Goblins.full.jpg -marsh_lurker.jpg http://[server]/TE/Marsh%20Lurker.full.jpg -marsh_viper.jpg http://[server]/5E/Marsh%20Viper.full.jpg -marshaling_cry.jpg http://[server]/FUT/Marshaling%20Cry.full.jpg -marshaling_the_troops.jpg http://[server]/P3/Marshaling%20the%20Troops.full.jpg -marshdrinker_giant.jpg http://[server]/EVE/Marshdrinker%20Giant.full.jpg -martial_coup.jpg http://[server]/CFX/Martial%20Coup.full.jpg -marton_stromgald.jpg http://[server]/IA/Marton%20Stromgald.full.jpg -martyr_of_ashes.jpg http://[server]/CS/Martyr%20of%20Ashes.full.jpg -martyr_of_bones.jpg http://[server]/CS/Martyr%20of%20Bones.full.jpg -martyr_of_frost.jpg http://[server]/CS/Martyr%20of%20Frost.full.jpg -martyr_of_sands.jpg http://[server]/CS/Martyr%20of%20Sands.full.jpg -martyr_of_spores.jpg http://[server]/CS/Martyr%20of%20Spores.full.jpg -martyrdom.jpg http://[server]/AL/Martyrdom1.full.jpg -martyred_rusalka.jpg http://[server]/GP/Martyred%20Rusalka.full.jpg -martyrs_cause.jpg http://[server]/UL/Martyr's%20Cause.full.jpg -martyrs_cry.jpg http://[server]/DK/Martyr's%20Cry.full.jpg -martyrs_of_korlis.jpg http://[server]/AQ/Martyrs%20of%20Korlis.full.jpg -martyrs_tomb.jpg http://[server]/AP/Martyrs'%20Tomb.full.jpg -masako_the_humorless.jpg http://[server]/CHK/Masako%20the%20Humorless.full.jpg -mask_of_intolerance.jpg http://[server]/AP/Mask%20of%20Intolerance.full.jpg -mask_of_law_and_grace.jpg http://[server]/UD/Mask%20of%20Law%20and%20Grace.full.jpg -mask_of_memory.jpg http://[server]/MR/Mask%20of%20Memory.full.jpg -mask_of_riddles.jpg http://[server]/ARB/Mask%20of%20Riddles.full.jpg -mask_of_the_mimic.jpg http://[server]/SH/Mask%20of%20the%20Mimic.full.jpg -masked_admirers.jpg http://[server]/LRW/Masked%20Admirers.full.jpg -masked_gorgon.jpg http://[server]/JU/Masked%20Gorgon.full.jpg -mass_calcify.jpg http://[server]/SHM/Mass%20Calcify.full.jpg -mass_hysteria.jpg http://[server]/MR/Mass%20Hysteria.full.jpg -mass_of_ghouls.jpg http://[server]/10E/Mass%20of%20Ghouls.full.jpg -massacre.jpg http://[server]/NE/Massacre.full.jpg -master_apothecary.jpg http://[server]/OD/Master%20Apothecary.full.jpg -master_decoy.jpg http://[server]/9E/Master%20Decoy.full.jpg -master_healer.jpg http://[server]/9E/Master%20Healer.full.jpg -master_of_arms.jpg http://[server]/WL/Master%20of%20Arms.full.jpg -master_of_etherium.jpg http://[server]/HOP/Master%20of%20Etherium.full.jpg -master_of_the_hunt.jpg http://[server]/LG/Master%20of%20the%20Hunt.full.jpg -master_of_the_veil.jpg http://[server]/LE/Master%20of%20the%20Veil.full.jpg -master_of_the_wild_hunt.jpg http://[server]/M10/Master%20of%20the%20Wild%20Hunt.full.jpg -master_transmuter.jpg http://[server]/CFX/Master%20Transmuter.full.jpg -master_warcraft.jpg http://[server]/RAV/Master%20Warcraft.full.jpg -masticore.jpg http://[server]/UD/Masticore.full.jpg -masumaro_first_to_live.jpg http://[server]/SOK/Masumaro,%20First%20to%20Live.full.jpg -matca_rioters.jpg http://[server]/CFX/Matca%20Rioters.full.jpg -matopi_golem.jpg http://[server]/VI/Matopi%20Golem.full.jpg -matsu_tribe_birdstalker.jpg http://[server]/SOK/Matsu-Tribe%20Birdstalker.full.jpg -matsu_tribe_decoy.jpg http://[server]/CHK/Matsu-Tribe%20Decoy.full.jpg -matsu_tribe_sniper.jpg http://[server]/BOK/Matsu-Tribe%20Sniper.full.jpg -mausoleum_turnkey.jpg http://[server]/RAV/Mausoleum%20Turnkey.full.jpg -mawcor.jpg http://[server]/7E/Mawcor.full.jpg -mayael_the_anima.jpg http://[server]/ALA/Mayael%20the%20Anima.full.jpg -mayaels_aria.jpg http://[server]/ARB/Mayael's%20Aria.full.jpg -maze_of_ith.jpg http://[server]/DK/Maze%20of%20Ith.full.jpg -maze_of_shadows.jpg http://[server]/TE/Maze%20of%20Shadows.full.jpg -meadowboon.jpg http://[server]/MOR/Meadowboon.full.jpg -measure_of_wickedness.jpg http://[server]/SOK/Measure%20of%20Wickedness.full.jpg -meddle.jpg http://[server]/MI/Meddle.full.jpg -meddling_kids.jpg http://[server]/UNH/Meddling%20Kids.full.jpg -meddling_mage.jpg http://[server]/PS/Meddling%20Mage.full.jpg -medicine_bag.jpg http://[server]/EX/Medicine%20Bag.full.jpg -medicine_runner.jpg http://[server]/SHM/Medicine%20Runner.full.jpg -meditate.jpg http://[server]/TE/Meditate.full.jpg -meekstone.jpg http://[server]/7E/Meekstone.full.jpg -megatherium.jpg http://[server]/MM/Megatherium.full.jpg -megatog.jpg http://[server]/MR/Megatog.full.jpg -meglonoth.jpg http://[server]/CFX/Meglonoth.full.jpg -megrim.jpg http://[server]/M10/Megrim.full.jpg -meishin_the_mind_cage.jpg http://[server]/SOK/Meishin,%20the%20Mind%20Cage.full.jpg -melancholy.jpg http://[server]/PLC/Melancholy.full.jpg -melee.jpg http://[server]/IA/Melee.full.jpg -melesse_spirit.jpg http://[server]/MI/Melesse%20Spirit.full.jpg -meloku_the_clouded_mirror.jpg http://[server]/CHK/Meloku%20the%20Clouded%20Mirror.full.jpg -meltdown.jpg http://[server]/US/Meltdown.full.jpg -melting.jpg http://[server]/IA/Melting.full.jpg -memnarch.jpg http://[server]/DS/Memnarch.full.jpg -memory_crystal.jpg http://[server]/EX/Memory%20Crystal.full.jpg -memory_erosion.jpg http://[server]/ALA/Memory%20Erosion.full.jpg -memory_jar.jpg http://[server]/UL/Memory%20Jar.full.jpg -memory_lapse.jpg http://[server]/7E/Memory%20Lapse.full.jpg -memory_plunder.jpg http://[server]/SHM/Memory%20Plunder.full.jpg -memory_sluice.jpg http://[server]/SHM/Memory%20Sluice.full.jpg -menacing_ogre.jpg http://[server]/ON/Menacing%20Ogre.full.jpg -mending_hands.jpg http://[server]/9E/Mending%20Hands.full.jpg -meng_huo_barbarian_king.jpg http://[server]/P3/Meng%20Huo,%20Barbarian%20King.full.jpg -meng_huos_horde.jpg http://[server]/P3/Meng%20Huo's%20Horde.full.jpg -mental_discipline.jpg http://[server]/UD/Mental%20Discipline.full.jpg -mental_note.jpg http://[server]/JU/Mental%20Note.full.jpg -mephidross_vampire.jpg http://[server]/FD/Mephidross%20Vampire.full.jpg -mephitic_ooze.jpg http://[server]/DS/Mephitic%20Ooze.full.jpg -mercadian_atlas.jpg http://[server]/MM/Mercadian%20Atlas.full.jpg -mercadian_bazaar.jpg http://[server]/MM/Mercadian%20Bazaar.full.jpg -mercadian_lift.jpg http://[server]/MM/Mercadian%20Lift.full.jpg -mercadias_downfall.jpg http://[server]/MM/Mercadia's%20Downfall.full.jpg -mercenaries.jpg http://[server]/IA/Mercenaries.full.jpg -mercenary_informer.jpg http://[server]/PY/Mercenary%20Informer.full.jpg -mercenary_knight.jpg http://[server]/PT/Mercenary%20Knight.full.jpg -merchant_of_secrets.jpg http://[server]/8E/Merchant%20of%20Secrets.full.jpg -merchant_scroll.jpg http://[server]/8E/Merchant%20Scroll.full.jpg -merchant_ship.jpg http://[server]/AN/Merchant%20Ship.full.jpg -mercurial_kite.jpg http://[server]/SC/Mercurial%20Kite.full.jpg -mercy_killing.jpg http://[server]/SHM/Mercy%20Killing.full.jpg -merfolk_assassin.jpg http://[server]/DK/Merfolk%20Assassin.full.jpg -merfolk_looter.jpg http://[server]/M10/Merfolk%20Looter.full.jpg -merfolk_of_the_pearl_trident.jpg http://[server]/7E/Merfolk%20of%20the%20Pearl%20Trident.full.jpg -merfolk_raiders.jpg http://[server]/MI/Merfolk%20Raiders.full.jpg -merfolk_seastalkers.jpg http://[server]/ZEN/Merfolk%20Seastalkers.full.jpg -merfolk_seer.jpg http://[server]/MI/Merfolk%20Seer.full.jpg -merfolk_sovereign.jpg http://[server]/M10/Merfolk%20Sovereign.full.jpg -merfolk_thaumaturgist.jpg http://[server]/PLC/Merfolk%20Thaumaturgist.full.jpg -merfolk_traders.jpg http://[server]/WL/Merfolk%20Traders.full.jpg -merfolk_wayfinder.jpg http://[server]/ZEN/Merfolk%20Wayfinder.full.jpg -merieke_ri_berit.jpg http://[server]/IA/Merieke%20Ri%20Berit.full.jpg -merrow_bonegnawer.jpg http://[server]/EVE/Merrow%20Bonegnawer.full.jpg -merrow_commerce.jpg http://[server]/LRW/Merrow%20Commerce.full.jpg -merrow_grimeblotter.jpg http://[server]/SHM/Merrow%20Grimeblotter.full.jpg -merrow_harbinger.jpg http://[server]/LRW/Merrow%20Harbinger.full.jpg -merrow_levitator.jpg http://[server]/EVE/Merrow%20Levitator.full.jpg -merrow_reejerey.jpg http://[server]/FNM/Merrow%20Reejerey.full.jpg -merrow_wavebreakers.jpg http://[server]/SHM/Merrow%20Wavebreakers.full.jpg -merrow_witsniper.jpg http://[server]/MOR/Merrow%20Witsniper.full.jpg -merseine.jpg http://[server]/FE/Merseine1.full.jpg -mesa_chicken.jpg http://[server]/UG/Mesa%20Chicken.full.jpg -mesa_enchantress.jpg http://[server]/M10/Mesa%20Enchantress.full.jpg -mesa_falcon.jpg http://[server]/6E/Mesa%20Falcon.full.jpg -mesa_pegasus.jpg http://[server]/5E/Mesa%20Pegasus.full.jpg -mesmeric_fiend.jpg http://[server]/TO/Mesmeric%20Fiend.full.jpg -mesmeric_orb.jpg http://[server]/MR/Mesmeric%20Orb.full.jpg -mesmeric_sliver.jpg http://[server]/FUT/Mesmeric%20Sliver.full.jpg -mesmeric_trance.jpg http://[server]/IA/Mesmeric%20Trance.full.jpg -messenger_falcons.jpg http://[server]/ARB/Messenger%20Falcons.full.jpg -metal_fatigue.jpg http://[server]/DS/Metal%20Fatigue.full.jpg -metallic_sliver.jpg http://[server]/TE/Metallic%20Sliver.full.jpg -metallurgeon.jpg http://[server]/ALA/Metallurgeon.full.jpg -metalworker.jpg http://[server]/UD/Metalworker.full.jpg -metamorphic_wurm.jpg http://[server]/OD/Metamorphic%20Wurm.full.jpg -metamorphose.jpg http://[server]/SC/Metamorphose.full.jpg -metamorphosis.jpg http://[server]/CH/Metamorphosis.full.jpg -metathran_aerostat.jpg http://[server]/IN/Metathran%20Aerostat.full.jpg -metathran_elite.jpg http://[server]/UD/Metathran%20Elite.full.jpg -metathran_soldier.jpg http://[server]/UD/Metathran%20Soldier.full.jpg -metathran_transport.jpg http://[server]/IN/Metathran%20Transport.full.jpg -metathran_zombie.jpg http://[server]/IN/Metathran%20Zombie.full.jpg -meteor_crater.jpg http://[server]/PS/Meteor%20Crater.full.jpg -meteor_shower.jpg http://[server]/IA/Meteor%20Shower.full.jpg -meteor_storm.jpg http://[server]/IN/Meteor%20Storm.full.jpg -metrognome.jpg http://[server]/US/Metrognome.full.jpg -michiko_konda_truth_seeker.jpg http://[server]/SOK/Michiko%20Konda,%20Truth%20Seeker.full.jpg -midnight_banshee.jpg http://[server]/SHM/Midnight%20Banshee.full.jpg -midnight_charm.jpg http://[server]/PLC/Midnight%20Charm.full.jpg -midnight_covenant.jpg http://[server]/CHK/Midnight%20Covenant.full.jpg -midnight_ritual.jpg http://[server]/10E/Midnight%20Ritual.full.jpg -midsummer_revel.jpg http://[server]/US/Midsummer%20Revel.full.jpg -might_of_alara.jpg http://[server]/CFX/Might%20of%20Alara.full.jpg -might_of_oaks.jpg http://[server]/M10/Might%20of%20Oaks.full.jpg -might_of_old_krosa.jpg http://[server]/TSP/Might%20of%20Old%20Krosa.full.jpg -might_of_the_nephilim.jpg http://[server]/DIS/Might%20of%20the%20Nephilim.full.jpg -might_sliver.jpg http://[server]/TSP/Might%20Sliver.full.jpg -might_weaver.jpg http://[server]/10E/Might%20Weaver.full.jpg -mightstone.jpg http://[server]/AQ/Mightstone.full.jpg -mighty_emergence.jpg http://[server]/ALA/Mighty%20Emergence.full.jpg -mijae_djinn.jpg http://[server]/AN/Mijae%20Djinn.full.jpg -mikokoro_center_of_the_sea.jpg http://[server]/SOK/Mikokoro,%20Center%20of%20the%20Sea.full.jpg -militant_monk.jpg http://[server]/TO/Militant%20Monk.full.jpg -militias_pride.jpg http://[server]/LRW/Militia's%20Pride.full.jpg -millikin.jpg http://[server]/OD/Millikin.full.jpg -millstone.jpg http://[server]/10E/Millstone.full.jpg -mimeofacture.jpg http://[server]/GP/Mimeofacture.full.jpg -minamo_school_at_waters_edge.jpg http://[server]/CHK/Minamo,%20School%20at%20Water's%20Edge.full.jpg -minamo_scrollkeeper.jpg http://[server]/SOK/Minamo%20Scrollkeeper.full.jpg -minamo_sightbender.jpg http://[server]/BOK/Minamo%20Sightbender.full.jpg -minamos_meddling.jpg http://[server]/BOK/Minamo's%20Meddling.full.jpg -mind_bend.jpg http://[server]/10E/Mind%20Bend.full.jpg -mind_bomb.jpg http://[server]/5E/Mind%20Bomb.full.jpg -mind_burst.jpg http://[server]/OD/Mind%20Burst.full.jpg -mind_control.jpg http://[server]/M10/Mind%20Control.full.jpg -mind_extraction.jpg http://[server]/AP/Mind%20Extraction.full.jpg -mind_funeral.jpg http://[server]/ARB/Mind%20Funeral.full.jpg -mind_games.jpg http://[server]/SH/Mind%20Games.full.jpg -mind_harness.jpg http://[server]/MI/Mind%20Harness.full.jpg -mind_knives.jpg http://[server]/PT/Mind%20Knives.full.jpg -mind_maggots.jpg http://[server]/EX/Mind%20Maggots.full.jpg -mind_over_matter.jpg http://[server]/EX/Mind%20Over%20Matter.full.jpg -mind_peel.jpg http://[server]/SH/Mind%20Peel.full.jpg -mind_ravel.jpg http://[server]/5E/Mind%20Ravel.full.jpg -mind_rot.jpg http://[server]/M10/Mind%20Rot.full.jpg -mind_shatter.jpg http://[server]/M10/Mind%20Shatter.full.jpg -mind_slash.jpg http://[server]/8E/Mind%20Slash.full.jpg -mind_sludge.jpg http://[server]/8E/Mind%20Sludge.full.jpg -mind_spring.jpg http://[server]/M10/Mind%20Spring.full.jpg -mind_stone.jpg http://[server]/10E/Mind%20Stone.full.jpg -mind_swords.jpg http://[server]/NE/Mind%20Swords.full.jpg -mind_twist.jpg http://[server]/4E/Mind%20Twist.full.jpg -mind_warp.jpg http://[server]/6E/Mind%20Warp.full.jpg -mind_whip.jpg http://[server]/IA/Mind%20Whip.full.jpg -mindbender_spores.jpg http://[server]/MI/Mindbender%20Spores.full.jpg -mindblaze.jpg http://[server]/CHK/Mindblaze.full.jpg -mindbreak_trap.jpg http://[server]/ZEN/Mindbreak%20Trap.full.jpg -mindlash_sliver.jpg http://[server]/TSP/Mindlash%20Sliver.full.jpg -mindleech_mass.jpg http://[server]/RAV/Mindleech%20Mass.full.jpg -mindless_automaton.jpg http://[server]/EX/Mindless%20Automaton.full.jpg -mindless_null.jpg http://[server]/ZEN/Mindless%20Null.full.jpg -mindlock_orb.jpg http://[server]/ALA/Mindlock%20Orb.full.jpg -mindmoil.jpg http://[server]/RAV/Mindmoil.full.jpg -minds_desire.jpg http://[server]/SC/Mind's%20Desire.full.jpg -minds_eye.jpg http://[server]/MR/Mind's%20Eye.full.jpg -mindslaver.jpg http://[server]/MR/Mindslaver.full.jpg -mindslicer.jpg http://[server]/9E/Mindslicer.full.jpg -mindstab.jpg http://[server]/TSP/Mindstab.full.jpg -mindstab_thrull.jpg http://[server]/5E/Mindstab%20Thrull.full.jpg -mindstorm_crown.jpg http://[server]/MR/Mindstorm%20Crown.full.jpg -mindwarper.jpg http://[server]/SH/Mindwarper.full.jpg -mindwhip_sliver.jpg http://[server]/TE/Mindwhip%20Sliver.full.jpg -mindwrack_liege.jpg http://[server]/EVE/Mindwrack%20Liege.full.jpg -mine_bearer.jpg http://[server]/PY/Mine%20Bearer.full.jpg -mine_excavation.jpg http://[server]/SHM/Mine%20Excavation.full.jpg -mine_layer.jpg http://[server]/OD/Mine%20Layer.full.jpg -mine_mine_mine!.jpg http://[server]/UG/Mine,%20Mine,%20Mine!.full.jpg -minion_of_leshrac.jpg http://[server]/IA/Minion%20of%20Leshrac.full.jpg -minion_of_tevesh_szat.jpg http://[server]/IA/Minion%20of%20Tevesh%20Szat.full.jpg -minion_of_the_wastes.jpg http://[server]/TE/Minion%20of%20the%20Wastes.full.jpg -minion_reflector.jpg http://[server]/ALA/Minion%20Reflector.full.jpg -minions_murmurs.jpg http://[server]/FUT/Minions'%20Murmurs.full.jpg -minister_of_impediments.jpg http://[server]/DIS/Minister%20of%20Impediments.full.jpg -minotaur_explorer.jpg http://[server]/OD/Minotaur%20Explorer.full.jpg -minotaur_illusionist.jpg http://[server]/AP/Minotaur%20Illusionist.full.jpg -minotaur_tactician.jpg http://[server]/AP/Minotaur%20Tactician.full.jpg -minotaur_warrior.jpg http://[server]/PT/Minotaur%20Warrior.full.jpg -miracle_worker.jpg http://[server]/DK/Miracle%20Worker.full.jpg -miraculous_recovery.jpg http://[server]/VI/Miraculous%20Recovery.full.jpg -mirari.jpg http://[server]/OD/Mirari.full.jpg -miraris_wake.jpg http://[server]/JU/Mirari's%20Wake.full.jpg -mire_blight.jpg http://[server]/ZEN/Mire%20Blight.full.jpg -mire_boa.jpg http://[server]/PLC/Mire%20Boa.full.jpg -mire_kavu.jpg http://[server]/PS/Mire%20Kavu.full.jpg -mire_shade.jpg http://[server]/MI/Mire%20Shade.full.jpg -miren_the_moaning_well.jpg http://[server]/SOK/Miren,%20the%20Moaning%20Well.full.jpg -mirozel.jpg http://[server]/EX/Mirozel.full.jpg -mirri.jpg http://[server]/VG/Mirri.full.jpg -mirri_cat_warrior.jpg http://[server]/10E/Mirri,%20Cat%20Warrior.full.jpg -mirri_the_cursed.jpg http://[server]/PLC/Mirri%20the%20Cursed.full.jpg -mirris_guile.jpg http://[server]/TE/Mirri's%20Guile.full.jpg -mirrodins_core.jpg http://[server]/DS/Mirrodin's%20Core.full.jpg -mirror_entity.jpg http://[server]/LRW/Mirror%20Entity.full.jpg -mirror_gallery.jpg http://[server]/BOK/Mirror%20Gallery.full.jpg -mirror_golem.jpg http://[server]/MR/Mirror%20Golem.full.jpg -mirror_mirror.jpg http://[server]/UG/Mirror%20Mirror.full.jpg -mirror_of_fate.jpg http://[server]/M10/Mirror%20of%20Fate.full.jpg -mirror_sheen.jpg http://[server]/EVE/Mirror%20Sheen.full.jpg -mirror_sigil_sergeant.jpg http://[server]/CFX/Mirror-Sigil%20Sergeant.full.jpg -mirror_strike.jpg http://[server]/PY/Mirror%20Strike.full.jpg -mirror_universe.jpg http://[server]/LG/Mirror%20Universe.full.jpg -mirror_wall.jpg http://[server]/JU/Mirror%20Wall.full.jpg -mirrorweave.jpg http://[server]/SHM/Mirrorweave.full.jpg -mirrorwood_treefolk.jpg http://[server]/PS/Mirrorwood%20Treefolk.full.jpg -miscalculation.jpg http://[server]/UL/Miscalculation.full.jpg -mischievous_poltergeist.jpg http://[server]/6E/Mischievous%20Poltergeist.full.jpg -mischievous_quanar.jpg http://[server]/SC/Mischievous%20Quanar.full.jpg -misdirection.jpg http://[server]/MM/Misdirection.full.jpg -mise.jpg http://[server]/UNH/Mise.full.jpg -misers_cage.jpg http://[server]/MI/Misers'%20Cage.full.jpg -misery_charm.jpg http://[server]/ON/Misery%20Charm.full.jpg -misfortune.jpg http://[server]/AL/Misfortune.full.jpg -misfortunes_gain.jpg http://[server]/P3/Misfortune's%20Gain.full.jpg -misguided_rage.jpg http://[server]/SC/Misguided%20Rage.full.jpg -mishra.jpg http://[server]/VG/Mishra.full.jpg -mishra_artificer_prodigy.jpg http://[server]/TSP/Mishra,%20Artificer%20Prodigy.full.jpg -mishras_bauble.jpg http://[server]/CS/Mishra's%20Bauble.full.jpg -mishras_factory.jpg http://[server]/4E/Mishra's%20Factory.full.jpg -mishras_groundbreaker.jpg http://[server]/AL/Mishra's%20Groundbreaker.full.jpg -mishras_helix.jpg http://[server]/US/Mishra's%20Helix.full.jpg -mishras_war_machine.jpg http://[server]/4E/Mishra's%20War%20Machine.full.jpg -mishras_workshop.jpg http://[server]/AQ/Mishra's%20Workshop.full.jpg -misinformation.jpg http://[server]/AL/Misinformation.full.jpg -miss_demeanor.jpg http://[server]/UG/Miss%20Demeanor.full.jpg -misshapen_fiend.jpg http://[server]/MM/Misshapen%20Fiend.full.jpg -misstep.jpg http://[server]/MM/Misstep.full.jpg -mist_dragon.jpg http://[server]/MI/Mist%20Dragon.full.jpg -mist_leopard.jpg http://[server]/M10/Mist%20Leopard.full.jpg -mist_of_stagnation.jpg http://[server]/JU/Mist%20of%20Stagnation.full.jpg -mistbind_clique.jpg http://[server]/LRW/Mistbind%20Clique.full.jpg -mistblade_shinobi.jpg http://[server]/BOK/Mistblade%20Shinobi.full.jpg -mistfolk.jpg http://[server]/IA/Mistfolk.full.jpg -mistform_dreamer.jpg http://[server]/ON/Mistform%20Dreamer.full.jpg -mistform_mask.jpg http://[server]/ON/Mistform%20Mask.full.jpg -mistform_mutant.jpg http://[server]/ON/Mistform%20Mutant.full.jpg -mistform_seaswift.jpg http://[server]/LE/Mistform%20Seaswift.full.jpg -mistform_shrieker.jpg http://[server]/ON/Mistform%20Shrieker.full.jpg -mistform_skyreaver.jpg http://[server]/ON/Mistform%20Skyreaver.full.jpg -mistform_sliver.jpg http://[server]/LE/Mistform%20Sliver.full.jpg -mistform_stalker.jpg http://[server]/ON/Mistform%20Stalker.full.jpg -mistform_ultimus.jpg http://[server]/LE/Mistform%20Ultimus.full.jpg -mistform_wakecaster.jpg http://[server]/LE/Mistform%20Wakecaster.full.jpg -mistform_wall.jpg http://[server]/ON/Mistform%20Wall.full.jpg -mistform_warchief.jpg http://[server]/SC/Mistform%20Warchief.full.jpg -mistmeadow_skulk.jpg http://[server]/FUT/Mistmeadow%20Skulk.full.jpg -mistmeadow_witch.jpg http://[server]/SHM/Mistmeadow%20Witch.full.jpg -mistmoon_griffin.jpg http://[server]/WL/Mistmoon%20Griffin.full.jpg -mistral_charger.jpg http://[server]/DIS/Mistral%20Charger.full.jpg -mistveil_plains.jpg http://[server]/SHM/Mistveil%20Plains.full.jpg -mistvein_borderpost.jpg http://[server]/ARB/Mistvein%20Borderpost.full.jpg -misty_rainforest.jpg http://[server]/ZEN/Misty%20Rainforest.full.jpg -mizzium_transreliquat.jpg http://[server]/GP/Mizzium%20Transreliquat.full.jpg -mnemonic_nexus.jpg http://[server]/RAV/Mnemonic%20Nexus.full.jpg -mnemonic_sliver.jpg http://[server]/TE/Mnemonic%20Sliver.full.jpg -moaning_spirit.jpg http://[server]/P2/Moaning%20Spirit.full.jpg -moat.jpg http://[server]/LG/Moat.full.jpg -mob_justice.jpg http://[server]/SH/Mob%20Justice.full.jpg -mob_mentality.jpg http://[server]/VI/Mob%20Mentality.full.jpg -mobile_fort.jpg http://[server]/US/Mobile%20Fort.full.jpg -mobilization.jpg http://[server]/10E/Mobilization.full.jpg -mobilize.jpg http://[server]/PT/Mobilize.full.jpg -mogg_alarm.jpg http://[server]/NE/Mogg%20Alarm.full.jpg -mogg_assassin.jpg http://[server]/EX/Mogg%20Assassin.full.jpg -mogg_bombers.jpg http://[server]/SH/Mogg%20Bombers.full.jpg -mogg_cannon.jpg http://[server]/TE/Mogg%20Cannon.full.jpg -mogg_conscripts.jpg http://[server]/TE/Mogg%20Conscripts.full.jpg -mogg_fanatic.jpg http://[server]/10E/Mogg%20Fanatic.full.jpg -mogg_flunkies.jpg http://[server]/AT/Mogg%20Flunkies.full.jpg -mogg_hollows.jpg http://[server]/TE/Mogg%20Hollows.full.jpg -mogg_infestation.jpg http://[server]/SH/Mogg%20Infestation.full.jpg -mogg_jailer.jpg http://[server]/PS/Mogg%20Jailer.full.jpg -mogg_maniac.jpg http://[server]/SH/Mogg%20Maniac.full.jpg -mogg_raider.jpg http://[server]/AT/Mogg%20Raider.full.jpg -mogg_salvage.jpg http://[server]/NE/Mogg%20Salvage.full.jpg -mogg_sentry.jpg http://[server]/9E/Mogg%20Sentry.full.jpg -mogg_squad.jpg http://[server]/TE/Mogg%20Squad.full.jpg -mogg_toady.jpg http://[server]/NE/Mogg%20Toady.full.jpg -mogg_war_marshal.jpg http://[server]/EVG/Mogg%20War%20Marshal.full.jpg -moggcatcher.jpg http://[server]/NE/Moggcatcher.full.jpg -mold_adder.jpg http://[server]/M10/Mold%20Adder.full.jpg -mold_demon.jpg http://[server]/LG/Mold%20Demon.full.jpg -mold_shambler.jpg http://[server]/ZEN/Mold%20Shambler.full.jpg -molder.jpg http://[server]/TSP/Molder.full.jpg -molder_slug.jpg http://[server]/MR/Molder%20Slug.full.jpg -moldervine_cloak.jpg http://[server]/RAV/Moldervine%20Cloak.full.jpg -mole_worms.jpg http://[server]/5E/Mole%20Worms.full.jpg -molimo_maro_sorcerer.jpg http://[server]/10E/Molimo,%20Maro-Sorcerer.full.jpg -molten_disaster.jpg http://[server]/FUT/Molten%20Disaster.full.jpg -molten_firebird.jpg http://[server]/PLC/Molten%20Firebird.full.jpg -molten_frame.jpg http://[server]/CFX/Molten%20Frame.full.jpg -molten_hydra.jpg http://[server]/UL/Molten%20Hydra.full.jpg -molten_influence.jpg http://[server]/OD/Molten%20Influence.full.jpg -molten_rain.jpg http://[server]/MR/Molten%20Rain.full.jpg -molten_ravager.jpg http://[server]/ZEN/Molten%20Ravager.full.jpg -molten_sentry.jpg http://[server]/RAV/Molten%20Sentry.full.jpg -molten_slagheap.jpg http://[server]/TSP/Molten%20Slagheap.full.jpg -molting_harpy.jpg http://[server]/MM/Molting%20Harpy.full.jpg -molting_skin.jpg http://[server]/SOK/Molting%20Skin.full.jpg -moment_of_silence.jpg http://[server]/MM/Moment%20of%20Silence.full.jpg -momentary_blink.jpg http://[server]/TSP/Momentary%20Blink.full.jpg -moments_peace.jpg http://[server]/OD/Moment's%20Peace.full.jpg -momentum.jpg http://[server]/UD/Momentum.full.jpg -momir_vig_simic_visionary.jpg http://[server]/DIS/Momir%20Vig,%20Simic%20Visionary.full.jpg -mongrel_pack.jpg http://[server]/TE/Mongrel%20Pack.full.jpg -moniker_mage.jpg http://[server]/UNH/Moniker%20Mage.full.jpg -monk_idealist.jpg http://[server]/US/Monk%20Idealist.full.jpg -monk_realist.jpg http://[server]/US/Monk%20Realist.full.jpg -monkey_cage.jpg http://[server]/MM/Monkey%20Cage.full.jpg -monkey_monkey_monkey.jpg http://[server]/UNH/Monkey%20Monkey%20Monkey.full.jpg -monsoon.jpg http://[server]/IA/Monsoon.full.jpg -monss_goblin_raiders.jpg http://[server]/5E/Mons's%20Goblin%20Raiders.full.jpg -monss_goblin_waiters.jpg http://[server]/UNH/Mons's%20Goblin%20Waiters.full.jpg -monstrify.jpg http://[server]/EVE/Monstrify.full.jpg -monstrous_carabid.jpg http://[server]/ARB/Monstrous%20Carabid.full.jpg -monstrous_growth.jpg http://[server]/8E/Monstrous%20Growth.full.jpg -monstrous_hound.jpg http://[server]/EX/Monstrous%20Hound.full.jpg -moon_sprite.jpg http://[server]/PT/Moon%20Sprite.full.jpg -moonbow_illusionist.jpg http://[server]/SOK/Moonbow%20Illusionist.full.jpg -moonglove_changeling.jpg http://[server]/MOR/Moonglove%20Changeling.full.jpg -moonglove_extract.jpg http://[server]/EVG/Moonglove%20Extract.full.jpg -moonglove_winnower.jpg http://[server]/LRW/Moonglove%20Winnower.full.jpg -moonhold.jpg http://[server]/EVE/Moonhold.full.jpg -moonlace.jpg http://[server]/TSP/Moonlace.full.jpg -moonlight_bargain.jpg http://[server]/RAV/Moonlight%20Bargain.full.jpg -moonlit_strider.jpg http://[server]/BOK/Moonlit%20Strider.full.jpg -moonlit_wake.jpg http://[server]/MM/Moonlit%20Wake.full.jpg -moonring_island.jpg http://[server]/SHM/Moonring%20Island.full.jpg -moonring_mirror.jpg http://[server]/CHK/Moonring%20Mirror.full.jpg -moonwing_moth.jpg http://[server]/SOK/Moonwing%20Moth.full.jpg -moor_fiend.jpg http://[server]/IA/Moor%20Fiend.full.jpg -moorish_cavalry.jpg http://[server]/TSB/Moorish%20Cavalry.full.jpg -morale.jpg http://[server]/4E/Morale.full.jpg -morality_shift.jpg http://[server]/JU/Morality%20Shift.full.jpg -moratorium_stone.jpg http://[server]/GP/Moratorium%20Stone.full.jpg -morbid_bloom.jpg http://[server]/ARB/Morbid%20Bloom.full.jpg -morbid_hunger.jpg http://[server]/OD/Morbid%20Hunger.full.jpg -morgue_theft.jpg http://[server]/OD/Morgue%20Theft.full.jpg -morgue_thrull.jpg http://[server]/SH/Morgue%20Thrull.full.jpg -morgue_toad.jpg http://[server]/PS/Morgue%20Toad.full.jpg -morinfen.jpg http://[server]/WL/Morinfen.full.jpg -moriok_rigger.jpg http://[server]/FD/Moriok%20Rigger.full.jpg -moriok_scavenger.jpg http://[server]/MR/Moriok%20Scavenger.full.jpg -morningtide.jpg http://[server]/TO/Morningtide.full.jpg -moroii.jpg http://[server]/RAV/Moroii.full.jpg -morphling.jpg http://[server]/US/Morphling.full.jpg -morsel_theft.jpg http://[server]/MOR/Morsel%20Theft.full.jpg -morselhoarder.jpg http://[server]/SHM/Morselhoarder.full.jpg -mortal_combat.jpg http://[server]/10E/Mortal%20Combat.full.jpg -mortal_wound.jpg http://[server]/VI/Mortal%20Wound.full.jpg -mortify.jpg http://[server]/GP/Mortify.full.jpg -mortipede.jpg http://[server]/RAV/Mortipede.full.jpg -mortiphobia.jpg http://[server]/TO/Mortiphobia.full.jpg -mortivore.jpg http://[server]/10E/Mortivore.full.jpg -mortuary.jpg http://[server]/SH/Mortuary.full.jpg -mosquito_guard.jpg http://[server]/MOR/Mosquito%20Guard.full.jpg -moss_diamond.jpg http://[server]/7E/Moss%20Diamond.full.jpg -moss_kami.jpg http://[server]/CHK/Moss%20Kami.full.jpg -moss_monster.jpg http://[server]/8E/Moss%20Monster.full.jpg -mossbridge_troll.jpg http://[server]/SHM/Mossbridge%20Troll.full.jpg -mossdog.jpg http://[server]/NE/Mossdog.full.jpg -mossfire_egg.jpg http://[server]/OD/Mossfire%20Egg.full.jpg -mossfire_valley.jpg http://[server]/OD/Mossfire%20Valley.full.jpg -mosstodon.jpg http://[server]/ALA/Mosstodon.full.jpg -mosswort_bridge.jpg http://[server]/LRW/Mosswort%20Bridge.full.jpg -mothdust_changeling.jpg http://[server]/MOR/Mothdust%20Changeling.full.jpg -mother_of_goons.jpg http://[server]/UNH/Mother%20of%20Goons.full.jpg -mother_of_runes.jpg http://[server]/UL/Mother%20of%20Runes.full.jpg -mothrider_samurai.jpg http://[server]/CHK/Mothrider%20Samurai.full.jpg -mountain_bandit.jpg http://[server]/P3/Mountain%20Bandit.full.jpg -mountain_goat.jpg http://[server]/6E/Mountain%20Goat.full.jpg -mountain_stronghold.jpg http://[server]/LG/Mountain%20Stronghold.full.jpg -mountain_titan.jpg http://[server]/IA/Mountain%20Titan.full.jpg -mountain_valley.jpg http://[server]/MI/Mountain%20Valley.full.jpg -mountain_yeti.jpg http://[server]/LG/Mountain%20Yeti.full.jpg -mounted_archers.jpg http://[server]/TE/Mounted%20Archers.full.jpg -mourners_shield.jpg http://[server]/MR/Mourner's%20Shield.full.jpg -mournful_zombie.jpg http://[server]/AP/Mournful%20Zombie.full.jpg -mourning.jpg http://[server]/IN/Mourning.full.jpg -mourning_thrull.jpg http://[server]/GP/Mourning%20Thrull.full.jpg -mournwhelk.jpg http://[server]/LRW/Mournwhelk.full.jpg -mouth_of_ronom.jpg http://[server]/CS/Mouth%20of%20Ronom.full.jpg -mouth_to_mouth.jpg http://[server]/UNH/Mouth%20to%20Mouth.full.jpg -mox_diamond.jpg http://[server]/SH/Mox%20Diamond.full.jpg -mox_emerald.jpg http://[server]/U/Mox%20Emerald.full.jpg -mox_jet.jpg http://[server]/U/Mox%20Jet.full.jpg -mox_lotus.jpg http://[server]/UNH/Mox%20Lotus.full.jpg -mox_pearl.jpg http://[server]/U/Mox%20Pearl.full.jpg -mox_ruby.jpg http://[server]/U/Mox%20Ruby.full.jpg -mox_sapphire.jpg http://[server]/U/Mox%20Sapphire.full.jpg -mtenda_griffin.jpg http://[server]/MI/Mtenda%20Griffin.full.jpg -mtenda_herder.jpg http://[server]/MI/Mtenda%20Herder.full.jpg -mtenda_lion.jpg http://[server]/MI/Mtenda%20Lion.full.jpg -muck_drubb.jpg http://[server]/PLC/Muck%20Drubb.full.jpg -muck_rats.jpg http://[server]/ST/Muck%20Rats.full.jpg -mudbrawler_cohort.jpg http://[server]/SHM/Mudbrawler%20Cohort.full.jpg -mudbrawler_raiders.jpg http://[server]/SHM/Mudbrawler%20Raiders.full.jpg -mudbutton_clanger.jpg http://[server]/MOR/Mudbutton%20Clanger.full.jpg -mudbutton_torchrunner.jpg http://[server]/LRW/Mudbutton%20Torchrunner.full.jpg -muddle_the_mixture.jpg http://[server]/RAV/Muddle%20the%20Mixture.full.jpg -mudhole.jpg http://[server]/OD/Mudhole.full.jpg -mudslide.jpg http://[server]/IA/Mudslide.full.jpg -mulch.jpg http://[server]/SH/Mulch.full.jpg -mulldrifter.jpg http://[server]/LRW/Mulldrifter.full.jpg -multani.jpg http://[server]/VG/Multani.full.jpg -multani_maro_sorcerer.jpg http://[server]/UL/Multani,%20Maro-Sorcerer.full.jpg -multanis_acolyte.jpg http://[server]/UL/Multani's%20Acolyte.full.jpg -multanis_decree.jpg http://[server]/UD/Multani's%20Decree.full.jpg -multanis_harmony.jpg http://[server]/PS/Multani's%20Harmony.full.jpg -multanis_presence.jpg http://[server]/UL/Multani's%20Presence.full.jpg -mundungu.jpg http://[server]/VI/Mundungu.full.jpg -mungha_wurm.jpg http://[server]/PY/Mungha%20Wurm.full.jpg -muraganda_petroglyphs.jpg http://[server]/FUT/Muraganda%20Petroglyphs.full.jpg -murasa_pyromancer.jpg http://[server]/ZEN/Murasa%20Pyromancer.full.jpg -murderous_betrayal.jpg http://[server]/8E/Murderous%20Betrayal.full.jpg -murderous_redcap.jpg http://[server]/SHM/Murderous%20Redcap.full.jpg -murderous_spoils.jpg http://[server]/DS/Murderous%20Spoils.full.jpg -murk_dwellers.jpg http://[server]/5E/Murk%20Dwellers.full.jpg -murkfiend_liege.jpg http://[server]/EVE/Murkfiend%20Liege.full.jpg -murmuring_bosk.jpg http://[server]/MOR/Murmuring%20Bosk.full.jpg -murmurs_from_beyond.jpg http://[server]/SOK/Murmurs%20from%20Beyond.full.jpg -muscle_burst.jpg http://[server]/OD/Muscle%20Burst.full.jpg -muscle_sliver.jpg http://[server]/TE/Muscle%20Sliver.full.jpg -muse_vessel.jpg http://[server]/DIS/Muse%20Vessel.full.jpg -musician.jpg http://[server]/IA/Musician.full.jpg -mutavault.jpg http://[server]/MOR/Mutavault.full.jpg -mutilate.jpg http://[server]/TO/Mutilate.full.jpg -muzzle.jpg http://[server]/MM/Muzzle.full.jpg -mwonvuli_acid_moss.jpg http://[server]/TSP/Mwonvuli%20Acid-Moss.full.jpg -mwonvuli_ooze.jpg http://[server]/WL/Mwonvuli%20Ooze.full.jpg -my_first_tome.jpg http://[server]/UNH/My%20First%20Tome.full.jpg -mycoid_shepherd.jpg http://[server]/ARB/Mycoid%20Shepherd.full.jpg -mycologist.jpg http://[server]/PLC/Mycologist.full.jpg -mycoloth.jpg http://[server]/ALA/Mycoloth.full.jpg -mycosynth_golem.jpg http://[server]/FD/Mycosynth%20Golem.full.jpg -mycosynth_lattice.jpg http://[server]/DS/Mycosynth%20Lattice.full.jpg -myojin_of_cleansing_fire.jpg http://[server]/CHK/Myojin%20of%20Cleansing%20Fire.full.jpg -myojin_of_infinite_rage.jpg http://[server]/CHK/Myojin%20of%20Infinite%20Rage.full.jpg -myojin_of_lifes_web.jpg http://[server]/CHK/Myojin%20of%20Life's%20Web.full.jpg -myojin_of_nights_reach.jpg http://[server]/CHK/Myojin%20of%20Night's%20Reach.full.jpg -myojin_of_seeing_winds.jpg http://[server]/CHK/Myojin%20of%20Seeing%20Winds.full.jpg -myr_adapter.jpg http://[server]/MR/Myr%20Adapter.full.jpg -myr_enforcer.jpg http://[server]/MR/Myr%20Enforcer.full.jpg -myr_incubator.jpg http://[server]/MR/Myr%20Incubator.full.jpg -myr_landshaper.jpg http://[server]/DS/Myr%20Landshaper.full.jpg -myr_matrix.jpg http://[server]/DS/Myr%20Matrix.full.jpg -myr_mindservant.jpg http://[server]/MR/Myr%20Mindservant.full.jpg -myr_moonvessel.jpg http://[server]/DS/Myr%20Moonvessel.full.jpg -myr_prototype.jpg http://[server]/MR/Myr%20Prototype.full.jpg -myr_quadropod.jpg http://[server]/FD/Myr%20Quadropod.full.jpg -myr_retriever.jpg http://[server]/MR/Myr%20Retriever.full.jpg -myr_servitor.jpg http://[server]/FD/Myr%20Servitor.full.jpg -mystic_compass.jpg http://[server]/6E/Mystic%20Compass.full.jpg -mystic_crusader.jpg http://[server]/OD/Mystic%20Crusader.full.jpg -mystic_decree.jpg http://[server]/HL/Mystic%20Decree.full.jpg -mystic_denial.jpg http://[server]/PT/Mystic%20Denial.full.jpg -mystic_enforcer.jpg http://[server]/OD/Mystic%20Enforcer.full.jpg -mystic_familiar.jpg http://[server]/TO/Mystic%20Familiar.full.jpg -mystic_gate.jpg http://[server]/SHM/Mystic%20Gate.full.jpg -mystic_melting.jpg http://[server]/CS/Mystic%20Melting.full.jpg -mystic_might.jpg http://[server]/IA/Mystic%20Might.full.jpg -mystic_penitent.jpg http://[server]/OD/Mystic%20Penitent.full.jpg -mystic_remora.jpg http://[server]/IA/Mystic%20Remora.full.jpg -mystic_restraints.jpg http://[server]/CHK/Mystic%20Restraints.full.jpg -mystic_snake.jpg http://[server]/AP/Mystic%20Snake.full.jpg -mystic_speculation.jpg http://[server]/FUT/Mystic%20Speculation.full.jpg -mystic_veil.jpg http://[server]/VI/Mystic%20Veil.full.jpg -mystic_visionary.jpg http://[server]/OD/Mystic%20Visionary.full.jpg -mystic_zealot.jpg http://[server]/OD/Mystic%20Zealot.full.jpg -mystical_teachings.jpg http://[server]/TSP/Mystical%20Teachings.full.jpg -mystical_tutor.jpg http://[server]/6E/Mystical%20Tutor.full.jpg -mythic_proportions.jpg http://[server]/ON/Mythic%20Proportions.full.jpg \ No newline at end of file diff --git a/res/pics_link/card-pictures_n.txt b/res/pics_link/card-pictures_n.txt deleted file mode 100644 index dcbc98901ff..00000000000 --- a/res/pics_link/card-pictures_n.txt +++ /dev/null @@ -1,245 +0,0 @@ -nacatl_hunt_pride.jpg http://[server]/CFX/Nacatl%20Hunt-Pride.full.jpg -nacatl_outlander.jpg http://[server]/CFX/Nacatl%20Outlander.full.jpg -nacatl_savage.jpg http://[server]/CFX/Nacatl%20Savage.full.jpg -nacatl_war_pride.jpg http://[server]/FUT/Nacatl%20War-Pride.full.jpg -nacre_talisman.jpg http://[server]/IA/Nacre%20Talisman.full.jpg -nafs_asp.jpg http://[server]/4E/Nafs%20Asp.full.jpg -nagao_bound_by_honor.jpg http://[server]/CHK/Nagao,%20Bound%20by%20Honor.full.jpg -nakaya_shade.jpg http://[server]/PY/Nakaya%20Shade.full.jpg -naked_singularity.jpg http://[server]/IA/Naked%20Singularity.full.jpg -nalathni_dragon.jpg http://[server]/PR/Nalathni%20Dragon.full.jpg -name_dropping.jpg http://[server]/UNH/Name%20Dropping.full.jpg -nameless_inversion.jpg http://[server]/LRW/Nameless%20Inversion.full.jpg -nameless_one.jpg http://[server]/ON/Nameless%20One.full.jpg -nameless_race.jpg http://[server]/DK/Nameless%20Race.full.jpg -nantuko_blightcutter.jpg http://[server]/TO/Nantuko%20Blightcutter.full.jpg -nantuko_calmer.jpg http://[server]/TO/Nantuko%20Calmer.full.jpg -nantuko_cultivator.jpg http://[server]/TO/Nantuko%20Cultivator.full.jpg -nantuko_disciple.jpg http://[server]/8E/Nantuko%20Disciple.full.jpg -nantuko_elder.jpg http://[server]/OD/Nantuko%20Elder.full.jpg -nantuko_husk.jpg http://[server]/10E/Nantuko%20Husk.full.jpg -nantuko_mentor.jpg http://[server]/OD/Nantuko%20Mentor.full.jpg -nantuko_monastery.jpg http://[server]/JU/Nantuko%20Monastery.full.jpg -nantuko_shade.jpg http://[server]/TO/Nantuko%20Shade.full.jpg -nantuko_shaman.jpg http://[server]/TSP/Nantuko%20Shaman.full.jpg -nantuko_shrine.jpg http://[server]/OD/Nantuko%20Shrine.full.jpg -nantuko_tracer.jpg http://[server]/JU/Nantuko%20Tracer.full.jpg -nantuko_vigilante.jpg http://[server]/LE/Nantuko%20Vigilante.full.jpg -narcissism.jpg http://[server]/TO/Narcissism.full.jpg -narcomoeba.jpg http://[server]/FUT/Narcomoeba.full.jpg -narrow_escape.jpg http://[server]/ZEN/Narrow%20Escape.full.jpg -narwhal.jpg http://[server]/HL/Narwhal.full.jpg -nath_of_the_gilt_leaf.jpg http://[server]/LRW/Nath%20of%20the%20Gilt-Leaf.full.jpg -naths_buffoon.jpg http://[server]/LRW/Nath's%20Buffoon.full.jpg -naths_elite.jpg http://[server]/LRW/Nath's%20Elite.full.jpg -natural_affinity.jpg http://[server]/9E/Natural%20Affinity.full.jpg -natural_balance.jpg http://[server]/MI/Natural%20Balance.full.jpg -natural_emergence.jpg http://[server]/PS/Natural%20Emergence.full.jpg -natural_order.jpg http://[server]/VI/Natural%20Order.full.jpg -natural_selection.jpg http://[server]/B/Natural%20Selection.full.jpg -natural_spring.jpg http://[server]/10E/Natural%20Spring.full.jpg -naturalize.jpg http://[server]/M10/Naturalize.full.jpg -natures_blessing.jpg http://[server]/AL/Nature's%20Blessing.full.jpg -natures_chosen.jpg http://[server]/AL/Nature's%20Chosen.full.jpg -natures_cloak.jpg http://[server]/ST/Nature's%20Cloak.full.jpg -natures_kiss.jpg http://[server]/WL/Nature's%20Kiss.full.jpg -natures_lore.jpg http://[server]/5E/Nature's%20Lore.full.jpg -natures_resurgence.jpg http://[server]/7E/Nature's%20Resurgence.full.jpg -natures_revolt.jpg http://[server]/7E/Nature's%20Revolt.full.jpg -natures_ruin.jpg http://[server]/PT/Nature's%20Ruin.full.jpg -natures_spiral.jpg http://[server]/M10/Nature's%20Spiral.full.jpg -natures_will.jpg http://[server]/CHK/Nature's%20Will.full.jpg -natures_wrath.jpg http://[server]/AL/Nature's%20Wrath.full.jpg -nausea.jpg http://[server]/8E/Nausea.full.jpg -naya_battlemage.jpg http://[server]/ALA/Naya%20Battlemage.full.jpg -naya_charm.jpg http://[server]/ALA/Naya%20Charm.full.jpg -naya_hushblade.jpg http://[server]/ARB/Naya%20Hushblade.full.jpg -naya_panorama.jpg http://[server]/ALA/Naya%20Panorama.full.jpg -naya_sojourners.jpg http://[server]/ARB/Naya%20Sojourners.full.jpg -nebuchadnezzar.jpg http://[server]/LG/Nebuchadnezzar.full.jpg -neck_snap.jpg http://[server]/LRW/Neck%20Snap.full.jpg -necra_disciple.jpg http://[server]/AP/Necra%20Disciple.full.jpg -necra_sanctuary.jpg http://[server]/AP/Necra%20Sanctuary.full.jpg -necratog.jpg http://[server]/WL/Necratog.full.jpg -necravolver.jpg http://[server]/AP/Necravolver.full.jpg -necrite.jpg http://[server]/5E/Necrite.full.jpg -necro_impotence.jpg http://[server]/UNH/Necro-Impotence.full.jpg -necrogen_mists.jpg http://[server]/MR/Necrogen%20Mists.full.jpg -necrogen_spellbomb.jpg http://[server]/MR/Necrogen%20Spellbomb.full.jpg -necrogenesis.jpg http://[server]/ALA/Necrogenesis.full.jpg -necrologia.jpg http://[server]/7E/Necrologia.full.jpg -necromancers_covenant.jpg http://[server]/ARB/Necromancer's%20Covenant.full.jpg -necromancers_magemark.jpg http://[server]/GP/Necromancer's%20Magemark.full.jpg -necromancy.jpg http://[server]/VI/Necromancy.full.jpg -necromantic_thirst.jpg http://[server]/RAV/Necromantic%20Thirst.full.jpg -necroplasm.jpg http://[server]/RAV/Necroplasm.full.jpg -necropolis.jpg http://[server]/DK/Necropolis.full.jpg -necropotence.jpg http://[server]/5E/Necropotence.full.jpg -necrosavant.jpg http://[server]/6E/Necrosavant.full.jpg -necroskitter.jpg http://[server]/EVE/Necroskitter.full.jpg -necrotic_sliver.jpg http://[server]/PLC/Necrotic%20Sliver.full.jpg -nectar_faerie.jpg http://[server]/LRW/Nectar%20Faerie.full.jpg -need_for_speed.jpg http://[server]/OD/Need%20for%20Speed.full.jpg -needle_drop.jpg http://[server]/LRW/Needle%20Drop.full.jpg -needle_specter.jpg http://[server]/EVE/Needle%20Specter.full.jpg -needle_storm.jpg http://[server]/9E/Needle%20Storm.full.jpg -needlebite_trap.jpg http://[server]/ZEN/Needlebite%20Trap.full.jpg -needlebug.jpg http://[server]/MR/Needlebug.full.jpg -needlepeak_spider.jpg http://[server]/PLC/Needlepeak%20Spider.full.jpg -needleshot_gourna.jpg http://[server]/LE/Needleshot%20Gourna.full.jpg -nefarious_lich.jpg http://[server]/OD/Nefarious%20Lich.full.jpg -nefashu.jpg http://[server]/SC/Nefashu.full.jpg -negate.jpg http://[server]/M10/Negate.full.jpg -neko_te.jpg http://[server]/BOK/Neko-Te.full.jpg -nekrataal.jpg http://[server]/10E/Nekrataal.full.jpg -nemata_grove_guardian.jpg http://[server]/PS/Nemata,%20Grove%20Guardian.full.jpg -nemesis_mask.jpg http://[server]/DS/Nemesis%20Mask.full.jpg -nemesis_of_reason.jpg http://[server]/ARB/Nemesis%20of%20Reason.full.jpg -nessian_courser.jpg http://[server]/FUT/Nessian%20Courser.full.jpg -nesting_wurm.jpg http://[server]/NE/Nesting%20Wurm.full.jpg -nether_shadow.jpg http://[server]/5E/Nether%20Shadow.full.jpg -nether_spirit.jpg http://[server]/MM/Nether%20Spirit.full.jpg -nether_traitor.jpg http://[server]/TSP/Nether%20Traitor.full.jpg -nether_void.jpg http://[server]/LG/Nether%20Void.full.jpg -netherborn_phalanx.jpg http://[server]/RAV/Netherborn%20Phalanx.full.jpg -netter_en_dal.jpg http://[server]/NE/Netter%20en-Dal.full.jpg -nettle_sentinel.jpg http://[server]/EVE/Nettle%20Sentinel.full.jpg -nettletooth_djinn.jpg http://[server]/MI/Nettletooth%20Djinn.full.jpg -nettlevine_blight.jpg http://[server]/LRW/Nettlevine%20Blight.full.jpg -nettling_curse.jpg http://[server]/DIS/Nettling%20Curse.full.jpg -nettling_imp.jpg http://[server]/U/Nettling%20Imp.full.jpg -neurok_familiar.jpg http://[server]/MR/Neurok%20Familiar.full.jpg -neurok_hoversail.jpg http://[server]/MR/Neurok%20Hoversail.full.jpg -neurok_prodigy.jpg http://[server]/DS/Neurok%20Prodigy.full.jpg -neurok_spy.jpg http://[server]/MR/Neurok%20Spy.full.jpg -neurok_stealthsuit.jpg http://[server]/FD/Neurok%20Stealthsuit.full.jpg -neurok_transmuter.jpg http://[server]/DS/Neurok%20Transmuter.full.jpg -neverending_torment.jpg http://[server]/SOK/Neverending%20Torment.full.jpg -nevermaker.jpg http://[server]/MOR/Nevermaker.full.jpg -nevinyrrals_disk.jpg http://[server]/5E/Nevinyrral's%20Disk.full.jpg -new_benalia.jpg http://[server]/FUT/New%20Benalia.full.jpg -new_frontiers.jpg http://[server]/OD/New%20Frontiers.full.jpg -nezumi_bone_reader.jpg http://[server]/CHK/Nezumi%20Bone-Reader.full.jpg -nezumi_cutthroat.jpg http://[server]/CHK/Nezumi%20Cutthroat.full.jpg -nezumi_graverobber.jpg http://[server]/CHK/Nezumi%20Graverobber.full.jpg -nezumi_ronin.jpg http://[server]/CHK/Nezumi%20Ronin.full.jpg -nezumi_shadow_watcher.jpg http://[server]/BOK/Nezumi%20Shadow-Watcher.full.jpg -nezumi_shortfang.jpg http://[server]/CHK/Nezumi%20Shortfang.full.jpg -niall_silvain.jpg http://[server]/DK/Niall%20Silvain.full.jpg -nicol_bolas.jpg http://[server]/LG/Nicol%20Bolas.full.jpg -nicol_bolas_planeswalker.jpg http://[server]/CFX/Nicol%20Bolas,%20Planeswalker.full.jpg -night_dealings.jpg http://[server]/CHK/Night%20Dealings.full.jpg -night_of_souls_betrayal.jpg http://[server]/CHK/Night%20of%20Souls'%20Betrayal.full.jpg -night_soil.jpg http://[server]/FE/Night%20Soil1.full.jpg -nightcreep.jpg http://[server]/DIS/Nightcreep.full.jpg -nightday.jpg http://[server]/AP/NightDay.full.jpg -nightguard_patrol.jpg http://[server]/RAV/Nightguard%20Patrol.full.jpg -nightmare.jpg http://[server]/M10/Nightmare.full.jpg -nightmare_incursion.jpg http://[server]/EVE/Nightmare%20Incursion.full.jpg -nightmare_lash.jpg http://[server]/MR/Nightmare%20Lash.full.jpg -nightmare_void.jpg http://[server]/RAV/Nightmare%20Void.full.jpg -nights_whisper.jpg http://[server]/FD/Night's%20Whisper.full.jpg -nightscape_apprentice.jpg http://[server]/IN/Nightscape%20Apprentice.full.jpg -nightscape_battlemage.jpg http://[server]/PS/Nightscape%20Battlemage.full.jpg -nightscape_familiar.jpg http://[server]/PS/Nightscape%20Familiar.full.jpg -nightscape_master.jpg http://[server]/IN/Nightscape%20Master.full.jpg -nightshade_assassin.jpg http://[server]/TSP/Nightshade%20Assassin.full.jpg -nightshade_schemers.jpg http://[server]/MOR/Nightshade%20Schemers.full.jpg -nightshade_seer.jpg http://[server]/UD/Nightshade%20Seer.full.jpg -nightshade_stinger.jpg http://[server]/LRW/Nightshade%20Stinger.full.jpg -nightsky_mimic.jpg http://[server]/EVE/Nightsky%20Mimic.full.jpg -nightsoil_kami.jpg http://[server]/SOK/Nightsoil%20Kami.full.jpg -nightstalker_engine.jpg http://[server]/P2/Nightstalker%20Engine.full.jpg -nightwind_glider.jpg http://[server]/MM/Nightwind%20Glider.full.jpg -nihilistic_glee.jpg http://[server]/DIS/Nihilistic%20Glee.full.jpg -nihilith.jpg http://[server]/FUT/Nihilith.full.jpg -nikko_onna.jpg http://[server]/SOK/Nikko-Onna.full.jpg -nim_abomination.jpg http://[server]/DS/Nim%20Abomination.full.jpg -nim_devourer.jpg http://[server]/MR/Nim%20Devourer.full.jpg -nim_grotesque.jpg http://[server]/FD/Nim%20Grotesque.full.jpg -nim_lasher.jpg http://[server]/MR/Nim%20Lasher.full.jpg -nim_replica.jpg http://[server]/MR/Nim%20Replica.full.jpg -nim_shambler.jpg http://[server]/MR/Nim%20Shambler.full.jpg -nim_shrieker.jpg http://[server]/MR/Nim%20Shrieker.full.jpg -nimana_sell_sword.jpg http://[server]/ZEN/Nimana%20Sell-Sword.full.jpg -nimble_mongoose.jpg http://[server]/OD/Nimble%20Mongoose.full.jpg -nimbus_maze.jpg http://[server]/FUT/Nimbus%20Maze.full.jpg -nimbus_wings.jpg http://[server]/ZEN/Nimbus%20Wings.full.jpg -nine_ringed_bo.jpg http://[server]/CHK/Nine-Ringed%20Bo.full.jpg -ninja_of_the_deep_hours.jpg http://[server]/BOK/Ninja%20of%20the%20Deep%20Hours.full.jpg -nip_gwyllion.jpg http://[server]/EVE/Nip%20Gwyllion.full.jpg -nissa_revane.jpg http://[server]/ZEN/Nissa%20Revane.full.jpg -nissas_chosen.jpg http://[server]/ZEN/Nissa's%20Chosen.full.jpg -niv_mizzet_the_firemind.jpg http://[server]/GP/Niv-Mizzet,%20the%20Firemind.full.jpg -niveous_wisps.jpg http://[server]/SHM/Niveous%20Wisps.full.jpg -nivix_aerie_of_the_firemind.jpg http://[server]/GP/Nivix,%20Aerie%20of%20the%20Firemind.full.jpg -nix.jpg http://[server]/FUT/Nix.full.jpg -no_dachi.jpg http://[server]/CHK/No-Dachi.full.jpg -no_mercy.jpg http://[server]/UL/No%20Mercy.full.jpg -no_quarter.jpg http://[server]/TE/No%20Quarter.full.jpg -no_rest_for_the_wicked.jpg http://[server]/10E/No%20Rest%20for%20the%20Wicked.full.jpg -nobilis_of_war.jpg http://[server]/EVE/Nobilis%20of%20War.full.jpg -noble_benefactor.jpg http://[server]/WL/Noble%20Benefactor.full.jpg -noble_elephant.jpg http://[server]/MI/Noble%20Elephant.full.jpg -noble_hierarch.jpg http://[server]/CFX/Noble%20Hierarch.full.jpg -noble_panther.jpg http://[server]/IN/Noble%20Panther.full.jpg -noble_purpose.jpg http://[server]/8E/Noble%20Purpose.full.jpg -noble_stand.jpg http://[server]/NE/Noble%20Stand.full.jpg -noble_steeds.jpg http://[server]/AL/Noble%20Steeds1.full.jpg -noble_templar.jpg http://[server]/SC/Noble%20Templar.full.jpg -noble_vestige.jpg http://[server]/ZEN/Noble%20Vestige.full.jpg -nocturnal_raid.jpg http://[server]/7E/Nocturnal%20Raid.full.jpg -noetic_scales.jpg http://[server]/US/Noetic%20Scales.full.jpg -noggin_whack.jpg http://[server]/MOR/Noggin%20Whack.full.jpg -noggle_bandit.jpg http://[server]/EVE/Noggle%20Bandit.full.jpg -noggle_bridgebreaker.jpg http://[server]/EVE/Noggle%20Bridgebreaker.full.jpg -noggle_hedge_mage.jpg http://[server]/EVE/Noggle%20Hedge-Mage.full.jpg -noggle_ransacker.jpg http://[server]/EVE/Noggle%20Ransacker.full.jpg -nomad_decoy.jpg http://[server]/OD/Nomad%20Decoy.full.jpg -nomad_mythmaker.jpg http://[server]/10E/Nomad%20Mythmaker.full.jpg -nomad_stadium.jpg http://[server]/OD/Nomad%20Stadium.full.jpg -nomadic_elf.jpg http://[server]/IN/Nomadic%20Elf.full.jpg -nomads_en_kor.jpg http://[server]/SH/Nomads%20en-Kor.full.jpg -norin_the_wary.jpg http://[server]/TSP/Norin%20the%20Wary.full.jpg -norritt.jpg http://[server]/IA/Norritt.full.jpg -north_star.jpg http://[server]/LG/North%20Star.full.jpg -northern_paladin.jpg http://[server]/7E/Northern%20Paladin.full.jpg -norwood_archers.jpg http://[server]/ST/Norwood%20Archers.full.jpg -norwood_priestess.jpg http://[server]/P2/Norwood%20Priestess.full.jpg -norwood_ranger.jpg http://[server]/9E/Norwood%20Ranger.full.jpg -norwood_riders.jpg http://[server]/P2/Norwood%20Riders.full.jpg -norwood_warrior.jpg http://[server]/P2/Norwood%20Warrior.full.jpg -nostalgic_dreams.jpg http://[server]/TO/Nostalgic%20Dreams.full.jpg -nosy_goblin.jpg http://[server]/ON/Nosy%20Goblin.full.jpg -notorious_assassin.jpg http://[server]/MM/Notorious%20Assassin.full.jpg -notorious_throng.jpg http://[server]/MOR/Notorious%20Throng.full.jpg -nourish.jpg http://[server]/DS/Nourish.full.jpg -nourishing_shoal.jpg http://[server]/BOK/Nourishing%20Shoal.full.jpg -nova_chaser.jpg http://[server]/LRW/Nova%20Chaser.full.jpg -nova_cleric.jpg http://[server]/ON/Nova%20Cleric.full.jpg -nova_pentacle.jpg http://[server]/LG/Nova%20Pentacle.full.jpg -novijen_heart_of_progress.jpg http://[server]/DIS/Novijen,%20Heart%20of%20Progress.full.jpg -novijen_sages.jpg http://[server]/DIS/Novijen%20Sages.full.jpg -now_i_know_my_abcs.jpg http://[server]/UNH/Now%20I%20Know%20My%20ABC's.full.jpg -noxious_field.jpg http://[server]/PY/Noxious%20Field.full.jpg -noxious_ghoul.jpg http://[server]/LE/Noxious%20Ghoul.full.jpg -noxious_hatchling.jpg http://[server]/EVE/Noxious%20Hatchling.full.jpg -noxious_toad.jpg http://[server]/PT/Noxious%20Toad.full.jpg -noxious_vapors.jpg http://[server]/PS/Noxious%20Vapors.full.jpg -nucklavee.jpg http://[server]/EVE/Nucklavee.full.jpg -nuisance_engine.jpg http://[server]/MR/Nuisance%20Engine.full.jpg -null_brooch.jpg http://[server]/EX/Null%20Brooch.full.jpg -null_chamber.jpg http://[server]/MI/Null%20Chamber.full.jpg -null_profusion.jpg http://[server]/PLC/Null%20Profusion.full.jpg -null_rod.jpg http://[server]/WL/Null%20Rod.full.jpg -nullmage_advocate.jpg http://[server]/JU/Nullmage%20Advocate.full.jpg -nullmage_shepherd.jpg http://[server]/RAV/Nullmage%20Shepherd.full.jpg -nullstone_gargoyle.jpg http://[server]/RAV/Nullstone%20Gargoyle.full.jpg -nulltread_gargantuan.jpg http://[server]/ARB/Nulltread%20Gargantuan.full.jpg -numai_outcast.jpg http://[server]/CHK/Numai%20Outcast.full.jpg -number_crunch.jpg http://[server]/UNH/Number%20Crunch.full.jpg -numot_the_devastator.jpg http://[server]/PLC/Numot,%20the%20Devastator.full.jpg -nurturer_initiate.jpg http://[server]/SHM/Nurturer%20Initiate.full.jpg -nurturing_licid.jpg http://[server]/TE/Nurturing%20Licid.full.jpg -nut_collector.jpg http://[server]/OD/Nut%20Collector.full.jpg -nyxathid.jpg http://[server]/CFX/Nyxathid.full.jpg \ No newline at end of file diff --git a/res/pics_link/card-pictures_o.txt b/res/pics_link/card-pictures_o.txt deleted file mode 100644 index 69a3c0cc483..00000000000 --- a/res/pics_link/card-pictures_o.txt +++ /dev/null @@ -1,216 +0,0 @@ -o_naginata.jpg http://[server]/SOK/O-Naginata.full.jpg -oaken_brawler.jpg http://[server]/LRW/Oaken%20Brawler.full.jpg -oakenform.jpg http://[server]/M10/Oakenform.full.jpg -oakgnarl_warrior.jpg http://[server]/LRW/Oakgnarl%20Warrior.full.jpg -oasis.jpg http://[server]/AN/Oasis.full.jpg -oath_of_druids.jpg http://[server]/EX/Oath%20of%20Druids.full.jpg -oath_of_ghouls.jpg http://[server]/EX/Oath%20of%20Ghouls.full.jpg -oath_of_lieges.jpg http://[server]/EX/Oath%20of%20Lieges.full.jpg -oath_of_lim_dul.jpg http://[server]/IA/Oath%20of%20Lim-Dul.full.jpg -oath_of_mages.jpg http://[server]/EX/Oath%20of%20Mages.full.jpg -oath_of_scholars.jpg http://[server]/EX/Oath%20of%20Scholars.full.jpg -oathkeeper_takenos_daisho.jpg http://[server]/CHK/Oathkeeper,%20Takeno's%20Daisho.full.jpg -oathsworn_giant.jpg http://[server]/RAV/Oathsworn%20Giant.full.jpg -ob_nixilis_the_fallen.jpg http://[server]/ZEN/Ob%20Nixilis,%20the%20Fallen.full.jpg -obelisk_of_alara.jpg http://[server]/CFX/Obelisk%20of%20Alara.full.jpg -obelisk_of_bant.jpg http://[server]/ALA/Obelisk%20of%20Bant.full.jpg -obelisk_of_esper.jpg http://[server]/ALA/Obelisk%20of%20Esper.full.jpg -obelisk_of_grixis.jpg http://[server]/ALA/Obelisk%20of%20Grixis.full.jpg -obelisk_of_jund.jpg http://[server]/ALA/Obelisk%20of%20Jund.full.jpg -obelisk_of_naya.jpg http://[server]/ALA/Obelisk%20of%20Naya.full.jpg -obelisk_of_undoing.jpg http://[server]/5E/Obelisk%20of%20Undoing.full.jpg -oblation.jpg http://[server]/ON/Oblation.full.jpg -obliterate.jpg http://[server]/8E/Obliterate.full.jpg -oblivion_crown.jpg http://[server]/FUT/Oblivion%20Crown.full.jpg -oblivion_ring.jpg http://[server]/ALA/Oblivion%20Ring.full.jpg -oblivion_stone.jpg http://[server]/MR/Oblivion%20Stone.full.jpg -oboro_breezecaller.jpg http://[server]/SOK/Oboro%20Breezecaller.full.jpg -oboro_envoy.jpg http://[server]/SOK/Oboro%20Envoy.full.jpg -oboro_palace_in_the_clouds.jpg http://[server]/SOK/Oboro,%20Palace%20in%20the%20Clouds.full.jpg -obsessive_search.jpg http://[server]/TO/Obsessive%20Search.full.jpg -obsianus_golem.jpg http://[server]/6E/Obsianus%20Golem.full.jpg -obsidian_acolyte.jpg http://[server]/IN/Obsidian%20Acolyte.full.jpg -obsidian_battle_axe.jpg http://[server]/MOR/Obsidian%20Battle-Axe.full.jpg -obsidian_fireheart.jpg http://[server]/ZEN/Obsidian%20Fireheart.full.jpg -obsidian_giant.jpg http://[server]/P2/Obsidian%20Giant.full.jpg -obstinate_familiar.jpg http://[server]/OD/Obstinate%20Familiar.full.jpg -ocular_halo.jpg http://[server]/DIS/Ocular%20Halo.full.jpg -oddsends.jpg http://[server]/DIS/OddsEnds.full.jpg -odious_trow.jpg http://[server]/EVE/Odious%20Trow.full.jpg -odylic_wraith.jpg http://[server]/WL/Odylic%20Wraith.full.jpg -off_balance.jpg http://[server]/NE/Off%20Balance.full.jpg -offalsnout.jpg http://[server]/MOR/Offalsnout.full.jpg -offering_to_asha.jpg http://[server]/ARB/Offering%20to%20Asha.full.jpg -ogre_arsonist.jpg http://[server]/P2/Ogre%20Arsonist.full.jpg -ogre_berserker.jpg http://[server]/P2/Ogre%20Berserker.full.jpg -ogre_enforcer.jpg http://[server]/VI/Ogre%20Enforcer.full.jpg -ogre_gatecrasher.jpg http://[server]/DIS/Ogre%20Gatecrasher.full.jpg -ogre_leadfoot.jpg http://[server]/MR/Ogre%20Leadfoot.full.jpg -ogre_marauder.jpg http://[server]/BOK/Ogre%20Marauder.full.jpg -ogre_recluse.jpg http://[server]/BOK/Ogre%20Recluse.full.jpg -ogre_savant.jpg http://[server]/GP/Ogre%20Savant.full.jpg -ogre_shaman.jpg http://[server]/EX/Ogre%20Shaman.full.jpg -ogre_taskmaster.jpg http://[server]/9E/Ogre%20Taskmaster.full.jpg -ogre_warrior.jpg http://[server]/ST/Ogre%20Warrior.full.jpg -ohran_viper.jpg http://[server]/CS/Ohran%20Viper.full.jpg -ohran_yeti.jpg http://[server]/CS/Ohran%20Yeti.full.jpg -okiba_gang_shinobi.jpg http://[server]/BOK/Okiba-Gang%20Shinobi.full.jpg -okina_nightwatch.jpg http://[server]/SOK/Okina%20Nightwatch.full.jpg -okina_temple_to_the_grandfathers.jpg http://[server]/CHK/Okina,%20Temple%20to%20the%20Grandfathers.full.jpg -okk.jpg http://[server]/8E/Okk.full.jpg -old_fogey.jpg http://[server]/UNH/Old%20Fogey.full.jpg -old_ghastbark.jpg http://[server]/SHM/Old%20Ghastbark.full.jpg -old_man_of_the_sea.jpg http://[server]/AN/Old%20Man%20of%20the%20Sea.full.jpg -omega_myr.jpg http://[server]/MR/Omega%20Myr.full.jpg -omen.jpg http://[server]/PT/Omen.full.jpg -omen_of_fire.jpg http://[server]/AL/Omen%20of%20Fire.full.jpg -omnibian.jpg http://[server]/DIS/Omnibian.full.jpg -once_more_with_feeling.jpg http://[server]/UG/Once%20More%20with%20Feeling.full.jpg -ondu_cleric.jpg http://[server]/ZEN/Ondu%20Cleric.full.jpg -one_dozen_eyes.jpg http://[server]/MR/One%20Dozen%20Eyes.full.jpg -one_with_nature.jpg http://[server]/SC/One%20with%20Nature.full.jpg -one_with_nothing.jpg http://[server]/SOK/One%20with%20Nothing.full.jpg -oni_of_wild_places.jpg http://[server]/SOK/Oni%20of%20Wild%20Places.full.jpg -oni_possession.jpg http://[server]/CHK/Oni%20Possession.full.jpg -onslaught.jpg http://[server]/EX/Onslaught.full.jpg -onulet.jpg http://[server]/4E/Onulet.full.jpg -onyx_goblet.jpg http://[server]/ALA/Onyx%20Goblet.full.jpg -onyx_talisman.jpg http://[server]/IA/Onyx%20Talisman.full.jpg -oona_queen_of_the_fae.jpg http://[server]/SHM/Oona,%20Queen%20of%20the%20Fae.full.jpg -oonas_blackguard.jpg http://[server]/MOR/Oona's%20Blackguard.full.jpg -oonas_gatewarden.jpg http://[server]/SHM/Oona's%20Gatewarden.full.jpg -oonas_grace.jpg http://[server]/EVE/Oona's%20Grace.full.jpg -oonas_prowler.jpg http://[server]/LRW/Oona's%20Prowler.full.jpg -ooze_garden.jpg http://[server]/ALA/Ooze%20Garden.full.jpg -opal_acrolith.jpg http://[server]/US/Opal%20Acrolith.full.jpg -opal_archangel.jpg http://[server]/US/Opal%20Archangel.full.jpg -opal_avenger.jpg http://[server]/UL/Opal%20Avenger.full.jpg -opal_caryatid.jpg http://[server]/US/Opal%20Caryatid.full.jpg -opal_champion.jpg http://[server]/UL/Opal%20Champion.full.jpg -opal_eye_kondas_yojimbo.jpg http://[server]/BOK/Opal-Eye,%20Konda's%20Yojimbo.full.jpg -opal_gargoyle.jpg http://[server]/US/Opal%20Gargoyle.full.jpg -opal_guardian.jpg http://[server]/TSP/Opal%20Guardian.full.jpg -opal_titan.jpg http://[server]/US/Opal%20Titan.full.jpg -opalescence.jpg http://[server]/UD/Opalescence.full.jpg -opaline_bracers.jpg http://[server]/FD/Opaline%20Bracers.full.jpg -opaline_sliver.jpg http://[server]/TSP/Opaline%20Sliver.full.jpg -open_the_vaults.jpg http://[server]/M10/Open%20the%20Vaults.full.jpg -ophidian.jpg http://[server]/WL/Ophidian.full.jpg -ophidian_eye.jpg http://[server]/TSP/Ophidian%20Eye.full.jpg -opportunist.jpg http://[server]/TE/Opportunist.full.jpg -opportunity.jpg http://[server]/7E/Opportunity.full.jpg -opposition.jpg http://[server]/7E/Opposition.full.jpg -oppression.jpg http://[server]/7E/Oppression.full.jpg -oppressive_will.jpg http://[server]/SOK/Oppressive%20Will.full.jpg -opt.jpg http://[server]/IN/Opt.full.jpg -oracle.jpg http://[server]/VG/Oracle.full.jpg -oracle_en_vec.jpg http://[server]/TE/Oracle%20en-Vec.full.jpg -oracle_of_mul_daya.jpg http://[server]/ZEN/Oracle%20of%20Mul%20Daya.full.jpg -oracle_of_nectars.jpg http://[server]/SHM/Oracle%20of%20Nectars.full.jpg -oracles_attendants.jpg http://[server]/9E/Oracle's%20Attendants.full.jpg -oran_rief_recluse.jpg http://[server]/ZEN/Oran-Rief%20Recluse.full.jpg -oran_rief_survivalist.jpg http://[server]/ZEN/Oran-Rief%20Survivalist.full.jpg -oran_rief_the_vastwood.jpg http://[server]/ZEN/Oran-Rief,%20the%20Vastwood.full.jpg -oraxid.jpg http://[server]/NE/Oraxid.full.jpg -orb_of_dreams.jpg http://[server]/BOK/Orb%20of%20Dreams.full.jpg -orbweaver_kumo.jpg http://[server]/CHK/Orbweaver%20Kumo.full.jpg -orc_general.jpg http://[server]/DK/Orc%20General.full.jpg -orchard_warden.jpg http://[server]/MOR/Orchard%20Warden.full.jpg -orcish_artillery.jpg http://[server]/10E/Orcish%20Artillery.full.jpg -orcish_bloodpainter.jpg http://[server]/CS/Orcish%20Bloodpainter.full.jpg -orcish_cannonade.jpg http://[server]/TSP/Orcish%20Cannonade.full.jpg -orcish_cannoneers.jpg http://[server]/DM/Orcish%20Cannoneers.full.jpg -orcish_captain.jpg http://[server]/5E/Orcish%20Captain.full.jpg -orcish_conscripts.jpg http://[server]/5E/Orcish%20Conscripts.full.jpg -orcish_farmer.jpg http://[server]/5E/Orcish%20Farmer.full.jpg -orcish_healer.jpg http://[server]/CST/Orcish%20Healer.full.jpg -orcish_librarian.jpg http://[server]/IA/Orcish%20Librarian.full.jpg -orcish_lumberjack.jpg http://[server]/CST/Orcish%20Lumberjack.full.jpg -orcish_mechanics.jpg http://[server]/AQ/Orcish%20Mechanics.full.jpg -orcish_mine.jpg http://[server]/HL/Orcish%20Mine.full.jpg -orcish_oriflamme.jpg http://[server]/7E/Orcish%20Oriflamme.full.jpg -orcish_paratroopers.jpg http://[server]/UNH/Orcish%20Paratroopers.full.jpg -orcish_settlers.jpg http://[server]/WL/Orcish%20Settlers.full.jpg -orcish_spy.jpg http://[server]/8E/Orcish%20Spy.full.jpg -orcish_squatters.jpg http://[server]/5E/Orcish%20Squatters.full.jpg -orcish_veteran.jpg http://[server]/FE/Orcish%20Veteran1.full.jpg -order_chaos.jpg http://[server]/HOP/Order%20Chaos.full.jpg -order_of_leitbur.jpg http://[server]/FE/Order%20of%20Leitbur1.full.jpg -order_of_the_ebon_hand.jpg http://[server]/FE/Order%20of%20the%20Ebon%20Hand1.full.jpg -order_of_the_golden_cricket.jpg http://[server]/MOR/Order%20of%20the%20Golden%20Cricket.full.jpg -order_of_the_sacred_bell.jpg http://[server]/CHK/Order%20of%20the%20Sacred%20Bell.full.jpg -order_of_the_sacred_torch.jpg http://[server]/6E/Order%20of%20the%20Sacred%20Torch.full.jpg -order_of_the_stars.jpg http://[server]/GP/Order%20of%20the%20Stars.full.jpg -order_of_the_white_shield.jpg http://[server]/5E/Order%20of%20the%20White%20Shield.full.jpg -order_of_whiteclay.jpg http://[server]/SHM/Order%20of%20Whiteclay.full.jpg -order_of_yawgmoth.jpg http://[server]/US/Order%20of%20Yawgmoth.full.jpg -orderchaos.jpg http://[server]/AP/OrderChaos.full.jpg -ordered_migration.jpg http://[server]/IN/Ordered%20Migration.full.jpg -ordruun_commando.jpg http://[server]/RAV/Ordruun%20Commando.full.jpg -ore_gorger.jpg http://[server]/CHK/Ore%20Gorger.full.jpg -organ_grinder.jpg http://[server]/TO/Organ%20Grinder.full.jpg -organ_harvest.jpg http://[server]/UG/Organ%20Harvest.full.jpg -orgg.jpg http://[server]/5E/Orgg.full.jpg -orim.jpg http://[server]/VG/Orim.full.jpg -orim_samite_healer.jpg http://[server]/TE/Orim,%20Samite%20Healer.full.jpg -orims_chant.jpg http://[server]/PS/Orim's%20Chant.full.jpg -orims_cure.jpg http://[server]/MM/Orim's%20Cure.full.jpg -orims_prayer.jpg http://[server]/TE/Orim's%20Prayer.full.jpg -orims_thunder.jpg http://[server]/AP/Orim's%20Thunder.full.jpg -orims_touch.jpg http://[server]/IN/Orim's%20Touch.full.jpg -oriss_samite_guardian.jpg http://[server]/FUT/Oriss,%20Samite%20Guardian.full.jpg -ornate_kanzashi.jpg http://[server]/BOK/Ornate%20Kanzashi.full.jpg -ornithopter.jpg http://[server]/M10/Ornithopter.full.jpg -orochi_eggwatcher.jpg http://[server]/CHK/Orochi%20Eggwatcher.full.jpg -orochi_hatchery.jpg http://[server]/CHK/Orochi%20Hatchery.full.jpg -orochi_leafcaller.jpg http://[server]/CHK/Orochi%20Leafcaller.full.jpg -orochi_ranger.jpg http://[server]/CHK/Orochi%20Ranger.full.jpg -orochi_sustainer.jpg http://[server]/CHK/Orochi%20Sustainer.full.jpg -oros_the_avenger.jpg http://[server]/PLC/Oros,%20the%20Avenger.full.jpg -orzhov_basilica.jpg http://[server]/GP/Orzhov%20Basilica.full.jpg -orzhov_euthanist.jpg http://[server]/GP/Orzhov%20Euthanist.full.jpg -orzhov_guildmage.jpg http://[server]/GP/Orzhov%20Guildmage.full.jpg -orzhov_pontiff.jpg http://[server]/GP/Orzhov%20Pontiff.full.jpg -orzhov_signet.jpg http://[server]/GP/Orzhov%20Signet.full.jpg -orzhova_the_church_of_deals.jpg http://[server]/GP/Orzhova,%20the%20Church%20of%20Deals.full.jpg -osai_vultures.jpg http://[server]/LG/Osai%20Vultures.full.jpg -ostiary_thrull.jpg http://[server]/GP/Ostiary%20Thrull.full.jpg -ostracize.jpg http://[server]/7E/Ostracize.full.jpg -otarian_juggernaut.jpg http://[server]/OD/Otarian%20Juggernaut.full.jpg -otherworldly_journey.jpg http://[server]/CHK/Otherworldly%20Journey.full.jpg -oubliette.jpg http://[server]/AN/Oubliette1.full.jpg -ouphe_vandals.jpg http://[server]/FD/Ouphe%20Vandals.full.jpg -our_market_research.jpg http://[server]/UNH/Our%20Market%20Research.full.jpg -outbreak.jpg http://[server]/PY/Outbreak.full.jpg -outmaneuver.jpg http://[server]/US/Outmaneuver.full.jpg -outrage_shaman.jpg http://[server]/EVE/Outrage%20Shaman.full.jpg -outrider_en_kor.jpg http://[server]/TSP/Outrider%20en-Kor.full.jpg -outrider_of_jhess.jpg http://[server]/ALA/Outrider%20of%20Jhess.full.jpg -overabundance.jpg http://[server]/IN/Overabundance.full.jpg -overbeing_of_myth.jpg http://[server]/EVE/Overbeing%20of%20Myth.full.jpg -overblaze.jpg http://[server]/BOK/Overblaze.full.jpg -overburden.jpg http://[server]/PY/Overburden.full.jpg -overeager_apprentice.jpg http://[server]/OD/Overeager%20Apprentice.full.jpg -overgrown_estate.jpg http://[server]/AP/Overgrown%20Estate.full.jpg -overgrown_tomb.jpg http://[server]/RAV/Overgrown%20Tomb.full.jpg -overgrowth.jpg http://[server]/10E/Overgrowth.full.jpg -overlaid_terrain.jpg http://[server]/NE/Overlaid%20Terrain.full.jpg -overload.jpg http://[server]/IN/Overload.full.jpg -overmaster.jpg http://[server]/TO/Overmaster.full.jpg -override.jpg http://[server]/MR/Override.full.jpg -overrule.jpg http://[server]/DIS/Overrule.full.jpg -overrun.jpg http://[server]/M10/Overrun.full.jpg -oversold_cemetery.jpg http://[server]/ON/Oversold%20Cemetery.full.jpg -oversoul_of_dusk.jpg http://[server]/SHM/Oversoul%20of%20Dusk.full.jpg -overtaker.jpg http://[server]/MM/Overtaker.full.jpg -overwhelm.jpg http://[server]/RAV/Overwhelm.full.jpg -overwhelming_forces.jpg http://[server]/P3/Overwhelming%20Forces.full.jpg -overwhelming_instinct.jpg http://[server]/ON/Overwhelming%20Instinct.full.jpg -overwhelming_intellect.jpg http://[server]/SOK/Overwhelming%20Intellect.full.jpg -ovinize.jpg http://[server]/PLC/Ovinize.full.jpg -ovinomancer.jpg http://[server]/VI/Ovinomancer.full.jpg -ow.jpg http://[server]/UG/Ow.full.jpg -owl_familiar.jpg http://[server]/PT/Owl%20Familiar.full.jpg -oxidda_golem.jpg http://[server]/DS/Oxidda%20Golem.full.jpg -oxidize.jpg http://[server]/DS/Oxidize.full.jpg -oyobi_who_split_the_heavens.jpg http://[server]/BOK/Oyobi,%20Who%20Split%20the%20Heavens.full.jpg \ No newline at end of file diff --git a/res/pics_link/card-pictures_other.txt b/res/pics_link/card-pictures_other.txt deleted file mode 100644 index d7cef2b36ee..00000000000 --- a/res/pics_link/card-pictures_other.txt +++ /dev/null @@ -1,43 +0,0 @@ -forest.jpg http://[server]/UG/Forest.full.jpg -forest1.jpg http://[server]/9E/Forest1.full.jpg -forest2.jpg http://[server]/10E/Forest2.full.jpg -forest3.jpg http://[server]/10E/Forest3.full.jpg -island.jpg http://[server]/UG/Island.full.jpg -island1.jpg http://[server]/10E/Island1.full.jpg -island2.jpg http://[server]/10E/Island2.full.jpg -island3.jpg http://[server]/10E/Island3.full.jpg -mountain.jpg http://[server]/UG/Mountain.full.jpg -mountain1.jpg http://[server]/10E/Mountain1.full.jpg -mountain2.jpg http://[server]/10E/Mountain2.full.jpg -mountain3.jpg http://[server]/10E/Mountain3.full.jpg -plains.jpg http://[server]/UG/Plains.full.jpg -plains1.jpg http://[server]/10E/Plains1.full.jpg -plains2.jpg http://[server]/10E/Plains2.full.jpg -plains3.jpg http://[server]/10E/Plains3.full.jpg -swamp.jpg http://[server]/UG/Swamp.full.jpg -swamp1.jpg http://[server]/10E/Swamp1.full.jpg -swamp2.jpg http://[server]/10E/Swamp2.full.jpg -swamp3.jpg http://[server]/10E/Swamp3.full.jpg -snow_covered_forest.jpg http://[server]/CS/Snow-Covered%20Forest.full.jpg -snow_covered_forest1.jpg http://[server]/CS/Snow-Covered%20Forest.full.jpg -snow_covered_forest2.jpg http://[server]/IA/Snow-Covered%20Forest.full.jpg -snow_covered_forest3.jpg http://[server]/IA/Snow-Covered%20Forest.full.jpg -snow_covered_island.jpg http://[server]/CS/Snow-Covered%20Island.full.jpg -snow_covered_island1.jpg http://[server]/CS/Snow-Covered%20Island.full.jpg -snow_covered_island2.jpg http://[server]/IA/Snow-Covered%20Island.full.jpg -snow_covered_island3.jpg http://[server]/IA/Snow-Covered%20Island.full.jpg -snow_covered_mountain.jpg http://[server]/CS/Snow-Covered%20Mountain.full.jpg -snow_covered_mountain1.jpg http://[server]/CS/Snow-Covered%20Mountain.full.jpg -snow_covered_mountain2.jpg http://[server]/IA/Snow-Covered%20Mountain.full.jpg -snow_covered_mountain3.jpg http://[server]/IA/Snow-Covered%20Mountain.full.jpg -snow_covered_plains.jpg http://[server]/CS/Snow-Covered%20Plains.full.jpg -snow_covered_plains1.jpg http://[server]/CS/Snow-Covered%20Plains.full.jpg -snow_covered_plains2.jpg http://[server]/IA/Snow-Covered%20Plains.full.jpg -snow_covered_plains3.jpg http://[server]/IA/Snow-Covered%20Plains.full.jpg -snow_covered_swamp.jpg http://[server]/CS/Snow-Covered%20Swamp.full.jpg -snow_covered_swamp1.jpg http://[server]/CS/Snow-Covered%20Swamp.full.jpg -snow_covered_swamp2.jpg http://[server]/IA/Snow-Covered%20Swamp.full.jpg -snow_covered_swamp3.jpg http://[server]/IA/Snow-Covered%20Swamp.full.jpg -_____.jpg http://[server]/UNH/_____.full.jpg -snow_devil.jpg http://[server]/IA/Snow%20Devil.full.jpg -1996_world_champion.jpg http://[server]/PR/1996%20World%20Champion.full.jpg diff --git a/res/pics_link/card-pictures_p.txt b/res/pics_link/card-pictures_p.txt deleted file mode 100644 index a93f3a920f8..00000000000 --- a/res/pics_link/card-pictures_p.txt +++ /dev/null @@ -1,550 +0,0 @@ -pacifism.jpg http://[server]/M10/Pacifism.full.jpg -pack_hunt.jpg http://[server]/NE/Pack%20Hunt.full.jpg -packs_disdain.jpg http://[server]/MOR/Pack's%20Disdain.full.jpg -pact_of_negation.jpg http://[server]/FUT/Pact%20of%20Negation.full.jpg -pact_of_the_titan.jpg http://[server]/FUT/Pact%20of%20the%20Titan.full.jpg -pain_kami.jpg http://[server]/CHK/Pain%20Kami.full.jpg -pain_magnification.jpg http://[server]/DIS/Pain%20Magnification.full.jpg -painbringer.jpg http://[server]/OD/Painbringer.full.jpg -painful_memories.jpg http://[server]/MI/Painful%20Memories.full.jpg -pains_reward.jpg http://[server]/SOK/Pain's%20Reward.full.jpg -painsuffering.jpg http://[server]/IN/PainSuffering.full.jpg -painters_servant.jpg http://[server]/SHM/Painter's%20Servant.full.jpg -painwracker_oni.jpg http://[server]/CHK/Painwracker%20Oni.full.jpg -palace_guard.jpg http://[server]/M10/Palace%20Guard.full.jpg -paladin_en_vec.jpg http://[server]/10E/Paladin%20en-Vec.full.jpg -paladin_of_prahv.jpg http://[server]/DIS/Paladin%20of%20Prahv.full.jpg -pale_bears.jpg http://[server]/IA/Pale%20Bears.full.jpg -pale_moon.jpg http://[server]/NE/Pale%20Moon.full.jpg -pale_recluse.jpg http://[server]/ARB/Pale%20Recluse.full.jpg -pale_wayfarer.jpg http://[server]/SHM/Pale%20Wayfarer.full.jpg -paleoloth.jpg http://[server]/CFX/Paleoloth.full.jpg -palinchron.jpg http://[server]/UL/Palinchron.full.jpg -palladia_mors.jpg http://[server]/LG/Palladia-Mors.full.jpg -palliation_accord.jpg http://[server]/DIS/Palliation%20Accord.full.jpg -pallid_mycoderm.jpg http://[server]/PLC/Pallid%20Mycoderm.full.jpg -pallimud.jpg http://[server]/TE/Pallimud.full.jpg -panacea.jpg http://[server]/MM/Panacea.full.jpg -pandemonium.jpg http://[server]/EX/Pandemonium.full.jpg -pang_tong_young_phoenix.jpg http://[server]/P3/Pang%20Tong,%20Young%20Phoenix.full.jpg -panglacial_wurm.jpg http://[server]/CS/Panglacial%20Wurm.full.jpg -pangosaur.jpg http://[server]/MM/Pangosaur.full.jpg -panic.jpg http://[server]/5E/Panic.full.jpg -panic_attack.jpg http://[server]/M10/Panic%20Attack.full.jpg -panoptic_mirror.jpg http://[server]/DS/Panoptic%20Mirror.full.jpg -panther_warriors.jpg http://[server]/6E/Panther%20Warriors.full.jpg -paper_tiger.jpg http://[server]/UG/Paper%20Tiger.full.jpg -paperfin_rascal.jpg http://[server]/LRW/Paperfin%20Rascal.full.jpg -paradigm_shift.jpg http://[server]/WL/Paradigm%20Shift.full.jpg -paradise_mantle.jpg http://[server]/FD/Paradise%20Mantle.full.jpg -paradise_plume.jpg http://[server]/TSP/Paradise%20Plume.full.jpg -paradox_haze.jpg http://[server]/TSP/Paradox%20Haze.full.jpg -paragon_of_the_amesha.jpg http://[server]/CFX/Paragon%20of%20the%20Amesha.full.jpg -parallax_dementia.jpg http://[server]/NE/Parallax%20Dementia.full.jpg -parallax_inhibitor.jpg http://[server]/NE/Parallax%20Inhibitor.full.jpg -parallax_nexus.jpg http://[server]/NE/Parallax%20Nexus.full.jpg -parallax_tide.jpg http://[server]/NE/Parallax%20Tide.full.jpg -parallax_wave.jpg http://[server]/NE/Parallax%20Wave.full.jpg -parallectric_feedback.jpg http://[server]/GP/Parallectric%20Feedback.full.jpg -parallel_evolution.jpg http://[server]/TO/Parallel%20Evolution.full.jpg -parallel_thoughts.jpg http://[server]/SC/Parallel%20Thoughts.full.jpg -paralyze.jpg http://[server]/5E/Paralyze.full.jpg -paralyzing_grasp.jpg http://[server]/ZEN/Paralyzing%20Grasp.full.jpg -parapet.jpg http://[server]/VI/Parapet.full.jpg -parapet_watchers.jpg http://[server]/SHM/Parapet%20Watchers.full.jpg -parasitic_bond.jpg http://[server]/US/Parasitic%20Bond.full.jpg -parasitic_strix.jpg http://[server]/CFX/Parasitic%20Strix.full.jpg -parch.jpg http://[server]/UL/Parch.full.jpg -pardic_arsonist.jpg http://[server]/TO/Pardic%20Arsonist.full.jpg -pardic_collaborator.jpg http://[server]/TO/Pardic%20Collaborator.full.jpg -pardic_dragon.jpg http://[server]/TSP/Pardic%20Dragon.full.jpg -pardic_firecat.jpg http://[server]/OD/Pardic%20Firecat.full.jpg -pardic_lancer.jpg http://[server]/TO/Pardic%20Lancer.full.jpg -pardic_miner.jpg http://[server]/OD/Pardic%20Miner.full.jpg -pardic_swordsmith.jpg http://[server]/OD/Pardic%20Swordsmith.full.jpg -pariah.jpg http://[server]/10E/Pariah.full.jpg -pariahs_shield.jpg http://[server]/RAV/Pariah's%20Shield.full.jpg -paroxysm.jpg http://[server]/EX/Paroxysm.full.jpg -part_the_veil.jpg http://[server]/CHK/Part%20the%20Veil.full.jpg -part_water.jpg http://[server]/LG/Part%20Water.full.jpg -patagia_golem.jpg http://[server]/8E/Patagia%20Golem.full.jpg -patagia_viper.jpg http://[server]/DIS/Patagia%20Viper.full.jpg -patchwork_gnomes.jpg http://[server]/OD/Patchwork%20Gnomes.full.jpg -path_of_angers_flame.jpg http://[server]/SOK/Path%20of%20Anger's%20Flame.full.jpg -path_of_peace.jpg http://[server]/US/Path%20of%20Peace.full.jpg -path_to_exile.jpg http://[server]/CFX/Path%20to%20Exile.full.jpg -patriarchs_bidding.jpg http://[server]/ON/Patriarch's%20Bidding.full.jpg -patriarchs_desire.jpg http://[server]/OD/Patriarch's%20Desire.full.jpg -patricians_scorn.jpg http://[server]/FUT/Patrician's%20Scorn.full.jpg -patrol_hound.jpg http://[server]/OD/Patrol%20Hound.full.jpg -patrol_signaler.jpg http://[server]/EVE/Patrol%20Signaler.full.jpg -patron_of_the_akki.jpg http://[server]/BOK/Patron%20of%20the%20Akki.full.jpg -patron_of_the_kitsune.jpg http://[server]/BOK/Patron%20of%20the%20Kitsune.full.jpg -patron_of_the_moon.jpg http://[server]/BOK/Patron%20of%20the%20Moon.full.jpg -patron_of_the_nezumi.jpg http://[server]/BOK/Patron%20of%20the%20Nezumi.full.jpg -patron_of_the_orochi.jpg http://[server]/BOK/Patron%20of%20the%20Orochi.full.jpg -patron_of_the_wild.jpg http://[server]/LE/Patron%20of%20the%20Wild.full.jpg -patron_wizard.jpg http://[server]/OD/Patron%20Wizard.full.jpg -pattern_of_rebirth.jpg http://[server]/UD/Pattern%20of%20Rebirth.full.jpg -paupers_cage.jpg http://[server]/MI/Paupers'%20Cage.full.jpg -pavel_maliki.jpg http://[server]/LG/Pavel%20Maliki.full.jpg -pay_no_heed.jpg http://[server]/TO/Pay%20No%20Heed.full.jpg -peace_and_quiet.jpg http://[server]/UL/Peace%20and%20Quiet.full.jpg -peace_of_mind.jpg http://[server]/9E/Peace%20of%20Mind.full.jpg -peace_talks.jpg http://[server]/VI/Peace%20Talks.full.jpg -peacekeeper.jpg http://[server]/WL/Peacekeeper.full.jpg -peach_garden_oath.jpg http://[server]/8E/Peach%20Garden%20Oath.full.jpg -pearl_dragon.jpg http://[server]/6E/Pearl%20Dragon.full.jpg -pearl_medallion.jpg http://[server]/TE/Pearl%20Medallion.full.jpg -pearl_shard.jpg http://[server]/MR/Pearl%20Shard.full.jpg -pearled_unicorn.jpg http://[server]/5E/Pearled%20Unicorn.full.jpg -pearlspear_courier.jpg http://[server]/ON/Pearlspear%20Courier.full.jpg -peat_bog.jpg http://[server]/MM/Peat%20Bog.full.jpg -pedantic_learning.jpg http://[server]/OD/Pedantic%20Learning.full.jpg -peek.jpg http://[server]/10E/Peek.full.jpg -peel_from_reality.jpg http://[server]/RAV/Peel%20From%20Reality.full.jpg -peer_pressure.jpg http://[server]/ON/Peer%20Pressure.full.jpg -peer_through_depths.jpg http://[server]/CHK/Peer%20Through%20Depths.full.jpg -pegasus.jpg http://[server]/AT/Pegasus.full.jpg -pegasus_charger.jpg http://[server]/9E/Pegasus%20Charger.full.jpg -pegasus_refuge.jpg http://[server]/TE/Pegasus%20Refuge.full.jpg -pegasus_stampede.jpg http://[server]/AT/Pegasus%20Stampede.full.jpg -pemmins_aura.jpg http://[server]/SC/Pemmin's%20Aura.full.jpg -penance.jpg http://[server]/EX/Penance.full.jpg -pendelhaven.jpg http://[server]/LG/Pendelhaven.full.jpg -pendelhaven_elder.jpg http://[server]/TSP/Pendelhaven%20Elder.full.jpg -pendrell_drake.jpg http://[server]/US/Pendrell%20Drake.full.jpg -pendrell_flux.jpg http://[server]/US/Pendrell%20Flux.full.jpg -pendrell_mists.jpg http://[server]/WL/Pendrell%20Mists.full.jpg -pentad_prism.jpg http://[server]/FD/Pentad%20Prism.full.jpg -pentagram_of_the_ages.jpg http://[server]/6E/Pentagram%20of%20the%20Ages.full.jpg -pentarch_paladin.jpg http://[server]/TSP/Pentarch%20Paladin.full.jpg -pentarch_ward.jpg http://[server]/TSP/Pentarch%20Ward.full.jpg -pentavus.jpg http://[server]/MR/Pentavus.full.jpg -penumbra_bobcat.jpg http://[server]/AP/Penumbra%20Bobcat.full.jpg -penumbra_kavu.jpg http://[server]/AP/Penumbra%20Kavu.full.jpg -penumbra_spider.jpg http://[server]/TSP/Penumbra%20Spider.full.jpg -penumbra_wurm.jpg http://[server]/AP/Penumbra%20Wurm.full.jpg -people_of_the_woods.jpg http://[server]/DK/People%20of%20the%20Woods.full.jpg -peppersmoke.jpg http://[server]/LRW/Peppersmoke.full.jpg -peregrine_drake.jpg http://[server]/US/Peregrine%20Drake.full.jpg -peregrine_mask.jpg http://[server]/RAV/Peregrine%20Mask.full.jpg -perilous_forays.jpg http://[server]/RAV/Perilous%20Forays.full.jpg -perilous_research.jpg http://[server]/CS/Perilous%20Research.full.jpg -perish.jpg http://[server]/6E/Perish.full.jpg -pernicious_deed.jpg http://[server]/AP/Pernicious%20Deed.full.jpg -perplex.jpg http://[server]/RAV/Perplex.full.jpg -persecute.jpg http://[server]/9E/Persecute.full.jpg -persecute_artist.jpg http://[server]/UNH/Persecute%20Artist.full.jpg -personal_incarnation.jpg http://[server]/5E/Personal%20Incarnation.full.jpg -personal_tutor.jpg http://[server]/PT/Personal%20Tutor.full.jpg -persuasion.jpg http://[server]/10E/Persuasion.full.jpg -pestermite.jpg http://[server]/LRW/Pestermite.full.jpg -pestilence.jpg http://[server]/6E/Pestilence.full.jpg -pestilence_rats.jpg http://[server]/IA/Pestilence%20Rats.full.jpg -pestilent_kathari.jpg http://[server]/CFX/Pestilent%20Kathari.full.jpg -petalmane_baku.jpg http://[server]/BOK/Petalmane%20Baku.full.jpg -petals_of_insight.jpg http://[server]/CHK/Petals%20of%20Insight.full.jpg -petra_sphinx.jpg http://[server]/LG/Petra%20Sphinx.full.jpg -petradon.jpg http://[server]/TO/Petradon.full.jpg -petrahydrox.jpg http://[server]/GP/Petrahydrox.full.jpg -petravark.jpg http://[server]/TO/Petravark.full.jpg -petrified_field.jpg http://[server]/OD/Petrified%20Field.full.jpg -petrified_plating.jpg http://[server]/FUT/Petrified%20Plating.full.jpg -petrified_wood_kin.jpg http://[server]/GP/Petrified%20Wood-Kin.full.jpg -pewter_golem.jpg http://[server]/MR/Pewter%20Golem.full.jpg -phage_the_untouchable.jpg http://[server]/10E/Phage%20the%20Untouchable.full.jpg -phantasmagorian.jpg http://[server]/PLC/Phantasmagorian.full.jpg -phantasmal_fiend.jpg http://[server]/AL/Phantasmal%20Fiend1.full.jpg -phantasmal_forces.jpg http://[server]/5E/Phantasmal%20Forces.full.jpg -phantasmal_mount.jpg http://[server]/IA/Phantasmal%20Mount.full.jpg -phantasmal_sphere.jpg http://[server]/AL/Phantasmal%20Sphere.full.jpg -phantasmal_terrain.jpg http://[server]/6E/Phantasmal%20Terrain.full.jpg -phantatog.jpg http://[server]/OD/Phantatog.full.jpg -phantom_centaur.jpg http://[server]/JU/Phantom%20Centaur.full.jpg -phantom_flock.jpg http://[server]/JU/Phantom%20Flock.full.jpg -phantom_monster.jpg http://[server]/5E/Phantom%20Monster.full.jpg -phantom_nantuko.jpg http://[server]/JU/Phantom%20Nantuko.full.jpg -phantom_nishoba.jpg http://[server]/JU/Phantom%20Nishoba.full.jpg -phantom_nomad.jpg http://[server]/JU/Phantom%20Nomad.full.jpg -phantom_tiger.jpg http://[server]/JU/Phantom%20Tiger.full.jpg -phantom_warrior.jpg http://[server]/M10/Phantom%20Warrior.full.jpg -phantom_whelp.jpg http://[server]/OD/Phantom%20Whelp.full.jpg -phantom_wings.jpg http://[server]/WL/Phantom%20Wings.full.jpg -phantom_wurm.jpg http://[server]/TSP/Phantom%20Wurm.full.jpg -phelddagrif.jpg http://[server]/AL/Phelddagrif.full.jpg -phobian_phantasm.jpg http://[server]/CS/Phobian%20Phantasm.full.jpg -phosphorescent_feast.jpg http://[server]/FUT/Phosphorescent%20Feast.full.jpg -phthisis.jpg http://[server]/TSP/Phthisis.full.jpg -phyrexian_altar.jpg http://[server]/IN/Phyrexian%20Altar.full.jpg -phyrexian_arena.jpg http://[server]/9E/Phyrexian%20Arena.full.jpg -phyrexian_battleflies.jpg http://[server]/IN/Phyrexian%20Battleflies.full.jpg -phyrexian_bloodstock.jpg http://[server]/PS/Phyrexian%20Bloodstock.full.jpg -phyrexian_boon.jpg http://[server]/AL/Phyrexian%20Boon1.full.jpg -phyrexian_broodlings.jpg http://[server]/UL/Phyrexian%20Broodlings.full.jpg -phyrexian_colossus.jpg http://[server]/8E/Phyrexian%20Colossus.full.jpg -phyrexian_debaser.jpg http://[server]/UL/Phyrexian%20Debaser.full.jpg -phyrexian_defiler.jpg http://[server]/UL/Phyrexian%20Defiler.full.jpg -phyrexian_delver.jpg http://[server]/IN/Phyrexian%20Delver.full.jpg -phyrexian_denouncer.jpg http://[server]/UL/Phyrexian%20Denouncer.full.jpg -phyrexian_devourer.jpg http://[server]/AL/Phyrexian%20Devourer.full.jpg -phyrexian_dreadnought.jpg http://[server]/MI/Phyrexian%20Dreadnought.full.jpg -phyrexian_driver.jpg http://[server]/NE/Phyrexian%20Driver.full.jpg -phyrexian_etchings.jpg http://[server]/CS/Phyrexian%20Etchings.full.jpg -phyrexian_furnace.jpg http://[server]/WL/Phyrexian%20Furnace.full.jpg -phyrexian_gargantua.jpg http://[server]/9E/Phyrexian%20Gargantua.full.jpg -phyrexian_ghoul.jpg http://[server]/US/Phyrexian%20Ghoul.full.jpg -phyrexian_gremlins.jpg http://[server]/AQ/Phyrexian%20Gremlins.full.jpg -phyrexian_grimoire.jpg http://[server]/TE/Phyrexian%20Grimoire.full.jpg -phyrexian_hulk.jpg http://[server]/9E/Phyrexian%20Hulk.full.jpg -phyrexian_infiltrator.jpg http://[server]/IN/Phyrexian%20Infiltrator.full.jpg -phyrexian_ironfoot.jpg http://[server]/CS/Phyrexian%20Ironfoot.full.jpg -phyrexian_lens.jpg http://[server]/IN/Phyrexian%20Lens.full.jpg -phyrexian_librarian.jpg http://[server]/UNH/Phyrexian%20Librarian.full.jpg -phyrexian_marauder.jpg http://[server]/VI/Phyrexian%20Marauder.full.jpg -phyrexian_monitor.jpg http://[server]/UD/Phyrexian%20Monitor.full.jpg -phyrexian_negator.jpg http://[server]/UD/Phyrexian%20Negator.full.jpg -phyrexian_plaguelord.jpg http://[server]/8E/Phyrexian%20Plaguelord.full.jpg -phyrexian_portal.jpg http://[server]/AL/Phyrexian%20Portal.full.jpg -phyrexian_processor.jpg http://[server]/US/Phyrexian%20Processor.full.jpg -phyrexian_prowler.jpg http://[server]/NE/Phyrexian%20Prowler.full.jpg -phyrexian_purge.jpg http://[server]/MI/Phyrexian%20Purge.full.jpg -phyrexian_rager.jpg http://[server]/10E/Phyrexian%20Rager.full.jpg -phyrexian_reaper.jpg http://[server]/IN/Phyrexian%20Reaper.full.jpg -phyrexian_reclamation.jpg http://[server]/UL/Phyrexian%20Reclamation.full.jpg -phyrexian_scuta.jpg http://[server]/PS/Phyrexian%20Scuta.full.jpg -phyrexian_slayer.jpg http://[server]/IN/Phyrexian%20Slayer.full.jpg -phyrexian_snowcrusher.jpg http://[server]/CS/Phyrexian%20Snowcrusher.full.jpg -phyrexian_soulgorger.jpg http://[server]/CS/Phyrexian%20Soulgorger.full.jpg -phyrexian_splicer.jpg http://[server]/TE/Phyrexian%20Splicer.full.jpg -phyrexian_totem.jpg http://[server]/TSP/Phyrexian%20Totem.full.jpg -phyrexian_tower.jpg http://[server]/US/Phyrexian%20Tower.full.jpg -phyrexian_tribute.jpg http://[server]/MI/Phyrexian%20Tribute.full.jpg -phyrexian_tyranny.jpg http://[server]/PS/Phyrexian%20Tyranny.full.jpg -phyrexian_vault.jpg http://[server]/10E/Phyrexian%20Vault.full.jpg -phyrexian_walker.jpg http://[server]/VI/Phyrexian%20Walker.full.jpg -phyrexian_war_beast.jpg http://[server]/AL/Phyrexian%20War%20Beast.full.jpg -phytohydra.jpg http://[server]/RAV/Phytohydra.full.jpg -pianna_nomad_captain.jpg http://[server]/OD/Pianna,%20Nomad%20Captain.full.jpg -piety.jpg http://[server]/4E/Piety.full.jpg -piety_charm.jpg http://[server]/ON/Piety%20Charm.full.jpg -pikemen.jpg http://[server]/5E/Pikemen.full.jpg -pilgrim_of_justice.jpg http://[server]/OD/Pilgrim%20of%20Justice.full.jpg -pilgrim_of_virtue.jpg http://[server]/OD/Pilgrim%20of%20Virtue.full.jpg -pili_pala.jpg http://[server]/SHM/Pili-Pala.full.jpg -pillage.jpg http://[server]/7E/Pillage.full.jpg -pillaging_horde.jpg http://[server]/PT/Pillaging%20Horde.full.jpg -pillar_of_the_paruns.jpg http://[server]/DIS/Pillar%20of%20the%20Paruns.full.jpg -pillar_tombs_of_aku.jpg http://[server]/VI/Pillar%20Tombs%20of%20Aku.full.jpg -pillarfield_ox.jpg http://[server]/ZEN/Pillarfield%20Ox.full.jpg -pillory_of_the_sleepless.jpg http://[server]/GP/Pillory%20of%20the%20Sleepless.full.jpg -pincer_spider.jpg http://[server]/IN/Pincer%20Spider.full.jpg -pincher_beetles.jpg http://[server]/10E/Pincher%20Beetles.full.jpg -pine_barrens.jpg http://[server]/TE/Pine%20Barrens.full.jpg -pinecrest_ridge.jpg http://[server]/CHK/Pinecrest%20Ridge.full.jpg -pinpoint_avalanche.jpg http://[server]/ON/Pinpoint%20Avalanche.full.jpg -pious_kitsune.jpg http://[server]/CHK/Pious%20Kitsune.full.jpg -pious_warrior.jpg http://[server]/MM/Pious%20Warrior.full.jpg -pipers_melody.jpg http://[server]/OD/Piper's%20Melody.full.jpg -piracy.jpg http://[server]/ST/Piracy.full.jpg -piracy_charm.jpg http://[server]/PLC/Piracy%20Charm.full.jpg -piranha_marsh.jpg http://[server]/ZEN/Piranha%20Marsh.full.jpg -pirate_ship.jpg http://[server]/5E/Pirate%20Ship.full.jpg -pit_imp.jpg http://[server]/TE/Pit%20Imp.full.jpg -pit_keeper.jpg http://[server]/TSP/Pit%20Keeper.full.jpg -pit_raptor.jpg http://[server]/PY/Pit%20Raptor.full.jpg -pit_scorpion.jpg http://[server]/5E/Pit%20Scorpion.full.jpg -pit_spawn.jpg http://[server]/EX/Pit%20Spawn.full.jpg -pit_trap.jpg http://[server]/7E/Pit%20Trap.full.jpg -pitchstone_wall.jpg http://[server]/TO/Pitchstone%20Wall.full.jpg -pitfall_trap.jpg http://[server]/ZEN/Pitfall%20Trap.full.jpg -pithing_needle.jpg http://[server]/M10/Pithing%20Needle.full.jpg -pixie_queen.jpg http://[server]/LG/Pixie%20Queen.full.jpg -plagiarize.jpg http://[server]/10E/Plagiarize.full.jpg -plague_beetle.jpg http://[server]/10E/Plague%20Beetle.full.jpg -plague_boiler.jpg http://[server]/RAV/Plague%20Boiler.full.jpg -plague_dogs.jpg http://[server]/UD/Plague%20Dogs.full.jpg -plague_fiend.jpg http://[server]/PY/Plague%20Fiend.full.jpg -plague_of_vermin.jpg http://[server]/SHM/Plague%20of%20Vermin.full.jpg -plague_rats.jpg http://[server]/5E/Plague%20Rats.full.jpg -plague_sliver.jpg http://[server]/TSP/Plague%20Sliver.full.jpg -plague_spitter.jpg http://[server]/IN/Plague%20Spitter.full.jpg -plague_spores.jpg http://[server]/IN/Plague%20Spores.full.jpg -plague_wind.jpg http://[server]/10E/Plague%20Wind.full.jpg -plague_witch.jpg http://[server]/NE/Plague%20Witch.full.jpg -plaguebearer.jpg http://[server]/EX/Plaguebearer.full.jpg -plagued_rusalka.jpg http://[server]/GP/Plagued%20Rusalka.full.jpg -planar_birth.jpg http://[server]/US/Planar%20Birth.full.jpg -planar_chaos.jpg http://[server]/JU/Planar%20Chaos.full.jpg -planar_cleansing.jpg http://[server]/M10/Planar%20Cleansing.full.jpg -planar_collapse.jpg http://[server]/UL/Planar%20Collapse.full.jpg -planar_despair.jpg http://[server]/AP/Planar%20Despair.full.jpg -planar_gate.jpg http://[server]/LG/Planar%20Gate.full.jpg -planar_guide.jpg http://[server]/LE/Planar%20Guide.full.jpg -planar_overlay.jpg http://[server]/PS/Planar%20Overlay.full.jpg -planar_portal.jpg http://[server]/8E/Planar%20Portal.full.jpg -planar_void.jpg http://[server]/US/Planar%20Void.full.jpg -planeswalkers_favor.jpg http://[server]/PS/Planeswalker's%20Favor.full.jpg -planeswalkers_fury.jpg http://[server]/PS/Planeswalker's%20Fury.full.jpg -planeswalkers_mirth.jpg http://[server]/PS/Planeswalker's%20Mirth.full.jpg -planeswalkers_mischief.jpg http://[server]/PS/Planeswalker's%20Mischief.full.jpg -planeswalkers_scorn.jpg http://[server]/PS/Planeswalker's%20Scorn.full.jpg -plant_elemental.jpg http://[server]/PT/Plant%20Elemental.full.jpg -plasma_elemental.jpg http://[server]/FD/Plasma%20Elemental.full.jpg -plateau.jpg http://[server]/U/Plateau.full.jpg -plated_geopede.jpg http://[server]/ZEN/Plated%20Geopede.full.jpg -plated_pegasus.jpg http://[server]/TSP/Plated%20Pegasus.full.jpg -plated_rootwalla.jpg http://[server]/EX/Plated%20Rootwalla.full.jpg -plated_slagwurm.jpg http://[server]/MR/Plated%20Slagwurm.full.jpg -plated_sliver.jpg http://[server]/LE/Plated%20Sliver.full.jpg -plated_spider.jpg http://[server]/BD/Plated%20Spider.full.jpg -plated_wurm.jpg http://[server]/P2/Plated%20Wurm.full.jpg -platinum_angel.jpg http://[server]/M10/Platinum%20Angel.full.jpg -plaxcaster_frogling.jpg http://[server]/DIS/Plaxcaster%20Frogling.full.jpg -plaxmanta.jpg http://[server]/DIS/Plaxmanta.full.jpg -pledge_of_loyalty.jpg http://[server]/IN/Pledge%20of%20Loyalty.full.jpg -plover_knights.jpg http://[server]/LRW/Plover%20Knights.full.jpg -plow_through_reito.jpg http://[server]/SOK/Plow%20Through%20Reito.full.jpg -plow_under.jpg http://[server]/8E/Plow%20Under.full.jpg -plumes_of_peace.jpg http://[server]/DIS/Plumes%20of%20Peace.full.jpg -plumeveil.jpg http://[server]/SHM/Plumeveil.full.jpg -plunder.jpg http://[server]/TSP/Plunder.full.jpg -plunge_into_darkness.jpg http://[server]/FD/Plunge%20into%20Darkness.full.jpg -pointy_finger_of_doom.jpg http://[server]/UNH/Pointy%20Finger%20of%20Doom.full.jpg -poison_arrow.jpg http://[server]/P3/Poison%20Arrow.full.jpg -poison_the_well.jpg http://[server]/SHM/Poison%20the%20Well.full.jpg -poisonbelly_ogre.jpg http://[server]/GP/Poisonbelly%20Ogre.full.jpg -polar_kraken.jpg http://[server]/IA/Polar%20Kraken.full.jpg -political_trickery.jpg http://[server]/MI/Political%20Trickery.full.jpg -pollen_lullaby.jpg http://[server]/LRW/Pollen%20Lullaby.full.jpg -pollen_remedy.jpg http://[server]/PS/Pollen%20Remedy.full.jpg -pollenbright_wings.jpg http://[server]/RAV/Pollenbright%20Wings.full.jpg -polluted_bonds.jpg http://[server]/SHM/Polluted%20Bonds.full.jpg -polluted_delta.jpg http://[server]/ON/Polluted%20Delta.full.jpg -polluted_mire.jpg http://[server]/BD/Polluted%20Mire.full.jpg -polymorph.jpg http://[server]/M10/Polymorph.full.jpg -ponder.jpg http://[server]/M10/Ponder.full.jpg -pongify.jpg http://[server]/PLC/Pongify.full.jpg -pooling_venom.jpg http://[server]/FUT/Pooling%20Venom.full.jpg -porphyry_nodes.jpg http://[server]/PLC/Porphyry%20Nodes.full.jpg -port_inspector.jpg http://[server]/MM/Port%20Inspector.full.jpg -portcullis.jpg http://[server]/SH/Portcullis.full.jpg -portent.jpg http://[server]/5E/Portent.full.jpg -possessed_aven.jpg http://[server]/TO/Possessed%20Aven.full.jpg -possessed_barbarian.jpg http://[server]/TO/Possessed%20Barbarian.full.jpg -possessed_centaur.jpg http://[server]/TO/Possessed%20Centaur.full.jpg -possessed_nomad.jpg http://[server]/TO/Possessed%20Nomad.full.jpg -possessed_portal.jpg http://[server]/FD/Possessed%20Portal.full.jpg -poultice_sliver.jpg http://[server]/PLC/Poultice%20Sliver.full.jpg -poultrygeist.jpg http://[server]/UG/Poultrygeist.full.jpg -pouncing_jaguar.jpg http://[server]/US/Pouncing%20Jaguar.full.jpg -pouncing_kavu.jpg http://[server]/IN/Pouncing%20Kavu.full.jpg -pouncing_wurm.jpg http://[server]/PLC/Pouncing%20Wurm.full.jpg -powder_keg.jpg http://[server]/UD/Powder%20Keg.full.jpg -power_armor.jpg http://[server]/IN/Power%20Armor.full.jpg -power_artifact.jpg http://[server]/AQ/Power%20Artifact.full.jpg -power_conduit.jpg http://[server]/MR/Power%20Conduit.full.jpg -power_leak.jpg http://[server]/4E/Power%20Leak.full.jpg -power_matrix.jpg http://[server]/MM/Power%20Matrix.full.jpg -power_of_fire.jpg http://[server]/SHM/Power%20of%20Fire.full.jpg -power_sink.jpg http://[server]/6E/Power%20Sink.full.jpg -power_surge.jpg http://[server]/4E/Power%20Surge.full.jpg -power_taint.jpg http://[server]/US/Power%20Taint.full.jpg -powerleech.jpg http://[server]/AQ/Powerleech.full.jpg -powerstone_minefield.jpg http://[server]/AP/Powerstone%20Minefield.full.jpg -pox.jpg http://[server]/5E/Pox.full.jpg -pradesh_gypsies.jpg http://[server]/6E/Pradesh%20Gypsies.full.jpg -prahv_spires_of_order.jpg http://[server]/DIS/Prahv,%20Spires%20of%20Order.full.jpg -preacher.jpg http://[server]/DK/Preacher.full.jpg -precognition.jpg http://[server]/TE/Precognition.full.jpg -predator_dragon.jpg http://[server]/ALA/Predator%20Dragon.full.jpg -predator_flagship.jpg http://[server]/NE/Predator,%20Flagship.full.jpg -predators_strike.jpg http://[server]/MR/Predator's%20Strike.full.jpg -predatory_advantage.jpg http://[server]/ARB/Predatory%20Advantage.full.jpg -predatory_focus.jpg http://[server]/GP/Predatory%20Focus.full.jpg -predatory_hunger.jpg http://[server]/EX/Predatory%20Hunger.full.jpg -predatory_nightstalker.jpg http://[server]/P2/Predatory%20Nightstalker.full.jpg -predatory_urge.jpg http://[server]/ZEN/Predatory%20Urge.full.jpg -predict.jpg http://[server]/OD/Predict.full.jpg -preeminent_captain.jpg http://[server]/MOR/Preeminent%20Captain.full.jpg -preemptive_strike.jpg http://[server]/P3/Preemptive%20Strike.full.jpg -preferred_selection.jpg http://[server]/MI/Preferred%20Selection.full.jpg -premature_burial.jpg http://[server]/TSP/Premature%20Burial.full.jpg -presence_of_gond.jpg http://[server]/SHM/Presence%20of%20Gond.full.jpg -presence_of_the_master.jpg http://[server]/LG/Presence%20of%20the%20Master.full.jpg -presence_of_the_wise.jpg http://[server]/SOK/Presence%20of%20the%20Wise.full.jpg -pretenders_claim.jpg http://[server]/MM/Pretender's%20Claim.full.jpg -price_of_glory.jpg http://[server]/OD/Price%20of%20Glory.full.jpg -price_of_progress.jpg http://[server]/EX/Price%20of%20Progress.full.jpg -prickly_boggart.jpg http://[server]/MOR/Prickly%20Boggart.full.jpg -pride_of_lions.jpg http://[server]/7E/Pride%20of%20Lions.full.jpg -pride_of_the_clouds.jpg http://[server]/DIS/Pride%20of%20the%20Clouds.full.jpg -priest_of_gix.jpg http://[server]/US/Priest%20of%20Gix.full.jpg -priest_of_titania.jpg http://[server]/US/Priest%20of%20Titania.full.jpg -priest_of_yawgmoth.jpg http://[server]/AQ/Priest%20of%20Yawgmoth.full.jpg -primal_bellow.jpg http://[server]/ZEN/Primal%20Bellow.full.jpg -primal_beyond.jpg http://[server]/MOR/Primal%20Beyond.full.jpg -primal_boost.jpg http://[server]/ON/Primal%20Boost.full.jpg -primal_clay.jpg http://[server]/6E/Primal%20Clay.full.jpg -primal_command.jpg http://[server]/LRW/Primal%20Command.full.jpg -primal_forcemage.jpg http://[server]/TSP/Primal%20Forcemage.full.jpg -primal_frenzy.jpg http://[server]/OD/Primal%20Frenzy.full.jpg -primal_growth.jpg http://[server]/PS/Primal%20Growth.full.jpg -primal_order.jpg http://[server]/5E/Primal%20Order.full.jpg -primal_plasma.jpg http://[server]/PLC/Primal%20Plasma.full.jpg -primal_rage.jpg http://[server]/10E/Primal%20Rage.full.jpg -primal_whisperer.jpg http://[server]/LE/Primal%20Whisperer.full.jpg -primalcrux.jpg http://[server]/EVE/Primalcrux.full.jpg -primeval_force.jpg http://[server]/8E/Primeval%20Force.full.jpg -primeval_light.jpg http://[server]/GP/Primeval%20Light.full.jpg -primeval_shambler.jpg http://[server]/8E/Primeval%20Shambler.full.jpg -primitive_etchings.jpg http://[server]/SC/Primitive%20Etchings.full.jpg -primitive_justice.jpg http://[server]/AL/Primitive%20Justice.full.jpg -primoc_escapee.jpg http://[server]/LE/Primoc%20Escapee.full.jpg -primordial_ooze.jpg http://[server]/LG/Primordial%20Ooze.full.jpg -primordial_sage.jpg http://[server]/RAV/Primordial%20Sage.full.jpg -prince_of_thralls.jpg http://[server]/ALA/Prince%20of%20Thralls.full.jpg -princess_lucrezia.jpg http://[server]/LG/Princess%20Lucrezia.full.jpg -prismatic_boon.jpg http://[server]/MI/Prismatic%20Boon.full.jpg -prismatic_circle.jpg http://[server]/MI/Prismatic%20Circle.full.jpg -prismatic_lace.jpg http://[server]/MI/Prismatic%20Lace.full.jpg -prismatic_lens.jpg http://[server]/TSP/Prismatic%20Lens.full.jpg -prismatic_omen.jpg http://[server]/SHM/Prismatic%20Omen.full.jpg -prismatic_strands.jpg http://[server]/JU/Prismatic%20Strands.full.jpg -prismatic_ward.jpg http://[server]/5E/Prismatic%20Ward.full.jpg -prismatic_wardrobe.jpg http://[server]/UG/Prismatic%20Wardrobe.full.jpg -prismwake_merrow.jpg http://[server]/SHM/Prismwake%20Merrow.full.jpg -prison_barricade.jpg http://[server]/IN/Prison%20Barricade.full.jpg -prison_term.jpg http://[server]/HOP/Prison%20Term.full.jpg -pristine_angel.jpg http://[server]/DS/Pristine%20Angel.full.jpg -private_research.jpg http://[server]/UD/Private%20Research.full.jpg -privileged_position.jpg http://[server]/RAV/Privileged%20Position.full.jpg -prized_unicorn.jpg http://[server]/M10/Prized%20Unicorn.full.jpg -probe.jpg http://[server]/IN/Probe.full.jpg -proclamation_of_rebirth.jpg http://[server]/DIS/Proclamation%20of%20Rebirth.full.jpg -prodigal_pyromancer.jpg http://[server]/M10/Prodigal%20Pyromancer.full.jpg -prodigal_sorcerer.jpg http://[server]/7E/Prodigal%20Sorcerer.full.jpg -profane_command.jpg http://[server]/HOP/Profane%20Command.full.jpg -profane_prayers.jpg http://[server]/ON/Profane%20Prayers.full.jpg -progenitus.jpg http://[server]/CFX/Progenitus.full.jpg -prohibit.jpg http://[server]/IN/Prohibit.full.jpg -promise_of_bunrei.jpg http://[server]/SOK/Promise%20of%20Bunrei.full.jpg -promise_of_power.jpg http://[server]/MR/Promise%20of%20Power.full.jpg -promised_kannushi.jpg http://[server]/SOK/Promised%20Kannushi.full.jpg -propaganda.jpg http://[server]/TE/Propaganda.full.jpg -proper_burial.jpg http://[server]/DIS/Proper%20Burial.full.jpg -prophecy.jpg http://[server]/HL/Prophecy.full.jpg -prophetic_bolt.jpg http://[server]/AP/Prophetic%20Bolt.full.jpg -proposal.jpg http://[server]/PR/Proposal.full.jpg -prosperity.jpg http://[server]/6E/Prosperity.full.jpg -protean_hulk.jpg http://[server]/DIS/Protean%20Hulk.full.jpg -protean_hydra.jpg http://[server]/M10/Protean%20Hydra.full.jpg -protective_bubble.jpg http://[server]/LRW/Protective%20Bubble.full.jpg -protective_sphere.jpg http://[server]/IN/Protective%20Sphere.full.jpg -proteus_machine.jpg http://[server]/SC/Proteus%20Machine.full.jpg -proteus_staff.jpg http://[server]/MR/Proteus%20Staff.full.jpg -protomatter_powder.jpg http://[server]/ALA/Protomatter%20Powder.full.jpg -provoke.jpg http://[server]/SH/Provoke.full.jpg -prowess_of_the_fair.jpg http://[server]/LRW/Prowess%20of%20the%20Fair.full.jpg -prowling_nightstalker.jpg http://[server]/P2/Prowling%20Nightstalker.full.jpg -prowling_pangolin.jpg http://[server]/ON/Prowling%20Pangolin.full.jpg -psionic_blast.jpg http://[server]/TSB/Psionic%20Blast.full.jpg -psionic_entity.jpg http://[server]/LG/Psionic%20Entity.full.jpg -psionic_gift.jpg http://[server]/OD/Psionic%20Gift.full.jpg -psionic_sliver.jpg http://[server]/TSP/Psionic%20Sliver.full.jpg -psychatog.jpg http://[server]/OD/Psychatog.full.jpg -psychic_allergy.jpg http://[server]/DK/Psychic%20Allergy.full.jpg -psychic_battle.jpg http://[server]/IN/Psychic%20Battle.full.jpg -psychic_drain.jpg http://[server]/RAV/Psychic%20Drain.full.jpg -psychic_membrane.jpg http://[server]/MR/Psychic%20Membrane.full.jpg -psychic_network.jpg http://[server]/UG/Psychic%20Network.full.jpg -psychic_overload.jpg http://[server]/DS/Psychic%20Overload.full.jpg -psychic_possession.jpg http://[server]/DIS/Psychic%20Possession.full.jpg -psychic_puppetry.jpg http://[server]/CHK/Psychic%20Puppetry.full.jpg -psychic_purge.jpg http://[server]/LG/Psychic%20Purge.full.jpg -psychic_spear.jpg http://[server]/BOK/Psychic%20Spear.full.jpg -psychic_theft.jpg http://[server]/PY/Psychic%20Theft.full.jpg -psychic_trance.jpg http://[server]/ON/Psychic%20Trance.full.jpg -psychic_transfer.jpg http://[server]/MI/Psychic%20Transfer.full.jpg -psychic_venom.jpg http://[server]/6E/Psychic%20Venom.full.jpg -psychic_vortex.jpg http://[server]/WL/Psychic%20Vortex.full.jpg -psychogenic_probe.jpg http://[server]/MR/Psychogenic%20Probe.full.jpg -psychotic_episode.jpg http://[server]/TSP/Psychotic%20Episode.full.jpg -psychotic_fury.jpg http://[server]/DIS/Psychotic%20Fury.full.jpg -psychotic_haze.jpg http://[server]/TO/Psychotic%20Haze.full.jpg -psychotrope_thallid.jpg http://[server]/PLC/Psychotrope%20Thallid.full.jpg -pteron_ghost.jpg http://[server]/DS/Pteron%20Ghost.full.jpg -pucas_mischief.jpg http://[server]/SHM/Puca's%20Mischief.full.jpg -puffer_extract.jpg http://[server]/MM/Puffer%20Extract.full.jpg -pull_from_eternity.jpg http://[server]/TSP/Pull%20from%20Eternity.full.jpg -pull_under.jpg http://[server]/CHK/Pull%20Under.full.jpg -pulling_teeth.jpg http://[server]/MOR/Pulling%20Teeth.full.jpg -pulmonic_sliver.jpg http://[server]/TSP/Pulmonic%20Sliver.full.jpg -pulsating_illusion.jpg http://[server]/OD/Pulsating%20Illusion.full.jpg -pulse_of_llanowar.jpg http://[server]/IN/Pulse%20of%20Llanowar.full.jpg -pulse_of_the_dross.jpg http://[server]/DS/Pulse%20of%20the%20Dross.full.jpg -pulse_of_the_fields.jpg http://[server]/DS/Pulse%20of%20the%20Fields.full.jpg -pulse_of_the_forge.jpg http://[server]/DS/Pulse%20of%20the%20Forge.full.jpg -pulse_of_the_grid.jpg http://[server]/DS/Pulse%20of%20the%20Grid.full.jpg -pulse_of_the_tangle.jpg http://[server]/DS/Pulse%20of%20the%20Tangle.full.jpg -pulsemage_advocate.jpg http://[server]/JU/Pulsemage%20Advocate.full.jpg -pulverize.jpg http://[server]/MM/Pulverize.full.jpg -punctuate.jpg http://[server]/UNH/Punctuate.full.jpg -puncture_blast.jpg http://[server]/EVE/Puncture%20Blast.full.jpg -puncture_bolt.jpg http://[server]/SHM/Puncture%20Bolt.full.jpg -punish_ignorance.jpg http://[server]/ALA/Punish%20Ignorance.full.jpg -punishing_fire.jpg http://[server]/ZEN/Punishing%20Fire.full.jpg -puppet_conjurer.jpg http://[server]/ALA/Puppet%20Conjurer.full.jpg -puppet_master.jpg http://[server]/LG/Puppet%20Master.full.jpg -puppet_strings.jpg http://[server]/TE/Puppet%20Strings.full.jpg -puppeteer.jpg http://[server]/10E/Puppeteer.full.jpg -puppeteer_clique.jpg http://[server]/SHM/Puppeteer%20Clique.full.jpg -puppets_verdict.jpg http://[server]/MM/Puppet's%20Verdict.full.jpg -pure_intentions.jpg http://[server]/SOK/Pure%20Intentions.full.jpg -pure_reflection.jpg http://[server]/IN/Pure%20Reflection.full.jpg -purelace.jpg http://[server]/4E/Purelace.full.jpg -puresight_merrow.jpg http://[server]/SHM/Puresight%20Merrow.full.jpg -puresimple.jpg http://[server]/DIS/PureSimple.full.jpg -purgatory.jpg http://[server]/MI/Purgatory.full.jpg -purge.jpg http://[server]/DS/Purge.full.jpg -purging_scythe.jpg http://[server]/US/Purging%20Scythe.full.jpg -purify.jpg http://[server]/7E/Purify.full.jpg -purity.jpg http://[server]/LRW/Purity.full.jpg -purraj_of_urborg.jpg http://[server]/MI/Purraj%20of%20Urborg.full.jpg -pursuit_of_knowledge.jpg http://[server]/SH/Pursuit%20of%20Knowledge.full.jpg -pus_kami.jpg http://[server]/BOK/Pus%20Kami.full.jpg -put_away.jpg http://[server]/SHM/Put%20Away.full.jpg -putrefaction.jpg http://[server]/MM/Putrefaction.full.jpg -putrefy.jpg http://[server]/RAV/Putrefy.full.jpg -putrid_cyclops.jpg http://[server]/FUT/Putrid%20Cyclops.full.jpg -putrid_imp.jpg http://[server]/TO/Putrid%20Imp.full.jpg -putrid_leech.jpg http://[server]/ARB/Putrid%20Leech.full.jpg -putrid_raptor.jpg http://[server]/SC/Putrid%20Raptor.full.jpg -putrid_warrior.jpg http://[server]/AP/Putrid%20Warrior.full.jpg -pygmy_allosaurus.jpg http://[server]/IA/Pygmy%20Allosaurus.full.jpg -pygmy_giant.jpg http://[server]/UNH/Pygmy%20Giant.full.jpg -pygmy_hippo.jpg http://[server]/VI/Pygmy%20Hippo.full.jpg -pygmy_kavu.jpg http://[server]/PS/Pygmy%20Kavu.full.jpg -pygmy_pyrosaur.jpg http://[server]/7E/Pygmy%20Pyrosaur.full.jpg -pygmy_razorback.jpg http://[server]/PY/Pygmy%20Razorback.full.jpg -pygmy_troll.jpg http://[server]/EX/Pygmy%20Troll.full.jpg -pyknite.jpg http://[server]/IA/Pyknite.full.jpg -pyramids.jpg http://[server]/AN/Pyramids.full.jpg -pyre_charger.jpg http://[server]/SHM/Pyre%20Charger.full.jpg -pyre_zombie.jpg http://[server]/IN/Pyre%20Zombie.full.jpg -pyric_salamander.jpg http://[server]/MI/Pyric%20Salamander.full.jpg -pyrite_spellbomb.jpg http://[server]/MR/Pyrite%20Spellbomb.full.jpg -pyroblast.jpg http://[server]/5E/Pyroblast.full.jpg -pyroclasm.jpg http://[server]/M10/Pyroclasm.full.jpg -pyroclast_consul.jpg http://[server]/MOR/Pyroclast%20Consul.full.jpg -pyrohemia.jpg http://[server]/PLC/Pyrohemia.full.jpg -pyrokinesis.jpg http://[server]/AL/Pyrokinesis.full.jpg -pyromancer_ascension.jpg http://[server]/ZEN/Pyromancer%20Ascension.full.jpg -pyromancers_swath.jpg http://[server]/FUT/Pyromancer's%20Swath.full.jpg -pyromancy.jpg http://[server]/UL/Pyromancy.full.jpg -pyromania.jpg http://[server]/TO/Pyromania.full.jpg -pyromatics.jpg http://[server]/GP/Pyromatics.full.jpg -pyrostatic_pillar.jpg http://[server]/SC/Pyrostatic%20Pillar.full.jpg -pyrotechnics.jpg http://[server]/8E/Pyrotechnics.full.jpg -pyrrhic_revival.jpg http://[server]/EVE/Pyrrhic%20Revival.full.jpg -python.jpg http://[server]/6E/Python.full.jpg \ No newline at end of file diff --git a/res/pics_link/card-pictures_q.txt b/res/pics_link/card-pictures_q.txt deleted file mode 100644 index d9b170b2b56..00000000000 --- a/res/pics_link/card-pictures_q.txt +++ /dev/null @@ -1,44 +0,0 @@ -qasali_ambusher.jpg http://[server]/ALA/Qasali%20Ambusher.full.jpg -qasali_pridemage.jpg http://[server]/ARB/Qasali%20Pridemage.full.jpg -quagmire.jpg http://[server]/LG/Quagmire.full.jpg -quagmire_druid.jpg http://[server]/AP/Quagmire%20Druid.full.jpg -quagmire_lamprey.jpg http://[server]/MM/Quagmire%20Lamprey.full.jpg -quagnoth.jpg http://[server]/FUT/Quagnoth.full.jpg -quarum_trench_gnomes.jpg http://[server]/LG/Quarum%20Trench%20Gnomes.full.jpg -quash.jpg http://[server]/UD/Quash.full.jpg -quenchable_fire.jpg http://[server]/CFX/Quenchable%20Fire.full.jpg -quest_for_ancient_secrets.jpg http://[server]/ZEN/Quest%20for%20Ancient%20Secrets.full.jpg -quest_for_pure_flame.jpg http://[server]/ZEN/Quest%20for%20Pure%20Flame.full.jpg -quest_for_the_gemblades.jpg http://[server]/ZEN/Quest%20for%20the%20Gemblades.full.jpg -quest_for_the_gravelord.jpg http://[server]/ZEN/Quest%20for%20the%20Gravelord.full.jpg -quest_for_the_holy_relic.jpg http://[server]/ZEN/Quest%20for%20the%20Holy%20Relic.full.jpg -questing_phelddagrif.jpg http://[server]/PS/Questing%20Phelddagrif.full.jpg -question_elemental.jpg http://[server]/UNH/Question%20Elemental.full.jpg -quick_sliver.jpg http://[server]/LE/Quick%20Sliver.full.jpg -quickchange.jpg http://[server]/RAV/Quickchange.full.jpg -quicken.jpg http://[server]/GP/Quicken.full.jpg -quickening_licid.jpg http://[server]/TE/Quickening%20Licid.full.jpg -quicksand.jpg http://[server]/10E/Quicksand.full.jpg -quicksilver_amulet.jpg http://[server]/UL/Quicksilver%20Amulet.full.jpg -quicksilver_behemoth.jpg http://[server]/DS/Quicksilver%20Behemoth.full.jpg -quicksilver_dagger.jpg http://[server]/AP/Quicksilver%20Dagger.full.jpg -quicksilver_dragon.jpg http://[server]/ON/Quicksilver%20Dragon.full.jpg -quicksilver_elemental.jpg http://[server]/MR/Quicksilver%20Elemental.full.jpg -quicksilver_fountain.jpg http://[server]/MR/Quicksilver%20Fountain.full.jpg -quicksilver_wall.jpg http://[server]/PY/Quicksilver%20Wall.full.jpg -quiet_disrepair.jpg http://[server]/FUT/Quiet%20Disrepair.full.jpg -quiet_purity.jpg http://[server]/CHK/Quiet%20Purity.full.jpg -quiet_speculation.jpg http://[server]/JU/Quiet%20Speculation.full.jpg -quietus_spike.jpg http://[server]/ALA/Quietus%20Spike.full.jpg -quill_slinger_boggart.jpg http://[server]/LRW/Quill-Slinger%20Boggart.full.jpg -quilled_sliver.jpg http://[server]/TSP/Quilled%20Sliver.full.jpg -quillmane_baku.jpg http://[server]/BOK/Quillmane%20Baku.full.jpg -quillspike.jpg http://[server]/EVE/Quillspike.full.jpg -quirion_druid.jpg http://[server]/VI/Quirion%20Druid.full.jpg -quirion_dryad.jpg http://[server]/10E/Quirion%20Dryad.full.jpg -quirion_elves.jpg http://[server]/IN/Quirion%20Elves.full.jpg -quirion_explorer.jpg http://[server]/PS/Quirion%20Explorer.full.jpg -quirion_ranger.jpg http://[server]/VI/Quirion%20Ranger.full.jpg -quirion_sentinel.jpg http://[server]/IN/Quirion%20Sentinel.full.jpg -quirion_trailblazer.jpg http://[server]/IN/Quirion%20Trailblazer.full.jpg -qumulox.jpg http://[server]/FD/Qumulox.full.jpg \ No newline at end of file diff --git a/res/pics_link/card-pictures_r.txt b/res/pics_link/card-pictures_r.txt deleted file mode 100644 index 2ba444553fa..00000000000 --- a/res/pics_link/card-pictures_r.txt +++ /dev/null @@ -1,593 +0,0 @@ -r&ds_secret_lair.jpg http://[server]/UNH/R&D's%20Secret%20Lair.full.jpg -rabble_rouser.jpg http://[server]/GP/Rabble-Rouser.full.jpg -rabid_elephant.jpg http://[server]/OD/Rabid%20Elephant.full.jpg -rabid_rats.jpg http://[server]/SH/Rabid%20Rats.full.jpg -rabid_wolverines.jpg http://[server]/EX/Rabid%20Wolverines.full.jpg -rabid_wombat.jpg http://[server]/5E/Rabid%20Wombat.full.jpg -rack_and_ruin.jpg http://[server]/UL/Rack%20and%20Ruin.full.jpg -rackling.jpg http://[server]/NE/Rackling.full.jpg -radha_heir_to_keld.jpg http://[server]/PLC/Radha,%20Heir%20to%20Keld.full.jpg -radiant_archangel.jpg http://[server]/UL/Radiant,%20Archangel.full.jpg -radiant_essence.jpg http://[server]/MI/Radiant%20Essence.full.jpg -radiant_kavu.jpg http://[server]/PS/Radiant%20Kavu.full.jpg -radiants_dragoons.jpg http://[server]/UL/Radiant's%20Dragoons.full.jpg -radiants_judgment.jpg http://[server]/UL/Radiant's%20Judgment.full.jpg -radiate.jpg http://[server]/TO/Radiate.full.jpg -radjan_spirit.jpg http://[server]/6E/Radjan%20Spirit.full.jpg -rafiq_of_the_many.jpg http://[server]/ALA/Rafiq%20of%20the%20Many.full.jpg -rag_dealer.jpg http://[server]/CHK/Rag%20Dealer.full.jpg -rag_man.jpg http://[server]/7E/Rag%20Man.full.jpg -ragamuffyn.jpg http://[server]/DIS/Ragamuffyn.full.jpg -rage_forger.jpg http://[server]/MOR/Rage%20Forger.full.jpg -rage_reflection.jpg http://[server]/SHM/Rage%20Reflection.full.jpg -rage_weaver.jpg http://[server]/10E/Rage%20Weaver.full.jpg -ragged_veins.jpg http://[server]/CHK/Ragged%20Veins.full.jpg -raging_bull.jpg http://[server]/LG/Raging%20Bull.full.jpg -raging_cougar.jpg http://[server]/PT/Raging%20Cougar.full.jpg -raging_goblin.jpg http://[server]/M10/Raging%20Goblin.full.jpg -raging_gorilla.jpg http://[server]/VI/Raging%20Gorilla.full.jpg -raging_kavu.jpg http://[server]/IN/Raging%20Kavu.full.jpg -raging_minotaur.jpg http://[server]/PT/Raging%20Minotaur.full.jpg -raging_river.jpg http://[server]/U/Raging%20River.full.jpg -raging_spirit.jpg http://[server]/MI/Raging%20Spirit.full.jpg -ragnar.jpg http://[server]/LG/Ragnar.full.jpg -raiding_nightstalker.jpg http://[server]/P2/Raiding%20Nightstalker.full.jpg -raiding_party.jpg http://[server]/FE/Raiding%20Party.full.jpg -rain_of_blades.jpg http://[server]/8E/Rain%20of%20Blades.full.jpg -rain_of_daggers.jpg http://[server]/P2/Rain%20of%20Daggers.full.jpg -rain_of_embers.jpg http://[server]/RAV/Rain%20of%20Embers.full.jpg -rain_of_filth.jpg http://[server]/US/Rain%20of%20Filth.full.jpg -rain_of_gore.jpg http://[server]/DIS/Rain%20of%20Gore.full.jpg -rain_of_rust.jpg http://[server]/FD/Rain%20of%20Rust.full.jpg -rain_of_salt.jpg http://[server]/PT/Rain%20of%20Salt.full.jpg -rain_of_tears.jpg http://[server]/10E/Rain%20of%20Tears.full.jpg -rainbow_crow.jpg http://[server]/IN/Rainbow%20Crow.full.jpg -rainbow_efreet.jpg http://[server]/VI/Rainbow%20Efreet.full.jpg -rainbow_vale.jpg http://[server]/FE/Rainbow%20Vale.full.jpg -raise_dead.jpg http://[server]/9E/Raise%20Dead.full.jpg -raise_the_alarm.jpg http://[server]/MR/Raise%20the%20Alarm.full.jpg -raka_disciple.jpg http://[server]/AP/Raka%20Disciple.full.jpg -raka_sanctuary.jpg http://[server]/AP/Raka%20Sanctuary.full.jpg -rakalite.jpg http://[server]/CH/Rakalite.full.jpg -rakavolver.jpg http://[server]/AP/Rakavolver.full.jpg -rakdos_augermage.jpg http://[server]/DIS/Rakdos%20Augermage.full.jpg -rakdos_carnarium.jpg http://[server]/DIS/Rakdos%20Carnarium.full.jpg -rakdos_guildmage.jpg http://[server]/DIS/Rakdos%20Guildmage.full.jpg -rakdos_ickspitter.jpg http://[server]/DIS/Rakdos%20Ickspitter.full.jpg -rakdos_pit_dragon.jpg http://[server]/DIS/Rakdos%20Pit%20Dragon.full.jpg -rakdos_riteknife.jpg http://[server]/DIS/Rakdos%20Riteknife.full.jpg -rakdos_signet.jpg http://[server]/DIS/Rakdos%20Signet.full.jpg -rakdos_the_defiler.jpg http://[server]/DIS/Rakdos%20the%20Defiler.full.jpg -rakeclaw_gargantuan.jpg http://[server]/ALA/Rakeclaw%20Gargantuan.full.jpg -raking_canopy.jpg http://[server]/SHM/Raking%20Canopy.full.jpg -rakka_mar.jpg http://[server]/CFX/Rakka%20Mar.full.jpg -raksha_golden_cub.jpg http://[server]/FD/Raksha%20Golden%20Cub.full.jpg -rally.jpg http://[server]/IA/Rally.full.jpg -rally_the_horde.jpg http://[server]/SOK/Rally%20The%20Horde.full.jpg -rally_the_righteous.jpg http://[server]/RAV/Rally%20the%20Righteous.full.jpg -rally_the_troops.jpg http://[server]/P3/Rally%20the%20Troops.full.jpg -ramirez_depietro.jpg http://[server]/LG/Ramirez%20DePietro.full.jpg -ramosian_captain.jpg http://[server]/MM/Ramosian%20Captain.full.jpg -ramosian_commander.jpg http://[server]/MM/Ramosian%20Commander.full.jpg -ramosian_lieutenant.jpg http://[server]/MM/Ramosian%20Lieutenant.full.jpg -ramosian_rally.jpg http://[server]/MM/Ramosian%20Rally.full.jpg -ramosian_revivalist.jpg http://[server]/FUT/Ramosian%20Revivalist.full.jpg -ramosian_sergeant.jpg http://[server]/MM/Ramosian%20Sergeant.full.jpg -ramosian_sky_marshal.jpg http://[server]/MM/Ramosian%20Sky%20Marshal.full.jpg -rampaging_baloths.jpg http://[server]/ZEN/Rampaging%20Baloths.full.jpg -rampant_elephant.jpg http://[server]/IN/Rampant%20Elephant.full.jpg -rampant_growth.jpg http://[server]/M10/Rampant%20Growth.full.jpg -rampart_crawler.jpg http://[server]/MM/Rampart%20Crawler.full.jpg -ramses_overdark.jpg http://[server]/LG/Ramses%20Overdark.full.jpg -rancid_earth.jpg http://[server]/TO/Rancid%20Earth.full.jpg -rancor.jpg http://[server]/UL/Rancor.full.jpg -ranger_en_vec.jpg http://[server]/TE/Ranger%20en-Vec.full.jpg -ranger_of_eos.jpg http://[server]/ALA/Ranger%20of%20Eos.full.jpg -rank_and_file.jpg http://[server]/UL/Rank%20and%20File.full.jpg -ransack.jpg http://[server]/SH/Ransack.full.jpg -rapid_decay.jpg http://[server]/UD/Rapid%20Decay.full.jpg -rapid_fire.jpg http://[server]/LG/Rapid%20Fire.full.jpg -rappelling_scouts.jpg http://[server]/MM/Rappelling%20Scouts.full.jpg -rare_b_gone.jpg http://[server]/UNH/Rare-B-Gone.full.jpg -rashida_scalebane.jpg http://[server]/MI/Rashida%20Scalebane.full.jpg -rashka_the_slayer.jpg http://[server]/HL/Rashka%20the%20Slayer.full.jpg -rasputin_dreamweaver.jpg http://[server]/LG/Rasputin%20Dreamweaver.full.jpg -ratcatcher.jpg http://[server]/DIS/Ratcatcher.full.jpg -rathi_assassin.jpg http://[server]/NE/Rathi%20Assassin.full.jpg -rathi_dragon.jpg http://[server]/9E/Rathi%20Dragon.full.jpg -rathi_fiend.jpg http://[server]/NE/Rathi%20Fiend.full.jpg -rathi_intimidator.jpg http://[server]/NE/Rathi%20Intimidator.full.jpg -rathi_trapper.jpg http://[server]/PLC/Rathi%20Trapper.full.jpg -raths_edge.jpg http://[server]/NE/Rath's%20Edge.full.jpg -rats_feast.jpg http://[server]/JU/Rats'%20Feast.full.jpg -rats_of_rath.jpg http://[server]/TE/Rats%20of%20Rath.full.jpg -rattleblaze_scarecrow.jpg http://[server]/SHM/Rattleblaze%20Scarecrow.full.jpg -ravaged_highlands.jpg http://[server]/OD/Ravaged%20Highlands.full.jpg -ravages_of_war.jpg http://[server]/P3/Ravages%20of%20War.full.jpg -ravaging_horde.jpg http://[server]/P3/Ravaging%20Horde.full.jpg -ravaging_riftwurm.jpg http://[server]/FUT/Ravaging%20Riftwurm.full.jpg -raven_familiar.jpg http://[server]/UL/Raven%20Familiar.full.jpg -raven_guild_initiate.jpg http://[server]/SC/Raven%20Guild%20Initiate.full.jpg -raven_guild_master.jpg http://[server]/SC/Raven%20Guild%20Master.full.jpg -ravenous_baboons.jpg http://[server]/EX/Ravenous%20Baboons.full.jpg -ravenous_baloth.jpg http://[server]/ON/Ravenous%20Baloth.full.jpg -ravenous_rats.jpg http://[server]/10E/Ravenous%20Rats.full.jpg -ravenous_skirge.jpg http://[server]/US/Ravenous%20Skirge.full.jpg -ravenous_trap.jpg http://[server]/ZEN/Ravenous%20Trap.full.jpg -ravenous_vampire.jpg http://[server]/MI/Ravenous%20Vampire.full.jpg -ravens_crime.jpg http://[server]/EVE/Raven's%20Crime.full.jpg -ravens_run_dragoon.jpg http://[server]/SHM/Raven's%20Run%20Dragoon.full.jpg -raving_oni_slave.jpg http://[server]/SOK/Raving%20Oni-Slave.full.jpg -ray_of_command.jpg http://[server]/5E/Ray%20of%20Command.full.jpg -ray_of_distortion.jpg http://[server]/OD/Ray%20of%20Distortion.full.jpg -ray_of_erasure.jpg http://[server]/IA/Ray%20of%20Erasure.full.jpg -ray_of_revelation.jpg http://[server]/JU/Ray%20of%20Revelation.full.jpg -rayne_academy_chancellor.jpg http://[server]/UD/Rayne,%20Academy%20Chancellor.full.jpg -raze.jpg http://[server]/US/Raze.full.jpg -razia_boros_archangel.jpg http://[server]/HOP/Razia,%20Boros%20Archangel.full.jpg -razias_purification.jpg http://[server]/RAV/Razia's%20Purification.full.jpg -razing_snidd.jpg http://[server]/PS/Razing%20Snidd.full.jpg -razor_barrier.jpg http://[server]/MR/Razor%20Barrier.full.jpg -razor_golem.jpg http://[server]/DS/Razor%20Golem.full.jpg -razor_pendulum.jpg http://[server]/MI/Razor%20Pendulum.full.jpg -razorclaw_bear.jpg http://[server]/P2/Razorclaw%20Bear.full.jpg -razorfin_abolisher.jpg http://[server]/EVE/Razorfin%20Abolisher.full.jpg -razorfin_hunter.jpg http://[server]/AP/Razorfin%20Hunter.full.jpg -razorfoot_griffin.jpg http://[server]/M10/Razorfoot%20Griffin.full.jpg -razorgrass_screen.jpg http://[server]/FD/Razorgrass%20Screen.full.jpg -razorjaw_oni.jpg http://[server]/SOK/Razorjaw%20Oni.full.jpg -razormane_masticore.jpg http://[server]/10E/Razormane%20Masticore.full.jpg -razortooth_rats.jpg http://[server]/9E/Razortooth%20Rats.full.jpg -reach_of_branches.jpg http://[server]/MOR/Reach%20of%20Branches.full.jpg -reach_through_mists.jpg http://[server]/CHK/Reach%20Through%20Mists.full.jpg -read_the_runes.jpg http://[server]/ON/Read%20the%20Runes.full.jpg -reality_acid.jpg http://[server]/PLC/Reality%20Acid.full.jpg -reality_anchor.jpg http://[server]/TE/Reality%20Anchor.full.jpg -reality_ripple.jpg http://[server]/MI/Reality%20Ripple.full.jpg -reality_strobe.jpg http://[server]/FUT/Reality%20Strobe.full.jpg -reality_twist.jpg http://[server]/IA/Reality%20Twist.full.jpg -realm_razer.jpg http://[server]/ALA/Realm%20Razer.full.jpg -reanimate.jpg http://[server]/TE/Reanimate.full.jpg -reap.jpg http://[server]/TE/Reap.full.jpg -reap_and_sow.jpg http://[server]/DS/Reap%20and%20Sow.full.jpg -reaper_king.jpg http://[server]/SHM/Reaper%20King.full.jpg -reaping_the_graves.jpg http://[server]/SC/Reaping%20the%20Graves.full.jpg -reaping_the_rewards.jpg http://[server]/EX/Reaping%20the%20Rewards.full.jpg -rebel_informer.jpg http://[server]/PY/Rebel%20Informer.full.jpg -rebellion_of_the_flamekin.jpg http://[server]/LRW/Rebellion%20of%20the%20Flamekin.full.jpg -rebirth.jpg http://[server]/4E/Rebirth.full.jpg -reborn_hero.jpg http://[server]/TO/Reborn%20Hero.full.jpg -reborn_hope.jpg http://[server]/ARB/Reborn%20Hope.full.jpg -rebound.jpg http://[server]/SH/Rebound.full.jpg -rebuff_the_wicked.jpg http://[server]/PLC/Rebuff%20the%20Wicked.full.jpg -rebuild.jpg http://[server]/UL/Rebuild.full.jpg -rebuking_ceremony.jpg http://[server]/DS/Rebuking%20Ceremony.full.jpg -recall.jpg http://[server]/6E/Recall.full.jpg -recantation.jpg http://[server]/US/Recantation.full.jpg -reciprocate.jpg http://[server]/CHK/Reciprocate.full.jpg -reckless_abandon.jpg http://[server]/UD/Reckless%20Abandon.full.jpg -reckless_assault.jpg http://[server]/IN/Reckless%20Assault.full.jpg -reckless_charge.jpg http://[server]/OD/Reckless%20Charge.full.jpg -reckless_embermage.jpg http://[server]/7E/Reckless%20Embermage.full.jpg -reckless_ogre.jpg http://[server]/EX/Reckless%20Ogre.full.jpg -reckless_one.jpg http://[server]/ON/Reckless%20One.full.jpg -reckless_scholar.jpg http://[server]/ZEN/Reckless%20Scholar.full.jpg -reckless_spite.jpg http://[server]/IN/Reckless%20Spite.full.jpg -reckless_wurm.jpg http://[server]/PLC/Reckless%20Wurm.full.jpg -reclaim.jpg http://[server]/9E/Reclaim.full.jpg -reclamation.jpg http://[server]/IA/Reclamation.full.jpg -reclusive_wight.jpg http://[server]/US/Reclusive%20Wight.full.jpg -recoil.jpg http://[server]/IN/Recoil.full.jpg -recollect.jpg http://[server]/10E/Recollect.full.jpg -reconnaissance.jpg http://[server]/EX/Reconnaissance.full.jpg -reconstruction.jpg http://[server]/AQ/Reconstruction.full.jpg -recoup.jpg http://[server]/OD/Recoup.full.jpg -recover.jpg http://[server]/10E/Recover.full.jpg -recross_the_paths.jpg http://[server]/MOR/Recross%20the%20Paths.full.jpg -recumbent_bliss.jpg http://[server]/EVE/Recumbent%20Bliss.full.jpg -recuperate.jpg http://[server]/SC/Recuperate.full.jpg -recurring_nightmare.jpg http://[server]/EX/Recurring%20Nightmare.full.jpg -recycle.jpg http://[server]/TE/Recycle.full.jpg -red_cliffs_armada.jpg http://[server]/P3/Red%20Cliffs%20Armada.full.jpg -red_elemental_blast.jpg http://[server]/4E/Red%20Elemental%20Blast.full.jpg -red_hot_hottie.jpg http://[server]/UNH/Red-Hot%20Hottie.full.jpg -red_mana_battery.jpg http://[server]/4E/Red%20Mana%20Battery.full.jpg -red_scarab.jpg http://[server]/IA/Red%20Scarab.full.jpg -red_ward.jpg http://[server]/4E/Red%20Ward.full.jpg -redeem.jpg http://[server]/8E/Redeem.full.jpg -redeem_the_lost.jpg http://[server]/MOR/Redeem%20the%20Lost.full.jpg -reduce_to_dreams.jpg http://[server]/BOK/Reduce%20to%20Dreams.full.jpg -redwood_treefolk.jpg http://[server]/7E/Redwood%20Treefolk.full.jpg -reef_pirates.jpg http://[server]/5E/Reef%20Pirates.full.jpg -reef_shaman.jpg http://[server]/AP/Reef%20Shaman.full.jpg -reflect_damage.jpg http://[server]/MI/Reflect%20Damage.full.jpg -reflecting_mirror.jpg http://[server]/DK/Reflecting%20Mirror.full.jpg -reflecting_pool.jpg http://[server]/TE/Reflecting%20Pool.full.jpg -reflex_sliver.jpg http://[server]/PLC/Reflex%20Sliver.full.jpg -reflexes.jpg http://[server]/9E/Reflexes.full.jpg -refresh.jpg http://[server]/OD/Refresh.full.jpg -refreshing_rain.jpg http://[server]/NE/Refreshing%20Rain.full.jpg -regal_force.jpg http://[server]/EVE/Regal%20Force.full.jpg -regal_unicorn.jpg http://[server]/6E/Regal%20Unicorn.full.jpg -regenerate.jpg http://[server]/M10/Regenerate.full.jpg -regeneration.jpg http://[server]/10E/Regeneration.full.jpg -regress.jpg http://[server]/MR/Regress.full.jpg -regrowth.jpg http://[server]/U/Regrowth.full.jpg -reign_of_chaos.jpg http://[server]/MI/Reign%20of%20Chaos.full.jpg -reign_of_terror.jpg http://[server]/MI/Reign%20of%20Terror.full.jpg -reincarnation.jpg http://[server]/LG/Reincarnation.full.jpg -reinforcements.jpg http://[server]/CST/Reinforcements.full.jpg -reins_of_power.jpg http://[server]/SH/Reins%20of%20Power.full.jpg -reins_of_the_vinesteed.jpg http://[server]/MOR/Reins%20of%20the%20Vinesteed.full.jpg -reiterate.jpg http://[server]/TSP/Reiterate.full.jpg -reito_lantern.jpg http://[server]/CHK/Reito%20Lantern.full.jpg -reiver_demon.jpg http://[server]/MR/Reiver%20Demon.full.jpg -rejuvenate.jpg http://[server]/US/Rejuvenate.full.jpg -rejuvenation_chamber.jpg http://[server]/NE/Rejuvenation%20Chamber.full.jpg -reki_the_history_of_kamigawa.jpg http://[server]/SOK/Reki,%20the%20History%20of%20Kamigawa.full.jpg -rekindled_flame.jpg http://[server]/EVE/Rekindled%20Flame.full.jpg -reknit.jpg http://[server]/SHM/Reknit.full.jpg -relearn.jpg http://[server]/6E/Relearn.full.jpg -release_the_ants.jpg http://[server]/MOR/Release%20the%20Ants.full.jpg -relentless_assault.jpg http://[server]/10E/Relentless%20Assault.full.jpg -relentless_rats.jpg http://[server]/M10/Relentless%20Rats.full.jpg -relic_bane.jpg http://[server]/MR/Relic%20Bane.full.jpg -relic_barrier.jpg http://[server]/LG/Relic%20Barrier.full.jpg -relic_bind.jpg http://[server]/LG/Relic%20Bind.full.jpg -relic_crush.jpg http://[server]/ZEN/Relic%20Crush.full.jpg -relic_of_progenitus.jpg http://[server]/ALA/Relic%20of%20Progenitus.full.jpg -relic_ward.jpg http://[server]/VI/Relic%20Ward.full.jpg -reliquary_monk.jpg http://[server]/UD/Reliquary%20Monk.full.jpg -reliquary_tower.jpg http://[server]/CFX/Reliquary%20Tower.full.jpg -remand.jpg http://[server]/RAV/Remand.full.jpg -remedy.jpg http://[server]/6E/Remedy.full.jpg -remembrance.jpg http://[server]/US/Remembrance.full.jpg -reminisce.jpg http://[server]/10E/Reminisce.full.jpg -remodel.jpg http://[server]/UNH/Remodel.full.jpg -remote_farm.jpg http://[server]/MM/Remote%20Farm.full.jpg -remote_isle.jpg http://[server]/BD/Remote%20Isle.full.jpg -remove.jpg http://[server]/P2/Remove.full.jpg -remove_enchantments.jpg http://[server]/LG/Remove%20Enchantments.full.jpg -remove_soul.jpg http://[server]/10E/Remove%20Soul.full.jpg -rend_flesh.jpg http://[server]/CHK/Rend%20Flesh.full.jpg -rend_spirit.jpg http://[server]/CHK/Rend%20Spirit.full.jpg -rendclaw_trow.jpg http://[server]/EVE/Rendclaw%20Trow.full.jpg -rending_vines.jpg http://[server]/SOK/Rending%20Vines.full.jpg -renegade_troops.jpg http://[server]/P3/Renegade%20Troops.full.jpg -renegade_warlord.jpg http://[server]/TE/Renegade%20Warlord.full.jpg -renewal.jpg http://[server]/HL/Renewal.full.jpg -renewed_faith.jpg http://[server]/ON/Renewed%20Faith.full.jpg -renewing_dawn.jpg http://[server]/PT/Renewing%20Dawn.full.jpg -renewing_touch.jpg http://[server]/ST/Renewing%20Touch.full.jpg -renounce.jpg http://[server]/MM/Renounce.full.jpg -reparations.jpg http://[server]/MI/Reparations.full.jpg -repeal.jpg http://[server]/GP/Repeal.full.jpg -repel.jpg http://[server]/OD/Repel.full.jpg -repel_intruders.jpg http://[server]/SHM/Repel%20Intruders.full.jpg -repentance.jpg http://[server]/TE/Repentance.full.jpg -repentant_blacksmith.jpg http://[server]/5E/Repentant%20Blacksmith.full.jpg -repentant_vampire.jpg http://[server]/OD/Repentant%20Vampire.full.jpg -repercussion.jpg http://[server]/UD/Repercussion.full.jpg -replenish.jpg http://[server]/UD/Replenish.full.jpg -repopulate.jpg http://[server]/UL/Repopulate.full.jpg -reprisal.jpg http://[server]/7E/Reprisal.full.jpg -reprocess.jpg http://[server]/7E/Reprocess.full.jpg -repulse.jpg http://[server]/IN/Repulse.full.jpg -reroute.jpg http://[server]/RAV/Reroute.full.jpg -rescind.jpg http://[server]/US/Rescind.full.jpg -rescue.jpg http://[server]/UD/Rescue.full.jpg -research_the_deep.jpg http://[server]/MOR/Research%20the%20Deep.full.jpg -researchdevelopment.jpg http://[server]/DIS/ResearchDevelopment.full.jpg -reset.jpg http://[server]/LG/Reset.full.jpg -reshape.jpg http://[server]/DS/Reshape.full.jpg -resilient_wanderer.jpg http://[server]/OD/Resilient%20Wanderer.full.jpg -resistance_fighter.jpg http://[server]/6E/Resistance%20Fighter.full.jpg -resize.jpg http://[server]/CS/Resize.full.jpg -resounding_roar.jpg http://[server]/ALA/Resounding%20Roar.full.jpg -resounding_scream.jpg http://[server]/ALA/Resounding%20Scream.full.jpg -resounding_silence.jpg http://[server]/ALA/Resounding%20Silence.full.jpg -resounding_thunder.jpg http://[server]/ALA/Resounding%20Thunder.full.jpg -resounding_wave.jpg http://[server]/ALA/Resounding%20Wave.full.jpg -respite.jpg http://[server]/TE/Respite.full.jpg -resplendent_mentor.jpg http://[server]/SHM/Resplendent%20Mentor.full.jpg -restless_apparition.jpg http://[server]/EVE/Restless%20Apparition.full.jpg -restless_bones.jpg http://[server]/GP/Restless%20Bones.full.jpg -restless_dead.jpg http://[server]/MI/Restless%20Dead.full.jpg -restless_dreams.jpg http://[server]/TO/Restless%20Dreams.full.jpg -restock.jpg http://[server]/IN/Restock.full.jpg -restore_balance.jpg http://[server]/TSP/Restore%20Balance.full.jpg -restrain.jpg http://[server]/IN/Restrain.full.jpg -resurrection.jpg http://[server]/U/Resurrection.full.jpg -resuscitate.jpg http://[server]/EX/Resuscitate.full.jpg -retaliate.jpg http://[server]/FD/Retaliate.full.jpg -retaliation.jpg http://[server]/US/Retaliation.full.jpg -retaliator_griffin.jpg http://[server]/ARB/Retaliator%20Griffin.full.jpg -retether.jpg http://[server]/PLC/Retether.full.jpg -rethink.jpg http://[server]/PY/Rethink.full.jpg -retraced_image.jpg http://[server]/TO/Retraced%20Image.full.jpg -retract.jpg http://[server]/DS/Retract.full.jpg -retribution.jpg http://[server]/HL/Retribution.full.jpg -retribution_of_the_meek.jpg http://[server]/VI/Retribution%20of%20the%20Meek.full.jpg -retromancer.jpg http://[server]/US/Retromancer.full.jpg -return_of_the_nightstalkers.jpg http://[server]/P2/Return%20of%20the%20Nightstalkers.full.jpg -return_to_battle.jpg http://[server]/P3/Return%20to%20Battle.full.jpg -return_to_dust.jpg http://[server]/TSP/Return%20to%20Dust.full.jpg -reveillark.jpg http://[server]/MOR/Reveillark.full.jpg -reveille_squad.jpg http://[server]/PY/Reveille%20Squad.full.jpg -reveka_wizard_savant.jpg http://[server]/HL/Reveka,%20Wizard%20Savant.full.jpg -revelation.jpg http://[server]/LG/Revelation.full.jpg -revelsong_horn.jpg http://[server]/SHM/Revelsong%20Horn.full.jpg -revenant.jpg http://[server]/7E/Revenant.full.jpg -revenant_patriarch.jpg http://[server]/GP/Revenant%20Patriarch.full.jpg -reverberation.jpg http://[server]/LG/Reverberation.full.jpg -revered_dead.jpg http://[server]/PLC/Revered%20Dead.full.jpg -revered_elder.jpg http://[server]/MM/Revered%20Elder.full.jpg -revered_unicorn.jpg http://[server]/WL/Revered%20Unicorn.full.jpg -reverence.jpg http://[server]/SOK/Reverence.full.jpg -reverent_mantra.jpg http://[server]/MM/Reverent%20Mantra.full.jpg -reverent_silence.jpg http://[server]/NE/Reverent%20Silence.full.jpg -reversal_of_fortune.jpg http://[server]/FD/Reversal%20of%20Fortune.full.jpg -reverse_damage.jpg http://[server]/9E/Reverse%20Damage.full.jpg -reverse_polarity.jpg http://[server]/AQ/Reverse%20Polarity.full.jpg -reverse_the_sands.jpg http://[server]/CHK/Reverse%20the%20Sands.full.jpg -revive.jpg http://[server]/8E/Revive.full.jpg -revive_the_fallen.jpg http://[server]/MOR/Revive%20the%20Fallen.full.jpg -reviving_dose.jpg http://[server]/10E/Reviving%20Dose.full.jpg -reviving_vapors.jpg http://[server]/IN/Reviving%20Vapors.full.jpg -reward_the_faithful.jpg http://[server]/SC/Reward%20the%20Faithful.full.jpg -rewards_of_diversity.jpg http://[server]/IN/Rewards%20of%20Diversity.full.jpg -reweave.jpg http://[server]/CHK/Reweave.full.jpg -rewind.jpg http://[server]/9E/Rewind.full.jpg -reya_dawnbringer.jpg http://[server]/10E/Reya%20Dawnbringer.full.jpg -rhox.jpg http://[server]/10E/Rhox.full.jpg -rhox_bodyguard.jpg http://[server]/CFX/Rhox%20Bodyguard.full.jpg -rhox_brute.jpg http://[server]/ARB/Rhox%20Brute.full.jpg -rhox_charger.jpg http://[server]/ALA/Rhox%20Charger.full.jpg -rhox_meditant.jpg http://[server]/CFX/Rhox%20Meditant.full.jpg -rhox_pikemaster.jpg http://[server]/M10/Rhox%20Pikemaster.full.jpg -rhox_war_monk.jpg http://[server]/ALA/Rhox%20War%20Monk.full.jpg -rhys_the_exiled.jpg http://[server]/MOR/Rhys%20the%20Exiled.full.jpg -rhys_the_redeemed.jpg http://[server]/SHM/Rhys%20the%20Redeemed.full.jpg -rhystic_cave.jpg http://[server]/PY/Rhystic%20Cave.full.jpg -rhystic_circle.jpg http://[server]/PY/Rhystic%20Circle.full.jpg -rhystic_deluge.jpg http://[server]/PY/Rhystic%20Deluge.full.jpg -rhystic_lightning.jpg http://[server]/PY/Rhystic%20Lightning.full.jpg -rhystic_scrying.jpg http://[server]/PY/Rhystic%20Scrying.full.jpg -rhystic_shield.jpg http://[server]/PY/Rhystic%20Shield.full.jpg -rhystic_study.jpg http://[server]/PY/Rhystic%20Study.full.jpg -rhystic_syphon.jpg http://[server]/PY/Rhystic%20Syphon.full.jpg -rhystic_tutor.jpg http://[server]/PY/Rhystic%20Tutor.full.jpg -rib_cage_spider.jpg http://[server]/PY/Rib%20Cage%20Spider.full.jpg -ribbon_snake.jpg http://[server]/PY/Ribbon%20Snake.full.jpg -ribbons_of_night.jpg http://[server]/RAV/Ribbons%20of%20Night.full.jpg -ribbons_of_the_reikai.jpg http://[server]/BOK/Ribbons%20of%20the%20Reikai.full.jpg -richard_garfield_ph.d..jpg http://[server]/UNH/Richard%20Garfield,%20Ph.D..full.jpg -ricochet.jpg http://[server]/UG/Ricochet.full.jpg -riddle_of_lightning.jpg http://[server]/FUT/Riddle%20of%20Lightning.full.jpg -ridge_rannet.jpg http://[server]/ALA/Ridge%20Rannet.full.jpg -ridged_kusite.jpg http://[server]/PLC/Ridged%20Kusite.full.jpg -ridgeline_rager.jpg http://[server]/8E/Ridgeline%20Rager.full.jpg -ridgetop_raptor.jpg http://[server]/LE/Ridgetop%20Raptor.full.jpg -riding_red_hare.jpg http://[server]/P3/Riding%20Red%20Hare.full.jpg -riding_the_dilu_horse.jpg http://[server]/P3/Riding%20the%20Dilu%20Horse.full.jpg -rift_bolt.jpg http://[server]/TSP/Rift%20Bolt.full.jpg -rift_elemental.jpg http://[server]/FUT/Rift%20Elemental.full.jpg -riftmarked_knight.jpg http://[server]/PLC/Riftmarked%20Knight.full.jpg -riftstone_portal.jpg http://[server]/JU/Riftstone%20Portal.full.jpg -riftsweeper.jpg http://[server]/FUT/Riftsweeper.full.jpg -riftwing_cloudskate.jpg http://[server]/TSP/Riftwing%20Cloudskate.full.jpg -righteous_aura.jpg http://[server]/MM/Righteous%20Aura.full.jpg -righteous_avengers.jpg http://[server]/LG/Righteous%20Avengers.full.jpg -righteous_cause.jpg http://[server]/ON/Righteous%20Cause.full.jpg -righteous_charge.jpg http://[server]/ST/Righteous%20Charge.full.jpg -righteous_fury.jpg http://[server]/ST/Righteous%20Fury.full.jpg -righteous_indignation.jpg http://[server]/MM/Righteous%20Indignation.full.jpg -righteous_war.jpg http://[server]/VI/Righteous%20War.full.jpg -righteousness.jpg http://[server]/M10/Righteousness.full.jpg -rime_dryad.jpg http://[server]/IA/Rime%20Dryad.full.jpg -rime_transfusion.jpg http://[server]/CS/Rime%20Transfusion.full.jpg -rimebound_dead.jpg http://[server]/CS/Rimebound%20Dead.full.jpg -rimefeather_owl.jpg http://[server]/CS/Rimefeather%20Owl.full.jpg -rimehorn_aurochs.jpg http://[server]/CS/Rimehorn%20Aurochs.full.jpg -rimescale_dragon.jpg http://[server]/CS/Rimescale%20Dragon.full.jpg -rimewind_cryomancer.jpg http://[server]/CS/Rimewind%20Cryomancer.full.jpg -rimewind_taskmage.jpg http://[server]/CS/Rimewind%20Taskmage.full.jpg -ring_of_gix.jpg http://[server]/UL/Ring%20of%20Gix.full.jpg -ring_of_immortals.jpg http://[server]/LG/Ring%20of%20Immortals.full.jpg -ring_of_maruf.jpg http://[server]/AN/Ring%20of%20Ma'ruf.full.jpg -ring_of_renewal.jpg http://[server]/FE/Ring%20of%20Renewal.full.jpg -rings_of_brighthearth.jpg http://[server]/LRW/Rings%20of%20Brighthearth.full.jpg -ringskipper.jpg http://[server]/LRW/Ringskipper.full.jpg -riot_spikes.jpg http://[server]/DIS/Riot%20Spikes.full.jpg -rip_clan_crasher.jpg http://[server]/ALA/Rip-Clan%20Crasher.full.jpg -riptide.jpg http://[server]/DK/Riptide.full.jpg -riptide_biologist.jpg http://[server]/ON/Riptide%20Biologist.full.jpg -riptide_chronologist.jpg http://[server]/ON/Riptide%20Chronologist.full.jpg -riptide_crab.jpg http://[server]/IN/Riptide%20Crab.full.jpg -riptide_director.jpg http://[server]/LE/Riptide%20Director.full.jpg -riptide_entrancer.jpg http://[server]/ON/Riptide%20Entrancer.full.jpg -riptide_laboratory.jpg http://[server]/ON/Riptide%20Laboratory.full.jpg -riptide_mangler.jpg http://[server]/LE/Riptide%20Mangler.full.jpg -riptide_pilferer.jpg http://[server]/PLC/Riptide%20Pilferer.full.jpg -riptide_replicator.jpg http://[server]/ON/Riptide%20Replicator.full.jpg -riptide_shapeshifter.jpg http://[server]/ON/Riptide%20Shapeshifter.full.jpg -riptide_survivor.jpg http://[server]/SC/Riptide%20Survivor.full.jpg -rise_from_the_grave.jpg http://[server]/M10/Rise%20from%20the%20Grave.full.jpg -rise_of_the_hobgoblins.jpg http://[server]/EVE/Rise%20of%20the%20Hobgoblins.full.jpg -risefall.jpg http://[server]/DIS/RiseFall.full.jpg -rishadan_airship.jpg http://[server]/MM/Rishadan%20Airship.full.jpg -rishadan_brigand.jpg http://[server]/MM/Rishadan%20Brigand.full.jpg -rishadan_cutpurse.jpg http://[server]/MM/Rishadan%20Cutpurse.full.jpg -rishadan_footpad.jpg http://[server]/MM/Rishadan%20Footpad.full.jpg -rishadan_pawnshop.jpg http://[server]/MM/Rishadan%20Pawnshop.full.jpg -rishadan_port.jpg http://[server]/MM/Rishadan%20Port.full.jpg -rising_waters.jpg http://[server]/NE/Rising%20Waters.full.jpg -risky_move.jpg http://[server]/ON/Risky%20Move.full.jpg -rite_of_consumption.jpg http://[server]/SHM/Rite%20of%20Consumption.full.jpg -rite_of_flame.jpg http://[server]/CS/Rite%20of%20Flame.full.jpg -rite_of_passage.jpg http://[server]/FD/Rite%20of%20Passage.full.jpg -rite_of_replication.jpg http://[server]/ZEN/Rite%20of%20Replication.full.jpg -rites_of_flourishing.jpg http://[server]/FUT/Rites%20of%20Flourishing.full.jpg -rites_of_initiation.jpg http://[server]/OD/Rites%20of%20Initiation.full.jpg -rites_of_refusal.jpg http://[server]/OD/Rites%20of%20Refusal.full.jpg -rites_of_spring.jpg http://[server]/OD/Rites%20of%20Spring.full.jpg -rith_the_awakener.jpg http://[server]/IN/Rith,%20the%20Awakener.full.jpg -riths_attendant.jpg http://[server]/IN/Rith's%20Attendant.full.jpg -riths_charm.jpg http://[server]/PS/Rith's%20Charm.full.jpg -riths_grove.jpg http://[server]/PS/Rith's%20Grove.full.jpg -ritual_of_restoration.jpg http://[server]/DS/Ritual%20of%20Restoration.full.jpg -ritual_of_steel.jpg http://[server]/MI/Ritual%20of%20Steel.full.jpg -ritual_of_subdual.jpg http://[server]/IA/Ritual%20of%20Subdual.full.jpg -ritual_of_the_machine.jpg http://[server]/AL/Ritual%20of%20the%20Machine.full.jpg -rivalry.jpg http://[server]/UL/Rivalry.full.jpg -rivals_duel.jpg http://[server]/MOR/Rivals'%20Duel.full.jpg -riven_turnbull.jpg http://[server]/LG/Riven%20Turnbull.full.jpg -river_bear.jpg http://[server]/9E/River%20Bear.full.jpg -river_boa.jpg http://[server]/6E/River%20Boa.full.jpg -river_delta.jpg http://[server]/IA/River%20Delta.full.jpg -river_kaijin.jpg http://[server]/CHK/River%20Kaijin.full.jpg -river_kelpie.jpg http://[server]/SHM/River%20Kelpie.full.jpg -river_merfolk.jpg http://[server]/FE/River%20Merfolk.full.jpg -river_of_tears.jpg http://[server]/FUT/River%20of%20Tears.full.jpg -riverfall_mimic.jpg http://[server]/EVE/Riverfall%20Mimic.full.jpg -rivers_grasp.jpg http://[server]/SHM/River's%20Grasp.full.jpg -rix_maadi_dungeon_palace.jpg http://[server]/DIS/Rix%20Maadi,%20Dungeon%20Palace.full.jpg -roar_of_jukai.jpg http://[server]/BOK/Roar%20of%20Jukai.full.jpg -roar_of_reclamation.jpg http://[server]/FD/Roar%20of%20Reclamation.full.jpg -roar_of_the_crowd.jpg http://[server]/MOR/Roar%20of%20the%20Crowd.full.jpg -roar_of_the_kha.jpg http://[server]/MR/Roar%20of%20the%20Kha.full.jpg -roar_of_the_wurm.jpg http://[server]/OD/Roar%20of%20the%20Wurm.full.jpg -roaring_slagwurm.jpg http://[server]/DS/Roaring%20Slagwurm.full.jpg -robber_fly.jpg http://[server]/MM/Robber%20Fly.full.jpg -robe_of_mirrors.jpg http://[server]/10E/Robe%20of%20Mirrors.full.jpg -roc_hatchling.jpg http://[server]/WL/Roc%20Hatchling.full.jpg -roc_of_kher_ridges.jpg http://[server]/U/Roc%20of%20Kher%20Ridges.full.jpg -rock_badger.jpg http://[server]/10E/Rock%20Badger.full.jpg -rock_basilisk.jpg http://[server]/MI/Rock%20Basilisk.full.jpg -rock_hydra.jpg http://[server]/U/Rock%20Hydra.full.jpg -rock_jockey.jpg http://[server]/SC/Rock%20Jockey.full.jpg -rock_lobster.jpg http://[server]/UG/Rock%20Lobster.full.jpg -rock_slide.jpg http://[server]/VI/Rock%20Slide.full.jpg -rockcaster_platoon.jpg http://[server]/ALA/Rockcaster%20Platoon.full.jpg -rocket_launcher.jpg http://[server]/AQ/Rocket%20Launcher.full.jpg -rocket_powered_turbo_slug.jpg http://[server]/UNH/Rocket-Powered%20Turbo%20Slug.full.jpg -rockshard_elemental.jpg http://[server]/LE/Rockshard%20Elemental.full.jpg -rockslide_ambush.jpg http://[server]/P3/Rockslide%20Ambush.full.jpg -rockslide_elemental.jpg http://[server]/ALA/Rockslide%20Elemental.full.jpg -rocky_tar_pit.jpg http://[server]/MI/Rocky%20Tar%20Pit.full.jpg -rod_of_ruin.jpg http://[server]/M10/Rod%20of%20Ruin.full.jpg -rod_of_spanking.jpg http://[server]/UNH/Rod%20of%20Spanking.full.jpg -rofellos.jpg http://[server]/VG/Rofellos.full.jpg -rofellos_llanowar_emissary.jpg http://[server]/UD/Rofellos,%20Llanowar%20Emissary.full.jpg -rofelloss_gift.jpg http://[server]/UD/Rofellos's%20Gift.full.jpg -rogue_elephant.jpg http://[server]/WL/Rogue%20Elephant.full.jpg -rogue_kavu.jpg http://[server]/IN/Rogue%20Kavu.full.jpg -rogue_skycaptain.jpg http://[server]/AL/Rogue%20Skycaptain.full.jpg -rohgahh_of_kher_keep.jpg http://[server]/LG/Rohgahh%20of%20Kher%20Keep.full.jpg -roil_elemental.jpg http://[server]/ZEN/Roil%20Elemental.full.jpg -roiling_horror.jpg http://[server]/PLC/Roiling%20Horror.full.jpg -rolling_earthquake.jpg http://[server]/P3/Rolling%20Earthquake.full.jpg -rolling_spoil.jpg http://[server]/RAV/Rolling%20Spoil.full.jpg -rolling_stones.jpg http://[server]/8E/Rolling%20Stones.full.jpg -rolling_thunder.jpg http://[server]/TE/Rolling%20Thunder.full.jpg -ronin_cavekeeper.jpg http://[server]/SOK/Ronin%20Cavekeeper.full.jpg -ronin_cliffrider.jpg http://[server]/BOK/Ronin%20Cliffrider.full.jpg -ronin_houndmaster.jpg http://[server]/CHK/Ronin%20Houndmaster.full.jpg -ronin_warclub.jpg http://[server]/BOK/Ronin%20Warclub.full.jpg -ronom_hulk.jpg http://[server]/CS/Ronom%20Hulk.full.jpg -ronom_serpent.jpg http://[server]/CS/Ronom%20Serpent.full.jpg -ronom_unicorn.jpg http://[server]/CS/Ronom%20Unicorn.full.jpg -roofstalker_wight.jpg http://[server]/RAV/Roofstalker%20Wight.full.jpg -root_cage.jpg http://[server]/PY/Root%20Cage.full.jpg -root_elemental.jpg http://[server]/SC/Root%20Elemental.full.jpg -root_greevil.jpg http://[server]/PS/Root%20Greevil.full.jpg -root_kin_ally.jpg http://[server]/RAV/Root-Kin%20Ally.full.jpg -root_maze.jpg http://[server]/10E/Root%20Maze.full.jpg -root_sliver.jpg http://[server]/LE/Root%20Sliver.full.jpg -root_spider.jpg http://[server]/HL/Root%20Spider.full.jpg -rootbound_crag.jpg http://[server]/M10/Rootbound%20Crag.full.jpg -rootbreaker_wurm.jpg http://[server]/9E/Rootbreaker%20Wurm.full.jpg -rootgrapple.jpg http://[server]/LRW/Rootgrapple.full.jpg -rooting_kavu.jpg http://[server]/IN/Rooting%20Kavu.full.jpg -rootrunner.jpg http://[server]/CHK/Rootrunner.full.jpg -roots.jpg http://[server]/HL/Roots.full.jpg -roots_of_life.jpg http://[server]/MI/Roots%20of%20Life.full.jpg -rootwalla.jpg http://[server]/10E/Rootwalla.full.jpg -rootwater_alligator.jpg http://[server]/EX/Rootwater%20Alligator.full.jpg -rootwater_commando.jpg http://[server]/10E/Rootwater%20Commando.full.jpg -rootwater_depths.jpg http://[server]/TE/Rootwater%20Depths.full.jpg -rootwater_diver.jpg http://[server]/TE/Rootwater%20Diver.full.jpg -rootwater_hunter.jpg http://[server]/TE/Rootwater%20Hunter.full.jpg -rootwater_matriarch.jpg http://[server]/10E/Rootwater%20Matriarch.full.jpg -rootwater_mystic.jpg http://[server]/EX/Rootwater%20Mystic.full.jpg -rootwater_shaman.jpg http://[server]/TE/Rootwater%20Shaman.full.jpg -rootwater_thief.jpg http://[server]/NE/Rootwater%20Thief.full.jpg -rorix_bladewing.jpg http://[server]/HOP/Rorix%20Bladewing.full.jpg -rosheen_meanderer.jpg http://[server]/SHM/Rosheen%20Meanderer.full.jpg -roterothopter.jpg http://[server]/HL/Roterothopter.full.jpg -rotlung_reanimator.jpg http://[server]/ON/Rotlung%20Reanimator.full.jpg -rotting_giant.jpg http://[server]/OD/Rotting%20Giant.full.jpg -rotting_rats.jpg http://[server]/CFX/Rotting%20Rats.full.jpg -roughshod_mentor.jpg http://[server]/SHM/Roughshod%20Mentor.full.jpg -roughtumble.jpg http://[server]/PLC/RoughTumble.full.jpg -rouse.jpg http://[server]/MM/Rouse.full.jpg -rout.jpg http://[server]/IN/Rout.full.jpg -rowan_treefolk.jpg http://[server]/PT/Rowan%20Treefolk.full.jpg -rowen.jpg http://[server]/7E/Rowen.full.jpg -royal_assassin.jpg http://[server]/M10/Royal%20Assassin.full.jpg -royal_decree.jpg http://[server]/AL/Royal%20Decree.full.jpg -royal_falcon.jpg http://[server]/ST/Royal%20Falcon.full.jpg -royal_herbalist.jpg http://[server]/AL/Royal%20Herbalist1.full.jpg -royal_trooper.jpg http://[server]/ST/Royal%20Trooper.full.jpg -rubinia_soulsinger.jpg http://[server]/LG/Rubinia%20Soulsinger.full.jpg -ruby_leech.jpg http://[server]/IN/Ruby%20Leech.full.jpg -ruby_medallion.jpg http://[server]/TE/Ruby%20Medallion.full.jpg -rude_awakening.jpg http://[server]/FD/Rude%20Awakening.full.jpg -rugged_prairie.jpg http://[server]/EVE/Rugged%20Prairie.full.jpg -ruham_djinn.jpg http://[server]/IN/Ruham%20Djinn.full.jpg -ruination.jpg http://[server]/SH/Ruination.full.jpg -ruinous_minotaur.jpg http://[server]/ZEN/Ruinous%20Minotaur.full.jpg -ruins_of_trokair.jpg http://[server]/6E/Ruins%20of%20Trokair.full.jpg -rukh_egg.jpg http://[server]/9E/Rukh%20Egg.full.jpg -rule_of_law.jpg http://[server]/10E/Rule%20of%20Law.full.jpg -rumbling_crescendo.jpg http://[server]/US/Rumbling%20Crescendo.full.jpg -rumbling_slum.jpg http://[server]/GP/Rumbling%20Slum.full.jpg -rummaging_wizard.jpg http://[server]/ON/Rummaging%20Wizard.full.jpg -run_wild.jpg http://[server]/ON/Run%20Wild.full.jpg -rune_cervin_rider.jpg http://[server]/SHM/Rune-Cervin%20Rider.full.jpg -rune_of_protection_artifacts.jpg http://[server]/US/Rune%20of%20Protection%20Artifacts.full.jpg -rune_of_protection_black.jpg http://[server]/US/Rune%20of%20Protection%20Black.full.jpg -rune_of_protection_blue.jpg http://[server]/US/Rune%20of%20Protection%20Blue.full.jpg -rune_of_protection_green.jpg http://[server]/US/Rune%20of%20Protection%20Green.full.jpg -rune_of_protection_lands.jpg http://[server]/US/Rune%20of%20Protection%20Lands.full.jpg -rune_of_protection_red.jpg http://[server]/US/Rune%20of%20Protection%20Red.full.jpg -rune_of_protection_white.jpg http://[server]/US/Rune%20of%20Protection%20White.full.jpg -rune_snag.jpg http://[server]/CS/Rune%20Snag.full.jpg -rune_tail_kitsune_ascendant.jpg http://[server]/SOK/Rune-Tail,%20Kitsune%20Ascendant.full.jpg -runeboggle.jpg http://[server]/GP/Runeboggle.full.jpg -runeclaw_bear.jpg http://[server]/M10/Runeclaw%20Bear.full.jpg -runed_arch.jpg http://[server]/IA/Runed%20Arch.full.jpg -runed_halo.jpg http://[server]/SHM/Runed%20Halo.full.jpg -runed_stalactite.jpg http://[server]/LRW/Runed%20Stalactite.full.jpg -runeflare_trap.jpg http://[server]/ZEN/Runeflare%20Trap.full.jpg -runes_of_the_deus.jpg http://[server]/SHM/Runes%20of%20the%20Deus.full.jpg -runesword.jpg http://[server]/CH/Runesword.full.jpg -rupture.jpg http://[server]/NE/Rupture.full.jpg -rupture_spire.jpg http://[server]/CFX/Rupture%20Spire.full.jpg -rush_of_knowledge.jpg http://[server]/SC/Rush%20of%20Knowledge.full.jpg -rushing_river.jpg http://[server]/PS/Rushing%20River.full.jpg -rushing_tide_zubera.jpg http://[server]/SOK/Rushing-Tide%20Zubera.full.jpg -rushwood_dryad.jpg http://[server]/10E/Rushwood%20Dryad.full.jpg -rushwood_elemental.jpg http://[server]/MM/Rushwood%20Elemental.full.jpg -rushwood_grove.jpg http://[server]/MM/Rushwood%20Grove.full.jpg -rushwood_herbalist.jpg http://[server]/MM/Rushwood%20Herbalist.full.jpg -rushwood_legate.jpg http://[server]/MM/Rushwood%20Legate.full.jpg -rust.jpg http://[server]/LG/Rust.full.jpg -rust_elemental.jpg http://[server]/MR/Rust%20Elemental.full.jpg -rustic_clachan.jpg http://[server]/MOR/Rustic%20Clachan.full.jpg -rusting_golem.jpg http://[server]/NE/Rusting%20Golem.full.jpg -rustmouth_ogre.jpg http://[server]/MR/Rustmouth%20Ogre.full.jpg -rustrazor_butcher.jpg http://[server]/SHM/Rustrazor%20Butcher.full.jpg -rustspore_ram.jpg http://[server]/MR/Rustspore%20Ram.full.jpg -rysorian_badger.jpg http://[server]/HL/Rysorian%20Badger.full.jpg -ryusei_the_falling_star.jpg http://[server]/CHK/Ryusei,%20the%20Falling%20Star.full.jpg \ No newline at end of file diff --git a/res/pics_link/card-pictures_s.txt b/res/pics_link/card-pictures_s.txt deleted file mode 100644 index 8848f2dd9b6..00000000000 --- a/res/pics_link/card-pictures_s.txt +++ /dev/null @@ -1,1512 +0,0 @@ -s.n.o.t..jpg http://[server]/UNH/S.N.O.T..full.jpg -saber_ants.jpg http://[server]/MM/Saber%20Ants.full.jpg -sabertooth_alley_cat.jpg http://[server]/RAV/Sabertooth%20Alley%20Cat.full.jpg -sabertooth_cobra.jpg http://[server]/MI/Sabertooth%20Cobra.full.jpg -sabertooth_nishoba.jpg http://[server]/IN/Sabertooth%20Nishoba.full.jpg -sabertooth_wyvern.jpg http://[server]/EX/Sabertooth%20Wyvern.full.jpg -sabretooth_tiger.jpg http://[server]/8E/Sabretooth%20Tiger.full.jpg -sacellum_archers.jpg http://[server]/CFX/Sacellum%20Archers.full.jpg -sacellum_godspeaker.jpg http://[server]/ALA/Sacellum%20Godspeaker.full.jpg -sachi_daughter_of_seshiro.jpg http://[server]/CHK/Sachi,%20Daughter%20of%20Seshiro.full.jpg -sacred_boon.jpg http://[server]/5E/Sacred%20Boon.full.jpg -sacred_foundry.jpg http://[server]/RAV/Sacred%20Foundry.full.jpg -sacred_ground.jpg http://[server]/9E/Sacred%20Ground.full.jpg -sacred_guide.jpg http://[server]/TE/Sacred%20Guide.full.jpg -sacred_knight.jpg http://[server]/PT/Sacred%20Knight.full.jpg -sacred_mesa.jpg http://[server]/MI/Sacred%20Mesa.full.jpg -sacred_nectar.jpg http://[server]/9E/Sacred%20Nectar.full.jpg -sacred_prey.jpg http://[server]/MM/Sacred%20Prey.full.jpg -sacred_rites.jpg http://[server]/OD/Sacred%20Rites.full.jpg -sacrifice.jpg http://[server]/U/Sacrifice.full.jpg -sadistic_augermage.jpg http://[server]/RAV/Sadistic%20Augermage.full.jpg -sadistic_glee.jpg http://[server]/TE/Sadistic%20Glee.full.jpg -sadistic_hypnotist.jpg http://[server]/OD/Sadistic%20Hypnotist.full.jpg -sadistic_sacrament.jpg http://[server]/ZEN/Sadistic%20Sacrament.full.jpg -safe_haven.jpg http://[server]/DK/Safe%20Haven.full.jpg -safe_passage.jpg http://[server]/M10/Safe%20Passage.full.jpg -safeguard.jpg http://[server]/TE/Safeguard.full.jpg -safehold_duo.jpg http://[server]/SHM/Safehold%20Duo.full.jpg -safehold_elite.jpg http://[server]/SHM/Safehold%20Elite.full.jpg -safehold_sentry.jpg http://[server]/SHM/Safehold%20Sentry.full.jpg -safewright_quest.jpg http://[server]/SHM/Safewright%20Quest.full.jpg -saffi_eriksdotter.jpg http://[server]/TSP/Saffi%20Eriksdotter.full.jpg -sage_aven.jpg http://[server]/ON/Sage%20Aven.full.jpg -sage_of_epityr.jpg http://[server]/TSP/Sage%20of%20Epityr.full.jpg -sage_of_fables.jpg http://[server]/MOR/Sage%20of%20Fables.full.jpg -sage_of_lat_nam.jpg http://[server]/8E/Sage%20of%20Lat-Nam.full.jpg -sage_owl.jpg http://[server]/M10/Sage%20Owl.full.jpg -sages_dousing.jpg http://[server]/MOR/Sage's%20Dousing.full.jpg -sages_knowledge.jpg http://[server]/P3/Sage's%20Knowledge.full.jpg -sages_of_the_anima.jpg http://[server]/ARB/Sages%20of%20the%20Anima.full.jpg -sailmonger.jpg http://[server]/MM/Sailmonger.full.jpg -sakashima_the_impostor.jpg http://[server]/SOK/Sakashima%20the%20Impostor.full.jpg -sakiko_mother_of_summer.jpg http://[server]/BOK/Sakiko,%20Mother%20of%20Summer.full.jpg -sakura_tribe_elder.jpg http://[server]/CHK/Sakura-Tribe%20Elder.full.jpg -sakura_tribe_scout.jpg http://[server]/SOK/Sakura-Tribe%20Scout.full.jpg -sakura_tribe_springcaller.jpg http://[server]/BOK/Sakura-Tribe%20Springcaller.full.jpg -salt_flats.jpg http://[server]/TE/Salt%20Flats.full.jpg -salt_marsh.jpg http://[server]/8E/Salt%20Marsh.full.jpg -saltblast.jpg http://[server]/PLC/Saltblast.full.jpg -saltcrusted_steppe.jpg http://[server]/TSP/Saltcrusted%20Steppe.full.jpg -saltfield_recluse.jpg http://[server]/PLC/Saltfield%20Recluse.full.jpg -saltskitter.jpg http://[server]/FUT/Saltskitter.full.jpg -salvage.jpg http://[server]/P2/Salvage.full.jpg -salvage_slasher.jpg http://[server]/CFX/Salvage%20Slasher.full.jpg -salvage_titan.jpg http://[server]/ALA/Salvage%20Titan.full.jpg -salvaging_station.jpg http://[server]/FD/Salvaging%20Station.full.jpg -samite_alchemist.jpg http://[server]/HL/Samite%20Alchemist1.full.jpg -samite_archer.jpg http://[server]/IN/Samite%20Archer.full.jpg -samite_blessing.jpg http://[server]/SH/Samite%20Blessing.full.jpg -samite_censer_bearer.jpg http://[server]/FUT/Samite%20Censer-Bearer.full.jpg -samite_elder.jpg http://[server]/PS/Samite%20Elder.full.jpg -samite_healer.jpg http://[server]/10E/Samite%20Healer.full.jpg -samite_ministration.jpg http://[server]/IN/Samite%20Ministration.full.jpg -samite_pilgrim.jpg http://[server]/PS/Samite%20Pilgrim.full.jpg -samite_sanctuary.jpg http://[server]/PY/Samite%20Sanctuary.full.jpg -samurai_enforcers.jpg http://[server]/CHK/Samurai%20Enforcers.full.jpg -samurai_of_the_pale_curtain.jpg http://[server]/CHK/Samurai%20of%20the%20Pale%20Curtain.full.jpg -sanctimony.jpg http://[server]/8E/Sanctimony.full.jpg -sanctum_custodian.jpg http://[server]/US/Sanctum%20Custodian.full.jpg -sanctum_gargoyle.jpg http://[server]/ALA/Sanctum%20Gargoyle.full.jpg -sanctum_guardian.jpg http://[server]/9E/Sanctum%20Guardian.full.jpg -sanctum_plowbeast.jpg http://[server]/ARB/Sanctum%20Plowbeast.full.jpg -sand_golem.jpg http://[server]/MI/Sand%20Golem.full.jpg -sand_silos.jpg http://[server]/5E/Sand%20Silos.full.jpg -sand_squid.jpg http://[server]/MM/Sand%20Squid.full.jpg -sandals_of_abdallah.jpg http://[server]/AN/Sandals%20of%20Abdallah.full.jpg -sandbar_crocodile.jpg http://[server]/MI/Sandbar%20Crocodile.full.jpg -sandbar_merfolk.jpg http://[server]/US/Sandbar%20Merfolk.full.jpg -sandbar_serpent.jpg http://[server]/US/Sandbar%20Serpent.full.jpg -sands_of_time.jpg http://[server]/VI/Sands%20of%20Time.full.jpg -sandskin.jpg http://[server]/ON/Sandskin.full.jpg -sandsower.jpg http://[server]/RAV/Sandsower.full.jpg -sandstone_deadfall.jpg http://[server]/OD/Sandstone%20Deadfall.full.jpg -sandstone_needle.jpg http://[server]/MM/Sandstone%20Needle.full.jpg -sandstone_warrior.jpg http://[server]/9E/Sandstone%20Warrior.full.jpg -sandstorm.jpg http://[server]/MI/Sandstorm.full.jpg -sandstorm_eidolon.jpg http://[server]/DIS/Sandstorm%20Eidolon.full.jpg -sangrite_backlash.jpg http://[server]/ARB/Sangrite%20Backlash.full.jpg -sangrite_surge.jpg http://[server]/ALA/Sangrite%20Surge.full.jpg -sangrophage.jpg http://[server]/TSP/Sangrophage.full.jpg -sanguine_bond.jpg http://[server]/M10/Sanguine%20Bond.full.jpg -sanguine_guard.jpg http://[server]/US/Sanguine%20Guard.full.jpg -sanguine_praetor.jpg http://[server]/GP/Sanguine%20Praetor.full.jpg -sanity_gnawers.jpg http://[server]/ARB/Sanity%20Gnawers.full.jpg -sanity_grinding.jpg http://[server]/EVE/Sanity%20Grinding.full.jpg -sapling_of_colfenor.jpg http://[server]/EVE/Sapling%20of%20Colfenor.full.jpg -sapphire_charm.jpg http://[server]/MI/Sapphire%20Charm.full.jpg -sapphire_leech.jpg http://[server]/IN/Sapphire%20Leech.full.jpg -sapphire_medallion.jpg http://[server]/TE/Sapphire%20Medallion.full.jpg -saprazzan_bailiff.jpg http://[server]/MM/Saprazzan%20Bailiff.full.jpg -saprazzan_breaker.jpg http://[server]/MM/Saprazzan%20Breaker.full.jpg -saprazzan_cove.jpg http://[server]/MM/Saprazzan%20Cove.full.jpg -saprazzan_heir.jpg http://[server]/MM/Saprazzan%20Heir.full.jpg -saprazzan_legate.jpg http://[server]/MM/Saprazzan%20Legate.full.jpg -saprazzan_outrigger.jpg http://[server]/MM/Saprazzan%20Outrigger.full.jpg -saprazzan_raider.jpg http://[server]/MM/Saprazzan%20Raider.full.jpg -saprazzan_skerry.jpg http://[server]/MM/Saprazzan%20Skerry.full.jpg -saproling_burst.jpg http://[server]/NE/Saproling%20Burst.full.jpg -saproling_cluster.jpg http://[server]/NE/Saproling%20Cluster.full.jpg -saproling_infestation.jpg http://[server]/IN/Saproling%20Infestation.full.jpg -saproling_symbiosis.jpg http://[server]/IN/Saproling%20Symbiosis.full.jpg -sapseep_forest.jpg http://[server]/SHM/Sapseep%20Forest.full.jpg -sarcatog.jpg http://[server]/OD/Sarcatog.full.jpg -sarcomancy.jpg http://[server]/TE/Sarcomancy.full.jpg -sarcomite_myr.jpg http://[server]/FUT/Sarcomite%20Myr.full.jpg -sarkhan_vol.jpg http://[server]/ALA/Sarkhan%20Vol.full.jpg -sarpadian_empires_vol_vii.jpg http://[server]/TSP/Sarpadian%20Empires,%20Vol.%20VII.full.jpg -sasaya_orochi_ascendant.jpg http://[server]/SOK/Sasaya,%20Orochi%20Ascendant.full.jpg -saute.jpg http://[server]/UNH/Saute.full.jpg -savaen_elves.jpg http://[server]/DK/Savaen%20Elves.full.jpg -savage_beating.jpg http://[server]/DS/Savage%20Beating.full.jpg -savage_conception.jpg http://[server]/EVE/Savage%20Conception.full.jpg -savage_firecat.jpg http://[server]/OD/Savage%20Firecat.full.jpg -savage_gorilla.jpg http://[server]/AP/Savage%20Gorilla.full.jpg -savage_hunger.jpg http://[server]/ALA/Savage%20Hunger.full.jpg -savage_lands.jpg http://[server]/ALA/Savage%20Lands.full.jpg -savage_offensive.jpg http://[server]/IN/Savage%20Offensive.full.jpg -savage_silhouette.jpg http://[server]/ZEN/Savage%20Silhouette.full.jpg -savage_thallid.jpg http://[server]/TSP/Savage%20Thallid.full.jpg -savage_twister.jpg http://[server]/MI/Savage%20Twister.full.jpg -savannah.jpg http://[server]/U/Savannah.full.jpg -savannah_lions.jpg http://[server]/9E/Savannah%20Lions.full.jpg -save_life.jpg http://[server]/UNH/Save%20Life.full.jpg -savor_the_moment.jpg http://[server]/SHM/Savor%20the%20Moment.full.jpg -savra_queen_of_the_golgari.jpg http://[server]/RAV/Savra,%20Queen%20of%20the%20Golgari.full.jpg -sawback_manticore.jpg http://[server]/MI/Sawback%20Manticore.full.jpg -sawtooth_loon.jpg http://[server]/PS/Sawtooth%20Loon.full.jpg -sawtooth_ogre.jpg http://[server]/WL/Sawtooth%20Ogre.full.jpg -sawtooth_thresher.jpg http://[server]/FD/Sawtooth%20Thresher.full.jpg -scab_clan_mauler.jpg http://[server]/GP/Scab-Clan%20Mauler.full.jpg -scabland.jpg http://[server]/TE/Scabland.full.jpg -scald.jpg http://[server]/US/Scald.full.jpg -scalding_salamander.jpg http://[server]/EX/Scalding%20Salamander.full.jpg -scalding_tarn.jpg http://[server]/ZEN/Scalding%20Tarn.full.jpg -scalding_tongs.jpg http://[server]/TE/Scalding%20Tongs.full.jpg -scale_of_chiss_goria.jpg http://[server]/MR/Scale%20of%20Chiss-Goria.full.jpg -scalebanes_elite.jpg http://[server]/VI/Scalebane's%20Elite.full.jpg -scaled_hulk.jpg http://[server]/BOK/Scaled%20Hulk.full.jpg -scaled_wurm.jpg http://[server]/9E/Scaled%20Wurm.full.jpg -scalpelexis.jpg http://[server]/10E/Scalpelexis.full.jpg -scandalmonger.jpg http://[server]/MM/Scandalmonger.full.jpg -scapegoat.jpg http://[server]/SH/Scapegoat.full.jpg -scapeshift.jpg http://[server]/MOR/Scapeshift.full.jpg -scar.jpg http://[server]/SHM/Scar.full.jpg -scarab_of_the_unseen.jpg http://[server]/AL/Scarab%20of%20the%20Unseen.full.jpg -scarblade_elite.jpg http://[server]/MOR/Scarblade%20Elite.full.jpg -scare_tactics.jpg http://[server]/EX/Scare%20Tactics.full.jpg -scarecrone.jpg http://[server]/EVE/Scarecrone.full.jpg -scarecrow.jpg http://[server]/DK/Scarecrow.full.jpg -scarland_thrinax.jpg http://[server]/CFX/Scarland%20Thrinax.full.jpg -scarred_puma.jpg http://[server]/IN/Scarred%20Puma.full.jpg -scarred_vinebreeder.jpg http://[server]/LRW/Scarred%20Vinebreeder.full.jpg -scars_of_the_veteran.jpg http://[server]/AL/Scars%20of%20the%20Veteran.full.jpg -scarscale_ritual.jpg http://[server]/SHM/Scarscale%20Ritual.full.jpg -scarwood_bandits.jpg http://[server]/DK/Scarwood%20Bandits.full.jpg -scarwood_goblins.jpg http://[server]/DK/Scarwood%20Goblins.full.jpg -scarwood_hag.jpg http://[server]/DK/Scarwood%20Hag.full.jpg -scarwood_treefolk.jpg http://[server]/TSP/Scarwood%20Treefolk.full.jpg -scathe_zombies.jpg http://[server]/10E/Scathe%20Zombies.full.jpg -scatter_the_seeds.jpg http://[server]/RAV/Scatter%20the%20Seeds.full.jpg -scattering_stroke.jpg http://[server]/LRW/Scattering%20Stroke.full.jpg -scattershot.jpg http://[server]/SC/Scattershot.full.jpg -scattershot_archer.jpg http://[server]/CFX/Scattershot%20Archer.full.jpg -scavenged_weaponry.jpg http://[server]/IN/Scavenged%20Weaponry.full.jpg -scavenger_drake.jpg http://[server]/ALA/Scavenger%20Drake.full.jpg -scavenger_folk.jpg http://[server]/7E/Scavenger%20Folk.full.jpg -scavenging_ghoul.jpg http://[server]/4E/Scavenging%20Ghoul.full.jpg -scavenging_scarab.jpg http://[server]/DS/Scavenging%20Scarab.full.jpg -scent_of_brine.jpg http://[server]/UD/Scent%20of%20Brine.full.jpg -scent_of_cinder.jpg http://[server]/UD/Scent%20of%20Cinder.full.jpg -scent_of_ivy.jpg http://[server]/UD/Scent%20of%20Ivy.full.jpg -scent_of_jasmine.jpg http://[server]/UD/Scent%20of%20Jasmine.full.jpg -scent_of_nightshade.jpg http://[server]/UD/Scent%20of%20Nightshade.full.jpg -scepter_of_dominance.jpg http://[server]/CFX/Scepter%20of%20Dominance.full.jpg -scepter_of_fugue.jpg http://[server]/CFX/Scepter%20of%20Fugue.full.jpg -scepter_of_insight.jpg http://[server]/CFX/Scepter%20of%20Insight.full.jpg -schismotivate.jpg http://[server]/GP/Schismotivate.full.jpg -school_of_piranha.jpg http://[server]/EX/School%20of%20Piranha.full.jpg -school_of_the_unseen.jpg http://[server]/AL/School%20of%20the%20Unseen.full.jpg -scion_of_darkness.jpg http://[server]/LE/Scion%20of%20Darkness.full.jpg -scion_of_oona.jpg http://[server]/LRW/Scion%20of%20Oona.full.jpg -scion_of_the_ur_dragon.jpg http://[server]/TSP/Scion%20of%20the%20Ur-Dragon.full.jpg -scion_of_the_wild.jpg http://[server]/10E/Scion%20of%20the%20Wild.full.jpg -scissors_lizard.jpg http://[server]/UG/Scissors%20Lizard.full.jpg -scorched_earth.jpg http://[server]/TE/Scorched%20Earth.full.jpg -scorched_ruins.jpg http://[server]/WL/Scorched%20Ruins.full.jpg -scorched_rusalka.jpg http://[server]/GP/Scorched%20Rusalka.full.jpg -scorching_lava.jpg http://[server]/IN/Scorching%20Lava.full.jpg -scorching_missile.jpg http://[server]/OD/Scorching%20Missile.full.jpg -scorching_spear.jpg http://[server]/PT/Scorching%20Spear.full.jpg -scorching_winds.jpg http://[server]/PT/Scorching%20Winds.full.jpg -scoria_cat.jpg http://[server]/PY/Scoria%20Cat.full.jpg -scoria_wurm.jpg http://[server]/10E/Scoria%20Wurm.full.jpg -scornful_aether_lich.jpg http://[server]/CFX/Scornful%20AEther-Lich.full.jpg -scornful_egotist.jpg http://[server]/SC/Scornful%20Egotist.full.jpg -scour.jpg http://[server]/UD/Scour.full.jpg -scourge_devil.jpg http://[server]/ALA/Scourge%20Devil.full.jpg -scourge_of_kher_ridges.jpg http://[server]/FUT/Scourge%20of%20Kher%20Ridges.full.jpg -scourge_of_numai.jpg http://[server]/BOK/Scourge%20of%20Numai.full.jpg -scourge_of_the_nobilis.jpg http://[server]/EVE/Scourge%20of%20the%20Nobilis.full.jpg -scourglass.jpg http://[server]/ALA/Scourglass.full.jpg -scouting_trek.jpg http://[server]/IN/Scouting%20Trek.full.jpg -scouts_warning.jpg http://[server]/FUT/Scout's%20Warning.full.jpg -scrabbling_claws.jpg http://[server]/MR/Scrabbling%20Claws.full.jpg -scragnoth.jpg http://[server]/TE/Scragnoth.full.jpg -scrap.jpg http://[server]/US/Scrap.full.jpg -scrapbasket.jpg http://[server]/SHM/Scrapbasket.full.jpg -scrapheap.jpg http://[server]/UL/Scrapheap.full.jpg -screaming_fury.jpg http://[server]/FD/Screaming%20Fury.full.jpg -screaming_seahawk.jpg http://[server]/ON/Screaming%20Seahawk.full.jpg -screams_from_within.jpg http://[server]/DS/Screams%20from%20Within.full.jpg -screams_of_the_damned.jpg http://[server]/OD/Screams%20of%20the%20Damned.full.jpg -screeching_buzzard.jpg http://[server]/ON/Screeching%20Buzzard.full.jpg -screeching_drake.jpg http://[server]/P2/Screeching%20Drake.full.jpg -screeching_griffin.jpg http://[server]/RAV/Screeching%20Griffin.full.jpg -screeching_harpy.jpg http://[server]/TE/Screeching%20Harpy.full.jpg -screeching_sliver.jpg http://[server]/TSP/Screeching%20Sliver.full.jpg -scrivener.jpg http://[server]/OD/Scrivener.full.jpg -scroll_of_origins.jpg http://[server]/SOK/Scroll%20of%20Origins.full.jpg -scroll_rack.jpg http://[server]/TE/Scroll%20Rack.full.jpg -scrounge.jpg http://[server]/DS/Scrounge.full.jpg -scrubland.jpg http://[server]/U/Scrubland.full.jpg -scryb_ranger.jpg http://[server]/TSP/Scryb%20Ranger.full.jpg -scryb_sprites.jpg http://[server]/5E/Scryb%20Sprites.full.jpg -scrying_glass.jpg http://[server]/UD/Scrying%20Glass.full.jpg -scrying_sheets.jpg http://[server]/CS/Scrying%20Sheets.full.jpg -sculpting_steel.jpg http://[server]/10E/Sculpting%20Steel.full.jpg -scute_mob.jpg http://[server]/ZEN/Scute%20Mob.full.jpg -scuttlemutt.jpg http://[server]/SHM/Scuttlemutt.full.jpg -scuttling_death.jpg http://[server]/CHK/Scuttling%20Death.full.jpg -scuzzback_marauders.jpg http://[server]/SHM/Scuzzback%20Marauders.full.jpg -scuzzback_scrapper.jpg http://[server]/SHM/Scuzzback%20Scrapper.full.jpg -scythe_of_the_wretched.jpg http://[server]/MR/Scythe%20of%20the%20Wretched.full.jpg -scythe_tiger.jpg http://[server]/ZEN/Scythe%20Tiger.full.jpg -sea_drake.jpg http://[server]/P2/Sea%20Drake.full.jpg -sea_eagle.jpg http://[server]/8E/Sea%20Eagle.full.jpg -sea_gate_loremaster.jpg http://[server]/ZEN/Sea%20Gate%20Loremaster.full.jpg -sea_kings_blessing.jpg http://[server]/LG/Sea%20Kings'%20Blessing.full.jpg -sea_monster.jpg http://[server]/10E/Sea%20Monster.full.jpg -sea_scryer.jpg http://[server]/MI/Sea%20Scryer.full.jpg -sea_serpent.jpg http://[server]/5E/Sea%20Serpent.full.jpg -sea_snidd.jpg http://[server]/PS/Sea%20Snidd.full.jpg -sea_spirit.jpg http://[server]/5E/Sea%20Spirit.full.jpg -sea_sprite.jpg http://[server]/5E/Sea%20Sprite.full.jpg -sea_troll.jpg http://[server]/HL/Sea%20Troll.full.jpg -seafarers_quay.jpg http://[server]/LG/Seafarer's%20Quay.full.jpg -seafloor_debris.jpg http://[server]/OD/Seafloor%20Debris.full.jpg -seahunter.jpg http://[server]/NE/Seahunter.full.jpg -seal_of_cleansing.jpg http://[server]/NE/Seal%20of%20Cleansing.full.jpg -seal_of_doom.jpg http://[server]/NE/Seal%20of%20Doom.full.jpg -seal_of_fire.jpg http://[server]/NE/Seal%20of%20Fire.full.jpg -seal_of_primordium.jpg http://[server]/PLC/Seal%20of%20Primordium.full.jpg -seal_of_removal.jpg http://[server]/NE/Seal%20of%20Removal.full.jpg -seal_of_strength.jpg http://[server]/NE/Seal%20of%20Strength.full.jpg -sealed_fate.jpg http://[server]/MI/Sealed%20Fate.full.jpg -search_for_survivors.jpg http://[server]/PY/Search%20for%20Survivors.full.jpg -search_for_tomorrow.jpg http://[server]/TSP/Search%20for%20Tomorrow.full.jpg -searing_flesh.jpg http://[server]/ON/Searing%20Flesh.full.jpg -searing_meditation.jpg http://[server]/RAV/Searing%20Meditation.full.jpg -searing_rays.jpg http://[server]/IN/Searing%20Rays.full.jpg -searing_spear_askari.jpg http://[server]/MI/Searing%20Spear%20Askari.full.jpg -searing_touch.jpg http://[server]/TE/Searing%20Touch.full.jpg -searing_wind.jpg http://[server]/8E/Searing%20Wind.full.jpg -seas_claim.jpg http://[server]/9E/Sea's%20Claim.full.jpg -seascape_aerialist.jpg http://[server]/ZEN/Seascape%20Aerialist.full.jpg -seashell_cameo.jpg http://[server]/IN/Seashell%20Cameo.full.jpg -seaside_citadel.jpg http://[server]/ALA/Seaside%20Citadel.full.jpg -seaside_haven.jpg http://[server]/ON/Seaside%20Haven.full.jpg -seasinger.jpg http://[server]/5E/Seasinger.full.jpg -season_of_the_witch.jpg http://[server]/DK/Season%20of%20the%20Witch.full.jpg -seasoned_marshal.jpg http://[server]/9E/Seasoned%20Marshal.full.jpg -seasoned_tactician.jpg http://[server]/AL/Seasoned%20Tactician.full.jpg -seat_of_the_synod.jpg http://[server]/MR/Seat%20of%20the%20Synod.full.jpg -secluded_glen.jpg http://[server]/LRW/Secluded%20Glen.full.jpg -secluded_steppe.jpg http://[server]/ON/Secluded%20Steppe.full.jpg -second_chance.jpg http://[server]/UL/Second%20Chance.full.jpg -second_sight.jpg http://[server]/DS/Second%20Sight.full.jpg -second_sunrise.jpg http://[server]/MR/Second%20Sunrise.full.jpg -second_thoughts.jpg http://[server]/OD/Second%20Thoughts.full.jpg -second_wind.jpg http://[server]/FUT/Second%20Wind.full.jpg -secretkeeper.jpg http://[server]/SOK/Secretkeeper.full.jpg -security_detail.jpg http://[server]/MM/Security%20Detail.full.jpg -sedge_sliver.jpg http://[server]/TSP/Sedge%20Sliver.full.jpg -sedge_troll.jpg http://[server]/U/Sedge%20Troll.full.jpg -sedraxis_alchemist.jpg http://[server]/CFX/Sedraxis%20Alchemist.full.jpg -sedraxis_specter.jpg http://[server]/ALA/Sedraxis%20Specter.full.jpg -sedris_the_traitor_king.jpg http://[server]/ALA/Sedris,%20the%20Traitor%20King.full.jpg -seed_spark.jpg http://[server]/RAV/Seed%20Spark.full.jpg -seed_the_land.jpg http://[server]/SOK/Seed%20the%20Land.full.jpg -seedborn_muse.jpg http://[server]/10E/Seedborn%20Muse.full.jpg -seedcradle_witch.jpg http://[server]/SHM/Seedcradle%20Witch.full.jpg -seedguide_ash.jpg http://[server]/LRW/Seedguide%20Ash.full.jpg -seedling_charm.jpg http://[server]/MI/Seedling%20Charm.full.jpg -seeds_of_innocence.jpg http://[server]/MI/Seeds%20of%20Innocence.full.jpg -seeds_of_strength.jpg http://[server]/RAV/Seeds%20of%20Strength.full.jpg -seedtime.jpg http://[server]/JU/Seedtime.full.jpg -seek_the_horizon.jpg http://[server]/SOK/Seek%20the%20Horizon.full.jpg -seeker.jpg http://[server]/4E/Seeker.full.jpg -seeker_of_skybreak.jpg http://[server]/7E/Seeker%20of%20Skybreak.full.jpg -seers_vision.jpg http://[server]/IN/Seer's%20Vision.full.jpg -seething_anger.jpg http://[server]/SH/Seething%20Anger.full.jpg -seething_pathblazer.jpg http://[server]/MOR/Seething%20Pathblazer.full.jpg -seething_song.jpg http://[server]/9E/Seething%20Song.full.jpg -segmented_wurm.jpg http://[server]/BD/Segmented%20Wurm.full.jpg -segovian_leviathan.jpg http://[server]/6E/Segovian%20Leviathan.full.jpg -sehts_tiger.jpg http://[server]/FUT/Seht's%20Tiger.full.jpg -seismic_assault.jpg http://[server]/10E/Seismic%20Assault.full.jpg -seismic_mage.jpg http://[server]/MM/Seismic%20Mage.full.jpg -seismic_shudder.jpg http://[server]/ZEN/Seismic%20Shudder.full.jpg -seismic_spike.jpg http://[server]/RAV/Seismic%20Spike.full.jpg -seismic_strike.jpg http://[server]/M10/Seismic%20Strike.full.jpg -seizan_perverter_of_truth.jpg http://[server]/CHK/Seizan,%20Perverter%20of%20Truth.full.jpg -seize_the_day.jpg http://[server]/OD/Seize%20the%20Day.full.jpg -seize_the_soul.jpg http://[server]/GP/Seize%20the%20Soul.full.jpg -seizures.jpg http://[server]/IA/Seizures.full.jpg -sejiri_refuge.jpg http://[server]/ZEN/Sejiri%20Refuge.full.jpg -sekki_seasons_guide.jpg http://[server]/SOK/Sekki,%20Seasons'%20Guide.full.jpg -sekkuar_deathkeeper.jpg http://[server]/CS/Sek'Kuar,%20Deathkeeper.full.jpg -selenia.jpg http://[server]/VG/Selenia.full.jpg -selenia_dark_angel.jpg http://[server]/TE/Selenia,%20Dark%20Angel.full.jpg -selesnya_evangel.jpg http://[server]/RAV/Selesnya%20Evangel.full.jpg -selesnya_guildmage.jpg http://[server]/RAV/Selesnya%20Guildmage.full.jpg -selesnya_sagittars.jpg http://[server]/RAV/Selesnya%20Sagittars.full.jpg -selesnya_sanctuary.jpg http://[server]/RAV/Selesnya%20Sanctuary.full.jpg -selesnya_signet.jpg http://[server]/RAV/Selesnya%20Signet.full.jpg -selfless_exorcist.jpg http://[server]/JU/Selfless%20Exorcist.full.jpg -selkie_hedge_mage.jpg http://[server]/EVE/Selkie%20Hedge-Mage.full.jpg -sell_sword_brute.jpg http://[server]/RAV/Sell-Sword%20Brute.full.jpg -sen_triplets.jpg http://[server]/ARB/Sen%20Triplets.full.jpg -sengir_autocrat.jpg http://[server]/6E/Sengir%20Autocrat.full.jpg -sengir_bats.jpg http://[server]/HL/Sengir%20Bats1.full.jpg -sengir_nosferatu.jpg http://[server]/TSP/Sengir%20Nosferatu.full.jpg -sengir_vampire.jpg http://[server]/10E/Sengir%20Vampire.full.jpg -sensation_gorger.jpg http://[server]/MOR/Sensation%20Gorger.full.jpg -sensei_golden_tail.jpg http://[server]/CHK/Sensei%20Golden-Tail.full.jpg -senseis_divining_top.jpg http://[server]/CHK/Sensei's%20Divining%20Top.full.jpg -sentinel.jpg http://[server]/LG/Sentinel.full.jpg -sentinels_of_glen_elendra.jpg http://[server]/LRW/Sentinels%20of%20Glen%20Elendra.full.jpg -sentry_oak.jpg http://[server]/LRW/Sentry%20Oak.full.jpg -seraph.jpg http://[server]/IA/Seraph.full.jpg -serendib_djinn.jpg http://[server]/AN/Serendib%20Djinn.full.jpg -serendib_efreet.jpg http://[server]/AN/Serendib%20Efreet.full.jpg -serendib_sorcerer.jpg http://[server]/PLC/Serendib%20Sorcerer.full.jpg -serene_heart.jpg http://[server]/MI/Serene%20Heart.full.jpg -serene_offering.jpg http://[server]/TE/Serene%20Offering.full.jpg -serene_sunset.jpg http://[server]/JU/Serene%20Sunset.full.jpg -serenity.jpg http://[server]/6E/Serenity.full.jpg -serpent_assassin.jpg http://[server]/PT/Serpent%20Assassin.full.jpg -serpent_generator.jpg http://[server]/5E/Serpent%20Generator.full.jpg -serpent_of_the_endless_sea.jpg http://[server]/M10/Serpent%20of%20the%20Endless%20Sea.full.jpg -serpent_skin.jpg http://[server]/CHK/Serpent%20Skin.full.jpg -serpent_warrior.jpg http://[server]/9E/Serpent%20Warrior.full.jpg -serpentine_basilisk.jpg http://[server]/ON/Serpentine%20Basilisk.full.jpg -serpentine_kavu.jpg http://[server]/IN/Serpentine%20Kavu.full.jpg -serra.jpg http://[server]/VG/Serra.full.jpg -serra_advocate.jpg http://[server]/7E/Serra%20Advocate.full.jpg -serra_angel.jpg http://[server]/M10/Serra%20Angel.full.jpg -serra_avatar.jpg http://[server]/US/Serra%20Avatar.full.jpg -serra_avenger.jpg http://[server]/TSP/Serra%20Avenger.full.jpg -serra_aviary.jpg http://[server]/HL/Serra%20Aviary.full.jpg -serra_bestiary.jpg http://[server]/5E/Serra%20Bestiary.full.jpg -serra_inquisitors.jpg http://[server]/HL/Serra%20Inquisitors.full.jpg -serra_paladin.jpg http://[server]/5E/Serra%20Paladin.full.jpg -serra_sphinx.jpg http://[server]/PLC/Serra%20Sphinx.full.jpg -serra_zealot.jpg http://[server]/US/Serra%20Zealot.full.jpg -serras_blessing.jpg http://[server]/9E/Serra's%20Blessing.full.jpg -serras_boon.jpg http://[server]/PLC/Serra's%20Boon.full.jpg -serras_embrace.jpg http://[server]/10E/Serra's%20Embrace.full.jpg -serras_hymn.jpg http://[server]/US/Serra's%20Hymn.full.jpg -serras_liturgy.jpg http://[server]/US/Serra's%20Liturgy.full.jpg -serras_sanctum.jpg http://[server]/US/Serra's%20Sanctum.full.jpg -serrated_arrows.jpg http://[server]/AT/Serrated%20Arrows.full.jpg -serrated_biskelion.jpg http://[server]/WL/Serrated%20Biskelion.full.jpg -serum_powder.jpg http://[server]/DS/Serum%20Powder.full.jpg -serum_tank.jpg http://[server]/HOP/Serum%20Tank.full.jpg -serum_visions.jpg http://[server]/FD/Serum%20Visions.full.jpg -servant_of_volrath.jpg http://[server]/TE/Servant%20of%20Volrath.full.jpg -seshiro_the_anointed.jpg http://[server]/CHK/Seshiro%20the%20Anointed.full.jpg -seton_krosan_protector.jpg http://[server]/OD/Seton,%20Krosan%20Protector.full.jpg -setons_desire.jpg http://[server]/OD/Seton's%20Desire.full.jpg -setons_scout.jpg http://[server]/TO/Seton's%20Scout.full.jpg -sever_soul.jpg http://[server]/8E/Sever%20Soul.full.jpg -severed_legion.jpg http://[server]/10E/Severed%20Legion.full.jpg -sewer_rats.jpg http://[server]/MI/Sewer%20Rats.full.jpg -sewerdreg.jpg http://[server]/RAV/Sewerdreg.full.jpg -sewers_of_estark.jpg http://[server]/HPB/Sewers%20of%20Estark.full.jpg -sewn_eye_drake.jpg http://[server]/ARB/Sewn-Eye%20Drake.full.jpg -sex_appeal.jpg http://[server]/UG/Sex%20Appeal.full.jpg -shackles.jpg http://[server]/IN/Shackles.full.jpg -shade_of_trokair.jpg http://[server]/PLC/Shade%20of%20Trokair.full.jpg -shades_breath.jpg http://[server]/ON/Shade's%20Breath.full.jpg -shades_form.jpg http://[server]/TO/Shade's%20Form.full.jpg -shadow_guildmage.jpg http://[server]/MI/Shadow%20Guildmage.full.jpg -shadow_lance.jpg http://[server]/GP/Shadow%20Lance.full.jpg -shadow_of_doubt.jpg http://[server]/RAV/Shadow%20of%20Doubt.full.jpg -shadow_rider.jpg http://[server]/WL/Shadow%20Rider.full.jpg -shadow_rift.jpg http://[server]/TE/Shadow%20Rift.full.jpg -shadow_sliver.jpg http://[server]/TSP/Shadow%20Sliver.full.jpg -shadowbane.jpg http://[server]/MI/Shadowbane.full.jpg -shadowblood_egg.jpg http://[server]/OD/Shadowblood%20Egg.full.jpg -shadowblood_ridge.jpg http://[server]/OD/Shadowblood%20Ridge.full.jpg -shadowfeed.jpg http://[server]/ALA/Shadowfeed.full.jpg -shadowmage_infiltrator.jpg http://[server]/OD/Shadowmage%20Infiltrator.full.jpg -shadowstorm.jpg http://[server]/TE/Shadowstorm.full.jpg -shah_of_naar_isle.jpg http://[server]/FUT/Shah%20of%20Naar%20Isle.full.jpg -shahrazad.jpg http://[server]/AN/Shahrazad.full.jpg -shaleskin_bruiser.jpg http://[server]/ON/Shaleskin%20Bruiser.full.jpg -shaleskin_plower.jpg http://[server]/LE/Shaleskin%20Plower.full.jpg -shallow_grave.jpg http://[server]/MI/Shallow%20Grave.full.jpg -shaman_en_kor.jpg http://[server]/SH/Shaman%20en-Kor.full.jpg -shamans_trance.jpg http://[server]/JU/Shaman's%20Trance.full.jpg -shambling_remains.jpg http://[server]/CFX/Shambling%20Remains.full.jpg -shambling_shell.jpg http://[server]/RAV/Shambling%20Shell.full.jpg -shambling_strider.jpg http://[server]/BD/Shambling%20Strider.full.jpg -shambling_swarm.jpg http://[server]/TO/Shambling%20Swarm.full.jpg -shanodin_dryads.jpg http://[server]/7E/Shanodin%20Dryads.full.jpg -shape_of_the_wiitigo.jpg http://[server]/CS/Shape%20of%20the%20Wiitigo.full.jpg -shape_stealer.jpg http://[server]/SOK/Shape%20Stealer.full.jpg -shaper_guildmage.jpg http://[server]/MI/Shaper%20Guildmage.full.jpg -shaper_parasite.jpg http://[server]/PLC/Shaper%20Parasite.full.jpg -shapesharer.jpg http://[server]/LRW/Shapesharer.full.jpg -shapeshifter.jpg http://[server]/5E/Shapeshifter.full.jpg -shapeshifters_marrow.jpg http://[server]/FUT/Shapeshifter's%20Marrow.full.jpg -shard_convergence.jpg http://[server]/CFX/Shard%20Convergence.full.jpg -shard_phoenix.jpg http://[server]/9E/Shard%20Phoenix.full.jpg -shard_volley.jpg http://[server]/MOR/Shard%20Volley.full.jpg -sharding_sphinx.jpg http://[server]/ALA/Sharding%20Sphinx.full.jpg -shared_animosity.jpg http://[server]/MOR/Shared%20Animosity.full.jpg -shared_fate.jpg http://[server]/MR/Shared%20Fate.full.jpg -shared_triumph.jpg http://[server]/ON/Shared%20Triumph.full.jpg -sharuum_the_hegemon.jpg http://[server]/ALA/Sharuum%20the%20Hegemon.full.jpg -shatter.jpg http://[server]/M10/Shatter.full.jpg -shattered_crypt.jpg http://[server]/WL/Shattered%20Crypt.full.jpg -shattered_dreams.jpg http://[server]/FD/Shattered%20Dreams.full.jpg -shattering_pulse.jpg http://[server]/EX/Shattering%20Pulse.full.jpg -shattering_spree.jpg http://[server]/GP/Shattering%20Spree.full.jpg -shatterskull_giant.jpg http://[server]/ZEN/Shatterskull%20Giant.full.jpg -shatterstorm.jpg http://[server]/10E/Shatterstorm.full.jpg -shauku_endbringer.jpg http://[server]/MI/Shauku,%20Endbringer.full.jpg -shaukus_minion.jpg http://[server]/MI/Shauku's%20Minion.full.jpg -sheep.jpg http://[server]/UG/Sheep.full.jpg -shelkin_brownie.jpg http://[server]/LG/Shelkin%20Brownie.full.jpg -shell_of_the_last_kappa.jpg http://[server]/CHK/Shell%20of%20the%20Last%20Kappa.full.jpg -shell_skulkin.jpg http://[server]/EVE/Shell%20Skulkin.full.jpg -shelldock_isle.jpg http://[server]/LRW/Shelldock%20Isle.full.jpg -shelter.jpg http://[server]/OD/Shelter.full.jpg -sheltered_valley.jpg http://[server]/AL/Sheltered%20Valley.full.jpg -sheltering_ancient.jpg http://[server]/CS/Sheltering%20Ancient.full.jpg -sheltering_prayers.jpg http://[server]/PY/Sheltering%20Prayers.full.jpg -shepherd_of_rot.jpg http://[server]/ON/Shepherd%20of%20Rot.full.jpg -shepherd_of_the_lost.jpg http://[server]/ZEN/Shepherd%20of%20the%20Lost.full.jpg -shichifukujin_dragon.jpg http://[server]/PR/Shichifukujin%20Dragon.full.jpg -shield_bearer.jpg http://[server]/5E/Shield%20Bearer.full.jpg -shield_dancer.jpg http://[server]/PY/Shield%20Dancer.full.jpg -shield_mate.jpg http://[server]/EX/Shield%20Mate.full.jpg -shield_of_duty_and_reason.jpg http://[server]/AP/Shield%20of%20Duty%20and%20Reason.full.jpg -shield_of_kaldra.jpg http://[server]/DS/Shield%20of%20Kaldra.full.jpg -shield_of_the_ages.jpg http://[server]/IA/Shield%20of%20the%20Ages.full.jpg -shield_of_the_oversoul.jpg http://[server]/SHM/Shield%20of%20the%20Oversoul.full.jpg -shield_of_the_righteous.jpg http://[server]/ARB/Shield%20of%20the%20Righteous.full.jpg -shield_sphere.jpg http://[server]/AL/Shield%20Sphere.full.jpg -shield_wall.jpg http://[server]/7E/Shield%20Wall.full.jpg -shielding_plax.jpg http://[server]/DIS/Shielding%20Plax.full.jpg -shieldmage_advocate.jpg http://[server]/JU/Shieldmage%20Advocate.full.jpg -shieldmage_elder.jpg http://[server]/ON/Shieldmage%20Elder.full.jpg -shieldmates_blessing.jpg http://[server]/ZEN/Shieldmate's%20Blessing.full.jpg -shields_of_velis_vel.jpg http://[server]/LRW/Shields%20of%20Velis%20Vel.full.jpg -shifting_borders.jpg http://[server]/SOK/Shifting%20Borders.full.jpg -shifting_sky.jpg http://[server]/8E/Shifting%20Sky.full.jpg -shifting_sliver.jpg http://[server]/LE/Shifting%20Sliver.full.jpg -shifting_wall.jpg http://[server]/SH/Shifting%20Wall.full.jpg -shifty_doppelganger.jpg http://[server]/OD/Shifty%20Doppelganger.full.jpg -shimatsu_the_bloodcloaked.jpg http://[server]/CHK/Shimatsu%20the%20Bloodcloaked.full.jpg -shimian_night_stalker.jpg http://[server]/LG/Shimian%20Night%20Stalker.full.jpg -shimian_specter.jpg http://[server]/FUT/Shimian%20Specter.full.jpg -shimmer.jpg http://[server]/MI/Shimmer.full.jpg -shimmering_barrier.jpg http://[server]/US/Shimmering%20Barrier.full.jpg -shimmering_efreet.jpg http://[server]/VI/Shimmering%20Efreet.full.jpg -shimmering_glasskite.jpg http://[server]/BOK/Shimmering%20Glasskite.full.jpg -shimmering_grotto.jpg http://[server]/LRW/Shimmering%20Grotto.full.jpg -shimmering_mirage.jpg http://[server]/AP/Shimmering%20Mirage.full.jpg -shimmering_wings.jpg http://[server]/10E/Shimmering%20Wings.full.jpg -shinen_of_fears_chill.jpg http://[server]/SOK/Shinen%20of%20Fear's%20Chill.full.jpg -shinen_of_flights_wings.jpg http://[server]/SOK/Shinen%20of%20Flight's%20Wings.full.jpg -shinen_of_furys_fire.jpg http://[server]/SOK/Shinen%20of%20Fury's%20Fire.full.jpg -shinen_of_lifes_roar.jpg http://[server]/SOK/Shinen%20of%20Life's%20Roar.full.jpg -shinen_of_stars_light.jpg http://[server]/SOK/Shinen%20of%20Stars'%20Light.full.jpg -shinewend.jpg http://[server]/MOR/Shinewend.full.jpg -shining_shoal.jpg http://[server]/BOK/Shining%20Shoal.full.jpg -shinka_gatekeeper.jpg http://[server]/BOK/Shinka%20Gatekeeper.full.jpg -shinka_the_bloodsoaked_keep.jpg http://[server]/CHK/Shinka,%20the%20Bloodsoaked%20Keep.full.jpg -shirei_shizos_caretaker.jpg http://[server]/BOK/Shirei,%20Shizo's%20Caretaker.full.jpg -shisato_whispering_hunter.jpg http://[server]/CHK/Shisato,%20Whispering%20Hunter.full.jpg -shivan_dragon.jpg http://[server]/M10/Shivan%20Dragon.full.jpg -shivan_emissary.jpg http://[server]/IN/Shivan%20Emissary.full.jpg -shivan_gorge.jpg http://[server]/US/Shivan%20Gorge.full.jpg -shivan_harvest.jpg http://[server]/IN/Shivan%20Harvest.full.jpg -shivan_hellkite.jpg http://[server]/10E/Shivan%20Hellkite.full.jpg -shivan_meteor.jpg http://[server]/PLC/Shivan%20Meteor.full.jpg -shivan_oasis.jpg http://[server]/8E/Shivan%20Oasis.full.jpg -shivan_phoenix.jpg http://[server]/UL/Shivan%20Phoenix.full.jpg -shivan_raptor.jpg http://[server]/US/Shivan%20Raptor.full.jpg -shivan_reef.jpg http://[server]/10E/Shivan%20Reef.full.jpg -shivan_sand_mage.jpg http://[server]/FUT/Shivan%20Sand-Mage.full.jpg -shivan_wumpus.jpg http://[server]/PLC/Shivan%20Wumpus.full.jpg -shivan_wurm.jpg http://[server]/PS/Shivan%20Wurm.full.jpg -shivan_zombie.jpg http://[server]/IN/Shivan%20Zombie.full.jpg -shivs_embrace.jpg http://[server]/US/Shiv's%20Embrace.full.jpg -shizo_deaths_storehouse.jpg http://[server]/CHK/Shizo,%20Death's%20Storehouse.full.jpg -shizuko_caller_of_autumn.jpg http://[server]/BOK/Shizuko,%20Caller%20of%20Autumn.full.jpg -shoal_serpent.jpg http://[server]/ZEN/Shoal%20Serpent.full.jpg -shock.jpg http://[server]/10E/Shock.full.jpg -shock_troops.jpg http://[server]/8E/Shock%20Troops.full.jpg -shocker.jpg http://[server]/TE/Shocker.full.jpg -shoe_tree.jpg http://[server]/UNH/Shoe%20Tree.full.jpg -shore_snapper.jpg http://[server]/ALA/Shore%20Snapper.full.jpg -shorecrasher_mimic.jpg http://[server]/EVE/Shorecrasher%20Mimic.full.jpg -shoreline_raider.jpg http://[server]/IN/Shoreline%20Raider.full.jpg -shoreline_ranger.jpg http://[server]/SC/Shoreline%20Ranger.full.jpg -shoving_match.jpg http://[server]/MM/Shoving%20Match.full.jpg -show_and_tell.jpg http://[server]/US/Show%20and%20Tell.full.jpg -shower_of_coals.jpg http://[server]/OD/Shower%20of%20Coals.full.jpg -shower_of_sparks.jpg http://[server]/US/Shower%20of%20Sparks.full.jpg -shrapnel_blast.jpg http://[server]/MR/Shrapnel%20Blast.full.jpg -shred_memory.jpg http://[server]/RAV/Shred%20Memory.full.jpg -shrewd_hatchling.jpg http://[server]/EVE/Shrewd%20Hatchling.full.jpg -shriek_of_dread.jpg http://[server]/PS/Shriek%20of%20Dread.full.jpg -shrieking_drake.jpg http://[server]/VI/Shrieking%20Drake.full.jpg -shrieking_grotesque.jpg http://[server]/GP/Shrieking%20Grotesque.full.jpg -shrieking_mogg.jpg http://[server]/NE/Shrieking%20Mogg.full.jpg -shrieking_specter.jpg http://[server]/ST/Shrieking%20Specter.full.jpg -shriekmaw.jpg http://[server]/LRW/Shriekmaw.full.jpg -shrink.jpg http://[server]/5E/Shrink.full.jpg -shriveling_rot.jpg http://[server]/DS/Shriveling%20Rot.full.jpg -shrouded_lore.jpg http://[server]/PLC/Shrouded%20Lore.full.jpg -shrouded_serpent.jpg http://[server]/PY/Shrouded%20Serpent.full.jpg -shu_cavalry.jpg http://[server]/P3/Shu%20Cavalry.full.jpg -shu_defender.jpg http://[server]/P3/Shu%20Defender.full.jpg -shu_elite_companions.jpg http://[server]/P3/Shu%20Elite%20Companions.full.jpg -shu_elite_infantry.jpg http://[server]/P3/Shu%20Elite%20Infantry.full.jpg -shu_farmer.jpg http://[server]/P3/Shu%20Farmer.full.jpg -shu_foot_soldiers.jpg http://[server]/P3/Shu%20Foot%20Soldiers.full.jpg -shu_general.jpg http://[server]/P3/Shu%20General.full.jpg -shu_grain_caravan.jpg http://[server]/P3/Shu%20Grain%20Caravan.full.jpg -shu_soldier_farmers.jpg http://[server]/P3/Shu%20Soldier-Farmers.full.jpg -shuko.jpg http://[server]/BOK/Shuko.full.jpg -shunt.jpg http://[server]/10E/Shunt.full.jpg -shuriken.jpg http://[server]/BOK/Shuriken.full.jpg -shyft.jpg http://[server]/IA/Shyft.full.jpg -sibilant_spirit.jpg http://[server]/6E/Sibilant%20Spirit.full.jpg -sick_and_tired.jpg http://[server]/UL/Sick%20and%20Tired.full.jpg -sicken.jpg http://[server]/US/Sicken.full.jpg -sickening_dreams.jpg http://[server]/TO/Sickening%20Dreams.full.jpg -sickening_shoal.jpg http://[server]/BOK/Sickening%20Shoal.full.jpg -sickle_ripper.jpg http://[server]/SHM/Sickle%20Ripper.full.jpg -sidar_jabari.jpg http://[server]/MI/Sidar%20Jabari.full.jpg -sidar_kondo.jpg http://[server]/VG/Sidar%20Kondo.full.jpg -side_to_side.jpg http://[server]/UNH/Side%20to%20Side.full.jpg -sideswipe.jpg http://[server]/CHK/Sideswipe.full.jpg -sidewinder_sliver.jpg http://[server]/TSP/Sidewinder%20Sliver.full.jpg -siege_gang_commander.jpg http://[server]/M10/Siege-Gang%20Commander.full.jpg -siege_mastodon.jpg http://[server]/M10/Siege%20Mastodon.full.jpg -siege_of_towers.jpg http://[server]/GP/Siege%20of%20Towers.full.jpg -siege_wurm.jpg http://[server]/RAV/Siege%20Wurm.full.jpg -sift.jpg http://[server]/10E/Sift.full.jpg -sift_through_sands.jpg http://[server]/CHK/Sift%20Through%20Sands.full.jpg -sighted_caste_sorcerer.jpg http://[server]/ALA/Sighted-Caste%20Sorcerer.full.jpg -sigil_blessing.jpg http://[server]/ALA/Sigil%20Blessing.full.jpg -sigil_captain.jpg http://[server]/ARB/Sigil%20Captain.full.jpg -sigil_of_distinction.jpg http://[server]/ALA/Sigil%20of%20Distinction.full.jpg -sigil_of_sleep.jpg http://[server]/UD/Sigil%20of%20Sleep.full.jpg -sigil_of_the_empty_throne.jpg http://[server]/CFX/Sigil%20of%20the%20Empty%20Throne.full.jpg -sigil_of_the_nayan_gods.jpg http://[server]/ARB/Sigil%20of%20the%20Nayan%20Gods.full.jpg -sigil_of_the_new_dawn.jpg http://[server]/ON/Sigil%20of%20the%20New%20Dawn.full.jpg -sigil_tracer.jpg http://[server]/MOR/Sigil%20Tracer.full.jpg -sigiled_behemoth.jpg http://[server]/ARB/Sigiled%20Behemoth.full.jpg -sigiled_paladin.jpg http://[server]/ALA/Sigiled%20Paladin.full.jpg -sign_in_blood.jpg http://[server]/M10/Sign%20in%20Blood.full.jpg -silence.jpg http://[server]/M10/Silence.full.jpg -silent_arbiter.jpg http://[server]/FD/Silent%20Arbiter.full.jpg -silent_assassin.jpg http://[server]/MM/Silent%20Assassin.full.jpg -silent_attendant.jpg http://[server]/US/Silent%20Attendant.full.jpg -silent_chant_zubera.jpg http://[server]/CHK/Silent-Chant%20Zubera.full.jpg -silent_specter.jpg http://[server]/ON/Silent%20Specter.full.jpg -silhana_ledgewalker.jpg http://[server]/GP/Silhana%20Ledgewalker.full.jpg -silhana_starfletcher.jpg http://[server]/GP/Silhana%20Starfletcher.full.jpg -silhouette.jpg http://[server]/LG/Silhouette.full.jpg -silk_net.jpg http://[server]/UL/Silk%20Net.full.jpg -silkbind_faerie.jpg http://[server]/SHM/Silkbind%20Faerie.full.jpg -silkenfist_fighter.jpg http://[server]/NE/Silkenfist%20Fighter.full.jpg -silkenfist_order.jpg http://[server]/NE/Silkenfist%20Order.full.jpg -silklash_spider.jpg http://[server]/9E/Silklash%20Spider.full.jpg -silkwing_scout.jpg http://[server]/DIS/Silkwing%20Scout.full.jpg -silt_crawler.jpg http://[server]/PY/Silt%20Crawler.full.jpg -silver_drake.jpg http://[server]/PS/Silver%20Drake.full.jpg -silver_erne.jpg http://[server]/IA/Silver%20Erne.full.jpg -silver_knight.jpg http://[server]/SC/Silver%20Knight.full.jpg -silver_myr.jpg http://[server]/MR/Silver%20Myr.full.jpg -silver_seraph.jpg http://[server]/JU/Silver%20Seraph.full.jpg -silver_wyvern.jpg http://[server]/SH/Silver%20Wyvern.full.jpg -silverback_ape.jpg http://[server]/8E/Silverback%20Ape.full.jpg -silvercoat_lion.jpg http://[server]/M10/Silvercoat%20Lion.full.jpg -silvergill_adept.jpg http://[server]/LRW/Silvergill%20Adept.full.jpg -silvergill_douser.jpg http://[server]/LRW/Silvergill%20Douser.full.jpg -silverglade_elemental.jpg http://[server]/MM/Silverglade%20Elemental.full.jpg -silverglade_pathfinder.jpg http://[server]/MM/Silverglade%20Pathfinder.full.jpg -silverstorm_samurai.jpg http://[server]/BOK/Silverstorm%20Samurai.full.jpg -silvos_rogue_elemental.jpg http://[server]/ON/Silvos,%20Rogue%20Elemental.full.jpg -sima_yi_wei_field_marshal.jpg http://[server]/P3/Sima%20Yi,%20Wei%20Field%20Marshal.full.jpg -simian_brawler.jpg http://[server]/CS/Simian%20Brawler.full.jpg -simian_grunts.jpg http://[server]/UL/Simian%20Grunts.full.jpg -simian_spirit_guide.jpg http://[server]/PLC/Simian%20Spirit%20Guide.full.jpg -simic_basilisk.jpg http://[server]/DIS/Simic%20Basilisk.full.jpg -simic_growth_chamber.jpg http://[server]/DIS/Simic%20Growth%20Chamber.full.jpg -simic_guildmage.jpg http://[server]/DIS/Simic%20Guildmage.full.jpg -simic_initiate.jpg http://[server]/DIS/Simic%20Initiate.full.jpg -simic_ragworm.jpg http://[server]/DIS/Simic%20Ragworm.full.jpg -simic_signet.jpg http://[server]/DIS/Simic%20Signet.full.jpg -simic_sky_swallower.jpg http://[server]/DIS/Simic%20Sky%20Swallower.full.jpg -simoon.jpg http://[server]/IN/Simoon.full.jpg -simplify.jpg http://[server]/OD/Simplify.full.jpg -simulacrum.jpg http://[server]/4E/Simulacrum.full.jpg -sindbad.jpg http://[server]/4E/Sindbad.full.jpg -sinew_sliver.jpg http://[server]/PLC/Sinew%20Sliver.full.jpg -singe.jpg http://[server]/PS/Singe.full.jpg -singe_mind_ogre.jpg http://[server]/ARB/Singe-Mind%20Ogre.full.jpg -singing_tree.jpg http://[server]/AN/Singing%20Tree.full.jpg -sinister_strength.jpg http://[server]/PS/Sinister%20Strength.full.jpg -sink_into_takenuma.jpg http://[server]/SOK/Sink%20into%20Takenuma.full.jpg -sinkhole.jpg http://[server]/U/Sinkhole.full.jpg -sinking_feeling.jpg http://[server]/SHM/Sinking%20Feeling.full.jpg -sins_of_the_past.jpg http://[server]/RAV/Sins%20of%20the%20Past.full.jpg -sinstrikers_will.jpg http://[server]/GP/Sinstriker's%20Will.full.jpg -sir_shandlar_of_eberyn.jpg http://[server]/LG/Sir%20Shandlar%20of%20Eberyn.full.jpg -sire_of_the_storm.jpg http://[server]/CHK/Sire%20of%20the%20Storm.full.jpg -sirens_call.jpg http://[server]/4E/Siren's%20Call.full.jpg -sirocco.jpg http://[server]/MI/Sirocco.full.jpg -sisay.jpg http://[server]/VG/Sisay.full.jpg -sisays_ingenuity.jpg http://[server]/PS/Sisay's%20Ingenuity.full.jpg -sisays_ring.jpg http://[server]/7E/Sisay's%20Ring.full.jpg -sisters_of_stone_death.jpg http://[server]/RAV/Sisters%20of%20Stone%20Death.full.jpg -sisters_of_the_flame.jpg http://[server]/4E/Sisters%20of%20the%20Flame.full.jpg -sivitri_scarzam.jpg http://[server]/LG/Sivitri%20Scarzam.full.jpg -sivvis_ruse.jpg http://[server]/NE/Sivvi's%20Ruse.full.jpg -sivvis_valor.jpg http://[server]/NE/Sivvi's%20Valor.full.jpg -six_y_beast.jpg http://[server]/UNH/Six-y%20Beast.full.jpg -sizzle.jpg http://[server]/8E/Sizzle.full.jpg -skarrg_the_rage_pits.jpg http://[server]/GP/Skarrg,%20the%20Rage%20Pits.full.jpg -skarrgan_firebird.jpg http://[server]/GP/Skarrgan%20Firebird.full.jpg -skarrgan_pit_skulk.jpg http://[server]/GP/Skarrgan%20Pit-Skulk.full.jpg -skarrgan_skybreaker.jpg http://[server]/GP/Skarrgan%20Skybreaker.full.jpg -skeletal_changeling.jpg http://[server]/LRW/Skeletal%20Changeling.full.jpg -skeletal_crocodile.jpg http://[server]/PT/Skeletal%20Crocodile.full.jpg -skeletal_kathari.jpg http://[server]/ALA/Skeletal%20Kathari.full.jpg -skeletal_scrying.jpg http://[server]/OD/Skeletal%20Scrying.full.jpg -skeletal_snake.jpg http://[server]/PT/Skeletal%20Snake.full.jpg -skeletal_vampire.jpg http://[server]/GP/Skeletal%20Vampire.full.jpg -skeleton_scavengers.jpg http://[server]/SH/Skeleton%20Scavengers.full.jpg -skeleton_shard.jpg http://[server]/MR/Skeleton%20Shard.full.jpg -skeleton_ship.jpg http://[server]/IA/Skeleton%20Ship.full.jpg -skeletonize.jpg http://[server]/ALA/Skeletonize.full.jpg -skill_borrower.jpg http://[server]/ALA/Skill%20Borrower.full.jpg -skinthinner.jpg http://[server]/LE/Skinthinner.full.jpg -skirge_familiar.jpg http://[server]/US/Skirge%20Familiar.full.jpg -skirk_alarmist.jpg http://[server]/LE/Skirk%20Alarmist.full.jpg -skirk_commando.jpg http://[server]/ON/Skirk%20Commando.full.jpg -skirk_drill_sergeant.jpg http://[server]/LE/Skirk%20Drill%20Sergeant.full.jpg -skirk_fire_marshal.jpg http://[server]/ON/Skirk%20Fire%20Marshal.full.jpg -skirk_marauder.jpg http://[server]/LE/Skirk%20Marauder.full.jpg -skirk_outrider.jpg http://[server]/LE/Skirk%20Outrider.full.jpg -skirk_prospector.jpg http://[server]/ON/Skirk%20Prospector.full.jpg -skirk_ridge_exhumer.jpg http://[server]/FUT/Skirk%20Ridge%20Exhumer.full.jpg -skirk_shaman.jpg http://[server]/PLC/Skirk%20Shaman.full.jpg -skirk_volcanist.jpg http://[server]/SC/Skirk%20Volcanist.full.jpg -skittering_horror.jpg http://[server]/UD/Skittering%20Horror.full.jpg -skittering_monstrosity.jpg http://[server]/TSP/Skittering%20Monstrosity.full.jpg -skittering_skirge.jpg http://[server]/BD/Skittering%20Skirge.full.jpg -skittish_kavu.jpg http://[server]/IN/Skittish%20Kavu.full.jpg -skittish_valesk.jpg http://[server]/ON/Skittish%20Valesk.full.jpg -skizzik.jpg http://[server]/IN/Skizzik.full.jpg -skizzik_surger.jpg http://[server]/FUT/Skizzik%20Surger.full.jpg -skred.jpg http://[server]/CS/Skred.full.jpg -skulking_fugitive.jpg http://[server]/MM/Skulking%20Fugitive.full.jpg -skulking_ghost.jpg http://[server]/MI/Skulking%20Ghost.full.jpg -skulking_knight.jpg http://[server]/TSP/Skulking%20Knight.full.jpg -skull_catapult.jpg http://[server]/6E/Skull%20Catapult.full.jpg -skull_collector.jpg http://[server]/SOK/Skull%20Collector.full.jpg -skull_fracture.jpg http://[server]/OD/Skull%20Fracture.full.jpg -skull_of_orm.jpg http://[server]/8E/Skull%20of%20Orm.full.jpg -skull_of_ramos.jpg http://[server]/MM/Skull%20of%20Ramos.full.jpg -skullcage.jpg http://[server]/FD/Skullcage.full.jpg -skullclamp.jpg http://[server]/DS/Skullclamp.full.jpg -skullmane_baku.jpg http://[server]/BOK/Skullmane%20Baku.full.jpg -skullmead_cauldron.jpg http://[server]/DIS/Skullmead%20Cauldron.full.jpg -skullmulcher.jpg http://[server]/ALA/Skullmulcher.full.jpg -skullscorch.jpg http://[server]/TO/Skullscorch.full.jpg -skullsnatcher.jpg http://[server]/BOK/Skullsnatcher.full.jpg -skulltap.jpg http://[server]/SC/Skulltap.full.jpg -sky_diamond.jpg http://[server]/7E/Sky%20Diamond.full.jpg -sky_hussar.jpg http://[server]/DIS/Sky%20Hussar.full.jpg -sky_ruin_drake.jpg http://[server]/ZEN/Sky%20Ruin%20Drake.full.jpg -sky_spirit.jpg http://[server]/TE/Sky%20Spirit.full.jpg -sky_swallower.jpg http://[server]/GP/Sky%20Swallower.full.jpg -sky_weaver.jpg http://[server]/10E/Sky%20Weaver.full.jpg -skyclaw_thrash.jpg http://[server]/ARB/Skyclaw%20Thrash.full.jpg -skycloud_egg.jpg http://[server]/OD/Skycloud%20Egg.full.jpg -skycloud_expanse.jpg http://[server]/OD/Skycloud%20Expanse.full.jpg -skyfire_kirin.jpg http://[server]/SOK/Skyfire%20Kirin.full.jpg -skyhunter_cub.jpg http://[server]/MR/Skyhunter%20Cub.full.jpg -skyhunter_patrol.jpg http://[server]/10E/Skyhunter%20Patrol.full.jpg -skyhunter_prowler.jpg http://[server]/10E/Skyhunter%20Prowler.full.jpg -skyhunter_skirmisher.jpg http://[server]/10E/Skyhunter%20Skirmisher.full.jpg -skyknight_legionnaire.jpg http://[server]/RAV/Skyknight%20Legionnaire.full.jpg -skyreach_manta.jpg http://[server]/FD/Skyreach%20Manta.full.jpg -skyrider_trainee.jpg http://[server]/GP/Skyrider%20Trainee.full.jpg -skyscribing.jpg http://[server]/DIS/Skyscribing.full.jpg -skyshaper.jpg http://[server]/EX/Skyshaper.full.jpg -skyship_weatherlight.jpg http://[server]/PS/Skyship%20Weatherlight.full.jpg -skyshooter.jpg http://[server]/OD/Skyshooter.full.jpg -skyshroud_archer.jpg http://[server]/SH/Skyshroud%20Archer.full.jpg -skyshroud_behemoth.jpg http://[server]/NE/Skyshroud%20Behemoth.full.jpg -skyshroud_blessing.jpg http://[server]/PS/Skyshroud%20Blessing.full.jpg -skyshroud_claim.jpg http://[server]/NE/Skyshroud%20Claim.full.jpg -skyshroud_condor.jpg http://[server]/TE/Skyshroud%20Condor.full.jpg -skyshroud_cutter.jpg http://[server]/NE/Skyshroud%20Cutter.full.jpg -skyshroud_elf.jpg http://[server]/TE/Skyshroud%20Elf.full.jpg -skyshroud_elite.jpg http://[server]/EX/Skyshroud%20Elite.full.jpg -skyshroud_falcon.jpg http://[server]/7E/Skyshroud%20Falcon.full.jpg -skyshroud_forest.jpg http://[server]/TE/Skyshroud%20Forest.full.jpg -skyshroud_poacher.jpg http://[server]/NE/Skyshroud%20Poacher.full.jpg -skyshroud_ranger.jpg http://[server]/10E/Skyshroud%20Ranger.full.jpg -skyshroud_ridgeback.jpg http://[server]/NE/Skyshroud%20Ridgeback.full.jpg -skyshroud_sentinel.jpg http://[server]/NE/Skyshroud%20Sentinel.full.jpg -skyshroud_troll.jpg http://[server]/TE/Skyshroud%20Troll.full.jpg -skyshroud_troopers.jpg http://[server]/SH/Skyshroud%20Troopers.full.jpg -skyshroud_vampire.jpg http://[server]/TE/Skyshroud%20Vampire.full.jpg -skyshroud_war_beast.jpg http://[server]/EX/Skyshroud%20War%20Beast.full.jpg -skyward_eye_prophets.jpg http://[server]/CFX/Skyward%20Eye%20Prophets.full.jpg -skywing_aven.jpg http://[server]/TO/Skywing%20Aven.full.jpg -slagwurm_armor.jpg http://[server]/MR/Slagwurm%20Armor.full.jpg -slashing_tiger.jpg http://[server]/P3/Slashing%20Tiger.full.jpg -slate_of_ancestry.jpg http://[server]/ON/Slate%20of%20Ancestry.full.jpg -slaughter.jpg http://[server]/EX/Slaughter.full.jpg -slaughter_cry.jpg http://[server]/ZEN/Slaughter%20Cry.full.jpg -slaughter_pact.jpg http://[server]/FUT/Slaughter%20Pact.full.jpg -slaughterhouse_bouncer.jpg http://[server]/DIS/Slaughterhouse%20Bouncer.full.jpg -slave_of_bolas.jpg http://[server]/ARB/Slave%20of%20Bolas.full.jpg -slay.jpg http://[server]/9E/Slay.full.jpg -sleep.jpg http://[server]/M10/Sleep.full.jpg -sleeper_agent.jpg http://[server]/10E/Sleeper%20Agent.full.jpg -sleepers_guile.jpg http://[server]/UL/Sleeper's%20Guile.full.jpg -sleepers_robe.jpg http://[server]/IN/Sleeper's%20Robe.full.jpg -sleeping_potion.jpg http://[server]/PS/Sleeping%20Potion.full.jpg -sleight_of_hand.jpg http://[server]/7E/Sleight%20of%20Hand.full.jpg -sleight_of_mind.jpg http://[server]/5E/Sleight%20of%20Mind.full.jpg -slice_and_dice.jpg http://[server]/ON/Slice%20and%20Dice.full.jpg -slimy_kavu.jpg http://[server]/IN/Slimy%20Kavu.full.jpg -slingshot_goblin.jpg http://[server]/PS/Slingshot%20Goblin.full.jpg -slinking_giant.jpg http://[server]/SHM/Slinking%20Giant.full.jpg -slinking_serpent.jpg http://[server]/IN/Slinking%20Serpent.full.jpg -slinking_skirge.jpg http://[server]/UD/Slinking%20Skirge.full.jpg -slippery_bogle.jpg http://[server]/EVE/Slippery%20Bogle.full.jpg -slippery_karst.jpg http://[server]/AT/Slippery%20Karst.full.jpg -slipstream_eel.jpg http://[server]/ON/Slipstream%20Eel.full.jpg -slipstream_serpent.jpg http://[server]/TSP/Slipstream%20Serpent.full.jpg -sliptide_serpent.jpg http://[server]/NE/Sliptide%20Serpent.full.jpg -slith_ascendant.jpg http://[server]/MR/Slith%20Ascendant.full.jpg -slith_bloodletter.jpg http://[server]/MR/Slith%20Bloodletter.full.jpg -slith_firewalker.jpg http://[server]/MR/Slith%20Firewalker.full.jpg -slith_predator.jpg http://[server]/MR/Slith%20Predator.full.jpg -slith_strider.jpg http://[server]/MR/Slith%20Strider.full.jpg -slithering_shade.jpg http://[server]/DIS/Slithering%20Shade.full.jpg -slithermuse.jpg http://[server]/MOR/Slithermuse.full.jpg -slithery_stalker.jpg http://[server]/TO/Slithery%20Stalker.full.jpg -sliver_legion.jpg http://[server]/FUT/Sliver%20Legion.full.jpg -sliver_overlord.jpg http://[server]/SC/Sliver%20Overlord.full.jpg -sliver_queen.jpg http://[server]/SH/Sliver%20Queen.full.jpg -sliver_queen_brood_mother.jpg http://[server]/VG/Sliver%20Queen,%20Brood%20Mother.full.jpg -sliversmith.jpg http://[server]/FUT/Sliversmith.full.jpg -slobad_goblin_tinkerer.jpg http://[server]/DS/Slobad,%20Goblin%20Tinkerer.full.jpg -slow_motion.jpg http://[server]/UL/Slow%20Motion.full.jpg -sludge_strider.jpg http://[server]/HOP/Sludge%20Strider.full.jpg -sluggishness.jpg http://[server]/UL/Sluggishness.full.jpg -slumbering_tora.jpg http://[server]/BOK/Slumbering%20Tora.full.jpg -smallpox.jpg http://[server]/TSP/Smallpox.full.jpg -smart_ass.jpg http://[server]/UNH/Smart%20Ass.full.jpg -smash.jpg http://[server]/10E/Smash.full.jpg -smash_to_smithereens.jpg http://[server]/SHM/Smash%20to%20Smithereens.full.jpg -smite.jpg http://[server]/SH/Smite.full.jpg -smogsteed_rider.jpg http://[server]/GP/Smogsteed%20Rider.full.jpg -smoke.jpg http://[server]/5E/Smoke.full.jpg -smokebraider.jpg http://[server]/HOP/Smokebraider.full.jpg -smokespew_invoker.jpg http://[server]/LE/Smokespew%20Invoker.full.jpg -smokestack.jpg http://[server]/US/Smokestack.full.jpg -smolder_initiate.jpg http://[server]/SHM/Smolder%20Initiate.full.jpg -smoldering_butcher.jpg http://[server]/EVE/Smoldering%20Butcher.full.jpg -smoldering_crater.jpg http://[server]/AT/Smoldering%20Crater.full.jpg -smoldering_tar.jpg http://[server]/IN/Smoldering%20Tar.full.jpg -smother.jpg http://[server]/ON/Smother.full.jpg -snag.jpg http://[server]/PY/Snag.full.jpg -snake_basket.jpg http://[server]/6E/Snake%20Basket.full.jpg -snake_cult_initiation.jpg http://[server]/FUT/Snake%20Cult%20Initiation.full.jpg -snake_pit.jpg http://[server]/MM/Snake%20Pit.full.jpg -snakeform.jpg http://[server]/EVE/Snakeform.full.jpg -snap.jpg http://[server]/UL/Snap.full.jpg -snapback.jpg http://[server]/TSP/Snapback.full.jpg -snapping_drake.jpg http://[server]/M10/Snapping%20Drake.full.jpg -snapping_thragg.jpg http://[server]/ON/Snapping%20Thragg.full.jpg -snarling_undorak.jpg http://[server]/ON/Snarling%20Undorak.full.jpg -sneak_attack.jpg http://[server]/US/Sneak%20Attack.full.jpg -sneaky_homunculus.jpg http://[server]/8E/Sneaky%20Homunculus.full.jpg -snorting_gahr.jpg http://[server]/MM/Snorting%20Gahr.full.jpg -snow_devil.jpg http://[server]/IA/Snow%20Devil.full.jpg -snow_fortress.jpg http://[server]/IA/Snow%20Fortress.full.jpg -snow_hound.jpg http://[server]/IA/Snow%20Hound.full.jpg -snowblind.jpg http://[server]/IA/Snowblind.full.jpg -snowfall.jpg http://[server]/IA/Snowfall.full.jpg -snuff_out.jpg http://[server]/MM/Snuff%20Out.full.jpg -soar.jpg http://[server]/MI/Soar.full.jpg -soaring_hope.jpg http://[server]/LRW/Soaring%20Hope.full.jpg -soaring_seacliff.jpg http://[server]/ZEN/Soaring%20Seacliff.full.jpg -soilshaper.jpg http://[server]/CHK/Soilshaper.full.jpg -sokenzan_bruiser.jpg http://[server]/CHK/Sokenzan%20Bruiser.full.jpg -sokenzan_renegade.jpg http://[server]/SOK/Sokenzan%20Renegade.full.jpg -sokenzan_spellblade.jpg http://[server]/SOK/Sokenzan%20Spellblade.full.jpg -sol_grail.jpg http://[server]/AL/Sol%20Grail.full.jpg -sol_ring.jpg http://[server]/U/Sol%20Ring.full.jpg -solar_blast.jpg http://[server]/ON/Solar%20Blast.full.jpg -solar_tide.jpg http://[server]/MR/Solar%20Tide.full.jpg -solarion.jpg http://[server]/FD/Solarion.full.jpg -soldevi_adnate.jpg http://[server]/AL/Soldevi%20Adnate1.full.jpg -soldevi_digger.jpg http://[server]/AL/Soldevi%20Digger.full.jpg -soldevi_excavations.jpg http://[server]/AL/Soldevi%20Excavations.full.jpg -soldevi_golem.jpg http://[server]/IA/Soldevi%20Golem.full.jpg -soldevi_heretic.jpg http://[server]/AL/Soldevi%20Heretic1.full.jpg -soldevi_machinist.jpg http://[server]/IA/Soldevi%20Machinist.full.jpg -soldevi_sage.jpg http://[server]/6E/Soldevi%20Sage.full.jpg -soldevi_sentry.jpg http://[server]/AL/Soldevi%20Sentry1.full.jpg -soldevi_simulacrum.jpg http://[server]/IA/Soldevi%20Simulacrum.full.jpg -soldevi_steam_beast.jpg http://[server]/AL/Soldevi%20Steam%20Beast1.full.jpg -soldier.jpg http://[server]/UG/Soldier.full.jpg -soldier_of_fortune.jpg http://[server]/AL/Soldier%20of%20Fortune.full.jpg -soldier_replica.jpg http://[server]/MR/Soldier%20Replica.full.jpg -solemn_offering.jpg http://[server]/M10/Solemn%20Offering.full.jpg -solemn_simulacrum.jpg http://[server]/MR/Solemn%20Simulacrum.full.jpg -solfatara.jpg http://[server]/VI/Solfatara.full.jpg -solidarity.jpg http://[server]/8E/Solidarity.full.jpg -solitary_confinement.jpg http://[server]/JU/Solitary%20Confinement.full.jpg -solkanar_the_swamp_king.jpg http://[server]/CH/Sol'kanar%20the%20Swamp%20King.full.jpg -soltari_champion.jpg http://[server]/SH/Soltari%20Champion.full.jpg -soltari_crusader.jpg http://[server]/TE/Soltari%20Crusader.full.jpg -soltari_emissary.jpg http://[server]/TE/Soltari%20Emissary.full.jpg -soltari_foot_soldier.jpg http://[server]/TE/Soltari%20Foot%20Soldier.full.jpg -soltari_guerrillas.jpg http://[server]/TE/Soltari%20Guerrillas.full.jpg -soltari_lancer.jpg http://[server]/TE/Soltari%20Lancer.full.jpg -soltari_monk.jpg http://[server]/TE/Soltari%20Monk.full.jpg -soltari_priest.jpg http://[server]/TE/Soltari%20Priest.full.jpg -soltari_trooper.jpg http://[server]/TE/Soltari%20Trooper.full.jpg -soltari_visionary.jpg http://[server]/EX/Soltari%20Visionary.full.jpg -somber_hoverguard.jpg http://[server]/MR/Somber%20Hoverguard.full.jpg -somnomancer.jpg http://[server]/SHM/Somnomancer.full.jpg -somnophore.jpg http://[server]/US/Somnophore.full.jpg -song_of_blood.jpg http://[server]/VI/Song%20of%20Blood.full.jpg -song_of_serenity.jpg http://[server]/EX/Song%20of%20Serenity.full.jpg -songs_of_the_damned.jpg http://[server]/IA/Songs%20of%20the%20Damned.full.jpg -songstitcher.jpg http://[server]/US/Songstitcher.full.jpg -sonic_burst.jpg http://[server]/BD/Sonic%20Burst.full.jpg -sonic_seizure.jpg http://[server]/TO/Sonic%20Seizure.full.jpg -soot_imp.jpg http://[server]/EVE/Soot%20Imp.full.jpg -sootfeather_flock.jpg http://[server]/LE/Sootfeather%20Flock.full.jpg -soothing_balm.jpg http://[server]/MM/Soothing%20Balm.full.jpg -soothsaying.jpg http://[server]/MM/Soothsaying.full.jpg -sootstoke_kindler.jpg http://[server]/SHM/Sootstoke%20Kindler.full.jpg -sootwalkers.jpg http://[server]/SHM/Sootwalkers.full.jpg -sophic_centaur.jpg http://[server]/PLC/Sophic%20Centaur.full.jpg -soramaro_first_to_dream.jpg http://[server]/SOK/Soramaro,%20First%20to%20Dream.full.jpg -soratami_cloud_chariot.jpg http://[server]/SOK/Soratami%20Cloud%20Chariot.full.jpg -soratami_cloudskater.jpg http://[server]/CHK/Soratami%20Cloudskater.full.jpg -soratami_mindsweeper.jpg http://[server]/BOK/Soratami%20Mindsweeper.full.jpg -soratami_mirror_guard.jpg http://[server]/CHK/Soratami%20Mirror-Guard.full.jpg -soratami_mirror_mage.jpg http://[server]/CHK/Soratami%20Mirror-Mage.full.jpg -soratami_rainshaper.jpg http://[server]/CHK/Soratami%20Rainshaper.full.jpg -soratami_savant.jpg http://[server]/CHK/Soratami%20Savant.full.jpg -soratami_seer.jpg http://[server]/CHK/Soratami%20Seer.full.jpg -soraya_the_falconer.jpg http://[server]/HL/Soraya%20the%20Falconer.full.jpg -sorceress_queen.jpg http://[server]/5E/Sorceress%20Queen.full.jpg -sorcerous_sight.jpg http://[server]/PT/Sorcerous%20Sight.full.jpg -sorin_markov.jpg http://[server]/ZEN/Sorin%20Markov.full.jpg -sorrows_path.jpg http://[server]/DK/Sorrow's%20Path.full.jpg -sorry.jpg http://[server]/UG/Sorry.full.jpg -sosuke_son_of_seshiro.jpg http://[server]/CHK/Sosuke,%20Son%20of%20Seshiro.full.jpg -sosukes_summons.jpg http://[server]/BOK/Sosuke's%20Summons.full.jpg -soul_barrier.jpg http://[server]/5E/Soul%20Barrier.full.jpg -soul_bleed.jpg http://[server]/M10/Soul%20Bleed.full.jpg -soul_burn.jpg http://[server]/IN/Soul%20Burn.full.jpg -soul_channeling.jpg http://[server]/MM/Soul%20Channeling.full.jpg -soul_charmer.jpg http://[server]/PY/Soul%20Charmer.full.jpg -soul_collector.jpg http://[server]/SC/Soul%20Collector.full.jpg -soul_echo.jpg http://[server]/MI/Soul%20Echo.full.jpg -soul_exchange.jpg http://[server]/FE/Soul%20Exchange.full.jpg -soul_feast.jpg http://[server]/10E/Soul%20Feast.full.jpg -soul_foundry.jpg http://[server]/MR/Soul%20Foundry.full.jpg -soul_kiss.jpg http://[server]/IA/Soul%20Kiss.full.jpg -soul_link.jpg http://[server]/AP/Soul%20Link.full.jpg -soul_manipulation.jpg http://[server]/ARB/Soul%20Manipulation.full.jpg -soul_net.jpg http://[server]/7E/Soul%20Net.full.jpg -soul_nova.jpg http://[server]/MR/Soul%20Nova.full.jpg -soul_of_magma.jpg http://[server]/CHK/Soul%20of%20Magma.full.jpg -soul_reap.jpg http://[server]/EVE/Soul%20Reap.full.jpg -soul_rend.jpg http://[server]/MI/Soul%20Rend.full.jpg -soul_scourge.jpg http://[server]/TO/Soul%20Scourge.full.jpg -soul_sculptor.jpg http://[server]/US/Soul%20Sculptor.full.jpg -soul_shepherd.jpg http://[server]/WL/Soul%20Shepherd.full.jpg -soul_shred.jpg http://[server]/PT/Soul%20Shred.full.jpg -soul_snuffers.jpg http://[server]/EVE/Soul%20Snuffers.full.jpg -soul_spike.jpg http://[server]/CS/Soul%20Spike.full.jpg -soul_stair_expedition.jpg http://[server]/ZEN/Soul%20Stair%20Expedition.full.jpg -soul_strings.jpg http://[server]/PY/Soul%20Strings.full.jpg -soul_warden.jpg http://[server]/M10/Soul%20Warden.full.jpg -soulblast.jpg http://[server]/10E/Soulblast.full.jpg -soulbright_flamekin.jpg http://[server]/LRW/Soulbright%20Flamekin.full.jpg -soulcatcher.jpg http://[server]/OD/Soulcatcher.full.jpg -soulcatchers_aerie.jpg http://[server]/JU/Soulcatchers'%20Aerie.full.jpg -souldrinker.jpg http://[server]/TE/Souldrinker.full.jpg -soulgorger_orgg.jpg http://[server]/JU/Soulgorger%20Orgg.full.jpg -soulless_one.jpg http://[server]/HOP/Soulless%20One.full.jpg -soulless_revival.jpg http://[server]/CHK/Soulless%20Revival.full.jpg -soulquake.jpg http://[server]/ARB/Soulquake.full.jpg -souls_fire.jpg http://[server]/ALA/Soul's%20Fire.full.jpg -souls_grace.jpg http://[server]/ALA/Soul's%20Grace.full.jpg -souls_majesty.jpg http://[server]/CFX/Soul's%20Majesty.full.jpg -souls_might.jpg http://[server]/ALA/Soul's%20Might.full.jpg -souls_of_the_faultless.jpg http://[server]/GP/Souls%20of%20the%20Faultless.full.jpg -soulscour.jpg http://[server]/DS/Soulscour.full.jpg -soulshriek.jpg http://[server]/MI/Soulshriek.full.jpg -soulsworn_jury.jpg http://[server]/DIS/Soulsworn%20Jury.full.jpg -soultether_golem.jpg http://[server]/FUT/Soultether%20Golem.full.jpg -sound_the_call.jpg http://[server]/CS/Sound%20the%20Call.full.jpg -southern_elephant.jpg http://[server]/ST/Southern%20Elephant.full.jpg -southern_paladin.jpg http://[server]/7E/Southern%20Paladin.full.jpg -sovereigns_of_lost_alara.jpg http://[server]/ARB/Sovereigns%20of%20Lost%20Alara.full.jpg -sower_of_temptation.jpg http://[server]/LRW/Sower%20of%20Temptation.full.jpg -sowing_salt.jpg http://[server]/UD/Sowing%20Salt.full.jpg -spark_elemental.jpg http://[server]/10E/Spark%20Elemental.full.jpg -spark_fiend.jpg http://[server]/UG/Spark%20Fiend.full.jpg -spark_mage.jpg http://[server]/OD/Spark%20Mage.full.jpg -spark_spray.jpg http://[server]/SC/Spark%20Spray.full.jpg -sparkcaster.jpg http://[server]/PS/Sparkcaster.full.jpg -sparkmage_apprentice.jpg http://[server]/M10/Sparkmage%20Apprentice.full.jpg -sparksmith.jpg http://[server]/ON/Sparksmith.full.jpg -sparkspitter.jpg http://[server]/FUT/Sparkspitter.full.jpg -sparring_collar.jpg http://[server]/FD/Sparring%20Collar.full.jpg -sparring_golem.jpg http://[server]/IN/Sparring%20Golem.full.jpg -spatial_binding.jpg http://[server]/MI/Spatial%20Binding.full.jpg -spatula_of_the_ages.jpg http://[server]/UG/Spatula%20of%20the%20Ages.full.jpg -spawnbroker.jpg http://[server]/RAV/Spawnbroker.full.jpg -spawning_pit.jpg http://[server]/DS/Spawning%20Pit.full.jpg -spawning_pool.jpg http://[server]/10E/Spawning%20Pool.full.jpg -spawnwrithe.jpg http://[server]/SHM/Spawnwrithe.full.jpg -spearbreaker_behemoth.jpg http://[server]/ALA/Spearbreaker%20Behemoth.full.jpg -specters_shroud.jpg http://[server]/DS/Specter's%20Shroud.full.jpg -specters_wail.jpg http://[server]/MM/Specter's%20Wail.full.jpg -spectral_bears.jpg http://[server]/AT/Spectral%20Bears.full.jpg -spectral_cloak.jpg http://[server]/LG/Spectral%20Cloak.full.jpg -spectral_force.jpg http://[server]/TSP/Spectral%20Force.full.jpg -spectral_guardian.jpg http://[server]/MI/Spectral%20Guardian.full.jpg -spectral_lynx.jpg http://[server]/AP/Spectral%20Lynx.full.jpg -spectral_procession.jpg http://[server]/SHM/Spectral%20Procession.full.jpg -spectral_searchlight.jpg http://[server]/RAV/Spectral%20Searchlight.full.jpg -spectral_shield.jpg http://[server]/IA/Spectral%20Shield.full.jpg -spectral_shift.jpg http://[server]/FD/Spectral%20Shift.full.jpg -spectral_sliver.jpg http://[server]/LE/Spectral%20Sliver.full.jpg -spell_blast.jpg http://[server]/6E/Spell%20Blast.full.jpg -spell_burst.jpg http://[server]/TSP/Spell%20Burst.full.jpg -spell_counter.jpg http://[server]/UNH/Spell%20Counter.full.jpg -spell_pierce.jpg http://[server]/ZEN/Spell%20Pierce.full.jpg -spell_snare.jpg http://[server]/DIS/Spell%20Snare.full.jpg -spell_snip.jpg http://[server]/ALA/Spell%20Snip.full.jpg -spell_syphon.jpg http://[server]/SHM/Spell%20Syphon.full.jpg -spellbane_centaur.jpg http://[server]/OD/Spellbane%20Centaur.full.jpg -spellbinder.jpg http://[server]/DS/Spellbinder.full.jpg -spellbook.jpg http://[server]/M10/Spellbook.full.jpg -spellbound_dragon.jpg http://[server]/ARB/Spellbound%20Dragon.full.jpg -spellbreaker_behemoth.jpg http://[server]/ARB/Spellbreaker%20Behemoth.full.jpg -spellgorger_barbarian.jpg http://[server]/JU/Spellgorger%20Barbarian.full.jpg -spelljack.jpg http://[server]/JU/Spelljack.full.jpg -spellshift.jpg http://[server]/PLC/Spellshift.full.jpg -spellshock.jpg http://[server]/EX/Spellshock.full.jpg -spellstutter_sprite.jpg http://[server]/LRW/Spellstutter%20Sprite.full.jpg -spelltithe_enforcer.jpg http://[server]/GP/Spelltithe%20Enforcer.full.jpg -spellweaver_helix.jpg http://[server]/MR/Spellweaver%20Helix.full.jpg -spellweaver_volute.jpg http://[server]/FUT/Spellweaver%20Volute.full.jpg -spellwild_ouphe.jpg http://[server]/FUT/Spellwild%20Ouphe.full.jpg -sphere_of_duty.jpg http://[server]/OD/Sphere%20of%20Duty.full.jpg -sphere_of_grace.jpg http://[server]/OD/Sphere%20of%20Grace.full.jpg -sphere_of_law.jpg http://[server]/OD/Sphere%20of%20Law.full.jpg -sphere_of_purity.jpg http://[server]/MR/Sphere%20of%20Purity.full.jpg -sphere_of_reason.jpg http://[server]/OD/Sphere%20of%20Reason.full.jpg -sphere_of_resistance.jpg http://[server]/EX/Sphere%20of%20Resistance.full.jpg -sphere_of_truth.jpg http://[server]/OD/Sphere%20of%20Truth.full.jpg -sphinx_ambassador.jpg http://[server]/M10/Sphinx%20Ambassador.full.jpg -sphinx_of_jwar_isle.jpg http://[server]/ZEN/Sphinx%20of%20Jwar%20Isle.full.jpg -sphinx_of_lost_truths.jpg http://[server]/ZEN/Sphinx%20of%20Lost%20Truths.full.jpg -sphinx_of_the_steel_wind.jpg http://[server]/ARB/Sphinx%20of%20the%20Steel%20Wind.full.jpg -sphinx_sovereign.jpg http://[server]/ALA/Sphinx%20Sovereign.full.jpg -sphinx_summoner.jpg http://[server]/CFX/Sphinx%20Summoner.full.jpg -sphinxs_herald.jpg http://[server]/ALA/Sphinx's%20Herald.full.jpg -spider_climb.jpg http://[server]/VI/Spider%20Climb.full.jpg -spidersilk_armor.jpg http://[server]/MM/Spidersilk%20Armor.full.jpg -spidersilk_net.jpg http://[server]/ZEN/Spidersilk%20Net.full.jpg -spiderwig_boggart.jpg http://[server]/LRW/Spiderwig%20Boggart.full.jpg -spike_breeder.jpg http://[server]/SH/Spike%20Breeder.full.jpg -spike_cannibal.jpg http://[server]/EX/Spike%20Cannibal.full.jpg -spike_colony.jpg http://[server]/SH/Spike%20Colony.full.jpg -spike_drone.jpg http://[server]/TE/Spike%20Drone.full.jpg -spike_feeder.jpg http://[server]/SH/Spike%20Feeder.full.jpg -spike_hatcher.jpg http://[server]/EX/Spike%20Hatcher.full.jpg -spike_rogue.jpg http://[server]/EX/Spike%20Rogue.full.jpg -spike_soldier.jpg http://[server]/SH/Spike%20Soldier.full.jpg -spike_tiller.jpg http://[server]/TSP/Spike%20Tiller.full.jpg -spike_weaver.jpg http://[server]/EX/Spike%20Weaver.full.jpg -spike_worker.jpg http://[server]/SH/Spike%20Worker.full.jpg -spikeshot_goblin.jpg http://[server]/MR/Spikeshot%20Goblin.full.jpg -spiketail_drake.jpg http://[server]/PY/Spiketail%20Drake.full.jpg -spiketail_drakeling.jpg http://[server]/TSP/Spiketail%20Drakeling.full.jpg -spiketail_hatchling.jpg http://[server]/10E/Spiketail%20Hatchling.full.jpg -spin_into_myth.jpg http://[server]/FUT/Spin%20into%20Myth.full.jpg -spinal_embrace.jpg http://[server]/IN/Spinal%20Embrace.full.jpg -spinal_graft.jpg http://[server]/TE/Spinal%20Graft.full.jpg -spinal_parasite.jpg http://[server]/FD/Spinal%20Parasite.full.jpg -spinal_villain.jpg http://[server]/LG/Spinal%20Villain.full.jpg -spincrusher.jpg http://[server]/DS/Spincrusher.full.jpg -spindrift_drake.jpg http://[server]/SH/Spindrift%20Drake.full.jpg -spined_basher.jpg http://[server]/ON/Spined%20Basher.full.jpg -spined_fluke.jpg http://[server]/US/Spined%20Fluke.full.jpg -spined_sliver.jpg http://[server]/SH/Spined%20Sliver.full.jpg -spined_wurm.jpg http://[server]/10E/Spined%20Wurm.full.jpg -spineless_thug.jpg http://[server]/10E/Spineless%20Thug.full.jpg -spinerock_knoll.jpg http://[server]/LRW/Spinerock%20Knoll.full.jpg -spinneret_sliver.jpg http://[server]/TSP/Spinneret%20Sliver.full.jpg -spinning_darkness.jpg http://[server]/WL/Spinning%20Darkness.full.jpg -spiny_starfish.jpg http://[server]/AL/Spiny%20Starfish.full.jpg -spiraling_embers.jpg http://[server]/SOK/Spiraling%20Embers.full.jpg -spire_barrage.jpg http://[server]/ZEN/Spire%20Barrage.full.jpg -spire_golem.jpg http://[server]/DS/Spire%20Golem.full.jpg -spire_owl.jpg http://[server]/US/Spire%20Owl.full.jpg -spirit_cairn.jpg http://[server]/JU/Spirit%20Cairn.full.jpg -spirit_en_dal.jpg http://[server]/FUT/Spirit%20en-Dal.full.jpg -spirit_en_kor.jpg http://[server]/SH/Spirit%20en-Kor.full.jpg -spirit_flare.jpg http://[server]/TO/Spirit%20Flare.full.jpg -spirit_link.jpg http://[server]/10E/Spirit%20Link.full.jpg -spirit_loop.jpg http://[server]/TSP/Spirit%20Loop.full.jpg -spirit_mirror.jpg http://[server]/TE/Spirit%20Mirror.full.jpg -spirit_of_resistance.jpg http://[server]/IN/Spirit%20of%20Resistance.full.jpg -spirit_of_the_hearth.jpg http://[server]/EVE/Spirit%20of%20the%20Hearth.full.jpg -spirit_of_the_night.jpg http://[server]/MI/Spirit%20of%20the%20Night.full.jpg -spirit_shackle.jpg http://[server]/4E/Spirit%20Shackle.full.jpg -spirit_shield.jpg http://[server]/FE/Spirit%20Shield.full.jpg -spirit_weaver.jpg http://[server]/10E/Spirit%20Weaver.full.jpg -spiritmonger.jpg http://[server]/AP/Spiritmonger.full.jpg -spiritual_asylum.jpg http://[server]/NE/Spiritual%20Asylum.full.jpg -spiritual_focus.jpg http://[server]/MM/Spiritual%20Focus.full.jpg -spiritual_guardian.jpg http://[server]/PT/Spiritual%20Guardian.full.jpg -spiritual_sanctuary.jpg http://[server]/LG/Spiritual%20Sanctuary.full.jpg -spiritual_visit.jpg http://[server]/SOK/Spiritual%20Visit.full.jpg -spiritualize.jpg http://[server]/OD/Spiritualize.full.jpg -spitebellows.jpg http://[server]/MOR/Spitebellows.full.jpg -spiteflame_witch.jpg http://[server]/SHM/Spiteflame%20Witch.full.jpg -spiteful_bully.jpg http://[server]/NE/Spiteful%20Bully.full.jpg -spiteful_visions.jpg http://[server]/SHM/Spiteful%20Visions.full.jpg -spitemalice.jpg http://[server]/IN/SpiteMalice.full.jpg -spitemare.jpg http://[server]/EVE/Spitemare.full.jpg -spitfire_handler.jpg http://[server]/ON/Spitfire%20Handler.full.jpg -spitting_drake.jpg http://[server]/6E/Spitting%20Drake.full.jpg -spitting_earth.jpg http://[server]/10E/Spitting%20Earth.full.jpg -spitting_gourna.jpg http://[server]/ON/Spitting%20Gourna.full.jpg -spitting_hydra.jpg http://[server]/SH/Spitting%20Hydra.full.jpg -spitting_image.jpg http://[server]/EVE/Spitting%20Image.full.jpg -spitting_sliver.jpg http://[server]/PLC/Spitting%20Sliver.full.jpg -spitting_slug.jpg http://[server]/DK/Spitting%20Slug.full.jpg -spitting_spider.jpg http://[server]/8E/Spitting%20Spider.full.jpg -splendid_genesis.jpg http://[server]/PR/Splendid%20Genesis.full.jpg -splinter.jpg http://[server]/UD/Splinter.full.jpg -splintering_wind.jpg http://[server]/AL/Splintering%20Wind.full.jpg -split_tail_miko.jpg http://[server]/BOK/Split-Tail%20Miko.full.jpg -splitting_headache.jpg http://[server]/SHM/Splitting%20Headache.full.jpg -spoils_of_evil.jpg http://[server]/IA/Spoils%20of%20Evil.full.jpg -spoils_of_the_vault.jpg http://[server]/MR/Spoils%20of%20the%20Vault.full.jpg -spoils_of_victory.jpg http://[server]/P3/Spoils%20of%20Victory.full.jpg -spoils_of_war.jpg http://[server]/IA/Spoils%20of%20War.full.jpg -spontaneous_combustion.jpg http://[server]/TE/Spontaneous%20Combustion.full.jpg -spontaneous_generation.jpg http://[server]/MM/Spontaneous%20Generation.full.jpg -spore_burst.jpg http://[server]/CFX/Spore%20Burst.full.jpg -spore_cloud.jpg http://[server]/FE/Spore%20Cloud1.full.jpg -spore_flower.jpg http://[server]/FE/Spore%20Flower.full.jpg -spore_frog.jpg http://[server]/PY/Spore%20Frog.full.jpg -sporeback_troll.jpg http://[server]/DIS/Sporeback%20Troll.full.jpg -sporesower_thallid.jpg http://[server]/TSP/Sporesower%20Thallid.full.jpg -sporogenesis.jpg http://[server]/US/Sporogenesis.full.jpg -sporoloth_ancient.jpg http://[server]/FUT/Sporoloth%20Ancient.full.jpg -spotted_griffin.jpg http://[server]/PT/Spotted%20Griffin.full.jpg -spreading_algae.jpg http://[server]/8E/Spreading%20Algae.full.jpg -spreading_plague.jpg http://[server]/IN/Spreading%20Plague.full.jpg -spreading_seas.jpg http://[server]/ZEN/Spreading%20Seas.full.jpg -spring_cleaning.jpg http://[server]/LRW/Spring%20Cleaning.full.jpg -spring_of_eternal_peace.jpg http://[server]/P3/Spring%20of%20Eternal%20Peace.full.jpg -springing_tiger.jpg http://[server]/OD/Springing%20Tiger.full.jpg -springjack_knight.jpg http://[server]/LRW/Springjack%20Knight.full.jpg -springjack_pasture.jpg http://[server]/EVE/Springjack%20Pasture.full.jpg -springjack_shepherd.jpg http://[server]/EVE/Springjack%20Shepherd.full.jpg -springleaf_drum.jpg http://[server]/LRW/Springleaf%20Drum.full.jpg -sprite_noble.jpg http://[server]/TSP/Sprite%20Noble.full.jpg -sprout.jpg http://[server]/TSP/Sprout.full.jpg -sprout_swarm.jpg http://[server]/FUT/Sprout%20Swarm.full.jpg -sprouting_phytohydra.jpg http://[server]/DIS/Sprouting%20Phytohydra.full.jpg -sprouting_thrinax.jpg http://[server]/ALA/Sprouting%20Thrinax.full.jpg -sprouting_vines.jpg http://[server]/SC/Sprouting%20Vines.full.jpg -spur_grappler.jpg http://[server]/PY/Spur%20Grappler.full.jpg -spurnmage_advocate.jpg http://[server]/JU/Spurnmage%20Advocate.full.jpg -spurred_wolverine.jpg http://[server]/ON/Spurred%20Wolverine.full.jpg -spy_network.jpg http://[server]/ON/Spy%20Network.full.jpg -squall.jpg http://[server]/7E/Squall.full.jpg -squall_drifter.jpg http://[server]/CS/Squall%20Drifter.full.jpg -squall_line.jpg http://[server]/TSP/Squall%20Line.full.jpg -squallmonger.jpg http://[server]/MM/Squallmonger.full.jpg -squandered_resources.jpg http://[server]/VI/Squandered%20Resources.full.jpg -squeaking_pie_grubfellows.jpg http://[server]/MOR/Squeaking%20Pie%20Grubfellows.full.jpg -squeaking_pie_sneak.jpg http://[server]/LRW/Squeaking%20Pie%20Sneak.full.jpg -squealing_devil.jpg http://[server]/DIS/Squealing%20Devil.full.jpg -squee.jpg http://[server]/VG/Squee.full.jpg -squee_goblin_nabob.jpg http://[server]/10E/Squee,%20Goblin%20Nabob.full.jpg -squees_embrace.jpg http://[server]/AP/Squee's%20Embrace.full.jpg -squees_revenge.jpg http://[server]/AP/Squee's%20Revenge.full.jpg -squees_toy.jpg http://[server]/TE/Squee's%20Toy.full.jpg -squeeze.jpg http://[server]/MM/Squeeze.full.jpg -squelch.jpg http://[server]/CHK/Squelch.full.jpg -squire.jpg http://[server]/DK/Squire.full.jpg -squirming_mass.jpg http://[server]/UD/Squirming%20Mass.full.jpg -squirrel.jpg http://[server]/UG/Squirrel.full.jpg -squirrel_farm.jpg http://[server]/UG/Squirrel%20Farm.full.jpg -squirrel_mob.jpg http://[server]/OD/Squirrel%20Mob.full.jpg -squirrel_nest.jpg http://[server]/OD/Squirrel%20Nest.full.jpg -squirrel_wrangler.jpg http://[server]/PY/Squirrel%20Wrangler.full.jpg -stabilizer.jpg http://[server]/SC/Stabilizer.full.jpg -staff_of_domination.jpg http://[server]/FD/Staff%20of%20Domination.full.jpg -staff_of_the_ages.jpg http://[server]/IA/Staff%20of%20the%20Ages.full.jpg -staff_of_zegon.jpg http://[server]/AQ/Staff%20of%20Zegon.full.jpg -stag_beetle.jpg http://[server]/ON/Stag%20Beetle.full.jpg -stalker_hag.jpg http://[server]/EVE/Stalker%20Hag.full.jpg -stalking_assassin.jpg http://[server]/IN/Stalking%20Assassin.full.jpg -stalking_bloodsucker.jpg http://[server]/OD/Stalking%20Bloodsucker.full.jpg -stalking_stones.jpg http://[server]/TE/Stalking%20Stones.full.jpg -stalking_tiger.jpg http://[server]/10E/Stalking%20Tiger.full.jpg -stalking_vengeance.jpg http://[server]/DIS/Stalking%20Vengeance.full.jpg -stalking_yeti.jpg http://[server]/CS/Stalking%20Yeti.full.jpg -stamina.jpg http://[server]/MM/Stamina.full.jpg -stampede.jpg http://[server]/5E/Stampede.full.jpg -stampede_driver.jpg http://[server]/NE/Stampede%20Driver.full.jpg -stampeding_rhino.jpg http://[server]/M10/Stampeding%20Rhino.full.jpg -stampeding_serow.jpg http://[server]/SOK/Stampeding%20Serow.full.jpg -stampeding_wildebeests.jpg http://[server]/10E/Stampeding%20Wildebeests.full.jpg -stand_firm.jpg http://[server]/FD/Stand%20Firm.full.jpg -stand_or_fall.jpg http://[server]/IN/Stand%20or%20Fall.full.jpg -stand_together.jpg http://[server]/DS/Stand%20Together.full.jpg -standard_bearer.jpg http://[server]/AP/Standard%20Bearer.full.jpg -standardize.jpg http://[server]/ON/Standardize.full.jpg -standdeliver.jpg http://[server]/IN/StandDeliver.full.jpg -standing_army.jpg http://[server]/UNH/Standing%20Army.full.jpg -standing_stones.jpg http://[server]/DK/Standing%20Stones.full.jpg -standing_troops.jpg http://[server]/8E/Standing%20Troops.full.jpg -standstill.jpg http://[server]/OD/Standstill.full.jpg -stangg.jpg http://[server]/LG/Stangg.full.jpg -star_compass.jpg http://[server]/8E/Star%20Compass.full.jpg -starke.jpg http://[server]/VG/Starke.full.jpg -starke_of_rath.jpg http://[server]/TE/Starke%20of%20Rath.full.jpg -starlight.jpg http://[server]/7E/Starlight.full.jpg -starlight_invoker.jpg http://[server]/10E/Starlight%20Invoker.full.jpg -starlit_angel.jpg http://[server]/PT/Starlit%20Angel.full.jpg -starlit_sanctum.jpg http://[server]/ON/Starlit%20Sanctum.full.jpg -starstorm.jpg http://[server]/ON/Starstorm.full.jpg -starved_rusalka.jpg http://[server]/GP/Starved%20Rusalka.full.jpg -stasis.jpg http://[server]/5E/Stasis.full.jpg -stasis_cell.jpg http://[server]/RAV/Stasis%20Cell.full.jpg -stasis_cocoon.jpg http://[server]/FD/Stasis%20Cocoon.full.jpg -statecraft.jpg http://[server]/MM/Statecraft.full.jpg -static_orb.jpg http://[server]/7E/Static%20Orb.full.jpg -staunch_defenders.jpg http://[server]/8E/Staunch%20Defenders.full.jpg -staying_power.jpg http://[server]/UNH/Staying%20Power.full.jpg -steadfast_guard.jpg http://[server]/10E/Steadfast%20Guard.full.jpg -steadfastness.jpg http://[server]/PT/Steadfastness.full.jpg -steal_artifact.jpg http://[server]/8E/Steal%20Artifact.full.jpg -steal_enchantment.jpg http://[server]/TE/Steal%20Enchantment.full.jpg -steal_strength.jpg http://[server]/PY/Steal%20Strength.full.jpg -steam_blast.jpg http://[server]/US/Steam%20Blast.full.jpg -steam_catapult.jpg http://[server]/P2/Steam%20Catapult.full.jpg -steam_frigate.jpg http://[server]/P2/Steam%20Frigate.full.jpg -steam_spitter.jpg http://[server]/CS/Steam%20Spitter.full.jpg -steam_vents.jpg http://[server]/GP/Steam%20Vents.full.jpg -steam_vines.jpg http://[server]/OD/Steam%20Vines.full.jpg -steamclaw.jpg http://[server]/OD/Steamclaw.full.jpg -steamcore_weird.jpg http://[server]/GP/Steamcore%20Weird.full.jpg -steamflogger_boss.jpg http://[server]/FUT/Steamflogger%20Boss.full.jpg -steel_golem.jpg http://[server]/10E/Steel%20Golem.full.jpg -steel_leaf_paladin.jpg http://[server]/PS/Steel%20Leaf%20Paladin.full.jpg -steel_of_the_godhead.jpg http://[server]/SHM/Steel%20of%20the%20Godhead.full.jpg -steel_wall.jpg http://[server]/MR/Steel%20Wall.full.jpg -steelclad_serpent.jpg http://[server]/ALA/Steelclad%20Serpent.full.jpg -steeling_stance.jpg http://[server]/DIS/Steeling%20Stance.full.jpg -steelshaper_apprentice.jpg http://[server]/DS/Steelshaper%20Apprentice.full.jpg -steelshapers_gift.jpg http://[server]/FD/Steelshaper's%20Gift.full.jpg -steely_resolve.jpg http://[server]/ON/Steely%20Resolve.full.jpg -stench_of_decay.jpg http://[server]/AL/Stench%20of%20Decay1.full.jpg -stench_of_evil.jpg http://[server]/IA/Stench%20of%20Evil.full.jpg -stenchskipper.jpg http://[server]/MOR/Stenchskipper.full.jpg -steppe_lynx.jpg http://[server]/ZEN/Steppe%20Lynx.full.jpg -sterling_grove.jpg http://[server]/IN/Sterling%20Grove.full.jpg -stern_judge.jpg http://[server]/TO/Stern%20Judge.full.jpg -stern_marshal.jpg http://[server]/PT/Stern%20Marshal.full.jpg -stern_proctor.jpg http://[server]/US/Stern%20Proctor.full.jpg -steward_of_valeron.jpg http://[server]/ALA/Steward%20of%20Valeron.full.jpg -stifle.jpg http://[server]/SC/Stifle.full.jpg -stigma_lasher.jpg http://[server]/EVE/Stigma%20Lasher.full.jpg -still_life.jpg http://[server]/OD/Still%20Life.full.jpg -stillmoon_cavalier.jpg http://[server]/EVE/Stillmoon%20Cavalier.full.jpg -stinging_barrier.jpg http://[server]/MM/Stinging%20Barrier.full.jpg -stinging_licid.jpg http://[server]/TE/Stinging%20Licid.full.jpg -stingmoggie.jpg http://[server]/MOR/Stingmoggie.full.jpg -stingscourger.jpg http://[server]/PLC/Stingscourger.full.jpg -stinkdrinker_bandit.jpg http://[server]/MOR/Stinkdrinker%20Bandit.full.jpg -stinkdrinker_daredevil.jpg http://[server]/LRW/Stinkdrinker%20Daredevil.full.jpg -stinkweed_imp.jpg http://[server]/RAV/Stinkweed%20Imp.full.jpg -stir_the_grave.jpg http://[server]/BOK/Stir%20the%20Grave.full.jpg -stir_the_pride.jpg http://[server]/DS/Stir%20the%20Pride.full.jpg -stitch_in_time.jpg http://[server]/GP/Stitch%20in%20Time.full.jpg -stitch_together.jpg http://[server]/JU/Stitch%20Together.full.jpg -stoic_angel.jpg http://[server]/ALA/Stoic%20Angel.full.jpg -stoic_champion.jpg http://[server]/LE/Stoic%20Champion.full.jpg -stoic_ephemera.jpg http://[server]/DIS/Stoic%20Ephemera.full.jpg -stolen_grain.jpg http://[server]/P3/Stolen%20Grain.full.jpg -stomp_and_howl.jpg http://[server]/DIS/Stomp%20and%20Howl.full.jpg -stomping_ground.jpg http://[server]/GP/Stomping%20Ground.full.jpg -stomping_slabs.jpg http://[server]/MOR/Stomping%20Slabs.full.jpg -stone_calendar.jpg http://[server]/DK/Stone%20Calendar.full.jpg -stone_catapult.jpg http://[server]/P3/Stone%20Catapult.full.jpg -stone_cold_basilisk.jpg http://[server]/UNH/Stone-Cold%20Basilisk.full.jpg -stone_giant.jpg http://[server]/M10/Stone%20Giant.full.jpg -stone_kavu.jpg http://[server]/PS/Stone%20Kavu.full.jpg -stone_rain.jpg http://[server]/9E/Stone%20Rain.full.jpg -stone_seeder_hierophant.jpg http://[server]/RAV/Stone-Seeder%20Hierophant.full.jpg -stone_spirit.jpg http://[server]/5E/Stone%20Spirit.full.jpg -stone_throwing_devils.jpg http://[server]/AN/Stone-Throwing%20Devils1.full.jpg -stone_tongue_basilisk.jpg http://[server]/OD/Stone-Tongue%20Basilisk.full.jpg -stonebrow_krosan_hero.jpg http://[server]/TSP/Stonebrow,%20Krosan%20Hero.full.jpg -stonecloaker.jpg http://[server]/PLC/Stonecloaker.full.jpg -stonehands.jpg http://[server]/IA/Stonehands.full.jpg -stonehewer_giant.jpg http://[server]/MOR/Stonehewer%20Giant.full.jpg -stoneshaker_shaman.jpg http://[server]/RAV/Stoneshaker%20Shaman.full.jpg -stonewood_invocation.jpg http://[server]/TSP/Stonewood%20Invocation.full.jpg -stonewood_invoker.jpg http://[server]/LE/Stonewood%20Invoker.full.jpg -stonework_puma.jpg http://[server]/ZEN/Stonework%20Puma.full.jpg -stonybrook_angler.jpg http://[server]/LRW/Stonybrook%20Angler.full.jpg -stonybrook_banneret.jpg http://[server]/MOR/Stonybrook%20Banneret.full.jpg -stonybrook_schoolmaster.jpg http://[server]/MOR/Stonybrook%20Schoolmaster.full.jpg -stop_that.jpg http://[server]/UNH/Stop%20That.full.jpg -storage_matrix.jpg http://[server]/9E/Storage%20Matrix.full.jpg -storm_cauldron.jpg http://[server]/7E/Storm%20Cauldron.full.jpg -storm_crow.jpg http://[server]/9E/Storm%20Crow.full.jpg -storm_elemental.jpg http://[server]/AL/Storm%20Elemental.full.jpg -storm_entity.jpg http://[server]/FUT/Storm%20Entity.full.jpg -storm_front.jpg http://[server]/TE/Storm%20Front.full.jpg -storm_herd.jpg http://[server]/GP/Storm%20Herd.full.jpg -storm_seeker.jpg http://[server]/LG/Storm%20Seeker.full.jpg -storm_shaman.jpg http://[server]/7E/Storm%20Shaman.full.jpg -storm_spirit.jpg http://[server]/IA/Storm%20Spirit.full.jpg -storm_world.jpg http://[server]/LG/Storm%20World.full.jpg -stormbind.jpg http://[server]/IA/Stormbind.full.jpg -stormcallers_boon.jpg http://[server]/ARB/Stormcaller's%20Boon.full.jpg -stormcloud_djinn.jpg http://[server]/TSP/Stormcloud%20Djinn.full.jpg -stormfront_pegasus.jpg http://[server]/M10/Stormfront%20Pegasus.full.jpg -stormfront_riders.jpg http://[server]/PLC/Stormfront%20Riders.full.jpg -stormscale_anarch.jpg http://[server]/DIS/Stormscale%20Anarch.full.jpg -stormscape_apprentice.jpg http://[server]/IN/Stormscape%20Apprentice.full.jpg -stormscape_battlemage.jpg http://[server]/PS/Stormscape%20Battlemage.full.jpg -stormscape_familiar.jpg http://[server]/PS/Stormscape%20Familiar.full.jpg -stormscape_master.jpg http://[server]/IN/Stormscape%20Master.full.jpg -stormwatch_eagle.jpg http://[server]/PY/Stormwatch%20Eagle.full.jpg -story_circle.jpg http://[server]/10E/Story%20Circle.full.jpg -strafe.jpg http://[server]/PS/Strafe.full.jpg -strands_of_night.jpg http://[server]/7E/Strands%20of%20Night.full.jpg -strands_of_undeath.jpg http://[server]/RAV/Strands%20of%20Undeath.full.jpg -strange_inversion.jpg http://[server]/CHK/Strange%20Inversion.full.jpg -strangling_soot.jpg http://[server]/TSP/Strangling%20Soot.full.jpg -stratadon.jpg http://[server]/PS/Stratadon.full.jpg -strategic_planning.jpg http://[server]/P3/Strategic%20Planning.full.jpg -strategy_schmategy.jpg http://[server]/UG/Strategy,%20Schmategy.full.jpg -stratozeppelid.jpg http://[server]/GP/Stratozeppelid.full.jpg -straw_golem.jpg http://[server]/WL/Straw%20Golem.full.jpg -straw_soldiers.jpg http://[server]/P3/Straw%20Soldiers.full.jpg -stream_hopper.jpg http://[server]/EVE/Stream%20Hopper.full.jpg -stream_of_acid.jpg http://[server]/ST/Stream%20of%20Acid.full.jpg -stream_of_consciousness.jpg http://[server]/BOK/Stream%20of%20Consciousness.full.jpg -stream_of_life.jpg http://[server]/9E/Stream%20of%20Life.full.jpg -stream_of_unconsciousness.jpg http://[server]/MOR/Stream%20of%20Unconsciousness.full.jpg -streambed_aquitects.jpg http://[server]/LRW/Streambed%20Aquitects.full.jpg -street_savvy.jpg http://[server]/DIS/Street%20Savvy.full.jpg -street_wraith.jpg http://[server]/FUT/Street%20Wraith.full.jpg -streetbreaker_wurm.jpg http://[server]/GP/Streetbreaker%20Wurm.full.jpg -strength_in_numbers.jpg http://[server]/TSP/Strength%20in%20Numbers.full.jpg -strength_of_cedars.jpg http://[server]/CHK/Strength%20of%20Cedars.full.jpg -strength_of_isolation.jpg http://[server]/TO/Strength%20of%20Isolation.full.jpg -strength_of_lunacy.jpg http://[server]/TO/Strength%20of%20Lunacy.full.jpg -strength_of_night.jpg http://[server]/AP/Strength%20of%20Night.full.jpg -strength_of_unity.jpg http://[server]/IN/Strength%20of%20Unity.full.jpg -strip_bare.jpg http://[server]/SHM/Strip%20Bare.full.jpg -strip_mine.jpg http://[server]/4E/Strip%20Mine.full.jpg -striped_bears.jpg http://[server]/WL/Striped%20Bears.full.jpg -stroke_of_genius.jpg http://[server]/US/Stroke%20of%20Genius.full.jpg -stromgald_cabal.jpg http://[server]/6E/Stromgald%20Cabal.full.jpg -stromgald_crusader.jpg http://[server]/CS/Stromgald%20Crusader.full.jpg -stromgald_spy.jpg http://[server]/AL/Stromgald%20Spy.full.jpg -strongarm_tactics.jpg http://[server]/ON/Strongarm%20Tactics.full.jpg -strongarm_thug.jpg http://[server]/MM/Strongarm%20Thug.full.jpg -stronghold_assassin.jpg http://[server]/7E/Stronghold%20Assassin.full.jpg -stronghold_biologist.jpg http://[server]/NE/Stronghold%20Biologist.full.jpg -stronghold_discipline.jpg http://[server]/10E/Stronghold%20Discipline.full.jpg -stronghold_gambit.jpg http://[server]/NE/Stronghold%20Gambit.full.jpg -stronghold_machinist.jpg http://[server]/NE/Stronghold%20Machinist.full.jpg -stronghold_overseer.jpg http://[server]/TSP/Stronghold%20Overseer.full.jpg -stronghold_rats.jpg http://[server]/FUT/Stronghold%20Rats.full.jpg -stronghold_taskmaster.jpg http://[server]/SH/Stronghold%20Taskmaster.full.jpg -stronghold_zeppelin.jpg http://[server]/NE/Stronghold%20Zeppelin.full.jpg -struggle_for_sanity.jpg http://[server]/CHK/Struggle%20for%20Sanity.full.jpg -student_of_elements.jpg http://[server]/CHK/Student%20of%20Elements.full.jpg -stuffy_doll.jpg http://[server]/TSP/Stuffy%20Doll.full.jpg -stun.jpg http://[server]/10E/Stun.full.jpg -stun_sniper.jpg http://[server]/ARB/Stun%20Sniper.full.jpg -stunted_growth.jpg http://[server]/IA/Stunted%20Growth.full.jpg -stupefying_touch.jpg http://[server]/TO/Stupefying%20Touch.full.jpg -stupor.jpg http://[server]/6E/Stupor.full.jpg -sturdy_hatchling.jpg http://[server]/EVE/Sturdy%20Hatchling.full.jpg -su_chi.jpg http://[server]/AQ/Su-Chi.full.jpg -subdue.jpg http://[server]/LG/Subdue.full.jpg -submerge.jpg http://[server]/NE/Submerge.full.jpg -subterranean_hangar.jpg http://[server]/MM/Subterranean%20Hangar.full.jpg -subterranean_shambler.jpg http://[server]/TSP/Subterranean%20Shambler.full.jpg -subterranean_spirit.jpg http://[server]/MI/Subterranean%20Spirit.full.jpg -subversion.jpg http://[server]/UL/Subversion.full.jpg -sudden_death.jpg http://[server]/TSP/Sudden%20Death.full.jpg -sudden_impact.jpg http://[server]/10E/Sudden%20Impact.full.jpg -sudden_shock.jpg http://[server]/REL/Sudden%20Shock.full.jpg -sudden_spoiling.jpg http://[server]/TSP/Sudden%20Spoiling.full.jpg -sudden_strength.jpg http://[server]/JU/Sudden%20Strength.full.jpg -suffocating_blast.jpg http://[server]/AP/Suffocating%20Blast.full.jpg -suffocation.jpg http://[server]/AL/Suffocation.full.jpg -suicidal_charge.jpg http://[server]/CFX/Suicidal%20Charge.full.jpg -sulam_djinn.jpg http://[server]/IN/Sulam%20Djinn.full.jpg -suleimans_legacy.jpg http://[server]/VI/Suleiman's%20Legacy.full.jpg -sulfur_elemental.jpg http://[server]/PLC/Sulfur%20Elemental.full.jpg -sulfur_vent.jpg http://[server]/IN/Sulfur%20Vent.full.jpg -sulfuric_vapors.jpg http://[server]/US/Sulfuric%20Vapors.full.jpg -sulfuric_vortex.jpg http://[server]/SC/Sulfuric%20Vortex.full.jpg -sulfurous_blast.jpg http://[server]/TSP/Sulfurous%20Blast.full.jpg -sulfurous_springs.jpg http://[server]/10E/Sulfurous%20Springs.full.jpg -summer_bloom.jpg http://[server]/9E/Summer%20Bloom.full.jpg -summon_the_school.jpg http://[server]/LRW/Summon%20the%20School.full.jpg -summoners_bane.jpg http://[server]/ZEN/Summoner's%20Bane.full.jpg -summoners_egg.jpg http://[server]/FD/Summoner's%20Egg.full.jpg -summoners_pact.jpg http://[server]/FUT/Summoner's%20Pact.full.jpg -summoning_station.jpg http://[server]/FD/Summoning%20Station.full.jpg -summoning_trap.jpg http://[server]/ZEN/Summoning%20Trap.full.jpg -sun_ce_young_conquerer.jpg http://[server]/P3/Sun%20Ce,%20Young%20Conquerer.full.jpg -sun_clasp.jpg http://[server]/VI/Sun%20Clasp.full.jpg -sun_droplet.jpg http://[server]/MR/Sun%20Droplet.full.jpg -sun_quan_lord_of_wu.jpg http://[server]/P3/Sun%20Quan,%20Lord%20of%20Wu.full.jpg -sunastian_falconer.jpg http://[server]/LG/Sunastian%20Falconer.full.jpg -sunbeam_spellbomb.jpg http://[server]/MR/Sunbeam%20Spellbomb.full.jpg -suncrusher.jpg http://[server]/FD/Suncrusher.full.jpg -sunder.jpg http://[server]/US/Sunder.full.jpg -sunder_from_within.jpg http://[server]/SOK/Sunder%20from%20Within.full.jpg -sundering_titan.jpg http://[server]/DS/Sundering%20Titan.full.jpg -sundering_vitae.jpg http://[server]/RAV/Sundering%20Vitae.full.jpg -sunfire_balm.jpg http://[server]/ON/Sunfire%20Balm.full.jpg -sunflare_shaman.jpg http://[server]/MOR/Sunflare%20Shaman.full.jpg -sunforger.jpg http://[server]/RAV/Sunforger.full.jpg -sunglasses_of_urza.jpg http://[server]/4E/Sunglasses%20of%20Urza.full.jpg -sungrass_egg.jpg http://[server]/OD/Sungrass%20Egg.full.jpg -sungrass_prairie.jpg http://[server]/OD/Sungrass%20Prairie.full.jpg -sunhome_enforcer.jpg http://[server]/RAV/Sunhome%20Enforcer.full.jpg -sunhome_fortress_of_the_legion.jpg http://[server]/HOP/Sunhome,%20Fortress%20of%20the%20Legion.full.jpg -sunken_city.jpg http://[server]/4E/Sunken%20City.full.jpg -sunken_field.jpg http://[server]/PY/Sunken%20Field.full.jpg -sunken_hope.jpg http://[server]/10E/Sunken%20Hope.full.jpg -sunken_ruins.jpg http://[server]/SHM/Sunken%20Ruins.full.jpg -sunlance.jpg http://[server]/PLC/Sunlance.full.jpg -sunpetal_grove.jpg http://[server]/M10/Sunpetal%20Grove.full.jpg -sunrise_sovereign.jpg http://[server]/LRW/Sunrise%20Sovereign.full.jpg -suns_bounty.jpg http://[server]/CS/Sun's%20Bounty.full.jpg -sunscape_apprentice.jpg http://[server]/IN/Sunscape%20Apprentice.full.jpg -sunscape_battlemage.jpg http://[server]/PS/Sunscape%20Battlemage.full.jpg -sunscape_familiar.jpg http://[server]/PS/Sunscape%20Familiar.full.jpg -sunscape_master.jpg http://[server]/IN/Sunscape%20Master.full.jpg -sunscour.jpg http://[server]/CS/Sunscour.full.jpg -sunseed_nurturer.jpg http://[server]/ALA/Sunseed%20Nurturer.full.jpg -sunspring_expedition.jpg http://[server]/ZEN/Sunspring%20Expedition.full.jpg -sunstone.jpg http://[server]/IA/Sunstone.full.jpg -sunstrike_legionnaire.jpg http://[server]/LE/Sunstrike%20Legionnaire.full.jpg -suntail_hawk.jpg http://[server]/10E/Suntail%20Hawk.full.jpg -suntouched_myr.jpg http://[server]/FD/Suntouched%20Myr.full.jpg -sunweb.jpg http://[server]/8E/Sunweb.full.jpg -super_secret_tech.jpg http://[server]/UNH/Super%20Secret%20Tech.full.jpg -superior_numbers.jpg http://[server]/MI/Superior%20Numbers.full.jpg -supersize.jpg http://[server]/UNH/Supersize.full.jpg -supplydemand.jpg http://[server]/DIS/SupplyDemand.full.jpg -suppress.jpg http://[server]/AP/Suppress.full.jpg -suppression_field.jpg http://[server]/RAV/Suppression%20Field.full.jpg -supreme_exemplar.jpg http://[server]/MOR/Supreme%20Exemplar.full.jpg -supreme_inquisitor.jpg http://[server]/ON/Supreme%20Inquisitor.full.jpg -suqata_assassin.jpg http://[server]/VI/Suq'Ata%20Assassin.full.jpg -suqata_firewalker.jpg http://[server]/MI/Suq'Ata%20Firewalker.full.jpg -suqata_lancer.jpg http://[server]/VI/Suq'Ata%20Lancer.full.jpg -surestrike_trident.jpg http://[server]/DS/Surestrike%20Trident.full.jpg -surge_of_strength.jpg http://[server]/AL/Surge%20of%20Strength.full.jpg -surge_of_thoughtweft.jpg http://[server]/LRW/Surge%20of%20Thoughtweft.full.jpg -surge_of_zeal.jpg http://[server]/RAV/Surge%20of%20Zeal.full.jpg -surgespanner.jpg http://[server]/LRW/Surgespanner.full.jpg -surging_aether.jpg http://[server]/CS/Surging%20Aether.full.jpg -surging_dementia.jpg http://[server]/CS/Surging%20Dementia.full.jpg -surging_flame.jpg http://[server]/CS/Surging%20Flame.full.jpg -surging_might.jpg http://[server]/CS/Surging%20Might.full.jpg -surging_sentinels.jpg http://[server]/CS/Surging%20Sentinels.full.jpg -surprise_deployment.jpg http://[server]/PS/Surprise%20Deployment.full.jpg -surrakar_marauder.jpg http://[server]/ZEN/Surrakar%20Marauder.full.jpg -surveilling_sprite.jpg http://[server]/RAV/Surveilling%20Sprite.full.jpg -survival_of_the_fittest.jpg http://[server]/EX/Survival%20of%20the%20Fittest.full.jpg -survivor_of_the_unseen.jpg http://[server]/CS/Survivor%20of%20the%20Unseen.full.jpg -sustainer_of_the_realm.jpg http://[server]/7E/Sustainer%20of%20the%20Realm.full.jpg -sustaining_spirit.jpg http://[server]/AL/Sustaining%20Spirit.full.jpg -sustenance.jpg http://[server]/MM/Sustenance.full.jpg -suture_spirit.jpg http://[server]/EVE/Suture%20Spirit.full.jpg -sutured_ghoul.jpg http://[server]/JU/Sutured%20Ghoul.full.jpg -svogthos_the_restless_tomb.jpg http://[server]/RAV/Svogthos,%20the%20Restless%20Tomb.full.jpg -svyelunite_priest.jpg http://[server]/FE/Svyelunite%20Priest.full.jpg -svyelunite_temple.jpg http://[server]/6E/Svyelunite%20Temple.full.jpg -swallowing_plague.jpg http://[server]/CHK/Swallowing%20Plague.full.jpg -swamp_mosquito.jpg http://[server]/TSB/Swamp%20Mosquito.full.jpg -swans_of_bryn_argoll.jpg http://[server]/SHM/Swans%20of%20Bryn%20Argoll.full.jpg -swarm_of_rats.jpg http://[server]/9E/Swarm%20of%20Rats.full.jpg -swarmyard.jpg http://[server]/TSP/Swarmyard.full.jpg -swat.jpg http://[server]/UL/Swat.full.jpg -sway_of_illusion.jpg http://[server]/IN/Sway%20of%20Illusion.full.jpg -sway_of_the_stars.jpg http://[server]/BOK/Sway%20of%20the%20Stars.full.jpg -swell_of_courage.jpg http://[server]/MOR/Swell%20of%20Courage.full.jpg -swelter.jpg http://[server]/JU/Swelter.full.jpg -swerve.jpg http://[server]/ALA/Swerve.full.jpg -swift_maneuver.jpg http://[server]/CS/Swift%20Maneuver.full.jpg -swift_silence.jpg http://[server]/DIS/Swift%20Silence.full.jpg -swirl_the_mists.jpg http://[server]/CHK/Swirl%20the%20Mists.full.jpg -swirling_sandstorm.jpg http://[server]/JU/Swirling%20Sandstorm.full.jpg -swirling_spriggan.jpg http://[server]/EVE/Swirling%20Spriggan.full.jpg -swooping_talon.jpg http://[server]/LE/Swooping%20Talon.full.jpg -sword_dancer.jpg http://[server]/8E/Sword%20Dancer.full.jpg -sword_of_fire_and_ice.jpg http://[server]/DS/Sword%20of%20Fire%20and%20Ice.full.jpg -sword_of_kaldra.jpg http://[server]/MR/Sword%20of%20Kaldra.full.jpg -sword_of_light_and_shadow.jpg http://[server]/DS/Sword%20of%20Light%20and%20Shadow.full.jpg -sword_of_the_ages.jpg http://[server]/LG/Sword%20of%20the%20Ages.full.jpg -sword_of_the_chosen.jpg http://[server]/SH/Sword%20of%20the%20Chosen.full.jpg -sword_of_the_meek.jpg http://[server]/FUT/Sword%20of%20the%20Meek.full.jpg -sword_of_the_paruns.jpg http://[server]/GP/Sword%20of%20the%20Paruns.full.jpg -swords_to_plowshares.jpg http://[server]/4E/Swords%20to%20Plowshares.full.jpg -sworn_defender.jpg http://[server]/AL/Sworn%20Defender.full.jpg -sygg_river_cutthroat.jpg http://[server]/SHM/Sygg,%20River%20Cutthroat.full.jpg -sygg_river_guide.jpg http://[server]/LRW/Sygg,%20River%20Guide.full.jpg -sylvan_basilisk.jpg http://[server]/10E/Sylvan%20Basilisk.full.jpg -sylvan_bounty.jpg http://[server]/CFX/Sylvan%20Bounty.full.jpg -sylvan_echoes.jpg http://[server]/LRW/Sylvan%20Echoes.full.jpg -sylvan_hierophant.jpg http://[server]/WL/Sylvan%20Hierophant.full.jpg -sylvan_library.jpg http://[server]/5E/Sylvan%20Library.full.jpg -sylvan_messenger.jpg http://[server]/AP/Sylvan%20Messenger.full.jpg -sylvan_might.jpg http://[server]/OD/Sylvan%20Might.full.jpg -sylvan_paradise.jpg http://[server]/LG/Sylvan%20Paradise.full.jpg -sylvan_safekeeper.jpg http://[server]/JU/Sylvan%20Safekeeper.full.jpg -sylvan_scrying.jpg http://[server]/10E/Sylvan%20Scrying.full.jpg -sylvan_tutor.jpg http://[server]/PT/Sylvan%20Tutor.full.jpg -sylvan_yeti.jpg http://[server]/ST/Sylvan%20Yeti.full.jpg -sylvok_explorer.jpg http://[server]/FD/Sylvok%20Explorer.full.jpg -symbiosis.jpg http://[server]/US/Symbiosis.full.jpg -symbiotic_beast.jpg http://[server]/ON/Symbiotic%20Beast.full.jpg -symbiotic_deployment.jpg http://[server]/AP/Symbiotic%20Deployment.full.jpg -symbiotic_elf.jpg http://[server]/ON/Symbiotic%20Elf.full.jpg -symbiotic_wurm.jpg http://[server]/ON/Symbiotic%20Wurm.full.jpg -symbol_of_unsummoning.jpg http://[server]/PT/Symbol%20of%20Unsummoning.full.jpg -symbol_status.jpg http://[server]/UNH/Symbol%20Status.full.jpg -synapse_sliver.jpg http://[server]/LE/Synapse%20Sliver.full.jpg -synchronous_sliver.jpg http://[server]/PLC/Synchronous%20Sliver.full.jpg -syncopate.jpg http://[server]/OD/Syncopate.full.jpg -synod_artificer.jpg http://[server]/DS/Synod%20Artificer.full.jpg -synod_centurion.jpg http://[server]/FD/Synod%20Centurion.full.jpg -synod_sanctum.jpg http://[server]/MR/Synod%20Sanctum.full.jpg -syphon_life.jpg http://[server]/EVE/Syphon%20Life.full.jpg -syphon_mind.jpg http://[server]/ON/Syphon%20Mind.full.jpg -syphon_soul.jpg http://[server]/LG/Syphon%20Soul.full.jpg -szadek_lord_of_secrets.jpg http://[server]/RAV/Szadek,%20Lord%20of%20Secrets.full.jpg \ No newline at end of file diff --git a/res/pics_link/card-pictures_t.txt b/res/pics_link/card-pictures_t.txt deleted file mode 100644 index 4faba1953ab..00000000000 --- a/res/pics_link/card-pictures_t.txt +++ /dev/null @@ -1,632 +0,0 @@ -tablet_of_epityr.jpg http://[server]/AQ/Tablet%20of%20Epityr.full.jpg -tahngarth.jpg http://[server]/VG/Tahngarth.full.jpg -tahngarth_talruum_hero.jpg http://[server]/PS/Tahngarth,%20Talruum%20Hero.full.jpg -tahngarths_glare.jpg http://[server]/AP/Tahngarth's%20Glare.full.jpg -tahngarths_rage.jpg http://[server]/TE/Tahngarth's%20Rage.full.jpg -taiga.jpg http://[server]/U/Taiga.full.jpg -tainted_aether.jpg http://[server]/7E/Tainted%20Aether.full.jpg -tainted_field.jpg http://[server]/TO/Tainted%20Field.full.jpg -tainted_isle.jpg http://[server]/TO/Tainted%20Isle.full.jpg -tainted_monkey.jpg http://[server]/UNH/Tainted%20Monkey.full.jpg -tainted_pact.jpg http://[server]/OD/Tainted%20Pact.full.jpg -tainted_peak.jpg http://[server]/TO/Tainted%20Peak.full.jpg -tainted_sigil.jpg http://[server]/ARB/Tainted%20Sigil.full.jpg -tainted_specter.jpg http://[server]/MI/Tainted%20Specter.full.jpg -tainted_well.jpg http://[server]/IN/Tainted%20Well.full.jpg -tainted_wood.jpg http://[server]/TO/Tainted%20Wood.full.jpg -taj_nar_swordsmith.jpg http://[server]/MR/Taj-Nar%20Swordsmith.full.jpg -tajuru_archer.jpg http://[server]/ZEN/Tajuru%20Archer.full.jpg -takara.jpg http://[server]/VG/Takara.full.jpg -take_possession.jpg http://[server]/FUT/Take%20Possession.full.jpg -takeno_samurai_general.jpg http://[server]/CHK/Takeno,%20Samurai%20General.full.jpg -takenos_cavalry.jpg http://[server]/BOK/Takeno's%20Cavalry.full.jpg -takenuma_bleeder.jpg http://[server]/BOK/Takenuma%20Bleeder.full.jpg -takklemaggot.jpg http://[server]/LG/Takklemaggot.full.jpg -talaras_bane.jpg http://[server]/EVE/Talara's%20Bane.full.jpg -talaras_battalion.jpg http://[server]/EVE/Talara's%20Battalion.full.jpg -talas_air_ship.jpg http://[server]/P2/Talas%20Air%20Ship.full.jpg -talas_explorer.jpg http://[server]/P2/Talas%20Explorer.full.jpg -talas_merchant.jpg http://[server]/P2/Talas%20Merchant.full.jpg -talas_researcher.jpg http://[server]/P2/Talas%20Researcher.full.jpg -talas_scout.jpg http://[server]/P2/Talas%20Scout.full.jpg -talas_warrior.jpg http://[server]/P2/Talas%20Warrior.full.jpg -talisman_of_dominance.jpg http://[server]/MR/Talisman%20of%20Dominance.full.jpg -talisman_of_impulse.jpg http://[server]/MR/Talisman%20of%20Impulse.full.jpg -talisman_of_indulgence.jpg http://[server]/MR/Talisman%20of%20Indulgence.full.jpg -talisman_of_progress.jpg http://[server]/MR/Talisman%20of%20Progress.full.jpg -talisman_of_unity.jpg http://[server]/MR/Talisman%20of%20Unity.full.jpg -tallowisp.jpg http://[server]/BOK/Tallowisp.full.jpg -talon_of_pain.jpg http://[server]/DS/Talon%20of%20Pain.full.jpg -talon_sliver.jpg http://[server]/TE/Talon%20Sliver.full.jpg -talon_trooper.jpg http://[server]/ARB/Talon%20Trooper.full.jpg -talonrend.jpg http://[server]/EVE/Talonrend.full.jpg -talruum_champion.jpg http://[server]/VI/Talruum%20Champion.full.jpg -talruum_minotaur.jpg http://[server]/6E/Talruum%20Minotaur.full.jpg -talruum_piper.jpg http://[server]/VI/Talruum%20Piper.full.jpg -tamanoa.jpg http://[server]/CS/Tamanoa.full.jpg -tangle.jpg http://[server]/IN/Tangle.full.jpg -tangle_asp.jpg http://[server]/FD/Tangle%20Asp.full.jpg -tangle_golem.jpg http://[server]/DS/Tangle%20Golem.full.jpg -tangle_kelp.jpg http://[server]/DK/Tangle%20Kelp.full.jpg -tangle_spider.jpg http://[server]/10E/Tangle%20Spider.full.jpg -tangle_wire.jpg http://[server]/NE/Tangle%20Wire.full.jpg -tanglebloom.jpg http://[server]/9E/Tanglebloom.full.jpg -tangleroot.jpg http://[server]/MR/Tangleroot.full.jpg -tanglesap.jpg http://[server]/ZEN/Tanglesap.full.jpg -tanglewalker.jpg http://[server]/DS/Tanglewalker.full.jpg -taniwha.jpg http://[server]/MI/Taniwha.full.jpg -taoist_hermit.jpg http://[server]/P3/Taoist%20Hermit.full.jpg -taoist_mystic.jpg http://[server]/P3/Taoist%20Mystic.full.jpg -tar_fiend.jpg http://[server]/ALA/Tar%20Fiend.full.jpg -tar_pit_warrior.jpg http://[server]/VI/Tar%20Pit%20Warrior.full.jpg -tar_pitcher.jpg http://[server]/EVG/Tar%20Pitcher.full.jpg -tarfire.jpg http://[server]/EVG/Tarfire.full.jpg -tariff.jpg http://[server]/6E/Tariff.full.jpg -tarmogoyf.jpg http://[server]/FUT/Tarmogoyf.full.jpg -tarnished_citadel.jpg http://[server]/OD/Tarnished%20Citadel.full.jpg -tarox_bladewing.jpg http://[server]/FUT/Tarox%20Bladewing.full.jpg -tarpan.jpg http://[server]/5E/Tarpan.full.jpg -task_force.jpg http://[server]/MM/Task%20Force.full.jpg -task_mage_assembly.jpg http://[server]/PY/Task%20Mage%20Assembly.full.jpg -taste_for_mayhem.jpg http://[server]/DIS/Taste%20for%20Mayhem.full.jpg -taste_of_paradise.jpg http://[server]/AL/Taste%20of%20Paradise1.full.jpg -tatsumasa_the_dragons_fang.jpg http://[server]/CHK/Tatsumasa,%20the%20Dragon's%20Fang.full.jpg -tattered_drake.jpg http://[server]/RAV/Tattered%20Drake.full.jpg -tatterkite.jpg http://[server]/SHM/Tatterkite.full.jpg -tattermunge_duo.jpg http://[server]/SHM/Tattermunge%20Duo.full.jpg -tattermunge_maniac.jpg http://[server]/SHM/Tattermunge%20Maniac.full.jpg -tattermunge_witch.jpg http://[server]/SHM/Tattermunge%20Witch.full.jpg -tattoo_ward.jpg http://[server]/OD/Tattoo%20Ward.full.jpg -taunt.jpg http://[server]/PT/Taunt.full.jpg -taunting_challenge.jpg http://[server]/P3/Taunting%20Challenge.full.jpg -taunting_elf.jpg http://[server]/ON/Taunting%20Elf.full.jpg -taurean_mauler.jpg http://[server]/HOP/Taurean%20Mauler.full.jpg -tawnos.jpg http://[server]/VG/Tawnos.full.jpg -tawnoss_coffin.jpg http://[server]/AQ/Tawnos's%20Coffin.full.jpg -tawnoss_wand.jpg http://[server]/4E/Tawnos's%20Wand.full.jpg -tawnoss_weaponry.jpg http://[server]/5E/Tawnos's%20Weaponry.full.jpg -team_spirit.jpg http://[server]/UG/Team%20Spirit.full.jpg -teardrop_kami.jpg http://[server]/BOK/Teardrop%20Kami.full.jpg -tears_of_rage.jpg http://[server]/DS/Tears%20of%20Rage.full.jpg -tectonic_break.jpg http://[server]/MM/Tectonic%20Break.full.jpg -tectonic_fiend.jpg http://[server]/TSP/Tectonic%20Fiend.full.jpg -tectonic_instability.jpg http://[server]/IN/Tectonic%20Instability.full.jpg -teekas_dragon.jpg http://[server]/MI/Teeka's%20Dragon.full.jpg -teetering_peaks.jpg http://[server]/ZEN/Teetering%20Peaks.full.jpg -teferi_mage_of_zhalfir.jpg http://[server]/TSP/Teferi,%20Mage%20of%20Zhalfir.full.jpg -teferis_care.jpg http://[server]/IN/Teferi's%20Care.full.jpg -teferis_curse.jpg http://[server]/MI/Teferi's%20Curse.full.jpg -teferis_drake.jpg http://[server]/MI/Teferi's%20Drake.full.jpg -teferis_honor_guard.jpg http://[server]/VI/Teferi's%20Honor%20Guard.full.jpg -teferis_imp.jpg http://[server]/MI/Teferi's%20Imp.full.jpg -teferis_isle.jpg http://[server]/MI/Teferi's%20Isle.full.jpg -teferis_moat.jpg http://[server]/IN/Teferi's%20Moat.full.jpg -teferis_puzzle_box.jpg http://[server]/9E/Teferi's%20Puzzle%20Box.full.jpg -teferis_realm.jpg http://[server]/VI/Teferi's%20Realm.full.jpg -teferis_response.jpg http://[server]/IN/Teferi's%20Response.full.jpg -teferis_veil.jpg http://[server]/WL/Teferi's%20Veil.full.jpg -tek.jpg http://[server]/IN/Tek.full.jpg -tel_jilad_archers.jpg http://[server]/MR/Tel-Jilad%20Archers.full.jpg -tel_jilad_chosen.jpg http://[server]/MR/Tel-Jilad%20Chosen.full.jpg -tel_jilad_exile.jpg http://[server]/MR/Tel-Jilad%20Exile.full.jpg -tel_jilad_justice.jpg http://[server]/FD/Tel-Jilad%20Justice.full.jpg -tel_jilad_lifebreather.jpg http://[server]/FD/Tel-Jilad%20Lifebreather.full.jpg -tel_jilad_outrider.jpg http://[server]/DS/Tel-Jilad%20Outrider.full.jpg -tel_jilad_stylus.jpg http://[server]/MR/Tel-Jilad%20Stylus.full.jpg -tel_jilad_wolf.jpg http://[server]/DS/Tel-Jilad%20Wolf.full.jpg -telekinesis.jpg http://[server]/LG/Telekinesis.full.jpg -telekinetic_bonds.jpg http://[server]/JU/Telekinetic%20Bonds.full.jpg -telekinetic_sliver.jpg http://[server]/TSP/Telekinetic%20Sliver.full.jpg -telemin_performance.jpg http://[server]/CFX/Telemin%20Performance.full.jpg -telepathic_spies.jpg http://[server]/7E/Telepathic%20Spies.full.jpg -telepathy.jpg http://[server]/M10/Telepathy.full.jpg -teleport.jpg http://[server]/LG/Teleport.full.jpg -telethopter.jpg http://[server]/TE/Telethopter.full.jpg -telimtor.jpg http://[server]/MI/Telim'Tor.full.jpg -telimtors_darts.jpg http://[server]/MI/Telim'Tor's%20Darts.full.jpg -telimtors_edict.jpg http://[server]/MI/Telim'Tor's%20Edict.full.jpg -teller_of_tales.jpg http://[server]/CHK/Teller%20of%20Tales.full.jpg -telling_time.jpg http://[server]/10E/Telling%20Time.full.jpg -temp_of_the_damned.jpg http://[server]/UG/Temp%20of%20the%20Damned.full.jpg -temper.jpg http://[server]/SH/Temper.full.jpg -tempest_drake.jpg http://[server]/VI/Tempest%20Drake.full.jpg -tempest_efreet.jpg http://[server]/4E/Tempest%20Efreet.full.jpg -tempest_of_light.jpg http://[server]/M10/Tempest%20of%20Light.full.jpg -tempest_owl.jpg http://[server]/ZEN/Tempest%20Owl.full.jpg -temple_acolyte.jpg http://[server]/P2/Temple%20Acolyte.full.jpg -temple_elder.jpg http://[server]/P2/Temple%20Elder.full.jpg -temple_garden.jpg http://[server]/RAV/Temple%20Garden.full.jpg -temple_of_the_false_god.jpg http://[server]/SC/Temple%20of%20the%20False%20God.full.jpg -temporal_adept.jpg http://[server]/9E/Temporal%20Adept.full.jpg -temporal_aperture.jpg http://[server]/US/Temporal%20Aperture.full.jpg -temporal_cascade.jpg http://[server]/MR/Temporal%20Cascade.full.jpg -temporal_distortion.jpg http://[server]/IN/Temporal%20Distortion.full.jpg -temporal_eddy.jpg http://[server]/TSP/Temporal%20Eddy.full.jpg -temporal_extortion.jpg http://[server]/PLC/Temporal%20Extortion.full.jpg -temporal_fissure.jpg http://[server]/SC/Temporal%20Fissure.full.jpg -temporal_isolation.jpg http://[server]/TSP/Temporal%20Isolation.full.jpg -temporal_manipulation.jpg http://[server]/P2/Temporal%20Manipulation.full.jpg -temporal_spring.jpg http://[server]/AP/Temporal%20Spring.full.jpg -temporary_insanity.jpg http://[server]/TO/Temporary%20Insanity.full.jpg -temporary_truce.jpg http://[server]/PT/Temporary%20Truce.full.jpg -tempting_licid.jpg http://[server]/SH/Tempting%20Licid.full.jpg -tempting_wurm.jpg http://[server]/ON/Tempting%20Wurm.full.jpg -tendo_ice_bridge.jpg http://[server]/BOK/Tendo%20Ice%20Bridge.full.jpg -tendrils_of_agony.jpg http://[server]/SC/Tendrils%20of%20Agony.full.jpg -tendrils_of_corruption.jpg http://[server]/M10/Tendrils%20of%20Corruption.full.jpg -tendrils_of_despair.jpg http://[server]/WL/Tendrils%20of%20Despair.full.jpg -teneb_the_harvester.jpg http://[server]/PLC/Teneb,%20the%20Harvester.full.jpg -tenza_godos_maul.jpg http://[server]/CHK/Tenza,%20Godo's%20Maul.full.jpg -tephraderm.jpg http://[server]/ON/Tephraderm.full.jpg -terashis_cry.jpg http://[server]/CHK/Terashi's%20Cry.full.jpg -terashis_grasp.jpg http://[server]/BOK/Terashi's%20Grasp.full.jpg -terashis_verdict.jpg http://[server]/BOK/Terashi's%20Verdict.full.jpg -teremko_griffin.jpg http://[server]/MI/Teremko%20Griffin.full.jpg -terminal_moraine.jpg http://[server]/PS/Terminal%20Moraine.full.jpg -terminate.jpg http://[server]/PS/Terminate.full.jpg -terohs_faithful.jpg http://[server]/TO/Teroh's%20Faithful.full.jpg -terohs_vanguard.jpg http://[server]/TO/Teroh's%20Vanguard.full.jpg -terra_stomper.jpg http://[server]/ZEN/Terra%20Stomper.full.jpg -terraformer.jpg http://[server]/RAV/Terraformer.full.jpg -terrain_generator.jpg http://[server]/NE/Terrain%20Generator.full.jpg -terramorphic_expanse.jpg http://[server]/M10/Terramorphic%20Expanse.full.jpg -terrarion.jpg http://[server]/RAV/Terrarion.full.jpg -terravore.jpg http://[server]/OD/Terravore.full.jpg -territorial_baloth.jpg http://[server]/ZEN/Territorial%20Baloth.full.jpg -territorial_dispute.jpg http://[server]/MM/Territorial%20Dispute.full.jpg -terror.jpg http://[server]/10E/Terror.full.jpg -test_of_endurance.jpg http://[server]/JU/Test%20of%20Endurance.full.jpg -test_of_faith.jpg http://[server]/DS/Test%20of%20Faith.full.jpg -testament_of_faith.jpg http://[server]/OD/Testament%20of%20Faith.full.jpg -tethered_griffin.jpg http://[server]/UD/Tethered%20Griffin.full.jpg -tethered_skirge.jpg http://[server]/UL/Tethered%20Skirge.full.jpg -tetravus.jpg http://[server]/4E/Tetravus.full.jpg -tetsuo_umezawa.jpg http://[server]/LG/Tetsuo%20Umezawa.full.jpg -teysa_orzhov_scion.jpg http://[server]/GP/Teysa,%20Orzhov%20Scion.full.jpg -tezzeret_the_seeker.jpg http://[server]/ALA/Tezzeret%20the%20Seeker.full.jpg -thalakos_deceiver.jpg http://[server]/SH/Thalakos%20Deceiver.full.jpg -thalakos_dreamsower.jpg http://[server]/TE/Thalakos%20Dreamsower.full.jpg -thalakos_drifters.jpg http://[server]/EX/Thalakos%20Drifters.full.jpg -thalakos_lowlands.jpg http://[server]/TE/Thalakos%20Lowlands.full.jpg -thalakos_mistfolk.jpg http://[server]/TE/Thalakos%20Mistfolk.full.jpg -thalakos_scout.jpg http://[server]/EX/Thalakos%20Scout.full.jpg -thalakos_seer.jpg http://[server]/TE/Thalakos%20Seer.full.jpg -thalakos_sentry.jpg http://[server]/TE/Thalakos%20Sentry.full.jpg -thallid.jpg http://[server]/TSB/Thallid.full.jpg -thallid_devourer.jpg http://[server]/FE/Thallid%20Devourer.full.jpg -thallid_germinator.jpg http://[server]/TSP/Thallid%20Germinator.full.jpg -thallid_shell_dweller.jpg http://[server]/TSP/Thallid%20Shell-Dweller.full.jpg -that_which_was_taken.jpg http://[server]/BOK/That%20Which%20Was%20Taken.full.jpg -thaumatog.jpg http://[server]/OD/Thaumatog.full.jpg -thawing_glaciers.jpg http://[server]/AL/Thawing%20Glaciers.full.jpg -the_abyss.jpg http://[server]/LG/The%20Abyss.full.jpg -the_brute.jpg http://[server]/5E/The%20Brute.full.jpg -the_cheese_stands_alone.jpg http://[server]/UG/The%20Cheese%20Stands%20Alone.full.jpg -the_fallen.jpg http://[server]/CH/The%20Fallen.full.jpg -the_fallen_apart.jpg http://[server]/UNH/The%20Fallen%20Apart.full.jpg -the_hive.jpg http://[server]/10E/The%20Hive.full.jpg -the_lady_of_the_mountain.jpg http://[server]/LG/The%20Lady%20of%20the%20Mountain.full.jpg -the_rack.jpg http://[server]/4E/The%20Rack.full.jpg -the_tabernacle_at_pendrell_vale.jpg http://[server]/LG/The%20Tabernacle%20at%20Pendrell%20Vale.full.jpg -the_ultimate_nightmare_of_wizards_of_the_coast®_customer_service.jpg http://[server]/UG/The%20Ultimate%20Nightmare%20of%20Wizards%20of%20the%20Coast®%20Customer%20Service.full.jpg -the_unspeakable.jpg http://[server]/CHK/The%20Unspeakable.full.jpg -the_wretched.jpg http://[server]/5E/The%20Wretched.full.jpg -theft_of_dreams.jpg http://[server]/PT/Theft%20of%20Dreams.full.jpg -thelon_of_havenwood.jpg http://[server]/TSP/Thelon%20of%20Havenwood.full.jpg -thelonite_druid.jpg http://[server]/FE/Thelonite%20Druid.full.jpg -thelonite_hermit.jpg http://[server]/TSP/Thelonite%20Hermit.full.jpg -thelonite_monk.jpg http://[server]/FE/Thelonite%20Monk.full.jpg -thelons_chant.jpg http://[server]/FE/Thelon's%20Chant.full.jpg -thelons_curse.jpg http://[server]/FE/Thelon's%20Curse.full.jpg -thermal_blast.jpg http://[server]/OD/Thermal%20Blast.full.jpg -thermal_flux.jpg http://[server]/CS/Thermal%20Flux.full.jpg -thermal_glider.jpg http://[server]/MM/Thermal%20Glider.full.jpg -thermal_navigator.jpg http://[server]/FD/Thermal%20Navigator.full.jpg -thermokarst.jpg http://[server]/IA/Thermokarst.full.jpg -thermopod.jpg http://[server]/CS/Thermopod.full.jpg -thick_skinned_goblin.jpg http://[server]/TSP/Thick-Skinned%20Goblin.full.jpg -thicket_basilisk.jpg http://[server]/6E/Thicket%20Basilisk.full.jpg -thicket_elemental.jpg http://[server]/IN/Thicket%20Elemental.full.jpg -thief_of_hope.jpg http://[server]/CHK/Thief%20of%20Hope.full.jpg -thieves_auction.jpg http://[server]/8E/Thieves'%20Auction.full.jpg -thieves_fortune.jpg http://[server]/MOR/Thieves'%20Fortune.full.jpg -thieving_magpie.jpg http://[server]/10E/Thieving%20Magpie.full.jpg -thieving_sprite.jpg http://[server]/LRW/Thieving%20Sprite.full.jpg -thing_from_the_deep.jpg http://[server]/PT/Thing%20from%20the%20Deep.full.jpg -think_tank.jpg http://[server]/OD/Think%20Tank.full.jpg -think_twice.jpg http://[server]/TSP/Think%20Twice.full.jpg -thirst.jpg http://[server]/MI/Thirst.full.jpg -thirst_for_knowledge.jpg http://[server]/MR/Thirst%20for%20Knowledge.full.jpg -thistledown_duo.jpg http://[server]/SHM/Thistledown%20Duo.full.jpg -thistledown_liege.jpg http://[server]/SHM/Thistledown%20Liege.full.jpg -thopter_foundry.jpg http://[server]/ARB/Thopter%20Foundry.full.jpg -thopter_squadron.jpg http://[server]/EX/Thopter%20Squadron.full.jpg -thorn_elemental.jpg http://[server]/8E/Thorn%20Elemental.full.jpg -thorn_of_amethyst.jpg http://[server]/LRW/Thorn%20of%20Amethyst.full.jpg -thorn_thallid.jpg http://[server]/FE/Thorn%20Thallid1.full.jpg -thorn_thrash_viashino.jpg http://[server]/ALA/Thorn-Thrash%20Viashino.full.jpg -thornbite_staff.jpg http://[server]/MOR/Thornbite%20Staff.full.jpg -thornling.jpg http://[server]/CFX/Thornling.full.jpg -thornscape_apprentice.jpg http://[server]/IN/Thornscape%20Apprentice.full.jpg -thornscape_battlemage.jpg http://[server]/PS/Thornscape%20Battlemage.full.jpg -thornscape_familiar.jpg http://[server]/PS/Thornscape%20Familiar.full.jpg -thornscape_master.jpg http://[server]/IN/Thornscape%20Master.full.jpg -thorntooth_witch.jpg http://[server]/LRW/Thorntooth%20Witch.full.jpg -thornwatch_scarecrow.jpg http://[server]/SHM/Thornwatch%20Scarecrow.full.jpg -thornweald_archer.jpg http://[server]/FUT/Thornweald%20Archer.full.jpg -thornwind_faeries.jpg http://[server]/UL/Thornwind%20Faeries.full.jpg -thought_courier.jpg http://[server]/9E/Thought%20Courier.full.jpg -thought_devourer.jpg http://[server]/OD/Thought%20Devourer.full.jpg -thought_dissector.jpg http://[server]/DS/Thought%20Dissector.full.jpg -thought_eater.jpg http://[server]/OD/Thought%20Eater.full.jpg -thought_hemorrhage.jpg http://[server]/ARB/Thought%20Hemorrhage.full.jpg -thought_lash.jpg http://[server]/AL/Thought%20Lash.full.jpg -thought_nibbler.jpg http://[server]/OD/Thought%20Nibbler.full.jpg -thought_prison.jpg http://[server]/MR/Thought%20Prison.full.jpg -thought_reflection.jpg http://[server]/SHM/Thought%20Reflection.full.jpg -thoughtbind.jpg http://[server]/CHK/Thoughtbind.full.jpg -thoughtbound_primoc.jpg http://[server]/ON/Thoughtbound%20Primoc.full.jpg -thoughtcast.jpg http://[server]/MR/Thoughtcast.full.jpg -thoughtcutter_agent.jpg http://[server]/ALA/Thoughtcutter%20Agent.full.jpg -thoughtlace.jpg http://[server]/4E/Thoughtlace.full.jpg -thoughtleech.jpg http://[server]/7E/Thoughtleech.full.jpg -thoughtpicker_witch.jpg http://[server]/RAV/Thoughtpicker%20Witch.full.jpg -thoughts_of_ruin.jpg http://[server]/SOK/Thoughts%20of%20Ruin.full.jpg -thoughtseize.jpg http://[server]/LRW/Thoughtseize.full.jpg -thoughtweft_gambit.jpg http://[server]/SHM/Thoughtweft%20Gambit.full.jpg -thoughtweft_trio.jpg http://[server]/LRW/Thoughtweft%20Trio.full.jpg -thousand_legged_kami.jpg http://[server]/CHK/Thousand-legged%20Kami.full.jpg -thousand_year_elixir.jpg http://[server]/LRW/Thousand-Year%20Elixir.full.jpg -thran_dynamo.jpg http://[server]/UD/Thran%20Dynamo.full.jpg -thran_forge.jpg http://[server]/WL/Thran%20Forge.full.jpg -thran_foundry.jpg http://[server]/UD/Thran%20Foundry.full.jpg -thran_golem.jpg http://[server]/9E/Thran%20Golem.full.jpg -thran_lens.jpg http://[server]/UL/Thran%20Lens.full.jpg -thran_quarry.jpg http://[server]/US/Thran%20Quarry.full.jpg -thran_tome.jpg http://[server]/WL/Thran%20Tome.full.jpg -thran_turbine.jpg http://[server]/US/Thran%20Turbine.full.jpg -thran_war_machine.jpg http://[server]/UL/Thran%20War%20Machine.full.jpg -thran_weaponry.jpg http://[server]/UL/Thran%20Weaponry.full.jpg -thrashing_mudspawn.jpg http://[server]/ON/Thrashing%20Mudspawn.full.jpg -thrashing_wumpus.jpg http://[server]/MM/Thrashing%20Wumpus.full.jpg -thraximundar.jpg http://[server]/ARB/Thraximundar.full.jpg -threads_of_disloyalty.jpg http://[server]/BOK/Threads%20of%20Disloyalty.full.jpg -threaten.jpg http://[server]/10E/Threaten.full.jpg -three_dreams.jpg http://[server]/RAV/Three%20Dreams.full.jpg -three_tragedies.jpg http://[server]/BOK/Three%20Tragedies.full.jpg -three_visits.jpg http://[server]/P3/Three%20Visits.full.jpg -three_wishes.jpg http://[server]/VI/Three%20Wishes.full.jpg -thresher_beast.jpg http://[server]/PY/Thresher%20Beast.full.jpg -thrill_of_the_hunt.jpg http://[server]/TSP/Thrill%20of%20the%20Hunt.full.jpg -thriss_nantuko_primus.jpg http://[server]/JU/Thriss,%20Nantuko%20Primus.full.jpg -thrive.jpg http://[server]/PY/Thrive.full.jpg -throat_slitter.jpg http://[server]/BOK/Throat%20Slitter.full.jpg -throne_of_bone.jpg http://[server]/8E/Throne%20of%20Bone.full.jpg -through_the_breach.jpg http://[server]/CHK/Through%20the%20Breach.full.jpg -thrull_champion.jpg http://[server]/FE/Thrull%20Champion.full.jpg -thrull_retainer.jpg http://[server]/5E/Thrull%20Retainer.full.jpg -thrull_surgeon.jpg http://[server]/10E/Thrull%20Surgeon.full.jpg -thrull_wizard.jpg http://[server]/FE/Thrull%20Wizard.full.jpg -thrumming_stone.jpg http://[server]/CS/Thrumming%20Stone.full.jpg -thumbscrews.jpg http://[server]/TE/Thumbscrews.full.jpg -thunder_dragon.jpg http://[server]/ST/Thunder%20Dragon.full.jpg -thunder_of_hooves.jpg http://[server]/ON/Thunder%20of%20Hooves.full.jpg -thunder_spirit.jpg http://[server]/LG/Thunder%20Spirit.full.jpg -thunder_thrash_elder.jpg http://[server]/ALA/Thunder-Thrash%20Elder.full.jpg -thunder_totem.jpg http://[server]/TSP/Thunder%20Totem.full.jpg -thunder_wall.jpg http://[server]/IA/Thunder%20Wall.full.jpg -thunderblade_charge.jpg http://[server]/FUT/Thunderblade%20Charge.full.jpg -thunderblust.jpg http://[server]/EVE/Thunderblust.full.jpg -thunderbolt.jpg http://[server]/BD/Thunderbolt.full.jpg -thunderclap.jpg http://[server]/MM/Thunderclap.full.jpg -thundercloud_elemental.jpg http://[server]/SC/Thundercloud%20Elemental.full.jpg -thundercloud_shaman.jpg http://[server]/LRW/Thundercloud%20Shaman.full.jpg -thunderheads.jpg http://[server]/GP/Thunderheads.full.jpg -thundering_giant.jpg http://[server]/10E/Thundering%20Giant.full.jpg -thundering_wurm.jpg http://[server]/PT/Thundering%20Wurm.full.jpg -thundermare.jpg http://[server]/9E/Thundermare.full.jpg -thunderscape_apprentice.jpg http://[server]/IN/Thunderscape%20Apprentice.full.jpg -thunderscape_battlemage.jpg http://[server]/PS/Thunderscape%20Battlemage.full.jpg -thunderscape_familiar.jpg http://[server]/PS/Thunderscape%20Familiar.full.jpg -thunderscape_master.jpg http://[server]/IN/Thunderscape%20Master.full.jpg -thundersong_trumpeter.jpg http://[server]/RAV/Thundersong%20Trumpeter.full.jpg -thunderstaff.jpg http://[server]/DS/Thunderstaff.full.jpg -thwart.jpg http://[server]/MM/Thwart.full.jpg -tibor_and_lumia.jpg http://[server]/GP/Tibor%20and%20Lumia.full.jpg -ticking_gnomes.jpg http://[server]/UL/Ticking%20Gnomes.full.jpg -tidal_bore.jpg http://[server]/MM/Tidal%20Bore.full.jpg -tidal_control.jpg http://[server]/AL/Tidal%20Control.full.jpg -tidal_courier.jpg http://[server]/AP/Tidal%20Courier.full.jpg -tidal_flats.jpg http://[server]/FE/Tidal%20Flats1.full.jpg -tidal_influence.jpg http://[server]/FE/Tidal%20Influence.full.jpg -tidal_kraken.jpg http://[server]/9E/Tidal%20Kraken.full.jpg -tidal_surge.jpg http://[server]/6E/Tidal%20Surge.full.jpg -tidal_visionary.jpg http://[server]/IN/Tidal%20Visionary.full.jpg -tidal_warrior.jpg http://[server]/SH/Tidal%20Warrior.full.jpg -tidal_wave.jpg http://[server]/MI/Tidal%20Wave.full.jpg -tide_of_war.jpg http://[server]/CHK/Tide%20of%20War.full.jpg -tidehollow_sculler.jpg http://[server]/ALA/Tidehollow%20Sculler.full.jpg -tidehollow_strix.jpg http://[server]/ALA/Tidehollow%20Strix.full.jpg -tideshaper_mystic.jpg http://[server]/LRW/Tideshaper%20Mystic.full.jpg -tidespout_tyrant.jpg http://[server]/DIS/Tidespout%20Tyrant.full.jpg -tidewalker.jpg http://[server]/PLC/Tidewalker.full.jpg -tidewater_minion.jpg http://[server]/RAV/Tidewater%20Minion.full.jpg -tidings.jpg http://[server]/10E/Tidings.full.jpg -tiger_claws.jpg http://[server]/MM/Tiger%20Claws.full.jpg -tigereye_cameo.jpg http://[server]/IN/Tigereye%20Cameo.full.jpg -tilling_treefolk.jpg http://[server]/EVE/Tilling%20Treefolk.full.jpg -timber_protector.jpg http://[server]/LRW/Timber%20Protector.full.jpg -timber_wolves.jpg http://[server]/4E/Timber%20Wolves.full.jpg -timberland_ruins.jpg http://[server]/OD/Timberland%20Ruins.full.jpg -timberline_ridge.jpg http://[server]/IA/Timberline%20Ridge.full.jpg -timbermare.jpg http://[server]/PLC/Timbermare.full.jpg -timbermaw_larva.jpg http://[server]/ZEN/Timbermaw%20Larva.full.jpg -timberwatch_elf.jpg http://[server]/LE/Timberwatch%20Elf.full.jpg -time_and_tide.jpg http://[server]/VI/Time%20and%20Tide.full.jpg -time_bomb.jpg http://[server]/5E/Time%20Bomb.full.jpg -time_ebb.jpg http://[server]/9E/Time%20Ebb.full.jpg -time_elemental.jpg http://[server]/5E/Time%20Elemental.full.jpg -time_machine.jpg http://[server]/UNH/Time%20Machine.full.jpg -time_of_need.jpg http://[server]/CHK/Time%20of%20Need.full.jpg -time_sieve.jpg http://[server]/ARB/Time%20Sieve.full.jpg -time_spiral.jpg http://[server]/US/Time%20Spiral.full.jpg -time_stop.jpg http://[server]/10E/Time%20Stop.full.jpg -time_stretch.jpg http://[server]/10E/Time%20Stretch.full.jpg -time_vault.jpg http://[server]/U/Time%20Vault.full.jpg -time_walk.jpg http://[server]/U/Time%20Walk.full.jpg -time_warp.jpg http://[server]/M10/Time%20Warp.full.jpg -timebender.jpg http://[server]/PLC/Timebender.full.jpg -timecrafting.jpg http://[server]/PLC/Timecrafting.full.jpg -timesifter.jpg http://[server]/MR/Timesifter.full.jpg -timetwister.jpg http://[server]/U/Timetwister.full.jpg -timid_drake.jpg http://[server]/WL/Timid%20Drake.full.jpg -timmerian_fiends.jpg http://[server]/HL/Timmerian%20Fiends.full.jpg -timmy_power_gamer.jpg http://[server]/UG/Timmy,%20Power%20Gamer.full.jpg -tin_street_hooligan.jpg http://[server]/GP/Tin%20Street%20Hooligan.full.jpg -tin_wing_chimera.jpg http://[server]/VI/Tin-Wing%20Chimera.full.jpg -tinder_farm.jpg http://[server]/IN/Tinder%20Farm.full.jpg -tinder_wall.jpg http://[server]/IA/Tinder%20Wall.full.jpg -tinker.jpg http://[server]/UL/Tinker.full.jpg -tireless_tribe.jpg http://[server]/OD/Tireless%20Tribe.full.jpg -titania.jpg http://[server]/VG/Titania.full.jpg -titanias_boon.jpg http://[server]/US/Titania's%20Boon.full.jpg -titanias_chosen.jpg http://[server]/US/Titania's%20Chosen.full.jpg -titanias_song.jpg http://[server]/5E/Titania's%20Song.full.jpg -titanic_bulvox.jpg http://[server]/SC/Titanic%20Bulvox.full.jpg -titanic_ultimatum.jpg http://[server]/ALA/Titanic%20Ultimatum.full.jpg -titanium_golem.jpg http://[server]/MR/Titanium%20Golem.full.jpg -titans_revenge.jpg http://[server]/MOR/Titan's%20Revenge.full.jpg -tithe.jpg http://[server]/VI/Tithe.full.jpg -tivadar_of_thorn.jpg http://[server]/TSP/Tivadar%20of%20Thorn.full.jpg -tivadars_crusade.jpg http://[server]/DK/Tivadar's%20Crusade.full.jpg -to_arms.jpg http://[server]/GP/To%20Arms!.full.jpg -tobias_andrion.jpg http://[server]/LG/Tobias%20Andrion.full.jpg -togglodyte.jpg http://[server]/UNH/Togglodyte.full.jpg -toil_to_renown.jpg http://[server]/SHM/Toil%20to%20Renown.full.jpg -toils_of_night_and_day.jpg http://[server]/BOK/Toils%20of%20Night%20and%20Day.full.jpg -tolaria.jpg http://[server]/LG/Tolaria.full.jpg -tolaria_west.jpg http://[server]/FUT/Tolaria%20West.full.jpg -tolarian_academy.jpg http://[server]/US/Tolarian%20Academy.full.jpg -tolarian_drake.jpg http://[server]/WL/Tolarian%20Drake.full.jpg -tolarian_emissary.jpg http://[server]/IN/Tolarian%20Emissary.full.jpg -tolarian_entrancer.jpg http://[server]/WL/Tolarian%20Entrancer.full.jpg -tolarian_sentinel.jpg http://[server]/TSP/Tolarian%20Sentinel.full.jpg -tolarian_serpent.jpg http://[server]/WL/Tolarian%20Serpent.full.jpg -tolarian_winds.jpg http://[server]/7E/Tolarian%20Winds.full.jpg -tolsimir_wolfblood.jpg http://[server]/RAV/Tolsimir%20Wolfblood.full.jpg -tomb_of_urami.jpg http://[server]/SOK/Tomb%20of%20Urami.full.jpg -tombfire.jpg http://[server]/OD/Tombfire.full.jpg -tombstalker.jpg http://[server]/FUT/Tombstalker.full.jpg -tombstone_stairwell.jpg http://[server]/MI/Tombstone%20Stairwell.full.jpg -tome_scour.jpg http://[server]/M10/Tome%20Scour.full.jpg -tomorrow_azamis_familiar.jpg http://[server]/BOK/Tomorrow,%20Azami's%20Familiar.full.jpg -tonic_peddler.jpg http://[server]/MM/Tonic%20Peddler.full.jpg -tooth_and_claw.jpg http://[server]/TE/Tooth%20and%20Claw.full.jpg -tooth_and_nail.jpg http://[server]/MR/Tooth%20and%20Nail.full.jpg -tooth_of_chiss_goria.jpg http://[server]/MR/Tooth%20of%20Chiss-Goria.full.jpg -tooth_of_ramos.jpg http://[server]/MM/Tooth%20of%20Ramos.full.jpg -topan_ascetic.jpg http://[server]/ALA/Topan%20Ascetic.full.jpg -topple.jpg http://[server]/NE/Topple.full.jpg -topsy_turvy.jpg http://[server]/UNH/Topsy%20Turvy.full.jpg -tor_giant.jpg http://[server]/IA/Tor%20Giant.full.jpg -tor_wauki.jpg http://[server]/LG/Tor%20Wauki.full.jpg -torch_drake.jpg http://[server]/GP/Torch%20Drake.full.jpg -torch_slinger.jpg http://[server]/ZEN/Torch%20Slinger.full.jpg -torch_song.jpg http://[server]/US/Torch%20Song.full.jpg -torchling.jpg http://[server]/PLC/Torchling.full.jpg -torii_watchward.jpg http://[server]/SOK/Torii%20Watchward.full.jpg -torment.jpg http://[server]/SH/Torment.full.jpg -tormented_angel.jpg http://[server]/UD/Tormented%20Angel.full.jpg -tormods_crypt.jpg http://[server]/CH/Tormod's%20Crypt.full.jpg -tornado.jpg http://[server]/AL/Tornado.full.jpg -tornado_elemental.jpg http://[server]/FD/Tornado%20Elemental.full.jpg -torpid_moloch.jpg http://[server]/RAV/Torpid%20Moloch.full.jpg -torpor_dust.jpg http://[server]/SHM/Torpor%20Dust.full.jpg -torrent_of_fire.jpg http://[server]/SC/Torrent%20of%20Fire.full.jpg -torrent_of_lava.jpg http://[server]/MI/Torrent%20of%20Lava.full.jpg -torrent_of_souls.jpg http://[server]/SHM/Torrent%20of%20Souls.full.jpg -torrent_of_stone.jpg http://[server]/BOK/Torrent%20of%20Stone.full.jpg -torsten_von_ursus.jpg http://[server]/LG/Torsten%20von%20Ursus.full.jpg -tortoise_formation.jpg http://[server]/ALA/Tortoise%20Formation.full.jpg -torture.jpg http://[server]/5E/Torture.full.jpg -torture_chamber.jpg http://[server]/TE/Torture%20Chamber.full.jpg -tortured_existence.jpg http://[server]/SH/Tortured%20Existence.full.jpg -toshiro_umezawa.jpg http://[server]/BOK/Toshiro%20Umezawa.full.jpg -total_war.jpg http://[server]/IA/Total%20War.full.jpg -totem_speaker.jpg http://[server]/LE/Totem%20Speaker.full.jpg -touch_and_go.jpg http://[server]/UNH/Touch%20and%20Go.full.jpg -touch_of_brilliance.jpg http://[server]/PT/Touch%20of%20Brilliance.full.jpg -touch_of_darkness.jpg http://[server]/LG/Touch%20of%20Darkness.full.jpg -touch_of_death.jpg http://[server]/5E/Touch%20of%20Death.full.jpg -touch_of_invisibility.jpg http://[server]/OD/Touch%20of%20Invisibility.full.jpg -touch_of_vitae.jpg http://[server]/IA/Touch%20of%20Vitae.full.jpg -touchstone.jpg http://[server]/WL/Touchstone.full.jpg -tourachs_chant.jpg http://[server]/FE/Tourach's%20Chant.full.jpg -tourachs_gate.jpg http://[server]/FE/Tourach's%20Gate.full.jpg -tower_above.jpg http://[server]/SHM/Tower%20Above.full.jpg -tower_drake.jpg http://[server]/IN/Tower%20Drake.full.jpg -tower_gargoyle.jpg http://[server]/ALA/Tower%20Gargoyle.full.jpg -tower_of_champions.jpg http://[server]/MR/Tower%20of%20Champions.full.jpg -tower_of_coireall.jpg http://[server]/DK/Tower%20of%20Coireall.full.jpg -tower_of_eons.jpg http://[server]/MR/Tower%20of%20Eons.full.jpg -tower_of_fortunes.jpg http://[server]/MR/Tower%20of%20Fortunes.full.jpg -tower_of_murmurs.jpg http://[server]/MR/Tower%20of%20Murmurs.full.jpg -tower_of_the_magistrate.jpg http://[server]/MM/Tower%20of%20the%20Magistrate.full.jpg -towering_baloth.jpg http://[server]/ON/Towering%20Baloth.full.jpg -town_sentry.jpg http://[server]/P2/Town%20Sentry.full.jpg -toxic_iguanar.jpg http://[server]/CFX/Toxic%20Iguanar.full.jpg -toxic_stench.jpg http://[server]/JU/Toxic%20Stench.full.jpg -toxin_sliver.jpg http://[server]/LE/Toxin%20Sliver.full.jpg -toy_boat.jpg http://[server]/UNH/Toy%20Boat.full.jpg -toymaker.jpg http://[server]/MM/Toymaker.full.jpg -trace_of_abundance.jpg http://[server]/ARB/Trace%20of%20Abundance.full.jpg -tracker.jpg http://[server]/DK/Tracker.full.jpg -trade_caravan.jpg http://[server]/HL/Trade%20Caravan1.full.jpg -trade_routes.jpg http://[server]/9E/Trade%20Routes.full.jpg -trade_secrets.jpg http://[server]/ON/Trade%20Secrets.full.jpg -tradewind_rider.jpg http://[server]/TE/Tradewind%20Rider.full.jpg -tragic_poet.jpg http://[server]/UL/Tragic%20Poet.full.jpg -trailblazer.jpg http://[server]/IA/Trailblazer.full.jpg -trailblazers_boots.jpg http://[server]/ZEN/Trailblazer's%20Boots.full.jpg -train_of_thought.jpg http://[server]/GP/Train%20of%20Thought.full.jpg -trained_armodon.jpg http://[server]/9E/Trained%20Armodon.full.jpg -trained_cheetah.jpg http://[server]/P3/Trained%20Cheetah.full.jpg -trained_jackal.jpg http://[server]/P3/Trained%20Jackal.full.jpg -trained_orgg.jpg http://[server]/7E/Trained%20Orgg.full.jpg -trained_pronghorn.jpg http://[server]/JU/Trained%20Pronghorn.full.jpg -traitors_clutch.jpg http://[server]/TSP/Traitor's%20Clutch.full.jpg -traitors_roar.jpg http://[server]/SHM/Traitor's%20Roar.full.jpg -tranquil_domain.jpg http://[server]/MI/Tranquil%20Domain.full.jpg -tranquil_garden.jpg http://[server]/CHK/Tranquil%20Garden.full.jpg -tranquil_grove.jpg http://[server]/6E/Tranquil%20Grove.full.jpg -tranquil_path.jpg http://[server]/AP/Tranquil%20Path.full.jpg -tranquil_thicket.jpg http://[server]/ON/Tranquil%20Thicket.full.jpg -tranquility.jpg http://[server]/7E/Tranquility.full.jpg -transcendence.jpg http://[server]/TO/Transcendence.full.jpg -transguild_courier.jpg http://[server]/DIS/Transguild%20Courier.full.jpg -transluminant.jpg http://[server]/RAV/Transluminant.full.jpg -transmogrifying_licid.jpg http://[server]/EX/Transmogrifying%20Licid.full.jpg -transmutation.jpg http://[server]/LG/Transmutation.full.jpg -transmute_artifact.jpg http://[server]/AQ/Transmute%20Artifact.full.jpg -trap_digger.jpg http://[server]/SC/Trap%20Digger.full.jpg -trap_runner.jpg http://[server]/MM/Trap%20Runner.full.jpg -trapfinders_trick.jpg http://[server]/ZEN/Trapfinder's%20Trick.full.jpg -trapjaw_kelpie.jpg http://[server]/EVE/Trapjaw%20Kelpie.full.jpg -trapmakers_snare.jpg http://[server]/ZEN/Trapmaker's%20Snare.full.jpg -traproot_kami.jpg http://[server]/BOK/Traproot%20Kami.full.jpg -trash_for_treasure.jpg http://[server]/MR/Trash%20for%20Treasure.full.jpg -traumatic_visions.jpg http://[server]/CFX/Traumatic%20Visions.full.jpg -traumatize.jpg http://[server]/M10/Traumatize.full.jpg -travelers_cloak.jpg http://[server]/IN/Traveler's%20Cloak.full.jpg -traveling_plague.jpg http://[server]/OD/Traveling%20Plague.full.jpg -treacherous_link.jpg http://[server]/UL/Treacherous%20Link.full.jpg -treacherous_urge.jpg http://[server]/PLC/Treacherous%20Urge.full.jpg -treacherous_vampire.jpg http://[server]/JU/Treacherous%20Vampire.full.jpg -treacherous_werewolf.jpg http://[server]/JU/Treacherous%20Werewolf.full.jpg -treachery.jpg http://[server]/UD/Treachery.full.jpg -treasure_hunter.jpg http://[server]/10E/Treasure%20Hunter.full.jpg -treasure_trove.jpg http://[server]/9E/Treasure%20Trove.full.jpg -tree_monkey.jpg http://[server]/9E/Tree%20Monkey.full.jpg -tree_of_tales.jpg http://[server]/MR/Tree%20of%20Tales.full.jpg -treefolk_harbinger.jpg http://[server]/LRW/Treefolk%20Harbinger.full.jpg -treefolk_healer.jpg http://[server]/IN/Treefolk%20Healer.full.jpg -treefolk_mystic.jpg http://[server]/UL/Treefolk%20Mystic.full.jpg -treefolk_seedlings.jpg http://[server]/7E/Treefolk%20Seedlings.full.jpg -treespring_lorian.jpg http://[server]/ON/Treespring%20Lorian.full.jpg -treetop_bracers.jpg http://[server]/10E/Treetop%20Bracers.full.jpg -treetop_defense.jpg http://[server]/PT/Treetop%20Defense.full.jpg -treetop_rangers.jpg http://[server]/US/Treetop%20Rangers.full.jpg -treetop_scout.jpg http://[server]/SC/Treetop%20Scout.full.jpg -treetop_sentinel.jpg http://[server]/OD/Treetop%20Sentinel.full.jpg -treetop_village.jpg http://[server]/10E/Treetop%20Village.full.jpg -tremble.jpg http://[server]/OD/Tremble.full.jpg -tremor.jpg http://[server]/8E/Tremor.full.jpg -trench_wurm.jpg http://[server]/IN/Trench%20Wurm.full.jpg -trenching_steed.jpg http://[server]/PY/Trenching%20Steed.full.jpg -trespasser_il_vec.jpg http://[server]/TSP/Trespasser%20il-Vec.full.jpg -tresserhorn_sinks.jpg http://[server]/CS/Tresserhorn%20Sinks.full.jpg -tresserhorn_skyknight.jpg http://[server]/CS/Tresserhorn%20Skyknight.full.jpg -treva_the_renewer.jpg http://[server]/IN/Treva,%20the%20Renewer.full.jpg -trevas_attendant.jpg http://[server]/IN/Treva's%20Attendant.full.jpg -trevas_charm.jpg http://[server]/PS/Treva's%20Charm.full.jpg -trevas_ruins.jpg http://[server]/PS/Treva's%20Ruins.full.jpg -trialerror.jpg http://[server]/DIS/TrialError.full.jpg -triangle_of_war.jpg http://[server]/VI/Triangle%20of%20War.full.jpg -triassic_egg.jpg http://[server]/LG/Triassic%20Egg.full.jpg -tribal_flames.jpg http://[server]/IN/Tribal%20Flames.full.jpg -tribal_forcemage.jpg http://[server]/LE/Tribal%20Forcemage.full.jpg -tribal_golem.jpg http://[server]/ON/Tribal%20Golem.full.jpg -tribal_unity.jpg http://[server]/ON/Tribal%20Unity.full.jpg -trickbind.jpg http://[server]/TSP/Trickbind.full.jpg -trickery_charm.jpg http://[server]/ON/Trickery%20Charm.full.jpg -trickster_mage.jpg http://[server]/NE/Trickster%20Mage.full.jpg -triclopean_sight.jpg http://[server]/LRW/Triclopean%20Sight.full.jpg -trinisphere.jpg http://[server]/DS/Trinisphere.full.jpg -trinket_mage.jpg http://[server]/FD/Trinket%20Mage.full.jpg -trip_noose.jpg http://[server]/SHM/Trip%20Noose.full.jpg -trip_wire.jpg http://[server]/P3/Trip%20Wire.full.jpg -triskelavus.jpg http://[server]/TSP/Triskelavus.full.jpg -triskelion.jpg http://[server]/4E/Triskelion.full.jpg -trokin_high_guard.jpg http://[server]/P2/Trokin%20High%20Guard.full.jpg -troll_ascetic.jpg http://[server]/10E/Troll%20Ascetic.full.jpg -troll_horn_cameo.jpg http://[server]/IN/Troll-Horn%20Cameo.full.jpg -trolls_of_tel_jilad.jpg http://[server]/MR/Trolls%20of%20Tel-Jilad.full.jpg -tromp_the_domains.jpg http://[server]/TSP/Tromp%20the%20Domains.full.jpg -trophy_hunter.jpg http://[server]/RAV/Trophy%20Hunter.full.jpg -tropical_island.jpg http://[server]/U/Tropical%20Island.full.jpg -tropical_storm.jpg http://[server]/MI/Tropical%20Storm.full.jpg -troubled_healer.jpg http://[server]/PY/Troubled%20Healer.full.jpg -troublesome_spirit.jpg http://[server]/PY/Troublesome%20Spirit.full.jpg -truce.jpg http://[server]/5E/Truce.full.jpg -true_believer.jpg http://[server]/10E/True%20Believer.full.jpg -trumpet_blast.jpg http://[server]/M10/Trumpet%20Blast.full.jpg -trumpeting_armodon.jpg http://[server]/TE/Trumpeting%20Armodon.full.jpg -trusted_advisor.jpg http://[server]/SOK/Trusted%20Advisor.full.jpg -trusty_machete.jpg http://[server]/ZEN/Trusty%20Machete.full.jpg -truth_or_tale.jpg http://[server]/TSP/Truth%20or%20Tale.full.jpg -trygon_predator.jpg http://[server]/DIS/Trygon%20Predator.full.jpg -tsabo_tavoc.jpg http://[server]/IN/Tsabo%20Tavoc.full.jpg -tsabos_assassin.jpg http://[server]/IN/Tsabo's%20Assassin.full.jpg -tsabos_decree.jpg http://[server]/IN/Tsabo's%20Decree.full.jpg -tsabos_web.jpg http://[server]/IN/Tsabo's%20Web.full.jpg -tsunami.jpg http://[server]/5E/Tsunami.full.jpg -tukatongue_thallid.jpg http://[server]/CFX/Tukatongue%20Thallid.full.jpg -tuknir_deathlock.jpg http://[server]/LG/Tuknir%20Deathlock.full.jpg -tuktuk_grunts.jpg http://[server]/ZEN/Tuktuk%20Grunts.full.jpg -tundra.jpg http://[server]/U/Tundra.full.jpg -tundra_kavu.jpg http://[server]/AP/Tundra%20Kavu.full.jpg -tundra_wolves.jpg http://[server]/10E/Tundra%20Wolves.full.jpg -tunnel.jpg http://[server]/4E/Tunnel.full.jpg -tunnel_vision.jpg http://[server]/RAV/Tunnel%20Vision.full.jpg -tunneler_wurm.jpg http://[server]/JU/Tunneler%20Wurm.full.jpg -turbulent_dreams.jpg http://[server]/TO/Turbulent%20Dreams.full.jpg -turf_wound.jpg http://[server]/IN/Turf%20Wound.full.jpg -turn_the_tables.jpg http://[server]/DS/Turn%20the%20Tables.full.jpg -turn_to_dust.jpg http://[server]/MR/Turn%20to%20Dust.full.jpg -turn_to_mist.jpg http://[server]/SHM/Turn%20to%20Mist.full.jpg -turnabout.jpg http://[server]/US/Turnabout.full.jpg -turntimber_basilisk.jpg http://[server]/ZEN/Turntimber%20Basilisk.full.jpg -turntimber_grove.jpg http://[server]/ZEN/Turntimber%20Grove.full.jpg -turntimber_ranger.jpg http://[server]/ZEN/Turntimber%20Ranger.full.jpg -turtleshell_changeling.jpg http://[server]/LRW/Turtleshell%20Changeling.full.jpg -twiddle.jpg http://[server]/8E/Twiddle.full.jpg -twigwalker.jpg http://[server]/OD/Twigwalker.full.jpg -twilight_drover.jpg http://[server]/RAV/Twilight%20Drover.full.jpg -twilight_mire.jpg http://[server]/EVE/Twilight%20Mire.full.jpg -twilight_shepherd.jpg http://[server]/SHM/Twilight%20Shepherd.full.jpg -twilights_call.jpg http://[server]/IN/Twilight's%20Call.full.jpg -twinblade_slasher.jpg http://[server]/EVE/Twinblade%20Slasher.full.jpg -twincast.jpg http://[server]/M10/Twincast.full.jpg -twinning_glass.jpg http://[server]/LRW/Twinning%20Glass.full.jpg -twinstrike.jpg http://[server]/DIS/Twinstrike.full.jpg -twist_allegiance.jpg http://[server]/BOK/Twist%20Allegiance.full.jpg -twisted_abomination.jpg http://[server]/SC/Twisted%20Abomination.full.jpg -twisted_experiment.jpg http://[server]/UD/Twisted%20Experiment.full.jpg -twisted_justice.jpg http://[server]/RAV/Twisted%20Justice.full.jpg -twitch.jpg http://[server]/10E/Twitch.full.jpg -two_headed_dragon.jpg http://[server]/8E/Two-Headed%20Dragon.full.jpg -two_headed_giant_of_foriys.jpg http://[server]/U/Two-Headed%20Giant%20of%20Foriys.full.jpg -two_headed_sliver.jpg http://[server]/TSP/Two-Headed%20Sliver.full.jpg -typhoon.jpg http://[server]/LG/Typhoon.full.jpg -tyrannize.jpg http://[server]/SHM/Tyrannize.full.jpg -tyrranax.jpg http://[server]/FD/Tyrranax.full.jpg \ No newline at end of file diff --git a/res/pics_link/card-pictures_token.txt b/res/pics_link/card-pictures_token.txt deleted file mode 100644 index f05f0f6dc54..00000000000 --- a/res/pics_link/card-pictures_token.txt +++ /dev/null @@ -1,51 +0,0 @@ -[T]ub_1_1_zombie_wizard.jpg http://magiccards.info/extras/token/alara-reborn/zombie-wizard.jpg -[T]b_1_1_rat.jpg http://magiccards.info/extras/token/shadowmoor/rat.jpg -[T]w_1_1_kithkin_soldier.jpg http://magiccards.info/extras/token/lorwyn/kithkin-soldier.jpg -[T]g_1_1_elf_warrior.jpg http://magiccards.info/extras/token/shadowmoor/elf-warrior-2.jpg -[T]g_2_2_wolf.jpg http://magiccards.info/extras/token/zendikar/wolf.jpg -[T]g_2_2_lizard.jpg http://magiccards.info/extras/token/alara-reborn/lizard.jpg -[T]w_1_1_spirit.jpg http://magiccards.info/extras/token/duel-decks-divine-vs-demonic/spirit.jpg -[T]w_n_n_avatar.jpg http://magiccards.info/extras/token/magic-2010/avatar.jpg -[T]w_4_4_angel.jpg http://magiccards.info/extras/token/conflux/angel.jpg -[T]g_1_1_insect.jpg http://magiccards.info/extras/token/player-rewards-2003/insect.jpg -[T]u_1_1_bird.jpg http://magiccards.info/extras/token/player-rewards-2001/bird.jpg -[T]w_1_1_bird.jpg http://magiccards.info/extras/token/zendikar/bird.jpg -[T]rg_1_1_dragon.jpg http://magiccards.info/extras/token/alara-reborn/dragon.jpg -[T]g_4_4_beast.jpg http://magiccards.info/extras/token/player-rewards-2001/beast.jpg -[T]g_3_3_elephant.jpg http://magiccards.info/extras/token/worldwake/elephant.jpg -[T]g_1_1_squirrel.jpg http://magiccards.info/extras/token/player-rewards-2002/squirrel.jpg -[T]g_6_6_wurm.jpg http://magiccards.info/extras/token/player-rewards-2002/wurm.jpg -[T]b_1_1_faerie_rogue.jpg http://magiccards.info/extras/token/morningtide/faerie-rogue.jpg -[T]b_2_2_zombie.jpg http://magiccards.info/extras/token/magic-2010/zombie.jpg -[T]c_1_1_shapeshifter.jpg http://magiccards.info/extras/token/lorwyn/shapeshifter.jpg -[T]c_1_1_sliver.jpg http://magiccards.info/extras/token/player-rewards-2003/sliver.jpg -[T]c_1_1_wasp.jpg http://magiccards.info/extras/token/tenth-edition/wasp.jpg -[T]g_1_1_saproling.jpg http://magiccards.info/extras/token/shards-of-alara/saproling.jpg -[T]g_2_2_bear.jpg http://magiccards.info/extras/token/player-rewards-2001/bear.jpg -[T]g_2_5_treefolk_shaman.jpg http://magiccards.info/extras/token/morningtide/treefolk-shaman.jpg -[T]g_3_3_beast.jpg http://magiccards.info/extras/token/eventide/beast.jpg -[T]b_20_20_marit_lage.jpg http://magiccards.info/extras/token/coldsnap/marit-lage.jpg -[T]r_1_1_goblin.jpg http://magiccards.info/extras/token/player-rewards-2003/goblin.jpg -[T]r_3_1_elemental.jpg http://magiccards.info/extras/token/conflux/elemental.jpg -[T]r_4_4_dragon.jpg http://magiccards.info/extras/token/shards-of-alara/dragon.jpg -[T]r_5_5_dragon.jpg http://magiccards.info/extras/token/worldwake/dragon.jpg -[T]rgw_8_8_beast.jpg http://magiccards.info/extras/token/shards-of-alara/beast.jpg -[T]rw_1_1_goblin_soldier.jpg http://magiccards.info/extras/token/eventide/goblin-soldier.jpg -[T]w_0_1_goat.jpg http://magiccards.info/extras/token/eventide/goat.jpg -[T]w_1_1_soldier.jpg http://magiccards.info/extras/token/shards-of-alara/soldier.jpg -[T]w_5_5_giant_warrior.jpg http://magiccards.info/extras/token/morningtide/giant-warrior.jpg -[T]c_3_4_gargoyle.jpg http://magiccards.info/extras/token/magic-2010/gargoyle.jpg -[T]g_1_1_snake.jpg http://magiccards.info/extras/token/zendikar/snake.jpg -[T]w_1_1_kor_soldier.jpg http://magiccards.info/extras/token/zendikar/kor-soldier.jpg -[T]w_4_4_elemental.jpg http://magiccards.info/extras/token/lorwyn/elemental-2.jpg -[T]c_0_1_eldrazi_spawn.jpg http://magiccards.info/extras/token/rise-of-the-eldrazi/eldrazi-spawn-1.jpg -[T]r_4_4_hellion.jpg http://magiccards.info/extras/token/rise-of-the-eldrazi/hellion.jpg -[T]g_0_1_plant.jpg http://magiccards.info/extras/token/worldwake/plant.jpg -[T]w_1_1_soldier_ally.jpg http://magiccards.info/extras/token/worldwake/soldier-ally.jpg -[T]c_1_1_spirit.jpg http://magiccards.info/extras/token/player-rewards-2004/spirit.jpg -[T]c_5_5_tuktuk_the_returned.jpg http://magiccards.info/extras/token/rise-of-the-eldrazi/tuktuk-the-returned.jpg -[T]gw_1_1_elf_warrior.jpg http://magiccards.info/extras/token/shadowmoor/elf-warrior-1.jpg -[T]r_3_1_elemental_haste.jpg http://magiccards.info/extras/token/shadowmoor/elemental-1.jpg -[T]r_4_4_bird.jpg http://magiccards.info/extras/token/player-rewards-2003/rukh.jpg -[T]u_1_1_thopter.jpg http://magiccards.info/extras/token/shards-of-alara/thopter.jpg -[T]w_4_4_mirror_sigil_sergeant.jpg http://[server]/CFX/Mirror-Sigil%20Sergeant.full.jpg diff --git a/res/pics_link/card-pictures_u.txt b/res/pics_link/card-pictures_u.txt deleted file mode 100644 index bd2d451dfe0..00000000000 --- a/res/pics_link/card-pictures_u.txt +++ /dev/null @@ -1,126 +0,0 @@ -uba_mask.jpg http://[server]/CHK/Uba%20Mask.full.jpg -uktabi_drake.jpg http://[server]/PLC/Uktabi%20Drake.full.jpg -uktabi_efreet.jpg http://[server]/WL/Uktabi%20Efreet.full.jpg -uktabi_faerie.jpg http://[server]/MI/Uktabi%20Faerie.full.jpg -uktabi_kong.jpg http://[server]/UNH/Uktabi%20Kong.full.jpg -uktabi_orangutan.jpg http://[server]/6E/Uktabi%20Orangutan.full.jpg -uktabi_wildcats.jpg http://[server]/7E/Uktabi%20Wildcats.full.jpg -ulasht_the_hate_seed.jpg http://[server]/GP/Ulasht,%20the%20Hate%20Seed.full.jpg -umara_raptor.jpg http://[server]/ZEN/Umara%20Raptor.full.jpg -umbilicus.jpg http://[server]/US/Umbilicus.full.jpg -umbra_stalker.jpg http://[server]/EVE/Umbra%20Stalker.full.jpg -umbral_mantle.jpg http://[server]/SHM/Umbral%20Mantle.full.jpg -umezawas_jitte.jpg http://[server]/BOK/Umezawa's%20Jitte.full.jpg -unbender_tine.jpg http://[server]/ARB/Unbender%20Tine.full.jpg -unblinking_bleb.jpg http://[server]/FUT/Unblinking%20Bleb.full.jpg -unburden.jpg http://[server]/SC/Unburden.full.jpg -unchecked_growth.jpg http://[server]/BOK/Unchecked%20Growth.full.jpg -uncle_istvan.jpg http://[server]/4E/Uncle%20Istvan.full.jpg -uncontrollable_anger.jpg http://[server]/10E/Uncontrollable%20Anger.full.jpg -uncontrolled_infestation.jpg http://[server]/SC/Uncontrolled%20Infestation.full.jpg -undead_gladiator.jpg http://[server]/ON/Undead%20Gladiator.full.jpg -undead_leotau.jpg http://[server]/ALA/Undead%20Leotau.full.jpg -undead_slayer.jpg http://[server]/M10/Undead%20Slayer.full.jpg -undead_warchief.jpg http://[server]/HOP/Undead%20Warchief.full.jpg -undercity_shade.jpg http://[server]/RAV/Undercity%20Shade.full.jpg -underground_river.jpg http://[server]/10E/Underground%20River.full.jpg -underground_sea.jpg http://[server]/U/Underground%20Sea.full.jpg -undergrowth.jpg http://[server]/AL/Undergrowth1.full.jpg -undermine.jpg http://[server]/IN/Undermine.full.jpg -undertaker.jpg http://[server]/MM/Undertaker.full.jpg -undertow.jpg http://[server]/LG/Undertow.full.jpg -underworld_dreams.jpg http://[server]/M10/Underworld%20Dreams.full.jpg -undiscovered_paradise.jpg http://[server]/VI/Undiscovered%20Paradise.full.jpg -undo.jpg http://[server]/VI/Undo.full.jpg -undying_beast.jpg http://[server]/PT/Undying%20Beast.full.jpg -undying_flames.jpg http://[server]/SOK/Undying%20Flames.full.jpg -undying_rage.jpg http://[server]/TSP/Undying%20Rage.full.jpg -unearth.jpg http://[server]/UL/Unearth.full.jpg -unearthly_blizzard.jpg http://[server]/CHK/Unearthly%20Blizzard.full.jpg -unerring_sling.jpg http://[server]/MI/Unerring%20Sling.full.jpg -unforge.jpg http://[server]/DS/Unforge.full.jpg -unfulfilled_desires.jpg http://[server]/MI/Unfulfilled%20Desires.full.jpg -unhinge.jpg http://[server]/TO/Unhinge.full.jpg -unholy_citadel.jpg http://[server]/LG/Unholy%20Citadel.full.jpg -unholy_grotto.jpg http://[server]/ON/Unholy%20Grotto.full.jpg -unholy_strength.jpg http://[server]/M10/Unholy%20Strength.full.jpg -unified_strike.jpg http://[server]/ON/Unified%20Strike.full.jpg -unifying_theory.jpg http://[server]/OD/Unifying%20Theory.full.jpg -unlikely_alliance.jpg http://[server]/AL/Unlikely%20Alliance.full.jpg -unliving_psychopath.jpg http://[server]/DIS/Unliving%20Psychopath.full.jpg -unmake.jpg http://[server]/EVE/Unmake.full.jpg -unmask.jpg http://[server]/MM/Unmask.full.jpg -unnatural_hunger.jpg http://[server]/MM/Unnatural%20Hunger.full.jpg -unnatural_selection.jpg http://[server]/AP/Unnatural%20Selection.full.jpg -unnatural_speed.jpg http://[server]/CHK/Unnatural%20Speed.full.jpg -unnerve.jpg http://[server]/US/Unnerve.full.jpg -unnerving_assault.jpg http://[server]/EVE/Unnerving%20Assault.full.jpg -unquestioned_authority.jpg http://[server]/JU/Unquestioned%20Authority.full.jpg -unscythe_killer_of_kings.jpg http://[server]/ARB/Unscythe,%20Killer%20of%20Kings.full.jpg -unseen_walker.jpg http://[server]/6E/Unseen%20Walker.full.jpg -unspeakable_symbol.jpg http://[server]/SC/Unspeakable%20Symbol.full.jpg -unstable_footing.jpg http://[server]/ZEN/Unstable%20Footing.full.jpg -unstable_frontier.jpg http://[server]/CFX/Unstable%20Frontier.full.jpg -unstable_hulk.jpg http://[server]/LE/Unstable%20Hulk.full.jpg -unstable_mutation.jpg http://[server]/5E/Unstable%20Mutation.full.jpg -unstable_shapeshifter.jpg http://[server]/TE/Unstable%20Shapeshifter.full.jpg -unstoppable_ash.jpg http://[server]/MOR/Unstoppable%20Ash.full.jpg -unsummon.jpg http://[server]/M10/Unsummon.full.jpg -untaidake_the_cloud_keeper.jpg http://[server]/CHK/Untaidake,%20the%20Cloud%20Keeper.full.jpg -untamed_wilds.jpg http://[server]/7E/Untamed%20Wilds.full.jpg -unwilling_recruit.jpg http://[server]/EVE/Unwilling%20Recruit.full.jpg -unworthy_dead.jpg http://[server]/US/Unworthy%20Dead.full.jpg -unyaro_bee_sting.jpg http://[server]/MI/Unyaro%20Bee%20Sting.full.jpg -unyaro_bees.jpg http://[server]/TSP/Unyaro%20Bees.full.jpg -unyaro_griffin.jpg http://[server]/6E/Unyaro%20Griffin.full.jpg -updraft.jpg http://[server]/5E/Updraft.full.jpg -upheaval.jpg http://[server]/OD/Upheaval.full.jpg -uphill_battle.jpg http://[server]/MM/Uphill%20Battle.full.jpg -uproot.jpg http://[server]/BOK/Uproot.full.jpg -upwelling.jpg http://[server]/10E/Upwelling.full.jpg -ur_drago.jpg http://[server]/LG/Ur-Drago.full.jpg -ur_golems_eye.jpg http://[server]/9E/Ur-Golem's%20Eye.full.jpg -urborg.jpg http://[server]/LG/Urborg.full.jpg -urborg_drake.jpg http://[server]/IN/Urborg%20Drake.full.jpg -urborg_elf.jpg http://[server]/AP/Urborg%20Elf.full.jpg -urborg_emissary.jpg http://[server]/IN/Urborg%20Emissary.full.jpg -urborg_justice.jpg http://[server]/WL/Urborg%20Justice.full.jpg -urborg_mindsucker.jpg http://[server]/VI/Urborg%20Mindsucker.full.jpg -urborg_panther.jpg http://[server]/MI/Urborg%20Panther.full.jpg -urborg_phantom.jpg http://[server]/IN/Urborg%20Phantom.full.jpg -urborg_shambler.jpg http://[server]/IN/Urborg%20Shambler.full.jpg -urborg_skeleton.jpg http://[server]/IN/Urborg%20Skeleton.full.jpg -urborg_stalker.jpg http://[server]/WL/Urborg%20Stalker.full.jpg -urborg_syphon_mage.jpg http://[server]/TSP/Urborg%20Syphon-Mage.full.jpg -urborg_tomb_of_yawgmoth.jpg http://[server]/PLC/Urborg,%20Tomb%20of%20Yawgmoth.full.jpg -urborg_uprising.jpg http://[server]/AP/Urborg%20Uprising.full.jpg -urborg_volcano.jpg http://[server]/8E/Urborg%20Volcano.full.jpg -uril_the_miststalker.jpg http://[server]/ARB/Uril,%20the%20Miststalker.full.jpg -ursapine.jpg http://[server]/RAV/Ursapine.full.jpg -ursine_fylgja.jpg http://[server]/CS/Ursine%20Fylgja.full.jpg -urza.jpg http://[server]/VG/Urza.full.jpg -urzas_armor.jpg http://[server]/8E/Urza's%20Armor.full.jpg -urzas_avenger.jpg http://[server]/5E/Urza's%20Avenger.full.jpg -urzas_bauble.jpg http://[server]/5E/Urza's%20Bauble.full.jpg -urzas_blueprints.jpg http://[server]/UL/Urza's%20Blueprints.full.jpg -urzas_chalice.jpg http://[server]/AQ/Urza's%20Chalice.full.jpg -urzas_contact_lenses.jpg http://[server]/UG/Urza's%20Contact%20Lenses.full.jpg -urzas_engine.jpg http://[server]/AL/Urza's%20Engine.full.jpg -urzas_factory.jpg http://[server]/TSP/Urza's%20Factory.full.jpg -urzas_filter.jpg http://[server]/IN/Urza's%20Filter.full.jpg -urzas_guilt.jpg http://[server]/PS/Urza's%20Guilt.full.jpg -urzas_hot_tub.jpg http://[server]/UNH/Urza's%20Hot%20Tub.full.jpg -urzas_incubator.jpg http://[server]/UD/Urza's%20Incubator.full.jpg -urzas_mine.jpg http://[server]/9E/Urza's%20Mine.full.jpg -urzas_miter.jpg http://[server]/AQ/Urza's%20Miter.full.jpg -urzas_power_plant.jpg http://[server]/9E/Urza's%20Power%20Plant.full.jpg -urzas_rage.jpg http://[server]/IN/Urza's%20Rage.full.jpg -urzas_science_fair_project.jpg http://[server]/UG/Urza's%20Science%20Fair%20Project.full.jpg -urzas_tower.jpg http://[server]/9E/Urza's%20Tower.full.jpg -uthden_troll.jpg http://[server]/4E/Uthden%20Troll.full.jpg -utopia_mycon.jpg http://[server]/FUT/Utopia%20Mycon.full.jpg -utopia_sprawl.jpg http://[server]/DIS/Utopia%20Sprawl.full.jpg -utopia_tree.jpg http://[server]/9E/Utopia%20Tree.full.jpg -utopia_vow.jpg http://[server]/PLC/Utopia%20Vow.full.jpg -utvara_scalper.jpg http://[server]/DIS/Utvara%20Scalper.full.jpg -uyo_silent_prophet.jpg http://[server]/CHK/Uyo,%20Silent%20Prophet.full.jpg \ No newline at end of file diff --git a/res/pics_link/card-pictures_v.txt b/res/pics_link/card-pictures_v.txt deleted file mode 100644 index 729f71749dd..00000000000 --- a/res/pics_link/card-pictures_v.txt +++ /dev/null @@ -1,283 +0,0 @@ -vacuumelt.jpg http://[server]/GP/Vacuumelt.full.jpg -vaevictis_asmadi.jpg http://[server]/LG/Vaevictis%20Asmadi.full.jpg -vagrant_plowbeasts.jpg http://[server]/CFX/Vagrant%20Plowbeasts.full.jpg -valakut_the_molten_pinnacle.jpg http://[server]/ZEN/Valakut,%20the%20Molten%20Pinnacle.full.jpg -valeron_outlander.jpg http://[server]/CFX/Valeron%20Outlander.full.jpg -valiant_guard.jpg http://[server]/CFX/Valiant%20Guard.full.jpg -valley_rannet.jpg http://[server]/ARB/Valley%20Rannet.full.jpg -valleymaker.jpg http://[server]/SHM/Valleymaker.full.jpg -valor.jpg http://[server]/JU/Valor.full.jpg -valor_made_real.jpg http://[server]/DIS/Valor%20Made%20Real.full.jpg -valorous_charge.jpg http://[server]/PT/Valorous%20Charge.full.jpg -vampire_aristocrat.jpg http://[server]/M10/Vampire%20Aristocrat.full.jpg -vampire_bats.jpg http://[server]/10E/Vampire%20Bats.full.jpg -vampire_hexmage.jpg http://[server]/ZEN/Vampire%20Hexmage.full.jpg -vampire_hounds.jpg http://[server]/EX/Vampire%20Hounds.full.jpg -vampire_lacerator.jpg http://[server]/ZEN/Vampire%20Lacerator.full.jpg -vampire_nighthawk.jpg http://[server]/ZEN/Vampire%20Nighthawk.full.jpg -vampire_nocturnus.jpg http://[server]/M10/Vampire%20Nocturnus.full.jpg -vampires_bite.jpg http://[server]/ZEN/Vampire's%20Bite.full.jpg -vampiric_dragon.jpg http://[server]/OD/Vampiric%20Dragon.full.jpg -vampiric_embrace.jpg http://[server]/US/Vampiric%20Embrace.full.jpg -vampiric_feast.jpg http://[server]/PT/Vampiric%20Feast.full.jpg -vampiric_link.jpg http://[server]/PLC/Vampiric%20Link.full.jpg -vampiric_sliver.jpg http://[server]/TSP/Vampiric%20Sliver.full.jpg -vampiric_spirit.jpg http://[server]/8E/Vampiric%20Spirit.full.jpg -vampiric_touch.jpg http://[server]/PT/Vampiric%20Touch.full.jpg -vampiric_tutor.jpg http://[server]/6E/Vampiric%20Tutor.full.jpg -vampirism.jpg http://[server]/VI/Vampirism.full.jpg -vanish_into_memory.jpg http://[server]/CS/Vanish%20into%20Memory.full.jpg -vanishing.jpg http://[server]/VI/Vanishing.full.jpg -vanquish.jpg http://[server]/FD/Vanquish.full.jpg -vaporous_djinn.jpg http://[server]/MI/Vaporous%20Djinn.full.jpg -varchilds_crusader.jpg http://[server]/AL/Varchild's%20Crusader1.full.jpg -varchilds_war_riders.jpg http://[server]/AL/Varchild's%20War-Riders.full.jpg -vassals_duty.jpg http://[server]/CHK/Vassal's%20Duty.full.jpg -vastwood_gorger.jpg http://[server]/ZEN/Vastwood%20Gorger.full.jpg -vault_of_whispers.jpg http://[server]/MR/Vault%20of%20Whispers.full.jpg -vebulid.jpg http://[server]/US/Vebulid.full.jpg -vec_townships.jpg http://[server]/TE/Vec%20Townships.full.jpg -vectis_agents.jpg http://[server]/CFX/Vectis%20Agents.full.jpg -vectis_dominator.jpg http://[server]/ARB/Vectis%20Dominator.full.jpg -vectis_silencers.jpg http://[server]/ALA/Vectis%20Silencers.full.jpg -vedalken_aethermage.jpg http://[server]/FUT/Vedalken%20AEthermage.full.jpg -vedalken_archmage.jpg http://[server]/MR/Vedalken%20Archmage.full.jpg -vedalken_dismisser.jpg http://[server]/RAV/Vedalken%20Dismisser.full.jpg -vedalken_engineer.jpg http://[server]/DS/Vedalken%20Engineer.full.jpg -vedalken_entrancer.jpg http://[server]/RAV/Vedalken%20Entrancer.full.jpg -vedalken_ghoul.jpg http://[server]/ARB/Vedalken%20Ghoul.full.jpg -vedalken_heretic.jpg http://[server]/ARB/Vedalken%20Heretic.full.jpg -vedalken_mastermind.jpg http://[server]/10E/Vedalken%20Mastermind.full.jpg -vedalken_orrery.jpg http://[server]/FD/Vedalken%20Orrery.full.jpg -vedalken_outlander.jpg http://[server]/CFX/Vedalken%20Outlander.full.jpg -vedalken_plotter.jpg http://[server]/GP/Vedalken%20Plotter.full.jpg -vedalken_shackles.jpg http://[server]/FD/Vedalken%20Shackles.full.jpg -veil_of_birds.jpg http://[server]/US/Veil%20of%20Birds.full.jpg -veil_of_secrecy.jpg http://[server]/BOK/Veil%20of%20Secrecy.full.jpg -veiled_apparition.jpg http://[server]/US/Veiled%20Apparition.full.jpg -veiled_crocodile.jpg http://[server]/US/Veiled%20Crocodile.full.jpg -veiled_sentry.jpg http://[server]/US/Veiled%20Sentry.full.jpg -veiled_serpent.jpg http://[server]/US/Veiled%20Serpent.full.jpg -veiling_oddity.jpg http://[server]/PLC/Veiling%20Oddity.full.jpg -veilstone_amulet.jpg http://[server]/FUT/Veilstone%20Amulet.full.jpg -vein_drinker.jpg http://[server]/ALA/Vein%20Drinker.full.jpg -veinfire_borderpost.jpg http://[server]/ARB/Veinfire%20Borderpost.full.jpg -veldrane_of_sengir.jpg http://[server]/HL/Veldrane%20of%20Sengir.full.jpg -veldt.jpg http://[server]/IA/Veldt.full.jpg -venarian_glimmer.jpg http://[server]/PLC/Venarian%20Glimmer.full.jpg -venarian_gold.jpg http://[server]/LG/Venarian%20Gold.full.jpg -vendetta.jpg http://[server]/MM/Vendetta.full.jpg -vendilion_clique.jpg http://[server]/MOR/Vendilion%20Clique.full.jpg -venerable_kumo.jpg http://[server]/CHK/Venerable%20Kumo.full.jpg -venerable_monk.jpg http://[server]/10E/Venerable%20Monk.full.jpg -vengeance.jpg http://[server]/9E/Vengeance.full.jpg -vengeful_dead.jpg http://[server]/SC/Vengeful%20Dead.full.jpg -vengeful_dreams.jpg http://[server]/TO/Vengeful%20Dreams.full.jpg -vengeful_firebrand.jpg http://[server]/MOR/Vengeful%20Firebrand.full.jpg -vengeful_rebirth.jpg http://[server]/ARB/Vengeful%20Rebirth.full.jpg -venom.jpg http://[server]/5E/Venom.full.jpg -venomous_breath.jpg http://[server]/MM/Venomous%20Breath.full.jpg -venomous_dragonfly.jpg http://[server]/MM/Venomous%20Dragonfly.full.jpg -venomous_fangs.jpg http://[server]/US/Venomous%20Fangs.full.jpg -venomous_vines.jpg http://[server]/JU/Venomous%20Vines.full.jpg -venomspout_brackus.jpg http://[server]/ON/Venomspout%20Brackus.full.jpg -venser_shaper_savant.jpg http://[server]/FUT/Venser,%20Shaper%20Savant.full.jpg -vensers_diffusion.jpg http://[server]/FUT/Venser's%20Diffusion.full.jpg -vensers_sliver.jpg http://[server]/TSP/Venser's%20Sliver.full.jpg -ventifact_bottle.jpg http://[server]/MI/Ventifact%20Bottle.full.jpg -verdant_catacombs.jpg http://[server]/ZEN/Verdant%20Catacombs.full.jpg -verdant_eidolon.jpg http://[server]/DIS/Verdant%20Eidolon.full.jpg -verdant_embrace.jpg http://[server]/TSP/Verdant%20Embrace.full.jpg -verdant_field.jpg http://[server]/PY/Verdant%20Field.full.jpg -verdant_force.jpg http://[server]/10E/Verdant%20Force.full.jpg -verdant_succession.jpg http://[server]/OD/Verdant%20Succession.full.jpg -verdant_touch.jpg http://[server]/SH/Verdant%20Touch.full.jpg -verdeloth_the_ancient.jpg http://[server]/IN/Verdeloth%20the%20Ancient.full.jpg -verdigris.jpg http://[server]/TE/Verdigris.full.jpg -verduran_emissary.jpg http://[server]/IN/Verduran%20Emissary.full.jpg -verduran_enchantress.jpg http://[server]/9E/Verduran%20Enchantress.full.jpg -vermiculos.jpg http://[server]/MR/Vermiculos.full.jpg -vernal_bloom.jpg http://[server]/8E/Vernal%20Bloom.full.jpg -vernal_equinox.jpg http://[server]/MM/Vernal%20Equinox.full.jpg -vertigo.jpg http://[server]/6E/Vertigo.full.jpg -vertigo_spawn.jpg http://[server]/GP/Vertigo%20Spawn.full.jpg -vesper_ghoul.jpg http://[server]/DIS/Vesper%20Ghoul.full.jpg -vesuva.jpg http://[server]/TSP/Vesuva.full.jpg -vesuvan_doppelganger.jpg http://[server]/U/Vesuvan%20Doppelganger.full.jpg -vesuvan_shapeshifter.jpg http://[server]/TSP/Vesuvan%20Shapeshifter.full.jpg -veteran_armorer.jpg http://[server]/RAV/Veteran%20Armorer.full.jpg -veteran_armorsmith.jpg http://[server]/M10/Veteran%20Armorsmith.full.jpg -veteran_bodyguard.jpg http://[server]/U/Veteran%20Bodyguard.full.jpg -veteran_brawlers.jpg http://[server]/PY/Veteran%20Brawlers.full.jpg -veteran_cavalier.jpg http://[server]/9E/Veteran%20Cavalier.full.jpg -veteran_explorer.jpg http://[server]/WL/Veteran%20Explorer.full.jpg -veteran_of_the_depths.jpg http://[server]/LRW/Veteran%20of%20the%20Depths.full.jpg -veteran_swordsmith.jpg http://[server]/M10/Veteran%20Swordsmith.full.jpg -veterans_armaments.jpg http://[server]/MOR/Veteran's%20Armaments.full.jpg -veterans_voice.jpg http://[server]/AL/Veteran's%20Voice1.full.jpg -vex.jpg http://[server]/DS/Vex.full.jpg -vexing_arcanix.jpg http://[server]/8E/Vexing%20Arcanix.full.jpg -vexing_beetle.jpg http://[server]/LE/Vexing%20Beetle.full.jpg -vexing_shusher.jpg http://[server]/SHM/Vexing%20Shusher.full.jpg -vexing_sphinx.jpg http://[server]/CS/Vexing%20Sphinx.full.jpg -vhati_il_dal.jpg http://[server]/TE/Vhati%20il-Dal.full.jpg -viashino_bey.jpg http://[server]/UL/Viashino%20Bey.full.jpg -viashino_bladescout.jpg http://[server]/TSP/Viashino%20Bladescout.full.jpg -viashino_cutthroat.jpg http://[server]/UL/Viashino%20Cutthroat.full.jpg -viashino_fangtail.jpg http://[server]/RAV/Viashino%20Fangtail.full.jpg -viashino_grappler.jpg http://[server]/IN/Viashino%20Grappler.full.jpg -viashino_heretic.jpg http://[server]/UL/Viashino%20Heretic.full.jpg -viashino_outrider.jpg http://[server]/US/Viashino%20Outrider.full.jpg -viashino_runner.jpg http://[server]/10E/Viashino%20Runner.full.jpg -viashino_sandscout.jpg http://[server]/10E/Viashino%20Sandscout.full.jpg -viashino_sandstalker.jpg http://[server]/9E/Viashino%20Sandstalker.full.jpg -viashino_sandswimmer.jpg http://[server]/US/Viashino%20Sandswimmer.full.jpg -viashino_skeleton.jpg http://[server]/ALA/Viashino%20Skeleton.full.jpg -viashino_slasher.jpg http://[server]/RAV/Viashino%20Slasher.full.jpg -viashino_slaughtermaster.jpg http://[server]/CFX/Viashino%20Slaughtermaster.full.jpg -viashino_spearhunter.jpg http://[server]/M10/Viashino%20Spearhunter.full.jpg -viashino_warrior.jpg http://[server]/6E/Viashino%20Warrior.full.jpg -viashino_weaponsmith.jpg http://[server]/US/Viashino%20Weaponsmith.full.jpg -viashivan_dragon.jpg http://[server]/VI/Viashivan%20Dragon.full.jpg -vibrating_sphere.jpg http://[server]/IA/Vibrating%20Sphere.full.jpg -vicious_betrayal.jpg http://[server]/FD/Vicious%20Betrayal.full.jpg -vicious_hunger.jpg http://[server]/8E/Vicious%20Hunger.full.jpg -vicious_kavu.jpg http://[server]/IN/Vicious%20Kavu.full.jpg -vicious_shadows.jpg http://[server]/ALA/Vicious%20Shadows.full.jpg -victimize.jpg http://[server]/US/Victimize.full.jpg -victual_sliver.jpg http://[server]/SH/Victual%20Sliver.full.jpg -view_from_above.jpg http://[server]/CFX/View%20from%20Above.full.jpg -vigean_graftmage.jpg http://[server]/DIS/Vigean%20Graftmage.full.jpg -vigean_hydropon.jpg http://[server]/DIS/Vigean%20Hydropon.full.jpg -vigean_intuition.jpg http://[server]/DIS/Vigean%20Intuition.full.jpg -vigilance.jpg http://[server]/CHK/Vigilance.full.jpg -vigilant_drake.jpg http://[server]/7E/Vigilant%20Drake.full.jpg -vigilant_martyr.jpg http://[server]/MI/Vigilant%20Martyr.full.jpg -vigilant_sentry.jpg http://[server]/JU/Vigilant%20Sentry.full.jpg -vigor.jpg http://[server]/LRW/Vigor.full.jpg -vigor_mortis.jpg http://[server]/RAV/Vigor%20Mortis.full.jpg -vigorous_charge.jpg http://[server]/IN/Vigorous%20Charge.full.jpg -vile_bile.jpg http://[server]/UNH/Vile%20Bile.full.jpg -vile_consumption.jpg http://[server]/IN/Vile%20Consumption.full.jpg -vile_deacon.jpg http://[server]/LE/Vile%20Deacon.full.jpg -vile_requiem.jpg http://[server]/US/Vile%20Requiem.full.jpg -village_elder.jpg http://[server]/MI/Village%20Elder.full.jpg -villainous_ogre.jpg http://[server]/CHK/Villainous%20Ogre.full.jpg -vindicate.jpg http://[server]/AP/Vindicate.full.jpg -vindictive_mob.jpg http://[server]/RAV/Vindictive%20Mob.full.jpg -vine_dryad.jpg http://[server]/MM/Vine%20Dryad.full.jpg -vine_kami.jpg http://[server]/CHK/Vine%20Kami.full.jpg -vine_trellis.jpg http://[server]/8E/Vine%20Trellis.full.jpg -vinelasher_kudzu.jpg http://[server]/RAV/Vinelasher%20Kudzu.full.jpg -vines_of_vastwood.jpg http://[server]/ZEN/Vines%20of%20Vastwood.full.jpg -vintara_elephant.jpg http://[server]/PY/Vintara%20Elephant.full.jpg -vintara_snapper.jpg http://[server]/PY/Vintara%20Snapper.full.jpg -violent_eruption.jpg http://[server]/TO/Violent%20Eruption.full.jpg -violent_outburst.jpg http://[server]/ARB/Violent%20Outburst.full.jpg -violent_ultimatum.jpg http://[server]/ALA/Violent%20Ultimatum.full.jpg -violet_pall.jpg http://[server]/MOR/Violet%20Pall.full.jpg -viridescent_wisps.jpg http://[server]/SHM/Viridescent%20Wisps.full.jpg -viridian_acolyte.jpg http://[server]/DS/Viridian%20Acolyte.full.jpg -viridian_joiner.jpg http://[server]/MR/Viridian%20Joiner.full.jpg -viridian_longbow.jpg http://[server]/MR/Viridian%20Longbow.full.jpg -viridian_lorebearers.jpg http://[server]/FD/Viridian%20Lorebearers.full.jpg -viridian_scout.jpg http://[server]/FD/Viridian%20Scout.full.jpg -viridian_shaman.jpg http://[server]/10E/Viridian%20Shaman.full.jpg -viridian_zealot.jpg http://[server]/DS/Viridian%20Zealot.full.jpg -virtues_ruin.jpg http://[server]/PT/Virtue's%20Ruin.full.jpg -virtuous_charge.jpg http://[server]/P3/Virtuous%20Charge.full.jpg -virulent_sliver.jpg http://[server]/FUT/Virulent%20Sliver.full.jpg -visara_the_dreadful.jpg http://[server]/ON/Visara%20the%20Dreadful.full.jpg -viscera_dragger.jpg http://[server]/ALA/Viscera%20Dragger.full.jpg -viscerid_armor.jpg http://[server]/AL/Viscerid%20Armor1.full.jpg -viscerid_deepwalker.jpg http://[server]/TSP/Viscerid%20Deepwalker.full.jpg -viscerid_drone.jpg http://[server]/AL/Viscerid%20Drone.full.jpg -viscid_lemures.jpg http://[server]/TSP/Viscid%20Lemures.full.jpg -viseling.jpg http://[server]/NE/Viseling.full.jpg -vision_charm.jpg http://[server]/VI/Vision%20Charm.full.jpg -vision_skeins.jpg http://[server]/DIS/Vision%20Skeins.full.jpg -visions.jpg http://[server]/LG/Visions.full.jpg -vital_surge.jpg http://[server]/BOK/Vital%20Surge.full.jpg -vitality_charm.jpg http://[server]/ON/Vitality%20Charm.full.jpg -vitalize.jpg http://[server]/6E/Vitalize.full.jpg -vitalizing_cascade.jpg http://[server]/MI/Vitalizing%20Cascade.full.jpg -vitalizing_wind.jpg http://[server]/PY/Vitalizing%20Wind.full.jpg -vitaspore_thallid.jpg http://[server]/PLC/Vitaspore%20Thallid.full.jpg -vithian_renegades.jpg http://[server]/ARB/Vithian%20Renegades.full.jpg -vithian_stinger.jpg http://[server]/ALA/Vithian%20Stinger.full.jpg -vitu_ghazi_the_city_tree.jpg http://[server]/RAV/Vitu-Ghazi,%20the%20City-Tree.full.jpg -vivid_crag.jpg http://[server]/LRW/Vivid%20Crag.full.jpg -vivid_creek.jpg http://[server]/LRW/Vivid%20Creek.full.jpg -vivid_grove.jpg http://[server]/LRW/Vivid%20Grove.full.jpg -vivid_marsh.jpg http://[server]/LRW/Vivid%20Marsh.full.jpg -vivid_meadow.jpg http://[server]/LRW/Vivid%20Meadow.full.jpg -vivify.jpg http://[server]/OD/Vivify.full.jpg -vizzerdrix.jpg http://[server]/9E/Vizzerdrix.full.jpg -vodalian_hypnotist.jpg http://[server]/IN/Vodalian%20Hypnotist.full.jpg -vodalian_illusionist.jpg http://[server]/WL/Vodalian%20Illusionist.full.jpg -vodalian_knights.jpg http://[server]/FE/Vodalian%20Knights.full.jpg -vodalian_mage.jpg http://[server]/FE/Vodalian%20Mage1.full.jpg -vodalian_merchant.jpg http://[server]/IN/Vodalian%20Merchant.full.jpg -vodalian_mystic.jpg http://[server]/AP/Vodalian%20Mystic.full.jpg -vodalian_serpent.jpg http://[server]/IN/Vodalian%20Serpent.full.jpg -vodalian_soldiers.jpg http://[server]/6E/Vodalian%20Soldiers.full.jpg -vodalian_war_machine.jpg http://[server]/FE/Vodalian%20War%20Machine.full.jpg -vodalian_zombie.jpg http://[server]/IN/Vodalian%20Zombie.full.jpg -voice_of_all.jpg http://[server]/10E/Voice%20of%20All.full.jpg -voice_of_duty.jpg http://[server]/UD/Voice%20of%20Duty.full.jpg -voice_of_grace.jpg http://[server]/US/Voice%20of%20Grace.full.jpg -voice_of_law.jpg http://[server]/US/Voice%20of%20Law.full.jpg -voice_of_reason.jpg http://[server]/UD/Voice%20of%20Reason.full.jpg -voice_of_the_woods.jpg http://[server]/EVG/Voice%20of%20the%20Woods.full.jpg -voice_of_truth.jpg http://[server]/NE/Voice%20of%20Truth.full.jpg -voices_from_the_void.jpg http://[server]/CFX/Voices%20from%20the%20Void.full.jpg -void.jpg http://[server]/IN/Void.full.jpg -void_maw.jpg http://[server]/CS/Void%20Maw.full.jpg -voidmage_apprentice.jpg http://[server]/LE/Voidmage%20Apprentice.full.jpg -voidmage_husher.jpg http://[server]/TSP/Voidmage%20Husher.full.jpg -voidmage_prodigy.jpg http://[server]/ON/Voidmage%20Prodigy.full.jpg -voidslime.jpg http://[server]/DIS/Voidslime.full.jpg -voidstone_gargoyle.jpg http://[server]/PLC/Voidstone%20Gargoyle.full.jpg -volcanic_awakening.jpg http://[server]/TSP/Volcanic%20Awakening.full.jpg -volcanic_dragon.jpg http://[server]/6E/Volcanic%20Dragon.full.jpg -volcanic_eruption.jpg http://[server]/4E/Volcanic%20Eruption.full.jpg -volcanic_fallout.jpg http://[server]/CFX/Volcanic%20Fallout.full.jpg -volcanic_geyser.jpg http://[server]/6E/Volcanic%20Geyser.full.jpg -volcanic_hammer.jpg http://[server]/9E/Volcanic%20Hammer.full.jpg -volcanic_island.jpg http://[server]/U/Volcanic%20Island.full.jpg -volcanic_spray.jpg http://[server]/OD/Volcanic%20Spray.full.jpg -volcanic_submersion.jpg http://[server]/ALA/Volcanic%20Submersion.full.jpg -volcanic_wind.jpg http://[server]/MM/Volcanic%20Wind.full.jpg -volcano_hellion.jpg http://[server]/PLC/Volcano%20Hellion.full.jpg -volcano_imp.jpg http://[server]/PS/Volcano%20Imp.full.jpg -volley_of_boulders.jpg http://[server]/OD/Volley%20of%20Boulders.full.jpg -volrath.jpg http://[server]/VG/Volrath.full.jpg -volrath_the_fallen.jpg http://[server]/NE/Volrath%20the%20Fallen.full.jpg -volraths_curse.jpg http://[server]/TE/Volrath's%20Curse.full.jpg -volraths_dungeon.jpg http://[server]/EX/Volrath's%20Dungeon.full.jpg -volraths_gardens.jpg http://[server]/SH/Volrath's%20Gardens.full.jpg -volraths_laboratory.jpg http://[server]/SH/Volrath's%20Laboratory.full.jpg -volraths_motion_sensor.jpg http://[server]/UG/Volrath's%20Motion%20Sensor.full.jpg -volraths_shapeshifter.jpg http://[server]/SH/Volrath's%20Shapeshifter.full.jpg -volraths_stronghold.jpg http://[server]/SH/Volrath's%20Stronghold.full.jpg -voltaic_construct.jpg http://[server]/DS/Voltaic%20Construct.full.jpg -voltaic_key.jpg http://[server]/US/Voltaic%20Key.full.jpg -volunteer_militia.jpg http://[server]/P3/Volunteer%20Militia.full.jpg -volunteer_reserves.jpg http://[server]/WL/Volunteer%20Reserves.full.jpg -voodoo_doll.jpg http://[server]/LG/Voodoo%20Doll.full.jpg -voracious_cobra.jpg http://[server]/IN/Voracious%20Cobra.full.jpg -voracious_dragon.jpg http://[server]/CFX/Voracious%20Dragon.full.jpg -voracious_hatchling.jpg http://[server]/EVE/Voracious%20Hatchling.full.jpg -vorosh_the_hunter.jpg http://[server]/PLC/Vorosh,%20the%20Hunter.full.jpg -vorrac_battlehorns.jpg http://[server]/MR/Vorrac%20Battlehorns.full.jpg -votary_of_the_conclave.jpg http://[server]/RAV/Votary%20of%20the%20Conclave.full.jpg -voyager_staff.jpg http://[server]/RAV/Voyager%20Staff.full.jpg -vug_lizard.jpg http://[server]/US/Vug%20Lizard.full.jpg -vulshok_battlegear.jpg http://[server]/MR/Vulshok%20Battlegear.full.jpg -vulshok_battlemaster.jpg http://[server]/MR/Vulshok%20Battlemaster.full.jpg -vulshok_berserker.jpg http://[server]/MR/Vulshok%20Berserker.full.jpg -vulshok_gauntlets.jpg http://[server]/MR/Vulshok%20Gauntlets.full.jpg -vulshok_morningstar.jpg http://[server]/9E/Vulshok%20Morningstar.full.jpg -vulshok_sorcerer.jpg http://[server]/FD/Vulshok%20Sorcerer.full.jpg -vulshok_war_boar.jpg http://[server]/DS/Vulshok%20War%20Boar.full.jpg -vulturous_zombie.jpg http://[server]/RAV/Vulturous%20Zombie.full.jpg \ No newline at end of file diff --git a/res/pics_link/card-pictures_w.txt b/res/pics_link/card-pictures_w.txt deleted file mode 100644 index 479798ba907..00000000000 --- a/res/pics_link/card-pictures_w.txt +++ /dev/null @@ -1,446 +0,0 @@ -wail_of_the_nim.jpg http://[server]/MR/Wail%20of%20the%20Nim.full.jpg -waiting_in_the_weeds.jpg http://[server]/6E/Waiting%20in%20the%20Weeds.full.jpg -wake_of_destruction.jpg http://[server]/UD/Wake%20of%20Destruction.full.jpg -wake_of_vultures.jpg http://[server]/VI/Wake%20of%20Vultures.full.jpg -wake_thrasher.jpg http://[server]/EVE/Wake%20Thrasher.full.jpg -wakestone_gargoyle.jpg http://[server]/DIS/Wakestone%20Gargoyle.full.jpg -waking_nightmare.jpg http://[server]/CHK/Waking%20Nightmare.full.jpg -walk_the_aeons.jpg http://[server]/TSP/Walk%20the%20Aeons.full.jpg -walker_of_secret_ways.jpg http://[server]/BOK/Walker%20of%20Secret%20Ways.full.jpg -walker_of_the_grove.jpg http://[server]/MOR/Walker%20of%20the%20Grove.full.jpg -walking_archive.jpg http://[server]/DIS/Walking%20Archive.full.jpg -walking_dead.jpg http://[server]/LG/Walking%20Dead.full.jpg -walking_desecration.jpg http://[server]/ON/Walking%20Desecration.full.jpg -walking_dream.jpg http://[server]/SH/Walking%20Dream.full.jpg -walking_sponge.jpg http://[server]/UL/Walking%20Sponge.full.jpg -walking_wall.jpg http://[server]/IA/Walking%20Wall.full.jpg -wall_of_air.jpg http://[server]/10E/Wall%20of%20Air.full.jpg -wall_of_blood.jpg http://[server]/MR/Wall%20of%20Blood.full.jpg -wall_of_blossoms.jpg http://[server]/SH/Wall%20of%20Blossoms.full.jpg -wall_of_bone.jpg http://[server]/M10/Wall%20of%20Bone.full.jpg -wall_of_brambles.jpg http://[server]/5E/Wall%20of%20Brambles.full.jpg -wall_of_caltrops.jpg http://[server]/LG/Wall%20of%20Caltrops.full.jpg -wall_of_corpses.jpg http://[server]/MI/Wall%20of%20Corpses.full.jpg -wall_of_deceit.jpg http://[server]/LE/Wall%20of%20Deceit.full.jpg -wall_of_denial.jpg http://[server]/ARB/Wall%20of%20Denial.full.jpg -wall_of_diffusion.jpg http://[server]/TE/Wall%20of%20Diffusion.full.jpg -wall_of_distortion.jpg http://[server]/MM/Wall%20of%20Distortion.full.jpg -wall_of_dust.jpg http://[server]/4E/Wall%20of%20Dust.full.jpg -wall_of_earth.jpg http://[server]/LG/Wall%20of%20Earth.full.jpg -wall_of_essence.jpg http://[server]/SH/Wall%20of%20Essence.full.jpg -wall_of_faith.jpg http://[server]/M10/Wall%20of%20Faith.full.jpg -wall_of_fire.jpg http://[server]/M10/Wall%20of%20Fire.full.jpg -wall_of_frost.jpg http://[server]/M10/Wall%20of%20Frost.full.jpg -wall_of_glare.jpg http://[server]/UD/Wall%20of%20Glare.full.jpg -wall_of_granite.jpg http://[server]/PT/Wall%20of%20Granite.full.jpg -wall_of_heat.jpg http://[server]/LG/Wall%20of%20Heat.full.jpg -wall_of_hope.jpg http://[server]/LE/Wall%20of%20Hope.full.jpg -wall_of_ice.jpg http://[server]/4E/Wall%20of%20Ice.full.jpg -wall_of_junk.jpg http://[server]/US/Wall%20of%20Junk.full.jpg -wall_of_kelp.jpg http://[server]/HL/Wall%20of%20Kelp.full.jpg -wall_of_lava.jpg http://[server]/IA/Wall%20of%20Lava.full.jpg -wall_of_light.jpg http://[server]/LG/Wall%20of%20Light.full.jpg -wall_of_mulch.jpg http://[server]/ON/Wall%20of%20Mulch.full.jpg -wall_of_nets.jpg http://[server]/EX/Wall%20of%20Nets.full.jpg -wall_of_opposition.jpg http://[server]/LG/Wall%20of%20Opposition.full.jpg -wall_of_pine_needles.jpg http://[server]/IA/Wall%20of%20Pine%20Needles.full.jpg -wall_of_putrid_flesh.jpg http://[server]/LG/Wall%20of%20Putrid%20Flesh.full.jpg -wall_of_razors.jpg http://[server]/SH/Wall%20of%20Razors.full.jpg -wall_of_resistance.jpg http://[server]/MI/Wall%20of%20Resistance.full.jpg -wall_of_reverence.jpg http://[server]/CFX/Wall%20of%20Reverence.full.jpg -wall_of_roots.jpg http://[server]/MI/Wall%20of%20Roots.full.jpg -wall_of_shadows.jpg http://[server]/LG/Wall%20of%20Shadows.full.jpg -wall_of_shards.jpg http://[server]/CS/Wall%20of%20Shards.full.jpg -wall_of_shields.jpg http://[server]/IA/Wall%20of%20Shields.full.jpg -wall_of_souls.jpg http://[server]/SH/Wall%20of%20Souls.full.jpg -wall_of_spears.jpg http://[server]/8E/Wall%20of%20Spears.full.jpg -wall_of_stone.jpg http://[server]/8E/Wall%20of%20Stone.full.jpg -wall_of_swords.jpg http://[server]/10E/Wall%20of%20Swords.full.jpg -wall_of_tears.jpg http://[server]/SH/Wall%20of%20Tears.full.jpg -wall_of_tombstones.jpg http://[server]/LG/Wall%20of%20Tombstones.full.jpg -wall_of_vapor.jpg http://[server]/LG/Wall%20of%20Vapor.full.jpg -wall_of_vipers.jpg http://[server]/PY/Wall%20of%20Vipers.full.jpg -wall_of_water.jpg http://[server]/4E/Wall%20of%20Water.full.jpg -wall_of_wonder.jpg http://[server]/7E/Wall%20of%20Wonder.full.jpg -wall_of_wood.jpg http://[server]/10E/Wall%20of%20Wood.full.jpg -wallop.jpg http://[server]/IN/Wallop.full.jpg -wand_of_denial.jpg http://[server]/6E/Wand%20of%20Denial.full.jpg -wand_of_ith.jpg http://[server]/DK/Wand%20of%20Ith.full.jpg -wand_of_the_elements.jpg http://[server]/DS/Wand%20of%20the%20Elements.full.jpg -wanderbrine_rootcutters.jpg http://[server]/SHM/Wanderbrine%20Rootcutters.full.jpg -wanderers_twig.jpg http://[server]/LRW/Wanderer's%20Twig.full.jpg -wanderguard_sentry.jpg http://[server]/9E/Wanderguard%20Sentry.full.jpg -wandering_eye.jpg http://[server]/NE/Wandering%20Eye.full.jpg -wandering_goblins.jpg http://[server]/CFX/Wandering%20Goblins.full.jpg -wandering_graybeard.jpg http://[server]/MOR/Wandering%20Graybeard.full.jpg -wandering_mage.jpg http://[server]/AL/Wandering%20Mage.full.jpg -wandering_ones.jpg http://[server]/CHK/Wandering%20Ones.full.jpg -wandering_stream.jpg http://[server]/IN/Wandering%20Stream.full.jpg -wanderlust.jpg http://[server]/5E/Wanderlust.full.jpg -wanderwine_hub.jpg http://[server]/LRW/Wanderwine%20Hub.full.jpg -wanderwine_prophets.jpg http://[server]/LRW/Wanderwine%20Prophets.full.jpg -waning_wurm.jpg http://[server]/PLC/Waning%20Wurm.full.jpg -war_barge.jpg http://[server]/DK/War%20Barge.full.jpg -war_cadence.jpg http://[server]/MM/War%20Cadence.full.jpg -war_chariot.jpg http://[server]/IA/War%20Chariot.full.jpg -war_dance.jpg http://[server]/US/War%20Dance.full.jpg -war_elemental.jpg http://[server]/MR/War%20Elemental.full.jpg -war_elephant.jpg http://[server]/CH/War%20Elephant.full.jpg -war_mammoth.jpg http://[server]/5E/War%20Mammoth.full.jpg -war_spike_changeling.jpg http://[server]/MOR/War-Spike%20Changeling.full.jpg -war_tax.jpg http://[server]/MM/War%20Tax.full.jpg -war_torch_goblin.jpg http://[server]/RAV/War-Torch%20Goblin.full.jpg -warbreak_trumpeter.jpg http://[server]/LE/Warbreak%20Trumpeter.full.jpg -ward_of_bones.jpg http://[server]/EVE/Ward%20of%20Bones.full.jpg -ward_of_lights.jpg http://[server]/MI/Ward%20of%20Lights.full.jpg -ward_of_piety.jpg http://[server]/BOK/Ward%20of%20Piety.full.jpg -ward_sliver.jpg http://[server]/LE/Ward%20Sliver.full.jpg -wargate.jpg http://[server]/ARB/Wargate.full.jpg -warmonger.jpg http://[server]/MM/Warmonger.full.jpg -warmth.jpg http://[server]/6E/Warmth.full.jpg -warning.jpg http://[server]/IA/Warning.full.jpg -warp_artifact.jpg http://[server]/5E/Warp%20Artifact.full.jpg -warp_world.jpg http://[server]/M10/Warp%20World.full.jpg -warpath.jpg http://[server]/MM/Warpath.full.jpg -warpath_ghoul.jpg http://[server]/M10/Warpath%20Ghoul.full.jpg -warped_devotion.jpg http://[server]/8E/Warped%20Devotion.full.jpg -warped_researcher.jpg http://[server]/LE/Warped%20Researcher.full.jpg -warping_wurm.jpg http://[server]/MI/Warping%20Wurm.full.jpg -warren_instigator.jpg http://[server]/ZEN/Warren%20Instigator.full.jpg -warren_pilferers.jpg http://[server]/LRW/Warren%20Pilferers.full.jpg -warren_scourge_elf.jpg http://[server]/LRW/Warren-Scourge%20Elf.full.jpg -warren_weirding.jpg http://[server]/MOR/Warren%20Weirding.full.jpg -warrior_angel.jpg http://[server]/SH/Warrior%20Angel.full.jpg -warrior_en_kor.jpg http://[server]/SH/Warrior%20en-Kor.full.jpg -warriors_charge.jpg http://[server]/PT/Warrior's%20Charge1.full.jpg -warriors_honor.jpg http://[server]/10E/Warrior's%20Honor.full.jpg -warriors_oath.jpg http://[server]/P3/Warrior's%20Oath.full.jpg -warriors_stand.jpg http://[server]/P2/Warrior's%20Stand.full.jpg -wars_toll.jpg http://[server]/DIS/War's%20Toll.full.jpg -warthog.jpg http://[server]/6E/Warthog.full.jpg -wash_out.jpg http://[server]/IN/Wash%20Out.full.jpg -wasp_lancer.jpg http://[server]/SHM/Wasp%20Lancer.full.jpg -waste_away.jpg http://[server]/TO/Waste%20Away.full.jpg -wasteland.jpg http://[server]/TE/Wasteland.full.jpg -watchdog.jpg http://[server]/TE/Watchdog.full.jpg -watcher_sliver.jpg http://[server]/TSP/Watcher%20Sliver.full.jpg -watchwing_scarecrow.jpg http://[server]/SHM/Watchwing%20Scarecrow.full.jpg -watchwolf.jpg http://[server]/RAV/Watchwolf.full.jpg -water_elemental.jpg http://[server]/B/Water%20Elemental.full.jpg -water_gun_balloon_game.jpg http://[server]/UNH/Water%20Gun%20Balloon%20Game.full.jpg -water_wurm.jpg http://[server]/DK/Water%20Wurm.full.jpg -waterfront_bouncer.jpg http://[server]/MM/Waterfront%20Bouncer.full.jpg -waterspout_djinn.jpg http://[server]/VI/Waterspout%20Djinn.full.jpg -waterspout_elemental.jpg http://[server]/PS/Waterspout%20Elemental.full.jpg -waterspout_weavers.jpg http://[server]/MOR/Waterspout%20Weavers.full.jpg -waterveil_cavern.jpg http://[server]/CHK/Waterveil%20Cavern.full.jpg -watery_grave.jpg http://[server]/RAV/Watery%20Grave.full.jpg -wave_elemental.jpg http://[server]/MI/Wave%20Elemental.full.jpg -wave_of_indifference.jpg http://[server]/ON/Wave%20of%20Indifference.full.jpg -wave_of_reckoning.jpg http://[server]/MM/Wave%20of%20Reckoning.full.jpg -wave_of_terror.jpg http://[server]/WL/Wave%20of%20Terror.full.jpg -waves_of_aggression.jpg http://[server]/EVE/Waves%20of%20Aggression.full.jpg -waveskimmer_aven.jpg http://[server]/ALA/Waveskimmer%20Aven.full.jpg -waxmane_baku.jpg http://[server]/BOK/Waxmane%20Baku.full.jpg -waxwane.jpg http://[server]/IN/WaxWane.full.jpg -wayfarers_bauble.jpg http://[server]/FD/Wayfarer's%20Bauble.full.jpg -wayfaring_giant.jpg http://[server]/IN/Wayfaring%20Giant.full.jpg -waylay.jpg http://[server]/US/Waylay.full.jpg -wayward_angel.jpg http://[server]/OD/Wayward%20Angel.full.jpg -wayward_soul.jpg http://[server]/EX/Wayward%20Soul.full.jpg -weakness.jpg http://[server]/M10/Weakness.full.jpg -weakstone.jpg http://[server]/AQ/Weakstone.full.jpg -wear_away.jpg http://[server]/CHK/Wear%20Away.full.jpg -weathered_bodyguards.jpg http://[server]/TSP/Weathered%20Bodyguards.full.jpg -weathered_wayfarer.jpg http://[server]/9E/Weathered%20Wayfarer.full.jpg -weatherseed_elf.jpg http://[server]/UL/Weatherseed%20Elf.full.jpg -weatherseed_faeries.jpg http://[server]/UL/Weatherseed%20Faeries.full.jpg -weatherseed_totem.jpg http://[server]/TSP/Weatherseed%20Totem.full.jpg -weatherseed_treefolk.jpg http://[server]/UL/Weatherseed%20Treefolk.full.jpg -weaver_of_lies.jpg http://[server]/LE/Weaver%20of%20Lies.full.jpg -web.jpg http://[server]/9E/Web.full.jpg -web_of_inertia.jpg http://[server]/JU/Web%20of%20Inertia.full.jpg -wee_dragonauts.jpg http://[server]/GP/Wee%20Dragonauts.full.jpg -weed_pruner_poplar.jpg http://[server]/MOR/Weed-Pruner%20Poplar.full.jpg -weed_strangle.jpg http://[server]/LRW/Weed%20Strangle.full.jpg -wei_ambush_force.jpg http://[server]/P3/Wei%20Ambush%20Force.full.jpg -wei_assassins.jpg http://[server]/P3/Wei%20Assassins.full.jpg -wei_elite_companions.jpg http://[server]/P3/Wei%20Elite%20Companions.full.jpg -wei_infantry.jpg http://[server]/P3/Wei%20Infantry.full.jpg -wei_night_raiders.jpg http://[server]/P3/Wei%20Night%20Raiders.full.jpg -wei_scout.jpg http://[server]/P3/Wei%20Scout.full.jpg -wei_strike_force.jpg http://[server]/P3/Wei%20Strike%20Force.full.jpg -weight_of_conscience.jpg http://[server]/MOR/Weight%20of%20Conscience.full.jpg -weight_of_spires.jpg http://[server]/DIS/Weight%20of%20Spires.full.jpg -weird_harvest.jpg http://[server]/9E/Weird%20Harvest.full.jpg -weirding_shaman.jpg http://[server]/MOR/Weirding%20Shaman.full.jpg -welding_jar.jpg http://[server]/MR/Welding%20Jar.full.jpg -welkin_guide.jpg http://[server]/ALA/Welkin%20Guide.full.jpg -welkin_hawk.jpg http://[server]/EX/Welkin%20Hawk.full.jpg -welkin_tern.jpg http://[server]/ZEN/Welkin%20Tern.full.jpg -well_laid_plans.jpg http://[server]/IN/Well-Laid%20Plans.full.jpg -well_of_discovery.jpg http://[server]/PY/Well%20of%20Discovery.full.jpg -well_of_knowledge.jpg http://[server]/WL/Well%20of%20Knowledge.full.jpg -well_of_life.jpg http://[server]/PY/Well%20of%20Life.full.jpg -well_of_lost_dreams.jpg http://[server]/DS/Well%20of%20Lost%20Dreams.full.jpg -wellgabber_apothecary.jpg http://[server]/LRW/Wellgabber%20Apothecary.full.jpg -wellspring.jpg http://[server]/MI/Wellspring.full.jpg -wellwisher.jpg http://[server]/ON/Wellwisher.full.jpg -werebear.jpg http://[server]/OD/Werebear.full.jpg -western_paladin.jpg http://[server]/8E/Western%20Paladin.full.jpg -wet_willie_of_the_damned.jpg http://[server]/UNH/Wet%20Willie%20of%20the%20Damned.full.jpg -whalebone_glider.jpg http://[server]/IA/Whalebone%20Glider.full.jpg -wheel_and_deal.jpg http://[server]/ON/Wheel%20and%20Deal.full.jpg -wheel_of_fate.jpg http://[server]/TSP/Wheel%20of%20Fate.full.jpg -wheel_of_fortune.jpg http://[server]/U/Wheel%20of%20Fortune.full.jpg -wheel_of_sun_and_moon.jpg http://[server]/SHM/Wheel%20of%20Sun%20and%20Moon.full.jpg -wheel_of_torture.jpg http://[server]/UL/Wheel%20of%20Torture.full.jpg -when_fluffy_bunnies_attack.jpg http://[server]/UNH/When%20Fluffy%20Bunnies%20Attack.full.jpg -where_ancients_tread.jpg http://[server]/ALA/Where%20Ancients%20Tread.full.jpg -whetstone.jpg http://[server]/US/Whetstone.full.jpg -whetwheel.jpg http://[server]/FUT/Whetwheel.full.jpg -whim_of_volrath.jpg http://[server]/TE/Whim%20of%20Volrath.full.jpg -whimwader.jpg http://[server]/SHM/Whimwader.full.jpg -whip_sergeant.jpg http://[server]/9E/Whip%20Sergeant.full.jpg -whip_silk.jpg http://[server]/IN/Whip%20Silk.full.jpg -whip_spine_drake.jpg http://[server]/FUT/Whip-Spine%20Drake.full.jpg -whip_vine.jpg http://[server]/AL/Whip%20Vine1.full.jpg -whipcorder.jpg http://[server]/ON/Whipcorder.full.jpg -whipgrass_entangler.jpg http://[server]/LE/Whipgrass%20Entangler.full.jpg -whipkeeper.jpg http://[server]/OD/Whipkeeper.full.jpg -whiplash_trap.jpg http://[server]/HOP/Whiplash%20Trap.full.jpg -whippoorwill.jpg http://[server]/DK/Whippoorwill.full.jpg -whipstitched_zombie.jpg http://[server]/PY/Whipstitched%20Zombie.full.jpg -whiptail_moloch.jpg http://[server]/DIS/Whiptail%20Moloch.full.jpg -whiptail_wurm.jpg http://[server]/PT/Whiptail%20Wurm.full.jpg -whiptongue_frog.jpg http://[server]/EX/Whiptongue%20Frog.full.jpg -whirling_catapult.jpg http://[server]/AL/Whirling%20Catapult.full.jpg -whirling_dervish.jpg http://[server]/5E/Whirling%20Dervish.full.jpg -whirlpool_drake.jpg http://[server]/AP/Whirlpool%20Drake.full.jpg -whirlpool_rider.jpg http://[server]/AP/Whirlpool%20Rider.full.jpg -whirlpool_warrior.jpg http://[server]/AP/Whirlpool%20Warrior.full.jpg -whirlpool_whelm.jpg http://[server]/LRW/Whirlpool%20Whelm.full.jpg -whirlwind.jpg http://[server]/ST/Whirlwind.full.jpg -whispering_shade.jpg http://[server]/OD/Whispering%20Shade.full.jpg -whispers_of_the_muse.jpg http://[server]/TE/Whispers%20of%20the%20Muse.full.jpg -whispersilk_cloak.jpg http://[server]/M10/Whispersilk%20Cloak.full.jpg -white_knight.jpg http://[server]/M10/White%20Knight.full.jpg -white_mana_battery.jpg http://[server]/4E/White%20Mana%20Battery.full.jpg -white_scarab.jpg http://[server]/IA/White%20Scarab.full.jpg -white_shield_crusader.jpg http://[server]/CS/White%20Shield%20Crusader.full.jpg -white_ward.jpg http://[server]/4E/White%20Ward.full.jpg -whitemane_lion.jpg http://[server]/PLC/Whitemane%20Lion.full.jpg -whiteout.jpg http://[server]/IA/Whiteout.full.jpg -who_what_when_where_why.jpg http://[server]/UNH/Who%20What%20When%20Where%20Why.full.jpg -wicked_akuba.jpg http://[server]/CHK/Wicked%20Akuba.full.jpg -wicked_pact.jpg http://[server]/PT/Wicked%20Pact.full.jpg -wicked_reward.jpg http://[server]/VI/Wicked%20Reward.full.jpg -wicker_warcrawler.jpg http://[server]/SHM/Wicker%20Warcrawler.full.jpg -wickerbough_elder.jpg http://[server]/EVE/Wickerbough%20Elder.full.jpg -wielding_the_green_dragon.jpg http://[server]/P3/Wielding%20the%20Green%20Dragon.full.jpg -wiitigo.jpg http://[server]/IA/Wiitigo.full.jpg -wild_aesthir.jpg http://[server]/AL/Wild%20Aesthir1.full.jpg -wild_cantor.jpg http://[server]/GP/Wild%20Cantor.full.jpg -wild_colos.jpg http://[server]/UD/Wild%20Colos.full.jpg -wild_dogs.jpg http://[server]/US/Wild%20Dogs.full.jpg -wild_elephant.jpg http://[server]/MI/Wild%20Elephant.full.jpg -wild_griffin.jpg http://[server]/10E/Wild%20Griffin.full.jpg -wild_growth.jpg http://[server]/7E/Wild%20Growth.full.jpg -wild_jhovall.jpg http://[server]/MM/Wild%20Jhovall.full.jpg -wild_leotau.jpg http://[server]/CFX/Wild%20Leotau.full.jpg -wild_mammoth.jpg http://[server]/NE/Wild%20Mammoth.full.jpg -wild_might.jpg http://[server]/PY/Wild%20Might.full.jpg -wild_mongrel.jpg http://[server]/OD/Wild%20Mongrel.full.jpg -wild_nacatl.jpg http://[server]/ALA/Wild%20Nacatl.full.jpg -wild_ox.jpg http://[server]/ST/Wild%20Ox.full.jpg -wild_pair.jpg http://[server]/PLC/Wild%20Pair.full.jpg -wild_research.jpg http://[server]/AP/Wild%20Research.full.jpg -wild_ricochet.jpg http://[server]/LRW/Wild%20Ricochet.full.jpg -wild_swing.jpg http://[server]/SHM/Wild%20Swing.full.jpg -wild_wurm.jpg http://[server]/TE/Wild%20Wurm.full.jpg -wilderness_elemental.jpg http://[server]/CS/Wilderness%20Elemental.full.jpg -wilderness_hypnotist.jpg http://[server]/EVE/Wilderness%20Hypnotist.full.jpg -wildfield_borderpost.jpg http://[server]/ARB/Wildfield%20Borderpost.full.jpg -wildfire.jpg http://[server]/9E/Wildfire.full.jpg -wildfire_emissary.jpg http://[server]/MI/Wildfire%20Emissary.full.jpg -wildsize.jpg http://[server]/GP/Wildsize.full.jpg -wildslayer_elves.jpg http://[server]/SHM/Wildslayer%20Elves.full.jpg -will_o_the_wisp.jpg http://[server]/9E/Will-o'-the-Wisp.full.jpg -willbender.jpg http://[server]/LE/Willbender.full.jpg -willow_dryad.jpg http://[server]/PT/Willow%20Dryad.full.jpg -willow_elf.jpg http://[server]/ST/Willow%20Elf.full.jpg -willow_faerie.jpg http://[server]/HL/Willow%20Faerie1.full.jpg -willow_priestess.jpg http://[server]/HL/Willow%20Priestess.full.jpg -willow_satyr.jpg http://[server]/LG/Willow%20Satyr.full.jpg -wilt_leaf_cavaliers.jpg http://[server]/SHM/Wilt-Leaf%20Cavaliers.full.jpg -wilt_leaf_liege.jpg http://[server]/SHM/Wilt-Leaf%20Liege.full.jpg -wind_dancer.jpg http://[server]/7E/Wind%20Dancer.full.jpg -wind_drake.jpg http://[server]/M10/Wind%20Drake.full.jpg -wind_sail.jpg http://[server]/ST/Wind%20Sail.full.jpg -wind_shear.jpg http://[server]/VI/Wind%20Shear.full.jpg -wind_spirit.jpg http://[server]/6E/Wind%20Spirit.full.jpg -windborn_muse.jpg http://[server]/10E/Windborn%20Muse.full.jpg -windborne_charge.jpg http://[server]/ZEN/Windborne%20Charge.full.jpg -windbrisk_heights.jpg http://[server]/LRW/Windbrisk%20Heights.full.jpg -windbrisk_raptor.jpg http://[server]/SHM/Windbrisk%20Raptor.full.jpg -windfall.jpg http://[server]/US/Windfall.full.jpg -winding_canyons.jpg http://[server]/WL/Winding%20Canyons.full.jpg -winding_wurm.jpg http://[server]/US/Winding%20Wurm.full.jpg -windreaper_falcon.jpg http://[server]/MI/Windreaper%20Falcon.full.jpg -windreaver.jpg http://[server]/DIS/Windreaver.full.jpg -windrider_eel.jpg http://[server]/ZEN/Windrider%20Eel.full.jpg -winds_of_change.jpg http://[server]/5E/Winds%20of%20Change.full.jpg -winds_of_rath.jpg http://[server]/TE/Winds%20of%20Rath.full.jpg -windscouter.jpg http://[server]/PY/Windscouter.full.jpg -windseeker_centaur.jpg http://[server]/HPB/Windseeker%20Centaur.full.jpg -windstorm.jpg http://[server]/M10/Windstorm.full.jpg -windswept_heath.jpg http://[server]/JGC/Windswept%20Heath.full.jpg -windwright_mage.jpg http://[server]/ALA/Windwright%20Mage.full.jpg -wine_of_blood_and_iron.jpg http://[server]/SOK/Wine%20of%20Blood%20and%20Iron.full.jpg -wing_shards.jpg http://[server]/SC/Wing%20Shards.full.jpg -wing_snare.jpg http://[server]/8E/Wing%20Snare.full.jpg -wing_storm.jpg http://[server]/PY/Wing%20Storm.full.jpg -wingbeat_warrior.jpg http://[server]/LE/Wingbeat%20Warrior.full.jpg -winged_coatl.jpg http://[server]/ARB/Winged%20Coatl.full.jpg -winged_sliver.jpg http://[server]/TE/Winged%20Sliver.full.jpg -wingrattle_scarecrow.jpg http://[server]/SHM/Wingrattle%20Scarecrow.full.jpg -wings_of_aesthir.jpg http://[server]/IA/Wings%20of%20Aesthir.full.jpg -wings_of_hope.jpg http://[server]/IN/Wings%20of%20Hope.full.jpg -wings_of_velis_vel.jpg http://[server]/LRW/Wings%20of%20Velis%20Vel.full.jpg -winnow.jpg http://[server]/IN/Winnow.full.jpg -winnower_patrol.jpg http://[server]/MOR/Winnower%20Patrol.full.jpg -winter_blast.jpg http://[server]/5E/Winter%20Blast.full.jpg -winter_orb.jpg http://[server]/5E/Winter%20Orb.full.jpg -winter_sky.jpg http://[server]/HL/Winter%20Sky.full.jpg -wintermoon_mesa.jpg http://[server]/PY/Wintermoon%20Mesa.full.jpg -winters_chill.jpg http://[server]/IA/Winter's%20Chill.full.jpg -winters_grasp.jpg http://[server]/PT/Winter's%20Grasp.full.jpg -winters_night.jpg http://[server]/AL/Winter's%20Night.full.jpg -wipe_away.jpg http://[server]/TSP/Wipe%20Away.full.jpg -wipe_clean.jpg http://[server]/SC/Wipe%20Clean.full.jpg -wirecat.jpg http://[server]/US/Wirecat.full.jpg -wirefly_hive.jpg http://[server]/DS/Wirefly%20Hive.full.jpg -wirewood_channeler.jpg http://[server]/LE/Wirewood%20Channeler.full.jpg -wirewood_elf.jpg http://[server]/ON/Wirewood%20Elf.full.jpg -wirewood_guardian.jpg http://[server]/SC/Wirewood%20Guardian.full.jpg -wirewood_herald.jpg http://[server]/ON/Wirewood%20Herald.full.jpg -wirewood_hivemaster.jpg http://[server]/LE/Wirewood%20Hivemaster.full.jpg -wirewood_lodge.jpg http://[server]/ON/Wirewood%20Lodge.full.jpg -wirewood_pride.jpg http://[server]/ON/Wirewood%20Pride.full.jpg -wirewood_savage.jpg http://[server]/ON/Wirewood%20Savage.full.jpg -wirewood_symbiote.jpg http://[server]/SC/Wirewood%20Symbiote.full.jpg -wishmonger.jpg http://[server]/MM/Wishmonger.full.jpg -wispmare.jpg http://[server]/LRW/Wispmare.full.jpg -wistful_selkie.jpg http://[server]/EVE/Wistful%20Selkie.full.jpg -wistful_thinking.jpg http://[server]/PLC/Wistful%20Thinking.full.jpg -witch_engine.jpg http://[server]/US/Witch%20Engine.full.jpg -witch_hunter.jpg http://[server]/DK/Witch%20Hunter.full.jpg -witch_maw_nephilim.jpg http://[server]/GP/Witch-Maw%20Nephilim.full.jpg -witchs_mist.jpg http://[server]/FUT/Witch's%20Mist.full.jpg -withdraw.jpg http://[server]/PY/Withdraw.full.jpg -withered_wretch.jpg http://[server]/LE/Withered%20Wretch.full.jpg -withering_boon.jpg http://[server]/MI/Withering%20Boon.full.jpg -withering_gaze.jpg http://[server]/9E/Withering%20Gaze.full.jpg -withering_hex.jpg http://[server]/ON/Withering%20Hex.full.jpg -withering_wisps.jpg http://[server]/IA/Withering%20Wisps.full.jpg -witherscale_wurm.jpg http://[server]/SHM/Witherscale%20Wurm.full.jpg -withstand.jpg http://[server]/GP/Withstand.full.jpg -wits_end.jpg http://[server]/DIS/Wit's%20End.full.jpg -wizard_mentor.jpg http://[server]/US/Wizard%20Mentor.full.jpg -wizard_replica.jpg http://[server]/MR/Wizard%20Replica.full.jpg -wizards_school.jpg http://[server]/HL/Wizards'%20School.full.jpg -wizened_cenn.jpg http://[server]/LRW/Wizened%20Cenn.full.jpg -wizened_snitches.jpg http://[server]/RAV/Wizened%20Snitches.full.jpg -woebearer.jpg http://[server]/MR/Woebearer.full.jpg -woebringer_demon.jpg http://[server]/RAV/Woebringer%20Demon.full.jpg -woeleecher.jpg http://[server]/SHM/Woeleecher.full.jpg -wojek_apothecary.jpg http://[server]/RAV/Wojek%20Apothecary.full.jpg -wojek_embermage.jpg http://[server]/RAV/Wojek%20Embermage.full.jpg -wojek_siren.jpg http://[server]/RAV/Wojek%20Siren.full.jpg -wolf_pack.jpg http://[server]/P3/Wolf%20Pack.full.jpg -wolf_skull_shaman.jpg http://[server]/MOR/Wolf-Skull%20Shaman.full.jpg -wolverine_pack.jpg http://[server]/5E/Wolverine%20Pack.full.jpg -wonder.jpg http://[server]/JU/Wonder.full.jpg -wood_elemental.jpg http://[server]/LG/Wood%20Elemental.full.jpg -wood_elves.jpg http://[server]/9E/Wood%20Elves.full.jpg -wood_sage.jpg http://[server]/TE/Wood%20Sage.full.jpg -woodcloaker.jpg http://[server]/SC/Woodcloaker.full.jpg -wooded_bastion.jpg http://[server]/SHM/Wooded%20Bastion.full.jpg -wooded_foothills.jpg http://[server]/ON/Wooded%20Foothills.full.jpg -wooden_sphere.jpg http://[server]/8E/Wooden%20Sphere.full.jpg -woodfall_primus.jpg http://[server]/SHM/Woodfall%20Primus.full.jpg -woodland_changeling.jpg http://[server]/LRW/Woodland%20Changeling.full.jpg -woodland_druid.jpg http://[server]/OD/Woodland%20Druid.full.jpg -woodland_guidance.jpg http://[server]/LRW/Woodland%20Guidance.full.jpg -woodlurker_mimic.jpg http://[server]/EVE/Woodlurker%20Mimic.full.jpg -woodripper.jpg http://[server]/NE/Woodripper.full.jpg -woodwraith_corrupter.jpg http://[server]/RAV/Woodwraith%20Corrupter.full.jpg -woodwraith_strangler.jpg http://[server]/RAV/Woodwraith%20Strangler.full.jpg -woolly_mammoths.jpg http://[server]/IA/Woolly%20Mammoths.full.jpg -woolly_razorback.jpg http://[server]/CS/Woolly%20Razorback.full.jpg -woolly_spider.jpg http://[server]/AT/Woolly%20Spider.full.jpg -woolly_thoctar.jpg http://[server]/ALA/Woolly%20Thoctar.full.jpg -word_of_binding.jpg http://[server]/4E/Word%20of%20Binding.full.jpg -word_of_blasting.jpg http://[server]/5E/Word%20of%20Blasting.full.jpg -word_of_command.jpg http://[server]/U/Word%20of%20Command.full.jpg -word_of_seizing.jpg http://[server]/TSP/Word%20of%20Seizing.full.jpg -word_of_undoing.jpg http://[server]/IA/Word%20of%20Undoing.full.jpg -wordmail.jpg http://[server]/UNH/Wordmail.full.jpg -words_of_war.jpg http://[server]/ON/Words%20of%20War.full.jpg -words_of_waste.jpg http://[server]/ON/Words%20of%20Waste.full.jpg -words_of_wilding.jpg http://[server]/ON/Words%20of%20Wilding.full.jpg -words_of_wind.jpg http://[server]/ON/Words%20of%20Wind.full.jpg -words_of_wisdom.jpg http://[server]/OD/Words%20of%20Wisdom.full.jpg -words_of_worship.jpg http://[server]/ON/Words%20of%20Worship.full.jpg -workhorse.jpg http://[server]/EX/Workhorse.full.jpg -working_stiff.jpg http://[server]/UNH/Working%20Stiff.full.jpg -world_bottling_kit.jpg http://[server]/UNH/World-Bottling%20Kit.full.jpg -world_queller.jpg http://[server]/ZEN/World%20Queller.full.jpg -worldgorger_dragon.jpg http://[server]/JU/Worldgorger%20Dragon.full.jpg -worldheart_phoenix.jpg http://[server]/CFX/Worldheart%20Phoenix.full.jpg -worldly_counsel.jpg http://[server]/IN/Worldly%20Counsel.full.jpg -worldly_tutor.jpg http://[server]/6E/Worldly%20Tutor.full.jpg -worldpurge.jpg http://[server]/SHM/Worldpurge.full.jpg -worldslayer.jpg http://[server]/MR/Worldslayer.full.jpg -worm_harvest.jpg http://[server]/EVE/Worm%20Harvest.full.jpg -wormfang_behemoth.jpg http://[server]/JU/Wormfang%20Behemoth.full.jpg -wormfang_crab.jpg http://[server]/JU/Wormfang%20Crab.full.jpg -wormfang_drake.jpg http://[server]/JU/Wormfang%20Drake.full.jpg -wormfang_manta.jpg http://[server]/JU/Wormfang%20Manta.full.jpg -wormfang_newt.jpg http://[server]/JU/Wormfang%20Newt.full.jpg -wormfang_turtle.jpg http://[server]/JU/Wormfang%20Turtle.full.jpg -worms_of_the_earth.jpg http://[server]/DK/Worms%20of%20the%20Earth.full.jpg -wormwood_dryad.jpg http://[server]/TSP/Wormwood%20Dryad.full.jpg -wormwood_treefolk.jpg http://[server]/DK/Wormwood%20Treefolk.full.jpg -worn_powerstone.jpg http://[server]/US/Worn%20Powerstone.full.jpg -worry_beads.jpg http://[server]/MM/Worry%20Beads.full.jpg -worship.jpg http://[server]/9E/Worship.full.jpg -wort_boggart_auntie.jpg http://[server]/LRW/Wort,%20Boggart%20Auntie.full.jpg -wort_the_raidmother.jpg http://[server]/SHM/Wort,%20the%20Raidmother.full.jpg -worthy_cause.jpg http://[server]/TE/Worthy%20Cause.full.jpg -wound_reflection.jpg http://[server]/SHM/Wound%20Reflection.full.jpg -wrap_in_vigor.jpg http://[server]/FUT/Wrap%20in%20Vigor.full.jpg -wrath_of_god.jpg http://[server]/10E/Wrath%20of%20God.full.jpg -wrath_of_marit_lage.jpg http://[server]/8E/Wrath%20of%20Marit%20Lage.full.jpg -wreak_havoc.jpg http://[server]/GP/Wreak%20Havoc.full.jpg -wrecking_ball.jpg http://[server]/DIS/Wrecking%20Ball.full.jpg -wrench_mind.jpg http://[server]/MR/Wrench%20Mind.full.jpg -wrens_run_packmaster.jpg http://[server]/LRW/Wren's%20Run%20Packmaster.full.jpg -wrens_run_vanquisher.jpg http://[server]/LRW/Wren's%20Run%20Vanquisher.full.jpg -wretched_anurid.jpg http://[server]/ON/Wretched%20Anurid.full.jpg -wretched_banquet.jpg http://[server]/CFX/Wretched%20Banquet.full.jpg -writ_of_passage.jpg http://[server]/DIS/Writ%20of%20Passage.full.jpg -wu_admiral.jpg http://[server]/P3/Wu%20Admiral.full.jpg -wu_elite_cavalry.jpg http://[server]/P3/Wu%20Elite%20Cavalry.full.jpg -wu_infantry.jpg http://[server]/P3/Wu%20Infantry.full.jpg -wu_light_cavalry.jpg http://[server]/P3/Wu%20Light%20Cavalry.full.jpg -wu_longbowman.jpg http://[server]/P3/Wu%20Longbowman.full.jpg -wu_scout.jpg http://[server]/P3/Wu%20Scout.full.jpg -wu_spy.jpg http://[server]/P3/Wu%20Spy.full.jpg -wu_warship.jpg http://[server]/P3/Wu%20Warship.full.jpg -wurmcalling.jpg http://[server]/TSP/Wurmcalling.full.jpg -wurms_tooth.jpg http://[server]/M10/Wurm's%20Tooth.full.jpg -wurmskin_forger.jpg http://[server]/MR/Wurmskin%20Forger.full.jpg -wurmweaver_coil.jpg http://[server]/GP/Wurmweaver%20Coil.full.jpg -wydwen_the_biting_gale.jpg http://[server]/LRW/Wydwen,%20the%20Biting%20Gale.full.jpg -wyluli_wolf.jpg http://[server]/6E/Wyluli%20Wolf.full.jpg \ No newline at end of file diff --git a/res/pics_link/card-pictures_x.txt b/res/pics_link/card-pictures_x.txt deleted file mode 100644 index 10e2f68461b..00000000000 --- a/res/pics_link/card-pictures_x.txt +++ /dev/null @@ -1,8 +0,0 @@ -xantcha.jpg http://[server]/VG/Xantcha.full.jpg -xanthic_statue.jpg http://[server]/WL/Xanthic%20Statue.full.jpg -xantid_swarm.jpg http://[server]/SC/Xantid%20Swarm.full.jpg -xathrid_demon.jpg http://[server]/M10/Xathrid%20Demon.full.jpg -xenic_poltergeist.jpg http://[server]/5E/Xenic%20Poltergeist.full.jpg -xiahou_dun_the_one_eyed.jpg http://[server]/P3/Xiahou%20Dun,%20the%20One-Eyed.full.jpg -xira_arien.jpg http://[server]/CH/Xira%20Arien.full.jpg -xun_yu_wei_advisor.jpg http://[server]/P3/Xun%20Yu,%20Wei%20Advisor.full.jpg \ No newline at end of file diff --git a/res/pics_link/card-pictures_y.txt b/res/pics_link/card-pictures_y.txt deleted file mode 100644 index f6ce8059350..00000000000 --- a/res/pics_link/card-pictures_y.txt +++ /dev/null @@ -1,41 +0,0 @@ -yamabushis_flame.jpg http://[server]/CHK/Yamabushi's%20Flame.full.jpg -yamabushis_storm.jpg http://[server]/CHK/Yamabushi's%20Storm.full.jpg -yare.jpg http://[server]/MI/Yare.full.jpg -yavimaya_ancients.jpg http://[server]/AL/Yavimaya%20Ancients1.full.jpg -yavimaya_ants.jpg http://[server]/AL/Yavimaya%20Ants.full.jpg -yavimaya_barbarian.jpg http://[server]/IN/Yavimaya%20Barbarian.full.jpg -yavimaya_coast.jpg http://[server]/10E/Yavimaya%20Coast.full.jpg -yavimaya_dryad.jpg http://[server]/TSP/Yavimaya%20Dryad.full.jpg -yavimaya_elder.jpg http://[server]/UD/Yavimaya%20Elder.full.jpg -yavimaya_enchantress.jpg http://[server]/10E/Yavimaya%20Enchantress.full.jpg -yavimaya_gnats.jpg http://[server]/IA/Yavimaya%20Gnats.full.jpg -yavimaya_granger.jpg http://[server]/UL/Yavimaya%20Granger.full.jpg -yavimaya_hollow.jpg http://[server]/UD/Yavimaya%20Hollow.full.jpg -yavimaya_kavu.jpg http://[server]/IN/Yavimaya%20Kavu.full.jpg -yavimaya_scion.jpg http://[server]/UL/Yavimaya%20Scion.full.jpg -yavimaya_wurm.jpg http://[server]/BD/Yavimaya%20Wurm.full.jpg -yavimayas_embrace.jpg http://[server]/AP/Yavimaya's%20Embrace.full.jpg -yawgmoth_demon.jpg http://[server]/9E/Yawgmoth%20Demon.full.jpg -yawgmoths_agenda.jpg http://[server]/IN/Yawgmoth's%20Agenda.full.jpg -yawgmoths_bargain.jpg http://[server]/UD/Yawgmoth's%20Bargain.full.jpg -yawgmoths_edict.jpg http://[server]/7E/Yawgmoth's%20Edict.full.jpg -yawgmoths_will.jpg http://[server]/US/Yawgmoth's%20Will.full.jpg -yawning_fissure.jpg http://[server]/M10/Yawning%20Fissure.full.jpg -ydwen_efreet.jpg http://[server]/AN/Ydwen%20Efreet.full.jpg -yellow_scarves_cavalry.jpg http://[server]/P3/Yellow%20Scarves%20Cavalry.full.jpg -yellow_scarves_general.jpg http://[server]/P3/Yellow%20Scarves%20General.full.jpg -yellow_scarves_troops.jpg http://[server]/P3/Yellow%20Scarves%20Troops.full.jpg -yet_another_aether_vortex.jpg http://[server]/UNH/Yet%20Another%20AEther%20Vortex.full.jpg -yixlid_jailer.jpg http://[server]/FUT/Yixlid%20Jailer.full.jpg -yoke_of_the_damned.jpg http://[server]/CFX/Yoke%20of%20the%20Damned.full.jpg -yoked_plowbeast.jpg http://[server]/ALA/Yoked%20Plowbeast.full.jpg -yomiji_who_bars_the_way.jpg http://[server]/BOK/Yomiji,%20Who%20Bars%20the%20Way.full.jpg -yore_tiller_nephilim.jpg http://[server]/GP/Yore-Tiller%20Nephilim.full.jpg -yosei_the_morning_star.jpg http://[server]/CHK/Yosei,%20the%20Morning%20Star.full.jpg -yotian_soldier.jpg http://[server]/4E/Yotian%20Soldier.full.jpg -young_wei_recruits.jpg http://[server]/P3/Young%20Wei%20Recruits.full.jpg -youthful_knight.jpg http://[server]/10E/Youthful%20Knight.full.jpg -yuan_shao_the_indecisive.jpg http://[server]/P3/Yuan%20Shao,%20the%20Indecisive.full.jpg -yuan_shaos_infantry.jpg http://[server]/P3/Yuan%20Shao's%20Infantry.full.jpg -yuki_onna.jpg http://[server]/SOK/Yuki-Onna.full.jpg -yukora_the_prisoner.jpg http://[server]/BOK/Yukora,%20the%20Prisoner.full.jpg \ No newline at end of file diff --git a/res/pics_link/card-pictures_z.txt b/res/pics_link/card-pictures_z.txt deleted file mode 100644 index 27279f25c33..00000000000 --- a/res/pics_link/card-pictures_z.txt +++ /dev/null @@ -1,67 +0,0 @@ -zanam_djinn.jpg http://[server]/IN/Zanam%20Djinn.full.jpg -zap.jpg http://[server]/IN/Zap.full.jpg -zealot_il_vec.jpg http://[server]/TSP/Zealot%20il-Vec.full.jpg -zealots_en_dal.jpg http://[server]/EX/Zealots%20en-Dal.full.jpg -zealous_guardian.jpg http://[server]/SHM/Zealous%20Guardian.full.jpg -zealous_inquisitor.jpg http://[server]/9E/Zealous%20Inquisitor.full.jpg -zealous_persecution.jpg http://[server]/ARB/Zealous%20Persecution.full.jpg -zebra_unicorn.jpg http://[server]/MI/Zebra%20Unicorn.full.jpg -zektar_shrine_expedition.jpg http://[server]/ZEN/Zektar%20Shrine%20Expedition.full.jpg -zelyon_sword.jpg http://[server]/FE/Zelyon%20Sword.full.jpg -zendikar_farguide.jpg http://[server]/ZEN/Zendikar%20Farguide.full.jpg -zephid.jpg http://[server]/US/Zephid.full.jpg -zephids_embrace.jpg http://[server]/US/Zephid's%20Embrace.full.jpg -zephyr_falcon.jpg http://[server]/5E/Zephyr%20Falcon.full.jpg -zephyr_net.jpg http://[server]/LRW/Zephyr%20Net.full.jpg -zephyr_spirit.jpg http://[server]/RAV/Zephyr%20Spirit.full.jpg -zephyr_sprite.jpg http://[server]/M10/Zephyr%20Sprite.full.jpg -zerapa_minotaur.jpg http://[server]/PY/Zerapa%20Minotaur.full.jpg -zhalfirin_commander.jpg http://[server]/MI/Zhalfirin%20Commander.full.jpg -zhalfirin_crusader.jpg http://[server]/VI/Zhalfirin%20Crusader.full.jpg -zhalfirin_knight.jpg http://[server]/MI/Zhalfirin%20Knight.full.jpg -zhang_fei_fierce_warrior.jpg http://[server]/P3/Zhang%20Fei,%20Fierce%20Warrior.full.jpg -zhang_he_wei_general.jpg http://[server]/P3/Zhang%20He,%20Wei%20General.full.jpg -zhang_liao_hero_of_hefei.jpg http://[server]/P3/Zhang%20Liao,%20Hero%20of%20Hefei.full.jpg -zhao_zilong_tiger_general.jpg http://[server]/P3/Zhao%20Zilong,%20Tiger%20General.full.jpg -zhou_yu_chief_commander.jpg http://[server]/P3/Zhou%20Yu,%20Chief%20Commander.full.jpg -zhuge_jin_wu_strategist.jpg http://[server]/P3/Zhuge%20Jin,%20Wu%20Strategist.full.jpg -zirilan_of_the_claw.jpg http://[server]/MI/Zirilan%20of%20the%20Claw.full.jpg -zo_zu_the_punisher.jpg http://[server]/CHK/Zo-Zu%20the%20Punisher.full.jpg -zodiac_dog.jpg http://[server]/P3/Zodiac%20Dog.full.jpg -zodiac_dragon.jpg http://[server]/P3/Zodiac%20Dragon.full.jpg -zodiac_goat.jpg http://[server]/P3/Zodiac%20Goat.full.jpg -zodiac_horse.jpg http://[server]/P3/Zodiac%20Horse.full.jpg -zodiac_monkey.jpg http://[server]/9E/Zodiac%20Monkey.full.jpg -zodiac_ox.jpg http://[server]/P3/Zodiac%20Ox.full.jpg -zodiac_pig.jpg http://[server]/P3/Zodiac%20Pig.full.jpg -zodiac_rabbit.jpg http://[server]/P3/Zodiac%20Rabbit.full.jpg -zodiac_rat.jpg http://[server]/P3/Zodiac%20Rat.full.jpg -zodiac_rooster.jpg http://[server]/P3/Zodiac%20Rooster.full.jpg -zodiac_snake.jpg http://[server]/P3/Zodiac%20Snake.full.jpg -zodiac_tiger.jpg http://[server]/P3/Zodiac%20Tiger.full.jpg -zoetic_cavern.jpg http://[server]/FUT/Zoetic%20Cavern.full.jpg -zombie.jpg http://[server]/UG/Zombie.full.jpg -zombie_assassin.jpg http://[server]/OD/Zombie%20Assassin.full.jpg -zombie_boa.jpg http://[server]/AP/Zombie%20Boa.full.jpg -zombie_brute.jpg http://[server]/LE/Zombie%20Brute.full.jpg -zombie_cannibal.jpg http://[server]/OD/Zombie%20Cannibal.full.jpg -zombie_cutthroat.jpg http://[server]/SC/Zombie%20Cutthroat.full.jpg -zombie_fanboy.jpg http://[server]/UNH/Zombie%20Fanboy.full.jpg -zombie_goliath.jpg http://[server]/M10/Zombie%20Goliath.full.jpg -zombie_infestation.jpg http://[server]/OD/Zombie%20Infestation.full.jpg -zombie_master.jpg http://[server]/6E/Zombie%20Master.full.jpg -zombie_mob.jpg http://[server]/MI/Zombie%20Mob.full.jpg -zombie_musher.jpg http://[server]/CS/Zombie%20Musher.full.jpg -zombie_outlander.jpg http://[server]/CFX/Zombie%20Outlander.full.jpg -zombie_scavengers.jpg http://[server]/WL/Zombie%20Scavengers.full.jpg -zombie_trailblazer.jpg http://[server]/TO/Zombie%20Trailblazer.full.jpg -zombify.jpg http://[server]/9E/Zombify.full.jpg -zoologist.jpg http://[server]/OD/Zoologist.full.jpg -zuberi_golden_feather.jpg http://[server]/MI/Zuberi,%20Golden%20Feather.full.jpg -zuo_ci_the_mocking_sage.jpg http://[server]/P3/Zuo%20Ci,%20the%20Mocking%20Sage.full.jpg -zur_the_enchanter.jpg http://[server]/CS/Zur%20the%20Enchanter.full.jpg -zuran_enchanter.jpg http://[server]/IA/Zuran%20Enchanter.full.jpg -zuran_orb.jpg http://[server]/IA/Zuran%20Orb.full.jpg -zuran_spellcaster.jpg http://[server]/IA/Zuran%20Spellcaster.full.jpg -zurs_weirding.jpg http://[server]/9E/Zur's%20Weirding.full.jpg -zzzyxass_abyss.jpg http://[server]/UNH/Zzzyxas's%20Abyss.full.jpg \ No newline at end of file diff --git a/res/preferences/.project b/res/preferences/.project deleted file mode 100644 index 0dd752fd79a..00000000000 --- a/res/preferences/.project +++ /dev/null @@ -1,11 +0,0 @@ - - - preferences - - - - - - - - diff --git a/res/preferences/main.properties b/res/preferences/main.properties deleted file mode 100644 index 2ae0ba5554a..00000000000 --- a/res/preferences/main.properties +++ /dev/null @@ -1,71 +0,0 @@ -program/howToReportBugsURL=http://tinyurl.com/3zzrnyb -program/cardforgeURL=http://cardforge.org - -showdeck/2color=false -showdeck/3color=false -showdeck/4color=false -showdeck/5color=false - -tokens--file=AllTokens.txt -mtg-data--file=mtg-data.txt - -decks--file=all-decks2 -booster-decks--file=booster-deck -decks-dir--file=../decks - -card-pictures--file=card-pictures.txt -token-images--file=../token-images.txt -card-pictures_a--file=../pics_link/card-pictures_a.txt -card-pictures_b--file=../pics_link/card-pictures_b.txt -card-pictures_c--file=../pics_link/card-pictures_c.txt -card-pictures_d--file=../pics_link/card-pictures_d.txt -card-pictures_e--file=../pics_link/card-pictures_e.txt -card-pictures_f--file=../pics_link/card-pictures_f.txt -card-pictures_g--file=../pics_link/card-pictures_g.txt -card-pictures_h--file=../pics_link/card-pictures_h.txt -card-pictures_i--file=../pics_link/card-pictures_i.txt -card-pictures_j--file=../pics_link/card-pictures_j.txt -card-pictures_k--file=../pics_link/card-pictures_k.txt -card-pictures_l--file=../pics_link/card-pictures_l.txt -card-pictures_m--file=../pics_link/card-pictures_m.txt -card-pictures_n--file=../pics_link/card-pictures_n.txt -card-pictures_o--file=../pics_link/card-pictures_o.txt -card-pictures_p--file=../pics_link/card-pictures_p.txt -card-pictures_q--file=../pics_link/card-pictures_q.txt -card-pictures_r--file=../pics_link/card-pictures_r.txt -card-pictures_s--file=../pics_link/card-pictures_s.txt -card-pictures_t--file=../pics_link/card-pictures_t.txt -card-pictures_u--file=../pics_link/card-pictures_u.txt -card-pictures_v--file=../pics_link/card-pictures_v.txt -card-pictures_w--file=../pics_link/card-pictures_w.txt -card-pictures_x--file=../pics_link/card-pictures_x.txt -card-pictures_y--file=../pics_link/card-pictures_y.txt -card-pictures_z--file=../pics_link/card-pictures_z.txt -card-pictures_other--file=../pics_link/card-pictures_other.txt -card-pictures_token_hq--file=../pics_link/card-pictures_token.txt -cards--file=cards.txt -cardsfolder--file=../cardsfolder -removed-cards--file=removedCards.txt - -regular/common--file=common.txt -regular/uncommon--file=uncommon.txt -regular/rare--file=rare.txt - -draft/rankings--file=../draft/rankings.txt - -name-mutator--file=name-mutator.txt - -quest--properties=../quest/quest.properties -draft--properties=../draft/draft.properties - -lang--transparent-properties=../lang/lang.properties - -image/base--file=../pics -image/token--file=../pics/tokens -image/icon--file=../pics/icons -image/product--file=../pics_product -pics/booster/images--file=../quest/booster-images.txt - -quest/opponent/icons--file=../quest/quest-opponent-icons.txt -quest/pet/icons--file=../quest/quest-pet-shop-icons.txt -quest/pet/tokens--file=../quest/quest-pet-token-images.txt diff --git a/res/product-images.txt b/res/product-images.txt deleted file mode 100644 index a37fe6ff83b..00000000000 --- a/res/product-images.txt +++ /dev/null @@ -1,106 +0,0 @@ -# Fat Packs -http://www.cardforge.org/fpics/products/fatpacks/5DN.jpg -http://www.cardforge.org/fpics/products/fatpacks/9ED.jpg -http://www.cardforge.org/fpics/products/fatpacks/10E.jpg -http://www.cardforge.org/fpics/products/fatpacks/ALA.jpg -http://www.cardforge.org/fpics/products/fatpacks/APC.jpg -http://www.cardforge.org/fpics/products/fatpacks/ARB.jpg -http://www.cardforge.org/fpics/products/fatpacks/BOK.jpg -http://www.cardforge.org/fpics/products/fatpacks/CFX.jpg -http://www.cardforge.org/fpics/products/fatpacks/CHK.jpg -http://www.cardforge.org/fpics/products/fatpacks/CSP.jpg -http://www.cardforge.org/fpics/products/fatpacks/DIS.jpg -http://www.cardforge.org/fpics/products/fatpacks/DKA.jpg -http://www.cardforge.org/fpics/products/fatpacks/DST.jpg -http://www.cardforge.org/fpics/products/fatpacks/EVE.jpg -http://www.cardforge.org/fpics/products/fatpacks/FUT.jpg -http://www.cardforge.org/fpics/products/fatpacks/GPT.jpg -http://www.cardforge.org/fpics/products/fatpacks/INV.jpg -http://www.cardforge.org/fpics/products/fatpacks/ISD.jpg -http://www.cardforge.org/fpics/products/fatpacks/JUD.jpg -http://www.cardforge.org/fpics/products/fatpacks/LGN.jpg -http://www.cardforge.org/fpics/products/fatpacks/LRW.jpg -http://www.cardforge.org/fpics/products/fatpacks/M10.jpg -http://www.cardforge.org/fpics/products/fatpacks/M10.png -http://www.cardforge.org/fpics/products/fatpacks/M11.jpg -http://www.cardforge.org/fpics/products/fatpacks/M11.png -http://www.cardforge.org/fpics/products/fatpacks/M12.jpg -http://www.cardforge.org/fpics/products/fatpacks/M12.png -http://www.cardforge.org/fpics/products/fatpacks/MBS.jpg -http://www.cardforge.org/fpics/products/fatpacks/MMQ.jpg -http://www.cardforge.org/fpics/products/fatpacks/MOR.jpg -http://www.cardforge.org/fpics/products/fatpacks/MRD.jpg -http://www.cardforge.org/fpics/products/fatpacks/NMS.jpg -http://www.cardforge.org/fpics/products/fatpacks/NPH.jpg -http://www.cardforge.org/fpics/products/fatpacks/ODY.jpg -http://www.cardforge.org/fpics/products/fatpacks/ONS.jpg -http://www.cardforge.org/fpics/products/fatpacks/PCY.jpg -http://www.cardforge.org/fpics/products/fatpacks/PLC.jpg -http://www.cardforge.org/fpics/products/fatpacks/PLS.JPG -http://www.cardforge.org/fpics/products/fatpacks/RAV.jpg -http://www.cardforge.org/fpics/products/fatpacks/ROE.jpg -http://www.cardforge.org/fpics/products/fatpacks/SCG.jpg -http://www.cardforge.org/fpics/products/fatpacks/SHM.jpg -http://www.cardforge.org/fpics/products/fatpacks/SOK.jpg -http://www.cardforge.org/fpics/products/fatpacks/SOM.jpg -http://www.cardforge.org/fpics/products/fatpacks/TOR.jpg -http://www.cardforge.org/fpics/products/fatpacks/TSP.jpg -http://www.cardforge.org/fpics/products/fatpacks/WWK.jpg -http://www.cardforge.org/fpics/products/fatpacks/ZEN.jpg - -# Precons -http://www.cardforge.org/fpics/products/precons/bant_on_the_march.jpg -http://www.cardforge.org/fpics/products/precons/battle_cries.jpg -http://www.cardforge.org/fpics/products/precons/blood-and-fire.jpg -http://www.cardforge.org/fpics/products/precons/breath_of_fire.jpg -http://www.cardforge.org/fpics/products/precons/carnival_of_blood.jpg -http://www.cardforge.org/fpics/products/precons/dead_ahead.jpg -http://www.cardforge.org/fpics/products/precons/deadspread.jpg -http://www.cardforge.org/fpics/products/precons/deathfed.jpg -http://www.cardforge.org/fpics/products/precons/devouring_skies.jpg -http://www.cardforge.org/fpics/products/precons/doom_inevitable.jpg -http://www.cardforge.org/fpics/products/precons/eldritch_onslaught.jpg -http://www.cardforge.org/fpics/products/precons/esper_air_assault.jpg -http://www.cardforge.org/fpics/products/precons/feast_of_flesh.jpg -http://www.cardforge.org/fpics/products/precons/grab-for-power.jpg -http://www.cardforge.org/fpics/products/precons/grave_power.jpg -http://www.cardforge.org/fpics/products/precons/grixis_shambling_army.jpg -http://www.cardforge.org/fpics/products/precons/invading_spawn.jpg -http://www.cardforge.org/fpics/products/precons/jund_appetite_for_war.jpg -http://www.cardforge.org/fpics/products/precons/levelers_glory.jpg -http://www.cardforge.org/fpics/products/precons/myr_of_mirrodin.jpg -http://www.cardforge.org/fpics/products/precons/naya_domain.jpg -http://www.cardforge.org/fpics/products/precons/path_of_blight.jpg -http://www.cardforge.org/fpics/products/precons/phyrexian_poison.jpg -http://www.cardforge.org/fpics/products/precons/reign_of_vampirism.jpg -http://www.cardforge.org/fpics/products/precons/relentless_dead.jpg -http://www.cardforge.org/fpics/products/precons/relic_breaker.jpg -http://www.cardforge.org/fpics/products/precons/repel_the_dark.jpg -http://www.cardforge.org/fpics/products/precons/spectral_legions.jpg -http://www.cardforge.org/fpics/products/precons/swift_justice.jpg -http://www.cardforge.org/fpics/products/precons/totem_power.jpg -http://www.cardforge.org/fpics/products/precons/unnatural_schemes.jpg - -# Tournament Packs -http://www.cardforge.org/fpics/products/tournamentpacks/2ED.jpg -http://www.cardforge.org/fpics/products/tournamentpacks/3ED.jpg -http://www.cardforge.org/fpics/products/tournamentpacks/4ED.jpg -http://www.cardforge.org/fpics/products/tournamentpacks/5ED.jpg -http://www.cardforge.org/fpics/products/tournamentpacks/6ED.jpg -http://www.cardforge.org/fpics/products/tournamentpacks/ALA.jpg -http://www.cardforge.org/fpics/products/tournamentpacks/CHK.jpg -http://www.cardforge.org/fpics/products/tournamentpacks/ICE.jpg -http://www.cardforge.org/fpics/products/tournamentpacks/INV.jpg -http://www.cardforge.org/fpics/products/tournamentpacks/LEA.jpg -http://www.cardforge.org/fpics/products/tournamentpacks/LEB.jpg -http://www.cardforge.org/fpics/products/tournamentpacks/LRW.jpg -http://www.cardforge.org/fpics/products/tournamentpacks/MIR.jpg -http://www.cardforge.org/fpics/products/tournamentpacks/MMQ.jpg -http://www.cardforge.org/fpics/products/tournamentpacks/MRD.jpg -http://www.cardforge.org/fpics/products/tournamentpacks/ODY.jpg -http://www.cardforge.org/fpics/products/tournamentpacks/ONS.jpg -http://www.cardforge.org/fpics/products/tournamentpacks/RAV.jpg -http://www.cardforge.org/fpics/products/tournamentpacks/SHM.jpg -http://www.cardforge.org/fpics/products/tournamentpacks/TMP.jpg -http://www.cardforge.org/fpics/products/tournamentpacks/TSP.jpg -http://www.cardforge.org/fpics/products/tournamentpacks/USG.jpg diff --git a/res/quest/booster-images.txt b/res/quest/booster-images.txt index ca86cd8b7c9..662c0450247 100644 --- a/res/quest/booster-images.txt +++ b/res/quest/booster-images.txt @@ -1,76 +1,81 @@ -http://www.cardforge.org/fpics/products/boosters/2ED.jpg -http://www.cardforge.org/fpics/products/boosters/3ED.jpg -http://www.cardforge.org/fpics/products/boosters/4ED.jpg -http://www.cardforge.org/fpics/products/boosters/5DN.jpg -http://www.cardforge.org/fpics/products/boosters/5ED.jpg -http://www.cardforge.org/fpics/products/boosters/6ED.jpg -http://www.cardforge.org/fpics/products/boosters/7ED.jpg -http://www.cardforge.org/fpics/products/boosters/8ED.jpg -http://www.cardforge.org/fpics/products/boosters/9ED.jpg -http://www.cardforge.org/fpics/products/boosters/10E.jpg -http://www.cardforge.org/fpics/products/boosters/ALA.jpg -http://www.cardforge.org/fpics/products/boosters/ALL.jpg -http://www.cardforge.org/fpics/products/boosters/APC.jpg -http://www.cardforge.org/fpics/products/boosters/ARB.jpg -http://www.cardforge.org/fpics/products/boosters/ARN.jpg -http://www.cardforge.org/fpics/products/boosters/ATQ.jpg -http://www.cardforge.org/fpics/products/boosters/BOK.jpg -http://www.cardforge.org/fpics/products/boosters/CFX.jpg -http://www.cardforge.org/fpics/products/boosters/CHK.jpg -http://www.cardforge.org/fpics/products/boosters/CHR.jpg -http://www.cardforge.org/fpics/products/boosters/CSP.jpg -http://www.cardforge.org/fpics/products/boosters/DIS.jpg -http://www.cardforge.org/fpics/products/boosters/DKA.jpg -http://www.cardforge.org/fpics/products/boosters/DRK.jpg -http://www.cardforge.org/fpics/products/boosters/DST.jpg -http://www.cardforge.org/fpics/products/boosters/EVE.jpg -http://www.cardforge.org/fpics/products/boosters/EXO.jpg -http://www.cardforge.org/fpics/products/boosters/FEM.jpg -http://www.cardforge.org/fpics/products/boosters/FUT.jpg -http://www.cardforge.org/fpics/products/boosters/GPT.jpg -http://www.cardforge.org/fpics/products/boosters/HML.jpg -http://www.cardforge.org/fpics/products/boosters/ICE.jpg -http://www.cardforge.org/fpics/products/boosters/INV.jpg -http://www.cardforge.org/fpics/products/boosters/ISD.jpg -http://www.cardforge.org/fpics/products/boosters/JUD.jpg -http://www.cardforge.org/fpics/products/boosters/LEA.jpg -http://www.cardforge.org/fpics/products/boosters/LEB.jpg -http://www.cardforge.org/fpics/products/boosters/LEG.jpg -http://www.cardforge.org/fpics/products/boosters/LGN.jpg -http://www.cardforge.org/fpics/products/boosters/LRW.jpg -http://www.cardforge.org/fpics/products/boosters/M10.jpg -http://www.cardforge.org/fpics/products/boosters/M11.jpg -http://www.cardforge.org/fpics/products/boosters/M12.jpg -http://www.cardforge.org/fpics/products/boosters/MBS.jpg -http://www.cardforge.org/fpics/products/boosters/MIR.jpg -http://www.cardforge.org/fpics/products/boosters/MMQ.jpg -http://www.cardforge.org/fpics/products/boosters/MOR.jpg -http://www.cardforge.org/fpics/products/boosters/MRD.jpg -http://www.cardforge.org/fpics/products/boosters/NMS.jpg -http://www.cardforge.org/fpics/products/boosters/NPH.jpg -http://www.cardforge.org/fpics/products/boosters/ODY.jpg -http://www.cardforge.org/fpics/products/boosters/ONS.jpg -http://www.cardforge.org/fpics/products/boosters/PCY.jpg -http://www.cardforge.org/fpics/products/boosters/PLC.jpg -http://www.cardforge.org/fpics/products/boosters/PLS.jpg -http://www.cardforge.org/fpics/products/boosters/PO2.jpg -http://www.cardforge.org/fpics/products/boosters/POR.jpg -http://www.cardforge.org/fpics/products/boosters/PTK.jpg -http://www.cardforge.org/fpics/products/boosters/RAV.jpg -http://www.cardforge.org/fpics/products/boosters/ROE.jpg -http://www.cardforge.org/fpics/products/boosters/S99.jpg -http://www.cardforge.org/fpics/products/boosters/SCG.jpg -http://www.cardforge.org/fpics/products/boosters/SHM.jpg -http://www.cardforge.org/fpics/products/boosters/SOK.jpg -http://www.cardforge.org/fpics/products/boosters/SOM.jpg -http://www.cardforge.org/fpics/products/boosters/STH.jpg -http://www.cardforge.org/fpics/products/boosters/TMP.jpg -http://www.cardforge.org/fpics/products/boosters/TOR.jpg -http://www.cardforge.org/fpics/products/boosters/TSP.jpg -http://www.cardforge.org/fpics/products/boosters/UDS.jpg -http://www.cardforge.org/fpics/products/boosters/ULG.jpg -http://www.cardforge.org/fpics/products/boosters/USG.jpg -http://www.cardforge.org/fpics/products/boosters/VIS.jpg -http://www.cardforge.org/fpics/products/boosters/WTH.jpg -http://www.cardforge.org/fpics/products/boosters/WWK.jpg -http://www.cardforge.org/fpics/products/boosters/ZEN.jpg +http://www.cardforge.org/fpics/products/boosters/2ED.png +http://www.cardforge.org/fpics/products/boosters/3ED.png +http://www.cardforge.org/fpics/products/boosters/4ED.png +http://www.cardforge.org/fpics/products/boosters/5DN.png +http://www.cardforge.org/fpics/products/boosters/5ED.png +http://www.cardforge.org/fpics/products/boosters/6ED.png +http://www.cardforge.org/fpics/products/boosters/7E.png +http://www.cardforge.org/fpics/products/boosters/8ED.png +http://www.cardforge.org/fpics/products/boosters/9ED.png +http://www.cardforge.org/fpics/products/boosters/10E.png +http://www.cardforge.org/fpics/products/boosters/ALA.png +http://www.cardforge.org/fpics/products/boosters/ALL.png +http://www.cardforge.org/fpics/products/boosters/AP.png +http://www.cardforge.org/fpics/products/boosters/ARB.png +http://www.cardforge.org/fpics/products/boosters/ARN.png +http://www.cardforge.org/fpics/products/boosters/ATQ.png +http://www.cardforge.org/fpics/products/boosters/AVR.png +http://www.cardforge.org/fpics/products/boosters/BOK.png +http://www.cardforge.org/fpics/products/boosters/CFX.png +http://www.cardforge.org/fpics/products/boosters/CHK.png +http://www.cardforge.org/fpics/products/boosters/CHR.png +http://www.cardforge.org/fpics/products/boosters/CSP.png +http://www.cardforge.org/fpics/products/boosters/DIS.png +http://www.cardforge.org/fpics/products/boosters/DKA.png +http://www.cardforge.org/fpics/products/boosters/DPA.png +http://www.cardforge.org/fpics/products/boosters/DRK.png +http://www.cardforge.org/fpics/products/boosters/DST.png +http://www.cardforge.org/fpics/products/boosters/EVE.png +http://www.cardforge.org/fpics/products/boosters/EX.png +http://www.cardforge.org/fpics/products/boosters/FEM.png +http://www.cardforge.org/fpics/products/boosters/FUT.png +http://www.cardforge.org/fpics/products/boosters/GPT.png +http://www.cardforge.org/fpics/products/boosters/GTC.png +http://www.cardforge.org/fpics/products/boosters/HML.png +http://www.cardforge.org/fpics/products/boosters/ICE.png +http://www.cardforge.org/fpics/products/boosters/IN.png +http://www.cardforge.org/fpics/products/boosters/ISD.png +http://www.cardforge.org/fpics/products/boosters/JUD.png +http://www.cardforge.org/fpics/products/boosters/LEA.png +http://www.cardforge.org/fpics/products/boosters/LEB.png +http://www.cardforge.org/fpics/products/boosters/LEG.png +http://www.cardforge.org/fpics/products/boosters/LGN.png +http://www.cardforge.org/fpics/products/boosters/LRW.png +http://www.cardforge.org/fpics/products/boosters/M10.png +http://www.cardforge.org/fpics/products/boosters/M11.png +http://www.cardforge.org/fpics/products/boosters/M12.png +http://www.cardforge.org/fpics/products/boosters/M13.png +http://www.cardforge.org/fpics/products/boosters/MBS.png +http://www.cardforge.org/fpics/products/boosters/MI.png +http://www.cardforge.org/fpics/products/boosters/MMQ.png +http://www.cardforge.org/fpics/products/boosters/MOR.png +http://www.cardforge.org/fpics/products/boosters/MRD.png +http://www.cardforge.org/fpics/products/boosters/NMS.png +http://www.cardforge.org/fpics/products/boosters/NPH.png +http://www.cardforge.org/fpics/products/boosters/OD.png +http://www.cardforge.org/fpics/products/boosters/ONS.png +http://www.cardforge.org/fpics/products/boosters/PCY.png +http://www.cardforge.org/fpics/products/boosters/PLC.png +http://www.cardforge.org/fpics/products/boosters/PO2.png +http://www.cardforge.org/fpics/products/boosters/POR.png +http://www.cardforge.org/fpics/products/boosters/PS.png +http://www.cardforge.org/fpics/products/boosters/PTK.png +http://www.cardforge.org/fpics/products/boosters/RAV.png +http://www.cardforge.org/fpics/products/boosters/ROE.png +http://www.cardforge.org/fpics/products/boosters/RTR.png +http://www.cardforge.org/fpics/products/boosters/S99.png +http://www.cardforge.org/fpics/products/boosters/SCG.png +http://www.cardforge.org/fpics/products/boosters/SHM.png +http://www.cardforge.org/fpics/products/boosters/SOK.png +http://www.cardforge.org/fpics/products/boosters/SOM.png +http://www.cardforge.org/fpics/products/boosters/ST.png +http://www.cardforge.org/fpics/products/boosters/TE.png +http://www.cardforge.org/fpics/products/boosters/TOR.png +http://www.cardforge.org/fpics/products/boosters/TSP.png +http://www.cardforge.org/fpics/products/boosters/UD.png +http://www.cardforge.org/fpics/products/boosters/UL.png +http://www.cardforge.org/fpics/products/boosters/UZ.png +http://www.cardforge.org/fpics/products/boosters/VI.png +http://www.cardforge.org/fpics/products/boosters/WL.png +http://www.cardforge.org/fpics/products/boosters/WWK.png +http://www.cardforge.org/fpics/products/boosters/ZEN.png diff --git a/res/quest/fatpack-images.txt b/res/quest/fatpack-images.txt new file mode 100644 index 00000000000..3ecbd849b89 --- /dev/null +++ b/res/quest/fatpack-images.txt @@ -0,0 +1,52 @@ +http://www.cardforge.org/fpics/products/fatpacks/10E.jpg +http://www.cardforge.org/fpics/products/fatpacks/5DN.jpg +http://www.cardforge.org/fpics/products/fatpacks/9ED.jpg +http://www.cardforge.org/fpics/products/fatpacks/ALA.jpg +http://www.cardforge.org/fpics/products/fatpacks/APC.jpg +http://www.cardforge.org/fpics/products/fatpacks/ARB.jpg +http://www.cardforge.org/fpics/products/fatpacks/AVR.png +http://www.cardforge.org/fpics/products/fatpacks/BOK.jpg +http://www.cardforge.org/fpics/products/fatpacks/CFX.jpg +http://www.cardforge.org/fpics/products/fatpacks/CHK.jpg +http://www.cardforge.org/fpics/products/fatpacks/CSP.jpg +http://www.cardforge.org/fpics/products/fatpacks/DIS.jpg +http://www.cardforge.org/fpics/products/fatpacks/DKA.jpg +http://www.cardforge.org/fpics/products/fatpacks/DST.jpg +http://www.cardforge.org/fpics/products/fatpacks/EVE.jpg +http://www.cardforge.org/fpics/products/fatpacks/FUT.jpg +http://www.cardforge.org/fpics/products/fatpacks/GPT.jpg +http://www.cardforge.org/fpics/products/fatpacks/GTC.jpg +http://www.cardforge.org/fpics/products/fatpacks/INV.jpg +http://www.cardforge.org/fpics/products/fatpacks/ISD.jpg +http://www.cardforge.org/fpics/products/fatpacks/JUD.jpg +http://www.cardforge.org/fpics/products/fatpacks/LGN.jpg +http://www.cardforge.org/fpics/products/fatpacks/LRW.jpg +http://www.cardforge.org/fpics/products/fatpacks/M10.jpg +http://www.cardforge.org/fpics/products/fatpacks/M10.png +http://www.cardforge.org/fpics/products/fatpacks/M11.jpg +http://www.cardforge.org/fpics/products/fatpacks/M11.png +http://www.cardforge.org/fpics/products/fatpacks/M12.jpg +http://www.cardforge.org/fpics/products/fatpacks/M12.png +http://www.cardforge.org/fpics/products/fatpacks/M13.jpg +http://www.cardforge.org/fpics/products/fatpacks/MBS.jpg +http://www.cardforge.org/fpics/products/fatpacks/MMQ.jpg +http://www.cardforge.org/fpics/products/fatpacks/MOR.jpg +http://www.cardforge.org/fpics/products/fatpacks/MRD.jpg +http://www.cardforge.org/fpics/products/fatpacks/NMS.jpg +http://www.cardforge.org/fpics/products/fatpacks/NPH.jpg +http://www.cardforge.org/fpics/products/fatpacks/ODY.jpg +http://www.cardforge.org/fpics/products/fatpacks/ONS.jpg +http://www.cardforge.org/fpics/products/fatpacks/PCY.jpg +http://www.cardforge.org/fpics/products/fatpacks/PLC.jpg +http://www.cardforge.org/fpics/products/fatpacks/PLS.jpg +http://www.cardforge.org/fpics/products/fatpacks/RAV.jpg +http://www.cardforge.org/fpics/products/fatpacks/ROE.jpg +http://www.cardforge.org/fpics/products/fatpacks/RTR.jpg +http://www.cardforge.org/fpics/products/fatpacks/SCG.jpg +http://www.cardforge.org/fpics/products/fatpacks/SHM.jpg +http://www.cardforge.org/fpics/products/fatpacks/SOK.jpg +http://www.cardforge.org/fpics/products/fatpacks/SOM.jpg +http://www.cardforge.org/fpics/products/fatpacks/TOR.jpg +http://www.cardforge.org/fpics/products/fatpacks/TSP.jpg +http://www.cardforge.org/fpics/products/fatpacks/WWK.jpg +http://www.cardforge.org/fpics/products/fatpacks/ZEN.jpg diff --git a/res/quest/precon-images.txt b/res/quest/precon-images.txt new file mode 100644 index 00000000000..2454588eb26 --- /dev/null +++ b/res/quest/precon-images.txt @@ -0,0 +1,152 @@ +http://www.cardforge.org/fpics/products/precons/Bait_Bludgeon.jpg +http://www.cardforge.org/fpics/products/precons/Battle_Surge.jpg +http://www.cardforge.org/fpics/products/precons/Boggart_Feast.jpg +http://www.cardforge.org/fpics/products/precons/Bomber.jpg +http://www.cardforge.org/fpics/products/precons/Cho_Mannos_Resolve.jpg +http://www.cardforge.org/fpics/products/precons/Code_of_the_Orzhov.jpg +http://www.cardforge.org/fpics/products/precons/Critical_Mass.jpg +http://www.cardforge.org/fpics/products/precons/Crusher.jpg +http://www.cardforge.org/fpics/products/precons/Custom_Creatures.jpg +http://www.cardforge.org/fpics/products/precons/Dead_Again.jpg +http://www.cardforge.org/fpics/products/precons/Deaths_Minions.jpg +http://www.cardforge.org/fpics/products/precons/Decay.jpg +http://www.cardforge.org/fpics/products/precons/Deep_Freeze.jpg +http://www.cardforge.org/fpics/products/precons/Disrupter.jpg +http://www.cardforge.org/fpics/products/precons/Domain.jpg +http://www.cardforge.org/fpics/products/precons/Elvish_Rage.jpg +http://www.cardforge.org/fpics/products/precons/Evincars_Tyranny.jpg +http://www.cardforge.org/fpics/products/precons/Expulsion.jpg +http://www.cardforge.org/fpics/products/precons/Fangs_of_the_Bloodchief.jpg +http://www.cardforge.org/fpics/products/precons/Fate_Blaster.jpg +http://www.cardforge.org/fpics/products/precons/Fiendish_Nature.jpg +http://www.cardforge.org/fpics/products/precons/Golgari_Deathcreep.jpg +http://www.cardforge.org/fpics/products/precons/Golgari_Growth.jpg +http://www.cardforge.org/fpics/products/precons/Grave_Danger.jpg +http://www.cardforge.org/fpics/products/precons/Groundbreaker.jpg +http://www.cardforge.org/fpics/products/precons/Heavy_Hitters.jpg +http://www.cardforge.org/fpics/products/precons/Infestation.jpg +http://www.cardforge.org/fpics/products/precons/Izzet_Ingenuity.jpg +http://www.cardforge.org/fpics/products/precons/Kamahls_Temper.jpg +http://www.cardforge.org/fpics/products/precons/Kami_Reborn.jpg +http://www.cardforge.org/fpics/products/precons/Kithkin_Militia.jpg +http://www.cardforge.org/fpics/products/precons/Legion_Aloft.jpg +http://www.cardforge.org/fpics/products/precons/Life_Boost.jpg +http://www.cardforge.org/fpics/products/precons/Little_Bashers.jpg +http://www.cardforge.org/fpics/products/precons/Lofty_Heights.jpg +http://www.cardforge.org/fpics/products/precons/Master_Blaster.jpg +http://www.cardforge.org/fpics/products/precons/Mercenaries.jpg +http://www.cardforge.org/fpics/products/precons/Merrow_Riverways.jpg +http://www.cardforge.org/fpics/products/precons/Migraine.jpg +http://www.cardforge.org/fpics/products/precons/Molimos_Might.jpg +http://www.cardforge.org/fpics/products/precons/Phyrexian_Assault.jpg +http://www.cardforge.org/fpics/products/precons/Pummel.jpg +http://www.cardforge.org/fpics/products/precons/Radiants_Revenge.jpg +http://www.cardforge.org/fpics/products/precons/Rakdos_Bloodsport.jpg +http://www.cardforge.org/fpics/products/precons/Rakdos_Raid.jpg +http://www.cardforge.org/fpics/products/precons/Replicator.jpg +http://www.cardforge.org/fpics/products/precons/Rituals_of_Rebirth.jpg +http://www.cardforge.org/fpics/products/precons/Sacrificial_Bam.jpg +http://www.cardforge.org/fpics/products/precons/Selesnya_Surge.jpg +http://www.cardforge.org/fpics/products/precons/Selesnya_United.jpg +http://www.cardforge.org/fpics/products/precons/Shamanism.jpg +http://www.cardforge.org/fpics/products/precons/Sky_Slam.jpg +http://www.cardforge.org/fpics/products/precons/Sleeper.jpg +http://www.cardforge.org/fpics/products/precons/Sliver_Shivers.jpg +http://www.cardforge.org/fpics/products/precons/Snowscape.jpg +http://www.cardforge.org/fpics/products/precons/Spectral_Slam.jpg +http://www.cardforge.org/fpics/products/precons/Speed_Scorch.jpg +http://www.cardforge.org/fpics/products/precons/Spirit_Flames.jpg +http://www.cardforge.org/fpics/products/precons/Spiritcraft.jpg +http://www.cardforge.org/fpics/products/precons/Stampede.jpg +http://www.cardforge.org/fpics/products/precons/Sunburst.jpg +http://www.cardforge.org/fpics/products/precons/The_Spikes.jpg +http://www.cardforge.org/fpics/products/precons/The_Swarm.jpg +http://www.cardforge.org/fpics/products/precons/Time_Drain.jpg +http://www.cardforge.org/fpics/products/precons/Tombstone.jpg +http://www.cardforge.org/fpics/products/precons/Trounce-O-Matic.jpg +http://www.cardforge.org/fpics/products/precons/Truth_Seekers.jpg +http://www.cardforge.org/fpics/products/precons/Turnabout.jpg +http://www.cardforge.org/fpics/products/precons/Warriors_Code.jpg +http://www.cardforge.org/fpics/products/precons/Way_Wild.jpg +http://www.cardforge.org/fpics/products/precons/Wicked_Big.jpg +http://www.cardforge.org/fpics/products/precons/World_Aflame.jpg +http://www.cardforge.org/fpics/products/precons/Zombies_Unleashed.jpg +http://www.cardforge.org/fpics/products/precons/angelic_might.jpg +http://www.cardforge.org/fpics/products/precons/bant_exalted.jpg +http://www.cardforge.org/fpics/products/precons/bant_on_the_march.jpg +http://www.cardforge.org/fpics/products/precons/battle_blitz.jpg +http://www.cardforge.org/fpics/products/precons/battle_cries.jpg +http://www.cardforge.org/fpics/products/precons/blood_and_fire.jpg +http://www.cardforge.org/fpics/products/precons/bound_by_strength.jpg +http://www.cardforge.org/fpics/products/precons/breath_of_fire.jpg +http://www.cardforge.org/fpics/products/precons/carnival_of_blood.jpg +http://www.cardforge.org/fpics/products/precons/dark_sacrifice.jpg +http://www.cardforge.org/fpics/products/precons/dead_ahead.jpg +http://www.cardforge.org/fpics/products/precons/deadspread.jpg +http://www.cardforge.org/fpics/products/precons/deathfed.jpg +http://www.cardforge.org/fpics/products/precons/deathly_dominion.jpg +http://www.cardforge.org/fpics/products/precons/deaths_encroach.jpg +http://www.cardforge.org/fpics/products/precons/depths_of_power.jpg +http://www.cardforge.org/fpics/products/precons/devouring_skies.jpg +http://www.cardforge.org/fpics/products/precons/doom_inevitable.jpg +http://www.cardforge.org/fpics/products/precons/eldritch_onslaught.jpg +http://www.cardforge.org/fpics/products/precons/entangling_webs.jpg +http://www.cardforge.org/fpics/products/precons/esper_air_assault.jpg +http://www.cardforge.org/fpics/products/precons/esper_artifice.jpg +http://www.cardforge.org/fpics/products/precons/eternal_siege.jpg +http://www.cardforge.org/fpics/products/precons/feast_of_flesh.jpg +http://www.cardforge.org/fpics/products/precons/fiery_dawn.jpg +http://www.cardforge.org/fpics/products/precons/firebomber.jpg +http://www.cardforge.org/fpics/products/precons/flyover.jpg +http://www.cardforge.org/fpics/products/precons/gleeful_flames.jpg +http://www.cardforge.org/fpics/products/precons/grab-for-power.jpg +http://www.cardforge.org/fpics/products/precons/grave_power.jpg +http://www.cardforge.org/fpics/products/precons/grixis_shambling_army.jpg +http://www.cardforge.org/fpics/products/precons/grixis_undead.jpg +http://www.cardforge.org/fpics/products/precons/hold_the_line.jpg +http://www.cardforge.org/fpics/products/precons/infect_and_defile.jpg +http://www.cardforge.org/fpics/products/precons/into_the_breach.jpg +http://www.cardforge.org/fpics/products/precons/invading_spawn.jpg +http://www.cardforge.org/fpics/products/precons/jund_appetite_for_war.jpg +http://www.cardforge.org/fpics/products/precons/kor_armory.jpg +http://www.cardforge.org/fpics/products/precons/levelers_glory.jpg +http://www.cardforge.org/fpics/products/precons/levelers_scorn.jpg +http://www.cardforge.org/fpics/products/precons/metalcraft.jpg +http://www.cardforge.org/fpics/products/precons/mirromancy.jpg +http://www.cardforge.org/fpics/products/precons/mob_rule.jpg +http://www.cardforge.org/fpics/products/precons/monstrous_surprise.jpg +http://www.cardforge.org/fpics/products/precons/myr_of_mirrodin.jpg +http://www.cardforge.org/fpics/products/precons/mysterious_realms.jpg +http://www.cardforge.org/fpics/products/precons/mystical_might.jpg +http://www.cardforge.org/fpics/products/precons/naya_behemoths.jpg +http://www.cardforge.org/fpics/products/precons/naya_domain.jpg +http://www.cardforge.org/fpics/products/precons/path_of_blight.jpg +http://www.cardforge.org/fpics/products/precons/phyrexian_poison.jpg +http://www.cardforge.org/fpics/products/precons/presence_of_mind.jpg +http://www.cardforge.org/fpics/products/precons/primordial_jund.jpg +http://www.cardforge.org/fpics/products/precons/rapid_fire.jpg +http://www.cardforge.org/fpics/products/precons/ravaging_swarm.jpg +http://www.cardforge.org/fpics/products/precons/reign_of_vampirism.jpg +http://www.cardforge.org/fpics/products/precons/relentless_dead.jpg +http://www.cardforge.org/fpics/products/precons/relic_breaker.jpg +http://www.cardforge.org/fpics/products/precons/repeat_performance.jpg +http://www.cardforge.org/fpics/products/precons/repel_the_dark.jpg +http://www.cardforge.org/fpics/products/precons/rise_of_the_vampires.jpg +http://www.cardforge.org/fpics/products/precons/rot_from_within.jpg +http://www.cardforge.org/fpics/products/precons/rumbler.jpg +http://www.cardforge.org/fpics/products/precons/sacred_assault.jpg +http://www.cardforge.org/fpics/products/precons/slaughterhouse.jpg +http://www.cardforge.org/fpics/products/precons/sole_domination.jpg +http://www.cardforge.org/fpics/products/precons/solitary_fiends.jpg +http://www.cardforge.org/fpics/products/precons/spectral_legions.jpg +http://www.cardforge.org/fpics/products/precons/spiraling_doom.jpg +http://www.cardforge.org/fpics/products/precons/superabundance.jpg +http://www.cardforge.org/fpics/products/precons/sweet_revenge.jpg +http://www.cardforge.org/fpics/products/precons/swift_justice.jpg +http://www.cardforge.org/fpics/products/precons/the_adventurers.jpg +http://www.cardforge.org/fpics/products/precons/totem_power.jpg +http://www.cardforge.org/fpics/products/precons/unnatural_schemes.jpg +http://www.cardforge.org/fpics/products/precons/unstable_terrain.jpg +http://www.cardforge.org/fpics/products/precons/vampire_onslaught.jpg +http://www.cardforge.org/fpics/products/precons/war_of_attrition.jpg +http://www.cardforge.org/fpics/products/precons/wild_rush.jpg diff --git a/res/quest/price.txt b/res/quest/price.txt deleted file mode 100644 index c9ba7d6ab63..00000000000 --- a/res/quest/price.txt +++ /dev/null @@ -1,2851 +0,0 @@ -AEther Membrane =50 -AEther Spellbomb =10 -AEther Vial =50 -AEther Web =10 -AEtherflame Wall =10 -Abbey Gargoyles =50 -Abomination =50 -Absolute Grace =50 -Absolute Law =50 -Absorb =200 -Absorb Vis =10 -Abyssal Hunter =200 -Academy Rector =200 -Academy Ruins =200 -Accelerate =10 -Accelerated Mutation =10 -Accumulated Knowledge =10 -Acolyte of Xathrid =10 -Acorn Harvest =10 -Acridian =10 -Act of Treason =50 -Adarkar Sentinel =50 -Adarkar Valkyrie =200 -Adun Oakenshield =200 -Advance Scout =10 -Advanced Hoverguard =10 -Aesthir Glider =10 -Agent of Stromgald =10 -Aggressive Urge =10 -Air Elemental =50 -Airborne Aid =10 -Ajani Goldmane =200 -Ajani Vengeant =200 -Akki Drillmaster =10 -Akoum Refuge =50 -Akrasan Squire =10 -Akroma's Vengeance =200 -Akroma, Angel of Fury =200 -Akroma, Angel of Wrath =200 -Alaborn Grenadier =10 -Alaborn Musketeer =10 -Alaborn Trooper =10 -Aladdin's Ring =200 -Albino Troll =50 -Alert Shu Infantry =50 -Ali from Cairo =200 -Alley Grifters =10 -Allied Strategies =50 -Alpha Myr =10 -Aluren =200 -Ambassador Laquatus =200 -Ambassador Oak =10 -Ambition's Cost =50 -Ambush Party =10 -Amnesia =50 -Amrou Scout =10 -Amrou Seekers =10 -Amulet of Vigor =200 -An-Havva Township =50 -Anaba Bodyguard =10 -Anaba Shaman =10 -Anaconda =50 -Anarchist =10 -Ancestral Recall =110000 -Ancient Craving =200 -Ancient Den =10 -Ancient Silverback =200 -Ancient Spider =200 -Angel of Despair =200 -Angel of Light =50 -Angel of Mercy =50 -Angel of Retribution =200 -Angelfire Crusader =10 -Angelic Blessing =10 -Angelic Curator =10 -Angelic Wall =10 -Angelsong =10 -Anger =50 -Animate Dead =50 -Animate Land =50 -Annihilate =50 -Anodet Lurker =10 -Anowon, the Ruin Sage =200 -Ant Queen =200 -Antler Skulkin =10 -Anurid Murkdiver =10 -Apex Hawks =10 -Apprentice Wizard =10 -Araba Mothrider =10 -Arachnoid =50 -Arashi, the Sky Asunder =200 -Arcane Sanctum =50 -Arcanis the Omnipotent =200 -Arcbound Bruiser =10 -Arcbound Hybrid =10 -Arcbound Lancer =50 -Arcbound Slith =50 -Arcbound Stinger =10 -Arcbound Worker =10 -Archangel =200 -Archivist =200 -Archon of Justice =200 -Arctic Flats =50 -Arctic Nishoba =50 -Arctic Wolves =50 -Ardent Militia =10 -Ardent Plea =50 -Argothian Enchantress =200 -Argothian Swine =10 -Arid Mesa =200 -Armadillo Cloak =10 -Armageddon =200 -Armistice =200 -Armored Galleon =50 -Armored Griffin =50 -Armored Guardian =200 -Armored Pegasus =10 -Armorer Guildmage =10 -Arnjlot's Ascent =10 -Arrogant Vampire =50 -Ascending Aven =10 -Asha's Favor =10 -Ashcoat Bear =10 -Ashen Monstrosity =50 -Ashen-Skin Zubera =10 -Ashenmoor Cohort =10 -Ashenmoor Gouger =50 -Ashes to Ashes =200 -Ashnod's Transmogrant =10 -Aspect of Mongoose =50 -Assault Zeppelid =10 -Assembly-Worker =50 -Augury Adept =200 -Aura Blast =10 -Auramancer =10 -Auriok Bladewarden =50 -Avalanche Riders =50 -Aven Brigadier =200 -Aven Cloudchaser =10 -Aven Envoy =10 -Aven Fisher =10 -Aven Flock =10 -Aven Riftwatcher =10 -Aven Smokeweaver =50 -Aven Squire =10 -Aven Trailblazer =10 -Avenger of Zendikar =200 -Avian Changeling =10 -Axegrinder Giant =10 -Aysen Abbey =50 -Ayumi, the Last Visitor =200 -Azimaet Drake =10 -Azorius Chancery =10 -Azorius First-Wing =10 -Azorius Signet =10 -Azure Drake =50 -Azusa, Lost but Seeking =200 -Bad Moon =200 -Badlands =200 -Balance =15000 -Balduvian Barbarians =10 -Balduvian Bears =10 -Ball Lightning =200 -Ballynock Cohort =10 -Ballynock Trapper =10 -Balshan Collaborator =50 -Baneslayer Angel =200 -Banishing Knack =10 -Bant Battlemage =50 -Bant Sureblade =10 -Barbarian General =50 -Barbarian Horde =10 -Barbary Apes =10 -Barbtooth Wurm =10 -Barkhide Mauler =10 -Barktooth Warbeard =50 -Barren Glory =200 -Barren Moor =10 -Barrenton Cragtreads =10 -Bartel Runeaxe =200 -Baru, Fist of Krosa =200 -Basalt Gargoyle =50 -Basalt Monolith =50 -Basilisk Collar =200 -Battering Craghorn =10 -Battering Sliver =10 -Battle Hurda =10 -Battle Mastery =50 -Battle Rampart =10 -Battle of Wits =200 -Battle-Mad Ronin =10 -Battlefield Percher =50 -Battlegate Mimic =10 -Battlegrace Angel =200 -Bay Falcon =10 -Bayou =200 -Bayou Dragonfly =10 -Bazaar of Baghdad =50 -Beacon of Creation =200 -Beacon of Destruction =200 -Beacon of Unrest =200 -Bear Cub =10 -Beast Attack =50 -Beastmaster Ascension =200 -Bee Sting =50 -Befoul =10 -Behemoth Sledge =50 -Belbe's Percher =10 -Belbe's Portal =200 -Belligerent Hatchling =50 -Beloved Chaplain =50 -Benalish Cavalry =10 -Benalish Heralds =50 -Benalish Knight =10 -Benalish Trapper =10 -Benthic Behemoth =200 -Berserkers of Blood Ridge =10 -Bestial Menace =50 -Biomantic Mastery =200 -Bird Maiden =10 -Birds of Paradise =200 -Bitterblossom =200 -Bituminous Blast =50 -Black Knight =50 -Black Lotus =120000 -Black Vise =50 -Blade Sliver =50 -Blade of the Sixth Pride =10 -Bladetusk Boar =10 -Blanchwood Treefolk =10 -Blasted Landscape =50 -Blastoderm =10 -Blaze =50 -Blazing Archon =200 -Blazing Specter =200 -Blight Sickle =10 -Blightning =10 -Blightspeaker =10 -Blind Phantasm =10 -Blinding Light =200 -Blinding Mage =10 -Blinkmoth Nexus =200 -Blistering Barrier =10 -Blistering Dieflyn =10 -Blistering Firecat =200 -Blizzard Elemental =200 -Bloated Toad =50 -Blockade Runner =10 -Blood Crypt =200 -Blood Knight =50 -Bloodbraid Elf =50 -Bloodcurdling Scream =50 -Bloodghast =200 -Bloodrock Cyclops =10 -Bloodstained Mire =200 -Bloodstone Cameo =50 -Blurred Mongoose =200 -Body of Jukai =50 -Bog Imp =10 -Bog Initiate =10 -Bog Raiders =10 -Bog Smugglers =10 -Bog Tatters =10 -Bog Wraith =50 -Boggart Birth Rite =10 -Boggart Harbinger =50 -Boggart Ram-Gang =50 -Boil =50 -Boiling Seas =50 -Bojuka Brigand =10 -Bonded Fetch =50 -Bone Saw =10 -Bonesplitter =10 -Bonesplitter Sliver =10 -Boomerang =10 -Border Guard =10 -Border Patrol =10 -Boreal Centaur =10 -Boreal Druid =10 -Boreal Griffin =10 -Boreal Shelf =50 -Boris Devilboon =200 -Boros Garrison =10 -Boros Guildmage =50 -Boros Recruit =10 -Boros Signet =10 -Boros Swiftblade =50 -Borrowing 100,000 Arrows =50 -Borrowing the East Wind =200 -Bottle Gnomes =50 -Bound in Silence =50 -Bounteous Kirin =200 -Braidwood Cup =50 -Brainbite =10 -Braingeyser =200 -Brainstorm =10 -Branchsnap Lorian =50 -Brave the Elements =0 -Brawn =50 -Breach =10 -Break Asunder =10 -Breath of Life =10 -Breath of Malfegor =10 -Breathstealer =10 -Breeding Pool =200 -Briarberry Cohort =10 -Briarhorn =50 -Bribery =200 -Bridge from Below =200 -Brilliant Halo =10 -Brilliant Plan =50 -Brimstone Dragon =200 -Bringer of the Blue Dawn =200 -Bringer of the Green Dawn =200 -Bringer of the White Dawn =200 -Brion Stoutarm =200 -Broodmate Dragon =200 -Brothers of Fire =10 -Brush With Death =10 -Brute Force =10 -Bull Cerodon =50 -Bull Hippo =50 -Bull Rush =10 -Buoyancy =10 -Burning Cloak =10 -Burning Fields =10 -Burning Shield Askari =10 -Burst of Speed =10 -Cabal Coffers =50 -Cackling Flames =10 -Cackling Imp =10 -Cadaverous Knight =10 -Calciderm =50 -Caldera Hellion =200 -Call of the Herd =200 -Caller of Gales =10 -Caller of the Claw =50 -Callous Giant =200 -Cancel =10 -Canopy Spider =10 -Cantivore =200 -Canyon Minotaur =10 -Canyon Wildcat =10 -Cao Cao, Lord of Wei =200 -Cao Ren, Wei Commander =200 -Capashen Knight =10 -Capashen Templar =10 -Capashen Unicorn =10 -Capsize =10 -Captain Sisay =200 -Captain of the Watch =200 -Captive Flame =50 -Capture of Jingzhou =200 -Caravan Hurda =10 -Careful Study =10 -Caribou Range =200 -Carnassid =200 -Carnivorous Plant =10 -Carnophage =10 -Carrion Ants =50 -Carrion Wall =50 -Cartographer =10 -Carven Caryatid =50 -Cascade Bluffs =200 -Castle =50 -Castle Raptors =10 -Castle Sengir =50 -Cat Warriors =10 -Catalog =10 -Cateran Brute =10 -Cateran Enforcer =50 -Cateran Kidnappers =50 -Cateran Overlord =200 -Cateran Persuader =10 -Cateran Slaver =200 -Cathartic Adept =10 -Cavern Crawler =10 -Cavern Harpy =10 -Cavern Thoctar =10 -Celestial Colonnade =200 -Celestial Prism =50 -Celestial Purge =50 -Cemetery Gate =10 -Centaur Courser =10 -Centaur Glade =50 -Cephalid Broker =50 -Cephalid Looter =10 -Cerodon Yearling =10 -Cerulean Wyvern =50 -Cessation =10 -Ceta Disciple =10 -Chainer's Edict =50 -Chainer, Dementia Master =200 -Chambered Nautilus =50 -Chameleon Colossus =200 -Chandra Nalaar =200 -Changeling Berserker =50 -Changeling Hero =50 -Changeling Sentinel =10 -Changeling Titan =50 -Char =200 -Char-Rumbler =50 -Charcoal Diamond =50 -Charging Bandits =50 -Charging Slateback =10 -Charging Troll =50 -Chartooth Cougar =10 -Chatter of the Squirrel =10 -Child of Alara =200 -Child of Gaea =200 -Child of Night =10 -Chilling Apparition =50 -Chilling Shade =10 -Chittering Rats =10 -Cho-Manno, Revolutionary =200 -Chorus of Woe =10 -Chronatog =200 -Cinder Pyromancer =10 -Cinder Storm =50 -Cinderbones =10 -Citanul Centaurs =200 -Clay Statue =10 -Cleanfall =50 -Cleanse =200 -Clear =50 -Cliff Threader =10 -Cloak of Feathers =10 -Cloak of Mists =10 -Cloud Djinn =50 -Cloud Dragon =200 -Cloud Elemental =10 -Cloud Pirates =10 -Cloud Spirit =10 -Cloud Sprite =10 -Cloud of Faeries =10 -Cloudchaser Eagle =10 -Cloudcrown Oak =10 -Cloudheath Drake =10 -Cloudhoof Kirin =200 -Cloudseeder =50 -Coast Watcher =10 -Coastal Hornclaw =10 -Coastal Tower =50 -Cobalt Golem =10 -Coercion =10 -Cognivore =200 -Coiled Tinviper =10 -Cold-Eyed Selkie =200 -Collective Restraint =200 -Collective Unconscious =200 -Colos Yearling =10 -Colossal Might =10 -Commander Eesha =200 -Commune with Nature =10 -Composite Golem =50 -Compulsive Research =10 -Concentrate =50 -Concordant Crossroads =200 -Conqueror's Pledge =200 -Conspiracy =200 -Control Magic =50 -Control of the Court =50 -Convalescence =200 -Convalescent Care =200 -Convolute =10 -Copper Myr =10 -Coral Eel =10 -Coral Merfolk =10 -Corrupt =10 -Corrupt Court Official =50 -Corrupt Eunuchs =50 -Corrupt Official =200 -Cosmic Horror =200 -Council of Advisors =50 -Counsel of the Soratami =10 -Counterbalance =50 -Counterspell =50 -Courier Hawk =10 -Court Archers =10 -Cover of Darkness =200 -Covert Operative =10 -Covetous Dragon =200 -Crabapple Cohort =10 -Cradle Guard =50 -Cranial Extraction =200 -Crash of Rhinos =10 -Craven Giant =10 -Craven Knight =10 -Craw Wurm =10 -Crawling Filth =10 -Crazed Goblin =10 -Crazed Skirge =50 -Creeping Mold =50 -Creeping Tar Pit =200 -Crenellated Wall =50 -Crib Swap =50 -Crimson Acolyte =10 -Crimson Kobolds =10 -Cromat =200 -Crookshank Kobolds =10 -Crowd of Cinders =50 -Crucible of Fire =200 -Crude Rampart =50 -Cruel Bargain =200 -Cruel Edict =10 -Cruel Tutor =200 -Crumbling Necropolis =50 -Crusade =200 -Crush of Wurms =200 -Crypt Cobra =50 -Crypt Ripper =10 -Crypt of Agadeem =200 -Crystal Quarry =200 -Crystalline Sliver =50 -Cudgel Troll =50 -Culling Sun =200 -Cunning Lethemancer =200 -Cunning Sparkmage =50 -Cursed Land =50 -Cursed Ronin =10 -Cylian Elf =10 -Daggerclaw Imp =50 -Dakkon Blackblade =200 -Dakmor Bat =10 -Dakmor Ghoul =50 -Dakmor Scorpion =10 -Damnation =200 -Dance of Shadows =50 -Dancing Scimitar =50 -Dandân =10 -Dark Banishing =10 -Dark Confidant =200 -Dark Depths =200 -Dark Ritual =10 -Darkling Stalker =10 -Darklit Gargoyle =10 -Darkness =10 -Darksteel Citadel =10 -Darksteel Colossus =200 -Darksteel Gargoyle =50 -Darksteel Ingot =10 -Darkwatch Elves =50 -Darkwater Catacombs =200 -Daru Encampment =50 -Daru Lancer =10 -Dauntless Dourbark =200 -Dauthi Embrace =50 -Dauthi Ghoul =50 -Dauthi Marauder =10 -Dauthi Mercenary =50 -Dauthi Slayer =10 -Dauthi Trapper =50 -Day of Judgment =200 -Daze =10 -Deadly Grub =10 -Deadly Insect =10 -Deadly Recluse =10 -Death Grasp =200 -Death Speakers =10 -Death's Duet =10 -Death's Shadow =50 -Deathmark =50 -Debtors' Knell =200 -Deep Analysis =10 -Deep-Sea Serpent =50 -Deeptread Merrow =10 -Deepwood Tantiv =0 -Defender of Chaos =10 -Defender of Law =10 -Defense of the Heart =200 -Defiant Elf =10 -Defiant Falcon =10 -Deft Duelist =10 -Delirium Skeins =10 -Demigod of Revenge =200 -Demolish =10 -Demonic Tutor =50 -Demystify =10 -Deranged Hermit =200 -Desert Drake =50 -Desert Twister =50 -Desperate Charge =50 -Despondency =10 -Devastation =200 -Devoted Hero =10 -Devoted Retainer =10 -Devour in Shadow =50 -Devouring Deep =10 -Devout Lightcaster =200 -Diabolic Edict =10 -Diabolic Machine =50 -Diabolic Tutor =50 -Dimir Aqueduct =10 -Dimir Cutpurse =200 -Dimir Guildmage =50 -Dimir Infiltrator =10 -Dimir Signet =10 -Dingus Egg =200 -Dingus Staff =50 -Diplomatic Immunity =10 -Dirtwater Wraith =10 -Disciple of Grace =10 -Disciple of Kangee =10 -Disciple of Law =10 -Disciple of Malice =10 -Disenchant =10 -Disentomb =10 -Dismiss =50 -Distress =10 -Divination =10 -Diving Griffin =10 -Divinity of Pride =200 -Djinn of the Lamp =200 -Do or Die =200 -Donate =200 -Doom Blade =10 -Door to Nothingness =200 -Doran, the Siege Tower =200 -Dosan's Oldest Chant =10 -Double Cleave =10 -Doubling Season =200 -Douse in Gloom =10 -Dovescape =200 -Dragon Blood =50 -Dragon Broodmother =200 -Dragon Engine =200 -Dragon Fodder =10 -Dragon Roost =200 -Dragonmaster Outcast =200 -Dragonskull Summit =200 -Dragonstalker =50 -Drake Hatchling =10 -Drake-Skull Cameo =50 -Dreadwing =50 -Dream Cache =10 -Dream Stalker =10 -Dreg Reaver =10 -Drekavac =50 -Drelnoch =10 -Drift of Phantasms =10 -Drifter il-Dal =10 -Drifting Djinn =200 -Drifting Meadow =10 -Dripping-Tongue Zubera =10 -Dromad Purebred =10 -Dross Crocodile =10 -Dross Prowler =10 -Drove of Elves =50 -Drowned =10 -Drowned Catacomb =200 -Drudge Reavers =10 -Drudge Skeletons =10 -Druid of the Anima =10 -Dryad Arbor =50 -Dryad Sophisticate =50 -Duergar Cave-Guard =50 -Dunerider Outlaw =50 -Dungeon Shade =10 -Duress =10 -Durkwood Boars =10 -Dusk Imp =10 -Duskdale Wurm =50 -Duskmantle, House of Shadow =50 -Duskrider Falcon =10 -Dwarven Grunt =10 -Dwarven Pony =200 -Dwarven Trader =10 -Eager Cadet =10 -Earth Elemental =50 -Earthbind =10 -Earthcraft =200 -Earthquake =200 -Ebony Rhino =10 -Ebony Treefolk =50 -Echoing Courage =10 -Echoing Decay =10 -Echoing Truth =10 -Ekundu Griffin =10 -El-Hajjaj =200 -Eladamri's Call =200 -Eladamri, Lord of Leaves =200 -Eldrazi Monument =200 -Elephant Ambush =10 -Elfhame Palace =50 -Elite Cat Warrior =10 -Elite Vanguard =50 -Elspeth, Knight-Errant =200 -Elven Warhounds =200 -Elvish Aberration =50 -Elvish Archdruid =200 -Elvish Archers =200 -Elvish Champion =200 -Elvish Farmer =200 -Elvish Fury =10 -Elvish Harbinger =50 -Elvish Herder =10 -Elvish Hunter =10 -Elvish Lookout =10 -Elvish Piper =200 -Elvish Ranger =10 -Elvish Visionary =10 -Elvish Warrior =10 -Ember Shot =10 -Ember-Fist Zubera =10 -Emberstrike Duo =10 -Emerald Dragonfly =10 -Emerald Oryx =10 -Emeria Angel =200 -Emeria, the Sky Ruin =200 -Emmessi Tome =200 -Empty the Warrens =10 -Enchantress's Presence =200 -Enclave Elite =10 -Endless Cockroaches =200 -Energizer =200 -Engineered Plague =50 -Enlightened Tutor =50 -Enlisted Wurm =50 -Enormous Baloth =50 -Enrage =50 -Enslaved Scout =10 -Ensnare =50 -Entomb =200 -Epic Proportions =200 -Eron the Relentless =50 -Erratic Explosion =10 -Esper Cormorants =10 -Esper Stormblade =10 -Essence Scatter =10 -Essence Sliver =200 -Essence Warden =10 -Eternal Flame =200 -Eternal Witness =50 -Eternity Snare =10 -Ethercaste Knight =10 -Ethereal Usher =50 -Ethereal Whiskergill =50 -Ethersworn Adjudicator =200 -Evacuation =200 -Eviscerator =200 -Exalted Angel =200 -Exclude =10 -Execute =50 -Exhume =10 -Exotic Disease =50 -Exploration =200 -Expunge =10 -Eye of Nowhere =10 -Eyeblight's Ending =10 -Fable of Wolf and Owl =200 -Faceless Butcher =10 -Faerie Conclave =50 -Faerie Harbinger =50 -Faerie Swarm =50 -Fallen Angel =50 -Fallen Askari =10 -False Defeat =10 -False Summoning =10 -Fanatical Fever =50 -Fangren Hunter =10 -Fastbond =200 -Fault Line =200 -Fear =10 -Feast of Flesh =10 -Feast of the Unicorn =10 -Fecundity =50 -Feedback Bolt =50 -Felidar Sovereign =200 -Femeref Archers =50 -Femeref Enchantress =200 -Femeref Knight =10 -Femeref Scouts =10 -Feral Animist =50 -Feral Lightning =50 -Feral Shadow =10 -Ferocious Charge =10 -Fervent Charge =200 -Fervor =200 -Festival of Trokin =10 -Fetid Heath =200 -Fetid Horror =10 -Feudkiller's Verdict =200 -Field Marshal =200 -Fiery Fall =10 -Fiery Hellhound =10 -Fighting Drake =50 -Figure of Destiny =200 -Filigree Angel =200 -Filthy Cur =10 -Fire Ambush =10 -Fire Bowman =50 -Fire Diamond =50 -Fire Drake =50 -Fire Elemental =10 -Fire Imp =50 -Fire Sprites =10 -Fire-Belly Changeling =50 -Fire-Lit Thicket =200 -Firebolt =10 -Firefly =50 -Firescreamer =50 -Fireshrieker =50 -Fireslinger =10 -Firestorm Hellkite =200 -First Volley =10 -Fissure =10 -Fists of the Anvil =10 -Fit of Rage =10 -Flagstones of Trokair =200 -Flame Burst =10 -Flame Javelin =50 -Flame Jet =10 -Flame Rift =10 -Flame Spirit =50 -Flamebreak =200 -Flamecore Elemental =10 -Flamekin Brawler =10 -Flamekin Harbinger =50 -Flamekin Spitfire =50 -Flametongue Kavu =50 -Flamewave Invoker =10 -Fledgling Djinn =10 -Fledgling Mawcor =50 -Fleetfoot Panther =50 -Fleeting Image =200 -Flight =10 -Floating-Dream Zubera =10 -Flooded Grove =200 -Flooded Strand =200 -Flow of Ideas =50 -Flowstone Charger =50 -Flowstone Crusher =50 -Flowstone Giant =10 -Flowstone Hellion =50 -Flowstone Mauler =200 -Flowstone Overseer =200 -Flowstone Shambler =10 -Flowstone Strike =10 -Flowstone Thopter =50 -Flowstone Wall =10 -Flowstone Wyvern =200 -Flying Carpet =50 -Flying Men =10 -Fog =10 -Fog of Gnats =10 -Folk of the Pines =10 -Fomori Nomad =10 -Font of Mythos =200 -Foot Soldiers =10 -Foothill Guide =10 -Forbidding Watchtower =50 -Force Spike =10 -Force of Nature =200 -Force of Savagery =200 -Force of Will =50 -Forced Fruition =200 -Forest =0 -Forest Bear =10 -Forgotten Cave =10 -Forked-Branch Garami =50 -Foul Imp =10 -Foxfire Oak =10 -Freewind Falcon =10 -Fresh Volunteers =10 -Frontline Sage =10 -Frost Marsh =50 -Frost Ogre =10 -Frost Raptor =10 -Frostling =10 -Frostweb Spider =10 -Frozen AEther =50 -Frozen Shade =10 -Fugitive Wizard =10 -Funeral Charm =10 -Furnace Spirit =10 -Furnace Whelp =50 -Fury Sliver =50 -Fusion Elemental =50 -Fyndhorn Bow =50 -Fyndhorn Elder =50 -Fyndhorn Elves =10 -Gaddock Teeg =200 -Gaea's Anthem =200 -Gaea's Cradle =200 -Gaea's Might =10 -Gaea's Skyfolk =10 -Galina's Knight =10 -Game-Trail Changeling =10 -Gargoyle Castle =200 -Garruk Wildspeaker =200 -Garza Zol, Plague Queen =200 -Gatekeeper of Malakir =120 -Gelectrode =50 -Gemhide Sliver =10 -Gemstone Array =50 -Gerrard's Command =10 -Gerrard's Irregulars =10 -Gerrard's Verdict =50 -Ghastlord of Fugue =200 -Ghitu Encampment =50 -Ghitu War Cry =50 -Ghor-Clan Bloodscale =50 -Ghost Ship =50 -Ghost Warden =10 -Ghost-Lit Redeemer =50 -Ghostfire =10 -Ghostly Changeling =50 -Ghostly Prison =50 -Ghostly Visit =10 -Ghoul's Feast =50 -Giant Cockroach =10 -Giant Crab =10 -Giant Dustwasp =10 -Giant Growth =10 -Giant Harbinger =50 -Giant Mantis =10 -Giant Octopus =50 -Giant Scorpion =10 -Giant Solifuge =200 -Giant Spider =10 -Giant Strength =10 -Giant Warthog =10 -Gibbering Kami =10 -Gift of Estates =50 -Gilded Lotus =200 -Gilder Bairn =50 -Gilt-Leaf Archdruid =200 -Giltspire Avenger =200 -Glacial Fortress =200 -Glacial Wall =50 -Glass Golem =50 -Glimmering Angel =10 -Glimpse the Unthinkable =200 -Glint-Eye Nephilim =200 -Glintwing Invoker =10 -Global Ruin =200 -Gloomwidow =50 -Glorious Anthem =200 -Glorious Charge =10 -Glory Seeker =10 -Gluttonous Slime =50 -Gluttonous Zombie =50 -Gnarled Mass =10 -Gnarlid Pack =10 -Goblin Artillery =50 -Goblin Balloon Brigade =50 -Goblin Berserker =50 -Goblin Brigand =10 -Goblin Bully =10 -Goblin Burrows =50 -Goblin Cavaliers =10 -Goblin Charbelcher =200 -Goblin Chariot =10 -Goblin Chieftain =200 -Goblin Deathraiders =10 -Goblin General =50 -Goblin Glider =50 -Goblin Grenade =10 -Goblin Guide =200 -Goblin Hero =10 -Goblin King =200 -Goblin Lackey =50 -Goblin Lore =50 -Goblin Marshal =200 -Goblin Matron =10 -Goblin Mountaineer =10 -Goblin Offensive =50 -Goblin Outlander =10 -Goblin Patrol =10 -Goblin Piker =10 -Goblin Piledriver =200 -Goblin Raider =10 -Goblin Rimerunner =10 -Goblin Ringleader =50 -Goblin Roughrider =10 -Goblin Sharpshooter =200 -Goblin Sky Raider =10 -Goblin Skycutter =10 -Goblin Spelunkers =10 -Goblin Striker =10 -Goblin Trenches =200 -Goblin War Buggy =10 -Goblin War Paint =10 -Goblin War Strike =10 -Godless Shrine =200 -Gods' Eye, Gate to the Reikai =50 -Godsire =250 -Gold Myr =10 -Golden Bear =10 -Goldmeadow Dodger =10 -Goldmeadow Harrier =10 -Goldmeadow Lookout =50 -Golgari Rot Farm =10 -Golgari Signet =10 -Goliath Beetle =10 -Goliath Sphinx =200 -Goliath Spider =50 -Goretusk Firebeast =10 -Gorger Wurm =10 -Gorgon Flail =50 -Gorilla Chieftain =10 -Gorilla Warrior =10 -Granger Guildmage =10 -Granite Gargoyle =200 -Granite Shard =50 -Grappler Spider =10 -Gravedigger =10 -Gravelgill Axeshark =10 -Gravelgill Duo =10 -Graven Cairns =200 -Gray Ogre =10 -Graypelt Hunter =10 -Graypelt Refuge =50 -Grayscaled Gharial =10 -Great Furnace =10 -Great Sable Stag =200 -Greater Forgeling =50 -Greener Pastures =200 -Greenweaver Druid =50 -Griffin Sentinel =10 -Grim Monolith =200 -Grim Tutor =200 -Grinning Demon =200 -Grixis Battlemage =50 -Grixis Grimblade =10 -Grizzled Leotau =10 -Grizzly Bears =10 -Grizzly Fate =50 -Groundbreaker =200 -Gruul Signet =10 -Gruul Turf =10 -Guan Yu, Sainted Warrior =200 -Guardian of Cloverdell =50 -Guardians of Akrasa =10 -Guided Strike =10 -Guiltfeeder =200 -Guilty Conscience =10 -Guma =50 -Gush =10 -Guul Draz Specter =200 -Guul Draz Vampire =10 -Gwendlyn Di Corci =200 -Hada Freeblade =50 -Hagra Crocodile =10 -Halberdier =10 -Halcyon Glaze =50 -Hallowed Fountain =200 -Hammerfist Giant =200 -Hand of Cruelty =50 -Hand of Death =10 -Hand of Honor =50 -Hanna, Ship's Navigator =200 -Harabaz Druid =200 -Harmattan Efreet =50 -Harmonize =50 -Harvest Gwyllion =10 -Hatching Plans =200 -Haunted Angel =50 -Haunting Echoes =200 -Havenwood Wurm =10 -Hawkeater Moth =50 -Hazerider Drake =50 -Headhunter =50 -Headless Horseman =10 -Heart Sliver =10 -Hearthfire Hobgoblin =50 -Heartmender =200 -Heartwood Dryad =10 -Heartwood Shard =50 -Heartwood Treefolk =50 -Heat Ray =10 -Hedge Troll =50 -Hedron Crab =50 -Hedron Rover =10 -Helionaut =10 -Helix Pinnacle =200 -Hell-Bent Raider =200 -Helldozer =200 -Hellkite Overlord =200 -Hematite Golem =10 -Henchfiend of Ukor =10 -Henge Guardian =50 -Henge of Ramos =50 -Herald of Serra =200 -Hero's Demise =200 -Hero's Resolve =10 -Hex =200 -Hidetsugu's Second Rite =200 -Highland Berserker =10 -Highland Giant =10 -Highland Weald =50 -Highway Robber =10 -Hill Giant =10 -Hillcomber Giant =10 -Hoar Shade =10 -Hobgoblin Dragoon =10 -Hollow Dogs =10 -Holy Day =10 -Holy Strength =10 -Honden of Cleansing Fire =50 -Honden of Infinite Rage =50 -Honden of Life's Web =50 -Honden of Night's Reach =50 -Honden of Seeing Winds =50 -Honor Guard =10 -Honor of the Pure =200 -Hooded Kavu =10 -Hoofprints of the Stag =200 -Hopping Automaton =50 -Horde of Notions =200 -Horned Cheetah =50 -Horned Kavu =10 -Horned Sliver =50 -Horned Troll =10 -Horned Turtle =10 -Hornet Cobra =10 -Horseshoe Crab =10 -Hoverguard Observer =50 -Howl from Beyond =10 -Howl of the Night Pack =50 -Howling Fury =10 -Howling Mine =200 -Hulking Cyclops =50 -Hulking Goblin =10 -Hulking Ogre =10 -Humble Budoka =10 -Hundroog =10 -Hunger of the Nim =10 -Hungry Mist =10 -Hunted Dragon =200 -Hunted Horror =200 -Hunted Lammasu =200 -Hunted Phantasm =200 -Hunted Troll =200 -Hurloon Minotaur =10 -Hurricane =50 -Hush =10 -Hyalopterous Lemure =10 -Hymn to Tourach =10 -Hypnotic Specter =50 -Hystrodon =200 -Icatian Priest =50 -Icatian Scout =10 -Ice Storm =50 -Ichor Slick =10 -Icy Manipulator =50 -Identity Crisis =200 -Ifh-Biff Efreet =200 -Igneous Golem =50 -Igneous Pouncer =10 -Ihsan's Shade =50 -Illusionary Forces =10 -Illusionary Wall =10 -Illusions of Grandeur =200 -Immaculate Magistrate =10 -Imperial Edict =10 -Imperial Hellkite =200 -Imperial Recruiter =50 -Imperial Seal =200 -Imperiosaur =50 -Imperious Perfect =10 -Implode =50 -Impulse =10 -Incendiary Command =200 -Incurable Ogre =10 -Independent Troops =10 -Indomitable Ancients =200 -Indomitable Will =10 -Infernal Contract =200 -Infernal Kirin =200 -Infest =50 -Infiltrate =10 -Inkfathom Infiltrator =50 -Inkwell Leviathan =200 -Inner Calm, Outer Strength =10 -Inner-Chamber Guard =50 -Inner-Flame Acolyte =10 -Innocent Blood =10 -Inspiration =10 -Inspirit =50 -Intrepid Hero =200 -Intuition =200 -Invincible Hymn =200 -Iona, Shield of Emeria =200 -Ior Ruin Expedition =10 -Ire of Kaminari =10 -Iridescent Angel =200 -Iron Lance =50 -Iron Myr =10 -Iron Tusk Elephant =50 -Iron Will =10 -Iron-Barb Hellion =50 -Ironroot Treefolk =10 -Isamaru, Hound of Konda =200 -Island =0 -Isochron Scepter =50 -Ivory Tower =50 -Ivy Dancer =50 -Izzet Boilerworks =10 -Izzet Signet =10 -Jabari's Banner =50 -Jace Beleren =200 -Jace, the Mind Sculptor =200 -Jackal Pup =50 -Jacques le Vert =200 -Jagwasp Swarm =10 -Jalum Tome =50 -Jamuraan Lion =10 -Jasmine Boreal =50 -Jayemdae Tome =200 -Jedit Ojanen =50 -Jedit Ojanen of Efrava =200 -Jedit's Dragoons =10 -Jenara, Asura of War =200 -Jerrard of the Closed Fist =50 -Jeska, Warrior Adept =200 -Jhessian Infiltrator =50 -Jhessian Lookout =10 -Jhessian Zombies =10 -Jhovall Queen =200 -Jhovall Rider =50 -Jodah's Avenger =50 -Join the Ranks =10 -Joiner Adept =200 -Jokulhaups =200 -Jolrael's Centaur =10 -Joraga Bard =10 -Jovial Evil =200 -Jugan, the Rising Star =200 -Juggernaut =50 -Jukai Messenger =10 -Jump =10 -Jund Battlemage =50 -Jund Hackblade =10 -Jungle Barrier =50 -Jungle Lion =10 -Jungle Shrine =50 -Jungle Troll =50 -Jungle Weaver =10 -Junun Efreet =50 -Juvenile Gloomwidow =10 -Juzam Djinn =200 -Jwar Isle Refuge =50 -Kabira Crossroads =10 -Kabuto Moth =10 -Kaervek's Spite =200 -Kalonian Behemoth =200 -Kamahl, Pit Fighter =200 -Kami of Ancient Law =10 -Kami of Empty Graves =10 -Kami of Lunacy =50 -Kami of Old Stone =50 -Kami of the Palace Fields =50 -Kami of the Tended Garden =50 -Karakas =50 -Karmic Guide =200 -Karoo Meerkat =50 -Karplusan Strider =50 -Kasimir the Lone Wolf =50 -Kathari Remnant =50 -Kavu Climber =10 -Kavu Glider =10 -Kaysa =200 -Kazandu Blademaster =50 -Kazandu Refuge =50 -Kazuul Warlord =200 -Keen-Eyed Archers =10 -Keeneye Aven =10 -Keening Banshee =50 -Keeper of Kookus =10 -Keepers of the Faith =10 -Keiga, the Tide Star =200 -Keldon Vandals =10 -Kelinore Bat =10 -Kemuri-Onna =50 -Khalni Garden =10 -Kher Keep =200 -Kiki-Jiki, Mirror Breaker =200 -Killer Bees =50 -Killer Whale =50 -Kindle =10 -Kindled Fury =10 -King Cheetah =50 -Kinsbaile Borderguard =200 -Kinsbaile Cavalier =200 -Kird Ape =10 -Kismet =50 -Kiss of Death =50 -Kitchen Finks =50 -Kitesail =10 -Kithkin Harbinger =50 -Kithkin Rabble =50 -Kitsune Blademaster =10 -Kitsune Loreweaver =10 -Kjeldoran Gargoyle =50 -Kjeldoran Outrider =10 -Kjeldoran War Cry =10 -Klaas, Elf Friend =0 -Knight Errant =10 -Knight of Dawn =50 -Knight of Meadowgrain =50 -Knight of Stromgald =50 -Knight of the Reliquary =200 -Knight of the Skyward Eye =10 -Knight of the White Orchid =200 -Knighthood =50 -Knotvine Mystic =50 -Knotvine Paladin =200 -Kobold Overlord =200 -Kobolds of Kher Keep =10 -Kodama of the North Tree =200 -Kodama's Reach =10 -Kokusho, the Evening Star =200 -Konda, Lord of Eiganjo =200 -Kor Cartographer =10 -Kor Skyfisher =10 -Korlash, Heir to Blackblade =200 -Koskun Keep =50 -Kraken Hatchling =10 -Kranioceros =10 -Krosan Cloudscraper =200 -Krosan Colossus =200 -Krovikan Scoundrel =10 -Kuro's Taken =10 -Kyren Glider =10 -Lab Rats =10 -Lace with Moonglove =10 -Lady Orca =50 -Lady Zhurong, Warrior Queen =200 -Land Leeches =10 -Land Tax =50 -Lantern Kami =10 -Laquatus's Champion =200 -Last Caress =10 -Last Word =200 -Launch =10 -Lava Axe =10 -Lava Flow =50 -Lava Spike =10 -Lavalanche =200 -Lay Waste =10 -Leaden Myr =10 -Leaf Dancer =10 -Leaf Gilder =10 -Leaf-Crowned Elder =200 -Leafdrake Roost =50 -Leap =10 -Leaping Lizard =10 -Leatherback Baloth =50 -Legacy Weapon =200 -Leonin Scimitar =10 -Leonin Skyhunter =50 -Levitation =50 -Ley Druid =50 -Lhurgoyf =200 -Library of Alexandria =50 -Lich Lord of Unx =200 -Lichenthrope =200 -Life Burst =10 -Lifespark Spellbomb =10 -Lightkeeper of Emeria =50 -Lightning Angel =200 -Lightning Blast =10 -Lightning Bolt =10 -Lightning Dragon =200 -Lightning Elemental =10 -Lightning Greaves =50 -Lightning Helix =50 -Lightning Hounds =10 -Lightning Talons =10 -Lignify =10 -Liliana Vess =200 -Lim-Dul's High Guard =10 -Lingering Tormentor =50 -Lionheart Maverick =10 -Liu Bei, Lord of Shu =200 -Living Airship =10 -Living Death =200 -Living Wall =50 -Livonya Silone =200 -Lizard Warrior =10 -Llanowar Behemoth =50 -Llanowar Cavalry =10 -Llanowar Dead =10 -Llanowar Elves =10 -Llanowar Knight =10 -Llanowar Mentor =50 -Loam Lion =50 -Loamdragger Giant =10 -Lobotomy =50 -Loch Korrigan =10 -Lockjaw Snapper =50 -Lonely Sandbar =10 -Longbow Archer =50 -Looming Shade =10 -Lord of Atlantis =200 -Lord of Extinction =200 -Lorescale Coatl =50 -Lost Soul =10 -Lotus Cobra =200 -Lotus Guardian =200 -Lowland Giant =10 -Loxodon Gatekeeper =200 -Loxodon Hierarch =200 -Loxodon Mystic =10 -Loxodon Punisher =200 -Loxodon Stalwart =50 -Loxodon Warhammer =50 -Loyal Retainers =50 -Lu Bu, Master-at-Arms =200 -Lu Meng, Wu General =200 -Lu Xun, Scholar General =200 -Lucent Liminid =10 -Lull =10 -Lumengrid Warden =10 -Lurking Informant =10 -Lurking Nightstalker =10 -Lynx =50 -Macetail Hystrodon =10 -Mad Auntie =200 -Madrush Cyclops =200 -Maelstrom Pulse =200 -Magefire Wings =10 -Mageta's Boon =10 -Maggot Carrier =10 -Magma Jet =50 -Magnify =10 -Magnivore =200 -Magus of the Bazaar =200 -Magus of the Coffers =200 -Magus of the Disk =200 -Magus of the Library =200 -Magus of the Moat =200 -Magus of the Tabernacle =200 -Mahamoti Djinn =200 -Makindi Shieldmate =10 -Malach of the Dawn =50 -Malachite Golem =10 -Malakir Bloodwitch =200 -Man-o'-War =10 -Mana Cylix =10 -Mana Leak =10 -Mana Prism =50 -Mana Tithe =10 -Manakin =10 -Maniacal Rage =10 -Manta Ray =10 -Manta Riders =10 -Mantis Engine =50 -Marble Diamond =50 -Marble Titan =200 -March of Souls =200 -Marisi's Twinclaws =50 -Maro =200 -Marrow-Gnawer =200 -Marsh Boa =10 -Marsh Flats =200 -Marsh Goblins =10 -Marsh Threader =10 -Marsh Viper =10 -Mask of Law and Grace =10 -Mask of Riddles =50 -Mass Calcify =200 -Mass Hysteria =200 -Mass of Ghouls =10 -Master Decoy =10 -Master Transmuter =200 -Master of Etherium =200 -Masticore =200 -Mawcor =200 -Meadowboon =10 -Meddling Mage =200 -Meekstone =200 -Meglonoth =200 -Megrim =50 -Melesse Spirit =50 -Meloku the Clouded Mirror =200 -Memnarch =200 -Memory Erosion =200 -Meng Huo's Horde =10 -Meng Huo, Barbarian King =200 -Merchant of Secrets =10 -Merfolk Looter =10 -Merfolk Sovereign =200 -Merfolk of the Pearl Trident =10 -Merrow Harbinger =50 -Merrow Levitator =10 -Mesa Enchantress =200 -Mesa Falcon =10 -Messenger Falcons =50 -Metallic Sliver =10 -Metathran Soldier =10 -Metathran Zombie =10 -Might Sliver =50 -Might of Alara =10 -Might of Oaks =200 -Mikokoro, Center of the Sea =200 -Millstone =50 -Mind Funeral =50 -Mind Shatter =200 -Mind Spring =200 -Mind Twist =200 -Minions' Murmurs =50 -Minister of Impediments =10 -Minotaur Explorer =50 -Minotaur Warrior =10 -Mire Boa =10 -Mirri the Cursed =200 -Mirri, Cat Warrior =200 -Miscalculation =10 -Mishra's Factory =50 -Misshapen Fiend =10 -Mist Leopard =10 -Mistral Charger =50 -Misty Rainforest =200 -Moaning Spirit =10 -Moat =200 -Mob Justice =10 -Mobilization =200 -Mogg Fanatic =50 -Mogg War Marshal =10 -Mold Adder =50 -Molimo, Maro-Sorcerer =200 -Molten Frame =10 -Molten Rain =10 -Molten Ravager =10 -Moment's Peace =10 -Monk Realist =10 -Mons's Goblin Raiders =10 -Monstrous Carabid =10 -Monstrous Growth =10 -Moon Sprite =50 -Moonglove Changeling =10 -Moonglove Winnower =10 -Moonlit Wake =50 -Moonwing Moth =10 -Moor Fiend =10 -Moorish Cavalry =10 -Moroii =50 -Morphling =200 -Morsel Theft =10 -Mortify =50 -Mortivore =200 -Moss Diamond =50 -Moss Kami =10 -Moss Monster =10 -Mossfire Valley =200 -Mother of Runes =50 -Mothrider Samurai =10 -Mountain =0 -Mountain Bandit =10 -Mountain Goat =10 -Mountain Yeti =10 -Mourning Thrull =10 -Mox Diamond =200 -Mox Emerald =55000 -Mox Jet =100000 -Mox Pearl =55000 -Mox Ruby =60000 -Mox Sapphire =110000 -Mtenda Herder =10 -Muck Rats =10 -Mudbrawler Cohort =10 -Mudbutton Torchrunner =10 -Mulldrifter =10 -Multani's Acolyte =10 -Multani, Maro-Sorcerer =200 -Muraganda Petroglyphs =200 -Muscle Burst =10 -Muscle Sliver =10 -Mutavault =200 -Mycologist =50 -Mycoloth =200 -Mystic Enforcer =200 -Mystic Gate =200 -Mystic Snake =200 -Mystical Tutor =50 -Mythic Proportions =200 -Nacatl Outlander =10 -Nacatl Savage =10 -Nameless Inversion =10 -Nantuko Disciple =10 -Nantuko Elder =50 -Nantuko Husk =10 -Nantuko Shade =200 -Narwhal =50 -Nath of the Gilt-Leaf =200 -Naturalize =10 -Nature's Cloak =200 -Nature's Ruin =50 -Naya Hushblade =10 -Necrogen Spellbomb =10 -Necropotence =200 -Needle Storm =50 -Needlebug =50 -Needlepeak Spider =10 -Needleshot Gourna =10 -Nemata, Grove Guardian =200 -Nemesis of Reason =200 -Nessian Courser =10 -Nether Spirit =200 -Nettletooth Djinn =50 -Neurok Hoversail =10 -Nevinyrral's Disk =200 -Nezumi Cutthroat =10 -Nezumi Ronin =10 -Nicol Bolas =200 -Nicol Bolas, Planeswalker =200 -Night of Souls' Betrayal =200 -Night's Whisper =50 -Nightguard Patrol =10 -Nightmare =200 -Nightshade Schemers =50 -Nightshade Stinger =10 -Nightsky Mimic =10 -Nightsoil Kami =10 -Nightwind Glider =10 -Nimana Sell-Sword =10 -Nimble Mongoose =50 -Nimbus Wings =10 -Nip Gwyllion =10 -Nissa Revane =200 -Nissa's Chosen =10 -Niv-Mizzet, the Firemind =200 -No-Dachi =50 -Noble Hierarch =200 -Noble Panther =200 -Noble Steeds =10 -Noble Templar =10 -Nocturnal Raid =50 -Nomadic Elf =10 -Norwood Archers =10 -Norwood Ranger =10 -Nourish =10 -Nova Chaser =200 -Novijen, Heart of Progress =50 -Noxious Hatchling =50 -Nullmage Shepherd =50 -Nyxathid =200 -Oakgnarl Warrior =10 -Ob Nixilis, the Fallen =200 -Obelisk of Bant =10 -Obelisk of Esper =10 -Obelisk of Grixis =10 -Obelisk of Jund =10 -Obelisk of Naya =10 -Obliterate =200 -Oblivion Ring =10 -Oboro, Palace in the Clouds =200 -Obsianus Golem =50 -Obsidian Acolyte =10 -Obsidian Fireheart =200 -Obsidian Giant =10 -Odious Trow =10 -Ogre Berserker =10 -Ogre Taskmaster =50 -Ogre Warrior =10 -Okina, Temple to the Grandfathers =200 -Old Ghastbark =10 -Omega Myr =10 -Ondu Cleric =10 -Onulet =10 -Onyx Goblet =10 -Oona's Gatewarden =10 -Opportunity =50 -Opt =10 -Oran-Rief Survivalist =10 -Oran-Rief, the Vastwood =200 -Oraxid =10 -Orcish Artillery =50 -Orcish Cannonade =10 -Orcish Cannoneers =50 -Order of Leitbur =10 -Order of Whiteclay =200 -Order of the Ebon Hand =10 -Order of the Sacred Bell =10 -Order of the White Shield =50 -Ornithopter =10 -Orochi Leafcaller =10 -Orochi Sustainer =10 -Oros, the Avenger =200 -Orzhov Basilica =10 -Orzhov Signet =10 -Orzhova, the Church of Deals =50 -Ostiary Thrull =10 -Ostracize =10 -Oubliette =10 -Outrider of Jhess =10 -Overbeing of Myth =200 -Overgrown Tomb =200 -Overrun =50 -Oversold Cemetery =200 -Oversoul of Dusk =200 -Overwhelming Forces =200 -Overwhelming Intellect =50 -Oxidize =50 -Pacifism =10 -Paladin en-Vec =200 -Pale Bears =200 -Pale Recluse =10 -Palladia-Mors =200 -Pallid Mycoderm =10 -Panther Warriors =10 -Parapet Watchers =10 -Pardic Collaborator =50 -Pardic Dragon =200 -Patagia Golem =50 -Path of Anger's Flame =10 -Path to Exile =50 -Patrol Signaler =50 -Pavel Maliki =50 -Peacekeeper =200 -Pearl Dragon =200 -Pearled Unicorn =10 -Peel from Reality =10 -Pegasus Charger =10 -Pendelhaven =50 -Pendrell Drake =10 -Penumbra Bobcat =10 -Penumbra Kavu =50 -Penumbra Spider =10 -Penumbra Wurm =200 -Peregrine Drake =50 -Peregrine Mask =50 -Perimeter Captain =50 -Perish =50 -Pestermite =10 -Pestilence =50 -Pestilent Kathari =10 -Pewter Golem =10 -Phantom Centaur =50 -Phantom Monster =50 -Phantom Nishoba =200 -Phantom Warrior =200 -Phobian Phantasm =50 -Phyrexian Arena =200 -Phyrexian Battleflies =10 -Phyrexian Gargantua =50 -Phyrexian Ghoul =10 -Phyrexian Hulk =50 -Phyrexian Ironfoot =50 -Phyrexian Monitor =10 -Phyrexian Rager =10 -Phyrexian Snowcrusher =50 -Phyrexian Walker =10 -Phytohydra =200 -Pianna, Nomad Captain =200 -Pillage =50 -Pillarfield Ox =10 -Pillory of the Sleepless =10 -Pincher Beetles =10 -Pirate Ship =200 -Pit Imp =10 -Pit Scorpion =10 -Pixie Queen =200 -Plague Beetle =10 -Plague Wind =200 -Plains =0 -Planar Cleansing =200 -Plasma Elemental =50 -Plateau =200 -Plated Geopede =10 -Plated Rootwalla =10 -Plated Slagwurm =200 -Plated Sliver =10 -Plated Spider =10 -Plated Wurm =10 -Plover Knights =10 -Plumeveil =50 -Political Trickery =200 -Polluted Delta =200 -Polluted Mire =10 -Pongify =50 -Pouncing Jaguar =10 -Power Armor =50 -Predator Dragon =200 -Predator's Strike =10 -Preeminent Captain =200 -Preemptive Strike =10 -Prickly Boggart =10 -Priest of Titania =10 -Primal Bellow =50 -Primal Boost =50 -Primal Clay =200 -Primal Plasma =10 -Primeval Shambler =50 -Primoc Escapee =50 -Primordial Sage =200 -Princess Lucrezia =50 -Prismatic Lens =10 -Privileged Position =200 -Prodigal Pyromancer =10 -Prodigal Sorcerer =10 -Profane Prayers =10 -Progenitus =200 -Promised Kannushi =10 -Propaganda =50 -Proper Burial =200 -Prosperity =50 -Protective Bubble =10 -Prowess of the Fair =50 -Psionic Blast =50 -Psionic Entity =200 -Psychic Drain =50 -Psychotrope Thallid =50 -Pulse Tracker =10 -Pulse of the Tangle =200 -Punish Ignorance =200 -Puppeteer =50 -Purge =50 -Purify =200 -Putrefy =50 -Pygmy Allosaurus =200 -Pygmy Pyrosaur =10 -Pygmy Razorback =10 -Pyre Charger =50 -Pyrite Spellbomb =10 -Pyroclasm =200 -Pyrohemia =50 -Python =10 -Qasali Pridemage =10 -Quag Vampires =10 -Quagmire Lamprey =50 -Quiet Purity =10 -Quietus Spike =200 -Quirion Dryad =200 -Rabid Wombat =50 -Radiant's Dragoons =50 -Radiant, Archangel =200 -Rafiq of the Many =200 -Raging Bull =10 -Raging Cougar =10 -Raging Goblin =10 -Raging Kavu =200 -Raging Minotaur =10 -Raging Ravine =200 -Raiding Nightstalker =10 -Rain of Tears =50 -Raise Dead =10 -Raise the Alarm =10 -Rakdos Carnarium =10 -Rakdos Ickspitter =10 -Rakdos Pit Dragon =200 -Rakdos Signet =10 -Rakka Mar =200 -Ramirez DePietro =50 -Ramosian Captain =50 -Ramosian Commander =50 -Ramosian Lieutenant =10 -Ramosian Revivalist =50 -Ramosian Sergeant =10 -Ramosian Sky Marshal =200 -Rampaging Baloths =200 -Rancor =200 -Ranger en-Vec =50 -Ranger of Eos =200 -Rappelling Scouts =200 -Ratcatcher =200 -Rathi Assassin =200 -Rathi Fiend =50 -Rathi Intimidator =10 -Rathi Trapper =10 -Rats of Rath =10 -Ravages of War =200 -Raven Guild Master =200 -Ravenous Rats =10 -Ravenous Skirge =10 -Razorfin Hunter =10 -Razorfoot Griffin =10 -Razortooth Rats =10 -Reach of Branches =200 -Rebuild =50 -Reckless Embermage =200 -Reckless Scholar =10 -Reckless Wurm =50 -Recover =10 -Red Cliffs Armada =10 -Redwood Treefolk =10 -Reflex Sliver =10 -Reflexes =10 -Regal Unicorn =10 -Regress =10 -Regrowth =50 -Rejuvenate =10 -Reki, the History of Kamigawa =200 -Relentless Rats =50 -Remand =50 -Reminisce =50 -Remote Isle =10 -Remove Soul =10 -Rendclaw Trow =200 -Renegade Troops =50 -Renewed Faith =10 -Repentant Blacksmith =10 -Reprisal =10 -Repulse =10 -Respite =10 -Restless Apparition =50 -Restless Bones =10 -Restless Dead =10 -Resurrection =50 -Resuscitate =50 -Retribution of the Meek =200 -Return to Battle =10 -Revered Dead =10 -Reviving Dose =10 -Reya Dawnbringer =200 -Rhox Bodyguard =10 -Rhox Brute =10 -Rhox Charger =50 -Rhox War Monk =50 -Rhys the Redeemed =200 -Rib Cage Spider =10 -Ribbons of the Reikai =10 -Ridge Rannet =10 -Ridgeline Rager =10 -Ridgetop Raptor =50 -Riding Red Hare =10 -Riding the Dilu Horse =200 -Righteous Avengers =10 -Righteous Charge =50 -Rimebound Dead =10 -Rip-Clan Crasher =10 -Riptide Crab =50 -Riptide Director =200 -Riptide Pilferer =50 -Rishadan Airship =10 -Rith, the Awakener =200 -Riven Turnbull =50 -River Bear =50 -River Boa =10 -River Kaijin =10 -River Merfolk =200 -Riverfall Mimic =10 -Rix Maadi, Dungeon Palace =50 -Roar of the Wurm =50 -Robe of Mirrors =10 -Roc of Kher Ridges =200 -Rock Badger =10 -Rockshard Elemental =200 -Rockslide Ambush =50 -Rod of Ruin =50 -Rofellos, Llanowar Emissary =200 -Rolling Earthquake =200 -Rolling Stones =200 -Ronin Cavekeeper =10 -Ronin Houndmaster =10 -Ronom Unicorn =10 -Roofstalker Wight =10 -Rootbound Crag =200 -Rootbreaker Wurm =50 -Rootwalla =10 -Rootwater Commando =10 -Rootwater Hunter =10 -Rootwater Thief =200 -Rorix Bladewing =200 -Roterothopter =10 -Rowan Treefolk =10 -Royal Assassin =200 -Royal Falcon =10 -Rugged Prairie =200 -Rukh Egg =10 -Rune-Cervin Rider =10 -Runeboggle =10 -Runeclaw Bear =10 -Runed Stalactite =10 -Rushwood Dryad =10 -Rustrazor Butcher =10 -Ruthless Cullblade =10 -Ryusei, the Falling Star =200 -Sabertooth Nishoba =200 -Sabertooth Wyvern =50 -Sabretooth Tiger =10 -Sacred Foundry =200 -Sacred Nectar =10 -Sacred Prey =0 -Safehold Duo =10 -Safehold Elite =10 -Sakura-Tribe Elder =10 -Salt Marsh =50 -Saltblast =50 -Samurai Enforcers =50 -Sanctum Plowbeast =10 -Sandbar Merfolk =10 -Sandbar Serpent =50 -Sandstone Warrior =10 -Sangrite Surge =50 -Sangrophage =10 -Sanguine Guard =50 -Sapling of Colfenor =200 -Saprazzan Heir =200 -Sarcomite Myr =50 -Sarkhan Vol =200 -Sarpadian Empires, Vol. VII =200 -Savage Lands =50 -Savage Twister =50 -Savannah =200 -Savannah Lions =200 -Scalding Tarn =200 -Scalebane's Elite =50 -Scaled Wurm =10 -Scalpelexis =200 -Scarblade Elite =200 -Scare Tactics =10 -Scarland Thrinax =50 -Scarwood Goblins =10 -Scarwood Treefolk =10 -Scathe Zombies =10 -Scavenged Weaponry =10 -Scavenging Scarab =10 -Scepter of Insight =200 -School of the Unseen =50 -Scion of Oona =200 -Scorching Spear =10 -Scornful Egotist =10 -Scragnoth =50 -Scrap =10 -Screaming Fury =10 -Screeching Harpy =50 -Scrubland =200 -Scryb Sprites =10 -Scute Mob =200 -Scuzzback Marauders =10 -Scuzzback Scrapper =10 -Sea Eagle =10 -Sea Gate Loremaster =200 -Sea Monster =10 -Sea Scryer =10 -Sea Serpent =10 -Sea Spirit =50 -Sea Sprite =10 -Seal of Cleansing =10 -Seal of Fire =10 -Seal of Primordium =10 -Seal of Removal =10 -Searing Flesh =50 -Searing Wind =200 -Seascape Aerialist =50 -Seashell Cameo =50 -Seaside Citadel =50 -Seat of the Synod =10 -Secluded Steppe =10 -Sedge Troll =200 -Seedcradle Witch =50 -Seething Song =10 -Segovian Leviathan =50 -Seismic Strike =10 -Seizan, Perverter of Truth =200 -Sejiri Merfolk =50 -Sejiri Refuge =50 -Sek'Kuar, Deathkeeper =200 -Selesnya Sanctuary =10 -Selesnya Signet =10 -Sengir Autocrat =50 -Sengir Bats =10 -Sengir Vampire =200 -Sensation Gorger =200 -Sensei's Divining Top =50 -Sentinels of Glen Elendra =50 -Serendib Efreet =200 -Serendib Sorcerer =200 -Serpent Generator =200 -Serpent Warrior =10 -Serpentine Kavu =10 -Serra Angel =200 -Serra Avatar =200 -Serra Avenger =200 -Serra Sphinx =200 -Serra Zealot =10 -Serra's Blessing =50 -Serra's Embrace =50 -Serra's Sanctum =200 -Serum Visions =10 -Severed Legion =10 -Sewn-Eye Drake =10 -Shade of Trokair =10 -Shadow Rider =10 -Shadow Rift =10 -Shadowblood Ridge =200 -Shadowmage Infiltrator =200 -Shambling Strider =10 -Shanodin Dryads =10 -Shaper Guildmage =10 -Shared Triumph =200 -Shatter =10 -Shatterskull Giant =10 -Shatterstorm =50 -Shepherd of the Lost =50 -Shield Sphere =10 -Shield Wall =10 -Shield of Duty and Reason =10 -Shimmering Barrier =50 -Shimmering Grotto =10 -Shinka Gatekeeper =10 -Shivan Dragon =200 -Shivan Hellkite =200 -Shivan Oasis =50 -Shivan Phoenix =200 -Shivan Raptor =50 -Shivan Wurm =200 -Shivan Zombie =10 -Shizo, Death's Storehouse =200 -Shock =10 -Shore Snapper =10 -Shorecrasher Mimic =10 -Shoreline Ranger =10 -Shriek of Dread =10 -Shriekmaw =50 -Shu Cavalry =10 -Shu Elite Companions =50 -Shu Elite Infantry =10 -Shu Foot Soldiers =10 -Shu General =50 -Shu Grain Caravan =10 -Shu Soldier-Farmers =50 -Shuko =50 -Sickle Ripper =10 -Sidewinder Sliver =10 -Siege Mastodon =10 -Siege-Gang Commander =200 -Sift =10 -Sighted-Caste Sorcerer =10 -Sigil of the Empty Throne =200 -Sigiled Behemoth =10 -Sigiled Paladin =50 -Sign in Blood =10 -Silent Attendant =10 -Silent-Chant Zubera =10 -Silhana Ledgewalker =10 -Silk Net =10 -Silkenfist Fighter =10 -Silkenfist Order =50 -Silver Erne =50 -Silver Knight =50 -Silver Myr =10 -Silverback Ape =10 -Silvercoat Lion =10 -Silverstorm Samurai =10 -Silvos, Rogue Elemental =200 -Simian Grunts =10 -Simic Growth Chamber =10 -Simic Ragworm =10 -Simic Signet =10 -Simic Sky Swallower =200 -Sinew Sliver =10 -Singe-Mind Ogre =10 -Sinkhole =10 -Sir Shandlar of Eberyn =50 -Sisay's Ring =10 -Sisters of the Flame =10 -Sivitri Scarzam =50 -Skarrg, the Rage Pits =50 -Skeletal Changeling =10 -Skeletal Crocodile =10 -Skeletal Snake =10 -Skirk Shaman =10 -Skitter of Lizards =10 -Skred =10 -Skullclamp =50 -Skullmulcher =200 -Sky Diamond =50 -Sky Ruin Drake =10 -Sky Spirit =50 -Sky Swallower =200 -Skycloud Expanse =200 -Skyhunter Patrol =10 -Skyhunter Prowler =10 -Skyhunter Skirmisher =50 -Skyknight Legionnaire =10 -Skyshroud Elf =10 -Skyshroud Falcon =10 -Skyshroud Troll =10 -Skyshroud Troopers =10 -Slagwurm Armor =10 -Slaughter Cry =10 -Slaughterhouse Bouncer =10 -Slay =50 -Sleeper Agent =200 -Sleeper's Guile =10 -Sleight of Hand =10 -Slinking Serpent =50 -Slippery Bogle =10 -Slippery Karst =10 -Slipstream Eel =10 -Slipstream Serpent =10 -Slith Ascendant =50 -Slith Bloodletter =50 -Slith Firewalker =50 -Slith Predator =50 -Slith Strider =50 -Sliver Legion =200 -Sliver Overlord =200 -Sliver Queen =200 -Sliversmith =50 -Sluggishness =10 -Smash =10 -Smoldering Butcher =10 -Smoldering Crater =10 -Smother =50 -Snapping Drake =10 -Snow-Covered Forest =0 -Snow-Covered Island =0 -Snow-Covered Mountain =0 -Snow-Covered Plains =0 -Snow-Covered Swamp =0 -Sokenzan Bruiser =10 -Sol Ring =50 -Sol'kanar the Swamp King =200 -Soldevi Simulacrum =50 -Solemn Simulacrum =200 -Solidarity =10 -Soltari Champion =200 -Soltari Crusader =50 -Soltari Emissary =200 -Soltari Foot Soldier =10 -Soltari Monk =50 -Soltari Priest =50 -Sootfeather Flock =10 -Sorceress Queen =200 -Soul Feast =50 -Soul Warden =50 -Soulcatcher =50 -Soulscour =200 -Southern Elephant =10 -Sower of Temptation =200 -Spark Elemental =50 -Spark Spray =10 -Sparksmith =10 -Sparkspitter =50 -Spawning Pool =50 -Spawnwrithe =200 -Spectral Bears =50 -Spectral Force =200 -Spectral Lynx =200 -Spectral Procession =50 -Spectral Searchlight =50 -Spell Pierce =10 -Spell Snare =50 -Spell Snip =10 -Sphinx of Jwar Isle =200 -Sphinx of the Steel Wind =200 -Spidersilk Armor =10 -Spidersilk Net =10 -Spikeshot Goblin =10 -Spined Basher =10 -Spined Wurm =10 -Spineless Thug =10 -Spiraling Embers =10 -Spire Barrage =10 -Spiritmonger =200 -Spiritual Guardian =200 -Spitting Drake =50 -Spitting Earth =10 -Spitting Gourna =10 -Spitting Spider =50 -Sporesower Thallid =50 -Spotted Griffin =10 -Springjack Shepherd =50 -Sprout =10 -Sprout Swarm =10 -Sprouting Thrinax =50 -Squall Drifter =10 -Squall Line =200 -Squee, Goblin Nabob =200 -Squire =10 -Squirming Mass =10 -Squirrel Nest =50 -Staff of Domination =200 -Stalker Hag =50 -Stalking Stones =50 -Stampeding Rhino =10 -Stand Firm =10 -Standing Troops =10 -Standstill =50 -Stangg =200 -Starlit Angel =50 -Starstorm =200 -Stasis =200 -Staunch Defenders =50 -Steadfast Guard =10 -Steadfastness =10 -Steam Frigate =10 -Steam Spitter =50 -Steam Vents =200 -Steel Leaf Paladin =10 -Steel Wall =50 -Steely Resolve =200 -Steppe Lynx =10 -Stern Judge =50 -Steward of Valeron =10 -Stifle =200 -Stillmoon Cavalier =200 -Stinging Barrier =10 -Stirring Wildwood =200 -Stolen Grain =50 -Stomping Ground =200 -Stone Kavu =10 -Stone Rain =10 -Stone-Throwing Devils =10 -Stonecloaker =50 -Stoneforge Mystic =200 -Stonewood Invoker =10 -Stonework Puma =10 -Storm Crow =10 -Storm Herd =200 -Storm Shaman =50 -Storm Spirit =200 -Stormcloud Djinn =50 -Stormfront Pegasus =10 -Stormscape Apprentice =10 -Stormscape Master =200 -Strangling Soot =10 -Stratozeppelid =50 -Straw Soldiers =10 -Stream Hopper =10 -Stream of Acid =50 -Stream of Life =10 -Street Wraith =50 -Streetbreaker Wurm =10 -Strength of Cedars =50 -Strip Mine =50 -Striped Bears =10 -Stroke of Genius =200 -Stromgald Crusader =50 -Stronghold Discipline =10 -Stronghold Zeppelin =50 -Stuffy Doll =200 -Stun Sniper =50 -Sturdy Hatchling =50 -Sudden Strength =10 -Sun Ce, Young Conquerer =200 -Sun Quan, Lord of Wu =200 -Sunastian Falconer =50 -Sunbeam Spellbomb =10 -Sunder from Within =50 -Sunflare Shaman =10 -Sunglasses of Urza =200 -Sungrass Prairie =200 -Sunhome, Fortress of the Legion =50 -Sunken Ruins =200 -Sunlance =10 -Sunpetal Grove =200 -Suntail Hawk =10 -Sunweb =200 -Supreme Exemplar =200 -Suq'Ata Assassin =50 -Suq'Ata Lancer =10 -Survival of the Fittest =200 -Svogthos, the Restless Tomb =50 -Swallowing Plague =50 -Swamp =0 -Swamp Mosquito =10 -Swans of Bryn Argoll =200 -Sword of the Meek =50 -Swords to Plowshares =50 -Sygg, River Guide =200 -Sylvan Basilisk =50 -Sylvan Messenger =50 -Sylvan Tutor =200 -Symbiotic Elf =10 -Synchronous Sliver =10 -Syphon Life =50 -Taiga =200 -Take Possession =200 -Talas Air Ship =10 -Talas Merchant =10 -Talas Scout =10 -Talas Warrior =200 -Talon Sliver =10 -Talon Trooper =10 -Talonrend =50 -Talruum Minotaur =10 -Tangle Spider =50 -Tanglebloom =10 -Taoist Hermit =50 -Taoist Mystic =200 -Tarfire =10 -Tarmogoyf =200 -Tarox Bladewing =200 -Tarpan =10 -Tattered Drake =10 -Tattermunge Duo =10 -Tattermunge Maniac =50 -Tectonic Fiend =50 -Tel-Jilad Archers =10 -Tel-Jilad Chosen =10 -Tel-Jilad Exile =10 -Tel-Jilad Justice =50 -Tel-Jilad Outrider =10 -Telim'Tor's Darts =50 -Tempest Drake =50 -Tempest of Light =50 -Temple Garden =200 -Temporal Manipulation =200 -Temporal Spring =10 -Tendrils of Corruption =10 -Terminate =10 -Teroh's Faithful =10 -Terra Stomper =200 -Terramorphic Expanse =10 -Terravore =200 -Territorial Baloth =10 -Terror =10 -Test Destroy =0 -Tethered Griffin =200 -Tetsuo Umezawa =200 -Tezzeret the Seeker =200 -Thalakos Sentry =10 -Thallid =10 -Thallid Shell-Dweller =10 -That Which Was Taken =200 -The Hive =200 -The Lady of the Mountain =50 -The Tabernacle at Pendrell Vale =200 -The Unspeakable =200 -Theft of Dreams =10 -Thelonite Hermit =200 -Thermal Blast =10 -Thermal Glider =10 -Thief of Hope =50 -Thieving Magpie =50 -Think Twice =10 -Thirst for Knowledge =50 -Thistledown Duo =10 -Thopter Foundry =50 -Thorn-Thrash Viashino =10 -Thornling =200 -Thornscape Apprentice =10 -Thornscape Master =200 -Thornweald Archer =10 -Thornwind Faeries =10 -Thought Courier =10 -Thoughtcutter Agent =50 -Thoughtseize =200 -Thousand-legged Kami =50 -Thran Dynamo =50 -Thran War Machine =50 -Threaten =50 -Thriss, Nantuko Primus =200 -Thunder Spirit =50 -Thunder Wall =50 -Thunder-Thrash Elder =50 -Thundering Giant =50 -Thunderscape Apprentice =10 -Thwart =50 -Tidal Kraken =200 -Tidehollow Strix =10 -Tidings =50 -Tiger Claws =10 -Tigereye Cameo =50 -Timber Protector =200 -Timbermaw Larva =10 -Timberwatch Elf =10 -Time Stretch =200 -Time Vault =200 -Time Walk =200 -Time Warp =200 -Timetwister =200 -Tinker =50 -Titanic Bulvox =10 -Titanic Ultimatum =200 -Titanium Golem =10 -Tithe =200 -Tobias Andrion =50 -Tolaria West =50 -Tolarian Academy =200 -Tolsimir Wolfblood =200 -Tome Scour =10 -Tor Giant =10 -Torch Drake =10 -Torii Watchward =10 -Tormented Angel =10 -Torsten Von Ursus =50 -Tortoise Formation =10 -Tortuga =0 -Touch of Brilliance =10 -Touch of Invisibility =10 -Tower Drake =10 -Tower Gargoyle =50 -Tower of Champions =200 -Tower of Fortunes =200 -Tower of the Magistrate =200 -Towering Baloth =50 -Tradewind Rider =200 -Trailblazer =200 -Trailblazer's Boots =50 -Trained Armodon =10 -Trained Jackal =10 -Trained Orgg =200 -Tranquil Thicket =10 -Tranquility =10 -Transguild Courier =50 -Transluminant =10 -Trapjaw Kelpie =10 -Traumatic Visions =10 -Traumatize =200 -Treasure Trove =50 -Tree Monkey =10 -Tree of Tales =10 -Treefolk Harbinger =50 -Treespring Lorian =10 -Treetop Bracers =10 -Treetop Rangers =10 -Treetop Scout =10 -Treetop Sentinel =50 -Treetop Village =50 -Tremor =10 -Tresserhorn Sinks =50 -Treva, the Renewer =200 -Tribal Flames =10 -Trinket Mage =10 -Trokin High Guard =10 -Troll Ascetic =200 -Troll-Horn Cameo =50 -Tromp the Domains =50 -Tropical Island =200 -Trusty Machete =50 -Tuknir Deathlock =200 -Tuktuk Grunts =10 -Tundra =200 -Tundra Wolves =10 -Turntimber Ranger =200 -Turtleshell Changeling =50 -Twilight Mire =200 -Twinblade Slasher =50 -Twisted Abomination =10 -Tyrranax =10 -Uktabi Drake =10 -Uktabi Efreet =10 -Uktabi Orangutan =50 -Umara Raptor =10 -Umbral Mantle =50 -Umezawa's Jitte =200 -Uncontrollable Anger =10 -Undercity Shade =50 -Underground Sea =200 -Undermine =200 -Underworld Dreams =50 -Undying Beast =200 -Undying Rage =50 -Unholy Strength =10 -Unmake =10 -Unnatural Speed =10 -Unseen Walker =50 -Unsummon =10 -Unworthy Dead =10 -Unyaro Bee Sting =50 -Ur-Golem's Eye =10 -Urborg Drake =50 -Urborg Elf =10 -Urborg Syphon-Mage =10 -Urborg Uprising =10 -Urborg Volcano =50 -Uril, the Miststalker =200 -Ursapine =200 -Urza's Blueprints =200 -Urza's Factory =50 -Uthden Troll =50 -Utopia Tree =200 -Utvara Scalper =10 -Vaevictis Asmadi =200 -Valeron Outlander =10 -Valiant Guard =10 -Valley Rannet =10 -Valor =50 -Valorous Charge =50 -Vampire Bats =10 -Vampire Lacerator =10 -Vampire Nighthawk =50 -Vampiric Feast =50 -Vampiric Touch =10 -Vampiric Tutor =200 -Vastwood Gorger =10 -Vault of Whispers =10 -Vectis Agents =10 -Vectis Silencers =10 -Vedalken Archmage =200 -Vedalken Entrancer =10 -Vedalken Ghoul =0 -Vedalken Mastermind =50 -Vedalken Outlander =10 -Vedalken Plotter =50 -Veldrane of Sengir =200 -Vendilion Clique =200 -Venerable Kumo =10 -Venerable Monk =10 -Vengeful Firebrand =200 -Venser's Sliver =10 -Verdant Catacombs =200 -Verdigris =50 -Verduran Enchantress =200 -Veteran Armorer =10 -Veteran Armorsmith =10 -Veteran Cavalier =10 -Veteran Swordsmith =10 -Vexing Beetle =200 -Viashino Fangtail =10 -Viashino Grappler =10 -Viashino Outrider =10 -Viashino Slasher =10 -Viashino Slaughtermaster =50 -Viashino Spearhunter =10 -Viashino Warrior =10 -Viashivan Dragon =200 -Vicious Hunger =10 -Vicious Kavu =50 -Vigilance =10 -Vigilant Drake =10 -Villainous Ogre =10 -Vindicate =200 -Vine Trellis =10 -Viridian Acolyte =10 -Viridian Joiner =10 -Viridian Lorebearers =50 -Viridian Shaman =50 -Viridian Zealot =200 -Virtue's Ruin =50 -Virtuous Charge =10 -Virulent Sliver =10 -Visara the Dreadful =200 -Viscerid Deepwalker =10 -Viscid Lemures =10 -Vision Skeins =10 -Vitalizing Cascade =50 -Vitalizing Wind =200 -Vithian Renegades =50 -Vitu-Ghazi, the City-Tree =50 -Vizzerdrix =200 -Vodalian Knights =50 -Vodalian Merchant =10 -Vodalian Soldiers =10 -Vodalian Zombie =10 -Voice of Duty =50 -Voice of Grace =50 -Voice of Law =50 -Voice of Reason =50 -Voice of Truth =50 -Volcanic Dragon =200 -Volcanic Fallout =50 -Volcanic Geyser =50 -Volcanic Hammer =10 -Volcanic Island =200 -Volcanic Submersion =10 -Volcano Imp =10 -Volrath's Stronghold =200 -Voltaic Key =50 -Volunteer Militia =10 -Voracious Hatchling =50 -Vorosh, the Hunter =200 -Votary of the Conclave =10 -Vug Lizard =50 -Vulshok Battlegear =50 -Vulshok Berserker =10 -Vulshok Gauntlets =10 -Vulshok Morningstar =10 -Vulshok Sorcerer =10 -Walking Dead =10 -Wall of Air =50 -Wall of Blossoms =50 -Wall of Bone =50 -Wall of Brambles =50 -Wall of Denial =50 -Wall of Diffusion =10 -Wall of Earth =10 -Wall of Faith =10 -Wall of Fire =50 -Wall of Granite =50 -Wall of Heat =10 -Wall of Ice =10 -Wall of Kelp =200 -Wall of Lava =50 -Wall of Light =50 -Wall of Mulch =50 -Wall of Opposition =50 -Wall of Pine Needles =50 -Wall of Razors =50 -Wall of Reverence =200 -Wall of Spears =10 -Wall of Stone =50 -Wall of Swords =50 -Wall of Water =50 -Wall of Wood =10 -Wanderbrine Rootcutters =10 -Wandering Goblins =10 -Wandering Ones =10 -Wandering Stream =10 -Waning Wurm =50 -War Chariot =50 -War Mammoth =10 -War-Spike Changeling =10 -Warpath Ghoul =10 -Warren Instigator =200 -Warren-Scourge Elf =10 -Warrior Angel =200 -Warrior's Charge =10 -Warrior's Honor =10 -Warthog =50 -Wasp Lancer =50 -Wasteland =50 -Watcher Sliver =10 -Watchwolf =50 -Water Elemental =50 -Watery Grave =200 -Waveskimmer Aven =10 -Wayward Soul =10 -Weakness =10 -Weathered Wayfarer =200 -Weatherseed Elf =10 -Weatherseed Faeries =10 -Weatherseed Treefolk =200 -Wei Ambush Force =10 -Wei Elite Companions =50 -Wei Infantry =10 -Wei Scout =10 -Wei Strike Force =10 -Welkin Tern =10 -Wellwisher =10 -Werebear =10 -Wheel of Fortune =200 -Whip Sergeant =50 -Whip-Spine Drake =10 -Whipcorder =50 -Whiptail Wurm =10 -Whiptongue Frog =10 -Whirling Dervish =50 -Whirlpool Rider =10 -Whispering Shade =10 -Whispers of the Muse =50 -Whispersilk Cloak =10 -White Knight =50 -White Shield Crusader =50 -Wielding the Green Dragon =10 -Wild Aesthir =10 -Wild Colos =10 -Wild Elephant =10 -Wild Griffin =10 -Wild Jhovall =10 -Wild Mongrel =80 -Wild Nacatl =10 -Wild Ox =50 -Wildfire Emissary =50 -Wildsize =10 -Wildslayer Elves =10 -Will-o'-the-Wisp =200 -Willow Dryad =10 -Willow Elf =10 -Willow Faerie =10 -Wilt-Leaf Cavaliers =50 -Wind Dancer =50 -Wind Drake =10 -Windborn Muse =200 -Winding Wurm =10 -Windreaper Falcon =50 -Windrider Eel =10 -Windseeker Centaur =10 -Windstorm =50 -Windswept Heath =200 -Windwright Mage =10 -Winged Coatl =10 -Winged Sliver =10 -Wings of Hope =10 -Wings of Velis Vel =10 -Winnower Patrol =10 -Winter's Grasp =50 -Wirewood Elf =10 -Wirewood Guardian =10 -Wirewood Hivemaster =50 -Wirewood Lodge =50 -Wirewood Pride =10 -Wistful Selkie =50 -Wistful Thinking =10 -Wit's End =200 -Witch-Maw Nephilim =200 -Wizards' School =50 -Wizened Cenn =50 -Wojek Embermage =50 -Wolf-Skull Shaman =50 -Wolfbriar Elemental =200 -Wonder =50 -Wood Elves =10 -Wooded Bastion =200 -Wooded Foothills =200 -Woodland Changeling =10 -Woodland Druid =10 -Woodlurker Mimic =10 -Woolly Thoctar =50 -Words of Wisdom =10 -Worldly Tutor =50 -Wormwood Dryad =10 -Wormwood Treefolk =200 -Worn Powerstone =50 -Wort, Boggart Auntie =200 -Wrap in Vigor =10 -Wrath of God =15000 -Wreak Havoc =50 -Wrecking Ball =10 -Wren's Run Packmaster =200 -Wu Elite Cavalry =10 -Wu Infantry =10 -Wu Light Cavalry =10 -Wu Warship =10 -Wydwen, the Biting Gale =200 -Wyluli Wolf =10 -Xiahou Dun, the One-Eyed =200 -Xira Arien =200 -Yavimaya Ancients =10 -Yavimaya Ants =50 -Yavimaya Barbarian =10 -Yavimaya Enchantress =50 -Yavimaya Gnats =50 -Yavimaya Scion =10 -Yavimaya Wurm =10 -Yawgmoth's Bargain =200 -Yellow Scarves Cavalry =10 -Yellow Scarves General =200 -Yellow Scarves Troops =10 -Yoked Plowbeast =10 -Yore-Tiller Nephilim =200 -Yotian Soldier =10 -Young Wei Recruits =10 -Youthful Knight =10 -Zap =10 -Zealous Guardian =10 -Zebra Unicorn =50 -Zendikar Farguide =10 -Zephid =200 -Zephid's Embrace =50 -Zephyr Falcon =10 -Zephyr Sprite =10 -Zhalfirin Knight =10 -Zhang Fei, Fierce Warrior =200 -Zhang He, Wei General =200 -Zhou Yu, Chief Commander =200 -Zodiac Dog =10 -Zodiac Goat =10 -Zodiac Horse =50 -Zodiac Monkey =10 -Zodiac Ox =50 -Zodiac Pig =50 -Zodiac Rabbit =10 -Zodiac Rat =10 -Zodiac Rooster =10 -Zodiac Snake =10 -Zodiac Tiger =50 -Zombie Goliath =10 -Zombie Outlander =10 -Zombify =50 -Zuberi, Golden Feather =200 -Zuo Ci, the Mocking Sage =200 -Zur the Enchanter =200 -Zuran Spellcaster =10 \ No newline at end of file diff --git a/res/quest/quest-opponent-icons.txt b/res/quest/quest-opponent-icons.txt index 847460102fd..5de717037f7 100644 --- a/res/quest/quest-opponent-icons.txt +++ b/res/quest/quest-opponent-icons.txt @@ -322,7 +322,7 @@ http://www.cardforge.org/fpics/questAvatars/Savra.jpg http://www.cardforge.org/fpics/questAvatars/Selesnya-precon.jpg http://www.cardforge.org/fpics/questAvatars/Simic-precon.jpg http://www.cardforge.org/fpics/questAvatars/Sisters%20of%20Stone%20Death.jpg -http://www.cardforge.org/fpics/questAvatars/Sus Antigoon.jpg +http://www.cardforge.org/fpics/questAvatars/Sus%20Antigoon.jpg http://www.cardforge.org/fpics/questAvatars/Szadek.jpg http://www.cardforge.org/fpics/questAvatars/Teysa.jpg http://www.cardforge.org/fpics/questAvatars/Token.jpg diff --git a/res/quest/quest.properties b/res/quest/quest.properties deleted file mode 100644 index 69e16353ae9..00000000000 --- a/res/quest/quest.properties +++ /dev/null @@ -1,19 +0,0 @@ -common--file=common.txt -uncommon--file=uncommon.txt -rare--file=rare.txt - -price--file=all-prices.txt -boosterprice--file=booster-prices.txt - -data-xml--file=questData.dat -data--file=questData -prefs--file=quest.preferences - -duels-dir--file=duels -challenges-dir--file=challenges -world-dir--file=world -data-dir--file=data -precons-dir--file=precons - -bazaar-dir--file=bazaar -bazaar--file=bazaar/index.xml diff --git a/res/quest/tournamentpack-images.txt b/res/quest/tournamentpack-images.txt new file mode 100644 index 00000000000..abbaddededa --- /dev/null +++ b/res/quest/tournamentpack-images.txt @@ -0,0 +1,22 @@ +http://www.cardforge.org/fpics/products/tournamentpacks/2ED.jpg +http://www.cardforge.org/fpics/products/tournamentpacks/3ED.jpg +http://www.cardforge.org/fpics/products/tournamentpacks/4ED.jpg +http://www.cardforge.org/fpics/products/tournamentpacks/5ED.jpg +http://www.cardforge.org/fpics/products/tournamentpacks/6ED.jpg +http://www.cardforge.org/fpics/products/tournamentpacks/ALA.jpg +http://www.cardforge.org/fpics/products/tournamentpacks/CHK.jpg +http://www.cardforge.org/fpics/products/tournamentpacks/ICE.jpg +http://www.cardforge.org/fpics/products/tournamentpacks/INV.jpg +http://www.cardforge.org/fpics/products/tournamentpacks/LEA.jpg +http://www.cardforge.org/fpics/products/tournamentpacks/LEB.jpg +http://www.cardforge.org/fpics/products/tournamentpacks/LRW.jpg +http://www.cardforge.org/fpics/products/tournamentpacks/MIR.jpg +http://www.cardforge.org/fpics/products/tournamentpacks/MMQ.jpg +http://www.cardforge.org/fpics/products/tournamentpacks/MRD.jpg +http://www.cardforge.org/fpics/products/tournamentpacks/ODY.jpg +http://www.cardforge.org/fpics/products/tournamentpacks/ONS.jpg +http://www.cardforge.org/fpics/products/tournamentpacks/RAV.jpg +http://www.cardforge.org/fpics/products/tournamentpacks/SHM.jpg +http://www.cardforge.org/fpics/products/tournamentpacks/TMP.jpg +http://www.cardforge.org/fpics/products/tournamentpacks/TSP.jpg +http://www.cardforge.org/fpics/products/tournamentpacks/USG.jpg diff --git a/res/token-images.txt b/res/token-images.txt index 30ba76eca3a..9f1990fb7cf 100644 --- a/res/token-images.txt +++ b/res/token-images.txt @@ -236,4 +236,4 @@ morph.jpg http://www.cardforge.org/fpics/effects/mo # //r_1_1_warrior.jpg http://www.cardforge.org/fpics/tokens/r_1_1_warrior.jpg [SOK] Rally the Horde # //rg_1_1_goblin_warrior.jpg http://www.cardforge.org/fpics/tokens/rg_1_1_goblin_warrior.jpg [SHM] Wort, the Raidmother # //u_1_1_merfolk.jpg http://www.cardforge.org/fpics/tokens/u_1_1_merfolk.jpg [ZEN] Lullmage Mentor -# //w_1_1_knight.jpg http://www.cardforge.org/fpics/tokens/w_1_1_knight.jpg [ALL] Errand of Duty \ No newline at end of file +# //w_1_1_knight.jpg http://www.cardforge.org/fpics/tokens/w_1_1_knight.jpg [ALL] Errand of Duty diff --git a/src/main/java/forge/Card.java b/src/main/java/forge/Card.java index d290434bcb1..9abe7209c4a 100644 --- a/src/main/java/forge/Card.java +++ b/src/main/java/forge/Card.java @@ -43,8 +43,8 @@ import forge.card.ability.AbilityUtils; import forge.card.ability.ApiType; import forge.card.cardfactory.CardFactoryUtil; import forge.card.cost.Cost; -import forge.card.mana.ManaCostBeingPaid; import forge.card.mana.ManaCost; +import forge.card.mana.ManaCostBeingPaid; import forge.card.replacement.ReplaceMoved; import forge.card.replacement.ReplacementEffect; import forge.card.replacement.ReplacementResult; @@ -59,8 +59,8 @@ import forge.card.trigger.TriggerType; import forge.card.trigger.ZCTrigger; import forge.game.GameActionUtil; import forge.game.GlobalRuleChange; -import forge.game.event.CounterAddedEvent; import forge.game.event.CardEquippedEvent; +import forge.game.event.CounterAddedEvent; import forge.game.event.CounterRemovedEvent; import forge.game.event.SetTappedEvent; import forge.game.phase.Combat; @@ -189,7 +189,6 @@ public class Card extends GameEntity implements Comparable { private int semiPermanentAttackBoost = 0; private int semiPermanentDefenseBoost = 0; - private int randomPicture = 0; private int xManaCostPaid = 0; private int multiKickerMagnitude = 0; @@ -255,9 +254,6 @@ public class Card extends GameEntity implements Comparable { this.characteristicsMap.put(CardCharacteristicName.FaceDown, CardUtil.getFaceDownCharacteristic()); } - /** - * TODO: Write javadoc for this method. - */ public void refreshUniqueNumber() { this.setUniqueNumber(Card.nextUniqueNumber++); } @@ -4539,29 +4535,6 @@ public class Card extends GameEntity implements Comparable { return this.getNetAttack(); } - /** - *

- * Setter for the field randomPicture. - *

- * - * @param n - * a int. - */ - public final void setRandomPicture(final int n) { - this.randomPicture = n; - } - - /** - *

- * Getter for the field randomPicture. - *

- * - * @return a int. - */ - public final int getRandomPicture() { - return this.randomPicture; - } - /** *

* addMultiKickerMagnitude. @@ -8495,27 +8468,12 @@ public class Card extends GameEntity implements Comparable { return CardDb.instance().getCard(this.getName()).getEdition(); } - /** - *

- * setImageFilename. - *

- * - * @param iFN - * a {@link java.lang.String} object. - */ - public final void setImageFilename(final String iFN) { - this.getCharacteristics().setImageFilename(iFN); + public final void setImageKey(final String iFN) { + this.getCharacteristics().setImageKey(iFN); } - /** - *

- * getImageFilename. - *

- * - * @return a {@link java.lang.String} object. - */ - public final String getImageFilename() { - return this.getCharacteristics().getImageFilename(); + public final String getImageKey() { + return this.getCharacteristics().getImageKey(); } /** diff --git a/src/main/java/forge/CardUtil.java b/src/main/java/forge/CardUtil.java index bc56b34e3df..e63fb102e69 100644 --- a/src/main/java/forge/CardUtil.java +++ b/src/main/java/forge/CardUtil.java @@ -17,19 +17,13 @@ */ package forge; -import java.io.File; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; -import org.apache.commons.lang3.StringUtils; - import forge.card.CardCharacteristics; -import forge.card.CardInSet; -import forge.card.CardRules; -import forge.card.CardSplitType; import forge.card.MagicColor; import forge.card.ability.AbilityUtils; import forge.card.ability.ApiType; @@ -38,76 +32,35 @@ import forge.card.spellability.AbilitySub; import forge.card.spellability.SpellAbility; import forge.game.player.Player; import forge.game.zone.ZoneType; -import forge.gui.GuiDisplayUtil; -import forge.item.IPaperCard; -import forge.properties.ForgeProps; import forge.properties.NewConstants; - -/** - *

- * CardUtil class. - *

- * - * @author Forge - * @version $Id$ - */ public final class CardUtil { - /** - * Do not instantiate. - */ - private CardUtil() { - // This space intentionally left blank. + // disable instantiation + private CardUtil() { } + + static final Map colorMap; + static { + colorMap = new HashMap(); + colorMap.put(Constant.Color.BLACK.toString(), "B"); + colorMap.put(Constant.Color.BLUE.toString(), "U"); + colorMap.put(Constant.Color.GREEN.toString(), "G"); + colorMap.put(Constant.Color.RED.toString(), "R"); + colorMap.put(Constant.Color.WHITE.toString(), "W"); + colorMap.put(Constant.Color.COLORLESS.toString(), "C"); } - + // returns "G", longColor is Constant.Color.Green and the like - /** - *

- * getShortColor. - *

- * - * @param longColor - * a {@link java.lang.String} object. - * @return a {@link java.lang.String} object. - */ public static String getShortColor(final String longColor) { - final Map map = new HashMap(); - map.put(Constant.Color.BLACK.toString(), "B"); - map.put(Constant.Color.BLUE.toString(), "U"); - map.put(Constant.Color.GREEN.toString(), "G"); - map.put(Constant.Color.RED.toString(), "R"); - map.put(Constant.Color.WHITE.toString(), "W"); - - final Object o = map.get(longColor); - if (o == null) { + if (!colorMap.containsKey(longColor)) { throw new RuntimeException("CardUtil : getShortColor() invalid argument - " + longColor); } - - return (String) o; + return colorMap.get(longColor); } - /** - *

- * getColors. - *

- * - * @param c - * a {@link forge.Card} object. - * @return a {@link java.util.ArrayList} object. - */ public static List getColors(final Card c) { return c.determineColor().toStringList(); } - /** - *

- * isStackingKeyword. - *

- * - * @param keyword - * a {@link java.lang.String} object. - * @return a boolean. - */ public static boolean isStackingKeyword(final String keyword) { String kw = new String(keyword); if (kw.startsWith("HIDDEN")) { @@ -117,147 +70,21 @@ public final class CardUtil { return !kw.startsWith("Protection") && !Constant.Keywords.NON_STACKING_LIST.contains(kw); } - /** - *

- * buildFilename. - *

- * - * @param card - * a {@link forge.Card} object. - * @return a {@link java.lang.String} object. - */ - public static String buildFilename(final Card card) { - final boolean token = card.isToken() && !card.isCopiedToken(); - - final String set = card.getCurSetCode(); - CardInSet neededSet = card.getRules().getEditionInfo(set); - final int cntPictures = neededSet == null ? 1 : neededSet.getCopiesCount(); - return CardUtil.buildFilename(card.getName(), card.getCurSetCode(), card.getRandomPicture(), cntPictures, token); - } - - /** - * buildFilename for lightweight card. Searches for a matching file on disk, - * - * @param card - * the card - * @return the string - */ - public static String buildFilename(final IPaperCard card) { - CardRules cr = card.getRules(); - final int maxIndex = cr.getEditionInfo(card.getEdition()).getCopiesCount(); - // picture is named AssaultBattery.full.jpg - String imageName = cr.getSplitType() != CardSplitType.Split ? card.getName() : buildSplitCardFilename(cr); - return CardUtil.buildFilename(imageName, card.getEdition(), card.getArtIndex(), maxIndex, false); - } - - public static String buildSplitCardFilename(CardRules cr) { - return cr.getMainPart().getName() + cr.getOtherPart().getName(); - } - - /** - * Builds the filename. - * - * @param card - * the card - * @param nameToUse - * the name to use - * @return the string - */ - public static String buildFilename(final IPaperCard card, final String nameToUse) { - final int maxIndex = card.getRules().getEditionInfo(card.getEdition()).getCopiesCount(); - return CardUtil.buildFilename(nameToUse, card.getEdition(), card.getArtIndex(), maxIndex, false); - } - - private static String buildFilename(final String cardName, final String setName, final int artIndex, - final int artIndexMax, final boolean isToken) { - final File path = ForgeProps.getFile(isToken ? NewConstants.IMAGE_TOKEN : NewConstants.IMAGE_BASE); - final String nn = artIndexMax > 1 ? Integer.toString(artIndex + 1) : ""; - final String cleanCardName = GuiDisplayUtil.cleanString(cardName); - - File f = null; - if (StringUtils.isNotBlank(setName)) { - final String mwsCardName = GuiDisplayUtil.cleanStringMWS(cardName); - - // First, try 3 letter set code with MWS filename format - final String mwsSet3 = String.format("%s/%s%s.full", setName, mwsCardName, nn); - f = new File(path, mwsSet3 + ".jpg"); - if (f.exists()) { - return mwsSet3; - } - - // Second, try 2 letter set code with MWS filename format - final String mwsSet2 = String.format("%s/%s%s.full", Singletons.getModel().getEditions().getCode2ByCode(setName), mwsCardName, nn); - f = new File(path, mwsSet2 + ".jpg"); - if (f.exists()) { - return mwsSet2; - } - - // Third, try 3 letter set code with Forge filename format - final String forgeSet3 = String.format("%s/%s%s", setName, cleanCardName, nn); - f = new File(path, forgeSet3 + ".jpg"); - if (f.exists()) { - return forgeSet3; - } - } - - // Last, give up with set images, go with the old picture type - final String forgePlain = String.format("%s%s", cleanCardName, nn); - - f = new File(path, forgePlain + ".jpg"); - if (f.exists()) { - return forgePlain; - } - - // give up with art index - f = new File(path, cleanCardName + ".jpg"); - if (f.exists()) { - return cleanCardName; - } - - // if still no file, download if option enabled? - return "none"; - } - - /** - *

- * getShortColorsString. - *

- * - * @param colors - * a {@link java.util.ArrayList} object. - * @return a {@link java.lang.String} object. - */ public static String getShortColorsString(final Iterable colors) { - String colorDesc = ""; + StringBuilder colorDesc = new StringBuilder(); for (final String col : colors) { - if (col.equalsIgnoreCase("White")) { - colorDesc += "W"; - } else if (col.equalsIgnoreCase("Blue")) { - colorDesc += "U"; - } else if (col.equalsIgnoreCase("Black")) { - colorDesc += "B"; - } else if (col.equalsIgnoreCase("Red")) { - colorDesc += "R"; - } else if (col.equalsIgnoreCase("Green")) { - colorDesc += "G"; - } else if (col.equalsIgnoreCase("Colorless")) { - colorDesc = "C"; - } + colorDesc.append(getShortColor(col)); } - return colorDesc; + return colorDesc.toString(); } /** * getThisTurnEntered. * - * @param to - * zone going to - * @param from - * zone coming from - * @param valid - * a isValid expression - * @param src - * a Card object + * @param to zone going to + * @param from zone coming from + * @param valid a isValid expression + * @param src a Card object * @return a List that matches the given criteria */ public static List getThisTurnEntered(final ZoneType to, final ZoneType from, final String valid, @@ -276,15 +103,6 @@ public final class CardUtil { return res; } - /** - * getThisTurnCast. - * - * @param valid - * a String object - * @param src - * a Card object - * @return a List that matches the given criteria - */ public static List getThisTurnCast(final String valid, final Card src) { List res = new ArrayList(); @@ -295,15 +113,6 @@ public final class CardUtil { return res; } - /** - * getLastTurnCast. - * - * @param valid - * a String object - * @param src - * a Card object - * @return a List that matches the given criteria - */ public static List getLastTurnCast(final String valid, final Card src) { List res = new ArrayList(); @@ -315,10 +124,7 @@ public final class CardUtil { } /** - * getLKICopy. - * - * @param in - * a Card to copy. + * @param in a Card to copy. * @return a copy of C with LastKnownInfo stuff retained. */ public static Card getLKICopy(final Card in) { @@ -367,17 +173,6 @@ public final class CardUtil { return newCopy; } - /** - * Gets the radiance. - * - * @param source - * the source - * @param origin - * the origin - * @param valid - * the valid - * @return the radiance - */ public static List getRadiance(final Card source, final Card origin, final String[] valid) { final List res = new ArrayList(); @@ -397,11 +192,6 @@ public final class CardUtil { return res; } - /** - * Gets the face down characteristic. - * - * @return the face down characteristic - */ public static CardCharacteristics getFaceDownCharacteristic() { final ArrayList types = new ArrayList(); types.add("Creature"); @@ -413,27 +203,11 @@ public final class CardUtil { ret.setName(""); ret.setType(types); - ret.setImageFilename(NewConstants.MORPH_IMAGE_FILE_NAME); + ret.setImageKey(NewConstants.CACHE_MORPH_IMAGE_FILE); return ret; } - // add Colors and - /** - *

- * reflectableMana. - *

- * - * @param abMana - * a {@link forge.card.spellability.AbilityMana} object. - * @param af - * a {@link forge.card.ability.AbilityFactory} object. - * @param colors - * a {@link java.util.ArrayList} object. - * @param parents - * a {@link java.util.ArrayList} object. - * @return a {@link java.util.ArrayList} object. - */ public static Set getReflectableManaColors(final SpellAbility abMana, final SpellAbility sa, Set colors, final List parents) { // Here's the problem with reflectable Mana. If more than one is out, @@ -561,8 +335,4 @@ public final class CardUtil { return colors; } - - - - -} // end class CardUtil +} diff --git a/src/main/java/forge/Constant.java b/src/main/java/forge/Constant.java index a86b36fbcfa..85d24f7fb78 100644 --- a/src/main/java/forge/Constant.java +++ b/src/main/java/forge/Constant.java @@ -24,9 +24,6 @@ import java.util.List; import com.google.common.collect.ImmutableList; -import forge.properties.ForgeProps; -import forge.properties.NewConstants; - /** *

* Constant interface. @@ -36,9 +33,6 @@ import forge.properties.NewConstants; * @version $Id$ */ public final class Constant { - /** Constant ProgramName="Forge - http://cardforge.org". */ - public static final String PROGRAM_NAME = "Forge - " + ForgeProps.getProperty(NewConstants.CARDFORGE_URL); - // used to pass information between the GUI screens /** * The Class Runtime. diff --git a/src/main/java/forge/ImageCache.java b/src/main/java/forge/ImageCache.java index d0bfd66222b..1902b86697e 100644 --- a/src/main/java/forge/ImageCache.java +++ b/src/main/java/forge/ImageCache.java @@ -19,14 +19,21 @@ package forge; import java.awt.image.BufferedImage; import java.util.concurrent.ExecutionException; + +import javax.swing.ImageIcon; + +import org.apache.commons.lang3.StringUtils; + import com.google.common.cache.CacheBuilder; import com.google.common.cache.CacheLoader.InvalidCacheLoadException; import com.google.common.cache.LoadingCache; import com.mortennobel.imagescaling.ResampleOp; -import forge.gui.GuiDisplayUtil; +import forge.game.player.IHasIcon; +import forge.gui.toolbox.FSkin; import forge.item.InventoryItem; import forge.properties.ForgePreferences.FPref; +import forge.properties.NewConstants; /** * This class stores ALL card images in a cache with soft values. this means @@ -43,42 +50,53 @@ import forge.properties.ForgePreferences.FPref; * @version $Id$ */ public class ImageCache { - /** Constant imageCache. */ - static final LoadingCache CACHE = CacheBuilder.newBuilder().softValues().build(new ImageLoader()); - /** Constant FULL_SIZE. */ + // short prefixes to save memory + public static final String TOKEN_PREFIX = "t:"; + public static final String ICON_PREFIX = "i:"; + public static final String BOOSTER_PREFIX = "b:"; + public static final String FATPACK_PREFIX = "f:"; + public static final String PRECON_PREFIX = "p:"; + public static final String TOURNAMENTPACK_PREFIX = "o:"; + + static private final LoadingCache CACHE = CacheBuilder.newBuilder().softValues().build(new ImageLoader()); - public static final String SEALED_PRODUCT = "sealed://"; - public static final String TOKEN = "token://"; - - public static BufferedImage getImage(final Card card, final int width, final int height) { - //SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss.SSS"); - //System.out.printf("%s - load '%s' (%d x %d)\n", sdf.format(new Date()), card.getImageFilename(), width, height ); - - final String key = card.canBeShownTo(Singletons.getControl().getPlayer()) ? ImageCache.getKey(card) : "Morph"; + /** + * retrieve an image from the cache. returns null if the image is not found in the cache + * and cannot be loaded from disk. pass -1 for width and/or height to avoid resizing in that dimension. + */ + public static BufferedImage getImage(Card card, int width, int height) { + final String key; + if (!card.canBeShownTo(Singletons.getControl().getPlayer()) || card.isFaceDown()) { + key = TOKEN_PREFIX + NewConstants.CACHE_MORPH_IMAGE_FILE; + } else { + key = card.getImageKey(); + } return scaleImage(key, width, height); } - - public static BufferedImage getImage(final InventoryItem ii, final int width, final int height) { - // TODO: move all the path-building logics here from the very objects. They don't have to know where their picture is - String key = getKey(ii); - - return scaleImage(key, width, height); - } - - public static BufferedImage getImage(final String key, final int width, final int height) { - return scaleImage(key, width, height); + /** + * retrieve an image from the cache. returns null if the image is not found in the cache + * and cannot be loaded from disk. pass -1 for width and/or height to avoid resizing in that dimension. + */ + public static BufferedImage getImage(InventoryItem ii, int width, int height) { + return scaleImage(ii.getImageKey(), width, height); } /** - * TODO: Write javadoc for this method. - * @param original - * @param scale - * @return + * retrieve an icon from the cache. returns the current skin's ICO_UNKNOWN if the icon image is not found + * in the cache and cannot be loaded from disk. */ + public static ImageIcon getIcon(IHasIcon ihi) { + BufferedImage i = scaleImage(ihi.getIconImageKey(), -1, -1); + if (null == i) { + return FSkin.getIcon(FSkin.InterfaceIcons.ICO_UNKNOWN); + } + return new ImageIcon(i); + } + private static BufferedImage scaleImage(String key, final int width, final int height) { - if (3 > width || 3 > height) { - // picture too small; return a blank + if (StringUtils.isEmpty(key) || (3 > width && -1 != width) || (3 > height && -1 != height)) { + // picture too small or key not defined; return a blank return null; } @@ -93,35 +111,34 @@ public class ImageCache { boolean mayEnlarge = Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_SCALE_LARGER); BufferedImage original = getImage(key); - if ( null == original ) + if (null == original) { return null; + } - double scale = Math.min((double) width / original.getWidth(), (double) height / original.getHeight()); - // here would be the place to limit the scaling option in menu ? + double scale = Math.min( + -1 == width ? 1 : (double)width / original.getWidth(), + -1 == height? 1 : (double)height / original.getHeight()); if ((scale > 1) && !mayEnlarge) { scale = 1; } BufferedImage result; - if ( 1 == scale ) { + if (1 == scale) { result = original; } else { - int destWidth = (int) (original.getWidth() * scale); - int destHeight = (int) (original.getHeight() * scale); + int destWidth = (int)(original.getWidth() * scale); + int destHeight = (int)(original.getHeight() * scale); ResampleOp resampler = new ResampleOp(destWidth, destHeight); result = resampler.filter(original, null); CACHE.put(resizedKey, result); } + return result; } /** * Returns the Image corresponding to the key. - * - * @param key - * a {@link java.lang.String} object. - * @return a {@link java.awt.image.BufferedImage} object. */ private static BufferedImage getImage(final String key) { try { @@ -137,23 +154,4 @@ public class ImageCache { return null; } } - - /** - * Returns the map key for a card, without any suffixes for the image size. - * - * @param card - * a {@link forge.Card} object. - * @return a {@link java.lang.String} object. - */ - public static String getKey(final Card card) { - if ((card.isToken() && !card.isCopiedToken()) || card.isFaceDown()) { - return ImageCache.TOKEN + GuiDisplayUtil.cleanString(card.getImageFilename()); - } - return card.getImageFilename(); // key; - } - - public static String getKey(final InventoryItem ii) { - return ii.getImageFilename(); - } - } diff --git a/src/main/java/forge/ImageLoader.java b/src/main/java/forge/ImageLoader.java index 34358255317..b2971bc6e0c 100644 --- a/src/main/java/forge/ImageLoader.java +++ b/src/main/java/forge/ImageLoader.java @@ -3,82 +3,93 @@ package forge; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; + import javax.imageio.ImageIO; +import org.apache.commons.lang3.StringUtils; + import com.google.common.cache.CacheLoader; import forge.error.BugReporter; -import forge.properties.ForgeProps; import forge.properties.NewConstants; -/** - * TODO: Write javadoc for this type. - * - */ final class ImageLoader extends CacheLoader { + // image file extensions for various formats in order of likelihood + // the last, empty, string is for keys that come in with an extension already in place + private static final String[] _FILE_EXTENSIONS = { ".jpg", ".png", "" }; + @Override public BufferedImage load(String key) { - // original - File path; - String filename; - if (key.startsWith(ImageCache.TOKEN)) { - filename = key.substring(ImageCache.TOKEN.length()); - path = ForgeProps.getFile(NewConstants.IMAGE_TOKEN); - } else if (key.startsWith(ImageCache.SEALED_PRODUCT)) { - filename = key.substring(ImageCache.SEALED_PRODUCT.length()); - path = ForgeProps.getFile(NewConstants.IMAGE_SEALED_PRODUCT); + if (StringUtils.isEmpty(key)) { + return null; + } + + final String path; + final String filename; + if (key.startsWith(ImageCache.TOKEN_PREFIX)) { + filename = key.substring(ImageCache.TOKEN_PREFIX.length()); + path = NewConstants.CACHE_TOKEN_PICS_DIR; + } else if (key.startsWith(ImageCache.ICON_PREFIX)) { + filename = key.substring(ImageCache.ICON_PREFIX.length()); + path = NewConstants.CACHE_ICON_PICS_DIR; + } else if (key.startsWith(ImageCache.BOOSTER_PREFIX)) { + filename = key.substring(ImageCache.BOOSTER_PREFIX.length()); + path = NewConstants.CACHE_BOOSTER_PICS_DIR; + } else if (key.startsWith(ImageCache.FATPACK_PREFIX)) { + filename = key.substring(ImageCache.FATPACK_PREFIX.length()); + path = NewConstants.CACHE_FATPACK_PICS_DIR; + } else if (key.startsWith(ImageCache.PRECON_PREFIX)) { + filename = key.substring(ImageCache.PRECON_PREFIX.length()); + path = NewConstants.CACHE_PRECON_PICS_DIR; + } else if (key.startsWith(ImageCache.TOURNAMENTPACK_PREFIX)) { + filename = key.substring(ImageCache.TOURNAMENTPACK_PREFIX.length()); + path = NewConstants.CACHE_TOURNAMENTPACK_PICS_DIR; } else { filename = key; - path = ForgeProps.getFile(NewConstants.IMAGE_BASE); + path = NewConstants.CACHE_CARD_PICS_DIR; } - File file = makeImageFile(path, filename); - boolean fileExists = file.exists(); - if (!fileExists && filename.startsWith("S00") ) { - file = makeImageFile(path, filename.replace("S00", "6ED")); - fileExists = file.exists(); - } - if (!fileExists ) { - //System.out.println("File not found, no image created: " + file); - return null; - } - final BufferedImage image = getImage(file); - //ImageCache.IMAGE_CACHE.put(key, image); - return image; - } - - /** - * TODO: Write javadoc for this method. - * @param path - * @param filename - * @return - */ - private File makeImageFile(File path, String filename) { - boolean isPng = filename.endsWith(".png"); - final String fName = isPng || filename.endsWith(".jpg") ? filename : filename + ".jpg"; - return new File(path, fName); - } - - /** - *

- * getImage. - *

- * - * @param file a {@link java.io.File} object. - * @return a {@link java.awt.image.BufferedImage} object. - * @throws IOException Signals that an I/O exception has occurred. - */ - public static BufferedImage getImage(final File file) { - //System.out.printf("Loading from disk: %s\n", file.toString()); + BufferedImage ret = _findFile(key, path, filename); - BufferedImage image; - //int format = useAlpha ? BufferedImage.TYPE_INT_ARGB : BufferedImage.TYPE_INT_RGB; - try { - image = ImageIO.read(file); - } catch (IOException ex) { - BugReporter.reportException(ex, "Could not read image file " + file.getAbsolutePath() + " "); - return null; + // some S00/S2K cards are really part of 6ED/6E + if (null == ret && filename.startsWith("S2K") ) { + ret = _findFile(key, path, filename.replace("S2K", "6E")); } - return image; + + // try without set prefix + String setlessFilename = null; + if (null == ret && filename.contains("/")) { + setlessFilename = filename.substring(filename.indexOf('/') + 1); + ret = _findFile(key, path, setlessFilename); + } + + // try lowering the art index to the minimum for regular cards + if (null == ret && null != setlessFilename && setlessFilename.contains(".full")) { + ret = _findFile(key, path, setlessFilename.replaceAll("[0-9]*[.]full", "1.full")); + } + + if (null == ret) { + System.out.println("File not found, no image created: " + key); + } + + return ret; } -} \ No newline at end of file + + private static BufferedImage _findFile(String key, String path, String filename) { + for (String ext : _FILE_EXTENSIONS) { + File file = new File(path, filename + ext); + //System.out.println(String.format("Searching for %s at: %s", key, file.getAbsolutePath())); + if (file.exists()) { + //System.out.println(String.format("Found %s at: %s", key, file.getAbsolutePath())); + try { + return ImageIO.read(file); + } catch (IOException ex) { + BugReporter.reportException(ex, "Could not read image file " + file.getAbsolutePath() + " "); + break; + } + } + } + + return null; + } +} diff --git a/src/main/java/forge/Singletons.java b/src/main/java/forge/Singletons.java index e6376b3f204..96f3ce81dec 100644 --- a/src/main/java/forge/Singletons.java +++ b/src/main/java/forge/Singletons.java @@ -25,50 +25,22 @@ import forge.view.FView; * Provides global/static access to singleton instances. */ public final class Singletons { - - private static FModel model = null; - - private static FView view = null; - + private static FModel model = null; + private static FView view = null; private static FControl control = null; - /** - * Do not instantiate. - */ - private Singletons() { - // This line intentionally left blank. - } - - /** @return {@link forge.model.FModel} */ - public static FModel getModel() { - return Singletons.model; - } - - /** @param model0   {@link forge.model.FModel} */ - public static void setModel(final FModel model0) { - Singletons.model = model0; - } - /** * IMPORTANT - does not return view frame! Must call * getFrame() from FView for that. - * @return {@link forge.model.JFrame} */ - public static FView getView() { - return Singletons.view; - } + */ + public static FView getView() { return view; } + public static FControl getControl() { return control; } + public static FModel getModel() { return model; } - /** @param view0   {@link forge.model.FView} */ - public static void setView(final FView view0) { - Singletons.view = view0; - } + public static void setModel (FModel model0) { model = model0; } + public static void setView (FView view0) { view = view0; } + public static void setControl(FControl control0) { control = control0; } - /** @return {@link forge.control.FControl} */ - public static FControl getControl() { - return Singletons.control; - } - - /** @param control0   {@link forge.control.FControl} */ - public static void setControl(final FControl control0) { - Singletons.control = control0; - } + // disallow instantiation + private Singletons() { } } diff --git a/src/main/java/forge/StaticEffects.java b/src/main/java/forge/StaticEffects.java index 327e9ad6ac1..407e92a32c4 100644 --- a/src/main/java/forge/StaticEffects.java +++ b/src/main/java/forge/StaticEffects.java @@ -29,9 +29,9 @@ import forge.card.TriggerReplacementBase; import forge.card.replacement.ReplacementEffect; import forge.card.spellability.SpellAbility; import forge.card.staticability.StaticAbility; +import forge.game.GlobalRuleChange; import forge.game.player.Player; import forge.game.zone.ZoneType; -import forge.game.GlobalRuleChange; /** *

diff --git a/src/main/java/forge/card/CardCharacteristics.java b/src/main/java/forge/card/CardCharacteristics.java index 59c5932d9f6..fc7aef06ef0 100644 --- a/src/main/java/forge/card/CardCharacteristics.java +++ b/src/main/java/forge/card/CardCharacteristics.java @@ -50,7 +50,7 @@ public class CardCharacteristics { private ArrayList replacementEffects = new ArrayList(); private ArrayList staticAbilities = new ArrayList(); private ArrayList staticAbilityStrings = new ArrayList(); - private String imageFilename = ""; + private String imageKey = ""; private Map sVars = new TreeMap(); private CardRarity rarity = CardRarity.Unknown; @@ -279,8 +279,8 @@ public class CardCharacteristics { * * @return the imageFilename */ - public final String getImageFilename() { - return this.imageFilename; + public final String getImageKey() { + return this.imageKey; } /** @@ -289,8 +289,8 @@ public class CardCharacteristics { * @param imageFilename0 * the imageFilename to set */ - public final void setImageFilename(final String imageFilename0) { - this.imageFilename = imageFilename0; + public final void setImageKey(final String imageFilename0) { + this.imageKey = imageFilename0; } /** @@ -410,7 +410,7 @@ public class CardCharacteristics { // ArrayList staticAbilityStrings : list of String objects so use copy constructor this.staticAbilityStrings = new ArrayList(source.getStaticAbilityStrings()); // String imageFilename = copy reference - this.imageFilename = source.getImageFilename(); + this.imageKey = source.getImageKey(); this.rarity = source.rarity; this.curSetCode = source.curSetCode; // Map sVars diff --git a/src/main/java/forge/card/CardRarity.java b/src/main/java/forge/card/CardRarity.java index f1a2f806432..2c9cd4fe7b5 100644 --- a/src/main/java/forge/card/CardRarity.java +++ b/src/main/java/forge/card/CardRarity.java @@ -17,35 +17,13 @@ */ package forge.card; -/** - *

- * CardRarity class. - *

- * - * @author Forge - * @version $Id: CardRarity.java 9708 2011-08-09 19:34:12Z jendave $ - */ - public enum CardRarity { - - /** The Basic land. */ BasicLand("L"), - - /** The Common. */ Common("C"), - - /** The Uncommon. */ Uncommon("U"), - - /** The Rare. */ Rare("R"), - - /** The Mythic rare. */ MythicRare("M"), - - /** The Special. */ Special("S"), // Timeshifted - /** The Unknown. */ Unknown("?"); // In development private final String strValue; @@ -54,14 +32,8 @@ public enum CardRarity { this.strValue = sValue; } - /* - * (non-Javadoc) - * - * @see java.lang.Enum#toString() - */ @Override public String toString() { return this.strValue; } - } diff --git a/src/main/java/forge/card/CardRules.java b/src/main/java/forge/card/CardRules.java index 4bf0b0d7929..916a55e5229 100644 --- a/src/main/java/forge/card/CardRules.java +++ b/src/main/java/forge/card/CardRules.java @@ -38,12 +38,9 @@ public final class CardRules implements ICardCharacteristics { private final CardSplitType splitType; private final ICardFace mainPart; private final ICardFace otherPart; - - private CardAiHints aiHints; private final Map setsPrinted = new TreeMap(String.CASE_INSENSITIVE_ORDER); - - + private CardAiHints aiHints; public CardRules(ICardFace[] faces, CardSplitType altMode, CardAiHints cah, Map sets) { splitType = altMode; @@ -68,25 +65,18 @@ public final class CardRules implements ICardCharacteristics { return !(getType().isVanguard() || getType().isScheme() || getType().isPlane() || getType().isPhenomenon()); } - - /** - * @return the splitType - */ public CardSplitType getSplitType() { return splitType; } public ICardFace getMainPart() { - // TODO Auto-generated method stub return mainPart; } - public ICardFace getOtherPart() { return otherPart; } - public String getName() { switch(splitType.getAggregationMethod()) { case AGGREGATE: @@ -121,7 +111,6 @@ public final class CardRules implements ICardCharacteristics { } } - @Override public ColorSet getColor() { switch(splitType.getAggregationMethod()) { @@ -132,13 +121,11 @@ public final class CardRules implements ICardCharacteristics { } } - - @Override public int getIntPower() { return mainPart.getIntPower(); } - @Override public int getIntToughness() { return mainPart.getIntToughness(); } - @Override public String getPower() { return mainPart.getPower(); } - @Override public String getToughness() { return mainPart.getToughness(); } - @Override public int getInitialLoyalty() { return mainPart.getInitialLoyalty(); } - + @Override public int getIntPower() { return mainPart.getIntPower(); } + @Override public int getIntToughness() { return mainPart.getIntToughness(); } + @Override public String getPower() { return mainPart.getPower(); } + @Override public String getToughness() { return mainPart.getToughness(); } + @Override public int getInitialLoyalty() { return mainPart.getInitialLoyalty(); } @Override public String getOracleText() { @@ -150,14 +137,12 @@ public final class CardRules implements ICardCharacteristics { } } - public Set getSets() { return this.setsPrinted.keySet(); } public CardInSet getEditionInfo(final String setCode) { final CardInSet result = this.setsPrinted.get(setCode); return result; // if returns null, String.format("Card '%s' was never printed in set '%s'", this.getName(), setCode); } - // vanguard card fields, they don't use sides. private int deltaHand; private int deltaLife; @@ -180,38 +165,19 @@ public final class CardRules implements ICardCharacteristics { public String getPictureOtherSideUrl() { return dlUrlOtherSide; } public void setDlUrls(String[] dlUrls) { this.dlUrl = dlUrls[0]; this.dlUrlOtherSide = dlUrls[1]; } - - /* (non-Javadoc) - * @see forge.card.ICardCharacteristics#getReplacements() - */ public final List getReplacements() { return null; } - - /* (non-Javadoc) - * @see forge.card.ICardCharacteristics#getTriggers() - */ public final List getTriggers() { return null; } - - /* (non-Javadoc) - * @see forge.card.ICardCharacteristics#getStaticAbilities() - */ public final List getStaticAbilities() { return null; } - - /* (non-Javadoc) - * @see forge.card.ICardCharacteristics#getAbilities() - */ public final List getAbilities() { return null; } - - - } diff --git a/src/main/java/forge/card/CardRulesPredicates.java b/src/main/java/forge/card/CardRulesPredicates.java index 87545fe01fe..a6723e4515a 100644 --- a/src/main/java/forge/card/CardRulesPredicates.java +++ b/src/main/java/forge/card/CardRulesPredicates.java @@ -2,6 +2,7 @@ package forge.card; import java.util.ArrayList; import java.util.List; + import com.google.common.base.Predicate; import com.google.common.base.Predicates; import com.google.common.collect.Iterables; diff --git a/src/main/java/forge/card/CardRulesReader.java b/src/main/java/forge/card/CardRulesReader.java index 02bc6b84a07..2731de073fa 100644 --- a/src/main/java/forge/card/CardRulesReader.java +++ b/src/main/java/forge/card/CardRulesReader.java @@ -23,9 +23,9 @@ import java.util.TreeMap; import org.apache.commons.lang3.StringUtils; -import forge.card.mana.ManaCostShard; import forge.card.mana.IParserManaCost; import forge.card.mana.ManaCost; +import forge.card.mana.ManaCostShard; /** @@ -87,10 +87,10 @@ public class CardRulesReader { public final CardRules getCard() { CardAiHints cah = new CardAiHints(removedFromAIDecks, removedFromRandomDecks, hints, needs ); faces[0].assignMissingFields(); - if ( null != faces[1] ) faces[1].assignMissingFields(); + if (null != faces[1]) faces[1].assignMissingFields(); final CardRules result = new CardRules(faces, altMode, cah, sets); result.setDlUrls(pictureUrl); - if ( StringUtils.isNotBlank(handLife)) + if (StringUtils.isNotBlank(handLife)) result.setVanguardProperties(handLife); return result; } @@ -114,13 +114,10 @@ public class CardRulesReader { * the line */ public final void parseLine(final String line) { - - int colonPos = line.indexOf(':'); String key = colonPos > 0 ? line.substring(0, colonPos) : line; String value = colonPos > 0 ? line.substring(1+colonPos).trim() : null; - switch(key.charAt(0)) { case 'A': if ("A".equals(key)) diff --git a/src/main/java/forge/card/CardSplitType.java b/src/main/java/forge/card/CardSplitType.java index ecc2cf8e0fe..6869d8c3279 100644 --- a/src/main/java/forge/card/CardSplitType.java +++ b/src/main/java/forge/card/CardSplitType.java @@ -2,10 +2,6 @@ package forge.card; import forge.CardCharacteristicName; -/** - * TODO: Write javadoc for this type. - * - */ public enum CardSplitType { None(AggregationMethod.USE_PRIMARY_FACE, null), @@ -14,19 +10,12 @@ public enum CardSplitType Flip(AggregationMethod.USE_PRIMARY_FACE, CardCharacteristicName.Flipped), // used by 12 licid creatures to switch type into enchantment aura Licid(AggregationMethod.USE_PRIMARY_FACE, CardCharacteristicName.Licid); - - - - private CardSplitType(AggregationMethod calcMode, CardCharacteristicName stateName) { method = calcMode; this.changedStateName = stateName; } - /** - * @return the calculationMode - */ public AggregationMethod getAggregationMethod() { return method; } @@ -45,4 +34,3 @@ public enum CardSplitType return changedStateName; } } - diff --git a/src/main/java/forge/card/CardType.java b/src/main/java/forge/card/CardType.java index 9e17feb25c8..6c7cca5e811 100644 --- a/src/main/java/forge/card/CardType.java +++ b/src/main/java/forge/card/CardType.java @@ -54,20 +54,12 @@ public final class CardType implements Comparable { } } - private CardType() { - } // use static ctors! + private CardType() { } // TODO: Debug this code - /** - * Parses the. - * - * @param typeText - * the type text - * @return the card type - */ public static CardType parse(final String typeText) { - // Most types and subtypes, except "Serra�s Realm" and - // "Bolas�s Meditation Realm" consist of only one word + // Most types and subtypes, except "Serra's Realm" and + // "Bolas's Meditation Realm" consist of only one word final char space = ' '; final CardType result = new CardType(); @@ -130,152 +122,66 @@ public final class CardType implements Comparable { this.subType.add(type); } - /** - * Sub type contains. - * - * @param operand - * the operand - * @return true, if successful - */ public boolean subTypeContains(final String operand) { return this.subType.contains(operand); } - /** - * Type contains. - * - * @param operand - * the operand - * @return true, if successful - */ public boolean typeContains(final CardCoreType operand) { return this.coreType.contains(operand); } - /** - * Super type contains. - * - * @param operand - * the operand - * @return true, if successful - */ public boolean superTypeContains(final CardSuperType operand) { return this.superType.contains(operand); } - /** - * Checks if is creature. - * - * @return true, if is creature - */ public boolean isCreature() { return this.coreType.contains(CardCoreType.Creature); } - /** - * Checks if is planeswalker. - * - * @return true, if is planeswalker - */ public boolean isPlaneswalker() { return this.coreType.contains(CardCoreType.Planeswalker); } - /** - * Checks if is land. - * - * @return true, if is land - */ public boolean isLand() { return this.coreType.contains(CardCoreType.Land); } - /** - * Checks if is artifact. - * - * @return true, if is artifact - */ public boolean isArtifact() { return this.coreType.contains(CardCoreType.Artifact); } - /** - * Checks if is instant. - * - * @return true, if is instant - */ public boolean isInstant() { return this.coreType.contains(CardCoreType.Instant); } - /** - * Checks if is sorcery. - * - * @return true, if is sorcery - */ public boolean isSorcery() { return this.coreType.contains(CardCoreType.Sorcery); } - /** - * Checks if is vanguard. - * - * @return true if vanguard - */ public boolean isVanguard() { return this.coreType.contains(CardCoreType.Vanguard); } - /** - * Checks if is scheme. - * - * @return true if scheme - */ public boolean isScheme() { return this.coreType.contains(CardCoreType.Scheme); } - /** - * Checks if is enchantment. - * - * @return true, if is enchantment - */ public boolean isEnchantment() { return this.coreType.contains(CardCoreType.Enchantment); } - /** - * Checks if is basic. - * - * @return true, if is basic - */ public boolean isBasic() { return this.superType.contains(CardSuperType.Basic); } - /** - * Checks if is legendary. - * - * @return true, if is legendary - */ public boolean isLegendary() { return this.superType.contains(CardSuperType.Legendary); } - /** - * Checks if is basic land. - * - * @return true, if is basic land - */ public boolean isBasicLand() { return this.isBasic() && this.isLand(); } - /* - * (non-Javadoc) - * - * @see java.lang.Object#toString() - */ @Override public String toString() { if (null == this.calculatedType) { @@ -292,11 +198,6 @@ public final class CardType implements Comparable { } } - /** - * Gets the types before dash. - * - * @return the types before dash - */ public List getTypesBeforeDash() { final ArrayList types = new ArrayList(); for (final CardSuperType st : this.superType) { @@ -308,31 +209,15 @@ public final class CardType implements Comparable { return types; } - /* - * (non-Javadoc) - * - * @see java.lang.Comparable#compareTo(java.lang.Object) - */ @Override public int compareTo(final CardType o) { return this.toString().compareTo(o.toString()); } - /** - * Gets the sub types. - * - * @return the sub types - */ public List getSubTypes() { return this.subType; } - /** - * Shares sub type with. - * - * @param ctOther the ct other - * @return true, if successful - */ public boolean sharesSubTypeWith(CardType ctOther) { for (String t : ctOther.getSubTypes()) { if (this.subTypeContains(t)) { @@ -343,43 +228,19 @@ public final class CardType implements Comparable { return false; } - /** - * Returns wether or not this card is a Plane. - * @return a boolean - */ public boolean isPlane() { return this.coreType.contains(CardCoreType.Plane); } - /** - * Returns wether or not this card is a Phenomenon. - * @return a boolean - */ public boolean isPhenomenon() { return this.coreType.contains(CardCoreType.Phenomenon); } - ///////// THIS ARRIVED FROM CardUtil - /** - *

- * isACardType. - *

- * - * @param cardType - * a {@link java.lang.String} object. - * @return a boolean. - */ + ///////// Utility methods public static boolean isACardType(final String cardType) { return CardType.getAllCardTypes().contains(cardType); } - /** - *

- * getAllCardTypes. - *

- * - * @return a {@link java.util.ArrayList} object. - */ public static ArrayList getAllCardTypes() { final ArrayList types = new ArrayList(); @@ -394,14 +255,6 @@ public final class CardType implements Comparable { return types; } - /** - *

- * getBasicTypes. - *

- * - * @return a {@link java.util.ArrayList} object. - * @since 1.1.3 - */ public static ArrayList getBasicTypes() { final ArrayList types = new ArrayList(); @@ -410,11 +263,6 @@ public final class CardType implements Comparable { return types; } - /** - * Gets the land types. - * - * @return the land types - */ public static ArrayList getLandTypes() { final ArrayList types = new ArrayList(); @@ -424,14 +272,6 @@ public final class CardType implements Comparable { return types; } - /** - *

- * getCreatureTypes. - *

- * - * @return a {@link java.util.ArrayList} object. - * @since 1.1.6 - */ public static ArrayList getCreatureTypes() { final ArrayList types = new ArrayList(); @@ -440,79 +280,26 @@ public final class CardType implements Comparable { return types; } - /** - *

- * isASuperType. - *

- * - * @param cardType - * a {@link java.lang.String} object. - * @return a boolean. - */ - public static boolean isASuperType(final String cardType) { return (Constant.CardTypes.SUPER_TYPES.contains(cardType)); } - /** - *

- * isASubType. - *

- * - * @param cardType - * a {@link java.lang.String} object. - * @return a boolean. - */ public static boolean isASubType(final String cardType) { return (!CardType.isASuperType(cardType) && !CardType.isACardType(cardType)); } - /** - *

- * isACreatureType. - *

- * - * @param cardType - * a {@link java.lang.String} object. - * @return a boolean. - */ public static boolean isACreatureType(final String cardType) { return (Constant.CardTypes.CREATURE_TYPES.contains(cardType)); } - /** - *

- * isALandType. - *

- * - * @param cardType - * a {@link java.lang.String} object. - * @return a boolean. - */ public static boolean isALandType(final String cardType) { return (Constant.CardTypes.LAND_TYPES.contains(cardType)); } - /** - * Checks if is a planeswalker type. - * - * @param cardType - * the card type - * @return true, if is a planeswalker type - */ public static boolean isAPlaneswalkerType(final String cardType) { return (Constant.CardTypes.WALKER_TYPES.contains(cardType)); } - /** - *

- * isABasicLandType. - *

- * - * @param cardType - * a {@link java.lang.String} object. - * @return a boolean. - */ public static boolean isABasicLandType(final String cardType) { return (Constant.CardTypes.BASIC_TYPES.contains(cardType)); } diff --git a/src/main/java/forge/card/EditionCollection.java b/src/main/java/forge/card/EditionCollection.java index 92c6aa338cb..991a33c583a 100644 --- a/src/main/java/forge/card/EditionCollection.java +++ b/src/main/java/forge/card/EditionCollection.java @@ -32,16 +32,16 @@ public final class EditionCollection extends StorageView { super(new CardEdition.Reader("res/blockdata/setdata.txt")); for (CardEdition ee : this) { - String alias = ee.getAlias(); if (null != alias) { aliasToEdition.put(alias, ee); } + aliasToEdition.put(ee.getCode2(), ee); } } /** - * Gets the sets the by code. + * Gets a sets by code. It will search first by three letter codes, then by aliases and two-letter codes. * * @param code * the code diff --git a/src/main/java/forge/card/FormatCollection.java b/src/main/java/forge/card/FormatCollection.java index 20d50a16bc0..14444b2dc15 100644 --- a/src/main/java/forge/card/FormatCollection.java +++ b/src/main/java/forge/card/FormatCollection.java @@ -20,6 +20,7 @@ package forge.card; import java.util.ArrayList; import java.util.Arrays; import java.util.List; + import forge.game.GameFormat; import forge.util.FileSection; import forge.util.storage.StorageReaderFile; diff --git a/src/main/java/forge/card/ICardCharacteristics.java b/src/main/java/forge/card/ICardCharacteristics.java index 96ea5629854..3b97955f77d 100644 --- a/src/main/java/forge/card/ICardCharacteristics.java +++ b/src/main/java/forge/card/ICardCharacteristics.java @@ -2,22 +2,17 @@ package forge.card; import forge.card.mana.ManaCost; -/** - * TODO: Write javadoc for this type. - * - */ public interface ICardCharacteristics { + String getName(); + CardType getType(); + ManaCost getManaCost(); + ColorSet getColor(); - public abstract String getName(); - public abstract CardType getType(); - public abstract ManaCost getManaCost(); - public abstract ColorSet getColor(); + int getIntPower(); + int getIntToughness(); + String getPower(); + String getToughness(); + int getInitialLoyalty(); - public abstract int getIntPower(); - public abstract int getIntToughness(); - public abstract String getPower(); - public abstract String getToughness(); - public abstract int getInitialLoyalty(); - - public abstract String getOracleText(); -} \ No newline at end of file + String getOracleText(); +} diff --git a/src/main/java/forge/card/ICardRawAbilites.java b/src/main/java/forge/card/ICardRawAbilites.java index 0f35e7f0459..63f865afd7b 100644 --- a/src/main/java/forge/card/ICardRawAbilites.java +++ b/src/main/java/forge/card/ICardRawAbilites.java @@ -4,12 +4,13 @@ import java.util.Map.Entry; public interface ICardRawAbilites { - public abstract Iterable getKeywords(); - public abstract Iterable getReplacements(); - public abstract Iterable getTriggers(); - public abstract Iterable getStaticAbilities(); - public abstract Iterable getAbilities(); - public abstract String getNonAbilityText(); - public abstract Iterable> getVariables(); - -} \ No newline at end of file + Iterable getKeywords(); + Iterable getReplacements(); + Iterable getTriggers(); + Iterable getStaticAbilities(); + Iterable getAbilities(); + + String getNonAbilityText(); + + Iterable> getVariables(); +} diff --git a/src/main/java/forge/card/ability/AbilityFactory.java b/src/main/java/forge/card/ability/AbilityFactory.java index 8a002d833be..6a782de467f 100644 --- a/src/main/java/forge/card/ability/AbilityFactory.java +++ b/src/main/java/forge/card/ability/AbilityFactory.java @@ -21,9 +21,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; - import forge.Card; - import forge.card.cost.Cost; import forge.card.spellability.AbilitySub; import forge.card.spellability.SpellAbility; diff --git a/src/main/java/forge/card/ability/ApiType.java b/src/main/java/forge/card/ability/ApiType.java index 6ae52a03d81..946938322d3 100644 --- a/src/main/java/forge/card/ability/ApiType.java +++ b/src/main/java/forge/card/ability/ApiType.java @@ -4,7 +4,99 @@ package forge.card.ability; import java.util.Map; import java.util.TreeMap; -import forge.card.ability.ai.*; +import forge.card.ability.ai.AddPhaseAi; +import forge.card.ability.ai.AddTurnAi; +import forge.card.ability.ai.AlwaysPlayAi; +import forge.card.ability.ai.AnimateAi; +import forge.card.ability.ai.AnimateAllAi; +import forge.card.ability.ai.AttachAi; +import forge.card.ability.ai.BondAi; +import forge.card.ability.ai.CanPlayAsDrawbackAi; +import forge.card.ability.ai.CannotPlayAi; +import forge.card.ability.ai.ChangeZoneAi; +import forge.card.ability.ai.ChangeZoneAllAi; +import forge.card.ability.ai.CharmAi; +import forge.card.ability.ai.ChooseCardAi; +import forge.card.ability.ai.ChooseCardNameAi; +import forge.card.ability.ai.ChooseColorAi; +import forge.card.ability.ai.ChoosePlayerAi; +import forge.card.ability.ai.ChooseSourceAi; +import forge.card.ability.ai.ChooseTypeAi; +import forge.card.ability.ai.ClashAi; +import forge.card.ability.ai.CloneAi; +import forge.card.ability.ai.ControlExchangeAi; +import forge.card.ability.ai.ControlGainAi; +import forge.card.ability.ai.CopyPermanentAi; +import forge.card.ability.ai.CounterAi; +import forge.card.ability.ai.CountersMoveAi; +import forge.card.ability.ai.CountersProliferateAi; +import forge.card.ability.ai.CountersPutAi; +import forge.card.ability.ai.CountersPutAllAi; +import forge.card.ability.ai.CountersRemoveAi; +import forge.card.ability.ai.DamageAllAi; +import forge.card.ability.ai.DamageDealAi; +import forge.card.ability.ai.DamageEachAi; +import forge.card.ability.ai.DamagePreventAi; +import forge.card.ability.ai.DamagePreventAllAi; +import forge.card.ability.ai.DebuffAi; +import forge.card.ability.ai.DebuffAllAi; +import forge.card.ability.ai.DelayedTriggerAi; +import forge.card.ability.ai.DestroyAi; +import forge.card.ability.ai.DestroyAllAi; +import forge.card.ability.ai.DigAi; +import forge.card.ability.ai.DigUntilAi; +import forge.card.ability.ai.DiscardAi; +import forge.card.ability.ai.DrainManaAi; +import forge.card.ability.ai.DrawAi; +import forge.card.ability.ai.EffectAi; +import forge.card.ability.ai.EncodeAi; +import forge.card.ability.ai.EndTurnAi; +import forge.card.ability.ai.FightAi; +import forge.card.ability.ai.FogAi; +import forge.card.ability.ai.GameLossAi; +import forge.card.ability.ai.GameWinAi; +import forge.card.ability.ai.LifeExchangeAi; +import forge.card.ability.ai.LifeGainAi; +import forge.card.ability.ai.LifeLoseAi; +import forge.card.ability.ai.LifeSetAi; +import forge.card.ability.ai.MillAi; +import forge.card.ability.ai.MustAttackAi; +import forge.card.ability.ai.MustBlockAi; +import forge.card.ability.ai.PeekAndRevealAi; +import forge.card.ability.ai.PermanentCreatureAi; +import forge.card.ability.ai.PermanentNoncreatureAi; +import forge.card.ability.ai.PhasesAi; +import forge.card.ability.ai.PlayAi; +import forge.card.ability.ai.PoisonAi; +import forge.card.ability.ai.ProtectAi; +import forge.card.ability.ai.ProtectAllAi; +import forge.card.ability.ai.PumpAi; +import forge.card.ability.ai.PumpAllAi; +import forge.card.ability.ai.RearrangeTopOfLibraryAi; +import forge.card.ability.ai.RegenerateAi; +import forge.card.ability.ai.RegenerateAllAi; +import forge.card.ability.ai.RemoveFromCombatAi; +import forge.card.ability.ai.RepeatAi; +import forge.card.ability.ai.RepeatEachAi; +import forge.card.ability.ai.RestartGameAi; +import forge.card.ability.ai.RevealAi; +import forge.card.ability.ai.RevealHandAi; +import forge.card.ability.ai.SacrificeAi; +import forge.card.ability.ai.SacrificeAllAi; +import forge.card.ability.ai.ScryAi; +import forge.card.ability.ai.SetStateAi; +import forge.card.ability.ai.SetStateAllAi; +import forge.card.ability.ai.ShuffleAi; +import forge.card.ability.ai.StoreSVarAi; +import forge.card.ability.ai.TapAi; +import forge.card.ability.ai.TapAllAi; +import forge.card.ability.ai.TapOrUntapAi; +import forge.card.ability.ai.TapOrUntapAllAi; +import forge.card.ability.ai.TokenAi; +import forge.card.ability.ai.TwoPilesAi; +import forge.card.ability.ai.UnattachAllAi; +import forge.card.ability.ai.UntapAi; +import forge.card.ability.ai.UntapAllAi; import forge.card.ability.effects.*; import forge.util.ReflectionUtil; diff --git a/src/main/java/forge/card/ability/ai/AddTurnAi.java b/src/main/java/forge/card/ability/ai/AddTurnAi.java index c54bfb5503b..bfe7af83a88 100644 --- a/src/main/java/forge/card/ability/ai/AddTurnAi.java +++ b/src/main/java/forge/card/ability/ai/AddTurnAi.java @@ -19,10 +19,10 @@ package forge.card.ability.ai; import java.util.List; -import forge.card.spellability.SpellAbility; -import forge.card.spellability.Target; import forge.card.ability.AbilityUtils; import forge.card.ability.SpellAbilityAi; +import forge.card.spellability.SpellAbility; +import forge.card.spellability.Target; import forge.game.player.AIPlayer; import forge.game.player.Player; diff --git a/src/main/java/forge/card/ability/ai/BondAi.java b/src/main/java/forge/card/ability/ai/BondAi.java index 8c84b1a0335..5522307a289 100644 --- a/src/main/java/forge/card/ability/ai/BondAi.java +++ b/src/main/java/forge/card/ability/ai/BondAi.java @@ -17,8 +17,8 @@ */ package forge.card.ability.ai; -import forge.card.spellability.SpellAbility; import forge.card.ability.SpellAbilityAi; +import forge.card.spellability.SpellAbility; import forge.game.player.AIPlayer; /** diff --git a/src/main/java/forge/card/ability/ai/ChangeZoneAi.java b/src/main/java/forge/card/ability/ai/ChangeZoneAi.java index f48bfe18a51..b1b89ba5962 100644 --- a/src/main/java/forge/card/ability/ai/ChangeZoneAi.java +++ b/src/main/java/forge/card/ability/ai/ChangeZoneAi.java @@ -12,10 +12,10 @@ import forge.Card; import forge.CardCharacteristicName; import forge.CardLists; import forge.CardPredicates; +import forge.CardPredicates.Presets; import forge.Constant; import forge.GameEntity; import forge.Singletons; -import forge.CardPredicates.Presets; import forge.card.ability.AbilityUtils; import forge.card.ability.ApiType; import forge.card.ability.SpellAbilityAi; @@ -28,10 +28,10 @@ import forge.card.spellability.SpellAbility; import forge.card.spellability.SpellPermanent; import forge.card.spellability.Target; import forge.game.GlobalRuleChange; -import forge.game.ai.ComputerUtilCard; -import forge.game.ai.ComputerUtilCombat; import forge.game.ai.ComputerUtil; import forge.game.ai.ComputerUtilBlock; +import forge.game.ai.ComputerUtilCard; +import forge.game.ai.ComputerUtilCombat; import forge.game.ai.ComputerUtilCost; import forge.game.ai.ComputerUtilMana; import forge.game.phase.Combat; diff --git a/src/main/java/forge/card/ability/ai/CharmAi.java b/src/main/java/forge/card/ability/ai/CharmAi.java index bcdc1f4715d..c0229e560b1 100644 --- a/src/main/java/forge/card/ability/ai/CharmAi.java +++ b/src/main/java/forge/card/ability/ai/CharmAi.java @@ -5,7 +5,9 @@ import java.util.List; import java.util.Random; import org.apache.commons.lang.math.RandomUtils; -import forge.card.ability.SpellAbilityAi;import forge.card.ability.effects.CharmEffect; + +import forge.card.ability.SpellAbilityAi; +import forge.card.ability.effects.CharmEffect; import forge.card.spellability.AbilitySub; import forge.card.spellability.SpellAbility; import forge.game.player.AIPlayer; diff --git a/src/main/java/forge/card/ability/ai/ControlGainAi.java b/src/main/java/forge/card/ability/ai/ControlGainAi.java index 8515e0f8ff4..ad632f20567 100644 --- a/src/main/java/forge/card/ability/ai/ControlGainAi.java +++ b/src/main/java/forge/card/ability/ai/ControlGainAi.java @@ -24,7 +24,6 @@ import java.util.Map; import com.google.common.base.Predicate; import forge.Card; - import forge.CardLists; import forge.Singletons; import forge.card.ability.AbilityUtils; diff --git a/src/main/java/forge/card/ability/ai/CopyPermanentAi.java b/src/main/java/forge/card/ability/ai/CopyPermanentAi.java index f0c262920b7..0ca6e5bcc7f 100644 --- a/src/main/java/forge/card/ability/ai/CopyPermanentAi.java +++ b/src/main/java/forge/card/ability/ai/CopyPermanentAi.java @@ -8,8 +8,8 @@ import com.google.common.base.Predicate; import forge.Card; import forge.CardLists; -import forge.Singletons; import forge.CardPredicates.Presets; +import forge.Singletons; import forge.card.ability.SpellAbilityAi; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; diff --git a/src/main/java/forge/card/ability/ai/CountersAi.java b/src/main/java/forge/card/ability/ai/CountersAi.java index 81a9bfbacb2..7bfec360550 100644 --- a/src/main/java/forge/card/ability/ai/CountersAi.java +++ b/src/main/java/forge/card/ability/ai/CountersAi.java @@ -22,7 +22,6 @@ import java.util.List; import com.google.common.base.Predicate; import forge.Card; - import forge.CardLists; import forge.CounterType; import forge.game.ai.ComputerUtilCard; diff --git a/src/main/java/forge/card/ability/ai/DrawAi.java b/src/main/java/forge/card/ability/ai/DrawAi.java index f39b9f8be7f..896dbc28131 100644 --- a/src/main/java/forge/card/ability/ai/DrawAi.java +++ b/src/main/java/forge/card/ability/ai/DrawAi.java @@ -22,9 +22,7 @@ import java.util.ArrayList; import java.util.List; import java.util.Random; - import forge.Card; - import forge.Singletons; import forge.card.ability.AbilityUtils; import forge.card.ability.SpellAbilityAi; diff --git a/src/main/java/forge/card/ability/ai/EncodeAi.java b/src/main/java/forge/card/ability/ai/EncodeAi.java index 5dacfe2dd53..9b2ec6e9b8c 100644 --- a/src/main/java/forge/card/ability/ai/EncodeAi.java +++ b/src/main/java/forge/card/ability/ai/EncodeAi.java @@ -17,8 +17,8 @@ */ package forge.card.ability.ai; -import forge.card.spellability.SpellAbility; import forge.card.ability.SpellAbilityAi; +import forge.card.spellability.SpellAbility; import forge.game.player.AIPlayer; /** diff --git a/src/main/java/forge/card/ability/ai/LifeGainAi.java b/src/main/java/forge/card/ability/ai/LifeGainAi.java index 9b9d2006d7c..26b2797a0ca 100644 --- a/src/main/java/forge/card/ability/ai/LifeGainAi.java +++ b/src/main/java/forge/card/ability/ai/LifeGainAi.java @@ -10,8 +10,8 @@ import forge.card.cost.Cost; import forge.card.spellability.AbilitySub; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; -import forge.game.ai.ComputerUtilCombat; import forge.game.ai.ComputerUtil; +import forge.game.ai.ComputerUtilCombat; import forge.game.ai.ComputerUtilCost; import forge.game.ai.ComputerUtilMana; import forge.game.phase.PhaseType; diff --git a/src/main/java/forge/card/ability/ai/ProtectAi.java b/src/main/java/forge/card/ability/ai/ProtectAi.java index 4b798bed343..aed7f6808bb 100644 --- a/src/main/java/forge/card/ability/ai/ProtectAi.java +++ b/src/main/java/forge/card/ability/ai/ProtectAi.java @@ -2,6 +2,7 @@ package forge.card.ability.ai; import java.util.ArrayList; import java.util.List; + import com.google.common.base.Predicate; import forge.Card; diff --git a/src/main/java/forge/card/ability/ai/PumpAi.java b/src/main/java/forge/card/ability/ai/PumpAi.java index 1c135f4ed41..6de1ef7ed85 100644 --- a/src/main/java/forge/card/ability/ai/PumpAi.java +++ b/src/main/java/forge/card/ability/ai/PumpAi.java @@ -3,12 +3,13 @@ package forge.card.ability.ai; import java.util.ArrayList; import java.util.Arrays; import java.util.List; + import com.google.common.base.Predicate; import forge.Card; import forge.CardLists; -import forge.Singletons; import forge.CardPredicates.Presets; +import forge.Singletons; import forge.card.ability.AbilityUtils; import forge.card.ability.SpellAbilityAi; import forge.card.cost.Cost; diff --git a/src/main/java/forge/card/ability/ai/PumpAllAi.java b/src/main/java/forge/card/ability/ai/PumpAllAi.java index f1970c7e343..f9ce99a9e24 100644 --- a/src/main/java/forge/card/ability/ai/PumpAllAi.java +++ b/src/main/java/forge/card/ability/ai/PumpAllAi.java @@ -12,9 +12,9 @@ import forge.Singletons; import forge.card.ability.AbilityUtils; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; +import forge.game.ai.ComputerUtil; import forge.game.ai.ComputerUtilCard; import forge.game.ai.ComputerUtilCombat; -import forge.game.ai.ComputerUtil; import forge.game.phase.CombatUtil; import forge.game.phase.PhaseType; import forge.game.player.AIPlayer; diff --git a/src/main/java/forge/card/ability/ai/RegenerateAi.java b/src/main/java/forge/card/ability/ai/RegenerateAi.java index bd246275627..d9c7924f906 100644 --- a/src/main/java/forge/card/ability/ai/RegenerateAi.java +++ b/src/main/java/forge/card/ability/ai/RegenerateAi.java @@ -21,7 +21,6 @@ import java.util.ArrayList; import java.util.List; import forge.Card; - import forge.CardLists; import forge.CardPredicates; import forge.Singletons; diff --git a/src/main/java/forge/card/ability/ai/RepeatEachAi.java b/src/main/java/forge/card/ability/ai/RepeatEachAi.java index aad1ce01446..578482c3703 100644 --- a/src/main/java/forge/card/ability/ai/RepeatEachAi.java +++ b/src/main/java/forge/card/ability/ai/RepeatEachAi.java @@ -7,8 +7,8 @@ import com.google.common.base.Predicate; import forge.Card; import forge.CardLists; -import forge.CounterType; import forge.CardPredicates.Presets; +import forge.CounterType; import forge.card.ability.SpellAbilityAi; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; diff --git a/src/main/java/forge/card/ability/ai/SacrificeAi.java b/src/main/java/forge/card/ability/ai/SacrificeAi.java index 1b70ba49a6f..52fa70a8273 100644 --- a/src/main/java/forge/card/ability/ai/SacrificeAi.java +++ b/src/main/java/forge/card/ability/ai/SacrificeAi.java @@ -1,6 +1,7 @@ package forge.card.ability.ai; import java.util.List; + import forge.Card; import forge.CardLists; import forge.CardPredicates; diff --git a/src/main/java/forge/card/ability/ai/StoreSVarAi.java b/src/main/java/forge/card/ability/ai/StoreSVarAi.java index 2cee5871435..252345b6d14 100644 --- a/src/main/java/forge/card/ability/ai/StoreSVarAi.java +++ b/src/main/java/forge/card/ability/ai/StoreSVarAi.java @@ -4,8 +4,8 @@ import forge.Card; import forge.Singletons; import forge.card.ability.SpellAbilityAi; import forge.card.spellability.SpellAbility; -import forge.game.ai.ComputerUtilCombat; import forge.game.ai.ComputerUtil; +import forge.game.ai.ComputerUtilCombat; import forge.game.player.AIPlayer; public class StoreSVarAi extends SpellAbilityAi { diff --git a/src/main/java/forge/card/ability/ai/TapAiBase.java b/src/main/java/forge/card/ability/ai/TapAiBase.java index 01f2a7a6cb0..452dbb4981e 100644 --- a/src/main/java/forge/card/ability/ai/TapAiBase.java +++ b/src/main/java/forge/card/ability/ai/TapAiBase.java @@ -8,8 +8,8 @@ import com.google.common.collect.Iterables; import forge.Card; import forge.CardLists; import forge.CardPredicates; -import forge.Singletons; import forge.CardPredicates.Presets; +import forge.Singletons; import forge.card.ability.SpellAbilityAi; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; diff --git a/src/main/java/forge/card/ability/ai/TapAllAi.java b/src/main/java/forge/card/ability/ai/TapAllAi.java index be2b44ccd75..1bc058cdf26 100644 --- a/src/main/java/forge/card/ability/ai/TapAllAi.java +++ b/src/main/java/forge/card/ability/ai/TapAllAi.java @@ -8,8 +8,8 @@ import com.google.common.collect.Iterables; import forge.Card; import forge.CardLists; -import forge.Singletons; import forge.CardPredicates.Presets; +import forge.Singletons; import forge.card.ability.SpellAbilityAi; import forge.card.spellability.SpellAbility; import forge.card.spellability.Target; diff --git a/src/main/java/forge/card/ability/ai/UntapAi.java b/src/main/java/forge/card/ability/ai/UntapAi.java index d6a16eaea47..3d30f3dd7be 100644 --- a/src/main/java/forge/card/ability/ai/UntapAi.java +++ b/src/main/java/forge/card/ability/ai/UntapAi.java @@ -5,8 +5,8 @@ import java.util.Random; import forge.Card; import forge.CardLists; -import forge.Singletons; import forge.CardPredicates.Presets; +import forge.Singletons; import forge.card.ability.AbilityUtils; import forge.card.ability.SpellAbilityAi; import forge.card.cost.Cost; diff --git a/src/main/java/forge/card/ability/effects/AnimateEffectBase.java b/src/main/java/forge/card/ability/effects/AnimateEffectBase.java index 60077d55439..85aab0ca95a 100644 --- a/src/main/java/forge/card/ability/effects/AnimateEffectBase.java +++ b/src/main/java/forge/card/ability/effects/AnimateEffectBase.java @@ -18,8 +18,8 @@ package forge.card.ability.effects; import java.util.ArrayList; -import forge.Card; +import forge.Card; import forge.card.ability.SpellAbilityEffect; import forge.card.spellability.SpellAbility; import forge.card.staticability.StaticAbility; diff --git a/src/main/java/forge/card/ability/effects/AttachEffect.java b/src/main/java/forge/card/ability/effects/AttachEffect.java index 81a77cc7c6c..50f008f5efb 100644 --- a/src/main/java/forge/card/ability/effects/AttachEffect.java +++ b/src/main/java/forge/card/ability/effects/AttachEffect.java @@ -2,6 +2,7 @@ package forge.card.ability.effects; import java.util.ArrayList; import java.util.List; + import forge.Card; import forge.CardLists; import forge.Command; diff --git a/src/main/java/forge/card/ability/effects/ChangeZoneEffect.java b/src/main/java/forge/card/ability/effects/ChangeZoneEffect.java index 615aad4ce3f..816e534dec0 100644 --- a/src/main/java/forge/card/ability/effects/ChangeZoneEffect.java +++ b/src/main/java/forge/card/ability/effects/ChangeZoneEffect.java @@ -2,6 +2,7 @@ package forge.card.ability.effects; import java.util.ArrayList; import java.util.List; + import com.google.common.base.Predicates; import forge.Card; diff --git a/src/main/java/forge/card/ability/effects/CharmEffect.java b/src/main/java/forge/card/ability/effects/CharmEffect.java index bddf06f663c..b6fc42d66db 100644 --- a/src/main/java/forge/card/ability/effects/CharmEffect.java +++ b/src/main/java/forge/card/ability/effects/CharmEffect.java @@ -2,6 +2,7 @@ package forge.card.ability.effects; import java.util.ArrayList; import java.util.List; + import forge.Card; import forge.card.ability.AbilityFactory; import forge.card.ability.SpellAbilityEffect; diff --git a/src/main/java/forge/card/ability/effects/ChooseCardEffect.java b/src/main/java/forge/card/ability/effects/ChooseCardEffect.java index 578a6e08c0a..995c802b9bf 100644 --- a/src/main/java/forge/card/ability/effects/ChooseCardEffect.java +++ b/src/main/java/forge/card/ability/effects/ChooseCardEffect.java @@ -5,8 +5,8 @@ import java.util.List; import forge.Card; import forge.CardLists; -import forge.Singletons; import forge.CardPredicates.Presets; +import forge.Singletons; import forge.card.CardType; import forge.card.ability.SpellAbilityEffect; import forge.card.cardfactory.CardFactoryUtil; diff --git a/src/main/java/forge/card/ability/effects/ChooseCardNameEffect.java b/src/main/java/forge/card/ability/effects/ChooseCardNameEffect.java index 6c2f15294c8..e82c6d9b737 100644 --- a/src/main/java/forge/card/ability/effects/ChooseCardNameEffect.java +++ b/src/main/java/forge/card/ability/effects/ChooseCardNameEffect.java @@ -12,8 +12,8 @@ import com.google.common.collect.Lists; import forge.Card; import forge.CardLists; -import forge.Singletons; import forge.CardPredicates.Presets; +import forge.Singletons; import forge.card.CardRulesPredicates; import forge.card.ability.SpellAbilityEffect; import forge.card.spellability.SpellAbility; diff --git a/src/main/java/forge/card/ability/effects/ChooseGenericEffect.java b/src/main/java/forge/card/ability/effects/ChooseGenericEffect.java index 171da6c69ae..58d326625cf 100644 --- a/src/main/java/forge/card/ability/effects/ChooseGenericEffect.java +++ b/src/main/java/forge/card/ability/effects/ChooseGenericEffect.java @@ -6,6 +6,7 @@ import java.util.Map; import com.google.common.collect.BiMap; import com.google.common.collect.HashBiMap; + import forge.Card; import forge.card.ability.AbilityFactory; import forge.card.ability.AbilityUtils; diff --git a/src/main/java/forge/card/ability/effects/ChooseSourceEffect.java b/src/main/java/forge/card/ability/effects/ChooseSourceEffect.java index bdf3b618aae..6b8fb0a4698 100644 --- a/src/main/java/forge/card/ability/effects/ChooseSourceEffect.java +++ b/src/main/java/forge/card/ability/effects/ChooseSourceEffect.java @@ -4,6 +4,8 @@ import java.util.ArrayList; import java.util.List; import java.util.Stack; +import com.google.common.base.Predicate; + import forge.Card; import forge.CardLists; import forge.Singletons; @@ -20,8 +22,6 @@ import forge.game.player.Player; import forge.game.zone.ZoneType; import forge.gui.GuiChoose; -import com.google.common.base.Predicate; - public class ChooseSourceEffect extends SpellAbilityEffect { @Override protected String getStackDescription(SpellAbility sa) { diff --git a/src/main/java/forge/card/ability/effects/CloneEffect.java b/src/main/java/forge/card/ability/effects/CloneEffect.java index a46784ff9ba..517a9cffab6 100644 --- a/src/main/java/forge/card/ability/effects/CloneEffect.java +++ b/src/main/java/forge/card/ability/effects/CloneEffect.java @@ -86,7 +86,7 @@ public class CloneEffect extends SpellAbilityEffect { tgtCard = cloneTargets.get(0); } - String imageFileName = host.getImageFilename(); + String imageFileName = host.getImageKey(); boolean keepName = sa.hasParam("KeepName"); String originalName = tgtCard.getName(); @@ -152,7 +152,7 @@ public class CloneEffect extends SpellAbilityEffect { } tgtCard.setFlipCard(true); //keep the Clone card image for the cloned card - tgtCard.setImageFilename(imageFileName); + tgtCard.setImageKey(imageFileName); if (!tgtCard.isFlipped()) { tgtCard.setState(CardCharacteristicName.Original); @@ -171,7 +171,7 @@ public class CloneEffect extends SpellAbilityEffect { tgtCard.clearImprinted(); //keep the Clone card image for the cloned card - tgtCard.setImageFilename(imageFileName); + tgtCard.setImageKey(imageFileName); // check if clone is now an Aura that needs to be attached if (tgtCard.isAura()) { diff --git a/src/main/java/forge/card/ability/effects/CopyPermanentEffect.java b/src/main/java/forge/card/ability/effects/CopyPermanentEffect.java index f3537d6ce0c..81520c3faab 100644 --- a/src/main/java/forge/card/ability/effects/CopyPermanentEffect.java +++ b/src/main/java/forge/card/ability/effects/CopyPermanentEffect.java @@ -94,7 +94,7 @@ public class CopyPermanentEffect extends SpellAbilityEffect { copy = CardFactory.copyStats(c); copy.setName(c.getName()); - copy.setImageFilename(c.getImageFilename()); + copy.setImageKey(c.getImageKey()); copy.setOwner(controller); copy.setController(controller, 0); @@ -126,7 +126,7 @@ public class CopyPermanentEffect extends SpellAbilityEffect { if (c.isFlipCard()) { // Cloned Flips CAN flip. copy.setState(CardCharacteristicName.Original); c.setState(CardCharacteristicName.Original); - copy.setImageFilename(c.getImageFilename()); + copy.setImageKey(c.getImageKey()); if (!c.isInAlternateState()) { copy.setState(CardCharacteristicName.Flipped); } diff --git a/src/main/java/forge/card/ability/effects/CounterEffect.java b/src/main/java/forge/card/ability/effects/CounterEffect.java index 3a28e70a12e..3300394624b 100644 --- a/src/main/java/forge/card/ability/effects/CounterEffect.java +++ b/src/main/java/forge/card/ability/effects/CounterEffect.java @@ -2,6 +2,7 @@ package forge.card.ability.effects; import java.util.ArrayList; import java.util.List; + import forge.Card; import forge.Singletons; import forge.card.ability.SpellAbilityEffect; diff --git a/src/main/java/forge/card/ability/effects/EffectEffect.java b/src/main/java/forge/card/ability/effects/EffectEffect.java index f1c0896bfeb..f969bbb00a5 100644 --- a/src/main/java/forge/card/ability/effects/EffectEffect.java +++ b/src/main/java/forge/card/ability/effects/EffectEffect.java @@ -102,7 +102,7 @@ public class EffectEffect extends SpellAbilityEffect { eff.addType("Effect"); // Or Emblem eff.setToken(true); // Set token to true, so when leaving play it gets nuked eff.setOwner(controller); - eff.setImageFilename(sa.hasParam("Image") ? sa.getParam("Image") : hostCard.getImageFilename()); + eff.setImageKey(sa.hasParam("Image") ? sa.getParam("Image") : hostCard.getImageKey()); eff.setColor(hostCard.getColor()); eff.setImmutable(true); eff.setEffectSource(hostCard); diff --git a/src/main/java/forge/card/ability/effects/PlayEffect.java b/src/main/java/forge/card/ability/effects/PlayEffect.java index 40d995d07c7..251ffb3ed01 100644 --- a/src/main/java/forge/card/ability/effects/PlayEffect.java +++ b/src/main/java/forge/card/ability/effects/PlayEffect.java @@ -14,8 +14,8 @@ import forge.Singletons; import forge.card.ability.AbilityUtils; import forge.card.ability.SpellAbilityEffect; import forge.card.cost.Cost; -import forge.card.cost.CostPartMana; import forge.card.cost.CostPart; +import forge.card.cost.CostPartMana; import forge.card.mana.ManaCost; import forge.card.spellability.Spell; import forge.card.spellability.SpellAbility; diff --git a/src/main/java/forge/card/ability/effects/PumpEffect.java b/src/main/java/forge/card/ability/effects/PumpEffect.java index a98e8ec6e52..7691505f010 100644 --- a/src/main/java/forge/card/ability/effects/PumpEffect.java +++ b/src/main/java/forge/card/ability/effects/PumpEffect.java @@ -3,6 +3,7 @@ package forge.card.ability.effects; import java.util.ArrayList; import java.util.Arrays; import java.util.List; + import forge.Card; import forge.CardUtil; import forge.Command; diff --git a/src/main/java/forge/card/ability/effects/RepeatEffect.java b/src/main/java/forge/card/ability/effects/RepeatEffect.java index 8b74ba1e22f..ff6c5de7ff9 100644 --- a/src/main/java/forge/card/ability/effects/RepeatEffect.java +++ b/src/main/java/forge/card/ability/effects/RepeatEffect.java @@ -2,6 +2,7 @@ package forge.card.ability.effects; import java.util.ArrayList; import java.util.List; + import forge.Card; import forge.CardLists; import forge.Singletons; diff --git a/src/main/java/forge/card/ability/effects/RevealEffectBase.java b/src/main/java/forge/card/ability/effects/RevealEffectBase.java index da09f279000..cec1460eb55 100644 --- a/src/main/java/forge/card/ability/effects/RevealEffectBase.java +++ b/src/main/java/forge/card/ability/effects/RevealEffectBase.java @@ -20,9 +20,7 @@ package forge.card.ability.effects; import java.util.ArrayList; import java.util.List; - import forge.Card; - import forge.card.ability.SpellAbilityEffect; import forge.game.player.Player; import forge.gui.GuiChoose; diff --git a/src/main/java/forge/card/ability/effects/TokenEffect.java b/src/main/java/forge/card/ability/effects/TokenEffect.java index d4d3dadbd5f..4fdc7426cb3 100644 --- a/src/main/java/forge/card/ability/effects/TokenEffect.java +++ b/src/main/java/forge/card/ability/effects/TokenEffect.java @@ -19,8 +19,8 @@ package forge.card.ability.effects; import java.util.Arrays; import java.util.List; -import forge.Card; +import forge.Card; import forge.Singletons; import forge.card.ability.AbilityFactory; import forge.card.ability.AbilityUtils; @@ -30,6 +30,7 @@ import forge.card.spellability.SpellAbility; import forge.card.trigger.Trigger; import forge.card.trigger.TriggerHandler; import forge.game.player.Player; +import forge.item.CardToken; public class TokenEffect extends SpellAbilityEffect { @@ -66,7 +67,7 @@ public class TokenEffect extends SpellAbilityEffect { } if (mapParams.hasParam("TokenImage")) { - image = mapParams.getParam("TokenImage"); + image = CardToken.makeTokenFileName(mapParams.getParam("TokenImage")); } else { image = ""; } @@ -144,7 +145,6 @@ public class TokenEffect extends SpellAbilityEffect { final Card host = sa.getSourceCard(); readParameters(sa); - String imageName = ""; String cost = ""; // Construct colors final String[] substitutedColors = Arrays.copyOf(this.tokenColors, this.tokenColors.length); @@ -170,8 +170,10 @@ public class TokenEffect extends SpellAbilityEffect { colorDesc = "C"; } } + + final String imageName; if (this.tokenImage.equals("")) { - imageName += colorDesc.replace(" ", "") + " " + this.tokenPower + " " + this.tokenToughness + " " + this.tokenName; + imageName = CardToken.makeTokenFileName(colorDesc.replace(" ", ""), tokenPower, tokenToughness, tokenName); } else { imageName = this.tokenImage; } diff --git a/src/main/java/forge/card/ability/effects/TwoPilesEffect.java b/src/main/java/forge/card/ability/effects/TwoPilesEffect.java index 5c13c8b3d0c..bf5041617c0 100644 --- a/src/main/java/forge/card/ability/effects/TwoPilesEffect.java +++ b/src/main/java/forge/card/ability/effects/TwoPilesEffect.java @@ -2,6 +2,7 @@ package forge.card.ability.effects; import java.util.ArrayList; import java.util.List; + import javax.swing.JOptionPane; import forge.Card; diff --git a/src/main/java/forge/card/ability/effects/UntapEffect.java b/src/main/java/forge/card/ability/effects/UntapEffect.java index a715fffef9e..28999df9502 100644 --- a/src/main/java/forge/card/ability/effects/UntapEffect.java +++ b/src/main/java/forge/card/ability/effects/UntapEffect.java @@ -1,12 +1,13 @@ package forge.card.ability.effects; import java.util.List; + import org.apache.commons.lang3.StringUtils; import forge.Card; import forge.CardLists; -import forge.Singletons; import forge.CardPredicates.Presets; +import forge.Singletons; import forge.card.ability.AbilityUtils; import forge.card.ability.SpellAbilityEffect; import forge.card.cardfactory.CardFactoryUtil; diff --git a/src/main/java/forge/card/cardfactory/CardFactory.java b/src/main/java/forge/card/cardfactory/CardFactory.java index c16cb4e339f..b4a47d2d97c 100644 --- a/src/main/java/forge/card/cardfactory/CardFactory.java +++ b/src/main/java/forge/card/cardfactory/CardFactory.java @@ -42,6 +42,7 @@ import forge.card.spellability.Target; import forge.card.trigger.TriggerHandler; import forge.game.player.Player; import forge.item.CardDb; +import forge.item.CardPrinted; import forge.item.IPaperCard; /** @@ -223,40 +224,35 @@ public class CardFactory { c.setCurSetCode(cp.getEdition()); c.setRarity(cp.getRarity()); - - c.setRandomPicture(cp.getArtIndex() + 1); - String originalPicture = cp.getImageFilename(); + String originalPicture = cp.getImageKey(); //System.out.println(c.getName() + " -> " + originalPicture); - c.setImageFilename(originalPicture); + c.setImageKey(originalPicture); c.setToken(cp.isToken()); if (c.hasAlternateState()) { if (c.isFlipCard()) { c.setState(CardCharacteristicName.Flipped); - c.setImageFilename(originalPicture); // should assign a 180 degrees rotated picture here? + c.setImageKey(originalPicture); // should assign a 180 degrees rotated picture here? } - else if (c.isDoubleFaced()) { + else if (c.isDoubleFaced() && cp instanceof CardPrinted) { c.setState(CardCharacteristicName.Transformed); - c.setImageFilename(CardUtil.buildFilename(cp, cp.getRules().getOtherPart().getName())); + c.setImageKey(((CardPrinted)cp).getImageKey(true)); } else if (c.getRules().getSplitType() == CardSplitType.Split) { c.setState(CardCharacteristicName.LeftSplit); - c.setImageFilename(originalPicture); + c.setImageKey(originalPicture); c.setCurSetCode(cp.getEdition()); c.setRarity(cp.getRarity()); c.setState(CardCharacteristicName.RightSplit); - c.setImageFilename(originalPicture); - } else { - c.setImageFilename(CardUtil.buildFilename(c)); + c.setImageKey(originalPicture); } - c.setCurSetCode(cp.getEdition()); c.setRarity(cp.getRarity()); c.setState(CardCharacteristicName.Original); } + return c; - } private static void buildAbilities(final Card card) { @@ -460,7 +456,7 @@ public class CardFactory { to.setSVars(from.getSVars()); to.setIntrinsicAbilities(from.getIntrinsicAbilities()); - to.setImageFilename(from.getImageFilename()); + to.setImageKey(from.getImageKey()); to.setTriggers(from.getTriggers()); to.setReplacementEffects(from.getReplacementEffects()); to.setStaticAbilityStrings(from.getStaticAbilityStrings()); diff --git a/src/main/java/forge/card/cardfactory/CardFactoryArtifacts.java b/src/main/java/forge/card/cardfactory/CardFactoryArtifacts.java index 81920f7b5c3..c933627fdfe 100644 --- a/src/main/java/forge/card/cardfactory/CardFactoryArtifacts.java +++ b/src/main/java/forge/card/cardfactory/CardFactoryArtifacts.java @@ -7,7 +7,6 @@ import javax.swing.JOptionPane; import forge.Card; import forge.Command; - import forge.Singletons; import forge.card.cost.Cost; import forge.card.mana.ManaCost; diff --git a/src/main/java/forge/card/cardfactory/CardFactoryCreatures.java b/src/main/java/forge/card/cardfactory/CardFactoryCreatures.java index 4950e234fd7..5a06c5c9c89 100644 --- a/src/main/java/forge/card/cardfactory/CardFactoryCreatures.java +++ b/src/main/java/forge/card/cardfactory/CardFactoryCreatures.java @@ -19,6 +19,7 @@ package forge.card.cardfactory; import java.util.ArrayList; import java.util.List; + import javax.swing.JOptionPane; import com.google.common.base.Predicate; @@ -27,7 +28,6 @@ import com.google.common.collect.Iterables; import forge.Card; import forge.CardCharacteristicName; - import forge.CardLists; import forge.CardPredicates; import forge.CardPredicates.Presets; @@ -57,6 +57,7 @@ import forge.game.zone.PlayerZone; import forge.game.zone.Zone; import forge.game.zone.ZoneType; import forge.gui.GuiChoose; +import forge.item.CardToken; import forge.util.Aggregates; /** @@ -73,7 +74,8 @@ public class CardFactoryCreatures { final Ability ability = new Ability(card, ManaCost.ZERO) { @Override public void resolve() { - final List cl = CardFactoryUtil.makeToken("Stangg Twin", "RG 3 4 Stangg Twin", + final List cl = CardFactoryUtil.makeToken("Stangg Twin", + CardToken.makeTokenFileName("RG", 3, 4, "Stangg Twin"), card.getController(), "R G", new String[] { "Legendary", "Creature", "Human", "Warrior" }, 3, 4, new String[] { "" }); @@ -373,8 +375,8 @@ public class CardFactoryCreatures { } // resolve() public void makeToken() { - CardFactoryUtil.makeToken("Kithkin Soldier", "W 1 1 Kithkin Soldier", card.getController(), "W", - new String[] { "Creature", "Kithkin", "Soldier" }, 1, 1, new String[] { "" }); + CardFactoryUtil.makeToken("Kithkin Soldier", CardToken.makeTokenFileName("W", 1, 1, "Kithkin Soldier"), + card.getController(), "W", new String[] { "Creature", "Kithkin", "Soldier" }, 1, 1, new String[] { "" }); } }; diff --git a/src/main/java/forge/card/cardfactory/CardFactoryLands.java b/src/main/java/forge/card/cardfactory/CardFactoryLands.java index 26772192c5b..6064b2dcfe3 100644 --- a/src/main/java/forge/card/cardfactory/CardFactoryLands.java +++ b/src/main/java/forge/card/cardfactory/CardFactoryLands.java @@ -22,7 +22,6 @@ import java.util.List; import javax.swing.JOptionPane; import forge.Card; - import forge.CardLists; import forge.Command; import forge.Singletons; diff --git a/src/main/java/forge/card/cardfactory/CardFactorySorceries.java b/src/main/java/forge/card/cardfactory/CardFactorySorceries.java index ac3930ad7cc..07291bd975d 100644 --- a/src/main/java/forge/card/cardfactory/CardFactorySorceries.java +++ b/src/main/java/forge/card/cardfactory/CardFactorySorceries.java @@ -42,8 +42,8 @@ import forge.card.cost.Cost; import forge.card.spellability.Spell; import forge.card.spellability.SpellAbility; import forge.control.input.Input; -import forge.control.input.InputPayManaSimple; import forge.control.input.InputPayManaExecuteCommands; +import forge.control.input.InputPayManaSimple; import forge.game.GameState; import forge.game.ai.ComputerUtil; import forge.game.player.Player; diff --git a/src/main/java/forge/card/cardfactory/CardFactoryUtil.java b/src/main/java/forge/card/cardfactory/CardFactoryUtil.java index 58de6f1bc06..96b54d99cc0 100644 --- a/src/main/java/forge/card/cardfactory/CardFactoryUtil.java +++ b/src/main/java/forge/card/cardfactory/CardFactoryUtil.java @@ -31,7 +31,6 @@ import com.google.common.collect.Lists; import forge.Card; import forge.CardCharacteristicName; - import forge.CardLists; import forge.CardPredicates; import forge.CardPredicates.Presets; @@ -45,9 +44,9 @@ import forge.card.ability.AbilityFactory; import forge.card.ability.AbilityUtils; import forge.card.ability.ApiType; import forge.card.cost.Cost; +import forge.card.mana.ManaCost; import forge.card.mana.ManaCostParser; import forge.card.mana.ManaCostShard; -import forge.card.mana.ManaCost; import forge.card.replacement.ReplacementEffect; import forge.card.replacement.ReplacementHandler; import forge.card.replacement.ReplacementLayer; @@ -80,7 +79,6 @@ import forge.game.zone.ZoneType; import forge.gui.GuiChoose; import forge.gui.match.CMatchUI; import forge.util.Aggregates; - import forge.view.ButtonUtil; /** @@ -2438,36 +2436,13 @@ public class CardFactoryUtil { return true; } - /** - *

- * makeToken. - *

- * - * @param name - * a {@link java.lang.String} object. - * @param imageName - * a {@link java.lang.String} object. - * @param controller - * a {@link forge.game.player.Player} object. - * @param manaCost - * a {@link java.lang.String} object. - * @param types - * an array of {@link java.lang.String} objects. - * @param baseAttack - * a int. - * @param baseDefense - * a int. - * @param intrinsicKeywords - * an array of {@link java.lang.String} objects. - * @return a {@link forge.CardList} object. - */ public static List makeToken(final String name, final String imageName, final Player controller, final String manaCost, final String[] types, final int baseAttack, final int baseDefense, final String[] intrinsicKeywords) { final List list = new ArrayList(); final Card c = new Card(); c.setName(name); - c.setImageFilename(imageName); + c.setImageKey(imageName); // TODO - most tokens mana cost is 0, this needs to be fixed // c.setManaCost(manaCost); @@ -2528,7 +2503,7 @@ public class CardFactoryUtil { final List kal = thisToken.getIntrinsicKeyword(); final String[] tokenKeywords = new String[kal.size()]; kal.toArray(tokenKeywords); - final List tokens = CardFactoryUtil.makeToken(thisToken.getName(), thisToken.getImageFilename(), + final List tokens = CardFactoryUtil.makeToken(thisToken.getName(), thisToken.getImageKey(), thisToken.getController(), thisToken.getManaCost().toString(), tokenTypes, thisToken.getBaseAttack(), thisToken.getBaseDefense(), tokenKeywords); diff --git a/src/main/java/forge/card/cardfactory/CardStorageReader.java b/src/main/java/forge/card/cardfactory/CardStorageReader.java index 3651f78a1c7..deffb368137 100644 --- a/src/main/java/forge/card/cardfactory/CardStorageReader.java +++ b/src/main/java/forge/card/cardfactory/CardStorageReader.java @@ -82,10 +82,12 @@ public class CardStorageReader { * if true, attempts to load cards from a zip file, if one * exists. */ - public CardStorageReader(final File theCardsFolder, final boolean useZip) { + public CardStorageReader(String cardDataDir, final boolean useZip) { // These read data for lightweight classes. this.rulesReader = new CardRulesReader(); + + File theCardsFolder = new File(cardDataDir); if (!theCardsFolder.exists()) { throw new RuntimeException("CardReader : constructor error -- file not found -- filename is " diff --git a/src/main/java/forge/card/cost/Cost.java b/src/main/java/forge/card/cost/Cost.java index 70176025dc7..f88f42e08b3 100644 --- a/src/main/java/forge/card/cost/Cost.java +++ b/src/main/java/forge/card/cost/Cost.java @@ -24,9 +24,9 @@ import java.util.regex.Pattern; import forge.Card; import forge.CounterType; import forge.Singletons; +import forge.card.mana.ManaCost; import forge.card.mana.ManaCostBeingPaid; import forge.card.mana.ManaCostParser; -import forge.card.mana.ManaCost; import forge.card.spellability.SpellAbility; import forge.game.zone.ZoneType; import forge.util.TextUtil; diff --git a/src/main/java/forge/card/cost/CostDiscard.java b/src/main/java/forge/card/cost/CostDiscard.java index e51fb9f0c9d..727f61c5abc 100644 --- a/src/main/java/forge/card/cost/CostDiscard.java +++ b/src/main/java/forge/card/cost/CostDiscard.java @@ -23,10 +23,9 @@ import java.util.List; import com.google.common.base.Predicate; import forge.Card; +import forge.CardLists; import forge.CardPredicates; import forge.Singletons; - -import forge.CardLists; import forge.card.ability.AbilityUtils; import forge.card.spellability.SpellAbility; import forge.control.input.Input; diff --git a/src/main/java/forge/card/cost/CostExile.java b/src/main/java/forge/card/cost/CostExile.java index f215fbcb336..b339110f65b 100644 --- a/src/main/java/forge/card/cost/CostExile.java +++ b/src/main/java/forge/card/cost/CostExile.java @@ -22,7 +22,6 @@ import java.util.Iterator; import java.util.List; import forge.Card; - import forge.CardLists; import forge.CardPredicates; import forge.Singletons; diff --git a/src/main/java/forge/card/cost/CostMill.java b/src/main/java/forge/card/cost/CostMill.java index 35693ca5483..65919ae541c 100644 --- a/src/main/java/forge/card/cost/CostMill.java +++ b/src/main/java/forge/card/cost/CostMill.java @@ -22,7 +22,6 @@ import java.util.Iterator; import java.util.List; import forge.Card; - import forge.Singletons; import forge.card.ability.AbilityUtils; import forge.card.spellability.SpellAbility; diff --git a/src/main/java/forge/card/cost/CostPartWithList.java b/src/main/java/forge/card/cost/CostPartWithList.java index 627770f09a6..6eca887197f 100644 --- a/src/main/java/forge/card/cost/CostPartWithList.java +++ b/src/main/java/forge/card/cost/CostPartWithList.java @@ -21,7 +21,6 @@ import java.util.ArrayList; import java.util.List; import forge.Card; - import forge.CardUtil; import forge.card.spellability.SpellAbility; diff --git a/src/main/java/forge/card/cost/CostPutCounter.java b/src/main/java/forge/card/cost/CostPutCounter.java index 606da7070c9..b3c380d7664 100644 --- a/src/main/java/forge/card/cost/CostPutCounter.java +++ b/src/main/java/forge/card/cost/CostPutCounter.java @@ -20,7 +20,6 @@ package forge.card.cost; import java.util.List; import forge.Card; - import forge.CardLists; import forge.CounterType; import forge.Singletons; diff --git a/src/main/java/forge/card/cost/CostRemoveCounter.java b/src/main/java/forge/card/cost/CostRemoveCounter.java index 3c1c0a038e2..dee934b4e69 100644 --- a/src/main/java/forge/card/cost/CostRemoveCounter.java +++ b/src/main/java/forge/card/cost/CostRemoveCounter.java @@ -21,7 +21,6 @@ import java.util.ArrayList; import java.util.List; import forge.Card; - import forge.CardLists; import forge.CounterType; import forge.Singletons; diff --git a/src/main/java/forge/card/cost/CostReturn.java b/src/main/java/forge/card/cost/CostReturn.java index c020c5d30c2..5849a50a64c 100644 --- a/src/main/java/forge/card/cost/CostReturn.java +++ b/src/main/java/forge/card/cost/CostReturn.java @@ -23,7 +23,6 @@ import java.util.List; import javax.swing.JOptionPane; import forge.Card; - import forge.CardLists; import forge.Singletons; import forge.card.ability.AbilityUtils; diff --git a/src/main/java/forge/card/cost/CostReveal.java b/src/main/java/forge/card/cost/CostReveal.java index 80fab3eb8ee..42060d82b55 100644 --- a/src/main/java/forge/card/cost/CostReveal.java +++ b/src/main/java/forge/card/cost/CostReveal.java @@ -21,9 +21,8 @@ import java.util.ArrayList; import java.util.List; import forge.Card; -import forge.Singletons; - import forge.CardLists; +import forge.Singletons; import forge.card.ability.AbilityUtils; import forge.card.spellability.SpellAbility; import forge.control.input.Input; diff --git a/src/main/java/forge/card/cost/CostSacrifice.java b/src/main/java/forge/card/cost/CostSacrifice.java index 36d8a281860..75d1994e5f1 100644 --- a/src/main/java/forge/card/cost/CostSacrifice.java +++ b/src/main/java/forge/card/cost/CostSacrifice.java @@ -23,7 +23,6 @@ import java.util.List; import javax.swing.JOptionPane; import forge.Card; - import forge.CardLists; import forge.Singletons; import forge.card.ability.AbilityUtils; diff --git a/src/main/java/forge/card/cost/CostTapType.java b/src/main/java/forge/card/cost/CostTapType.java index f535e172359..c08f2660054 100644 --- a/src/main/java/forge/card/cost/CostTapType.java +++ b/src/main/java/forge/card/cost/CostTapType.java @@ -21,7 +21,6 @@ import java.util.ArrayList; import java.util.List; import forge.Card; - import forge.CardLists; import forge.CardPredicates.Presets; import forge.Singletons; diff --git a/src/main/java/forge/card/cost/CostUntapType.java b/src/main/java/forge/card/cost/CostUntapType.java index 75ae457428e..57bffb896f0 100644 --- a/src/main/java/forge/card/cost/CostUntapType.java +++ b/src/main/java/forge/card/cost/CostUntapType.java @@ -20,7 +20,6 @@ package forge.card.cost; import java.util.List; import forge.Card; - import forge.CardLists; import forge.CardPredicates.Presets; import forge.Singletons; diff --git a/src/main/java/forge/card/mana/ManaCostBeingPaid.java b/src/main/java/forge/card/mana/ManaCostBeingPaid.java index 7f182318e70..9cb5a7ef730 100644 --- a/src/main/java/forge/card/mana/ManaCostBeingPaid.java +++ b/src/main/java/forge/card/mana/ManaCostBeingPaid.java @@ -21,6 +21,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map.Entry; + import forge.Constant; import forge.card.MagicColor; diff --git a/src/main/java/forge/card/mana/ManaCostShard.java b/src/main/java/forge/card/mana/ManaCostShard.java index 789e44a11c9..acccd8915d4 100644 --- a/src/main/java/forge/card/mana/ManaCostShard.java +++ b/src/main/java/forge/card/mana/ManaCostShard.java @@ -17,8 +17,8 @@ */ package forge.card.mana; -import forge.card.MagicColor; import forge.card.ColorSet; +import forge.card.MagicColor; import forge.util.BinaryUtil; /** diff --git a/src/main/java/forge/card/spellability/AbilityActivated.java b/src/main/java/forge/card/spellability/AbilityActivated.java index fa510cfe81a..c3ef6e83912 100644 --- a/src/main/java/forge/card/spellability/AbilityActivated.java +++ b/src/main/java/forge/card/spellability/AbilityActivated.java @@ -21,7 +21,6 @@ import java.util.ArrayList; import forge.Card; import forge.Singletons; - import forge.card.cost.Cost; import forge.card.cost.CostPayment; import forge.card.staticability.StaticAbility; diff --git a/src/main/java/forge/card/spellability/Spell.java b/src/main/java/forge/card/spellability/Spell.java index ce93eaa6430..2a4fbc7a990 100644 --- a/src/main/java/forge/card/spellability/Spell.java +++ b/src/main/java/forge/card/spellability/Spell.java @@ -21,9 +21,8 @@ import java.util.ArrayList; import java.util.List; import forge.Card; -import forge.Singletons; - import forge.CardLists; +import forge.Singletons; import forge.card.cardfactory.CardFactoryUtil; import forge.card.cost.Cost; import forge.card.cost.CostPayment; diff --git a/src/main/java/forge/card/spellability/SpellAbilityCondition.java b/src/main/java/forge/card/spellability/SpellAbilityCondition.java index f176565fd2b..13b7e8e7469 100644 --- a/src/main/java/forge/card/spellability/SpellAbilityCondition.java +++ b/src/main/java/forge/card/spellability/SpellAbilityCondition.java @@ -22,7 +22,6 @@ import java.util.List; import java.util.Map; import forge.Card; - import forge.CardLists; import forge.Singletons; import forge.card.ability.AbilityUtils; diff --git a/src/main/java/forge/card/spellability/SpellAbilityRestriction.java b/src/main/java/forge/card/spellability/SpellAbilityRestriction.java index ff6e8f092e4..7c0e7b742db 100644 --- a/src/main/java/forge/card/spellability/SpellAbilityRestriction.java +++ b/src/main/java/forge/card/spellability/SpellAbilityRestriction.java @@ -22,7 +22,6 @@ import java.util.List; import java.util.Map; import forge.Card; - import forge.CardLists; import forge.Singletons; import forge.card.ability.AbilityUtils; diff --git a/src/main/java/forge/card/spellability/SpellAbilityStackInstance.java b/src/main/java/forge/card/spellability/SpellAbilityStackInstance.java index e57b7a2be4c..c5afabcd99d 100644 --- a/src/main/java/forge/card/spellability/SpellAbilityStackInstance.java +++ b/src/main/java/forge/card/spellability/SpellAbilityStackInstance.java @@ -21,7 +21,6 @@ import java.util.HashMap; import java.util.List; import forge.Card; - import forge.game.player.Player; /** diff --git a/src/main/java/forge/card/spellability/SpellPermanent.java b/src/main/java/forge/card/spellability/SpellPermanent.java index dd08623e380..1cf042a543d 100644 --- a/src/main/java/forge/card/spellability/SpellPermanent.java +++ b/src/main/java/forge/card/spellability/SpellPermanent.java @@ -26,7 +26,6 @@ import com.google.common.base.Supplier; import com.google.common.collect.Iterables; import forge.Card; - import forge.CardLists; import forge.CardPredicates; import forge.Command; diff --git a/src/main/java/forge/card/spellability/TargetSelection.java b/src/main/java/forge/card/spellability/TargetSelection.java index d3f228f6084..03286649df0 100644 --- a/src/main/java/forge/card/spellability/TargetSelection.java +++ b/src/main/java/forge/card/spellability/TargetSelection.java @@ -24,9 +24,8 @@ import java.util.List; import com.google.common.base.Predicate; import forge.Card; -import forge.Singletons; - import forge.CardLists; +import forge.Singletons; import forge.card.ability.AbilityUtils; import forge.card.ability.ApiType; import forge.control.input.Input; @@ -34,7 +33,6 @@ import forge.game.player.Player; import forge.game.zone.ZoneType; import forge.gui.GuiChoose; import forge.gui.match.CMatchUI; - import forge.view.ButtonUtil; /** diff --git a/src/main/java/forge/card/staticability/StaticAbilityContinuous.java b/src/main/java/forge/card/staticability/StaticAbilityContinuous.java index 12e516d5e4f..9fd6329501b 100644 --- a/src/main/java/forge/card/staticability/StaticAbilityContinuous.java +++ b/src/main/java/forge/card/staticability/StaticAbilityContinuous.java @@ -23,10 +23,9 @@ import java.util.HashMap; import java.util.List; import forge.Card; -import forge.Singletons; - import forge.CardLists; import forge.CardUtil; +import forge.Singletons; import forge.StaticEffect; import forge.StaticEffects; import forge.card.CardType; diff --git a/src/main/java/forge/card/trigger/Trigger.java b/src/main/java/forge/card/trigger/Trigger.java index 4a49542f52a..87988e0efe3 100644 --- a/src/main/java/forge/card/trigger/Trigger.java +++ b/src/main/java/forge/card/trigger/Trigger.java @@ -23,7 +23,6 @@ import java.util.List; import java.util.Map; import forge.Card; - import forge.Singletons; import forge.card.TriggerReplacementBase; import forge.card.spellability.Ability; diff --git a/src/main/java/forge/card/trigger/TriggerAttackerBlocked.java b/src/main/java/forge/card/trigger/TriggerAttackerBlocked.java index 25d4b1abd2b..60e79e184aa 100644 --- a/src/main/java/forge/card/trigger/TriggerAttackerBlocked.java +++ b/src/main/java/forge/card/trigger/TriggerAttackerBlocked.java @@ -19,7 +19,6 @@ package forge.card.trigger; import java.util.Map; - import forge.Card; import forge.card.spellability.SpellAbility; diff --git a/src/main/java/forge/card/trigger/TriggerAttackerUnblocked.java b/src/main/java/forge/card/trigger/TriggerAttackerUnblocked.java index 571c6720651..ad653f08c9e 100644 --- a/src/main/java/forge/card/trigger/TriggerAttackerUnblocked.java +++ b/src/main/java/forge/card/trigger/TriggerAttackerUnblocked.java @@ -19,7 +19,6 @@ package forge.card.trigger; import java.util.Map; - import forge.Card; import forge.card.spellability.SpellAbility; diff --git a/src/main/java/forge/card/trigger/TriggerAttackersDeclared.java b/src/main/java/forge/card/trigger/TriggerAttackersDeclared.java index a5743bf5f92..afe631451cb 100644 --- a/src/main/java/forge/card/trigger/TriggerAttackersDeclared.java +++ b/src/main/java/forge/card/trigger/TriggerAttackersDeclared.java @@ -20,9 +20,7 @@ package forge.card.trigger; import java.util.List; import java.util.Map; - import forge.Card; - import forge.card.spellability.SpellAbility; /** diff --git a/src/main/java/forge/card/trigger/TriggerAttacks.java b/src/main/java/forge/card/trigger/TriggerAttacks.java index 60720158994..ab31df48034 100644 --- a/src/main/java/forge/card/trigger/TriggerAttacks.java +++ b/src/main/java/forge/card/trigger/TriggerAttacks.java @@ -21,7 +21,6 @@ import java.util.List; import java.util.Map; import forge.Card; - import forge.GameEntity; import forge.card.spellability.SpellAbility; diff --git a/src/main/java/forge/card/trigger/TriggerBecomesTarget.java b/src/main/java/forge/card/trigger/TriggerBecomesTarget.java index ff27e30faf1..8bc5096a1c2 100644 --- a/src/main/java/forge/card/trigger/TriggerBecomesTarget.java +++ b/src/main/java/forge/card/trigger/TriggerBecomesTarget.java @@ -19,7 +19,6 @@ package forge.card.trigger; import java.util.Map; - import forge.Card; import forge.card.spellability.SpellAbility; diff --git a/src/main/java/forge/card/trigger/TriggerBlocks.java b/src/main/java/forge/card/trigger/TriggerBlocks.java index 6adea6c4e1c..08c3b2dda94 100644 --- a/src/main/java/forge/card/trigger/TriggerBlocks.java +++ b/src/main/java/forge/card/trigger/TriggerBlocks.java @@ -19,7 +19,6 @@ package forge.card.trigger; import java.util.Map; - import forge.Card; import forge.card.spellability.SpellAbility; diff --git a/src/main/java/forge/card/trigger/TriggerClashed.java b/src/main/java/forge/card/trigger/TriggerClashed.java index e229f2a8522..941911ada39 100644 --- a/src/main/java/forge/card/trigger/TriggerClashed.java +++ b/src/main/java/forge/card/trigger/TriggerClashed.java @@ -19,7 +19,6 @@ package forge.card.trigger; import java.util.Map; - import forge.Card; import forge.card.spellability.SpellAbility; diff --git a/src/main/java/forge/card/trigger/TriggerHandler.java b/src/main/java/forge/card/trigger/TriggerHandler.java index fc292499db2..1fc800f7e29 100644 --- a/src/main/java/forge/card/trigger/TriggerHandler.java +++ b/src/main/java/forge/card/trigger/TriggerHandler.java @@ -24,7 +24,6 @@ import java.util.List; import java.util.Map; import forge.Card; - import forge.CardLists; import forge.Singletons; import forge.card.ability.AbilityFactory; @@ -40,28 +39,15 @@ import forge.game.GlobalRuleChange; import forge.game.ai.ComputerUtil; import forge.game.phase.PhaseType; import forge.game.player.AIPlayer; -//import forge.util.TextUtil; import forge.game.player.Player; import forge.game.zone.ZoneType; -/** - *

- * TriggerHandler class. - *

- * - * @author Forge - * @version $Id$ - */ - public class TriggerHandler { private final ArrayList suppressedModes = new ArrayList(); private final ArrayList delayedTriggers = new ArrayList(); private final List waitingTriggers = new ArrayList(); - /** - * Clean up temporary triggers. - */ public final void cleanUpTemporaryTriggers() { final List absolutelyAllCards = Singletons.getModel().getGame().getCardsInGame(); for (final Card c : absolutelyAllCards) { @@ -80,34 +66,14 @@ public class TriggerHandler { } - /** - *

- * registerDelayedTrigger. - *

- * - * @param trig - * a {@link forge.card.trigger.Trigger} object. - */ public final void registerDelayedTrigger(final Trigger trig) { this.delayedTriggers.add(trig); } - /** - *

- * clearDelayedTrigger. - *

- */ public final void clearDelayedTrigger() { this.delayedTriggers.clear(); } - /** - *

- * clearDelayedTrigger. - *

- * @param card - * a card object. - */ public final void clearDelayedTrigger(Card card) { ArrayList deltrigs = new ArrayList(this.delayedTriggers); @@ -119,45 +85,14 @@ public class TriggerHandler { } - /** - *

- * suppressMode. - *

- * - * @param mode - * a {@link java.lang.String} object. - */ public final void suppressMode(final TriggerType mode) { this.suppressedModes.add(mode); } - /** - *

- * clearSuppression. - *

- * - * @param mode - * a {@link java.lang.String} object. - */ public final void clearSuppression(final TriggerType mode) { this.suppressedModes.remove(mode); } - /** - *

- * parseTrigger. - *

- * - * @param name - * a {@link java.lang.String} object. - * @param trigParse - * a {@link java.lang.String} object. - * @param host - * a {@link forge.Card} object. - * @param intrinsic - * a boolean. - * @return a {@link forge.card.trigger.Trigger} object. - */ public static Trigger parseTrigger(final String name, final String trigParse, final Card host, final boolean intrinsic) { final Trigger ret = TriggerHandler.parseTrigger(trigParse, host, intrinsic); @@ -165,37 +100,11 @@ public class TriggerHandler { return ret; } - /** - *

- * parseTrigger. - *

- * - * @param trigParse - * a {@link java.lang.String} object. - * @param host - * a {@link forge.Card} object. - * @param intrinsic - * a boolean. - * @return a {@link forge.card.trigger.Trigger} object. - */ public static Trigger parseTrigger(final String trigParse, final Card host, final boolean intrinsic) { final HashMap mapParams = TriggerHandler.parseParams(trigParse); return TriggerHandler.parseTrigger(mapParams, host, intrinsic); } - /** - *

- * parseTrigger. - *

- * - * @param mapParams - * a {@link java.util.HashMap} object. - * @param host - * a {@link forge.Card} object. - * @param intrinsic - * a boolean. - * @return a {@link forge.card.trigger.Trigger} object. - */ public static Trigger parseTrigger(final Map mapParams, final Card host, final boolean intrinsic) { Trigger ret = null; @@ -215,15 +124,6 @@ public class TriggerHandler { return ret; } - /** - *

- * parseParams. - *

- * - * @param trigParse - * a {@link java.lang.String} object. - * @return a {@link java.util.HashMap} object. - */ private static HashMap parseParams(final String trigParse) { final HashMap mapParams = new HashMap(); @@ -256,17 +156,6 @@ public class TriggerHandler { return mapParams; } - /** - *

- * runTrigger. - *

- * - * @param mode - * a {@link java.lang.String} object. - * @param runParams - * a {@link java.util.Map} object. - * @param forceHeldTriggers Force certain triggers to be added the waitingTriggers if stack isnt frozen - */ public final void runTrigger(final TriggerType mode, final Map runParams, boolean holdTrigger) { if (this.suppressedModes.contains(mode)) { return; @@ -401,19 +290,6 @@ public class TriggerHandler { // Checks if the conditions are right for a single trigger to go off, and // runs it if so. // Return true if the trigger went off, false otherwise. - /** - *

- * runSingleTrigger. - *

- * - * @param regtrig - * a {@link forge.card.trigger.Trigger} object. - * @param mode - * a {@link java.lang.String} object. - * @param runParams - * a {@link java.util.HashMap} object. - * @return false if trigger is not happening. - */ private boolean runSingleTrigger(final Trigger regtrig, final TriggerType mode, final Map runParams) { final Map triggerParams = regtrig.getMapParams(); final GameState game = Singletons.getModel().getGame(); @@ -558,12 +434,6 @@ public class TriggerHandler { private final ArrayList triggersAlwaysAccept = new ArrayList(); private final ArrayList triggersAlwaysDecline = new ArrayList(); - /** - * Sets the always accept trigger. - * - * @param trigID - * the new always accept trigger - */ public final void setAlwaysAcceptTrigger(final int trigID) { if (this.triggersAlwaysDecline.contains(trigID)) { this.triggersAlwaysDecline.remove((Object) trigID); @@ -574,12 +444,6 @@ public class TriggerHandler { } } - /** - * Sets the always decline trigger. - * - * @param trigID - * the new always decline trigger - */ public final void setAlwaysDeclineTrigger(final int trigID) { if (this.triggersAlwaysAccept.contains(trigID)) { this.triggersAlwaysAccept.remove((Object) trigID); @@ -590,42 +454,19 @@ public class TriggerHandler { } } - /** - * Sets the always ask trigger. - * - * @param trigID - * the new always ask trigger - */ public final void setAlwaysAskTrigger(final int trigID) { this.triggersAlwaysAccept.remove((Object) trigID); this.triggersAlwaysDecline.remove((Object) trigID); } - /** - * Checks if is always accepted. - * - * @param trigID - * the trig id - * @return true, if is always accepted - */ public final boolean isAlwaysAccepted(final int trigID) { return this.triggersAlwaysAccept.contains(trigID); } - /** - * Checks if is always declined. - * - * @param trigID - * the trig id - * @return true, if is always declined - */ public final boolean isAlwaysDeclined(final int trigID) { return this.triggersAlwaysDecline.contains(trigID); } - /** - * Clear trigger settings. - */ public final void clearTriggerSettings() { this.triggersAlwaysAccept.clear(); this.triggersAlwaysDecline.clear(); diff --git a/src/main/java/forge/card/trigger/TriggerLandPlayed.java b/src/main/java/forge/card/trigger/TriggerLandPlayed.java index c96cf976dc4..9a040810282 100644 --- a/src/main/java/forge/card/trigger/TriggerLandPlayed.java +++ b/src/main/java/forge/card/trigger/TriggerLandPlayed.java @@ -19,7 +19,6 @@ package forge.card.trigger; import java.util.Map; - import forge.Card; import forge.card.spellability.SpellAbility; diff --git a/src/main/java/forge/card/trigger/TriggerSpellAbilityCast.java b/src/main/java/forge/card/trigger/TriggerSpellAbilityCast.java index eb67ab7087e..4ff63ed8b13 100644 --- a/src/main/java/forge/card/trigger/TriggerSpellAbilityCast.java +++ b/src/main/java/forge/card/trigger/TriggerSpellAbilityCast.java @@ -17,9 +17,8 @@ */ package forge.card.trigger; -import forge.Singletons; - import forge.Card; +import forge.Singletons; import forge.card.cost.Cost; import forge.card.spellability.SpellAbility; import forge.card.spellability.SpellAbilityStackInstance; diff --git a/src/main/java/forge/control/FControl.java b/src/main/java/forge/control/FControl.java index 583f7d6e2f2..c4310a85786 100644 --- a/src/main/java/forge/control/FControl.java +++ b/src/main/java/forge/control/FControl.java @@ -46,7 +46,6 @@ import forge.gui.match.VMatchUI; import forge.gui.match.controllers.CDock; import forge.gui.toolbox.CardFaceSymbols; import forge.gui.toolbox.FSkin; -import forge.properties.ForgeProps; import forge.properties.NewConstants; import forge.quest.data.QuestPreferences.QPref; import forge.quest.io.QuestDataIO; @@ -152,13 +151,12 @@ public enum FControl { // Does not use progress bar, due to be deprecated with battlefield refactoring. CardFaceSymbols.loadImages(); - this.shortcuts = KeyboardShortcuts.attachKeyboardShortcuts(); this.display = FView.SINGLETON_INSTANCE.getLpnDocument(); // Preload quest data if present - final File dirQuests = ForgeProps.getFile(NewConstants.Quest.DATA_DIR); - final String questname = Singletons.getModel().getQuestPreferences().getPreference(QPref.CURRENT_QUEST); + final File dirQuests = new File(NewConstants.QUEST_SAVE_DIR); + final String questname = Singletons.getModel().getQuestPreferences().getPref(QPref.CURRENT_QUEST); final File data = new File(dirQuests.getPath(), questname); if (data.exists()) { Singletons.getModel().getQuest().load(QuestDataIO.loadData(data)); diff --git a/src/main/java/forge/control/input/InputAttack.java b/src/main/java/forge/control/input/InputAttack.java index ebc322595ea..74f47b2acd6 100644 --- a/src/main/java/forge/control/input/InputAttack.java +++ b/src/main/java/forge/control/input/InputAttack.java @@ -22,7 +22,6 @@ import java.util.List; import com.google.common.collect.Iterables; import forge.Card; - import forge.CardPredicates; import forge.Singletons; import forge.game.phase.CombatUtil; diff --git a/src/main/java/forge/control/input/InputBlock.java b/src/main/java/forge/control/input/InputBlock.java index 108013f8e63..b370740db37 100644 --- a/src/main/java/forge/control/input/InputBlock.java +++ b/src/main/java/forge/control/input/InputBlock.java @@ -22,7 +22,6 @@ import java.util.HashMap; import java.util.List; import forge.Card; - import forge.Singletons; import forge.control.FControl; import forge.game.GameState; diff --git a/src/main/java/forge/control/input/InputPayManaSimple.java b/src/main/java/forge/control/input/InputPayManaSimple.java index ddab1edd224..c4cdbc52b98 100644 --- a/src/main/java/forge/control/input/InputPayManaSimple.java +++ b/src/main/java/forge/control/input/InputPayManaSimple.java @@ -19,7 +19,6 @@ package forge.control.input; import forge.Card; import forge.Singletons; -//import forge.Singletons; import forge.card.mana.ManaCostBeingPaid; import forge.card.spellability.SpellAbility; import forge.game.GameState; @@ -31,14 +30,6 @@ import forge.view.ButtonUtil; //pays the cost of a card played from the player's hand //the card is removed from the players hand if the cost is paid //CANNOT be used for ABILITIES -/** - *

- * Input_PayManaCost class. - *

- * - * @author Forge - * @version $Id$ - */ public class InputPayManaSimple extends InputPayManaBase { // anything that uses this should be converted to Ability_Cost /** Constant serialVersionUID=3467312982164195091L. */ diff --git a/src/main/java/forge/control/input/InputPayManaX.java b/src/main/java/forge/control/input/InputPayManaX.java index 50a0029fbc1..9edb2ec4090 100644 --- a/src/main/java/forge/control/input/InputPayManaX.java +++ b/src/main/java/forge/control/input/InputPayManaX.java @@ -6,10 +6,10 @@ import forge.card.cost.CostPartMana; import forge.card.cost.CostPayment; import forge.card.mana.ManaCostBeingPaid; import forge.card.spellability.SpellAbility; +import forge.game.GameState; import forge.game.zone.ZoneType; import forge.gui.match.CMatchUI; import forge.view.ButtonUtil; -import forge.game.GameState; public class InputPayManaX extends InputPayManaBase { private static final long serialVersionUID = -6900234444347364050L; diff --git a/src/main/java/forge/control/input/InputPayReturnCost.java b/src/main/java/forge/control/input/InputPayReturnCost.java index 9764a89eccf..7793f08336e 100644 --- a/src/main/java/forge/control/input/InputPayReturnCost.java +++ b/src/main/java/forge/control/input/InputPayReturnCost.java @@ -20,7 +20,6 @@ package forge.control.input; import java.util.List; import forge.Card; - import forge.CardLists; import forge.Command; import forge.Singletons; diff --git a/src/main/java/forge/control/input/InputPaySacCost.java b/src/main/java/forge/control/input/InputPaySacCost.java index 2a6100fc79c..8141755d7ae 100644 --- a/src/main/java/forge/control/input/InputPaySacCost.java +++ b/src/main/java/forge/control/input/InputPaySacCost.java @@ -20,7 +20,6 @@ package forge.control.input; import java.util.List; import forge.Card; - import forge.CardLists; import forge.Command; import forge.Singletons; diff --git a/src/main/java/forge/deck/CardCollections.java b/src/main/java/forge/deck/CardCollections.java index 556a291c4e6..23c503818c1 100644 --- a/src/main/java/forge/deck/CardCollections.java +++ b/src/main/java/forge/deck/CardCollections.java @@ -22,6 +22,7 @@ import java.io.File; import forge.deck.io.DeckGroupSerializer; import forge.deck.io.DeckSerializer; import forge.deck.io.OldDeckParser; +import forge.properties.NewConstants; import forge.util.storage.IStorage; import forge.util.storage.StorageImmediatelySerialized; @@ -42,18 +43,18 @@ public class CardCollections { * * @param file the file */ - public CardCollections(final File file) { - this.constructed = new StorageImmediatelySerialized(new DeckSerializer(new File(file, "constructed"), true)); - this.draft = new StorageImmediatelySerialized(new DeckGroupSerializer(new File(file, "draft"))); - this.sealed = new StorageImmediatelySerialized(new DeckGroupSerializer(new File(file, "sealed"))); - this.cube = new StorageImmediatelySerialized(new DeckSerializer(new File(file, "cube"))); - this.scheme = new StorageImmediatelySerialized(new DeckSerializer(new File(file, "scheme"))); - this.plane = new StorageImmediatelySerialized(new DeckSerializer(new File(file, "plane"))); + public CardCollections() { + this.constructed = new StorageImmediatelySerialized(new DeckSerializer(new File(NewConstants.DECK_CONSTRUCTED_DIR), true)); + this.draft = new StorageImmediatelySerialized(new DeckGroupSerializer(new File(NewConstants.DECK_DRAFT_DIR))); + this.sealed = new StorageImmediatelySerialized(new DeckGroupSerializer(new File(NewConstants.DECK_SEALED_DIR))); + this.cube = new StorageImmediatelySerialized(new DeckSerializer(new File(NewConstants.DECK_CUBE_DIR))); + this.scheme = new StorageImmediatelySerialized(new DeckSerializer(new File(NewConstants.DECK_SCHEME_DIR))); + this.plane = new StorageImmediatelySerialized(new DeckSerializer(new File(NewConstants.DECK_PLANE_DIR))); System.out.printf("Read decks: %d constructed, %d sealed, %d draft, %d cubes, %d scheme, %d planar.%n", constructed.getCount(), sealed.getCount(), draft.getCount(), cube.getCount(), scheme.getCount(), plane.getCount()); // remove this after most people have been switched to new layout - final OldDeckParser oldParser = new OldDeckParser(file, this.constructed, this.draft, this.sealed, this.cube); + final OldDeckParser oldParser = new OldDeckParser(this.constructed, this.draft, this.sealed, this.cube); oldParser.tryParse(); } diff --git a/src/main/java/forge/deck/CardPool.java b/src/main/java/forge/deck/CardPool.java index 1c307ef6cb2..b66d50372e6 100644 --- a/src/main/java/forge/deck/CardPool.java +++ b/src/main/java/forge/deck/CardPool.java @@ -22,7 +22,6 @@ import java.util.Map.Entry; import java.util.NoSuchElementException; import forge.Card; - import forge.item.CardDb; import forge.item.CardPrinted; import forge.item.ItemPool; diff --git a/src/main/java/forge/deck/Deck.java b/src/main/java/forge/deck/Deck.java index cf0a3518e6d..7d73c5b87e6 100644 --- a/src/main/java/forge/deck/Deck.java +++ b/src/main/java/forge/deck/Deck.java @@ -30,7 +30,6 @@ import java.util.TreeSet; import java.util.regex.Matcher; import java.util.regex.Pattern; - import org.apache.commons.lang3.StringUtils; import com.google.common.base.Function; @@ -54,19 +53,11 @@ import forge.util.FileUtil; * The set of MTG legal cards that become player's library when the game starts. * Any other data is not part of a deck and should be stored elsewhere. Current * fields allowed for deck metadata are Name, Title, Description and Deck Type. - * - * @author Forge - * @version $Id$ */ +@SuppressWarnings("serial") public class Deck extends DeckBase implements Iterable> { - /** - * - */ - private static final long serialVersionUID = -7478025567887481994L; - private final Map parts = new EnumMap(DeckSection.class); - - private final Set tags = new TreeSet(String.CASE_INSENSITIVE_ORDER); + private final Set tags = new TreeSet(String.CASE_INSENSITIVE_ORDER); // gameType is from Constant.GameType, like GameType.Regular /** diff --git a/src/main/java/forge/deck/DeckSection.java b/src/main/java/forge/deck/DeckSection.java index b0716ab6647..8e3772a7549 100644 --- a/src/main/java/forge/deck/DeckSection.java +++ b/src/main/java/forge/deck/DeckSection.java @@ -1,11 +1,6 @@ package forge.deck; -/** - * TODO: Write javadoc for this type. - * - */ public enum DeckSection { - Avatar(1), Commander(1), Main(60), @@ -24,12 +19,14 @@ public enum DeckSection { if (value == null) { return null; } + final String valToCompate = value.trim(); for (final DeckSection v : DeckSection.values()) { if (v.name().compareToIgnoreCase(valToCompate) == 0) { return v; } } + return null; } } diff --git a/src/main/java/forge/deck/DeckgenUtil.java b/src/main/java/forge/deck/DeckgenUtil.java index e370b055412..eebc05c4ca9 100644 --- a/src/main/java/forge/deck/DeckgenUtil.java +++ b/src/main/java/forge/deck/DeckgenUtil.java @@ -9,6 +9,7 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Random; + import javax.swing.JList; import javax.swing.JOptionPane; diff --git a/src/main/java/forge/deck/generate/Generate2ColorDeck.java b/src/main/java/forge/deck/generate/Generate2ColorDeck.java index 046b6f2f7b9..1e71bb96eea 100644 --- a/src/main/java/forge/deck/generate/Generate2ColorDeck.java +++ b/src/main/java/forge/deck/generate/Generate2ColorDeck.java @@ -20,14 +20,12 @@ package forge.deck.generate; import java.util.Arrays; import java.util.List; -import forge.card.MagicColor; import forge.card.ColorSet; +import forge.card.MagicColor; import forge.deck.generate.GenerateDeckUtil.FilterCMC; -import forge.error.BugReporter; import forge.game.player.PlayerType; import forge.item.CardPrinted; import forge.item.ItemPoolView; -import forge.properties.ForgeProps; /** *

@@ -101,9 +99,6 @@ public class Generate2ColorDeck extends GenerateColoredDeckBase { adjustDeckSize(size); tmpDeck.append("DeckSize:").append(tDeck.countAll()).append("\n"); - if (ForgeProps.getProperty("showdeck/2color", "false").equals("true")) { - BugReporter.reportBug(tmpDeck.toString()); - } return tDeck; } diff --git a/src/main/java/forge/deck/generate/Generate3ColorDeck.java b/src/main/java/forge/deck/generate/Generate3ColorDeck.java index d0d6c68b548..bc1e7c7aac6 100644 --- a/src/main/java/forge/deck/generate/Generate3ColorDeck.java +++ b/src/main/java/forge/deck/generate/Generate3ColorDeck.java @@ -20,14 +20,12 @@ package forge.deck.generate; import java.util.Arrays; import java.util.List; -import forge.card.MagicColor; import forge.card.ColorSet; +import forge.card.MagicColor; import forge.deck.generate.GenerateDeckUtil.FilterCMC; -import forge.error.BugReporter; import forge.game.player.PlayerType; import forge.item.CardPrinted; import forge.item.ItemPoolView; -import forge.properties.ForgeProps; /** *

@@ -99,9 +97,6 @@ public class Generate3ColorDeck extends GenerateColoredDeckBase { adjustDeckSize(size); tmpDeck.append("DeckSize:").append(tDeck.countAll()).append("\n"); - if (ForgeProps.getProperty("showdeck/3color", "false").equals("true")) { - BugReporter.reportBug(tmpDeck.toString()); - } return tDeck; } diff --git a/src/main/java/forge/deck/generate/Generate5ColorDeck.java b/src/main/java/forge/deck/generate/Generate5ColorDeck.java index 35ac5e6b08d..10f9475517e 100644 --- a/src/main/java/forge/deck/generate/Generate5ColorDeck.java +++ b/src/main/java/forge/deck/generate/Generate5ColorDeck.java @@ -19,13 +19,12 @@ package forge.deck.generate; import java.util.Arrays; import java.util.List; + import forge.card.ColorSet; import forge.deck.generate.GenerateDeckUtil.FilterCMC; -import forge.error.BugReporter; import forge.game.player.PlayerType; import forge.item.CardPrinted; import forge.item.ItemPoolView; -import forge.properties.ForgeProps; /** *

@@ -88,9 +87,6 @@ public class Generate5ColorDeck extends GenerateColoredDeckBase { adjustDeckSize(size); tmpDeck.append("DeckSize:").append(tDeck.countAll()).append("\n"); - if (ForgeProps.getProperty("showdeck/5color", "false").equals("true")) { - BugReporter.reportBug(tmpDeck.toString()); - } return tDeck; } diff --git a/src/main/java/forge/deck/generate/GenerateColoredDeckBase.java b/src/main/java/forge/deck/generate/GenerateColoredDeckBase.java index 0807dcb8b83..138366f0b18 100644 --- a/src/main/java/forge/deck/generate/GenerateColoredDeckBase.java +++ b/src/main/java/forge/deck/generate/GenerateColoredDeckBase.java @@ -28,12 +28,13 @@ import java.util.TreeMap; import com.google.common.base.Predicate; import com.google.common.base.Predicates; import com.google.common.collect.Iterables; + import forge.Constant; import forge.Singletons; -import forge.card.MagicColor; -import forge.card.ColorSet; -import forge.card.CardRulesPredicates; import forge.card.CardRules; +import forge.card.CardRulesPredicates; +import forge.card.ColorSet; +import forge.card.MagicColor; import forge.deck.generate.GenerateDeckUtil.FilterCMC; import forge.game.player.PlayerType; import forge.item.CardDb; @@ -67,19 +68,6 @@ public abstract class GenerateColoredDeckBase { StringBuilder tmpDeck = new StringBuilder(); -// protected final float landsPercentage = 0.42f; -// protected float creatPercentage = 0.34f; -// protected float spellPercentage = 0.24f; - /** - *

- * Constructor for Generate2ColorDeck. - *

- * - * @param clr1 - * a {@link java.lang.String} object. - * @param clr2 - * a {@link java.lang.String} object. - */ public GenerateColoredDeckBase() { this.maxDuplicates = Singletons.getModel().getPreferences().getPrefBoolean(FPref.DECKGEN_SINGLETONS) ? 1 : 4; tDeck = new ItemPool(CardPrinted.class); diff --git a/src/main/java/forge/deck/generate/GenerateDeckUtil.java b/src/main/java/forge/deck/generate/GenerateDeckUtil.java index 797e6a9f741..92df4b962dc 100644 --- a/src/main/java/forge/deck/generate/GenerateDeckUtil.java +++ b/src/main/java/forge/deck/generate/GenerateDeckUtil.java @@ -25,9 +25,9 @@ import java.util.Map.Entry; import com.google.common.base.Predicate; -import forge.card.MagicColor; -import forge.card.ColorSet; import forge.card.CardRules; +import forge.card.ColorSet; +import forge.card.MagicColor; import forge.card.mana.ManaCost; /** diff --git a/src/main/java/forge/deck/generate/GenerateMonoColorDeck.java b/src/main/java/forge/deck/generate/GenerateMonoColorDeck.java index 29244405ef5..6de68421a63 100644 --- a/src/main/java/forge/deck/generate/GenerateMonoColorDeck.java +++ b/src/main/java/forge/deck/generate/GenerateMonoColorDeck.java @@ -20,14 +20,12 @@ package forge.deck.generate; import java.util.Arrays; import java.util.List; -import forge.card.MagicColor; import forge.card.ColorSet; +import forge.card.MagicColor; import forge.deck.generate.GenerateDeckUtil.FilterCMC; -import forge.error.BugReporter; import forge.game.player.PlayerType; import forge.item.CardPrinted; import forge.item.ItemPoolView; -import forge.properties.ForgeProps; /** *

@@ -90,9 +88,6 @@ public class GenerateMonoColorDeck extends GenerateColoredDeckBase { adjustDeckSize(size); tmpDeck.append("DeckSize:").append(tDeck.countAll()).append("\n"); - if (ForgeProps.getProperty("showdeck/1color", "false").equals("true")) { - BugReporter.reportBug(tmpDeck.toString()); - } return tDeck; } diff --git a/src/main/java/forge/deck/io/DeckSerializer.java b/src/main/java/forge/deck/io/DeckSerializer.java index 80831732fc0..e9e0d23727c 100644 --- a/src/main/java/forge/deck/io/DeckSerializer.java +++ b/src/main/java/forge/deck/io/DeckSerializer.java @@ -34,8 +34,8 @@ import javax.swing.filechooser.FileFilter; import org.apache.commons.lang3.StringUtils; import forge.deck.Deck; -import forge.gui.download.GuiDownloadSetPicturesLQ; import forge.item.CardPrinted; +import forge.properties.NewConstants; import forge.util.FileSection; import forge.util.FileSectionManual; import forge.util.FileUtil; @@ -48,27 +48,15 @@ import freemarker.template.TemplateException; /** * This class knows how to make a file out of a deck object and vice versa. - * */ public class DeckSerializer extends StorageReaderFolder implements IItemSerializer { - - /** - * Instantiates a new deck serializer. - * - * @param deckDir0 the deck dir0 - */ private final boolean moveWronglyNamedDecks; private static final String FILE_EXTENSION = ".dck"; - /** @param deckDir0 {@link java.io.File} */ public DeckSerializer(final File deckDir0) { this(deckDir0, false); } - /** - * @param deckDir0 {@link java.io.File} - * @param moveWrongDecks boolean - */ public DeckSerializer(final File deckDir0, boolean moveWrongDecks) { super(deckDir0, Deck.FN_NAME_SELECTOR); moveWronglyNamedDecks = moveWrongDecks; @@ -149,17 +137,11 @@ public class DeckSerializer extends StorageReaderFolder implements IItemSe final List list = new ArrayList(); for (final Entry card : d.getMain()) { // System.out.println(card.getSets().get(card.getSets().size() - 1).URL); - for( int i = card.getValue().intValue(); i > 0; --i ) { - String url = GuiDownloadSetPicturesLQ.getCardPictureUrl(card.getKey(), card.getKey().getName()); + for (int i = card.getValue().intValue(); i > 0; --i ) { + String url = NewConstants.URL_PIC_DOWNLOAD + card.getKey().getImageUrlPath(false); list.add(url); } } - /* - * List nameList = new ArrayList(); for (Card card : - * d.getMain().toForgeCardList().toArray()) { - * //System.out.println(card.getSets().get(card.getSets().size() - - * 1).URL); nameList.add(card.getName()); } - */ final TreeMap map = new TreeMap(); for (final Entry entry : d.getMain().getOrderedList()) { @@ -173,11 +155,9 @@ public class DeckSerializer extends StorageReaderFolder implements IItemSe root.put("height", height); root.put("width", width); root.put("cardlistWidth", width - 11); - // root.put("nameList", nameList); root.put("cardList", map); /* Merge data-model with template */ - // StringWriter sw = new StringWriter(); temp.process(root, out); out.flush(); } catch (final IOException e) { @@ -187,30 +167,10 @@ public class DeckSerializer extends StorageReaderFolder implements IItemSe } } - /** - *

- * writeDeck. - *

- * - * @param d - * a {@link forge.deck.Deck} object. - * @param f - * a {@link java.io.File} object. - */ public static void writeDeck(final Deck d, final File f) { FileUtil.writeFile(f, d.save()); } - /** - *

- * Write deck to HTML. - *

- * - * @param d - * a {@link forge.deck.Deck} object. - * @param f - * a {@link java.io.File} object. - */ public static void writeDeckHtml(final Deck d, final File f) { try { final BufferedWriter writer = new BufferedWriter(new FileWriter(f)); @@ -221,43 +181,20 @@ public class DeckSerializer extends StorageReaderFolder implements IItemSe } } - /* - * (non-Javadoc) - * - * @see forge.deck.IDeckSerializer#save(forge.item.CardCollectionBase, - * java.io.File) - */ @Override public void save(final Deck unit) { FileUtil.writeFile(this.makeFileFor(unit), unit.save()); } - /* - * (non-Javadoc) - * - * @see forge.deck.IDeckSerializer#erase(forge.item.CardCollectionBase, - * java.io.File) - */ @Override public void erase(final Deck unit) { this.makeFileFor(unit).delete(); } - /** - * Make file name. - * - * @param deck the deck - * @return a File - */ public File makeFileFor(final Deck deck) { return new File(this.getDirectory(), deck.getBestFileName() + FILE_EXTENSION); } - /* - * (non-Javadoc) - * - * @see forge.deck.io.DeckSerializerBase#read(java.io.File) - */ @Override protected Deck read(final File file) { final Map> sections = FileSection.parseSections(FileUtil.readFile(file)); @@ -269,11 +206,6 @@ public class DeckSerializer extends StorageReaderFolder implements IItemSe return result; } - /** - * - * @param file {@link java.io.File} - * @param result {@link forge.deck.Deck} - */ private void adjustFileLocation(final File file, final Deck result) { if (result == null) { file.delete(); @@ -285,23 +217,11 @@ public class DeckSerializer extends StorageReaderFolder implements IItemSe } } - /* - * (non-Javadoc) - * - * @see forge.deck.io.DeckSerializerBase#getFileFilter() - */ @Override protected FilenameFilter getFileFilter() { return DeckSerializer.DCK_FILE_FILTER; } - /** - * Read deck metadata. - * - * @param map the map - * @param canThrow the can throw - * @return the deck file header - */ public static DeckFileHeader readDeckMetadata(final Map> map, final boolean canThrow) { if (map == null) { return null; @@ -323,5 +243,4 @@ public class DeckSerializer extends StorageReaderFolder implements IItemSe return null; } - } diff --git a/src/main/java/forge/deck/io/OldDeckParser.java b/src/main/java/forge/deck/io/OldDeckParser.java index 2958123c5f4..800676d0149 100644 --- a/src/main/java/forge/deck/io/OldDeckParser.java +++ b/src/main/java/forge/deck/io/OldDeckParser.java @@ -33,6 +33,7 @@ import org.apache.commons.lang3.tuple.Pair; import forge.deck.Deck; import forge.deck.DeckGroup; import forge.game.player.PlayerType; +import forge.properties.NewConstants; import forge.util.FileSection; import forge.util.FileUtil; import forge.util.storage.IStorage; @@ -60,9 +61,9 @@ public class OldDeckParser { * @param sealed2 the sealed2 * @param cube2 the cube2 */ - public OldDeckParser(final File file, final IStorage constructed2, final IStorage draft2, + public OldDeckParser(final IStorage constructed2, final IStorage draft2, final IStorage sealed2, final IStorage cube2) { - this.deckDir = file; + this.deckDir = new File(NewConstants.DECK_BASE_DIR); this.sealed = sealed2; this.constructed = constructed2; this.cube = cube2; diff --git a/src/main/java/forge/error/BugReporter.java b/src/main/java/forge/error/BugReporter.java index 002a1dc15c4..589a7752a8b 100644 --- a/src/main/java/forge/error/BugReporter.java +++ b/src/main/java/forge/error/BugReporter.java @@ -54,8 +54,6 @@ import forge.gui.WrapLayout; import forge.gui.toolbox.FHyperlink; import forge.gui.toolbox.FLabel; import forge.model.BuildInfo; -import forge.properties.ForgeProps; -import forge.properties.NewConstants; /** * The class ErrorViewer. Enables showing and saving error messages that @@ -312,7 +310,7 @@ public class BugReporter { bw.close(); } catch (final IOException ex) { JOptionPane.showMessageDialog(area.getTopLevelAncestor(), - ForgeProps.getLocalized(NewConstants.Lang.ErrorViewer.ERRORS.SAVE_MESSAGE), + "There was an error during saving. Sorry!\n" + ex, "Error saving file", JOptionPane.ERROR_MESSAGE); } } diff --git a/src/main/java/forge/game/GameAction.java b/src/main/java/forge/game/GameAction.java index 02442025407..eb08095bcc4 100644 --- a/src/main/java/forge/game/GameAction.java +++ b/src/main/java/forge/game/GameAction.java @@ -22,9 +22,11 @@ import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; + import com.google.common.base.Predicate; import com.google.common.base.Predicates; import com.google.common.collect.Iterables; + import forge.Card; import forge.CardCharacteristicName; import forge.CardLists; diff --git a/src/main/java/forge/game/GameActionPlay.java b/src/main/java/forge/game/GameActionPlay.java index 6bb7c2b6687..391259925ed 100644 --- a/src/main/java/forge/game/GameActionPlay.java +++ b/src/main/java/forge/game/GameActionPlay.java @@ -17,9 +17,9 @@ import forge.card.ability.ApiType; import forge.card.ability.effects.CharmEffect; import forge.card.cost.Cost; import forge.card.cost.CostPayment; +import forge.card.mana.ManaCost; import forge.card.mana.ManaCostBeingPaid; import forge.card.mana.ManaCostShard; -import forge.card.mana.ManaCost; import forge.card.spellability.SpellAbility; import forge.card.spellability.SpellAbilityRequirements; import forge.card.spellability.Target; diff --git a/src/main/java/forge/game/GameActionUtil.java b/src/main/java/forge/game/GameActionUtil.java index 1385b27a16f..5ff3c9f4adb 100644 --- a/src/main/java/forge/game/GameActionUtil.java +++ b/src/main/java/forge/game/GameActionUtil.java @@ -29,12 +29,12 @@ import com.google.common.collect.Lists; import forge.Card; import forge.CardLists; import forge.CardPredicates; +import forge.CardPredicates.Presets; import forge.CardUtil; import forge.Command; import forge.Constant; import forge.CounterType; import forge.Singletons; -import forge.CardPredicates.Presets; import forge.card.ability.AbilityFactory; import forge.card.ability.AbilityUtils; import forge.card.ability.ApiType; @@ -44,8 +44,8 @@ import forge.card.cost.CostDamage; import forge.card.cost.CostDiscard; import forge.card.cost.CostExile; import forge.card.cost.CostPart; -import forge.card.cost.CostPayLife; import forge.card.cost.CostPartMana; +import forge.card.cost.CostPayLife; import forge.card.cost.CostPutCounter; import forge.card.cost.CostRemoveCounter; import forge.card.cost.CostReturn; diff --git a/src/main/java/forge/game/GameNew.java b/src/main/java/forge/game/GameNew.java index 28f4029ee9a..a9a487f61e1 100644 --- a/src/main/java/forge/game/GameNew.java +++ b/src/main/java/forge/game/GameNew.java @@ -19,12 +19,11 @@ import com.google.common.collect.Lists; import forge.Card; import forge.CardLists; import forge.CardPredicates; -import forge.CardUtil; import forge.Singletons; import forge.card.trigger.TriggerHandler; import forge.card.trigger.TriggerType; -import forge.deck.Deck; import forge.deck.CardPool; +import forge.deck.Deck; import forge.deck.DeckSection; import forge.game.event.FlipCoinEvent; import forge.game.phase.PhaseHandler; @@ -61,8 +60,7 @@ public class GameNew { if (preferences.getPrefBoolean(FPref.UI_RANDOM_CARD_ART)) { final int cntVariants = cardPrinted.getRules().getEditionInfo(cardPrinted.getEdition()).getCopiesCount(); if (cntVariants > 1) { - card.setRandomPicture(generator.nextInt(cntVariants - 1) + 1); - card.setImageFilename(CardUtil.buildFilename(card)); + card.setImageKey(cardPrinted.getImageKey(false, generator.nextInt(cntVariants), true)); } } diff --git a/src/main/java/forge/game/MatchController.java b/src/main/java/forge/game/MatchController.java index 23901a41148..e0dd57a45dc 100644 --- a/src/main/java/forge/game/MatchController.java +++ b/src/main/java/forge/game/MatchController.java @@ -7,8 +7,8 @@ import java.util.List; import java.util.Map; import java.util.Map.Entry; -import forge.Singletons; import forge.Constant.Preferences; +import forge.Singletons; import forge.control.FControl; import forge.control.input.InputControl; import forge.deck.Deck; @@ -32,8 +32,6 @@ import forge.gui.match.controllers.CStack; import forge.gui.match.nonsingleton.VField; import forge.gui.match.views.VAntes; import forge.properties.ForgePreferences.FPref; -import forge.properties.ForgeProps; -import forge.properties.NewConstants.Lang.GuiWinLose.WinLoseText; import forge.util.Aggregates; /** @@ -96,7 +94,7 @@ public class MatchController { // add result entries to the game log LobbyPlayer human = Singletons.getControl().getPlayer().getLobbyPlayer(); - String title = ForgeProps.getLocalized(result.isWinner(human) ? WinLoseText.WIN : WinLoseText.LOSE); + String title = result.isWinner(human) ? "You Win" : "You Lost"; game.getGameLog().add("Final", title, 0); List outcomes = new ArrayList(); @@ -109,8 +107,7 @@ public class MatchController { int humanWins = getGamesWonBy(human); int humanLosses = getPlayedGames().size() - humanWins; - String statsSummary = ForgeProps.getLocalized(WinLoseText.WON) + humanWins - + ForgeProps.getLocalized(WinLoseText.LOST) + humanLosses; + String statsSummary = "Won: " + humanWins + ", Lost: " + humanLosses; game.getGameLog().add("Final", statsSummary, 0); diff --git a/src/main/java/forge/game/PlanarDice.java b/src/main/java/forge/game/PlanarDice.java index e5be5b00ce5..80d9bde54f3 100644 --- a/src/main/java/forge/game/PlanarDice.java +++ b/src/main/java/forge/game/PlanarDice.java @@ -1,6 +1,7 @@ package forge.game; import java.util.HashMap; + import forge.Singletons; import forge.card.trigger.TriggerType; import forge.game.player.Player; diff --git a/src/main/java/forge/game/ai/AiAttackController.java b/src/main/java/forge/game/ai/AiAttackController.java index e2276310d9a..a3fdf7afc39 100644 --- a/src/main/java/forge/game/ai/AiAttackController.java +++ b/src/main/java/forge/game/ai/AiAttackController.java @@ -24,7 +24,6 @@ import java.util.Random; import com.google.common.base.Predicate; import forge.Card; - import forge.CardLists; import forge.CounterType; import forge.GameEntity; diff --git a/src/main/java/forge/game/ai/AiController.java b/src/main/java/forge/game/ai/AiController.java index e9cdcd46446..3db947596de 100644 --- a/src/main/java/forge/game/ai/AiController.java +++ b/src/main/java/forge/game/ai/AiController.java @@ -30,11 +30,10 @@ import com.google.common.collect.Iterables; import forge.Card; import forge.CardLists; import forge.CardPredicates; -import forge.GameEntity; import forge.CardPredicates.Presets; import forge.Constant; +import forge.GameEntity; import forge.Singletons; - import forge.card.ability.ApiType; import forge.card.cardfactory.CardFactoryUtil; import forge.card.cost.CostDiscard; diff --git a/src/main/java/forge/game/ai/ComputerUtil.java b/src/main/java/forge/game/ai/ComputerUtil.java index 61194d3f465..ae723cd7071 100644 --- a/src/main/java/forge/game/ai/ComputerUtil.java +++ b/src/main/java/forge/game/ai/ComputerUtil.java @@ -22,7 +22,6 @@ import java.util.Collections; import java.util.List; import java.util.Random; - import com.google.common.base.Predicate; import com.google.common.collect.Iterables; @@ -37,8 +36,8 @@ import forge.card.ability.ApiType; import forge.card.ability.effects.CharmEffect; import forge.card.cardfactory.CardFactoryUtil; import forge.card.cost.Cost; -import forge.card.cost.CostPartMana; import forge.card.cost.CostPart; +import forge.card.cost.CostPartMana; import forge.card.cost.CostPayment; import forge.card.cost.CostUtil; import forge.card.mana.ManaCost; diff --git a/src/main/java/forge/game/ai/ComputerUtilBlock.java b/src/main/java/forge/game/ai/ComputerUtilBlock.java index 49ddea84e56..85701996508 100644 --- a/src/main/java/forge/game/ai/ComputerUtilBlock.java +++ b/src/main/java/forge/game/ai/ComputerUtilBlock.java @@ -24,7 +24,6 @@ import com.google.common.base.Predicate; import com.google.common.base.Predicates; import forge.Card; - import forge.CardLists; import forge.CardPredicates; import forge.CounterType; diff --git a/src/main/java/forge/game/ai/ComputerUtilMana.java b/src/main/java/forge/game/ai/ComputerUtilMana.java index cf8f1572d65..6d36605b3d2 100644 --- a/src/main/java/forge/game/ai/ComputerUtilMana.java +++ b/src/main/java/forge/game/ai/ComputerUtilMana.java @@ -19,10 +19,10 @@ import forge.card.ability.AbilityUtils; import forge.card.ability.ApiType; import forge.card.cost.Cost; import forge.card.cost.CostPayment; +import forge.card.mana.ManaCost; import forge.card.mana.ManaCostBeingPaid; import forge.card.mana.ManaCostShard; import forge.card.mana.ManaPool; -import forge.card.mana.ManaCost; import forge.card.spellability.AbilityManaPart; import forge.card.spellability.AbilitySub; import forge.card.spellability.SpellAbility; diff --git a/src/main/java/forge/game/limited/BoosterDraft.java b/src/main/java/forge/game/limited/BoosterDraft.java index a20e2d6851f..abbfb7a219f 100644 --- a/src/main/java/forge/game/limited/BoosterDraft.java +++ b/src/main/java/forge/game/limited/BoosterDraft.java @@ -30,7 +30,6 @@ import javax.swing.JOptionPane; import com.google.common.base.Function; - import forge.Card; import forge.Constant.Preferences; import forge.Singletons; @@ -45,7 +44,6 @@ import forge.item.CardPrinted; import forge.item.IPaperCard; import forge.item.ItemPool; import forge.item.ItemPoolView; -import forge.properties.ForgeProps; import forge.properties.NewConstants; import forge.util.FileUtil; import forge.util.HttpUtil; @@ -374,30 +372,18 @@ public final class BoosterDraft implements IBoosterDraft { /** This will upload drafting picks to cardforge HQ. */ @Override public void finishedDrafting() { - if (Preferences.UPLOAD_DRAFT) { - if (this.draftPicks.size() > 1) { - final ArrayList outDraftData = new ArrayList(); - - for (final Entry key : this.draftPicks.entrySet()) { - outDraftData.add(key.getValue() + "|" + key.getKey()); - } - Collections.sort(outDraftData); - FileUtil.writeFile("res/draft/tmpDraftData.txt", outDraftData); - - final HttpUtil poster = new HttpUtil(); - String url = ForgeProps.getProperty(NewConstants.CARDFORGE_URL) + "/draftAI/submitDraftData.php?fmt="; - poster.upload(url + this.draftFormat, "res/draft/tmpDraftData.txt"); - } + if (!Preferences.UPLOAD_DRAFT || 1 >= draftPicks.size()) { + return; } + + ArrayList outDraftData = new ArrayList(); + for (Entry key : draftPicks.entrySet()) { + outDraftData.add(key.getValue() + "|" + key.getKey()); + } + Collections.sort(outDraftData); + HttpUtil.upload(NewConstants.URL_DRAFT_UPLOAD + "?fmt=" + draftFormat, outDraftData); } - /** - *

- * getSetCombos. - *

- * - * @return an ArrayList of the set choices. - */ private ArrayList getSetCombos(final String[] sets) { ArrayList setCombos = new ArrayList(); if (sets.length >= 2) { diff --git a/src/main/java/forge/game/limited/CardPoolLimitation.java b/src/main/java/forge/game/limited/CardPoolLimitation.java index e028a4ed0ef..6bc5d579332 100644 --- a/src/main/java/forge/game/limited/CardPoolLimitation.java +++ b/src/main/java/forge/game/limited/CardPoolLimitation.java @@ -17,18 +17,9 @@ */ package forge.game.limited; -/** - * TODO: Write javadoc for this type. - * - */ public enum CardPoolLimitation { - - /** The Full. */ Full, - /** The Block. */ Block, - /** The Fantasy Block. */ FantasyBlock, - /** The Custom. */ Custom } diff --git a/src/main/java/forge/game/limited/CardRatings.java b/src/main/java/forge/game/limited/CardRatings.java deleted file mode 100644 index 6606e4c7976..00000000000 --- a/src/main/java/forge/game/limited/CardRatings.java +++ /dev/null @@ -1,306 +0,0 @@ -/* - * Forge: Play Magic: the Gathering. - * Copyright (C) 2011 Forge Team - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package forge.game.limited; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.TreeMap; - -import forge.properties.ForgeProps; -import forge.properties.NewConstants; -import forge.util.FileUtil; -import forge.util.HttpUtil; - -/** - * Contains Maps of card ratings. - */ -public class CardRatings { - private static Map fullRatings = new TreeMap(); - private static Map blockRatings = new TreeMap(); - private static Map customRatings = new TreeMap(); - - private static List tempRatings = new ArrayList(); - - /** - * Instantiates a new card ratings. - */ - public CardRatings() { - if (CardRatings.fullRatings.size() < 1) { - this.loadFullRatings(); - } - - if (CardRatings.blockRatings.size() < 1) { - this.loadBlockRatings(); - } - - if (CardRatings.customRatings.size() < 1) { - this.loadCustomRatings(); - } - - if (CardRatings.tempRatings.size() < 1) { - CardRatings.tempRatings = FileUtil.readFile("res/draft/tempRatings.dat"); - } - } - - private void loadFullRatings() { - final List sRatings = FileUtil.readFile("res/draft/fullRatings.dat"); - if (sRatings.size() > 1) { - for (final String s : sRatings) { - if (s.length() > 3) { - final String[] ss = s.split(":"); - if (ss.length > 1) { - CardRatings.fullRatings.put(ss[0], new Integer(ss[1])); - } - } - } - } - } - - private void loadBlockRatings() { - final List sRatings = FileUtil.readFile("res/draft/blockRatings.dat"); - if (sRatings.size() > 1) { - for (final String s : sRatings) { - if (s.length() > 3) { - final String[] ss = s.split(":"); - if (ss.length > 1) { - CardRatings.blockRatings.put(ss[0], new Integer(ss[1])); - } - } - } - } - } - - private void loadCustomRatings() { - final List sRatings = FileUtil.readFile("res/draft/customRatings.dat"); - if (sRatings.size() > 1) { - for (final String s : sRatings) { - if (s.length() > 3) { - final String[] ss = s.split(":"); - if (ss.length > 1) { - CardRatings.customRatings.put(ss[0], new Integer(ss[1])); - } - } - } - } - } - - /** - * Save ratings. - */ - public final void saveRatings() { - if (CardRatings.fullRatings.size() > 1) { - this.saveSingleRating(CardRatings.fullRatings, "res/draft/fullRatings.dat"); - } - - if (CardRatings.blockRatings.size() > 1) { - this.saveSingleRating(CardRatings.blockRatings, "res/draft/blockRatings.dat"); - } - - if (CardRatings.customRatings.size() > 1) { - this.saveSingleRating(CardRatings.customRatings, "res/draft/customRatings.dat"); - } - - if (CardRatings.tempRatings.size() > 1) { - Collections.sort(CardRatings.tempRatings); - FileUtil.writeFile("res/draft/tempRatings.dat", CardRatings.tempRatings); - } - } - - private void saveSingleRating(Map ratingData, String filename) { - final ArrayList ratings = new ArrayList(); - - for (final Entry k : ratingData.entrySet()) { - ratings.add(k.getKey() + ":" + k.getValue()); - } - - Collections.sort(ratings); - FileUtil.writeFile(filename, ratings); - } - - /** - * Gets the full rating. - * - * @param cardName - * the card name - * @return the full rating - */ - public final int getFullRating(final String cardName) { - if (CardRatings.fullRatings.containsKey(cardName)) { - return CardRatings.fullRatings.get(cardName); - } - - return 0; - } - - /** - * Gets the block rating. - * - * @param cardName - * the card name - * @param setCode - * the set code - * @return the block rating - */ - public final int getBlockRating(final String cardName, final String setCode) { - final String cNsC = cardName + "|" + setCode; - if (CardRatings.blockRatings.containsKey(cNsC)) { - return CardRatings.blockRatings.get(cNsC); - } - - return 0; - } - - /** - * Gets the custom ratings. - * - * @param cardName - * the card name - * @param custName - * the cust name - * @return the custom ratings - */ - public final int getCustomRatings(final String cardName, final String custName) { - final String cNcN = cardName + "|" + custName; - if (CardRatings.customRatings.containsKey(cNcN)) { - return CardRatings.customRatings.get(cNcN); - } - - return 0; - } - - /** - * Put full rating. - * - * @param cardName - * the card name - * @param rating - * the rating - */ - public final void putFullRating(final String cardName, final int rating) { - if (CardRatings.fullRatings.containsKey(cardName)) { - final int r = CardRatings.fullRatings.get(cardName); - final int nr = (r + rating) / 2; - CardRatings.fullRatings.put(cardName, nr); - } else { - CardRatings.fullRatings.put(cardName, rating); - } - - CardRatings.tempRatings.add("Full:" + cardName + ":" + rating); - } - - /** - * Put block rating. - * - * @param cardName - * the card name - * @param setCode - * the set code - * @param rating - * the rating - */ - public final void putBlockRating(final String cardName, final String setCode, final int rating) { - final String cNsC = cardName + "|" + setCode; - if (CardRatings.blockRatings.containsKey(cNsC)) { - final int r = CardRatings.blockRatings.get(cNsC); - final int nr = (r + rating) / 2; - CardRatings.blockRatings.put(cNsC, nr); - } else { - CardRatings.blockRatings.put(cNsC, rating); - } - - CardRatings.tempRatings.add("Block:" + cNsC + ":" + rating); - } - - /** - * Put custom rating. - * - * @param cardName - * the card name - * @param custName - * the cust name - * @param rating - * the rating - */ - public final void putCustomRating(final String cardName, final String custName, final int rating) { - final String cNcN = cardName + "|" + custName; - if (CardRatings.customRatings.containsKey(cNcN)) { - final int r = CardRatings.customRatings.get(cNcN); - final int nr = (r + rating) / 2; - CardRatings.customRatings.put(cNcN, nr); - } else { - CardRatings.customRatings.put(cNcN, rating); - } - - CardRatings.tempRatings.add("Custom:" + cNcN + ":" + rating); - } - - /** - * Upload ratings. - */ - public final void uploadRatings() { - Collections.sort(CardRatings.tempRatings); - FileUtil.writeFile("res/draft/tempRatings.dat", CardRatings.tempRatings); - - final HttpUtil httpPost = new HttpUtil(); - final String url = ForgeProps.getProperty(NewConstants.CARDFORGE_URL) + "/draftAI/submitRatingsData.php?"; - - httpPost.upload(url, "res/draft/tempRatings.dat"); - - FileUtil.writeFile("res/draft/tempRatings.dat", new ArrayList()); - } - - /** - * Download ratings. - */ - public final void downloadRatings() { - final HttpUtil httpGet = new HttpUtil(); - final ArrayList tmpList = new ArrayList(); - String tmpData = new String(); - - String url = ForgeProps.getProperty(NewConstants.CARDFORGE_URL) + "/draftAI/getRatingsData.php?fmt=Full"; - tmpData = httpGet.getURL(url); - tmpList.add(tmpData); - Collections.sort(tmpList); - FileUtil.writeFile("res/draft/fullRatings.dat", tmpList); - CardRatings.fullRatings.clear(); - this.loadFullRatings(); - - tmpList.clear(); - - url = ForgeProps.getProperty(NewConstants.CARDFORGE_URL) + "/draftAI/getRatingsData.php?fmt=Block"; - tmpData = httpGet.getURL(url); - tmpList.add(tmpData); - Collections.sort(tmpList); - FileUtil.writeFile("res/draft/blockRatings.dat", tmpList); - CardRatings.blockRatings.clear(); - this.loadBlockRatings(); - - tmpList.clear(); - - url = ForgeProps.getProperty(NewConstants.CARDFORGE_URL) + "/draftAI/getRatingsData.php?fmt=Custom"; - tmpData = httpGet.getURL(url); - tmpList.add(tmpData); - Collections.sort(tmpList); - FileUtil.writeFile("res/draft/customRatings.dat", tmpList); - CardRatings.customRatings.clear(); - this.loadCustomRatings(); - } -} diff --git a/src/main/java/forge/game/limited/GauntletMini.java b/src/main/java/forge/game/limited/GauntletMini.java index 7de06155a15..b4a438edf87 100644 --- a/src/main/java/forge/game/limited/GauntletMini.java +++ b/src/main/java/forge/game/limited/GauntletMini.java @@ -17,12 +17,12 @@ */ package forge.game.limited; -import javax.swing.SwingUtilities; -import javax.swing.SwingWorker; - import java.util.ArrayList; import java.util.List; +import javax.swing.SwingUtilities; +import javax.swing.SwingWorker; + import forge.Singletons; import forge.control.Lobby; import forge.deck.Deck; diff --git a/src/main/java/forge/game/limited/LimitedDeck.java b/src/main/java/forge/game/limited/LimitedDeck.java index b4b1fe95943..577223037bf 100644 --- a/src/main/java/forge/game/limited/LimitedDeck.java +++ b/src/main/java/forge/game/limited/LimitedDeck.java @@ -19,13 +19,13 @@ import com.google.common.collect.Lists; import forge.Constant.Preferences; import forge.card.CardAiHints; -import forge.card.MagicColor; -import forge.card.ColorSet; import forge.card.CardRules; import forge.card.CardRulesPredicates; +import forge.card.ColorSet; import forge.card.DeckHints; -import forge.card.mana.ManaCostShard; +import forge.card.MagicColor; import forge.card.mana.ManaCost; +import forge.card.mana.ManaCostShard; import forge.deck.CardPool; import forge.deck.Deck; import forge.deck.DeckSection; diff --git a/src/main/java/forge/game/limited/ReadDraftRankings.java b/src/main/java/forge/game/limited/ReadDraftRankings.java index bbf5049920b..1517b353f3a 100644 --- a/src/main/java/forge/game/limited/ReadDraftRankings.java +++ b/src/main/java/forge/game/limited/ReadDraftRankings.java @@ -1,12 +1,11 @@ package forge.game.limited; -import java.io.File; import java.util.HashMap; +import java.util.List; import java.util.Map; import com.esotericsoftware.minlog.Log; -import forge.properties.ForgeProps; import forge.properties.NewConstants; import forge.util.FileUtil; @@ -29,7 +28,7 @@ public class ReadDraftRankings { */ public ReadDraftRankings() { this.setSizes = new HashMap(); - this.draftRankings = this.readFile(ForgeProps.getFile(NewConstants.Draft.RANKINGS)); + this.draftRankings = this.readFile(FileUtil.readFile(NewConstants.DRAFT_RANKINGS_FILE)); } // setup() /** @@ -41,10 +40,10 @@ public class ReadDraftRankings { * a {@link java.io.File} object. * @return a {@link java.util.Map} object. */ - private Map> readFile(final File file) { + private Map> readFile(List lines) { final Map> map = new HashMap>(); - for (String line : FileUtil.readFile(file)) { + for (String line : lines) { // stop reading if end of file or blank line is read if (line == null || line.length() == 0) { break; diff --git a/src/main/java/forge/game/limited/SealedDeck.java b/src/main/java/forge/game/limited/SealedDeck.java index de5db9cb4d6..48b62ad4984 100644 --- a/src/main/java/forge/game/limited/SealedDeck.java +++ b/src/main/java/forge/game/limited/SealedDeck.java @@ -11,9 +11,9 @@ import com.google.common.collect.Iterables; import forge.Constant; import forge.Constant.Color; -import forge.card.ColorSet; -import forge.card.CardRulesPredicates; import forge.card.CardRules; +import forge.card.CardRulesPredicates; +import forge.card.ColorSet; import forge.item.CardPrinted; import forge.util.MyRandom; diff --git a/src/main/java/forge/game/phase/Combat.java b/src/main/java/forge/game/phase/Combat.java index 0feb0369a91..acc7d96ad0e 100644 --- a/src/main/java/forge/game/phase/Combat.java +++ b/src/main/java/forge/game/phase/Combat.java @@ -27,7 +27,6 @@ import java.util.Set; import java.util.TreeMap; import forge.Card; - import forge.CardLists; import forge.CardPredicates; import forge.GameEntity; diff --git a/src/main/java/forge/game/phase/CombatUtil.java b/src/main/java/forge/game/phase/CombatUtil.java index 151e7cfd6ed..29a2a4264ff 100644 --- a/src/main/java/forge/game/phase/CombatUtil.java +++ b/src/main/java/forge/game/phase/CombatUtil.java @@ -29,7 +29,6 @@ import com.esotericsoftware.minlog.Log; import com.google.common.base.Predicate; import forge.Card; - import forge.CardLists; import forge.CardPredicates; import forge.Command; diff --git a/src/main/java/forge/game/phase/EndOfTurn.java b/src/main/java/forge/game/phase/EndOfTurn.java index 0faccb4c958..10f411dd34c 100644 --- a/src/main/java/forge/game/phase/EndOfTurn.java +++ b/src/main/java/forge/game/phase/EndOfTurn.java @@ -18,7 +18,6 @@ package forge.game.phase; import forge.Card; - import forge.Singletons; import forge.card.mana.ManaCost; import forge.card.spellability.Ability; diff --git a/src/main/java/forge/game/phase/Untap.java b/src/main/java/forge/game/phase/Untap.java index a8f3108eed3..e7e8b28d5b4 100644 --- a/src/main/java/forge/game/phase/Untap.java +++ b/src/main/java/forge/game/phase/Untap.java @@ -22,11 +22,11 @@ import java.util.List; import com.google.common.base.Predicate; import com.google.common.base.Predicates; -import forge.Card; +import forge.Card; import forge.CardLists; -import forge.CardPredicates.Presets; import forge.CardPredicates; +import forge.CardPredicates.Presets; import forge.CounterType; import forge.GameEntity; import forge.Singletons; @@ -38,7 +38,6 @@ import forge.game.zone.Zone; import forge.game.zone.ZoneType; import forge.gui.GuiDialog; import forge.gui.match.CMatchUI; - import forge.view.ButtonUtil; /** diff --git a/src/main/java/forge/game/phase/Upkeep.java b/src/main/java/forge/game/phase/Upkeep.java index 703f226955d..ed5623d075d 100644 --- a/src/main/java/forge/game/phase/Upkeep.java +++ b/src/main/java/forge/game/phase/Upkeep.java @@ -33,8 +33,8 @@ import forge.CounterType; import forge.Singletons; import forge.card.cardfactory.CardFactoryUtil; import forge.card.cost.Cost; -import forge.card.mana.ManaCostParser; import forge.card.mana.ManaCost; +import forge.card.mana.ManaCostParser; import forge.card.spellability.Ability; import forge.card.spellability.AbilityManaPart; import forge.card.spellability.AbilityStatic; diff --git a/src/main/java/forge/game/player/AIPlayer.java b/src/main/java/forge/game/player/AIPlayer.java index e0df75f88f4..3609e55aac0 100644 --- a/src/main/java/forge/game/player/AIPlayer.java +++ b/src/main/java/forge/game/player/AIPlayer.java @@ -18,8 +18,8 @@ package forge.game.player; import java.util.List; -import forge.Card; +import forge.Card; import forge.CardLists; import forge.CardPredicates; import forge.card.spellability.SpellAbility; diff --git a/src/main/java/forge/game/player/HumanPlayer.java b/src/main/java/forge/game/player/HumanPlayer.java index 951df64fefd..fa854dff946 100644 --- a/src/main/java/forge/game/player/HumanPlayer.java +++ b/src/main/java/forge/game/player/HumanPlayer.java @@ -22,14 +22,6 @@ import forge.card.spellability.SpellAbility; import forge.game.GameState; import forge.game.zone.ZoneType; -/** - *

- * HumanPlayer class. - *

- * - * @author Forge - * @version $Id$ - */ public class HumanPlayer extends Player { private PlayerControllerHuman controller; diff --git a/src/main/java/forge/game/player/IHasIcon.java b/src/main/java/forge/game/player/IHasIcon.java new file mode 100644 index 00000000000..a0674dd26fd --- /dev/null +++ b/src/main/java/forge/game/player/IHasIcon.java @@ -0,0 +1,6 @@ +package forge.game.player; + +public interface IHasIcon { + String getIconImageKey(); + void setIconImageKey(String iconImageKey); +} diff --git a/src/main/java/forge/game/player/LobbyPlayer.java b/src/main/java/forge/game/player/LobbyPlayer.java index 65fe938ad43..aaf035abe8f 100644 --- a/src/main/java/forge/game/player/LobbyPlayer.java +++ b/src/main/java/forge/game/player/LobbyPlayer.java @@ -6,18 +6,15 @@ package forge.game.player; * May store player's assets here. * */ -public class LobbyPlayer { +public class LobbyPlayer implements IHasIcon { protected final PlayerType type; public final PlayerType getType() { return type; } - - protected final String name; - // string with picture is more important than avatar index - protected String picture; + protected String imageKey; private int avatarIndex = -1; public LobbyPlayer(PlayerType type, String name) { @@ -26,18 +23,16 @@ public class LobbyPlayer { this.name = name; } - public final String getPicture() { - return picture; + @Override + public final String getIconImageKey() { + return imageKey; } - public final void setPicture(String picture) { - this.picture = picture; + @Override + public final void setIconImageKey(String imageKey) { + this.imageKey = imageKey; } - /** - * TODO: Write javadoc for this method. - * @return - */ public String getName() { return name; } diff --git a/src/main/java/forge/game/player/Player.java b/src/main/java/forge/game/player/Player.java index 8f8b9410d5b..bce0f2fb689 100644 --- a/src/main/java/forge/game/player/Player.java +++ b/src/main/java/forge/game/player/Player.java @@ -33,7 +33,6 @@ import com.google.common.collect.Iterables; import com.google.common.collect.Lists; import forge.Card; - import forge.CardLists; import forge.CardPredicates; import forge.CardPredicates.Presets; @@ -46,8 +45,8 @@ import forge.card.ability.AbilityFactory; import forge.card.ability.AbilityUtils; import forge.card.cardfactory.CardFactoryUtil; import forge.card.cost.Cost; -import forge.card.mana.ManaPool; import forge.card.mana.ManaCost; +import forge.card.mana.ManaPool; import forge.card.replacement.ReplacementResult; import forge.card.spellability.Ability; import forge.card.spellability.Spell; diff --git a/src/main/java/forge/game/player/PlayerControllerHuman.java b/src/main/java/forge/game/player/PlayerControllerHuman.java index be2b14e5737..7dd84dc1c9c 100644 --- a/src/main/java/forge/game/player/PlayerControllerHuman.java +++ b/src/main/java/forge/game/player/PlayerControllerHuman.java @@ -17,8 +17,8 @@ import forge.control.input.Input; import forge.control.input.InputBlock; import forge.control.input.InputCleanup; import forge.control.input.InputPassPriority; -import forge.deck.Deck; import forge.deck.CardPool; +import forge.deck.Deck; import forge.deck.DeckSection; import forge.game.GameState; import forge.game.GameType; diff --git a/src/main/java/forge/game/player/PlayerUtil.java b/src/main/java/forge/game/player/PlayerUtil.java index c4919af1248..a81a4bf4627 100644 --- a/src/main/java/forge/game/player/PlayerUtil.java +++ b/src/main/java/forge/game/player/PlayerUtil.java @@ -27,7 +27,6 @@ import forge.control.input.Input; import forge.game.zone.Zone; import forge.game.zone.ZoneType; import forge.gui.match.CMatchUI; - import forge.view.ButtonUtil; /** diff --git a/src/main/java/forge/game/zone/MagicStack.java b/src/main/java/forge/game/zone/MagicStack.java index eaa766a1ea9..dac8c592511 100644 --- a/src/main/java/forge/game/zone/MagicStack.java +++ b/src/main/java/forge/game/zone/MagicStack.java @@ -26,7 +26,6 @@ import java.util.Stack; import com.esotericsoftware.minlog.Log; import forge.Card; - import forge.CardLists; import forge.CardPredicates; import forge.CardPredicates.Presets; @@ -35,9 +34,9 @@ import forge.Singletons; import forge.card.ability.AbilityUtils; import forge.card.cardfactory.CardFactory; import forge.card.cardfactory.CardFactoryUtil; +import forge.card.mana.ManaCost; import forge.card.mana.ManaCostBeingPaid; import forge.card.mana.ManaCostParser; -import forge.card.mana.ManaCost; import forge.card.spellability.Ability; import forge.card.spellability.AbilityStatic; import forge.card.spellability.AbilityTriggered; diff --git a/src/main/java/forge/game/zone/PlayerZone.java b/src/main/java/forge/game/zone/PlayerZone.java index abe7443bbc9..307cd991c63 100644 --- a/src/main/java/forge/game/zone/PlayerZone.java +++ b/src/main/java/forge/game/zone/PlayerZone.java @@ -18,7 +18,6 @@ package forge.game.zone; import forge.Card; - import forge.Singletons; import forge.game.player.Player; diff --git a/src/main/java/forge/game/zone/PlayerZoneBattlefield.java b/src/main/java/forge/game/zone/PlayerZoneBattlefield.java index dda09757746..979ba80f1b7 100644 --- a/src/main/java/forge/game/zone/PlayerZoneBattlefield.java +++ b/src/main/java/forge/game/zone/PlayerZoneBattlefield.java @@ -24,7 +24,6 @@ import com.google.common.collect.Iterables; import com.google.common.collect.Lists; import forge.Card; - import forge.CardLists; import forge.CardPredicates; import forge.CardPredicates.Presets; diff --git a/src/main/java/forge/game/zone/Zone.java b/src/main/java/forge/game/zone/Zone.java index 1e790beeb98..9e84ec4e44d 100644 --- a/src/main/java/forge/game/zone/Zone.java +++ b/src/main/java/forge/game/zone/Zone.java @@ -25,7 +25,6 @@ import java.util.Observable; import java.util.Observer; import forge.Card; - import forge.Singletons; import forge.game.player.Player; import forge.util.MyObservable; diff --git a/src/main/java/forge/game/zone/ZoneType.java b/src/main/java/forge/game/zone/ZoneType.java index 8a5b0f0cb9e..fdce2f38509 100644 --- a/src/main/java/forge/game/zone/ZoneType.java +++ b/src/main/java/forge/game/zone/ZoneType.java @@ -8,30 +8,14 @@ import java.util.List; * The Enum Zone. */ public enum ZoneType { - - /** The Hand. */ Hand(true), - - /** The Library. */ Library(true), - - /** The Graveyard. */ Graveyard(false), - - /** The Battlefield. */ Battlefield(false), - - /** The Exile. */ Exile(false), - - /** The Command. */ Command(false), - - /** The Stack. */ Stack(false), - Sideboard(true), - /** Ante. */ Ante(false); public static final List STATIC_ABILITIES_SOURCE_ZONES = Arrays.asList(new ZoneType[]{Battlefield, Graveyard, Exile, Command/*, Hand*/}); @@ -41,7 +25,6 @@ public enum ZoneType { holdsHiddenInfo = holdsHidden; } - public static ZoneType smartValueOf(final String value) { if (value == null) { return null; @@ -96,5 +79,4 @@ public enum ZoneType { public static boolean isKnown(final String origin) { return !isHidden(origin); } - } diff --git a/src/main/java/forge/gauntlet/GauntletData.java b/src/main/java/forge/gauntlet/GauntletData.java index 49f1a0f5cbb..b7d4f282887 100644 --- a/src/main/java/forge/gauntlet/GauntletData.java +++ b/src/main/java/forge/gauntlet/GauntletData.java @@ -1,12 +1,13 @@ package forge.gauntlet; -import java.io.File; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.List; +import com.thoughtworks.xstream.annotations.XStreamOmitField; + import forge.deck.Deck; @@ -16,8 +17,10 @@ import forge.deck.Deck; *

(S at beginning of class name denotes a static factory.) */ public final class GauntletData { + @XStreamOmitField + private String name; // set based on the the filename on load + private int completed; - private File activeFile; private String timestamp; private List eventRecords = new ArrayList(); private List eventNames = new ArrayList(); @@ -27,22 +30,18 @@ public final class GauntletData { /** Constructor. */ public GauntletData() { - new File(GauntletIO.DIR_GAUNTLETS).mkdir(); } //========== Mutator / accessor methods - /** @param file0 {@link java.io.File} */ - public void setActiveFile(final File file0) { - this.activeFile = file0; + public void setName(String name0) { + name = name0; } - /** @return {@link java.io.File} */ - public File getActiveFile() { - return this.activeFile; + public String getName() { + return name; } - /** */ public void stamp() { final DateFormat dateFormat = new SimpleDateFormat("dd-mm-yy, H:m"); this.timestamp = dateFormat.format(new Date()).toString(); @@ -62,64 +61,52 @@ public final class GauntletData { GauntletIO.saveGauntlet(this); } - /** @return {@link java.lang.String} */ public String getTimestamp() { return this.timestamp; } - /** @param i0 int */ public void setCompleted(final int i0) { this.completed = i0; } - /** @return int */ public int getCompleted() { return this.completed; } - /** @param d0 {@link forge.deck.Deck} */ public void setUserDeck(final Deck d0) { this.userDeck = d0; } - /** @return d0 {@link forge.deck.Deck} */ public Deck getUserDeck() { return this.userDeck; } - /** @return List */ public List getDeckNames() { final List names = new ArrayList(); for (final Deck d : decks) { names.add(d.getName()); } return names; } - /** @param records0 List */ public void setEventRecords(final List records0) { this.eventRecords = records0; } - /** @return List */ public List getEventRecords() { return this.eventRecords; } - /** @param names0 List */ public void setEventNames(final List names0) { this.eventNames = names0; } - /** @return List */ public List getEventNames() { return this.eventNames; } - /** @param decks0 List */ public void setDecks(final List decks0) { this.decks = decks0; } - /** @return List */ public List getDecks() { return this.decks; } diff --git a/src/main/java/forge/gauntlet/GauntletIO.java b/src/main/java/forge/gauntlet/GauntletIO.java index 0c407771a6f..540f729514d 100644 --- a/src/main/java/forge/gauntlet/GauntletIO.java +++ b/src/main/java/forge/gauntlet/GauntletIO.java @@ -24,29 +24,19 @@ import forge.deck.CardPool; import forge.error.BugReporter; import forge.item.CardDb; import forge.item.CardPrinted; +import forge.properties.NewConstants; import forge.util.IgnoringXStream; -/** */ public class GauntletIO { - /** Directory for storing gauntlet data files. */ - public static final String DIR_GAUNTLETS = "res/gauntlet/"; /** Prompt in text field for new (unsaved) built gauntlets. */ public static final String TXF_PROMPT = "[New Gauntlet]"; + /** suffix for all gauntlet data files */ + public static final String SUFFIX_DATA = ".dat"; /** Prefix for quick gauntlet save files. */ public static final String PREFIX_QUICK = "Quick_"; - /** Regex for quick gauntlet save files. */ - public static final String REGEX_QUICK = "^" + GauntletIO.PREFIX_QUICK + "[0-9]+\\.dat$"; /** Regex for locked gauntlet save files. */ - public static final String REGEX_LOCKED = "^LOCKED_.+\\.dat$"; - /** Regex for Subversion files. */ - public static final String SVN_IGNORE = "^\\.svn$"; + public static final String PREFIX_LOCKED = "LOCKED_"; - /** - * Gets the serializer. - * - * @param isIgnoring the is ignoring - * @return the serializer - */ protected static XStream getSerializer(final boolean isIgnoring) { final XStream xStream = isIgnoring ? new IgnoringXStream() : new XStream(); xStream.registerConverter(new DeckSectionToXml()); @@ -54,93 +44,73 @@ public class GauntletIO { return xStream; } + public static File getGauntletFile(String name) { + return new File(NewConstants.GAUNTLET_DIR.userPrefLoc, name + SUFFIX_DATA); + } - /** @return File[] */ + public static File getGauntletFile(GauntletData gd) { + return getGauntletFile(gd.getName()); + } + public static File[] getGauntletFilesUnlocked() { final FilenameFilter filter = new FilenameFilter() { @Override public boolean accept(File dir, String name) { - return (!name.matches(GauntletIO.REGEX_LOCKED) - && !name.matches(GauntletIO.SVN_IGNORE)); + return (name.endsWith(SUFFIX_DATA)); } }; - File folder = new File(GauntletIO.DIR_GAUNTLETS); + File folder = new File(NewConstants.GAUNTLET_DIR.userPrefLoc); return folder.listFiles(filter); } - /** @return File[] */ public static File[] getGauntletFilesQuick() { final FilenameFilter filter = new FilenameFilter() { @Override public boolean accept(File dir, String name) { - return (name.matches(GauntletIO.REGEX_QUICK) - && !name.matches(GauntletIO.SVN_IGNORE)); + return (name.startsWith(PREFIX_QUICK) && name.endsWith(SUFFIX_DATA)); } }; - File folder = new File(GauntletIO.DIR_GAUNTLETS); + File folder = new File(NewConstants.GAUNTLET_DIR.userPrefLoc); return folder.listFiles(filter); } - /** @return File[] */ public static File[] getGauntletFilesLocked() { final FilenameFilter filter = new FilenameFilter() { @Override public boolean accept(File dir, String name) { - return (name.matches(GauntletIO.REGEX_LOCKED) - && !name.matches(GauntletIO.SVN_IGNORE)); + return (name.startsWith(PREFIX_LOCKED) && name.endsWith(SUFFIX_DATA)); } }; - File folder = new File(GauntletIO.DIR_GAUNTLETS); + File folder = new File(NewConstants.GAUNTLET_DIR.defaultLoc); return folder.listFiles(filter); } - /** - *

- * loadData. - *

- * - * @param xmlSaveFile - *   {@link java.io.File} - * @return {@link forge.gauntlet.GauntletData} - */ public static GauntletData loadGauntlet(final File xmlSaveFile) { + GZIPInputStream zin = null; try { - GauntletData data = null; + zin = new GZIPInputStream(new FileInputStream(xmlSaveFile)); + InputStreamReader reader = new InputStreamReader(zin); - final GZIPInputStream zin = new GZIPInputStream(new FileInputStream(xmlSaveFile)); - - final StringBuilder xml = new StringBuilder(); - final char[] buf = new char[1024]; - final InputStreamReader reader = new InputStreamReader(zin); - while (reader.ready()) { - final int len = reader.read(buf); - if (len == -1) { - break; - } // when end of stream was reached - xml.append(buf, 0, len); - } - - zin.close(); - data = (GauntletData) GauntletIO.getSerializer(true).fromXML(xml.toString()); + GauntletData data = (GauntletData)GauntletIO.getSerializer(true).fromXML(reader); + String filename = xmlSaveFile.getName(); + data.setName(filename.substring(0, filename.length() - SUFFIX_DATA.length())); + return data; } catch (final Exception ex) { BugReporter.reportException(ex, "Error loading Gauntlet Data"); throw new RuntimeException(ex); + } finally { + if (null != zin) { + try { zin.close(); } + catch (IOException e) { System.out.println("error closing gauntlet data reader: " + e); } + } } } - /** - *

- * saveData. - *

- * - * @param gd0 - * a {@link forge.gauntlet.GauntletData} object. - */ public static void saveGauntlet(final GauntletData gd0) { try { final XStream xStream = GauntletIO.getSerializer(false); @@ -152,7 +122,7 @@ public class GauntletIO { } private static void savePacked(final XStream xStream0, final GauntletData gd0) throws IOException { - final BufferedOutputStream bout = new BufferedOutputStream(new FileOutputStream(gd0.getActiveFile())); + final BufferedOutputStream bout = new BufferedOutputStream(new FileOutputStream(getGauntletFile(gd0))); final GZIPOutputStream zout = new GZIPOutputStream(bout); xStream0.toXML(gd0, zout); zout.flush(); @@ -160,7 +130,6 @@ public class GauntletIO { } private static class DeckSectionToXml implements Converter { - @SuppressWarnings("rawtypes") @Override public boolean canConvert(final Class clasz) { @@ -172,7 +141,6 @@ public class GauntletIO { for (final Entry e : (CardPool) source) { this.writeCardPrinted(e.getKey(), e.getValue(), writer); } - } @Override @@ -191,10 +159,10 @@ public class GauntletIO { } reader.moveUp(); } + return result; } - /** */ private void writeCardPrinted(final CardPrinted cref, final Integer count, final HierarchicalStreamWriter writer) { writer.startNode("card"); writer.addAttribute("c", cref.getName()); diff --git a/src/main/java/forge/gui/DialogMigrateProfile.java b/src/main/java/forge/gui/DialogMigrateProfile.java new file mode 100644 index 00000000000..d3e9c797d7a --- /dev/null +++ b/src/main/java/forge/gui/DialogMigrateProfile.java @@ -0,0 +1,947 @@ +/* + * Forge: Play Magic: the Gathering. + * Copyright (c) 2013 Forge Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package forge.gui; + +import java.awt.Font; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.nio.channels.FileChannel; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.TreeMap; +import java.util.concurrent.ConcurrentSkipListMap; + +import javax.swing.JComboBox; +import javax.swing.JFileChooser; +import javax.swing.JOptionPane; +import javax.swing.JPanel; +import javax.swing.JProgressBar; +import javax.swing.JScrollBar; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; +import javax.swing.ScrollPaneConstants; +import javax.swing.SwingUtilities; +import javax.swing.SwingWorker; +import javax.swing.Timer; +import javax.swing.event.ChangeEvent; +import javax.swing.event.ChangeListener; +import javax.swing.event.DocumentEvent; +import javax.swing.event.DocumentListener; + +import net.miginfocom.swing.MigLayout; + +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.tuple.Pair; + +import forge.Command; +import forge.error.BugReporter; +import forge.gui.MigrationSourceAnalyzer.OpType; +import forge.gui.toolbox.FButton; +import forge.gui.toolbox.FCheckBox; +import forge.gui.toolbox.FLabel; +import forge.gui.toolbox.FOverlay; +import forge.gui.toolbox.FPanel; +import forge.gui.toolbox.FScrollPane; +import forge.gui.toolbox.FSkin; +import forge.gui.toolbox.FTextField; +import forge.gui.toolbox.SmartScroller; +import forge.properties.NewConstants; + +/** + * This class implements an overlay-based dialog that imports data from a user-selected directory + * into the correct locations in the user and cache directories. There is a lot of I/O and data + * processing done in this class, so most operations are asynchronous. + */ +public class DialogMigrateProfile { + private final FButton _btnStart; + private final FButton _btnCancel; + private final FLabel _btnChooseDir; + private final JPanel _selectionPanel; + + // volatile since it is checked from multiple threads + private volatile boolean _cancel; + + @SuppressWarnings("serial") + public DialogMigrateProfile(String forcedSrcDir, final Runnable onDialogClose) { + FPanel p = new FPanel(new MigLayout("insets dialog, gap 0, center, wrap, fill")); + p.setOpaque(false); + p.setBackgroundTexture(FSkin.getIcon(FSkin.Backgrounds.BG_TEXTURE)); + + final boolean isMigration = !StringUtils.isEmpty(forcedSrcDir); + + // header + p.add(new FLabel.Builder().text((isMigration ? "Migrate" : "Import") + " profile data").fontSize(15).build(), "center"); + + // add some help text if this is for the initial data migration + if (isMigration) { + FPanel blurbPanel = new FPanel(new MigLayout("insets panel, gap 10, fill")); + blurbPanel.setOpaque(false); + JPanel blurbPanelInterior = new JPanel(new MigLayout("insets dialog, gap 10, center, wrap, fill")); + blurbPanelInterior.setOpaque(false); + blurbPanelInterior.add(new FLabel.Builder().text("What's this?").build(), "growx, w 50:50:"); + blurbPanelInterior.add(new FLabel.Builder().text( + "Over the last several years, people have had to jump through a lot of hoops to" + + " update to the most recent version. We hope to reduce this workload to a point where a new" + + " user will find that it is fairly painless to update. In order to make this happen, Forge" + + " has changed where it stores your data so that it is outside of the program installation directory." + + " This way, when you upgrade, you will no longer need to import your data every time to get things" + + " working. There are other benefits to having user data separate from program data, too, and it" + + " lays the groundwork for some cool new features.").build(), "growx, w 50:50:"); + blurbPanelInterior.add(new FLabel.Builder().text("So where's my data going?").build(), "growx, w 50:50:"); + blurbPanelInterior.add(new FLabel.Builder().text( + "Forge will now store your data in the same place as other applications on your system." + + " Specifically, your personal data, like decks, quest progress, and program preferences will be" + + " stored in " + NewConstants.USER_DIR + " and all downloaded content, such as card pictures," + + " skins, and quest world prices will be under " + NewConstants.CACHE_DIR + ". If, for whatever" + + " reason, you need to set different paths, cancel out of this dialog, exit Forge, and find the " + + NewConstants.PROFILE_TEMPLATE_FILE + " file in the program installation directory. Copy or rename" + + " it to " + NewConstants.PROFILE_FILE + " and edit the paths inside it. Then restart Forge and use" + + " this dialog to move your data to the paths that you set. Keep in mind that if you install a future" + + " version of Forge into a different directory, you'll need to copy this file over so Forge will know" + + " where to find your data.").build(), "growx, w 50:50:"); + blurbPanelInterior.add(new FLabel.Builder().text( + "Remember, your data won't be available until you complete this step!").build(), "growx, w 50:50:"); + + FScrollPane blurbScroller = new FScrollPane(blurbPanelInterior, + ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); + blurbPanel.add(blurbScroller, "hmin 150, growy, growx, center, gap 0 0 5 5"); + p.add(blurbPanel, "gap 10 10 20 0, growy, growx, w 50:50:"); + } + + // import source widgets + JPanel importSourcePanel = new JPanel(new MigLayout("insets 0, gap 10")); + importSourcePanel.setOpaque(false); + importSourcePanel.add(new FLabel.Builder().text("Import from:").build()); + final FTextField txfSrc = new FTextField.Builder().readonly().build(); + importSourcePanel.add(txfSrc, "pushx, growx"); + _btnChooseDir = new FLabel.ButtonBuilder().text("Choose directory...").enabled(!isMigration).build(); + final JFileChooser _fileChooser = new JFileChooser(); + _fileChooser.setMultiSelectionEnabled(false); + _fileChooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); + _btnChooseDir.setCommand(new Command() { + @Override public void execute() { + // bring up a file open dialog and, if the OK button is selected, apply the filename + // to the import source text field + if (JFileChooser.APPROVE_OPTION == _fileChooser.showOpenDialog(null)) { + File f = _fileChooser.getSelectedFile(); + if (!f.canRead()) { + JOptionPane.showMessageDialog(txfSrc, "Cannot access selected directory (Permission denied)."); + } else { + txfSrc.setText(f.getAbsolutePath()); + } + } + } + }); + importSourcePanel.add(_btnChooseDir, "h pref+8!, w pref+12!"); + + // add change handler to the import source text field that starts up a + // new analyzer. it also interacts with the current active analyzer, + // if any, to make sure it cancels out before the new one is initiated + txfSrc.getDocument().addDocumentListener(new DocumentListener() { + boolean _analyzerActive; // access synchronized on _onAnalyzerDone + String prevText; + + private final Runnable _onAnalyzerDone = new Runnable() { + public synchronized void run() { + _analyzerActive = false; + notify(); + } + }; + + @Override public void removeUpdate(DocumentEvent e) { } + @Override public void changedUpdate(DocumentEvent e) { } + @Override public void insertUpdate(DocumentEvent e) { + // text field is read-only, so the only time this will get updated + // is when _btnChooseDir does it + final String text = txfSrc.getText(); + if (text.equals(prevText)) { + // only restart the analyzer if the directory has changed + return; + } + prevText = text; + + // cancel any active analyzer + _cancel = true; + + if (!text.isEmpty()) { + // ensure we don't get two instances of this function running at the same time + _btnChooseDir.setEnabled(false); + + // re-disable the start button. it will be enabled if the previous analyzer has + // already successfully finished + _btnStart.setEnabled(false); + + // we have to wait in a background thread since we can't block in the GUI thread + SwingWorker analyzerStarter = new SwingWorker() { + @Override + protected Void doInBackground() throws Exception { + // wait for active analyzer (if any) to quit + synchronized (_onAnalyzerDone) { + while (_analyzerActive) { + _onAnalyzerDone.wait(); + } + } + return null; + } + + // executes in gui event loop thread + @Override + protected void done() { + _cancel = false; + synchronized (_onAnalyzerDone) { + // this will populate the panel with data selection widgets + _AnalyzerUpdater analyzer = new _AnalyzerUpdater(text, _onAnalyzerDone, isMigration); + analyzer.execute(); + _analyzerActive = true; + } + if (!isMigration) { + // only enable the directory choosing button if this is not a migration dialog + // since in that case we're permanently locked to the starting directory + _btnChooseDir.setEnabled(true); + } + } + }; + analyzerStarter.execute(); + } + } + }); + p.add(importSourcePanel, "gaptop 20, pushx, growx"); + + // prepare import selection panel (will be cleared and filled in later by an analyzer) + _selectionPanel = new JPanel(); + _selectionPanel.setOpaque(false); + p.add(_selectionPanel, "growx, growy, gaptop 10"); + + // action button widgets + final Runnable cleanup = new Runnable() { + @Override public void run() { SOverlayUtils.hideOverlay(); } + }; + _btnStart = new FButton("Start import"); + _btnStart.setEnabled(false); + _btnCancel = new FButton("Cancel"); + _btnCancel.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { + _cancel = true; + cleanup.run(); + if (null != onDialogClose) { + onDialogClose.run(); + } + } + }); + + JPanel southPanel = new JPanel(new MigLayout("ax center")); + southPanel.setOpaque(false); + southPanel.add(_btnStart, "center, w pref+144!, h pref+12!"); + southPanel.add(_btnCancel, "center, w pref+144!, h pref+12!, gap 72"); + p.add(southPanel, "growx"); + + JPanel overlay = FOverlay.SINGLETON_INSTANCE.getPanel(); + overlay.setLayout(new MigLayout("insets 0, gap 0, wrap, ax center, ay center")); + overlay.add(p, "w 500::90%, h 100::90%"); + SOverlayUtils.showOverlay(); + + // focus cancel button after the dialog is shown + SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { _btnCancel.requestFocusInWindow(); } + }); + + // if our source dir is provided, set the text, which will fire off an analyzer + if (isMigration) { + File srcDirFile = new File(forcedSrcDir); + txfSrc.setText(srcDirFile.getAbsolutePath()); + } + } + + // encapsulates the choices in the combobox for choosing the destination paths for + // decks of unknown type + private class _UnknownDeckChoice { + public final String name; + public final String path; + + public _UnknownDeckChoice(String name0, String path0) { + name = name0; + path = path0; + } + + @Override public String toString() { return name; } + } + + // this class owns the import selection widgets and bridges them with the running + // MigrationSourceAnalyzer instance + private class _AnalyzerUpdater extends SwingWorker { + // associates a file operation type with its enablement checkbox and the set + // of file move/copy operations that enabling it would entail + private final Map>> _selections = + new HashMap>>(); + + // attached to all changeable widgets to keep the UI in sync + private final ChangeListener _stateChangedListener = new ChangeListener() { + @Override public void stateChanged(ChangeEvent arg0) { _updateUI(); } + }; + + private final String _srcDir; + private final Runnable _onAnalyzerDone; + private final boolean _isMigration; + private final JComboBox _unknownDeckCombo; + private final FCheckBox _moveCheckbox; + private final FCheckBox _overwriteCheckbox; + private final JTextArea _operationLog; + private final JScrollPane _operationLogScroller; + private final JProgressBar _progressBar; + + // updates the _operationLog widget asynchronously to keep the UI responsive + private final _OperationLogAsyncUpdater _operationLogUpdater; + + public _AnalyzerUpdater(String srcDir, Runnable onAnalyzerDone, boolean isMigration) { + _srcDir = srcDir; + _onAnalyzerDone = onAnalyzerDone; + _isMigration = isMigration; + + _selectionPanel.removeAll(); + _selectionPanel.setLayout(new MigLayout("insets 0, gap 5, wrap, fill")); + + JPanel cbPanel = new JPanel(new MigLayout("insets 0, gap 5")); + cbPanel.setOpaque(false); + + // add deck selections + JPanel knownDeckPanel = new JPanel(new MigLayout("insets 0, gap 5, wrap 2")); + knownDeckPanel.setOpaque(false); + knownDeckPanel.add(new FLabel.Builder().text("Decks").build(), "wrap"); + _addSelectionWidget(knownDeckPanel, OpType.CONSTRUCTED_DECK, "Constructed decks"); + _addSelectionWidget(knownDeckPanel, OpType.DRAFT_DECK, "Draft decks"); + _addSelectionWidget(knownDeckPanel, OpType.PLANAR_DECK, "Planar decks"); + _addSelectionWidget(knownDeckPanel, OpType.SCHEME_DECK, "Scheme decks"); + _addSelectionWidget(knownDeckPanel, OpType.SEALED_DECK, "Sealed decks"); + _addSelectionWidget(knownDeckPanel, OpType.UNKNOWN_DECK, "Unknown decks"); + JPanel unknownDeckPanel = new JPanel(new MigLayout("insets 0, gap 5")); + unknownDeckPanel.setOpaque(false); + _unknownDeckCombo = new JComboBox(); + _unknownDeckCombo.addItem(new _UnknownDeckChoice("Constructed", NewConstants.DECK_CONSTRUCTED_DIR)); + _unknownDeckCombo.addItem(new _UnknownDeckChoice("Draft", NewConstants.DECK_DRAFT_DIR)); + _unknownDeckCombo.addItem(new _UnknownDeckChoice("Planar", NewConstants.DECK_PLANE_DIR)); + _unknownDeckCombo.addItem(new _UnknownDeckChoice("Scheme", NewConstants.DECK_SCHEME_DIR)); + _unknownDeckCombo.addItem(new _UnknownDeckChoice("Sealed", NewConstants.DECK_SEALED_DIR)); + _unknownDeckCombo.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent arg0) { _updateUI(); } + }); + unknownDeckPanel.add(new FLabel.Builder().text("Treat unknown decks as:").build()); + unknownDeckPanel.add(_unknownDeckCombo); + knownDeckPanel.add(unknownDeckPanel, "span"); + cbPanel.add(knownDeckPanel, "aligny top"); + + // add other userDir data elements + JPanel dataPanel = new JPanel(new MigLayout("insets 0, gap 5, wrap")); + dataPanel.setOpaque(false); + dataPanel.add(new FLabel.Builder().text("Other data").build()); + _addSelectionWidget(dataPanel, OpType.GAUNTLET_DATA, "Gauntlet data"); + _addSelectionWidget(dataPanel, OpType.QUEST_DATA, "Quest saves"); + _addSelectionWidget(dataPanel, OpType.PREFERENCE_FILE, "Preference files"); + cbPanel.add(dataPanel, "aligny top"); + + // add cacheDir data elements + JPanel cachePanel = new JPanel(new MigLayout("insets 0, gap 5, wrap 2")); + cachePanel.setOpaque(false); + cachePanel.add(new FLabel.Builder().text("Cached data").build(), "wrap"); + _addSelectionWidget(cachePanel, OpType.DEFAULT_CARD_PIC, "Default card pics"); + _addSelectionWidget(cachePanel, OpType.SET_CARD_PIC, "Set-specific card pics"); + _addSelectionWidget(cachePanel, OpType.TOKEN_PIC, "Card token pics"); + _addSelectionWidget(cachePanel, OpType.QUEST_PIC, "Quest-related pics"); + _addSelectionWidget(cachePanel, OpType.DB_FILE, "Database files"); + cbPanel.add(cachePanel, "aligny top"); + _selectionPanel.add(cbPanel, "center"); + + // add move/copy and overwrite checkboxes + JPanel ioOptionPanel = new JPanel(new MigLayout("insets 0, gap 10")); + ioOptionPanel.setOpaque(false); + _moveCheckbox = new FCheckBox("Remove source files after copy"); + _moveCheckbox.setSelected(isMigration); + _moveCheckbox.addChangeListener(_stateChangedListener); + ioOptionPanel.add(_moveCheckbox); + _overwriteCheckbox = new FCheckBox("Overwrite files in destination"); + _overwriteCheckbox.addChangeListener(_stateChangedListener); + ioOptionPanel.add(_overwriteCheckbox); + _selectionPanel.add(ioOptionPanel); + + // add operation summary textfield + _operationLog = new JTextArea(); + _operationLog.setFont(new Font("Monospaced", Font.PLAIN, 10)); + _operationLog.setOpaque(false); + _operationLog.setWrapStyleWord(true); + _operationLog.setLineWrap(true); + _operationLog.setEditable(false); + // autoscroll when we set/add text unless the user has intentionally scrolled somewhere else + _operationLogScroller = new JScrollPane(_operationLog); + _operationLogScroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS); + new SmartScroller(_operationLogScroller); + _selectionPanel.add(_operationLogScroller, "w 400:400:, hmin 60, growy, growx"); + + // add progress bar + _progressBar = new JProgressBar(); + _progressBar.setString("Preparing to analyze source directory..."); + _progressBar.setStringPainted(true); + _selectionPanel.add(_progressBar, "w 100%!"); + + // start the op log updater + _operationLogUpdater = new _OperationLogAsyncUpdater(_selections, _operationLog); + _operationLogUpdater.start(); + + // set initial checkbox labels + _updateUI(); + + // resize the panel properly now that the _selectionPanel is filled in + _selectionPanel.getParent().validate(); + _selectionPanel.getParent().invalidate(); + } + + private void _addSelectionWidget(JPanel parent, OpType type, String name) { + FCheckBox cb = new FCheckBox(); + cb.setName(name); + cb.setSelected(true); + cb.addChangeListener(_stateChangedListener); + + // use a skip list map instead of a regular hashmap so that the files are sorted + // alphabetically in the logs. note that this is a concurrent data structure + // since it will be modified and read simultaneously by different threads + _selections.put(type, Pair.of(cb, new ConcurrentSkipListMap())); + parent.add(cb); + } + + // must be called from GUI event loop thread + private void _updateUI() { + // update checkbox text labels with current totals + Set selectedOptions = new HashSet(); + for (Map.Entry>> entry : _selections.entrySet()) { + Pair> selection = entry.getValue(); + FCheckBox cb = selection.getLeft(); + + if (cb.isSelected()) { + selectedOptions.add(entry.getKey()); + } + + cb.setText(String.format("%s (%d)", cb.getName(), selection.getRight().size())); + } + + // asynchronously update the text in the op log, which may be many tens of thousands of lines long + // if this were done synchronously the UI would slow to a crawl + _operationLogUpdater.requestUpdate(selectedOptions, (_UnknownDeckChoice)_unknownDeckCombo.getSelectedItem(), + _moveCheckbox.isSelected(), _overwriteCheckbox.isSelected()); + } + + @Override + protected Void doInBackground() throws Exception { + Timer timer = null; + + try { + Map> selections = new HashMap>(); + for (Map.Entry>> entry : _selections.entrySet()) { + selections.put(entry.getKey(), entry.getValue().getRight()); + } + + MigrationSourceAnalyzer.AnalysisCallback cb = new MigrationSourceAnalyzer.AnalysisCallback() { + @Override + public boolean checkCancel() { return _cancel; } + + @Override + public void addOp(OpType type, File src, File dest) { + // add to concurrent map + _selections.get(type).getRight().put(src, dest); + } + }; + + final MigrationSourceAnalyzer msa = new MigrationSourceAnalyzer(_srcDir, cb); + final int numFilesToAnalyze = msa.getNumFilesToAnalyze(); + + // update only once every half-second so we're not flooding the UI with updates + timer = new Timer(500, null); + final Timer finalTimer = timer; + timer.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent arg0) { + if (_cancel) { + finalTimer.stop(); + return; + } + + // timers run in the gui event loop, so it's ok to interact with widgets + _progressBar.setValue(msa.getNumFilesAnalyzed()); + _updateUI(); + + // allow the the panel to resize to accommodate additional text + _selectionPanel.getParent().validate(); + _selectionPanel.getParent().invalidate(); + } + }); + + // update the progress bar widget from the GUI event loop + SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { + if (_cancel) { return; } + _progressBar.setString("Analyzing..."); + _progressBar.setMaximum(numFilesToAnalyze); + _progressBar.setValue(0); + _progressBar.setIndeterminate(false); + + // start update timer + finalTimer.start(); + } + }); + + // does not return until analysis is complete or has been canceled + msa.doAnalysis(); + } catch (final Exception e) { + _cancel = true; + + SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { + _progressBar.setString("Error"); + BugReporter.reportException(e); + } + }); + } finally { + // ensure the UI update timer is stopped after analysis is complete + if (null != timer) { + timer.stop(); + } + } + + return null; + } + + // executes in gui event loop thread + @Override + protected void done() { + if (!_cancel) { + _progressBar.setValue(_progressBar.getMaximum()); + _updateUI(); + _progressBar.setString("Analysis complete"); + + // clear any previously-set action listeners on the start button + // in case we've previously completed an analysis but changed the directory + // instead of starting the import + for (ActionListener a : _btnStart.getActionListeners()) { + _btnStart.removeActionListener(a); + } + + // set up the start button to start the prepared import on click + _btnStart.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent arg0) { + // if this is a migration, warn if active settings will not complete a migration and give the + // user an option to fix + if (_isMigration) { + // assemble a list of selections that need to be selected to complete a full migration + List unselectedButShouldBe = new ArrayList(); + for (Pair> entry : _selections.values()) { + // add name to list if checkbox is unselected, but contains operations + FCheckBox cb = entry.getLeft(); + if (!cb.isSelected() && 0 < entry.getRight().size()) { + unselectedButShouldBe.add(cb.getName()); + } + } + + if (!unselectedButShouldBe.isEmpty() || !_moveCheckbox.isSelected()) { + StringBuilder sb = new StringBuilder(""); + if (!unselectedButShouldBe.isEmpty()) { + sb.append("It looks like the following options are not selected, which will result in an incomplete migration:"); + sb.append("
    "); + for (String cbName : unselectedButShouldBe) { + sb.append("
  • ").append(cbName).append("
  • "); + } + sb.append("
"); + } + + if (!_moveCheckbox.isSelected()) { + sb.append(unselectedButShouldBe.isEmpty() ? "It " : "It also ").append("looks like the "); + sb.append(_moveCheckbox.getText()).append(" option is not selected.

"); + } + + sb.append("You can continue anyway, but the migration will be incomplete, and the data migration prompt
"); + sb.append("will come up again the next time you start Forge in order to migrate the remaining files
"); + sb.append("unless you move or delete them manually."); + + Object[] options = { "Whoops, let me fix that!", "Continue with the import, I know what I'm doing." }; + int chosen = JOptionPane.showOptionDialog(_operationLog, sb.toString(), "Migration warning", + JOptionPane.YES_NO_OPTION, JOptionPane.WARNING_MESSAGE, null, options, options[0]); + + if (1 != chosen) { + // i.e. option 0 was chosen or the dialog was otherwise closed + return; + } + } + } + + // ensure no other actions (except for cancel) can be taken while the import is in progress + _btnStart.setEnabled(false); + _btnChooseDir.setEnabled(false); + + for (Pair> selection : _selections.values()) { + selection.getLeft().setEnabled(false); + } + _unknownDeckCombo.setEnabled(false); + _moveCheckbox.setEnabled(false); + _overwriteCheckbox.setEnabled(false); + + // stop updating the operation log -- the importer needs it now + _operationLogUpdater.requestStop(); + + // jump to the bottom of the log text area so it starts autoscrolling again + // note that since it is controlled by a SmartScroller, just setting the caret position will not work + JScrollBar scrollBar = _operationLogScroller.getVerticalScrollBar(); + scrollBar.setValue(scrollBar.getMaximum()); + + // start importing! + _Importer importer = new _Importer( + _srcDir, _selections, _unknownDeckCombo, _operationLog, _progressBar, + _moveCheckbox.isSelected(), _overwriteCheckbox.isSelected()); + importer.execute(); + + _btnCancel.requestFocusInWindow(); + } + }); + + // import ready to proceed: enable the start button + _btnStart.setEnabled(true); + } + + // report to the Choose Directory button that this analysis run has stopped + _onAnalyzerDone.run(); + } + } + + // asynchronously iterates through the given concurrent maps and populates the operation log with + // the proposed operations + private class _OperationLogAsyncUpdater extends Thread { + final Map> _selections; + final JTextArea _operationLog; // safe to set text from another thread + + // synchronized-access data + private int _updateCallCnt = 0; + private Set _selectedOptions; + private _UnknownDeckChoice _unknownDeckChoice; + private boolean _isMove; + private boolean _isOverwrite; + private boolean _stop; + + public _OperationLogAsyncUpdater(Map>> selections, JTextArea operationLog) { + super("OperationLogUpdater"); + setDaemon(true); + + _selections = new HashMap>(); + _operationLog = operationLog; + + // remove references to FCheckBox when populating map -- we can't safely access it from a thread + // anyway and it's better to keep our data structure clean to prevent mistakes + for (Map.Entry>> entry : selections.entrySet()) { + _selections.put(entry.getKey(), entry.getValue().getRight()); + } + } + + // updates the synchronized data with values for the next iteration in _run + public synchronized void requestUpdate( + Set selectedOptions, _UnknownDeckChoice unknownDeckChoice, boolean isMove, boolean isOverwrite) { + ++_updateCallCnt; + _selectedOptions = selectedOptions; + _unknownDeckChoice = unknownDeckChoice; + _isMove = isMove; + _isOverwrite = isOverwrite; + + // notify waiter + notify(); + } + + public synchronized void requestStop() { + _stop = true; + + // notify waiter + notify(); + } + + private void _run() throws InterruptedException { + int lastUpdateCallCnt = _updateCallCnt; + Set selectedOptions; + _UnknownDeckChoice unknownDeckChoice; + boolean isMove; + boolean isOverwrite; + + while (true) { + synchronized (this) { + if (_stop) { break; } + while (lastUpdateCallCnt == _updateCallCnt) { + wait(); + if (_stop) { break; } + } + + // safely copy synchronized data to local values that we will use for this runthrough + lastUpdateCallCnt = _updateCallCnt; + selectedOptions = _selectedOptions; + unknownDeckChoice = _unknownDeckChoice; + isMove = _isMove; + isOverwrite = _isOverwrite; + } + + // build operation log + StringBuilder log = new StringBuilder(); + int totalOps = 0; + for (OpType opType : selectedOptions) { + Map ops = _selections.get(opType); + totalOps += ops.size(); + + for (Map.Entry op : ops.entrySet()) { + File dest = op.getValue(); + if (OpType.UNKNOWN_DECK == opType) { + dest = new File(unknownDeckChoice.path, dest.getName()); + } + log.append(op.getKey().getAbsolutePath()).append(" -> "); + log.append(dest.getAbsolutePath()).append("\n"); + } + } + + // append summary + if (0 < totalOps) { + log.append("\n"); + } + log.append("Prepared to ").append(isMove ? "move" : "copy"); + log.append(" ").append(totalOps).append(" files\n"); + log.append(isOverwrite ? "O" : "Not o").append("verwriting existing files"); + + // set the JTextArea text directly (no need to use invokeLater: setText is thread-safe) + _operationLog.setText(log.toString()); + } + } + + @Override + public void run() { + try { _run(); } catch (final InterruptedException e) { + _cancel = true; + SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { + // we never interrupt the thread, so this is not expected to happen + BugReporter.reportException(e); + } + }); + } + } + } + + // asynchronously completes the specified I/O operations and updates the progress bar and operation log + private class _Importer extends SwingWorker { + private final String _srcDir; + private final Map _operations; + private final JTextArea _operationLog; + private final JProgressBar _progressBar; + private final boolean _move; + private final boolean _overwrite; + + public _Importer(String srcDir, Map>> selections, JComboBox unknownDeckCombo, + JTextArea operationLog, JProgressBar progressBar, boolean move, boolean overwrite) { + _srcDir = srcDir; + _operationLog = operationLog; + _progressBar = progressBar; + _move = move; + _overwrite = overwrite; + + // build local operations map that only includes data that we can access from the background thread + // use a tree map to maintain alphabetical order + _operations = new TreeMap(); + for (Map.Entry>> entry : selections.entrySet()) { + Pair> selection = entry.getValue(); + if (selection.getLeft().isSelected()) { + if (OpType.UNKNOWN_DECK != entry.getKey()) { + _operations.putAll(selection.getRight()); + } else { + // map unknown decks to selected directory + for (Map.Entry op : selection.getRight().entrySet()) { + _UnknownDeckChoice choice = (_UnknownDeckChoice)unknownDeckCombo.getSelectedItem(); + _operations.put(op.getKey(), new File(choice.path, op.getValue().getName())); + } + } + } + } + + // set progress bar bounds + _progressBar.setString(_move ? "Moving files..." : "Copying files..."); + _progressBar.setMinimum(0); + _progressBar.setMaximum(_operations.size()); + } + + @Override + protected Void doInBackground() throws Exception { + try { + // working with textbox text is thread safe + _operationLog.setText(""); + + // only update the text box once very half second + final long updateIntervalMs = 500; + long lastUpdateTimestampMs = System.currentTimeMillis(); + StringBuffer opLogBuf = new StringBuffer(); + + // only update the progress bar when we expect the visual value to change + final long progressInterval = Math.max(1, _operations.size() / _progressBar.getWidth()); + + // the length of the prefix to remove from source paths + final int srcPathPrefixLen; + if (_srcDir.endsWith("/") || _srcDir.endsWith(File.separator)) { + srcPathPrefixLen = _srcDir.length(); + } else + { + srcPathPrefixLen = _srcDir.length() + 1; + } + + // stats maintained during import sequence + int numOps = 0; + int numExisting = 0; + int numSucceeded = 0; + int numFailed = 0; + for (Map.Entry op : _operations.entrySet()) { + if (_cancel) { break; } + + final int curOpNum = ++numOps; + if (0 == curOpNum % progressInterval) { + SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { + if (_cancel) { return; } + _progressBar.setValue(curOpNum); + } + }); + } + + long curTimeMs = System.currentTimeMillis(); + if (updateIntervalMs <= curTimeMs - lastUpdateTimestampMs) { + lastUpdateTimestampMs = curTimeMs; + + // working with textbox text is thread safe + _operationLog.append(opLogBuf.toString()); + opLogBuf.setLength(0); + } + + File srcFile = op.getKey(); + File destFile = op.getValue(); + + try { + // simplify logged source path and log next attempted operation + String srcPath = srcFile.getAbsolutePath(); + // I doubt that the srcPath will start with anything other than _srcDir, even with symlinks, + // hardlinks, or Windows junctioned nodes, but it's better to be safe than to have malformed output + if (srcPath.startsWith(_srcDir)) { + srcPath = srcPath.substring(srcPathPrefixLen); + } + opLogBuf.append(_move ? "Moving " : "Copying ").append(srcPath).append(" -> "); + opLogBuf.append(destFile.getAbsolutePath()).append("\n"); + + if (!destFile.exists()) { + _copyFile(srcFile, destFile, _move); + } else { + if (_overwrite) { + opLogBuf.append(" Destination file exists; overwriting\n"); + _copyFile(srcFile, destFile, _move); + } else { + opLogBuf.append(" Destination file exists; skipping copy\n"); + } + ++numExisting; + } + + if (_move) { + // source file may have been deleted already if _copyFile was called + srcFile.delete(); + opLogBuf.append(" Removed source file after successful copy\n"); + } + + ++numSucceeded; + } catch (IOException e) { + opLogBuf.append(" Operation failed: ").append(e.getMessage()).append("\n"); + ++numFailed; + } + } + + // append summary footer + opLogBuf.append("\nImport complete: "); + opLogBuf.append(numSucceeded).append(" operation").append(1 == numSucceeded ? "" : "s").append(" succeeded, "); + opLogBuf.append(numFailed).append(" error").append(1 == numFailed ? "" : "s"); + if (0 < numExisting) { + opLogBuf.append(", ").append(numExisting); + if (_overwrite) { + opLogBuf.append(" existing destination files overwritten"); + } else { + opLogBuf.append(" copy operations skipped due to existing destination files"); + } + } + _operationLog.append(opLogBuf.toString()); + } catch (final Exception e) { + _cancel = true; + + // report any exceptions in a standard dialog + // note that regular I/O errors don't throw, they'll just be mentioned in the log + SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { + _progressBar.setString("Error"); + BugReporter.reportException(e); + } + }); + } + + return null; + } + + @Override + protected void done() { + _btnCancel.requestFocusInWindow(); + if (_cancel) { return; } + + _progressBar.setValue(_progressBar.getMaximum()); + _progressBar.setString("Import complete"); + _btnCancel.setText("Done"); + } + } + + // when copying is required, uses java nio classes for ultra-fast I/O + private static void _copyFile(File srcFile, File destFile, boolean deleteSrcAfter) throws IOException { + destFile.getParentFile().mkdirs(); + + // if this is a move, try a simple rename first + if (deleteSrcAfter) { + if (srcFile.renameTo(destFile)) { + return; + } + } + + if (!destFile.exists()) { + destFile.createNewFile(); + } + + FileChannel src = null; + FileChannel dest = null; + try { + src = new FileInputStream(srcFile).getChannel(); + dest = new FileOutputStream(destFile).getChannel(); + dest.transferFrom(src, 0, src.size()); + } finally { + if (src != null) { src.close(); } + if (dest != null) { dest.close(); } + } + + if (deleteSrcAfter) { + srcFile.delete(); + } + } +} diff --git a/src/main/java/forge/gui/ForgeAction.java b/src/main/java/forge/gui/ForgeAction.java index 7b3c1fcb010..5a91253866b 100644 --- a/src/main/java/forge/gui/ForgeAction.java +++ b/src/main/java/forge/gui/ForgeAction.java @@ -17,67 +17,44 @@ */ package forge.gui; -/** - * ForgeAction.java - * - * Created on 02.09.2009 - */ - import javax.swing.AbstractAction; import javax.swing.AbstractButton; import javax.swing.JMenuItem; -import forge.properties.ForgeProps; - -/** - * The class ForgeAction. - * - * @author Clemens Koza - * @version V0.0 02.09.2009 - */ +@SuppressWarnings("serial") public abstract class ForgeAction extends AbstractAction { - - /** Constant serialVersionUID=-1881183151063146955L. */ - private static final long serialVersionUID = -1881183151063146955L; - private final String property; - - /** - *

- * Constructor for ForgeAction. - *

- * - * @param property - * A Property key containing the keys "/button" and "/menu". - */ - public ForgeAction(final String property) { - super(ForgeProps.getLocalized(property + "/button")); - this.property = property; - this.putValue("buttonText", ForgeProps.getLocalized(property + "/button")); - this.putValue("menuText", ForgeProps.getLocalized(property + "/menu")); + public static enum MatchConstants { + ALWAYSACCEPT ("Always accept this trigger"), + ALWAYSDECLINE ("Always decline this trigger"), + ALWAYSASK ("Always ask"), + HUMANEXILED ("Player's Exile", "Exile:", "Player - View Exile"), + HUMANFLASHBACK("Play card with Flashback", "Flashback:", "Player - View Cards with Flashback"), + HUMANGRAVEYARD("Player's Graveyard", "Graveyard:", "Player - View Graveyard"), + HUMANHAND ("Player's Hand", "Hand:", "Player - View Hand"), + HUMANLIBRARY ("Player's Library", "Library:", "Player - View Library"); + + public final String title; + public final String button; + public final String menu; + + private MatchConstants(String title0) { + title = title0; + button = title0; + menu = title0; + } + private MatchConstants(String title0, String button0, String menu0) { + title = title0; + button = button0; + menu = menu0; + } + } + + public ForgeAction(MatchConstants property) { + super(property.button); + this.putValue("buttonText", property.button); + this.putValue("menuText", property.menu); } - /** - *

- * Getter for the field property. - *

- * - * @return a {@link java.lang.String} object. - */ - protected String getProperty() { - return this.property; - } - - /** - *

- * setupButton. - *

- * - * @param - * a T object. - * @param button - * a T object. - * @return a T object. - */ public T setupButton(final T button) { button.setAction(this); button.setText((String) this.getValue(button instanceof JMenuItem ? "menuText" : "buttonText")); diff --git a/src/main/java/forge/gui/GuiDisplayUtil.java b/src/main/java/forge/gui/GuiDisplayUtil.java index 79abe02e817..ffadf0ed562 100644 --- a/src/main/java/forge/gui/GuiDisplayUtil.java +++ b/src/main/java/forge/gui/GuiDisplayUtil.java @@ -34,14 +34,11 @@ import javax.swing.JFileChooser; import javax.swing.JOptionPane; import javax.swing.border.Border; -import org.apache.commons.lang.StringUtils; - import com.google.common.base.Predicates; import com.google.common.collect.Lists; import forge.Card; import forge.CardCharacteristicName; - import forge.CardLists; import forge.CardPredicates; import forge.CardUtil; @@ -61,29 +58,11 @@ import forge.item.CardDb; import forge.item.CardPrinted; import forge.item.IPaperCard; -/** - *

- * GuiDisplayUtil class. - *

- * - * @author Forge - * @version $Id$ - */ public final class GuiDisplayUtil { - private GuiDisplayUtil() { throw new AssertionError(); } - /** - *

- * getBorder. - *

- * - * @param card - * a {@link forge.Card} object. - * @return a {@link javax.swing.border.Border} object. - */ public static Border getBorder(final Card card) { // color info if (card == null) { @@ -137,11 +116,6 @@ public final class GuiDisplayUtil { } } - /** - *

- * devModeGenerateMana. - *

- */ public static void devModeGenerateMana() { final Card dummy = new Card(); final Player human = Singletons.getControl().getPlayer(); @@ -152,15 +126,6 @@ public final class GuiDisplayUtil { abMana.produceMana(null); } - /** - *

- * formatCardType. - *

- * - * @param card - * a {@link forge.Card} object. - * @return a {@link java.lang.String} object. - */ public static String formatCardType(final Card card) { final ArrayList list = card.getType(); final StringBuilder sb = new StringBuilder(); @@ -204,58 +169,6 @@ public final class GuiDisplayUtil { return sb.toString(); } - /** - *

- * cleanString. - *

- * - * @param in - * a {@link java.lang.String} object. - * @return a {@link java.lang.String} object. - */ - public static String cleanString(final String in) { - final StringBuffer out = new StringBuffer(); - char c; - for (int i = 0; i < in.length(); i++) { - c = in.charAt(i); - if ((c == ' ') || (c == '-')) { - out.append('_'); - } else if (Character.isLetterOrDigit(c) || (c == '_')) { - out.append(c); - } - } - return out.toString().toLowerCase(); - } - - /** - *

- * cleanStringMWS. - *

- * - * @param in - * a {@link java.lang.String} object. - * @return a {@link java.lang.String} object. - */ - public static String cleanStringMWS(final String in) { - final StringBuffer out = new StringBuffer(); - char c; - for (int i = 0; i < in.length(); i++) { - c = in.charAt(i); - if ((c == '"') || (c == '/') || (c == ':') || (c == '?')) { - out.append(""); - } else { - out.append(c); - } - } - return out.toString(); - } - - - /** - *

- * updateGUI. - *

- */ public static void updateGUI() { for (Player p : Singletons.getModel().getGame().getRegisteredPlayers()) { @@ -264,11 +177,6 @@ public final class GuiDisplayUtil { } } - /** - *

- * devSetupGameState. - *

- */ public static void devSetupGameState() { String tHumanLife = "-1"; String tComputerLife = "-1"; @@ -531,9 +439,6 @@ public final class GuiDisplayUtil { c.setCurSetCode(c.getMostRecentSet()); } - if (StringUtils.isBlank(c.getImageFilename())) - c.setImageFilename(CardUtil.buildFilename(c)); - cl.add(c); } return cl; diff --git a/src/main/java/forge/gui/GuiImportPicture.java b/src/main/java/forge/gui/GuiImportPicture.java deleted file mode 100644 index 98991f53059..00000000000 --- a/src/main/java/forge/gui/GuiImportPicture.java +++ /dev/null @@ -1,422 +0,0 @@ -/* - * Forge: Play Magic: the Gathering. - * Copyright (C) 2011 Forge Team - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package forge.gui; - -import java.awt.Color; -import java.awt.Dimension; -import java.awt.GridBagConstraints; -import java.awt.GridBagLayout; -import java.awt.Insets; -import java.awt.Rectangle; -import java.awt.event.MouseEvent; -import java.beans.PropertyChangeEvent; -import java.beans.PropertyChangeListener; -import java.io.File; -import java.util.ArrayList; -import java.util.List; - -import javax.swing.BorderFactory; -import javax.swing.JButton; -import javax.swing.JCheckBox; -import javax.swing.JDialog; -import javax.swing.JFileChooser; -import javax.swing.JFrame; -import javax.swing.JLabel; -import javax.swing.JPanel; -import javax.swing.JProgressBar; -import javax.swing.event.MouseInputAdapter; - -import forge.properties.ForgeProps; -import forge.properties.NewConstants; -import forge.util.CopyFiles; -import forge.util.FileFinder; - -/** - *

- * GUI_ImportPicture class. - *

- * - * @author Forge - * @version $Id$ - */ -public class GuiImportPicture extends JDialog { - /** Constant serialVersionUID=-4191539152208389089L. */ - private static final long serialVersionUID = -4191539152208389089L; - private JPanel jContentPane = null; - private JLabel jLabel = null; - private JLabel jLabel1 = null; - private JLabel jLabelSource = null; - private JButton jButtonSource = null; - private JPanel jPanel = null; - private JCheckBox jCheckBox = null; - private JButton jButtonStart = null; - - /** The frame. */ - private final GuiImportPicture frame; - private JLabel jLabelHDDFree = null; - private JLabel jLabelNeedSpace = null; - - /** The j label total files. */ - private JLabel jLabelTotalFiles = null; - private List listFiles; - private ArrayList fileCopyList; - private long freeSpaceM; - private int filesForCopy; - private String oldText; - private JProgressBar jProgressBar = null; - - /** - *

- * Constructor for GUI_ImportPicture. - *

- * - * @param owner - * a {@link javax.swing.JFrame} object. - */ - public GuiImportPicture(final JFrame owner) { - super(owner); - this.frame = this; - this.initialize(); - } - - /** - * This method initializes this. - */ - private void initialize() { - final Dimension screen = this.getToolkit().getScreenSize(); - final Rectangle bounds = this.getBounds(); - - bounds.width = 400; - bounds.height = 295; - this.setSize(new Dimension(400, 295)); - this.setResizable(false); - bounds.x = (screen.width - bounds.width) / 2; - bounds.y = (screen.height - bounds.height) / 2; - this.setBounds(bounds); - this.setModal(true); - this.setTitle("Import Picture"); - this.setContentPane(this.getJContentPane()); - } - - /** - * This method initializes jContentPane. - * - * @return javax.swing.JPanel - */ - private JPanel getJContentPane() { - if (this.jContentPane == null) { - this.jLabelTotalFiles = new JLabel(); - this.jLabelTotalFiles.setBounds(new Rectangle(15, 180, 248, 16)); - this.jLabelTotalFiles.setText("Total files for copying: Unknown."); - this.jLabelNeedSpace = new JLabel(); - this.jLabelNeedSpace.setBounds(new Rectangle(15, 150, 177, 16)); - this.jLabelNeedSpace.setText("HDD Need Space: Unknown."); - this.jLabelHDDFree = new JLabel(); - this.jLabelHDDFree.setBounds(new Rectangle(15, 119, 177, 16)); - - final File file = ForgeProps.getFile(NewConstants.IMAGE_BASE); - - final long freeSpace = file.getFreeSpace(); - this.freeSpaceM = freeSpace / 1024 / 1024; - - // MiB here is not a typo; it is the unit for megabytes calculated - // by powers of 1024 instead of 1000. - this.jLabelHDDFree.setText("HDD Free Space: " + this.freeSpaceM + " MiB"); - - this.jLabelSource = new JLabel(); - this.jLabelSource.setBounds(new Rectangle(63, 45, 267, 17)); - this.jLabelSource.setBorder(BorderFactory.createLineBorder(Color.black, 1)); - this.jLabelSource.setText(""); - this.jLabel1 = new JLabel(); - this.jLabel1.setBounds(new Rectangle(16, 45, 48, 17)); - this.jLabel1.setText("Source:"); - this.jLabel = new JLabel(); - this.jLabel.setBounds(new Rectangle(15, 15, 360, 19)); - this.jLabel.setText("Please select source directory:"); - this.jContentPane = new JPanel(); - this.jContentPane.setLayout(null); - this.jContentPane.add(this.jLabel, null); - this.jContentPane.add(this.jLabel1, null); - this.jContentPane.add(this.jLabelSource, null); - this.jContentPane.add(this.getJButtonSource(), null); - this.jContentPane.add(this.getJPanel(), null); - this.jContentPane.add(this.getJButtonStart(), null); - this.jContentPane.add(this.jLabelHDDFree, null); - this.jContentPane.add(this.jLabelNeedSpace, null); - this.jContentPane.add(this.jLabelTotalFiles, null); - this.jContentPane.add(this.getJProgressBar(), null); - } - return this.jContentPane; - } - - /** - * This method initializes jButtonSource. - * - * @return javax.swing.JButton - */ - private JButton getJButtonSource() { - if (this.jButtonSource == null) { - this.jButtonSource = new JButton(); - this.jButtonSource.setBounds(new Rectangle(329, 45, 47, 17)); - this.jButtonSource.setText("..."); - this.jButtonSource.addMouseListener(new java.awt.event.MouseAdapter() { - @Override - public void mouseClicked(final java.awt.event.MouseEvent e) { - JFileChooser chooser; - String choosertitle; - choosertitle = "Select source directory."; - chooser = new JFileChooser(); - chooser.setCurrentDirectory(new java.io.File(".")); - chooser.setDialogTitle(choosertitle); - chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY); - - chooser.setAcceptAllFileFilterUsed(false); - GuiImportPicture.this.oldText = GuiImportPicture.this.jLabelSource.getText(); - GuiImportPicture.this.jLabelSource.setText("Please wait..."); - if (chooser.showOpenDialog(GuiImportPicture.this.frame) == JFileChooser.APPROVE_OPTION) { - final FileFinder ff = new FileFinder(); - try { - GuiImportPicture.this.listFiles = ff.findFiles(chooser.getSelectedFile().toString(), - ".+\\.jpg"); - } catch (final Exception e2) { - e2.printStackTrace(); - } - GuiImportPicture.this.jLabelSource.setText(chooser.getSelectedFile().toString()); - if (GuiImportPicture.this.jCheckBox.isSelected()) { - GuiImportPicture.this.filesForCopy = ff.getFilesNumber(); - GuiImportPicture.this.jLabelTotalFiles.setText("Total files for copying: " - + GuiImportPicture.this.filesForCopy); - GuiImportPicture.this.jLabelNeedSpace.setText("HDD Need Space: " - + (ff.getDirectorySize() / 1024 / 1024) + " MB"); - GuiImportPicture.this.jProgressBar.setValue(0); - if ((GuiImportPicture.this.freeSpaceM > (ff.getDirectorySize() / 1024 / 1024)) - && (GuiImportPicture.this.filesForCopy > 0)) { - GuiImportPicture.this.jButtonStart.setEnabled(true); - } - - } else { - String fName; - int start; - long filesToCopySize; - GuiImportPicture.this.filesForCopy = 0; - filesToCopySize = 0; - GuiImportPicture.this.fileCopyList = new ArrayList(); - - for (int i = 0; i < GuiImportPicture.this.listFiles.size(); i++) { - - fName = GuiImportPicture.this.listFiles.get(i).getName(); - start = fName.indexOf("full"); - fName = fName.substring(0, start - 1) + fName.substring(start + 4, fName.length() - 4); - fName = GuiDisplayUtil.cleanString(fName) + ".jpg"; - final File file = new File(ForgeProps.getFile(NewConstants.IMAGE_BASE), fName); - if (!file.exists()) { - GuiImportPicture.this.filesForCopy = GuiImportPicture.this.filesForCopy + 1; - filesToCopySize = filesToCopySize + GuiImportPicture.this.listFiles.get(i).length(); - GuiImportPicture.this.fileCopyList.add(GuiImportPicture.this.listFiles.get(i)); - } - } - GuiImportPicture.this.jLabelTotalFiles.setText("Total files for copying: " - + GuiImportPicture.this.filesForCopy); - GuiImportPicture.this.jLabelNeedSpace.setText("HDD Need Space: " - + (filesToCopySize / 1024 / 1024) + " MB"); - GuiImportPicture.this.jProgressBar.setValue(0); - if ((GuiImportPicture.this.freeSpaceM > (filesToCopySize / 1024 / 1024)) - && (GuiImportPicture.this.filesForCopy > 0)) { - GuiImportPicture.this.jButtonStart.setEnabled(true); - } - } - - } else { - if (GuiImportPicture.this.oldText.equals("")) { - GuiImportPicture.this.jLabelSource.setText(""); - } else { - GuiImportPicture.this.jLabelSource.setText(GuiImportPicture.this.oldText); - } - - } - } - }); - } - return this.jButtonSource; - } - - /** - * This method initializes jPanel. - * - * @return javax.swing.JPanel - */ - private JPanel getJPanel() { - if (this.jPanel == null) { - final GridBagConstraints gridBagConstraints = new GridBagConstraints(); - gridBagConstraints.gridx = 0; - gridBagConstraints.gridwidth = 2; - gridBagConstraints.insets = new Insets(0, 0, 0, 120); - gridBagConstraints.gridy = 0; - this.jPanel = new JPanel(); - this.jPanel.setLayout(new GridBagLayout()); - this.jPanel.setBounds(new Rectangle(15, 74, 362, 31)); - this.jPanel.setBorder(BorderFactory.createLineBorder(Color.black, 1)); - this.jPanel.add(this.getJCheckBox(), gridBagConstraints); - } - return this.jPanel; - } - - /** - * This method initializes jCheckBox. - * - * @return javax.swing.JCheckBox - */ - private JCheckBox getJCheckBox() { - if (this.jCheckBox == null) { - this.jCheckBox = new JCheckBox(); - this.jCheckBox.setSelected(false); - this.jCheckBox.setText("Overwriting picture in resource folder"); - this.jCheckBox.addMouseListener(new java.awt.event.MouseAdapter() { - @Override - public void mouseClicked(final java.awt.event.MouseEvent e) { - GuiImportPicture.this.jButtonStart.setEnabled(false); - if (GuiImportPicture.this.jLabelSource.getText().equals("")) { - final FileFinder ff = new FileFinder(); - try { - GuiImportPicture.this.listFiles = ff.findFiles(GuiImportPicture.this.jLabelSource.getText() - .toString(), ".+\\.jpg"); - } catch (final Exception e2) { - e2.printStackTrace(); - } - if (GuiImportPicture.this.jCheckBox.isSelected()) { - GuiImportPicture.this.filesForCopy = ff.getFilesNumber(); - GuiImportPicture.this.jLabelTotalFiles.setText("Total files for copying: " - + GuiImportPicture.this.filesForCopy); - GuiImportPicture.this.jLabelNeedSpace.setText("HDD Need Space: " - + (ff.getDirectorySize() / 1024 / 1024) + " MB"); - GuiImportPicture.this.jProgressBar.setValue(0); - if ((GuiImportPicture.this.freeSpaceM > (ff.getDirectorySize() / 1024 / 1024)) - && (GuiImportPicture.this.filesForCopy > 0)) { - GuiImportPicture.this.jButtonStart.setEnabled(true); - } - } else { - - String fName; - int start; - long filesToCopySize; - GuiImportPicture.this.filesForCopy = 0; - filesToCopySize = 0; - GuiImportPicture.this.fileCopyList = new ArrayList(); - - for (int i = 0; i < GuiImportPicture.this.listFiles.size(); i++) { - - fName = GuiImportPicture.this.listFiles.get(i).getName(); - start = fName.indexOf("full"); - fName = fName.substring(0, start - 1) + fName.substring(start + 4, fName.length() - 4); - fName = GuiDisplayUtil.cleanString(fName) + ".jpg"; - final File file = new File(ForgeProps.getFile(NewConstants.IMAGE_BASE), fName); - if (!file.exists()) { - GuiImportPicture.this.filesForCopy = GuiImportPicture.this.filesForCopy + 1; - filesToCopySize = filesToCopySize + GuiImportPicture.this.listFiles.get(i).length(); - GuiImportPicture.this.fileCopyList.add(GuiImportPicture.this.listFiles.get(i)); - } - } - GuiImportPicture.this.jLabelTotalFiles.setText("Total files for copying: " - + GuiImportPicture.this.filesForCopy); - GuiImportPicture.this.jLabelNeedSpace.setText("HDD Need Space: " - + (filesToCopySize / 1024 / 1024) + " MB"); - GuiImportPicture.this.jProgressBar.setValue(0); - if ((GuiImportPicture.this.freeSpaceM > (filesToCopySize / 1024 / 1024)) - && (GuiImportPicture.this.filesForCopy > 0)) { - GuiImportPicture.this.jButtonStart.setEnabled(true); - } - } - } - } - }); - } - return this.jCheckBox; - } - - /** - * This method initializes jButtonStart. - * - * @return javax.swing.JButton - */ - private JButton getJButtonStart() { - if (this.jButtonStart == null) { - this.jButtonStart = new JButton(); - this.jButtonStart.setEnabled(false); - this.jButtonStart.setBounds(new Rectangle(136, 239, 123, 17)); - this.jButtonStart.setText("Import"); - // jButtonStart.addMouseListener(new CustomListener()); - this.jButtonStart.addMouseListener(new MouseInputAdapter() { - @Override - public void mouseClicked(final MouseEvent e) { - - if (GuiImportPicture.this.jButtonStart.isEnabled()) { - GuiImportPicture.this.jLabelTotalFiles.setText("Please wait while all files are copying."); - if (GuiImportPicture.this.jCheckBox.isSelected()) { - GuiImportPicture.this.jButtonStart.setEnabled(false); - GuiImportPicture.this.jCheckBox.setEnabled(false); - GuiImportPicture.this.jButtonSource.setEnabled(false); - final CopyFiles cFiles = new CopyFiles(GuiImportPicture.this.listFiles, - GuiImportPicture.this.jLabelTotalFiles, GuiImportPicture.this.jProgressBar, - GuiImportPicture.this.jCheckBox, GuiImportPicture.this.jButtonSource); - cFiles.addPropertyChangeListener(new PropertyChangeListener() { - @Override - public void propertyChange(final PropertyChangeEvent evt) { - if ("progress".equals(evt.getPropertyName())) { - GuiImportPicture.this.jProgressBar.setValue((Integer) evt.getNewValue()); - } - } - }); - cFiles.execute(); - } else { - GuiImportPicture.this.jButtonStart.setEnabled(false); - GuiImportPicture.this.jCheckBox.setEnabled(false); - GuiImportPicture.this.jButtonSource.setEnabled(false); - final CopyFiles cFiles = new CopyFiles(GuiImportPicture.this.fileCopyList, - GuiImportPicture.this.jLabelTotalFiles, GuiImportPicture.this.jProgressBar, - GuiImportPicture.this.jCheckBox, GuiImportPicture.this.jButtonSource); - cFiles.addPropertyChangeListener(new PropertyChangeListener() { - @Override - public void propertyChange(final PropertyChangeEvent evt) { - if ("progress".equals(evt.getPropertyName())) { - GuiImportPicture.this.jProgressBar.setValue((Integer) evt.getNewValue()); - } - } - }); - } - } - } - }); - } - return this.jButtonStart; - } - - /** - * This method initializes jProgressBar. - * - * @return javax.swing.JProgressBar - */ - private JProgressBar getJProgressBar() { - if (this.jProgressBar == null) { - this.jProgressBar = new JProgressBar(); - this.jProgressBar.setBounds(new Rectangle(15, 210, 363, 18)); - this.jProgressBar.setMinimum(0); - this.jProgressBar.setMaximum(100); - } - return this.jProgressBar; - } -} // @jve:decl-index=0:visual-constraint="10,10" diff --git a/src/main/java/forge/gui/MigrationSourceAnalyzer.java b/src/main/java/forge/gui/MigrationSourceAnalyzer.java new file mode 100644 index 00000000000..4ab50412cf3 --- /dev/null +++ b/src/main/java/forge/gui/MigrationSourceAnalyzer.java @@ -0,0 +1,658 @@ +/* + * Forge: Play Magic: the Gathering. + * Copyright (c) 2013 Forge Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package forge.gui; + +import java.io.File; +import java.util.HashMap; +import java.util.Locale; +import java.util.Map; +import java.util.TreeMap; + +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.tuple.Pair; + +import com.google.common.base.Predicate; +import com.google.common.collect.Iterables; + +import forge.Singletons; +import forge.card.CardEdition; +import forge.card.CardRules; +import forge.card.EditionCollection; +import forge.item.CardDb; +import forge.item.CardPrinted; +import forge.item.IPaperCard; +import forge.properties.NewConstants; +import forge.util.FileUtil; + +public class MigrationSourceAnalyzer { + public static enum OpType { + CONSTRUCTED_DECK, + DRAFT_DECK, + PLANAR_DECK, + SCHEME_DECK, + SEALED_DECK, + UNKNOWN_DECK, + DEFAULT_CARD_PIC, + SET_CARD_PIC, + TOKEN_PIC, + QUEST_PIC, + GAUNTLET_DATA, + QUEST_DATA, + PREFERENCE_FILE, + DB_FILE + } + + public static interface AnalysisCallback { + boolean checkCancel(); + void addOp(OpType type, File src, File dest); + } + + private final File _source; + private final AnalysisCallback _cb; + private final int _numFilesToAnalyze; + + private int _numFilesAnalyzed; + + public MigrationSourceAnalyzer(String source, AnalysisCallback cb) { + _source = new File(source); + _cb = cb; + + _numFilesToAnalyze = _countFiles(_source); + } + + public int getNumFilesToAnalyze() { return _numFilesToAnalyze; } + public int getNumFilesAnalyzed() { return _numFilesAnalyzed; } + + public void doAnalysis() { + _identifyAndAnalyze(_source); + } + + private void _identifyAndAnalyze(File root) { + // see if we can figure out the likely identity of the source folder and + // dispatch to the best analysis subroutine to handle it + String dirname = root.getName(); + + if ("res".equalsIgnoreCase(dirname)) { _analyzeOldResDir(root); } + else if ("constructed".equalsIgnoreCase(dirname)) { _analyzeConstructedDeckDir(root); } + else if ("draft".equalsIgnoreCase(dirname)) { _analyzeDraftDeckDir(root); } + else if ("plane".equalsIgnoreCase(dirname) || "planar".equalsIgnoreCase(dirname)) { _analyzePlanarDeckDir(root); } + else if ("scheme".equalsIgnoreCase(dirname)) { _analyzeSchemeDeckDir(root); } + else if ("sealed".equalsIgnoreCase(dirname)) { _analyzeSealedDeckDir(root); } + else if (StringUtils.containsIgnoreCase(dirname, "deck")) { _analyzeDecksDir(root); } + else if ("gauntlet".equalsIgnoreCase(dirname)) { _analyzeGauntletDataDir(root); } + else if ("layouts".equalsIgnoreCase(dirname)) { _analyzeLayoutsDir(root); } + else if ("pics".equalsIgnoreCase(dirname)) { _analyzeCardPicsDir(root); } + else if ("pics_product".equalsIgnoreCase(dirname)) { _analyzeProductPicsDir(root); } + else if ("preferences".equalsIgnoreCase(dirname)) { _analyzePreferencesDir(root); } + else if ("quest".equalsIgnoreCase(dirname)) { _analyzeQuestDir(root); } + else if (null != Singletons.getModel().getEditions().get(dirname)) { _analyzeCardPicsSetDir(root); } + else { + // look at files in directory and make a semi-educated guess based on file extensions + int numUnhandledFiles = 0; + for (File file : root.listFiles()) { + if (_cb.checkCancel()) { return; } + + if (file.isFile()) { + String filename = file.getName(); + if (StringUtils.endsWithIgnoreCase(filename, ".dck")) { + _analyzeDecksDir(root); + numUnhandledFiles = 0; + break; + } else if (StringUtils.endsWithIgnoreCase(filename, ".jpg")) { + _analyzeCardPicsDir(root); + numUnhandledFiles = 0; + break; + } + + ++numUnhandledFiles; + } else if (file.isDirectory()) { + _identifyAndAnalyze(file); + } + } + _numFilesAnalyzed += numUnhandledFiles; + } + } + + ////////////////////////////////////////////////////////////////////////// + // pre-profile res dir + // + + private void _analyzeOldResDir(File root) { + _analyzeDir(root, new _Analyzer() { + @Override boolean onDir(File dir) { + String dirname = dir.getName(); + if ("decks".equalsIgnoreCase(dirname)) { + _analyzeDecksDir(dir); + } else if ("gauntlet".equalsIgnoreCase(dirname)) { + _analyzeGauntletDataDir(dir); + } else if ("layouts".equalsIgnoreCase(dirname)) { + _analyzeLayoutsDir(dir); + } else if ("pics".equalsIgnoreCase(dirname)) { + _analyzeCardPicsDir(dir); + } else if ("pics_product".equalsIgnoreCase(dirname)) { + _analyzeProductPicsDir(dir); + } else if ("preferences".equalsIgnoreCase(dirname)) { + _analyzePreferencesDir(dir); + } else if ("quest".equalsIgnoreCase(dirname)) { + _analyzeQuestDir(dir); + } else { + return false; + } + return true; + } + }); + } + + ////////////////////////////////////////////////////////////////////////// + // decks + // + + private void _analyzeDecksDir(File root) { + _analyzeDir(root, new _Analyzer() { + @Override void onFile(File file) { + // we don't really expect any files in here, but if we find a .dck file, add it to the unknown list + String filename = file.getName(); + if (StringUtils.endsWithIgnoreCase(filename, ".dck")) { + File targetFile = new File(_lcaseExt(filename)); + _cb.addOp(OpType.UNKNOWN_DECK, file, targetFile); + } + } + + @Override boolean onDir(File dir) { + String dirname = dir.getName(); + if ("constructed".equalsIgnoreCase(dirname)) { + _analyzeConstructedDeckDir(dir); + } else if ("cube".equalsIgnoreCase(dirname)) { + return false; + } else if ("draft".equalsIgnoreCase(dirname)) { + _analyzeDraftDeckDir(dir); + } else if ("plane".equalsIgnoreCase(dirname) || "planar".equalsIgnoreCase(dirname)) { + _analyzePlanarDeckDir(dir); + } else if ("scheme".equalsIgnoreCase(dirname)) { + _analyzeSchemeDeckDir(dir); + } else if ("sealed".equalsIgnoreCase(dirname)) { + _analyzeSealedDeckDir(dir); + } else { + _analyzeKnownDeckDir(dir, null, OpType.UNKNOWN_DECK); + } + return true; + } + }); + } + + private void _analyzeConstructedDeckDir(File root) { + _analyzeKnownDeckDir(root, NewConstants.DECK_CONSTRUCTED_DIR, OpType.CONSTRUCTED_DECK); + } + + private void _analyzeDraftDeckDir(File root) { + _analyzeKnownDeckDir(root, NewConstants.DECK_DRAFT_DIR, OpType.DRAFT_DECK); + } + + private void _analyzePlanarDeckDir(File root) { + _analyzeKnownDeckDir(root, NewConstants.DECK_PLANE_DIR, OpType.PLANAR_DECK); + } + + private void _analyzeSchemeDeckDir(File root) { + _analyzeKnownDeckDir(root, NewConstants.DECK_SCHEME_DIR, OpType.SCHEME_DECK); + } + + private void _analyzeSealedDeckDir(File root) { + _analyzeKnownDeckDir(root, NewConstants.DECK_SEALED_DIR, OpType.SEALED_DECK); + } + + private void _analyzeKnownDeckDir(File root, final String targetDir, final OpType opType) { + _analyzeDir(root, new _Analyzer() { + @Override void onFile(File file) { + String filename = file.getName(); + if (StringUtils.endsWithIgnoreCase(filename, ".dck")) { + File targetFile = new File(targetDir, _lcaseExt(filename)); + if (!file.equals(targetFile)) { + _cb.addOp(opType, file, targetFile); + } + } + } + + @Override boolean onDir(File dir) { + // if there's a dir beneath a known directory, assume the same kind of decks are in there + _analyzeKnownDeckDir(dir, targetDir, opType); + return true; + } + }); + } + + ////////////////////////////////////////////////////////////////////////// + // gauntlet + // + + private void _analyzeGauntletDataDir(File root) { + _analyzeDir(root, new _Analyzer() { + @Override void onFile(File file) { + // find *.dat files, but exclude LOCKED_* + String filename = file.getName(); + if (StringUtils.endsWithIgnoreCase(filename, ".dat") && !filename.startsWith("LOCKED_")) { + File targetFile = new File(NewConstants.GAUNTLET_DIR.userPrefLoc, _lcaseExt(filename)); + if (!file.equals(targetFile)) { + _cb.addOp(OpType.GAUNTLET_DATA, file, targetFile); + } + } + } + }); + } + + ////////////////////////////////////////////////////////////////////////// + // layouts + // + + private void _analyzeLayoutsDir(File root) { + _analyzeDir(root, new _Analyzer() { + @Override void onFile(File file) { + // find *_preferred.xml files + String filename = file.getName(); + if (StringUtils.endsWithIgnoreCase(filename, "_preferred.xml")) { + File targetFile = new File(NewConstants.USER_PREFS_DIR, + file.getName().toLowerCase(Locale.ENGLISH).replace("_preferred", "")); + _cb.addOp(OpType.PREFERENCE_FILE, file, targetFile); + } + } + }); + } + + ////////////////////////////////////////////////////////////////////////// + // default card pics + // + + private static String _oldCleanString(String in) { + final StringBuffer out = new StringBuffer(); + char c; + for (int i = 0; i < in.length(); i++) { + c = in.charAt(i); + if ((c == ' ') || (c == '-')) { + out.append('_'); + } else if (Character.isLetterOrDigit(c) || (c == '_')) { + out.append(c); + } + } + + // usually we would want to pass Locale.ENGLISH to the toLowerCase() method to prevent unintentional + // character mangling on some system locales, but we want to replicate the old code here exactly + return out.toString().toLowerCase(); + } + + private void _addDefaultPicNames(CardPrinted c, boolean backFace) { + CardRules cardRules = c.getRules(); + String urls = backFace ? cardRules.getPictureOtherSideUrl() : cardRules.getPictureUrl(); + if (StringUtils.isEmpty(urls)) { return; } + + int numPics = urls.split("\\\\").length; + for (int artIdx = 0; numPics > artIdx; ++artIdx) { + String filename = c.getImageKey(backFace, artIdx, false) + ".jpg"; + _defaultPicNames.put(filename, filename); + + final String oldFilenameBase; + if (cardRules.getType().isPlane() || cardRules.getType().isPhenomenon()) { + oldFilenameBase = _oldCleanString(filename.replace(".jpg", "")); + } else { + oldFilenameBase = _oldCleanString(filename.replace(".full.jpg", "")); + } + + if (0 == artIdx) { + // remove trailing "1" from first art index + String oldFilename = oldFilenameBase.replaceAll("1$", "") + ".jpg"; + _defaultPicOldNameToCurrentName.put(oldFilename, filename); + } else { + // offset art indices by one + String oldFilename = oldFilenameBase.replaceAll("[0-9]+$", String.valueOf(artIdx)) + ".jpg"; + _defaultPicOldNameToCurrentName.put(oldFilename, filename); + } + } + } + + private Map _defaultPicNames; + private Map _defaultPicOldNameToCurrentName; + private void _analyzeCardPicsDir(File root) { + if (null == _defaultPicNames) { + _defaultPicNames = new TreeMap(String.CASE_INSENSITIVE_ORDER); + _defaultPicOldNameToCurrentName = new TreeMap(String.CASE_INSENSITIVE_ORDER); + + for (CardPrinted c : CardDb.instance().getUniqueCards()) { + _addDefaultPicNames(c, false); + _addDefaultPicNames(c, true); + } + + for (CardPrinted c : CardDb.variants().getUniqueCards()) { + _addDefaultPicNames(c, false); + _addDefaultPicNames(c, true); + } + } + + _analyzeListedDir(root, NewConstants.CACHE_CARD_PICS_DIR, new _ListedAnalyzer() { + @Override public String map(String filename) { + if (_defaultPicOldNameToCurrentName.containsKey(filename)) { + return _defaultPicOldNameToCurrentName.get(filename); + } + return _defaultPicNames.containsKey(filename) ? _defaultPicNames.get(filename) : null; + } + + @Override public OpType getOpType(String filename) { return OpType.DEFAULT_CARD_PIC; } + + @Override boolean onDir(File dir) { + if ("icons".equalsIgnoreCase(dir.getName())) { + _analyzeIconsPicsDir(dir); + } else if ("tokens".equalsIgnoreCase(dir.getName())) { + _analyzeTokenPicsDir(dir); + } else { + _analyzeCardPicsSetDir(dir); + } + return true; + } + }); + } + + ////////////////////////////////////////////////////////////////////////// + // set card pics + // + + private static void _addSetCards(Map cardFileNames, Iterable library, Predicate filter) { + for (CardPrinted c : Iterables.filter(library, filter)) { + boolean hasBackFace = null != c.getRules().getPictureOtherSideUrl(); + String filename = c.getImageKey(false, c.getArtIndex(), true) + ".jpg"; + cardFileNames.put(filename, filename); + if (hasBackFace) { + filename = c.getImageKey(true, c.getArtIndex(), true) + ".jpg"; + cardFileNames.put(filename, filename); + } + } + } + + Map> _cardFileNamesBySet; + Map _nameUpdates; + private void _analyzeCardPicsSetDir(File root) { + if (null == _cardFileNamesBySet) { + _cardFileNamesBySet = new TreeMap>(String.CASE_INSENSITIVE_ORDER); + for (CardEdition ce : Singletons.getModel().getEditions()) { + Map cardFileNames = new TreeMap(String.CASE_INSENSITIVE_ORDER); + Predicate filter = IPaperCard.Predicates.printedInSets(ce.getCode()); + _addSetCards(cardFileNames, CardDb.instance().getAllCards(), filter); + _addSetCards(cardFileNames, CardDb.variants().getAllCards(), filter); + _cardFileNamesBySet.put(ce.getCode2(), cardFileNames); + } + + // planar cards now don't have the ".full" part in their filenames + _nameUpdates = new TreeMap(String.CASE_INSENSITIVE_ORDER); + Predicate predPlanes = new Predicate() { + @Override + public boolean apply(CardPrinted arg0) { + return arg0.getRules().getType().isPlane() || arg0.getRules().getType().isPhenomenon(); + } + }; + + for (CardPrinted c : Iterables.filter(CardDb.variants().getAllCards(), predPlanes)) { + boolean hasBackFace = null != c.getRules().getPictureOtherSideUrl(); + String baseName = c.getImageKey(false, c.getArtIndex(), true); + _nameUpdates.put(baseName + ".full.jpg", baseName + ".jpg"); + if (hasBackFace) { + baseName = c.getImageKey(true, c.getArtIndex(), true); + _nameUpdates.put(baseName + ".full.jpg", baseName + ".jpg"); + } + } + } + + EditionCollection editions = Singletons.getModel().getEditions(); + String editionCode = root.getName(); + CardEdition edition = editions.get(editionCode); + if (null == edition) { + // not a valid set name, skip + _numFilesAnalyzed += _countFiles(root); + return; + } + + final String editionCode2 = edition.getCode2(); + final Map validFilenames = _cardFileNamesBySet.get(editionCode2); + _analyzeListedDir(root, NewConstants.CACHE_CARD_PICS_DIR, new _ListedAnalyzer() { + @Override public String map(String filename) { + filename = editionCode2 + "/" + filename; + if (_nameUpdates.containsKey(filename)) { + filename = _nameUpdates.get(filename); + } + return validFilenames.containsKey(filename) ? validFilenames.get(filename) : null; + } + @Override public OpType getOpType(String filename) { return OpType.SET_CARD_PIC; } + }); + } + + ////////////////////////////////////////////////////////////////////////// + // other image dirs + // + + Map _iconFileNames; + private void _analyzeIconsPicsDir(File root) { + if (null == _iconFileNames) { + _iconFileNames = new TreeMap(String.CASE_INSENSITIVE_ORDER); + for (Pair nameurl : FileUtil.readNameUrlFile(NewConstants.IMAGE_LIST_QUEST_OPPONENT_ICONS_FILE)) { + _iconFileNames.put(nameurl.getLeft(), nameurl.getLeft()); + } + for (Pair nameurl : FileUtil.readNameUrlFile(NewConstants.IMAGE_LIST_QUEST_PET_SHOP_ICONS_FILE)) { + _iconFileNames.put(nameurl.getLeft(), nameurl.getLeft()); + } + } + + _analyzeListedDir(root, NewConstants.CACHE_ICON_PICS_DIR, new _ListedAnalyzer() { + @Override public String map(String filename) { return _iconFileNames.containsKey(filename) ? _iconFileNames.get(filename) : null; } + @Override public OpType getOpType(String filename) { return OpType.QUEST_PIC; } + }); + } + + Map _tokenFileNames; + Map _questTokenFileNames; + private void _analyzeTokenPicsDir(File root) { + if (null == _tokenFileNames) { + _tokenFileNames = new TreeMap(String.CASE_INSENSITIVE_ORDER); + _questTokenFileNames = new TreeMap(String.CASE_INSENSITIVE_ORDER); + for (Pair nameurl : FileUtil.readNameUrlFile(NewConstants.IMAGE_LIST_TOKENS_FILE)) { + _tokenFileNames.put(nameurl.getLeft(), nameurl.getLeft()); + } + for (Pair nameurl : FileUtil.readNameUrlFile(NewConstants.IMAGE_LIST_QUEST_TOKENS_FILE)) { + _questTokenFileNames.put(nameurl.getLeft(), nameurl.getLeft()); + } + } + + _analyzeListedDir(root, NewConstants.CACHE_TOKEN_PICS_DIR, new _ListedAnalyzer() { + @Override public String map(String filename) { + if (_questTokenFileNames.containsKey(filename)) { return _questTokenFileNames.get(filename); } + if (_tokenFileNames.containsKey(filename)) { return _tokenFileNames.get(filename); } + return null; + } + @Override public OpType getOpType(String filename) { + return _questTokenFileNames.containsKey(filename) ? OpType.QUEST_PIC : OpType.TOKEN_PIC; + } + }); + } + + private void _analyzeProductPicsDir(File root) { + // we don't care about the files in the root dir -- the new files are .png, not the current .jpg ones + _analyzeDir(root, new _Analyzer() { + @Override boolean onDir(File dir) { + String dirName = dir.getName(); + if ("booster".equalsIgnoreCase(dirName)) { + _analyzeSimpleListedDir(dir, NewConstants.IMAGE_LIST_QUEST_BOOSTERS_FILE, NewConstants.CACHE_BOOSTER_PICS_DIR, OpType.QUEST_PIC); + } else if ("fatpacks".equalsIgnoreCase(dirName)) { + _analyzeSimpleListedDir(dir, NewConstants.IMAGE_LIST_QUEST_FATPACKS_FILE, NewConstants.CACHE_FATPACK_PICS_DIR, OpType.QUEST_PIC); + } else if ("precons".equalsIgnoreCase(dirName)) { + _analyzeSimpleListedDir(dir, NewConstants.IMAGE_LIST_QUEST_PRECONS_FILE, NewConstants.CACHE_PRECON_PICS_DIR, OpType.QUEST_PIC); + } else if ("tournamentpacks".equalsIgnoreCase(dirName)) { + _analyzeSimpleListedDir(dir, NewConstants.IMAGE_LIST_QUEST_TOURNAMENTPACKS_FILE, NewConstants.CACHE_TOURNAMENTPACK_PICS_DIR, OpType.QUEST_PIC); + } else { + return false; + } + return true; + } + }); + } + + ////////////////////////////////////////////////////////////////////////// + // preferences + // + + private void _analyzePreferencesDir(File root) { + _analyzeDir(root, new _Analyzer() { + @Override void onFile(File file) { + String filename = file.getName(); + if ("editor.preferences".equalsIgnoreCase(filename) || "forge.preferences".equalsIgnoreCase(filename)) { + File targetFile = new File(NewConstants.USER_PREFS_DIR, filename.toLowerCase(Locale.ENGLISH)); + if (!file.equals(targetFile)) { + _cb.addOp(OpType.PREFERENCE_FILE, file, targetFile); + } + } + } + }); + } + + ////////////////////////////////////////////////////////////////////////// + // quest data + // + + private void _analyzeQuestDir(File root) { + _analyzeDir(root, new _Analyzer() { + @Override void onFile(File file) { + String filename = file.getName(); + if ("all-prices.txt".equalsIgnoreCase(filename)) { + File targetFile = new File(NewConstants.DB_DIR, filename.toLowerCase(Locale.ENGLISH)); + if (!file.equals(targetFile)) { + _cb.addOp(OpType.DB_FILE, file, targetFile); + } + } + } + @Override boolean onDir(File dir) { + if ("data".equalsIgnoreCase(dir.getName())) { + _analyzeQuestDataDir(dir); + return true; + } + return false; + } + }); + } + + private void _analyzeQuestDataDir(File root) { + _analyzeDir(root, new _Analyzer() { + @Override void onFile(File file) { + String filename = file.getName(); + if (StringUtils.endsWithIgnoreCase(filename, ".dat")) { + File targetFile = new File(NewConstants.QUEST_SAVE_DIR, _lcaseExt(filename)); + if (!file.equals(targetFile)) { + _cb.addOp(OpType.QUEST_DATA, file, targetFile); + } + } + } + }); + } + + ////////////////////////////////////////////////////////////////////////// + // utility functions + // + + private class _Analyzer { + void onFile(File file) { } + + // returns whether the directory has been handled + boolean onDir(File dir) { return false; } + } + + private void _analyzeDir(File root, _Analyzer analyzer) { + for (File file : root.listFiles()) { + if (_cb.checkCancel()) { return; } + + if (file.isFile()) { + ++_numFilesAnalyzed; + analyzer.onFile(file); + } else if (file.isDirectory()) { + if (!analyzer.onDir(file)) { + _numFilesAnalyzed += _countFiles(file); + } + } + } + } + + private Map> _fileNameDb = new HashMap>(); + private void _analyzeSimpleListedDir(File root, String listFile, String targetDir, final OpType opType) { + if (!_fileNameDb.containsKey(listFile)) { + Map fileNames = new TreeMap(String.CASE_INSENSITIVE_ORDER); + for (Pair nameurl : FileUtil.readNameUrlFile(listFile)) { + // we use a map instead of a set since we need to match case-insensitively but still map to the correct case + fileNames.put(nameurl.getLeft(), nameurl.getLeft()); + } + _fileNameDb.put(listFile, fileNames); + } + + final Map fileDb = _fileNameDb.get(listFile); + _analyzeListedDir(root, targetDir, new _ListedAnalyzer() { + @Override public String map(String filename) { return fileDb.containsKey(filename) ? fileDb.get(filename) : null; } + @Override public OpType getOpType(String filename) { return opType; } + }); + } + + private abstract class _ListedAnalyzer { + abstract String map(String filename); + abstract OpType getOpType(String filename); + + // returns whether the directory has been handled + boolean onDir(File dir) { return false; } + } + + private void _analyzeListedDir(File root, final String targetDir, final _ListedAnalyzer listedAnalyzer) { + _analyzeDir(root, new _Analyzer() { + @Override void onFile(File file) { + String filename = listedAnalyzer.map(file.getName()); + if (null != filename) { + File targetFile = new File(targetDir, filename); + if (!file.equals(targetFile)) { + _cb.addOp(listedAnalyzer.getOpType(filename), file, targetFile); + } + } + } + + @Override boolean onDir(File dir) { return listedAnalyzer.onDir(dir); } + }); + } + + private int _countFiles(File root) { + int count = 0; + for (File file : root.listFiles()) { + if (_cb.checkCancel()) { return 0; } + + if (file.isFile()) { + ++count; + } else if (file.isDirectory()) { + count += _countFiles(file); + } + } + return count; + } + + private String _lcaseExt(String filename) { + int lastDotIdx = filename.lastIndexOf('.'); + if (0 > lastDotIdx) { + return filename; + } + String basename = filename.substring(0, lastDotIdx); + String ext = filename.substring(lastDotIdx).toLowerCase(Locale.ENGLISH); + if (filename.endsWith(ext)) { + return filename; + } + return basename + ext; + } +} diff --git a/src/main/java/forge/gui/deckeditor/DeckImport.java b/src/main/java/forge/gui/deckeditor/DeckImport.java index 69d02986828..d637217b51a 100644 --- a/src/main/java/forge/gui/deckeditor/DeckImport.java +++ b/src/main/java/forge/gui/deckeditor/DeckImport.java @@ -26,13 +26,13 @@ import java.util.List; import javax.swing.BorderFactory; import javax.swing.JButton; +import javax.swing.JCheckBox; import javax.swing.JDialog; import javax.swing.JEditorPane; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JScrollPane; import javax.swing.JTextArea; -import javax.swing.JCheckBox; import javax.swing.border.TitledBorder; import javax.swing.event.DocumentEvent; import javax.swing.event.DocumentListener; @@ -44,8 +44,8 @@ import net.miginfocom.swing.MigLayout; import forge.deck.Deck; import forge.deck.DeckBase; import forge.deck.DeckRecognizer; -import forge.deck.DeckSection; import forge.deck.DeckRecognizer.TokenType; +import forge.deck.DeckSection; import forge.gui.GuiUtils; import forge.gui.deckeditor.controllers.ACEditorBase; import forge.item.CardPrinted; diff --git a/src/main/java/forge/gui/deckeditor/SEditorIO.java b/src/main/java/forge/gui/deckeditor/SEditorIO.java index 6c95d1f14ec..47208545ae3 100644 --- a/src/main/java/forge/gui/deckeditor/SEditorIO.java +++ b/src/main/java/forge/gui/deckeditor/SEditorIO.java @@ -1,11 +1,8 @@ package forge.gui.deckeditor; -import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; -import java.io.InputStream; -import java.io.OutputStream; import java.util.HashMap; import java.util.Iterator; import java.util.Map; @@ -201,7 +198,7 @@ public class SEditorIO { */ private static void save() throws Exception { final XMLOutputFactory out = XMLOutputFactory.newInstance(); - final XMLEventWriter writer = out.createXMLEventWriter(new FileOutputStream(NewConstants.PREFS_EDITOR_FILE)); + final XMLEventWriter writer = out.createXMLEventWriter(new FileOutputStream(NewConstants.EDITOR_PREFERENCES_FILE.userPrefLoc)); writer.add(EVENT_FACTORY.createStartDocument()); writer.add(NEWLINE); @@ -252,37 +249,17 @@ public class SEditorIO { } private static void load() throws Exception { - // Preferences files have been consolidated into res/preferences/. - // This code is here temporarily to facilitate this transfer. - // After a while, this can be deleted. Doublestrike 21-5-12 - final File oldFile = new File("editor.preferences"); - if (oldFile.exists()) { - final File newFile = new File(NewConstants.PREFS_EDITOR_FILE); - final InputStream in = new FileInputStream(oldFile); - final OutputStream out = new FileOutputStream(newFile); - - byte[] buf = new byte[1024]; - int len; - while ((len = in.read(buf)) > 0) { - out.write(buf, 0, len); - } - in.close(); - out.close(); - - oldFile.delete(); - } // END TEMPORARY CONSOLIDATION FACILITATION - final XMLInputFactory inputFactory = XMLInputFactory.newInstance(); PREFS.clear(); COLS.clear(); // read in defaults - loadPrefs(inputFactory.createXMLEventReader(new FileInputStream(NewConstants.PREFS_DEFAULT_EDITOR_FILE))); + loadPrefs(inputFactory.createXMLEventReader(new FileInputStream(NewConstants.EDITOR_PREFERENCES_FILE.defaultLoc))); try { // overwrite defaults with user preferences, if they exist - loadPrefs(inputFactory.createXMLEventReader(new FileInputStream(NewConstants.PREFS_EDITOR_FILE))); + loadPrefs(inputFactory.createXMLEventReader(new FileInputStream(NewConstants.EDITOR_PREFERENCES_FILE.userPrefLoc))); } catch (FileNotFoundException e) { /* ignore; it's ok if this file doesn't exist */ } finally { diff --git a/src/main/java/forge/gui/deckeditor/controllers/CCurrentDeck.java b/src/main/java/forge/gui/deckeditor/controllers/CCurrentDeck.java index c074f39f145..56da1921d25 100644 --- a/src/main/java/forge/gui/deckeditor/controllers/CCurrentDeck.java +++ b/src/main/java/forge/gui/deckeditor/controllers/CCurrentDeck.java @@ -20,7 +20,6 @@ import forge.gui.deckeditor.tables.DeckController; import forge.gui.deckeditor.views.VCurrentDeck; import forge.gui.framework.ICDoc; import forge.gui.toolbox.FLabel; -import forge.properties.ForgeProps; import forge.properties.NewConstants; /** @@ -35,9 +34,7 @@ public enum CCurrentDeck implements ICDoc { private static File previousDirectory = null; - private File openStartDir = ForgeProps.getFile(NewConstants.NEW_DECKS); - - private JFileChooser fileChooser = new JFileChooser(""); + private JFileChooser fileChooser = new JFileChooser(NewConstants.DECK_BASE_DIR); //========== Overridden methods @@ -166,8 +163,6 @@ public enum CCurrentDeck implements ICDoc { private File getImportFilename() { fileChooser.setDialogTitle("Import Deck"); - fileChooser.setCurrentDirectory(openStartDir); - final int returnVal = fileChooser.showOpenDialog(null); if (returnVal == JFileChooser.APPROVE_OPTION) { diff --git a/src/main/java/forge/gui/deckeditor/controllers/CEditorConstructed.java b/src/main/java/forge/gui/deckeditor/controllers/CEditorConstructed.java index 0275b377a99..a2683e15652 100644 --- a/src/main/java/forge/gui/deckeditor/controllers/CEditorConstructed.java +++ b/src/main/java/forge/gui/deckeditor/controllers/CEditorConstructed.java @@ -23,6 +23,7 @@ import java.util.Map; import com.google.common.base.Predicates; import com.google.common.base.Supplier; + import forge.Command; import forge.Singletons; import forge.card.CardRulesPredicates; diff --git a/src/main/java/forge/gui/deckeditor/controllers/CStatistics.java b/src/main/java/forge/gui/deckeditor/controllers/CStatistics.java index 5fd06fca47b..07c675c25bd 100644 --- a/src/main/java/forge/gui/deckeditor/controllers/CStatistics.java +++ b/src/main/java/forge/gui/deckeditor/controllers/CStatistics.java @@ -6,10 +6,11 @@ import javax.swing.JLabel; import com.google.common.base.Predicate; import com.google.common.base.Predicates; + import forge.Command; -import forge.card.MagicColor; -import forge.card.CardRulesPredicates; import forge.card.CardRules; +import forge.card.CardRulesPredicates; +import forge.card.MagicColor; import forge.deck.DeckBase; import forge.gui.deckeditor.CDeckEditorUI; import forge.gui.deckeditor.SEditorUtil; diff --git a/src/main/java/forge/gui/deckeditor/tables/ManaCostRenderer.java b/src/main/java/forge/gui/deckeditor/tables/ManaCostRenderer.java index b1d86407488..eab283e18bf 100644 --- a/src/main/java/forge/gui/deckeditor/tables/ManaCostRenderer.java +++ b/src/main/java/forge/gui/deckeditor/tables/ManaCostRenderer.java @@ -26,8 +26,8 @@ import javax.swing.table.DefaultTableCellRenderer; import forge.card.CardRules; import forge.card.CardSplitType; -import forge.card.mana.ManaCostShard; import forge.card.mana.ManaCost; +import forge.card.mana.ManaCostShard; import forge.gui.toolbox.CardFaceSymbols; /** diff --git a/src/main/java/forge/gui/deckeditor/tables/SColumnUtil.java b/src/main/java/forge/gui/deckeditor/tables/SColumnUtil.java index 208c0f84834..502730706cd 100644 --- a/src/main/java/forge/gui/deckeditor/tables/SColumnUtil.java +++ b/src/main/java/forge/gui/deckeditor/tables/SColumnUtil.java @@ -31,10 +31,10 @@ import com.google.common.base.Function; import forge.Singletons; import forge.card.CardAiHints; -import forge.card.CardRules; -import forge.card.ColorSet; import forge.card.CardEdition; import forge.card.CardRarity; +import forge.card.CardRules; +import forge.card.ColorSet; import forge.card.mana.ManaCost; import forge.deck.DeckBase; import forge.game.limited.DraftRankCache; diff --git a/src/main/java/forge/gui/deckeditor/views/VCurrentDeck.java b/src/main/java/forge/gui/deckeditor/views/VCurrentDeck.java index d540c2c3773..1b0dd77d4ec 100644 --- a/src/main/java/forge/gui/deckeditor/views/VCurrentDeck.java +++ b/src/main/java/forge/gui/deckeditor/views/VCurrentDeck.java @@ -76,7 +76,7 @@ public enum VCurrentDeck implements IVDoc, ITableContainer { private final JLabel btnPrintProxies = new FLabel.Builder() .fontSize(14) - .tooltip("Print Proxies") + .tooltip("Print to HTML file") .iconInBackground(true) .iconAlignX(SwingConstants.CENTER) .icon(FSkin.getIcon(FSkin.InterfaceIcons.ICO_PRINT)) diff --git a/src/main/java/forge/gui/download/GuiDownloadPicturesLQ.java b/src/main/java/forge/gui/download/GuiDownloadPicturesLQ.java index 46b8b344e86..b1560e060c0 100644 --- a/src/main/java/forge/gui/download/GuiDownloadPicturesLQ.java +++ b/src/main/java/forge/gui/download/GuiDownloadPicturesLQ.java @@ -19,114 +19,64 @@ package forge.gui.download; import java.io.File; import java.util.ArrayList; +import java.util.HashSet; +import java.util.Set; + +import org.apache.commons.lang3.StringUtils; import forge.card.CardRules; -import forge.card.CardSplitType; -import forge.card.ICardCharacteristics; -import forge.gui.GuiDisplayUtil; import forge.item.CardDb; -import forge.item.IPaperCard; -import forge.properties.ForgeProps; +import forge.item.CardPrinted; import forge.properties.NewConstants; -/** - *

- * Gui_DownloadPictures_LQ class. - *

- * - * @author Forge - * @version $Id$ - */ +@SuppressWarnings("serial") public class GuiDownloadPicturesLQ extends GuiDownloader { - - private static final long serialVersionUID = -2839597792999139007L; - private String baseFolder; - private ArrayList downloads; - - /** - * - * TODO: Write javadoc for this method. - */ public GuiDownloadPicturesLQ() { super(); } - /** - *

- * getNeededCards. - *

- * - * @return an array of {@link forge.gui.download.GuiDownloader.DownloadObject} objects. - */ @Override - protected final DownloadObject[] getNeededImages() { - // This is called as a virtual method from constructor. - baseFolder = ForgeProps.getFile(NewConstants.IMAGE_BASE).getPath(); - downloads = new ArrayList(); + protected final ArrayList getNeededImages() { + ArrayList downloads = new ArrayList(); + Set filenames = new HashSet(); - for (final IPaperCard c : CardDb.instance().getUniqueCards()) { - //System.out.println(c.getName()); - CardRules cardRules = c.getRules(); - if (cardRules != null && cardRules.getSplitType() == CardSplitType.Split && cardRules.getOtherPart() != null) { - this.createDLObjects(cardRules.getPictureUrl(), String.format("%s%s", cardRules.getMainPart().getName(), cardRules.getOtherPart().getName())); - } else { - this.createDLObjects(cardRules.getPictureUrl(), cardRules.getMainPart().getName()); - } - - ICardCharacteristics secondSide = cardRules.getOtherPart(); - if (secondSide != null && cardRules.getSplitType() == CardSplitType.Transform) { - this.createDLObjects(cardRules.getPictureOtherSideUrl(), secondSide.getName()); - } + for (CardPrinted c : CardDb.instance().getUniqueCards()) { + addDLObject(c, false, downloads, filenames); + addDLObject(c, true, downloads, filenames); } + for (CardPrinted c : CardDb.variants().getUniqueCards()) { + addDLObject(c, false, downloads, filenames); + addDLObject(c, true, downloads, filenames); + } + // Add missing tokens to the list of things to download. - for (final DownloadObject element : GuiDownloader.readFileWithNames(NewConstants.TOKEN_IMAGES, - ForgeProps.getFile(NewConstants.IMAGE_TOKEN))) { - if (!element.getDestination().exists()) { - downloads.add(element); - } + addMissingItems(downloads, NewConstants.IMAGE_LIST_TOKENS_FILE, NewConstants.CACHE_TOKEN_PICS_DIR); + + return downloads; + } + + private void addDLObject(CardPrinted c, boolean backFace, ArrayList downloads, Set filenames) { + CardRules cardRules = c.getRules(); + String urls = backFace ? cardRules.getPictureOtherSideUrl() : cardRules.getPictureUrl(); + if (StringUtils.isEmpty(urls)) { + return; } - // Return all card names and URLs that are needed. - return downloads.toArray(new DownloadObject[downloads.size()]); - } // getNeededImages() + int artIdx = -1; + for (String url : urls.split("\\\\")) { + ++artIdx; - private void createDLObjects(final String url, final String cardName) { - - if (url != null && !url.isEmpty()) { - final String[] urls = url.split("\\\\"); - - final String sName = GuiDisplayUtil.cleanString(cardName); - addDownloadObject(urls[0], new File(baseFolder, sName + ".jpg")); - - for (int j = 1; j < urls.length; j++) { - addDownloadObject(urls[j], new File(baseFolder, sName + j + ".jpg")); + String filename = c.getImageKey(backFace, artIdx, false); + if (filenames.contains(filename)) { + continue; + } + filenames.add(filename); + + File destFile = new File(NewConstants.CACHE_CARD_PICS_DIR, filename + ".jpg"); + if (!destFile.exists()) { + downloads.add(new DownloadObject(url, destFile)); } } } - - private void addDownloadObject(String url, File destFile) { - if (!destFile.exists()) { - downloads.add(new DownloadObject(url, destFile)); - } - } - - /** - * Builds the ideal filename. - * - * @param cardName - * the card name - * @param artIndex - * the art index - * @param artIndexMax - * the art index max - * @return the string - */ - public static String buildIdealFilename(final String cardName, final int artIndex, final int artIndexMax) { - final String nn = artIndexMax > 1 ? Integer.toString(artIndex + 1) : ""; - final String mwsCardName = GuiDisplayUtil.cleanStringMWS(cardName); - // 3 letter set code with MWS filename format - return String.format("%s%s.full.jpg", mwsCardName, nn); - } - } diff --git a/src/main/java/forge/gui/download/GuiDownloadPrices.java b/src/main/java/forge/gui/download/GuiDownloadPrices.java index 157dac80942..b9e5653b0c7 100644 --- a/src/main/java/forge/gui/download/GuiDownloadPrices.java +++ b/src/main/java/forge/gui/download/GuiDownloadPrices.java @@ -18,30 +18,21 @@ package forge.gui.download; import java.io.File; +import java.util.ArrayList; + +import com.google.common.collect.Lists; -import forge.properties.ForgeProps; import forge.properties.NewConstants; -/** */ @SuppressWarnings("serial") public class GuiDownloadPrices extends GuiDownloader { - - /** - * Constructor. - */ public GuiDownloadPrices() { super(); } - /* (non-Javadoc) - * @see forge.gui.download.GuiDownloader#getNeededImages() - */ @Override - protected DownloadObject[] getNeededImages() { - final File f = ForgeProps.getFile(NewConstants.Quest.PRICE); - final String url = "http://www.cardforge.org/MagicInfo/pricegen.php"; - final DownloadObject[] objects = {new DownloadObject(url, f)}; - return objects; + protected ArrayList getNeededImages() { + final File f = new File(NewConstants.QUEST_CARD_PRICE_FILE); + return Lists.newArrayList(new DownloadObject(NewConstants.URL_PRICE_DOWNLOAD, f)); } - -} // @jve:decl-index=0:visual-constraint="10,10" +} diff --git a/src/main/java/forge/gui/download/GuiDownloadQuestImages.java b/src/main/java/forge/gui/download/GuiDownloadQuestImages.java index 25ccf870a6b..b09c8605de6 100644 --- a/src/main/java/forge/gui/download/GuiDownloadQuestImages.java +++ b/src/main/java/forge/gui/download/GuiDownloadQuestImages.java @@ -18,9 +18,7 @@ package forge.gui.download; import java.util.ArrayList; -import java.util.List; -import forge.properties.ForgeProps; import forge.properties.NewConstants; /** */ @@ -43,39 +41,18 @@ public class GuiDownloadQuestImages extends GuiDownloader { * @return an array of {@link forge.gui.download.GuiDownloadSetPicturesLQ} objects. */ @Override - protected final DownloadObject[] getNeededImages() { + protected final ArrayList getNeededImages() { // read all card names and urls - final List urls = new ArrayList(); + final ArrayList urls = new ArrayList(); - for (final DownloadObject questOpponent : GuiDownloader.readFile(NewConstants.Quest.OPPONENT_ICONS, ForgeProps.getFile(NewConstants.Quest.OPPONENT_DIR))) { - if (!questOpponent.getDestination().exists()) { - urls.add(questOpponent); - } - } + addMissingItems(urls, NewConstants.IMAGE_LIST_QUEST_OPPONENT_ICONS_FILE, NewConstants.CACHE_ICON_PICS_DIR); + addMissingItems(urls, NewConstants.IMAGE_LIST_QUEST_PET_SHOP_ICONS_FILE, NewConstants.CACHE_ICON_PICS_DIR); + addMissingItems(urls, NewConstants.IMAGE_LIST_QUEST_BOOSTERS_FILE, NewConstants.CACHE_BOOSTER_PICS_DIR); + addMissingItems(urls, NewConstants.IMAGE_LIST_QUEST_FATPACKS_FILE, NewConstants.CACHE_FATPACK_PICS_DIR); + addMissingItems(urls, NewConstants.IMAGE_LIST_QUEST_PRECONS_FILE, NewConstants.CACHE_PRECON_PICS_DIR); + addMissingItems(urls, NewConstants.IMAGE_LIST_QUEST_TOURNAMENTPACKS_FILE, NewConstants.CACHE_TOURNAMENTPACK_PICS_DIR); + addMissingItems(urls, NewConstants.IMAGE_LIST_QUEST_TOKENS_FILE, NewConstants.CACHE_TOKEN_PICS_DIR); - for (final DownloadObject boosterImage : GuiDownloader.readFile(NewConstants.PICS_BOOSTER_IMAGES, ForgeProps.getFile(NewConstants.IMAGE_SEALED_PRODUCT))) { - if (!boosterImage.getDestination().exists()) { - urls.add(boosterImage); - } - } - - for (final DownloadObject petIcon : GuiDownloader.readFileWithNames(NewConstants.Quest.PET_SHOP_ICONS, ForgeProps.getFile(NewConstants.IMAGE_ICON))) { - if (!petIcon.getDestination().exists()) { - urls.add(petIcon); - } - } - - for (final DownloadObject questPet : GuiDownloader.readFileWithNames(NewConstants.Quest.PET_TOKEN_IMAGES, ForgeProps.getFile(NewConstants.IMAGE_TOKEN))) { - if (!questPet.getDestination().exists()) { - urls.add(questPet); - } - } - - // return all card names and urls that are needed - final DownloadObject[] out = new DownloadObject[urls.size()]; - urls.toArray(out); - - return out; - } // getNeededCards() - -} // end class GuiDownloadQuestImages + return urls; + } +} diff --git a/src/main/java/forge/gui/download/GuiDownloadSetPicturesLQ.java b/src/main/java/forge/gui/download/GuiDownloadSetPicturesLQ.java index 44b73ff4523..7437c415c11 100644 --- a/src/main/java/forge/gui/download/GuiDownloadSetPicturesLQ.java +++ b/src/main/java/forge/gui/download/GuiDownloadSetPicturesLQ.java @@ -24,114 +24,45 @@ import org.apache.commons.lang3.StringUtils; import com.google.common.collect.Iterables; -import forge.CardUtil; -import forge.Singletons; -import forge.card.CardEdition; -import forge.card.CardRules; -import forge.card.CardSplitType; import forge.item.CardDb; import forge.item.CardPrinted; -import forge.properties.ForgeProps; import forge.properties.NewConstants; -import forge.util.Base64Coder; -/** */ @SuppressWarnings("serial") public class GuiDownloadSetPicturesLQ extends GuiDownloader { - private String picturesPath; - - /** - *

- * Constructor for Gui_DownloadSetPictures_LQ. - *

- */ public GuiDownloadSetPicturesLQ() { super(); } - /** - * Adds the card to list. - * - * @param cList - * the c list - * @param c - * the c - * @param cardName - * the card name - */ - protected final void addCardToList(final ArrayList cList, final CardPrinted c, final String cardName) { - final String setCode3 = c.getEdition(); - final CardEdition thisSet = Singletons.getModel().getEditions().get(setCode3); - final String setCode2 = thisSet.getCode2(); - final int artsCnt = c.getRules().getEditionInfo(setCode3).getCopiesCount(); - - final String imgFN = CardUtil.buildFilename(c, cardName); - final boolean foundSetImage = imgFN.contains(setCode3) || imgFN.contains(setCode2); - - if (!foundSetImage) { - String url = getCardPictureUrl(c, cardName); - - final String filename = GuiDownloadPicturesLQ.buildIdealFilename(cardName, c.getArtIndex(), artsCnt); - cList.add(new DownloadObject(url, new File(this.picturesPath + File.separator + setCode3, filename))); - - System.out.println(String.format("%s [%s - %s]", cardName, setCode3, thisSet.getName())); - } - } - - public static String getCardPictureUrl(final CardPrinted c, final String cardName) { - final String urlBase = ForgeProps.getProperty(NewConstants.CARDFORGE_URL) + "/fpics/"; - - final String setCode3 = c.getEdition(); - final CardEdition thisSet = Singletons.getModel().getEditions().get(setCode3); - final String setCode2 = thisSet.getCode2(); - - final int artsCnt = c.getRules().getEditionInfo(setCode3).getCopiesCount(); - final String filename = GuiDownloadPicturesLQ.buildIdealFilename(cardName, c.getArtIndex(), artsCnt); - return urlBase + setCode2 + "/" + Base64Coder.encodeString(filename, true); - } - - /** - *

- * getNeededCards. - *

- * - * @return an array of {@link forge.gui.download.GuiDownloader.DownloadObject} objects. - */ @Override - protected final DownloadObject[] getNeededImages() { - if (this.picturesPath == null) { - this.picturesPath = ForgeProps.getFile(NewConstants.IMAGE_BASE).getPath(); - } - // read token names and urls - final ArrayList cList = new ArrayList(); + protected final ArrayList getNeededImages() { + ArrayList downloads = new ArrayList(); - Iterable allPrinted = Iterables.concat(CardDb.instance().getAllCards(), CardDb.variants().getAllCards()); - - for (final CardPrinted c : allPrinted) { + for (final CardPrinted c : Iterables.concat(CardDb.instance().getAllCards(), CardDb.variants().getAllCards())) { final String setCode3 = c.getEdition(); if (StringUtils.isBlank(setCode3) || "???".equals(setCode3)) { - continue; // we don't want cards from unknown sets + // we don't want cards from unknown sets + continue; } - CardRules cr = c.getRules(); - String firstPartName = cr.getSplitType() == CardSplitType.Split ? CardUtil.buildSplitCardFilename(cr) : c.getName(); - this.addCardToList(cList, c, firstPartName); - if (cr.getSplitType() == CardSplitType.Transform) { - this.addCardToList(cList, c, cr.getOtherPart().getName()); + + addDLObject(c.getImageUrlPath(false), c.getImageKey(), downloads); + + String backFaceImage = c.getImageKey(true); + if (backFaceImage != null) { + addDLObject(c.getImageUrlPath(true), backFaceImage, downloads); } } - // add missing tokens to the list of things to download - for (final DownloadObject element : GuiDownloader.readFileWithNames(NewConstants.TOKEN_IMAGES, ForgeProps.getFile(NewConstants.IMAGE_TOKEN))) { - if (!element.getDestination().exists()) { - cList.add(element); - } + // Add missing tokens to the list of things to download. + addMissingItems(downloads, NewConstants.IMAGE_LIST_TOKENS_FILE, NewConstants.CACHE_TOKEN_PICS_DIR); + + return downloads; + } + + private void addDLObject(String urlPath, String filename, ArrayList downloads) { + File destFile = new File(NewConstants.CACHE_CARD_PICS_DIR, filename + ".jpg"); + if (!destFile.exists()) { + downloads.add(new DownloadObject(NewConstants.URL_PIC_DOWNLOAD + urlPath, destFile)); } - - // return all card names and urls that are needed - final DownloadObject[] out = new DownloadObject[cList.size()]; - cList.toArray(out); - - return out; - } // getNeededImages() - -} // end class Gui_DownloadSetPictures_LQ + } +} diff --git a/src/main/java/forge/gui/download/GuiDownloader.java b/src/main/java/forge/gui/download/GuiDownloader.java index 11c73adb0cd..946576f3b71 100644 --- a/src/main/java/forge/gui/download/GuiDownloader.java +++ b/src/main/java/forge/gui/download/GuiDownloader.java @@ -32,9 +32,7 @@ import java.net.MalformedURLException; import java.net.Proxy; import java.net.URL; import java.util.ArrayList; -import java.util.List; import java.util.Random; -import java.util.regex.Pattern; import javax.swing.AbstractButton; import javax.swing.DefaultBoundedRangeModel; @@ -50,7 +48,7 @@ import javax.swing.event.ChangeListener; import net.miginfocom.swing.MigLayout; -import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.tuple.Pair; import com.esotericsoftware.minlog.Log; @@ -65,16 +63,11 @@ import forge.gui.toolbox.FProgressBar; import forge.gui.toolbox.FRadioButton; import forge.gui.toolbox.FSkin; import forge.gui.toolbox.JXButtonPanel; -import forge.properties.ForgeProps; -import forge.properties.NewConstants; import forge.util.FileUtil; import forge.util.MyRandom; -/** */ @SuppressWarnings("serial") public abstract class GuiDownloader extends DefaultBoundedRangeModel implements Runnable { - - /** */ public static final Proxy.Type[] TYPES = Proxy.Type.values(); /** */ // Actions and commands @@ -100,28 +93,27 @@ public abstract class GuiDownloader extends DefaultBoundedRangeModel implements private final FPanel pnlDialog = new FPanel(new MigLayout("insets 0, gap 0, wrap, ax center, ay center")); private final FProgressBar barProgress = new FProgressBar(); private final FButton btnStart = new FButton("Start"); - private final JTextField txfAddr = new JTextField(ForgeProps.getLocalized(NewConstants.Lang.GuiDownloadPictures.PROXY_ADDRESS)); - private final JTextField txfPort = new JTextField(ForgeProps.getLocalized(NewConstants.Lang.GuiDownloadPictures.PROXY_PORT)); + private final JTextField txfAddr = new JTextField("Proxy Address"); + private final JTextField txfPort = new JTextField("Proxy Port"); private final FLabel btnClose = new FLabel.Builder().text("X") .hoverable(true).fontAlign(SwingConstants.CENTER).cmdClick(cmdClose).build(); - private final JRadioButton radProxyNone = new FRadioButton(ForgeProps.getLocalized(NewConstants.Lang.GuiDownloadPictures.NO_PROXY)); - private final JRadioButton radProxySocks = new FRadioButton(ForgeProps.getLocalized(NewConstants.Lang.GuiDownloadPictures.SOCKS_PROXY)); - private final JRadioButton radProxyHTTP = new FRadioButton(ForgeProps.getLocalized(NewConstants.Lang.GuiDownloadPictures.HTTP_PROXY)); + private final JRadioButton radProxyNone = new FRadioButton("No Proxy"); + private final JRadioButton radProxySocks = new FRadioButton("SOCKS Proxy"); + private final JRadioButton radProxyHTTP = new FRadioButton("HTTP Proxy"); // Proxy info - private int type; /** */ + private int type; // Progress variables - private DownloadObject[] cards; /** */ - private int card; /** */ - private boolean cancel; /** */ - private final long[] times = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; /** */ - private int tptr = 0; /** */ - private long lTime = System.currentTimeMillis(); /** */ + private ArrayList cards; + private int card; + private boolean cancel; + private final long[] times = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; + private int tptr = 0; + private long lTime = System.currentTimeMillis(); - /** Constructor. */ protected GuiDownloader() { String radConstraints = "w 100%!, h 30px!, gap 2% 0 0 10px"; JXButtonPanel grpPanel = new JXButtonPanel(); @@ -160,7 +152,11 @@ public abstract class GuiDownloader extends DefaultBoundedRangeModel implements SwingWorker thrGetImages = new SwingWorker() { @Override protected Void doInBackground() throws Exception { - GuiDownloader.this.cards = GuiDownloader.this.getNeededImages(); + try { + GuiDownloader.this.cards = GuiDownloader.this.getNeededImages(); + } catch (Exception e) { + e.printStackTrace(); + } return null; } @@ -174,22 +170,20 @@ public abstract class GuiDownloader extends DefaultBoundedRangeModel implements } private void readyToStart() { - if (this.cards.length == 0) { + if (this.cards.size() == 0) { barProgress.setString("All items have been downloaded."); btnStart.setVisible(true); btnStart.setText("OK"); btnStart.addActionListener(actOK); } else { - barProgress.setMaximum(this.cards.length); + barProgress.setMaximum(this.cards.size()); barProgress.setString( - this.cards.length == 1 - ? "1 item found." - : this.cards.length + " items found."); - + this.cards.size() == 1 ? "1 item found." : this.cards.size() + " items found."); btnStart.setVisible(true); btnStart.addActionListener(actStartDownload); } + SwingUtilities.invokeLater(new Runnable() { @Override public void run() { @@ -210,13 +204,6 @@ public abstract class GuiDownloader extends DefaultBoundedRangeModel implements FOverlay.SINGLETON_INSTANCE.getPanel().removeAll(); } - /** - *

- * getAverageTimePerObject. - *

- * - * @return a int. - */ protected final int getAverageTimePerObject() { int numNonzero = 10; @@ -239,14 +226,6 @@ public abstract class GuiDownloader extends DefaultBoundedRangeModel implements return tTime / Math.max(1, numNonzero); } - /** - *

- * update. - *

- * - * @param card - * a int. - */ private void update(final int card) { this.card = card; @@ -257,9 +236,6 @@ public abstract class GuiDownloader extends DefaultBoundedRangeModel implements this.card = card; } - /** - * - */ @Override public void run() { GuiDownloader.this.fireStateChanged(); @@ -268,10 +244,10 @@ public abstract class GuiDownloader extends DefaultBoundedRangeModel implements final int a = GuiDownloader.this.getAverageTimePerObject(); - if (this.card != GuiDownloader.this.cards.length) { - sb.append(this.card + "/" + GuiDownloader.this.cards.length + " - "); + if (this.card != GuiDownloader.this.cards.size()) { + sb.append(this.card + "/" + GuiDownloader.this.cards.size() + " - "); - long t2Go = (GuiDownloader.this.cards.length - this.card) * a; + long t2Go = (GuiDownloader.this.cards.size() - this.card) * a; boolean secOnly = true; if (t2Go > 3600000) { @@ -290,23 +266,17 @@ public abstract class GuiDownloader extends DefaultBoundedRangeModel implements sb.append(String.format("0:%02d remaining.", t2Go / 1000)); } } else { - sb.append(String.format(ForgeProps.getLocalized(NewConstants.Lang.GuiDownloadPictures.BAR_CLOSE), - this.card, GuiDownloader.this.cards.length)); + sb.append(String.format("%d of %d items finished! Please close!", + this.card, GuiDownloader.this.cards.size())); } GuiDownloader.this.barProgress.setString(sb.toString()); - System.out.println(this.card + "/" + GuiDownloader.this.cards.length + " - " + a); + System.out.println(this.card + "/" + GuiDownloader.this.cards.size() + " - " + a); } } EventQueue.invokeLater(new Worker(card)); } - /** - *

- * run. - *

- */ - @Override public final void run() { BufferedInputStream in; BufferedOutputStream out; @@ -322,7 +292,7 @@ public abstract class GuiDownloader extends DefaultBoundedRangeModel implements Integer.parseInt(this.txfPort.getText()))); } catch (final Exception ex) { BugReporter.reportException(ex, - ForgeProps.getLocalized(NewConstants.Lang.GuiDownloadPictures.Errors.PROXY_CONNECT), + "Proxy connection could not be established!\nProxy address: %s\nProxy port: %s", this.txfAddr.getText(), this.txfPort.getText()); return; } @@ -331,21 +301,21 @@ public abstract class GuiDownloader extends DefaultBoundedRangeModel implements if (p != null) { final byte[] buf = new byte[1024]; int len; - for (this.update(0); (this.card < this.cards.length) && !this.cancel; this.update(this.card + 1)) { - - final String url = this.cards[this.card].getSource(); - final File fileDest = this.cards[this.card].getDestination(); + for (this.update(0); (this.card < this.cards.size()) && !this.cancel; this.update(this.card + 1)) { + final String url = this.cards.get(this.card).getSource(); + final File fileDest = this.cards.get(this.card).getDestination(); final File base = fileDest.getParentFile(); + //System.out.println(String.format("Downloading %s to %s", url, fileDest.getPath())); try { // test for folder existence if (!base.exists() && !base.mkdir()) { // create folder if not found System.out.println("Can't create folder" + base.getAbsolutePath()); } - // Don't allow redirections here! - + URL imageUrl = new URL(url); HttpURLConnection conn = (HttpURLConnection) imageUrl.openConnection(); + // don't allow redirections here -- they indicate 'file not found' on the server conn.setInstanceFollowRedirects(false); conn.connect(); @@ -361,7 +331,6 @@ public abstract class GuiDownloader extends DefaultBoundedRangeModel implements while ((len = in.read(buf)) != -1) { // user cancelled if (this.cancel) { - conn.disconnect(); in.close(); out.flush(); out.close(); @@ -374,7 +343,6 @@ public abstract class GuiDownloader extends DefaultBoundedRangeModel implements out.write(buf, 0, len); } // while - read and write file - conn.disconnect(); in.close(); out.flush(); out.close(); @@ -389,7 +357,7 @@ public abstract class GuiDownloader extends DefaultBoundedRangeModel implements Log.error("LQ Pictures", "Error downloading pictures", ex); } - // throttle -- why? + // throttle to reduce load on the server try { Thread.sleep(r.nextInt(250) + 250); } catch (final InterruptedException e) { @@ -397,108 +365,26 @@ public abstract class GuiDownloader extends DefaultBoundedRangeModel implements } } // for } - } // run + } - /** - *

- * getNeededCards. - *

- * - * @return an array of {@link forge.gui.download.GuiDownloader.DownloadObject} objects. - */ - protected abstract DownloadObject[] getNeededImages(); + protected abstract ArrayList getNeededImages(); - /** - *

- * readFile. - *

- * - * @param urlsFile - * a {@link java.lang.String} object. - * @param dir - * a {@link java.util.File} object. - * @return an array of {@link forge.gui.download.GuiDownloader.DownloadObject} objects. - */ - protected static List readFile(final String urlsFile, final File dir) { - List fileLines = FileUtil.readFile(ForgeProps.getFile(urlsFile)); - final ArrayList list = new ArrayList(); - final Pattern splitter = Pattern.compile(Pattern.quote("/")); - final Pattern replacer = Pattern.compile(Pattern.quote("%20")); - - for (String line : fileLines) { - - if (line.equals("") || line.startsWith("#")) { - continue; + protected static void addMissingItems(ArrayList list, String nameUrlFile, String dir) { + for (Pair nameUrlPair : FileUtil.readNameUrlFile(nameUrlFile)) { + File f = new File(dir, nameUrlPair.getLeft()); + if (!f.exists()) { + list.add(new DownloadObject(nameUrlPair.getRight(), f)); } - - String[] parts = splitter.split(line); - - // Maybe there's a better way to do this, but I just want the - // filename from a URL - String last = parts[parts.length - 1]; - list.add(new DownloadObject(line, new File(dir, replacer.matcher(last).replaceAll(" ")))); } - return list; - } // readFile() + } - /** - *

- * readFile. - *

- * - * @param urlNamesFile - * a {@link java.lang.String} object. - * @param dir - * a {@link java.util.File} object. - * @return an array of {@link forge.gui.download.GuiDownloader.DownloadObject} objects. - */ - protected static ArrayList readFileWithNames(final String urlNamesFile, final File dir) { - List fileLines = FileUtil.readFile(ForgeProps.getFile(urlNamesFile)); - final ArrayList list = new ArrayList(); - final Pattern splitter = Pattern.compile(Pattern.quote(" ")); - final Pattern replacer = Pattern.compile(Pattern.quote("%20")); - - for (String line : fileLines) { - - if (StringUtils.isBlank(line) || line.startsWith("#")) { - continue; - } - String[] parts = splitter.split(line, 2); - String url = parts.length > 1 ? parts[1] : null; - list.add(new DownloadObject(url, new File(dir, replacer.matcher(parts[0]).replaceAll(" ")))); - } - - return list; - } // readFile() - - /** - * The Class ProxyHandler. - */ protected class ProxyHandler implements ChangeListener { private final int type; - /** - * Instantiates a new proxy handler. - * - * @param type - * the type - */ public ProxyHandler(final int type) { this.type = type; } - /* - * (non-Javadoc) - * - * @see javax.swing.event.ChangeListener#stateChanged(javax.swing.event. - * ChangeEvent) - */ - /** - * State changed. - * - * @param e - * ChangeEvent - */ @Override public final void stateChanged(final ChangeEvent e) { if (((AbstractButton) e.getSource()).isSelected()) { @@ -509,32 +395,23 @@ public abstract class GuiDownloader extends DefaultBoundedRangeModel implements } } - /** - * The Class DownloadObject. - */ protected static class DownloadObject { private final String source; private final File destination; - /** - * @param srcUrl {@link java.lang.String} - * @param destFile {@link java.io.File} - */ DownloadObject(final String srcUrl, final File destFile) { source = srcUrl; destination = destFile; - // System.out.println("Created download object: "+name+" "+url+" "+dir); + //System.out.println(String.format("downloading %s to %s", srcUrl, destFile)); } - /** @return {@link java.lang.String} */ public String getSource() { return source; } - /** @return {@link java.io.File} */ public File getDestination() { return destination; } - } // DownloadObject + } } diff --git a/src/main/java/forge/gui/framework/DragCell.java b/src/main/java/forge/gui/framework/DragCell.java index e2fafac1005..6697de1d12e 100644 --- a/src/main/java/forge/gui/framework/DragCell.java +++ b/src/main/java/forge/gui/framework/DragCell.java @@ -14,9 +14,10 @@ import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.SwingConstants; +import net.miginfocom.swing.MigLayout; + import com.google.common.collect.Lists; -import net.miginfocom.swing.MigLayout; import forge.gui.toolbox.FPanel; import forge.gui.toolbox.FSkin; import forge.view.FView; diff --git a/src/main/java/forge/gui/framework/SLayoutIO.java b/src/main/java/forge/gui/framework/SLayoutIO.java index d46d4d0b686..ec42327b962 100644 --- a/src/main/java/forge/gui/framework/SLayoutIO.java +++ b/src/main/java/forge/gui/framework/SLayoutIO.java @@ -21,6 +21,7 @@ import javax.xml.stream.events.StartElement; import javax.xml.stream.events.XMLEvent; import forge.control.FControl; +import forge.properties.FileLocation; import forge.properties.NewConstants; import forge.view.FView; @@ -40,8 +41,7 @@ public final class SLayoutIO { doc } - private static String fileDefault = null; - private static String filePreferred = null; + private static FileLocation file = null; private static final XMLEventFactory EF = XMLEventFactory.newInstance(); private static final XMLEvent NEWLINE = EF.createDTD("\n"); private static final XMLEvent TAB = EF.createDTD("\t"); @@ -51,7 +51,7 @@ public final class SLayoutIO { * @return {@link java.lang.String} */ public static String getFilePreferred() { - return filePreferred; + return null == file ? null : file.userPrefLoc; } /** Publicly-accessible save method, to neatly handle exception handling. @@ -83,7 +83,10 @@ public final class SLayoutIO { SLayoutIO.setFilesForState(); if (f0 == null) { - fWriteTo = filePreferred; + if (null == file) { + return; + } + fWriteTo = file.userPrefLoc; } else { fWriteTo = f0.getPath(); @@ -144,12 +147,12 @@ public final class SLayoutIO { final XMLEventReader reader; if (f != null && f.exists()) { reader = inputFactory.createXMLEventReader(new FileInputStream(f)); - } - else if (new File(filePreferred).exists()) { - reader = inputFactory.createXMLEventReader(new FileInputStream(filePreferred)); - } - else { - reader = inputFactory.createXMLEventReader(new FileInputStream(fileDefault)); + } else if (null == file) { + reader = null; + } else if (new File(file.userPrefLoc).exists()) { + reader = inputFactory.createXMLEventReader(new FileInputStream(file.userPrefLoc)); + } else { + reader = inputFactory.createXMLEventReader(new FileInputStream(file.defaultLoc)); } view.removeAllDragCells(); @@ -160,7 +163,7 @@ public final class SLayoutIO { DragCell cell = null; double x0 = 0, y0 = 0, w0 = 0, h0 = 0; - while (reader.hasNext()) { + while (null != reader && reader.hasNext()) { event = reader.nextEvent(); if (event.isStartElement()) { @@ -217,28 +220,22 @@ public final class SLayoutIO { * Always called before a load or a save, to ensure file addresses are correct. */ private static void setFilesForState() { - final String dir = NewConstants.LAYOUT_DIR; - switch(FControl.SINGLETON_INSTANCE.getState()) { case HOME_SCREEN: - fileDefault = dir + "home_default.xml"; - filePreferred = dir + "home_preferred.xml"; + file = NewConstants.HOME_LAYOUT_FILE; break; case MATCH_SCREEN: - fileDefault = dir + "match_default.xml"; - filePreferred = dir + "match_preferred.xml"; + file = NewConstants.MATCH_LAYOUT_FILE; break; case DECK_EDITOR_CONSTRUCTED: case DECK_EDITOR_LIMITED: case DECK_EDITOR_QUEST: case DRAFTING_PROCESS: case QUEST_CARD_SHOP: - fileDefault = dir + "editor_default.xml"; - filePreferred = dir + "editor_preferred.xml"; + file = NewConstants.EDITOR_LAYOUT_FILE; break; case QUEST_BAZAAR: - fileDefault = dir + "bazaar_default.xml"; - filePreferred = dir + "bazaar_preferred.xml"; + file = null; break; default: throw new IllegalStateException("Layout load failed; UI state unknown."); diff --git a/src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletBuild.java b/src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletBuild.java index 79b597d6d0f..b891ad006c2 100644 --- a/src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletBuild.java +++ b/src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletBuild.java @@ -28,6 +28,7 @@ import forge.game.player.PlayerType; import forge.gauntlet.GauntletData; import forge.gauntlet.GauntletIO; import forge.gui.framework.ICDoc; +import forge.properties.NewConstants; import forge.quest.QuestController; import forge.quest.QuestEvent; import forge.util.storage.IStorage; @@ -41,13 +42,11 @@ import forge.util.storage.IStorage; @SuppressWarnings("serial") public enum CSubmenuGauntletBuild implements ICDoc { - /** */ SINGLETON_INSTANCE; private final VSubmenuGauntletBuild view = VSubmenuGauntletBuild.SINGLETON_INSTANCE; private final List workingDecks = new ArrayList(); - private File previousDirectory = null; - private File openStartDir = new File(GauntletIO.DIR_GAUNTLETS); + private File openStartDir = new File(NewConstants.GAUNTLET_DIR.userPrefLoc); private final FileFilter filterDAT = new FileFilter() { @Override @@ -56,12 +55,8 @@ public enum CSubmenuGauntletBuild implements ICDoc { return true; } - if (!f.getName().matches(GauntletIO.REGEX_LOCKED) - && !f.getName().matches(GauntletIO.REGEX_QUICK)) { - return true; - } - - return false; + String filename = f.getName(); + return (!filename.startsWith(GauntletIO.PREFIX_QUICK) && filename.endsWith(GauntletIO.SUFFIX_DATA)); } @Override @@ -317,7 +312,7 @@ public enum CSubmenuGauntletBuild implements ICDoc { return false; } - final File f = new File(GauntletIO.DIR_GAUNTLETS + name + ".dat"); + final File f = new File(NewConstants.GAUNTLET_DIR.userPrefLoc + name + ".dat"); // Confirm if overwrite if (f.exists()) { final int m = JOptionPane.showConfirmDialog(null, @@ -349,7 +344,7 @@ public enum CSubmenuGauntletBuild implements ICDoc { gd.setEventNames(names); gd.setDecks(workingDecks); - gd.setActiveFile(f); + gd.setName(name); gd.reset(); view.getLblSave().setVisible(false); @@ -358,17 +353,14 @@ public enum CSubmenuGauntletBuild implements ICDoc { } private boolean openGauntlet() { - /** */ final File file; - final JFileChooser open = new JFileChooser(previousDirectory); + final JFileChooser open = new JFileChooser(openStartDir); open.setDialogTitle("Import Deck"); open.addChoosableFileFilter(this.filterDAT); - open.setCurrentDirectory(openStartDir); final int returnVal = open.showOpenDialog(null); if (returnVal == JFileChooser.APPROVE_OPTION) { file = open.getSelectedFile(); - previousDirectory = file.getParentFile(); } else { return false; diff --git a/src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletContests.java b/src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletContests.java index 3874210f6d2..65cc04ca230 100644 --- a/src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletContests.java +++ b/src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletContests.java @@ -140,11 +140,8 @@ public enum CSubmenuGauntletContests implements ICDoc { private void updateData() { final File[] files = GauntletIO.getGauntletFilesLocked(); final List data = new ArrayList(); - for (final File f : files) { - if (f.getName().matches(GauntletIO.REGEX_LOCKED)) { - data.add(GauntletIO.loadGauntlet(f)); - } + data.add(GauntletIO.loadGauntlet(f)); } view.getGauntletLister().setGauntlets(data); diff --git a/src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletLoad.java b/src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletLoad.java index ea3f040680f..79b7f06f1a0 100644 --- a/src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletLoad.java +++ b/src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletLoad.java @@ -31,12 +31,9 @@ import forge.model.FModel; *

(C at beginning of class name denotes a control class.) * */ - public enum CSubmenuGauntletLoad implements ICDoc { - /** */ SINGLETON_INSTANCE; - private final ActionListener actStartGame = new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { startGame(); } }; @@ -47,6 +44,11 @@ public enum CSubmenuGauntletLoad implements ICDoc { */ @Override public void update() { + updateData(); + enableStartButton(); + + view.getGauntletLister().setSelectedIndex(0); + SwingUtilities.invokeLater(new Runnable() { @Override public void run() { JButton btnStart = view.getBtnStart(); @@ -67,10 +69,6 @@ public enum CSubmenuGauntletLoad implements ICDoc { public void initialize() { view.getBtnStart().addActionListener(actStartGame); - updateData(); - enableStartButton(); - - view.getGauntletLister().setSelectedIndex(0); view.getGauntletLister().setCmdDelete(new Command() { @Override public void execute() { enableStartButton(); } }); view.getGauntletLister().setCmdSelect(new Command() { @Override @@ -89,7 +87,7 @@ public enum CSubmenuGauntletLoad implements ICDoc { } private void enableStartButton() { - if (view.getGauntletLister().getSelectedGauntlet() == null) { + if (view.getGauntletLister().getSelectedGauntletFile() == null) { view.getBtnStart().setEnabled(false); } else { @@ -99,8 +97,7 @@ public enum CSubmenuGauntletLoad implements ICDoc { private void startGame() { FModel.SINGLETON_INSTANCE.setGauntletData( - GauntletIO.loadGauntlet(VSubmenuGauntletQuick.SINGLETON_INSTANCE - .getGauntletLister().getSelectedGauntlet().getActiveFile())); + GauntletIO.loadGauntlet(VSubmenuGauntletQuick.SINGLETON_INSTANCE.getGauntletLister().getSelectedGauntletFile())); // Start game SwingUtilities.invokeLater(new Runnable() { diff --git a/src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletQuick.java b/src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletQuick.java index 4d7ae284856..3a080fbdd9f 100644 --- a/src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletQuick.java +++ b/src/main/java/forge/gui/home/gauntlet/CSubmenuGauntletQuick.java @@ -7,7 +7,9 @@ import java.awt.event.MouseEvent; import java.io.File; import java.util.ArrayList; import java.util.Arrays; +import java.util.HashSet; import java.util.List; +import java.util.Set; import javax.swing.JList; import javax.swing.ListSelectionModel; @@ -205,7 +207,6 @@ public enum CSubmenuGauntletQuick implements ICDoc { view.getLstDecks().setSelectedIndices(new int[]{0, 1}); } - /** */ private void startGame() { // Start game overlay SwingUtilities.invokeLater(new Runnable() { @@ -218,13 +219,12 @@ public enum CSubmenuGauntletQuick implements ICDoc { // Find appropriate filename for new save, create and set new save file. final File[] arrFiles = GauntletIO.getGauntletFilesQuick(); - final List lstNames = new ArrayList(); - for (File f : arrFiles) { lstNames.add(f.getName()); } + final Set setNames = new HashSet(); + for (File f : arrFiles) { setNames.add(f.getName()); } int num = 1; - while (lstNames.contains(GauntletIO.PREFIX_QUICK + num + ".dat")) { num++; } - FModel.SINGLETON_INSTANCE.getGauntletData().setActiveFile(new File( - GauntletIO.DIR_GAUNTLETS + GauntletIO.PREFIX_QUICK + num + ".dat")); + while (setNames.contains(GauntletIO.PREFIX_QUICK + num + GauntletIO.SUFFIX_DATA)) { num++; } + FModel.SINGLETON_INSTANCE.getGauntletData().setName(GauntletIO.PREFIX_QUICK + num); // Pull user deck final Deck userDeck; diff --git a/src/main/java/forge/gui/home/gauntlet/ContestGauntletLister.java b/src/main/java/forge/gui/home/gauntlet/ContestGauntletLister.java index a9e16420a15..d161f5c1a21 100644 --- a/src/main/java/forge/gui/home/gauntlet/ContestGauntletLister.java +++ b/src/main/java/forge/gui/home/gauntlet/ContestGauntletLister.java @@ -17,6 +17,7 @@ import javax.swing.border.MatteBorder; import net.miginfocom.swing.MigLayout; import forge.Command; import forge.gauntlet.GauntletData; +import forge.gauntlet.GauntletIO; import forge.gui.toolbox.FLabel; import forge.gui.toolbox.FSkin; @@ -52,7 +53,7 @@ public class ContestGauntletLister extends JPanel { Collections.sort(sorted, new Comparator() { @Override public int compare(final GauntletData x, final GauntletData y) { - return x.getActiveFile().getName().compareTo(y.getActiveFile().getName()); + return x.getName().compareTo(y.getName()); } }); @@ -78,8 +79,8 @@ public class ContestGauntletLister extends JPanel { String name; String progress; for (GauntletData gd : sorted) { - name = gd.getActiveFile().getName(); - name = name.substring(7, name.length() - 4); + name = gd.getName(); + name = name.substring(GauntletIO.PREFIX_LOCKED.length()); progress = String.valueOf(Math.round( ((double) gd.getCompleted() / (double) gd.getDecks().size()) * 100)) + " %"; diff --git a/src/main/java/forge/gui/home/gauntlet/QuickGauntletLister.java b/src/main/java/forge/gui/home/gauntlet/QuickGauntletLister.java index 7a51a3b0f1e..71d0f6c8d93 100644 --- a/src/main/java/forge/gui/home/gauntlet/QuickGauntletLister.java +++ b/src/main/java/forge/gui/home/gauntlet/QuickGauntletLister.java @@ -5,6 +5,7 @@ package forge.gui.home.gauntlet; import java.awt.Color; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; +import java.io.File; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; @@ -20,6 +21,7 @@ import javax.swing.border.MatteBorder; import net.miginfocom.swing.MigLayout; import forge.Command; import forge.gauntlet.GauntletData; +import forge.gauntlet.GauntletIO; import forge.gui.toolbox.FLabel; import forge.gui.toolbox.FSkin; @@ -60,7 +62,7 @@ public class QuickGauntletLister extends JPanel { Collections.sort(sorted, new Comparator() { @Override public int compare(final GauntletData x, final GauntletData y) { - return x.getActiveFile().getName().compareTo(y.getActiveFile().getName()); + return x.getName().compareTo(y.getName()); } }); @@ -85,8 +87,7 @@ public class QuickGauntletLister extends JPanel { RowPanel row; String name; for (GauntletData gd : sorted) { - name = gd.getActiveFile().getName(); - name = name.substring(0, name.length() - 4); + name = gd.getName(); row = new RowPanel(gd); row.setToolTipText(name); @@ -113,12 +114,12 @@ public class QuickGauntletLister extends JPanel { } /** @return {@link forge.deck.Deck} */ - public GauntletData getSelectedGauntlet() { + public File getSelectedGauntletFile() { if (previousSelect == null) { return null; } else { - return previousSelect.getGauntletData(); + return GauntletIO.getGauntletFile(previousSelect.getGauntletData()); } } @@ -221,7 +222,7 @@ public class QuickGauntletLister extends JPanel { */ public boolean setSelectedIndex(int i0) { if (i0 >= rows.length) { return false; } - selectHandler(rows[i0]); + selectHandler(rows[Math.max(0, i0)]); return true; } @@ -263,7 +264,7 @@ public class QuickGauntletLister extends JPanel { final GauntletData gd = r0.getGauntletData(); final int n = JOptionPane.showConfirmDialog(null, - "Are you sure you want to delete \"" + gd.getActiveFile().getName() + "Are you sure you want to delete \"" + gd.getName() + "\" ?", "Delete Gauntlet", JOptionPane.YES_NO_OPTION); if (n == JOptionPane.NO_OPTION) { @@ -271,7 +272,7 @@ public class QuickGauntletLister extends JPanel { } - gd.getActiveFile().delete(); + GauntletIO.getGauntletFile(gd).delete(); if (cmdRowDelete != null) { cmdRowDelete.execute(); } this.setSelectedIndex(0); diff --git a/src/main/java/forge/gui/home/quest/CSubmenuQuestData.java b/src/main/java/forge/gui/home/quest/CSubmenuQuestData.java index 4fe69dbf67d..476d106cb0b 100644 --- a/src/main/java/forge/gui/home/quest/CSubmenuQuestData.java +++ b/src/main/java/forge/gui/home/quest/CSubmenuQuestData.java @@ -14,13 +14,12 @@ import javax.swing.JOptionPane; import javax.swing.SwingUtilities; import forge.Command; +import forge.Singletons; import forge.deck.Deck; import forge.deck.DeckSection; -import forge.Singletons; import forge.game.GameFormat; import forge.gui.framework.ICDoc; import forge.item.CardPrinted; -import forge.properties.ForgeProps; import forge.properties.NewConstants; import forge.quest.QuestController; import forge.quest.QuestMode; @@ -100,21 +99,10 @@ public enum CSubmenuQuestData implements ICDoc { @Override public void update() { final VSubmenuQuestData view = VSubmenuQuestData.SINGLETON_INSTANCE; - final File dirQuests = ForgeProps.getFile(NewConstants.Quest.DATA_DIR); + final File dirQuests = new File(NewConstants.QUEST_SAVE_DIR); final QuestController qc = Singletons.getModel().getQuest(); - // Temporary transition code between v1.2.2 and v1.2.3. - // Can be safely deleted after release of 1.2.3. - if (!dirQuests.exists()) { - dirQuests.mkdirs(); - } - File olddata = new File("res/quest/questData.dat"); - File newpath = new File(dirQuests.getPath() + "/questData.dat"); - - if (olddata.exists()) { olddata.renameTo(newpath); } - // end block which can be deleted - - // Iterate over files and load quest datas for each. + // Iterate over files and load quest data for each. FilenameFilter takeDatFiles = new FilenameFilter() { @Override public boolean accept(final File dir, final String name) { @@ -127,13 +115,12 @@ public enum CSubmenuQuestData implements ICDoc { arrQuests.put(f.getName(), QuestDataIO.loadData(f)); } - // Populate list with available quest datas. + // Populate list with available quest data. view.getLstQuests().setQuests(new ArrayList(arrQuests.values())); // If there are quests available, force select. if (arrQuests.size() > 0) { - final String questname = Singletons.getModel().getQuestPreferences() - .getPreference(QPref.CURRENT_QUEST); + final String questname = Singletons.getModel().getQuestPreferences().getPref(QPref.CURRENT_QUEST); // Attempt to select previous quest. if (arrQuests.get(questname) != null) { @@ -283,7 +270,7 @@ public enum CSubmenuQuestData implements ICDoc { Singletons.getModel().getQuest().save(); // Save in preferences. - Singletons.getModel().getQuestPreferences().setPreference(QPref.CURRENT_QUEST, questName + ".dat"); + Singletons.getModel().getQuestPreferences().setPref(QPref.CURRENT_QUEST, questName + ".dat"); Singletons.getModel().getQuestPreferences().save(); update(); @@ -295,7 +282,7 @@ public enum CSubmenuQuestData implements ICDoc { .getLstQuests().getSelectedQuest()); // Save in preferences. - Singletons.getModel().getQuestPreferences().setPreference(QPref.CURRENT_QUEST, + Singletons.getModel().getQuestPreferences().setPref(QPref.CURRENT_QUEST, Singletons.getModel().getQuest().getName() + ".dat"); Singletons.getModel().getQuestPreferences().save(); diff --git a/src/main/java/forge/gui/home/quest/CSubmenuQuestDecks.java b/src/main/java/forge/gui/home/quest/CSubmenuQuestDecks.java index 7674ec277d6..8801913d416 100644 --- a/src/main/java/forge/gui/home/quest/CSubmenuQuestDecks.java +++ b/src/main/java/forge/gui/home/quest/CSubmenuQuestDecks.java @@ -32,7 +32,7 @@ public enum CSubmenuQuestDecks implements ICDoc { @Override public void execute() { currentDeck = VSubmenuQuestDecks.SINGLETON_INSTANCE.getLstDecks().getSelectedDeck(); - Singletons.getModel().getQuestPreferences().setPreference(QPref.CURRENT_DECK, currentDeck.toString()); + Singletons.getModel().getQuestPreferences().setPref(QPref.CURRENT_DECK, currentDeck.toString()); Singletons.getModel().getQuestPreferences().save(); } }; @@ -72,7 +72,7 @@ public enum CSubmenuQuestDecks implements ICDoc { currentDeck = null; if (hasQuest) { - final String cd = Singletons.getModel().getQuestPreferences().getPreference(QPref.CURRENT_DECK); + final String cd = Singletons.getModel().getQuestPreferences().getPref(QPref.CURRENT_DECK); for (Deck d : qData.getMyDecks()) { if (d.getName() != null && d.getName().equals(cd)) { @@ -90,10 +90,10 @@ public enum CSubmenuQuestDecks implements ICDoc { view.getLstDecks().setDeleteCommand(cmdDeckDelete); if (view.getLstDecks().getSelectedDeck() != null) { - Singletons.getModel().getQuestPreferences().setPreference(QPref.CURRENT_DECK, view.getLstDecks().getSelectedDeck().getName()); + Singletons.getModel().getQuestPreferences().setPref(QPref.CURRENT_DECK, view.getLstDecks().getSelectedDeck().getName()); } else { - Singletons.getModel().getQuestPreferences().setPreference(QPref.CURRENT_DECK, QPref.CURRENT_DECK.getDefault()); + Singletons.getModel().getQuestPreferences().setPref(QPref.CURRENT_DECK, QPref.CURRENT_DECK.getDefault()); } SwingUtilities.invokeLater(new Runnable() { diff --git a/src/main/java/forge/gui/home/quest/CSubmenuQuestPrefs.java b/src/main/java/forge/gui/home/quest/CSubmenuQuestPrefs.java index 10a1bb6de7e..4c25bd05e38 100644 --- a/src/main/java/forge/gui/home/quest/CSubmenuQuestPrefs.java +++ b/src/main/java/forge/gui/home/quest/CSubmenuQuestPrefs.java @@ -53,7 +53,7 @@ public enum CSubmenuQuestPrefs implements ICDoc { return; } - prefs.setPreference(i0.getQPref(), i0.getText()); + prefs.setPref(i0.getQPref(), i0.getText()); prefs.save(); i0.setPreviousText(i0.getText()); } diff --git a/src/main/java/forge/gui/home/quest/PnlEvent.java b/src/main/java/forge/gui/home/quest/PnlEvent.java index 780eb3f17be..1e0c082db75 100644 --- a/src/main/java/forge/gui/home/quest/PnlEvent.java +++ b/src/main/java/forge/gui/home/quest/PnlEvent.java @@ -7,20 +7,17 @@ import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Image; import java.awt.image.BufferedImage; -import java.io.File; -import javax.swing.ImageIcon; import javax.swing.JPanel; import javax.swing.JRadioButton; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import net.miginfocom.swing.MigLayout; +import forge.ImageCache; import forge.gui.toolbox.FRadioButton; import forge.gui.toolbox.FSkin; import forge.gui.toolbox.FTextArea; -import forge.properties.ForgeProps; -import forge.properties.NewConstants; import forge.quest.QuestEvent; /** @@ -53,17 +50,7 @@ class PnlEvent extends JPanel { public PnlEvent(final QuestEvent e0) { super(); this.event = e0; - - // Icon - final File base = ForgeProps.getFile(NewConstants.IMAGE_ICON); - final File file = new File(base, event.getIconFilename()); - - if (!file.exists()) { - img = FSkin.getIcon(FSkin.InterfaceIcons.ICO_UNKNOWN).getImage(); - } - else { - img = (new ImageIcon(file.toString())).getImage(); - } + img = ImageCache.getIcon(e0).getImage(); wSrc = img.getWidth(null); hSrc = img.getHeight(null); @@ -105,8 +92,6 @@ class PnlEvent extends JPanel { @Override public void paintComponent(final Graphics g) { - // super.paintComponent(g); - Graphics2D g2d = (Graphics2D) g.create(); g2d.setPaint(new GradientPaint(0, 0, clr3, getWidth(), 0, clr2)); g2d.fillRect(0, 0, getWidth(), getHeight()); diff --git a/src/main/java/forge/gui/home/quest/QuestFileLister.java b/src/main/java/forge/gui/home/quest/QuestFileLister.java index f6817303740..4964eac2439 100644 --- a/src/main/java/forge/gui/home/quest/QuestFileLister.java +++ b/src/main/java/forge/gui/home/quest/QuestFileLister.java @@ -20,7 +20,6 @@ import net.miginfocom.swing.MigLayout; import forge.Command; import forge.gui.toolbox.FLabel; import forge.gui.toolbox.FSkin; -import forge.properties.ForgeProps; import forge.properties.NewConstants; import forge.quest.data.QuestData; @@ -315,8 +314,8 @@ public class QuestFileLister extends JPanel { return; } else { - File newpath = new File(ForgeProps.getFile(NewConstants.Quest.DATA_DIR) + File.separator + questName + ".dat"); - File oldpath = new File(ForgeProps.getFile(NewConstants.Quest.DATA_DIR) + File.separator + s0 + ".dat"); + File newpath = new File(NewConstants.QUEST_SAVE_DIR, questName + ".dat"); + File oldpath = new File(NewConstants.QUEST_SAVE_DIR, s0 + ".dat"); oldpath.renameTo(newpath); } @@ -335,7 +334,7 @@ public class QuestFileLister extends JPanel { return; } - new File(ForgeProps.getFile(NewConstants.Quest.DATA_DIR) + File.separator + r0.getQuestData().getName() + ".dat").delete(); + new File(NewConstants.QUEST_SAVE_DIR, r0.getQuestData().getName() + ".dat").delete(); if (cmdRowDelete != null) { cmdRowDelete.execute(); } diff --git a/src/main/java/forge/gui/home/quest/QuestPreferencesHandler.java b/src/main/java/forge/gui/home/quest/QuestPreferencesHandler.java index 84c76123449..fba3b462c20 100644 --- a/src/main/java/forge/gui/home/quest/QuestPreferencesHandler.java +++ b/src/main/java/forge/gui/home/quest/QuestPreferencesHandler.java @@ -266,8 +266,8 @@ public class QuestPreferencesHandler extends JPanel { this.setCaretColor(clrText); this.setBackground(clrHover); this.setHorizontalAlignment(SwingConstants.CENTER); - this.setText(prefs.getPreference(qpref)); - this.setPreviousText(prefs.getPreference(qpref)); + this.setText(prefs.getPref(qpref)); + this.setPreviousText(prefs.getPref(qpref)); this.addMouseListener(new MouseAdapter() { @Override @@ -341,7 +341,7 @@ public class QuestPreferencesHandler extends JPanel { return; } - prefs.setPreference(i0.getQPref(), i0.getText()); + prefs.setPref(i0.getQPref(), i0.getText()); prefs.save(); i0.setPreviousText(i0.getText()); } @@ -358,24 +358,24 @@ public class QuestPreferencesHandler extends JPanel { } break; case BOOSTER_COMMONS: - temp1 = current.getPreferenceInt(QPref.BOOSTER_UNCOMMONS); - temp2 = current.getPreferenceInt(QPref.BOOSTER_RARES); + temp1 = current.getPrefInt(QPref.BOOSTER_UNCOMMONS); + temp2 = current.getPrefInt(QPref.BOOSTER_RARES); if (temp1 + temp2 + val > 15) { return "Booster packs must have maximum 15 cards."; } break; case BOOSTER_UNCOMMONS: - temp1 = current.getPreferenceInt(QPref.BOOSTER_COMMONS); - temp2 = current.getPreferenceInt(QPref.BOOSTER_RARES); + temp1 = current.getPrefInt(QPref.BOOSTER_COMMONS); + temp2 = current.getPrefInt(QPref.BOOSTER_RARES); if (temp1 + temp2 + val > 15) { return "Booster packs must have maximum 15 cards."; } break; case BOOSTER_RARES: - temp1 = current.getPreferenceInt(QPref.BOOSTER_COMMONS); - temp2 = current.getPreferenceInt(QPref.BOOSTER_UNCOMMONS); + temp1 = current.getPrefInt(QPref.BOOSTER_COMMONS); + temp2 = current.getPrefInt(QPref.BOOSTER_UNCOMMONS); if (temp1 + temp2 + val > 15) { return "Booster packs must have maximum 15 cards."; diff --git a/src/main/java/forge/gui/home/quest/SSubmenuQuestUtil.java b/src/main/java/forge/gui/home/quest/SSubmenuQuestUtil.java index 9962296cc4f..bd808e1b730 100644 --- a/src/main/java/forge/gui/home/quest/SSubmenuQuestUtil.java +++ b/src/main/java/forge/gui/home/quest/SSubmenuQuestUtil.java @@ -218,7 +218,7 @@ public class SSubmenuQuestUtil { if (Singletons.getModel().getQuest().getAssets() != null) { d = Singletons.getModel().getQuest().getMyDecks().get( - Singletons.getModel().getQuestPreferences().getPreference(QPref.CURRENT_DECK)); + Singletons.getModel().getQuestPreferences().getPref(QPref.CURRENT_DECK)); } return d; @@ -419,7 +419,7 @@ public class SSubmenuQuestUtil { msh.addPlayer(Singletons.getControl().getLobby().getQuestPlayer(), humanStart); LobbyPlayer aiPlayer = Singletons.getControl().getLobby().findLocalPlayer(PlayerType.COMPUTER, event.getOpponent() == null ? event.getTitle() : event.getOpponent()); - aiPlayer.setPicture(event.getIconFilename()); + aiPlayer.setIconImageKey(event.getIconImageKey()); msh.addPlayer(aiPlayer, aiStart); Singletons.getModel().getMatch().initMatch(GameType.Quest, msh.getPlayerMap()); diff --git a/src/main/java/forge/gui/home/quest/VSubmenuQuestPrefs.java b/src/main/java/forge/gui/home/quest/VSubmenuQuestPrefs.java index a6482273325..603f63190bd 100644 --- a/src/main/java/forge/gui/home/quest/VSubmenuQuestPrefs.java +++ b/src/main/java/forge/gui/home/quest/VSubmenuQuestPrefs.java @@ -399,8 +399,8 @@ public enum VSubmenuQuestPrefs implements IVSubmenu { this.setCaretColor(clrText); this.setBackground(clrHover); this.setHorizontalAlignment(SwingConstants.CENTER); - this.setText(prefs.getPreference(qpref)); - this.setPreviousText(prefs.getPreference(qpref)); + this.setText(prefs.getPref(qpref)); + this.setPreviousText(prefs.getPref(qpref)); this.addMouseListener(new MouseAdapter() { @Override diff --git a/src/main/java/forge/gui/home/sanctioned/VSubmenuConstructed.java b/src/main/java/forge/gui/home/sanctioned/VSubmenuConstructed.java index c29ec99a05a..85529443409 100644 --- a/src/main/java/forge/gui/home/sanctioned/VSubmenuConstructed.java +++ b/src/main/java/forge/gui/home/sanctioned/VSubmenuConstructed.java @@ -3,6 +3,7 @@ package forge.gui.home.sanctioned; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JPanel; + import net.miginfocom.swing.MigLayout; import forge.game.player.PlayerType; import forge.gui.framework.DragCell; diff --git a/src/main/java/forge/gui/home/settings/CSubmenuDownloaders.java b/src/main/java/forge/gui/home/settings/CSubmenuDownloaders.java index e03e1da9e43..6e4cbb21d03 100644 --- a/src/main/java/forge/gui/home/settings/CSubmenuDownloaders.java +++ b/src/main/java/forge/gui/home/settings/CSubmenuDownloaders.java @@ -4,7 +4,7 @@ import javax.swing.SwingUtilities; import forge.Command; import forge.error.BugReporter; -import forge.gui.GuiImportPicture; +import forge.gui.DialogMigrateProfile; import forge.gui.download.GuiDownloadPicturesLQ; import forge.gui.download.GuiDownloadPrices; import forge.gui.download.GuiDownloadQuestImages; @@ -19,7 +19,6 @@ import forge.gui.framework.ICDoc; */ @SuppressWarnings("serial") public enum CSubmenuDownloaders implements ICDoc { - /** */ SINGLETON_INSTANCE; private final Command cmdLicensing = new Command() { @Override @@ -34,19 +33,10 @@ public enum CSubmenuDownloaders implements ICDoc { public void execute() { new GuiDownloadPrices(); } }; private final Command cmdHowToPlay = new Command() { @Override public void execute() { VSubmenuDownloaders.SINGLETON_INSTANCE.showHowToPlay(); } }; - - private final Command cmdImportPictures = new Command() { - @Override - public void execute() { - final GuiImportPicture ip = new GuiImportPicture(null); - ip.setVisible(true); - } - }; - + private final Command cmdImportPictures = new Command() { @Override + public void execute() { new DialogMigrateProfile(null, null); } }; private final Command cmdReportBug = new Command() { @Override - public void execute() { - BugReporter.reportBug(null); - } + public void execute() { BugReporter.reportBug(null); } }; /* (non-Javadoc) diff --git a/src/main/java/forge/gui/home/settings/VSubmenuDownloaders.java b/src/main/java/forge/gui/home/settings/VSubmenuDownloaders.java index 97fb6dcec49..35de7d157b9 100644 --- a/src/main/java/forge/gui/home/settings/VSubmenuDownloaders.java +++ b/src/main/java/forge/gui/home/settings/VSubmenuDownloaders.java @@ -27,8 +27,8 @@ import forge.gui.toolbox.FPanel; import forge.gui.toolbox.FScrollPane; import forge.gui.toolbox.FSkin; import forge.gui.toolbox.FTextArea; -import forge.properties.ForgeProps; -import forge.properties.NewConstants.Lang; +import forge.properties.NewConstants; +import forge.util.FileUtil; /** * Assembles Swing components of utilities submenu singleton. @@ -52,7 +52,7 @@ public enum VSubmenuDownloaders implements IVSubmenu { private final FLabel btnDownloadPics = _makeButton("Download LQ Card Pictures"); private final FLabel btnDownloadQuestImages = _makeButton("Download Quest Images"); private final FLabel btnReportBug = _makeButton("Report a Bug"); - private final FLabel btnImportPictures = _makeButton("Import Pictures"); + private final FLabel btnImportPictures = _makeButton("Import Data"); private final FLabel btnHowToPlay = _makeButton("How To Play"); private final FLabel btnDownloadPrices = _makeButton("Download Card Prices"); private final FLabel btnLicensing = _makeButton("License Details"); @@ -79,7 +79,7 @@ public enum VSubmenuDownloaders implements IVSubmenu { pnlContent.add(_makeLabel("Download up-to-date price list for in-game card shops."), constraintsLBL); pnlContent.add(btnImportPictures, constraintsBTN); - pnlContent.add(_makeLabel("Import card pictures from a local version of Forge."), constraintsLBL); + pnlContent.add(_makeLabel("Import data from a local directory."), constraintsLBL); pnlContent.add(btnReportBug, constraintsBTN); pnlContent.add(_makeLabel("Something broken?"), constraintsLBL); @@ -88,7 +88,7 @@ public enum VSubmenuDownloaders implements IVSubmenu { pnlContent.add(_makeLabel("Rules of the Game."), constraintsLBL); pnlContent.add(btnLicensing, constraintsBTN); - pnlContent.add(_makeLabel("About Forge"), constraintsLBL); + pnlContent.add(_makeLabel("Forge legal."), constraintsLBL); scrContent.setBorder(null); } @@ -141,7 +141,7 @@ public enum VSubmenuDownloaders implements IVSubmenu { public void actionPerformed(final ActionEvent arg0) { SOverlayUtils.hideOverlay(); } }); p.add(c, "w 500!"); - p.add(btnClose, "w 200!, h pref+12, center, gaptop 30"); + p.add(btnClose, "w 200!, h pref+12!, center, gaptop 30"); overlay.add(p, "gap 0 0 10% 10%"); SOverlayUtils.showOverlay(); @@ -175,7 +175,7 @@ public enum VSubmenuDownloaders implements IVSubmenu { } public void showHowToPlay() { - FTextArea directions = new FTextArea(ForgeProps.getLocalized(Lang.HowTo.MESSAGE)); + FTextArea directions = new FTextArea(FileUtil.readFileToString(NewConstants.TEXT_HOWTO_FILE)); final FScrollPane scr = new FScrollPane(directions, ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); scr.setBorder(null); diff --git a/src/main/java/forge/gui/home/settings/VSubmenuPreferences.java b/src/main/java/forge/gui/home/settings/VSubmenuPreferences.java index 084902e503f..925ab3c3348 100644 --- a/src/main/java/forge/gui/home/settings/VSubmenuPreferences.java +++ b/src/main/java/forge/gui/home/settings/VSubmenuPreferences.java @@ -6,8 +6,6 @@ import java.awt.event.FocusAdapter; import java.awt.event.FocusEvent; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; -import java.awt.event.MouseAdapter; -import java.awt.event.MouseEvent; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; @@ -37,13 +35,12 @@ import forge.gui.framework.EDocID; import forge.gui.home.EMenuGroup; import forge.gui.home.IVSubmenu; import forge.gui.home.VHomeUI; +import forge.gui.toolbox.FCheckBox; import forge.gui.toolbox.FLabel; import forge.gui.toolbox.FList; import forge.gui.toolbox.FScrollPane; import forge.gui.toolbox.FSkin; import forge.properties.ForgePreferences.FPref; -import forge.properties.ForgeProps; -import forge.properties.NewConstants.Lang.OldGuiNewGame.NewGameText; /** * Assembles Swing components of preferences submenu singleton. @@ -82,7 +79,7 @@ public enum VSubmenuPreferences implements IVSubmenu { private final JCheckBox cbUploadDraft = new OptionsCheckBox("Upload Draft Picks"); private final JCheckBox cbStackLand = new OptionsCheckBox("Stack AI Land"); private final JCheckBox cbManaBurn = new OptionsCheckBox("Mana Burn"); - private final JCheckBox cbDevMode = new OptionsCheckBox(ForgeProps.getLocalized(NewGameText.DEV_MODE)); + private final JCheckBox cbDevMode = new OptionsCheckBox("Developer Mode"); private final JCheckBox cbEnforceDeckLegality = new OptionsCheckBox("Deck Conformance"); private final JCheckBox cbTextMana = new OptionsCheckBox("Text / Mana Overlay"); private final JCheckBox cbScaleLarger = new OptionsCheckBox("Scale Image Larger"); @@ -229,26 +226,10 @@ public enum VSubmenuPreferences implements IVSubmenu { /** Consolidates checkbox styling in one place. */ @SuppressWarnings("serial") - private class OptionsCheckBox extends JCheckBox { + private class OptionsCheckBox extends FCheckBox { public OptionsCheckBox(final String txt0) { - super(); - setText(txt0); + super(txt0); setFont(FSkin.getBoldFont(12)); - setForeground(FSkin.getColor(FSkin.Colors.CLR_TEXT)); - setBackground(FSkin.getColor(FSkin.Colors.CLR_HOVER)); - setOpaque(false); - - this.addMouseListener(new MouseAdapter() { - @Override - public void mouseEntered(final MouseEvent evt) { - setOpaque(true); - } - - @Override - public void mouseExited(final MouseEvent evt) { - setOpaque(false); - } - }); } } diff --git a/src/main/java/forge/gui/home/variant/CSubmenuPlanechase.java b/src/main/java/forge/gui/home/variant/CSubmenuPlanechase.java index a06ad2a2700..83b43d98aee 100644 --- a/src/main/java/forge/gui/home/variant/CSubmenuPlanechase.java +++ b/src/main/java/forge/gui/home/variant/CSubmenuPlanechase.java @@ -81,26 +81,17 @@ public enum CSubmenuPlanechase implements ICDoc { /* (non-Javadoc) * @see forge.gui.home.ICSubmenu#initialize() */ + @SuppressWarnings("serial") @Override public void initialize() { - VSubmenuPlanechase.SINGLETON_INSTANCE.getLblEditor().setCommand(new Command() { - private static final long serialVersionUID = -5279533218897076308L; - @Override public void execute() { Predicate predPlanes = new Predicate() { - @Override public boolean apply(CardPrinted arg0) { - if(arg0.getRules().getType().isPlane() || arg0.getRules().getType().isPhenomenon()) - { - return true; - } - - return false; + return arg0.getRules().getType().isPlane() || arg0.getRules().getType().isPhenomenon(); } - }; FControl.SINGLETON_INSTANCE.changeState(FControl.Screens.DECK_EDITOR_CONSTRUCTED); diff --git a/src/main/java/forge/gui/match/CMatchUI.java b/src/main/java/forge/gui/match/CMatchUI.java index 5d18f17ed69..9691b220ff0 100644 --- a/src/main/java/forge/gui/match/CMatchUI.java +++ b/src/main/java/forge/gui/match/CMatchUI.java @@ -17,8 +17,6 @@ */ package forge.gui.match; -import java.awt.Image; -import java.io.File; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -28,8 +26,10 @@ import javax.swing.ImageIcon; import forge.Card; import forge.GameEntity; +import forge.ImageCache; import forge.Singletons; import forge.game.phase.PhaseType; +import forge.game.player.LobbyPlayer; import forge.game.player.Player; import forge.gui.framework.EDocID; import forge.gui.match.controllers.CDetail; @@ -42,8 +42,6 @@ import forge.gui.match.nonsingleton.VHand; import forge.gui.toolbox.FSkin; import forge.item.InventoryItem; import forge.properties.ForgePreferences.FPref; -import forge.properties.ForgeProps; -import forge.properties.NewConstants; /** * Constructs instance of match UI controller, used as a single point of @@ -54,25 +52,21 @@ import forge.properties.NewConstants; *

(C at beginning of class name denotes a control class.) */ public enum CMatchUI { - /** */ SINGLETON_INSTANCE; - private Image getPlayerAvatar(final Player p, final int defaultIndex) { - String strAvatarIcon = p.getLobbyPlayer().getPicture(); - if (strAvatarIcon != null) { - final File f = new File(ForgeProps.getFile(NewConstants.IMAGE_ICON), strAvatarIcon); - if (f.exists()) { - return new ImageIcon(f.getPath()).getImage(); - } + private ImageIcon getPlayerAvatar(final Player p, final int defaultIndex) { + LobbyPlayer lp = p.getLobbyPlayer(); + ImageIcon ret = ImageCache.getIcon(lp); + if (null == ret) { + int iAvatar = lp.getAvatarIndex(); + return new ImageIcon(FSkin.getAvatars().get(iAvatar >= 0 ? iAvatar : defaultIndex)); } - int iAvatar = p.getLobbyPlayer().getAvatarIndex(); - return FSkin.getAvatars().get(iAvatar >= 0 ? iAvatar : defaultIndex); + return ret; } - private void setAvatar(final VField view, final Image img) { - - view.getLblAvatar().setIcon(new ImageIcon(img)); + private void setAvatar(VField view, ImageIcon img) { + view.getLblAvatar().setIcon(img); view.getLblAvatar().getResizeTimer().start(); } @@ -96,7 +90,7 @@ public enum CMatchUI { VCommand humanCommand = new VCommand(EDocID.COMMAND_0, localPlayer); fields.add(0, humanField); commands.add(0, humanCommand); - setAvatar(humanField, FSkin.getAvatars().get(Integer.parseInt(indices[0]))); + setAvatar(humanField, new ImageIcon(FSkin.getAvatars().get(Integer.parseInt(indices[0])))); humanField.getLayoutControl().initialize(); humanCommand.getLayoutControl().initialize(); @@ -108,7 +102,7 @@ public enum CMatchUI { // A field must be initialized after it's instantiated, to update player info. // No player, no init. VField f = new VField(EDocID.valueOf("FIELD_" + i), p, localPlayer); - setAvatar(f, getPlayerAvatar(p, Integer.parseInt(indices[i % 2]))); + setAvatar(f, getPlayerAvatar(p, Integer.parseInt(indices[1]))); f.getLayoutControl().initialize(); fields.add(f); VCommand c = new VCommand(EDocID.valueOf("COMMAND_" + i), p); diff --git a/src/main/java/forge/gui/match/ControlWinLose.java b/src/main/java/forge/gui/match/ControlWinLose.java index 8594496e076..3fb23292af5 100644 --- a/src/main/java/forge/gui/match/ControlWinLose.java +++ b/src/main/java/forge/gui/match/ControlWinLose.java @@ -11,8 +11,8 @@ import forge.Card; import forge.Singletons; import forge.control.FControl; import forge.deck.Deck; -import forge.game.GameType; import forge.game.GameOutcome; +import forge.game.GameType; import forge.game.MatchController; import forge.game.player.Player; import forge.game.zone.ZoneType; diff --git a/src/main/java/forge/gui/match/GauntletWinLose.java b/src/main/java/forge/gui/match/GauntletWinLose.java index 2412cd44f42..4ae1d268042 100644 --- a/src/main/java/forge/gui/match/GauntletWinLose.java +++ b/src/main/java/forge/gui/match/GauntletWinLose.java @@ -102,8 +102,8 @@ public class GauntletWinLose extends ControlWinLose { this.getView().getBtnQuit().setText("OK"); // Remove save file if it's a quickie, or just reset it. - if (gd.getActiveFile().getName().matches(GauntletIO.REGEX_QUICK)) { - gd.getActiveFile().delete(); + if (gd.getName().startsWith(GauntletIO.PREFIX_QUICK)) { + GauntletIO.getGauntletFile(gd).delete(); } else { gd.reset(); @@ -131,8 +131,8 @@ public class GauntletWinLose extends ControlWinLose { this.getView().getBtnContinue().setVisible(false); // Remove save file if it's a quickie, or just reset it. - if (gd.getActiveFile().getName().matches(GauntletIO.REGEX_QUICK)) { - gd.getActiveFile().delete(); + if (gd.getName().startsWith(GauntletIO.PREFIX_QUICK)) { + GauntletIO.getGauntletFile(gd).delete(); } else { gd.reset(); diff --git a/src/main/java/forge/gui/match/QuestWinLose.java b/src/main/java/forge/gui/match/QuestWinLose.java index 0c6c59ec5ee..06a740398be 100644 --- a/src/main/java/forge/gui/match/QuestWinLose.java +++ b/src/main/java/forge/gui/match/QuestWinLose.java @@ -17,22 +17,34 @@ package forge.gui.match; +import java.awt.Color; +import java.awt.Dimension; +import java.awt.Image; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; +import java.util.Map.Entry; + +import javax.swing.BorderFactory; +import javax.swing.ImageIcon; +import javax.swing.JLabel; +import javax.swing.SwingConstants; + import forge.Card; import forge.Singletons; -import forge.control.FControl; - import forge.card.BoosterData; import forge.card.CardEdition; import forge.card.UnOpenedProduct; +import forge.control.FControl; import forge.game.GameEndReason; import forge.game.GameFormat; import forge.game.GameLossReason; import forge.game.GameOutcome; import forge.game.MatchController; import forge.game.player.LobbyPlayer; +import forge.game.player.Player; import forge.game.player.PlayerOutcome; import forge.game.player.PlayerStatistics; -import forge.game.player.Player; import forge.game.zone.ZoneType; import forge.gui.GuiChoose; import forge.gui.ListChooser; @@ -47,28 +59,16 @@ import forge.item.InventoryItem; import forge.item.OpenablePack; import forge.item.TournamentPack; import forge.properties.ForgePreferences.FPref; -import forge.quest.QuestEventChallenge; +import forge.quest.IQuestRewardCard; import forge.quest.QuestController; import forge.quest.QuestEvent; -import forge.quest.IQuestRewardCard; +import forge.quest.QuestEventChallenge; import forge.quest.bazaar.QuestItemType; import forge.quest.data.QuestPreferences; +import forge.quest.data.QuestPreferences.DifficultyPrefs; import forge.quest.data.QuestPreferences.QPref; import forge.util.MyRandom; -import java.awt.Color; -import java.awt.Dimension; -import java.awt.Image; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Map.Entry; - -import javax.swing.BorderFactory; -import javax.swing.ImageIcon; -import javax.swing.JLabel; -import javax.swing.SwingConstants; - /** *

* QuestWinLose. @@ -210,7 +210,7 @@ public class QuestWinLose extends ControlWinLose { // Grant booster on a win, or on a loss in easy mode if (this.wonMatch || difficulty == 0) { final int outcome = this.wonMatch ? wins : qData.getAchievements().getLost(); - if ((outcome % Singletons.getModel().getQuestPreferences().getPreferenceInt(QPref.WINS_BOOSTER, qData.getAchievements().getDifficulty())) == 0) { + if ((outcome % Singletons.getModel().getQuestPreferences().getPrefInt(DifficultyPrefs.WINS_BOOSTER, qData.getAchievements().getDifficulty())) == 0) { this.awardBooster(); } } @@ -262,7 +262,7 @@ public class QuestWinLose extends ControlWinLose { */ @Override public final void actionOnQuit() { - final int x = Singletons.getModel().getQuestPreferences().getPreferenceInt(QPref.PENALTY_LOSS); + final int x = Singletons.getModel().getQuestPreferences().getPrefInt(QPref.PENALTY_LOSS); // Record win/loss in quest data if (this.wonMatch) { @@ -328,7 +328,7 @@ public class QuestWinLose extends ControlWinLose { int credEstates = 0; // Basic win bonus - final int base = Singletons.getModel().getQuestPreferences().getPreferenceInt(QPref.REWARDS_BASE); + final int base = Singletons.getModel().getQuestPreferences().getPrefInt(QPref.REWARDS_BASE); double multiplier = 1; String diff = qEvent.getDifficulty(); @@ -345,7 +345,7 @@ public class QuestWinLose extends ControlWinLose { } credBase += (int) ((base * multiplier) + (Double.parseDouble(Singletons.getModel().getQuestPreferences() - .getPreference(QPref.REWARDS_WINS_MULTIPLIER)) * qData.getAchievements().getWin())); + .getPref(QPref.REWARDS_WINS_MULTIPLIER)) * qData.getAchievements().getWin())); sb.append(diff + " opponent: " + credBase + " credits.
"); // Gameplay bonuses (for each game win) @@ -400,7 +400,7 @@ public class QuestWinLose extends ControlWinLose { // Mulligan to zero final int cntCardsHumanStartedWith = humanRating.getOpeningHandSize(); final int mulliganReward = Singletons.getModel().getQuestPreferences() - .getPreferenceInt(QPref.REWARDS_MULLIGAN0); + .getPrefInt(QPref.REWARDS_MULLIGAN0); if (0 == cntCardsHumanStartedWith) { credGameplay += mulliganReward; @@ -433,8 +433,8 @@ public class QuestWinLose extends ControlWinLose { // Undefeated bonus if (hasNeverLost) { - credUndefeated += Singletons.getModel().getQuestPreferences().getPreferenceInt(QPref.REWARDS_UNDEFEATED); - final int reward = Singletons.getModel().getQuestPreferences().getPreferenceInt(QPref.REWARDS_UNDEFEATED); + credUndefeated += Singletons.getModel().getQuestPreferences().getPrefInt(QPref.REWARDS_UNDEFEATED); + final int reward = Singletons.getModel().getQuestPreferences().getPrefInt(QPref.REWARDS_UNDEFEATED); sb.append(String.format("You have not lost once! " + "Bonus: %d credits.
", reward)); } @@ -549,7 +549,7 @@ public class QuestWinLose extends ControlWinLose { if (qData.getFormat() == null) { final List formats = new ArrayList(); - String preferredFormat = Singletons.getModel().getQuestPreferences().getPreference(QPref.BOOSTER_FORMAT); + String preferredFormat = Singletons.getModel().getQuestPreferences().getPref(QPref.BOOSTER_FORMAT); GameFormat pref = null; for (GameFormat f : Singletons.getModel().getFormats()) { @@ -564,7 +564,7 @@ public class QuestWinLose extends ControlWinLose { ch.show(pref); final GameFormat selected = ch.getSelectedValue(); - Singletons.getModel().getQuestPreferences().setPreference(QPref.BOOSTER_FORMAT, selected.toString()); + Singletons.getModel().getQuestPreferences().setPref(QPref.BOOSTER_FORMAT, selected.toString()); cardsWon = qData.getCards().addCards(selected.getFilterPrinted()); @@ -734,7 +734,7 @@ public class QuestWinLose extends ControlWinLose { } private void penalizeLoss() { - final int x = Singletons.getModel().getQuestPreferences().getPreferenceInt(QPref.PENALTY_LOSS); + final int x = Singletons.getModel().getQuestPreferences().getPrefInt(QPref.PENALTY_LOSS); this.icoTemp = QuestWinLose.getResizedIcon(FSkin.getIcon(FSkin.QuestIcons.ICO_HEART), 0.5); this.lblTemp1 = new TitleLabel("Gameplay Results"); @@ -778,17 +778,17 @@ public class QuestWinLose extends ControlWinLose { QuestPreferences qp = Singletons.getModel().getQuestPreferences(); if (null == whyAiLost) { // Felidar, Helix Pinnacle, etc. - return qp.getPreferenceInt(QPref.REWARDS_ALTERNATIVE); + return qp.getPrefInt(QPref.REWARDS_ALTERNATIVE); } switch (whyAiLost) { case LifeReachedZero: return 0; // nothing special here, ordinary kill case Milled: - return qp.getPreferenceInt(QPref.REWARDS_MILLED); + return qp.getPrefInt(QPref.REWARDS_MILLED); case Poisoned: - return qp.getPreferenceInt(QPref.REWARDS_POISON); + return qp.getPrefInt(QPref.REWARDS_POISON); case SpellEffect: // Door to Nothingness, etc. - return qp.getPreferenceInt(QPref.REWARDS_ALTERNATIVE); + return qp.getPrefInt(QPref.REWARDS_ALTERNATIVE); default: return 0; } @@ -807,13 +807,13 @@ public class QuestWinLose extends ControlWinLose { int credits; if (iTurn == 1) { - credits = Singletons.getModel().getQuestPreferences().getPreferenceInt(QPref.REWARDS_TURN1); + credits = Singletons.getModel().getQuestPreferences().getPrefInt(QPref.REWARDS_TURN1); } else if (iTurn <= 5) { - credits = Singletons.getModel().getQuestPreferences().getPreferenceInt(QPref.REWARDS_TURN5); + credits = Singletons.getModel().getQuestPreferences().getPrefInt(QPref.REWARDS_TURN5); } else if (iTurn <= 10) { - credits = Singletons.getModel().getQuestPreferences().getPreferenceInt(QPref.REWARDS_TURN10); + credits = Singletons.getModel().getQuestPreferences().getPrefInt(QPref.REWARDS_TURN10); } else if (iTurn <= 15) { - credits = Singletons.getModel().getQuestPreferences().getPreferenceInt(QPref.REWARDS_TURN15); + credits = Singletons.getModel().getQuestPreferences().getPrefInt(QPref.REWARDS_TURN15); } else { credits = 0; } diff --git a/src/main/java/forge/gui/match/VAssignDamage.java b/src/main/java/forge/gui/match/VAssignDamage.java index 4fc26a3dbbc..07e7defefb0 100644 --- a/src/main/java/forge/gui/match/VAssignDamage.java +++ b/src/main/java/forge/gui/match/VAssignDamage.java @@ -27,6 +27,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; + import javax.swing.JDialog; import javax.swing.JLabel; import javax.swing.JPanel; @@ -186,12 +187,17 @@ public class VAssignDamage { this.damage.put(null, dt); this.defenders.add(dt); Card fakeCard; - if( defender instanceof Card ) + if (defender instanceof Card) fakeCard = (Card)defender; - else { + else if (defender instanceof Player) { fakeCard = new Card(); fakeCard.setName(this.defender.getName()); - } + Player p = (Player)defender; + fakeCard.setImageKey(p.getLobbyPlayer().getIconImageKey()); + } else { + fakeCard = new Card(); + fakeCard.setName(this.defender.getName()); + } addPanelForDefender(pnlDefenders, fakeCard); } diff --git a/src/main/java/forge/gui/match/ViewWinLose.java b/src/main/java/forge/gui/match/ViewWinLose.java index 81ff07f4922..be07ea41e60 100644 --- a/src/main/java/forge/gui/match/ViewWinLose.java +++ b/src/main/java/forge/gui/match/ViewWinLose.java @@ -24,8 +24,6 @@ import forge.gui.toolbox.FOverlay; import forge.gui.toolbox.FScrollPane; import forge.gui.toolbox.FSkin; import forge.gui.toolbox.FTextArea; -import forge.properties.ForgeProps; -import forge.properties.NewConstants.Lang.GuiWinLose.WinLoseText; /** * TODO: Write javadoc for this type. @@ -95,11 +93,11 @@ public class ViewWinLose { lblStats.setHorizontalAlignment(SwingConstants.CENTER); lblStats.setFont(FSkin.getFont().deriveFont(Font.PLAIN, 26)); - btnContinue.setText(ForgeProps.getLocalized(WinLoseText.CONTINUE)); + btnContinue.setText("Continue"); btnContinue.setFont(FSkin.getFont(22)); - btnRestart.setText(ForgeProps.getLocalized(WinLoseText.RESTART)); + btnRestart.setText("Restart"); btnRestart.setFont(FSkin.getFont(22)); - btnQuit.setText(ForgeProps.getLocalized(WinLoseText.QUIT)); + btnQuit.setText("Quit"); btnQuit.setFont(FSkin.getFont(22)); btnContinue.setEnabled(!match.isMatchOver()); diff --git a/src/main/java/forge/gui/match/nonsingleton/CCommand.java b/src/main/java/forge/gui/match/nonsingleton/CCommand.java index 0e19f4339c2..28fc6ed8aeb 100644 --- a/src/main/java/forge/gui/match/nonsingleton/CCommand.java +++ b/src/main/java/forge/gui/match/nonsingleton/CCommand.java @@ -26,7 +26,6 @@ import java.util.Observable; import java.util.Observer; import forge.Card; - import forge.Command; import forge.game.player.Player; import forge.game.zone.ZoneType; diff --git a/src/main/java/forge/gui/match/nonsingleton/CField.java b/src/main/java/forge/gui/match/nonsingleton/CField.java index ce1401632cc..155794a7e5f 100644 --- a/src/main/java/forge/gui/match/nonsingleton/CField.java +++ b/src/main/java/forge/gui/match/nonsingleton/CField.java @@ -50,15 +50,12 @@ import forge.game.player.Player; import forge.game.zone.PlayerZone; import forge.game.zone.ZoneType; import forge.gui.ForgeAction; +import forge.gui.ForgeAction.MatchConstants; import forge.gui.GuiChoose; import forge.gui.framework.ICDoc; import forge.gui.match.CMatchUI; import forge.gui.match.controllers.CMessage; import forge.gui.toolbox.FLabel; -import forge.properties.ForgeProps; -import forge.properties.NewConstants; -import forge.properties.NewConstants.Lang.GuiDisplay.HumanHand; -import forge.properties.NewConstants.Lang.GuiDisplay.HumanLibrary; /** * Controls Swing components of a player's field instance. @@ -274,9 +271,9 @@ public class CField implements ICDoc { * @param property *   String obj */ - public ZoneAction(final PlayerZone zone, final String property) { + public ZoneAction(final PlayerZone zone, MatchConstants property) { super(property); - this.title = ForgeProps.getLocalized(property + "/title"); + this.title = property.title; this.zone = zone; } @@ -328,17 +325,15 @@ public class CField implements ICDoc { /** */ private void handAction() { if ( CField.this.player == playerViewer || Preferences.DEV_MODE || CField.this.player.hasKeyword("Play with your hand revealed.")) { - new ZoneAction(CField.this.player.getZone(ZoneType.Hand), HumanHand.BASE) + new ZoneAction(CField.this.player.getZone(ZoneType.Hand), MatchConstants.HUMANHAND) .actionPerformed(null); } } /** */ + @SuppressWarnings("serial") private void flashbackAction() { - new ZoneAction(CField.this.player.getZone(ZoneType.Graveyard), NewConstants.Lang.GuiDisplay.HUMAN_FLASHBACK) { - - private static final long serialVersionUID = 8120331222693706164L; - + new ZoneAction(CField.this.player.getZone(ZoneType.Graveyard), MatchConstants.HUMANFLASHBACK) { @Override protected List getCardsAsIterable() { return CardFactoryUtil.getExternalZoneActivationCards(player); @@ -357,23 +352,22 @@ public class CField implements ICDoc { } } }.actionPerformed(null); - } /** */ private void libraryAction() { if (!Preferences.DEV_MODE) { return; } - new ZoneAction(CField.this.player.getZone(ZoneType.Library), HumanLibrary.BASE).actionPerformed(null); + new ZoneAction(CField.this.player.getZone(ZoneType.Library), MatchConstants.HUMANLIBRARY).actionPerformed(null); } /** */ private void exiledAction() { - new ZoneAction(CField.this.player.getZone(ZoneType.Exile), NewConstants.Lang.GuiDisplay.HUMAN_EXILED).actionPerformed(null); + new ZoneAction(CField.this.player.getZone(ZoneType.Exile), MatchConstants.HUMANEXILED).actionPerformed(null); } private void graveyardAction() { - new ZoneAction(CField.this.player.getZone(ZoneType.Graveyard), NewConstants.Lang.GuiDisplay.HUMAN_GRAVEYARD).actionPerformed(null); + new ZoneAction(CField.this.player.getZone(ZoneType.Graveyard), MatchConstants.HUMANGRAVEYARD).actionPerformed(null); } private void avatarAction() { diff --git a/src/main/java/forge/gui/match/views/VPlayers.java b/src/main/java/forge/gui/match/views/VPlayers.java index c00103bb479..fa14bc82a4e 100644 --- a/src/main/java/forge/gui/match/views/VPlayers.java +++ b/src/main/java/forge/gui/match/views/VPlayers.java @@ -27,7 +27,6 @@ import javax.swing.border.MatteBorder; import net.miginfocom.swing.MigLayout; import forge.Card; - import forge.Singletons; import forge.game.player.Player; import forge.game.zone.ZoneType; diff --git a/src/main/java/forge/gui/match/views/VStack.java b/src/main/java/forge/gui/match/views/VStack.java index f652a9f3e9a..45364e7f5b9 100644 --- a/src/main/java/forge/gui/match/views/VStack.java +++ b/src/main/java/forge/gui/match/views/VStack.java @@ -36,6 +36,7 @@ import forge.Singletons; import forge.card.spellability.SpellAbilityStackInstance; import forge.game.zone.MagicStack; import forge.gui.ForgeAction; +import forge.gui.ForgeAction.MatchConstants; import forge.gui.framework.DragCell; import forge.gui.framework.DragTab; import forge.gui.framework.EDocID; @@ -43,7 +44,6 @@ import forge.gui.framework.IVDoc; import forge.gui.match.CMatchUI; import forge.gui.match.controllers.CStack; import forge.gui.toolbox.FSkin; -import forge.properties.NewConstants; /** * Assembles Swing components of stack report. @@ -230,34 +230,28 @@ public enum VStack implements IVDoc { //========= Custom class handling + @SuppressWarnings("serial") private class TriggerReactionMenu extends JPopupMenu { - private static final long serialVersionUID = 6665085414634139984L; private int workTrigID; public TriggerReactionMenu() { super(); - final ForgeAction actAccept = new ForgeAction(NewConstants.Lang.GuiDisplay.Trigger.ALWAYSACCEPT) { - private static final long serialVersionUID = -3734674058185367612L; - + final ForgeAction actAccept = new ForgeAction(MatchConstants.ALWAYSACCEPT) { @Override public final void actionPerformed(final ActionEvent e) { Singletons.getModel().getGame().getTriggerHandler().setAlwaysAcceptTrigger(TriggerReactionMenu.this.workTrigID); } }; - final ForgeAction actDecline = new ForgeAction(NewConstants.Lang.GuiDisplay.Trigger.ALWAYSDECLINE) { - private static final long serialVersionUID = -1983295769159971502L; - + final ForgeAction actDecline = new ForgeAction(MatchConstants.ALWAYSDECLINE) { @Override public final void actionPerformed(final ActionEvent e) { Singletons.getModel().getGame().getTriggerHandler().setAlwaysDeclineTrigger(TriggerReactionMenu.this.workTrigID); } }; - final ForgeAction actAsk = new ForgeAction(NewConstants.Lang.GuiDisplay.Trigger.ALWAYSASK) { - private static final long serialVersionUID = 5045255351332940821L; - + final ForgeAction actAsk = new ForgeAction(MatchConstants.ALWAYSASK) { @Override public final void actionPerformed(final ActionEvent e) { Singletons.getModel().getGame().getTriggerHandler().setAlwaysAskTrigger(TriggerReactionMenu.this.workTrigID); diff --git a/src/main/java/forge/gui/toolbox/CardFaceSymbols.java b/src/main/java/forge/gui/toolbox/CardFaceSymbols.java index 4bc8c37cc2e..4bfe0b07a35 100644 --- a/src/main/java/forge/gui/toolbox/CardFaceSymbols.java +++ b/src/main/java/forge/gui/toolbox/CardFaceSymbols.java @@ -24,11 +24,10 @@ import java.util.List; import java.util.Map; import java.util.StringTokenizer; - import com.esotericsoftware.minlog.Log; -import forge.card.mana.ManaCostShard; import forge.card.mana.ManaCost; +import forge.card.mana.ManaCostShard; /** *

diff --git a/src/main/java/forge/gui/toolbox/FCheckBox.java b/src/main/java/forge/gui/toolbox/FCheckBox.java index b8b4ecce7e7..b25ba7615d9 100644 --- a/src/main/java/forge/gui/toolbox/FCheckBox.java +++ b/src/main/java/forge/gui/toolbox/FCheckBox.java @@ -1,57 +1,20 @@ package forge.gui.toolbox; -import java.awt.event.ItemEvent; -import java.awt.event.ItemListener; -import java.awt.event.MouseEvent; -import java.awt.event.MouseListener; - import javax.swing.JCheckBox; -import forge.Command; - /** * A custom instance of JCheckBox using Forge skin properties. */ @SuppressWarnings("serial") -public class FCheckBox extends JCheckBox implements ItemListener, MouseListener { - private Command cmd; - /** */ +public class FCheckBox extends JCheckBox { public FCheckBox() { this(""); } - /** @param s0   {@link java.lang.String} */ public FCheckBox(final String s0) { super(s0); this.setForeground(FSkin.getColor(FSkin.Colors.CLR_TEXT)); - this.setBackground(FSkin.getColor(FSkin.Colors.CLR_HOVER)); this.setFont(FSkin.getFont(14)); this.setOpaque(false); - this.addMouseListener(this); - this.addItemListener(this); } - - /** @param cmd0   {@link forge.Command} */ - public void setCommand(final Command cmd0) { - this.cmd = cmd0; - } - - @Override - public void mouseEntered(final MouseEvent e) { - setOpaque(true); - } - - @Override - public void mouseExited(final MouseEvent e) { - setOpaque(false); - } - - @Override - public void itemStateChanged(final ItemEvent e) { - if (cmd != null) { cmd.execute(); } - } - - @Override public void mouseClicked(MouseEvent arg0) { } - @Override public void mousePressed(MouseEvent arg0) { } - @Override public void mouseReleased(MouseEvent arg0) { } } diff --git a/src/main/java/forge/gui/toolbox/FLabel.java b/src/main/java/forge/gui/toolbox/FLabel.java index a7b1a2e86a3..969b78f8d79 100644 --- a/src/main/java/forge/gui/toolbox/FLabel.java +++ b/src/main/java/forge/gui/toolbox/FLabel.java @@ -73,6 +73,7 @@ public class FLabel extends JLabel implements ILocalRepaint { private boolean bldIconScaleAuto = true; protected boolean bldReactOnMouseDown = false; private boolean bldUseSkinColors = true; + private boolean bldEnabled = true; protected String bldText, bldToolTip; private ImageIcon bldIcon; @@ -141,6 +142,10 @@ public class FLabel extends JLabel implements ILocalRepaint { * @return {@link forge.gui.toolbox.Builder} */ public Builder fontStyle(final int i0) { this.bldFontStyle = i0; return this; } + /**@param b0   boolean + * @return {@link forge.gui.toolbox.Builder} */ + public Builder enabled(final boolean b0) { this.bldEnabled = b0; return this; } + /**@param b0   boolean * @return {@link forge.gui.toolbox.Builder} */ public Builder iconScaleAuto(final boolean b0) { this.bldIconScaleAuto = b0; return this; } @@ -193,6 +198,7 @@ public class FLabel extends JLabel implements ILocalRepaint { this.iconAlignX = b0.bldIconAlignX; this.iconInsets = b0.bldIconInsets; + this.setEnabled(b0.bldEnabled); this.setFontStyle(b0.bldFontStyle); this.setFontSize(b0.bldFontSize); this.setUnhoveredAlpha(b0.bldUnhoveredAlpha); diff --git a/src/main/java/forge/gui/toolbox/FTextField.java b/src/main/java/forge/gui/toolbox/FTextField.java index 8d41124a37b..ecfe9b75bde 100644 --- a/src/main/java/forge/gui/toolbox/FTextField.java +++ b/src/main/java/forge/gui/toolbox/FTextField.java @@ -31,6 +31,7 @@ public class FTextField extends JTextField { public Builder maxLength(int i0) { maxLength = i0; return this; } public Builder readonly(boolean b0) { readonly = b0; return this; } + public Builder readonly() { return readonly(true); } public Builder text(String s0) { text = s0; return this; } public Builder tooltip(String s0) { toolTip = s0; return this; } diff --git a/src/main/java/forge/gui/toolbox/SaveOpenDialog.java b/src/main/java/forge/gui/toolbox/SaveOpenDialog.java index d70726f0637..e0624a87152 100644 --- a/src/main/java/forge/gui/toolbox/SaveOpenDialog.java +++ b/src/main/java/forge/gui/toolbox/SaveOpenDialog.java @@ -19,8 +19,9 @@ package forge.gui.toolbox; import java.io.File; -import javax.swing.JPanel; + import javax.swing.JFileChooser; +import javax.swing.JPanel; import javax.swing.filechooser.FileFilter; import javax.swing.filechooser.FileNameExtensionFilter; diff --git a/src/main/java/forge/gui/toolbox/SmartScroller.java b/src/main/java/forge/gui/toolbox/SmartScroller.java new file mode 100644 index 00000000000..bd254ba9a75 --- /dev/null +++ b/src/main/java/forge/gui/toolbox/SmartScroller.java @@ -0,0 +1,160 @@ + +// based on code from http://tips4java.wordpress.com/2013/03/03/smart-scrolling/ +package forge.gui.toolbox; + +import java.awt.Component; +import java.awt.event.*; +import javax.swing.*; +import javax.swing.text.*; + +/** + * The SmartScroller will attempt to keep the viewport positioned based on + * the users interaction with the scrollbar. The normal behaviour is to keep + * the viewport positioned to see new data as it is dynamically added. + * + * Assuming vertical scrolling and data is added to the bottom: + * + * - when the viewport is at the bottom and new data is added, + * then automatically scroll the viewport to the bottom + * - when the viewport is not at the bottom and new data is added, + * then do nothing with the viewport + * + * Assuming vertical scrolling and data is added to the top: + * + * - when the viewport is at the top and new data is added, + * then do nothing with the viewport + * - when the viewport is not at the top and new data is added, then adjust + * the viewport to the relative position it was at before the data was added + * + * Similiar logic would apply for horizontal scrolling. + */ +public class SmartScroller implements AdjustmentListener { + public final static int HORIZONTAL = 0; + public final static int VERTICAL = 1; + + public final static int START = 0; + public final static int END = 1; + + private int viewportPosition; + + private JScrollBar scrollBar; + private boolean adjustScrollBar = true; + + private int previousValue = -1; + private int previousMaximum = -1; + + /** + * Convenience constructor. + * Scroll direction is VERTICAL and viewport position is at the END. + * + * @param scrollPane the scroll pane to monitor + */ + public SmartScroller(JScrollPane scrollPane) { + this(scrollPane, VERTICAL, END); + } + + /** + * Convenience constructor. + * Scroll direction is VERTICAL. + * + * @param scrollPane the scroll pane to monitor + * @param viewportPosition valid values are START and END + */ + public SmartScroller(JScrollPane scrollPane, int viewportPosition) { + this(scrollPane, VERTICAL, viewportPosition); + } + + /** + * Specify how the SmartScroller will function. + * + * @param scrollPane the scroll pane to monitor + * @param scrollDirection indicates which JScrollBar to monitor. + * Valid values are HORIZONTAL and VERTICAL. + * @param viewportPosition indicates where the viewport will normally be + * positioned as data is added. + * Valid values are START and END + */ + public SmartScroller(JScrollPane scrollPane, int scrollDirection, int viewportPosition) { + if (scrollDirection != HORIZONTAL && scrollDirection != VERTICAL) + throw new IllegalArgumentException("invalid scroll direction specified"); + + if (viewportPosition != START && viewportPosition != END) + throw new IllegalArgumentException("invalid viewport position specified"); + + this.viewportPosition = viewportPosition; + + if (scrollDirection == HORIZONTAL) + scrollBar = scrollPane.getHorizontalScrollBar(); + else + scrollBar = scrollPane.getVerticalScrollBar(); + + scrollBar.addAdjustmentListener(this); + + // Turn off automatic scrolling for text components + + Component view = scrollPane.getViewport().getView(); + + if (view instanceof JTextComponent) { + JTextComponent textComponent = (JTextComponent)view; + DefaultCaret caret = (DefaultCaret)textComponent.getCaret(); + caret.setUpdatePolicy(DefaultCaret.NEVER_UPDATE); + } + } + + @Override + public void adjustmentValueChanged(final AdjustmentEvent e) { + SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { checkScrollBar(e); } + }); + } + + /* + * Analyze every adjustment event to determine when the viewport + * needs to be repositioned. + */ + private void checkScrollBar(AdjustmentEvent e) { + // The scroll bar listModel contains information needed to determine + // whether the viewport should be repositioned or not. + + JScrollBar scrollBar = (JScrollBar)e.getSource(); + BoundedRangeModel listModel = scrollBar.getModel(); + int value = listModel.getValue(); + int extent = listModel.getExtent(); + int maximum = listModel.getMaximum(); + + boolean valueChanged = previousValue != value; + boolean maximumChanged = previousMaximum != maximum; + + // Check if the user has manually repositioned the scrollbar + + if (valueChanged && !maximumChanged) { + if (viewportPosition == START) + adjustScrollBar = value != 0; + else + adjustScrollBar = value + extent >= maximum; + } + + // Reset the "value" so we can reposition the viewport and + // distinguish between a user scroll and a program scroll. + // (ie. valueChanged will be false on a program scroll) + + if (adjustScrollBar && viewportPosition == END) { + // Scroll the viewport to the end. + scrollBar.removeAdjustmentListener(this); + value = maximum - extent; + scrollBar.setValue( value ); + scrollBar.addAdjustmentListener(this); + } + + if (adjustScrollBar && viewportPosition == START) { + // Keep the viewport at the same relative viewportPosition + scrollBar.removeAdjustmentListener(this); + value = value + maximum - previousMaximum; + scrollBar.setValue(value); + scrollBar.addAdjustmentListener(this); + } + + previousValue = value; + previousMaximum = maximum; + } +} diff --git a/src/main/java/forge/item/BoosterPack.java b/src/main/java/forge/item/BoosterPack.java index c79592316ad..1f7677b91ff 100644 --- a/src/main/java/forge/item/BoosterPack.java +++ b/src/main/java/forge/item/BoosterPack.java @@ -39,8 +39,8 @@ public class BoosterPack extends OpenablePack { } @Override - public final String getImageFilename() { - return ImageCache.SEALED_PRODUCT + "booster/" + this.contents.getEdition() + ".png"; + public final String getImageKey() { + return ImageCache.BOOSTER_PREFIX + this.contents.getEdition(); } @Override diff --git a/src/main/java/forge/item/CardDb.java b/src/main/java/forge/item/CardDb.java index c5e0b13badd..e315c2590b5 100644 --- a/src/main/java/forge/item/CardDb.java +++ b/src/main/java/forge/item/CardDb.java @@ -25,7 +25,6 @@ import java.util.Map; import java.util.NoSuchElementException; import java.util.TreeMap; - import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.tuple.ImmutablePair; @@ -39,26 +38,12 @@ import forge.card.CardInSet; import forge.card.CardRules; import forge.util.Aggregates; - -/** - *

- * CardDb class. - *

- * - * @author Forge - * @version $Id: CardDb.java 9708 2011-08-09 19:34:12Z jendave $ - */ public final class CardDb { private static volatile CardDb commonCards = null; // 'volatile' keyword makes this working private static volatile CardDb variantCards = null; // 'volatile' keyword makes this working public final static String foilSuffix = " foil"; private final static int foilSuffixLength = foilSuffix.length(); - /** - * Instance. - * - * @return the card db - */ public static CardDb instance() { if (CardDb.commonCards == null) { throw new NullPointerException("CardDb has not yet been initialized, run setup() first"); @@ -73,13 +58,6 @@ public final class CardDb { return CardDb.variantCards; } - - /** - * Sets the up. - * - * @param list - * the new up - */ public static void setup(final Iterable list) { if (CardDb.commonCards != null) { throw new RuntimeException("CardDb has already been initialized, don't do it twice please"); @@ -93,10 +71,6 @@ public final class CardDb { } } - // Here oracle cards - // private final Map cards = new Hashtable(); - // Here are refs, get them by name private final Map uniqueCards; @@ -155,10 +129,6 @@ public final class CardDb { /** * Checks if is card supported. - * - * @param cardName0 - * the card name - * @return true, if is card supported */ public CardPrinted tryGetCard(final String cardName0) { if (null == cardName0) { @@ -191,42 +161,15 @@ public final class CardDb { } // Single fetch - /** - * Gets the card. - * - * @param name - * the name - * @return the card - */ public CardPrinted getCard(final String name) { return this.getCard(name, false); } // Advanced fetch by name+set - /** - * Gets the card. - * - * @param name - * the name - * @param set - * the set - * @return the card - */ public CardPrinted getCard(final String name, final String set) { return this.getCard(name, set, 0); } - /** - * Gets the card. - * - * @param name - * the name - * @param set - * the set - * @param artIndex - * the art index - * @return the card - */ public CardPrinted getCard(final String name, final String set, final int artIndex) { // 1. get set final Map cardsFromset = this.allCardsBySet.get(set.toUpperCase()); @@ -253,13 +196,6 @@ public final class CardDb { // Fetch from Forge's Card instance. Well, there should be no errors, but // we'll still check - /** - * Gets the card. - * - * @param forgeCard - * the forge card - * @return the card - */ public static CardPrinted getCard(final Card forgeCard) { final String name = forgeCard.getName(); final String set = forgeCard.getCurSetCode(); @@ -274,24 +210,10 @@ public final class CardDb { } // returns a list of all cards from their respective latest editions - /** - * Gets the all unique cards. - * - * @return the all unique cards - */ public Collection getUniqueCards() { return this.uniqueCards.values(); } - - - // public Iterable getAllCardRules() { return cards.values(); } - // // still not needed - /** - * Gets the all cards. - * - * @return the all cards - */ public List getAllCards() { return this.allCardsFlat; } @@ -301,14 +223,6 @@ public final class CardDb { return Lists.newArrayList(Iterables.filter(this.allCardsFlat, predicate)); } - - /** - * Gets the card. - * - * @param name0 the name0 - * @param fromLatestSet the from latest set - * @return the card - */ public CardPrinted getCard(final String name0, final boolean fromLatestSet) { // Sometimes they read from decks things like "CardName|Set" - but we // can handle it @@ -345,10 +259,6 @@ public final class CardDb { } private static class CardSorter{ - // Here oracle cards - // private final Map cards = new Hashtable(); - // need this to obtain cardReference by name+set+artindex public final Map> allCommonCardsBySet = new TreeMap>(String.CASE_INSENSITIVE_ORDER); public final Map> allSpecialCardsBySet = new TreeMap>(String.CASE_INSENSITIVE_ORDER); @@ -359,17 +269,6 @@ public final class CardDb { public final List allCommonCardsFlat = new ArrayList(); public final List allSpecialCardsFlat = new ArrayList(); - /** - * Adds the to lists. - * - * @param card - * the card - * @param cardName - * the card name - * @param s - * the s - * @return the card printed - */ public CardPrinted addToLists(final CardRules card, final String cardName, final String set, CardInSet cs) { CardPrinted lastAdded = null; @@ -397,12 +296,6 @@ public final class CardDb { return lastAdded; } - /** - * Adds the new card. - * - * @param card - * the card - */ private void addNewCard(final CardRules card) { if (null == card) { return; diff --git a/src/main/java/forge/item/CardPrinted.java b/src/main/java/forge/item/CardPrinted.java index 7f8d5dcdc56..07c99bedf9d 100644 --- a/src/main/java/forge/item/CardPrinted.java +++ b/src/main/java/forge/item/CardPrinted.java @@ -23,12 +23,14 @@ import java.util.Map; import com.google.common.base.Function; import forge.Card; -import forge.CardUtil; import forge.Singletons; +import forge.card.CardInSet; import forge.card.CardRarity; import forge.card.CardRules; +import forge.card.CardSplitType; import forge.card.cardfactory.CardFactory; import forge.game.player.Player; +import forge.util.Base64Coder; /** @@ -54,18 +56,6 @@ public final class CardPrinted implements Comparable, InventoryItemF private final transient CardRarity rarity; // rarity is given in ctor when // set is assigned - // image filename is calculated only after someone request it - private transient String imageFilename = null; - - // field RO accessors - /* - * (non-Javadoc) - * - * @see forge.item.InventoryItemFromSet#getName() - */ - /* (non-Javadoc) - * @see forge.item.ICardPrinted#getName() - */ @Override public String getName() { return this.name; @@ -76,75 +66,125 @@ public final class CardPrinted implements Comparable, InventoryItemF return name; } - /* - * (non-Javadoc) - * - * @see forge.item.InventoryItemFromSet#getSet() - */ - /* (non-Javadoc) - * @see forge.item.ICardPrinted#getEdition() - */ @Override public String getEdition() { return this.edition; } - /* (non-Javadoc) - * @see forge.item.ICardPrinted#getArtIndex() - */ @Override public int getArtIndex() { return this.artIndex; } - /* (non-Javadoc) - * @see forge.item.ICardPrinted#isFoil() - */ @Override public boolean isFoil() { return this.foiled; } - /* (non-Javadoc) - * @see forge.item.ICardPrinted#getRules() - */ @Override public CardRules getRules() { return this.card; } - /* (non-Javadoc) - * @see forge.item.ICardPrinted#getRarity() - */ @Override public CardRarity getRarity() { return this.rarity; } - /* - * (non-Javadoc) - * - * @see forge.item.InventoryItemFromSet#getImageFilename() - */ - /* (non-Javadoc) - * @see forge.item.ICardPrinted#getImageFilename() - */ - @Override - public String getImageFilename() { - if (this.imageFilename == null) { - this.imageFilename = CardUtil.buildFilename(this); + private static String toMWSFilename(String in) { + final StringBuffer out = new StringBuffer(); + char c; + for (int i = 0; i < in.length(); i++) { + c = in.charAt(i); + if ((c == '"') || (c == '/') || (c == ':') || (c == '?')) { + out.append(""); + } else { + out.append(c); + } } - return this.imageFilename; - } + return out.toString(); + } - /* - * (non-Javadoc) - * - * @see forge.item.InventoryItem#getType() - */ - /* (non-Javadoc) - * @see forge.item.ICardPrinted#getItemType() - */ + private String getImageName() { + return CardSplitType.Split != card.getSplitType() ? name : card.getMainPart().getName() + card.getOtherPart().getName(); + } + + @Override + public String getImageKey() { + return getImageLocator(getImageName(), getArtIndex(), true, false); + } + + public String getImageKey(boolean backFace) { + return getImageKey(backFace, getArtIndex(), true); + } + + public String getImageKey(boolean backFace, int artIdx, boolean includeSet) { + final String nameToUse; + if (backFace) { + if (null == card.getOtherPart()) { + return null; + } + switch (card.getSplitType()) { + case Transform: case Flip: case Licid: + break; + default: + return null; + } + nameToUse = card.getOtherPart().getName(); + } else { + nameToUse = getImageName(); + } + + return getImageLocator(nameToUse, artIdx, includeSet, false); + } + + public String getImageUrlPath(boolean backFace) { + return getImageLocator(backFace ? card.getOtherPart().getName() : getImageName(), getArtIndex(), true, true); + } + + private String getImageLocator(String nameToUse, int artIdx, boolean includeSet, boolean base64encode) { + StringBuilder s = new StringBuilder(); + + s.append(toMWSFilename(nameToUse)); + + final int cntPictures; + if (includeSet) { + cntPictures = card.getEditionInfo(edition).getCopiesCount(); + } else { + // raise the art index limit to the maximum of the sets this card was printed in + int maxCntPictures = 1; + for (String set : card.getSets()) { + CardInSet setInfo = card.getEditionInfo(set); + if (maxCntPictures < setInfo.getCopiesCount()) { + maxCntPictures = setInfo.getCopiesCount(); + } + } + cntPictures = maxCntPictures; + } + if (cntPictures > 1 && cntPictures > artIdx) { + s.append(artIdx + 1); + } + + // for whatever reason, MWS-named plane cards don't have the ".full" infix + if (!card.getType().isPlane() && !card.getType().isPhenomenon()) { + s.append(".full"); + } + + final String fname; + if (base64encode) { + s.append(".jpg"); + fname = Base64Coder.encodeString(s.toString(), true); + } else { + fname = s.toString(); + } + + if (includeSet) { + return String.format("%s/%s", Singletons.getModel().getEditions().getCode2ByCode(edition), fname); + } else { + return fname; + } + } + @Override public String getItemType() { return "Card"; @@ -152,7 +192,6 @@ public final class CardPrinted implements Comparable, InventoryItemF /** * Lambda to get rules for selects from list of printed cards. - * */ public static final Function FN_GET_RULES = new Function() { @Override diff --git a/src/main/java/forge/item/CardToken.java b/src/main/java/forge/item/CardToken.java index 0dcb5098c8d..63d5175be74 100644 --- a/src/main/java/forge/item/CardToken.java +++ b/src/main/java/forge/item/CardToken.java @@ -1,31 +1,59 @@ package forge.item; +import java.util.Locale; + import forge.Card; +import forge.ImageCache; +import forge.card.CardEdition; import forge.card.CardRarity; import forge.card.CardRules; import forge.card.cardfactory.CardFactory; import forge.game.player.Player; public class CardToken implements InventoryItemFromSet, IPaperCard { - private String name; - private String edition; + private CardEdition edition; private String imageFileName; private CardRules card; + // takes a string of the form " " such as: "B 0 0 Germ" + public static String makeTokenFileName(String in) { + StringBuffer out = new StringBuffer(ImageCache.TOKEN_PREFIX); + char c; + for (int i = 0; i < in.length(); i++) { + c = in.charAt(i); + if ((c == ' ') || (c == '-') || (c == '_')) { + out.append('_'); + } else if (Character.isLetterOrDigit(c)) { + out.append(c); + } + } + return out.toString().toLowerCase(Locale.ENGLISH); + } - // Constructor is private. All non-foiled instances are stored in CardDb - public CardToken(final CardRules c, final String edition0, final String imageFileName) { + public static String makeTokenFileName(String colors, int power, int toughness, String name) { + return makeTokenFileName(colors, String.valueOf(power), String.valueOf(toughness), name); + } + + public static String makeTokenFileName(String colors, String power, String toughness, String name) { + StringBuilder fileName = new StringBuilder(); + fileName.append(colors).append('_').append(power).append('_').append(toughness).append('_').append(name); + return makeTokenFileName(fileName.toString()); + } + + public CardToken(final CardRules c, CardEdition edition0, final String imageFileName) { this.card = c; this.name = c.getName(); this.edition = edition0; - this.imageFileName = imageFileName; + this.imageFileName = String.format("%s%s%s", + null == edition || CardEdition.UNKNOWN == edition ? "" : edition.getCode(), + ImageCache.TOKEN_PREFIX, imageFileName); } @Override public String getName() { return name; } @Override public String getDescription() { return name; } - @Override public String getEdition() { return edition; } + @Override public String getEdition() { return edition.getCode(); } @Override public int getArtIndex() { return 0; } // This might change however @Override public boolean isFoil() { return false; } @@ -33,7 +61,7 @@ public class CardToken implements InventoryItemFromSet, IPaperCard { @Override public CardRarity getRarity() { return CardRarity.Common; } // They don't have rarity though! - @Override public String getImageFilename() { return imageFileName; } + @Override public String getImageKey() { return imageFileName; } @Override public String getItemType() { return "Token"; } @Override public Card getMatchingForgeCard() { return toForgeCard(null); } // hope this won't be queried too frequently, so no cache @@ -44,7 +72,5 @@ public class CardToken implements InventoryItemFromSet, IPaperCard { return c; } - @Override public boolean isToken() { return true; } - } diff --git a/src/main/java/forge/item/FatPack.java b/src/main/java/forge/item/FatPack.java index 8ae69aa3722..cd499cf24ae 100644 --- a/src/main/java/forge/item/FatPack.java +++ b/src/main/java/forge/item/FatPack.java @@ -52,8 +52,8 @@ public class FatPack extends OpenablePack { } @Override - public final String getImageFilename() { - return ImageCache.SEALED_PRODUCT + "fatpacks/" + this.contents.getEdition(); + public final String getImageKey() { + return ImageCache.FATPACK_PREFIX + this.contents.getEdition(); } diff --git a/src/main/java/forge/item/IPaperCard.java b/src/main/java/forge/item/IPaperCard.java index e84345dba4e..30cde8d0d57 100644 --- a/src/main/java/forge/item/IPaperCard.java +++ b/src/main/java/forge/item/IPaperCard.java @@ -5,17 +5,16 @@ import java.util.HashSet; import java.util.List; import java.util.Set; +import org.apache.commons.lang3.StringUtils; + import com.google.common.base.Predicate; + import forge.Card; import forge.card.CardRarity; import forge.card.CardRules; import forge.game.player.Player; import forge.util.PredicateString; -/** - * TODO: Write javadoc for this type. - * - */ public interface IPaperCard { /** @@ -23,28 +22,10 @@ public interface IPaperCard { */ public abstract static class Predicates { - /** - * Rarity. - * - * @param isEqual - * the is equal - * @param value - * the value - * @return the predicate - */ public static Predicate rarity(final boolean isEqual, final CardRarity value) { return new PredicateRarity(value, isEqual); } - /** - * Printed in sets. - * - * @param value - * the value - * @param shouldContain - * the should contain - * @return the predicate - */ public static Predicate printedInSets(final List value, final boolean shouldContain) { if ((value == null) || value.isEmpty()) { return com.google.common.base.Predicates.alwaysTrue(); @@ -52,51 +33,21 @@ public interface IPaperCard { return new PredicateSets(value, shouldContain); } - /** - * Printed in sets. - * - * @param value - * the value - * @return the predicate - */ public static Predicate printedInSets(final String value) { - if ((value == null) || value.isEmpty()) { + if (StringUtils.isEmpty(value)) { return com.google.common.base.Predicates.alwaysTrue(); } return new PredicateSets(Arrays.asList(new String[] { value }), true); } - /** - * Name. - * - * @param what - * the what - * @return the predicate - */ public static Predicate name(final String what) { return new PredicateName(PredicateString.StringOp.EQUALS_IC, what); } - /** - * Name. - * - * @param op - * the op - * @param what - * the what - * @return the predicate - */ public static Predicate name(final PredicateString.StringOp op, final String what) { return new PredicateName(op, what); } - /** - * Names except. - * - * @param what - * the what - * @return the predicate - */ public static Predicate namesExcept(final List what) { return new PredicateNamesExcept(what); } @@ -204,7 +155,7 @@ public interface IPaperCard { public abstract boolean isToken(); public abstract CardRules getRules(); public abstract CardRarity getRarity(); - public abstract String getImageFilename(); + public abstract String getImageKey(); public abstract String getItemType(); diff --git a/src/main/java/forge/item/InventoryItem.java b/src/main/java/forge/item/InventoryItem.java index 9d8dc811bb5..9a36f896094 100644 --- a/src/main/java/forge/item/InventoryItem.java +++ b/src/main/java/forge/item/InventoryItem.java @@ -35,7 +35,7 @@ public interface InventoryItem { * * @return the image filename */ - String getImageFilename(); + String getImageKey(); /** * Return type as a string. diff --git a/src/main/java/forge/item/PreconDeck.java b/src/main/java/forge/item/PreconDeck.java index 3057a8072c4..b31f1be7e81 100644 --- a/src/main/java/forge/item/PreconDeck.java +++ b/src/main/java/forge/item/PreconDeck.java @@ -23,7 +23,6 @@ import java.util.Map; import com.google.common.base.Function; - import forge.ImageCache; import forge.Singletons; import forge.deck.Deck; @@ -60,8 +59,8 @@ public class PreconDeck implements InventoryItemFromSet { * @see forge.item.InventoryItemFromSet#getImageFilename() */ @Override - public String getImageFilename() { - return ImageCache.SEALED_PRODUCT + "precons/" + this.imageFilename; + public String getImageKey() { + return ImageCache.PRECON_PREFIX + imageFilename; } /* diff --git a/src/main/java/forge/item/TournamentPack.java b/src/main/java/forge/item/TournamentPack.java index e842da23273..33ca57e041a 100644 --- a/src/main/java/forge/item/TournamentPack.java +++ b/src/main/java/forge/item/TournamentPack.java @@ -27,10 +27,6 @@ import forge.card.BoosterData; import forge.card.BoosterGenerator; import forge.card.CardEdition; -/** - * TODO Write javadoc for this type. - * - */ public class TournamentPack extends OpenablePack { /** The Constant fnFromSet. */ @@ -42,27 +38,19 @@ public class TournamentPack extends OpenablePack { } }; - /** - * Instantiates a new booster pack. - * - * @param set - * the set - */ public TournamentPack(final String name0, final BoosterData boosterData) { super(name0, boosterData); } - @Override - public final String getImageFilename() { - return ImageCache.SEALED_PRODUCT + "tournamentpacks/" + this.contents.getEdition(); + public final String getImageKey() { + return ImageCache.TOURNAMENTPACK_PREFIX + contents.getEdition(); } public final boolean isStarterDeck() { return contents.getCommon() < 30; } - @Override public final String getItemType() { return !isStarterDeck() ? "Tournament Pack" : "Starter Deck"; @@ -74,20 +62,8 @@ public class TournamentPack extends OpenablePack { return gen.getBoosterPack(this.contents); } - /* - * (non-Javadoc) - * - * @see java.lang.Object#clone() - */ - /** - * Clone. - * - * @return Object - */ @Override public final Object clone() { return new TournamentPack(name, contents); } - - } diff --git a/src/main/java/forge/model/FModel.java b/src/main/java/forge/model/FModel.java index 88290e7e27e..3bcdce5a172 100644 --- a/src/main/java/forge/model/FModel.java +++ b/src/main/java/forge/model/FModel.java @@ -46,13 +46,11 @@ import forge.gui.GuiUtils; import forge.item.CardDb; import forge.properties.ForgePreferences; import forge.properties.ForgePreferences.FPref; -import forge.properties.ForgeProps; import forge.properties.NewConstants; import forge.quest.QuestController; import forge.quest.QuestWorld; import forge.quest.data.QuestPreferences; import forge.util.FileUtil; -import forge.util.HttpUtil; import forge.util.MultiplexOutputStream; import forge.util.storage.IStorageView; import forge.util.storage.StorageView; @@ -67,16 +65,12 @@ import forge.util.storage.StorageView; * this class must be either private or public static final. */ public enum FModel { - - /** The SINGLETO n_ instance. */ SINGLETON_INSTANCE; - // private static final int NUM_INIT_PHASES = 1; private final PrintStream oldSystemOut; private final PrintStream oldSystemErr; private OutputStream logFileStream; - private final QuestPreferences questPreferences; private final ForgePreferences preferences; @@ -106,10 +100,23 @@ public enum FModel { * if we could not find or write to the log file. */ private FModel() { - // Fire up log file and exception handling + // install our error reporter ExceptionHandler.registerErrorHandling(); - final File logFile = new File("forge.log"); + // create profile dirs if they don't already exist + for (String dname : NewConstants.PROFILE_DIRS) { + File path = new File(dname); + if (path.isDirectory()) { + // already exists + continue; + } + if (!path.mkdirs()) { + throw new RuntimeException("cannot create profile directory: " + dname); + } + } + + // initialize log file + final File logFile = new File(NewConstants.LOG_FILE); final boolean deleteSucceeded = logFile.delete(); if (logFile.exists() && !deleteSucceeded && (logFile.length() != 0)) { @@ -150,14 +157,11 @@ public enum FModel { // TODO - there's got to be a better place for this...oblivion? Preferences.DEV_MODE = this.preferences.getPrefBoolean(FPref.DEV_MODE_ENABLED); - - testNetworkConnection(); - this.loadDynamicGamedata(); // Loads all cards (using progress bar). GuiUtils.checkEDT("CardFactory$constructor", false); - final CardStorageReader reader = new CardStorageReader(ForgeProps.getFile(NewConstants.CARDSFOLDER), true); + final CardStorageReader reader = new CardStorageReader(NewConstants.CARD_DATA_DIR, true); try { // this fills in our map of card names to Card instances. CardDb.setup(reader.loadCards()); @@ -166,7 +170,7 @@ public enum FModel { BugReporter.reportException(ex); } - this.decks = new CardCollections(ForgeProps.getFile(NewConstants.NEW_DECKS)); + this.decks = new CardCollections(); this.quest = new QuestController(); } @@ -174,24 +178,6 @@ public enum FModel { return quest; } - /** - * Tests if draft upload is technically possible. - * Separate thread, no more hangs when network connection is limited - */ - private void testNetworkConnection() { - - Runnable runNetworkTest = new Runnable() { - @Override - public void run() { - final HttpUtil pinger = new HttpUtil(); - final String url = ForgeProps.getProperty(NewConstants.CARDFORGE_URL) + "/draftAI/ping.php"; - Constant.Runtime.NET_CONN = pinger.getURL(url).equals("pong"); - } - }; - Thread testNetConnection = new Thread(runNetworkTest, "CheckRemoteDraftAI"); - testNetConnection.start(); - } - /** * Load dynamic gamedata. */ @@ -367,14 +353,10 @@ public enum FModel { * Finalizer, generally should be avoided, but here closes the log file * stream and resets the system output streams. */ - public final void close() { + public final void close() throws IOException { System.setOut(this.oldSystemOut); System.setErr(this.oldSystemErr); - try { - this.logFileStream.close(); - } catch (final IOException e) { - // ignored - } + logFileStream.close(); } /** @return {@link forge.util.storage.IStorageView}<{@link forge.card.CardBlock}> */ diff --git a/src/main/java/forge/properties/FileLocation.java b/src/main/java/forge/properties/FileLocation.java new file mode 100644 index 00000000000..e406a7c9d7c --- /dev/null +++ b/src/main/java/forge/properties/FileLocation.java @@ -0,0 +1,28 @@ +/* + * Forge: Play Magic: the Gathering. + * Copyright (C) 2011 Forge Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package forge.properties; + +public final class FileLocation { + public final String defaultLoc; + public final String userPrefLoc; + + FileLocation (String defaultPrefix, String userPrefix, String commonSuffix) { + defaultLoc = defaultPrefix + commonSuffix; + userPrefLoc = userPrefix + commonSuffix; + } +} diff --git a/src/main/java/forge/properties/ForgePreferences.java b/src/main/java/forge/properties/ForgePreferences.java index 71898429bac..0e5a4e4bafe 100644 --- a/src/main/java/forge/properties/ForgePreferences.java +++ b/src/main/java/forge/properties/ForgePreferences.java @@ -17,16 +17,7 @@ */ package forge.properties; -import java.io.BufferedWriter; -import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileWriter; -import java.io.IOException; -import java.util.HashMap; import java.util.List; -import java.util.Map; - -import com.google.common.io.Files; import forge.Constant; import forge.Constant.Preferences; @@ -34,98 +25,84 @@ import forge.gui.home.EMenuItem; import forge.gui.match.VMatchUI; import forge.gui.match.nonsingleton.VField; import forge.gui.match.views.VDev; -import forge.util.FileUtil; - -/** - * Holds default preference values in an enum. - * Loads preferred values when instantiated. - * If a requested value is not present, default is returned. - * - * @author Forge - * @version $Id$ - */ -public class ForgePreferences { - private Map preferenceValues; +public class ForgePreferences extends PreferencesStore { /** * Preference identifiers, and their default values. - * When this class is instantiated, these enum values are used - * in a map that is populated with the current preferences - * from the text file. */ - public enum FPref { /** */ - UI_USE_OLD ("false"), /** */ - UI_RANDOM_FOIL ("false"), /** */ - UI_SMOOTH_LAND ("false"), /** */ - UI_AVATARS ("0,1"), /** */ - UI_CARD_OVERLAY ("true"), /** */ - UI_UPLOAD_DRAFT ("false"), /** */ - UI_SCALE_LARGER ("true"), /** */ - UI_MAX_STACK ("3"), /** */ - UI_STACK_OFFSET ("tiny"), /** */ - UI_CARD_SIZE ("small"), /** */ - UI_BUGZ_NAME (""), /** */ - UI_BUGZ_PWD (""), /** */ - UI_ANTE ("false"), /** */ - UI_MANABURN("false"), /** */ - UI_SKIN ("default"), /** */ - UI_PREFERRED_AVATARS_ONLY ("false"), /** */ - UI_TARGETING_OVERLAY ("false"), /** */ - UI_ENABLE_SOUNDS ("true"), /** */ - UI_RANDOM_CARD_ART ("false"), /** */ + public static enum FPref { + UI_USE_OLD ("false"), + UI_RANDOM_FOIL ("false"), + UI_SMOOTH_LAND ("false"), + UI_AVATARS ("0,1"), + UI_CARD_OVERLAY ("true"), + UI_UPLOAD_DRAFT ("false"), + UI_SCALE_LARGER ("true"), + UI_MAX_STACK ("3"), + UI_STACK_OFFSET ("tiny"), + UI_CARD_SIZE ("small"), + UI_BUGZ_NAME (""), + UI_BUGZ_PWD (""), + UI_ANTE ("false"), + UI_MANABURN("false"), + UI_SKIN ("default"), + UI_PREFERRED_AVATARS_ONLY ("false"), + UI_TARGETING_OVERLAY ("false"), + UI_ENABLE_SOUNDS ("true"), + UI_RANDOM_CARD_ART ("false"), - SUBMENU_CURRENTMENU (EMenuItem.CONSTRUCTED.toString()), /** */ - SUBMENU_SANCTIONED ("false"), /** */ - SUBMENU_GAUNTLET ("false"), /** */ - SUBMENU_VARIANT ("false"), /** */ - SUBMENU_QUEST ("false"), /** */ - SUBMENU_SETTINGS ("false"), /** */ - SUBMENU_UTILITIES ("false"), /** */ + SUBMENU_CURRENTMENU (EMenuItem.CONSTRUCTED.toString()), + SUBMENU_SANCTIONED ("false"), + SUBMENU_GAUNTLET ("false"), + SUBMENU_VARIANT ("false"), + SUBMENU_QUEST ("false"), + SUBMENU_SETTINGS ("false"), + SUBMENU_UTILITIES ("false"), - ENFORCE_DECK_LEGALITY ("true"), /** */ + ENFORCE_DECK_LEGALITY ("true"), - DEV_MODE_ENABLED ("false"), /** */ - DEV_MILLING_LOSS ("true"), /** */ - DEV_UNLIMITED_LAND ("false"), /** */ + DEV_MODE_ENABLED ("false"), + DEV_MILLING_LOSS ("true"), + DEV_UNLIMITED_LAND ("false"), - DECKGEN_SINGLETONS ("false"), /** */ - DECKGEN_ARTIFACTS ("false"), /** */ - DECKGEN_NOSMALL ("false"), /** */ + DECKGEN_SINGLETONS ("false"), + DECKGEN_ARTIFACTS ("false"), + DECKGEN_NOSMALL ("false"), - PHASE_AI_UPKEEP ("true"), /** */ - PHASE_AI_DRAW ("true"), /** */ - PHASE_AI_MAIN1 ("true"), /** */ - PHASE_AI_BEGINCOMBAT ("true"), /** */ - PHASE_AI_DECLAREATTACKERS ("true"), /** */ - PHASE_AI_DECLAREBLOCKERS ("true"), /** */ - PHASE_AI_FIRSTSTRIKE ("true"), /** */ - PHASE_AI_COMBATDAMAGE ("true"), /** */ - PHASE_AI_ENDCOMBAT ("true"), /** */ - PHASE_AI_MAIN2 ("true"), /** */ - PHASE_AI_EOT ("true"), /** */ - PHASE_AI_CLEANUP ("true"), /** */ + PHASE_AI_UPKEEP ("true"), + PHASE_AI_DRAW ("true"), + PHASE_AI_MAIN1 ("true"), + PHASE_AI_BEGINCOMBAT ("true"), + PHASE_AI_DECLAREATTACKERS ("true"), + PHASE_AI_DECLAREBLOCKERS ("true"), + PHASE_AI_FIRSTSTRIKE ("true"), + PHASE_AI_COMBATDAMAGE ("true"), + PHASE_AI_ENDCOMBAT ("true"), + PHASE_AI_MAIN2 ("true"), + PHASE_AI_EOT ("true"), + PHASE_AI_CLEANUP ("true"), - PHASE_HUMAN_UPKEEP ("true"), /** */ - PHASE_HUMAN_DRAW ("true"), /** */ - PHASE_HUMAN_MAIN1 ("true"), /** */ - PHASE_HUMAN_BEGINCOMBAT ("true"), /** */ - PHASE_HUMAN_DECLAREATTACKERS ("true"), /** */ - PHASE_HUMAN_DECLAREBLOCKERS ("true"), /** */ - PHASE_HUMAN_FIRSTSTRIKE ("true"), /** */ - PHASE_HUMAN_COMBATDAMAGE ("true"), /** */ - PHASE_HUMAN_ENDCOMBAT ("true"), /** */ - PHASE_HUMAN_MAIN2 ("true"), /** */ - PHASE_HUMAN_EOT ("true"), /** */ - PHASE_HUMAN_CLEANUP ("true"), /** */ + PHASE_HUMAN_UPKEEP ("true"), + PHASE_HUMAN_DRAW ("true"), + PHASE_HUMAN_MAIN1 ("true"), + PHASE_HUMAN_BEGINCOMBAT ("true"), + PHASE_HUMAN_DECLAREATTACKERS ("true"), + PHASE_HUMAN_DECLAREBLOCKERS ("true"), + PHASE_HUMAN_FIRSTSTRIKE ("true"), + PHASE_HUMAN_COMBATDAMAGE ("true"), + PHASE_HUMAN_ENDCOMBAT ("true"), + PHASE_HUMAN_MAIN2 ("true"), + PHASE_HUMAN_EOT ("true"), + PHASE_HUMAN_CLEANUP ("true"), - SHORTCUT_SHOWSTACK ("83"), /** */ - SHORTCUT_SHOWCOMBAT ("67"), /** */ - SHORTCUT_SHOWCONSOLE ("76"), /** */ - SHORTCUT_SHOWPLAYERS ("80"), /** */ - SHORTCUT_SHOWDEV ("68"), /** */ - SHORTCUT_CONCEDE ("17"), /** */ - SHORTCUT_ENDTURN ("69"), /** */ - SHORTCUT_ALPHASTRIKE ("65"), /** */ + SHORTCUT_SHOWSTACK ("83"), + SHORTCUT_SHOWCOMBAT ("67"), + SHORTCUT_SHOWCONSOLE ("76"), + SHORTCUT_SHOWPLAYERS ("80"), + SHORTCUT_SHOWDEV ("68"), + SHORTCUT_CONCEDE ("17"), + SHORTCUT_ENDTURN ("69"), + SHORTCUT_ALPHASTRIKE ("65"), SHORTCUT_SHOWTARGETING ("84"); private final String strDefaultVal; @@ -141,59 +118,23 @@ public class ForgePreferences { } } - /** */ - public enum CardSizeType { - /** */ + public static enum CardSizeType { tiny, smaller, small, medium, large, huge } - /** */ - public enum StackOffsetType { - /** */ + + public static enum StackOffsetType { tiny, small, medium, large } - /** */ - public enum HomeMenus { - /** */ + + public static enum HomeMenus { constructed, draft, sealed, quest, settings, utilities } /** Instantiates a ForgePreferences object. */ public ForgePreferences() { - preferenceValues = new HashMap(); - try { - // Preferences files have been consolidated into res/prefs/. - // This code is here temporarily to facilitate this transfer. - // After a while, this can be deleted. Doublestrike 21-5-12 - final File oldFile = new File("forge.preferences"); - - if (oldFile.exists()) { - final File newFile = new File(NewConstants.PREFS_GLOBAL_FILE); - Files.copy(oldFile, newFile); - oldFile.delete(); - } // END TEMPORARY CONSOLIDATION FACILITATION - - List lines = FileUtil.readFile(NewConstants.PREFS_GLOBAL_FILE); - for (String line : lines) { - - if (line.startsWith("#") || (line.length() == 0)) { - continue; - } - - final String[] split = line.split("="); - - if (split.length == 2) { - this.setPref(split[0], split[1]); - } else if (split.length == 1 && line.endsWith("=")) { - this.setPref(split[0], ""); - } - } - } catch (FileNotFoundException ex) { - //ex.printStackTrace(); - } catch (IOException ex) { - //ex.printStackTrace(); - } + super(NewConstants.MAIN_PREFS_FILE); } /** @@ -282,97 +223,20 @@ public class ForgePreferences { //Singletons.getView().getViewMatch().setLayoutParams(this.getPref(FPref.UI_LAYOUT_PARAMS)); } - /** Saves prefs map to file. */ - public void save() { - BufferedWriter writer = null; - - try { - writer = new BufferedWriter(new FileWriter(NewConstants.PREFS_GLOBAL_FILE)); - for (FPref key : FPref.values()) { - writer.write(key + "=" + getPref(key)); - writer.newLine(); - } - - writer.flush(); - writer.close(); - } catch (FileNotFoundException ex) { - ex.printStackTrace(); - } catch (IOException ex) { - ex.printStackTrace(); - } + protected FPref[] getEnumValues() { + return FPref.values(); } - - /** */ - public void reset() { - this.preferenceValues.clear(); - } - - /** - * DUE TO BE DEPRECATED: - * Transition code between preference manager for v1.2.2 and v1.2.3. - * (string-based vs. enum-based) - * - * @param s0   {@link java.lang.String} identifier of preference - * @param s1   {@link java.lang.String} value - */ - public void setPref(String s0, String s1) { + + protected FPref valueOf(String name) { try { - preferenceValues.put(FPref.valueOf(s0), s1); + return FPref.valueOf(name); } catch (Exception e) { + return null; } } - /** - * @param q0   {@link forge.properties.ForgePreferences.FPref} - * @param s0   {@link java.lang.String} value - */ - public void setPref(FPref q0, String s0) { - preferenceValues.put(q0, s0); - } - - /** - * - * TODO: Write javadoc for this method. - * @param q0 FPref - * @param val boolean - */ - public void setPref(FPref q0, boolean val) { - setPref(q0, String.valueOf(val)); - } - - /** - * Returns a non-difficulty-indexed preference value. - * - * @param fp0   {@link forge.quest.data.ForgePreferences.FPref} - * @return String - */ - public String getPref(FPref fp0) { - String val; - - val = preferenceValues.get(fp0); - if (val == null) { val = fp0.getDefault(); } - - return val; - } - - /** - * Returns a non-difficulty-indexed preference value, as an int. - * - * @param fp0   {@link forge.quest.data.ForgePreferences.FPref} - * @return int - */ - public int getPrefInt(FPref fp0) { - return Integer.parseInt(getPref(fp0)); - } - - /** - * Returns a non-difficulty-indexed preference value, as a boolean. - * - * @param fp0   {@link forge.quest.data.ForgePreferences.FPref} - * @return boolean - */ - public boolean getPrefBoolean(FPref fp0) { - return Boolean.parseBoolean(getPref(fp0)); + protected String getPrefDefault(FPref key) { + return key.getDefault(); } } diff --git a/src/main/java/forge/properties/ForgeProfileProperties.java b/src/main/java/forge/properties/ForgeProfileProperties.java new file mode 100644 index 00000000000..cd1235e0ca4 --- /dev/null +++ b/src/main/java/forge/properties/ForgeProfileProperties.java @@ -0,0 +1,112 @@ +/* + * Forge: Play Magic: the Gathering. + * Copyright (C) 2011 Forge Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package forge.properties; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.Properties; + +import org.apache.commons.lang.StringUtils; +import org.apache.commons.lang3.tuple.Pair; + +/** + * Determines the user data and cache dirs, first looking at the specified file for overrides + * then falling back to platform-specific defaults. Resulting dir strings are guaranteed to end in a slash + * so they can be easily appended with further path elements. + */ +public class ForgeProfileProperties { + public final String userDir; + public final String cacheDir; + public final String cardPicsDir; + + private static final String _USER_DIR_KEY = "userDir"; + private static final String _CACHE_DIR_KEY = "cacheDir"; + private static final String _CARD_PICS_DIR_KEY = "cardPicsDir"; + + public ForgeProfileProperties(String filename) { + Properties props = new Properties(); + File propFile = new File(filename); + try { + if (propFile.canRead()) { + props.load(new FileInputStream(propFile)); + } + } catch (IOException e) { + System.err.println("error while reading from profile properties file: " + filename); + } + + Pair defaults = _getDefaultDirs(); + userDir = _getDir(props, _USER_DIR_KEY, defaults.getLeft()); + cacheDir = _getDir(props, _CACHE_DIR_KEY, defaults.getRight()); + cardPicsDir = _getDir(props, _CARD_PICS_DIR_KEY, cacheDir + "pics/cards/"); + } + + private static String _getDir(Properties props, String propertyKey, String defaultVal) { + String retDir = props.getProperty(propertyKey, defaultVal).trim(); + if (retDir.isEmpty()) { + // use default if dir is "defined" as an empty string in the properties file + retDir = defaultVal; + } + + // canonicalize + retDir = new File(retDir).getAbsolutePath(); + + // ensure path ends in a slash + if (File.separatorChar == retDir.charAt(retDir.length() - 1)) { + return retDir; + } + return retDir + File.separatorChar; + } + + // returns a pair + private static Pair _getDefaultDirs() { + String osName = System.getProperty("os.name"); + String homeDir = System.getProperty("user.home"); + + if (StringUtils.isEmpty(osName) || StringUtils.isEmpty(homeDir)) { + throw new RuntimeException("cannot determine OS and user home directory"); + } + + String fallbackDataDir = String.format("%s/.forge", homeDir); + + if (StringUtils.containsIgnoreCase(osName, "windows")) { + // the split between appdata and localappdata on windows is relatively recent. If + // localappdata is not defined, use appdata for both. and if appdata is not defined, + // fall back to a linux-style dot dir in the home directory + String appRoot = System.getenv().get("APPDATA"); + if (StringUtils.isEmpty(appRoot)) { + appRoot = fallbackDataDir; + } + String cacheRoot = System.getenv().get("LOCALAPPDATA"); + if (StringUtils.isEmpty(cacheRoot)) { + cacheRoot = appRoot; + } + // just use '/' everywhere instead of file.separator. it always works + // the cache dir is Forge/Cache instead of just Forge since appRoot and cacheRoot might be the + // same directory on windows and we need to distinguish them. + return Pair.of(String.format("%s/Forge", appRoot), + String.format("%s/Forge/Cache", cacheRoot)); + } else if (StringUtils.containsIgnoreCase(osName, "mac os x")) { + return Pair.of(String.format("%s/Library/Application Support/Forge", homeDir), + String.format("%s/Library/Caches/Forge", homeDir)); + } + + // Linux and everything else + return Pair.of(fallbackDataDir, String.format("%s/.cache/forge", homeDir)); + } +} diff --git a/src/main/java/forge/properties/ForgeProps.java b/src/main/java/forge/properties/ForgeProps.java deleted file mode 100644 index 502e6c76813..00000000000 --- a/src/main/java/forge/properties/ForgeProps.java +++ /dev/null @@ -1,187 +0,0 @@ -/* - * Forge: Play Magic: the Gathering. - * Copyright (C) 2011 Forge Team - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package forge.properties; - -/** - * ForgeProps.java - * - * Created on 30.08.2009 - */ - -import java.io.File; -import java.io.IOException; -import java.util.Locale; - -import forge.error.BugReporter; -import forge.util.TreeProperties; - -/** - * The class ForgeProps. Wrapper around TreeProperties to support the uses in - * forge. - * - * @author Forge - * @version $Id$ - */ -public class ForgeProps { - /** Constant properties. */ - private static final TreeProperties PROPERTIES; - - static { - TreeProperties p; - try { - p = new TreeProperties(NewConstants.PREFS_MAIN_PROPERTIES_FILE); - p.rethrow(); - } catch (final IOException ex) { - BugReporter.reportException(ex); - p = null; - } - PROPERTIES = p; - } - - /** - * Returns the tree properties of forge. - * - * @return a {@link forge.util.TreeProperties} object. - */ - public static TreeProperties getProperties() { - return ForgeProps.PROPERTIES; - } - - /** - * Returns the string property value, or null if there's no such property. - * - * @param key - * a {@link java.lang.String} object. - * @return a {@link java.lang.String} object. - */ - public static String getProperty(final String key) { - return ForgeProps.getProperty(key, null); - } - - /** - * Returns the string property value, or def if there's no such property. - * - * @param key - * a {@link java.lang.String} object. - * @param def - * a {@link java.lang.String} object. - * @return a {@link java.lang.String} object. - */ - public static String getProperty(final String key, final String def) { - String result; - try { - result = ForgeProps.getProperties().getProperty(key); - if (result == null) { - result = def; - } - } catch (final Exception ex) { - result = def; - } - return result; - } - - /** - * Returns the File property value, or null if there's no such property. - * - * @param key - * a {@link java.lang.String} object. - * @return a {@link java.io.File} object. - */ - public static File getFile(final String key) { - return ForgeProps.getFile(key, null); - } - - /** - * Returns the File property value, or def if there's no such property. - * - * @param key - * a {@link java.lang.String} object. - * @param def - * a {@link java.io.File} object. - * @return a {@link java.io.File} object. - */ - public static File getFile(final String key, final File def) { - File result; - try { - result = ForgeProps.getProperties().getFile(key); - if (result == null) { - result = def; - } - } catch (final Exception ex) { - result = def; - } - return result; - } - - /** - * Returns the localized version of the specified property. The key is a - * format string containing "%s", which is replaced with a language code - * (ISO 639-1, see {@link Locale#getLanguage()}). First, the configured - * language is used. Second, the locale's code is used. If none of them - * contains the requested key, "en" is used as the language code. - * - * @param key - * a {@link java.lang.String} object. - * @return a {@link java.lang.String} object. - */ - public static String getLocalized(final String key) { - return ForgeProps.getLocalized(key, null); - } - - /** - * Returns the localized version of the specified property. The key is a - * format string containing "%s", which is replaced with a language code - * (ISO 639-1, see {@link Locale#getLanguage()}). First, the configured - * language is used. Second, the locale's code is used. If none of them - * contains the requested key, "en" is used as the language code. If even - * that has no value, the def parameter is returned. - * - * @param key - * a {@link java.lang.String} object. - * @param def - * a {@link java.lang.String} object. - * @return a {@link java.lang.String} object. - */ - public static String getLocalized(final String key, final String def) { - // the list of languages to look for, in the order to be used - // the first is the configured language - // the second is the default locale's language code - final String[] languages = { ForgeProps.getProperty(NewConstants.Lang.LANGUAGE), - Locale.getDefault().getLanguage(), "en" }; - try { - for (final String lang : languages) { - // could be if a property does not exist - // just skip it, and try the next - if (lang == null) { - continue; - } - final String result = ForgeProps.getProperty(String.format(key, lang)); - if (result != null) { - return result; - } - } - // exceptions are skipped here; also the error viewer uses this, and - // reporting exceptions may result - // in a more fatal error (stack overflow) - } catch (final Exception ex) { - } - // if no property was found, or an error occurred, return the default - // value - return def; - } -} diff --git a/src/main/java/forge/properties/NewConstants.java b/src/main/java/forge/properties/NewConstants.java index 4fcb78e0ffe..b4a8f1f010b 100644 --- a/src/main/java/forge/properties/NewConstants.java +++ b/src/main/java/forge/properties/NewConstants.java @@ -17,1080 +17,104 @@ */ package forge.properties; -/** - * NewConstants.java - * - * Created on 22.08.2009 - */ - -/** - * These are mostly property keys. - * - * @author Clemens Koza - * @version V0.0 22.08.2009 - */ public final class NewConstants { - // General properties - /** - * Constant - * HOW_TO_REPORT_BUGS_URL = "program/howToReportBugsURL". - */ - public static final String HOW_TO_REPORT_BUGS_URL = "program/howToReportBugsURL"; + public static final String PROFILE_FILE = "forge.profile.properties"; + public static final String PROFILE_TEMPLATE_FILE = PROFILE_FILE + ".example"; - /** Constant SHOW2CDECK="showdeck/2color". */ - public static final String SHOW2CDECK = "showdeck/2color"; - - /** Constant CARDFORGE_URL = "program/cardforgeURL". */ - public static final String CARDFORGE_URL = "program/cardforgeURL"; - - /** Constant PREFS_GLOBAL_FILE = "forge.preferences". */ - public static final String PREFS_GLOBAL_FILE = "res/preferences/forge.preferences"; - /** Constant PREFS_GLOBAL_FILE = "editor.preferences". */ - public static final String PREFS_EDITOR_FILE = "res/preferences/editor.preferences"; - public static final String PREFS_DEFAULT_EDITOR_FILE = "res/preferences/editor.default.preferences"; - /** */ - public static final String PREFS_MAIN_PROPERTIES_FILE = "res/preferences/main.properties"; - - /** Constant LAYOUT_DIR = "res/layouts/". */ - public static final String LAYOUT_DIR = "res/layouts/"; - - /** Constant DECKS="decks". */ - public static final String DECKS = "decks"; - /** Constant BOOSTER_DECKS="booster-decks". */ - public static final String BOOSTER_DECKS = "booster-decks"; - /** Constant NEW_DECKS="decks-dir". */ - public static final String NEW_DECKS = "decks-dir"; - - /** Constant TOKENS="tokens". */ - public static final String TOKENS = "tokens"; - /** Constant CARD_PICTURES="card-pictures". */ - public static final String CARD_PICTURES = "card-pictures"; - /** Constant CARD_PICTURES_A="card-pictures_a". */ - - public static final class CardPicturesByLetter { - /** */ - public static final String CARD_PICTURES_A = "card-pictures_a"; - /** Constant CARD_PICTURES_B="card-pictures_b". */ - public static final String CARD_PICTURES_B = "card-pictures_b"; - /** Constant CARD_PICTURES_C="card-pictures_c". */ - public static final String CARD_PICTURES_C = "card-pictures_c"; - /** Constant CARD_PICTURES_D="card-pictures_d". */ - public static final String CARD_PICTURES_D = "card-pictures_d"; - /** Constant CARD_PICTURES_E="card-pictures_e". */ - public static final String CARD_PICTURES_E = "card-pictures_e"; - /** Constant CARD_PICTURES_F="card-pictures_f". */ - public static final String CARD_PICTURES_F = "card-pictures_f"; - /** Constant CARD_PICTURES_G="card-pictures_g". */ - public static final String CARD_PICTURES_G = "card-pictures_g"; - /** Constant CARD_PICTURES_H="card-pictures_h". */ - public static final String CARD_PICTURES_H = "card-pictures_h"; - /** Constant CARD_PICTURES_I="card-pictures_i". */ - public static final String CARD_PICTURES_I = "card-pictures_i"; - /** Constant CARD_PICTURES_J="card-pictures_j". */ - public static final String CARD_PICTURES_J = "card-pictures_j"; - /** Constant CARD_PICTURES_K="card-pictures_k". */ - public static final String CARD_PICTURES_K = "card-pictures_k"; - /** Constant CARD_PICTURES_L="card-pictures_l". */ - public static final String CARD_PICTURES_L = "card-pictures_l"; - /** Constant CARD_PICTURES_M="card-pictures_m". */ - public static final String CARD_PICTURES_M = "card-pictures_m"; - /** Constant CARD_PICTURES_N="card-pictures_n". */ - public static final String CARD_PICTURES_N = "card-pictures_n"; - /** Constant CARD_PICTURES_O="card-pictures_o". */ - public static final String CARD_PICTURES_O = "card-pictures_o"; - /** Constant CARD_PICTURES_P="card-pictures_p". */ - public static final String CARD_PICTURES_P = "card-pictures_p"; - /** Constant CARD_PICTURES_Q="card-pictures_q". */ - public static final String CARD_PICTURES_Q = "card-pictures_q"; - /** Constant CARD_PICTURES_R="card-pictures_r". */ - public static final String CARD_PICTURES_R = "card-pictures_r"; - /** Constant CARD_PICTURES_S="card-pictures_s". */ - public static final String CARD_PICTURES_S = "card-pictures_s"; - /** Constant CARD_PICTURES_T="card-pictures_t". */ - public static final String CARD_PICTURES_T = "card-pictures_t"; - /** Constant CARD_PICTURES_U="card-pictures_u". */ - public static final String CARD_PICTURES_U = "card-pictures_u"; - /** Constant CARD_PICTURES_V="card-pictures_v". */ - public static final String CARD_PICTURES_V = "card-pictures_v"; - /** Constant CARD_PICTURES_W="card-pictures_w". */ - public static final String CARD_PICTURES_W = "card-pictures_w"; - /** Constant CARD_PICTURES_X="card-pictures_x". */ - public static final String CARD_PICTURES_X = "card-pictures_x"; - /** Constant CARD_PICTURES_Y="card-pictures_y". */ - public static final String CARD_PICTURES_Y = "card-pictures_y"; - /** Constant CARD_PICTURES_Z="card-pictures_z". */ - public static final String CARD_PICTURES_Z = "card-pictures_z"; + // data that is only in the program dir + private static final String _RES_ROOT = "res/"; + private static final String _QUEST_DIR = _RES_ROOT + "quest/"; + public static final String IMAGE_LIST_TOKENS_FILE = _RES_ROOT + "token-images.txt"; + public static final String IMAGE_LIST_QUEST_OPPONENT_ICONS_FILE = _QUEST_DIR + "quest-opponent-icons.txt"; + public static final String IMAGE_LIST_QUEST_PET_SHOP_ICONS_FILE = _QUEST_DIR + "quest-pet-shop-icons.txt"; + public static final String IMAGE_LIST_QUEST_TOKENS_FILE = _QUEST_DIR + "quest-pet-token-images.txt"; + public static final String IMAGE_LIST_QUEST_BOOSTERS_FILE = _QUEST_DIR + "booster-images.txt"; + public static final String IMAGE_LIST_QUEST_FATPACKS_FILE = _QUEST_DIR + "fatpack-images.txt"; + public static final String IMAGE_LIST_QUEST_PRECONS_FILE = _QUEST_DIR + "precon-images.txt"; + public static final String IMAGE_LIST_QUEST_TOURNAMENTPACKS_FILE = _QUEST_DIR + "tournamentpack-images.txt"; + + public static final String TEXT_HOWTO_FILE = _RES_ROOT + "howto.txt"; + public static final String DRAFT_RANKINGS_FILE = _RES_ROOT + "draft/rankings.txt"; + public static final String PRICES_BOOSTER_FILE = _QUEST_DIR + "booster-prices.txt"; + public static final String BAZAAR_FILE = _QUEST_DIR + "bazaar/index.xml"; + public static final String CARD_DATA_DIR = _RES_ROOT + "cardsfolder/"; + public static final String DECK_CUBE_DIR = _RES_ROOT + "cube"; + public static final String QUEST_WORLD_DIR = _QUEST_DIR + "worlds/"; + public static final String QUEST_PRECON_DIR = _QUEST_DIR + "precons/"; + + public static final String CARD_DATA_PETS_DIR = _QUEST_DIR + "bazaar/"; + public static final String DEFAULT_DUELS_DIR = _QUEST_DIR + "duels"; + public static final String DEFAULT_CHALLENGES_DIR = _QUEST_DIR + "challenges"; + + // data tree roots + public static final String USER_DIR; + public static final String CACHE_DIR; + public static final String CACHE_CARD_PICS_DIR; + static { + ForgeProfileProperties profileProps = new ForgeProfileProperties(PROFILE_FILE); + USER_DIR = profileProps.userDir; + CACHE_DIR = profileProps.cacheDir; + CACHE_CARD_PICS_DIR = profileProps.cardPicsDir; } - /** Constant TOKEN_IMAGES="token-images". */ - public static final String TOKEN_IMAGES = "token-images"; - /** Constant CARDSFOLDER="cardsfolder". */ - public static final String CARDSFOLDER = "cardsfolder"; - /** Constant REMOVED="removed-cards". */ - public static final String REMOVED = "removed-cards"; - /** Constant NAME_MUTATOR="name-mutator". */ - public static final String NAME_MUTATOR = "name-mutator"; - /** The file name of the image for face down cards on the battlefield. */ - public static final String MORPH_IMAGE_FILE_NAME = "morph"; - - /** The MTG_DATA. */ - public static final String MTG_DATA = "mtg-data"; - - /** The SYMBOLS_SMALL. */ - public static final String SYMBOLS_SMALL = "symbols/small"; - - /** Constant IMAGE_BASE="image/base". */ - public static final String IMAGE_BASE = "image/base"; - /** Constant IMAGE_TOKEN="image/token". */ - public static final String IMAGE_TOKEN = "image/token"; - /** Constant IMAGE_ICON="image/icon". */ - public static final String IMAGE_ICON = "image/icon"; - /** Constant IMAGE_SEALED_PRODUCT="image/product". */ - public static final String IMAGE_SEALED_PRODUCT = "image/product"; - /** Constant PICS_BOOSTER_IMAGES="pics/booster/images". */ - public static final String PICS_BOOSTER_IMAGES = "pics/booster/images"; - - /** - * These properties are for a regular game. - */ - public static class Regular { - /** Property path for a common card. */ - public static final String COMMON = "regular/common"; - /** Property path for an uncommon card. */ - public static final String UNCOMMON = "regular/uncommon"; - /** Property path for a rare card. */ - public static final String RARE = "regular/rare"; - } - - /** - * These properties are for a booster draft. - */ - public static class Draft { - /** Property path for a common card. */ - public static final String COMMON = "draft/common"; - /** Property path for an uncommon card. */ - public static final String UNCOMMON = "draft/uncommon"; - /** Property path for a rare card. */ - public static final String RARE = "draft/rare"; - /** Path for draft rankings. */ - public static final String RANKINGS = "draft/rankings"; - } - - /** - * These properties are for a quest game. - */ - public static class Quest { - /** Property path for a common card. */ - public static final String COMMON = "quest/common"; - /** Property path for an uncommon card. */ - public static final String UNCOMMON = "quest/uncommon"; - /** Property path for a rare card. */ - public static final String RARE = "quest/rare"; - - /** The PRICE. */ - public static final String PRICE = "quest/price"; - - /** The BOOSTER_PRICE. */ - public static final String BOOSTER_PRICE = "quest/boosterprice"; - - /** The DATA. */ - public static final String DATA = "quest/data"; - - /** The PREFS. */ - public static final String PREFS = "quest/prefs"; - - /** The DECKS. */ - public static final String DUELS = "quest/duels-dir"; - /** */ - public static final String CHALLENGES = "quest/challenges-dir"; - /** */ - public static final String WORLD = "quest/world-dir"; - - /** The XMLDATA. */ - public static final String XMLDATA = "quest/data-xml"; - - /** The XMLDATA. */ - public static final String DATA_DIR = "quest/data-dir"; - - /** The OPPONENT_ICONS. */ - public static final String OPPONENT_ICONS = "quest/opponent/icons"; - - /** The OPPONENT_DIR. */ - public static final String OPPONENT_DIR = "image/icon"; - - /** The PET_SHOP_ICONS. */ - public static final String PET_SHOP_ICONS = "quest/pet/icons"; - - /** The PET_TOKEN_IMAGES. */ - public static final String PET_TOKEN_IMAGES = "quest/pet/tokens"; - - /** */ - public static final String PRECONS = "quest/precons-dir"; - - /** */ - public static final String BAZAAR = "quest/bazaar"; - /** */ - public static final String BAZAAR_DIR = "quest/bazaar-dir"; - } - - /** - * These are localization properties. - */ - public static class Lang { - - /** The PROGRAM_NAME. */ - public static final String PROGRAM_NAME = "%s/program/name"; - - /** The LANGUAGE. */ - public static final String LANGUAGE = "lang"; - - /** - * The Interface HowTo. - */ - public static class HowTo { - - /** The TITLE. */ - public static final String TITLE = "%s/HowTo/title"; - - /** The MESSAGE. */ - public static final String MESSAGE = "%s/HowTo/message"; - } - - /** - * The Interface ErrorViewer. - */ - public static class ErrorViewer { - - /** The SHOW_ERROR. */ - public static final String SHOW_ERROR = "%s/ErrorViewer/show"; - - /** The TITLE. */ - public static final String TITLE = "%s/ErrorViewer/title"; - - /** The MESSAGE. */ - public static final String MESSAGE = "%s/ErrorViewer/message"; - - /** The BUTTON_SAVE. */ - public static final String BUTTON_SAVE = "%s/ErrorViewer/button/save"; - - /** The BUTTON_CLOSE. */ - public static final String BUTTON_CLOSE = "%s/ErrorViewer/button/close"; - - /** The BUTTON_EXIT. */ - public static final String BUTTON_EXIT = "%s/ErrorViewer/button/exit"; - - /** - * The Interface ERRORS. - */ - public static class ERRORS { - - /** The SAVE_MESSAGE. */ - public static final String SAVE_MESSAGE = "%s/ErrorViewer/errors/save/message"; - - /** The SHOW_MESSAGE. */ - public static final String SHOW_MESSAGE = "%s/ErrorViewer/errors/show/message"; - } - } - - /** - * The Interface GuiBoosterDraft. - */ - public static class GuiBoosterDraft { - - /** The CLOSE_MESSAGE. */ - public static final String CLOSE_MESSAGE = "%s/BoosterDraft/close/message"; - - /** The SAVE_MESSAGE. */ - public static final String SAVE_MESSAGE = "%s/BoosterDraft/save/message"; - - /** The SAVE_TITLE. */ - public static final String SAVE_TITLE = "%s/BoosterDraft/save/title"; - - /** The RENAME_MESSAGE. */ - public static final String RENAME_MESSAGE = "%s/BoosterDraft/rename/message"; - - /** The RENAME_TITLE. */ - public static final String RENAME_TITLE = "%s/BoosterDraft/rename/title"; - - /** The SAVE_DRAFT_MESSAGE. */ - public static final String SAVE_DRAFT_MESSAGE = "%s/BoosterDraft/saveDraft/message"; - - /** The SAVE_DRAFT_TITLE. */ - public static final String SAVE_DRAFT_TITLE = "%s/BoosterDraft/saveDraft/title"; - } - - /** - * The Interface GuiDisplay. - */ - public static class GuiDisplay { - - /** - * The Interface MenuBar. - */ - public static class MenuBar { - - /** - * The Interface Menu. - */ - public static class Menu { - - /** The TITLE. */ - public static final String TITLE = "%s/Display/menu/title"; - } - - /** - * The Interface Phase. - */ - public static class PHASE { - - /** The TITLE. */ - public static final String TITLE = "%s/Display/phase/title"; - } - - /** - * The Interface DEV. - */ - public static class DEV { - - /** The TITLE. */ - public static final String TITLE = "%s/Display/dev/title"; - } - } - - /** The HUMAN_TITLE. */ - public static final String HUMAN_TITLE = "%s/Display/human/title"; - - /** The HUMAN_DECKLIST. */ - public static final String HUMAN_DECKLIST = "%s/Display/human/decklist"; - - /** - * The Interface HumanHand. - */ - public static class HumanHand { - - /** The BASE. */ - public static final String BASE = "%s/Display/human/hand"; - - /** The TITLE. */ - public static final String TITLE = "%s/Display/human/hand/title"; - - /** The BUTTON. */ - public static final String BUTTON = "%s/Display/human/hand/button"; - - /** The MENU. */ - public static final String MENU = "%s/Display/human/hand/menu"; - } - - /** - * The Interface HumanLibrary. - */ - public static class HumanLibrary { - - /** The BASE. */ - public static final String BASE = "%s/Display/human/library"; - - /** The TITLE. */ - public static final String TITLE = "%s/Display/human/library/title"; - - /** The MENU. */ - public static final String MENU = "%s/Display/human/library/menu"; - - /** The BUTTON. */ - public static final String BUTTON = "%s/Display/human/library/button"; - } - - /** The HUMAN_GRAVEYARD. */ - public static final String HUMAN_GRAVEYARD = "%s/Display/human/graveyard"; - - /** - * The Interface HumanGraveyard. - */ - public static class HumanGraveyard { - - /** The TITLE. */ - public static final String TITLE = "%s/Display/human/graveyard/title"; - - /** The BUTTON. */ - public static final String BUTTON = "%s/Display/human/graveyard/button"; - - /** The MENU. */ - public static final String MENU = "%s/Display/human/graveyard/menu"; - } - - /** The HUMAN_EXILED. */ - public static final String HUMAN_EXILED = "%s/Display/human/exiled"; - - /** - * The Interface HumanRemoved. - */ - public static class HumanRemoved { - - /** The TITLE. */ - public static final String TITLE = "%s/Display/human/exiled/title"; - - /** The BUTTON. */ - public static final String BUTTON = "%s/Display/human/exiled/button"; - - /** The MENU. */ - public static final String MENU = "%s/Display/human/exiled/menu"; - } - - /** The COMBAT. */ - public static final String COMBAT = "%s/Display/combat/title"; - - /** The HUMAN_FLASHABCK. */ - public static final String HUMAN_FLASHBACK = "%s/Display/human/flashback"; - - /** The COMPUTER_FLASHBACK. */ - public static final String COMPUTER_FLASHBACK = "%s/Display/computer/flashback"; - - /** - * The Interface HumanFlashback. - */ - public static class HumanFlashback { - - /** The TITLE. */ - public static final String TITLE = "%s/Display/human/flashback/title"; - - /** The BUTTON. */ - public static final String BUTTON = "%s/Display/human/flashback/button"; - - /** The MENU. */ - public static final String MENU = "%s/Display/human/flashback/menu"; - } - - /** - * The Interface ComputerFlashback. - */ - public static class ComputerFlashback { - - /** The TITLE. */ - public static final String TITLE = "%s/Display/computer/flashback/title"; - - /** The BUTTON. */ - public static final String BUTTON = "%s/Display/computer/flashback/button"; - - /** The MENU. */ - public static final String MENU = "%s/Display/computer/flashback/menu"; - } - - /** The COMPUTER_TITLE. */ - public static final String COMPUTER_TITLE = "%s/Display/computer/title"; - - /** - * The Interface ComputerHand. - */ - public static class ComputerHand { - - /** The BASE. */ - public static final String BASE = "%s/Display/computer/hand"; - - /** The TITLE. */ - public static final String TITLE = "%s/Display/computer/hand/title"; - - /** The BUTTON. */ - public static final String BUTTON = "%s/Display/computer/hand/button"; - - /** The MENU. */ - public static final String MENU = "%s/Display/computer/hand/menu"; - } - - /** - * The Interface CopmuterLibrary. - */ - public static class ComputerLibrary { - - /** The BASE. */ - public static final String BASE = "%s/Display/computer/library"; - - /** The TITLE. */ - public static final String TITLE = "%s/Display/computer/library/title"; - - /** The BUTTON. */ - public static final String BUTTON = "%s/Display/computer/library/button"; - - /** The MENU. */ - public static final String MENU = "%s/Display/computer/library/menu"; - } - - /** The COMPUTER_GRAVEYARD. */ - public static final String COMPUTER_GRAVEYARD = "%s/Display/computer/graveyard"; - - /** - * The Interface ComputerGraveyard. - */ - public static class ComputerGraveyard { - - /** The TITLE. */ - public static final String TITLE = "%s/Display/computer/graveyard/title"; - - /** The BUTTON. */ - public static final String BUTTON = "%s/Display/computer/graveyard/button"; - - /** The MENU. */ - public static final String MENU = "%s/Display/computer/graveyard/menu"; - } - - /** The COMPUTER_EXILED. */ - public static final String COMPUTER_EXILED = "%s/Display/computer/exiled"; - - /** - * The Interface CopmuterRemoved. - */ - public static class ComputerRemoved { - - /** The TITLE. */ - public static final String TITLE = "%s/Display/computer/exiled/title"; - - /** The BUTTON. */ - public static final String BUTTON = "%s/Display/computer/exiled/button"; - - /** The MENU. */ - public static final String MENU = "%s/Display/computer/exiled/menu"; - } - - /** The CONCEDE. */ - public static final String CONCEDE = "%s/Display/concede"; - - /** - * The Interface Concede. - */ - public static class Concede { - - /** The BUTTON. */ - public static final String BUTTON = "%s/Display/concede/button"; - - /** The MENU. */ - public static final String MENU = "%s/Display/concede/menu"; - } - - /** The MANAGEN. */ - public static final String MANAGEN = "%s/Display/managen"; - - /** - * The Interface Managen. - */ - public static class Managen { - - /** The BUTTON. */ - public static final String BUTTON = "%s/Display/managen/button"; - - /** The MENU. */ - public static final String MENU = "%s/Display/managen/menu"; - } - - /** The SETUPBATTLEFIELD. */ - public static final String SETUPBATTLEFIELD = "%s/Display/setupbattlefield"; - - /** - * The Interface SetupBattlefield. - */ - public static class SetupBattlefield { - - /** The BUTTON. */ - public static final String BUTTON = "%s/Display/setupbattlefield/button"; - - /** The MENU. */ - public static final String MENU = "%s/Display/setupbattlefield/menu"; - } - - /** The TUTOR. */ - public static final String TUTOR = "%s/Display/tutor"; - - /** - * The Interface Tutor. - */ - public static class Tutor { - - /** The BUTTON. */ - public static final String BUTTON = "%s/Display/tutor/button"; - - /** The MENU. */ - public static final String MENU = "%s/Display/tutor/menu"; - } - - /** The ADDCOUNTER. */ - public static final String ADDCOUNTER = "%s/Display/addcounter"; - - /** - * The Interface AddCounter. - */ - public static class AddCounter { - - /** The BUTTON. */ - public static final String BUTTON = "%s/Display/addcounter/button"; - - /** The MENU. */ - public static final String MENU = "%s/Display/addcounter/menu"; - } - - /** The TAPPERM. */ - public static final String TAPPERM = "%s/Display/tapperm"; - - /** - * The Interface Tapperm. - */ - public static class Tapperm { - - /** The BUTTON. */ - public static final String BUTTON = "%s/Display/tapperm/button"; - - /** The MENU. */ - public static final String MENU = "%s/Display/tapperm/menu"; - } - - /** The UNTAPPERM. */ - public static final String UNTAPPERM = "%s/Display/untapperm"; - - /** - * The Interface Untapperm. - */ - public static class Untapperm { - - /** The BUTTON. */ - public static final String BUTTON = "%s/Display/untapperm/button"; - - /** The MENU. */ - public static final String MENU = "%s/Display/untapperm/menu"; - } - - /** The NOLANDLIMIT. */ - public static final String NOLANDLIMIT = "%s/Display/nolandlimit"; - - /** - * The Interface NoLandLimit. - */ - public static class NoLandLimit { - - /** The BUTTON. */ - public static final String BUTTON = "%s/Display/nolandlimit/button"; - - /** The MENU. */ - public static final String MENU = "%s/Display/nolandlimit/menu"; - } - - /** The SETLIFE. */ - public static final String SETLIFE = "%s/Display/setlife"; - - /** - * The Interface SetLife. - */ - public static class SetLife { - - /** The BUTTON. */ - public static final String BUTTON = "%s/Display/setlife/button"; - - /** The MENU. */ - public static final String MENU = "%s/Display/setlife/menu"; - } - - /** - * The Interface Trigger. - */ - public static class Trigger { - - /** The ALWAYSACCEPT. */ - public static final String ALWAYSACCEPT = "%s/Display/alwaysaccept"; - - /** The ALWAYSDECLINE. */ - public static final String ALWAYSDECLINE = "%s/Display/alwaysdecline"; - - /** The ALWAYSASK. */ - public static final String ALWAYSASK = "%s/Display/alwaysask"; - } - } - - /** - * The Interface GuiDownloadPictures. - */ - public static class GuiDownloadPictures { - - /** The TITLE. */ - public static final String TITLE = "%s/DownloadPictures/title"; - - /** The PROXY_ADDRESS. */ - public static final String PROXY_ADDRESS = "%s/DownloadPictures/proxy/address"; - - /** The PROXY_PORT. */ - public static final String PROXY_PORT = "%s/DownloadPictures/proxy/port"; - - /** The NO_PROXY. */ - public static final String NO_PROXY = "%s/DownloadPictures/proxy/type/none"; - - /** The HTTP_PROXY. */ - public static final String HTTP_PROXY = "%s/DownloadPictures/proxy/type/http"; - - /** The SOCKS_PROXY. */ - public static final String SOCKS_PROXY = "%s/DownloadPictures/proxy/type/socks"; - - /** The NO_MORE. */ - public static final String NO_MORE = "%s/DownloadPictures/no-more"; - - /** The BAR_BEFORE_START. */ - public static final String BAR_BEFORE_START = "%s/DownloadPictures/bar/before-start"; - - /** The BAR_WAIT. */ - public static final String BAR_WAIT = "%s/DownloadPictures/bar/wait"; - - /** The BAR_CLOSE. */ - public static final String BAR_CLOSE = "%s/DownloadPictures/bar/close"; - - /** - * The Interface Buttons. - */ - public static class Buttons { - - /** The START. */ - public static final String START = "%s/DownloadPictures/button/start"; - - /** The CANCEL. */ - public static final String CANCEL = "%s/DownloadPictures/button/cancel"; - - /** The CLOSE. */ - public static final String CLOSE = "%s/DownloadPictures/button/close"; - } - - /** - * The Interface Errors. - */ - public static class Errors { - - /** The PROXY_CONNECT. */ - public static final String PROXY_CONNECT = "%s/DownloadPictures/errors/proxy/connect"; - - /** The OTHER. */ - public static final String OTHER = "%s/DownloadPictures/errors/other"; - } - } - - /** - * The Interface OldGuiNewGame. - */ - public static class OldGuiNewGame { - - /** - * The Interface NewGameText. - */ - public static class NewGameText { - - /** The GAMETYPE. */ - public static final String GAMETYPE = "%s/NewGame/gametype"; - - /** The LIBRARY. */ - public static final String LIBRARY = "%s/NewGame/library"; - - /** The SETTINGS. */ - public static final String SETTINGS = "%s/NewGame/settings"; - - /** The NEW_GAME. */ - public static final String NEW_GAME = "%s/NewGame/new_game"; - - /** The CONSTRUCTED_TEXT. */ - public static final String CONSTRUCTED_TEXT = "%s/NewGame/constructed_text"; - - /** The SEALED_TEXT. */ - public static final String SEALED_TEXT = "%s/NewGame/sealed_text"; - - /** The BOOSTER_TEXT. */ - public static final String BOOSTER_TEXT = "%s/NewGame/booster_text"; - - /** The YOURDECK. */ - public static final String YOURDECK = "%s/NewGame/yourdeck"; - - /** The OPPONENT. */ - public static final String OPPONENT = "%s/NewGame/opponent"; - - /** The DECK_EDITOR. */ - public static final String DECK_EDITOR = "%s/NewGame/deckeditor"; - - /** The AI_LAND. */ - public static final String AI_LAND = "%s/NewGame/ailand"; - - /** The DEV_MODE. */ - public static final String DEV_MODE = "%s/NewGame/devmode"; - - /** The QUEST_MODE. */ - public static final String QUEST_MODE = "%s/NewGame/questmode"; - - /** The START_GAME. */ - public static final String START_GAME = "%s/NewGame/startgame"; - - /** The SAVE_SEALED_MSG. */ - public static final String SAVE_SEALED_MSG = "%s/NewGame/savesealed_msg"; - - /** The SAVE_SEALED_TTL. */ - public static final String SAVE_SEALED_TTL = "%s/NewGame/savesealed_ttl"; - - } - - /** - * The Interface MenuBar. - */ - public static class MenuBar { - - /** - * The Interface Menu. - */ - public static class Menu { - - /** The TITLE. */ - public static final String TITLE = "%s/NewGame/menu/title"; - - /** The DOWNLOADPRICE. */ - public static final String DOWNLOADPRICE = "%s/NewGame/menu/downloadPrice"; - - /** The DOWNLOAD. */ - public static final String DOWNLOAD = "%s/NewGame/menu/download"; - - /** The DOWNLOADLQ. */ - public static final String DOWNLOADLQ = "%s/NewGame/menu/downloadlq"; - - /** The DOWNLOADSETLQ. */ - public static final String DOWNLOADSETLQ = "%s/NewGame/menu/downloadsetlq"; - - /** The DOWNLOADQUESTIMG. */ - public static final String DOWNLOADQUESTIMG = "%s/NewGame/menu/downloadquest"; - - /** The IMPORTPICTURE. */ - public static final String IMPORTPICTURE = "%s/NewGame/menu/importPicture"; - - /** The CARD_SIZES. */ - public static final String CARD_SIZES = "%s/NewGame/menu/cardSizes"; - - /** The CARD_STACK. */ - public static final String CARD_STACK = "%s/NewGame/menu/cardStack"; - - /** The CARD_STACK_OFFSET. */ - public static final String CARD_STACK_OFFSET = "%s/NewGame/menu/cardStackOffset"; - - /** The ABOUT. */ - public static final String ABOUT = "%s/NewGame/menu/about"; - - /** The EXIT. */ - public static final String EXIT = "%s/NewGame/menu/exit"; - } - - /** - * The Interface Options. - */ - public static class Options { - - /** The TITLE. */ - public static final String TITLE = "%s/NewGame/options/title"; - - /** The FONT. */ - public static final String FONT = "%s/NewGame/options/font"; - - /** The CARD_OVERLAY. */ - public static final String CARD_OVERLAY = "%s/NewGame/options/cardOverlay"; - - /** The CARD_SCALE. */ - public static final String CARD_SCALE = "%s/NewGame/options/cardScale"; - - /** - * The Interface Generate. - */ - public static class Generate { - - /** The TITLE. */ - public static final String TITLE = "%s/NewGame/options/generate/title"; - - /** The Constant SINGLETONS. */ - public static final String SINGLETONS = "%s/NewGame/options/generate/singletons"; - - /** The REMOVE_SMALL. */ - public static final String REMOVE_SMALL = "%s/NewGame/options/generate/removeSmall"; - - /** The REMOVE_ARTIFACTS. */ - public static final String REMOVE_ARTIFACTS = "%s/NewGame/options/generate/removeArtifacts"; - } - } - - /** - * The Interface Help. - */ - public static class Help { - - /** The TITLE. */ - public static final String TITLE = "%s/NewGame/help/title"; - } - - } - - /** - * The Interface Errors. - */ - public static class Errors { - } - } - - /** - * The Interface WinLoseFrame. - */ - public static class WinLoseFrame { - - /** - * The Interface WinLoseText. - */ - public static class WinLoseText { - - /** The WON. */ - public static final String WON = "%s/WinLose/won"; - - /** The LOST. */ - public static final String LOST = "%s/WinLose/lost"; - - /** The WIN. */ - public static final String WIN = "%s/WinLose/win"; - - /** The LOSE. */ - public static final String LOSE = "%s/WinLose/lose"; - - /** The CONTINUE. */ - public static final String CONTINUE = "%s/WinLose/continue"; - - /** The RESTART. */ - public static final String RESTART = "%s/WinLose/restart"; - - /** The QUIT. */ - public static final String QUIT = "%s/WinLose/quit"; - } - } - - // end - - // Doublestrike 02-10-11 - this is soon to be deprecated. - /** - * The Interface GuiWinLose. - */ - public static class GuiWinLose { - - /** - * The Interface WinLoseText. - */ - public static class WinLoseText { - - /** The WON. */ - public static final String WON = "%s/WinLose/won"; - - /** The LOST. */ - public static final String LOST = "%s/WinLose/lost"; - - /** The WIN. */ - public static final String WIN = "%s/WinLose/win"; - - /** The LOSE. */ - public static final String LOSE = "%s/WinLose/lose"; - - /** The CONTINUE. */ - public static final String CONTINUE = "%s/WinLose/continue"; - - /** The RESTART. */ - public static final String RESTART = "%s/WinLose/restart"; - - /** The QUIT. */ - public static final String QUIT = "%s/WinLose/quit"; - } - } - - /** - * The Interface GuiDownloadPrices. - */ - public static class GuiDownloadPrices { - - /** - * The Interface DownloadPrices. - */ - public static class DownloadPrices { - - /** The TITLE. */ - public static final String TITLE = "%s/DownloadPrices/title"; - - /** The START_UPDATE. */ - public static final String START_UPDATE = "%s/DownloadPrices/startupdate"; - - /** The DOWNLOADING. */ - public static final String DOWNLOADING = "%s/DownloadPrices/downloading"; - - /** The COMPILING. */ - public static final String COMPILING = "%s/DownloadPrices/compiling"; - } - } - - /** - * The Interface GameAction. - */ - public static class GameAction { - - /** - * The Interface GameActionText. - */ - public static class GameActionText { - - /** The HEADS. */ - public static final String HEADS = "%s/GameAction/heads"; - - /** The TAILS. */ - public static final String TAILS = "%s/GameAction/tails"; - - /** The HEADS_OR_TAILS. */ - public static final String HEADS_OR_TAILS = "%s/GameAction/heads_or_tails"; - - /** The COIN_TOSS. */ - public static final String COIN_TOSS = "%s/GameAction/coin_toss"; - - /** The HUMAN_WIN. */ - public static final String HUMAN_WIN = "%s/GameAction/human_win"; - - /** The COMPUTER_WIN. */ - public static final String COMPUTER_WIN = "%s/GameAction/computer_win"; - - /** The COMPUTER_STARTS. */ - public static final String COMPUTER_STARTS = "%s/GameAction/computer_starts"; - - /** The HUMAN_STARTS. */ - public static final String HUMAN_STARTS = "%s/GameAction/human_starts"; - - /** The HUMAN_MANA_COST. */ - public static final String HUMAN_MANA_COST = "%s/GameAction/human_mana_cost"; - - /** The COMPUTER_MANA_COST. */ - public static final String COMPUTER_MANA_COST = "%s/GameAction/computer_mana_cost"; - - /** The COMPUTER_CUT. */ - public static final String COMPUTER_CUT = "%s/GameAction/computer_cut"; - - /** The HUMAN_CUT. */ - public static final String HUMAN_CUT = "%s/GameAction/human_cut"; - - /** The CUT_NUMBER. */ - public static final String CUT_NUMBER = "%s/GameAction/cut_number"; - - /** The RESOLVE_STARTER. */ - public static final String RESOLVE_STARTER = "%s/GameAction/resolve_starter"; - - /** The EQUAL_CONVERTED_MANA. */ - public static final String EQUAL_CONVERTED_MANA = "%s/GameAction/equal_converted_mana"; - - /** The CUTTING_AGAIN. */ - public static final String CUTTING_AGAIN = "%s/GameAction/cutting_again"; - - /** The YES. */ - public static final String YES = "%s/GameAction/yes"; - - /** The NO. */ - public static final String NO = "%s/GameAction/no"; - - /** The WANT_DREDGE. */ - public static final String WANT_DREDGE = "%s/GameAction/want_dredge"; - - /** The SELECT_DREDGE. */ - public static final String SELECT_DREDGE = "%s/GameAction/select_dredge"; - - /** The CHOOSE_2ND_LAND. */ - public static final String CHOOSE_2ND_LAND = "%s/GameAction/choose_2nd_land"; - - } - } - } + // data that is only in the profile dirs + public static final String USER_QUEST_DIR = USER_DIR + "quest/"; + public static final String USER_PREFS_DIR = USER_DIR + "preferences/"; + public static final String LOG_FILE = USER_DIR + "forge.log"; + public static final String DECK_BASE_DIR = USER_DIR + "decks/"; + public static final String DECK_CONSTRUCTED_DIR = DECK_BASE_DIR + "constructed/"; + public static final String DECK_DRAFT_DIR = DECK_BASE_DIR + "draft/"; + public static final String DECK_SEALED_DIR = DECK_BASE_DIR + "sealed/"; + public static final String DECK_SCHEME_DIR = DECK_BASE_DIR + "scheme/"; + public static final String DECK_PLANE_DIR = DECK_BASE_DIR + "planar/"; + public static final String QUEST_SAVE_DIR = USER_QUEST_DIR + "saves/"; + public static final String MAIN_PREFS_FILE = USER_PREFS_DIR + "forge.preferences"; + public static final String QUEST_PREFS_FILE = USER_PREFS_DIR + "quest.preferences"; + + + // data that has defaults in the program dir but overrides/additions in the user dir + private static final String _DEFAULTS_DIR = _RES_ROOT + "defaults/"; + public static final FileLocation EDITOR_PREFERENCES_FILE = new FileLocation(_DEFAULTS_DIR, USER_PREFS_DIR, "editor.preferences"); + public static final FileLocation HOME_LAYOUT_FILE = new FileLocation(_DEFAULTS_DIR, USER_PREFS_DIR, "home.xml"); + public static final FileLocation MATCH_LAYOUT_FILE = new FileLocation(_DEFAULTS_DIR, USER_PREFS_DIR, "match.xml"); + public static final FileLocation EDITOR_LAYOUT_FILE = new FileLocation(_DEFAULTS_DIR, USER_PREFS_DIR, "editor.xml"); + public static final FileLocation GAUNTLET_DIR = new FileLocation(_DEFAULTS_DIR, USER_DIR, "gauntlet/"); + + // data that is only in the cached dir + private static final String _PICS_DIR = CACHE_DIR + "pics/"; + public static final String DB_DIR = CACHE_DIR + "db/"; + public static final String CACHE_TOKEN_PICS_DIR = _PICS_DIR + "tokens/"; + public static final String CACHE_ICON_PICS_DIR = _PICS_DIR + "icons/"; + public static final String CACHE_BOOSTER_PICS_DIR = _PICS_DIR + "boosters/"; + public static final String CACHE_FATPACK_PICS_DIR = _PICS_DIR + "fatpacks/"; + public static final String CACHE_PRECON_PICS_DIR = _PICS_DIR + "precons/"; + public static final String CACHE_TOURNAMENTPACK_PICS_DIR = _PICS_DIR + "tournamentpacks/"; + public static final String QUEST_CARD_PRICE_FILE = DB_DIR + "all-prices.txt"; + public static final String CACHE_MORPH_IMAGE_FILE = "morph"; + + public static final String[] PROFILE_DIRS = { + USER_DIR, + CACHE_DIR, + CACHE_CARD_PICS_DIR, + USER_PREFS_DIR, + GAUNTLET_DIR.userPrefLoc, + DB_DIR, + DECK_CONSTRUCTED_DIR, + DECK_DRAFT_DIR, + DECK_SEALED_DIR, + DECK_SCHEME_DIR, + DECK_PLANE_DIR, + QUEST_SAVE_DIR, + CACHE_TOKEN_PICS_DIR, + CACHE_ICON_PICS_DIR, + CACHE_BOOSTER_PICS_DIR, + CACHE_FATPACK_PICS_DIR, + CACHE_PRECON_PICS_DIR, + CACHE_TOURNAMENTPACK_PICS_DIR }; + + // URLs + private static final String _URL_CARDFORGE = "http://cardforge.org"; + public static final String URL_DRAFT_UPLOAD = _URL_CARDFORGE + "/draftAI/submitDraftData.php"; + public static final String URL_PIC_DOWNLOAD = _URL_CARDFORGE + "/fpics/"; + public static final String URL_PRICE_DOWNLOAD = _URL_CARDFORGE + "/MagicInfo/pricegen.php"; } diff --git a/src/main/java/forge/properties/PreferencesStore.java b/src/main/java/forge/properties/PreferencesStore.java new file mode 100644 index 00000000000..b26fa4d8030 --- /dev/null +++ b/src/main/java/forge/properties/PreferencesStore.java @@ -0,0 +1,114 @@ +/* + * Forge: Play Magic: the Gathering. + * Copyright (C) 2011 Forge Team + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package forge.properties; + +import java.io.BufferedWriter; +import java.io.FileWriter; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import forge.util.FileUtil; + +/** + * Holds default preference values in an enum. + * Loads preferred values when instantiated. + * If a requested value is not present, default is returned. + */ +public abstract class PreferencesStore> { + private final Map preferenceValues = new HashMap(); + private final String filename; + + public PreferencesStore(String filename0) { + filename = filename0; + + List lines = FileUtil.readFile(filename); + for (String line : lines) { + line = line.trim(); + if (line.startsWith("#") || (line.isEmpty())) { + continue; + } + + String[] split = line.split("="); + T pref = valueOf(split[0]); + + if (null == pref) { + System.out.println("unknown preference: " + line); + continue; + } + + if (split.length == 2) { + this.setPref(pref, split[1]); + } else if (split.length == 1 && line.endsWith("=")) { + this.setPref(pref, ""); + } + } + } + + protected abstract T[] getEnumValues(); + protected abstract T valueOf(String name); + protected abstract String getPrefDefault(T key); + + public final void save() { + BufferedWriter writer = null; + try { + writer = new BufferedWriter(new FileWriter(filename)); + for (T key : getEnumValues()) { + writer.write(key + "=" + getPref(key)); + writer.newLine(); + } + } catch (IOException ex) { + ex.printStackTrace(); + } finally { + if (null != writer) { + try { writer.close(); } + catch (IOException e) { System.out.println("error while closing " + filename); } + } + } + } + + public final void reset() { + this.preferenceValues.clear(); + } + + public final void setPref(T q0, String s0) { + preferenceValues.put(q0, s0); + } + + public final void setPref(T q0, boolean val) { + setPref(q0, String.valueOf(val)); + } + + public final String getPref(T fp0) { + String val; + + val = preferenceValues.get(fp0); + if (val == null) { val = getPrefDefault(fp0); } + + return val; + } + + public final int getPrefInt(T fp0) { + return Integer.parseInt(getPref(fp0)); + } + + public final boolean getPrefBoolean(T fp0) { + return Boolean.parseBoolean(getPref(fp0)); + } +} diff --git a/src/main/java/forge/quest/BoosterUtils.java b/src/main/java/forge/quest/BoosterUtils.java index d613ac373fd..9f5c2687f2d 100644 --- a/src/main/java/forge/quest/BoosterUtils.java +++ b/src/main/java/forge/quest/BoosterUtils.java @@ -18,7 +18,6 @@ package forge.quest; import java.util.ArrayList; - import java.util.Collections; import java.util.List; @@ -32,8 +31,8 @@ import com.google.common.collect.Lists; import forge.Singletons; import forge.card.BoosterGenerator; -import forge.card.CardRulesPredicates; import forge.card.CardRules; +import forge.card.CardRulesPredicates; import forge.card.UnOpenedProduct; import forge.item.BoosterPack; import forge.item.CardDb; diff --git a/src/main/java/forge/quest/QuestController.java b/src/main/java/forge/quest/QuestController.java index 0b07bb1f0d4..f5fcbc52d33 100644 --- a/src/main/java/forge/quest/QuestController.java +++ b/src/main/java/forge/quest/QuestController.java @@ -25,21 +25,20 @@ import com.google.common.eventbus.Subscribe; import forge.Singletons; import forge.deck.Deck; -import forge.quest.data.GameFormatQuest; import forge.game.GameFormat; import forge.game.event.Event; import forge.game.event.MulliganEvent; import forge.item.CardPrinted; import forge.item.PreconDeck; -import forge.properties.ForgeProps; import forge.properties.NewConstants; import forge.quest.bazaar.QuestBazaarManager; import forge.quest.bazaar.QuestItemType; import forge.quest.bazaar.QuestPetStorage; +import forge.quest.data.GameFormatQuest; import forge.quest.data.QuestAchievements; import forge.quest.data.QuestAssets; import forge.quest.data.QuestData; -import forge.quest.data.QuestPreferences.QPref; +import forge.quest.data.QuestPreferences.DifficultyPrefs; import forge.quest.io.PreconReader; import forge.util.storage.IStorage; import forge.util.storage.IStorageView; @@ -173,7 +172,7 @@ public class QuestController { */ public static IStorageView getPrecons() { if (null == preconManager) { - preconManager = new StorageView(new PreconReader(ForgeProps.getFile(NewConstants.Quest.PRECONS))); + preconManager = new StorageView(new PreconReader(new File(NewConstants.QUEST_PRECON_DIR))); } return QuestController.preconManager; @@ -241,7 +240,7 @@ public class QuestController { this.myCards.setupNewGameCardPool(filter, difficulty); } - this.getAssets().setCredits(Singletons.getModel().getQuestPreferences().getPreferenceInt(QPref.STARTING_CREDITS, difficulty)); + this.getAssets().setCredits(Singletons.getModel().getQuestPreferences().getPrefInt(DifficultyPrefs.STARTING_CREDITS, difficulty)); } @@ -343,7 +342,7 @@ public class QuestController { */ public final QuestBazaarManager getBazaar() { if (null == this.bazaar) { - this.bazaar = new QuestBazaarManager(ForgeProps.getFile(NewConstants.Quest.BAZAAR)); + this.bazaar = new QuestBazaarManager(new File(NewConstants.BAZAAR_FILE)); } return this.bazaar; } @@ -378,12 +377,12 @@ public class QuestController { */ public void resetDuelsManager() { if (this.model == null || this.model.getWorldId() == null) { - this.duelManager = new QuestEventManager(ForgeProps.getFile(NewConstants.Quest.DUELS)); + this.duelManager = new QuestEventManager(new File(NewConstants.DEFAULT_DUELS_DIR)); } else { QuestWorld world = Singletons.getModel().getWorlds().get(this.model.getWorldId()); if (world == null || world.getDuelsDir() == null) { - this.duelManager = new QuestEventManager(ForgeProps.getFile(NewConstants.Quest.DUELS)); + this.duelManager = new QuestEventManager(new File(NewConstants.DEFAULT_DUELS_DIR)); } else { this.duelManager = new QuestEventManager(new File("res/quest/world/" + world.getDuelsDir())); } @@ -396,13 +395,13 @@ public class QuestController { */ public void resetChallengesManager() { if (this.model == null || this.model.getWorldId() == null) { - this.challengesManager = new QuestEventManager(ForgeProps.getFile(NewConstants.Quest.CHALLENGES)); + this.challengesManager = new QuestEventManager(new File(NewConstants.DEFAULT_CHALLENGES_DIR)); } else { QuestWorld world = Singletons.getModel().getWorlds().get(this.model.getWorldId()); if (world == null || world.getChallengesDir() == null) { - this.challengesManager = new QuestEventManager(ForgeProps.getFile(NewConstants.Quest.CHALLENGES)); + this.challengesManager = new QuestEventManager(new File(NewConstants.DEFAULT_CHALLENGES_DIR)); } else { this.challengesManager = new QuestEventManager(new File("res/quest/world/" + world.getChallengesDir())); } @@ -416,7 +415,7 @@ public class QuestController { */ public QuestPetStorage getPetsStorage() { if (this.pets == null) { - this.pets = new QuestPetStorage(ForgeProps.getFile(NewConstants.Quest.BAZAAR)); + this.pets = new QuestPetStorage(new File(NewConstants.BAZAAR_FILE)); } return this.pets; diff --git a/src/main/java/forge/quest/QuestEvent.java b/src/main/java/forge/quest/QuestEvent.java index 9f5a819bf18..7369b587a06 100644 --- a/src/main/java/forge/quest/QuestEvent.java +++ b/src/main/java/forge/quest/QuestEvent.java @@ -22,6 +22,7 @@ import java.util.Collections; import java.util.List; import forge.deck.Deck; +import forge.game.player.IHasIcon; import forge.item.InventoryItem; /** @@ -32,177 +33,74 @@ import forge.item.InventoryItem; * MODEL - A basic event instance in Quest mode. Can be extended for use in * unique event types: battles, quests, and others. */ -public abstract class QuestEvent { +public abstract class QuestEvent implements IHasIcon { // Default vals if none provided in the event file. - /** The event deck. */ private Deck eventDeck = null; - - /** The title. */ private String title = "Mystery Event"; - - /** The description. */ private String description = ""; - - /** The difficulty. */ private String difficulty = "Medium"; - - /** Filename of the icon for this event. */ - private String iconFilename = "unknown"; - - /** The name. */ + private String imageKey = ""; private String name = "Noname"; - - /** The card reward. */ private String cardReward = null; - - /** The card reward list. */ private List cardRewardList = null; - /** - *

- * getTitle. - *

- * - * @return a {@link java.lang.String}. - */ public final String getTitle() { return this.title; } /** - *

- * getOpponent. * Returns null for standard quest events, may return something different for challenges. - *

- * - * @return a {@link java.lang.String}. */ public String getOpponent() { return null; } - /** - *

- * getDifficulty. - *

- * - * @return a {@link java.lang.String}. - */ public final String getDifficulty() { return this.difficulty; } - /** - *

- * getDescription. - *

- * - * @return a {@link java.lang.String}. - */ public final String getDescription() { return this.description; } - /** - *

- * getEventDeck. - *

- * - * @return {@link forge.deck.Deck} - */ public final Deck getEventDeck() { return this.eventDeck; } - /** - *

- * getIconFilename. - *

- * - * @return a {@link java.lang.String}. - */ - public final String getIconFilename() { - return this.iconFilename; + @Override + public final String getIconImageKey() { + return this.imageKey; } - /** - *

- * getName. - *

- * - * @return a {@link java.lang.String}. - */ public final String getName() { return this.name; } - /** - * Sets the name. - * - * @param name0 - * the name to set - */ public void setName(final String name0) { this.name = name0; } - /** - * Sets the title. - * - * @param title0 - * the title to set - */ public void setTitle(final String title0) { this.title = title0; } - /** - * Sets the difficulty. - * - * @param difficulty0 - * the difficulty to set - */ public void setDifficulty(final String difficulty0) { this.difficulty = difficulty0; } - /** - * Sets the description. - * - * @param description0 - * the description to set - */ public void setDescription(final String description0) { this.description = description0; } - /** - * Sets the event deck. - * - * @param eventDeck0 - * the eventDeck to set - */ public void setEventDeck(final Deck eventDeck0) { this.eventDeck = eventDeck0; } - /** - * Sets the icon filename. - * - * @param s0 - * filename of the icon to set - */ - public void setIconFilename(final String s0) { - this.iconFilename = s0; + @Override + public void setIconImageKey(final String s0) { + this.imageKey = s0; } - /** - *

- * getCardRewardList. - *

- * - * @return the card reward list - */ public final List getCardRewardList() { if (cardReward == null) { return null; @@ -213,12 +111,6 @@ public abstract class QuestEvent { return this.cardRewardList; } - /** - * Sets the card reward. - * - * @param cardReward0 - * the cardReward to set - */ public void setCardReward(final String cardReward0) { this.cardReward = cardReward0; } diff --git a/src/main/java/forge/quest/QuestEventManager.java b/src/main/java/forge/quest/QuestEventManager.java index ada8d550f4a..d1020caa52c 100644 --- a/src/main/java/forge/quest/QuestEventManager.java +++ b/src/main/java/forge/quest/QuestEventManager.java @@ -28,13 +28,14 @@ import java.util.Random; import org.apache.commons.lang3.StringUtils; +import forge.ImageCache; import forge.Singletons; import forge.deck.Deck; import forge.deck.io.DeckSerializer; import forge.quest.bazaar.QuestItemType; import forge.quest.data.QuestAchievements; import forge.quest.data.QuestPreferences; -import forge.quest.data.QuestPreferences.QPref; +import forge.quest.data.QuestPreferences.DifficultyPrefs; import forge.util.FileSection; import forge.util.FileUtil; @@ -168,23 +169,23 @@ public class QuestEventManager { final int index = qCtrl.getAchievements().getDifficulty(); final List duelOpponents = new ArrayList(); - if (cntWins < qpref.getPreferenceInt(QPref.WINS_MEDIUMAI, index)) { + if (cntWins < qpref.getPrefInt(DifficultyPrefs.WINS_MEDIUMAI, index)) { _addDuel(duelOpponents, QuestEventDifficulty.EASY, 0); _addDuel(duelOpponents, QuestEventDifficulty.EASY, 1); _addDuel(duelOpponents, QuestEventDifficulty.EASY, 2); - } else if (cntWins == qpref.getPreferenceInt(QPref.WINS_MEDIUMAI, index)) { + } else if (cntWins == qpref.getPrefInt(DifficultyPrefs.WINS_MEDIUMAI, index)) { _addDuel(duelOpponents, QuestEventDifficulty.EASY, 0); _addDuel(duelOpponents, QuestEventDifficulty.MEDIUM, 0); _addDuel(duelOpponents, QuestEventDifficulty.MEDIUM, 1); - } else if (cntWins < qpref.getPreferenceInt(QPref.WINS_HARDAI, index)) { + } else if (cntWins < qpref.getPrefInt(DifficultyPrefs.WINS_HARDAI, index)) { _addDuel(duelOpponents, QuestEventDifficulty.MEDIUM, 0); _addDuel(duelOpponents, QuestEventDifficulty.MEDIUM, 1); _addDuel(duelOpponents, QuestEventDifficulty.MEDIUM, 2); - } else if (cntWins == qpref.getPreferenceInt(QPref.WINS_HARDAI, index)) { + } else if (cntWins == qpref.getPrefInt(DifficultyPrefs.WINS_HARDAI, index)) { _addDuel(duelOpponents, QuestEventDifficulty.MEDIUM, 0); _addDuel(duelOpponents, QuestEventDifficulty.HARD, 0); _addDuel(duelOpponents, QuestEventDifficulty.HARD, 1); - } else if (cntWins < qpref.getPreferenceInt(QPref.WINS_EXPERTAI, index)) { + } else if (cntWins < qpref.getPrefInt(DifficultyPrefs.WINS_EXPERTAI, index)) { _addDuel(duelOpponents, QuestEventDifficulty.HARD, 0); _addDuel(duelOpponents, QuestEventDifficulty.HARD, 1); _addDuel(duelOpponents, QuestEventDifficulty.HARD, 2); @@ -396,7 +397,7 @@ public class QuestEventManager { } else if (key.equalsIgnoreCase("Description")) { qe.setDescription(value); } else if (key.equalsIgnoreCase("Icon")) { - qe.setIconFilename(value); + qe.setIconImageKey(ImageCache.ICON_PREFIX + value); } else if (key.equalsIgnoreCase("Card Reward")) { qe.setCardReward(value); } diff --git a/src/main/java/forge/quest/QuestRewardCard.java b/src/main/java/forge/quest/QuestRewardCard.java index 1ce9004ea0b..2de9a0de9ac 100644 --- a/src/main/java/forge/quest/QuestRewardCard.java +++ b/src/main/java/forge/quest/QuestRewardCard.java @@ -127,7 +127,7 @@ public abstract class QuestRewardCard implements InventoryItem, IQuestRewardCard * @return an empty string */ @Override - public String getImageFilename() { + public String getImageKey() { return ""; } diff --git a/src/main/java/forge/quest/QuestRewardCardChooser.java b/src/main/java/forge/quest/QuestRewardCardChooser.java index 67aefcd8307..78e405416ff 100644 --- a/src/main/java/forge/quest/QuestRewardCardChooser.java +++ b/src/main/java/forge/quest/QuestRewardCardChooser.java @@ -1,13 +1,13 @@ package forge.quest; -import com.google.common.base.Predicate; -import com.google.common.collect.Iterables; - import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; +import com.google.common.base.Predicate; +import com.google.common.collect.Iterables; + import forge.Singletons; import forge.item.CardDb; import forge.item.CardPrinted; diff --git a/src/main/java/forge/quest/QuestRewardCardDuplicate.java b/src/main/java/forge/quest/QuestRewardCardDuplicate.java index 5c8e46569d3..82559fb0f7a 100644 --- a/src/main/java/forge/quest/QuestRewardCardDuplicate.java +++ b/src/main/java/forge/quest/QuestRewardCardDuplicate.java @@ -41,7 +41,7 @@ public class QuestRewardCardDuplicate implements IQuestRewardCard { * @return an empty string */ @Override - public String getImageFilename() { + public String getImageKey() { return ""; } diff --git a/src/main/java/forge/quest/QuestUtil.java b/src/main/java/forge/quest/QuestUtil.java index d787962e38f..41998c0abab 100644 --- a/src/main/java/forge/quest/QuestUtil.java +++ b/src/main/java/forge/quest/QuestUtil.java @@ -17,8 +17,10 @@ */ package forge.quest; -import forge.Card; +import java.util.ArrayList; +import java.util.List; +import forge.Card; import forge.card.CardEdition; import forge.card.CardRulesReader; import forge.item.CardDb; @@ -26,9 +28,6 @@ import forge.item.CardToken; import forge.item.IPaperCard; import forge.quest.bazaar.QuestPetController; -import java.util.ArrayList; -import java.util.List; - /** *

* QuestUtil class. @@ -143,9 +142,8 @@ public class QuestUtil { script.add("PT:"+ properties[2] + "/" + properties[3]); script.add("Types:" + properties[5].replace(';', ' ')); script.add("Oracle:"); // tokens don't have texts yet - // c.setManaCost(properties[1]); - String fileName = properties[1] + " " + properties[2] + " " + properties[3] + " " + properties[4]; - final CardToken c = new CardToken(CardRulesReader.parseSingleCard(script), CardEdition.UNKNOWN.getCode(), fileName); + String fileName = CardToken.makeTokenFileName(properties[1], properties[2], properties[3], properties[4]); + final CardToken c = new CardToken(CardRulesReader.parseSingleCard(script), CardEdition.UNKNOWN, fileName); return c; } diff --git a/src/main/java/forge/quest/QuestUtilCards.java b/src/main/java/forge/quest/QuestUtilCards.java index 97533c7c831..c648bd57009 100644 --- a/src/main/java/forge/quest/QuestUtilCards.java +++ b/src/main/java/forge/quest/QuestUtilCards.java @@ -48,6 +48,7 @@ import forge.quest.bazaar.QuestItemType; import forge.quest.data.GameFormatQuest; import forge.quest.data.QuestAssets; import forge.quest.data.QuestPreferences; +import forge.quest.data.QuestPreferences.DifficultyPrefs; import forge.quest.data.QuestPreferences.QPref; import forge.util.Aggregates; import forge.util.MyRandom; @@ -143,9 +144,9 @@ public final class QuestUtilCards { * @return the array list */ public ArrayList addCards(final Predicate fSets) { - final int nCommon = this.qpref.getPreferenceInt(QPref.BOOSTER_COMMONS); - final int nUncommon = this.qpref.getPreferenceInt(QPref.BOOSTER_UNCOMMONS); - final int nRare = this.qpref.getPreferenceInt(QPref.BOOSTER_RARES); + final int nCommon = this.qpref.getPrefInt(QPref.BOOSTER_COMMONS); + final int nUncommon = this.qpref.getPrefInt(QPref.BOOSTER_UNCOMMONS); + final int nRare = this.qpref.getPrefInt(QPref.BOOSTER_RARES); final ArrayList newCards = new ArrayList(); Predicate predCommons = Predicates.and(fSets, IPaperCard.Predicates.Presets.IS_COMMON); @@ -235,9 +236,9 @@ public final class QuestUtilCards { * the idx difficulty */ public void setupNewGameCardPool(final Predicate filter, final int idxDifficulty) { - final int nC = this.qpref.getPreferenceInt(QPref.STARTING_COMMONS, idxDifficulty); - final int nU = this.qpref.getPreferenceInt(QPref.STARTING_UNCOMMONS, idxDifficulty); - final int nR = this.qpref.getPreferenceInt(QPref.STARTING_RARES, idxDifficulty); + final int nC = this.qpref.getPrefInt(DifficultyPrefs.STARTING_COMMONS, idxDifficulty); + final int nU = this.qpref.getPrefInt(DifficultyPrefs.STARTING_UNCOMMONS, idxDifficulty); + final int nR = this.qpref.getPrefInt(DifficultyPrefs.STARTING_RARES, idxDifficulty); this.addAllCards(BoosterUtils.getQuestStarterDeck(filter, nC, nU, nR)); } @@ -525,12 +526,12 @@ public final class QuestUtilCards { int nLevel = this.qc.getAchievements().getLevel(); // Preferences - final int startPacks = this.qpref.getPreferenceInt(QPref.SHOP_STARTING_PACKS); - final int winsForPack = this.qpref.getPreferenceInt(QPref.SHOP_WINS_FOR_ADDITIONAL_PACK); - final int maxPacks = this.qpref.getPreferenceInt(QPref.SHOP_MAX_PACKS); - final int common = this.qpref.getPreferenceInt(QPref.SHOP_SINGLES_COMMON); - final int uncommon = this.qpref.getPreferenceInt(QPref.SHOP_SINGLES_UNCOMMON); - final int rare = this.qpref.getPreferenceInt(QPref.SHOP_SINGLES_RARE); + final int startPacks = this.qpref.getPrefInt(QPref.SHOP_STARTING_PACKS); + final int winsForPack = this.qpref.getPrefInt(QPref.SHOP_WINS_FOR_ADDITIONAL_PACK); + final int maxPacks = this.qpref.getPrefInt(QPref.SHOP_MAX_PACKS); + final int common = this.qpref.getPrefInt(QPref.SHOP_SINGLES_COMMON); + final int uncommon = this.qpref.getPrefInt(QPref.SHOP_SINGLES_UNCOMMON); + final int rare = this.qpref.getPrefInt(QPref.SHOP_SINGLES_RARE); final int levelPacks = nLevel > 0 ? startPacks / nLevel : startPacks; final int winPacks = this.qc.getAchievements().getWin() / winsForPack; diff --git a/src/main/java/forge/quest/QuestUtilUnlockSets.java b/src/main/java/forge/quest/QuestUtilUnlockSets.java index 175a960b3e3..d4472ea2b2b 100644 --- a/src/main/java/forge/quest/QuestUtilUnlockSets.java +++ b/src/main/java/forge/quest/QuestUtilUnlockSets.java @@ -22,9 +22,11 @@ import java.util.Collections; import java.util.Comparator; import java.util.List; import java.util.Map; + import javax.swing.JOptionPane; import org.apache.commons.lang3.tuple.ImmutablePair; + import com.google.common.collect.Iterables; import com.google.common.collect.Lists; diff --git a/src/main/java/forge/quest/bazaar/QuestItemType.java b/src/main/java/forge/quest/bazaar/QuestItemType.java index 941394b5438..1c20ef7f92c 100644 --- a/src/main/java/forge/quest/bazaar/QuestItemType.java +++ b/src/main/java/forge/quest/bazaar/QuestItemType.java @@ -18,6 +18,7 @@ package forge.quest.bazaar; import com.thoughtworks.xstream.annotations.XStreamAlias; + import forge.quest.data.QuestItemCondition; /** diff --git a/src/main/java/forge/quest/bazaar/QuestPetController.java b/src/main/java/forge/quest/bazaar/QuestPetController.java index 0f2981cc1a3..b1b8b83b111 100644 --- a/src/main/java/forge/quest/bazaar/QuestPetController.java +++ b/src/main/java/forge/quest/bazaar/QuestPetController.java @@ -17,7 +17,6 @@ */ package forge.quest.bazaar; -import java.io.File; import java.util.ArrayList; import java.util.List; @@ -27,7 +26,6 @@ import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamAsAttribute; import forge.item.CardToken; -import forge.properties.ForgeProps; import forge.properties.NewConstants; import forge.quest.data.QuestAssets; @@ -122,7 +120,7 @@ public class QuestPetController implements IQuestBazaarItem { */ @Override public final ImageIcon getIcon(final QuestAssets qA) { - final String path = ForgeProps.getFile(NewConstants.IMAGE_TOKEN).getAbsolutePath() + File.separator; + final String path = NewConstants.CACHE_TOKEN_PICS_DIR; final int level = this.getPetLevel(qA); return new ImageIcon(path + this.levels.get(level < this.maxLevel ? level + 1 : level).getPicture() + ".jpg"); } diff --git a/src/main/java/forge/quest/bazaar/QuestPetStats.java b/src/main/java/forge/quest/bazaar/QuestPetStats.java index b518e377271..c3192e6df79 100644 --- a/src/main/java/forge/quest/bazaar/QuestPetStats.java +++ b/src/main/java/forge/quest/bazaar/QuestPetStats.java @@ -10,7 +10,6 @@ import forge.card.CardEdition; import forge.card.CardRules; import forge.card.CardRulesReader; import forge.item.CardToken; -import forge.properties.ForgeProps; import forge.properties.NewConstants; import forge.util.FileUtil; @@ -59,9 +58,9 @@ public class QuestPetStats { public final CardToken getCard() { if (null == petCard) { - List cardLines = FileUtil.readFile(new File(ForgeProps.getFile(NewConstants.Quest.BAZAAR_DIR), cardFile)); + List cardLines = FileUtil.readFile(new File(NewConstants.CARD_DATA_PETS_DIR, cardFile)); CardRules rules = CardRulesReader.parseSingleCard(cardLines); - petCard = new CardToken(rules, CardEdition.UNKNOWN.getCode(), picture.replace('_', ' ')); + petCard = new CardToken(rules, CardEdition.UNKNOWN, picture); } return petCard; } diff --git a/src/main/java/forge/quest/data/GameFormatQuest.java b/src/main/java/forge/quest/data/GameFormatQuest.java index 92cb2e71e24..a2bab1c49fc 100644 --- a/src/main/java/forge/quest/data/GameFormatQuest.java +++ b/src/main/java/forge/quest/data/GameFormatQuest.java @@ -17,8 +17,8 @@ */ package forge.quest.data; -import java.util.List; import java.util.ArrayList; +import java.util.List; import com.google.common.base.Predicate; diff --git a/src/main/java/forge/quest/data/QuestAchievements.java b/src/main/java/forge/quest/data/QuestAchievements.java index b9122ab0d6c..dec52d5e1fa 100644 --- a/src/main/java/forge/quest/data/QuestAchievements.java +++ b/src/main/java/forge/quest/data/QuestAchievements.java @@ -4,7 +4,7 @@ import java.util.ArrayList; import java.util.List; import forge.Singletons; -import forge.quest.data.QuestPreferences.QPref; +import forge.quest.data.QuestPreferences.DifficultyPrefs; /** * TODO: Write javadoc for this type. @@ -128,7 +128,7 @@ public class QuestAchievements { * @return the level */ public int getLevel() { - final int winsToLvlUp = Singletons.getModel().getQuestPreferences().getPreferenceInt(QPref.WINS_RANKUP, difficulty); + final int winsToLvlUp = Singletons.getModel().getQuestPreferences().getPrefInt(DifficultyPrefs.WINS_RANKUP, difficulty); return this.win / winsToLvlUp; } // Wins & Losses diff --git a/src/main/java/forge/quest/data/QuestAssets.java b/src/main/java/forge/quest/data/QuestAssets.java index fe40f45640e..89081a04d25 100644 --- a/src/main/java/forge/quest/data/QuestAssets.java +++ b/src/main/java/forge/quest/data/QuestAssets.java @@ -167,12 +167,12 @@ public class QuestAssets { */ public QuestAssets(GameFormatQuest useFormat) { final QuestPreferences prefs = Singletons.getModel().getQuestPreferences(); - int snowLands = prefs.getPreferenceInt(QPref.STARTING_SNOW_LANDS); + int snowLands = prefs.getPrefInt(QPref.STARTING_SNOW_LANDS); if (useFormat != null && !useFormat.hasSnowLands()) { snowLands = 0; } final ItemPoolView lands = QuestUtilCards.generateBasicLands( - prefs.getPreferenceInt(QPref.STARTING_BASIC_LANDS), snowLands, useFormat); + prefs.getPrefInt(QPref.STARTING_BASIC_LANDS), snowLands, useFormat); this.getCardPool().addAll(lands); } diff --git a/src/main/java/forge/quest/data/QuestPreferences.java b/src/main/java/forge/quest/data/QuestPreferences.java index 30b055ced42..b0bc06564eb 100644 --- a/src/main/java/forge/quest/data/QuestPreferences.java +++ b/src/main/java/forge/quest/data/QuestPreferences.java @@ -17,36 +17,17 @@ */ package forge.quest.data; -import java.io.BufferedWriter; -import java.io.FileNotFoundException; -import java.io.FileWriter; -import java.io.IOException; import java.io.Serializable; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import forge.properties.ForgeProps; -import forge.properties.NewConstants.Quest; -import forge.util.FileUtil; +import forge.properties.NewConstants; +import forge.properties.PreferencesStore; -/** - * Holds default preference values in an enum. Loads preferred values when - * instantiated. If a requested value is not present, default is returned. - * - * @author Forge - * @version $Id$ - */ @SuppressWarnings("serial") -public class QuestPreferences implements Serializable { - private final Map preferenceValues; - +public class QuestPreferences extends PreferencesStore implements Serializable { /** - * Preference identifiers, and their default values. When this class is - * instantiated, these enum values are used in a map that is populated with - * the current preferences from the text file. + * Preference identifiers, and their default values. */ - public enum QPref { + public static enum QPref { // How many of each rarity comes in a won booster pack BOOSTER_COMMONS("11"), @@ -90,35 +71,30 @@ public class QuestPreferences implements Serializable { STARTING_SNOW_LANDS("5"), // Commons in your starting pool, by difficulty - STARTING_COMMONS("DIFFICULTY_INDEX_REQD"), STARTING_COMMONS_EASY("82"), STARTING_COMMONS_MEDIUM("80"), STARTING_COMMONS_HARD("78"), STARTING_COMMONS_EXPERT("76"), // Uncommons in your starting pool, by difficulty - STARTING_UNCOMMONS("DIFFICULTY_INDEX_REQD"), STARTING_UNCOMMONS_EASY("40"), STARTING_UNCOMMONS_MEDIUM("36"), STARTING_UNCOMMONS_HARD("32"), STARTING_UNCOMMONS_EXPERT("28"), // Rares in your starting pool, by difficulty - STARTING_RARES("DIFFICULTY_INDEX_REQD"), STARTING_RARES_EASY("20"), STARTING_RARES_MEDIUM("18"), STARTING_RARES_HARD("16"), STARTING_RARES_EXPERT("15"), // Credits you start the quest with, by difficulty - STARTING_CREDITS("DIFFICULTY_INDEX_REQD"), STARTING_CREDITS_EASY("250"), STARTING_CREDITS_MEDIUM("200"), STARTING_CREDITS_HARD("150"), STARTING_CREDITS_EXPERT("100"), // Matches won per booster award, by difficulty - WINS_BOOSTER("DIFFICULTY_INDEX_REQD"), WINS_BOOSTER_EASY("1"), WINS_BOOSTER_MEDIUM("1"), WINS_BOOSTER_HARD("2"), @@ -126,28 +102,24 @@ public class QuestPreferences implements Serializable { // Matches won per increased rank, by difficulty // Rank affects how many packs are opened for singles in the spell shop - WINS_RANKUP("DIFFICULTY_INDEX_REQD"), WINS_RANKUP_EASY("3"), WINS_RANKUP_MEDIUM("4"), WINS_RANKUP_HARD("5"), WINS_RANKUP_EXPERT("6"), // Matches won to unlock Medium Opponents, by difficulty - WINS_MEDIUMAI("DIFFICULTY_INDEX_REQD"), WINS_MEDIUMAI_EASY("10"), WINS_MEDIUMAI_MEDIUM("9"), WINS_MEDIUMAI_HARD("8"), WINS_MEDIUMAI_EXPERT("7"), // Matches won to unlock Hard Opponents, by difficulty - WINS_HARDAI("DIFFICULTY_INDEX_REQD"), WINS_HARDAI_EASY("20"), WINS_HARDAI_MEDIUM("18"), WINS_HARDAI_HARD("16"), WINS_HARDAI_EXPERT("14"), // Matches won to unlock Expert Opponents, by difficulty - WINS_EXPERTAI("DIFFICULTY_INDEX_REQD"), WINS_EXPERTAI_EASY("40"), WINS_EXPERTAI_MEDIUM("36"), WINS_EXPERTAI_HARD("32"), @@ -188,130 +160,47 @@ public class QuestPreferences implements Serializable { } } + public static enum DifficultyPrefs { + STARTING_COMMONS, + STARTING_UNCOMMONS, + STARTING_RARES, + STARTING_CREDITS, + WINS_BOOSTER, + WINS_RANKUP, + WINS_MEDIUMAI, + WINS_HARDAI, + WINS_EXPERTAI + } + /** Instantiates a QuestPreferences object. */ public QuestPreferences() { - this.preferenceValues = new HashMap(); - - List lines = FileUtil.readFile(ForgeProps.getFile(Quest.PREFS)); - - for (String line : lines) { - if (line.startsWith("#") || (line.length() == 0)) { - continue; - } - - final String[] split = line.split("="); - - if (split.length == 2) { - this.setPreference(split[0], split[1]); - } - } + super(NewConstants.QUEST_PREFS_FILE); } - /** Saves prefs map to file. */ - public void save() { - BufferedWriter writer = null; - + protected QPref[] getEnumValues() { + return QPref.values(); + } + + protected QPref valueOf(String name) { try { - writer = new BufferedWriter(new FileWriter(ForgeProps.getFile(Quest.PREFS))); - for (final QPref key : QPref.values()) { - if (key.getDefault().equals("DIFFICULTY_INDEX_REQD")) { - writer.newLine(); - continue; - } - writer.write(key + "=" + this.getPreference(key)); - writer.newLine(); - } - - writer.flush(); - writer.close(); - } catch (final FileNotFoundException ex) { - ex.printStackTrace(); - } catch (final IOException ex) { - ex.printStackTrace(); + return QPref.valueOf(name); + } + catch (Exception e) { + return null; } } - /** - * Reset. - */ - public void reset() { - this.preferenceValues.clear(); - } - - /** - * DUE TO BE DEPRECATED: Transition code between preference manager for - * v1.2.2 and v1.2.3. (string-based vs. enum-based) - * - * @param s0 - *   {@link java.lang.String} identifier of preference - * @param s1 - *   {@link java.lang.String} value - */ - public void setPreference(final String s0, final String s1) { - try { - this.preferenceValues.put(QPref.valueOf(s0), s1); - } catch (final Exception e) { - } - } - - /** - * Sets the preference. - * - * @param q0 - *   {@link forge.quest.data.QuestPreferences.QPref} - * @param s0 - *   {@link java.lang.String} value - */ - public void setPreference(final QPref q0, final String s0) { - this.preferenceValues.put(q0, s0); - } - - /** - * Returns a non-difficulty-indexed preference value. - * - * @param qp0 - *   {@link forge.quest.data.QuestPreferences.QPref} - * @return String - */ - public String getPreference(final QPref qp0) { - String val; - - if (qp0.getDefault().equals("DIFFICULTY_INDEX_REQD")) { - // This error indicates that this is a preference - // value which is different based on difficulty. - // A difficulty index must be passed to determine - // which value is appropriate for this setting. - // To do this, use getPreference(QPref, int). - try { - throw new Exception(); - } catch (final Exception e1) { - e1.printStackTrace(); - } - } - - val = this.preferenceValues.get(qp0); - if (val == null) { - val = qp0.getDefault(); - } - - return val; + protected String getPrefDefault(QPref key) { + return key.getDefault(); } /** * Returns a preference value according to a difficulty index. - * - * @param qp0 - *   {@link forge.quest.data.QuestPreferences.QPref} - * @param i0 - *   int difficulty index - * @return String */ - public String getPreference(final QPref qp0, final int i0) { - String val; - String newQPref = qp0.toString(); - QPref q; + public String getPref(DifficultyPrefs pref, int difficultyIndex) { + String newQPref = pref.toString(); - switch (i0) { + switch (difficultyIndex) { case 0: newQPref += "_EASY"; break; @@ -328,54 +217,27 @@ public class QuestPreferences implements Serializable { try { throw new Exception(); } catch (final Exception e1) { - System.err.println("Difficulty index (" + i0 + ") out of bounds! "); + System.err.println("Difficulty index out of bounds: " + difficultyIndex); e1.printStackTrace(); } } - q = QPref.valueOf(newQPref); - val = this.preferenceValues.get(q); - if (val == null) { - val = q.getDefault(); - } - - return val; - } - - /** - * Returns a non-difficulty-indexed preference value, as an int. - * - * @param qp0 - *   {@link forge.quest.data.QuestPreferences.QPref} - * @return int - */ - public int getPreferenceInt(final QPref qp0) { - return Integer.parseInt(this.getPreference(qp0)); + return getPref(QPref.valueOf(newQPref)); } /** * Returns a difficulty-indexed preference value, as an int. - * - * @param qp0 - *   {@link forge.quest.data.QuestPreferences.QPref} - * @param i0 - *   int difficulty index - * @return int */ - public int getPreferenceInt(final QPref qp0, final int i0) { - return Integer.parseInt(this.getPreference(qp0, i0)); + public int getPrefInt(DifficultyPrefs pref, int difficultyIndex) { + return Integer.parseInt(this.getPref(pref, difficultyIndex)); } /** * Gets the difficulty. - * - * @param i - *   int - * @return String */ - public static String getDifficulty(final int i) { + public static String getDifficulty(int difficultyIndex) { String s; - switch (i) { + switch (difficultyIndex) { case 1: s = "EASY"; break; diff --git a/src/main/java/forge/quest/io/QuestDataIO.java b/src/main/java/forge/quest/io/QuestDataIO.java index 310ca38eb0e..16ff1cdd8e3 100644 --- a/src/main/java/forge/quest/io/QuestDataIO.java +++ b/src/main/java/forge/quest/io/QuestDataIO.java @@ -59,7 +59,6 @@ import forge.deck.CardPool; import forge.deck.Deck; import forge.deck.DeckSection; import forge.error.BugReporter; -import forge.quest.data.GameFormatQuest; import forge.item.BoosterPack; import forge.item.CardDb; import forge.item.CardPrinted; @@ -68,11 +67,11 @@ import forge.item.InventoryItem; import forge.item.ItemPool; import forge.item.PreconDeck; import forge.item.TournamentPack; -import forge.properties.ForgeProps; import forge.properties.NewConstants; import forge.quest.QuestController; import forge.quest.QuestMode; import forge.quest.bazaar.QuestItemType; +import forge.quest.data.GameFormatQuest; import forge.quest.data.QuestAchievements; import forge.quest.data.QuestAssets; import forge.quest.data.QuestData; @@ -356,7 +355,7 @@ public class QuestDataIO { try { final XStream xStream = QuestDataIO.getSerializer(false); - final File f = new File(ForgeProps.getFile(NewConstants.Quest.DATA_DIR), qd.getName()); + final File f = new File(NewConstants.QUEST_SAVE_DIR, qd.getName()); QuestDataIO.savePacked(f + ".dat", xStream, qd); // QuestDataIO.saveUnpacked(f + ".xml", xStream, qd); @@ -535,10 +534,9 @@ public class QuestDataIO { } reader.moveUp(); } - return result; + return result; } - } private static class ItemPoolToXml implements Converter { diff --git a/src/main/java/forge/quest/io/ReadPriceList.java b/src/main/java/forge/quest/io/ReadPriceList.java index 3a509b58527..9a137ef3d33 100644 --- a/src/main/java/forge/quest/io/ReadPriceList.java +++ b/src/main/java/forge/quest/io/ReadPriceList.java @@ -17,7 +17,6 @@ */ package forge.quest.io; -import java.io.File; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -25,7 +24,6 @@ import java.util.Random; import com.esotericsoftware.minlog.Log; -import forge.properties.ForgeProps; import forge.properties.NewConstants; import forge.util.FileUtil; import forge.util.MyRandom; @@ -60,8 +58,8 @@ public class ReadPriceList { *

*/ private void setup() { - this.priceMap = this.readFile(ForgeProps.getFile(NewConstants.Quest.PRICE)); - this.priceMap.putAll(this.readFile(ForgeProps.getFile(NewConstants.Quest.BOOSTER_PRICE))); + this.priceMap = this.readFile(NewConstants.QUEST_CARD_PRICE_FILE); + this.priceMap.putAll(this.readFile(NewConstants.PRICES_BOOSTER_FILE)); } // setup() @@ -74,7 +72,7 @@ public class ReadPriceList { * a {@link java.io.File} object. * @return a {@link java.util.HashMap} object. */ - private HashMap readFile(final File file) { + private HashMap readFile(String file) { final HashMap map = new HashMap(); final Random r = MyRandom.getRandom(); diff --git a/src/main/java/forge/sound/EventVisualizer.java b/src/main/java/forge/sound/EventVisualizer.java index af981f788b3..e10c5a10700 100644 --- a/src/main/java/forge/sound/EventVisualizer.java +++ b/src/main/java/forge/sound/EventVisualizer.java @@ -4,10 +4,8 @@ import java.util.HashMap; import java.util.List; import java.util.Map; - import forge.Card; import forge.card.spellability.SpellAbility; -import forge.game.event.CounterAddedEvent; import forge.game.event.BlockerAssignedEvent; import forge.game.event.CardDamagedEvent; import forge.game.event.CardDestroyedEvent; @@ -15,6 +13,8 @@ import forge.game.event.CardDiscardedEvent; import forge.game.event.CardEquippedEvent; import forge.game.event.CardRegeneratedEvent; import forge.game.event.CardSacrificedEvent; +import forge.game.event.CounterAddedEvent; +import forge.game.event.CounterRemovedEvent; import forge.game.event.DrawCardEvent; import forge.game.event.DuelOutcomeEvent; import forge.game.event.EndOfTurnEvent; @@ -23,7 +23,6 @@ import forge.game.event.FlipCoinEvent; import forge.game.event.LandPlayedEvent; import forge.game.event.LifeLossEvent; import forge.game.event.PoisonCounterEvent; -import forge.game.event.CounterRemovedEvent; import forge.game.event.SetTappedEvent; import forge.game.event.ShuffleEvent; import forge.game.event.SpellResolvedEvent; diff --git a/src/main/java/forge/util/CopyFiles.java b/src/main/java/forge/util/CopyFiles.java deleted file mode 100644 index e94b1df33d3..00000000000 --- a/src/main/java/forge/util/CopyFiles.java +++ /dev/null @@ -1,140 +0,0 @@ -/* - * Forge: Play Magic: the Gathering. - * Copyright (C) 2011 Forge Team - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package forge.util; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.IOException; -import java.util.List; - -import javax.swing.JButton; -import javax.swing.JCheckBox; -import javax.swing.JLabel; -import javax.swing.JProgressBar; -import javax.swing.SwingWorker; - -import forge.gui.GuiDisplayUtil; -import forge.properties.ForgeProps; -import forge.properties.NewConstants; - -/** - *

- * CopyFiles class. - *

- * - * @author Forge - * @version $Id$ - */ -public class CopyFiles extends SwingWorker { - - private final List fileList; - - /** The j lb. */ - private final JLabel jLabel; - - /** The j b. */ - private final JProgressBar jProgressBar; - - /** The j check. */ - private final JCheckBox jCheck; - - /** The j source. */ - private final JButton jSource; - - /** The count. */ - private int count; - - /** - *

- * Constructor for CopyFiles. - *

- * - * @param fileList - * a {@link java.util.List} object. - * @param jLabelTotalFiles - * a {@link javax.swing.JLabel} object. - * @param jProgressBar - * a {@link javax.swing.JProgressBar} object. - * @param jCheckBox - * a {@link javax.swing.JCheckBox} object. - * @param jButtonSource - * a {@link javax.swing.JButton} object. - */ - public CopyFiles(final List fileList, final JLabel jLabelTotalFiles, final JProgressBar jProgressBar, - final JCheckBox jCheckBox, final JButton jButtonSource) { - this.fileList = fileList; - this.jLabel = jLabelTotalFiles; - this.jProgressBar = jProgressBar; - this.jCheck = jCheckBox; - this.jSource = jButtonSource; - } - - /** {@inheritDoc} */ - @Override - protected final Void doInBackground() { - for (int i = 0; i < this.fileList.size(); i++) { - this.publish(); - String cName, name, source; - name = this.fileList.get(i).getName(); - source = this.fileList.get(i).getAbsolutePath(); - cName = name.substring(0, name.length() - 8); - cName = GuiDisplayUtil.cleanString(cName) + ".jpg"; - final File sourceFile = new File(source); - final File base = ForgeProps.getFile(NewConstants.IMAGE_BASE); - final File reciever = new File(base, cName); - reciever.delete(); - - try { - reciever.createNewFile(); - final FileOutputStream fos = new FileOutputStream(reciever); - final FileInputStream fis = new FileInputStream(sourceFile); - final byte[] buff = new byte[32 * 1024]; - int length; - while (fis.available() > 0) { - length = fis.read(buff); - if (length > 0) { - fos.write(buff, 0, length); - } - } - fos.flush(); - fis.close(); - fos.close(); - this.count = ((i * 100) / this.fileList.size()) + 1; - this.setProgress(this.count); - - } catch (final IOException e1) { - e1.printStackTrace(); - } - - } - return null; - - } - - /** {@inheritDoc} */ - @Override - protected final void done() { - this.jLabel.setText("All files were copied successfully."); - this.jProgressBar.setIndeterminate(false); - this.jCheck.setEnabled(true); - this.jSource.setEnabled(true); - - } - -} diff --git a/src/main/java/forge/util/FileFinder.java b/src/main/java/forge/util/FileFinder.java deleted file mode 100644 index 6f28e372bce..00000000000 --- a/src/main/java/forge/util/FileFinder.java +++ /dev/null @@ -1,220 +0,0 @@ -/* - * Forge: Play Magic: the Gathering. - * Copyright (C) 2011 Forge Team - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package forge.util; - -import java.io.File; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - -/** - *

- * FileFinder class. - *

- * - * @author Forge - * @version $Id$ - */ -public class FileFinder { - - private Pattern p = null; - private Matcher m = null; - private long totalLength = 0; - private int filesNumber = 0; - private long directoriesNumber = 0; - /** Constant FILES=0. */ - private static final int FILES = 0; - /** Constant DIRECTORIES=1. */ - private static final int DIRECTORIES = 1; - private ArrayList fileNames; - private ArrayList fName; - - /** - *

- * Constructor for FileFinder. - *

- */ - public FileFinder() { - } - - /** - *

- * findFiles. - *

- * - * @param startPath - * a {@link java.lang.String} object. - * @param mask - * a {@link java.lang.String} object. - * @return a {@link java.util.List} object. - * @throws Exception - * the exception - */ - public final List findFiles(final String startPath, final String mask) throws Exception { - this.fileNames = new ArrayList(); - this.fName = new ArrayList(); - return this.findWithFull(startPath, mask, FileFinder.FILES); - } - - /** - *

- * getDirectorySize. - *

- * - * @return a long. - */ - public final long getDirectorySize() { - return this.totalLength; - } - - /** - *

- * Getter for the field filesNumber. - *

- * - * @return a int. - */ - public final int getFilesNumber() { - return this.filesNumber; - } - - /** - *

- * Getter for the field directoriesNumber. - *

- * - * @return a long. - */ - public final long getDirectoriesNumber() { - return this.directoriesNumber; - } - - /** - *

- * accept. - *

- * - * @param name - * a {@link java.lang.String} object. - * @return a boolean. - */ - private boolean accept(final String name) { - - if (this.p == null) { - return true; - } - - this.m = this.p.matcher(name); - - return this.m.matches(); - } - - /** - *

- * findWithFull. - *

- * - * @param startPath - * a {@link java.lang.String} object. - * @param mask - * a {@link java.lang.String} object. - * @param objectType - * a int. - * @return a {@link java.util.List} object. - * @throws java.lang.Exception - * if any. - */ - private List findWithFull(final String startPath, final String mask, final int objectType) throws Exception { - - if ((startPath == null) || (mask == null)) { - throw new Exception("Error"); - } - final File topDirectory = new File(startPath); - if (!topDirectory.exists()) { - throw new Exception("Error"); - } - - if (!mask.equals("")) { - this.p = Pattern.compile(mask, Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE); - } - this.filesNumber = 0; - this.directoriesNumber = 0; - this.totalLength = 0; - final ArrayList res = new ArrayList(100); - - this.searchWithFull(topDirectory, res, objectType); - this.p = null; - return res; - } - - /** - *

- * searchWithFull. - *

- * - * @param topDirectory - * a {@link java.io.File} object. - * @param res - * a {@link java.util.List} object. - * @param objectType - * a int. - */ - private void searchWithFull(final File topDirectory, final List res, final int objectType) { - - final File[] list = topDirectory.listFiles(); - - for (final File element : list) { - - if (element.isDirectory()) { - - if ((objectType != FileFinder.FILES) && this.accept(element.getName())) { - - this.directoriesNumber++; - res.add(element); - } - - this.searchWithFull(element, res, objectType); - } else { - - if ((objectType != FileFinder.DIRECTORIES) && this.accept(element.getName())) { - if (element.getName().contains("full")) { - if (this.fileNames.size() == 0) { - this.fileNames.add(element.getName()); - this.filesNumber++; - this.totalLength += element.length(); - res.add(element); - } - this.fName.add(element.getName()); - if (this.fileNames.size() >= 1) { - if (Collections.indexOfSubList(this.fileNames, this.fName) == -1) { - this.fileNames.add(element.getName()); - this.filesNumber++; - this.totalLength += element.length(); - res.add(element); - } - this.fName.remove(0); - } - } - } - } - } - } - -} diff --git a/src/main/java/forge/util/FileUtil.java b/src/main/java/forge/util/FileUtil.java index 1113976b6a9..a391d57d501 100644 --- a/src/main/java/forge/util/FileUtil.java +++ b/src/main/java/forge/util/FileUtil.java @@ -17,24 +17,21 @@ */ package forge.util; -import java.io.BufferedInputStream; -import java.io.BufferedOutputStream; import java.io.BufferedReader; -import java.io.BufferedWriter; import java.io.File; -import java.io.FileOutputStream; import java.io.FileReader; -import java.io.FileWriter; import java.io.IOException; +import java.io.PrintWriter; import java.io.Reader; -import java.net.Proxy; -import java.net.URL; import java.util.ArrayList; +import java.util.Collection; import java.util.List; +import java.util.regex.Pattern; + +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.tuple.Pair; import forge.error.BugReporter; -import forge.properties.ForgeProps; -import forge.properties.NewConstants.Lang.GuiDownloadPictures.Errors; /** *

@@ -92,31 +89,27 @@ public final class FileUtil { * @param data * a {@link java.util.List} object. */ - public static void writeFile(final File file, final List data) { + public static void writeFile(File file, Collection data) { try { - final BufferedWriter io = new BufferedWriter(new FileWriter(file)); - for (int i = 0; i < data.size(); i++) { - io.write(data.get(i)); - io.write("\r\n"); + PrintWriter p = new PrintWriter(file); + for (Object o : data) { + p.println(o); } - - io.flush(); - io.close(); + p.close(); } catch (final Exception ex) { BugReporter.reportException(ex); throw new RuntimeException("FileUtil : writeFile() error, problem writing file - " + file + " : " + ex); } } // writeAllDecks() - /** - *

- * readFile. - *

- * - * @param filename - * a {@link java.lang.String} object. - * @return a {@link java.util.ArrayList} object. - */ + public static String readFileToString(String filename) { + StringBuilder s = new StringBuilder(); + for (String line : readFile(filename)) { + s.append(line).append('\n'); + } + return s.toString(); + } + public static List readFile(final String filename) { return FileUtil.readFile(new File(filename)); } @@ -181,34 +174,30 @@ public final class FileUtil { return list; } - /** - * Download url into file. - * - * @param url - * the url - * @param target - * the target - */ - public static void downloadUrlIntoFile(final String url, final File target) { - try { - final byte[] buf = new byte[1024]; - int len; + // returns a list of pairs. if the name is not in the file, it is synthesized from the url + public static List> readNameUrlFile(String nameUrlFile) { + Pattern lineSplitter = Pattern.compile(Pattern.quote(" ")); + Pattern replacer = Pattern.compile(Pattern.quote("%20")); - final Proxy p = Proxy.NO_PROXY; - final BufferedInputStream in = new BufferedInputStream(new URL(url).openConnection(p).getInputStream()); - final BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(target)); + List> list = new ArrayList>(); - // while - read and write file - while ((len = in.read(buf)) != -1) { - out.write(buf, 0, len); - - } // while - read and write file - in.close(); - out.flush(); - out.close(); - } catch (final IOException ioex) { - BugReporter.reportException(ioex, ForgeProps.getLocalized(Errors.OTHER), "deck_temp.html", url); + for (String line : readFile(nameUrlFile)) { + if (StringUtils.isBlank(line) || line.startsWith("#")) { + continue; + } + + String[] parts = lineSplitter.split(line, 2); + if (2 == parts.length) { + list.add(Pair.of(replacer.matcher(parts[0]).replaceAll(" "), parts[1])); + } else { + // figure out the filename from the URL + Pattern pathSplitter = Pattern.compile(Pattern.quote("/")); + String[] pathParts = pathSplitter.split(parts[0]); + String last = pathParts[pathParts.length - 1]; + list.add(Pair.of(replacer.matcher(last).replaceAll(" "), parts[0])); + } } + return list; } } diff --git a/src/main/java/forge/util/HttpUtil.java b/src/main/java/forge/util/HttpUtil.java index cb9e6d183d5..0e198efc33d 100644 --- a/src/main/java/forge/util/HttpUtil.java +++ b/src/main/java/forge/util/HttpUtil.java @@ -26,33 +26,34 @@ import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; +import java.util.Collection; import forge.Constant.Preferences; -/** - *

- * HttpUtil class. - *

- * - * @author Forge - * @version $Id$ - * @since 1.0.15 - */ public class HttpUtil { private static final String BOUNDARY = "--7d021a37605f0"; - /** - *

- * upload. - *

- * - * @param sURL - * a {@link java.lang.String} object. - * @param file - * a {@link java.lang.String} object. - */ - public final void upload(final String sURL, final String file) { + public static void upload(String sURL, String file) { + upload(sURL, new File(file)); + } + + public static void upload(String url, Collection data) { + File tempFile = null; + try { + tempFile = File.createTempFile("forge.upload", null); + FileUtil.writeFile(tempFile, data); + HttpUtil.upload(url, tempFile); + } catch (IOException e) { + System.err.println("unable to write to temp file for upload"); + } finally { + if (null != tempFile) { + tempFile.delete(); + } + } + } + + public static void upload(String sURL, File f) { URL url = null; try { url = new URL(sURL); @@ -80,7 +81,6 @@ public class HttpUtil { return; } - final File f = new File(file); final String str = "--" + HttpUtil.BOUNDARY + "\r\n" + "Content-Disposition: form-data;name=\"data\"; filename=\"" + f.getName() + "\"\r\n" + "Content-Type: text/plain\r\n\r\n"; @@ -155,16 +155,7 @@ public class HttpUtil { } } - /** - *

- * getURL. - *

- * - * @param sURL - * a {@link java.lang.String} object. - * @return a {@link java.lang.String} object. - */ - public final String getURL(final String sURL) { + public static String getURL(final String sURL) { URL url = null; try { url = new URL(sURL); @@ -189,4 +180,7 @@ public class HttpUtil { return buffer.toString(); } + + // disable instantiation + private HttpUtil () { } } diff --git a/src/main/java/forge/util/ThreadUtil.java b/src/main/java/forge/util/ThreadUtil.java index 8260fd98851..4abc7967ae9 100644 --- a/src/main/java/forge/util/ThreadUtil.java +++ b/src/main/java/forge/util/ThreadUtil.java @@ -21,6 +21,7 @@ package forge.util; import java.lang.reflect.InvocationTargetException; + import javax.swing.SwingUtilities; /** diff --git a/src/main/java/forge/util/TreeProperties.java b/src/main/java/forge/util/TreeProperties.java deleted file mode 100644 index 598775ede4f..00000000000 --- a/src/main/java/forge/util/TreeProperties.java +++ /dev/null @@ -1,531 +0,0 @@ -/* - * Forge: Play Magic: the Gathering. - * Copyright (C) 2009 Clemens Koza - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ -package forge.util; - -/** - * TreeProperties.java - * - * Created on 19.08.2009 - */ - -import static java.lang.String.format; -import static java.util.Collections.unmodifiableList; - -import java.io.BufferedInputStream; -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Map.Entry; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import java.util.Properties; -import java.util.Set; - - -/** - * The class TreeProperties. This class allows for a tree-like structure of - * properties-files. This class lays some restrictions on the keys used in - * properties-files: - *
    - *
  • The use of "--" is forbidden
  • - *
  • The suffixes "--properties" and "--transparent-properties" are reserved - * for specifying additional properties-files in the tree (relative paths are - * relative to the properties-file where they are referenced)
  • - *
  • Other suffixes are used by {@link PropertyType}s. PropertyTypes are - * registered or unregistered using {@link #addType(PropertyType)} or - * {@link #removeType(PropertyType)}.
  • - *
- * Take a look at these files: - *

- * - *

- * #root.properties
- * title=directions
- * icons--properties=img/icons.properties
- * 
- * #img/icons.properties
- * left--file=left.jpg
- * right--file=right.jpg
- * up--file=up.jpg
- * down--file=down.jpg
- * #note that the path does not contain "img/"
- * size--transparent-properties=size.properties
- * 
- * #img/size.properties
- * width=20
- * height=20
- * 
- *

- * These properties are retrieved with - *

- * - *

- * getProperty("title") //directions
- * getFile("icons/left") //img/left.jpg
- * getFile("icons/right") //img/right.jpg
- * getFile("icons/up") //img/up.jpg
- * getFile("icons/down") //img/down.jpg
- * getProperty("icons/width") //20
- * getProperty("icons/height") //20
- * 
- *

- * As you can see, a properties file included with "--transparent-properties" - * hides its existence from the user. A file included with "--properties" is not - * hidden. The child properties are accessible as if their keys were prepended - * with the parent key, separated by a slash. - *

- * Note that --file, --properties and --transparent-properties entries will be - * relative to the included file, even if the properties file is transparent. - *

- * Also, the TreeProperties can be retrieved: - *

- * - *

- * getChildProperties("icons")
- * getTransparentProperties("icons/size")
- * 
- *

- *

- * TODO add edit & save support - * - * @author Clemens Koza - * @version V0.0 19.08.2009 - * @see Properties - */ -public class TreeProperties /* implements Iterable */ { - /** Constant suffixes. */ - private static final Map> SUFFIXES; - /** Constant types. */ - private static final Map, PropertyType> TYPES; - - /** Constant transparent="transparent-properties". */ - private static final String TRANSPARENT = "transparent-properties"; - /** Constant child="properties". */ - private static final String CHILD = "properties"; - - static { - TYPES = new HashMap, PropertyType>(); - SUFFIXES = new HashMap>(); - PropertyType[] pt = {new FileType()}; - for (PropertyType type : pt) { - addType(type); - } - } - - private File path; - private Map, PropertyType> instanceTypes; - private Map> instanceSuffixes; - private HashMap properties; - private List exceptions; - - /** - *

- * addType. - *

- * - * @param type - * a {@link tree.properties.PropertyType} object. - */ - public static void addType(final PropertyType type) { - TYPES.put(type.getType(), type); - SUFFIXES.put(type.getSuffix(), type); - } - - /** - *

- * removeType. - *

- * - * @param type - * a {@link tree.properties.PropertyType} object. - */ - public static void removeType(final PropertyType type) { - TYPES.remove(type.getType()); - SUFFIXES.remove(type.getSuffix()); - } - - /** - * Delegate to {@link #TreeProperties(File)} with a new. - * - * @param f a {@link java.lang.String} object. - * @throws IOException Signals that an I/O exception has occurred. - * {@link File#File(String)}. - */ - public TreeProperties(final String f) throws IOException { - this(new File(f)); - } - - /** - * Delegate to {@link #TreeProperties(File)} with a new. - * - * @param parent a {@link java.io.File} object. - * @param f a {@link java.lang.String} object. - * @throws IOException Signals that an I/O exception has occurred. - * {@link File#File(File, String)}. - */ - public TreeProperties(final File parent, final String f) throws IOException { - this(new File(parent, f)); - } - - /** - * The constructor is forgiving in the way that Exceptions are not directly - * forwarded. The only fatal exception is if the parameter is null or not - * found. Instead, the rest of the properties are processed, so that the - * erroneous properties are the only ones not present in this - * TreeProperties. Afterwards, the exceptions can be accessed. - * - * @param f a {@link java.io.File} object. - * @throws IOException Signals that an I/O exception has occurred. - */ - public TreeProperties(final File f) throws IOException { - if (f == null) { - throw new FileNotFoundException("null"); - } - this.path = f.getParentFile(); - instanceTypes = new HashMap, PropertyType>(TYPES); - instanceSuffixes = new HashMap>(SUFFIXES); - Properties p = new Properties(); - - // BufferedReader r = new BufferedReader(new FileReader(f)); - // p.load(r); - // r.close(); - BufferedInputStream is = new BufferedInputStream(new FileInputStream(f)); - p.load(is); - is.close(); - - Set> entries = p.entrySet(); - properties = new HashMap(); - List exceptions = new ArrayList(); - this.exceptions = unmodifiableList(exceptions); - for (Entry entry : entries) { - String key = (String) entry.getKey(); - String value = (String) entry.getValue(); - try { - String[] parts = key.split("--", 2); - Object result; - if (parts.length == 1) { - // Regular - result = value; - } else { - // suffix - if (parts[1].equals(TRANSPARENT) || parts[1].equals(CHILD)) { - TreeProperties child = new TreeProperties(path, FileType.getPath(value)); - exceptions.addAll(child.exceptions); - result = child; - } else { - PropertyType t = instanceSuffixes.get(parts[1]); - if (t == null) { - throw new IllegalArgumentException("No content type: " + parts[1]); - } - result = t.toObject(this, value); - } - } - properties.put(key, result); - } catch (Exception ex) { - exceptions.add(new Exception(format("File '%s', Property '%s':%n %s", f, key, ex.getMessage()), ex - .getCause())); - } - } - } - - /** - * Returns the exceptions that were thrown while creating the tree - * properties. - * - * @return a {@link java.util.List} object. - */ - public final List getExceptions() { - return exceptions; - } - - /** - * If exceptions occurred during construction, this method throws an - * IOException that combines the messages of those exceptions. - * - * @throws IOException Signals that an I/O exception has occurred. - */ - public final void rethrow() throws IOException { - if (exceptions.isEmpty()) { - return; - } - StringBuilder sb = new StringBuilder("The following exceptions occurred:"); - for (Exception ex : exceptions) { - sb.append("\n"); - sb.append(ex.getMessage()); - } - throw new IOException(sb.toString()); - } - - /** - * Returns the parent directory of this TreeProperties. - * - * @return a {@link java.io.File} object. - */ - public final File getPath() { - return path; - } - - /** - * Checks if the key is valid for a query and throws an - * {@link IllegalArgumentException} if not. Slashes are allowed in this - * method, but suffixes are not - * - * @param key - * a {@link java.lang.String} object. - */ - private void checkQueryKey(final String key) { - if (key.contains("--")) { - throw new IllegalArgumentException("Invalid key: " + key); - } - } - - /** - * Retrieves the string property for the given key. - * - * @param key - * a {@link java.lang.String} object. - * @return a {@link java.lang.String} object. - */ - public final String getProperty(final String key) { - return getProperty(key, String.class); - } - - /** - * Convenience for {@code getProperty(key, File.class)}. - * - * @param key - * a {@link java.lang.String} object. - * @return a {@link java.io.File} object. - */ - public final File getFile(final String key) { - return getProperty(key, File.class); - } - - /** - * Retrieves the child properties for the given key. Transparent properties - * can't be retrieved this way. - * - * @param key - * a {@link java.lang.String} object. - * @return a {@link forge.util.TreeProperties} object. - */ - public final TreeProperties getChildProperties(final String key) { - return (TreeProperties) getProperty(key, "--" + CHILD, true); - } - - /** - * Retrieves the child properties for the given key. - * - * @param key - * a {@link java.lang.String} object. - * @return a {@link forge.util.TreeProperties} object. - */ - public final TreeProperties getTransparentProperties(final String key) { - return (TreeProperties) getProperty(key, "--" + TRANSPARENT, true); - } - - /** - * Returns a property of the given type. This does not work to retrieve tree - * properties. - * - * @param a T object. - * @param key a {@link java.lang.String} object. - * @param cls a {@link java.lang.Class} object. - * @return a T object. - */ - @SuppressWarnings("unchecked") - public final T getProperty(final String key, final Class cls) { - String suffix; - if (cls == String.class) { - suffix = ""; - } else { - PropertyType t = instanceTypes.get(cls); - suffix = "--" + t.getSuffix(); - } - return (T) getProperty(key, suffix, true); - } - - /** - *

- * getProperty. - *

- * - * @param key - * a {@link java.lang.String} object. - * @param suffix - * a {@link java.lang.String} object. - * @param top - * a boolean. - * @return a {@link java.lang.Object} object. - */ - private Object getProperty(final String key, final String suffix, final boolean top) { - checkQueryKey(key); - // first, try the key in the current file, as if there were no slash - // No subpath - either directly in the properties... - Object result = properties.get(key + suffix); - if (result != null) { - return result; - } - - // ...or in a transparent properties - - // look for all --transparent-properties - for (Entry entry : properties.entrySet()) { - if (entry.getKey().endsWith("--" + TRANSPARENT)) { - TreeProperties p = (TreeProperties) entry.getValue(); - result = p.getProperty(key, suffix, false); - if (result != null) { - return result; - } - } - } - - // if there is no immediate containment, try the children - // try every combination - // for a/b/c, there could be a child "a/b--properties" that contains "c" - // or "a--properties" with "b/c" - int index = -1; - while ((index = key.indexOf('/', index + 1)) != -1) { - String first = key.substring(0, index), second = key.substring(index + 1); - - TreeProperties p = (TreeProperties) getProperty(first, "--" + CHILD, false); - if (p == null) { - continue; - } - result = p.getProperty(second, suffix, false); - if (result != null) { - return result; - } - } - if (top) { - Exception ex = new Exception("TreeProperties returns null for " + key + suffix); - // ex.printStackTrace(); - System.err.println(ex); - } - return null; - } - - public interface PropertyType { - /** - * The suffix, not including "--", that identifies this content type. - * - * @return a {@link java.lang.String} object. - */ - String getSuffix(); - - /** - * The class that identifies this content type. - * - * @return a {@link java.lang.Class} object. - */ - Class getType(); - - /** - * Returns an object for the specified value, in the context of a - * TreeProperties. - * - * @param p - * a {@link forge.util.TreeProperties} object. - * @param s - * a {@link java.lang.String} object. - * @return a T object. - */ - T toObject(TreeProperties p, String s); - } - - public static class FileType implements PropertyType { - /** Constant suffix="file". */ - public static final String SUFFIX = "file"; - /** Constant type. */ - public static final Class TYPE = File.class; - - /** - *

- * Getter for the field suffix. - *

- * - * @return a {@link java.lang.String} object. - */ - @Override - public final String getSuffix() { - return SUFFIX; - } - - /** - *

- * Getter for the field type. - *

- * - * @return a {@link java.lang.Class} object. - */ - @Override - public final Class getType() { - return TYPE; - } - - /** {@inheritDoc} */ - @Override - public final File toObject(final TreeProperties p, final String s) { - String path = getPath(s); - File f = new File(path); - if (f.isAbsolute()) { - return f; - } else { - return new File(p.getPath(), path); - } - } - - /** - * Returns a path path from a property value. Three substitutions are - * applied: - *
    - *
  • A "~/" or "~\" at the beginning is replaced with the user's home - * directory
  • - *
  • A "$$" anywhere is replaced with a single "$"
  • - *
  • A "${*}", where * is any string without "}", is replaced by - * - * @param s a {@link java.lang.String} object. - * @return a {@link java.lang.String} object. - * {@link System#getProperty(String)}
  • - *
- */ - public static String getPath(String s) { - if (s.startsWith("~/")) { - s = System.getProperty("user.home") + "/" + s.substring(2); - } else if (s.startsWith("~\\")) { - s = System.getProperty("user.home") + "\\" + s.substring(2); - } - Matcher m = Pattern.compile("\\$\\$|\\$\\{([^\\}]*)\\}").matcher(s); - StringBuffer result = new StringBuffer(); - while (m.find()) { - if (m.group().equals("$$")) { - m.appendReplacement(result, Matcher.quoteReplacement("$")); - } else { - m.appendReplacement(result, Matcher.quoteReplacement(System.getProperty(m.group(1)))); - } - } - m.appendTail(result); - return result.toString(); - } - } -} diff --git a/src/main/java/forge/util/storage/StorageReaderFile.java b/src/main/java/forge/util/storage/StorageReaderFile.java index b8fa69965a0..82b420d787e 100644 --- a/src/main/java/forge/util/storage/StorageReaderFile.java +++ b/src/main/java/forge/util/storage/StorageReaderFile.java @@ -23,7 +23,6 @@ import java.util.TreeMap; import javax.swing.JOptionPane; - import org.apache.commons.lang3.StringUtils; import com.google.common.base.Function; diff --git a/src/main/java/forge/util/storage/StorageReaderFolder.java b/src/main/java/forge/util/storage/StorageReaderFolder.java index 5672145acc3..9d20500396f 100644 --- a/src/main/java/forge/util/storage/StorageReaderFolder.java +++ b/src/main/java/forge/util/storage/StorageReaderFolder.java @@ -28,7 +28,6 @@ import java.util.TreeMap; import javax.swing.JOptionPane; - import org.apache.commons.lang3.StringUtils; import com.google.common.base.Function; diff --git a/src/main/java/forge/view/FView.java b/src/main/java/forge/view/FView.java index c0924131f9e..828c78637a5 100644 --- a/src/main/java/forge/view/FView.java +++ b/src/main/java/forge/view/FView.java @@ -3,22 +3,40 @@ package forge.view; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; +import java.awt.Font; import java.awt.Frame; import java.awt.Graphics; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.io.File; import java.util.ArrayList; +import java.util.Deque; +import java.util.HashSet; +import java.util.LinkedList; import java.util.List; +import java.util.Set; import javax.swing.JFrame; import javax.swing.JLayeredPane; import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.JTextArea; +import javax.swing.SwingUtilities; import javax.swing.WindowConstants; import javax.swing.border.EmptyBorder; import javax.swing.border.LineBorder; import net.miginfocom.swing.MigLayout; +import org.apache.commons.lang3.StringUtils; + +import com.google.common.collect.Lists; + import forge.Singletons; import forge.control.FControl; +import forge.control.RestartUtil; +import forge.gui.DialogMigrateProfile; +import forge.gui.SOverlayUtils; import forge.gui.deckeditor.VDeckEditorUI; import forge.gui.framework.DragCell; import forge.gui.framework.EDocID; @@ -26,10 +44,13 @@ import forge.gui.framework.SLayoutConstants; import forge.gui.home.VHomeUI; import forge.gui.match.TargetingOverlay; import forge.gui.match.VMatchUI; +import forge.gui.toolbox.FButton; +import forge.gui.toolbox.FLabel; import forge.gui.toolbox.FOverlay; import forge.gui.toolbox.FPanel; import forge.gui.toolbox.FSkin; import forge.model.BuildInfo; +import forge.properties.NewConstants; /** */ public enum FView { @@ -109,7 +130,6 @@ public enum FView { // All is ready to go - fire up home screen and discard splash frame. Singletons.getControl().changeState(FControl.Screens.HOME_SCREEN); - //CMainMenu.SINGLETON_INSTANCE.selectPrevious(); FView.this.frmSplash.dispose(); FView.this.frmSplash = null; @@ -117,6 +137,118 @@ public enum FView { // Allow OS to set location. Hopefully this doesn't cause issues frmDocument.setLocationByPlatform(true); frmDocument.setVisible(true); + + // remove this once our userbase has been migrated to the profile layout + { + // get profile directories -- if one of them is actually under the res directory, don't + // count is as data to migrate + final Set profileDirs = new HashSet(); + for (String dname : NewConstants.PROFILE_DIRS) { + profileDirs.add(new File(dname)); + } + + final List resDirs = new ArrayList(); + for (String resDir : Lists.newArrayList("decks", "gauntlet", "layouts", "pics", "pics_product", "preferences", "quest/data")) { + resDirs.add(new File("res", resDir)); + } + + // if we have any data to migrate, pop up the migration dialog + if (_addRemainingFiles(null, resDirs, profileDirs)) { + new DialogMigrateProfile("res", new Runnable() { + @Override public void run() { + // remove known cruft files, yes this is ugly, but it's also temporary + for (String cruftFile : Lists.newArrayList("decks/SkieraCube-cards_not_supported_yet.txt", "decks/cube/ArabianExtended.dck", "decks/cube/GtcGuildBoros.dck", "decks/cube/GtcGuildDimir.dck", "decks/cube/GtcGuildGruul.dck", "decks/cube/GtcGuildOrzhov.dck", "decks/cube/GtcGuildSimic.dck", "decks/cube/GtcPromoBoros.dck", "decks/cube/GtcPromoDimir.dck", "decks/cube/GtcPromoGruul.dck", "decks/cube/GtcPromoOrzhov.dck", "decks/cube/GtcPromoSimic.dck", "decks/cube/JuzamjediCube.dck", "decks/cube/RtRGuildAzorius.dck", "decks/cube/RtRGuildGolgari.dck", "decks/cube/RtRGuildIzzet.dck", "decks/cube/RtRGuildRakdos.dck", "decks/cube/RtRGuildSelesnya.dck", "decks/cube/RtRPromoAzorius.dck", "decks/cube/RtRPromoGolgari.dck", "decks/cube/RtRPromoIzzet.dck", "decks/cube/RtRPromoRakdos.dck", "decks/cube/RtRPromoSelesnya.dck", "decks/cube/SkieraCube.dck", "gauntlet/LOCKED_DotP Preconstructed.dat", "gauntlet/LOCKED_Swimming With Sharks.dat", "layouts/editor_default.xml", "layouts/home_default.xml", "layouts/match_default.xml", "pics/snow_covered_forest1.jpg", "pics/snow_covered_forest2.jpg", "pics/snow_covered_forest3.jpg", "pics/snow_covered_island1.jpg", "pics/snow_covered_island2.jpg", "pics/snow_covered_island3.jpg", "pics/snow_covered_mountain1.jpg", "pics/snow_covered_mountain2.jpg", "pics/snow_covered_mountain3.jpg", "pics/snow_covered_plains1.jpg", "pics/snow_covered_plains2.jpg", "pics/snow_covered_plains3.jpg", "pics/snow_covered_swamp1.jpg", "pics/snow_covered_swamp2.jpg", "pics/snow_covered_swamp3.jpg", "pics/VAN/Birds of Paradise Avatar.full.jpg", "pics/VAN/Erhnam Djinn Avatar.full.jpg", "pics/VAN/Goblin Warchief Avatar.full.jpg", "pics/VAN/Grinning Demon Avatar.full.jpg", "pics/VAN/Platinum Angel Avatar.full.jpg", "pics/VAN/Prodigal Sorcerer Avatar.full.jpg", "pics/VAN/Rith, the Awakener Avatar.full.jpg", "pics/VAN/Royal Assassin Avatar.full.jpg", "pics/VAN/Serra Angel Avatar.full.jpg", "pics/VAN/Tradewind Rider Avatar.full.jpg", "pics_product/10E.jpg", "pics_product/2ED.jpg", "pics_product/3ED.jpg", "pics_product/4ED.jpg", "pics_product/5DN.jpg", "pics_product/5ED.jpg", "pics_product/6ED.jpg", "pics_product/7ED.jpg", "pics_product/8ED.jpg", "pics_product/9ED.jpg", "pics_product/ALA.jpg", "pics_product/ALL.jpg", "pics_product/APC.jpg", "pics_product/ARB.jpg", "pics_product/ARN.jpg", "pics_product/ATQ.jpg", "pics_product/BOK.jpg", "pics_product/CFX.jpg", "pics_product/CHK.jpg", "pics_product/CHR.jpg", "pics_product/CSP.jpg", "pics_product/DIS.jpg", "pics_product/DKA.jpg", "pics_product/DRK.jpg", "pics_product/DST.jpg", "pics_product/EVE.jpg", "pics_product/EXO.jpg", "pics_product/FEM.jpg", "pics_product/FUT.jpg", "pics_product/GPT.jpg", "pics_product/HML.jpg", "pics_product/ICE.jpg", "pics_product/INV.jpg", "pics_product/ISD.jpg", "pics_product/JUD.jpg", "pics_product/LEA.jpg", "pics_product/LEB.jpg", "pics_product/LEG.jpg", "pics_product/LGN.jpg", "pics_product/LRW.jpg", "pics_product/M10.jpg", "pics_product/M11.jpg", "pics_product/M12.jpg", "pics_product/MBS.jpg", "pics_product/MIR.jpg", "pics_product/MMQ.jpg", "pics_product/MOR.jpg", "pics_product/MRD.jpg", "pics_product/NMS.jpg", "pics_product/NPH.jpg", "pics_product/ODY.jpg", "pics_product/ONS.jpg", "pics_product/PCY.jpg", "pics_product/PLC.jpg", "pics_product/PLS.jpg", "pics_product/PO2.jpg", "pics_product/POR.jpg", "pics_product/PTK.jpg", "pics_product/RAV.jpg", "pics_product/ROE.jpg", "pics_product/S99.jpg", "pics_product/SCG.jpg", "pics_product/SHM.jpg", "pics_product/SOK.jpg", "pics_product/SOM.jpg", "pics_product/STH.jpg", "pics_product/TMP.jpg", "pics_product/TOR.jpg", "pics_product/TSP.jpg", "pics_product/UDS.jpg", "pics_product/ULG.jpg", "pics_product/USG.jpg", "pics_product/VIS.jpg", "pics_product/WTH.jpg", "pics_product/WWK.jpg", "pics_product/ZEN.jpg", "preferences/.project", "preferences/editor.default.preferences", "preferences/main.properties", "quest/quest.preferences", "quest/quest.properties")) { + new File("res", cruftFile).delete(); + } + + // assemble a list of remaining files. + final List remainingFiles = new LinkedList(); + _addRemainingFiles(remainingFiles, resDirs, profileDirs); + + // if any files remain, display them and make clear that they should be moved or + // deleted manually or the user will continue to be prompted for migration + FPanel p = new FPanel(new MigLayout("insets dialog, gap 10, center, wrap")); + p.setOpaque(false); + p.setBackgroundTexture(FSkin.getIcon(FSkin.Backgrounds.BG_TEXTURE)); + + if (remainingFiles.isEmpty()) { + p.add(new FLabel.Builder().text("You're done! It looks like everything went smoothly." + + " Now just restart Forge to load the data from its new home! Note that there is more data available" + + " from the downloaders now. You might want to run through the content downloaders to check for new files.").build()); + } else { + p.add(new FLabel.Builder().text("There seem to be a few files left over in your old data" + + " directories. They should be deleted or moved somewhere else to avoid having the data" + + " migration prompt pop up again!").build()); + + JTextArea files = new JTextArea(StringUtils.join(remainingFiles, '\n')); + files.setFont(new Font("Monospaced", Font.PLAIN, 10)); + files.setOpaque(false); + files.setWrapStyleWord(true); + files.setLineWrap(true); + files.setEditable(false); + JScrollPane scroller = new JScrollPane(files); + p.add(scroller, "w 600:100%:100%, h 100:100%:100%, gaptop 10"); + } + + final FButton btnOk = new FButton(remainingFiles.isEmpty() ? "Restart Forge" : "Close Forge"); + btnOk.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { + if (remainingFiles.isEmpty()) { + RestartUtil.restartApplication(null); + } else { + System.exit(0); + } + } + }); + p.add(btnOk, "center, w pref+64!, h pref+12!, gaptop 20"); + + JPanel overlay = FOverlay.SINGLETON_INSTANCE.getPanel(); + overlay.setLayout(new MigLayout("insets 0, gap 0, wrap, ax center, ay center")); + overlay.add(p, "w 100::80%, h 50::90%"); + SOverlayUtils.showOverlay(); + + SwingUtilities.invokeLater(new Runnable() { + @Override public void run() { btnOk.requestFocusInWindow(); } + }); + } + }); + } + } + } + + // will populate remainingFiles with remaining files if not null, returns whether any files have + // been added to remainingFiles (or would have been added if remainingFiles is null) + // directories listed in profileDirs will not be searched + private static boolean _addRemainingFiles(List remainingFiles, List dirRoots, Set profileDirs) { + Deque stack = new LinkedList(dirRoots); + boolean ret = false; + while (!stack.isEmpty()) { + File cur = stack.pop(); + if (profileDirs.contains(cur)) { + // don't search active profile dirs + continue; + } + + File[] curListing = cur.listFiles(); + if (null == curListing) { + continue; + } + for (File f : curListing) { + if (f.isDirectory()) { + if (!".svn".equals(f.getName())) { + stack.push(f); + } + } else { + if (null == remainingFiles) { + return true; + } + remainingFiles.add(f); + ret = true; + } + } + } + + return ret; } /** @return {@link forge.view.SplashFrame} */ diff --git a/src/main/java/forge/view/Main.java b/src/main/java/forge/view/Main.java index afc01838272..c2d44a60be8 100644 --- a/src/main/java/forge/view/Main.java +++ b/src/main/java/forge/view/Main.java @@ -25,19 +25,8 @@ import forge.model.FModel; * Main class for Forge's swing application view. */ public final class Main { - /** - * Do not instantiate. - */ - private Main() { - // Intentionally blank. - } - - /** - * Main method for Forge. - * - * @param args - * an array of {@link java.lang.String} objects. + * Main entrypoint for Forge */ public static void main(final String[] args) { // HACK - temporary solution to "Comparison method violates it's general contract!" crash @@ -52,14 +41,15 @@ public final class Main { Singletons.getControl().initialize(); } - /** @throws Throwable */ @Override protected void finalize() throws Throwable { - try { } catch (Exception e) { } - finally { - super.finalize(); - //more code can be written here as per need of application + try { Singletons.getModel().close(); + } finally { + super.finalize(); } } + + // disallow instantiation + private Main() { } } diff --git a/src/main/java/forge/view/arcane/CardPanel.java b/src/main/java/forge/view/arcane/CardPanel.java index 06d5d0c23ec..962eef048c3 100644 --- a/src/main/java/forge/view/arcane/CardPanel.java +++ b/src/main/java/forge/view/arcane/CardPanel.java @@ -315,8 +315,8 @@ public class CardPanel extends JPanel implements CardContainer { // + White borders for Core sets Unlimited - 9th + final int cornerSize = Math.max(4, Math.round(this.cardWidth * CardPanel.ROUNDED_CORNER_SIZE)); - if (this.getGameCard() != null && this.getGameCard().getImageFilename() != null - && !this.getGameCard().getImageFilename().equals("none") && !this.getGameCard().getName().equals("Morph")) { + if (this.getGameCard() != null && this.getGameCard().getImageKey() != null + && !this.getGameCard().getImageKey().equals("none") && !this.getGameCard().getName().equals("Morph")) { CardEdition ed = Singletons.getModel().getEditions().get(this.getGameCard().getCurSetCode()); if (ed != null && ed.isWhiteBorder()) { @@ -643,12 +643,12 @@ public class CardPanel extends JPanel implements CardContainer { && this.imagePanel.hasImage()) { return; } + this.setGameCard(card); if (!this.isShowing()) { return; } - //final Insets i = this.getInsets(); - //System.out.println("Setting card: " + this.getWidth() + ", " + getCardWidth() + " (" + imagePanel.getWidth() + ")" ); + final BufferedImage image = card == null ? null : ImageCache.getImage(card, imagePanel.getWidth(), imagePanel.getHeight()); if ((this.getGameCard() != null) && Singletons.getModel().getPreferences().getPrefBoolean(FPref.UI_CARD_OVERLAY)) { this.setText(this.getGameCard()); diff --git a/src/main/java/forge/view/arcane/PlayArea.java b/src/main/java/forge/view/arcane/PlayArea.java index 62acf479920..24fb2530a25 100644 --- a/src/main/java/forge/view/arcane/PlayArea.java +++ b/src/main/java/forge/view/arcane/PlayArea.java @@ -26,6 +26,7 @@ import java.util.Collection; import java.util.List; import javax.swing.JScrollPane; + import forge.Card; import forge.view.arcane.util.Animation; import forge.view.arcane.util.CardPanelMouseListener; diff --git a/src/test/java/forge/ReadDraftRankingsTest.java b/src/test/java/forge/ReadDraftRankingsTest.java index 00d6822d4d1..d2484761a2f 100644 --- a/src/test/java/forge/ReadDraftRankingsTest.java +++ b/src/test/java/forge/ReadDraftRankingsTest.java @@ -10,7 +10,6 @@ import org.testng.annotations.Test; import forge.card.CardRules; import forge.card.CardRulesReader; import forge.game.limited.ReadDraftRankings; -import forge.properties.ForgeProps; import forge.properties.NewConstants; import forge.util.FileUtil; @@ -31,20 +30,20 @@ public class ReadDraftRankingsTest { CardRulesReader cr = new CardRulesReader(); - List cardLines = FileUtil.readFile(new File(ForgeProps.getFile(NewConstants.CARDSFOLDER) + "/g", "garruk_primal_hunter.txt")); + List cardLines = FileUtil.readFile(new File(NewConstants.CARD_DATA_DIR + "/g", "garruk_primal_hunter.txt")); CardRules c = cr.readCard(cardLines); Assert.assertEquals(1.0 / 234.0, rdr.getRanking(c.getName(), "M13").doubleValue()); - cardLines = FileUtil.readFile(new File(ForgeProps.getFile(NewConstants.CARDSFOLDER) + "/c", "clone.txt")); + cardLines = FileUtil.readFile(new File(NewConstants.CARD_DATA_DIR + "/c", "clone.txt")); c = cr.readCard(cardLines); Assert.assertEquals(38.0 / 234.0, rdr.getRanking(c.getName(), "M13").doubleValue()); - cardLines = FileUtil.readFile(new File(ForgeProps.getFile(NewConstants.CARDSFOLDER) + "/t", "tamiyo_the_moon_sage.txt")); + cardLines = FileUtil.readFile(new File(NewConstants.CARD_DATA_DIR + "/t", "tamiyo_the_moon_sage.txt")); c = cr.readCard(cardLines); Assert.assertEquals(1.0 / 234.0, rdr.getRanking(c.getName(), "AVR").doubleValue()); // Mikaeus, the Lunarch has a comma in its name in the rankings file - cardLines = FileUtil.readFile(new File(ForgeProps.getFile(NewConstants.CARDSFOLDER) + "/m", "mikaeus_the_lunarch.txt")); + cardLines = FileUtil.readFile(new File(NewConstants.CARD_DATA_DIR + "/m", "mikaeus_the_lunarch.txt")); c = cr.readCard(cardLines); Assert.assertEquals(4.0 / 255.0, rdr.getRanking(c.getName(), "ISD").doubleValue()); diff --git a/src/test/java/forge/item/DeckHintsTest.java b/src/test/java/forge/item/DeckHintsTest.java index df1795f658f..d2f757c91ff 100644 --- a/src/test/java/forge/item/DeckHintsTest.java +++ b/src/test/java/forge/item/DeckHintsTest.java @@ -11,7 +11,6 @@ import org.testng.annotations.Test; import forge.card.CardRarity; import forge.card.CardRulesReader; import forge.card.DeckHints; -import forge.properties.ForgeProps; import forge.properties.NewConstants; import forge.util.FileUtil; @@ -131,7 +130,7 @@ public class DeckHintsTest { */ protected CardPrinted readCard(String filename) { String firstLetter = filename.substring(0, 1); - File dir = new File(ForgeProps.getFile(NewConstants.CARDSFOLDER), firstLetter); + File dir = new File(NewConstants.CARD_DATA_DIR, firstLetter); File txtFile = new File(dir, filename); CardRulesReader crr = new CardRulesReader(); diff --git a/src/test/java/forge/model/FModelTest.java b/src/test/java/forge/model/FModelTest.java index 247e2f97d65..b6ce037db4c 100644 --- a/src/test/java/forge/model/FModelTest.java +++ b/src/test/java/forge/model/FModelTest.java @@ -1,6 +1,7 @@ package forge.model; import java.io.FileNotFoundException; +import java.io.IOException; import org.testng.Assert; import org.testng.annotations.AfterTest; @@ -52,7 +53,7 @@ public class FModelTest { * if something is really wrong */ @Test(enabled = false) - public final void test_ctor_close_ctor() throws FileNotFoundException { + public final void test_ctor_close_ctor() throws IOException { // by // Braids // on