diff --git a/Content.Client/HealthAnalyzer/UI/HealthAnalyzerWindow.xaml.cs b/Content.Client/HealthAnalyzer/UI/HealthAnalyzerWindow.xaml.cs index fd3615d59f5..cad8f436784 100644 --- a/Content.Client/HealthAnalyzer/UI/HealthAnalyzerWindow.xaml.cs +++ b/Content.Client/HealthAnalyzer/UI/HealthAnalyzerWindow.xaml.cs @@ -126,6 +126,16 @@ public void Populate(HealthAnalyzerScannedUserMessage msg) MaxWidth = 300 }); + // Frontier: uncloneable text + if (msg.Uncloneable == true) + AlertsContainer.AddChild(new RichTextLabel + { + Text = Loc.GetString("health-analyzer-window-entity-uncloneable-text"), + Margin = new Thickness(0, 4), + MaxWidth = 300 + }); + // End Frontier + if (msg.Bleeding == true) AlertsContainer.AddChild(new RichTextLabel { diff --git a/Content.Server/Medical/CryoPodSystem.cs b/Content.Server/Medical/CryoPodSystem.cs index 8e9a2b2d0cf..530f1de579d 100644 --- a/Content.Server/Medical/CryoPodSystem.cs +++ b/Content.Server/Medical/CryoPodSystem.cs @@ -213,7 +213,8 @@ private void OnActivateUI(Entity entity, ref AfterActivatableU : 0, null, null, - null + null, + null // Frontier )); } diff --git a/Content.Server/Medical/HealthAnalyzerSystem.cs b/Content.Server/Medical/HealthAnalyzerSystem.cs index 90646725bb7..6d5614c2fbc 100644 --- a/Content.Server/Medical/HealthAnalyzerSystem.cs +++ b/Content.Server/Medical/HealthAnalyzerSystem.cs @@ -18,6 +18,7 @@ using Robust.Shared.Audio.Systems; using Robust.Shared.Containers; using Robust.Shared.Timing; +using Content.Server._NF.Traits.Assorted; // Frontier namespace Content.Server.Medical; @@ -198,6 +199,7 @@ public void UpdateScannedUser(EntityUid healthAnalyzer, EntityUid target, bool s var bloodAmount = float.NaN; var bleeding = false; var unrevivable = false; + var uncloneable = false; // Frontier if (TryComp(target, out var bloodstream) && _solutionContainerSystem.ResolveSolution(target, bloodstream.BloodSolutionName, @@ -210,13 +212,17 @@ public void UpdateScannedUser(EntityUid healthAnalyzer, EntityUid target, bool s if (HasComp(target)) unrevivable = true; + if (HasComp(target)) // Frontier + uncloneable = true; // Frontier + _uiSystem.ServerSendUiMessage(healthAnalyzer, HealthAnalyzerUiKey.Key, new HealthAnalyzerScannedUserMessage( GetNetEntity(target), bodyTemperature, bloodAmount, scanMode, bleeding, - unrevivable + unrevivable, + uncloneable // Frontier )); } } diff --git a/Content.Shared/MedicalScanner/HealthAnalyzerScannedUserMessage.cs b/Content.Shared/MedicalScanner/HealthAnalyzerScannedUserMessage.cs index 08af1a36a7b..d631e68acfe 100644 --- a/Content.Shared/MedicalScanner/HealthAnalyzerScannedUserMessage.cs +++ b/Content.Shared/MedicalScanner/HealthAnalyzerScannedUserMessage.cs @@ -14,8 +14,9 @@ public sealed class HealthAnalyzerScannedUserMessage : BoundUserInterfaceMessage public bool? ScanMode; public bool? Bleeding; public bool? Unrevivable; + public bool? Uncloneable; // Frontier - public HealthAnalyzerScannedUserMessage(NetEntity? targetEntity, float temperature, float bloodLevel, bool? scanMode, bool? bleeding, bool? unrevivable) + public HealthAnalyzerScannedUserMessage(NetEntity? targetEntity, float temperature, float bloodLevel, bool? scanMode, bool? bleeding, bool? unrevivable, bool? uncloneable) // Frontier: add uncloneable { TargetEntity = targetEntity; Temperature = temperature; @@ -23,6 +24,7 @@ public HealthAnalyzerScannedUserMessage(NetEntity? targetEntity, float temperatu ScanMode = scanMode; Bleeding = bleeding; Unrevivable = unrevivable; + Uncloneable = uncloneable; // Frontier } } diff --git a/Resources/Changelog/Frontier.yml b/Resources/Changelog/Frontier.yml index 9e1eacdb297..72963d8032a 100644 --- a/Resources/Changelog/Frontier.yml +++ b/Resources/Changelog/Frontier.yml @@ -6896,3 +6896,9 @@ Entries: message: Only the SR, sheriff and DOC can open station job slots. id: 5727 time: '2025-02-04T23:35:15.0000000+00:00' +- author: whatston3 + changes: + - type: Add + message: The health analyzer will tell you when a scanned patient is uncloneable. + id: 5728 + time: '2025-02-05T16:44:46.0000000+00:00' diff --git a/Resources/Locale/en-US/_NF/medical/components/health-analyzer-component.ftl b/Resources/Locale/en-US/_NF/medical/components/health-analyzer-component.ftl new file mode 100644 index 00000000000..efff7dac712 --- /dev/null +++ b/Resources/Locale/en-US/_NF/medical/components/health-analyzer-component.ftl @@ -0,0 +1 @@ +health-analyzer-window-entity-uncloneable-text = [color=yellow]Unknown genetic sequence detected! Patient can not be cloned.[/color]