diff --git a/OpenRA.Mods.Common/Traits/Crates/LevelUpCrateAction.cs b/OpenRA.Mods.Common/Traits/Crates/LevelUpCrateAction.cs index b3648d8c4d..a8ebec57bd 100644 --- a/OpenRA.Mods.Common/Traits/Crates/LevelUpCrateAction.cs +++ b/OpenRA.Mods.Common/Traits/Crates/LevelUpCrateAction.cs @@ -67,12 +67,12 @@ namespace OpenRA.Mods.Common.Traits if (info.MaxExtraCollectors > -1) inRange = inRange.Take(info.MaxExtraCollectors); - foreach (var actor in inRange.Append(collector)) + foreach (var recipient in inRange.Append(collector)) { - var recipient = actor; // loop variable in closure hazard recipient.World.AddFrameEndTask(w => { - recipient.TraitOrDefault()?.GiveLevels(info.Levels); + if (!recipient.IsDead) + recipient.TraitOrDefault()?.GiveLevels(info.Levels); }); }