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 66e77a8d099..fe988881dff 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 @@ -382,6 +382,12 @@ public enum VSubmenuQuestPrefs implements IVSubmenu { pnlShop.add(new FLabel.Builder().text("Rare Singles").fontAlign(SwingConstants.RIGHT).build(), labelConstraints); pnlShop.add(new PrefInput(QPref.SHOP_SINGLES_RARE, QuestPreferencesErrType.SHOP), fieldConstraints); + pnlShop.add(new FLabel.Builder().text("Card Sale Percentage Base").fontAlign(SwingConstants.RIGHT).build(), labelConstraints); + pnlShop.add(new PrefInput(QPref.SHOP_SELLING_PERCENTAGE_BASE, QuestPreferencesErrType.SHOP), fieldConstraints); + + pnlShop.add(new FLabel.Builder().text("Card Sale Percentage Cap").fontAlign(SwingConstants.RIGHT).build(), labelConstraints); + pnlShop.add(new PrefInput(QPref.SHOP_SELLING_PERCENTAGE_MAX, QuestPreferencesErrType.SHOP), fieldConstraints); + pnlShop.add(new FLabel.Builder().text("Card Sale Price Cap").fontAlign(SwingConstants.RIGHT).build(), labelConstraints); pnlShop.add(new PrefInput(QPref.SHOP_MAX_SELLING_PRICE, QuestPreferencesErrType.SHOP), fieldConstraints); diff --git a/forge-gui/src/main/java/forge/quest/QuestUtilCards.java b/forge-gui/src/main/java/forge/quest/QuestUtilCards.java index 510056d71e1..3a32e562729 100644 --- a/forge-gui/src/main/java/forge/quest/QuestUtilCards.java +++ b/forge-gui/src/main/java/forge/quest/QuestUtilCards.java @@ -463,9 +463,13 @@ public final class QuestUtilCards { * @return the sell mutliplier */ public double getSellMultiplier() { - double multi = 0.20 + (0.001 * this.qc.getAchievements().getWin()); - if (multi > 0.6) { - multi = 0.6; + double baseMultiplier = Double.parseDouble(this.qpref.getPref(QPref.SHOP_SELLING_PERCENTAGE_BASE))/100.0; + double maxMultiplier = Double.parseDouble(this.qpref.getPref(QPref.SHOP_SELLING_PERCENTAGE_MAX))/100.0; + + + double multi = baseMultiplier + (0.001 * this.qc.getAchievements().getWin()); + if (maxMultiplier > 0 && multi > maxMultiplier) { + multi = maxMultiplier; } final int lvlEstates = this.qc.getMode() == QuestMode.Fantasy ? this.qa.getItemLevel(QuestItemType.ESTATES) : 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 4cb53d44120..0103672b461 100644 --- a/forge-gui/src/main/java/forge/quest/data/QuestPreferences.java +++ b/forge-gui/src/main/java/forge/quest/data/QuestPreferences.java @@ -154,6 +154,10 @@ public class QuestPreferences extends PreferencesStore i // How many packs the shop start with. SHOP_STARTING_PACKS("5"), + // Value * .20 + Wins + SHOP_SELLING_PERCENTAGE_BASE("20"), + SHOP_SELLING_PERCENTAGE_MAX("60"), + // Maximum selling price in a spell shop SHOP_MAX_SELLING_PRICE("1000"), // Wins until the selling price limit is removed @@ -277,6 +281,8 @@ public class QuestPreferences extends PreferencesStore i case SHOP_MAX_PACKS: case SHOP_MAX_SELLING_PRICE: + case SHOP_SELLING_PERCENTAGE_BASE: + case SHOP_SELLING_PERCENTAGE_MAX: case SHOP_WINS_FOR_ADDITIONAL_PACK: case PLAYSET_SIZE: case PLAYSET_ANY_NUMBER_SIZE: