public virtual void PerformEffect(EntityLiving par1EntityLiving, int par2) { if (Id == Regeneration.Id) { if (par1EntityLiving.GetHealth() < par1EntityLiving.GetMaxHealth()) { par1EntityLiving.Heal(1); } } else if (Id == Poison.Id) { if (par1EntityLiving.GetHealth() > 1) { par1EntityLiving.AttackEntityFrom(DamageSource.Magic, 1); } } else if (Id == Hunger.Id && (par1EntityLiving is EntityPlayer)) { ((EntityPlayer)par1EntityLiving).AddExhaustion(0.025F * (float)(par2 + 1)); } else if (Id == Heal.Id && !par1EntityLiving.IsEntityUndead() || Id == Harm.Id && par1EntityLiving.IsEntityUndead()) { par1EntityLiving.Heal(6 << par2); } else if (Id == Harm.Id && !par1EntityLiving.IsEntityUndead() || Id == Heal.Id && par1EntityLiving.IsEntityUndead()) { par1EntityLiving.AttackEntityFrom(DamageSource.Magic, 6 << par2); } }
/// <summary> /// Hits the provided entity with this potion's instant effect. /// </summary> public virtual void AffectEntity(EntityLiving par1EntityLiving, EntityLiving par2EntityLiving, int par3, double par4) { if (Id == Heal.Id && !par2EntityLiving.IsEntityUndead() || Id == Harm.Id && par2EntityLiving.IsEntityUndead()) { int i = (int)(par4 * (double)(6 << par3) + 0.5D); par2EntityLiving.Heal(i); } else if (Id == Harm.Id && !par2EntityLiving.IsEntityUndead() || Id == Heal.Id && par2EntityLiving.IsEntityUndead()) { int j = (int)(par4 * (double)(6 << par3) + 0.5D); if (par1EntityLiving == null) { par2EntityLiving.AttackEntityFrom(DamageSource.Magic, j); } else { par2EntityLiving.AttackEntityFrom(DamageSource.CauseIndirectMagicDamage(par2EntityLiving, par1EntityLiving), j); } } }