mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-18 18:44:48 +01:00
Merge pull request #4346 from Fox-McCloud/overdose-rework
Overdose Rework and Food Poisoning
This commit is contained in:
@@ -336,7 +336,7 @@
|
||||
message = "<B>[src]</B> 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," \
|
||||
|
||||
@@ -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("<span class='warning'>[src] vomits up some green goo!</span>","<span class='warning'>You vomit up some green goo!</span>")
|
||||
if(!no_text)
|
||||
visible_message("<span class='warning'>[src] vomits up some green goo!</span>","<span class='warning'>You vomit up some green goo!</span>")
|
||||
new /obj/effect/decal/cleanable/vomit/green(location)
|
||||
else
|
||||
src.visible_message("<span class='warning'>[src] pukes all over \himself!</span>","<span class='warning'>You puke all over yourself!</span>")
|
||||
if(!no_text)
|
||||
visible_message("<span class='warning'>[src] pukes all over \himself!</span>","<span class='warning'>You puke all over yourself!</span>")
|
||||
location.add_vomit_floor(src, 1)
|
||||
playsound(location, 'sound/effects/splat.ogg', 50, 1)
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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("<span class='warning'>[M] looks nervous!</span>")
|
||||
M.confused += 15
|
||||
M.adjustToxLoss(2)
|
||||
M.Jitter(10)
|
||||
M.emote("twitch_s")
|
||||
else if(effect <= 4)
|
||||
M.visible_message("<span class='warning'>[M] is all sweaty!</span>")
|
||||
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, "<span class='warning'>You can't breathe!</span>")
|
||||
M.adjustOxyLoss(15)
|
||||
M.adjustToxLoss(3)
|
||||
M.Stun(1)
|
||||
else if(effect <= 4)
|
||||
to_chat(M, "<span class='warning'>You feel terrible!</span>")
|
||||
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, "<span class='warning'>Your heart is pounding!</span>")
|
||||
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("<span class='warning'>[M] looks confused!</span>")
|
||||
M.confused += 20
|
||||
M.Jitter(20)
|
||||
M.emote("scream")
|
||||
else if(effect <= 4)
|
||||
M.visible_message("<span class='warning'>[M] is all sweaty!</span>")
|
||||
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("<span class='warning'>[M] is sweating like a pig!</span>")
|
||||
M.bodytemperature += rand(20,100)
|
||||
M.adjustToxLoss(5)
|
||||
M.Stun(3)
|
||||
else if(effect <= 4)
|
||||
M.visible_message("<span class='warning'>[M] starts tweaking the hell out!</span>")
|
||||
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("<span class='warning'>[M] nervously scratches at their skin!</span>")
|
||||
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("<span class='warning'>[M] looks dazed!</span>")
|
||||
M.Stun(3)
|
||||
M.emote("drool")
|
||||
else if(effect <= 4)
|
||||
M.emote("shiver")
|
||||
M.bodytemperature -= 40
|
||||
else if(effect <= 7)
|
||||
to_chat(M, "<span class='warning'>Your skin is cracking and bleeding!</span>")
|
||||
M.adjustBruteLoss(5)
|
||||
M.adjustToxLoss(2)
|
||||
M.adjustBrainLoss(1)
|
||||
M.emote("cry")
|
||||
else if(severity == 2)
|
||||
if(effect <= 2)
|
||||
M.visible_message("<span class='warning'>[M]</b> sways and falls over!</span>")
|
||||
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("<span class='warning'>[M]'s skin is rotting away!</span>")
|
||||
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("<span class='danger'>[M]'s hands flip out and flail everywhere!</span>")
|
||||
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("<span class='warning'>[M] can't seem to control their legs!</span>")
|
||||
M.confused += 20
|
||||
M.Weaken(4)
|
||||
else if(effect <= 4)
|
||||
M.visible_message("<span class='warning'>[M]'s hands flip out and flail everywhere!</span>")
|
||||
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("<span class='warning'>[M]'s hands flip out and flail everywhere!</span>")
|
||||
M.drop_l_hand()
|
||||
M.drop_r_hand()
|
||||
else if(effect <= 4)
|
||||
M.visible_message("<span class='warning'>[M] falls to the floor and flails uncontrollably!</span>")
|
||||
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, "<span class='notice'>[high_message]</span>")
|
||||
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("<span class='warning'>[H] has a wild look in their eyes!</span>")
|
||||
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("<span class='warning'>[M] scratches at something under their skin!</span>")
|
||||
M.adjustBruteLoss(5)
|
||||
else if(check < 16)
|
||||
M.hallucination += 30
|
||||
else if(check < 24)
|
||||
to_chat(M, "<span class='userdanger'>They're coming for you!</span>")
|
||||
else if(check < 28)
|
||||
to_chat(M, "<span class='userdanger'>THEY'RE GONNA GET YOU!</span>")
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/bath_salts/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
|
||||
if(method == INGEST)
|
||||
to_chat(M, "<span class = 'danger'><font face='[pick("Curlz MT", "Comic Sans MS")]' size='[rand(4,6)]'>You feel FUCKED UP!!!!!!</font></span>")
|
||||
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, "<span class='notice'>You feel a bit more salty than usual.</span>")
|
||||
|
||||
/datum/reagent/bath_salts/overdose_process(var/mob/living/M as mob, severity)
|
||||
var/effect = ..()
|
||||
if(severity == 1)
|
||||
if(effect <= 2)
|
||||
M.visible_message("<span class='danger'>[M] flails around like a lunatic!</span>")
|
||||
M.confused += 25
|
||||
M.Jitter(10)
|
||||
M.emote("scream")
|
||||
M.reagents.add_reagent("jagged_crystals", 5)
|
||||
else if(effect <= 4)
|
||||
M.visible_message("<span class='danger'>[M]'s eyes dilate!</span>")
|
||||
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("<span class='danger'>[M]'s eyes dilate!</span>")
|
||||
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("<span class='danger'>[M] convulses violently and falls to the floor!</span>")
|
||||
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("<span class='danger'>[M] tears at their own skin!</span>")
|
||||
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("<span class='warning'>The solution generates a strong vapor!</span>")
|
||||
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, "<span class='danger'>[M] can't seem to control their legs!</span>")
|
||||
M.Weaken(8)
|
||||
M.adjustToxLoss(1)
|
||||
if(3)
|
||||
to_chat(M, "<span class='danger'>[M]'s hands flip out and flail everywhere!</span>")
|
||||
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("<span class='warning'>[M] can't seem to control their legs!</span>")
|
||||
M.confused += 33
|
||||
M.Weaken(2)
|
||||
else if(effect <= 4)
|
||||
M.visible_message("<span class='warning'>[M]'s hands flip out and flail everywhere!</span>")
|
||||
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("<span class='warning'>[M]'s hands flip out and flail everywhere!</span>")
|
||||
M.drop_l_hand()
|
||||
M.drop_r_hand()
|
||||
else if (effect <= 4)
|
||||
M.visible_message("<span class='warning'>[M] falls to the floor and flails uncontrollably!</span>")
|
||||
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"
|
||||
|
||||
@@ -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, "<span class='danger'>Ugh! Eating that was a terrible idea!</span>")
|
||||
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, "<span class='warning'>That tasted absolutely FOUL.</span>")
|
||||
M.ForceContractDisease(new /datum/disease/food_poisoning(0))
|
||||
else
|
||||
to_chat(M, "<span class='warning'>Yuck!</span>")
|
||||
|
||||
@@ -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, "<span class='warning'>You feel something squirming in your stomach. Your thoughts turn to cheese and you begin to sweat.</span>")
|
||||
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, "<span class='warning'>You feel horribly weak.</span>")
|
||||
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"
|
||||
|
||||
@@ -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("<span class='warning'>[M] suddenly cluches their gut!</span>")
|
||||
M.emote("scream")
|
||||
M.Stun(4)
|
||||
M.Weaken(4)
|
||||
else if(effect <= 3)
|
||||
M.visible_message("<span class='warning'>[M] completely spaces out for a moment.</span>")
|
||||
M.confused += 15
|
||||
else if(effect <= 5)
|
||||
M.visible_message("<span class='warning'>[M] stumbles and staggers.</span>")
|
||||
M.Dizzy(5)
|
||||
M.Weaken(3)
|
||||
else if(effect <= 7)
|
||||
M.visible_message("<span class='warning'>[M] shakes uncontrollably.</span>")
|
||||
M.Jitter(30)
|
||||
else if(severity == 2) // greater
|
||||
if(effect <= 2)
|
||||
M.visible_message("<span class='warning'>[M] suddenly cluches their gut!</span>")
|
||||
M.emote("scream")
|
||||
M.Stun(7)
|
||||
M.Weaken(7)
|
||||
else if(effect <= 5)
|
||||
M.visible_message("<span class='warning'>[M] jerks bolt upright, then collapses!</span>")
|
||||
M.Paralyse(5)
|
||||
M.Weaken(4)
|
||||
else if(effect <= 8)
|
||||
M.visible_message("<span class='warning'>[M] stumbles and staggers.</span>")
|
||||
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("<span class='warning'>[M] suddenly and violently vomits!</span>")
|
||||
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("<span class='warning'>[M] suddenly and violently vomits!</span>")
|
||||
M.fakevomit(no_text = 1)
|
||||
else if(effect <= 5)
|
||||
M.visible_message("<span class='warning'>[M.name] staggers and drools, their eyes bloodshot!</span>")
|
||||
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("<span class='warning'>[M] suddenly and violently vomits!</span>")
|
||||
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("<span class='warning'>[M] suddenly and violently vomits!</span>")
|
||||
M.fakevomit(no_text = 1)
|
||||
else if(effect <= 5)
|
||||
M.visible_message("<span class='warning'>[M] staggers and drools, their eyes bloodshot!</span>")
|
||||
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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -55,23 +55,45 @@
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/histamine/overdose_process(var/mob/living/M as mob)
|
||||
if(prob(2))
|
||||
to_chat(M, "<span class='danger'>You feel mucus running down the back of your throat.</span>")
|
||||
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, "<span class='danger'>Your chest hurts!</span>")
|
||||
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, "<span class='warning'>You feel mucus running down the back of your throat.</span>")
|
||||
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, "<span class='warning'>Your chest hurts!</span>")
|
||||
M.emote(pick("cough","gasp"))
|
||||
M.adjustOxyLoss(3)
|
||||
else if(severity == 2)
|
||||
if(effect <= 2)
|
||||
M.visible_message("<span class='warning'>[M] breaks out in hives!</span>")
|
||||
M.adjustBruteLoss(6)
|
||||
else if(effect <= 4)
|
||||
M.visible_message("<span class='warning'>[M] has a horrible coughing fit!</span>")
|
||||
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, "<span class='warning'>Your heartbeat is pounding inside your head!</span>")
|
||||
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, "<span class='warning'>You feel like you're dying!</span>")
|
||||
|
||||
/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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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("<span class='warning'>[M] suddenly and violently vomits!</span>")
|
||||
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("<span class='warning'>[M] suddenly and violently vomits!</span>")
|
||||
M.fakevomit(no_text = 1)
|
||||
else if(effect <= 5)
|
||||
M.visible_message("<span class='warning'>[M] staggers and drools, their eyes bloodshot!</span>")
|
||||
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"
|
||||
|
||||
Reference in New Issue
Block a user