diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm
index 2b8ff255420..803c1c0399d 100644
--- a/code/datums/uplink_item.dm
+++ b/code/datums/uplink_item.dm
@@ -355,11 +355,11 @@ var/list/uplink_items = list()
cost = 6
gamemodes = list(/datum/game_mode/nuclear)
-/datum/uplink_item/dangerous/tabungrenades
- name = "Tabun Gas Grenades"
- desc = "A box of four (4) grenades filled with Tabun, a deadly neurotoxin. Use extreme caution when handling and be sure to vacate the premise after using; ensure communication is maintained with team to avoid accidental gassings."
+/datum/uplink_item/dangerous/saringrenades
+ name = "Sarin Gas Grenades"
+ desc = "A box of four (4) grenades filled with Sarin, a deadly neurotoxin. Use extreme caution when handling and be sure to vacate the premise after using; ensure communication is maintained with team to avoid accidental gassings."
reference = "TGG"
- item = /obj/item/weapon/storage/box/syndie_kit/tabun
+ item = /obj/item/weapon/storage/box/syndie_kit/sarin
cost = 15
gamemodes = list(/datum/game_mode/nuclear)
surplus = 0
diff --git a/code/game/objects/items/weapons/grenades/chem_grenade.dm b/code/game/objects/items/weapons/grenades/chem_grenade.dm
index 6007154db66..cb31bd859e3 100644
--- a/code/game/objects/items/weapons/grenades/chem_grenade.dm
+++ b/code/game/objects/items/weapons/grenades/chem_grenade.dm
@@ -508,9 +508,9 @@
beakers += B2
update_icon()
-/obj/item/weapon/grenade/chem_grenade/tabungas
- payload_name = "tabungas"
- desc = "Contains tabun gas; extremely deadly and fast acting; use with extreme caution."
+/obj/item/weapon/grenade/chem_grenade/saringas
+ payload_name = "saringas"
+ desc = "Contains sarin gas; extremely deadly and fast acting; use with extreme caution."
stage = READY
New()
@@ -518,7 +518,7 @@
var/obj/item/weapon/reagent_containers/glass/beaker/B1 = new(src)
var/obj/item/weapon/reagent_containers/glass/beaker/B2 = new(src)
- B1.reagents.add_reagent("tabun", 25)
+ B1.reagents.add_reagent("sarin", 25)
B1.reagents.add_reagent("potassium", 25)
B2.reagents.add_reagent("phosphorus", 25)
B2.reagents.add_reagent("sugar", 25)
diff --git a/code/game/objects/items/weapons/grenades/clusterbuster.dm b/code/game/objects/items/weapons/grenades/clusterbuster.dm
index a160c99f8c3..ec3e159e874 100644
--- a/code/game/objects/items/weapons/grenades/clusterbuster.dm
+++ b/code/game/objects/items/weapons/grenades/clusterbuster.dm
@@ -134,7 +134,7 @@
/obj/item/weapon/grenade/clusterbuster/nervegas
name = "Nerve Gas Clusterbomb"
- payload = /obj/item/weapon/grenade/chem_grenade/tabungas
+ payload = /obj/item/weapon/grenade/chem_grenade/saringas
/obj/item/weapon/grenade/clusterbuster/megadirt
name = "Megamaid's Revenge Grenade"
diff --git a/code/game/objects/items/weapons/storage/uplink_kits.dm b/code/game/objects/items/weapons/storage/uplink_kits.dm
index 704f31003cc..1ba5a6cb1d8 100644
--- a/code/game/objects/items/weapons/storage/uplink_kits.dm
+++ b/code/game/objects/items/weapons/storage/uplink_kits.dm
@@ -150,15 +150,15 @@
new /obj/item/weapon/grenade/empgrenade(src)
new /obj/item/weapon/implanter/emp/(src)
-/obj/item/weapon/storage/box/syndie_kit/tabun
- name = "Tabun Gas Grenades"
+/obj/item/weapon/storage/box/syndie_kit/sarin
+ name = "Sarin Gas Grenades"
New()
..()
- new /obj/item/weapon/grenade/chem_grenade/tabungas(src)
- new /obj/item/weapon/grenade/chem_grenade/tabungas(src)
- new /obj/item/weapon/grenade/chem_grenade/tabungas(src)
- new /obj/item/weapon/grenade/chem_grenade/tabungas(src)
+ new /obj/item/weapon/grenade/chem_grenade/saringas(src)
+ new /obj/item/weapon/grenade/chem_grenade/saringas(src)
+ new /obj/item/weapon/grenade/chem_grenade/saringas(src)
+ new /obj/item/weapon/grenade/chem_grenade/saringas(src)
/obj/item/weapon/storage/box/syndie_kit/bioterror
name = "bioterror syringe box"
diff --git a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm
index c5e3c92848b..8656b60aad5 100644
--- a/code/game/objects/structures/crates_lockers/closets/wardrobe.dm
+++ b/code/game/objects/structures/crates_lockers/closets/wardrobe.dm
@@ -352,6 +352,8 @@
new /obj/item/weapon/storage/backpack/satchel_chem(src)
new /obj/item/weapon/storage/bag/chemistry(src)
new /obj/item/weapon/storage/bag/chemistry(src)
+ new /obj/item/clothing/mask/gas(src)
+ new /obj/item/clothing/mask/gas(src)
return
diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm
index 1b8a7b077ed..526af699a3e 100644
--- a/code/modules/mob/living/carbon/human/emote.dm
+++ b/code/modules/mob/living/carbon/human/emote.dm
@@ -586,7 +586,7 @@
m_type = 1
if ("tremble", "trembles")
- message = "[src] trembles in fear!"
+ message = "[src] trembles."
m_type = 1
if ("sneeze", "sneezes")
diff --git a/code/modules/reagents/Chemistry-Holder.dm b/code/modules/reagents/Chemistry-Holder.dm
index 084883d55f9..dc9e860cf85 100644
--- a/code/modules/reagents/Chemistry-Holder.dm
+++ b/code/modules/reagents/Chemistry-Holder.dm
@@ -333,7 +333,6 @@ var/const/INGEST = 2
qdel(A)
update_total()
my_atom.on_reagent_change()
- check_ignoreslow(my_atom)
check_gofast(my_atom)
check_goreallyfast(my_atom)
return 0
diff --git a/code/modules/reagents/newchem/drinks.dm b/code/modules/reagents/newchem/drinks.dm
index 2b041372ee8..33377f42194 100644
--- a/code/modules/reagents/newchem/drinks.dm
+++ b/code/modules/reagents/newchem/drinks.dm
@@ -16,19 +16,18 @@
/datum/reagent/ginsonic/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- if(prob(10))
+ M.drowsyness = max(0, M.drowsyness-5)
+ if(prob(25))
+ M.AdjustParalysis(-1)
+ M.AdjustStunned(-1)
+ M.AdjustWeakened(-1)
+ if(prob(8))
M.reagents.add_reagent("methamphetamine",1.2)
- M.reagents.add_reagent("ethanol",1.4)
- if(prob(8))
- M.say(pick("Gotta go fast!", "Let's juice.", "I feel a need for speed!", "Way Past Cool!"))
- if(prob(8))
- switch(pick(1, 2, 3))
- if(1)
- M << "Time to speed, keed!"
- if(2)
- M << "Let's juice."
- if(3)
- M << "Way Past Cool!"
+ var/sonic_message = pick("Gotta go fast!", "Time to speed, keed!", "I feel a need for speed!", "Let's juice.", "Juice time.", "Way Past Cool!")
+ if(prob(50))
+ M.say("[sonic_message]")
+ else
+ M << "[sonic_message ]"
..()
return
diff --git a/code/modules/reagents/newchem/drugs.dm b/code/modules/reagents/newchem/drugs.dm
index 5389c8bed6d..1f35706787d 100644
--- a/code/modules/reagents/newchem/drugs.dm
+++ b/code/modules/reagents/newchem/drugs.dm
@@ -43,17 +43,23 @@
/datum/reagent/crank/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- var/high_message = pick("You feel jittery.", "You feel like you gotta go fast.", "You feel like you need to step it up.")
- if(prob(5))
- M << "[high_message]"
M.AdjustParalysis(-2)
M.AdjustStunned(-2)
M.AdjustWeakened(-2)
+ if(prob(15))
+ M.emote(pick("twitch", "twitch_s", "grumble", "laugh"))
if(prob(8))
- M.reagents.add_reagent("methamphetamine",2)
+ M << "You feel great!"
+ M.reagents.add_reagent("methamphetamine", rand(1,2))
+ M.emote(pick("laugh", "giggle"))
+ if(prob(6))
+ M << "You feel warm."
+ M.bodytemperature += rand(1,10)
if(prob(4))
- M.Jitter(10)
- M.adjustToxLoss(1.0)
+ M << "You feel kinda awful!"
+ M.adjustToxLoss(1)
+ M.jitteriness += 30
+ M.emote(pick("groan", "moan"))
..()
return
/datum/reagent/crank/overdose_process(var/mob/living/M as mob)
@@ -88,6 +94,7 @@
required_reagents = list("diphenhydramine" = 1, "ammonia" = 1, "lithium" = 1, "sacid" = 1, "fuel" = 1)
result_amount = 5
mix_message = "The mixture violently reacts, leaving behind a few crystalline shards."
+ mix_sound = 'sound/goonstation/effects/crystalshatter.ogg'
min_temp = 390
/datum/chemical_reaction/crank/on_reaction(var/datum/reagents/holder, var/created_volume)
@@ -109,9 +116,25 @@
/datum/reagent/krokodil/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- var/high_message = pick("You feel calm.", "You feel collected.", "You feel like you need to relax.")
+ M.jitteriness -= 40
+ if(prob(25))
+ M.adjustBrainLoss(1)
+ if(prob(15))
+ M.emote(pick("smile", "grin", "yawn", "laugh", "drool"))
+ if(prob(10))
+ M << "You feel pretty chill."
+ M.bodytemperature--
+ M.emote("smile")
if(prob(5))
- M << "[high_message]"
+ M << "You feel too chill!"
+ M.emote(pick("yawn", "drool"))
+ M.Stun(1)
+ M.adjustToxLoss(1)
+ M.adjustBrainLoss(1)
+ M.bodytemperature -= 20
+ if(prob(2))
+ M << "Your skin feels all rough and dry."
+ M.adjustBruteLoss(2)
..()
return
@@ -172,19 +195,19 @@
/datum/reagent/methamphetamine/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- var/high_message = pick("You feel hyper.", "You feel like you need to go faster.", "You feel like you can run the world.")
if(prob(5))
- M << "[high_message]"
+ M.emote(pick("twitch_s","blink_r","shiver"))
+ if(current_cycle >= 25)
+ M.jitteriness += 5
+ M.drowsyness = max(0, M.drowsyness-10)
M.AdjustParalysis(-2.5)
M.AdjustStunned(-2.5)
M.AdjustWeakened(-2.5)
M.adjustStaminaLoss(-2)
+ M.SetSleeping(0)
M.status_flags |= GOTTAGOREALLYFAST
- M.Jitter(3)
if(prob(50))
M.adjustBrainLoss(1.0)
- if(prob(5))
- M.emote(pick("twitch", "shiver"))
..()
return
@@ -192,7 +215,7 @@
if(prob(20))
M.emote("laugh")
if(prob(33))
- M.visible_message("[M]'s hands flip out and flail everywhere!")
+ M.visible_message("[M]'s hands flip out and flail everywhere!")
var/obj/item/I = M.get_active_hand()
if(I)
M.drop_item()
@@ -239,6 +262,16 @@
result_amount = 4
min_temp = 374
+/datum/chemical_reaction/methamphetamine/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.emote("gasp")
+ C.losebreath++
+ C.reagents.add_reagent("toxin",10)
+ C.reagents.add_reagent("neurotoxin2",20)
+
/datum/chemical_reaction/saltpetre
name = "saltpetre"
id = "saltpetre"
@@ -372,17 +405,19 @@
/datum/reagent/aranesp/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- var/high_message = pick("You feel like you're made of steel!", "You feel invigorated!", "You feel really buff!", "You feel on top of the world!", "You feel full of energy!")
- if(prob(5))
- M << "[high_message]"
M.adjustStaminaLoss(-40)
if(prob(90))
M.adjustToxLoss(1)
+ if(prob(5))
+ M.emote(pick("twitch", "shake", "tremble","quiver", "twitch_s"))
+ var/high_message = pick("really buff", "on top of the world","like you're made of steel", "energized", "invigorated", "full of energy")
+ if(prob(8))
+ M << "[high_message]!"
if(prob(5))
M << "You cannot breathe!"
- M.losebreath += 1
M.adjustOxyLoss(15)
M.Stun(1)
+ M.losebreath++
..()
return
@@ -396,10 +431,16 @@
/datum/reagent/thc/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- if(prob(8))
- M.emote(pick("smile","giggle","laugh"))
- if(prob(50))
- M.stuttering += 2
+ M.stuttering += rand(0,2)
+ if(prob(5))
+ M.emote(pick("laugh","giggle","smile"))
+ if(prob(5))
+ M << "[pick("You feel hungry.","Your stomach rumbles.","You feel cold.","You feel warm.")]"
+ if(prob(4))
+ M.confused = max(M.confused, 10)
+ if(volume >= 50 && prob(25))
+ if(prob(10))
+ M.drowsyness = max(M.drowsyness, 10)
..()
return
@@ -445,10 +486,13 @@
M.SpinAnimation(speed = 5, loops = -1)
if(current_cycle == 50)
M.SpinAnimation(speed = 4, loops = -1)
- M.AdjustParalysis(-2)
- M.AdjustStunned(-2)
- M.AdjustWeakened(-2)
- M.adjustStaminaLoss(-2)
+
+ M.drowsyness = max(0, M.drowsyness-6)
+ M.AdjustParalysis(-1.5)
+ M.AdjustStunned(-1.5)
+ M.AdjustWeakened(-1.5)
+ M.adjustStaminaLoss(-1.5)
+ M.SetSleeping(0)
..()
return
@@ -463,11 +507,11 @@
M.emote("laugh")
M.adjustToxLoss(1)
if(2)
- M << "[M] can't seem to control their legs!"
+ M << "[M] can't seem to control their legs!"
M.Weaken(8)
M.adjustToxLoss(1)
if(3)
- M << "[M]'s hands flip out and flail everywhere!"
+ M << "[M]'s hands flip out and flail everywhere!"
M.drop_l_hand()
M.drop_r_hand()
M.adjustToxLoss(1)
@@ -523,7 +567,7 @@
if(prob(20))
M.emote("ping")
if(prob(33))
- M.visible_message("[M]'s hands flip out and flail everywhere!")
+ M.visible_message("[M]'s hands flip out and flail everywhere!")
var/obj/item/I = M.get_active_hand()
if(I)
M.drop_item()
diff --git a/code/modules/reagents/newchem/food.dm b/code/modules/reagents/newchem/food.dm
index 1329828b948..fa11df2df08 100644
--- a/code/modules/reagents/newchem/food.dm
+++ b/code/modules/reagents/newchem/food.dm
@@ -11,7 +11,7 @@ datum/reagent/questionmark/reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
return
if(method == INGEST)
M.Weaken(2)
- M << "Ugh! Eating that was a terrible idea!"
+ M << "Ugh! Eating that was a terrible idea!"
datum/reagent/egg
name = "Egg"
@@ -22,8 +22,10 @@ datum/reagent/egg
datum/reagent/egg/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- if(prob(5))
+ if(prob(8))
M.emote("fart")
+ if(prob(3))
+ M.reagents.add_reagent("cholesterol", rand(1,2))
..()
return
@@ -118,7 +120,7 @@ datum/reagent/vhfcs/on_mob_life(var/mob/living/M as mob)
datum/reagent/honey/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- M.reagents.add_reagent("sugar", 0.8)
+ M.reagents.add_reagent("sugar", 0.4)
..()
return
@@ -174,13 +176,15 @@ datum/reagent/mugwort/on_mob_life(var/mob/living/M as mob)
reagent_state = LIQUID
color = "#AB5D5D"
metabolization_rate = 0.2
- overdose_threshold = 125
+ overdose_threshold = 133
datum/reagent/porktonium/overdose_process(var/mob/living/M as mob)
- if(volume > 125)
+ if(volume > 133)
+ if(prob(15))
+ M.reagents.add_reagent("cholesterol", rand(1,3))
if(prob(8))
- M.reagents.add_reagent("cyanide", 10)
M.reagents.add_reagent("radium", 15)
+ M.reagents.add_reagent("cyanide", 10)
..()
return
@@ -195,7 +199,13 @@ datum/reagent/fungus/reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
if(!istype(M, /mob/living))
return
if(method == INGEST)
- M << "Yuck!"
+ var/ranchance = rand(1,10)
+ if(ranchance == 1)
+ M << "You feel very sick."
+ M.reagents.add_reagent("toxin", rand(1,5))
+ else if(ranchance <= 5)
+ M << "That tasted absolutely FOUL."
+ else M << "Yuck!"
/datum/reagent/chicken_soup
name = "Chicken soup"
@@ -216,18 +226,22 @@ datum/reagent/fungus/reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
description = "Monosodium Glutamate is a sodium salt known chiefly for its use as a controversial flavor enhancer."
reagent_state = LIQUID
color = "#F5F5F5"
+ metabolization_rate = 0.2
datum/reagent/msg/reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
if(!istype(M, /mob/living))
return
if(method == INGEST)
- M << "That tasted amazing!"
+ M << "That tasted amazing!"
/datum/reagent/msg/on_mob_life(var/mob/living/M as mob)
- if(prob(1))
- M.Stun(rand(4,10))
- M << "A horrible migraine overpowers you."
+ if(prob(5))
+ if(prob(10))
+ M.adjustToxLoss(rand(2.4))
+ if(prob(7))
+ M << "A horrible migraine overpowers you."
+ M.Stun(rand(2,5))
..()
return
@@ -237,6 +251,13 @@ datum/reagent/msg/reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
description = "Some cheese. Pour it out to make it solid."
reagent_state = SOLID
color = "#FFFF00"
+ metabolization_rate = 0 //heheheh
+
+
+/datum/reagent/cheese/on_mob_life(var/mob/living/M as mob)
+ if(prob(3))
+ M.reagents.add_reagent("cholesterol", rand(1,2))
+ ..()
datum/reagent/cheese/reaction_turf(var/turf/T, var/volume)
src = null
@@ -252,12 +273,23 @@ datum/reagent/cheese/reaction_turf(var/turf/T, var/volume)
result_amount = 1
mix_message = "The mixture curdles up."
+/datum/chemical_reaction/cheese/on_reaction(var/datum/reagents/holder)
+ var/turf/T = get_turf(holder.my_atom)
+ T.visible_message("A faint cheesy smell drifts through the air...")
+
/datum/reagent/fake_cheese
name = "Cheese substitute"
id = "fake_cheese"
description = "A cheese-like substance derived loosely from actual cheese."
reagent_state = LIQUID
color = "#B2B139"
+ overdose_threshold = 50
+
+/datum/reagent/fake_cheese/overdose_process(var/mob/living/M as mob)
+ if(prob(8))
+ 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"
@@ -265,6 +297,12 @@ datum/reagent/cheese/reaction_turf(var/turf/T, var/volume)
description = "Hell, I don't even know if this IS cheese. Whatever it is, it ain't normal. If you want to, pour it out to make it solid."
reagent_state = SOLID
color = "#50FF00"
+ metabolization_rate = 0 //heheheh
+
+/datum/reagent/weird_cheese/on_mob_life(var/mob/living/M as mob)
+ if(prob(5))
+ M.reagents.add_reagent("cholesterol", rand(1,3))
+ ..()
datum/reagent/weird_cheese/reaction_turf(var/turf/T, var/volume)
src = null
@@ -279,6 +317,11 @@ datum/reagent/weird_cheese/reaction_turf(var/turf/T, var/volume)
required_reagents = list("green_vomit" = 1, "milk" = 1)
result_amount = 1
mix_message = "The disgusting mixture sloughs together horribly, emitting a foul stench."
+ mix_sound = 'sound/goonstation/misc/gurggle.ogg'
+
+/datum/chemical_reaction/weird_cheese/on_reaction(var/datum/reagents/holder)
+ var/turf/T = get_turf(holder.my_atom)
+ T.visible_message("A horrible smell assaults your nose! What in space is it?")
datum/reagent/beans
name = "Refried beans"
@@ -289,7 +332,7 @@ datum/reagent/beans
datum/reagent/beans/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- if(prob(8))
+ if(prob(10))
M.emote("fart")
..()
return
@@ -349,11 +392,11 @@ datum/reagent/ectoplasm/reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
return
if(method == INGEST)
var/spooky_eat = pick("Ugh, why did you eat that? Your mouth feels haunted. Haunted with bad flavors.", "Ugh, why did you eat that? It has the texture of ham aspic. From the 1950s. Left out in the sun.", "Ugh, why did you eat that? It tastes like a ghost fart.", "Ugh, why did you eat that? It tastes like flavor died.")
- M << "[spooky_eat]"
+ M << "[spooky_eat]"
/datum/reagent/ectoplasm/on_mob_life(var/mob/living/M as mob)
var/spooky_message = pick("You notice something moving out of the corner of your eye, but nothing is there...", "Your eyes twitch, you feel like something you can't see is here...", "You've got the heebie-jeebies.", "You feel uneasy.", "You shudder as if cold...", "You feel something gliding across your back...")
- if(prob(5))
+ if(prob(8))
M << "[spooky_message]"
..()
return
@@ -365,15 +408,17 @@ datum/reagent/ectoplasm/reaction_turf(var/turf/T, var/volume)
return
/datum/reagent/soybeanoil
- name = "Space-soybean oil "
+ name = "Space-soybean oil"
id = "soybeanoil"
description = "An oil derived from extra-terrestrial soybeans."
reagent_state = LIQUID
color = "#B1B0B0"
/datum/reagent/soybeanoil/on_mob_life(var/mob/living/M as mob)
- if(prob(5))
- M.reagents.add_reagent("porktonium",5)
+ if(prob(10))
+ M.reagents.add_reagent("cholesterol", rand(1,3))
+ if(prob(8))
+ M.reagents.add_reagent("porktonium", 5)
..()
return
@@ -383,13 +428,34 @@ datum/reagent/ectoplasm/reaction_turf(var/turf/T, var/volume)
description = "An oil derived from extra-terrestrial soybeans, with additional hydrogen atoms added to convert it into a saturated form."
reagent_state = LIQUID
color = "#B1B0B0"
+ metabolization_rate = 0.2
+ overdose_threshold = 75
/datum/reagent/hydrogenated_soybeanoil/on_mob_life(var/mob/living/M as mob)
+ if(prob(15))
+ M.reagents.add_reagent("cholesterol", rand(1,3))
if(prob(8))
- M.reagents.add_reagent("porktonium",5)
+ M.reagents.add_reagent("porktonium", 5)
+ if(volume >= 75)
+ metabolization_rate = 0.4
+ else
+ metabolization_rate = 0.2
..()
return
+/datum/reagent/hydrogenated_soybeanoil/overdose_process(var/mob/living/M as mob)
+ if(prob(33))
+ M << "You feel horribly weak."
+ if(prob(10))
+ M << "You cannot breathe!"
+ M.adjustOxyLoss(5)
+ if(prob(5))
+ M << "You feel a sharp pain in your chest!"
+ M.adjustOxyLoss(25)
+ M.Stun(5)
+ M.Paralyse(10)
+ ..()
+
/datum/chemical_reaction/hydrogenated_soybeanoil
name = "Partially hydrogenated space-soybean oil"
id = "hydrogenated_soybeanoil"
@@ -406,6 +472,17 @@ datum/reagent/ectoplasm/reaction_turf(var/turf/T, var/volume)
reagent_state = LIQUID
color = "#EBD7D7"
+/datum/reagent/meatslurry/on_mob_life(var/mob/living/M as mob)
+ if(prob(4))
+ M.reagents.add_reagent("cholesterol", rand(1,3))
+ ..()
+
+/datum/reagent/meatslurry/reaction_turf(var/turf/T, var/volume)
+ src = null
+ if(volume >= 5 && prob(10))
+ new /obj/effect/decal/cleanable/blood/gibs/cleangibs(T)
+ playsound(T, 'sound/effects/splat.ogg', 50, 1, -3)
+
/datum/chemical_reaction/meatslurry
name = "Meat Slurry"
id = "meatslurry"
@@ -447,13 +524,12 @@ datum/reagent/ectoplasm/reaction_turf(var/turf/T, var/volume)
/datum/reagent/beff/on_mob_life(var/mob/living/M as mob)
if(prob(5))
- M.reagents.add_reagent("porktonium",5)
- if(prob(5))
- M.reagents.add_reagent(pick("blood", "corn_syrup", "synthflesh", "hydrogenated_soybeanoil"), 0.8)
- if(prob(5))
- M.emote("groan")
- if(prob(2))
- M << "You feel sick."
+ M.reagents.add_reagent("cholesterol", rand(1,3))
+ if(prob(8))
+ M.reagents.add_reagent(pick("blood", "corn_syrup", "synthflesh", "hydrogenated_soybeanoil", "porktonium", "toxic_slurry"), 0.8)
+ else if(prob(6))
+ M << "[pick("You feel ill.","Your stomach churns.","You feel queasy.","You feel sick.")]"
+ M.emote(pick("groan","moan"))
..()
return
@@ -488,7 +564,7 @@ datum/reagent/pepperoni/reaction_mob(var/mob/living/M, var/method=TOUCH, var/vol
if(prob(50))
M.adjustBruteLoss(1)
- playsound(M, 'sound/effects/woodhit.ogg', 50, 1, -1)
+ playsound(M, 'sound/effects/woodhit.ogg', 50, 1)
M << "A slice of pepperoni slaps you!"
else
M.emote("burp")
@@ -502,4 +578,29 @@ datum/reagent/pepperoni/reaction_mob(var/mob/living/M, var/method=TOUCH, var/vol
required_reagents = list("beff" = 1, "saltpetre" = 1, "synthflesh" = 1)
result_amount = 2
mix_message = "The beff and the synthflesh combine to form a smoky red log."
- mix_sound = 'sound/effects/blobattack.ogg'
\ No newline at end of file
+ mix_sound = 'sound/effects/blobattack.ogg'
+
+/datum/reagent/cholesterol
+ name = "cholesterol"
+ id = "cholesterol"
+ description = "Pure cholesterol. Probably not very good for you."
+ reagent_state = LIQUID
+ color = "#FFFAC8"
+
+/datum/reagent/cholesterol/on_mob_life(var/mob/living/M as mob)
+ if(volume >= 25 && prob(volume*0.15))
+ M << "Your chest feels [pick("weird","uncomfortable","nasty","gross","odd","unusual","warm")]!"
+ M.adjustToxLoss(rand(1,2))
+ else if(volume >= 45 && prob(volume*0.08))
+ M << "Your chest [pick("hurts","stings","aches","burns")]!"
+ M.adjustToxLoss(rand(2,4))
+ M.Stun(1)
+ else if(volume >= 150 && prob(volume*0.01))
+ M << "Your chest is burning with pain!"
+ M.Stun(1)
+ M.Weaken(1)
+ if(ishuman(M))
+ var/mob/living/carbon/human/H = M
+ if(!H.heart_attack)
+ H.heart_attack = 1
+ ..()
\ No newline at end of file
diff --git a/code/modules/reagents/newchem/medicine.dm b/code/modules/reagents/newchem/medicine.dm
index 979fe8492ba..b85f73edf27 100644
--- a/code/modules/reagents/newchem/medicine.dm
+++ b/code/modules/reagents/newchem/medicine.dm
@@ -203,7 +203,7 @@ datum/reagent/calomel/on_mob_life(var/mob/living/M as mob)
M.reagents.remove_reagent(R.id,5)
if(M.health > 20)
M.adjustToxLoss(5*REM)
- if(prob(10))
+ if(prob(6))
M.fakevomit()
..()
return
@@ -226,11 +226,8 @@ datum/reagent/potass_iodide
datum/reagent/potass_iodide/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- if(M.radiation > 0)
- if(prob(80))
- M.radiation--
- if(M.radiation < 0)
- M.radiation = 0
+ if(prob(80))
+ M.radiation = max(0, M.radiation-1)
..()
return
@@ -251,18 +248,15 @@ datum/reagent/pen_acid
datum/reagent/pen_acid/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- if(M.radiation > 0)
- M.radiation -= 7
+ for(var/datum/reagent/R in M.reagents.reagent_list)
+ if(R != src)
+ M.reagents.remove_reagent(R.id,4)
+ M.radiation = max(0, M.radiation-7)
if(prob(75))
M.adjustToxLoss(-4*REM)
if(prob(33))
M.adjustBruteLoss(1*REM)
M.adjustFireLoss(1*REM)
- if(M.radiation < 0)
- M.radiation = 0
- for(var/datum/reagent/R in M.reagents.reagent_list)
- if(R != src)
- M.reagents.remove_reagent(R.id,4)
..()
return
@@ -322,8 +316,7 @@ datum/reagent/salbutamol
datum/reagent/salbutamol/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M.adjustOxyLoss(-6*REM)
- if(M.losebreath >= 4)
- M.losebreath -= 4
+ M.losebreath = max(0, M.losebreath-4)
..()
return
@@ -347,7 +340,9 @@ datum/reagent/perfluorodecalin
datum/reagent/perfluorodecalin/on_mob_life(var/mob/living/carbon/human/M as mob)
if(!M) M = holder.my_atom
M.adjustOxyLoss(-25*REM)
- M.silent = max(M.silent, 5)
+ if(volume >= 4)
+ M.losebreath = max(M.losebreath, 6)
+ M.silent = max(M.silent, 6)
if(prob(33))
M.adjustBruteLoss(-1*REM)
M.adjustFireLoss(-1*REM)
@@ -376,10 +371,18 @@ datum/reagent/ephedrine
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)
M.AdjustStunned(-1)
M.AdjustWeakened(-1)
M.adjustStaminaLoss(-1*REM)
+ if(M.losebreath > 5)
+ M.losebreath = max(5, M.losebreath-1)
+ if(M.oxyloss > 75)
+ M.adjustOxyLoss(-1)
+ if(M.health < 0 || M.health > 0 && prob(33))
+ M.adjustToxLoss(-1)
+ M.heal_organ_damage(1,1)
..()
return
@@ -429,12 +432,18 @@ datum/reagent/diphenhydramine
description = "Anti-allergy medication. May cause drowsiness, do not operate heavy machinery while using this."
reagent_state = LIQUID
color = "#5BCBE1"
+
datum/reagent/diphenhydramine/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- M.drowsyness += 1
- M.jitteriness -= 1
+ M.jitteriness = max(0, M.jitteriness-20)
M.reagents.remove_reagent("histamine",3)
M.reagents.remove_reagent("itching_powder",3)
+ if(prob(7))
+ M.emote("yawn")
+ if(prob(3))
+ M.Stun(2)
+ M.drowsyness += 1
+ M.visible_message("[M] looks a bit dazed.")
..()
return
@@ -459,16 +468,16 @@ datum/reagent/morphine
datum/reagent/morphine/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- M.status_flags |= IGNORESLOWDOWN
+ M.jitteriness = max(0, M.jitteriness-25)
switch(current_cycle)
- if(0 to 15)
- if(prob(5))
+ if(1 to 15)
+ if(prob(7))
M.emote("yawn")
if(16 to 35)
- M.drowsyness = max(M.drowsyness, 10)
+ M.drowsyness = max(M.drowsyness, 20)
if(36 to INFINITY)
- M.Paralyse(10)
- M.drowsyness = max(M.drowsyness, 15)
+ M.Paralyse(15)
+ M.drowsyness = max(M.drowsyness, 20)
if(ishuman(M))
var/mob/living/carbon/human/H = M
if(H.traumatic_shock < 100)
@@ -575,18 +584,21 @@ datum/reagent/atropine
datum/reagent/atropine/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- if(M.health > -60)
- M.adjustToxLoss(1*REM)
- if(M.health < -25)
- M.adjustBruteLoss(-3*REM)
- M.adjustFireLoss(-3*REM)
+ M.dizziness += 1
+ M.confused = max(M.confused, 5)
+ if(prob(4))
+ M.emote("collapse")
+ if(M.losebreath > 5)
+ M.losebreath = max(5, M.losebreath-5)
if(M.oxyloss > 65)
M.adjustOxyLoss(-10*REM)
- if(M.losebreath > 5)
- M.losebreath = 5
- if(M.confused > 60)
- M.confused += 5
- M.reagents.remove_reagent("tabun",10)
+ if(M.health < -25)
+ M.adjustToxLoss(-1)
+ M.adjustBruteLoss(-3*REM)
+ M.adjustFireLoss(-3*REM)
+ else if(M.health > -60)
+ M.adjustToxLoss(1)
+ M.reagents.remove_reagent("sarin", 20)
..()
return
@@ -617,14 +629,26 @@ datum/reagent/epinephrine
datum/reagent/epinephrine/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
+ M.drowsyness = max(0, M.drowsyness-5)
+ if(prob(20))
+ M.AdjustParalysis(-1)
+ if(prob(20))
+ M.AdjustStunned(-1)
+ if(prob(20))
+ M.AdjustWeakened(-1)
+ if(prob(5))
+ M.SetSleeping(0)
+ if(prob(5))
+ M.adjustBrainLoss(-1)
+ holder.remove_reagent("histamine", 15)
+ if(M.losebreath > 3)
+ M.losebreath--
+ if(M.oxyloss > 35)
+ M.adjustOxyLoss(-10*REM)
if(M.health < -10 && M.health > -65)
M.adjustToxLoss(-1*REM)
M.adjustBruteLoss(-1*REM)
M.adjustFireLoss(-1*REM)
- if(M.oxyloss > 35)
- M.adjustOxyLoss(-10*REM)
- if(M.losebreath >= 3)
- M.losebreath = 3
..()
return
@@ -806,12 +830,9 @@ datum/reagent/antihol
color = "#009CA8"
datum/reagent/antihol/on_mob_life(var/mob/living/M as mob)
- M.dizziness = 0
- M.drowsyness = 0
M.slurring = 0
- M.confused = 0
M.reagents.remove_all_type(/datum/reagent/ethanol, 8, 0, 1)
- if(M.health < 25)
+ if(M.toxloss <= 25)
M.adjustToxLoss(-2.0)
..()
@@ -833,21 +854,29 @@ datum/reagent/antihol/on_mob_life(var/mob/living/M as mob)
datum/reagent/stimulants/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- M.adjustOxyLoss(-5*REM)
- M.adjustToxLoss(-5*REM)
- M.adjustBruteLoss(-10*REM)
- M.adjustFireLoss(-10*REM)
- M.setStaminaLoss(0)
- var/status = CANSTUN | CANWEAKEN | CANPARALYSE
- M.status_flags &= ~status
+ if(volume > 5)
+ M.adjustOxyLoss(-5*REM)
+ M.adjustToxLoss(-5*REM)
+ M.adjustBruteLoss(-10*REM)
+ M.adjustFireLoss(-10*REM)
+ M.setStaminaLoss(0)
+ M.dizziness = max(0,M.dizziness-10)
+ M.drowsyness = max(0,M.drowsyness-10)
+ M.confused = 0
+ M.SetSleeping(0)
+ var/status = CANSTUN | CANWEAKEN | CANPARALYSE
+ M.status_flags &= ~status
+ else
+ M.status_flags |= CANSTUN | CANWEAKEN | CANPARALYSE
+ M.adjustToxLoss(2)
+ M.adjustBruteLoss(1)
+ if(prob(10))
+ M.Stun(3)
..()
datum/reagent/stimulants/reagent_deleted(var/mob/living/M as mob)
if(!M) M = holder.my_atom
M.status_flags |= CANSTUN | CANWEAKEN | CANPARALYSE
- M.adjustBruteLoss(12)
- M.adjustToxLoss(24)
- M.Stun(4)
..()
return
@@ -948,14 +977,15 @@ datum/reagent/haloperidol/on_mob_life(var/mob/living/M as mob)
M.reagents.remove_reagent("psilocybin", 5)
M.reagents.remove_reagent("ephedrine", 5)
M.reagents.remove_reagent("epinephrine", 5)
- M.reagents.remove_reagent("stimulants", 5)
+ M.reagents.remove_reagent("stimulants", 3)
M.reagents.remove_reagent("bath_salts", 5)
M.reagents.remove_reagent("lsd", 5)
+ M.reagents.remove_reagent("thc", 5)
M.druggy -= 5
M.hallucination -= 5
M.jitteriness -= 5
- if(prob(40))
- M.drowsyness = max(M.drowsyness, 2)
+ if(prob(50))
+ M.drowsyness = max(M.drowsyness, 3)
if(prob(10))
M.emote("drool")
if(prob(20))
@@ -981,15 +1011,16 @@ datum/reagent/haloperidol/on_mob_life(var/mob/living/M as mob)
/datum/reagent/ether/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
+ M.jitteriness = max(M.jitteriness-25,0)
switch(current_cycle)
- if(0 to 15)
- if(prob(5))
+ if(1 to 15)
+ if(prob(7))
M.emote("yawn")
if(16 to 35)
- M.drowsyness = max(M.drowsyness, 10)
+ M.drowsyness = max(M.drowsyness, 20)
if(36 to INFINITY)
- M.Paralyse(10)
- M.drowsyness = max(M.drowsyness, 15)
+ M.Paralyse(15)
+ M.drowsyness = max(M.drowsyness, 20)
..()
return
@@ -1034,7 +1065,7 @@ datum/reagent/haloperidol/on_mob_life(var/mob/living/M as mob)
M.AdjustParalysis(-1)
M.AdjustStunned(-1)
M.AdjustWeakened(-1)
- M.confused -= 5
+ M.confused = max(0, M.confused-5)
for(var/datum/reagent/R in M.reagents.reagent_list)
if(R != src)
if(R.id == "ultralube" || R.id == "lube")
diff --git a/code/modules/reagents/newchem/newchem_procs.dm b/code/modules/reagents/newchem/newchem_procs.dm
index 40a4905e0ef..fd29db191f4 100644
--- a/code/modules/reagents/newchem/newchem_procs.dm
+++ b/code/modules/reagents/newchem/newchem_procs.dm
@@ -3,7 +3,7 @@ datum/reagent
var/addiction_threshold = 0
var/addiction_stage = 0
var/overdosed = 0 // You fucked up and this is now triggering it's overdose effects, purge that shit quick.
- var/current_cycle = 0
+ var/current_cycle = 1
datum/reagents
var/chem_temp = 300
var/addiction_tick = 1
@@ -83,7 +83,7 @@ datum/reagents/proc/metabolize(var/mob/M)
R.addiction_act_stage4(M)
R.addiction_stage++
if(R.addiction_stage > 40)
- M << "You feel like you've gotten over your need for [R.name]."
+ M << "You feel like you've gotten over your need for [R.name]."
addiction_list.Remove(R)
addiction_tick++
update_total()
@@ -101,13 +101,6 @@ datum/reagents/proc/reagent_on_tick()
R.on_tick()
return
-datum/reagents/proc/check_ignoreslow(var/mob/M)
- if(istype(M, /mob))
- if(M.reagents.has_reagent("morphine"))
- return 1
- else
- M.status_flags &= ~IGNORESLOWDOWN
-
datum/reagents/proc/check_gofast(var/mob/M)
if(istype(M, /mob))
if(M.reagents.has_reagent("unholywater")||M.reagents.has_reagent("nuka_cola")||M.reagents.has_reagent("stimulative_agent"))
@@ -139,22 +132,22 @@ datum/reagent/proc/overdose_start(var/mob/living/M as mob)
datum/reagent/proc/addiction_act_stage1(var/mob/living/M as mob)
if(prob(30))
- M << "You feel like some [name] right about now."
+ M << "You feel like some [name] right about now."
return
datum/reagent/proc/addiction_act_stage2(var/mob/living/M as mob)
if(prob(30))
- M << "You feel like you need [name]. You just can't get enough."
+ M << "You feel like you need [name]. You just can't get enough."
return
datum/reagent/proc/addiction_act_stage3(var/mob/living/M as mob)
if(prob(30))
- M << "You have an intense craving for [name]."
+ M << "You have an intense craving for [name]."
return
datum/reagent/proc/addiction_act_stage4(var/mob/living/M as mob)
if(prob(30))
- M << "You're not feeling good at all! You really need some [name]."
+ M << "You're not feeling good at all! You really need some [name]."
return
/datum/reagent/proc/reagent_deleted()
diff --git a/code/modules/reagents/newchem/other.dm b/code/modules/reagents/newchem/other.dm
index 3f6ae65d250..9d138407d96 100644
--- a/code/modules/reagents/newchem/other.dm
+++ b/code/modules/reagents/newchem/other.dm
@@ -265,7 +265,7 @@ datum/reagent/super_hairgrownium/on_mob_life(var/mob/living/M as mob)
H.unEquip(H.wear_mask)
var/obj/item/clothing/mask/fakemoustache = new /obj/item/clothing/mask/fakemoustache
H.equip_to_slot(fakemoustache, slot_wear_mask)
- H << "Hair bursts forth from your every follicle!"
+ H << "Hair bursts forth from your every follicle!"
..()
return
@@ -286,25 +286,20 @@ datum/reagent/fartonium
datum/reagent/fartonium/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- M.emote("fart")
+
+ if(prob(66))
+ M.emote("fart")
+
if(holder.has_reagent("simethicone"))
- if(prob(30))
- switch(pick(1,2))
- if(1)
- M << "Something isn't right!"
- M.adjustBruteLoss(1)
- if(2)
- M.custom_emote(1,"strains, but nothing happens.")
- M.adjustBruteLoss(2)
- if(3)
- M.emote("scream")
- M.adjustBruteLoss(2)
- if(4)
- M << "Oh gosh, the pain!"
- M.adjustBruteLoss(1)
- if(5)
- M << "THE PAIN!"
- M.adjustBruteLoss(1)
+ if(prob(25))
+ M << "[pick("Oh god, something doesn't feel right!", "IT HURTS!", "FUCK!", "Something is seriously wrong!", "THE PAIN!", "You feel like you're gonna die!")]"
+ M.adjustBruteLoss(1)
+ if(prob(10))
+ M.custom_emote(1,"strains, but nothing happens.")
+ M.adjustBruteLoss(2)
+ if(prob(5))
+ M.emote("scream")
+ M.adjustBruteLoss(4)
..()
return
diff --git a/code/modules/reagents/newchem/pyro.dm b/code/modules/reagents/newchem/pyro.dm
index 12a8266693e..719d95b6c3c 100644
--- a/code/modules/reagents/newchem/pyro.dm
+++ b/code/modules/reagents/newchem/pyro.dm
@@ -541,7 +541,7 @@ datum/reagent/pyrosium/on_tick()
/datum/chemical_reaction/azide/on_reaction(var/datum/reagents/holder, var/created_volume)
var/location = get_turf(holder.my_atom)
- explosion(location,0,1,3)
+ explosion(location,0,1,4)
return
datum/reagent/firefighting_foam
@@ -609,7 +609,7 @@ datum/reagent/firefighting_foam/reaction_obj(var/obj/O, var/volume)
/datum/chemical_reaction/clf3_firefighting/on_reaction(var/datum/reagents/holder, var/created_volume)
var/location = get_turf(holder.my_atom)
- explosion(location,0,0,3)
+ explosion(location,-1,0,2)
return
/datum/chemical_reaction/shock_explosion
diff --git a/code/modules/reagents/newchem/toxins.dm b/code/modules/reagents/newchem/toxins.dm
index 2cdc5f08a8f..c69baf5b76b 100644
--- a/code/modules/reagents/newchem/toxins.dm
+++ b/code/modules/reagents/newchem/toxins.dm
@@ -27,34 +27,49 @@
reagent_state = LIQUID
color = "#E7C4C4"
metabolization_rate = 0.2
- overdose_threshold = 30
+ overdose_threshold = 40
/datum/reagent/histamine/reaction_mob(var/mob/living/M as mob, var/method=TOUCH, var/volume) //dumping histamine on someone is VERY mean.
if(iscarbon(M))
if(method == TOUCH)
M.reagents.add_reagent("histamine",10)
+ else
+ M << "You feel a burning sensation in your throat..."
+ M.emote("drool")
/datum/reagent/histamine/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- switch(pick(1, 2, 3, 4))
- if(1)
- M << "You can barely see!"
- M.eye_blurry = 3
- if(2)
- M.emote("cough")
- if(3)
- M.emote("sneeze")
- if(4)
- if(prob(75))
- M << "You scratch at an itch."
- M.adjustBruteLoss(2*REM)
+ if(prob(20))
+ M.emote(pick("twitch", "grumble", "sneeze", "cough"))
+ if(prob(10))
+ 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))
+ M << "You're getting a rash!"
+ M.adjustBruteLoss(2)
..()
return
/datum/reagent/histamine/overdose_process(var/mob/living/M as mob)
- M.adjustOxyLoss(pick(1,3)*REM)
- M.adjustBruteLoss(pick(1,3)*REM)
- M.adjustToxLoss(pick(1,3)*REM)
+ if(prob(2))
+ 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))
+ M << "Your chest hurts!"
+ M.emote(pick("cough","gasp"))
+ M.adjustOxyLoss(3)
..()
return
@@ -86,7 +101,7 @@
/datum/reagent/venom
name = "Venom"
id = "venom"
- description = "Will deal scaling amounts of Toxin and Brute damage over time. 25% chance to decay into 5-10 histamine."
+ description = "An incredibly potent poison. Origin unknown."
reagent_state = LIQUID
color = "#CF3600"
metabolization_rate = 0.2
@@ -94,20 +109,27 @@
/datum/reagent/venom/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- M.adjustToxLoss(1*REM)
- M.adjustBruteLoss(1*REM)
- if(volume >= 20)
- M.adjustToxLoss(1*REM)
- M.adjustBruteLoss(1*REM)
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)
..()
return
/datum/reagent/venom/overdose_process(var/mob/living/M as mob)
if(volume >= 40)
if(prob(4))
- M.gib()
+ 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()
..()
return
@@ -120,21 +142,32 @@
metabolization_rate = 1
/datum/reagent/neurotoxin2/on_mob_life(var/mob/living/M as mob)
- if(current_cycle <= 4)
- M.reagents.add_reagent("neurotoxin2", 1.0)
- if(current_cycle >= 5)
- if(prob(5))
- M.emote("drool")
- if(M.getBrainLoss() < 60)
- M.adjustBrainLoss(1*REM)
- M.adjustToxLoss(1*REM)
- if(current_cycle >= 9)
- M.drowsyness = max(M.drowsyness, 10)
- if(current_cycle >= 13)
- M.Paralyse(8)
switch(current_cycle)
- if(5 to 45)
- M.confused = max(M.confused, 15)
+ 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)
..()
return
@@ -159,16 +192,17 @@
/datum/reagent/cyanide/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
+ M.adjustToxLoss(1.5*REM)
if(prob(5))
M.emote("drool")
- M.adjustToxLoss(1.5*REM)
if(prob(10))
- M << "You cannot breathe!"
+ M << "You cannot breathe!"
M.losebreath += 1
+ M.emote("gasp")
if(prob(8))
- M << "You feel horrendously weak!"
+ M << "You feel horrendously weak!"
M.Stun(2)
- M.adjustToxLoss(2*REM)
+ M.adjustToxLoss(2)
..()
return
@@ -182,6 +216,12 @@
mix_message = "The mixture gives off a faint scent of almonds."
mix_sound = 'sound/goonstation/misc/drinkfizz.ogg'
+/datum/chemical_reaction/cyanide/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("cyanide",7)
/datum/reagent/itching_powder
name = "Itching Powder"
@@ -194,17 +234,28 @@
/datum/reagent/itching_powder/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- if(prob(rand(5,50)))
- M << "You scratch at your head."
- M.adjustBruteLoss(0.2*REM)
- if(prob(rand(5,50)))
- M << "You scratch at your leg."
- M.adjustBruteLoss(0.2*REM)
- if(prob(rand(5,50)))
- M << "You scratch at your arm."
- M.adjustBruteLoss(0.2*REM)
+ if(prob(25))
+ M.emote(pick("twitch", "laugh", "sneeze", "cry"))
+ if(prob(20))
+ 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))
+ M << "So itchy!"
+ M.adjustBruteLoss(2)
if(prob(6))
- M.reagents.add_reagent("histamine",rand(1,3))
+ M.reagents.add_reagent("histamine", rand(1,3))
+ if(prob(2))
+ 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")
..()
return
@@ -240,7 +291,7 @@
var/mob/living/carbon/human/H = M
if(volume < 5)
- M << "The blueish acidic substance stings you, but isn't concentrated enough to harm you!"
+ M << "The blueish acidic substance stings you, but isn't concentrated enough to harm you!"
if(volume >=5 && volume <=10)
if(!H.unacidable)
@@ -305,22 +356,24 @@
/datum/reagent/initropidril/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
if(prob(33))
- switch(pick(1,2))
- if(1)
- M << "You feel horrendously weak!"
- M.Stun(2)
- if(2)
- M.adjustToxLoss(rand(5,25))
+ M.adjustToxLoss(rand(5,25))
+ if(prob(33))
+ M << "You feel horribly weak."
+ M.Stun(2)
if(prob(10))
- switch(pick(1,2))
- if(1)
- M << "You cannot breathe!"
- M.losebreath += 5
- M.adjustOxyLoss(10)
- if(2)
- var/mob/living/carbon/human/H = M
- if(!H.heart_attack)
- H.heart_attack = 1 // rip in pepperoni
+ M << "You cannot breathe!"
+ M.adjustOxyLoss(10)
+ M.losebreath++
+ if(prob(10))
+ 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
..()
return
@@ -335,9 +388,10 @@
/datum/reagent/concentrated_initro/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
if(volume >=5)
- var/mob/living/carbon/human/H = M
- if(!H.heart_attack)
- H.heart_attack = 1 // rip in pepperoni
+ 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"
@@ -349,12 +403,27 @@
/datum/reagent/pancuronium/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- if(current_cycle >= 10)
- M.Weaken(3)
- if(prob(10))
- M.losebreath += 1
- if(prob(7))
- M.losebreath += 3
+ switch(current_cycle)
+ if(1 to 5)
+ if(prob(10))
+ M.emote(pick("drool", "tremble"))
+ if(6 to 10)
+ if(prob(8))
+ 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))
+ M << "You can't [pick("move", "feel your legs", "feel your face", "feel anything")]!"
+ if(prob(7))
+ M << "You can't breathe!"
+ M.losebreath += 3
..()
return
@@ -368,12 +437,21 @@
/datum/reagent/sodium_thiopental/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- if(current_cycle == 1)
+ 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")
- if(current_cycle >= 2)
- M.drowsyness = max(M.drowsyness, 20)
- if(current_cycle >= 5)
- M.Paralyse(4)
+ M.adjustBrainLoss(1)
..()
return
@@ -388,13 +466,19 @@
/datum/reagent/ketamine/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- if(current_cycle <= 10)
- if(prob(20))
- M.emote("yawn")
- if(current_cycle == 6)
- M.eye_blurry = max(M.eye_blurry, 5)
- if(current_cycle >= 10)
- M.Paralyse(10)
+ 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)
..()
return
@@ -417,18 +501,21 @@
/datum/reagent/sulfonal/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- M.adjustToxLoss(1)
- if(current_cycle >= 11)
- M.drowsyness = max(M.drowsyness, 20)
+ M.jitteriness = max(0, M.jitteriness-30)
switch(current_cycle)
- if(0 to 10)
- if(prob(5))
+ if(1 to 10)
+ if(prob(7))
M.emote("yawn")
- if(22)
+ if(11 to 20)
+ M.drowsyness = max(M.drowsyness, 20)
+ if(21)
M.emote("faint")
- if(23 to INFINITY)
+ if(22 to INFINITY)
if(prob(20))
M.emote("faint")
+ M.Paralyse(5)
+ M.drowsyness = max(M.drowsyness, 20)
+ M.adjustToxLoss(1)
..()
return
@@ -467,13 +554,18 @@
/datum/reagent/lipolicide/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- if(!holder.has_reagent("nutriment"))
- if(prob(30))
- M.adjustToxLoss(1)
- M.nutrition -= 10 * REAGENTS_METABOLISM
- M.overeatduration = 0
- if(M.nutrition < 0)//Prevent from going into negatives.
- M.nutrition = 0
+ if(!M.nutrition)
+ switch(rand(1,3))
+ if(1)
+ M << "You feel hungry..."
+ if(2)
+ M.adjustToxLoss(1)
+ 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
..()
return
@@ -487,8 +579,8 @@
/datum/reagent/coniine/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- M.losebreath += 5
M.adjustToxLoss(2)
+ M.losebreath += 5
..()
return
@@ -503,65 +595,101 @@
/datum/reagent/curare/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- if(prob(5))
- M.emote(pick("gasp","drool", "pale"))
- if(current_cycle >= 11)
- M.Weaken(15)
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))
+ 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))
+ M << "You can't [pick("breathe", "move", "feel your legs", "feel your face", "feel anything")]!"
+ M.losebreath++
..()
return
-/datum/reagent/tabun
- name = "Tabun"
- id = "tabun"
+/datum/reagent/sarin
+ name = "Sarin"
+ id = "sarin"
description = "An extremely deadly neurotoxin."
reagent_state = LIQUID
color = "#C7C7C7"
metabolization_rate = 0.1
penetrates_skin = 1
-/datum/chemical_reaction/tabun
- name = "tabun"
- id = "tabun"
- result = "tabun"
- required_reagents = list("phenol" = 1, "diethylamine" = 1, "phosphorus" = 1, "oxygen" = 1, "chlorine" = 1, "sodiumchloride" = 1, "ethanol" = 1, "cyanide" = 1)
- result_amount = 8
+/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/reagent/tabun/on_mob_life(var/mob/living/M as mob)
+/datum/chemical_reaction/sarin/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, 2))
+ if(!(C.wear_mask && (C.internals != null || C.wear_mask.flags & BLOCK_GAS_SMOKE_EFFECT)))
+ C.reagents.add_reagent("sarin",4)
+
+/datum/reagent/sarin/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- M.adjustFireLoss(1)
- if(prob(20))
- M.emote(pick("twitch","drool", "quiver"))
- if(prob(10))
- M.emote("scream")
- M.drop_l_hand()
- M.drop_r_hand()
- if(prob(5))
- M.confused = max(M.confused, 3)
- if(prob(15))
- M.fakevomit()
- if(prob(2))
- M.visible_message("[M] starts having a seizure!", "You have a seizure!")
- M.Paralyse(5)
- M.jitteriness = 1000
- if(current_cycle >= 5)
- M.jitteriness += 10
- if(current_cycle >= 20)
- if(prob(5))
- M.emote("collapse")
switch(current_cycle)
- if(0 to 60)
- M.adjustBrainLoss(1)
- M.adjustToxLoss(1)
+ 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))
+ M << "You can't breathe!"
+ M.emote(pick("gasp", "choke", "cough"))
+ M.losebreath++
if(61 to INFINITY)
- M.adjustBrainLoss(2)
- M.adjustToxLoss(2)
- M.Paralyse(5)
- M.losebreath += 5
+ 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)
..()
return
@@ -646,10 +774,18 @@
/datum/reagent/capulettium/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- M.eye_blurry = max(M.eye_blurry, 2)
- if(current_cycle == 12)
- M.emote("deathgasp")
- M.Paralyse(10)
+ 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
..()
return
@@ -684,14 +820,12 @@
/datum/reagent/toxic_slurry/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
if(prob(10))
- M.adjustToxLoss(rand(2,4))
+ M.adjustToxLoss(rand(2.4))
if(prob(7))
- switch(pick(1,2))
- if(1)
- M.fakevomit(1)
- if(2)
- M.Stun(rand(4,10))
- M << "A horrible migraine overpowers you."
+ M << "A horrible migraine overpowers you."
+ M.Stun(rand(2,5))
+ if(prob(7))
+ M.fakevomit(1)
..()
return
@@ -706,21 +840,18 @@
if(!..()) return
if(!M.dna) return //No robots, AIs, aliens, Ians or other mobs should be affected by this.
src = null
- if((method==TOUCH && prob(33)) || method==INGEST)
- if(prob(98))
- randmutb(M)
- else
- randmutg(M)
+ if((method==TOUCH && prob(50)) || method==INGEST)
+ randmutb(M)
domutcheck(M, null)
M.UpdateAppearance()
return
/datum/reagent/glowing_slurry/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- M.apply_effect(2*REM, IRRADIATE, 0, negate_armor = 1)
+ M.apply_effect(2, IRRADIATE, 0, negate_armor = 1)
if(prob(15))
randmutb(M)
- if(prob(5))
+ if(prob(3))
randmutg(M)
domutcheck(M, null)
M.UpdateAppearance()
@@ -738,9 +869,9 @@
/datum/reagent/ants/reaction_mob(var/mob/living/M as mob, var/method=TOUCH, var/volume) //NOT THE ANTS
if(iscarbon(M))
if(method == TOUCH || method==INGEST)
- M.adjustBruteLoss(4)
- M.emote("scream")
M << "OH SHIT ANTS!!!!"
+ M.emote("scream")
+ M.adjustBruteLoss(4)
/datum/reagent/ants/on_mob_life(var/mob/living/M as mob)
@@ -757,6 +888,7 @@
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++
diff --git a/code/modules/reagents/oldchem/reagents/reagents_drugs.dm b/code/modules/reagents/oldchem/reagents/reagents_drugs.dm
index 5013dddcd85..c44cfe3715e 100644
--- a/code/modules/reagents/oldchem/reagents/reagents_drugs.dm
+++ b/code/modules/reagents/oldchem/reagents/reagents_drugs.dm
@@ -4,11 +4,13 @@
description = "A chemical compound that promotes concentrated production of the serotonin neurotransmitter in humans."
reagent_state = LIQUID
color = "#202040" // rgb: 20, 20, 40
+ metabolization_rate = 0.25 * REAGENTS_METABOLISM
/datum/reagent/serotrotium/on_mob_life(var/mob/living/M as mob)
if(ishuman(M))
- if(prob(7)) M.emote(pick("twitch","drool","moan","gasp"))
- holder.remove_reagent(src.id, 0.25 * REAGENTS_METABOLISM)
+ if(prob(7))
+ M.emote(pick("twitch","drool","moan","gasp"))
+ ..()
return
@@ -21,8 +23,9 @@
/datum/reagent/lithium/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- if(M.canmove && !M.restrained() && istype(M.loc, /turf/space))
- step(M, pick(cardinal))
+ if(isturf(M.loc) && !istype(M.loc, /turf/space))
+ if(M.canmove && !M.restrained())
+ step(M, pick(cardinal))
if(prob(5)) M.emote(pick("twitch","drool","moan"))
..()
return
@@ -71,6 +74,7 @@
/datum/reagent/lsd/on_mob_life(var/mob/living/M)
if(!M) M = holder.my_atom
+ M.druggy = max(M.druggy, 15)
M.hallucination += 10
..()
return
@@ -89,7 +93,7 @@
M.druggy = max(M.druggy, 15)
if(isturf(M.loc) && !istype(M.loc, /turf/space))
if(M.canmove && !M.restrained())
- if(prob(10)) step(M, pick(cardinal))
+ step(M, pick(cardinal))
if(prob(7)) M.emote(pick("twitch","drool","moan","giggle"))
..()
return
\ No newline at end of file
diff --git a/code/modules/reagents/oldchem/reagents/reagents_flammable.dm b/code/modules/reagents/oldchem/reagents/reagents_flammable.dm
index 377fd17f340..361507d19e6 100644
--- a/code/modules/reagents/oldchem/reagents/reagents_flammable.dm
+++ b/code/modules/reagents/oldchem/reagents/reagents_flammable.dm
@@ -13,12 +13,6 @@
return
..()
-/datum/reagent/fuel/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- M.adjustToxLoss(1)
- ..()
- return
-
/datum/reagent/fuel/unholywater //if you somehow managed to extract this from someone, dont splash it on yourself and have a smoke
name = "Unholy Water"
id = "unholywater"
@@ -84,13 +78,6 @@
T.overlays = image('icons/effects/effects.dmi',icon_state = "thermite")
return
-/datum/reagent/thermite/on_mob_life(var/mob/living/M as mob)
- if(!M) M = holder.my_atom
- M.adjustFireLoss(1)
- ..()
- return
-
-
/datum/reagent/glycerol
name = "Glycerol"
id = "glycerol"
diff --git a/code/modules/reagents/oldchem/reagents/reagents_food.dm b/code/modules/reagents/oldchem/reagents/reagents_food.dm
index de7297a5f39..f978f56aef7 100644
--- a/code/modules/reagents/oldchem/reagents/reagents_food.dm
+++ b/code/modules/reagents/oldchem/reagents/reagents_food.dm
@@ -436,22 +436,28 @@
overdose_threshold = 200 // Hyperglycaemic shock
/datum/reagent/sugar/on_mob_life(var/mob/living/M as mob)
- if(prob(4))
- M.reagents.add_reagent("epinephrine", 1.2)
+ M.drowsyness = max(0, M.drowsyness-5)
+ if(current_cycle >= 90)
+ M.jitteriness += 2
if(prob(50))
M.AdjustParalysis(-1)
M.AdjustStunned(-1)
M.AdjustWeakened(-1)
- if(current_cycle >= 90)
- M.jitteriness += 10
+ if(prob(4))
+ M.reagents.add_reagent("epinephrine", 1.2)
..()
return
+/datum/reagent/sugar/overdose_start(var/mob/living/M as mob)
+ M << "You pass out from hyperglycemic shock!"
+ M.emote("collapse")
+ ..()
+
/datum/reagent/sugar/overdose_process(var/mob/living/M as mob)
if(volume > 200)
- M << "You pass out from hyperglycemic shock!"
- M.Paralyse(1)
+ M.Paralyse(3)
+ M.Weaken(4)
if(prob(8))
- M.adjustToxLoss(rand(1,2))
+ M.adjustToxLoss(1)
..()
return
diff --git a/code/modules/reagents/oldchem/reagents/reagents_med.dm b/code/modules/reagents/oldchem/reagents/reagents_med.dm
index d0bb839a424..ae6fd9bb8a3 100644
--- a/code/modules/reagents/oldchem/reagents/reagents_med.dm
+++ b/code/modules/reagents/oldchem/reagents/reagents_med.dm
@@ -57,9 +57,11 @@
/datum/reagent/synaptizine/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)
M.AdjustStunned(-1)
M.AdjustWeakened(-1)
+ M.SetSleeping(0)
if(prob(50))
M.adjustBrainLoss(-1.0)
..()
@@ -97,8 +99,8 @@
if(M.bodytemperature < 265)
M.adjustCloneLoss(-4)
M.adjustOxyLoss(-10)
- M.heal_organ_damage(12,12)
M.adjustToxLoss(-3)
+ M.heal_organ_damage(12,12)
M.status_flags &= ~DISFIGURED
..()
return
@@ -132,8 +134,4 @@
description = "An all-purpose antibiotic agent extracted from space fungus."
reagent_state = LIQUID
color = "#0AB478"
- metabolization_rate = 0.2
-
-/datum/reagent/spaceacillin/on_mob_life(var/mob/living/M as mob)
- ..()
- return
\ No newline at end of file
+ metabolization_rate = 0.2
\ No newline at end of file
diff --git a/code/modules/reagents/oldchem/reagents/reagents_toxin.dm b/code/modules/reagents/oldchem/reagents/reagents_toxin.dm
index 341155bf2e6..1013c237462 100644
--- a/code/modules/reagents/oldchem/reagents/reagents_toxin.dm
+++ b/code/modules/reagents/oldchem/reagents/reagents_toxin.dm
@@ -188,7 +188,7 @@
/datum/reagent/radium/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
if(M.radiation < 80)
- M.apply_effect(4,IRRADIATE,0)
+ M.apply_effect(4, IRRADIATE, negate_armor = 1)
// radium may increase your chances to cure a disease
if(istype(M,/mob/living/carbon)) // make sure to only use it on carbon mobs
var/mob/living/carbon/C = M
@@ -197,7 +197,7 @@
var/datum/disease2/disease/V = C.virus2[ID]
if(prob(5))
if(prob(50))
- M.apply_effect(50,IRRADIATE,0) // curing it that way may kill you instead
+ M.apply_effect(50, IRRADIATE, negate_armor = 1) // curing it that way may kill you instead
M.adjustToxLoss(100)
C.antibodies |= V.antigen
..()
@@ -224,10 +224,7 @@
if(!M.dna) return //No robots, AIs, aliens, Ians or other mobs should be affected by this.
src = null
if((method==TOUCH && prob(33)) || method==INGEST)
- if(prob(98))
- randmutb(M)
- else
- randmutg(M)
+ randmutb(M)
domutcheck(M, null)
M.UpdateAppearance()
return
@@ -235,7 +232,7 @@
/datum/reagent/mutagen/on_mob_life(var/mob/living/M as mob)
if(!M.dna) return //No robots, AIs, aliens, Ians or other mobs should be affected by this.
if(!M) M = holder.my_atom
- M.apply_effect(2*REM,IRRADIATE,0)
+ M.apply_effect(2*REM, IRRADIATE, negate_armor = 1)
if(prob(4))
randmutb(M)
..()
@@ -251,7 +248,7 @@
/datum/reagent/uranium/on_mob_life(var/mob/living/M as mob)
if(!M) M = holder.my_atom
- M.apply_effect(2,IRRADIATE,0)
+ M.apply_effect(2, IRRADIATE, negate_armor = 1)
..()
return
@@ -327,7 +324,7 @@
var/mob/living/carbon/human/H = M
if(volume < 10)
- M << "The greenish acidic substance stings you, but isn't concentrated enough to harm you!"
+ M << "The greenish acidic substance stings you, but isn't concentrated enough to harm you!"
if(volume >=10 && volume <=25)
if(!H.unacidable)
diff --git a/code/modules/reagents/reagent_containers/glass/bottle.dm b/code/modules/reagents/reagent_containers/glass/bottle.dm
index 64eeee9ffae..1e005b5c9ea 100644
--- a/code/modules/reagents/reagent_containers/glass/bottle.dm
+++ b/code/modules/reagents/reagent_containers/glass/bottle.dm
@@ -299,4 +299,4 @@
New()
..()
- reagents.add_reagent(pick("polonium","initropidril","concentrated_initro","pancuronium","sodium_thiopental","ketamine","sulfonal","amanitin","coniine","curare","tabun","histamine","venom","cyanide"), 40)
\ No newline at end of file
+ reagents.add_reagent(pick("polonium","initropidril","concentrated_initro","pancuronium","sodium_thiopental","ketamine","sulfonal","amanitin","coniine","curare","sarin","histamine","venom","cyanide"), 40)
\ No newline at end of file
diff --git a/sound/goonstation/effects/crystalshatter.ogg b/sound/goonstation/effects/crystalshatter.ogg
new file mode 100644
index 00000000000..4f0b4fb7942
Binary files /dev/null and b/sound/goonstation/effects/crystalshatter.ogg differ
diff --git a/sound/goonstation/misc/gurggle.ogg b/sound/goonstation/misc/gurggle.ogg
new file mode 100644
index 00000000000..37f4c35761b
Binary files /dev/null and b/sound/goonstation/misc/gurggle.ogg differ