diff --git a/code/game/objects/items/weapons/id cards/cards.dm b/code/game/objects/items/weapons/id cards/cards.dm
index 260eff8539..c02213078b 100644
--- a/code/game/objects/items/weapons/id cards/cards.dm
+++ b/code/game/objects/items/weapons/id cards/cards.dm
@@ -136,3 +136,29 @@
uses = CEILING(uses, 1) //Ensures no decimal uses nonsense, rounds up to be nice
to_chat(usr, "You add \the [O] to \the [src]. Increasing the uses of \the [src] to [uses].")
qdel(O)
+
+
+/obj/item/weapon/card/emag/borg
+ uses = 12
+ var/burnt_out = FALSE
+
+/obj/item/weapon/card/emag/borg/afterattack(atom/A, mob/user, proximity, var/click_parameters)
+ if(!proximity || burnt_out) return
+ var/used_uses = A.emag_act(uses, user, src)
+ if(used_uses < 0)
+ return ..(A, user, proximity, click_parameters)
+
+ uses -= used_uses
+ A.add_fingerprint(user)
+ //Vorestation Edit: Because some things (read lift doors) don't get emagged
+ if(used_uses)
+ log_and_message_admins("emagged \an [A].")
+ else
+ log_and_message_admins("attempted to emag \an [A].")
+ // Vorestation Edit: End of Edit
+
+ if(uses<1)
+ user.visible_message("\The [src] fizzles and sparks - it seems it's been used once too often, and is now spent.")
+ burnt_out = TRUE
+
+ return 1
\ No newline at end of file
diff --git a/code/modules/mob/living/silicon/robot/drone/drone_items.dm b/code/modules/mob/living/silicon/robot/drone/drone_items.dm
index e789879d84..0521e44e9e 100644
--- a/code/modules/mob/living/silicon/robot/drone/drone_items.dm
+++ b/code/modules/mob/living/silicon/robot/drone/drone_items.dm
@@ -380,7 +380,7 @@
else if(istype(target,/obj/machinery/power/apc))
var/obj/machinery/power/apc/A = target
if(A.opened)
- if(A.cell)
+ if(A.cell && is_type_in_list(A.cell, can_hold))
wrapped = A.cell
@@ -397,7 +397,7 @@
else if(istype(target,/mob/living/silicon/robot))
var/mob/living/silicon/robot/A = target
if(A.opened)
- if(A.cell)
+ if(A.cell && is_type_in_list(A.cell, can_hold))
wrapped = A.cell
diff --git a/code/modules/mob/living/silicon/robot/robot_modules/syndicate.dm b/code/modules/mob/living/silicon/robot/robot_modules/syndicate.dm
index eadb5ca91c..b6ed16f65f 100644
--- a/code/modules/mob/living/silicon/robot/robot_modules/syndicate.dm
+++ b/code/modules/mob/living/silicon/robot/robot_modules/syndicate.dm
@@ -36,7 +36,8 @@
src.modules += jetpack
robot.internals = jetpack
- id = robot.idcard
+ var/obj/id = robot.idcard
+ id.forceMove(src)
src.modules += id
/obj/item/weapon/robot_module/robot/syndicate/Destroy()
@@ -82,7 +83,7 @@
// Hacking other things.
src.modules += new /obj/item/weapon/card/robot/syndi(src)
- src.modules += new /obj/item/weapon/card/emag(src)
+ src.modules += new /obj/item/weapon/card/emag/borg(src)
// Materials.
var/datum/matter_synth/nanite = new /datum/matter_synth/nanite(10000)
@@ -135,7 +136,6 @@
/obj/item/weapon/robot_module/robot/syndicate/combat_medic/create_equipment(var/mob/living/silicon/robot/robot)
..()
- src.modules += new /obj/item/borg/sight/hud/med(src)
src.modules += new /obj/item/device/healthanalyzer/phasic(src)
src.modules += new /obj/item/weapon/reagent_containers/borghypo/merc(src)