diff --git a/OpenRA.Game/Traits/Player/FrozenActorLayer.cs b/OpenRA.Game/Traits/Player/FrozenActorLayer.cs index fd04eb0532..bf7b81e1d9 100644 --- a/OpenRA.Game/Traits/Player/FrozenActorLayer.cs +++ b/OpenRA.Game/Traits/Player/FrozenActorLayer.cs @@ -43,6 +43,7 @@ namespace OpenRA.Traits public Player Owner { get; private set; } public BitSet TargetTypes { get; private set; } + public WPos[] TargetablePositions { get; private set; } public ITooltipInfo TooltipInfo { get; private set; } public Player TooltipOwner { get; private set; } @@ -118,6 +119,7 @@ namespace OpenRA.Traits { Owner = actor.Owner; TargetTypes = actor.GetEnabledTargetTypes(); + TargetablePositions = actor.GetTargetablePositions().ToArray(); Hidden = !actor.CanBeViewedByPlayer(viewer); if (health != null) diff --git a/OpenRA.Game/Traits/Target.cs b/OpenRA.Game/Traits/Target.cs index a341d55c1c..8d4f730cc3 100644 --- a/OpenRA.Game/Traits/Target.cs +++ b/OpenRA.Game/Traits/Target.cs @@ -183,12 +183,9 @@ namespace OpenRA.Traits switch (Type) { case TargetType.Actor: - if (!actor.Targetables.Any(Exts.IsTraitEnabled)) - return new[] { actor.CenterPosition }; - return actor.GetTargetablePositions(); case TargetType.FrozenActor: - return new[] { frozen.CenterPosition }; + return frozen.TargetablePositions; case TargetType.Terrain: return terrainPositions; default: