diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm
index 7e67bd417c2..257c583814b 100644
--- a/code/game/machinery/cryopod.dm
+++ b/code/game/machinery/cryopod.dm
@@ -319,7 +319,7 @@
else if(O.target && istype(O.target,/datum/mind))
if(O.target == occupant.mind)
if(O.owner && O.owner.current)
- to_chat(O.owner.current, "You get the feeling your target is no longer within your reach. Time for Plan [pick(list("A","B","C","D","X","Y","Z"))]...")
+ to_chat(O.owner.current, "You get the feeling your target is no longer within reach. Time for Plan [pick("A","B","C","D","X","Y","Z")]. Objectives updated!")
O.target = null
spawn(1) //This should ideally fire after the occupant is deleted.
if(!O) return
@@ -344,6 +344,7 @@
// Delete them from datacore.
+ var/announce_rank = null
if(PDA_Manifest.len)
PDA_Manifest.Cut()
for(var/datum/data/record/R in data_core.medical)
@@ -354,6 +355,7 @@
qdel(T)
for(var/datum/data/record/G in data_core.general)
if((G.fields["name"] == occupant.real_name))
+ announce_rank = G.fields["rank"]
qdel(G)
if(orient_right)
@@ -369,10 +371,15 @@
ailist += A
if(ailist.len)
var/mob/living/silicon/ai/announcer = pick(ailist)
- announcer.say(";[occupant.real_name] [on_store_message]")
+ if (announce_rank)
+ announcer.say(";[occupant.real_name] ([announce_rank]) [on_store_message]")
+ else
+ announcer.say(";[occupant.real_name] [on_store_message]")
else
- announce.autosay("[occupant.real_name] [on_store_message]", "[on_store_name]")
-
+ if (announce_rank)
+ announce.autosay("[occupant.real_name] ([announce_rank]) [on_store_message]", "[on_store_name]")
+ else
+ announce.autosay("[occupant.real_name] [on_store_message]", "[on_store_name]")
visible_message("\The [src] hums and hisses as it moves [occupant.real_name] into storage.")
// Delete the mob.
diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm
index 497e1ed18bc..63c967a77c1 100644
--- a/code/modules/mob/dead/observer/observer.dm
+++ b/code/modules/mob/dead/observer/observer.dm
@@ -72,7 +72,7 @@ var/list/image/ghost_darkness_images = list() //this is a list of images for thi
name = capitalize(pick(first_names_female)) + " " + capitalize(pick(last_names))
mind = body.mind //we don't transfer the mind but we keep a reference to it.
-
+
ghostimage = image(icon = icon, loc = src, icon_state = icon_state)
ghostimage.overlays = overlays
ghostimage.dir = dir
@@ -157,13 +157,17 @@ This is the proc mobs get to turn into a ghost. Forked from ghostize due to comp
resting = 1
var/mob/dead/observer/ghost = ghostize(0) //0 parameter is so we can never re-enter our body, "Charlie, you can never come baaaack~" :3
ghost.timeofdeath = world.time // Because the living mob won't have a time of death and we want the respawn timer to work properly.
-
var/obj/structure/morgue/Morgue = locate() in M.loc
if(istype(M.loc,/obj/structure/morgue))
Morgue = M.loc
if(Morgue)
Morgue.update()
-
+ if(istype(M.loc,/obj/machinery/cryopod))
+ var/obj/machinery/cryopod/P = M.loc
+ if(!P.control_computer)
+ P.find_control_computer(urgent=1)
+ if(P.control_computer)
+ P.despawn_occupant()
return