diff --git a/code/game/objects/items/weapons/extinguisher.dm b/code/game/objects/items/weapons/extinguisher.dm
index 3a57eae84c2..b99b05cffba 100644
--- a/code/game/objects/items/weapons/extinguisher.dm
+++ b/code/game/objects/items/weapons/extinguisher.dm
@@ -1,3 +1,4 @@
+
/obj/item/weapon/extinguisher
name = "fire extinguisher"
desc = "A traditional red fire extinguisher."
@@ -13,6 +14,7 @@
force = 10
m_amt = 90
attack_verb = list("slammed", "whacked", "bashed", "thunked", "battered", "bludgeoned", "thrashed")
+<<<<<<< HEAD
var/list/reagents_to_log=list(
"fuel"= "welder fuel",
"plasma"= "plasma",
@@ -20,11 +22,20 @@
"sacid"= "sulphuric acid"
)
+=======
+>>>>>>> 6ff7901... Add additional extinguisher logging, transfer logging framework.
var/max_water = 50
var/last_use = 1.0
var/safety = 1
var/sprite_name = "fire_extinguisher"
+ reagents_to_log=list(
+ "fuel" = "welder fuel",
+ "plasma"= "plasma",
+ "pacid" = "polytrinic acid",
+ "sacid" = "sulphuric acid"
+ )
+
/obj/item/weapon/extinguisher/mini
name = "fire extinguisher"
desc = "A light and compact fibreglass-framed model fire extinguisher."
diff --git a/code/game/objects/objs.dm b/code/game/objects/objs.dm
index d68a7b3c8d3..46b9eefec7c 100644
--- a/code/game/objects/objs.dm
+++ b/code/game/objects/objs.dm
@@ -16,6 +16,10 @@
var/damtype = "brute"
var/force = 0
+ // What reagents should be logged when transferred TO this object?
+ // Reagent ID => friendly name
+ var/list/reagents_to_log=list()
+
/obj/item/proc/is_used_on(obj/O, mob/user)
/obj/proc/process()
diff --git a/code/modules/reagents/reagent_containers/dropper.dm b/code/modules/reagents/reagent_containers/dropper.dm
index cffc1781181..cc2ca414de6 100644
--- a/code/modules/reagents/reagent_containers/dropper.dm
+++ b/code/modules/reagents/reagent_containers/dropper.dm
@@ -78,6 +78,18 @@
else
M.LAssailant = user
+ // /vg/: Logging transfers of bad things
+ if(isobj(target))
+ if(target.reagents_to_log.len)
+ var/list/badshit=list()
+ for(var/bad_reagent in target.reagents_to_log)
+ if(reagents.has_reagent(bad_reagent))
+ badshit += reagents_to_log[bad_reagent]
+ if(badshit.len)
+ var/hl="\red ([english_list(badshit)]) \black"
+ message_admins("[user.name] ([user.ckey]) added [reagents.get_reagent_ids(1)] to \a [target] with [src].[hl] (JMP)")
+ log_game("[user.name] ([user.ckey]) added [reagents.get_reagent_ids(1)] to \a [target] with [src].")
+
trans = src.reagents.trans_to(target, amount_per_transfer_from_this)
user << "\blue You transfer [trans] units of the solution."
if (src.reagents.total_volume<=0)
diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm
index 292e75c28f7..cf868d65de7 100644
--- a/code/modules/reagents/reagent_containers/glass.dm
+++ b/code/modules/reagents/reagent_containers/glass.dm
@@ -117,6 +117,17 @@
user << "\red [target] is full."
return
+ // /vg/: Logging transfers of bad things
+ if(target.reagents_to_log.len)
+ var/list/badshit=list()
+ for(var/bad_reagent in target.reagents_to_log)
+ if(reagents.has_reagent(bad_reagent))
+ badshit += reagents_to_log[bad_reagent]
+ if(badshit.len)
+ var/hl="\red ([english_list(badshit)]) \black"
+ message_admins("[user.name] ([user.ckey]) added [reagents.get_reagent_ids(1)] to \a [target] with [src].[hl] (JMP)")
+ log_game("[user.name] ([user.ckey]) added [reagents.get_reagent_ids(1)] to \a [target] with [src].")
+
var/trans = src.reagents.trans_to(target, amount_per_transfer_from_this)
user << "\blue You transfer [trans] units of the solution to [target]."
diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm
index 0ac603856f9..d4fbfa96132 100644
--- a/code/modules/reagents/reagent_containers/pill.dm
+++ b/code/modules/reagents/reagent_containers/pill.dm
@@ -68,6 +68,18 @@
if(!target.reagents.total_volume)
user << "\red [target] is empty. Cant dissolve pill."
return
+
+ // /vg/: Logging transfers of bad things
+ if(target.reagents_to_log.len)
+ var/list/badshit=list()
+ for(var/bad_reagent in target.reagents_to_log)
+ if(reagents.has_reagent(bad_reagent))
+ badshit += reagents_to_log[bad_reagent]
+ if(badshit.len)
+ var/hl="\red ([english_list(badshit)]) \black"
+ message_admins("[user.name] ([user.ckey]) added [reagents.get_reagent_ids(1)] to \a [target] with [src].[hl] (JMP)")
+ log_game("[user.name] ([user.ckey]) added [reagents.get_reagent_ids(1)] to \a [target] with [src].")
+
user << "\blue You dissolve the pill in [target]"
reagents.trans_to(target, reagents.total_volume)
for(var/mob/O in viewers(2, user))
diff --git a/code/modules/reagents/reagent_containers/robodropper.dm b/code/modules/reagents/reagent_containers/robodropper.dm
index 4161f0f55b8..1e5a2384523 100644
--- a/code/modules/reagents/reagent_containers/robodropper.dm
+++ b/code/modules/reagents/reagent_containers/robodropper.dm
@@ -24,8 +24,19 @@
var/trans = 0
+ if(isobj(target))
+ // /vg/: Logging transfers of bad things
+ if(target.reagents_to_log.len)
+ var/list/badshit=list()
+ for(var/bad_reagent in target.reagents_to_log)
+ if(reagents.has_reagent(bad_reagent))
+ badshit += reagents_to_log[bad_reagent]
+ if(badshit.len)
+ var/hl="\red ([english_list(badshit)]) \black"
+ message_admins("[user.name] ([user.ckey]) added [reagents.get_reagent_ids(1)] to \a [target] with [src].[hl] (JMP)")
+ log_game("[user.name] ([user.ckey]) added [reagents.get_reagent_ids(1)] to \a [target] with [src].")
- if(ismob(target))
+ else if(ismob(target))
if(istype(target , /mob/living/carbon/human))
var/mob/living/carbon/human/victim = target
diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm
index 981e45b335d..4feb53dc196 100644
--- a/code/modules/reagents/reagent_containers/syringes.dm
+++ b/code/modules/reagents/reagent_containers/syringes.dm
@@ -172,6 +172,19 @@
src.reagents.reaction(target, INGEST)
if(ismob(target) && target == user)
src.reagents.reaction(target, INGEST)
+
+ if(isobj(target))
+ // /vg/: Logging transfers of bad things
+ if(target.reagents_to_log.len)
+ var/list/badshit=list()
+ for(var/bad_reagent in target.reagents_to_log)
+ if(reagents.has_reagent(bad_reagent))
+ badshit += reagents_to_log[bad_reagent]
+ if(badshit.len)
+ var/hl="\red ([english_list(badshit)]) \black"
+ message_admins("[user.name] ([user.ckey]) added [reagents.get_reagent_ids(1)] to \a [target] with [src].[hl] (JMP)")
+ log_game("[user.name] ([user.ckey]) added [reagents.get_reagent_ids(1)] to \a [target] with [src].")
+
spawn(5)
var/datum/reagent/blood/B
for(var/datum/reagent/blood/d in src.reagents.reagent_list)