From daa6d0a5b5f6835ec7607f76306f16aa1aeee1af Mon Sep 17 00:00:00 2001 From: CHOMPStation2 <58959929+CHOMPStation2@users.noreply.github.com> Date: Sun, 5 Nov 2023 00:26:51 -0700 Subject: [PATCH] [MIRROR] Fixes some syndie borg items (#7165) Co-authored-by: Heroman3003 <31296024+Heroman3003@users.noreply.github.com> Co-authored-by: CHOMPStation2 --- .../objects/items/weapons/id cards/cards.dm | 26 +++++++++++++++++++ .../living/silicon/robot/drone/drone_items.dm | 4 +-- .../silicon/robot/robot_modules/syndicate.dm | 6 ++--- 3 files changed, 31 insertions(+), 5 deletions(-) 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)