Участник:JJRcop/Identity
Who knows who
At roundstart, and for latejoins a little bit after that, which is configurable, you will automatically know the coworkers in your department's names. Heads of Staff count as a department in this instance, so all heads know each other. An exception is made for the clown and the captain, everyone knows their names.
Team antagonists will know each other initially, so in the case of conversion antags, only the initial of those antags will know each other. Anyone else who is converted will not automatically know their peers.
Silicons know everyone... kinda.. more on that later.
(Ghosts always see real names, of course)
The gears and cogs mostly ish
At the moment, only human mobs participate in the identity system, but it can be expanded to other mobs in the future. Mobs that participate in the identity system have a voiceprint and a faceprint. One is used when speaking, and the other is associated with your mob's appearance. In human's case, it's literally their unique identifier.
Each mind datum has a list of remembered voiceprints and a list of remembered faceprints. When someone talks, their voiceprint is transmitted through saycode, so their voice is not tied to their mob.
There are a few identity classes, how well you remember them, but they can fit into two groups: interesting, and not interesting. Interesting identities are identities which you either examined or manually set the name of (also if they are pre-known). You can think of these identities as ones that your character has committed to remembering, and made an effort to not forget. Not interesting identities are a part of the crowd, you don't remember their face, you can't recall their voice. You only remember these identities for 50 seconds after the last time they speak or did an action in front of you, then you forget them, unless you rename them manually or examine them within those 50 seconds.
Voiceprints
When someone speaks and you don't know their name, they will show up as Unknown, unless they are visible. If they are visible to you, the system will look at their uniform, which can contain a var, identity_name. If it does, that person will simply show up as the identity name. So for example, the engineer's jumpsuit's identity_name is "Engineer", so they will show up as "Engineer", the medical doctor's jumpsuit's identity_name is "Doctor", jester's suit is "Jester", etc.
If they are wearing an exosuit that obscures the jumpsuit, the system will attempt to grab the identity_name off of that instead. Failing that, they will just show up as Unknown.
Faceprints
Faceprints are used when examining someone. When you examine someone, and you don't already know their name, the system will first check if they are wearing an ID. If they are, it will attempt to gather the name written on the ID. Failing that, the system will gather basic information on their appearance:
- If their hair is not obscured
- Hair color
- Hair style
- Their identity_name from their uniform/exosuit
- Their hat if available
- Their mask failing that
Then the system concatenates them all into one string, removes the vowels, and there's your name.
If you've heard someone speak in the past 50 seconds and examine them, their faceprint will automatically be linked with their voiceprint, otherwise you will just remember their faceprint alone.
The identity manager
This is a new tgui interface that allows you to more finely manipulate your memory of faceprints and voiceprints. You can manually rename both faceprints and voiceprints using this menu, forget them completely, and manage which ones are linked together. It is sorted first by type: Manually set/edited names (and pre-known ones) are bold and are at the top, names you acquired via examining someone appear as normal, and are in the middle, and finally, names that you only acquire via hearing someone without renaming or examining them, are in italics, and are at the bottom of the list. The names are also sorted among their own type by most recently spoken sorted in descending order. If you click directly on a name it will become selected and will automatically be placed at the very top of the results for as long as it stays selected.
Silicons hold all the records
Silicons ignore their mind's voiceprint and faceprint memory and get their identity info directly from the crew records, this means if you edit the crew records, you edit what they see for names. This is all based off your picture in the crew records and your "voice sample", which is a new field added with the identity system. You can change the voice sample by inserting a cassette tape into a security records computer, or just erase it so that the AI won't be able to know what your name is anymore. If you update either the front or side photo, it will try to use the faceprint of the person in the center-most place in the photo. If neither the front or side photos have any faceprint information then the record loses its faceprint and the AI will have a bit more difficulty tracking you, at least when trying to use facial recognition.
The AI isn't out of luck just yet though, when anyone speaks, no matter if they are in the crew records or not, you can instantly jump to the location that they spoke from, and if a mob is currently occupying those coordinates, you will automatically start tracking them. (Hopefully it's the speaker)
I'm really someone else!
There are various ways to borrow someone's voiceprint for a bit. You can take a copy of their UE which also contains their voiceprint, the voice changer was changed from the chameleon mask to the chameleon headset and lets you record people then use their voice as your own. This all gets extremely easy for changelings. You can also take someone's face by injecting yourself with their UI, again very easy for changelings.