mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 19:28:01 +00:00
- Integrating More Duel Choices patch by Seravy.
This commit is contained in:
@@ -346,6 +346,9 @@ public enum VSubmenuQuestPrefs implements IVSubmenu<CSubmenuQuestPrefs> {
|
|||||||
pnlDifficulty.add(new FLabel.Builder().text("Penalty for Loss").fontAlign(SwingConstants.RIGHT).build(), labelConstraints);
|
pnlDifficulty.add(new FLabel.Builder().text("Penalty for Loss").fontAlign(SwingConstants.RIGHT).build(), labelConstraints);
|
||||||
pnlDifficulty.add(new PrefInput(QPref.PENALTY_LOSS, QuestPreferencesErrType.DIFFICULTY), fieldConstraints + ", wrap");
|
pnlDifficulty.add(new PrefInput(QPref.PENALTY_LOSS, QuestPreferencesErrType.DIFFICULTY), fieldConstraints + ", wrap");
|
||||||
|
|
||||||
|
pnlDifficulty.add(new FLabel.Builder().text("More Duel Choices").fontAlign(SwingConstants.RIGHT).build(), labelConstraints);
|
||||||
|
pnlDifficulty.add(new PrefInput(QPref.MORE_DUEL_CHOICES, QuestPreferencesErrType.DIFFICULTY), fieldConstraints + ", wrap");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void populateBooster() {
|
private void populateBooster() {
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ package forge.quest;
|
|||||||
import forge.model.FModel;
|
import forge.model.FModel;
|
||||||
import forge.quest.data.QuestPreferences;
|
import forge.quest.data.QuestPreferences;
|
||||||
import forge.quest.data.QuestPreferences.DifficultyPrefs;
|
import forge.quest.data.QuestPreferences.DifficultyPrefs;
|
||||||
|
import forge.quest.data.QuestPreferences.QPref;
|
||||||
import forge.quest.io.QuestDuelReader;
|
import forge.quest.io.QuestDuelReader;
|
||||||
import forge.util.CollectionSuppliers;
|
import forge.util.CollectionSuppliers;
|
||||||
import forge.util.maps.EnumMapOfLists;
|
import forge.util.maps.EnumMapOfLists;
|
||||||
@@ -147,6 +148,8 @@ public class QuestEventDuelManager {
|
|||||||
public final List<QuestEventDuel> generateDuels() {
|
public final List<QuestEventDuel> generateDuels() {
|
||||||
|
|
||||||
final QuestPreferences questPreferences = FModel.getQuestPreferences();
|
final QuestPreferences questPreferences = FModel.getQuestPreferences();
|
||||||
|
boolean moreDuelChoices = questPreferences.getPrefInt(QPref.MORE_DUEL_CHOICES) > 0;
|
||||||
|
|
||||||
if (FModel.getQuest().getAchievements() == null) {
|
if (FModel.getQuest().getAchievements() == null) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -157,30 +160,64 @@ public class QuestEventDuelManager {
|
|||||||
final int index = qCtrl.getAchievements().getDifficulty();
|
final int index = qCtrl.getAchievements().getDifficulty();
|
||||||
final List<QuestEventDuel> duelOpponents = new ArrayList<>();
|
final List<QuestEventDuel> duelOpponents = new ArrayList<>();
|
||||||
|
|
||||||
if (numberOfWins < questPreferences.getPrefInt(DifficultyPrefs.WINS_MEDIUMAI, index)) {
|
if (moreDuelChoices) {
|
||||||
addDuel(duelOpponents, QuestEventDifficulty.EASY, 3);
|
if (numberOfWins < questPreferences.getPrefInt(DifficultyPrefs.WINS_MEDIUMAI, index)) {
|
||||||
addRandomDuel(duelOpponents, QuestEventDifficulty.EASY);
|
addDuel(duelOpponents, QuestEventDifficulty.EASY, 3);
|
||||||
} else if (numberOfWins == questPreferences.getPrefInt(DifficultyPrefs.WINS_MEDIUMAI, index)) {
|
addRandomDuel(duelOpponents, QuestEventDifficulty.EASY);
|
||||||
addDuel(duelOpponents, QuestEventDifficulty.EASY, 1);
|
} else if (numberOfWins == questPreferences.getPrefInt(DifficultyPrefs.WINS_MEDIUMAI, index)) {
|
||||||
addDuel(duelOpponents, QuestEventDifficulty.MEDIUM, 2);
|
addDuel(duelOpponents, QuestEventDifficulty.EASY, 2);
|
||||||
addRandomDuel(duelOpponents, QuestEventDifficulty.MEDIUM);
|
addDuel(duelOpponents, QuestEventDifficulty.MEDIUM, 2);
|
||||||
} else if (numberOfWins < questPreferences.getPrefInt(DifficultyPrefs.WINS_HARDAI, index)) {
|
addRandomDuel(duelOpponents, QuestEventDifficulty.MEDIUM);
|
||||||
addDuel(duelOpponents, QuestEventDifficulty.MEDIUM, 3);
|
} else if (numberOfWins < questPreferences.getPrefInt(DifficultyPrefs.WINS_HARDAI, index)) {
|
||||||
addRandomDuel(duelOpponents, QuestEventDifficulty.MEDIUM);
|
addDuel(duelOpponents, QuestEventDifficulty.MEDIUM, 3);
|
||||||
} else if (numberOfWins == questPreferences.getPrefInt(DifficultyPrefs.WINS_HARDAI, index)) {
|
addDuel(duelOpponents, QuestEventDifficulty.EASY, 1);
|
||||||
addDuel(duelOpponents, QuestEventDifficulty.MEDIUM, 1);
|
addRandomDuel(duelOpponents, QuestEventDifficulty.MEDIUM);
|
||||||
addDuel(duelOpponents, QuestEventDifficulty.HARD, 2);
|
} else if (numberOfWins == questPreferences.getPrefInt(DifficultyPrefs.WINS_HARDAI, index)) {
|
||||||
addRandomDuel(duelOpponents, QuestEventDifficulty.HARD);
|
addDuel(duelOpponents, QuestEventDifficulty.MEDIUM, 2);
|
||||||
} else if (numberOfWins < questPreferences.getPrefInt(DifficultyPrefs.WINS_EXPERTAI, index)) {
|
addDuel(duelOpponents, QuestEventDifficulty.HARD, 2);
|
||||||
addDuel(duelOpponents, QuestEventDifficulty.HARD, 3);
|
addRandomDuel(duelOpponents, QuestEventDifficulty.HARD);
|
||||||
addRandomDuel(duelOpponents, QuestEventDifficulty.HARD);
|
} else if (numberOfWins < questPreferences.getPrefInt(DifficultyPrefs.WINS_EXPERTAI, index)) {
|
||||||
} else {
|
addDuel(duelOpponents, QuestEventDifficulty.HARD, 3);
|
||||||
addDuel(duelOpponents, QuestEventDifficulty.HARD, 2);
|
addDuel(duelOpponents, QuestEventDifficulty.MEDIUM, 1);
|
||||||
addDuel(duelOpponents, QuestEventDifficulty.EXPERT, 1);
|
addDuel(duelOpponents, QuestEventDifficulty.EASY, 1);
|
||||||
if (Math.random() * 3 < 2) {
|
|
||||||
addRandomDuel(duelOpponents, QuestEventDifficulty.HARD);
|
addRandomDuel(duelOpponents, QuestEventDifficulty.HARD);
|
||||||
} else {
|
} else {
|
||||||
addRandomDuel(duelOpponents, QuestEventDifficulty.EXPERT);
|
addDuel(duelOpponents, QuestEventDifficulty.HARD, 2);
|
||||||
|
addDuel(duelOpponents, QuestEventDifficulty.EXPERT, 1);
|
||||||
|
addDuel(duelOpponents, QuestEventDifficulty.MEDIUM, 1);
|
||||||
|
addDuel(duelOpponents, QuestEventDifficulty.EASY, 1);
|
||||||
|
if (Math.random() * 3 < 2) {
|
||||||
|
addRandomDuel(duelOpponents, QuestEventDifficulty.HARD);
|
||||||
|
} else {
|
||||||
|
addRandomDuel(duelOpponents, QuestEventDifficulty.EXPERT);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (numberOfWins < questPreferences.getPrefInt(DifficultyPrefs.WINS_MEDIUMAI, index)) {
|
||||||
|
addDuel(duelOpponents, QuestEventDifficulty.EASY, 3);
|
||||||
|
addRandomDuel(duelOpponents, QuestEventDifficulty.EASY);
|
||||||
|
} else if (numberOfWins == questPreferences.getPrefInt(DifficultyPrefs.WINS_MEDIUMAI, index)) {
|
||||||
|
addDuel(duelOpponents, QuestEventDifficulty.EASY, 1);
|
||||||
|
addDuel(duelOpponents, QuestEventDifficulty.MEDIUM, 2);
|
||||||
|
addRandomDuel(duelOpponents, QuestEventDifficulty.MEDIUM);
|
||||||
|
} else if (numberOfWins < questPreferences.getPrefInt(DifficultyPrefs.WINS_HARDAI, index)) {
|
||||||
|
addDuel(duelOpponents, QuestEventDifficulty.MEDIUM, 3);
|
||||||
|
addRandomDuel(duelOpponents, QuestEventDifficulty.MEDIUM);
|
||||||
|
} else if (numberOfWins == questPreferences.getPrefInt(DifficultyPrefs.WINS_HARDAI, index)) {
|
||||||
|
addDuel(duelOpponents, QuestEventDifficulty.MEDIUM, 1);
|
||||||
|
addDuel(duelOpponents, QuestEventDifficulty.HARD, 2);
|
||||||
|
addRandomDuel(duelOpponents, QuestEventDifficulty.HARD);
|
||||||
|
} else if (numberOfWins < questPreferences.getPrefInt(DifficultyPrefs.WINS_EXPERTAI, index)) {
|
||||||
|
addDuel(duelOpponents, QuestEventDifficulty.HARD, 3);
|
||||||
|
addRandomDuel(duelOpponents, QuestEventDifficulty.HARD);
|
||||||
|
} else {
|
||||||
|
addDuel(duelOpponents, QuestEventDifficulty.HARD, 2);
|
||||||
|
addDuel(duelOpponents, QuestEventDifficulty.EXPERT, 1);
|
||||||
|
if (Math.random() * 3 < 2) {
|
||||||
|
addRandomDuel(duelOpponents, QuestEventDifficulty.HARD);
|
||||||
|
} else {
|
||||||
|
addRandomDuel(duelOpponents, QuestEventDifficulty.EXPERT);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -162,6 +162,8 @@ public class QuestPreferences extends PreferencesStore<QuestPreferences.QPref> i
|
|||||||
SHOP_MAX_SELLING_PRICE("1000"),
|
SHOP_MAX_SELLING_PRICE("1000"),
|
||||||
// Wins until the selling price limit is removed
|
// Wins until the selling price limit is removed
|
||||||
SHOP_WINS_FOR_NO_SELL_LIMIT("50"),
|
SHOP_WINS_FOR_NO_SELL_LIMIT("50"),
|
||||||
|
// Duels of the current difficulty only, or that and all difficulties below it?
|
||||||
|
MORE_DUEL_CHOICES("0"),
|
||||||
|
|
||||||
//The number of cards to keep before selling
|
//The number of cards to keep before selling
|
||||||
PLAYSET_SIZE("4"),
|
PLAYSET_SIZE("4"),
|
||||||
@@ -316,6 +318,7 @@ public class QuestPreferences extends PreferencesStore<QuestPreferences.QPref> i
|
|||||||
case SHOP_SINGLES_UNCOMMON:
|
case SHOP_SINGLES_UNCOMMON:
|
||||||
case SHOP_SINGLES_RARE:
|
case SHOP_SINGLES_RARE:
|
||||||
case SHOP_WINS_FOR_NO_SELL_LIMIT:
|
case SHOP_WINS_FOR_NO_SELL_LIMIT:
|
||||||
|
case MORE_DUEL_CHOICES:
|
||||||
default:
|
default:
|
||||||
if (val < 0) {
|
if (val < 0) {
|
||||||
return "Value too small (minimum 0).";
|
return "Value too small (minimum 0).";
|
||||||
|
|||||||
Reference in New Issue
Block a user