diff --git a/GainStation13/code/mechanics/fatness.dm b/GainStation13/code/mechanics/fatness.dm index d888dfd936..02a0190c15 100644 --- a/GainStation13/code/mechanics/fatness.dm +++ b/GainStation13/code/mechanics/fatness.dm @@ -135,6 +135,10 @@ GLOBAL_LIST_INIT(uncapped_resize_areas, list(/area/command/bridge, /area/mainten if(!client?.prefs?.weight_gain_atmos) return FALSE + if(TRANSFORMATION) + if(!client?.prefs?.transformation) + return FALSE + if(FATTENING_TYPE_WEIGHT_LOSS) if(HAS_TRAIT(src, TRAIT_WEIGHT_LOSS_IMMUNE)) return FALSE diff --git a/GainStation13/code/modules/client/preferences/preferences.dm b/GainStation13/code/modules/client/preferences/preferences.dm index d8ce7cf670..bb76c9cc42 100644 --- a/GainStation13/code/modules/client/preferences/preferences.dm +++ b/GainStation13/code/modules/client/preferences/preferences.dm @@ -17,6 +17,8 @@ var/weight_gain_nanites = FALSE //Weight gain from atmos gasses var/weight_gain_atmos = FALSE + ///content related to transformation + var/transformation = FALSE ///Blueberry Inflation var/blueberry_inflation = FALSE ///Extreme weight gain diff --git a/GainStation13/code/modules/mob/living/carbon/human/species_types/mootant.dm b/GainStation13/code/modules/mob/living/carbon/human/species_types/mootant.dm index 08d9241d20..47d90d81ec 100644 --- a/GainStation13/code/modules/mob/living/carbon/human/species_types/mootant.dm +++ b/GainStation13/code/modules/mob/living/carbon/human/species_types/mootant.dm @@ -115,17 +115,21 @@ /datum/reagent/mutationtoxin/mootant/on_mob_life(mob/living/carbon/human/H) ..() - if(!istype(H)) + if(H?.client?.prefs?.transformation) + to_chat(H, "You crumple in agony as your flesh wildly morphs into a new bovine form!") + H.visible_message("[H] falls to the ground and screams as [H.p_their()] their body turns more bovine!") + H.DefaultCombatKnockdown(60) + H.adjust_fatness(400, FATTENING_TYPE_CHEM) + H.dna.features["breasts_producing"] = TRUE + H.dna.features["mam_ears"] = "Mootant ALT (Tertiary)" + H.dna.features["mam_snouts"] = "Mootant ALT (Tertiary)" + H.dna.features["mam_tail"] = "Mootant" + H.reagents.add_reagent(/datum/reagent/fermi/breast_enlarger, 40) //instead of adding breasts as a mutant organ, let's just make them grow some + H.update_body() + addtimer(CALLBACK(src, PROC_REF(mutate), H), 30) return - to_chat(H, "You crumple in agony as your flesh wildly morphs into a new bovine form!") - H.visible_message("[H] falls to the ground and screams as [H.p_their()] their body turns more bovine!") - H.DefaultCombatKnockdown(60) - H.adjust_fatness(400, FATTENING_TYPE_CHEM) - H.dna.features["breasts_producing"] = TRUE - H.dna.features["mam_ears"] = "Mootant ALT (Tertiary)" - H.dna.features["mam_snouts"] = "Mootant ALT (Tertiary)" - H.dna.features["mam_tail"] = "Mootant" - H.reagents.add_reagent(/datum/reagent/fermi/breast_enlarger, 40) //instead of adding breasts as a mutant organ, let's just make them grow some - H.update_body() - addtimer(CALLBACK(src, PROC_REF(mutate), H), 30) - return + + if(!H?.client?.prefs?.transformation) + to_chat(H, span_warning("It seems like [H] resisted the effects of the mutation toxin.")) + return FALSE + diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index d914f07c15..4522b6cdea 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -597,5 +597,6 @@ GLOBAL_LIST_INIT(pda_reskins, list( #define FATTENING_TYPE_RADIATIONS "radiations" #define FATTENING_TYPE_WEIGHT_LOSS "weight_loss" #define FATTENING_TYPE_ALMIGHTY "almighty" //This ignores prefs, please only use this for smites and other admin controlled instances. +#define TRANSFORMATION "transformation" #define FATNESS_TO_WEIGHT_RATIO 0.25 diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 9308e8ab23..46b0f9e257 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -1426,6 +1426,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "Show that you want to be confronted:[trouble_seeker == TRUE ? "Enabled" : "Disabled"]
" dat += "Bot Feeding:[bot_feeding == TRUE ? "Enabled" : "Disabled"]
" dat += "Blueberry Inflation:[blueberry_inflation == TRUE ? "Enabled" : "Disabled"]
" + dat += "Hear Burping Noises: [(cit_toggles & BURPING_NOISES) ? "Allowed" : "Disallowed"]
" dat += "Hear Farting Noises: [(cit_toggles & FARTING_NOISES) ? "Allowed" : "Disallowed"]
" @@ -1455,6 +1456,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "

" dat += "Object TF:[object_tf == TRUE ? "Enabled" : "Disabled"]
" dat += "

" + dat += "Transformation:[transformation == TRUE ? "Enabled" : "Disabled"]
" + dat += "

" dat += "Extreme Weight Gain (Sprite Size scales with weight):[weight_gain_extreme == TRUE ? "Enabled" : "Disabled"]
" dat += "Persistent Fat (endround/cryo weight becomes your new start weight):[weight_gain_persistent == TRUE ? "Enabled" : "Disabled"]
" dat += "Permanent Weight (hard to remove and persistent weight):[weight_gain_permanent == TRUE ? "Enabled" : "Disabled"]
" @@ -3575,6 +3578,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) if("object_tf") object_tf = !object_tf + if("transformation") + transformation = !transformation if("blueberry_inflation") blueberry_inflation = !blueberry_inflation diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index 400638ebef..1b40980735 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -969,6 +969,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["extreme_fatness_vulnerable"] >> extreme_fatness_vulnerable S["object_tf"] >> object_tf S["blueberry_inflation"] >> blueberry_inflation + S["transformation"] >> transformation S["feature_breasts_fluid"] >> features["breasts_fluid"] S["feature_balls_fluid"] >> features["balls_fluid"] S["alt_titles_preferences"] >> alt_titles_preferences @@ -1271,6 +1272,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["extreme_fatness_vulnerable"], extreme_fatness_vulnerable) WRITE_FILE(S["object_tf"], object_tf) WRITE_FILE(S["blueberry_inflation"], blueberry_inflation) + WRITE_FILE(S["transformation"], transformation) WRITE_FILE(S["feature_breasts_fluid"], features["breasts_fluid"]) // records