diff --git a/Content.Server/Ghost/GhostSystem.cs b/Content.Server/Ghost/GhostSystem.cs index c4b464ab10..535a6b053c 100644 --- a/Content.Server/Ghost/GhostSystem.cs +++ b/Content.Server/Ghost/GhostSystem.cs @@ -59,11 +59,10 @@ namespace Content.Server.Ghost private void OnGhostStartup(EntityUid uid, GhostComponent component, ComponentStartup args) { // Allow this entity to be seen by other ghosts. - if (component.Owner.TryGetComponent(out VisibilityComponent? visibility)) - { - visibility.Layer |= (int) VisibilityFlags.Ghost; - visibility.Layer &= ~(int) VisibilityFlags.Normal; - } + var visibility = component.Owner.EnsureComponent(); + + visibility.Layer |= (int) VisibilityFlags.Ghost; + visibility.Layer &= ~(int) VisibilityFlags.Normal; if (component.Owner.TryGetComponent(out EyeComponent? eye)) { diff --git a/Content.Server/Pointing/EntitySystems/PointingSystem.cs b/Content.Server/Pointing/EntitySystems/PointingSystem.cs index 2280b779b0..c4f655afd5 100644 --- a/Content.Server/Pointing/EntitySystems/PointingSystem.cs +++ b/Content.Server/Pointing/EntitySystems/PointingSystem.cs @@ -136,7 +136,7 @@ namespace Content.Server.Pointing.EntitySystems { var ent = playerSession.ContentData()?.Mind?.CurrentEntity; - if (ent is null || (!ent.TryGetComponent(out var eyeComp) || (eyeComp.VisibilityMask & layer) != 0)) + if (ent is null || (!ent.TryGetComponent(out var eyeComp) || (eyeComp.VisibilityMask & layer) == 0)) return false; return ent.Transform.MapPosition.InRange(player.Transform.MapPosition, PointingRange); diff --git a/Resources/Changelog/Parts/ghost.yml b/Resources/Changelog/Parts/ghost.yml new file mode 100644 index 0000000000..cf986d24f3 --- /dev/null +++ b/Resources/Changelog/Parts/ghost.yml @@ -0,0 +1,4 @@ +author: Zumorica +changes: + - type: Fix + message: Fixes ghost pointing arrows being seen by mere mortals.