// here goes the fun :)
// Shields take damage first then cowls then armor whee
// Shield does not protect from ammo explosions or falls.
if (!ammoExplosion && !hit.isFallDamage() && !damageIS && te.hasShield() && ((hit.getEffect() & HitData.EFFECT_NO_CRITICALS) != HitData.EFFECT_NO_CRITICALS)) {
Mech me = (Mech) te;
int damageNew = me.shieldAbsorptionDamage(damage, hit.getLocation(), hit.isRear());
// if a shield absorbed the damage then lets tell the world
// about it.
if (damageNew != damage) {
int absorb = damage - damageNew;
te.damageThisPhase += absorb;