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 45932f2fd14..3b9cbd196fc 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 @@ -219,6 +219,9 @@ public class QuestPreferencesHandler extends SkinnedPanel { pnlShop.add(new FLabel.Builder().text("Wins for Pack").build(), constraints2); pnlShop.add(new PrefInput(QPref.SHOP_WINS_FOR_ADDITIONAL_PACK, ErrType.SHOP), constraints1); + pnlShop.add(new FLabel.Builder().text("Wins per Set Unlock").build(), constraints2); + pnlShop.add(new PrefInput(QPref.WINS_UNLOCK_SET, ErrType.SHOP), constraints1); + pnlShop.add(new FLabel.Builder().text("Common Singles").build(), constraints2); pnlShop.add(new PrefInput(QPref.SHOP_SINGLES_COMMON, ErrType.SHOP), constraints1); @@ -353,6 +356,7 @@ public class QuestPreferencesHandler extends SkinnedPanel { case STARTING_CREDITS_HARD: case STARTING_CREDITS_EXPERT: case REWARDS_MILLED: case REWARDS_MULLIGAN0: case REWARDS_ALTERNATIVE: case REWARDS_TURN5: + case WINS_UNLOCK_SET: if (val > 500) { return "Value too large (maximum 500)."; } 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 441c8ac4c49..f3b3ac1db03 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 @@ -356,6 +356,9 @@ public enum VSubmenuQuestPrefs implements IVSubmenu { pnlShop.add(new FLabel.Builder().text("Wins for Pack").build(), constraints2); pnlShop.add(new PrefInput(QPref.SHOP_WINS_FOR_ADDITIONAL_PACK, QuestPreferencesErrType.SHOP), constraints1); + pnlShop.add(new FLabel.Builder().text("Wins per Set Unlock").build(), constraints2); + pnlShop.add(new PrefInput(QPref.WINS_UNLOCK_SET, QuestPreferencesErrType.SHOP), constraints1); + pnlShop.add(new FLabel.Builder().text("Common Singles").build(), constraints2); pnlShop.add(new PrefInput(QPref.SHOP_SINGLES_COMMON, QuestPreferencesErrType.SHOP), constraints1); diff --git a/forge-gui/src/main/java/forge/quest/QuestController.java b/forge-gui/src/main/java/forge/quest/QuestController.java index ae43eaad220..6ed697abd2e 100644 --- a/forge-gui/src/main/java/forge/quest/QuestController.java +++ b/forge-gui/src/main/java/forge/quest/QuestController.java @@ -38,6 +38,7 @@ import forge.quest.data.QuestAchievements; import forge.quest.data.QuestAssets; import forge.quest.data.QuestData; import forge.quest.data.QuestPreferences.DifficultyPrefs; +import forge.quest.data.QuestPreferences.QPref; import forge.quest.io.QuestChallengeReader; import forge.util.storage.IStorage; import forge.util.storage.StorageBase; @@ -436,7 +437,7 @@ public class QuestController { final int wins = this.model.getAchievements().getWin(); int cntLocked = this.questFormat.getLockedSets().size(); - int unlocksAvaliable = wins / 20; + int unlocksAvaliable = wins / FModel.getQuestPreferences().getPrefInt(QPref.WINS_UNLOCK_SET); int unlocksSpent = this.questFormat.getUnlocksUsed(); return unlocksAvaliable > unlocksSpent ? Math.min(unlocksAvaliable - unlocksSpent, cntLocked) : 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 72f42be5400..c6b2167b9b4 100644 --- a/forge-gui/src/main/java/forge/quest/data/QuestPreferences.java +++ b/forge-gui/src/main/java/forge/quest/data/QuestPreferences.java @@ -127,6 +127,8 @@ public class QuestPreferences extends PreferencesStore i WINS_EXPERTAI_MEDIUM("36"), WINS_EXPERTAI_HARD("32"), WINS_EXPERTAI_EXPERT("28"), + + WINS_UNLOCK_SET("20"), // Maximum amount of "Packs" opened by the Shop and available as singles SHOP_MAX_PACKS("6"),