Makes cham items slightly easier to parse through (#94901)

Co-authored-by: SmArtKar <44720187+SmArtKar@users.noreply.github.com>
This commit is contained in:
MrMelbert
2026-01-26 11:11:57 +00:00
committed by GitHub
co-authored by SmArtKar
parent 899a1c8e8f
commit 4839b10d8d
5 changed files with 119 additions and 69 deletions
+14 -40
View File
@@ -1186,6 +1186,10 @@
/// If this is set, will manually override the trim shown for SecHUDs. Intended for admins to VV edit and chameleon ID cards.
var/sechud_icon_state_override = null
/// A name (eg "Captain") that is "inherent" to this ID card
/// If the assigned name matches the inherent name it does not apply the label
var/inherent_assigned_name
/obj/item/card/id/advanced/Initialize(mapload)
. = ..()
RegisterSignal(src, COMSIG_ITEM_EQUIPPED, PROC_REF(update_intern_status))
@@ -1288,6 +1292,13 @@
is_intern = FALSE
update_label()
/obj/item/card/id/advanced/update_label()
if(inherent_assigned_name && registered_name == inherent_assigned_name)
name = "[initial(name)][(!assignment || assignment == inherent_assigned_name) ? "" : " ([assignment])"]"
return
return ..()
/obj/item/card/id/advanced/update_overlays()
. = ..()
@@ -1390,13 +1401,7 @@
registered_name = "Captain"
trim = /datum/id_trim/job/captain
registered_age = null
/obj/item/card/id/advanced/gold/captains_spare/update_label() //so it doesn't change to Captain's ID card (Captain) on a sneeze
if(registered_name == "Captain")
name = "[initial(name)][(!assignment || assignment == "Captain") ? "" : " ([assignment])"]"
update_appearance(UPDATE_ICON)
else
..()
inherent_assigned_name = "Captain"
/obj/item/card/id/advanced/centcom
name = "\improper CentCom ID"
@@ -1491,14 +1496,7 @@
desc = "The spare ID of the Dark Lord himself."
registered_name = "Captain"
registered_age = null
/obj/item/card/id/advanced/black/syndicate_command/captain_id/syndie_spare/update_label()
if(registered_name == "Captain")
name = "[initial(name)][(!assignment || assignment == "Captain") ? "" : " ([assignment])"]"
update_appearance(UPDATE_ICON)
return
return ..()
inherent_assigned_name = "Captain"
/obj/item/card/id/advanced/debug
name = "\improper Debug ID"
@@ -1952,22 +1950,6 @@
else
input_name = "[pick(GLOB.first_names)] [pick(GLOB.last_names)]"
var/change_trim = tgui_alert(user, "Adjust the appearance of your card's trim?", "Modify Trim", list("Yes", "No"))
if(!after_input_check(user))
return TRUE
var/selected_trim_path
var/static/list/trim_list
if(change_trim == "Yes")
trim_list = list()
for(var/trim_path in typesof(/datum/id_trim))
var/datum/id_trim/trim = SSid_access.trim_singletons_by_path[trim_path]
if(trim && trim.trim_state && trim.assignment)
var/fake_trim_name = "[trim.assignment] ([trim.trim_state])"
trim_list[fake_trim_name] = trim_path
selected_trim_path = tgui_input_list(user, "Select trim to apply to your card.\nNote: This will not grant any trim accesses.", "Forge Trim", sort_list(trim_list, GLOBAL_PROC_REF(cmp_typepaths_asc)))
if(!after_input_check(user))
return TRUE
var/target_occupation = tgui_input_text(user, "What occupation would you like to put on this card?\nNote: This will not grant any access levels.", "Agent card job assignment", assignment ? assignment : "Assistant", max_length = MAX_NAME_LEN)
if(!after_input_check(user))
return TRUE
@@ -1984,8 +1966,6 @@
return
registered_name = input_name
if(selected_trim_path)
SSid_access.apply_trim_override(src, trim_list[selected_trim_path])
if(target_occupation)
assignment = sanitize(target_occupation)
if(new_age)
@@ -1999,16 +1979,10 @@
to_chat(user, span_notice("You successfully forge the ID card."))
user.log_message("forged \the [initial(name)] with name \"[registered_name]\", occupation \"[assignment]\" and trim \"[trim?.assignment]\".", LOG_GAME)
if(!ishuman(user))
if(!ishuman(user) || registered_account)
return
var/mob/living/carbon/human/owner = user
if (!selected_trim_path) // Ensure that even without a trim update, we update user's sechud
owner.update_ID_card()
if (registered_account)
return
var/datum/bank_account/account = SSeconomy.bank_accounts_by_id["[owner.account_id]"]
if(account)
set_account(account)