Criminal console status expansion (#36244)

* 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>
This commit is contained in:
B_Kirill
2025-10-21 18:44:50 +10:00
committed by GitHub
parent b4d148a016
commit e3880a3c43
10 changed files with 45 additions and 4 deletions

View File

@@ -276,7 +276,7 @@ public sealed partial class CriminalRecordsConsoleWindow : FancyWindow
private void SetStatus(SecurityStatus status) private void SetStatus(SecurityStatus status)
{ {
if (status == SecurityStatus.Wanted || status == SecurityStatus.Suspected) if (status == SecurityStatus.Wanted || status == SecurityStatus.Suspected || status == SecurityStatus.Hostile)
{ {
GetReason(status); GetReason(status);
return; return;
@@ -322,6 +322,8 @@ public sealed partial class CriminalRecordsConsoleWindow : FancyWindow
SecurityStatus.Detained => "hud_incarcerated", SecurityStatus.Detained => "hud_incarcerated",
SecurityStatus.Discharged => "hud_discharged", SecurityStatus.Discharged => "hud_discharged",
SecurityStatus.Suspected => "hud_suspected", SecurityStatus.Suspected => "hud_suspected",
SecurityStatus.Hostile => "hud_hostile",
SecurityStatus.Eliminated => "hud_eliminated",
_ => "SecurityIconNone" _ => "SecurityIconNone"
}; };
} }

View File

@@ -87,7 +87,8 @@ public sealed class CriminalRecordsConsoleSystem : SharedCriminalRecordsConsoleS
{ {
// prevent malf client violating wanted/reason nullability // prevent malf client violating wanted/reason nullability
if (msg.Status == SecurityStatus.Wanted != (msg.Reason != null) && 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; return;
if (!CheckSelected(ent, msg.Actor, out var mob, out var key)) 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 // figure out which radio message to send depending on transition
var statusString = (oldStatus, msg.Status) switch var statusString = (oldStatus, msg.Status) switch
{ {
(_, SecurityStatus.Hostile) => "hostile",
(_, SecurityStatus.Eliminated) => "eliminated",
// person has been detained // person has been detained
(_, SecurityStatus.Detained) => "detained", (_, SecurityStatus.Detained) => "detained",
// person did something sus // person did something sus
@@ -154,6 +157,8 @@ public sealed class CriminalRecordsConsoleSystem : SharedCriminalRecordsConsoleS
(_, SecurityStatus.Discharged) => "released", (_, SecurityStatus.Discharged) => "released",
// going from any other state to wanted, AOS or prisonbreak / lazy secoff never set them to released and they reoffended // going from any other state to wanted, AOS or prisonbreak / lazy secoff never set them to released and they reoffended
(_, SecurityStatus.Wanted) => "wanted", (_, SecurityStatus.Wanted) => "wanted",
(SecurityStatus.Hostile, SecurityStatus.None) => "not-hostile",
(SecurityStatus.Eliminated, SecurityStatus.None) => "not-eliminated",
// person is no longer sus // person is no longer sus
(SecurityStatus.Suspected, SecurityStatus.None) => "not-suspected", (SecurityStatus.Suspected, SecurityStatus.None) => "not-suspected",
// going from wanted to none, must have been a mistake // going from wanted to none, must have been a mistake

View File

@@ -45,6 +45,8 @@ public abstract class SharedCriminalRecordsSystem : EntitySystem
SecurityStatus.Detained => "SecurityIconIncarcerated", SecurityStatus.Detained => "SecurityIconIncarcerated",
SecurityStatus.Discharged => "SecurityIconDischarged", SecurityStatus.Discharged => "SecurityIconDischarged",
SecurityStatus.Suspected => "SecurityIconSuspected", SecurityStatus.Suspected => "SecurityIconSuspected",
SecurityStatus.Hostile => "SecurityIconHostile",
SecurityStatus.Eliminated => "SecurityIconEliminated",
_ => record.StatusIcon _ => record.StatusIcon
}; };

View File

@@ -6,16 +6,20 @@
/// None - the default value /// None - the default value
/// Suspected - the person is suspected of doing something illegal /// Suspected - the person is suspected of doing something illegal
/// Wanted - the person is being wanted by security /// Wanted - the person is being wanted by security
/// Hostile - the person has been admitted as hostile
/// Detained - the person is detained by security /// Detained - the person is detained by security
/// Paroled - the person is on parole /// Paroled - the person is on parole
/// Discharged - the person has been released from prison /// Discharged - the person has been released from prison
/// Eliminated - the person has been eliminated and should not be healed
/// </summary> /// </summary>
public enum SecurityStatus : byte public enum SecurityStatus : byte
{ {
None, None,
Suspected, Suspected,
Wanted, Wanted,
Hostile,
Detained, Detained,
Paroled, Paroled,
Discharged Discharged,
Eliminated
} }

View File

@@ -92,6 +92,8 @@ wanted-list-status-label = [color=darkgray]status:[/color] {$status ->
[detained] [color=#b18644]detained[/color] [detained] [color=#b18644]detained[/color]
[paroled] [color=green]paroled[/color] [paroled] [color=green]paroled[/color]
[discharged] [color=green]discharged[/color] [discharged] [color=green]discharged[/color]
[hostile] [color=darkred]hostile[/color]
[eliminated] [color=gray]eliminated[/color]
*[other] none *[other] none
} }

View File

@@ -16,6 +16,8 @@ criminal-records-status-detained = Detained
criminal-records-status-suspected = Suspect criminal-records-status-suspected = Suspect
criminal-records-status-discharged = Discharged criminal-records-status-discharged = Discharged
criminal-records-status-paroled = Paroled 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-wanted-reason = Wanted Reason
criminal-records-console-suspected-reason = Suspected 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-released = {$name} ({$job}) has been released by {$officer}.
criminal-records-console-paroled = {$name} ({$job}) has been released on parole 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-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> criminal-records-console-unknown-officer = <unknown>
## Filters ## Filters

View File

@@ -33,6 +33,20 @@
icon: icon:
sprite: /Textures/Interface/Misc/security_icons.rsi sprite: /Textures/Interface/Misc/security_icons.rsi
state: hud_suspected 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 - type: securityIcon
parent: SecurityIcon parent: SecurityIcon

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -1,7 +1,7 @@
{ {
"version": 1, "version": 1,
"license": "CC-BY-SA-3.0", "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": { "size": {
"x": 8, "x": 8,
"y": 8 "y": 8
@@ -21,6 +21,12 @@
}, },
{ {
"name": "hud_wanted" "name": "hud_wanted"
},
{
"name": "hud_hostile"
},
{
"name": "hud_eliminated"
} }
] ]
} }