diff --git a/code/modules/mob/living/carbon/xenomorph/castes/Queen.dm b/code/modules/mob/living/carbon/xenomorph/castes/Queen.dm index fb61996f2f12..c7e2dc40a80e 100644 --- a/code/modules/mob/living/carbon/xenomorph/castes/Queen.dm +++ b/code/modules/mob/living/carbon/xenomorph/castes/Queen.dm @@ -792,13 +792,24 @@ return TRUE /mob/living/carbon/xenomorph/queen/death(cause, gibbed) - if(hive.living_xeno_queen == src) + if(src == hive?.living_xeno_queen) hive.xeno_queen_timer = world.time + XENO_QUEEN_DEATH_DELAY - hive.banished_ckeys = list() // Reset the banished ckey list + + // Reset the banished ckey list + if(length(hive.banished_ckeys)) + for(var/mob/living/carbon/xenomorph/target_xeno in hive.totalXenos) + if(!target_xeno.ckey) + continue + for(var/mob_name in hive.banished_ckeys) + if(target_xeno.ckey == hive.banished_ckeys[mob_name]) + target_xeno.banished = FALSE + target_xeno.hud_update_banished() + target_xeno.lock_evolve = FALSE + hive.banished_ckeys = list() + icon = queen_standing_icon return ..() - /mob/living/carbon/xenomorph/queen/proc/mount_ovipositor() if(ovipositor) return //sanity check