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))