diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index 7274f73965..8d2e6fcedf 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -68,6 +68,7 @@ GLOB.poi_list |= src LAZYADD(GLOB.mob_spawners[job_description ? job_description : name], src) + /obj/effect/mob_spawn/Destroy() GLOB.poi_list -= src LAZYREMOVE(GLOB.mob_spawners[job_description ? job_description : name], src) @@ -75,6 +76,9 @@ GLOB.mob_spawners -= job_description ? job_description : name return ..() +/obj/effect/mob_spawn/proc/can_latejoin() //If it can be taken from the lobby. + return TRUE + /obj/effect/mob_spawn/proc/special(mob/M) return diff --git a/code/modules/mob/dead/new_player/new_player.dm b/code/modules/mob/dead/new_player/new_player.dm index 84be6438c0..686a028b47 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -164,7 +164,7 @@ return var/obj/effect/mob_spawn/MS = pick(GLOB.mob_spawners[href_list["JoinAsGhostRole"]]) - if(istype(MS) && MS.attack_ghost(src, latejoinercalling = TRUE)) + if(MS?.attack_ghost(src, latejoinercalling = TRUE)) SSticker.queued_players -= src SSticker.queue_delay = 4 qdel(src) @@ -443,9 +443,10 @@ for(var/datum/job/job in SSjob.occupations) if(job && IsJobUnavailable(job.title, TRUE) == JOB_AVAILABLE) available_job_count++ - for(var/spawner in GLOB.mob_spawners) - available_job_count++ - break + for(var/obj/effect/mob_spawn/spawner in GLOB.mob_spawners) + if(spawner.can_latejoin()) + available_job_count++ + break if(!available_job_count) dat += "
There are currently no open positions!
" @@ -464,8 +465,9 @@ "Science" = list(jobs = list(), titles = GLOB.science_positions, color = "#e6b3e6"), "Security" = list(jobs = list(), titles = GLOB.security_positions, color = "#ff9999"), ) - for(var/spawner in GLOB.mob_spawners) - categorizedJobs["Ghost Role"]["jobs"] += spawner + for(var/obj/effect/mob_spawn/spawner in GLOB.mob_spawners) + if(spawner.can_latejoin()) + categorizedJobs["Ghost Role"]["jobs"] += spawner for(var/datum/job/job in SSjob.occupations) if(job && IsJobUnavailable(job.title, TRUE) == JOB_AVAILABLE)