From 239f49c53d0c00cbc5d24de3479d392f401cb33f Mon Sep 17 00:00:00 2001 From: Sol Date: Mon, 29 Sep 2014 23:55:44 +0000 Subject: [PATCH] - Add a Quest Preference for Item Level Restriction, defaulting to enabled (1). --- .../forge/screens/home/quest/QuestPreferencesHandler.java | 3 +++ .../java/forge/screens/home/quest/VSubmenuQuestPrefs.java | 3 +++ .../main/java/forge/quest/bazaar/QuestPetController.java | 5 ++++- .../src/main/java/forge/quest/data/QuestPreferences.java | 8 +++++++- 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/QuestPreferencesHandler.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/QuestPreferencesHandler.java index 29fc2572e1b..1dbc10bd914 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/QuestPreferencesHandler.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/QuestPreferencesHandler.java @@ -234,6 +234,9 @@ public class QuestPreferencesHandler extends SkinnedPanel { pnlShop.add(new FLabel.Builder().text("Rare Singles").build(), constraints2); pnlShop.add(new PrefInput(QPref.SHOP_SINGLES_RARE, ErrType.SHOP), constraints1); + pnlShop.add(new FLabel.Builder().text("Item Level Restriction").build(), constraints2); + pnlShop.add(new PrefInput(QPref.ITEM_LEVEL_RESTRICTION, ErrType.SHOP), constraints1); + constraints1 = "w 100%!, gap 0 0 20px 0"; this.add(pnlRewards, constraints1); this.add(pnlDifficulty, constraints1); diff --git a/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuQuestPrefs.java b/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuQuestPrefs.java index 3f33e6143b6..e280c4107e6 100644 --- a/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuQuestPrefs.java +++ b/forge-gui-desktop/src/main/java/forge/screens/home/quest/VSubmenuQuestPrefs.java @@ -371,6 +371,9 @@ public enum VSubmenuQuestPrefs implements IVSubmenu { pnlShop.add(new FLabel.Builder().text("Rare Singles").fontAlign(SwingConstants.RIGHT).build(), constraints2); pnlShop.add(new PrefInput(QPref.SHOP_SINGLES_RARE, QuestPreferencesErrType.SHOP), constraints1); + + pnlShop.add(new FLabel.Builder().text("Item Level Restriction").fontAlign(SwingConstants.RIGHT).build(), constraints2); + pnlShop.add(new PrefInput(QPref.ITEM_LEVEL_RESTRICTION, QuestPreferencesErrType.SHOP), constraints1); } diff --git a/forge-gui/src/main/java/forge/quest/bazaar/QuestPetController.java b/forge-gui/src/main/java/forge/quest/bazaar/QuestPetController.java index 2177fe81e20..6d3d12d6280 100644 --- a/forge-gui/src/main/java/forge/quest/bazaar/QuestPetController.java +++ b/forge-gui/src/main/java/forge/quest/bazaar/QuestPetController.java @@ -24,9 +24,11 @@ import com.thoughtworks.xstream.annotations.XStreamAlias; import com.thoughtworks.xstream.annotations.XStreamAsAttribute; import forge.item.PaperToken; +import forge.model.FModel; import forge.properties.ForgeConstants; import forge.quest.QuestController; import forge.quest.data.QuestAssets; +import forge.quest.data.QuestPreferences; /** *

@@ -243,7 +245,8 @@ public class QuestPetController implements IQuestBazaarItem { @Override public boolean isAvailableForPurchase(final QuestAssets qA, QuestController qCtrl) { return this.getPetLevel(qA) < this.getMaxLevel() && - (qCtrl == null || qCtrl.getLevel() >= this.getPetLevel(qA)); + (qCtrl == null || qCtrl.getLevel() >= this.getPetLevel(qA) || + FModel.getQuestPreferences().getPrefInt(QuestPreferences.QPref.ITEM_LEVEL_RESTRICTION) == 0); } /** diff --git a/forge-gui/src/main/java/forge/quest/data/QuestPreferences.java b/forge-gui/src/main/java/forge/quest/data/QuestPreferences.java index a9595a2b1bf..01958711d68 100644 --- a/forge-gui/src/main/java/forge/quest/data/QuestPreferences.java +++ b/forge-gui/src/main/java/forge/quest/data/QuestPreferences.java @@ -146,7 +146,9 @@ public class QuestPreferences extends PreferencesStore i // How many wins it takes to open an additional pack in the shop SHOP_WINS_FOR_ADDITIONAL_PACK("10"), // How many packs the shop start with. - SHOP_STARTING_PACKS("5"); + SHOP_STARTING_PACKS("5"), + + ITEM_LEVEL_RESTRICTION("1"); private final String strDefaultVal; @@ -335,6 +337,10 @@ public class QuestPreferences extends PreferencesStore i return "Bias value too large (maximum 10)."; } break; + case ITEM_LEVEL_RESTRICTION: + if (val != 0 && val != 1) { + return "Only values 0 or 1 are acceptable. 1 for enabled, 0 for disabled."; + } default: if (val > 100) { return "Value too large (maximum 100).";