From 085e4840e7fbdaf2835931718538e9f91be759f2 Mon Sep 17 00:00:00 2001 From: Lohikar Date: Mon, 25 Sep 2017 01:59:30 -0600 Subject: [PATCH] Reagent & Overdose tweaks (#3499) Generalizes dionae reagent checks to reduce if (alien == IS_DIONA) checks. Reverts #2444, #3116. Closes #3270. Fixes some potential GC issues with some reagents and their modifiers. --- code/__defines/chemistry.dm | 14 ++-- code/modules/reagents/Chemistry-Reagents.dm | 13 ++- .../Chemistry-Reagents-Dispenser.dm | 41 +++++---- .../Chemistry-Reagents-Food-Drinks.dm | 52 ++---------- .../Chemistry-Reagents-Medicine.dm | 84 +++++-------------- .../Chemistry-Reagents-Other.dm | 2 - .../Chemistry-Reagents-Toxins.dm | 26 +----- 7 files changed, 60 insertions(+), 172 deletions(-) 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