diff --git a/code/_globalvars/lists/objects.dm b/code/_globalvars/lists/objects.dm index 567e96b9c3..14c752613b 100644 --- a/code/_globalvars/lists/objects.dm +++ b/code/_globalvars/lists/objects.dm @@ -38,6 +38,4 @@ GLOBAL_LIST_EMPTY(wire_name_directory) GLOBAL_LIST_EMPTY(ai_status_displays) GLOBAL_LIST_EMPTY(mob_spawners) // All mob_spawn objects -GLOBAL_LIST_EMPTY(latejoin_mob_spawners) // All mob_spawn objects that can be viewed and accessed from the lobby. - GLOBAL_LIST_EMPTY(alert_consoles) // Station alert consoles, /obj/machinery/computer/station_alert diff --git a/code/modules/awaymissions/corpse.dm b/code/modules/awaymissions/corpse.dm index a05d731f0a..fc82a7bb3b 100644 --- a/code/modules/awaymissions/corpse.dm +++ b/code/modules/awaymissions/corpse.dm @@ -28,7 +28,6 @@ var/show_flavour = TRUE var/banType = "lavaland" var/ghost_usable = TRUE - var/latejoin_visible = TRUE //ATTACK GHOST IGNORING PARENT RETURN VALUE /obj/effect/mob_spawn/attack_ghost(mob/user, latejoinercalling) @@ -69,22 +68,18 @@ GLOB.poi_list |= src var/job_or_name = job_description ? job_description : name LAZYADD(GLOB.mob_spawners[job_or_name], src) - if(latejoin_visible) - LAZYADD(GLOB.latejoin_mob_spawners[job_or_name], src) /obj/effect/mob_spawn/Destroy() GLOB.poi_list -= src - var/job_or_name = job_description ? job_description : name - LAZYREMOVE(GLOB.mob_spawners[job_or_name], src) - if(!LAZYLEN(GLOB.mob_spawners[job_or_name])) - GLOB.mob_spawners -= job_or_name - LAZYREMOVE(GLOB.latejoin_mob_spawners[job_or_name], src) - if(!LAZYLEN(GLOB.latejoin_mob_spawners[job_or_name])) - GLOB.latejoin_mob_spawners -= job_or_name - + LAZYREMOVE(GLOB.mob_spawners[job_description ? job_description : name], src) + if(!LAZYLEN(GLOB.mob_spawners[job_description ? job_description : name])) + 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 ceca7e1372..686a028b47 100644 --- a/code/modules/mob/dead/new_player/new_player.dm +++ b/code/modules/mob/dead/new_player/new_player.dm @@ -163,8 +163,8 @@ to_chat(usr, "Server is full.") return - var/obj/effect/mob_spawn/MS = pick(GLOB.latejoin_mob_spawners[href_list["JoinAsGhostRole"]]) - if(istype(MS) && MS.attack_ghost(src, latejoinercalling = TRUE)) + var/obj/effect/mob_spawn/MS = pick(GLOB.mob_spawners[href_list["JoinAsGhostRole"]]) + 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.latejoin_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!
" @@ -457,15 +458,16 @@ "Engineering" = list(jobs = list(), titles = GLOB.engineering_positions, color = "#ffd699"), "Supply" = list(jobs = list(), titles = GLOB.supply_positions, color = "#ead4ae"), "Miscellaneous" = list(jobs = list(), titles = list(), color = "#ffffff", colBreak = TRUE), - "Ghost Role" = list(jobs = list(), titles = GLOB.latejoin_mob_spawners, color = "#ffffff"), + "Ghost Role" = list(jobs = list(), titles = GLOB.mob_spawners, color = "#ffffff"), "Synthetic" = list(jobs = list(), titles = GLOB.nonhuman_positions, color = "#ccffcc"), "Service" = list(jobs = list(), titles = GLOB.civilian_positions, color = "#cccccc"), "Medical" = list(jobs = list(), titles = GLOB.medical_positions, color = "#99ffe6", colBreak = TRUE), "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.latejoin_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)