From 3c4ff0279cb231fccb9875dfc21b014dbfaed1d4 Mon Sep 17 00:00:00 2001
From: silicons <2003111+silicons@users.noreply.github.com>
Date: Tue, 19 Nov 2024 08:01:51 -0800
Subject: [PATCH] removes weight gain/loss mechanics (#6863)
never really used on citrp and has confused people more than it's added
to any semblance of RP.
in the future, weight will be replaced with a descriptor system.
---
code/modules/mob/living/carbon/human/life.dm | 9 ------
.../preference_setup/vore/02_size.dm | 30 -------------------
code/modules/vore/eating/living_vr.dm | 3 --
code/modules/vore/persist/persist_vr.dm | 23 --------------
.../vore/weight/fitness_machines_vr.dm | 5 ----
5 files changed, 70 deletions(-)
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index 6c1ffe20ab4..ed3e49e5a8f 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -89,7 +89,6 @@
//No need to update all of these procs if the guy is dead.
if(stat != DEAD && !stasis)
stabilize_body_temperature(seconds) //Body temperature adjusts itself (self-regulation)
- weightgain()
process_weaver_silk()
handle_shock()
handle_pain()
@@ -1869,14 +1868,6 @@
else
bodytemperature += (BODYTEMP_HEATING_MAX + (fire_stacks * 15)) * (1-thermal_protection)
-/mob/living/carbon/human/proc/weightgain()
- if (nutrition >= 0 && stat != 2)
- if (nutrition > MIN_NUTRITION_TO_GAIN && weight < MAX_MOB_WEIGHT && weight_gain)
- weight += species.metabolism*(0.01*weight_gain)
-
- else if (nutrition <= MAX_NUTRITION_TO_LOSE && stat != 2 && weight > MIN_MOB_WEIGHT && weight_loss)
- weight -= species.metabolism*(0.01*weight_loss) // starvation weight loss
-
//Our call for the NIF to do whatever
/mob/living/carbon/human/proc/handle_nif()
//Process regular life stuff
diff --git a/code/modules/preferences/preference_setup/vore/02_size.dm b/code/modules/preferences/preference_setup/vore/02_size.dm
index 73fd8baf8b9..7a260af4ef7 100644
--- a/code/modules/preferences/preference_setup/vore/02_size.dm
+++ b/code/modules/preferences/preference_setup/vore/02_size.dm
@@ -9,8 +9,6 @@
var/size_multiplier = RESIZE_NORMAL
// Body weight stuff.
var/weight_vr = 137 // bodyweight of character (pounds, because I'm not doing the math again -Spades)
- var/weight_gain = 100 // Weight gain rate.
- var/weight_loss = 50 // Weight loss rate.
var/fuzzy = 0 // Preference toggle for sharp/fuzzy icon. Default sharp.
// Definition of the stuff for Sizing
@@ -21,21 +19,15 @@
/datum/category_item/player_setup_item/vore/size/load_character(var/savefile/S)
S["size_multiplier"] >> pref.size_multiplier
S["weight_vr"] >> pref.weight_vr
- S["weight_gain"] >> pref.weight_gain
- S["weight_loss"] >> pref.weight_loss
S["fuzzy"] >> pref.fuzzy
/datum/category_item/player_setup_item/vore/size/save_character(var/savefile/S)
S["size_multiplier"] << pref.size_multiplier
S["weight_vr"] << pref.weight_vr
- S["weight_gain"] << pref.weight_gain
- S["weight_loss"] << pref.weight_loss
S["fuzzy"] << pref.fuzzy
/datum/category_item/player_setup_item/vore/size/sanitize_character()
pref.weight_vr = isnum(pref.weight_vr) ? round(clamp(pref.weight_vr, WEIGHT_MIN, WEIGHT_MAX)) : initial(pref.weight_vr)
- pref.weight_gain = sanitize_integer(pref.weight_gain, WEIGHT_CHANGE_MIN, WEIGHT_CHANGE_MAX, initial(pref.weight_gain))
- pref.weight_loss = sanitize_integer(pref.weight_loss, WEIGHT_CHANGE_MIN, WEIGHT_CHANGE_MAX, initial(pref.weight_loss))
pref.fuzzy = sanitize_integer(pref.fuzzy, 0, 1, initial(pref.fuzzy))
if(pref.size_multiplier == null || pref.size_multiplier < RESIZE_TINY || pref.size_multiplier > RESIZE_HUGE)
pref.size_multiplier = initial(pref.size_multiplier)
@@ -46,8 +38,6 @@
return TRUE
var/mob/living/carbon/human/character = M
character.weight = pref.weight_vr
- character.weight_gain = pref.weight_gain
- character.weight_loss = pref.weight_loss
character.fuzzy = pref.fuzzy
character.resize(pref.size_multiplier, animate = FALSE)
return TRUE
@@ -58,8 +48,6 @@
. += "Scaled Appearance: [pref.fuzzy ? "Fuzzy" : "Sharp"]
"
. += "
"
. += "Relative Weight: [pref.weight_vr]
"
- . += "Weight Gain Rate: [pref.weight_gain]
"
- . += "Weight Loss Rate: [pref.weight_loss]
"
/datum/category_item/player_setup_item/vore/size/OnTopic(var/href, var/list/href_list, var/mob/user)
if(href_list["size_multiplier"])
@@ -91,22 +79,4 @@
pref.weight_vr = sanitize_integer(new_weight, WEIGHT_MIN, WEIGHT_MAX, pref.weight_vr)
return PREFERENCES_REFRESH
- else if(href_list["weight_gain"])
- var/weight_gain_rate = input(user, "Choose your character's rate of weight gain between 100% \
- (full realism body fat gain) and 0% (no body fat gain).\n\
- (If you want to disable weight gain, set this to 0.01 to round it to 0%.)\
- ([WEIGHT_CHANGE_MIN]-[WEIGHT_CHANGE_MAX])", "Character Preference") as num|null
- if(weight_gain_rate)
- pref.weight_gain = round(text2num(weight_gain_rate),1)
- return PREFERENCES_REFRESH
-
- else if(href_list["weight_loss"])
- var/weight_loss_rate = input(user, "Choose your character's rate of weight loss between 100% \
- (full realism body fat loss) and 0% (no body fat loss).\n\
- (If you want to disable weight loss, set this to 0.01 round it to 0%.)\
- ([WEIGHT_CHANGE_MIN]-[WEIGHT_CHANGE_MAX])", "Character Preference") as num|null
- if(weight_loss_rate)
- pref.weight_loss = round(text2num(weight_loss_rate),1)
- return PREFERENCES_REFRESH
-
return ..();
diff --git a/code/modules/vore/eating/living_vr.dm b/code/modules/vore/eating/living_vr.dm
index 09f70bcacd6..fe443415d1e 100644
--- a/code/modules/vore/eating/living_vr.dm
+++ b/code/modules/vore/eating/living_vr.dm
@@ -9,12 +9,9 @@
var/list/vore_organs = list() // List of vore containers inside a mob
var/absorbed = FALSE // If a mob is absorbed into another
var/weight = 137 // Weight for mobs for weightgain system
- var/weight_gain = 1 // How fast you gain weight
- var/weight_loss = 0.5 // How fast you lose weight
var/vore_egg_type = "egg" // Default egg type.
var/feral = 0 // How feral the mob is, if at all. Does nothing for non xenochimera at the moment.
var/revive_ready = REVIVING_READY // Only used for creatures that have the xenochimera regen ability, so far.
- var/metabolism = 0.0015
var/vore_taste = null // What the character tastes like
var/vore_smell = null // What the character smells like
var/no_vore = FALSE // If the character/mob can vore.
diff --git a/code/modules/vore/persist/persist_vr.dm b/code/modules/vore/persist/persist_vr.dm
index ce3723eeeb0..986db04c282 100644
--- a/code/modules/vore/persist/persist_vr.dm
+++ b/code/modules/vore/persist/persist_vr.dm
@@ -100,7 +100,6 @@
if(prefs.persistence_settings & PERSIST_MARKINGS)
apply_markings_to_prefs(H, prefs)
if(prefs.persistence_settings & PERSIST_WEIGHT)
- resolve_excess_nutrition(H)
prefs.weight_vr = H.weight
if(prefs.persistence_settings & PERSIST_SIZE)
prefs.size_multiplier = H.size_multiplier
@@ -163,28 +162,6 @@
new_body_markings[mark_datum.id] = mark_color
prefs.body_marking_ids = new_body_markings // Overwrite with new list!
-/**
-* Resolve any surplus/deficit in nutrition's effet on weight all at once.
-* Normally this would slowly apply during the round; once we get to the end
-* we need to apply it all at once.
-*/
-/proc/resolve_excess_nutrition(var/mob/living/carbon/C)
- if(C.stat == DEAD)
- return // You don't metabolize if dead
- if(!C.metabolism || !C.species || !C.species.hunger_factor)
- return // You don't metabolize if you have no metabolism or your species doesn't eat!
- // Each Life() tick, you gain/lose weight proportional to your metabolism, and lose species.hunger_factor nutrition
- var/weight_per_nutrition = C.metabolism / C.species.hunger_factor
-
- if(C.nutrition > MIN_NUTRITION_TO_GAIN && C.weight < MAX_MOB_WEIGHT && C.weight_gain)
- // Weight Gain!
- var/gain = (C.nutrition - MIN_NUTRITION_TO_GAIN) * weight_per_nutrition * C.weight_gain/100
- C.weight = min(MAX_MOB_WEIGHT, C.weight + gain)
- else if(C.nutrition <= MAX_NUTRITION_TO_LOSE && C.weight > MIN_MOB_WEIGHT && C.weight_loss)
- // Weight Loss!
- var/loss = (MAX_NUTRITION_TO_LOSE - C.nutrition) * weight_per_nutrition * C.weight_loss/100
- C.weight = max(MIN_MOB_WEIGHT, C.weight - loss)
-
/**
* Persist any NIF data that needs to be persisted. It's stored in a list to make it more malleable
* towards future shenanigans such as upgradable NIFs or different types or things of that nature,
diff --git a/code/modules/vore/weight/fitness_machines_vr.dm b/code/modules/vore/weight/fitness_machines_vr.dm
index 5e27217d991..c3234bf1e22 100644
--- a/code/modules/vore/weight/fitness_machines_vr.dm
+++ b/code/modules/vore/weight/fitness_machines_vr.dm
@@ -20,14 +20,9 @@
return
if(L.nutrition < 70)
to_chat(L, "You need more energy to workout with the [src]!")
-
- else if(L.weight < 70)
- to_chat(L, "You're too skinny to risk losing any more weight!")
-
else //If they have enough nutrition and body weight, they can exercise.
L.setClickCooldown(cooldown)
L.nutrition -= 10 * weightloss_power
- L.weight -= 0.025 * weightloss_power * (0.01*L.weight_loss)
flick("[icon_state]2",src)
var/message = pick(messages)
to_chat(L, "[message].")