diff --git a/code/datums/mind.dm b/code/datums/mind.dm index f2465145808..3e1c3207a87 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -70,6 +70,7 @@ // the world.time since the mob has been brigged, or -1 if not at all var/brigged_since = -1 + var/suicided = FALSE New(var/key) src.key = key diff --git a/code/game/machinery/cloning.dm b/code/game/machinery/cloning.dm index ccfa885a5d2..dbe860ec0cd 100644 --- a/code/game/machinery/cloning.dm +++ b/code/game/machinery/cloning.dm @@ -203,6 +203,9 @@ if(clonemind.active) //somebody is using that mind if(ckey(clonemind.key) != R.ckey) return 0 + if(clonemind.suicided) // and stay out! + malfunction(go_easy = 0) + return -1 // Flush the record else // get_ghost() will fail if they're unable to reenter their body var/mob/dead/observer/G = clonemind.get_ghost() diff --git a/code/game/machinery/computer/cloning.dm b/code/game/machinery/computer/cloning.dm index a95fee5fe2f..1eef8430d7b 100644 --- a/code/game/machinery/computer/cloning.dm +++ b/code/game/machinery/computer/cloning.dm @@ -372,7 +372,7 @@ scantemp = "Error: No signs of intelligence detected." nanomanager.update_uis(src) return - if(subject.suiciding == 1 && src.scanner.scan_level < 2) + if(subject.suiciding) scantemp = "Error: Subject's brain is not responding to scanning stimuli." nanomanager.update_uis(src) return diff --git a/code/modules/mob/living/death.dm b/code/modules/mob/living/death.dm index 8a043dbf591..2221455c5a5 100644 --- a/code/modules/mob/living/death.dm +++ b/code/modules/mob/living/death.dm @@ -1,6 +1,9 @@ /mob/living/death(gibbed) blinded = max(blinded, 1) + if(suiciding) + mind.suicided = TRUE + clear_fullscreens() update_action_buttons_icon()