public boolean damageEntity(DamageSource var1, float var2) {
    if (!this.world.isClientSide && !this.dead) {
      if (this.isInvulnerable(var1)) {
        return false;
      } else {
        this.k(-this.r());
        this.j(10);
        this.ac();
        this.setDamage(this.getDamage() + var2 * 10.0F);
        boolean var3 =
            var1.getEntity() instanceof EntityHuman
                && ((EntityHuman) var1.getEntity()).abilities.canInstantlyBuild;
        if (var3 || this.getDamage() > 40.0F) {
          if (this.passenger != null) {
            this.passenger.mount((Entity) null);
          }

          if (var3 && !this.hasCustomName()) {
            this.die();
          } else {
            this.a(var1);
          }
        }

        return true;
      }
    } else {
      return true;
    }
  }
  @Override
  public void die(DamageSource damagesource) {
    super.die(damagesource);
    if (damagesource.h() instanceof EntityArrow
        && damagesource.getEntity() instanceof EntityHuman) {
      EntityHuman entityhuman = (EntityHuman) damagesource.getEntity();
      double d0 = entityhuman.locX - this.locX;
      double d1 = entityhuman.locZ - this.locZ;

      if (d0 * d0 + d1 * d1 >= 2500.0D) {
        entityhuman.a((Statistic) AchievementList.v);
      }
    }
  }
  /** Called when the entity is attacked. */
  @Override
  public boolean attackEntityFrom(DamageSource par1DamageSource, int par2) {
    Entity var3 = par1DamageSource.getEntity();

    if (var3 instanceof EntityPlayer) {
      List var4 =
          this.worldObj.getEntitiesWithinAABBExcludingEntity(
              this, this.boundingBox.expand(32.0D, 32.0D, 32.0D));
      Iterator var5 = var4.iterator();

      while (var5.hasNext()) {
        Entity var6 = (Entity) var5.next();

        if (var6 instanceof EntityPigZombieTFC) {
          EntityPigZombieTFC var7 = (EntityPigZombieTFC) var6;
          var7.becomeAngryAt(var3);
        }
      }

      this.becomeAngryAt(var3);
    }

    return super.attackEntityFrom(par1DamageSource, par2);
  }