mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-24 13:38:41 +01:00
Merge branch 'master' of https://github.com/tgstation/-tg-station into SlimeAnimal
Conflicts: code/modules/mob/living/carbon/life.dm code/modules/mob/living/carbon/slime/slime.dm code/modules/mob/living/simple_animal/friendly/corgi.dm code/modules/mob/living/simple_animal/slime/say.dm code/modules/reagents/Chemistry-Reagents/Consumable-Reagents/Food-Reagents.dm
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
datum/reagent/nicotine
|
||||
name = "Nicotine"
|
||||
id = "nicotine"
|
||||
description = "Stun reduction per cycle, slight stamina regeneration buff. Overdoses become rapidly deadly."
|
||||
description = "Slightly reduces stun times. If overdosed it will deal toxin and oxygen damage."
|
||||
reagent_state = LIQUID
|
||||
color = "#60A584" // rgb: 96, 165, 132
|
||||
overdose_threshold = 35
|
||||
@@ -34,7 +34,7 @@ datum/reagent/nicotine/overdose_process(var/mob/living/M as mob)
|
||||
datum/reagent/crank
|
||||
name = "Crank"
|
||||
id = "crank"
|
||||
description = "2x stun reduction per cycle. Warms you up, makes you jittery as hell."
|
||||
description = "Reduces stun times by about 200%. If overdosed or addicted it will deal significant Toxin, Brute and Brain damage."
|
||||
reagent_state = LIQUID
|
||||
color = "#60A584" // rgb: 96, 165, 132
|
||||
overdose_threshold = 20
|
||||
@@ -87,7 +87,7 @@ datum/reagent/crank/addiction_act_stage4(var/mob/living/M as mob)
|
||||
/datum/reagent/krokodil
|
||||
name = "Krokodil"
|
||||
id = "krokodil"
|
||||
description = "Cools and calms you down, occasional BRAIN and TOX damage."
|
||||
description = "Cools and calms you down. If overdosed it will deal significant Brain and Toxin damage. If addicted it will begin to deal fatal amounts of Brute damage as the subject's skin falls off."
|
||||
reagent_state = LIQUID
|
||||
color = "#60A584" // rgb: 96, 165, 132
|
||||
overdose_threshold = 20
|
||||
@@ -126,12 +126,16 @@ datum/reagent/crank/addiction_act_stage4(var/mob/living/M as mob)
|
||||
M.adjustBruteLoss(3*REM)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/krokodil/addiction_act_stage4(var/mob/living/carbon/human/M as mob)
|
||||
M << "<span class='userdanger'>Your skin sloughs off!</span>"
|
||||
M.adjustBruteLoss(rand(50,80)*REM) // holy shit your skin just FELL THE FUCK OFF
|
||||
if(!istype(M.dna.species, /datum/species/cosmetic_zombie))
|
||||
M << "<span class='userdanger'>Your skin falls off easily!</span>"
|
||||
M.adjustBruteLoss(rand(50,80)*REM) // holy shit your skin just FELL THE FUCK OFF
|
||||
hardset_dna(M, null, null, null, null, /datum/species/cosmetic_zombie)
|
||||
else
|
||||
M.adjustBruteLoss(5*REM)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/krokodil
|
||||
name = "Krokodil"
|
||||
id = "krokodil"
|
||||
@@ -144,7 +148,7 @@ datum/reagent/crank/addiction_act_stage4(var/mob/living/M as mob)
|
||||
/datum/reagent/methamphetamine
|
||||
name = "Methamphetamine"
|
||||
id = "methamphetamine"
|
||||
description = "3x stun reduction per cycle, significant stamina regeneration buff, makes you really jittery, dramatically increases movement speed."
|
||||
description = "Reduces stun times by about 300%, speeds the user up, and allows the user to quickly recover stamina while dealing a small amount of Brain damage. If overdosed the subject will move randomly, laugh randomly, drop items and suffer from Toxin and Brain damage. If addicted the subject will constantly jitter and drool, before becoming dizzy and losing motor control and eventually suffer heavy toxin damage."
|
||||
reagent_state = LIQUID
|
||||
color = "#60A584" // rgb: 96, 165, 132
|
||||
overdose_threshold = 20
|
||||
@@ -169,7 +173,7 @@ datum/reagent/crank/addiction_act_stage4(var/mob/living/M as mob)
|
||||
return
|
||||
|
||||
/datum/reagent/methamphetamine/overdose_process(var/mob/living/M as mob)
|
||||
if(M.canmove && !istype(M.loc, /turf/space))
|
||||
if(M.canmove && !istype(M.loc, /atom/movable))
|
||||
for(var/i = 0, i < 4, i++)
|
||||
step(M, pick(cardinal))
|
||||
if(prob(20))
|
||||
@@ -199,7 +203,7 @@ datum/reagent/crank/addiction_act_stage4(var/mob/living/M as mob)
|
||||
..()
|
||||
return
|
||||
/datum/reagent/methamphetamine/addiction_act_stage3(var/mob/living/M as mob)
|
||||
if(M.canmove && !istype(M.loc, /turf/space))
|
||||
if(M.canmove && !istype(M.loc, /atom/movable))
|
||||
for(var/i = 0, i < 4, i++)
|
||||
step(M, pick(cardinal))
|
||||
M.Jitter(15)
|
||||
@@ -209,7 +213,7 @@ datum/reagent/crank/addiction_act_stage4(var/mob/living/M as mob)
|
||||
..()
|
||||
return
|
||||
/datum/reagent/methamphetamine/addiction_act_stage4(var/mob/living/carbon/human/M as mob)
|
||||
if(M.canmove && !istype(M.loc, /turf/space))
|
||||
if(M.canmove && !istype(M.loc, /atom/movable))
|
||||
for(var/i = 0, i < 8, i++)
|
||||
step(M, pick(cardinal))
|
||||
M.Jitter(20)
|
||||
@@ -228,59 +232,6 @@ datum/reagent/crank/addiction_act_stage4(var/mob/living/M as mob)
|
||||
result_amount = 4
|
||||
required_temp = 374
|
||||
|
||||
/datum/chemical_reaction/methamphetamine_two
|
||||
name = "methamphetamine_two"
|
||||
id = "methamphetamine_two"
|
||||
result = "methamphetamine"
|
||||
required_reagents = list("muriatic_acid" = 1, "caustic_soda" = 1, "hydrogen_chloride" = 1)
|
||||
result_amount = 3
|
||||
required_temp = 374
|
||||
|
||||
/datum/reagent/muriatic_acid
|
||||
name = "Muriatic Acid"
|
||||
id = "muriatic_acid"
|
||||
description = "A chemical compound."
|
||||
reagent_state = LIQUID
|
||||
color = "#60A584" // rgb: 96, 165, 132
|
||||
|
||||
/datum/reagent/caustic_soda
|
||||
name = "Caustic Soda"
|
||||
id = "caustic_soda"
|
||||
description = "A chemical compound."
|
||||
reagent_state = LIQUID
|
||||
color = "#60A584" // rgb: 96, 165, 132
|
||||
|
||||
/datum/reagent/hydrogen_chloride
|
||||
name = "Hydrogen Chloride"
|
||||
id = "hydrogen_chloride"
|
||||
description = "A chemical compound."
|
||||
reagent_state = LIQUID
|
||||
color = "#60A584" // rgb: 96, 165, 132
|
||||
|
||||
/datum/chemical_reaction/muriatic_acid
|
||||
name = "muriatic_acid"
|
||||
id = "muriatic_acid"
|
||||
result = "muriatic_acid"
|
||||
required_reagents = list("mutadone" = 1, "sacid" = 1)
|
||||
result_amount = 2
|
||||
required_temp = 500
|
||||
|
||||
/datum/chemical_reaction/caustic_soda
|
||||
name = "caustic_soda"
|
||||
id = "caustic_soda"
|
||||
result = "caustic_soda"
|
||||
required_reagents = list("sacid" = 1, "cola" = 1)
|
||||
result_amount = 2
|
||||
required_temp = 500
|
||||
|
||||
/datum/chemical_reaction/hydrogen_chloride
|
||||
name = "hydrogen_chloride"
|
||||
id = "hydrogen_chloride"
|
||||
result = "hydrogen_chloride"
|
||||
required_reagents = list("hydrogen" = 1, "chlorine" = 1)
|
||||
result_amount = 2
|
||||
required_temp = 500
|
||||
|
||||
/datum/chemical_reaction/saltpetre
|
||||
name = "saltpetre"
|
||||
id = "saltpetre"
|
||||
@@ -317,7 +268,7 @@ datum/reagent/crank/addiction_act_stage4(var/mob/living/M as mob)
|
||||
M.adjustBrainLoss(1)
|
||||
M.adjustToxLoss(0.1)
|
||||
M.hallucination += 10
|
||||
if(M.canmove && !istype(M.loc, /turf/space))
|
||||
if(M.canmove && !istype(M.loc, /atom/movable))
|
||||
step(M, pick(cardinal))
|
||||
step(M, pick(cardinal))
|
||||
..()
|
||||
@@ -333,7 +284,7 @@ datum/reagent/crank/addiction_act_stage4(var/mob/living/M as mob)
|
||||
|
||||
/datum/reagent/bath_salts/overdose_process(var/mob/living/M as mob)
|
||||
M.hallucination += 10
|
||||
if(M.canmove && !istype(M.loc, /turf/space))
|
||||
if(M.canmove && !istype(M.loc, /atom/movable))
|
||||
for(var/i = 0, i < 8, i++)
|
||||
step(M, pick(cardinal))
|
||||
if(prob(20))
|
||||
@@ -347,7 +298,7 @@ datum/reagent/crank/addiction_act_stage4(var/mob/living/M as mob)
|
||||
|
||||
/datum/reagent/bath_salts/addiction_act_stage1(var/mob/living/M as mob)
|
||||
M.hallucination += 10
|
||||
if(M.canmove && !istype(M.loc, /turf/space))
|
||||
if(M.canmove && !istype(M.loc, /atom/movable))
|
||||
for(var/i = 0, i < 8, i++)
|
||||
step(M, pick(cardinal))
|
||||
M.Jitter(5)
|
||||
@@ -358,7 +309,7 @@ datum/reagent/crank/addiction_act_stage4(var/mob/living/M as mob)
|
||||
return
|
||||
/datum/reagent/bath_salts/addiction_act_stage2(var/mob/living/M as mob)
|
||||
M.hallucination += 20
|
||||
if(M.canmove && !istype(M.loc, /turf/space))
|
||||
if(M.canmove && !istype(M.loc, /atom/movable))
|
||||
for(var/i = 0, i < 8, i++)
|
||||
step(M, pick(cardinal))
|
||||
M.Jitter(10)
|
||||
@@ -370,7 +321,7 @@ datum/reagent/crank/addiction_act_stage4(var/mob/living/M as mob)
|
||||
return
|
||||
/datum/reagent/bath_salts/addiction_act_stage3(var/mob/living/M as mob)
|
||||
M.hallucination += 30
|
||||
if(M.canmove && !istype(M.loc, /turf/space))
|
||||
if(M.canmove && !istype(M.loc, /atom/movable))
|
||||
for(var/i = 0, i < 12, i++)
|
||||
step(M, pick(cardinal))
|
||||
M.Jitter(15)
|
||||
@@ -382,7 +333,7 @@ datum/reagent/crank/addiction_act_stage4(var/mob/living/M as mob)
|
||||
return
|
||||
/datum/reagent/bath_salts/addiction_act_stage4(var/mob/living/carbon/human/M as mob)
|
||||
M.hallucination += 40
|
||||
if(M.canmove && !istype(M.loc, /turf/space))
|
||||
if(M.canmove && !istype(M.loc, /atom/movable))
|
||||
for(var/i = 0, i < 16, i++)
|
||||
step(M, pick(cardinal))
|
||||
M.Jitter(50)
|
||||
@@ -404,7 +355,7 @@ datum/reagent/crank/addiction_act_stage4(var/mob/living/M as mob)
|
||||
/datum/reagent/aranesp
|
||||
name = "Aranesp"
|
||||
id = "aranesp"
|
||||
description = "Volatile."
|
||||
description = "Amps you up and gets you going, fixes all stamina damage you might have but can cause toxin and oxygen damage.."
|
||||
reagent_state = LIQUID
|
||||
color = "#60A584" // rgb: 96, 165, 132
|
||||
|
||||
@@ -415,91 +366,8 @@ datum/reagent/crank/addiction_act_stage4(var/mob/living/M as mob)
|
||||
M << "<span class='notice'>[high_message]</span>"
|
||||
M.adjustStaminaLoss(-35)
|
||||
M.adjustToxLoss(1)
|
||||
if(prob(rand(1,100)))
|
||||
if(prob(50))
|
||||
M.losebreath++
|
||||
M.adjustOxyLoss(20)
|
||||
..()
|
||||
return
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/muriatic_acid
|
||||
name = "jug of muriatic acid"
|
||||
desc = "We needed those cooks."
|
||||
icon_state = "chem_jug"
|
||||
item_state = "carton"
|
||||
list_reagents = list("muriatic_acid" = 50)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/caustic_soda
|
||||
name = "jug of caustic soda"
|
||||
desc = "We needed those cooks."
|
||||
icon_state = "chem_jug"
|
||||
item_state = "carton"
|
||||
list_reagents = list("caustic_soda" = 50)
|
||||
|
||||
/obj/item/weapon/reagent_containers/food/drinks/hydrogen_chloride
|
||||
name = "jug of hydrogen chloride"
|
||||
desc = "We needed those cooks."
|
||||
icon_state = "chem_jug"
|
||||
item_state = "carton"
|
||||
list_reagents = list("hydrogen_chloride" = 50)
|
||||
|
||||
datum/reagent/hotline
|
||||
name = "Hotline"
|
||||
id = "hotline"
|
||||
description = "It isn't just wrong. It's dead wrong."
|
||||
reagent_state = LIQUID
|
||||
color = "#60A584" // rgb: 96, 165, 132
|
||||
overdose_threshold = 15
|
||||
addiction_threshold = 10
|
||||
|
||||
datum/reagent/hotline/on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
var/high_message = pick("You feel alert.", "You feel like you can see everything more clearly.", "You feel like you need to relax and examine your surroundings.")
|
||||
if(prob(5))
|
||||
M << "<span class='notice'>[high_message]</span>"
|
||||
M.druggy = max(M.druggy, 15)
|
||||
M.hallucination += 10
|
||||
M.adjustBrainLoss(0.2)
|
||||
M.adjustBruteLoss(-0.2)
|
||||
M.adjustFireLoss(-0.2)
|
||||
M.status_flags |= GOTTAGOFAST
|
||||
M.adjustStaminaLoss(-3)
|
||||
..()
|
||||
return
|
||||
datum/reagent/hotline/overdose_process(var/mob/living/M as mob)
|
||||
M.adjustBrainLoss(rand(1,20)*REM)
|
||||
M.adjustToxLoss(rand(1,20)*REM)
|
||||
M.adjustBruteLoss(rand(1,20)*REM)
|
||||
M.druggy = max(M.druggy, 30)
|
||||
M.hallucination += 30
|
||||
if(prob(5))
|
||||
M << pick("<span class = 'userdanger'>Your head feels like it's ripping apart!</span>","<span class = 'userdanger'>You wonder why the fuck did you decide to take [src.name].</span>","<span class = 'userdanger'>It hurts so bad!</span>","<span class = 'userdanger'>Please, end it now!</span>","<span class = 'userdanger'>Dear [ticker.Bible_deity_name] please no it hurts!</span>")
|
||||
..()
|
||||
return
|
||||
|
||||
datum/reagent/hotline/addiction_act_stage1(var/mob/living/M as mob)
|
||||
M.adjustBrainLoss(rand(1,10))
|
||||
M.hallucination += 30
|
||||
M.druggy = max(M.druggy, 30)
|
||||
..()
|
||||
return
|
||||
datum/reagent/hotline/addiction_act_stage2(var/mob/living/M as mob)
|
||||
M.adjustBrainLoss(rand(1,20))
|
||||
M.hallucination += 30
|
||||
M.druggy = max(M.druggy, 30)
|
||||
..()
|
||||
return
|
||||
datum/reagent/hotline/addiction_act_stage3(var/mob/living/M as mob)
|
||||
M.adjustBrainLoss(rand(1,30))
|
||||
M.hallucination += 30
|
||||
M.druggy = max(M.druggy, 30)
|
||||
..()
|
||||
return
|
||||
datum/reagent/hotline/addiction_act_stage4(var/mob/living/M as mob)
|
||||
M.adjustBrainLoss(rand(1,30))
|
||||
M.hallucination += 30
|
||||
M.druggy = max(M.druggy, 30)
|
||||
if(prob(1))
|
||||
M.visible_message("<span class = 'userdanger'>[M] clutches at their chest! It looks like they're having a heart attack!</span>")
|
||||
M.adjustBruteLoss(80) // don't do drugs kids
|
||||
..()
|
||||
return
|
||||
|
||||
@@ -7,9 +7,9 @@
|
||||
datum/reagent/silver_sulfadiazine
|
||||
name = "Silver Sulfadiazine"
|
||||
id = "silver_sulfadiazine"
|
||||
description = "100% chance per cycle of healing 2 points of BURN damage."
|
||||
description = "On touch, quickly heals burn damage. Basic anti-burn healing drug. On ingestion, deals minor toxin damage."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
color = "#C8A5DC"
|
||||
metabolization_rate = 2
|
||||
|
||||
datum/reagent/silver_sulfadiazine/reaction_mob(var/mob/living/M as mob, var/method=TOUCH, var/volume, var/show_message = 1)
|
||||
@@ -35,9 +35,9 @@ datum/reagent/silver_sulfadiazine/on_mob_life(var/mob/living/M as mob)
|
||||
datum/reagent/styptic_powder
|
||||
name = "Styptic Powder"
|
||||
id = "styptic_powder"
|
||||
description = "100% chance per cycle of healing 2 points of BRUTE damage."
|
||||
description = "On touch, quickly heals brute damage. Basic anti-brute healing drug. On ingestion, deals minor toxin damage."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
color = "#C8A5DC"
|
||||
metabolization_rate = 2
|
||||
|
||||
datum/reagent/styptic_powder/reaction_mob(var/mob/living/M as mob, var/method=TOUCH, var/volume, var/show_message = 1)
|
||||
@@ -64,9 +64,9 @@ datum/reagent/styptic_powder/on_mob_life(var/mob/living/M as mob)
|
||||
datum/reagent/salglu_solution
|
||||
name = "Saline-Glucose Solution"
|
||||
id = "salglu_solution"
|
||||
description = "33% chance per cycle of healing 1 point each of BRUTE and BURN damage."
|
||||
description = "Has a 33% chance per metabolism cycle to heal brute and burn damage."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
color = "#C8A5DC"
|
||||
|
||||
datum/reagent/salglu_solution/on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
@@ -79,9 +79,9 @@ datum/reagent/salglu_solution/on_mob_life(var/mob/living/M as mob)
|
||||
datum/reagent/synthflesh
|
||||
name = "Synthflesh"
|
||||
id = "synthflesh"
|
||||
description = "100% chance per cycle of healing 1 point each of BRUTE and BURN damage."
|
||||
description = "Has a 100% chance of instantly healing brute and burn damage. One unit of the chemical will heal one point of damage. Touch application only."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
color = "#C8A5DC"
|
||||
|
||||
datum/reagent/synthflesh/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume,var/show_message = 1)
|
||||
if(!M) M = holder.my_atom
|
||||
@@ -97,9 +97,9 @@ datum/reagent/synthflesh/reaction_mob(var/mob/living/M, var/method=TOUCH, var/vo
|
||||
datum/reagent/charcoal
|
||||
name = "Charcoal"
|
||||
id = "charcoal"
|
||||
description = "Heals 3 TOX damage per cycle and purges other chemicals slowly."
|
||||
description = "Heals toxin damage, and will also slowly remove any other chemicals."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
color = "#C8A5DC"
|
||||
|
||||
datum/reagent/charcoal/on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
@@ -151,9 +151,9 @@ datum/reagent/charcoal/on_mob_life(var/mob/living/M as mob)
|
||||
datum/reagent/omnizine
|
||||
name = "Omnizine"
|
||||
id = "omnizine"
|
||||
description = "Heals one each of OXY, TOX, BRUTE and BURN per cycle."
|
||||
description = "Heals 1 of each damage type a cycle. If overdosed it will deal significant amounts of each damage type."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
color = "#C8A5DC"
|
||||
metabolization_rate = 0.2
|
||||
overdose_threshold = 30
|
||||
|
||||
@@ -177,9 +177,9 @@ datum/reagent/omnizine/overdose_process(var/mob/living/M as mob)
|
||||
datum/reagent/calomel
|
||||
name = "Calomel"
|
||||
id = "calomel"
|
||||
description = "Increases all depletion rates by 5. +5 TOX damage while health > 20."
|
||||
description = "Quickly purges the body of all chemicals. If your health is above 20, toxin damage is dealt. When you hit 20 health or lower, the damage will cease."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
color = "#C8A5DC"
|
||||
|
||||
datum/reagent/calomel/on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
@@ -202,9 +202,9 @@ datum/reagent/calomel/on_mob_life(var/mob/living/M as mob)
|
||||
datum/reagent/potass_iodide
|
||||
name = "Potassium Iodide"
|
||||
id = "potass_iodide"
|
||||
description = "80% chance of removing 1 RAD. Radiation is cumulative and causes tox+burn."
|
||||
description = "Reduces low radiation damage very effectively."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
color = "#C8A5DC"
|
||||
|
||||
datum/reagent/potass_iodide/on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
@@ -226,9 +226,9 @@ datum/reagent/potass_iodide/on_mob_life(var/mob/living/M as mob)
|
||||
datum/reagent/pen_acid
|
||||
name = "Pentetic Acid"
|
||||
id = "pen_acid"
|
||||
description = "Reduces 7 RAD, heals 4 TOX damage, increases all depletion rates by 4. 33% chance of taking 1 unit brute damage"
|
||||
description = "Reduces massive amounts of radiation and toxin damage while purging other chemicals from the body. Has a chance of dealing brute damage."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
color = "#C8A5DC"
|
||||
|
||||
datum/reagent/pen_acid/on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
@@ -255,9 +255,9 @@ datum/reagent/pen_acid/on_mob_life(var/mob/living/M as mob)
|
||||
datum/reagent/sal_acid
|
||||
name = "Salicyclic Acid"
|
||||
id = "sal_acid"
|
||||
description = "If BRUTE damage is under 50, 50% chance to heal one unit."
|
||||
description = "If you have less than 50 brute damage, there is a 50% chance to heal one unit. If overdosed it will have a 50% chance to deal 2 brute damage if the patient has less than 50 brute damage already."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
color = "#C8A5DC"
|
||||
overdose_threshold = 25
|
||||
|
||||
datum/reagent/sal_acid/on_mob_life(var/mob/living/M as mob)
|
||||
@@ -285,9 +285,9 @@ datum/reagent/sal_acid/overdose_process(var/mob/living/M as mob)
|
||||
datum/reagent/salbutamol
|
||||
name = "Salbutamol"
|
||||
id = "salbutamol"
|
||||
description = "Heals 6 OXY damage, reduces LOSEBREATH by 4."
|
||||
description = "Quickly heals oxygen damage while slowing down suffocation. Great for stabilizing critical patients!"
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
color = "#C8A5DC"
|
||||
metabolization_rate = 0.2
|
||||
|
||||
datum/reagent/salbutamol/on_mob_life(var/mob/living/M as mob)
|
||||
@@ -308,9 +308,9 @@ datum/reagent/salbutamol/on_mob_life(var/mob/living/M as mob)
|
||||
datum/reagent/perfluorodecalin
|
||||
name = "Perfluorodecalin"
|
||||
id = "perfluorodecalin"
|
||||
description = "Heals 25 OXY damage, but you can't talk. 33% chance of healing 1 BRUTE and 1 BURN."
|
||||
description = "Heals suffocation damage so quickly that you could have a spacewalk, but it mutes your voice. Has a 33% chance of healing brute and burn damage per cycle as well."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
color = "#C8A5DC"
|
||||
metabolization_rate = 0.2
|
||||
|
||||
datum/reagent/perfluorodecalin/on_mob_life(var/mob/living/carbon/human/M as mob)
|
||||
@@ -335,9 +335,9 @@ datum/reagent/perfluorodecalin/on_mob_life(var/mob/living/carbon/human/M as mob)
|
||||
datum/reagent/ephedrine
|
||||
name = "Ephedrine"
|
||||
id = "ephedrine"
|
||||
description = "Stun reduction per cycle, increases run speed slightly, minor stamina regeneration buff, stabilizes crit."
|
||||
description = "Reduces stun times, increases run speed. If overdosed it will deal toxin and oxyloss damage."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
color = "#C8A5DC"
|
||||
metabolization_rate = 0.3
|
||||
overdose_threshold = 45
|
||||
addiction_threshold = 30
|
||||
@@ -395,9 +395,9 @@ datum/reagent/ephedrine/addiction_act_stage4(var/mob/living/M as mob)
|
||||
datum/reagent/diphenhydramine
|
||||
name = "Diphenhydramine"
|
||||
id = "diphenhydramine"
|
||||
description = "Causes a little bit of drowsiness, reduces jitteriness. Raises histamine depletion rates by 3"
|
||||
description = "Purges body of lethal Histamine and reduces jitteriness while causing minor drowsiness."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
color = "#C8A5DC"
|
||||
datum/reagent/diphenhydramine/on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
M.drowsyness += 1
|
||||
@@ -417,9 +417,9 @@ datum/reagent/diphenhydramine/on_mob_life(var/mob/living/M as mob)
|
||||
datum/reagent/morphine
|
||||
name = "Morphine"
|
||||
id = "morphine"
|
||||
description = "Dramatically counters movement reduction from severe injury. Reduces jitteriness if someone is shaking like crazy from whatever. Will knock you out within 36 cycles if any remains in you."
|
||||
description = "Will allow you to ignore slowdown from equipment and damage. Will eventually knock you out if you take too much. If overdosed it will cause jitteriness, dizziness, force the victim to drop items in their hands and eventually deal toxin damage."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
color = "#C8A5DC"
|
||||
var/cycle_count = 0
|
||||
overdose_threshold = 30
|
||||
addiction_threshold = 25
|
||||
@@ -428,8 +428,8 @@ 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
|
||||
if(cycle_count == 36)
|
||||
M.drowsyness += 1
|
||||
if(cycle_count >= 36)
|
||||
M.sleeping += 3
|
||||
cycle_count++
|
||||
..()
|
||||
return
|
||||
@@ -510,18 +510,18 @@ datum/reagent/oculine/on_mob_life(var/mob/living/M as mob)
|
||||
datum/reagent/oculine
|
||||
name = "Oculine"
|
||||
id = "oculine"
|
||||
description = "30% chance to remove blindness, 80% chance to slightly reduce eye damage."
|
||||
description = "Cures blindness and heals eye damage over time."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
color = "#C8A5DC"
|
||||
metabolization_rate = 0.4
|
||||
var/cycle_amount = 0
|
||||
|
||||
datum/reagent/atropine
|
||||
name = "Atropine"
|
||||
id = "atropine"
|
||||
description = "1 TOX damage if used over -60 health. Causes dizziness and confusion. If under -25 health, heals 3 BRUTE + 3 BURN. Attempts to cap OXY damage at 65 and LOSEBREATH at 5."
|
||||
description = "If patients health is below -25 it will heal 3 brute and burn damage per cycle, as well as stop any oxyloss. Good for stabilising critical patients."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
color = "#C8A5DC"
|
||||
metabolization_rate = 0.2
|
||||
overdose_threshold = 35
|
||||
|
||||
@@ -560,9 +560,9 @@ datum/reagent/atropine/overdose_process(var/mob/living/M as mob)
|
||||
datum/reagent/epinephrine
|
||||
name = "Epinephrine"
|
||||
id = "epinephrine"
|
||||
description = "Reduces most of the knockout/stun effects, minor stamina regeneration buff. Attempts to cap OXY damage at 35 and LOSEBREATH at 10. If health is between -10 to -65, heals 1 TOX, 1 BRUTE, 1 BURN."
|
||||
description = "mReduces most of the knockout/stun effects, minor stamina regeneration buff. Attempts to stop you taking too much oxygen damage. If the patient is in low to severe crit, heals toxins, brute, and burn very effectively. Will not heal patients who are almost dead. If overdosed will stun and deal toxin damage"
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
color = "#C8A5DC"
|
||||
metabolization_rate = 0.2
|
||||
overdose_threshold = 30
|
||||
|
||||
@@ -574,8 +574,10 @@ datum/reagent/epinephrine/on_mob_life(var/mob/living/M as mob)
|
||||
M.adjustFireLoss(-1*REM)
|
||||
if(M.oxyloss > 35)
|
||||
M.setOxyLoss(35)
|
||||
if(M.losebreath >= 10)
|
||||
M.losebreath = max(10, M.losebreath-5)
|
||||
if(M.losebreath >= 4)
|
||||
M.losebreath -= 4
|
||||
if(M.losebreath < 0)
|
||||
M.losebreath = 0
|
||||
M.adjustStaminaLoss(-1*REM)
|
||||
if(prob(30))
|
||||
M.AdjustParalysis(-1)
|
||||
@@ -602,9 +604,9 @@ datum/reagent/epinephrine/overdose_process(var/mob/living/M as mob)
|
||||
datum/reagent/strange_reagent
|
||||
name = "Strange Reagent"
|
||||
id = "strange_reagent"
|
||||
description = "A miracle medical chem, this little beauty can bring the dead back to life!"
|
||||
description = "A miracle drug that can bring a dead body back to life! If the corpse has suffered too much damage, however, no change will occur to the body. If used on a living person it will deal Brute and Burn damage."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
color = "#C8A5DC"
|
||||
|
||||
datum/reagent/strange_reagent/reaction_mob(var/mob/living/carbon/human/M as mob, var/method=TOUCH, var/volume)
|
||||
if(M.stat == DEAD)
|
||||
@@ -625,7 +627,7 @@ datum/reagent/strange_reagent/reaction_mob(var/mob/living/carbon/human/M as mob,
|
||||
return
|
||||
datum/reagent/strange_reagent/on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
if(prob(rand(1,100)))
|
||||
if(prob(50))
|
||||
M.adjustBruteLoss(2*REM)
|
||||
M.adjustFireLoss(2*REM)
|
||||
..()
|
||||
@@ -641,9 +643,9 @@ datum/reagent/strange_reagent/on_mob_life(var/mob/living/M as mob)
|
||||
datum/reagent/life
|
||||
name = "Life"
|
||||
id = "life"
|
||||
description = ""
|
||||
description = "Can create a life form, however it is not guaranteed to be friendly. May want to have Security on hot standby."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
color = "#C8A5DC"
|
||||
metabolization_rate = 0.2
|
||||
|
||||
/datum/chemical_reaction/life
|
||||
@@ -727,8 +729,8 @@ proc/chemical_mob_spawn(var/datum/reagents/holder, var/amount_to_spawn, var/reac
|
||||
/datum/reagent/mannitol
|
||||
name = "Mannitol"
|
||||
id = "mannitol"
|
||||
description = "Heals 3 BRAIN damage."
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
description = "Heals brain damage effectively. Use it in cyro tubes alongside Cryoxadone."
|
||||
color = "#C8A5DC"
|
||||
|
||||
/datum/reagent/mutadone/on_mob_life(var/mob/living/carbon/human/M as mob)
|
||||
M.jitteriness = 0
|
||||
@@ -748,14 +750,14 @@ proc/chemical_mob_spawn(var/datum/reagents/holder, var/amount_to_spawn, var/reac
|
||||
/datum/reagent/mutadone
|
||||
name = "Mutadone"
|
||||
id = "mutadone"
|
||||
description = "Chance to remove genetic disabilities."
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
description = "Heals your genetic defects."
|
||||
color = "#C8A5DC"
|
||||
|
||||
datum/reagent/antihol
|
||||
name = "Antihol"
|
||||
id = "antihol"
|
||||
description = "A powerful oxidizer that reacts with ethanol."
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
description = "Helps remove Alcohol from someone's body, as well as eliminating its side effects."
|
||||
color = "#C8A5DC"
|
||||
|
||||
datum/reagent/antihol/on_mob_life(var/mob/living/M as mob)
|
||||
M.dizziness = 0
|
||||
@@ -783,8 +785,8 @@ datum/reagent/antihol/on_mob_life(var/mob/living/M as mob)
|
||||
/datum/reagent/stimulants
|
||||
name = "Stimulants"
|
||||
id = "stimulants"
|
||||
description = "Sets all stun-related vars to zero, gets you running really fast. Heals 5 OXY, TOX, BRUTE, and BURN damage if health is below 50. Reduces all stuns."
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
description = "Increases run speed and eliminates stuns, can heal minor damage. If overdosed it will deal toxin damage and stun."
|
||||
color = "#C8A5DC"
|
||||
metabolization_rate = 0.4
|
||||
overdose_threshold = 60
|
||||
|
||||
@@ -817,7 +819,7 @@ datum/reagent/insulin
|
||||
id = "insulin"
|
||||
description = "Increases sugar depletion rates."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
color = "#C8A5DC"
|
||||
datum/reagent/insulin/on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
if(M.sleeping)
|
||||
|
||||
@@ -8,42 +8,41 @@ var/list/random_color_list = list("#00aedb","#a200ff","#f47835","#d41243","#d111
|
||||
datum/reagent/oil
|
||||
name = "Oil"
|
||||
id = "oil"
|
||||
description = "A slippery solution."
|
||||
description = "Burns in a small smoky fire, mostly used to get Ash."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
color = "#C8A5DC"
|
||||
|
||||
datum/reagent/stable_plasma
|
||||
name = "Stable Plasma"
|
||||
id = "stable_plasma"
|
||||
description = "Non-flammable plasma locked into a liquid form that cannot ignite or become gaseous/solid."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
color = "#C8A5DC"
|
||||
|
||||
datum/reagent/iodine
|
||||
name = "Iodine"
|
||||
id = "iodine"
|
||||
description = "A slippery solution."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
color = "#C8A5DC"
|
||||
|
||||
datum/reagent/fluorine
|
||||
name = "Fluorine"
|
||||
id = "fluorine"
|
||||
description = "A slippery solution."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
color = "#C8A5DC"
|
||||
|
||||
datum/reagent/carpet
|
||||
name = "Carpet"
|
||||
id = "carpet"
|
||||
description = "A slippery solution."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
color = "#C8A5DC"
|
||||
|
||||
/datum/reagent/carpet/reaction_turf(var/turf/simulated/T, var/volume)
|
||||
if(istype(T, /turf/simulated/floor/plating) || istype(T, /turf/simulated/floor/plasteel))
|
||||
var/turf/simulated/floor/F = T
|
||||
F.visible_message("[T] gets a layer of carpeting applied!")
|
||||
F.ChangeTurf(/turf/simulated/floor/fancy/carpet)
|
||||
..()
|
||||
return
|
||||
@@ -53,28 +52,28 @@ datum/reagent/bromine
|
||||
id = "bromine"
|
||||
description = "A slippery solution."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
color = "#C8A5DC"
|
||||
|
||||
datum/reagent/phenol
|
||||
name = "Phenol"
|
||||
id = "phenol"
|
||||
description = "A slippery solution."
|
||||
description = "Used for certain medical recipes."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
color = "#C8A5DC"
|
||||
|
||||
datum/reagent/ash
|
||||
name = "Ash"
|
||||
id = "ash"
|
||||
description = "A burnt solution."
|
||||
description = "Basic ingredient in a couple of recipes."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
color = "#C8A5DC"
|
||||
|
||||
datum/reagent/acetone
|
||||
name = "Acetone"
|
||||
id = "acetone"
|
||||
description = "A solution."
|
||||
description = "Common ingredient in other recipes."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
color = "#C8A5DC"
|
||||
|
||||
/datum/chemical_reaction/acetone
|
||||
name = "acetone"
|
||||
@@ -118,7 +117,7 @@ datum/reagent/colorful_reagent
|
||||
id = "colorful_reagent"
|
||||
description = "A solution."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
color = "#C8A5DC"
|
||||
|
||||
/datum/chemical_reaction/colorful_reagent
|
||||
name = "colorful_reagent"
|
||||
@@ -155,7 +154,7 @@ datum/reagent/triple_citrus
|
||||
id = "triple_citrus"
|
||||
description = "A solution."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
color = "#C8A5DC"
|
||||
|
||||
/datum/chemical_reaction/triple_citrus
|
||||
name = "triple_citrus"
|
||||
@@ -169,7 +168,7 @@ datum/reagent/corn_starch
|
||||
id = "corn_starch"
|
||||
description = "A slippery solution."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
color = "#C8A5DC"
|
||||
|
||||
/datum/chemical_reaction/corn_syrup
|
||||
name = "corn_syrup"
|
||||
@@ -184,7 +183,7 @@ datum/reagent/corn_syrup
|
||||
id = "corn_syrup"
|
||||
description = "Decays into sugar."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
color = "#C8A5DC"
|
||||
|
||||
datum/reagent/corn_syrup/on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
@@ -206,11 +205,11 @@ datum/reagent/corgium
|
||||
id = "corgium"
|
||||
description = "Creates a corgi at the reaction location."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
color = "#C8A5DC"
|
||||
|
||||
/datum/chemical_reaction/corgium/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
new /mob/living/simple_animal/corgi(location)
|
||||
new /mob/living/simple_animal/pet/corgi(location)
|
||||
..()
|
||||
return
|
||||
|
||||
@@ -219,7 +218,7 @@ datum/reagent/hair_dye
|
||||
id = "hair_dye"
|
||||
description = "A solution."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
color = "#C8A5DC"
|
||||
var/list/potential_colors = list("0ad","a0f","f73","d14","d14","0b5","0ad","f73","fc2","084","05e","d22","fa0") // fucking hair code
|
||||
|
||||
/datum/chemical_reaction/hair_dye
|
||||
@@ -243,7 +242,7 @@ datum/reagent/barbers_aid
|
||||
id = "barbers_aid"
|
||||
description = "A solution to hair loss across the world."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
color = "#C8A5DC"
|
||||
|
||||
/datum/chemical_reaction/barbers_aid
|
||||
name = "barbers_aid"
|
||||
@@ -268,7 +267,7 @@ datum/reagent/concentrated_barbers_aid
|
||||
id = "concentrated_barbers_aid"
|
||||
description = "A concentrated solution to hair loss across the world."
|
||||
reagent_state = LIQUID
|
||||
color = "#C8A5DC" // rgb: 200, 165, 220
|
||||
color = "#C8A5DC"
|
||||
|
||||
/datum/chemical_reaction/concentrated_barbers_aid
|
||||
name = "concentrated_barbers_aid"
|
||||
|
||||
@@ -4,12 +4,26 @@
|
||||
|
||||
#define REM REAGENTS_EFFECT_MULTIPLIER
|
||||
|
||||
/datum/reagent/stabilizing_agent
|
||||
name = "Stabilizing Agent"
|
||||
id = "stabilizing_agent"
|
||||
description = "Keeps unstable chemicals stable. This does not work on everything."
|
||||
reagent_state = LIQUID
|
||||
color = "#FFFFFF"
|
||||
|
||||
/datum/chemical_reaction/stabilizing_agent
|
||||
name = "stabilizing_agent"
|
||||
id = "stabilizing_agent"
|
||||
result = "stabilizing_agent"
|
||||
required_reagents = list("iron" = 1, "oxygen" = 1, "hydrogen" = 1)
|
||||
result_amount = 3
|
||||
|
||||
/datum/reagent/clf3
|
||||
name = "Chlorine Trifluoride"
|
||||
id = "clf3"
|
||||
description = "Makes a temporary 3x3 fireball when it comes into existence, so be careful when mixing. ClF3 applied to a surface burns things that wouldn't otherwise burn, sometimes through the very floors of the station and exposing it to the vacuum of space."
|
||||
reagent_state = LIQUID
|
||||
color = "#60A584" // rgb: 96, 165, 132
|
||||
color = "#FF0000"
|
||||
metabolization_rate = 4
|
||||
|
||||
/datum/chemical_reaction/clf3
|
||||
@@ -22,15 +36,14 @@
|
||||
|
||||
/datum/reagent/clf3/on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
M.adjust_fire_stacks(5)
|
||||
M.IgniteMob()
|
||||
M.adjustFireLoss(5*REM)
|
||||
M.adjust_fire_stacks(4)
|
||||
M.adjustFireLoss(0.35*M.fire_stacks)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/clf3/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
var/turf/simulated/T = get_turf(holder.my_atom)
|
||||
for(var/turf/simulated/turf in range(1,T))
|
||||
var/turf/T = get_turf(holder.my_atom)
|
||||
for(var/turf/turf in range(1,T))
|
||||
new /obj/effect/hotspot(turf)
|
||||
holder.chem_temp = 1000 // hot as shit
|
||||
return
|
||||
@@ -53,7 +66,7 @@
|
||||
return
|
||||
|
||||
/datum/reagent/clf3/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
|
||||
if(method == TOUCH && ishuman(M))
|
||||
if(method == TOUCH && isliving(M))
|
||||
M.adjust_fire_stacks(5)
|
||||
M.IgniteMob()
|
||||
new /obj/effect/hotspot(M.loc)
|
||||
@@ -64,7 +77,7 @@
|
||||
id = "sorium"
|
||||
description = "Sends everything flying from the detonation point."
|
||||
reagent_state = LIQUID
|
||||
color = "#60A584" //rgb: 96, 165, 132
|
||||
color = "#FFA500"
|
||||
|
||||
/datum/chemical_reaction/sorium
|
||||
name = "Sorium"
|
||||
@@ -72,20 +85,22 @@
|
||||
result = "sorium"
|
||||
required_reagents = list("mercury" = 1, "oxygen" = 1, "nitrogen" = 1, "carbon" = 1)
|
||||
result_amount = 4
|
||||
|
||||
/datum/chemical_reaction/sorium_vortex
|
||||
name = "sorium_vortex"
|
||||
id = "sorium_vortex"
|
||||
result = null
|
||||
required_reagents = list("sorium" = 1)
|
||||
required_temp = 474
|
||||
|
||||
/datum/reagent/sorium/reaction_turf(var/turf/simulated/T, var/volume)
|
||||
if(istype(T, /turf/simulated/floor/))
|
||||
goonchem_vortex(T, 1, 5, 3)
|
||||
/datum/reagent/sorium/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
|
||||
if(!istype(M, /mob/living))
|
||||
return
|
||||
if(method == TOUCH)
|
||||
var/turf/simulated/T = get_turf(M)
|
||||
goonchem_vortex(T, 1, 5, 3)
|
||||
|
||||
/datum/chemical_reaction/sorium_vortex/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
var/turf/simulated/T = get_turf(holder.my_atom)
|
||||
goonchem_vortex(T, 1, 5, 6)
|
||||
|
||||
/datum/chemical_reaction/sorium/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
if(holder.has_reagent("stabilizing_agent"))
|
||||
return
|
||||
holder.remove_reagent("sorium", created_volume)
|
||||
var/turf/simulated/T = get_turf(holder.my_atom)
|
||||
goonchem_vortex(T, 1, 5, 6)
|
||||
|
||||
@@ -94,28 +109,30 @@
|
||||
id = "liquid_dark_matter"
|
||||
description = "Sucks everything into the detonation point."
|
||||
reagent_state = LIQUID
|
||||
color = "#60A584" //rgb: 96, 165, 132
|
||||
color = "#800080"
|
||||
|
||||
/datum/chemical_reaction/liquid_dark_matter
|
||||
name = "Liquid Dark Matter"
|
||||
id = "liquid_dark_matter"
|
||||
result = "liquid_dark_matter"
|
||||
required_reagents = list("stable_plasma" = 1, "radium" = 1, "carbon" = 1)
|
||||
result_amount = null
|
||||
result_amount = 3
|
||||
|
||||
/datum/chemical_reaction/ldm_vortex
|
||||
name = "LDM Vortex"
|
||||
id = "ldm_vortex"
|
||||
result = null
|
||||
required_reagents = list("liquid_dark_matter" = 1)
|
||||
required_temp = 474
|
||||
|
||||
/*/datum/reagent/liquid_dark_matter/reaction_turf(var/turf/simulated/T, var/volume)
|
||||
if(istype(T, /turf/simulated/floor/))
|
||||
goonchem_vortex(T, 0, 5, 3)
|
||||
return
|
||||
/datum/reagent/liquid_dark_matter/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
|
||||
if(!istype(M, /mob/living))
|
||||
return
|
||||
if(method == TOUCH)
|
||||
var/turf/simulated/T = get_turf(M)
|
||||
goonchem_vortex(T, 0, 5, 3)
|
||||
return*/ //o god what the fuck goof
|
||||
/datum/chemical_reaction/ldm_vortex/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
var/turf/simulated/T = get_turf(holder.my_atom)
|
||||
goonchem_vortex(T, 0, 5, 6)
|
||||
return
|
||||
/datum/chemical_reaction/liquid_dark_matter/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
if(holder.has_reagent("stabilizing_agent"))
|
||||
return
|
||||
holder.remove_reagent("liquid_dark_matter", created_volume)
|
||||
var/turf/simulated/T = get_turf(holder.my_atom)
|
||||
goonchem_vortex(T, 0, 5, 6)
|
||||
return
|
||||
@@ -138,7 +155,7 @@
|
||||
id = "blackpowder"
|
||||
description = "Explodes. Violently."
|
||||
reagent_state = LIQUID
|
||||
color = "#000000" //rgb: 96, 165, 132
|
||||
color = "#000000"
|
||||
metabolization_rate = 0.05
|
||||
|
||||
/datum/chemical_reaction/blackpowder
|
||||
@@ -166,3 +183,280 @@
|
||||
var/ex_flash = round(created_volume / 8)
|
||||
explosion(T,ex_severe,ex_heavy,ex_light,ex_flash, 1)
|
||||
return
|
||||
|
||||
/datum/reagent/flash_powder
|
||||
name = "Flash Powder"
|
||||
id = "flash_powder"
|
||||
description = "Makes a very bright flash."
|
||||
reagent_state = LIQUID
|
||||
color = "#FFFF00"
|
||||
|
||||
/datum/chemical_reaction/flash_powder
|
||||
name = "Flash powder"
|
||||
id = "flash_powder"
|
||||
result = "flash_powder"
|
||||
required_reagents = list("aluminium" = 1, "potassium" = 1, "sulfur" = 1 )
|
||||
result_amount = 3
|
||||
|
||||
/datum/chemical_reaction/flash_powder_flash
|
||||
name = "Flash powder activation"
|
||||
id = "flash_powder_flash"
|
||||
result = null
|
||||
required_reagents = list("flash_powder" = 1)
|
||||
required_temp = 374
|
||||
|
||||
/datum/chemical_reaction/flash_powder_flash/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
||||
s.set_up(2, 1, location)
|
||||
s.start()
|
||||
for(var/mob/living/carbon/C in get_hearers_in_view(created_volume/10, location))
|
||||
if(C.check_eye_prot())
|
||||
continue
|
||||
flick("e_flash", C.flash)
|
||||
if(get_dist(C, location) < 4)
|
||||
C.Weaken(5)
|
||||
continue
|
||||
C.Stun(5)
|
||||
|
||||
/datum/chemical_reaction/flash_powder/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
if(holder.has_reagent("stabilizing_agent"))
|
||||
return
|
||||
var/location = get_turf(holder.my_atom)
|
||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
||||
s.set_up(2, 1, location)
|
||||
s.start()
|
||||
for(var/mob/living/carbon/C in get_hearers_in_view(created_volume/10, location))
|
||||
if(C.check_eye_prot())
|
||||
continue
|
||||
flick("e_flash", C.flash)
|
||||
if(get_dist(C, location) < 4)
|
||||
C.Weaken(5)
|
||||
continue
|
||||
C.Stun(5)
|
||||
holder.remove_reagent("flash_powder", created_volume)
|
||||
|
||||
/datum/reagent/smoke_powder
|
||||
name = "Smoke Powder"
|
||||
id = "smoke_powder"
|
||||
description = "Makes a large cloud of smoke that can carry reagents."
|
||||
reagent_state = LIQUID
|
||||
color = "#808080"
|
||||
|
||||
/datum/chemical_reaction/smoke_powder
|
||||
name = "smoke_powder"
|
||||
id = "smoke_powder"
|
||||
result = "smoke_powder"
|
||||
required_reagents = list("potassium" = 1, "sugar" = 1, "phosphorus" = 1)
|
||||
result_amount = 3
|
||||
|
||||
|
||||
/datum/chemical_reaction/smoke_powder_smoke
|
||||
name = "smoke_powder_smoke"
|
||||
id = "smoke_powder_smoke"
|
||||
result = null
|
||||
required_reagents = list("smoke_powder" = 1)
|
||||
required_temp = 374
|
||||
secondary = 1
|
||||
mob_react = 1
|
||||
|
||||
/datum/chemical_reaction/smoke_powder_smoke/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
var/datum/effect/effect/system/chem_smoke_spread/S = new /datum/effect/effect/system/chem_smoke_spread
|
||||
S.attach(location)
|
||||
playsound(location, 'sound/effects/smoke.ogg', 50, 1, -3)
|
||||
spawn(0)
|
||||
if(S)
|
||||
S.set_up(holder, 10, 0, location)
|
||||
S.start()
|
||||
sleep(10)
|
||||
S.start()
|
||||
if(holder && holder.my_atom)
|
||||
holder.clear_reagents()
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/smoke_powder/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
if(holder.has_reagent("stabilizing_agent"))
|
||||
return
|
||||
holder.remove_reagent("smoke_powder", created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
var/datum/effect/effect/system/chem_smoke_spread/S = new /datum/effect/effect/system/chem_smoke_spread
|
||||
S.attach(location)
|
||||
playsound(location, 'sound/effects/smoke.ogg', 50, 1, -3)
|
||||
spawn(0)
|
||||
if(S)
|
||||
S.set_up(holder, 10, 0, location)
|
||||
S.start()
|
||||
sleep(10)
|
||||
S.start()
|
||||
if(holder && holder.my_atom)
|
||||
holder.clear_reagents()
|
||||
return
|
||||
|
||||
/datum/reagent/sonic_powder
|
||||
name = "Sonic Powder"
|
||||
id = "sonic_powder"
|
||||
description = "Makes a deafening noise."
|
||||
reagent_state = LIQUID
|
||||
color = "#0000FF"
|
||||
|
||||
/datum/chemical_reaction/sonic_powder
|
||||
name = "sonic_powder"
|
||||
id = "sonic_powder"
|
||||
result = "sonic_powder"
|
||||
required_reagents = list("oxygen" = 1, "cola" = 1, "phosphorus" = 1)
|
||||
result_amount = 3
|
||||
|
||||
|
||||
/datum/chemical_reaction/sonic_powder_deafen
|
||||
name = "sonic_powder_deafen"
|
||||
id = "sonic_powder_deafen"
|
||||
result = null
|
||||
required_reagents = list("sonic_powder" = 1)
|
||||
required_temp = 374
|
||||
|
||||
/datum/chemical_reaction/sonic_powder_deafen/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
playsound(location, 'sound/effects/bang.ogg', 25, 1)
|
||||
for(var/mob/living/carbon/C in get_hearers_in_view(created_volume/10, location))
|
||||
if(ishuman(C))
|
||||
var/mob/living/carbon/human/H = C
|
||||
if((H.ears && (H.ears.flags & EARBANGPROTECT)) || (H.head && (H.head.flags & HEADBANGPROTECT)))
|
||||
continue
|
||||
C.show_message("<span class='warning'>BANG</span>", 2)
|
||||
C.Stun(5)
|
||||
C.Weaken(5)
|
||||
C.setEarDamage(C.ear_damage + rand(0, 5), max(C.ear_deaf,15))
|
||||
if(C.ear_damage >= 15)
|
||||
C << "<span class='warning'>Your ears start to ring badly!</span>"
|
||||
else if(C.ear_damage >= 5)
|
||||
C << "<span class='warning'>Your ears start to ring!</span>"
|
||||
|
||||
/datum/chemical_reaction/sonic_powder/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
if(holder.has_reagent("stabilizing_agent"))
|
||||
return
|
||||
holder.remove_reagent("sonic_powder", created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
playsound(location, 'sound/effects/bang.ogg', 25, 1)
|
||||
for(var/mob/living/carbon/C in get_hearers_in_view(created_volume/10, location))
|
||||
if(ishuman(C))
|
||||
var/mob/living/carbon/human/H = C
|
||||
if((H.ears && (H.ears.flags & EARBANGPROTECT)) || (H.head && (H.head.flags & HEADBANGPROTECT)))
|
||||
continue
|
||||
C.show_message("<span class='warning'>BANG</span>", 2)
|
||||
C.Stun(5)
|
||||
C.Weaken(5)
|
||||
C.setEarDamage(C.ear_damage + rand(0, 5), max(C.ear_deaf,15))
|
||||
if(C.ear_damage >= 15)
|
||||
C << "<span class='warning'>Your ears start to ring badly!</span>"
|
||||
else if(C.ear_damage >= 5)
|
||||
C << "<span class='warning'>Your ears start to ring!</span>"
|
||||
|
||||
/datum/reagent/phlogiston
|
||||
name = "Phlogiston"
|
||||
id = "phlogiston"
|
||||
description = "Catches you on fire and makes you ignite."
|
||||
reagent_state = LIQUID
|
||||
color = "#FF9999"
|
||||
|
||||
/datum/chemical_reaction/phlogiston
|
||||
name = "phlogiston"
|
||||
id = "phlogiston"
|
||||
result = "phlogiston"
|
||||
required_reagents = list("phosphorus" = 1, "sacid" = 1, "stable_plasma" = 1)
|
||||
result_amount = 3
|
||||
|
||||
/datum/chemical_reaction/phlogiston/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
if(holder.has_reagent("stabilizing_agent"))
|
||||
return
|
||||
var/turf/simulated/T = get_turf(holder.my_atom)
|
||||
if(istype(T))
|
||||
T.atmos_spawn_air(SPAWN_HEAT | SPAWN_TOXINS, created_volume)
|
||||
return
|
||||
|
||||
/datum/reagent/phlogiston/on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
M.adjust_fire_stacks(1)
|
||||
M.IgniteMob()
|
||||
M.adjustFireLoss(0.2*M.fire_stacks)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/napalm
|
||||
name = "Napalm"
|
||||
id = "napalm"
|
||||
description = "Very flammable."
|
||||
reagent_state = LIQUID
|
||||
color = "#FF9999"
|
||||
|
||||
/datum/reagent/napalm/on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
M.adjust_fire_stacks(1)
|
||||
..()
|
||||
return
|
||||
|
||||
/datum/reagent/napalm/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
|
||||
if(method == TOUCH && isliving(M))
|
||||
M.adjust_fire_stacks(7)
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/napalm
|
||||
name = "Napalm"
|
||||
id = "napalm"
|
||||
result = null
|
||||
required_reagents = list("aluminium" = 1, "plasma" = 1, "sacid" = 1 )
|
||||
result_amount = 1
|
||||
|
||||
datum/reagent/cryostylane
|
||||
name = "Cryostylane"
|
||||
id = "cryostylane"
|
||||
description = "Comes into existence at 20K. As long as there is sufficient oxygen for it to react with, Cryostylane slowly cools all other reagents in the mob down to 0K."
|
||||
color = "#B2B2FF" // rgb: 139, 166, 233
|
||||
|
||||
/datum/chemical_reaction/cryostylane
|
||||
name = "cryostylane"
|
||||
id = "cryostylane"
|
||||
result = "cryostylane"
|
||||
required_reagents = list("water" = 1, "stable_plasma" = 1, "nitrogen" = 1)
|
||||
result_amount = 3
|
||||
|
||||
/datum/chemical_reaction/cryostylane/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
holder.chem_temp = 20 // cools the fuck down
|
||||
return
|
||||
|
||||
|
||||
datum/reagent/cryostylane/on_mob_life(var/mob/living/M as mob) //TODO: code freezing into an ice cube
|
||||
if(M.reagents.has_reagent("oxygen"))
|
||||
M.reagents.remove_reagent("oxygen", 1)
|
||||
M.bodytemperature -= 30 * TEMPERATURE_DAMAGE_COEFFICIENT
|
||||
..()
|
||||
return
|
||||
|
||||
datum/reagent/cryostylane/reaction_turf(var/turf/simulated/T, var/volume)
|
||||
if(volume >= 5)
|
||||
for(var/mob/living/carbon/slime/M in T)
|
||||
M.adjustToxLoss(rand(15,30))
|
||||
|
||||
datum/reagent/pyrosium
|
||||
name = "Pyrosium"
|
||||
id = "pyrosium"
|
||||
description = "Comes into existence at 20K. As long as there is sufficient oxygen for it to react with, Pyrosium slowly cools all other reagents in the mob down to 0K."
|
||||
color = "#B20000" // rgb: 139, 166, 233
|
||||
|
||||
/datum/chemical_reaction/pyrosium
|
||||
name = "pyrosium"
|
||||
id = "pyrosium"
|
||||
result = "pyrosium"
|
||||
required_reagents = list("stable_plasma" = 1, "radium" = 1, "phosphorus" = 1)
|
||||
result_amount = 3
|
||||
|
||||
/datum/chemical_reaction/pyrosium/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
holder.chem_temp = 20 // also cools the fuck down
|
||||
return
|
||||
|
||||
datum/reagent/pyrosium/on_mob_life(var/mob/living/M as mob)
|
||||
if(M.reagents.has_reagent("oxygen"))
|
||||
M.reagents.remove_reagent("oxygen", 1)
|
||||
M.bodytemperature += 30 * TEMPERATURE_DAMAGE_COEFFICIENT
|
||||
..()
|
||||
return
|
||||
|
||||
@@ -7,9 +7,9 @@
|
||||
datum/reagent/polonium
|
||||
name = "Polonium"
|
||||
id = "polonium"
|
||||
description = "+8 RAD."
|
||||
description = "Cause significant Radiation damage over time."
|
||||
reagent_state = LIQUID
|
||||
color = "#CF3600" // rgb: 207, 54, 0
|
||||
color = "#CF3600"
|
||||
metabolization_rate = 0.1
|
||||
|
||||
datum/reagent/polonium/on_mob_life(var/mob/living/M as mob)
|
||||
@@ -24,7 +24,7 @@ datum/reagent/histamine
|
||||
id = "histamine"
|
||||
description = "A dose-dependent toxin, ranges from annoying to incredibly lethal."
|
||||
reagent_state = LIQUID
|
||||
color = "#CF3600" // rgb: 207, 54, 0
|
||||
color = "#CF3600"
|
||||
metabolization_rate = 0.2
|
||||
overdose_threshold = 30
|
||||
|
||||
@@ -54,9 +54,9 @@ datum/reagent/histamine/overdose_process(var/mob/living/M as mob)
|
||||
datum/reagent/formaldehyde
|
||||
name = "Formaldehyde"
|
||||
id = "formaldehyde"
|
||||
description = "+1 TOX, 10% chance to decay into 5-15 units of histamine."
|
||||
description = "Deals a moderate amount of Toxin damage over time. 10% chance to decay into 10-15 histamine."
|
||||
reagent_state = LIQUID
|
||||
color = "#CF3600" // rgb: 207, 54, 0
|
||||
color = "#CF3600"
|
||||
|
||||
datum/reagent/formaldehyde/on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
@@ -78,9 +78,9 @@ datum/reagent/formaldehyde/on_mob_life(var/mob/living/M as mob)
|
||||
datum/reagent/venom
|
||||
name = "Venom"
|
||||
id = "venom"
|
||||
description = "Scaling TOX and BRUTE damage with dose. 25% chance to decay into 5-10 histamine."
|
||||
description = "Will deal scaling amounts of Toxin and Brute damage over time. 25% chance to decay into 5-10 histamine."
|
||||
reagent_state = LIQUID
|
||||
color = "#CF3600" // rgb: 207, 54, 0
|
||||
color = "#CF3600"
|
||||
metabolization_rate = 0.2
|
||||
datum/reagent/venom/on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
@@ -95,9 +95,9 @@ datum/reagent/venom/on_mob_life(var/mob/living/M as mob)
|
||||
datum/reagent/neurotoxin2
|
||||
name = "Neurotoxin"
|
||||
id = "neurotoxin2"
|
||||
description = "+1 TOX, +1 BRAIN up to 60 before it slows down, confusion, knockout after 17 elapsed cycles."
|
||||
description = "Deals toxin and brain damage up to 60 before it slows down, causing confusion and a knockout after 17 elapsed cycles."
|
||||
reagent_state = LIQUID
|
||||
color = "#CF3600" // rgb: 207, 54, 0
|
||||
color = "#CF3600"
|
||||
var/cycle_count = 0
|
||||
metabolization_rate = 1
|
||||
|
||||
@@ -117,14 +117,14 @@ datum/reagent/neurotoxin2/on_mob_life(var/mob/living/M as mob)
|
||||
result = "neurotoxin2"
|
||||
required_reagents = list("space_drugs" = 1)
|
||||
result_amount = 1
|
||||
required_temp = 370
|
||||
required_temp = 674
|
||||
|
||||
datum/reagent/cyanide
|
||||
name = "Cyanide"
|
||||
id = "cyanide"
|
||||
description = "+1.5 TOX, 10% chance of +1 LOSEBREATH, 8% chance of stun and extra +2 TOX."
|
||||
description = "Deals toxin damage, alongside some oxygen loss. 8% chance of stun and some extra toxin damage."
|
||||
reagent_state = LIQUID
|
||||
color = "#CF3600" // rgb: 207, 54, 0
|
||||
color = "#CF3600"
|
||||
metabolization_rate = 0.1
|
||||
|
||||
datum/reagent/cyanide/on_mob_life(var/mob/living/M as mob)
|
||||
@@ -152,7 +152,7 @@ datum/reagent/cyanide/on_mob_life(var/mob/living/M as mob)
|
||||
id = "????"
|
||||
description = "????"
|
||||
reagent_state = LIQUID
|
||||
color = "#CF3600" // rgb: 207, 54, 0
|
||||
color = "#CF3600"
|
||||
metabolization_rate = 0.2
|
||||
|
||||
datum/reagent/questionmark/on_mob_life(var/mob/living/M as mob)
|
||||
@@ -164,9 +164,9 @@ datum/reagent/questionmark/on_mob_life(var/mob/living/M as mob)
|
||||
datum/reagent/itching_powder
|
||||
name = "Itching Powder"
|
||||
id = "itching_powder"
|
||||
description = "Lots of annoying random effects, chances to do BRUTE damage from scratching. 6% chance to decay into 1-3 units of histamine."
|
||||
description = "Lots of annoying random effects, chances to do some brute damage from scratching. 6% chance to decay into 1-3 units of histamine."
|
||||
reagent_state = LIQUID
|
||||
color = "#CF3600" // rgb: 207, 54, 0
|
||||
color = "#CF3600"
|
||||
metabolization_rate = 0.3
|
||||
|
||||
/datum/reagent/itching_powder/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)
|
||||
@@ -176,13 +176,13 @@ datum/reagent/itching_powder
|
||||
|
||||
datum/reagent/itching_powder/on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
if(prob(rand(5,50)))
|
||||
if(prob(27))
|
||||
M << "You scratch at your head."
|
||||
M.adjustBruteLoss(0.2*REM)
|
||||
if(prob(rand(5,50)))
|
||||
if(prob(27))
|
||||
M << "You scratch at your leg."
|
||||
M.adjustBruteLoss(0.2*REM)
|
||||
if(prob(rand(5,50)))
|
||||
if(prob(27))
|
||||
M << "You scratch at your arm."
|
||||
M.adjustBruteLoss(0.2*REM)
|
||||
if(prob(6))
|
||||
@@ -204,4 +204,166 @@ datum/reagent/itching_powder/on_mob_life(var/mob/living/M as mob)
|
||||
result = "facid"
|
||||
required_reagents = list("sacid" = 1, "fluorine" = 1, "hydrogen" = 1, "potassium" = 1)
|
||||
result_amount = 4
|
||||
required_temp = 380
|
||||
required_temp = 380
|
||||
|
||||
datum/reagent/initropidril
|
||||
name = "Initropidril"
|
||||
id = "initropidril"
|
||||
description = "33% chance to hit with a random amount of toxin damage, 5-10% chances to cause stunning, suffocation, or immediate heart failure."
|
||||
reagent_state = LIQUID
|
||||
color = "#CF3600"
|
||||
metabolization_rate = 0.4
|
||||
|
||||
datum/reagent/initropidril/on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
if(prob(33))
|
||||
M.adjustToxLoss(rand(5,25))
|
||||
if(prob(7))
|
||||
var/picked_option = rand(1,3)
|
||||
switch(picked_option)
|
||||
if(1)
|
||||
M.Stun(3)
|
||||
M.Weaken(3)
|
||||
if(2)
|
||||
M.losebreath += 10
|
||||
M.adjustOxyLoss(rand(5,25))
|
||||
if(3)
|
||||
var/mob/living/carbon/human/H = M
|
||||
if(!H.heart_attack)
|
||||
H.visible_message("<span class = 'userdanger'>[H] clutches at their chest as if their heart stopped!</span>")
|
||||
H.heart_attack = 1 // rip in pepperoni
|
||||
else
|
||||
H.losebreath += 10
|
||||
H.adjustOxyLoss(rand(5,25))
|
||||
..()
|
||||
return
|
||||
|
||||
datum/reagent/pancuronium
|
||||
name = "Pancuronium"
|
||||
id = "pancuronium"
|
||||
description = "Knocks you out after 30 seconds, 7% chance to cause some oxygen loss."
|
||||
reagent_state = LIQUID
|
||||
color = "#CF3600"
|
||||
metabolization_rate = 0.2
|
||||
|
||||
datum/reagent/pancuronium/on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
if(current_cycle >= 10)
|
||||
M.SetParalysis(3)
|
||||
if(prob(7))
|
||||
M.losebreath += rand(3,5)
|
||||
..()
|
||||
return
|
||||
|
||||
datum/reagent/sodium_thiopental
|
||||
name = "Sodium Thiopental"
|
||||
id = "sodium_thiopental"
|
||||
description = "Puts you to sleep after 30 seconds, along with some major stamina loss."
|
||||
reagent_state = LIQUID
|
||||
color = "#CF3600"
|
||||
metabolization_rate = 0.7
|
||||
|
||||
datum/reagent/sodium_thiopental/on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
if(current_cycle >= 10)
|
||||
M.sleeping += 3
|
||||
M.adjustStaminaLoss(10)
|
||||
..()
|
||||
return
|
||||
|
||||
datum/reagent/sulfonal
|
||||
name = "Sulfonal"
|
||||
id = "sulfonal"
|
||||
description = "Deals some toxin damage, and puts you to sleep after 66 seconds."
|
||||
reagent_state = LIQUID
|
||||
color = "#CF3600"
|
||||
metabolization_rate = 0.1
|
||||
|
||||
/datum/chemical_reaction/sulfonal
|
||||
name = "sulfonal"
|
||||
id = "sulfonal"
|
||||
result = "sulfonal"
|
||||
required_reagents = list("acetone" = 1, "diethylamine" = 1, "sulfur" = 1)
|
||||
result_amount = 3
|
||||
|
||||
datum/reagent/sulfonal/on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
if(current_cycle >= 22)
|
||||
M.sleeping += 3
|
||||
M.adjustToxLoss(1)
|
||||
..()
|
||||
return
|
||||
|
||||
datum/reagent/amanitin
|
||||
name = "Amanitin"
|
||||
id = "amanitin"
|
||||
description = "On the last second that it's in you, it hits you with a stack of toxin damage based on how long it's been in you. The more you use, the longer it takes before anything happens, but the harder it hits when it does."
|
||||
reagent_state = LIQUID
|
||||
color = "#CF3600"
|
||||
|
||||
datum/reagent/amanitin/on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
..()
|
||||
return
|
||||
|
||||
datum/reagent/amanitin/on_mob_delete(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
M.adjustToxLoss(current_cycle*rand(2,4))
|
||||
..()
|
||||
|
||||
datum/reagent/lipolicide
|
||||
name = "Lipolicide"
|
||||
id = "lipolicide"
|
||||
description = "Deals some toxin damage unless they keep eating food. Will reduce nutrition values."
|
||||
reagent_state = LIQUID
|
||||
color = "#CF3600"
|
||||
|
||||
/datum/chemical_reaction/lipolicide
|
||||
name = "lipolicide"
|
||||
id = "lipolicide"
|
||||
result = "lipolicide"
|
||||
required_reagents = list("mercury" = 1, "diethylamine" = 1, "ephedrine" = 1)
|
||||
result_amount = 3
|
||||
|
||||
datum/reagent/lipolicide/on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
if(!holder.has_reagent("nutriment"))
|
||||
M.adjustToxLoss(1)
|
||||
M.nutrition -= 10 * REAGENTS_METABOLISM
|
||||
M.overeatduration = 0
|
||||
if(M.nutrition < 0)//Prevent from going into negatives.
|
||||
M.nutrition = 0
|
||||
..()
|
||||
return
|
||||
|
||||
datum/reagent/coniine
|
||||
name = "Coniine"
|
||||
id = "coniine"
|
||||
description = "Does moderate toxin damage and oxygen loss."
|
||||
reagent_state = LIQUID
|
||||
color = "#CF3600"
|
||||
metabolization_rate = 0.05
|
||||
|
||||
datum/reagent/coniine/on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
M.losebreath += 5
|
||||
M.adjustToxLoss(2)
|
||||
..()
|
||||
return
|
||||
|
||||
datum/reagent/curare
|
||||
name = "Curare"
|
||||
id = "curare"
|
||||
description = "Does some oxygen and toxin damage, weakens you after 33 seconds."
|
||||
reagent_state = LIQUID
|
||||
color = "#CF3600"
|
||||
metabolization_rate = 0.1
|
||||
|
||||
datum/reagent/curare/on_mob_life(var/mob/living/M as mob)
|
||||
if(!M) M = holder.my_atom
|
||||
if(current_cycle >= 11)
|
||||
M.Weaken(3)
|
||||
M.adjustToxLoss(1)
|
||||
M.adjustOxyLoss(1)
|
||||
..()
|
||||
return
|
||||
@@ -51,6 +51,15 @@ datum/reagents/New(maximum=100)
|
||||
chemical_reactions_list[id] += D
|
||||
break // Don't bother adding ourselves to other reagent ids, it is redundant.
|
||||
|
||||
datum/reagents/Destroy()
|
||||
..()
|
||||
for(var/datum/reagent/R in reagent_list)
|
||||
qdel(R)
|
||||
reagent_list.Cut()
|
||||
reagent_list = null
|
||||
if(my_atom && my_atom.reagents == src)
|
||||
my_atom.reagents = null
|
||||
|
||||
datum/reagents/proc/remove_any(var/amount=1)
|
||||
var/total_transfered = 0
|
||||
var/current_list_element = 1
|
||||
@@ -356,19 +365,18 @@ datum/reagents/proc/isolate_reagent(var/reagent)
|
||||
update_total()
|
||||
|
||||
datum/reagents/proc/del_reagent(var/reagent)
|
||||
for(var/A in reagent_list)
|
||||
var/datum/reagent/R = A
|
||||
for(var/datum/reagent/R in reagent_list)
|
||||
if (R.id == reagent)
|
||||
reagent_list -= A
|
||||
del(A)
|
||||
if(istype(my_atom, /mob/living))
|
||||
var/mob/living/M = my_atom
|
||||
R.on_mob_delete(M)
|
||||
qdel(R)
|
||||
reagent_list -= R
|
||||
update_total()
|
||||
my_atom.on_reagent_change()
|
||||
check_ignoreslow(my_atom)
|
||||
check_gofast(my_atom)
|
||||
check_goreallyfast(my_atom)
|
||||
return 0
|
||||
|
||||
|
||||
return 1
|
||||
|
||||
datum/reagents/proc/check_ignoreslow(var/mob/M)
|
||||
@@ -380,7 +388,7 @@ datum/reagents/proc/check_ignoreslow(var/mob/M)
|
||||
|
||||
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("hotline"))
|
||||
if(M.reagents.has_reagent("unholywater")||M.reagents.has_reagent("nuka_cola"))
|
||||
return 1
|
||||
else
|
||||
M.status_flags &= ~GOTTAGOFAST
|
||||
@@ -532,12 +540,6 @@ datum/reagents/proc/remove_all_type(var/reagent_type, var/amount, var/strict = 0
|
||||
|
||||
return has_removed_reagent
|
||||
|
||||
datum/reagents/proc/delete()
|
||||
for(var/datum/reagent/R in reagent_list)
|
||||
R.holder = null
|
||||
if(my_atom)
|
||||
my_atom.reagents = null
|
||||
|
||||
//two helper functions to preserve data across reactions (needed for xenoarch)
|
||||
datum/reagents/proc/get_data(var/reagent_id)
|
||||
for(var/datum/reagent/D in reagent_list)
|
||||
@@ -578,6 +580,6 @@ datum/reagents/proc/copy_data(var/datum/reagent/current_reagent)
|
||||
// Max vol is maximum volume of holder
|
||||
atom/proc/create_reagents(var/max_vol)
|
||||
if(reagents)
|
||||
reagents.delete()
|
||||
qdel(reagents)
|
||||
reagents = new/datum/reagents(max_vol)
|
||||
reagents.my_atom = src
|
||||
|
||||
@@ -19,9 +19,9 @@ datum/reagent
|
||||
var/datum/reagents/holder = null
|
||||
var/reagent_state = LIQUID
|
||||
var/list/data
|
||||
var/current_cycle = 0
|
||||
var/volume = 0
|
||||
//var/list/viruses = list()
|
||||
var/color = "#000000" // rgb: 0, 0, 0 (does not support alpha channels - yet!)
|
||||
var/color = "#000000" // rgb: 0, 0, 0
|
||||
var/can_synth = 1
|
||||
var/metabolization_rate = REAGENTS_METABOLISM
|
||||
var/overrides_metab = 0
|
||||
@@ -30,6 +30,10 @@ datum/reagent
|
||||
var/addiction_stage = 0
|
||||
var/overdosed = 0 // You fucked up and this is now triggering it's overdose effects, purge that shit quick.
|
||||
|
||||
datum/reagent/Destroy() // This should only be called by the holder, so it's already handled clearing its references
|
||||
..()
|
||||
holder = null
|
||||
|
||||
datum/reagent/proc/reaction_mob(var/mob/M, var/method=TOUCH, var/volume, var/show_message = 1) //By default we have a chance to transfer some
|
||||
if(!istype(M, /mob/living))
|
||||
return 0
|
||||
@@ -74,11 +78,16 @@ datum/reagent/proc/reaction_turf(var/turf/T, var/volume)
|
||||
return
|
||||
|
||||
datum/reagent/proc/on_mob_life(var/mob/living/M as mob)
|
||||
current_cycle++
|
||||
if(!istype(M, /mob/living))
|
||||
return //Noticed runtime errors from facid trying to damage ghosts, this should fix. --NEO
|
||||
holder.remove_reagent(src.id, metabolization_rate * M.metabolism_efficiency) //By default it slowly disappears.
|
||||
return
|
||||
|
||||
// Called when this reagent is removed while inside a mob
|
||||
datum/reagent/proc/on_mob_delete(mob/M)
|
||||
return
|
||||
|
||||
datum/reagent/proc/on_move(var/mob/M)
|
||||
return
|
||||
|
||||
@@ -208,14 +217,6 @@ datum/reagent/blood/reaction_turf(var/turf/simulated/T, var/volume)//splash the
|
||||
newVirus.holder = blood_prop
|
||||
return
|
||||
|
||||
/* Must check the transfering of reagents and their data first. They all can point to one disease datum.
|
||||
|
||||
Del()
|
||||
if(src.data["virus"])
|
||||
var/datum/disease/D = src.data["virus"]
|
||||
D.cure(0)
|
||||
..()
|
||||
*/
|
||||
datum/reagent/vaccine
|
||||
//data must contain virus type
|
||||
name = "Vaccine"
|
||||
@@ -261,12 +262,10 @@ datum/reagent/water/reaction_turf(var/turf/simulated/T, var/volume)
|
||||
G.temperature = max(min(G.temperature-(CT*1000),G.temperature/CT),0)
|
||||
G.react()
|
||||
qdel(hotspot)
|
||||
T.color = initial(T.color)
|
||||
return
|
||||
|
||||
datum/reagent/water/reaction_obj(var/obj/O, var/volume)
|
||||
src = null
|
||||
O.color = initial(O.color)
|
||||
if(istype(O,/obj/item/weapon/reagent_containers/food/snacks/monkeycube))
|
||||
var/obj/item/weapon/reagent_containers/food/snacks/monkeycube/cube = O
|
||||
if(!cube.wrapped)
|
||||
@@ -276,7 +275,6 @@ datum/reagent/water/reaction_obj(var/obj/O, var/volume)
|
||||
datum/reagent/water/reaction_mob(var/mob/living/M, var/method=TOUCH, var/volume)//Splashing people with water can help put them out!
|
||||
if(!istype(M, /mob/living))
|
||||
return
|
||||
M.color = initial(M.color)
|
||||
if(method == TOUCH)
|
||||
M.adjust_fire_stacks(-(volume / 10))
|
||||
if(M.fire_stacks <= 0)
|
||||
@@ -676,12 +674,10 @@ datum/reagent/space_cleaner/reaction_obj(var/obj/O, var/volume)
|
||||
else
|
||||
if(O)
|
||||
O.clean_blood()
|
||||
O.color = initial(O.color)
|
||||
|
||||
datum/reagent/space_cleaner/reaction_turf(var/turf/T, var/volume)
|
||||
if(volume >= 1)
|
||||
T.clean_blood()
|
||||
T.color = initial(T.color)
|
||||
for(var/obj/effect/decal/cleanable/C in T)
|
||||
qdel(C)
|
||||
|
||||
@@ -695,7 +691,6 @@ datum/reagent/space_cleaner/reaction_turf(var/turf/T, var/volume)
|
||||
datum/reagent/space_cleaner/reaction_mob(var/mob/M, var/method=TOUCH, var/volume)
|
||||
if(iscarbon(M))
|
||||
var/mob/living/carbon/C = M
|
||||
C.color = initial(C.color)
|
||||
if(C.r_hand)
|
||||
C.r_hand.clean_blood()
|
||||
if(C.l_hand)
|
||||
|
||||
+4
-6
@@ -22,18 +22,16 @@ datum/reagent/consumable/ethanol
|
||||
var/boozepwr = 10 //lower numbers mean the booze will have an effect faster.
|
||||
|
||||
datum/reagent/consumable/ethanol/on_mob_life(var/mob/living/M as mob)
|
||||
if(!data)
|
||||
data = 1
|
||||
data++
|
||||
current_cycle++
|
||||
M.jitteriness = max(M.jitteriness-5,0)
|
||||
if(data >= boozepwr)
|
||||
if(current_cycle >= boozepwr)
|
||||
if (!M.slurring) M.slurring = 1
|
||||
M.slurring += 4
|
||||
M.Dizzy(5)
|
||||
if(data >= boozepwr*2.5 && prob(33))
|
||||
if(current_cycle >= boozepwr*2.5 && prob(33))
|
||||
if (!M.confused) M.confused = 1
|
||||
M.confused += 3
|
||||
if(data >= boozepwr*10 && prob(33))
|
||||
if(current_cycle >= boozepwr*10 && prob(33))
|
||||
M.adjustToxLoss(2)
|
||||
..()
|
||||
return
|
||||
|
||||
+17
-27
@@ -53,15 +53,13 @@ datum/reagent/consumable/carrotjuice
|
||||
datum/reagent/consumable/carrotjuice/on_mob_life(var/mob/living/M as mob)
|
||||
M.eye_blurry = max(M.eye_blurry-1 , 0)
|
||||
M.eye_blind = max(M.eye_blind-1 , 0)
|
||||
if(!data)
|
||||
data = 1
|
||||
switch(data)
|
||||
switch(current_cycle)
|
||||
if(1 to 20)
|
||||
//nothing
|
||||
if(21 to INFINITY)
|
||||
if (prob(data-10))
|
||||
if (prob(current_cycle-10))
|
||||
M.disabilities &= ~NEARSIGHT
|
||||
data++
|
||||
current_cycle++
|
||||
..()
|
||||
return
|
||||
|
||||
@@ -418,10 +416,8 @@ datum/reagent/consumable/atomicbomb/on_mob_life(var/mob/living/M as mob)
|
||||
if (!M.slurring)
|
||||
M.slurring = 1
|
||||
M.slurring += 3
|
||||
if(!data)
|
||||
data = 1
|
||||
data++
|
||||
switch(data)
|
||||
current_cycle++
|
||||
switch(current_cycle)
|
||||
if(51 to 200)
|
||||
M.sleeping += 1
|
||||
if(201 to INFINITY)
|
||||
@@ -437,19 +433,17 @@ datum/reagent/consumable/gargle_blaster
|
||||
color = "#664300" // rgb: 102, 67, 0
|
||||
|
||||
datum/reagent/consumable/gargle_blaster/on_mob_life(var/mob/living/M as mob)
|
||||
if(!data)
|
||||
data = 1
|
||||
data++
|
||||
current_cycle++
|
||||
M.dizziness +=6
|
||||
if(data >= 15 && data <45)
|
||||
if(current_cycle >= 15 && current_cycle <45)
|
||||
if (!M.slurring)
|
||||
M.slurring = 1
|
||||
M.slurring += 3
|
||||
else if(data >= 45 && prob(50) && data <55)
|
||||
else if(current_cycle >= 45 && prob(50) && current_cycle <55)
|
||||
M.confused = max(M.confused+3,0)
|
||||
else if(data >=55)
|
||||
else if(current_cycle >=55)
|
||||
M.druggy = max(M.druggy, 55)
|
||||
else if(data >=200)
|
||||
else if(current_cycle >=200)
|
||||
M.adjustToxLoss(2)
|
||||
..()
|
||||
return
|
||||
@@ -462,19 +456,17 @@ datum/reagent/consumable/neurotoxin
|
||||
|
||||
datum/reagent/consumable/neurotoxin/on_mob_life(var/mob/living/carbon/M as mob)
|
||||
M.weakened = max(M.weakened, 3)
|
||||
if(!data)
|
||||
data = 1
|
||||
data++
|
||||
current_cycle++
|
||||
M.dizziness +=6
|
||||
if(data >= 15 && data <45)
|
||||
if(current_cycle >= 15 && current_cycle <45)
|
||||
if (!M.slurring)
|
||||
M.slurring = 1
|
||||
M.slurring += 3
|
||||
else if(data >= 45 && prob(50) && data <55)
|
||||
else if(current_cycle >= 45 && prob(50) && current_cycle <55)
|
||||
M.confused = max(M.confused+3,0)
|
||||
else if(data >=55)
|
||||
else if(current_cycle >=55)
|
||||
M.druggy = max(M.druggy, 55)
|
||||
else if(data >=200)
|
||||
else if(current_cycle >=200)
|
||||
M.adjustToxLoss(2)
|
||||
..()
|
||||
return
|
||||
@@ -489,10 +481,8 @@ datum/reagent/consumable/hippies_delight
|
||||
|
||||
datum/reagent/consumable/hippies_delight/on_mob_life(var/mob/living/M as mob)
|
||||
M.druggy = max(M.druggy, 50)
|
||||
if(!data)
|
||||
data = 1
|
||||
data++
|
||||
switch(data)
|
||||
current_cycle++
|
||||
switch(current_cycle)
|
||||
if(1 to 5)
|
||||
if (!M.slurring) M.slurring = 1
|
||||
M.Dizzy(10)
|
||||
|
||||
@@ -95,13 +95,11 @@ datum/reagent/consumable/capsaicin
|
||||
color = "#B31008" // rgb: 179, 16, 8
|
||||
|
||||
datum/reagent/consumable/capsaicin/on_mob_life(var/mob/living/M as mob)
|
||||
if(!data)
|
||||
data = 1
|
||||
switch(data)
|
||||
switch(current_cycle)
|
||||
if(1 to 15)
|
||||
M.bodytemperature += 5 * TEMPERATURE_DAMAGE_COEFFICIENT
|
||||
if(holder.has_reagent("frostoil"))
|
||||
holder.remove_reagent("frostoil", 5)
|
||||
if(holder.has_reagent("cryostylane"))
|
||||
holder.remove_reagent("cryostylane", 5)
|
||||
if(istype(M, /mob/living/simple_animal/slime))
|
||||
M.bodytemperature += rand(5,20)
|
||||
if(15 to 25)
|
||||
@@ -112,10 +110,43 @@ datum/reagent/consumable/capsaicin/on_mob_life(var/mob/living/M as mob)
|
||||
M.bodytemperature += 15 * TEMPERATURE_DAMAGE_COEFFICIENT
|
||||
if(istype(M, /mob/living/simple_animal/slime))
|
||||
M.bodytemperature += rand(15,20)
|
||||
data++
|
||||
..()
|
||||
return
|
||||
|
||||
datum/reagent/consumable/frostoil
|
||||
name = "Frost Oil"
|
||||
id = "frostoil"
|
||||
description = "A special oil that noticably chills the body. Extraced from Icepeppers."
|
||||
color = "#B31008" // rgb: 139, 166, 233
|
||||
|
||||
datum/reagent/consumable/frostoil/on_mob_life(var/mob/living/M as mob)
|
||||
switch(current_cycle)
|
||||
if(1 to 15)
|
||||
M.bodytemperature -= 10 * TEMPERATURE_DAMAGE_COEFFICIENT
|
||||
if(holder.has_reagent("capsaicin"))
|
||||
holder.remove_reagent("capsaicin", 5)
|
||||
if(istype(M, /mob/living/simple_animal/slime))
|
||||
M.bodytemperature -= rand(5,20)
|
||||
if(15 to 25)
|
||||
M.bodytemperature -= 15 * TEMPERATURE_DAMAGE_COEFFICIENT
|
||||
if(istype(M, /mob/living/simple_animal/slime))
|
||||
M.bodytemperature -= rand(10,20)
|
||||
if(25 to INFINITY)
|
||||
M.bodytemperature -= 20 * TEMPERATURE_DAMAGE_COEFFICIENT
|
||||
if(prob(1))
|
||||
M.emote("shiver")
|
||||
if(istype(M, /mob/living/simple_animal/slime))
|
||||
M.bodytemperature -= rand(15,20)
|
||||
..()
|
||||
return
|
||||
|
||||
datum/reagent/consumable/frostoil/reaction_turf(var/turf/simulated/T, var/volume)
|
||||
if(volume >= 5)
|
||||
for(var/mob/living/simple_animal/slime/M in T)
|
||||
M.adjustToxLoss(rand(15,30))
|
||||
//if(istype(T))
|
||||
// T.atmos_spawn_air(SPAWN_COLD)
|
||||
|
||||
datum/reagent/consumable/condensedcapsaicin
|
||||
name = "Condensed Capsaicin"
|
||||
id = "condensedcapsaicin"
|
||||
@@ -190,42 +221,6 @@ datum/reagent/consumable/condensedcapsaicin/on_mob_life(var/mob/living/M as mob)
|
||||
..()
|
||||
return
|
||||
|
||||
datum/reagent/consumable/frostoil
|
||||
name = "Frost Oil"
|
||||
id = "frostoil"
|
||||
description = "A special oil that noticably chills the body. Extraced from Icepeppers."
|
||||
color = "#B31008" // rgb: 139, 166, 233
|
||||
|
||||
datum/reagent/consumable/frostoil/on_mob_life(var/mob/living/M as mob)
|
||||
if(!data) data = 1
|
||||
switch(data)
|
||||
if(1 to 15)
|
||||
M.bodytemperature -= 10 * TEMPERATURE_DAMAGE_COEFFICIENT
|
||||
if(holder.has_reagent("capsaicin"))
|
||||
holder.remove_reagent("capsaicin", 5)
|
||||
if(istype(M, /mob/living/simple_animal/slime))
|
||||
M.bodytemperature -= rand(5,20)
|
||||
if(15 to 25)
|
||||
M.bodytemperature -= 15 * TEMPERATURE_DAMAGE_COEFFICIENT
|
||||
if(istype(M, /mob/living/simple_animal/slime))
|
||||
M.bodytemperature -= rand(10,20)
|
||||
if(25 to INFINITY)
|
||||
M.bodytemperature -= 20 * TEMPERATURE_DAMAGE_COEFFICIENT
|
||||
if(prob(1))
|
||||
M.emote("shiver")
|
||||
if(istype(M, /mob/living/simple_animal/slime))
|
||||
M.bodytemperature -= rand(15,20)
|
||||
data++
|
||||
..()
|
||||
return
|
||||
|
||||
datum/reagent/consumable/frostoil/reaction_turf(var/turf/simulated/T, var/volume)
|
||||
if(volume >= 5)
|
||||
for(var/mob/living/simple_animal/slime/M in T)
|
||||
M.adjustToxLoss(rand(15,30))
|
||||
//if(istype(T))
|
||||
// T.atmos_spawn_air(SPAWN_COLD)
|
||||
|
||||
datum/reagent/consumable/sodiumchloride
|
||||
name = "Table Salt"
|
||||
id = "sodiumchloride"
|
||||
@@ -270,9 +265,7 @@ datum/reagent/mushroomhallucinogen
|
||||
|
||||
datum/reagent/mushroomhallucinogen/on_mob_life(var/mob/living/M as mob)
|
||||
M.druggy = max(M.druggy, 30)
|
||||
if(!data)
|
||||
data = 1
|
||||
switch(data)
|
||||
switch(current_cycle)
|
||||
if(1 to 5)
|
||||
if (!M.slurring)
|
||||
M.slurring = 1
|
||||
@@ -295,7 +288,7 @@ datum/reagent/mushroomhallucinogen/on_mob_life(var/mob/living/M as mob)
|
||||
M.druggy = max(M.druggy, 40)
|
||||
if(prob(30))
|
||||
M.emote(pick("twitch","giggle"))
|
||||
data++
|
||||
current_cycle++
|
||||
..()
|
||||
return
|
||||
|
||||
|
||||
@@ -14,20 +14,6 @@ datum/reagent/medicine
|
||||
datum/reagent/medicine/on_mob_life(var/mob/living/M as mob)
|
||||
holder.remove_reagent(src.id, metabolization_rate / M.metabolism_efficiency) //medicine reagents stay longer if you have a better metabolism
|
||||
|
||||
datum/reagent/medicine/lipozine
|
||||
name = "Lipozine" // The anti-nutriment.
|
||||
id = "lipozine"
|
||||
description = "A chemical compound that causes a powerful fat-burning reaction."
|
||||
color = "#BBEDA4" // rgb: 187, 237, 164
|
||||
|
||||
datum/reagent/medicine/lipozine/on_mob_life(var/mob/living/M as mob)
|
||||
M.nutrition -= 10 * REAGENTS_METABOLISM
|
||||
M.overeatduration = 0
|
||||
if(M.nutrition < 0)//Prevent from going into negatives.
|
||||
M.nutrition = 0
|
||||
..()
|
||||
return
|
||||
|
||||
datum/reagent/medicine/leporazine
|
||||
name = "Leporazine"
|
||||
id = "leporazine"
|
||||
@@ -141,10 +127,8 @@ datum/reagent/medicine/rezadone
|
||||
color = "#669900" // rgb: 102, 153, 0
|
||||
|
||||
datum/reagent/medicine/rezadone/on_mob_life(var/mob/living/M as mob)
|
||||
if(!data)
|
||||
data = 1
|
||||
data++
|
||||
switch(data)
|
||||
current_cycle++
|
||||
switch(current_cycle)
|
||||
if(1 to 15)
|
||||
M.adjustCloneLoss(-1)
|
||||
M.heal_organ_damage(1,1)
|
||||
|
||||
@@ -158,10 +158,8 @@ datum/reagent/toxin/zombiepowder/on_mob_life(var/mob/living/carbon/M as mob)
|
||||
..()
|
||||
return
|
||||
|
||||
datum/reagent/toxin/zombiepowder/Del()
|
||||
if(holder && ismob(holder.my_atom))
|
||||
var/mob/M = holder.my_atom
|
||||
M.status_flags &= ~FAKEDEATH
|
||||
datum/reagent/toxin/zombiepowder/on_mob_delete(mob/M)
|
||||
M.status_flags &= ~FAKEDEATH
|
||||
..()
|
||||
|
||||
datum/reagent/toxin/mindbreaker
|
||||
@@ -258,10 +256,8 @@ datum/reagent/toxin/chloralhydrate
|
||||
metabolization_rate = 1.5 * REAGENTS_METABOLISM
|
||||
|
||||
datum/reagent/toxin/chloralhydrate/on_mob_life(var/mob/living/M as mob)
|
||||
if(!data)
|
||||
data = 1
|
||||
data++
|
||||
switch(data)
|
||||
current_cycle++
|
||||
switch(current_cycle)
|
||||
if(1 to 10)
|
||||
M.confused += 2
|
||||
M.drowsyness += 2
|
||||
@@ -269,7 +265,7 @@ datum/reagent/toxin/chloralhydrate/on_mob_life(var/mob/living/M as mob)
|
||||
M.sleeping += 1
|
||||
if(51 to INFINITY)
|
||||
M.sleeping += 1
|
||||
M.adjustToxLoss((data - 50)*REM)
|
||||
M.adjustToxLoss((current_cycle - 50)*REM)
|
||||
..()
|
||||
return
|
||||
|
||||
@@ -281,15 +277,13 @@ datum/reagent/toxin/beer2 //disguised as normal beer for use by emagged brobots
|
||||
metabolization_rate = 1.5 * REAGENTS_METABOLISM
|
||||
|
||||
datum/reagent/toxin/beer2/on_mob_life(var/mob/living/M as mob)
|
||||
if(!data)
|
||||
data = 1
|
||||
switch(data)
|
||||
switch(current_cycle)
|
||||
if(1 to 50)
|
||||
M.sleeping += 1
|
||||
if(51 to INFINITY)
|
||||
M.sleeping += 1
|
||||
M.adjustToxLoss((data - 50)*REM)
|
||||
data++
|
||||
M.adjustToxLoss((current_cycle - 50)*REM)
|
||||
current_cycle++
|
||||
..()
|
||||
return
|
||||
|
||||
|
||||
@@ -58,12 +58,6 @@ silicate
|
||||
required_reagents = list("aluminium" = 1, "silicon" = 1, "oxygen" = 1)
|
||||
result_amount = 3
|
||||
*/
|
||||
/datum/chemical_reaction/stoxin
|
||||
name = "Sleep Toxin"
|
||||
id = "stoxin"
|
||||
result = "stoxin"
|
||||
required_reagents = list("chloralhydrate" = 1, "sugar" = 4)
|
||||
result_amount = 5
|
||||
|
||||
/datum/chemical_reaction/sterilizine
|
||||
name = "Sterilizine"
|
||||
@@ -186,90 +180,6 @@ silicate
|
||||
required_reagents = list("water" = 1, "sodium" = 1, "chlorine" = 1)
|
||||
result_amount = 3
|
||||
|
||||
/datum/chemical_reaction/flash_powder
|
||||
name = "Flash powder"
|
||||
id = "flash_powder"
|
||||
result = null
|
||||
required_reagents = list("aluminium" = 1, "potassium" = 1, "sulfur" = 1 )
|
||||
result_amount = null
|
||||
/datum/chemical_reaction/flash_powder/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
var/datum/effect/effect/system/spark_spread/s = new /datum/effect/effect/system/spark_spread
|
||||
s.set_up(2, 1, location)
|
||||
s.start()
|
||||
for(var/mob/living/carbon/C in get_hearers_in_view(5, location))
|
||||
if(C.check_eye_prot())
|
||||
continue
|
||||
flick("e_flash", C.flash)
|
||||
if(get_dist(C, location) < 4)
|
||||
C.Weaken(5)
|
||||
continue
|
||||
C.Stun(5)
|
||||
|
||||
/datum/chemical_reaction/napalm
|
||||
name = "Napalm"
|
||||
id = "napalm"
|
||||
result = null
|
||||
required_reagents = list("aluminium" = 1, "plasma" = 1, "sacid" = 1 )
|
||||
result_amount = 1
|
||||
/datum/chemical_reaction/napalm/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
var/turf/simulated/T = get_turf(holder.my_atom)
|
||||
if(istype(T))
|
||||
T.atmos_spawn_air(SPAWN_HEAT | SPAWN_TOXINS, created_volume)
|
||||
holder.del_reagent(id)
|
||||
return
|
||||
|
||||
/*
|
||||
/datum/chemical_reaction/smoke
|
||||
name = "Smoke"
|
||||
id = "smoke"
|
||||
result = null
|
||||
required_reagents = list("potassium" = 1, "sugar" = 1, "phosphorus" = 1 )
|
||||
result_amount = null
|
||||
secondary = 1
|
||||
on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
var/datum/effect/system/bad_smoke_spread/S = new /datum/effect/system/bad_smoke_spread
|
||||
S.attach(location)
|
||||
S.set_up(10, 0, location)
|
||||
playsound(location, 'sound/effects/smoke.ogg', 50, 1, -3)
|
||||
spawn(0)
|
||||
S.start()
|
||||
sleep(10)
|
||||
S.start()
|
||||
sleep(10)
|
||||
S.start()
|
||||
sleep(10)
|
||||
S.start()
|
||||
sleep(10)
|
||||
S.start()
|
||||
holder.clear_reagents()
|
||||
return */
|
||||
|
||||
/datum/chemical_reaction/chemsmoke
|
||||
name = "Chemsmoke"
|
||||
id = "chemsmoke"
|
||||
result = null
|
||||
required_reagents = list("potassium" = 1, "sugar" = 1, "phosphorus" = 1)
|
||||
result_amount = null
|
||||
secondary = 1
|
||||
mob_react = 1
|
||||
|
||||
/datum/chemical_reaction/chemsmoke/on_reaction(var/datum/reagents/holder, var/created_volume)
|
||||
var/location = get_turf(holder.my_atom)
|
||||
var/datum/effect/effect/system/chem_smoke_spread/S = new /datum/effect/effect/system/chem_smoke_spread
|
||||
S.attach(location)
|
||||
playsound(location, 'sound/effects/smoke.ogg', 50, 1, -3)
|
||||
spawn(0)
|
||||
if(S)
|
||||
S.set_up(holder, 10, 0, location)
|
||||
S.start()
|
||||
sleep(10)
|
||||
S.start()
|
||||
if(holder && holder.my_atom)
|
||||
holder.clear_reagents()
|
||||
return
|
||||
|
||||
/datum/chemical_reaction/chloralhydrate
|
||||
name = "Chloral Hydrate"
|
||||
id = "chloralhydrate"
|
||||
@@ -288,7 +198,7 @@ silicate
|
||||
name = "Zombie Powder"
|
||||
id = "zombiepowder"
|
||||
result = "zombiepowder"
|
||||
required_reagents = list("carpotoxin" = 5, "stoxin" = 5, "copper" = 5)
|
||||
required_reagents = list("carpotoxin" = 5, "morphine" = 5, "copper" = 5)
|
||||
result_amount = 2
|
||||
|
||||
/datum/chemical_reaction/rezadone
|
||||
@@ -305,13 +215,6 @@ silicate
|
||||
required_reagents = list("silicon" = 1, "hydrogen" = 1, "charcoal" = 1)
|
||||
result_amount = 5
|
||||
|
||||
/datum/chemical_reaction/lipozine
|
||||
name = "Lipozine"
|
||||
id = "Lipozine"
|
||||
result = "lipozine"
|
||||
required_reagents = list("sodiumchloride" = 1, "ethanol" = 1, "radium" = 1)
|
||||
result_amount = 3
|
||||
|
||||
/datum/chemical_reaction/plasmasolidification
|
||||
name = "Solid Plasma"
|
||||
id = "solidplasma"
|
||||
|
||||
@@ -141,6 +141,42 @@
|
||||
icon_state = "bottle16"
|
||||
list_reagents = list("formaldehyde" = 30)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/initropidril
|
||||
name = "initropidril bottle"
|
||||
desc = "A small bottle. Contains initropidril."
|
||||
icon_state = "bottle16"
|
||||
list_reagents = list("initropidril" = 30)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/pancuronium
|
||||
name = "pancuronium bottle"
|
||||
desc = "A small bottle. Contains pancuronium."
|
||||
icon_state = "bottle16"
|
||||
list_reagents = list("pancuronium" = 30)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/sodium_thiopental
|
||||
name = "sodium_thiopental bottle"
|
||||
desc = "A small bottle. Contains sodium thiopental."
|
||||
icon_state = "bottle16"
|
||||
list_reagents = list("formaldehyde" = 30)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/coniine
|
||||
name = "coniine bottle"
|
||||
desc = "A small bottle. Contains coniine."
|
||||
icon_state = "bottle16"
|
||||
list_reagents = list("coniine" = 30)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/curare
|
||||
name = "curare bottle"
|
||||
desc = "A small bottle. Contains curare."
|
||||
icon_state = "bottle16"
|
||||
list_reagents = list("curare" = 30)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/amanitin
|
||||
name = "amanitin bottle"
|
||||
desc = "A small bottle. Contains amanitin."
|
||||
icon_state = "bottle16"
|
||||
list_reagents = list("amanitin" = 30)
|
||||
|
||||
/obj/item/weapon/reagent_containers/glass/bottle/histamine
|
||||
name = "histamine bottle"
|
||||
desc = "A small bottle. Contains Histamine."
|
||||
|
||||
@@ -68,7 +68,8 @@
|
||||
reagents.trans_to(D, amount_per_transfer_from_this, 1/range)
|
||||
D.color = mix_color_from_reagents(D.reagents.reagent_list)
|
||||
var/puff_reagent_left = range //how many turf, mob or dense objet we can react with before we consider the chem puff consumed
|
||||
var/wait_step = max(round(9/range),2)
|
||||
var/wait_step = max(round(2+3/range), 2)
|
||||
|
||||
spawn(0)
|
||||
for(var/i=0, i<range, i++)
|
||||
step_towards(D,A)
|
||||
|
||||
Reference in New Issue
Block a user