diff --git a/forge-core/src/main/java/forge/util/ImageUtil.java b/forge-core/src/main/java/forge/util/ImageUtil.java index 24998c875cd..f13067faf53 100644 --- a/forge-core/src/main/java/forge/util/ImageUtil.java +++ b/forge-core/src/main/java/forge/util/ImageUtil.java @@ -161,6 +161,10 @@ public class ImageUtil { } public static String getScryfallDownloadUrl(PaperCard cp, String face, String setCode, String langCode, boolean useArtCrop){ + return getScryfallDownloadUrl(cp, face, setCode, langCode, useArtCrop, false); + } + + public static String getScryfallDownloadUrl(PaperCard cp, String face, String setCode, String langCode, boolean useArtCrop, boolean hyphenateAlchemy){ String editionCode; if ((setCode != null) && (setCode.length() > 0)) editionCode = setCode; @@ -179,6 +183,12 @@ public class ImageUtil { } else if (cardCollectorNumber.startsWith("OPC2")) { editionCode = "opc2"; cardCollectorNumber = cardCollectorNumber.substring("OPC2".length()); + } else if (hyphenateAlchemy) { + if (!cardCollectorNumber.startsWith("A")) { + return null; + } + + cardCollectorNumber = cardCollectorNumber.replace("A", "A-"); } String versionParam = useArtCrop ? "art_crop" : "normal"; String faceParam = ""; diff --git a/forge-gui/src/main/java/forge/util/ImageFetcher.java b/forge-gui/src/main/java/forge/util/ImageFetcher.java index b7d800bf031..942fe159261 100644 --- a/forge-gui/src/main/java/forge/util/ImageFetcher.java +++ b/forge-gui/src/main/java/forge/util/ImageFetcher.java @@ -65,13 +65,18 @@ public abstract class ImageFetcher { } } } - return null; } else { String setCode = edition.getScryfallCode(); String langCode = edition.getCardsLangCode(); - return ForgeConstants.URL_PIC_SCRYFALL_DOWNLOAD + - ImageUtil.getScryfallDownloadUrl(c, face, setCode, langCode, useArtCrop); + String primaryUrl = ImageUtil.getScryfallDownloadUrl(c, face, setCode, langCode, useArtCrop); + downloadUrls.add(ForgeConstants.URL_PIC_SCRYFALL_DOWNLOAD + primaryUrl); + + String alternateUrl = ImageUtil.getScryfallDownloadUrl(c, face, setCode, langCode, useArtCrop, true); + if (alternateUrl != null && !alternateUrl.equals(primaryUrl)) { + downloadUrls.add(ForgeConstants.URL_PIC_SCRYFALL_DOWNLOAD + alternateUrl); + } } + return null; } public void fetchImage(final String imageKey, final Callback callback) { @@ -205,9 +210,8 @@ public abstract class ImageFetcher { } final String cardCollectorNumber = paperCard.getCollectorNumber(); if (!cardCollectorNumber.equals(IPaperCard.NO_COLLECTOR_NUMBER)) { - final String scryfallURL = this.getScryfallDownloadURL(paperCard, face, useArtCrop, hasSetLookup, filename, downloadUrls); - if (scryfallURL != null && !hasSetLookup) - downloadUrls.add(scryfallURL); + // This function adds to downloadUrls for us + this.getScryfallDownloadURL(paperCard, face, useArtCrop, hasSetLookup, filename, downloadUrls); } } else if (prefix.equals(ImageKeys.TOKEN_PREFIX)) { if (tokenImages == null) {