diff --git a/code/modules/mob/living/brain/robotic_brain.dm b/code/modules/mob/living/brain/robotic_brain.dm index 0fd4dc8cdbc..fbaa53320c6 100644 --- a/code/modules/mob/living/brain/robotic_brain.dm +++ b/code/modules/mob/living/brain/robotic_brain.dm @@ -16,7 +16,8 @@ var/requires_master = TRUE var/mob/living/carbon/human/imprinted_master = null var/ejected_flavor_text = "circuit" - + /// If this is a posibrain, which will reject attempting to put a new ghost in it, because this a real brain we care about, not a robobrain + var/can_be_reinhabited = TRUE dead_icon = "boris_blank" /obj/item/mmi/robotic_brain/Destroy() @@ -31,7 +32,7 @@ to_chat(user, "You press your thumb on [src] and imprint your user information.") imprinted_master = user return - if(brainmob && !brainmob.key && !searching) + if(brainmob && !brainmob.key && !searching && can_be_reinhabited) //Start the process of searching for a new user. to_chat(user, "You carefully locate the manual activation switch and start [src]'s boot process.") request_player() @@ -93,7 +94,7 @@ become_occupied(occupied_icon) /obj/item/mmi/robotic_brain/proc/reset_search() //We give the players sixty seconds to decide, then reset the timer. - if(brainmob && brainmob.key) + if(brainmob && brainmob.key || !searching) return searching = FALSE @@ -104,6 +105,8 @@ /obj/item/mmi/robotic_brain/proc/volunteer(mob/dead/observer/user) if(!searching) return + if(brainmob && brainmob.key) + return // No, something is wrong, abort. if(!istype(user) && !HAS_TRAIT(user, TRAIT_RESPAWNABLE)) to_chat(user, "Seems you're not a ghost. Could you please file an exploit report on the forums?") return @@ -182,11 +185,11 @@ ..() /obj/item/mmi/robotic_brain/attack_ghost(mob/dead/observer/O) + if(brainmob && brainmob.key) + return // No point pinging a posibrain with a player already inside if(searching) volunteer(O) return - if(brainmob && brainmob.key) - return // No point pinging a posibrain with a player already inside if(validity_checks(O) && (world.time >= next_ping_at)) next_ping_at = world.time + (20 SECONDS) playsound(get_turf(src), 'sound/items/posiping.ogg', 80, 0) @@ -204,3 +207,4 @@ requires_master = FALSE ejected_flavor_text = "metal cube" dead_icon = "posibrain" + can_be_reinhabited = FALSE