diff --git a/code/game/objects/effects/effect_system/effects_smoke.dm b/code/game/objects/effects/effect_system/effects_smoke.dm
index 5618ca9a91e..ef8b0b07344 100644
--- a/code/game/objects/effects/effect_system/effects_smoke.dm
+++ b/code/game/objects/effects/effect_system/effects_smoke.dm
@@ -289,7 +289,7 @@
if(M)
more = "[ADMIN_LOOKUPFLW(M)] "
message_admins("Smoke: ([whereLink])[contained]. Key: [more ? more : carry.my_atom.fingerprintslast].")
- log_game("A chemical smoke reaction has taken place in ([where])[contained]. Last associated key is [carry.my_atom.fingerprintslast].")
+ log_game("A chemical smoke reaction has taken place in ([where])[contained]. Last touched by [carry.my_atom.fingerprintslast].")
else
message_admins("Smoke: ([whereLink])[contained]. No associated key.")
log_game("A chemical smoke reaction has taken place in ([where])[contained]. No associated key.")
diff --git a/code/game/objects/items/grenades/chem_grenade.dm b/code/game/objects/items/grenades/chem_grenade.dm
index bed7ba24e4b..7055d17a085 100644
--- a/code/game/objects/items/grenades/chem_grenade.dm
+++ b/code/game/objects/items/grenades/chem_grenade.dm
@@ -75,6 +75,10 @@
return
to_chat(user, "You add [I] to the [initial(name)] assembly.")
beakers += I
+ for(var/datum/reagent/R in I.reagents.reagent_list)
+ var/reagent_vol = R.volume
+ add_logs(user, src, "inserted [I]", additional = "[reagent_vol] units of [R] inside.")
+ log_game("[key_name(user)] inserted [I] into [src] containing [reagent_vol] units of [R] ")
else
to_chat(user, "[I] is empty!")
@@ -111,6 +115,12 @@
if(beakers.len)
for(var/obj/O in beakers)
O.forceMove(drop_location())
+ if(!O.reagents)
+ continue
+ for(var/datum/reagent/R in O.reagents.reagent_list)
+ var/reagent_vol = R.volume
+ add_logs(user, src, "removed [O]", additional = "[reagent_vol] units of [R] inside.")
+ log_game("[key_name(user)] removed [O] from [src] containing [reagent_vol] units of [R]")
beakers = list()
to_chat(user, "You open the [initial(name)] assembly and remove the payload.")
return // First use of the wrench remove beakers, then use the wrench to remove the activation mechanism.
@@ -155,6 +165,19 @@
if(nadeassembly)
nadeassembly.on_found(finder)
+/obj/item/grenade/chem_grenade/log_grenade(mob/user, turf/T)
+ ..()
+ for(var/obj/exploded_beaker in beakers)
+ if(!exploded_beaker.reagents)
+ continue
+ for(var/datum/reagent/R in exploded_beaker.reagents.reagent_list)
+ var/reagent_volume = R.volume
+ var/message = "[src] primed by [user] at [ADMIN_VERBOSEJMP(T)] contained [reagent_volume] units of [R]."
+ GLOB.bombers += message
+ message_admins(message)
+ log_game("[src] primed by [user] at [AREACOORD(T)] contained [reagent_volume] units of [R].")
+ add_logs(user, src, "primed", additional = "[reagent_volume] units of [R] inside.")
+
/obj/item/grenade/chem_grenade/prime()
if(stage != READY)
return