From 3415d76b40b04779f0055b43630abc601193d44a Mon Sep 17 00:00:00 2001 From: "Jamin W. Collins" Date: Wed, 28 Feb 2018 18:40:57 -0700 Subject: [PATCH] allow ALL cards to be (de)serialized This is needed by network play variants like: - Vanguard - Planechase Signed-off-by: Jamin W. Collins --- forge-core/src/main/java/forge/StaticData.java | 9 ++++++++- forge-core/src/main/java/forge/item/PaperCard.java | 2 +- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/forge-core/src/main/java/forge/StaticData.java b/forge-core/src/main/java/forge/StaticData.java index 5bf271be201..57411a0434b 100644 --- a/forge-core/src/main/java/forge/StaticData.java +++ b/forge-core/src/main/java/forge/StaticData.java @@ -29,6 +29,7 @@ public class StaticData { private final String blockDataFolder; private final CardDb commonCards; private final CardDb variantCards; + private final CardDb allCards; private final TokenDb allTokens; private final CardEdition.Collection editions; @@ -54,6 +55,7 @@ public class StaticData { lastInstance = this; { + final Map allCardsMap = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); final Map regularCards = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); final Map variantsCards = new TreeMap<>(String.CASE_INSENSITIVE_ORDER); @@ -61,6 +63,7 @@ public class StaticData { if (null == card) continue; final String cardName = card.getName(); + allCardsMap.put(cardName, card); if (card.isVariant()) { variantsCards.put(cardName, card); } else { @@ -68,10 +71,12 @@ public class StaticData { } } + allCards = new CardDb(allCardsMap, editions); commonCards = new CardDb(regularCards, editions); variantCards = new CardDb(variantsCards, editions); - //muse initialize after establish field values for the sake of card image logic + //must initialize after establish field values for the sake of card image logic + allCards.initialize(false, false); commonCards.initialize(false, false); variantCards.initialize(false, false); } @@ -184,6 +189,8 @@ public class StaticData { return variantCards; } + public CardDb getAllCards() { return allCards; } + public TokenDb getAllTokens() { return allTokens; } public PaperCard getCardByEditionDate(PaperCard card, Date editionDate) { diff --git a/forge-core/src/main/java/forge/item/PaperCard.java b/forge-core/src/main/java/forge/item/PaperCard.java index 17d113d723b..c77903541ed 100644 --- a/forge-core/src/main/java/forge/item/PaperCard.java +++ b/forge-core/src/main/java/forge/item/PaperCard.java @@ -212,7 +212,7 @@ public final class PaperCard implements Comparable, InventoryItemFro // default deserialization ois.defaultReadObject(); - final IPaperCard pc = StaticData.instance().getCommonCards().getCard(name, edition, artIndex); + final IPaperCard pc = StaticData.instance().getAllCards().getCard(name, edition, artIndex); if (pc == null) { throw new IOException(TextUtil.concatWithSpace("Card", name, "not found")); }