uppercase token set and fallback token

This commit is contained in:
Hans Mackowiak
2025-05-05 22:31:39 +02:00
committed by Chris H
parent 56832ff987
commit 3605b4e34e
2 changed files with 17 additions and 2 deletions

View File

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

View File

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