diff --git a/OpenRA.Game/Player.cs b/OpenRA.Game/Player.cs index f324b495ee..f53e9a0895 100644 --- a/OpenRA.Game/Player.cs +++ b/OpenRA.Game/Player.cs @@ -159,7 +159,7 @@ namespace OpenRA public bool CanTargetActor(Actor a) { - if (HasFogVisibility) + if (HasFogVisibility && fogVisibilities.Any(f => f.IsVisible(a))) return true; return CanViewActor(a); diff --git a/OpenRA.Mods.RA/Effects/GpsDot.cs b/OpenRA.Mods.RA/Effects/GpsDot.cs index 70c10ce1cf..d8515b5380 100644 --- a/OpenRA.Mods.RA/Effects/GpsDot.cs +++ b/OpenRA.Mods.RA/Effects/GpsDot.cs @@ -79,7 +79,8 @@ namespace OpenRA.Mods.RA.Effects if (disguise.Value != null && disguise.Value.Disguised) return false; - if (huf.Value != null && !huf.Value.IsVisible(self, toPlayer)) + if (huf.Value != null && !huf.Value.IsVisible(self, toPlayer) + && toPlayer.Shroud.IsExplored(self.CenterPosition)) return true; if (fuf.Value == null) @@ -92,7 +93,7 @@ namespace OpenRA.Mods.RA.Effects if (f.HasRenderables || f.NeedRenderables) return false; - return f.Visible; + return f.Visible && !f.Shrouded; } public void Tick(World world)