mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 02:34:00 +00:00
Also allows gear tweaks to take up a whole row on their own, due to potential length. Also fixes a couple of incorrect && logical operations. Should have been ||.
114 lines
2.9 KiB
Plaintext
114 lines
2.9 KiB
Plaintext
/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
|
|
*/
|
|
|
|
var/datum/gear_tweak/color/gear_tweak_free_color_choice = new()
|
|
|
|
/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)
|
|
if(valid_colors)
|
|
return input(user, "Choose an item color.", "Character Preference", metadata) as null|anything in valid_colors
|
|
return input(user, "Choose an item color.", "Global Preference", metadata) as color|null
|
|
|
|
/datum/gear_tweak/color/tweak_item(var/obj/item/I, var/metadata)
|
|
if(valid_colors && !(metadata in valid_colors))
|
|
return
|
|
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 input(user, "Choose a type.", "Character Preference", metadata) as null|anything in valid_paths
|
|
|
|
/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 = input(user, "Choose an entry.", "Character Preference", metadata[i]) as null|anything in (valid_contents[i] + list("Random", "None"))
|
|
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]]
|
|
new path(I)
|