diff --git a/code/modules/reagents/chemistry/reagents.dm b/code/modules/reagents/chemistry/reagents.dm
index 1b6e2e08854..62fa9af672a 100644
--- a/code/modules/reagents/chemistry/reagents.dm
+++ b/code/modules/reagents/chemistry/reagents.dm
@@ -1,7 +1,6 @@
#define SOLID 1
#define LIQUID 2
#define GAS 3
-#define REM REAGENTS_EFFECT_MULTIPLIER
/datum/reagent
var/name = "Reagent"
diff --git a/code/modules/reagents/chemistry/reagents/alcohol.dm b/code/modules/reagents/chemistry/reagents/alcohol.dm
index 3c1b4c7384e..2fcf9aacc98 100644
--- a/code/modules/reagents/chemistry/reagents/alcohol.dm
+++ b/code/modules/reagents/chemistry/reagents/alcohol.dm
@@ -15,7 +15,6 @@
M.AdjustDizzy(dizzy_adj)
..()
-
/datum/reagent/consumable/ethanol/reaction_obj(obj/O, volume)
if(istype(O,/obj/item/weapon/paper))
var/obj/item/weapon/paper/paperaffected = O
@@ -1030,7 +1029,6 @@
reagent_state = LIQUID
color = "#1BB1FF"
process_flags = ORGANIC | SYNTHETIC
- metabolization_rate = 0.4
alcohol_perc = 0.5
drink_icon = "synthanolglass"
drink_name = "Glass of Synthanol"
diff --git a/code/modules/reagents/chemistry/reagents/disease.dm b/code/modules/reagents/chemistry/reagents/disease.dm
index cfebcfd4b7c..f95b729e986 100644
--- a/code/modules/reagents/chemistry/reagents/disease.dm
+++ b/code/modules/reagents/chemistry/reagents/disease.dm
@@ -128,7 +128,6 @@
description = "A guaranteed heart-stopper!"
reagent_state = LIQUID
color = "#AB1CCF"
- metabolization_rate = 0.4
/datum/reagent/concentrated_initro/on_mob_life(mob/living/M)
if(volume >=5)
diff --git a/code/modules/reagents/chemistry/reagents/drinks.dm b/code/modules/reagents/chemistry/reagents/drinks.dm
index eb1c4f5ee68..489eac3eb81 100644
--- a/code/modules/reagents/chemistry/reagents/drinks.dm
+++ b/code/modules/reagents/chemistry/reagents/drinks.dm
@@ -9,7 +9,7 @@
/datum/reagent/consumable/drink/orangejuicde/on_mob_life(mob/living/M)
if(M.getOxyLoss() && prob(30))
- M.adjustOxyLoss(-1*REM)
+ M.adjustOxyLoss(-1*REAGENTS_EFFECT_MULTIPLIER)
..()
/datum/reagent/consumable/drink/tomatojuice
diff --git a/code/modules/reagents/chemistry/reagents/drugs.dm b/code/modules/reagents/chemistry/reagents/drugs.dm
index 037f1ebd8ab..3719c6f49b8 100644
--- a/code/modules/reagents/chemistry/reagents/drugs.dm
+++ b/code/modules/reagents/chemistry/reagents/drugs.dm
@@ -102,7 +102,7 @@
M.AdjustParalysis(-1)
M.AdjustStunned(-1)
M.AdjustWeakened(-1)
- M.adjustStaminaLoss(-1*REM)
+ M.adjustStaminaLoss(-1*REAGENTS_EFFECT_MULTIPLIER)
..()
/datum/reagent/nicotine/overdose_process(mob/living/M, severity)
@@ -477,7 +477,6 @@
reagent_state = LIQUID
color = "#0FBE0F"
-
/datum/reagent/thc/on_mob_life(mob/living/M)
M.stuttering += rand(0,2)
if(prob(5))
@@ -502,11 +501,6 @@
process_flags = ORGANIC | SYNTHETIC //Flipping for everyone!
addiction_chance = 10
-/datum/reagent/fliptonium/reaction_mob(mob/living/M, method=TOUCH, volume)
- if(method == INGEST || method == TOUCH)
- M.SpinAnimation(speed = 12, loops = -1)
- ..()
-
/datum/reagent/fliptonium/on_mob_life(mob/living/M)
if(current_cycle == 5)
M.SpinAnimation(speed = 11, loops = -1)
@@ -533,6 +527,11 @@
M.SetSleeping(0)
..()
+/datum/reagent/fliptonium/reaction_mob(mob/living/M, method=TOUCH, volume)
+ if(method == INGEST || method == TOUCH)
+ M.SpinAnimation(speed = 12, loops = -1)
+ ..()
+
/datum/reagent/fliptonium/on_mob_delete(mob/living/M)
M.SpinAnimation(speed = 12, loops = -1)
@@ -651,5 +650,5 @@
B.pixel_x = rand(-20, 0)
B.pixel_y = rand(-20, 0)
B.icon = I
- M.adjustFireLoss(rand(1,5)*REM)
- M.adjustBruteLoss(rand(1,5)*REM)
\ No newline at end of file
+ M.adjustFireLoss(rand(1,5)*REAGENTS_EFFECT_MULTIPLIER)
+ M.adjustBruteLoss(rand(1,5)*REAGENTS_EFFECT_MULTIPLIER)
\ No newline at end of file
diff --git a/code/modules/reagents/chemistry/reagents/food.dm b/code/modules/reagents/chemistry/reagents/food.dm
index f502f697505..e2aef002060 100644
--- a/code/modules/reagents/chemistry/reagents/food.dm
+++ b/code/modules/reagents/chemistry/reagents/food.dm
@@ -124,6 +124,11 @@
reagent_state = LIQUID
color = "#B31008" // rgb: 179, 16, 8
+/datum/reagent/consumable/condensedcapsaicin/on_mob_life(mob/living/M)
+ if(prob(5))
+ M.visible_message("[M] [pick("dry heaves!","coughs!","splutters!")]")
+ ..()
+
/datum/reagent/consumable/condensedcapsaicin/reaction_mob(mob/living/M, method=TOUCH, volume)
if(method == TOUCH)
if(ishuman(M))
@@ -179,11 +184,6 @@
victim.Weaken(5)
victim.drop_item()
-/datum/reagent/consumable/condensedcapsaicin/on_mob_life(mob/living/M)
- if(prob(5))
- M.visible_message("[M] [pick("dry heaves!","coughs!","splutters!")]")
- ..()
-
/datum/reagent/consumable/frostoil
name = "Frost Oil"
id = "frostoil"
@@ -446,10 +446,10 @@
/datum/reagent/consumable/mugwort/on_mob_life(mob/living/M)
if(ishuman(M) && M.mind)
if(M.mind.special_role == SPECIAL_ROLE_WIZARD)
- M.adjustToxLoss(-1*REM)
- M.adjustOxyLoss(-1*REM)
- M.adjustBruteLoss(-1*REM)
- M.adjustFireLoss(-1*REM)
+ M.adjustToxLoss(-1*REAGENTS_EFFECT_MULTIPLIER)
+ M.adjustOxyLoss(-1*REAGENTS_EFFECT_MULTIPLIER)
+ M.adjustBruteLoss(-1*REAGENTS_EFFECT_MULTIPLIER)
+ M.adjustFireLoss(-1*REAGENTS_EFFECT_MULTIPLIER)
..()
/datum/reagent/consumable/porktonium
@@ -708,7 +708,6 @@
description = "A gross and unidentifiable substance."
reagent_state = LIQUID
color = "#63DE63"
- metabolization_rate = 0.4
/datum/reagent/questionmark/reaction_mob(mob/living/M, method=TOUCH, volume)
if(method == INGEST)
@@ -725,10 +724,6 @@
color = "#F5F5F5"
metabolization_rate = 0.2
-/datum/reagent/msg/reaction_mob(mob/living/M, method=TOUCH, volume)
- if(method == INGEST)
- to_chat(M, "That tasted amazing!")
-
/datum/reagent/msg/on_mob_life(mob/living/M)
if(prob(5))
if(prob(10))
@@ -738,6 +733,10 @@
M.Stun(rand(2,5))
..()
+/datum/reagent/msg/reaction_mob(mob/living/M, method=TOUCH, volume)
+ if(method == INGEST)
+ to_chat(M, "That tasted amazing!")
+
/datum/reagent/cholesterol
name = "cholesterol"
id = "cholesterol"
@@ -790,17 +789,17 @@
color = "#8EAE7B"
process_flags = ORGANIC | SYNTHETIC //Because apparently ghosts in the shell
-/datum/reagent/ectoplasm/reaction_mob(mob/living/M, method=TOUCH, volume)
- 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.")
- to_chat(M, "[spooky_eat]")
-
/datum/reagent/ectoplasm/on_mob_life(mob/living/M)
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(8))
to_chat(M, "[spooky_message]")
..()
+/datum/reagent/ectoplasm/reaction_mob(mob/living/M, method=TOUCH, volume)
+ 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.")
+ to_chat(M, "[spooky_eat]")
+
/datum/reagent/ectoplasm/reaction_turf(turf/T, volume)
if(volume >= 10 && !istype(T, /turf/space))
new /obj/item/weapon/reagent_containers/food/snacks/ectoplasm(T)
diff --git a/code/modules/reagents/chemistry/reagents/medicine.dm b/code/modules/reagents/chemistry/reagents/medicine.dm
index 2f4df5ee4aa..f0f11c796fc 100644
--- a/code/modules/reagents/chemistry/reagents/medicine.dm
+++ b/code/modules/reagents/chemistry/reagents/medicine.dm
@@ -145,7 +145,6 @@
color = "#0AB478"
metabolization_rate = 0.2
-
/datum/reagent/medicine/silver_sulfadiazine
name = "Silver Sulfadiazine"
id = "silver_sulfadiazine"
@@ -154,6 +153,10 @@
color = "#F0C814"
metabolization_rate = 3
+/datum/reagent/medicine/silver_sulfadiazine/on_mob_life(mob/living/M)
+ M.adjustFireLoss(-2*REAGENTS_EFFECT_MULTIPLIER)
+ ..()
+
/datum/reagent/medicine/silver_sulfadiazine/reaction_mob(mob/living/M, method=TOUCH, volume, show_message = 1)
if(iscarbon(M))
if(method == TOUCH)
@@ -166,10 +169,6 @@
to_chat(M, "You feel sick...")
..()
-/datum/reagent/medicine/silver_sulfadiazine/on_mob_life(mob/living/M)
- M.adjustFireLoss(-2*REM)
- ..()
-
/datum/reagent/medicine/styptic_powder
name = "Styptic Powder"
id = "styptic_powder"
@@ -178,6 +177,10 @@
color = "#C8A5DC"
metabolization_rate = 3
+/datum/reagent/medicine/styptic_powder/on_mob_life(mob/living/M)
+ M.adjustBruteLoss(-2*REAGENTS_EFFECT_MULTIPLIER)
+ ..()
+
/datum/reagent/medicine/styptic_powder/reaction_mob(mob/living/M, method=TOUCH, volume, show_message = 1)
if(iscarbon(M))
if(method == TOUCH)
@@ -191,10 +194,6 @@
to_chat(M, "You feel gross!")
..()
-/datum/reagent/medicine/styptic_powder/on_mob_life(mob/living/M)
- M.adjustBruteLoss(-2*REM)
- ..()
-
/datum/reagent/medicine/salglu_solution
name = "Saline-Glucose Solution"
id = "salglu_solution"
@@ -206,8 +205,8 @@
/datum/reagent/medicine/salglu_solution/on_mob_life(mob/living/M)
if(prob(33))
- M.adjustBruteLoss(-2*REM)
- M.adjustFireLoss(-2*REM)
+ M.adjustBruteLoss(-2*REAGENTS_EFFECT_MULTIPLIER)
+ M.adjustFireLoss(-2*REAGENTS_EFFECT_MULTIPLIER)
if(ishuman(M))
var/mob/living/carbon/human/H = M
if(!H.species.exotic_blood && !(H.species.flags & NO_BLOOD) && prob(33))
@@ -243,7 +242,7 @@
color = "#000000"
/datum/reagent/medicine/charcoal/on_mob_life(mob/living/M)
- M.adjustToxLoss(-1.5*REM)
+ M.adjustToxLoss(-1.5*REAGENTS_EFFECT_MULTIPLIER)
if(prob(50))
for(var/datum/reagent/R in M.reagents.reagent_list)
if(R != src)
@@ -261,10 +260,10 @@
addiction_chance = 5
/datum/reagent/medicine/omnizine/on_mob_life(mob/living/M)
- M.adjustToxLoss(-1*REM)
- M.adjustOxyLoss(-1*REM)
- M.adjustBruteLoss(-2*REM)
- M.adjustFireLoss(-2*REM)
+ M.adjustToxLoss(-1*REAGENTS_EFFECT_MULTIPLIER)
+ M.adjustOxyLoss(-1*REAGENTS_EFFECT_MULTIPLIER)
+ M.adjustBruteLoss(-2*REAGENTS_EFFECT_MULTIPLIER)
+ M.adjustFireLoss(-2*REAGENTS_EFFECT_MULTIPLIER)
if(prob(50))
M.AdjustLoseBreath(-1)
..()
@@ -316,7 +315,7 @@
if(R != src)
M.reagents.remove_reagent(R.id,5)
if(M.health > 20)
- M.adjustToxLoss(5*REM)
+ M.adjustToxLoss(5*REAGENTS_EFFECT_MULTIPLIER)
if(prob(6))
M.fakevomit()
..()
@@ -346,10 +345,10 @@
M.reagents.remove_reagent(R.id,4)
M.radiation = max(0, M.radiation-7)
if(prob(75))
- M.adjustToxLoss(-4*REM)
+ M.adjustToxLoss(-4*REAGENTS_EFFECT_MULTIPLIER)
if(prob(33))
- M.adjustBruteLoss(1*REM)
- M.adjustFireLoss(1*REM)
+ M.adjustBruteLoss(1*REAGENTS_EFFECT_MULTIPLIER)
+ M.adjustFireLoss(1*REAGENTS_EFFECT_MULTIPLIER)
..()
/datum/reagent/medicine/sal_acid
@@ -364,7 +363,7 @@
/datum/reagent/medicine/sal_acid/on_mob_life(mob/living/M)
if(prob(55))
- M.adjustBruteLoss(-2*REM)
+ M.adjustBruteLoss(-2*REAGENTS_EFFECT_MULTIPLIER)
if(ishuman(M))
var/mob/living/carbon/human/H = M
if(H.traumatic_shock < 100)
@@ -380,7 +379,7 @@
metabolization_rate = 0.2
/datum/reagent/medicine/salbutamol/on_mob_life(mob/living/M)
- M.adjustOxyLoss(-6*REM)
+ M.adjustOxyLoss(-6*REAGENTS_EFFECT_MULTIPLIER)
M.AdjustLoseBreath(-4)
..()
@@ -394,13 +393,13 @@
addiction_chance = 20
/datum/reagent/medicine/perfluorodecalin/on_mob_life(mob/living/carbon/human/M)
- M.adjustOxyLoss(-25*REM)
+ M.adjustOxyLoss(-25*REAGENTS_EFFECT_MULTIPLIER)
if(volume >= 4)
M.LoseBreath(6)
M.Silence(6)
if(prob(33))
- M.adjustBruteLoss(-1*REM)
- M.adjustFireLoss(-1*REM)
+ M.adjustBruteLoss(-1*REAGENTS_EFFECT_MULTIPLIER)
+ M.adjustFireLoss(-1*REAGENTS_EFFECT_MULTIPLIER)
..()
/datum/reagent/medicine/ephedrine
@@ -418,7 +417,7 @@
M.AdjustParalysis(-1)
M.AdjustStunned(-1)
M.AdjustWeakened(-1)
- M.adjustStaminaLoss(-1*REM)
+ M.adjustStaminaLoss(-1*REAGENTS_EFFECT_MULTIPLIER)
M.AdjustLoseBreath(-1, bound_lower = 5)
if(M.oxyloss > 75)
M.adjustOxyLoss(-1)
@@ -496,6 +495,13 @@
H.shock_stage = 0
..()
+/datum/reagent/medicine/oculine
+ name = "Oculine"
+ id = "oculine"
+ description = "Oculine is a saline eye medication with mydriatic and antibiotic effects."
+ reagent_state = LIQUID
+ color = "#C8A5DC"
+
/datum/reagent/medicine/oculine/on_mob_life(mob/living/M)
if(prob(80))
if(ishuman(M))
@@ -515,15 +521,6 @@
M.SetEarDeaf(0)
..()
-/datum/reagent/medicine/oculine
- name = "Oculine"
- id = "oculine"
- description = "Oculine is a saline eye medication with mydriatic and antibiotic effects."
- reagent_state = LIQUID
- color = "#C8A5DC"
- metabolization_rate = 0.4
- var/cycle_amount = 0
-
/datum/reagent/medicine/atropine
name = "Atropine"
id = "atropine"
@@ -540,11 +537,11 @@
M.emote("collapse")
M.AdjustLoseBreath(-5, bound_lower = 5)
if(M.oxyloss > 65)
- M.adjustOxyLoss(-10*REM)
+ M.adjustOxyLoss(-10*REAGENTS_EFFECT_MULTIPLIER)
if(M.health < -25)
M.adjustToxLoss(-1)
- M.adjustBruteLoss(-3*REM)
- M.adjustFireLoss(-3*REM)
+ M.adjustBruteLoss(-3*REAGENTS_EFFECT_MULTIPLIER)
+ M.adjustFireLoss(-3*REAGENTS_EFFECT_MULTIPLIER)
else if(M.health > -60)
M.adjustToxLoss(1)
M.reagents.remove_reagent("sarin", 20)
@@ -574,11 +571,11 @@
holder.remove_reagent("histamine", 15)
M.AdjustLoseBreath(-1, bound_lower = 3)
if(M.oxyloss > 35)
- M.adjustOxyLoss(-10*REM)
+ M.adjustOxyLoss(-10*REAGENTS_EFFECT_MULTIPLIER)
if(M.health < -10 && M.health > -65)
- M.adjustToxLoss(-1*REM)
- M.adjustBruteLoss(-1*REM)
- M.adjustFireLoss(-1*REM)
+ M.adjustToxLoss(-1*REAGENTS_EFFECT_MULTIPLIER)
+ M.adjustBruteLoss(-1*REAGENTS_EFFECT_MULTIPLIER)
+ M.adjustFireLoss(-1*REAGENTS_EFFECT_MULTIPLIER)
..()
/datum/reagent/medicine/epinephrine/overdose_process(mob/living/M, severity)
@@ -610,6 +607,12 @@
color = "#A0E85E"
metabolization_rate = 0.2
+/datum/reagent/medicine/strange_reagent/on_mob_life(mob/living/M)
+ if(prob(10))
+ M.adjustBruteLoss(2*REAGENTS_EFFECT_MULTIPLIER)
+ M.adjustToxLoss(2*REAGENTS_EFFECT_MULTIPLIER)
+ ..()
+
/datum/reagent/medicine/strange_reagent/reaction_mob(mob/living/M, method=TOUCH, volume)
if(isanimal(M))
if(method == TOUCH)
@@ -642,22 +645,22 @@
add_logs(M, M, "revived", object="strange reagent") //Yes, the logs say you revived yourself.
..()
-/datum/reagent/medicine/strange_reagent/on_mob_life(mob/living/M)
- if(prob(10))
- M.adjustBruteLoss(2*REM)
- M.adjustToxLoss(2*REM)
- ..()
-
-/datum/reagent/medicine/mannitol/on_mob_life(mob/living/M)
- M.adjustBrainLoss(-3)
- ..()
-
/datum/reagent/medicine/mannitol
name = "Mannitol"
id = "mannitol"
description = "Mannitol is a sugar alcohol that can help alleviate cranial swelling."
color = "#D1D1F1"
+/datum/reagent/medicine/mannitol/on_mob_life(mob/living/M)
+ M.adjustBrainLoss(-3)
+ ..()
+
+/datum/reagent/medicine/mutadone
+ name = "Mutadone"
+ id = "mutadone"
+ description = "Mutadone is an experimental bromide that can cure genetic abnomalities."
+ color = "#5096C8"
+
/datum/reagent/medicine/mutadone/on_mob_life(mob/living/carbon/human/M)
M.SetJitter(0)
var/needs_update = M.mutations.len > 0 || M.disabilities > 0
@@ -676,12 +679,6 @@
H.update_mutations()
..()
-/datum/reagent/medicine/mutadone
- name = "Mutadone"
- id = "mutadone"
- description = "Mutadone is an experimental bromide that can cure genetic abnomalities."
- color = "#5096C8"
-
/datum/reagent/medicine/antihol
name = "Antihol"
id = "antihol"
@@ -701,14 +698,13 @@
id = "stimulants"
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
/datum/reagent/medicine/stimulants/on_mob_life(mob/living/M)
if(volume > 5)
- M.adjustOxyLoss(-5*REM)
- M.adjustToxLoss(-5*REM)
- M.adjustBruteLoss(-10*REM)
- M.adjustFireLoss(-10*REM)
+ M.adjustOxyLoss(-5*REAGENTS_EFFECT_MULTIPLIER)
+ M.adjustToxLoss(-5*REAGENTS_EFFECT_MULTIPLIER)
+ M.adjustBruteLoss(-10*REAGENTS_EFFECT_MULTIPLIER)
+ M.adjustFireLoss(-10*REAGENTS_EFFECT_MULTIPLIER)
M.setStaminaLoss(0)
M.SetSlowed(0)
M.AdjustDizzy(-10)
@@ -740,14 +736,14 @@
/datum/reagent/medicine/stimulative_agent/on_mob_life(mob/living/M)
M.status_flags |= GOTTAGOFAST
if(M.health < 50 && M.health > 0)
- M.adjustOxyLoss(-1*REM)
- M.adjustToxLoss(-1*REM)
- M.adjustBruteLoss(-1*REM)
- M.adjustFireLoss(-1*REM)
+ M.adjustOxyLoss(-1*REAGENTS_EFFECT_MULTIPLIER)
+ M.adjustToxLoss(-1*REAGENTS_EFFECT_MULTIPLIER)
+ M.adjustBruteLoss(-1*REAGENTS_EFFECT_MULTIPLIER)
+ M.adjustFireLoss(-1*REAGENTS_EFFECT_MULTIPLIER)
M.AdjustParalysis(-3)
M.AdjustStunned(-3)
M.AdjustWeakened(-3)
- M.adjustStaminaLoss(-5*REM)
+ M.adjustStaminaLoss(-5*REAGENTS_EFFECT_MULTIPLIER)
..()
/datum/reagent/medicine/stimulative_agent/on_mob_delete(mob/living/M)
@@ -756,8 +752,8 @@
/datum/reagent/medicine/stimulative_agent/overdose_process(mob/living/M, severity)
if(prob(33))
- M.adjustStaminaLoss(2.5*REM)
- M.adjustToxLoss(1*REM)
+ M.adjustStaminaLoss(2.5*REAGENTS_EFFECT_MULTIPLIER)
+ M.adjustToxLoss(1*REAGENTS_EFFECT_MULTIPLIER)
M.AdjustLoseBreath(1)
/datum/reagent/medicine/insulin
@@ -771,7 +767,6 @@
M.reagents.remove_reagent("sugar", 5)
..()
-
/datum/reagent/medicine/simethicone
name = "Simethicone"
id = "simethicone"
@@ -843,72 +838,6 @@
M.Drowsy(20)
..()
-//virus-specific symptom reagents
-
-/datum/reagent/medicine/synaphydramine
- name = "Diphen-Synaptizine"
- id = "synaphydramine"
- description = "Reduces drowsiness and hallucinations while also purging histamine from the body."
- color = "#EC536D" // rgb: 236, 83, 109
-
-/datum/reagent/medicine/synaphydramine/on_mob_life(mob/living/M)
- M.AdjustDrowsy(-5)
- if(holder.has_reagent("lsd"))
- holder.remove_reagent("lsd", 5)
- if(holder.has_reagent("histamine"))
- holder.remove_reagent("histamine", 5)
- M.AdjustHallucinate(-10)
- if(prob(30))
- M.adjustToxLoss(1)
- ..()
-
-
-//////////////////////////////
-// Synth-Meds //
-//////////////////////////////
-
-//Degreaser: Mild Purgative / Lube Remover
-/datum/reagent/medicine/degreaser
- name = "Degreaser"
- id = "degreaser"
- description = "An industrial degreaser which can be used to clean residual build-up from machinery and surfaces."
- reagent_state = LIQUID
- color = "#CC7A00"
- process_flags = SYNTHETIC
-
-/datum/reagent/medicine/degreaser/reaction_turf(turf/simulated/T, volume)
- if(volume >= 1 && istype(T))
- if(T.wet)
- T.MakeDry(TURF_WET_LUBE)
-
-/datum/reagent/medicine/degreaser/on_mob_life(mob/living/M)
- if(prob(50)) //Same effects as coffee, to help purge ill effects like paralysis
- M.AdjustParalysis(-1)
- M.AdjustStunned(-1)
- M.AdjustWeakened(-1)
- M.AdjustConfused(-5)
- for(var/datum/reagent/R in M.reagents.reagent_list)
- if(R != src)
- if(R.id == "ultralube" || R.id == "lube")
- //Flushes lube and ultra-lube even faster than other chems
- M.reagents.remove_reagent(R.id, 5)
- else
- M.reagents.remove_reagent(R.id,1)
- ..()
-
-//Liquid Solder: Mannitol
-/datum/reagent/medicine/liquid_solder
- name = "Liquid Solder"
- id = "liquid_solder"
- description = "A solution formulated to clean and repair damaged connections in posibrains while in use."
- reagent_state = LIQUID
- color = "#D7B395"
- process_flags = SYNTHETIC
-
-/datum/reagent/medicine/liquid_solder/on_mob_life(mob/living/M)
- M.adjustBrainLoss(-3)
- ..()
-
/datum/reagent/medicine/syndicate_nanites //Used exclusively by Syndicate medical cyborgs
name = "Restorative Nanites"
id = "syndicate_nanites"
@@ -917,15 +846,14 @@
color = "#555555"
/datum/reagent/medicine/syndicate_nanites/on_mob_life(mob/living/M)
- M.adjustBruteLoss(-5*REM) //A ton of healing - this is a 50 telecrystal investment.
- M.adjustFireLoss(-5*REM)
- M.adjustOxyLoss(-15*REM)
- M.adjustToxLoss(-5*REM)
- M.adjustBrainLoss(-15*REM)
- M.adjustCloneLoss(-3*REM)
+ M.adjustBruteLoss(-5*REAGENTS_EFFECT_MULTIPLIER) //A ton of healing - this is a 50 telecrystal investment.
+ M.adjustFireLoss(-5*REAGENTS_EFFECT_MULTIPLIER)
+ M.adjustOxyLoss(-15*REAGENTS_EFFECT_MULTIPLIER)
+ M.adjustToxLoss(-5*REAGENTS_EFFECT_MULTIPLIER)
+ M.adjustBrainLoss(-15*REAGENTS_EFFECT_MULTIPLIER)
+ M.adjustCloneLoss(-3*REAGENTS_EFFECT_MULTIPLIER)
..()
-
/datum/reagent/medicine/omnizine_diluted
name = "Diluted Omnizine"
id = "weak_omnizine"
@@ -936,10 +864,10 @@
metabolization_rate = 0.1
/datum/reagent/medicine/omnizine_diluted/on_mob_life(mob/living/M)
- M.adjustToxLoss(-0.5*REM)
- M.adjustOxyLoss(-0.5*REM)
- M.adjustBruteLoss(-0.5*REM)
- M.adjustFireLoss(-0.5*REM)
+ M.adjustToxLoss(-0.5*REAGENTS_EFFECT_MULTIPLIER)
+ M.adjustOxyLoss(-0.5*REAGENTS_EFFECT_MULTIPLIER)
+ M.adjustBruteLoss(-0.5*REAGENTS_EFFECT_MULTIPLIER)
+ M.adjustFireLoss(-0.5*REAGENTS_EFFECT_MULTIPLIER)
..()
/datum/reagent/medicine/omnizine_diluted/overdose_process(mob/living/M, severity)
@@ -974,4 +902,69 @@
else if(effect <= 8)
M.visible_message("[M] stumbles and staggers.")
M.Dizzy(5)
- M.Weaken(3)
\ No newline at end of file
+ M.Weaken(3)
+
+//virus-specific symptom reagents
+
+/datum/reagent/medicine/synaphydramine
+ name = "Diphen-Synaptizine"
+ id = "synaphydramine"
+ description = "Reduces drowsiness and hallucinations while also purging histamine from the body."
+ color = "#EC536D" // rgb: 236, 83, 109
+
+/datum/reagent/medicine/synaphydramine/on_mob_life(mob/living/M)
+ M.AdjustDrowsy(-5)
+ if(holder.has_reagent("lsd"))
+ holder.remove_reagent("lsd", 5)
+ if(holder.has_reagent("histamine"))
+ holder.remove_reagent("histamine", 5)
+ M.AdjustHallucinate(-10)
+ if(prob(30))
+ M.adjustToxLoss(1)
+ ..()
+
+//////////////////////////////
+// Synth-Meds //
+//////////////////////////////
+
+//Degreaser: Mild Purgative / Lube Remover
+/datum/reagent/medicine/degreaser
+ name = "Degreaser"
+ id = "degreaser"
+ description = "An industrial degreaser which can be used to clean residual build-up from machinery and surfaces."
+ reagent_state = LIQUID
+ color = "#CC7A00"
+ process_flags = SYNTHETIC
+
+/datum/reagent/medicine/degreaser/on_mob_life(mob/living/M)
+ if(prob(50)) //Same effects as coffee, to help purge ill effects like paralysis
+ M.AdjustParalysis(-1)
+ M.AdjustStunned(-1)
+ M.AdjustWeakened(-1)
+ M.AdjustConfused(-5)
+ for(var/datum/reagent/R in M.reagents.reagent_list)
+ if(R != src)
+ if(R.id == "ultralube" || R.id == "lube")
+ //Flushes lube and ultra-lube even faster than other chems
+ M.reagents.remove_reagent(R.id, 5)
+ else
+ M.reagents.remove_reagent(R.id,1)
+ ..()
+
+/datum/reagent/medicine/degreaser/reaction_turf(turf/simulated/T, volume)
+ if(volume >= 1 && istype(T))
+ if(T.wet)
+ T.MakeDry(TURF_WET_LUBE)
+
+//Liquid Solder: Mannitol
+/datum/reagent/medicine/liquid_solder
+ name = "Liquid Solder"
+ id = "liquid_solder"
+ description = "A solution formulated to clean and repair damaged connections in posibrains while in use."
+ reagent_state = LIQUID
+ color = "#D7B395"
+ process_flags = SYNTHETIC
+
+/datum/reagent/medicine/liquid_solder/on_mob_life(mob/living/M)
+ M.adjustBrainLoss(-3)
+ ..()
\ No newline at end of file
diff --git a/code/modules/reagents/chemistry/reagents/misc.dm b/code/modules/reagents/chemistry/reagents/misc.dm
index aa8e7b93f6d..bb386d0215c 100644
--- a/code/modules/reagents/chemistry/reagents/misc.dm
+++ b/code/modules/reagents/chemistry/reagents/misc.dm
@@ -152,7 +152,6 @@
H.vessel.add_reagent("blood", 0.8)
..()
-
//foam
/datum/reagent/fluorosurfactant
name = "Fluorosurfactant"
@@ -383,9 +382,6 @@
reagent_state = LIQUID
color = "#FF83A5"
-/datum/reagent/love/reaction_mob(mob/living/M, method=TOUCH, volume)
- to_chat(M, "You feel loved!")
-
/datum/reagent/love/on_mob_life(mob/living/M)
if(M.a_intent == I_HARM)
M.a_intent = I_HELP
@@ -405,6 +401,9 @@
break
..()
+/datum/reagent/love/reaction_mob(mob/living/M, method=TOUCH, volume)
+ to_chat(M, "You feel loved!")
+
/datum/reagent/royal_bee_jelly
name = "royal bee jelly"
id = "royal_bee_jelly"
diff --git a/code/modules/reagents/chemistry/reagents/paradise_pop.dm b/code/modules/reagents/chemistry/reagents/paradise_pop.dm
index 7a7085a5e5f..17fdc2cb444 100644
--- a/code/modules/reagents/chemistry/reagents/paradise_pop.dm
+++ b/code/modules/reagents/chemistry/reagents/paradise_pop.dm
@@ -9,7 +9,7 @@
//Paradise Punch: No effect, aside from maybe messages about how tasty it is or something
-/datum/reagent/paradise_punch
+/datum/reagent/consumable/drink/paradise_punch
name = "Paradise Punch"
id = "paradise_punch"
description = "Tastes just how you'd think Paradise would if you could bottle it."
@@ -17,14 +17,14 @@
color = "#cc0044"
//Apple-pocalypse: Low chance to cause a goonchem vortex that pulls things within a very small radius (2 tiles?) towards the drinker
-/datum/reagent/apple_pocalypse
+/datum/reagent/consumable/drink/apple_pocalypse
name = "Apple-pocalypse"
id = "apple-pocalypse"
description = "If doomsday came in fruit form, it'd probably be apples."
reagent_state = LIQUID
color = "#44FF44"
-/datum/reagent/apple_pocalypse/on_mob_life(mob/living/M)
+/datum/reagent/consumable/drink/apple_pocalypse/on_mob_life(mob/living/M)
if(prob(1))
var/turf/simulated/T = get_turf(M)
goonchem_vortex(T, 0, 2, 1)
@@ -32,61 +32,61 @@
..()
//Berry Banned: This one is tasty and safe to drink, might have a low chance of healing a random damage type?
-/datum/reagent/berry_banned
+/datum/reagent/consumable/drink/berry_banned
name = "Berry Banned"
id = "berry_banned"
description = "Reason for ban: Excessive Flavor."
reagent_state = LIQUID
color = "#FF44FF"
-/datum/reagent/berry_banned/on_mob_life(mob/living/M)
+/datum/reagent/consumable/drink/berry_banned/on_mob_life(mob/living/M)
if(prob(10))
var/heal_type = rand(0, 5) //still prefer the string version
switch(heal_type)
if(0)
- M.adjustBruteLoss(-0.5*REM)
+ M.adjustBruteLoss(-0.5*REAGENTS_EFFECT_MULTIPLIER)
if(1)
- M.adjustFireLoss(-0.5*REM)
+ M.adjustFireLoss(-0.5*REAGENTS_EFFECT_MULTIPLIER)
if(2)
- M.adjustToxLoss(-0.5*REM)
+ M.adjustToxLoss(-0.5*REAGENTS_EFFECT_MULTIPLIER)
if(3)
- M.adjustOxyLoss(-0.5*REM)
+ M.adjustOxyLoss(-0.5*REAGENTS_EFFECT_MULTIPLIER)
if(4)
- M.adjustCloneLoss(-0.5*REM)
+ M.adjustCloneLoss(-0.5*REAGENTS_EFFECT_MULTIPLIER)
if(5)
- M.adjustBrainLoss(-1*REM)
+ M.adjustBrainLoss(-1*REAGENTS_EFFECT_MULTIPLIER)
to_chat(M, "You feel slightly rejuvinated!")
..()
//Berry Banned 2: This one is tasty and toxic. Deals toxin damage and MAYBE plays the "BWOINK!" sound if it kills someone?
-/datum/reagent/berry_banned2
+/datum/reagent/consumable/drink/berry_banned2
name = "Berry Banned"
id = "berry_banned2"
description = "Reason for ban: Excessive Flavor."
reagent_state = LIQUID
color = "#FF44FF"
-/datum/reagent/berry_banned2/on_mob_life(mob/living/M)
+/datum/reagent/consumable/drink/berry_banned2/on_mob_life(mob/living/M)
if(prob(50))
- M.adjustToxLoss(2*REM) //double strength of poison berry juice alone, because it's concentrated (this is equal to the damage of normal toxin, less often)
+ M.adjustToxLoss(2*REAGENTS_EFFECT_MULTIPLIER) //double strength of poison berry juice alone, because it's concentrated (this is equal to the damage of normal toxin, less often)
if(prob(10))
to_chat(M, "You feel slightly rejuvinated!") //meta this!
..()
-/datum/reagent/berry_banned2/on_mob_death(mob/living/M)
+/datum/reagent/consumable/drink/berry_banned2/on_mob_death(mob/living/M)
M << sound('sound/effects/adminhelp.ogg',0,1,0,25)
to_chat(M, "PM from-Administrator: BWOINK!")
..()
//Blackeye Brew: Chance to make the drinker say greytider-themed things like "I thought clown was valid!"
-/datum/reagent/blackeye_brew
+/datum/reagent/consumable/drink/blackeye_brew
name = "Blackeye Brew"
id = "blackeye_brew"
description = "Creamy, smooth flavor, just like the bald heads of the masses. Supposedly aged for 30 years."
reagent_state = LIQUID
color = "#4d2600"
-/datum/reagent/blackeye_brew/on_mob_life(mob/living/M)
+/datum/reagent/consumable/drink/blackeye_brew/on_mob_life(mob/living/M)
if(prob(25))
var/list/tider_talk = list("CLOWN IS VALID, RIGHT?",
"SHITMINS! SHITMINS! SHITMINS!",
@@ -102,14 +102,14 @@
..()
//Grape Granade: causes the drinker to sometimes burp, has a low chance to cause a goonchem vortex that pushes things within a very small radius (1-2 tiles) away from the drinker
-/datum/reagent/grape_granade
+/datum/reagent/consumable/drink/grape_granade
name = "Grape Granade"
id = "grape_granade"
description = "Exploding with grape flavor and a favorite among ERT members system-wide."
reagent_state = LIQUID
color = "#9933ff"
-/datum/reagent/grape_granade/on_mob_life(mob/living/M)
+/datum/reagent/consumable/drink/grape_granade/on_mob_life(mob/living/M)
if(prob(1))
var/turf/simulated/T = get_turf(M)
goonchem_vortex(T, 1, 1, 2)
@@ -120,14 +120,14 @@
..()
//Meteor Malt: Sometimes causes screen shakes for the drinker like a meteor impact, low chance to add 1-5 units of a random mineral reagent to the drinker's blood (iron, copper, silver, gold, uranium, carbon, etc)
-/datum/reagent/meteor_malt
+/datum/reagent/consumable/drink/meteor_malt
name = "Meteor Malt"
id = "meteor_malt"
description = "Soft drinks have been detected on collision course with your tastebuds."
reagent_state = LIQUID
color = "#cc9900"
-/datum/reagent/meteor_malt/on_mob_life(mob/living/M)
+/datum/reagent/consumable/drink/meteor_malt/on_mob_life(mob/living/M)
if(prob(25))
M << sound('sound/effects/meteorimpact.ogg',0,1,0,25)
shake_camera(M, 3, 1)
diff --git a/code/modules/reagents/chemistry/reagents/pyrotechnic.dm b/code/modules/reagents/chemistry/reagents/pyrotechnic.dm
index ef376910699..a92982a8aaf 100644
--- a/code/modules/reagents/chemistry/reagents/pyrotechnic.dm
+++ b/code/modules/reagents/chemistry/reagents/pyrotechnic.dm
@@ -22,7 +22,7 @@
color = "#7A2B94"
/datum/reagent/plasma/on_mob_life(mob/living/M)
- M.adjustToxLoss(1*REM)
+ M.adjustToxLoss(1*REAGENTS_EFFECT_MULTIPLIER)
if(holder.has_reagent("epinephrine"))
holder.remove_reagent("epinephrine", 2)
if(iscarbon(M))
@@ -171,16 +171,16 @@
color = "#FF9999"
process_flags = ORGANIC | SYNTHETIC
-/datum/reagent/phlogiston/reaction_mob(mob/living/M, method=TOUCH, volume)
- M.IgniteMob()
- ..()
-
/datum/reagent/phlogiston/on_mob_life(mob/living/M)
M.adjust_fire_stacks(1)
var/burndmg = max(0.3*M.fire_stacks, 0.3)
M.adjustFireLoss(burndmg)
..()
+/datum/reagent/phlogiston/reaction_mob(mob/living/M, method=TOUCH, volume)
+ M.IgniteMob()
+ ..()
+
/datum/reagent/napalm
name = "Napalm"
id = "napalm"
diff --git a/code/modules/reagents/chemistry/reagents/toxins.dm b/code/modules/reagents/chemistry/reagents/toxins.dm
index 5870e4fad00..272d5df3130 100644
--- a/code/modules/reagents/chemistry/reagents/toxins.dm
+++ b/code/modules/reagents/chemistry/reagents/toxins.dm
@@ -54,9 +54,9 @@
/datum/reagent/slimejelly/on_mob_life(mob/living/M)
if(prob(10))
to_chat(M, "Your insides are burning!")
- M.adjustToxLoss(rand(20,60)*REM)
+ M.adjustToxLoss(rand(20,60)*REAGENTS_EFFECT_MULTIPLIER)
else if(prob(40))
- M.adjustBruteLoss(-5*REM)
+ M.adjustBruteLoss(-5*REAGENTS_EFFECT_MULTIPLIER)
..()
/datum/reagent/slimetoxin
@@ -127,7 +127,7 @@
/datum/reagent/fluorine/on_mob_life(mob/living/M)
M.adjustFireLoss(1)
- M.adjustToxLoss(1*REM)
+ M.adjustToxLoss(1*REAGENTS_EFFECT_MULTIPLIER)
..()
/datum/reagent/radium
@@ -136,7 +136,6 @@
description = "Radium is an alkaline earth metal. It is extremely radioactive."
reagent_state = SOLID
color = "#C7C7C7" // rgb: 199,199,199
- metabolization_rate = 0.4
penetrates_skin = 1
/datum/reagent/radium/on_mob_life(mob/living/M)
@@ -169,7 +168,7 @@
/datum/reagent/mutagen/on_mob_life(mob/living/M)
if(!M.dna)
return //No robots, AIs, aliens, Ians or other mobs should be affected by this.
- M.apply_effect(2*REM, IRRADIATE, negate_armor = 1)
+ M.apply_effect(2*REAGENTS_EFFECT_MULTIPLIER, IRRADIATE, negate_armor = 1)
if(prob(4))
randmutb(M)
..()
@@ -283,7 +282,7 @@
color = "#003333" // rgb: 0, 51, 51
/datum/reagent/carpotoxin/on_mob_life(mob/living/M)
- M.adjustToxLoss(2*REM)
+ M.adjustToxLoss(2*REAGENTS_EFFECT_MULTIPLIER)
..()
/datum/reagent/staminatoxin
@@ -295,7 +294,7 @@
data = 13
/datum/reagent/staminatoxin/on_mob_life(mob/living/M)
- M.adjustStaminaLoss(REM * data)
+ M.adjustStaminaLoss(REAGENTS_EFFECT_MULTIPLIER * data)
data = max(data - 1, 3)
..()
@@ -328,10 +327,9 @@
M.AdjustSleeping(1)
if(51 to INFINITY)
M.AdjustSleeping(1)
- M.adjustToxLoss((current_cycle - 50)*REM)
+ M.adjustToxLoss((current_cycle - 50)*REAGENTS_EFFECT_MULTIPLIER)
..()
-///////////////////////////////////////////////////////////////////////////////////////////////////////////////
/datum/reagent/polonium
name = "Polonium"
id = "polonium"
@@ -345,7 +343,6 @@
M.apply_effect(8, IRRADIATE, negate_armor = 1)
..()
-
/datum/reagent/histamine
name = "Histamine"
id = "histamine"
@@ -428,7 +425,7 @@
penetrates_skin = 1
/datum/reagent/formaldehyde/on_mob_life(mob/living/M)
- M.adjustToxLoss(1*REM)
+ M.adjustToxLoss(1*REAGENTS_EFFECT_MULTIPLIER)
if(prob(10))
M.reagents.add_reagent("histamine",rand(5,15))
..()
@@ -511,7 +508,7 @@
penetrates_skin = 1
/datum/reagent/cyanide/on_mob_life(mob/living/M)
- M.adjustToxLoss(1.5*REM)
+ M.adjustToxLoss(1.5*REAGENTS_EFFECT_MULTIPLIER)
if(prob(5))
M.emote("drool")
if(prob(10))
@@ -558,11 +555,6 @@
M.emote("scream")
..()
-/datum/reagent/facid/on_mob_life(mob/living/M)
- M.adjustToxLoss(1*REM)
- M.adjustFireLoss(1)
- ..()
-
/datum/reagent/facid
name = "Fluorosulfuric Acid"
id = "facid"
@@ -571,6 +563,11 @@
color = "#4141D2"
process_flags = ORGANIC | SYNTHETIC
+/datum/reagent/facid/on_mob_life(mob/living/M)
+ M.adjustToxLoss(1*REAGENTS_EFFECT_MULTIPLIER)
+ M.adjustFireLoss(1)
+ ..()
+
/datum/reagent/facid/reaction_mob(mob/living/M, method=TOUCH, volume)
if(method == TOUCH || method == INGEST)
if(ishuman(M))
@@ -627,7 +624,6 @@
description = "A highly potent cardiac poison - can kill within minutes."
reagent_state = LIQUID
color = "#7F10C0"
- metabolization_rate = 0.4
/datum/reagent/initropidril/on_mob_life(mob/living/M)
if(prob(33))
@@ -907,8 +903,7 @@
M.adjustToxLoss(2)
..()
- // Clear off wallrot fungi
-/datum/reagent/atrazine/reaction_turf(turf/simulated/wall/W, volume)
+/datum/reagent/atrazine/reaction_turf(turf/simulated/wall/W, volume) // Clear off wallrot fungi
if(istype(W) && W.rotting)
W.rotting = 0
for(var/obj/effect/overlay/O in W)
@@ -1033,6 +1028,10 @@
color = "#993333"
process_flags = ORGANIC | SYNTHETIC
+/datum/reagent/ants/on_mob_life(mob/living/M)
+ M.adjustBruteLoss(2)
+ ..()
+
/datum/reagent/ants/reaction_mob(mob/living/M, method=TOUCH, volume) //NOT THE ANTS
if(iscarbon(M))
if(method == TOUCH || method==INGEST)
@@ -1040,11 +1039,6 @@
M.emote("scream")
M.adjustBruteLoss(4)
-
-/datum/reagent/ants/on_mob_life(mob/living/M)
- M.adjustBruteLoss(2)
- ..()
-
/datum/reagent/teslium //Teslium. Causes periodic shocks, and makes shocks against the target much more effective.
name = "Teslium"
id = "teslium"