summaryrefslogtreecommitdiff
path: root/src/main/java/com/sosnitzka/taiga/traits
diff options
context:
space:
mode:
authorBill Parrott <bill@chimericdream.com>2017-02-02 09:06:23 -0600
committerGiovanni Harting <chefeificationful@gmail.com>2017-02-02 16:06:23 +0100
commitb874a41abb8a82c801130e54ef28520431c1c8e1 (patch)
treeade95ea87c378d141afba65c756257905789f125 /src/main/java/com/sosnitzka/taiga/traits
parent719d326f7e5eab0607fb2038387055dc998f1804 (diff)
fix divide by zero error (#121)
Diffstat (limited to 'src/main/java/com/sosnitzka/taiga/traits')
-rw-r--r--src/main/java/com/sosnitzka/taiga/traits/TraitHeroic.java8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitHeroic.java b/src/main/java/com/sosnitzka/taiga/traits/TraitHeroic.java
index a9ea4c6..8966ef4 100644
--- a/src/main/java/com/sosnitzka/taiga/traits/TraitHeroic.java
+++ b/src/main/java/com/sosnitzka/taiga/traits/TraitHeroic.java
@@ -16,11 +16,15 @@ public class TraitHeroic extends AbstractTrait {
public float damage(ItemStack tool, EntityLivingBase player, EntityLivingBase target, float damage, float newDamage, boolean isCritical) {
int durability = ToolHelper.getCurrentDurability(tool);
int durabilitymax = ToolHelper.getMaxDurability(tool);
+ int safeDenominator = durabilitymax - durability - 1;
+ if (safeDenominator <= 0) {
+ safeDenominator = 1;
+ }
float calc;
if ((durability * durabilitymax / (durabilitymax - durability - 1)) != 0) {
- calc = newDamage + (newDamage / 2) / (durability * durabilitymax / (durabilitymax - durability - 1));
+ calc = newDamage + (newDamage / 2) / (durability * durabilitymax / safeDenominator);
} else {
- calc = newDamage + (newDamage / 2) / ((durability * durabilitymax / (durabilitymax - durability - 1)) + 1);
+ calc = newDamage + (newDamage / 2) / ((durability * durabilitymax / safeDenominator) + 1);
}
if ((float) durability < (float) (0.10 * durabilitymax) || player.getHealth() < player.getMaxHealth() / 8 || (target.getHealth() == target.getMaxHealth() && random.nextFloat() > 0.8)) {
return super.damage(tool, player, target, damage, calc, isCritical);