mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-07-14 00:23:29 +01:00
Chem Tweaks
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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 << "<span class='notice'>[high_message]</span>"
|
||||
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 << "<span class='notice'>You feel great!</span>"
|
||||
M.reagents.add_reagent("methamphetamine", rand(1,2))
|
||||
M.emote(pick("laugh", "giggle"))
|
||||
if(prob(6))
|
||||
M << "<span class='notice'>You feel warm.</span>"
|
||||
M.bodytemperature += rand(1,10)
|
||||
if(prob(4))
|
||||
M.Jitter(10)
|
||||
M.adjustToxLoss(1.0)
|
||||
M << "<span class='notice'>You feel kinda awful!</span>"
|
||||
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 << "<span class='notice'>You feel pretty chill.</span>"
|
||||
M.bodytemperature--
|
||||
M.emote("smile")
|
||||
if(prob(5))
|
||||
M << "<span class='notice'>[high_message]</span>"
|
||||
M << "<span class='notice'>You feel too chill!</span>"
|
||||
M.emote(pick("yawn", "drool"))
|
||||
M.Stun(1)
|
||||
M.adjustToxLoss(1)
|
||||
M.adjustBrainLoss(1)
|
||||
M.bodytemperature -= 20
|
||||
if(prob(2))
|
||||
M << "<span class='warning'>Your skin feels all rough and dry.</span>"
|
||||
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 << "<span class='notice'>[high_message]</span>"
|
||||
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
|
||||
|
||||
|
||||
@@ -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("<span class='notice'>[M] looks a bit dazed.</span>")
|
||||
..()
|
||||
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")
|
||||
|
||||
@@ -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"))
|
||||
|
||||
@@ -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 << "<span class='danger'>You feel [pick("weak", "horribly weak", "numb", "like you can barely move", "tingly")].</span>"
|
||||
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 << "<span class='danger'>You can't [pick("move", "feel your legs", "feel your face", "feel anything")]!</span>"
|
||||
if(prob(7))
|
||||
M << "<span class='danger'>You can't breathe!</span>"
|
||||
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 << "<span class='danger'>You feel [pick("weak", "horribly weak", "numb", "like you can barely move", "tingly")].</span>"
|
||||
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 << "<span class='danger'>You can't [pick("breathe", "move", "feel your legs", "feel your face", "feel anything")]!</span>"
|
||||
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("<span class='danger'>[M] starts having a seizure!</span>", "<span class='danger'>You have a seizure!</span>")
|
||||
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("<span class='warning'>[M] has a seizure!</span>")
|
||||
M.jitteriness = 1000
|
||||
if(prob(5))
|
||||
M << "<span class='warning'>You can't breathe!</span>"
|
||||
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("<B>[M]</B> 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
|
||||
|
||||
|
||||
@@ -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
|
||||
@@ -443,7 +443,7 @@
|
||||
M.AdjustStunned(-1)
|
||||
M.AdjustWeakened(-1)
|
||||
if(current_cycle >= 90)
|
||||
M.jitteriness += 10
|
||||
M.jitteriness += 2
|
||||
..()
|
||||
return
|
||||
|
||||
|
||||
@@ -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)
|
||||
..()
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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)
|
||||
reagents.add_reagent(pick("polonium","initropidril","concentrated_initro","pancuronium","sodium_thiopental","ketamine","sulfonal","amanitin","coniine","curare","sarin","histamine","venom","cyanide"), 40)
|
||||
Reference in New Issue
Block a user