[MIRROR] Fixes negative bodytemp in some cases and shivering not doing anything unless you're already very cold (#5674)

* Fixes negative bodytemp in some cases and shivering not doing anything unless you're already very cold (#35796)

* - Stop subtracting from bodytemp please
- Also fixes shivering

* - Jesus christ why did you make me do this

* - missed one

* Fixes negative bodytemp in some cases and shivering not doing anything unless you're already very cold
This commit is contained in:
CitadelStationBot
2018-02-23 17:42:57 -06:00
committed by Poojawa
parent f3b42842ad
commit 567c7fad8d
29 changed files with 114 additions and 130 deletions
@@ -149,8 +149,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/thirteenloko/on_mob_life(mob/living/M)
M.drowsyness = max(0,M.drowsyness-7)
M.AdjustSleeping(-40)
if (M.bodytemperature > BODYTEMP_NORMAL)
M.bodytemperature = max(BODYTEMP_NORMAL, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL)
M.Jitter(5)
return ..()
@@ -541,8 +540,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
shot_glass_icon_state = "toxinsspecialglass"
/datum/reagent/consumable/ethanol/toxins_special/on_mob_life(var/mob/living/M as mob)
if (M.bodytemperature < (BODYTEMP_NORMAL + 20))
M.bodytemperature = min((BODYTEMP_NORMAL + 20), M.bodytemperature + (15 * TEMPERATURE_DAMAGE_COEFFICIENT)) //310.15 is the normal bodytemp.
M.adjust_bodytemperature(15 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, BODYTEMP_NORMAL + 20) //310.15 is the normal bodytemp.
return ..()
/datum/reagent/consumable/ethanol/beepsky_smash
@@ -721,8 +719,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_desc = "The ultimate refreshment."
/datum/reagent/consumable/ethanol/antifreeze/on_mob_life(mob/living/M)
if (M.bodytemperature < (BODYTEMP_NORMAL + 20))
M.bodytemperature = min((BODYTEMP_NORMAL + 20), M.bodytemperature + (20 * TEMPERATURE_DAMAGE_COEFFICIENT)) //310.15 is the normal bodytemp.
M.adjust_bodytemperature(20 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, BODYTEMP_NORMAL + 20) //310.15 is the normal bodytemp.
return ..()
/datum/reagent/consumable/ethanol/barefoot
@@ -835,8 +832,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_desc = "A spicy mix of Vodka and Spice. Very hot."
/datum/reagent/consumable/ethanol/sbiten/on_mob_life(mob/living/M)
if (M.bodytemperature < BODYTEMP_HEAT_DAMAGE_LIMIT)
M.bodytemperature = min(BODYTEMP_HEAT_DAMAGE_LIMIT, M.bodytemperature + (50 * TEMPERATURE_DAMAGE_COEFFICIENT)) //310.15 is the normal bodytemp.
M.adjust_bodytemperature(50 * TEMPERATURE_DAMAGE_COEFFICIENT, 0 ,BODYTEMP_HEAT_DAMAGE_LIMIT) //310.15 is the normal bodytemp.
return ..()
/datum/reagent/consumable/ethanol/red_mead
@@ -874,8 +870,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
glass_desc = "A beer so frosty, the air around it freezes."
/datum/reagent/consumable/ethanol/iced_beer/on_mob_life(mob/living/M)
if(M.bodytemperature > T0C)
M.bodytemperature = max(T0C, M.bodytemperature - (20 * TEMPERATURE_DAMAGE_COEFFICIENT)) //310.15 is the normal bodytemp.
M.adjust_bodytemperature(-20 * TEMPERATURE_DAMAGE_COEFFICIENT, T0C) //310.15 is the normal bodytemp.
return ..()
/datum/reagent/consumable/ethanol/grog
@@ -280,8 +280,8 @@
M.dizziness = max(0,M.dizziness-5)
M.drowsyness = max(0,M.drowsyness-3)
M.AdjustSleeping(-40, FALSE)
if (M.bodytemperature < BODYTEMP_NORMAL)//310.15 is the normal bodytemp.
M.bodytemperature = min(BODYTEMP_NORMAL, M.bodytemperature + (25 * TEMPERATURE_DAMAGE_COEFFICIENT))
//310.15 is the normal bodytemp.
M.adjust_bodytemperature(25 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, BODYTEMP_NORMAL)
if(holder.has_reagent("frostoil"))
holder.remove_reagent("frostoil", 5)
..()
@@ -305,8 +305,7 @@
M.AdjustSleeping(-20, FALSE)
if(M.getToxLoss() && prob(20))
M.adjustToxLoss(-1, 0)
if (M.bodytemperature < BODYTEMP_NORMAL) //310.15 is the normal bodytemp.
M.bodytemperature = min(BODYTEMP_NORMAL, M.bodytemperature + (20 * TEMPERATURE_DAMAGE_COEFFICIENT))
M.adjust_bodytemperature(20 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, BODYTEMP_NORMAL)
..()
. = 1
@@ -342,8 +341,7 @@
M.dizziness = max(0,M.dizziness-5)
M.drowsyness = max(0,M.drowsyness-3)
M.AdjustSleeping(-40, FALSE)
if (M.bodytemperature > BODYTEMP_NORMAL)//310.15 is the normal bodytemp.
M.bodytemperature = max(BODYTEMP_NORMAL, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL)
M.Jitter(5)
..()
. = 1
@@ -365,8 +363,7 @@
M.AdjustSleeping(-40, FALSE)
if(M.getToxLoss() && prob(20))
M.adjustToxLoss(-1, 0)
if (M.bodytemperature > BODYTEMP_NORMAL)//310.15 is the normal bodytemp.
M.bodytemperature = max(BODYTEMP_NORMAL, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL)
..()
. = 1
@@ -382,8 +379,7 @@
/datum/reagent/consumable/space_cola/on_mob_life(mob/living/M)
M.drowsyness = max(0,M.drowsyness-5)
if (M.bodytemperature > BODYTEMP_NORMAL)//310.15 is the normal bodytemp.
M.bodytemperature = max(BODYTEMP_NORMAL, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL)
..()
/datum/reagent/consumable/nuka_cola
@@ -414,8 +410,7 @@
M.dizziness +=5
M.drowsyness = 0
M.AdjustSleeping(-40, FALSE)
if (M.bodytemperature > BODYTEMP_NORMAL)//310.15 is the normal bodytemp.
M.bodytemperature = max(BODYTEMP_NORMAL, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL)
..()
. = 1
@@ -432,8 +427,7 @@
/datum/reagent/consumable/spacemountainwind/on_mob_life(mob/living/M)
M.drowsyness = max(0,M.drowsyness-7)
M.AdjustSleeping(-20, FALSE)
if (M.bodytemperature > BODYTEMP_NORMAL)
M.bodytemperature = max(BODYTEMP_NORMAL, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL)
M.Jitter(5)
..()
. = 1
@@ -450,8 +444,7 @@
/datum/reagent/consumable/dr_gibb/on_mob_life(mob/living/M)
M.drowsyness = max(0,M.drowsyness-6)
if (M.bodytemperature > BODYTEMP_NORMAL)
M.bodytemperature = max(BODYTEMP_NORMAL, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT)) //310.15 is the normal bodytemp.
M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL)
..()
/datum/reagent/consumable/space_up
@@ -466,8 +459,7 @@
/datum/reagent/consumable/space_up/on_mob_life(mob/living/M)
if (M.bodytemperature > BODYTEMP_NORMAL)
M.bodytemperature = max(BODYTEMP_NORMAL, M.bodytemperature - (8 * TEMPERATURE_DAMAGE_COEFFICIENT)) //310.15 is the normal bodytemp.
M.adjust_bodytemperature(-8 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL)
..()
/datum/reagent/consumable/lemon_lime
@@ -482,8 +474,7 @@
/datum/reagent/consumable/lemon_lime/on_mob_life(mob/living/M)
if (M.bodytemperature > BODYTEMP_NORMAL)
M.bodytemperature = max(BODYTEMP_NORMAL, M.bodytemperature - (8 * TEMPERATURE_DAMAGE_COEFFICIENT)) //310.15 is the normal bodytemp.
M.adjust_bodytemperature(-8 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL)
..()
/datum/reagent/consumable/pwr_game
@@ -497,8 +488,7 @@
glass_desc = "Goes well with a Vlad's salad."
/datum/reagent/consumable/pwr_game/on_mob_life(mob/living/M)
if (M.bodytemperature > BODYTEMP_NORMAL)
M.bodytemperature = max(BODYTEMP_NORMAL, M.bodytemperature - (8 * TEMPERATURE_DAMAGE_COEFFICIENT)) //310.15 is the normal bodytemp.
M.adjust_bodytemperature(-8 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL)
..()
/datum/reagent/consumable/shamblers
@@ -512,8 +502,7 @@
glass_desc = "Mmm mm, shambly."
/datum/reagent/consumable/shamblers/on_mob_life(mob/living/M)
if (M.bodytemperature > BODYTEMP_NORMAL)
M.bodytemperature = max(BODYTEMP_NORMAL, M.bodytemperature - (8 * TEMPERATURE_DAMAGE_COEFFICIENT)) //310.15 is the normal bodytemp.
M.adjust_bodytemperature(-8 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL)
..()
/datum/reagent/consumable/sodawater
name = "Soda Water"
@@ -528,8 +517,7 @@
/datum/reagent/consumable/sodawater/on_mob_life(mob/living/M)
M.dizziness = max(0,M.dizziness-5)
M.drowsyness = max(0,M.drowsyness-3)
if (M.bodytemperature > BODYTEMP_NORMAL)
M.bodytemperature = max(BODYTEMP_NORMAL, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL)
..()
/datum/reagent/consumable/tonic
@@ -546,8 +534,7 @@
M.dizziness = max(0,M.dizziness-5)
M.drowsyness = max(0,M.drowsyness-3)
M.AdjustSleeping(-40, FALSE)
if (M.bodytemperature > BODYTEMP_NORMAL)
M.bodytemperature = max(BODYTEMP_NORMAL, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL)
..()
. = 1
@@ -563,7 +550,7 @@
glass_desc = "Generally, you're supposed to put something else in there too..."
/datum/reagent/consumable/ice/on_mob_life(mob/living/M)
M.bodytemperature = max( M.bodytemperature - 5 * TEMPERATURE_DAMAGE_COEFFICIENT, 0)
M.adjust_bodytemperature(-5 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL)
..()
/datum/reagent/consumable/soy_latte
@@ -580,8 +567,7 @@
M.dizziness = max(0,M.dizziness-5)
M.drowsyness = max(0,M.drowsyness-3)
M.SetSleeping(0, FALSE)
if (M.bodytemperature < BODYTEMP_NORMAL)//310.15 is the normal bodytemp.
M.bodytemperature = min(BODYTEMP_NORMAL, M.bodytemperature + (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
M.adjust_bodytemperature(5 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, BODYTEMP_NORMAL)
M.Jitter(5)
if(M.getBruteLoss() && prob(20))
M.heal_bodypart_damage(1,0, 0)
@@ -602,8 +588,7 @@
M.dizziness = max(0,M.dizziness-5)
M.drowsyness = max(0,M.drowsyness-3)
M.SetSleeping(0, FALSE)
if (M.bodytemperature < BODYTEMP_NORMAL)//310.15 is the normal bodytemp.
M.bodytemperature = min(BODYTEMP_NORMAL, M.bodytemperature + (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
M.adjust_bodytemperature(5 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, BODYTEMP_NORMAL)
M.Jitter(5)
if(M.getBruteLoss() && prob(20))
M.heal_bodypart_damage(1,0, 0)
@@ -184,25 +184,27 @@
taste_mult = 1.5
/datum/reagent/consumable/capsaicin/on_mob_life(mob/living/M)
var/heating = 0
switch(current_cycle)
if(1 to 15)
M.bodytemperature += 5 * TEMPERATURE_DAMAGE_COEFFICIENT
heating = 5 * TEMPERATURE_DAMAGE_COEFFICIENT
if(holder.has_reagent("cryostylane"))
holder.remove_reagent("cryostylane", 5)
if(isslime(M))
M.bodytemperature += rand(5,20)
heating = rand(5,20)
if(15 to 25)
M.bodytemperature += 10 * TEMPERATURE_DAMAGE_COEFFICIENT
heating = 10 * TEMPERATURE_DAMAGE_COEFFICIENT
if(isslime(M))
M.bodytemperature += rand(10,20)
heating = rand(10,20)
if(25 to 35)
M.bodytemperature += 15 * TEMPERATURE_DAMAGE_COEFFICIENT
heating = 15 * TEMPERATURE_DAMAGE_COEFFICIENT
if(isslime(M))
M.bodytemperature += rand(15,20)
heating = rand(15,20)
if(35 to INFINITY)
M.bodytemperature += 20 * TEMPERATURE_DAMAGE_COEFFICIENT
heating = 20 * TEMPERATURE_DAMAGE_COEFFICIENT
if(isslime(M))
M.bodytemperature += rand(20,25)
heating = rand(20,25)
M.adjust_bodytemperature(heating)
..()
/datum/reagent/consumable/frostoil
@@ -213,31 +215,31 @@
taste_description = "mint"
/datum/reagent/consumable/frostoil/on_mob_life(mob/living/M)
if(M.bodytemperature > 50)
switch(current_cycle)
if(1 to 15)
M.bodytemperature -= 10 * TEMPERATURE_DAMAGE_COEFFICIENT
if(holder.has_reagent("capsaicin"))
holder.remove_reagent("capsaicin", 5)
if(isslime(M))
M.bodytemperature -= rand(5,20)
if(15 to 25)
M.bodytemperature -= 20 * TEMPERATURE_DAMAGE_COEFFICIENT
if(isslime(M))
M.bodytemperature -= rand(10,20)
if(25 to 35)
M.bodytemperature -= 30 * TEMPERATURE_DAMAGE_COEFFICIENT
if(prob(1))
M.emote("shiver")
if(isslime(M))
M.bodytemperature -= rand(15,20)
if(35 to INFINITY)
M.bodytemperature -= 40 * TEMPERATURE_DAMAGE_COEFFICIENT
if(prob(5))
M.emote("shiver")
if(isslime(M))
M.bodytemperature -= rand(20,25)
M.bodytemperature = max(50, M.bodytemperature)
var/cooling = 0
switch(current_cycle)
if(1 to 15)
cooling = -10 * TEMPERATURE_DAMAGE_COEFFICIENT
if(holder.has_reagent("capsaicin"))
holder.remove_reagent("capsaicin", 5)
if(isslime(M))
cooling = -rand(5,20)
if(15 to 25)
cooling = -20 * TEMPERATURE_DAMAGE_COEFFICIENT
if(isslime(M))
cooling = -rand(10,20)
if(25 to 35)
cooling = -30 * TEMPERATURE_DAMAGE_COEFFICIENT
if(prob(1))
M.emote("shiver")
if(isslime(M))
cooling = -rand(15,20)
if(35 to INFINITY)
cooling = -40 * TEMPERATURE_DAMAGE_COEFFICIENT
if(prob(5))
M.emote("shiver")
if(isslime(M))
cooling = -rand(20,25)
M.adjust_bodytemperature(cooling, 50)
..()
/datum/reagent/consumable/frostoil/reaction_turf(turf/T, reac_volume)
@@ -373,8 +375,7 @@
glass_desc = "Tasty."
/datum/reagent/consumable/hot_coco/on_mob_life(mob/living/M)
if (M.bodytemperature < BODYTEMP_NORMAL)//310.15 is the normal bodytemp.
M.bodytemperature = min(BODYTEMP_NORMAL, M.bodytemperature + (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
M.adjust_bodytemperature(5 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, BODYTEMP_NORMAL)
..()
/datum/reagent/mushroomhallucinogen
@@ -465,8 +466,7 @@
taste_description = "wet and cheap noodles"
/datum/reagent/consumable/hot_ramen/on_mob_life(mob/living/M)
if (M.bodytemperature < BODYTEMP_NORMAL)//310.15 is the normal bodytemp.
M.bodytemperature = min(BODYTEMP_NORMAL, M.bodytemperature + (10 * TEMPERATURE_DAMAGE_COEFFICIENT))
M.adjust_bodytemperature(10 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, BODYTEMP_NORMAL)
..()
/datum/reagent/consumable/hell_ramen
@@ -478,7 +478,7 @@
taste_description = "wet and cheap noodles on fire"
/datum/reagent/consumable/hell_ramen/on_mob_life(mob/living/M)
M.bodytemperature += 10 * TEMPERATURE_DAMAGE_COEFFICIENT
M.adjust_bodytemperature(10 * TEMPERATURE_DAMAGE_COEFFICIENT)
..()
/datum/reagent/consumable/flour
@@ -22,9 +22,9 @@
/datum/reagent/medicine/leporazine/on_mob_life(mob/living/M)
if(M.bodytemperature > BODYTEMP_NORMAL)
M.bodytemperature = max(BODYTEMP_NORMAL, M.bodytemperature - (40 * TEMPERATURE_DAMAGE_COEFFICIENT))
M.adjust_bodytemperature(-40 * TEMPERATURE_DAMAGE_COEFFICIENT, BODYTEMP_NORMAL)
else if(M.bodytemperature < (BODYTEMP_NORMAL + 1))
M.bodytemperature = min(BODYTEMP_NORMAL, M.bodytemperature + (40 * TEMPERATURE_DAMAGE_COEFFICIENT))
M.adjust_bodytemperature(40 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, BODYTEMP_NORMAL)
..()
/datum/reagent/medicine/adminordrazine //An OP chemical for admins
@@ -1272,4 +1272,4 @@
M.adjustStaminaLoss(1.5*REM, 0)
..()
. = 1
@@ -187,7 +187,7 @@
/datum/reagent/cryostylane/on_mob_life(mob/living/M) //TODO: code freezing into an ice cube
if(M.reagents.has_reagent("oxygen"))
M.reagents.remove_reagent("oxygen", 0.5)
M.bodytemperature = max(M.bodytemperature - 15,0)
M.adjust_bodytemperature(-15)
..()
/datum/reagent/cryostylane/reaction_turf(turf/T, reac_volume)
@@ -206,7 +206,7 @@
/datum/reagent/pyrosium/on_mob_life(mob/living/M)
if(M.reagents.has_reagent("oxygen"))
M.reagents.remove_reagent("oxygen", 0.5)
M.bodytemperature += 15
M.adjust_bodytemperature(15)
..()
/datum/reagent/teslium //Teslium. Causes periodic shocks, and makes shocks against the target much more effective.