diff --git a/code/game/machinery/cryopod.dm b/code/game/machinery/cryopod.dm index 2ba902e4c2..c9c555e331 100644 --- a/code/game/machinery/cryopod.dm +++ b/code/game/machinery/cryopod.dm @@ -308,7 +308,7 @@ storing += I // get rid of mobs - for(var/mob/living/L in mob_occupant.GetAllContents()) + for(var/mob/living/L in mob_occupant.GetAllContents() - mob_occupant) L.forceMove(drop_location()) if(storing.len) diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index 0c57c13e3f..b16903f062 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -277,6 +277,11 @@ Works together with spawning an observer, noted above. if (client && client.prefs && client.prefs.auto_ooc) if (!(client.prefs.chat_toggles & CHAT_OOC)) client.prefs.chat_toggles ^= CHAT_OOC + if(ckey && penalize) + var/datum/preferences/P = GLOB.preferences_datums[ckey] + if(P) + P.respawn_restrictions_active = TRUE + P.respawn_time_of_death = world.time transfer_ckey(ghost, FALSE) ghost.client.init_verbs() if(penalize) diff --git a/code/modules/mob/dead/observer/respawn.dm b/code/modules/mob/dead/observer/respawn.dm index 0ccdc460cf..5a5a4572bd 100644 --- a/code/modules/mob/dead/observer/respawn.dm +++ b/code/modules/mob/dead/observer/respawn.dm @@ -87,8 +87,12 @@ if(randombody && (nameless || randomname)) return TRUE // somewhat unrecognizable if(client.prefs.slots_joined_as && (client.prefs.default_slot in client.prefs.slots_joined_as)) + if(notify) + to_chat(src, "You cannot respawn on the same slot. Joined slots: [english_list(client.prefs.slots_joined_as)].") return FALSE if((!nameless && !randomname) && (client.prefs.characters_joined_as && (client.prefs.real_name in client.prefs.characters_joined_as))) + if(notify) + to_chat(src, "You cannot respawn on the same character. Joined slots: [english_list(client.prefs.characters_joined_as)].") return FALSE return TRUE