diff --git a/code/game/jobs/job/uacm/intermission.dm b/code/game/jobs/job/uacm/intermission.dm index 739216e555..6df972e5cc 100644 --- a/code/game/jobs/job/uacm/intermission.dm +++ b/code/game/jobs/job/uacm/intermission.dm @@ -1,7 +1,7 @@ /datum/job/uacm/basepc title = JOB_UACM_BASEPC - total_positions = 12 - spawn_positions = 12 + total_positions = 10 + spawn_positions = 10 flags_startup_parameters = ROLE_ADD_TO_DEFAULT gear_preset = /datum/equipment_preset/uacm/basepc diff --git a/code/modules/admin/mission_control/mission_control.dm b/code/modules/admin/mission_control/mission_control.dm index d9e6743ae9..80d3adc034 100644 --- a/code/modules/admin/mission_control/mission_control.dm +++ b/code/modules/admin/mission_control/mission_control.dm @@ -244,16 +244,28 @@ break var/new_map = tgui_alert(usr, "Do yo wish to destroy everything on the old map?", "REPLACE?", list("Yes","No"), timeout = 0) if(new_map == null) new_map = "No" - switch(tgui_input_list(usr, "Select Template:","TEMPLATE select",list("Blank","Comms and Ship loading test"),timeout = 0)) + switch(tgui_input_list(usr, "Select Template:","TEMPLATE select",list("Blank","Deploy the Amelia", "Deploy the Marie","Tester Targets","Escapees","Pursuers"),timeout = 0)) if(null) return if("Blank") sts_master.clear_map() - if("Comms and Ship loading test") + if("Deploy the Amelia") if(new_map == "Yes") sts_master.clear_map() - sts_master.add_entity(entity_type = 0, x = 1, y = 1, name = "UAS Marie", type = "OV-PST Rapid Pursuit Interceptor", vector_x = 0, vector_y = 0, ship_status = "Operational", ship_faction = "UACM", ship_damage = 5, ship_shield = 2, ship_speed = 5, salvos = 2) - sts_master.add_entity(entity_type = 0, x = 50, y = 50, name = "UAS Amelia", type = "OV-PST Rapid Pursuit Interceptor", vector_x = 0, vector_y = 0, ship_status = "Operational", ship_faction = "UACM", ship_damage = 5, ship_shield = 2, ship_speed = 5, salvos = 2) + sts_master.add_entity(entity_type = 0, x = 3, y = 2, name = "UAS Amelia", type = "OV-PST Rapid Pursuit Interceptor", vector_x = 0, vector_y = 0, ship_status = "Operational", ship_faction = "UACM", ship_damage = 5, ship_shield = 2, ship_speed = 5, salvos = 2) return + if("Deploy the Marie") + if(new_map == "Yes") sts_master.clear_map() + sts_master.add_entity(entity_type = 0, x = 4, y = 73, name = "UAS Amelia", type = "OV-PST Rapid Pursuit Interceptor", vector_x = 0, vector_y = 0, ship_status = "Operational", ship_faction = "UACM", ship_damage = 5, ship_shield = 2, ship_speed = 5, salvos = 2) + return + if("Tester Targets") + sts_master.add_entity(entity_type = 0, x = 7, y = 5, name = "Weapons Test Drone Alpha", type = "OV-PST Prototype Testing Drone", vector_x = 0, vector_y = 0, ship_status = "Operational", ship_faction = "UACM", ship_damage = 1, ship_shield = 0, ship_speed = 2, salvos = 0) + sts_master.add_entity(entity_type = 0, x = 2, y = 72, name = "Weapons Test Drone Beta", type = "OV-PST Prototype Testing Drone", vector_x = 0, vector_y = 0, ship_status = "Operational", ship_faction = "UACM", ship_damage = 1, ship_shield = 0, ship_speed = 2, salvos = 0) + if("Escapees") + sts_master.add_entity(entity_type = 0, x = 52, y = 98, name = "TPS Workers Glory", type = "Chelyabinsk Class Heavy Transport", vector_x = 0, vector_y = -3, ship_status = "Operational", ship_faction = "UPP", ship_damage = 10, ship_shield = 0, ship_speed = 3, salvos = 0) + if("Pursuers") + sts_master.add_entity(entity_type = 0, x = 92, y = 98, name = "TPS Devils Bones", type = "Kaifeng Class Frigate", vector_x = 0, vector_y = 0, ship_status = "Operational", ship_faction = "UPP", ship_damage = 5, ship_shield = 0, ship_speed = 4, salvos = 1) + sts_master.add_entity(entity_type = 0, x = 90, y = 97, name = "TPS Peoples Hammer", type = "Kaifeng Class Frigate", vector_x = 0, vector_y = 0, ship_status = "Operational", ship_faction = "UPP", ship_damage = 5, ship_shield = 0, ship_speed = 4, salvos = 1) + sts_master.add_entity(entity_type = 0, x = 94, y = 99, name = "TPS Tyrants Ashes", type = "Kaifeng Class Frigate", vector_x = 0, vector_y = 0, ship_status = "Operational", ship_faction = "UPP", ship_damage = 5, ship_shield = 0, ship_speed = 4, salvos = 1) /datum/admins/proc/link_player_ships() if(!check_rights(R_ADMIN)) return diff --git a/code/modules/admin/verbs/sectorpatrol.dm b/code/modules/admin/verbs/sectorpatrol.dm index c8ae6f0515..0941875c63 100644 --- a/code/modules/admin/verbs/sectorpatrol.dm +++ b/code/modules/admin/verbs/sectorpatrol.dm @@ -35,29 +35,39 @@ /client/proc/cmd_start_sequence() set name = "Start Sequence" - set category = "Admin.SectorPatrol" + set category = "DM.Narration" if (!admin_holder || !(admin_holder.rights & R_MOD)) to_chat(src, "Only administrators may use this command.") return - var/puzzlebox_admin_option = tgui_input_list(usr, "Select a Sequence", "Start Sequence", list("None - Leave", "Open Hideaway Podlocks", "Open TOS Outer Podlocks", "Open TOS Inner Podlocks"), 0) + var/puzzlebox_admin_option = tgui_input_list(usr, "Select a Sequence", "Start Sequence", list("None - Leave", "The Interceptor Takes Off"), 0) if (!puzzlebox_admin_option) return switch(puzzlebox_admin_option) if("None - Leave") return - if("Open Hideaway Podlocks") - for (var/obj/structure/machinery/door/poddoor/almayer/locked/A in world) - if(A.id == "crypt-a") - A.open() - if("Open TOS Outer Podlocks") - for (var/obj/structure/machinery/door/poddoor/almayer/locked/A in world) - if(A.id == "crypt-b") - A.open() - if("Open TOS Inner Podlocks") - for (var/obj/structure/machinery/door/poddoor/almayer/locked/A in world) - if(A.id == "crypt-c") - A.open() + if("The Interceptor Takes Off") + to_chat(world, narrate_body("The ships Twilight Rails kick in and it begins its glide to its destination point. The Interceptor feels quieter than most spaceships you've been on.")) + sleep(150) + to_chat(world, narrate_body("As the ship positions itself in its starting point, you start to hear chatter over the comms, it seems obvious that currently, all eyes on the PST are on you.")) + sleep(140) + to_chat(world, narrate_body("The ship comes to a halt again and for a few seconds, it seems like its gone inert.")) + sleep(130) + to_chat(world, narrate_body("A loud humming starts to fill the ship as everyone on board can smell the familiar smell of burnt ozone, a very common occurrence on the PST.")) + sleep(140) + to_chat(world, narrate_body("The Twilight Rails are overcharged and start to expel excess Twilight energy. Normally, this would be a reason to panic. A ship overcharging its hyperspace rails like this risks getting drawn into the Hyperspace field without a vector, never to come back.")) + sleep(140) + to_chat(world, narrate_body("The crew of the PST watches as a blue wormhole opens underneath the Interceptor, slowly matching it in size. ")) + sleep(140) + to_chat(world, narrate_body("The tear is complete and the ship nosedives into it, resembling a submarine dive. You feel the hair rise at the back of your head as reality seems to distort for a second. ")) + sleep(160) + to_chat(world, narrate_body("Suddenly, something pulls on the craft. It feels like it was tethered to something as you feel it accelerate through Hyperspace. You feel like someone is watching you, but the presence does not feel hostile or out of place. ")) + sleep(150) + to_chat(world, narrate_body("As the ship continues to make its way through Hyperspace, the presence intensifies. You feel like you've known this presence from somewhere but can't put it into words. ")) + sleep(130) + to_chat(world, narrate_body("The feeling passes as the ship breaches the Hyperspace boundary again and conventional drives kick in. It seems like this was too short to be an actual Hyperspace jump... ")) + sleep(140) + to_chat(world, narrate_body("Wherever you are, it seems like the jump at least was completed safely. It takes a moment for the ships sensors to come alive..." )) /client/proc/cmd_save_turfs() diff --git a/code/modules/shuttle/shuttles/sectorpatrol.dm b/code/modules/shuttle/shuttles/sectorpatrol.dm index e871409dc2..78c966f7cb 100644 --- a/code/modules/shuttle/shuttles/sectorpatrol.dm +++ b/code/modules/shuttle/shuttles/sectorpatrol.dm @@ -266,8 +266,8 @@ height = 6 callTime = 10 ignitionTime = 55 - rechargeTime = 0 - prearrivalTime = 0 + rechargeTime = 10 + prearrivalTime = 60 var/starboard_door /obj/docking_port/mobile/emergency_response/uacm_ship_transit/Initialize(mapload) diff --git a/code/modules/terminal/briefing/briefing.dm b/code/modules/terminal/briefing/briefing.dm index a4838d23d2..4f3d7446bc 100644 --- a/code/modules/terminal/briefing/briefing.dm +++ b/code/modules/terminal/briefing/briefing.dm @@ -8,40 +8,76 @@ icon_state = "off" terminal_id = "briefing" var/terminal_range = 20 - terminal_window_size = "500x500" - terminal_line_length = 42 + terminal_window_size = "500x630" + terminal_line_length = 38 terminal_line_height = 13 + header_name = "RDML. Thomas Boulette" + var/op_info = "PST INTERCEPTOR PROTOTYPING" + +/obj/structure/terminal/Initialize(mapload, ...) + . = ..() + icon_state = "off" + update_icon() /obj/structure/terminal/briefing/kill_window(reset = 1) for (var/mob/mobs in world) mobs << browse(null, "window=[terminal_id]") if(reset == 1) reset_buffer() +/obj/structure/terminal/briefing/WriteHeader() + terminal_header = {"
[header_name]
UACM 2ND LOGISTICS
[op_info]
"} + /obj/structure/terminal/briefing/terminal_display() // Display loop. HTML encodes (which incidentally should also prevent a lot of HTML shenanigans since it escapes characters) and displays current buffer. Please don't laugh at my placeholder HTML -_- , in normal circumstances should not need edits unless you want to change the style for an individual terminal. trim_buffer() - var/terminal_output = ("

" + jointext((terminal_buffer), "

") + "/

") + var/terminal_output = ("

" + jointext((terminal_trimmed_buffer), "

") + "

") var/terminal_html ={" -
+
+
+
+

+ [terminal_header] +

+
+
+
+

[terminal_output]

+
+
"} for (var/mob/mobs_in_range in view(terminal_range, src)) @@ -56,25 +92,72 @@ var/obj/structure/machinery/light/marker/admin/marker = new(get_turf(src)) marker.name = "RDML. Thomas Boulette" marker.langchat_color = "#268323" - emoteas("buzzes audibly then comes to life.") - terminal_buffer += "
" - terminal_buffer += "
UACM 2ND LOGISTICS
RDML. Thomas Boulette
OPERATION PHOENIX
" - terminal_reserved_lines = 4 + icon_state = "blank" + update_icon() + emoteas("buzzes audibly then comes to life.", 1) terminal_display() - marker.talkas("Good morning, Test Crews. Cassandra says you are ready to go to work, which is just as well, because we have work to do.") - marker.talkas("As of right now, the Second Logistics is joining the UAAC-TIS operation codenamed Operation Phoenix.") - marker.talkas("Long story short, with cooperation from our TWE allies, we are scouring a part of Neroid Dark Space and recovering wreckage lost to the dark.") - marker.talkas("Our point of contact for this operation is our own Commander…s Reed-Wilo as it were and their TWE counterpart, Major Asuka Bannister.") - marker.talkas("Some of you read the files that were unclassified for you I hope, so that name should ring a bell.") - terminal_display_line("A derelict USCMC vessel was found during the search. The ship was claimed by the PST for recovery.
", 0, 1) - terminal_display_line("Recover all materials from the ship compoments and structure using the PST disassembler array and drones.
", 0, 1) - terminal_display_line("Paper and Electronic Intelligence is avaialble. Keep an eye an use according procedures to secure them.
", 0, 1) - terminal_display_line("Mission Control has any more additonal information you may need.", 0, 0) - marker.talkas("While we work on the bigger picture and getting you the clearance you need to actively partake in the operation, an opportunity present itself to give you a dry run of an important function you will be fulfilling as Test Crews.") - marker.talkas("Salvage anything that's not intel and isn't bolted down. Deconstruct and salvage anything that is. ") + emoteas("Buzzes loudly and starts to display a UACM logo") + icon_state = "uacm" + update_icon() + marker.talkas("Good afternoon, Test Crews. I hope you are ready to make history.") + marker.talkas("This is the first live crew test of the PSTs own interceptors. Essentially, on paper at least, this is literally why any of you are here, testing these prototypes.") + marker.talkas("However, I can safely tell you this is likely way more than just a simple test.") + icon_state = "list" + emoteas("The buzzing intensifies as the terminal starts to display lists.", 1) + update_icon() + terminal_display_line("OV-PST PURSUIT INTERCEPTOR", 0, 1, 1) + terminal_display_line("- Light weight, rapid interceptor craft.", 0, 1) + terminal_display_line("- Can be safely operated by a crew of two to five men.", 0, 1) + terminal_display_line("- Utilizes the Mission Control OV-PST link.", 0, 0) + marker.talkas("We have two prototypes ready to test. I know that some of you are frequently called to other duties on the station...") + marker.talkas("So, we will make the final decision how many prototypes are crewed and by whom once we get there.") marker.talkas("Take everything. You should have the tools to completely recycle the whole vessel.") - marker.talkas("Mission Control will handle any details. You can trust her with your life.") - marker.talkas("I hope to finally be able to formally meet you soon. Good luck.") + marker.talkas("Now. There are two systems that you will be expected to write a report on.") + marker.talkas("One, ships hyperspace.") + reset_buffer() + update_icon() + terminal_display_line("TRADITIONAL HYPERSPACE JUMP", 0, 1, 1) + terminal_display_line("- Gather Twilight Paradox Energy on the systems Twilight Boundary.", 0, 1) + terminal_display_line("- Ship AI calculates departure and travel vector.", 0, 1) + terminal_display_line("- Overcharging the ships twilight rails sends the ship into the jump.", 0, 1) + terminal_display_line("- A minuscule error in calculations means missing target by light years.", 0, 0) + marker.talkas("This, to remind you all, is the standard process of a hyperspace jump.") + marker.talkas("Essentially you leave towards the system's edge, glide alongside it to charge your systems.") + marker.talkas("Then push yourself through hyperspace to your target.") + marker.talkas("Because of our station friend, the Interceptor takes a different route...") + reset_buffer() + update_icon() + terminal_display_line("MISSION CONTROL ASSISTED JUMP", 0, 1, 1) + terminal_display_line("- Mission Control establishes the position of target based on star chart information.", 0, 1) + terminal_display_line("- Twilight Paradox energy, pushed from the PST overcharges the ship's engines, causing a Paradox Gap to form under the ship.", 0, 1) + terminal_display_line("- The ship falls into the gap and into Hyperspace. The crew tries not to panic.", 0, 1) + terminal_display_line("- A physical manifestation of Mission Control in their native enviroment pulls the ship to its destination.", 0, 0) + marker.talkas("Now, I know what some of you may be thinking. Overcharging your ships engines is a sure way to kill everyone on board you ship.") + marker.talkas("I can assure you we've sent literally hundreds of tester craft through the field this way.") + marker.talkas("We are hoping that human presence during the jump will let us understand the mechanics of LD or Hyperspace better.") + marker.talkas("But just in case, be ready for the unexpected. Our local 'experts' on unexpected contact with Liquid Data say that at most, it should be auditory hallucinations.") + marker.talkas("They will be listening in once you deploy to help with any issues that may arise.") + marker.talkas("The second system to test is Mission Controls absolute coordinate system.") + reset_buffer() + update_icon() + terminal_display_line("MISSION CONTROL GRID", 0, 1, 1) + terminal_display_line("- Segment the sector into a grid of squares.", 0, 1) + terminal_display_line("- Tracks and relates all information to MC enabled systems using the grid as reference.", 0, 1) + terminal_display_line("- Effectively no two ships and no two missiles can occupy the same MC grid.", 0, 0) + marker.talkas("This means that all your ship navigation, weapons, problems and what have you can now be operated and interpreted by coordinates, and not relative position as we have done until now.") + marker.talkas("Compared to you, other spaceships will be blind as bats. Literally.") + reset_buffer() + update_icon() + terminal_display_line("MISSION CONTROL GRID, CONT.", 0, 1, 1) + terminal_display_line("- All primary firing procedures require absolute coordinates.", 0, 1) + terminal_display_line("- Coordinates are gathered by using ship probes, fired on relative vectors.", 0, 1) + terminal_display_line("- Direct hit with probe gives more information.", 0, 0) + marker.talkas("And this is basically what you need to remember when it comes to operating your ships. We will provide more instruction remotely.") + marker.talkas("This is a test, and we do not expect everything to work perfectly.") + marker.talkas("There are other features that the ships have, but I feel like I'll bore you if I drone on any longer.") + marker.talkas("Decide among yourselves who crews what. For the time being, consider all posts fluid.") + marker.talkas("Thank you and good luck.") + icon_state = "off" + update_icon() kill_window() reset_buffer() - diff --git a/code/modules/terminal/terminal.dm b/code/modules/terminal/terminal.dm index feb8ddf0d0..8d51a341ef 100644 --- a/code/modules/terminal/terminal.dm +++ b/code/modules/terminal/terminal.dm @@ -113,7 +113,7 @@ terminal_trimmed_buffer.Cut((1+terminal_reserved_lines),(2+terminal_reserved_lines)) -/obj/structure/terminal/proc/terminal_display_line(text = null,delay = TERMINAL_STANDARD_SLEEP, cache = 0) // cache = 1 bypasses displaying, this is for briefing terminals that may want to parse multiple lines before displaying +/obj/structure/terminal/proc/terminal_display_line(text = null,delay = TERMINAL_STANDARD_SLEEP, cache = 0, center = 0) // cache = 1 bypasses displaying, this is for briefing terminals that may want to parse multiple lines before displaying var/line_to_display = text if(!line_to_display) return "null string passed to display line." if(length(line_to_display) > terminal_line_length) @@ -122,15 +122,24 @@ cut_line = copytext(line_to_display,1,terminal_line_length) var/last_space = findlasttext(cut_line, " ") cut_line = copytext(line_to_display,1,last_space) - terminal_trimmed_buffer += (html_encode(cut_line) + " ") - terminal_buffer += (html_encode(cut_line) + " ") + if(center == 1) + terminal_trimmed_buffer += ("
" + html_encode(cut_line) + "
 ") + terminal_buffer += ("
" + html_encode(cut_line) + "
 ") + else + terminal_trimmed_buffer += (html_encode(cut_line) + " ") + terminal_buffer += (html_encode(cut_line) + " ") if(cache == 0) + if(center == 1) terminal_buffer += "" terminal_display() if(delay != 0) sleep(delay) line_to_display = copytext(line_to_display,last_space,0) if(length(line_to_display) <= terminal_line_length) - terminal_trimmed_buffer += (html_encode(line_to_display) + " ") - terminal_buffer += (html_encode(line_to_display) + " ") + if(center == 1) + terminal_trimmed_buffer += ("
" + html_encode(line_to_display) + "
 ") + terminal_buffer += ("
" + html_encode(line_to_display) + "
 ") + else + terminal_trimmed_buffer += (html_encode(line_to_display) + " ") + terminal_buffer += (html_encode(line_to_display) + " ") if(cache == 0) terminal_display() if(delay != 0) sleep(delay) diff --git a/maps/map_files/SectorPatrol/OuterVeilPST/ovpst.dmm b/maps/map_files/SectorPatrol/OuterVeilPST/ovpst.dmm index df1d2f029e..5a5f7e950d 100644 --- a/maps/map_files/SectorPatrol/OuterVeilPST/ovpst.dmm +++ b/maps/map_files/SectorPatrol/OuterVeilPST/ovpst.dmm @@ -20,6 +20,7 @@ "aV" = (/obj/structure/machinery/door/airlock/almayer/uacm/ovpst/general{icon = 'icons/obj/structures/doors/securedoor.dmi'; dir = 1},/turf/open/floor/almayer,/area/ovpst/dorm/b4) "aX" = (/turf/open/floor/almayer/empty,/area/ovpst/airlock/ele_e_d31) "aZ" = (/turf/open/floor/almayer{icon_state = "blue"},/area/ovpst) +"bc" = (/obj/structure/bed/chair/modular/office{dir = 1},/obj/effect/landmark/start/basepc,/turf/open/floor/almayer,/area/ovpst) "bl" = (/turf/open/floor/almayer{icon_state = "silvercorner"; dir = 1},/area/ovpst) "bm" = (/obj/structure/surface/table/reinforced/black,/turf/open/floor/almayer{allow_construction = 0},/area/ovpst) "bo" = (/obj/structure/bed/sofa/vert/grey/bot,/turf/open/floor/almayer{allow_construction = 0},/area/ovpst) @@ -52,7 +53,7 @@ "df" = (/obj/structure/machinery/door/airlock/almayer/uacm/ovpst/general{icon = 'icons/obj/structures/doors/securedoor.dmi'; dir = 1},/turf/open/floor/almayer,/area/ovpst/dorm/d9) "dh" = (/turf/open/floor/plating/modular,/area/ovpst/dorm/b8) "dm" = (/obj/structure/machinery/door/airlock/almayer/uacm/ovpst/general{icon = 'icons/obj/structures/doors/securedoor.dmi'; dir = 1},/turf/open/floor/almayer,/area/ovpst/dorm/a8) -"dq" = (/obj/structure/bed/chair/modular/office,/turf/open/floor/almayer,/area/ovpst) +"dq" = (/obj/structure/bed/chair/modular/office,/obj/effect/landmark/start/basepc,/turf/open/floor/almayer,/area/ovpst) "dt" = (/obj/structure/machinery/light{dir = 1},/turf/open/floor/almayer{icon_state = "whitecorner"; dir = 4},/area/ovpst/dorm/d2) "dv" = (/obj/structure/dorm_button{pixel_y = 30},/turf/open/floor/almayer{icon_state = "whitecorner"; dir = 1},/area/ovpst/dorm/b4) "dy" = (/obj/structure/machinery/light/small{dir = 1; light_id = "cargointake"},/turf/open/floor/plating/modular,/area/ovpst/dorm/d4) @@ -128,6 +129,7 @@ "hG" = (/obj/effect/decal/info_tag/pst/int{desc = "UACM Outer Veil Primary Supply Terminal
- -INT- -
Dock 31 Security Sub Processors Diagnostics and Maintenance Room - PYTHIA Scanner Cluster D13-1 - PYTHIA Scanner Cluster D13-2 - PYTHIA Scanner Cluster D13-3"; desc_lore = "The label -INT- indicates intersections. Labels like this are typically placed on the 'primary' pathway but have information regarding all pathways at an intersection and list all pathways at an intersection starting from the left-handed turn (if one exists) and moving in a clockwise fashion until all turns are covered. According to the label, the left side of this intersection leads to the diagnostics and maintenance room, where you should find everything you need to service issues with the scanner. The remaining turns all lead into 'PYTHIA' Scanner Clusters; one marked D13-1 above the sign, D13-2 to its right and D13-3 below. All these seem to be related to the secondary scan of the Dock, but there is no information available in either public or military sources about how exactly does the scanner operate, other than a general indication that it reviews a person's security and service record."},/turf/open/floor/almayer{dir = 6; icon_state = "blue"},/area/ovpst) "hJ" = (/obj/structure/machinery/light{dir = 1},/turf/open/floor/almayer{icon_state = "black"; dir = 6},/area/ovpst) "hM" = (/obj/effect/step_trigger/message/seeonce_blurb/Dorms,/turf/open/floor/almayer{dir = 8; icon_state = "green"},/area/ovpst) +"hR" = (/obj/structure/machinery/light{brightness = 12},/obj/effect/landmark/start/basepc,/obj/structure/bed/chair/modular/office{dir = 1},/turf/open/floor/almayer,/area/ovpst) "hU" = (/obj/structure/machinery/door/airlock/almayer/uacm/ovpst/general{icon = 'icons/obj/structures/doors/securedoor.dmi'; dir = 1},/turf/open/floor/almayer,/area/ovpst/dorm/c1) "hW" = (/turf/open/floor/almayer{icon_state = "whitecorner"},/area/ovpst) "hY" = (/obj/structure/surface/table/reinforced/black,/obj/structure/eventterminal/civnet,/turf/open/floor/almayer{allow_construction = 0},/area/ovpst) @@ -311,7 +313,7 @@ "qR" = (/obj/structure/machinery/door/poddoor/railing{dir = 8; id = "d31_cargo_fence"},/obj/effect/decal/cargo_stripes{icon_state = "e"},/turf/open/floor/almayer{allow_construction = 0},/area/ovpst) "qU" = (/obj/effect/decal/info_tag/pst/eld{pixel_y = 16; pixel_x = -16; desc = "UACM Outer Veil Primary Supply Terminal
- EL-C - Elevator Shaft D
"},/turf/open/floor/almayer{dir = 1; icon_state = "emeraldcorner"},/area/ovpst) "qW" = (/obj/structure/machinery/door/airlock/multi_tile/uacm/general{icon = 'icons/obj/structures/doors/Door2x1_secure2.dmi'; dir = 1},/turf/open/floor/almayer{allow_construction = 0},/area/ovpst) -"qX" = (/obj/structure/bed/chair/modular/office{dir = 4},/turf/open/floor/almayer,/area/ovpst) +"qX" = (/obj/structure/bed/chair/modular/office{dir = 4},/obj/effect/landmark/start/basepc,/turf/open/floor/almayer,/area/ovpst) "qY" = (/turf/closed/wall/almayer,/area/ovpst/dorm/c2) "qZ" = (/obj/effect/decal/info_tag/pst/eng{pixel_y = 16; pixel_x = -16; desc = "UACM Outer Veil Primary Supply Terminal
- ENG -
Dorms Deck 37, Sector A, Maintenance Shaft"; desc_lore = "The label ENG indicates doors and areas related to controlling and maintaining the mechanical and computer elements of a colony, ship or station. These areas typically require an elevated engineering clearance. These doors lead to maintenance shafts used to service issues with the dorms should ones arrive. Some of these passages may have other exits, but since no centralized map system exists for the PST, finding those is a matter of luck. "},/turf/open/floor/almayer{icon_state = "orange-silver"; dir = 1},/area/ovpst/dorm/a1) "ra" = (/turf/open/floor/almayer,/area/ovpst/dorm/d10) @@ -517,7 +519,7 @@ "CY" = (/obj/structure/machinery/light,/obj/effect/decal/info_tag/pst/san{dir = 4; pixel_y = 16; desc = "UACM Outer Veil Primary Supply Terminal
- SAN -
Dock 31 Personnel Sanitation"},/turf/open/floor/almayer{dir = 8; icon_state = "emerald-silver"},/area/ovpst) "De" = (/obj/structure/machinery/light{dir = 4; brightness = 14},/turf/open/floor/almayer{icon_state = "black"; dir = 8},/area/ovpst) "Di" = (/obj/structure/dorm_button{pixel_y = -34},/turf/open/floor/almayer{icon_state = "whitecorner"},/area/ovpst/dorm/b6) -"Dr" = (/obj/effect/landmark/start/basepc,/turf/open/floor/almayer{allow_construction = 0; icon_state = "plate"},/area/ovpst) +"Dr" = (/obj/effect/landmark/start/basepc,/obj/structure/bed/chair/modular/office{dir = 8},/turf/open/floor/almayer,/area/ovpst) "Dt" = (/turf/open/floor/plating/modular,/area/ovpst/dorm/b5) "Du" = (/obj/structure/machinery/conveyor{dir = 8; id = "d31-entrance"; drag_delay = 1; backwards = SOUTH; forwards = WEST},/turf/open/floor/almayer{allow_construction = 0},/area/ovpst) "Dx" = (/turf/open/floor/almayer{icon_state = "black"; dir = 5},/area/ovpst) @@ -759,6 +761,7 @@ "QJ" = (/obj/structure/machinery/light{dir = 1; brightness = 12},/turf/open/floor/almayer,/area/ovpst) "QM" = (/obj/structure/machinery/light/small{dir = 1},/turf/open/floor/almayer{dir = 9; icon_state = "orange"},/area/ovpst) "QO" = (/obj/structure/machinery/door/airlock/multi_tile/uacm/general/admin/elevator_outer{id = "d-drm"},/turf/open/floor/almayer{icon_state = "plating"; dir = 1},/area/ovpst/airlock/ele_d_drm) +"QY" = (/obj/effect/landmark/start/basepc,/obj/structure/bed/chair/modular/office,/turf/open/floor/almayer,/area/ovpst) "Ra" = (/turf/open/floor/almayer/empty,/area/ovpst/airlock/ele_e_pin) "Rc" = (/obj/structure/machinery/door/airlock/almayer/uacm/ovpst/general{icon = 'icons/obj/structures/doors/securedoor.dmi'; dir = 1},/turf/open/floor/almayer,/area/ovpst/dorm/d5) "Rg" = (/obj/structure/surface/table/reinforced/black,/obj/item/paper_bin{pixel_x = -16; pixel_y = 12},/obj/item/tool/pen/clicky{pixel_x = 5; pixel_y = -4},/turf/open/floor/almayer,/area/ovpst) @@ -977,7 +980,7 @@ qgIAIAIAIAIAIAIAIAIAIAIAIASaSESESESESESESESESESESESaIAIAIAIAIAIAIAIAIAxvcepOhdhd qgIAIAIAIAIAIAIAIAIAIAIAIASaSESESESESESESESESESESESaIAIAIAIAIAIAIAIAIAxvIRpOpOpOpOpOpOpOpOpOpOpOIRxvIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAqgIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIATSSLRvDtDtDtPygigigifeXSXSXSRIvFvFvFQdYaYaYalhnalhlhiohdhdhdhdPePehdhdhdhdiolhlhSLwkWUWUWUTvTyTyTyVNjXjXjXnJCACACAiZeHeHeHlhSLTSIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAqg qgIAIAIAIAIAIAIAIAIAIAIAIASaSESESESESESESESESESESESaIAIAIAIAIAIAIAIAIAxvIRpOpOpOpOpOpOpOpOpOpOpOIRxvIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAqgIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIATSsDRvDtpjDtPyginPgifeXSNVXSRIvFnqvFQdYaksYalhsDlhlhFdhdhdhdhdPePehdhdhdhdNBlhlhsDwkWULwWUTvTyLHTyVNjXpIjXnJCAjZCAiZeHWreHlhsDTSIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAqg qgIAIAIAIAIAIAIAIAIAIAIAIASaSESESESESESESESESESESESaIAIAIAIAIAIAIAIAIAxvbopOpOpOpOpOpOpOpOpOpOpOboxvIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAqgIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIATSCSRvErRvRvPyaVPyPyfegbfefeRIgZRIRIQdIbQdQdlhCSlhlhfphdhdhdhdPePehdhdhdhdvJlhlhCSwkrJwkwkTvmuTvTvVNSnVNVNnJzUnJnJiZgziZiZlhCSTSIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAqg -qgIAIAIAIAIAIAIAIAIAIAIAIASaSESESESESESESESESESESESaIAIAIAIAIAIAIAIAIATSpOpOpOwRpOhWVaVaMdpOwRpOpOTSIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAqgIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIATSlFeNlnsdiDjEoFdvVnIpuonxVMQfKQOJVUcNvgMmZLNblFCgzGhMPePePePePePeDrPePePetLxLXVlFqZHRZjBevNtBkfFSsifDOpllnLWHytoXFfjpeEMYNbaATSIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAqg +qgIAIAIAIAIAIAIAIAIAIAIAIASaSESESESESESESESESESESESaIAIAIAIAIAIAIAIAIATSpOpOpOwRpOhWVaVaMdpOwRpOpOTSIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAqgIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIATSlFeNlnsdiDjEoFdvVnIpuonxVMQfKQOJVUcNvgMmZLNblFCgzGhMPePePePePePePePePePetLxLXVlFqZHRZjBevNtBkfFSsifDOpllnLWHytoXFfjpeEMYNbaATSIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAqg qgIAIAIAIAIAIAIAIAIAIAIAIASaSESESESESESESESESESESESaIAIAIAIAIAIAIAIAIATSlhlhlhlhlhlhyXpOlhlhlhlhlhTSIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAqgIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIATSKzLjEVyWlRwJyhiKDDxhRWgcPKuKQyFqxDzsshDiHVWqcoyFzohMPePePePePePePePePePetLkqPjTACaTnfRBTcjGbYgYKGnRTerMoRGaLzOFxjlmHSXZwFAcoTSIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAqg qgIAIAIAIAIAIAIAIAIAIAIAIASaSESESESESESESESESESESESaIAIAIAIAIAIAIAIAIATSpOAqFizFpOlhRBZWlhZhZhGMGMTSIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAqgIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIATSCSOUOUOUAeYvYvYveFtxtxtxZDMwMwMwnIrvrvrvsZlhCSlhlhNshdhdhdhdPePehdhdhdhdEjlhlhCSIIIIIIQcGOGOGOOgXwXwXwdmFBFBFBcavQvQvQQhlhCSTSIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAqg qgIAIAIAIAIAIAIAIAIAIAIAIASaSESESESESESESESESESESESaIAIAIAIAIAIAIAIAIATSpOpOpOpOpOlhfvCBlhnbZhGMGMTSIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAqgIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIATSsDOUUyEgUyYvTlqNTltxdhrrdhMwvjjhvjrvPlQzPllhsDlhlhFdhdhdhdhdPePehdhdhdhdNBlhlhsDIIlThFlTGOvfoLvfXwRNglRNFBDERODEvQdAJPdAlhsDTSIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAqg @@ -1075,10 +1078,10 @@ qguEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuE qguEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEqgIAIHIAIAIAIAIAIAIAIAIAIATSAATSIAIAIAIAIAIATSpOSckVzIkVvTEdPRtYarUMPRcocoarCpaZaZaZpHaZhGaZaoAJuvuvuvTSIAIAIAIAIAIAIAIAIAIHIAIAIAIAIAIAIAIAIAIAIAIAIATSiosAeyCeioeyFUioTSIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIHIA qguEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEqgIAIHIAIAIAIAIAIAIAIAIAIATSAATSIAIAIAIAIAIATSpOktlhlhlhlhlhnRTQxclhlhlhlhlhlhlhlhlhlhpOLKlhlhlhqnuvuvTSIAIAIAIAIAIAIAIAIAIHIAIAIAIAIAIAIAIAIAIATSTSTSTSTSTSTSUFioTSTSTSTSTSTSTSIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIHIA qguEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEqgIAIHIAIAIAIAIAIAIAIAIAIATSvBTSTSTSTSTSTSTSTSpOktlhTKlhpOpOpOTQSclhBUfElhTKTKTKTKTKlhpOLKTSTSTSTSTSTSTSIAIAIAIAIAIAIAIAIAIHIAIAIAIAIAIAIAIAIAIATSioYxlgiuPCakioioakPCiulgYxioTSIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIHIA -qguEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEqgIAIHIAIAIAIAIAIAIAIAIAIATSvBlhpOpOpOLNpOpOpOpOktlhTKlhpOpOpOTQmZCmKXKXlhTKTKTKTKTKlhFoaoTSIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIHIAIAIAIAIAIAIAIAIAIATStJioioioioioioioiodqioioiozvTSIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIHIA +qguEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEqgIAIHIAIAIAIAIAIAIAIAIAIATSvBlhpOpOpOLNpOpOpOpOktlhTKlhpOpOpOTQmZCmKXKXlhTKTKTKTKTKlhFoaoTSIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIHIAIAIAIAIAIAIAIAIAIATStJQYioioioioioioiodqioioiozvTSIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIHIA qguEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEqgIAIHIAIAIAIAIAIAIAIAIAIATSvBlhOukVkVkVkVkVkVkVwYlhTKlhgRBuyuTQCYlhlhlhlhlhlhlhTKlhlhlhGATSIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIHIAIAIAIAIAIAIAIAIAIATSqXdSiodqioioioioqXdSioioiodqTSIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIHIA -qguEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEqgIAIHIAIAIAIAIAIAIAIAIAIATSvBlhSNSNSNbQSNSNSNlhlhlhlhlhjilhlhoolhlhBZlhBZlhBZlhTKlhuvtouvTSIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIHIAIAIAIAIAIAIAIAIAIATSioioiodSioioioioioioioqXdSioTSIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIHIA -qguEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEqgIAIHIAIAIAIAIAIAIAIAIAIATSmpptlmlmlmlmlmlmDuSNjecHDMoHAjSijqOjlhlhmKlhmKlhmKlhTKlhuvuvuvTSIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIHIAIAIAIAIAIAIAIAIAIATSioioioeyioBgioioBgioioioBgioTSIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIHIA +qguEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEqgIAIHIAIAIAIAIAIAIAIAIAIATSvBlhSNSNSNbQSNSNSNlhlhlhlhlhjilhlhoolhlhBZlhBZlhBZlhTKlhuvtouvTSIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIHIAIAIAIAIAIAIAIAIAIATSioioiodSDrioioioioioioqXdSioTSIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIHIA +qguEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEqgIAIHIAIAIAIAIAIAIAIAIAIATSmpptlmlmlmlmlmlmDuSNjecHDMoHAjSijqOjlhlhmKlhmKlhmKlhTKlhuvuvuvTSIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIHIAIAIAIAIAIAIAIAIAIATSioioiobcioBgioioBgioioiohRioTSIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIHIA qguEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEqgIAIHIAIAIAIAIAIAIAIAIAIATSTSTSTSTSTSTSTSTSnESNYLZAuDnGuDuNdbuvlhlhSGSuKXSuSGlhTKlhuvuvuvTSIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIHIATSTSTSTSTSTSTSTSTSTSTSTSTSTSTSTSUFioTSTSTSTSTSTSTSIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIHIA qguEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEqgIAIHIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIATSnElhSNSNSNlhjiSNlhhDlhlhlhlhkulhlhTSTSTSTSTSTSTSIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIHIATSioioioioioioioioioioioioioioioioioioioioioioioTSIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIHIA qguEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEuEqgIAIHIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIATSLRlhnhnhnhbCAjapBIHpyypOpOHaPOiPpOTSIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIHIATSiovpioioioioiovpioioioiovpioioioiovpioioioioioTSIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIAIHIA