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 00000000000..a35e336f99e Binary files /dev/null and b/sound/effects/mulebeep1.ogg differ 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"