package minefantasy.item.weapon;
import java.util.List;
import minefantasy.api.weapon.*;
import minefantasy.entity.EntityThrownSpear;
import minefantasy.item.ToolMaterialMedieval;
import minefantasy.system.data_minefantasy;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumAction;
import net.minecraft.item.EnumToolMaterial;
import net.minecraft.item.ItemStack;
import net.minecraft.util.DamageSource;
import net.minecraft.util.EnumChatFormatting;
import net.minecraft.util.StatCollector;
import net.minecraft.world.World;
/**
* Spear:
* long, slow, damaging, can joust
*/
public class ItemLance extends ItemWeaponMF implements IWeaponMobility, IWeaponCustomSpeed, IExtendedReachItem
{
public ItemLance(int id, EnumToolMaterial material)
{
super(id, material);
}
public ItemLance(int id, EnumToolMaterial material, float dam, int uses)
{
this(id, material);
}
@Override
public float getDamageModifier()
{
return 0.25F;
}
@Override
public int getHitTime(ItemStack weapon, EntityLivingBase target)
{
return 15;
}
@Override
public float getReachModifierInBlocks(ItemStack mainhand)
{
return 3.5F;
}
@Override
public float getExaustion()
{
return 0.2F;
}
@Override
public float getSpeedWhenEquipped()
{
float degrade = 0.25F;
if(this.getMaterial() == ToolMaterialMedieval.MITHRIL)
{
degrade /= 2;
}
return 1.0F - degrade;
}
public EnumAction getItemUseAction(ItemStack item)
{
return EnumAction.none;
}
/**
* Called whenever this item is equipped and the right mouse button is pressed. Args: itemStack, world, entityPlayer
*/
@Override
public ItemStack onItemRightClick(ItemStack item, World world, EntityPlayer player)
{
return item;
}
@Override
public float getKnockback()
{
return 8F;
}
@Override
public boolean canJoust()
{
return true;
}
@Override
public float getDurability()
{
return 2.0F;
}
@Override
public float getJoustModifierDamage()
{
return 7.5F;
}
@Override
public int getHandsUsed()
{
return 2;
}
@Override
public float getBalance()
{
return 1.0F;
}
}