diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm
index bdd2da3c1e2..d2a91da4020 100644
--- a/code/_onclick/item_attack.dm
+++ b/code/_onclick/item_attack.dm
@@ -57,12 +57,12 @@
return 0
else
return 1
-
- if(is_sharp(src) && user.a_intent == INTENT_HELP)
+ var/obj/item/organ/external/O = M.get_organ(user.zone_selected)
+ if((is_sharp(src) || (isscrewdriver(src) && O.is_robotic())) && user.a_intent == INTENT_HELP)
if(!attempt_initiate_surgery(src, M, user))
- return 0
+ return FALSE
else
- return 1
+ return TRUE
if(force && HAS_TRAIT(user, TRAIT_PACIFISM))
to_chat(user, "You don't want to harm other living beings!")
diff --git a/code/modules/mob/living/carbon/human/human_defense.dm b/code/modules/mob/living/carbon/human/human_defense.dm
index 1eb3936748d..e0a9001437e 100644
--- a/code/modules/mob/living/carbon/human/human_defense.dm
+++ b/code/modules/mob/living/carbon/human/human_defense.dm
@@ -16,7 +16,7 @@ emp_act
if(check_reflect(def_zone)) // Checks if you've passed a reflection% check
visible_message("The [P.name] gets reflected by [src]!", \
"The [P.name] gets reflected by [src]!")
-
+
P.reflect_back(src)
return -1 // complete projectile permutation
@@ -35,16 +35,6 @@ emp_act
return (..(P , def_zone))
-/mob/living/carbon/human/screwdriver_act(mob/user, obj/item/I)
- if(!can_operate(src)) //Checks if mob is lying down on table for surgery
- return
- if(!ismachine(src))
- return
- if(user.a_intent != INTENT_HELP)
- return
- if(attempt_initiate_surgery(I, src, user))
- return TRUE
-
/mob/living/carbon/human/welder_act(mob/user, obj/item/I)
if(user.a_intent != INTENT_HELP)
return