diff --git a/code/modules/mob/dead/observer/observer.dm b/code/modules/mob/dead/observer/observer.dm index e974a93553a3..732c60a71870 100644 --- a/code/modules/mob/dead/observer/observer.dm +++ b/code/modules/mob/dead/observer/observer.dm @@ -471,6 +471,12 @@ Works together with spawning an observer, noted above. mind = null + // Larva queue: We use the larger of their existing queue time or the new timeofdeath except for facehuggers or lesser drone + var/new_tod = (isfacehugger(src) || islesserdrone(src)) ? 1 : ghost.timeofdeath + + // if they died as facehugger or lesser drone, bypass typical TOD checks + ghost.bypass_time_of_death_checks = (isfacehugger(src) || islesserdrone(src)) + if(ghost.client) ghost.client.init_verbs() ghost.client.change_view(GLOB.world_view_size) //reset view range to default @@ -485,13 +491,12 @@ Works together with spawning an observer, noted above. if(ghost.client.player_data) ghost.client.player_data.load_timestat_data() - // Larva queue: We use the larger of their existing queue time or the new timeofdeath except for facehuggers or lesser drone - var/new_tod = (isfacehugger(src) || islesserdrone(src)) ? 1 : ghost.timeofdeath - - // if they died as facehugger or lesser drone, bypass typical TOD checks - ghost.bypass_time_of_death_checks = (isfacehugger(src) || islesserdrone(src)) + ghost.client.player_details.larva_queue_time = max(ghost.client.player_details.larva_queue_time, new_tod) - ghost.client?.player_details.larva_queue_time = max(ghost.client.player_details.larva_queue_time, new_tod) + else if(persistent_ckey) + var/datum/player_details/details = GLOB.player_details[persistent_ckey] + if(details) + details.larva_queue_time = max(details.larva_queue_time, new_tod) ghost.set_huds_from_prefs()