diff --git a/OpenRA.Mods.Common/Traits/Crates/HealUnitsCrateAction.cs b/OpenRA.Mods.Common/Traits/Crates/HealUnitsCrateAction.cs index e5181c3d53..d228eb0cd6 100644 --- a/OpenRA.Mods.Common/Traits/Crates/HealUnitsCrateAction.cs +++ b/OpenRA.Mods.Common/Traits/Crates/HealUnitsCrateAction.cs @@ -26,12 +26,9 @@ namespace OpenRA.Mods.Common.Traits public override void Activate(Actor collector) { - foreach (var unit in collector.World.Actors.Where(a => a.Owner == collector.Owner)) - { - var health = unit.TraitOrDefault(); - if (health != null && !health.IsDead) - health.InflictDamage(unit, unit, -(health.MaxHP - health.HP), null, true); - } + foreach (var healable in collector.World.ActorsWithTrait().Where(tp => tp.Actor.Owner == collector.Owner)) + if (!healable.Trait.IsDead) + healable.Trait.InflictDamage(healable.Actor, healable.Actor, -(healable.Trait.MaxHP - healable.Trait.HP), null, true); base.Activate(collector); }