diff --git a/GainStation13/code/mechanics/fatness.dm b/GainStation13/code/mechanics/fatness.dm index f4c761a4..411a0fe6 100644 --- a/GainStation13/code/mechanics/fatness.dm +++ b/GainStation13/code/mechanics/fatness.dm @@ -2,9 +2,9 @@ ///What level of fatness is the parent mob at? var/fatness = 0 ///At what rate does the parent mob gain weight? 1 = 100% - var/weight_gain_rate = 0.4 // IMPORTANT!!! due to complaints, I've cut the value in half as a placeholder method of nerfing WG. Set it back to 1 once an actual WG speed preference system is implemented - Lew + var/weight_gain_rate = 1 //At what rate does the parent mob lose weight? 1 = 100% - var/weight_loss_rate = 0.4 + var/weight_loss_rate = 1 /** * Adjusts the fatness level of the parent mob. diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 68f48ba8..605a3919 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -105,6 +105,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) //GS13 var/starting_weight = 0 //how thicc you wanna be at start + var/wg_rate = 0.5 + var/wl_rate = 0.5 //HS13 jobs var/sillyroles = TRUE //for clown and mime @@ -321,9 +323,14 @@ GLOBAL_LIST_EMPTY(preferences_datums) //H13 make body size compatable with the current save. if (body_size == null) body_size = 100 + +//GS13 same as higher up if (starting_weight == null) starting_weight = 0 - + if (wg_rate == null) + wg_rate = 0.5 + if (wl_rate == null) + wl_rate = 0.5 dat += "" dat += "
" @@ -477,6 +484,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) mutant_colors = TRUE //GS13 fatness dat += "Starting weight : [starting_weight]
" + dat += "Weight Gain Rate : [wg_rate]
" + dat += "Weight Loss Rate : [wl_rate]
" if((EYECOLOR in pref_species.species_traits) && !(NOEYES in pref_species.species_traits)) @@ -526,7 +535,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/mutant_category = 0 dat += APPEARANCE_CATEGORY_COLUMN - dat += "

Show mismatched markings

" + dat += "

Show mismatched markings (other racial markings)

" dat += "[show_mismatched_markings ? "Yes" : "No"]" mutant_category++ if(mutant_category >= MAX_MUTANT_ROWS) //just in case someone sets the max rows to 1 or something dumb like that @@ -1987,7 +1996,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) to_chat(user, "Invalid color. Your color is not bright enough.") if("mutant_color2") - var/new_mutantcolor = input(user, "Choose your character's secondary alien/mutant color:", "Character Preference") as color|null + var/new_mutantcolor = input(user, "Choose your character's secondary alien/mutant color:", "Character Preference","#"+features["mcolor2"]) as color|null if(new_mutantcolor) var/temp_hsv = RGBtoHSV(new_mutantcolor) if(new_mutantcolor == "#000000") @@ -2000,7 +2009,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) to_chat(user, "Invalid color. Your color is not bright enough.") if("mutant_color3") - var/new_mutantcolor = input(user, "Choose your character's tertiary alien/mutant color:", "Character Preference") as color|null + var/new_mutantcolor = input(user, "Choose your character's tertiary alien/mutant color:", "Character Preference","#"+features["mcolor3"]) as color|null if(new_mutantcolor) var/temp_hsv = RGBtoHSV(new_mutantcolor) if(new_mutantcolor == "#000000") @@ -2329,7 +2338,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) to_chat(user,"Invalid color. Your color is not bright enough.") if("belly_color") - var/new_bellycolor = input(user, "Belly Color:", "Character Preference") as color|null + var/new_bellycolor = input(user, "Belly Color:", "Character Preference", "#"+features["belly_color"]) as color|null if(new_bellycolor) var/temp_hsv = RGBtoHSV(new_bellycolor) if(new_bellycolor == "#000000") @@ -2340,7 +2349,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) to_chat(user,"Invalid color. Your color is not bright enough.") if("butt_color") - var/new_buttcolor = input(user, "Butt Color:", "Character Preference") as color|null + var/new_buttcolor = input(user, "Butt Color:", "Character Preference","#"+features["butt_color"]) as color|null if(new_buttcolor) var/temp_hsv = RGBtoHSV(new_buttcolor) if(new_buttcolor == "#000000") @@ -2419,7 +2428,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) features["breasts_fluid"] = /datum/reagent/consumable/pinkmilk if("breasts_color") - var/new_breasts_color = input(user, "Breast Color:", "Character Preference") as color|null + var/new_breasts_color = input(user, "Breast Color:", "Character Preference", "#"+features["breasts_color"]) as color|null if(new_breasts_color) var/temp_hsv = RGBtoHSV(new_breasts_color) if(new_breasts_color == "#000000") @@ -2527,10 +2536,20 @@ GLOBAL_LIST_EMPTY(preferences_datums) //GS13 fatness if("fatness") - var/new_fatness = input(user, "Choose your amount of fat at start :\n(0-4000), Fat changes appearance and move speed. \nThresholds are 170, 250, 330, 440, 840, 1240, 1840, 2540, 3440. Warning : If using the 'weak legs' trait, being too fat will make you immobile and unable to leave the shuttle without a wheelchair or help", "Character Preference") as num|null + var/new_fatness = input(user, "Choose your amount of fat at start :\n(0-8000), Fat changes appearance and move speed. \nThresholds are 170, 250, 330, 440, 840, 1240, 1840, 2540, 3440. Warning : If using the 'weak legs' trait, being too fat will make you immobile and unable to leave the shuttle without a wheelchair or help", "Character Preference") as num|null if (new_fatness) starting_weight = max(min( round(text2num(new_fatness)), 8000),0) + if("wg_rate") + var/new_wg_rate = input(user, "Choose your weight gain rate from 0.1 (10%) to 2 (200%).\n Decimals such as 0.2 indicate 20% rate.\nDefault recommended rate is 0.5 (50%)", "Character Preference", wg_rate) as num|null + if (new_wg_rate) + wg_rate = max(min(round(text2num(new_wg_rate),0.01),2),0) + + if("wl_rate") + var/new_wl_rate = input(user, "Choose your weight loss rate from 0.1 (10%) to 2 (200%).\n Decimals such as 0.2 indicate 20% rate.\nDefault recommended rate is 0.5 (50%)", "Character Preference", wl_rate) as num|null + if (new_wl_rate) + wl_rate = max(min(round(text2num(new_wl_rate),0.01),2),0) + if("ui") var/pickedui = input(user, "Choose your UI style.", "Character Preference", UI_style) as null|anything in GLOB.available_ui_styles if(pickedui) @@ -2913,7 +2932,10 @@ GLOBAL_LIST_EMPTY(preferences_datums) character.custom_body_size = body_size character.breedable = 0 + //GS13 character.fatness = starting_weight + character.weight_gain_rate = wg_rate + character.weight_loss_rate = wl_rate character.gender = gender character.age = age diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index b48c609e..edf5db99 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -153,6 +153,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["weight_gain_magic"] >> weight_gain_magic S["weight_gain_viruses"] >> weight_gain_viruses S["weight_gain_weapons"] >> weight_gain_weapons + S["wg_rate"] >> wg_rate + S["wl_rate"] >> wl_rate S["noncon_weight_gain"] >> noncon_weight_gain S["max_weight"] >> max_weight @@ -184,7 +186,11 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car if (clientfps == 0) clientfps = world.fps*2 body_size = sanitize_integer(body_size, 90, 110, 0) can_get_preg = sanitize_integer(can_get_preg, 0, 1, 0) + //GS13 starting_weight = sanitize_integer(starting_weight, 0, 2000, 0) + wg_rate = sanitize_integer(wg_rate, 0, 1, 0) + wl_rate = sanitize_integer(wl_rate, 0, 1, 0) + // parallax = sanitize_integer(parallax, PARALLAX_INSANE, PARALLAX_DISABLE, null) ambientocclusion = sanitize_integer(ambientocclusion, 0, 1, initial(ambientocclusion)) auto_fit_viewport = sanitize_integer(auto_fit_viewport, 0, 1, initial(auto_fit_viewport)) @@ -286,6 +292,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["weight_gain_viruses"], weight_gain_viruses) WRITE_FILE(S["weight_gain_chems"], weight_gain_chems) WRITE_FILE(S["weight_gain_weapons"], weight_gain_weapons) + 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["max_weight"], max_weight) @@ -330,6 +338,12 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car if(!S["features["mcolor"]"] || S["features["mcolor"]"] == "#000") WRITE_FILE(S["features["mcolor"]"] , "#FFF") + if(!S["features["mcolor2"]"] || S["features["mcolor2"]"] == "#000") + WRITE_FILE(S["features["mcolor2"]"] , "#FFF") + + if(!S["features["mcolor3"]"] || S["features["mcolor3"]"] == "#000") + WRITE_FILE(S["features["mcolor3"]"] , "#FFF") + if(!S["features["wing_color"]"] || S["features["wing_color"]"] == "#000") WRITE_FILE(S["features["wing_color"]"] , "#FFF") @@ -343,6 +357,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["age"] >> age S["body_size"] >> body_size S["starting_weight"] >> starting_weight + S["wg_rate"] >> wg_rate + S["wl_rate"] >> wl_rate S["hair_color"] >> hair_color S["facial_hair_color"] >> facial_hair_color S["eye_color"] >> eye_color @@ -421,6 +437,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["feature_mam_body_markings"] >> features["mam_body_markings"] S["body_size"] >> features["body_size"] S["starting_weight"] >> features["starting_weight"] + S["wg_rate"] >> features["wg_rate"] + S["wl_rate"] >> features["wl_rate"] S["feature_mam_tail"] >> features["mam_tail"] S["feature_mam_ears"] >> features["mam_ears"] S["feature_mam_tail_animated"] >> features["mam_tail_animated"] @@ -619,6 +637,8 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["underwear"] , underwear) WRITE_FILE(S["body_size"] , body_size) WRITE_FILE(S["starting_weight"] , starting_weight) + WRITE_FILE(S["wg_rate"] , wg_rate) + WRITE_FILE(S["wl_rate"] , wl_rate) WRITE_FILE(S["undie_color"] , undie_color) WRITE_FILE(S["undershirt"] , undershirt) WRITE_FILE(S["shirt_color"] , shirt_color)