diff --git a/code/datums/diseases/berserker.dm b/code/datums/diseases/berserker.dm
new file mode 100644
index 00000000000..248503ba672
--- /dev/null
+++ b/code/datums/diseases/berserker.dm
@@ -0,0 +1,55 @@
+/datum/disease/berserker
+ name = "Berserker"
+ max_stages = 2
+ stage_prob = 5
+ spread_text = "Non-Contagious"
+ spread_flags = SPECIAL
+ cure_text = "Anti-Psychotics"
+ cures = list("haloperidol")
+ agent = "Jagged Crystals"
+ cure_chance = 10
+ viable_mobtypes = list(/mob/living/carbon/human)
+ desc = "Swearing, shouting, attacking nearby crew members uncontrollably."
+ severity = DANGEROUS
+ disease_flags = CURABLE
+ spread_flags = NON_CONTAGIOUS
+
+/datum/disease/berserker/stage_act()
+ ..()
+ if(affected_mob.reagents.has_reagent("thc"))
+ to_chat(affected_mob, "You mellow out.")
+ cure()
+ return
+ switch(stage)
+ if(1)
+ if(prob(5))
+ affected_mob.emote(pick("twitch_s", "grumble"))
+ if(prob(5))
+ var/speak = pick("Grr...", "Fuck...", "Fucking...", "Fuck this fucking.. fuck..")
+ affected_mob.say(speak)
+ if(2)
+ if(prob(5))
+ affected_mob.emote(pick("twitch_s", "scream"))
+ if (prob(5))
+ var/speak = pick("AAARRGGHHH!!!!", "GRR!!!", "FUCK!! FUUUUUUCK!!!", "FUCKING SHITCOCK!!", "WROOAAAGHHH!!")
+ affected_mob.say(speak)
+ if (prob(15))
+ affected_mob.visible_message("[affected_mob] twitches violently!")
+ affected_mob.drop_l_hand()
+ affected_mob.drop_r_hand()
+ if (prob(33))
+ if(affected_mob.incapacitated())
+ affected_mob.visible_message("[affected_mob] spasms and twitches!")
+ return
+ affected_mob.visible_message("[affected_mob] thrashes around violently!")
+ for(var/mob/living/carbon/M in range(1, affected_mob))
+ if(M == affected_mob)
+ continue
+ var/damage = rand(1, 5)
+ if (prob(80))
+ playsound(affected_mob.loc, "punch", 25, 1, -1)
+ affected_mob.visible_message("[affected_mob] hits [M] with their thrashing!")
+ M.adjustBruteLoss(damage)
+ else
+ playsound(affected_mob.loc, "sound/weapons/punchmiss.ogg", 25, 1, -1)
+ affected_mob.visible_message("[affected_mob] fails to hit [M] with their thrashing!")
\ No newline at end of file
diff --git a/code/datums/diseases/food_poisoning.dm b/code/datums/diseases/food_poisoning.dm
new file mode 100644
index 00000000000..25166ecf13b
--- /dev/null
+++ b/code/datums/diseases/food_poisoning.dm
@@ -0,0 +1,77 @@
+/datum/disease/food_poisoning
+ name = "Food Poisoning"
+ max_stages = 3
+ stage_prob = 5
+ spread_text = "Non-Contagious"
+ spread_flags = SPECIAL
+ cure_text = "Sleep"
+ agent = "Salmonella"
+ cures = list("chicken_soup")
+ cure_chance = 10
+ viable_mobtypes = list(/mob/living/carbon/human)
+ desc = "Nausea, sickness, and vomitting."
+ severity = MINOR
+ disease_flags = CURABLE
+ spread_flags = NON_CONTAGIOUS
+ var/remissive = 0
+
+/datum/disease/food_poisoning/stage_act()
+ if(!remissive)
+ ..()
+ if(affected_mob.sleeping && prob(33))
+ to_chat(affected_mob, "You feel better.")
+ remissive = 1
+ if(remissive)
+ if(prob(stage_prob))
+ stage--
+ if(stage == 0)
+ cure()
+ return
+ switch(stage)
+ if(1)
+ if(prob(5))
+ to_chat(affected_mob, "Your stomach feels weird.")
+ if(prob(5))
+ to_chat(affected_mob, "You feel queasy.")
+ if(2)
+ if(affected_mob.sleeping && prob(40))
+ to_chat(affected_mob, "You feel better.")
+ cure()
+ return
+ if(prob(1) && prob(10))
+ to_chat(affected_mob, "You feel better.")
+ cure()
+ return
+ if(prob(10))
+ affected_mob.emote("groan")
+ if(prob(5))
+ to_chat(affected_mob, "Your stomach aches.")
+ if(prob(5))
+ to_chat(affected_mob, "You feel nauseous.")
+ if(3)
+ if(affected_mob.sleeping && prob(25))
+ to_chat(affected_mob, "You feel better.")
+ cure()
+ return
+ if(prob(1) && prob(10))
+ to_chat(affected_mob, "You feel better.")
+ cure()
+ return
+ if(prob(10))
+ affected_mob.emote("moan")
+ if(prob(10))
+ affected_mob.emote("groan")
+ if(prob(1))
+ to_chat(affected_mob, "Your stomach hurts.")
+ if(prob(1))
+ to_chat(affected_mob, "You feel sick.")
+ if(prob(5))
+ if(affected_mob.nutrition > 10)
+ affected_mob.visible_message("[affected_mob] vomits on the floor profusely!")
+ affected_mob.fakevomit(no_text = 1)
+ affected_mob.nutrition -= rand(3,5)
+ else
+ to_chat(affected_mob, "Your stomach lurches painfully!")
+ affected_mob.visible_message("[affected_mob] gags and retches!")
+ affected_mob.Stun(rand(2,4))
+ affected_mob.Weaken(rand(2,4))
\ No newline at end of file
diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm
index 657d40983de..9f1b41b3ac5 100644
--- a/code/modules/mob/living/carbon/human/emote.dm
+++ b/code/modules/mob/living/carbon/human/emote.dm
@@ -336,7 +336,7 @@
message = "[src] faints."
if(src.sleeping)
return //Can't faint while asleep
- src.sleeping += 10 //Short-short nap
+ src.sleeping += 1
m_type = 1
if ("cough", "coughs")
@@ -791,14 +791,9 @@
continue
// Now, we don't have this:
//new /obj/effects/fart_cloud(T,L)
- // But:
- // <[REDACTED]> so, what it does is...imagine a 3x3 grid with the person in the center. When someone uses the emote *fart (it's not a spell style ability and has no cooldown), then anyone in the 8 tiles AROUND the person who uses it
- // <[REDACTED]> gets between 1 and 10 units of jenkem added to them...we obviously don't have Jenkem, but Space Drugs do literally the same exact thing as Jenkem
- // <[REDACTED]> the user, of course, isn't impacted because it's not an actual smoke cloud
- // So, let's give 'em space drugs.
if (M == src)
continue
- M.reagents.add_reagent("space_drugs",rand(1,10))
+ M.reagents.add_reagent("jenkem", 1)
if ("help")
var/emotelist = "aflap(s), airguitar, blink(s), blink(s)_r, blush(es), bow(s)-(none)/mob, burp(s), choke(s), chuckle(s), clap(s), collapse(s), cough(s),cry, cries, custom, dap(s)(none)/mob," \
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index 658959001a1..e5661f10ea5 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -1349,16 +1349,18 @@ mob/proc/yank_out_object()
ghost.notify_cloning(message, sound, source)
return ghost
-/mob/proc/fakevomit(green=0) //for aesthetic vomits that need to be instant and do not stun. -Fox
+/mob/proc/fakevomit(green = 0, no_text = 0) //for aesthetic vomits that need to be instant and do not stun. -Fox
if(stat==DEAD)
return
var/turf/location = loc
if (istype(location, /turf/simulated))
if(green)
- src.visible_message("[src] vomits up some green goo!","You vomit up some green goo!")
+ if(!no_text)
+ visible_message("[src] vomits up some green goo!","You vomit up some green goo!")
new /obj/effect/decal/cleanable/vomit/green(location)
else
- src.visible_message("[src] pukes all over \himself!","You puke all over yourself!")
+ if(!no_text)
+ visible_message("[src] pukes all over \himself!","You puke all over yourself!")
location.add_vomit_floor(src, 1)
playsound(location, 'sound/effects/splat.ogg', 50, 1)
diff --git a/code/modules/reagents/newchem/disease.dm b/code/modules/reagents/newchem/disease.dm
index 9c18efe308d..be1672434e4 100644
--- a/code/modules/reagents/newchem/disease.dm
+++ b/code/modules/reagents/newchem/disease.dm
@@ -50,6 +50,30 @@
M.ForceContractDisease(new /datum/disease/tuberculosis(0))
..()
+/datum/reagent/jagged_crystals
+ name = "Jagged Crystals"
+ id = "jagged_crystals"
+ description = "Rapid chemical decomposition has warped these crystals into twisted spikes."
+ reagent_state = SOLID
+ color = "#FA0000" // rgb: 250, 0, 0
+
+/datum/reagent/jagged_crystals/on_mob_life(var/mob/living/carbon/M as mob)
+ if(!M) M = holder.my_atom
+ M.ForceContractDisease(new /datum/disease/berserker(0))
+ ..()
+
+/datum/reagent/salmonella
+ name = "Salmonella "
+ id = "salmonella "
+ description = "A nasty bacteria found in spoiled food."
+ reagent_state = LIQUID
+ color = "#1E4600"
+
+/datum/reagent/salmonella/on_mob_life(var/mob/living/carbon/M as mob)
+ if(!M) M = holder.my_atom
+ M.ForceContractDisease(new /datum/disease/food_poisoning(0))
+ ..()
+
/datum/reagent/spore
name = "Blob Spores"
id = "spore"
diff --git a/code/modules/reagents/newchem/drugs.dm b/code/modules/reagents/newchem/drugs.dm
index 6d8a7d4117f..127a37593d1 100644
--- a/code/modules/reagents/newchem/drugs.dm
+++ b/code/modules/reagents/newchem/drugs.dm
@@ -26,11 +26,45 @@
..()
return
-/datum/reagent/nicotine/overdose_process(var/mob/living/M as mob)
- M.adjustToxLoss(1*REM)
- M.adjustOxyLoss(1*REM)
- ..()
- return
+/datum/reagent/nicotine/overdose_process(var/mob/living/M as mob, severity)
+ var/effect = ..()
+ if(severity == 1)
+ if(effect <= 2)
+ M.visible_message("[M] looks nervous!")
+ M.confused += 15
+ M.adjustToxLoss(2)
+ M.Jitter(10)
+ M.emote("twitch_s")
+ else if(effect <= 4)
+ M.visible_message("[M] is all sweaty!")
+ M.bodytemperature += rand(15,30)
+ M.adjustToxLoss(3)
+ else if(effect <= 7)
+ M.adjustToxLoss(4)
+ M.emote("twitch")
+ M.Jitter(10)
+ else if(severity == 2)
+ if(effect <= 2)
+ M.emote("gasp")
+ to_chat(M, "You can't breathe!")
+ M.adjustOxyLoss(15)
+ M.adjustToxLoss(3)
+ M.Stun(1)
+ else if(effect <= 4)
+ to_chat(M, "You feel terrible!")
+ M.emote("drool")
+ M.Jitter(10)
+ M.adjustToxLoss(5)
+ M.Weaken(1)
+ M.confused += 33
+ else if(effect <= 7)
+ M.emote("collapse")
+ to_chat(M, "Your heart is pounding!")
+ M << 'sound/effects/singlebeat.ogg'
+ M.Paralyse(5)
+ M.Jitter(30)
+ M.adjustToxLoss(6)
+ M.adjustOxyLoss(20)
/datum/reagent/crank
name = "Crank"
@@ -62,12 +96,45 @@
M.emote(pick("groan", "moan"))
..()
return
-/datum/reagent/crank/overdose_process(var/mob/living/M as mob)
- M.adjustBrainLoss(rand(1,10)*REM)
- M.adjustToxLoss(rand(1,10)*REM)
- M.adjustBruteLoss(rand(1,10)*REM)
- ..()
- return
+
+/datum/reagent/crank/overdose_process(var/mob/living/M as mob, severity)
+ var/effect = ..()
+ if(severity == 1)
+ if(effect <= 2)
+ M.visible_message("[M] looks confused!")
+ M.confused += 20
+ M.Jitter(20)
+ M.emote("scream")
+ else if(effect <= 4)
+ M.visible_message("[M] is all sweaty!")
+ M.bodytemperature += rand(5,30)
+ M.adjustBrainLoss(1)
+ M.adjustToxLoss(1)
+ M.Stun(2)
+ else if(effect <= 7)
+ M.Jitter(30)
+ M.emote("grumble")
+ else if(severity == 2)
+ if(effect <= 2)
+ M.visible_message("[M] is sweating like a pig!")
+ M.bodytemperature += rand(20,100)
+ M.adjustToxLoss(5)
+ M.Stun(3)
+ else if(effect <= 4)
+ M.visible_message("[M] starts tweaking the hell out!")
+ M.Jitter(100)
+ M.adjustToxLoss(2)
+ M.adjustBrainLoss(8)
+ M.Weaken(3)
+ M.confused += 25
+ M.emote("scream")
+ M.reagents.add_reagent("jagged_crystals", 5)
+ else if(effect <= 7)
+ M.emote("scream")
+ M.visible_message("[M] nervously scratches at their skin!")
+ M.Jitter(10)
+ M.adjustBruteLoss(5)
+ M.emote("twitch_s")
/datum/chemical_reaction/crank
name = "Crank"
@@ -120,12 +187,40 @@
..()
return
-/datum/reagent/krokodil/overdose_process(var/mob/living/M as mob)
- if(prob(10))
- M.adjustBrainLoss(rand(1,5)*REM)
- M.adjustToxLoss(rand(1,5)*REM)
- ..()
- return
+/datum/reagent/krokodil/overdose_process(var/mob/living/M as mob, severity)
+ var/effect = ..()
+ if(severity == 1)
+ if(effect <= 2)
+ M.visible_message("[M] looks dazed!")
+ M.Stun(3)
+ M.emote("drool")
+ else if(effect <= 4)
+ M.emote("shiver")
+ M.bodytemperature -= 40
+ else if(effect <= 7)
+ to_chat(M, "Your skin is cracking and bleeding!")
+ M.adjustBruteLoss(5)
+ M.adjustToxLoss(2)
+ M.adjustBrainLoss(1)
+ M.emote("cry")
+ else if(severity == 2)
+ if(effect <= 2)
+ M.visible_message("[M] sways and falls over!")
+ M.adjustToxLoss(3)
+ M.adjustBrainLoss(3)
+ M.Weaken(8)
+ M.emote("faint")
+ else if(effect <= 4)
+ if(ishuman(M))
+ var/mob/living/carbon/human/H = M
+ H.visible_message("[M]'s skin is rotting away!")
+ H.adjustBruteLoss(25)
+ H.emote("scream")
+ H.ChangeToHusk()
+ H.emote("faint")
+ else if(effect <= 7)
+ M.emote("shiver")
+ M.bodytemperature -= 70
/datum/chemical_reaction/krokodil
name = "Krokodil"
@@ -169,19 +264,30 @@
..()
return
-/datum/reagent/methamphetamine/overdose_process(var/mob/living/M as mob)
- if(prob(20))
- M.emote("laugh")
- if(prob(33))
- M.visible_message("[M]'s hands flip out and flail everywhere!")
- var/obj/item/I = M.get_active_hand()
- if(I)
- M.drop_item()
- ..()
- if(prob(50))
- M.adjustToxLoss(10)
- M.adjustBrainLoss(pick(0.5, 0.6, 0.7, 0.8, 0.9, 1))
- return
+/datum/reagent/methamphetamine/overdose_process(var/mob/living/M as mob, severity)
+ var/effect = ..()
+ if(severity == 1)
+ if(effect <= 2)
+ M.visible_message("[M] can't seem to control their legs!")
+ M.confused += 20
+ M.Weaken(4)
+ else if(effect <= 4)
+ M.visible_message("[M]'s hands flip out and flail everywhere!")
+ M.drop_l_hand()
+ M.drop_r_hand()
+ else if(effect <= 7)
+ M.emote("laugh")
+ else if(severity == 2)
+ if(effect <= 2)
+ M.visible_message("[M]'s hands flip out and flail everywhere!")
+ M.drop_l_hand()
+ M.drop_r_hand()
+ else if(effect <= 4)
+ M.visible_message("[M] falls to the floor and flails uncontrollably!")
+ M.Jitter(10)
+ M.Weaken(10)
+ else if(effect <= 7)
+ M.emote("laugh")
/datum/chemical_reaction/methamphetamine
name = "methamphetamine"
@@ -220,30 +326,97 @@
name = "Bath Salts"
id = "bath_salts"
description = "Sometimes packaged as a refreshing bathwater additive, these crystals are definitely not for human consumption."
- reagent_state = LIQUID
- color = "#60A584" // rgb: 96, 165, 132
+ reagent_state = SOLID
+ color = "#FAFAFA"
overdose_threshold = 20
addiction_chance = 80
metabolization_rate = 0.6
-
/datum/reagent/bath_salts/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- var/high_message = pick("You feel amped up.", "You feel ready.", "You feel like you can push it to the limit.")
- if(prob(5))
- to_chat(M, "[high_message]")
- M.AdjustParalysis(-5)
- M.AdjustStunned(-5)
- M.AdjustWeakened(-5)
- M.adjustStaminaLoss(-10)
- M.adjustBrainLoss(1)
- M.adjustToxLoss(0.1)
- M.hallucination += 10
- if(M.canmove && !istype(M.loc, /turf/space))
- step(M, pick(cardinal))
- step(M, pick(cardinal))
+ var/check = rand(0,100)
+ if(ishuman(M))
+ var/mob/living/carbon/human/H = M
+ if(check < 8 && H.h_style != "Very Long Beard")
+ H.h_style = "Very Long Hair"
+ H.f_style = "Very Long Beard"
+ H.update_hair()
+ H.update_fhair()
+ H.visible_message("[H] has a wild look in their eyes!")
+ if(check < 60)
+ M.SetParalysis(0)
+ M.SetStunned(0)
+ M.SetWeakened(0)
+ if(check < 30)
+ M.emote(pick("twitch", "twitch_s", "scream", "drool", "grumble", "mumble"))
+ M.druggy = max(M.druggy, 15)
+ if(check < 20)
+ M.confused += 10
+ if(check < 8)
+ M.reagents.add_reagent(pick("methamphetamine", "crank", "neurotoxin"), rand(1,5))
+ M.visible_message("[M] scratches at something under their skin!")
+ M.adjustBruteLoss(5)
+ else if(check < 16)
+ M.hallucination += 30
+ else if(check < 24)
+ to_chat(M, "They're coming for you!")
+ else if(check < 28)
+ to_chat(M, "THEY'RE GONNA GET YOU!")
..()
- return
+
+/datum/reagent/bath_salts/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
+ if(method == INGEST)
+ to_chat(M, "You feel FUCKED UP!!!!!!")
+ M << 'sound/effects/singlebeat.ogg'
+ M.emote("faint")
+ M.apply_effect(5, IRRADIATE, negate_armor = 1)
+ M.adjustToxLoss(5)
+ M.adjustBrainLoss(10)
+ else
+ to_chat(M, "You feel a bit more salty than usual.")
+
+/datum/reagent/bath_salts/overdose_process(var/mob/living/M as mob, severity)
+ var/effect = ..()
+ if(severity == 1)
+ if(effect <= 2)
+ M.visible_message("[M] flails around like a lunatic!")
+ M.confused += 25
+ M.Jitter(10)
+ M.emote("scream")
+ M.reagents.add_reagent("jagged_crystals", 5)
+ else if(effect <= 4)
+ M.visible_message("[M]'s eyes dilate!")
+ M.emote("twitch_s")
+ M.adjustToxLoss(2)
+ M.adjustBrainLoss(1)
+ M.Stun(3)
+ M.eye_blurry = max(M.eye_blurry, 7)
+ M.reagents.add_reagent("jagged_crystals", 5)
+ else if(effect <= 7)
+ M.emote("faint")
+ M.reagents.add_reagent("jagged_crystals", 5)
+ else if(severity == 2)
+ if(effect <= 2)
+ M.visible_message("[M]'s eyes dilate!")
+ M.adjustToxLoss(2)
+ M.adjustBrainLoss(1)
+ M.Stun(3)
+ M.eye_blurry = max(M.eye_blurry, 7)
+ M.reagents.add_reagent("jagged_crystals", 5)
+ else if(effect <= 4)
+ M.visible_message("[M] convulses violently and falls to the floor!")
+ M.Jitter(50)
+ M.adjustToxLoss(2)
+ M.adjustBrainLoss(1)
+ M.Weaken(8)
+ M.emote("gasp")
+ M.reagents.add_reagent("jagged_crystals", 5)
+ else if(effect <= 7)
+ M.emote("scream")
+ M.visible_message("[M] tears at their own skin!")
+ M.adjustBruteLoss(5)
+ M.reagents.add_reagent("jagged_crystals", 5)
+ M.emote("twitch")
/datum/chemical_reaction/bath_salts
name = "bath_salts"
@@ -255,19 +428,37 @@
mix_message = "Tiny cubic crystals precipitate out of the mixture. Huh."
mix_sound = 'sound/goonstation/misc/fuse.ogg'
-/datum/reagent/bath_salts/overdose_process(var/mob/living/M as mob)
- M.hallucination += 10
- if(M.canmove && !istype(M.loc, /turf/space))
- for(var/i = 0, i < 8, i++)
- step(M, pick(cardinal))
- if(prob(20))
- M.emote(pick("twitch","drool","moan"))
- if(prob(33))
- var/obj/item/I = M.get_active_hand()
- if(I)
- M.drop_item()
+/datum/chemical_reaction/jenkem
+ name = "Jenkem"
+ id = "jenkem"
+ result = "jenkem"
+ required_reagents = list("toiletwater" = 1, "ammonia" = 1, "water" = 1)
+ result_amount = 3
+ mix_message = "The mixture ferments into a filthy morass."
+ mix_sound = 'sound/effects/blobattack.ogg'
+
+/datum/chemical_reaction/jenkem/on_reaction(var/datum/reagents/holder)
+ var/turf/T = get_turf(holder.my_atom)
+ T.visible_message("The solution generates a strong vapor!")
+ for(var/mob/living/carbon/C in range(T, 1))
+ if(!(C.wear_mask && (C.internals != null || C.wear_mask.flags & BLOCK_GAS_SMOKE_EFFECT)))
+ C.reagents.add_reagent("jenkem", 25)
+
+/datum/reagent/jenkem
+ name = "Jenkem"
+ id = "jenkem"
+ description = "Jenkem is a prison drug made from fermenting feces in a solution of urine. Extremely disgusting."
+ reagent_state = LIQUID
+ color = "#644600"
+ addiction_chance = 30
+
+/datum/reagent/jenkem/on_mob_life(var/mob/living/M as mob)
+ if(!M) M = holder.my_atom
+ M.Dizzy(5)
+ if(prob(10))
+ M.emote(pick("twitch_s","drool","moan"))
+ M.adjustToxLoss(1)
..()
- return
/datum/chemical_reaction/aranesp
name = "Aranesp"
@@ -381,24 +572,30 @@
/datum/reagent/fliptonium/reagent_deleted(var/mob/living/M as mob)
M.SpinAnimation(speed = 12, loops = -1)
-/datum/reagent/fliptonium/overdose_process(var/mob/living/M as mob)
- if(volume > 15)
- if(prob(5))
- switch(pick(1, 2, 3))
- if(1)
- M.emote("laugh")
- M.adjustToxLoss(1)
- if(2)
- to_chat(M, "[M] can't seem to control their legs!")
- M.Weaken(8)
- M.adjustToxLoss(1)
- if(3)
- to_chat(M, "[M]'s hands flip out and flail everywhere!")
- M.drop_l_hand()
- M.drop_r_hand()
- M.adjustToxLoss(1)
- ..()
- return
+/datum/reagent/fliptonium/overdose_process(var/mob/living/M as mob, severity)
+ var/effect = ..()
+ if(severity == 1)
+ if(effect <= 2)
+ M.visible_message("[M] can't seem to control their legs!")
+ M.confused += 33
+ M.Weaken(2)
+ else if(effect <= 4)
+ M.visible_message("[M]'s hands flip out and flail everywhere!")
+ M.drop_l_hand()
+ M.drop_r_hand()
+ else if(effect <= 7)
+ M.emote("laugh")
+ else if(severity == 2)
+ if(effect <= 2)
+ M.visible_message("[M]'s hands flip out and flail everywhere!")
+ M.drop_l_hand()
+ M.drop_r_hand()
+ else if (effect <= 4)
+ M.visible_message("[M] falls to the floor and flails uncontrollably!")
+ M.Jitter(5)
+ M.Weaken(5)
+ else if(effect <= 7)
+ M.emote("laugh")
//////////////////////////////
// Synth-Drugs //
@@ -445,7 +642,7 @@
..()
return
-/datum/reagent/lube/ultra/overdose_process(var/mob/living/M as mob)
+/datum/reagent/lube/ultra/overdose_process(var/mob/living/M as mob, severity)
if(prob(20))
M.emote("ping")
if(prob(33))
@@ -457,7 +654,6 @@
if(prob(50))
M.adjustFireLoss(10)
M.adjustBrainLoss(pick(0.5, 0.6, 0.7, 0.8, 0.9, 1))
- return
//Surge: Krokodil
/datum/reagent/surge
@@ -484,7 +680,7 @@
..()
return
-/datum/reagent/surge/overdose_process(var/mob/living/M as mob)
+/datum/reagent/surge/overdose_process(var/mob/living/M as mob, severity)
//Hit them with the same effects as an electrode!
M.Stun(5)
M.Weaken(5)
@@ -502,8 +698,6 @@
B.icon = I
M.adjustFireLoss(rand(1,5)*REM)
M.adjustBruteLoss(rand(1,5)*REM)
- ..()
- return
/datum/chemical_reaction/surge
name = "Surge"
diff --git a/code/modules/reagents/newchem/food.dm b/code/modules/reagents/newchem/food.dm
index 6dd18d307f7..e86ed8a2b11 100644
--- a/code/modules/reagents/newchem/food.dm
+++ b/code/modules/reagents/newchem/food.dm
@@ -10,8 +10,10 @@ datum/reagent/questionmark/reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
if(!istype(M, /mob/living))
return
if(method == INGEST)
+ M.Stun(2)
M.Weaken(2)
to_chat(M, "Ugh! Eating that was a terrible idea!")
+ M.ForceContractDisease(new /datum/disease/food_poisoning(0))
datum/reagent/egg
name = "Egg"
@@ -175,15 +177,12 @@ datum/reagent/mugwort/on_mob_life(var/mob/living/M as mob)
metabolization_rate = 0.2
overdose_threshold = 133
-datum/reagent/porktonium/overdose_process(var/mob/living/M as mob)
- if(volume > 133)
- if(prob(15))
- M.reagents.add_reagent("cholesterol", rand(1,3))
- if(prob(8))
- M.reagents.add_reagent("radium", 15)
- M.reagents.add_reagent("cyanide", 10)
- ..()
- return
+/datum/reagent/porktonium/overdose_process(var/mob/living/M as mob, severity)
+ if(prob(15))
+ M.reagents.add_reagent("cholesterol", rand(1,3))
+ if(prob(8))
+ M.reagents.add_reagent("radium", 15)
+ M.reagents.add_reagent("cyanide", 10)
/datum/reagent/fungus
name = "Space fungus"
@@ -202,6 +201,7 @@ datum/reagent/fungus/reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
M.reagents.add_reagent("toxin", rand(1,5))
else if(ranchance <= 5)
to_chat(M, "That tasted absolutely FOUL.")
+ M.ForceContractDisease(new /datum/disease/food_poisoning(0))
else
to_chat(M, "Yuck!")
@@ -283,11 +283,10 @@ datum/reagent/cheese/reaction_turf(var/turf/T, var/volume)
color = "#B2B139"
overdose_threshold = 50
-/datum/reagent/fake_cheese/overdose_process(var/mob/living/M as mob)
+/datum/reagent/fake_cheese/overdose_process(var/mob/living/M as mob, severity)
if(prob(8))
to_chat(M, "You feel something squirming in your stomach. Your thoughts turn to cheese and you begin to sweat.")
M.adjustToxLoss(rand(1,2))
- ..()
/datum/reagent/weird_cheese
name = "Weird cheese"
@@ -442,7 +441,7 @@ datum/reagent/ectoplasm/reaction_turf(var/turf/T, var/volume)
..()
return
-/datum/reagent/hydrogenated_soybeanoil/overdose_process(var/mob/living/M as mob)
+/datum/reagent/hydrogenated_soybeanoil/overdose_process(var/mob/living/M as mob, severity)
if(prob(33))
to_chat(M, "You feel horribly weak.")
if(prob(10))
@@ -453,7 +452,6 @@ datum/reagent/ectoplasm/reaction_turf(var/turf/T, var/volume)
M.adjustOxyLoss(25)
M.Stun(5)
M.Paralyse(10)
- ..()
/datum/chemical_reaction/hydrogenated_soybeanoil
name = "Partially hydrogenated space-soybean oil"
diff --git a/code/modules/reagents/newchem/medicine.dm b/code/modules/reagents/newchem/medicine.dm
index 90980c3a421..bc319a9b6bd 100644
--- a/code/modules/reagents/newchem/medicine.dm
+++ b/code/modules/reagents/newchem/medicine.dm
@@ -65,6 +65,7 @@ datum/reagent/salglu_solution
description = "This saline and glucose solution can help stabilize critically injured patients and cleanse wounds."
reagent_state = LIQUID
color = "#C8A5DC"
+ penetrates_skin = 1
metabolization_rate = 0.15
datum/reagent/salglu_solution/on_mob_life(var/mob/living/M as mob)
@@ -170,7 +171,7 @@ datum/reagent/omnizine
overdose_threshold = 30
addiction_chance = 5
-datum/reagent/omnizine/on_mob_life(var/mob/living/M as mob)
+/datum/reagent/omnizine/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M.adjustToxLoss(-1*REM)
M.adjustOxyLoss(-1*REM)
@@ -181,13 +182,39 @@ datum/reagent/omnizine/on_mob_life(var/mob/living/M as mob)
..()
return
-datum/reagent/omnizine/overdose_process(var/mob/living/M as mob)
- M.adjustToxLoss(3*REM)
- M.adjustOxyLoss(3*REM)
- M.adjustBruteLoss(3*REM)
- M.adjustFireLoss(3*REM)
- ..()
- return
+/datum/reagent/omnizine/overdose_process(var/mob/living/M as mob, severity)
+ var/effect = ..()
+ if(severity == 1) //lesser
+ M.stuttering += 1
+ if(effect <= 1)
+ M.visible_message("[M] suddenly cluches their gut!")
+ M.emote("scream")
+ M.Stun(4)
+ M.Weaken(4)
+ else if(effect <= 3)
+ M.visible_message("[M] completely spaces out for a moment.")
+ M.confused += 15
+ else if(effect <= 5)
+ M.visible_message("[M] stumbles and staggers.")
+ M.Dizzy(5)
+ M.Weaken(3)
+ else if(effect <= 7)
+ M.visible_message("[M] shakes uncontrollably.")
+ M.Jitter(30)
+ else if(severity == 2) // greater
+ if(effect <= 2)
+ M.visible_message("[M] suddenly cluches their gut!")
+ M.emote("scream")
+ M.Stun(7)
+ M.Weaken(7)
+ else if(effect <= 5)
+ M.visible_message("[M] jerks bolt upright, then collapses!")
+ M.Paralyse(5)
+ M.Weaken(4)
+ else if(effect <= 8)
+ M.visible_message("[M] stumbles and staggers.")
+ M.Dizzy(5)
+ M.Weaken(3)
datum/reagent/calomel
name = "Calomel"
@@ -290,13 +317,6 @@ datum/reagent/sal_acid/on_mob_life(var/mob/living/M as mob)
..()
return
-datum/reagent/sal_acid/overdose_process(var/mob/living/M as mob)
- if(volume > 25)
- if(prob(8))
- M.adjustToxLoss(rand(1,2))
- ..()
- return
-
/datum/chemical_reaction/sal_acid
name = "Salicyclic Acid"
id = "sal_acid"
@@ -361,17 +381,17 @@ datum/reagent/perfluorodecalin/on_mob_life(var/mob/living/carbon/human/M as mob)
mix_message = "The mixture rapidly turns into a dense pink liquid."
mix_sound = 'sound/goonstation/misc/drinkfizz.ogg'
-datum/reagent/ephedrine
+/datum/reagent/ephedrine
name = "Ephedrine"
id = "ephedrine"
description = "Ephedrine is a plant-derived stimulant."
reagent_state = LIQUID
color = "#C8A5DC"
metabolization_rate = 0.3
- overdose_threshold = 45
+ overdose_threshold = 35
addiction_chance = 25
-datum/reagent/ephedrine/on_mob_life(var/mob/living/M as mob)
+/datum/reagent/ephedrine/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M.drowsyness = max(0, M.drowsyness-5)
M.AdjustParalysis(-1)
@@ -389,12 +409,26 @@ datum/reagent/ephedrine/on_mob_life(var/mob/living/M as mob)
..()
return
-datum/reagent/ephedrine/overdose_process(var/mob/living/M as mob)
- if(prob(33))
- M.adjustToxLoss(1*REM)
- M.losebreath++
- ..()
- return
+/datum/reagent/ephedrine/overdose_process(var/mob/living/M as mob, severity)
+ var/effect = ..()
+ if(severity == 1)
+ if(effect <= 1)
+ M.visible_message("[M] suddenly and violently vomits!")
+ M.fakevomit(no_text = 1)
+ else if(effect <= 3)
+ M.emote(pick("groan","moan"))
+ if(effect <= 8)
+ M.emote("collapse")
+ else if(severity == 2)
+ if(effect <= 2)
+ M.visible_message("[M] suddenly and violently vomits!")
+ M.fakevomit(no_text = 1)
+ else if(effect <= 5)
+ M.visible_message("[M.name] staggers and drools, their eyes bloodshot!")
+ M.Dizzy(2)
+ M.Weaken(3)
+ if(effect <= 15)
+ M.emote("collapse")
/datum/chemical_reaction/ephedrine
name = "Ephedrine"
@@ -441,7 +475,7 @@ datum/reagent/morphine
description = "A strong but highly addictive opiate painkiller with sedative side effects."
reagent_state = LIQUID
color = "#C8A5DC"
- overdose_threshold = 30
+ overdose_threshold = 20
addiction_chance = 50
shock_reduction = 50
@@ -464,16 +498,6 @@ datum/reagent/morphine/on_mob_life(var/mob/living/M as mob)
..()
return
-datum/reagent/morphine/overdose_process(var/mob/living/M as mob)
- if(prob(33))
- var/obj/item/I = M.get_active_hand()
- if(I)
- M.drop_item()
- M.Dizzy(1)
- M.Jitter(1)
- ..()
- return
-
datum/reagent/oculine/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
if(prob(80))
@@ -519,7 +543,7 @@ datum/reagent/atropine
reagent_state = LIQUID
color = "#000000"
metabolization_rate = 0.2
- overdose_threshold = 35
+ overdose_threshold = 25
datum/reagent/atropine/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
@@ -541,14 +565,6 @@ datum/reagent/atropine/on_mob_life(var/mob/living/M as mob)
..()
return
-datum/reagent/atropine/overdose_process(var/mob/living/M as mob)
- if(prob(50))
- M.adjustToxLoss(2*REM)
- M.Dizzy(1)
- M.Jitter(1)
- ..()
- return
-
/datum/chemical_reaction/atropine
name = "Atropine"
id = "atropine"
@@ -564,7 +580,7 @@ datum/reagent/epinephrine
reagent_state = LIQUID
color = "#96B1AE"
metabolization_rate = 0.2
- overdose_threshold = 30
+ overdose_threshold = 20
datum/reagent/epinephrine/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
@@ -591,13 +607,26 @@ datum/reagent/epinephrine/on_mob_life(var/mob/living/M as mob)
..()
return
-datum/reagent/epinephrine/overdose_process(var/mob/living/M as mob)
- if(prob(33))
- M.adjustStaminaLoss(5*REM)
- M.adjustToxLoss(2*REM)
- M.losebreath++
- ..()
- return
+/datum/reagent/epinephrine/overdose_process(var/mob/living/M as mob, severity)
+ var/effect = ..()
+ if (severity == 1)
+ if(effect <= 1)
+ M.visible_message("[M] suddenly and violently vomits!")
+ M.fakevomit(no_text = 1)
+ else if(effect <= 3)
+ M.emote(pick("groan","moan"))
+ if(effect <= 8)
+ M.emote("collapse")
+ else if(severity == 2)
+ if(effect <= 2)
+ M.visible_message("[M] suddenly and violently vomits!")
+ M.fakevomit(no_text = 1)
+ else if(effect <= 5)
+ M.visible_message("[M] staggers and drools, their eyes bloodshot!")
+ M.Dizzy(2)
+ M.Weaken(3)
+ if(effect <= 15)
+ M.emote("collapse")
/datum/chemical_reaction/epinephrine
name = "Epinephrine"
@@ -812,13 +841,11 @@ datum/reagent/stimulants/reagent_deleted(var/mob/living/M as mob)
M.adjustStaminaLoss(-5*REM)
..()
-/datum/reagent/medicine/stimulative_agent/overdose_process(mob/living/M)
+/datum/reagent/medicine/stimulative_agent/overdose_process(mob/living/M, severity)
if(prob(33))
M.adjustStaminaLoss(2.5*REM)
M.adjustToxLoss(1*REM)
M.losebreath++
- ..()
- return
datum/reagent/insulin
name = "Insulin"
@@ -855,6 +882,7 @@ datum/reagent/teporone
reagent_state = LIQUID
color = "#D782E6"
addiction_chance = 20
+ overdose_threshold = 50
datum/reagent/teporone/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
diff --git a/code/modules/reagents/newchem/newchem_procs.dm b/code/modules/reagents/newchem/newchem_procs.dm
index 97516f916c9..8f3fa6204d2 100644
--- a/code/modules/reagents/newchem/newchem_procs.dm
+++ b/code/modules/reagents/newchem/newchem_procs.dm
@@ -51,14 +51,15 @@
continue
//If you got this far, that means we can process whatever reagent this iteration is for. Handle things normally from here.
if(M && R)
+ R.on_mob_life(M)
if(R.volume >= R.overdose_threshold && !R.overdosed && R.overdose_threshold > 0)
R.overdosed = 1
R.overdose_start(M)
if(R.volume < R.overdose_threshold && R.overdosed)
R.overdosed = 0
if(R.overdosed)
- R.overdose_process(M)
- R.on_mob_life(M)
+ R.overdose_process(M, R.volume >= R.overdose_threshold*2 ? 2 : 1)
+
for(var/A in addiction_list)
var/datum/reagent/R = A
if(M && R)
@@ -117,8 +118,11 @@
return
// Called if the reagent has passed the overdose threshold and is set to be triggering overdose effects
-/datum/reagent/proc/overdose_process(var/mob/living/M as mob)
- return
+/datum/reagent/proc/overdose_process(var/mob/living/M as mob, severity)
+ var/effect = rand(1, 100) - severity
+ if (effect <= 8)
+ M.adjustToxLoss(severity)
+ return effect
/datum/reagent/proc/overdose_start(var/mob/living/M as mob)
return
diff --git a/code/modules/reagents/newchem/toxins.dm b/code/modules/reagents/newchem/toxins.dm
index b602e282b1f..4c7f75829e0 100644
--- a/code/modules/reagents/newchem/toxins.dm
+++ b/code/modules/reagents/newchem/toxins.dm
@@ -55,23 +55,45 @@
..()
return
-/datum/reagent/histamine/overdose_process(var/mob/living/M as mob)
- if(prob(2))
- to_chat(M, "You feel mucus running down the back of your throat.")
- M.adjustToxLoss(1)
- M.jitteriness += 4
- M.emote("sneeze", "cough")
- else if(prob(4))
- M.stuttering += rand(0,5)
- if(prob(25))
- M.emote(pick("choke","gasp"))
- M.adjustOxyLoss(5)
- else if(prob(7))
- to_chat(M, "Your chest hurts!")
- M.emote(pick("cough","gasp"))
- M.adjustOxyLoss(3)
- ..()
- return
+/datum/reagent/histamine/overdose_process(var/mob/living/M as mob, severity)
+ var/effect = ..()
+ if(severity == 1)
+ if(effect <= 2)
+ to_chat(M, "You feel mucus running down the back of your throat.")
+ M.adjustToxLoss(1)
+ M.Jitter(4)
+ M.emote(pick("sneeze", "cough"))
+ else if(effect <= 4)
+ M.stuttering += rand(0,5)
+ if(prob(25))
+ M.emote(pick("choke","gasp"))
+ M.adjustOxyLoss(5)
+ else if(effect <= 7)
+ to_chat(M, "Your chest hurts!")
+ M.emote(pick("cough","gasp"))
+ M.adjustOxyLoss(3)
+ else if(severity == 2)
+ if(effect <= 2)
+ M.visible_message("[M] breaks out in hives!")
+ M.adjustBruteLoss(6)
+ else if(effect <= 4)
+ M.visible_message("[M] has a horrible coughing fit!")
+ M.Jitter(10)
+ M.stuttering += rand(0,5)
+ M.emote("cough")
+ if(prob(40))
+ M.emote(pick("choke","gasp"))
+ M.adjustOxyLoss(6)
+ M.Weaken(8)
+ else if(effect <= 7)
+ to_chat(M, "Your heartbeat is pounding inside your head!")
+ M << 'sound/effects/singlebeat.ogg'
+ M.emote("collapse")
+ M.adjustOxyLoss(8)
+ M.adjustToxLoss(3)
+ M.Weaken(3)
+ M.emote(pick("choke", "gasp"))
+ to_chat(M, "You feel like you're dying!")
/datum/reagent/formaldehyde
name = "Formaldehyde"
@@ -130,8 +152,6 @@
M.jitteriness += 1000
spawn(rand(20, 100))
M.gib()
- ..()
- return
/datum/reagent/neurotoxin2
name = "Neurotoxin"
@@ -627,6 +647,7 @@
color = "#C7C7C7"
metabolization_rate = 0.1
penetrates_skin = 1
+ overdose_threshold = 25
/datum/chemical_reaction/sarin
name = "sarin"
diff --git a/code/modules/reagents/oldchem/reagents/drink/reagents_alcohol.dm b/code/modules/reagents/oldchem/reagents/drink/reagents_alcohol.dm
index 2d85730193f..12e1a554edd 100644
--- a/code/modules/reagents/oldchem/reagents/drink/reagents_alcohol.dm
+++ b/code/modules/reagents/oldchem/reagents/drink/reagents_alcohol.dm
@@ -151,10 +151,8 @@
..()
return
-/datum/reagent/ethanol/absinthe/overdose_process(mob/living/M)
+/datum/reagent/ethanol/absinthe/overdose_process(mob/living/M, severity)
M.adjustToxLoss(1)
- ..()
- return
/datum/reagent/ethanol/rum
name = "Rum"
@@ -169,10 +167,8 @@
M.dizziness +=5
return
-/datum/reagent/ethanol/rum/overdose_process(mob/living/M)
+/datum/reagent/ethanol/rum/overdose_process(mob/living/M, severity)
M.adjustToxLoss(1)
- ..()
- return
/datum/reagent/ethanol/mojito
name = "Mojito"
diff --git a/code/modules/reagents/oldchem/reagents/drink/reagents_drink.dm b/code/modules/reagents/oldchem/reagents/drink/reagents_drink.dm
index 9daf9cb9ec1..45e0e2e8ac2 100644
--- a/code/modules/reagents/oldchem/reagents/drink/reagents_drink.dm
+++ b/code/modules/reagents/oldchem/reagents/drink/reagents_drink.dm
@@ -201,13 +201,10 @@
..()
return
-/datum/reagent/drink/coffee/overdose_process(var/mob/living/M as mob)
+/datum/reagent/drink/coffee/overdose_process(var/mob/living/M as mob, severity)
if(volume > 45)
M.Jitter(5)
- ..()
- return
-
/datum/reagent/drink/coffee/icecoffee
name = "Iced Coffee"
id = "icecoffee"
diff --git a/code/modules/reagents/oldchem/reagents/reagents_food.dm b/code/modules/reagents/oldchem/reagents/reagents_food.dm
index 05a3fad7808..4c284d7d7cc 100644
--- a/code/modules/reagents/oldchem/reagents/reagents_food.dm
+++ b/code/modules/reagents/oldchem/reagents/reagents_food.dm
@@ -167,13 +167,11 @@
description = "Sodium chloride, common table salt."
reagent_state = SOLID
color = "#B1B0B0"
+ overdose_threshold = 100
-/datum/reagent/sodiumchloride/overdose_process(var/mob/living/M as mob)
- if(volume > 100)
- if(prob(70))
- M.adjustBrainLoss(1)
- if(prob(8))
- M.adjustToxLoss(rand(1,2))
+/datum/reagent/sodiumchloride/overdose_process(var/mob/living/M as mob, severity)
+ if(prob(70))
+ M.adjustBrainLoss(1)
..()
return
@@ -454,11 +452,9 @@
M.emote("collapse")
..()
-/datum/reagent/sugar/overdose_process(var/mob/living/M as mob)
- if(volume > 200)
- M.Paralyse(3)
- M.Weaken(4)
- if(prob(8))
- M.adjustToxLoss(1)
- ..()
- return
+/datum/reagent/sugar/overdose_process(var/mob/living/M as mob, severity)
+ M.Paralyse(3 * severity)
+ M.Weaken(4 * severity)
+ if(prob(8))
+ M.adjustToxLoss(severity)
+
diff --git a/code/modules/reagents/oldchem/reagents/reagents_med.dm b/code/modules/reagents/oldchem/reagents/reagents_med.dm
index 64e3b00936d..0a2fa0396bf 100644
--- a/code/modules/reagents/oldchem/reagents/reagents_med.dm
+++ b/code/modules/reagents/oldchem/reagents/reagents_med.dm
@@ -40,6 +40,7 @@
description = "Synaptizine is used to treat neuroleptic shock. Can be used to help remove disabling symptoms such as paralysis."
reagent_state = LIQUID
color = "#FA46FA"
+ overdose_threshold = 40
/datum/reagent/synaptizine/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
@@ -53,6 +54,27 @@
..()
return
+/datum/reagent/synaptizine/overdose_process(var/mob/living/M as mob, severity)
+ var/effect = ..()
+ if(severity == 1)
+ if(effect <= 1)
+ M.visible_message("[M] suddenly and violently vomits!")
+ M.fakevomit(no_text = 1)
+ else if(effect <= 3)
+ M.emote(pick("groan","moan"))
+ if(effect <= 8)
+ M.adjustToxLoss(1)
+ else if(severity == 2)
+ if(effect <= 2)
+ M.visible_message("[M] suddenly and violently vomits!")
+ M.fakevomit(no_text = 1)
+ else if(effect <= 5)
+ M.visible_message("[M] staggers and drools, their eyes bloodshot!")
+ M.Dizzy(8)
+ M.Weaken(4)
+ if(effect <= 15)
+ M.adjustToxLoss(1)
+
/datum/reagent/mitocholide
name = "Mitocholide"
id = "mitocholide"
@@ -114,12 +136,10 @@
..()
return
-/datum/reagent/rezadone/overdose_process(mob/living/M)
+/datum/reagent/rezadone/overdose_process(mob/living/M, severity)
M.adjustToxLoss(1)
M.Dizzy(5)
M.Jitter(5)
- ..()
- return
/datum/reagent/spaceacillin
name = "Spaceacillin"
diff --git a/paradise.dme b/paradise.dme
index 3a5da1134eb..11e0b205f71 100644
--- a/paradise.dme
+++ b/paradise.dme
@@ -214,12 +214,14 @@
#include "code\datums\diseases\anxiety.dm"
#include "code\datums\diseases\appendicitis.dm"
#include "code\datums\diseases\beesease.dm"
+#include "code\datums\diseases\berserker.dm"
#include "code\datums\diseases\brainrot.dm"
#include "code\datums\diseases\cold.dm"
#include "code\datums\diseases\cold9.dm"
#include "code\datums\diseases\fake_gbs.dm"
#include "code\datums\diseases\flu.dm"
#include "code\datums\diseases\fluspanish.dm"
+#include "code\datums\diseases\food_poisoning.dm"
#include "code\datums\diseases\gbs.dm"
#include "code\datums\diseases\magnitis.dm"
#include "code\datums\diseases\pierrot_throat.dm"