diff --git a/src/main/java/forge/item/CardDb.java b/src/main/java/forge/item/CardDb.java index 6faa7e9df36..a6e35c7fed0 100644 --- a/src/main/java/forge/item/CardDb.java +++ b/src/main/java/forge/item/CardDb.java @@ -150,14 +150,18 @@ public final class CardDb { } public CardPrinted tryGetCard(final String cardName, String setName) { + return tryGetCard(cardName, setName, 0); + } + + public CardPrinted tryGetCard(final String cardName, String setName, int index) { // Set exists? - final Map cardsFromset = this.allCardsBySet.get(setName.toUpperCase()); + final Map cardsFromset = this.allCardsBySet.get(setName); if (cardsFromset == null) { return null; } // Card exists? - final CardPrinted[] cardCopies = cardsFromset.get(cardName.toLowerCase()); - return cardCopies != null ? cardCopies[0] : null; + final CardPrinted[] cardCopies = cardsFromset.get(cardName); + return cardCopies != null && index < cardCopies.length ? cardCopies[index] : null; } // Single fetch diff --git a/src/main/java/forge/quest/io/QuestDataIO.java b/src/main/java/forge/quest/io/QuestDataIO.java index 16ff1cdd8e3..d13d5eb6185 100644 --- a/src/main/java/forge/quest/io/QuestDataIO.java +++ b/src/main/java/forge/quest/io/QuestDataIO.java @@ -669,8 +669,9 @@ public class QuestDataIO { final String sIndex = reader.getAttribute("i"); final short index = StringUtils.isNumeric(sIndex) ? Short.parseShort(sIndex) : 0; final boolean foil = "1".equals(reader.getAttribute("foil")); - final CardPrinted card = CardDb.instance().getCard(name, set, index); - return foil ? CardPrinted.makeFoiled(card) : card; + CardPrinted c = CardDb.instance().tryGetCard(name, set, index); + if ( null == c ) c = CardDb.instance().getCard(name); + return foil ? CardPrinted.makeFoiled(c) : c; } } }