// TODO Added moreDamageOverride public boolean attackEntityFrom2(Entity entity, int i, boolean moreDamageOverride) { if (entity instanceof EntityFriend && (this instanceof EntityPlayer || this instanceof EntityFriend)) { return false; } if (worldObj.multiplayerWorld) { return false; } field_9344_ag = 0; if (health <= 0) { return false; } field_704_R = 1.5F; boolean flag = true; if (this instanceof EntityZombie && worldObj.instaKill) { damageEntity(100); field_9346_af = i; flag = false; } if ((float) field_9306_bj > (float) field_9366_o / 2.0F) { if (moreDamageOverride) { damageEntity(i); field_9346_af = i; flag = false; } else { if (i <= field_9346_af) { return false; } damageEntity(i - field_9346_af); field_9346_af = i; flag = false; } } else { field_9346_af = i; prevHealth = health; field_9306_bj = field_9366_o; damageEntity(i); hurtTime = maxHurtTime = 10; } attackedAtYaw = 0.0F; if (flag) { worldObj.func_9425_a(this, (byte) 2); setBeenAttacked(); if (entity != null) { double d = entity.posX - posX; double d1; for (d1 = entity.posZ - posZ; d * d + d1 * d1 < 0.0001D; d1 = (Math.random() - Math.random()) * 0.01D) { d = (Math.random() - Math.random()) * 0.01D; } attackedAtYaw = (float) ((Math.atan2(d1, d) * 180D) / 3.1415927410125732D) - rotationYaw; if (this instanceof EntityMobs) { knockBack(entity, i, d, d1); } } else { attackedAtYaw = (int) (Math.random() * 2D) * 180; } } if (health <= 0) { if (flag) { worldObj.playSoundAtEntity( this, getDeathSound(), getSoundVolume(), (rand.nextFloat() - rand.nextFloat()) * 0.2F + 1.0F); } onDeath(entity); } else if (flag) { worldObj.playSoundAtEntity( this, getHurtSound(), getSoundVolume(), (rand.nextFloat() - rand.nextFloat()) * 0.2F + 1.0F); } return true; }