diff --git a/Content.Client/CriminalRecords/CriminalRecordsConsoleWindow.xaml.cs b/Content.Client/CriminalRecords/CriminalRecordsConsoleWindow.xaml.cs index 33b4fbc335..dcae68fa7e 100644 --- a/Content.Client/CriminalRecords/CriminalRecordsConsoleWindow.xaml.cs +++ b/Content.Client/CriminalRecords/CriminalRecordsConsoleWindow.xaml.cs @@ -276,7 +276,7 @@ public sealed partial class CriminalRecordsConsoleWindow : FancyWindow private void SetStatus(SecurityStatus status) { - if (status == SecurityStatus.Wanted || status == SecurityStatus.Suspected) + if (status == SecurityStatus.Wanted || status == SecurityStatus.Suspected || status == SecurityStatus.Hostile) { GetReason(status); return; @@ -322,6 +322,8 @@ public sealed partial class CriminalRecordsConsoleWindow : FancyWindow SecurityStatus.Detained => "hud_incarcerated", SecurityStatus.Discharged => "hud_discharged", SecurityStatus.Suspected => "hud_suspected", + SecurityStatus.Hostile => "hud_hostile", + SecurityStatus.Eliminated => "hud_eliminated", _ => "SecurityIconNone" }; } diff --git a/Content.Server/CriminalRecords/Systems/CriminalRecordsConsoleSystem.cs b/Content.Server/CriminalRecords/Systems/CriminalRecordsConsoleSystem.cs index 1b7e50c651..a655556d49 100644 --- a/Content.Server/CriminalRecords/Systems/CriminalRecordsConsoleSystem.cs +++ b/Content.Server/CriminalRecords/Systems/CriminalRecordsConsoleSystem.cs @@ -87,7 +87,8 @@ public sealed class CriminalRecordsConsoleSystem : SharedCriminalRecordsConsoleS { // prevent malf client violating wanted/reason nullability if (msg.Status == SecurityStatus.Wanted != (msg.Reason != null) && - msg.Status == SecurityStatus.Suspected != (msg.Reason != null)) + msg.Status == SecurityStatus.Suspected != (msg.Reason != null) && + msg.Status == SecurityStatus.Hostile != (msg.Reason != null)) return; if (!CheckSelected(ent, msg.Actor, out var mob, out var key)) @@ -144,6 +145,8 @@ public sealed class CriminalRecordsConsoleSystem : SharedCriminalRecordsConsoleS // figure out which radio message to send depending on transition var statusString = (oldStatus, msg.Status) switch { + (_, SecurityStatus.Hostile) => "hostile", + (_, SecurityStatus.Eliminated) => "eliminated", // person has been detained (_, SecurityStatus.Detained) => "detained", // person did something sus @@ -154,6 +157,8 @@ public sealed class CriminalRecordsConsoleSystem : SharedCriminalRecordsConsoleS (_, SecurityStatus.Discharged) => "released", // going from any other state to wanted, AOS or prisonbreak / lazy secoff never set them to released and they reoffended (_, SecurityStatus.Wanted) => "wanted", + (SecurityStatus.Hostile, SecurityStatus.None) => "not-hostile", + (SecurityStatus.Eliminated, SecurityStatus.None) => "not-eliminated", // person is no longer sus (SecurityStatus.Suspected, SecurityStatus.None) => "not-suspected", // going from wanted to none, must have been a mistake diff --git a/Content.Shared/CriminalRecords/Systems/SharedCriminalRecordsSystem.cs b/Content.Shared/CriminalRecords/Systems/SharedCriminalRecordsSystem.cs index d665d32f1e..3e2e103501 100644 --- a/Content.Shared/CriminalRecords/Systems/SharedCriminalRecordsSystem.cs +++ b/Content.Shared/CriminalRecords/Systems/SharedCriminalRecordsSystem.cs @@ -45,6 +45,8 @@ public abstract class SharedCriminalRecordsSystem : EntitySystem SecurityStatus.Detained => "SecurityIconIncarcerated", SecurityStatus.Discharged => "SecurityIconDischarged", SecurityStatus.Suspected => "SecurityIconSuspected", + SecurityStatus.Hostile => "SecurityIconHostile", + SecurityStatus.Eliminated => "SecurityIconEliminated", _ => record.StatusIcon }; diff --git a/Content.Shared/Security/SecurityStatus.cs b/Content.Shared/Security/SecurityStatus.cs index c7fe3766f1..49fb059546 100644 --- a/Content.Shared/Security/SecurityStatus.cs +++ b/Content.Shared/Security/SecurityStatus.cs @@ -6,16 +6,20 @@ /// None - the default value /// Suspected - the person is suspected of doing something illegal /// Wanted - the person is being wanted by security +/// Hostile - the person has been admitted as hostile /// Detained - the person is detained by security /// Paroled - the person is on parole /// Discharged - the person has been released from prison +/// Eliminated - the person has been eliminated and should not be healed /// public enum SecurityStatus : byte { None, Suspected, Wanted, + Hostile, Detained, Paroled, - Discharged + Discharged, + Eliminated } diff --git a/Resources/Locale/en-US/cartridge-loader/cartridges.ftl b/Resources/Locale/en-US/cartridge-loader/cartridges.ftl index 6621c000a3..11b2fb9402 100644 --- a/Resources/Locale/en-US/cartridge-loader/cartridges.ftl +++ b/Resources/Locale/en-US/cartridge-loader/cartridges.ftl @@ -92,6 +92,8 @@ wanted-list-status-label = [color=darkgray]status:[/color] {$status -> [detained] [color=#b18644]detained[/color] [paroled] [color=green]paroled[/color] [discharged] [color=green]discharged[/color] + [hostile] [color=darkred]hostile[/color] + [eliminated] [color=gray]eliminated[/color] *[other] none } diff --git a/Resources/Locale/en-US/criminal-records/criminal-records.ftl b/Resources/Locale/en-US/criminal-records/criminal-records.ftl index 2833b0a07f..de7212ad52 100644 --- a/Resources/Locale/en-US/criminal-records/criminal-records.ftl +++ b/Resources/Locale/en-US/criminal-records/criminal-records.ftl @@ -16,6 +16,8 @@ criminal-records-status-detained = Detained criminal-records-status-suspected = Suspect criminal-records-status-discharged = Discharged criminal-records-status-paroled = Paroled +criminal-records-status-hostile = Hostile +criminal-records-status-eliminated = Eliminated criminal-records-console-wanted-reason = Wanted Reason criminal-records-console-suspected-reason = Suspected Reason @@ -42,6 +44,10 @@ criminal-records-console-detained = {$name} ({$job}) has been detained by {$offi criminal-records-console-released = {$name} ({$job}) has been released by {$officer}. criminal-records-console-paroled = {$name} ({$job}) has been released on parole by {$officer}. criminal-records-console-not-parole = {$officer} cleared the parole status of {$name} ({$job}). +criminal-records-console-hostile = {$name} ({$job}) was marked as hostile by {$officer} for: {$reason}. +criminal-records-console-not-hostile = {$name} ({$job}) no longer marked as hostile by {$officer}. +criminal-records-console-eliminated = {$name} ({$job}) was marked as eliminated by {$officer}. +criminal-records-console-not-eliminated = {$name} ({$job}) no longer marked as eliminated by {$officer}. criminal-records-console-unknown-officer = ## Filters diff --git a/Resources/Prototypes/StatusIcon/security.yml b/Resources/Prototypes/StatusIcon/security.yml index 430e9c4f98..2cab7d56ad 100644 --- a/Resources/Prototypes/StatusIcon/security.yml +++ b/Resources/Prototypes/StatusIcon/security.yml @@ -33,6 +33,20 @@ icon: sprite: /Textures/Interface/Misc/security_icons.rsi state: hud_suspected + +- type: securityIcon + parent: SecurityIcon + id: SecurityIconHostile + icon: + sprite: /Textures/Interface/Misc/security_icons.rsi + state: hud_hostile + +- type: securityIcon + parent: SecurityIcon + id: SecurityIconEliminated + icon: + sprite: /Textures/Interface/Misc/security_icons.rsi + state: hud_eliminated - type: securityIcon parent: SecurityIcon diff --git a/Resources/Textures/Interface/Misc/security_icons.rsi/hud_eliminated.png b/Resources/Textures/Interface/Misc/security_icons.rsi/hud_eliminated.png new file mode 100644 index 0000000000..b3e0d28659 Binary files /dev/null and b/Resources/Textures/Interface/Misc/security_icons.rsi/hud_eliminated.png differ diff --git a/Resources/Textures/Interface/Misc/security_icons.rsi/hud_hostile.png b/Resources/Textures/Interface/Misc/security_icons.rsi/hud_hostile.png new file mode 100644 index 0000000000..3875a61f64 Binary files /dev/null and b/Resources/Textures/Interface/Misc/security_icons.rsi/hud_hostile.png differ diff --git a/Resources/Textures/Interface/Misc/security_icons.rsi/meta.json b/Resources/Textures/Interface/Misc/security_icons.rsi/meta.json index 042eda20c6..c49872cb5d 100644 --- a/Resources/Textures/Interface/Misc/security_icons.rsi/meta.json +++ b/Resources/Textures/Interface/Misc/security_icons.rsi/meta.json @@ -1,7 +1,7 @@ { "version": 1, "license": "CC-BY-SA-3.0", - "copyright": "Taken from https://github.com/tgstation/tgstation/blob/7f654b6e8e59021607a9e888dfeb79920401c372/icons/mob/huds/hud.dmi", + "copyright": "Original sprites from https://github.com/tgstation/tgstation/blob/7f654b6e8e59021607a9e888dfeb79920401c372/icons/mob/huds/hud.dmi. hud_hostile and hud_eliminated by B_Kirill", "size": { "x": 8, "y": 8 @@ -21,6 +21,12 @@ }, { "name": "hud_wanted" + }, + { + "name": "hud_hostile" + }, + { + "name": "hud_eliminated" } ] }