diff --git a/GainStation13/code/mechanics/fatness.dm b/GainStation13/code/mechanics/fatness.dm index e8d9dbec..82c5dd31 100644 --- a/GainStation13/code/mechanics/fatness.dm +++ b/GainStation13/code/mechanics/fatness.dm @@ -149,6 +149,11 @@ GLOBAL_LIST_INIT(uncapped_resize_areas, list(/area/bridge, /area/crew_quarters, fatness = min(fatness, (client?.prefs?.max_weight - 1)) //Apply max weight prefs /mob/living/carbon/proc/adjust_perma(adjustment_amount, type_of_fattening = FATTENING_TYPE_ITEM) + if(!client) + return FALSE + if(!client.prefs.weight_gain_permanent) + return FALSE + if(!adjustment_amount || !type_of_fattening) return FALSE diff --git a/GainStation13/code/modules/client/preferences/preferences.dm b/GainStation13/code/modules/client/preferences/preferences.dm index d7d2ce81..99a0f618 100644 --- a/GainStation13/code/modules/client/preferences/preferences.dm +++ b/GainStation13/code/modules/client/preferences/preferences.dm @@ -19,6 +19,8 @@ var/blueberry_inflation = FALSE ///Extreme weight gain var/weight_gain_extreme = FALSE + ///Permanent weight gain + var/weight_gain_permanent = FALSE /// At what weight will you start to get stuck in airlocks? var/stuckage = FALSE /// At what weight will you start to break chairs? diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index b05aae85..8be93308 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -1077,6 +1077,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "This preference functions similar to the one before but allows for items with more drastic effects. Do not enable this if you aren't okay with more drastic things happening to your character.
" dat += "Extreme Fatness Vulnerability:[extreme_fatness_vulnerable == TRUE ? "Enabled" : "Disabled"]
" dat += "Extreme Weight Gain (Sprite Size scales with weight):[weight_gain_extreme == TRUE ? "Enabled" : "Disabled"]
" + dat += "Weight Gain Permanent (special weight persists between rounds):[weight_gain_permanent == 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.

" @@ -2666,6 +2667,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) weight_gain_nanites = !weight_gain_nanites if("weight_gain_extreme") weight_gain_extreme = !weight_gain_extreme + if("weight_gain_permanent") + weight_gain_permanent = !weight_gain_permanent if("noncon_weight_gain") noncon_weight_gain = !noncon_weight_gain if("bot_feeding") diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index dab7cfb7..f669a2ea 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -146,36 +146,6 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["importantroles"] >> importantroles S["pins"] >> pins - //GS13 code - S["weight_gain_food"] >> weight_gain_food - S["weight_gain_chems"] >> weight_gain_chems - S["weight_gain_items"] >> weight_gain_items - S["weight_gain_magic"] >> weight_gain_magic - S["weight_gain_viruses"] >> weight_gain_viruses - S["weight_gain_nanites"] >> weight_gain_nanites - S["weight_gain_weapons"] >> weight_gain_weapons - S["weight_gain_extreme"] >> weight_gain_extreme - S["wg_rate"] >> wg_rate - S["wl_rate"] >> wl_rate - S["noncon_weight_gain"] >> noncon_weight_gain - S["bot_feeding"] >> bot_feeding - 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["chair_breakage"] >> chair_breakage - S["fatness_vulnerable"] >> fatness_vulnerable - S["extreme_fatness_vulnerable"] >> extreme_fatness_vulnerable - S["blueberry_inflation"] >> blueberry_inflation - //try to fix any outdated data if necessfary if(needs_update >= 0) @@ -303,35 +273,6 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car //Hyper WRITE_FILE(S["noncon"], noncon) WRITE_FILE(S["pins"], pins) - //GS13 - WRITE_FILE(S["weight_gain_food"], weight_gain_food) - WRITE_FILE(S["weight_gain_items"], weight_gain_items) - WRITE_FILE(S["weight_gain_magic"], weight_gain_magic) - WRITE_FILE(S["weight_gain_viruses"], weight_gain_viruses) - WRITE_FILE(S["weight_gain_nanites"], weight_gain_nanites) - WRITE_FILE(S["weight_gain_chems"], weight_gain_chems) - WRITE_FILE(S["weight_gain_weapons"], weight_gain_weapons) - WRITE_FILE(S["weight_gain_extreme"], weight_gain_extreme) - WRITE_FILE(S["wg_rate"], wg_rate) - WRITE_FILE(S["wl_rate"], wl_rate) - WRITE_FILE(S["noncon_weight_gain"], noncon_weight_gain) - WRITE_FILE(S["bot_feeding"], bot_feeding) - 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["chair_breakage"], chair_breakage) - WRITE_FILE(S["fatness_vulnerable"], fatness_vulnerable) - WRITE_FILE(S["extreme_fatness_vulnerable"], extreme_fatness_vulnerable) - WRITE_FILE(S["blueberry_inflation"], blueberry_inflation) return 1 @@ -545,6 +486,37 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car else S["feature_ooc_text"] >> features["ooc_text"] + //GS13 code preferences + S["weight_gain_food"] >> weight_gain_food + S["weight_gain_chems"] >> weight_gain_chems + S["weight_gain_items"] >> weight_gain_items + S["weight_gain_magic"] >> weight_gain_magic + S["weight_gain_viruses"] >> weight_gain_viruses + S["weight_gain_nanites"] >> weight_gain_nanites + S["weight_gain_weapons"] >> weight_gain_weapons + S["weight_gain_extreme"] >> weight_gain_extreme + S["weight_gain_permanent"] >> weight_gain_permanent + S["wg_rate"] >> wg_rate + S["wl_rate"] >> wl_rate + S["noncon_weight_gain"] >> noncon_weight_gain + S["bot_feeding"] >> bot_feeding + 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["chair_breakage"] >> chair_breakage + S["fatness_vulnerable"] >> fatness_vulnerable + S["extreme_fatness_vulnerable"] >> extreme_fatness_vulnerable + S["blueberry_inflation"] >> blueberry_inflation + //try to fix any outdated data if necessary if(needs_update >= 0) update_character(needs_update, S) //needs_update == savefile_version if we need an update (positive integer) @@ -733,6 +705,37 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["hide_ckey"] , hide_ckey) WRITE_FILE(S["all_quirks"] , all_quirks) + //GS13 PREFS + WRITE_FILE(S["weight_gain_food"], weight_gain_food) + WRITE_FILE(S["weight_gain_items"], weight_gain_items) + WRITE_FILE(S["weight_gain_magic"], weight_gain_magic) + WRITE_FILE(S["weight_gain_viruses"], weight_gain_viruses) + WRITE_FILE(S["weight_gain_nanites"], weight_gain_nanites) + WRITE_FILE(S["weight_gain_chems"], weight_gain_chems) + WRITE_FILE(S["weight_gain_weapons"], weight_gain_weapons) + WRITE_FILE(S["weight_gain_extreme"], weight_gain_extreme) + WRITE_FILE(S["weight_gain_permanent"], weight_gain_permanent) + WRITE_FILE(S["wg_rate"], wg_rate) + WRITE_FILE(S["wl_rate"], wl_rate) + WRITE_FILE(S["noncon_weight_gain"], noncon_weight_gain) + WRITE_FILE(S["bot_feeding"], bot_feeding) + 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["chair_breakage"], chair_breakage) + WRITE_FILE(S["fatness_vulnerable"], fatness_vulnerable) + WRITE_FILE(S["extreme_fatness_vulnerable"], extreme_fatness_vulnerable) + WRITE_FILE(S["blueberry_inflation"], blueberry_inflation) + cit_character_pref_save(S) return 1