From 2fa0881a404ea78e27bea13fbc49df31796ea865 Mon Sep 17 00:00:00 2001 From: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Date: Mon, 7 Sep 2020 15:24:23 +0200 Subject: [PATCH] [MIRROR] Exposure fix (#687) * Fix chemical exposure (#53491) * Exposure fix Co-authored-by: TemporalOroboros --- code/game/atoms.dm | 3 ++- code/game/objects/objs.dm | 3 ++- code/game/turfs/turf.dm | 3 ++- .../antagonists/blob/blobstrains/_reagent.dm | 10 +++++++--- .../antagonists/blob/blobstrains/blazing_oil.dm | 3 ++- .../blob/blobstrains/cryogenic_poison.dm | 3 ++- .../blob/blobstrains/distributed_neurons.dm | 3 ++- .../blob/blobstrains/electromagnetic_web.dm | 3 ++- .../blob/blobstrains/energized_jelly.dm | 3 ++- .../blob/blobstrains/explosive_lattice.dm | 3 ++- .../blob/blobstrains/networked_fibers.dm | 3 ++- .../blob/blobstrains/pressurized_slime.dm | 3 ++- .../blob/blobstrains/reactive_spines.dm | 8 ++++++-- .../blob/blobstrains/regenerative_materia.dm | 3 ++- .../blob/blobstrains/replicating_foam.dm | 3 ++- .../blob/blobstrains/shifting_fragments.dm | 3 ++- .../blob/blobstrains/synchronous_mesh.dm | 3 ++- code/modules/mob/living/living_defense.dm | 3 ++- code/modules/reagents/chemistry/reagents.dm | 15 ++++++--------- .../chemistry/reagents/cat2_medicine_reagents.dm | 5 ++--- .../reagents/chemistry/reagents/food_reagents.dm | 1 - .../reagents/chemistry/reagents/other_reagents.dm | 8 ++++---- .../reagents/chemistry/reagents/toxin_reagents.dm | 2 +- 23 files changed, 58 insertions(+), 39 deletions(-) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index f31bd028cb5..8f20d39d07a 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -492,7 +492,8 @@ * - show_message: Whether to display anything to mobs when they are exposed. */ /atom/proc/expose_reagents(list/reagents, datum/reagents/source, methods=TOUCH, volume_modifier=1, show_message=TRUE) - if((. = SEND_SIGNAL(src, COMSIG_ATOM_EXPOSE_REAGENTS, reagents, source, methods, volume_modifier, show_message)) & COMPONENT_NO_EXPOSE_REAGENTS) + . = SEND_SIGNAL(src, COMSIG_ATOM_EXPOSE_REAGENTS, reagents, source, methods, volume_modifier, show_message) + if(. & COMPONENT_NO_EXPOSE_REAGENTS) return for(var/reagent in reagents) diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm index 2b26cf1bb41..7bd84c0fc8c 100644 --- a/code/game/objects/objs.dm +++ b/code/game/objects/objs.dm @@ -358,7 +358,8 @@ /// Handles exposing an object to reagents. /obj/expose_reagents(list/reagents, datum/reagents/source, methods=TOUCH, volume_modifier=1, show_message=TRUE) - if((. = ..()) & COMPONENT_NO_EXPOSE_REAGENTS) + . = ..() + if(. & COMPONENT_NO_EXPOSE_REAGENTS) return for(var/reagent in reagents) diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm index ad5b05bd1ec..07748bbdabe 100755 --- a/code/game/turfs/turf.dm +++ b/code/game/turfs/turf.dm @@ -583,7 +583,8 @@ GLOBAL_LIST_EMPTY(station_turfs) /// Handles exposing a turf to reagents. /turf/expose_reagents(list/reagents, datum/reagents/source, methods=TOUCH, volume_modifier=1, show_message=TRUE) - if((. = ..()) & COMPONENT_NO_EXPOSE_REAGENTS) + . = ..() + if(. & COMPONENT_NO_EXPOSE_REAGENTS) return for(var/reagent in reagents) diff --git a/code/modules/antagonists/blob/blobstrains/_reagent.dm b/code/modules/antagonists/blob/blobstrains/_reagent.dm index 5b7522c8d31..8e253932890 100644 --- a/code/modules/antagonists/blob/blobstrains/_reagent.dm +++ b/code/modules/antagonists/blob/blobstrains/_reagent.dm @@ -27,9 +27,13 @@ can_synth = FALSE penetrates_skin = NONE - -/datum/reagent/blob/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/overmind) - ..() +/// Used by blob reagents to calculate the reaction volume they should use when exposing mobs. +/datum/reagent/blob/proc/return_mob_expose_reac_volume(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/overmind) if(exposed_mob.stat == DEAD || istype(exposed_mob, /mob/living/simple_animal/hostile/blob)) return 0 //the dead, and blob mobs, don't cause reactions return round(reac_volume * min(1.5 - touch_protection, 1), 0.1) //full touch protection means 50% volume, any prot below 0.5 means 100% volume. + +/// Exists to earmark the new overmind arg used by blob reagents. +/datum/reagent/blob/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/overmind) + reac_volume = return_mob_expose_reac_volume(exposed_mob, methods, reac_volume, show_message, touch_protection, overmind) + return ..() diff --git a/code/modules/antagonists/blob/blobstrains/blazing_oil.dm b/code/modules/antagonists/blob/blobstrains/blazing_oil.dm index 2383dccf87f..e9d8b6aef2a 100644 --- a/code/modules/antagonists/blob/blobstrains/blazing_oil.dm +++ b/code/modules/antagonists/blob/blobstrains/blazing_oil.dm @@ -32,7 +32,8 @@ color = "#B68D00" /datum/reagent/blob/blazing_oil/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/overmind) - reac_volume = ..() + . = ..() + reac_volume = return_mob_expose_reac_volume(exposed_mob, methods, reac_volume, show_message, touch_protection, overmind) exposed_mob.adjust_fire_stacks(round(reac_volume/10)) exposed_mob.IgniteMob() if(exposed_mob) diff --git a/code/modules/antagonists/blob/blobstrains/cryogenic_poison.dm b/code/modules/antagonists/blob/blobstrains/cryogenic_poison.dm index 8dea4c1ab5b..78b6c804cac 100644 --- a/code/modules/antagonists/blob/blobstrains/cryogenic_poison.dm +++ b/code/modules/antagonists/blob/blobstrains/cryogenic_poison.dm @@ -17,7 +17,8 @@ taste_description = "brain freeze" /datum/reagent/blob/cryogenic_poison/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/overmind) - reac_volume = ..() + . = ..() + reac_volume = return_mob_expose_reac_volume(exposed_mob, methods, reac_volume, show_message, touch_protection, overmind) if(exposed_mob.reagents) exposed_mob.reagents.add_reagent(/datum/reagent/consumable/frostoil, 0.3*reac_volume) exposed_mob.reagents.add_reagent(/datum/reagent/consumable/ice, 0.3*reac_volume) diff --git a/code/modules/antagonists/blob/blobstrains/distributed_neurons.dm b/code/modules/antagonists/blob/blobstrains/distributed_neurons.dm index 59b14d611b7..dd029f65365 100644 --- a/code/modules/antagonists/blob/blobstrains/distributed_neurons.dm +++ b/code/modules/antagonists/blob/blobstrains/distributed_neurons.dm @@ -25,7 +25,8 @@ color = "#E88D5D" /datum/reagent/blob/distributed_neurons/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/overmind) - reac_volume = ..() + . = ..() + reac_volume = return_mob_expose_reac_volume(exposed_mob, methods, reac_volume, show_message, touch_protection, overmind) exposed_mob.apply_damage(0.6*reac_volume, TOX) if(overmind && ishuman(exposed_mob)) if(exposed_mob.stat == UNCONSCIOUS || exposed_mob.stat == HARD_CRIT) diff --git a/code/modules/antagonists/blob/blobstrains/electromagnetic_web.dm b/code/modules/antagonists/blob/blobstrains/electromagnetic_web.dm index f92f71c5388..427e0f839a3 100644 --- a/code/modules/antagonists/blob/blobstrains/electromagnetic_web.dm +++ b/code/modules/antagonists/blob/blobstrains/electromagnetic_web.dm @@ -30,7 +30,8 @@ color = "#83ECEC" /datum/reagent/blob/electromagnetic_web/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/overmind) - reac_volume = ..() + . = ..() + reac_volume = return_mob_expose_reac_volume(exposed_mob, methods, reac_volume, show_message, touch_protection, overmind) if(prob(reac_volume*2)) exposed_mob.emp_act(EMP_LIGHT) if(exposed_mob) diff --git a/code/modules/antagonists/blob/blobstrains/energized_jelly.dm b/code/modules/antagonists/blob/blobstrains/energized_jelly.dm index 305d22d540f..6b225400df0 100644 --- a/code/modules/antagonists/blob/blobstrains/energized_jelly.dm +++ b/code/modules/antagonists/blob/blobstrains/energized_jelly.dm @@ -27,7 +27,8 @@ color = "#EFD65A" /datum/reagent/blob/energized_jelly/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/overmind) - reac_volume = ..() + . = ..() + reac_volume = return_mob_expose_reac_volume(exposed_mob, methods, reac_volume, show_message, touch_protection, overmind) exposed_mob.losebreath += round(0.2*reac_volume) exposed_mob.adjustStaminaLoss(reac_volume * 1.2) if(exposed_mob) diff --git a/code/modules/antagonists/blob/blobstrains/explosive_lattice.dm b/code/modules/antagonists/blob/blobstrains/explosive_lattice.dm index c49a103f6d6..98847f37501 100644 --- a/code/modules/antagonists/blob/blobstrains/explosive_lattice.dm +++ b/code/modules/antagonists/blob/blobstrains/explosive_lattice.dm @@ -32,8 +32,9 @@ color = "#8B2500" /datum/reagent/blob/explosive_lattice/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/overmind) + . = ..() var/initial_volume = reac_volume - reac_volume = ..() + reac_volume = return_mob_expose_reac_volume(exposed_mob, methods, reac_volume, show_message, touch_protection, overmind) if(reac_volume >= 10) //if it's not a spore cloud, bad time incoming var/obj/effect/temp_visual/explosion/fast/ex_effect = new /obj/effect/temp_visual/explosion/fast(get_turf(exposed_mob)) ex_effect.alpha = 150 diff --git a/code/modules/antagonists/blob/blobstrains/networked_fibers.dm b/code/modules/antagonists/blob/blobstrains/networked_fibers.dm index f559e722f40..6c6a244d654 100644 --- a/code/modules/antagonists/blob/blobstrains/networked_fibers.dm +++ b/code/modules/antagonists/blob/blobstrains/networked_fibers.dm @@ -37,7 +37,8 @@ color = "#4F4441" /datum/reagent/blob/networked_fibers/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/overmind) - reac_volume = ..() + . = ..() + reac_volume = return_mob_expose_reac_volume(exposed_mob, methods, reac_volume, show_message, touch_protection, overmind) exposed_mob.apply_damage(0.6*reac_volume, BRUTE, wound_bonus=CANT_WOUND) if(!QDELETED(exposed_mob)) exposed_mob.apply_damage(0.6*reac_volume, BURN, wound_bonus=CANT_WOUND) diff --git a/code/modules/antagonists/blob/blobstrains/pressurized_slime.dm b/code/modules/antagonists/blob/blobstrains/pressurized_slime.dm index a8fd6c45b6b..76f4f811509 100644 --- a/code/modules/antagonists/blob/blobstrains/pressurized_slime.dm +++ b/code/modules/antagonists/blob/blobstrains/pressurized_slime.dm @@ -40,7 +40,8 @@ color = "#AAAABB" /datum/reagent/blob/pressurized_slime/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/overmind) - reac_volume = ..() + . = ..() + reac_volume = return_mob_expose_reac_volume(exposed_mob, methods, reac_volume, show_message, touch_protection, overmind) var/turf/open/location_turf = get_turf(exposed_mob) if(istype(location_turf) && prob(reac_volume)) location_turf.MakeSlippery(TURF_WET_LUBE, min_wet_time = 10 SECONDS, wet_time_to_add = 5 SECONDS) diff --git a/code/modules/antagonists/blob/blobstrains/reactive_spines.dm b/code/modules/antagonists/blob/blobstrains/reactive_spines.dm index 24d344e328b..4ca4d513844 100644 --- a/code/modules/antagonists/blob/blobstrains/reactive_spines.dm +++ b/code/modules/antagonists/blob/blobstrains/reactive_spines.dm @@ -24,8 +24,12 @@ taste_description = "rock" color = "#9ACD32" -/datum/reagent/blob/reactive_spines/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/overmind) - ..() +/datum/reagent/blob/reactive_spines/return_mob_expose_reac_volume(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/overmind) if(exposed_mob.stat == DEAD || istype(exposed_mob, /mob/living/simple_animal/hostile/blob)) return 0 //the dead, and blob mobs, don't cause reactions + return reac_volume + +/datum/reagent/blob/reactive_spines/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/overmind) + . = ..() + reac_volume = return_mob_expose_reac_volume(exposed_mob, methods, reac_volume, show_message, touch_protection, overmind) exposed_mob.adjustBruteLoss(reac_volume) diff --git a/code/modules/antagonists/blob/blobstrains/regenerative_materia.dm b/code/modules/antagonists/blob/blobstrains/regenerative_materia.dm index 0df84417c6d..6b7aa557ef3 100644 --- a/code/modules/antagonists/blob/blobstrains/regenerative_materia.dm +++ b/code/modules/antagonists/blob/blobstrains/regenerative_materia.dm @@ -16,7 +16,8 @@ color = "#A88FB7" /datum/reagent/blob/regenerative_materia/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/overmind) - reac_volume = ..() + . = ..() + reac_volume = return_mob_expose_reac_volume(exposed_mob, methods, reac_volume, show_message, touch_protection, overmind) exposed_mob.adjust_drugginess(reac_volume) if(exposed_mob.reagents) exposed_mob.reagents.add_reagent(/datum/reagent/blob/regenerative_materia, 0.2*reac_volume) diff --git a/code/modules/antagonists/blob/blobstrains/replicating_foam.dm b/code/modules/antagonists/blob/blobstrains/replicating_foam.dm index 236d7dea737..16670ce1158 100644 --- a/code/modules/antagonists/blob/blobstrains/replicating_foam.dm +++ b/code/modules/antagonists/blob/blobstrains/replicating_foam.dm @@ -31,5 +31,6 @@ color = "#7B5A57" /datum/reagent/blob/replicating_foam/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/overmind) - reac_volume = ..() + . = ..() + reac_volume = return_mob_expose_reac_volume(exposed_mob, methods, reac_volume, show_message, touch_protection, overmind) exposed_mob.apply_damage(0.7*reac_volume, BRUTE, wound_bonus=CANT_WOUND) diff --git a/code/modules/antagonists/blob/blobstrains/shifting_fragments.dm b/code/modules/antagonists/blob/blobstrains/shifting_fragments.dm index 95be6543526..1a7b92c99de 100644 --- a/code/modules/antagonists/blob/blobstrains/shifting_fragments.dm +++ b/code/modules/antagonists/blob/blobstrains/shifting_fragments.dm @@ -32,5 +32,6 @@ color = "#C8963C" /datum/reagent/blob/shifting_fragments/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/overmind) - reac_volume = ..() + . = ..() + reac_volume = return_mob_expose_reac_volume(exposed_mob, methods, reac_volume, show_message, touch_protection, overmind) exposed_mob.apply_damage(0.7*reac_volume, BRUTE, wound_bonus=CANT_WOUND) diff --git a/code/modules/antagonists/blob/blobstrains/synchronous_mesh.dm b/code/modules/antagonists/blob/blobstrains/synchronous_mesh.dm index c39728ad1dc..1c57edea1c3 100644 --- a/code/modules/antagonists/blob/blobstrains/synchronous_mesh.dm +++ b/code/modules/antagonists/blob/blobstrains/synchronous_mesh.dm @@ -30,7 +30,8 @@ color = "#65ADA2" /datum/reagent/blob/synchronous_mesh/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message, touch_protection, mob/camera/blob/overmind) - reac_volume = ..() + . = ..() + reac_volume = return_mob_expose_reac_volume(exposed_mob, methods, reac_volume, show_message, touch_protection, overmind) exposed_mob.apply_damage(0.2*reac_volume, BRUTE, wound_bonus=CANT_WOUND) if(exposed_mob && reac_volume) for(var/obj/structure/blob/nearby_blob in range(1, exposed_mob)) //if the target is completely surrounded, this is 2.4*reac_volume bonus damage, total of 2.6*reac_volume diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm index d5df01524bf..41bc32c042c 100644 --- a/code/modules/mob/living/living_defense.dm +++ b/code/modules/mob/living/living_defense.dm @@ -411,7 +411,8 @@ * If the methods include VAPOR it incorporates permiability protection. */ /mob/living/expose_reagents(list/reagents, datum/reagents/source, methods=TOUCH, volume_modifier=1, show_message=TRUE) - if((. = ..()) & COMPONENT_NO_EXPOSE_REAGENTS) + . = ..() + if(. & COMPONENT_NO_EXPOSE_REAGENTS) return if(methods & INGEST) diff --git a/code/modules/reagents/chemistry/reagents.dm b/code/modules/reagents/chemistry/reagents.dm index 0003b3cc12d..6b207982353 100644 --- a/code/modules/reagents/chemistry/reagents.dm +++ b/code/modules/reagents/chemistry/reagents.dm @@ -95,34 +95,31 @@ GLOBAL_LIST_INIT(name2reagent, build_name2reagent()) /datum/reagent/proc/expose_atom(atom/exposed_atom, reac_volume) SHOULD_CALL_PARENT(TRUE) - SEND_SIGNAL(src, COMSIG_REAGENT_EXPOSE_ATOM, exposed_atom, reac_volume) - SEND_SIGNAL(exposed_atom, COMSIG_ATOM_EXPOSE_REAGENT, src, reac_volume) - return TRUE + . = 0 + . |= SEND_SIGNAL(src, COMSIG_REAGENT_EXPOSE_ATOM, exposed_atom, reac_volume) + . |= SEND_SIGNAL(exposed_atom, COMSIG_ATOM_EXPOSE_REAGENT, src, reac_volume) /// Applies this reagent to a [/mob/living] /datum/reagent/proc/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message = TRUE, touch_protection = 0) SHOULD_CALL_PARENT(TRUE) - SEND_SIGNAL(src, COMSIG_REAGENT_EXPOSE_MOB, exposed_mob, methods, reac_volume, show_message, touch_protection) + . = SEND_SIGNAL(src, COMSIG_REAGENT_EXPOSE_MOB, exposed_mob, methods, reac_volume, show_message, touch_protection) if((methods & penetrates_skin) && exposed_mob.reagents) //smoke, foam, spray var/amount = round(reac_volume*clamp((1 - touch_protection), 0, 1), 0.1) if(amount >= 0.5) exposed_mob.reagents.add_reagent(type, amount) - return TRUE /// Applies this reagent to an [/obj] /datum/reagent/proc/expose_obj(obj/exposed_obj, reac_volume) SHOULD_CALL_PARENT(TRUE) - SEND_SIGNAL(src, COMSIG_REAGENT_EXPOSE_OBJ, exposed_obj, reac_volume) - return TRUE + return SEND_SIGNAL(src, COMSIG_REAGENT_EXPOSE_OBJ, exposed_obj, reac_volume) /// Applies this reagent to a [/turf] /datum/reagent/proc/expose_turf(turf/exposed_turf, reac_volume) SHOULD_CALL_PARENT(TRUE) - SEND_SIGNAL(src, COMSIG_REAGENT_EXPOSE_TURF, exposed_turf, reac_volume) - return TRUE + return SEND_SIGNAL(src, COMSIG_REAGENT_EXPOSE_TURF, exposed_turf, reac_volume) /// Called from [/datum/reagents/proc/metabolize] /datum/reagent/proc/on_mob_life(mob/living/carbon/M) diff --git a/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm index d574e489eb2..d6344f0387f 100644 --- a/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/cat2_medicine_reagents.dm @@ -414,12 +414,12 @@ /datum/reagent/medicine/c2/synthflesh/expose_mob(mob/living/exposed_mob, methods=TOUCH, reac_volume, show_message = TRUE) . = ..() if(!iscarbon(exposed_mob)) - return TRUE + return var/mob/living/carbon/carbies = exposed_mob if(carbies.stat == DEAD) show_message = 0 if(!(methods & (PATCH|TOUCH|VAPOR))) - return TRUE + return var/harmies = min(carbies.getBruteLoss(),carbies.adjustBruteLoss(-1.25 * reac_volume)*-1) var/burnies = min(carbies.getFireLoss(),carbies.adjustFireLoss(-1.25 * reac_volume)*-1) for(var/i in carbies.all_wounds) @@ -432,7 +432,6 @@ if(HAS_TRAIT_FROM(exposed_mob, TRAIT_HUSK, "burn") && carbies.getFireLoss() < THRESHOLD_UNHUSK && (carbies.reagents.get_reagent_amount(/datum/reagent/medicine/c2/synthflesh) + reac_volume >= 100)) carbies.cure_husk("burn") carbies.visible_message("A rubbery liquid coats [carbies]'s burns. [carbies] looks a lot healthier!") //we're avoiding using the phrases "burnt flesh" and "burnt skin" here because carbies could be a skeleton or a golem or something - return TRUE /******ORGAN HEALING******/ /*Suffix: -rite*/ diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm index cc580905886..bb1c0ce5eb2 100755 --- a/code/modules/reagents/chemistry/reagents/food_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm @@ -158,7 +158,6 @@ addtimer(CALLBACK(exposed_mob, /mob/living/proc/unfry_mob), 3) if(FryLoss) exposed_mob.adjustFireLoss(FryLoss) - return TRUE /datum/reagent/consumable/cooking_oil/expose_turf(turf/open/exposed_turf, reac_volume) . = ..() diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm index 3e3ca95c10f..aedde1ad3ac 100644 --- a/code/modules/reagents/chemistry/reagents/other_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm @@ -726,7 +726,7 @@ /datum/reagent/oxygen/expose_obj(obj/exposed_obj, reac_volume) . = ..() if((!exposed_obj) || (!reac_volume)) - return 0 + return var/temp = holder ? holder.chem_temp : T20C exposed_obj.atmos_spawn_air("o2=[reac_volume/2];TEMP=[temp]") @@ -763,7 +763,7 @@ /datum/reagent/nitrogen/expose_obj(obj/exposed_obj, reac_volume) . = ..() if((!exposed_obj) || (!reac_volume)) - return 0 + return var/temp = holder ? holder.chem_temp : T20C exposed_obj.atmos_spawn_air("n2=[reac_volume/2];TEMP=[temp]") @@ -1271,7 +1271,7 @@ /datum/reagent/carbondioxide/expose_obj(obj/exposed_obj, reac_volume) . = ..() if((!exposed_obj) || (!reac_volume)) - return 0 + return var/temp = holder ? holder.chem_temp : T20C exposed_obj.atmos_spawn_air("co2=[reac_volume/5];TEMP=[temp]") @@ -1292,7 +1292,7 @@ /datum/reagent/nitrous_oxide/expose_obj(obj/exposed_obj, reac_volume) . = ..() if((!exposed_obj) || (!reac_volume)) - return 0 + return var/temp = holder ? holder.chem_temp : T20C exposed_obj.atmos_spawn_air("n2o=[reac_volume/5];TEMP=[temp]") diff --git a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm index a9eb707b338..0589e2f9291 100644 --- a/code/modules/reagents/chemistry/reagents/toxin_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/toxin_reagents.dm @@ -90,7 +90,7 @@ /datum/reagent/toxin/plasma/expose_obj(obj/exposed_obj, reac_volume) . = ..() if((!exposed_obj) || (!reac_volume)) - return 0 + return var/temp = holder ? holder.chem_temp : T20C if(temp >= LIQUID_PLASMA_BP) exposed_obj.atmos_spawn_air("plasma=[reac_volume];TEMP=[temp]")