diff --git a/Changelog.txt b/Changelog.txt index 2bff12bf6..5b343b5cb 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -22,6 +22,11 @@ Version 2.1.2 (Skills) Fixed a bug where Magic Hunter would work without treasure hunter (Skills) As long are you are empty handed mcMMO will no longer put items into your hands (Skills) Improved the styling on /smelting + (Skills) Iron Arm Style can now reach a bonus damage of 10 (up from 8) + (Skills) Iron Arm Style now uses a rank system + (Skills) Iron Grip now uses a rank system + (Skills) Disarm now uses a rank system + (Skills) Arrow Deflect now uses a rank system (Style) Locked skills now are styled differently in the skill command display (Style) Added @ symbol styling for hover tooltips to the locale (Style) Added the skill names in the skill commands display to the locale so it can now be edited and styled @@ -34,6 +39,7 @@ Version 2.1.2 (Config) Added an option for Party XP gains to not update XP bars (Config) Added an option for Passive XP gains to not update XP bars (smelting/brewing) (Config) Added warnings if mcMMO finds a MaxBonusLevel of 0 for any skill that incorporates RNG + (Config) Removed config options for Iron Arm Version 2.1.1 = Fixed an issue where excavation wasn't using the correct permission node diff --git a/src/main/java/com/gmail/nossr50/config/AdvancedConfig.java b/src/main/java/com/gmail/nossr50/config/AdvancedConfig.java index 783d02846..0fa925499 100644 --- a/src/main/java/com/gmail/nossr50/config/AdvancedConfig.java +++ b/src/main/java/com/gmail/nossr50/config/AdvancedConfig.java @@ -610,22 +610,6 @@ public class AdvancedConfig extends AutoUpdateConfigLoader { reason.add("Skills.Unarmed.IronGrip.MaxBonusLevel should be at least 1!"); } - if (getIronArmMinBonus() < 0) { - reason.add("Skills.Unarmed.IronArmStyle.BonusMin should be at least 0!"); - } - - if (getIronArmMaxBonus() < 0) { - reason.add("Skills.Unarmed.IronArmStyle.BonusMax should be at least 0!"); - } - - if (getIronArmMaxBonus() < getIronArmMinBonus()) { - reason.add("Skills.Unarmed.IronArmStyle.BonusMax should be greater than or equal to Skills.Unarmed.IronArm.BonusMin!"); - } - - if (getIronArmIncreaseLevel() < 1) { - reason.add("Skills.Unarmed.IronArmStyle.IncreaseLevel should be at least 1!"); - } - /* WOODCUTTING */ /*if (getLeafBlowUnlockLevel() < 0) { @@ -1023,17 +1007,6 @@ public class AdvancedConfig extends AutoUpdateConfigLoader { public double getMaxHorseJumpStrength() { return config.getDouble("Skills.Taming.CallOfTheWild.MaxHorseJumpStrength", 2.0D); } /* 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() { - 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); } diff --git a/src/main/java/com/gmail/nossr50/datatypes/skills/SubSkillType.java b/src/main/java/com/gmail/nossr50/datatypes/skills/SubSkillType.java index 7ab90f3e7..7ce5823b6 100644 --- a/src/main/java/com/gmail/nossr50/datatypes/skills/SubSkillType.java +++ b/src/main/java/com/gmail/nossr50/datatypes/skills/SubSkillType.java @@ -86,12 +86,12 @@ public enum SubSkillType { TAMING_THICK_FUR(1), /* Unarmed */ - UNARMED_ARROW_DEFLECT, + UNARMED_ARROW_DEFLECT(1), UNARMED_BERSERK(1), UNARMED_BLOCK_CRACKER, - UNARMED_DISARM, - UNARMED_IRON_ARM_STYLE, - UNARMED_IRON_GRIP, + UNARMED_DISARM(1), + UNARMED_IRON_ARM_STYLE(5), + UNARMED_IRON_GRIP(1), /* Woodcutting */ /* WOODCUTTING_BARK_SURGEON(3),*/ diff --git a/src/main/java/com/gmail/nossr50/skills/unarmed/Unarmed.java b/src/main/java/com/gmail/nossr50/skills/unarmed/Unarmed.java index 17bc2eaf1..8b378df27 100644 --- a/src/main/java/com/gmail/nossr50/skills/unarmed/Unarmed.java +++ b/src/main/java/com/gmail/nossr50/skills/unarmed/Unarmed.java @@ -1,16 +1,11 @@ package com.gmail.nossr50.skills.unarmed; -import com.gmail.nossr50.config.AdvancedConfig; import com.gmail.nossr50.config.Config; import org.bukkit.entity.Item; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.PlayerInventory; public class Unarmed { - public static double ironArmMinBonusDamage = AdvancedConfig.getInstance().getIronArmMinBonus(); - public static double ironArmMaxBonusDamage = AdvancedConfig.getInstance().getIronArmMaxBonus(); - public static int ironArmIncreaseLevel = AdvancedConfig.getInstance().getIronArmIncreaseLevel(); - public static boolean blockCrackerSmoothBrick = Config.getInstance().getUnarmedBlockCrackerSmoothbrickToCracked(); public static double berserkDamageModifier = 1.5; diff --git a/src/main/java/com/gmail/nossr50/skills/unarmed/UnarmedManager.java b/src/main/java/com/gmail/nossr50/skills/unarmed/UnarmedManager.java index 17a3e0244..f8ccc9165 100644 --- a/src/main/java/com/gmail/nossr50/skills/unarmed/UnarmedManager.java +++ b/src/main/java/com/gmail/nossr50/skills/unarmed/UnarmedManager.java @@ -16,6 +16,7 @@ import com.gmail.nossr50.util.Permissions; import com.gmail.nossr50.util.player.NotificationManager; import com.gmail.nossr50.util.player.UserManager; import com.gmail.nossr50.util.random.RandomChanceUtil; +import com.gmail.nossr50.util.skills.RankUtils; import com.gmail.nossr50.util.skills.SkillActivationType; import org.bukkit.Material; import org.bukkit.block.BlockState; @@ -35,6 +36,9 @@ public class UnarmedManager extends SkillManager { } public boolean canUseIronArm() { + if(!RankUtils.hasUnlockedSubskill(getPlayer(), SubSkillType.UNARMED_IRON_GRIP)) + return false; + return Permissions.isSubSkillEnabled(getPlayer(), SubSkillType.UNARMED_IRON_ARM_STYLE); } @@ -43,16 +47,25 @@ public class UnarmedManager extends SkillManager { } public boolean canDisarm(LivingEntity target) { + if(!RankUtils.hasUnlockedSubskill(getPlayer(), SubSkillType.UNARMED_DISARM)) + return false; + return target instanceof Player && ((Player) target).getInventory().getItemInMainHand().getType() != Material.AIR && Permissions.isSubSkillEnabled(getPlayer(), SubSkillType.UNARMED_DISARM); } public boolean canDeflect() { + if(!RankUtils.hasUnlockedSubskill(getPlayer(), SubSkillType.UNARMED_ARROW_DEFLECT)) + return false; + Player player = getPlayer(); return ItemUtils.isUnarmed(player.getInventory().getItemInMainHand()) && Permissions.isSubSkillEnabled(getPlayer(), SubSkillType.UNARMED_ARROW_DEFLECT); } public boolean canUseBlockCracker() { + if(!RankUtils.hasUnlockedSubskill(getPlayer(), SubSkillType.UNARMED_BLOCK_CRACKER)) + return false; + return Permissions.isSubSkillEnabled(getPlayer(), SubSkillType.UNARMED_BLOCK_CRACKER); } @@ -130,12 +143,11 @@ public class UnarmedManager extends SkillManager { return 0; } - //linear check no cap return getIronArmDamage(); } public double getIronArmDamage() { - return Math.min(Unarmed.ironArmMinBonusDamage + (getSkillLevel() / Unarmed.ironArmIncreaseLevel), Unarmed.ironArmMaxBonusDamage); + return RankUtils.getRank(getPlayer(), SubSkillType.UNARMED_IRON_ARM_STYLE) * 2; } /** diff --git a/src/main/resources/advanced.yml b/src/main/resources/advanced.yml index e00c84230..855557713 100644 --- a/src/main/resources/advanced.yml +++ b/src/main/resources/advanced.yml @@ -541,9 +541,7 @@ Skills: # BonusMin: Minimum bonus damage for unarmed # BonusMax: Maximum bonus damage for unarmed # IncreaseLevel: Bonus damage increases every increase level - BonusMin: 3.0 - BonusMax: 8.0 - IncreaseLevel: 5 + IncreaseLevel: 10 # # Settings for Woodcutting ### diff --git a/src/main/resources/skillranks.yml b/src/main/resources/skillranks.yml index 87d97ce7f..29a184cb2 100644 --- a/src/main/resources/skillranks.yml +++ b/src/main/resources/skillranks.yml @@ -399,6 +399,35 @@ Unarmed: Rank_1: 10 RetroMode: Rank_1: 100 + ArrowDeflect: + Standard: + Rank_1: 20 + RetroMode: + Rank_1: 200 + Disarm: + Standard: + Rank_1: 25 + RetroMode: + Rank_1: 250 + IronGrip: + Standard: + Rank_1: 60 + RetroMode: + Rank_1: 600 + IronArmStyle: + Standard: + Rank_1: 2 + Rank_2: 25 + Rank_3: 50 + Rank_4: 75 + Rank_5: 100 + RetroMode: + Rank_1: 20 + Rank_2: 250 + Rank_3: 500 + Rank_4: 750 + Rank_5: 1000 + Woodcutting: Splinter: Standard: