diff --git a/.gitattributes b/.gitattributes
index 03358b87ca5..30c2265da29 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -16308,7 +16308,6 @@ forge-gui/res/lists/net-decks-commander.txt -text
forge-gui/res/lists/net-decks.txt -text
forge-gui/res/lists/precon-images.txt svneol=native#text/plain
forge-gui/res/lists/quest-opponent-icons.txt svneol=native#text/plain
-forge-gui/res/lists/quest-pet-shop-icons.txt svneol=native#text/plain
forge-gui/res/lists/quest-pet-token-images.txt svneol=native#text/plain
forge-gui/res/lists/token-images.txt svneol=native#text/plain
forge-gui/res/lists/tournamentpack-images.txt svneol=native#text/plain
diff --git a/forge-core/src/main/java/forge/util/ImageUtil.java b/forge-core/src/main/java/forge/util/ImageUtil.java
index f26846bc64a..7e705223ce6 100644
--- a/forge-core/src/main/java/forge/util/ImageUtil.java
+++ b/forge-core/src/main/java/forge/util/ImageUtil.java
@@ -1,14 +1,12 @@
package forge.util;
-import org.apache.commons.lang3.StringUtils;
-
import forge.ImageKeys;
import forge.StaticData;
import forge.card.CardDb;
import forge.card.CardRules;
import forge.card.CardSplitType;
import forge.item.PaperCard;
-import forge.util.Base64Coder;
+import org.apache.commons.lang3.StringUtils;
public class ImageUtil {
public static float getNearestHQSize(float baseSize, float actualSize) {
@@ -34,16 +32,16 @@ public class ImageUtil {
return null;
}
StringBuilder s = new StringBuilder();
-
+
CardRules card = cp.getRules();
String edition = cp.getEdition();
s.append(toMWSFilename(nameToUse));
-
+
final int cntPictures;
final boolean hasManyPictures;
final CardDb db = !card.isVariant() ? StaticData.instance().getCommonCards() : StaticData.instance().getVariantCards();
if (includeSet) {
- cntPictures = db.getPrintCount(card.getName(), edition);
+ cntPictures = db.getPrintCount(card.getName(), edition);
hasManyPictures = cntPictures > 1;
} else {
// without set number of pictures equals number of urls provided in Svar:Picture
@@ -54,27 +52,27 @@ public class ImageUtil {
int maxCntPictures = db.getMaxPrintCount(card.getName());
hasManyPictures = maxCntPictures > 1;
}
-
+
int artIdx = cp.getArtIndex() - 1;
if (hasManyPictures) {
if ( cntPictures <= artIdx ) // prevent overflow
artIdx = cntPictures == 0 ? 0 : artIdx % cntPictures;
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;
+
+ String fname;
if (isDownloadUrl) {
s.append(".jpg");
- fname = Base64Coder.encodeString(s.toString(), true);
+ fname = s.toString().replaceAll("\\s", "%20");
} else {
fname = s.toString();
}
-
+
if (includeSet) {
String editionAliased = isDownloadUrl ? StaticData.instance().getEditions().getCode2ByCode(edition) : ImageKeys.getSetFolder(edition);
return String.format("%s/%s", editionAliased, fname);
@@ -85,15 +83,15 @@ public class ImageUtil {
public static boolean hasBackFacePicture(PaperCard cp) {
CardSplitType cst = cp.getRules().getSplitType();
- return cst == CardSplitType.Transform || cst == CardSplitType.Flip;
+ return cst == CardSplitType.Transform || cst == CardSplitType.Flip;
}
public static String getNameToUse(PaperCard cp, boolean backFace) {
final CardRules card = cp.getRules();
if (backFace ) {
- if ( hasBackFacePicture(cp) )
+ if ( hasBackFacePicture(cp) )
return card.getOtherPart().getName();
- else
+ else
return null;
} else if(CardSplitType.Split == cp.getRules().getSplitType()) {
return card.getMainPart().getName() + card.getOtherPart().getName();
@@ -101,17 +99,17 @@ public class ImageUtil {
return cp.getName();
}
}
-
+
public static String getImageKey(PaperCard cp, boolean backFace, boolean includeSet) {
return getImageRelativePath(cp, backFace, includeSet, false);
}
public static String getDownloadUrl(PaperCard cp, boolean backFace) {
return getImageRelativePath(cp, backFace, true, true);
- }
-
+ }
+
public static String toMWSFilename(String in) {
- final StringBuffer out = new StringBuffer();
+ final StringBuilder out = new StringBuilder();
char c;
for (int i = 0; i < in.length(); i++) {
c = in.charAt(i);
diff --git a/forge-gui-desktop/src/main/java/forge/gui/ImportSourceAnalyzer.java b/forge-gui-desktop/src/main/java/forge/gui/ImportSourceAnalyzer.java
index 4df9625e3f1..08830eedf12 100644
--- a/forge-gui-desktop/src/main/java/forge/gui/ImportSourceAnalyzer.java
+++ b/forge-gui-desktop/src/main/java/forge/gui/ImportSourceAnalyzer.java
@@ -17,18 +17,8 @@
*/
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.card.CardEdition;
import forge.card.CardRules;
import forge.item.IPaperCard;
@@ -37,9 +27,15 @@ import forge.model.FModel;
import forge.properties.ForgeConstants;
import forge.util.FileUtil;
import forge.util.ImageUtil;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.tuple.Pair;
+
+import java.io.File;
+import java.util.*;
public class ImportSourceAnalyzer {
- public static enum OpType {
+
+ public enum OpType {
CONSTRUCTED_DECK,
DRAFT_DECK,
PLANAR_DECK,
@@ -57,74 +53,75 @@ public class ImportSourceAnalyzer {
DB_FILE
}
- public static interface AnalysisCallback {
+ public interface AnalysisCallback {
boolean checkCancel();
- void addOp(OpType type, File src, File dest);
+ void addOp(OpType type, File src, File dest);
}
- private final File _source;
- private final AnalysisCallback _cb;
- private final int _numFilesToAnalyze;
+ private final File source;
+ private final AnalysisCallback cb;
+ private final int numFilesToAnalyze;
- private int _numFilesAnalyzed;
+ private int numFilesAnalyzed;
public ImportSourceAnalyzer(final String source, final AnalysisCallback cb) {
- _source = new File(source);
- _cb = cb;
-
- _numFilesToAnalyze = _countFiles(_source);
+ this.source = new File(source);
+ this.cb = cb;
+ numFilesToAnalyze = countFiles(this.source);
}
- public int getNumFilesToAnalyze() { return _numFilesToAnalyze; }
- public int getNumFilesAnalyzed() { return _numFilesAnalyzed; }
+ public int getNumFilesToAnalyze() { return numFilesToAnalyze; }
+ public int getNumFilesAnalyzed() { return numFilesAnalyzed; }
public void doAnalysis() {
- _identifyAndAnalyze(_source);
+ identifyAndAnalyze(this.source);
}
- private void _identifyAndAnalyze(final File root) {
+ private void identifyAndAnalyze(final 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
final 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 != FModel.getMagicDb().getEditions().get(dirname)) { _analyzeCardPicsSetDir(root); }
+ 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 != FModel.getMagicDb().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 (final File file : root.listFiles()) {
- if (_cb.checkCancel()) { return; }
+ File[] files = root.listFiles();
+ assert files != null;
+ for (final File file : files) {
+ if (cb.checkCancel()) { return; }
if (file.isFile()) {
final String filename = file.getName();
if (StringUtils.endsWithIgnoreCase(filename, ".dck")) {
- _analyzeDecksDir(root);
+ analyzeDecksDir(root);
numUnhandledFiles = 0;
break;
} else if (StringUtils.endsWithIgnoreCase(filename, ".jpg")) {
- _analyzeCardPicsDir(root);
+ analyzeCardPicsDir(root);
numUnhandledFiles = 0;
break;
}
++numUnhandledFiles;
} else if (file.isDirectory()) {
- _identifyAndAnalyze(file);
+ identifyAndAnalyze(file);
}
}
- _numFilesAnalyzed += numUnhandledFiles;
+ numFilesAnalyzed += numUnhandledFiles;
}
}
@@ -132,24 +129,25 @@ public class ImportSourceAnalyzer {
// pre-profile res dir
//
- private void _analyzeOldResDir(final File root) {
- _analyzeDir(root, new _Analyzer() {
- @Override boolean onDir(final File dir) {
+ private void analyzeOldResDir(final File root) {
+ analyzeDir(root, new Analyzer() {
+ @Override
+ boolean onDir(final File dir) {
final String dirname = dir.getName();
if ("decks".equalsIgnoreCase(dirname)) {
- _analyzeDecksDir(dir);
+ analyzeDecksDir(dir);
} else if ("gauntlet".equalsIgnoreCase(dirname)) {
- _analyzeGauntletDataDir(dir);
+ analyzeGauntletDataDir(dir);
} else if ("layouts".equalsIgnoreCase(dirname)) {
- _analyzeLayoutsDir(dir);
+ analyzeLayoutsDir(dir);
} else if ("pics".equalsIgnoreCase(dirname)) {
- _analyzeCardPicsDir(dir);
+ analyzeCardPicsDir(dir);
} else if ("pics_product".equalsIgnoreCase(dirname)) {
- _analyzeProductPicsDir(dir);
+ analyzeProductPicsDir(dir);
} else if ("preferences".equalsIgnoreCase(dirname)) {
- _analyzePreferencesDir(dir);
+ analyzePreferencesDir(dir);
} else if ("quest".equalsIgnoreCase(dirname)) {
- _analyzeQuestDir(dir);
+ analyzeQuestDir(dir);
} else {
return false;
}
@@ -162,74 +160,78 @@ public class ImportSourceAnalyzer {
// decks
//
- private void _analyzeDecksDir(final File root) {
- _analyzeDir(root, new _Analyzer() {
- @Override void onFile(final File file) {
+ private void analyzeDecksDir(final File root) {
+ analyzeDir(root, new Analyzer() {
+ @Override
+ void onFile(final File file) {
// we don't really expect any files in here, but if we find a .dck file, add it to the unknown list
final String filename = file.getName();
if (StringUtils.endsWithIgnoreCase(filename, ".dck")) {
- final File targetFile = new File(_lcaseExt(filename));
- _cb.addOp(OpType.UNKNOWN_DECK, file, targetFile);
+ final File targetFile = new File(lcaseExt(filename));
+ cb.addOp(OpType.UNKNOWN_DECK, file, targetFile);
}
}
- @Override boolean onDir(final File dir) {
+ @Override
+ boolean onDir(final File dir) {
final String dirname = dir.getName();
if ("constructed".equalsIgnoreCase(dirname)) {
- _analyzeConstructedDeckDir(dir);
+ analyzeConstructedDeckDir(dir);
} else if ("cube".equalsIgnoreCase(dirname)) {
return false;
} else if ("draft".equalsIgnoreCase(dirname)) {
- _analyzeDraftDeckDir(dir);
+ analyzeDraftDeckDir(dir);
} else if ("plane".equalsIgnoreCase(dirname) || "planar".equalsIgnoreCase(dirname)) {
- _analyzePlanarDeckDir(dir);
+ analyzePlanarDeckDir(dir);
} else if ("scheme".equalsIgnoreCase(dirname)) {
- _analyzeSchemeDeckDir(dir);
+ analyzeSchemeDeckDir(dir);
} else if ("sealed".equalsIgnoreCase(dirname)) {
- _analyzeSealedDeckDir(dir);
+ analyzeSealedDeckDir(dir);
} else {
- _analyzeKnownDeckDir(dir, null, OpType.UNKNOWN_DECK);
+ analyzeKnownDeckDir(dir, null, OpType.UNKNOWN_DECK);
}
return true;
}
});
}
- private void _analyzeConstructedDeckDir(final File root) {
- _analyzeKnownDeckDir(root, ForgeConstants.DECK_CONSTRUCTED_DIR, OpType.CONSTRUCTED_DECK);
+ private void analyzeConstructedDeckDir(final File root) {
+ analyzeKnownDeckDir(root, ForgeConstants.DECK_CONSTRUCTED_DIR, OpType.CONSTRUCTED_DECK);
}
- private void _analyzeDraftDeckDir(final File root) {
- _analyzeKnownDeckDir(root, ForgeConstants.DECK_DRAFT_DIR, OpType.DRAFT_DECK);
+ private void analyzeDraftDeckDir(final File root) {
+ analyzeKnownDeckDir(root, ForgeConstants.DECK_DRAFT_DIR, OpType.DRAFT_DECK);
}
- private void _analyzePlanarDeckDir(final File root) {
- _analyzeKnownDeckDir(root, ForgeConstants.DECK_PLANE_DIR, OpType.PLANAR_DECK);
+ private void analyzePlanarDeckDir(final File root) {
+ analyzeKnownDeckDir(root, ForgeConstants.DECK_PLANE_DIR, OpType.PLANAR_DECK);
}
- private void _analyzeSchemeDeckDir(final File root) {
- _analyzeKnownDeckDir(root, ForgeConstants.DECK_SCHEME_DIR, OpType.SCHEME_DECK);
+ private void analyzeSchemeDeckDir(final File root) {
+ analyzeKnownDeckDir(root, ForgeConstants.DECK_SCHEME_DIR, OpType.SCHEME_DECK);
}
- private void _analyzeSealedDeckDir(final File root) {
- _analyzeKnownDeckDir(root, ForgeConstants.DECK_SEALED_DIR, OpType.SEALED_DECK);
+ private void analyzeSealedDeckDir(final File root) {
+ analyzeKnownDeckDir(root, ForgeConstants.DECK_SEALED_DIR, OpType.SEALED_DECK);
}
- private void _analyzeKnownDeckDir(final File root, final String targetDir, final OpType opType) {
- _analyzeDir(root, new _Analyzer() {
- @Override void onFile(final File file) {
+ private void analyzeKnownDeckDir(final File root, final String targetDir, final OpType opType) {
+ analyzeDir(root, new Analyzer() {
+ @Override
+ void onFile(final File file) {
final String filename = file.getName();
if (StringUtils.endsWithIgnoreCase(filename, ".dck")) {
- final File targetFile = new File(targetDir, _lcaseExt(filename));
+ final File targetFile = new File(targetDir, lcaseExt(filename));
if (!file.equals(targetFile)) {
- _cb.addOp(opType, file, targetFile);
+ cb.addOp(opType, file, targetFile);
}
}
}
- @Override boolean onDir(final File dir) {
+ @Override
+ boolean onDir(final File dir) {
// if there's a dir beneath a known directory, assume the same kind of decks are in there
- _analyzeKnownDeckDir(dir, targetDir, opType);
+ analyzeKnownDeckDir(dir, targetDir, opType);
return true;
}
});
@@ -239,15 +241,16 @@ public class ImportSourceAnalyzer {
// gauntlet
//
- private void _analyzeGauntletDataDir(final File root) {
- _analyzeDir(root, new _Analyzer() {
- @Override void onFile(final File file) {
+ private void analyzeGauntletDataDir(final File root) {
+ analyzeDir(root, new Analyzer() {
+ @Override
+ void onFile(final File file) {
// find *.dat files, but exclude LOCKED_*
final String filename = file.getName();
if (StringUtils.endsWithIgnoreCase(filename, ".dat") && !filename.startsWith("LOCKED_")) {
- final File targetFile = new File(ForgeConstants.GAUNTLET_DIR.userPrefLoc, _lcaseExt(filename));
+ final File targetFile = new File(ForgeConstants.GAUNTLET_DIR.userPrefLoc, lcaseExt(filename));
if (!file.equals(targetFile)) {
- _cb.addOp(OpType.GAUNTLET_DATA, file, targetFile);
+ cb.addOp(OpType.GAUNTLET_DATA, file, targetFile);
}
}
}
@@ -258,15 +261,16 @@ public class ImportSourceAnalyzer {
// layouts
//
- private void _analyzeLayoutsDir(final File root) {
- _analyzeDir(root, new _Analyzer() {
- @Override void onFile(final File file) {
+ private void analyzeLayoutsDir(final File root) {
+ analyzeDir(root, new Analyzer() {
+ @Override
+ void onFile(final File file) {
// find *_preferred.xml files
final String filename = file.getName();
if (StringUtils.endsWithIgnoreCase(filename, "_preferred.xml")) {
final File targetFile = new File(ForgeConstants.USER_PREFS_DIR,
file.getName().toLowerCase(Locale.ENGLISH).replace("_preferred", ""));
- _cb.addOp(OpType.PREFERENCE_FILE, file, targetFile);
+ cb.addOp(OpType.PREFERENCE_FILE, file, targetFile);
}
}
});
@@ -276,8 +280,8 @@ public class ImportSourceAnalyzer {
// default card pics
//
- private static String _oldCleanString(final String in) {
- final StringBuffer out = new StringBuffer();
+ private static String oldCleanString(final String in) {
+ final StringBuilder out = new StringBuilder();
for (int i = 0; i < in.length(); i++) {
final char c = in.charAt(i);
if ((c == ' ') || (c == '-')) {
@@ -292,7 +296,7 @@ public class ImportSourceAnalyzer {
return out.toString().toLowerCase();
}
- private void _addDefaultPicNames(final PaperCard c, final boolean backFace) {
+ private void addDefaultPicNames(final PaperCard c, final boolean backFace) {
final CardRules card = c.getRules();
final String urls = card.getPictureUrl(backFace);
if (StringUtils.isEmpty(urls)) { return; }
@@ -304,59 +308,62 @@ public class ImportSourceAnalyzer {
final String filenameBase = ImageUtil.getImageKey(c, backFace, false);
final String filename = filenameBase + ".jpg";
- final boolean alreadyHadIt = null != _defaultPicNames.put(filename, filename);
+ final boolean alreadyHadIt = null != defaultPicNames.put(filename, filename);
if ( alreadyHadIt ) {
return;
}
// Do you shift artIndex by one here?
final String newLastSymbol = 0 == c.getArtIndex() ? "" : String.valueOf(c.getArtIndex() /* + 1 */);
- final String oldFilename = _oldCleanString(filenameBase.replaceAll("[0-9]?(\\.full)?$", "")) + newLastSymbol + ".jpg";
+ final String oldFilename = oldCleanString(filenameBase.replaceAll("[0-9]?(\\.full)?$", "")) + newLastSymbol + ".jpg";
//if ( numPics > 1 )
//System.out.printf("Will move %s -> %s%n", oldFilename, filename);
- _defaultPicOldNameToCurrentName.put(oldFilename, filename);
+ defaultPicOldNameToCurrentName.put(oldFilename, filename);
}
- private Map _defaultPicNames;
- private Map _defaultPicOldNameToCurrentName;
- private void _analyzeCardPicsDir(final File root) {
- if (null == _defaultPicNames) {
- _defaultPicNames = new TreeMap(String.CASE_INSENSITIVE_ORDER);
- _defaultPicOldNameToCurrentName = new TreeMap(String.CASE_INSENSITIVE_ORDER);
+ private Map defaultPicNames;
+ private Map defaultPicOldNameToCurrentName;
+ private void analyzeCardPicsDir(final File root) {
+ if (null == defaultPicNames) {
+ defaultPicNames = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
+ defaultPicOldNameToCurrentName = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
for (final PaperCard c : FModel.getMagicDb().getCommonCards().getAllCards()) {
- _addDefaultPicNames(c, false);
+ addDefaultPicNames(c, false);
if (ImageUtil.hasBackFacePicture(c)) {
- _addDefaultPicNames(c, true);
+ addDefaultPicNames(c, true);
}
}
for (final PaperCard c : FModel.getMagicDb().getVariantCards().getAllCards()) {
- _addDefaultPicNames(c, false);
+ addDefaultPicNames(c, false);
// variants never have backfaces
}
}
- _analyzeListedDir(root, ForgeConstants.CACHE_CARD_PICS_DIR, new _ListedAnalyzer() {
- @Override public String map(final String filename) {
- if (_defaultPicOldNameToCurrentName.containsKey(filename)) {
- return _defaultPicOldNameToCurrentName.get(filename);
+ analyzeListedDir(root, ForgeConstants.CACHE_CARD_PICS_DIR, new ListedAnalyzer() {
+ @Override
+ public String map(final String filename) {
+ if (defaultPicOldNameToCurrentName.containsKey(filename)) {
+ return defaultPicOldNameToCurrentName.get(filename);
}
- return _defaultPicNames.get(filename);
+ return defaultPicNames.get(filename);
}
- @Override public OpType getOpType(final String filename) {
+ @Override
+ public OpType getOpType(final String filename) {
return OpType.DEFAULT_CARD_PIC;
}
- @Override boolean onDir(final File dir) {
+ @Override
+ boolean onDir(final File dir) {
if ("icons".equalsIgnoreCase(dir.getName())) {
- _analyzeIconsPicsDir(dir);
+ analyzeIconsPicsDir(dir);
} else if ("tokens".equalsIgnoreCase(dir.getName())) {
- _analyzeTokenPicsDir(dir);
+ analyzeTokenPicsDir(dir);
} else {
- _analyzeCardPicsSetDir(dir);
+ analyzeCardPicsSetDir(dir);
}
return true;
}
@@ -367,7 +374,7 @@ public class ImportSourceAnalyzer {
// set card pics
//
- private static void _addSetCards(final Map cardFileNames, final Iterable library, final Predicate filter) {
+ private static void addSetCards(final Map cardFileNames, final Iterable library, final Predicate filter) {
for (final PaperCard c : Iterables.filter(library, filter)) {
String filename = ImageUtil.getImageKey(c, false, true) + ".jpg";
cardFileNames.put(filename, filename);
@@ -378,21 +385,21 @@ public class ImportSourceAnalyzer {
}
}
- Map> _cardFileNamesBySet;
- Map _nameUpdates;
- private void _analyzeCardPicsSetDir(final File root) {
- if (null == _cardFileNamesBySet) {
- _cardFileNamesBySet = new TreeMap>(String.CASE_INSENSITIVE_ORDER);
+ Map> cardFileNamesBySet;
+ Map nameUpdates;
+ private void analyzeCardPicsSetDir(final File root) {
+ if (null == cardFileNamesBySet) {
+ cardFileNamesBySet = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
for (final CardEdition ce : FModel.getMagicDb().getEditions()) {
- final Map cardFileNames = new TreeMap(String.CASE_INSENSITIVE_ORDER);
+ final Map cardFileNames = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
final Predicate filter = IPaperCard.Predicates.printedInSet(ce.getCode());
- _addSetCards(cardFileNames, FModel.getMagicDb().getCommonCards().getAllCards(), filter);
- _addSetCards(cardFileNames, FModel.getMagicDb().getVariantCards().getAllCards(), filter);
- _cardFileNamesBySet.put(ce.getCode2(), cardFileNames);
+ addSetCards(cardFileNames, FModel.getMagicDb().getCommonCards().getAllCards(), filter);
+ addSetCards(cardFileNames, FModel.getMagicDb().getVariantCards().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);
+ nameUpdates = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
final Predicate predPlanes = new Predicate() {
@Override
public boolean apply(final PaperCard arg0) {
@@ -402,10 +409,10 @@ public class ImportSourceAnalyzer {
for (final PaperCard c : Iterables.filter(FModel.getMagicDb().getVariantCards().getAllCards(), predPlanes)) {
String baseName = ImageUtil.getImageKey(c,false, true);
- _nameUpdates.put(baseName + ".full.jpg", baseName + ".jpg");
+ nameUpdates.put(baseName + ".full.jpg", baseName + ".jpg");
if (ImageUtil.hasBackFacePicture(c)) {
baseName = ImageUtil.getImageKey(c, true, true);
- _nameUpdates.put(baseName + ".full.jpg", baseName + ".jpg");
+ nameUpdates.put(baseName + ".full.jpg", baseName + ".jpg");
}
}
}
@@ -415,17 +422,18 @@ public class ImportSourceAnalyzer {
final CardEdition edition = editions.get(editionCode);
if (null == edition) {
// not a valid set name, skip
- _numFilesAnalyzed += _countFiles(root);
+ numFilesAnalyzed += countFiles(root);
return;
}
final String editionCode2 = edition.getCode2();
- final Map validFilenames = _cardFileNamesBySet.get(editionCode2);
- _analyzeListedDir(root, ForgeConstants.CACHE_CARD_PICS_DIR, new _ListedAnalyzer() {
- @Override public String map(String filename) {
+ final Map validFilenames = cardFileNamesBySet.get(editionCode2);
+ analyzeListedDir(root, ForgeConstants.CACHE_CARD_PICS_DIR, new ListedAnalyzer() {
+ @Override
+ public String map(String filename) {
filename = editionCode2 + "/" + filename;
- if (_nameUpdates.containsKey(filename)) {
- filename = _nameUpdates.get(filename);
+ if (nameUpdates.containsKey(filename)) {
+ filename = nameUpdates.get(filename);
}
if (validFilenames.containsKey(filename)) {
return validFilenames.get(filename);
@@ -435,7 +443,9 @@ public class ImportSourceAnalyzer {
}
return null;
}
- @Override public OpType getOpType(final String filename) {
+
+ @Override
+ public OpType getOpType(final String filename) {
return validFilenames.containsKey(filename) ? OpType.SET_CARD_PIC : OpType.POSSIBLE_SET_CARD_PIC;
}
});
@@ -445,65 +455,77 @@ public class ImportSourceAnalyzer {
// other image dirs
//
- Map _iconFileNames;
- private void _analyzeIconsPicsDir(final File root) {
- if (null == _iconFileNames) {
- _iconFileNames = new TreeMap(String.CASE_INSENSITIVE_ORDER);
+ Map iconFileNames;
+ private void analyzeIconsPicsDir(final File root) {
+ if (null == iconFileNames) {
+ iconFileNames = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
for (final Pair nameurl : FileUtil.readNameUrlFile(ForgeConstants.IMAGE_LIST_QUEST_OPPONENT_ICONS_FILE)) {
- _iconFileNames.put(nameurl.getLeft(), nameurl.getLeft());
- }
- for (final Pair nameurl : FileUtil.readNameUrlFile(ForgeConstants.IMAGE_LIST_QUEST_PET_SHOP_ICONS_FILE)) {
- _iconFileNames.put(nameurl.getLeft(), nameurl.getLeft());
+ iconFileNames.put(nameurl.getLeft(), nameurl.getLeft());
}
}
- _analyzeListedDir(root, ForgeConstants.CACHE_ICON_PICS_DIR, new _ListedAnalyzer() {
- @Override public String map(final String filename) { return _iconFileNames.containsKey(filename) ? _iconFileNames.get(filename) : null; }
- @Override public OpType getOpType(final String filename) { return OpType.QUEST_PIC; }
+ analyzeListedDir(root, ForgeConstants.CACHE_ICON_PICS_DIR, new ListedAnalyzer() {
+ @Override
+ public String map(final String filename) {
+ return iconFileNames.containsKey(filename) ? iconFileNames.get(filename) : null;
+ }
+
+ @Override
+ public OpType getOpType(final String filename) {
+ return OpType.QUEST_PIC;
+ }
});
}
- Map _tokenFileNames;
- Map _questTokenFileNames;
- private void _analyzeTokenPicsDir(final File root) {
- if (null == _tokenFileNames) {
- _tokenFileNames = new TreeMap(String.CASE_INSENSITIVE_ORDER);
- _questTokenFileNames = new TreeMap(String.CASE_INSENSITIVE_ORDER);
+ Map tokenFileNames;
+ Map questTokenFileNames;
+ private void analyzeTokenPicsDir(final File root) {
+ if (null == tokenFileNames) {
+ tokenFileNames = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
+ questTokenFileNames = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
for (final Pair nameurl : FileUtil.readNameUrlFile(ForgeConstants.IMAGE_LIST_TOKENS_FILE)) {
- _tokenFileNames.put(nameurl.getLeft(), nameurl.getLeft());
+ tokenFileNames.put(nameurl.getLeft(), nameurl.getLeft());
}
for (final Pair nameurl : FileUtil.readNameUrlFile(ForgeConstants.IMAGE_LIST_QUEST_TOKENS_FILE)) {
- _questTokenFileNames.put(nameurl.getLeft(), nameurl.getLeft());
+ questTokenFileNames.put(nameurl.getLeft(), nameurl.getLeft());
}
}
- _analyzeListedDir(root, ForgeConstants.CACHE_TOKEN_PICS_DIR, new _ListedAnalyzer() {
- @Override public String map(final String filename) {
- if (_questTokenFileNames.containsKey(filename)) { return _questTokenFileNames.get(filename); }
- if (_tokenFileNames.containsKey(filename)) { return _tokenFileNames.get(filename); }
+ analyzeListedDir(root, ForgeConstants.CACHE_TOKEN_PICS_DIR, new ListedAnalyzer() {
+ @Override
+ public String map(final String filename) {
+ if (questTokenFileNames.containsKey(filename)) {
+ return questTokenFileNames.get(filename);
+ }
+ if (tokenFileNames.containsKey(filename)) {
+ return tokenFileNames.get(filename);
+ }
return null;
}
- @Override public OpType getOpType(final String filename) {
- return _questTokenFileNames.containsKey(filename) ? OpType.QUEST_PIC : OpType.TOKEN_PIC;
+
+ @Override
+ public OpType getOpType(final String filename) {
+ return questTokenFileNames.containsKey(filename) ? OpType.QUEST_PIC : OpType.TOKEN_PIC;
}
});
}
- private void _analyzeProductPicsDir(final File root) {
+ private void analyzeProductPicsDir(final File root) {
// we don't care about the files in the root dir -- the new booster files are .png, not the current .jpg ones
- _analyzeDir(root, new _Analyzer() {
- @Override boolean onDir(final File dir) {
+ analyzeDir(root, new Analyzer() {
+ @Override
+ boolean onDir(final File dir) {
final String dirName = dir.getName();
if ("booster".equalsIgnoreCase(dirName)) {
- _analyzeSimpleListedDir(dir, ForgeConstants.IMAGE_LIST_QUEST_BOOSTERS_FILE, ForgeConstants.CACHE_BOOSTER_PICS_DIR, OpType.QUEST_PIC);
+ analyzeSimpleListedDir(dir, ForgeConstants.IMAGE_LIST_QUEST_BOOSTERS_FILE, ForgeConstants.CACHE_BOOSTER_PICS_DIR, OpType.QUEST_PIC);
} else if ("fatpacks".equalsIgnoreCase(dirName)) {
- _analyzeSimpleListedDir(dir, ForgeConstants.IMAGE_LIST_QUEST_FATPACKS_FILE, ForgeConstants.CACHE_FATPACK_PICS_DIR, OpType.QUEST_PIC);
+ analyzeSimpleListedDir(dir, ForgeConstants.IMAGE_LIST_QUEST_FATPACKS_FILE, ForgeConstants.CACHE_FATPACK_PICS_DIR, OpType.QUEST_PIC);
} else if ("boosterboxes".equalsIgnoreCase(dirName)) {
- _analyzeSimpleListedDir(dir, ForgeConstants.IMAGE_LIST_QUEST_BOOSTERBOXES_FILE, ForgeConstants.CACHE_BOOSTERBOX_PICS_DIR, OpType.QUEST_PIC);
+ analyzeSimpleListedDir(dir, ForgeConstants.IMAGE_LIST_QUEST_BOOSTERBOXES_FILE, ForgeConstants.CACHE_BOOSTERBOX_PICS_DIR, OpType.QUEST_PIC);
} else if ("precons".equalsIgnoreCase(dirName)) {
- _analyzeSimpleListedDir(dir, ForgeConstants.IMAGE_LIST_QUEST_PRECONS_FILE, ForgeConstants.CACHE_PRECON_PICS_DIR, OpType.QUEST_PIC);
+ analyzeSimpleListedDir(dir, ForgeConstants.IMAGE_LIST_QUEST_PRECONS_FILE, ForgeConstants.CACHE_PRECON_PICS_DIR, OpType.QUEST_PIC);
} else if ("tournamentpacks".equalsIgnoreCase(dirName)) {
- _analyzeSimpleListedDir(dir, ForgeConstants.IMAGE_LIST_QUEST_TOURNAMENTPACKS_FILE, ForgeConstants.CACHE_TOURNAMENTPACK_PICS_DIR, OpType.QUEST_PIC);
+ analyzeSimpleListedDir(dir, ForgeConstants.IMAGE_LIST_QUEST_TOURNAMENTPACKS_FILE, ForgeConstants.CACHE_TOURNAMENTPACK_PICS_DIR, OpType.QUEST_PIC);
} else {
return false;
}
@@ -516,14 +538,15 @@ public class ImportSourceAnalyzer {
// preferences
//
- private void _analyzePreferencesDir(final File root) {
- _analyzeDir(root, new _Analyzer() {
- @Override void onFile(final File file) {
+ private void analyzePreferencesDir(final File root) {
+ analyzeDir(root, new Analyzer() {
+ @Override
+ void onFile(final File file) {
final String filename = file.getName();
if ("editor.preferences".equalsIgnoreCase(filename) || "forge.preferences".equalsIgnoreCase(filename)) {
final File targetFile = new File(ForgeConstants.USER_PREFS_DIR, filename.toLowerCase(Locale.ENGLISH));
if (!file.equals(targetFile)) {
- _cb.addOp(OpType.PREFERENCE_FILE, file, targetFile);
+ cb.addOp(OpType.PREFERENCE_FILE, file, targetFile);
}
}
}
@@ -534,20 +557,23 @@ public class ImportSourceAnalyzer {
// quest data
//
- private void _analyzeQuestDir(final File root) {
- _analyzeDir(root, new _Analyzer() {
- @Override void onFile(final File file) {
+ private void analyzeQuestDir(final File root) {
+ analyzeDir(root, new Analyzer() {
+ @Override
+ void onFile(final File file) {
final String filename = file.getName();
if ("all-prices.txt".equalsIgnoreCase(filename)) {
final File targetFile = new File(ForgeConstants.DB_DIR, filename.toLowerCase(Locale.ENGLISH));
if (!file.equals(targetFile)) {
- _cb.addOp(OpType.DB_FILE, file, targetFile);
+ cb.addOp(OpType.DB_FILE, file, targetFile);
}
}
}
- @Override boolean onDir(final File dir) {
+
+ @Override
+ boolean onDir(final File dir) {
if ("data".equalsIgnoreCase(dir.getName())) {
- _analyzeQuestDataDir(dir);
+ analyzeQuestDataDir(dir);
return true;
}
return false;
@@ -555,14 +581,15 @@ public class ImportSourceAnalyzer {
});
}
- private void _analyzeQuestDataDir(final File root) {
- _analyzeDir(root, new _Analyzer() {
- @Override void onFile(final File file) {
+ private void analyzeQuestDataDir(final File root) {
+ analyzeDir(root, new Analyzer() {
+ @Override
+ void onFile(final File file) {
final String filename = file.getName();
if (StringUtils.endsWithIgnoreCase(filename, ".dat")) {
- final File targetFile = new File(ForgeConstants.QUEST_SAVE_DIR, _lcaseExt(filename));
+ final File targetFile = new File(ForgeConstants.QUEST_SAVE_DIR, lcaseExt(filename));
if (!file.equals(targetFile)) {
- _cb.addOp(OpType.QUEST_DATA, file, targetFile);
+ cb.addOp(OpType.QUEST_DATA, file, targetFile);
}
}
}
@@ -573,47 +600,56 @@ public class ImportSourceAnalyzer {
// utility functions
//
- private class _Analyzer {
+ private class Analyzer {
void onFile(final File file) { }
// returns whether the directory has been handled
boolean onDir(final File dir) { return false; }
}
- private void _analyzeDir(final File root, final _Analyzer analyzer) {
- for (final File file : root.listFiles()) {
- if (_cb.checkCancel()) { return; }
+ private void analyzeDir(final File root, final Analyzer analyzer) {
+ File[] files = root.listFiles();
+ assert files != null;
+ for (final File file : files) {
+ if (cb.checkCancel()) { return; }
if (file.isFile()) {
- ++_numFilesAnalyzed;
+ ++numFilesAnalyzed;
analyzer.onFile(file);
} else if (file.isDirectory()) {
if (!analyzer.onDir(file)) {
- _numFilesAnalyzed += _countFiles(file);
+ numFilesAnalyzed += countFiles(file);
}
}
}
}
- private final Map> _fileNameDb = new HashMap>();
- private void _analyzeSimpleListedDir(final File root, final String listFile, final String targetDir, final OpType opType) {
- if (!_fileNameDb.containsKey(listFile)) {
- final Map fileNames = new TreeMap(String.CASE_INSENSITIVE_ORDER);
+ private final Map> fileNameDb = new HashMap<>();
+ private void analyzeSimpleListedDir(final File root, final String listFile, final String targetDir, final OpType opType) {
+ if (!fileNameDb.containsKey(listFile)) {
+ final Map fileNames = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
for (final 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);
+ fileNameDb.put(listFile, fileNames);
}
- final Map fileDb = _fileNameDb.get(listFile);
- _analyzeListedDir(root, targetDir, new _ListedAnalyzer() {
- @Override public String map(final String filename) { return fileDb.containsKey(filename) ? fileDb.get(filename) : null; }
- @Override public OpType getOpType(final String filename) { return opType; }
+ final Map fileDb = fileNameDb.get(listFile);
+ analyzeListedDir(root, targetDir, new ListedAnalyzer() {
+ @Override
+ public String map(final String filename) {
+ return fileDb.containsKey(filename) ? fileDb.get(filename) : null;
+ }
+
+ @Override
+ public OpType getOpType(final String filename) {
+ return opType;
+ }
});
}
- private abstract class _ListedAnalyzer {
+ private abstract class ListedAnalyzer {
abstract String map(String filename);
abstract OpType getOpType(String filename);
@@ -621,37 +657,43 @@ public class ImportSourceAnalyzer {
boolean onDir(final File dir) { return false; }
}
- private void _analyzeListedDir(final File root, final String targetDir, final _ListedAnalyzer listedAnalyzer) {
- _analyzeDir(root, new _Analyzer() {
- @Override void onFile(final File file) {
+ private void analyzeListedDir(final File root, final String targetDir, final ListedAnalyzer listedAnalyzer) {
+ analyzeDir(root, new Analyzer() {
+ @Override
+ void onFile(final File file) {
final String filename = listedAnalyzer.map(file.getName());
if (null != filename) {
final File targetFile = new File(targetDir, filename);
if (!file.equals(targetFile)) {
- _cb.addOp(listedAnalyzer.getOpType(filename), file, targetFile);
+ cb.addOp(listedAnalyzer.getOpType(filename), file, targetFile);
}
}
}
- @Override boolean onDir(final File dir) { return listedAnalyzer.onDir(dir); }
+ @Override
+ boolean onDir(final File dir) {
+ return listedAnalyzer.onDir(dir);
+ }
});
}
- private int _countFiles(final File root) {
+ private int countFiles(final File root) {
int count = 0;
- for (final File file : root.listFiles()) {
- if (_cb.checkCancel()) { return 0; }
+ File[] files = root.listFiles();
+ assert files != null;
+ for (final File file : files) {
+ if (cb.checkCancel()) { return 0; }
if (file.isFile()) {
++count;
} else if (file.isDirectory()) {
- count += _countFiles(file);
+ count += countFiles(file);
}
}
return count;
}
- private static String _lcaseExt(final String filename) {
+ private static String lcaseExt(final String filename) {
final int lastDotIdx = filename.lastIndexOf('.');
if (0 > lastDotIdx) {
return filename;
diff --git a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CEditorDraftingProcess.java b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CEditorDraftingProcess.java
index 08dbb5591c3..c57b98249f9 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CEditorDraftingProcess.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CEditorDraftingProcess.java
@@ -6,12 +6,12 @@
* 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 .
*/
@@ -45,9 +45,9 @@ import java.util.Map.Entry;
/**
* Updates the deck editor UI as necessary draft selection mode.
- *
+ *
*
(C at beginning of class name denotes a control class.)
- *
+ *
* @author Forge
* @version $Id: CEditorDraftingProcess.java 24872 2014-02-17 07:35:47Z drdev $
*/
@@ -84,7 +84,7 @@ public class CEditorDraftingProcess extends ACEditorBase {
/**
* Show GuiBase.getInterface().
- *
+ *
* @param inBoosterDraft
* the in_booster draft
*/
@@ -110,7 +110,6 @@ public class CEditorDraftingProcess extends ACEditorBase {
this.showChoices(this.boosterDraft.nextChoice());
}
else {
- this.boosterDraft.finishedDrafting();
this.saveDraft();
}
}
@@ -136,9 +135,9 @@ public class CEditorDraftingProcess extends ACEditorBase {
*
* showChoices.
*
- *
+ *
* @param list
- * a {@link forge.CardList} object.
+ * a {@link ItemPool} object.
*/
private void showChoices(final ItemPool list) {
int packNumber = ((BoosterDraft) boosterDraft).getCurrentBoosterIndex() + 1;
@@ -151,7 +150,7 @@ public class CEditorDraftingProcess extends ACEditorBase {
*
* getPlayersDeck.
*
- *
+ *
* @return a {@link forge.deck.Deck} object.
*/
private Deck getPlayersDeck() {
@@ -194,7 +193,7 @@ public class CEditorDraftingProcess extends ACEditorBase {
// Cancel button will be null; OK will return string.
// Must check for null value first, then string length.
// Recurse, if either null or empty string.
- if (s == null || s.length() == 0) {
+ if (s == null || s.isEmpty()) {
saveDraft();
return;
}
@@ -241,7 +240,7 @@ public class CEditorDraftingProcess extends ACEditorBase {
/*
* (non-Javadoc)
- *
+ *
* @see forge.gui.deckeditor.ACEditorBase#getController()
*/
@Override
@@ -251,7 +250,7 @@ public class CEditorDraftingProcess extends ACEditorBase {
/*
* (non-Javadoc)
- *
+ *
* @see forge.gui.deckeditor.ACEditorBase#updateView()
*/
@Override
@@ -260,7 +259,7 @@ public class CEditorDraftingProcess extends ACEditorBase {
/*
* (non-Javadoc)
- *
+ *
* @see forge.gui.deckeditor.ACEditorBase#show(forge.Command)
*/
@Override
diff --git a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CEditorQuestDraftingProcess.java b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CEditorQuestDraftingProcess.java
index 7fb45352065..2d54afbf126 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CEditorQuestDraftingProcess.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/CEditorQuestDraftingProcess.java
@@ -6,21 +6,18 @@
* 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.screens.deckeditor.controllers;
-import java.util.Map.Entry;
-
import com.google.common.collect.ImmutableList;
-
import forge.assets.FSkinProp;
import forge.card.MagicColor;
import forge.deck.Deck;
@@ -48,24 +45,26 @@ import forge.toolbox.FSkin;
import forge.util.ItemPool;
import forge.util.MyRandom;
+import java.util.Map.Entry;
+
/**
* Updates the deck editor UI as necessary draft selection mode.
- *
+ *
*
(C at beginning of class name denotes a control class.)
- *
+ *
* @author Forge
* @version $Id: CEditorDraftingProcess.java 24872 2014-02-17 07:35:47Z drdev $
*/
public class CEditorQuestDraftingProcess extends ACEditorBase {
-
+
private CSubmenuQuestDraft draftQuest;
private QuestController quest;
-
+
public void setDraftQuest(CSubmenuQuestDraft testDraftQuest) {
this.draftQuest = testDraftQuest;
this.quest = FModel.getQuest();
}
-
+
private IBoosterDraft boosterDraft;
private String ccAddLabel = "Add card";
@@ -100,7 +99,7 @@ public class CEditorQuestDraftingProcess extends ACEditorBase
* showChoices.
*
- *
+ *
* @param list
- * a {@link forge.CardList} object.
+ * a {@link ItemPool} object.
*/
private void showChoices(final ItemPool list) {
int packNumber = ((BoosterDraft) boosterDraft).getCurrentBoosterIndex() + 1;
@@ -167,7 +165,7 @@ public class CEditorQuestDraftingProcess extends ACEditorBase
* getPlayersDeck.
*
- *
+ *
* @return a {@link forge.deck.Deck} object.
*/
public Deck getPlayersDeck() {
@@ -217,9 +215,9 @@ public class CEditorQuestDraftingProcess extends ACEditorBase.
*/
@@ -54,6 +54,7 @@ import java.util.Map.Entry;
* @author Forge
* @version $Id: CEditorDraftingProcess.java 24872 2014-02-17 07:35:47Z drdev $
*/
+@SuppressWarnings("FieldCanBeLocal")
public class CEditorWinstonProcess extends ACEditorBase {
private IBoosterDraft boosterDraft;
@@ -202,7 +203,7 @@ public class CEditorWinstonProcess extends ACEditorBase {
// Cancel button will be null; OK will return string.
// Must check for null value first, then string length.
// Recurse, if either null or empty string.
- if (s == null || s.length() == 0) {
+ if (s == null || s.isEmpty()) {
saveDraft();
return;
}
@@ -251,7 +252,7 @@ public class CEditorWinstonProcess extends ACEditorBase {
/*
* (non-Javadoc)
- *
+ *
* @see forge.gui.deckeditor.ACEditorBase#getController()
*/
@Override
@@ -261,7 +262,7 @@ public class CEditorWinstonProcess extends ACEditorBase {
/*
* (non-Javadoc)
- *
+ *
* @see forge.gui.deckeditor.ACEditorBase#updateView()
*/
@Override
@@ -270,7 +271,7 @@ public class CEditorWinstonProcess extends ACEditorBase {
/*
* (non-Javadoc)
- *
+ *
* @see forge.gui.deckeditor.ACEditorBase#show(forge.Command)
*/
@Override
@@ -376,7 +377,6 @@ public class CEditorWinstonProcess extends ACEditorBase {
}
}
// If we get here, there's no choices left. Finish the draft and then save it
- this.boosterDraft.finishedDrafting();
this.saveDraft();
}
diff --git a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/DeckHtmlSerializer.java b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/DeckHtmlSerializer.java
index 8f0a2d4be1b..470554967eb 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/DeckHtmlSerializer.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/deckeditor/controllers/DeckHtmlSerializer.java
@@ -1,16 +1,5 @@
package forge.screens.deckeditor.controllers;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileWriter;
-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.TreeMap;
-
import forge.deck.Deck;
import forge.item.PaperCard;
import forge.properties.ForgeConstants;
@@ -20,6 +9,13 @@ import freemarker.template.DefaultObjectWrapper;
import freemarker.template.Template;
import freemarker.template.TemplateException;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.util.*;
+import java.util.Map.Entry;
+
public class DeckHtmlSerializer {
public static void writeDeckHtml(final Deck d, final File f) {
try {
@@ -40,11 +36,9 @@ public class DeckHtmlSerializer {
* a {@link forge.deck.Deck} object.
* @param out
* a {@link java.io.BufferedWriter} object.
- * @throws java.io.IOException
- * if any.
*/
private static void writeDeckHtml(final Deck d, final BufferedWriter out) {
- Template temp = null;
+ Template temp;
final int cardBorder = 0;
final int height = 319;
final int width = 222;
@@ -68,19 +62,19 @@ public class DeckHtmlSerializer {
temp = cfg.getTemplate("proxy-template.ftl");
/* Create a data-model */
- final Map root = new HashMap();
+ final Map root = new HashMap<>();
root.put("title", d.getName());
- final List list = new ArrayList();
+ 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 ) {
+ for (int i = card.getValue(); i > 0; --i ) {
final PaperCard r = card.getKey();
final String url = ForgeConstants.URL_PIC_DOWNLOAD + ImageUtil.getDownloadUrl(r, false);
list.add(url);
}
}
- final Map map = new TreeMap();
+ final Map map = new TreeMap<>();
for (final Entry entry : d.getMain()) {
map.put(entry.getKey().getName(), entry.getValue());
// System.out.println(entry.getValue() + " " +
@@ -97,9 +91,7 @@ public class DeckHtmlSerializer {
/* Merge data-model with template */
temp.process(root, out);
out.flush();
- } catch (final IOException e) {
- System.out.println(e.toString());
- } catch (final TemplateException e) {
+ } catch (final IOException | TemplateException e) {
System.out.println(e.toString());
}
}
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuPreferences.java b/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuPreferences.java
index 562b0828727..7512cb38629 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuPreferences.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/settings/CSubmenuPreferences.java
@@ -1,18 +1,5 @@
package forge.screens.home.settings;
-import java.awt.Desktop;
-import java.awt.event.ItemEvent;
-import java.awt.event.ItemListener;
-import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
-
-import javax.swing.JCheckBox;
-import javax.swing.SwingUtilities;
-
-import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.lang3.tuple.Pair;
-
import forge.Singletons;
import forge.UiCommand;
import forge.ai.AiProfileUtil;
@@ -31,6 +18,16 @@ import forge.toolbox.FComboBox;
import forge.toolbox.FComboBoxPanel;
import forge.toolbox.FLabel;
import forge.toolbox.FOptionPane;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.tuple.Pair;
+
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.ItemEvent;
+import java.awt.event.ItemListener;
+import java.io.File;
+import java.util.ArrayList;
+import java.util.List;
/**
* Controls the preferences submenu in the home UI.
@@ -46,7 +43,7 @@ public enum CSubmenuPreferences implements ICDoc {
private ForgePreferences prefs;
private boolean updating;
- private final List> lstControls = new ArrayList>();
+ private final List> lstControls = new ArrayList<>();
@Override
public void register() {
@@ -100,7 +97,6 @@ public enum CSubmenuPreferences implements ICDoc {
lstControls.add(Pair.of(view.getCbRemoveSmall(), FPref.DECKGEN_NOSMALL));
lstControls.add(Pair.of(view.getCbRemoveArtifacts(), FPref.DECKGEN_ARTIFACTS));
lstControls.add(Pair.of(view.getCbSingletons(), FPref.DECKGEN_SINGLETONS));
- lstControls.add(Pair.of(view.getCbUploadDraft(), FPref.UI_UPLOAD_DRAFT));
lstControls.add(Pair.of(view.getCbEnableAICheats(), FPref.UI_ENABLE_AI_CHEATS));
lstControls.add(Pair.of(view.getCbDisplayFoil(), FPref.UI_OVERLAY_FOIL_EFFECT));
lstControls.add(Pair.of(view.getCbRandomFoil(), FPref.UI_RANDOM_FOIL));
@@ -285,7 +281,7 @@ public enum CSubmenuPreferences implements ICDoc {
private void initializeCloseActionComboBox() {
final FComboBoxPanel panel = this.view.getCloseActionComboBoxPanel();
- final FComboBox comboBox = new FComboBox(CloseAction.values());
+ final FComboBox comboBox = new FComboBox<>(CloseAction.values());
comboBox.addItemListener(new ItemListener() {
@Override public void itemStateChanged(final ItemEvent e) {
Singletons.getControl().setCloseAction(comboBox.getSelectedItem());
@@ -303,7 +299,7 @@ public enum CSubmenuPreferences implements ICDoc {
}
private FComboBox createComboBox(final E[] items, final ForgePreferences.FPref setting) {
- final FComboBox comboBox = new FComboBox(items);
+ final FComboBox comboBox = new FComboBox<>(items);
addComboBoxListener(comboBox, setting);
return comboBox;
}
diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuPreferences.java b/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuPreferences.java
index 7273476179a..a2f4abf517a 100644
--- a/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuPreferences.java
+++ b/forge-gui-desktop/src/main/java/forge/screens/home/settings/VSubmenuPreferences.java
@@ -1,27 +1,5 @@
package forge.screens.home.settings;
-import java.awt.Color;
-import java.awt.Font;
-import java.awt.event.FocusAdapter;
-import java.awt.event.FocusEvent;
-import java.awt.event.KeyAdapter;
-import java.awt.event.KeyEvent;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.swing.JCheckBox;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.ScrollPaneConstants;
-import javax.swing.SwingConstants;
-
-import net.miginfocom.swing.MigLayout;
-
-import org.apache.commons.lang3.StringUtils;
-
import forge.control.FControl.CloseAction;
import forge.control.KeyboardShortcuts;
import forge.control.KeyboardShortcuts.Shortcut;
@@ -34,13 +12,20 @@ import forge.properties.ForgePreferences.FPref;
import forge.screens.home.EMenuGroup;
import forge.screens.home.IVSubmenu;
import forge.screens.home.VHomeUI;
-import forge.toolbox.FCheckBox;
-import forge.toolbox.FComboBoxPanel;
-import forge.toolbox.FLabel;
-import forge.toolbox.FScrollPane;
-import forge.toolbox.FSkin;
+import forge.toolbox.*;
import forge.toolbox.FSkin.SkinnedLabel;
import forge.toolbox.FSkin.SkinnedTextField;
+import net.miginfocom.swing.MigLayout;
+import org.apache.commons.lang3.StringUtils;
+
+import javax.swing.*;
+import java.awt.*;
+import java.awt.event.FocusAdapter;
+import java.awt.event.FocusEvent;
+import java.awt.event.KeyAdapter;
+import java.awt.event.KeyEvent;
+import java.util.*;
+import java.util.List;
/**
* Assembles Swing components of preferences submenu singleton.
@@ -73,7 +58,6 @@ public enum VSubmenuPreferences implements IVSubmenu {
private final JCheckBox cbRemoveArtifacts = new OptionsCheckBox("Remove Artifacts");
private final JCheckBox cbAnte = new OptionsCheckBox("Play for Ante");
private final JCheckBox cbAnteMatchRarity = new OptionsCheckBox("Match Ante Rarity");
- private final JCheckBox cbUploadDraft = new OptionsCheckBox("Upload Draft Picks");
private final JCheckBox cbEnableAICheats = new OptionsCheckBox("Allow AI Cheating");
private final JCheckBox cbManaBurn = new OptionsCheckBox("Mana Burn");
private final JCheckBox cbManaLostPrompt = new OptionsCheckBox("Prompt Mana Pool Emptying");
@@ -99,17 +83,17 @@ public enum VSubmenuPreferences implements IVSubmenu {
private final JCheckBox cbTokensInSeparateRow = new OptionsCheckBox("Display Tokens in a Separate Row");
private final JCheckBox cbStackCreatures = new OptionsCheckBox("Stack Creatures");
- private final Map shortcutFields = new HashMap();
+ private final Map shortcutFields = new HashMap<>();
// ComboBox items are added in CSubmenuPreferences since this is just the View.
- private final FComboBoxPanel cbpGameLogEntryType = new FComboBoxPanel("Game Log Verbosity:");
- private final FComboBoxPanel cbpCloseAction = new FComboBoxPanel("Close Action:");
- private final FComboBoxPanel cbpAiProfiles = new FComboBoxPanel("AI Personality:");
+ private final FComboBoxPanel cbpGameLogEntryType = new FComboBoxPanel<>("Game Log Verbosity:");
+ private final FComboBoxPanel cbpCloseAction = new FComboBoxPanel<>("Close Action:");
+ private final FComboBoxPanel cbpAiProfiles = new FComboBoxPanel<>("AI Personality:");
/**
* Constructor.
*/
- private VSubmenuPreferences() {
+ VSubmenuPreferences() {
pnlPrefs.setOpaque(false);
pnlPrefs.setLayout(new MigLayout("insets 0, gap 0, wrap 2"));
@@ -153,9 +137,6 @@ public enum VSubmenuPreferences implements IVSubmenu {
pnlPrefs.add(cbAnteMatchRarity, regularConstraints);
pnlPrefs.add(new NoteLabel("Attempts to make antes the same rarity for all players."), regularConstraints);
- pnlPrefs.add(cbUploadDraft, regularConstraints);
- pnlPrefs.add(new NoteLabel("Sends draft picks to Forge servers for analysis, to improve draft AI."), regularConstraints);
-
pnlPrefs.add(cbEnableAICheats, regularConstraints);
pnlPrefs.add(new NoteLabel("Allow the AI to cheat to gain advantage (for personalities that have cheat shuffling options set)."), regularConstraints);
@@ -317,8 +298,8 @@ public enum VSubmenuPreferences implements IVSubmenu {
/** Consolidates checkbox styling in one place. */
@SuppressWarnings("serial")
- private class OptionsCheckBox extends FCheckBox {
- public OptionsCheckBox(final String txt0) {
+ private final class OptionsCheckBox extends FCheckBox {
+ private OptionsCheckBox(final String txt0) {
super(txt0);
this.setFont(FSkin.getBoldFont(12));
}
@@ -326,8 +307,8 @@ public enum VSubmenuPreferences implements IVSubmenu {
/** Consolidates section title label styling in one place. */
@SuppressWarnings("serial")
- private class SectionLabel extends SkinnedLabel {
- public SectionLabel(final String txt0) {
+ private final class SectionLabel extends SkinnedLabel {
+ private SectionLabel(final String txt0) {
super(txt0);
this.setBorder(new FSkin.MatteSkinBorder(0, 0, 1, 0, FSkin.getColor(FSkin.Colors.CLR_BORDERS)));
setHorizontalAlignment(SwingConstants.CENTER);
@@ -338,8 +319,8 @@ public enum VSubmenuPreferences implements IVSubmenu {
/** Consolidates notation label styling in one place. */
@SuppressWarnings("serial")
- private class NoteLabel extends SkinnedLabel {
- public NoteLabel(final String txt0) {
+ private final class NoteLabel extends SkinnedLabel {
+ private NoteLabel(final String txt0) {
super(txt0);
this.setFont(FSkin.getItalicFont(12));
this.setForeground(FSkin.getColor(FSkin.Colors.CLR_TEXT));
@@ -359,7 +340,7 @@ public enum VSubmenuPreferences implements IVSubmenu {
* A JTextField plus a "codeString" property, that stores keycodes for
* the shortcut. Also, an action listener that handles translation of
* keycodes into characters and (dis)assembly of keycode stack.
- *
+ *
* @param shortcut0 Shortcut object
*/
public KeyboardShortcutField(final Shortcut shortcut0) {
@@ -398,7 +379,7 @@ public enum VSubmenuPreferences implements IVSubmenu {
/**
* Gets the code string.
- *
+ *
* @return String
*/
public final String getCodeString() {
@@ -407,7 +388,7 @@ public enum VSubmenuPreferences implements IVSubmenu {
/**
* Sets the code string.
- *
+ *
* @param str0
* The new code string (space delimited)
*/
@@ -418,8 +399,8 @@ public enum VSubmenuPreferences implements IVSubmenu {
this.codeString = str0.trim();
- final List codes = new ArrayList(Arrays.asList(this.codeString.split(" ")));
- final List displayText = new ArrayList();
+ final List codes = new ArrayList<>(Arrays.asList(this.codeString.split(" ")));
+ final List displayText = new ArrayList<>();
for (final String s : codes) {
if (!s.isEmpty()) {
@@ -451,11 +432,6 @@ public enum VSubmenuPreferences implements IVSubmenu {
return cbRemoveArtifacts;
}
- /** @return {@link javax.swing.JCheckBox} */
- public JCheckBox getCbUploadDraft() {
- return cbUploadDraft;
- }
-
/** @return {@link javax.swing.JCheckBox} */
public JCheckBox getCbEnableAICheats() {
return cbEnableAICheats;
@@ -475,7 +451,7 @@ public enum VSubmenuPreferences implements IVSubmenu {
public JCheckBox getCbAnte() {
return cbAnte;
}
-
+
/** @return {@link javax.swing.JCheckBox} */
public JCheckBox getCbAnteMatchRarity() {
return cbAnteMatchRarity;
@@ -579,7 +555,7 @@ public enum VSubmenuPreferences implements IVSubmenu {
public final JCheckBox getCbStackCreatures() {
return cbStackCreatures;
}
-
+
public final JCheckBox getCbManaLostPrompt() {
return cbManaLostPrompt;
}
diff --git a/forge-gui-desktop/src/test/java/forge/BoosterDraftTest.java b/forge-gui-desktop/src/test/java/forge/BoosterDraftTest.java
index 3c3b5c43e48..79344975380 100644
--- a/forge-gui-desktop/src/test/java/forge/BoosterDraftTest.java
+++ b/forge-gui-desktop/src/test/java/forge/BoosterDraftTest.java
@@ -17,7 +17,7 @@ import java.util.List;
*
* BoosterDraftTest class.
*
- *
+ *
* @author Forge
* @version $Id: BoosterDraftTest.java 24769 2014-02-09 13:56:04Z Hellfish $
*/
@@ -31,7 +31,7 @@ public class BoosterDraftTest implements IBoosterDraft {
*
* getDecks.
*
- *
+ *
* @return an array of {@link forge.deck.Deck} objects.
*/
@Override
@@ -44,7 +44,7 @@ public class BoosterDraftTest implements IBoosterDraft {
*
* nextChoice.
*
- *
+ *
* @return a {@link forge.CardList} object.
*/
@Override
@@ -66,7 +66,7 @@ public class BoosterDraftTest implements IBoosterDraft {
*
* hasNextChoice.
*
- *
+ *
* @return a boolean.
*/
@Override
@@ -78,7 +78,7 @@ public class BoosterDraftTest implements IBoosterDraft {
*
* getChosenCards.
*
- *
+ *
* @return a {@link forge.CardList} object.
*/
public List getChosenCards() {
@@ -89,23 +89,13 @@ public class BoosterDraftTest implements IBoosterDraft {
*
* getUnchosenCards.
*
- *
+ *
* @return a {@link forge.CardList} object.
*/
public List getUnchosenCards() {
return null;
}
- /*
- * (non-Javadoc)
- *
- * @see forge.game.limited.IBoosterDraft#finishedDrafting()
- */
- @Override
- public void finishedDrafting() {
-
- }
-
@Override
public boolean isPileDraft() {
return false;
diff --git a/forge-gui-mobile/src/forge/deck/FDeckEditor.java b/forge-gui-mobile/src/forge/deck/FDeckEditor.java
index 0e46be0e550..041b8e2daaf 100644
--- a/forge-gui-mobile/src/forge/deck/FDeckEditor.java
+++ b/forge-gui-mobile/src/forge/deck/FDeckEditor.java
@@ -1,27 +1,14 @@
package forge.deck;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-
-import org.apache.commons.lang3.StringUtils;
-
import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment;
import com.badlogic.gdx.math.Vector2;
import com.google.common.base.Predicates;
import com.google.common.base.Supplier;
import com.google.common.collect.ImmutableList;
-
import forge.Forge;
import forge.Graphics;
import forge.StaticData;
-import forge.assets.FImage;
-import forge.assets.FSkin;
-import forge.assets.FSkinFont;
-import forge.assets.FSkinImage;
-import forge.assets.FTextureRegionImage;
+import forge.assets.*;
import forge.card.CardDb;
import forge.card.CardEdition;
import forge.card.CardPreferences;
@@ -32,8 +19,8 @@ import forge.itemmanager.CardManager;
import forge.itemmanager.ColumnDef;
import forge.itemmanager.ItemColumn;
import forge.itemmanager.ItemManager.ContextMenuBuilder;
-import forge.itemmanager.filters.ItemFilter;
import forge.itemmanager.ItemManagerConfig;
+import forge.itemmanager.filters.ItemFilter;
import forge.limited.BoosterDraft;
import forge.menu.FCheckBoxMenuItem;
import forge.menu.FDropDownMenu;
@@ -45,17 +32,20 @@ import forge.properties.ForgePreferences.FPref;
import forge.quest.data.QuestPreferences.QPref;
import forge.screens.FScreen;
import forge.screens.TabPageScreen;
-import forge.toolbox.FContainer;
-import forge.toolbox.FEvent;
+import forge.toolbox.*;
import forge.toolbox.FEvent.FEventHandler;
import forge.toolbox.FEvent.FEventType;
-import forge.toolbox.FLabel;
-import forge.toolbox.FOptionPane;
-import forge.toolbox.GuiChoose;
import forge.util.Callback;
import forge.util.ItemPool;
import forge.util.Utils;
import forge.util.storage.IStorage;
+import org.apache.commons.lang3.StringUtils;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
public class FDeckEditor extends TabPageScreen {
public static FSkinImage MAIN_DECK_ICON = FSkinImage.DECKLIST;
@@ -291,7 +281,7 @@ public class FDeckEditor extends TabPageScreen {
switch (editorType) {
case Draft:
case Sealed:
- //use most recent edition that all cards in limited pool came before or in
+ //use most recent edition that all cards in limited pool came before or in
defaultLandSet = StaticData.instance().getEditions().getEarliestEditionWithAllCards(deck.getAllCardsInASinglePool());
break;
default:
@@ -1100,7 +1090,7 @@ public class FDeckEditor extends TabPageScreen {
@Override
public void run(Integer result) {
if (result == null || result <= 0) { return; }
-
+
removeCard(card, result);
parentScreen.getSideboardPage().addCard(card, result);
}
@@ -1254,7 +1244,6 @@ public class FDeckEditor extends TabPageScreen {
}
else {
hideTab(); //hide this tab page when finished drafting
- draft.finishedDrafting();
parentScreen.save(null);
}
}
diff --git a/forge-gui-mobile/src/forge/screens/settings/SettingsPage.java b/forge-gui-mobile/src/forge/screens/settings/SettingsPage.java
index ed9f6d168a2..71242d72fd1 100644
--- a/forge-gui-mobile/src/forge/screens/settings/SettingsPage.java
+++ b/forge-gui-mobile/src/forge/screens/settings/SettingsPage.java
@@ -1,10 +1,6 @@
package forge.screens.settings;
-import java.util.ArrayList;
-import java.util.List;
-
import com.badlogic.gdx.graphics.g2d.BitmapFont.HAlignment;
-
import forge.Forge;
import forge.Graphics;
import forge.ai.AiProfileUtil;
@@ -26,6 +22,9 @@ import forge.toolbox.FGroupList;
import forge.toolbox.FList;
import forge.util.Utils;
+import java.util.ArrayList;
+import java.util.List;
+
public class SettingsPage extends TabPage {
private final FGroupList lstSettings = add(new FGroupList());
@@ -71,10 +70,6 @@ public class SettingsPage extends TabPage {
"Hot Seat Mode",
"When starting a game with 2 human players, use single prompt to control both players."),
1);
- lstSettings.addItem(new BooleanSetting(FPref.UI_UPLOAD_DRAFT,
- "Upload Draft Picks",
- "Sends draft picks to Forge servers for analysis, to improve draft AI."),
- 1);
lstSettings.addItem(new BooleanSetting(FPref.UI_ENABLE_AI_CHEATS,
"Allow AI Cheating",
"Allow the AI to cheat to gain advantage (for personalities that have cheat shuffling options set)."),
@@ -379,7 +374,7 @@ public class SettingsPage extends TabPage {
g.drawText(value.label, font, foreColor, x, y, w, h, false, HAlignment.LEFT, false);
value.drawPrefValue(g, font, foreColor, x, y, w, h);
h += SettingsScreen.SETTING_PADDING;
- g.drawText(value.description, SettingsScreen.DESC_FONT, SettingsScreen.DESC_COLOR, x, y + h, w, totalHeight - h + SettingsScreen.getInsets(w), true, HAlignment.LEFT, false);
+ g.drawText(value.description, SettingsScreen.DESC_FONT, SettingsScreen.DESC_COLOR, x, y + h, w, totalHeight - h + SettingsScreen.getInsets(w), true, HAlignment.LEFT, false);
}
}
}
diff --git a/forge-gui/res/cardsfolder/a/a_display_of_my_dark_power.txt b/forge-gui/res/cardsfolder/a/a_display_of_my_dark_power.txt
index 1b5b6dcc6bd..778bcb2bf41 100644
--- a/forge-gui/res/cardsfolder/a/a_display_of_my_dark_power.txt
+++ b/forge-gui/res/cardsfolder/a/a_display_of_my_dark_power.txt
@@ -5,5 +5,5 @@ T:Mode$ SetInMotion | ValidCard$ Card.Self | Execute$ DarkEffect | TriggerZones$
SVar:DarkEffect:AB$ Effect | Cost$ 0 | Name$ Dark Power Scheme | Duration$ UntilYourNextTurn | Triggers$ DarkPower | SVars$ DarkMana
SVar:DarkPower:Mode$ TapsForMana | ValidCard$ Land | Execute$ DarkMana | TriggerZones$ Command | Static$ True | TriggerDescription$ Whenever a player taps a land for mana, that player adds one mana to his or her mana pool of any type that land produced.
SVar:DarkMana:AB$ ManaReflected | Cost$ 0 | ColorOrType$ Type | Valid$ Defined.Triggered | ReflectProperty$ Produced | Defined$ TriggeredPlayer
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/a_display_of_my_dark_power.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/A Display of My Dark Power.full.jpg
Oracle:When you set this scheme in motion, until your next turn, whenever a player taps a land for mana, that player adds one mana to his or her mana pool of any type that land produced.
diff --git a/forge-gui/res/cardsfolder/a/akroma_angel_of_wrath_avatar.txt b/forge-gui/res/cardsfolder/a/akroma_angel_of_wrath_avatar.txt
index 513e9e86f33..44b32e917f0 100644
--- a/forge-gui/res/cardsfolder/a/akroma_angel_of_wrath_avatar.txt
+++ b/forge-gui/res/cardsfolder/a/akroma_angel_of_wrath_avatar.txt
@@ -4,5 +4,5 @@ Types:Vanguard
HandLifeModifier:+1/+7
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | TriggerZones$ Command | ValidCard$ Creature.YouCtrl | Execute$ PumpRandom | TriggerDescription$ Whenever a creature enters the battlefield under your control, it gains two abilities chosen at random from flying, first strike, trample, haste, protection from black, protection from red, and vigilance.
SVar:PumpRandom:AB$ Pump | Cost$ 0 | Defined$ TriggeredCard | Permanent$ True | KW$ Flying & First Strike & Trample & Haste & Protection from black & Protection from red & Vigilance | RandomKeyword$ True | RandomKWNum$ 2
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/akroma_angel_of_wrath_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Akroma, Angel of Wrath Avatar.full.jpg
Oracle:Hand +1, life +7\nWhenever a creature enters the battlefield under your control, it gains two abilities chosen at random from flying, first strike, trample, haste, protection from black, protection from red, and vigilance.
diff --git a/forge-gui/res/cardsfolder/a/all_in_good_time.txt b/forge-gui/res/cardsfolder/a/all_in_good_time.txt
index 4d9c4a86e20..d793887d580 100644
--- a/forge-gui/res/cardsfolder/a/all_in_good_time.txt
+++ b/forge-gui/res/cardsfolder/a/all_in_good_time.txt
@@ -3,5 +3,5 @@ ManaCost:no cost
Types:Scheme
T:Mode$ SetInMotion | ValidCard$ Card.Self | Execute$ GoodTimes | TriggerZones$ Command | TriggerDescription$ When you set this scheme in motion, take an extra turn after this one. Schemes can't be set in motion that turn.
SVar:GoodTimes:AB$ AddTurn | Cost$ 0 | NumTurns$ 1 | NoSchemes$ True
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/all_in_good_time.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/All in Good Time.full.jpg
Oracle:When you set this scheme in motion, take an extra turn after this one. Schemes can't be set in motion that turn.
diff --git a/forge-gui/res/cardsfolder/a/all_shall_smolder_in_my_wake.txt b/forge-gui/res/cardsfolder/a/all_shall_smolder_in_my_wake.txt
index f8e4e363e8b..a8522ce00e2 100644
--- a/forge-gui/res/cardsfolder/a/all_shall_smolder_in_my_wake.txt
+++ b/forge-gui/res/cardsfolder/a/all_shall_smolder_in_my_wake.txt
@@ -5,5 +5,5 @@ T:Mode$ SetInMotion | ValidCard$ Card.Self | Execute$ Ignite | TriggerZones$ Com
SVar:Ignite:AB$ Destroy | Cost$ 0 | TargetMin$ 0 | TargetMax$ 1 | ValidTgts$ Artifact | TgtPrompt$ Select target artifact to destroy | SubAbility$ Burn
SVar:Burn:DB$ Destroy | TargetMin$ 0 | TargetMax$ 1 | ValidTgts$ Enchantment | TgtPrompt$ Select target enchantment to destroy | SubAbility$ Smolder
SVar:Smolder:DB$ Destroy | TargetMin$ 0 | TargetMax$ 1 | ValidTgts$ Land.nonBasic | TgtPrompt$ Select target nonbasic land to destroy
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/all_shall_smolder_in_my_wake.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/All Shall Smolder in My Wake.full.jpg
Oracle:When you set this scheme in motion, destroy up to one target artifact, up to one target enchantment, and up to one target nonbasic land.
diff --git a/forge-gui/res/cardsfolder/a/approach_my_molten_realm.txt b/forge-gui/res/cardsfolder/a/approach_my_molten_realm.txt
index 8c824fe5b28..1c02dd8fcdf 100644
--- a/forge-gui/res/cardsfolder/a/approach_my_molten_realm.txt
+++ b/forge-gui/res/cardsfolder/a/approach_my_molten_realm.txt
@@ -8,5 +8,5 @@ SVar:MoltenRealmCombat:Event$ DamageDone | ActiveZones$ Command | ValidSource$ C
SVar:DmgTimes2:AB$ DealDamage | Cost$ 0 | Defined$ ReplacedTarget | DamageSource$ ReplacedSource | NumDmg$ MoltenX | References$ MoltenX
SVar:DmgTimes2Combat:AB$ DealDamage | Cost$ 0 | CombatDamage$ True | Defined$ ReplacedTarget | DamageSource$ ReplacedSource | NumDmg$ MoltenX | References$ MoltenX
SVar:MoltenX:ReplaceCount$DamageAmount/Twice
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/approach_my_molten_realm.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/Approach My Molten Realm.full.jpg
Oracle:When you set this scheme in motion, until your next turn, if a source would deal damage, it deals double that damage instead.
diff --git a/forge-gui/res/cardsfolder/a/arcanis_the_omnipotent_avatar.txt b/forge-gui/res/cardsfolder/a/arcanis_the_omnipotent_avatar.txt
index 898a729e4fd..72fe79a1b59 100644
--- a/forge-gui/res/cardsfolder/a/arcanis_the_omnipotent_avatar.txt
+++ b/forge-gui/res/cardsfolder/a/arcanis_the_omnipotent_avatar.txt
@@ -5,5 +5,5 @@ HandLifeModifier:+1/-3
A:AB$ Draw | ActivationZone$ Command | Announce$ X | Cost$ XCantBe0 X Return<1/Creature.cmcEQX/creature you control with converted mana cost X> | NumCards$ Y | References$ X,Y | SpellDescription$ Draw a number of cards chosen at random between 0 and X. X can't be 0. | StackDescription$ SpellDescription
SVar:X:Count$xPaid
SVar:Y:Count$Random.0.X
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/arcanis_the_omnipotent_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Arcanis, the Omnipotent Avatar.full.jpg
Oracle:Hand +1, life -3\n{X}, Return a creature you control with converted mana cost X to its owner's hand: Draw a number of cards chosen at random between 0 and X. X can't be 0.
diff --git a/forge-gui/res/cardsfolder/a/arcbound_overseer_avatar.txt b/forge-gui/res/cardsfolder/a/arcbound_overseer_avatar.txt
index 1aee154260c..a1a1cfd8055 100644
--- a/forge-gui/res/cardsfolder/a/arcbound_overseer_avatar.txt
+++ b/forge-gui/res/cardsfolder/a/arcbound_overseer_avatar.txt
@@ -6,5 +6,5 @@ T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Command | Execu
SVar:BuildCounter:AB$ PutCounter | Cost$ 0 | CounterType$ P1P1 | CounterNum$ 1 | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Command | Execute$ ChargeCounter | OptionalDecider$ You | TriggerDescription$ At the beginning of your upkeep, you may put a charge counter on target permanent you control.
SVar:ChargeCounter:AB$ PutCounter | Cost$ 0 | CounterType$ CHARGE | CounterNum$ 1 | ValidTgts$ Permanent.YouCtrl | TgtPrompt$ Select target permanent you control
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/arcbound_overseer_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Arcbound Overseer Avatar.full.jpg
Oracle:Hand +0, life +3\nAt the beginning of your upkeep, you may put a +1/+1 counter on target creature you control.\nAt the beginning of your upkeep, you may put a charge counter on target permanent you control.
diff --git a/forge-gui/res/cardsfolder/a/ashling_the_extinguisher_avatar.txt b/forge-gui/res/cardsfolder/a/ashling_the_extinguisher_avatar.txt
index 40596aa7ec8..bfd3d2d18bb 100644
--- a/forge-gui/res/cardsfolder/a/ashling_the_extinguisher_avatar.txt
+++ b/forge-gui/res/cardsfolder/a/ashling_the_extinguisher_avatar.txt
@@ -3,5 +3,5 @@ ManaCost:no cost
Types:Vanguard
HandLifeModifier:+1/-3
A:AB$ DestroyAll | ActivationZone$ Command | Cost$ 5 | ValidCards$ Permanent.nonLand | PlayerTurn$ True | GameActivationLimit$ 1 | SpellDescription$ Destroy all nonland permanents. Activate this ability only once and only during your turn.
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/ashling_the_extinguisher_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Ashling, the Extinguisher Avatar.full.jpg
Oracle:Hand +1, life -3\n{5}: Destroy all nonland permanents. Activate this ability only once and only during your turn.
diff --git a/forge-gui/res/cardsfolder/a/ashling_the_pilgrim_avatar.txt b/forge-gui/res/cardsfolder/a/ashling_the_pilgrim_avatar.txt
index 7af3e53bb4b..dda7751ca55 100644
--- a/forge-gui/res/cardsfolder/a/ashling_the_pilgrim_avatar.txt
+++ b/forge-gui/res/cardsfolder/a/ashling_the_pilgrim_avatar.txt
@@ -3,5 +3,5 @@ ManaCost:no cost
Types:Vanguard
HandLifeModifier:-1/+6
A:AB$ DamageAll | ActivationZone$ Command | Cost$ 2 | NumDmg$ 1 | ValidCards$ Creature | ValidPlayers$ Each | ValidDescription$ each creature and each player. | SpellDescription$ CARDNAME deals 1 damage to each creature and each player.
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/ashling_the_pilgrim_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Ashling the Pilgrim Avatar.full.jpg
Oracle:Hand -1, life +6\n{2}: Ashling the Pilgrim Avatar deals 1 damage to each creature and each player.
diff --git a/forge-gui/res/cardsfolder/a/ashnod.txt b/forge-gui/res/cardsfolder/a/ashnod.txt
index 6bc73403b53..c60347bf476 100644
--- a/forge-gui/res/cardsfolder/a/ashnod.txt
+++ b/forge-gui/res/cardsfolder/a/ashnod.txt
@@ -4,5 +4,5 @@ Types:Vanguard
HandLifeModifier:+1/-8
T:Mode$ DamageDone | ValidSource$ Creature | ValidTarget$ You | Execute$ TrigDestroy | TriggerZones$ Command | TriggerDescription$ Whenever a creature deals damage to you, destroy it.
SVar:TrigDestroy:AB$ Destroy | Cost$ 0 | Defined$ TriggeredSource
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/ashnod.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Ashnod.full.jpg
Oracle:Hand +1, life -8\nWhenever a creature deals damage to you, destroy it.
diff --git a/forge-gui/res/cardsfolder/b/barrin.txt b/forge-gui/res/cardsfolder/b/barrin.txt
index 196ee984c5b..35b8b35241a 100644
--- a/forge-gui/res/cardsfolder/b/barrin.txt
+++ b/forge-gui/res/cardsfolder/b/barrin.txt
@@ -4,5 +4,5 @@ Types:Vanguard
HandLifeModifier:+0/+6
A:AB$ ChangeZone | ActivationZone$ Command | Cost$ Sac<1/Permanent> | ValidTgts$ Creature | TgtPrompt$ Select target Creature | Origin$ Battlefield | Destination$ Hand | SpellDescription$ Return target creature to its owner's hand.
SVar:RemAIDeck:True
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/barrin.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Barrin.full.jpg
Oracle:Hand +0, life +6\nSacrifice a permanent: Return target creature to its owner's hand.
diff --git a/forge-gui/res/cardsfolder/b/behold_the_power_of_destruction.txt b/forge-gui/res/cardsfolder/b/behold_the_power_of_destruction.txt
index 1d8bbefd14a..b856756f9b2 100644
--- a/forge-gui/res/cardsfolder/b/behold_the_power_of_destruction.txt
+++ b/forge-gui/res/cardsfolder/b/behold_the_power_of_destruction.txt
@@ -3,5 +3,5 @@ ManaCost:no cost
Types:Scheme
T:Mode$ SetInMotion | ValidCard$ Card.Self | Execute$ DarkEffect | TriggerZones$ Command | TriggerDescription$ When you set this scheme in motion, destroy all nonland permanents target opponent controls.
SVar:DarkEffect:AB$ DestroyAll | Cost$ 0 | ValidTgts$ Opponent | TgtPrompt$ Select target opponent | ValidCards$ Permanent.nonLand
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/behold_the_power_of_destruction.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/Behold the Power of Destruction.full.jpg
Oracle:When you set this scheme in motion, destroy all nonland permanents target opponent controls.
diff --git a/forge-gui/res/cardsfolder/b/birds_of_paradise_avatar.txt b/forge-gui/res/cardsfolder/b/birds_of_paradise_avatar.txt
index ef7ebffa1b0..af4110f9f37 100644
--- a/forge-gui/res/cardsfolder/b/birds_of_paradise_avatar.txt
+++ b/forge-gui/res/cardsfolder/b/birds_of_paradise_avatar.txt
@@ -4,5 +4,5 @@ Types:Vanguard
HandLifeModifier:+0/-3
S:Mode$ Continuous | EffectZone$ Command | AffectedZone$ Battlefield | Affected$ Land.YouCtrl | AddAbility$ AnyMana | Description$ Lands you control have "{T}: Add one mana of any color to your mana pool."
SVar:AnyMana:AB$ Mana | Cost$ T | Produced$ Any | Amount$ 1 | SpellDescription$ Add one mana of any color to your mana pool.
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/birds_of_paradise_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Birds of Paradise Avatar1.full.jpg
Oracle:Hand +0, life -3\nLands you control have "{T}: Add one mana of any color to your mana pool."
diff --git a/forge-gui/res/cardsfolder/b/bosh_iron_golem_avatar.txt b/forge-gui/res/cardsfolder/b/bosh_iron_golem_avatar.txt
index cba20304def..904aa70eeff 100644
--- a/forge-gui/res/cardsfolder/b/bosh_iron_golem_avatar.txt
+++ b/forge-gui/res/cardsfolder/b/bosh_iron_golem_avatar.txt
@@ -4,6 +4,6 @@ Types:Vanguard
HandLifeModifier:+0/-2
A:AB$ DealDamage | ActivationZone$ Command | Announce$ X | Cost$ X Sac<1/Artifact.cmcEQX/artifact with converted mana cost X> | ValidTgts$ Creature,Player | TgtPrompt$ Select target creature or player | NumDmg$ X | References$ X | SpellDescription$ CARDNAME deals X damage to target creature or player.
SVar:X:Count$xPaid
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/bosh_iron_golem_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Bosh, Iron Golem Avatar.full.jpg
SVar:RemAIDeck:True
Oracle:Hand +0, life -2\n{X}, Sacrifice an artifact with converted mana cost X: Bosh, Iron Golem Avatar deals X damage to target creature or player.
diff --git a/forge-gui/res/cardsfolder/b/braids_conjurer_adept_avatar.txt b/forge-gui/res/cardsfolder/b/braids_conjurer_adept_avatar.txt
index c76940f05d5..8d936421956 100644
--- a/forge-gui/res/cardsfolder/b/braids_conjurer_adept_avatar.txt
+++ b/forge-gui/res/cardsfolder/b/braids_conjurer_adept_avatar.txt
@@ -5,5 +5,5 @@ HandLifeModifier:+0/+3
A:AB$ ChangeZone | ActivationZone$ Command | Cost$ 2 | Origin$ Hand | Destination$ Battlefield | ChangeType$ Land | DefinedPlayer$ Player | ChangeNum$ 1 | Tapped$ True | SpellDescription$ Each player may put a land card from his or her hand onto the battlefield tapped.
A:AB$ ChangeZone | ActivationZone$ Command | Cost$ 3 | Origin$ Hand | Destination$ Battlefield | ChangeType$ Artifact.nonCreature | DefinedPlayer$ Player | ChangeNum$ 1 | SpellDescription$ Each player may put a noncreature artifact card from his or her hand onto the battlefield.
A:AB$ ChangeZone | ActivationZone$ Command | Cost$ 4 | Origin$ Hand | Destination$ Battlefield | ChangeType$ Creature | DefinedPlayer$ Player | ChangeNum$ 1 | SorcerySpeed$ True | SpellDescription$ Each player may put a creature card from his or her hand onto the battlefield. Activate this ability only any time you could cast a sorcery.
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/braids_conjurer_adept_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Braids, Conjurer Adept Avatar.full.jpg
Oracle:Hand +0, life +3\n{2}: Each player may put a land card from his or her hand onto the battlefield tapped.\n{3}: Each player may put a noncreature artifact card from his or her hand onto the battlefield.\n{4}: Each player may put a creature card from his or her hand onto the battlefield. Activate this ability only any time you could cast a sorcery.
diff --git a/forge-gui/res/cardsfolder/c/choose_your_champion.txt b/forge-gui/res/cardsfolder/c/choose_your_champion.txt
index 01ff3f7928c..0de9ce634d1 100644
--- a/forge-gui/res/cardsfolder/c/choose_your_champion.txt
+++ b/forge-gui/res/cardsfolder/c/choose_your_champion.txt
@@ -6,5 +6,5 @@ SVar:ChooseChampion:AB$ ChoosePlayer | Cost$ 0 | ValidTgts$ Opponent | Choices$
SVar:PrepChamps:DB$ Effect | RememberObjects$ ChosenPlayer,You | Name$ Choose Your Champion Scheme | Duration$ UntilYourNextTurn | StaticAbilities$ RestrictAttackers,RestrictCasting
SVar:RestrictAttackers:Mode$ Continuous | Affected$ Creature.nonRememberedPlayerCtrl | AddHiddenKeyword$ CARDNAME can't attack. | EffectZone$ Command | Description$ Until your next turn, only you and the chosen player can attack with creatures.
SVar:RestrictCasting:Mode$ CantBeCast | ValidCard$ Card | Caster$ Player.IsNotRemembered | EffectZone$ Command | Description$ Until your next turn, only you and the chosen player can cast spells.
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/choose_your_champion.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/Choose Your Champion.full.jpg
Oracle:When you set this scheme in motion, target opponent chooses a player. Until your next turn, only you and the chosen player can cast spells and attack with creatures.
diff --git a/forge-gui/res/cardsfolder/c/chronatog_avatar.txt b/forge-gui/res/cardsfolder/c/chronatog_avatar.txt
index 24c2dcc90aa..ac5bb4377b8 100644
--- a/forge-gui/res/cardsfolder/c/chronatog_avatar.txt
+++ b/forge-gui/res/cardsfolder/c/chronatog_avatar.txt
@@ -6,5 +6,5 @@ S:Mode$ Continuous | EffectZone$ Command | Affected$ You | SetMaxHandSize$ Unlim
A:AB$ Draw | ActivationZone$ Command | Cost$ 0 | NumCards$ 3 | Defined$ You | ActivationLimit$ 1 | SubAbility$ DBSkipTurn | SpellDescription$ Draw three cards. You skip your next turn. Activate this ability only once each turn.
SVar:DBSkipTurn:DB$ SkipTurn | NumTurns$ 1 | Defined$ You
SVar:RemAIDeck:True
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/chronatog_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Chronatog Avatar.full.jpg
Oracle:Hand -1, life +1\nYou have no maximum hand size.\n{0}: Draw three cards. You skip your next turn. Activate this ability only once each turn.
diff --git a/forge-gui/res/cardsfolder/c/crovax.txt b/forge-gui/res/cardsfolder/c/crovax.txt
index d8a04f66b1c..27fb5bc3140 100644
--- a/forge-gui/res/cardsfolder/c/crovax.txt
+++ b/forge-gui/res/cardsfolder/c/crovax.txt
@@ -4,5 +4,5 @@ Types:Vanguard
HandLifeModifier:+2/+0
T:Mode$ DamageDone | ValidSource$ Creature+YouCtrl | ValidTarget$ Creature,Player | TriggerZones$ Command | Execute$ TrigGainLife | TriggerDescription$ Whenever a creature you control deals damage to a creature or player, you gain 1 life.
SVar:TrigGainLife:AB$ GainLife | Cost$ 0 | Defined$ You | LifeAmount$ 1
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/crovax.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Crovax.full.jpg
Oracle:Hand +2, life +0\nWhenever a creature you control deals damage to a creature or player, you gain 1 life.
diff --git a/forge-gui/res/cardsfolder/d/dakkon_blackblade_avatar.txt b/forge-gui/res/cardsfolder/d/dakkon_blackblade_avatar.txt
index 5729b992cbc..341f280dd7e 100644
--- a/forge-gui/res/cardsfolder/d/dakkon_blackblade_avatar.txt
+++ b/forge-gui/res/cardsfolder/d/dakkon_blackblade_avatar.txt
@@ -5,5 +5,5 @@ HandLifeModifier:+1/+0
S:Mode$ Continuous | EffectZone$ Command | AffectedZone$ Hand | Affected$ Card.nonColorless+YouOwn | AddAbility$ STPlayLand | Description$ You may play any colored card from your hand as a copy of a basic land card chosen at random that can produce mana of one of the card's colors.
SVar:STPlayLand:ST$ PlayLandVariant | Cost$ 0 | Clone$ BasicLand | SorcerySpeed$ True | ActivationZone$ Hand | SpellDescription$ Play CARDNAME from your hand as a copy of a basic land card chosen at random that can produce mana of one of CARDNAME's colors.
SVar:RemAIDeck:True
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/dakkon_blackblade_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Dakkon Blackblade Avatar.full.jpg
Oracle:Hand +1, life +0\nYou may play any colored card from your hand as a copy of a basic land card chosen at random that can produce mana of one of the card's colors.
diff --git a/forge-gui/res/cardsfolder/d/dance_pathetic_marionette.txt b/forge-gui/res/cardsfolder/d/dance_pathetic_marionette.txt
index 2cfd221a2ae..3443b95f73b 100644
--- a/forge-gui/res/cardsfolder/d/dance_pathetic_marionette.txt
+++ b/forge-gui/res/cardsfolder/d/dance_pathetic_marionette.txt
@@ -7,5 +7,5 @@ SVar:MakeItChoose:DB$ ChooseCard | Choices$ Card.IsRemembered | ChoiceZone$ Libr
SVar:MakeItDance:DB$ ChangeZone | Defined$ ChosenCard | Origin$ Library | Destination$ Battlefield | Mandatory$ True | GainControl$ True | ForgetChanged$ True | SubAbility$ TakeOutTheTrash
SVar:TakeOutTheTrash:DB$ ChangeZoneAll | ChangeType$ Card.IsRemembered | Origin$ Library | Destination$ Graveyard | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/dance_pathetic_marionette.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/Dance, Pathetic Marionette.full.jpg
Oracle:When you set this scheme in motion, each opponent reveals cards from the top of his or her library until he or she reveals a creature card. Choose one of the revealed creature cards and put it onto the battlefield under your control. Put all other cards revealed this way into their owners' graveyards.
diff --git a/forge-gui/res/cardsfolder/d/dauntless_escort_avatar.txt b/forge-gui/res/cardsfolder/d/dauntless_escort_avatar.txt
index 03e4a181083..44c7f364e62 100644
--- a/forge-gui/res/cardsfolder/d/dauntless_escort_avatar.txt
+++ b/forge-gui/res/cardsfolder/d/dauntless_escort_avatar.txt
@@ -3,5 +3,5 @@ ManaCost:no cost
Types:Vanguard
HandLifeModifier:+1/+1
S:Mode$ Continuous | EffectZone$ Command | Affected$ Creature.YouCtrl | AddKeyword$ Exalted | Description$ Creatures you control have exalted. (Whenever a creature you control attacks alone, it gets +1/+1 until end of turn for each instance of exalted among permanents you control.)
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/dauntless_escort_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Dauntless Escort Avatar.full.jpg
Oracle:Hand +1, life +1\nCreatures you control have exalted. (Whenever a creature you control attacks alone, it gets +1/+1 until end of turn for each instance of exalted among permanents you control.)
diff --git a/forge-gui/res/cardsfolder/d/diamond_faerie_avatar.txt b/forge-gui/res/cardsfolder/d/diamond_faerie_avatar.txt
index 2037c1c3697..87103d8f0ec 100644
--- a/forge-gui/res/cardsfolder/d/diamond_faerie_avatar.txt
+++ b/forge-gui/res/cardsfolder/d/diamond_faerie_avatar.txt
@@ -4,5 +4,5 @@ Types:Vanguard
HandLifeModifier:+0/+5
A:AB$ Pump | ActivationZone$ Command | Cost$ S | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | NumAtt$ 1 | NumDef$ 1 | SpellDescription$ Target creature you control gets +1/+1 until end of turn.
SVar:RemRandomDeck:True
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/diamond_faerie_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Diamond Faerie Avatar.full.jpg
Oracle:Hand +0, life +5\n{S}: Target creature you control gets +1/+1 until end of turn.
diff --git a/forge-gui/res/cardsfolder/d/drench_the_soil_in_their_blood.txt b/forge-gui/res/cardsfolder/d/drench_the_soil_in_their_blood.txt
index 5af342bc019..f2e232ac6ce 100644
--- a/forge-gui/res/cardsfolder/d/drench_the_soil_in_their_blood.txt
+++ b/forge-gui/res/cardsfolder/d/drench_the_soil_in_their_blood.txt
@@ -4,5 +4,5 @@ Types:Scheme
T:Mode$ SetInMotion | ValidCard$ Card.Self | Execute$ BloodyCombat | TriggerZones$ Command | TriggerDescription$ When you set this scheme in motion, after the main phase, there is an additional combat phase followed by an additional main phase. Creatures you control gain vigilance until end of turn.
SVar:BloodyCombat:DB$ AddPhase | ExtraPhase$ BeginCombat | FollowedBy$ ThisPhase | ConditionPhases$ Main1,Main2 | SubAbility$ MakeVigilant
SVar:MakeVigilant:DB$ PumpAll | ValidCards$ Creature.YouCtrl | KW$ Vigilance
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/drench_the_soil_in_their_blood.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/Drench the Soil in Their Blood.full.jpg
Oracle:When you set this scheme in motion, after the main phase, there is an additional combat phase followed by an additional main phase. Creatures you control gain vigilance until end of turn.
diff --git a/forge-gui/res/cardsfolder/e/eight_and_a_half_tails_avatar.txt b/forge-gui/res/cardsfolder/e/eight_and_a_half_tails_avatar.txt
index 36dd0bc5cc3..ac7e8836b41 100644
--- a/forge-gui/res/cardsfolder/e/eight_and_a_half_tails_avatar.txt
+++ b/forge-gui/res/cardsfolder/e/eight_and_a_half_tails_avatar.txt
@@ -3,5 +3,5 @@ ManaCost:no cost
Types:Vanguard
HandLifeModifier:+2/-3
A:AB$ Pump | Cost$ 1 | ActivationZone$ Command | ValidTgts$ Permanent.YouCtrl | TgtPrompt$ Select target permanent you control | KW$ Protection from red & Protection from blue & Protection from black & Protection from white & Protection from green | RandomKeyword$ True | NoRepetition$ True | StackDescription$ SpellDescription | SpellDescription$ Until end of turn, target permanent you control gains protection from a color chosen at random from colors it doesn't have protection from.
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/eight_and_a_half_tails_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Eight-and-a-Half-Tails Avatar.full.jpg
Oracle:Hand +2, life -3\n{1}: Until end of turn, target permanent you control gains protection from a color chosen at random from colors it doesn't have protection from.
diff --git a/forge-gui/res/cardsfolder/e/eladamri.txt b/forge-gui/res/cardsfolder/e/eladamri.txt
index 5ed6b9f4035..6515a6d1c57 100644
--- a/forge-gui/res/cardsfolder/e/eladamri.txt
+++ b/forge-gui/res/cardsfolder/e/eladamri.txt
@@ -13,6 +13,6 @@ SVar:OutOfSight:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Any | Val
SVar:ExileEffect:DB$ ChangeZone | Defined$ Self | Origin$ Command | Destination$ Exile | Static$ True
SVar:X:ReplaceCount$DamageAmount/Minus.1
SVar:Y:ReplaceCount$DamageAmount
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/eladamri.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Eladamri.full.jpg
SVar:RemAIDeck:True
Oracle:Hand -1, life +15\n{0}: The next 1 damage that would be dealt to target creature you control is dealt to you instead.
diff --git a/forge-gui/res/cardsfolder/e/eladamri_lord_of_leaves_avatar.txt b/forge-gui/res/cardsfolder/e/eladamri_lord_of_leaves_avatar.txt
index 6fe5a444741..2690e0e5ade 100644
--- a/forge-gui/res/cardsfolder/e/eladamri_lord_of_leaves_avatar.txt
+++ b/forge-gui/res/cardsfolder/e/eladamri_lord_of_leaves_avatar.txt
@@ -6,5 +6,5 @@ T:Mode$ Phase | Phase$ Main1 | ValidPlayer$ Player | TriggerZones$ Command | Exe
SVar:TrigAddMana:AB$ Mana | Cost$ 0 | Produced$ G | Amount$ 2 | Defined$ TriggeredPlayer
SVar:RemAIDeck:True
SVar:RemRandomDeck:True
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/eladamri_lord_of_leaves_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Eladamri, Lord of Leaves Avatar.full.jpg
Oracle:Hand -1, life +2\nAt the beginning of each player's precombat main phase, that player adds {G}{G} to his or her mana pool.
diff --git a/forge-gui/res/cardsfolder/e/elvish_champion_avatar.txt b/forge-gui/res/cardsfolder/e/elvish_champion_avatar.txt
index 32c999f881e..01079af2d48 100644
--- a/forge-gui/res/cardsfolder/e/elvish_champion_avatar.txt
+++ b/forge-gui/res/cardsfolder/e/elvish_champion_avatar.txt
@@ -5,5 +5,5 @@ HandLifeModifier:+0/-5
T:Mode$ NewGame | TriggerZones$ Command | Execute$ TrigToken | Static$ True | TriggerDescription$ You begin the game with a 1/1 green Elf creature token on the battlefield. It has "{T}: Add {G} to your mana pool."
SVar:TrigToken:AB$ Token | Cost$ 0 | TokenAmount$ 1 | TokenName$ Elf | TokenTypes$ Creature,Elf | TokenOwner$ You | TokenColors$ Green | TokenPower$ 1 | TokenToughness$ 1 | TokenAbilities$ DBMana
SVar:DBMana:AB$ Mana | Cost$ T | Produced$ G | SpellDescription$ Add {G} to your mana pool.
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/elvish_champion_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Elvish Champion Avatar.full.jpg
Oracle:Hand +0, life -5\nYou begin the game with a 1/1 green Elf creature token on the battlefield. It has "{T}: Add {G} to your mana pool."
diff --git a/forge-gui/res/cardsfolder/e/embrace_my_diabolical_vision.txt b/forge-gui/res/cardsfolder/e/embrace_my_diabolical_vision.txt
index 4a7e7683d05..68fe33ee5b0 100644
--- a/forge-gui/res/cardsfolder/e/embrace_my_diabolical_vision.txt
+++ b/forge-gui/res/cardsfolder/e/embrace_my_diabolical_vision.txt
@@ -5,5 +5,5 @@ T:Mode$ SetInMotion | ValidCard$ Card.Self | Execute$ GraveEmbrace | TriggerZone
SVar:GraveEmbrace:AB$ ChangeZoneAll | Cost$ 0 | ChangeType$ Card | Origin$ Graveyard,Hand | Destination$ Library | Shuffle$ True | SubAbility$ MyVision
SVar:MyVision:DB$ Draw | Defined$ You | NumCards$ 7 | SubAbility$ PitifulDraw
SVar:PitifulDraw:DB$ Draw | Defined$ Player.Other | NumCards$ 4
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/embrace_my_diabolical_vision.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/Embrace My Diabolical Vision.full.jpg
Oracle:When you set this scheme in motion, each player shuffles his or her hand and graveyard into his or her library. You draw seven cards, then each other player draws four cards.
diff --git a/forge-gui/res/cardsfolder/e/enigma_sphinx_avatar.txt b/forge-gui/res/cardsfolder/e/enigma_sphinx_avatar.txt
index b0e038cbf33..06d7972b0f3 100644
--- a/forge-gui/res/cardsfolder/e/enigma_sphinx_avatar.txt
+++ b/forge-gui/res/cardsfolder/e/enigma_sphinx_avatar.txt
@@ -8,5 +8,5 @@ SVar:DBPlay:DB$ Play | Defined$ Remembered | Controller$ You | WithoutManaCost$
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
SVar:NumColoredCast:Count$ThisTurnCast_Artifact.nonColorless+YouCtrl
SVar:X:Count$TriggeredCardManaCost
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/enigma_sphinx_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Enigma Sphinx Avatar.full.jpg
Oracle:Hand +0, life +5\nWhenever you cast a colored artifact spell for the first time in a turn, search your library for a colored artifact card chosen at random whose converted mana cost is less than that spell's converted mana cost. You may play that card without paying its mana cost. If you don't, put that card on the bottom of your library.
diff --git a/forge-gui/res/cardsfolder/e/erhnam_djinn_avatar.txt b/forge-gui/res/cardsfolder/e/erhnam_djinn_avatar.txt
index acb6b99eb71..1cc0088ffc7 100644
--- a/forge-gui/res/cardsfolder/e/erhnam_djinn_avatar.txt
+++ b/forge-gui/res/cardsfolder/e/erhnam_djinn_avatar.txt
@@ -4,5 +4,5 @@ Types:Vanguard
HandLifeModifier:+0/+3
T:Mode$ SpellCast | ValidCard$ Creature | ValidActivatingPlayer$ You | Execute$ DjinnisGift | TriggerZones$ Command | TriggerDescription$ Whenever you cast a creature spell, put a 1/1 green Saproling creature token onto the battlefield.
SVar:DjinnisGift:AB$ Token | Cost$ 0 | TokenAmount$ 1 | TokenName$ Saproling | TokenTypes$ Creature,Saproling | TokenOwner$ You | TokenColors$ Green | TokenPower$ 1 | TokenToughness$ 1
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/erhnam_djinn_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Erhnam Djinn Avatar1.full.jpg
Oracle:Hand +0, life +3\nWhenever you cast a creature spell, put a 1/1 green Saproling creature token onto the battlefield.
diff --git a/forge-gui/res/cardsfolder/e/ertai.txt b/forge-gui/res/cardsfolder/e/ertai.txt
index 847b81cc103..9bdbcb69cec 100644
--- a/forge-gui/res/cardsfolder/e/ertai.txt
+++ b/forge-gui/res/cardsfolder/e/ertai.txt
@@ -3,5 +3,5 @@ ManaCost:no cost
Types:Vanguard
HandLifeModifier:-1/+4
S:Mode$ Continuous | EffectZone$ Command | Affected$ Creature.YouCtrl | AddKeyword$ Hexproof | Description$ Creatures you control have hexproof. (They can't be the targets of spells or abilities your opponents control.)
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/ertai.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Ertai.full.jpg
Oracle:Hand -1, life +4\nCreatures you control have hexproof. (They can't be the targets of spells or abilities your opponents control.)
diff --git a/forge-gui/res/cardsfolder/e/etched_oracle_avatar.txt b/forge-gui/res/cardsfolder/e/etched_oracle_avatar.txt
index c4822b8053e..b09094c86b8 100644
--- a/forge-gui/res/cardsfolder/e/etched_oracle_avatar.txt
+++ b/forge-gui/res/cardsfolder/e/etched_oracle_avatar.txt
@@ -4,5 +4,5 @@ Types:Vanguard
HandLifeModifier:+1/-4
S:Mode$ Continuous | EffectZone$ Command | Affected$ Card.YouCtrl | AddHiddenKeyword$ Alternative Cost W U B R G | AffectedZone$ Hand,Graveyard,Exile,Library,Command | Description$ You may pay {W}{U}{B}{R}{G} rather than pay the mana cost for spells that you cast.
SVar:RemRandomDeck:True
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/etched_oracle_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Etched Oracle Avatar.full.jpg
Oracle:Hand +1, life -4\nYou may pay {W}{U}{B}{R}{G} rather than pay the mana cost for spells that you cast.
diff --git a/forge-gui/res/cardsfolder/e/every_hope_shall_vanish.txt b/forge-gui/res/cardsfolder/e/every_hope_shall_vanish.txt
index 08948036aae..6d531b2f14c 100644
--- a/forge-gui/res/cardsfolder/e/every_hope_shall_vanish.txt
+++ b/forge-gui/res/cardsfolder/e/every_hope_shall_vanish.txt
@@ -3,5 +3,5 @@ ManaCost:no cost
Types:Scheme
T:Mode$ SetInMotion | ValidCard$ Card.Self | Execute$ DiscardHope | TriggerZones$ Command | TriggerDescription$ When you set this scheme in motion, each opponent reveals his or her hand. Choose a nonland card from each of those hands. Those players discard those cards.
SVar:DiscardHope:AB$ Discard | Cost$ 0 | Defined$ Player.Opponent | Mode$ RevealYouChoose | DiscardValid$ Card.nonLand | NumCards$ 1
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/every_hope_shall_vanish.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/Every Hope Shall Vanish.full.jpg
Oracle:When you set this scheme in motion, each opponent reveals his or her hand. Choose a nonland card from each of those hands. Those players discard those cards.
diff --git a/forge-gui/res/cardsfolder/e/every_last_vestige_shall_rot.txt b/forge-gui/res/cardsfolder/e/every_last_vestige_shall_rot.txt
index 1103dad0523..cfe38d64aa1 100644
--- a/forge-gui/res/cardsfolder/e/every_last_vestige_shall_rot.txt
+++ b/forge-gui/res/cardsfolder/e/every_last_vestige_shall_rot.txt
@@ -4,5 +4,5 @@ Types:Scheme
T:Mode$ SetInMotion | ValidCard$ Card.Self | Execute$ MoveToBottom | TriggerZones$ Command | OptionalDecider$ You | TriggerDescription$ When you set this scheme in motion, you may pay {X}. If you do, put each nonland permanent target player controls with converted mana cost X or less on the bottom of its owner's library.
SVar:MoveToBottom:AB$ ChangeZoneAll | Cost$ X | ChangeType$ Permanent.nonLand+cmcLEX | ValidTgts$ Player | TgtPrompt$ Select target player | Origin$ Battlefield | Destination$ Library | LibraryPosition$ -1
SVar:X:Count$xPaid
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/every_last_vestige_shall_rot.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/Every Last Vestige Shall Rot.full.jpg
Oracle:When you set this scheme in motion, you may pay {X}. If you do, put each nonland permanent target player controls with converted mana cost X or less on the bottom of its owner's library.
diff --git a/forge-gui/res/cardsfolder/e/evil_comes_to_fruition.txt b/forge-gui/res/cardsfolder/e/evil_comes_to_fruition.txt
index 32bdbb89230..ff01e455ccf 100644
--- a/forge-gui/res/cardsfolder/e/evil_comes_to_fruition.txt
+++ b/forge-gui/res/cardsfolder/e/evil_comes_to_fruition.txt
@@ -5,5 +5,5 @@ T:Mode$ SetInMotion | ValidCard$ Card.Self | Execute$ NewEvil | TriggerZones$ Co
SVar:NewEvil:AB$ Token | Cost$ 0 | TokenAmount$ 7 | TokenName$ Plant | TokenTypes$ Creature,Plant | TokenOwner$ You | TokenColors$ Green | TokenPower$ 0 | TokenToughness$ 1 | ConditionPresent$ Land.YouCtrl | ConditionCompare$ LT10 | SubAbility$ MatureEvil
SVar:MatureEvil:DB$ Token | Cost$ 0 | TokenAmount$ 7 | TokenName$ Elemental | TokenTypes$ Creature,Elemental | TokenOwner$ You | TokenColors$ Green | TokenPower$ 3 | TokenToughness$ 3 | ConditionPresent$ Land.YouCtrl | ConditionCompare$ GE10
SVar:X:Count$NumTypeYouCtrl.Land
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/evil_comes_to_fruition.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/Evil Comes to Fruition.full.jpg
Oracle:When you set this scheme in motion, put seven 0/1 green Plant creature tokens onto the battlefield. If you control ten or more lands, put seven 3/3 green Elemental creature tokens onto the battlefield instead.
diff --git a/forge-gui/res/cardsfolder/f/fallen_angel_avatar.txt b/forge-gui/res/cardsfolder/f/fallen_angel_avatar.txt
index 7e833e41db3..91e6feeded4 100644
--- a/forge-gui/res/cardsfolder/f/fallen_angel_avatar.txt
+++ b/forge-gui/res/cardsfolder/f/fallen_angel_avatar.txt
@@ -5,5 +5,5 @@ HandLifeModifier:+0/-5
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.YouCtrl | Execute$ TrigDrain | TriggerZones$ Command | TriggerDescription$ Whenever a creature you control dies, target opponent loses 1 life and you gain 1 life.
SVar:TrigDrain:AB$ LoseLife | Cost$ 0 | ValidTgts$ Opponent | LifeAmount$ 1 | SubAbility$ DBGainLife
SVar:DBGainLife:DB$ GainLife | Defined$ You | LifeAmount$ 1
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/fallen_angel_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Fallen Angel Avatar.full.jpg
Oracle:Hand +0, life -5\nWhenever a creature you control dies, target opponent loses 1 life and you gain 1 life.
diff --git a/forge-gui/res/cardsfolder/f/figure_of_destiny_avatar.txt b/forge-gui/res/cardsfolder/f/figure_of_destiny_avatar.txt
index d55506d1519..40f185b46cf 100644
--- a/forge-gui/res/cardsfolder/f/figure_of_destiny_avatar.txt
+++ b/forge-gui/res/cardsfolder/f/figure_of_destiny_avatar.txt
@@ -4,5 +4,5 @@ Types:Vanguard
HandLifeModifier:+0/+3
A:AB$ PutCounter | ActivationZone$ Command | Announce$ X | Cost$ X | CounterType$ P1P1 | CounterNum$ 1 | ValidTgts$ Creature.counters_LTX_P1P1 | TgtPrompt$ Select target creature with fewer than X +1/+1 counters on it | References$ X | SpellDescription$ Put a +1/+1 counter on target creature with fewer than X +1/+1 counters on it.
SVar:X:Count$xPaid
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/figure_of_destiny_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Figure of Destiny Avatar.full.jpg
Oracle:Hand +0, life +3\n{X}: Put a +1/+1 counter on target creature with fewer than X +1/+1 counters on it.
diff --git a/forge-gui/res/cardsfolder/f/flametongue_kavu_avatar.txt b/forge-gui/res/cardsfolder/f/flametongue_kavu_avatar.txt
index b8216fbedd1..8fe8c5a4eb3 100644
--- a/forge-gui/res/cardsfolder/f/flametongue_kavu_avatar.txt
+++ b/forge-gui/res/cardsfolder/f/flametongue_kavu_avatar.txt
@@ -5,5 +5,5 @@ HandLifeModifier:+0/-6
T:Mode$ ChangesZone | ValidCard$ Creature.nonToken+YouCtrl | Origin$ Any | Destination$ Battlefield | Execute$ TrigDealDamage | TriggerZones$ Command | TriggerDescription$ Whenever a nontoken creature enters the battlefield under your control, that creature deals X damage to target creature, where X is a number chosen at random from 0 to 4.
SVar:TrigDealDamage:AB$ DealDamage | Cost$ 0 | ValidTgts$ Creature | NumDmg$ X | References$ X | DamageSource$ TriggeredCard
SVar:X:Count$Random.0.4
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/flametongue_kavu_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Flametongue Kavu Avatar.full.jpg
Oracle:Hand +0, life -6\nWhenever a nontoken creature enters the battlefield under your control, that creature deals X damage to target creature, where X is a number chosen at random from 0 to 4.
diff --git a/forge-gui/res/cardsfolder/f/frenetic_efreet_avatar.txt b/forge-gui/res/cardsfolder/f/frenetic_efreet_avatar.txt
index 96159b7985b..68ea9ab83e9 100644
--- a/forge-gui/res/cardsfolder/f/frenetic_efreet_avatar.txt
+++ b/forge-gui/res/cardsfolder/f/frenetic_efreet_avatar.txt
@@ -6,5 +6,5 @@ S:Mode$ Continuous | EffectZone$ Command | Affected$ Permanent.YouCtrl | AddKeyw
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Command | Execute$ TrigFlip | TriggerDescription$ At the beginning of your end step, flip a coin. If you win the flip, take an extra turn after this one.
SVar:TrigFlip:AB$ FlipACoin | Cost$ 0 | Defined$ You | WinSubAbility$ DBAddTurn
SVar:DBAddTurn:DB$ AddTurn | NumTurns$ 1
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/frenetic_efreet_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Frenetic Efreet Avatar.full.jpg
Oracle:Hand -1, life -3\nEach permanent you control has phasing. (It phases in or out before you untap during each of your untap steps. While it's phased out, it's treated as though it doesn't exist.)\nAt the beginning of your end step, flip a coin. If you win the flip, take an extra turn after this one.
diff --git a/forge-gui/res/cardsfolder/g/gerrard.txt b/forge-gui/res/cardsfolder/g/gerrard.txt
index 0a6b8d67c36..e7fa849f12d 100644
--- a/forge-gui/res/cardsfolder/g/gerrard.txt
+++ b/forge-gui/res/cardsfolder/g/gerrard.txt
@@ -4,5 +4,5 @@ Types:Vanguard
HandLifeModifier:-4/+0
T:Mode$ Phase | Phase$ Draw | ValidPlayer$ You | TriggerZones$ Command | Execute$ TrigDraw | TriggerDescription$ At the beginning of your draw step, draw an additional card.
SVar:TrigDraw:AB$ Draw | Cost$ 0 | NumCards$ 1 | Defined$ You
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/gerrard.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Gerrard.full.jpg
Oracle:Hand -4, life +0\nAt the beginning of your draw step, draw an additional card.
diff --git a/forge-gui/res/cardsfolder/g/gix.txt b/forge-gui/res/cardsfolder/g/gix.txt
index 416caa9bd0e..ef4a9160640 100644
--- a/forge-gui/res/cardsfolder/g/gix.txt
+++ b/forge-gui/res/cardsfolder/g/gix.txt
@@ -3,5 +3,5 @@ ManaCost:no cost
Types:Vanguard
HandLifeModifier:-2/+18
A:AB$ ChangeZone | Cost$ 3 | ActivationZone$ Command | Origin$ Graveyard | Destination$ Hand | TgtPrompt$ Select target creature card in your graveyard | ValidTgts$ Creature.YouCtrl | SpellDescription$ Return target creature card from your graveyard to your hand.
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/gix.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Gix.full.jpg
Oracle:Hand -2, life +18\n{3}: Return target creature card from your graveyard to your hand.
diff --git a/forge-gui/res/cardsfolder/g/goblin_warchief_avatar.txt b/forge-gui/res/cardsfolder/g/goblin_warchief_avatar.txt
index 748aa5b2890..5e0d7e77b1f 100644
--- a/forge-gui/res/cardsfolder/g/goblin_warchief_avatar.txt
+++ b/forge-gui/res/cardsfolder/g/goblin_warchief_avatar.txt
@@ -3,5 +3,5 @@ ManaCost:no cost
Types:Vanguard
HandLifeModifier:+1/+2
S:Mode$ Continuous | EffectZone$ Command | AffectedZone$ Battlefield | Affected$ Creature.attacking+YouCtrl | AddPower$ 1 | Description$ Attacking creatures you control get +1/+0.
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/goblin_warchief_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Goblin Warchief Avatar1.full.jpg
Oracle:Hand +1, life +2\nAttacking creatures you control get +1/+0.
diff --git a/forge-gui/res/cardsfolder/g/greven_il_vec.txt b/forge-gui/res/cardsfolder/g/greven_il_vec.txt
index 6351816a9eb..f19e9296166 100644
--- a/forge-gui/res/cardsfolder/g/greven_il_vec.txt
+++ b/forge-gui/res/cardsfolder/g/greven_il_vec.txt
@@ -4,5 +4,5 @@ Types:Vanguard
HandLifeModifier:-1/+2
T:Mode$ DamageDone | ValidSource$ Creature.YouCtrl | ValidTarget$ Creature | TriggerZones$ Command | Execute$ TrigDestroy | TriggerDescription$ Whenever a creature you control deals damage to a creature, destroy the other creature. It can't be regenerated.
SVar:TrigDestroy:AB$ Destroy | Cost$ 0 | Defined$ TriggeredTarget | NoRegen$ True
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/greven_il-vec.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Greven il-Vec.full.jpg
Oracle:Hand -1, life +2\nWhenever a creature you control deals damage to a creature, destroy the other creature. It can't be regenerated.
diff --git a/forge-gui/res/cardsfolder/g/grinning_demon_avatar.txt b/forge-gui/res/cardsfolder/g/grinning_demon_avatar.txt
index 707a06f072a..3d2cb5db9ce 100644
--- a/forge-gui/res/cardsfolder/g/grinning_demon_avatar.txt
+++ b/forge-gui/res/cardsfolder/g/grinning_demon_avatar.txt
@@ -4,5 +4,5 @@ Types:Vanguard
HandLifeModifier:-1/-2
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.YouCtrl+nonToken | TriggerZones$ Command | Execute$ GrinningDiscard | TriggerDescription$ Whenever a nontoken creature you control dies, target opponent discards a card.
SVar:GrinningDiscard:AB$ Discard | Cost$ 0 | ValidTgts$ Opponent | TgtPrompt$ Select an opponent to discard | NumCards$ 1 | Mode$ TgtChoose
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/grinning_demon_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Grinning Demon Avatar1.full.jpg
Oracle:Hand -1, life -2\nWhenever a nontoken creature you control dies, target opponent discards a card.
diff --git a/forge-gui/res/cardsfolder/h/haakon_stromgald_scourge_avatar.txt b/forge-gui/res/cardsfolder/h/haakon_stromgald_scourge_avatar.txt
index 4307a4e80d5..296ae6a0974 100644
--- a/forge-gui/res/cardsfolder/h/haakon_stromgald_scourge_avatar.txt
+++ b/forge-gui/res/cardsfolder/h/haakon_stromgald_scourge_avatar.txt
@@ -6,5 +6,5 @@ A:AB$ Pump | ActivationZone$ Command | Cost$ PayLife<1> | TgtZone$ Graveyard | V
T:Mode$ SpellCast | ValidCard$ Card.wasCastFromGraveyard | ValidControllingPlayer$ You | TriggerZones$ Command | Execute$ TrigAnimate | TriggerDescription$ Whenever you play a creature card from your graveyard, it becomes a black Zombie Knight.
SVar:TrigAnimate:AB$ Animate | Cost$ 0 | Defined$ TriggeredCard | Types$ Zombie,Knight | Colors$ Black | OverwriteColors$ True | Permanent$ True | OverwriteTypes$ True | KeepSupertypes$ True | KeepCardTypes$ True
S:Mode$ Continuous | EffectZone$ Command | Affected$ Card.Zombie+Knight | AffectedZone$ Battlefield | AddHiddenKeyword$ If CARDNAME would be put into a graveyard, exile it instead. | Description$ If a Zombie Knight would be put into your graveyard from the battlefield, exile it instead.
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/haakon_stromgald_scourge_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Haakon, Stromgald Scourge Avatar.full.jpg
Oracle:Hand +0, life -3\nPay 1 life: You may play target creature card in your graveyard this turn.\nWhenever you play a creature card from your graveyard, it becomes a black Zombie Knight.\nIf a Zombie Knight would be put into your graveyard from the battlefield, exile it instead.
diff --git a/forge-gui/res/cardsfolder/h/hanna.txt b/forge-gui/res/cardsfolder/h/hanna.txt
index 885914e5551..3186b605a45 100644
--- a/forge-gui/res/cardsfolder/h/hanna.txt
+++ b/forge-gui/res/cardsfolder/h/hanna.txt
@@ -3,5 +3,5 @@ ManaCost:no cost
Types:Vanguard
HandLifeModifier:+1/-5
S:Mode$ ReduceCost | EffectZone$ Command | ValidCard$ Card | Type$ Spell | Activator$ You | Amount$ 1 | Description$ Spells you cast cost {1} less to cast.
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/hanna.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Hanna.full.jpg
Oracle:Hand +1, life -5\nSpells you cast cost {1} less to cast.
diff --git a/forge-gui/res/cardsfolder/h/heartwood_storyteller_avatar.txt b/forge-gui/res/cardsfolder/h/heartwood_storyteller_avatar.txt
index 9aee05d4372..5ac927bb8c0 100644
--- a/forge-gui/res/cardsfolder/h/heartwood_storyteller_avatar.txt
+++ b/forge-gui/res/cardsfolder/h/heartwood_storyteller_avatar.txt
@@ -4,5 +4,5 @@ Types:Vanguard
HandLifeModifier:-1/+4
S:Mode$ ReduceCost | EffectZone$ Command | ValidCard$ Card.Creature | Activator$ You | Type$ Spell | OnlyFirstSpell$ True | Amount$ 1 | Description$ The first creature spell you cast each turn costs {1} less to cast.
S:Mode$ RaiseCost | EffectZone$ Command | ValidCard$ Card.nonCreature | Activator$ Player.Opponent | Type$ Spell | OnlyFirstSpell$ True | Amount$ 1 | Description$ The first noncreature spell each opponent casts each turn costs {1} more to cast.
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/heartwood_storyteller_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Heartwood Storyteller Avatar.full.jpg
Oracle:Hand -1, life +4\nThe first creature spell you cast each turn costs {1} less to cast.\nThe first noncreature spell each opponent casts each turn costs {1} more to cast.
diff --git a/forge-gui/res/cardsfolder/h/hells_caretaker_avatar.txt b/forge-gui/res/cardsfolder/h/hells_caretaker_avatar.txt
index a18b7d98f76..bcd2dad0d80 100644
--- a/forge-gui/res/cardsfolder/h/hells_caretaker_avatar.txt
+++ b/forge-gui/res/cardsfolder/h/hells_caretaker_avatar.txt
@@ -4,5 +4,5 @@ Types:Vanguard
HandLifeModifier:-1/-4
A:AB$ ChangeZone | Cost$ 3 Sac<1/Creature/creature> | ActivationZone$ Command | Origin$ Graveyard | Destination$ Battlefield | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature in your graveyard | SpellDescription$ Return target creature card from your graveyard to the battlefield.
SVar:RemAIDeck:True
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/hells_caretaker_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Hell's Caretaker Avatar.full.jpg
Oracle:Hand -1, life -4\n{3}, Sacrifice a creature: Return target creature card from your graveyard to the battlefield.
diff --git a/forge-gui/res/cardsfolder/h/hermit_druid_avatar.txt b/forge-gui/res/cardsfolder/h/hermit_druid_avatar.txt
index d55beb027b7..0d1a254a213 100644
--- a/forge-gui/res/cardsfolder/h/hermit_druid_avatar.txt
+++ b/forge-gui/res/cardsfolder/h/hermit_druid_avatar.txt
@@ -4,5 +4,5 @@ Types:Vanguard
HandLifeModifier:-2/-2
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | Execute$ TrigBounce | TriggerZones$ Command | TriggerDescription$ At the beginning of your upkeep, put a land card from your library chosen at random onto the battlefield.
SVar:TrigBounce:AB$ ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Battlefield | AtRandom$ True | ChangeType$ Land
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/hermit_druid_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Hermit Druid Avatar.full.jpg
Oracle:Hand -2, life -2\nAt the beginning of your upkeep, put a land card from your library chosen at random onto the battlefield.
diff --git a/forge-gui/res/cardsfolder/h/higure_the_still_wind_avatar.txt b/forge-gui/res/cardsfolder/h/higure_the_still_wind_avatar.txt
index bd91b3b9f49..0129ab780e8 100644
--- a/forge-gui/res/cardsfolder/h/higure_the_still_wind_avatar.txt
+++ b/forge-gui/res/cardsfolder/h/higure_the_still_wind_avatar.txt
@@ -4,5 +4,5 @@ Types:Vanguard
HandLifeModifier:-1/+3
T:Mode$ DamageDone | ValidSource$ Creature.nonToken+YouCtrl | ValidTarget$ Opponent | TriggerZones$ Command | CombatDamage$ True | Execute$ TrigChangeZone | TriggerDescription$ Whenever a nontoken creature you control deals combat damage to an opponent, choose a creature card at random from your library, reveal that card, and put it into your hand. Then shuffle your library.
SVar:TrigChangeZone:AB$ ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Hand | AtRandom$ True | ChangeType$ Card.Creature | ChangeNum$ 1
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/higure_the_still_wind_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Higure, the Still Wind Avatar.full.jpg
Oracle:Hand -1, life +3\nWhenever a nontoken creature you control deals combat damage to an opponent, choose a creature card at random from your library, reveal that card, and put it into your hand. Then shuffle your library.
diff --git a/forge-gui/res/cardsfolder/h/horizon_boughs.txt b/forge-gui/res/cardsfolder/h/horizon_boughs.txt
index 47dc8cf8a01..cb710404455 100644
--- a/forge-gui/res/cardsfolder/h/horizon_boughs.txt
+++ b/forge-gui/res/cardsfolder/h/horizon_boughs.txt
@@ -4,6 +4,6 @@ Types:Plane Pyrulea
S:Mode$ Continuous | EffectZone$ Command | Affected$ Permanent | AddHiddenKeyword$ CARDNAME untaps during each other player's untap step. | Description$ All permanents untap during each player's untap step.
T:Mode$ PlanarDice | Result$ Chaos | TriggerZones$ Command | Execute$ DBFetch | TriggerDescription$ Whenever you roll {C}, you may search your library for up to three basic land cards, put them onto the battlefield tapped, then shuffle your library.
SVar:DBFetch:DB$ChangeZone | Origin$ Library | Destination$ Battlefield | Tapped$ True | ChangeType$ Land.Basic | ChangeNum$ 3 | ShuffleNonMandatory$ True
-SVar:Picture:http://www.cardforge.org/fpics/lq_planes_promos/horizon_boughs.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/HOP/Horizon Boughs.jpg
SVar:AIRollPlanarDieParams:Mode$ Always | LowPriority$ True | MaxRollsPerTurn$ 9
Oracle:All permanents untap during each player's untap step.\nWhenever you roll {C}, you may search your library for up to three basic land cards, put them onto the battlefield tapped, then shuffle your library.
diff --git a/forge-gui/res/cardsfolder/i/i_call_on_the_ancient_magics.txt b/forge-gui/res/cardsfolder/i/i_call_on_the_ancient_magics.txt
index c7b38ce1628..616f1d50918 100644
--- a/forge-gui/res/cardsfolder/i/i_call_on_the_ancient_magics.txt
+++ b/forge-gui/res/cardsfolder/i/i_call_on_the_ancient_magics.txt
@@ -4,5 +4,5 @@ Types:Scheme
T:Mode$ SetInMotion | ValidCard$ Card.Self | Execute$ OppTutor | TriggerZones$ Command | TriggerDescription$ When you set this scheme in motion, each other player searches his or her library for a card, reveals it, and puts it into his or her hand. Then you search your library for two cards and put them into your hand. Each player shuffles his or her library.
SVar:OppTutor:AB$ ChangeZone | Cost$ 0 | DefinedPlayer$ Player.Other | Origin$ Library | Destination$ Hand | ChangeType$ Card | ChangeNum$ 1 | Reveal$ True | Mandatory$ True | SubAbility$ MyMagic
SVar:MyMagic:DB$ ChangeZone | DefinedPlayer$ You | Origin$ Library | Destination$ Hand | ChangeType$ Card | ChangeNum$ 2 | Mandatory$ True
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/i_call_on_the_ancient_magics.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/I Call on the Ancient Magics.full.jpg
Oracle:When you set this scheme in motion, each other player searches his or her library for a card, reveals it, and puts it into his or her hand. Then you search your library for two cards and put them into your hand. Each player shuffles his or her library.
diff --git a/forge-gui/res/cardsfolder/i/i_delight_in_your_convulsions.txt b/forge-gui/res/cardsfolder/i/i_delight_in_your_convulsions.txt
index 62c3944c7e1..6205cfdeae8 100644
--- a/forge-gui/res/cardsfolder/i/i_delight_in_your_convulsions.txt
+++ b/forge-gui/res/cardsfolder/i/i_delight_in_your_convulsions.txt
@@ -5,5 +5,5 @@ T:Mode$ SetInMotion | ValidCard$ Card.Self | Execute$ DarkEffect | TriggerZones$
SVar:DarkEffect:AB$ LoseLife | Cost$ 0 | Defined$ Player.Opponent | LifeAmount$ 3 | SubAbility$ DBGainLife
SVar:DBGainLife:DB$ GainLife | Defined$ You | LifeAmount$ AFLifeLost | StackDescription$ You gain life equal to the life lost this way.
SVar:AFLifeLost:Number$0
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/i_delight_in_your_convulsions.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/I Delight in Your Convulsions.full.jpg
Oracle:When you set this scheme in motion, each opponent loses 3 life. You gain life equal to the life lost this way.
diff --git a/forge-gui/res/cardsfolder/i/i_know_all_i_see_all.txt b/forge-gui/res/cardsfolder/i/i_know_all_i_see_all.txt
index b408ad32226..4bdc21e7061 100644
--- a/forge-gui/res/cardsfolder/i/i_know_all_i_see_all.txt
+++ b/forge-gui/res/cardsfolder/i/i_know_all_i_see_all.txt
@@ -5,5 +5,5 @@ S:Mode$ Continuous | EffectZone$ Command | Affected$ Permanent.YouCtrl | AddHidd
T:Mode$ Phase | Phase$ End of Turn | Execute$ Abandon | TriggerZones$ Command | CheckSVar$ X | SVarCompare$ GE3 | TriggerDescription$ At the beginning of each end step, if three or more cards were put into your graveyard this turn from anywhere, abandon this scheme.
SVar:Abandon:AB$ Abandon | Cost$ 0
SVar:X:Count$ThisTurnEntered_Graveyard_Card.YouOwn
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/i_know_all_i_see_all.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/I Know All, I See All.full.jpg
Oracle:(An ongoing scheme remains face up until it's abandoned.)\nUntap all permanents you control during each opponent's untap step.\nAt the beginning of each end step, if three or more cards were put into your graveyard this turn from anywhere, abandon this scheme.
diff --git a/forge-gui/res/cardsfolder/i/ignite_the_cloneforge.txt b/forge-gui/res/cardsfolder/i/ignite_the_cloneforge.txt
index 65ef2590440..26325d0c7d9 100644
--- a/forge-gui/res/cardsfolder/i/ignite_the_cloneforge.txt
+++ b/forge-gui/res/cardsfolder/i/ignite_the_cloneforge.txt
@@ -3,5 +3,5 @@ ManaCost:no cost
Types:Scheme
T:Mode$ SetInMotion | ValidCard$ Card.Self | Execute$ DarkEffect | TriggerZones$ Command | TriggerDescription$ When you set this scheme in motion, put a token onto the battlefield that's a copy of target permanent an opponent controls.
SVar:DarkEffect:AB$ CopyPermanent | Cost$ 0 | ValidTgts$ Permanent.OppCtrl | TgtPrompt$ Select target permanent an opponent controls
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/ignite_the_cloneforge.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/Ignite the Cloneforge!.full.jpg
Oracle:When you set this scheme in motion, put a token onto the battlefield that's a copy of target permanent an opponent controls.
diff --git a/forge-gui/res/cardsfolder/i/imprison_this_insolent_wretch.txt b/forge-gui/res/cardsfolder/i/imprison_this_insolent_wretch.txt
index f5926ed6877..0fef7c1612d 100644
--- a/forge-gui/res/cardsfolder/i/imprison_this_insolent_wretch.txt
+++ b/forge-gui/res/cardsfolder/i/imprison_this_insolent_wretch.txt
@@ -7,5 +7,5 @@ S:Mode$ Continuous | EffectZone$ Command | Affected$ Permanent.ChosenCtrl | Affe
T:Mode$ Attacks | ValidCard$ Card | Attacked$ Player.Chosen | Execute$ Abandon | TriggerZones$ Command | TriggerDescription$ When the chosen player is attacked or becomes the target of a spell or ability, abandon this scheme.
T:Mode$ BecomesTarget | ValidTarget$ Player.Chosen | TriggerZones$ Command | Execute$ Abandon | Secondary$ True | TriggerDescription$ When the chosen player is attacked or becomes the target of a spell or ability, abandon this scheme.
SVar:Abandon:AB$ Abandon | Cost$ 0
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/imprison_this_insolent_wretch.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/Imprison This Insolent Wretch.full.jpg
Oracle:When you set this scheme in motion, choose an opponent.\nPermanents the chosen player controls don't untap during his or her untap step.\nWhen the chosen player is attacked or becomes the target of a spell or ability, abandon this scheme.
diff --git a/forge-gui/res/cardsfolder/i/ink_eyes_servant_of_oni_avatar.txt b/forge-gui/res/cardsfolder/i/ink_eyes_servant_of_oni_avatar.txt
index e5c0ca05fe9..0daab850a94 100644
--- a/forge-gui/res/cardsfolder/i/ink_eyes_servant_of_oni_avatar.txt
+++ b/forge-gui/res/cardsfolder/i/ink_eyes_servant_of_oni_avatar.txt
@@ -6,5 +6,5 @@ T:Mode$ NewGame | Execute$ TrigDiscard | TriggerZones$ Command | TriggerDescript
SVar:TrigDiscard:AB$ Discard | Cost$ 0 | ValidTgts$ Opponent | Mode$ RevealYouChoose | NumCards$ 1 | DiscardValid$ Card.nonLand
A:AB$ ChangeZone | ActivationZone$ Command | Announce$ X | Cost$ X PayLife | References$ X | ValidTgts$ Creature.OppOwn+cmcEQX | TgtPrompt$ Select target creature with converted mana cost X from an opponent's graveyard | Origin$ Graveyard | Destination$ Battlefield | GainControl$ True | SpellDescription$ Put target creature card with converted mana cost X from an opponent's graveyard onto the battlefield under your control.
SVar:X:Count$xPaid
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/ink_eyes_servant_of_oni_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Ink-Eyes, Servant of Oni Avatar.full.jpg
Oracle:Hand +0, life -3\nAt the beginning of the game, look at target opponent's hand and choose a nonland card from it. That player discards that card.\n{X}, Pay X life: Put target creature card with converted mana cost X from an opponent's graveyard onto the battlefield under your control.
diff --git a/forge-gui/res/cardsfolder/i/into_the_earthen_maw.txt b/forge-gui/res/cardsfolder/i/into_the_earthen_maw.txt
index c2331051296..6b0f7b05a14 100644
--- a/forge-gui/res/cardsfolder/i/into_the_earthen_maw.txt
+++ b/forge-gui/res/cardsfolder/i/into_the_earthen_maw.txt
@@ -5,5 +5,5 @@ T:Mode$ SetInMotion | ValidCard$ Card.Self | Execute$ ExileFlying | TriggerZones
SVar:ExileFlying:AB$ ChangeZone | Cost$ 0 | Origin$ Battlefield | Destination$ Exile | TargetMin$ 0 | TargetMax$ 1 | ValidTgts$ Creature.withFlying | TgtPrompt$ Select target creature with Flying | SubAbility$ ExileWithoutFly
SVar:ExileWithoutFly:DB$ ChangeZone | Origin$ Battlefield | Destination$ Exile | TargetMin$ 0 | TargetMax$ 1 | ValidTgts$ Creature.withoutFlying | TgtPrompt$ Select target creature without Flying | SubAbility$ ExileAllYard
SVar:ExileAllYard:DB$ ChangeZoneAll | Origin$ Graveyard | Destination$ Exile | TargetMin$ 0 | TargetMax$ 1 | ValidTgts$ Opponent | ChangeType$ Card
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/into_the_earthen_maw.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/Into the Earthen Maw.full.jpg
Oracle:When you set this scheme in motion, exile up to one target creature with flying, up to one target creature without flying, and all cards from up to one target opponent's graveyard.
diff --git a/forge-gui/res/cardsfolder/i/introductions_are_in_order.txt b/forge-gui/res/cardsfolder/i/introductions_are_in_order.txt
index ea7478c138a..ca671d0294d 100644
--- a/forge-gui/res/cardsfolder/i/introductions_are_in_order.txt
+++ b/forge-gui/res/cardsfolder/i/introductions_are_in_order.txt
@@ -5,5 +5,5 @@ T:Mode$ SetInMotion | ValidCard$ Card.Self | Execute$ TrigCharm | TriggerZones$
SVar:TrigCharm:AB$ Charm | Cost$ 0 | Choices$ DBTutorCreature,DBPutCreature | CharmNum$ 1
SVar:DBTutorCreature:DB$ ChangeZone | Origin$ Library | Destination$ Hand | ChangeType$ Card.Creature | ChangeNum$ 1 | SpellDescription$ Search your library for a creature card, reveal it, put it into your hand, then shuffle your library;
SVar:DBPutCreature:DB$ ChangeZone | Origin$ Hand | Destination$ Battlefield | ChangeType$ Card.Creature | ChangeNum$ 1 | SpellDescription$ or you may put a creature card from your hand onto the battlefield.
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/introductions_are_in_order.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/Introductions Are in Order.full.jpg
Oracle:When you set this scheme in motion, choose one -\n• Search your library for a creature card, reveal it, put it into your hand, then shuffle your library.\n• You may put a creature card from your hand onto the battlefield.
diff --git a/forge-gui/res/cardsfolder/j/jaya_ballard_avatar.txt b/forge-gui/res/cardsfolder/j/jaya_ballard_avatar.txt
index 760c59ba691..f9ec53079ec 100644
--- a/forge-gui/res/cardsfolder/j/jaya_ballard_avatar.txt
+++ b/forge-gui/res/cardsfolder/j/jaya_ballard_avatar.txt
@@ -5,5 +5,5 @@ HandLifeModifier:+0/+1
A:AB$ DealDamage | ActivationZone$ Command | Cost$ X | ValidTgts$ Creature,Player | TgtPrompt$ Select target creature or player | NumDmg$ Y | References$ X,Y | ActivationLimit$ 1 | StackDescription$ SpellDescription | SpellDescription$ CARDNAME deals an amount of damage chosen at random from 0 to X to target creature or player. Activate this ability only once each turn.
SVar:X:Count$xPaid
SVar:Y:Count$Random.0.X
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/jaya_ballard_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Jaya Ballard Avatar.full.jpg
Oracle:Hand +0, life +1\n{X}: Jaya Ballard Avatar deals an amount of damage chosen at random from 0 to X to target creature or player. Activate this ability only once each turn.
diff --git a/forge-gui/res/cardsfolder/j/jhoira_of_the_ghitu_avatar.txt b/forge-gui/res/cardsfolder/j/jhoira_of_the_ghitu_avatar.txt
index 5ee6dc86294..1bd6e2b3db1 100644
--- a/forge-gui/res/cardsfolder/j/jhoira_of_the_ghitu_avatar.txt
+++ b/forge-gui/res/cardsfolder/j/jhoira_of_the_ghitu_avatar.txt
@@ -4,5 +4,5 @@ Types:Vanguard
HandLifeModifier:+1/+0
A:AB$ Play | Cost$ 3 Discard<1/Card> | ActivationZone$ Command | AnySupportedCard$ Instant | RandomCopied$ True | RandomNum$ 3 | ChoiceNum$ 1 | CopyCard$ True | WithoutManaCost$ True | SpellDescription$ Copy three instant cards chosen at random. You may cast one of the copies without paying its mana cost.
A:AB$ Play | Cost$ 3 Discard<1/Card> | ActivationZone$ Command | AnySupportedCard$ Sorcery | RandomCopied$ True | RandomNum$ 3 | ChoiceNum$ 1 | CopyCard$ True | WithoutManaCost$ True | SorcerySpeed$ True | SpellDescription$ Copy three sorcery cards chosen at random. You may cast one of the copies without paying its mana cost. Activate this ability only any time you could cast a sorcery.
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/jhoira_of_the_ghitu_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Jhoira of the Ghitu Avatar.full.jpg
Oracle:Hand +1, life +0\n{3}, Discard a card: Copy three instant cards chosen at random. You may cast one of the copies without paying its mana cost.\n{3}, Discard a card: Copy three sorcery cards chosen at random. You may cast one of the copies without paying its mana cost. Activate this ability only any time you could cast a sorcery.
diff --git a/forge-gui/res/cardsfolder/k/karn.txt b/forge-gui/res/cardsfolder/k/karn.txt
index 9ef2b2119d3..387efe41bd8 100644
--- a/forge-gui/res/cardsfolder/k/karn.txt
+++ b/forge-gui/res/cardsfolder/k/karn.txt
@@ -4,5 +4,5 @@ Types:Vanguard
HandLifeModifier:+1/+6
S:Mode$ Continuous | EffectZone$ Command | Affected$ Artifact.nonCreature+YouCtrl | SetPower$ AffectedX | SetToughness$ AffectedX | AddType$ Creature | Description$ Each noncreature artifact you control is an artifact creature with power and toughness each equal to its converted mana cost.
SVar:AffectedX:Count$CardManaCost
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/karn.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Karn.full.jpg
Oracle:Hand +1, life +6\nEach noncreature artifact you control is an artifact creature with power and toughness each equal to its converted mana cost.
diff --git a/forge-gui/res/cardsfolder/k/karona_false_god_avatar.txt b/forge-gui/res/cardsfolder/k/karona_false_god_avatar.txt
index 7a011ba01aa..183002691ba 100644
--- a/forge-gui/res/cardsfolder/k/karona_false_god_avatar.txt
+++ b/forge-gui/res/cardsfolder/k/karona_false_god_avatar.txt
@@ -7,5 +7,5 @@ SVar:TrigExchangeChoose:AB$ ChooseCard | Cost$ 0 | ValidTgts$ Opponent | Choices
SVar:ChooseYou:DB$ ChooseCard | Choices$ Permanent.YouCtrl | Amount$ 1 | AtRandom$ True | RememberChosen$ True | SubAbility$ DBExchange
SVar:DBExchange:DB$ ExchangeControl | Defined$ Remembered | BothDefined$ True | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/karona_false_god_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Karona, False God Avatar.full.jpg
Oracle:Hand -1, life +8\nAt the beginning of your upkeep, exchange control of a permanent you control chosen at random and a permanent target opponent controls chosen at random.
diff --git a/forge-gui/res/cardsfolder/k/know_naught_but_fire.txt b/forge-gui/res/cardsfolder/k/know_naught_but_fire.txt
index 898afe5a812..ff9c2e18992 100644
--- a/forge-gui/res/cardsfolder/k/know_naught_but_fire.txt
+++ b/forge-gui/res/cardsfolder/k/know_naught_but_fire.txt
@@ -5,5 +5,5 @@ T:Mode$ SetInMotion | ValidCard$ Card.Self | Execute$ DmgAll | TriggerZones$ Com
SVar:DmgAll:AB$ RepeatEach | Cost$ 0 | RepeatPlayers$ Player.Opponent | RepeatSubAbility$ DBDamage
SVar:DBDamage:DB$ DealDamage | Defined$ Player.IsRemembered | NumDmg$ X | References$ X
SVar:X:PlayerCountRemembered$CardsInHand
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/know_naught_but_fire.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/Know Naught but Fire.full.jpg
Oracle:When you set this scheme in motion, it deals damage to each opponent equal to the number of cards in that player's hand.
diff --git a/forge-gui/res/cardsfolder/k/kresh_the_bloodbraided_avatar.txt b/forge-gui/res/cardsfolder/k/kresh_the_bloodbraided_avatar.txt
index 4f2618db116..2133a7910d7 100644
--- a/forge-gui/res/cardsfolder/k/kresh_the_bloodbraided_avatar.txt
+++ b/forge-gui/res/cardsfolder/k/kresh_the_bloodbraided_avatar.txt
@@ -5,5 +5,5 @@ HandLifeModifier:+1/-3
T:Mode$ Devoured | ValidDevoured$ Creature.YouCtrl | TriggerZones$ Command | Execute$ TrigToken | TriggerDescription$ Whenever a creature you control is devoured, put an X/X green Ooze creature token onto the battlefield, where X is the devoured creature's power.
SVar:TrigToken:AB$ Token | Cost$ 0 | TokenAmount$ 1 | TokenName$ Ooze | TokenTypes$ Creature,Ooze | TokenOwner$ You | TokenColors$ Green | TokenPower$ X | TokenToughness$ X | References$ X | TokenImage$ g x x ooze rtr | SpellDescription$ Put an X/X green Ooze creature token onto the battlefield.
SVar:X:TriggeredDevoured$CardPower
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/kresh_the_bloodbraided_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Kresh the Bloodbraided Avatar.full.jpg
Oracle:Hand +1, life -3\nWhenever a creature you control is devoured, put an X/X green Ooze creature token onto the battlefield, where X is the devoured creature's power.
diff --git a/forge-gui/res/cardsfolder/l/look_skyward_and_despair.txt b/forge-gui/res/cardsfolder/l/look_skyward_and_despair.txt
index 3cbe0e2f041..ff34475dda7 100644
--- a/forge-gui/res/cardsfolder/l/look_skyward_and_despair.txt
+++ b/forge-gui/res/cardsfolder/l/look_skyward_and_despair.txt
@@ -3,5 +3,5 @@ ManaCost:no cost
Types:Scheme
T:Mode$ SetInMotion | ValidCard$ Card.Self | Execute$ DarkEffect | TriggerZones$ Command | TriggerDescription$ When you set this scheme in motion, put a 5/5 red Dragon creature token with flying onto the battlefield.
SVar:DarkEffect:AB$ Token | Cost$ 0 | TokenAmount$ 1 | TokenName$ Dragon | TokenTypes$ Creature,Dragon | TokenOwner$ You | TokenColors$ Red | TokenPower$ 5 | TokenToughness$ 5 | TokenKeywords$ Flying
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/look_skyward_and_despair.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/Look Skyward and Despair.full.jpg
Oracle:When you set this scheme in motion, put a 5/5 red Dragon creature token with flying onto the battlefield.
diff --git a/forge-gui/res/cardsfolder/l/loxodon_hierarch_avatar.txt b/forge-gui/res/cardsfolder/l/loxodon_hierarch_avatar.txt
index d7a72a8a0e0..64fb25085b7 100644
--- a/forge-gui/res/cardsfolder/l/loxodon_hierarch_avatar.txt
+++ b/forge-gui/res/cardsfolder/l/loxodon_hierarch_avatar.txt
@@ -3,5 +3,5 @@ ManaCost:no cost
Types:Vanguard
HandLifeModifier:+0/+12
A:AB$ Regenerate | ActivationZone$ Command | Cost$ Sac<1/Permanent> | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | SpellDescription$ Regenerate target creature you control.
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/loxodon_hierarch_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Loxodon Hierarch Avatar.full.jpg
Oracle:Hand +0, life +12\nSacrifice a permanent: Regenerate target creature you control.
diff --git a/forge-gui/res/cardsfolder/l/lyna.txt b/forge-gui/res/cardsfolder/l/lyna.txt
index 8d7b5c41aff..8ffdcc6858d 100644
--- a/forge-gui/res/cardsfolder/l/lyna.txt
+++ b/forge-gui/res/cardsfolder/l/lyna.txt
@@ -3,5 +3,5 @@ ManaCost:no cost
Types:Vanguard
HandLifeModifier:+2/-4
S:Mode$ Continuous | EffectZone$ Command | Affected$ Creature.YouCtrl | AddKeyword$ Shadow | Description$ Creatures you control have shadow. (They can block and be blocked only by creatures with shadow.)
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/lyna.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Lyna.full.jpg
Oracle:Hand +2, life -4\nCreatures you control have shadow. (They can block and be blocked only by creatures with shadow.)
diff --git a/forge-gui/res/cardsfolder/l/lyzolda_the_blood_witch_avatar.txt b/forge-gui/res/cardsfolder/l/lyzolda_the_blood_witch_avatar.txt
index 2d64cc291f0..3f17a054429 100644
--- a/forge-gui/res/cardsfolder/l/lyzolda_the_blood_witch_avatar.txt
+++ b/forge-gui/res/cardsfolder/l/lyzolda_the_blood_witch_avatar.txt
@@ -9,5 +9,5 @@ SVar:DmgTwiceCombat:AB$ DealDamage | Cost$ 0 | CombatDamage$ True | Defined$ Rep
SVar:X:ReplaceCount$DamageAmount/Twice
T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Command | Hellbent$ True | Execute$ LyzoldasDiscard | TriggerDescription$ Hellbent - At the beginning of your end step, if you have no cards in hand, each of your opponents discards a card.
SVar:LyzoldasDiscard:AB$ Discard | Cost$ 0 | Defined$ Player.Opponent | NumCards$ 1 | Mode$ TgtChoose
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/lyzolda_the_blood_witch_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Lyzolda, the Blood Witch Avatar.full.jpg
Oracle:Hand -1, life -1\nHellbent - As long as you have no cards in hand, if a source you control would deal damage to a creature or player, it deals double that damage to that creature or player instead.\nHellbent - At the beginning of your end step, if you have no cards in hand, each of your opponents discards a card.
diff --git a/forge-gui/res/cardsfolder/m/maralen_of_the_mornsong_avatar.txt b/forge-gui/res/cardsfolder/m/maralen_of_the_mornsong_avatar.txt
index 77aa5aa88f1..7d69a904fe8 100644
--- a/forge-gui/res/cardsfolder/m/maralen_of_the_mornsong_avatar.txt
+++ b/forge-gui/res/cardsfolder/m/maralen_of_the_mornsong_avatar.txt
@@ -11,5 +11,5 @@ T:Mode$ Phase | Phase$ Draw | ValidPlayer$ You | TriggerZones$ Command | Execute
SVar:TrigDig:AB$ Dig | Cost$ 0 | DigNum$ LifePaidOnNewGame | References$ LifePaidOnNewGame | ChangeNum$ 1 | LibraryPosition$ 0 | SubAbility$ DBShuffle
SVar:DBShuffle:DB$ Shuffle | Defined$ You
SVar:RemAIDeck:True
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/maralen_of_the_mornsong_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Maralen of the Mornsong Avatar.full.jpg
Oracle:Hand +0, life -3\nAt the beginning of the game, you may pay any amount of life.\nYou can't draw cards.\nAt the beginning of your draw step, look at the top X cards of your library, where X is the amount of life paid with Maralen of the Mornsong Avatar. Put one of them into your hand, then shuffle your library.
diff --git a/forge-gui/res/cardsfolder/m/maraxus.txt b/forge-gui/res/cardsfolder/m/maraxus.txt
index 4b965772580..2851cd6495f 100644
--- a/forge-gui/res/cardsfolder/m/maraxus.txt
+++ b/forge-gui/res/cardsfolder/m/maraxus.txt
@@ -3,5 +3,5 @@ ManaCost:no cost
Types:Vanguard
HandLifeModifier:+1/+2
S:Mode$ Continuous | EffectZone$ Command | Affected$ Creature.YouCtrl | AddPower$ 1 | Description$ Creatures you control get +1/+0.
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/maraxus.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Maraxus.full.jpg
Oracle:Hand +1, life +2\nCreatures you control get +1/+0.
diff --git a/forge-gui/res/cardsfolder/m/maro_avatar.txt b/forge-gui/res/cardsfolder/m/maro_avatar.txt
index 70128f733b4..47d7cf1acb3 100644
--- a/forge-gui/res/cardsfolder/m/maro_avatar.txt
+++ b/forge-gui/res/cardsfolder/m/maro_avatar.txt
@@ -4,6 +4,6 @@ Types:Vanguard
HandLifeModifier:+2/-7
A:AB$ Pump | Cost$ tapXType<1/Creature> Discard<1/Card> | ActivationZone$ Command | ValidTgts$ Creature | NumAtt$ +X | NumDef$ +X | SpellDescription$ Target creature you control gets +X/+X until end of turn, where X is the number of cards in your hand.
SVar:X:Count$InYourHand
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/maro_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Maro Avatar.full.jpg
SVar:RemAIDeck:True
Oracle:Hand +2, life -7\nTap an untapped creature you control, Discard a card: Target creature you control gets +X/+X until end of turn, where X is the number of cards in your hand.
diff --git a/forge-gui/res/cardsfolder/m/master_of_the_wild_hunt_avatar.txt b/forge-gui/res/cardsfolder/m/master_of_the_wild_hunt_avatar.txt
index 1fb4d73488d..5acaaacb2b6 100644
--- a/forge-gui/res/cardsfolder/m/master_of_the_wild_hunt_avatar.txt
+++ b/forge-gui/res/cardsfolder/m/master_of_the_wild_hunt_avatar.txt
@@ -7,5 +7,5 @@ SVar:Wolf:DB$ Token | TokenAmount$ 1 | TokenName$ Wolf | TokenTypes$ Creature,Wo
SVar:Antelope:DB$ Token | TokenAmount$ 1 | TokenName$ Antelope | TokenTypes$ Creature,Antelope | TokenOwner$ You | TokenColors$ Green | TokenPower$ 2 | TokenToughness$ 3 | TokenKeywords$ Forestwalk | SpellDescription$ Antelope
SVar:Cat:DB$ Token | TokenAmount$ 1 | TokenName$ Cat | TokenTypes$ Creature,Cat | TokenOwner$ You | TokenColors$ Green | TokenPower$ 3 | TokenToughness$ 2 | TokenKeywords$ Shroud | SpellDescription$ Cat
SVar:Rhino:DB$ Token | TokenAmount$ 1 | TokenName$ Rhino | TokenTypes$ Creature,Rhino | TokenOwner$ You | TokenColors$ Green | TokenPower$ 4 | TokenToughness$ 4 | TokenKeywords$ Trample | SpellDescription$ Rhino
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/master_of_the_wild_hunt_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Master of the Wild Hunt Avatar.full.jpg
Oracle:Hand +1, life +3\n{2}{G}: Put a green creature token onto the battlefield that's a 2/2 Wolf, a 2/3 Antelope with forestwalk, a 3/2 Cat with shroud, or a 4/4 Rhino with trample, chosen at random.
diff --git a/forge-gui/res/cardsfolder/m/mayael_the_anima_avatar.txt b/forge-gui/res/cardsfolder/m/mayael_the_anima_avatar.txt
index 12b1f8fd1eb..fa0b9454678 100644
--- a/forge-gui/res/cardsfolder/m/mayael_the_anima_avatar.txt
+++ b/forge-gui/res/cardsfolder/m/mayael_the_anima_avatar.txt
@@ -7,5 +7,5 @@ SVar:TrigDig:AB$ Dig | Cost$ 0 | DigNum$ 1 | Reveal$ True | ChangeNum$ All | Cha
SVar:DBDig:DB$ Dig | DigNum$ 1 | DestinationZone$ Library | Optional$ True | LibraryPosition$ -1 | LibraryPosition2$ 0 | ConditionCheckSVar$ X | ConditionSVarCompare$ EQ0 | SubAbility$ DBCleanup | References$ X
SVar:X:Remembered$Amount
SVar:DBCleanup:DB$Cleanup | ClearRemembered$ True
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/mayael_the_anima_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Mayael the Anima Avatar.full.jpg
Oracle:Hand +1, life +5\nAt the beginning of your upkeep, reveal the top card of your library. If it's a creature card with power 5 or greater, put it into your hand. Otherwise, you may put it on the bottom of your library.
diff --git a/forge-gui/res/cardsfolder/m/mirri.txt b/forge-gui/res/cardsfolder/m/mirri.txt
index bd5203394a2..d44ee899000 100644
--- a/forge-gui/res/cardsfolder/m/mirri.txt
+++ b/forge-gui/res/cardsfolder/m/mirri.txt
@@ -5,5 +5,5 @@ HandLifeModifier:+0/+5
R:Event$ ProduceMana | ActiveZones$ Command | ValidCard$ Land.Basic+YouCtrl | ManaReplacement$ ProduceAny | Description$ If a basic land you control is tapped for mana, it produces mana of a color of your choice instead of any other type.
SVar:ProduceAny:Colorless->Any & B->Any & R->Any & G->Any & W->Any & U->Any
SVar:RemAIDeck:True
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/mirri.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Mirri.full.jpg
Oracle:Hand +0, life +5\nIf a basic land you control is tapped for mana, it produces mana of a color of your choice instead of any other type.
diff --git a/forge-gui/res/cardsfolder/m/mirri_the_cursed_avatar.txt b/forge-gui/res/cardsfolder/m/mirri_the_cursed_avatar.txt
index 0f7a0f473ba..56b151f7519 100644
--- a/forge-gui/res/cardsfolder/m/mirri_the_cursed_avatar.txt
+++ b/forge-gui/res/cardsfolder/m/mirri_the_cursed_avatar.txt
@@ -5,5 +5,5 @@ HandLifeModifier:-2/-3
S:Mode$ Continuous | EffectZone$ Command | AffectedZone$ Battlefield | Affected$ Creature.YouCtrl | AddAbility$ MirriPump | AddSVar$ MirriPutCounter | Description$ Creatures you control have "{T}: Another target creature gets -1/-1 until end of turn. Put a +1/+1 counter on this creature."
SVar:MirriPump:AB$ Pump | Cost$ T | ValidTgts$ Creature.Other | NumAtt$ -1 | NumDef$ -1 | SubAbility$ MirriPutCounter | SpellDescription$ Another target creature gets -1/-1 until end of turn. Put a +1/+1 counter on this creature.
SVar:MirriPutCounter:DB$ PutCounter | Defined$ Self | CounterType$ P1P1 | CounterNum$ 1
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/mirri_the_cursed_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Mirri the Cursed Avatar.full.jpg
Oracle:Hand -2, life -3\nCreatures you control have "{T}: Another target creature gets -1/-1 until end of turn. Put a +1/+1 counter on this creature."
diff --git a/forge-gui/res/cardsfolder/m/mirror_entity_avatar.txt b/forge-gui/res/cardsfolder/m/mirror_entity_avatar.txt
index 6085a3e08d2..295677c3d22 100644
--- a/forge-gui/res/cardsfolder/m/mirror_entity_avatar.txt
+++ b/forge-gui/res/cardsfolder/m/mirror_entity_avatar.txt
@@ -6,5 +6,5 @@ A:AB$ ChooseType | ActivationZone$ Command | Cost$ X | Defined$ You | Type$ Crea
SVar:DBAnimate:DB$ AnimateAll | Power$ X | Toughness$ X | References$ X | Types$ AllCreatureTypes | ValidCards$ Creature.YouCtrl+ChosenType
SVar:X:Count$xPaid
SVar:RemAIDeck:True
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/mirror_entity_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Mirror Entity Avatar.full.jpg
Oracle:Hand +1, life -2\n{X}: Choose a creature type. Until end of turn, creatures you control of the chosen type become X/X and gain all creature types.
diff --git a/forge-gui/res/cardsfolder/m/mishra.txt b/forge-gui/res/cardsfolder/m/mishra.txt
index db9aab2f68e..e9d660a2d57 100644
--- a/forge-gui/res/cardsfolder/m/mishra.txt
+++ b/forge-gui/res/cardsfolder/m/mishra.txt
@@ -7,5 +7,5 @@ R:Event$ DamageDone | ActiveZones$ Command | ValidSource$ Creature.YouCtrl | Rep
SVar:DmgTimes2:AB$ DealDamage | Cost$ 0 | Defined$ ReplacedTarget | DamageSource$ ReplacedSource | NumDmg$ X | References$ X
SVar:DmgTimes2Combat:AB$ DealDamage | Cost$ 0 | CombatDamage$ True | Defined$ ReplacedTarget | DamageSource$ ReplacedSource | NumDmg$ X | References$ X
SVar:X:ReplaceCount$DamageAmount/Twice
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/mishra.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Mishra.full.jpg
Oracle:Hand +0, life -3\nIf a creature you control would deal damage, it deals double that damage instead.
diff --git a/forge-gui/res/cardsfolder/m/momir_vig_simic_visionary_avatar.txt b/forge-gui/res/cardsfolder/m/momir_vig_simic_visionary_avatar.txt
index 9df46467275..16f3f36bcac 100644
--- a/forge-gui/res/cardsfolder/m/momir_vig_simic_visionary_avatar.txt
+++ b/forge-gui/res/cardsfolder/m/momir_vig_simic_visionary_avatar.txt
@@ -5,5 +5,5 @@ HandLifeModifier:+0/+4
A:AB$ NameCard | Cost$ X Discard<1/Card> | AILogic$ MomirAvatar | ActivationZone$ Command | AtRandom$ True | ValidCards$ Creature | ValidAttribute$ cmcEQX | References$ X | Amount$ 1 | SubAbility$ DBToken | SorcerySpeed$ True | ActivationLimit$ 1 | AILogic$ MomirAvatar | SpellDescription$ Put a token onto the battlefield that's a copy of a creature card with converted mana cost X chosen at random. Activate this ability only any time you could cast a sorcery and only once each turn. | StackDescription$ SpellDescription
SVar:DBToken:DB$ CopyPermanent | ValidSupportedCopy$ Card | DefinedName$ NamedCard | NumCopies$ 1 | StackDescription$
SVar:X:Count$xPaid
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/momir_vig_simic_visionary_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Momir Vig, Simic Visionary Avatar.full.jpg
Oracle:Hand +0, life +4\n{X}, Discard a card: Put a token onto the battlefield that's a copy of a creature card with converted mana cost X chosen at random. Activate this ability only any time you could cast a sorcery and only once each turn.
diff --git a/forge-gui/res/cardsfolder/m/morinfen_avatar.txt b/forge-gui/res/cardsfolder/m/morinfen_avatar.txt
index 66f203129ce..ac8c51b7d43 100644
--- a/forge-gui/res/cardsfolder/m/morinfen_avatar.txt
+++ b/forge-gui/res/cardsfolder/m/morinfen_avatar.txt
@@ -7,5 +7,5 @@ SVar:TrigLoseLife:AB$ LoseLife | Cost$ 0 | Defined$ You | LifeAmount$ Ouch
SVar:Ouch:Count$Valid Permanent.YouCtrl
SVar:RemAIDeck:True
SVar:RemRandomDeck:True
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/morinfen_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Morinfen Avatar.full.jpg
Oracle:Hand +0, life +30\nAt the beginning of your upkeep, you lose 1 life for each permanent you control.
diff --git a/forge-gui/res/cardsfolder/m/mortal_flesh_is_weak.txt b/forge-gui/res/cardsfolder/m/mortal_flesh_is_weak.txt
index 717e4c62c08..75ccd046f6d 100644
--- a/forge-gui/res/cardsfolder/m/mortal_flesh_is_weak.txt
+++ b/forge-gui/res/cardsfolder/m/mortal_flesh_is_weak.txt
@@ -4,5 +4,5 @@ Types:Scheme
T:Mode$ SetInMotion | ValidCard$ Card.Self | Execute$ ShowTheWeakness | TriggerZones$ Command | TriggerDescription$ When you set this scheme in motion, each opponent's life total becomes the lowest life total among your opponents.
SVar:ShowTheWeakness:AB$ SetLife | Cost$ 0 | Defined$ Player.Opponent | LifeAmount$ X | References$ X
SVar:X:PlayerCountOpponents$LowestLifeTotal
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/mortal_flesh_is_weak.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/Mortal Flesh Is Weak.full.jpg
Oracle:When you set this scheme in motion, each opponent's life total becomes the lowest life total among your opponents.
diff --git a/forge-gui/res/cardsfolder/m/multani.txt b/forge-gui/res/cardsfolder/m/multani.txt
index e00d1802d2e..7d83430819b 100644
--- a/forge-gui/res/cardsfolder/m/multani.txt
+++ b/forge-gui/res/cardsfolder/m/multani.txt
@@ -4,5 +4,5 @@ Types:Vanguard
HandLifeModifier:-3/-2
S:Mode$ Continuous | EffectZone$ Command | Affected$ Creature.YouCtrl | AddPower$ X | References$ X | Description$ Creatures you control get +X/+0, where X is the number of cards in your hand.
SVar:X:Count$CardsInYourHand
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/multani.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Multani.full.jpg
Oracle:Hand -3, life -2\nCreatures you control get +X/+0, where X is the number of cards in your hand.
diff --git a/forge-gui/res/cardsfolder/m/murderous_redcap_avatar.txt b/forge-gui/res/cardsfolder/m/murderous_redcap_avatar.txt
index f818e5e1d36..633a1830649 100644
--- a/forge-gui/res/cardsfolder/m/murderous_redcap_avatar.txt
+++ b/forge-gui/res/cardsfolder/m/murderous_redcap_avatar.txt
@@ -5,5 +5,5 @@ HandLifeModifier:+0/-2
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.YouCtrl+HasCounters | TriggerZones$ Command | Execute$ TrigDamage | TriggerDescription$ Whenever a creature enters the battlefield under your control with a counter on it, you may have it deal damage equal to its power to target creature or player.
SVar:TrigDamage:AB$ DealDamage | Cost$ 0 | ValidTgts$ Creature,Player | TgtPrompt$ Select target creature or player | DamageSource$ TriggeredCard | NumDmg$ Damage | References$ Damage
SVar:Damage:TriggeredCard$CardPower
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/murderous_redcap_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Murderous Redcap Avatar.full.jpg
Oracle:Hand +0, life -2\nWhenever a creature enters the battlefield under your control with a counter on it, you may have it deal damage equal to its power to target creature or player.
diff --git a/forge-gui/res/cardsfolder/m/my_genius_knows_no_bounds.txt b/forge-gui/res/cardsfolder/m/my_genius_knows_no_bounds.txt
index 1301b0ed011..8bbe26a48e1 100644
--- a/forge-gui/res/cardsfolder/m/my_genius_knows_no_bounds.txt
+++ b/forge-gui/res/cardsfolder/m/my_genius_knows_no_bounds.txt
@@ -5,5 +5,5 @@ T:Mode$ SetInMotion | ValidCard$ Card.Self | Execute$ GeniusLife | TriggerZones$
SVar:GeniusLife:AB$ GainLife | Cost$ X | Defined$ You | LifeAmount$ X | SubAbility$ GeniusCards
SVar:GeniusCards:DB$ Draw | Defined$ You | NumCards$ X
SVar:X:Count$xPaid
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/my_genius_knows_no_bounds.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/My Genius Knows No Bounds.full.jpg
Oracle:When you set this scheme in motion, you may pay {X}. If you do, you gain X life and draw X cards.
diff --git a/forge-gui/res/cardsfolder/m/my_undead_horde_awakens.txt b/forge-gui/res/cardsfolder/m/my_undead_horde_awakens.txt
index 5866871870f..1073612072c 100644
--- a/forge-gui/res/cardsfolder/m/my_undead_horde_awakens.txt
+++ b/forge-gui/res/cardsfolder/m/my_undead_horde_awakens.txt
@@ -5,5 +5,5 @@ T:Mode$ Phase | Phase$ End of Turn | ValidPlayer$ You | TriggerZones$ Command |
SVar:TrigNecromancy:AB$ ChangeZone | Cost$ 0 | ValidTgts$ Creature.OppCtrl | Origin$ Graveyard | Destination$ Battlefield | GainControl$ True | RememberChanged$ True
T:Mode$ ChangesZone | ValidCard$ Creature.IsRemembered | Origin$ Battlefield | Destination$ Graveyard | Execute$ TrigAbandon | TriggerZones$ Command | TriggerDescription$ When a creature put onto the battlefield with this scheme dies, abandon this scheme.
SVar:TrigAbandon:AB$ Abandon | Cost$ 0
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/my_undead_horde_awakens.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/My Undead Horde Awakens.full.jpg
Oracle:(An ongoing scheme remains face up until it's abandoned.)\nAt the beginning of your end step, you may put target creature card from an opponent's graveyard onto the battlefield under your control.\nWhen a creature put onto the battlefield with this scheme dies, abandon this scheme.
diff --git a/forge-gui/res/cardsfolder/m/my_wish_is_your_command.txt b/forge-gui/res/cardsfolder/m/my_wish_is_your_command.txt
index 5aef8879af2..8c0d2653c82 100644
--- a/forge-gui/res/cardsfolder/m/my_wish_is_your_command.txt
+++ b/forge-gui/res/cardsfolder/m/my_wish_is_your_command.txt
@@ -5,5 +5,5 @@ T:Mode$ SetInMotion | ValidCard$ Card.Self | Execute$ MyWish | TriggerZones$ Com
SVar:MyWish:AB$ RevealHand | Cost$ 0 | Defined$ Player.Opponent | RememberRevealed$ True | SubAbility$ MyPleasure
SVar:MyPleasure:DB$ Play | Valid$ Card.nonCreature+nonLand+IsRemembered | WithoutManaCost$ True | Optional$ True | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/my_wish_is_your_command.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/My Wish Is Your Command.full.jpg
Oracle:When you set this scheme in motion, each opponent reveals his or her hand. You may choose a noncreature, nonland card revealed this way and cast it without paying its mana cost.
diff --git a/forge-gui/res/cardsfolder/n/nature_demands_an_offering.txt b/forge-gui/res/cardsfolder/n/nature_demands_an_offering.txt
index a9a7b4fae7b..b58ec5c0943 100644
--- a/forge-gui/res/cardsfolder/n/nature_demands_an_offering.txt
+++ b/forge-gui/res/cardsfolder/n/nature_demands_an_offering.txt
@@ -16,5 +16,5 @@ SVar:BounceLand:DB$ ChangeZone | Defined$ ChosenCard | Origin$ Battlefield | Des
SVar:DBRemember4:DB$ Pump | RememberObjects$ ImprintedOwner | SubAbility$ DBShuffle
SVar:DBShuffle:DB$ Shuffle | Defined$ Remembered | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True | ClearImprinted$ True
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/nature_demands_an_offering.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/Nature Demands an Offering.full.jpg
Oracle:When you set this scheme in motion, target opponent chooses a creature you don't control and puts it on top of its owner's library, then repeats this process for an artifact, an enchantment, and a land. Then the owner of each permanent chosen this way shuffles his or her library.
diff --git a/forge-gui/res/cardsfolder/n/nature_shields_its_own.txt b/forge-gui/res/cardsfolder/n/nature_shields_its_own.txt
index 3bf8711dfe7..919271b2bc6 100644
--- a/forge-gui/res/cardsfolder/n/nature_shields_its_own.txt
+++ b/forge-gui/res/cardsfolder/n/nature_shields_its_own.txt
@@ -7,5 +7,5 @@ T:Mode$ AttackersDeclared | DelayedTrigger$ DelTrigEOC | CheckSVar$ NatureShield
SVar:DelTrigEOC:Mode$ Phase | Phase$ EndCombat | ValidPlayer$ Player | Execute$ Abandon | TriggerDescription$ Abandon this scheme at end of combat.
SVar:Abandon:AB$ Abandon | Cost$ 0
SVar:NatureShields:Count$Valid Creature.attackingYou
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/nature_shields_its_own.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/Nature Shields Its Own.full.jpg
Oracle:(An ongoing scheme remains face up until it's abandoned.)\nWhenever a creature attacks and isn't blocked, if you're the defending player, put a 0/1 green Plant creature token onto the battlefield blocking that creature.\nWhen four or more creatures attack you, abandon this scheme at end of combat.
diff --git a/forge-gui/res/cardsfolder/n/necropotence_avatar.txt b/forge-gui/res/cardsfolder/n/necropotence_avatar.txt
index 85f4a136688..04db49afe7c 100644
--- a/forge-gui/res/cardsfolder/n/necropotence_avatar.txt
+++ b/forge-gui/res/cardsfolder/n/necropotence_avatar.txt
@@ -9,6 +9,6 @@ SVar:TrigDraw:DB$Draw | Defined$ You | NumCards$ X | SubAbility$ DBLoseLife | Re
SVar:DBLoseLife:DB$LoseLife | Defined$ You | LifeAmount$ X | References$ X
SVar:X:Count$CardCounters.DEATH
SVar:Turns:Count$TotalTurns
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/necropotence_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Necropotence Avatar.full.jpg
SVar:RemAIDeck:True
Oracle:Hand +0, life +4\nSkip your draw step.\nAt the beginning of your end step, if it's not the first turn of the game, put a death counter on Necropotence Avatar. You draw X cards and you lose X life, where X is the number of death counters on Necropotence Avatar.
diff --git a/forge-gui/res/cardsfolder/n/nekrataal_avatar.txt b/forge-gui/res/cardsfolder/n/nekrataal_avatar.txt
index 83be24d3cc8..d4fd089b1d6 100644
--- a/forge-gui/res/cardsfolder/n/nekrataal_avatar.txt
+++ b/forge-gui/res/cardsfolder/n/nekrataal_avatar.txt
@@ -4,5 +4,5 @@ Types:Vanguard
HandLifeModifier:-1/-4
S:Mode$ ReduceCost | EffectZone$ Command | ValidCard$ Creature | Type$ Spell | Activator$ You | Amount$ 1 | Color$ B | Description$ Creature spells you cast cost {B} less to cast. This effect reduces only the amount of colored mana you pay.
SVar:RemRandomDeck:True
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/nekrataal_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Nekrataal Avatar.full.jpg
Oracle:Hand -1, life -4\nCreature spells you cast cost {B} less to cast. This effect reduces only the amount of colored mana you pay.
diff --git a/forge-gui/res/cardsfolder/n/nothing_can_stop_me_now.txt b/forge-gui/res/cardsfolder/n/nothing_can_stop_me_now.txt
index 8b06cddd108..c7ba97ad73c 100644
--- a/forge-gui/res/cardsfolder/n/nothing_can_stop_me_now.txt
+++ b/forge-gui/res/cardsfolder/n/nothing_can_stop_me_now.txt
@@ -6,5 +6,5 @@ S:Mode$ PreventDamage | EffectZone$ Command | Target$ You | Source$ Card.OppCtrl
T:Mode$ Phase | Phase$ End of Turn | CheckSVar$ X | SVarCompare$ GE5 | TriggerZones$ Command | Execute$ Abandon | TriggerDescription$ At the beginning of each end step, if you've been dealt 5 or more damage this turn, abandon this scheme.
SVar:Abandon:AB$ Abandon | Cost$ 0
SVar:X:Count$YourDamageThisTurn
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/nothing_can_stop_me_now.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/Nothing Can Stop Me Now.full.jpg
Oracle:(An ongoing scheme remains face up until it's abandoned.)\nIf a source an opponent controls would deal damage to you, prevent 1 of that damage.\nAt the beginning of each end step, if you've been dealt 5 or more damage this turn, abandon this scheme.
diff --git a/forge-gui/res/cardsfolder/o/oni_of_wild_places_avatar.txt b/forge-gui/res/cardsfolder/o/oni_of_wild_places_avatar.txt
index dcd59dfd32a..b6d0d204bbe 100644
--- a/forge-gui/res/cardsfolder/o/oni_of_wild_places_avatar.txt
+++ b/forge-gui/res/cardsfolder/o/oni_of_wild_places_avatar.txt
@@ -5,5 +5,5 @@ HandLifeModifier:+0/-2
S:Mode$ Continuous | EffectZone$ Command | AffectedZone$ Battlefield | Affected$ Creature.YouCtrl | AddKeyword$ Haste | Description$ Creatures you control have haste.
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | IsPresent$ Creature | PresentZone$ Battlefield | PresentPlayer$ You | Execute$ TrigBounce | TriggerZones$ Command | TriggerDescription$ At the beginning of your upkeep, return a creature you control to its owner's hand.
SVar:TrigBounce:AB$ ChangeZone | Cost$ 0 | Origin$ Battlefield | Destination$ Hand | Mandatory$ True | Hidden$ True | ChangeType$ Creature.YouCtrl
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/oni_of_wild_places_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Oni of Wild Places Avatar.full.jpg
Oracle:Hand +0, life -2\nCreatures you control have haste.\nAt the beginning of your upkeep, return a creature you control to its owner's hand.
diff --git a/forge-gui/res/cardsfolder/o/only_blood_ends_your_nightmares.txt b/forge-gui/res/cardsfolder/o/only_blood_ends_your_nightmares.txt
index f4f60fb79b7..28933c59322 100644
--- a/forge-gui/res/cardsfolder/o/only_blood_ends_your_nightmares.txt
+++ b/forge-gui/res/cardsfolder/o/only_blood_ends_your_nightmares.txt
@@ -7,5 +7,5 @@ SVar:DBRepeat:DB$ RepeatEach | RepeatPlayers$ Player.Opponent | RepeatSubAbility
SVar:DBDiscard:DB$ Discard | Defined$ Player.IsRemembered | Mode$ TgtChoose | NumCards$ 2 | ConditionCheckSVar$ X | ConditionSVarCompare$ EQ0 | References$ X
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
SVar:X:Remembered$Valid Card.RememberedPlayerCtrl
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/only_blood_ends_your_nightmares.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/Only Blood Ends Your Nightmares.full.jpg
Oracle:When you set this scheme in motion, each opponent sacrifices a creature. Then each opponent who didn't sacrifice a creature discards two cards.
diff --git a/forge-gui/res/cardsfolder/o/oracle.txt b/forge-gui/res/cardsfolder/o/oracle.txt
index 0acbeeb3906..75694f915ef 100644
--- a/forge-gui/res/cardsfolder/o/oracle.txt
+++ b/forge-gui/res/cardsfolder/o/oracle.txt
@@ -5,5 +5,5 @@ HandLifeModifier:+1/+9
A:AB$ Untap | ActivationZone$ Command | Cost$ 0 | ValidTgts$ Creature.attacking+youCtrl | TgtPrompt$ Select target attacking creature you control | SubAbility$ Reconsider | SpellDescription$ Untap target attacking creature you control and remove it from combat.
SVar:Reconsider:DB$ RemoveFromCombat | Defined$ Targeted
SVar:RemAIDeck:True
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/oracle.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Oracle.full.jpg
Oracle:Hand +1, life +9\n{0}: Untap target attacking creature you control and remove it from combat.
diff --git a/forge-gui/res/cardsfolder/o/orcish_squatters_avatar.txt b/forge-gui/res/cardsfolder/o/orcish_squatters_avatar.txt
index f56cb59f65a..c425402a968 100644
--- a/forge-gui/res/cardsfolder/o/orcish_squatters_avatar.txt
+++ b/forge-gui/res/cardsfolder/o/orcish_squatters_avatar.txt
@@ -7,5 +7,5 @@ SVar:TrigGetMana:AB$ Pump | Cost$ 0 | ValidTgts$ Player | RememberObjects$ Targe
SVar:DBMana:DB$ Mana | Produced$ 1 | Amount$ X | References$ X | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
SVar:X:Count$Valid Land.RememberedPlayerCtrl
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/orcish_squatters_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Orcish Squatters Avatar.full.jpg
Oracle:Hand -1, life -1\nAt the beginning of your precombat main phase, add {X} to your mana pool, where X is the number of lands target opponent controls.
diff --git a/forge-gui/res/cardsfolder/o/orim.txt b/forge-gui/res/cardsfolder/o/orim.txt
index 20b3f217a9b..4c890103c32 100644
--- a/forge-gui/res/cardsfolder/o/orim.txt
+++ b/forge-gui/res/cardsfolder/o/orim.txt
@@ -3,5 +3,5 @@ ManaCost:no cost
Types:Vanguard
HandLifeModifier:+0/+12
S:Mode$ Continuous | EffectZone$ Command | Affected$ Creature.YouCtrl | AddKeyword$ Reach | Description$ Creatures you control have reach.
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/orim.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Orim.full.jpg
Oracle:Hand +0, life +12\nCreatures you control have reach.
diff --git a/forge-gui/res/cardsfolder/p/peacekeeper_avatar.txt b/forge-gui/res/cardsfolder/p/peacekeeper_avatar.txt
index 3e6d5a0bc68..d39f99070a0 100644
--- a/forge-gui/res/cardsfolder/p/peacekeeper_avatar.txt
+++ b/forge-gui/res/cardsfolder/p/peacekeeper_avatar.txt
@@ -5,5 +5,5 @@ HandLifeModifier:+0/+9
A:AB$ RepeatEach | Cost$ 3 | ActivationZone$ Command | RepeatPlayers$ Player.Opponent | RepeatSubAbility$ ArrestEach | StackDescription$ SpellDescription | SpellDescription$ For each opponent who controls a creature, put a token onto the battlefield that's a copy of a card named Arrest and attach it to a creature that player controls chosen at random.
SVar:ArrestEach:DB$ ChooseCard | Amount$ 1 | Choices$ Creature.RememberedPlayerCtrl | AtRandom$ True | SubAbility$ DBAttach
SVar:DBAttach:DB$ CopyPermanent | NumCopies$ 1 | ValidSupportedCopy$ Card.namedArrest | DefinedName$ Arrest | AttachedTo$ ChosenCard | ConditionDefined$ ChosenCard | ConditionPresent$ Creature | ConditionCompare$ GE1
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/peacekeeper_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Peacekeeper Avatar.full.jpg
Oracle:Hand +0, life +9\n{3}: For each opponent who controls a creature, put a token onto the battlefield that's a copy of a card named Arrest and attach it to a creature that player controls chosen at random.
diff --git a/forge-gui/res/cardsfolder/p/perhaps_youve_met_my_cohort.txt b/forge-gui/res/cardsfolder/p/perhaps_youve_met_my_cohort.txt
index 896745b1812..6d6825ce747 100644
--- a/forge-gui/res/cardsfolder/p/perhaps_youve_met_my_cohort.txt
+++ b/forge-gui/res/cardsfolder/p/perhaps_youve_met_my_cohort.txt
@@ -3,5 +3,5 @@ ManaCost:no cost
Types:Scheme
T:Mode$ SetInMotion | ValidCard$ Card.Self | Execute$ DarkEffect | TriggerZones$ Command | TriggerDescription$ When you set this scheme in motion, search your library for a planeswalker card and put that card onto the battlefield, then shuffle your library.
SVar:DarkEffect:AB$ ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Battlefield | ChangeType$ Planeswalker.YouOwn | ChangeNum$ 1
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/perhaps_youve_met_my_cohort.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/Perhaps You've Met My Cohort.full.jpg
Oracle:When you set this scheme in motion, search your library for a planeswalker card, put it onto the battlefield, then shuffle your library.
diff --git a/forge-gui/res/cardsfolder/p/phage_the_untouchable_avatar.txt b/forge-gui/res/cardsfolder/p/phage_the_untouchable_avatar.txt
index 7fe7232507c..85210634e5a 100644
--- a/forge-gui/res/cardsfolder/p/phage_the_untouchable_avatar.txt
+++ b/forge-gui/res/cardsfolder/p/phage_the_untouchable_avatar.txt
@@ -8,5 +8,5 @@ SVar:PhageAvatarDestroy:AB$ Destroy | Cost$ 0 | Defined$ TriggeredSource
A:AB$ Effect | Cost$ PayLife<1> | ActivationZone$ Command | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | Triggers$ TrigPhageCreature | SVars$ PhageAvatarDestroy2 | RememberObjects$ Targeted | References$ TrigPhageCreature,PhageAvatarDestroy2 | SpellDescription$ Until end of turn, whenever target creature you control deals combat damage to a creature, destroy the damaged creature.
SVar:TrigPhageCreature:Mode$ DamageDone | ValidSource$ Creature.IsRemembered | ValidTarget$ Creature | TriggerZones$ Command | CombatDamage$ True | Execute$ PhageAvatarDestroy2 | TriggerDescription$ Whenever target creature you control deals combat damage to a creature, destroy the damaged creature.
SVar:PhageAvatarDestroy2:AB$ Destroy | Cost$ 0 | Defined$ TriggeredTarget
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/phage_the_untouchable_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Phage the Untouchable Avatar.full.jpg
Oracle:Hand +0, life -5\nPay 1 life: Until end of turn, whenever a creature deals combat damage to you, destroy that creature.\nPay 1 life: Until end of turn, whenever target creature you control deals combat damage to a creature, destroy the damaged creature.
diff --git a/forge-gui/res/cardsfolder/p/platinum_angel_avatar.txt b/forge-gui/res/cardsfolder/p/platinum_angel_avatar.txt
index 66e49a104e0..f8314d8ca3c 100644
--- a/forge-gui/res/cardsfolder/p/platinum_angel_avatar.txt
+++ b/forge-gui/res/cardsfolder/p/platinum_angel_avatar.txt
@@ -8,5 +8,5 @@ SVar:AvatarAX:Count$Valid Artifact.YouCtrl
SVar:AvatarCX:Count$Valid Creature.YouCtrl
SVar:AvatarEX:Count$Valid Enchantment.YouCtrl
SVar:AvatarLX:Count$Valid Land.YouCtrl
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/platinum_angel_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Platinum Angel Avatar1.full.jpg
Oracle:Hand -1, life -2\nIf you control an artifact, a creature, an enchantment, and a land, you can't lose the game and your opponents can't win the game.
diff --git a/forge-gui/res/cardsfolder/p/plots_that_span_centuries.txt b/forge-gui/res/cardsfolder/p/plots_that_span_centuries.txt
index be27f5cdf69..5f29a4dffa3 100644
--- a/forge-gui/res/cardsfolder/p/plots_that_span_centuries.txt
+++ b/forge-gui/res/cardsfolder/p/plots_that_span_centuries.txt
@@ -6,5 +6,5 @@ SVar:PlotEffect:AB$ Effect | Cost$ 0 | Name$ Plots Scheme | Duration$ Permanent
SVar:PlotPower:Event$ SetInMotion | ReplaceWith$ PlotRep | Description$ The next time you would set a scheme in motion, set three schemes in motion instead.
SVar:PlotRep:AB$ SetInMotion | Cost$ 0 | RepeatNum$ 3 | SubAbility$ ExilePlot
SVar:ExilePlot:DB$ ChangeZone | Cost$ 0 | Defined$ Self | Origin$ Command | Destination$ Exile
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/plots_that_span_centuries.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/Plots That Span Centuries.full.jpg
Oracle:When you set this scheme in motion, the next time you would set a scheme in motion, set three schemes in motion instead.
diff --git a/forge-gui/res/cardsfolder/p/prodigal_sorcerer_avatar.txt b/forge-gui/res/cardsfolder/p/prodigal_sorcerer_avatar.txt
index 8082e2a9ebc..36676dc0701 100644
--- a/forge-gui/res/cardsfolder/p/prodigal_sorcerer_avatar.txt
+++ b/forge-gui/res/cardsfolder/p/prodigal_sorcerer_avatar.txt
@@ -4,5 +4,5 @@ Types:Vanguard
HandLifeModifier:+0/+5
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Command | Execute$ TrigDig | TriggerDescription$ At the beginning of your upkeep, look at the top card of your library. You may put that card into your graveyard.
SVar:TrigDig:AB$ Dig | Cost$ 0 | DigNum$ 1 | ChangeNum$ 1 | DestinationZone$ Graveyard | Optional$ True | LibraryPosition2$ 0
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/prodigal_sorcerer_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Prodigal Sorcerer Avatar1.full.jpg
Oracle:Hand +0, life +5\nAt the beginning of your upkeep, look at the top card of your library. You may put that card into your graveyard.
diff --git a/forge-gui/res/cardsfolder/r/raksha_golden_cub_avatar.txt b/forge-gui/res/cardsfolder/r/raksha_golden_cub_avatar.txt
index 933020dbffb..6d842e04a90 100644
--- a/forge-gui/res/cardsfolder/r/raksha_golden_cub_avatar.txt
+++ b/forge-gui/res/cardsfolder/r/raksha_golden_cub_avatar.txt
@@ -4,5 +4,5 @@ Types:Vanguard
HandLifeModifier:+1/+9
S:Mode$ Continuous | EffectZone$ Command | AffectedZone$ Battlefield | Affected$ Creature.YouCtrl | AddToughness$ 1 | Description$ Creatures you control get +0/+1.
S:Mode$ Continuous | EffectZone$ Command | AffectedZone$ Battlefield | Affected$ Creature.YouCtrl+equipped | AddPower$ 1 | AddKeyword$ First Strike | Description$ Equipped creatures you control get +1/+0 and have first strike.
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/raksha_golden_cub_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Raksha Golden Cub Avatar.full.jpg
Oracle:Hand +1, life +9\nCreatures you control get +0/+1.\nEquipped creatures you control get +1/+0 and have first strike.
diff --git a/forge-gui/res/cardsfolder/r/ravens_run.txt b/forge-gui/res/cardsfolder/r/ravens_run.txt
index 455d0be9f82..907e76830a0 100644
--- a/forge-gui/res/cardsfolder/r/ravens_run.txt
+++ b/forge-gui/res/cardsfolder/r/ravens_run.txt
@@ -7,6 +7,6 @@ SVar:RolledChaos1:AB$ PutCounter | Cost$ 0 | ValidTgts$ Creature | CounterType$
SVar:RolledChaos2:DB$ PutCounter | ValidTgts$ Creature.IsNotRemembered | CounterType$ M1M1 | CounterNum$ 2 | RememberTargets$ True | SubAbility$ RolledChaos3
SVar:RolledChaos3:DB$ PutCounter | ValidTgts$ Creature.IsNotRemembered | CounterType$ M1M1 | CounterNum$ 3 | SubAbility$ RolledChaosCleanup
SVar:RolledChaosCleanup:DB$ Cleanup | ClearRemembered$ True
-SVar:Picture:http://www.cardforge.org/fpics/lq_planes_promos/ravens_run.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/HOP/Raven's Run.jpg
SVar:AIRollPlanarDieParams:Mode$ Always | OppHasCreatureInPlay$ True
Oracle:All creatures have wither. (They deal damage to creatures in the form of -1/-1 counters.)\nWhenever you roll {C}, put a -1/-1 counter on target creature, two -1/-1 counters on another target creature, and three -1/-1 counters on a third target creature.
diff --git a/forge-gui/res/cardsfolder/r/realms_befitting_my_majesty.txt b/forge-gui/res/cardsfolder/r/realms_befitting_my_majesty.txt
index 2dfafcea4a6..d19743fc001 100644
--- a/forge-gui/res/cardsfolder/r/realms_befitting_my_majesty.txt
+++ b/forge-gui/res/cardsfolder/r/realms_befitting_my_majesty.txt
@@ -3,5 +3,5 @@ ManaCost:no cost
Types:Scheme
T:Mode$ SetInMotion | ValidCard$ Card.Self | ValidCard$ Card.Self | Execute$ GetRealms | TriggerZones$ Command | OptionalDecider$ You | TriggerDescription$ When you set this scheme in motion, search your library for up to two basic land cards, put them onto the battlefield tapped, then shuffle your library.
SVar:GetRealms:AB$ ChangeZone | Cost$ 0 | Origin$ Library | Destination$ Battlefield | Tapped$ True | ChangeType$ Land.Basic | ChangeNum$ 2
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/realms_befitting_my_majesty.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/Realms Befitting My Majesty.full.jpg
Oracle:When you set this scheme in motion, search your library for up to two basic land cards, put them onto the battlefield tapped, then shuffle your library.
diff --git a/forge-gui/res/cardsfolder/r/reaper_king_avatar.txt b/forge-gui/res/cardsfolder/r/reaper_king_avatar.txt
index 4773adc9d95..72f701357bd 100644
--- a/forge-gui/res/cardsfolder/r/reaper_king_avatar.txt
+++ b/forge-gui/res/cardsfolder/r/reaper_king_avatar.txt
@@ -7,5 +7,5 @@ S:Mode$ Continuous | EffectZone$ Command | AffectedZone$ Battlefield | Affected$
S:Mode$ Continuous | EffectZone$ Command | AffectedZone$ Battlefield | Affected$ Creature.YouCtrl+Black | AddPower$ 1 | AddToughness$ 1
S:Mode$ Continuous | EffectZone$ Command | AffectedZone$ Battlefield | Affected$ Creature.YouCtrl+Red | AddPower$ 1 | AddToughness$ 1
S:Mode$ Continuous | EffectZone$ Command | AffectedZone$ Battlefield | Affected$ Creature.YouCtrl+Green | AddPower$ 1 | AddToughness$ 1
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/reaper_king_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Reaper King Avatar.full.jpg
Oracle:Hand -2, life -5\nEach creature you control gets +1/+1 for each of its colors.
diff --git a/forge-gui/res/cardsfolder/r/rith_the_awakener_avatar.txt b/forge-gui/res/cardsfolder/r/rith_the_awakener_avatar.txt
index 9570ce09725..90406b4625d 100644
--- a/forge-gui/res/cardsfolder/r/rith_the_awakener_avatar.txt
+++ b/forge-gui/res/cardsfolder/r/rith_the_awakener_avatar.txt
@@ -4,5 +4,5 @@ Types:Vanguard
HandLifeModifier:+0/+6
T:Mode$ DamageDone | ValidSource$ Creature.YouCtrl | ValidTarget$ Player | CombatDamage$ True | Execute$ TrigToken | TriggerZones$ Command | TriggerDescription$ Whenever a creature you control deals combat damage to a player, you may pay {5}. If you do, put a 5/5 red Dragon creature token with flying onto the battlefield.
SVar:TrigToken:AB$ Token | Cost$ 5 | TokenOwner$ You | TokenAmount$ 1 | TokenName$ Dragon | TokenTypes$ Creature,Dragon | TokenColors$ Red | TokenPower$ 5 | TokenToughness$ 5 | TokenKeywords$ Flying | SpellDescription$ Put a 5/5 red Dragon creature token with flying onto the battlefield.
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/rith_the_awakener_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Rith, the Awakener Avatar1.full.jpg
Oracle:Hand +0, life +6\nWhenever a creature you control deals combat damage to a player, you may pay {5}. If you do, put a 5/5 red Dragon creature token with flying onto the battlefield.
diff --git a/forge-gui/res/cardsfolder/r/rofellos.txt b/forge-gui/res/cardsfolder/r/rofellos.txt
index 6bcc891f195..4c8dc433dc1 100644
--- a/forge-gui/res/cardsfolder/r/rofellos.txt
+++ b/forge-gui/res/cardsfolder/r/rofellos.txt
@@ -4,5 +4,5 @@ Types:Vanguard
HandLifeModifier:-2/+4
T:Mode$ ChangesZone | TriggerZones$ Command | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.YouCtrl | Execute$ TrigDraw | TriggerController$ TriggeredCardController | TriggerDescription$ Whenever a creature you control dies, draw a card.
SVar:TrigDraw:AB$ Draw | Cost$ 0 | NumCards$ 1 | Defined$ You
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/rofellos.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Rofellos.full.jpg
Oracle:Hand -2, life +4\nWhenever a creature you control dies, draw a card.
diff --git a/forge-gui/res/cardsfolder/r/rotted_ones_lay_siege.txt b/forge-gui/res/cardsfolder/r/rotted_ones_lay_siege.txt
index 30e73084717..c6b79e3f492 100644
--- a/forge-gui/res/cardsfolder/r/rotted_ones_lay_siege.txt
+++ b/forge-gui/res/cardsfolder/r/rotted_ones_lay_siege.txt
@@ -4,5 +4,5 @@ Types:Scheme
T:Mode$ SetInMotion | ValidCard$ Card.Self | Execute$ TrigRepeat | TriggerZones$ Command | TriggerDescription$ When you set this scheme in motion, for each opponent, put a 2/2 black Zombie creature token onto the battlefield that attacks that player each combat if able.
SVar:TrigRepeat:AB$ RepeatEach | Cost$ 0 | RepeatPlayers$ Player.Opponent | RepeatSubAbility$ DBToken
SVar:DBToken:DB$ Token | TokenAmount$ 1 | TokenName$ Zombie | TokenTypes$ Creature,Zombie | TokenOwner$ You | TokenColors$ Black | TokenPower$ 2 | TokenToughness$ 2 | TokenHiddenKeywords$ CARDNAME attacks specific player each combat if able:Remembered | TokenRemembered$ Player.IsRemembered
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/rotted_ones_lay_siege.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/Rotted Ones, Lay Siege.full.jpg
Oracle:When you set this scheme in motion, for each opponent, put a 2/2 black Zombie creature token onto the battlefield that attacks that player each combat if able.
diff --git a/forge-gui/res/cardsfolder/r/royal_assassin_avatar.txt b/forge-gui/res/cardsfolder/r/royal_assassin_avatar.txt
index 5e363ee52de..fe154504ba5 100644
--- a/forge-gui/res/cardsfolder/r/royal_assassin_avatar.txt
+++ b/forge-gui/res/cardsfolder/r/royal_assassin_avatar.txt
@@ -5,5 +5,5 @@ HandLifeModifier:-2/+0
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Command | Execute$ DrawLoselife | TriggerDescription$ At the beginning of your upkeep, you draw a card and you lose 1 life.
SVar:DrawLoselife:AB$ Draw | Cost$ 0 | NumCards$ 1 | SubAbility$ DBLoseLife
SVar:DBLoseLife:DB$ LoseLife | LifeAmount$ 1
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/royal_assassin_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Royal Assassin Avatar1.full.jpg
Oracle:Hand -2, life +0\nAt the beginning of your upkeep, you draw a card and you lose 1 life.
diff --git a/forge-gui/res/cardsfolder/r/rumbling_slum_avatar.txt b/forge-gui/res/cardsfolder/r/rumbling_slum_avatar.txt
index 552cf349a8c..97d085996ae 100644
--- a/forge-gui/res/cardsfolder/r/rumbling_slum_avatar.txt
+++ b/forge-gui/res/cardsfolder/r/rumbling_slum_avatar.txt
@@ -4,5 +4,5 @@ Types:Vanguard
HandLifeModifier:+1/+1
T:Mode$ Phase | Phase$ Upkeep | ValidPlayer$ You | TriggerZones$ Command | Execute$ TrigDmgOpp | TriggerDescription$ At the beginning of your upkeep, CARDNAME deals 1 damage to each opponent.
SVar:TrigDmgOpp:AB$ DealDamage | Cost$ 0 | Defined$ Player.Opponent | NumDmg$ 1
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/rumbling_slum_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Rumbling Slum Avatar.full.jpg
Oracle:Hand +1, life +1\nAt the beginning of your upkeep, Rumbling Slum Avatar deals 1 damage to each opponent.
diff --git a/forge-gui/res/cardsfolder/s/sakashima_the_impostor_avatar.txt b/forge-gui/res/cardsfolder/s/sakashima_the_impostor_avatar.txt
index bfe4f852431..4b15f498a06 100644
--- a/forge-gui/res/cardsfolder/s/sakashima_the_impostor_avatar.txt
+++ b/forge-gui/res/cardsfolder/s/sakashima_the_impostor_avatar.txt
@@ -5,5 +5,5 @@ HandLifeModifier:+0/+1
A:AB$ ChooseCard | Cost$ 2 | ActivationZone$ Command | Choices$ Creature.YouCtrl | Amount$ 1 | AILogic$ Clone | RememberChosen$ True | SubAbility$ DBClone | SpellDescription$ Choose a creature you control. It becomes a copy of target creature except for its name.
SVar:DBClone:DB$ Clone | CloneTarget$ Remembered | ValidTgts$ Creature | TgtPrompt$ Select target creature to copy | KeepName$ True | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/sakashima_the_impostor_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Sakashima the Impostor Avatar.full.jpg
Oracle:Hand +0, life +1\n{2}: Choose a creature you control. It becomes a copy of target creature except for its name.
diff --git a/forge-gui/res/cardsfolder/s/selenia.txt b/forge-gui/res/cardsfolder/s/selenia.txt
index f98783552eb..c3d7cb0457a 100644
--- a/forge-gui/res/cardsfolder/s/selenia.txt
+++ b/forge-gui/res/cardsfolder/s/selenia.txt
@@ -3,5 +3,5 @@ ManaCost:no cost
Types:Vanguard
HandLifeModifier:+1/+7
S:Mode$ Continuous | EffectZone$ Command | Affected$ Creature.YouCtrl | AddKeyword$ Vigilance | Description$ Creatures you control have vigilance.
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/selenia.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Selenia.full.jpg
Oracle:Hand +1, life +7\nCreatures you control have vigilance.
diff --git a/forge-gui/res/cardsfolder/s/serra.txt b/forge-gui/res/cardsfolder/s/serra.txt
index 995e675ae8c..a5d7857a708 100644
--- a/forge-gui/res/cardsfolder/s/serra.txt
+++ b/forge-gui/res/cardsfolder/s/serra.txt
@@ -3,5 +3,5 @@ ManaCost:no cost
Types:Vanguard
HandLifeModifier:+1/+1
S:Mode$ Continuous | EffectZone$ Command | Affected$ Creature.YouCtrl | AddToughness$ 2 | Description$ Creatures you control get +0/+2.
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/serra.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Serra.full.jpg
Oracle:Hand +1, life +1\nCreatures you control get +0/+2.
diff --git a/forge-gui/res/cardsfolder/s/serra_angel_avatar.txt b/forge-gui/res/cardsfolder/s/serra_angel_avatar.txt
index 34eb6b8ddeb..73e8c56f6a9 100644
--- a/forge-gui/res/cardsfolder/s/serra_angel_avatar.txt
+++ b/forge-gui/res/cardsfolder/s/serra_angel_avatar.txt
@@ -4,5 +4,5 @@ Types:Vanguard
HandLifeModifier:+0/-1
T:Mode$ SpellCast | ValidCard$ Card | ValidActivatingPlayer$ You | TriggerZones$ Command | Execute$ TrigGainLife | TriggerDescription$ Whenever you cast a spell, you gain 2 life.
SVar:TrigGainLife:AB$ GainLife | Cost$ 0 | Defined$ You | LifeAmount$ 2
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/serra_angel_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Serra Angel Avatar1.full.jpg
Oracle:Hand +0, life -1\nWhenever you cast a spell, you gain 2 life.
diff --git a/forge-gui/res/cardsfolder/s/seshiro_the_anointed_avatar.txt b/forge-gui/res/cardsfolder/s/seshiro_the_anointed_avatar.txt
index e3081a8b1ee..1717a48a0a5 100644
--- a/forge-gui/res/cardsfolder/s/seshiro_the_anointed_avatar.txt
+++ b/forge-gui/res/cardsfolder/s/seshiro_the_anointed_avatar.txt
@@ -5,5 +5,5 @@ HandLifeModifier:+0/-1
T:Mode$ NewGame | Execute$ TrigChooseCT | TriggerZones$ Command | TriggerDescription$ At the beginning of the game, choose a creature type. Creatures you control, creature spells you control, and creature cards you own in any zone other than the battlefield or the stack have the chosen type in addition to their other types.
SVar:TrigChooseCT:DB$ ChooseType | Defined$ You | Type$ Creature
S:Mode$ Continuous | EffectZone$ Command | Affected$ Creature.YouCtrl | AffectedZone$ Battlefield,Hand,Library,Graveyard,Exile,Stack,Command | AddType$ ChosenType
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/seshiro_the_anointed_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Seshiro the Anointed Avatar.full.jpg
Oracle:Hand +0, life -1\nAt the beginning of the game, choose a creature type. Creatures you control, creature spells you control, and creature cards you own in any zone other than the battlefield or the stack have the chosen type in addition to their other types.
diff --git a/forge-gui/res/cardsfolder/s/sidar_kondo.txt b/forge-gui/res/cardsfolder/s/sidar_kondo.txt
index 333f566a0fe..149a92984a6 100644
--- a/forge-gui/res/cardsfolder/s/sidar_kondo.txt
+++ b/forge-gui/res/cardsfolder/s/sidar_kondo.txt
@@ -3,5 +3,5 @@ ManaCost:no cost
Types:Vanguard
HandLifeModifier:-1/+12
A:AB$ Pump | ActivationZone$ Command | Cost$ 3 | ValidTgts$ Creature | TgtPrompt$ Select target creature | NumAtt$ 3 | NumDef$ 3 | SpellDescription$ Target creature gets +3/+3 until end of turn.
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/sidar_kondo.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Sidar Kondo.full.jpg
Oracle:Hand -1, life +12\n{3}: Target creature gets +3/+3 until end of turn.
diff --git a/forge-gui/res/cardsfolder/s/sisay.txt b/forge-gui/res/cardsfolder/s/sisay.txt
index 98112fe70c7..978318cd504 100644
--- a/forge-gui/res/cardsfolder/s/sisay.txt
+++ b/forge-gui/res/cardsfolder/s/sisay.txt
@@ -5,5 +5,5 @@ HandLifeModifier:-2/-3
T:Mode$ TapsForMana | TriggerZones$ Command | ValidCard$ Land.YouCtrl | Execute$ TrigMana | Static$ True | TriggerDescription$ Whenever you tap a land for mana, add one mana to your mana pool of any type that land produced.
SVar:TrigMana:AB$ ManaReflected | Cost$ 0 | ColorOrType$ Type | Valid$ Defined.Triggered | ReflectProperty$ Produced | Defined$ TriggeredPlayer
SVar:RemAIDeck:True
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/sisay.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Sisay.full.jpg
Oracle:Hand -2, life -3\nWhenever you tap a land for mana, add one mana to your mana pool of any type that land produced.
diff --git a/forge-gui/res/cardsfolder/s/sisters_of_stone_death_avatar.txt b/forge-gui/res/cardsfolder/s/sisters_of_stone_death_avatar.txt
index ccfbbd11745..cef1add1ae9 100644
--- a/forge-gui/res/cardsfolder/s/sisters_of_stone_death_avatar.txt
+++ b/forge-gui/res/cardsfolder/s/sisters_of_stone_death_avatar.txt
@@ -4,5 +4,5 @@ Types:Vanguard
HandLifeModifier:+1/-5
S:Mode$ Continuous | EffectZone$ Command | Affected$ Creature.YouCtrl | AddHiddenKeyword$ CARDNAME must be blocked if able. | Description$ Each creature you control must be blocked if able.
A:AB$ ChangeZone | ActivationZone$ Command | Cost$ 4 | ValidTgts$ Creature.blockingCreatureYouCtrl | TgtPrompt$ Select target creature that's blocking a creature you control | Origin$ Battlefield | Destination$ Exile | SpellDescription$ Exile target creature that's blocking a creature you control.
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/sisters_of_stone_death_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Sisters of Stone Death Avatar.full.jpg
Oracle:Hand +1, life -5\nEach creature you control must be blocked if able.\n{4}: Exile target creature that's blocking a creature you control.
diff --git a/forge-gui/res/cardsfolder/s/sliver_queen_avatar.txt b/forge-gui/res/cardsfolder/s/sliver_queen_avatar.txt
index 031617fafda..a66bf3c9896 100644
--- a/forge-gui/res/cardsfolder/s/sliver_queen_avatar.txt
+++ b/forge-gui/res/cardsfolder/s/sliver_queen_avatar.txt
@@ -8,5 +8,5 @@ SVar:DBCopy:DB$ CopyPermanent | NumCopies$ 1 | ValidSupportedCopy$ Creature.Sliv
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
SVar:X:TriggeredCard$CardManaCost
SVar:RememberedSize:Remembered$Amount
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/sliver_queen_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Sliver Queen Avatar.full.jpg
Oracle:Hand +0, life +7\nWhenever you cast a non-Sliver creature spell, exile that spell. If you do, put a token onto the battlefield that's a copy of a random non-Shapeshifter Sliver creature card with the same converted mana cost as that spell.
diff --git a/forge-gui/res/cardsfolder/s/sliver_queen_brood_mother.txt b/forge-gui/res/cardsfolder/s/sliver_queen_brood_mother.txt
index fdf2b157d02..34d746f097a 100644
--- a/forge-gui/res/cardsfolder/s/sliver_queen_brood_mother.txt
+++ b/forge-gui/res/cardsfolder/s/sliver_queen_brood_mother.txt
@@ -3,5 +3,5 @@ ManaCost:no cost
Types:Vanguard
HandLifeModifier:+0/+8
A:AB$ Token | ActivationZone$ Command | Cost$ 3 | TokenAmount$ 1 | TokenName$ Sliver | TokenTypes$ Creature,Sliver | TokenOwner$ You | TokenColors$ Colorless | TokenPower$ 1 | TokenToughness$ 1 | SpellDescription$ Put a 1/1 colorless Sliver creature token onto the battlefield.
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/sliver_queen_brood_mother.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Sliver Queen, Brood Mother.full.jpg
Oracle:Hand +0, life +8\n{3}: Put a 1/1 colorless Sliver creature token onto the battlefield.
diff --git a/forge-gui/res/cardsfolder/s/squee.txt b/forge-gui/res/cardsfolder/s/squee.txt
index c0554174a80..f08272fb974 100644
--- a/forge-gui/res/cardsfolder/s/squee.txt
+++ b/forge-gui/res/cardsfolder/s/squee.txt
@@ -4,5 +4,5 @@ Types:Vanguard
HandLifeModifier:+3/-4
S:Mode$ Continuous | EffectZone$ Command | Affected$ Opponent | AddKeyword$ Play with your hand revealed. | Description$ Your opponents play with their hands revealed.
SVar:RemAIDeck:True
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/squee.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Squee.full.jpg
Oracle:Hand +3, life -4\nYour opponents play with their hands revealed.
diff --git a/forge-gui/res/cardsfolder/s/squee_goblin_nabob_avatar.txt b/forge-gui/res/cardsfolder/s/squee_goblin_nabob_avatar.txt
index 50444db0159..e4f161e1cd9 100644
--- a/forge-gui/res/cardsfolder/s/squee_goblin_nabob_avatar.txt
+++ b/forge-gui/res/cardsfolder/s/squee_goblin_nabob_avatar.txt
@@ -3,5 +3,5 @@ ManaCost:no cost
Types:Vanguard
HandLifeModifier:+3/-4
A:AB$ PreventDamage | ActivationZone$ Command | Cost$ 1 | ValidTgts$ Creature.YouCtrl | TgtPrompt$ Select target creature you control | Amount$ 1 | SpellDescription$ Prevent the next 1 damage that would be dealt to target creature you control this turn.
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/squee_goblin_nabob_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Squee, Goblin Nabob Avatar.full.jpg
Oracle:Hand +3, life -4\n{1}: Prevent the next 1 damage that would be dealt to target creature you control this turn.
diff --git a/forge-gui/res/cardsfolder/s/stalking_tiger_avatar.txt b/forge-gui/res/cardsfolder/s/stalking_tiger_avatar.txt
index b78363d047b..e79591f345d 100644
--- a/forge-gui/res/cardsfolder/s/stalking_tiger_avatar.txt
+++ b/forge-gui/res/cardsfolder/s/stalking_tiger_avatar.txt
@@ -4,5 +4,5 @@ Types:Vanguard
HandLifeModifier:+0/+2
T:Mode$ SpellCast | ValidCard$ Card.Creature | ValidActivatingPlayer$ You | TriggerZones$ Command | Execute$ TrigDraw | TriggerDescription$ Whenever you cast a creature spell, you may pay {1}. If you do, draw a card.
SVar:TrigDraw:AB$ Draw | Cost$ 1 | NumCards$ 1
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/stalking_tiger_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Stalking Tiger Avatar.full.jpg
Oracle:Hand +0, life +2\nWhenever you cast a creature spell, you may pay {1}. If you do, draw a card.
diff --git a/forge-gui/res/cardsfolder/s/starke.txt b/forge-gui/res/cardsfolder/s/starke.txt
index d7ff94ec860..1dea0dbd92c 100644
--- a/forge-gui/res/cardsfolder/s/starke.txt
+++ b/forge-gui/res/cardsfolder/s/starke.txt
@@ -5,5 +5,5 @@ HandLifeModifier:+0/-2
T:Mode$ Phase | Phase$ Draw | ValidPlayer$ You | TriggerZones$ Command | Execute$ SituationalEthics | OptionalDecider$ You | TriggerDescription$ At the beginning of your draw step, you may draw an additional card. If you do, put a card from your hand on the bottom of your library.
SVar:SituationalEthics:AB$ Draw | Cost$ 0 | NumCards$ 1 | Defined$ You | SubAbility$ Switch
SVar:Switch:DB$ ChangeZone | Origin$ Hand | Destination$ Library | LibraryPosition$ -1 | ChangeNum$ 1 | Mandatory$ True
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/starke.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Starke.full.jpg
Oracle:Hand +0, life -2\nAt the beginning of your draw step, you may draw an additional card. If you do, put a card from your hand on the bottom of your library.
diff --git a/forge-gui/res/cardsfolder/s/stonehewer_giant_avatar.txt b/forge-gui/res/cardsfolder/s/stonehewer_giant_avatar.txt
index e3b632183ad..9e78124e697 100644
--- a/forge-gui/res/cardsfolder/s/stonehewer_giant_avatar.txt
+++ b/forge-gui/res/cardsfolder/s/stonehewer_giant_avatar.txt
@@ -5,5 +5,5 @@ HandLifeModifier:+1/-5
T:Mode$ ChangesZone | Origin$ Any | Destination$ Battlefield | ValidCard$ Creature.YouCtrl | TriggerZones$ Command | Execute$ TrigCopyEquip | TriggerDescription$ Whenever a creature enters the battlefield under your control, put a token onto the battlefield that's a copy of a random Equipment card with converted mana cost less than or equal to that creature's converted mana cost. Attach that Equipment to that creature.
SVar:TrigCopyEquip:AB$ CopyPermanent | Cost$ 0 | Defined$ TriggeredCard | NumCopies$ 1 | ValidSupportedCopy$ Equipment.cmcLEX | References$ X | RandomCopied$ True | RandomNum$ 1 | AttachedTo$ TriggeredCard
SVar:X:TriggeredCard$CardManaCost
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/stonehewer_giant_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Stonehewer Giant Avatar.full.jpg
Oracle:Hand +1, life -5\nWhenever a creature enters the battlefield under your control, put a token onto the battlefield that's a copy of a random Equipment card with converted mana cost less than or equal to that creature's converted mana cost. Attach that Equipment to that creature.
diff --git a/forge-gui/res/cardsfolder/s/stuffy_doll_avatar.txt b/forge-gui/res/cardsfolder/s/stuffy_doll_avatar.txt
index 7be99b628cb..1921e097d42 100644
--- a/forge-gui/res/cardsfolder/s/stuffy_doll_avatar.txt
+++ b/forge-gui/res/cardsfolder/s/stuffy_doll_avatar.txt
@@ -13,5 +13,5 @@ SVar:NonCombatDmg:AB$ DealDamage | Cost$ 0 | Defined$ You | DamageSource$ Imprin
SVar:AvatarnonCombat:DB$ DealDamage | Defined$ Player.IsRemembered | DamageSource$ Imprinted | CombatDamage$ False | NumDmg$ X
SVar:X:ReplaceCount$DamageAmount/HalfUp
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/stuffy_doll_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Stuffy Doll Avatar.full.jpg
Oracle:Hand +0, life -6\n{0}: If damage would be dealt to you this turn by a source of your choice, prevent that damage. Stuffy Doll Avatar deals damage to you and target opponent equal to half the damage prevented this way, rounded up. Activate this ability only once each turn.
diff --git a/forge-gui/res/cardsfolder/t/tahngarth.txt b/forge-gui/res/cardsfolder/t/tahngarth.txt
index 2d6ea5a2dbc..6ff6c2523b7 100644
--- a/forge-gui/res/cardsfolder/t/tahngarth.txt
+++ b/forge-gui/res/cardsfolder/t/tahngarth.txt
@@ -3,5 +3,5 @@ ManaCost:no cost
Types:Vanguard
HandLifeModifier:-1/+7
S:Mode$ Continuous | EffectZone$ Command | AffectedZone$ Battlefield | Affected$ Creature.YouCtrl | AddKeyword$ Haste | Description$ Creatures you control have haste.
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/tahngarth.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Tahngarth.full.jpg
Oracle:Hand -1, life +7\nCreatures you control have haste.
diff --git a/forge-gui/res/cardsfolder/t/takara.txt b/forge-gui/res/cardsfolder/t/takara.txt
index 16b19f496b5..40e34f05c21 100644
--- a/forge-gui/res/cardsfolder/t/takara.txt
+++ b/forge-gui/res/cardsfolder/t/takara.txt
@@ -4,5 +4,5 @@ Types:Vanguard
HandLifeModifier:+3/-8
A:AB$ DealDamage | ActivationZone$ Command | Cost$ Sac<1/Creature> | ValidTgts$ Creature,Player | TgtPrompt$ Select target creature or player | NumDmg$ 1 | SpellDescription$ CARDNAME deals 1 damage to target creature or player.
SVar:RemAIDeck:True
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/takara.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Takara.full.jpg
Oracle:Hand +3, life -8\nSacrifice a creature: Takara deals 1 damage to target creature or player.
diff --git a/forge-gui/res/cardsfolder/t/tawnos.txt b/forge-gui/res/cardsfolder/t/tawnos.txt
index 0a8c050e1a4..4366a03e580 100644
--- a/forge-gui/res/cardsfolder/t/tawnos.txt
+++ b/forge-gui/res/cardsfolder/t/tawnos.txt
@@ -3,5 +3,5 @@ ManaCost:no cost
Types:Vanguard
HandLifeModifier:+3/-4
S:Mode$ Continuous | EffectZone$ Command | Affected$ Artifact.YouCtrl,Creature.YouCtrl,Enchantment.YouCtrl | AddHiddenKeyword$ Flash | AffectedZone$ Exile,Graveyard,Hand,Library | Description$ You may cast artifact, creature, and enchantment spells as though they had flash.
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/tawnos.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Tawnos.full.jpg
Oracle:Hand +3, life -4\nYou may cast artifact, creature, and enchantment spells as though they had flash.
diff --git a/forge-gui/res/cardsfolder/t/teysa_orzhov_scion_avatar.txt b/forge-gui/res/cardsfolder/t/teysa_orzhov_scion_avatar.txt
index 71373f91321..83b6bd383ac 100644
--- a/forge-gui/res/cardsfolder/t/teysa_orzhov_scion_avatar.txt
+++ b/forge-gui/res/cardsfolder/t/teysa_orzhov_scion_avatar.txt
@@ -4,5 +4,5 @@ Types:Vanguard
HandLifeModifier:+0/-2
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.nonToken | TriggerZones$ Command | Execute$ TrigToken | TriggerDescription$ Whenever a nontoken creature dies, put a 1/1 white Spirit creature token with flying onto the battlefield.
SVar:TrigToken:AB$ Token | Cost$ 0 | TokenAmount$ 1 | TokenName$ Spirit | TokenTypes$ Creature,Spirit | TokenOwner$ You | TokenColors$ White | TokenPower$ 1 | TokenToughness$ 1 | TokenKeywords$ Flying
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/teysa_orzhov_scion_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Teysa, Orzhov Scion Avatar.full.jpg
Oracle:Hand +0, life -2\nWhenever a nontoken creature dies, put a 1/1 white Spirit creature token with flying onto the battlefield.
diff --git a/forge-gui/res/cardsfolder/t/the_dead_shall_serve.txt b/forge-gui/res/cardsfolder/t/the_dead_shall_serve.txt
index 64ad607b51f..98e3ac7180b 100644
--- a/forge-gui/res/cardsfolder/t/the_dead_shall_serve.txt
+++ b/forge-gui/res/cardsfolder/t/the_dead_shall_serve.txt
@@ -6,5 +6,5 @@ SVar:TrigControl:AB$ ChangeZone | Cost$ 0 | Origin$ Graveyard | Destination$ Bat
SVar:DBPump:DB$ PumpAll | ValidCards$ Card.IsRemembered | KW$ HIDDEN CARDNAME attacks specific player each combat if able:CardOwner | UntilLoseControl$ True | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
SVar:OneEach:PlayerCountOpponents$Amount
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/the_dead_shall_serve.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/The Dead Shall Serve.full.jpg
Oracle:When you set this scheme in motion, for each opponent, put up to one target creature card from that player's graveyard onto the battlefield under your control. Each of those creatures attacks its owner each combat if able.
diff --git a/forge-gui/res/cardsfolder/t/the_iron_guardian_stirs.txt b/forge-gui/res/cardsfolder/t/the_iron_guardian_stirs.txt
index ac73efff9ff..cc3f3fbb4eb 100644
--- a/forge-gui/res/cardsfolder/t/the_iron_guardian_stirs.txt
+++ b/forge-gui/res/cardsfolder/t/the_iron_guardian_stirs.txt
@@ -3,5 +3,5 @@ ManaCost:no cost
Types:Scheme
T:Mode$ SetInMotion | ValidCard$ Card.Self | Execute$ DarkEffect | TriggerZones$ Command | TriggerDescription$ When you set this scheme in motion, put a 4/6 colorless Golem creature token onto the battlefield.
SVar:DarkEffect:AB$ Token | Cost$ 0 | TokenAmount$ 1 | TokenName$ Golem | TokenTypes$ Artifact,Creature,Golem | TokenOwner$ You | TokenColors$ Colorless | TokenPower$ 4 | TokenToughness$ 6
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/the_iron_guardian_stirs.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/The Iron Guardian Stirs.full.jpg
Oracle:When you set this scheme in motion, put a 4/6 colorless Golem artifact creature token onto the battlefield.
diff --git a/forge-gui/res/cardsfolder/t/the_pieces_are_coming_together.txt b/forge-gui/res/cardsfolder/t/the_pieces_are_coming_together.txt
index 787c902f0ef..542a09447fa 100644
--- a/forge-gui/res/cardsfolder/t/the_pieces_are_coming_together.txt
+++ b/forge-gui/res/cardsfolder/t/the_pieces_are_coming_together.txt
@@ -5,5 +5,5 @@ T:Mode$ SetInMotion | ValidCard$ Card.Self | Execute$ ConstructDestiny | Trigger
SVar:ConstructDestiny:AB$ Effect | Cost$ 0 | Name$ Pieces Coming Together | StaticAbilities$ CheapParts | SubAbility$ DBDraw
SVar:CheapParts:Mode$ ReduceCost | EffectZone$ Command | ValidCard$ Artifact | Type$ Spell | Activator$ You | Amount$ 2 | Description$ Artifact spells you cast this turn cost {2} less to cast.
SVar:DBDraw:DB$ Draw | Defined$ You | NumCards$ 2
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/the_pieces_are_coming_together.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/The Pieces Are Coming Together.full.jpg
Oracle:When you set this scheme in motion, draw two cards. Artifact spells you cast this turn cost {2} less to cast.
diff --git a/forge-gui/res/cardsfolder/t/the_very_soil_shall_shake.txt b/forge-gui/res/cardsfolder/t/the_very_soil_shall_shake.txt
index 11b400ccb48..2cdb101a283 100644
--- a/forge-gui/res/cardsfolder/t/the_very_soil_shall_shake.txt
+++ b/forge-gui/res/cardsfolder/t/the_very_soil_shall_shake.txt
@@ -4,5 +4,5 @@ Types:Ongoing Scheme
S:Mode$ Continuous | Affected$ Creature.YouCtrl | EffectZone$ Command | AddPower$ 2 | AddToughness$ 2 | AddKeyword$ Trample | Description$ Creatures you control get +2/+2 and have trample.
T:Mode$ ChangesZone | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.YouCtrl | TriggerZones$ Command | Execute$ Abandon | TriggerDescription$ When a creature you control dies, abandon this scheme.
SVar:Abandon:AB$ Abandon | Cost$ 0
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/the_very_soil_shall_shake.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/The Very Soil Shall Shake.full.jpg
Oracle:(An ongoing scheme remains face up until it's abandoned.)\nCreatures you control get +2/+2 and have trample.\nWhen a creature you control dies, abandon this scheme.
diff --git a/forge-gui/res/cardsfolder/t/titania.txt b/forge-gui/res/cardsfolder/t/titania.txt
index 0cca3402f4f..2af324cc283 100644
--- a/forge-gui/res/cardsfolder/t/titania.txt
+++ b/forge-gui/res/cardsfolder/t/titania.txt
@@ -3,5 +3,5 @@ ManaCost:no cost
Types:Vanguard
HandLifeModifier:+2/-5
S:Mode$ Continuous | EffectZone$ Command | Affected$ You | AddKeyword$ AdjustLandPlays:1 | Description$ You may play an additional land on each of your turns.
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/titania.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Titania.full.jpg
Oracle:Hand +2, life -5\nYou may play an additional land on each of your turns.
diff --git a/forge-gui/res/cardsfolder/t/tooth_claw_and_tail.txt b/forge-gui/res/cardsfolder/t/tooth_claw_and_tail.txt
index 2e2f8b94161..6b1dbc3cf99 100644
--- a/forge-gui/res/cardsfolder/t/tooth_claw_and_tail.txt
+++ b/forge-gui/res/cardsfolder/t/tooth_claw_and_tail.txt
@@ -3,5 +3,5 @@ ManaCost:no cost
Types:Scheme
T:Mode$ SetInMotion | Execute$ DarkEffect | TriggerZones$ Command | TriggerDescription$ When you set this scheme in motion, destroy up to three target nonland permanents.
SVar:DarkEffect:AB$ Destroy | Cost$ 0 | TargetMin$ 0 | TargetMax$ 3 | ValidTgts$ Permanent.nonLand | TgtPrompt$ Select target nonland permanent
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/tooth_claw_and_tail.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/Tooth, Claw, and Tail.full.jpg
Oracle:When you set this scheme in motion, destroy up to three target nonland permanents.
diff --git a/forge-gui/res/cardsfolder/t/tradewind_rider_avatar.txt b/forge-gui/res/cardsfolder/t/tradewind_rider_avatar.txt
index 270e457f478..f908586e726 100644
--- a/forge-gui/res/cardsfolder/t/tradewind_rider_avatar.txt
+++ b/forge-gui/res/cardsfolder/t/tradewind_rider_avatar.txt
@@ -4,5 +4,5 @@ Types:Vanguard
HandLifeModifier:+1/+4
A:AB$ RepeatEach | Cost$ 3 | ActivationZone$ Command | RepeatPlayers$ Player | RepeatSubAbility$ DBBounce | SpellDescription$ Each player returns a permanent he or she controls to its owner's hand unless he or she pays 2 life.
SVar:DBBounce:DB$ ChangeZone | ChangeType$ Permanent | ChangeNum$ 1 | DefinedPlayer$ Remembered | Origin$ Battlefield | Destination$ Hand | Hidden$ True | Mandatory$ True | UnlessPayer$ Remembered | UnlessCost$ PayLife<2>
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/tradewind_rider_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Tradewind Rider Avatar1.full.jpg
Oracle:Hand +1, life +4\n{3}: Each player returns a permanent he or she controls to its owner's hand unless he or she pays 2 life.
diff --git a/forge-gui/res/cardsfolder/t/two_headed_giant_of_foriys_avatar.txt b/forge-gui/res/cardsfolder/t/two_headed_giant_of_foriys_avatar.txt
index 309b17f87ff..5a872267f36 100644
--- a/forge-gui/res/cardsfolder/t/two_headed_giant_of_foriys_avatar.txt
+++ b/forge-gui/res/cardsfolder/t/two_headed_giant_of_foriys_avatar.txt
@@ -4,5 +4,5 @@ Types:Vanguard
HandLifeModifier:+1/-4
S:Mode$ Continuous | EffectZone$ Command | Affected$ Creature.YouCtrl | AddHiddenKeyword$ CARDNAME can block an additional creature. | Description$ Each creature you control can block an additional creature each combat.
S:Mode$ Continuous | EffectZone$ Command | Affected$ Creature.YouCtrl | AddHiddenKeyword$ CantBeBlockedByAmount LT2 | Description$ Each creature you control can't be blocked except by two or more creatures.
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/two_headed_giant_of_foriys_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Two-Headed Giant of Foriys Avatar.full.jpg
Oracle:Hand +1, life -4\nEach creature you control can block an additional creature each combat.\nEach creature you control can't be blocked except by two or more creatures.
diff --git a/forge-gui/res/cardsfolder/u/urza.txt b/forge-gui/res/cardsfolder/u/urza.txt
index 5f43dc61973..e9b83ea6a0b 100644
--- a/forge-gui/res/cardsfolder/u/urza.txt
+++ b/forge-gui/res/cardsfolder/u/urza.txt
@@ -3,5 +3,5 @@ ManaCost:no cost
Types:Vanguard
HandLifeModifier:-1/+10
A:AB$ DealDamage | ActivationZone$ Command | Cost$ 3 | ValidTgts$ Creature,Player | TgtPrompt$ Select target creature or player | NumDmg$ 1 | SpellDescription$ CARDNAME deals 1 damage to target creature or player.
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/urza.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Urza.full.jpg
Oracle:Hand -1, life +10\n{3}: Urza deals 1 damage to target creature or player.
diff --git a/forge-gui/res/cardsfolder/v/viridian_zealot_avatar.txt b/forge-gui/res/cardsfolder/v/viridian_zealot_avatar.txt
index a67fa3e10fa..ebd5bd14946 100644
--- a/forge-gui/res/cardsfolder/v/viridian_zealot_avatar.txt
+++ b/forge-gui/res/cardsfolder/v/viridian_zealot_avatar.txt
@@ -5,5 +5,5 @@ HandLifeModifier:+0/+2
A:AB$ Destroy | ActivationZone$ Command | Cost$ 2 Sac<1/Creature> | RememberCostCards$ True | ValidTgts$ Artifact,Enchantment | TgtPrompt$ Select target artifact or enchantment | SubAbility$ DBChangeZone | SpellDescription$ Destroy target artifact or enchantment. Search your library for a card with the same name as the sacrificed creature, reveal that card, and put it into your hand. Then shuffle your library.
SVar:DBChangeZone:DB$ ChangeZone | Origin$ Library | Destination$ Hand | ChangeType$ Creature.sharesNameWith Remembered | ChangeNum$ 1 | StackDescription$ Search your library for a card with the same name as the sacrificed creature, reveal that card, and put it into your hand. Then shuffle your library. | SubAbility$ DBCleanup
SVar:DBCleanup:DB$ Cleanup | ClearRemembered$ True
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/viridian_zealot_avatar.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Viridian Zealot Avatar.full.jpg
Oracle:Hand +0, life +2\n{2}, Sacrifice a creature: Destroy target artifact or enchantment. Search your library for a card with the same name as the sacrificed creature, reveal that card, and put it into your hand. Then shuffle your library.
diff --git a/forge-gui/res/cardsfolder/v/volrath.txt b/forge-gui/res/cardsfolder/v/volrath.txt
index 0f99fc670d6..49233a00612 100644
--- a/forge-gui/res/cardsfolder/v/volrath.txt
+++ b/forge-gui/res/cardsfolder/v/volrath.txt
@@ -4,5 +4,5 @@ Types:Vanguard
HandLifeModifier:+2/-3
T:Mode$ ChangesZone | TriggerZones$ Command | Origin$ Battlefield | Destination$ Graveyard | ValidCard$ Creature.YouCtrl+YouOwn | OptionalDecider$ You | Execute$ GetUp | TriggerController$ TriggeredCardController | TriggerDescription$ Whenever a creature you control is put into your graveyard from the battlefield, you may put it on top of your library.
SVar:GetUp:AB$ ChangeZone | Cost$ 0 | Defined$ TriggeredCard | Origin$ Graveyard | Destination$ Library
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/volrath.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Volrath.full.jpg
Oracle:Hand +2, life -3\nWhenever a creature you control is put into your graveyard from the battlefield, you may put it on top of your library.
diff --git a/forge-gui/res/cardsfolder/w/which_of_you_burns_brightest.txt b/forge-gui/res/cardsfolder/w/which_of_you_burns_brightest.txt
index 75a8fa363b8..45ba101afdd 100644
--- a/forge-gui/res/cardsfolder/w/which_of_you_burns_brightest.txt
+++ b/forge-gui/res/cardsfolder/w/which_of_you_burns_brightest.txt
@@ -4,5 +4,5 @@ Types:Scheme
T:Mode$ SetInMotion | ValidCard$ Card.Self | Execute$ DarkEffect | TriggerZones$ Command | OptionalDecider$ You | TriggerDescription$ When you set this scheme in motion, you may pay {X}. If you do, this scheme deals X damage to target opponent and each creature he or she controls.
SVar:DarkEffect:AB$ DamageAll | Cost$ X | NumDmg$ X | ValidTgts$ Player | TgtPrompt$ Select a player | ValidCards$ Creature | ValidPlayers$ Targeted | ValidDescription$ target player and each creature he or she controls. | References$ X
SVar:X:Count$xPaid
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/which_of_you_burns_brightest.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/Which of You Burns Brightest.full.jpg
Oracle:When you set this scheme in motion, you may pay {X}. If you do, this scheme deals X damage to target opponent and each creature he or she controls.
diff --git a/forge-gui/res/cardsfolder/x/xantcha.txt b/forge-gui/res/cardsfolder/x/xantcha.txt
index 0d34bfc7292..abc8be0424a 100644
--- a/forge-gui/res/cardsfolder/x/xantcha.txt
+++ b/forge-gui/res/cardsfolder/x/xantcha.txt
@@ -4,5 +4,5 @@ Types:Vanguard
HandLifeModifier:+1/+3
A:AB$ Regenerate | ActivationZone$ Command | Cost$ Sac<1/Permanent> | ValidTgts$ Creature | TgtPrompt$ Select target creature | SpellDescription$ Regenerate target creature.
SVar:RemAIDeck:True
-SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/xantcha.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/Xantcha.full.jpg
Oracle:Hand +1, life +3\nSacrifice a permanent: Regenerate target creature.
diff --git a/forge-gui/res/cardsfolder/y/your_fate_is_thrice_sealed.txt b/forge-gui/res/cardsfolder/y/your_fate_is_thrice_sealed.txt
index 721a3686bf0..bc4da3c20fb 100644
--- a/forge-gui/res/cardsfolder/y/your_fate_is_thrice_sealed.txt
+++ b/forge-gui/res/cardsfolder/y/your_fate_is_thrice_sealed.txt
@@ -3,5 +3,5 @@ ManaCost:no cost
Types:Scheme
T:Mode$ SetInMotion | ValidCard$ Card.Self | Execute$ RevealFate | TriggerZones$ Command | TriggerDescription$ When you set this scheme in motion, reveal the top three cards of your library. Put all land cards revealed this way onto the battlefield and the rest into your hand.
SVar:RevealFate:AB$ Dig | Cost$ 0 | DigNum$ 3 | Reveal$ True | ChangeNum$ All | ChangeValid$ Land | DestinationZone$ Battlefield | DestinationZone2$ Hand |
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/your_fate_is_thrice_sealed.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/Your Fate Is Thrice Sealed.full.jpg
Oracle:When you set this scheme in motion, reveal the top three cards of your library. Put all land cards revealed this way onto the battlefield and the rest into your hand.
diff --git a/forge-gui/res/cardsfolder/y/your_inescapable_doom.txt b/forge-gui/res/cardsfolder/y/your_inescapable_doom.txt
index d05cce73d4b..e37a44408cd 100644
--- a/forge-gui/res/cardsfolder/y/your_inescapable_doom.txt
+++ b/forge-gui/res/cardsfolder/y/your_inescapable_doom.txt
@@ -7,5 +7,5 @@ SVar:DBChoosePlayer:DB$ ChoosePlayer | Defined$ You | Choices$ Player.Opponent+L
SVar:DBDmg:DB$ DealDamage | Defined$ ChosenPlayer | NumDmg$ Y | References$ Y
SVar:X:PlayerCountOpponents$HighestLifeTotal
SVar:Y:Count$CardCounters.DOOM
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/your_inescapable_doom.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/Your Inescapable Doom.full.jpg
Oracle:At the beginning of your end step, put a doom counter on this scheme, then this scheme deals damage equal to the number of doom counters on it to the opponent with the highest life total among your opponents. If two or more players are tied for highest life total, you choose one.
diff --git a/forge-gui/res/cardsfolder/y/your_puny_minds_cannot_fathom.txt b/forge-gui/res/cardsfolder/y/your_puny_minds_cannot_fathom.txt
index a07be71ffa4..ad28c1c238c 100644
--- a/forge-gui/res/cardsfolder/y/your_puny_minds_cannot_fathom.txt
+++ b/forge-gui/res/cardsfolder/y/your_puny_minds_cannot_fathom.txt
@@ -5,5 +5,5 @@ T:Mode$ SetInMotion | ValidCard$ Card.Self | Execute$ GreatMind | TriggerZones$
SVar:GreatMind:AB$ Draw | Cost$ 0 | Defined$ You | NumCards$ 4 | SubAbility$ Unfathomable
SVar:Unfathomable:DB$ Effect | Name$ Unfathomable Mind Effect | StaticAbilities$ STHandSize | Duration$ UntilYourNextTurn
SVar:STHandSize:Mode$ Continuous | EffectZone$ Command | Affected$ You | SetMaxHandSize$ Unlimited | Description$ You have no maximum hand size.
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/your_puny_minds_cannot_fathom.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/Your Puny Minds Cannot Fathom.full.jpg
Oracle:When you set this scheme in motion, draw four cards. You have no maximum hand size until your next turn.
diff --git a/forge-gui/res/cardsfolder/y/your_will_is_not_your_own.txt b/forge-gui/res/cardsfolder/y/your_will_is_not_your_own.txt
index 77a217abeeb..da510feb2d2 100644
--- a/forge-gui/res/cardsfolder/y/your_will_is_not_your_own.txt
+++ b/forge-gui/res/cardsfolder/y/your_will_is_not_your_own.txt
@@ -4,5 +4,5 @@ Types:Scheme
T:Mode$ SetInMotion | Execute$ DarkEffect | TriggerZones$ Command | TriggerDescription$ When you set this scheme in motion, gain control of target creature an opponent controls until end of turn. Untap that creature. It gets +3/+3 and gains trample and haste until end of turn.
SVar:DarkEffect:AB$ GainControl | Cost$ 0 | ValidTgts$ Creature.OppCtrl | TgtPrompt$ Select target creature an opponent controls | Untap$ True | LoseControl$ EOT | SubAbility$ DBPump
SVar:DBPump:DB$ Pump | Defined$ Targeted | NumAtt$ +3 | NumDef$ +3 | KW$ Haste & Trample
-SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/your_will_is_not_your_own.jpg
+SVar:Picture:http://downloads.cardforge.link/images/cards/ARC/Your Will Is Not Your Own.full.jpg
Oracle:When you set this scheme in motion, gain control of target creature an opponent controls until end of turn. Untap that creature. It gets +3/+3 and gains trample and haste until end of turn.
diff --git a/forge-gui/res/lists/booster-images.txt b/forge-gui/res/lists/booster-images.txt
index 477271fc040..e2271157165 100644
--- a/forge-gui/res/lists/booster-images.txt
+++ b/forge-gui/res/lists/booster-images.txt
@@ -1,254 +1,277 @@
-http://www.cardforge.org/fpics/products/boosters/10E_1.jpg
-http://www.cardforge.org/fpics/products/boosters/10E_2.jpg
-http://www.cardforge.org/fpics/products/boosters/10E_3.jpg
-http://www.cardforge.org/fpics/products/boosters/10E_4.jpg
-http://www.cardforge.org/fpics/products/boosters/10E_5.jpg
-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_1.jpg
-http://www.cardforge.org/fpics/products/boosters/4ED_2.jpg
-http://www.cardforge.org/fpics/products/boosters/4ED_3.jpg
-http://www.cardforge.org/fpics/products/boosters/4ED_4.jpg
-http://www.cardforge.org/fpics/products/boosters/4ED_5.jpg
-http://www.cardforge.org/fpics/products/boosters/5DN_1.jpg
-http://www.cardforge.org/fpics/products/boosters/5DN_2.jpg
-http://www.cardforge.org/fpics/products/boosters/5DN_3.jpg
-http://www.cardforge.org/fpics/products/boosters/5ED_1.jpg
-http://www.cardforge.org/fpics/products/boosters/5ED_2.jpg
-http://www.cardforge.org/fpics/products/boosters/5ED_3.jpg
-http://www.cardforge.org/fpics/products/boosters/5ED_4.jpg
-http://www.cardforge.org/fpics/products/boosters/5ED_5.jpg
-http://www.cardforge.org/fpics/products/boosters/6ED.jpg
-http://www.cardforge.org/fpics/products/boosters/7ED_1.jpg
-http://www.cardforge.org/fpics/products/boosters/7ED_2.jpg
-http://www.cardforge.org/fpics/products/boosters/7ED_3.jpg
-http://www.cardforge.org/fpics/products/boosters/7ED_4.jpg
-http://www.cardforge.org/fpics/products/boosters/7ED_5.jpg
-http://www.cardforge.org/fpics/products/boosters/8ED_1.jpg
-http://www.cardforge.org/fpics/products/boosters/8ED_2.jpg
-http://www.cardforge.org/fpics/products/boosters/8ED_3.jpg
-http://www.cardforge.org/fpics/products/boosters/8ED_4.jpg
-http://www.cardforge.org/fpics/products/boosters/8ED_5.jpg
-http://www.cardforge.org/fpics/products/boosters/9ED_1.jpg
-http://www.cardforge.org/fpics/products/boosters/9ED_2.jpg
-http://www.cardforge.org/fpics/products/boosters/9ED_3.jpg
-http://www.cardforge.org/fpics/products/boosters/9ED_4.jpg
-http://www.cardforge.org/fpics/products/boosters/9ED_5.jpg
-http://www.cardforge.org/fpics/products/boosters/ALA_1.jpg
-http://www.cardforge.org/fpics/products/boosters/ALA_2.jpg
-http://www.cardforge.org/fpics/products/boosters/ALA_3.jpg
-http://www.cardforge.org/fpics/products/boosters/ALA_4.jpg
-http://www.cardforge.org/fpics/products/boosters/ALA_5.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_1.jpg
-http://www.cardforge.org/fpics/products/boosters/ARB_2.jpg
-http://www.cardforge.org/fpics/products/boosters/ARB_3.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/AVR_1.jpg
-http://www.cardforge.org/fpics/products/boosters/AVR_2.jpg
-http://www.cardforge.org/fpics/products/boosters/AVR_3.jpg
-http://www.cardforge.org/fpics/products/boosters/AVR_4.jpg
-http://www.cardforge.org/fpics/products/boosters/AVR_5.jpg
-http://www.cardforge.org/fpics/products/boosters/BOK_1.jpg
-http://www.cardforge.org/fpics/products/boosters/BOK_2.jpg
-http://www.cardforge.org/fpics/products/boosters/BOK_3.jpg
-http://www.cardforge.org/fpics/products/boosters/BNG_1.jpg
-http://www.cardforge.org/fpics/products/boosters/BNG_2.jpg
-http://www.cardforge.org/fpics/products/boosters/BNG_3.jpg
-http://www.cardforge.org/fpics/products/boosters/CFX_1.jpg
-http://www.cardforge.org/fpics/products/boosters/CFX_2.jpg
-http://www.cardforge.org/fpics/products/boosters/CFX_3.jpg
-http://www.cardforge.org/fpics/products/boosters/CHK_1.jpg
-http://www.cardforge.org/fpics/products/boosters/CHK_2.jpg
-http://www.cardforge.org/fpics/products/boosters/CHK_3.jpg
-http://www.cardforge.org/fpics/products/boosters/CHK_4.jpg
-http://www.cardforge.org/fpics/products/boosters/CHK_5.jpg
-http://www.cardforge.org/fpics/products/boosters/CHR.jpg
-http://www.cardforge.org/fpics/products/boosters/CSP_1.jpg
-http://www.cardforge.org/fpics/products/boosters/CSP_2.jpg
-http://www.cardforge.org/fpics/products/boosters/CSP_3.jpg
-http://www.cardforge.org/fpics/products/boosters/DGM_1.jpg
-http://www.cardforge.org/fpics/products/boosters/DGM_2.jpg
-http://www.cardforge.org/fpics/products/boosters/DGM_3.jpg
-http://www.cardforge.org/fpics/products/boosters/DIS_1.jpg
-http://www.cardforge.org/fpics/products/boosters/DIS_2.jpg
-http://www.cardforge.org/fpics/products/boosters/DIS_3.jpg
-http://www.cardforge.org/fpics/products/boosters/DKA_1.jpg
-http://www.cardforge.org/fpics/products/boosters/DKA_2.jpg
-http://www.cardforge.org/fpics/products/boosters/DKA_3.jpg
-http://www.cardforge.org/fpics/products/boosters/DRK.jpg
-http://www.cardforge.org/fpics/products/boosters/DST_1.jpg
-http://www.cardforge.org/fpics/products/boosters/DST_2.jpg
-http://www.cardforge.org/fpics/products/boosters/DST_3.jpg
-http://www.cardforge.org/fpics/products/boosters/EVE_1.jpg
-http://www.cardforge.org/fpics/products/boosters/EVE_2.jpg
-http://www.cardforge.org/fpics/products/boosters/EVE_3.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_1.jpg
-http://www.cardforge.org/fpics/products/boosters/FUT_2.jpg
-http://www.cardforge.org/fpics/products/boosters/FUT_3.jpg
-http://www.cardforge.org/fpics/products/boosters/GPT_1.jpg
-http://www.cardforge.org/fpics/products/boosters/GPT_2.jpg
-http://www.cardforge.org/fpics/products/boosters/GPT_3.jpg
-http://www.cardforge.org/fpics/products/boosters/GTC_1.jpg
-http://www.cardforge.org/fpics/products/boosters/GTC_2.jpg
-http://www.cardforge.org/fpics/products/boosters/GTC_3.jpg
-http://www.cardforge.org/fpics/products/boosters/GTC_4.jpg
-http://www.cardforge.org/fpics/products/boosters/GTC_5.jpg
-http://www.cardforge.org/fpics/products/boosters/HML.jpg
-http://www.cardforge.org/fpics/products/boosters/ICE_1.jpg
-http://www.cardforge.org/fpics/products/boosters/ICE_2.jpg
-http://www.cardforge.org/fpics/products/boosters/ICE_3.jpg
-http://www.cardforge.org/fpics/products/boosters/ICE_4.jpg
-http://www.cardforge.org/fpics/products/boosters/ICE_5.jpg
-http://www.cardforge.org/fpics/products/boosters/INV_1.jpg
-http://www.cardforge.org/fpics/products/boosters/INV_2.jpg
-http://www.cardforge.org/fpics/products/boosters/INV_3.jpg
-http://www.cardforge.org/fpics/products/boosters/ISD_1.jpg
-http://www.cardforge.org/fpics/products/boosters/ISD_2.jpg
-http://www.cardforge.org/fpics/products/boosters/ISD_3.jpg
-http://www.cardforge.org/fpics/products/boosters/ISD_4.jpg
-http://www.cardforge.org/fpics/products/boosters/ISD_5.jpg
-http://www.cardforge.org/fpics/products/boosters/JOU_1.jpg
-http://www.cardforge.org/fpics/products/boosters/JOU_2.jpg
-http://www.cardforge.org/fpics/products/boosters/JOU_3.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_1.jpg
-http://www.cardforge.org/fpics/products/boosters/LGN_2.jpg
-http://www.cardforge.org/fpics/products/boosters/LGN_3.jpg
-http://www.cardforge.org/fpics/products/boosters/LRW_1.jpg
-http://www.cardforge.org/fpics/products/boosters/LRW_2.jpg
-http://www.cardforge.org/fpics/products/boosters/LRW_3.jpg
-http://www.cardforge.org/fpics/products/boosters/LRW_4.jpg
-http://www.cardforge.org/fpics/products/boosters/LRW_5.jpg
-http://www.cardforge.org/fpics/products/boosters/M10_1.jpg
-http://www.cardforge.org/fpics/products/boosters/M10_2.jpg
-http://www.cardforge.org/fpics/products/boosters/M10_3.jpg
-http://www.cardforge.org/fpics/products/boosters/M10_4.jpg
-http://www.cardforge.org/fpics/products/boosters/M10_5.jpg
-http://www.cardforge.org/fpics/products/boosters/M11_1.jpg
-http://www.cardforge.org/fpics/products/boosters/M11_2.jpg
-http://www.cardforge.org/fpics/products/boosters/M11_3.jpg
-http://www.cardforge.org/fpics/products/boosters/M11_4.jpg
-http://www.cardforge.org/fpics/products/boosters/M11_5.jpg
-http://www.cardforge.org/fpics/products/boosters/M12_1.jpg
-http://www.cardforge.org/fpics/products/boosters/M12_2.jpg
-http://www.cardforge.org/fpics/products/boosters/M12_3.jpg
-http://www.cardforge.org/fpics/products/boosters/M12_4.jpg
-http://www.cardforge.org/fpics/products/boosters/M12_5.jpg
-http://www.cardforge.org/fpics/products/boosters/M13_1.jpg
-http://www.cardforge.org/fpics/products/boosters/M13_2.jpg
-http://www.cardforge.org/fpics/products/boosters/M13_3.jpg
-http://www.cardforge.org/fpics/products/boosters/M13_4.jpg
-http://www.cardforge.org/fpics/products/boosters/M13_5.jpg
-http://www.cardforge.org/fpics/products/boosters/MBS_1.jpg
-http://www.cardforge.org/fpics/products/boosters/MBS_2.jpg
-http://www.cardforge.org/fpics/products/boosters/MBS_3.jpg
-http://www.cardforge.org/fpics/products/boosters/MIR_1.jpg
-http://www.cardforge.org/fpics/products/boosters/MIR_2.jpg
-http://www.cardforge.org/fpics/products/boosters/MIR_3.jpg
-http://www.cardforge.org/fpics/products/boosters/MIR_4.jpg
-http://www.cardforge.org/fpics/products/boosters/MIR_5.jpg
-http://www.cardforge.org/fpics/products/boosters/MMQ_1.jpg
-http://www.cardforge.org/fpics/products/boosters/MMQ_2.jpg
-http://www.cardforge.org/fpics/products/boosters/MMQ_3.jpg
-http://www.cardforge.org/fpics/products/boosters/MOR_1.jpg
-http://www.cardforge.org/fpics/products/boosters/MOR_2.jpg
-http://www.cardforge.org/fpics/products/boosters/MOR_3.jpg
-http://www.cardforge.org/fpics/products/boosters/MRD_1.jpg
-http://www.cardforge.org/fpics/products/boosters/MRD_2.jpg
-http://www.cardforge.org/fpics/products/boosters/MRD_3.jpg
-http://www.cardforge.org/fpics/products/boosters/MRD_4.jpg
-http://www.cardforge.org/fpics/products/boosters/MRD_5.jpg
-http://www.cardforge.org/fpics/products/boosters/NMS.jpg
-http://www.cardforge.org/fpics/products/boosters/NPH_1.jpg
-http://www.cardforge.org/fpics/products/boosters/NPH_2.jpg
-http://www.cardforge.org/fpics/products/boosters/NPH_3.jpg
-http://www.cardforge.org/fpics/products/boosters/ODY_1.jpg
-http://www.cardforge.org/fpics/products/boosters/ODY_2.jpg
-http://www.cardforge.org/fpics/products/boosters/ODY_3.jpg
-http://www.cardforge.org/fpics/products/boosters/ONS_1.jpg
-http://www.cardforge.org/fpics/products/boosters/ONS_2.jpg
-http://www.cardforge.org/fpics/products/boosters/ONS_3.jpg
-http://www.cardforge.org/fpics/products/boosters/ONS_4.jpg
-http://www.cardforge.org/fpics/products/boosters/ONS_5.jpg
-http://www.cardforge.org/fpics/products/boosters/PCY.jpg
-http://www.cardforge.org/fpics/products/boosters/PLC_1.jpg
-http://www.cardforge.org/fpics/products/boosters/PLC_2.jpg
-http://www.cardforge.org/fpics/products/boosters/PLC_3.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_1.jpg
-http://www.cardforge.org/fpics/products/boosters/POR_2.jpg
-http://www.cardforge.org/fpics/products/boosters/POR_3.jpg
-http://www.cardforge.org/fpics/products/boosters/POR_4.jpg
-http://www.cardforge.org/fpics/products/boosters/POR_5.jpg
-http://www.cardforge.org/fpics/products/boosters/PTK.jpg
-http://www.cardforge.org/fpics/products/boosters/RAV_1.jpg
-http://www.cardforge.org/fpics/products/boosters/RAV_2.jpg
-http://www.cardforge.org/fpics/products/boosters/RAV_3.jpg
-http://www.cardforge.org/fpics/products/boosters/RAV_4.jpg
-http://www.cardforge.org/fpics/products/boosters/RAV_5.jpg
-http://www.cardforge.org/fpics/products/boosters/ROE_1.jpg
-http://www.cardforge.org/fpics/products/boosters/ROE_2.jpg
-http://www.cardforge.org/fpics/products/boosters/ROE_3.jpg
-http://www.cardforge.org/fpics/products/boosters/ROE_4.jpg
-http://www.cardforge.org/fpics/products/boosters/ROE_5.jpg
-http://www.cardforge.org/fpics/products/boosters/RTR_1.jpg
-http://www.cardforge.org/fpics/products/boosters/RTR_2.jpg
-http://www.cardforge.org/fpics/products/boosters/RTR_3.jpg
-http://www.cardforge.org/fpics/products/boosters/RTR_4.jpg
-http://www.cardforge.org/fpics/products/boosters/RTR_5.jpg
-http://www.cardforge.org/fpics/products/boosters/S99.jpg
-http://www.cardforge.org/fpics/products/boosters/SCG_1.jpg
-http://www.cardforge.org/fpics/products/boosters/SCG_2.jpg
-http://www.cardforge.org/fpics/products/boosters/SCG_3.jpg
-http://www.cardforge.org/fpics/products/boosters/SHM_1.jpg
-http://www.cardforge.org/fpics/products/boosters/SHM_2.jpg
-http://www.cardforge.org/fpics/products/boosters/SHM_3.jpg
-http://www.cardforge.org/fpics/products/boosters/SHM_4.jpg
-http://www.cardforge.org/fpics/products/boosters/SHM_5.jpg
-http://www.cardforge.org/fpics/products/boosters/SOK_1.jpg
-http://www.cardforge.org/fpics/products/boosters/SOK_2.jpg
-http://www.cardforge.org/fpics/products/boosters/SOK_3.jpg
-http://www.cardforge.org/fpics/products/boosters/SOM_1.jpg
-http://www.cardforge.org/fpics/products/boosters/SOM_2.jpg
-http://www.cardforge.org/fpics/products/boosters/SOM_3.jpg
-http://www.cardforge.org/fpics/products/boosters/SOM_4.jpg
-http://www.cardforge.org/fpics/products/boosters/SOM_5.jpg
-http://www.cardforge.org/fpics/products/boosters/STH.jpg
-http://www.cardforge.org/fpics/products/boosters/THS_1.jpg
-http://www.cardforge.org/fpics/products/boosters/THS_2.jpg
-http://www.cardforge.org/fpics/products/boosters/THS_3.jpg
-http://www.cardforge.org/fpics/products/boosters/THS_4.jpg
-http://www.cardforge.org/fpics/products/boosters/THS_5.jpg
-http://www.cardforge.org/fpics/products/boosters/TMP_1.jpg
-http://www.cardforge.org/fpics/products/boosters/TMP_2.jpg
-http://www.cardforge.org/fpics/products/boosters/TMP_3.jpg
-http://www.cardforge.org/fpics/products/boosters/TOR.jpg
-http://www.cardforge.org/fpics/products/boosters/TSP_1.jpg
-http://www.cardforge.org/fpics/products/boosters/TSP_2.jpg
-http://www.cardforge.org/fpics/products/boosters/TSP_3.jpg
-http://www.cardforge.org/fpics/products/boosters/TSP_4.jpg
-http://www.cardforge.org/fpics/products/boosters/TSP_5.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_1.jpg
-http://www.cardforge.org/fpics/products/boosters/USG_2.jpg
-http://www.cardforge.org/fpics/products/boosters/USG_3.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_1.jpg
-http://www.cardforge.org/fpics/products/boosters/WWK_2.jpg
-http://www.cardforge.org/fpics/products/boosters/WWK_3.jpg
-http://www.cardforge.org/fpics/products/boosters/ZEN_1.jpg
-http://www.cardforge.org/fpics/products/boosters/ZEN_2.jpg
-http://www.cardforge.org/fpics/products/boosters/ZEN_3.jpg
-http://www.cardforge.org/fpics/products/boosters/ZEN_4.jpg
-http://www.cardforge.org/fpics/products/boosters/ZEN_5.jpg
+http://downloads.cardforge.link/images/products/boosters/10E_1.jpg
+http://downloads.cardforge.link/images/products/boosters/10E_2.jpg
+http://downloads.cardforge.link/images/products/boosters/10E_3.jpg
+http://downloads.cardforge.link/images/products/boosters/10E_4.jpg
+http://downloads.cardforge.link/images/products/boosters/10E_5.jpg
+http://downloads.cardforge.link/images/products/boosters/2ED.jpg
+http://downloads.cardforge.link/images/products/boosters/3ED.jpg
+http://downloads.cardforge.link/images/products/boosters/4ED_1.jpg
+http://downloads.cardforge.link/images/products/boosters/4ED_2.jpg
+http://downloads.cardforge.link/images/products/boosters/4ED_3.jpg
+http://downloads.cardforge.link/images/products/boosters/4ED_4.jpg
+http://downloads.cardforge.link/images/products/boosters/4ED_5.jpg
+http://downloads.cardforge.link/images/products/boosters/5DN_1.jpg
+http://downloads.cardforge.link/images/products/boosters/5DN_2.jpg
+http://downloads.cardforge.link/images/products/boosters/5DN_3.jpg
+http://downloads.cardforge.link/images/products/boosters/5ED_1.jpg
+http://downloads.cardforge.link/images/products/boosters/5ED_2.jpg
+http://downloads.cardforge.link/images/products/boosters/5ED_3.jpg
+http://downloads.cardforge.link/images/products/boosters/5ED_4.jpg
+http://downloads.cardforge.link/images/products/boosters/5ED_5.jpg
+http://downloads.cardforge.link/images/products/boosters/6ED.jpg
+http://downloads.cardforge.link/images/products/boosters/7ED_1.jpg
+http://downloads.cardforge.link/images/products/boosters/7ED_2.jpg
+http://downloads.cardforge.link/images/products/boosters/7ED_3.jpg
+http://downloads.cardforge.link/images/products/boosters/7ED_4.jpg
+http://downloads.cardforge.link/images/products/boosters/7ED_5.jpg
+http://downloads.cardforge.link/images/products/boosters/8ED_1.jpg
+http://downloads.cardforge.link/images/products/boosters/8ED_2.jpg
+http://downloads.cardforge.link/images/products/boosters/8ED_3.jpg
+http://downloads.cardforge.link/images/products/boosters/8ED_4.jpg
+http://downloads.cardforge.link/images/products/boosters/8ED_5.jpg
+http://downloads.cardforge.link/images/products/boosters/9ED_1.jpg
+http://downloads.cardforge.link/images/products/boosters/9ED_2.jpg
+http://downloads.cardforge.link/images/products/boosters/9ED_3.jpg
+http://downloads.cardforge.link/images/products/boosters/9ED_4.jpg
+http://downloads.cardforge.link/images/products/boosters/9ED_5.jpg
+http://downloads.cardforge.link/images/products/boosters/ALA_1.jpg
+http://downloads.cardforge.link/images/products/boosters/ALA_2.jpg
+http://downloads.cardforge.link/images/products/boosters/ALA_3.jpg
+http://downloads.cardforge.link/images/products/boosters/ALA_4.jpg
+http://downloads.cardforge.link/images/products/boosters/ALA_5.jpg
+http://downloads.cardforge.link/images/products/boosters/ALL.jpg
+http://downloads.cardforge.link/images/products/boosters/APC.jpg
+http://downloads.cardforge.link/images/products/boosters/ARB_1.jpg
+http://downloads.cardforge.link/images/products/boosters/ARB_2.jpg
+http://downloads.cardforge.link/images/products/boosters/ARB_3.jpg
+http://downloads.cardforge.link/images/products/boosters/ARN.jpg
+http://downloads.cardforge.link/images/products/boosters/ATQ.jpg
+http://downloads.cardforge.link/images/products/boosters/AVR_1.jpg
+http://downloads.cardforge.link/images/products/boosters/AVR_2.jpg
+http://downloads.cardforge.link/images/products/boosters/AVR_3.jpg
+http://downloads.cardforge.link/images/products/boosters/AVR_4.jpg
+http://downloads.cardforge.link/images/products/boosters/AVR_5.jpg
+http://downloads.cardforge.link/images/products/boosters/BOK_1.jpg
+http://downloads.cardforge.link/images/products/boosters/BOK_2.jpg
+http://downloads.cardforge.link/images/products/boosters/BOK_3.jpg
+http://downloads.cardforge.link/images/products/boosters/BNG_1.jpg
+http://downloads.cardforge.link/images/products/boosters/BNG_2.jpg
+http://downloads.cardforge.link/images/products/boosters/BNG_3.jpg
+http://downloads.cardforge.link/images/products/boosters/CFX_1.jpg
+http://downloads.cardforge.link/images/products/boosters/CFX_2.jpg
+http://downloads.cardforge.link/images/products/boosters/CFX_3.jpg
+http://downloads.cardforge.link/images/products/boosters/CHK_1.jpg
+http://downloads.cardforge.link/images/products/boosters/CHK_2.jpg
+http://downloads.cardforge.link/images/products/boosters/CHK_3.jpg
+http://downloads.cardforge.link/images/products/boosters/CHK_4.jpg
+http://downloads.cardforge.link/images/products/boosters/CHK_5.jpg
+http://downloads.cardforge.link/images/products/boosters/CHR.jpg
+http://downloads.cardforge.link/images/products/boosters/CSP_1.jpg
+http://downloads.cardforge.link/images/products/boosters/CSP_2.jpg
+http://downloads.cardforge.link/images/products/boosters/CSP_3.jpg
+http://downloads.cardforge.link/images/products/boosters/DGM_1.jpg
+http://downloads.cardforge.link/images/products/boosters/DGM_2.jpg
+http://downloads.cardforge.link/images/products/boosters/DGM_3.jpg
+http://downloads.cardforge.link/images/products/boosters/DIS_1.jpg
+http://downloads.cardforge.link/images/products/boosters/DIS_2.jpg
+http://downloads.cardforge.link/images/products/boosters/DIS_3.jpg
+http://downloads.cardforge.link/images/products/boosters/DKA_1.jpg
+http://downloads.cardforge.link/images/products/boosters/DKA_2.jpg
+http://downloads.cardforge.link/images/products/boosters/DKA_3.jpg
+http://downloads.cardforge.link/images/products/boosters/DRK.jpg
+http://downloads.cardforge.link/images/products/boosters/DST_1.jpg
+http://downloads.cardforge.link/images/products/boosters/DST_2.jpg
+http://downloads.cardforge.link/images/products/boosters/DST_3.jpg
+http://downloads.cardforge.link/images/products/boosters/DTK_1.jpg
+http://downloads.cardforge.link/images/products/boosters/DTK_2.jpg
+http://downloads.cardforge.link/images/products/boosters/DTK_3.jpg
+http://downloads.cardforge.link/images/products/boosters/DTK_4.jpg
+http://downloads.cardforge.link/images/products/boosters/DTK_5.jpg
+http://downloads.cardforge.link/images/products/boosters/EVE_1.jpg
+http://downloads.cardforge.link/images/products/boosters/EVE_2.jpg
+http://downloads.cardforge.link/images/products/boosters/EVE_3.jpg
+http://downloads.cardforge.link/images/products/boosters/EXO.jpg
+http://downloads.cardforge.link/images/products/boosters/FEM.jpg
+http://downloads.cardforge.link/images/products/boosters/FRF_1.jpg
+http://downloads.cardforge.link/images/products/boosters/FRF_2.jpg
+http://downloads.cardforge.link/images/products/boosters/FRF_3.jpg
+http://downloads.cardforge.link/images/products/boosters/FUT_1.jpg
+http://downloads.cardforge.link/images/products/boosters/FUT_2.jpg
+http://downloads.cardforge.link/images/products/boosters/FUT_3.jpg
+http://downloads.cardforge.link/images/products/boosters/GPT_1.jpg
+http://downloads.cardforge.link/images/products/boosters/GPT_2.jpg
+http://downloads.cardforge.link/images/products/boosters/GPT_3.jpg
+http://downloads.cardforge.link/images/products/boosters/GTC_1.jpg
+http://downloads.cardforge.link/images/products/boosters/GTC_2.jpg
+http://downloads.cardforge.link/images/products/boosters/GTC_3.jpg
+http://downloads.cardforge.link/images/products/boosters/GTC_4.jpg
+http://downloads.cardforge.link/images/products/boosters/GTC_5.jpg
+http://downloads.cardforge.link/images/products/boosters/HML.jpg
+http://downloads.cardforge.link/images/products/boosters/ICE_1.jpg
+http://downloads.cardforge.link/images/products/boosters/ICE_2.jpg
+http://downloads.cardforge.link/images/products/boosters/ICE_3.jpg
+http://downloads.cardforge.link/images/products/boosters/ICE_4.jpg
+http://downloads.cardforge.link/images/products/boosters/ICE_5.jpg
+http://downloads.cardforge.link/images/products/boosters/INV_1.jpg
+http://downloads.cardforge.link/images/products/boosters/INV_2.jpg
+http://downloads.cardforge.link/images/products/boosters/INV_3.jpg
+http://downloads.cardforge.link/images/products/boosters/ISD_1.jpg
+http://downloads.cardforge.link/images/products/boosters/ISD_2.jpg
+http://downloads.cardforge.link/images/products/boosters/ISD_3.jpg
+http://downloads.cardforge.link/images/products/boosters/ISD_4.jpg
+http://downloads.cardforge.link/images/products/boosters/ISD_5.jpg
+http://downloads.cardforge.link/images/products/boosters/JOU_1.jpg
+http://downloads.cardforge.link/images/products/boosters/JOU_2.jpg
+http://downloads.cardforge.link/images/products/boosters/JOU_3.jpg
+http://downloads.cardforge.link/images/products/boosters/JUD.jpg
+http://downloads.cardforge.link/images/products/boosters/KTK_1.jpg
+http://downloads.cardforge.link/images/products/boosters/KTK_2.jpg
+http://downloads.cardforge.link/images/products/boosters/KTK_3.jpg
+http://downloads.cardforge.link/images/products/boosters/KTK_4.jpg
+http://downloads.cardforge.link/images/products/boosters/KTK_5.jpg
+http://downloads.cardforge.link/images/products/boosters/LEA.jpg
+http://downloads.cardforge.link/images/products/boosters/LEB.jpg
+http://downloads.cardforge.link/images/products/boosters/LEG.jpg
+http://downloads.cardforge.link/images/products/boosters/LGN_1.jpg
+http://downloads.cardforge.link/images/products/boosters/LGN_2.jpg
+http://downloads.cardforge.link/images/products/boosters/LGN_3.jpg
+http://downloads.cardforge.link/images/products/boosters/LRW_1.jpg
+http://downloads.cardforge.link/images/products/boosters/LRW_2.jpg
+http://downloads.cardforge.link/images/products/boosters/LRW_3.jpg
+http://downloads.cardforge.link/images/products/boosters/LRW_4.jpg
+http://downloads.cardforge.link/images/products/boosters/LRW_5.jpg
+http://downloads.cardforge.link/images/products/boosters/M10_1.jpg
+http://downloads.cardforge.link/images/products/boosters/M10_2.jpg
+http://downloads.cardforge.link/images/products/boosters/M10_3.jpg
+http://downloads.cardforge.link/images/products/boosters/M10_4.jpg
+http://downloads.cardforge.link/images/products/boosters/M10_5.jpg
+http://downloads.cardforge.link/images/products/boosters/M11_1.jpg
+http://downloads.cardforge.link/images/products/boosters/M11_2.jpg
+http://downloads.cardforge.link/images/products/boosters/M11_3.jpg
+http://downloads.cardforge.link/images/products/boosters/M11_4.jpg
+http://downloads.cardforge.link/images/products/boosters/M11_5.jpg
+http://downloads.cardforge.link/images/products/boosters/M12_1.jpg
+http://downloads.cardforge.link/images/products/boosters/M12_2.jpg
+http://downloads.cardforge.link/images/products/boosters/M12_3.jpg
+http://downloads.cardforge.link/images/products/boosters/M12_4.jpg
+http://downloads.cardforge.link/images/products/boosters/M12_5.jpg
+http://downloads.cardforge.link/images/products/boosters/M13_1.jpg
+http://downloads.cardforge.link/images/products/boosters/M13_2.jpg
+http://downloads.cardforge.link/images/products/boosters/M13_3.jpg
+http://downloads.cardforge.link/images/products/boosters/M13_4.jpg
+http://downloads.cardforge.link/images/products/boosters/M13_5.jpg
+http://downloads.cardforge.link/images/products/boosters/M14_1.jpg
+http://downloads.cardforge.link/images/products/boosters/M14_2.jpg
+http://downloads.cardforge.link/images/products/boosters/M14_3.jpg
+http://downloads.cardforge.link/images/products/boosters/M14_4.jpg
+http://downloads.cardforge.link/images/products/boosters/M14_5.jpg
+http://downloads.cardforge.link/images/products/boosters/M15_1.jpg
+http://downloads.cardforge.link/images/products/boosters/M15_2.jpg
+http://downloads.cardforge.link/images/products/boosters/M15_3.jpg
+http://downloads.cardforge.link/images/products/boosters/M15_4.jpg
+http://downloads.cardforge.link/images/products/boosters/M15_5.jpg
+http://downloads.cardforge.link/images/products/boosters/MBS_1.jpg
+http://downloads.cardforge.link/images/products/boosters/MBS_2.jpg
+http://downloads.cardforge.link/images/products/boosters/MBS_3.jpg
+http://downloads.cardforge.link/images/products/boosters/MIR_1.jpg
+http://downloads.cardforge.link/images/products/boosters/MIR_2.jpg
+http://downloads.cardforge.link/images/products/boosters/MIR_3.jpg
+http://downloads.cardforge.link/images/products/boosters/MIR_4.jpg
+http://downloads.cardforge.link/images/products/boosters/MIR_5.jpg
+http://downloads.cardforge.link/images/products/boosters/MMQ_1.jpg
+http://downloads.cardforge.link/images/products/boosters/MMQ_2.jpg
+http://downloads.cardforge.link/images/products/boosters/MMQ_3.jpg
+http://downloads.cardforge.link/images/products/boosters/MOR_1.jpg
+http://downloads.cardforge.link/images/products/boosters/MOR_2.jpg
+http://downloads.cardforge.link/images/products/boosters/MOR_3.jpg
+http://downloads.cardforge.link/images/products/boosters/MRD_1.jpg
+http://downloads.cardforge.link/images/products/boosters/MRD_2.jpg
+http://downloads.cardforge.link/images/products/boosters/MRD_3.jpg
+http://downloads.cardforge.link/images/products/boosters/MRD_4.jpg
+http://downloads.cardforge.link/images/products/boosters/MRD_5.jpg
+http://downloads.cardforge.link/images/products/boosters/NMS.jpg
+http://downloads.cardforge.link/images/products/boosters/NPH_1.jpg
+http://downloads.cardforge.link/images/products/boosters/NPH_2.jpg
+http://downloads.cardforge.link/images/products/boosters/NPH_3.jpg
+http://downloads.cardforge.link/images/products/boosters/ODY_1.jpg
+http://downloads.cardforge.link/images/products/boosters/ODY_2.jpg
+http://downloads.cardforge.link/images/products/boosters/ODY_3.jpg
+http://downloads.cardforge.link/images/products/boosters/ONS_1.jpg
+http://downloads.cardforge.link/images/products/boosters/ONS_2.jpg
+http://downloads.cardforge.link/images/products/boosters/ONS_3.jpg
+http://downloads.cardforge.link/images/products/boosters/ONS_4.jpg
+http://downloads.cardforge.link/images/products/boosters/ONS_5.jpg
+http://downloads.cardforge.link/images/products/boosters/PCY.jpg
+http://downloads.cardforge.link/images/products/boosters/PLC_1.jpg
+http://downloads.cardforge.link/images/products/boosters/PLC_2.jpg
+http://downloads.cardforge.link/images/products/boosters/PLC_3.jpg
+http://downloads.cardforge.link/images/products/boosters/PLS.jpg
+http://downloads.cardforge.link/images/products/boosters/PO2.jpg
+http://downloads.cardforge.link/images/products/boosters/POR_1.jpg
+http://downloads.cardforge.link/images/products/boosters/POR_2.jpg
+http://downloads.cardforge.link/images/products/boosters/POR_3.jpg
+http://downloads.cardforge.link/images/products/boosters/POR_4.jpg
+http://downloads.cardforge.link/images/products/boosters/POR_5.jpg
+http://downloads.cardforge.link/images/products/boosters/PTK.jpg
+http://downloads.cardforge.link/images/products/boosters/RAV_1.jpg
+http://downloads.cardforge.link/images/products/boosters/RAV_2.jpg
+http://downloads.cardforge.link/images/products/boosters/RAV_3.jpg
+http://downloads.cardforge.link/images/products/boosters/RAV_4.jpg
+http://downloads.cardforge.link/images/products/boosters/RAV_5.jpg
+http://downloads.cardforge.link/images/products/boosters/ROE_1.jpg
+http://downloads.cardforge.link/images/products/boosters/ROE_2.jpg
+http://downloads.cardforge.link/images/products/boosters/ROE_3.jpg
+http://downloads.cardforge.link/images/products/boosters/ROE_4.jpg
+http://downloads.cardforge.link/images/products/boosters/ROE_5.jpg
+http://downloads.cardforge.link/images/products/boosters/RTR_1.jpg
+http://downloads.cardforge.link/images/products/boosters/RTR_2.jpg
+http://downloads.cardforge.link/images/products/boosters/RTR_3.jpg
+http://downloads.cardforge.link/images/products/boosters/RTR_4.jpg
+http://downloads.cardforge.link/images/products/boosters/RTR_5.jpg
+http://downloads.cardforge.link/images/products/boosters/S99.jpg
+http://downloads.cardforge.link/images/products/boosters/SCG_1.jpg
+http://downloads.cardforge.link/images/products/boosters/SCG_2.jpg
+http://downloads.cardforge.link/images/products/boosters/SCG_3.jpg
+http://downloads.cardforge.link/images/products/boosters/SHM_1.jpg
+http://downloads.cardforge.link/images/products/boosters/SHM_2.jpg
+http://downloads.cardforge.link/images/products/boosters/SHM_3.jpg
+http://downloads.cardforge.link/images/products/boosters/SHM_4.jpg
+http://downloads.cardforge.link/images/products/boosters/SHM_5.jpg
+http://downloads.cardforge.link/images/products/boosters/SOK_1.jpg
+http://downloads.cardforge.link/images/products/boosters/SOK_2.jpg
+http://downloads.cardforge.link/images/products/boosters/SOK_3.jpg
+http://downloads.cardforge.link/images/products/boosters/SOM_1.jpg
+http://downloads.cardforge.link/images/products/boosters/SOM_2.jpg
+http://downloads.cardforge.link/images/products/boosters/SOM_3.jpg
+http://downloads.cardforge.link/images/products/boosters/SOM_4.jpg
+http://downloads.cardforge.link/images/products/boosters/SOM_5.jpg
+http://downloads.cardforge.link/images/products/boosters/STH.jpg
+http://downloads.cardforge.link/images/products/boosters/THS_1.jpg
+http://downloads.cardforge.link/images/products/boosters/THS_2.jpg
+http://downloads.cardforge.link/images/products/boosters/THS_3.jpg
+http://downloads.cardforge.link/images/products/boosters/THS_4.jpg
+http://downloads.cardforge.link/images/products/boosters/THS_5.jpg
+http://downloads.cardforge.link/images/products/boosters/TMP_1.jpg
+http://downloads.cardforge.link/images/products/boosters/TMP_2.jpg
+http://downloads.cardforge.link/images/products/boosters/TMP_3.jpg
+http://downloads.cardforge.link/images/products/boosters/TOR.jpg
+http://downloads.cardforge.link/images/products/boosters/TSP_1.jpg
+http://downloads.cardforge.link/images/products/boosters/TSP_2.jpg
+http://downloads.cardforge.link/images/products/boosters/TSP_3.jpg
+http://downloads.cardforge.link/images/products/boosters/TSP_4.jpg
+http://downloads.cardforge.link/images/products/boosters/TSP_5.jpg
+http://downloads.cardforge.link/images/products/boosters/UDS.jpg
+http://downloads.cardforge.link/images/products/boosters/ULG.jpg
+http://downloads.cardforge.link/images/products/boosters/USG_1.jpg
+http://downloads.cardforge.link/images/products/boosters/USG_2.jpg
+http://downloads.cardforge.link/images/products/boosters/USG_3.jpg
+http://downloads.cardforge.link/images/products/boosters/VIS.jpg
+http://downloads.cardforge.link/images/products/boosters/WTH.jpg
+http://downloads.cardforge.link/images/products/boosters/WWK_1.jpg
+http://downloads.cardforge.link/images/products/boosters/WWK_2.jpg
+http://downloads.cardforge.link/images/products/boosters/WWK_3.jpg
+http://downloads.cardforge.link/images/products/boosters/ZEN_1.jpg
+http://downloads.cardforge.link/images/products/boosters/ZEN_2.jpg
+http://downloads.cardforge.link/images/products/boosters/ZEN_3.jpg
+http://downloads.cardforge.link/images/products/boosters/ZEN_4.jpg
+http://downloads.cardforge.link/images/products/boosters/ZEN_5.jpg
diff --git a/forge-gui/res/lists/boosterbox-images.txt b/forge-gui/res/lists/boosterbox-images.txt
index f92aedefc3a..a3bbe805d64 100644
--- a/forge-gui/res/lists/boosterbox-images.txt
+++ b/forge-gui/res/lists/boosterbox-images.txt
@@ -1,80 +1,85 @@
-http://www.cardforge.org/fpics/products/boosterboxes/10E.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/2ED.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/3ED.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/4ED.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/5DN.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/5ED.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/6ED.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/7ED.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/8ED.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/9ED.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/ALA.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/ALL.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/APC.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/ARB.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/ARN.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/ATQ.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/AVR.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/BNG.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/BOK.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/CFX.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/CHK.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/CSP.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/DGM.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/DIS.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/DKA.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/DRK.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/DST.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/EVE.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/EXO.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/FEM.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/FUT.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/GPT.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/GTC.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/HML.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/ICE.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/INV.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/ISD.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/JOU.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/JUD.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/LEG.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/LGN.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/LRW.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/M10.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/M11.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/M12.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/M13.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/M14.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/MBS.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/MIR.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/MMA.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/MMQ.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/MOR.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/MRD.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/NMS.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/NPH.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/ODY.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/ONS.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/PCY.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/PLC.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/PLS.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/RAV.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/ROE.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/RTR.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/SCG.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/SHM.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/SOK.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/SOM.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/STH.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/THR.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/THS.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/TMP.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/TOR.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/TSP.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/UDS.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/ULG.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/USG.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/VIS.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/WTH.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/WWK.jpg
-http://www.cardforge.org/fpics/products/boosterboxes/ZEN.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/10E.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/2ED.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/3ED.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/4ED.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/5DN.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/5ED.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/6ED.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/7ED.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/8ED.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/9ED.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/ALA.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/ALL.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/APC.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/ARB.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/ARN.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/ATQ.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/AVR.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/BNG.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/BOK.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/CFX.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/CHK.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/CSP.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/DGM.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/DIS.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/DKA.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/DRK.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/DST.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/DTK.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/EVE.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/EXO.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/FEM.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/FRF.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/FUT.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/GPT.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/GTC.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/HML.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/ICE.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/INV.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/ISD.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/JOU.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/JUD.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/KTK.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/LEG.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/LGN.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/LRW.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/M10.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/M11.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/M12.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/M13.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/M14.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/M15.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/MBS.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/MIR.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/MM2.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/MMA.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/MMQ.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/MOR.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/MRD.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/NMS.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/NPH.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/ODY.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/ONS.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/PCY.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/PLC.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/PLS.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/RAV.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/ROE.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/RTR.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/SCG.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/SHM.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/SOK.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/SOM.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/STH.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/THR.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/THS.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/TMP.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/TOR.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/TSP.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/UDS.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/ULG.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/USG.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/VIS.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/WTH.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/WWK.jpg
+http://downloads.cardforge.link/images/products/boosterboxes/ZEN.jpg
diff --git a/forge-gui/res/lists/fatpack-images.txt b/forge-gui/res/lists/fatpack-images.txt
index 011fc2e784f..93e66444a49 100644
--- a/forge-gui/res/lists/fatpack-images.txt
+++ b/forge-gui/res/lists/fatpack-images.txt
@@ -1,48 +1,53 @@
-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/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/M11.jpg
-http://www.cardforge.org/fpics/products/fatpacks/M12.jpg
-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
+http://downloads.cardforge.link/images/products/fatpacks/10E.jpg
+http://downloads.cardforge.link/images/products/fatpacks/5DN.jpg
+http://downloads.cardforge.link/images/products/fatpacks/9ED.jpg
+http://downloads.cardforge.link/images/products/fatpacks/ALA.jpg
+http://downloads.cardforge.link/images/products/fatpacks/APC.jpg
+http://downloads.cardforge.link/images/products/fatpacks/ARB.jpg
+http://downloads.cardforge.link/images/products/fatpacks/BOK.jpg
+http://downloads.cardforge.link/images/products/fatpacks/CFX.jpg
+http://downloads.cardforge.link/images/products/fatpacks/CHK.jpg
+http://downloads.cardforge.link/images/products/fatpacks/CSP.jpg
+http://downloads.cardforge.link/images/products/fatpacks/DIS.jpg
+http://downloads.cardforge.link/images/products/fatpacks/DKA.jpg
+http://downloads.cardforge.link/images/products/fatpacks/DST.jpg
+http://downloads.cardforge.link/images/products/fatpacks/DTK.jpg
+http://downloads.cardforge.link/images/products/fatpacks/EVE.jpg
+http://downloads.cardforge.link/images/products/fatpacks/FRF.jpg
+http://downloads.cardforge.link/images/products/fatpacks/FUT.jpg
+http://downloads.cardforge.link/images/products/fatpacks/GPT.jpg
+http://downloads.cardforge.link/images/products/fatpacks/GTC.jpg
+http://downloads.cardforge.link/images/products/fatpacks/INV.jpg
+http://downloads.cardforge.link/images/products/fatpacks/ISD.jpg
+http://downloads.cardforge.link/images/products/fatpacks/JUD.jpg
+http://downloads.cardforge.link/images/products/fatpacks/KTK.jpg
+http://downloads.cardforge.link/images/products/fatpacks/LGN.jpg
+http://downloads.cardforge.link/images/products/fatpacks/LRW.jpg
+http://downloads.cardforge.link/images/products/fatpacks/M10.jpg
+http://downloads.cardforge.link/images/products/fatpacks/M11.jpg
+http://downloads.cardforge.link/images/products/fatpacks/M12.jpg
+http://downloads.cardforge.link/images/products/fatpacks/M13.jpg
+http://downloads.cardforge.link/images/products/fatpacks/M14.jpg
+http://downloads.cardforge.link/images/products/fatpacks/M15.jpg
+http://downloads.cardforge.link/images/products/fatpacks/MBS.jpg
+http://downloads.cardforge.link/images/products/fatpacks/MMQ.jpg
+http://downloads.cardforge.link/images/products/fatpacks/MOR.jpg
+http://downloads.cardforge.link/images/products/fatpacks/MRD.jpg
+http://downloads.cardforge.link/images/products/fatpacks/NMS.jpg
+http://downloads.cardforge.link/images/products/fatpacks/NPH.jpg
+http://downloads.cardforge.link/images/products/fatpacks/ODY.jpg
+http://downloads.cardforge.link/images/products/fatpacks/ONS.jpg
+http://downloads.cardforge.link/images/products/fatpacks/PCY.jpg
+http://downloads.cardforge.link/images/products/fatpacks/PLC.jpg
+http://downloads.cardforge.link/images/products/fatpacks/PLS.jpg
+http://downloads.cardforge.link/images/products/fatpacks/RAV.jpg
+http://downloads.cardforge.link/images/products/fatpacks/ROE.jpg
+http://downloads.cardforge.link/images/products/fatpacks/RTR.jpg
+http://downloads.cardforge.link/images/products/fatpacks/SCG.jpg
+http://downloads.cardforge.link/images/products/fatpacks/SHM.jpg
+http://downloads.cardforge.link/images/products/fatpacks/SOK.jpg
+http://downloads.cardforge.link/images/products/fatpacks/SOM.jpg
+http://downloads.cardforge.link/images/products/fatpacks/TOR.jpg
+http://downloads.cardforge.link/images/products/fatpacks/TSP.jpg
+http://downloads.cardforge.link/images/products/fatpacks/WWK.jpg
+http://downloads.cardforge.link/images/products/fatpacks/ZEN.jpg
diff --git a/forge-gui/res/lists/precon-images.txt b/forge-gui/res/lists/precon-images.txt
index 1919826cfd1..24a279e964a 100644
--- a/forge-gui/res/lists/precon-images.txt
+++ b/forge-gui/res/lists/precon-images.txt
@@ -1,199 +1,199 @@
-http://www.cardforge.org/fpics/products/precons/air_razers.jpg
-http://www.cardforge.org/fpics/products/precons/angelic_might.jpg
-http://www.cardforge.org/fpics/products/precons/anthousas_army.jpg
-http://www.cardforge.org/fpics/products/precons/arcaniss_guile.jpg
-http://www.cardforge.org/fpics/products/precons/armada.jpg
-http://www.cardforge.org/fpics/products/precons/army_of_entropy.jpg
-http://www.cardforge.org/fpics/products/precons/army_of_justice.jpg
-http://www.cardforge.org/fpics/products/precons/assassin.jpg
-http://www.cardforge.org/fpics/products/precons/aura_mastery.jpg
-http://www.cardforge.org/fpics/products/precons/azorius_advance.jpg
-http://www.cardforge.org/fpics/products/precons/azorius_ascendant.jpg
-http://www.cardforge.org/fpics/products/precons/azorius_authority.jpg
-http://www.cardforge.org/fpics/products/precons/bait_and_bludgeon.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/battalion.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/battle_surge.jpg
-http://www.cardforge.org/fpics/products/precons/bestial_strength.jpg
-http://www.cardforge.org/fpics/products/precons/blades_of_victory.jpg
-http://www.cardforge.org/fpics/products/precons/blazing_beasts_of_myth.jpg
-http://www.cardforge.org/fpics/products/precons/blood_and_fire.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/boros_battalion.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/brute_force.jpg
-http://www.cardforge.org/fpics/products/precons/carnival_of_blood.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/dark_sacrifice.jpg
-http://www.cardforge.org/fpics/products/precons/dead_again.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/death_march.jpg
-http://www.cardforge.org/fpics/products/precons/death_reaper.jpg
-http://www.cardforge.org/fpics/products/precons/deaths_encroach.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/depths_of_power.jpg
-http://www.cardforge.org/fpics/products/precons/devotion_to_darkness.jpg
-http://www.cardforge.org/fpics/products/precons/devouring_skies.jpg
-http://www.cardforge.org/fpics/products/precons/dimir_dementia.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/doom_inevitable.jpg
-http://www.cardforge.org/fpics/products/precons/eldrazi_arisen.jpg
-http://www.cardforge.org/fpics/products/precons/eldritch_onslaught.jpg
-http://www.cardforge.org/fpics/products/precons/elementals_path.jpg
-http://www.cardforge.org/fpics/products/precons/elvish_predation.jpg
-http://www.cardforge.org/fpics/products/precons/elvish_rage.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/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/favors_from_nyx.jpg
-http://www.cardforge.org/fpics/products/precons/feast_of_flesh.jpg
-http://www.cardforge.org/fpics/products/precons/fiendish_nature.jpg
-http://www.cardforge.org/fpics/products/precons/fiery_dawn.jpg
-http://www.cardforge.org/fpics/products/precons/fire_surge.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/going_rogue.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/grab_for_power.jpg
-http://www.cardforge.org/fpics/products/precons/grave_danger.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/groundbreaker.jpg
-http://www.cardforge.org/fpics/products/precons/gruul_goliaths.jpg
-http://www.cardforge.org/fpics/products/precons/gruul_siege.jpg
-http://www.cardforge.org/fpics/products/precons/gruul_wilding.jpg
-http://www.cardforge.org/fpics/products/precons/heavy_hitters.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/infestation.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/izzet_gizmometry.jpg
-http://www.cardforge.org/fpics/products/precons/izzet_ingenuity.jpg
-http://www.cardforge.org/fpics/products/precons/jund_appetite_for_war.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/kor_armory.jpg
-http://www.cardforge.org/fpics/products/precons/legion_aloft.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/life_boost.jpg
-http://www.cardforge.org/fpics/products/precons/life_drain.jpg
-http://www.cardforge.org/fpics/products/precons/lightforce.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/manipulative_monstrosities.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/metalcraft.jpg
-http://www.cardforge.org/fpics/products/precons/migraine.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/molimos_might.jpg
-http://www.cardforge.org/fpics/products/precons/monstrous_surprise.jpg
-http://www.cardforge.org/fpics/products/precons/mortal_coil.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/orzhov_oppression.jpg
-http://www.cardforge.org/fpics/products/precons/orzhov_power.jpg
-http://www.cardforge.org/fpics/products/precons/overkill.jpg
-http://www.cardforge.org/fpics/products/precons/path_of_blight.jpg
-http://www.cardforge.org/fpics/products/precons/phyrexian_assault.jpg
-http://www.cardforge.org/fpics/products/precons/phyrexian_poison.jpg
-http://www.cardforge.org/fpics/products/precons/power_of_prophecy.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/psychic_labyrinth.jpg
-http://www.cardforge.org/fpics/products/precons/pummel.jpg
-http://www.cardforge.org/fpics/products/precons/pumped_up.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/rakdos_revelry.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/rebels_unite.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/replicator.jpg
-http://www.cardforge.org/fpics/products/precons/rise_of_the_vampires.jpg
-http://www.cardforge.org/fpics/products/precons/rituals_of_rebirth.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/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/sidestep.jpg
-http://www.cardforge.org/fpics/products/precons/simic_synthesis.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/slaughterhouse.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/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/spectral_slam.jpg
-http://www.cardforge.org/fpics/products/precons/speed_scorch.jpg
-http://www.cardforge.org/fpics/products/precons/spiraling_doom.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/stampede_of_beasts.jpg
-http://www.cardforge.org/fpics/products/precons/sunburst.jpg
-http://www.cardforge.org/fpics/products/precons/superabundance.jpg
-http://www.cardforge.org/fpics/products/precons/suspended_sentence.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/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/totem_power.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/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/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/wild_rush.jpg
-http://www.cardforge.org/fpics/products/precons/world_aflame.jpg
-http://www.cardforge.org/fpics/products/precons/zombies_unleashed.jpg
+http://downloads.cardforge.link/images/products/precons/air_razers.jpg
+http://downloads.cardforge.link/images/products/precons/angelic_might.jpg
+http://downloads.cardforge.link/images/products/precons/anthousas_army.jpg
+http://downloads.cardforge.link/images/products/precons/arcaniss_guile.jpg
+http://downloads.cardforge.link/images/products/precons/armada.jpg
+http://downloads.cardforge.link/images/products/precons/army_of_entropy.jpg
+http://downloads.cardforge.link/images/products/precons/army_of_justice.jpg
+http://downloads.cardforge.link/images/products/precons/assassin.jpg
+http://downloads.cardforge.link/images/products/precons/aura_mastery.jpg
+http://downloads.cardforge.link/images/products/precons/azorius_advance.jpg
+http://downloads.cardforge.link/images/products/precons/azorius_ascendant.jpg
+http://downloads.cardforge.link/images/products/precons/azorius_authority.jpg
+http://downloads.cardforge.link/images/products/precons/bait_and_bludgeon.jpg
+http://downloads.cardforge.link/images/products/precons/bant_exalted.jpg
+http://downloads.cardforge.link/images/products/precons/bant_on_the_march.jpg
+http://downloads.cardforge.link/images/products/precons/battalion.jpg
+http://downloads.cardforge.link/images/products/precons/battle_blitz.jpg
+http://downloads.cardforge.link/images/products/precons/battle_cries.jpg
+http://downloads.cardforge.link/images/products/precons/battle_surge.jpg
+http://downloads.cardforge.link/images/products/precons/bestial_strength.jpg
+http://downloads.cardforge.link/images/products/precons/blades_of_victory.jpg
+http://downloads.cardforge.link/images/products/precons/blazing_beasts_of_myth.jpg
+http://downloads.cardforge.link/images/products/precons/blood_and_fire.jpg
+http://downloads.cardforge.link/images/products/precons/boggart_feast.jpg
+http://downloads.cardforge.link/images/products/precons/bomber.jpg
+http://downloads.cardforge.link/images/products/precons/boros_battalion.jpg
+http://downloads.cardforge.link/images/products/precons/bound_by_strength.jpg
+http://downloads.cardforge.link/images/products/precons/breath_of_fire.jpg
+http://downloads.cardforge.link/images/products/precons/brute_force.jpg
+http://downloads.cardforge.link/images/products/precons/carnival_of_blood.jpg
+http://downloads.cardforge.link/images/products/precons/cho-mannos_resolve.jpg
+http://downloads.cardforge.link/images/products/precons/code_of_the_orzhov.jpg
+http://downloads.cardforge.link/images/products/precons/critical_mass.jpg
+http://downloads.cardforge.link/images/products/precons/crusher.jpg
+http://downloads.cardforge.link/images/products/precons/custom_creatures.jpg
+http://downloads.cardforge.link/images/products/precons/dark_sacrifice.jpg
+http://downloads.cardforge.link/images/products/precons/dead_again.jpg
+http://downloads.cardforge.link/images/products/precons/dead_ahead.jpg
+http://downloads.cardforge.link/images/products/precons/deadspread.jpg
+http://downloads.cardforge.link/images/products/precons/deathfed.jpg
+http://downloads.cardforge.link/images/products/precons/deathly_dominion.jpg
+http://downloads.cardforge.link/images/products/precons/death_march.jpg
+http://downloads.cardforge.link/images/products/precons/death_reaper.jpg
+http://downloads.cardforge.link/images/products/precons/deaths_encroach.jpg
+http://downloads.cardforge.link/images/products/precons/deaths_minions.jpg
+http://downloads.cardforge.link/images/products/precons/decay.jpg
+http://downloads.cardforge.link/images/products/precons/deep_freeze.jpg
+http://downloads.cardforge.link/images/products/precons/depths_of_power.jpg
+http://downloads.cardforge.link/images/products/precons/devotion_to_darkness.jpg
+http://downloads.cardforge.link/images/products/precons/devouring_skies.jpg
+http://downloads.cardforge.link/images/products/precons/dimir_dementia.jpg
+http://downloads.cardforge.link/images/products/precons/disrupter.jpg
+http://downloads.cardforge.link/images/products/precons/domain.jpg
+http://downloads.cardforge.link/images/products/precons/doom_inevitable.jpg
+http://downloads.cardforge.link/images/products/precons/eldrazi_arisen.jpg
+http://downloads.cardforge.link/images/products/precons/eldritch_onslaught.jpg
+http://downloads.cardforge.link/images/products/precons/elementals_path.jpg
+http://downloads.cardforge.link/images/products/precons/elvish_predation.jpg
+http://downloads.cardforge.link/images/products/precons/elvish_rage.jpg
+http://downloads.cardforge.link/images/products/precons/entangling_webs.jpg
+http://downloads.cardforge.link/images/products/precons/esper_air_assault.jpg
+http://downloads.cardforge.link/images/products/precons/esper_artifice.jpg
+http://downloads.cardforge.link/images/products/precons/eternal_siege.jpg
+http://downloads.cardforge.link/images/products/precons/evincars_tyranny.jpg
+http://downloads.cardforge.link/images/products/precons/expulsion.jpg
+http://downloads.cardforge.link/images/products/precons/fangs_of_the_bloodchief.jpg
+http://downloads.cardforge.link/images/products/precons/fate_blaster.jpg
+http://downloads.cardforge.link/images/products/precons/favors_from_nyx.jpg
+http://downloads.cardforge.link/images/products/precons/feast_of_flesh.jpg
+http://downloads.cardforge.link/images/products/precons/fiendish_nature.jpg
+http://downloads.cardforge.link/images/products/precons/fiery_dawn.jpg
+http://downloads.cardforge.link/images/products/precons/fire_surge.jpg
+http://downloads.cardforge.link/images/products/precons/firebomber.jpg
+http://downloads.cardforge.link/images/products/precons/flyover.jpg
+http://downloads.cardforge.link/images/products/precons/gleeful_flames.jpg
+http://downloads.cardforge.link/images/products/precons/going_rogue.jpg
+http://downloads.cardforge.link/images/products/precons/golgari_deathcreep.jpg
+http://downloads.cardforge.link/images/products/precons/golgari_growth.jpg
+http://downloads.cardforge.link/images/products/precons/grab_for_power.jpg
+http://downloads.cardforge.link/images/products/precons/grave_danger.jpg
+http://downloads.cardforge.link/images/products/precons/grave_power.jpg
+http://downloads.cardforge.link/images/products/precons/grixis_shambling_army.jpg
+http://downloads.cardforge.link/images/products/precons/grixis_undead.jpg
+http://downloads.cardforge.link/images/products/precons/groundbreaker.jpg
+http://downloads.cardforge.link/images/products/precons/gruul_goliaths.jpg
+http://downloads.cardforge.link/images/products/precons/gruul_siege.jpg
+http://downloads.cardforge.link/images/products/precons/gruul_wilding.jpg
+http://downloads.cardforge.link/images/products/precons/heavy_hitters.jpg
+http://downloads.cardforge.link/images/products/precons/hold_the_line.jpg
+http://downloads.cardforge.link/images/products/precons/infect_and_defile.jpg
+http://downloads.cardforge.link/images/products/precons/infestation.jpg
+http://downloads.cardforge.link/images/products/precons/into_the_breach.jpg
+http://downloads.cardforge.link/images/products/precons/invading_spawn.jpg
+http://downloads.cardforge.link/images/products/precons/izzet_gizmometry.jpg
+http://downloads.cardforge.link/images/products/precons/izzet_ingenuity.jpg
+http://downloads.cardforge.link/images/products/precons/jund_appetite_for_war.jpg
+http://downloads.cardforge.link/images/products/precons/kamahls_temper.jpg
+http://downloads.cardforge.link/images/products/precons/kami_reborn.jpg
+http://downloads.cardforge.link/images/products/precons/kithkin_militia.jpg
+http://downloads.cardforge.link/images/products/precons/kor_armory.jpg
+http://downloads.cardforge.link/images/products/precons/legion_aloft.jpg
+http://downloads.cardforge.link/images/products/precons/levelers_glory.jpg
+http://downloads.cardforge.link/images/products/precons/levelers_scorn.jpg
+http://downloads.cardforge.link/images/products/precons/life_boost.jpg
+http://downloads.cardforge.link/images/products/precons/life_drain.jpg
+http://downloads.cardforge.link/images/products/precons/lightforce.jpg
+http://downloads.cardforge.link/images/products/precons/little_bashers.jpg
+http://downloads.cardforge.link/images/products/precons/lofty_heights.jpg
+http://downloads.cardforge.link/images/products/precons/manipulative_monstrosities.jpg
+http://downloads.cardforge.link/images/products/precons/master_blaster.jpg
+http://downloads.cardforge.link/images/products/precons/mercenaries.jpg
+http://downloads.cardforge.link/images/products/precons/merrow_riverways.jpg
+http://downloads.cardforge.link/images/products/precons/metalcraft.jpg
+http://downloads.cardforge.link/images/products/precons/migraine.jpg
+http://downloads.cardforge.link/images/products/precons/mirromancy.jpg
+http://downloads.cardforge.link/images/products/precons/mob_rule.jpg
+http://downloads.cardforge.link/images/products/precons/molimos_might.jpg
+http://downloads.cardforge.link/images/products/precons/monstrous_surprise.jpg
+http://downloads.cardforge.link/images/products/precons/mortal_coil.jpg
+http://downloads.cardforge.link/images/products/precons/myr_of_mirrodin.jpg
+http://downloads.cardforge.link/images/products/precons/mysterious_realms.jpg
+http://downloads.cardforge.link/images/products/precons/mystical_might.jpg
+http://downloads.cardforge.link/images/products/precons/naya_behemoths.jpg
+http://downloads.cardforge.link/images/products/precons/naya_domain.jpg
+http://downloads.cardforge.link/images/products/precons/orzhov_oppression.jpg
+http://downloads.cardforge.link/images/products/precons/orzhov_power.jpg
+http://downloads.cardforge.link/images/products/precons/overkill.jpg
+http://downloads.cardforge.link/images/products/precons/path_of_blight.jpg
+http://downloads.cardforge.link/images/products/precons/phyrexian_assault.jpg
+http://downloads.cardforge.link/images/products/precons/phyrexian_poison.jpg
+http://downloads.cardforge.link/images/products/precons/power_of_prophecy.jpg
+http://downloads.cardforge.link/images/products/precons/presence_of_mind.jpg
+http://downloads.cardforge.link/images/products/precons/primordial_jund.jpg
+http://downloads.cardforge.link/images/products/precons/psychic_labyrinth.jpg
+http://downloads.cardforge.link/images/products/precons/pummel.jpg
+http://downloads.cardforge.link/images/products/precons/pumped_up.jpg
+http://downloads.cardforge.link/images/products/precons/radiants_revenge.jpg
+http://downloads.cardforge.link/images/products/precons/rakdos_bloodsport.jpg
+http://downloads.cardforge.link/images/products/precons/rakdos_raid.jpg
+http://downloads.cardforge.link/images/products/precons/rakdos_revelry.jpg
+http://downloads.cardforge.link/images/products/precons/rapid_fire.jpg
+http://downloads.cardforge.link/images/products/precons/ravaging_swarm.jpg
+http://downloads.cardforge.link/images/products/precons/rebels_unite.jpg
+http://downloads.cardforge.link/images/products/precons/reign_of_vampirism.jpg
+http://downloads.cardforge.link/images/products/precons/relentless_dead.jpg
+http://downloads.cardforge.link/images/products/precons/relic_breaker.jpg
+http://downloads.cardforge.link/images/products/precons/repeat_performance.jpg
+http://downloads.cardforge.link/images/products/precons/repel_the_dark.jpg
+http://downloads.cardforge.link/images/products/precons/replicator.jpg
+http://downloads.cardforge.link/images/products/precons/rise_of_the_vampires.jpg
+http://downloads.cardforge.link/images/products/precons/rituals_of_rebirth.jpg
+http://downloads.cardforge.link/images/products/precons/rot_from_within.jpg
+http://downloads.cardforge.link/images/products/precons/rumbler.jpg
+http://downloads.cardforge.link/images/products/precons/sacred_assault.jpg
+http://downloads.cardforge.link/images/products/precons/sacrificial_bam.jpg
+http://downloads.cardforge.link/images/products/precons/selesnya_surge.jpg
+http://downloads.cardforge.link/images/products/precons/selesnya_united.jpg
+http://downloads.cardforge.link/images/products/precons/sidestep.jpg
+http://downloads.cardforge.link/images/products/precons/simic_synthesis.jpg
+http://downloads.cardforge.link/images/products/precons/shamanism.jpg
+http://downloads.cardforge.link/images/products/precons/sky_slam.jpg
+http://downloads.cardforge.link/images/products/precons/slaughterhouse.jpg
+http://downloads.cardforge.link/images/products/precons/sleeper.jpg
+http://downloads.cardforge.link/images/products/precons/sliver_shivers.jpg
+http://downloads.cardforge.link/images/products/precons/snowscape.jpg
+http://downloads.cardforge.link/images/products/precons/sole_domination.jpg
+http://downloads.cardforge.link/images/products/precons/solitary_fiends.jpg
+http://downloads.cardforge.link/images/products/precons/spectral_legions.jpg
+http://downloads.cardforge.link/images/products/precons/spectral_slam.jpg
+http://downloads.cardforge.link/images/products/precons/speed_scorch.jpg
+http://downloads.cardforge.link/images/products/precons/spiraling_doom.jpg
+http://downloads.cardforge.link/images/products/precons/spirit_flames.jpg
+http://downloads.cardforge.link/images/products/precons/spiritcraft.jpg
+http://downloads.cardforge.link/images/products/precons/stampede.jpg
+http://downloads.cardforge.link/images/products/precons/stampede_of_beasts.jpg
+http://downloads.cardforge.link/images/products/precons/sunburst.jpg
+http://downloads.cardforge.link/images/products/precons/superabundance.jpg
+http://downloads.cardforge.link/images/products/precons/suspended_sentence.jpg
+http://downloads.cardforge.link/images/products/precons/sweet_revenge.jpg
+http://downloads.cardforge.link/images/products/precons/swift_justice.jpg
+http://downloads.cardforge.link/images/products/precons/the_adventurers.jpg
+http://downloads.cardforge.link/images/products/precons/the_spikes.jpg
+http://downloads.cardforge.link/images/products/precons/the_swarm.jpg
+http://downloads.cardforge.link/images/products/precons/time_drain.jpg
+http://downloads.cardforge.link/images/products/precons/tombstone.jpg
+http://downloads.cardforge.link/images/products/precons/totem_power.jpg
+http://downloads.cardforge.link/images/products/precons/trounce-o-matic.jpg
+http://downloads.cardforge.link/images/products/precons/truth_seekers.jpg
+http://downloads.cardforge.link/images/products/precons/turnabout.jpg
+http://downloads.cardforge.link/images/products/precons/unnatural_schemes.jpg
+http://downloads.cardforge.link/images/products/precons/unstable_terrain.jpg
+http://downloads.cardforge.link/images/products/precons/vampire_onslaught.jpg
+http://downloads.cardforge.link/images/products/precons/war_of_attrition.jpg
+http://downloads.cardforge.link/images/products/precons/warriors_code.jpg
+http://downloads.cardforge.link/images/products/precons/way_wild.jpg
+http://downloads.cardforge.link/images/products/precons/wicked_big.jpg
+http://downloads.cardforge.link/images/products/precons/wild_rush.jpg
+http://downloads.cardforge.link/images/products/precons/world_aflame.jpg
+http://downloads.cardforge.link/images/products/precons/zombies_unleashed.jpg
diff --git a/forge-gui/res/lists/quest-opponent-icons.txt b/forge-gui/res/lists/quest-opponent-icons.txt
index c6dac139a13..338d5f6e413 100644
--- a/forge-gui/res/lists/quest-opponent-icons.txt
+++ b/forge-gui/res/lists/quest-opponent-icons.txt
@@ -1,384 +1,384 @@
-http://www.cardforge.org/fpics/questAvatars/A%20Wolf%20in%20Sheeps%20Clothing.jpg
-http://www.cardforge.org/fpics/questAvatars/Abraham%20Lincoln.jpg
-http://www.cardforge.org/fpics/questAvatars/Air-Walker.jpg
-http://www.cardforge.org/fpics/questAvatars/Albert%20Einstein.jpg
-http://www.cardforge.org/fpics/questAvatars/Alice%20in%20Wonderland.jpg
-http://www.cardforge.org/fpics/questAvatars/Amphibian.jpg
-http://www.cardforge.org/fpics/questAvatars/Anakin%20Skywalker.jpg
-http://www.cardforge.org/fpics/questAvatars/Ancient%20Battlefield.jpg
-http://www.cardforge.org/fpics/questAvatars/Apu%20Nahasapeemapetilon.jpg
-http://www.cardforge.org/fpics/questAvatars/Aquaman.jpg
-http://www.cardforge.org/fpics/questAvatars/Aragorn.jpg
-http://www.cardforge.org/fpics/questAvatars/Atomic%20Robo.jpg
-http://www.cardforge.org/fpics/questAvatars/Bamm%20Bamm%20Rubble.jpg
-http://www.cardforge.org/fpics/questAvatars/Barney%20Rubble.jpg
-http://www.cardforge.org/fpics/questAvatars/Barroom%20Brawl.jpg
-http://www.cardforge.org/fpics/questAvatars/Bart%20Simpson.jpg
-http://www.cardforge.org/fpics/questAvatars/Batman.jpg
-http://www.cardforge.org/fpics/questAvatars/Beast.jpg
-http://www.cardforge.org/fpics/questAvatars/Beast2.jpg
-http://www.cardforge.org/fpics/questAvatars/Bela%20Lugosi.jpg
-http://www.cardforge.org/fpics/questAvatars/Betty%20Rubble.jpg
-http://www.cardforge.org/fpics/questAvatars/Black%20Flame.jpg
-http://www.cardforge.org/fpics/questAvatars/Black%20Panther.jpg
-http://www.cardforge.org/fpics/questAvatars/Blackbeard.jpg
-http://www.cardforge.org/fpics/questAvatars/Blood%20Oath.jpg
-http://www.cardforge.org/fpics/questAvatars/Blue%20Devil.jpg
-http://www.cardforge.org/fpics/questAvatars/Boba%20Fett.jpg
-http://www.cardforge.org/fpics/questAvatars/Boris%20Karloff.jpg
-http://www.cardforge.org/fpics/questAvatars/Boromir.jpg
-http://www.cardforge.org/fpics/questAvatars/Bridge%20Troll.jpg
-http://www.cardforge.org/fpics/questAvatars/Buffy.jpg
-http://www.cardforge.org/fpics/questAvatars/Bushwhacked.jpg
-http://www.cardforge.org/fpics/questAvatars/C3PO.jpg
-http://www.cardforge.org/fpics/questAvatars/Cable.jpg
-http://www.cardforge.org/fpics/questAvatars/Captain%20America.jpg
-http://www.cardforge.org/fpics/questAvatars/Carnage.jpg
-http://www.cardforge.org/fpics/questAvatars/Catwoman.jpg
-http://www.cardforge.org/fpics/questAvatars/Cave%20Troll.jpg
-http://www.cardforge.org/fpics/questAvatars/Chewbacca.jpg
-http://www.cardforge.org/fpics/questAvatars/Chief_Wiggum.jpg
-http://www.cardforge.org/fpics/questAvatars/Cipher.jpg
-http://www.cardforge.org/fpics/questAvatars/Cohen%20the%20Barbarian.jpg
-http://www.cardforge.org/fpics/questAvatars/Colossus.jpg
-http://www.cardforge.org/fpics/questAvatars/Comic%20Book%20Guy.jpg
-http://www.cardforge.org/fpics/questAvatars/Conan%20the%20Barbarian.jpg
-http://www.cardforge.org/fpics/questAvatars/Cow.jpg
-http://www.cardforge.org/fpics/questAvatars/Crocodile%20Dundee.jpg
-http://www.cardforge.org/fpics/questAvatars/Crows%20in%20the%20Field.jpg
-http://www.cardforge.org/fpics/questAvatars/Cyclops.jpg
-http://www.cardforge.org/fpics/questAvatars/Da%20Vinci.jpg
-http://www.cardforge.org/fpics/questAvatars/Darkseid.jpg
-http://www.cardforge.org/fpics/questAvatars/Darrin%20Stephens.jpg
-http://www.cardforge.org/fpics/questAvatars/Darth%20Vader.jpg
-http://www.cardforge.org/fpics/questAvatars/Data.jpg
-http://www.cardforge.org/fpics/questAvatars/Dead%20Girl.jpg
-http://www.cardforge.org/fpics/questAvatars/Deadpool.jpg
-http://www.cardforge.org/fpics/questAvatars/Demon.jpg
-http://www.cardforge.org/fpics/questAvatars/Denethor.jpg
-http://www.cardforge.org/fpics/questAvatars/Diablo.jpg
-http://www.cardforge.org/fpics/questAvatars/Dilbert.jpg
-http://www.cardforge.org/fpics/questAvatars/Dino.jpg
-http://www.cardforge.org/fpics/questAvatars/Doc%20Holiday.jpg
-http://www.cardforge.org/fpics/questAvatars/Doctor%20John%20Zoidberg.jpg
-http://www.cardforge.org/fpics/questAvatars/Dogbert.jpg
-http://www.cardforge.org/fpics/questAvatars/Dont%20Play%20With%20Matches.jpg
-http://www.cardforge.org/fpics/questAvatars/Doran.jpg
-http://www.cardforge.org/fpics/questAvatars/Dr%20Doom.jpg
-http://www.cardforge.org/fpics/questAvatars/Dr%20Fate.jpg
-http://www.cardforge.org/fpics/questAvatars/Dr%20No.jpg
-http://www.cardforge.org/fpics/questAvatars/Dr%20Strangelove.jpg
-http://www.cardforge.org/fpics/questAvatars/Dr%20Watson.jpg
-http://www.cardforge.org/fpics/questAvatars/Dream.jpg
-http://www.cardforge.org/fpics/questAvatars/Dungeon%20Crawling%20Black.jpg
-http://www.cardforge.org/fpics/questAvatars/Dungeon%20Crawling%20Blue.jpg
-http://www.cardforge.org/fpics/questAvatars/Dungeon%20Crawling%20Colorless.jpg
-http://www.cardforge.org/fpics/questAvatars/Dungeon%20Crawling%20Gold.jpg
-http://www.cardforge.org/fpics/questAvatars/Dungeon%20Crawling%20Green.jpg
-http://www.cardforge.org/fpics/questAvatars/Dungeon%20Crawling%20Red.jpg
-http://www.cardforge.org/fpics/questAvatars/Dungeon%20Crawling%20White.jpg
-http://www.cardforge.org/fpics/questAvatars/Edna%20Krabappel.jpg
-http://www.cardforge.org/fpics/questAvatars/Electro.jpg
-http://www.cardforge.org/fpics/questAvatars/Elrond.jpg
-http://www.cardforge.org/fpics/questAvatars/En%20Sabah%20Nur.jpg
-http://www.cardforge.org/fpics/questAvatars/Endora.jpg
-http://www.cardforge.org/fpics/questAvatars/Eomer.jpg
-http://www.cardforge.org/fpics/questAvatars/Ezio.jpg
-http://www.cardforge.org/fpics/questAvatars/Fat%20Albert.jpg
-http://www.cardforge.org/fpics/questAvatars/Fin%20Fang%20Foom.jpg
-http://www.cardforge.org/fpics/questAvatars/Firestorm.jpg
-http://www.cardforge.org/fpics/questAvatars/Frankenstein.jpg
-http://www.cardforge.org/fpics/questAvatars/Fred%20Flintstone.jpg
-http://www.cardforge.org/fpics/questAvatars/Frodo.jpg
-http://www.cardforge.org/fpics/questAvatars/Galadriel.jpg
-http://www.cardforge.org/fpics/questAvatars/Galahad.jpg
-http://www.cardforge.org/fpics/questAvatars/Gambit.jpg
-http://www.cardforge.org/fpics/questAvatars/Genghis%20Khan.jpg
-http://www.cardforge.org/fpics/questAvatars/George%20of%20the%20Jungle.jpg
-http://www.cardforge.org/fpics/questAvatars/Ghost%20Rider.jpg
-http://www.cardforge.org/fpics/questAvatars/Gimli.jpg
-http://www.cardforge.org/fpics/questAvatars/Gold%20Finger.jpg
-http://www.cardforge.org/fpics/questAvatars/Gollum.jpg
-http://www.cardforge.org/fpics/questAvatars/Grampa%20Simpson.jpg
-http://www.cardforge.org/fpics/questAvatars/Green%20Arrow.jpg
-http://www.cardforge.org/fpics/questAvatars/Green%20Hornet.jpg
-http://www.cardforge.org/fpics/questAvatars/Green%20Lantern.jpg
-http://www.cardforge.org/fpics/questAvatars/Grumpy.jpg
-http://www.cardforge.org/fpics/questAvatars/Gunnery%20Sergeant%20Hartman.jpg
-http://www.cardforge.org/fpics/questAvatars/Hagrid.jpg
-http://www.cardforge.org/fpics/questAvatars/Han%20Solo.jpg
-http://www.cardforge.org/fpics/questAvatars/Hans.jpg
-http://www.cardforge.org/fpics/questAvatars/Harry%20Potter.jpg
-http://www.cardforge.org/fpics/questAvatars/Havok.jpg
-http://www.cardforge.org/fpics/questAvatars/Hellboy.jpg
-http://www.cardforge.org/fpics/questAvatars/Hercules.jpg
-http://www.cardforge.org/fpics/questAvatars/Hermes%20Conrad.jpg
-http://www.cardforge.org/fpics/questAvatars/Hermione%20Granger.jpg
-http://www.cardforge.org/fpics/questAvatars/Higgins.jpg
-http://www.cardforge.org/fpics/questAvatars/Hobbes.jpg
-http://www.cardforge.org/fpics/questAvatars/Homer%20Simpson.jpg
-http://www.cardforge.org/fpics/questAvatars/Hookah-Smoking%20Caterpillar.jpg
-http://www.cardforge.org/fpics/questAvatars/House%20Party.jpg
-http://www.cardforge.org/fpics/questAvatars/Hugo%20Drax.jpg
-http://www.cardforge.org/fpics/questAvatars/Hulk.jpg
-http://www.cardforge.org/fpics/questAvatars/Iceman.jpg
-http://www.cardforge.org/fpics/questAvatars/Indiana%20Jones.jpg
-http://www.cardforge.org/fpics/questAvatars/InuYasha.jpg
-http://www.cardforge.org/fpics/questAvatars/Jabba%20the%20Hut.jpg
-http://www.cardforge.org/fpics/questAvatars/Jack%20Sparrow.jpg
-http://www.cardforge.org/fpics/questAvatars/James%20Bond.jpg
-http://www.cardforge.org/fpics/questAvatars/James%20T%20Kirk.jpg
-http://www.cardforge.org/fpics/questAvatars/Jesse%20James.jpg
-http://www.cardforge.org/fpics/questAvatars/Joe%20Kidd.jpg
-http://www.cardforge.org/fpics/questAvatars/Joker.jpg
-http://www.cardforge.org/fpics/questAvatars/Jubilee.jpg
-http://www.cardforge.org/fpics/questAvatars/Kane.jpg
-http://www.cardforge.org/fpics/questAvatars/Kang.jpg
-http://www.cardforge.org/fpics/questAvatars/King%20Arthur.jpg
-http://www.cardforge.org/fpics/questAvatars/King%20Edward.jpg
-http://www.cardforge.org/fpics/questAvatars/King%20Goldemar.jpg
-http://www.cardforge.org/fpics/questAvatars/King%20Kong.jpg
-http://www.cardforge.org/fpics/questAvatars/Kojak.jpg
-http://www.cardforge.org/fpics/questAvatars/Krypto.jpg
-http://www.cardforge.org/fpics/questAvatars/LeChuck.jpg
-http://www.cardforge.org/fpics/questAvatars/Leela.jpg
-http://www.cardforge.org/fpics/questAvatars/Legolas.jpg
-http://www.cardforge.org/fpics/questAvatars/Leprechaun.jpg
-http://www.cardforge.org/fpics/questAvatars/Lex%20Luthor.jpg
-http://www.cardforge.org/fpics/questAvatars/Lisa%20Simpson.jpg
-http://www.cardforge.org/fpics/questAvatars/Luke%20Skywalker.jpg
-http://www.cardforge.org/fpics/questAvatars/Luna%20Lovegood.jpg
-http://www.cardforge.org/fpics/questAvatars/Lupin%20the%20Third.jpg
-http://www.cardforge.org/fpics/questAvatars/Maggie%20Simpson.jpg
-http://www.cardforge.org/fpics/questAvatars/Magneto.jpg
-http://www.cardforge.org/fpics/questAvatars/Magnum.jpg
-http://www.cardforge.org/fpics/questAvatars/Marge%20Simpson.jpg
-http://www.cardforge.org/fpics/questAvatars/Master%20Splinter.jpg
-http://www.cardforge.org/fpics/questAvatars/Milhouse_van_Houten.jpg
-http://www.cardforge.org/fpics/questAvatars/Minerva%20McGonagall.jpg
-http://www.cardforge.org/fpics/questAvatars/Mines%20of%20Kazum%20Durl.jpg
-http://www.cardforge.org/fpics/questAvatars/Mister%20Fantastic.jpg
-http://www.cardforge.org/fpics/questAvatars/Montgomery%20Burns.jpg
-http://www.cardforge.org/fpics/questAvatars/Morpheus.jpg
-http://www.cardforge.org/fpics/questAvatars/Mortivore.jpg
-http://www.cardforge.org/fpics/questAvatars/Mr%20Slate.jpg
-http://www.cardforge.org/fpics/questAvatars/Mystique.jpg
-http://www.cardforge.org/fpics/questAvatars/Nagini.jpg
-http://www.cardforge.org/fpics/questAvatars/Napoleon.jpg
-http://www.cardforge.org/fpics/questAvatars/Ned%20Flanders.jpg
-http://www.cardforge.org/fpics/questAvatars/Nelson%20Muntz.jpg
-http://www.cardforge.org/fpics/questAvatars/Neo.jpg
-http://www.cardforge.org/fpics/questAvatars/Newton.jpg
-http://www.cardforge.org/fpics/questAvatars/Nibbler.jpg
-http://www.cardforge.org/fpics/questAvatars/Niv%20Mizzet.jpg
-http://www.cardforge.org/fpics/questAvatars/Niv-Mizzet.jpg
-http://www.cardforge.org/fpics/questAvatars/Oberon.jpg
-http://www.cardforge.org/fpics/questAvatars/Odin.jpg
-http://www.cardforge.org/fpics/questAvatars/Odysseus.jpg
-http://www.cardforge.org/fpics/questAvatars/Optimus%20Prime.jpg
-http://www.cardforge.org/fpics/questAvatars/Oreius.jpg
-http://www.cardforge.org/fpics/questAvatars/Owlman.jpg
-http://www.cardforge.org/fpics/questAvatars/Pebbles%20Flintstone.jpg
-http://www.cardforge.org/fpics/questAvatars/Peregrin%20Took.jpg
-http://www.cardforge.org/fpics/questAvatars/Picard.jpg
-http://www.cardforge.org/fpics/questAvatars/Pinky%20and%20the%20Brain.jpg
-http://www.cardforge.org/fpics/questAvatars/Piper.jpg
-http://www.cardforge.org/fpics/questAvatars/Pointy%20Haired%20Boss.jpg
-http://www.cardforge.org/fpics/questAvatars/Preacher.jpg
-http://www.cardforge.org/fpics/questAvatars/Princess%20Selenia.jpg
-http://www.cardforge.org/fpics/questAvatars/Private%20Domain.jpg
-http://www.cardforge.org/fpics/questAvatars/Professor%20X.jpg
-http://www.cardforge.org/fpics/questAvatars/Quest%20for%20Ulas%20Temple.jpg
-http://www.cardforge.org/fpics/questAvatars/Quicksilver.jpg
-http://www.cardforge.org/fpics/questAvatars/R2-D2.jpg
-http://www.cardforge.org/fpics/questAvatars/Radagast.jpg
-http://www.cardforge.org/fpics/questAvatars/Radiant.jpg
-http://www.cardforge.org/fpics/questAvatars/Radioactive%20Man.jpg
-http://www.cardforge.org/fpics/questAvatars/Ras%20Al%20Ghul.jpg
-http://www.cardforge.org/fpics/questAvatars/Ratbert.jpg
-http://www.cardforge.org/fpics/questAvatars/Raven.jpg
-http://www.cardforge.org/fpics/questAvatars/Reactor%20Meltdown.jpg
-http://www.cardforge.org/fpics/questAvatars/Redwall.jpg
-http://www.cardforge.org/fpics/questAvatars/Repressed%20Magic.jpg
-http://www.cardforge.org/fpics/questAvatars/Reverend%20Lovejoy.jpg
-http://www.cardforge.org/fpics/questAvatars/Riddler.jpg
-http://www.cardforge.org/fpics/questAvatars/Riptide.jpg
-http://www.cardforge.org/fpics/questAvatars/Robin.jpg
-http://www.cardforge.org/fpics/questAvatars/Robin%20Hood.jpg
-http://www.cardforge.org/fpics/questAvatars/Rocky.jpg
-http://www.cardforge.org/fpics/questAvatars/Rogue.jpg
-http://www.cardforge.org/fpics/questAvatars/Sabertooth.jpg
-http://www.cardforge.org/fpics/questAvatars/Samantha%20Stephens.jpg
-http://www.cardforge.org/fpics/questAvatars/Samwise%20Gamgee.jpg
-http://www.cardforge.org/fpics/questAvatars/Saruman.jpg
-http://www.cardforge.org/fpics/questAvatars/Sauron.jpg
-http://www.cardforge.org/fpics/questAvatars/Scooby%20Doo.jpg
-http://www.cardforge.org/fpics/questAvatars/Scotty.jpg
-http://www.cardforge.org/fpics/questAvatars/Seabiscuit.jpg
-http://www.cardforge.org/fpics/questAvatars/Secret%20Squirrel.jpg
-http://www.cardforge.org/fpics/questAvatars/Sentinel.jpg
-http://www.cardforge.org/fpics/questAvatars/Severus%20Snape.jpg
-http://www.cardforge.org/fpics/questAvatars/Sherlock%20Holmes.jpg
-http://www.cardforge.org/fpics/questAvatars/Shrek.jpg
-http://www.cardforge.org/fpics/questAvatars/Sideshow%20Bob.jpg
-http://www.cardforge.org/fpics/questAvatars/Silver%20Samurai.jpg
-http://www.cardforge.org/fpics/questAvatars/Silver%20Surfer.jpg
-http://www.cardforge.org/fpics/questAvatars/Snow%20White.jpg
-http://www.cardforge.org/fpics/questAvatars/Spiderman.jpg
-http://www.cardforge.org/fpics/questAvatars/Spock.jpg
-http://www.cardforge.org/fpics/questAvatars/Starfire.jpg
-http://www.cardforge.org/fpics/questAvatars/Storm.jpg
-http://www.cardforge.org/fpics/questAvatars/Sun%20Quan.jpg
-http://www.cardforge.org/fpics/questAvatars/Superman.jpg
-http://www.cardforge.org/fpics/questAvatars/Swan.jpg
-http://www.cardforge.org/fpics/questAvatars/Tarzan.jpg
-http://www.cardforge.org/fpics/questAvatars/Terminator.jpg
-http://www.cardforge.org/fpics/questAvatars/The%20Backlash%20Machine.jpg
-http://www.cardforge.org/fpics/questAvatars/The%20Court%20Jester.jpg
-http://www.cardforge.org/fpics/questAvatars/The%20Desert%20Caravan.jpg
-http://www.cardforge.org/fpics/questAvatars/The%20Great%20Gatsby.jpg
-http://www.cardforge.org/fpics/questAvatars/The%20Great%20Gazoo.jpg
-http://www.cardforge.org/fpics/questAvatars/The%20Kings%20Contest.jpg
-http://www.cardforge.org/fpics/questAvatars/The%20Mac%20Nac%20Feegle.jpg
-http://www.cardforge.org/fpics/questAvatars/The%20Pied%20Piper.jpg
-http://www.cardforge.org/fpics/questAvatars/The%20Shade.jpg
-http://www.cardforge.org/fpics/questAvatars/The%20Spectre.jpg
-http://www.cardforge.org/fpics/questAvatars/The%20Thing.jpg
-http://www.cardforge.org/fpics/questAvatars/The%20Torpor%20Orb.jpg
-http://www.cardforge.org/fpics/questAvatars/The%20Very%20Hungry%20Caterpillar.jpg
-http://www.cardforge.org/fpics/questAvatars/The%20Zombie.jpg
-http://www.cardforge.org/fpics/questAvatars/Tom%20Bombadil.jpg
-http://www.cardforge.org/fpics/questAvatars/Tombstone.jpg
-http://www.cardforge.org/fpics/questAvatars/Totoro.jpg
-http://www.cardforge.org/fpics/questAvatars/Treebeard.jpg
-http://www.cardforge.org/fpics/questAvatars/Tweedledum.jpg
-http://www.cardforge.org/fpics/questAvatars/Uncle%20Owen.jpg
-http://www.cardforge.org/fpics/questAvatars/Vic%20Stone.jpg
-http://www.cardforge.org/fpics/questAvatars/Walle.jpg
-http://www.cardforge.org/fpics/questAvatars/Wally.jpg
-http://www.cardforge.org/fpics/questAvatars/White%20Knight.jpg
-http://www.cardforge.org/fpics/questAvatars/Wilma%20Flintstone.jpg
-http://www.cardforge.org/fpics/questAvatars/Wolverine.jpg
-http://www.cardforge.org/fpics/questAvatars/Wonder%20Woman.jpg
-http://www.cardforge.org/fpics/questAvatars/Wyatt%20Earp.jpg
-http://www.cardforge.org/fpics/questAvatars/Zapp%20Brannigan.jpg
-http://www.cardforge.org/fpics/questAvatars/zatanna.jpg
-http://www.cardforge.org/fpics/questAvatars/Zombie%20Attack.jpg
+http://downloads.cardforge.link/images/icons/A%20Wolf%20in%20Sheeps%20Clothing.jpg
+http://downloads.cardforge.link/images/icons/Abraham%20Lincoln.jpg
+http://downloads.cardforge.link/images/icons/Air-Walker.jpg
+http://downloads.cardforge.link/images/icons/Albert%20Einstein.jpg
+http://downloads.cardforge.link/images/icons/Alice%20in%20Wonderland.jpg
+http://downloads.cardforge.link/images/icons/Amphibian.jpg
+http://downloads.cardforge.link/images/icons/Anakin%20Skywalker.jpg
+http://downloads.cardforge.link/images/icons/Ancient%20Battlefield.jpg
+http://downloads.cardforge.link/images/icons/Apu%20Nahasapeemapetilon.jpg
+http://downloads.cardforge.link/images/icons/Aquaman.jpg
+http://downloads.cardforge.link/images/icons/Aragorn.jpg
+http://downloads.cardforge.link/images/icons/Atomic%20Robo.jpg
+http://downloads.cardforge.link/images/icons/Bamm%20Bamm%20Rubble.jpg
+http://downloads.cardforge.link/images/icons/Barney%20Rubble.jpg
+http://downloads.cardforge.link/images/icons/Barroom%20Brawl.jpg
+http://downloads.cardforge.link/images/icons/Bart%20Simpson.jpg
+http://downloads.cardforge.link/images/icons/Batman.jpg
+http://downloads.cardforge.link/images/icons/Beast.jpg
+http://downloads.cardforge.link/images/icons/Beast2.jpg
+http://downloads.cardforge.link/images/icons/Bela%20Lugosi.jpg
+http://downloads.cardforge.link/images/icons/Betty%20Rubble.jpg
+http://downloads.cardforge.link/images/icons/Black%20Flame.jpg
+http://downloads.cardforge.link/images/icons/Black%20Panther.jpg
+http://downloads.cardforge.link/images/icons/Blackbeard.jpg
+http://downloads.cardforge.link/images/icons/Blood%20Oath.jpg
+http://downloads.cardforge.link/images/icons/Blue%20Devil.jpg
+http://downloads.cardforge.link/images/icons/Boba%20Fett.jpg
+http://downloads.cardforge.link/images/icons/Boris%20Karloff.jpg
+http://downloads.cardforge.link/images/icons/Boromir.jpg
+http://downloads.cardforge.link/images/icons/Bridge%20Troll.jpg
+http://downloads.cardforge.link/images/icons/Buffy.jpg
+http://downloads.cardforge.link/images/icons/Bushwhacked.jpg
+http://downloads.cardforge.link/images/icons/C3PO.jpg
+http://downloads.cardforge.link/images/icons/Cable.jpg
+http://downloads.cardforge.link/images/icons/Captain%20America.jpg
+http://downloads.cardforge.link/images/icons/Carnage.jpg
+http://downloads.cardforge.link/images/icons/Catwoman.jpg
+http://downloads.cardforge.link/images/icons/Cave%20Troll.jpg
+http://downloads.cardforge.link/images/icons/Chewbacca.jpg
+http://downloads.cardforge.link/images/icons/Chief_Wiggum.jpg
+http://downloads.cardforge.link/images/icons/Cipher.jpg
+http://downloads.cardforge.link/images/icons/Cohen%20the%20Barbarian.jpg
+http://downloads.cardforge.link/images/icons/Colossus.jpg
+http://downloads.cardforge.link/images/icons/Comic%20Book%20Guy.jpg
+http://downloads.cardforge.link/images/icons/Conan%20the%20Barbarian.jpg
+http://downloads.cardforge.link/images/icons/Cow.jpg
+http://downloads.cardforge.link/images/icons/Crocodile%20Dundee.jpg
+http://downloads.cardforge.link/images/icons/Crows%20in%20the%20Field.jpg
+http://downloads.cardforge.link/images/icons/Cyclops.jpg
+http://downloads.cardforge.link/images/icons/Da%20Vinci.jpg
+http://downloads.cardforge.link/images/icons/Darkseid.jpg
+http://downloads.cardforge.link/images/icons/Darrin%20Stephens.jpg
+http://downloads.cardforge.link/images/icons/Darth%20Vader.jpg
+http://downloads.cardforge.link/images/icons/Data.jpg
+http://downloads.cardforge.link/images/icons/Dead%20Girl.jpg
+http://downloads.cardforge.link/images/icons/Deadpool.jpg
+http://downloads.cardforge.link/images/icons/Demon.jpg
+http://downloads.cardforge.link/images/icons/Denethor.jpg
+http://downloads.cardforge.link/images/icons/Diablo.jpg
+http://downloads.cardforge.link/images/icons/Dilbert.jpg
+http://downloads.cardforge.link/images/icons/Dino.jpg
+http://downloads.cardforge.link/images/icons/Doc%20Holiday.jpg
+http://downloads.cardforge.link/images/icons/Doctor%20John%20Zoidberg.jpg
+http://downloads.cardforge.link/images/icons/Dogbert.jpg
+http://downloads.cardforge.link/images/icons/Dont%20Play%20With%20Matches.jpg
+http://downloads.cardforge.link/images/icons/Doran.jpg
+http://downloads.cardforge.link/images/icons/Dr%20Doom.jpg
+http://downloads.cardforge.link/images/icons/Dr%20Fate.jpg
+http://downloads.cardforge.link/images/icons/Dr%20No.jpg
+http://downloads.cardforge.link/images/icons/Dr%20Strangelove.jpg
+http://downloads.cardforge.link/images/icons/Dr%20Watson.jpg
+http://downloads.cardforge.link/images/icons/Dream.jpg
+http://downloads.cardforge.link/images/icons/Dungeon%20Crawling%20Black.jpg
+http://downloads.cardforge.link/images/icons/Dungeon%20Crawling%20Blue.jpg
+http://downloads.cardforge.link/images/icons/Dungeon%20Crawling%20Colorless.jpg
+http://downloads.cardforge.link/images/icons/Dungeon%20Crawling%20Gold.jpg
+http://downloads.cardforge.link/images/icons/Dungeon%20Crawling%20Green.jpg
+http://downloads.cardforge.link/images/icons/Dungeon%20Crawling%20Red.jpg
+http://downloads.cardforge.link/images/icons/Dungeon%20Crawling%20White.jpg
+http://downloads.cardforge.link/images/icons/Edna%20Krabappel.jpg
+http://downloads.cardforge.link/images/icons/Electro.jpg
+http://downloads.cardforge.link/images/icons/Elrond.jpg
+http://downloads.cardforge.link/images/icons/En%20Sabah%20Nur.jpg
+http://downloads.cardforge.link/images/icons/Endora.jpg
+http://downloads.cardforge.link/images/icons/Eomer.jpg
+http://downloads.cardforge.link/images/icons/Ezio.jpg
+http://downloads.cardforge.link/images/icons/Fat%20Albert.jpg
+http://downloads.cardforge.link/images/icons/Fin%20Fang%20Foom.jpg
+http://downloads.cardforge.link/images/icons/Firestorm.jpg
+http://downloads.cardforge.link/images/icons/Frankenstein.jpg
+http://downloads.cardforge.link/images/icons/Fred%20Flintstone.jpg
+http://downloads.cardforge.link/images/icons/Frodo.jpg
+http://downloads.cardforge.link/images/icons/Galadriel.jpg
+http://downloads.cardforge.link/images/icons/Galahad.jpg
+http://downloads.cardforge.link/images/icons/Gambit.jpg
+http://downloads.cardforge.link/images/icons/Genghis%20Khan.jpg
+http://downloads.cardforge.link/images/icons/George%20of%20the%20Jungle.jpg
+http://downloads.cardforge.link/images/icons/Ghost%20Rider.jpg
+http://downloads.cardforge.link/images/icons/Gimli.jpg
+http://downloads.cardforge.link/images/icons/Gold%20Finger.jpg
+http://downloads.cardforge.link/images/icons/Gollum.jpg
+http://downloads.cardforge.link/images/icons/Grampa%20Simpson.jpg
+http://downloads.cardforge.link/images/icons/Green%20Arrow.jpg
+http://downloads.cardforge.link/images/icons/Green%20Hornet.jpg
+http://downloads.cardforge.link/images/icons/Green%20Lantern.jpg
+http://downloads.cardforge.link/images/icons/Grumpy.jpg
+http://downloads.cardforge.link/images/icons/Gunnery%20Sergeant%20Hartman.jpg
+http://downloads.cardforge.link/images/icons/Hagrid.jpg
+http://downloads.cardforge.link/images/icons/Han%20Solo.jpg
+http://downloads.cardforge.link/images/icons/Hans.jpg
+http://downloads.cardforge.link/images/icons/Harry%20Potter.jpg
+http://downloads.cardforge.link/images/icons/Havok.jpg
+http://downloads.cardforge.link/images/icons/Hellboy.jpg
+http://downloads.cardforge.link/images/icons/Hercules.jpg
+http://downloads.cardforge.link/images/icons/Hermes%20Conrad.jpg
+http://downloads.cardforge.link/images/icons/Hermione%20Granger.jpg
+http://downloads.cardforge.link/images/icons/Higgins.jpg
+http://downloads.cardforge.link/images/icons/Hobbes.jpg
+http://downloads.cardforge.link/images/icons/Homer%20Simpson.jpg
+http://downloads.cardforge.link/images/icons/Hookah-Smoking%20Caterpillar.jpg
+http://downloads.cardforge.link/images/icons/House%20Party.jpg
+http://downloads.cardforge.link/images/icons/Hugo%20Drax.jpg
+http://downloads.cardforge.link/images/icons/Hulk.jpg
+http://downloads.cardforge.link/images/icons/Iceman.jpg
+http://downloads.cardforge.link/images/icons/Indiana%20Jones.jpg
+http://downloads.cardforge.link/images/icons/InuYasha.jpg
+http://downloads.cardforge.link/images/icons/Jabba%20the%20Hut.jpg
+http://downloads.cardforge.link/images/icons/Jack%20Sparrow.jpg
+http://downloads.cardforge.link/images/icons/James%20Bond.jpg
+http://downloads.cardforge.link/images/icons/James%20T%20Kirk.jpg
+http://downloads.cardforge.link/images/icons/Jesse%20James.jpg
+http://downloads.cardforge.link/images/icons/Joe%20Kidd.jpg
+http://downloads.cardforge.link/images/icons/Joker.jpg
+http://downloads.cardforge.link/images/icons/Jubilee.jpg
+http://downloads.cardforge.link/images/icons/Kane.jpg
+http://downloads.cardforge.link/images/icons/Kang.jpg
+http://downloads.cardforge.link/images/icons/King%20Arthur.jpg
+http://downloads.cardforge.link/images/icons/King%20Edward.jpg
+http://downloads.cardforge.link/images/icons/King%20Goldemar.jpg
+http://downloads.cardforge.link/images/icons/King%20Kong.jpg
+http://downloads.cardforge.link/images/icons/Kojak.jpg
+http://downloads.cardforge.link/images/icons/Krypto.jpg
+http://downloads.cardforge.link/images/icons/LeChuck.jpg
+http://downloads.cardforge.link/images/icons/Leela.jpg
+http://downloads.cardforge.link/images/icons/Legolas.jpg
+http://downloads.cardforge.link/images/icons/Leprechaun.jpg
+http://downloads.cardforge.link/images/icons/Lex%20Luthor.jpg
+http://downloads.cardforge.link/images/icons/Lisa%20Simpson.jpg
+http://downloads.cardforge.link/images/icons/Luke%20Skywalker.jpg
+http://downloads.cardforge.link/images/icons/Luna%20Lovegood.jpg
+http://downloads.cardforge.link/images/icons/Lupin%20the%20Third.jpg
+http://downloads.cardforge.link/images/icons/Maggie%20Simpson.jpg
+http://downloads.cardforge.link/images/icons/Magneto.jpg
+http://downloads.cardforge.link/images/icons/Magnum.jpg
+http://downloads.cardforge.link/images/icons/Marge%20Simpson.jpg
+http://downloads.cardforge.link/images/icons/Master%20Splinter.jpg
+http://downloads.cardforge.link/images/icons/Milhouse_van_Houten.jpg
+http://downloads.cardforge.link/images/icons/Minerva%20McGonagall.jpg
+http://downloads.cardforge.link/images/icons/Mines%20of%20Kazum%20Durl.jpg
+http://downloads.cardforge.link/images/icons/Mister%20Fantastic.jpg
+http://downloads.cardforge.link/images/icons/Montgomery%20Burns.jpg
+http://downloads.cardforge.link/images/icons/Morpheus.jpg
+http://downloads.cardforge.link/images/icons/Mortivore.jpg
+http://downloads.cardforge.link/images/icons/Mr%20Slate.jpg
+http://downloads.cardforge.link/images/icons/Mystique.jpg
+http://downloads.cardforge.link/images/icons/Nagini.jpg
+http://downloads.cardforge.link/images/icons/Napoleon.jpg
+http://downloads.cardforge.link/images/icons/Ned%20Flanders.jpg
+http://downloads.cardforge.link/images/icons/Nelson%20Muntz.jpg
+http://downloads.cardforge.link/images/icons/Neo.jpg
+http://downloads.cardforge.link/images/icons/Newton.jpg
+http://downloads.cardforge.link/images/icons/Nibbler.jpg
+http://downloads.cardforge.link/images/icons/Niv%20Mizzet.jpg
+http://downloads.cardforge.link/images/icons/Niv-Mizzet.jpg
+http://downloads.cardforge.link/images/icons/Oberon.jpg
+http://downloads.cardforge.link/images/icons/Odin.jpg
+http://downloads.cardforge.link/images/icons/Odysseus.jpg
+http://downloads.cardforge.link/images/icons/Optimus%20Prime.jpg
+http://downloads.cardforge.link/images/icons/Oreius.jpg
+http://downloads.cardforge.link/images/icons/Owlman.jpg
+http://downloads.cardforge.link/images/icons/Pebbles%20Flintstone.jpg
+http://downloads.cardforge.link/images/icons/Peregrin%20Took.jpg
+http://downloads.cardforge.link/images/icons/Picard.jpg
+http://downloads.cardforge.link/images/icons/Pinky%20and%20the%20Brain.jpg
+http://downloads.cardforge.link/images/icons/Piper.jpg
+http://downloads.cardforge.link/images/icons/Pointy%20Haired%20Boss.jpg
+http://downloads.cardforge.link/images/icons/Preacher.jpg
+http://downloads.cardforge.link/images/icons/Princess%20Selenia.jpg
+http://downloads.cardforge.link/images/icons/Private%20Domain.jpg
+http://downloads.cardforge.link/images/icons/Professor%20X.jpg
+http://downloads.cardforge.link/images/icons/Quest%20for%20Ulas%20Temple.jpg
+http://downloads.cardforge.link/images/icons/Quicksilver.jpg
+http://downloads.cardforge.link/images/icons/R2-D2.jpg
+http://downloads.cardforge.link/images/icons/Radagast.jpg
+http://downloads.cardforge.link/images/icons/Radiant.jpg
+http://downloads.cardforge.link/images/icons/Radioactive%20Man.jpg
+http://downloads.cardforge.link/images/icons/Ras%20Al%20Ghul.jpg
+http://downloads.cardforge.link/images/icons/Ratbert.jpg
+http://downloads.cardforge.link/images/icons/Raven.jpg
+http://downloads.cardforge.link/images/icons/Reactor%20Meltdown.jpg
+http://downloads.cardforge.link/images/icons/Redwall.jpg
+http://downloads.cardforge.link/images/icons/Repressed%20Magic.jpg
+http://downloads.cardforge.link/images/icons/Reverend%20Lovejoy.jpg
+http://downloads.cardforge.link/images/icons/Riddler.jpg
+http://downloads.cardforge.link/images/icons/Riptide.jpg
+http://downloads.cardforge.link/images/icons/Robin.jpg
+http://downloads.cardforge.link/images/icons/Robin%20Hood.jpg
+http://downloads.cardforge.link/images/icons/Rocky.jpg
+http://downloads.cardforge.link/images/icons/Rogue.jpg
+http://downloads.cardforge.link/images/icons/Sabertooth.jpg
+http://downloads.cardforge.link/images/icons/Samantha%20Stephens.jpg
+http://downloads.cardforge.link/images/icons/Samwise%20Gamgee.jpg
+http://downloads.cardforge.link/images/icons/Saruman.jpg
+http://downloads.cardforge.link/images/icons/Sauron.jpg
+http://downloads.cardforge.link/images/icons/Scooby%20Doo.jpg
+http://downloads.cardforge.link/images/icons/Scotty.jpg
+http://downloads.cardforge.link/images/icons/Seabiscuit.jpg
+http://downloads.cardforge.link/images/icons/Secret%20Squirrel.jpg
+http://downloads.cardforge.link/images/icons/Sentinel.jpg
+http://downloads.cardforge.link/images/icons/Severus%20Snape.jpg
+http://downloads.cardforge.link/images/icons/Sherlock%20Holmes.jpg
+http://downloads.cardforge.link/images/icons/Shrek.jpg
+http://downloads.cardforge.link/images/icons/Sideshow%20Bob.jpg
+http://downloads.cardforge.link/images/icons/Silver%20Samurai.jpg
+http://downloads.cardforge.link/images/icons/Silver%20Surfer.jpg
+http://downloads.cardforge.link/images/icons/Snow%20White.jpg
+http://downloads.cardforge.link/images/icons/Spiderman.jpg
+http://downloads.cardforge.link/images/icons/Spock.jpg
+http://downloads.cardforge.link/images/icons/Starfire.jpg
+http://downloads.cardforge.link/images/icons/Storm.jpg
+http://downloads.cardforge.link/images/icons/Sun%20Quan.jpg
+http://downloads.cardforge.link/images/icons/Superman.jpg
+http://downloads.cardforge.link/images/icons/Swan.jpg
+http://downloads.cardforge.link/images/icons/Tarzan.jpg
+http://downloads.cardforge.link/images/icons/Terminator.jpg
+http://downloads.cardforge.link/images/icons/The%20Backlash%20Machine.jpg
+http://downloads.cardforge.link/images/icons/The%20Court%20Jester.jpg
+http://downloads.cardforge.link/images/icons/The%20Desert%20Caravan.jpg
+http://downloads.cardforge.link/images/icons/The%20Great%20Gatsby.jpg
+http://downloads.cardforge.link/images/icons/The%20Great%20Gazoo.jpg
+http://downloads.cardforge.link/images/icons/The%20Kings%20Contest.jpg
+http://downloads.cardforge.link/images/icons/The%20Mac%20Nac%20Feegle.jpg
+http://downloads.cardforge.link/images/icons/The%20Pied%20Piper.jpg
+http://downloads.cardforge.link/images/icons/The%20Shade.jpg
+http://downloads.cardforge.link/images/icons/The%20Spectre.jpg
+http://downloads.cardforge.link/images/icons/The%20Thing.jpg
+http://downloads.cardforge.link/images/icons/The%20Torpor%20Orb.jpg
+http://downloads.cardforge.link/images/icons/The%20Very%20Hungry%20Caterpillar.jpg
+http://downloads.cardforge.link/images/icons/The%20Zombie.jpg
+http://downloads.cardforge.link/images/icons/Tom%20Bombadil.jpg
+http://downloads.cardforge.link/images/icons/Tombstone.jpg
+http://downloads.cardforge.link/images/icons/Totoro.jpg
+http://downloads.cardforge.link/images/icons/Treebeard.jpg
+http://downloads.cardforge.link/images/icons/Tweedledum.jpg
+http://downloads.cardforge.link/images/icons/Uncle%20Owen.jpg
+http://downloads.cardforge.link/images/icons/Vic%20Stone.jpg
+http://downloads.cardforge.link/images/icons/Walle.jpg
+http://downloads.cardforge.link/images/icons/Wally.jpg
+http://downloads.cardforge.link/images/icons/White%20Knight.jpg
+http://downloads.cardforge.link/images/icons/Wilma%20Flintstone.jpg
+http://downloads.cardforge.link/images/icons/Wolverine.jpg
+http://downloads.cardforge.link/images/icons/Wonder%20Woman.jpg
+http://downloads.cardforge.link/images/icons/Wyatt%20Earp.jpg
+http://downloads.cardforge.link/images/icons/Zapp%20Brannigan.jpg
+http://downloads.cardforge.link/images/icons/zatanna.jpg
+http://downloads.cardforge.link/images/icons/Zombie%20Attack.jpg
#JAMURAA WORLD ICONS
-http://www.cardforge.org/fpics/questAvatars/Abassi.jpg
-http://www.cardforge.org/fpics/questAvatars/Abiku.jpg
-http://www.cardforge.org/fpics/questAvatars/AidoHwedo.jpg
-http://www.cardforge.org/fpics/questAvatars/Aigamuxa.jpg
-http://www.cardforge.org/fpics/questAvatars/Ajok.jpg
-http://www.cardforge.org/fpics/questAvatars/Akongo.jpg
-http://www.cardforge.org/fpics/questAvatars/Ala.jpg
-http://www.cardforge.org/fpics/questAvatars/Aladdin.jpg
-http://www.cardforge.org/fpics/questAvatars/Alouroua.jpg
-http://www.cardforge.org/fpics/questAvatars/Amadioha.jpg
-http://www.cardforge.org/fpics/questAvatars/Anansi.jpg
-http://www.cardforge.org/fpics/questAvatars/Anubis.jpg
-http://www.cardforge.org/fpics/questAvatars/Asanbosam.jpg
-http://www.cardforge.org/fpics/questAvatars/Aziza.jpg
-http://www.cardforge.org/fpics/questAvatars/Baal.jpg
-http://www.cardforge.org/fpics/questAvatars/BabaluAye.jpg
-http://www.cardforge.org/fpics/questAvatars/BaronCimitiere.jpg
-http://www.cardforge.org/fpics/questAvatars/BaronSamedi.jpg
-http://www.cardforge.org/fpics/questAvatars/BlackPanther.jpg
-http://www.cardforge.org/fpics/questAvatars/BlackTalon.jpg
-http://www.cardforge.org/fpics/questAvatars/Brekyirihunuade.jpg
-http://www.cardforge.org/fpics/questAvatars/BrotherVoodoo.jpg
-http://www.cardforge.org/fpics/questAvatars/Bumba.jpg
-http://www.cardforge.org/fpics/questAvatars/DonkeyKong.jpg
-http://www.cardforge.org/fpics/questAvatars/Ekolo.jpg
-http://www.cardforge.org/fpics/questAvatars/Elegua.jpg
-http://www.cardforge.org/fpics/questAvatars/Eshu.jpg
-http://www.cardforge.org/fpics/questAvatars/Ga-Gorib.jpg
-http://www.cardforge.org/fpics/questAvatars/Gbadu.jpg
-http://www.cardforge.org/fpics/questAvatars/Horus.jpg
-http://www.cardforge.org/fpics/questAvatars/Houngan.jpg
-http://www.cardforge.org/fpics/questAvatars/Iblis.jpg
-http://www.cardforge.org/fpics/questAvatars/IdiAmin.jpg
-http://www.cardforge.org/fpics/questAvatars/Ikenga.jpg
-http://www.cardforge.org/fpics/questAvatars/Impundulu.jpg
-http://www.cardforge.org/fpics/questAvatars/IsaBere.jpg
-http://www.cardforge.org/fpics/questAvatars/Isis.jpg
-http://www.cardforge.org/fpics/questAvatars/Jengu.jpg
-http://www.cardforge.org/fpics/questAvatars/JuzamGenie.jpg
-http://www.cardforge.org/fpics/questAvatars/KilijArslan.jpg
-http://www.cardforge.org/fpics/questAvatars/KingKong.jpg
-http://www.cardforge.org/fpics/questAvatars/Lilith.jpg
-http://www.cardforge.org/fpics/questAvatars/MahamotiGenie.jpg
-http://www.cardforge.org/fpics/questAvatars/MamanBrigitte.jpg
-http://www.cardforge.org/fpics/questAvatars/MamiWata.jpg
-http://www.cardforge.org/fpics/questAvatars/Mawu.jpg
-http://www.cardforge.org/fpics/questAvatars/NanaBuruku.jpg
-http://www.cardforge.org/fpics/questAvatars/Negoogunogumbar.jpg
-http://www.cardforge.org/fpics/questAvatars/Neith.jpg
-http://www.cardforge.org/fpics/questAvatars/Nyarvirazi.jpg
-http://www.cardforge.org/fpics/questAvatars/Obatala.jpg
-http://www.cardforge.org/fpics/questAvatars/Ododua.jpg
-http://www.cardforge.org/fpics/questAvatars/Ogun.jpg
-http://www.cardforge.org/fpics/questAvatars/Olokun.jpg
-http://www.cardforge.org/fpics/questAvatars/Orunmila.jpg
-http://www.cardforge.org/fpics/questAvatars/Oshun.jpg
-http://www.cardforge.org/fpics/questAvatars/Osiris.jpg
-http://www.cardforge.org/fpics/questAvatars/Oya.jpg
-http://www.cardforge.org/fpics/questAvatars/PapaLegba.jpg
-http://www.cardforge.org/fpics/questAvatars/PresterJohn.jpg
-http://www.cardforge.org/fpics/questAvatars/Ra.jpg
-http://www.cardforge.org/fpics/questAvatars/RasAlGhul.jpg
-http://www.cardforge.org/fpics/questAvatars/Sakpata.jpg
-http://www.cardforge.org/fpics/questAvatars/Saladin.jpg
-http://www.cardforge.org/fpics/questAvatars/SantaMuerte.jpg
-http://www.cardforge.org/fpics/questAvatars/SerendibGenie.jpg
-http://www.cardforge.org/fpics/questAvatars/Seth.jpg
-http://www.cardforge.org/fpics/questAvatars/Shaitan.jpg
-http://www.cardforge.org/fpics/questAvatars/Shango.jpg
-http://www.cardforge.org/fpics/questAvatars/Shanna.jpg
-http://www.cardforge.org/fpics/questAvatars/Sharee.jpg
-http://www.cardforge.org/fpics/questAvatars/Sphinx.jpg
-http://www.cardforge.org/fpics/questAvatars/StAnastacia.jpg
-http://www.cardforge.org/fpics/questAvatars/Storm2.jpg
-http://www.cardforge.org/fpics/questAvatars/Tanit.jpg
-http://www.cardforge.org/fpics/questAvatars/Tenga.jpg
-http://www.cardforge.org/fpics/questAvatars/Tutankhamon.jpg
-http://www.cardforge.org/fpics/questAvatars/Ukulunkulu.jpg
-http://www.cardforge.org/fpics/questAvatars/Waterlord.jpg
-http://www.cardforge.org/fpics/questAvatars/WereHyena.jpg
-http://www.cardforge.org/fpics/questAvatars/WitchDoctor.jpg
-http://www.cardforge.org/fpics/questAvatars/Yemaya.jpg
-http://www.cardforge.org/fpics/questAvatars/Yewa.jpg
+http://downloads.cardforge.link/images/icons/Abassi.jpg
+http://downloads.cardforge.link/images/icons/Abiku.jpg
+http://downloads.cardforge.link/images/icons/AidoHwedo.jpg
+http://downloads.cardforge.link/images/icons/Aigamuxa.jpg
+http://downloads.cardforge.link/images/icons/Ajok.jpg
+http://downloads.cardforge.link/images/icons/Akongo.jpg
+http://downloads.cardforge.link/images/icons/Ala.jpg
+http://downloads.cardforge.link/images/icons/Aladdin.jpg
+http://downloads.cardforge.link/images/icons/Alouroua.jpg
+http://downloads.cardforge.link/images/icons/Amadioha.jpg
+http://downloads.cardforge.link/images/icons/Anansi.jpg
+http://downloads.cardforge.link/images/icons/Anubis.jpg
+http://downloads.cardforge.link/images/icons/Asanbosam.jpg
+http://downloads.cardforge.link/images/icons/Aziza.jpg
+http://downloads.cardforge.link/images/icons/Baal.jpg
+http://downloads.cardforge.link/images/icons/BabaluAye.jpg
+http://downloads.cardforge.link/images/icons/BaronCimitiere.jpg
+http://downloads.cardforge.link/images/icons/BaronSamedi.jpg
+http://downloads.cardforge.link/images/icons/BlackPanther.jpg
+http://downloads.cardforge.link/images/icons/BlackTalon.jpg
+http://downloads.cardforge.link/images/icons/Brekyirihunuade.jpg
+http://downloads.cardforge.link/images/icons/BrotherVoodoo.jpg
+http://downloads.cardforge.link/images/icons/Bumba.jpg
+http://downloads.cardforge.link/images/icons/DonkeyKong.jpg
+http://downloads.cardforge.link/images/icons/Ekolo.jpg
+http://downloads.cardforge.link/images/icons/Elegua.jpg
+http://downloads.cardforge.link/images/icons/Eshu.jpg
+http://downloads.cardforge.link/images/icons/Ga-Gorib.jpg
+http://downloads.cardforge.link/images/icons/Gbadu.jpg
+http://downloads.cardforge.link/images/icons/Horus.jpg
+http://downloads.cardforge.link/images/icons/Houngan.jpg
+http://downloads.cardforge.link/images/icons/Iblis.jpg
+http://downloads.cardforge.link/images/icons/IdiAmin.jpg
+http://downloads.cardforge.link/images/icons/Ikenga.jpg
+http://downloads.cardforge.link/images/icons/Impundulu.jpg
+http://downloads.cardforge.link/images/icons/IsaBere.jpg
+http://downloads.cardforge.link/images/icons/Isis.jpg
+http://downloads.cardforge.link/images/icons/Jengu.jpg
+http://downloads.cardforge.link/images/icons/JuzamGenie.jpg
+http://downloads.cardforge.link/images/icons/KilijArslan.jpg
+http://downloads.cardforge.link/images/icons/KingKong.jpg
+http://downloads.cardforge.link/images/icons/Lilith.jpg
+http://downloads.cardforge.link/images/icons/MahamotiGenie.jpg
+http://downloads.cardforge.link/images/icons/MamanBrigitte.jpg
+http://downloads.cardforge.link/images/icons/MamiWata.jpg
+http://downloads.cardforge.link/images/icons/Mawu.jpg
+http://downloads.cardforge.link/images/icons/NanaBuruku.jpg
+http://downloads.cardforge.link/images/icons/Negoogunogumbar.jpg
+http://downloads.cardforge.link/images/icons/Neith.jpg
+http://downloads.cardforge.link/images/icons/Nyarvirazi.jpg
+http://downloads.cardforge.link/images/icons/Obatala.jpg
+http://downloads.cardforge.link/images/icons/Ododua.jpg
+http://downloads.cardforge.link/images/icons/Ogun.jpg
+http://downloads.cardforge.link/images/icons/Olokun.jpg
+http://downloads.cardforge.link/images/icons/Orunmila.jpg
+http://downloads.cardforge.link/images/icons/Oshun.jpg
+http://downloads.cardforge.link/images/icons/Osiris.jpg
+http://downloads.cardforge.link/images/icons/Oya.jpg
+http://downloads.cardforge.link/images/icons/PapaLegba.jpg
+http://downloads.cardforge.link/images/icons/PresterJohn.jpg
+http://downloads.cardforge.link/images/icons/Ra.jpg
+http://downloads.cardforge.link/images/icons/RasAlGhul.jpg
+http://downloads.cardforge.link/images/icons/Sakpata.jpg
+http://downloads.cardforge.link/images/icons/Saladin.jpg
+http://downloads.cardforge.link/images/icons/SantaMuerte.jpg
+http://downloads.cardforge.link/images/icons/SerendibGenie.jpg
+http://downloads.cardforge.link/images/icons/Seth.jpg
+http://downloads.cardforge.link/images/icons/Shaitan.jpg
+http://downloads.cardforge.link/images/icons/Shango.jpg
+http://downloads.cardforge.link/images/icons/Shanna.jpg
+http://downloads.cardforge.link/images/icons/Sharee.jpg
+http://downloads.cardforge.link/images/icons/Sphinx.jpg
+http://downloads.cardforge.link/images/icons/StAnastacia.jpg
+http://downloads.cardforge.link/images/icons/Storm2.jpg
+http://downloads.cardforge.link/images/icons/Tanit.jpg
+http://downloads.cardforge.link/images/icons/Tenga.jpg
+http://downloads.cardforge.link/images/icons/Tutankhamon.jpg
+http://downloads.cardforge.link/images/icons/Ukulunkulu.jpg
+http://downloads.cardforge.link/images/icons/Waterlord.jpg
+http://downloads.cardforge.link/images/icons/WereHyena.jpg
+http://downloads.cardforge.link/images/icons/WitchDoctor.jpg
+http://downloads.cardforge.link/images/icons/Yemaya.jpg
+http://downloads.cardforge.link/images/icons/Yewa.jpg
#RAVNICA WORLD ICONS
-http://www.cardforge.org/fpics/questAvatars/Agrus.jpg
-http://www.cardforge.org/fpics/questAvatars/Aurelia.jpg
-http://www.cardforge.org/fpics/questAvatars/Azorius-precon.jpg
-http://www.cardforge.org/fpics/questAvatars/Bep.jpg
-http://www.cardforge.org/fpics/questAvatars/Borborygmos.jpg
-http://www.cardforge.org/fpics/questAvatars/Boros-precon.jpg
-http://www.cardforge.org/fpics/questAvatars/Caprio.jpg
-http://www.cardforge.org/fpics/questAvatars/Ghost%20Council.jpg
-http://www.cardforge.org/fpics/questAvatars/Golgari-precon.jpg
-http://www.cardforge.org/fpics/questAvatars/Gruul-precon.jpg
-http://www.cardforge.org/fpics/questAvatars/Hameln.jpg
-http://www.cardforge.org/fpics/questAvatars/Isperia.jpg
-http://www.cardforge.org/fpics/questAvatars/Izzet-precon.jpg
-http://www.cardforge.org/fpics/questAvatars/Jarad.jpg
-http://www.cardforge.org/fpics/questAvatars/Kraj.jpg
-http://www.cardforge.org/fpics/questAvatars/Lazav.jpg
-http://www.cardforge.org/fpics/questAvatars/Lyzolda.jpg
-http://www.cardforge.org/fpics/questAvatars/Momir.jpg
-http://www.cardforge.org/fpics/questAvatars/Niv-Mizzet.jpg
-http://www.cardforge.org/fpics/questAvatars/Orzhov-precon.jpg
-http://www.cardforge.org/fpics/questAvatars/Rakdos.jpg
-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%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
-http://www.cardforge.org/fpics/questAvatars/Tolsimir.jpg
-http://www.cardforge.org/fpics/questAvatars/Trostani.jpg
-http://www.cardforge.org/fpics/questAvatars/Ulasht.jpg
-http://www.cardforge.org/fpics/questAvatars/Zegana.jpg
+http://downloads.cardforge.link/images/icons/Agrus.jpg
+http://downloads.cardforge.link/images/icons/Aurelia.jpg
+http://downloads.cardforge.link/images/icons/Azorius-precon.jpg
+http://downloads.cardforge.link/images/icons/Bep.jpg
+http://downloads.cardforge.link/images/icons/Borborygmos.jpg
+http://downloads.cardforge.link/images/icons/Boros-precon.jpg
+http://downloads.cardforge.link/images/icons/Caprio.jpg
+http://downloads.cardforge.link/images/icons/Ghost%20Council.jpg
+http://downloads.cardforge.link/images/icons/Golgari-precon.jpg
+http://downloads.cardforge.link/images/icons/Gruul-precon.jpg
+http://downloads.cardforge.link/images/icons/Hameln.jpg
+http://downloads.cardforge.link/images/icons/Isperia.jpg
+http://downloads.cardforge.link/images/icons/Izzet-precon.jpg
+http://downloads.cardforge.link/images/icons/Jarad.jpg
+http://downloads.cardforge.link/images/icons/Kraj.jpg
+http://downloads.cardforge.link/images/icons/Lazav.jpg
+http://downloads.cardforge.link/images/icons/Lyzolda.jpg
+http://downloads.cardforge.link/images/icons/Momir.jpg
+http://downloads.cardforge.link/images/icons/Niv-Mizzet.jpg
+http://downloads.cardforge.link/images/icons/Orzhov-precon.jpg
+http://downloads.cardforge.link/images/icons/Rakdos.jpg
+http://downloads.cardforge.link/images/icons/Savra.jpg
+http://downloads.cardforge.link/images/icons/Selesnya-precon.jpg
+http://downloads.cardforge.link/images/icons/Simic-precon.jpg
+http://downloads.cardforge.link/images/icons/Sisters%20of%20Stone%20Death.jpg
+http://downloads.cardforge.link/images/icons/Sus%20Antigoon.jpg
+http://downloads.cardforge.link/images/icons/Szadek.jpg
+http://downloads.cardforge.link/images/icons/Teysa.jpg
+http://downloads.cardforge.link/images/icons/Token.jpg
+http://downloads.cardforge.link/images/icons/Tolsimir.jpg
+http://downloads.cardforge.link/images/icons/Trostani.jpg
+http://downloads.cardforge.link/images/icons/Ulasht.jpg
+http://downloads.cardforge.link/images/icons/Zegana.jpg
diff --git a/forge-gui/res/lists/quest-pet-shop-icons.txt b/forge-gui/res/lists/quest-pet-shop-icons.txt
deleted file mode 100644
index 4fabdd801a8..00000000000
--- a/forge-gui/res/lists/quest-pet-shop-icons.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-#Pet Shop Icon Links
-b_1_1_crocodile_pet_small.jpg http://www.cardforge.org/fpics/pets/icons/b_1_1_crocodile_pet_small.jpg
-b_2_1_crocodile_pet_small.jpg http://www.cardforge.org/fpics/pets/icons/b_2_1_crocodile_pet_small.jpg
-b_2_1_crocodile_pet_small.jpg http://www.cardforge.org/fpics/pets/icons/b_3_1_crocodile_pet_small.jpg
-b_3_1_crocodile_pet_swampwalk_small.jpg http://www.cardforge.org/fpics/pets/icons/b_3_1_crocodile_pet_swampwalk_small.jpg
-g_0_1_plant_wall_small.jpg http://www.cardforge.org/fpics/pets/icons/g_0_1_plant_wall_small.jpg
-g_0_2_plant_wall_small.jpg http://www.cardforge.org/fpics/pets/icons/g_0_2_plant_wall_small.jpg
-g_0_3_plant_wall_small.jpg http://www.cardforge.org/fpics/pets/icons/g_0_3_plant_wall_small.jpg
-g_1_1_wolf_pet_small.jpg http://www.cardforge.org/fpics/pets/icons/g_1_1_wolf_pet_small.jpg
-g_1_2_wolf_pet_small.jpg http://www.cardforge.org/fpics/pets/icons/g_1_2_wolf_pet_small.jpg
-g_1_3_plant_wall_deathtouch_small.jpg http://www.cardforge.org/fpics/pets/icons/g_1_3_plant_wall_deathtouch_small.jpg
-g_1_3_plant_wall_small.jpg http://www.cardforge.org/fpics/pets/icons/g_1_3_plant_wall_small.jpg
-g_1_4_plant_wall_small.jpg http://www.cardforge.org/fpics/pets/icons/g_1_4_plant_wall_small.jpg
-g_2_2_wolf_pet_small.jpg http://www.cardforge.org/fpics/pets/icons/g_2_2_wolf_pet_small.jpg
-g_2_2_wolf_pet_flanking_small.jpg http://www.cardforge.org/fpics/pets/icons/g_2_2_wolf_pet_flanking_small.jpg
-r_1_1_hound_pet_small.jpg http://www.cardforge.org/fpics/pets/icons/r_1_1_hound_pet_small.jpg
-r_1_1_hound_pet_haste_small.jpg http://www.cardforge.org/fpics/pets/icons/r_1_1_hound_pet_haste_small.jpg
-r_2_1_hound_pet_small.jpg http://www.cardforge.org/fpics/pets/icons/r_2_1_hound_pet_small.jpg
-r_2_1_hound_pet_alone_small.jpg http://www.cardforge.org/fpics/pets/icons/r_2_1_hound_pet_alone_small.jpg
-w_0_1_bird_pet_small.jpg http://www.cardforge.org/fpics/pets/icons/w_0_1_bird_pet_small.jpg
-w_1_1_bird_pet_small.jpg http://www.cardforge.org/fpics/pets/icons/w_1_1_bird_pet_small.jpg
-w_2_1_bird_pet_small.jpg http://www.cardforge.org/fpics/pets/icons/w_2_1_bird_pet_small.jpg
-w_2_1_bird_pet_first_strike_small.jpg http://www.cardforge.org/fpics/pets/icons/w_2_1_bird_pet_first_strike_small.jpg
diff --git a/forge-gui/res/lists/quest-pet-token-images.txt b/forge-gui/res/lists/quest-pet-token-images.txt
index beb714554c3..4c251767b91 100644
--- a/forge-gui/res/lists/quest-pet-token-images.txt
+++ b/forge-gui/res/lists/quest-pet-token-images.txt
@@ -1,27 +1,27 @@
#Pet Links
-petape_lvl1.jpg http://www.cardforge.org/fpics/pets/2012pets/PetApe_LVL1.jpg
-petape_lvl2.jpg http://www.cardforge.org/fpics/pets/2012pets/PetApe_LVL2.jpg
-petape_lvl3.jpg http://www.cardforge.org/fpics/pets/2012pets/PetApe_LVL3.jpg
-petape_lvl4.jpg http://www.cardforge.org/fpics/pets/2012pets/PetApe_LVL4.jpg
-petbird_lvl1.jpg http://www.cardforge.org/fpics/pets/2012pets/PetBird_LVL1.jpg
-petbird_lvl2.jpg http://www.cardforge.org/fpics/pets/2012pets/PetBird_LVL2.jpg
-petbird_lvl3.jpg http://www.cardforge.org/fpics/pets/2012pets/PetBird_LVL3.jpg
-petbird_lvl4_r1.jpg http://www.cardforge.org/fpics/pets/2012pets/PetBird_LVL4_r1.jpg
-petcrocodile_lvl1.jpg http://www.cardforge.org/fpics/pets/2012pets/PetCrocodile_LVL1.jpg
-petcrocodile_lvl2.jpg http://www.cardforge.org/fpics/pets/2012pets/PetCrocodile_LVL2.jpg
-petcrocodile_lvl3.jpg http://www.cardforge.org/fpics/pets/2012pets/PetCrocodile_LVL3.jpg
-petcrocodile_lvl4.jpg http://www.cardforge.org/fpics/pets/2012pets/PetCrocodile_LVL4.jpg
-pethound_lvl1.jpg http://www.cardforge.org/fpics/pets/2012pets/PetHound_LVL1.jpg
-pethound_lvl2.jpg http://www.cardforge.org/fpics/pets/2012pets/PetHound_LVL2.jpg
-pethound_lvl3.jpg http://www.cardforge.org/fpics/pets/2012pets/PetHound_LVL3.jpg
-pethound_lvl4.jpg http://www.cardforge.org/fpics/pets/2012pets/PetHound_LVL4.jpg
-petwolf_lvl1.jpg http://www.cardforge.org/fpics/pets/2012pets/PetWolf_LVL1.jpg
-petwolf_lvl2_r1.jpg http://www.cardforge.org/fpics/pets/2012pets/PetWolf_LVL2_r1.jpg
-petwolf_lvl3_r1.jpg http://www.cardforge.org/fpics/pets/2012pets/PetWolf_LVL3_r1.jpg
-petwolf_lvl4_r1.jpg http://www.cardforge.org/fpics/pets/2012pets/PetWolf_LVL4_r1.jpg
-plantwall_lvl1.jpg http://www.cardforge.org/fpics/pets/2012pets/PlantWall_LVL1.jpg
-plantwall_lvl2.jpg http://www.cardforge.org/fpics/pets/2012pets/PlantWall_LVL2.jpg
-plantwall_lvl3.jpg http://www.cardforge.org/fpics/pets/2012pets/PlantWall_LVL3.jpg
-plantwall_lvl4.jpg http://www.cardforge.org/fpics/pets/2012pets/PlantWall_LVL4.jpg
-plantwall_lvl5.jpg http://www.cardforge.org/fpics/pets/2012pets/PlantWall_LVL5.jpg
-plantwall_lvl6.jpg http://www.cardforge.org/fpics/pets/2012pets/PlantWall_LVL6.jpg
+petape_lvl1.jpg http://downloads.cardforge.link/images/pets/petape_lvl1.jpg
+petape_lvl2.jpg http://downloads.cardforge.link/images/pets/petape_lvl2.jpg
+petape_lvl3.jpg http://downloads.cardforge.link/images/pets/petape_lvl3.jpg
+petape_lvl4.jpg http://downloads.cardforge.link/images/pets/petape_lvl4.jpg
+petbird_lvl1.jpg http://downloads.cardforge.link/images/pets/petbird_lvl1.jpg
+petbird_lvl2.jpg http://downloads.cardforge.link/images/pets/petbird_lvl2.jpg
+petbird_lvl3.jpg http://downloads.cardforge.link/images/pets/petbird_lvl3.jpg
+petbird_lvl4_r1.jpg http://downloads.cardforge.link/images/pets/petbird_lvl4_r1.jpg
+petcrocodile_lvl1.jpg http://downloads.cardforge.link/images/pets/petcrocodile_lvl1.jpg
+petcrocodile_lvl2.jpg http://downloads.cardforge.link/images/pets/petcrocodile_lvl2.jpg
+petcrocodile_lvl3.jpg http://downloads.cardforge.link/images/pets/petcrocodile_lvl3.jpg
+petcrocodile_lvl4.jpg http://downloads.cardforge.link/images/pets/petcrocodile_lvl4.jpg
+pethound_lvl1.jpg http://downloads.cardforge.link/images/pets/pethound_lvl1.jpg
+pethound_lvl2.jpg http://downloads.cardforge.link/images/pets/pethound_lvl2.jpg
+pethound_lvl3.jpg http://downloads.cardforge.link/images/pets/pethound_lvl3.jpg
+pethound_lvl4.jpg http://downloads.cardforge.link/images/pets/pethound_lvl4.jpg
+petwolf_lvl1.jpg http://downloads.cardforge.link/images/pets/petwolf_lvl1.jpg
+petwolf_lvl2_r1.jpg http://downloads.cardforge.link/images/pets/petwolf_lvl2_r1.jpg
+petwolf_lvl3_r1.jpg http://downloads.cardforge.link/images/pets/petwolf_lvl3_r1.jpg
+petwolf_lvl4_r1.jpg http://downloads.cardforge.link/images/pets/petwolf_lvl4_r1.jpg
+plantwall_lvl1.jpg http://downloads.cardforge.link/images/pets/plantwall_lvl1.jpg
+plantwall_lvl2.jpg http://downloads.cardforge.link/images/pets/plantwall_lvl2.jpg
+plantwall_lvl3.jpg http://downloads.cardforge.link/images/pets/plantwall_lvl3.jpg
+plantwall_lvl4.jpg http://downloads.cardforge.link/images/pets/plantwall_lvl4.jpg
+plantwall_lvl5.jpg http://downloads.cardforge.link/images/pets/plantwall_lvl5.jpg
+plantwall_lvl6.jpg http://downloads.cardforge.link/images/pets/plantwall_lvl6.jpg
diff --git a/forge-gui/res/lists/token-images.txt b/forge-gui/res/lists/token-images.txt
index f916904c85f..ebd02724465 100644
--- a/forge-gui/res/lists/token-images.txt
+++ b/forge-gui/res/lists/token-images.txt
@@ -1,363 +1,363 @@
# Tokens
-b_0_0_germ.jpg http://www.cardforge.org/fpics/tokens/b_0_0_germ.jpg
-b_0_1_insect.jpg http://www.cardforge.org/fpics/tokens/b_0_1_insect.jpg
-b_0_1_serf.jpg http://www.cardforge.org/fpics/tokens/b_0_1_serf.jpg
-b_0_1_thrull.jpg http://www.cardforge.org/fpics/tokens/b_0_1_thrull.jpg
-b_1_1_assassin_rtr.jpg http://www.cardforge.org/fpics/tokens/b_1_1_assassin_rtr.jpg
-b_1_1_bat.jpg http://www.cardforge.org/fpics/tokens/b_1_1_bat.jpg
-b_1_1_faerie_rogue.jpg http://www.cardforge.org/fpics/tokens/b_1_1_faerie_rogue.jpg
-b_1_1_festering_goblin.jpg http://www.cardforge.org/fpics/tokens/b_1_1_festering_goblin.jpg
-b_1_1_goblin_rogue.jpg http://www.cardforge.org/fpics/tokens/b_1_1_goblin_rogue.jpg
-b_1_1_harpy.jpg http://www.cardforge.org/fpics/tokens/b_1_1_harpy.jpg
-b_1_1_minion.jpg http://www.cardforge.org/fpics/tokens/b_1_1_minion.jpg
-b_1_1_rat.jpg http://www.cardforge.org/fpics/tokens/b_1_1_rat.jpg
-b_1_1_rat_chk.jpg http://www.cardforge.org/fpics/tokens/b_1_1_rat_chk.jpg
-b_1_1_rat_gtc.jpg http://www.cardforge.org/fpics/tokens/b_1_1_rat_gtc.jpg
-b_1_1_skeleton.jpg http://www.cardforge.org/fpics/tokens/b_1_1_skeleton.jpg
-b_1_1_thrull.jpg http://www.cardforge.org/fpics/tokens/b_1_1_thrull.jpg
-b_1_1_vampire.jpg http://www.cardforge.org/fpics/tokens/b_1_1_vampire.jpg
-b_1_1_wolf.jpg http://www.cardforge.org/fpics/tokens/b_1_1_wolf.jpg
-b_1_2_bat.jpg http://www.cardforge.org/fpics/tokens/b_1_2_bat.jpg
-b_2_1_cat.jpg http://www.cardforge.org/fpics/tokens/b_2_1_cat.jpg
-b_2_2_knight.jpg http://www.cardforge.org/fpics/tokens/b_2_2_knight.jpg
-b_2_2_tombspawn.jpg http://www.cardforge.org/fpics/tokens/b_2_2_tombspawn.jpg
-b_2_2_vampire.jpg http://www.cardforge.org/fpics/tokens/b_2_2_vampire.jpg
-b_2_2_zombie.jpg http://www.cardforge.org/fpics/tokens/b_2_2_zombie.jpg
-b_2_2_zombie2_isd.jpg http://www.cardforge.org/fpics/tokens/b_2_2_zombie2_isd.jpg
-b_2_2_zombie3_isd.jpg http://www.cardforge.org/fpics/tokens/b_2_2_zombie3_isd.jpg
-b_2_2_zombie_10e.jpg http://www.cardforge.org/fpics/tokens/b_2_2_zombie_10e.jpg
-b_2_2_zombie_ala.jpg http://www.cardforge.org/fpics/tokens/b_2_2_zombie_ala.jpg
-b_2_2_zombie_avr.jpg http://www.cardforge.org/fpics/tokens/b_2_2_zombie_avr.jpg
-b_2_2_zombie_bng.jpg http://www.cardforge.org/fpics/tokens/b_2_2_zombie_bng.jpg
-b_2_2_zombie_isd.jpg http://www.cardforge.org/fpics/tokens/b_2_2_zombie_isd.jpg
-b_2_2_zombie_m10.jpg http://www.cardforge.org/fpics/tokens/b_2_2_zombie_m10.jpg
-b_2_2_zombie_m11.jpg http://www.cardforge.org/fpics/tokens/b_2_2_zombie_m11.jpg
-b_2_2_zombie_m13.jpg http://www.cardforge.org/fpics/tokens/b_2_2_zombie_m13.jpg
-b_2_2_zombie_m14.jpg http://www.cardforge.org/fpics/tokens/b_2_2_zombie_m14.jpg
-b_2_2_zombie_mbs.jpg http://www.cardforge.org/fpics/tokens/b_2_2_zombie_mbs.jpg
-b_2_4_spider.jpg http://www.cardforge.org/fpics/tokens/b_2_4_spider.jpg
-b_3_3_angel.jpg http://www.cardforge.org/fpics/tokens/b_3_3_angel.jpg
-b_3_3_kavu.jpg http://www.cardforge.org/fpics/tokens/b_3_3_kavu.jpg
-b_4_4_horror.jpg http://www.cardforge.org/fpics/tokens/b_4_4_horror.jpg
-b_5_5_demon.jpg http://www.cardforge.org/fpics/tokens/b_5_5_demon.jpg
-b_5_5_demon_avr.jpg http://www.cardforge.org/fpics/tokens/b_5_5_demon_avr.jpg
-b_5_5_urami.jpg http://www.cardforge.org/fpics/tokens/b_5_5_urami.jpg
-b_5_5_zombie_giant.jpg http://www.cardforge.org/fpics/tokens/b_5_5_zombie_giant.jpg
-b_6_6_wurm.jpg http://www.cardforge.org/fpics/tokens/b_6_6_wurm.jpg
-b_20_20_marit_lage.jpg http://www.cardforge.org/fpics/tokens/b_20_20_marit_lage.jpg
-b_dx_dy_spirit.jpg http://www.cardforge.org/fpics/tokens/b_dx_dy_spirit.jpg
-b_x_x_demon.jpg http://www.cardforge.org/fpics/tokens/b_x_x_demon.jpg
-b_x_x_minion.jpg http://www.cardforge.org/fpics/tokens/b_x_x_minion.jpg
-b_x_x_vampire.jpg http://www.cardforge.org/fpics/tokens/b_x_x_vampire.jpg
-bg_1_1_worm.jpg http://www.cardforge.org/fpics/tokens/bg_1_1_worm.jpg
-br_1_1_minor_demon.jpg http://www.cardforge.org/fpics/tokens/br_1_1_minor_demon.jpg
-br_3_1_graveborn.jpg http://www.cardforge.org/fpics/tokens/br_3_1_graveborn.jpg
-br_5_5_elemental.jpg http://www.cardforge.org/fpics/tokens/br_5_5_elemental.jpg
-c_0_1_eldrazi_spawn.jpg http://www.cardforge.org/fpics/tokens/c_0_1_eldrazi_spawn.jpg
-c_0_1_eldrazi_spawn2.jpg http://www.cardforge.org/fpics/tokens/c_0_1_eldrazi_spawn2.jpg
-c_0_1_eldrazi_spawn3.jpg http://www.cardforge.org/fpics/tokens/c_0_1_eldrazi_spawn3.jpg
-c_0_1_pest.jpg http://www.cardforge.org/fpics/tokens/c_0_1_pest.jpg
-c_0_1_prism.jpg http://www.cardforge.org/fpics/tokens/c_0_1_prism.jpg
-c_0_2_wall.jpg http://www.cardforge.org/fpics/tokens/c_0_2_wall.jpg
-c_1_1_gnome.jpg http://www.cardforge.org/fpics/tokens/c_1_1_gnome.jpg
-c_1_1_hornet.jpg http://www.cardforge.org/fpics/tokens/c_1_1_hornet.jpg
-c_1_1_metallic_sliver.jpg http://www.cardforge.org/fpics/tokens/c_1_1_metallic_sliver.jpg
-c_1_1_myr.jpg http://www.cardforge.org/fpics/tokens/c_1_1_myr.jpg
-c_1_1_myr_nph.jpg http://www.cardforge.org/fpics/tokens/c_1_1_myr_nph.jpg
-c_1_1_myr_som.jpg http://www.cardforge.org/fpics/tokens/c_1_1_myr_som.jpg
-c_1_1_pentavite.jpg http://www.cardforge.org/fpics/tokens/c_1_1_pentavite.jpg
-c_1_1_sand.jpg http://www.cardforge.org/fpics/tokens/c_1_1_sand.jpg
-c_1_1_shapeshifter.jpg http://www.cardforge.org/fpics/tokens/c_1_1_shapeshifter.jpg
-c_1_1_sliver.jpg http://www.cardforge.org/fpics/tokens/c_1_1_sliver.jpg
-c_1_1_sliver_m14.jpg http://www.cardforge.org/fpics/tokens/c_1_1_sliver_m14.jpg
-c_1_1_snake.jpg http://www.cardforge.org/fpics/tokens/c_1_1_snake.jpg
-c_1_1_spirit.jpg http://www.cardforge.org/fpics/tokens/c_1_1_spirit.jpg
-c_1_1_tetravite.jpg http://www.cardforge.org/fpics/tokens/c_1_1_tetravite.jpg
-c_1_1_thopter.jpg http://www.cardforge.org/fpics/tokens/c_1_1_thopter.jpg
-c_1_1_triskelavite.jpg http://www.cardforge.org/fpics/tokens/c_1_1_triskelavite.jpg
-c_1_1_wasp.jpg http://www.cardforge.org/fpics/tokens/c_1_1_wasp.jpg
-c_2_2_assembly_worker.jpg http://www.cardforge.org/fpics/tokens/c_2_2_assembly_worker.jpg
-c_2_2_pincher.jpg http://www.cardforge.org/fpics/tokens/c_2_2_pincher.jpg
-c_2_2_spawn.jpg http://www.cardforge.org/fpics/tokens/c_2_2_spawn.jpg
-c_2_2_volraths_laboratory.jpg http://www.cardforge.org/fpics/tokens/c_2_2_volraths_laboratory.jpg
-c_2_2_wirefly.jpg http://www.cardforge.org/fpics/tokens/c_2_2_wirefly.jpg
-c_3_3_golem.jpg http://www.cardforge.org/fpics/tokens/c_3_3_golem.jpg
-c_3_3_golem_nph.jpg http://www.cardforge.org/fpics/tokens/c_3_3_golem_nph.jpg
-c_3_3_golem_ths.jpg http://www.cardforge.org/fpics/tokens/c_3_3_golem_ths.jpg
-c_3_3_wurm_deathtouch.jpg http://www.cardforge.org/fpics/tokens/c_3_3_wurm_deathtouch.jpg
-c_3_3_wurm_lifelink.jpg http://www.cardforge.org/fpics/tokens/c_3_3_wurm_lifelink.jpg
-c_3_4_gargoyle.jpg http://www.cardforge.org/fpics/tokens/c_3_4_gargoyle.jpg
-c_4_4_kaldra.jpg http://www.cardforge.org/fpics/tokens/c_4_4_kaldra.jpg
-c_4_6_golem.jpg http://www.cardforge.org/fpics/tokens/c_4_6_golem.jpg
-c_5_5_djinn.jpg http://www.cardforge.org/fpics/tokens/c_5_5_djinn.jpg
-c_5_5_tuktuk_the_returned.jpg http://www.cardforge.org/fpics/tokens/c_5_5_tuktuk_the_returned.jpg
-c_6_12_construct.jpg http://www.cardforge.org/fpics/tokens/c_6_12_construct.jpg
-c_7_7_eldrazi.jpg http://www.cardforge.org/fpics/tokens/c_7_7_eldrazi.jpg
-c_9_9_golem.jpg http://www.cardforge.org/fpics/tokens/c_9_9_golem.jpg
-c_x_x_horror.jpg http://www.cardforge.org/fpics/tokens/c_x_x_horror.jpg
-c_x_x_riptide_replicator.jpg http://www.cardforge.org/fpics/tokens/c_x_x_riptide_replicator.jpg
-c_x_y_twin.jpg http://www.cardforge.org/fpics/tokens/c_x_y_twin.jpg
-c_gold.jpg http://www.cardforge.org/fpics/tokens/c_gold.jpg
-g_0_1_plant.jpg http://www.cardforge.org/fpics/tokens/g_0_1_plant.jpg
-g_0_1_sheep.jpg http://www.cardforge.org/fpics/tokens/g_0_1_sheep.jpg
-g_0_1_wood.jpg http://www.cardforge.org/fpics/tokens/g_0_1_wood.jpg
-g_1_1_butterfly.jpg http://www.cardforge.org/fpics/tokens/g_1_1_butterfly.jpg
-g_1_1_cat.jpg http://www.cardforge.org/fpics/tokens/g_1_1_cat.jpg
-g_1_1_elf.jpg http://www.cardforge.org/fpics/tokens/g_1_1_elf.jpg
-g_1_1_elf_warrior.jpg http://www.cardforge.org/fpics/tokens/g_1_1_elf_warrior.jpg
-g_1_1_elf_warrior_shm.jpg http://www.cardforge.org/fpics/tokens/g_1_1_elf_warrior_shm.jpg
-g_1_1_hippo.jpg http://www.cardforge.org/fpics/tokens/g_1_1_hippo.jpg
-g_1_1_hound.jpg http://www.cardforge.org/fpics/tokens/g_1_1_hound.jpg
-g_1_1_insect.jpg http://www.cardforge.org/fpics/tokens/g_1_1_insect.jpg
-g_1_1_insect_deathtouch.jpg http://www.cardforge.org/fpics/tokens/g_1_1_insect_deathtouch.jpg
-g_1_1_insect_infect.jpg http://www.cardforge.org/fpics/tokens/g_1_1_insect_infect.jpg
-g_1_1_insect_m10.jpg http://www.cardforge.org/fpics/tokens/g_1_1_insect_m10.jpg
-g_1_1_insect_mrd.jpg http://www.cardforge.org/fpics/tokens/g_1_1_insect_mrd.jpg
-g_1_1_llanowar_elves.jpg http://www.cardforge.org/fpics/tokens/g_1_1_llanowar_elves.jpg
-g_1_1_ooze.jpg http://www.cardforge.org/fpics/tokens/g_1_1_ooze.jpg
-g_1_1_saproling.jpg http://www.cardforge.org/fpics/tokens/g_1_1_saproling.jpg
-g_1_1_saproling_10e.jpg http://www.cardforge.org/fpics/tokens/g_1_1_saproling_10e.jpg
-g_1_1_saproling_ala.jpg http://www.cardforge.org/fpics/tokens/g_1_1_saproling_ala.jpg
-g_1_1_saproling_m12.jpg http://www.cardforge.org/fpics/tokens/g_1_1_saproling_m12.jpg
-g_1_1_saproling_m13.jpg http://www.cardforge.org/fpics/tokens/g_1_1_saproling_m13.jpg
-g_1_1_saproling_m14.jpg http://www.cardforge.org/fpics/tokens/g_1_1_saproling_m14.jpg
-g_1_1_saproling_rav.jpg http://www.cardforge.org/fpics/tokens/g_1_1_saproling_rav.jpg
-g_1_1_saproling_rtr.jpg http://www.cardforge.org/fpics/tokens/g_1_1_saproling_rtr.jpg
-g_1_1_saproling_tsp.jpg http://www.cardforge.org/fpics/tokens/g_1_1_saproling_tsp.jpg
-g_1_1_snake.jpg http://www.cardforge.org/fpics/tokens/g_1_1_snake.jpg
-g_1_1_snake_chk.jpg http://www.cardforge.org/fpics/tokens/g_1_1_snake_chk.jpg
-g_1_1_spike.jpg http://www.cardforge.org/fpics/tokens/g_1_1_spike.jpg
-g_1_1_splinter.jpg http://www.cardforge.org/fpics/tokens/g_1_1_splinter.jpg
-g_1_1_squirrel.jpg http://www.cardforge.org/fpics/tokens/g_1_1_squirrel.jpg
-g_1_1_wolf.jpg http://www.cardforge.org/fpics/tokens/g_1_1_wolf.jpg
-g_1_1_wolves_of_the_hunt.jpg http://www.cardforge.org/fpics/tokens/g_1_1_wolves_of_the_hunt.jpg
-g_1_2_spider.jpg http://www.cardforge.org/fpics/tokens/g_1_2_spider.jpg
-g_1_2_spider_isd.jpg http://www.cardforge.org/fpics/tokens/g_1_2_spider_isd.jpg
-g_2_2_ape.jpg http://www.cardforge.org/fpics/tokens/g_2_2_ape.jpg
-g_2_2_bear.jpg http://www.cardforge.org/fpics/tokens/g_2_2_bear.jpg
-g_2_2_bear_ons.jpg http://www.cardforge.org/fpics/tokens/g_2_2_bear_ons.jpg
-g_2_2_beast.jpg http://www.cardforge.org/fpics/tokens/g_2_2_beast.jpg
-g_2_2_boar.jpg http://www.cardforge.org/fpics/tokens/g_2_2_boar.jpg
-g_2_2_cat_warrior.jpg http://www.cardforge.org/fpics/tokens/g_2_2_cat_warrior.jpg
-g_2_2_lizard.jpg http://www.cardforge.org/fpics/tokens/g_2_2_lizard.jpg
-g_2_2_ooze.jpg http://www.cardforge.org/fpics/tokens/g_2_2_ooze.jpg
-g_2_2_wolf.jpg http://www.cardforge.org/fpics/tokens/g_2_2_wolf.jpg
-g_2_2_wolf_bng.jpg http://www.cardforge.org/fpics/tokens/g_2_2_wolf_bng.jpg
-g_2_2_wolf_isd.jpg http://www.cardforge.org/fpics/tokens/g_2_2_wolf_isd.jpg
-g_2_2_wolf_m10.jpg http://www.cardforge.org/fpics/tokens/g_2_2_wolf_m10.jpg
-g_2_2_wolf_shm.jpg http://www.cardforge.org/fpics/tokens/g_2_2_wolf_shm.jpg
-g_2_2_wolf_som.jpg http://www.cardforge.org/fpics/tokens/g_2_2_wolf_som.jpg
-g_2_2_wolf_zen.jpg http://www.cardforge.org/fpics/tokens/g_2_2_wolf_zen.jpg
-g_2_3_antelope.jpg http://www.cardforge.org/fpics/tokens/g_2_3_antelope.jpg
-g_2_5_treefolk_shaman.jpg http://www.cardforge.org/fpics/tokens/g_2_5_treefolk_shaman.jpg
-g_3_2_cat.jpg http://www.cardforge.org/fpics/tokens/g_3_2_cat.jpg
-g_3_3_ape.jpg http://www.cardforge.org/fpics/tokens/g_3_3_ape.jpg
-g_3_3_beast.jpg http://www.cardforge.org/fpics/tokens/g_3_3_beast.jpg
-g_3_3_beast_eve.jpg http://www.cardforge.org/fpics/tokens/g_3_3_beast_eve.jpg
-g_3_3_beast_lrw.jpg http://www.cardforge.org/fpics/tokens/g_3_3_beast_lrw.jpg
-g_3_3_beast_m12.jpg http://www.cardforge.org/fpics/tokens/g_3_3_beast_m12.jpg
-g_3_3_beast_m13.jpg http://www.cardforge.org/fpics/tokens/g_3_3_beast_m13.jpg
-g_3_3_beast_m14.jpg http://www.cardforge.org/fpics/tokens/g_3_3_beast_m14.jpg
-g_3_3_beast_nph.jpg http://www.cardforge.org/fpics/tokens/g_3_3_beast_nph.jpg
-g_3_3_boar.jpg http://www.cardforge.org/fpics/tokens/g_3_3_boar.jpg
-g_3_3_centaur.jpg http://www.cardforge.org/fpics/tokens/g_3_3_centaur.jpg
-g_3_3_centaur_bng.jpg http://www.cardforge.org/fpics/tokens/g_3_3_centaur_bng.jpg
-g_3_3_centaur_pro_black.jpg http://www.cardforge.org/fpics/tokens/g_3_3_centaur_pro_black.jpg
-g_3_3_centaur_rtr.jpg http://www.cardforge.org/fpics/tokens/g_3_3_centaur_rtr.jpg
-g_3_3_elephant.jpg http://www.cardforge.org/fpics/tokens/g_3_3_elephant.jpg
-g_3_3_elephant_ody.jpg http://www.cardforge.org/fpics/tokens/g_3_3_elephant_ody.jpg
-g_3_3_elephant_wwk.jpg http://www.cardforge.org/fpics/tokens/g_3_3_elephant_wwk.jpg
-g_3_3_frog_lizard.jpg http://www.cardforge.org/fpics/tokens/g_3_3_frog_lizard.jpg
-g_4_4_beast.jpg http://www.cardforge.org/fpics/tokens/g_4_4_beast.jpg
-g_4_4_beast_zen.jpg http://www.cardforge.org/fpics/tokens/g_4_4_beast_zen.jpg
-g_4_4_elemental.jpg http://www.cardforge.org/fpics/tokens/g_4_4_elemental.jpg
-g_4_4_rhino.jpg http://www.cardforge.org/fpics/tokens/g_4_4_rhino.jpg
-g_4_4_rhino_rtr.jpg http://www.cardforge.org/fpics/tokens/g_4_4_rhino_rtr.jpg
-g_5_5_beast.jpg http://www.cardforge.org/fpics/tokens/g_5_5_beast.jpg
-g_5_5_wurm_rtr.jpg http://www.cardforge.org/fpics/tokens/g_5_5_wurm_rtr.jpg
-g_6_1_insect.jpg http://www.cardforge.org/fpics/tokens/g_6_1_insect.jpg
-g_6_6_wurm.jpg http://www.cardforge.org/fpics/tokens/g_6_6_wurm.jpg
-g_6_6_wurm_gpt.jpg http://www.cardforge.org/fpics/tokens/g_6_6_wurm_gpt.jpg
-g_6_6_wurm_m12.jpg http://www.cardforge.org/fpics/tokens/g_6_6_wurm_m12.jpg
-g_7_7_elemental.jpg http://www.cardforge.org/fpics/tokens/g_7_7_elemental.jpg
-g_x_x_elemental.jpg http://www.cardforge.org/fpics/tokens/g_x_x_elemental.jpg
-g_x_x_elephant.jpg http://www.cardforge.org/fpics/tokens/g_x_x_elephant.jpg
-g_x_x_ooze.jpg http://www.cardforge.org/fpics/tokens/g_x_x_ooze.jpg
-g_x_x_ooze_isd.jpg http://www.cardforge.org/fpics/tokens/g_x_x_ooze_isd.jpg
-g_x_x_ooze_roe.jpg http://www.cardforge.org/fpics/tokens/g_x_x_ooze_roe.jpg
-g_x_x_ooze_rtr.jpg http://www.cardforge.org/fpics/tokens/g_x_x_ooze_rtr.jpg
-g_x_x_saproling.jpg http://www.cardforge.org/fpics/tokens/g_x_x_saproling.jpg
-g_x_x_wurm.jpg http://www.cardforge.org/fpics/tokens/g_x_x_wurm.jpg
-gr_1_1_dragon.jpg http://www.cardforge.org/fpics/tokens/gr_1_1_dragon.jpg
-grw_1_1_sand_warrior.jpg http://www.cardforge.org/fpics/tokens/grw_1_1_sand_warrior.jpg
-gu_1_1_snake.jpg http://www.cardforge.org/fpics/tokens/gu_1_1_snake.jpg
-gu_2_2_drake.jpg http://www.cardforge.org/fpics/tokens/gu_2_2_drake.jpg
-gw_1_1_elf_warrior.jpg http://www.cardforge.org/fpics/tokens/gw_1_1_elf_warrior.jpg
-gw_2_2_voja.jpg http://www.cardforge.org/fpics/tokens/gw_2_2_voja.jpg
-gw_8_8_elemental_rtr.jpg http://www.cardforge.org/fpics/tokens/gw_8_8_elemental_rtr.jpg
-gw_x_x_elemental.jpg http://www.cardforge.org/fpics/tokens/gw_x_x_elemental.jpg
-r_0_1_kobolds_of_kher_keep.jpg http://www.cardforge.org/fpics/tokens/r_0_1_kobolds_of_kher_keep.jpg
-r_1_1_elemental.jpg http://www.cardforge.org/fpics/tokens/r_1_1_elemental.jpg
-r_1_1_elemental2_m14.jpg http://www.cardforge.org/fpics/tokens/r_1_1_elemental2_m14.jpg
-r_1_1_elemental_cat.jpg http://www.cardforge.org/fpics/tokens/r_1_1_elemental_cat.jpg
-r_1_1_elemental_m14.jpg http://www.cardforge.org/fpics/tokens/r_1_1_elemental_m14.jpg
-r_1_1_goblin.jpg http://www.cardforge.org/fpics/tokens/r_1_1_goblin.jpg
-r_1_1_goblin_10e.jpg http://www.cardforge.org/fpics/tokens/r_1_1_goblin_10e.jpg
-r_1_1_goblin_ala.jpg http://www.cardforge.org/fpics/tokens/r_1_1_goblin_ala.jpg
-r_1_1_goblin_m13.jpg http://www.cardforge.org/fpics/tokens/r_1_1_goblin_m13.jpg
-r_1_1_goblin_nph.jpg http://www.cardforge.org/fpics/tokens/r_1_1_goblin_nph.jpg
-r_1_1_goblin_rav.jpg http://www.cardforge.org/fpics/tokens/r_1_1_goblin_rav.jpg
-r_1_1_goblin_rtr.jpg http://www.cardforge.org/fpics/tokens/r_1_1_goblin_rtr.jpg
-r_1_1_goblin_scout.jpg http://www.cardforge.org/fpics/tokens/r_1_1_goblin_scout.jpg
-r_1_1_goblin_som.jpg http://www.cardforge.org/fpics/tokens/r_1_1_goblin_som.jpg
-r_1_1_goblin_tsp.jpg http://www.cardforge.org/fpics/tokens/r_1_1_goblin_tsp.jpg
-r_1_1_human.jpg http://www.cardforge.org/fpics/tokens/r_1_1_human.jpg
-r_1_1_soldier.jpg http://www.cardforge.org/fpics/tokens/r_1_1_soldier.jpg
-r_1_1_survivor.jpg http://www.cardforge.org/fpics/tokens/r_1_1_survivor.jpg
-r_1_1_warrior.jpg http://www.cardforge.org/fpics/tokens/r_1_1_warrior.jpg
-r_2_1_goblin.jpg http://www.cardforge.org/fpics/tokens/r_2_1_goblin.jpg
-r_2_2_dragon_m14.jpg http://www.cardforge.org/fpics/tokens/r_2_2_dragon_m14.jpg
-r_3_1_carnivore.jpg http://www.cardforge.org/fpics/tokens/r_3_1_carnivore.jpg
-r_3_1_elemental.jpg http://www.cardforge.org/fpics/tokens/r_3_1_elemental.jpg
-r_3_1_elemental_bng.jpg http://www.cardforge.org/fpics/tokens/r_3_1_elemental_bng.jpg
-r_3_1_elemental_dis.jpg http://www.cardforge.org/fpics/tokens/r_3_1_elemental_dis.jpg
-r_3_1_elemental_haste.jpg http://www.cardforge.org/fpics/tokens/r_3_1_elemental_haste.jpg
-r_3_1_elemental_mrd.jpg http://www.cardforge.org/fpics/tokens/r_3_1_elemental_mrd.jpg
-r_3_1_elemental_shaman.jpg http://www.cardforge.org/fpics/tokens/r_3_1_elemental_shaman.jpg
-r_3_1_elemental_sok.jpg http://www.cardforge.org/fpics/tokens/r_3_1_elemental_sok.jpg
-r_3_1_spark_elemental.jpg http://www.cardforge.org/fpics/tokens/r_3_1_spark_elemental.jpg
-r_3_3_elemental.jpg http://www.cardforge.org/fpics/tokens/r_3_3_elemental.jpg
-r_3_3_ogre.jpg http://www.cardforge.org/fpics/tokens/r_3_3_ogre.jpg
-r_4_4_bird.jpg http://www.cardforge.org/fpics/tokens/r_4_4_bird.jpg
-r_4_4_dragon.jpg http://www.cardforge.org/fpics/tokens/r_4_4_dragon.jpg
-r_4_4_giant.jpg http://www.cardforge.org/fpics/tokens/r_4_4_giant.jpg
-r_4_4_hellion.jpg http://www.cardforge.org/fpics/tokens/r_4_4_hellion.jpg
-r_4_4_hellion_m13.jpg http://www.cardforge.org/fpics/tokens/r_4_4_hellion_m13.jpg
-r_5_5_dragon.jpg http://www.cardforge.org/fpics/tokens/r_5_5_dragon.jpg
-r_5_5_dragon_10e.jpg http://www.cardforge.org/fpics/tokens/r_5_5_dragon_10e.jpg
-r_5_5_dragon_wwk.jpg http://www.cardforge.org/fpics/tokens/r_5_5_dragon_wwk.jpg
-r_6_6_dragon_rtr.jpg http://www.cardforge.org/fpics/tokens/r_6_6_dragon_rtr.jpg
-r_7_1_elemental.jpg http://www.cardforge.org/fpics/tokens/r_7_1_elemental.jpg
-r_x_x_elemental.jpg http://www.cardforge.org/fpics/tokens/r_x_x_elemental.jpg
-rg_1_1_goblin_warrior.jpg http://www.cardforge.org/fpics/tokens/rg_1_1_goblin_warrior.jpg
-rg_2_2_satyr.jpg http://www.cardforge.org/fpics/tokens/rg_2_2_satyr.jpg
-rg_3_4_stangg_twin.jpg http://www.cardforge.org/fpics/tokens/rg_3_4_stangg_twin.jpg
-rg_4_4_giant_warrior.jpg http://www.cardforge.org/fpics/tokens/rg_4_4_giant_warrior.jpg
-rw_1_1_goblin_soldier.jpg http://www.cardforge.org/fpics/tokens/rw_1_1_goblin_soldier.jpg
-rw_1_1_goblin_soldier_eve.jpg http://www.cardforge.org/fpics/tokens/rw_1_1_goblin_soldier_eve.jpg
-rw_1_1_soldier.jpg http://www.cardforge.org/fpics/tokens/rw_1_1_soldier.jpg
-u_0_1_homunculus.jpg http://www.cardforge.org/fpics/tokens/u_0_1_homunculus.jpg
-u_0_1_plant_wall.jpg http://www.cardforge.org/fpics/tokens/u_0_1_plant_wall.jpg
-u_0_1_starfish.jpg http://www.cardforge.org/fpics/tokens/u_0_1_starfish.jpg
-u_1_0_elemental.jpg http://www.cardforge.org/fpics/tokens/u_1_0_elemental.jpg
-u_1_1_bird.jpg http://www.cardforge.org/fpics/tokens/u_1_1_bird.jpg
-u_1_1_bird_eve.jpg http://www.cardforge.org/fpics/tokens/u_1_1_bird_eve.jpg
-u_1_1_camarid.jpg http://www.cardforge.org/fpics/tokens/u_1_1_camarid.jpg
-u_1_1_cloud_sprite.jpg http://www.cardforge.org/fpics/tokens/u_1_1_cloud_sprite.jpg
-u_1_1_faerie.jpg http://www.cardforge.org/fpics/tokens/u_1_1_faerie.jpg
-u_1_1_illusion.jpg http://www.cardforge.org/fpics/tokens/u_1_1_illusion.jpg
-u_1_1_merfolk.jpg http://www.cardforge.org/fpics/tokens/u_1_1_merfolk.jpg
-u_1_1_merfolk_wizard.jpg http://www.cardforge.org/fpics/tokens/u_1_1_merfolk_wizard.jpg
-u_1_1_spirit.jpg http://www.cardforge.org/fpics/tokens/u_1_1_spirit.jpg
-u_1_1_thopter.jpg http://www.cardforge.org/fpics/tokens/u_1_1_thopter.jpg
-u_2_2_bird.jpg http://www.cardforge.org/fpics/tokens/u_2_2_bird.jpg
-u_2_2_bird_bng.jpg http://www.cardforge.org/fpics/tokens/u_2_2_bird_bng.jpg
-u_2_2_drake.jpg http://www.cardforge.org/fpics/tokens/u_2_2_drake.jpg
-u_2_2_elemental_flying.jpg http://www.cardforge.org/fpics/tokens/u_2_2_elemental_flying.jpg
-u_2_2_homunculus.jpg http://www.cardforge.org/fpics/tokens/u_2_2_homunculus.jpg
-u_2_2_illusion.jpg http://www.cardforge.org/fpics/tokens/u_2_2_illusion.jpg
-u_3_3_weird.jpg http://www.cardforge.org/fpics/tokens/u_3_3_weird.jpg
-u_5_5_dragon_spirit.jpg http://www.cardforge.org/fpics/tokens/u_5_5_dragon_spirit.jpg
-u_5_5_wall.jpg http://www.cardforge.org/fpics/tokens/u_5_5_wall.jpg
-u_9_9_kraken.jpg http://www.cardforge.org/fpics/tokens/u_9_9_kraken.jpg
-u_x_x_orb.jpg http://www.cardforge.org/fpics/tokens/u_x_x_orb.jpg
-ub_1_1_faerie_rogue.jpg http://www.cardforge.org/fpics/tokens/ub_1_1_faerie_rogue.jpg
-ub_1_1_horror.jpg http://www.cardforge.org/fpics/tokens/ub_1_1_horror.jpg
-ub_1_1_zombie_wizard.jpg http://www.cardforge.org/fpics/tokens/ub_1_1_zombie_wizard.jpg
-ur_5_5_elemental.jpg http://www.cardforge.org/fpics/tokens/ur_5_5_elemental.jpg
-w_0_1_caribou.jpg http://www.cardforge.org/fpics/tokens/w_0_1_caribou.jpg
-w_0_1_deserter.jpg http://www.cardforge.org/fpics/tokens/w_0_1_deserter.jpg
-w_0_1_goat.jpg http://www.cardforge.org/fpics/tokens/w_0_1_goat.jpg
-w_0_1_goat_m13.jpg http://www.cardforge.org/fpics/tokens/w_0_1_goat_m13.jpg
-w_1_1_bird.jpg http://www.cardforge.org/fpics/tokens/w_1_1_bird.jpg
-w_1_1_bird_bng.jpg http://www.cardforge.org/fpics/tokens/w_1_1_bird_bng.jpg
-w_1_1_bird_csp.jpg http://www.cardforge.org/fpics/tokens/w_1_1_bird_csp.jpg
-w_1_1_bird_rtr.jpg http://www.cardforge.org/fpics/tokens/w_1_1_bird_rtr.jpg
-w_1_1_bird_soldier.jpg http://www.cardforge.org/fpics/tokens/w_1_1_bird_soldier.jpg
-w_1_1_cat_soldier.jpg http://www.cardforge.org/fpics/tokens/w_1_1_cat_soldier.jpg
-w_1_1_citizen.jpg http://www.cardforge.org/fpics/tokens/w_1_1_citizen.jpg
-w_1_1_goldmeadow_harrier.jpg http://www.cardforge.org/fpics/tokens/w_1_1_goldmeadow_harrier.jpg
-w_1_1_human.jpg http://www.cardforge.org/fpics/tokens/w_1_1_human.jpg
-w_1_1_human_avr.jpg http://www.cardforge.org/fpics/tokens/w_1_1_human_avr.jpg
-w_1_1_kithkin_soldier.jpg http://www.cardforge.org/fpics/tokens/w_1_1_kithkin_soldier.jpg
-w_1_1_kithkin_soldier_shm.jpg http://www.cardforge.org/fpics/tokens/w_1_1_kithkin_soldier_shm.jpg
-w_1_1_knight.jpg http://www.cardforge.org/fpics/tokens/w_1_1_knight.jpg
-w_1_1_kor_soldier.jpg http://www.cardforge.org/fpics/tokens/w_1_1_kor_soldier.jpg
-w_1_1_pegasus.jpg http://www.cardforge.org/fpics/tokens/w_1_1_pegasus.jpg
-w_1_1_soldier.jpg http://www.cardforge.org/fpics/tokens/w_1_1_soldier.jpg
-w_1_1_soldier_10e.jpg http://www.cardforge.org/fpics/tokens/w_1_1_soldier_10e.jpg
-w_1_1_soldier_ala.jpg http://www.cardforge.org/fpics/tokens/w_1_1_soldier_ala.jpg
-w_1_1_soldier_ally.jpg http://www.cardforge.org/fpics/tokens/w_1_1_soldier_ally.jpg
-w_1_1_soldier_bng.jpg http://www.cardforge.org/fpics/tokens/w_1_1_soldier_bng.jpg
-w_1_1_soldier_csp.jpg http://www.cardforge.org/fpics/tokens/w_1_1_soldier_csp.jpg
-w_1_1_soldier_m10.jpg http://www.cardforge.org/fpics/tokens/w_1_1_soldier_m10.jpg
-w_1_1_soldier_m12.jpg http://www.cardforge.org/fpics/tokens/w_1_1_soldier_m12.jpg
-w_1_1_soldier_m13.jpg http://www.cardforge.org/fpics/tokens/w_1_1_soldier_m13.jpg
-w_1_1_soldier_mrd.jpg http://www.cardforge.org/fpics/tokens/w_1_1_soldier_mrd.jpg
-w_1_1_soldier_plc.jpg http://www.cardforge.org/fpics/tokens/w_1_1_soldier_plc.jpg
-w_1_1_soldier_rtr.jpg http://www.cardforge.org/fpics/tokens/w_1_1_soldier_rtr.jpg
-w_1_1_soldier_som.jpg http://www.cardforge.org/fpics/tokens/w_1_1_soldier_som.jpg
-w_1_1_soldier_ths.jpg http://www.cardforge.org/fpics/tokens/w_1_1_soldier_ths.jpg
-w_1_1_soldier2_ths.jpg http://www.cardforge.org/fpics/tokens/w_1_1_soldier2_ths.jpg
-w_1_1_spirit.jpg http://www.cardforge.org/fpics/tokens/w_1_1_spirit.jpg
-w_1_1_spirit_avr.jpg http://www.cardforge.org/fpics/tokens/w_1_1_spirit_avr.jpg
-w_1_1_spirit_isd.jpg http://www.cardforge.org/fpics/tokens/w_1_1_spirit_isd.jpg
-w_1_1_spirit_mrd.jpg http://www.cardforge.org/fpics/tokens/w_1_1_spirit_mrd.jpg
-w_1_1_spirit_rav.jpg http://www.cardforge.org/fpics/tokens/w_1_1_spirit_rav.jpg
-w_1_1_spirit_shm.jpg http://www.cardforge.org/fpics/tokens/w_1_1_spirit_shm.jpg
-w_2_1_cleric.jpg http://www.cardforge.org/fpics/tokens/w_2_1_cleric.jpg
-w_2_2_cat.jpg http://www.cardforge.org/fpics/tokens/w_2_2_cat.jpg
-w_2_2_cat_m13.jpg http://www.cardforge.org/fpics/tokens/w_2_2_cat_m13.jpg
-w_2_2_cat_m14.jpg http://www.cardforge.org/fpics/tokens/w_2_2_cat_m14.jpg
-w_2_2_griffin.jpg http://www.cardforge.org/fpics/tokens/w_2_2_griffin.jpg
-w_2_2_knight.jpg http://www.cardforge.org/fpics/tokens/w_2_2_knight.jpg
-w_2_2_knight_first_strike.jpg http://www.cardforge.org/fpics/tokens/w_2_2_knight_first_strike.jpg
-w_2_2_knight_rtr.jpg http://www.cardforge.org/fpics/tokens/w_2_2_knight_rtr.jpg
-w_2_2_reflection.jpg http://www.cardforge.org/fpics/tokens/w_2_2_reflection.jpg
-w_3_3_bird.jpg http://www.cardforge.org/fpics/tokens/w_3_3_bird.jpg
-w_3_3_spirit.jpg http://www.cardforge.org/fpics/tokens/w_3_3_spirit.jpg
-w_4_4_angel.jpg http://www.cardforge.org/fpics/tokens/w_4_4_angel.jpg
-w_4_4_angel2_avr.jpg http://www.cardforge.org/fpics/tokens/w_4_4_angel2_avr.jpg
-w_4_4_angel_avr.jpg http://www.cardforge.org/fpics/tokens/w_4_4_angel_avr.jpg
-w_4_4_angel_cfx.jpg http://www.cardforge.org/fpics/tokens/w_4_4_angel_cfx.jpg
-w_4_4_angel_gtc.jpg http://www.cardforge.org/fpics/tokens/w_4_4_angel_gtc.jpg
-w_4_4_angel_isd.jpg http://www.cardforge.org/fpics/tokens/w_4_4_angel_isd.jpg
-w_4_4_angel_m14.jpg http://www.cardforge.org/fpics/tokens/w_4_4_angel_m14.jpg
-w_4_4_angel_zen.jpg http://www.cardforge.org/fpics/tokens/w_4_4_angel_zen.jpg
-w_4_4_elemental.jpg http://www.cardforge.org/fpics/tokens/w_4_4_elemental.jpg
-w_5_5_giant_warrior.jpg http://www.cardforge.org/fpics/tokens/w_5_5_giant_warrior.jpg
-w_n_n_avatar.jpg http://www.cardforge.org/fpics/tokens/w_n_n_avatar.jpg
-w_x_x_reflection.jpg http://www.cardforge.org/fpics/tokens/w_x_x_reflection.jpg
-wb_1_1_cleric.jpg http://www.cardforge.org/fpics/tokens/wb_1_1_cleric.jpg
-wb_1_1_spirit.jpg http://www.cardforge.org/fpics/tokens/wb_1_1_spirit.jpg
-wb_1_1_spirit_gtc.jpg http://www.cardforge.org/fpics/tokens/wb_1_1_spirit_gtc.jpg
-wrg_8_8_beast.jpg http://www.cardforge.org/fpics/tokens/wrg_8_8_beast.jpg
-wu_1_1_bird.jpg http://www.cardforge.org/fpics/tokens/wu_1_1_bird.jpg
+b_0_0_germ.jpg http://downloads.cardforge.link/images/tokens/b_0_0_germ.jpg
+b_0_1_insect.jpg http://downloads.cardforge.link/images/tokens/b_0_1_insect.jpg
+b_0_1_serf.jpg http://downloads.cardforge.link/images/tokens/b_0_1_serf.jpg
+b_0_1_thrull.jpg http://downloads.cardforge.link/images/tokens/b_0_1_thrull.jpg
+b_1_1_assassin_rtr.jpg http://downloads.cardforge.link/images/tokens/b_1_1_assassin_rtr.jpg
+b_1_1_bat.jpg http://downloads.cardforge.link/images/tokens/b_1_1_bat.jpg
+b_1_1_faerie_rogue.jpg http://downloads.cardforge.link/images/tokens/b_1_1_faerie_rogue.jpg
+b_1_1_festering_goblin.jpg http://downloads.cardforge.link/images/tokens/b_1_1_festering_goblin.jpg
+b_1_1_goblin_rogue.jpg http://downloads.cardforge.link/images/tokens/b_1_1_goblin_rogue.jpg
+b_1_1_harpy.jpg http://downloads.cardforge.link/images/tokens/b_1_1_harpy.jpg
+b_1_1_minion.jpg http://downloads.cardforge.link/images/tokens/b_1_1_minion.jpg
+b_1_1_rat.jpg http://downloads.cardforge.link/images/tokens/b_1_1_rat.jpg
+b_1_1_rat_chk.jpg http://downloads.cardforge.link/images/tokens/b_1_1_rat_chk.jpg
+b_1_1_rat_gtc.jpg http://downloads.cardforge.link/images/tokens/b_1_1_rat_gtc.jpg
+b_1_1_skeleton.jpg http://downloads.cardforge.link/images/tokens/b_1_1_skeleton.jpg
+b_1_1_thrull.jpg http://downloads.cardforge.link/images/tokens/b_1_1_thrull.jpg
+b_1_1_vampire.jpg http://downloads.cardforge.link/images/tokens/b_1_1_vampire.jpg
+b_1_1_wolf.jpg http://downloads.cardforge.link/images/tokens/b_1_1_wolf.jpg
+b_1_2_bat.jpg http://downloads.cardforge.link/images/tokens/b_1_2_bat.jpg
+b_2_1_cat.jpg http://downloads.cardforge.link/images/tokens/b_2_1_cat.jpg
+b_2_2_knight.jpg http://downloads.cardforge.link/images/tokens/b_2_2_knight.jpg
+b_2_2_tombspawn.jpg http://downloads.cardforge.link/images/tokens/b_2_2_tombspawn.jpg
+b_2_2_vampire.jpg http://downloads.cardforge.link/images/tokens/b_2_2_vampire.jpg
+b_2_2_zombie.jpg http://downloads.cardforge.link/images/tokens/b_2_2_zombie.jpg
+b_2_2_zombie2_isd.jpg http://downloads.cardforge.link/images/tokens/b_2_2_zombie2_isd.jpg
+b_2_2_zombie3_isd.jpg http://downloads.cardforge.link/images/tokens/b_2_2_zombie3_isd.jpg
+b_2_2_zombie_10e.jpg http://downloads.cardforge.link/images/tokens/b_2_2_zombie_10e.jpg
+b_2_2_zombie_ala.jpg http://downloads.cardforge.link/images/tokens/b_2_2_zombie_ala.jpg
+b_2_2_zombie_avr.jpg http://downloads.cardforge.link/images/tokens/b_2_2_zombie_avr.jpg
+b_2_2_zombie_bng.jpg http://downloads.cardforge.link/images/tokens/b_2_2_zombie_bng.jpg
+b_2_2_zombie_isd.jpg http://downloads.cardforge.link/images/tokens/b_2_2_zombie_isd.jpg
+b_2_2_zombie_m10.jpg http://downloads.cardforge.link/images/tokens/b_2_2_zombie_m10.jpg
+b_2_2_zombie_m11.jpg http://downloads.cardforge.link/images/tokens/b_2_2_zombie_m11.jpg
+b_2_2_zombie_m13.jpg http://downloads.cardforge.link/images/tokens/b_2_2_zombie_m13.jpg
+b_2_2_zombie_m14.jpg http://downloads.cardforge.link/images/tokens/b_2_2_zombie_m14.jpg
+b_2_2_zombie_mbs.jpg http://downloads.cardforge.link/images/tokens/b_2_2_zombie_mbs.jpg
+b_2_4_spider.jpg http://downloads.cardforge.link/images/tokens/b_2_4_spider.jpg
+b_3_3_angel.jpg http://downloads.cardforge.link/images/tokens/b_3_3_angel.jpg
+b_3_3_kavu.jpg http://downloads.cardforge.link/images/tokens/b_3_3_kavu.jpg
+b_4_4_horror.jpg http://downloads.cardforge.link/images/tokens/b_4_4_horror.jpg
+b_5_5_demon.jpg http://downloads.cardforge.link/images/tokens/b_5_5_demon.jpg
+b_5_5_demon_avr.jpg http://downloads.cardforge.link/images/tokens/b_5_5_demon_avr.jpg
+b_5_5_urami.jpg http://downloads.cardforge.link/images/tokens/b_5_5_urami.jpg
+b_5_5_zombie_giant.jpg http://downloads.cardforge.link/images/tokens/b_5_5_zombie_giant.jpg
+b_6_6_wurm.jpg http://downloads.cardforge.link/images/tokens/b_6_6_wurm.jpg
+b_20_20_marit_lage.jpg http://downloads.cardforge.link/images/tokens/b_20_20_marit_lage.jpg
+b_dx_dy_spirit.jpg http://downloads.cardforge.link/images/tokens/b_dx_dy_spirit.jpg
+b_x_x_demon.jpg http://downloads.cardforge.link/images/tokens/b_x_x_demon.jpg
+b_x_x_minion.jpg http://downloads.cardforge.link/images/tokens/b_x_x_minion.jpg
+b_x_x_vampire.jpg http://downloads.cardforge.link/images/tokens/b_x_x_vampire.jpg
+bg_1_1_worm.jpg http://downloads.cardforge.link/images/tokens/bg_1_1_worm.jpg
+br_1_1_minor_demon.jpg http://downloads.cardforge.link/images/tokens/br_1_1_minor_demon.jpg
+br_3_1_graveborn.jpg http://downloads.cardforge.link/images/tokens/br_3_1_graveborn.jpg
+br_5_5_elemental.jpg http://downloads.cardforge.link/images/tokens/br_5_5_elemental.jpg
+c_0_1_eldrazi_spawn.jpg http://downloads.cardforge.link/images/tokens/c_0_1_eldrazi_spawn.jpg
+c_0_1_eldrazi_spawn2.jpg http://downloads.cardforge.link/images/tokens/c_0_1_eldrazi_spawn2.jpg
+c_0_1_eldrazi_spawn3.jpg http://downloads.cardforge.link/images/tokens/c_0_1_eldrazi_spawn3.jpg
+c_0_1_pest.jpg http://downloads.cardforge.link/images/tokens/c_0_1_pest.jpg
+c_0_1_prism.jpg http://downloads.cardforge.link/images/tokens/c_0_1_prism.jpg
+c_0_2_wall.jpg http://downloads.cardforge.link/images/tokens/c_0_2_wall.jpg
+c_1_1_gnome.jpg http://downloads.cardforge.link/images/tokens/c_1_1_gnome.jpg
+c_1_1_hornet.jpg http://downloads.cardforge.link/images/tokens/c_1_1_hornet.jpg
+c_1_1_metallic_sliver.jpg http://downloads.cardforge.link/images/tokens/c_1_1_metallic_sliver.jpg
+c_1_1_myr.jpg http://downloads.cardforge.link/images/tokens/c_1_1_myr.jpg
+c_1_1_myr_nph.jpg http://downloads.cardforge.link/images/tokens/c_1_1_myr_nph.jpg
+c_1_1_myr_som.jpg http://downloads.cardforge.link/images/tokens/c_1_1_myr_som.jpg
+c_1_1_pentavite.jpg http://downloads.cardforge.link/images/tokens/c_1_1_pentavite.jpg
+c_1_1_sand.jpg http://downloads.cardforge.link/images/tokens/c_1_1_sand.jpg
+c_1_1_shapeshifter.jpg http://downloads.cardforge.link/images/tokens/c_1_1_shapeshifter.jpg
+c_1_1_sliver.jpg http://downloads.cardforge.link/images/tokens/c_1_1_sliver.jpg
+c_1_1_sliver_m14.jpg http://downloads.cardforge.link/images/tokens/c_1_1_sliver_m14.jpg
+c_1_1_snake.jpg http://downloads.cardforge.link/images/tokens/c_1_1_snake.jpg
+c_1_1_spirit.jpg http://downloads.cardforge.link/images/tokens/c_1_1_spirit.jpg
+c_1_1_tetravite.jpg http://downloads.cardforge.link/images/tokens/c_1_1_tetravite.jpg
+c_1_1_thopter.jpg http://downloads.cardforge.link/images/tokens/c_1_1_thopter.jpg
+c_1_1_triskelavite.jpg http://downloads.cardforge.link/images/tokens/c_1_1_triskelavite.jpg
+c_1_1_wasp.jpg http://downloads.cardforge.link/images/tokens/c_1_1_wasp.jpg
+c_2_2_assembly_worker.jpg http://downloads.cardforge.link/images/tokens/c_2_2_assembly_worker.jpg
+c_2_2_pincher.jpg http://downloads.cardforge.link/images/tokens/c_2_2_pincher.jpg
+c_2_2_spawn.jpg http://downloads.cardforge.link/images/tokens/c_2_2_spawn.jpg
+c_2_2_volraths_laboratory.jpg http://downloads.cardforge.link/images/tokens/c_2_2_volraths_laboratory.jpg
+c_2_2_wirefly.jpg http://downloads.cardforge.link/images/tokens/c_2_2_wirefly.jpg
+c_3_3_golem.jpg http://downloads.cardforge.link/images/tokens/c_3_3_golem.jpg
+c_3_3_golem_nph.jpg http://downloads.cardforge.link/images/tokens/c_3_3_golem_nph.jpg
+c_3_3_golem_ths.jpg http://downloads.cardforge.link/images/tokens/c_3_3_golem_ths.jpg
+c_3_3_wurm_deathtouch.jpg http://downloads.cardforge.link/images/tokens/c_3_3_wurm_deathtouch.jpg
+c_3_3_wurm_lifelink.jpg http://downloads.cardforge.link/images/tokens/c_3_3_wurm_lifelink.jpg
+c_3_4_gargoyle.jpg http://downloads.cardforge.link/images/tokens/c_3_4_gargoyle.jpg
+c_4_4_kaldra.jpg http://downloads.cardforge.link/images/tokens/c_4_4_kaldra.jpg
+c_4_6_golem.jpg http://downloads.cardforge.link/images/tokens/c_4_6_golem.jpg
+c_5_5_djinn.jpg http://downloads.cardforge.link/images/tokens/c_5_5_djinn.jpg
+c_5_5_tuktuk_the_returned.jpg http://downloads.cardforge.link/images/tokens/c_5_5_tuktuk_the_returned.jpg
+c_6_12_construct.jpg http://downloads.cardforge.link/images/tokens/c_6_12_construct.jpg
+c_7_7_eldrazi.jpg http://downloads.cardforge.link/images/tokens/c_7_7_eldrazi.jpg
+c_9_9_golem.jpg http://downloads.cardforge.link/images/tokens/c_9_9_golem.jpg
+c_x_x_horror.jpg http://downloads.cardforge.link/images/tokens/c_x_x_horror.jpg
+c_x_x_riptide_replicator.jpg http://downloads.cardforge.link/images/tokens/c_x_x_riptide_replicator.jpg
+c_x_y_twin.jpg http://downloads.cardforge.link/images/tokens/c_x_y_twin.jpg
+c_gold.jpg http://downloads.cardforge.link/images/tokens/c_gold.jpg
+g_0_1_plant.jpg http://downloads.cardforge.link/images/tokens/g_0_1_plant.jpg
+g_0_1_sheep.jpg http://downloads.cardforge.link/images/tokens/g_0_1_sheep.jpg
+g_0_1_wood.jpg http://downloads.cardforge.link/images/tokens/g_0_1_wood.jpg
+g_1_1_butterfly.jpg http://downloads.cardforge.link/images/tokens/g_1_1_butterfly.jpg
+g_1_1_cat.jpg http://downloads.cardforge.link/images/tokens/g_1_1_cat.jpg
+g_1_1_elf.jpg http://downloads.cardforge.link/images/tokens/g_1_1_elf.jpg
+g_1_1_elf_warrior.jpg http://downloads.cardforge.link/images/tokens/g_1_1_elf_warrior.jpg
+g_1_1_elf_warrior_shm.jpg http://downloads.cardforge.link/images/tokens/g_1_1_elf_warrior_shm.jpg
+g_1_1_hippo.jpg http://downloads.cardforge.link/images/tokens/g_1_1_hippo.jpg
+g_1_1_hound.jpg http://downloads.cardforge.link/images/tokens/g_1_1_hound.jpg
+g_1_1_insect.jpg http://downloads.cardforge.link/images/tokens/g_1_1_insect.jpg
+g_1_1_insect_deathtouch.jpg http://downloads.cardforge.link/images/tokens/g_1_1_insect_deathtouch.jpg
+g_1_1_insect_infect.jpg http://downloads.cardforge.link/images/tokens/g_1_1_insect_infect.jpg
+g_1_1_insect_m10.jpg http://downloads.cardforge.link/images/tokens/g_1_1_insect_m10.jpg
+g_1_1_insect_mrd.jpg http://downloads.cardforge.link/images/tokens/g_1_1_insect_mrd.jpg
+g_1_1_llanowar_elves.jpg http://downloads.cardforge.link/images/tokens/g_1_1_llanowar_elves.jpg
+g_1_1_ooze.jpg http://downloads.cardforge.link/images/tokens/g_1_1_ooze.jpg
+g_1_1_saproling.jpg http://downloads.cardforge.link/images/tokens/g_1_1_saproling.jpg
+g_1_1_saproling_10e.jpg http://downloads.cardforge.link/images/tokens/g_1_1_saproling_10e.jpg
+g_1_1_saproling_ala.jpg http://downloads.cardforge.link/images/tokens/g_1_1_saproling_ala.jpg
+g_1_1_saproling_m12.jpg http://downloads.cardforge.link/images/tokens/g_1_1_saproling_m12.jpg
+g_1_1_saproling_m13.jpg http://downloads.cardforge.link/images/tokens/g_1_1_saproling_m13.jpg
+g_1_1_saproling_m14.jpg http://downloads.cardforge.link/images/tokens/g_1_1_saproling_m14.jpg
+g_1_1_saproling_rav.jpg http://downloads.cardforge.link/images/tokens/g_1_1_saproling_rav.jpg
+g_1_1_saproling_rtr.jpg http://downloads.cardforge.link/images/tokens/g_1_1_saproling_rtr.jpg
+g_1_1_saproling_tsp.jpg http://downloads.cardforge.link/images/tokens/g_1_1_saproling_tsp.jpg
+g_1_1_snake.jpg http://downloads.cardforge.link/images/tokens/g_1_1_snake.jpg
+g_1_1_snake_chk.jpg http://downloads.cardforge.link/images/tokens/g_1_1_snake_chk.jpg
+g_1_1_spike.jpg http://downloads.cardforge.link/images/tokens/g_1_1_spike.jpg
+g_1_1_splinter.jpg http://downloads.cardforge.link/images/tokens/g_1_1_splinter.jpg
+g_1_1_squirrel.jpg http://downloads.cardforge.link/images/tokens/g_1_1_squirrel.jpg
+g_1_1_wolf.jpg http://downloads.cardforge.link/images/tokens/g_1_1_wolf.jpg
+g_1_1_wolves_of_the_hunt.jpg http://downloads.cardforge.link/images/tokens/g_1_1_wolves_of_the_hunt.jpg
+g_1_2_spider.jpg http://downloads.cardforge.link/images/tokens/g_1_2_spider.jpg
+g_1_2_spider_isd.jpg http://downloads.cardforge.link/images/tokens/g_1_2_spider_isd.jpg
+g_2_2_ape.jpg http://downloads.cardforge.link/images/tokens/g_2_2_ape.jpg
+g_2_2_bear.jpg http://downloads.cardforge.link/images/tokens/g_2_2_bear.jpg
+g_2_2_bear_ons.jpg http://downloads.cardforge.link/images/tokens/g_2_2_bear_ons.jpg
+g_2_2_beast.jpg http://downloads.cardforge.link/images/tokens/g_2_2_beast.jpg
+g_2_2_boar.jpg http://downloads.cardforge.link/images/tokens/g_2_2_boar.jpg
+g_2_2_cat_warrior.jpg http://downloads.cardforge.link/images/tokens/g_2_2_cat_warrior.jpg
+g_2_2_lizard.jpg http://downloads.cardforge.link/images/tokens/g_2_2_lizard.jpg
+g_2_2_ooze.jpg http://downloads.cardforge.link/images/tokens/g_2_2_ooze.jpg
+g_2_2_wolf.jpg http://downloads.cardforge.link/images/tokens/g_2_2_wolf.jpg
+g_2_2_wolf_bng.jpg http://downloads.cardforge.link/images/tokens/g_2_2_wolf_bng.jpg
+g_2_2_wolf_isd.jpg http://downloads.cardforge.link/images/tokens/g_2_2_wolf_isd.jpg
+g_2_2_wolf_m10.jpg http://downloads.cardforge.link/images/tokens/g_2_2_wolf_m10.jpg
+g_2_2_wolf_shm.jpg http://downloads.cardforge.link/images/tokens/g_2_2_wolf_shm.jpg
+g_2_2_wolf_som.jpg http://downloads.cardforge.link/images/tokens/g_2_2_wolf_som.jpg
+g_2_2_wolf_zen.jpg http://downloads.cardforge.link/images/tokens/g_2_2_wolf_zen.jpg
+g_2_3_antelope.jpg http://downloads.cardforge.link/images/tokens/g_2_3_antelope.jpg
+g_2_5_treefolk_shaman.jpg http://downloads.cardforge.link/images/tokens/g_2_5_treefolk_shaman.jpg
+g_3_2_cat.jpg http://downloads.cardforge.link/images/tokens/g_3_2_cat.jpg
+g_3_3_ape.jpg http://downloads.cardforge.link/images/tokens/g_3_3_ape.jpg
+g_3_3_beast.jpg http://downloads.cardforge.link/images/tokens/g_3_3_beast.jpg
+g_3_3_beast_eve.jpg http://downloads.cardforge.link/images/tokens/g_3_3_beast_eve.jpg
+g_3_3_beast_lrw.jpg http://downloads.cardforge.link/images/tokens/g_3_3_beast_lrw.jpg
+g_3_3_beast_m12.jpg http://downloads.cardforge.link/images/tokens/g_3_3_beast_m12.jpg
+g_3_3_beast_m13.jpg http://downloads.cardforge.link/images/tokens/g_3_3_beast_m13.jpg
+g_3_3_beast_m14.jpg http://downloads.cardforge.link/images/tokens/g_3_3_beast_m14.jpg
+g_3_3_beast_nph.jpg http://downloads.cardforge.link/images/tokens/g_3_3_beast_nph.jpg
+g_3_3_boar.jpg http://downloads.cardforge.link/images/tokens/g_3_3_boar.jpg
+g_3_3_centaur.jpg http://downloads.cardforge.link/images/tokens/g_3_3_centaur.jpg
+g_3_3_centaur_bng.jpg http://downloads.cardforge.link/images/tokens/g_3_3_centaur_bng.jpg
+g_3_3_centaur_pro_black.jpg http://downloads.cardforge.link/images/tokens/g_3_3_centaur_pro_black.jpg
+g_3_3_centaur_rtr.jpg http://downloads.cardforge.link/images/tokens/g_3_3_centaur_rtr.jpg
+g_3_3_elephant.jpg http://downloads.cardforge.link/images/tokens/g_3_3_elephant.jpg
+g_3_3_elephant_ody.jpg http://downloads.cardforge.link/images/tokens/g_3_3_elephant_ody.jpg
+g_3_3_elephant_wwk.jpg http://downloads.cardforge.link/images/tokens/g_3_3_elephant_wwk.jpg
+g_3_3_frog_lizard.jpg http://downloads.cardforge.link/images/tokens/g_3_3_frog_lizard.jpg
+g_4_4_beast.jpg http://downloads.cardforge.link/images/tokens/g_4_4_beast.jpg
+g_4_4_beast_zen.jpg http://downloads.cardforge.link/images/tokens/g_4_4_beast_zen.jpg
+g_4_4_elemental.jpg http://downloads.cardforge.link/images/tokens/g_4_4_elemental.jpg
+g_4_4_rhino.jpg http://downloads.cardforge.link/images/tokens/g_4_4_rhino.jpg
+g_4_4_rhino_rtr.jpg http://downloads.cardforge.link/images/tokens/g_4_4_rhino_rtr.jpg
+g_5_5_beast.jpg http://downloads.cardforge.link/images/tokens/g_5_5_beast.jpg
+g_5_5_wurm_rtr.jpg http://downloads.cardforge.link/images/tokens/g_5_5_wurm_rtr.jpg
+g_6_1_insect.jpg http://downloads.cardforge.link/images/tokens/g_6_1_insect.jpg
+g_6_6_wurm.jpg http://downloads.cardforge.link/images/tokens/g_6_6_wurm.jpg
+g_6_6_wurm_gpt.jpg http://downloads.cardforge.link/images/tokens/g_6_6_wurm_gpt.jpg
+g_6_6_wurm_m12.jpg http://downloads.cardforge.link/images/tokens/g_6_6_wurm_m12.jpg
+g_7_7_elemental.jpg http://downloads.cardforge.link/images/tokens/g_7_7_elemental.jpg
+g_x_x_elemental.jpg http://downloads.cardforge.link/images/tokens/g_x_x_elemental.jpg
+g_x_x_elephant.jpg http://downloads.cardforge.link/images/tokens/g_x_x_elephant.jpg
+g_x_x_ooze.jpg http://downloads.cardforge.link/images/tokens/g_x_x_ooze.jpg
+g_x_x_ooze_isd.jpg http://downloads.cardforge.link/images/tokens/g_x_x_ooze_isd.jpg
+g_x_x_ooze_roe.jpg http://downloads.cardforge.link/images/tokens/g_x_x_ooze_roe.jpg
+g_x_x_ooze_rtr.jpg http://downloads.cardforge.link/images/tokens/g_x_x_ooze_rtr.jpg
+g_x_x_saproling.jpg http://downloads.cardforge.link/images/tokens/g_x_x_saproling.jpg
+g_x_x_wurm.jpg http://downloads.cardforge.link/images/tokens/g_x_x_wurm.jpg
+gr_1_1_dragon.jpg http://downloads.cardforge.link/images/tokens/gr_1_1_dragon.jpg
+grw_1_1_sand_warrior.jpg http://downloads.cardforge.link/images/tokens/grw_1_1_sand_warrior.jpg
+gu_1_1_snake.jpg http://downloads.cardforge.link/images/tokens/gu_1_1_snake.jpg
+gu_2_2_drake.jpg http://downloads.cardforge.link/images/tokens/gu_2_2_drake.jpg
+gw_1_1_elf_warrior.jpg http://downloads.cardforge.link/images/tokens/gw_1_1_elf_warrior.jpg
+gw_2_2_voja.jpg http://downloads.cardforge.link/images/tokens/gw_2_2_voja.jpg
+gw_8_8_elemental_rtr.jpg http://downloads.cardforge.link/images/tokens/gw_8_8_elemental_rtr.jpg
+gw_x_x_elemental.jpg http://downloads.cardforge.link/images/tokens/gw_x_x_elemental.jpg
+r_0_1_kobolds_of_kher_keep.jpg http://downloads.cardforge.link/images/tokens/r_0_1_kobolds_of_kher_keep.jpg
+r_1_1_elemental.jpg http://downloads.cardforge.link/images/tokens/r_1_1_elemental.jpg
+r_1_1_elemental2_m14.jpg http://downloads.cardforge.link/images/tokens/r_1_1_elemental2_m14.jpg
+r_1_1_elemental_cat.jpg http://downloads.cardforge.link/images/tokens/r_1_1_elemental_cat.jpg
+r_1_1_elemental_m14.jpg http://downloads.cardforge.link/images/tokens/r_1_1_elemental_m14.jpg
+r_1_1_goblin.jpg http://downloads.cardforge.link/images/tokens/r_1_1_goblin.jpg
+r_1_1_goblin_10e.jpg http://downloads.cardforge.link/images/tokens/r_1_1_goblin_10e.jpg
+r_1_1_goblin_ala.jpg http://downloads.cardforge.link/images/tokens/r_1_1_goblin_ala.jpg
+r_1_1_goblin_m13.jpg http://downloads.cardforge.link/images/tokens/r_1_1_goblin_m13.jpg
+r_1_1_goblin_nph.jpg http://downloads.cardforge.link/images/tokens/r_1_1_goblin_nph.jpg
+r_1_1_goblin_rav.jpg http://downloads.cardforge.link/images/tokens/r_1_1_goblin_rav.jpg
+r_1_1_goblin_rtr.jpg http://downloads.cardforge.link/images/tokens/r_1_1_goblin_rtr.jpg
+r_1_1_goblin_scout.jpg http://downloads.cardforge.link/images/tokens/r_1_1_goblin_scout.jpg
+r_1_1_goblin_som.jpg http://downloads.cardforge.link/images/tokens/r_1_1_goblin_som.jpg
+r_1_1_goblin_tsp.jpg http://downloads.cardforge.link/images/tokens/r_1_1_goblin_tsp.jpg
+r_1_1_human.jpg http://downloads.cardforge.link/images/tokens/r_1_1_human.jpg
+r_1_1_soldier.jpg http://downloads.cardforge.link/images/tokens/r_1_1_soldier.jpg
+r_1_1_survivor.jpg http://downloads.cardforge.link/images/tokens/r_1_1_survivor.jpg
+r_1_1_warrior.jpg http://downloads.cardforge.link/images/tokens/r_1_1_warrior.jpg
+r_2_1_goblin.jpg http://downloads.cardforge.link/images/tokens/r_2_1_goblin.jpg
+r_2_2_dragon_m14.jpg http://downloads.cardforge.link/images/tokens/r_2_2_dragon_m14.jpg
+r_3_1_carnivore.jpg http://downloads.cardforge.link/images/tokens/r_3_1_carnivore.jpg
+r_3_1_elemental.jpg http://downloads.cardforge.link/images/tokens/r_3_1_elemental.jpg
+r_3_1_elemental_bng.jpg http://downloads.cardforge.link/images/tokens/r_3_1_elemental_bng.jpg
+r_3_1_elemental_dis.jpg http://downloads.cardforge.link/images/tokens/r_3_1_elemental_dis.jpg
+r_3_1_elemental_haste.jpg http://downloads.cardforge.link/images/tokens/r_3_1_elemental_haste.jpg
+r_3_1_elemental_mrd.jpg http://downloads.cardforge.link/images/tokens/r_3_1_elemental_mrd.jpg
+r_3_1_elemental_shaman.jpg http://downloads.cardforge.link/images/tokens/r_3_1_elemental_shaman.jpg
+r_3_1_elemental_sok.jpg http://downloads.cardforge.link/images/tokens/r_3_1_elemental_sok.jpg
+r_3_1_spark_elemental.jpg http://downloads.cardforge.link/images/tokens/r_3_1_spark_elemental.jpg
+r_3_3_elemental.jpg http://downloads.cardforge.link/images/tokens/r_3_3_elemental.jpg
+r_3_3_ogre.jpg http://downloads.cardforge.link/images/tokens/r_3_3_ogre.jpg
+r_4_4_bird.jpg http://downloads.cardforge.link/images/tokens/r_4_4_bird.jpg
+r_4_4_dragon.jpg http://downloads.cardforge.link/images/tokens/r_4_4_dragon.jpg
+r_4_4_giant.jpg http://downloads.cardforge.link/images/tokens/r_4_4_giant.jpg
+r_4_4_hellion.jpg http://downloads.cardforge.link/images/tokens/r_4_4_hellion.jpg
+r_4_4_hellion_m13.jpg http://downloads.cardforge.link/images/tokens/r_4_4_hellion_m13.jpg
+r_5_5_dragon.jpg http://downloads.cardforge.link/images/tokens/r_5_5_dragon.jpg
+r_5_5_dragon_10e.jpg http://downloads.cardforge.link/images/tokens/r_5_5_dragon_10e.jpg
+r_5_5_dragon_wwk.jpg http://downloads.cardforge.link/images/tokens/r_5_5_dragon_wwk.jpg
+r_6_6_dragon_rtr.jpg http://downloads.cardforge.link/images/tokens/r_6_6_dragon_rtr.jpg
+r_7_1_elemental.jpg http://downloads.cardforge.link/images/tokens/r_7_1_elemental.jpg
+r_x_x_elemental.jpg http://downloads.cardforge.link/images/tokens/r_x_x_elemental.jpg
+rg_1_1_goblin_warrior.jpg http://downloads.cardforge.link/images/tokens/rg_1_1_goblin_warrior.jpg
+rg_2_2_satyr.jpg http://downloads.cardforge.link/images/tokens/rg_2_2_satyr.jpg
+rg_3_4_stangg_twin.jpg http://downloads.cardforge.link/images/tokens/rg_3_4_stangg_twin.jpg
+rg_4_4_giant_warrior.jpg http://downloads.cardforge.link/images/tokens/rg_4_4_giant_warrior.jpg
+rw_1_1_goblin_soldier.jpg http://downloads.cardforge.link/images/tokens/rw_1_1_goblin_soldier.jpg
+rw_1_1_goblin_soldier_eve.jpg http://downloads.cardforge.link/images/tokens/rw_1_1_goblin_soldier_eve.jpg
+rw_1_1_soldier.jpg http://downloads.cardforge.link/images/tokens/rw_1_1_soldier.jpg
+u_0_1_homunculus.jpg http://downloads.cardforge.link/images/tokens/u_0_1_homunculus.jpg
+u_0_1_plant_wall.jpg http://downloads.cardforge.link/images/tokens/u_0_1_plant_wall.jpg
+u_0_1_starfish.jpg http://downloads.cardforge.link/images/tokens/u_0_1_starfish.jpg
+u_1_0_elemental.jpg http://downloads.cardforge.link/images/tokens/u_1_0_elemental.jpg
+u_1_1_bird.jpg http://downloads.cardforge.link/images/tokens/u_1_1_bird.jpg
+u_1_1_bird_eve.jpg http://downloads.cardforge.link/images/tokens/u_1_1_bird_eve.jpg
+u_1_1_camarid.jpg http://downloads.cardforge.link/images/tokens/u_1_1_camarid.jpg
+u_1_1_cloud_sprite.jpg http://downloads.cardforge.link/images/tokens/u_1_1_cloud_sprite.jpg
+u_1_1_faerie.jpg http://downloads.cardforge.link/images/tokens/u_1_1_faerie.jpg
+u_1_1_illusion.jpg http://downloads.cardforge.link/images/tokens/u_1_1_illusion.jpg
+u_1_1_merfolk.jpg http://downloads.cardforge.link/images/tokens/u_1_1_merfolk.jpg
+u_1_1_merfolk_wizard.jpg http://downloads.cardforge.link/images/tokens/u_1_1_merfolk_wizard.jpg
+u_1_1_spirit.jpg http://downloads.cardforge.link/images/tokens/u_1_1_spirit.jpg
+u_1_1_thopter.jpg http://downloads.cardforge.link/images/tokens/u_1_1_thopter.jpg
+u_2_2_bird.jpg http://downloads.cardforge.link/images/tokens/u_2_2_bird.jpg
+u_2_2_bird_bng.jpg http://downloads.cardforge.link/images/tokens/u_2_2_bird_bng.jpg
+u_2_2_drake.jpg http://downloads.cardforge.link/images/tokens/u_2_2_drake.jpg
+u_2_2_elemental_flying.jpg http://downloads.cardforge.link/images/tokens/u_2_2_elemental_flying.jpg
+u_2_2_homunculus.jpg http://downloads.cardforge.link/images/tokens/u_2_2_homunculus.jpg
+u_2_2_illusion.jpg http://downloads.cardforge.link/images/tokens/u_2_2_illusion.jpg
+u_3_3_weird.jpg http://downloads.cardforge.link/images/tokens/u_3_3_weird.jpg
+u_5_5_dragon_spirit.jpg http://downloads.cardforge.link/images/tokens/u_5_5_dragon_spirit.jpg
+u_5_5_wall.jpg http://downloads.cardforge.link/images/tokens/u_5_5_wall.jpg
+u_9_9_kraken.jpg http://downloads.cardforge.link/images/tokens/u_9_9_kraken.jpg
+u_x_x_orb.jpg http://downloads.cardforge.link/images/tokens/u_x_x_orb.jpg
+ub_1_1_faerie_rogue.jpg http://downloads.cardforge.link/images/tokens/ub_1_1_faerie_rogue.jpg
+ub_1_1_horror.jpg http://downloads.cardforge.link/images/tokens/ub_1_1_horror.jpg
+ub_1_1_zombie_wizard.jpg http://downloads.cardforge.link/images/tokens/ub_1_1_zombie_wizard.jpg
+ur_5_5_elemental.jpg http://downloads.cardforge.link/images/tokens/ur_5_5_elemental.jpg
+w_0_1_caribou.jpg http://downloads.cardforge.link/images/tokens/w_0_1_caribou.jpg
+w_0_1_deserter.jpg http://downloads.cardforge.link/images/tokens/w_0_1_deserter.jpg
+w_0_1_goat.jpg http://downloads.cardforge.link/images/tokens/w_0_1_goat.jpg
+w_0_1_goat_m13.jpg http://downloads.cardforge.link/images/tokens/w_0_1_goat_m13.jpg
+w_1_1_bird.jpg http://downloads.cardforge.link/images/tokens/w_1_1_bird.jpg
+w_1_1_bird_bng.jpg http://downloads.cardforge.link/images/tokens/w_1_1_bird_bng.jpg
+w_1_1_bird_csp.jpg http://downloads.cardforge.link/images/tokens/w_1_1_bird_csp.jpg
+w_1_1_bird_rtr.jpg http://downloads.cardforge.link/images/tokens/w_1_1_bird_rtr.jpg
+w_1_1_bird_soldier.jpg http://downloads.cardforge.link/images/tokens/w_1_1_bird_soldier.jpg
+w_1_1_cat_soldier.jpg http://downloads.cardforge.link/images/tokens/w_1_1_cat_soldier.jpg
+w_1_1_citizen.jpg http://downloads.cardforge.link/images/tokens/w_1_1_citizen.jpg
+w_1_1_goldmeadow_harrier.jpg http://downloads.cardforge.link/images/tokens/w_1_1_goldmeadow_harrier.jpg
+w_1_1_human.jpg http://downloads.cardforge.link/images/tokens/w_1_1_human.jpg
+w_1_1_human_avr.jpg http://downloads.cardforge.link/images/tokens/w_1_1_human_avr.jpg
+w_1_1_kithkin_soldier.jpg http://downloads.cardforge.link/images/tokens/w_1_1_kithkin_soldier.jpg
+w_1_1_kithkin_soldier_shm.jpg http://downloads.cardforge.link/images/tokens/w_1_1_kithkin_soldier_shm.jpg
+w_1_1_knight.jpg http://downloads.cardforge.link/images/tokens/w_1_1_knight.jpg
+w_1_1_kor_soldier.jpg http://downloads.cardforge.link/images/tokens/w_1_1_kor_soldier.jpg
+w_1_1_pegasus.jpg http://downloads.cardforge.link/images/tokens/w_1_1_pegasus.jpg
+w_1_1_soldier.jpg http://downloads.cardforge.link/images/tokens/w_1_1_soldier.jpg
+w_1_1_soldier_10e.jpg http://downloads.cardforge.link/images/tokens/w_1_1_soldier_10e.jpg
+w_1_1_soldier_ala.jpg http://downloads.cardforge.link/images/tokens/w_1_1_soldier_ala.jpg
+w_1_1_soldier_ally.jpg http://downloads.cardforge.link/images/tokens/w_1_1_soldier_ally.jpg
+w_1_1_soldier_bng.jpg http://downloads.cardforge.link/images/tokens/w_1_1_soldier_bng.jpg
+w_1_1_soldier_csp.jpg http://downloads.cardforge.link/images/tokens/w_1_1_soldier_csp.jpg
+w_1_1_soldier_m10.jpg http://downloads.cardforge.link/images/tokens/w_1_1_soldier_m10.jpg
+w_1_1_soldier_m12.jpg http://downloads.cardforge.link/images/tokens/w_1_1_soldier_m12.jpg
+w_1_1_soldier_m13.jpg http://downloads.cardforge.link/images/tokens/w_1_1_soldier_m13.jpg
+w_1_1_soldier_mrd.jpg http://downloads.cardforge.link/images/tokens/w_1_1_soldier_mrd.jpg
+w_1_1_soldier_plc.jpg http://downloads.cardforge.link/images/tokens/w_1_1_soldier_plc.jpg
+w_1_1_soldier_rtr.jpg http://downloads.cardforge.link/images/tokens/w_1_1_soldier_rtr.jpg
+w_1_1_soldier_som.jpg http://downloads.cardforge.link/images/tokens/w_1_1_soldier_som.jpg
+w_1_1_soldier_ths.jpg http://downloads.cardforge.link/images/tokens/w_1_1_soldier_ths.jpg
+w_1_1_soldier2_ths.jpg http://downloads.cardforge.link/images/tokens/w_1_1_soldier2_ths.jpg
+w_1_1_spirit.jpg http://downloads.cardforge.link/images/tokens/w_1_1_spirit.jpg
+w_1_1_spirit_avr.jpg http://downloads.cardforge.link/images/tokens/w_1_1_spirit_avr.jpg
+w_1_1_spirit_isd.jpg http://downloads.cardforge.link/images/tokens/w_1_1_spirit_isd.jpg
+w_1_1_spirit_mrd.jpg http://downloads.cardforge.link/images/tokens/w_1_1_spirit_mrd.jpg
+w_1_1_spirit_rav.jpg http://downloads.cardforge.link/images/tokens/w_1_1_spirit_rav.jpg
+w_1_1_spirit_shm.jpg http://downloads.cardforge.link/images/tokens/w_1_1_spirit_shm.jpg
+w_2_1_cleric.jpg http://downloads.cardforge.link/images/tokens/w_2_1_cleric.jpg
+w_2_2_cat.jpg http://downloads.cardforge.link/images/tokens/w_2_2_cat.jpg
+w_2_2_cat_m13.jpg http://downloads.cardforge.link/images/tokens/w_2_2_cat_m13.jpg
+w_2_2_cat_m14.jpg http://downloads.cardforge.link/images/tokens/w_2_2_cat_m14.jpg
+w_2_2_griffin.jpg http://downloads.cardforge.link/images/tokens/w_2_2_griffin.jpg
+w_2_2_knight.jpg http://downloads.cardforge.link/images/tokens/w_2_2_knight.jpg
+w_2_2_knight_first_strike.jpg http://downloads.cardforge.link/images/tokens/w_2_2_knight_first_strike.jpg
+w_2_2_knight_rtr.jpg http://downloads.cardforge.link/images/tokens/w_2_2_knight_rtr.jpg
+w_2_2_reflection.jpg http://downloads.cardforge.link/images/tokens/w_2_2_reflection.jpg
+w_3_3_bird.jpg http://downloads.cardforge.link/images/tokens/w_3_3_bird.jpg
+w_3_3_spirit.jpg http://downloads.cardforge.link/images/tokens/w_3_3_spirit.jpg
+w_4_4_angel.jpg http://downloads.cardforge.link/images/tokens/w_4_4_angel.jpg
+w_4_4_angel2_avr.jpg http://downloads.cardforge.link/images/tokens/w_4_4_angel2_avr.jpg
+w_4_4_angel_avr.jpg http://downloads.cardforge.link/images/tokens/w_4_4_angel_avr.jpg
+w_4_4_angel_cfx.jpg http://downloads.cardforge.link/images/tokens/w_4_4_angel_cfx.jpg
+w_4_4_angel_gtc.jpg http://downloads.cardforge.link/images/tokens/w_4_4_angel_gtc.jpg
+w_4_4_angel_isd.jpg http://downloads.cardforge.link/images/tokens/w_4_4_angel_isd.jpg
+w_4_4_angel_m14.jpg http://downloads.cardforge.link/images/tokens/w_4_4_angel_m14.jpg
+w_4_4_angel_zen.jpg http://downloads.cardforge.link/images/tokens/w_4_4_angel_zen.jpg
+w_4_4_elemental.jpg http://downloads.cardforge.link/images/tokens/w_4_4_elemental.jpg
+w_5_5_giant_warrior.jpg http://downloads.cardforge.link/images/tokens/w_5_5_giant_warrior.jpg
+w_n_n_avatar.jpg http://downloads.cardforge.link/images/tokens/w_n_n_avatar.jpg
+w_x_x_reflection.jpg http://downloads.cardforge.link/images/tokens/w_x_x_reflection.jpg
+wb_1_1_cleric.jpg http://downloads.cardforge.link/images/tokens/wb_1_1_cleric.jpg
+wb_1_1_spirit.jpg http://downloads.cardforge.link/images/tokens/wb_1_1_spirit.jpg
+wb_1_1_spirit_gtc.jpg http://downloads.cardforge.link/images/tokens/wb_1_1_spirit_gtc.jpg
+wrg_8_8_beast.jpg http://downloads.cardforge.link/images/tokens/wrg_8_8_beast.jpg
+wu_1_1_bird.jpg http://downloads.cardforge.link/images/tokens/wu_1_1_bird.jpg
# Emblems
-chandra_the_firebrand_effect.jpg http://www.cardforge.org/fpics/effects/chandra_the_firebrand_effect.jpg
-domri_rade_emblem.jpg http://www.cardforge.org/fpics/effects/domri_rade_emblem.jpg
-elspeth_knight_errant_emblem.jpg http://www.cardforge.org/fpics/effects/elspeth_knight_errant_emblem.jpg
-elspeth_suns_champion_emblem.jpg http://www.cardforge.org/fpics/effects/elspeth_suns_champion_emblem.jpg
-garruk_caller_of_beasts_emblem.jpg http://www.cardforge.org/fpics/effects/garruk_caller_of_beasts_emblem.jpg
-kiora_the_crashing_wave_emblem.jpg http://www.cardforge.org/fpics/effects/kiora_the_crashing_wave_emblem.jpg
-koth_of_the_hammer_emblem.jpg http://www.cardforge.org/fpics/effects/koth_of_the_hammer_emblem.jpg
-liliana_of_the_dark_realms_emblem.jpg http://www.cardforge.org/fpics/effects/liliana_of_the_dark_realms_emblem.jpg
-sorin_lord_of_innistrad_emblem.jpg http://www.cardforge.org/fpics/effects/sorin_lord_of_innistrad_emblem.jpg
-tamiyo_the_moon_sage_emblem.jpg http://www.cardforge.org/fpics/effects/tamiyo_the_moon_sage_emblem.jpg
-venser_the_sojourner_emblem.jpg http://www.cardforge.org/fpics/effects/venser_the_sojourner_emblem.jpg
+chandra_the_firebrand_effect.jpg http://downloads.cardforge.link/images/tokens/chandra_the_firebrand_effect.jpg
+domri_rade_emblem.jpg http://downloads.cardforge.link/images/tokens/domri_rade_emblem.jpg
+elspeth_knight_errant_emblem.jpg http://downloads.cardforge.link/images/tokens/elspeth_knight_errant_emblem.jpg
+elspeth_suns_champion_emblem.jpg http://downloads.cardforge.link/images/tokens/elspeth_suns_champion_emblem.jpg
+garruk_caller_of_beasts_emblem.jpg http://downloads.cardforge.link/images/tokens/garruk_caller_of_beasts_emblem.jpg
+kiora_the_crashing_wave_emblem.jpg http://downloads.cardforge.link/images/tokens/kiora_the_crashing_wave_emblem.jpg
+koth_of_the_hammer_emblem.jpg http://downloads.cardforge.link/images/tokens/koth_of_the_hammer_emblem.jpg
+liliana_of_the_dark_realms_emblem.jpg http://downloads.cardforge.link/images/tokens/liliana_of_the_dark_realms_emblem.jpg
+sorin_lord_of_innistrad_emblem.jpg http://downloads.cardforge.link/images/tokens/sorin_lord_of_innistrad_emblem.jpg
+tamiyo_the_moon_sage_emblem.jpg http://downloads.cardforge.link/images/tokens/tamiyo_the_moon_sage_emblem.jpg
+venser_the_sojourner_emblem.jpg http://downloads.cardforge.link/images/tokens/venser_the_sojourner_emblem.jpg
# Other
-hidden.jpg http://www.cardforge.org/fpics/effects/morph.jpg
-morph.jpg http://www.cardforge.link/data/images/effects/morph.jpg
-manifest.jpg http://www.cardforge.link/data/images/effects/manifest.jpg
\ No newline at end of file
+hidden.jpg http://downloads.cardforge.link/images/tokens/morph.jpg
+morph.jpg http://downloads.cardforge.link/images/tokens/morph.jpg
+manifest.jpg http://downloads.cardforge.link/images/tokens/manifest.jpg
\ No newline at end of file
diff --git a/forge-gui/res/lists/tournamentpack-images.txt b/forge-gui/res/lists/tournamentpack-images.txt
index abbaddededa..4bbc1ffa634 100644
--- a/forge-gui/res/lists/tournamentpack-images.txt
+++ b/forge-gui/res/lists/tournamentpack-images.txt
@@ -1,22 +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
+http://downloads.cardforge.link/images/products/tournamentpacks/2ED.jpg
+http://downloads.cardforge.link/images/products/tournamentpacks/3ED.jpg
+http://downloads.cardforge.link/images/products/tournamentpacks/4ED.jpg
+http://downloads.cardforge.link/images/products/tournamentpacks/5ED.jpg
+http://downloads.cardforge.link/images/products/tournamentpacks/6ED.jpg
+http://downloads.cardforge.link/images/products/tournamentpacks/ALA.jpg
+http://downloads.cardforge.link/images/products/tournamentpacks/CHK.jpg
+http://downloads.cardforge.link/images/products/tournamentpacks/ICE.jpg
+http://downloads.cardforge.link/images/products/tournamentpacks/INV.jpg
+http://downloads.cardforge.link/images/products/tournamentpacks/LEA.jpg
+http://downloads.cardforge.link/images/products/tournamentpacks/LEB.jpg
+http://downloads.cardforge.link/images/products/tournamentpacks/LRW.jpg
+http://downloads.cardforge.link/images/products/tournamentpacks/MIR.jpg
+http://downloads.cardforge.link/images/products/tournamentpacks/MMQ.jpg
+http://downloads.cardforge.link/images/products/tournamentpacks/MRD.jpg
+http://downloads.cardforge.link/images/products/tournamentpacks/ODY.jpg
+http://downloads.cardforge.link/images/products/tournamentpacks/ONS.jpg
+http://downloads.cardforge.link/images/products/tournamentpacks/RAV.jpg
+http://downloads.cardforge.link/images/products/tournamentpacks/SHM.jpg
+http://downloads.cardforge.link/images/products/tournamentpacks/TMP.jpg
+http://downloads.cardforge.link/images/products/tournamentpacks/TSP.jpg
+http://downloads.cardforge.link/images/products/tournamentpacks/USG.jpg
diff --git a/forge-gui/src/main/java/forge/download/GuiDownloadPicturesLQ.java b/forge-gui/src/main/java/forge/download/GuiDownloadPicturesLQ.java
index b97008ed971..c2168ea344c 100644
--- a/forge-gui/src/main/java/forge/download/GuiDownloadPicturesLQ.java
+++ b/forge-gui/src/main/java/forge/download/GuiDownloadPicturesLQ.java
@@ -17,17 +17,16 @@
*/
package forge.download;
-import java.io.File;
-import java.util.Map;
-import java.util.TreeMap;
-
-import org.apache.commons.lang3.StringUtils;
-
import forge.card.CardRules;
import forge.item.PaperCard;
import forge.model.FModel;
import forge.properties.ForgeConstants;
import forge.util.ImageUtil;
+import org.apache.commons.lang3.StringUtils;
+
+import java.io.File;
+import java.util.Map;
+import java.util.TreeMap;
public class GuiDownloadPicturesLQ extends GuiDownloadService {
@Override
@@ -37,7 +36,7 @@ public class GuiDownloadPicturesLQ extends GuiDownloadService {
@Override
protected final Map getNeededFiles() {
- final Map downloads = new TreeMap(String.CASE_INSENSITIVE_ORDER);
+ final Map downloads = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
for (final PaperCard c : FModel.getMagicDb().getCommonCards().getAllCards()) {
addDLObject(c, downloads, false);
@@ -78,7 +77,7 @@ public class GuiDownloadPicturesLQ extends GuiDownloadService {
final String urlToDownload;
int urlIndex = 0;
int allUrlsLen = 1;
- if (urls.indexOf("\\") < 0) {
+ if (!urls.contains("\\")) {
urlToDownload = urls;
} else {
final String[] allUrls = urls.split("\\\\");
@@ -87,7 +86,7 @@ public class GuiDownloadPicturesLQ extends GuiDownloadService {
urlToDownload = allUrls[urlIndex];
}
- //System.out.println(c.getName() + "|" + c.getEdition() + " - " + c.getArtIndex() + " -> " + urlIndex + "/" + allUrlsLen + " === " + filename + " <<< " + urlToDownload);
+ System.out.println(c.getName() + "|" + c.getEdition() + " - " + c.getArtIndex() + " -> " + urlIndex + "/" + allUrlsLen + " === " + filename + " <<< " + urlToDownload);
downloads.put(destFile.getAbsolutePath(), urlToDownload);
}
}
diff --git a/forge-gui/src/main/java/forge/download/GuiDownloadQuestImages.java b/forge-gui/src/main/java/forge/download/GuiDownloadQuestImages.java
index 710baf269d4..06161bc453f 100644
--- a/forge-gui/src/main/java/forge/download/GuiDownloadQuestImages.java
+++ b/forge-gui/src/main/java/forge/download/GuiDownloadQuestImages.java
@@ -6,12 +6,12 @@
* 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 .
*/
@@ -31,10 +31,9 @@ public class GuiDownloadQuestImages extends GuiDownloadService {
@Override
protected final Map getNeededFiles() {
// read all card names and urls
- final Map urls = new TreeMap(String.CASE_INSENSITIVE_ORDER);
+ final Map urls = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
addMissingItems(urls, ForgeConstants.IMAGE_LIST_QUEST_OPPONENT_ICONS_FILE, ForgeConstants.CACHE_ICON_PICS_DIR);
- addMissingItems(urls, ForgeConstants.IMAGE_LIST_QUEST_PET_SHOP_ICONS_FILE, ForgeConstants.CACHE_ICON_PICS_DIR);
addMissingItems(urls, ForgeConstants.IMAGE_LIST_QUEST_BOOSTERS_FILE, ForgeConstants.CACHE_BOOSTER_PICS_DIR);
addMissingItems(urls, ForgeConstants.IMAGE_LIST_QUEST_FATPACKS_FILE, ForgeConstants.CACHE_FATPACK_PICS_DIR);
addMissingItems(urls, ForgeConstants.IMAGE_LIST_QUEST_BOOSTERBOXES_FILE, ForgeConstants.CACHE_BOOSTERBOX_PICS_DIR);
diff --git a/forge-gui/src/main/java/forge/download/GuiDownloadService.java b/forge-gui/src/main/java/forge/download/GuiDownloadService.java
index 00797a28619..5753a9c721c 100644
--- a/forge-gui/src/main/java/forge/download/GuiDownloadService.java
+++ b/forge-gui/src/main/java/forge/download/GuiDownloadService.java
@@ -6,36 +6,18 @@
* 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.download;
-import java.io.File;
-import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.ConnectException;
-import java.net.HttpURLConnection;
-import java.net.InetSocketAddress;
-import java.net.MalformedURLException;
-import java.net.Proxy;
-import java.net.URL;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Random;
-
-import org.apache.commons.lang3.tuple.Pair;
-
import com.esotericsoftware.minlog.Log;
-
import forge.FThreads;
import forge.GuiBase;
import forge.UiCommand;
@@ -44,7 +26,12 @@ import forge.interfaces.IButton;
import forge.interfaces.IProgressBar;
import forge.interfaces.ITextField;
import forge.util.FileUtil;
-import forge.util.MyRandom;
+import org.apache.commons.lang3.tuple.Pair;
+
+import java.io.*;
+import java.net.*;
+import java.util.Map;
+import java.util.Map.Entry;
@SuppressWarnings("serial")
public abstract class GuiDownloadService implements Runnable {
@@ -183,7 +170,7 @@ public abstract class GuiDownloadService implements Runnable {
numNonzero--;
}
}
-
+
tptr++;
return tTime / Math.max(1, numNonzero);
}
@@ -201,7 +188,7 @@ public abstract class GuiDownloadService implements Runnable {
final int a = getAverageTimePerObject();
if (count != files.size()) {
- sb.append(count + "/" + files.size() + " - ");
+ sb.append(count).append("/").append(files.size()).append(" - ");
long t2Go = (files.size() - count) * a;
@@ -215,7 +202,7 @@ public abstract class GuiDownloadService implements Runnable {
} else {
sb.append("00:");
}
-
+
sb.append(String.format("%02d remaining.", t2Go / 1000));
}
else {
@@ -240,8 +227,7 @@ public abstract class GuiDownloadService implements Runnable {
@Override
public void run() {
- final Random r = MyRandom.getRandom();
-
+
Proxy p = getProxy();
int bufferLength;
@@ -270,6 +256,7 @@ public abstract class GuiDownloadService implements Runnable {
if (conn.getResponseCode() != HttpURLConnection.HTTP_OK) {
conn.disconnect();
+ System.out.println(url);
System.out.println("Skipped Download for: " + fileDest.getPath());
update(++iCard, fileDest);
skipped++;
@@ -308,12 +295,6 @@ public abstract class GuiDownloadService implements Runnable {
update(++iCard, fileDest);
- // throttle to reduce load on the server
- try {
- Thread.sleep(r.nextInt(50) + 50);
- } catch (final InterruptedException e) {
- Log.error("GuiDownloader", "Sleep Error", e);
- }
}
}
diff --git a/forge-gui/src/main/java/forge/download/GuiDownloadSetPicturesLQ.java b/forge-gui/src/main/java/forge/download/GuiDownloadSetPicturesLQ.java
index 9eb944aacb3..58c15b01029 100644
--- a/forge-gui/src/main/java/forge/download/GuiDownloadSetPicturesLQ.java
+++ b/forge-gui/src/main/java/forge/download/GuiDownloadSetPicturesLQ.java
@@ -17,19 +17,17 @@
*/
package forge.download;
-import java.io.File;
-import java.util.Map;
-import java.util.TreeMap;
-
-import org.apache.commons.lang3.StringUtils;
-
import com.google.common.collect.Iterables;
-
import forge.card.CardEdition;
import forge.item.PaperCard;
import forge.model.FModel;
import forge.properties.ForgeConstants;
import forge.util.ImageUtil;
+import org.apache.commons.lang3.StringUtils;
+
+import java.io.File;
+import java.util.Map;
+import java.util.TreeMap;
public class GuiDownloadSetPicturesLQ extends GuiDownloadService {
@Override
@@ -39,7 +37,7 @@ public class GuiDownloadSetPicturesLQ extends GuiDownloadService {
@Override
protected final Map getNeededFiles() {
- final Map downloads = new TreeMap(String.CASE_INSENSITIVE_ORDER);
+ final Map downloads = new TreeMap<>(String.CASE_INSENSITIVE_ORDER);
for (final PaperCard c : Iterables.concat(FModel.getMagicDb().getCommonCards().getAllCards(), FModel.getMagicDb().getVariantCards().getAllCards())) {
final String setCode3 = c.getEdition();
diff --git a/forge-gui/src/main/java/forge/limited/BoosterDraft.java b/forge-gui/src/main/java/forge/limited/BoosterDraft.java
index ca0d251bed1..5e1923f91a2 100644
--- a/forge-gui/src/main/java/forge/limited/BoosterDraft.java
+++ b/forge-gui/src/main/java/forge/limited/BoosterDraft.java
@@ -17,27 +17,12 @@
*/
package forge.limited;
-import java.io.File;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.NoSuchElementException;
-import java.util.Stack;
-import java.util.TreeMap;
-
-import org.apache.commons.lang3.ArrayUtils;
-
import com.google.common.base.Supplier;
-
import forge.card.CardEdition;
import forge.card.IUnOpenedProduct;
import forge.card.UnOpenedProduct;
import forge.deck.CardPool;
import forge.deck.Deck;
-import forge.game.card.Card;
-import forge.item.IPaperCard;
import forge.item.PaperCard;
import forge.item.SealedProduct;
import forge.model.CardBlock;
@@ -45,11 +30,14 @@ import forge.model.FModel;
import forge.properties.ForgeConstants;
import forge.properties.ForgePreferences;
import forge.util.FileUtil;
-import forge.util.HttpUtil;
import forge.util.ItemPool;
import forge.util.gui.SGuiChoose;
import forge.util.gui.SOptionPane;
import forge.util.storage.IStorage;
+import org.apache.commons.lang3.ArrayUtils;
+
+import java.io.File;
+import java.util.*;
/**
* Booster Draft Format.
@@ -65,10 +53,10 @@ public class BoosterDraft implements IBoosterDraft {
private List> pack; // size 8
/** The draft picks. */
- private final Map draftPicks = new TreeMap();
+ private final Map draftPicks = new TreeMap<>();
protected LimitedPoolType draftFormat;
- protected final List>> product = new ArrayList>>();
+ protected final List>> product = new ArrayList<>();
public static BoosterDraft createDraft(final LimitedPoolType draftType) {
final BoosterDraft draft = new BoosterDraft(draftType);
@@ -89,7 +77,7 @@ public class BoosterDraft implements IBoosterDraft {
case Block: // Draft from cards by block or set
case FantasyBlock:
- final List blocks = new ArrayList();
+ final List blocks = new ArrayList<>();
final IStorage storage = this.draftFormat == LimitedPoolType.Block
? FModel.getBlocks()
: FModel.getFantasyBlocks();
@@ -109,7 +97,7 @@ public class BoosterDraft implements IBoosterDraft {
return false;
}
- final Stack sets = new Stack();
+ final Stack sets = new Stack<>();
for (int k = cardSets.size() - 1; k >= 0; k--) {
sets.add(cardSets.get(k).getCode());
}
@@ -167,10 +155,8 @@ public class BoosterDraft implements IBoosterDraft {
public static BoosterDraft createDraft(final LimitedPoolType draftType, final CardBlock block, final String[] boosters) {
final BoosterDraft draft = new BoosterDraft(draftType);
- final int nPacks = boosters.length;
-
- for (int i = 0; i < nPacks; i++) {
- draft.product.add(block.getBooster(boosters[i]));
+ for (String booster : boosters) {
+ draft.product.add(block.getBooster(booster));
}
IBoosterDraft.LAND_SET_CODE[0] = block.getLandSet();
@@ -215,7 +201,7 @@ public class BoosterDraft implements IBoosterDraft {
/** Looks for draft files, reads them, returns a list. */
private static List loadCustomDrafts() {
String[] dList;
- final List customs = new ArrayList();
+ final List customs = new ArrayList<>();
// get list of custom draft files
final File dFolder = new File(ForgeConstants.DRAFT_DIR);
@@ -247,7 +233,7 @@ public class BoosterDraft implements IBoosterDraft {
*/
@Override
public CardPool nextChoice() {
- if (this.pack.get(this.getCurrentBoosterIndex()).size() == 0) {
+ if (this.pack.get(this.getCurrentBoosterIndex()).isEmpty()) {
this.pack = this.get8BoosterPack();
}
@@ -269,7 +255,7 @@ public class BoosterDraft implements IBoosterDraft {
return null;
}
- final List> list = new ArrayList>();
+ final List> list = new ArrayList<>();
for (int i = 0; i < 8; i++) {
list.add(this.product.get(this.nextBoosterGroup).get());
}
@@ -298,12 +284,7 @@ public class BoosterDraft implements IBoosterDraft {
final int iHumansBooster = this.getCurrentBoosterIndex();
int iPlayer = 0;
for (int i = 1; i < this.pack.size(); i++) {
- final List forAi = new ArrayList();
final List booster = this.pack.get((iHumansBooster + i) % this.pack.size());
- for (final IPaperCard cr : booster) {
- forAi.add(Card.getCardForUi(cr)); // ai is supposed to analyze it only
- }
-
final PaperCard aiPick = this.draftAI.choose(booster, iPlayer++);
booster.remove(aiPick);
}
@@ -348,7 +329,7 @@ public class BoosterDraft implements IBoosterDraft {
final PaperCard cc = thisBooster.get(i);
final String cnBk = cc.getName() + "|" + cc.getEdition();
- float pickValue = 0;
+ float pickValue;
if (cc.equals(c)) {
pickValue = thisBooster.size()
* (1f - (((float) this.currentBoosterPick / this.currentBoosterSize) * 2f));
@@ -372,21 +353,6 @@ public class BoosterDraft implements IBoosterDraft {
this.currentBoosterPick++;
} // setChoice()
- /** This will upload drafting picks to cardforge HQ. */
- @Override
- public void finishedDrafting() {
- if (!ForgePreferences.UPLOAD_DRAFT || 1 >= draftPicks.size()) {
- return;
- }
-
- final List outDraftData = new ArrayList();
- for (final Entry key : draftPicks.entrySet()) {
- outDraftData.add(key.getValue() + "|" + key.getKey());
- }
- Collections.sort(outDraftData);
- HttpUtil.upload(ForgeConstants.URL_DRAFT_UPLOAD + "?fmt=" + draftFormat, outDraftData);
- }
-
@Override
public boolean isPileDraft() {
return false;
@@ -394,7 +360,7 @@ public class BoosterDraft implements IBoosterDraft {
private static List getSetCombos(final List setz) {
final String[] sets = setz.toArray(ArrayUtils.EMPTY_STRING_ARRAY);
- final List setCombos = new ArrayList();
+ final List setCombos = new ArrayList<>();
if (sets.length >= 2) {
setCombos.add(String.format("%s/%s/%s", sets[0], sets[0], sets[0]));
setCombos.add(String.format("%s/%s/%s", sets[0], sets[0], sets[1]));
diff --git a/forge-gui/src/main/java/forge/limited/IBoosterDraft.java b/forge-gui/src/main/java/forge/limited/IBoosterDraft.java
index 268ffb68a17..ad01e15f73d 100644
--- a/forge-gui/src/main/java/forge/limited/IBoosterDraft.java
+++ b/forge-gui/src/main/java/forge/limited/IBoosterDraft.java
@@ -6,12 +6,12 @@
* 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 .
*/
@@ -26,7 +26,7 @@ import forge.item.PaperCard;
*
* BoosterDraft interface.
*
- *
+ *
* @author Forge
* @version $Id$
*/
@@ -35,8 +35,8 @@ public interface IBoosterDraft {
*
* nextChoice.
*
- *
- * @return a {@link forge.CardList} object.
+ *
+ * @return a {@link CardPool} object.
*/
CardPool nextChoice();
@@ -44,7 +44,7 @@ public interface IBoosterDraft {
*
* setChoice.
*
- *
+ *
* @param c
* a {@link forge.game.card.Card} object.
*/
@@ -54,7 +54,7 @@ public interface IBoosterDraft {
*
* hasNextChoice.
*
- *
+ *
* @return a boolean.
*/
boolean hasNextChoice();
@@ -63,7 +63,7 @@ public interface IBoosterDraft {
*
* getDecks.
*
- *
+ *
* @return an array of {@link forge.deck.Deck} objects.
*/
Deck[] getDecks(); // size 7, all the computers decks
@@ -71,11 +71,6 @@ public interface IBoosterDraft {
/** Constant LandSetCode="{}". */
CardEdition[] LAND_SET_CODE = { null };
- /**
- * Called when drafting is over - to upload picks.
- */
- void finishedDrafting();
-
boolean isPileDraft();
}
diff --git a/forge-gui/src/main/java/forge/model/FModel.java b/forge-gui/src/main/java/forge/model/FModel.java
index 16101849c2d..ed881c01267 100644
--- a/forge-gui/src/main/java/forge/model/FModel.java
+++ b/forge-gui/src/main/java/forge/model/FModel.java
@@ -17,21 +17,12 @@
*/
package forge.model;
-import java.io.File;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
import forge.CardStorageReader;
import forge.CardStorageReader.ProgressObserver;
import forge.FThreads;
import forge.ImageKeys;
import forge.StaticData;
-import forge.achievement.AchievementCollection;
-import forge.achievement.ConstructedAchievements;
-import forge.achievement.DraftAchievements;
-import forge.achievement.QuestAchievements;
-import forge.achievement.SealedAchievements;
+import forge.achievement.*;
import forge.ai.AiProfileUtil;
import forge.card.CardPreferences;
import forge.card.CardType;
@@ -57,6 +48,11 @@ import forge.util.Localizer;
import forge.util.storage.IStorage;
import forge.util.storage.StorageBase;
+import java.io.File;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
/**
* The default Model implementation for Forge.
*
@@ -66,7 +62,7 @@ import forge.util.storage.StorageBase;
* In case we need to convert it into an interface in the future, all fields of
* this class must be either private or public static final.
*/
-public class FModel {
+public final class FModel {
private FModel() { } //don't allow creating instance
private static StaticData magicDb;
@@ -152,14 +148,14 @@ public class FModel {
}
ForgePreferences.DEV_MODE = preferences.getPrefBoolean(FPref.DEV_MODE_ENABLED);
- ForgePreferences.UPLOAD_DRAFT = ForgePreferences.NET_CONN; // && preferences.getPrefBoolean(FPref.UI_UPLOAD_DRAFT);
+ ForgePreferences.UPLOAD_DRAFT = ForgePreferences.NET_CONN;
formats = new GameFormat.Collection(new GameFormat.Reader(new File(ForgeConstants.BLOCK_DATA_DIR + "formats.txt")));
- blocks = new StorageBase("Block definitions", new CardBlock.Reader(ForgeConstants.BLOCK_DATA_DIR + "blocks.txt", magicDb.getEditions()));
+ blocks = new StorageBase<>("Block definitions", new CardBlock.Reader(ForgeConstants.BLOCK_DATA_DIR + "blocks.txt", magicDb.getEditions()));
questPreferences = new QuestPreferences();
conquestPreferences = new ConquestPreferences();
- fantasyBlocks = new StorageBase("Custom blocks", new CardBlock.Reader(ForgeConstants.BLOCK_DATA_DIR + "fantasyblocks.txt", magicDb.getEditions()));
- worlds = new StorageBase("Quest worlds", new QuestWorld.Reader(ForgeConstants.QUEST_WORLD_DIR + "worlds.txt"));
+ fantasyBlocks = new StorageBase<>("Custom blocks", new CardBlock.Reader(ForgeConstants.BLOCK_DATA_DIR + "fantasyblocks.txt", magicDb.getEditions()));
+ worlds = new StorageBase<>("Quest worlds", new QuestWorld.Reader(ForgeConstants.QUEST_WORLD_DIR + "worlds.txt"));
loadDynamicGamedata();
@@ -180,7 +176,7 @@ public class FModel {
DeckPreferences.load();
ItemManagerConfig.load();
- achievements = new HashMap();
+ achievements = new HashMap<>();
achievements.put(GameType.Constructed, new ConstructedAchievements());
achievements.put(GameType.Draft, new DraftAchievements());
achievements.put(GameType.Sealed, new SealedAchievements());
@@ -209,7 +205,7 @@ public class FModel {
List tList = null;
- if (typeListFile.size() > 0) {
+ if (!typeListFile.isEmpty()) {
for (final String s : typeListFile) {
if (s.equals("[BasicTypes]")) {
tList = CardType.Constant.BASIC_TYPES;
@@ -226,7 +222,9 @@ public class FModel {
} else if (s.equals("[WalkerTypes]")) {
tList = CardType.Constant.WALKER_TYPES;
} else if (s.length() > 1) {
- tList.add(s);
+ if (tList != null) {
+ tList.add(s);
+ }
}
}
}
diff --git a/forge-gui/src/main/java/forge/properties/ForgeConstants.java b/forge-gui/src/main/java/forge/properties/ForgeConstants.java
index 54f9a700a3d..2ab1b1e072c 100644
--- a/forge-gui/src/main/java/forge/properties/ForgeConstants.java
+++ b/forge-gui/src/main/java/forge/properties/ForgeConstants.java
@@ -6,12 +6,12 @@
* 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 .
*/
@@ -33,7 +33,6 @@ public final class ForgeConstants {
public static final String TYPE_LIST_FILE = LISTS_DIR + "TypeLists.txt";
public static final String IMAGE_LIST_TOKENS_FILE = LISTS_DIR + "token-images.txt";
public static final String IMAGE_LIST_QUEST_OPPONENT_ICONS_FILE = LISTS_DIR + "quest-opponent-icons.txt";
- public static final String IMAGE_LIST_QUEST_PET_SHOP_ICONS_FILE = LISTS_DIR + "quest-pet-shop-icons.txt";
public static final String IMAGE_LIST_QUEST_TOKENS_FILE = LISTS_DIR + "quest-pet-token-images.txt";
public static final String IMAGE_LIST_QUEST_BOOSTERS_FILE = LISTS_DIR + "booster-images.txt";
public static final String IMAGE_LIST_QUEST_FATPACKS_FILE = LISTS_DIR + "fatpack-images.txt";
@@ -74,12 +73,12 @@ public final class ForgeConstants {
public static final String SKINS_DIR = RES_DIR + "skins/";
public static final String DEFAULT_SKINS_DIR = SKINS_DIR + "default/";
//don't associate these skin files with a directory since skin directory will be determined later
- public static final String SPRITE_ICONS_FILE = "sprite_icons.png";
+ public static final String SPRITE_ICONS_FILE = "sprite_icons.png";
public static final String SPRITE_FOILS_FILE = "sprite_foils.png";
public static final String SPRITE_OLD_FOILS_FILE = "sprite_old_foils.png";
public static final String SPRITE_TROPHIES_FILE = "sprite_trophies.png";
public static final String SPRITE_AVATARS_FILE = "sprite_avatars.png";
- public static final String SPRITE_PLANAR_CONQUEST_FILE = "sprite_planar_conquest.png";
+ public static final String SPRITE_PLANAR_CONQUEST_FILE = "sprite_planar_conquest.png";
public static final String FONT_FILE = "font1.ttf";
public static final String SPLASH_BG_FILE = "bg_splash.png";
public static final String MATCH_BG_FILE = "bg_match.jpg";
@@ -175,8 +174,7 @@ public final class ForgeConstants {
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";
+ private static final String URL_CARDFORGE = "http://downloads.cardforge.link";
+ public static final String URL_PIC_DOWNLOAD = URL_CARDFORGE + "/images/cards/";
+ public static final String URL_PRICE_DOWNLOAD = "http://www.cardforge.org/MagicInfo/pricegen.php";
}
diff --git a/forge-gui/tools/cardTemplateScript.py b/forge-gui/tools/cardTemplateScript.py
index 46af5695d21..de79a7cb582 100755
--- a/forge-gui/tools/cardTemplateScript.py
+++ b/forge-gui/tools/cardTemplateScript.py
@@ -59,7 +59,7 @@ def initKeywords():
keyWords.append('Undying')
keyWords.append('Vigilance')
keyWords.append('Wither')
-
+
def handleKeyords(line,keywords):
# split line by spaces to see if first token matches a keyword
@@ -80,7 +80,7 @@ def handleKeyords(line,keywords):
allKeywords = False
return allKeywords
-
+
if not os.path.exists(pathToMtgData) :
print("This script requires the text version of Arch's mtg-data to be present.You can download it from slightlymagic.net's forum and either place the text version next to this script or edit this script and provide the path to the file at the top.")
print("Press Enter to exit")
@@ -156,7 +156,7 @@ while line:
card.sets = prevLine.rstrip()
# store Card object in hash table
mtgDataCards[cardName] = card
-
+
inputName = raw_input("Enter Card Name: ")
inputName = inputName.rstrip()
while inputName != 'quit' :
@@ -178,7 +178,7 @@ while inputName != 'quit' :
vangModifier = cardData.pt.replace('Hand ','')
vangModifier = vangModifier.replace(', life ','/')
print 'HandLifeModifier:'+vangModifier
-
+
for text in cardData.oracle :
# do some prescripting
tokens = line.split(' ');
@@ -204,9 +204,9 @@ while inputName != 'quit' :
print text
#print "\n"
if cardData.types.find('Scheme') != -1 :
- print 'SVar:Picture:http://www.cardforge.org/fpics/lq_schemes/'+cleanName+'.jpg'
+ print 'SVar:Picture:http://downloads.cardforge.link/images/cards/HOP/'+cardData.name+'.jpg'
elif cardData.types.find('Vanguard') != -1 :
- print 'SVar:Picture:http://www.cardforge.org/fpics/vgd-lq/'+cleanName+'.jpg'
+ print 'SVar:Picture:http://downloads.cardforge.link/images/cards/VAN/'+cardData.name+'.full.jpg'
else :
print 'SVar:Picture:http://www.wizards.com/global/images/magic/general/'+cleanName+'.jpg'
print '\n'
diff --git a/pom.xml b/pom.xml
index d9b0a365516..6ff1e43011a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,7 +23,7 @@
Mantis
- http://cardforge.org/bugz
+ http://bugs.cardforge.link/