From 43a7ca92711884273225decd9fc54fffc4f3528d Mon Sep 17 00:00:00 2001 From: mwerezak Date: Wed, 9 Sep 2015 02:30:15 -0400 Subject: [PATCH] Refactors robolimb emagging, fixes emag resolve_attackby not passing emag_source --- code/game/objects/items/weapons/cards_ids.dm | 2 +- .../mob/living/carbon/human/human_defense.dm | 23 ++++++++----------- 2 files changed, 10 insertions(+), 15 deletions(-) diff --git a/code/game/objects/items/weapons/cards_ids.dm b/code/game/objects/items/weapons/cards_ids.dm index cc805cf95bd..53517d91b07 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/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm index d0a04358dbf..4d88414e150 100644 --- a/code/modules/mob/living/carbon/human/human_defense.dm +++ b/code/modules/mob/living/carbon/human/human_defense.dm @@ -251,22 +251,17 @@ emp_act return 1 return 0 -//*** TODO - -/* TODO Reimplement pending cleanup -if(istype(I,/obj/item/weapon/card/emag)) - if(!(affecting.status & ORGAN_ROBOT)) - user << "\red That limb isn't robotic." - return +/mob/living/carbon/human/emag_act(var/remaining_charges, mob/user, var/emag_source) + var/obj/item/organ/external/affecting = get_organ(user.zone_sel.selecting) + if(!affecting || !(affecting.status & ORGAN_ROBOT)) + user << "That limb isn't robotic." + return -1 if(affecting.sabotaged) - user << "\red [src]'s [affecting.name] is already sabotaged!" - else - user << "\red You sneakily slide [I] into the dataport on [src]'s [affecting.name] and short out the safeties." - var/obj/item/weapon/card/emag/emag = I - emag.uses-- - affecting.sabotaged = 1 + user << "[src]'s [affecting.name] is already sabotaged!" + return -1 + user << "You sneakily slide [emag_source] into the dataport on [src]'s [affecting.name] and short out the safeties." + affecting.sabotaged = 1 return 1 -*/ //this proc handles being hit by a thrown atom /mob/living/carbon/human/hitby(atom/movable/AM as mob|obj,var/speed = THROWFORCE_SPEED_DIVISOR)