From 352d2ab35c5125d8b351b53ad3fc88e47a2a2388 Mon Sep 17 00:00:00 2001 From: Nick Date: Thu, 4 Feb 2016 02:51:54 -0800 Subject: [PATCH] Fix Bound Tools having high damage while deactivated --- .../bloodmagic/item/ItemBoundAxe.java | 2 +- .../bloodmagic/item/ItemBoundPickaxe.java | 2 +- .../bloodmagic/item/ItemBoundShovel.java | 2 +- .../bloodmagic/item/ItemBoundSword.java | 14 ++++++++++++++ .../bloodmagic/item/ItemBoundTool.java | 19 ++++++++++++++++--- 5 files changed, 33 insertions(+), 6 deletions(-) diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemBoundAxe.java b/src/main/java/WayofTime/bloodmagic/item/ItemBoundAxe.java index c118f546..8e14da56 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemBoundAxe.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemBoundAxe.java @@ -27,7 +27,7 @@ public class ItemBoundAxe extends ItemBoundTool public ItemBoundAxe() { - super("axe", 5, EFFECTIVE_ON); + super("axe", 7, 5, EFFECTIVE_ON); setRegistryName(Constants.BloodMagicItem.BOUND_AXE.getRegName()); } diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemBoundPickaxe.java b/src/main/java/WayofTime/bloodmagic/item/ItemBoundPickaxe.java index df118afe..7a6e004b 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemBoundPickaxe.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemBoundPickaxe.java @@ -27,7 +27,7 @@ public class ItemBoundPickaxe extends ItemBoundTool public ItemBoundPickaxe() { - super("pickaxe", 5, EFFECTIVE_ON); + super("pickaxe", 5, 5, EFFECTIVE_ON); setRegistryName(Constants.BloodMagicItem.BOUND_PICKAXE.getRegName()); } diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemBoundShovel.java b/src/main/java/WayofTime/bloodmagic/item/ItemBoundShovel.java index cd68d48f..09c40727 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemBoundShovel.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemBoundShovel.java @@ -27,7 +27,7 @@ public class ItemBoundShovel extends ItemBoundTool public ItemBoundShovel() { - super("shovel", 5, EFFECTIVE_ON); + super("shovel", 1, 5, EFFECTIVE_ON); setRegistryName(Constants.BloodMagicItem.BOUND_SHOVEL.getRegName()); } diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemBoundSword.java b/src/main/java/WayofTime/bloodmagic/item/ItemBoundSword.java index 313fd372..25a14cc0 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemBoundSword.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemBoundSword.java @@ -88,6 +88,20 @@ public class ItemBoundSword extends ItemSword implements IBindable, IActivatable tooltip.add(TextHelper.localizeEffect("tooltip.BloodMagic.currentOwner", PlayerHelper.getUsernameFromStack(stack))); } + @Override + public Multimap getItemAttributeModifiers() + { + return HashMultimap.create(); + } + + @Override + public Multimap getAttributeModifiers(ItemStack stack) { + Multimap multimap = super.getAttributeModifiers(stack); + double damage = getActivated(stack) ? this.attackDamage : 1.0D; + multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), new AttributeModifier(itemModifierUUID, "Weapon modifier", damage, 0)); + return multimap; + } + public boolean getActivated(ItemStack stack) { NBTHelper.checkNBT(stack); diff --git a/src/main/java/WayofTime/bloodmagic/item/ItemBoundTool.java b/src/main/java/WayofTime/bloodmagic/item/ItemBoundTool.java index cbb50089..89cfe556 100644 --- a/src/main/java/WayofTime/bloodmagic/item/ItemBoundTool.java +++ b/src/main/java/WayofTime/bloodmagic/item/ItemBoundTool.java @@ -7,9 +7,12 @@ import java.util.Set; import WayofTime.bloodmagic.api.iface.IActivatable; import WayofTime.bloodmagic.api.util.helper.NBTHelper; +import com.google.common.collect.Multimap; import lombok.Getter; import net.minecraft.block.Block; import net.minecraft.entity.Entity; +import net.minecraft.entity.SharedMonsterAttributes; +import net.minecraft.entity.ai.attributes.AttributeModifier; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.EnumAction; @@ -36,13 +39,14 @@ public class ItemBoundTool extends ItemBindable implements IActivatable private Set effectiveBlocks; protected final String tooltipBase; private final String name; + private final int damage; public Map heldDownMap = new HashMap(); public Map heldDownCountMap = new HashMap(); public final int chargeTime = 30; - public ItemBoundTool(String name, int lpUsed, Set effectiveBlocks) + public ItemBoundTool(String name, int damage, int lpUsed, Set effectiveBlocks) { super(); setUnlocalizedName(Constants.Mod.MODID + ".bound." + name); @@ -51,11 +55,12 @@ public class ItemBoundTool extends ItemBindable implements IActivatable this.name = name; this.tooltipBase = "tooltip.BloodMagic.bound." + name + "."; this.effectiveBlocks = effectiveBlocks; + this.damage = damage; } - public ItemBoundTool(String name, int lpUsed) + public ItemBoundTool(String name, int damage, int lpUsed) { - this(name, lpUsed, null); + this(name, damage, lpUsed, null); } @Override @@ -171,6 +176,14 @@ public class ItemBoundTool extends ItemBindable implements IActivatable } + @Override + public Multimap getAttributeModifiers(ItemStack stack) { + Multimap multimap = super.getAttributeModifiers(stack); + double damage = getActivated(stack) ? this.damage : 1.0D; + multimap.put(SharedMonsterAttributes.attackDamage.getAttributeUnlocalizedName(), new AttributeModifier(itemModifierUUID, "Weapon modifier", damage, 0)); + return multimap; + } + @Override public ItemStack onItemUseFinish(ItemStack stack, World worldIn, EntityPlayer playerIn) {