diff --git a/OpenRA.Mods.Common/Warheads/DamageWarhead.cs b/OpenRA.Mods.Common/Warheads/DamageWarhead.cs index 5cbac65fe5..0039082b31 100644 --- a/OpenRA.Mods.Common/Warheads/DamageWarhead.cs +++ b/OpenRA.Mods.Common/Warheads/DamageWarhead.cs @@ -37,15 +37,11 @@ namespace OpenRA.Mods.Common.Warheads public int DamageVersus(Actor victim) { - var armor = victim.TraitsImplementing().Where(a => !a.IsTraitDisabled && a.Info.Type != null); - foreach (var a in armor) - { - int versus; - if (Versus.TryGetValue(a.Info.Type, out versus)) - return versus; - } + var armor = victim.TraitsImplementing() + .Where(a => !a.IsTraitDisabled && a.Info.Type != null && Versus.ContainsKey(a.Info.Type)) + .Select(a => Versus[a.Info.Type]); - return 100; + return Util.ApplyPercentageModifiers(100, armor); } public override void DoImpact(Target target, Actor firedBy, IEnumerable damageModifiers)