diff --git a/code/game/machinery/computer/prisoner.dm b/code/game/machinery/computer/prisoner.dm
index 7ca9f1ba0ad..76539ed9148 100644
--- a/code/game/machinery/computer/prisoner.dm
+++ b/code/game/machinery/computer/prisoner.dm
@@ -124,9 +124,9 @@
to_chat(R, "You hear a voice in your head saying: '[warning]'")
else if(href_list["explode"])
- var/obj/item/weapon/implant/I = locate(href_list["explode"])
+ var/obj/item/weapon/implant/explosive/remote/I = locate(href_list["explode"])
if(istype(I))
- I.activate()
+ I.activate(usr)
src.add_fingerprint(usr)
src.updateUsrDialog()
diff --git a/code/game/objects/items/weapons/implants/types/chemical_implant.dm b/code/game/objects/items/weapons/implants/types/chemical_implant.dm
index 1c3b908cb1b..224c5faa002 100644
--- a/code/game/objects/items/weapons/implants/types/chemical_implant.dm
+++ b/code/game/objects/items/weapons/implants/types/chemical_implant.dm
@@ -7,11 +7,9 @@
..()
create_reagents(50)
chemical_implants.Add(src)
- remote_implants.Add(src)
/obj/item/weapon/implant/chem/Destroy()
chemical_implants.Remove(src)
- remote_implants.Remove(src)
..()
/obj/item/weapon/implant/chem/get_data()
diff --git a/code/game/objects/items/weapons/implants/types/explosive_implant.dm b/code/game/objects/items/weapons/implants/types/explosive_implant.dm
index bdebb95c4ef..38f6d41dd81 100644
--- a/code/game/objects/items/weapons/implants/types/explosive_implant.dm
+++ b/code/game/objects/items/weapons/implants/types/explosive_implant.dm
@@ -111,6 +111,14 @@
desc = "Injects \"chemicals\"."
icon_state = "implant"
+/obj/item/weapon/implant/explosive/remote/New()
+ ..()
+ remote_implants.Add(src)
+
+/obj/item/weapon/implant/explosive/remote/Destroy()
+ remote_implants.Remove(src)
+ ..()
+
/obj/item/weapon/implant/explosive/remote/get_data()
return {"
Implant Specifications:
@@ -127,21 +135,21 @@ the implant may become unstable and either pre-maturely inject the subject or si
/obj/item/weapon/implant/explosive/remote/Hear()
return
-/obj/item/weapon/implant/explosive/remote/activate()
+/obj/item/weapon/implant/explosive/remote/activate(mob/user)
if(malfunction == IMPLANT_MALFUNCTION_PERMANENT)
return
if(iscarbon(imp_in))
var/mob/M = imp_in
- message_admins("Remote explosive implant triggered in [M] ([M.key]). (JMP) ")
- log_game("Remote explosive implant triggered in [M] ([M.key]).")
+ message_admins("Remote explosive implant triggered in [M] ([M.key])[user ? "by [user] ([user.key])": ""]. (JMP) ")
+ log_game("Remote explosive implant triggered in [M] ([M.key])[user ? "by [user] ([user.key])": ""].")
to_chat(M, "You hear a faint *beep*.")
var/turf/T = get_turf(M)
M.gib()
- explosion(T, 1, 1, 3, 4, whodunnit = M)
+ explosion(T, 1, 1, 3, 4, whodunnit = user)
T.hotspot_expose(3500, 125, surfaces = 1)
qdel(src)