diff --git a/OpenRA.Mods.Common/Traits/Render/RenderDebugState.cs b/OpenRA.Mods.Common/Traits/Render/RenderDebugState.cs index df9ba27ca8..8813442960 100644 --- a/OpenRA.Mods.Common/Traits/Render/RenderDebugState.cs +++ b/OpenRA.Mods.Common/Traits/Render/RenderDebugState.cs @@ -32,7 +32,7 @@ namespace OpenRA.Mods.Common.Traits.Render readonly SpriteFont font; readonly Actor self; readonly WVec offset; - SquadManagerBotModule ai; + SquadManagerBotModule[] squadManagerModules; Color color; string tagString; @@ -52,7 +52,7 @@ namespace OpenRA.Mods.Common.Traits.Render void INotifyCreated.Created(Actor self) { - ai = self.Owner.PlayerActor.TraitsImplementing().FirstOrDefault(Exts.IsTraitEnabled); + squadManagerModules = self.Owner.PlayerActor.TraitsImplementing().ToArray(); } void INotifyAddedToWorld.AddedToWorld(Actor self) @@ -86,11 +86,8 @@ namespace OpenRA.Mods.Common.Traits.Render if (!self.Owner.IsBot) yield break; - if (ai == null) - yield break; - - var squads = ai.Squads; - var squad = squads.FirstOrDefault(x => x.Units.Contains(self)); + var squads = squadManagerModules.FirstEnabledConditionalTraitOrDefault()?.Squads; + var squad = squads?.FirstOrDefault(x => x.Units.Contains(self)); if (squad == null) yield break;