diff --git a/code/__defines/chemistry.dm b/code/__defines/chemistry.dm
index 291fb358069..cd81b407226 100644
--- a/code/__defines/chemistry.dm
+++ b/code/__defines/chemistry.dm
@@ -1,5 +1,3 @@
-
-
#define REM 0.2 // Means 'Reagent Effect Multiplier'. This is how many units of reagent are consumed per tick
#define CHEM_TOUCH 1
@@ -19,12 +17,12 @@
// Some on_mob_life() procs check for alien races.
#define IS_DIONA 1
#define IS_VOX 2
-#define IS_SKRELL 3
-#define IS_UNATHI 4
-#define IS_TAJARA 5
-#define IS_XENOS 6
-#define IS_MACHINE 7
-#define IS_VAURCA 8
+#define IS_SKRELL 4
+#define IS_UNATHI 8
+#define IS_TAJARA 16
+#define IS_XENOS 32
+#define IS_MACHINE 64
+#define IS_VAURCA 128
#define CE_STABLE "stable" // Inaprovaline
#define CE_ANTIBIOTIC "antibiotic" // Spaceacilin
diff --git a/code/modules/reagents/Chemistry-Reagents.dm b/code/modules/reagents/Chemistry-Reagents.dm
index 2b3cea60c3d..4faf3b449a9 100644
--- a/code/modules/reagents/Chemistry-Reagents.dm
+++ b/code/modules/reagents/Chemistry-Reagents.dm
@@ -34,6 +34,7 @@
var/glass_center_of_mass = null
var/color = "#000000"
var/color_weight = 1
+ var/unaffected_species = IS_DIONA | IS_MACHINE // Species that aren't affected by this reagent. Does not prevent affect_touch.
/datum/reagent/proc/remove_self(var/amount) // Shortcut
if (!holder)
@@ -57,11 +58,13 @@
return
if(!affects_dead && M.stat == DEAD)
return
+ if(alien & unaffected_species && location != CHEM_TOUCH)
+ return
if(!dose && volume)//If dose is currently zero, we do the first effect
initial_effect(M, alien)
- if(overdose && (volume > overdose) && (location != CHEM_TOUCH))
+ if(overdose && (dose > overdose) && (location != CHEM_TOUCH))
overdose(M, alien)
var/removed = metabolism
if(ingest_met && (location == CHEM_INGEST))
@@ -81,8 +84,6 @@
if(CHEM_TOUCH)
affect_touch(M, alien, removed)
remove_self(removed)
- return
-
//Initial effect is called once when the reagent first starts affecting a mob.
/datum/reagent/proc/initial_effect(var/mob/living/carbon/M, var/alien)
@@ -93,29 +94,25 @@
/datum/reagent/proc/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
affect_blood(M, alien, removed * 0.5)
- return
/datum/reagent/proc/affect_touch(var/mob/living/carbon/M, var/alien, var/removed)
return
/datum/reagent/proc/overdose(var/mob/living/carbon/M, var/alien) // Overdose effect. Doesn't happen instantly.
M.adjustToxLoss(REM)
- return
/datum/reagent/proc/initialize_data(var/newdata) // Called when the reagent is created.
if(!isnull(newdata))
data = newdata
- return
/datum/reagent/proc/mix_data(var/newdata, var/newamount) // You have a reagent with data, and new reagent with its own data get added, how do you deal with that?
return
/datum/reagent/proc/get_data() // Just in case you have a reagent that handles data differently.
- if(data && istype(data, /list))
+ if(islist(data))
return data.Copy()
else if(data)
return data
- return null
/datum/reagent/Destroy() // This should only be called by the holder, so it's already handled clearing its references
. = ..()
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm
index 17122842271..a86dfc5ccb8 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Dispenser.dm
@@ -49,7 +49,7 @@
/datum/reagent/ammonia/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
if(alien == IS_VOX)
M.adjustOxyLoss(-removed * 10)
- else if(alien != IS_DIONA)
+ else
M.adjustToxLoss(removed * 1.5)
/datum/reagent/carbon
@@ -63,8 +63,6 @@
taste_mult = 1.5
/datum/reagent/carbon/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
- if(alien == IS_DIONA)
- return
if(M.ingested && M.ingested.reagent_list.len > 1) // Need to have at least 2 reagents - cabon and something to remove
var/effect = 1 / (M.ingested.reagent_list.len - 1)
for(var/datum/reagent/R in M.ingested.reagent_list)
@@ -105,12 +103,19 @@
var/datum/modifier/caffeine_mod
var/caffeine = 0
+ unaffected_species = IS_MACHINE // Can act on dionae.
+
taste_description = "pure alcohol"
glass_icon_state = "glass_clear"
glass_name = "glass of ethanol"
glass_desc = "A well-known alcohol with a variety of applications."
+/datum/reagent/ethanol/Destroy()
+ if (caffeine_mod)
+ QDEL_NULL(caffeine_mod)
+ return ..()
+
/datum/reagent/ethanol/touch_mob(var/mob/living/L, var/amount)
if(istype(L) && strength > 40)
L.adjust_fire_stacks((amount / 10) * (strength / 100))
@@ -202,11 +207,8 @@
else
M.nutrition += nutriment_factor * removed
- switch (alien)
- if (IS_DIONA)
- return
- if (IS_UNATHI)
- ingest_met = initial(ingest_met)*3
+ if (alien == IS_UNATHI)
+ ingest_met = initial(ingest_met)*3
var/quantity = (strength / 100) * removed
M.intoxication += quantity
@@ -242,8 +244,7 @@
taste_description = "metal"
/datum/reagent/iron/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
- if(alien != IS_DIONA)
- M.add_chemical_effect(CE_BLOODRESTORE, 8 * removed)
+ M.add_chemical_effect(CE_BLOODRESTORE, 8 * removed)
/datum/reagent/lithium
name = "Lithium"
@@ -254,11 +255,10 @@
taste_description = "metal"
/datum/reagent/lithium/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
- if(alien != IS_DIONA)
- if(M.canmove && !M.restrained() && !(istype(M.loc, /turf/space)))
- step(M, pick(cardinal))
- if(prob(5))
- M.emote(pick("twitch", "drool", "moan"))
+ if(M.canmove && !M.restrained() && !(istype(M.loc, /turf/space)))
+ step(M, pick(cardinal))
+ if(prob(5))
+ M.emote(pick("twitch", "drool", "moan"))
/datum/reagent/mercury
name = "Mercury"
@@ -270,13 +270,12 @@
taste_mult = 0 //mercury apparently is tasteless
/datum/reagent/mercury/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
- if(alien != IS_DIONA)
- if(M.canmove && !M.restrained() && !(istype(M.loc, /turf/space)))
- step(M, pick(cardinal))
- if(prob(5))
- M.emote(pick("twitch", "drool", "moan"))
+ if(M.canmove && !M.restrained() && !(istype(M.loc, /turf/space)))
+ step(M, pick(cardinal))
+ if(prob(5))
+ M.emote(pick("twitch", "drool", "moan"))
- M.adjustBrainLoss(removed)
+ M.adjustBrainLoss(removed)
/datum/reagent/phosphorus
name = "Phosphorus"
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm
index 84d239fb0cd..73a6ff4074e 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm
@@ -495,8 +495,6 @@
taste_mult = 1.5
/datum/reagent/frostoil/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
- if(alien == IS_DIONA)
- return
M.bodytemperature = max(M.bodytemperature - 10 * TEMPERATURE_DAMAGE_COEFFICIENT, 0)
if(prob(1))
M.emote("shiver")
@@ -518,13 +516,9 @@
var/slime_temp_adj = 10
/datum/reagent/capsaicin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
- if(alien == IS_DIONA)
- return
M.adjustToxLoss(0.5 * removed)
/datum/reagent/capsaicin/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
- if(alien == IS_DIONA || alien == IS_MACHINE)
- return
if(ishuman(M))
var/mob/living/carbon/human/H = M
if(H.species && (H.species.flags & (NO_PAIN)))
@@ -652,6 +646,11 @@
var/caffeine = 0 // strength of stimulant effect, since so many drinks use it
var/datum/modifier/modifier = null
+/datum/reagent/drink/Destroy()
+ if (modifier)
+ QDEL_NULL(modifier)
+ return ..()
+
/datum/reagent/drink/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
M.adjustToxLoss(removed) // Probably not a good idea; not very deadly though
return
@@ -744,8 +743,6 @@
/datum/reagent/drink/limejuice/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
..()
- if(alien == IS_DIONA)
- return
M.adjustToxLoss(-0.5 * removed)
/datum/reagent/drink/orangejuice
@@ -761,8 +758,6 @@
/datum/reagent/drink/orangejuice/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
..()
- if(alien == IS_DIONA)
- return
M.adjustOxyLoss(-2 * removed)
/datum/reagent/toxin/poisonberryjuice // It has more in common with toxins than drinks... but it's a juice
@@ -802,8 +797,6 @@
/datum/reagent/drink/tomatojuice/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
..()
- if(alien == IS_DIONA)
- return
M.heal_organ_damage(0, 0.5 * removed)
/datum/reagent/drink/watermelonjuice
@@ -832,8 +825,6 @@
/datum/reagent/drink/milk/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
..()
- if(alien == IS_DIONA)
- return
M.heal_organ_damage(0.5 * removed, 0)
holder.remove_reagent("capsaicin", 10 * removed)
@@ -876,8 +867,6 @@
/datum/reagent/drink/tea/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
..()
- if(alien == IS_DIONA)
- return
M.adjustToxLoss(-0.5 * removed)
/datum/reagent/drink/tea/icetea
@@ -914,8 +903,6 @@
/datum/reagent/drink/coffee/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
..()
- if(alien == IS_DIONA)
- return
if(adj_temp > 0)
holder.remove_reagent("frostoil", 10 * removed)
@@ -927,8 +914,6 @@
M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
/datum/reagent/drink/coffee/overdose(var/mob/living/carbon/M, var/alien)
- if(alien == IS_DIONA)
- return
M.make_jittery(5)
/datum/reagent/drink/coffee/icecoffee
@@ -1228,8 +1213,6 @@
/datum/reagent/drink/doctor_delight/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
..()
- if(alien == IS_DIONA)
- return
M.adjustOxyLoss(-4 * removed)
M.heal_organ_damage(2 * removed, 2 * removed)
M.adjustToxLoss(-2 * removed)
@@ -1268,8 +1251,6 @@
/datum/reagent/drink/hell_ramen/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
..()
- if(alien == IS_DIONA)
- return
M.bodytemperature += 10 * TEMPERATURE_DAMAGE_COEFFICIENT
/datum/reagent/drink/ice
@@ -1342,8 +1323,6 @@
/datum/reagent/ethanol/beer/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
..()
- if(alien == IS_DIONA)
- return
M.jitteriness = max(M.jitteriness - 3, 0)
/datum/reagent/ethanol/bitters
@@ -1413,8 +1392,6 @@
/datum/reagent/ethanol/deadrum/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
..()
- if(alien == IS_DIONA)
- return
M.dizziness +=5
/datum/reagent/ethanol/gin
@@ -1448,31 +1425,14 @@
overdose = 45
/datum/reagent/ethanol/coffee/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
- if(alien == IS_DIONA)
- return
..()
M.dizziness = max(0, M.dizziness - 5)
M.drowsyness = max(0, M.drowsyness - 3)
M.sleeping = max(0, M.sleeping - 2)
if(M.bodytemperature > 310)
M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
- if(alien == IS_TAJARA)
- M.adjustToxLoss(0.5 * removed)
- M.make_jittery(4) //extra sensitive to caffine
-
-/datum/reagent/ethanol/coffee/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
- if(alien == IS_TAJARA)
- M.adjustToxLoss(2 * removed)
- M.make_jittery(4)
- return
- ..()
/datum/reagent/ethanol/coffee/overdose(var/mob/living/carbon/M, var/alien)
- if(alien == IS_DIONA)
- return
- if(alien == IS_TAJARA)
- M.adjustToxLoss(4 * REM)
- M.apply_effect(3, STUTTER)
M.make_jittery(5)
/datum/reagent/ethanol/coffee/kahlua
@@ -1557,8 +1517,6 @@
/datum/reagent/ethanol/thirteenloko/affect_ingest(var/mob/living/carbon/M, var/alien, var/removed)
..()
- if(alien == IS_DIONA)
- return
M.drowsyness = max(0, M.drowsyness - 7)
if (M.bodytemperature > 310)
M.bodytemperature = max(310, M.bodytemperature - (5 * TEMPERATURE_DAMAGE_COEFFICIENT))
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm
index 90aad812764..1b15a665208 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Medicine.dm
@@ -13,11 +13,10 @@
var/datum/modifier/modifier
/datum/reagent/inaprovaline/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
- if(alien != IS_DIONA)
- M.add_chemical_effect(CE_STABLE)
- M.add_chemical_effect(CE_PAINKILLER, 25)
- if (!modifier)
- modifier = M.add_modifier(/datum/modifier/adrenaline, MODIFIER_REAGENT, src, _strength = 0.6, override = MODIFIER_OVERRIDE_STRENGTHEN)
+ M.add_chemical_effect(CE_STABLE)
+ M.add_chemical_effect(CE_PAINKILLER, 25)
+ if (!modifier)
+ modifier = M.add_modifier(/datum/modifier/adrenaline, MODIFIER_REAGENT, src, _strength = 0.6, override = MODIFIER_OVERRIDE_STRENGTHEN)
/datum/reagent/inaprovaline/Destroy()
QDEL_NULL(modifier)
@@ -36,11 +35,11 @@
taste_mult = 3
/datum/reagent/bicaridine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
- if(alien != IS_DIONA)
- M.heal_organ_damage(5 * removed, 0)
+ M.heal_organ_damage(5 * removed, 0)
/datum/reagent/bicaridine/overdose(var/mob/living/carbon/M, var/alien)
- if(alien != IS_DIONA && ishuman(M)) //Bicard overdose heals internal wounds
+ ..()//Bicard overdose heals internal wounds
+ if(ishuman(M))
var/healpower = 1
var/mob/living/carbon/human/H = M
for (var/a in H.organs)
@@ -51,7 +50,6 @@
healpower = W.heal_damage(healpower,1)
if (healpower <= 0)
return
- M.adjustBruteLoss(7) //but not without a price, of course
/datum/reagent/kelotane
name = "Kelotane"
@@ -64,12 +62,7 @@
taste_description = "bitterness"
/datum/reagent/kelotane/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
- if(alien != IS_DIONA)
- M.heal_organ_damage(0, 6 * removed)
-
-/datum/reagent/kelotane/overdose(var/mob/living/carbon/M, var/alien)
- if(alien != IS_DIONA)
- M.adjustFireLoss(8)
+ M.heal_organ_damage(0, 6 * removed)
/datum/reagent/dermaline
name = "Dermaline"
@@ -83,12 +76,7 @@
taste_mult = 1.5
/datum/reagent/dermaline/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
- if(alien != IS_DIONA)
- M.heal_organ_damage(0, 12 * removed)
-
-/datum/reagent/dermaline/overdose(var/mob/living/carbon/M, var/alien)
- if(alien != IS_DIONA)
- M.adjustFireLoss(15)
+ M.heal_organ_damage(0, 12 * removed)
/datum/reagent/dylovene
name = "Dylovene"
@@ -97,18 +85,13 @@
reagent_state = LIQUID
color = "#00A000"
scannable = 1
- overdose = REAGENTS_OVERDOSE
+
taste_description = "a roll of gauze"
/datum/reagent/dylovene/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
- if(alien != IS_DIONA)
- M.drowsyness = max(0, M.drowsyness - 6 * removed)
- M.hallucination = max(0, M.hallucination - 9 * removed)
- M.adjustToxLoss(-4 * removed)
-
-/datum/reagent/kelotane/overdose(var/mob/living/carbon/M, var/alien)
- if(alien != IS_DIONA)
- M.adjustToxLoss(6)
+ M.drowsyness = max(0, M.drowsyness - 6 * removed)
+ M.hallucination = max(0, M.hallucination - 9 * removed)
+ M.adjustToxLoss(-4 * removed)
/datum/reagent/dexalin
name = "Dexalin"
@@ -123,15 +106,11 @@
/datum/reagent/dexalin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
if(alien == IS_VOX)
M.adjustToxLoss(removed * 6)
- else if(alien != IS_DIONA)
+ else
M.adjustOxyLoss(-15 * removed)
holder.remove_reagent("lexorin", 2 * removed)
-/datum/reagent/dexalin/overdose(var/mob/living/carbon/M, var/alien)
- if(alien != IS_DIONA)
- M.adjustOxyLoss(20)
-
/datum/reagent/dexalinp
name = "Dexalin Plus"
id = "dexalinp"
@@ -145,7 +124,7 @@
/datum/reagent/dexalinp/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
if(alien == IS_VOX)
M.adjustToxLoss(removed * 9)
- else if(alien != IS_DIONA)
+ else
M.adjustOxyLoss(-300 * removed)
holder.remove_reagent("lexorin", 3 * removed)
@@ -157,19 +136,13 @@
reagent_state = LIQUID
color = "#8040FF"
scannable = 1
- overdose = REAGENTS_OVERDOSE
+
taste_description = "bitterness"
/datum/reagent/tricordrazine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
- if(alien != IS_DIONA)
- M.adjustOxyLoss(-6 * removed)
- M.heal_organ_damage(3 * removed, 3 * removed)
- M.adjustToxLoss(-3 * removed)
-
-/datum/reagent/tricordrazine/overdose(var/mob/living/carbon/M, var/alien)
- if(alien != IS_DIONA)
- M.adjustToxLoss(6)
- M.adjustOxyLoss(8)
+ M.adjustOxyLoss(-6 * removed)
+ M.heal_organ_damage(3 * removed, 3 * removed)
+ M.adjustToxLoss(-3 * removed)
/datum/reagent/cryoxadone
name = "Cryoxadone"
@@ -182,7 +155,7 @@
taste_description = "sludge"
/datum/reagent/cryoxadone/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
- if(M.bodytemperature < 170 && alien != IS_DIONA)
+ if(M.bodytemperature < 170)
M.adjustCloneLoss(-10 * removed)
M.adjustOxyLoss(-10 * removed)
M.heal_organ_damage(10 * removed, 10 * removed)
@@ -199,7 +172,7 @@
taste_description = "slime"
/datum/reagent/clonexadone/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
- if(M.bodytemperature < 170 && alien != IS_DIONA)
+ if(M.bodytemperature < 170)
M.adjustCloneLoss(-30 * removed)
M.adjustOxyLoss(-30 * removed)
M.heal_organ_damage(30 * removed, 30 * removed)
@@ -276,8 +249,6 @@
taste_description = "bitterness"
/datum/reagent/synaptizine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
- if(alien == IS_DIONA)
- return
M.drowsyness = max(M.drowsyness - 5, 0)
M.AdjustParalysis(-1)
M.AdjustStunned(-1)
@@ -306,8 +277,6 @@
taste_description = "bitterness"
/datum/reagent/alkysine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
- if(alien == IS_DIONA)
- return
M.adjustBrainLoss(-30 * removed)
M.add_chemical_effect(CE_PAINKILLER, 10)
@@ -383,8 +352,6 @@
taste_description = "acid"
/datum/reagent/hyperzine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
- if(alien == IS_DIONA)
- return
if(prob(5))
M.emote(pick("twitch", "blink_r", "shiver"))
M.add_chemical_effect(CE_SPEEDBOOST, 1)
@@ -412,9 +379,6 @@
taste_description = "bitterness"
/datum/reagent/ethylredoxrazine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
- if(alien == IS_DIONA)
- return
-
var/P = removed * ETHYL_REAGENT_POWER
var/DP = dose * ETHYL_REAGENT_POWER//tiny optimisation
@@ -555,8 +519,6 @@
taste_description = "sourness"
/datum/reagent/methylphenidate/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
- if(alien == IS_DIONA)
- return
if(volume <= 0.1 && data != -1)
data = -1
M << "You lose focus..."
@@ -575,8 +537,6 @@
data = 0
/datum/reagent/citalopram/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
- if(alien == IS_DIONA)
- return
if(volume <= 0.1 && data != -1)
data = -1
M << "Your mind feels a little less stable..."
@@ -596,8 +556,6 @@
taste_description = "bitterness"
/datum/reagent/paroxetine/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
- if(alien == IS_DIONA)
- return
if(volume <= 0.1 && data != -1)
data = -1
M << "Your mind feels much less stable..."
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm
index d01721543c5..45d63198138 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Other.dm
@@ -198,8 +198,6 @@
taste_description = "bitterness"
/datum/reagent/adrenaline/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
- if(alien == IS_DIONA)
- return
M.SetParalysis(0)
M.SetWeakened(0)
M.adjustToxLoss(rand(3)*removed)
diff --git a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm
index decaec1ba9f..7ce200abf34 100644
--- a/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm
+++ b/code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Toxins.dm
@@ -12,7 +12,7 @@
taste_mult = 1.2
/datum/reagent/toxin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
- if(strength && alien != IS_DIONA)
+ if(strength)
M.adjustToxLoss(strength * removed)
/datum/reagent/toxin/plasticide
@@ -169,8 +169,6 @@
/datum/reagent/toxin/zombiepowder/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
..()
- if(alien == IS_DIONA)
- return
var/mob/living/carbon/human/H = M
if(istype(H) && (H.species.flags & NO_SCAN))
return
@@ -195,6 +193,7 @@
color = "#664330"
taste_description = "plant food"
taste_mult = 0.5
+ unaffected_species = IS_MACHINE
/datum/reagent/toxin/fertilizer/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
if(alien == IS_DIONA)
@@ -224,6 +223,7 @@
strength = 4
metabolism = REM*1.5
taste_mult = 1
+ unaffected_species = IS_MACHINE
/datum/reagent/toxin/plantbgone/touch_turf(var/turf/T)
if(istype(T, /turf/simulated/wall))
@@ -267,8 +267,6 @@
taste_description = "acid"
/datum/reagent/lexorin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
- if(alien == IS_DIONA)
- return
var/mob/living/carbon/human/H = M
if(istype(H) && (H.species.flags & NO_BLOOD))
return
@@ -319,8 +317,6 @@
taste_mult = 1.3
/datum/reagent/slimejelly/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
- if(alien == IS_DIONA)
- return
var/mob/living/carbon/human/H = M
if(istype(H) && (H.species.flags & NO_BLOOD))
return
@@ -341,8 +337,6 @@
taste_description = "bitterness"
/datum/reagent/soporific/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
- if(alien == IS_DIONA)
- return
var/mob/living/carbon/human/H = M
if(istype(H) && (H.species.flags & NO_BLOOD))
return
@@ -370,8 +364,6 @@
taste_description = "bitterness"
/datum/reagent/chloralhydrate/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
- if(alien == IS_DIONA)
- return
var/mob/living/carbon/human/H = M
if(istype(H) && (H.species.flags & NO_BLOOD))
return
@@ -414,8 +406,6 @@
taste_mult = 0.4
/datum/reagent/space_drugs/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
- if(alien == IS_DIONA)
- return
var/mob/living/carbon/human/H = M
if(istype(H) && (H.species.flags & NO_BLOOD))
return
@@ -436,8 +426,6 @@
taste_description = "bitterness"
/datum/reagent/serotrotium/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
- if(alien == IS_DIONA)
- return
var/mob/living/carbon/human/H = M
if(istype(H) && (H.species.flags & NO_BLOOD))
return
@@ -456,8 +444,6 @@
taste_description = "sourness"
/datum/reagent/cryptobiolin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
- if(alien == IS_DIONA)
- return
var/mob/living/carbon/human/H = M
if(istype(H) && (H.species.flags & NO_BLOOD))
return
@@ -476,8 +462,6 @@
taste_description = "numbness"
/datum/reagent/impedrezene/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
- if(alien == IS_DIONA)
- return
M.jitteriness = max(M.jitteriness - 5, 0)
if(prob(80))
M.adjustBrainLoss(3 * removed)
@@ -497,8 +481,6 @@
taste_description = "sourness"
/datum/reagent/mindbreaker/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
- if(alien == IS_DIONA)
- return
M.hallucination = max(M.hallucination, 100)
/datum/reagent/psilocybin
@@ -511,8 +493,6 @@
taste_description = "mushroom"
/datum/reagent/psilocybin/affect_blood(var/mob/living/carbon/M, var/alien, var/removed)
- if(alien == IS_DIONA)
- return
var/mob/living/carbon/human/H = M
if(istype(H) && (H.species.flags & NO_BLOOD))
return