From 9e2744860f6e90810a762246c415c9c765b57217 Mon Sep 17 00:00:00 2001 From: Metis <100518708+sheepishgoat@users.noreply.github.com> Date: Thu, 27 Jun 2024 01:33:36 -0400 Subject: [PATCH 1/8] a --- .../modules/client/preferences/preferences.dm | 61 +++++++++++++++++++ code/modules/client/preferences.dm | 26 +------- 2 files changed, 62 insertions(+), 25 deletions(-) diff --git a/GainStation13/code/modules/client/preferences/preferences.dm b/GainStation13/code/modules/client/preferences/preferences.dm index 1175fde5..17f77625 100644 --- a/GainStation13/code/modules/client/preferences/preferences.dm +++ b/GainStation13/code/modules/client/preferences/preferences.dm @@ -22,8 +22,69 @@ ///stuckage var/stuckage = FALSE + // Helplessness, a set of prefs that make things extra tough at higher weights. If set to FALSE, they won't do anything. + ///What fatness level disables movement? + var/helplessness_no_movement = FALSE + ///What fatness level makes the user clumsy? + var/helplessness_clumsy = FALSE + ///What fatness level makes the user nearsighted + var/helplessness_nearsighted = FALSE + ///What fatness level makes the user's face unrecognizable. + var/helplessness_hidden_face = FALSE + ///What fatness level makes the user unable to speak? + var/helplessness_mute = FALSE + + ///What fatness level, makes the user unable to use their arms? + var/helplessness_immobile_arms = FALSE + ///What fatness level prevents the user from wearing jumpsuits + var/helplessness_clothing_jumpsuit = FALSE + ///What fatness level prevents the user from wearing non-jumpsuit clothing + var/helplessness_clothing_misc = FALSE + ///What fatness level prevents the user from wearing anything on their back + var/helplessness_clothing_back = FALSE + ///What fatness level prevents the user from being buckled to anything? + var/helplessness_no_buckle + + + ///Does the person wish to be involved with non-con weight gain events? var/noncon_weight_gain = FALSE ///What is the max weight that the person wishes to be? If set to FALSE, there will be no max weight var/max_weight = FALSE + +/// Prompts the user to choose a weight and returns said weight. +/datum/preferences/proc/chose_weight(input_text = "Choose a weight.", mob/user) + var/chosen_weight = FALSE + var/picked_weight_class = input(user, + input_text, + "Character Preference", "None") as null|anything in list( + "None", "Fat", "Fatter", "Very Fat", "Obese", "Morbidly Obese", "Extremely Obese", "Barely Mobile", "Immobile", "Other") + + switch(picked_weight_class) + if("Fat") + chosen_weight = FATNESS_LEVEL_FATTER + if("Fatter") + chosen_weight = FATNESS_LEVEL_VERYFAT + if("Very Fat") + chosen_weight = FATNESS_LEVEL_OBESE + if("Obese") + chosen_weight = FATNESS_LEVEL_MORBIDLY_OBESE + if("Morbidly Obese") + chosen_weight = FATNESS_LEVEL_EXTREMELY_OBESE + if("Extremely Obese") + chosen_weight = FATNESS_LEVEL_BARELYMOBILE + if("Barely Mobile") + chosen_weight = FATNESS_LEVEL_IMMOBILE + if("Immobile") + chosen_weight = FATNESS_LEVEL_BLOB + + if(picked_weight_class != "Other") + return chosen_weight + + var/custom_fatness = input(user, "What fatness level (BFI) would you like to use?", "Character Preference") as null|num + if(isnull(custom_fatness)) + custom_fatness = FALSE + + return custom_fatness + \ No newline at end of file diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index b7c55eec..5469e3e3 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -2654,31 +2654,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) if("blueberry_inflation") blueberry_inflation = !blueberry_inflation if("max_fatness") - var/pickedweight = input(user, - "Choose your max fatness level, your weight will not go beyond this. None will let you gain without a limit", - "Character Preference", "None") as null|anything in list( - "None", "Fat", "Fatter", "Very Fat", "Obese", "Morbidly Obese", "Extremely Obese", "Barely Mobile", "Immobile") - if(pickedweight) - switch(pickedweight) - if("None") - max_weight = FALSE - if("Fat") - max_weight = FATNESS_LEVEL_FATTER - if("Fatter") - max_weight = FATNESS_LEVEL_VERYFAT - if("Very Fat") - max_weight = FATNESS_LEVEL_OBESE - if("Obese") - max_weight = FATNESS_LEVEL_MORBIDLY_OBESE - if("Morbidly Obese") - max_weight = FATNESS_LEVEL_EXTREMELY_OBESE - if("Extremely Obese") - max_weight = FATNESS_LEVEL_BARELYMOBILE - if("Barely Mobile") - max_weight = FATNESS_LEVEL_IMMOBILE - if("Immobile") - max_weight = FATNESS_LEVEL_BLOB - + max_weight = chose_weight("Choose your max fatness level, your weight will not go beyond this. None will let you gain without a limit", user) if("inflatable_belly") features["inflatable_belly"] = !features["inflatable_belly"] if("hide_belly") From ab12e0e9fd4a3f680b2b6cdf6de56aac9816abd8 Mon Sep 17 00:00:00 2001 From: Metis <100518708+sheepishgoat@users.noreply.github.com> Date: Thu, 27 Jun 2024 02:05:11 -0400 Subject: [PATCH 2/8] prefs --- .../modules/client/preferences/preferences.dm | 4 +-- code/modules/client/preferences.dm | 34 +++++++++++++++++++ code/modules/client/preferences_savefile.dm | 20 +++++++++++ 3 files changed, 55 insertions(+), 3 deletions(-) diff --git a/GainStation13/code/modules/client/preferences/preferences.dm b/GainStation13/code/modules/client/preferences/preferences.dm index 17f77625..6c20037c 100644 --- a/GainStation13/code/modules/client/preferences/preferences.dm +++ b/GainStation13/code/modules/client/preferences/preferences.dm @@ -43,9 +43,7 @@ ///What fatness level prevents the user from wearing anything on their back var/helplessness_clothing_back = FALSE ///What fatness level prevents the user from being buckled to anything? - var/helplessness_no_buckle - - + var/helplessness_no_buckle = FALSE ///Does the person wish to be involved with non-con weight gain events? var/noncon_weight_gain = FALSE diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 5469e3e3..09c6dbdd 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -1072,6 +1072,18 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "Stuckage (weight results in getting stuck in doors):[stuckage == TRUE ? "Enabled" : "Disabled"]
" 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]
)" + //Add the Hyper stuff below here dat += "

Hyper Preferences

" dat += "NonCon - Bottom:[noncon == TRUE ? "Enabled" : "Disabled"]
" @@ -2655,6 +2667,28 @@ GLOBAL_LIST_EMPTY(preferences_datums) blueberry_inflation = !blueberry_inflation if("max_fatness") max_weight = chose_weight("Choose your max fatness level, your weight will not go beyond this. None will let you gain without a limit", user) + + if("helplessness_no_movement") + helplessness_no_movement = chose_weight("Choose the level of fatness that you would like to be made completely able to move at. None will disable this alltogether", user) + if("helplessness_clumsy") + helplessness_clumsy = chose_weight("Choose the level of fatness that you would like to be made clumsy at. None will disable this alltogether", user) + if("helplessness_nearsighted") + helplessness_nearsighted = chose_weight("Choose the level of fatness that you would like to be made nearsighted at. None will disable this alltogether", user) + if("helplessness_hidden_face") + helplessness_hidden_face = chose_weight("Choose the level of fatness that you would like to have you face hidden at. None will disable this alltogether", user) + if("helplessness_mute") + helplessness_mute = chose_weight("Choose the level of fatness that you would like to be made unable to speak at. None will disable this alltogether", user) + if("helplessness_immobile_arms") + helplessness_immobile_arms = chose_weight("Choose the level of fatness that you would like to be made unable to use your arms at. None will disable this alltogether", user) + if("helplessness_clothing_jumpsuit") + helplessness_clothing_jumpsuit = chose_weight("Choose the level of fatness that you would like to be made unable to wear jumpsuits at. None will disable this alltogether", user) + if("helplessness_clothing_misc") + helplessness_clothing_misc = chose_weight("Choose the level of fatness that you would like to be made unable to wear other non-jumpsuit clothing at. None will disable this alltogether", user) + if("helplessness_clothing_back") + helplessness_clothing_back = chose_weight("Choose the level of fatness that you would like to be made unable to wear anything on your back at. None will disable this alltogether", user) + if("helplessness_no_buckle") + helplessness_no_buckle = chose_weight("Choose the level of fatness that you would like to be made unable to be buckled to anything at. None will disable this alltogether", user) + if("inflatable_belly") features["inflatable_belly"] = !features["inflatable_belly"] if("hide_belly") diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 872eeaef..6e12fbb1 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -159,6 +159,16 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["wl_rate"] >> wl_rate S["noncon_weight_gain"] >> noncon_weight_gain S["max_weight"] >> max_weight + S["helplessness_no_movement"] >> helplessness_no_movement + S["helplessness_clumsy"] >> helplessness_clumsy + S["helplessness_nearsighted"] >> helplessness_nearsighted + S["helplessness_hidden_face"] >> helplessness_hidden_face + S["helplessness_mute"] >> helplessness_mute + S["helplessness_immobile_arms"] >> helplessness_immobile_arms + S["helplessness_clothing_jumpsuit"] >> helplessness_clothing_jumpsuit + S["helplessness_clothing_misc"] >> helplessness_clothing_misc + S["helplessness_clothing_back"] >> helplessness_clothing_back + S["helplessness_no_buckle"] >> helplessness_no_buckle S["stuckage"] >> stuckage S["blueberry_inflation"] >> blueberry_inflation @@ -302,6 +312,16 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["wl_rate"], wl_rate) WRITE_FILE(S["noncon_weight_gain"], noncon_weight_gain) WRITE_FILE(S["max_weight"], max_weight) + WRITE_FILE(S["helplessness_no_movement"], helplessness_no_movement) + WRITE_FILE(S["helplessness_clumsy"], helplessness_clumsy) + WRITE_FILE(S["helplessness_nearsighted"], helplessness_nearsighted) + WRITE_FILE(S["helplessness_hidden_face"], helplessness_hidden_face) + WRITE_FILE(S["helplessness_mute"], helplessness_mute) + WRITE_FILE(S["helplessness_immobile_arms"], helplessness_immobile_arms) + WRITE_FILE(S["helplessness_clothing_jumpsuit"], helplessness_clothing_jumpsuit) + WRITE_FILE(S["helplessness_clothing_misc"], helplessness_clothing_misc) + WRITE_FILE(S["helplessness_clothing_back"], helplessness_clothing_back) + WRITE_FILE(S["helplessness_no_buckle"], helplessness_no_buckle) WRITE_FILE(S["stuckage"], stuckage) WRITE_FILE(S["blueberry_inflation"], blueberry_inflation) return 1 From cd753441e17bbf19501a53293b24ece1b235f42c Mon Sep 17 00:00:00 2001 From: Metis <100518708+sheepishgoat@users.noreply.github.com> Date: Thu, 27 Jun 2024 19:31:35 -0400 Subject: [PATCH 3/8] first one --- code/__DEFINES/traits.dm | 2 ++ code/modules/client/preferences.dm | 20 +++++++++---------- .../mob/living/carbon/human/species.dm | 14 +++++++++++++ 3 files changed, 26 insertions(+), 10 deletions(-) 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, From 4548b18b30411eac28d6a92fe96bdc340659175f Mon Sep 17 00:00:00 2001 From: Metis <100518708+sheepishgoat@users.noreply.github.com> Date: Thu, 27 Jun 2024 20:03:24 -0400 Subject: [PATCH 4/8] woah --- code/__DEFINES/traits.dm | 6 +- .../mob/living/carbon/human/species.dm | 84 +++++++++++++++++++ 2 files changed, 89 insertions(+), 1 deletion(-) diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index 9d316abf..91e67196 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -222,7 +222,11 @@ //GS13 #define TRAIT_WEIGHT_LOSS_IMMUNE "weight_loss_immune" #define TRAIT_UNIVERSAL_GAINER "universal_gainer" - +#define TRAIT_NO_MOVE "no_move" +#define TRAIT_NO_JUMPSUIT "no_jumpsuit" +#define TRAIT_NO_MISC "no_misc" +#define TRAIT_NO_BACKPACK "no_backpack" +#define TRAIT_NO_BUCKLE "no_buckle" // common trait sources #define TRAIT_GENERIC "generic" diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 11d01b06..c400b70d 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1359,6 +1359,15 @@ GLOBAL_LIST_EMPTY(roundstart_races) if(!istype(preferences)) return FALSE + if(preferences.helplessness_no_movement) + if(!HAS_TRAIT_FROM(fatty, TRAIT_NO_MOVE, HELPLESSNESS_TRAIT)) + if(fatty.fatness >= preferences.helplessness_no_movement) + ADD_TRAIT(fatty, TRAIT_NO_MOVE, HELPLESSNESS_TRAIT) + + else if(fatty.fatness < preferences.helplessness_no_movement) + REMOVE_TRAIT(fatty, TRAIT_NO_MOVE, HELPLESSNESS_TRAIT) + + if(preferences.helplessness_clumsy) if(!HAS_TRAIT_FROM(fatty, TRAIT_CLUMSY, HELPLESSNESS_TRAIT)) if(fatty.fatness >= preferences.helplessness_clumsy) @@ -1367,6 +1376,81 @@ GLOBAL_LIST_EMPTY(roundstart_races) else if(fatty.fatness < preferences.helplessness_clumsy) REMOVE_TRAIT(fatty, TRAIT_CLUMSY, HELPLESSNESS_TRAIT) + + if(preferences.helplessness_nearsighted) + if(!HAS_TRAIT_FROM(fatty, TRAIT_NEARSIGHT, HELPLESSNESS_TRAIT)) + if(fatty.fatness >= preferences.helplessness_nearsighted) + ADD_TRAIT(fatty, TRAIT_NEARSIGHT, HELPLESSNESS_TRAIT) + + else if(fatty.fatness < preferences.helplessness_nearsighted) + REMOVE_TRAIT(fatty, TRAIT_NEARSIGHT, HELPLESSNESS_TRAIT) + + + if(preferences.helplessness_hidden_face) + if(!HAS_TRAIT_FROM(fatty, TRAIT_DISFIGURED, HELPLESSNESS_TRAIT)) + if(fatty.fatness >= preferences.helplessness_hidden_face) + ADD_TRAIT(fatty, TRAIT_DISFIGURED, HELPLESSNESS_TRAIT) + + else if(fatty.fatness < preferences.helplessness_hidden_face) + REMOVE_TRAIT(fatty, TRAIT_DISFIGURED, HELPLESSNESS_TRAIT) + + + if(preferences.helplessness_mute) + if(!HAS_TRAIT_FROM(fatty, TRAIT_MUTE, HELPLESSNESS_TRAIT)) + if(fatty.fatness >= preferences.helplessness_mute) + ADD_TRAIT(fatty, TRAIT_MUTE, HELPLESSNESS_TRAIT) + + else if(fatty.fatness < preferences.helplessness_mute) + REMOVE_TRAIT(fatty, TRAIT_MUTE, HELPLESSNESS_TRAIT) + + + if(preferences.helplessness_immobile_arms) + if(!HAS_TRAIT_FROM(fatty, TRAIT_PARALYSIS_L_ARM, HELPLESSNESS_TRAIT)) + if(fatty.fatness >= preferences.helplessness_immobile_arms) + ADD_TRAIT(fatty, TRAIT_PARALYSIS_L_ARM, HELPLESSNESS_TRAIT) + ADD_TRAIT(fatty, TRAIT_PARALYSIS_R_ARM, HELPLESSNESS_TRAIT) + + else if(fatty.fatness < preferences.helplessness_immobile_arms) + REMOVE_TRAIT(fatty, TRAIT_PARALYSIS_L_ARM, HELPLESSNESS_TRAIT) + REMOVE_TRAIT(fatty, TRAIT_PARALYSIS_R_ARM, HELPLESSNESS_TRAIT) + + + if(preferences.helplessness_clothing_jumpsuit) + if(!HAS_TRAIT_FROM(fatty, TRAIT_NO_JUMPSUIT, HELPLESSNESS_TRAIT)) + if(fatty.fatness >= preferences.helplessness_clothing_jumpsuit) + ADD_TRAIT(fatty, TRAIT_NO_JUMPSUIT, HELPLESSNESS_TRAIT) + + else if(fatty.fatness < preferences.helplessness_clothing_jumpsuit) + REMOVE_TRAIT(fatty, TRAIT_NO_JUMPSUIT, HELPLESSNESS_TRAIT) + + + if(preferences.helplessness_clothing_misc) + if(!HAS_TRAIT_FROM(fatty, TRAIT_NO_MISC, HELPLESSNESS_TRAIT)) + if(fatty.fatness >= preferences.helplessness_clothing_misc) + ADD_TRAIT(fatty, TRAIT_NO_MISC, HELPLESSNESS_TRAIT) + + else if(fatty.fatness < preferences.helplessness_clothing_misc) + REMOVE_TRAIT(fatty, TRAIT_NO_MISC, HELPLESSNESS_TRAIT) + + + if(preferences.helplessness_clothing_back) + if(!HAS_TRAIT_FROM(fatty, TRAIT_NO_BACKPACK, HELPLESSNESS_TRAIT)) + if(fatty.fatness >= preferences.helplessness_clothing_back) + ADD_TRAIT(fatty, TRAIT_NO_BACKPACK, HELPLESSNESS_TRAIT) + + else if(fatty.fatness < preferences.helplessness_clothing_back) + REMOVE_TRAIT(fatty, TRAIT_NO_BACKPACK, HELPLESSNESS_TRAIT) + + + if(preferences.helplessness_no_buckle) + if(!HAS_TRAIT_FROM(fatty, TRAIT_NO_BUCKLE, HELPLESSNESS_TRAIT)) + if(fatty.fatness >= preferences.helplessness_no_buckle) + ADD_TRAIT(fatty, TRAIT_NO_BUCKLE, HELPLESSNESS_TRAIT) + + else if(fatty.fatness < preferences.helplessness_no_buckle) + REMOVE_TRAIT(fatty, TRAIT_NO_BUCKLE, HELPLESSNESS_TRAIT) + + /datum/species/proc/handle_fatness(mob/living/carbon/human/H) handle_helplessness(H) if(HAS_TRAIT(H, TRAIT_BLOB)) From 9ffa3dfd85be27ff26c63ac6220cec6c3872f7f7 Mon Sep 17 00:00:00 2001 From: Metis <100518708+sheepishgoat@users.noreply.github.com> Date: Thu, 27 Jun 2024 23:35:38 -0400 Subject: [PATCH 5/8] need to update more --- GainStation13/code/mechanics/helplessness.dm | 20 +++++++++++++ code/modules/client/preferences.dm | 2 +- .../mob/living/carbon/human/species.dm | 28 +++++++++++++++++-- code/modules/mob/mob_movement.dm | 4 +++ tgstation.dme | 1 + 5 files changed, 52 insertions(+), 3 deletions(-) create mode 100644 GainStation13/code/mechanics/helplessness.dm diff --git a/GainStation13/code/mechanics/helplessness.dm b/GainStation13/code/mechanics/helplessness.dm new file mode 100644 index 00000000..12f2f896 --- /dev/null +++ b/GainStation13/code/mechanics/helplessness.dm @@ -0,0 +1,20 @@ +/mob/living/carbon/can_buckle() + if(HAS_TRAIT(src, TRAIT_NO_BUCKLE)) + return FALSE + + return ..() + +/datum/species/can_equip(obj/item/I, slot, disable_warning, mob/living/carbon/human/H, bypass_equip_delay_self) + if(HAS_TRAIT(H, TRAIT_NO_BACKPACK) && slot == ITEM_SLOT_BACK) + to_chat(H, "You are too fat to wear anything on your back.") + return FALSE + + if(HAS_TRAIT(H, TRAIT_NO_JUMPSUIT) && slot == ITEM_SLOT_ICLOTHING) + to_chat(H, "You are too fat to wear [I].") + return FALSE + + if(HAS_TRAIT(H, TRAIT_NO_MISC) && (slot == ITEM_SLOT_FEET || slot == ITEM_SLOT_GLOVES || slot == ITEM_SLOT_OCLOTHING)) + to_chat(H, "You are too fat to wear [I].") + return FALSE + + return ..() diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index c8cebeb0..fabf8b6c 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -1080,7 +1080,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) 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 Suit, Boots, and Gloves:[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]
" diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index c400b70d..55bc4714 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1380,10 +1380,10 @@ GLOBAL_LIST_EMPTY(roundstart_races) if(preferences.helplessness_nearsighted) if(!HAS_TRAIT_FROM(fatty, TRAIT_NEARSIGHT, HELPLESSNESS_TRAIT)) if(fatty.fatness >= preferences.helplessness_nearsighted) - ADD_TRAIT(fatty, TRAIT_NEARSIGHT, HELPLESSNESS_TRAIT) + fatty.become_nearsighted(HELPLESSNESS_TRAIT) else if(fatty.fatness < preferences.helplessness_nearsighted) - REMOVE_TRAIT(fatty, TRAIT_NEARSIGHT, HELPLESSNESS_TRAIT) + fatty.cure_nearsighted(HELPLESSNESS_TRAIT) if(preferences.helplessness_hidden_face) @@ -1420,6 +1420,11 @@ GLOBAL_LIST_EMPTY(roundstart_races) if(fatty.fatness >= preferences.helplessness_clothing_jumpsuit) ADD_TRAIT(fatty, TRAIT_NO_JUMPSUIT, HELPLESSNESS_TRAIT) + var/obj/item/clothing/under/jumpsuit = fatty.w_uniform + if(istype(jumpsuit)) + to_chat(fatty, "[jumpsuit] can no longer contain your weight!") + fatty.dropItemToGround(jumpsuit) + else if(fatty.fatness < preferences.helplessness_clothing_jumpsuit) REMOVE_TRAIT(fatty, TRAIT_NO_JUMPSUIT, HELPLESSNESS_TRAIT) @@ -1429,6 +1434,21 @@ GLOBAL_LIST_EMPTY(roundstart_races) if(fatty.fatness >= preferences.helplessness_clothing_misc) ADD_TRAIT(fatty, TRAIT_NO_MISC, HELPLESSNESS_TRAIT) + var/obj/item/clothing/suit/worn_suit = fatty.wear_suit + if(istype(worn_suit)) + to_chat(fatty, "[worn_suit] can no longer contain your weight!") + fatty.dropItemToGround(worn_suit) + + var/obj/item/clothing/gloves/worn_gloves = fatty.gloves + if(istype(worn_gloves)) + to_chat(fatty, "[worn_gloves] can no longer contain your weight!") + fatty.dropItemToGround(worn_gloves) + + var/obj/item/clothing/shoes/worn_shoes = fatty.shoes + if(istype(worn_shoes)) + to_chat(fatty, "[worn_shoes] can no longer contain your weight!") + fatty.dropItemToGround(worn_shoes) + else if(fatty.fatness < preferences.helplessness_clothing_misc) REMOVE_TRAIT(fatty, TRAIT_NO_MISC, HELPLESSNESS_TRAIT) @@ -1437,6 +1457,10 @@ GLOBAL_LIST_EMPTY(roundstart_races) if(!HAS_TRAIT_FROM(fatty, TRAIT_NO_BACKPACK, HELPLESSNESS_TRAIT)) if(fatty.fatness >= preferences.helplessness_clothing_back) ADD_TRAIT(fatty, TRAIT_NO_BACKPACK, HELPLESSNESS_TRAIT) + var/obj/item/back_item = fatty.back + if(istype(back_item)) + to_chat(fatty, "Your weight makes it impossible for you to carry [back_item].") + fatty.dropItemToGround(back_item) else if(fatty.fatness < preferences.helplessness_clothing_back) REMOVE_TRAIT(fatty, TRAIT_NO_BACKPACK, HELPLESSNESS_TRAIT) diff --git a/code/modules/mob/mob_movement.dm b/code/modules/mob/mob_movement.dm index c1a85768..1cef42ae 100644 --- a/code/modules/mob/mob_movement.dm +++ b/code/modules/mob/mob_movement.dm @@ -84,6 +84,10 @@ if(!mob.Process_Spacemove(direct)) return FALSE + + //GS13 EDIT + if(HAS_TRAIT(mob, TRAIT_NO_MOVE)) + return FALSE //We are now going to move var/add_delay = mob.movement_delay() diff --git a/tgstation.dme b/tgstation.dme index 0542ee37..2618e0d8 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -3096,6 +3096,7 @@ #include "GainStation13\code\machinery\feeding_tube.dm" #include "GainStation13\code\mechanics\fatness.dm" #include "GainStation13\code\mechanics\fattening_trap.dm" +#include "GainStation13\code\mechanics\helplessness.dm" #include "GainStation13\code\mechanics\infestation.dm" #include "GainStation13\code\mechanics\metal_cruncher.dm" #include "GainStation13\code\mechanics\spells.dm" From b66f050c1a33b40609dc4fbe0f2bed2b2a6e8c9c Mon Sep 17 00:00:00 2001 From: Metis <100518708+sheepishgoat@users.noreply.github.com> Date: Fri, 28 Jun 2024 00:40:04 -0400 Subject: [PATCH 6/8] feedback --- GainStation13/code/mechanics/helplessness.dm | 6 +++--- code/modules/client/preferences.dm | 4 ++-- .../mob/living/carbon/human/species.dm | 19 +++++++++++++++++++ 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/GainStation13/code/mechanics/helplessness.dm b/GainStation13/code/mechanics/helplessness.dm index 12f2f896..d04c12e7 100644 --- a/GainStation13/code/mechanics/helplessness.dm +++ b/GainStation13/code/mechanics/helplessness.dm @@ -5,15 +5,15 @@ return ..() /datum/species/can_equip(obj/item/I, slot, disable_warning, mob/living/carbon/human/H, bypass_equip_delay_self) - if(HAS_TRAIT(H, TRAIT_NO_BACKPACK) && slot == ITEM_SLOT_BACK) + if(HAS_TRAIT(H, TRAIT_NO_BACKPACK) && slot == SLOT_BACK) to_chat(H, "You are too fat to wear anything on your back.") return FALSE - if(HAS_TRAIT(H, TRAIT_NO_JUMPSUIT) && slot == ITEM_SLOT_ICLOTHING) + if(HAS_TRAIT(H, TRAIT_NO_JUMPSUIT) && slot == SLOT_W_UNIFORM) to_chat(H, "You are too fat to wear [I].") return FALSE - if(HAS_TRAIT(H, TRAIT_NO_MISC) && (slot == ITEM_SLOT_FEET || slot == ITEM_SLOT_GLOVES || slot == ITEM_SLOT_OCLOTHING)) + if(HAS_TRAIT(H, TRAIT_NO_MISC) && (slot == SLOT_SHOES || slot == SLOT_GLOVES || slot == SLOT_WEAR_SUIT)) to_chat(H, "You are too fat to wear [I].") return FALSE diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index fabf8b6c..939be5df 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -1079,8 +1079,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) 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 Suit, Boots, and Gloves:[helplessness_clothing_misc == FALSE ? "Disabled" : helplessness_clothing_misc]
" + dat += "Clothing Jumpsuit:[helplessness_clothing_jumpsuit == FALSE ? "Disabled" : helplessness_clothing_jumpsuit]
" + dat += "Clothing, Suit, Boots, and Gloves:[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]
" diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 55bc4714..bb23d9f1 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1362,57 +1362,71 @@ GLOBAL_LIST_EMPTY(roundstart_races) if(preferences.helplessness_no_movement) if(!HAS_TRAIT_FROM(fatty, TRAIT_NO_MOVE, HELPLESSNESS_TRAIT)) if(fatty.fatness >= preferences.helplessness_no_movement) + to_chat(fatty, "You have become too fat to move anymore.") ADD_TRAIT(fatty, TRAIT_NO_MOVE, HELPLESSNESS_TRAIT) else if(fatty.fatness < preferences.helplessness_no_movement) + to_chat(fatty, "You have become thin enough to regain some of your mobility.") REMOVE_TRAIT(fatty, TRAIT_NO_MOVE, HELPLESSNESS_TRAIT) if(preferences.helplessness_clumsy) if(!HAS_TRAIT_FROM(fatty, TRAIT_CLUMSY, HELPLESSNESS_TRAIT)) if(fatty.fatness >= preferences.helplessness_clumsy) + to_chat(fatty, "Your newfound weight has made it hard to manipulate objects.") ADD_TRAIT(fatty, TRAIT_CLUMSY, HELPLESSNESS_TRAIT) else if(fatty.fatness < preferences.helplessness_clumsy) + to_chat(fatty, "You feel like you have lost enough weight to recover your dexterity.") REMOVE_TRAIT(fatty, TRAIT_CLUMSY, HELPLESSNESS_TRAIT) if(preferences.helplessness_nearsighted) if(!HAS_TRAIT_FROM(fatty, TRAIT_NEARSIGHT, HELPLESSNESS_TRAIT)) if(fatty.fatness >= preferences.helplessness_nearsighted) + to_chat(fatty, "Your fat makes it difficult to see the world around you. ") fatty.become_nearsighted(HELPLESSNESS_TRAIT) else if(fatty.fatness < preferences.helplessness_nearsighted) + to_chat(fatty, "You are thin enough to see your enviornment again. ") fatty.cure_nearsighted(HELPLESSNESS_TRAIT) if(preferences.helplessness_hidden_face) if(!HAS_TRAIT_FROM(fatty, TRAIT_DISFIGURED, HELPLESSNESS_TRAIT)) if(fatty.fatness >= preferences.helplessness_hidden_face) + to_chat(fatty, "You have gotten fat enough that your face is now unrecognizable. ") ADD_TRAIT(fatty, TRAIT_DISFIGURED, HELPLESSNESS_TRAIT) else if(fatty.fatness < preferences.helplessness_hidden_face) + to_chat(fatty, "You have lost enough weight to allow people to now recognize your face.") REMOVE_TRAIT(fatty, TRAIT_DISFIGURED, HELPLESSNESS_TRAIT) if(preferences.helplessness_mute) if(!HAS_TRAIT_FROM(fatty, TRAIT_MUTE, HELPLESSNESS_TRAIT)) if(fatty.fatness >= preferences.helplessness_mute) + to_chat(fatty, "Your fat makes it impossible for you to speak.") ADD_TRAIT(fatty, TRAIT_MUTE, HELPLESSNESS_TRAIT) else if(fatty.fatness < preferences.helplessness_mute) + to_chat(fatty, "You are thin enough now to be able to speak again. ") REMOVE_TRAIT(fatty, TRAIT_MUTE, HELPLESSNESS_TRAIT) if(preferences.helplessness_immobile_arms) if(!HAS_TRAIT_FROM(fatty, TRAIT_PARALYSIS_L_ARM, HELPLESSNESS_TRAIT)) if(fatty.fatness >= preferences.helplessness_immobile_arms) + to_chat(fatty, "Your arms are now engulfed in fat, making it impossible to move your arms. ") ADD_TRAIT(fatty, TRAIT_PARALYSIS_L_ARM, HELPLESSNESS_TRAIT) ADD_TRAIT(fatty, TRAIT_PARALYSIS_R_ARM, HELPLESSNESS_TRAIT) + fatty.update_disabled_bodyparts() else if(fatty.fatness < preferences.helplessness_immobile_arms) + to_chat(fatty, "You are able to move your arms again. ") REMOVE_TRAIT(fatty, TRAIT_PARALYSIS_L_ARM, HELPLESSNESS_TRAIT) REMOVE_TRAIT(fatty, TRAIT_PARALYSIS_R_ARM, HELPLESSNESS_TRAIT) + fatty.update_disabled_bodyparts() if(preferences.helplessness_clothing_jumpsuit) @@ -1426,6 +1440,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) fatty.dropItemToGround(jumpsuit) else if(fatty.fatness < preferences.helplessness_clothing_jumpsuit) + to_chat(fatty, "You feel thin enough to put on jumpsuits now. ") REMOVE_TRAIT(fatty, TRAIT_NO_JUMPSUIT, HELPLESSNESS_TRAIT) @@ -1450,6 +1465,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) fatty.dropItemToGround(worn_shoes) else if(fatty.fatness < preferences.helplessness_clothing_misc) + to_chat(fatty, "You feel thin enough to put on suits, shoes, and gloves now. ") REMOVE_TRAIT(fatty, TRAIT_NO_MISC, HELPLESSNESS_TRAIT) @@ -1463,15 +1479,18 @@ GLOBAL_LIST_EMPTY(roundstart_races) fatty.dropItemToGround(back_item) else if(fatty.fatness < preferences.helplessness_clothing_back) + to_chat(fatty, "You feel thin enough to hold items on your back now. ") REMOVE_TRAIT(fatty, TRAIT_NO_BACKPACK, HELPLESSNESS_TRAIT) if(preferences.helplessness_no_buckle) if(!HAS_TRAIT_FROM(fatty, TRAIT_NO_BUCKLE, HELPLESSNESS_TRAIT)) if(fatty.fatness >= preferences.helplessness_no_buckle) + to_chat(fatty, "You feel like you've gotten too big to fit on anything.") ADD_TRAIT(fatty, TRAIT_NO_BUCKLE, HELPLESSNESS_TRAIT) else if(fatty.fatness < preferences.helplessness_no_buckle) + to_chat(fatty, "You feel thin enough to sit on things again. ") REMOVE_TRAIT(fatty, TRAIT_NO_BUCKLE, HELPLESSNESS_TRAIT) From d955ff4f881d1773cbfc2850b30b89ec820ce935 Mon Sep 17 00:00:00 2001 From: Metis <100518708+sheepishgoat@users.noreply.github.com> Date: Fri, 28 Jun 2024 03:41:49 -0400 Subject: [PATCH 7/8] warning --- code/modules/client/preferences.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 939be5df..2d225f37 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -1073,6 +1073,7 @@ 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 += "Please be careful when using these mechanics as not to use them in a way that negatively impacts those around you. If you are seriously needed for something, especially something station critical, do not use these as an excuse to ignore your duty.

" 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]
" From 50ec5c00b37b3a2d8b7d3c7b14905c4743bf2c07 Mon Sep 17 00:00:00 2001 From: Metis <100518708+sheepishgoat@users.noreply.github.com> Date: Fri, 28 Jun 2024 11:34:18 -0400 Subject: [PATCH 8/8] excluding modular jumpsuits --- GainStation13/code/mechanics/helplessness.dm | 2 +- code/modules/mob/living/carbon/human/species.dm | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/GainStation13/code/mechanics/helplessness.dm b/GainStation13/code/mechanics/helplessness.dm index d04c12e7..7e5a6828 100644 --- a/GainStation13/code/mechanics/helplessness.dm +++ b/GainStation13/code/mechanics/helplessness.dm @@ -9,7 +9,7 @@ to_chat(H, "You are too fat to wear anything on your back.") return FALSE - if(HAS_TRAIT(H, TRAIT_NO_JUMPSUIT) && slot == SLOT_W_UNIFORM) + if(!istype(I, /obj/item/clothing/under/color/grey/modular) && HAS_TRAIT(H, TRAIT_NO_JUMPSUIT) && slot == SLOT_W_UNIFORM) to_chat(H, "You are too fat to wear [I].") return FALSE diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index bb23d9f1..c1db1314 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1435,7 +1435,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) ADD_TRAIT(fatty, TRAIT_NO_JUMPSUIT, HELPLESSNESS_TRAIT) var/obj/item/clothing/under/jumpsuit = fatty.w_uniform - if(istype(jumpsuit)) + if(istype(jumpsuit) && !istype(jumpsuit, /obj/item/clothing/under/color/grey/modular)) to_chat(fatty, "[jumpsuit] can no longer contain your weight!") fatty.dropItemToGround(jumpsuit)