In F:NV your Damage Threshold (DT) is subtracted directly from damage that you take. Unless that would reduce the damage you take by more than 80% - in that case, damage is reduced by 80% instead.
So if your DT is 80% of the base damage then you get the same protection as if it was 999999% of the base damage. ie
Value post_DT_dmg ( Value pre_DT_dmg, Value DT ) {
return max( pre_DT_dmg - DT, pre_DT_dmg * 0.2);
}
I was thinking of changing the formula to something smoother. Say, something closer to the damage formula used in WBC3 IIRC:
Value post_DT_dmg ( Value pre_DT_dmg, Value DT ) {
if (DT * 2 <= pre_DT_dmg) return pre_DT_dmg - DT;
else return post_DT_dmg( pre_DT_dmg * 0.5, 0.5 * (DT - pre_DT_dmg * 0.5) );
}
Or more realistically, something like:
Value post_DT_dmg ( Value pre_DT_dmg, Value DT ) {
return pre_DT_dmg * std::pow(0.2, DT / pre_DT_dmg);
}
Original formula vs WBC3 formula effects:
Original formula vs 3rd formula effects: