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].")