From df53e2fd4f5f92e3c8752f71a4a2eab16c28e2ff Mon Sep 17 00:00:00 2001 From: GJ Date: Mon, 4 Mar 2013 22:45:37 -0500 Subject: [PATCH] Fixed issue with some skill activations not activating enough or activating too much. Fixes #785 --- Changelog.txt | 1 + src/main/java/com/gmail/nossr50/skills/axes/AxesManager.java | 5 +++-- .../com/gmail/nossr50/skills/fishing/FishingManager.java | 2 +- .../com/gmail/nossr50/skills/smelting/SmeltingManager.java | 2 +- .../java/com/gmail/nossr50/skills/taming/TamingManager.java | 2 +- 5 files changed, 7 insertions(+), 5 deletions(-) diff --git a/Changelog.txt b/Changelog.txt index 412598743..9d5576b43 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -14,6 +14,7 @@ Version 1.4.02-dev = Fixed bug where the PTP cooldown was being read improperly = Fixed bug where /ptp where broken = Fixed ClassCastException relating to counter-attack with Swords + = Fixed issue with some skill activations not activating enough or activating too much Version 1.4.01 = Fixed bug where trying to use /mctop or /xplock with the Smelting child skill caused NPEs diff --git a/src/main/java/com/gmail/nossr50/skills/axes/AxesManager.java b/src/main/java/com/gmail/nossr50/skills/axes/AxesManager.java index 384c4b02c..3306e8752 100644 --- a/src/main/java/com/gmail/nossr50/skills/axes/AxesManager.java +++ b/src/main/java/com/gmail/nossr50/skills/axes/AxesManager.java @@ -12,6 +12,7 @@ import com.gmail.nossr50.datatypes.skills.ToolType; import com.gmail.nossr50.locale.LocaleLoader; import com.gmail.nossr50.skills.SkillManager; import com.gmail.nossr50.util.ItemUtils; +import com.gmail.nossr50.util.Misc; import com.gmail.nossr50.util.ModUtils; import com.gmail.nossr50.util.Permissions; import com.gmail.nossr50.util.player.UserManager; @@ -92,7 +93,7 @@ public class AxesManager extends SkillManager { int durabilityDamage = 1 + (getSkillLevel() / Axes.impactIncreaseLevel); for (ItemStack armor : target.getEquipment().getArmorContents()) { - if (ItemUtils.isArmor(armor) && Axes.impactChance > getActivationChance()) { + if (ItemUtils.isArmor(armor) && Axes.impactChance > Misc.getRandom().nextInt(getActivationChance())) { double durabilityModifier = 1 / (armor.getEnchantmentLevel(Enchantment.DURABILITY) + 1); // Modifier to simulate the durability enchantment behavior double modifiedDurabilityDamage = durabilityDamage * durabilityModifier; short maxDurability = ModUtils.isCustomArmor(armor) ? ModUtils.getArmorFromItemStack(armor).getDurability() : armor.getType().getMaxDurability(); @@ -111,7 +112,7 @@ public class AxesManager extends SkillManager { * @return the modified event damage if the ability was successful, the original event damage otherwise */ public int greaterImpactCheck(LivingEntity target, int damage) { - if (Axes.greaterImpactChance > getActivationChance()) { + if (Axes.greaterImpactChance > Misc.getRandom().nextInt(getActivationChance())) { Player player = getPlayer(); ParticleEffectUtils.playGreaterImpactEffect(target); diff --git a/src/main/java/com/gmail/nossr50/skills/fishing/FishingManager.java b/src/main/java/com/gmail/nossr50/skills/fishing/FishingManager.java index 7d7714a34..a985c37d2 100644 --- a/src/main/java/com/gmail/nossr50/skills/fishing/FishingManager.java +++ b/src/main/java/com/gmail/nossr50/skills/fishing/FishingManager.java @@ -134,7 +134,7 @@ public class FishingManager extends SkillManager { * @param mob The {@link LivingEntity} affected by the ability */ public void shakeCheck(LivingEntity target) { - if (getActivationChance() > getShakeProbability()) { + if (getShakeProbability() > Misc.getRandom().nextInt(getActivationChance())) { Map possibleDrops = new HashMap(); Fishing.findPossibleDrops(target, possibleDrops); diff --git a/src/main/java/com/gmail/nossr50/skills/smelting/SmeltingManager.java b/src/main/java/com/gmail/nossr50/skills/smelting/SmeltingManager.java index bdd9be936..d24a1dc66 100644 --- a/src/main/java/com/gmail/nossr50/skills/smelting/SmeltingManager.java +++ b/src/main/java/com/gmail/nossr50/skills/smelting/SmeltingManager.java @@ -41,7 +41,7 @@ public class SmeltingManager extends SkillManager { public boolean processFluxMining(BlockState blockState) { Player player = getPlayer(); - if (getActivationChance() > Smelting.fluxMiningChance) { + if (Smelting.fluxMiningChance > Misc.getRandom().nextInt(getActivationChance())) { ItemStack item = null; switch (blockState.getType()) { diff --git a/src/main/java/com/gmail/nossr50/skills/taming/TamingManager.java b/src/main/java/com/gmail/nossr50/skills/taming/TamingManager.java index d28bb582a..c62d3e55b 100644 --- a/src/main/java/com/gmail/nossr50/skills/taming/TamingManager.java +++ b/src/main/java/com/gmail/nossr50/skills/taming/TamingManager.java @@ -85,7 +85,7 @@ public class TamingManager extends SkillManager { * @param damage The damage being absorbed by the wolf */ public void fastFoodService(Wolf wolf, int damage) { - if (getActivationChance() > Taming.fastFoodServiceActivationChance) { + if (Taming.fastFoodServiceActivationChance > Misc.getRandom().nextInt(getActivationChance())) { int health = wolf.getHealth(); int maxHealth = wolf.getMaxHealth();