瀏覽代碼

Add extra tiers! Every ability now has 8 tiers

TfT_02 11 年之前
父節點
當前提交
2eda3a9c83

+ 1 - 0
Changelog.txt

@@ -10,6 +10,7 @@ Key:
 Version 1.4.07-dev
 Version 1.4.07-dev
  + Added XP boost to Acrobatics when wearing Boots of Feather Falling
  + Added XP boost to Acrobatics when wearing Boots of Feather Falling
  + Added SQL Database can now recover from a dropped connection without losing data. (Thanks Riking!)
  + Added SQL Database can now recover from a dropped connection without losing data. (Thanks Riking!)
+ + Added more tiers to Fishing, Repair and Smelting!
  + Added Carrot on a Stick and Flint & Steel to repair.vanilla.yml
  + Added Carrot on a Stick and Flint & Steel to repair.vanilla.yml
  + Added horses to the "Shake" ability
  + Added horses to the "Shake" ability
  + Added ability to summon horses via "Call of the Wild" using apples
  + Added ability to summon horses via "Call of the Wild" using apples

+ 185 - 38
src/main/java/com/gmail/nossr50/config/AdvancedConfig.java

@@ -189,6 +189,18 @@ public class AdvancedConfig extends AutoUpdateConfigLoader {
             reason.add("Skills.Fishing.Tier_Levels.Tier4 should be less than Skills.Fishing.Tier_Levels.Tier5!");
             reason.add("Skills.Fishing.Tier_Levels.Tier4 should be less than Skills.Fishing.Tier_Levels.Tier5!");
         }
         }
 
 
+        if (getFishingTierLevelsTier5() >= getFishingTierLevelsTier6()) {
+            reason.add("Skills.Fishing.Tier_Levels.Tier5 should be less than Skills.Fishing.Tier_Levels.Tier6!");
+        }
+
+        if (getFishingTierLevelsTier6() >= getFishingTierLevelsTier7()) {
+            reason.add("Skills.Fishing.Tier_Levels.Tier6 should be less than Skills.Fishing.Tier_Levels.Tier7!");
+        }
+
+        if (getFishingTierLevelsTier7() >= getFishingTierLevelsTier8()) {
+            reason.add("Skills.Fishing.Tier_Levels.Tier7 should be less than Skills.Fishing.Tier_Levels.Tier8!");
+        }
+
         if (getFishingMagicMultiplier() <= 0) {
         if (getFishingMagicMultiplier() <= 0) {
             reason.add("Skills.Fishing.MagicHunter_Multiplier should be greater than 0!");
             reason.add("Skills.Fishing.MagicHunter_Multiplier should be greater than 0!");
         }
         }
@@ -221,6 +233,18 @@ public class AdvancedConfig extends AutoUpdateConfigLoader {
             reason.add("Skills.Fishing.Shake_Chance.Rank_4 should be less or equal to Skills.Fishing.Shake_Chance.Rank_5!");
             reason.add("Skills.Fishing.Shake_Chance.Rank_4 should be less or equal to Skills.Fishing.Shake_Chance.Rank_5!");
         }
         }
 
 
+        if (getShakeChanceRank5() > getShakeChanceRank6()) {
+            reason.add("Skills.Fishing.Shake_Chance.Rank_5 should be less or equal to Skills.Fishing.Shake_Chance.Rank_6!");
+        }
+
+        if (getShakeChanceRank6() > getShakeChanceRank7()) {
+            reason.add("Skills.Fishing.Shake_Chance.Rank_6 should be less or equal to Skills.Fishing.Shake_Chance.Rank_7!");
+        }
+
+        if (getShakeChanceRank7() > getShakeChanceRank8()) {
+            reason.add("Skills.Fishing.Shake_Chance.Rank_7 should be less or equal to Skills.Fishing.Shake_Chance.Rank_8!");
+        }
+
         if (getFishingVanillaXPModifierRank1() > getFishingVanillaXPModifierRank2()) {
         if (getFishingVanillaXPModifierRank1() > getFishingVanillaXPModifierRank2()) {
             reason.add("Skills.Fishing.VanillaXPBoost.Rank_1 should be less or equal to Skills.Fishing.VanillaXPBoost.Rank_2!");
             reason.add("Skills.Fishing.VanillaXPBoost.Rank_1 should be less or equal to Skills.Fishing.VanillaXPBoost.Rank_2!");
         }
         }
@@ -237,6 +261,18 @@ public class AdvancedConfig extends AutoUpdateConfigLoader {
             reason.add("Skills.Fishing.VanillaXPBoost.Rank_4 should be less or equal to Skills.Fishing.VanillaXPBoost.Rank_5!");
             reason.add("Skills.Fishing.VanillaXPBoost.Rank_4 should be less or equal to Skills.Fishing.VanillaXPBoost.Rank_5!");
         }
         }
 
 
+        if (getFishingVanillaXPModifierRank5() > getFishingVanillaXPModifierRank6()) {
+            reason.add("Skills.Fishing.VanillaXPBoost.Rank_5 should be less or equal to Skills.Fishing.VanillaXPBoost.Rank_6!");
+        }
+
+        if (getFishingVanillaXPModifierRank6() > getFishingVanillaXPModifierRank7()) {
+            reason.add("Skills.Fishing.VanillaXPBoost.Rank_6 should be less or equal to Skills.Fishing.VanillaXPBoost.Rank_7!");
+        }
+
+        if (getFishingVanillaXPModifierRank7() > getFishingVanillaXPModifierRank8()) {
+            reason.add("Skills.Fishing.VanillaXPBoost.Rank_7 should be less or equal to Skills.Fishing.VanillaXPBoost.Rank_8!");
+        }
+
         if (getFishingVanillaXPModifierRank1() < 0) {
         if (getFishingVanillaXPModifierRank1() < 0) {
             reason.add("Skills.Fishing.VanillaXPBoost.Rank_1 should be at least 0!");
             reason.add("Skills.Fishing.VanillaXPBoost.Rank_1 should be at least 0!");
         }
         }
@@ -257,6 +293,18 @@ public class AdvancedConfig extends AutoUpdateConfigLoader {
             reason.add("Skills.Fishing.VanillaXPBoost.Rank_5 should be at least 0!");
             reason.add("Skills.Fishing.VanillaXPBoost.Rank_5 should be at least 0!");
         }
         }
 
 
+        if (getFishingVanillaXPModifierRank6() < 0) {
+            reason.add("Skills.Fishing.VanillaXPBoost.Rank_6 should be at least 0!");
+        }
+
+        if (getFishingVanillaXPModifierRank7() < 0) {
+            reason.add("Skills.Fishing.VanillaXPBoost.Rank_7 should be at least 0!");
+        }
+
+        if (getFishingVanillaXPModifierRank8() < 0) {
+            reason.add("Skills.Fishing.VanillaXPBoost.Rank_8 should be at least 0!");
+        }
+
         /* HERBALISM */
         /* HERBALISM */
         if (getFarmerDietRankChange() < 1) {
         if (getFarmerDietRankChange() < 1) {
             reason.add("Skills.Herbalism.Farmer_Diet_RankChange should be at least 1!");
             reason.add("Skills.Herbalism.Farmer_Diet_RankChange should be at least 1!");
@@ -512,6 +560,22 @@ public class AdvancedConfig extends AutoUpdateConfigLoader {
             reason.add("Skills.Repair.Arcane_Forging.Downgrades.Chance.Rank_4 only accepts values from 0 to 100!");
             reason.add("Skills.Repair.Arcane_Forging.Downgrades.Chance.Rank_4 only accepts values from 0 to 100!");
         }
         }
 
 
+        if (getArcaneForgingDowngradeChanceRank5() < 0 || getArcaneForgingDowngradeChanceRank5() > 100) {
+            reason.add("Skills.Repair.Arcane_Forging.Downgrades.Chance.Rank_5 only accepts values from 0 to 100!");
+        }
+
+        if (getArcaneForgingDowngradeChanceRank6() < 0 || getArcaneForgingDowngradeChanceRank6() > 100) {
+            reason.add("Skills.Repair.Arcane_Forging.Downgrades.Chance.Rank_6 only accepts values from 0 to 100!");
+        }
+
+        if (getArcaneForgingDowngradeChanceRank7() < 0 || getArcaneForgingDowngradeChanceRank7() > 100) {
+            reason.add("Skills.Repair.Arcane_Forging.Downgrades.Chance.Rank_7 only accepts values from 0 to 100!");
+        }
+
+        if (getArcaneForgingDowngradeChanceRank8() < 0 || getArcaneForgingDowngradeChanceRank8() > 100) {
+            reason.add("Skills.Repair.Arcane_Forging.Downgrades.Chance.Rank_8 only accepts values from 0 to 100!");
+        }
+
         if (getArcaneForgingKeepEnchantsChanceRank1() < 0 || getArcaneForgingKeepEnchantsChanceRank1() > 100) {
         if (getArcaneForgingKeepEnchantsChanceRank1() < 0 || getArcaneForgingKeepEnchantsChanceRank1() > 100) {
             reason.add("Skills.Repair.Arcane_Forging.Keep_Enchants.Chance.Rank_1 only accepts values from 0 to 100!");
             reason.add("Skills.Repair.Arcane_Forging.Keep_Enchants.Chance.Rank_1 only accepts values from 0 to 100!");
         }
         }
@@ -528,6 +592,22 @@ public class AdvancedConfig extends AutoUpdateConfigLoader {
             reason.add("Skills.Repair.Arcane_Forging.Keep_Enchants.Chance.Rank_4 only accepts values from 0 to 100!");
             reason.add("Skills.Repair.Arcane_Forging.Keep_Enchants.Chance.Rank_4 only accepts values from 0 to 100!");
         }
         }
 
 
+        if (getArcaneForgingKeepEnchantsChanceRank5() < 0 || getArcaneForgingKeepEnchantsChanceRank5() > 100) {
+            reason.add("Skills.Repair.Arcane_Forging.Keep_Enchants.Chance.Rank_5 only accepts values from 0 to 100!");
+        }
+
+        if (getArcaneForgingKeepEnchantsChanceRank6() < 0 || getArcaneForgingKeepEnchantsChanceRank6() > 100) {
+            reason.add("Skills.Repair.Arcane_Forging.Keep_Enchants.Chance.Rank_6 only accepts values from 0 to 100!");
+        }
+
+        if (getArcaneForgingKeepEnchantsChanceRank7() < 0 || getArcaneForgingKeepEnchantsChanceRank7() > 100) {
+            reason.add("Skills.Repair.Arcane_Forging.Keep_Enchants.Chance.Rank_7 only accepts values from 0 to 100!");
+        }
+
+        if (getArcaneForgingKeepEnchantsChanceRank8() < 0 || getArcaneForgingKeepEnchantsChanceRank8() > 100) {
+            reason.add("Skills.Repair.Arcane_Forging.Keep_Enchants.Chance.Rank_8 only accepts values from 0 to 100!");
+        }
+
         if (getArcaneForgingRankLevels1() < 0) {
         if (getArcaneForgingRankLevels1() < 0) {
             reason.add("Skills.Repair.Arcane_Forging.Rank_Levels.Rank_1 should be at least 0!");
             reason.add("Skills.Repair.Arcane_Forging.Rank_Levels.Rank_1 should be at least 0!");
         }
         }
@@ -544,6 +624,22 @@ public class AdvancedConfig extends AutoUpdateConfigLoader {
             reason.add("Skills.Repair.Arcane_Forging.Rank_Levels.Rank_4 should be at least 0!");
             reason.add("Skills.Repair.Arcane_Forging.Rank_Levels.Rank_4 should be at least 0!");
         }
         }
 
 
+        if (getArcaneForgingRankLevels5() < 0) {
+            reason.add("Skills.Repair.Arcane_Forging.Rank_Levels.Rank_5 should be at least 0!");
+        }
+
+        if (getArcaneForgingRankLevels6() < 0) {
+            reason.add("Skills.Repair.Arcane_Forging.Rank_Levels.Rank_6 should be at least 0!");
+        }
+
+        if (getArcaneForgingRankLevels7() < 0) {
+            reason.add("Skills.Repair.Arcane_Forging.Rank_Levels.Rank_7 should be at least 0!");
+        }
+
+        if (getArcaneForgingRankLevels8() < 0) {
+            reason.add("Skills.Repair.Arcane_Forging.Rank_Levels.Rank_8 should be at least 0!");
+        }
+
         /* SMELTING */
         /* SMELTING */
         if (getBurnModifierMaxLevel() < 1) {
         if (getBurnModifierMaxLevel() < 1) {
             reason.add("Skills.Smelting.FuelEfficiency_MaxBonusLevel should be at least 1!");
             reason.add("Skills.Smelting.FuelEfficiency_MaxBonusLevel should be at least 1!");
@@ -585,6 +681,18 @@ public class AdvancedConfig extends AutoUpdateConfigLoader {
             reason.add("Skills.Smelting.VanillaXPBoost_Rank4Level should be less or equal to Skills.Smelting.VanillaXPBoost_Rank5Level!");
             reason.add("Skills.Smelting.VanillaXPBoost_Rank4Level should be less or equal to Skills.Smelting.VanillaXPBoost_Rank5Level!");
         }
         }
 
 
+        if (getSmeltingVanillaXPBoostRank5Level() > getSmeltingVanillaXPBoostRank6Level()) {
+            reason.add("Skills.Smelting.VanillaXPBoost_Rank5Level should be less or equal to Skills.Smelting.VanillaXPBoost_Rank6Level!");
+        }
+
+        if (getSmeltingVanillaXPBoostRank6Level() > getSmeltingVanillaXPBoostRank7Level()) {
+            reason.add("Skills.Smelting.VanillaXPBoost_Rank6Level should be less or equal to Skills.Smelting.VanillaXPBoost_Rank7Level!");
+        }
+
+        if (getSmeltingVanillaXPBoostRank7Level() > getSmeltingVanillaXPBoostRank8Level()) {
+            reason.add("Skills.Smelting.VanillaXPBoost_Rank7Level should be less or equal to Skills.Smelting.VanillaXPBoost_Rank8Level!");
+        }
+
         if (getSmeltingVanillaXPBoostRank1Multiplier() < 1) {
         if (getSmeltingVanillaXPBoostRank1Multiplier() < 1) {
             reason.add("Skills.Smelting.VanillaXPBoost_Rank1Multiplier should be at least 1!");
             reason.add("Skills.Smelting.VanillaXPBoost_Rank1Multiplier should be at least 1!");
         }
         }
@@ -605,6 +713,18 @@ public class AdvancedConfig extends AutoUpdateConfigLoader {
             reason.add("Skills.Smelting.VanillaXPBoost_Rank5Multiplier should be at least 1!");
             reason.add("Skills.Smelting.VanillaXPBoost_Rank5Multiplier should be at least 1!");
         }
         }
 
 
+        if (getSmeltingVanillaXPBoostRank6Multiplier() < 1) {
+            reason.add("Skills.Smelting.VanillaXPBoost_Rank6Multiplier should be at least 1!");
+        }
+
+        if (getSmeltingVanillaXPBoostRank7Multiplier() < 1) {
+            reason.add("Skills.Smelting.VanillaXPBoost_Rank7Multiplier should be at least 1!");
+        }
+
+        if (getSmeltingVanillaXPBoostRank8Multiplier() < 1) {
+            reason.add("Skills.Smelting.VanillaXPBoost_Rank8Multiplier should be at least 1!");
+        }
+
         /* SWORDS */
         /* SWORDS */
         if (getBleedChanceMax() < 1) {
         if (getBleedChanceMax() < 1) {
             reason.add("Skills.Swords.Bleed_ChanceMax should be at least 1!");
             reason.add("Skills.Swords.Bleed_ChanceMax should be at least 1!");
@@ -843,11 +963,14 @@ public class AdvancedConfig extends AutoUpdateConfigLoader {
     //Nothing to configure, everything is already configurable in config.yml
     //Nothing to configure, everything is already configurable in config.yml
 
 
     /* FISHING */
     /* FISHING */
-    public int getFishingTierLevelsTier1() { return config.getInt("Skills.Fishing.Tier_Levels.Tier1", 0); }
-    public int getFishingTierLevelsTier2() { return config.getInt("Skills.Fishing.Tier_Levels.Tier2", 200); }
-    public int getFishingTierLevelsTier3() { return config.getInt("Skills.Fishing.Tier_Levels.Tier3", 400); }
-    public int getFishingTierLevelsTier4() { return config.getInt("Skills.Fishing.Tier_Levels.Tier4", 600); }
-    public int getFishingTierLevelsTier5() { return config.getInt("Skills.Fishing.Tier_Levels.Tier5", 800); }
+    public int getFishingTierLevelsTier1() { return config.getInt("Skills.Fishing.Rank_Levels.Rank_1", 125); }
+    public int getFishingTierLevelsTier2() { return config.getInt("Skills.Fishing.Rank_Levels.Rank_2", 250); }
+    public int getFishingTierLevelsTier3() { return config.getInt("Skills.Fishing.Rank_Levels.Rank_3", 375); }
+    public int getFishingTierLevelsTier4() { return config.getInt("Skills.Fishing.Rank_Levels.Rank_4", 500); }
+    public int getFishingTierLevelsTier5() { return config.getInt("Skills.Fishing.Rank_Levels.Rank_5", 625); }
+    public int getFishingTierLevelsTier6() { return config.getInt("Skills.Fishing.Rank_Levels.Rank_6", 750); }
+    public int getFishingTierLevelsTier7() { return config.getInt("Skills.Fishing.Rank_Levels.Rank_7", 875); }
+    public int getFishingTierLevelsTier8() { return config.getInt("Skills.Fishing.Rank_Levels.Rank_8", 1000); }
 
 
     public double getFishingMagicMultiplier() { return config.getDouble("Skills.Fishing.MagicHunter_Multiplier", 5.0D); }
     public double getFishingMagicMultiplier() { return config.getDouble("Skills.Fishing.MagicHunter_Multiplier", 5.0D); }
 
 
@@ -858,17 +981,23 @@ public class AdvancedConfig extends AutoUpdateConfigLoader {
     /* Shake */
     /* Shake */
     public int getShakeUnlockLevel() { return config.getInt("Skills.Fishing.Shake_UnlockLevel", 150); }
     public int getShakeUnlockLevel() { return config.getInt("Skills.Fishing.Shake_UnlockLevel", 150); }
     public double getShakeChanceRank1() { return config.getDouble("Skills.Fishing.Shake_Chance.Rank_1", 25.0D); }
     public double getShakeChanceRank1() { return config.getDouble("Skills.Fishing.Shake_Chance.Rank_1", 25.0D); }
-    public double getShakeChanceRank2() { return config.getDouble("Skills.Fishing.Shake_Chance.Rank_2", 40.0D); }
-    public double getShakeChanceRank3() { return config.getDouble("Skills.Fishing.Shake_Chance.Rank_3", 55.0D); }
-    public double getShakeChanceRank4() { return config.getDouble("Skills.Fishing.Shake_Chance.Rank_4", 60.0D); }
-    public double getShakeChanceRank5() { return config.getDouble("Skills.Fishing.Shake_Chance.Rank_5", 75.0D); }
+    public double getShakeChanceRank2() { return config.getDouble("Skills.Fishing.Shake_Chance.Rank_2", 25.0D); }
+    public double getShakeChanceRank3() { return config.getDouble("Skills.Fishing.Shake_Chance.Rank_3", 35.0D); }
+    public double getShakeChanceRank4() { return config.getDouble("Skills.Fishing.Shake_Chance.Rank_4", 35.0D); }
+    public double getShakeChanceRank5() { return config.getDouble("Skills.Fishing.Shake_Chance.Rank_5", 45.0D); }
+    public double getShakeChanceRank6() { return config.getDouble("Skills.Fishing.Shake_Chance.Rank_6", 55.0D); }
+    public double getShakeChanceRank7() { return config.getDouble("Skills.Fishing.Shake_Chance.Rank_7", 65.0D); }
+    public double getShakeChanceRank8() { return config.getDouble("Skills.Fishing.Shake_Chance.Rank_8", 75.0D); }
 
 
     /* Vanilla XP Boost */
     /* Vanilla XP Boost */
     public int getFishingVanillaXPModifierRank1() { return config.getInt("Skills.Fishing.VanillaXPBoost.Rank_1", 1); }
     public int getFishingVanillaXPModifierRank1() { return config.getInt("Skills.Fishing.VanillaXPBoost.Rank_1", 1); }
-    public int getFishingVanillaXPModifierRank2() { return config.getInt("Skills.Fishing.VanillaXPBoost.Rank_2", 2); }
-    public int getFishingVanillaXPModifierRank3() { return config.getInt("Skills.Fishing.VanillaXPBoost.Rank_3", 3); }
-    public int getFishingVanillaXPModifierRank4() { return config.getInt("Skills.Fishing.VanillaXPBoost.Rank_4", 4); }
-    public int getFishingVanillaXPModifierRank5() { return config.getInt("Skills.Fishing.VanillaXPBoost.Rank_5", 5); }
+    public int getFishingVanillaXPModifierRank2() { return config.getInt("Skills.Fishing.VanillaXPBoost.Rank_2", 1); }
+    public int getFishingVanillaXPModifierRank3() { return config.getInt("Skills.Fishing.VanillaXPBoost.Rank_3", 2); }
+    public int getFishingVanillaXPModifierRank4() { return config.getInt("Skills.Fishing.VanillaXPBoost.Rank_4", 2); }
+    public int getFishingVanillaXPModifierRank5() { return config.getInt("Skills.Fishing.VanillaXPBoost.Rank_5", 3); }
+    public int getFishingVanillaXPModifierRank6() { return config.getInt("Skills.Fishing.VanillaXPBoost.Rank_6", 4); }
+    public int getFishingVanillaXPModifierRank7() { return config.getInt("Skills.Fishing.VanillaXPBoost.Rank_7", 5); }
+    public int getFishingVanillaXPModifierRank8() { return config.getInt("Skills.Fishing.VanillaXPBoost.Rank_8", 6); }
 
 
     /* HERBALISM */
     /* HERBALISM */
     public int getFarmerDietRankChange() { return config.getInt("Skills.Herbalism.Farmer_Diet_RankChange", 200); }
     public int getFarmerDietRankChange() { return config.getInt("Skills.Herbalism.Farmer_Diet_RankChange", 200); }
@@ -952,22 +1081,34 @@ public class AdvancedConfig extends AutoUpdateConfigLoader {
     public int getSalvageUnlockLevel() { return config.getInt("Skills.Repair.Salvage_UnlockLevel", 600); }
     public int getSalvageUnlockLevel() { return config.getInt("Skills.Repair.Salvage_UnlockLevel", 600); }
 
 
     /* Arcane Forging */
     /* Arcane Forging */
-    public boolean getArcaneForgingDowngradeEnabled() { return config.getBoolean("Skills.Repair.Arcane_Forging.Downgrades.Enabled", true); }
-    public double getArcaneForgingDowngradeChanceRank1() { return config.getDouble("Skills.Repair.Arcane_Forging.Downgrades.Chance.Rank_1", 75.0D); }
-    public double getArcaneForgingDowngradeChanceRank2() { return config.getDouble("Skills.Repair.Arcane_Forging.Downgrades.Chance.Rank_2", 50.0D); }
-    public double getArcaneForgingDowngradeChanceRank3() { return config.getDouble("Skills.Repair.Arcane_Forging.Downgrades.Chance.Rank_3", 25.0D); }
-    public double getArcaneForgingDowngradeChanceRank4() { return config.getDouble("Skills.Repair.Arcane_Forging.Downgrades.Chance.Rank_4", 15.0D); }
+    public int getArcaneForgingRankLevels1() { return config.getInt("Skills.Repair.Arcane_Forging.Rank_Levels.Rank_1", 125); }
+    public int getArcaneForgingRankLevels2() { return config.getInt("Skills.Repair.Arcane_Forging.Rank_Levels.Rank_2", 250); }
+    public int getArcaneForgingRankLevels3() { return config.getInt("Skills.Repair.Arcane_Forging.Rank_Levels.Rank_3", 375); }
+    public int getArcaneForgingRankLevels4() { return config.getInt("Skills.Repair.Arcane_Forging.Rank_Levels.Rank_4", 500); }
+    public int getArcaneForgingRankLevels5() { return config.getInt("Skills.Repair.Arcane_Forging.Rank_Levels.Rank_5", 625); }
+    public int getArcaneForgingRankLevels6() { return config.getInt("Skills.Repair.Arcane_Forging.Rank_Levels.Rank_6", 750); }
+    public int getArcaneForgingRankLevels7() { return config.getInt("Skills.Repair.Arcane_Forging.Rank_Levels.Rank_7", 875); }
+    public int getArcaneForgingRankLevels8() { return config.getInt("Skills.Repair.Arcane_Forging.Rank_Levels.Rank_8", 1000); }
 
 
     public boolean getArcaneForgingEnchantLossEnabled() { return config.getBoolean("Skills.Repair.Arcane_Forging.May_Lose_Enchants", true); }
     public boolean getArcaneForgingEnchantLossEnabled() { return config.getBoolean("Skills.Repair.Arcane_Forging.May_Lose_Enchants", true); }
-    public double getArcaneForgingKeepEnchantsChanceRank1() { return config.getDouble("Skills.Repair.Arcane_Forging.Keep_Enchants.Chance.Rank_1", 10.0D); }
-    public double getArcaneForgingKeepEnchantsChanceRank2() { return config.getDouble("Skills.Repair.Arcane_Forging.Keep_Enchants.Chance.Rank_2", 20.0D); }
-    public double getArcaneForgingKeepEnchantsChanceRank3() { return config.getDouble("Skills.Repair.Arcane_Forging.Keep_Enchants.Chance.Rank_3", 30.0D); }
-    public double getArcaneForgingKeepEnchantsChanceRank4() { return config.getDouble("Skills.Repair.Arcane_Forging.Keep_Enchants.Chance.Rank_4", 40.0D); }
-
-    public int getArcaneForgingRankLevels1() { return config.getInt("Skills.Repair.Arcane_Forging.Rank_Levels.Rank_1", 100); }
-    public int getArcaneForgingRankLevels2() { return config.getInt("Skills.Repair.Arcane_Forging.Rank_Levels.Rank_2", 250); }
-    public int getArcaneForgingRankLevels3() { return config.getInt("Skills.Repair.Arcane_Forging.Rank_Levels.Rank_3", 500); }
-    public int getArcaneForgingRankLevels4() { return config.getInt("Skills.Repair.Arcane_Forging.Rank_Levels.Rank_4", 750); }
+    public double getArcaneForgingKeepEnchantsChanceRank1() { return config.getDouble("Skills.Repair.Arcane_Forging.Keep_Enchants_Chance.Rank_1", 10.0D); }
+    public double getArcaneForgingKeepEnchantsChanceRank2() { return config.getDouble("Skills.Repair.Arcane_Forging.Keep_Enchants_Chance.Rank_2", 20.0D); }
+    public double getArcaneForgingKeepEnchantsChanceRank3() { return config.getDouble("Skills.Repair.Arcane_Forging.Keep_Enchants_Chance.Rank_3", 30.0D); }
+    public double getArcaneForgingKeepEnchantsChanceRank4() { return config.getDouble("Skills.Repair.Arcane_Forging.Keep_Enchants_Chance.Rank_4", 40.0D); }
+    public double getArcaneForgingKeepEnchantsChanceRank5() { return config.getDouble("Skills.Repair.Arcane_Forging.Keep_Enchants_Chance.Rank_5", 50.0D); }
+    public double getArcaneForgingKeepEnchantsChanceRank6() { return config.getDouble("Skills.Repair.Arcane_Forging.Keep_Enchants_Chance.Rank_6", 50.0D); }
+    public double getArcaneForgingKeepEnchantsChanceRank7() { return config.getDouble("Skills.Repair.Arcane_Forging.Keep_Enchants_Chance.Rank_7", 60.0D); }
+    public double getArcaneForgingKeepEnchantsChanceRank8() { return config.getDouble("Skills.Repair.Arcane_Forging.Keep_Enchants_Chance.Rank_8", 60.0D); }
+
+    public boolean getArcaneForgingDowngradeEnabled() { return config.getBoolean("Skills.Repair.Arcane_Forging.Downgrades_Enabled", true); }
+    public double getArcaneForgingDowngradeChanceRank1() { return config.getDouble("Skills.Repair.Arcane_Forging.Downgrades_Chance.Rank_1", 75.0D); }
+    public double getArcaneForgingDowngradeChanceRank2() { return config.getDouble("Skills.Repair.Arcane_Forging.Downgrades_Chance.Rank_2", 50.0D); }
+    public double getArcaneForgingDowngradeChanceRank3() { return config.getDouble("Skills.Repair.Arcane_Forging.Downgrades_Chance.Rank_3", 40.0D); }
+    public double getArcaneForgingDowngradeChanceRank4() { return config.getDouble("Skills.Repair.Arcane_Forging.Downgrades_Chance.Rank_4", 30.0D); }
+    public double getArcaneForgingDowngradeChanceRank5() { return config.getDouble("Skills.Repair.Arcane_Forging.Downgrades_Chance.Rank_5", 25.0D); }
+    public double getArcaneForgingDowngradeChanceRank6() { return config.getDouble("Skills.Repair.Arcane_Forging.Downgrades_Chance.Rank_6", 20.0D); }
+    public double getArcaneForgingDowngradeChanceRank7() { return config.getDouble("Skills.Repair.Arcane_Forging.Downgrades_Chance.Rank_7", 15.0D); }
+    public double getArcaneForgingDowngradeChanceRank8() { return config.getDouble("Skills.Repair.Arcane_Forging.Downgrades_Chance.Rank_8", 10.0D); }
 
 
     /* SMELTING */
     /* SMELTING */
     public int getBurnModifierMaxLevel() { return config.getInt("Skills.Smelting.FuelEfficiency_MaxBonusLevel", 1000); }
     public int getBurnModifierMaxLevel() { return config.getInt("Skills.Smelting.FuelEfficiency_MaxBonusLevel", 1000); }
@@ -979,17 +1120,23 @@ public class AdvancedConfig extends AutoUpdateConfigLoader {
     public int getFluxMiningUnlockLevel() { return config.getInt("Skills.Smelting.FluxMining_UnlockLevel", 250); }
     public int getFluxMiningUnlockLevel() { return config.getInt("Skills.Smelting.FluxMining_UnlockLevel", 250); }
     public double getFluxMiningChance() { return config.getDouble("Skills.Smelting.FluxMining_Chance", 33.0D); }
     public double getFluxMiningChance() { return config.getDouble("Skills.Smelting.FluxMining_Chance", 33.0D); }
 
 
-    public int getSmeltingVanillaXPBoostRank1Level() { return config.getInt("Skills.Smelting.VanillaXPBoost_Rank1Level", 100); }
-    public int getSmeltingVanillaXPBoostRank2Level() { return config.getInt("Skills.Smelting.VanillaXPBoost_Rank2Level", 300); }
-    public int getSmeltingVanillaXPBoostRank3Level() { return config.getInt("Skills.Smelting.VanillaXPBoost_Rank3Level", 500); }
-    public int getSmeltingVanillaXPBoostRank4Level() { return config.getInt("Skills.Smelting.VanillaXPBoost_Rank4Level", 700); }
-    public int getSmeltingVanillaXPBoostRank5Level() { return config.getInt("Skills.Smelting.VanillaXPBoost_Rank5Level", 900); }
-
-    public int getSmeltingVanillaXPBoostRank1Multiplier() { return config.getInt("Skills.Smelting.VanillaXPBoost_Rank1Multiplier", 2); }
-    public int getSmeltingVanillaXPBoostRank2Multiplier() { return config.getInt("Skills.Smelting.VanillaXPBoost_Rank2Multiplier", 3); }
-    public int getSmeltingVanillaXPBoostRank3Multiplier() { return config.getInt("Skills.Smelting.VanillaXPBoost_Rank3Multiplier", 4); }
-    public int getSmeltingVanillaXPBoostRank4Multiplier() { return config.getInt("Skills.Smelting.VanillaXPBoost_Rank4Multiplier", 5); }
-    public int getSmeltingVanillaXPBoostRank5Multiplier() { return config.getInt("Skills.Smelting.VanillaXPBoost_Rank5Multiplier", 6); }
+    public int getSmeltingVanillaXPBoostRank1Level() { return config.getInt("Skills.Smelting.VanillaXPBoost.Rank_Levels.Rank_1", 125); }
+    public int getSmeltingVanillaXPBoostRank2Level() { return config.getInt("Skills.Smelting.VanillaXPBoost.Rank_Levels.Rank_2", 250); }
+    public int getSmeltingVanillaXPBoostRank3Level() { return config.getInt("Skills.Smelting.VanillaXPBoost.Rank_Levels.Rank_3", 375); }
+    public int getSmeltingVanillaXPBoostRank4Level() { return config.getInt("Skills.Smelting.VanillaXPBoost.Rank_Levels.Rank_4", 500); }
+    public int getSmeltingVanillaXPBoostRank5Level() { return config.getInt("Skills.Smelting.VanillaXPBoost.Rank_Levels.Rank_5", 625); }
+    public int getSmeltingVanillaXPBoostRank6Level() { return config.getInt("Skills.Smelting.VanillaXPBoost.Rank_Levels.Rank_6", 750); }
+    public int getSmeltingVanillaXPBoostRank7Level() { return config.getInt("Skills.Smelting.VanillaXPBoost.Rank_Levels.Rank_7", 875); }
+    public int getSmeltingVanillaXPBoostRank8Level() { return config.getInt("Skills.Smelting.VanillaXPBoost.Rank_Levels.Rank_8", 1000); }
+
+    public int getSmeltingVanillaXPBoostRank1Multiplier() { return config.getInt("Skills.Smelting.VanillaXPBoost.XP_Multiplier.Rank_1", 1); }
+    public int getSmeltingVanillaXPBoostRank2Multiplier() { return config.getInt("Skills.Smelting.VanillaXPBoost.XP_Multiplier.Rank_2", 2); }
+    public int getSmeltingVanillaXPBoostRank3Multiplier() { return config.getInt("Skills.Smelting.VanillaXPBoost.XP_Multiplier.Rank_3", 3); }
+    public int getSmeltingVanillaXPBoostRank4Multiplier() { return config.getInt("Skills.Smelting.VanillaXPBoost.XP_Multiplier.Rank_4", 3); }
+    public int getSmeltingVanillaXPBoostRank5Multiplier() { return config.getInt("Skills.Smelting.VanillaXPBoost.XP_Multiplier.Rank_5", 4); }
+    public int getSmeltingVanillaXPBoostRank6Multiplier() { return config.getInt("Skills.Smelting.VanillaXPBoost.XP_Multiplier.Rank_6", 4); }
+    public int getSmeltingVanillaXPBoostRank7Multiplier() { return config.getInt("Skills.Smelting.VanillaXPBoost.XP_Multiplier.Rank_7", 5); }
+    public int getSmeltingVanillaXPBoostRank8Multiplier() { return config.getInt("Skills.Smelting.VanillaXPBoost.XP_Multiplier.Rank_8", 5); }
 
 
     /* SWORDS */
     /* SWORDS */
     public double getBleedChanceMax() { return config.getDouble("Skills.Swords.Bleed_ChanceMax", 75.0D); }
     public double getBleedChanceMax() { return config.getDouble("Skills.Swords.Bleed_ChanceMax", 75.0D); }

+ 12 - 0
src/main/java/com/gmail/nossr50/skills/fishing/Fishing.java

@@ -16,6 +16,18 @@ import com.gmail.nossr50.util.Misc;
 public final class Fishing {
 public final class Fishing {
     // The order of the values is extremely important, a few methods depend on it to work properly
     // The order of the values is extremely important, a few methods depend on it to work properly
     protected enum Tier {
     protected enum Tier {
+        EIGHT(8) {
+            @Override public int getLevel() { return AdvancedConfig.getInstance().getFishingTierLevelsTier8(); }
+            @Override public double getShakeChance() { return AdvancedConfig.getInstance().getShakeChanceRank8(); }
+            @Override public int getVanillaXPBoostModifier() { return AdvancedConfig.getInstance().getFishingVanillaXPModifierRank8(); }},
+        SEVEN(7) {
+            @Override public int getLevel() { return AdvancedConfig.getInstance().getFishingTierLevelsTier7(); }
+            @Override public double getShakeChance() { return AdvancedConfig.getInstance().getShakeChanceRank7(); }
+            @Override public int getVanillaXPBoostModifier() { return AdvancedConfig.getInstance().getFishingVanillaXPModifierRank7(); }},
+        SIX(6) {
+            @Override public int getLevel() { return AdvancedConfig.getInstance().getFishingTierLevelsTier6(); }
+            @Override public double getShakeChance() { return AdvancedConfig.getInstance().getShakeChanceRank6(); }
+            @Override public int getVanillaXPBoostModifier() { return AdvancedConfig.getInstance().getFishingVanillaXPModifierRank6(); }},
         FIVE(5) {
         FIVE(5) {
             @Override public int getLevel() { return AdvancedConfig.getInstance().getFishingTierLevelsTier5(); }
             @Override public int getLevel() { return AdvancedConfig.getInstance().getFishingTierLevelsTier5(); }
             @Override public double getShakeChance() { return AdvancedConfig.getInstance().getShakeChanceRank5(); }
             @Override public double getShakeChance() { return AdvancedConfig.getInstance().getShakeChanceRank5(); }

+ 16 - 0
src/main/java/com/gmail/nossr50/skills/repair/ArcaneForging.java

@@ -5,6 +5,22 @@ import com.gmail.nossr50.config.AdvancedConfig;
 public class ArcaneForging {
 public class ArcaneForging {
     // The order of the values is extremely important, a few methods depend on it to work properly
     // The order of the values is extremely important, a few methods depend on it to work properly
     protected enum Tier {
     protected enum Tier {
+        EIGHT(8) {
+            @Override public int getLevel() { return AdvancedConfig.getInstance().getArcaneForgingRankLevels8(); }
+            @Override public double getKeepEnchantChance() { return AdvancedConfig.getInstance().getArcaneForgingKeepEnchantsChanceRank8(); }
+            @Override public double getDowngradeEnchantChance() { return AdvancedConfig.getInstance().getArcaneForgingDowngradeChanceRank8(); }},
+        SEVEN(7) {
+            @Override public int getLevel() { return AdvancedConfig.getInstance().getArcaneForgingRankLevels7(); }
+            @Override public double getKeepEnchantChance() { return AdvancedConfig.getInstance().getArcaneForgingKeepEnchantsChanceRank7(); }
+            @Override public double getDowngradeEnchantChance() { return AdvancedConfig.getInstance().getArcaneForgingDowngradeChanceRank7(); }},
+        SIX(6) {
+            @Override public int getLevel() { return AdvancedConfig.getInstance().getArcaneForgingRankLevels6(); }
+            @Override public double getKeepEnchantChance() { return AdvancedConfig.getInstance().getArcaneForgingKeepEnchantsChanceRank6(); }
+            @Override public double getDowngradeEnchantChance() { return AdvancedConfig.getInstance().getArcaneForgingDowngradeChanceRank6(); }},
+        FIVE(5) {
+            @Override public int getLevel() { return AdvancedConfig.getInstance().getArcaneForgingRankLevels5(); }
+            @Override public double getKeepEnchantChance() { return AdvancedConfig.getInstance().getArcaneForgingKeepEnchantsChanceRank5(); }
+            @Override public double getDowngradeEnchantChance() { return AdvancedConfig.getInstance().getArcaneForgingDowngradeChanceRank5(); }},
         FOUR(4) {
         FOUR(4) {
             @Override public int getLevel() { return AdvancedConfig.getInstance().getArcaneForgingRankLevels4(); }
             @Override public int getLevel() { return AdvancedConfig.getInstance().getArcaneForgingRankLevels4(); }
             @Override public double getKeepEnchantChance() { return AdvancedConfig.getInstance().getArcaneForgingKeepEnchantsChanceRank4(); }
             @Override public double getKeepEnchantChance() { return AdvancedConfig.getInstance().getArcaneForgingKeepEnchantsChanceRank4(); }

+ 9 - 0
src/main/java/com/gmail/nossr50/skills/smelting/Smelting.java

@@ -9,6 +9,15 @@ import com.gmail.nossr50.datatypes.skills.SkillType;
 public class Smelting {
 public class Smelting {
     // The order of the values is extremely important, a few methods depend on it to work properly
     // The order of the values is extremely important, a few methods depend on it to work properly
     protected enum Tier {
     protected enum Tier {
+        EIGHT(8) {
+            @Override public int getLevel() { return AdvancedConfig.getInstance().getSmeltingVanillaXPBoostRank8Level(); }
+            @Override public int getVanillaXPBoostModifier() { return AdvancedConfig.getInstance().getSmeltingVanillaXPBoostRank8Multiplier(); }},
+        SEVEN(7) {
+            @Override public int getLevel() { return AdvancedConfig.getInstance().getSmeltingVanillaXPBoostRank7Level(); }
+            @Override public int getVanillaXPBoostModifier() { return AdvancedConfig.getInstance().getSmeltingVanillaXPBoostRank7Multiplier(); }},
+        SIX(6) {
+            @Override public int getLevel() { return AdvancedConfig.getInstance().getSmeltingVanillaXPBoostRank6Level(); }
+            @Override public int getVanillaXPBoostModifier() { return AdvancedConfig.getInstance().getSmeltingVanillaXPBoostRank6Multiplier(); }},
         FIVE(5) {
         FIVE(5) {
             @Override public int getLevel() { return AdvancedConfig.getInstance().getSmeltingVanillaXPBoostRank5Level(); }
             @Override public int getLevel() { return AdvancedConfig.getInstance().getSmeltingVanillaXPBoostRank5Level(); }
             @Override public int getVanillaXPBoostModifier() { return AdvancedConfig.getInstance().getSmeltingVanillaXPBoostRank5Multiplier(); }},
             @Override public int getVanillaXPBoostModifier() { return AdvancedConfig.getInstance().getSmeltingVanillaXPBoostRank5Multiplier(); }},

+ 77 - 47
src/main/resources/advanced.yml

@@ -118,29 +118,40 @@ Skills:
     Fishing:
     Fishing:
         # Shake_UnlockLevel: Fishing level when the Shake ability unlocks
         # Shake_UnlockLevel: Fishing level when the Shake ability unlocks
         Shake_UnlockLevel: 150
         Shake_UnlockLevel: 150
+
+        # Rank_Levels: Fishing level where rank gets unlocked
+        Rank_Levels:
+            Rank_1: 125
+            Rank_2: 250
+            Rank_3: 375
+            Rank_4: 500
+            Rank_5: 625
+            Rank_6: 750
+            Rank_7: 875
+            Rank_8: 1000
+
         Shake_Chance:
         Shake_Chance:
             Rank_1: 25.0
             Rank_1: 25.0
-            Rank_2: 40.0
-            Rank_3: 55.0
-            Rank_4: 60.0
-            Rank_5: 75.0
-
-        #VanillaXPBoost: Vanilla XP gained from fishing is mutliplied by these values.
+            Rank_2: 25.0
+            Rank_3: 35.0
+            Rank_4: 35.0
+            Rank_5: 45.0
+            Rank_6: 55.0
+            Rank_7: 65.0
+            Rank_8: 75.0
+
+        # VanillaXPBoost: Vanilla XP gained from fishing is multiplied by these values.
         VanillaXPBoost:
         VanillaXPBoost:
-            Rank_1: 1
-            Rank_2: 2
-            Rank_3: 3
-            Rank_4: 4
-            Rank_5: 5
-
-        # Tiers
-        Tier_Levels:
-            Tier1: 0
-            Tier2: 200
-            Tier3: 400
-            Tier4: 600
-            Tier5: 800
-            
+            XP_Multiplier:
+                Rank_1: 1
+                Rank_2: 1
+                Rank_3: 2
+                Rank_4: 2
+                Rank_5: 3
+                Rank_6: 4
+                Rank_7: 5
+                Rank_8: 6
+
         # MagicHunter_Multiplier: Determines the chance of fishing enchanted items. The chance is calculated by getting the fishing TreasureHunt tier and multiplying it with MagicHunter_Multiplier
         # MagicHunter_Multiplier: Determines the chance of fishing enchanted items. The chance is calculated by getting the fishing TreasureHunt tier and multiplying it with MagicHunter_Multiplier
         MagicHunter_Multiplier: 5.0
         MagicHunter_Multiplier: 5.0
 
 
@@ -265,23 +276,33 @@ Skills:
         Arcane_Forging:
         Arcane_Forging:
             May_Lose_Enchants: true
             May_Lose_Enchants: true
             Rank_Levels:
             Rank_Levels:
-                Rank_1: 100
+                Rank_1: 125
                 Rank_2: 250
                 Rank_2: 250
-                Rank_3: 500
-                Rank_4: 750
-            Keep_Enchants:
-                Chance:
-                    Rank_4: 40.0
-                    Rank_3: 30.0
-                    Rank_2: 20.0
-                    Rank_1: 10.0
-            Downgrades:
-                Enabled: true
-                Chance:
-                    Rank_4: 15.0
-                    Rank_3: 25.0
-                    Rank_2: 50.0
-                    Rank_1: 75.0
+                Rank_3: 375
+                Rank_4: 500
+                Rank_5: 625
+                Rank_6: 750
+                Rank_7: 875
+                Rank_8: 1000
+            Keep_Enchants_Chance:
+                Rank_1: 10.0
+                Rank_2: 20.0
+                Rank_3: 30.0
+                Rank_4: 40.0
+                Rank_5: 50.0
+                Rank_6: 50.0
+                Rank_7: 60.0
+                Rank_8: 60.0
+            Downgrades_Enabled: true
+            Downgrades_Chance:
+                Rank_1: 75.0
+                Rank_2: 50.0
+                Rank_3: 40.0
+                Rank_4: 30.0
+                Rank_5: 25.0
+                Rank_6: 20.0
+                Rank_7: 15.0
+                Rank_8: 10.0
     #
     #
     #  Settings for Smelting
     #  Settings for Smelting
     ###
     ###
@@ -302,17 +323,26 @@ Skills:
         FluxMining_Chance: 33.0
         FluxMining_Chance: 33.0
 
 
         # These are the levels at which each progressive level of Vanilla XP Boost unlocks.
         # These are the levels at which each progressive level of Vanilla XP Boost unlocks.
-        VanillaXPBoost_Rank1Level: 100
-        VanillaXPBoost_Rank2Level: 300
-        VanillaXPBoost_Rank3Level: 500
-        VanillaXPBoost_Rank4Level: 700
-        VanillaXPBoost_Rank5Level: 900
-        # These are the multipliers for each rank.
-        VanillaXPBoost_Rank1Multiplier: 2
-        VanillaXPBoost_Rank2Multiplier: 3
-        VanillaXPBoost_Rank3Multiplier: 4
-        VanillaXPBoost_Rank4Multiplier: 5
-        VanillaXPBoost_Rank5Multiplier: 6
+        VanillaXPBoost:
+            Rank_Levels:
+                Rank_1: 125
+                Rank_2: 250
+                Rank_3: 375
+                Rank_4: 500
+                Rank_5: 625
+                Rank_6: 750
+                Rank_7: 875
+                Rank_8: 1000
+            XP_Multiplier:
+                Rank_1: 1
+                Rank_2: 2
+                Rank_3: 3
+                Rank_4: 3
+                Rank_5: 4
+                Rank_6: 4
+                Rank_7: 5
+                Rank_8: 5
+
     #
     #
     #  Settings for Swords
     #  Settings for Swords
     ###
     ###