Merge pull request #33075 from AnturK/itsnotabusewhenitsassistants

Adds spawn override system
This commit is contained in:
Jordan Brown
2017-11-25 17:37:28 -05:00
committed by CitadelStationBot
parent 14ce7c8118
commit 20014e6f44
4 changed files with 25 additions and 1 deletions

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)

View File

@@ -393,6 +393,10 @@ SUBSYSTEM_DEF(job)
continue
S = sloc
break
if(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
@@ -536,6 +540,12 @@ SUBSYSTEM_DEF(job)
M.forceMove(get_turf(A))
/datum/controller/subsystem/job/proc/SendToLateJoin(mob/M, buckle = TRUE)
if(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

View File

@@ -319,7 +319,7 @@ SUBSYSTEM_DEF(ticker)
//Cleanup some stuff
for(var/obj/effect/landmark/start/S in GLOB.landmarks_list)
//Deleting Startpoints but we need the ai point to AI-ize people later
if(S.name != "AI")
if(S.delete_after_roundstart)
qdel(S)
//assign crew objectives and generate miscreants

View File

@@ -19,15 +19,23 @@
icon = 'icons/mob/screen_gen.dmi'
icon_state = "x"
anchored = TRUE
var/jobspawn_override = FALSE
var/delete_after_roundstart = TRUE
/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 +44,10 @@
/obj/effect/landmark/start/assistant
name = "Assistant"
/obj/effect/landmark/start/assistant/override
jobspawn_override = TRUE
delete_after_roundstart = FALSE
/obj/effect/landmark/start/janitor
name = "Janitor"
@@ -74,6 +86,7 @@
/obj/effect/landmark/start/ai
name = "AI"
delete_after_roundstart = FALSE
/obj/effect/landmark/start/captain
name = "Captain"