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;
SecurityStatus.Detained => "hud_incarcerated",
SecurityStatus.Discharged => "hud_discharged",
SecurityStatus.Suspected => "hud_suspected",
+ SecurityStatus.Hostile => "hud_hostile",
+ SecurityStatus.Eliminated => "hud_eliminated",
_ => "SecurityIconNone"
};
}
{
// 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))
// 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
(_, 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
SecurityStatus.Detained => "SecurityIconIncarcerated",
SecurityStatus.Discharged => "SecurityIconDischarged",
SecurityStatus.Suspected => "SecurityIconSuspected",
+ SecurityStatus.Hostile => "SecurityIconHostile",
+ SecurityStatus.Eliminated => "SecurityIconEliminated",
_ => record.StatusIcon
};
/// 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
}
[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
}
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
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
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
{
"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"
}
]
}