diff --git a/code/modules/reagents/chemistry/reagents/misc_reagents.dm b/code/modules/reagents/chemistry/reagents/misc_reagents.dm index 3e98206f47a..21992688b68 100644 --- a/code/modules/reagents/chemistry/reagents/misc_reagents.dm +++ b/code/modules/reagents/chemistry/reagents/misc_reagents.dm @@ -178,23 +178,25 @@ if(exposed_temperature <= T0C + 600) return - 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"]!") + // Let's say burning boiling oil doubles in volume, can our max volume contain that? + var/boil_overflow = (holder.total_volume + volume) - holder.maximum_volume - 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 + if(boil_overflow > 0) + holder.my_atom.visible_message("The oil boils out and burns violently!") + // 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)) + fireflash(T, clamp(boil_overflow / 40, 0, 8)) smoke_type = /datum/effect_system/smoke_spread/bad else + holder.my_atom.visible_message("The oil sizzles and burns down into residue.") + var/datum/reagents/old_holder = holder // We might not have space if we add first, so cache this and add after deleting holder.del_reagent(id) + old_holder.add_reagent(reagent_after_burning, volume * 0.6) // Flavor reaction effects playsound(T, 'sound/goonstation/misc/drinkfizz.ogg', 80, TRUE) @@ -202,9 +204,6 @@ 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)) new /obj/effect/decal/cleanable/blood/oil(T) @@ -225,7 +224,6 @@ name = "Burned Cooking Oil" description = "It's full of char and mixed with so much crud it's probably useless." id = "cooking_oil_inert" - reagent_after_burning = null /datum/reagent/oil/cooking/inert/reaction_temperature(exposed_temperature, exposed_volume) // don't do anything diff --git a/code/modules/reagents/chemistry/recipes/medicine_reactions.dm b/code/modules/reagents/chemistry/recipes/medicine_reactions.dm index 97bc4fc6e05..fe3915dbead 100644 --- a/code/modules/reagents/chemistry/recipes/medicine_reactions.dm +++ b/code/modules/reagents/chemistry/recipes/medicine_reactions.dm @@ -47,8 +47,8 @@ name = "Charcoal" id = "charcoal" result = "charcoal" - required_reagents = list("ash" = 1, "sodiumchloride" = 1) - result_amount = 2 + required_reagents = list("ash" = 1, "sodiumchloride" = 5) + result_amount = 6 mix_message = "The mixture yields a fine black powder." min_temp = T0C + 100 mix_sound = 'sound/goonstation/misc/fuse.ogg'