Merge branch 'release' of https://github.com/VOREStation/VOREStation into vore-update

This commit is contained in:
izac112
2024-04-02 17:26:31 +02:00
195 changed files with 5125 additions and 792 deletions
@@ -444,7 +444,7 @@ var/global/list/valid_bloodtypes = list("A+", "A-", "B+", "B-", "AB+", "AB-", "O
for(var/BP in mark_datum.body_parts)
var/obj/item/organ/external/O = character.organs_by_name[BP]
if(O)
if(O && islist(O.markings) && islist(pref.body_markings[M]) && islist(pref.body_markings[M][BP]))
O.markings[M] = list("color" = pref.body_markings[M][BP]["color"], "datum" = mark_datum, "priority" = priority, "on" = pref.body_markings[M][BP]["on"])
character.markings_len = priority
@@ -62,8 +62,8 @@
/datum/category_item/player_setup_item/player_global/ui/content(var/mob/user)
. = "<b>UI Style:</b> <a href='?src=\ref[src];select_style=1'><b>[pref.UI_style]</b></a><br>"
. += "<b>Custom UI</b> (recommended for White UI):<br>"
. += "-Color: <a href='?src=\ref[src];select_color=1'><b>[pref.UI_style_color]</b></a>[color_square(hex = pref.UI_style_color)]<a href='?src=\ref[src];reset=ui'>reset</a><br>"
. += "-Alpha(transparency): <a href='?src=\ref[src];select_alpha=1'><b>[pref.UI_style_alpha]</b></a><a href='?src=\ref[src];reset=alpha'>reset</a><br>"
. += "-Color: <a href='?src=\ref[src];select_color=1'><b>[pref.UI_style_color]</b></a> [color_square(hex = pref.UI_style_color)] <a href='?src=\ref[src];reset=ui'>reset</a><br>"
. += "-Alpha(transparency): <a href='?src=\ref[src];select_alpha=1'><b>[pref.UI_style_alpha]</b></a> <a href='?src=\ref[src];reset=alpha'>reset</a><br>"
. += "<b>Tooltip Style:</b> <a href='?src=\ref[src];select_tooltip_style=1'><b>[pref.tooltipstyle]</b></a><br>"
. += "<b>Client FPS:</b> <a href='?src=\ref[src];select_client_fps=1'><b>[pref.client_fps]</b></a><br>"
. += "<b>Random Ambience Frequency:</b> <a href='?src=\ref[src];select_ambience_freq=1'><b>[pref.ambience_freq]</b></a><br>"
@@ -91,7 +91,7 @@
preference = list(preference)
for(var/p in preference)
var/datum/client_preference/cp = get_client_preference(p)
if(!prefs || !cp || !(cp.key in prefs.preferences_enabled))
if(!prefs || !cp || !istype(cp, /datum/client_preference) || !(cp.key in prefs.preferences_enabled))
return FALSE
return TRUE
@@ -40,7 +40,48 @@
/datum/gear_tweak/color/tweak_item(var/obj/item/I, var/metadata)
if(valid_colors && !(metadata in valid_colors))
return
I.color = metadata
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
@@ -349,3 +349,27 @@
/datum/gear/accessory/pressbadge
display_name = "freelance press pass"
path = /obj/item/clothing/accessory/badge/press/independent
/datum/gear/accessory/wristband
display_name = "wristband (recolourable)"
path = /obj/item/clothing/accessory/wristband
/datum/gear/accessory/wristband/New()
..()
gear_tweaks += gear_tweak_free_color_choice
/datum/gear/accessory/wristband_collection
display_name = "wristbands (selection)"
path = /obj/item/clothing/accessory/wristbandcollection
/datum/gear/accessory/wristband_collection/New()
..()
var/list/wristband_lists = list(
"Green, Blue and Yellow" = /obj/item/clothing/accessory/wristbandcollection,
"Pink, Black and Red" = /obj/item/clothing/accessory/wristbandcollection/pink,
"Red and Orange" = /obj/item/clothing/accessory/wristbandcollection/les,
"White, Pink and Blue" = /obj/item/clothing/accessory/wristbandcollection/trans,
"Blue, Purple and Pink" = /obj/item/clothing/accessory/wristbandcollection/bi,
"Black, White and Grey" = /obj/item/clothing/accessory/wristbandcollection/ace
)
gear_tweaks += new/datum/gear_tweak/path(wristband_lists)
@@ -1321,6 +1321,13 @@
character_name = list("Bradley Khatibi")
// V CKEYS
/datum/gear/fluff/valkhorns
path = /obj/item/clothing/ears/earring/fluff/valkhorns
display_name = "Valkaerie's Horns"
ckeywhitelist = list("valkaerie")
character_name = list("Valkaerie Stoze")
/datum/gear/fluff/verie_suit
path = /obj/item/clothing/under/fluff/verie
display_name = "Verie's Salacious Suit"
@@ -304,3 +304,7 @@
if(PREF_FBP_SOFTWARE)
return 150
return S.max_age // welp
#undef PREF_FBP_CYBORG
#undef PREF_FBP_POSI
#undef PREF_FBP_SOFTWARE
@@ -5,20 +5,22 @@
/datum/category_item/player_setup_item/vore/misc/load_character(var/savefile/S)
S["show_in_directory"] >> pref.show_in_directory
S["directory_tag"] >> pref.directory_tag
S["directory_erptag"] >> pref.directory_erptag
S["directory_erptag"] >> pref.directory_erptag
S["directory_ad"] >> pref.directory_ad
S["sensorpref"] >> pref.sensorpref
S["capture_crystal"] >> pref.capture_crystal
S["auto_backup_implant"] >> pref.auto_backup_implant
S["borg_petting"] >> pref.borg_petting
/datum/category_item/player_setup_item/vore/misc/save_character(var/savefile/S)
S["show_in_directory"] << pref.show_in_directory
S["directory_tag"] << pref.directory_tag
S["directory_erptag"] << pref.directory_erptag
S["directory_erptag"] << pref.directory_erptag
S["directory_ad"] << pref.directory_ad
S["sensorpref"] << pref.sensorpref
S["capture_crystal"] << pref.capture_crystal
S["auto_backup_implant"] << pref.auto_backup_implant
S["borg_petting"] << pref.borg_petting
/datum/category_item/player_setup_item/vore/misc/copy_to_mob(var/mob/living/carbon/human/character)
if(pref.sensorpref > 5 || pref.sensorpref < 1)
@@ -29,10 +31,11 @@
/datum/category_item/player_setup_item/vore/misc/sanitize_character()
pref.show_in_directory = sanitize_integer(pref.show_in_directory, 0, 1, initial(pref.show_in_directory))
pref.directory_tag = sanitize_inlist(pref.directory_tag, GLOB.char_directory_tags, initial(pref.directory_tag))
pref.directory_erptag = sanitize_inlist(pref.directory_erptag, GLOB.char_directory_erptags, initial(pref.directory_erptag))
pref.directory_erptag = sanitize_inlist(pref.directory_erptag, GLOB.char_directory_erptags, initial(pref.directory_erptag))
pref.sensorpref = sanitize_integer(pref.sensorpref, 1, sensorpreflist.len, initial(pref.sensorpref))
pref.capture_crystal = sanitize_integer(pref.capture_crystal, 0, 1, initial(pref.capture_crystal))
pref.auto_backup_implant = sanitize_integer(pref.auto_backup_implant, 0, 1, initial(pref.auto_backup_implant))
pref.auto_backup_implant = sanitize_integer(pref.auto_backup_implant, 0, 1, initial(pref.auto_backup_implant))
pref.borg_petting = sanitize_integer(pref.borg_petting, 0, 1, initial(pref.borg_petting))
/datum/category_item/player_setup_item/vore/misc/content(var/mob/user)
. += "<br>"
@@ -43,6 +46,7 @@
. += "<b>Suit Sensors Preference:</b> <a [pref.sensorpref ? "" : ""] href='?src=\ref[src];toggle_sensor_setting=1'><b>[sensorpreflist[pref.sensorpref]]</b></a><br>"
. += "<b>Capture Crystal Preference:</b> <a [pref.capture_crystal ? "class='linkOn'" : ""] href='?src=\ref[src];toggle_capture_crystal=1'><b>[pref.capture_crystal ? "Yes" : "No"]</b></a><br>"
. += "<b>Spawn With Backup Implant:</b> <a [pref.auto_backup_implant ? "class='linkOn'" : ""] href='?src=\ref[src];toggle_implant=1'><b>[pref.auto_backup_implant ? "Yes" : "No"]</b></a><br>"
. += "<b>Allow petting as robot:</b> <a [pref.borg_petting ? "class='linkOn'" : ""] href='?src=\ref[src];toggle_borg_petting=1'><b>[pref.borg_petting ? "Yes" : "No"]</b></a><br>"
/datum/category_item/player_setup_item/vore/misc/OnTopic(var/href, var/list/href_list, var/mob/user)
if(href_list["toggle_show_in_directory"])
@@ -77,4 +81,7 @@
else if(href_list["toggle_implant"])
pref.auto_backup_implant = pref.auto_backup_implant ? 0 : 1;
return TOPIC_REFRESH
else if(href_list["toggle_borg_petting"])
pref.borg_petting = pref.borg_petting ? 0 : 1;
return TOPIC_REFRESH
return ..();