var/list/dream_entries = list() /mob/living/carbon/human var/mob/living/brain_ghost/bg = null /mob/living/carbon/human/proc/handle_shared_dreaming(var/force_wakeup = FALSE) // If they're an Unconsious person with the abillity to do Skrellepathy. // If either changes, they should be nocked back to the real world. if(can_commune() && stat == UNCONSCIOUS && sleeping > 1) if(!istype(bg) && client) // Don't spawn a brainghost if we're not logged in. bg = new(src) // Generate a new brainghost. bg.ckey = ckey bg.client = client ckey = "@[bg.ckey]" to_chat(bg, "As you lose consiousness, you feel yourself entering Srom.") to_chat(bg, "Whilst in shared dreaming, you find it difficult to hide your secrets.") if(willfully_sleeping) to_chat(bg, "To wake up, use the \"Awaken\" verb in the IC tab.") log_and_message_admins("has entered the shared dream", bg) // Does NOT else if(istype(bg) || force_wakeup) // If we choose to be asleep, keep sleeping. if(willfully_sleeping && sleeping && stat == UNCONSCIOUS) sleeping = 5 return log_and_message_admins("has left the shared dream",bg) var/mob/living/brain_ghost/old_bg = bg bg = null ckey = old_bg.ckey old_bg.show_message("[bg] fades as their connection is severed.") animate(old_bg, alpha=0, time = 200) QDEL_IN(old_bg, 20) to_chat(src, "You are ripped from the Srom as your body awakens.")