Files
CHOMPStation2/modular_chomp/code/modules/admin/functions/modify_traits.dm
CHOMPStation2StaffMirrorBot 965f8f4a61 [MIRROR] remove old inputs (#10038)
Co-authored-by: Kashargul <144968721+Kashargul@users.noreply.github.com>
2025-02-02 02:22:56 +01:00

44 lines
1.4 KiB
Plaintext

/// Allow admin to add or remove traits of datum
/datum/admins/proc/modify_traits(datum/D)
if(!D)
return
var/add_or_remove = tgui_input_list(usr, "Remove/Add?", "Trait Remove/Add", list("Add","Remove"))
if(!add_or_remove)
return
var/list/availible_traits = list()
switch(add_or_remove)
if("Add")
for(var/key in GLOB.traits_by_type)
if(istype(D,key))
availible_traits += GLOB.traits_by_type[key]
if("Remove")
if(!GLOB.trait_name_map)
GLOB.trait_name_map = generate_trait_name_map()
for(var/trait in D.status_traits)
var/name = GLOB.trait_name_map[trait] || trait
availible_traits[name] = trait
var/chosen_trait = tgui_input_list(usr, "Select trait to modify", "Trait", availible_traits)
if(!chosen_trait)
return
chosen_trait = availible_traits[chosen_trait]
var/source = "adminabuse"
switch(add_or_remove)
if("Add") //Not doing source choosing here intentionally to make this bit faster to use, you can always vv it.
ADD_TRAIT(D,chosen_trait,source)
if("Remove")
var/specific = tgui_input_list(usr, "All or specific source ?", "Trait Remove/Add", list("All","Specific"))
if(!specific)
return
switch(specific)
if("All")
source = null
if("Specific")
source = tgui_input_list(usr, "Source to be removed","Trait Remove/Add", D.status_traits[chosen_trait])
if(!source)
return
REMOVE_TRAIT(D,chosen_trait,source)