#define SOLID 1
#define LIQUID 2
#define GAS 3
#define REM REAGENTS_EFFECT_MULTIPLIER
/datum/reagent/polonium
name = "Polonium"
id = "polonium"
description = "Cause significant Radiation damage over time."
reagent_state = LIQUID
color = "#CF3600"
metabolization_rate = 0.1
penetrates_skin = 1
/datum/reagent/polonium/on_mob_life(mob/living/M)
M.apply_effect(8, IRRADIATE, negate_armor = 1)
..()
/datum/reagent/histamine
name = "Histamine"
id = "histamine"
description = "Immune-system neurotransmitter. If detected in blood, the subject is likely undergoing an allergic reaction."
reagent_state = LIQUID
color = "#E7C4C4"
metabolization_rate = 0.2
overdose_threshold = 40
/datum/reagent/histamine/reaction_mob(mob/living/M, method=TOUCH, volume) //dumping histamine on someone is VERY mean.
if(iscarbon(M))
if(method == TOUCH)
M.reagents.add_reagent("histamine",10)
else
to_chat(M, "You feel a burning sensation in your throat...")
M.emote("drool")
/datum/reagent/histamine/on_mob_life(mob/living/M)
if(prob(20))
M.emote(pick("twitch", "grumble", "sneeze", "cough"))
if(prob(10))
to_chat(M, "Your eyes itch.")
M.emote(pick("blink", "sneeze"))
M.eye_blurry += 3
if(prob(10))
M.visible_message("[M] scratches at an itch.")
M.adjustBruteLoss(1)
M.emote("grumble")
if(prob(5))
to_chat(M, "You're getting a rash!")
M.adjustBruteLoss(2)
..()
/datum/reagent/histamine/overdose_process(mob/living/M, 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"
id = "formaldehyde"
description = "Formaldehyde is a common industrial chemical and is used to preserve corpses and medical samples. It is highly toxic and irritating."
reagent_state = LIQUID
color = "#DED6D0"
penetrates_skin = 1
/datum/reagent/formaldehyde/on_mob_life(mob/living/M)
M.adjustToxLoss(1*REM)
if(prob(10))
M.reagents.add_reagent("histamine",rand(5,15))
..()
/datum/chemical_reaction/formaldehyde
name = "formaldehyde"
id = "formaldehyde"
result = "formaldehyde"
required_reagents = list("ethanol" = 1, "oxygen" = 1, "silver" = 1)
result_amount = 3
min_temp = 420
mix_message = "Ugh, it smells like the morgue in here."
/datum/reagent/venom
name = "Venom"
id = "venom"
description = "An incredibly potent poison. Origin unknown."
reagent_state = LIQUID
color = "#CF3600"
metabolization_rate = 0.2
overdose_threshold = 40
/datum/reagent/venom/on_mob_life(mob/living/M)
if(prob(25))
M.reagents.add_reagent("histamine",rand(5,10))
if(volume < 20)
M.adjustToxLoss(1)
M.adjustBruteLoss(1)
else if(volume < 40)
if(prob(8))
M.fakevomit()
M.adjustToxLoss(2)
M.adjustBruteLoss(2)
..()
/datum/reagent/venom/overdose_process(mob/living/M)
if(volume >= 40)
if(prob(4))
M.visible_message("[M] starts convulsing violently!", "You feel as if your body is tearing itself apart!")
M.Weaken(15)
M.jitteriness += 1000
spawn(rand(20, 100))
M.gib()
/datum/reagent/neurotoxin2
name = "Neurotoxin"
id = "neurotoxin2"
description = "A dangerous toxin that attacks the nervous system."
reagent_state = LIQUID
color = "#60A584"
metabolization_rate = 1
/datum/reagent/neurotoxin2/on_mob_life(mob/living/M)
switch(current_cycle)
if(1 to 4)
current_cycle++
return
if(5 to 8)
M.dizziness += 1
M.confused = max(M.confused, 10)
if(9 to 12)
M.drowsyness = max(M.drowsyness, 10)
M.dizziness += 1
M.confused = max(M.confused, 20)
if(13)
M.emote("faint")
if(14 to INFINITY)
M.Paralyse(10)
M.drowsyness = max(M.drowsyness, 20)
M.jitteriness = max(0, M.jitteriness-30)
if(M.getBrainLoss() <= 80)
M.adjustBrainLoss(1)
else
if(prob(10))
M.adjustBrainLoss(1)
if(prob(10))
M.emote("drool")
M.adjustToxLoss(1)
..()
/datum/chemical_reaction/neurotoxin2
name = "neurotoxin2"
id = "neurotoxin2"
result = "neurotoxin2"
required_reagents = list("space_drugs" = 1)
result_amount = 1
min_temp = 674
mix_sound = null
no_message = 1
/datum/reagent/cyanide
name = "Cyanide"
id = "cyanide"
description = "A highly toxic chemical with some uses as a building block for other things."
reagent_state = LIQUID
color = "#CF3600"
metabolization_rate = 0.1
penetrates_skin = 1
/datum/reagent/cyanide/on_mob_life(mob/living/M)
M.adjustToxLoss(1.5*REM)
if(prob(5))
M.emote("drool")
if(prob(10))
to_chat(M, "You cannot breathe!")
M.losebreath += 1
M.emote("gasp")
if(prob(8))
to_chat(M, "You feel horrendously weak!")
M.Stun(2)
M.adjustToxLoss(2)
..()
/datum/chemical_reaction/cyanide
name = "Cyanide"
id = "cyanide"
result = "cyanide"
required_reagents = list("oil" = 1, "ammonia" = 1, "oxygen" = 1)
result_amount = 3
min_temp = 380
mix_message = "The mixture gives off a faint scent of almonds."
mix_sound = 'sound/goonstation/misc/drinkfizz.ogg'
/datum/chemical_reaction/cyanide/on_reaction(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.can_breathe_gas())
C.reagents.add_reagent("cyanide", 7)
/datum/reagent/itching_powder
name = "Itching Powder"
id = "itching_powder"
description = "An abrasive powder beloved by cruel pranksters."
reagent_state = LIQUID
color = "#B0B0B0"
metabolization_rate = 0.3
penetrates_skin = 1
/datum/reagent/itching_powder/on_mob_life(mob/living/M)
if(prob(25))
M.emote(pick("twitch", "laugh", "sneeze", "cry"))
if(prob(20))
to_chat(M, "Something tickles!")
M.emote(pick("laugh", "giggle"))
if(prob(15))
M.visible_message("[M] scratches at an itch.")
M.adjustBruteLoss(1)
M.Stun(rand(0,1))
M.emote("grumble")
if(prob(10))
to_chat(M, "So itchy!")
M.adjustBruteLoss(2)
if(prob(6))
M.reagents.add_reagent("histamine", rand(1,3))
if(prob(2))
to_chat(M, "AHHHHHH!")
M.adjustBruteLoss(5)
M.Weaken(5)
M.jitteriness += 6
M.visible_message("[M] falls to the floor, scratching themselves violently!")
M.emote("scream")
..()
/datum/chemical_reaction/itching_powder
name = "Itching Powder"
id = "itching_powder"
result = "itching_powder"
required_reagents = list("fuel" = 1, "ammonia" = 1, "fungus" = 1)
result_amount = 3
mix_message = "The mixture congeals and dries up, leaving behind an abrasive powder."
mix_sound = 'sound/effects/blobattack.ogg'
/datum/reagent/facid/on_mob_life(mob/living/M)
M.adjustToxLoss(1*REM)
M.adjustFireLoss(1)
..()
/datum/reagent/facid
name = "Fluorosulfuric Acid"
id = "facid"
description = "Fluorosulfuric acid is a an extremely corrosive super-acid."
reagent_state = LIQUID
color = "#4141D2"
process_flags = ORGANIC | SYNTHETIC
/datum/reagent/facid/reaction_mob(mob/living/M, method=TOUCH, volume)
if(method == TOUCH || method == INGEST)
if(ishuman(M))
var/mob/living/carbon/human/H = M
if(volume < 5)
to_chat(M, "The blueish acidic substance stings you, but isn't concentrated enough to harm you!")
if(volume >=5 && volume <=10)
if(!H.unacidable)
M.take_organ_damage(0,max(volume-5,2)*4)
M.emote("scream")
if(volume > 10)
if(method == TOUCH)
if(H.wear_mask)
if(!H.wear_mask.unacidable)
qdel(H.wear_mask)
H.update_inv_wear_mask()
to_chat(H, "Your mask melts away but protects you from the acid!")
else
to_chat(H, "Your mask protects you from the acid!")
return
if(H.head)
if(!H.head.unacidable)
qdel(H.head)
H.update_inv_head()
to_chat(H, "Your helmet melts away but protects you from the acid")
else
to_chat(H, "Your helmet protects you from the acid!")
return
if(!H.unacidable)
var/obj/item/organ/external/affecting = H.get_organ("head")
affecting.take_damage(0, 75)
H.UpdateDamageIcon()
H.emote("scream")
H.status_flags |= DISFIGURED
/datum/reagent/facid/reaction_obj(obj/O, volume)
if((istype(O, /obj/item) || istype(O, /obj/effect/glowshroom)))
if(!O.unacidable)
var/obj/effect/decal/cleanable/molten_item/I = new/obj/effect/decal/cleanable/molten_item(O.loc)
I.desc = "Looks like this was \an [O] some time ago."
O.visible_message("[O] melts.")
qdel(O)
/datum/chemical_reaction/facid
name = "Fluorosulfuric Acid"
id = "facid"
result = "facid"
required_reagents = list("sacid" = 1, "fluorine" = 1, "hydrogen" = 1, "potassium" = 1)
result_amount = 4
min_temp = 380
mix_message = "The mixture deepens to a dark blue, and slowly begins to corrode its container."
/datum/reagent/initropidril
name = "Initropidril"
id = "initropidril"
description = "A highly potent cardiac poison - can kill within minutes."
reagent_state = LIQUID
color = "#7F10C0"
metabolization_rate = 0.4
/datum/reagent/initropidril/on_mob_life(mob/living/M)
if(prob(33))
M.adjustToxLoss(rand(5,25))
if(prob(33))
to_chat(M, "You feel horribly weak.")
M.Stun(2)
if(prob(10))
to_chat(M, "You cannot breathe!")
M.adjustOxyLoss(10)
M.losebreath++
if(prob(10))
to_chat(M, "Your chest is burning with pain!")
M.adjustOxyLoss(10)
M.losebreath++
M.Stun(3)
M.Weaken(2)
if(ishuman(M))
var/mob/living/carbon/human/H = M
if(!H.heart_attack)
H.heart_attack = 1 // rip in pepperoni
..()
/datum/chemical_reaction/initropidril
name = "Initropidril"
id = "initropidril"
result = "initropidril"
required_reagents = list("crank" = 1, "histamine" = 1, "krokodil" = 1, "bath_salts" = 1, "atropine" = 1, "nicotine" = 1, "morphine" = 1)
result_amount = 4
mix_message = "A sweet and sugary scent drifts from the unpleasant milky substance."
/datum/reagent/concentrated_initro
name = "Concentrated Initropidril"
id = "concentrated_initro"
description = "A guaranteed heart-stopper!"
reagent_state = LIQUID
color = "#AB1CCF"
metabolization_rate = 0.4
/datum/reagent/concentrated_initro/on_mob_life(mob/living/M)
if(volume >=5)
if(ishuman(M))
var/mob/living/carbon/human/H = M
if(!H.heart_attack)
H.heart_attack = 1 // rip in pepperoni
/datum/reagent/pancuronium
name = "Pancuronium"
id = "pancuronium"
description = "Pancuronium bromide is a powerful skeletal muscle relaxant."
reagent_state = LIQUID
color = "#1E4664"
metabolization_rate = 0.2
/datum/reagent/pancuronium/on_mob_life(mob/living/M)
switch(current_cycle)
if(1 to 5)
if(prob(10))
M.emote(pick("drool", "tremble"))
if(6 to 10)
if(prob(8))
to_chat(M, "You feel [pick("weak", "horribly weak", "numb", "like you can barely move", "tingly")].")
M.Stun(1)
else if(prob(8))
M.emote(pick("drool", "tremble"))
if(11 to INFINITY)
M.Stun(20)
M.Weaken(20)
if(prob(10))
M.emote(pick("drool", "tremble", "gasp"))
M.losebreath++
if(prob(9))
to_chat(M, "You can't [pick("move", "feel your legs", "feel your face", "feel anything")]!")
if(prob(7))
to_chat(M, "You can't breathe!")
M.losebreath += 3
..()
/datum/reagent/sodium_thiopental
name = "Sodium Thiopental"
id = "sodium_thiopental"
description = "An rapidly-acting barbituate tranquilizer."
reagent_state = LIQUID
color = "#5F8BE1"
metabolization_rate = 0.7
/datum/reagent/sodium_thiopental/on_mob_life(mob/living/M)
switch(current_cycle)
if(1)
M.emote("drool")
M.confused = max(M.confused, 5)
if(2 to 4)
M.drowsyness = max(M.drowsyness, 20)
if(5)
M.emote("faint")
M.Weaken(5)
if(6 to INFINITY)
M.Paralyse(20)
M.jitteriness = max(0, M.jitteriness-50)
if(prob(10))
M.emote("drool")
M.adjustBrainLoss(1)
..()
/datum/reagent/ketamine
name = "Ketamine"
id = "ketamine"
description = "A potent veterinary tranquilizer."
reagent_state = LIQUID
color = "#646EA0"
metabolization_rate = 0.8
penetrates_skin = 1
/datum/reagent/ketamine/on_mob_life(mob/living/M)
switch(current_cycle)
if(1 to 5)
if(prob(25))
M.emote("yawn")
if(6 to 9)
M.eye_blurry += 5
if(prob(35))
M.emote("yawn")
if(10)
M.emote("faint")
M.Weaken(5)
if(11 to INFINITY)
M.Paralyse(25)
..()
/datum/reagent/sulfonal
name = "Sulfonal"
id = "sulfonal"
description = "Deals some toxin damage, and puts you to sleep after 66 seconds."
reagent_state = LIQUID
color = "#6BA688"
metabolization_rate = 0.1
/datum/chemical_reaction/sulfonal
name = "sulfonal"
id = "sulfonal"
result = "sulfonal"
required_reagents = list("acetone" = 1, "diethylamine" = 1, "sulfur" = 1)
result_amount = 3
mix_message = "The mixture gives off quite a stench."
mix_sound = 'sound/goonstation/misc/drinkfizz.ogg'
/datum/reagent/sulfonal/on_mob_life(mob/living/M)
M.jitteriness = max(0, M.jitteriness-30)
switch(current_cycle)
if(1 to 10)
if(prob(7))
M.emote("yawn")
if(11 to 20)
M.drowsyness = max(M.drowsyness, 20)
if(21)
M.emote("faint")
if(22 to INFINITY)
if(prob(20))
M.emote("faint")
M.Paralyse(5)
M.drowsyness = max(M.drowsyness, 20)
M.adjustToxLoss(1)
..()
/datum/reagent/amanitin
name = "Amanitin"
id = "amanitin"
description = "A toxin produced by certain mushrooms. Very deadly."
reagent_state = LIQUID
color = "#D9D9D9"
/datum/reagent/amanitin/reagent_deleted(mob/living/M)
M.adjustToxLoss(current_cycle*rand(2,4))
..()
/datum/reagent/lipolicide
name = "Lipolicide"
id = "lipolicide"
description = "A compound found in many seedy dollar stores in the form of a weight-loss tonic."
reagent_state = SOLID
color = "#D1DED1"
metabolization_rate = 0.2
/datum/chemical_reaction/lipolicide
name = "lipolicide"
id = "lipolicide"
result = "lipolicide"
required_reagents = list("mercury" = 1, "diethylamine" = 1, "ephedrine" = 1)
result_amount = 3
/datum/reagent/lipolicide/on_mob_life(mob/living/M)
if(!M.nutrition)
switch(rand(1,3))
if(1)
to_chat(M, "You feel hungry...")
if(2)
M.adjustToxLoss(1)
to_chat(M, "Your stomach grumbles painfully!")
else
if(prob(60))
var/fat_to_burn = max(round(M.nutrition/100,1), 5)
M.nutrition = max(0, M.nutrition-fat_to_burn)
M.overeatduration = 0
..()
/datum/reagent/coniine
name = "Coniine"
id = "coniine"
description = "A neurotoxin that rapidly causes respiratory failure."
reagent_state = LIQUID
color = "#C2D8CD"
metabolization_rate = 0.05
/datum/reagent/coniine/on_mob_life(mob/living/M)
M.adjustToxLoss(2)
M.losebreath += 5
..()
/datum/reagent/curare
name = "Curare"
id = "curare"
description = "A highly dangerous paralytic poison."
reagent_state = LIQUID
color = "#191919"
metabolization_rate = 0.1
penetrates_skin = 1
/datum/reagent/curare/on_mob_life(mob/living/M)
M.adjustToxLoss(1)
M.adjustOxyLoss(1)
switch(current_cycle)
if(1 to 5)
if(prob(20))
M.emote(pick("drool", "pale", "gasp"))
if(6 to 10)
M.eye_blurry += 5
if(prob(8))
to_chat(M, "You feel [pick("weak", "horribly weak", "numb", "like you can barely move", "tingly")].")
M.Stun(1)
else if(prob(8))
M.emote(pick("drool","pale", "gasp"))
if(11 to INFINITY)
M.Stun(30)
M.drowsyness = max(M.drowsyness, 20)
if(prob(20))
M.emote(pick("drool", "faint", "pale", "gasp", "collapse"))
else if(prob(8))
to_chat(M, "You can't [pick("breathe", "move", "feel your legs", "feel your face", "feel anything")]!")
M.losebreath++
..()
/datum/reagent/sarin
name = "Sarin"
id = "sarin"
description = "An extremely deadly neurotoxin."
reagent_state = LIQUID
color = "#C7C7C7"
metabolization_rate = 0.1
penetrates_skin = 1
overdose_threshold = 25
/datum/chemical_reaction/sarin
name = "sarin"
id = "sarin"
result = "sarin"
required_reagents = list("chlorine" = 1, "fuel" = 1, "oxygen" = 1, "phosphorus" = 1, "fluorine" = 1, "hydrogen" = 1, "acetone" = 1, "atrazine" = 1)
result_amount = 3
mix_message = "The mixture yields a colorless, odorless liquid."
min_temp = 374
mix_sound = 'sound/goonstation/misc/drinkfizz.ogg'
/datum/chemical_reaction/sarin/on_reaction(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, 2))
if(C.can_breathe_gas())
C.reagents.add_reagent("sarin", 4)
/datum/reagent/sarin/on_mob_life(mob/living/M)
switch(current_cycle)
if(1 to 15)
M.jitteriness += 20
if(prob(20))
M.emote(pick("twitch","twitch_s","quiver"))
if(16 to 30)
if(prob(25))
M.emote(pick("twitch","twitch","drool","quiver","tremble"))
M.eye_blurry += 5
M.stuttering = max(M.stuttering, 5)
if(prob(10))
M.confused = max(M.confused, 15)
if(prob(15))
M.Stun(1)
M.emote("scream")
if(30 to 60)
M.eye_blurry += 5
M.stuttering = max(M.stuttering, 5)
if(prob(10))
M.Stun(1)
M.emote(pick("twitch","twitch","drool","shake","tremble"))
if(prob(5))
M.emote("collapse")
if(prob(5))
M.Weaken(3)
M.visible_message("[M] has a seizure!")
M.jitteriness = 1000
if(prob(5))
to_chat(M, "You can't breathe!")
M.emote(pick("gasp", "choke", "cough"))
M.losebreath++
if(61 to INFINITY)
if(prob(15))
M.emote(pick("gasp", "choke", "cough","twitch", "shake", "tremble","quiver","drool", "twitch","collapse"))
M.losebreath = max(5, M.losebreath + 5)
M.adjustToxLoss(1)
M.adjustBrainLoss(1)
M.Weaken(4)
if(prob(8))
M.fakevomit()
M.adjustToxLoss(1)
M.adjustBrainLoss(1)
M.adjustFireLoss(1)
..()
/datum/reagent/atrazine
name = "Atrazine"
id = "atrazine"
description = "A herbicidal compound used for destroying unwanted plants."
reagent_state = LIQUID
color = "#17002D"
/datum/reagent/atrazine/on_mob_life(mob/living/M)
M.adjustToxLoss(2)
..()
// Clear off wallrot fungi
/datum/reagent/atrazine/reaction_turf(turf/simulated/wall/W, volume)
if(istype(W) && W.rotting)
W.rotting = 0
for(var/obj/effect/overlay/O in W)
if(O.name == "Wallrot") // This is so awful
qdel(O)
W.visible_message("The fungi are completely dissolved by the solution!")
/datum/reagent/atrazine/reaction_obj(obj/O, volume)
if(istype(O,/obj/structure/alien/weeds/))
var/obj/structure/alien/weeds/alien_weeds = O
alien_weeds.health -= rand(15,35) // Kills alien weeds pretty fast
alien_weeds.healthcheck()
else if(istype(O, /obj/effect/glowshroom)) //even a small amount is enough to kill it
qdel(O)
else if(istype(O,/obj/effect/plant))
if(prob(50))
qdel(O) //Kills kudzu too.
// Damage that is done to growing plants is separately at code/game/machinery/hydroponics at obj/item/hydroponics
/datum/reagent/atrazine/reaction_mob(mob/living/M, method=TOUCH, volume)
if(iscarbon(M))
var/mob/living/carbon/C = M
if(!C.wear_mask) // If not wearing a mask
C.adjustToxLoss(2) // 2 toxic damage per application
if(ishuman(M))
var/mob/living/carbon/human/H = M
if(H.species.flags & IS_PLANT) //plantmen take a LOT of damage
H.adjustToxLoss(50)
..()
else if(istype(M, /mob/living/simple_animal/diona)) //plantmen monkeys (diona) take EVEN MORE damage
var/mob/living/simple_animal/diona/D = M
D.adjustHealth(100)
..()
/datum/chemical_reaction/atrazine
name = "atrazine"
id = "atrazine"
result = "atrazine"
required_reagents = list("chlorine" = 1, "hydrogen" = 1, "nitrogen" = 1)
result_amount = 3
mix_message = "The mixture gives off a harsh odor"
/datum/reagent/capulettium
name = "Capulettium"
id = "capulettium"
description = "A rare drug that causes the user to appear dead for some time."
reagent_state = LIQUID
color = "#60A584"
heart_rate_stop = 1
/datum/chemical_reaction/capulettium
name = "capulettium"
id = "capulettium"
result = "capulettium"
required_reagents = list("neurotoxin2" = 1, "chlorine" = 1, "hydrogen" = 1)
result_amount = 1
mix_message = "The smell of death wafts up from the solution."
/datum/reagent/capulettium/on_mob_life(mob/living/M)
switch(current_cycle)
if(1 to 5)
M.eye_blurry += 10
if(6 to 10)
M.drowsyness = max(M.drowsyness, 10)
if(11)
M.Paralyse(10)
M.visible_message("[M] seizes up and falls limp, their eyes dead and lifeless...") //so you can't trigger deathgasp emote on people. Edge case, but necessary.
if(12 to 60)
M.Paralyse(10)
if(61 to INFINITY)
M.eye_blurry += 10
..()
/datum/reagent/capulettium_plus
name = "Capulettium Plus"
id = "capulettium_plus"
description = "A rare and expensive drug that causes the user to appear dead for some time while they retain consciousness and vision."
reagent_state = LIQUID
color = "#60A584"
heart_rate_stop = 1
/datum/chemical_reaction/capulettium_plus
name = "capulettium_plus"
id = "capulettium_plus"
result = "capulettium_plus"
required_reagents = list("capulettium" = 1, "ephedrine" = 1, "methamphetamine" = 1)
result_amount = 3
mix_message = "The solution begins to slosh about violently by itself."
/datum/reagent/capulettium_plus/on_mob_life(mob/living/M)
M.silent = max(M.silent, 2)
..()
/datum/reagent/toxic_slurry
name = "Toxic Slurry"
id = "toxic_slurry"
description = "A filthy, carcinogenic sludge produced by the Slurrypod plant."
reagent_state = LIQUID
color = "#00C81E"
/datum/reagent/toxic_slurry/on_mob_life(mob/living/M)
if(prob(10))
M.adjustToxLoss(rand(2.4))
if(prob(7))
to_chat(M, "A horrible migraine overpowers you.")
M.Stun(rand(2,5))
if(prob(7))
M.fakevomit(1)
..()
/datum/reagent/glowing_slurry
name = "Glowing Slurry"
id = "glowing_slurry"
description = "This is probably not good for you."
reagent_state = LIQUID
color = "#00FD00"
/datum/reagent/glowing_slurry/reaction_mob(mob/living/M, method=TOUCH, volume) //same as mutagen
if(!..())
return
if(!M.dna)
return //No robots, AIs, aliens, Ians or other mobs should be affected by this.
if((method==TOUCH && prob(50)) || method==INGEST)
randmutb(M)
domutcheck(M, null)
M.UpdateAppearance()
/datum/reagent/glowing_slurry/on_mob_life(mob/living/M)
M.apply_effect(2, IRRADIATE, 0, negate_armor = 1)
if(!M.dna)
return
if(prob(15))
randmutb(M)
if(prob(3))
randmutg(M)
domutcheck(M, null)
M.UpdateAppearance()
..()
/datum/reagent/ants
name = "Ants"
id = "ants"
description = "A sample of a lost breed of Space Ants (formicidae bastardium tyrannus), they are well-known for ravaging the living shit out of pretty much anything."
reagent_state = SOLID
color = "#993333"
process_flags = ORGANIC | SYNTHETIC
/datum/reagent/ants/reaction_mob(mob/living/M, method=TOUCH, volume) //NOT THE ANTS
if(iscarbon(M))
if(method == TOUCH || method==INGEST)
to_chat(M, "OH SHIT ANTS!!!!")
M.emote("scream")
M.adjustBruteLoss(4)
/datum/reagent/ants/on_mob_life(mob/living/M)
M.adjustBruteLoss(2)
..()
/datum/reagent/teslium //Teslium. Causes periodic shocks, and makes shocks against the target much more effective.
name = "Teslium"
id = "teslium"
description = "An unstable, electrically-charged metallic slurry. Increases the conductance of living things."
reagent_state = LIQUID
color = "#20324D" //RGB: 32, 50, 77
metabolization_rate = 0.2
var/shock_timer = 0
process_flags = ORGANIC | SYNTHETIC
/datum/reagent/teslium/on_mob_life(mob/living/M)
shock_timer++
if(shock_timer >= rand(5,30)) //Random shocks are wildly unpredictable
shock_timer = 0
M.electrocute_act(rand(5,20), "Teslium in their body", 1, 1) //Override because it's caused from INSIDE of you
playsound(M, "sparks", 50, 1)
..()
/datum/chemical_reaction/teslium
name = "Teslium"
id = "teslium"
result = "teslium"
required_reagents = list("plasma" = 1, "silver" = 1, "blackpowder" = 1)
result_amount = 3
mix_message = "A jet of sparks flies from the mixture as it merges into a flickering slurry."
min_temp = 400
mix_sound = null
/datum/chemical_reaction/teslium/on_reaction(datum/reagents/holder, created_volume)
var/location = get_turf(holder.my_atom)
var/datum/effect/system/spark_spread/s = new /datum/effect/system/spark_spread
s.set_up(6, 1, location)
s.start()