diff --git a/resources/assets/tinker/lang/en_US.lang b/resources/assets/tinker/lang/en_US.lang index 5e6d70e083b..e88b2b24321 100644 --- a/resources/assets/tinker/lang/en_US.lang +++ b/resources/assets/tinker/lang/en_US.lang @@ -819,7 +819,7 @@ modifier.tool.beheading=Beheading creativeModLock.tooltip=Target Lock: -attribute.name.ammo.attackDamage=Average Shot Damage +attribute.name.ammo.attackDamage=Base Damage tool.pickaxe=Pickaxe tool.shovel=Shovel diff --git a/src/main/java/tconstruct/items/tools/Arrow.java b/src/main/java/tconstruct/items/tools/Arrow.java index 20f7075eb33..8b776c25f32 100644 --- a/src/main/java/tconstruct/items/tools/Arrow.java +++ b/src/main/java/tconstruct/items/tools/Arrow.java @@ -197,11 +197,11 @@ else if (power > this.getMaxEnergyStored(stack) * 2 / 3) int head = tags.getCompoundTag("InfiTool").getInteger("Head"); int handle = tags.getCompoundTag("InfiTool").getInteger("Handle"); - String headName = getAbilityNameForType(head); + String headName = getAbilityNameForType(head, 0); if (!headName.equals("")) list.add(getStyleForType(head) + headName); - String handleName = getAbilityNameForType(handle); + String handleName = getAbilityNameForType(handle, 0); if (!handleName.equals("") && handle != head) list.add(getStyleForType(handle) + handleName); diff --git a/src/main/java/tconstruct/items/tools/Shortbow.java b/src/main/java/tconstruct/items/tools/Shortbow.java index 1edb77904dd..c2cafe20b03 100644 --- a/src/main/java/tconstruct/items/tools/Shortbow.java +++ b/src/main/java/tconstruct/items/tools/Shortbow.java @@ -148,7 +148,7 @@ else if (power > this.getMaxEnergyStored(stack) * 2 / 3) int binding = tags.getCompoundTag("InfiTool").getInteger("Accessory"); int extra = tags.getCompoundTag("InfiTool").getInteger("Extra"); - String headName = getAbilityNameForType(head); + String headName = getAbilityNameForType(head, 0); if (!headName.equals("")) list.add(getStyleForType(head) + headName); @@ -158,14 +158,14 @@ else if (power > this.getMaxEnergyStored(stack) * 2 / 3) if (getPartAmount() >= 3) { - String bindingName = getAbilityNameForType(binding); + String bindingName = getAbilityNameForType(binding, 0); if (!bindingName.equals("") && binding != head && binding != handle) list.add(getStyleForType(binding) + bindingName); } if (getPartAmount() >= 4) { - String extraName = getAbilityNameForType(extra); + String extraName = getAbilityNameForType(extra, 0); if (!extraName.equals("") && extra != head && extra != handle && extra != binding) list.add(getStyleForType(extra) + extraName); } diff --git a/src/main/java/tconstruct/library/tools/ToolCore.java b/src/main/java/tconstruct/library/tools/ToolCore.java index e45656d9016..be9e5f057a1 100644 --- a/src/main/java/tconstruct/library/tools/ToolCore.java +++ b/src/main/java/tconstruct/library/tools/ToolCore.java @@ -328,24 +328,24 @@ else if (RF > this.getMaxEnergyStored(stack) * 2 / 3) int binding = tags.getCompoundTag("InfiTool").getInteger("Accessory"); int extra = tags.getCompoundTag("InfiTool").getInteger("Extra"); - String headName = getAbilityNameForType(head); + String headName = getAbilityNameForType(head, 0); if (!headName.equals("")) list.add(getStyleForType(head) + headName); - String handleName = getAbilityNameForType(handle); + String handleName = getAbilityNameForType(handle, 1); if (!handleName.equals("") && handle != head) list.add(getStyleForType(handle) + handleName); if (getPartAmount() >= 3) { - String bindingName = getAbilityNameForType(binding); + String bindingName = getAbilityNameForType(binding, 2); if (!bindingName.equals("") && binding != head && binding != handle) list.add(getStyleForType(binding) + bindingName); } if (getPartAmount() >= 4) { - String extraName = getAbilityNameForType(extra); + String extraName = getAbilityNameForType(extra, 3); if (!extraName.equals("") && extra != head && extra != handle && extra != binding) list.add(getStyleForType(extra) + extraName); } @@ -386,7 +386,7 @@ public static String getStyleForType (int type) /** * Returns the localized name of the materials ability. Only use this for display purposes, not for logic. */ - public String getAbilityNameForType (int type) + public String getAbilityNameForType (int type, int part) { return TConstructRegistry.getMaterial(type).ability(); } diff --git a/src/main/java/tconstruct/library/weaponry/AmmoItem.java b/src/main/java/tconstruct/library/weaponry/AmmoItem.java index 1ba901021ae..d02198a1431 100644 --- a/src/main/java/tconstruct/library/weaponry/AmmoItem.java +++ b/src/main/java/tconstruct/library/weaponry/AmmoItem.java @@ -1,5 +1,8 @@ package tconstruct.library.weaponry; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +import net.minecraft.util.StatCollector; import tconstruct.library.TConstructRegistry; import tconstruct.weaponry.TinkerWeaponry; import tconstruct.util.Reference; @@ -9,6 +12,8 @@ import net.minecraft.nbt.NBTTagCompound; import tconstruct.library.tools.ToolCore; +import java.util.List; + public abstract class AmmoItem extends ToolCore implements IAmmo { public AmmoItem(int baseDamage, String name) { super(baseDamage); diff --git a/src/main/java/tconstruct/weaponry/WeaponryHandler.java b/src/main/java/tconstruct/weaponry/WeaponryHandler.java index 161f5e7a6fa..f6ed3db82c9 100644 --- a/src/main/java/tconstruct/weaponry/WeaponryHandler.java +++ b/src/main/java/tconstruct/weaponry/WeaponryHandler.java @@ -56,10 +56,7 @@ public void onAmmoCrafted(ToolCraftEvent.NormalTool event) float accuracy = fletching.accuracy; float breakChance = shaft.fragility + fletching.breakChance; - tags.setInteger("TotalDurability", durability); - tags.setFloat("Mass", weight); - tags.setFloat("BreakChance", breakChance); - tags.setFloat("Accuracy", accuracy); + setAmmoData(tags, durability, weight, accuracy, breakChance, head.shoddy(), head.reinforced()); } else if(event.tool instanceof BoltAmmo) { @@ -81,11 +78,10 @@ else if(event.tool instanceof BoltAmmo) float weight = head.mass + core.mass; float accuracy = fletching.accuracy; float breakChance = fletching.breakChance*3; + float shoddy = (headMat.shoddy() + coreMat.shoddy())/2f; + int reinforced = Math.max(headMat.reinforced(), coreMat.reinforced()); - tags.setInteger("TotalDurability", durability); - tags.setFloat("Mass", weight); - tags.setFloat("BreakChance", breakChance); - tags.setFloat("Accuracy", accuracy); + setAmmoData(tags, durability, weight, accuracy, breakChance, shoddy, reinforced); } // now that durability has been handled... @@ -187,4 +183,14 @@ public void buildBolt(ToolBuildEvent event) event.handleStack = bolt2; event.accessoryStack = fletching; } + + private void setAmmoData(NBTTagCompound tags, int durability, float weight, float breakChance, float accuracy, float shoddy, int reinforced) + { + tags.setInteger("TotalDurability", durability); + tags.setFloat("Mass", weight); + tags.setFloat("BreakChance", breakChance); + tags.setFloat("Accuracy", accuracy); + tags.setFloat("Shoddy", shoddy); // we could actually always set this to 0 since it has zero impact on ammo + tags.setInteger("Unbreaking", reinforced); + } } diff --git a/src/main/java/tconstruct/weaponry/ammo/ArrowAmmo.java b/src/main/java/tconstruct/weaponry/ammo/ArrowAmmo.java index 66f2a9cdc07..724fafc8c2a 100644 --- a/src/main/java/tconstruct/weaponry/ammo/ArrowAmmo.java +++ b/src/main/java/tconstruct/weaponry/ammo/ArrowAmmo.java @@ -82,6 +82,12 @@ public Item getAccessoryItem () return TinkerWeaponry.fletching; } + // handle is custom material + @Override + public int durabilityTypeHandle() { + return 0; + } + @Override public String[] getTraits () { @@ -134,4 +140,12 @@ protected int getDefaultColor(int renderPass, int materialID) { return mat.color; } + + // fix tooltip custom materials + @Override + public String getAbilityNameForType(int type, int part) { + if(part >= 1) // only head has ability + return ""; + return super.getAbilityNameForType(type, part); + } } diff --git a/src/main/java/tconstruct/weaponry/ammo/BoltAmmo.java b/src/main/java/tconstruct/weaponry/ammo/BoltAmmo.java index f98c0c44be3..a13d927a81f 100644 --- a/src/main/java/tconstruct/weaponry/ammo/BoltAmmo.java +++ b/src/main/java/tconstruct/weaponry/ammo/BoltAmmo.java @@ -107,4 +107,12 @@ protected int getDefaultColor(int renderPass, int materialID) { return mat.color; } + + // fix tooltip custom materials + @Override + public String getAbilityNameForType(int type, int part) { + if(part >= 2) // only head and handle have ability + return ""; + return super.getAbilityNameForType(type, part); + } }