diff --git a/code/datums/uplink_item.dm b/code/datums/uplink_item.dm
index 2e25e2fd816..038070c5571 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/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/drugs.dm b/code/modules/reagents/newchem/drugs.dm
index 5389c8bed6d..bbecf0c134e 100644
--- a/code/modules/reagents/newchem/drugs.dm
+++ b/code/modules/reagents/newchem/drugs.dm
@@ -23,6 +23,9 @@
M.AdjustStunned(-1)
M.AdjustWeakened(-1)
M.adjustStaminaLoss(-1*REM)
+ if(current_cycle >= 25)
+ if(prob(50))
+ M.jitteriness += 5
..()
return
@@ -43,17 +46,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)
@@ -109,9 +118,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 +197,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","blink_r","shiver"))
+ if(current_cycle >= 25)
+ M.jitteriness += 5
+ M.drowsyness = max(M.drowsyness-10, 0)
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
@@ -396,10 +421,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(holder.get_reagent_amount(src.id) >= 50 && prob(25))
+ if(prob(10))
+ M.drowsyness = max(M.drowsyness, 10)
..()
return
diff --git a/code/modules/reagents/newchem/medicine.dm b/code/modules/reagents/newchem/medicine.dm
index 979fe8492ba..1617fdfa7e9 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
@@ -322,8 +322,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 +346,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 +377,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 +438,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 +474,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 +590,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 +635,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 +836,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 +860,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 +983,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 +1017,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 +1071,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..aa3493df350 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
@@ -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"))
diff --git a/code/modules/reagents/newchem/toxins.dm b/code/modules/reagents/newchem/toxins.dm
index 2cdc5f08a8f..d5831cc0360 100644
--- a/code/modules/reagents/newchem/toxins.dm
+++ b/code/modules/reagents/newchem/toxins.dm
@@ -120,21 +120,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
@@ -349,12 +360,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 +394,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 +423,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 +458,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
@@ -503,65 +547,94 @@
/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/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_v","quiver"))
+ if(16 to 30)
+ if(prob(25))
+ M.emote(pick("twitch","twitch_v","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_v","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_v","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 +719,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
diff --git a/code/modules/reagents/oldchem/reagents/reagents_drugs.dm b/code/modules/reagents/oldchem/reagents/reagents_drugs.dm
index 5013dddcd85..c10926ce097 100644
--- a/code/modules/reagents/oldchem/reagents/reagents_drugs.dm
+++ b/code/modules/reagents/oldchem/reagents/reagents_drugs.dm
@@ -21,8 +21,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 +72,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 +91,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_food.dm b/code/modules/reagents/oldchem/reagents/reagents_food.dm
index de7297a5f39..0717d5dbb4f 100644
--- a/code/modules/reagents/oldchem/reagents/reagents_food.dm
+++ b/code/modules/reagents/oldchem/reagents/reagents_food.dm
@@ -443,7 +443,7 @@
M.AdjustStunned(-1)
M.AdjustWeakened(-1)
if(current_cycle >= 90)
- M.jitteriness += 10
+ M.jitteriness += 2
..()
return
diff --git a/code/modules/reagents/oldchem/reagents/reagents_med.dm b/code/modules/reagents/oldchem/reagents/reagents_med.dm
index d0bb839a424..e1971c0d941 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)
..()
diff --git a/code/modules/reagents/oldchem/reagents/reagents_toxin.dm b/code/modules/reagents/oldchem/reagents/reagents_toxin.dm
index 341155bf2e6..0bdd25a4386 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
..()
@@ -235,7 +235,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 +251,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
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