diff --git a/code/datums/emergency_calls/forsaken_xenos.dm b/code/datums/emergency_calls/forsaken_xenos.dm index c609a2c780da..c4b99eeaeb64 100644 --- a/code/datums/emergency_calls/forsaken_xenos.dm +++ b/code/datums/emergency_calls/forsaken_xenos.dm @@ -27,6 +27,5 @@ new_member.transfer_to(new_xeno, TRUE) new_xeno.set_hive_and_update(XENO_HIVE_FORSAKEN) - new_xeno.lock_evolve = TRUE QDEL_NULL(current_mob) diff --git a/code/modules/mob/living/carbon/xenomorph/Evolution.dm b/code/modules/mob/living/carbon/xenomorph/Evolution.dm index 83d058a76002..be3e34808fef 100644 --- a/code/modules/mob/living/carbon/xenomorph/Evolution.dm +++ b/code/modules/mob/living/carbon/xenomorph/Evolution.dm @@ -262,7 +262,7 @@ GLOBAL_LIST_EMPTY(deevolved_ckeys) to_chat(src, SPAN_WARNING("Our link to the hive is being suppressed...we should wait a bit.")) return FALSE - if(lock_evolve) + if(lock_evolve || (hive.evolution_locked && !islarva(src))) if(banished) to_chat(src, SPAN_WARNING("We are banished and cannot reach the hivemind.")) else @@ -381,7 +381,7 @@ GLOBAL_LIST_EMPTY(deevolved_ckeys) if(length(caste.deevolves_to) < 1) to_chat(src, SPAN_XENOWARNING("We can't deevolve any further.")) return - if(lock_evolve) + if(lock_evolve || hive.evolution_locked) if(banished) to_chat(src, SPAN_WARNING("We are banished and cannot reach the hivemind.")) else @@ -459,6 +459,7 @@ GLOBAL_LIST_EMPTY(deevolved_ckeys) new_xeno.built_structures = built_structures.Copy() built_structures = null + new_xeno.lock_evolve = lock_evolve if(mind) mind.transfer_to(new_xeno) diff --git a/code/modules/mob/living/carbon/xenomorph/hive_status.dm b/code/modules/mob/living/carbon/xenomorph/hive_status.dm index 0b0e295c43c5..1c83f1ddcdab 100644 --- a/code/modules/mob/living/carbon/xenomorph/hive_status.dm +++ b/code/modules/mob/living/carbon/xenomorph/hive_status.dm @@ -60,6 +60,7 @@ var/dynamic_evolution = TRUE var/evolution_rate = 3 // Only has use if dynamic_evolution is false var/evolution_bonus = 0 + var/evolution_locked = FALSE var/allow_no_queen_actions = FALSE var/allow_no_queen_evo = FALSE @@ -1311,6 +1312,7 @@ latejoin_burrowed = FALSE see_humans_on_tacmap = TRUE tacmap_requires_queen_ovi = FALSE + evolution_locked = TRUE need_round_end_check = TRUE