mirror of
https://github.com/Bubberstation/Bubberstation.git
synced 2026-08-26 22:50:26 +01:00
Adds spawn override system
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user