diff --git a/OpenRA.Game/Player.cs b/OpenRA.Game/Player.cs index c2537e016a..8db71497bc 100644 --- a/OpenRA.Game/Player.cs +++ b/OpenRA.Game/Player.cs @@ -225,7 +225,11 @@ namespace OpenRA public Dictionary Stances = new Dictionary(); public bool IsAlliedWith(Player p) { - // Observers are considered allies to active combatants + // Current shroud selection is used to determine stance for spectators + if (p != null && p.Spectating && !NonCombatant && p.World.RenderPlayer != null) + return Stances[p.World.RenderPlayer] == Stance.Ally; + + // Observers are considered allies if RenderPlayer property is null return p == null || Stances[p] == Stance.Ally || (p.Spectating && !NonCombatant); }