The last of the hydration/hunger fixes. (#5396)

* Added

* more changes

* oops
This commit is contained in:
BurgerLUA
2018-10-10 14:17:32 -07:00
committed by Werner
parent c0480946e4
commit fe136b58ac
9 changed files with 70 additions and 13 deletions

View File

@@ -123,16 +123,16 @@
#define MOB_MINISCULE 1
#define BASE_MAX_NUTRITION 400
#define HUNGER_FACTOR 0.025 // Factor of how fast mob nutrition decreases. Moved here from chemistry define
#define HUNGER_FACTOR 0.04 // Factor of how fast mob nutrition decreases over time.
#define BASE_MAX_HYDRATION 600
#define THIRST_FACTOR 0.05 // Factor of how fast mob hydration decreases. Moved here from chemistry define
#define THIRST_FACTOR 0.02 // Factor of how fast mob hydration decreases over time.
#define CREW_MINIMUM_HYDRATION 50 // The minimum amount of nutrition a crewmember will spawn with.
#define CREW_MAXIMUM_HYDRATION 100 // Same as above, but maximum.
#define CREW_MINIMUM_HYDRATION BASE_MAX_HYDRATION * CREW_HYDRATION_SLIGHTLYTHIRSTY // The minimum amount of nutrition a crewmember will spawn with.
#define CREW_MAXIMUM_HYDRATION BASE_MAX_HYDRATION * CREW_HYDRATION_HYDRATED // Same as above, but maximum.
#define CREW_MINIMUM_NUTRITION 50 // The minimum amount of nutrition a crewmember will spawn with.
#define CREW_MAXIMUM_NUTRITION 100 // Same as above, but maximum.
#define CREW_MINIMUM_NUTRITION BASE_MAX_NUTRITION * CREW_NUTRITION_SLIGHTLYHUNGRY // The minimum amount of nutrition a crewmember will spawn with.
#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

View File

@@ -34,8 +34,8 @@
/mob/living/carbon/Move(NewLoc, direct)
. = ..()
if(.)
if(.)
if(src.stat != 2)
if(src.nutrition)
adjustNutritionLoss(nutrition_loss*0.1)

View File

@@ -1685,7 +1685,7 @@
var/regen = stamina_recovery * (1 - min(((oxyloss) / exhaust_threshold) + ((halloss) / exhaust_threshold), 1))
if (regen > 0)
stamina = min(max_stamina, stamina+regen)
adjustNutritionLoss(stamina_recovery*0.9)
adjustNutritionLoss(stamina_recovery*0.09)
adjustHydrationLoss(stamina_recovery*0.18)
if (client)
hud_used.move_intent.update_move_icon(src)

View File

@@ -55,6 +55,7 @@
equip_slots |= slot_legcuffed
/datum/hud_data/diona
has_hydration = 0
has_internals = 0
gear = list(
"i_clothing" = list("loc" = ui_iclothing, "name" = "Uniform", "slot" = slot_w_uniform, "state" = "center", "toggle" = 1),

View File

@@ -335,6 +335,8 @@
sprint_cost_factor = 0.8
climb_coeff = 1.3
max_hydration_factor = -1
/datum/species/diona/handle_sprint_cost(var/mob/living/carbon/H, var/cost)
var/datum/dionastats/DS = H.get_dionastats()

View File

@@ -1237,7 +1237,8 @@ proc/is_blind(A)
return TRUE
/mob/proc/adjustHydrationLoss(var/amount)
if(max_nutrition <= 0)
if(max_hydration <= 0)
return FALSE
hydration = max(0,min(max_hydration,hydration - amount))

View File

@@ -117,6 +117,8 @@
glass_name = "glass of coder fuckups"
glass_desc = "A glass of distilled maintainer tears."
var/blood_to_ingest_scale = 2
/datum/reagent/alcohol/Destroy()
if (caffeine_mod)
QDEL_NULL(caffeine_mod)
@@ -128,8 +130,8 @@
L.adjust_fire_stacks((amount / (flammability_divisor || 1)) * (strength / 100))
/datum/reagent/alcohol/affect_blood(mob/living/carbon/M, alien, removed)
M.adjustToxLoss(removed * 2)
affect_ingest(M,alien,removed * 2)
M.adjustToxLoss(removed * blood_to_ingest_scale * (strength/100) )
affect_ingest(M,alien,removed * blood_to_ingest_scale)
return
/datum/reagent/alcohol/affect_ingest(mob/living/carbon/M, alien, removed)

View File

@@ -701,6 +701,7 @@
var/caffeine = 0 // strength of stimulant effect, since so many drinks use it
var/datum/modifier/modifier = null
unaffected_species = IS_MACHINE
var/blood_to_ingest_scale = 2
/datum/reagent/drink/Destroy()
if (modifier)
@@ -708,8 +709,8 @@
return ..()
/datum/reagent/drink/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
M.adjustToxLoss(removed) // Probably not a good idea; not very deadly though
digest(M,alien,removed * 2, FALSE)
M.adjustToxLoss(removed * blood_to_ingest_scale) // Probably not a good idea; not very deadly though
digest(M,alien,removed * blood_to_ingest_scale, FALSE)
/datum/reagent/drink/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
digest(M,alien,removed)
@@ -1434,6 +1435,8 @@
glass_desc = "A healthy mixture of juices, guaranteed to keep you healthy until the next toolboxing takes place."
glass_center_of_mass = list("x"=16, "y"=8)
blood_to_ingest_scale = 1
/datum/reagent/drink/doctor_delight/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
..()
if(alien != IS_DIONA)
@@ -1450,6 +1453,7 @@
description = "Space age food, since August 25, 1958. Contains dried noodles, vegetables, and chemicals that boil in contact with water."
reagent_state = SOLID
nutrition = 1
hydration = 0
color = "#302000"
taste_description = "dry and cheap noodles"
@@ -1460,6 +1464,7 @@
reagent_state = LIQUID
color = "#302000"
nutrition = 5
hydration = 5
adj_temp = 5
taste_description = "wet and cheap noodles"
@@ -1470,6 +1475,7 @@
reagent_state = LIQUID
color = "#302000"
nutrition = 5
hydration = 5
taste_description = "wet and cheap noodles on fire"
/datum/reagent/drink/hell_ramen/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
@@ -1485,6 +1491,7 @@
adj_temp = -5
taste_description = "ice"
taste_mult = 1.5
hydration = 8
glass_icon_state = "iceglass"
glass_name = "glass of ice"
@@ -2463,6 +2470,9 @@
glass_desc = "A drink that is guaranteed to knock you silly."
glass_center_of_mass = list("x"=16, "y"=8)
blood_to_ingest_scale = 1
metabolism = REM * 5
/datum/reagent/alcohol/ethanol/neurotoxin/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
..()
if(alien != IS_DIONA)