mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2025-12-19 14:12:55 +00:00
58 lines
1.8 KiB
Plaintext
58 lines
1.8 KiB
Plaintext
/datum/preference/choiced/height_scaling
|
|
category = PREFERENCE_CATEGORY_SECONDARY_FEATURES
|
|
savefile_key = "height_scaling"
|
|
savefile_identifier = PREFERENCE_CHARACTER
|
|
|
|
var/static/list/height_scaling_strings = list(
|
|
"[HUMAN_HEIGHT_SHORTEST]" = "Shortest",
|
|
"[HUMAN_HEIGHT_SHORT]" = "Short",
|
|
"[HUMAN_HEIGHT_MEDIUM]" = "Medium",
|
|
"[HUMAN_HEIGHT_TALL]" = "Tall",
|
|
"[HUMAN_HEIGHT_TALLER]" = "Taller",
|
|
"[HUMAN_HEIGHT_TALLEST]" = "Tallest"
|
|
)
|
|
|
|
var/static/list/incompatable_quirk_ids = list(
|
|
"Spacer",
|
|
"Settler"
|
|
)
|
|
|
|
/datum/preference/choiced/height_scaling/init_possible_values()
|
|
return list(HUMAN_HEIGHT_SHORTEST, HUMAN_HEIGHT_SHORT, HUMAN_HEIGHT_MEDIUM, HUMAN_HEIGHT_TALL, HUMAN_HEIGHT_TALLER, HUMAN_HEIGHT_TALLEST)
|
|
|
|
/datum/preference/choiced/height_scaling/create_default_value()
|
|
return HUMAN_HEIGHT_MEDIUM
|
|
|
|
/datum/preference/choiced/height_scaling/is_accessible(datum/preferences/preferences)
|
|
. = ..()
|
|
|
|
if(!.)
|
|
return
|
|
|
|
if (ispath(preferences?.pref_species, /datum/species/dwarf)) // all 3 of these manually set your height
|
|
return FALSE
|
|
|
|
for (var/quirk_id as anything in preferences?.all_quirks)
|
|
if (quirk_id in incompatable_quirk_ids)
|
|
return FALSE
|
|
|
|
return TRUE
|
|
|
|
/datum/preference/choiced/height_scaling/apply_to_human(mob/living/carbon/human/target, value, datum/preferences/preferences)
|
|
if (HAS_TRAIT(target, TRAIT_DWARF)) // nuh uh. your height is set mf
|
|
return FALSE
|
|
|
|
for (var/quirk_id as anything in preferences?.all_quirks)
|
|
if (quirk_id in incompatable_quirk_ids)
|
|
return FALSE
|
|
|
|
target.set_mob_height(value)
|
|
|
|
/datum/preference/choiced/height_scaling/compile_constant_data()
|
|
var/list/data = ..()
|
|
|
|
// An assoc list of values to display names so we don't show players numbers in their settings!
|
|
data[CHOICED_PREFERENCE_DISPLAY_NAMES] = height_scaling_strings
|
|
|
|
return data
|