diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index a5ad770e..9d316abf 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -284,3 +284,5 @@ #define NUKEOP_TRAIT "nuke-op" #define MEGAFAUNA_TRAIT "megafauna" #define DEATHSQUAD_TRAIT "deathsquad" +#define HELPLESSNESS_TRAIT "helplessness" + diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 09c6dbdd..c8cebeb0 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -1073,16 +1073,16 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "Extreme Weight Gain (Sprite Size scales with weight):[weight_gain_extreme == TRUE ? "Enabled" : "Disabled"]
" dat += "

GS13 Helplessness Preferences

" - dat += "No Movement:[helplessness_no_movement == FALSE ? "Disabled" : helplessness_no_movement]
)" - dat += "Clumsy:[helplessness_clumsy == FALSE ? "Disabled" : helplessness_clumsy]
)" - dat += "Nearsighted:[helplessness_nearsighted == FALSE ? "Disabled" : helplessness_nearsighted]
)" - dat += "Hidden Face:[helplessness_hidden_face == FALSE ? "Disabled" : helplessness_hidden_face]
)" - dat += "Mute:[helplessness_mute == FALSE ? "Disabled" : helplessness_mute]
)" - dat += "Immobile Arms:[helplessness_immobile_arms == FALSE ? "Disabled" : helplessness_immobile_arms]
)" - dat += "Clothing Jumpsuit:[helplessness_clothing_jumpsuit == FALSE ? "Disabled" : helplessness_clothing_jumpsuit]
)" - dat += "Clothing Misc:[helplessness_clothing_misc == FALSE ? "Disabled" : helplessness_clothing_misc]
)" - dat += "Clothing Back:[helplessness_clothing_back == FALSE ? "Disabled" : helplessness_clothing_back]
)" - dat += "No Buckle:[helplessness_no_buckle == FALSE ? "Disabled" : helplessness_no_buckle]
)" + dat += "No Movement:[helplessness_no_movement == FALSE ? "Disabled" : helplessness_no_movement]
" + dat += "Clumsy:[helplessness_clumsy == FALSE ? "Disabled" : helplessness_clumsy]
" + dat += "Nearsighted:[helplessness_nearsighted == FALSE ? "Disabled" : helplessness_nearsighted]
" + dat += "Hidden Face:[helplessness_hidden_face == FALSE ? "Disabled" : helplessness_hidden_face]
" + dat += "Mute:[helplessness_mute == FALSE ? "Disabled" : helplessness_mute]
" + dat += "Immobile Arms:[helplessness_immobile_arms == FALSE ? "Disabled" : helplessness_immobile_arms]
" + dat += "Clothing Jumpsuit:[helplessness_clothing_jumpsuit == FALSE ? "Disabled" : helplessness_clothing_jumpsuit]" + dat += "Clothing Misc:[helplessness_clothing_misc == FALSE ? "Disabled" : helplessness_clothing_misc]
" + dat += "Clothing Back:[helplessness_clothing_back == FALSE ? "Disabled" : helplessness_clothing_back]
" + dat += "No Buckle:[helplessness_no_buckle == FALSE ? "Disabled" : helplessness_no_buckle]
" //Add the Hyper stuff below here dat += "

Hyper Preferences

" diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 08782217..11d01b06 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1354,7 +1354,21 @@ GLOBAL_LIST_EMPTY(roundstart_races) ADD_TRAIT(H, trait_gain, OBESITY) update_body_size(H, 1) +/datum/species/proc/handle_helplessness(mob/living/carbon/human/fatty) + var/datum/preferences/preferences = fatty?.client?.prefs + if(!istype(preferences)) + return FALSE + + if(preferences.helplessness_clumsy) + if(!HAS_TRAIT_FROM(fatty, TRAIT_CLUMSY, HELPLESSNESS_TRAIT)) + if(fatty.fatness >= preferences.helplessness_clumsy) + ADD_TRAIT(fatty, TRAIT_CLUMSY, HELPLESSNESS_TRAIT) + + else if(fatty.fatness < preferences.helplessness_clumsy) + REMOVE_TRAIT(fatty, TRAIT_CLUMSY, HELPLESSNESS_TRAIT) + /datum/species/proc/handle_fatness(mob/living/carbon/human/H) + handle_helplessness(H) if(HAS_TRAIT(H, TRAIT_BLOB)) handle_fatness_trait( H,