diff --git a/forge-core/src/main/java/forge/item/PaperToken.java b/forge-core/src/main/java/forge/item/PaperToken.java index 8cb8fb065b4..9a2648d484d 100644 --- a/forge-core/src/main/java/forge/item/PaperToken.java +++ b/forge-core/src/main/java/forge/item/PaperToken.java @@ -72,14 +72,14 @@ public class PaperToken implements InventoryItemFromSet, IPaperCard { } // TODO make better image file names when collector number is known // for the right index, we need to count the ones with wrong collector number too - this.imageFileName.add(String.format("%s|%s|%s|%d", imageFileName, edition.getCode().toLowerCase(), collectorNumber, idx)); + this.imageFileName.add(String.format("%s|%s|%s|%d", imageFileName, edition.getCode(), collectorNumber, idx)); } this.artIndex = this.imageFileName.size(); } else if (null == edition || CardEdition.UNKNOWN == edition) { this.imageFileName.add(imageFileName); } else { // Fallback if CollectorNumber is not used - this.imageFileName.add(String.format("%s|%s", imageFileName, edition.getCode().toLowerCase())); + this.imageFileName.add(String.format("%s|%s", imageFileName, edition.getCode())); } } diff --git a/forge-core/src/main/java/forge/token/TokenDb.java b/forge-core/src/main/java/forge/token/TokenDb.java index 7f8051b18f4..b0d5e2c8d65 100644 --- a/forge-core/src/main/java/forge/token/TokenDb.java +++ b/forge-core/src/main/java/forge/token/TokenDb.java @@ -75,6 +75,17 @@ public class TokenDb implements ITokenDatabase { return new PaperToken(rulesByName.get(name), edition, name, t.collectorNumber, t.artistName); } + // try all editions to find token + protected PaperToken fallbackToken(String name) { + for (CardEdition edition : this.editions) { + String fullName = String.format("%s_%s", name, edition.getCode().toLowerCase()); + if (loadTokenFromSet(edition, name)) { + return Aggregates.random(allTokenByName.get(fullName)); + } + } + return null; + } + @Override public PaperToken getToken(String tokenName) { return getToken(tokenName, CardEdition.UNKNOWN.getCode()); @@ -89,6 +100,10 @@ public class TokenDb implements ITokenDatabase { if (loadTokenFromSet(realEdition, tokenName)) { return Aggregates.random(allTokenByName.get(fullName)); } + PaperToken fallback = this.fallbackToken(tokenName); + if (fallback != null) { + return fallback; + } if (!extraTokensByName.containsKey(fullName)) { try {