diff --git a/code/game/objects/items/robot/robot_parts.dm b/code/game/objects/items/robot/robot_parts.dm
index ca2fb17c004..51c8c248af1 100644
--- a/code/game/objects/items/robot/robot_parts.dm
+++ b/code/game/objects/items/robot/robot_parts.dm
@@ -226,20 +226,25 @@
to_chat(user, "Sticking an empty [M] into the frame would sort of defeat the purpose.")
return
+ if(jobban_isbanned(M.brainmob, "Cyborg") || jobban_isbanned(M.brainmob,"nonhumandept"))
+ to_chat(user, "This [W] is not fit to serve as a cyborg!")
+ return
+
if(!M.brainmob.key)
- var/ghost_can_reenter = 0
+ var/ghost_can_reenter = FALSE
if(M.brainmob.mind)
for(var/mob/dead/observer/G in GLOB.player_list)
if(G.can_reenter_corpse && G.mind == M.brainmob.mind)
- ghost_can_reenter = 1
- break
- for(var/mob/living/simple_animal/S in GLOB.player_list)
- if(S in GLOB.respawnable_list)
- ghost_can_reenter = 1
+ ghost_can_reenter = TRUE
+ if(M.next_possible_ghost_ping < world.time)
+ G.notify_cloning("Somebody is trying to borg you! Re-enter your corpse if you want to be borged!", 'sound/voice/liveagain.ogg', src)
+ M.next_possible_ghost_ping = world.time + 30 SECONDS // Avoid spam
break
if(!ghost_can_reenter)
to_chat(user, "[M] is completely unresponsive; there's no point.")
- return
+ else
+ to_chat(user, "[M] is currently inactive. Try again later.")
+ return
if(M.brainmob.stat == DEAD)
to_chat(user, "Sticking a dead [M] into the frame would sort of defeat the purpose.")
@@ -249,9 +254,6 @@
to_chat(user, "The frame's firmware lets out a shrill sound, and flashes 'Abnormal Memory Engram'. It refuses to accept the [M].")
return
- if(jobban_isbanned(M.brainmob, "Cyborg") || jobban_isbanned(M.brainmob,"nonhumandept"))
- to_chat(user, "This [W] does not seem to fit.")
- return
var/datum/ai_laws/laws_to_give
if(M.syndiemmi)
diff --git a/code/modules/mob/living/carbon/brain/MMI.dm b/code/modules/mob/living/carbon/brain/MMI.dm
index a17d7b8ebbd..7443e4edbe3 100644
--- a/code/modules/mob/living/carbon/brain/MMI.dm
+++ b/code/modules/mob/living/carbon/brain/MMI.dm
@@ -23,6 +23,9 @@
// Needed to fix a rather insane bug when a posibrain/robotic brain commits suicide
var/dead_icon = "mmi_dead"
+ /// Time at which the ghost belonging to the mind in the mmi can be pinged again to be borged
+ var/next_possible_ghost_ping
+
/obj/item/mmi/attackby(var/obj/item/O as obj, var/mob/user as mob, params)
if(istype(O, /obj/item/organ/internal/brain/crystal))
to_chat(user, " This brain is too malformed to be able to use with the [src].")