Srom no longer crashes you on death (#13893)

This commit is contained in:
Llywelwyn
2022-05-14 03:41:50 +02:00
committed by GitHub
parent c76f4574f0
commit be2d9ffed7
4 changed files with 23 additions and 9 deletions
+7 -6
View File
@@ -102,9 +102,10 @@
return
/mob/proc/exit_vr()
// If we have a remotely controlled mob, we come back to our body to die properly
if(vr_mob)
vr_mob.body_return()
// Alternatively, if we are the remotely controlled mob, just kick our controller out
if(old_mob)
body_return()
if(!bg) // If brainghost exists, let handle_shared_dreaming handle the wake up
// If we have a remotely controlled mob, we come back to our body to die properly
if(vr_mob)
vr_mob.body_return()
// Alternatively, if we are the remotely controlled mob, just kick our controller out
if(old_mob)
body_return()
+4 -2
View File
@@ -37,11 +37,12 @@
/mob/living/brain_ghost/proc/awaken_impl(var/force_awaken = FALSE)
if(body.willfully_sleeping)
body.sleeping = max(body.sleeping - 5, 0)
body.willfully_sleeping = FALSE
if(force_awaken)
body.sleeping = 0
to_chat(src, "<span class='notice'>You suddenly feel like your connection to the dream is breaking up by the outside force.</span>")
else
body.sleeping = max(body.sleeping - 5, 0)
to_chat(src, "<span class='notice'>You release your concentration on sleep, allowing yourself to wake up.</span>")
else
to_chat(src, "<span class='warning'>You've already released concentration. Wait to wake up naturally.</span>")
@@ -56,7 +57,8 @@
return
if(body.stat == DEAD) // Body is dead, and won't get a life tick.
body.handle_shared_dreaming()
awaken_impl(TRUE)
body.handle_shared_dreaming(TRUE)
/mob/living/brain_ghost/say(var/message, var/datum/language/speaking = null, var/verb="says", var/alt_name="", var/ghost_hearing = GHOSTS_ALL_HEAR, var/whisper = FALSE)
if(!istype(body) || body.stat!=UNCONSCIOUS)
+6 -1
View File
@@ -1,7 +1,9 @@
var/list/dream_entries = list()
/mob/living/carbon/human
/mob
var/mob/living/brain_ghost/bg
/mob/living/carbon/human
var/datum/weakref/srom_pulled_by
var/datum/weakref/srom_pulling
@@ -83,6 +85,9 @@ var/list/dream_entries = list()
return_mob = B.host_brain
return_text = "You are ripped from the Srom as you return to the captivity of your own mind."
if(stat == DEAD)
return_text = "You are ripped from the Srom." // You're dead - ensures there's no message about feeling weird or waking up.
return_mob.ckey = old_bg.ckey
old_bg.visible_message("<span class='notice'>[old_bg] begins to fade as they depart from the dream...</span>")
animate(old_bg, alpha=0, time = 20)