diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index c5a2f65a..c7284dc4 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -250,7 +250,8 @@ #define POCKET_STRIP_DELAY 40 //time taken (in deciseconds) to search somebody's pockets #define DOOR_CRUSH_DAMAGE 15 //the amount of damage that airlocks deal when they crush you -#define HUNGER_FACTOR 0.1 //factor at which mob nutrition decreases +#define HUNGER_FACTOR 0.08 //factor at which mob nutrition decreases +#define THIRST_FACTOR 0.08 //factor at which mob thirst decreases #define REAGENTS_METABOLISM 0.4 //How many units of reagent are consumed per tick, by default. #define REAGENTS_EFFECT_MULTIPLIER (REAGENTS_METABOLISM / 0.4) // By defining the effect multiplier this way, it'll exactly adjust all effects according to how they originally were with the 0.4 metabolism diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm index f2f52a63..c9e10ea5 100644 --- a/code/__DEFINES/traits.dm +++ b/code/__DEFINES/traits.dm @@ -94,6 +94,7 @@ #define TRAIT_NOFIRE "nonflammable" #define TRAIT_NOGUNS "no_guns" #define TRAIT_NOHUNGER "no_hunger" +#define TRAIT_NOTHIRST "no_thirst" #define TRAIT_EASYDISMEMBER "easy_dismember" #define TRAIT_LIMBATTACHMENT "limb_attach" #define TRAIT_NOLIMBDISABLE "no_limb_disable" diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index 7c135d7b..c0fb234c 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -162,11 +162,21 @@ desc = "Some food would be good right about now." icon_state = "hungry" +/obj/screen/alert/thirsty + name = "Thristy" + desc = "Some water would be good right about now." + icon_state = "thirsty" + /obj/screen/alert/starving name = "Starving" desc = "You're severely malnourished. The hunger pains make moving around a chore." icon_state = "starving" +/obj/screen/alert/dehydrated + name = "Dehydrated" + desc = "You're severely dehydrated." + icon_state = "dehydrated" + /obj/screen/alert/gross name = "Grossed out." desc = "That was kind of gross..." diff --git a/code/datums/components/mood.dm b/code/datums/components/mood.dm index 375277ee..21a3c37c 100644 --- a/code/datums/components/mood.dm +++ b/code/datums/components/mood.dm @@ -161,6 +161,7 @@ holdmyinsanityeffect = insanity_effect HandleNutrition(owner) + HandleThirst(owner) /datum/component/mood/proc/setSanity(amount, minimum=SANITY_INSANE, maximum=SANITY_NEUTRAL)//I'm sure bunging this in here will have no negative repercussions. var/mob/living/master = parent @@ -289,7 +290,6 @@ /datum/component/mood/proc/hud_click(datum/source, location, control, params, mob/user) print_mood(user) - /datum/component/mood/proc/HandleNutrition(mob/living/L) switch(L.nutrition) if(NUTRITION_LEVEL_FULL to INFINITY) @@ -305,5 +305,14 @@ if(0 to NUTRITION_LEVEL_STARVING) add_event(null, "nutrition", /datum/mood_event/starving) +/datum/component/mood/proc/HandleThirst(mob/living/L) + switch(L.thirst) + if(NUTRITION_LEVEL_HUNGRY to INFINITY) + clear_event(null, "thirst") + if(NUTRITION_LEVEL_STARVING to NUTRITION_LEVEL_HUNGRY) + add_event(null, "thirst", /datum/mood_event/thirsty) + if(0 to NUTRITION_LEVEL_STARVING) + add_event(null, "thirst", /datum/mood_event/dehydrated) + #undef MINOR_INSANITY_PEN #undef MAJOR_INSANITY_PEN diff --git a/code/datums/mood_events/needs_events.dm b/code/datums/mood_events/needs_events.dm index 962681eb..d9564d73 100644 --- a/code/datums/mood_events/needs_events.dm +++ b/code/datums/mood_events/needs_events.dm @@ -19,6 +19,14 @@ description = "I'm starving!\n" mood_change = -15 +/datum/mood_event/thirsty + description = "I'm getting a bit thirsty.\n" + mood_change = -8 + +/datum/mood_event/dehydrated + description = "I'm dehydrated!\n" + mood_change = -15 + //Disgust /datum/mood_event/gross description = "I saw something gross.\n" diff --git a/code/modules/mob/living/blood.dm b/code/modules/mob/living/blood.dm index 968df0c0..4b04639b 100644 --- a/code/modules/mob/living/blood.dm +++ b/code/modules/mob/living/blood.dm @@ -35,7 +35,7 @@ if(bleed_rate < 0) bleed_rate = 0 - + if(HAS_TRAIT(src, TRAIT_NOMARROW)) //Bloodsuckers don't need to be here. return @@ -44,6 +44,7 @@ //Blood regeneration if there is some space if(blood_volume < (BLOOD_VOLUME_NORMAL * blood_ratio) && !HAS_TRAIT(src, TRAIT_NOHUNGER)) var/nutrition_ratio = 0 + var/thirst_ratio = 1 switch(nutrition) if(0 to NUTRITION_LEVEL_STARVING) nutrition_ratio = 0.2 @@ -60,6 +61,7 @@ if(satiety > 80) nutrition_ratio *= 1.25 nutrition = max(0, nutrition - nutrition_ratio * HUNGER_FACTOR) + thirst = max(0, thirst - thirst_ratio * THIRST_FACTOR) blood_volume = min((BLOOD_VOLUME_NORMAL * blood_ratio), blood_volume + 0.5 * nutrition_ratio) //Effects of bloodloss diff --git a/code/modules/mob/living/carbon/carbon_movement.dm b/code/modules/mob/living/carbon/carbon_movement.dm index 8e6c888c..7d3c22b6 100644 --- a/code/modules/mob/living/carbon/carbon_movement.dm +++ b/code/modules/mob/living/carbon/carbon_movement.dm @@ -40,6 +40,8 @@ if(HAS_TRAIT(src, TRAIT_NOHUNGER)) nutrition = NUTRITION_LEVEL_FED - 1 //just less than feeling vigorous else if(nutrition && stat != DEAD) - nutrition -= HUNGER_FACTOR/10 + nutrition -= HUNGER_FACTOR/3 + thirst -= THIRST_FACTOR/5 if(m_intent == MOVE_INTENT_RUN) - nutrition -= HUNGER_FACTOR/10 + nutrition -= HUNGER_FACTOR/5 + thirst -= THIRST_FACTOR/10 //running around depleats thirst more so. \ No newline at end of file diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 100e9f43..b8b62a8b 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -100,6 +100,7 @@ stat("Unique Identity:", "[dna.unique_enzymes]") stat("Overall Status:", "[stat > 1 ? "dead" : "[health]% healthy"]") stat("Nutrition Status:", "[nutrition]") + stat("Hydration Status:", "[thirst]") stat("Oxygen Loss:", "[getOxyLoss()]") stat("Toxin Levels:", "[getToxLoss()]") stat("Burn Severity:", "[getFireLoss()]") diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index 7126a794..643161bd 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -1243,6 +1243,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) if (H.nutrition > 0 && H.stat != DEAD && !HAS_TRAIT(H, TRAIT_NOHUNGER)) // THEY HUNGER var/hunger_rate = HUNGER_FACTOR + var/thirst_rate = THIRST_FACTOR var/datum/component/mood/mood = H.GetComponent(/datum/component/mood) if(mood && mood.sanity > SANITY_DISTURBED) hunger_rate *= max(0.5, 1 - 0.002 * mood.sanity) //0.85 to 0.75 @@ -1261,6 +1262,7 @@ GLOBAL_LIST_EMPTY(roundstart_races) hunger_rate = 3 * HUNGER_FACTOR hunger_rate *= H.physiology.hunger_mod H.nutrition = max(0, H.nutrition - hunger_rate) + H.thirst = max(0, H.thirst - thirst_rate) if (H.nutrition > NUTRITION_LEVEL_FULL) @@ -1296,6 +1298,14 @@ GLOBAL_LIST_EMPTY(roundstart_races) if(0 to NUTRITION_LEVEL_STARVING) H.throw_alert("nutrition", /obj/screen/alert/starving) + switch(H.thirst) + if(NUTRITION_LEVEL_HUNGRY to INFINITY) + H.clear_alert("thirst") + if(NUTRITION_LEVEL_STARVING to NUTRITION_LEVEL_HUNGRY) + H.throw_alert("thirst", /obj/screen/alert/thirsty) + if(0 to NUTRITION_LEVEL_STARVING) + H.throw_alert("thirst", /obj/screen/alert/dehydrated) + /datum/species/proc/update_health_hud(mob/living/carbon/human/H) return 0 diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm index a5edbb0d..9c07bffc 100644 --- a/code/modules/mob/mob_defines.dm +++ b/code/modules/mob/mob_defines.dm @@ -57,6 +57,7 @@ var/dizziness = 0//Carbon var/jitteriness = 0//Carbon var/nutrition = NUTRITION_LEVEL_START_MIN // randomised in Initialize + var/thirst = NUTRITION_LEVEL_START_MIN // randomised in Initialize var/satiety = 0//Carbon var/overeatduration = 0 // How long this guy is overeating //Carbon diff --git a/code/modules/mob/mob_helpers.dm b/code/modules/mob/mob_helpers.dm index 91f68cd3..540c9431 100644 --- a/code/modules/mob/mob_helpers.dm +++ b/code/modules/mob/mob_helpers.dm @@ -528,3 +528,12 @@ It's fairly easy to fix if dealing with single letters but not so much with comp //Can the mob see reagents inside of containers? /mob/proc/can_see_reagents() return stat == DEAD || has_unlimited_silicon_privilege //Dead guys and silicons can always see reagents + +/mob/proc/can_read(obj/O) + if(is_blind()) + to_chat(src, "As you are trying to read [O], you suddenly feel very stupid!") + return + if(!is_literate()) + to_chat(src, "You try to read [O], but can't comprehend any of it.") + return + return TRUE diff --git a/code/modules/reagents/chemistry/reagents.dm b/code/modules/reagents/chemistry/reagents.dm index 4aabd82d..61d32c29 100644 --- a/code/modules/reagents/chemistry/reagents.dm +++ b/code/modules/reagents/chemistry/reagents.dm @@ -53,6 +53,9 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent()) var/chemical_flags // See fermi/readme.dm REAGENT_DEAD_PROCESS, REAGENT_DONOTSPLIT, REAGENT_ONLYINVERSE, REAGENT_ONMOBMERGE, REAGENT_INVISIBLE, REAGENT_FORCEONNEW, REAGENT_SNEAKYNAME var/value = 0 //How much does it sell for in cargo? + //hyperstation + var/hydration = 0 //does this hydrate your thirst? + /datum/reagent/Destroy() // This should only be called by the holder, so it's already handled clearing its references . = ..() holder = null diff --git a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm index a9f9bb48..32e97f0a 100644 --- a/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/alcohol_reagents.dm @@ -14,6 +14,7 @@ taste_description = "alcohol" var/boozepwr = 65 //Higher numbers equal higher hardness, higher hardness equals more intense alcohol poisoning pH = 7.33 + hydration = 1 * REAGENTS_METABOLISM /* Boozepwr Chart diff --git a/code/modules/reagents/chemistry/reagents/drink_reagents.dm b/code/modules/reagents/chemistry/reagents/drink_reagents.dm index 9d401a33..0789df9f 100644 --- a/code/modules/reagents/chemistry/reagents/drink_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/drink_reagents.dm @@ -3,6 +3,8 @@ ///////////////////////////////////////////////////////////////////////////////////////////////////////// /////////////////////// DRINKS BELOW, Beer is up there though, along with cola. Cap'n Pete's Cuban Spiced Rum//////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////// +/datum/reagent/water/ + hydration = 10 * REAGENTS_METABOLISM /datum/reagent/consumable/orangejuice name = "Orange Juice" @@ -12,6 +14,7 @@ glass_icon_state = "glass_orange" glass_name = "glass of orange juice" glass_desc = "Vitamins! Yay!" + hydration = 4 * REAGENTS_METABOLISM pH = 3.3 /datum/reagent/consumable/orangejuice/on_mob_life(mob/living/carbon/M) @@ -28,6 +31,7 @@ glass_icon_state = "glass_red" glass_name = "glass of tomato juice" glass_desc = "Are you sure this is tomato juice?" + hydration = 4 * REAGENTS_METABOLISM /datum/reagent/consumable/tomatojuice/on_mob_life(mob/living/carbon/M) if(M.getFireLoss() && prob(20)) @@ -44,6 +48,7 @@ glass_name = "glass of lime juice" glass_desc = "A glass of sweet-sour lime juice." pH = 2.2 + hydration = 3 * REAGENTS_METABOLISM /datum/reagent/consumable/limejuice/on_mob_life(mob/living/carbon/M) if(M.getToxLoss() && prob(20)) @@ -59,6 +64,7 @@ glass_icon_state = "carrotjuice" glass_name = "glass of carrot juice" glass_desc = "It's just like a carrot but without crunching." + hydration = 4 * REAGENTS_METABOLISM /datum/reagent/consumable/carrotjuice/on_mob_life(mob/living/carbon/M) M.adjust_blurriness(-1) @@ -80,6 +86,7 @@ glass_icon_state = "berryjuice" glass_name = "glass of berry juice" glass_desc = "Berry juice. Or maybe it's jam. Who cares?" + hydration = 4 * REAGENTS_METABOLISM /datum/reagent/consumable/applejuice name = "Apple Juice" @@ -87,6 +94,7 @@ color = "#ECFF56" // rgb: 236, 255, 86 taste_description = "apples" pH = 3.2 // ~ 2.7 -> 3.7 + hydration = 4 * REAGENTS_METABOLISM /datum/reagent/consumable/poisonberryjuice name = "Poison Berry Juice" @@ -96,6 +104,7 @@ glass_icon_state = "poisonberryjuice" glass_name = "glass of berry juice" glass_desc = "Berry juice. Or maybe it's poison. Who cares?" + hydration = 2 * REAGENTS_METABOLISM /datum/reagent/consumable/poisonberryjuice/on_mob_life(mob/living/carbon/M) M.adjustToxLoss(1, 0) @@ -110,6 +119,7 @@ glass_icon_state = "glass_red" glass_name = "glass of watermelon juice" glass_desc = "A glass of watermelon juice." + hydration = 4 * REAGENTS_METABOLISM /datum/reagent/consumable/lemonjuice name = "Lemon Juice" @@ -120,6 +130,7 @@ glass_name = "glass of lemon juice" glass_desc = "Sour..." pH = 2 + hydration = 4 * REAGENTS_METABOLISM /datum/reagent/consumable/strawberryjuice name = "Strawberry Juice" @@ -128,6 +139,7 @@ taste_description = "strawberry" glass_name = "glass of strawberry juice" glass_desc = "Refreshing seasonal summer drink." + hydration = 4 * REAGENTS_METABOLISM /datum/reagent/consumable/banana name = "Banana Juice" @@ -137,6 +149,7 @@ glass_icon_state = "banana" glass_name = "glass of banana juice" glass_desc = "The raw essence of a banana. HONK." + hydration = 1 * REAGENTS_METABOLISM /datum/reagent/consumable/banana/on_mob_life(mob/living/carbon/M) if((ishuman(M) && M.job == "Clown") || ismonkey(M)) @@ -200,6 +213,7 @@ description = "The juice of a bunch of grapes. Guaranteed non-alcoholic." color = "#290029" // dark purple taste_description = "grape soda" + hydration = 2 * REAGENTS_METABOLISM /datum/reagent/consumable/milk name = "Milk" @@ -210,6 +224,7 @@ glass_name = "milk drum" glass_desc = "White and nutritious goodness!" pH = 6.5 + hydration = 2 * REAGENTS_METABOLISM /datum/reagent/consumable/milk/on_mob_life(mob/living/carbon/M) if(HAS_TRAIT(M, TRAIT_CALCIUM_HEALER)) @@ -231,6 +246,7 @@ glass_icon_state = "glass_white" glass_name = "glass of soy milk" glass_desc = "White and nutritious soy goodness!" + hydration = 2 * REAGENTS_METABOLISM /datum/reagent/consumable/soymilk/on_mob_life(mob/living/carbon/M) if(M.getBruteLoss() && prob(20)) @@ -247,6 +263,7 @@ glass_icon_state = "glass_white" glass_name = "glass of coconut milk" glass_desc = "White and nutritious goodness!" + hydration = 4 * REAGENTS_METABOLISM /datum/reagent/consumable/coconutmilk/on_mob_life(mob/living/carbon/M) if(M.getBruteLoss() && prob(20)) @@ -262,6 +279,7 @@ glass_icon_state = "glass_white" glass_name = "glass of cream" glass_desc = "Ewwww..." + hydration = 2 * REAGENTS_METABOLISM /datum/reagent/consumable/cream/on_mob_life(mob/living/carbon/M) if(M.getBruteLoss() && prob(20)) @@ -279,6 +297,7 @@ glass_icon_state = "glass_brown" glass_name = "glass of coffee" glass_desc = "Don't drop it, or you'll send scalding liquid and glass shards everywhere." + hydration = 2 * REAGENTS_METABOLISM /datum/reagent/consumable/coffee/overdose_process(mob/living/M) M.Jitter(5) @@ -304,6 +323,7 @@ glass_icon_state = "teaglass" glass_name = "glass of tea" glass_desc = "Drinking it from here would not seem right." + hydration = 2 * REAGENTS_METABOLISM /datum/reagent/consumable/tea/on_mob_life(mob/living/carbon/M) M.dizziness = max(0,M.dizziness-2) @@ -324,6 +344,7 @@ glass_icon_state = "lemonpitcher" glass_name = "pitcher of lemonade" glass_desc = "This drink leaves you feeling nostalgic for some reason." + hydration = 4 * REAGENTS_METABOLISM /datum/reagent/consumable/tea/arnold_palmer name = "Arnold Palmer" @@ -335,6 +356,7 @@ glass_icon_state = "arnold_palmer" glass_name = "Arnold Palmer" glass_desc = "You feel like taking a few golf swings after a few swigs of this." + hydration = 4 * REAGENTS_METABOLISM /datum/reagent/consumable/tea/arnold_palmer/on_mob_life(mob/living/carbon/M) if(prob(5)) @@ -351,6 +373,7 @@ glass_icon_state = "icedcoffeeglass" glass_name = "iced coffee" glass_desc = "A drink to perk you up and refresh you!" + hydration = 2 * REAGENTS_METABOLISM /datum/reagent/consumable/icecoffee/on_mob_life(mob/living/carbon/M) M.dizziness = max(0,M.dizziness-5) @@ -370,6 +393,7 @@ glass_icon_state = "icedteaglass" glass_name = "iced tea" glass_desc = "All natural, antioxidant-rich flavour sensation." + hydration = 2 * REAGENTS_METABOLISM /datum/reagent/consumable/icetea/on_mob_life(mob/living/carbon/M) M.dizziness = max(0,M.dizziness-2) @@ -389,6 +413,7 @@ glass_icon_state = "glass_brown" glass_name = "glass of Space Cola" glass_desc = "A glass of refreshing Space Cola." + hydration = 2 * REAGENTS_METABOLISM /datum/reagent/consumable/space_cola/on_mob_life(mob/living/carbon/M) M.drowsyness = max(0,M.drowsyness-5) @@ -404,6 +429,7 @@ glass_icon_state = "nuka_colaglass" glass_name = "glass of Nuka Cola" glass_desc = "Don't cry, Don't raise your eye, It's only nuclear wasteland." + hydration = 2 * REAGENTS_METABOLISM /datum/reagent/consumable/nuka_cola/on_mob_metabolize(mob/living/L) ..() @@ -448,6 +474,7 @@ glass_icon_state = "dr_gibb_glass" glass_name = "glass of Dr. Gibb" glass_desc = "Dr. Gibb. Not as dangerous as the glass_name might imply." + hydration = 2 * REAGENTS_METABOLISM /datum/reagent/consumable/dr_gibb/on_mob_life(mob/living/carbon/M) M.drowsyness = max(0,M.drowsyness-6) @@ -462,7 +489,7 @@ glass_icon_state = "space-up_glass" glass_name = "glass of Space-Up" glass_desc = "Space-up. It helps you keep your cool." - + hydration = 5 * REAGENTS_METABOLISM /datum/reagent/consumable/space_up/on_mob_life(mob/living/carbon/M) M.adjust_bodytemperature(-8 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL) @@ -476,7 +503,7 @@ glass_icon_state = "glass_yellow" glass_name = "glass of lemon-lime" glass_desc = "You're pretty certain a real fruit has never actually touched this." - + hydration = 2 * REAGENTS_METABOLISM /datum/reagent/consumable/lemon_lime/on_mob_life(mob/living/carbon/M) M.adjust_bodytemperature(-8 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL) @@ -490,6 +517,7 @@ glass_icon_state = "glass_red" glass_name = "glass of Pwr Game" glass_desc = "Goes well with a Vlad's salad." + hydration = 2 * REAGENTS_METABOLISM /datum/reagent/consumable/pwr_game/on_mob_life(mob/living/carbon/M) M.adjust_bodytemperature(-8 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL) @@ -503,6 +531,7 @@ glass_icon_state = "glass_red" glass_name = "glass of Shambler's juice" glass_desc = "Mmm mm, shambly." + hydration = 2 * REAGENTS_METABOLISM /datum/reagent/consumable/shamblers/on_mob_life(mob/living/carbon/M) M.adjust_bodytemperature(-8 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL) @@ -517,6 +546,7 @@ glass_icon_state = "grey_bull_glass" glass_name = "glass of Grey Bull" glass_desc = "Surprisingly it isnt grey." + hydration = 2 * REAGENTS_METABOLISM /datum/reagent/consumable/grey_bull/on_mob_metabolize(mob/living/L) ..() @@ -542,6 +572,7 @@ glass_icon_state = "glass_clear" glass_name = "glass of soda water" glass_desc = "Soda water. Why not make a scotch and soda?" + hydration = 4 * REAGENTS_METABOLISM /datum/reagent/consumable/sodawater/on_mob_life(mob/living/carbon/M) M.dizziness = max(0,M.dizziness-5) @@ -557,6 +588,7 @@ glass_icon_state = "glass_clear" glass_name = "glass of tonic water" glass_desc = "Quinine tastes funny, but at least it'll keep that Space Malaria away." + hydration = 4 * REAGENTS_METABOLISM /datum/reagent/consumable/tonic/on_mob_life(mob/living/carbon/M) M.dizziness = max(0,M.dizziness-5) @@ -575,6 +607,7 @@ glass_icon_state = "iceglass" glass_name = "glass of ice" glass_desc = "Generally, you're supposed to put something else in there too..." + hydration = 5 * REAGENTS_METABOLISM //ice is water dummy, just as good. /datum/reagent/consumable/ice/on_mob_life(mob/living/carbon/M) M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL) @@ -589,6 +622,7 @@ glass_icon_state = "soy_latte" glass_name = "soy latte" glass_desc = "A nice and refreshing beverage while you're reading." + hydration = 2 * REAGENTS_METABOLISM /datum/reagent/consumable/soy_latte/on_mob_life(mob/living/carbon/M) M.dizziness = max(0,M.dizziness-5) @@ -610,6 +644,7 @@ glass_icon_state = "cafe_latte" glass_name = "cafe latte" glass_desc = "A nice, strong and refreshing beverage while you're reading." + hydration = 2 * REAGENTS_METABOLISM /datum/reagent/consumable/cafe_latte/on_mob_life(mob/living/carbon/M) M.dizziness = max(0,M.dizziness-5) @@ -631,6 +666,7 @@ glass_icon_state = "doctorsdelightglass" glass_name = "Doctor's Delight" glass_desc = "The space doctor's favorite. Guaranteed to restore bodily injury; side effects include cravings and hunger." + hydration = 2 * REAGENTS_METABOLISM /datum/reagent/consumable/doctor_delight/on_mob_life(mob/living/carbon/M) M.adjustBruteLoss(-0.5, 0) @@ -697,6 +733,7 @@ glass_icon_state = "pumpkin_latte" glass_name = "pumpkin latte" glass_desc = "A mix of coffee and pumpkin juice." + hydration = 2 * REAGENTS_METABOLISM /datum/reagent/consumable/gibbfloats name = "Gibb Floats" @@ -708,12 +745,14 @@ glass_icon_state = "gibbfloats" glass_name = "Gibbfloat" glass_desc = "Dr. Gibb with ice cream on top." + hydration = 3 * REAGENTS_METABOLISM /datum/reagent/consumable/pumpkinjuice name = "Pumpkin Juice" description = "Juiced from real pumpkin." color = "#FFA500" taste_description = "pumpkin" + hydration = 2 * REAGENTS_METABOLISM /datum/reagent/consumable/blumpkinjuice name = "Blumpkin Juice" @@ -730,6 +769,7 @@ glass_icon_state = "triplecitrus" //needs own sprite mine are trash glass_name = "glass of triple citrus" glass_desc = "A mixture of citrus juices. Tangy, yet smooth." + hydration = 2 * REAGENTS_METABOLISM /datum/reagent/consumable/grape_soda name = "Grape soda" @@ -738,6 +778,7 @@ taste_description = "grape soda" glass_name = "glass of grape juice" glass_desc = "It's grape (soda)!" + hydration = 2 * REAGENTS_METABOLISM /datum/reagent/consumable/grape_soda/on_mob_life(mob/living/carbon/M) M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL) @@ -750,6 +791,7 @@ color = "#7D4E29" quality = DRINK_NICE taste_description = "chocolate milk" + hydration = 2 * REAGENTS_METABOLISM /datum/reagent/consumable/menthol name = "Menthol" @@ -771,6 +813,7 @@ taste_description = "sweet pomegranates" glass_name = "glass of grenadine" glass_desc = "Delicious flavored syrup." + hydration = 1 * REAGENTS_METABOLISM /datum/reagent/consumable/parsnipjuice name = "Parsnip Juice" @@ -778,6 +821,7 @@ color = "#FFA500" taste_description = "parsnip" glass_name = "glass of parsnip juice" + hydration = 1 * REAGENTS_METABOLISM /datum/reagent/consumable/pineapplejuice name = "Pineapple Juice" @@ -786,6 +830,7 @@ taste_description = "pineapple" glass_name = "glass of pineapple juice" glass_desc = "Tart, tropical, and hotly debated." + hydration = 2 * REAGENTS_METABOLISM /datum/reagent/consumable/peachjuice //Intended to be extremely rare due to being the limiting ingredients in the blazaam drink name = "Peach Juice" @@ -793,6 +838,7 @@ color = "#E78108" taste_description = "peaches" glass_name = "glass of peach juice" + hydration = 2 * REAGENTS_METABOLISM /datum/reagent/consumable/cream_soda name = "Cream Soda" @@ -803,6 +849,7 @@ glass_icon_state = "cream_soda" glass_name = "Cream Soda" glass_desc = "A classic space-American vanilla flavored soft drink." + hydration = 2 * REAGENTS_METABOLISM /datum/reagent/consumable/cream_soda/on_mob_life(mob/living/carbon/M) M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL) @@ -844,6 +891,7 @@ taste_description = "sweet strawberry and milk cream" glass_name = "tall glass of strawberry milk" glass_desc = "Delicious flavored strawberry syrup mixed with milk." + hydration = 3 * REAGENTS_METABOLISM /datum/reagent/consumable/pinkmilk/on_mob_life(mob/living/carbon/M) if(prob(15)) @@ -860,6 +908,7 @@ taste_description = "sweet tea with a hint of strawberry" glass_name = "mug of strawberry tea" glass_desc = "Delicious traditional tea flavored with strawberries." + hydration = 2 * REAGENTS_METABOLISM /datum/reagent/consumable/tea/pinktea/on_mob_life(mob/living/carbon/M) if(prob(10)) @@ -875,6 +924,7 @@ glass_icon_state = "monkey_energy_glass" glass_name = "glass of Monkey Energy" glass_desc = "You can unleash the ape, but without the pop of the can?" + hydration = 1 * REAGENTS_METABOLISM /datum/reagent/consumable/monkey_energy/on_mob_life(mob/living/carbon/M) M.Jitter(20) @@ -892,6 +942,7 @@ glass_icon_state = "glass_yellow" glass_name = "glass of bungo juice" glass_desc = "Exotic! You feel like you are on vacation already." + hydration = 1 * REAGENTS_METABOLISM /datum/reagent/consumable/wockyslush name = "Wocky Slush" @@ -902,6 +953,7 @@ glass_icon_state = "wockyslush" glass_name = "Wocky Slush" glass_desc = "That thang bleedin' to the-... ya know I mean?" + hydration = 3 * REAGENTS_METABOLISM /datum/reagent/consumable/wockyslush/on_mob_life(mob/living/carbon/M) M.emote(pick("twitch","giggle","stare")) diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index 45afb498..988c0133 100644 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -18,6 +18,7 @@ /datum/reagent/consumable/on_mob_life(mob/living/carbon/M) current_cycle++ M.nutrition += nutriment_factor + M.thirst += hydration holder.remove_reagent(type, metabolization_rate) /datum/reagent/consumable/reaction_mob(mob/living/M, method=TOUCH, reac_volume) diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 69934a44..189c8d94 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -250,6 +250,11 @@ glass_name = "glass of water" glass_desc = "The father of all refreshments." shot_glass_icon_state = "shotglassclear" + hydration = 5 * REAGENTS_METABOLISM + +//hydration +/datum/reagent/water/on_mob_life(mob/living/carbon/M) + M.thirst += hydration /* * Water reaction to turf diff --git a/icons/mob/screen_alert.dmi b/icons/mob/screen_alert.dmi index fef57630..1d9d5a37 100644 Binary files a/icons/mob/screen_alert.dmi and b/icons/mob/screen_alert.dmi differ diff --git a/modular_citadel/code/modules/reagents/chemistry/reagents/SDGF.dm b/modular_citadel/code/modules/reagents/chemistry/reagents/SDGF.dm index 741a7a7e..ed821fed 100644 --- a/modular_citadel/code/modules/reagents/chemistry/reagents/SDGF.dm +++ b/modular_citadel/code/modules/reagents/chemistry/reagents/SDGF.dm @@ -286,6 +286,7 @@ IMPORTANT FACTORS TO CONSIDER WHILE BALANCING M.adjustCloneLoss(-2, 0) M.setOrganLoss(ORGAN_SLOT_BRAIN, -1) M.nutrition += 10 + M.thirst += 10 ..() //Unobtainable, used if SDGF is impure but not too impure diff --git a/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm b/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm index 5bce8969..7f8b9d47 100644 --- a/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm +++ b/modular_citadel/code/modules/reagents/reagents/cit_reagents.dm @@ -12,6 +12,7 @@ glass_icon_state = "semen" glass_name = "chalice of semen" glass_desc = "In the Sumerian mythology, Enki - the God of water, was believed to have created the Tigris and Euphrates rivers by masturbating and ejaculating into their empty riverbeds." + hydration = 2 * REAGENTS_METABOLISM //thats one way to stay hydrated... /datum/reagent/consumable/semen/reaction_turf(turf/T, reac_volume) if(!istype(T)) @@ -55,6 +56,7 @@ color = "#AAAAAA77" can_synth = FALSE nutriment_factor = 0.5 * REAGENTS_METABOLISM + hydration = 1 * REAGENTS_METABOLISM //thats one way to stay hydrated... /obj/effect/decal/cleanable/femcum name = "female ejaculate"