protected virtual bool Func_48376_a(EntityLiving par1EntityLiving, bool par2)
        {
            if (par1EntityLiving == null)
            {
                return(false);
            }

            if (par1EntityLiving == TaskOwner)
            {
                return(false);
            }

            if (!par1EntityLiving.IsEntityAlive())
            {
                return(false);
            }

            if (par1EntityLiving.BoundingBox.MaxY <= TaskOwner.BoundingBox.MinY || par1EntityLiving.BoundingBox.MinY >= TaskOwner.BoundingBox.MaxY)
            {
                return(false);
            }

            if (!TaskOwner.Func_48100_a(par1EntityLiving.GetType()))
            {
                return(false);
            }

            if ((TaskOwner is EntityTameable) && ((EntityTameable)TaskOwner).IsTamed())
            {
                if ((par1EntityLiving is EntityTameable) && ((EntityTameable)par1EntityLiving).IsTamed())
                {
                    return(false);
                }

                if (par1EntityLiving == ((EntityTameable)TaskOwner).GetOwner())
                {
                    return(false);
                }
            }
            else if ((par1EntityLiving is EntityPlayer) && !par2 && ((EntityPlayer)par1EntityLiving).Capabilities.DisableDamage)
            {
                return(false);
            }

            if (!TaskOwner.IsWithinHomeDistance(MathHelper2.Floor_double(par1EntityLiving.PosX), MathHelper2.Floor_double(par1EntityLiving.PosY), MathHelper2.Floor_double(par1EntityLiving.PosZ)))
            {
                return(false);
            }

            if (Field_48380_e && !TaskOwner.Func_48090_aM().CanSee(par1EntityLiving))
            {
                return(false);
            }

            if (Field_48383_a)
            {
                if (--Field_48377_f <= 0)
                {
                    Field_48381_b = 0;
                }

                if (Field_48381_b == 0)
                {
                    Field_48381_b = Func_48375_a(par1EntityLiving) ? 1 : 2;
                }

                if (Field_48381_b == 2)
                {
                    return(false);
                }
            }

            return(true);
        }