From b7ea7675a4d788ec2799fcb12963ca9f7e4b2ead Mon Sep 17 00:00:00 2001 From: drdev Date: Wed, 16 Jul 2014 23:23:18 +0000 Subject: [PATCH] Fix issue that preventing starting quest mode if there was a flaw in the price list --- .../src/main/java/forge/quest/QuestSpellShop.java | 12 ++++++++---- .../src/main/java/forge/quest/io/ReadPriceList.java | 6 ++++-- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/forge-gui/src/main/java/forge/quest/QuestSpellShop.java b/forge-gui/src/main/java/forge/quest/QuestSpellShop.java index 2ff65490930..f2adf1c4b55 100644 --- a/forge-gui/src/main/java/forge/quest/QuestSpellShop.java +++ b/forge-gui/src/main/java/forge/quest/QuestSpellShop.java @@ -33,8 +33,7 @@ import forge.util.ItemPool; import forge.util.gui.SOptionPane; public class QuestSpellShop { - private static final ReadPriceList r = new ReadPriceList(); - private static final Map mapPrices = r.getPriceList(); + private static Map mapPrices; private static double multiplier; private static ItemPool decksUsingMyCards; @@ -47,13 +46,18 @@ public class QuestSpellShop { if (card instanceof PaperCard) { ns = card.getName() + "|" + ((PaperCard) card).getEdition(); foil = ((PaperCard) card).isFoil(); - } else { + } + else { ns = card.getName(); } + if (mapPrices == null) { //initialize price map if not already done + mapPrices = new ReadPriceList().getPriceList(); + } if (mapPrices.containsKey(ns)) { value = mapPrices.get(ns); - } else if (card instanceof PaperCard) { + } + else if (card instanceof PaperCard) { switch (((IPaperCard) card).getRarity()) { case BasicLand: value = 4; diff --git a/forge-gui/src/main/java/forge/quest/io/ReadPriceList.java b/forge-gui/src/main/java/forge/quest/io/ReadPriceList.java index d4af663e1c4..0b327f25640 100644 --- a/forge-gui/src/main/java/forge/quest/io/ReadPriceList.java +++ b/forge-gui/src/main/java/forge/quest/io/ReadPriceList.java @@ -60,7 +60,6 @@ public class ReadPriceList { private void setup() { this.priceMap = this.readFile(ForgeConstants.QUEST_CARD_PRICE_FILE); this.priceMap.putAll(this.readFile(ForgeConstants.PRICES_BOOSTER_FILE)); - } // setup() /** @@ -87,6 +86,8 @@ public class ReadPriceList { } final String[] s = line.split("="); + if (s.length < 2) { continue; } //skip line if not in correct format + final String name = s[0].trim(); final String price = s[1].trim(); @@ -97,7 +98,8 @@ public class ReadPriceList { float ff = 0; if (r.nextInt(100) < 90) { ff = r.nextInt(10) * (float) .01; - } else { + } + else { // +/- 50% ff = r.nextInt(50) * (float) .01; }