mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-10 02:09:41 +00:00
126 lines
3.2 KiB
Plaintext
126 lines
3.2 KiB
Plaintext
var/list/spawntypes = list()
|
|
|
|
/proc/populate_spawn_points()
|
|
spawntypes = list()
|
|
for(var/type in subtypesof(/datum/spawnpoint))
|
|
var/datum/spawnpoint/S = new type()
|
|
spawntypes[S.display_name] = S
|
|
|
|
/proc/get_spawn_points()
|
|
if(!LAZYLEN(spawntypes))
|
|
populate_spawn_points()
|
|
return spawntypes
|
|
|
|
/datum/spawnpoint
|
|
var/msg //Message to display on the arrivals computer.
|
|
var/list/turfs //List of turfs to spawn on.
|
|
var/display_name //Name used in preference setup.
|
|
var/list/restrict_job = null
|
|
var/list/disallow_job = null
|
|
var/announce_channel = "Common"
|
|
var/allow_offmap_spawn = FALSE // add option to allow offmap spawns to a spawnpoint without entirely restricting that spawnpoint
|
|
var/allowed_mob_types = JOB_SILICON|JOB_CARBON
|
|
|
|
/datum/spawnpoint/proc/check_job_spawning(job)
|
|
if(restrict_job && !(job in restrict_job))
|
|
return 0
|
|
|
|
if(disallow_job && (job in disallow_job))
|
|
return 0
|
|
|
|
var/datum/job/J = SSjob.get_job(job)
|
|
if(!J) // Couldn't find, admin shenanigans? Allow it
|
|
return 1
|
|
|
|
if(J.offmap_spawn && !allow_offmap_spawn && !(job in restrict_job)) // add option to allow offmap spawns to a spawnpoint without entirely restricting that spawnpoint
|
|
return 0
|
|
|
|
if(!(J.mob_type & allowed_mob_types))
|
|
return 0
|
|
|
|
return 1
|
|
|
|
/datum/spawnpoint/proc/get_spawn_position()
|
|
return get_turf(pick(turfs))
|
|
|
|
/datum/spawnpoint/arrivals
|
|
display_name = "Arrivals Shuttle"
|
|
msg = "will arrive to the station shortly by shuttle"
|
|
disallow_job = list(JOB_OUTSIDER) //CHOMPEdit add
|
|
|
|
/datum/spawnpoint/arrivals/New()
|
|
..()
|
|
turfs = latejoin
|
|
|
|
/datum/spawnpoint/gateway
|
|
display_name = "Gateway"
|
|
msg = "has completed translation from offsite gateway"
|
|
|
|
/datum/spawnpoint/gateway/New()
|
|
..()
|
|
turfs = latejoin_gateway
|
|
/* VOREStation Edit
|
|
/datum/spawnpoint/elevator
|
|
display_name = "Elevator"
|
|
msg = "has arrived from the residential district"
|
|
|
|
/datum/spawnpoint/elevator/New()
|
|
..()
|
|
turfs = latejoin_elevator
|
|
*/
|
|
/datum/spawnpoint/cryo
|
|
display_name = "Cryogenic Storage"
|
|
msg = "has completed cryogenic revival"
|
|
allowed_mob_types = JOB_CARBON
|
|
disallow_job = list(JOB_OUTSIDER) //CHOMPEdit add
|
|
|
|
/datum/spawnpoint/cryo/New()
|
|
..()
|
|
turfs = latejoin_cryo
|
|
|
|
/datum/spawnpoint/cyborg
|
|
display_name = "Cyborg Storage"
|
|
msg = "has been activated from storage"
|
|
allowed_mob_types = JOB_SILICON
|
|
disallow_job = list(JOB_OUTSIDER) //CHOMPEdit add
|
|
|
|
/datum/spawnpoint/cyborg/New()
|
|
..()
|
|
turfs = latejoin_cyborg
|
|
|
|
/obj/effect/landmark/arrivals
|
|
name = "JoinLateShuttle"
|
|
delete_me = 1
|
|
|
|
/obj/effect/landmark/arrivals/Initialize(mapload)
|
|
latejoin += loc
|
|
. = ..()
|
|
|
|
var/global/list/latejoin_tram = list()
|
|
|
|
/obj/effect/landmark/tram
|
|
name = "JoinLateTram"
|
|
delete_me = 1
|
|
|
|
/obj/effect/landmark/tram/Initialize(mapload)
|
|
latejoin_tram += loc // There's no tram but you know whatever man!
|
|
. = ..()
|
|
|
|
/datum/spawnpoint/tram
|
|
display_name = "Tram Station"
|
|
msg = "will arrive to the station shortly by shuttle"
|
|
disallow_job = list(JOB_OUTSIDER) //CHOMPEdit add
|
|
|
|
/datum/spawnpoint/tram/New()
|
|
..()
|
|
turfs = latejoin_tram
|
|
|
|
/datum/spawnpoint/vore
|
|
display_name = "Vorespawn - Prey"
|
|
msg = "has arrived on the station"
|
|
allow_offmap_spawn = TRUE
|
|
|
|
/datum/spawnpoint/vore/pred
|
|
display_name = "Vorespawn - Pred"
|
|
msg = "has arrived on the station"
|