diff --git a/code/__defines/mobs.dm b/code/__defines/mobs.dm index 95423996e98..995277fa476 100644 --- a/code/__defines/mobs.dm +++ b/code/__defines/mobs.dm @@ -122,10 +122,10 @@ #define MOB_TINY 4 #define MOB_MINISCULE 1 -#define BASE_MAX_NUTRITION 400 +#define BASE_MAX_NUTRITION 600 #define HUNGER_FACTOR 0.04 // Factor of how fast mob nutrition decreases over time. -#define BASE_MAX_HYDRATION 600 +#define BASE_MAX_HYDRATION 800 #define THIRST_FACTOR 0.02 // Factor of how fast mob hydration decreases over time. #define CREW_MINIMUM_HYDRATION BASE_MAX_HYDRATION * CREW_HYDRATION_SLIGHTLYTHIRSTY // The minimum amount of nutrition a crewmember will spawn with. @@ -135,17 +135,17 @@ #define CREW_MAXIMUM_NUTRITION BASE_MAX_NUTRITION * CREW_NUTRITION_FULL // Same as above, but maximum. //Note that all of this is relative to nutrition/max nutrition -#define CREW_NUTRITION_OVEREATEN 0.95 -#define CREW_NUTRITION_FULL 0.75 -#define CREW_NUTRITION_SLIGHTLYHUNGRY 0.5 -#define CREW_NUTRITION_HUNGRY 0.25 +#define CREW_NUTRITION_OVEREATEN 0.8 +#define CREW_NUTRITION_FULL 0.4 +#define CREW_NUTRITION_SLIGHTLYHUNGRY 0.3 +#define CREW_NUTRITION_HUNGRY 0.2 #define CREW_NUTRITION_VERYHUNGRY 0.1 #define CREW_NUTRITION_STARVING 0 //Note that all of this is relative to hydration/max hydration -#define CREW_HYDRATION_OVERHYDRATED 0.95 -#define CREW_HYDRATION_HYDRATED 0.6 -#define CREW_HYDRATION_SLIGHTLYTHIRSTY 0.4 +#define CREW_HYDRATION_OVERHYDRATED 1.01 //Overhydration can't occur. +#define CREW_HYDRATION_HYDRATED 0.4 +#define CREW_HYDRATION_SLIGHTLYTHIRSTY 0.3 #define CREW_HYDRATION_THIRSTY 0.2 #define CREW_HYDRATION_VERYTHIRSTY 0.1 #define CREW_HYDRATION_DEHYDRATED 0 diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm index c6ffffefdba..b03d12fabb4 100644 --- a/code/modules/mob/living/carbon/human/life.dm +++ b/code/modules/mob/living/carbon/human/life.dm @@ -939,7 +939,7 @@ else //heal in the dark heal_overall_damage(5,5) - // nutrition decrease + // nutrition decrease over time if(max_nutrition > 0) if (nutrition > 0 && stat != 2) adjustNutritionLoss(nutrition_loss * nutrition_attrition_rate) @@ -952,13 +952,13 @@ if(overeatduration > 1) overeatduration -= 2 //doubled the unfat rate - // hydration decrease + // hydration decrease over time if(max_hydration > 0) if (hydration > 0 && stat != 2) adjustHydrationLoss(hydration_loss * hydration_attrition_rate) if (hydration / max_hydration > CREW_HYDRATION_OVERHYDRATED) - adjustHydrationLoss(1) + adjustHydrationLoss(2) if(overdrinkduration < 600) //capped so people don't take forever to undrink overdrinkduration++ else @@ -1686,7 +1686,7 @@ if (regen > 0) stamina = min(max_stamina, stamina+regen) adjustNutritionLoss(stamina_recovery*0.09) - adjustHydrationLoss(stamina_recovery*0.18) + adjustHydrationLoss(stamina_recovery*0.32) if (client) hud_used.move_intent.update_move_icon(src) diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index 3a2cc50be68..c7aedb71475 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -111,19 +111,19 @@ var/old_y = 0 var/drowsyness = 0.0//Carbon var/charges = 0.0 - var/nutrition = 400.0//Carbon + var/nutrition = BASE_MAX_NUTRITION * CREW_NUTRITION_SLIGHTLYHUNGRY //carbon var/nutrition_loss = HUNGER_FACTOR //How much hunger is lost per tick. This is modified by species var/nutrition_attrition_rate = 1 // A multiplier for how much nutrition this specific mob loses per tick. - var/max_nutrition = 400 - - var/hydration = 400.0//Carbon + var/max_nutrition = BASE_MAX_NUTRITION + + var/hydration = BASE_MAX_HYDRATION * CREW_HYDRATION_SLIGHTLYTHIRSTY //carbon var/hydration_loss = THIRST_FACTOR //How much hunger is lost per tick. This is modified by species var/hydration_attrition_rate = 1 // A multiplier for how much hydration this specific mob loses per tick. - var/max_hydration = 400 + var/max_hydration = BASE_MAX_NUTRITION var/overeatduration = 0 // How long this guy is overeating //Carbon var/overdrinkduration = 0 // How long this guy is overdrinking //Carbon - + var/paralysis = 0.0 var/stunned = 0.0 var/weakened = 0.0 diff --git a/code/modules/organs/blood.dm b/code/modules/organs/blood.dm index e201f5bd733..ecaa1f6c460 100644 --- a/code/modules/organs/blood.dm +++ b/code/modules/organs/blood.dm @@ -120,8 +120,8 @@ var/const/BLOOD_VOLUME_SURVIVE = 122 // Without enough blood you slowly go hungry and thirsty if(blood_volume <= BLOOD_VOLUME_SAFE) - adjustNutritionLoss(get_nutrition_mul(1,5)) - adjustHydrationLoss(get_hydration_mul(1,13)) + adjustNutritionLoss(7) + adjustHydrationLoss(3) //Bleeding out var/blood_max = 0 diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm index 9cc45d2946c..3c96dec5e3c 100644 --- a/code/modules/reagents/reagent_containers/food/snacks.dm +++ b/code/modules/reagents/reagent_containers/food/snacks.dm @@ -103,14 +103,17 @@ var/expected_fullness = user.max_nutrition > 0 ? (user.nutrition + (user.reagents.get_reagent_amount("nutriment") * 25)) / user.max_nutrition : CREW_NUTRITION_OVEREATEN + 0.01 expected_fullness += (user.overeatduration/600)*0.5 - var/is_full = (expected_fullness > CREW_NUTRITION_OVEREATEN) + var/is_full = (expected_fullness >= 1) if(user == target) if(!user.can_eat(src)) return var/feedback_message - if(expected_fullness <= CREW_NUTRITION_VERYHUNGRY) + + if(is_full) + feedback_message = "You cannot force any more of \the [src] to go down your throat!" + else if(expected_fullness <= CREW_NUTRITION_VERYHUNGRY) feedback_message = "You hungrily chew out a piece of \the [src] and gobble it!" else if(expected_fullness <= CREW_NUTRITION_HUNGRY) feedback_message = "You hungrily begin to eat \the [src]." @@ -120,8 +123,7 @@ feedback_message = "You take a bite of \the [src]." else if(expected_fullness <= CREW_NUTRITION_OVEREATEN) feedback_message = "You unwillingly chew a bit of \the [src]." - else - feedback_message = "You cannot force any more of \the [src] to go down your throat!" + if(is_full) to_chat(user,span("danger",feedback_message)) diff --git a/html/changelogs/burgerbb-thirsthungerchanges.yml b/html/changelogs/burgerbb-thirsthungerchanges.yml new file mode 100644 index 00000000000..9f8b3a01d36 --- /dev/null +++ b/html/changelogs/burgerbb-thirsthungerchanges.yml @@ -0,0 +1,39 @@ +################################ +# Example Changelog File +# +# Note: This file, and files beginning with ".", and files that don't end in ".yml" will not be read. If you change this file, you will look really dumb. +# +# Your changelog will be merged with a master changelog. (New stuff added only, and only on the date entry for the day it was merged.) +# When it is, any changes listed below will disappear. +# +# Valid Prefixes: +# bugfix +# wip (For works in progress) +# tweak +# soundadd +# sounddel +# rscadd (general adding of nice things) +# rscdel (general deleting of nice things) +# imageadd +# imagedel +# maptweak +# spellcheck (typo fixes) +# experiment +# balance +################################# + +# Your name. +author: BurgerBB + +# Optional: Remove this file after generating master changelog. Useful for PR changelogs that won't get used again. +delete-after: True + +# Any changes you've made. See valid prefix list above. +# INDENT WITH TWO SPACES. NOT TABS. SPACES. +# SCREW THIS UP AND IT WON'T WORK. +# Also, all entries are changed into a single [] after a master changelog generation. Just remove the brackets when you add new entries. +# Please surround your changes in double quotes ("), as certain characters otherwise screws up compiling. The quotes will not show up in the changelog. +changes: + - balance: "Increased maximum hunger pool from 600 to 800. Nutrition reduction from blood loss significantly reduced." + - balance: "Removed overhydration and overhydration penalties. Increased ydration loss from stamina regen. Hydration reduction from blood loss significantly reduced." + - bugfix: "You can now stuff your face with food and become chubby again."