diff --git a/src/main/java/gregtech/api/items/toolitem/ToolMetaItem.java b/src/main/java/gregtech/api/items/toolitem/ToolMetaItem.java index ebb4ccc9fbf..a06d044bdbe 100755 --- a/src/main/java/gregtech/api/items/toolitem/ToolMetaItem.java +++ b/src/main/java/gregtech/api/items/toolitem/ToolMetaItem.java @@ -340,31 +340,33 @@ public int damageItem(ItemStack stack, int vanillaDamage, boolean allowPartial, energyAmount = (int) discharged; vanillaDamage = energyAmount / ConfigHolder.energyUsageMultiplier; if (energyAmount % ConfigHolder.energyUsageMultiplier != 0) - ++vanillaDamage; - } - else { + ++vanillaDamage; + } else { // Can't do the operation return 0; } } capability.discharge(energyAmount, capability.getTier(), true, false, simulate); } - T toolMetaItem = getItem(stack); - if (toolMetaItem == null) { - return 0; - } - IToolStats toolStats = toolMetaItem.getToolStats(); - if (!toolStats.isUsingDurability(stack)) { - return vanillaDamage; - } - int itemDamage = getItemDamage(stack); - int maxDamage = getMaxItemDamage(stack); - int damageRemaining = maxDamage - itemDamage; - int newDamageValue = itemDamage + calculateToolDamage(stack, itemRand, vanillaDamage); - if (!simulate && !setInternalDamage(stack, newDamageValue)) { - GTUtility.setItem(stack, toolStats.getBrokenStack(stack)); + if ( capability == null || (capability.getCharge() <= 0 || GTUtility.getRandomIntXSTR(100) <= 4)) { + T toolMetaItem = getItem(stack); + if (toolMetaItem == null) { + return 0; + } + IToolStats toolStats = toolMetaItem.getToolStats(); + if (!toolStats.isUsingDurability(stack)) { + return vanillaDamage; + } + int itemDamage = getItemDamage(stack); + int maxDamage = getMaxItemDamage(stack); + int damageRemaining = maxDamage - itemDamage; + int newDamageValue = itemDamage + calculateToolDamage(stack, itemRand, vanillaDamage); + if (!simulate && !setInternalDamage(stack, newDamageValue)) { + GTUtility.setItem(stack, toolStats.getBrokenStack(stack)); + } + return Math.min(vanillaDamage, damageRemaining); } - return Math.min(vanillaDamage, damageRemaining); + return 1; } public int regainItemDurability(ItemStack itemStack, int maxDurabilityRegain) { diff --git a/src/main/java/gregtech/common/tools/ToolBuzzSaw.java b/src/main/java/gregtech/common/tools/ToolBuzzSaw.java index 16f35f15656..239cd5c4b8a 100644 --- a/src/main/java/gregtech/common/tools/ToolBuzzSaw.java +++ b/src/main/java/gregtech/common/tools/ToolBuzzSaw.java @@ -24,7 +24,7 @@ public float getBaseDamage(ItemStack stack) { @Override public float getMaxDurabilityMultiplier(ItemStack stack) { - return 10.0f; + return 1.0f; } @Override diff --git a/src/main/java/gregtech/common/tools/ToolChainsawHV.java b/src/main/java/gregtech/common/tools/ToolChainsawHV.java index 03b2b998fd6..0ac1fb6a7f2 100644 --- a/src/main/java/gregtech/common/tools/ToolChainsawHV.java +++ b/src/main/java/gregtech/common/tools/ToolChainsawHV.java @@ -44,7 +44,7 @@ public float getDigSpeedMultiplier(ItemStack stack) { @Override public float getMaxDurabilityMultiplier(ItemStack stack) { - return 40.0F; + return 4.F; } @Override diff --git a/src/main/java/gregtech/common/tools/ToolChainsawLV.java b/src/main/java/gregtech/common/tools/ToolChainsawLV.java index 7e7f30691af..8920a596682 100644 --- a/src/main/java/gregtech/common/tools/ToolChainsawLV.java +++ b/src/main/java/gregtech/common/tools/ToolChainsawLV.java @@ -31,7 +31,7 @@ public float getDigSpeedMultiplier(ItemStack stack) { @Override public float getMaxDurabilityMultiplier(ItemStack stack) { - return 10.0f; + return 1.0F; } @Override diff --git a/src/main/java/gregtech/common/tools/ToolChainsawMV.java b/src/main/java/gregtech/common/tools/ToolChainsawMV.java index 9fe31a67986..47b197c9290 100644 --- a/src/main/java/gregtech/common/tools/ToolChainsawMV.java +++ b/src/main/java/gregtech/common/tools/ToolChainsawMV.java @@ -44,7 +44,7 @@ public float getDigSpeedMultiplier(ItemStack stack) { @Override public float getMaxDurabilityMultiplier(ItemStack stack) { - return 20.0F; + return 2.0F; } @Override diff --git a/src/main/java/gregtech/common/tools/ToolDrillHV.java b/src/main/java/gregtech/common/tools/ToolDrillHV.java index 50dad8c004a..98d9518434f 100644 --- a/src/main/java/gregtech/common/tools/ToolDrillHV.java +++ b/src/main/java/gregtech/common/tools/ToolDrillHV.java @@ -43,9 +43,7 @@ public float getDigSpeedMultiplier(ItemStack stack) { } @Override - public float getMaxDurabilityMultiplier(ItemStack stack) { - return 40.0F; - } + public float getMaxDurabilityMultiplier(ItemStack stack) { return 4.0F; } @Override public ItemStack getBrokenStack(ItemStack stack) { diff --git a/src/main/java/gregtech/common/tools/ToolDrillLV.java b/src/main/java/gregtech/common/tools/ToolDrillLV.java index ad645d8ecc8..68467f01991 100644 --- a/src/main/java/gregtech/common/tools/ToolDrillLV.java +++ b/src/main/java/gregtech/common/tools/ToolDrillLV.java @@ -39,7 +39,7 @@ public float getDigSpeedMultiplier(ItemStack stack) { @Override public float getMaxDurabilityMultiplier(ItemStack stack) { - return 10.0f; + return 1.0f; } @Override diff --git a/src/main/java/gregtech/common/tools/ToolDrillMV.java b/src/main/java/gregtech/common/tools/ToolDrillMV.java index 9b7111d3954..bc1d72f5f80 100644 --- a/src/main/java/gregtech/common/tools/ToolDrillMV.java +++ b/src/main/java/gregtech/common/tools/ToolDrillMV.java @@ -44,7 +44,7 @@ public float getDigSpeedMultiplier(ItemStack stack) { @Override public float getMaxDurabilityMultiplier(ItemStack stack) { - return 20.0F; + return 2.0F; } @Override diff --git a/src/main/java/gregtech/common/tools/ToolScrewdriverLV.java b/src/main/java/gregtech/common/tools/ToolScrewdriverLV.java index b9ce83b1399..5a45886f1d1 100644 --- a/src/main/java/gregtech/common/tools/ToolScrewdriverLV.java +++ b/src/main/java/gregtech/common/tools/ToolScrewdriverLV.java @@ -14,7 +14,7 @@ public int getToolDamagePerContainerCraft(ItemStack stack) { @Override public float getMaxDurabilityMultiplier(ItemStack stack) { - return 10.0f; + return 2.0f; } @Override diff --git a/src/main/java/gregtech/common/tools/ToolWrenchHV.java b/src/main/java/gregtech/common/tools/ToolWrenchHV.java index a2e2ee1cb25..19722f947d0 100644 --- a/src/main/java/gregtech/common/tools/ToolWrenchHV.java +++ b/src/main/java/gregtech/common/tools/ToolWrenchHV.java @@ -44,7 +44,7 @@ public float getDigSpeedMultiplier(ItemStack stack) { @Override public float getMaxDurabilityMultiplier(ItemStack stack) { - return 40.0F; + return 4.0F; } @Override diff --git a/src/main/java/gregtech/common/tools/ToolWrenchLV.java b/src/main/java/gregtech/common/tools/ToolWrenchLV.java index e70399169d1..3a5e906062f 100644 --- a/src/main/java/gregtech/common/tools/ToolWrenchLV.java +++ b/src/main/java/gregtech/common/tools/ToolWrenchLV.java @@ -19,7 +19,7 @@ public float getDigSpeedMultiplier(ItemStack stack) { @Override public float getMaxDurabilityMultiplier(ItemStack stack) { - return 10.0f; + return 1.0f; } @Override diff --git a/src/main/java/gregtech/common/tools/ToolWrenchMV.java b/src/main/java/gregtech/common/tools/ToolWrenchMV.java index a4c281130dd..fcfa4ce8445 100644 --- a/src/main/java/gregtech/common/tools/ToolWrenchMV.java +++ b/src/main/java/gregtech/common/tools/ToolWrenchMV.java @@ -44,7 +44,7 @@ public float getDigSpeedMultiplier(ItemStack stack) { @Override public float getMaxDurabilityMultiplier(ItemStack stack) { - return 20.0F; + return 2.0F; } @Override