package fox.spiteful.forbidden.items.tools;
import WayofTime.alchemicalWizardry.api.soulNetwork.SoulNetworkHandler;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import fox.spiteful.forbidden.compat.Compat;
import fox.spiteful.forbidden.potions.DarkPotions;
import net.minecraft.client.renderer.texture.IIconRegister;
import net.minecraft.entity.Entity;
import net.minecraft.entity.EntityLivingBase;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.EnumRarity;
import net.minecraft.item.ItemStack;
import net.minecraft.item.ItemSword;
import net.minecraft.potion.PotionEffect;
import net.minecraft.util.IIcon;
import net.minecraft.world.World;
import net.minecraftforge.common.util.EnumHelper;
import thaumcraft.api.IRepairable;
import thaumcraft.api.IWarpingGear;
import thaumcraft.common.config.ConfigItems;
public class ItemBloodRapier extends ItemSword implements IRepairable, IWarpingGear{
static final ToolMaterial bloodsucker = EnumHelper.addToolMaterial("BLOODSUCKER", 3, 700, 10F, -3F, 18);
private IIcon icon;
public ItemBloodRapier(){
super(bloodsucker);
}
@Override
public boolean hitEntity(ItemStack stack, EntityLivingBase victim, EntityLivingBase player) {
stack.damageItem(1, player);
victim.motionY *= 0.8;
if (victim.hurtResistantTime > 18)
victim.hurtResistantTime -= 5;
if (Compat.bm & victim instanceof EntityPlayer) {
String target = ((EntityPlayer) victim).getDisplayName();
int lp = SoulNetworkHandler.getCurrentEssence(target);
int damage = Math.max(4000, lp / 4);
if (lp >= damage)
lp -= damage;
else
lp = 0;
SoulNetworkHandler.setCurrentEssence(target, lp);
victim.addPotionEffect(new PotionEffect(DarkPotions.bloodSeal.getId(), 1200));
}
return true;
}
@Override
public void onUpdate(ItemStack stack, World world, Entity entity, int wat, boolean fuckObfuscation) {
super.onUpdate(stack, world, entity, wat, fuckObfuscation);
if(stack.isItemDamaged() && entity != null && entity.ticksExisted % 20 == 0 && entity instanceof EntityLivingBase) {
stack.damageItem(-1, (EntityLivingBase)entity);
}
}
@Override
@SideOnly(Side.CLIENT)
public IIcon getIconFromDamage(int par1) {
return this.icon;
}
@Override
@SideOnly(Side.CLIENT)
public void registerIcons(IIconRegister ir) {
this.icon = ir.registerIcon("forbidden:blood_rapier");
}
@Override
public int getWarp(ItemStack itemstack, EntityPlayer player) {
return 2;
}
@Override
public boolean getIsRepairable(ItemStack par1ItemStack, ItemStack par2ItemStack) {
return par2ItemStack.isItemEqual(new ItemStack(ConfigItems.itemResource, 1, 15))?true:super.getIsRepairable(par1ItemStack, par2ItemStack);
}
@Override
public EnumRarity getRarity(ItemStack itemstack) {
return EnumRarity.rare;
}
}