]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Criminal console status expansion (#36244)
authorB_Kirill <153602297+B-Kirill@users.noreply.github.com>
Tue, 21 Oct 2025 08:44:50 +0000 (18:44 +1000)
committerGitHub <noreply@github.com>
Tue, 21 Oct 2025 08:44:50 +0000 (08:44 +0000)
* Criminal console update and new icons sprites

* Change Hostile and Paroled sprites

* Change Hostile sprite

* Return the 8x8 scale, redraw new icons

* Some changes

Redraw eliminated icon and change icons scaling in pda

* Update Resources/Textures/Interface/Misc/security_icons.rsi/meta.json

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
* Update Content.Client/CartridgeLoader/Cartridges/WantedListUiFragment.cs

---------

Co-authored-by: slarticodefast <161409025+slarticodefast@users.noreply.github.com>
Content.Client/CriminalRecords/CriminalRecordsConsoleWindow.xaml.cs
Content.Server/CriminalRecords/Systems/CriminalRecordsConsoleSystem.cs
Content.Shared/CriminalRecords/Systems/SharedCriminalRecordsSystem.cs
Content.Shared/Security/SecurityStatus.cs
Resources/Locale/en-US/cartridge-loader/cartridges.ftl
Resources/Locale/en-US/criminal-records/criminal-records.ftl
Resources/Prototypes/StatusIcon/security.yml
Resources/Textures/Interface/Misc/security_icons.rsi/hud_eliminated.png [new file with mode: 0644]
Resources/Textures/Interface/Misc/security_icons.rsi/hud_hostile.png [new file with mode: 0644]
Resources/Textures/Interface/Misc/security_icons.rsi/meta.json

index 33b4fbc335d8fa4232d2aaa2b0780816472e65d2..dcae68fa7e7ebd2be6cbf3ff1ceabe6fdff456bd 100644 (file)
@@ -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"
         };
     }
index 1b7e50c6515a6cd7e9e50151869318956fdc8478..a655556d4966e97c39aefa422dd5ab92d5fbe1ca 100644 (file)
@@ -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
index d665d32f1ed21db266e1813d33714a2d7e1a7d90..3e2e103501576c9c9e76f1a1eea37c03505d290a 100644 (file)
@@ -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
         };
 
index c7fe3766f1f6d61a5544746a87a50d4847d307ea..49fb0595460d080c9e8c852fbbaafd04e5c07e89 100644 (file)
@@ -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
 /// </summary>
 public enum SecurityStatus : byte
 {
     None,
     Suspected,
     Wanted,
+    Hostile,
     Detained,
     Paroled,
-    Discharged
+    Discharged,
+    Eliminated
 }
index 6621c000a39dc464aa2050cdd39ee42d41f74541..11b2fb94022002c8e53a84b32e1e7aa6c0f8cdae 100644 (file)
@@ -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
     }
 
index 2833b0a07fe852419843a3ab780433d5e1b7a986..de7212ad524bc2a34131a01572156d42fab52bb0 100644 (file)
@@ -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 = <unknown>
 
 ## Filters
index 430e9c4f98e91c98824e52ce235afa3abcbb0748..2cab7d56ad11242844267b87f9c9fe6e988f5baa 100644 (file)
   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 (file)
index 0000000..b3e0d28
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 (file)
index 0000000..3875a61
Binary files /dev/null and b/Resources/Textures/Interface/Misc/security_icons.rsi/hud_hostile.png differ
index 042eda20c6c761479789f836fb1d43834ec67938..c49872cb5df2834d2a546eb9667f44671f6f515f 100644 (file)
@@ -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
     },
     {
       "name": "hud_wanted"
+    },
+    {
+      "name": "hud_hostile"
+    },
+    {
+      "name": "hud_eliminated"
     }
   ]
 }