[FIX] Mobs that were offered up to ghosts no longer get taken over by their old owners (#26650)

* Grab_ghost now checks the ckey of the mind

* Remove superfluous loops for getting ghosts.

* Early return for MMI

---------

Co-authored-by: adrermail@gmail.com <adrermail@gmail.com>
This commit is contained in:
Adrer
2024-09-16 14:39:54 +00:00
committed by GitHub
co-authored by adrermail@gmail.com <adrermail@gmail.com>
parent 98912fcea9
commit 8d82546d9d
7 changed files with 17 additions and 39 deletions
+8 -12
View File
@@ -234,19 +234,15 @@
return
if(!M.brainmob.key)
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 = 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, "<span class='notice'>[M] is completely unresponsive; there's no point.</span>")
var/mob/dead/observer/G = M.brainmob.get_ghost()
if(G)
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
else
to_chat(user, "<span class='warning'>[M] is currently inactive. Try again later.</span>")
to_chat(user, "<span class='notice'>[M] is completely unresponsive; there's no point.</span>")
return
to_chat(user, "<span class='warning'>[M] is currently inactive. Try again later.</span>")
return
if(M.brainmob.stat == DEAD)