mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-07-22 05:17:38 +01:00
Hidden Shell Records, take TWO!!! (#20713)
!!! Please merge AFTER #20723 for migrate version (this PR is set up to seamlessly be merged after that PR) !!! Adds a new option to character preferences determining whether a shell is a hidden shell or not. Right now this is a Yes/No toggle that solely makes records display as "Human" instead of "Shell Frame". The previous iteration of this was icky.  I hope this is better. My rationale for this is twofold: Right now, you can only play a hidden shell "correctly" if you're untagged. Firstly, this isn't explained anywhere, so people might miss this by playing a tagged shell that's playing human. Someone might do this because a tag can be a potent story tool, especially for specific brands or lines of shells. Imagine tag scanning a runaway you've found and getting presented with `HLTD-S07U24`, suddenly you get a huge amount of storytelling there that wouldn't be present without the tag. <sub>any similarities to persons living or dead is purely coincidental.</sub> Secondly, it also means you can't play a shell who doesn't try and hide it, but also has no tag, because that'll automatically show as human, which is problematic in many ways. Also, I moved the "species" field in records to the top with the rest of the public info, and took it out of employement records, because security and medical would definitely also get that info, logically speaking. In the future (with lore team approval) i would like to enable certain human citizenships for shells with this preference enabled (likely just Sol, but i mean if lore team wants we can get wacky with Dominia too), but that's out of scope for this PR.
This commit is contained in:
@@ -17,6 +17,8 @@
|
||||
S["ipc_tag_status"] >> pref.machine_tag_status
|
||||
S["ipc_serial_number"] >> pref.machine_serial_number
|
||||
S["ipc_ownership_status"] >> pref.machine_ownership_status
|
||||
if(istype(GLOB.all_species[pref.species], /datum/species/machine/shell))
|
||||
S["hidden_shell_status"] >> pref.hidden_shell_status
|
||||
|
||||
/datum/category_item/player_setup_item/general/basic/save_character(var/savefile/S)
|
||||
S["real_name"] << pref.real_name
|
||||
@@ -33,6 +35,8 @@
|
||||
S["ipc_tag_status"] << pref.machine_tag_status
|
||||
S["ipc_serial_number"] << pref.machine_serial_number
|
||||
S["ipc_ownership_status"] << pref.machine_ownership_status
|
||||
if(istype(GLOB.all_species[pref.species], /datum/species/machine/shell))
|
||||
S["hidden_shell_status"] << pref.hidden_shell_status
|
||||
|
||||
// if table_name and pref.var_name is different, then do it like
|
||||
// "table_name" = "pref.var_name", as below
|
||||
@@ -57,7 +61,8 @@
|
||||
"vars" = list(
|
||||
"tag_status" = "machine_tag_status",
|
||||
"serial_number" = "machine_serial_number",
|
||||
"ownership_status" = "machine_ownership_status"
|
||||
"ownership_status" = "machine_ownership_status",
|
||||
"hidden_status" = "hidden_shell_status"
|
||||
),
|
||||
"args" = list("char_id")
|
||||
)
|
||||
@@ -91,6 +96,7 @@
|
||||
"tag_status",
|
||||
"serial_number",
|
||||
"ownership_status",
|
||||
"hidden_status",
|
||||
"char_id" = 1 // = 1 signifies argument
|
||||
)
|
||||
)
|
||||
@@ -108,6 +114,7 @@
|
||||
"tag_status" = pref.machine_tag_status,
|
||||
"serial_number" = pref.machine_serial_number,
|
||||
"ownership_status" = pref.machine_ownership_status,
|
||||
"hidden_status" = pref.hidden_shell_status,
|
||||
"id" = pref.current_character,
|
||||
"char_id" = pref.current_character,
|
||||
"floating_chat_color" = pref.floating_chat_color,
|
||||
@@ -197,6 +204,8 @@
|
||||
else
|
||||
dat += "<b>Serial Number:</b> [pref.machine_serial_number] (<a href='byond://?src=[REF(src)];namehelp=1'>?</a>)<br>"
|
||||
dat += "<b>Ownership Status:</b> [pref.machine_ownership_status] (<a href='byond://?src=[REF(src)];namehelp=1'>?</a>)<br>"
|
||||
if(istype(S, /datum/species/machine/shell))
|
||||
dat += "<b>Is Hidden Shell:</b> <a href='byond://?src=[REF(src)];hidden_status=1'>[pref.hidden_shell_status ? "Hidden" : "Not Hidden"]</a><br>"
|
||||
if(GLOB.config.allow_Metadata)
|
||||
dat += "<b>OOC Notes:</b> <a href='byond://?src=[REF(src)];metadata=1'> Edit </a>" \
|
||||
+ "<a href='byond://?src=[REF(src)];clear_metadata=1'>Clear</a>" + "<br>"
|
||||
@@ -357,6 +366,15 @@
|
||||
pref.machine_ownership_status = new_ownership_status
|
||||
return TOPIC_REFRESH
|
||||
|
||||
else if(href_list["hidden_status"])
|
||||
var/choice = alert(user, "Do you want to be a hidden Shell? This will label your Shell as a Human in their records.\n\n WARNING: This would involve forging of records or some other form of fraud, and is highly illegal in the Republic of Biesel", "Hidden Shell Status", "Yes", "No")
|
||||
if(CanUseTopic(user))
|
||||
if(choice == "Yes")
|
||||
pref.hidden_shell_status = TRUE
|
||||
else
|
||||
pref.hidden_shell_status = FALSE
|
||||
return TOPIC_REFRESH
|
||||
|
||||
else if (href_list["clear_metadata"])
|
||||
if (CanUseTopic(user))
|
||||
var/user_choice = alert(
|
||||
|
||||
Reference in New Issue
Block a user