mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 18:22:39 +00:00
618 lines
18 KiB
Plaintext
618 lines
18 KiB
Plaintext
#define LOADOUT_BAN_STRING "Custom loadout"
|
|
|
|
/datum/gear_tweak/proc/get_contents(var/metadata)
|
|
return
|
|
|
|
/datum/gear_tweak/proc/get_metadata(var/user, var/metadata)
|
|
return
|
|
|
|
/datum/gear_tweak/proc/get_default()
|
|
return
|
|
|
|
/datum/gear_tweak/proc/tweak_gear_data(var/metadata, var/datum/gear_data)
|
|
return
|
|
|
|
/datum/gear_tweak/proc/tweak_item(var/obj/item/I, var/metadata)
|
|
return
|
|
|
|
/*
|
|
* Color adjustment
|
|
*/
|
|
|
|
/datum/gear_tweak/color
|
|
var/list/valid_colors
|
|
|
|
/datum/gear_tweak/color/New(var/list/valid_colors)
|
|
src.valid_colors = valid_colors
|
|
..()
|
|
|
|
/datum/gear_tweak/color/get_contents(var/metadata)
|
|
return "Color: <font color='[metadata]'>⚫</font>"
|
|
|
|
/datum/gear_tweak/color/get_default()
|
|
return valid_colors ? valid_colors[1] : COLOR_GRAY
|
|
|
|
/datum/gear_tweak/color/get_metadata(var/user, var/metadata, var/title = "Character Preference")
|
|
if(valid_colors)
|
|
return tgui_input_list(user, "Choose a color.", title, valid_colors, metadata)
|
|
return tgui_color_picker(user, "Choose a color.", title, metadata)
|
|
|
|
/datum/gear_tweak/color/tweak_item(var/obj/item/I, var/metadata)
|
|
if(valid_colors && !(metadata in valid_colors))
|
|
return
|
|
if(!metadata || (metadata == "#ffffff"))
|
|
return
|
|
if(istype(I))
|
|
I.add_atom_colour(metadata, FIXED_COLOUR_PRIORITY)
|
|
else
|
|
I.color = metadata
|
|
|
|
GLOBAL_DATUM_INIT(gear_tweak_free_matrix_recolor, /datum/gear_tweak/matrix_recolor, new)
|
|
|
|
/datum/gear_tweak/matrix_recolor
|
|
|
|
/datum/gear_tweak/matrix_recolor/get_contents(var/metadata)
|
|
if(islist(metadata) && length(metadata))
|
|
return "Matrix Recolor: [english_list(metadata)]"
|
|
return "Matrix Recolor"
|
|
|
|
/datum/gear_tweak/matrix_recolor/get_default()
|
|
return null
|
|
|
|
/datum/gear_tweak/matrix_recolor/get_metadata(user, metadata)
|
|
var/list/returned = color_matrix_picker(user, "Pick a color matrix for this item", "Matrix Recolor", "Ok", "Erase", "Cancel", TRUE, 10 MINUTES, islist(metadata) && metadata)
|
|
var/list/L = returned["matrix"]
|
|
if(returned["button"] == 3)
|
|
return metadata
|
|
if((returned["button"] == 2) || !islist(L) || !ISINRANGE(L.len, 9, 20))
|
|
return list()
|
|
var/identity = TRUE
|
|
var/static/list/ones = list(1, 5, 9)
|
|
for(var/i in 1 to L.len)
|
|
if(L[i] != ((i in ones)? 1 : 0))
|
|
identity = FALSE
|
|
break
|
|
return identity? list() : L
|
|
|
|
/datum/gear_tweak/matrix_recolor/tweak_item(obj/item/I, metadata)
|
|
. = ..()
|
|
if(!islist(metadata) || (length(metadata) < 12))
|
|
return
|
|
if(istype(I))
|
|
I.add_atom_colour(metadata, FIXED_COLOUR_PRIORITY)
|
|
else
|
|
I.color = metadata
|
|
|
|
/*
|
|
* Path adjustment
|
|
*/
|
|
|
|
/datum/gear_tweak/path
|
|
var/list/valid_paths
|
|
|
|
/datum/gear_tweak/path/New(var/list/valid_paths)
|
|
src.valid_paths = valid_paths
|
|
..()
|
|
|
|
/datum/gear_tweak/path/get_contents(var/metadata)
|
|
return "Type: [metadata]"
|
|
|
|
/datum/gear_tweak/path/get_default()
|
|
return valid_paths[1]
|
|
|
|
/datum/gear_tweak/path/get_metadata(var/user, var/metadata)
|
|
return tgui_input_list(user, "Choose a type.", "Character Preference", valid_paths, metadata)
|
|
|
|
/datum/gear_tweak/path/tweak_gear_data(var/metadata, var/datum/gear_data/gear_data)
|
|
if(!(metadata in valid_paths))
|
|
return
|
|
gear_data.path = valid_paths[metadata]
|
|
|
|
/*
|
|
* Content adjustment
|
|
*/
|
|
|
|
/datum/gear_tweak/contents
|
|
var/list/valid_contents
|
|
|
|
/datum/gear_tweak/contents/New()
|
|
valid_contents = args.Copy()
|
|
..()
|
|
|
|
/datum/gear_tweak/contents/get_contents(var/metadata)
|
|
return "Contents: [english_list(metadata, and_text = ", ")]"
|
|
|
|
/datum/gear_tweak/contents/get_default()
|
|
. = list()
|
|
for(var/i = 1 to valid_contents.len)
|
|
. += "Random"
|
|
|
|
/datum/gear_tweak/contents/get_metadata(var/user, var/list/metadata)
|
|
. = list()
|
|
for(var/i = metadata.len to valid_contents.len)
|
|
metadata += "Random"
|
|
for(var/i = 1 to valid_contents.len)
|
|
var/entry = tgui_input_list(user, "Choose an entry.", "Character Preference", valid_contents[i] + list("Random", "None"), metadata[i])
|
|
if(entry)
|
|
. += entry
|
|
else
|
|
return metadata
|
|
|
|
/datum/gear_tweak/contents/tweak_item(var/obj/item/I, var/list/metadata)
|
|
if(metadata.len != valid_contents.len)
|
|
return
|
|
for(var/i = 1 to valid_contents.len)
|
|
var/path
|
|
var/list/contents = valid_contents[i]
|
|
if(metadata[i] == "Random")
|
|
path = pick(contents)
|
|
path = contents[path]
|
|
else if(metadata[i] == "None")
|
|
continue
|
|
else
|
|
path = contents[metadata[i]]
|
|
if(!path)
|
|
var/mob/user = ismob(I.loc) ? I.loc : I.loc?.loc
|
|
if(istype(user))
|
|
to_chat(user, span_warning("The content \"[metadata[i]]\" from \"[I]\" does no longer exist and has not been loaded. Please replace it in the character setup."))
|
|
continue
|
|
new path(I)
|
|
|
|
/*
|
|
* Ragent adjustment
|
|
*/
|
|
|
|
/datum/gear_tweak/reagents
|
|
var/list/valid_reagents
|
|
|
|
/datum/gear_tweak/reagents/New(var/list/reagents)
|
|
valid_reagents = reagents.Copy()
|
|
..()
|
|
|
|
/datum/gear_tweak/reagents/get_contents(var/metadata)
|
|
return "Reagents: [metadata]"
|
|
|
|
/datum/gear_tweak/reagents/get_default()
|
|
return "Random"
|
|
|
|
/datum/gear_tweak/reagents/get_metadata(var/user, var/list/metadata)
|
|
. = tgui_input_list(user, "Choose an entry.", "Character Preference", valid_reagents + list("Random", "None"), metadata)
|
|
if(!.)
|
|
return metadata
|
|
|
|
/datum/gear_tweak/reagents/tweak_item(var/obj/item/I, var/list/metadata)
|
|
if(metadata == "None")
|
|
return
|
|
if(metadata == "Random")
|
|
. = valid_reagents[pick(valid_reagents)]
|
|
else
|
|
. = valid_reagents[metadata]
|
|
I.reagents.add_reagent(., I.reagents.get_free_space())
|
|
|
|
//Custom name and desciption code
|
|
//note to devs downstream: where 'gear_tweaks = list(gear_tweak_free_color_choice)' was used before for color selection
|
|
//in the loadout, now 'gear_tweaks += gear_tweak_free_color_choice' will need to be used, otherwise the item will not
|
|
// be able to be given a custom name or description
|
|
/*
|
|
Custom Name
|
|
*/
|
|
|
|
var/datum/gear_tweak/custom_name/gear_tweak_free_name = new()
|
|
|
|
/datum/gear_tweak/custom_name
|
|
var/list/valid_custom_names
|
|
|
|
/datum/gear_tweak/custom_name/New(var/list/valid_custom_names)
|
|
src.valid_custom_names = valid_custom_names
|
|
..()
|
|
|
|
/datum/gear_tweak/custom_name/get_contents(var/metadata)
|
|
return "Name: [metadata]"
|
|
|
|
/datum/gear_tweak/custom_name/get_default()
|
|
return ""
|
|
|
|
/datum/gear_tweak/custom_name/get_metadata(var/user, var/metadata)
|
|
if(jobban_isbanned(user, LOADOUT_BAN_STRING))
|
|
to_chat(user, span_warning("You are banned from using custom loadout names/descriptions."))
|
|
return
|
|
if(valid_custom_names)
|
|
return tgui_input_list(user, "Choose an item name.", "Character Preference", valid_custom_names, metadata)
|
|
var/san_input = sanitize(tgui_input_text(user, "Choose the item's name. Leave it blank to use the default name.", "Item Name", metadata, MAX_LNAME_LEN), MAX_LNAME_LEN, extra = 0)
|
|
return san_input ? san_input : get_default()
|
|
|
|
/datum/gear_tweak/custom_name/tweak_item(var/obj/item/I, var/metadata)
|
|
if(!metadata)
|
|
return I.name
|
|
I.name = metadata
|
|
|
|
/*
|
|
Custom Description
|
|
*/
|
|
var/datum/gear_tweak/custom_desc/gear_tweak_free_desc = new()
|
|
|
|
/datum/gear_tweak/custom_desc
|
|
var/list/valid_custom_desc
|
|
|
|
/datum/gear_tweak/custom_desc/New(var/list/valid_custom_desc)
|
|
src.valid_custom_desc = valid_custom_desc
|
|
..()
|
|
|
|
/datum/gear_tweak/custom_desc/get_contents(var/metadata)
|
|
return "Description: [metadata]"
|
|
|
|
/datum/gear_tweak/custom_desc/get_default()
|
|
return ""
|
|
|
|
/datum/gear_tweak/custom_desc/get_metadata(var/user, var/metadata)
|
|
if(jobban_isbanned(user, LOADOUT_BAN_STRING))
|
|
to_chat(user, span_warning("You are banned from using custom loadout names/descriptions."))
|
|
return
|
|
if(valid_custom_desc)
|
|
return tgui_input_list(user, "Choose an item description.", "Character Preference",valid_custom_desc, metadata)
|
|
var/san_input = sanitize(tgui_input_text(user, "Choose the item's description. Leave it blank to use the default description.", "Item Description", metadata, multiline = TRUE, prevent_enter = TRUE), extra = 0)
|
|
return san_input ? san_input : get_default()
|
|
|
|
/datum/gear_tweak/custom_desc/tweak_item(var/obj/item/I, var/metadata)
|
|
if(!metadata)
|
|
return I.desc
|
|
I.desc = metadata
|
|
|
|
//end of custom description
|
|
|
|
/datum/gear_tweak/tablet
|
|
var/list/ValidProcessors = list(/obj/item/computer_hardware/processor_unit/small)
|
|
var/list/ValidBatteries = list(/obj/item/computer_hardware/battery_module/nano, /obj/item/computer_hardware/battery_module/micro, /obj/item/computer_hardware/battery_module)
|
|
var/list/ValidHardDrives = list(/obj/item/computer_hardware/hard_drive/micro, /obj/item/computer_hardware/hard_drive/small, /obj/item/computer_hardware/hard_drive)
|
|
var/list/ValidNetworkCards = list(/obj/item/computer_hardware/network_card, /obj/item/computer_hardware/network_card/advanced)
|
|
var/list/ValidNanoPrinters = list(null, /obj/item/computer_hardware/nano_printer)
|
|
var/list/ValidCardSlots = list(null, /obj/item/computer_hardware/card_slot)
|
|
var/list/ValidTeslaLinks = list(null, /obj/item/computer_hardware/tesla_link)
|
|
|
|
/datum/gear_tweak/tablet/get_contents(var/list/metadata)
|
|
var/list/names = list()
|
|
var/obj/O = ValidProcessors[metadata[1]]
|
|
if(O)
|
|
names += initial(O.name)
|
|
O = ValidBatteries[metadata[2]]
|
|
if(O)
|
|
names += initial(O.name)
|
|
O = ValidHardDrives[metadata[3]]
|
|
if(O)
|
|
names += initial(O.name)
|
|
O = ValidNetworkCards[metadata[4]]
|
|
if(O)
|
|
names += initial(O.name)
|
|
O = ValidNanoPrinters[metadata[5]]
|
|
if(O)
|
|
names += initial(O.name)
|
|
O = ValidCardSlots[metadata[6]]
|
|
if(O)
|
|
names += initial(O.name)
|
|
O = ValidTeslaLinks[metadata[7]]
|
|
if(O)
|
|
names += initial(O.name)
|
|
return "[english_list(names, and_text = ", ")]"
|
|
|
|
/datum/gear_tweak/tablet/get_metadata(var/user, var/metadata)
|
|
. = list()
|
|
|
|
var/list/names = list()
|
|
var/counter = 1
|
|
for(var/i in ValidProcessors)
|
|
if(i)
|
|
var/obj/O = i
|
|
names[initial(O.name)] = counter++
|
|
else
|
|
names["None"] = counter++
|
|
|
|
var/entry = tgui_input_list(user, "Choose a processor:", "Tablet Gear", names)
|
|
. += names[entry]
|
|
|
|
names = list()
|
|
counter = 1
|
|
for(var/i in ValidBatteries)
|
|
if(i)
|
|
var/obj/O = i
|
|
names[initial(O.name)] = counter++
|
|
else
|
|
names["None"] = counter++
|
|
|
|
entry = tgui_input_list(user, "Choose a battery:", "Tablet Gear", names)
|
|
. += names[entry]
|
|
|
|
names = list()
|
|
counter = 1
|
|
for(var/i in ValidHardDrives)
|
|
if(i)
|
|
var/obj/O = i
|
|
names[initial(O.name)] = counter++
|
|
else
|
|
names["None"] = counter++
|
|
|
|
entry = tgui_input_list(user, "Choose a hard drive:", "Tablet Gear", names)
|
|
. += names[entry]
|
|
|
|
names = list()
|
|
counter = 1
|
|
for(var/i in ValidNetworkCards)
|
|
if(i)
|
|
var/obj/O = i
|
|
names[initial(O.name)] = counter++
|
|
else
|
|
names["None"] = counter++
|
|
|
|
entry = tgui_input_list(user, "Choose a network card:", "Tablet Gear", names)
|
|
. += names[entry]
|
|
|
|
names = list()
|
|
counter = 1
|
|
for(var/i in ValidNanoPrinters)
|
|
if(i)
|
|
var/obj/O = i
|
|
names[initial(O.name)] = counter++
|
|
else
|
|
names["None"] = counter++
|
|
|
|
entry = tgui_input_list(user, "Choose a nanoprinter:", "Tablet Gear", names)
|
|
. += names[entry]
|
|
|
|
names = list()
|
|
counter = 1
|
|
for(var/i in ValidCardSlots)
|
|
if(i)
|
|
var/obj/O = i
|
|
names[initial(O.name)] = counter++
|
|
else
|
|
names["None"] = counter++
|
|
|
|
entry = tgui_input_list(user, "Choose a card slot:", "Tablet Gear", names)
|
|
. += names[entry]
|
|
|
|
names = list()
|
|
counter = 1
|
|
for(var/i in ValidTeslaLinks)
|
|
if(i)
|
|
var/obj/O = i
|
|
names[initial(O.name)] = counter++
|
|
else
|
|
names["None"] = counter++
|
|
|
|
entry = tgui_input_list(user, "Choose a tesla link:", "Tablet Gear", names)
|
|
. += names[entry]
|
|
|
|
/datum/gear_tweak/tablet/get_default()
|
|
return list(1, 1, 1, 1, 1, 1, 1)
|
|
|
|
/datum/gear_tweak/tablet/tweak_item(var/obj/item/modular_computer/tablet/I, var/list/metadata)
|
|
if(ValidProcessors[metadata[1]])
|
|
var/t = ValidProcessors[metadata[1]]
|
|
I.processor_unit = new t(I)
|
|
if(ValidBatteries[metadata[2]])
|
|
var/t = ValidBatteries[metadata[2]]
|
|
I.battery_module = new t(I)
|
|
I.battery_module.charge_to_full()
|
|
if(ValidHardDrives[metadata[3]])
|
|
var/t = ValidHardDrives[metadata[3]]
|
|
I.hard_drive = new t(I)
|
|
if(ValidNetworkCards[metadata[4]])
|
|
var/t = ValidNetworkCards[metadata[4]]
|
|
I.network_card = new t(I)
|
|
if(ValidNanoPrinters[metadata[5]])
|
|
var/t = ValidNanoPrinters[metadata[5]]
|
|
I.nano_printer = new t(I)
|
|
if(ValidCardSlots[metadata[6]])
|
|
var/t = ValidCardSlots[metadata[6]]
|
|
I.card_slot = new t(I)
|
|
if(ValidTeslaLinks[metadata[7]])
|
|
var/t = ValidTeslaLinks[metadata[7]]
|
|
I.tesla_link = new t(I)
|
|
I.update_verbs()
|
|
|
|
/datum/gear_tweak/laptop
|
|
var/list/ValidProcessors = list(/obj/item/computer_hardware/processor_unit/small, /obj/item/computer_hardware/processor_unit)
|
|
var/list/ValidBatteries = list(/obj/item/computer_hardware/battery_module, /obj/item/computer_hardware/battery_module/advanced, /obj/item/computer_hardware/battery_module/super)
|
|
var/list/ValidHardDrives = list(/obj/item/computer_hardware/hard_drive, /obj/item/computer_hardware/hard_drive/advanced, /obj/item/computer_hardware/hard_drive/super)
|
|
var/list/ValidNetworkCards = list(/obj/item/computer_hardware/network_card, /obj/item/computer_hardware/network_card/advanced)
|
|
var/list/ValidNanoPrinters = list(null, /obj/item/computer_hardware/nano_printer)
|
|
var/list/ValidCardSlots = list(null, /obj/item/computer_hardware/card_slot)
|
|
var/list/ValidTeslaLinks = list(null, /obj/item/computer_hardware/tesla_link)
|
|
|
|
/datum/gear_tweak/laptop/get_contents(var/list/metadata)
|
|
var/list/names = list()
|
|
var/obj/O = ValidProcessors[metadata[1]]
|
|
if(O)
|
|
names += initial(O.name)
|
|
O = ValidBatteries[metadata[2]]
|
|
if(O)
|
|
names += initial(O.name)
|
|
O = ValidHardDrives[metadata[3]]
|
|
if(O)
|
|
names += initial(O.name)
|
|
O = ValidNetworkCards[metadata[4]]
|
|
if(O)
|
|
names += initial(O.name)
|
|
O = ValidNanoPrinters[metadata[5]]
|
|
if(O)
|
|
names += initial(O.name)
|
|
O = ValidCardSlots[metadata[6]]
|
|
if(O)
|
|
names += initial(O.name)
|
|
O = ValidTeslaLinks[metadata[7]]
|
|
if(O)
|
|
names += initial(O.name)
|
|
return "[english_list(names, and_text = ", ")]"
|
|
|
|
/datum/gear_tweak/laptop/get_metadata(var/user, var/metadata)
|
|
. = list()
|
|
|
|
var/list/names = list()
|
|
var/counter = 1
|
|
for(var/i in ValidProcessors)
|
|
if(i)
|
|
var/obj/O = i
|
|
names[initial(O.name)] = counter++
|
|
else
|
|
names["None"] = counter++
|
|
|
|
var/entry = tgui_input_list(user, "Choose a processor:", "Laptop Gear", names)
|
|
. += names[entry]
|
|
|
|
names = list()
|
|
counter = 1
|
|
for(var/i in ValidBatteries)
|
|
if(i)
|
|
var/obj/O = i
|
|
names[initial(O.name)] = counter++
|
|
else
|
|
names["None"] = counter++
|
|
|
|
entry = tgui_input_list(user, "Choose a battery:", "Laptop Gear", names)
|
|
. += names[entry]
|
|
|
|
names = list()
|
|
counter = 1
|
|
for(var/i in ValidHardDrives)
|
|
if(i)
|
|
var/obj/O = i
|
|
names[initial(O.name)] = counter++
|
|
else
|
|
names["None"] = counter++
|
|
|
|
entry = tgui_input_list(user, "Choose a hard drive:", "Laptop Gear", names)
|
|
. += names[entry]
|
|
|
|
names = list()
|
|
counter = 1
|
|
for(var/i in ValidNetworkCards)
|
|
if(i)
|
|
var/obj/O = i
|
|
names[initial(O.name)] = counter++
|
|
else
|
|
names["None"] = counter++
|
|
|
|
entry = tgui_input_list(user, "Choose a network card:", "Laptop Gear", names)
|
|
. += names[entry]
|
|
|
|
names = list()
|
|
counter = 1
|
|
for(var/i in ValidNanoPrinters)
|
|
if(i)
|
|
var/obj/O = i
|
|
names[initial(O.name)] = counter++
|
|
else
|
|
names["None"] = counter++
|
|
|
|
entry = tgui_input_list(user, "Choose a nanoprinter:", "Laptop Gear", names)
|
|
. += names[entry]
|
|
|
|
names = list()
|
|
counter = 1
|
|
for(var/i in ValidCardSlots)
|
|
if(i)
|
|
var/obj/O = i
|
|
names[initial(O.name)] = counter++
|
|
else
|
|
names["None"] = counter++
|
|
|
|
entry = tgui_input_list(user, "Choose a card slot:", "Laptop Gear", names)
|
|
. += names[entry]
|
|
|
|
names = list()
|
|
counter = 1
|
|
for(var/i in ValidTeslaLinks)
|
|
if(i)
|
|
var/obj/O = i
|
|
names[initial(O.name)] = counter++
|
|
else
|
|
names["None"] = counter++
|
|
|
|
entry = tgui_input_list(user, "Choose a tesla link:", "Laptop Gear", names)
|
|
. += names[entry]
|
|
|
|
/datum/gear_tweak/laptop/get_default()
|
|
return list(1, 1, 1, 1, 1, 1, 1)
|
|
|
|
/datum/gear_tweak/laptop/tweak_item(var/obj/item/modular_computer/laptop/preset/I, var/list/metadata)
|
|
if(ValidProcessors[metadata[1]])
|
|
var/t = ValidProcessors[metadata[1]]
|
|
I.processor_unit = new t(I)
|
|
if(ValidBatteries[metadata[2]])
|
|
var/t = ValidBatteries[metadata[2]]
|
|
I.battery_module = new t(I)
|
|
I.battery_module.charge_to_full()
|
|
if(ValidHardDrives[metadata[3]])
|
|
var/t = ValidHardDrives[metadata[3]]
|
|
I.hard_drive = new t(I)
|
|
if(ValidNetworkCards[metadata[4]])
|
|
var/t = ValidNetworkCards[metadata[4]]
|
|
I.network_card = new t(I)
|
|
if(ValidNanoPrinters[metadata[5]])
|
|
var/t = ValidNanoPrinters[metadata[5]]
|
|
I.nano_printer = new t(I)
|
|
if(ValidCardSlots[metadata[6]])
|
|
var/t = ValidCardSlots[metadata[6]]
|
|
I.card_slot = new t(I)
|
|
if(ValidTeslaLinks[metadata[7]])
|
|
var/t = ValidTeslaLinks[metadata[7]]
|
|
I.tesla_link = new t(I)
|
|
I.update_verbs()
|
|
|
|
/datum/gear_tweak/implant_location
|
|
var/static/list/bodypart_names_to_tokens = list(
|
|
"head" = BP_HEAD,
|
|
"upper body" = BP_TORSO,
|
|
"lower body" = BP_GROIN,
|
|
"left hand" = BP_L_HAND,
|
|
"left arm" = BP_L_ARM,
|
|
"right hand" = BP_R_HAND,
|
|
"right arm" = BP_R_ARM,
|
|
"left foot" = BP_L_FOOT,
|
|
"left leg" = BP_L_LEG,
|
|
"right foot" = BP_R_FOOT,
|
|
"right leg" = BP_R_LEG
|
|
)
|
|
var/static/list/bodypart_tokens_to_names = list(
|
|
BP_HEAD = "head",
|
|
BP_TORSO = "upper body",
|
|
BP_GROIN = "lower body",
|
|
BP_LEFT_HAND = "left hand",
|
|
BP_LEFT_ARM = "left arm",
|
|
BP_RIGHT_HAND = "right hand",
|
|
BP_RIGHT_ARM = "right arm",
|
|
BP_LEFT_FOOT = "left foot",
|
|
BP_LEFT_LEG = "left leg",
|
|
BP_RIGHT_FOOT = "right foot",
|
|
BP_RIGHT_LEG = "right leg"
|
|
)
|
|
|
|
/datum/gear_tweak/implant_location/get_default()
|
|
return bodypart_names_to_tokens[1]
|
|
|
|
/datum/gear_tweak/implant_location/tweak_item(var/obj/item/implant/I, var/metadata)
|
|
if(istype(I))
|
|
I.initialize_loc = bodypart_names_to_tokens[metadata] || BP_TORSO
|
|
|
|
/datum/gear_tweak/implant_location/get_contents(var/metadata)
|
|
return "Location: [metadata]"
|
|
|
|
/datum/gear_tweak/implant_location/get_metadata(var/user, var/metadata)
|
|
return (tgui_input_list(user, "Select a bodypart for the implant to be implanted inside.", "Implant Location", bodypart_names_to_tokens || bodypart_tokens_to_names[BP_TORSO]))
|
|
|
|
/datum/gear_tweak/collar_tag/get_contents(var/metadata)
|
|
return "Tag: [metadata]"
|
|
|
|
/datum/gear_tweak/collar_tag/get_default()
|
|
return ""
|
|
|
|
/datum/gear_tweak/collar_tag/get_metadata(var/user, var/metadata)
|
|
return sanitize( tgui_input_text(user, "Choose the tag text", "Character Preference", metadata, MAX_NAME_LEN), MAX_NAME_LEN )
|
|
|
|
/datum/gear_tweak/collar_tag/tweak_item(var/obj/item/clothing/accessory/collar/C, var/metadata)
|
|
if(metadata == "")
|
|
return ..()
|
|
else
|
|
C.initialize_tag(metadata)
|
|
|
|
#undef LOADOUT_BAN_STRING
|