From 1d21abbeeb9b784b5c9c1c92665ccee381ed01d0 Mon Sep 17 00:00:00 2001 From: Nathan Winters <100448493+CinnamonSnowball@users.noreply.github.com> Date: Fri, 2 Jun 2023 20:57:40 +0200 Subject: [PATCH] Oil temperature reaction tweaks (#21201) --- .../chemistry/reagents/misc_reagents.dm | 41 +++++++++++++------ 1 file changed, 28 insertions(+), 13 deletions(-) diff --git a/code/modules/reagents/chemistry/reagents/misc_reagents.dm b/code/modules/reagents/chemistry/reagents/misc_reagents.dm index 2ddff607295..f304e88adaf 100644 --- a/code/modules/reagents/chemistry/reagents/misc_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/misc_reagents.dm @@ -175,20 +175,35 @@ var/reagent_after_burning = "ash" /datum/reagent/oil/reaction_temperature(exposed_temperature, exposed_volume) - if(exposed_temperature > T0C + 600) - var/turf/T = get_turf(holder.my_atom) - holder.my_atom.visible_message("The oil burns!") - var/datum/reagents/old_holder = holder - fire_flash_log(holder, id) - if(holder) - holder.del_reagent(id) // Remove first. Else fireflash triggers a reaction again + if(exposed_temperature <= T0C + 600) + return - fireflash(T, min(max(0, volume / 40), 8)) - var/datum/effect_system/smoke_spread/bad/BS = new - BS.set_up(1, FALSE, T) - BS.start() - if(!QDELETED(old_holder) && reagent_after_burning) - old_holder.add_reagent(reagent_after_burning, round(volume * 0.5)) + var/violent = volume > 30 + var/message_type = violent ? "class='boldwarning'" : "class='warning'" + holder.my_atom.visible_message("The oil [violent ? "boils and burns violently" : "burns"]!") + + var/datum/reagents/old_holder = holder + var/turf/T = get_turf(holder.my_atom) + var/smoke_type = /datum/effect_system/smoke_spread + + if(violent) + // Log -> remove reagent -> fireflash. Else the log fails or fireflash triggers a reaction again + fire_flash_log(holder, id) + holder.del_reagent(id) + fireflash(T, clamp(volume / 40, 0, 8)) + + smoke_type = /datum/effect_system/smoke_spread/bad + else + holder.del_reagent(id) + + // Flavor reaction effects + playsound(T, 'sound/goonstation/misc/drinkfizz.ogg', 80, TRUE) + var/datum/effect_system/smoke_spread/BS = new smoke_type + BS.set_up(1, FALSE, T) + BS.start() + + if(!QDELETED(old_holder) && reagent_after_burning) + old_holder.add_reagent(reagent_after_burning, round(volume * 0.5)) /datum/reagent/oil/reaction_turf(turf/T, volume) if(volume >= 3 && !isspaceturf(T) && !(locate(/obj/effect/decal/cleanable/blood/oil) in T))