diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm
index 17a27aa85e..07ed51c454 100644
--- a/code/game/objects/items/weapons/cards_ids.dm
+++ b/code/game/objects/items/weapons/cards_ids.dm
@@ -71,7 +71,7 @@
var/uses = 10
/obj/item/weapon/card/emag/resolve_attackby(atom/A, mob/user)
- var/used_uses = A.emag_act(uses, user)
+ var/used_uses = A.emag_act(uses, user, src)
if(used_uses < 0)
return ..(A, user)
diff --git a/code/game/objects/items/weapons/storage/lockbox.dm b/code/game/objects/items/weapons/storage/lockbox.dm
index 297ac1d4b1..c904907f64 100644
--- a/code/game/objects/items/weapons/storage/lockbox.dm
+++ b/code/game/objects/items/weapons/storage/lockbox.dm
@@ -35,7 +35,7 @@
else
user << "Access Denied"
else if(istype(W, /obj/item/weapon/melee/energy/blade))
- if(emag_act(INFINITY, user, "The locker has been sliced open by [user] with an energy blade!", "You hear metal being sliced and sparks flying."))
+ if(emag_act(INFINITY, user, W, "The locker has been sliced open by [user] with an energy blade!", "You hear metal being sliced and sparks flying."))
var/datum/effect/effect/system/spark_spread/spark_system = new /datum/effect/effect/system/spark_spread()
spark_system.set_up(5, 0, src.loc)
spark_system.start()
@@ -55,7 +55,7 @@
..()
return
-/obj/item/weapon/storage/lockbox/emag_act(var/remaining_charges, var/mob/user, var/visual_feedback = "", var/audible_feedback = "")
+/obj/item/weapon/storage/lockbox/emag_act(var/remaining_charges, var/mob/user, var/emag_source, var/visual_feedback = "", var/audible_feedback = "")
if(!broken)
if(visual_feedback)
visual_feedback = "[visual_feedback]"
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm
index 7401aac67b..395eb13df0 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/secure_closets.dm
@@ -90,7 +90,7 @@
else
togglelock(user)
-/obj/structure/closet/secure_closet/attack_hand(var/remaining_charges, var/mob/user, var/visual_feedback, var/audible_feedback)
+/obj/structure/closet/secure_closet/emag_act(var/remaining_charges, var/mob/user, var/emag_source, var/visual_feedback = "", var/audible_feedback = "")
if(!broken)
broken = 1
locked = 0
@@ -100,8 +100,11 @@
if(visual_feedback)
visible_message(visual_feedback, audible_feedback)
+ else if(user && emag_source)
+ visible_message("\The [src] has been broken by \the [user] with \an [emag_source]!", "You hear a faint electrical spark.")
else
- visible_message("The locker has been broken by [user] with an electromagnetic card!", "You hear a faint electrical spark.")
+ visible_message("\The [src] sparks and breaks open!", "You hear a faint electrical spark.")
+ return 1
/obj/structure/closet/secure_closet/attack_hand(mob/user as mob)
src.add_fingerprint(user)