I killed a Taman in one hit aimed at the head with assault rifle.
I counted the damage from a plasma rifle hit on nanocomposite. It did exactly 50 damage, which means it bypassed the armor entirely.
int G_ApplyProtection (const Edict* target, const byte dmgWeight, int damage)
{
const int naturalProtection = target->chr.teamDef->resistance[dmgWeight];
if (target->getArmour()) {
const objDef_t* armourDef = target->getArmour()->def();
const short armourProtection = armourDef->protection[dmgWeight];
const short totalProtection = armourProtection + naturalProtection;
damage = std::min(std::max(0, damage - armourProtection), std::max(1, damage - totalProtection));
} else {
damage = std::max(1, damage - naturalProtection);
}
return damage;
}
I just found the code. According to this it should be basically 50 - 40 = 10 for plasma rifle hit. So I'm confused about why every hit would not be 10.