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..c6636d034e0 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)) + 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