From 2dfe617998247ce8eb23893548bb6b0f15dbdb3c Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Thu, 10 Mar 2016 00:28:49 -0500 Subject: [PATCH 1/6] Chem Tweaks --- code/datums/uplink_item.dm | 8 +- .../items/weapons/grenades/chem_grenade.dm | 8 +- .../items/weapons/grenades/clusterbuster.dm | 2 +- .../items/weapons/storage/uplink_kits.dm | 12 +- code/modules/reagents/Chemistry-Holder.dm | 1 - code/modules/reagents/newchem/drugs.dm | 65 +++-- code/modules/reagents/newchem/medicine.dm | 135 ++++++---- .../modules/reagents/newchem/newchem_procs.dm | 9 +- code/modules/reagents/newchem/toxins.dm | 249 ++++++++++++------ .../oldchem/reagents/reagents_drugs.dm | 8 +- .../oldchem/reagents/reagents_food.dm | 2 +- .../reagents/oldchem/reagents/reagents_med.dm | 2 + .../oldchem/reagents/reagents_toxin.dm | 8 +- .../reagent_containers/glass/bottle.dm | 2 +- 14 files changed, 328 insertions(+), 183 deletions(-) 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 From 1979e47eac4a1ab57c122fbc7b5d0d0d82a9538e Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Thu, 10 Mar 2016 03:07:36 -0500 Subject: [PATCH 2/6] Part 2 --- code/modules/mob/living/carbon/human/emote.dm | 2 +- code/modules/reagents/newchem/drinks.dm | 23 ++- code/modules/reagents/newchem/drugs.dm | 23 +-- code/modules/reagents/newchem/food.dm | 135 ++++++++++++++---- code/modules/reagents/newchem/medicine.dm | 18 +-- code/modules/reagents/newchem/toxins.dm | 15 +- 6 files changed, 151 insertions(+), 65 deletions(-) diff --git a/code/modules/mob/living/carbon/human/emote.dm b/code/modules/mob/living/carbon/human/emote.dm index 130bf7b05db..2f3758012dc 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/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 bbecf0c134e..8ba994a1a24 100644 --- a/code/modules/reagents/newchem/drugs.dm +++ b/code/modules/reagents/newchem/drugs.dm @@ -198,7 +198,7 @@ /datum/reagent/methamphetamine/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom if(prob(5)) - M.emote(pick("twitch","blink_r","shiver")) + M.emote(pick("twitch_s","blink_r","shiver")) if(current_cycle >= 25) M.jitteriness += 5 M.drowsyness = max(M.drowsyness-10, 0) @@ -397,17 +397,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 @@ -476,10 +478,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 diff --git a/code/modules/reagents/newchem/food.dm b/code/modules/reagents/newchem/food.dm index 1329828b948..306341f7476 100644 --- a/code/modules/reagents/newchem/food.dm +++ b/code/modules/reagents/newchem/food.dm @@ -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 && ranchance != 1) + M << "That tasted absolutely FOUL." + else M << "Yuck!" /datum/reagent/chicken_soup name = "Chicken soup" @@ -216,6 +226,7 @@ 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)) @@ -225,9 +236,12 @@ datum/reagent/msg/reaction_mob(var/mob/M, var/method=TOUCH, var/volume) /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 @@ -238,6 +252,11 @@ datum/reagent/msg/reaction_mob(var/mob/M, var/method=TOUCH, var/volume) reagent_state = SOLID color = "#FFFF00" + +/datum/reagent/cheese/on_mob_life(var/mob/living/M as mob) + if(prob(3)) + M.reagents.add_reagent("cholesterol", rand(1,2)) //intentional no parent call, hehehe. + datum/reagent/cheese/reaction_turf(var/turf/T, var/volume) src = null if(volume >= 5) @@ -258,6 +277,13 @@ datum/reagent/cheese/reaction_turf(var/turf/T, var/volume) 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" @@ -266,6 +292,10 @@ datum/reagent/cheese/reaction_turf(var/turf/T, var/volume) reagent_state = SOLID color = "#50FF00" +/datum/reagent/weird_cheese/on_mob_life(var/mob/living/M as mob) + if(prob(5)) + M.reagents.add_reagent("cholesterol", rand(1,3)) //intentional no parent call, hehehe. + datum/reagent/weird_cheese/reaction_turf(var/turf/T, var/volume) src = null if(volume >= 5) @@ -289,7 +319,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 @@ -353,7 +383,7 @@ datum/reagent/ectoplasm/reaction_mob(var/mob/M, var/method=TOUCH, var/volume) /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 +395,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 +415,33 @@ 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(holder.has_reagent(src.id,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 +458,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 +510,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 +550,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 +564,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(holder.get_reagent_amount(src.id) >= 25 && prob(holder.get_reagent_amount(src.id)*0.15)) + M << "Your chest feels [pick("weird","uncomfortable","nasty","gross","odd","unusual","warm")]!" + M.adjustToxLoss(rand(1,2)) + else if (holder.get_reagent_amount(src.id) >= 45 && prob(holder.get_reagent_amount(src.id)*0.08)) + M << "Your chest [pick("hurts","stings","aches","burns")]!" + M.adjustToxLoss(rand(2,4)) + M.stunned ++ + else if (holder.get_reagent_amount(src.id) >= 150 && prob(holder.get_reagent_amount(src.id)*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 1617fdfa7e9..2a7e0517f50 100644 --- a/code/modules/reagents/newchem/medicine.dm +++ b/code/modules/reagents/newchem/medicine.dm @@ -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 diff --git a/code/modules/reagents/newchem/toxins.dm b/code/modules/reagents/newchem/toxins.dm index d5831cc0360..a9006bfcb3f 100644 --- a/code/modules/reagents/newchem/toxins.dm +++ b/code/modules/reagents/newchem/toxins.dm @@ -329,9 +329,10 @@ 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 + if(ishuman(M)) + var/mob/living/carbon/human/H = M + if(!H.heart_attack) + H.heart_attack = 1 // rip in pepperoni ..() return @@ -596,10 +597,10 @@ if(1 to 15) M.jitteriness += 20 if(prob(20)) - M.emote(pick("twitch","twitch_v","quiver")) + M.emote(pick("twitch","twitch_s","quiver")) if(16 to 30) if(prob(25)) - M.emote(pick("twitch","twitch_v","drool","quiver","tremble")) + M.emote(pick("twitch","twitch","drool","quiver","tremble")) M.eye_blurry += 5 M.stuttering = max(M.stuttering, 5) if(prob(10)) @@ -612,7 +613,7 @@ M.stuttering = max(M.stuttering, 5) if(prob(10)) M.Stun(1) - M.emote(pick("twitch","twitch_v","drool","shake","tremble")) + M.emote(pick("twitch","twitch","drool","shake","tremble")) if(prob(5)) M.emote("collapse") if(prob(5)) @@ -625,7 +626,7 @@ M.losebreath++ if(61 to INFINITY) if(prob(15)) - M.emote(pick("gasp", "choke", "cough","twitch", "shake", "tremble","quiver","drool", "twitch_v","collapse")) + 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) From 76ee7168dcbb300c74dbe3ac454cdc532f158e01 Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Thu, 10 Mar 2016 23:03:39 -0500 Subject: [PATCH 3/6] part III --- code/modules/reagents/newchem/drugs.dm | 13 +- code/modules/reagents/newchem/food.dm | 22 +- code/modules/reagents/newchem/medicine.dm | 2 +- .../modules/reagents/newchem/newchem_procs.dm | 10 +- code/modules/reagents/newchem/other.dm | 33 ++- code/modules/reagents/newchem/pyro.dm | 4 +- code/modules/reagents/newchem/toxins.dm | 222 ++++++++++-------- .../oldchem/reagents/reagents_flammable.dm | 13 - .../oldchem/reagents/reagents_food.dm | 17 +- .../reagents/oldchem/reagents/reagents_med.dm | 8 +- .../oldchem/reagents/reagents_toxin.dm | 7 +- sound/goonstation/effects/crystalshatter.ogg | Bin 0 -> 17982 bytes 12 files changed, 183 insertions(+), 168 deletions(-) create mode 100644 sound/goonstation/effects/crystalshatter.ogg diff --git a/code/modules/reagents/newchem/drugs.dm b/code/modules/reagents/newchem/drugs.dm index 8ba994a1a24..0ca9a874c2b 100644 --- a/code/modules/reagents/newchem/drugs.dm +++ b/code/modules/reagents/newchem/drugs.dm @@ -97,6 +97,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) @@ -217,7 +218,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() @@ -400,7 +401,7 @@ M.adjustStaminaLoss(-40) if(prob(90)) M.adjustToxLoss(1) - if (prob(5)) + 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)) @@ -484,7 +485,7 @@ M.AdjustStunned(-1.5) M.AdjustWeakened(-1.5) M.adjustStaminaLoss(-1.5) - M.setSleeping(0) + M.SetSleeping(0) ..() return @@ -499,11 +500,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) @@ -559,7 +560,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 306341f7476..889d03e92c7 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" @@ -201,11 +201,11 @@ datum/reagent/fungus/reaction_mob(var/mob/M, var/method=TOUCH, var/volume) if(method == INGEST) var/ranchance = rand(1,10) if(ranchance == 1) - M << "You feel very sick." + M << "You feel very sick." M.reagents.add_reagent("toxin", rand(1,5)) - else if (ranchance <= 5 && ranchance != 1) - M << "That tasted absolutely FOUL." - else M << "Yuck!" + else if(ranchance <= 5 && ranchance != 1) + M << "That tasted absolutely FOUL." + else M << "Yuck!" /datum/reagent/chicken_soup name = "Chicken soup" @@ -232,12 +232,12 @@ 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(5)) - if (prob(10)) + if(prob(10)) M.adjustToxLoss(rand(2.4)) if(prob(7)) M << "A horrible migraine overpowers you." @@ -281,7 +281,7 @@ datum/reagent/cheese/reaction_turf(var/turf/T, var/volume) /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 << "You feel something squirming in your stomach. Your thoughts turn to cheese and you begin to sweat." M.adjustToxLoss(rand(1,2)) ..() @@ -379,7 +379,7 @@ 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...") @@ -577,11 +577,11 @@ datum/reagent/pepperoni/reaction_mob(var/mob/living/M, var/method=TOUCH, var/vol if(holder.get_reagent_amount(src.id) >= 25 && prob(holder.get_reagent_amount(src.id)*0.15)) M << "Your chest feels [pick("weird","uncomfortable","nasty","gross","odd","unusual","warm")]!" M.adjustToxLoss(rand(1,2)) - else if (holder.get_reagent_amount(src.id) >= 45 && prob(holder.get_reagent_amount(src.id)*0.08)) + else if(holder.get_reagent_amount(src.id) >= 45 && prob(holder.get_reagent_amount(src.id)*0.08)) M << "Your chest [pick("hurts","stings","aches","burns")]!" M.adjustToxLoss(rand(2,4)) M.stunned ++ - else if (holder.get_reagent_amount(src.id) >= 150 && prob(holder.get_reagent_amount(src.id)*0.01)) + else if(holder.get_reagent_amount(src.id) >= 150 && prob(holder.get_reagent_amount(src.id)*0.01)) M << "Your chest is burning with pain!" M.Stun(1) M.Weaken(1) diff --git a/code/modules/reagents/newchem/medicine.dm b/code/modules/reagents/newchem/medicine.dm index 2a7e0517f50..b85f73edf27 100644 --- a/code/modules/reagents/newchem/medicine.dm +++ b/code/modules/reagents/newchem/medicine.dm @@ -596,7 +596,7 @@ datum/reagent/atropine/on_mob_life(var/mob/living/M as mob) M.adjustToxLoss(-1) M.adjustBruteLoss(-3*REM) M.adjustFireLoss(-3*REM) - else if (M.health > -60) + else if(M.health > -60) M.adjustToxLoss(1) M.reagents.remove_reagent("sarin", 20) ..() diff --git a/code/modules/reagents/newchem/newchem_procs.dm b/code/modules/reagents/newchem/newchem_procs.dm index aa3493df350..fd29db191f4 100644 --- a/code/modules/reagents/newchem/newchem_procs.dm +++ b/code/modules/reagents/newchem/newchem_procs.dm @@ -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() @@ -132,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..07524fd1767 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 gunna 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 a9006bfcb3f..3bcd480814f 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 @@ -143,7 +165,7 @@ else if(prob(10)) M.adjustBrainLoss(1) - if (prob(10)) + if(prob(10)) M.emote("drool") M.adjustToxLoss(1) ..() @@ -170,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 @@ -205,17 +228,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 @@ -251,7 +285,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) @@ -316,23 +350,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) - if(ishuman(M)) - 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 @@ -347,9 +382,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" @@ -369,7 +405,7 @@ if(prob(8)) M << "You feel [pick("weak", "horribly weak", "numb", "like you can barely move", "tingly")]." M.Stun(1) - else if (prob(8)) + else if(prob(8)) M.emote(pick("drool", "tremble")) if(11 to INFINITY) M.Stun(20) @@ -396,18 +432,18 @@ /datum/reagent/sodium_thiopental/on_mob_life(var/mob/living/M as mob) if(!M) M = holder.my_atom switch(current_cycle) - if (1) + if(1) M.emote("drool") M.confused = max(M.confused, 5) - if (2 to 4) + if(2 to 4) M.drowsyness = max(M.drowsyness, 20) - if (5) + if(5) M.emote("faint") M.Weaken(5) - if (6 to INFINITY) + if(6 to INFINITY) M.Paralyse(20) M.jitteriness = max(0, M.jitteriness-50) - if (prob(10)) + if(prob(10)) M.emote("drool") M.adjustBrainLoss(1) ..() @@ -430,7 +466,7 @@ M.emote("yawn") if(6 to 9) M.eye_blurry += 5 - if (prob(35)) + if(prob(35)) M.emote("yawn") if(10) M.emote("faint") @@ -462,7 +498,7 @@ M.jitteriness = max(0, M.jitteriness-30) switch(current_cycle) if(1 to 10) - if (prob(7)) + if(prob(7)) M.emote("yawn") if(11 to 20) M.drowsyness = max(M.drowsyness, 20) @@ -512,13 +548,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 @@ -532,8 +573,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 @@ -559,14 +600,14 @@ if(prob(8)) M << "You feel [pick("weak", "horribly weak", "numb", "like you can barely move", "tingly")]." M.Stun(1) - else if (prob(8)) + 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)) + else if(prob(8)) M << "You can't [pick("breathe", "move", "feel your legs", "feel your face", "feel anything")]!" M.losebreath++ ..() @@ -631,7 +672,7 @@ M.adjustToxLoss(1) M.adjustBrainLoss(1) M.Weaken(4) - if (prob(8)) + if(prob(8)) M.fakevomit() M.adjustToxLoss(1) M.adjustBrainLoss(1) @@ -766,14 +807,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 @@ -788,21 +827,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() @@ -820,9 +856,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) 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 0717d5dbb4f..e483cedbdc6 100644 --- a/code/modules/reagents/oldchem/reagents/reagents_food.dm +++ b/code/modules/reagents/oldchem/reagents/reagents_food.dm @@ -436,22 +436,25 @@ 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 += 2 + if(prob(4)) + M.reagents.add_reagent("epinephrine", 1.2) ..() return /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 << "You pass out from hyperglycemic shock!" + M.emote("collapse") + 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 e1971c0d941..ae6fd9bb8a3 100644 --- a/code/modules/reagents/oldchem/reagents/reagents_med.dm +++ b/code/modules/reagents/oldchem/reagents/reagents_med.dm @@ -99,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 @@ -134,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 0bdd25a4386..1013c237462 100644 --- a/code/modules/reagents/oldchem/reagents/reagents_toxin.dm +++ b/code/modules/reagents/oldchem/reagents/reagents_toxin.dm @@ -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 @@ -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/sound/goonstation/effects/crystalshatter.ogg b/sound/goonstation/effects/crystalshatter.ogg new file mode 100644 index 0000000000000000000000000000000000000000..4f0b4fb7942d643e69688755d8d9e972235e9104 GIT binary patch literal 17982 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 literal 0 HcmV?d00001 From 798e81f7eee2a6e000d8b7d82f53d0af04438e28 Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Thu, 10 Mar 2016 23:40:50 -0500 Subject: [PATCH 4/6] last touch ups --- code/modules/reagents/newchem/drugs.dm | 7 ++----- code/modules/reagents/newchem/food.dm | 11 ++++++----- .../reagents/oldchem/reagents/reagents_drugs.dm | 6 ++++-- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/code/modules/reagents/newchem/drugs.dm b/code/modules/reagents/newchem/drugs.dm index 0ca9a874c2b..861ffde70a9 100644 --- a/code/modules/reagents/newchem/drugs.dm +++ b/code/modules/reagents/newchem/drugs.dm @@ -23,9 +23,6 @@ M.AdjustStunned(-1) M.AdjustWeakened(-1) M.adjustStaminaLoss(-1*REM) - if(current_cycle >= 25) - if(prob(50)) - M.jitteriness += 5 ..() return @@ -202,7 +199,7 @@ M.emote(pick("twitch_s","blink_r","shiver")) if(current_cycle >= 25) M.jitteriness += 5 - M.drowsyness = max(M.drowsyness-10, 0) + M.drowsyness = max(0, M.drowsyness-10) M.AdjustParalysis(-2.5) M.AdjustStunned(-2.5) M.AdjustWeakened(-2.5) @@ -431,7 +428,7 @@ 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(volume >= 50 && prob(25)) if(prob(10)) M.drowsyness = max(M.drowsyness, 10) ..() diff --git a/code/modules/reagents/newchem/food.dm b/code/modules/reagents/newchem/food.dm index 889d03e92c7..2afaa25bc79 100644 --- a/code/modules/reagents/newchem/food.dm +++ b/code/modules/reagents/newchem/food.dm @@ -423,7 +423,7 @@ datum/reagent/ectoplasm/reaction_turf(var/turf/T, var/volume) M.reagents.add_reagent("cholesterol", rand(1,3)) if(prob(8)) M.reagents.add_reagent("porktonium", 5) - if(holder.has_reagent(src.id,75)) + if(volume >= 75) metabolization_rate = 0.4 else metabolization_rate = 0.2 @@ -441,6 +441,7 @@ datum/reagent/ectoplasm/reaction_turf(var/turf/T, var/volume) M.adjustOxyLoss(25) M.Stun(5) M.Paralyse(10) + ..() /datum/chemical_reaction/hydrogenated_soybeanoil name = "Partially hydrogenated space-soybean oil" @@ -574,14 +575,14 @@ datum/reagent/pepperoni/reaction_mob(var/mob/living/M, var/method=TOUCH, var/vol color = "#FFFAC8" /datum/reagent/cholesterol/on_mob_life(var/mob/living/M as mob) - if(holder.get_reagent_amount(src.id) >= 25 && prob(holder.get_reagent_amount(src.id)*0.15)) + 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(holder.get_reagent_amount(src.id) >= 45 && prob(holder.get_reagent_amount(src.id)*0.08)) + else if(volume >= 45 && prob(volume*0.08)) M << "Your chest [pick("hurts","stings","aches","burns")]!" M.adjustToxLoss(rand(2,4)) - M.stunned ++ - else if(holder.get_reagent_amount(src.id) >= 150 && prob(holder.get_reagent_amount(src.id)*0.01)) + M.Stun(1) + else if(volume >= 150 && prob(volume*0.01)) M << "Your chest is burning with pain!" M.Stun(1) M.Weaken(1) diff --git a/code/modules/reagents/oldchem/reagents/reagents_drugs.dm b/code/modules/reagents/oldchem/reagents/reagents_drugs.dm index c10926ce097..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 From b6a6b54ff8e3f3eb82f9ff4a6cb0c7672ca494a8 Mon Sep 17 00:00:00 2001 From: Fox-McCloud Date: Fri, 11 Mar 2016 21:13:38 -0500 Subject: [PATCH 5/6] final touchups --- .../crates_lockers/closets/wardrobe.dm | 2 ++ code/modules/reagents/newchem/drugs.dm | 10 +++++++++ code/modules/reagents/newchem/food.dm | 19 +++++++++++++++--- code/modules/reagents/newchem/other.dm | 2 +- code/modules/reagents/newchem/toxins.dm | 13 ++++++++++++ .../oldchem/reagents/reagents_food.dm | 7 +++++-- sound/goonstation/misc/gurggle.ogg | Bin 0 -> 14461 bytes 7 files changed, 47 insertions(+), 6 deletions(-) create mode 100644 sound/goonstation/misc/gurggle.ogg 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/reagents/newchem/drugs.dm b/code/modules/reagents/newchem/drugs.dm index 861ffde70a9..1f35706787d 100644 --- a/code/modules/reagents/newchem/drugs.dm +++ b/code/modules/reagents/newchem/drugs.dm @@ -262,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" diff --git a/code/modules/reagents/newchem/food.dm b/code/modules/reagents/newchem/food.dm index 2afaa25bc79..fa11df2df08 100644 --- a/code/modules/reagents/newchem/food.dm +++ b/code/modules/reagents/newchem/food.dm @@ -203,7 +203,7 @@ datum/reagent/fungus/reaction_mob(var/mob/M, var/method=TOUCH, var/volume) if(ranchance == 1) M << "You feel very sick." M.reagents.add_reagent("toxin", rand(1,5)) - else if(ranchance <= 5 && ranchance != 1) + else if(ranchance <= 5) M << "That tasted absolutely FOUL." else M << "Yuck!" @@ -251,11 +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)) //intentional no parent call, hehehe. + M.reagents.add_reagent("cholesterol", rand(1,2)) + ..() datum/reagent/cheese/reaction_turf(var/turf/T, var/volume) src = null @@ -271,6 +273,10 @@ 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" @@ -291,10 +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)) //intentional no parent call, hehehe. + M.reagents.add_reagent("cholesterol", rand(1,3)) + ..() datum/reagent/weird_cheese/reaction_turf(var/turf/T, var/volume) src = null @@ -309,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" diff --git a/code/modules/reagents/newchem/other.dm b/code/modules/reagents/newchem/other.dm index 07524fd1767..9d138407d96 100644 --- a/code/modules/reagents/newchem/other.dm +++ b/code/modules/reagents/newchem/other.dm @@ -292,7 +292,7 @@ datum/reagent/fartonium/on_mob_life(var/mob/living/M as mob) if(holder.has_reagent("simethicone")) 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 gunna die!")]" + 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.") diff --git a/code/modules/reagents/newchem/toxins.dm b/code/modules/reagents/newchem/toxins.dm index 3bcd480814f..40dfb484091 100644 --- a/code/modules/reagents/newchem/toxins.dm +++ b/code/modules/reagents/newchem/toxins.dm @@ -216,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" @@ -632,6 +638,13 @@ min_temp = 374 mix_sound = 'sound/goonstation/misc/drinkfizz.ogg' +/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 switch(current_cycle) diff --git a/code/modules/reagents/oldchem/reagents/reagents_food.dm b/code/modules/reagents/oldchem/reagents/reagents_food.dm index e483cedbdc6..f978f56aef7 100644 --- a/code/modules/reagents/oldchem/reagents/reagents_food.dm +++ b/code/modules/reagents/oldchem/reagents/reagents_food.dm @@ -448,10 +448,13 @@ ..() 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.emote("collapse") M.Paralyse(3) M.Weaken(4) if(prob(8)) diff --git a/sound/goonstation/misc/gurggle.ogg b/sound/goonstation/misc/gurggle.ogg new file mode 100644 index 0000000000000000000000000000000000000000..37f4c35761b4783d3a72283384b70d8873b50000 GIT binary patch literal 14461 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 Date: Fri, 11 Mar 2016 23:15:00 -0500 Subject: [PATCH 6/6] teslium --- code/modules/reagents/newchem/toxins.dm | 1 + 1 file changed, 1 insertion(+) diff --git a/code/modules/reagents/newchem/toxins.dm b/code/modules/reagents/newchem/toxins.dm index 40dfb484091..c69baf5b76b 100644 --- a/code/modules/reagents/newchem/toxins.dm +++ b/code/modules/reagents/newchem/toxins.dm @@ -888,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++