Files
Aurora.3/code/modules/client/preferences_spawnpoints.dm
Batrachophreno 4ecb0bc21c Repath obj/machinery to obj/structure/machinery [MDB Ignore] (#22500)
Repaths obj/machinery to obj/structure/machinery. **Note for
reviewers:** the only meaningful changed code exists within
**code/game/objects/structures.dm** and
**code/game/objects/structures/_machinery.dm**, largely concerning
damage procs. With the exception of moving airlock defines to their own
file, ALL OTHER CHANGES ARE STRICTLY PATH CHANGES.

Objects, _categorically_, are largely divided between those you can hold
in your hand/inventory and those you can't. Machinery objects are
already subtypes of Structures behaviorally, this PR just makes their
pathing reflect that, and allows for future work (tool actions, more
health/destruction functionality) to be developed without unnecessary
code duplication.

I have tested this PR by loading up the Horizon and dismantling various
machines and structures with tools, shooting guns of various types
throughout the ship, and detonating a bunch of explosions throughout the
ship.
2026-05-26 19:35:48 +00:00

97 lines
2.8 KiB
Plaintext

/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
/datum/spawnpoint/proc/check_job_spawning(job)
if(restrict_job && !(job in restrict_job))
return FALSE
if(disallow_job && (job in disallow_job))
return FALSE
return TRUE
/datum/spawnpoint/proc/after_join(mob/victim)
return
/datum/spawnpoint/arrivals
display_name = "Arrivals Shuttle"
msg = "is inbound from the NTCC Odin"
disallow_job = list("Merchant")
/datum/spawnpoint/arrivals/New()
..()
msg = "is inbound from the [SSatlas.current_map.dock_name]"
turfs = GLOB.latejoin
/datum/spawnpoint/cryo
display_name = "Cryogenic Storage"
msg = "has completed cryogenic revival"
disallow_job = list("Cyborg", "Merchant")
/datum/spawnpoint/cryo/New()
..()
turfs = GLOB.latejoin_cryo
/datum/spawnpoint/cryo/after_join(mob/victim)
if(!istype(victim))
return
var/area/A = get_area(victim)
for(var/obj/structure/machinery/cryopod/C in A)
if(!C.occupant)
C.set_occupant(victim, 1)
victim.Sleeping(3)
to_chat(victim, SPAN_NOTICE("You are slowly waking up from the cryostasis aboard [SSatlas.current_map.station_name]. It might take a few seconds."))
return
/datum/spawnpoint/cyborg
display_name = "Cyborg Storage"
msg = "has been activated from storage"
restrict_job = list("Cyborg")
/datum/spawnpoint/cyborg/New()
..()
turfs = GLOB.latejoin_cyborg
/datum/spawnpoint/living_quarters_lift
display_name = "Living Quarters Lift"
msg = "is inbound from the living quarters"
disallow_job = list("Cyborg", "Merchant")
/datum/spawnpoint/living_quarters_lift/New()
..()
turfs = GLOB.latejoin_living_quarters_lift
/datum/spawnpoint/living_quarters_lift/after_join(mob/victim)
if(!istype(victim))
return
var/area/A = get_area(victim)
for(var/obj/structure/machinery/cryopod/living_quarters/C in A)
if(!C.occupant)
C.set_occupant(victim, 1)
to_chat(victim, SPAN_NOTICE("You have arrived from the living quarters aboard the [SSatlas.current_map.station_name]."))
return
/datum/spawnpoint/medbay_recovery
display_name = "Medbay Recovery Ward"
msg = "has awoken in the Medbay Recovery Ward"
restrict_job = list("Off-Duty Crew Member", "Passenger")
/datum/spawnpoint/medbay_recovery/New()
..()
turfs = GLOB.latejoin_medbay_recovery
/datum/spawnpoint/medbay_recovery/after_join(mob/victim)
if(!istype(victim))
return
var/area/A = get_area(victim)
for(var/obj/structure/machinery/cryopod/C in A)
if(!C.occupant)
C.set_occupant(victim, 1)
victim.Sleeping(3)
to_chat(victim, SPAN_NOTICE("You are slowly waking up from the medical cryostasis aboard [SSatlas.current_map.station_name]. It might take a few seconds."))
return