Explorar el Código

Added new experience curve option

TfT_02 hace 12 años
padre
commit
435eb7f8b9

+ 1 - 0
Changelog.txt

@@ -9,6 +9,7 @@ Key:
 
 Version 1.4.07-dev
  + Added snow to excavation
+ + Added new experience curve option. Cumulative curve, calculates experience needed for next level using power level.
  = Fixed bug with Skull Splitter not finding the locale string
  = Fixed issue where locale strings could cause the scoreboard header to be longer than 16 characters.
  ! Improved profile saving

+ 1 - 0
src/main/java/com/gmail/nossr50/config/Config.java

@@ -294,5 +294,6 @@ public class Config extends AutoUpdateConfigLoader {
 
     /* XP Formula Multiplier */
     public int getFormulaMultiplierCurve() { return config.getInt("Experience.Formula.Curve_Modifier", 20); }
+    public boolean getCumulativeCurveEnabled() { return config.getBoolean("Experience.Formula.Cumulative_Curve", false); }
     public double getFormulaSkillModifier(SkillType skill) { return config.getDouble("Experience.Formula.Modifier." + StringUtils.getCapitalized(skill.toString())); }
 }

+ 5 - 0
src/main/java/com/gmail/nossr50/datatypes/player/PlayerProfile.java

@@ -15,6 +15,7 @@ import com.gmail.nossr50.datatypes.skills.SkillType;
 import com.gmail.nossr50.datatypes.spout.huds.HudType;
 import com.gmail.nossr50.datatypes.spout.huds.McMMOHud;
 import com.gmail.nossr50.skills.child.FamilyTree;
+import com.gmail.nossr50.util.player.UserManager;
 
 public class PlayerProfile {
     private final String playerName;
@@ -274,6 +275,10 @@ public class PlayerProfile {
      * @return the Xp remaining until next level
      */
     public int getXpToLevel(SkillType skillType) {
+        if (Config.getInstance().getCumulativeCurveEnabled()) {
+            return 1020 + (UserManager.getPlayer(playerName).getPowerLevel() * Config.getInstance().getFormulaMultiplierCurve());
+        }
+
         return 1020 + (skills.get(skillType) * Config.getInstance().getFormulaMultiplierCurve());
     }
 

+ 4 - 0
src/main/resources/config.yml

@@ -290,6 +290,10 @@ Experience:
     Formula:
         Curve_Modifier: 20
 
+        # Cumulative experience curves will use a players power level instead of their skill level,
+        # players with high power levels will have to gain a lot more experience to reach the next level in every skill.
+        Cumulative_Curve: false
+
         # Experience gained will get divided by these values. 1.0 by default, 2.0 means two times lower
         Modifier:
             Swords: 1.0