# Description
This system was just blindly assuming a session couldn't be null without
proving it wasn't, and two different functions both incorrectly made
this assumption. I have no idea how the hell they managed to sneak it
past the compiler's null reference test.
(cherry picked from commit 53aaba2f17fb382a669af70ee0e3b05b36b13cc3)
## Mirror of PR #25192: [Criminal record hud
icons](https://github.com/space-wizards/space-station-14/pull/25192)
from <img src="https://avatars.githubusercontent.com/u/10567778?v=4"
alt="space-wizards" width="22"/>
[space-wizards](https://github.com/space-wizards)/[space-station-14](https://github.com/space-wizards/space-station-14)
###### `60b9d89e4dbdd8aaad4992a105628297d9480617`
PR opened by <img
src="https://avatars.githubusercontent.com/u/137322659?v=4"
width="16"/><a href="https://github.com/Arendian"> Arendian</a> at
2024-02-13 19:39:59 UTC
PR merged by <img
src="https://avatars.githubusercontent.com/u/19864447?v=4"
width="16"/><a href="https://github.com/web-flow"> web-flow</a> at
2024-03-11 03:12:52 UTC
---
PR changed 19 files with 230 additions and 40 deletions.
The PR had the following labels:
- Changes: UI
- Changes: Sprites
- Status: Needs Review
---
<details open="true"><summary><h1>Original Body</h1></summary>
> <!-- Please read these guidelines before opening your PR:
https://docs.spacestation14.io/en/getting-started/pr-guideline -->
> <!-- The text between the arrows are comments - they will not be
visible on your PR. -->
>
> ## About the PR
> <!-- What did you change in this PR? -->
> Added three more statuses to the criminal record console: Paroled,
Suspect, Discharged.
> Entities now have a hud icon based on the criminal record linked to
the name they are currently showing.
> If "Urist McHands" is wanted, anyone that currently shows as being
"Urist McHands", even when their real name is not Urist McHands, will
show the relevant hud icon to entities wearing a security hud. If Urist
McHands is disguised as someone without a criminal record or has no
name(middle-aged captain man etc.), they won't show an icon.
>
> ## Why / Balance
> <!-- Why was it changed? Link any discussions or issues here. Please
discuss how this would affect game balance. -->
> Icons showing on sechuds will make sechuds more usefull, it will
(hopefully) improve security coordination by allowing officers to more
easily see who they need to keep track of.
> It also gives warden something extra to do.
>
> ## Technical details
> <!-- If this is a code change, summarize at high level how your new
code works. This makes it easier to review. -->
>
> When a criminal record is changed, every entity with an
IdentityComponent will have their name checked to see if it equals the
name of the changed criminal record, if it's equal the person will get
the CriminalRecordComponent which holds the icon that needs to be shown
on the entity.
> If a criminal record is removed, the CriminalRecordComponent will be
removed from all entities that currently have the visible name
associated with the criminal record.
>
> If an entity changes identity, all criminal records will be searched
to see if the name has a criminal record attached to it. If the name has
a record attached to it, the entity will get the CriminalRecordComponent
and the corresponding criminal record hud icon until they change their
identity again or the criminal record gets removed.
>
> ## Media
> <!--
> PRs which make ingame changes (adding clothing, items, new features,
etc) are required to have media attached that showcase the changes.
> Small fixes/refactors are exempt.
> Any media may be used in SS14 progress reports, with clear credit
given.
>
> If you're unsure whether your PR will require media, ask a maintainer.
>
> Check the box below to confirm that you have in fact seen this (put an
X in the brackets, like [X]):
> -->
>
>
https://github.com/space-wizards/space-station-14/assets/137322659/3c9422e6-897f-456f-b54b-8fdc053cb4e1
>
>
> - [X] I have added screenshots/videos to this PR showcasing its
changes ingame, **or** this PR does not require an ingame showcase
>
> **Changelog**
> <!--
> Make players aware of new features and changes that could affect how
they play the game by adding a Changelog entry. Please read the
Changelog guidelines located at:
https://docs.spacestation14.io/en/getting-started/pr-guideline#changelog
> -->
>
> 🆑 Dygon
> - add: The following criminal record statuses have been added:
Suspect, Discharged, Paroled.
> - add: Security huds now show an icon on entities that have a visible
name linked to a criminal record.
>
</details>
Co-authored-by: Arendian <137322659+Arendian@users.noreply.github.com>
* Use new Subs.CVar helper
Removes manual config OnValueChanged calls, removes need to remember to manually unsubscribe.
This both reduces boilerplate and fixes many issues where subscriptions weren't removed on entity system shutdown.
* Fix a bunch of warnings
* More warning fixes
* Use new DateTime serializer to get rid of ISerializationHooks in changelog code.
* Get rid of some more ISerializationHooks for enums
* And a little more
* Apply suggestions from code review
Co-authored-by: 0x6273 <0x40@keemail.me>
---------
Co-authored-by: 0x6273 <0x40@keemail.me>
(cherry picked from commit 68ce53ae17985876d6d112b764b2144964a9f42e)
* Stuff
* Fix RoundStatus Action
* Rename stuff
* Also needs to run on the main thread
* minor stuff
* Move to not be an EntitySystem
* Part 1 of making this less shit
* Make some more stuff run on main thread
* Actor check, logging and remove token from log.
* Better log
* Change ActionKick to use Guid instead of username
* Fix build
* Bandaid fix for test fails
(cherry picked from commit dfc8ea6aee85776dd1676df601ff8c22ea205a08)
* starter API
* network ID cards
* Port more stuff from old identity
* Re-implement identity representation + name updating
* move
* proper name returning for `IdentityName`
* move everything important to server, give in to temptation
* shared / server / client split sadly. move ensure to shared and spawn to server
* identity update queueing + identityblocker
* fixes
* and just like that it's usable for admins
* huge identity pass
* pass dos
* jesus christ
* figs :D
* fuck u
* fix bad merge.
Co-authored-by: Moony <moonheart08@users.noreply.github.com>
* Adds seven new smites, moves the explosion smite to the verb category.
* adds even more smites.
* Even more smites, some messages for specific smites.
* Adds even more smites.
* Removes some junk, adds a smite that angers the pointing arrows.
* get rid of dumb component.
* Remove mistake from verb menu presentation.
* How did that happen?
* whoops
* c
* e
* fuck
* Loading...
* removes the BoM go away
* adds the funny kill sign. Fixes ghost smite.
* Move systems around.
* Adjust organ vomit.
* Adds a smite that turns people into an instrument, and one that removes their gravity.
* oops
* typo
Co-authored-by: Veritius <veritiusgaming@gmail.com>