|
@@ -1,13 +1,28 @@
|
|
|
package com.gmail.nossr50.config.hocon.playerleveling;
|
|
|
|
|
|
import com.gmail.nossr50.datatypes.experience.FormulaType;
|
|
|
+import com.gmail.nossr50.datatypes.skills.PrimarySkillType;
|
|
|
import ninja.leaping.configurate.objectmapping.Setting;
|
|
|
import ninja.leaping.configurate.objectmapping.serialize.ConfigSerializable;
|
|
|
|
|
|
+import java.util.HashMap;
|
|
|
+
|
|
|
@ConfigSerializable
|
|
|
public class ConfigExperienceFormula {
|
|
|
|
|
|
public static final boolean CUMULATIVE_CURVE_DEFAULT = false;
|
|
|
+ private static final HashMap<PrimarySkillType, Double> SKILL_FORMULA_MODIFIER_DEFAULT;
|
|
|
+
|
|
|
+ static {
|
|
|
+ SKILL_FORMULA_MODIFIER_DEFAULT = new HashMap<>();
|
|
|
+ for(PrimarySkillType primarySkillType : PrimarySkillType.values())
|
|
|
+ {
|
|
|
+ if(primarySkillType.isChildSkill())
|
|
|
+ continue;
|
|
|
+
|
|
|
+ SKILL_FORMULA_MODIFIER_DEFAULT.put(primarySkillType, 1.0D);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
@Setting(value = "Player-XP-Formula-Type", comment = "Determines which formula is used to determine XP needed to level" +
|
|
|
"\nDefault value: LINEAR")
|
|
@@ -26,10 +41,18 @@ public class ConfigExperienceFormula {
|
|
|
"\nDefault value: " + CUMULATIVE_CURVE_DEFAULT)
|
|
|
private boolean cumulativeCurveEnabled = CUMULATIVE_CURVE_DEFAULT;
|
|
|
|
|
|
+ @Setting(value = "Skill-Formula-Multipliers", comment = "The end result of how much XP is needed to level is determined by multiplying against this value" +
|
|
|
+ "\nHigher values will make skills take longer to level, lower values will decrease time to level instead.")
|
|
|
+ private HashMap<PrimarySkillType, Double> skillXpModifier = SKILL_FORMULA_MODIFIER_DEFAULT;
|
|
|
+
|
|
|
public FormulaType getFormulaType() {
|
|
|
return formulaType;
|
|
|
}
|
|
|
|
|
|
+ public double getSkillXpFormulaModifier(PrimarySkillType primarySkillType) {
|
|
|
+ return skillXpModifier.get(primarySkillType);
|
|
|
+ }
|
|
|
+
|
|
|
public ConfigExperienceFormulaLinear getConfigExperienceFormulaLinear() {
|
|
|
return configExperienceFormulaLinear;
|
|
|
}
|