diff --git a/code/modules/antagonists/mind_flayer/powers/flayer_stealth_powers.dm b/code/modules/antagonists/mind_flayer/powers/flayer_stealth_powers.dm
index f3d76cf1e2f..17729bd810e 100644
--- a/code/modules/antagonists/mind_flayer/powers/flayer_stealth_powers.dm
+++ b/code/modules/antagonists/mind_flayer/powers/flayer_stealth_powers.dm
@@ -187,27 +187,35 @@
color = COLOR_BLACK
flags = ABSTRACT | DROPDEL
w_class = WEIGHT_CLASS_HUGE
+ new_attack_chain = TRUE
var/conversion_time = 7 SECONDS
-/obj/item/melee/swarm_hand/afterattack__legacy__attackchain(atom/target, mob/living/user, proximity_flag, click_parameters)
- . = ..()
- if(!isrobot(target))
- return
- var/mob/living/silicon/robot/borg = target
- target.visible_message(
- "[user] puts [user.p_their()] hands on [target] and begins transferring energy!",
+/obj/item/melee/swarm_hand/pre_attack(atom/A, mob/living/user, params)
+ if(..())
+ return FINISH_ATTACK
+
+ if(!isrobot(A))
+ to_chat(user, "[src] will have no effect against this target!")
+ return FINISH_ATTACK
+
+ var/mob/living/silicon/robot/borg = A
+ borg.visible_message(
+ "[user] puts [user.p_their()] hands on [borg] and begins transferring energy!",
"[user] puts [user.p_their()] hands on you and begins transferring energy!")
if(borg.emagged || !borg.is_emaggable)
to_chat(user, "Your override attempt fails before it can even begin.")
qdel(src)
- return
+ return FINISH_ATTACK
+
if(!do_mob(user, borg, conversion_time, hidden = TRUE))
to_chat(user, "Your concentration breaks.")
qdel(src)
- return
+ return FINISH_ATTACK
+
to_chat(user, "The mass of swarms vanish into the cyborg's internals. Success.")
INVOKE_ASYNC(src, PROC_REF(emag_borg), borg, user)
qdel(src)
+ return FINISH_ATTACK
/obj/item/melee/swarm_hand/proc/emag_borg(mob/living/silicon/robot/borg, mob/living/user)
if(QDELETED(borg) || QDELETED(user))