From 89ab87b6dda4380b54c0473cfee71a77108b0a03 Mon Sep 17 00:00:00 2001 From: nossr50 Date: Fri, 2 Mar 2012 16:46:38 -0800 Subject: [PATCH] Fixed Greater Impact not dealing damage, nerf'd Axes critical chance. --- Changelog.txt | 3 +++ src/main/java/com/gmail/nossr50/Combat.java | 2 +- .../gmail/nossr50/commands/skills/AxesCommand.java | 6 +++--- src/main/java/com/gmail/nossr50/skills/Axes.java | 14 +++++++------- 4 files changed, 14 insertions(+), 11 deletions(-) diff --git a/Changelog.txt b/Changelog.txt index 8837fec38..64a042236 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -13,6 +13,9 @@ Version 1.3.02 ! Changed Tree Feller to cause injury if your axe splinters from a failed Tree Feller attempt ! Changed invincibility checks in EntityDamage listeners to accommodate for vanilla MC behaviour ! Changed Ignition to add fire ticks rather than replacing them. + ! Changed Axes critical to have a max critical rate of 37.5% down from 75% + = Fixed bug with Axes command displaying wrong Greater Impact bonus damage + = Fixed bug where Impact didn't apply bonus damage = Fixed Impact proccing multiple times in a row = Fixed bug where PVE skills didn't level diff --git a/src/main/java/com/gmail/nossr50/Combat.java b/src/main/java/com/gmail/nossr50/Combat.java index 47feee2f7..2b0ff52d8 100644 --- a/src/main/java/com/gmail/nossr50/Combat.java +++ b/src/main/java/com/gmail/nossr50/Combat.java @@ -82,7 +82,7 @@ public class Combat Axes.axeCriticalCheck(attacker, event, pluginx); //Critical hit //Impact - Axes.impact(attacker, target); + Axes.impact(attacker, target, event); if (PPa.getSkullSplitterMode()) Axes.applyAoeDamage(attacker, event, pluginx); diff --git a/src/main/java/com/gmail/nossr50/commands/skills/AxesCommand.java b/src/main/java/com/gmail/nossr50/commands/skills/AxesCommand.java index 776b8c676..6396d4eb1 100644 --- a/src/main/java/com/gmail/nossr50/commands/skills/AxesCommand.java +++ b/src/main/java/com/gmail/nossr50/commands/skills/AxesCommand.java @@ -26,9 +26,9 @@ public class AxesCommand implements CommandExecutor { float skillvalue = (float) PP.getSkillLevel(SkillType.AXES); if (PP.getSkillLevel(SkillType.AXES) < 750) - percentage = String.valueOf((skillvalue / 1000) * 100); + percentage = String.valueOf((skillvalue / 2000) * 100); else - percentage = "75"; + percentage = "37.5"; int bonusDmg = Users.getProfile(player).getSkillLevel(SkillType.AXES)/50; if(bonusDmg > 4) @@ -60,7 +60,7 @@ public class AxesCommand implements CommandExecutor { player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] { mcLocale.getString("m.AbilBonusAxes1_0"), mcLocale.getString("m.AbilBonusAxes1_1", new Object[] {bonusDmg}) })); player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] { mcLocale.getString("m.AbilBonusAxes2_0"), mcLocale.getString("m.AbilBonusAxes2_1", new Object[] {durDmg}) })); - player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] { mcLocale.getString("m.AbilBonusAxes3_0"), mcLocale.getString("m.AbilBonusAxes3_1", new Object[] {1}) })); + player.sendMessage(mcLocale.getString("m.AbilityBonusTemplate", new Object[] { mcLocale.getString("m.AbilBonusAxes3_0"), mcLocale.getString("m.AbilBonusAxes3_1", new Object[] {2}) })); player.sendMessage(mcLocale.getString("m.AxesSkullLength", new Object[] { ticks })); return true; diff --git a/src/main/java/com/gmail/nossr50/skills/Axes.java b/src/main/java/com/gmail/nossr50/skills/Axes.java index 51dc0682c..53c357b7a 100644 --- a/src/main/java/com/gmail/nossr50/skills/Axes.java +++ b/src/main/java/com/gmail/nossr50/skills/Axes.java @@ -65,7 +65,7 @@ public class Axes { PlayerProfile PPa = Users.getProfile(attacker); if(m.isAxes(attacker.getItemInHand()) && mcPermissions.getInstance().axes(attacker)){ if(PPa.getSkillLevel(SkillType.AXES) >= 750){ - if(Math.random() * 1000 <= 750 && !x.isDead()){ + if(Math.random() * 2000 <= 750 && !x.isDead()){ if(x instanceof Player){ int damage = (event.getDamage() * 2) - (event.getDamage() / 2); event.setDamage(damage); @@ -78,7 +78,7 @@ public class Axes { } attacker.sendMessage(ChatColor.RED+"CRITICAL HIT!"); } - } else if(Math.random() * 1000 <= PPa.getSkillLevel(SkillType.AXES) && !x.isDead()){ + } else if(Math.random() * 2000 <= PPa.getSkillLevel(SkillType.AXES) && !x.isDead()){ if(x instanceof Player){ int damage = (event.getDamage() * 2) - (event.getDamage() / 2); event.setDamage(damage); @@ -94,7 +94,7 @@ public class Axes { } } - public static void impact(Player attacker, LivingEntity target) + public static void impact(Player attacker, LivingEntity target, EntityDamageByEntityEvent event) { //TODO: Finish this skill, the idea is you will greatly damage an opponents armor and when they are armor less you have a proc that will stun them and deal additional damage. if(target instanceof Player) @@ -116,18 +116,18 @@ public class Axes { } if(emptySlots == 4) - applyImpact(attacker, target); + applyImpact(attacker, target, event); } else //Since mobs are technically unarmored this will always trigger - applyImpact(attacker, target); + applyImpact(attacker, target, event); } - public static void applyImpact(Player attacker, LivingEntity target) + public static void applyImpact(Player attacker, LivingEntity target, EntityDamageByEntityEvent event) { if(Math.random() * 100 > 75) { - Combat.dealDamage(target, 2, attacker); + event.setDamage(event.getDamage()+2); target.setVelocity(attacker.getLocation().getDirection().normalize().multiply(1.5D)); attacker.sendMessage(mcLocale.getString("Axes.GreaterImpactOnEnemy")); }