// Path: me/tyler15555/minibosses/item/MBItems.java
// public class MBItems {
// 
// 	public MBItems() {
// 		
// 	}
// 	
// 	public static Item ingotDarkIron = new Item().setUnlocalizedName("ingotDarkIron").setCreativeTab(Resources.tabMB);
// 	public static Item darkIronHelm = new ItemDarkIronArmor(0).setUnlocalizedName("darkIronHelm");
// 	public static Item darkIronChest = new ItemDarkIronArmor(1).setUnlocalizedName("darkIronChest");
// 	public static Item darkIronLegs = new ItemDarkIronArmor(2).setUnlocalizedName("darkIronLegs");
// 	public static Item darkIronBoots = new ItemDarkIronArmor(3).setUnlocalizedName("darkIronBoots");
// 	public static Item occulus_item = new ItemOcculus();
// 	public static Item ingotInferno = new Item().setUnlocalizedName("ingotInferno").setCreativeTab(Resources.tabMB);
// 	public static Item infernoHelm = new ItemInfernoArmor(0).setUnlocalizedName("infernoHelm");
// 	public static Item infernoChest = new ItemInfernoArmor(1).setUnlocalizedName("infernoChest");
// 	public static Item infernoLegs = new ItemInfernoArmor(2).setUnlocalizedName("infernoLegs");
// 	public static Item infernoBoots = new ItemInfernoArmor(3).setUnlocalizedName("infernoBoots"); 
// 	public static Item feederTooth = new Item().setUnlocalizedName("feederTooth").setCreativeTab(Resources.tabMB);
// 	public static Item feederSword = new ItemFeederSword();
// 	public static Item reviveHeart = new ItemReviveHeart();
// 	public static Item medusaEye = new ItemMedusaEye();
// 	public static Item dodgeGem = new ItemDodgeGem();
// 	public static Item summonScroll = new ItemSummonScroll();
// 	public static Item bloodTablet = new ItemBloodTablet();
// 
// }
// 
// Path: me/tyler15555/minibosses/util/IMiniboss.java
// public interface IMiniboss {
// 
// 	/**
// 	 * Gets an ID for this entity that can be used to ban it from certain dimensions
// 	 * @return A name that is used to identify this entity for banning purposes, should contain no spaces
// 	 */
// 	public String getBanlistName();
// 	
// 	/**
// 	 * Gets all rare loot that can be dropped besides what the entity mainly drops
// 	 * @return The item you want dropped
// 	 */
// 	public ItemStack getPossibleLoot();
// 	
// 	/**
// 	 * Gets the chance of rare loot dropping. This number should not be larger than 100
// 	 * @return A number between 1-100 that determines whether or not this specified loot will drop. The higher the number the lower the chance of dropping.
// 	 */
// 	public int getDropChance();
// 	
// }


import me.tyler15555.minibosses.item.MBItems;
import me.tyler15555.minibosses.util.IMiniboss;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.monster.EntityZombie;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.util.DamageSource;
import net.minecraft.util.EnumParticleTypes;
import net.minecraft.world.World;
import net.minecraftforge.fml.common.FMLCommonHandler;
import net.minecraftforge.fml.relauncher.Side;
		
		if(this.isBurning()) {
			this.extinguish();
		}
		if(!this.worldObj.isDaytime() && this.isDarkIron()) {
			this.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 2000));
			this.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 2000));
		}
		if(FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT && this.isDarkIron()) {
			this.worldObj.spawnParticle(EnumParticleTypes.SMOKE_LARGE, this.posX, this.posY, this.posZ, 0, 0, 0);
		}
	}
	
	public boolean isDarkIron() {
		return this.getDataWatcher().getWatchableObjectInt(16) == 1;
	}
	
	
	public void setDarkIron() {
		this.getDataWatcher().updateObject(16, Integer.valueOf(1));
	}
	
	@Override
	public boolean attackEntityFrom(DamageSource source, float damage) {
		super.attackEntityFrom(source, damage);
		if(source.getEntity() != null && source.getEntity() instanceof EntityPlayer) {
			EntityPlayer entity = (EntityPlayer)source.getEntity();
			
			if(entity.getHeldItem() != null && this.rand.nextInt(19) == 1 && this.getDistanceToEntity(entity) <= 5.5D && this.getHeldItem() == null) {
				this.setCurrentItemOrArmor(0, entity.getHeldItem());
// Path: me/tyler15555/minibosses/item/MBItems.java
// public class MBItems {
// 
// 	public MBItems() {
// 		
// 	}
// 	
// 	public static Item ingotDarkIron = new Item().setUnlocalizedName("ingotDarkIron").setCreativeTab(Resources.tabMB);
// 	public static Item darkIronHelm = new ItemDarkIronArmor(0).setUnlocalizedName("darkIronHelm");
// 	public static Item darkIronChest = new ItemDarkIronArmor(1).setUnlocalizedName("darkIronChest");
// 	public static Item darkIronLegs = new ItemDarkIronArmor(2).setUnlocalizedName("darkIronLegs");
// 	public static Item darkIronBoots = new ItemDarkIronArmor(3).setUnlocalizedName("darkIronBoots");
// 	public static Item occulus_item = new ItemOcculus();
// 	public static Item ingotInferno = new Item().setUnlocalizedName("ingotInferno").setCreativeTab(Resources.tabMB);
// 	public static Item infernoHelm = new ItemInfernoArmor(0).setUnlocalizedName("infernoHelm");
// 	public static Item infernoChest = new ItemInfernoArmor(1).setUnlocalizedName("infernoChest");
// 	public static Item infernoLegs = new ItemInfernoArmor(2).setUnlocalizedName("infernoLegs");
// 	public static Item infernoBoots = new ItemInfernoArmor(3).setUnlocalizedName("infernoBoots"); 
// 	public static Item feederTooth = new Item().setUnlocalizedName("feederTooth").setCreativeTab(Resources.tabMB);
// 	public static Item feederSword = new ItemFeederSword();
// 	public static Item reviveHeart = new ItemReviveHeart();
// 	public static Item medusaEye = new ItemMedusaEye();
// 	public static Item dodgeGem = new ItemDodgeGem();
// 	public static Item summonScroll = new ItemSummonScroll();
// 	public static Item bloodTablet = new ItemBloodTablet();
// 
// }
// 
// Path: me/tyler15555/minibosses/util/IMiniboss.java
// public interface IMiniboss {
// 
// 	/**
// 	 * Gets an ID for this entity that can be used to ban it from certain dimensions
// 	 * @return A name that is used to identify this entity for banning purposes, should contain no spaces
// 	 */
// 	public String getBanlistName();
// 	
// 	/**
// 	 * Gets all rare loot that can be dropped besides what the entity mainly drops
// 	 * @return The item you want dropped
// 	 */
// 	public ItemStack getPossibleLoot();
// 	
// 	/**
// 	 * Gets the chance of rare loot dropping. This number should not be larger than 100
// 	 * @return A number between 1-100 that determines whether or not this specified loot will drop. The higher the number the lower the chance of dropping.
// 	 */
// 	public int getDropChance();
// 	
// }


// Path: me/tyler15555/minibosses/entity/EntityIronZombie.java
import me.tyler15555.minibosses.item.MBItems;
import me.tyler15555.minibosses.util.IMiniboss;
import net.minecraft.entity.SharedMonsterAttributes;
import net.minecraft.entity.monster.EntityZombie;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.item.Item;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.potion.Potion;
import net.minecraft.potion.PotionEffect;
import net.minecraft.util.DamageSource;
import net.minecraft.util.EnumParticleTypes;
import net.minecraft.world.World;
import net.minecraftforge.fml.common.FMLCommonHandler;
import net.minecraftforge.fml.relauncher.Side;

		
		if(this.isBurning()) {
			this.extinguish();
		}
		if(!this.worldObj.isDaytime() && this.isDarkIron()) {
			this.addPotionEffect(new PotionEffect(Potion.damageBoost.id, 2000));
			this.addPotionEffect(new PotionEffect(Potion.moveSpeed.id, 2000));
		}
		if(FMLCommonHandler.instance().getEffectiveSide() == Side.CLIENT && this.isDarkIron()) {
			this.worldObj.spawnParticle(EnumParticleTypes.SMOKE_LARGE, this.posX, this.posY, this.posZ, 0, 0, 0);
		}
	}
	
	public boolean isDarkIron() {
		return this.getDataWatcher().getWatchableObjectInt(16) == 1;
	}
	
	
	public void setDarkIron() {
		this.getDataWatcher().updateObject(16, Integer.valueOf(1));
	}
	
	@Override
	public boolean attackEntityFrom(DamageSource source, float damage) {
		super.attackEntityFrom(source, damage);
		if(source.getEntity() != null && source.getEntity() instanceof EntityPlayer) {
			EntityPlayer entity = (EntityPlayer)source.getEntity();
			
			if(entity.getHeldItem() != null && this.rand.nextInt(19) == 1 && this.getDistanceToEntity(entity) <= 5.5D && this.getHeldItem() == null) {
				this.setCurrentItemOrArmor(0, entity.getHeldItem());
				entity.destroyCurrentEquippedItem();