diff --git a/wadsrc/static/zscript/actors/inventory/armor.zs b/wadsrc/static/zscript/actors/inventory/armor.zs index bc764fc2c..11e293205 100644 --- a/wadsrc/static/zscript/actors/inventory/armor.zs +++ b/wadsrc/static/zscript/actors/inventory/armor.zs @@ -201,7 +201,8 @@ class BasicArmor : Armor // Once the armor has absorbed its part of the damage, then apply its damage factor, if any, to the player if ((damage > 0) && (ArmorType != 'None')) // BasicArmor is not going to have any damage factor, so skip it. { - newdamage = ApplyDamageFactors(ArmorType, damageType, damage, damage); + damage = int(damage * DamageFactor); + newdamage = (damage < 1) ? 0 : ApplyDamageFactors(ArmorType, damageType, damage, damage); } } } diff --git a/wadsrc/static/zscript/actors/inventory/powerups.zs b/wadsrc/static/zscript/actors/inventory/powerups.zs index ede8f7aa7..f07dd13d4 100644 --- a/wadsrc/static/zscript/actors/inventory/powerups.zs +++ b/wadsrc/static/zscript/actors/inventory/powerups.zs @@ -1659,7 +1659,8 @@ class PowerDamage : Powerup { if (!passive && damage > 0) { - newdamage = max(1, ApplyDamageFactors(GetClass(), damageType, damage, damage * 4)); + damage = int(damage * DamageFactor); + newdamage = (damage < 1) ? 0 : max(1, ApplyDamageFactors(GetClass(), damageType, damage, damage * 4)); if (Owner != null && newdamage > damage) Owner.A_StartSound(ActiveSound, CHAN_AUTO, CHANF_DEFAULT, 1.0, ATTN_NONE); } } @@ -1753,7 +1754,8 @@ class PowerProtection : Powerup { if (passive && damage > 0) { - newdamage = max(0, ApplyDamageFactors(GetClass(), damageType, damage, damage / 4)); + damage = int(damage * DamageFactor); + newdamage = (damage < 1) ? 0 : max(0, ApplyDamageFactors(GetClass(), damageType, damage, damage / 4)); if (Owner != null && newdamage < damage) Owner.A_StartSound(ActiveSound, CHAN_AUTO, CHANF_DEFAULT, 1.0, ATTN_NONE); } }