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)