mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 12:18:00 +00:00
removed duplicate preferences validation from QuestPreferencesHandler & CSubmenuQuestPrefs
This commit is contained in:
@@ -7,7 +7,6 @@ import forge.Singletons;
|
||||
import forge.gui.framework.ICDoc;
|
||||
import forge.gui.home.quest.VSubmenuQuestPrefs.PrefInput;
|
||||
import forge.quest.data.QuestPreferences;
|
||||
import forge.quest.data.QuestPreferences.QPref;
|
||||
|
||||
/**
|
||||
* Controls the quest preferences submenu in the home UI.
|
||||
@@ -43,79 +42,15 @@ public enum CSubmenuQuestPrefs implements ICDoc {
|
||||
public static void validateAndSave(PrefInput i0) {
|
||||
if (i0.getText().equals(i0.getPreviousText())) { return; }
|
||||
final QuestPreferences prefs = Singletons.getModel().getQuestPreferences();
|
||||
int temp1, temp2;
|
||||
|
||||
int val = Integer.parseInt(i0.getText());
|
||||
resetErrors();
|
||||
|
||||
switch (i0.getQPref()) {
|
||||
case STARTING_CREDITS_EASY: case STARTING_CREDITS_MEDIUM:
|
||||
case STARTING_CREDITS_HARD: case STARTING_CREDITS_EXPERT:
|
||||
case REWARDS_MILLED: case REWARDS_MULLIGAN0:
|
||||
case REWARDS_ALTERNATIVE: case REWARDS_TURN5:
|
||||
if (val > 500) {
|
||||
showError(i0, "Value too large (maximum 500).");
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case BOOSTER_COMMONS:
|
||||
temp1 = prefs.getPreferenceInt(QPref.BOOSTER_UNCOMMONS);
|
||||
temp2 = prefs.getPreferenceInt(QPref.BOOSTER_RARES);
|
||||
|
||||
if (temp1 + temp2 + val > 15) {
|
||||
showError(i0, "Booster packs must have maximum 15 cards.");
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case BOOSTER_UNCOMMONS:
|
||||
temp1 = prefs.getPreferenceInt(QPref.BOOSTER_COMMONS);
|
||||
temp2 = prefs.getPreferenceInt(QPref.BOOSTER_RARES);
|
||||
|
||||
if (temp1 + temp2 + val > 15) {
|
||||
showError(i0, "Booster packs must have maximum 15 cards.");
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case BOOSTER_RARES:
|
||||
temp1 = prefs.getPreferenceInt(QPref.BOOSTER_COMMONS);
|
||||
temp2 = prefs.getPreferenceInt(QPref.BOOSTER_UNCOMMONS);
|
||||
|
||||
if (temp1 + temp2 + val > 15) {
|
||||
showError(i0, "Booster packs must have maximum 15 cards.");
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case REWARDS_TURN1:
|
||||
if (val > 2000) {
|
||||
showError(i0, "Value too large (maximum 2000).");
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case SHOP_STARTING_PACKS:
|
||||
case SHOP_SINGLES_COMMON: case SHOP_SINGLES_UNCOMMON: case SHOP_SINGLES_RARE:
|
||||
if (val < 0) {
|
||||
showError(i0, "Value too small (minimum 0).");
|
||||
return;
|
||||
} else if (val > 15) {
|
||||
showError(i0, "Value too large (maximum 15).");
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case SHOP_WINS_FOR_ADDITIONAL_PACK: case SHOP_MAX_PACKS:
|
||||
if (val < 1) {
|
||||
showError(i0, "Value too small (minimum 1).");
|
||||
return;
|
||||
} else if (val > 25) {
|
||||
showError(i0, "Value too large (maximum 25).");
|
||||
return;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if (val > 100) {
|
||||
showError(i0, "Value too large (maximum 100).");
|
||||
return;
|
||||
}
|
||||
break;
|
||||
String validationError = QuestPreferencesHandler.validatePreference(i0.getQPref(), val, prefs);
|
||||
if( null != validationError)
|
||||
{
|
||||
showError(i0, validationError);
|
||||
return;
|
||||
}
|
||||
|
||||
prefs.setPreference(i0.getQPref(), i0.getText());
|
||||
|
||||
@@ -323,7 +323,7 @@ public class QuestPreferencesHandler extends JPanel {
|
||||
}
|
||||
}
|
||||
|
||||
private int temp1, temp2;
|
||||
|
||||
/**
|
||||
* Checks validity of values entered into prefInputs.
|
||||
* @param i0   a PrefInput object
|
||||
@@ -334,74 +334,11 @@ public class QuestPreferencesHandler extends JPanel {
|
||||
int val = Integer.parseInt(i0.getText());
|
||||
resetErrors();
|
||||
|
||||
switch (i0.getQPref()) {
|
||||
case STARTING_CREDITS_EASY: case STARTING_CREDITS_MEDIUM:
|
||||
case STARTING_CREDITS_HARD: case STARTING_CREDITS_EXPERT:
|
||||
case REWARDS_MILLED: case REWARDS_MULLIGAN0:
|
||||
case REWARDS_ALTERNATIVE: case REWARDS_TURN5:
|
||||
if (val > 500) {
|
||||
showError(i0, "Value too large (maximum 500).");
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case BOOSTER_COMMONS:
|
||||
temp1 = prefs.getPreferenceInt(QPref.BOOSTER_UNCOMMONS);
|
||||
temp2 = prefs.getPreferenceInt(QPref.BOOSTER_RARES);
|
||||
|
||||
if (temp1 + temp2 + val > 15) {
|
||||
showError(i0, "Booster packs must have maximum 15 cards.");
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case BOOSTER_UNCOMMONS:
|
||||
temp1 = prefs.getPreferenceInt(QPref.BOOSTER_COMMONS);
|
||||
temp2 = prefs.getPreferenceInt(QPref.BOOSTER_RARES);
|
||||
|
||||
if (temp1 + temp2 + val > 15) {
|
||||
showError(i0, "Booster packs must have maximum 15 cards.");
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case BOOSTER_RARES:
|
||||
temp1 = prefs.getPreferenceInt(QPref.BOOSTER_COMMONS);
|
||||
temp2 = prefs.getPreferenceInt(QPref.BOOSTER_UNCOMMONS);
|
||||
|
||||
if (temp1 + temp2 + val > 15) {
|
||||
showError(i0, "Booster packs must have maximum 15 cards.");
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case REWARDS_TURN1:
|
||||
if (val > 2000) {
|
||||
showError(i0, "Value too large (maximum 2000).");
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case SHOP_STARTING_PACKS:
|
||||
case SHOP_SINGLES_COMMON: case SHOP_SINGLES_UNCOMMON: case SHOP_SINGLES_RARE:
|
||||
if (val < 0) {
|
||||
showError(i0, "Value too small (minimum 0).");
|
||||
return;
|
||||
} else if (val > 15) {
|
||||
showError(i0, "Value too large (maximum 15).");
|
||||
return;
|
||||
}
|
||||
break;
|
||||
case SHOP_WINS_FOR_ADDITIONAL_PACK: case SHOP_MAX_PACKS:
|
||||
if (val < 1) {
|
||||
showError(i0, "Value too small (minimum 1).");
|
||||
return;
|
||||
} else if (val > 25) {
|
||||
showError(i0, "Value too large (maximum 25).");
|
||||
return;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if (val > 100) {
|
||||
showError(i0, "Value too large (maximum 100).");
|
||||
return;
|
||||
}
|
||||
break;
|
||||
String validationError = validatePreference(i0.getQPref(), val, prefs);
|
||||
if( null != validationError)
|
||||
{
|
||||
showError(i0, validationError);
|
||||
return;
|
||||
}
|
||||
|
||||
prefs.setPreference(i0.getQPref(), i0.getText());
|
||||
@@ -409,6 +346,70 @@ public class QuestPreferencesHandler extends JPanel {
|
||||
i0.setPreviousText(i0.getText());
|
||||
}
|
||||
|
||||
public static String validatePreference(QPref qpref, int val, QuestPreferences current) {
|
||||
int temp1, temp2;
|
||||
switch (qpref) {
|
||||
case STARTING_CREDITS_EASY: case STARTING_CREDITS_MEDIUM:
|
||||
case STARTING_CREDITS_HARD: case STARTING_CREDITS_EXPERT:
|
||||
case REWARDS_MILLED: case REWARDS_MULLIGAN0:
|
||||
case REWARDS_ALTERNATIVE: case REWARDS_TURN5:
|
||||
if (val > 500) {
|
||||
return "Value too large (maximum 500).";
|
||||
}
|
||||
break;
|
||||
case BOOSTER_COMMONS:
|
||||
temp1 = current.getPreferenceInt(QPref.BOOSTER_UNCOMMONS);
|
||||
temp2 = current.getPreferenceInt(QPref.BOOSTER_RARES);
|
||||
|
||||
if (temp1 + temp2 + val > 15) {
|
||||
return "Booster packs must have maximum 15 cards.";
|
||||
}
|
||||
break;
|
||||
case BOOSTER_UNCOMMONS:
|
||||
temp1 = current.getPreferenceInt(QPref.BOOSTER_COMMONS);
|
||||
temp2 = current.getPreferenceInt(QPref.BOOSTER_RARES);
|
||||
|
||||
if (temp1 + temp2 + val > 15) {
|
||||
return "Booster packs must have maximum 15 cards.";
|
||||
}
|
||||
break;
|
||||
case BOOSTER_RARES:
|
||||
temp1 = current.getPreferenceInt(QPref.BOOSTER_COMMONS);
|
||||
temp2 = current.getPreferenceInt(QPref.BOOSTER_UNCOMMONS);
|
||||
|
||||
if (temp1 + temp2 + val > 15) {
|
||||
return "Booster packs must have maximum 15 cards.";
|
||||
}
|
||||
break;
|
||||
case REWARDS_TURN1:
|
||||
if (val > 2000) {
|
||||
return "Value too large (maximum 2000).";
|
||||
}
|
||||
break;
|
||||
case SHOP_STARTING_PACKS:
|
||||
case SHOP_SINGLES_COMMON: case SHOP_SINGLES_UNCOMMON: case SHOP_SINGLES_RARE:
|
||||
if (val < 0) {
|
||||
return "Value too small (minimum 0).";
|
||||
} else if (val > 15) {
|
||||
return "Value too large (maximum 15).";
|
||||
}
|
||||
break;
|
||||
case SHOP_WINS_FOR_ADDITIONAL_PACK: case SHOP_MAX_PACKS:
|
||||
if (val < 1) {
|
||||
return "Value too small (minimum 1).";
|
||||
} else if (val > 25) {
|
||||
return "Value too large (maximum 25).";
|
||||
}
|
||||
break;
|
||||
default:
|
||||
if (val > 100) {
|
||||
return "Value too large (maximum 100).";
|
||||
}
|
||||
break;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
private void showError(PrefInput i0, String s0) {
|
||||
String s = "Save failed: " + s0;
|
||||
switch(i0.getErrType()) {
|
||||
|
||||
Reference in New Issue
Block a user