Fixes CWC construct shells being visible as ghost role to latejoiners.

This commit is contained in:
Ghommie
2019-06-23 08:03:56 +02:00
parent 2f96e40120
commit b168a8c294
3 changed files with 20 additions and 8 deletions
+14 -4
View File
@@ -28,6 +28,7 @@
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)
@@ -66,13 +67,22 @@
create()
else if(ghost_usable)
GLOB.poi_list |= src
LAZYADD(GLOB.mob_spawners[job_description ? job_description : name], 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
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
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
return ..()
/obj/effect/mob_spawn/proc/special(mob/M)
@@ -163,7 +163,7 @@
to_chat(usr, "<span class='warning'>Server is full.</span>")
return
var/obj/effect/mob_spawn/MS = pick(GLOB.mob_spawners[href_list["JoinAsGhostRole"]])
var/obj/effect/mob_spawn/MS = pick(GLOB.latejoin_mob_spawners[href_list["JoinAsGhostRole"]])
if(istype(MS) && MS.attack_ghost(src, latejoinercalling = TRUE))
SSticker.queued_players -= src
SSticker.queue_delay = 4
@@ -443,7 +443,7 @@
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)
for(var/spawner in GLOB.latejoin_mob_spawners)
available_job_count++
break
@@ -457,14 +457,14 @@
"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.mob_spawners, color = "#ffffff"),
"Ghost Role" = list(jobs = list(), titles = GLOB.latejoin_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.mob_spawners)
for(var/spawner in GLOB.latejoin_mob_spawners)
categorizedJobs["Ghost Role"]["jobs"] += spawner
for(var/datum/job/job in SSjob.occupations)