From 324af7454c421e5b2208a3981d3620a76fd2f0bb Mon Sep 17 00:00:00 2001
From: SteelSlayer <42044220+SteelSlayer@users.noreply.github.com>
Date: Sun, 21 Feb 2021 11:19:58 -0600
Subject: [PATCH] oil slime logging (#15579)
---
.../chemistry/recipes/slime_extracts.dm | 21 ++++++++++++-------
.../research/xenobiology/xenobiology.dm | 7 ++++++-
2 files changed, 20 insertions(+), 8 deletions(-)
diff --git a/code/modules/reagents/chemistry/recipes/slime_extracts.dm b/code/modules/reagents/chemistry/recipes/slime_extracts.dm
index 652e39d6295..995085b1dce 100644
--- a/code/modules/reagents/chemistry/recipes/slime_extracts.dm
+++ b/code/modules/reagents/chemistry/recipes/slime_extracts.dm
@@ -480,7 +480,7 @@
SSblackbox.record_feedback("tally", "slime_cores_used", 1, type)
//Oil
-/datum/chemical_reaction/slimeexplosion
+/datum/chemical_reaction/slime_explosion
name = "Slime Explosion"
id = "m_explosion"
result = null
@@ -489,13 +489,20 @@
required_container = /obj/item/slime_extract/oil
required_other = 1
-/datum/chemical_reaction/slimeexplosion/on_reaction(datum/reagents/holder)
+/datum/chemical_reaction/slime_explosion/on_reaction(datum/reagents/holder)
SSblackbox.record_feedback("tally", "slime_cores_used", 1, type)
- var/turf/T = get_turf(holder.my_atom)
- T.visible_message("The slime extract begins to vibrate violently !")
- spawn(50)
- if(holder && holder.my_atom)
- explosion(get_turf(holder.my_atom), 1 ,3, 6)
+ var/obj/item/slime_extract/oil/extract = holder.my_atom
+ extract.visible_message("The slime extract begins to vibrate violently!")
+ addtimer(CALLBACK(src, .proc/explode, extract), 5 SECONDS)
+
+/datum/chemical_reaction/slime_explosion/proc/explode(obj/item/slime_extract/oil/extract)
+ if(QDELETED(extract))
+ return
+ var/who = extract.injector_mob ? "[key_name_admin(extract.injector_mob)]" : "Unknown"
+ var/turf/extract_turf = get_turf(extract)
+ message_admins("[who] triggered an oil slime explosion at [COORD(extract_turf)].")
+ log_game("[who] triggered an oil slime explosion at [COORD(extract_turf)].")
+ explosion(extract_turf, 1, 3, 6)
//Light Pink
/datum/chemical_reaction/slimepotion2
diff --git a/code/modules/research/xenobiology/xenobiology.dm b/code/modules/research/xenobiology/xenobiology.dm
index ac7249a8b63..5a83bce5536 100644
--- a/code/modules/research/xenobiology/xenobiology.dm
+++ b/code/modules/research/xenobiology/xenobiology.dm
@@ -13,7 +13,10 @@
throw_speed = 3
throw_range = 6
origin_tech = "biotech=3"
- var/Uses = 1 // uses before it goes inert
+ /// Uses before it goes inert
+ var/Uses = 1
+ /// The mob who last injected the extract with plasma, water or blood. Used for logging.
+ var/mob/living/injector_mob
/obj/item/slime_extract/attackby(obj/item/O, mob/user)
if(istype(O, /obj/item/slimepotion/enhancer))
@@ -23,6 +26,8 @@
to_chat(user, "You apply the enhancer to the slime extract. It may now be reused one more time.")
Uses++
qdel(O)
+ if(istype(O, /obj/item/reagent_containers/syringe))
+ injector_mob = user
..()
/obj/item/slime_extract/New()