From 83c53abfe0705f4d269ce5914ec57090700fc1fd Mon Sep 17 00:00:00 2001 From: Raphael Bertoche Date: Sun, 12 Nov 2023 18:04:27 -0300 Subject: [PATCH] Adds and uses bool member HasStealthComponent to GetStatusIconsEvent This makes stealth effective against all huds --- Content.Client/Overlays/ShowHealthIconsSystem.cs | 2 +- Content.Client/Overlays/ShowHungerIconsSystem.cs | 2 +- Content.Client/Overlays/ShowSecurityIconsSystem.cs | 2 +- Content.Client/Overlays/ShowThirstIconsSystem.cs | 2 +- Content.Client/SSDIndicator/SSDIndicatorSystem.cs | 3 ++- Content.Client/StatusIcon/StatusIconSystem.cs | 5 ++++- Content.Shared/StatusIcon/Components/StatusIconComponent.cs | 2 +- 7 files changed, 11 insertions(+), 7 deletions(-) diff --git a/Content.Client/Overlays/ShowHealthIconsSystem.cs b/Content.Client/Overlays/ShowHealthIconsSystem.cs index 925cd85fb06608..a208691085e45a 100644 --- a/Content.Client/Overlays/ShowHealthIconsSystem.cs +++ b/Content.Client/Overlays/ShowHealthIconsSystem.cs @@ -47,7 +47,7 @@ protected override void DeactivateInternal() private void OnGetStatusIconsEvent(EntityUid uid, DamageableComponent damageableComponent, ref GetStatusIconsEvent args) { - if (!IsActive || args.InContainer) + if (!IsActive || args.InContainer || args.HasStealthComponent) return; AppendHealthIcons(damageableComponent, args.StatusIcons); diff --git a/Content.Client/Overlays/ShowHungerIconsSystem.cs b/Content.Client/Overlays/ShowHungerIconsSystem.cs index 0182a08678b45d..27aaa1ef80132b 100644 --- a/Content.Client/Overlays/ShowHungerIconsSystem.cs +++ b/Content.Client/Overlays/ShowHungerIconsSystem.cs @@ -19,7 +19,7 @@ public override void Initialize() private void OnGetStatusIconsEvent(EntityUid uid, HungerComponent hungerComponent, ref GetStatusIconsEvent args) { - if (!IsActive || args.InContainer) + if (!IsActive || args.InContainer || args.HasStealthComponent) return; var healthIcons = DecideHungerIcon(uid, hungerComponent); diff --git a/Content.Client/Overlays/ShowSecurityIconsSystem.cs b/Content.Client/Overlays/ShowSecurityIconsSystem.cs index 71a3c75a501c50..9b5b699810c1ee 100644 --- a/Content.Client/Overlays/ShowSecurityIconsSystem.cs +++ b/Content.Client/Overlays/ShowSecurityIconsSystem.cs @@ -25,7 +25,7 @@ public override void Initialize() private void OnGetStatusIconsEvent(EntityUid uid, StatusIconComponent _, ref GetStatusIconsEvent @event) { - if (!IsActive || @event.InContainer) + if (!IsActive || @event.InContainer || @event.HasStealthComponent) { return; } diff --git a/Content.Client/Overlays/ShowThirstIconsSystem.cs b/Content.Client/Overlays/ShowThirstIconsSystem.cs index 89bc5029ba9a2d..fb6f9ddc089674 100644 --- a/Content.Client/Overlays/ShowThirstIconsSystem.cs +++ b/Content.Client/Overlays/ShowThirstIconsSystem.cs @@ -19,7 +19,7 @@ public override void Initialize() private void OnGetStatusIconsEvent(EntityUid uid, ThirstComponent thirstComponent, ref GetStatusIconsEvent args) { - if (!IsActive || args.InContainer) + if (!IsActive || args.InContainer || args.HasStealthComponent) return; var healthIcons = DecideThirstIcon(uid, thirstComponent); diff --git a/Content.Client/SSDIndicator/SSDIndicatorSystem.cs b/Content.Client/SSDIndicator/SSDIndicatorSystem.cs index f30d56506131a0..0765b1925307f5 100644 --- a/Content.Client/SSDIndicator/SSDIndicatorSystem.cs +++ b/Content.Client/SSDIndicator/SSDIndicatorSystem.cs @@ -26,7 +26,8 @@ private void OnGetStatusIcon(EntityUid uid, SSDIndicatorComponent component, ref { if (!component.IsSSD || !_cfg.GetCVar(CCVars.ICShowSSDIndicator) || - args.InContainer) + args.InContainer || + args.HasStealthComponent) return; args.StatusIcons.Add(_prototype.Index(component.Icon)); diff --git a/Content.Client/StatusIcon/StatusIconSystem.cs b/Content.Client/StatusIcon/StatusIconSystem.cs index bd708b63d019fa..0a1cf9555be061 100644 --- a/Content.Client/StatusIcon/StatusIconSystem.cs +++ b/Content.Client/StatusIcon/StatusIconSystem.cs @@ -1,6 +1,7 @@ using Content.Shared.CCVar; using Content.Shared.StatusIcon; using Content.Shared.StatusIcon.Components; +using Content.Shared.Stealth.Components; using Robust.Client.Graphics; using Robust.Shared.Configuration; @@ -13,6 +14,7 @@ public sealed class StatusIconSystem : SharedStatusIconSystem { [Dependency] private readonly IConfigurationManager _configuration = default!; [Dependency] private readonly IOverlayManager _overlay = default!; + [Dependency] private readonly IEntityManager _entManager = default!; private bool _globalEnabled; private bool _localEnabled; @@ -63,7 +65,8 @@ public List GetStatusIcons(EntityUid uid, MetaDataComponent? met return list; var inContainer = (meta.Flags & MetaDataFlags.InContainer) != 0; - var ev = new GetStatusIconsEvent(list, inContainer); + var hasStealthComponent = _entManager.HasComponent(uid); + var ev = new GetStatusIconsEvent(list, inContainer, hasStealthComponent); RaiseLocalEvent(uid, ref ev); return ev.StatusIcons; } diff --git a/Content.Shared/StatusIcon/Components/StatusIconComponent.cs b/Content.Shared/StatusIcon/Components/StatusIconComponent.cs index 9efe9731c8b8ca..6a0e94ecea5239 100644 --- a/Content.Shared/StatusIcon/Components/StatusIconComponent.cs +++ b/Content.Shared/StatusIcon/Components/StatusIconComponent.cs @@ -24,4 +24,4 @@ public sealed partial class StatusIconComponent : Component /// /// [ByRefEvent] -public record struct GetStatusIconsEvent(List StatusIcons, bool InContainer); +public record struct GetStatusIconsEvent(List StatusIcons, bool InContainer, bool HasStealthComponent);