mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-09 16:05:07 +00:00
## About The Pull Request This implements a new, minor, but flavorful system to IDs -- Honorifics. Does going by your full name not suit you? Do you demand respect for the position on Space Station 13 that you've earned and want to be addressed by your title? Do you take yourself WAY too seriously? This is for you. Toggled by ctrl-clicking your ID, honorifics append a title to your name depending on your position. Certain titles (Captain, Officer, Doctor, etc.) will only append to the start (replacing or including the first/last name), while others (PhD., Esq.) can only be appended at the end.  Each job TRIM has a set honorific and positions it can be assigned to. A doctor can be "Doctor Peterson" or "Doctor Peterson Bungle" or "Doctor Bungle". A Lawyer can only choose to be "Peterson Bungle, Esq.". This will only occur when the speaker's voice is the same identity as the one written on the ID's registered name. This should not interfere with Unknown voice obfuscation, stolen ID shenanigans, or anything gameplay-oriented. Hopefully. This feature is also mononym friendly!  This also makes `first_name()` and `last_name()` global procs, and adds one to check if a passed string has spaces/dashes/whitespace/whatever. All of this is compatible with ID name changes, but the voice name must align with the card name to display the honorific. If you are "Peter Stinkypants" with your honorific set to display "Doctor Stinkypants", and your ID's registered name is changed to "Peter Stinker", you show up as "Peter Stinkypants (as Peter Stinker)" with no honorific provided. If you become "Peter Stinker" and have a "Peter Stinker" ID, you will show up as "Doctor Stinker" once again. That all make sense? Great. <details> <summary>So about the ID name stuff...</summary> <br> So, when you activate an honorific on your ID, it DOES change the actual object's name. Not the registered name, but the ID's name will go from "Peter Dawson's ID card" to "Captain Dawson's ID card" when an honorific is applied. This, as far as I've tested, does not mess with anything important, but I can totally see it doing so in a way that makes ctrl-Fing through logs harder than it needs to be. This could probably be changed without too much effort so if the issue does arise I can fix it. If not I am totally fine with reverting this PR until I can make it work (if I can at all). <br> Admittedly this doesn't have much testing with holopads/radios, but I'm confident the message composure is handled well enough to only display the right names under the right circumstances. If this fucks up logging or naming in any way tell me ASAP because I have a sinking feeling it will in a way more catastrophic than I could ever predict. This PR has been tested thoroughly but I have my limits. </details>
81 lines
2.2 KiB
Plaintext
81 lines
2.2 KiB
Plaintext
/**
|
|
* This file contains all the trims associated with outfits.
|
|
*/
|
|
|
|
/// Trim for the assassin outfit.
|
|
/datum/id_trim/reaper_assassin
|
|
assignment = "Reaper"
|
|
trim_state = "trim_ert_deathcommando"
|
|
department_color = COLOR_DARK
|
|
subdepartment_color = COLOR_RED // I AM THE VIOLENCE
|
|
|
|
/datum/id_trim/highlander/New()
|
|
. = ..()
|
|
access = SSid_access.get_region_access_list(list(REGION_ALL_STATION))
|
|
|
|
/// Trim for the mobster outfit.
|
|
/datum/id_trim/mobster
|
|
assignment = "Mobster"
|
|
trim_state = "trim_assistant"
|
|
|
|
/// Trim for VR outfits.
|
|
/datum/id_trim/vr
|
|
assignment = "VR Participant"
|
|
|
|
/datum/id_trim/vr/New()
|
|
. = ..()
|
|
access |= SSid_access.get_region_access_list(list(REGION_ALL_STATION))
|
|
|
|
/// Trim for VR outfits.
|
|
/datum/id_trim/vr/operative
|
|
assignment = "Syndicate VR Operative"
|
|
department_color = COLOR_RED
|
|
subdepartment_color = COLOR_RED
|
|
|
|
/datum/id_trim/vr/operative/New()
|
|
. = ..()
|
|
access |= list(ACCESS_SYNDICATE, ACCESS_MAINT_TUNNELS)
|
|
|
|
/// Trim for the Tunnel Clown! outfit. Has all access.
|
|
/datum/id_trim/tunnel_clown
|
|
assignment = "Tunnel Clown!"
|
|
trim_state = "trim_clown"
|
|
department_color = COLOR_MAGENTA
|
|
subdepartment_color = COLOR_MAGENTA
|
|
|
|
/datum/id_trim/tunnel_clown/New()
|
|
. = ..()
|
|
access |= SSid_access.get_region_access_list(list(REGION_ALL_STATION))
|
|
|
|
/// Trim for Bounty Hunters NOT hired by centcom. (?)
|
|
/datum/id_trim/bounty_hunter
|
|
assignment = "Bounty Hunter"
|
|
trim_state = "trim_deathcommando"
|
|
department_color = COLOR_PRISONER_ORANGE
|
|
subdepartment_color = COLOR_PRISONER_BLACK
|
|
|
|
access = list(ACCESS_HUNTER)
|
|
|
|
/// Trim for player controlled avatars in the Virtual Domain.
|
|
/datum/id_trim/bit_avatar
|
|
assignment = "Bit Avatar"
|
|
trim_state = "trim_bitavatar"
|
|
department_color = COLOR_BLACK
|
|
subdepartment_color = COLOR_GREEN
|
|
sechud_icon_state = SECHUD_BITAVATAR
|
|
|
|
/// Trim for cyber police in the Virtual Domain.
|
|
/datum/id_trim/cyber_police
|
|
assignment = ROLE_CYBER_POLICE
|
|
trim_state = "trim_deathcommando"
|
|
department_color = COLOR_BLACK
|
|
subdepartment_color = COLOR_GREEN
|
|
threat_modifier = -1 // Cops recognise cops
|
|
honorifics = list("CISO")
|
|
honorific_positions = HONORIFIC_POSITION_FIRST | HONORIFIC_POSITION_LAST | HONORIFIC_POSITION_NONE
|
|
|
|
/datum/id_trim/cyber_police/New()
|
|
. = ..()
|
|
|
|
access |= SSid_access.get_region_access_list(list(REGION_ALL_GLOBAL))
|