mirror of
https://github.com/SPLURT-Station/S.P.L.U.R.T-Station-13.git
synced 2025-12-11 10:22:13 +00:00
Merge pull request #33075 from AnturK/itsnotabusewhenitsassistants
Adds spawn override system
This commit is contained in:
committed by
CitadelStationBot
parent
14ce7c8118
commit
20014e6f44
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user