package minefantasy.mf2.entity.mob; import minefantasy.mf2.entity.EntityDragonBreath; import net.minecraft.entity.Entity; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.ItemStack; import net.minecraft.potion.Potion; import net.minecraft.potion.PotionEffect; import net.minecraft.util.DamageSource; import net.minecraft.util.EntityDamageSourceIndirect; import net.minecraft.world.World; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; public class PoisonBreath extends DragonBreath { public PoisonBreath(String name) { super(name); } @Override public DamageSource getDamageSource(EntityDragonBreath breath, EntityLivingBase shooter) { return shooter == null ? new DamageSource("acidblastBase") : (new EntityDamageSourceIndirect("acidblast", breath, shooter)); } @Override @SideOnly(Side.CLIENT) public String getTexture(EntityDragonBreath instance) { return "textures/projectile/dragonbreath_poison"; } public void onHitEntity(Entity target, EntityDragonBreath instance) { super.onHitEntity(target, instance); if(target instanceof EntityLivingBase) { float dam = instance.getDamage(); ((EntityLivingBase)target).addPotionEffect(new PotionEffect(Potion.poison.id, 20, (int)dam)); ((EntityLivingBase)target).addPotionEffect(new PotionEffect(Potion.confusion.id, 20, 10)); if(instance.rand.nextInt(10) == 0) { for(int a = 0; a < 5; a++) { ItemStack item = ((EntityLivingBase)target).getEquipmentInSlot(a); if(item != null) { item.damageItem((int)dam, ((EntityLivingBase)target)); if(item.getItemDamage() >= item.getMaxDamage()) { ((EntityLivingBase)target).renderBrokenItemStack(item); ((EntityLivingBase)target).setCurrentItemOrArmor(a, null); } } } } } } @Override public float modifyDamage(float dam) { return dam; } @Override public void hitBlock(World world, EntityDragonBreath instance, int x, int y, int z, boolean impact) { } }