mirror of
https://github.com/Aurorastation/Aurora.3.git
synced 2026-08-22 20:43:10 +01:00
Off-duty crew and passengers can now spawn in the medbay recovery room, for that sweet, sweet medical RP. Vastly expanded the medbay recovery ward, including: - Cryo pod (duh) - Nav terminal, to watch the ship fly as the days crawl by - Sink and hygiene vendor - dining/general purpose rec table with uno - MRE vendor, for that sweet, sweet, hospital grade food - Coffee vendor, for that sweet, sweet, coffee. - Public access doorway (still needs access to enter, but unrestricted to exit, so if you spawn there and no one is around, you're not screwed) - Button to open said public access doorway, for visitors - Requests console, maintenance panels.  !!Misplaced camera and light in the wall have been fixed!! Rack of toiletries has been replaced with vendor!!
312 lines
7.7 KiB
Plaintext
312 lines
7.7 KiB
Plaintext
/obj/effect/landmark
|
|
name = "landmark"
|
|
icon = 'icons/mob/screen/generic.dmi'
|
|
icon_state = "x2"
|
|
anchored = TRUE
|
|
unacidable = TRUE
|
|
simulated = FALSE
|
|
invisibility = INVISIBILITY_ABSTRACT
|
|
layer = ABOVE_HUMAN_LAYER
|
|
|
|
INITIALIZE_IMMEDIATE(/obj/effect/landmark)
|
|
/obj/effect/landmark/Initialize(mapload)
|
|
. = ..()
|
|
tag = "landmark*[name]"
|
|
GLOB.landmarks_list += src
|
|
|
|
/obj/effect/landmark/Destroy()
|
|
GLOB.landmarks_list -= src
|
|
tag = null
|
|
. = ..()
|
|
|
|
/*#######################
|
|
LATEJOIN LANDMARKS
|
|
#######################*/
|
|
|
|
/**
|
|
* # Latejoin marker
|
|
*
|
|
* Used to indicate where players spawn if they are latejoining
|
|
*/
|
|
/obj/effect/landmark/latejoin
|
|
invisibility = INVISIBILITY_ABSTRACT
|
|
|
|
/obj/effect/landmark/latejoin/Initialize()
|
|
..()
|
|
GLOB.latejoin += get_turf(src)
|
|
return INITIALIZE_HINT_QDEL
|
|
|
|
/**
|
|
* # Latejoin cyborg marker
|
|
*
|
|
* Used to indicate where players spawn if they are latejoining
|
|
*/
|
|
/obj/effect/landmark/latejoincyborg
|
|
invisibility = INVISIBILITY_ABSTRACT
|
|
|
|
/obj/effect/landmark/latejoincyborg/Initialize()
|
|
..()
|
|
GLOB.latejoin_cyborg += get_turf(src)
|
|
return INITIALIZE_HINT_QDEL
|
|
|
|
/**
|
|
* # Latejoin cryo marker
|
|
*/
|
|
/obj/effect/landmark/latejoincryo
|
|
invisibility = INVISIBILITY_ABSTRACT
|
|
|
|
/obj/effect/landmark/latejoincryo/Initialize()
|
|
..()
|
|
GLOB.latejoin_cryo += get_turf(src)
|
|
return INITIALIZE_HINT_QDEL
|
|
|
|
/**
|
|
* # Latejoin lift marker
|
|
*/
|
|
/obj/effect/landmark/latejoinlift
|
|
invisibility = INVISIBILITY_ABSTRACT
|
|
|
|
/obj/effect/landmark/latejoinlift/Initialize()
|
|
. = ..()
|
|
GLOB.latejoin_living_quarters_lift += get_turf(src)
|
|
return INITIALIZE_HINT_QDEL
|
|
|
|
/**
|
|
* # Latejoin medbay marker
|
|
*/
|
|
|
|
/obj/effect/landmark/latejoinmedbayrecovery
|
|
invisibility = INVISIBILITY_ABSTRACT
|
|
|
|
/obj/effect/landmark/latejoinmedbayrecovery/Initialize()
|
|
. = ..()
|
|
GLOB.latejoin_medbay_recovery += get_turf(src)
|
|
return INITIALIZE_HINT_QDEL
|
|
|
|
/**
|
|
* # Start marker
|
|
*
|
|
* The position at which the player mob is moved after the spawn sync happened, based on the job/role
|
|
*
|
|
* The match is done based on the `name` property, *you must set the name*
|
|
*/
|
|
/obj/effect/landmark/start
|
|
name = "start (rename me to match the job title)" //This is checked in the maplint `tools\maplint\lints\startmarker_unset.yml` file, if you change the name here, do there too
|
|
icon = 'icons/mob/screen/generic.dmi'
|
|
icon_state = "x"
|
|
|
|
/obj/effect/landmark/start/Initialize(mapload)
|
|
. = ..()
|
|
tag = "start*[name]"
|
|
|
|
///Used for spawn sync, all mobs at roundstart are moved to this as they are equipped, before being sent to their final position
|
|
/obj/effect/landmark/newplayer_start
|
|
name = "newplayer start"
|
|
|
|
/obj/effect/landmark/newplayer_start/Initialize(mapload)
|
|
..()
|
|
if(GLOB.newplayer_start)
|
|
stack_trace("There must be one, and only one, /obj/effect/landmark/newplayer_start effect in any single server session!")
|
|
else
|
|
GLOB.newplayer_start = get_turf(src)
|
|
|
|
return INITIALIZE_HINT_QDEL
|
|
|
|
/**
|
|
* # Lobby mob location marker
|
|
*
|
|
* Where the mobs that are seeing the lobby screen are located, only one is allowed to exist at a time
|
|
*/
|
|
/obj/effect/landmark/lobby_mobs_location
|
|
name = "lobby_mobs_location"
|
|
anchored = TRUE
|
|
invisibility = 101
|
|
|
|
INITIALIZE_IMMEDIATE(/obj/effect/landmark/lobby_mobs_location)
|
|
|
|
/obj/effect/landmark/lobby_mobs_location/Initialize()
|
|
..()
|
|
|
|
if(GLOB.lobby_mobs_location)
|
|
crash_with("There must be one, and only one, /obj/effect/landmark/lobby_mobs_location effect in any single server session!")
|
|
|
|
else
|
|
GLOB.lobby_mobs_location = get_turf(src)
|
|
ASSERT(istype(GLOB.lobby_mobs_location, /turf))
|
|
|
|
return INITIALIZE_HINT_QDEL
|
|
|
|
/**
|
|
* # Force spawnpoint
|
|
*
|
|
* A spawnpoint that is forced to be used at spawn (join AND latejoin), *overriding everything else*, depending on the `job_tag` var
|
|
*
|
|
* If the `job_tag` is set to "Anyone", the spawnpoint will be used for all jobs
|
|
*/
|
|
/obj/effect/landmark/force_spawnpoint
|
|
name = "force spawnpoint"
|
|
var/job_tag = "Anyone"
|
|
|
|
/obj/effect/landmark/force_spawnpoint/Initialize()
|
|
. = ..()
|
|
LAZYADD(GLOB.force_spawnpoints[job_tag], get_turf(src))
|
|
|
|
/obj/effect/landmark/force_spawnpoint/Destroy()
|
|
LAZYREMOVE(GLOB.force_spawnpoints[job_tag], get_turf(src))
|
|
. = ..()
|
|
|
|
/**
|
|
* # Skrell SROM (dreaming) marker
|
|
*
|
|
* Used to indicate where the SROM is located
|
|
*/
|
|
/obj/effect/landmark/skrell_srom
|
|
invisibility = INVISIBILITY_ABSTRACT
|
|
|
|
/obj/effect/landmark/skrell_srom/Initialize()
|
|
..()
|
|
GLOB.dream_entries |= get_turf(src)
|
|
return INITIALIZE_HINT_QDEL
|
|
|
|
/**
|
|
* # Virtual reality spawn marker
|
|
*
|
|
* Used to indicate where the VR spawn is located
|
|
*/
|
|
/obj/effect/landmark/virtual_reality_spawn
|
|
invisibility = INVISIBILITY_ABSTRACT
|
|
|
|
/obj/effect/landmark/virtual_reality_spawn/Initialize()
|
|
..()
|
|
GLOB.virtual_reality_spawn += get_turf(src)
|
|
return INITIALIZE_HINT_QDEL
|
|
|
|
/*##########################
|
|
THUNDERDOME LANDMARKS
|
|
##########################*/
|
|
/obj/effect/landmark/thunderdome1
|
|
invisibility = INVISIBILITY_ABSTRACT
|
|
|
|
/obj/effect/landmark/thunderdome1/Initialize()
|
|
..()
|
|
GLOB.tdome1 += get_turf(src)
|
|
return INITIALIZE_HINT_QDEL
|
|
|
|
/obj/effect/landmark/thunderdome2
|
|
invisibility = INVISIBILITY_ABSTRACT
|
|
|
|
/obj/effect/landmark/thunderdome2/Initialize()
|
|
..()
|
|
GLOB.tdome2 += get_turf(src)
|
|
return INITIALIZE_HINT_QDEL
|
|
|
|
/obj/effect/landmark/thunderdomeadmin
|
|
invisibility = INVISIBILITY_ABSTRACT
|
|
|
|
/obj/effect/landmark/thunderdomeadmin/Initialize()
|
|
..()
|
|
GLOB.tdomeadmin += get_turf(src)
|
|
return INITIALIZE_HINT_QDEL
|
|
|
|
/obj/effect/landmark/thunderdomeobserve
|
|
invisibility = INVISIBILITY_ABSTRACT
|
|
|
|
/obj/effect/landmark/thunderdomeobserve/Initialize()
|
|
..()
|
|
GLOB.tdomeobserve += get_turf(src)
|
|
return INITIALIZE_HINT_QDEL
|
|
|
|
/obj/effect/landmark/distress_team_equipment
|
|
name = "distress equipment"
|
|
|
|
/obj/effect/landmark/ruin
|
|
var/datum/map_template/ruin/ruin_template
|
|
|
|
/obj/effect/landmark/ruin/New(loc, my_ruin_template)
|
|
name = "ruin_[sequential_id(/obj/effect/landmark/ruin)]"
|
|
..(loc)
|
|
ruin_template = my_ruin_template
|
|
GLOB.ruin_landmarks |= src
|
|
|
|
/obj/effect/landmark/ruin/Destroy()
|
|
GLOB.ruin_landmarks -= src
|
|
ruin_template = null
|
|
. = ..()
|
|
|
|
/*#########################
|
|
OVERMAP ENTRY POINTS
|
|
#########################*/
|
|
/**
|
|
* # Entry point landmarks
|
|
*
|
|
* These landmarks are used to mark the entry points for ship weapons
|
|
*/
|
|
/obj/effect/landmark/entry_point
|
|
name = "entry point landmark"
|
|
icon_state = "dir_arrow"
|
|
movable_flags = MOVABLE_FLAG_EFFECTMOVE
|
|
|
|
/obj/effect/landmark/entry_point/Initialize()
|
|
..()
|
|
return INITIALIZE_HINT_LATELOAD
|
|
|
|
/obj/effect/landmark/entry_point/LateInitialize()
|
|
if(SSatlas.current_map.use_overmap)
|
|
SSshuttle.entry_points_to_initialize += src
|
|
name += " [x], [y]"
|
|
|
|
/obj/effect/landmark/entry_point/Destroy()
|
|
..()
|
|
return QDEL_HINT_LETMELIVE
|
|
|
|
/obj/effect/landmark/entry_point/proc/get_candidate()
|
|
var/obj/effect/overmap/visitable/sector = GLOB.map_sectors["[z]"]
|
|
if(!sector)
|
|
return
|
|
return attempt_hook_up_recursive(sector)
|
|
|
|
/obj/effect/landmark/entry_point/proc/attempt_hook_up_recursive(var/obj/effect/overmap/visitable/sector)
|
|
if(attempt_hook_up(sector))
|
|
return sector
|
|
for(var/obj/effect/overmap/visitable/ship/candidate in sector)
|
|
if((. = .(candidate)))
|
|
return
|
|
|
|
/obj/effect/landmark/entry_point/proc/attempt_hook_up(var/obj/effect/overmap/visitable/sector)
|
|
if(!istype(sector))
|
|
return FALSE
|
|
if(sector.check_ownership(src))
|
|
return TRUE
|
|
return FALSE
|
|
|
|
//The four entry point landmarks below are named assuming that fore is facing DOWNWARDS.
|
|
/obj/effect/landmark/entry_point/aft
|
|
name = "aft"
|
|
|
|
/obj/effect/landmark/entry_point/starboard
|
|
name = "starboard"
|
|
dir = 4
|
|
|
|
/obj/effect/landmark/entry_point/port
|
|
name = "port"
|
|
dir = 8
|
|
|
|
/obj/effect/landmark/entry_point/fore
|
|
name = "fore"
|
|
dir = 1
|
|
|
|
/obj/effect/landmark/entry_point/south
|
|
name = "south"
|
|
|
|
/obj/effect/landmark/entry_point/east
|
|
name = "east"
|
|
dir = 4
|
|
|
|
/obj/effect/landmark/entry_point/west
|
|
name = "west"
|
|
dir = 8
|
|
|
|
/obj/effect/landmark/entry_point/north
|
|
name = "north"
|
|
dir = 1
|