From b7fc3f05e9475eb0a9902bebb2ad1a9608061f1a Mon Sep 17 00:00:00 2001 From: nossr50 Date: Thu, 24 Jan 2019 15:23:39 -0800 Subject: [PATCH] Iron Arm & Impact scale with Retro properly now Fixes #3723 --- .../gmail/nossr50/config/AdvancedConfig.java | 79 +++++++++++++------ 1 file changed, 54 insertions(+), 25 deletions(-) diff --git a/src/main/java/com/gmail/nossr50/config/AdvancedConfig.java b/src/main/java/com/gmail/nossr50/config/AdvancedConfig.java index 72c8f99e8..9a60f2b21 100644 --- a/src/main/java/com/gmail/nossr50/config/AdvancedConfig.java +++ b/src/main/java/com/gmail/nossr50/config/AdvancedConfig.java @@ -40,7 +40,7 @@ public class AdvancedConfig extends AutoUpdateConfigLoader { } /* ACROBATICS */ - if (getMaxChance(SubSkillType.ACROBATICS_DODGE) < 1) { + if (getMaximumProbability(SubSkillType.ACROBATICS_DODGE) < 1) { reason.add("Skills.Acrobatics.Dodge.ChanceMax should be at least 1!"); } @@ -52,7 +52,7 @@ public class AdvancedConfig extends AutoUpdateConfigLoader { reason.add("Skills.Acrobatics.Dodge.DamageModifier should be greater than 1!"); } - if (getMaxChance(SubSkillType.ACROBATICS_ROLL) < 1) { + if (getMaximumProbability(SubSkillType.ACROBATICS_ROLL) < 1) { reason.add("Skills.Acrobatics.Roll.ChanceMax should be at least 1!"); } @@ -106,7 +106,7 @@ public class AdvancedConfig extends AutoUpdateConfigLoader { reason.add("Skills.Archery.SkillShot.RankDamageMultiplier should be greater than 0!"); } - if (getMaxChance(SubSkillType.ARCHERY_DAZE) < 1) { + if (getMaximumProbability(SubSkillType.ARCHERY_DAZE) < 1) { reason.add("Skills.Archery.Daze.ChanceMax should be at least 1!"); } @@ -118,7 +118,7 @@ public class AdvancedConfig extends AutoUpdateConfigLoader { reason.add("Skills.Archery.Daze.BonusDamage should be at least 0!"); } - if (getMaxChance(SubSkillType.ARCHERY_ARROW_RETRIEVAL) < 1) { + if (getMaximumProbability(SubSkillType.ARCHERY_ARROW_RETRIEVAL) < 1) { reason.add("Skills.Archery.Retrieve.ChanceMax should be at least 1!"); } @@ -136,7 +136,7 @@ public class AdvancedConfig extends AutoUpdateConfigLoader { reason.add("Skills.Axes.AxeMastery.RankDamageMultiplier should be at least 0!"); } - if (getMaxChance(SubSkillType.AXES_CRITICAL_STRIKES) < 1) { + if (getMaximumProbability(SubSkillType.AXES_CRITICAL_STRIKES) < 1) { reason.add("Skills.Axes.CriticalHit.ChanceMax should be at least 1!"); } @@ -242,7 +242,7 @@ public class AdvancedConfig extends AutoUpdateConfigLoader { reason.add("Skills.Herbalism.GreenThumb.StageChange should be at least 1!"); } - if (getMaxChance(SubSkillType.HERBALISM_GREEN_THUMB) < 1) { + if (getMaximumProbability(SubSkillType.HERBALISM_GREEN_THUMB) < 1) { reason.add("Skills.Herbalism.GreenThumb.ChanceMax should be at least 1!"); } @@ -250,7 +250,7 @@ public class AdvancedConfig extends AutoUpdateConfigLoader { reason.add("Skills.Herbalism.GreenThumb.MaxBonusLevel should be at least 1!"); } - if (getMaxChance(SubSkillType.HERBALISM_DOUBLE_DROPS) < 1) { + if (getMaximumProbability(SubSkillType.HERBALISM_DOUBLE_DROPS) < 1) { reason.add("Skills.Herbalism.DoubleDrops.ChanceMax should be at least 1!"); } @@ -258,7 +258,7 @@ public class AdvancedConfig extends AutoUpdateConfigLoader { reason.add("Skills.Herbalism.DoubleDrops.MaxBonusLevel should be at least 1!"); } - if (getMaxChance(SubSkillType.HERBALISM_HYLIAN_LUCK) < 1) { + if (getMaximumProbability(SubSkillType.HERBALISM_HYLIAN_LUCK) < 1) { reason.add("Skills.Herbalism.HylianLuck.ChanceMax should be at least 1!"); } @@ -266,7 +266,7 @@ public class AdvancedConfig extends AutoUpdateConfigLoader { reason.add("Skills.Herbalism.HylianLuck.MaxBonusLevel should be at least 1!"); } - if (getMaxChance(SubSkillType.HERBALISM_SHROOM_THUMB) < 1) { + if (getMaximumProbability(SubSkillType.HERBALISM_SHROOM_THUMB) < 1) { reason.add("Skills.Herbalism.ShroomThumb.ChanceMax should be at least 1!"); } @@ -275,7 +275,7 @@ public class AdvancedConfig extends AutoUpdateConfigLoader { } /* MINING */ - if (getMaxChance(SubSkillType.MINING_DOUBLE_DROPS) < 1) { + if (getMaximumProbability(SubSkillType.MINING_DOUBLE_DROPS) < 1) { reason.add("Skills.Mining.DoubleDrops.ChanceMax should be at least 1!"); } @@ -348,7 +348,7 @@ public class AdvancedConfig extends AutoUpdateConfigLoader { reason.add("Skills.Repair.RepairMastery.MaxBonusLevel should be at least 1!"); } - if (getMaxChance(SubSkillType.REPAIR_SUPER_REPAIR) < 1) { + if (getMaximumProbability(SubSkillType.REPAIR_SUPER_REPAIR) < 1) { reason.add("Skills.Repair.SuperRepair.ChanceMax should be at least 1!"); } @@ -446,7 +446,7 @@ public class AdvancedConfig extends AutoUpdateConfigLoader { reason.add("Skills.Smelting.SecondSmelt.MaxBonusLevel should be at least 1!"); } - if (getMaxChance(SubSkillType.SMELTING_SECOND_SMELT) < 1) { + if (getMaximumProbability(SubSkillType.SMELTING_SECOND_SMELT) < 1) { reason.add("Skills.Smelting.SecondSmelt.ChanceMax should be at least 1!"); } @@ -483,7 +483,7 @@ public class AdvancedConfig extends AutoUpdateConfigLoader { }*/ /* SWORDS */ - if (getMaxChance(SubSkillType.SWORDS_RUPTURE) < 1) { + if (getMaximumProbability(SubSkillType.SWORDS_RUPTURE) < 1) { reason.add("Skills.Swords.Rupture.ChanceMax should be at least 1!"); } @@ -503,7 +503,7 @@ public class AdvancedConfig extends AutoUpdateConfigLoader { reason.add("Skills.Swords.Rupture.BaseTicks should be at least 1!"); } - if (getMaxChance(SubSkillType.SWORDS_COUNTER_ATTACK) < 1) { + if (getMaximumProbability(SubSkillType.SWORDS_COUNTER_ATTACK) < 1) { reason.add("Skills.Swords.CounterAttack.ChanceMax should be at least 1!"); } @@ -525,7 +525,7 @@ public class AdvancedConfig extends AutoUpdateConfigLoader { /* TAMING */ - if (getMaxChance(SubSkillType.TAMING_GORE) < 1) { + if (getMaximumProbability(SubSkillType.TAMING_GORE) < 1) { reason.add("Skills.Taming.Gore.ChanceMax should be at least 1!"); } @@ -586,7 +586,7 @@ public class AdvancedConfig extends AutoUpdateConfigLoader { } /* UNARMED */ - if (getMaxChance(SubSkillType.UNARMED_DISARM) < 1) { + if (getMaximumProbability(SubSkillType.UNARMED_DISARM) < 1) { reason.add("Skills.Unarmed.Disarm.ChanceMax should be at least 1!"); } @@ -594,7 +594,7 @@ public class AdvancedConfig extends AutoUpdateConfigLoader { reason.add("Skills.Unarmed.Disarm.MaxBonusLevel should be at least 1!"); } - if (getMaxChance(SubSkillType.UNARMED_ARROW_DEFLECT) < 1) { + if (getMaximumProbability(SubSkillType.UNARMED_ARROW_DEFLECT) < 1) { reason.add("Skills.Unarmed.ArrowDeflect.ChanceMax should be at least 1!"); } @@ -602,7 +602,7 @@ public class AdvancedConfig extends AutoUpdateConfigLoader { reason.add("Skills.Unarmed.ArrowDeflect.MaxBonusLevel should be at least 1!"); } - if (getMaxChance(SubSkillType.UNARMED_IRON_GRIP) < 1) { + if (getMaximumProbability(SubSkillType.UNARMED_IRON_GRIP) < 1) { reason.add("Skills.Unarmed.IronGrip.ChanceMax should be at least 1!"); } @@ -632,7 +632,7 @@ public class AdvancedConfig extends AutoUpdateConfigLoader { reason.add("Skills.Woodcutting.LeafBlower.UnlockLevel should be at least 0!"); }*/ - if (getMaxChance(SubSkillType.WOODCUTTING_HARVEST_LUMBER) < 1) { + if (getMaximumProbability(SubSkillType.WOODCUTTING_HARVEST_LUMBER) < 1) { reason.add("Skills.Woodcutting.HarvestLumber.ChanceMax should be at least 1!"); } @@ -708,8 +708,6 @@ public class AdvancedConfig extends AutoUpdateConfigLoader { return maxBonusLevel; } - public double getMaxChance(SubSkillType subSkillType) { return config.getDouble(subSkillType.getAdvConfigAddress() + ".ChanceMax", 100.0D);} - public int getMaxBonusLevel(AbstractSubSkill abstractSubSkill) { int maxBonusLevel = config.getInt("Skills."+abstractSubSkill.getPrimaryKeyName()+"."+abstractSubSkill.getConfigKeyName()+".MaxBonusLevel"); @@ -719,9 +717,23 @@ public class AdvancedConfig extends AutoUpdateConfigLoader { return maxBonusLevel; } - public double getMaxChance(AbstractSubSkill abstractSubSkill) + public double getMaximumProbability(SubSkillType subSkillType) { + double maximumProbability = config.getDouble(subSkillType.getAdvConfigAddress() + ".ChanceMax", 100.0D); + + if(mcMMO.isRetroModeEnabled()) + maximumProbability *= 10; // It seems weird but our formulas need this + + return maximumProbability; + } + + public double getMaximumProbability(AbstractSubSkill abstractSubSkill) { - return config.getDouble("Skills."+abstractSubSkill.getPrimaryKeyName()+"."+abstractSubSkill.getConfigKeyName()+".ChanceMax", 100.0D); + double maximumProbability = config.getDouble("Skills."+abstractSubSkill.getPrimaryKeyName()+"."+abstractSubSkill.getConfigKeyName()+".ChanceMax", 100.0D); + + if(mcMMO.isRetroModeEnabled()) + maximumProbability *= 10; // It seems weird but our formulas need this + + return maximumProbability; } /* Notification Settings */ @@ -887,7 +899,15 @@ public class AdvancedConfig extends AutoUpdateConfigLoader { public double getGreaterImpactModifier() { return config.getDouble("Skills.Axes.GreaterImpact.KnockbackModifier", 1.5D); } public double getGreaterImpactBonusDamage() { return config.getDouble("Skills.Axes.GreaterImpact.BonusDamage", 2.0D); } - public int getArmorImpactIncreaseLevel() { return config.getInt("Skills.Axes.ArmorImpact.IncreaseLevel", 50); } + public int getArmorImpactIncreaseLevel() { + int increaseLevel = config.getInt("Skills.Axes.ArmorImpact.IncreaseLevel", 5); + + if(mcMMO.isRetroModeEnabled()) + return increaseLevel * 10; + + return increaseLevel; + } + public double getImpactChance() { return config.getDouble("Skills.Axes.ArmorImpact.Chance", 25.0D); } public double getArmorImpactMaxDurabilityDamage() { return config.getDouble("Skills.Axes.ArmorImpact.MaxPercentageDurabilityDamage", 20.0D); } @@ -997,7 +1017,16 @@ public class AdvancedConfig extends AutoUpdateConfigLoader { /* UNARMED */ public double getIronArmMinBonus() { return config.getDouble("Skills.Unarmed.IronArmStyle.BonusMin", 3.0D); } public double getIronArmMaxBonus() { return config.getDouble("Skills.Unarmed.IronArmStyle.BonusMax", 8.0D); } - public int getIronArmIncreaseLevel() { return config.getInt("Skills.Unarmed.IronArmStyle.IncreaseLevel", 50); } + + public int getIronArmIncreaseLevel() { + int increaseLevel = config.getInt("Skills.Unarmed.IronArmStyle.IncreaseLevel", 5); + + if(mcMMO.isRetroModeEnabled()) + return increaseLevel * 10; + + return increaseLevel; + } + public boolean getDisarmProtected() { return config.getBoolean("Skills.Unarmed.Disarm.AntiTheft", false); } /* WOODCUTTING */