package minefantasy.mf2.item.weapon; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemStack; import net.minecraft.util.DamageSource; /** * @author Anonymous Productions */ public class ItemHalbeardMF extends ItemSpearMF { /** * The halbeard is the heavy counterpart for the spear: It has increased damage, knockback distance and parry arc * * Halbeards use a swinging attack rather than a stab, but will still stab when sprinting */ public ItemHalbeardMF(String name, ToolMaterial material, int rarity, float weight) { super(name, material, rarity, weight); setMaxDamage(getMaxDamage()*2); } @Override public boolean allowOffhand(ItemStack mainhand, ItemStack offhand) { return false; } @Override public float getReachModifierInBlocks(ItemStack stack) { return 3.0F; } @Override public boolean playCustomParrySound(EntityLivingBase blocker, Entity attacker, ItemStack weapon) { blocker.worldObj.playSoundAtEntity(blocker, "minefantasy2:weapon.wood_parry", 1.0F, 0.7F); return true; } @Override protected int getParryDamage(float dam) { return (int)dam; } /** * Gets the angle the weapon can parry */ @Override public float getParryAngleModifier(EntityLivingBase user) { return user.isSneaking() ? 1.5F: 1.0F; } @Override public float getBalance() { return 0.8F; } @Override protected float getKnockbackStrength() { return 3.5F; } @Override public int modifyHitTime(EntityLivingBase user, ItemStack item) { return super.modifyHitTime(user, item) + speedModSpear; } /** * gets the time after being hit your guard will be let down */ @Override public int getParryCooldown(DamageSource source, float dam, ItemStack weapon) { return spearParryTime + heavyParryTime; } @Override protected float getStaminaMod() { return heavyStaminaCost*spearStaminaCost; } @Override protected float[] getWeaponRatio(ItemStack implement, EntityLivingBase user) { if(user.isSprinting()) { return spearRatio; } return getWeaponRatio(implement); } @Override protected float[] getWeaponRatio(ItemStack implement) { return battleaxeRatio; } @Override protected float getMeleeDamage(ItemStack item) { return super.getMeleeDamage(item)*1.5F; } }