From 5b5d956943074edd0fdee754457fa22fbf9376d8 Mon Sep 17 00:00:00 2001 From: coiax Date: Sat, 7 May 2016 22:35:57 +0100 Subject: [PATCH] Alternate escape shuttles and ferries (#16761) * Added a simple bar-theme escape shuttle Features include a very tough Bardrone, with laws to be a good bartender, bathroom, a quality lounge for the heads, and a small gambling table. * Changed drone's health to 3000 Bardrone is now strong, to cope from stray gunfire. * Replaces banned variables with alternates Step_[xy] is bad, mkay? * Added STV5, the cramped transport shuttle Well, looks like Centcom only had this ship ready for evacuation. I hope you're friendly with your coworkers! * Removed shuttle area from empty space on STV5 * Added cult shuttle Looks like this automated shuttle may have wandered into the darkness between the stars on route to the station. Let's not think too hard about where all the bodies came from. * Include the Narnar Shuttle * Meat ferry added Very basic, could probably use some love from a map wizard. * Moved shuttle files to shuttles/ directory * MAPS MOVED AND RENAMED * Hyperfractal Gigashuttle "I dunno, this seems kinda needlessly complicated." "This shuttle has very a very high safety record, according to Centcom Officer Cadet Yins." "Are you sure?" "Yes, it has a safety record of N-A-N, which is apparently larger than 100%." * I REGRET ADDING THESE * Into templates you go * Changed floors * Hugbox supermatter, for map making * Shuttles KINDA delete themselves * Hats in hats in hats in hats in hats * Use the hugbox supermatter in the shuttle * Include the new verbs * Include our new verbs * Fixed runtime when deleting emergency shuttle * Added to verb list * Fixes more runtimes with deleting the shuttle * Shuttle Destroy verb now functions * Moved them out of the shuttles/ folder * We'll need these docks later * shuttle_import landmark datum made * Changes z2 to TGM format and adds shuttle_import landmark * SHUTTLE IMPORT VERB Is this it? Are we there? * Some compile fixes * Emergency bar map updated * Updated cramped shuttle * Updated narnar shuttle * Supermatter shuttle updated * Meat ferry updated * Debugging information included * Debug code, QDEL hints * Minor updates to collection of maps * May as well use the snowflake drone code PICK YOUR OWN BARKEEPING HAT. * The Lighthouse *static*... part of a much larger vessel, possibly military in origin. The weapon markings aren't anything we've seen ... *static* ... by almost never the same person twice, possible use of unknown storage ... *static* ... seeing ERT officers onboard, but no missions are on file for ... *static* ... *static* ... *annoying jingle* ... only at The LIGHTHOUSE! Fulfilling needs you didn't even know you had. We've got EVERYTHING, and something else! * Made supermatter hallucination too powerful * Added force argument for docking testing * Added emergency backup shuttle Hopefully it will never be seen or used. But means that provided it's there and untouched, even with the accidental deletion of a shuttle, round will still be able to end as normal. * Added templates for existing shuttles * Backup shuttle used if emergency shuttle deleted * Added backup shuttle transit space Don't know why transit spaces aren't dynamically generated, to be honest. * Hyperfractal Gigashuttle improved More radiation lockers, chairs which makes it "safer". * Added Shuttle Under Construction The documentation hasn't been finished yet for this shuttle. Break glass in case of emergency. * Added warnings for shuttle interaction ARE YOU SURE YOU WANT TO DELETE THE EMERGENCY SHUTTLE? I mean, I really don't know what will happen, and it's probably nothing good. * Snappop(tm)! Hey kids and grownups! Are you bored of DULL and TEDIOUS shuttle journeys after you're evacuating for probably BORING reasons. Well then order the Snappop today! We've got fun activities for everyone, an all access cockpit, and no boring security brig! Boo! Play dress up with your friends! Collect all the bedsheets before your neighbour does so! Check if the AI is watching you with our patent pending "Peeping Tom AI Multitool Detector" or PEEEEEETUR for short. Have a fun ride! * Fixed horrific experiment icon, added gambling spawner * Candle changes Infinite candles start fires but don't run out. Infinite candles don't make messages when created. * Shuttle can dock if already docked * Fixing bugs with shuttle import Also, some minor bugs with hugbox supermatter still consuming gas moles and slowly depressurising the area. * Admin notice, unload bad template * Fixes problems with some shuttles * Warning message if roundstart dock failed * Compiles. * Inform admins of shuttle problems * Names for shuttles, minor tweaks * Moved shuttle templates to shuttles/ * Version numbers are lame * Shuttle datums * Shuttle manipulator barebones It doesn't do anything at the moment. * Added shuttle manipulator to Z2 It still doesn't do anything yet, but it looks pretty. * Use GetAllContents(), don't delete ghosts * Fixes bug where nothing would actually load * Cancel button on Destroy Shuttle * Fixed birdboat shuttle overwriting bar shuttle --- .../MetaStation/MetaStation.v41I.dmm | 5 +- _maps/map_files/generic/z2.dmm | 2326 +++++++++-------- _maps/shuttles/cargo_birdboat.dmm | 39 + _maps/shuttles/cargo_box.dmm | 37 + _maps/shuttles/emergency_airless.dmm | 43 + _maps/shuttles/emergency_bar.dmm | 86 + _maps/shuttles/emergency_birdboat.dmm | 78 + _maps/shuttles/emergency_box.dmm | 88 + _maps/shuttles/emergency_clown.dmm | 87 + _maps/shuttles/emergency_cramped.dmm | 39 + _maps/shuttles/emergency_meta.dmm | 132 + _maps/shuttles/emergency_narnar.dmm | 73 + _maps/shuttles/emergency_supermatter.dmm | 69 + _maps/shuttles/ferry_base.dmm | 26 + _maps/shuttles/ferry_lighthouse.dmm | 81 + _maps/shuttles/ferry_meat.dmm | 32 + _maps/shuttles/whiteship_box.dmm | 85 + _maps/shuttles/whiteship_meta.dmm | 176 ++ code/__DEFINES/misc.dm | 3 + code/_globalvars/lists/mapping.dm | 4 +- code/controllers/subsystem/shuttles.dm | 23 +- code/datums/helper_datums/map_template.dm | 25 +- code/datums/shuttles.dm | 160 ++ code/game/gamemodes/game_mode.dm | 3 +- code/game/machinery/status_display.dm | 4 +- .../game/objects/effects/spawners/lootdrop.dm | 8 + code/game/objects/items/candle.dm | 16 +- code/game/objects/structures/bedsheet_bin.dm | 13 + code/game/objects/structures/showcase.dm | 8 +- code/modules/admin/admin_verbs.dm | 2 + code/modules/admin/verbs/shuttles.dm | 118 + .../simple_animal/friendly/drone/_drone.dm | 4 +- code/modules/mob/mob.dm | 8 +- code/modules/power/supermatter/supermatter.dm | 37 +- code/modules/shuttle/emergency.dm | 27 + code/modules/shuttle/manipulator.dm | 13 + code/modules/shuttle/shuttle.dm | 128 +- sound/effects/mulebeep1.ogg | Bin 0 -> 77575 bytes tgstation.dme | 3 + 39 files changed, 2929 insertions(+), 1180 deletions(-) create mode 100644 _maps/shuttles/cargo_birdboat.dmm create mode 100644 _maps/shuttles/cargo_box.dmm create mode 100644 _maps/shuttles/emergency_airless.dmm create mode 100644 _maps/shuttles/emergency_bar.dmm create mode 100644 _maps/shuttles/emergency_birdboat.dmm create mode 100644 _maps/shuttles/emergency_box.dmm create mode 100644 _maps/shuttles/emergency_clown.dmm create mode 100644 _maps/shuttles/emergency_cramped.dmm create mode 100644 _maps/shuttles/emergency_meta.dmm create mode 100644 _maps/shuttles/emergency_narnar.dmm create mode 100644 _maps/shuttles/emergency_supermatter.dmm create mode 100644 _maps/shuttles/ferry_base.dmm create mode 100644 _maps/shuttles/ferry_lighthouse.dmm create mode 100644 _maps/shuttles/ferry_meat.dmm create mode 100644 _maps/shuttles/whiteship_box.dmm create mode 100644 _maps/shuttles/whiteship_meta.dmm create mode 100644 code/datums/shuttles.dm create mode 100644 code/modules/admin/verbs/shuttles.dm create mode 100644 code/modules/shuttle/manipulator.dm create mode 100644 sound/effects/mulebeep1.ogg diff --git a/_maps/map_files/MetaStation/MetaStation.v41I.dmm b/_maps/map_files/MetaStation/MetaStation.v41I.dmm index 9a976b2f168..bbec2be5967 100644 --- a/_maps/map_files/MetaStation/MetaStation.v41I.dmm +++ b/_maps/map_files/MetaStation/MetaStation.v41I.dmm @@ -49939,10 +49939,7 @@ /area/crew_quarters/bar) "bCu" = ( /obj/structure/table/wood/poker, -/obj/effect/spawner/lootdrop{ - loot = list(/obj/item/weapon/gun/projectile/revolver/russian = 5, /obj/item/weapon/storage/box/syndie_kit/throwing_weapons, /obj/item/toy/cards/deck/syndicate = 2); - name = "gambling valuables spawner" - }, +/obj/effect/spawner/lootdrop/gambling, /turf/open/floor/wood, /area/crew_quarters/bar) "bCv" = ( diff --git a/_maps/map_files/generic/z2.dmm b/_maps/map_files/generic/z2.dmm index a3b5fe4f31f..fda763709db 100644 --- a/_maps/map_files/generic/z2.dmm +++ b/_maps/map_files/generic/z2.dmm @@ -5872,6 +5872,80 @@ dir = 6 }, /area/ctf) +"rL" = ( +/obj/effect/landmark/shuttle_import, +/turf/open/space, +/area/space) +"rM" = ( +/turf/closed/wall/shuttle/smooth, +/area/shuttle/escape) +"rN" = ( +/obj/machinery/status_display{ + layer = 4; + pixel_x = 0; + pixel_y = 32 + }, +/turf/open/floor/plasteel/shuttle/white, +/area/shuttle/escape) +"rO" = ( +/turf/open/floor/plasteel/shuttle/white, +/area/shuttle/escape) +"rP" = ( +/turf/open/floor/plasteel/shuttle/red, +/area/shuttle/escape) +"rQ" = ( +/obj/machinery/door/airlock/shuttle, +/obj/docking_port/stationary{ + dir = 4; + dwidth = 3; + height = 8; + id = "backup_away"; + name = "Backup Shuttle Dock"; + width = 8 + }, +/obj/docking_port/mobile/emergency/backup, +/turf/open/floor/plating, +/area/shuttle/escape) +"rR" = ( +/obj/structure/chair/office/light{ + dir = 4 + }, +/turf/open/floor/plasteel/shuttle/white, +/area/shuttle/escape) +"rS" = ( +/obj/structure/table/wood, +/obj/item/weapon/paper{ + info = "Due to circumstances beyond our control, your Emergency Evacuation Shuttle is out of service.

We apologise for the inconvinience this may cause you.

Please enjoy the use of this complementary book.

Sincerely,
Centcom Operations Demolitions Examination Retribution Bugfixing Underlining Services" + }, +/turf/open/floor/plasteel/shuttle/white, +/area/shuttle/escape) +"rT" = ( +/obj/docking_port/stationary/transit{ + dir = 8; + dwidth = 2; + height = 8; + id = "backup_transit"; + width = 8 + }, +/turf/open/space/transit, +/area/space) +"rU" = ( +/obj/machinery/status_display{ + density = 0; + pixel_y = -30; + supply_display = 1 + }, +/turf/open/floor/plasteel/shuttle/white, +/area/shuttle/escape) +"rV" = ( +/obj/structure/table/wood, +/obj/item/weapon/book/manual/random, +/turf/open/floor/plasteel/shuttle/white, +/area/shuttle/escape) +"rW" = ( +/obj/machinery/shuttle_manipulator, +/turf/open/floor/plasteel/black, +/area/centcom/ferry) (1,1,1) = {" aa @@ -10059,37 +10133,37 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa ab ab ab @@ -10316,37 +10390,37 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa ab ab ab @@ -10573,37 +10647,37 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa ab ab ab @@ -10830,37 +10904,37 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa ab ab ab @@ -11087,37 +11161,37 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa ab ab ab @@ -11344,37 +11418,37 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa ab ab ab @@ -11601,37 +11675,37 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa ab ab ab @@ -11858,37 +11932,37 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa ab ab ab @@ -12115,37 +12189,37 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa ab ab ab @@ -12372,37 +12446,37 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa ab ab ab @@ -12629,37 +12703,37 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa ab ab ab @@ -12886,37 +12960,37 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa ab ab ab @@ -13143,37 +13217,37 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa ab ab ab @@ -13400,37 +13474,37 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa ab ab ab @@ -13657,37 +13731,37 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa ab ab ab @@ -13914,37 +13988,37 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa ab ab ab @@ -14171,37 +14245,37 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +rT +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa ab ab ab @@ -14428,37 +14502,37 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa ab ab ab @@ -14685,37 +14759,37 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa ab ab ab @@ -14942,37 +15016,37 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa ab ab ab @@ -15199,37 +15273,37 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa ab ab ab @@ -15456,37 +15530,37 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa ab ab ab @@ -15713,37 +15787,37 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa ab ab ab @@ -15970,37 +16044,37 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa ab ab ab @@ -16227,37 +16301,37 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa ab ab ab @@ -16484,37 +16558,37 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa ab ab ab @@ -16741,37 +16815,37 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa ab ab ab @@ -16998,37 +17072,37 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa ab ab ab @@ -17255,37 +17329,37 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa ab ab ab @@ -17512,37 +17586,37 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa ab ab ab @@ -17769,37 +17843,37 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa ab ab ab @@ -18026,37 +18100,37 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa ab ab ab @@ -18283,37 +18357,37 @@ aa aa aa aa -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa +aa ab ab ab @@ -38646,7 +38720,7 @@ ab ab ab eJ -eO +eP eO eO eO @@ -38903,7 +38977,7 @@ ab ab ab eJ -eP +rW eO eO eW @@ -56950,7 +57024,7 @@ ab ab ab ab -ab +rL ab ab ab @@ -64761,16 +64835,16 @@ df dg cT ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad ab ab ab @@ -65018,16 +65092,16 @@ cT cT cT ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +ad +rM +rM +rQ +rM +rM +rM +rM +rM +ad ab ab ab @@ -65275,16 +65349,16 @@ cU ad ab ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +ad +rM +rN +rO +rO +rO +rO +rU +rM +ad ab ab ab @@ -65532,16 +65606,16 @@ cV ad ab ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +ad +rM +rO +rO +rO +rO +rO +rO +rM +ad ab ab ab @@ -65789,16 +65863,16 @@ cV ad ab ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +ad +rM +rP +rP +rP +rP +rO +rP +rM +ad ab ab ab @@ -66046,16 +66120,16 @@ cV ad ab ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +ad +rM +rP +rP +rP +rP +rO +rP +rM +ad ab ab ab @@ -66303,16 +66377,16 @@ cV ad ab ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +ad +rM +rO +rR +rO +rO +rO +rO +rM +ad ab ab ab @@ -66560,16 +66634,16 @@ cV ad ab ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +ad +rM +rN +rS +rV +rO +rO +rU +rM +ad ab ab ab @@ -66817,16 +66891,16 @@ cV ad ab ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +ad +rM +rM +rM +rM +rM +rM +rM +rM +ad ab ab ab @@ -67074,16 +67148,16 @@ cV ad ab ab -ab -ab -ab -ab -ab -ab -ab -ab -ab -ab +ad +ad +ad +ad +ad +ad +ad +ad +ad +ad ab ab ab diff --git a/_maps/shuttles/cargo_birdboat.dmm b/_maps/shuttles/cargo_birdboat.dmm new file mode 100644 index 00000000000..423c397f6c1 --- /dev/null +++ b/_maps/shuttles/cargo_birdboat.dmm @@ -0,0 +1,39 @@ +"a" = (/turf/closed/wall/shuttle{icon_state = "swall_s6"; dir = 2},/area/shuttle/supply) +"b" = (/turf/closed/wall/shuttle{icon_state = "swall12"; dir = 2},/area/shuttle/supply) +"c" = (/turf/closed/wall/shuttle{icon_state = "swall_s10"; dir = 2},/area/shuttle/supply) +"d" = (/turf/closed/wall/shuttle{icon_state = "swall3"; dir = 2},/area/shuttle/supply) +"e" = (/obj/machinery/conveyor{dir = 2; id = "cargoshuttle"; name = "cargo shuttle conveyor belt"},/turf/open/floor/plasteel/shuttle,/area/shuttle/supply) +"f" = (/obj/machinery/conveyor{dir = 8; id = "cargoshuttle"; name = "cargo shuttle conveyor belt"},/turf/open/floor/plasteel/shuttle,/area/shuttle/supply) +"g" = (/obj/machinery/conveyor{dir = 4; id = "cargoshuttle"; name = "cargo shuttle conveyor belt"},/turf/open/floor/plasteel/shuttle,/area/shuttle/supply) +"h" = (/obj/machinery/conveyor{dir = 9; id = "cargoshuttle"; name = "cargo shuttle conveyor belt"},/turf/open/floor/plasteel/shuttle,/area/shuttle/supply) +"i" = (/obj/machinery/conveyor{dir = 1; id = "cargoshuttle"; name = "cargo shuttle conveyor belt"},/turf/open/floor/plasteel/shuttle,/area/shuttle/supply) +"j" = (/obj/machinery/conveyor{dir = 10; id = "cargoshuttle"; name = "cargo shuttle conveyor belt"},/turf/open/floor/plasteel/shuttle,/area/shuttle/supply) +"k" = (/obj/machinery/conveyor{dir = 6; id = "cargoshuttle"; name = "cargo shuttle conveyor belt"},/turf/open/floor/plasteel/shuttle,/area/shuttle/supply) +"l" = (/obj/machinery/door/poddoor{id = "QMLoaddoor2"; name = "supply dock loading door"},/obj/machinery/conveyor{dir = 8; id = "cargoshuttle"; name = "cargo shuttle conveyor belt"},/turf/open/floor/plating,/area/shuttle/supply) +"m" = (/turf/open/floor/plasteel/shuttle,/area/shuttle/supply) +"n" = (/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/supply) +"o" = (/obj/machinery/door/airlock/shuttle{name = "Supply Shuttle Airlock"; req_access_txt = "31"},/turf/open/floor/plating,/area/shuttle/supply) +"p" = (/obj/machinery/button/door{dir = 2; id = "QMLoaddoor2"; name = "Loading Doors"; pixel_x = 24; pixel_y = 8},/obj/machinery/button/door{id = "QMLoaddoor"; name = "Loading Doors"; pixel_x = 24; pixel_y = -8},/obj/machinery/conveyor_switch/oneway{id = "cargoshuttle"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/supply) +"q" = (/obj/machinery/door/airlock/shuttle{name = "Supply Shuttle Airlock"; req_access_txt = "31"},/obj/docking_port/mobile/supply{dwidth = 3; width = 10},/turf/open/floor/plating,/area/shuttle/supply) +"r" = (/obj/machinery/door/poddoor{id = "QMLoaddoor"; name = "supply dock loading door"},/obj/machinery/conveyor{dir = 4; id = "cargoshuttle"; name = "cargo shuttle conveyor belt"},/turf/open/floor/plating,/area/shuttle/supply) +"s" = (/turf/closed/wall/shuttle{icon_state = "swallc3"},/area/shuttle/supply) +"t" = (/turf/closed/wall/shuttle{icon_state = "swall14"; dir = 2},/area/shuttle/supply) +"u" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/open/floor/plating/airless,/area/shuttle/supply) +"v" = (/turf/closed/wall/shuttle{icon_state = "swallc4"; dir = 2},/area/shuttle/supply) +"w" = (/turf/open/space,/area/space) +"x" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"},/turf/open/floor/plating/airless,/area/shuttle/supply) +"y" = (/obj/structure/shuttle/engine/propulsion,/turf/open/floor/plating/airless,/area/shuttle/supply) +"z" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"},/turf/open/floor/plating/airless,/area/shuttle/supply) + +(1,1,1) = {" +abbbbbc +deffffd +dggghid +deffjkl +dmmmmno +dmmmmpd +dmmmmnq +dgggggr +stuuutv +wxyyyzw +"} diff --git a/_maps/shuttles/cargo_box.dmm b/_maps/shuttles/cargo_box.dmm new file mode 100644 index 00000000000..05df2fa52ba --- /dev/null +++ b/_maps/shuttles/cargo_box.dmm @@ -0,0 +1,37 @@ +"a" = (/turf/closed/wall/shuttle{icon_state = "swall_s6"; dir = 2},/area/shuttle/supply) +"b" = (/turf/closed/wall/shuttle{icon_state = "swall12"; dir = 2},/area/shuttle/supply) +"c" = (/turf/closed/wall/shuttle{icon_state = "swall_s10"; dir = 2},/area/shuttle/supply) +"d" = (/turf/closed/wall/shuttle{icon_state = "swall3"; dir = 2},/area/shuttle/supply) +"e" = (/turf/open/floor/plasteel/shuttle,/area/shuttle/supply) +"f" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad2"},/obj/machinery/door/poddoor{id = "QMLoaddoor2"; name = "supply dock loading door"},/turf/open/floor/plating,/area/shuttle/supply) +"g" = (/obj/machinery/door/airlock/shuttle{name = "Supply Shuttle Airlock"; req_access_txt = "31"},/turf/open/floor/plating,/area/shuttle/supply) +"h" = (/obj/machinery/button/door{dir = 2; id = "QMLoaddoor2"; name = "Loading Doors"; pixel_x = 24; pixel_y = 8},/obj/machinery/button/door{id = "QMLoaddoor"; name = "Loading Doors"; pixel_x = 24; pixel_y = -8},/turf/open/floor/plasteel/shuttle,/area/shuttle/supply) +"i" = (/obj/machinery/door/airlock/shuttle{name = "Supply Shuttle Airlock"; req_access_txt = "31"},/obj/docking_port/mobile/supply{dwidth = 5; width = 12},/turf/open/floor/plating,/area/shuttle/supply) +"j" = (/obj/machinery/conveyor{dir = 4; id = "QMLoad"},/obj/machinery/door/poddoor{id = "QMLoaddoor"; name = "supply dock loading door"},/turf/open/floor/plating,/area/shuttle/supply) +"k" = (/turf/closed/wall/shuttle{icon_state = "swall7"; dir = 2},/area/shuttle/supply) +"l" = (/turf/open/floor/plasteel/shuttle,/turf/closed/wall/shuttle/interior{icon_state = "swall_f10"},/area/shuttle/supply) +"m" = (/turf/open/floor/plasteel/shuttle,/turf/closed/wall/shuttle/interior{icon_state = "swall_f6"},/area/shuttle/supply) +"n" = (/turf/closed/wall/shuttle{icon_state = "swall11"; dir = 2},/area/shuttle/supply) +"o" = (/turf/closed/wall/shuttle{icon_state = "swall_s5"; dir = 2},/area/shuttle/supply) +"p" = (/turf/closed/wall/shuttle{icon_state = "swall15"; dir = 2},/area/shuttle/supply) +"q" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/open/floor/plating/airless,/area/shuttle/supply) +"r" = (/turf/closed/wall/shuttle{icon_state = "swall_s9"; dir = 2},/area/shuttle/supply) +"s" = (/turf/open/space,/area/space) +"t" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_l"},/turf/open/floor/plating/airless,/area/shuttle/supply) +"u" = (/obj/structure/shuttle/engine/propulsion,/turf/open/floor/plating/airless,/area/shuttle/supply) +"v" = (/obj/structure/shuttle/engine/propulsion{icon_state = "burst_r"},/turf/open/floor/plating/airless,/area/shuttle/supply) + +(1,1,1) = {" +abbbbbc +deeeeed +deeeeed +deeeeef +deeeeeg +deeeehd +deeeeei +deeeeej +deeeeed +kleeemn +opqqqpr +stuuuvs +"} diff --git a/_maps/shuttles/emergency_airless.dmm b/_maps/shuttles/emergency_airless.dmm new file mode 100644 index 00000000000..d2d0025ee2f --- /dev/null +++ b/_maps/shuttles/emergency_airless.dmm @@ -0,0 +1,43 @@ +"a" = (/turf/open/space,/area/space) +"b" = (/turf/open/floor/plating/airless,/area/shuttle/escape) +"c" = (/turf/closed/wall,/area/shuttle/escape) +"d" = (/obj/structure/fireaxecabinet,/turf/closed/wall,/area/shuttle/escape) +"e" = (/obj/structure/closet/malf,/turf/open/floor/plating/airless,/area/shuttle/escape) +"f" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/open/floor/plating/airless,/area/shuttle/escape) +"g" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 1},/obj/structure/grille,/turf/open/floor/plating/airless,/area/shuttle/escape) +"h" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/open/floor/plating/airless,/area/shuttle/escape) +"i" = (/obj/machinery/computer/emergency_shuttle,/turf/open/floor/plating/airless,/area/shuttle/escape) +"j" = (/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 8},/obj/structure/grille,/turf/open/floor/plating/airless,/area/shuttle/escape) +"k" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced,/obj/structure/grille,/turf/open/floor/plating/airless,/area/shuttle/escape) +"l" = (/turf/open/floor/plating,/area/shuttle/escape) +"m" = (/obj/structure/chair{dir = 8},/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/turf/open/floor/plating/airless,/area/shuttle/escape) +"n" = (/obj/structure/chair{dir = 4},/turf/open/floor/plating/airless,/area/shuttle/escape) +"o" = (/obj/docking_port/mobile/emergency{name = "Shuttle Under Construction"},/turf/open/floor/plating/airless,/area/shuttle/escape) +"p" = (/obj/structure/rack,/obj/effect/spawner/lootdrop/maintenance{lootcount = 4; name = "4maintenance loot spawner"},/turf/open/floor/plating/airless,/area/shuttle/escape) +"q" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/open/floor/plating/airless,/area/shuttle/escape) +"r" = (/obj/structure/shuttle/engine/propulsion,/turf/open/floor/plating/airless,/area/shuttle/escape) + +(1,1,1) = {" +aabcccdccaa +abbbbbbbbba +acebbbbfgca +acebbbbhica +acebbbbjkca +abbbbbbbbba +bbbbbbbbbbc +lbmnbmnbmbc +bbmnbmnbmbc +obmnbmnbmbc +bbmnbmnbmbc +bbmnbmnbmbb +bbbbbbbbbbc +bbbbbbbbbbc +abbbbbbbbba +abbbbbbbpca +abbbbbbbpca +acbbbbbbpca +acbbbbbbbba +acbbbbbbbca +aaqqqqqqqaa +aarrrrrrraa +"} diff --git a/_maps/shuttles/emergency_bar.dmm b/_maps/shuttles/emergency_bar.dmm new file mode 100644 index 00000000000..3846904216b --- /dev/null +++ b/_maps/shuttles/emergency_bar.dmm @@ -0,0 +1,86 @@ +"aa" = (/turf/open/space,/area/space) +"ab" = (/turf/closed/wall/shuttle/smooth,/area/shuttle/escape) +"ac" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/escape) +"ad" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green,/turf/open/floor/carpet,/area/shuttle/escape) +"ae" = (/obj/structure/chair/comfy/brown{dir = 1},/turf/open/floor/carpet,/area/shuttle/escape) +"af" = (/obj/machinery/computer/emergency_shuttle,/turf/open/floor/carpet,/area/shuttle/escape) +"ag" = (/obj/structure/table/wood,/obj/item/weapon/storage/fancy/cigarettes/cigars/havana,/obj/item/weapon/lighter{pixel_x = -4; pixel_y = 6},/turf/open/floor/carpet,/area/shuttle/escape) +"ah" = (/obj/machinery/computer/atmos_alert,/turf/open/floor/carpet,/area/shuttle/escape) +"ai" = (/obj/structure/chair/comfy/brown{dir = 8},/turf/open/floor/carpet,/area/shuttle/escape) +"aj" = (/turf/open/floor/carpet,/area/shuttle/escape) +"ak" = (/obj/structure/chair/comfy/brown{dir = 4},/turf/open/floor/carpet,/area/shuttle/escape) +"al" = (/obj/machinery/computer/security,/turf/open/floor/carpet,/area/shuttle/escape) +"am" = (/obj/machinery/computer/crew,/turf/open/floor/carpet,/area/shuttle/escape) +"an" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/obj/structure/chair/comfy/brown{dir = 8},/turf/open/floor/carpet,/area/shuttle/escape) +"ao" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -29},/turf/open/floor/carpet,/area/shuttle/escape) +"ap" = (/obj/machinery/button/flasher{id = "cockpit_flasher"; pixel_x = 6; pixel_y = -24},/obj/structure/statue/diamond/captain{anchored = 1; name = "statue of THE captain"},/turf/open/floor/carpet,/area/shuttle/escape) +"aq" = (/obj/machinery/computer/communications,/turf/open/floor/carpet,/area/shuttle/escape) +"ar" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Cockpit"; req_access_txt = "19"},/turf/open/floor/carpet,/area/shuttle/escape) +"as" = (/obj/machinery/status_display,/turf/closed/wall/shuttle/smooth,/area/shuttle/escape) +"at" = (/obj/structure/chair,/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"au" = (/obj/machinery/flasher{id = "cockpit_flasher"; pixel_x = 6; pixel_y = 24},/obj/structure/flora/kirbyplants{icon_state = "plant-10"; layer = 4.1},/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"av" = (/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"aw" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"ax" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"ay" = (/obj/machinery/flasher{id = "shuttle_flasher"; pixel_x = -24; pixel_y = 6},/obj/machinery/button/flasher{id = "shuttle_flasher"; pixel_x = -24; pixel_y = -6},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"az" = (/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"aA" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Brig"; req_access_txt = "2"},/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"aB" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"; req_access_txt = "2"},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"aC" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"aD" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"aE" = (/obj/structure/chair/wood{dir = 4},/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"aF" = (/obj/structure/table/wood,/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"aG" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/structure/table,/obj/item/weapon/storage/firstaid/toxin,/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"aH" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/obj/docking_port/mobile/emergency{name = "The Emergency Escape Bar"},/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"aI" = (/obj/structure/table,/obj/machinery/chem_dispenser/drinks/beer,/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"aJ" = (/obj/structure/chair,/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"aK" = (/mob/living/simple_animal/drone/snowflake{desc = "A barkeeping drone, an indestructible robot built to tend bars."; dir = 8; health = 3000; languages = 127; laws = "1. Serve drinks. 2. Talk to patrons. 3. Don't get messed up in their affairs."; maxHealth = 3000; name = "Bardrone"; seeStatic = 0},/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"aL" = (/obj/machinery/vending/boozeomat,/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"aM" = (/obj/structure/table,/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"aN" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/saltshaker,/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 6; pixel_y = 4},/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"aO" = (/obj/structure/table,/obj/machinery/chem_dispenser/drinks,/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"aP" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"aQ" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"aR" = (/obj/structure/chair/stool,/turf/open/floor/wood,/area/shuttle/escape) +"aS" = (/obj/structure/table/wood/poker,/obj/effect/spawner/lootdrop/gambling,/turf/open/floor/wood,/area/shuttle/escape) +"aT" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"aU" = (/obj/machinery/vending/cigarette,/turf/open/floor/plasteel/bar,/area/shuttle/escape) +"aV" = (/obj/machinery/door/airlock{name = "Unisex Restrooms"; req_access_txt = "0"},/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape) +"aW" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape) +"aX" = (/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape) +"aY" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape) +"aZ" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape) +"ba" = (/obj/machinery/door/airlock{name = "Unit 1"},/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape) +"bb" = (/obj/machinery/door/airlock{name = "Unit 2"},/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape) +"bc" = (/obj/machinery/door/airlock{name = "Unit B"},/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape) +"bd" = (/obj/structure/closet/jcloset,/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape) +"be" = (/obj/structure/toilet{dir = 1},/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape) +"bf" = (/obj/machinery/recharge_station,/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape) +"bg" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape) +"bh" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/open/floor/plating/airless,/area/shuttle/escape) +"bi" = (/obj/structure/shuttle/engine/propulsion,/turf/open/floor/plating/airless,/area/shuttle/escape) + +(1,1,1) = {" +aaaaabacacacacacabaaaa +aaababadaeafaeagababaa +aaabahaiajajajakalabaa +aaabamanaoapajakaqabaa +ababababababarasababab +abatatatacauavavawaxac +abayazazaAavavavavavab +aBaCaDaDacavaEaFaFaFac +abababababavaEaFavaGab +aHavavavavavaEaFavaIab +abaJaJaJavavaEaFaKaLab +acaMaNaMavavaEaFavaOac +acaPaPaPavavaEaFavavac +acavavavavavaEaFaFaFac +abavavavavavavavavavab +aQavaRaSaRaTavavavaUab +ababababababababaVabab +aWaXaXaXaXaXaYaXaXaZac +abbaabbbabbcabbdaXaZab +abbeabbeabbfabbgaXaZac +ababbhbhbhbhbhbhbhabab +aaabbibibibibibibiabaa +"} diff --git a/_maps/shuttles/emergency_birdboat.dmm b/_maps/shuttles/emergency_birdboat.dmm new file mode 100644 index 00000000000..05f356775bd --- /dev/null +++ b/_maps/shuttles/emergency_birdboat.dmm @@ -0,0 +1,78 @@ +"aa" = (/turf/open/space,/area/space) +"ab" = (/turf/closed/wall/shuttle{icon_state = "swall_s6"; dir = 2},/area/shuttle/escape) +"ac" = (/turf/closed/wall/shuttle{icon_state = "swall12"; dir = 2},/area/shuttle/escape) +"ad" = (/turf/closed/wall/shuttle{icon_state = "swall14"; dir = 2},/area/shuttle/escape) +"ae" = (/turf/closed/wall/shuttle{icon_state = "swall_s10"; dir = 2},/area/shuttle/escape) +"af" = (/turf/closed/wall/shuttle{icon_state = "swall8"; dir = 2},/area/shuttle/escape) +"ag" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/escape) +"ah" = (/turf/closed/wall/shuttle{icon_state = "swall4"; dir = 2},/area/shuttle/escape) +"ai" = (/turf/closed/wall/shuttle{icon_state = "swall11"; dir = 2},/area/shuttle/escape) +"aj" = (/obj/structure/table,/obj/item/weapon/scalpel,/obj/item/weapon/retractor{pixel_x = 0; pixel_y = 5},/obj/item/weapon/hemostat,/turf/open/floor/plasteel{icon_state = "white"},/area/shuttle/escape) +"ak" = (/obj/structure/table,/obj/item/weapon/cautery,/obj/item/weapon/surgicaldrill,/obj/item/weapon/circular_saw{pixel_y = 9},/turf/open/floor/plasteel{icon_state = "white"},/area/shuttle/escape) +"al" = (/turf/open/floor/plasteel{icon_state = "white"},/area/shuttle/escape) +"am" = (/turf/closed/wall/shuttle{icon_state = "swall3"; dir = 2},/area/shuttle/escape) +"an" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"; dir = 8},/turf/open/floor/plating/airless,/area/shuttle/escape) +"ao" = (/turf/closed/wall/shuttle{icon_state = "swallc4"; dir = 2},/area/shuttle/escape) +"ap" = (/obj/machinery/computer/emergency_shuttle,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"aq" = (/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"ar" = (/obj/structure/flora/kirbyplants{icon_state = "plant-22"},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"as" = (/turf/closed/wall/shuttle{icon_state = "swall1"; dir = 2},/area/shuttle/escape) +"at" = (/obj/structure/chair,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/escape) +"au" = (/obj/structure/table/optable,/obj/item/weapon/surgical_drapes,/turf/open/floor/plasteel{icon_state = "white"},/area/shuttle/escape) +"av" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 8},/turf/open/floor/plating/airless,/area/shuttle/escape) +"aw" = (/obj/machinery/computer/communications,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"ax" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"ay" = (/obj/machinery/door/airlock/glass_command{name = "bridge door"; req_access_txt = "19"},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"az" = (/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/escape) +"aA" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 8},/turf/open/floor/plating/airless,/area/shuttle/escape) +"aB" = (/obj/structure/extinguisher_cabinet{pixel_y = -32},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"aC" = (/obj/structure/table,/obj/machinery/recharger{active_power_usage = 0; idle_power_usage = 0; pixel_y = 4; use_power = 0},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/escape) +"aD" = (/obj/structure/table,/obj/item/weapon/storage/box/handcuffs,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/escape) +"aE" = (/turf/closed/wall/shuttle{icon_state = "swallc2"; dir = 2},/area/shuttle/escape) +"aF" = (/turf/closed/wall/shuttle{icon_state = "swall15"; dir = 2},/area/shuttle/escape) +"aG" = (/turf/closed/wall/shuttle{icon_state = "swall_s9"; dir = 2},/area/shuttle/escape) +"aH" = (/turf/closed/wall/shuttle,/area/shuttle/escape) +"aI" = (/obj/machinery/door/airlock/glass_security{name = "security airlock"; req_access_txt = "63"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/escape) +"aJ" = (/obj/machinery/door/airlock/glass,/turf/open/floor/plasteel{icon_state = "white"},/area/shuttle/escape) +"aK" = (/turf/closed/wall/shuttle{icon_state = "swallc3"},/area/shuttle/escape) +"aL" = (/turf/closed/wall/shuttle{icon_state = "swall13"; dir = 2},/area/shuttle/escape) +"aM" = (/obj/structure/flora/kirbyplants{icon_state = "plant-21"; layer = 4.1},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"aN" = (/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"aO" = (/turf/open/floor/plasteel{icon_state = "dark"},/area/shuttle/escape) +"aP" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel{icon_state = "dark"},/area/shuttle/escape) +"aQ" = (/obj/structure/table,/turf/open/floor/plasteel{icon_state = "dark"},/area/shuttle/escape) +"aR" = (/obj/machinery/door/airlock/shuttle,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"aS" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel{icon_state = "dark"},/area/shuttle/escape) +"aT" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/snacks/boiledspaghetti{name = "pasghetti"; pixel_x = 4; pixel_y = 7},/turf/open/floor/plasteel{icon_state = "dark"},/area/shuttle/escape) +"aU" = (/obj/machinery/door/airlock/shuttle,/obj/docking_port/mobile/emergency{dheight = 0; dir = 8; dwidth = 6; height = 18; travelDir = 90; width = 14},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"aV" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/snacks/chocolatebar,/turf/open/floor/plasteel{icon_state = "dark"},/area/shuttle/escape) +"aW" = (/obj/structure/chair{dir = 1},/obj/structure/window/reinforced,/turf/open/floor/plasteel{icon_state = "dark"},/area/shuttle/escape) +"aX" = (/turf/closed/wall/shuttle{icon_state = "swall2"; dir = 2},/area/shuttle/escape) +"aY" = (/obj/structure/chair,/obj/structure/window/reinforced{dir = 1; pixel_y = 2},/turf/open/floor/plasteel{icon_state = "dark"},/area/shuttle/escape) +"aZ" = (/obj/structure/extinguisher_cabinet{pixel_x = -27},/turf/open/floor/plasteel{icon_state = "white"},/area/shuttle/escape) +"ba" = (/obj/structure/table/glass,/obj/item/weapon/storage/firstaid/fire{pixel_x = 5; pixel_y = 5},/obj/item/weapon/storage/firstaid/toxin,/turf/open/floor/plasteel{icon_state = "white"},/area/shuttle/escape) +"bb" = (/turf/closed/wall/shuttle{icon_state = "swall_s5"; dir = 2},/area/shuttle/escape) +"bc" = (/turf/closed/wall/shuttle{icon_state = "swallc1"; dir = 2},/area/shuttle/escape) +"bd" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel{icon_state = "dark"},/area/shuttle/escape) +"be" = (/obj/structure/table/glass,/obj/item/weapon/storage/firstaid/brute{pixel_x = 5; pixel_y = 5},/obj/item/weapon/storage/firstaid/brute,/turf/open/floor/plasteel{icon_state = "white"},/area/shuttle/escape) +"bf" = (/obj/structure/extinguisher_cabinet{pixel_y = -32},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"bg" = (/obj/structure/chair,/turf/open/floor/plasteel{icon_state = "dark"},/area/shuttle/escape) +"bh" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 1},/turf/open/floor/plasteel{icon_state = "white"},/area/shuttle/escape) +"bi" = (/obj/structure/table/glass,/obj/item/weapon/defibrillator/loaded,/turf/open/floor/plasteel{icon_state = "white"},/area/shuttle/escape) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaabacacacadae +aaabafagagahadacacacacacaiajakalaman +abaoapaqaqarasatatatatatamaualalamav +asawaxaqaqaqayazazazazazamalalalamaA +agaraqaqaBaragazazazaCaDamalalaEaFaG +aHagayahacacafagaIagahacaoaJaJaKaLaf +agaMaNaOaPaQaNaMaNaNaNaNaNaNaNaRaNaR +agaSaNaOaPaTaNaNaNaNaNaNaNaNaNaRaNaU +agaSaNaQaVaQaNaNaWaWaWaWaXaJaJaEadaf +agaSaNaNaNaNaNaNaYaYaYaYasaZalaKaFae +agaMaNaNaNaNaNaNaNaNaNaNaJalalbaaman +bbbcbdbdbdbdaNaNaNaNaNaNagalalbeamav +aabbacacacbcaMbfbgbgbgaMaXbhalbiamaA +aaaaaaaaaabbacafagagagahaLacacacaLaG +"} diff --git a/_maps/shuttles/emergency_box.dmm b/_maps/shuttles/emergency_box.dmm new file mode 100644 index 00000000000..87cc48d438c --- /dev/null +++ b/_maps/shuttles/emergency_box.dmm @@ -0,0 +1,88 @@ +"aa" = (/turf/open/space,/area/space) +"ab" = (/turf/closed/wall/shuttle{icon_state = "swall_s6"; dir = 2},/area/shuttle/escape) +"ac" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/escape) +"ad" = (/turf/closed/wall/shuttle{icon_state = "swall_s10"; dir = 2},/area/shuttle/escape) +"ae" = (/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/turf/closed/wall/shuttle/interior{icon_state = "swall_f9"},/area/shuttle/escape) +"af" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"ag" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"ah" = (/obj/machinery/computer/emergency_shuttle,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"ai" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"aj" = (/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/turf/closed/wall/shuttle/interior{icon_state = "swall_f5"},/area/shuttle/escape) +"ak" = (/turf/closed/wall/shuttle{icon_state = "swall3"; dir = 2},/area/shuttle/escape) +"al" = (/obj/machinery/computer/atmos_alert,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"am" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"an" = (/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"ao" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"ap" = (/obj/machinery/computer/security,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"aq" = (/obj/machinery/computer/crew,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"ar" = (/obj/structure/chair{dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"as" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -29},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"at" = (/obj/machinery/button/flasher{id = "cockpit_flasher"; pixel_x = 6; pixel_y = -24},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"au" = (/obj/machinery/computer/communications,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"av" = (/turf/closed/wall/shuttle{icon_state = "swall13"; dir = 2},/area/shuttle/escape) +"aw" = (/turf/closed/wall/shuttle{icon_state = "swall12"; dir = 2},/area/shuttle/escape) +"ax" = (/turf/closed/wall/shuttle{icon_state = "swall14"; dir = 2},/area/shuttle/escape) +"ay" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Cockpit"; req_access_txt = "19"},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"az" = (/obj/machinery/status_display,/turf/closed/wall/shuttle{icon_state = "swall12"; dir = 2},/area/shuttle/escape) +"aA" = (/obj/structure/chair,/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"aB" = (/obj/machinery/flasher{id = "cockpit_flasher"; pixel_x = 6; pixel_y = 24},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"aC" = (/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"aD" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"aE" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"aF" = (/obj/machinery/flasher{id = "shuttle_flasher"; pixel_x = -24; pixel_y = 6},/obj/machinery/button/flasher{id = "shuttle_flasher"; pixel_x = -24; pixel_y = -6},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"aG" = (/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"aH" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Brig"; req_access_txt = "2"},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"aI" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"; req_access_txt = "2"},/turf/open/floor/plating,/area/shuttle/escape) +"aJ" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"aK" = (/obj/structure/chair,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"aL" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"aM" = (/obj/structure/table,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"aN" = (/turf/closed/wall/shuttle{icon_state = "swall7"; dir = 2},/area/shuttle/escape) +"aO" = (/turf/closed/wall/shuttle{icon_state = "swallc4"; dir = 2},/area/shuttle/escape) +"aP" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/obj/docking_port/mobile/emergency,/turf/open/floor/plating,/area/shuttle/escape) +"aQ" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"aR" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"aS" = (/obj/structure/chair{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"aT" = (/obj/structure/chair{dir = 4},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"aU" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"aV" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/turf/open/floor/plating,/area/shuttle/escape) +"aW" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"aX" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Cargo"},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"aY" = (/obj/machinery/status_display,/turf/closed/wall/shuttle{icon_state = "swall14"; dir = 2},/area/shuttle/escape) +"aZ" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Infirmary"},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"ba" = (/turf/closed/wall/shuttle{icon_state = "swall11"; dir = 2},/area/shuttle/escape) +"bb" = (/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor2"},/area/shuttle/escape) +"bc" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor2"},/area/shuttle/escape) +"bd" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"be" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"bf" = (/obj/structure/closet,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor2"},/area/shuttle/escape) +"bg" = (/obj/structure/closet/crate,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor2"},/area/shuttle/escape) +"bh" = (/turf/closed/wall/shuttle{icon_state = "swall_s5"; dir = 2},/area/shuttle/escape) +"bi" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/open/floor/plating/airless,/area/shuttle/escape) +"bj" = (/turf/closed/wall/shuttle{icon_state = "swall_s9"; dir = 2},/area/shuttle/escape) +"bk" = (/obj/structure/shuttle/engine/propulsion,/turf/open/floor/plating/airless,/area/shuttle/escape) + +(1,1,1) = {" +aaaaabacacacacacadaaaa +aaabaeafagahagaiajadaa +aaakalamanananaoapakaa +aaakaqarasatanaoauakaa +abavawawaxawayazawavad +akaAaAaAacaBanaCaDaEac +akaFaGaGaHananananaCak +aIaGaJaJacaKaLaManaCac +aNawawawaOaMaMaManaCak +aPanaQananananananaRak +akaLanaSaTanaSaTanaUak +acaLanaSaTanaSaTanaUac +acaLanaSaTanaSaTanaUac +acaLanaSaTanaSaTanaUac +akaLanaSaTanaSaTanaUak +aVanaWananananananaRak +aNawawaXawaYacaZacacba +aVbbbbbbbcakaDaCaCbdac +akbbbbbbbbakaCaCaCbeak +akbfbfbgbgakaDaCaCbdac +bhaxbibibibibibibiaxbj +aabhbkbkbkbkbkbkbkbjaa +"} diff --git a/_maps/shuttles/emergency_clown.dmm b/_maps/shuttles/emergency_clown.dmm new file mode 100644 index 00000000000..2e082b3e67e --- /dev/null +++ b/_maps/shuttles/emergency_clown.dmm @@ -0,0 +1,87 @@ +"aa" = (/turf/open/space,/area/space) +"ab" = (/turf/closed/wall/shuttle{icon_state = "swall_s6"; dir = 2},/area/shuttle/escape) +"ac" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/escape) +"ad" = (/turf/closed/wall/shuttle{icon_state = "swall_s10"; dir = 2},/area/shuttle/escape) +"ae" = (/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/turf/closed/wall/shuttle/interior{icon_state = "swall_f9"},/area/shuttle/escape) +"af" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/turf/open/floor/noslip,/area/shuttle/escape) +"ag" = (/obj/structure/chair{dir = 1},/turf/open/floor/bluespace,/area/shuttle/escape) +"ah" = (/obj/machinery/computer/emergency_shuttle,/turf/open/floor/bluespace,/area/shuttle/escape) +"ai" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/turf/open/floor/noslip,/area/shuttle/escape) +"aj" = (/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/turf/closed/wall/shuttle/interior{icon_state = "swall_f5"},/area/shuttle/escape) +"ak" = (/turf/closed/wall/shuttle{icon_state = "swall3"; dir = 2},/area/shuttle/escape) +"al" = (/obj/machinery/computer/atmos_alert,/turf/open/floor/noslip,/area/shuttle/escape) +"am" = (/obj/structure/chair{dir = 8},/turf/open/floor/bluespace,/area/shuttle/escape) +"an" = (/obj/item/toy/snappop,/turf/open/floor/bluespace,/area/shuttle/escape) +"ao" = (/obj/structure/chair{dir = 4},/turf/open/floor/bluespace,/area/shuttle/escape) +"ap" = (/obj/machinery/computer/security,/turf/open/floor/noslip,/area/shuttle/escape) +"aq" = (/obj/machinery/computer/crew,/turf/open/floor/noslip,/area/shuttle/escape) +"ar" = (/obj/structure/chair{dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/open/floor/bluespace,/area/shuttle/escape) +"as" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -29},/obj/item/toy/snappop,/turf/open/floor/bluespace,/area/shuttle/escape) +"at" = (/obj/machinery/computer/communications,/turf/open/floor/noslip,/area/shuttle/escape) +"au" = (/turf/closed/wall/shuttle{icon_state = "swall13"; dir = 2},/area/shuttle/escape) +"av" = (/turf/closed/wall/shuttle{icon_state = "swall12"; dir = 2},/area/shuttle/escape) +"aw" = (/turf/closed/wall/shuttle{icon_state = "swall14"; dir = 2},/area/shuttle/escape) +"ax" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Premium Lounge"; req_access_txt = "0"},/turf/open/floor/bluespace,/area/shuttle/escape) +"ay" = (/obj/machinery/status_display,/turf/closed/wall/shuttle{icon_state = "swall12"; dir = 2},/area/shuttle/escape) +"az" = (/turf/open/chasm/straight_down/lava_land_surface,/area/shuttle/escape) +"aA" = (/turf/open/floor/noslip,/area/shuttle/escape) +"aB" = (/obj/structure/closet/emcloset,/obj/item/toy/sword,/turf/open/floor/noslip,/area/shuttle/escape) +"aC" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/turf/open/floor/noslip,/area/shuttle/escape) +"aD" = (/obj/item/weapon/greentext{anchored = 1},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"aE" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Brig"; req_access_txt = "2"},/turf/open/floor/bluespace,/area/shuttle/escape) +"aF" = (/obj/structure/chair,/turf/open/floor/noslip,/area/shuttle/escape) +"aG" = (/obj/structure/chair{dir = 4},/turf/open/floor/noslip,/area/shuttle/escape) +"aH" = (/obj/structure/table,/obj/item/device/multitool/ai_detect,/turf/open/floor/noslip,/area/shuttle/escape) +"aI" = (/turf/closed/wall/shuttle{icon_state = "swall7"; dir = 2},/area/shuttle/escape) +"aJ" = (/turf/closed/wall/shuttle{icon_state = "swallc4"; dir = 2},/area/shuttle/escape) +"aK" = (/obj/structure/table,/obj/item/toy/sword,/turf/open/floor/noslip,/area/shuttle/escape) +"aL" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/obj/docking_port/mobile/emergency{name = "Snappop(tm)!"},/turf/open/floor/plating,/area/shuttle/escape) +"aM" = (/obj/structure/extinguisher_cabinet{pixel_x = -5; pixel_y = 30},/obj/item/toy/snappop,/turf/open/floor/bluespace,/area/shuttle/escape) +"aN" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/item/toy/snappop,/turf/open/floor/bluespace,/area/shuttle/escape) +"aO" = (/obj/structure/bed,/obj/item/weapon/bedsheet/random,/turf/open/floor/noslip,/area/shuttle/escape) +"aP" = (/obj/structure/window/reinforced{dir = 4},/obj/structure/bed,/obj/item/weapon/bedsheet/random,/turf/open/floor/noslip,/area/shuttle/escape) +"aQ" = (/obj/structure/window/reinforced{dir = 8},/obj/structure/bed,/obj/item/weapon/bedsheet/random,/turf/open/floor/noslip,/area/shuttle/escape) +"aR" = (/obj/structure/bed,/obj/item/weapon/bedsheet/random,/obj/structure/window/reinforced{dir = 8},/turf/open/floor/noslip,/area/shuttle/escape) +"aS" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/turf/open/floor/plating,/area/shuttle/escape) +"aT" = (/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/obj/item/toy/snappop,/turf/open/floor/bluespace,/area/shuttle/escape) +"aU" = (/obj/item/toy/snappop,/obj/item/toy/snappop,/turf/open/floor/bluespace,/area/shuttle/escape) +"aV" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Cargo"},/turf/open/floor/bluespace,/area/shuttle/escape) +"aW" = (/obj/machinery/status_display,/turf/closed/wall/shuttle{icon_state = "swall14"; dir = 2},/area/shuttle/escape) +"aX" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Infirmary"},/turf/open/floor/bluespace,/area/shuttle/escape) +"aY" = (/turf/closed/wall/shuttle{icon_state = "swall11"; dir = 2},/area/shuttle/escape) +"aZ" = (/turf/open/floor/mineral/bananium,/area/shuttle/escape) +"ba" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/mineral/bananium,/area/shuttle/escape) +"bb" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/turf/open/floor/noslip,/area/shuttle/escape) +"bc" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/noslip,/area/shuttle/escape) +"bd" = (/obj/structure/closet/crate/trashcart{desc = "A heavy, metal trashcart with wheels. Feel free to hop in at any time!"},/obj/item/toy/sword,/turf/open/floor/mineral/bananium,/area/shuttle/escape) +"be" = (/obj/machinery/vending/autodrobe{extended_inventory = 1; scan_id = 0},/turf/open/floor/mineral/bananium,/area/shuttle/escape) +"bf" = (/obj/machinery/vending/clothing{extended_inventory = 1},/turf/open/floor/mineral/bananium,/area/shuttle/escape) +"bg" = (/turf/closed/wall/shuttle{icon_state = "swall_s5"; dir = 2},/area/shuttle/escape) +"bh" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/open/floor/plating/airless,/area/shuttle/escape) +"bi" = (/turf/closed/wall/shuttle{icon_state = "swall_s9"; dir = 2},/area/shuttle/escape) +"bj" = (/obj/structure/shuttle/engine/propulsion,/turf/open/floor/plating/airless,/area/shuttle/escape) + +(1,1,1) = {" +aaaaabacacacacacadaaaa +aaabaeafagahagaiajadaa +aaakalamanananaoapakaa +aaakaqarasananaoatakaa +abauavavawavaxayavauad +akazazazacaAanaAaBaCac +akazaDazaEananananaAak +akazazazacaFaGaHanaAac +aIavavavaJaKaKaKanaAak +aLanaMananananananaNak +akaOanaPaQanaPaRanaOak +acaOanaPaQanaPaQanaOac +acaOanaPaQanaPaQanaOac +acaOanaPaQanaPaQanaOac +akaOanaPaQanaPaQanaOak +aSanaTanananananaUaNak +aIavavaVavaWacaXacacaY +aSaZaZaZbaakaBaAaAbbac +akaZaZaZaZakaAaAaAbcak +akbdbdbebfakaBaAaAbbac +bgawbhbhbhbhbhbhbhawbi +aabgbjbjbjbjbjbjbjbiaa +"} diff --git a/_maps/shuttles/emergency_cramped.dmm b/_maps/shuttles/emergency_cramped.dmm new file mode 100644 index 00000000000..db8c02bfc04 --- /dev/null +++ b/_maps/shuttles/emergency_cramped.dmm @@ -0,0 +1,39 @@ +"a" = (/turf/closed/wall/shuttle/smooth,/area/shuttle/escape) +"b" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/escape) +"c" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"; req_access_txt = "2"},/turf/open/floor/plating,/area/shuttle/escape) +"d" = (/turf/open/floor/plasteel{icon_state = "dark"},/area/shuttle/escape) +"e" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel{icon_state = "dark"},/area/shuttle/escape) +"f" = (/obj/machinery/computer/shuttle,/turf/open/floor/plasteel{icon_state = "dark"},/area/shuttle/escape) +"g" = (/obj/structure/window/reinforced,/obj/structure/table/reinforced,/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/book/manual/random,/obj/structure/extinguisher_cabinet{pixel_x = -30},/turf/open/floor/plasteel{icon_state = "dark"},/area/shuttle/escape) +"h" = (/obj/machinery/door/window/southleft,/turf/open/floor/plasteel{icon_state = "dark"},/area/shuttle/escape) +"i" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced,/obj/item/device/gps{gpstag = "STV5"},/turf/open/floor/plasteel{icon_state = "dark"},/area/shuttle/escape) +"j" = (/obj/machinery/status_display,/turf/closed/wall/shuttle/smooth,/area/shuttle/escape) +"k" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/obj/docking_port/mobile/emergency{dwidth = 3; height = 5; name = "Secure Transport Vessel 5"; width = 14},/turf/open/floor/plating,/area/shuttle/escape) +"l" = (/turf/open/floor/plating,/area/shuttle/escape) +"m" = (/obj/structure/closet/emcloset,/turf/open/floor/plating,/area/shuttle/escape) +"n" = (/obj/structure/chair{dir = 4},/turf/open/floor/plating,/area/shuttle/escape) +"o" = (/obj/structure/closet/crate,/obj/effect/spawner/lootdrop/maintenance{lootcount = 8; name = "8maintenance loot spawner"},/turf/open/floor/plasteel/bot,/area/shuttle/escape) +"p" = (/obj/structure/closet/crate/secure/loot,/turf/open/floor/plasteel/bot,/area/shuttle/escape) +"q" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/turf/open/floor/plating,/area/shuttle/escape) +"r" = (/obj/structure/closet/crate/secure/weapon,/obj/effect/spawner/lootdrop/armory_contraband,/turf/open/floor/plasteel/bot,/area/shuttle/escape) +"s" = (/obj/structure/chair{dir = 4},/obj/structure/extinguisher_cabinet{pixel_x = -30},/turf/open/floor/plating,/area/shuttle/escape) +"t" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/open/floor/plating/airless,/area/shuttle/escape) +"u" = (/turf/open/space,/area/space) +"v" = (/obj/structure/shuttle/engine/propulsion,/turf/open/floor/plating/airless,/area/shuttle/escape) + +(1,1,1) = {" +abbba +cdefa +aghij +kllma +anloa +bnlob +bnlob +bnlpb +anlpa +qllra +aslra +qllma +attta +uvvvu +"} diff --git a/_maps/shuttles/emergency_meta.dmm b/_maps/shuttles/emergency_meta.dmm new file mode 100644 index 00000000000..507090a6124 --- /dev/null +++ b/_maps/shuttles/emergency_meta.dmm @@ -0,0 +1,132 @@ +"aa" = (/turf/open/space,/turf/closed/wall/shuttle{icon_state = "swall_f6"; dir = 2},/area/shuttle/escape) +"ab" = (/turf/closed/wall/shuttle{icon_state = "swall12"; dir = 2},/area/shuttle/escape) +"ac" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/escape) +"ad" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"ae" = (/turf/closed/wall/shuttle{icon_state = "swall14"; dir = 2},/area/shuttle/escape) +"af" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Cargo Bay Airlock"},/turf/open/floor/plating{dir = 1; icon_state = "delivery"},/area/shuttle/escape) +"ag" = (/turf/open/space,/turf/closed/wall/shuttle{icon_state = "swall_f10"; dir = 2},/area/shuttle/escape) +"ah" = (/turf/closed/wall/shuttle{icon_state = "swall3"; dir = 2},/area/shuttle/escape) +"ai" = (/obj/item/clothing/suit/hazardvest{desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; name = "emergency lifejacket"},/obj/item/clothing/suit/hazardvest{desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; name = "emergency lifejacket"},/obj/item/clothing/suit/hazardvest{desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; name = "emergency lifejacket"},/obj/item/clothing/suit/hazardvest{desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; name = "emergency lifejacket"},/obj/item/clothing/suit/hazardvest{desc = "A high-visibility lifejacket complete with whistle and slot for oxygen tanks."; name = "emergency lifejacket"},/obj/item/weapon/tank/internals/emergency_oxygen/double{pixel_x = 3},/obj/item/weapon/tank/internals/emergency_oxygen/double{pixel_x = 3},/obj/item/weapon/tank/internals/emergency_oxygen/double{pixel_x = 3},/obj/item/weapon/tank/internals/emergency_oxygen/double{pixel_x = 3},/obj/item/weapon/tank/internals/emergency_oxygen/double{pixel_x = 3},/obj/item/clothing/mask/breath{pixel_x = -3; pixel_y = -3},/obj/item/clothing/mask/breath{pixel_x = -3; pixel_y = -3},/obj/item/clothing/mask/breath{pixel_x = -3; pixel_y = -3},/obj/item/clothing/mask/breath{pixel_x = -3; pixel_y = -3},/obj/item/clothing/mask/breath{pixel_x = -3; pixel_y = -3},/obj/item/clothing/head/hardhat/orange{name = "protective hat"; pixel_y = 9},/obj/item/clothing/head/hardhat/orange{name = "protective hat"; pixel_y = 9},/obj/item/clothing/head/hardhat/orange{name = "protective hat"; pixel_y = 9},/obj/item/clothing/head/hardhat/orange{name = "protective hat"; pixel_y = 9},/obj/item/clothing/head/hardhat/orange{name = "protective hat"; pixel_y = 9},/obj/structure/closet/crate{name = "lifejackets"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"aj" = (/obj/structure/tank_dispenser/oxygen{layer = 2.7; pixel_x = -1; pixel_y = 2},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"ak" = (/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"al" = (/obj/machinery/status_display{pixel_y = 32},/obj/machinery/hologram/holopad,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"am" = (/obj/structure/table,/obj/item/stack/medical/gauze,/obj/item/stack/medical/bruise_pack,/obj/item/stack/medical/ointment,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"an" = (/obj/structure/sign/nosmoking_2,/turf/closed/wall/shuttle{icon_state = "swall3"; dir = 2},/area/shuttle/escape) +"ao" = (/obj/machinery/recharge_station,/turf/open/floor/plating{icon_state = "bot"},/area/shuttle/escape) +"ap" = (/turf/open/floor/plating{dir = 1; icon_state = "delivery"},/area/shuttle/escape) +"aq" = (/obj/structure/table,/obj/item/weapon/clipboard,/obj/item/weapon/folder/yellow,/obj/item/weapon/pen,/obj/item/hand_labeler_refill,/turf/open/floor/plating{icon_state = "bot"},/area/shuttle/escape) +"ar" = (/turf/open/floor/plating{icon_state = "floorgrime"},/area/shuttle/escape) +"as" = (/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 31},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plating{icon_state = "bot"},/area/shuttle/escape) +"at" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"; req_access_txt = "2"},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"au" = (/obj/item/weapon/cigbutt,/turf/open/floor/plating{icon_state = "floorgrime"},/area/shuttle/escape) +"av" = (/obj/structure/closet/crate/medical{name = "medical crate"},/obj/item/weapon/storage/firstaid/regular,/obj/item/weapon/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/obj/item/weapon/storage/firstaid/toxin{pixel_x = -4; pixel_y = 3},/obj/item/device/healthanalyzer{pixel_x = 3; pixel_y = 3},/obj/item/weapon/lazarus_injector,/mob/living/simple_animal/bot/medbot{name = "\improper emergency medibot"; pixel_x = -3; pixel_y = 2},/turf/open/floor/plating{icon_state = "bot"},/area/shuttle/escape) +"aw" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"ax" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"ay" = (/obj/structure/reagent_dispensers/fueltank,/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/turf/open/floor/plating{icon_state = "bot"},/area/shuttle/escape) +"az" = (/obj/structure/closet/crate{name = "emergency supplies crate"},/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/toolbox/emergency,/obj/item/device/flashlight/flare{pixel_x = 3; pixel_y = 3},/obj/item/device/flashlight/flare{pixel_x = -6; pixel_y = -2},/obj/item/weapon/crowbar,/obj/item/weapon/wrench,/obj/item/device/radio,/turf/open/floor/plating{icon_state = "bot"},/area/shuttle/escape) +"aA" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Cargo Bay Airlock"},/obj/docking_port/mobile/emergency{dheight = 0; dir = 4; dwidth = 5; height = 14; width = 25},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"aB" = (/obj/machinery/vending/wallmed{name = "Emergency NanoMed"; pixel_x = 0; pixel_y = 0; req_access_txt = "0"; use_power = 0},/turf/closed/wall/shuttle{icon_state = "swall3"; dir = 2},/area/shuttle/escape) +"aC" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating{icon_state = "bot"},/area/shuttle/escape) +"aD" = (/obj/machinery/space_heater,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/plating{icon_state = "bot"},/area/shuttle/escape) +"aE" = (/obj/structure/chair{dir = 4},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = -31},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"aF" = (/obj/structure/rack,/obj/item/weapon/crowbar,/obj/item/weapon/wrench,/obj/item/weapon/weldingtool,/obj/item/weapon/wirecutters,/obj/item/stack/cable_coil,/turf/open/floor/plating{dir = 1; icon_state = "warning"},/area/shuttle/escape) +"aG" = (/obj/structure/rack,/obj/item/weapon/storage/toolbox/electrical{pixel_x = -3; pixel_y = 1},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = 0; pixel_y = -1},/obj/item/weapon/storage/toolbox/emergency{pixel_x = 3; pixel_y = -5},/turf/open/floor/plating{dir = 1; icon_state = "warning"},/area/shuttle/escape) +"aH" = (/turf/open/floor/plating{dir = 1; icon_state = "warning"},/area/shuttle/escape) +"aI" = (/obj/structure/rack{dir = 1},/obj/item/weapon/tank/internals/oxygen/red,/obj/item/clothing/suit/fire/firefighter,/obj/item/clothing/mask/gas,/obj/item/clothing/head/hardhat/red,/turf/open/floor/plating{dir = 1; icon_state = "warning"},/area/shuttle/escape) +"aJ" = (/obj/structure/extinguisher_cabinet,/turf/closed/wall/shuttle{icon_state = "swall3"; dir = 2},/area/shuttle/escape) +"aK" = (/obj/structure/chair{dir = 8},/obj/structure/sign/bluecross_2{pixel_x = 32},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"aL" = (/turf/closed/wall/shuttle{icon_state = "swall7"; dir = 2},/area/shuttle/escape) +"aM" = (/turf/closed/wall/shuttle{icon_state = "swall8"; dir = 2},/area/shuttle/escape) +"aN" = (/obj/machinery/door/airlock/glass_medical{id_tag = null; name = "Escape Shuttle Infirmary"; req_access_txt = "0"},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"aO" = (/obj/structure/sign/bluecross_2,/turf/closed/wall/shuttle{icon_state = "swall4"; dir = 2},/area/shuttle/escape) +"aP" = (/turf/closed/wall/shuttle{icon_state = "swall11"; dir = 2},/area/shuttle/escape) +"aQ" = (/obj/machinery/sleeper{dir = 2},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"aR" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/toxin,/obj/item/weapon/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"aS" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"aT" = (/obj/machinery/shower{dir = 4; icon_state = "shower"; name = "emergency shower"},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"aU" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"aV" = (/obj/structure/table,/obj/item/weapon/defibrillator/loaded,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"aW" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{pixel_x = 6; pixel_y = 0},/obj/item/weapon/reagent_containers/glass/bottle/charcoal{pixel_x = -3},/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{pixel_x = -3; pixel_y = 8},/obj/item/weapon/reagent_containers/glass/bottle/charcoal{pixel_x = 6; pixel_y = 8},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = 3; pixel_y = -2},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = 4; pixel_y = 1},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = -2; pixel_y = 5},/obj/item/weapon/reagent_containers/syringe/epinephrine{pixel_x = 2; pixel_y = 8},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"aX" = (/obj/structure/table/optable,/obj/item/weapon/surgical_drapes,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"aY" = (/obj/structure/table,/obj/item/weapon/scalpel{pixel_y = 12},/obj/item/weapon/circular_saw,/obj/item/weapon/retractor{pixel_x = 4},/obj/item/weapon/hemostat{pixel_x = -4},/obj/item/clothing/gloves/color/latex,/obj/item/clothing/mask/surgical,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -27},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"aZ" = (/obj/structure/chair{dir = 8},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 31},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"ba" = (/obj/machinery/status_display,/turf/closed/wall/shuttle{icon_state = "swall12"; dir = 2},/area/shuttle/escape) +"bb" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"bc" = (/obj/structure/chair,/obj/structure/reagent_dispensers/peppertank{pixel_x = 0; pixel_y = 29},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"bd" = (/obj/structure/chair,/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"be" = (/obj/structure/table,/obj/item/weapon/storage/box/handcuffs{pixel_x = 2; pixel_y = 2},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"bf" = (/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"bg" = (/obj/structure/table,/obj/machinery/recharger{active_power_usage = 0; idle_power_usage = 0; use_power = 0},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"bh" = (/obj/machinery/door/airlock/glass_security{name = "Brig"; req_access_txt = "2"},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"bi" = (/obj/structure/table,/obj/item/weapon/restraints/handcuffs{pixel_y = 3},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"bj" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape) +"bk" = (/obj/machinery/flasher{id = "emshuttlebridgeflash"; pixel_y = -24},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"bl" = (/obj/structure/chair{dir = 1},/obj/machinery/button/flasher{id = "emshuttleflash"; name = "brig flasher button"; pixel_y = -23; req_access_txt = "0"; req_one_access_txt = "1;63;19"},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"bm" = (/obj/structure/chair{dir = 1},/obj/machinery/flasher{id = "emshuttleflash"; pixel_y = -24},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"bn" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"bo" = (/obj/structure/table,/obj/item/weapon/folder/red{pixel_x = 3},/obj/item/weapon/folder/white{pixel_x = -4; pixel_y = 2},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 31},/obj/item/weapon/book/manual/wiki/security_space_law{pixel_x = -4; pixel_y = 4},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape) +"bp" = (/obj/machinery/door/airlock/glass_command{name = "Cockpit"; req_access_txt = "19"},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"bq" = (/turf/closed/wall/shuttle{icon_state = "swall15"; dir = 2},/area/shuttle/escape) +"br" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"bs" = (/obj/structure/table,/obj/item/weapon/restraints/handcuffs{pixel_y = 3},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"bt" = (/obj/machinery/button/flasher{id = "emshuttlebridgeflash"; name = "cockpit flasher button"; pixel_y = 24; req_access_txt = "0"; req_one_access_txt = "1;63;19"},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"bu" = (/obj/machinery/door/airlock/command{name = "Emergency Recovery Airlock"; req_access = null; req_access_txt = "19"},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"bv" = (/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor4"},/area/shuttle/escape) +"bw" = (/obj/machinery/suit_storage_unit/standard_unit,/obj/machinery/status_display{pixel_y = 31},/turf/open/floor/plating{icon_state = "floorgrime"},/area/shuttle/escape) +"bx" = (/obj/machinery/suit_storage_unit/standard_unit,/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 0; pixel_y = 27},/turf/open/floor/plating{icon_state = "floorgrime"},/area/shuttle/escape) +"by" = (/obj/machinery/computer/security,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"bz" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"bA" = (/obj/structure/chair/office/dark{dir = 4},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"bB" = (/obj/structure/table,/obj/item/weapon/folder/blue,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"bC" = (/obj/machinery/door/airlock/external{name = "Emergency Recovery Airlock"},/turf/open/floor/plating{icon_state = "floorgrime"},/area/shuttle/escape) +"bD" = (/turf/closed/wall/shuttle{icon_state = "swallc4"; dir = 2},/area/shuttle/escape) +"bE" = (/obj/machinery/computer/crew,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"bF" = (/obj/structure/chair/office/dark,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"bG" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -2; pixel_y = 8},/obj/item/device/radio/intercom{dir = 4; name = "Station Intercom (General)"; pixel_x = 31},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"bH" = (/obj/structure/table,/obj/item/weapon/phone{pixel_x = -3; pixel_y = 3},/obj/item/weapon/cigbutt/cigarbutt{pixel_x = 5; pixel_y = -1},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"bI" = (/obj/structure/table,/obj/item/weapon/storage/fancy/donut_box,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"bJ" = (/obj/machinery/computer/emergency_shuttle,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"bK" = (/obj/machinery/computer/communications,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"bL" = (/obj/machinery/computer/station_alert,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"bM" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/emergency{pixel_y = 3},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"bN" = (/obj/structure/table,/obj/machinery/recharger{active_power_usage = 0; idle_power_usage = 0; pixel_y = 4; use_power = 0},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape) +"bO" = (/obj/structure/extinguisher_cabinet{pixel_x = -27; pixel_y = 0},/obj/structure/chair{dir = 1},/turf/open/floor/plating{icon_state = "floorgrime"},/area/shuttle/escape) +"bP" = (/obj/structure/chair{dir = 1},/turf/open/floor/plating{icon_state = "floorgrime"},/area/shuttle/escape) +"bQ" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating{icon_state = "floorgrime"},/area/shuttle/escape) +"bR" = (/turf/open/space,/turf/closed/wall/shuttle{icon_state = "diagonalWall3"},/turf/closed/wall/shuttle{icon_state = "swall_f5"; dir = 2},/area/shuttle/escape) +"bS" = (/turf/closed/wall/shuttle{icon_state = "swall13"; dir = 2},/area/shuttle/escape) +"bT" = (/turf/open/space,/turf/closed/wall/shuttle{icon_state = "swall_f9"; dir = 2},/area/shuttle/escape) +"bU" = (/turf/open/space,/area/space) +"bV" = (/turf/open/space,/turf/closed/wall/shuttle{icon_state = "diagonalWall3"},/area/shuttle/escape) +"bW" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/open/floor/plating/airless,/area/shuttle/escape) +"bX" = (/turf/closed/wall/shuttle{icon_state = "wall3"},/area/shuttle/escape) +"bY" = (/turf/open/space,/turf/closed/wall/shuttle{dir = 4; icon_state = "diagonalWall3"},/area/shuttle/escape) +"bZ" = (/obj/structure/shuttle/engine/propulsion,/turf/open/floor/plating/airless,/area/shuttle/escape) + +(1,1,1) = {" +aaabacabadabadabaeabafafabag +ahaiajaiakalakamanaoapapaqah +ahakakakakakakakafapararasah +atakakakakakakakafaparauavac +acawakaxacawakaxahayararazac +aAakakaxaBawakaxacaCauaraDah +ahaEakaxacawakaxahaFaGaHaIah +acawakaxaJawakaKaLaMacaNaOaP +acawakaxacawakaxacaQaQakaRah +acawakakakakakakaNakakakaSac +anawakaxacawakaxacaTakakaUac +adakakaxaJawakaxahaVaWaXaYah +acawakaxacawakaZaLababbaabaP +atakakaxaBawakaxahbbbcbdbeah +ahawakaxacawakaxacbbbfbfbgac +acakakakakakakakbhbfbfbfbiac +ahbjakakakbkakbjahblbmbnboah +aLabbaabbpabbaabbqabaeababaP +acbrbsakakbtakakbubvahbwbxac +acbybzakakakbAbBaLbCbDararbC +acbEakbAbFbzakbGahararararbC +acbHbIbJbKbLbMbNahbObPbPbQac +bRabababababababbSababababbT +bUbVbWbWbWbXbWbWbXbWbWbWbYbU +bUbUbZbZbZbXbZbZbXbZbZbZbUbU +"} diff --git a/_maps/shuttles/emergency_narnar.dmm b/_maps/shuttles/emergency_narnar.dmm new file mode 100644 index 00000000000..c85ddedd921 --- /dev/null +++ b/_maps/shuttles/emergency_narnar.dmm @@ -0,0 +1,73 @@ +"a" = (/turf/open/space,/area/space) +"b" = (/turf/closed/wall/cult,/area/shuttle/escape) +"c" = (/obj/effect/forcefield/cult,/turf/open/floor/plating,/area/shuttle/escape) +"d" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"e" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"f" = (/obj/machinery/computer/emergency_shuttle,/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"g" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"h" = (/obj/machinery/computer/atmos_alert,/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"i" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"j" = (/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"k" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"l" = (/obj/machinery/computer/security,/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"m" = (/obj/machinery/computer/crew,/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"n" = (/obj/structure/chair{dir = 8},/obj/structure/extinguisher_cabinet{pixel_x = 0; pixel_y = -30},/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"o" = (/obj/item/device/radio/intercom{name = "Station Intercom (General)"; pixel_x = 0; pixel_y = -29},/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"p" = (/obj/machinery/computer/communications,/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"q" = (/obj/item/stack/sheet/metal,/obj/effect/decal/remains/human,/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"r" = (/obj/machinery/door/airlock/cult/unruned/glass,/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"s" = (/obj/machinery/status_display,/turf/closed/wall/cult,/area/shuttle/escape) +"t" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"u" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"v" = (/obj/effect/decal/cleanable/blood,/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"w" = (/mob/living/simple_animal/hostile/construct/builder,/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"x" = (/obj/machinery/door/airlock/cult,/turf/open/floor/plating,/area/shuttle/escape) +"y" = (/obj/effect/decal/cleanable/blood/gibs/up,/obj/item/candle/infinite,/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"z" = (/obj/effect/rune/raise_dead,/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"A" = (/obj/item/candle/infinite,/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"B" = (/obj/effect/rune/true_sight,/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood/gibs/body,/obj/effect/decal/cleanable/blood/gibs/core,/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"C" = (/mob/living/simple_animal/hostile/construct/armored,/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"D" = (/obj/effect/rune/true_sight,/obj/effect/decal/remains/human,/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"E" = (/obj/machinery/door/airlock/cult,/obj/docking_port/mobile/emergency{name = "shuttle 667"},/turf/open/floor/plating,/area/shuttle/escape) +"F" = (/obj/effect/decal/cleanable/blood/gibs/down,/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"G" = (/obj/structure/extinguisher_cabinet{has_extinguisher = null; icon_state = "extinguisher_empty"; opened = 1; pixel_x = 27; pixel_y = 0},/obj/item/weapon/extinguisher{safety = 0},/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"H" = (/mob/living/simple_animal/hostile/construct/wraith,/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"I" = (/obj/effect/rune/narsie,/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"J" = (/mob/living/simple_animal/hostile/carp/eyeball{faction = list("cult"); name = "left eyeball"},/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"K" = (/mob/living/simple_animal/hostile/carp/eyeball{faction = list("cult"); name = "right eyeball"},/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"L" = (/obj/effect/decal/cleanable/blood/drip,/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"M" = (/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"N" = (/obj/machinery/door/airlock/cult/glass,/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"O" = (/obj/structure/dresser,/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"P" = (/obj/structure/showcase/horrific_experiment,/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"Q" = (/obj/item/weapon/storage/firstaid/fire,/obj/item/weapon/storage/firstaid/regular{pixel_x = 2; pixel_y = 3},/obj/item/weapon/crowbar,/obj/structure/extinguisher_cabinet{pixel_x = 27; pixel_y = 0},/obj/item/stack/sheet/metal,/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"R" = (/obj/item/stack/sheet/metal,/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"S" = (/obj/structure/table/wood,/obj/item/weapon/tome,/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"T" = (/obj/structure/bed,/obj/item/weapon/bedsheet/cult,/turf/open/floor/plasteel/cult,/area/shuttle/escape) +"U" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/open/floor/plating/airless,/area/shuttle/escape) +"V" = (/obj/structure/shuttle/engine/propulsion,/turf/open/floor/plating/airless,/area/shuttle/escape) + +(1,1,1) = {" +aabcccccbaa +abbdefegbba +abhijjjklba +abmnojjkpba +bbbbbqrsbbb +bjjjjjjjtuc +bjvjwjwjjjb +xjjyjzjAvjc +bjABjCjDAjb +EjjFjjjjjGb +bjzHjIjHzjb +cjjjjjjjjjc +cjADjCjDAjc +cjjAjzjAjjc +bjjjJjKvjjb +xjvjLjLjjMb +bbqNbscrccb +xjjjObtLjPc +bjjjMbjjjQb +bRRSTbtjjPc +bbUUUUUUUbb +abVVVVVVVba +"} diff --git a/_maps/shuttles/emergency_supermatter.dmm b/_maps/shuttles/emergency_supermatter.dmm new file mode 100644 index 00000000000..5b51ab7b5b1 --- /dev/null +++ b/_maps/shuttles/emergency_supermatter.dmm @@ -0,0 +1,69 @@ +"a" = (/turf/open/space,/area/space) +"b" = (/turf/closed/wall/shuttle/smooth,/area/shuttle/escape) +"c" = (/obj/structure/sign/radiation,/turf/closed/wall/shuttle/smooth,/area/shuttle/escape) +"d" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/escape) +"e" = (/obj/structure/closet/radiation{anchored = 1},/obj/item/clothing/glasses/meson/engine,/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) +"f" = (/obj/structure/chair,/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) +"g" = (/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) +"h" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) +"i" = (/obj/machinery/shower{dir = 8},/turf/open/floor/noslip,/area/shuttle/escape) +"j" = (/obj/structure/reflector/single{anchored = 1},/turf/open/floor/plating{icon_state = "warnplate"; dir = 8},/area/shuttle/escape) +"k" = (/obj/structure/reflector/box{anchored = 1},/turf/open/floor/plating,/area/shuttle/escape) +"l" = (/obj/structure/reflector/single{tag = "icon-reflector (WEST)"; icon_state = "reflector"; dir = 8; anchored = 1},/turf/open/floor/plating{icon_state = "warnplate"; dir = 4},/area/shuttle/escape) +"m" = (/obj/machinery/shower{dir = 4},/turf/open/floor/noslip,/area/shuttle/escape) +"n" = (/obj/machinery/status_display,/turf/closed/wall/shuttle/smooth,/area/shuttle/escape) +"o" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) +"p" = (/turf/open/floor/plating{icon_state = "warnplate"; dir = 8},/area/shuttle/escape) +"q" = (/turf/open/floor/plating,/area/shuttle/escape) +"r" = (/turf/open/floor/plating{icon_state = "warnplate"; dir = 4},/area/shuttle/escape) +"s" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) +"t" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/turf/open/floor/plating,/area/shuttle/escape) +"u" = (/obj/machinery/power/supermatter_shard/hugbox{anchored = 1; base_icon_state = "darkmatter"; explosion_power = 20; gasefficency = 0.15; icon_state = "darkmatter"; name = "anchored supermatter crystal"},/turf/open/floor/plating,/area/shuttle/escape) +"v" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/firstaid/toxin,/obj/item/weapon/crowbar/red,/obj/item/weapon/storage/box/snappops{pixel_x = 4; pixel_y = -4},/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) +"w" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape) +"x" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/obj/docking_port/mobile/emergency{name = "Hyperfractal Gigashuttle"},/turf/open/floor/plating,/area/shuttle/escape) +"y" = (/obj/machinery/door/airlock/external{name = "Emergency Launch Catwalk"; req_access = null; req_access_txt = "10;13"},/turf/open/floor/plating,/area/shuttle/escape) +"z" = (/turf/open/floor/plating/airless,/area/shuttle/escape) +"A" = (/obj/structure/reflector/single{anchored = 1},/turf/open/floor/plating/airless,/area/shuttle/escape) +"B" = (/obj/structure/reflector/double{anchored = 1},/turf/open/floor/plating/airless,/area/shuttle/escape) +"C" = (/obj/structure/reflector/double{tag = "icon-reflector_double (NORTH)"; icon_state = "reflector_double"; dir = 1; anchored = 1},/turf/open/floor/plating/airless,/area/shuttle/escape) +"D" = (/obj/structure/reflector/single{tag = "icon-reflector (WEST)"; icon_state = "reflector"; dir = 8; anchored = 1},/turf/open/floor/plating/airless,/area/shuttle/escape) +"E" = (/turf/open/floor/plating/airless{dir = 9; icon_state = "warnplate"},/area/shuttle/escape) +"F" = (/turf/open/floor/plating/airless{dir = 1; icon_state = "warnplate"},/area/shuttle/escape) +"G" = (/turf/open/floor/plating/airless{dir = 5; icon_state = "warnplate"},/area/shuttle/escape) +"H" = (/turf/open/floor/plating/airless{dir = 8; icon_state = "warnplate"},/area/shuttle/escape) +"I" = (/obj/machinery/power/supermatter_shard/hugbox{anchored = 1; name = "anchored supermatter shard"},/turf/open/floor/plating/airless,/area/shuttle/escape) +"J" = (/turf/open/floor/plating/airless{dir = 4; icon_state = "warnplate"},/area/shuttle/escape) +"K" = (/turf/open/floor/plating/airless{dir = 10; icon_state = "warnplate"},/area/shuttle/escape) +"L" = (/turf/open/floor/plating/airless{dir = 2; icon_state = "warnplate"},/area/shuttle/escape) +"M" = (/turf/open/floor/plating/airless{dir = 6; icon_state = "warnplate"},/area/shuttle/escape) +"N" = (/obj/machinery/power/emitter/energycannon{dir = 1},/turf/open/floor/plating/airless,/area/shuttle/escape) +"O" = (/obj/structure/chair,/turf/open/floor/plating/airless{dir = 1; icon_state = "warnplate"},/area/shuttle/escape) +"P" = (/obj/structure/shuttle/engine/heater,/turf/open/floor/plating/airless,/area/shuttle/escape) +"Q" = (/obj/machinery/computer/emergency_shuttle,/turf/open/floor/plating/airless,/area/shuttle/escape) +"R" = (/obj/structure/shuttle/engine/propulsion,/turf/open/floor/plating/airless,/area/shuttle/escape) + +(1,1,1) = {" +abcdddddcba +abefeeefeba +adeghhhgeda +aceijklmeca +aneopqrsena +adeopqrseda +bbeopqrsebb +tggopursggt +cvgopqrsgwc +xggopqrsggt +bndcpqrcdnb +aaabdydbaaa +aaaaqzqaaaa +aAqqBzCqqDa +azaaazaaaza +aEFGazaEFGa +aHIJzzzHIJa +aKLMazaKLMa +aqqaazaaqqa +aNNzEOGzNNa +aPPaHQJaPPa +aRRaKLMaRRa +"} diff --git a/_maps/shuttles/ferry_base.dmm b/_maps/shuttles/ferry_base.dmm new file mode 100644 index 00000000000..66b39b7dd87 --- /dev/null +++ b/_maps/shuttles/ferry_base.dmm @@ -0,0 +1,26 @@ +"a" = (/turf/open/space,/area/space) +"b" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 4},/turf/closed/wall/shuttle{icon_state = "swall_s6"; dir = 2},/area/shuttle/transport) +"c" = (/turf/closed/wall/shuttle{icon_state = "swall12"; dir = 2},/area/shuttle/transport) +"d" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/open/floor/plating,/area/shuttle/transport) +"e" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/transport) +"f" = (/turf/closed/wall/shuttle{icon_state = "swall_s10"; dir = 2},/area/shuttle/transport) +"g" = (/turf/open/floor/plasteel/shuttle,/turf/closed/wall/shuttle/interior{icon_state = "swall_f9"},/area/shuttle/transport) +"h" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) +"i" = (/obj/machinery/computer/shuttle/ferry/request,/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) +"j" = (/obj/structure/chair,/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) +"k" = (/obj/machinery/door/airlock/shuttle,/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) +"l" = (/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) +"m" = (/obj/machinery/door/airlock/shuttle,/obj/docking_port/mobile{dir = 8; dwidth = 2; height = 12; id = "ferry"; name = "ferry shuttle"; roundstart_move = "ferry_away"; travelDir = 180; width = 5},/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) +"n" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 4},/turf/closed/wall/shuttle{icon_state = "swall_s5"; dir = 2},/area/shuttle/transport) +"o" = (/turf/open/floor/plasteel/shuttle,/turf/closed/wall/shuttle/interior{icon_state = "swall_f10"},/area/shuttle/transport) +"p" = (/obj/structure/closet/crate,/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) +"q" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) +"r" = (/turf/closed/wall/shuttle{icon_state = "swall_s9"; dir = 2},/area/shuttle/transport) + +(1,1,1) = {" +abccdccceccf +bghijjjjjjjd +kllllllllllm +noppqqqqqqqd +anccdccceccr +"} diff --git a/_maps/shuttles/ferry_lighthouse.dmm b/_maps/shuttles/ferry_lighthouse.dmm new file mode 100644 index 00000000000..9267e97bcf0 --- /dev/null +++ b/_maps/shuttles/ferry_lighthouse.dmm @@ -0,0 +1,81 @@ +"aa" = (/turf/open/space,/area/shuttle/transport) +"ab" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l";dir = 4},/turf/open/floor/plating/airless,/area/shuttle/transport) +"ac" = (/obj/structure/shuttle/engine/heater{icon_state = "heater";dir = 8},/turf/open/floor/plating/airless,/area/shuttle/transport) +"ad" = (/turf/closed/wall/shuttle/smooth,/area/shuttle/transport) +"ae" = (/turf/open/space,/area/space) +"af" = (/turf/closed/wall/r_wall,/area/shuttle/transport) +"ag" = (/turf/open/floor/plating/airless,/area/shuttle/transport) +"ah" = (/obj/structure/foamedmetal,/turf/open/space,/area/shuttle/transport) +"ai" = (/obj/machinery/vending/liberationstation,/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) +"aj" = (/obj/machinery/door/airlock/vault,/turf/open/floor/plating/airless,/area/shuttle/transport) +"ak" = (/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) +"al" = (/obj/machinery/computer/shuttle/ferry/request,/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) +"am" = (/obj/structure/grille{density = 0;icon_state = "brokengrille"},/turf/open/floor/plating/airless,/area/shuttle/transport) +"an" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/vending/autodrobe,/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) +"ao" = (/obj/structure/mirror/magic/badmin{pixel_x = 30},/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) +"ap" = (/turf/closed/wall,/area/shuttle/transport) +"aq" = (/obj/structure/window/reinforced{dir = 8},/obj/machinery/vending/clothing,/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) +"ar" = (/obj/structure/chair,/turf/open/floor/wood,/area/shuttle/transport) +"as" = (/obj/machinery/shield,/turf/open/space,/area/shuttle/transport) +"at" = (/obj/machinery/door/airlock,/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) +"au" = (/turf/open/floor/wood,/area/shuttle/transport) +"av" = (/obj/machinery/door/airlock/wood,/turf/open/floor/wood,/area/shuttle/transport) +"aw" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/closed/wall/shuttle/smooth,/area/shuttle/transport) +"ax" = (/turf/closed/wall/shuttle{icon_state = "swall12";dir = 2},/area/shuttle/transport) +"ay" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/open/floor/plating,/area/shuttle/transport) +"az" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/transport) +"aA" = (/turf/closed/wall/shuttle{icon_state = "swall_s10";dir = 2},/area/shuttle/transport) +"aB" = (/obj/structure/grille{density = 0;icon_state = "brokengrille"},/obj/structure/window/fulltile,/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) +"aC" = (/obj/structure/table/wood,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/wood,/area/shuttle/transport) +"aD" = (/turf/open/floor/carpet,/area/shuttle/transport) +"aE" = (/turf/open/floor/bluespace,/area/shuttle/transport) +"aF" = (/obj/machinery/vending/sovietsoda,/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) +"aG" = (/obj/machinery/vending/snack,/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) +"aH" = (/obj/machinery/newscaster{pixel_y = 30},/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) +"aI" = (/obj/structure/bed,/obj/item/weapon/bedsheet/wiz,/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) +"aJ" = (/obj/structure/chair,/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) +"aK" = (/obj/structure/table/wood,/obj/item/device/flashlight/lamp/green,/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) +"aL" = (/turf/closed/wall/rust,/area/shuttle/transport) +"aM" = (/obj/structure/table/wood,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/wood,/area/shuttle/transport) +"aN" = (/obj/machinery/power/grounding_rod{anchored = 1},/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) +"aO" = (/obj/machinery/door/airlock/shuttle,/obj/docking_port/mobile{dir = 8;dwidth = 9;height = 27;id = "ferry";name = "ferry shuttle";roundstart_move = "ferry_away";travelDir = 180;width = 16},/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) +"aP" = (/obj/machinery/vending/magivend,/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) +"aQ" = (/obj/structure/grille,/obj/structure/window/fulltile,/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) +"aR" = (/obj/structure/chair/office/dark{dir = 4},/turf/open/floor/wood,/area/shuttle/transport) +"aS" = (/obj/structure/table/wood,/obj/item/toy/crayon/spraycan,/turf/open/floor/wood,/area/shuttle/transport) +"aT" = (/obj/structure/bed,/obj/item/weapon/bedsheet/centcom,/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) +"aU" = (/obj/structure/bed,/obj/item/weapon/bedsheet/rainbow,/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) +"aV" = (/obj/structure/closet/crate,/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) +"aW" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) +"aX" = (/obj/structure/window/fulltile,/turf/open/floor/plasteel/shuttle,/area/shuttle/transport) +"aY" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/closed/wall/shuttle/smooth,/area/shuttle/transport) +"aZ" = (/turf/closed/wall/shuttle{icon_state = "swall_s9";dir = 2},/area/shuttle/transport) +"ba" = (/obj/machinery/conveyor{dir = 1;id = "garbage"},/turf/open/floor/wood,/area/shuttle/transport) +"bb" = (/obj/machinery/conveyor{dir = 1;id = "garbage";layer = 2.5},/turf/open/floor/wood,/area/shuttle/transport) +"bc" = (/obj/structure/table/wood,/obj/structure/window/reinforced{dir = 4},/obj/item/weapon/vending_refill/snack,/turf/open/floor/wood,/area/shuttle/transport) +"bd" = (/obj/structure/flora/kirbyplants/dead{desc = "It doesn't look very healthy...";name = "potted plant"},/turf/open/floor/wood,/area/shuttle/transport) +"be" = (/obj/machinery/conveyor{dir = 4;id = "garbage"},/turf/open/floor/wood,/area/shuttle/transport) +"bf" = (/obj/machinery/conveyor{dir = 4;id = "garbage"},/obj/structure/plasticflaps,/turf/open/floor/wood,/area/shuttle/transport) +"bg" = (/obj/machinery/conveyor{dir = 10;id = "garbage";verted = -1},/turf/open/floor/wood,/area/shuttle/transport) +"bh" = (/obj/structure/foamedmetal,/turf/open/floor/plating/airless,/area/shuttle/transport) +"bi" = (/obj/structure/shuttle/engine/heater,/turf/open/floor/plating/airless,/area/shuttle/transport) +"bj" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"},/turf/open/floor/plating/airless,/area/shuttle/transport) + +(1,1,1) = {" +aaaaabacadaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae +afafafafadadaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae +aaafagahaiadadaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae +agajagahakaladaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae +aaafamanaoapadadapaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae +aaafafaqakapararapapapaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae +agaaaaasakatauauavauapapapawawadadaxaxayaxaxaxazaxaxaA +agagagaBakapauauaCaDaDaDaEaEaEakaFaGaHaIakaJaJaJaJaKay +aaaaaaasakaLauauaMaDaDaDaNaNaEaEaEaEaEaEaEaEaEaEaEaEaO +aaaaagasaPaQauaRaSaDaDaDaEaEaEakaTaUaVaWaWaWaWaWaWaWay +aaabacaXaXapauauaMaDaDaDadadadaYawadaxayaxaxaxazaxaxaZ +aaaaagahbaaLaLbbbcbdadadadaeaeaeaeaeaeaeaeaeaeaeaeaeae +aaaaaaahbebebfbgadadadaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae +aaaaagahbhbhadadadaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae +abacagbibiadadaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae +aaaaaabjbjadaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae +"} diff --git a/_maps/shuttles/ferry_meat.dmm b/_maps/shuttles/ferry_meat.dmm new file mode 100644 index 00000000000..e8bb7a536ce --- /dev/null +++ b/_maps/shuttles/ferry_meat.dmm @@ -0,0 +1,32 @@ +"a" = (/turf/open/space,/area/space) +"b" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion";dir = 4},/turf/closed/wall/shuttle{icon_state = "swall_s6";dir = 2},/area/shuttle/transport) +"c" = (/turf/closed/wall/shuttle{icon_state = "swall12";dir = 2},/area/shuttle/transport) +"d" = (/turf/closed/wall/shuttle{icon_state = "swall_s10";dir = 2},/area/shuttle/transport) +"e" = (/turf/open/floor/plasteel/freezer,/turf/closed/wall/shuttle/interior{icon_state = "swall_f9"},/area/shuttle/transport) +"f" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/freezer,/area/shuttle/transport) +"g" = (/obj/machinery/computer/shuttle/ferry/request,/turf/open/floor/plasteel/freezer,/area/shuttle/transport) +"h" = (/obj/structure/closet/secure_closet/freezer/meat{name = "\"meat\" fridge"},/obj/item/weapon/reagent_containers/food/snacks/meat/slab/bear,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/corgi,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/goliath,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/killertomato,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/pug,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/spider,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/xeno,/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human{name = "human meat"},/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/fly{name = "flyman meat"},/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/golem/adamantine{name = "golem meat"},/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/lizard{name = "lizard meat"},/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/plant{name = "podperson meat"},/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/shadow{name = "shadowling meat"},/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/slime{name = "slimeperson meat"},/obj/item/weapon/reagent_containers/food/snacks/meat/slab/human/mutant/zombie{name = "rotten meat"},/turf/open/floor/plasteel/freezer,/area/shuttle/transport) +"i" = (/turf/open/floor/plasteel/freezer,/area/shuttle/transport) +"j" = (/obj/machinery/gibber,/turf/open/floor/plasteel/freezer,/area/shuttle/transport) +"k" = (/obj/structure/extinguisher_cabinet{pixel_x = 0;pixel_y = 30;tag = "n"},/turf/open/floor/plasteel/freezer,/area/shuttle/transport) +"l" = (/obj/structure/table/reinforced,/turf/open/floor/plasteel/freezer,/area/shuttle/transport) +"m" = (/obj/structure/sink/kitchen{desc = "A sink used for washing one's hands and face. It looks rusty and home-made";name = "old sink";pixel_y = 28},/turf/open/floor/plasteel/freezer,/area/shuttle/transport) +"n" = (/obj/effect/decal/cleanable/dirt,/obj/structure/chair,/turf/open/floor/plasteel/freezer,/area/shuttle/transport) +"o" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/open/floor/plating,/area/shuttle/transport) +"p" = (/obj/machinery/door/airlock/shuttle,/turf/open/floor/plasteel/freezer,/area/shuttle/transport) +"q" = (/obj/machinery/door/airlock/shuttle,/obj/docking_port/mobile{dir = 8;dwidth = 2;height = 12;id = "ferry";name = "ferry shuttle";roundstart_move = "ferry_away";travelDir = 180;width = 5},/turf/open/floor/plasteel/freezer,/area/shuttle/transport) +"r" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion";dir = 4},/turf/closed/wall/shuttle{icon_state = "swall_s5";dir = 2},/area/shuttle/transport) +"s" = (/turf/open/floor/plasteel/freezer,/turf/closed/wall/shuttle/interior{icon_state = "swall_f10"},/area/shuttle/transport) +"t" = (/obj/structure/closet/chefcloset,/turf/open/floor/plasteel/freezer,/area/shuttle/transport) +"u" = (/obj/structure/kitchenspike,/turf/open/floor/plasteel/freezer,/area/shuttle/transport) +"v" = (/obj/machinery/door/airlock/freezer{name = "Meat Tradeship Backroom";req_access = "28"},/turf/open/floor/plasteel/freezer,/area/shuttle/transport) +"w" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/freezer,/area/shuttle/transport) +"x" = (/turf/closed/wall/shuttle{icon_state = "swall_s9";dir = 2},/area/shuttle/transport) + +(1,1,1) = {" +abcccccccccd +befghijklmno +piiiiiiiliiq +rstuuuiiviwo +arcccccccccx +"} diff --git a/_maps/shuttles/whiteship_box.dmm b/_maps/shuttles/whiteship_box.dmm new file mode 100644 index 00000000000..44db343ee14 --- /dev/null +++ b/_maps/shuttles/whiteship_box.dmm @@ -0,0 +1,85 @@ +"aa" = (/turf/open/space,/area/space) +"ab" = (/turf/closed/wall/shuttle{icon_state = "swall_s6"; dir = 2},/area/shuttle/abandoned) +"ac" = (/turf/closed/wall/shuttle{icon_state = "swall_s10"; dir = 2},/area/shuttle/abandoned) +"ad" = (/obj/machinery/door/airlock/shuttle,/obj/docking_port/mobile{dheight = 0; dir = 2; dwidth = 11; height = 22; id = "whiteship"; launch_status = 0; name = "NT Medical Ship"; roundstart_move = "whiteship_away"; travelDir = 180; width = 35},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"ae" = (/turf/closed/wall/shuttle{icon_state = "swall12"; dir = 2},/area/shuttle/abandoned) +"af" = (/obj/machinery/door/airlock/shuttle,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"ag" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 4},/turf/open/floor/plating/airless,/area/shuttle/abandoned) +"ah" = (/turf/closed/wall/shuttle{icon_state = "swall13"; dir = 2},/area/shuttle/abandoned) +"ai" = (/turf/closed/wall/shuttle{icon_state = "swall11"; dir = 2},/area/shuttle/abandoned) +"aj" = (/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"ak" = (/obj/structure/table,/obj/item/device/radio/off,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"al" = (/obj/structure/table,/obj/item/weapon/screwdriver,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"am" = (/turf/closed/wall/shuttle{icon_state = "swall3"; dir = 2},/area/shuttle/abandoned) +"an" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 4},/turf/open/floor/plating/airless,/area/shuttle/abandoned) +"ao" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating/airless,/area/shuttle/abandoned) +"ap" = (/turf/closed/wall/shuttle{icon_state = "swall_f15"},/area/shuttle/abandoned) +"aq" = (/turf/closed/wall/shuttle{icon_state = "swall15"; dir = 2},/area/shuttle/abandoned) +"ar" = (/obj/machinery/computer/pod{id = "oldship_gun"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"as" = (/turf/closed/wall/shuttle{icon_state = "swall7"; dir = 2},/area/shuttle/abandoned) +"at" = (/turf/open/floor/plating,/area/shuttle/abandoned) +"au" = (/turf/closed/wall/shuttle{icon_state = "swall_f13"},/area/shuttle/abandoned) +"av" = (/obj/structure/rack,/obj/item/clothing/suit/space/hardsuit/medical,/obj/item/clothing/mask/breath,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"aw" = (/obj/machinery/door/airlock/glass,/turf/open/floor/plating,/area/shuttle/abandoned) +"ax" = (/obj/machinery/mass_driver{dir = 4; icon_state = "mass_driver"; id = "oldship_gun"},/turf/open/floor/plating,/area/shuttle/abandoned) +"ay" = (/obj/machinery/door/poddoor{id = "oldship_gun"; name = "pod bay door"},/turf/open/floor/plating,/area/shuttle/abandoned) +"az" = (/turf/closed/wall/shuttle{icon_state = "swall_f12"},/area/shuttle/abandoned) +"aA" = (/turf/closed/wall/shuttle{icon_state = "swall14"; dir = 2},/area/shuttle/abandoned) +"aB" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"; dir = 4},/turf/open/floor/plating/airless,/area/shuttle/abandoned) +"aC" = (/turf/closed/wall/shuttle{icon_state = "swall_f17"},/area/shuttle/abandoned) +"aD" = (/obj/machinery/door/airlock/shuttle,/turf/open/floor/plating,/area/shuttle/abandoned) +"aE" = (/obj/item/weapon/stock_parts/cell{charge = 100; maxcharge = 15000},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"aF" = (/turf/closed/wall/shuttle{icon_state = "swall_f14"},/area/shuttle/abandoned) +"aG" = (/obj/structure/rack,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/tank/internals/emergency_oxygen,/obj/item/weapon/storage/toolbox/mechanical,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"aH" = (/obj/structure/computerframe{anchored = 1},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"aI" = (/turf/closed/wall/shuttle{icon_state = "swall_f11"},/area/shuttle/abandoned) +"aJ" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"aK" = (/obj/item/weapon/shard{icon_state = "medium"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"aL" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plating,/area/shuttle/abandoned) +"aM" = (/obj/structure/grille,/obj/structure/window/reinforced/fulltile,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"aN" = (/obj/machinery/door/window,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor5"},/area/shuttle/abandoned) +"aO" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor5"},/area/shuttle/abandoned) +"aP" = (/obj/structure/table,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"aQ" = (/obj/structure/table,/obj/item/weapon/gun/energy/laser/retro,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"aR" = (/obj/machinery/door/airlock/glass,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"aS" = (/obj/structure/chair{dir = 4},/obj/effect/decal/remains/human,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"aT" = (/obj/machinery/computer/shuttle/white_ship,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"aU" = (/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"aV" = (/obj/structure/table,/obj/item/weapon/tank/internals/oxygen,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"aW" = (/turf/closed/wall/shuttle{icon_state = "swall_s5"; dir = 2},/area/shuttle/abandoned) +"aX" = (/turf/closed/wall/shuttle{icon_state = "swall_s9"; dir = 2},/area/shuttle/abandoned) +"aY" = (/obj/structure/bed,/obj/item/weapon/bedsheet,/obj/structure/window/reinforced{dir = 1},/obj/structure/window/reinforced{dir = 8},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor5"},/area/shuttle/abandoned) +"aZ" = (/obj/machinery/door/window/northright,/obj/effect/decal/remains/human,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor5"},/area/shuttle/abandoned) +"ba" = (/obj/machinery/portable_atmospherics/scrubber,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"bb" = (/turf/closed/wall/shuttle{icon_state = "swall_f18"},/area/shuttle/abandoned) +"bc" = (/obj/item/device/multitool,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"bd" = (/obj/structure/chair,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"be" = (/turf/closed/wall/shuttle{icon_state = "swall_f16"},/area/shuttle/abandoned) +"bf" = (/obj/item/weapon/scalpel,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"bg" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular{pixel_x = 6; pixel_y = -5},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"bh" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 8},/obj/effect/decal/remains/human,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) + +(1,1,1) = {" +aaaaaaaaaaaaaaaaaaaaaaaaaaaaabacaaaaaaaaaaaaabadaeaeaeaeaeaeafacaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaagahacaaaaaaaaabaiajajakalajajajajamaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaanaoapacaaaaabaqaiajajajajajajajarasaeacaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaanaoatapacabaqauamavajajajajajajajawaxayaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaanaoatatasahauajamavajajajajajazaqaeahaAac +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaBaeaCataDajaEajasaFaGajajajazaqauaHaHaIai +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabaqaeaiajajajaIahaeaeafaAaqauajaJaJaKam +aaaaaaaaaaaaaaaaaaaaaaaaaaabaAahauajamajajajajajajajajaIaiajajajajajaL +abaAaeaeaeaeaeaeaeaAacaaabaqauajajajamajajazaeaeafaFajajamajajajajajaL +aqauajajajajajajajaIaqaeaqauajajajajaMajajamaNaOajamajajaLajajajaPaQaL +afajajajajajajajajajafajafajajajajajaRajajamajajajamajajaRajajajaSaTaL +aqaFajajajajajajaUazaqaeaqaFajajajajaMajajamajaVajamajajaLajajajaPaPaL +aWahaeaeaeaeaeaeaeahaXaaaWaqaFajajajamajajamajaYaZamajajamajajajajajaL +aaaaaaaaaaaaaaaaaaaaaaaaaaaWahaAaFbaamajajaIafaeaeauajajamaPajajajajaL +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaWaqaeaiajajajajajajajajajamaPajajajajam +aaaaaaaaaaaaaaaaaaaaaaaaaaaaagaebbataDajajajajajajaEajbcamaPajbdajazai +aaaaaaaaaaaaaaaaaaaaaaaaaaaaanaoatatasaAaAaAafaeaeaLaLaLahaeaFaHazaqaX +aaaaaaaaaaaaaaaaaaaaaaaaaaaaanaoatbeaXaWaqaiajajajbfajajajajaIaAaqaXaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaanaobeaXaaaaaWaqaFbgajajajajajajaHasaXaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaBaAaXaaaaaaaaaWahaAaFajbhajajazaeaXaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaWaXaaaaaaaaaaaaaaaWahaeaeaeaeaXaaaaaaaaaa +aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +"} diff --git a/_maps/shuttles/whiteship_meta.dmm b/_maps/shuttles/whiteship_meta.dmm new file mode 100644 index 00000000000..834aaa68d89 --- /dev/null +++ b/_maps/shuttles/whiteship_meta.dmm @@ -0,0 +1,176 @@ +"aa" = (/turf/open/space,/area/space) +"ab" = (/turf/closed/wall/shuttle{icon_state = "swall_s6"; dir = 2},/area/shuttle/abandoned) +"ac" = (/turf/closed/wall/shuttle{icon_state = "swall14"; dir = 2},/area/shuttle/abandoned) +"ad" = (/turf/closed/wall/shuttle{icon_state = "swall12"; dir = 2},/area/shuttle/abandoned) +"ae" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/abandoned) +"af" = (/turf/closed/wall/shuttle{icon_state = "swallc1"; dir = 2},/area/shuttle/abandoned) +"ag" = (/obj/docking_port/mobile{dheight = 0; dir = 2; dwidth = 11; height = 15; id = "whiteship"; launch_status = 0; name = "NT Recovery White-Ship"; roundstart_move = "whiteship_away"; travelDir = 180; width = 27},/obj/machinery/door/airlock/shuttle{name = "recovery shuttle external airlock"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle,/area/shuttle/abandoned) +"ah" = (/obj/machinery/door/airlock/shuttle{name = "recovery shuttle external airlock"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle,/area/shuttle/abandoned) +"ai" = (/turf/closed/wall/shuttle{icon_state = "swallc2"; dir = 2},/area/shuttle/abandoned) +"aj" = (/turf/closed/wall/shuttle{icon_state = "swall_s10"; dir = 2},/area/shuttle/abandoned) +"ak" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_l"; dir = 4},/turf/open/floor/plating/airless,/area/shuttle/abandoned) +"al" = (/turf/closed/wall/shuttle{icon_state = "swall13"; dir = 2},/area/shuttle/abandoned) +"am" = (/turf/closed/wall/shuttle{icon_state = "swall11"; dir = 2},/area/shuttle/abandoned) +"an" = (/obj/structure/toilet{pixel_y = 9},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/greenglow{desc = "Looks like something's sprung a leak"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"ao" = (/obj/structure/mirror{pixel_x = 28; pixel_y = 0},/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"ap" = (/turf/closed/wall/shuttle{icon_state = "swall3"; dir = 2},/area/shuttle/abandoned) +"aq" = (/obj/structure/closet/wardrobe/mixed,/obj/item/clothing/under/rank/centcom_officer{desc = "A badge on the arm indicates that it's meant to be worn by Centcom recovery teams. This one seems dusty and clearly hasn't been cleaned in some time."; name = "\improper dusty old Centcom jumpsuit"},/obj/item/clothing/under/rank/centcom_commander{desc = "A badge on the arm indicates that it's meant to be worn by Centcom recovery teams. This one seems dusty and clearly hasn't been cleaned in some time."; name = "\improper dusty old Centcom jumpsuit"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"ar" = (/obj/structure/table,/obj/item/weapon/storage/pill_bottle/dice{pixel_y = 3},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"as" = (/obj/structure/table,/obj/item/stack/sheet/metal{amount = 50},/obj/item/weapon/stock_parts/cell/high{charge = 100; maxcharge = 15000; pixel_y = 2},/obj/effect/decal/cleanable/cobweb,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"at" = (/obj/machinery/suit_storage_unit/standard_unit,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"au" = (/obj/structure/tank_dispenser/oxygen{layer = 2.7; pixel_x = -1; pixel_y = 2},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"av" = (/turf/closed/wall/shuttle{icon_state = "swall1"},/area/shuttle/abandoned) +"aw" = (/obj/structure/sign/vacuum{pixel_x = -32},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle,/area/shuttle/abandoned) +"ax" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle,/area/shuttle/abandoned) +"ay" = (/obj/structure/closet/crate/medical{name = "medical crate"},/obj/item/weapon/storage/firstaid/o2{pixel_x = 3; pixel_y = 3},/obj/item/roller{pixel_y = 4},/obj/item/device/healthanalyzer,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plating{icon_state = "bot"},/area/shuttle/abandoned) +"az" = (/obj/structure/closet/crate{name = "spare equipment crate"},/obj/item/weapon/grenade/chem_grenade/metalfoam,/obj/item/weapon/relic,/obj/item/device/t_scanner,/obj/effect/spawner/lootdrop/maintenance{lootcount = 3; name = "3maintenance loot spawner"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plating{icon_state = "bot"},/area/shuttle/abandoned) +"aA" = (/obj/item/weapon/storage/box/lights/mixed,/obj/item/weapon/cigbutt,/obj/structure/closet/crate{icon_state = "crateopen"; name = "spare equipment crate"; opened = 1},/obj/item/weapon/tank/internals/oxygen/red,/obj/item/weapon/tank/internals/air,/obj/effect/spawner/lootdrop/maintenance{lootcount = 2; name = "2maintenance loot spawner"},/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plating{icon_state = "bot"},/area/shuttle/abandoned) +"aB" = (/obj/structure/closet/crate{name = "emergency supplies crate"},/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/toolbox/emergency,/obj/item/device/flashlight/flare{pixel_x = 3; pixel_y = 3},/obj/item/device/flashlight/flare{pixel_x = -6; pixel_y = -2},/obj/item/weapon/crowbar,/obj/item/weapon/wrench,/obj/effect/spawner/lootdrop/maintenance,/obj/item/weapon/extinguisher,/obj/item/weapon/extinguisher,/obj/effect/decal/cleanable/cobweb2,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plating{icon_state = "bot"},/area/shuttle/abandoned) +"aC" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 4},/turf/open/floor/plating/airless,/area/shuttle/abandoned) +"aD" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating/airless,/area/shuttle/abandoned) +"aE" = (/turf/closed/wall/shuttle{icon_state = "swall7"; dir = 2},/area/shuttle/abandoned) +"aF" = (/turf/closed/wall/shuttle{icon_state = "swall8"; dir = 2},/area/shuttle/abandoned) +"aG" = (/obj/machinery/door/airlock/shuttle{name = "bathroom"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle,/area/shuttle/abandoned) +"aH" = (/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/blood/gibs/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/ash{desc = "They look like human remains, and have clearly been gnawed at."; icon = 'icons/effects/blood.dmi'; icon_state = "remains"; name = "remains"},/obj/item/weapon/gun/energy/laser/retro,/turf/open/floor/plasteel/shuttle,/area/shuttle/abandoned) +"aI" = (/obj/structure/bed,/obj/item/weapon/bedsheet/centcom,/obj/effect/decal/remains/human,/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"aJ" = (/obj/structure/table,/obj/item/weapon/storage/belt/utility,/obj/item/weapon/storage/belt/utility,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/item/device/radio/off,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"aK" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/oil,/turf/open/floor/plasteel/shuttle,/area/shuttle/abandoned) +"aL" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle,/area/shuttle/abandoned) +"aM" = (/obj/machinery/door/airlock/shuttle{name = "E.V.A. equipment"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle,/area/shuttle/abandoned) +"aN" = (/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/blood/gibs/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/ash{desc = "They look like human remains, and have clearly been gnawed at."; icon = 'icons/effects/blood.dmi'; icon_state = "remains"; name = "remains"},/turf/open/floor/plasteel/shuttle,/area/shuttle/abandoned) +"aO" = (/obj/machinery/door/airlock/shuttle{name = "cargo bay"},/turf/open/floor/plating{dir = 1; icon_state = "delivery"},/area/shuttle/abandoned) +"aP" = (/obj/effect/decal/cleanable/oil,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plating{dir = 1; icon_state = "delivery"},/area/shuttle/abandoned) +"aQ" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plating{dir = 1; icon_state = "delivery"},/area/shuttle/abandoned) +"aR" = (/obj/effect/decal/cleanable/robot_debris/old,/obj/effect/decal/cleanable/oil,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plating{dir = 1; icon_state = "delivery"},/area/shuttle/abandoned) +"aS" = (/obj/machinery/shower{icon_state = "shower"; dir = 4},/obj/machinery/door/window/westright{dir = 4},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/item/weapon/soap/nanotrasen,/obj/effect/decal/cleanable/ash{desc = "They look like human remains, and have clearly been gnawed at."; icon = 'icons/effects/blood.dmi'; icon_state = "remains"; name = "remains"},/obj/effect/decal/cleanable/blood/gibs/old,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"aT" = (/obj/effect/decal/cleanable/blood/old,/obj/structure/mirror{pixel_x = 28; pixel_y = 0},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle,/area/shuttle/abandoned) +"aU" = (/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/blood/gibs/limb,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle,/area/shuttle/abandoned) +"aV" = (/obj/structure/bed,/obj/item/weapon/bedsheet/centcom,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"aW" = (/obj/structure/table,/obj/item/stack/sheet/glass{amount = 50; pixel_x = -2; pixel_y = 2},/obj/item/stack/rods{amount = 50},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/item/weapon/wrench,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"aX" = (/obj/structure/rack{dir = 8; layer = 2.9; pixel_y = 2},/obj/item/weapon/storage/toolbox/electrical{pixel_x = 1; pixel_y = 6},/obj/item/weapon/storage/toolbox/mechanical{pixel_x = -2; pixel_y = -1},/obj/item/clothing/head/welding{pixel_x = -3; pixel_y = 5},/obj/item/clothing/glasses/welding,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"aY" = (/obj/machinery/portable_atmospherics/canister/oxygen,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"aZ" = (/turf/closed/wall/shuttle{icon_state = "swall2"},/area/shuttle/abandoned) +"ba" = (/obj/machinery/constructable_frame/machine_frame,/obj/item/weapon/circuitboard/cyborgrecharger,/obj/effect/decal/cleanable/oil,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plating{icon_state = "bot"},/area/shuttle/abandoned) +"bb" = (/obj/structure/closet/emcloset,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plating{icon_state = "bot"},/area/shuttle/abandoned) +"bc" = (/obj/structure/closet/firecloset/full,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plating{icon_state = "bot"},/area/shuttle/abandoned) +"bd" = (/obj/machinery/door/airlock/shuttle{name = "bathroom"},/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle,/area/shuttle/abandoned) +"be" = (/turf/closed/wall/shuttle{icon_state = "swall1"; dir = 2},/area/shuttle/abandoned) +"bf" = (/obj/machinery/door/airlock/shuttle{name = "dormitory"},/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle,/area/shuttle/abandoned) +"bg" = (/obj/machinery/vending/boozeomat{icon_deny = "smartfridge"; icon_state = "smartfridge"; req_access_txt = "0"; use_power = 0},/turf/closed/wall/shuttle{icon_state = "swall12"; dir = 2},/area/shuttle/abandoned) +"bh" = (/turf/closed/wall/shuttle{icon_state = "swall4"; dir = 2},/area/shuttle/abandoned) +"bi" = (/turf/closed/wall/shuttle{icon_state = "swallc4"; dir = 2},/area/shuttle/abandoned) +"bj" = (/obj/machinery/door/airlock/shuttle{name = "recovery shuttle interior airlock"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle,/area/shuttle/abandoned) +"bk" = (/turf/closed/wall/shuttle{icon_state = "swallc3"; dir = 2},/area/shuttle/abandoned) +"bl" = (/obj/machinery/door/airlock/shuttle{name = "cargo bay"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plating{dir = 1; icon_state = "delivery"},/area/shuttle/abandoned) +"bm" = (/obj/machinery/vending/cigarette{use_power = 0},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"bn" = (/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/blood/gibs/limb,/turf/open/floor/plasteel/shuttle,/area/shuttle/abandoned) +"bo" = (/obj/effect/decal/cleanable/blood/gibs/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle,/area/shuttle/abandoned) +"bp" = (/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle,/area/shuttle/abandoned) +"bq" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/cobweb2,/turf/open/floor/plasteel/shuttle,/area/shuttle/abandoned) +"br" = (/obj/structure/computerframe,/obj/effect/decal/cleanable/cobweb,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"bs" = (/obj/structure/table,/obj/item/device/camera,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"bt" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/item/weapon/storage/photo_album,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"bu" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -1; pixel_y = 6},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"bv" = (/obj/structure/reagent_dispensers/fueltank,/obj/structure/sign/vacuum{pixel_x = -32},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle,/area/shuttle/abandoned) +"bw" = (/obj/machinery/vending/coffee{pixel_x = -2; use_power = 0},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"bx" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"by" = (/obj/structure/chair,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"bz" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"bA" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/machinery/constructable_frame/machine_frame{desc = "A NanoTrasen hypersleep chamber - this one appears broken. There are exposed bolts for easy detachment using a wrench."; dir = 1; icon = 'icons/obj/Cryogenic2.dmi'; icon_state = "sleeper-o"; name = "broken hypersleep chamber"; pixel_y = 0},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"bB" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/machinery/constructable_frame/machine_frame{desc = "A NanoTrasen hypersleep chamber - this one appears broken. There are exposed bolts for easy detachment using a wrench."; dir = 1; icon = 'icons/obj/Cryogenic2.dmi'; icon_state = "sleeper-o"; name = "broken hypersleep chamber"; pixel_y = 0},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"bC" = (/obj/structure/chair/office/light{dir = 4},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"bD" = (/obj/structure/table,/obj/item/weapon/folder/blue,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/item/device/gps{gpstag = "NTREC1"; pixel_x = -1; pixel_y = 2},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"bE" = (/obj/machinery/door/airlock/shuttle{name = "recovery shuttle interior airlock"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle,/area/shuttle/abandoned) +"bF" = (/obj/structure/chair{dir = 4},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"bG" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/drinks/shaker,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"bH" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/peppermill{pixel_x = 3; pixel_y = 4},/obj/item/weapon/reagent_containers/food/condiment/saltshaker{pixel_x = -3; pixel_y = 4},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"bI" = (/obj/structure/table,/obj/item/weapon/storage/fancy/donut_box,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"bJ" = (/obj/structure/chair{dir = 8},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"bK" = (/obj/machinery/door/airlock/shuttle{name = "living quarters"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle,/area/shuttle/abandoned) +"bL" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/item/roller{pixel_x = -3; pixel_y = 7},/obj/item/roller{pixel_x = 3; pixel_y = 4},/obj/item/weapon/reagent_containers/spray/cleaner,/obj/structure/table,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"bM" = (/obj/item/clothing/suit/bio_suit,/obj/item/clothing/suit/bio_suit,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/item/clothing/gloves/color/latex,/obj/item/clothing/gloves/color/latex,/obj/item/clothing/head/bio_hood,/obj/item/clothing/head/bio_hood,/obj/item/clothing/mask/breath,/obj/item/clothing/mask/breath,/obj/structure/table,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"bN" = (/obj/effect/decal/cleanable/blood/gibs/old,/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/ash{desc = "They look like human remains, and have clearly been gnawed at."; icon = 'icons/effects/blood.dmi'; icon_state = "remains"; name = "remains"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"bO" = (/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/blood/gibs/limb,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"bP" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/item/clothing/gloves/color/black,/obj/item/clothing/gloves/color/black,/obj/item/clothing/suit/armor/vest,/obj/item/clothing/suit/armor/vest,/obj/structure/table,/obj/item/clothing/head/helmet/swat/nanotrasen,/obj/item/clothing/head/helmet/swat/nanotrasen,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"bQ" = (/obj/item/weapon/storage/toolbox/emergency{pixel_x = -3; pixel_y = 3},/obj/item/weapon/storage/toolbox/emergency,/obj/item/weapon/storage/toolbox/emergency{pixel_x = 3; pixel_y = -3},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/structure/table,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"bR" = (/obj/machinery/door/airlock/shuttle{name = "bridge"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle,/area/shuttle/abandoned) +"bS" = (/obj/effect/decal/cleanable/blood/old,/obj/structure/chair/comfy/black{dir = 4},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"bT" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/machinery/computer/shuttle/white_ship,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"bU" = (/obj/structure/reagent_dispensers/watertank,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle,/area/shuttle/abandoned) +"bV" = (/obj/machinery/vending/cola{pixel_x = -1; use_power = 0},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"bW" = (/obj/structure/chair{dir = 1},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"bX" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/machinery/constructable_frame/machine_frame{desc = "A NanoTrasen hypersleep chamber - this one appears broken. There are exposed bolts for easy detachment using a wrench."; dir = 2; icon = 'icons/obj/Cryogenic2.dmi'; icon_state = "sleeper-o"; name = "broken hypersleep chamber"; pixel_y = 3},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"bY" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/machinery/constructable_frame/machine_frame{desc = "A NanoTrasen hypersleep chamber - this one appears broken. There are exposed bolts for easy detachment using a wrench."; dir = 2; icon = 'icons/obj/Cryogenic2.dmi'; icon_state = "sleeper-o"; name = "broken hypersleep chamber"; pixel_y = 3},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"bZ" = (/obj/structure/chair/office/light,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"ca" = (/obj/effect/decal/cleanable/blood/old,/obj/effect/decal/cleanable/blood/gibs/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/item/clothing/head/centhat{desc = "There's a gouge through the top where something has clawed clean through it. Whoever was wearing it probably doesn't need a hat any more."; name = "\improper damaged CentCom hat"},/obj/effect/decal/cleanable/ash{desc = "They look like human remains, and have clearly been gnawed at."; icon = 'icons/effects/blood.dmi'; icon_state = "remains"; name = "remains"},/turf/open/floor/plasteel/shuttle,/area/shuttle/abandoned) +"cb" = (/obj/item/weapon/phone{pixel_x = -3; pixel_y = 3},/obj/item/weapon/cigbutt/cigarbutt{pixel_x = 5; pixel_y = -1},/obj/structure/table,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"cc" = (/turf/closed/wall/shuttle{icon_state = "swall_s5"; dir = 2},/area/shuttle/abandoned) +"cd" = (/obj/machinery/vending/snack{pixel_x = -1; use_power = 0},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"ce" = (/obj/structure/sign/science{pixel_y = -32},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle,/area/shuttle/abandoned) +"cf" = (/obj/structure/computerframe,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"cg" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/item/device/megaphone,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"ch" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/item/device/mass_spectrometer,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"ci" = (/obj/structure/table,/obj/item/device/radio/off{pixel_y = 6},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"cj" = (/obj/structure/sign/botany,/turf/closed/wall/shuttle{icon_state = "swall8"; dir = 2},/area/shuttle/abandoned) +"ck" = (/obj/machinery/door/airlock/shuttle{name = "hydroponics"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle,/area/shuttle/abandoned) +"cl" = (/obj/machinery/door/airlock/shuttle{name = "kitchen"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle,/area/shuttle/abandoned) +"cm" = (/obj/machinery/door/airlock/shuttle{name = "laboratory"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle,/area/shuttle/abandoned) +"cn" = (/obj/structure/sign/bluecross_2,/turf/closed/wall/shuttle{icon_state = "swall8"; dir = 2},/area/shuttle/abandoned) +"co" = (/obj/machinery/door/airlock/shuttle{icon_state = "door_closed"; name = "medbay"; welded = 0},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle,/area/shuttle/abandoned) +"cp" = (/turf/closed/wall/shuttle{icon_state = "swall_s9"; dir = 2},/area/shuttle/abandoned) +"cq" = (/obj/item/weapon/storage/bag/plants/portaseeder,/obj/structure/table,/obj/item/weapon/reagent_containers/spray/plantbgone{pixel_x = 13; pixel_y = 5},/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez,/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez,/obj/item/weapon/reagent_containers/glass/bottle/nutrient/ez,/obj/item/weapon/reagent_containers/glass/bottle/nutrient/rh{pixel_x = -2; pixel_y = 3},/obj/effect/decal/cleanable/cobweb,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"cr" = (/obj/machinery/biogenerator{idle_power_usage = 0; use_power = 0},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"cs" = (/obj/machinery/vending/hydroseeds{pixel_x = 2; use_power = 0},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"ct" = (/obj/machinery/processor,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"cu" = (/obj/structure/kitchenspike,/obj/effect/decal/cleanable/blood/gibs/old,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"cv" = (/obj/structure/table,/obj/machinery/microwave{pixel_x = -3; pixel_y = 6},/obj/item/weapon/storage/box/donkpockets,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/cobweb2,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"cw" = (/obj/machinery/constructable_frame/machine_frame,/obj/effect/decal/cleanable/oil,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"cx" = (/obj/machinery/constructable_frame/machine_frame,/obj/item/weapon/circuitboard/autolathe,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"cy" = (/obj/machinery/sleeper{dir = 4; use_power = 0},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"cz" = (/obj/structure/closet/crate/freezer,/obj/item/weapon/reagent_containers/blood/empty{pixel_x = -3; pixel_y = -3},/obj/item/weapon/reagent_containers/blood/OMinus,/obj/item/weapon/reagent_containers/blood/random,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/xenoblood,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"cA" = (/obj/structure/table/optable,/obj/item/weapon/surgical_drapes,/obj/item/weapon/storage/firstaid/regular,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"cB" = (/obj/structure/table,/obj/item/weapon/wrench,/obj/item/weapon/crowbar,/obj/item/clothing/suit/apron,/obj/item/weapon/shovel/spade,/obj/item/weapon/cultivator,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/item/weapon/wirecutters,/obj/item/device/analyzer/plant_analyzer,/obj/item/weapon/reagent_containers/glass/bucket,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"cC" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle,/area/shuttle/abandoned) +"cD" = (/obj/machinery/smartfridge{use_power = 0},/turf/closed/wall/shuttle{icon_state = "swall3"; dir = 2},/area/shuttle/abandoned) +"cE" = (/obj/structure/sink{icon_state = "sink"; dir = 8; pixel_x = -12; pixel_y = 2},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle,/area/shuttle/abandoned) +"cF" = (/obj/effect/decal/cleanable/egg_smudge,/obj/effect/decal/cleanable/flour,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle,/area/shuttle/abandoned) +"cG" = (/obj/structure/table,/obj/item/weapon/kitchen/rollingpin,/obj/item/weapon/kitchen/knife,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"cH" = (/obj/machinery/constructable_frame/machine_frame,/obj/item/weapon/circuitboard/chem_dispenser,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"cI" = (/obj/structure/chair/office/light,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle,/area/shuttle/abandoned) +"cJ" = (/obj/machinery/constructable_frame/machine_frame,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"cK" = (/obj/machinery/vending/wallmed{name = "Emergency NanoMed"; pixel_x = -28; pixel_y = 0; req_access_txt = "0"; use_power = 0},/obj/machinery/iv_drip{density = 0; pixel_x = -8},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle,/area/shuttle/abandoned) +"cL" = (/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/ash,/obj/effect/decal/cleanable/xenoblood,/turf/open/floor/plasteel/shuttle,/area/shuttle/abandoned) +"cM" = (/obj/effect/decal/cleanable/xenoblood,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/effect/decal/cleanable/ash{desc = "A pile of remains that look vaguely humanoid. The skull is abnormally elongated, and there are burns through some of the other bones."; icon = 'icons/effects/blood.dmi'; icon_state = "remainsxeno"; name = "remains"},/turf/open/floor/plasteel/shuttle,/area/shuttle/abandoned) +"cN" = (/obj/structure/sink{dir = 4; icon_state = "sink"; pixel_x = 11; pixel_y = 0},/obj/effect/decal/cleanable/xenoblood,/obj/effect/decal/cleanable/xenoblood/xgibs/limb,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle,/area/shuttle/abandoned) +"cO" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion_r"; dir = 4},/turf/open/floor/plating/airless,/area/shuttle/abandoned) +"cP" = (/obj/machinery/hydroponics/constructable,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"cQ" = (/obj/machinery/hydroponics/constructable,/obj/item/seeds/glowshroom,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"cR" = (/obj/structure/table,/obj/machinery/reagentgrinder{pixel_y = 6},/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"cS" = (/obj/structure/table,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/item/weapon/storage/box/monkeycubes{pixel_y = 4},/obj/item/weapon/storage/fancy/egg_box{pixel_y = 5},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"cT" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 5},/obj/item/weapon/reagent_containers/food/condiment/enzyme{layer = 5},/obj/item/weapon/reagent_containers/dropper,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"cU" = (/obj/structure/table,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/flour,/obj/item/weapon/reagent_containers/food/condiment/milk,/obj/item/weapon/reagent_containers/food/condiment/milk,/obj/item/weapon/reagent_containers/food/condiment/milk,/obj/item/weapon/reagent_containers/food/condiment/soymilk,/obj/item/weapon/reagent_containers/food/condiment/soymilk,/obj/item/weapon/reagent_containers/food/condiment/sugar,/obj/item/weapon/reagent_containers/food/condiment/sugar,/obj/item/weapon/reagent_containers/food/condiment/sugar,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"cV" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/beaker{pixel_x = 5; pixel_y = 2},/obj/item/weapon/reagent_containers/glass/beaker,/obj/item/weapon/reagent_containers/dropper,/obj/item/weapon/reagent_containers/syringe,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"cW" = (/obj/structure/table,/obj/item/weapon/folder/white,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"cX" = (/obj/structure/table,/obj/item/weapon/hand_labeler,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"cY" = (/obj/structure/table,/obj/item/weapon/defibrillator,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"cZ" = (/obj/structure/table,/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{pixel_x = 6; pixel_y = 0},/obj/item/weapon/reagent_containers/glass/bottle/charcoal{pixel_x = -3},/obj/item/weapon/reagent_containers/syringe,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"da" = (/obj/structure/table,/obj/item/clothing/gloves/color/latex,/obj/item/clothing/mask/surgical,/obj/effect/decal/cleanable/dirt{desc = "A thin layer of dust coating the floor."; name = "dust"},/obj/item/clothing/suit/apron/surgical,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) +"db" = (/obj/structure/table,/obj/item/weapon/storage/backpack/dufflebag/med{contents = newlist(/obj/item/weapon/scalpel,/obj/item/weapon/hemostat,/obj/item/weapon/retractor,/obj/item/weapon/cautery,/obj/item/weapon/circular_saw,/obj/item/weapon/surgicaldrill,/obj/item/weapon/razor); desc = "A large dufflebag for holding extra medical supplies - this one seems to be designed for holding surgical tools."; name = "surgical dufflebag"; pixel_y = 4},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/abandoned) + +(1,1,1) = {" +aaaaabacadaeacaeadacadaeaeadafagahaiadaeaeadajaaaaaaaa +aaakalamanaoapaqarapasatatauavawaxavayazaAaBapaaaaaaaa +aaaCaDaEaFaGapaHaIapaJaKaxaLaMaLaNaOaPaQaQaRaeaaaaaaaa +aaaCaDapaSaTapaUaVapaWaXaLaYaZaxaLaZbaaQbbbcapaaaaaaaa +aaaCaialaFbdbebfbgaladafaMbhbibjbjbkaFblaiadalaeaeajaa +abaeambmaLbnbobpaLaLbqapaxaLaLaLaxaLaLaLapbrbsbtbuaeaa +avbvavbwaLbxbybybybzaLavaLbAbBbpaLbAbAaLavbCaxaLbDaeaa +ahaxbEaxaLbFbGbHbIbJaxbKaLbLbMbNbObPbQaxbRaLaLbSbTaeaa +aZbUaZbVaLbzbWbWbWbxaLaZaLbXbYaLaxbXbYaLaZbZbpcacbaeaa +ccaeamcdaLaLaLaLaLaLaLapaLaLceaLaLaLaLaLapcfcgchciaeaa +aaaCbkacadcjckbhafclbhaladacaFcmbhaccncobkadacaeaecpaa +aaaCaDapcqcraxcsapaLctcucvapcwaLcxapcyaxczcAapaaaaaaaa +aaaCaDapcBaxaLcCcDcEaxcFcGapcHcIcJapcKcLcMcNaeaaaaaaaa +aacOacamcPcPcQcPapcRcScTcUapcVcWcXapcYcZdadbapaaaaaaaa +aaaaccaladaeaeadaladaeaeadaladaeadaladaeaeadcpaaaaaaaa +"} diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm index e13ea1a5174..9b9bc263e6d 100644 --- a/code/__DEFINES/misc.dm +++ b/code/__DEFINES/misc.dm @@ -420,3 +420,6 @@ var/global/list/ghost_others_options = list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE #define MAP_MAXX 4 #define MAP_MAXY 5 #define MAP_MAXZ 6 + +// Shuttle return values +#define SHUTTLE_ALREADY_DOCKED 7 diff --git a/code/_globalvars/lists/mapping.dm b/code/_globalvars/lists/mapping.dm index ebe953f7c83..0d8be652a22 100644 --- a/code/_globalvars/lists/mapping.dm +++ b/code/_globalvars/lists/mapping.dm @@ -57,4 +57,6 @@ var/list/sortedAreas = list() //List of preloaded templates var/list/datum/map_template/map_templates = list() var/list/datum/map_template/space_ruins_templates = list() -var/list/datum/map_template/lava_ruins_templates = list() \ No newline at end of file +var/list/datum/map_template/lava_ruins_templates = list() + +var/list/datum/map_template/shuttle_templates = list() diff --git a/code/controllers/subsystem/shuttles.dm b/code/controllers/subsystem/shuttles.dm index cb33b9d7356..e2df3ccd9f6 100644 --- a/code/controllers/subsystem/shuttles.dm +++ b/code/controllers/subsystem/shuttles.dm @@ -11,6 +11,7 @@ var/datum/subsystem/shuttle/SSshuttle //emergency shuttle stuff var/obj/docking_port/mobile/emergency/emergency + var/obj/docking_port/mobile/emergency/backup/backup_shuttle var/emergencyCallTime = 6000 //time taken for emergency shuttle to reach the station when called (in deciseconds) var/emergencyDockTime = 1800 //time taken for emergency shuttle to leave again once it has docked (in deciseconds) var/emergencyEscapeTime = 1200 //time taken for emergency shuttle to reach a safe distance after leaving station (in deciseconds) @@ -39,6 +40,8 @@ var/datum/subsystem/shuttle/SSshuttle return ..() if(!emergency) WARNING("No /obj/docking_port/mobile/emergency placed on the map!") + if(!backup_shuttle) + WARNING("No /obj/docking_port/mobile/emergency/backup placed on the map!") if(!supply) WARNING("No /obj/docking_port/mobile/supply placed on the map!") @@ -76,8 +79,11 @@ var/datum/subsystem/shuttle/SSshuttle /datum/subsystem/shuttle/proc/requestEvac(mob/user, call_reason) if(!emergency) - throw EXCEPTION("requestEvac(): There is no emergency shuttle! The game will be unresolvable. This is likely due to a mapping error") - return + WARNING("requestEvac(): There is no emergency shuttle, but the shuttle was called. Using the backup shuttle instead.") + if(!backup_shuttle) + throw EXCEPTION("requestEvac(): There is no emergency shuttle, or backup shuttle! The game will be unresolvable. This is likely due to a mapping error") + return + emergency = backup_shuttle if(world.time - round_start_time < config.shuttle_refuel_delay) user << "The emergency shuttle is refueling. Please wait another [abs(round(((world.time - round_start_time) - config.shuttle_refuel_delay)/600))] minutes before trying again." @@ -118,6 +124,13 @@ var/datum/subsystem/shuttle/SSshuttle return +// Called when an emergency shuttle mobile docking port is +// destroyed, which will only happen with admin intervention +/datum/subsystem/shuttle/proc/emergencyDeregister() + // When a new emergency shuttle is created, it will override the + // backup shuttle. + src.emergency = src.backup_shuttle + /datum/subsystem/shuttle/proc/cancelEvac(mob/user) if(canRecall()) emergency.cancel(get_area(user)) @@ -182,13 +195,15 @@ var/datum/subsystem/shuttle/SSshuttle /datum/subsystem/shuttle/proc/moveShuttle(shuttleId, dockId, timed) var/obj/docking_port/mobile/M = getShuttle(shuttleId) + var/obj/docking_port/stationary/D = getDock(dockId) + if(!M) return 1 if(timed) - if(M.request(getDock(dockId))) + if(M.request(D)) return 2 else - if(M.dock(getDock(dockId))) + if(M.dock(D)) return 2 return 0 //dock successful diff --git a/code/datums/helper_datums/map_template.dm b/code/datums/helper_datums/map_template.dm index 3a947256fcb..bedb903a1b4 100644 --- a/code/datums/helper_datums/map_template.dm +++ b/code/datums/helper_datums/map_template.dm @@ -9,6 +9,7 @@ /datum/map_template/New(path = null, map = null, rename = null) if(path) mappath = path + if(mappath) preload_size(mappath) if(map) mapfile = map @@ -62,10 +63,12 @@ /datum/map_template/proc/get_file() if(mapfile) - return mapfile - if(mappath) - mapfile = file(mappath) - return mapfile + . = mapfile + else if(mappath) + . = file(mappath) + + if(!.) + world.log << "The file of [src] appears to be empty/non-existent." /datum/map_template/proc/get_affected_turfs(turf/T, centered = FALSE) var/turf/placement = T @@ -83,6 +86,7 @@ map_templates[T.name] = T preloadRuinTemplates() + preloadShuttleTemplates() /proc/preloadRuinTemplates() var/list/potentialSpaceRuins = generateMapList(filename = "_maps/RandomRuins/SpaceRuins/_maplisting.txt", blacklist = "config/spaceRuinBlacklist.txt") @@ -95,4 +99,15 @@ for(var/ruin in potentialLavaRuins) var/datum/map_template/T = new(path = "[ruin]", rename = "[ruin]") lava_ruins_templates[T.name] = T - map_templates[T.name] = T \ No newline at end of file + map_templates[T.name] = T + +/proc/preloadShuttleTemplates() + for(var/item in subtypesof(/datum/map_template/shuttle)) + var/datum/map_template/shuttle/shuttle_type = item + if(!(initial(shuttle_type.suffix))) + continue + + var/datum/map_template/shuttle/S = new shuttle_type() + + shuttle_templates[S.name] = S + map_templates[S.name] = S diff --git a/code/datums/shuttles.dm b/code/datums/shuttles.dm new file mode 100644 index 00000000000..d7497bbe415 --- /dev/null +++ b/code/datums/shuttles.dm @@ -0,0 +1,160 @@ +/datum/map_template/shuttle + name = "Base Shuttle Template" + var/prefix = "_maps/shuttles/" + var/suffix + var/port_id + + var/description + var/admin_notes + +/datum/map_template/shuttle/New() + mappath = "[prefix][port_id]_[suffix].dmm" + . = ..() + +/datum/map_template/shuttle/emergency + port_id = "emergency" + name = "Base Shuttle Template (Emergency)" + +/datum/map_template/shuttle/cargo + port_id = "cargo" + name = "Base Shuttle Template (Cargo)" + +/datum/map_template/shuttle/ferry + port_id = "ferry" + name = "Base Shuttle Template (Ferry)" + +/datum/map_template/shuttle/whiteship + port_id = "whiteship" + +// Shuttles start here: + +/datum/map_template/shuttle/emergency/airless + suffix = "airless" + name = "(Shuttle Under Construction)" + description = "The documentation hasn't been finished yet for this \ + shuttle.\n\ + In case of emergency: Break glass." + +/datum/map_template/shuttle/emergency/bar + suffix = "bar" + name = "The Emergency Escape Bar" + description = "Features include a very tough Bardrone, with laws to be \ + a good bartender, bathroom, a quality lounge for the heads, and a \ + small gambling table." + admin_notes = "Bardrone should be controlled by a player, either admin \ + or ghost, has modified drone laws, can speak human and see normally." + +/datum/map_template/shuttle/emergency/birdboat + suffix = "birdboat" + name = "emergency shuttle (Birdboat)" + +/datum/map_template/shuttle/emergency/box + suffix = "box" + name = "emergency shuttle (Box)" + +/datum/map_template/shuttle/emergency/clown + suffix = "clown" + name = "Snappop(tm)!" + description = "Hey kids and grownups! Are you bored of DULL and TEDIOUS \ + shuttle journeys after you're evacuating for probably BORING reasons. \ + Well then order the Snappop(tm) today! We've got fun activities for \ + everyone, an all access cockpit, and no boring security brig! Boo! \ + Play dress up with your friends! Collect all the bedsheets before \ + your neighbour does! Check if the AI is watching you with our patent \ + pending \"Peeping Tom AI Multitool Detector\" or PEEEEEETUR for \ + short. Have a fun ride!" + admin_notes = "Brig is replaced by anchored greentext book surrounded by \ + lavaland chasms, stationside door has been removed to prevent \ + accidental dropping." + +/datum/map_template/shuttle/emergency/cramped + suffix = "cramped" + name = "Secure Transport Vessel 5 (STV5)" + description = "Well, looks like Centcomm only had this ship in the area, \ + they probably weren't expecting you to need evac for a while. \ + Probably best if you don't rifle around in whatever equipment they \ + were transporting. I hope you're friendly with your coworkers, \ + because there is very little space in this thing.\n\ + \n\ + Contains contraband armory guns, maintenance loot, and abandoned \ + crates!" + admin_notes = "Due to origin as a solo piloted secure vessel, has an \ + active GPS onboard labeled STV5." + +/datum/map_template/shuttle/emergency/meta + suffix = "meta" + name = "emergency shuttle (Metastation)" + +/datum/map_template/shuttle/emergency/narnar + suffix = "narnar" + name = "Shuttle 667" + description = "Looks like this shuttle may have wandered into the \ + darkness between the stars on route to the station. Let's not think \ + too hard about where all the bodies came from." + admin_notes = "Contains real cult ruins, mob eyeballs, and inactive \ + constructs. Put players in constructs if you want them to move. \ + Cloning pods in 'medbay' area are showcases and nonfunctional." + +/datum/map_template/shuttle/emergency/supermatter + suffix = "supermatter" + name = "Hyperfractal Gigashuttle" + description = "\"I dunno, this seems kinda needlessly complicated.\"\n\ + \"This shuttle has very a very high safety record, according to \ + Centcom Officer Cadet Yins.\"\n\ + \"Are you sure?\"\n\ + \"Yes, it has a safety record of N-A-N, which is apparently \ + larger than 100%.\"" + admin_notes = "Supermatter that spawns on shuttle is special anchored \ + 'hugbox' supermatter that cannot take damage and does not take in \ + or emit gas. Outside of admin intervention, it cannot explode. \ + It does, however, still dust anything on contact, emits high levels \ + of radiation, and induce hallucinations in anyone looking at it \ + without protective goggles. Emitters spawn powered on, expect \ + admin notices, they are harmless." + +/datum/map_template/shuttle/ferry/base + suffix = "base" + name = "transport ferry" + description = "Standard issue Box/Metastation Centcom ferry." + +/datum/map_template/shuttle/ferry/meat + suffix = "meat" + name = "\"meat\" ferry" + description = "Ahoy! We got all kinds o' meat aft here. Meat from plant \ + people, people who be dark, not in a racist way, just they're dark \ + black. Oh and lizard meat too,mighty popular that is. Definitely \ + 100% fresh, just ask this guy here. *person on meatspike moans* See? \ + Definitely high quality meat, nothin' wrong with it, nothin' added, \ + definitely no zombifyin' reagents!" + admin_notes = "Meat currently contains no zombifying reagents, lizard on \ + meatspike must be spawned in." + +/datum/map_template/shuttle/ferry/lighthouse + suffix = "lighthouse" + name = "The Lighthouse(?)" + description = "*static*... part of a much larger vessel, possibly \ + military in origin. The weapon markings aren't anything we've seen \ + ... static ... by almost never the same person twice, possible use \ + of unknown storage ... static ... seeing ERT officers onboard, but \ + no missions are on file for ... static ... static ... annoying \ + jingle ... only at The LIGHTHOUSE! Fulfilling needs you didn't even \ + know you had. We've got EVERYTHING, and something else!" + admin_notes = "Currently larger than ferry docking port on Box, will not \ + hit anything, but must be force docked. Trader and ERT bodyguards are \ + not included." + +/datum/map_template/shuttle/whiteship/box + suffix = "box" + name = "NT Medical Ship" + +/datum/map_template/shuttle/whiteship/meta + suffix = "meta" + name = "NT Recovery White-ship" + +/datum/map_template/shuttle/cargo/box + suffix = "box" + name = "supply shuttle (Box)" + +/datum/map_template/shuttle/cargo/birdboat + suffix = "birdboat" + name = "supply shuttle (Birdboat)" diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm index b4cd86efb66..ae28e671888 100644 --- a/code/game/gamemodes/game_mode.dm +++ b/code/game/gamemodes/game_mode.dm @@ -172,7 +172,8 @@ /datum/game_mode/proc/check_finished() //to be called by ticker if(replacementmode && round_converted == 2) return replacementmode.check_finished() - if(SSshuttle.emergency.mode >= SHUTTLE_ENDGAME || station_was_nuked) + if((SSshuttle.emergency && SSshuttle.emergency.mode >= SHUTTLE_ENDGAME) \ + || station_was_nuked) return 1 if(!round_converted && (!config.continuous[config_tag] || (config.continuous[config_tag] && config.midround_antag[config_tag]))) //Non-continuous or continous with replacement antags if(!continuous_sanity_checked) //make sure we have antags to be checking in the first place diff --git a/code/game/machinery/status_display.dm b/code/game/machinery/status_display.dm index b6745d10e64..087cb5b95f6 100644 --- a/code/game/machinery/status_display.dm +++ b/code/game/machinery/status_display.dm @@ -82,7 +82,7 @@ if(0) //blank remove_display() if(1) //emergency shuttle timer - if(SSshuttle.emergency.timer) + if(SSshuttle.emergency && SSshuttle.emergency.timer) var/line1 = "-[SSshuttle.emergency.getModeStr()]-" var/line2 = SSshuttle.emergency.getTimerStr() @@ -277,4 +277,4 @@ #undef FOND_SIZE #undef FONT_COLOR #undef FONT_STYLE -#undef SCROLL_SPEED \ No newline at end of file +#undef SCROLL_SPEED diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm index 8250dc66a64..47c439f0a4e 100644 --- a/code/game/objects/effects/spawners/lootdrop.dm +++ b/code/game/objects/effects/spawners/lootdrop.dm @@ -29,6 +29,14 @@ /obj/item/weapon/gun/projectile/automatic/pistol/deagle ) +/obj/effect/spawner/lootdrop/gambling + name = "gambling valuables spawner" + loot = list( + /obj/item/weapon/gun/projectile/revolver/russian = 5, + /obj/item/weapon/storage/box/syndie_kit/throwing_weapons = 1, + /obj/item/toy/cards/deck/syndicate = 2 + ) + /obj/effect/spawner/lootdrop/maintenance name = "maintenance loot spawner" diff --git a/code/game/objects/items/candle.dm b/code/game/objects/items/candle.dm index dde1c59f567..9a20f3b8e37 100644 --- a/code/game/objects/items/candle.dm +++ b/code/game/objects/items/candle.dm @@ -15,7 +15,8 @@ /obj/item/candle/New() ..() if(start_lit) - light() + // No visible message + light(null) /obj/item/candle/update_icon() var/i @@ -55,21 +56,22 @@ light() //honk return -/obj/item/candle/proc/light(var/flavor_text = "[usr] lights the [name].") +/obj/item/candle/proc/light(flavor_text = "[usr] lights the [name].") if(!src.lit) src.lit = 1 //src.damtype = "fire" - usr.visible_message(flavor_text) + if(flavor_text) + usr.visible_message(flavor_text) SetLuminosity(CANDLE_LUMINOSITY) - if(!infinite) - SSobj.processing |= src + SSobj.processing |= src update_icon() /obj/item/candle/process() if(!lit) return - wax-- + if(!infinite) + wax-- if(!wax) new/obj/item/trash/candle(src.loc) if(istype(src.loc, /mob)) @@ -111,4 +113,4 @@ infinite = 1 start_lit = 1 -#undef CANDLE_LUMINOSITY \ No newline at end of file +#undef CANDLE_LUMINOSITY diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm index 5d8f24fac88..415139938a2 100644 --- a/code/game/objects/structures/bedsheet_bin.dm +++ b/code/game/objects/structures/bedsheet_bin.dm @@ -176,6 +176,19 @@ LINEN BINS icon_state = "sheetian" item_color = "ian" +/obj/item/weapon/bedsheet/random + icon_state = "sheetrainbow" + item_color = "rainbow" + name = "random bedsheet" + desc = "If you're reading this description ingame, something has gone wrong! Honk!" + +/obj/item/weapon/bedsheet/random/New() + var/obj/item/weapon/bedsheet/B = pick(subtypesof(/obj/item/weapon/bedsheet) - /obj/item/weapon/bedsheet/random) + name = initial(B.name) + desc = initial(B.desc) + icon_state = initial(B.icon_state) + item_state = initial(B.item_state) + item_color = initial(B.item_color) /obj/structure/bedsheetbin name = "linen bin" diff --git a/code/game/objects/structures/showcase.dm b/code/game/objects/structures/showcase.dm index ca3fc4ba68f..23fed94f42d 100644 --- a/code/game/objects/structures/showcase.dm +++ b/code/game/objects/structures/showcase.dm @@ -25,4 +25,10 @@ /obj/structure/showcase/fakesec/New() overlays += "security" - overlays += "security_key" \ No newline at end of file + overlays += "security_key" + +/obj/structure/showcase/horrific_experiment + name = "horrific experiment" + desc = "Some sort of pod filled with blood and vicerea. You swear you can see it moving..." + icon = 'icons/obj/cloning.dmi' + icon_state = "pod_g" \ No newline at end of file diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index 11c21972abb..91c0770c04d 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -56,6 +56,8 @@ var/list/admin_verbs_admin = list( /client/proc/jumptoturf, /*allows us to jump to a specific turf*/ /client/proc/admin_call_shuttle, /*allows us to call the emergency shuttle*/ /client/proc/admin_cancel_shuttle, /*allows us to cancel the emergency shuttle, sending it back to centcom*/ + /client/proc/cmd_admin_destroy_shuttle, /* Destroys the emergency shuttle, allowing us to import a new shuttle template. Or just horribly fuck with the game. */ + /client/proc/cmd_admin_import_shuttle, /* Imports a emergency shuttle from a template, and sends it to its round start location. Probably should destroy the old one first.*/ /client/proc/cmd_admin_direct_narrate, /*send text directly to a player with no padding. Useful for narratives and fluff-text*/ /client/proc/cmd_admin_world_narrate, /*sends text to all players with no padding*/ /client/proc/cmd_admin_local_narrate, /*sends text to all mobs within view of atom*/ diff --git a/code/modules/admin/verbs/shuttles.dm b/code/modules/admin/verbs/shuttles.dm new file mode 100644 index 00000000000..50f262dcb5f --- /dev/null +++ b/code/modules/admin/verbs/shuttles.dm @@ -0,0 +1,118 @@ +/proc/emergency_sanity_check() + if(SSshuttle.emergency.mode != SHUTTLE_IDLE) + var/confirm = alert(src, "Modification of the emergency shuttle while it is not idle can be highly dangerous, and may result in WEIRD UNPREDICTABLE SHIT. Are you SURE you want to continue? Obviously if you're not touching the emergency shuttle, then you're probably fine.", "Confirm", "Yes", "No") + if(confirm == "Yes") + return TRUE + else + return FALSE + else + return TRUE + +/client/proc/cmd_admin_destroy_shuttle() + set category = "Admin" + set name = "Shuttle Destroy" + + if (!holder) + src << "Only administrators may use this command." + return + + if(!emergency_sanity_check()) + return + + var/list/names = list() + var/obj/docking_port/mobile/M + for (var/atom/AM in SSshuttle.mobile) + M = AM + names += M.name + + var/selected = input("Select shuttle to DESTROY", "Shuttles") as null|anything in names + + var/decide_against_msg = "You decide against destroying a shuttle." + + if(!selected) + src << decide_against_msg + return + + var/confirm = alert(src, "Are you sure you want to destroy [selected]?", "Confirm", "Yes", "No") + + if(confirm != "Yes") + src << decide_against_msg + return + + var/destroyed = FALSE + for (var/atom/AM in SSshuttle.mobile) + M = AM + if(M.name == selected) + M.jumpToNullSpace() + destroyed = TRUE + break + + if(!destroyed) + src << "Something went wrong, the selected shuttle doesn't exist anymore." + return + + log_admin("[key_name_admin(usr)] - ShuttleDestroy: [M]") + message_admins("[key_name_admin(usr)] has used ShuttleDestroy on [selected]
") + feedback_add_details("admin_verb","SHTDEL") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + +/client/proc/cmd_admin_import_shuttle() + set category = "Admin" + set name = "Shuttle Import" + + if (!holder) + src << "Only administrators may use this command." + return + + if(!emergency_sanity_check()) + return + + var/datum/map_template/template + var/map = input(usr, "Choose a Shuttle Template to import","Import Shuttle Template") as null|anything in shuttle_templates + if(!map) + return + template = shuttle_templates[map] + + if(alert(usr,"Confirm importing of [map]","Shuttle Import Confirm","Yes","No") != "Yes") + return + + var/turf/T = get_turf(locate("landmark*Shuttle Import")) + if(!T) + usr << "Shuttle import landmark not found. \ + Aborting." + template.load(T, centered = TRUE) + + var/obj/docking_port/mobile/M + + for(var/S in template.get_affected_turfs(T,centered = TRUE)) + for (var/AM in S) + if(istype(AM, /obj/docking_port/mobile)) + if(!M) + M = AM + else + usr << "More than one mobile docking port was detected ([AM]), this is a BAD THING, TELL A CODER." + if(istype(AM, /obj/docking_port/stationary)) + usr << "REEEEEEEEEEEE! THE LOADED TEMPLATE HAS [AM], A STATIONARY DOCKING PORT, THIS IS A BAD THING FIX IT. TELL A CODER. WE CAN DELETE IT BUT IT SHOULD NOT BE THERE." + var/obj/docking_port/stationary/bad = AM + bad.i_know_what_im_doing = TRUE + qdel(bad) + + if(!M) + usr << "The loaded template didn't have a mobile docking port! The template has been deleted." + for(var/S in template.get_affected_turfs(T,centered = TRUE)) + var/turf/T0 = S + for(var/atom/AM in T0.GetAllContents()) + if(istype(AM, /mob/dead)) + continue + qdel(AM) + qdel(S) + return + + var/status = M.dockRoundstart() + if(status) + log_admin("The imported shuttle [map]/[M] failed to travel to its roundstart \ + location (error code [status]). Please fix or delete the imported shuttle \ + before continuing any more shuttle import hijinks.") + + log_admin("[key_name_admin(usr)] - ShuttleImport: [map] - [M]") + message_admins("[key_name_admin(usr)] has used ShuttleImport: [map] - [M]
") + feedback_add_details("admin_verb","SHTIMP") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! diff --git a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm index bb635bb1425..0b680f72a48 100644 --- a/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm +++ b/code/modules/mob/living/simple_animal/friendly/drone/_drone.dm @@ -65,8 +65,8 @@ /mob/living/simple_animal/drone/New() ..() - - name = name + " ([rand(100,999)])" + if(name != initial(name)) + name = name + " ([rand(100,999)])" real_name = name access_card = new /obj/item/weapon/card/id(src) diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index 1dff4251d61..78a44680a2a 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -585,10 +585,10 @@ var/next_mob_id = 0 if (nextmap && istype(nextmap)) stat(null, "Next Map: [nextmap.friendlyname]") stat(null, "Server Time: [time2text(world.realtime, "YYYY-MM-DD hh:mm")]") - - var/ETA = SSshuttle.emergency.getModeStr() - if(ETA) - stat(null, "[ETA] [SSshuttle.emergency.getTimerStr()]") + if(SSshuttle.emergency) + var/ETA = SSshuttle.emergency.getModeStr() + if(ETA) + stat(null, "[ETA] [SSshuttle.emergency.getTimerStr()]") if(client && client.holder) diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm index a2cf5498555..a76a1af8263 100644 --- a/code/modules/power/supermatter/supermatter.dm +++ b/code/modules/power/supermatter/supermatter.dm @@ -62,6 +62,10 @@ var/has_been_powered = 0 var/has_reached_emergency = 0 + // For making hugbox supermatter + var/takes_damage = 1 + var/produces_gas = 1 + /obj/machinery/power/supermatter_shard/New() . = ..() poi_list |= src @@ -128,16 +132,24 @@ //Ok, get the air from the turf var/datum/gas_mixture/env = L.return_air() - //Remove gas from surrounding area - var/datum/gas_mixture/removed = env.remove(gasefficency * env.total_moles()) + var/datum/gas_mixture/removed + + if(produces_gas) + //Remove gas from surrounding area + removed = env.remove(gasefficency * env.total_moles()) + else + // Pass all the gas related code an empty gas container + removed = new() if(!removed || !removed.total_moles()) - damage += max((power-1600)/10, 0) + if(takes_damage) + damage += max((power-1600)/10, 0) power = min(power, 1600) return 1 damage_archived = damage - damage = max( damage + ( (removed.temperature - 800) / 150 ) , 0 ) + if(takes_damage) + damage = max( damage + ( (removed.temperature - 800) / 150 ) , 0 ) //Ok, 100% oxygen atmosphere = best reaction //Maxes out at 100% oxygen pressure var/removed_nitrogen = 0 @@ -181,11 +193,14 @@ removed.gases["o2"][MOLES] += max((device_energy + removed.temperature - T0C) / OXYGEN_RELEASE_MODIFIER, 0) - env.merge(removed) + if(produces_gas) + env.merge(removed) for(var/mob/living/carbon/human/l in view(src, min(7, round(power ** 0.25)))) // If they can see it without mesons on. Bad on them. if(!istype(l.glasses, /obj/item/clothing/glasses/meson)) - l.hallucination = max(0, min(200, l.hallucination + power * config_hallucination_power * sqrt( 1 / max(1, get_dist(l, src)) ) ) ) + var/D = sqrt(1 / max(1, get_dist(l, src))) + l.hallucination += power * config_hallucination_power * D + l.hallucination = Clamp(0, 200, l.hallucination) for(var/mob/living/l in range(src, round((power / 100) ** 0.25))) var/rads = (power / 10) * sqrt( 1 / max(get_dist(l, src),1) ) @@ -210,7 +225,7 @@ investigate_log("has been powered for the first time.", "supermatter") message_admins("[src] has been powered for the first time (JMP).") has_been_powered = 1 - else + else if(takes_damage) damage += Proj.damage * config_bullet_energy return 0 @@ -275,7 +290,7 @@ if(user.drop_item(W)) Consume(W) user.visible_message("As [user] touches \the [src] with \a [W], silence fills the room...",\ - "You touch \the [src] with \the [W], and everything suddenly goes silent.\"\n\The [W] flashes into dust as you flinch away from \the [src].",\ + "You touch \the [src] with \the [W], and everything suddenly goes silent.\n\The [W] flashes into dust as you flinch away from \the [src].",\ "Everything suddenly goes silent.") playsound(get_turf(src), 'sound/effects/supermatter.ogg', 50, 1) @@ -321,3 +336,9 @@ "The unearthly ringing subsides and you notice you have new radiation burns.", 2) else L.show_message("You hear an uneartly ringing and notice your skin is covered in fresh radiation burns.", 2) + +// When you wanna make a supermatter shard for the dramatic effect, but +// don't want it exploding suddenly +/obj/machinery/power/supermatter_shard/hugbox + takes_damage = 0 + produces_gas = 0 diff --git a/code/modules/shuttle/emergency.dm b/code/modules/shuttle/emergency.dm index 987cb75af14..acbcbb82fbe 100644 --- a/code/modules/shuttle/emergency.dm +++ b/code/modules/shuttle/emergency.dm @@ -76,8 +76,17 @@ /obj/docking_port/mobile/emergency/New() ..() + // The last created emergency shuttle will always be the one + // that we use. SSshuttle.emergency = src +/obj/docking_port/mobile/emergency/Destroy() + if(src.i_know_what_im_doing) + // This'll make the shuttle subsystem use the backup shuttle. + SSshuttle.emergencyDeregister() + + . = ..() + /obj/docking_port/mobile/emergency/timeLeft(divisor) if(divisor <= 0) divisor = 10 @@ -319,6 +328,24 @@ /obj/item/weapon/storage/pod/attack_hand(mob/user) return +/obj/docking_port/mobile/emergency/backup + name = "backup shuttle" + id = "backup" + dwidth = 2 + width = 8 + height = 8 + dir = 4 + + roundstart_move = "backup_away" + +/obj/docking_port/mobile/emergency/backup/New() + // We want to be a valid emergency shuttle + // but not be the main one, keep whatever's set + // valid. + var/current_emergency = SSshuttle.emergency + ..() + SSshuttle.emergency = current_emergency + SSshuttle.backup_shuttle = src #undef UNLAUNCHED diff --git a/code/modules/shuttle/manipulator.dm b/code/modules/shuttle/manipulator.dm new file mode 100644 index 00000000000..55913ab432f --- /dev/null +++ b/code/modules/shuttle/manipulator.dm @@ -0,0 +1,13 @@ +/obj/machinery/shuttle_manipulator + name = "shuttle manipulator" + desc = "I shall be telling this with a sigh\n\ + Somewhere ages and ages hence:\n\ + Two roads diverged in a wood, and I,\n\ + I took the one less traveled by,\n\ + And that has made all the difference." + + icon = 'icons/obj/machines/dominator.dmi' + icon_state = "dominator-blue" + +/obj/machinery/shuttle_manipulator/process() + return diff --git a/code/modules/shuttle/shuttle.dm b/code/modules/shuttle/shuttle.dm index 156eaea5e2d..2439ef13ce6 100644 --- a/code/modules/shuttle/shuttle.dm +++ b/code/modules/shuttle/shuttle.dm @@ -18,9 +18,18 @@ var/dwidth = 0 //position relative to covered area, perpendicular to dir var/dheight = 0 //position relative to covered area, parallel to dir + var/i_know_what_im_doing = 0 + //these objects are indestructable /obj/docking_port/Destroy() - return QDEL_HINT_LETMELIVE + // unless you assert that you know what you're doing. Horrible things + // may result. + if(!i_know_what_im_doing) + return QDEL_HINT_LETMELIVE + else + // If not removed immediately, it can interfere with the docking + // detection code, which is annoying and inconvinient. + return QDEL_HINT_HARDDEL_NOW /obj/docking_port/singularity_pull() return /obj/docking_port/singularity_act() @@ -143,7 +152,7 @@ //returns first-found touching shuttleport /obj/docking_port/stationary/get_docked() - return locate(/obj/docking_port/mobile) in loc + . = locate(/obj/docking_port/mobile) in loc /* for(var/turf/T in return_ordered_turfs()) . = locate(/obj/docking_port/mobile) in loc @@ -182,6 +191,11 @@ ..() SSshuttle.mobile += src +/obj/docking_port/mobile/Destroy() + if(i_know_what_im_doing) + SSshuttle.mobile -= src + . = ..() + /obj/docking_port/mobile/initialize() var/area/A = get_area(src) if(istype(A, /area/shuttle)) @@ -221,16 +235,32 @@ if(height-dheight > S.height-S.dheight) return 5 //check the dock isn't occupied - if(S.get_docked()) - return 6 + var/currently_docked = S.get_docked() + if(currently_docked) + // by someone other than us + if(currently_docked != src) + return 6 + else + // This isn't an error, per se, but we can't let the shuttle code + // attempt to move us where we currently are, it will get weird. + return SHUTTLE_ALREADY_DOCKED return 0 //0 means we can dock //call the shuttle to destination S /obj/docking_port/mobile/proc/request(obj/docking_port/stationary/S) - if(canDock(S)) - . = 1 - throw EXCEPTION("request(): shuttle cannot dock") - return 1 //we can't dock at S + var/status = canDock(S) + if(status == SHUTTLE_ALREADY_DOCKED) + // We're already docked there, don't need to do anything. + // Triggering shuttle movement code in place is weird + return + else if(status) + . = status + spawn(0) + var/msg = "request(): shuttle [src] cannot dock at [S], \ + error: [status]" + message_admins(msg) + throw EXCEPTION(msg) + return status //we can't dock at S switch(mode) if(SHUTTLE_CALL) @@ -294,16 +324,66 @@ pixel_x = oldPY pixel_y = (oldPX*(-1)) +/obj/docking_port/mobile/proc/jumpToNullSpace() + // Destroys the docking port and the shuttle contents. + // Not in a fancy way, it just ceases. + var/obj/docking_port/stationary/S0 = get_docked() + var/turf_type = /turf/open/space + var/area_type = /area/space + if(S0) + if(S0.turf_type) + turf_type = S0.turf_type + if(S0.area_type) + area_type = S0.area_type + + var/list/L0 = return_ordered_turfs(x, y, z, dir, areaInstance) + + //remove area surrounding docking port + if(areaInstance.contents.len) + var/area/A0 = locate("[area_type]") + if(!A0) + A0 = new area_type(null) + for(var/turf/T0 in L0) + A0.contents += T0 + + for(var/i=1, i<=L0.len, ++i) + var/turf/T0 = L0[i] + if(!T0) + continue + + for(var/atom/AM in T0.GetAllContents()) + if(istype(AM, /mob/dead)) + continue + qdel(AM) + + T0.ChangeTurf(turf_type) + + T0.redraw_lighting() + SSair.remove_from_active(T0) + T0.CalculateAdjacentTurfs() + SSair.add_to_active(T0,1) + + src.i_know_what_im_doing = TRUE + qdel(src) + //this is the main proc. It instantly moves our mobile port to stationary port S1 //it handles all the generic behaviour, such as sanity checks, closing doors on the shuttle, stunning mobs, etc -/obj/docking_port/mobile/proc/dock(obj/docking_port/stationary/S1) - . = canDock(S1) - if(.) - throw EXCEPTION("dock(): shuttle cannot dock") - return . +/obj/docking_port/mobile/proc/dock(obj/docking_port/stationary/S1, force=FALSE) + // Crashing this ship with NO SURVIVORS + if(!force) + var/status = canDock(S1) + if(status == 7) + return SHUTTLE_ALREADY_DOCKED + else if(status) + spawn(0) + var/msg = "dock(): shuttle [src] cannot dock at [S1], \ + error: [status]" + message_admins(msg) + throw EXCEPTION(msg) + return status - if(canMove()) - return -1 + if(canMove()) + return -1 closePortDoors() @@ -432,6 +512,24 @@ var/obj/docking_port/stationary/transit/T = SSshuttle.getDock("[id]_transit") if(T && !canDock(T)) return T + +/obj/docking_port/mobile/proc/findRoundstartDock() + var/obj/docking_port/stationary/D + D = SSshuttle.getDock(roundstart_move) + + if(D) + return D + +/obj/docking_port/mobile/proc/dockRoundstart() + // Instead of spending a lot of time trying to work out where to place + // our shuttle, just create it somewhere empty and send it to where + // it should go + var/obj/docking_port/stationary/D = findRoundstartDock() + return dock(D) + +/obj/effect/landmark/shuttle_import + name = "Shuttle Import" + /* commented out due to issues with rotation for(var/obj/docking_port/stationary/transit/S in SSshuttle.transit) if(S.id) diff --git a/sound/effects/mulebeep1.ogg b/sound/effects/mulebeep1.ogg new file mode 100644 index 0000000000000000000000000000000000000000..a35e336f99e81f4daf198d982683f9139a15b1c2 GIT binary patch literal 77575 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�_DR&KFSK>59B*_!h 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 literal 0 HcmV?d00001 diff --git a/tgstation.dme b/tgstation.dme index fc85ee4a9ce..50fa5be7eb0 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -162,6 +162,7 @@ #include "code\datums\outfit.dm" #include "code\datums\progressbar.dm" #include "code\datums\recipe.dm" +#include "code\datums\shuttles.dm" #include "code\datums\votablemap.dm" #include "code\datums\diseases\_disease.dm" #include "code\datums\diseases\_MobProcs.dm" @@ -834,6 +835,7 @@ #include "code\modules\admin\verbs\pray.dm" #include "code\modules\admin\verbs\randomverbs.dm" #include "code\modules\admin\verbs\reestablish_db_connection.dm" +#include "code\modules\admin\verbs\shuttles.dm" #include "code\modules\admin\verbs\tripAI.dm" #include "code\modules\admin\verbs\SDQL2\SDQL_2.dm" #include "code\modules\admin\verbs\SDQL2\SDQL_2_parser.dm" @@ -1641,6 +1643,7 @@ #include "code\modules\shuttle\computer.dm" #include "code\modules\shuttle\emergency.dm" #include "code\modules\shuttle\ferry.dm" +#include "code\modules\shuttle\manipulator.dm" #include "code\modules\shuttle\shuttle.dm" #include "code\modules\shuttle\supply.dm" #include "code\modules\shuttle\syndicate.dm"