Adds spawn override system

This commit is contained in:
AnturK
2017-11-24 22:18:50 +01:00
parent 3d28b08475
commit 271cbaee71
3 changed files with 21 additions and 0 deletions
+1
View File
@@ -24,6 +24,7 @@ GLOBAL_LIST_EMPTY(landmarks_list) //list of all landmarks created
GLOBAL_LIST_EMPTY(start_landmarks_list) //list of all spawn points created
GLOBAL_LIST_EMPTY(department_security_spawns) //list of all department security spawns
GLOBAL_LIST_EMPTY(generic_event_spawns) //list of all spawns for events
GLOBAL_LIST_EMPTY(jobspawn_overrides) //These will take precedence over normal spawnpoints if created.
GLOBAL_LIST_EMPTY(wizardstart)
GLOBAL_LIST_EMPTY(nukeop_start)
+10
View File
@@ -381,6 +381,10 @@ SUBSYSTEM_DEF(job)
continue
S = sloc
break
if(GLOB.jobspawn_overrides.len && GLOB.jobspawn_overrides[rank])
var/list/special_spawns = GLOB.jobspawn_overrides[rank]
if(special_spawns.len)
S = pick(special_spawns)
if(S)
SendToAtom(H, S, buckle = FALSE)
if(!S) //if there isn't a spawnpoint send them to latejoin, if there's no latejoin go yell at your mapper
@@ -524,6 +528,12 @@ SUBSYSTEM_DEF(job)
M.forceMove(get_turf(A))
/datum/controller/subsystem/job/proc/SendToLateJoin(mob/M, buckle = TRUE)
if(GLOB.jobspawn_overrides.len && M.mind && M.mind.assigned_role) //We're doing something special today.
var/list/special_spawns = GLOB.jobspawn_overrides[M.mind.assigned_role]
if(special_spawns.len) //just in case someone clears these
SendToAtom(M,pick(special_spawns),FALSE)
return
if(latejoin_trackers.len)
SendToAtom(M, pick(latejoin_trackers), buckle)
else
+10
View File
@@ -19,15 +19,22 @@
icon = 'icons/mob/screen_gen.dmi'
icon_state = "x"
anchored = TRUE
var/jobspawn_override = FALSE
/obj/effect/landmark/start/New()
GLOB.start_landmarks_list += src
if(jobspawn_override)
if(!GLOB.jobspawn_overrides[name])
GLOB.jobspawn_overrides[name] = list()
GLOB.jobspawn_overrides[name] += src
..()
if(name != "start")
tag = "start*[name]"
/obj/effect/landmark/start/Destroy()
GLOB.start_landmarks_list -= src
if(jobspawn_override)
GLOB.jobspawn_overrides[name] -= src
return ..()
// START LANDMARKS FOLLOW. Don't change the names unless
@@ -36,6 +43,9 @@
/obj/effect/landmark/start/assistant
name = "Assistant"
/obj/effect/landmark/start/assistant/override
jobspawn_override = TRUE
/obj/effect/landmark/start/janitor
name = "Janitor"