diff --git a/code/datums/mind.dm b/code/datums/mind.dm index d7e1f172fa3..588b5cc26c1 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -1764,6 +1764,11 @@ return G break +/datum/mind/proc/check_ghost_client() + var/mob/dead/observer/G = get_ghost() + if(G.client) + return TRUE + /datum/mind/proc/grab_ghost(force) var/mob/dead/observer/G = get_ghost(even_if_they_cant_reenter = force) . = G diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm index 2fd600384d0..cc96cb02de2 100644 --- a/code/game/data_huds.dm +++ b/code/game/data_huds.dm @@ -205,14 +205,11 @@ // To the right of health bar if(stat == DEAD || HAS_TRAIT(src, TRAIT_FAKEDEATH)) var/revivable_state = "dead" - if(!ghost_can_reenter()) // DNR or AntagHUD - revivable_state = "dead" - else if(ismachineperson(src) || (timeofdeath && is_revivable())) - revivable_state = "flatline" - else if(!mind) - revivable_state = "dead" - else if(get_ghost() || key) - revivable_state = "hassoul" + if(ghost_can_reenter()) // Not DNR or AntagHUD + if((ismachineperson(src) && client) || (!ismachineperson(src) && timeofdeath && is_revivable())) + revivable_state = "flatline" + else if(get_ghost() || key) + revivable_state = "hassoul" holder.icon_state = "hud[revivable_state]" diff --git a/code/modules/mob/living/carbon/examine.dm b/code/modules/mob/living/carbon/examine.dm index 2401baf1d7f..4a467dcaaae 100644 --- a/code/modules/mob/living/carbon/examine.dm +++ b/code/modules/mob/living/carbon/examine.dm @@ -252,8 +252,10 @@ if(suiciding) msg += "[p_they(TRUE)] appear[p_s()] to have committed suicide... there is no hope of recovery.\n" if(!just_sleeping) - msg += "[p_they(TRUE)] [p_are()] limp and unresponsive; there are no signs of life" + msg += "[p_they(TRUE)] [p_are()] limp and unresponsive" if(get_int_organ(/obj/item/organ/internal/brain) && !key) + if(!check_ghost_client()) + msg += "; there are no signs of life" if(!get_ghost()) msg += " and [p_their()] soul has departed" msg += "...\n" diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 2c1824e08ce..c7baee3ac6d 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -1108,6 +1108,10 @@ GLOBAL_LIST_INIT(slot_equipment_priority, list( \ if(mind) return mind.get_ghost(even_if_they_cant_reenter) +/mob/proc/check_ghost_client() + if(mind) + return mind.check_ghost_client() + /mob/proc/grab_ghost(force) if(mind) return mind.grab_ghost(force = force) diff --git a/code/modules/surgery/organs/brain.dm b/code/modules/surgery/organs/brain.dm index 1d10345d7bd..c1e52871a9b 100644 --- a/code/modules/surgery/organs/brain.dm +++ b/code/modules/surgery/organs/brain.dm @@ -61,7 +61,7 @@ . += "You can feel a bright spark of life in this one!" return if(brainmob?.mind) - if(brainmob.get_ghost()) + if(brainmob.check_ghost_client()) . += "You can feel the small spark of life still left in this one." return