summaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
authorRobert Sosnitzka <robert.sosnitzka@gmail.com>2016-12-22 20:39:28 +0100
committerRobert Sosnitzka <robert.sosnitzka@gmail.com>2016-12-22 20:39:28 +0100
commit1c34ded555c879f12308af276a4eaf54d9b29d9b (patch)
treee6583f49e6e874803cc569c249f24c6537649527 /src/main/java
parent7adec100020b407156efe59155ebc9132c1c200c (diff)
Resolved a possible arithmetic exception. Divided by zero.
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/sosnitzka/taiga/traits/TraitHeroic.java7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/main/java/com/sosnitzka/taiga/traits/TraitHeroic.java b/src/main/java/com/sosnitzka/taiga/traits/TraitHeroic.java
index f72f7e9..a9ea4c6 100644
--- a/src/main/java/com/sosnitzka/taiga/traits/TraitHeroic.java
+++ b/src/main/java/com/sosnitzka/taiga/traits/TraitHeroic.java
@@ -16,7 +16,12 @@ 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);
- float calc = newDamage + (newDamage / 2) / (durability * durabilitymax / (durabilitymax - durability - 1));
+ float calc;
+ if ((durability * durabilitymax / (durabilitymax - durability - 1)) != 0) {
+ calc = newDamage + (newDamage / 2) / (durability * durabilitymax / (durabilitymax - durability - 1));
+ } else {
+ calc = newDamage + (newDamage / 2) / ((durability * durabilitymax / (durabilitymax - durability - 1)) + 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);
} else return super.damage(tool, player, target, damage, newDamage * 0.9f, isCritical);