From 1e59864256aa818dd8acbb76d090cd1587b4aac8 Mon Sep 17 00:00:00 2001 From: Vero <73014819+vero5123@users.noreply.github.com> Date: Fri, 5 Apr 2024 00:38:23 -0400 Subject: [PATCH] Fixes queen not being able to spawn (#6077) # About the pull request Fixes #5999 # Explain why it's good for the game bug fix # Changelog :cl: fix: fixes queen getting stuck in the lobby if they take too long /:cl: --------- Co-authored-by: DOOM Co-authored-by: Drathek <76988376+Drulikar@users.noreply.github.com> --- code/__DEFINES/xeno.dm | 2 +- code/game/gamemodes/cm_initialize.dm | 7 +++++-- code/game/gamemodes/colonialmarines/xenovsxeno.dm | 2 +- code/game/jobs/job/antag/xeno/queen.dm | 4 ++-- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/code/__DEFINES/xeno.dm b/code/__DEFINES/xeno.dm index fb9d6bfb4faf..18d4908c9df7 100644 --- a/code/__DEFINES/xeno.dm +++ b/code/__DEFINES/xeno.dm @@ -707,7 +707,7 @@ // target_hive integer the target hive to see if the source_hive is allied to it. #define HIVE_ALLIED_TO_HIVE(source_hive, target_hive) ((source_hive) == (target_hive) || GLOB.hive_datum[source_hive]?.faction_is_ally(GLOB.hive_datum[target_hive]?.internal_faction)) -#define QUEEN_SPAWN_TIMEOUT (2 MINUTES) +#define QUEEN_SPAWN_TIMEOUT (1 MINUTES) #define FIRE_IMMUNITY_NONE 0 #define FIRE_IMMUNITY_NO_DAMAGE (1<<0) diff --git a/code/game/gamemodes/cm_initialize.dm b/code/game/gamemodes/cm_initialize.dm index 971eb8f07178..400acdcb122a 100644 --- a/code/game/gamemodes/cm_initialize.dm +++ b/code/game/gamemodes/cm_initialize.dm @@ -687,9 +687,9 @@ Additional game mode variables. return TRUE /// Pick and setup a queen spawn from landmarks, then spawns the player there alongside any required setup -/datum/game_mode/proc/pick_queen_spawn(datum/mind/ghost_mind, hivenumber = XENO_HIVE_NORMAL) +/datum/game_mode/proc/pick_queen_spawn(mob/player, hivenumber = XENO_HIVE_NORMAL) RETURN_TYPE(/turf) - + var/datum/mind/ghost_mind = player.mind var/mob/living/original = ghost_mind.current var/datum/hive_status/hive = GLOB.hive_datum[hivenumber] if(hive.living_xeno_queen || !original || !original.client) @@ -710,6 +710,9 @@ Additional game mode variables. spawn_list_map[spawn_name] = T var/selected_spawn = tgui_input_list(original, "Where do you want you and your hive to spawn?", "Queen Spawn", spawn_list_map, QUEEN_SPAWN_TIMEOUT, theme="hive_status") + if(hive.living_xeno_queen) + to_chat(original, SPAN_XENOANNOUNCE("You have taken too long to pick a spawn location, a queen has already evolved before you.")) + player.send_to_lobby() if(!selected_spawn) selected_spawn = pick(spawn_list_map) to_chat(original, SPAN_XENOANNOUNCE("You have taken too long to pick a spawn location, one has been chosen for you.")) diff --git a/code/game/gamemodes/colonialmarines/xenovsxeno.dm b/code/game/gamemodes/colonialmarines/xenovsxeno.dm index 79754a6fff84..d287709d5516 100644 --- a/code/game/gamemodes/colonialmarines/xenovsxeno.dm +++ b/code/game/gamemodes/colonialmarines/xenovsxeno.dm @@ -154,7 +154,7 @@ var/mob/living/carbon/xenomorph/larva/L = new(xeno_turf, null, hivenumber) ghost_mind.transfer_to(L) -/datum/game_mode/xenovs/pick_queen_spawn(datum/mind/ghost_mind, hivenumber = XENO_HIVE_NORMAL) +/datum/game_mode/xenovs/pick_queen_spawn(mob/player, hivenumber = XENO_HIVE_NORMAL) . = ..() if(!.) return // Spawn additional hive structures diff --git a/code/game/jobs/job/antag/xeno/queen.dm b/code/game/jobs/job/antag/xeno/queen.dm index 5702f9b1a671..144f8e42e6ad 100644 --- a/code/game/jobs/job/antag/xeno/queen.dm +++ b/code/game/jobs/job/antag/xeno/queen.dm @@ -9,8 +9,8 @@ /datum/job/antag/xenos/queen/set_spawn_positions(count) return spawn_positions -/datum/job/antag/xenos/queen/transform_to_xeno(mob/new_player/NP, hive_index) - SSticker.mode.pick_queen_spawn(NP.mind, hive_index) +/datum/job/antag/xenos/queen/transform_to_xeno(mob/living/carbon/human/human_to_transform, hive_index) + SSticker.mode.pick_queen_spawn(human_to_transform, hive_index) /datum/job/antag/xenos/queen/announce_entry_message(mob/new_queen, account, whitelist_status) to_chat(new_queen, "You are now the alien queen!")