[MIRROR] Drowsiness refactor [MDB IGNORE] (#8836)

* Drowsiness refactor (#62104)

Creates two procs in /mob/status_procs for handling drowsiness changes (with check for negative values), and refactors all code to use these procs instead of assigning values to the mob's drowsiness themselves.

* Drowsiness refactor

* Fixing more stuff in our code

Co-authored-by: thatoneplebeian <67017991+thatoneplebeian@users.noreply.github.com>
Co-authored-by: GoldenAlpharex <jerego1234@hotmail.com>
This commit is contained in:
SkyratBot
2021-10-15 19:41:35 +02:00
committed by GitHub
parent 1fc674a3d8
commit d5cc576efb
24 changed files with 73 additions and 60 deletions
@@ -169,7 +169,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
/datum/reagent/consumable/ethanol/kahlua/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
M.dizziness = max(M.dizziness - (5 * REM * delta_time), 0)
M.drowsyness = max(M.drowsyness - (3 * REM * delta_time), 0)
M.adjust_drowsyness(-3 * REM * delta_time)
M.AdjustSleeping(-40 * REM * delta_time)
if(!HAS_TRAIT(M, TRAIT_ALCOHOL_TOLERANCE))
M.Jitter(5)
@@ -230,7 +230,7 @@ All effects don't start immediately, but rather get worse over time; the rate is
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
/datum/reagent/consumable/ethanol/thirteenloko/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
M.drowsyness = max(M.drowsyness - (7 * REM * delta_time), 0)
M.adjust_drowsyness(-7 * REM * delta_time)
M.AdjustSleeping(-40 * REM * delta_time)
M.adjust_bodytemperature(-5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, M.get_body_temp_normal())
if(!HAS_TRAIT(M, TRAIT_ALCOHOL_TOLERANCE))
@@ -135,7 +135,7 @@
/datum/reagent/medicine/c2/probital/overdose_process(mob/living/M, delta_time, times_fired)
M.adjustStaminaLoss(3 * REM * delta_time, 0)
if(M.getStaminaLoss() >= 80)
M.drowsyness += 1 * REM * delta_time
M.adjust_drowsyness(1 * REM * delta_time)
if(M.getStaminaLoss() >= 100)
to_chat(M,span_warning("You feel more tired than you usually do, perhaps if you rest your eyes for a bit..."))
M.adjustStaminaLoss(-100, TRUE)
@@ -282,7 +282,7 @@
M.adjustOxyLoss(-3 * REM * delta_time * normalise_creation_purity())
M.adjustStaminaLoss(2 * REM * delta_time)
if(drowsycd && COOLDOWN_FINISHED(src, drowsycd))
M.drowsyness += 10
M.adjust_drowsyness(10)
COOLDOWN_START(src, drowsycd, 45 SECONDS)
else if(!drowsycd)
COOLDOWN_START(src, drowsycd, 15 SECONDS)
@@ -289,7 +289,7 @@
/datum/reagent/consumable/coffee/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
M.dizziness = max(M.dizziness - (5 * REM * delta_time), 0)
M.drowsyness = max(M.drowsyness - (3 * REM * delta_time), 0)
M.adjust_drowsyness(-3 * REM * delta_time)
M.AdjustSleeping(-40 * REM * delta_time)
//310.15 is the normal bodytemp.
M.adjust_bodytemperature(25 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, 0, M.get_body_temp_normal())
@@ -312,7 +312,7 @@
/datum/reagent/consumable/tea/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
M.dizziness = max(M.dizziness - (2 * REM * delta_time), 0)
M.drowsyness = max(M.drowsyness - (1 * REM * delta_time), 0)
M.adjust_drowsyness(-1 * REM * delta_time)
M.jitteriness = max(M.jitteriness - (3 * REM * delta_time), 0)
M.AdjustSleeping(-20 * REM * delta_time)
if(M.getToxLoss() && DT_PROB(10, delta_time))
@@ -364,7 +364,7 @@
/datum/reagent/consumable/icecoffee/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
M.dizziness = max(M.dizziness - (5 * REM * delta_time), 0)
M.drowsyness = max(M.drowsyness - (3 * REM * delta_time), 0)
M.adjust_drowsyness(-3 * REM * delta_time)
M.AdjustSleeping(-40 * REM * delta_time)
M.adjust_bodytemperature(-5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, M.get_body_temp_normal())
M.Jitter(5 * REM * delta_time)
@@ -384,7 +384,7 @@
/datum/reagent/consumable/hot_ice_coffee/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
M.dizziness = max(M.dizziness - (5 * REM * delta_time), 0)
M.drowsyness = max(M.drowsyness - (3 * REM * delta_time), 0)
M.adjust_drowsyness(-3 * REM * delta_time)
M.AdjustSleeping(-60 * REM * delta_time)
M.adjust_bodytemperature(-7 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, M.get_body_temp_normal())
M.Jitter(5 * REM * delta_time)
@@ -405,7 +405,7 @@
/datum/reagent/consumable/icetea/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
M.dizziness = max(M.dizziness - (2 * REM * delta_time), 0)
M.drowsyness = max(M.drowsyness - (1 * REM * delta_time), 0)
M.adjust_drowsyness(-1 * REM * delta_time)
M.AdjustSleeping(-40 * REM * delta_time)
if(M.getToxLoss() && DT_PROB(10, delta_time))
M.adjustToxLoss(-1, 0)
@@ -424,7 +424,7 @@
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
/datum/reagent/consumable/space_cola/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
M.drowsyness = max(M.drowsyness - (5 * REM * delta_time), 0)
M.adjust_drowsyness(-5 * REM * delta_time)
M.adjust_bodytemperature(-5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, M.get_body_temp_normal())
..()
@@ -451,7 +451,7 @@
M.Jitter(20 * REM * delta_time)
M.set_drugginess(30 * REM * delta_time)
M.dizziness += 1.5 * REM * delta_time
M.drowsyness = 0
M.set_drowsyness(0)
M.AdjustSleeping(-40 * REM * delta_time)
M.adjust_bodytemperature(-5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, M.get_body_temp_normal())
..()
@@ -479,7 +479,7 @@
/datum/reagent/consumable/grey_bull/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
M.Jitter(20 * REM * delta_time)
M.dizziness += 1 * REM * delta_time
M.drowsyness = 0
M.set_drowsyness(0)
M.AdjustSleeping(-40 * REM * delta_time)
M.adjust_bodytemperature(-5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, M.get_body_temp_normal())
..()
@@ -495,7 +495,7 @@
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
/datum/reagent/consumable/spacemountainwind/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
M.drowsyness = max(M.drowsyness - (7 * REM * delta_time), 0)
M.adjust_drowsyness(-7 * REM * delta_time)
M.AdjustSleeping(-20 * REM * delta_time)
M.adjust_bodytemperature(-5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, M.get_body_temp_normal())
M.Jitter(5 * REM * delta_time)
@@ -513,7 +513,7 @@
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
/datum/reagent/consumable/dr_gibb/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
M.drowsyness = max(M.drowsyness - (6 * REM * delta_time), 0)
M.adjust_drowsyness(-6 * REM * delta_time)
M.adjust_bodytemperature(-5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, M.get_body_temp_normal())
..()
@@ -606,7 +606,7 @@
/datum/reagent/consumable/sodawater/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
M.dizziness = max(M.dizziness - (5 * REM * delta_time), 0)
M.drowsyness = max(M.drowsyness - (3 * REM * delta_time), 0)
M.adjust_drowsyness(-3 * REM * delta_time)
M.adjust_bodytemperature(-5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, M.get_body_temp_normal())
..()
@@ -622,7 +622,7 @@
/datum/reagent/consumable/tonic/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
M.dizziness = max(M.dizziness - (5 * REM * delta_time), 0)
M.drowsyness = max(M.drowsyness - (3 * REM * delta_time), 0)
M.adjust_drowsyness(-3 * REM * delta_time)
M.AdjustSleeping(-40 * REM * delta_time)
M.adjust_bodytemperature(-5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, M.get_body_temp_normal())
..()
@@ -642,7 +642,7 @@
/datum/reagent/consumable/monkey_energy/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
M.Jitter(40 * REM * delta_time)
M.dizziness += 1 * REM * delta_time
M.drowsyness = 0
M.set_drowsyness(0)
M.AdjustSleeping(-40 * REM * delta_time)
M.adjust_bodytemperature(-5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, M.get_body_temp_normal())
..()
@@ -690,7 +690,7 @@
/datum/reagent/consumable/soy_latte/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
M.dizziness = max(M.dizziness - (5 * REM * delta_time), 0)
M.drowsyness = max(M.drowsyness - (3 *REM * delta_time), 0)
M.adjust_drowsyness(-3 *REM * delta_time)
M.SetSleeping(0)
M.adjust_bodytemperature(5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, 0, M.get_body_temp_normal())
M.Jitter(5 * REM * delta_time)
@@ -713,7 +713,7 @@
/datum/reagent/consumable/cafe_latte/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
M.dizziness = max(M.dizziness - (5 * REM * delta_time), 0)
M.drowsyness = max(M.drowsyness - (6 * REM * delta_time), 0)
M.adjust_drowsyness(-6 * REM * delta_time)
M.SetSleeping(0)
M.adjust_bodytemperature(5 * REM * TEMPERATURE_DAMAGE_COEFFICIENT * delta_time, 0, M.get_body_temp_normal())
M.Jitter(5 * REM * delta_time)
@@ -1024,7 +1024,7 @@
if(M.druggy < 3)
M.adjust_drugginess(1 * REM * delta_time)
if(M.drowsyness < 3)
M.drowsyness += 1 * REM * delta_time
M.adjust_drowsyness(1 * REM * delta_time)
return ..()
/datum/reagent/consumable/mushroom_tea
@@ -758,7 +758,7 @@
kronkaine_fiend.adjustOrganLoss(ORGAN_SLOT_HEART, 0.4 * REM * delta_time)
kronkaine_fiend.Jitter(10 * REM * delta_time)
kronkaine_fiend.AdjustSleeping(-20 * REM * delta_time)
kronkaine_fiend.drowsyness = max(kronkaine_fiend.drowsyness - (5 * REM * delta_time), 0)
kronkaine_fiend.adjust_drowsyness(-5 * REM * delta_time)
if(volume < 10)
return
for(var/possible_purger in kronkaine_fiend.reagents.reagent_list)
@@ -83,7 +83,7 @@
M.silent = FALSE
M.dizziness = 0
M.disgust = 0
M.drowsyness = 0
M.set_drowsyness(0)
M.stuttering = 0
M.slurring = 0
M.jitteriness = 0
@@ -119,7 +119,7 @@
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
/datum/reagent/medicine/synaptizine/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
M.drowsyness = max(M.drowsyness - (5 * REM * delta_time), 0)
M.adjust_drowsyness(-5 * REM * delta_time)
M.AdjustStun(-20 * REM * delta_time)
M.AdjustKnockdown(-20 * REM * delta_time)
M.AdjustUnconscious(-20 * REM * delta_time)
@@ -141,7 +141,7 @@
chemical_flags = REAGENT_CAN_BE_SYNTHESIZED
/datum/reagent/medicine/synaphydramine/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
M.drowsyness = max(M.drowsyness - (5 * REM * delta_time), 0)
M.adjust_drowsyness(-5 * REM * delta_time)
if(holder.has_reagent(/datum/reagent/toxin/mindbreaker))
holder.remove_reagent(/datum/reagent/toxin/mindbreaker, 5 * REM * delta_time)
if(holder.has_reagent(/datum/reagent/toxin/histamine))
@@ -575,7 +575,7 @@
/datum/reagent/medicine/diphenhydramine/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
if(DT_PROB(5, delta_time))
M.drowsyness++
M.adjust_drowsyness(1)
M.jitteriness -= 1 * REM * delta_time
holder.remove_reagent(/datum/reagent/toxin/histamine, 3 * REM * delta_time)
..()
@@ -610,7 +610,7 @@
if(11)
to_chat(M, span_warning("You start to feel tired...") )
if(12 to 24)
M.drowsyness += 1 * REM * delta_time
M.adjust_drowsyness(1 * REM * delta_time)
if(24 to INFINITY)
M.Sleeping(40 * REM * delta_time)
. = TRUE
@@ -981,7 +981,7 @@
/datum/reagent/medicine/antihol/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
M.dizziness = 0
M.drowsyness = 0
M.set_drowsyness(0)
M.slurring = 0
M.set_confusion(0)
M.reagents.remove_all_type(/datum/reagent/consumable/ethanol, 3 * REM * delta_time * normalise_creation_purity(), FALSE, TRUE)
@@ -1182,7 +1182,7 @@
/datum/reagent/medicine/haloperidol/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
for(var/datum/reagent/drug/R in M.reagents.reagent_list)
M.reagents.remove_reagent(R.type, 5 * REM * delta_time)
M.drowsyness += 2 * REM * delta_time
M.adjust_drowsyness(2 * REM * delta_time)
if(M.jitteriness >= 3)
M.jitteriness -= 3 * REM * delta_time
if (M.hallucination >= 5)
@@ -352,7 +352,7 @@
/datum/reagent/fuel/unholywater/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
if(IS_CULTIST(M))
M.drowsyness = max(M.drowsyness - (5* REM * delta_time), 0)
M.adjust_drowsyness(-5* REM * delta_time)
M.AdjustAllImmobility(-40 *REM* REM * delta_time)
M.adjustStaminaLoss(-10 * REM * delta_time, 0)
M.adjustToxLoss(-2 * REM * delta_time, 0)
@@ -1224,7 +1224,7 @@
if(DT_PROB(55, delta_time))
M.adjustOrganLoss(ORGAN_SLOT_BRAIN, 2)
if(DT_PROB(30, delta_time))
M.drowsyness = max(M.drowsyness, 3)
M.adjust_drowsyness(3)
if(DT_PROB(5, delta_time))
M.emote("drool")
..()
@@ -1375,10 +1375,10 @@
/datum/reagent/nitrous_oxide/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume)
. = ..()
if(methods & VAPOR)
exposed_mob.drowsyness += max(round(reac_volume, 1), 2)
exposed_mob.adjust_drowsyness(max(round(reac_volume, 1), 2))
/datum/reagent/nitrous_oxide/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
M.drowsyness += 2 * REM * delta_time
M.adjust_drowsyness(2 * REM * delta_time)
if(ishuman(M))
var/mob/living/carbon/human/H = M
H.blood_volume = max(H.blood_volume - (10 * REM * delta_time), 0)
@@ -2697,7 +2697,7 @@
/datum/reagent/eldritch/on_mob_life(mob/living/carbon/M, delta_time, times_fired)
if(IS_HERETIC(M))
M.drowsyness = max(M.drowsyness - (5 * REM * delta_time), 0)
M.adjust_drowsyness(-5 * REM * delta_time)
M.AdjustAllImmobility(-40 * REM * delta_time)
M.adjustStaminaLoss(-10 * REM * delta_time, FALSE)
M.adjustToxLoss(-2 * REM * delta_time, FALSE, forced = TRUE)
@@ -254,7 +254,7 @@
switch(current_cycle)
if(1 to 5)
M.add_confusion(1 * REM * delta_time)
M.drowsyness += 1 * REM * delta_time
M.adjust_drowsyness(1 * REM * delta_time)
M.slurring += 3 * REM * delta_time
if(5 to 8)
M.adjustStaminaLoss(40 * REM * delta_time, 0)
@@ -447,7 +447,7 @@
switch(current_cycle)
if(1 to 10)
M.add_confusion(2 * REM * normalise_creation_purity() * delta_time)
M.drowsyness += 2 * REM * normalise_creation_purity() * delta_time
M.adjust_drowsyness(2 * REM * normalise_creation_purity() * delta_time)
if(10 to 50)
M.Sleeping(40 * REM * normalise_creation_purity() * delta_time)
. = TRUE