Merge branch 'master' of https://github.com/tgstation/-tg-station into crafting-tgui

Conflicts:
	tgui/assets/tgui.css
	tgui/assets/tgui.js
This commit is contained in:
Remie Richards
2016-05-28 00:24:58 +01:00
434 changed files with 14036 additions and 5770 deletions
+2
View File
@@ -180,3 +180,5 @@ Temporary Items
.apdisk
*.before
+14 -3
View File
@@ -41,7 +41,7 @@ Maintainers can revert your changes if they feel they are not worth maintaining
As mentioned before, you are expected to follow these specifications in order to make everyone's lives easier, it will also save you and us time, with having to make the changes and us having to tell you what to change. Thank you for reading this section.
###Object Oriented code
###Object Oriented code
As BYOND's Dream Maker is an object oriented language, code must be object oriented when possible in order to be more flexible when adding content to it. If you are unfamiliar with this concept, it is highly recommended you look it up.
###All Byond paths must contain the full path.
@@ -63,7 +63,7 @@ datum
code
proc2()
code
datum2
varname1 = 0
proc
@@ -135,9 +135,20 @@ Copying code from one place to another maybe suitable for small short time proje
Instead you can use object orientation, or simply placing repeated code in a function, to obey this specification easily.
###Startup/Runtime tradeoffs with lists and the "hidden" init proc
First, read the comments in this byond thread, starting here:http://www.byond.com/forum/?post=2086980&page=2#comment19776775
There are two key points here:
1) Defining a list in the type definition incurs a hidden proc call - init, if you must define a list at startup, do so in New() and avoid the overhead of a second call (init() and then new())
2)Offsets list creation overhead to the point where the list is actually required (which for many objects, may be never at all).
Remember, this tradeoff makes sense in many cases but not all, you should think carefully about your implementation before deciding if this is an appropriate thing to do
###No magic numbers or strings
Make these #defines with a name that more clearly states what it's for.
###Control statements:
(if,while,for,etc)
@@ -1,53 +0,0 @@
"a" = (/turf/closed/mineral/volcanic/lava_land_surface,/area/lavaland/surface/outdoors)
"b" = (/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors)
"c" = (/turf/closed/wall/r_wall,/area/ruin/powered)
"d" = (/obj/structure/closet,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
"e" = (/obj/structure/closet,/mob/living/simple_animal/hostile/zombie,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
"f" = (/obj/structure/punching_bag,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
"g" = (/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
"h" = (/obj/structure/window{icon_state = "window";dir = 1},/obj/item/weapon/shard{icon_state = "medium"},/mob/living/simple_animal/hostile/zombie/gymboss,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
"i" = (/obj/structure/window{icon_state = "window";dir = 1},/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
"j" = (/obj/structure/window{icon_state = "window";dir = 1},/obj/structure/window{icon_state = "window";dir = 4},/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
"k" = (/obj/effect/decal/cleanable/blood,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
"l" = (/obj/structure/weightlifter,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
"m" = (/obj/structure/window{icon_state = "window";dir = 8},/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
"n" = (/obj/structure/window{icon_state = "window";dir = 4},/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
"o" = (/obj/structure/stacklifter,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
"p" = (/obj/structure/window,/obj/structure/window{icon_state = "window";dir = 8},/obj/effect/decal/cleanable/blood,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
"q" = (/obj/structure/window,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
"r" = (/obj/structure/window,/obj/item/weapon/shard,/mob/living/simple_animal/hostile/zombie/darkholme,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
"s" = (/obj/effect/decal/cleanable/blood/tracks{tag = "icon-splatter4 (NORTH)";icon_state = "splatter4";dir = 1},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors)
"t" = (/obj/effect/decal/cleanable/blood/tracks{tag = "icon-splatter6 (EAST)";icon_state = "splatter6";dir = 4},/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (NORTH)";icon_state = "tracks";dir = 1},/obj/effect/decal/cleanable/blood/tracks{tag = "icon-gib3";icon_state = "gib3"},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors)
"u" = (/obj/machinery/door/airlock/external,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
"v" = (/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (EAST)";icon_state = "tracks";dir = 4},/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (NORTHEAST)";icon_state = "tracks";dir = 5},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors)
"w" = (/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (EAST)";icon_state = "tracks";dir = 4},/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (SOUTHEAST)";icon_state = "tracks";dir = 6},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors)
"x" = (/obj/effect/decal/cleanable/blood/tracks{tag = "icon-splatter5";icon_state = "splatter5"},/obj/effect/decal/cleanable/blood/tracks{tag = "icon-tracks (EAST)";icon_state = "tracks";dir = 4},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors)
"y" = (/obj/effect/decal/cleanable/blood/tracks{tag = "icon-splatter4 (NORTH)";icon_state = "splatter4";dir = 1},/obj/effect/decal/cleanable/blood/tracks{tag = "icon-splatter6 (NORTH)";icon_state = "splatter6";dir = 1},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors)
"z" = (/obj/effect/decal/cleanable/blood/tracks{tag = "icon-splatter5";icon_state = "splatter5"},/turf/open/floor/plating/asteroid/basalt/lava_land_surface,/area/lavaland/surface/outdoors)
"A" = (/mob/living/simple_animal/hostile/zombie,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
"B" = (/obj/structure/window{icon_state = "window";dir = 1},/obj/machinery/shower,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
"C" = (/obj/structure/window{icon_state = "window";dir = 1},/obj/machinery/shower,/mob/living/simple_animal/hostile/zombie,/turf/open/floor/plasteel/freezer{baseturf = /turf/open/floor/plating/lava/smooth},/area/ruin/powered)
"D" = (/turf/template_noop,/area/template_noop)
(1,1,1) = {"
DDDDDDDDDDDDDDDDDDDD
DDDDDDDDDDDDDDDDDDDD
DDDDDDDDDDDDDDDDDDDD
DDDDDDDDDDDDDDDDDDDD
DDDccccccccccccDDDDD
DDDcdeddddddedcbDDDD
DDDcfgghiijkglcbaDDD
DDDcfggmgkngglcbbbDD
DDDcfggmggnggocbbbDD
DDDcfggpqqrggocstbbD
DDDcgkgggggggkuvwxbD
DDDcuucccccccccyzbbD
DDDcgAgggggggAcbbbbD
DDDcggggggAgggcbbbDD
DDDcBCBBggBBBBcbbDDD
DDDcgggggggAggcbDDDD
DDDccccccccccccbDDDD
DDDDDDDDDDDDDDDDDDDD
DDDDDDDDDDDDDDDDDDDD
DDDDDDDDDDDDDDDDDDDD
"}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -1410,7 +1410,7 @@
"aBf" = (/obj/machinery/light/small{dir = 8},/turf/open/floor/plasteel/white,/area/maintenance/asmaint2)
"aBg" = (/obj/item/clothing/gloves/color/latex/nitrile,/turf/open/floor/plasteel/white,/area/maintenance/asmaint2)
"aBh" = (/turf/open/floor/plasteel/white,/area/maintenance/asmaint2)
"aBi" = (/obj/structure/table,/obj/item/weapon/wirerod,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/restraints/handcuffs,/obj/item/clothing/tie/stethoscope,/turf/open/floor/plasteel/white,/area/space)
"aBi" = (/obj/structure/table,/obj/item/weapon/melee/baton/cattleprod,/obj/item/weapon/reagent_containers/syringe,/obj/item/weapon/restraints/handcuffs,/obj/item/clothing/tie/stethoscope,/turf/open/floor/plasteel/white,/area/space)
"aBj" = (/obj/machinery/light,/turf/open/floor/plasteel,/area/quartermaster/miningdock{name = "\improper Mining Office"})
"aBk" = (/obj/structure/cable/cyan{icon_state = "1-2"},/turf/open/floor/plating,/area/quartermaster/miningdock{name = "\improper Mining Office"})
"aBl" = (/obj/machinery/portable_atmospherics/canister/air,/turf/open/floor/plating,/area/quartermaster/miningdock{name = "\improper Mining Office"})
@@ -12173,7 +12173,7 @@
"ayJ" = (
/obj/structure/rack,
/obj/item/weapon/lipstick/jade,
/obj/item/weapon/wirerod,
/obj/item/weapon/melee/baton/cattleprod,
/obj/effect/spawner/lootdrop/maintenance{
lootcount = 3;
name = "3maintenance loot spawner"
@@ -77150,7 +77150,7 @@
tag = "icon-1-2";
icon_state = "1-2"
},
/obj/item/weapon/wirerod,
/obj/item/weapon/melee/baton/cattleprod,
/turf/open/floor/plating/airless,
/area/engine/engineering)
"cQP" = (
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+229 -208
View File
@@ -1625,7 +1625,11 @@
/turf/open/floor/plasteel/black,
/area/centcom/ferry)
"eP" = (
/obj/structure/flora/kirbyplants,
/obj/machinery/door/airlock/centcom{
name = "Centcom Backup Docks";
opacity = 1;
req_access_txt = "101"
},
/turf/open/floor/plasteel/black,
/area/centcom/ferry)
"eQ" = (
@@ -1658,12 +1662,11 @@
/turf/open/floor/plasteel/black,
/area/centcom/ferry)
"eU" = (
/obj/structure/sign/map/left,
/turf/open/floor/light,
/obj/machinery/shuttle_manipulator,
/turf/open/floor/plasteel/circuit,
/area/centcom/ferry)
"eV" = (
/obj/structure/sign/map/right,
/turf/open/floor/light,
/turf/open/floor/plasteel/circuit,
/area/centcom/ferry)
"eW" = (
/obj/structure/extinguisher_cabinet{
@@ -2358,11 +2361,11 @@
"hh" = (
/obj/docking_port/stationary{
dir = 4;
dwidth = 9;
height = 11;
dwidth = 25;
height = 50;
id = "emergency_away";
name = "Centcom";
width = 22
name = "Centcom Emergency Shuttle Dock";
width = 50
},
/turf/open/space,
/area/space)
@@ -5875,12 +5878,12 @@
/area/shuttle/escape)
"rN" = (
/obj/machinery/status_display{
layer = 4;
pixel_x = 0;
pixel_y = 32
density = 0;
pixel_y = 32;
supply_display = 1
},
/turf/open/floor/plasteel/shuttle/white,
/area/shuttle/escape)
/turf/open/floor/plasteel/black,
/area/centcom/ferry)
"rO" = (
/turf/open/floor/plasteel/shuttle/white,
/area/shuttle/escape)
@@ -5897,7 +5900,9 @@
name = "Backup Shuttle Dock";
width = 8
},
/obj/docking_port/mobile/emergency/backup,
/obj/docking_port/mobile/emergency/backup{
dwidth = 3
},
/turf/open/floor/plating,
/area/shuttle/escape)
"rR" = (
@@ -5924,21 +5929,37 @@
/turf/open/space/transit,
/area/space)
"rU" = (
/obj/structure/flora/kirbyplants,
/obj/machinery/status_display{
density = 0;
pixel_y = -30;
supply_display = 1
pixel_y = 32
},
/turf/open/floor/plasteel/shuttle/white,
/area/shuttle/escape)
/turf/open/floor/plasteel/black,
/area/centcom/ferry)
"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,
/obj/structure/lattice,
/turf/open/space,
/area/space)
"rX" = (
/obj/machinery/status_display,
/turf/closed/wall/shuttle/smooth,
/area/shuttle/escape)
"rY" = (
/turf/open/floor/plasteel/darkwarning{
tag = "icon-warndark (EAST)";
icon_state = "warndark";
dir = 4
},
/area/centcom/ferry)
"rZ" = (
/obj/machinery/door/airlock/external{
name = "Backup Emergency Escape Shuttle"
},
/turf/open/floor/plasteel/delivery,
/area/centcom/ferry)
(1,1,1) = {"
@@ -36889,7 +36910,7 @@ ab
ab
ab
ab
ab
rL
ab
ab
ab
@@ -38457,7 +38478,7 @@ ab
ab
ab
eJ
eO
rN
eO
eS
eO
@@ -38710,11 +38731,11 @@ ab
ab
ab
ab
ab
ab
ab
eJ
eP
eJ
eJ
eJ
rU
eO
eO
eO
@@ -38967,11 +38988,11 @@ ab
ab
ab
ab
ab
ab
ab
eJ
rW
eO
eO
eP
eO
eO
eO
eW
@@ -39224,9 +39245,9 @@ ab
ab
ab
ab
ab
ab
ab
eJ
rY
eJ
eJ
eJ
eJ
@@ -39481,9 +39502,9 @@ ab
ab
ab
ab
ab
ab
ab
eJ
fQ
eJ
ab
ab
ab
@@ -39738,9 +39759,9 @@ ab
ab
ab
ab
ab
ab
ab
eJ
rZ
eJ
ab
ab
ab
@@ -39994,14 +40015,14 @@ ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
rM
rM
rQ
rM
rM
rM
rM
rM
ab
ab
eJ
@@ -40251,14 +40272,14 @@ ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
rX
rO
rO
rO
rO
rO
rO
rX
ab
ab
eJ
@@ -40508,14 +40529,14 @@ ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
rM
rO
rO
rO
rO
rO
rO
rM
ab
ab
fh
@@ -40765,14 +40786,14 @@ ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
rM
rP
rP
rP
rP
rO
rP
rM
ab
ab
fh
@@ -41022,14 +41043,14 @@ ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
rM
rP
rP
rP
rP
rO
rP
rM
ab
ab
fh
@@ -41279,14 +41300,14 @@ ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
rM
rO
rR
rO
rO
rO
rO
rM
ab
ab
fh
@@ -41536,14 +41557,14 @@ ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
rX
rO
rS
rV
rO
rO
rO
rX
ab
ab
fh
@@ -41793,14 +41814,14 @@ ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
rM
rM
rM
rM
rM
rM
rM
rM
ab
ab
fh
@@ -57018,7 +57039,7 @@ ab
ab
ab
ab
rL
ab
ab
ab
ab
@@ -64829,16 +64850,16 @@ df
dg
cT
ab
ad
ad
ad
ad
ad
ad
ad
ad
ad
ad
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
@@ -65086,16 +65107,16 @@ cT
cT
cT
ab
ad
rM
rM
rQ
rM
rM
rM
rM
rM
ad
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
@@ -65343,16 +65364,16 @@ cU
ad
ab
ab
ad
rM
rN
rO
rO
rO
rO
rU
rM
ad
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
@@ -65600,16 +65621,16 @@ cV
ad
ab
ab
ad
rM
rO
rO
rO
rO
rO
rO
rM
ad
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
@@ -65857,16 +65878,16 @@ cV
ad
ab
ab
ad
rM
rP
rP
rP
rP
rO
rP
rM
ad
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
@@ -66114,16 +66135,16 @@ cV
ad
ab
ab
ad
rM
rP
rP
rP
rP
rO
rP
rM
ad
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
@@ -66371,16 +66392,16 @@ cV
ad
ab
ab
ad
rM
rO
rR
rO
rO
rO
rO
rM
ad
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
@@ -66628,16 +66649,16 @@ cV
ad
ab
ab
ad
rM
rN
rS
rV
rO
rO
rU
rM
ad
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
@@ -66885,16 +66906,16 @@ cV
ad
ab
ab
ad
rM
rM
rM
rM
rM
rM
rM
rM
ad
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
@@ -67142,16 +67163,16 @@ cV
ad
ab
ab
ad
ad
ad
ad
ad
ad
ad
ad
ad
ad
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
ab
@@ -71473,6 +71494,6 @@ ab
ab
ab
ab
ab
ab
rW
rW
"}
+1 -1
View File
@@ -14,7 +14,7 @@
"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)
"q" = (/obj/machinery/door/airlock/shuttle{name = "Supply Shuttle Airlock"; req_access_txt = "31"},/obj/docking_port/mobile/supply{dwidth = 3; width = 10; timid = 1},/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)
+1 -1
View File
@@ -6,7 +6,7 @@
"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)
"i" = (/obj/machinery/door/airlock/shuttle{name = "Supply Shuttle Airlock"; req_access_txt = "31"},/obj/docking_port/mobile/supply{dwidth = 5; width = 12; timid = 1},/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)
+4 -4
View File
@@ -5,15 +5,15 @@
"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)
"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)
"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)
"o" = (/obj/docking_port/mobile/emergency{name = "Shuttle Under Construction";timid = 1},/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)
+86 -64
View File
@@ -4,83 +4,105 @@
"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)
"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)
"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)
"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)
"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)
"aw" = (/obj/structure/piano,/turf/open/floor/plasteel/bar,/area/shuttle/escape)
"ax" = (/obj/structure/chair/stool,/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)
"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/bardrone,/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)
"aF" = (/obj/structure/table/wood/bar{boot_dir = 9},/turf/open/floor/plasteel/bar,/area/shuttle/escape)
"aG" = (/obj/structure/table/wood/bar,/turf/open/floor/plasteel/bar,/area/shuttle/escape)
"aH" = (/obj/structure/table/wood/bar{boot_dir = 8},/turf/open/floor/plasteel/bar,/area/shuttle/escape)
"aI" = (/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)
"aJ" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/obj/docking_port/mobile/emergency{name = "The Emergency Escape Bar";timid = 1},/turf/open/floor/plasteel/bar,/area/shuttle/escape)
"aK" = (/mob/living/simple_animal/hostile/alien/maid/barmaid,/turf/open/floor/plasteel/bar,/area/shuttle/escape)
"aL" = (/obj/structure/table,/obj/machinery/chem_dispenser/drinks/beer,/turf/open/floor/plasteel/bar,/area/shuttle/escape)
"aM" = (/obj/structure/chair,/turf/open/floor/plasteel/bar,/area/shuttle/escape)
"aN" = (/mob/living/simple_animal/drone/snowflake/bardrone,/turf/open/floor/plasteel/bar,/area/shuttle/escape)
"aO" = (/obj/machinery/vending/boozeomat,/turf/open/floor/plasteel/bar,/area/shuttle/escape)
"aP" = (/obj/structure/table,/turf/open/floor/plasteel/bar,/area/shuttle/escape)
"aQ" = (/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)
"aR" = (/obj/structure/table,/obj/machinery/chem_dispenser/drinks,/turf/open/floor/plasteel/bar,/area/shuttle/escape)
"aS" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/bar,/area/shuttle/escape)
"aT" = (/obj/structure/table/wood/bar{boot_dir = 10},/turf/open/floor/plasteel/bar,/area/shuttle/escape)
"aU" = (/obj/structure/table/wood/bar{boot_dir = 2},/turf/open/floor/plasteel/bar,/area/shuttle/escape)
"aV" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/turf/open/floor/plasteel/bar,/area/shuttle/escape)
"aW" = (/obj/structure/chair/stool,/turf/open/floor/wood,/area/shuttle/escape)
"aX" = (/obj/structure/table/wood/poker,/obj/effect/spawner/lootdrop/gambling,/turf/open/floor/wood,/area/shuttle/escape)
"aY" = (/obj/structure/extinguisher_cabinet{pixel_x = 0;pixel_y = -30},/turf/open/floor/plasteel/bar,/area/shuttle/escape)
"aZ" = (/obj/machinery/vending/cigarette,/turf/open/floor/plasteel/bar,/area/shuttle/escape)
"ba" = (/obj/machinery/door/airlock{name = "Unisex Restrooms";req_access_txt = "0"},/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape)
"bb" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape)
"bc" = (/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape)
"bd" = (/obj/structure/extinguisher_cabinet{pixel_x = -5;pixel_y = 30},/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape)
"be" = (/obj/structure/sink{dir = 4;icon_state = "sink";pixel_x = 11;pixel_y = 0},/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape)
"bf" = (/obj/machinery/door/airlock{name = "Unit 1"},/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape)
"bg" = (/obj/machinery/door/airlock{name = "Unit 2"},/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape)
"bh" = (/obj/machinery/door/airlock{name = "Unit B"},/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape)
"bi" = (/obj/structure/closet/jcloset,/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape)
"bj" = (/obj/structure/toilet{dir = 1},/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape)
"bk" = (/obj/machinery/recharge_station,/turf/open/floor/plasteel{icon_state = "freezerfloor"},/area/shuttle/escape)
"bl" = (/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)
"bm" = (/obj/structure/window/reinforced{dir = 1},/obj/structure/shuttle/engine/heater,/turf/open/floor/plating/airless,/area/shuttle/escape)
"bn" = (/obj/structure/shuttle/engine/propulsion,/turf/open/floor/plating/airless,/area/shuttle/escape)
"bE" = (/turf/closed/wall/shuttle{tag = "icon-gwall_space (EAST)";icon_state = "gwall_space";dir = 4},/area/shuttle/escape)
"bD" = (/turf/closed/wall/shuttle{tag = "icon-wall3";icon_state = "wall3";dir = 2},/area/shuttle/escape)
"bC" = (/turf/closed/wall/shuttle{tag = "icon-gwall_space";icon_state = "gwall_space";dir = 2},/area/shuttle/escape)
"bB" = (/turf/closed/wall/shuttle{icon_state = "swall11";dir = 2},/area/shuttle/escape)
"bA" = (/turf/closed/wall/shuttle{icon_state = "swallc2";dir = 2},/area/shuttle/escape)
"bz" = (/turf/closed/wall/shuttle{icon_state = "swall1";dir = 2},/area/shuttle/escape)
"by" = (/turf/closed/wall/shuttle{icon_state = "swall7";dir = 2},/area/shuttle/escape)
"bx" = (/turf/closed/wall/shuttle{icon_state = "swall4";dir = 2},/area/shuttle/escape)
"bw" = (/turf/closed/wall/shuttle{icon_state = "swall8";dir = 2},/area/shuttle/escape)
"bv" = (/turf/closed/wall/shuttle{icon_state = "swall14";dir = 2},/area/shuttle/escape)
"bu" = (/turf/closed/wall/shuttle{icon_state = "swall12";dir = 2},/area/shuttle/escape)
"bt" = (/turf/closed/wall/shuttle{tag = "icon-swall13";icon_state = "swall13";dir = 2},/area/shuttle/escape)
"bs" = (/turf/closed/wall/shuttle{icon_state = "swall3";dir = 2},/area/shuttle/escape)
"br" = (/turf/closed/wall/shuttle{tag = "icon-swallc3";icon_state = "swallc3";dir = 2},/area/shuttle/escape)
"bq" = (/turf/closed/wall/shuttle{icon_state = "swallc4";dir = 2},/area/shuttle/escape)
"bp" = (/turf/closed/wall/shuttle{icon_state = "swall_s10";dir = 2},/area/shuttle/escape)
"bo" = (/turf/closed/wall/shuttle{icon_state = "swall_s6";dir = 2},/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
aaaaboacacacacacbpaaaa
aabobqadaeafaeagbrbpaa
aabsahaiajajajakalbsaa
aabsamanaoapajakaqbsaa
bobtbububvbwarasbxbtbp
bsatatatacauavavawaxac
bsayazazaAavavavavavbs
aBaCaDaDacavaEaFaGaGac
bybubububqavaEaHavaIbs
aJavavavavavaEaHaKaLbs
bsaMaMaMavavaEaHaNaObs
acaPaQaPavavaEaHavaRac
acaSaSaSavavaEaHavavac
acavavavavavaEaTaUaUac
bzavavavavavavavavavbs
aVavaWaXaWaYavavavaZbs
bAbububububububwbabxbB
bbbcbcbcbcbcbdbcbcbeac
bsbfabbgabbhabbibcbebs
bzbjbzbjbzbkbzblbcbeac
bCbDbmbmbmbmbmbmbmbDbE
aabDbnbnbnbnbnbnbnbDaa
"}
+31 -31
View File
@@ -1,63 +1,63 @@
"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)
"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)
"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)
"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)
"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)
"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)
"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)
"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)
"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)
"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)
"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)
"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)
"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;timid = 1},/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)
"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)
"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)
"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)
"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) = {"
+30 -30
View File
@@ -1,65 +1,65 @@
"aa" = (/turf/open/space,/area/space)
"ab" = (/turf/closed/wall/shuttle{icon_state = "swall_s6"; dir = 2},/area/shuttle/escape)
"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)
"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)
"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)
"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)
"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)
"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)
"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)
"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)
"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)
"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{timid = 1},/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)
"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)
"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)
"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)
"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)
"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)
"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) = {"
+28 -28
View File
@@ -1,64 +1,64 @@
"aa" = (/turf/open/space,/area/space)
"ab" = (/turf/closed/wall/shuttle{icon_state = "swall_s6"; dir = 2},/area/shuttle/escape)
"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)
"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)
"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)
"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)
"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)
"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)
"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/quiet{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)
"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)
"aL" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/obj/docking_port/mobile/emergency{name = "Snappop(tm)!";timid = 1},/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)
"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)
"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)
"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)
"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)
"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)
"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)
"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) = {"
+19 -13
View File
@@ -1,18 +1,18 @@
"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)
"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)
"j" = (/obj/machinery/status_display,/turf/closed/wall/shuttle{icon_state = "swall3"},/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;timid = 1},/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)
"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)
@@ -20,20 +20,26 @@
"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)
"B" = (/turf/closed/wall/shuttle{tag = "icon-wall3 (WEST)";icon_state = "wall3";dir = 8},/area/shuttle/escape)
"A" = (/turf/closed/wall/shuttle{icon_state = "swall1";dir = 2},/area/shuttle/escape)
"z" = (/turf/closed/wall/shuttle{icon_state = "swall2";dir = 2},/area/shuttle/escape)
"y" = (/turf/closed/wall/shuttle{icon_state = "swall3"},/area/shuttle/escape)
"x" = (/turf/closed/wall/shuttle{icon_state = "swall_s10";dir = 2},/area/shuttle/escape)
"w" = (/turf/closed/wall/shuttle{icon_state = "swall_s6";dir = 2},/area/shuttle/escape)
(1,1,1) = {"
abbba
cdefa
wbbbx
cdefy
aghij
kllma
anloa
kllmy
znloy
bnlob
bnlob
bnlpb
anlpa
qllra
aslra
qllma
attta
Anlpy
qllry
aslry
qllmA
BtttB
uvvvu
"}
+26 -26
View File
@@ -1,45 +1,45 @@
"a" = (/turf/open/space,/area/space)
"b" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion"; dir = 4},/turf/open/floor/plating,/area/shuttle/escape)
"c" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 8},/turf/open/floor/plating,/area/shuttle/escape)
"d" = (/turf/closed/wall/shuttle{tag = "icon-swall0"; icon_state = "swall0"},/area/shuttle/escape)
"e" = (/turf/closed/wall/shuttle{tag = "icon-wall_space (NORTH)"; icon_state = "wall_space"; dir = 1},/area/shuttle/escape)
"f" = (/turf/closed/wall/shuttle{tag = "icon-swall2"; icon_state = "swall2"},/area/shuttle/escape)
"b" = (/obj/structure/shuttle/engine/propulsion{icon_state = "propulsion";dir = 4},/turf/open/floor/plating,/area/shuttle/escape)
"c" = (/obj/structure/shuttle/engine/heater{icon_state = "heater";dir = 8},/turf/open/floor/plating,/area/shuttle/escape)
"d" = (/turf/closed/wall/shuttle{tag = "icon-swall0";icon_state = "swall0"},/area/shuttle/escape)
"e" = (/turf/closed/wall/shuttle{tag = "icon-wall_space (NORTH)";icon_state = "wall_space";dir = 1},/area/shuttle/escape)
"f" = (/turf/closed/wall/shuttle{tag = "icon-swall2";icon_state = "swall2"},/area/shuttle/escape)
"g" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape)
"h" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/obj/docking_port/mobile/emergency{dheight = 0; dir = 2; dwidth = 9; name = "NES Port"; width = 19},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape)
"i" = (/turf/closed/wall/shuttle{tag = "icon-wall_space (WEST)"; icon_state = "wall_space"; dir = 8},/area/shuttle/escape)
"j" = (/turf/closed/wall/shuttle{tag = "icon-swall4"; icon_state = "swall4"},/area/shuttle/escape)
"k" = (/turf/closed/wall/shuttle{tag = "icon-swall12"; icon_state = "swall12"},/area/shuttle/escape)
"l" = (/obj/machinery/vending/wallmed,/turf/closed/wall/shuttle{tag = "icon-swall8"; icon_state = "swall8"},/area/shuttle/escape)
"h" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/obj/docking_port/mobile/emergency{dheight = 0;dir = 2;dwidth = 9;name = "NES Port";width = 19;timid = 1},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape)
"i" = (/turf/closed/wall/shuttle{tag = "icon-wall_space (WEST)";icon_state = "wall_space";dir = 8},/area/shuttle/escape)
"j" = (/turf/closed/wall/shuttle{tag = "icon-swall4";icon_state = "swall4"},/area/shuttle/escape)
"k" = (/turf/closed/wall/shuttle{tag = "icon-swall12";icon_state = "swall12"},/area/shuttle/escape)
"l" = (/obj/machinery/vending/wallmed,/turf/closed/wall/shuttle{tag = "icon-swall8";icon_state = "swall8"},/area/shuttle/escape)
"m" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape)
"n" = (/turf/closed/wall/shuttle{tag = "icon-swall1"; icon_state = "swall1"},/area/shuttle/escape)
"n" = (/turf/closed/wall/shuttle{tag = "icon-swall1";icon_state = "swall1"},/area/shuttle/escape)
"o" = (/turf/open/floor/plasteel/shuttle,/area/shuttle/escape)
"p" = (/obj/structure/shuttle/engine/heater{icon_state = "heater"; dir = 8},/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/turf/open/floor/plating,/area/shuttle/escape)
"q" = (/obj/machinery/sleeper{icon_state = "sleeper-open"; dir = 4},/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape)
"p" = (/obj/structure/shuttle/engine/heater{icon_state = "heater";dir = 8},/obj/structure/window/reinforced{dir = 4;pixel_x = 0},/turf/open/floor/plating,/area/shuttle/escape)
"q" = (/obj/machinery/sleeper{icon_state = "sleeper-open";dir = 4},/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape)
"r" = (/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape)
"s" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape)
"t" = (/turf/closed/wall/shuttle{tag = "icon-wall_floor"; icon_state = "wall_floor"},/area/shuttle/escape)
"t" = (/turf/closed/wall/shuttle{tag = "icon-wall_floor";icon_state = "wall_floor"},/area/shuttle/escape)
"u" = (/turf/open/space,/area/shuttle/escape)
"v" = (/obj/structure/table,/obj/effect/spawner/lootdrop/maintenance,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape)
"w" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Infirmary"},/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape)
"x" = (/obj/structure/window/shuttle,/obj/structure/grille,/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape)
"y" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/toolbox/emergency,/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape)
"z" = (/obj/structure/table/reinforced,/obj/item/device/radio,/obj/structure/window/reinforced{dir = 1; layer = 2.9},/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape)
"z" = (/obj/structure/table/reinforced,/obj/item/device/radio,/obj/structure/window/reinforced{dir = 1;layer = 2.9},/obj/structure/window/reinforced{dir = 4;pixel_x = 0},/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape)
"A" = (/obj/structure/chair/comfy/brown{dir = 4},/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape)
"B" = (/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/window/reinforced{dir = 1},/obj/structure/table/reinforced,/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape)
"C" = (/turf/closed/wall/shuttle{tag = "icon-swall8"; icon_state = "swall8"},/area/shuttle/escape)
"D" = (/turf/closed/wall/shuttle{tag = "icon-swall3"; icon_state = "swall3"},/area/shuttle/escape)
"E" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Cockpit"; req_access_txt = "19"},/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape)
"B" = (/obj/structure/window/reinforced{dir = 4;pixel_x = 0},/obj/structure/window/reinforced{dir = 1},/obj/structure/table/reinforced,/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape)
"C" = (/turf/closed/wall/shuttle{tag = "icon-swall8";icon_state = "swall8"},/area/shuttle/escape)
"D" = (/turf/closed/wall/shuttle{tag = "icon-swall3";icon_state = "swall3"},/area/shuttle/escape)
"E" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Cockpit";req_access_txt = "19"},/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape)
"F" = (/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape)
"G" = (/obj/machinery/computer/emergency_shuttle,/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape)
"G" = (/obj/machinery/computer/emergency_shuttle,/obj/structure/window/reinforced{dir = 4;pixel_x = 0},/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape)
"H" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape)
"I" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/obj/structure/window/reinforced,/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape)
"I" = (/obj/structure/table/reinforced,/obj/structure/window/reinforced{dir = 4;pixel_x = 0},/obj/structure/window/reinforced,/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape)
"J" = (/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape)
"K" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Brig"; req_access_txt = "2"},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape)
"K" = (/obj/machinery/door/airlock/glass{name = "Emergency Shuttle Brig";req_access_txt = "2"},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape)
"L" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape)
"M" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/firstaid/regular,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4; pixel_x = 0},/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape)
"N" = (/turf/closed/wall/shuttle{tag = "icon-wall_space (EAST)"; icon_state = "wall_space"; dir = 4},/area/shuttle/escape)
"O" = (/turf/closed/wall/shuttle{tag = "icon-wall_floor (WEST)"; icon_state = "wall_floor"; dir = 8},/area/shuttle/escape)
"P" = (/turf/closed/wall/shuttle{tag = "icon-wall_space"; icon_state = "wall_space"},/area/shuttle/escape)
"M" = (/obj/structure/table/reinforced,/obj/item/weapon/storage/firstaid/regular,/obj/structure/window/reinforced,/obj/structure/window/reinforced{dir = 4;pixel_x = 0},/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape)
"N" = (/turf/closed/wall/shuttle{tag = "icon-wall_space (EAST)";icon_state = "wall_space";dir = 4},/area/shuttle/escape)
"O" = (/turf/closed/wall/shuttle{tag = "icon-wall_floor (WEST)";icon_state = "wall_floor";dir = 8},/area/shuttle/escape)
"P" = (/turf/closed/wall/shuttle{tag = "icon-wall_space";icon_state = "wall_space"},/area/shuttle/escape)
(1,1,1) = {"
abcdeaafghfaaaaaaaa
@@ -1,6 +1,6 @@
"a" = (/turf/closed/wall/mineral/wood,/area/shuttle/escape)
"b" = (/obj/machinery/light_switch,/turf/closed/wall/mineral/wood,/area/shuttle/escape)
"c" = (/obj/machinery/door/unpowered/shuttle,/obj/docking_port/mobile/emergency{dheight = 0; dir = 4; dwidth = 1; height = 10; name = "Oh Hi Mark"; width = 12},/turf/open/floor/wood,/area/shuttle/escape)
"c" = (/obj/docking_port/mobile/emergency{dheight = 0;dir = 4;dwidth = 1;height = 10;name = "Oh Hi Mark";width = 12;timid = 1},/obj/machinery/door/airlock/wood,/turf/open/floor/wood,/area/shuttle/escape)
"d" = (/turf/open/floor/wood,/area/shuttle/escape)
"e" = (/obj/machinery/light{dir = 1},/turf/open/floor/carpet,/area/shuttle/escape)
"f" = (/obj/structure/chair/comfy/teal,/turf/open/floor/carpet,/area/shuttle/escape)
@@ -8,17 +8,17 @@
"h" = (/turf/open/floor/carpet,/area/shuttle/escape)
"i" = (/obj/structure/table/reinforced,/obj/item/weapon/kitchen/knife,/turf/open/floor/carpet,/area/shuttle/escape)
"j" = (/turf/open/floor/plasteel/bar,/area/shuttle/escape)
"k" = (/obj/machinery/light{icon_state = "tube1"; dir = 4},/obj/machinery/vending/boozeomat,/turf/open/floor/plasteel/bar,/area/shuttle/escape)
"k" = (/obj/machinery/light{icon_state = "tube1";dir = 4},/obj/machinery/vending/boozeomat,/turf/open/floor/plasteel/bar,/area/shuttle/escape)
"l" = (/obj/machinery/computer/security/wooden_tv,/turf/open/floor/carpet,/area/shuttle/escape)
"m" = (/obj/structure/table/glass,/turf/open/floor/carpet,/area/shuttle/escape)
"n" = (/obj/structure/chair/comfy/teal{tag = "icon-comfychair (WEST)"; icon_state = "comfychair"; dir = 8},/turf/open/floor/carpet,/area/shuttle/escape)
"n" = (/obj/structure/chair/comfy/teal{tag = "icon-comfychair (WEST)";icon_state = "comfychair";dir = 8},/turf/open/floor/carpet,/area/shuttle/escape)
"o" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/food/snacks/store/cake/birthday,/turf/open/floor/carpet,/area/shuttle/escape)
"p" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/food/drinks/shaker,/turf/open/floor/plasteel/bar,/area/shuttle/escape)
"q" = (/obj/structure/table/reinforced,/turf/open/floor/carpet,/area/shuttle/escape)
"r" = (/obj/structure/table/reinforced,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass,/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/shotglass,/turf/open/floor/plasteel/bar,/area/shuttle/escape)
"s" = (/obj/machinery/door/window{dir = 8},/turf/open/floor/plasteel/bar,/area/shuttle/escape)
"t" = (/obj/structure/table/reinforced,/turf/open/floor/plasteel/bar,/area/shuttle/escape)
"u" = (/obj/machinery/light{icon_state = "tube1"; dir = 8},/turf/open/floor/wood,/area/shuttle/escape)
"u" = (/obj/machinery/light{icon_state = "tube1";dir = 8},/turf/open/floor/wood,/area/shuttle/escape)
"v" = (/obj/structure/chair/office/dark,/turf/open/floor/wood,/area/shuttle/escape)
"w" = (/obj/effect/decal/cleanable/blood,/obj/effect/decal/cleanable/blood/drip,/obj/effect/decal/cleanable/blood/gibs,/obj/effect/mob_spawn/human/corpse,/obj/item/weapon/gun/projectile/automatic/pistol/m1911,/obj/machinery/light/small{dir = 8},/obj/item/weapon/reagent_containers/food/snacks/cakeslice/birthday,/turf/open/floor/carpet,/area/shuttle/escape)
"x" = (/obj/structure/bed,/obj/item/weapon/bedsheet/red,/obj/item/weapon/paper{info = "i love daniel<br>daniel is my best friend<br><br>you are tearing me apart elise"},/turf/open/floor/carpet,/area/shuttle/escape)
+112 -128
View File
@@ -1,132 +1,116 @@
"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)
"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" = (/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)
"ad" = (/turf/closed/wall/shuttle{icon_state = "swall14";dir = 2},/area/shuttle/escape)
"ae" = (/turf/closed/wall/shuttle{icon_state = "swall12";dir = 2},/area/shuttle/escape)
"af" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape)
"ag" = (/obj/structure/sign/nosmoking_2,/turf/closed/wall/shuttle{icon_state = "swall12";dir = 2},/area/shuttle/escape)
"ah" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/obj/docking_port/mobile/emergency{dir = 2;dwidth = 5;height = 14;name = "MetaStation emergency shuttle";width = 25;timid = 1},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape)
"ai" = (/turf/closed/wall/shuttle{icon_state = "swall_s10";dir = 2},/area/shuttle/escape)
"aj" = (/turf/closed/wall/shuttle{tag = "icon-wall3 (NORTHWEST)";icon_state = "wall3";dir = 9},/area/shuttle/escape)
"ak" = (/turf/closed/wall/shuttle{icon_state = "swall3";dir = 2},/area/shuttle/escape)
"al" = (/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)
"am" = (/obj/machinery/computer/crew,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape)
"an" = (/obj/machinery/computer/security,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape)
"ao" = (/obj/structure/table,/obj/item/weapon/storage/firstaid/regular,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape)
"ap" = (/obj/structure/closet/emcloset,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape)
"aq" = (/turf/open/floor/plasteel/shuttle,/area/shuttle/escape)
"ar" = (/obj/structure/chair,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape)
"as" = (/obj/item/device/radio/intercom{dir = 4;name = "Station Intercom (General)";pixel_x = 0;pixel_y = 27},/obj/structure/chair,/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape)
"at" = (/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)
"au" = (/obj/structure/shuttle/engine/propulsion{dir = 4},/turf/open/floor/plating/airless,/area/shuttle/escape)
"av" = (/obj/structure/shuttle/engine/heater{dir = 8},/obj/structure/window/reinforced{dir = 4},/turf/open/floor/plating/airless,/area/shuttle/escape)
"aw" = (/obj/structure/table,/obj/item/weapon/storage/fancy/donut_box,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape)
"ax" = (/obj/structure/chair/office/dark{dir = 1},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape)
"ay" = (/obj/structure/table,/obj/item/weapon/restraints/handcuffs{pixel_y = 3},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape)
"az" = (/obj/machinery/status_display,/turf/closed/wall/shuttle{icon_state = "swall3";dir = 2},/area/shuttle/escape)
"aA" = (/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)
"aB" = (/obj/machinery/computer/communications,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape)
"aC" = (/obj/structure/chair/office/dark,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape)
"aD" = (/turf/closed/wall/shuttle{icon_state = "swall1"},/area/shuttle/escape)
"aE" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape)
"aF" = (/obj/machinery/computer/emergency_shuttle,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape)
"aG" = (/obj/structure/chair/office/dark{dir = 8},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape)
"aH" = (/obj/machinery/door/airlock/glass_command{name = "Cockpit";req_access_txt = "19"},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape)
"aI" = (/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 = "swall12";dir = 2},/area/shuttle/escape)
"aJ" = (/obj/structure/extinguisher_cabinet,/turf/closed/wall/shuttle{icon_state = "swall12";dir = 2},/area/shuttle/escape)
"aK" = (/turf/closed/wall/shuttle{icon_state = "wall3"},/area/shuttle/escape)
"aL" = (/obj/machinery/computer/station_alert,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape)
"aM" = (/turf/closed/wall/shuttle{icon_state = "swall2"},/area/shuttle/escape)
"aN" = (/obj/machinery/status_display{dir = 8;pixel_x = 32;pixel_y = 0},/obj/machinery/hologram/holopad,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape)
"aO" = (/obj/structure/table,/obj/item/weapon/storage/toolbox/emergency{pixel_y = 3},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape)
"aP" = (/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)
"aQ" = (/obj/structure/table,/obj/item/weapon/paper_bin{pixel_x = -2;pixel_y = 8},/obj/item/device/radio/intercom{dir = 2;name = "Station Intercom (General)";pixel_x = 0;pixel_y = -31},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape)
"aR" = (/obj/structure/table,/obj/item/weapon/folder/blue,/obj/structure/extinguisher_cabinet{dir = 4;pixel_x = 0;pixel_y = -27},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape)
"aS" = (/obj/item/device/radio/intercom{dir = 2;name = "Station Intercom (General)";pixel_x = 0;pixel_y = -31},/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape)
"aT" = (/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)
"aU" = (/turf/closed/wall/shuttle{icon_state = "swall7";dir = 2},/area/shuttle/escape)
"aV" = (/turf/closed/wall/shuttle{icon_state = "swall8";dir = 2},/area/shuttle/escape)
"aW" = (/obj/machinery/door/airlock/command{name = "Emergency Recovery Airlock";req_access = null;req_access_txt = "19"},/turf/open/floor/plasteel/shuttle,/area/shuttle/escape)
"aX" = (/turf/closed/wall/shuttle{icon_state = "swall15";dir = 2},/area/shuttle/escape)
"aY" = (/obj/machinery/door/airlock/glass_security{name = "Brig";req_access_txt = "2"},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape)
"aZ" = (/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)
"ba" = (/obj/structure/sign/bluecross_2,/turf/closed/wall/shuttle{icon_state = "swall14";dir = 2},/area/shuttle/escape)
"bb" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Cargo Bay Airlock"},/turf/open/floor/plasteel/delivery,/area/shuttle/escape)
"bc" = (/turf/closed/wall/shuttle{icon_state = "swall11";dir = 2},/area/shuttle/escape)
"bd" = (/obj/structure/chair{dir = 4},/turf/open/floor/plating{icon_state = "floorgrime"},/area/shuttle/escape)
"be" = (/turf/open/floor/plating{icon_state = "floorgrime"},/area/shuttle/escape)
"bf" = (/obj/machinery/door/airlock/external{name = "Emergency Recovery Airlock"},/turf/open/floor/plating{icon_state = "floorgrime"},/area/shuttle/escape)
"bg" = (/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape)
"bh" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape)
"bi" = (/obj/structure/chair,/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape)
"bj" = (/obj/structure/table,/obj/item/weapon/defibrillator/loaded,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape)
"bk" = (/obj/machinery/shower,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape)
"bl" = (/obj/machinery/sleeper{dir = 8},/turf/open/floor/plasteel/shuttle/white,/area/shuttle/escape)
"bm" = (/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/plasteel/warning{dir = 4},/area/shuttle/escape)
"bn" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plasteel/delivery,/area/shuttle/escape)
"bo" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel/delivery,/area/shuttle/escape)
"bp" = (/turf/open/floor/plasteel/delivery,/area/shuttle/escape)
"bq" = (/obj/machinery/recharge_station,/turf/open/floor/plasteel/delivery,/area/shuttle/escape)
"br" = (/turf/closed/wall/shuttle{icon_state = "swall4";dir = 2},/area/shuttle/escape)
"bs" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape)
"bt" = (/obj/structure/reagent_dispensers/peppertank,/turf/closed/wall/shuttle{icon_state = "swall3";dir = 2},/area/shuttle/escape)
"bu" = (/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)
"bv" = (/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/plasteel/warning{dir = 4},/area/shuttle/escape)
"bw" = (/obj/item/weapon/cigbutt,/turf/open/floor/plating{icon_state = "floorgrime"},/area/shuttle/escape)
"bx" = (/turf/open/floor/plasteel/floorgrime,/area/shuttle/escape)
"by" = (/obj/machinery/suit_storage_unit/standard_unit,/turf/open/floor/plating{icon_state = "floorgrime"},/area/shuttle/escape)
"bz" = (/obj/structure/table/optable,/obj/item/weapon/surgical_drapes,/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape)
"bA" = (/turf/open/floor/plasteel/warning{dir = 4},/area/shuttle/escape)
"bB" = (/turf/closed/wall/shuttle{icon_state = "diagonalWall3"},/area/shuttle/escape)
"bC" = (/obj/structure/reagent_dispensers/watertank,/turf/open/floor/plating{icon_state = "floorgrime"},/area/shuttle/escape)
"bD" = (/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 = 2;name = "Station Intercom (General)";pixel_x = 0;pixel_y = -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)
"bE" = (/obj/structure/table,/obj/item/weapon/restraints/handcuffs{pixel_y = 3},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape)
"bF" = (/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)
"bG" = (/obj/structure/table,/obj/item/weapon/storage/box/handcuffs{pixel_x = 2;pixel_y = 2},/turf/open/floor/plasteel/shuttle/red,/area/shuttle/escape)
"bH" = (/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 = 2;name = "Station Intercom (General)";pixel_x = -27;pixel_y = 0},/turf/open/floor/plasteel/shuttle{icon_state = "shuttlefloor3"},/area/shuttle/escape)
"bI" = (/obj/structure/sink,/turf/open/floor/plasteel/shuttle,/area/shuttle/escape)
"bJ" = (/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)
"bK" = (/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)
"bL" = (/obj/structure/sign/bluecross_2,/turf/closed/wall/shuttle{icon_state = "swall2"},/area/shuttle/escape)
"bM" = (/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/plasteel/warning{dir = 4},/area/shuttle/escape)
"bN" = (/obj/machinery/space_heater,/obj/structure/extinguisher_cabinet{dir = 4;pixel_x = 0;pixel_y = -27},/turf/open/floor/plating{icon_state = "bot"},/area/shuttle/escape)
"bO" = (/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)
"bP" = (/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)
"bQ" = (/obj/item/device/radio/intercom{dir = 2;name = "Station Intercom (General)";pixel_x = 0;pixel_y = -31},/obj/machinery/portable_atmospherics/canister/oxygen,/turf/open/floor/plating{icon_state = "bot"},/area/shuttle/escape)
"bR" = (/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)
"bS" = (/turf/closed/wall/shuttle{icon_state = "swall_s5";dir = 2},/area/shuttle/escape)
"bT" = (/turf/closed/wall/shuttle{icon_state = "swall13";dir = 2},/area/shuttle/escape)
"bU" = (/turf/closed/wall/shuttle{icon_state = "swall_s9";dir = 2},/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
aaaaabacacacacadaeacaeafacafagacacacaeahacafaeaeai
aaajakalamanaoakapaqaraqaraqararararasaqaraqaqatak
auavakawaqaxayazaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaAac
auavakaBaCaqaqaDaqaqaEaEaEaEaEaqaEaEaEaEaEaqaqatak
auavakaFaGaqaqaHaqaqacaIacaJacaqacaJacaIacaqaqaqac
aKaKakaLaxaqaqaMaqaqarararararaqarararararaqaqaNak
auavakaOaqaCaqazaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqaqac
auavakaPaQaRaqakapaqaEaEaSaEaEaqaEaEaEaEaEaqaqaTak
aKaKaUaJaeaVaWaXaVaYacaeadaeacaZacbaaeacaJbbbbagbc
auavakbdbebfbgakbhbgbibiakbjbkaqblakbmbnbobpbpbqak
auavakbdbebraebcbhbgbgbsbtbuaqaqblacbvbwbxbxbxbpac
auavakbdbebebyazbhbgbgbsazbzaqaqaqaZbAbxbxbwbxbpac
aabBakbCbebebyakbDbEbFbGakbHbIbJbKbLbMbNbObPbQbRak
aaaabSacbfbfacbTaeacacaebTaeacacaebTaeaeacacaeaebU
"}
+10 -10
View File
@@ -4,21 +4,21 @@
"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)
"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)
"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/friendly,/turf/open/floor/plasteel/cult,/area/shuttle/escape)
"s" = (/obj/machinery/status_display,/turf/closed/wall/mineral/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)
"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/friendly,/turf/open/floor/plating,/area/shuttle/escape)
@@ -28,19 +28,19 @@
"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/friendly,/obj/docking_port/mobile/emergency{name = "shuttle 667"},/turf/open/floor/plating,/area/shuttle/escape)
"E" = (/obj/machinery/door/airlock/cult/friendly,/obj/docking_port/mobile/emergency{name = "shuttle 667";timid = 1},/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)
"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)
"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)
"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/friendly,/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)
"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)
+79 -66
View File
@@ -1,69 +1,82 @@
"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)
"aa" = (/turf/open/space,/area/space)
"ab" = (/turf/closed/wall/shuttle{icon_state = "swall_s6"; dir = 2},/area/shuttle/escape)
"ac" = (/obj/structure/sign/radiation,/turf/closed/wall/shuttle{tag = "icon-swall12"; icon_state = "swall12"},/area/shuttle/escape)
"ad" = (/obj/structure/grille,/obj/structure/window/shuttle,/turf/open/floor/plating,/area/shuttle/escape)
"ae" = (/turf/closed/wall/shuttle{icon_state = "swall_s10"; dir = 2},/area/shuttle/escape)
"af" = (/turf/closed/wall/shuttle{tag = "icon-swall3"; icon_state = "swall3"},/area/shuttle/escape)
"ag" = (/obj/structure/closet/radiation{anchored = 1},/obj/item/clothing/glasses/meson/engine,/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape)
"ah" = (/obj/structure/chair,/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape)
"ai" = (/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape)
"aj" = (/obj/structure/chair{dir = 1},/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape)
"ak" = (/obj/structure/sign/radiation,/turf/closed/wall/shuttle{tag = "icon-swall3"; icon_state = "swall3"},/area/shuttle/escape)
"al" = (/obj/machinery/shower{dir = 8},/turf/open/floor/noslip,/area/shuttle/escape)
"am" = (/obj/structure/reflector/single{anchored = 1},/turf/open/floor/plating{icon_state = "warnplate"; dir = 8},/area/shuttle/escape)
"an" = (/obj/structure/reflector/box{anchored = 1},/turf/open/floor/plating,/area/shuttle/escape)
"ao" = (/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)
"ap" = (/obj/machinery/shower{dir = 4},/turf/open/floor/noslip,/area/shuttle/escape)
"aq" = (/obj/machinery/status_display,/turf/closed/wall/shuttle{tag = "icon-swall3"; icon_state = "swall3"},/area/shuttle/escape)
"ar" = (/obj/structure/chair{dir = 8},/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape)
"as" = (/turf/open/floor/plating{icon_state = "warnplate"; dir = 8},/area/shuttle/escape)
"at" = (/turf/open/floor/plating,/area/shuttle/escape)
"au" = (/turf/open/floor/plating{icon_state = "warnplate"; dir = 4},/area/shuttle/escape)
"av" = (/obj/structure/chair{dir = 4},/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape)
"aw" = (/turf/closed/wall/shuttle{icon_state = "swallc2"; dir = 2},/area/shuttle/escape)
"ax" = (/turf/closed/wall/shuttle{icon_state = "swall_f9"; dir = 2},/area/shuttle/escape)
"ay" = (/turf/closed/wall/shuttle{icon_state = "swall_f5"; dir = 2},/area/shuttle/escape)
"az" = (/turf/closed/wall/shuttle{icon_state = "swallc1"},/area/shuttle/escape)
"aA" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/turf/open/floor/plating,/area/shuttle/escape)
"aB" = (/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)
"aC" = (/obj/structure/sign/radiation,/turf/closed/wall/shuttle/smooth,/area/shuttle/escape)
"aD" = (/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)
"aE" = (/obj/structure/reagent_dispensers/fueltank,/turf/open/floor/plasteel/shuttle/yellow,/area/shuttle/escape)
"aF" = (/obj/machinery/door/airlock/shuttle{name = "Emergency Shuttle Airlock"},/obj/docking_port/mobile/emergency{name = "Hyperfractal Gigashuttle"; timid = 1},/turf/open/floor/plating,/area/shuttle/escape)
"aG" = (/turf/closed/wall/shuttle{icon_state = "swallc3"},/area/shuttle/escape)
"aH" = (/obj/machinery/status_display,/turf/closed/wall/shuttle{icon_state = "swall12"},/area/shuttle/escape)
"aI" = (/obj/structure/sign/radiation,/turf/closed/wall/shuttle{icon_state = "swallc1"},/area/shuttle/escape)
"aJ" = (/obj/structure/sign/radiation,/turf/closed/wall/shuttle{icon_state = "swallc2"; dir = 2},/area/shuttle/escape)
"aK" = (/turf/closed/wall/shuttle{icon_state = "swallc4"; dir = 2},/area/shuttle/escape)
"aL" = (/obj/machinery/door/airlock/external{name = "Emergency Launch Catwalk"; req_access = null; req_access_txt = "10;13"},/turf/open/floor/plating,/area/shuttle/escape)
"aM" = (/turf/open/floor/plating/airless,/area/shuttle/escape)
"aN" = (/obj/structure/reflector/single{anchored = 1},/turf/open/floor/plating/airless,/area/shuttle/escape)
"aO" = (/obj/structure/reflector/double{anchored = 1},/turf/open/floor/plating/airless,/area/shuttle/escape)
"aP" = (/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)
"aQ" = (/obj/structure/reflector/single{tag = "icon-reflector (WEST)"; icon_state = "reflector"; dir = 8; anchored = 1},/turf/open/floor/plating/airless,/area/shuttle/escape)
"aR" = (/turf/open/floor/plating/airless{dir = 9; icon_state = "warnplate"},/area/shuttle/escape)
"aS" = (/turf/open/floor/plating/airless{dir = 1; icon_state = "warnplate"},/area/shuttle/escape)
"aT" = (/turf/open/floor/plating/airless{dir = 5; icon_state = "warnplate"},/area/shuttle/escape)
"aU" = (/turf/open/floor/plating/airless{dir = 8; icon_state = "warnplate"},/area/shuttle/escape)
"aV" = (/obj/machinery/power/supermatter_shard/hugbox{anchored = 1; name = "anchored supermatter shard"},/turf/open/floor/plating/airless,/area/shuttle/escape)
"aW" = (/turf/open/floor/plating/airless{dir = 4; icon_state = "warnplate"},/area/shuttle/escape)
"aX" = (/turf/open/floor/plating/airless{dir = 10; icon_state = "warnplate"},/area/shuttle/escape)
"aY" = (/turf/open/floor/plating/airless{dir = 2; icon_state = "warnplate"},/area/shuttle/escape)
"aZ" = (/turf/open/floor/plating/airless{dir = 6; icon_state = "warnplate"},/area/shuttle/escape)
"ba" = (/obj/machinery/power/emitter/energycannon{dir = 1},/turf/open/floor/plating/airless,/area/shuttle/escape)
"bb" = (/obj/structure/chair,/turf/open/floor/plating/airless{dir = 1; icon_state = "warnplate"},/area/shuttle/escape)
"bc" = (/obj/structure/shuttle/engine/heater,/turf/open/floor/plating/airless,/area/shuttle/escape)
"bd" = (/obj/machinery/computer/emergency_shuttle,/turf/open/floor/plating/airless,/area/shuttle/escape)
"be" = (/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
aaabacadadadadadacaeaa
aaafagahagagagahagafaa
aaadagaiajajajaiagadaa
aaakagalamanaoapagakaa
aaaqagarasatauavagaqaa
aaadagarasatauavagadaa
awaxagarasatauavagayaz
aAaiaiarasaBauavaiaiaA
aCaDaiarasatauavaiaEaC
aFaiaiarasatauavaiaiaA
aGaHadaIasatauaJadaHaK
aaaaaaaGadaLadaKaaaaaa
aaaaaaaaataMataaaaaaaa
aaaNatataOaMaPatataQaa
aaaMaaaaaaaMaaaaaaaMaa
aaaRaSaTaaaMaaaRaSaTaa
aaaUaVaWaMaMaMaUaVaWaa
aaaXaYaZaaaMaaaXaYaZaa
aaatataaaaaMaaaaatataa
aababaaMaRbbaTaMbabaaa
aabcbcaaaUbdaWaabcbcaa
aabebeaaaXaYaZaabebeaa
"}
+648
View File
@@ -0,0 +1,648 @@
//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
"aa" = (
/turf/open/space,
/area/space)
"ab" = (
/turf/closed/wall/shuttle/smooth,
/area/shuttle/escape)
"ac" = (
/obj/structure/grille,
/obj/structure/window/shuttle/tinted,
/turf/open/floor/plating,
/area/shuttle/escape)
"ad" = (
/turf/open/floor/plasteel/green,
/area/shuttle/escape)
"ae" = (
/turf/open/floor/plasteel/darkgreen,
/area/shuttle/escape)
"af" = (
/obj/machinery/power/emitter/energycannon/magical,
/turf/open/floor/plasteel/darkgreen,
/area/shuttle/escape)
"ag" = (
/obj/structure/table/abductor/wabbajack/left,
/turf/open/floor/plasteel/darkgreen,
/area/shuttle/escape)
"ah" = (
/obj/structure/table/abductor/wabbajack/right,
/turf/open/floor/plasteel/darkgreen,
/area/shuttle/escape)
"ai" = (
/obj/structure/sign/biohazard,
/turf/closed/wall/shuttle/smooth,
/area/shuttle/escape)
"aj" = (
/obj/structure/barricade/wooden,
/obj/machinery/door/airlock/shuttle,
/turf/open/floor/plasteel/cult,
/area/shuttle/escape)
"ak" = (
/obj/structure/chair{
dir = 4
},
/turf/open/floor/plasteel/shuttle/red,
/area/shuttle/escape)
"al" = (
/turf/open/floor/plasteel/shuttle/red,
/area/shuttle/escape)
"am" = (
/obj/structure/chair{
dir = 8
},
/turf/open/floor/plasteel/shuttle/red,
/area/shuttle/escape)
"an" = (
/obj/structure/table/wood,
/obj/item/candle/infinite,
/turf/open/floor/plasteel/cult,
/area/shuttle/escape)
"ao" = (
/obj/structure/barricade/wooden,
/turf/open/floor/plasteel/cult,
/area/shuttle/escape)
"ap" = (
/turf/open/floor/plasteel/cult,
/area/shuttle/escape)
"aq" = (
/turf/open/floor/plasteel/shuttle{
icon_state = "shuttlefloor3"
},
/area/shuttle/escape)
"ar" = (
/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)
"as" = (
/obj/structure/grille,
/obj/structure/window/shuttle,
/turf/open/floor/plating,
/area/shuttle/escape)
"at" = (
/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
},
/obj/structure/chair{
dir = 4
},
/turf/open/floor/plasteel/shuttle/red,
/area/shuttle/escape)
"au" = (
/obj/structure/chair/wood,
/turf/open/floor/plasteel/cult,
/area/shuttle/escape)
"av" = (
/obj/structure/chair,
/turf/open/floor/plasteel/shuttle{
icon_state = "shuttlefloor3"
},
/area/shuttle/escape)
"aw" = (
/obj/structure/chair{
dir = 8
},
/turf/open/floor/plasteel/shuttle{
icon_state = "shuttlefloor3"
},
/area/shuttle/escape)
"ax" = (
/obj/machinery/door/airlock/shuttle{
name = "Emergency Shuttle Airlock";
req_access_txt = "2"
},
/turf/open/floor/plating,
/area/shuttle/escape)
"ay" = (
/obj/structure/table,
/obj/item/weapon/paper_bin,
/obj/item/weapon/pen{
pixel_x = -2;
pixel_y = 4
},
/turf/open/floor/plasteel/shuttle{
icon_state = "shuttlefloor3"
},
/area/shuttle/escape)
"az" = (
/obj/machinery/computer/emergency_shuttle,
/turf/open/floor/plasteel/shuttle{
icon_state = "shuttlefloor3"
},
/area/shuttle/escape)
"aA" = (
/obj/structure/table,
/obj/item/weapon/coin/mythril,
/turf/open/floor/plasteel/shuttle{
icon_state = "shuttlefloor3"
},
/area/shuttle/escape)
"aB" = (
/obj/machinery/door/airlock/glass{
name = "Emergency Shuttle Brig";
req_access_txt = "2"
},
/turf/open/floor/plasteel/shuttle,
/area/shuttle/escape)
"aC" = (
/obj/machinery/door/airlock/shuttle,
/turf/open/floor/plasteel/shuttle{
icon_state = "shuttlefloor3"
},
/area/shuttle/escape)
"aD" = (
/obj/machinery/door/airlock/shuttle{
name = "Emergency Shuttle Airlock"
},
/obj/docking_port/mobile/emergency{
timid = 1, name = "NT Lepton Violet"
},
/turf/open/floor/plating,
/area/shuttle/escape)
"aE" = (
/turf/open/floor/plasteel/shuttle,
/area/shuttle/escape)
"aF" = (
/obj/machinery/door/window/eastleft,
/turf/open/floor/plasteel/shuttle{
icon_state = "shuttlefloor3"
},
/area/shuttle/escape)
"aG" = (
/obj/structure/extinguisher_cabinet{
pixel_x = 27;
pixel_y = 0
},
/obj/structure/table/glass,
/obj/item/weapon/storage/box/syringes{
pixel_x = 3;
pixel_y = 3
},
/obj/item/weapon/storage/box/beakers,
/turf/open/floor/plasteel/shuttle{
icon_state = "shuttlefloor3"
},
/area/shuttle/escape)
"aH" = (
/turf/closed/wall/shuttle{
icon_state = "swall3";
dir = 2
},
/area/shuttle/escape)
"aI" = (
/obj/structure/chair{
dir = 4
},
/turf/open/floor/plasteel/shuttle{
icon_state = "shuttlefloor3"
},
/area/shuttle/escape)
"aJ" = (
/obj/structure/chair{
dir = 8
},
/obj/structure/window/reinforced{
dir = 4
},
/turf/open/floor/plasteel/shuttle{
icon_state = "shuttlefloor3"
},
/area/shuttle/escape)
"aK" = (
/obj/machinery/sleeper{
icon_state = "sleeper-open";
dir = 4
},
/turf/open/floor/plasteel/shuttle{
icon_state = "shuttlefloor3"
},
/area/shuttle/escape)
"aL" = (
/obj/structure/table/reinforced,
/turf/open/floor/plasteel/shuttle{
icon_state = "shuttlefloor3"
},
/area/shuttle/escape)
"aM" = (
/obj/machinery/chem_dispenser,
/turf/open/floor/plasteel/shuttle{
icon_state = "shuttlefloor3"
},
/area/shuttle/escape)
"aN" = (
/obj/structure/table,
/obj/item/weapon/storage/toolbox/mechanical,
/obj/item/weapon/storage/firstaid/regular{
pixel_x = -1;
pixel_y = 1
},
/obj/item/weapon/wrench/medical,
/turf/open/floor/plasteel/shuttle{
icon_state = "shuttlefloor3"
},
/area/shuttle/escape)
"aO" = (
/turf/open/floor/plating,
/area/shuttle/escape)
"aP" = (
/obj/structure/chair/office/light{
dir = 8
},
/turf/open/floor/plasteel/shuttle{
icon_state = "shuttlefloor3"
},
/area/shuttle/escape)
"aQ" = (
/obj/machinery/chem_heater,
/turf/open/floor/plasteel/shuttle{
icon_state = "shuttlefloor3"
},
/area/shuttle/escape)
"aR" = (
/obj/machinery/chem_master,
/turf/open/floor/plasteel/shuttle{
icon_state = "shuttlefloor3"
},
/area/shuttle/escape)
"aS" = (
/obj/machinery/door/window/eastright,
/turf/open/floor/plasteel/shuttle{
icon_state = "shuttlefloor3"
},
/area/shuttle/escape)
"aT" = (
/obj/structure/table/glass,
/obj/item/weapon/reagent_containers/glass/bottle/epinephrine{
pixel_x = 2;
pixel_y = 2
},
/obj/item/weapon/reagent_containers/glass/bottle/charcoal,
/turf/open/floor/plasteel/shuttle{
icon_state = "shuttlefloor3"
},
/area/shuttle/escape)
"aU" = (
/obj/machinery/door/airlock/glass,
/turf/open/floor/plasteel/shuttle,
/area/shuttle/escape)
"aV" = (
/obj/machinery/door/airlock/shuttle{
name = "Emergency Shuttle Airlock"
},
/turf/open/floor/plating,
/area/shuttle/escape)
"aW" = (
/turf/open/floor/plasteel/yellow,
/turf/open/floor/plasteel/warningline{
tag = "icon-warningline (NORTH)";
icon_state = "warningline";
dir = 1
},
/area/shuttle/escape)
"aX" = (
/turf/open/floor/plasteel/yellow,
/turf/open/floor/plasteel/warningline{
tag = "icon-warningline (NORTHEAST)";
icon_state = "warningline";
dir = 5
},
/area/shuttle/escape)
"aY" = (
/turf/open/floor/plasteel/whitered,
/turf/open/floor/plasteel/warningline{
tag = "icon-warningline (NORTHWEST)";
icon_state = "warningline";
dir = 9
},
/area/shuttle/escape)
"aZ" = (
/turf/open/floor/plasteel/whitered,
/turf/open/floor/plasteel/warningline{
tag = "icon-warningline (NORTH)";
icon_state = "warningline";
dir = 1
},
/area/shuttle/escape)
"ba" = (
/obj/structure/cult/forge{
desc = "A engine used in powering the shuttle.";
name = "magma engine"
},
/turf/open/floor/plasteel/yellow,
/area/shuttle/escape)
"bb" = (
/turf/open/floor/plasteel/yellow,
/turf/open/floor/plasteel/warningline{
tag = "icon-warningline (EAST)";
icon_state = "warningline";
dir = 4
},
/area/shuttle/escape)
"bc" = (
/turf/open/floor/plasteel/whitered,
/turf/open/floor/plasteel/warningline{
tag = "icon-warningline (WEST)";
icon_state = "warningline";
dir = 8
},
/area/shuttle/escape)
"bd" = (
/obj/structure/cult/forge{
desc = "A engine used in powering the shuttle.";
name = "magma engine"
},
/turf/open/floor/plasteel/whitered,
/area/shuttle/escape)
"be" = (
/obj/structure/window/reinforced{
dir = 1
},
/turf/open/floor/plating/lava/smooth/airless,
/area/shuttle/escape)
"bf" = (
/obj/structure/shuttle/engine/heater,
/turf/open/floor/plating/lava/smooth/airless,
/area/shuttle/escape)
"bg" = (
/obj/structure/shuttle/engine/propulsion,
/turf/open/floor/plating/airless,
/area/shuttle/escape)
(1,1,1) = {"
aa
aa
aa
aa
ab
ab
ab
ax
ab
aD
aH
as
as
as
aH
aV
ab
aV
ab
ab
ab
aa
"}
(2,1,1) = {"
aa
ab
ab
ab
ab
ak
at
al
as
aE
aI
aI
aI
aE
ab
aE
aI
aW
ba
be
ab
ab
"}
(3,1,1) = {"
ab
ab
ag
ae
ab
al
al
al
aB
aE
aE
aE
aE
aE
ab
aE
aE
aX
bb
be
bf
bg
"}
(4,1,1) = {"
ac
ad
ae
ad
ab
am
am
am
as
aE
aJ
aJ
aJ
aE
aU
aE
aE
aE
aE
be
bf
bg
"}
(5,1,1) = {"
ac
ae
ad
ae
ab
ab
ab
ab
ab
aq
aK
aN
aK
aq
ab
aw
aw
aw
aw
be
bf
bg
"}
(6,1,1) = {"
ac
af
ad
ae
ai
an
au
ay
ab
aq
aq
aq
aq
aq
ab
ab
ab
ab
ab
be
bf
bg
"}
(7,1,1) = {"
ac
ae
ad
ae
aj
ao
au
az
ab
aF
aJ
aq
aJ
aS
as
aI
aI
aI
aI
be
bf
bg
"}
(8,1,1) = {"
ac
ad
ae
ad
ai
ap
av
aA
ab
aq
aL
aO
aL
aq
aU
aE
aE
aE
aE
be
bf
bg
"}
(9,1,1) = {"
ab
ab
ah
ae
ab
aq
aq
aq
aC
aq
aq
aP
aq
aq
as
av
aE
aY
bc
be
bf
bg
"}
(10,1,1) = {"
aa
ab
ab
ab
ab
ar
aw
aw
ab
aG
aM
aQ
aR
aT
as
av
aE
aZ
bd
be
ab
ab
"}
(11,1,1) = {"
aa
aa
aa
aa
ab
as
ab
as
ab
ab
ab
as
as
as
ab
ab
ab
as
ab
ab
ab
aa
"}
+1 -1
View File
@@ -10,7 +10,7 @@
"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)
"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; timid = 1},/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)
+3 -3
View File
@@ -38,7 +38,7 @@
"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)
"aO" = (/obj/machinery/door/airlock/shuttle,/obj/docking_port/mobile{dir = 8;dwidth = 8;height = 27;id = "ferry";name = "The Lighthouse";roundstart_move = "ferry_away";timid = 1;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)
@@ -70,9 +70,9 @@ aaafamanaoapadadapaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae
aaafafaqakapararapapapaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae
agaaaaasakatauauavauapapapawawadadaxaxayaxaxaxazaxaxaA
agagagaBakapauauaCaDaDaDaEaEaEakaFaGaHaIakaJaJaJaJaKay
aaaaaaasakaLauauaMaDaDaDaNaNaEaEaEaEaEaEaEaEaEaEaEaEaO
aaaaaaasakaLauauaCaDaDaDaNaNaEaEaEaEaEaEaEaEaEaEaEaEaO
aaaaagasaPaQauaRaSaDaDaDaEaEaEakaTaUaVaWaWaWaWaWaWaWay
aaabacaXaXapauauaMaDaDaDadadadaYawadaxayaxaxaxazaxaxaZ
aaabacaXaXapauauaCaDaDaDadadadaYawadaxayaxaxaxazaxaxaZ
aaaaagahbaaLaLbbbcbdadadadaeaeaeaeaeaeaeaeaeaeaeaeaeae
aaaaaaahbebebfbgadadadaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae
aaaaagahbhbhadadadaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeaeae
+1 -1
View File
@@ -14,7 +14,7 @@
"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)
"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;timid = 1},/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)
+1 -1
View File
@@ -1,7 +1,7 @@
"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)
"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; timid = 1},/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)
+1 -1
View File
@@ -4,7 +4,7 @@
"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)
"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; timid = 1},/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)
+4 -5
View File
@@ -39,11 +39,10 @@
//Grab levels
#define GRAB_PASSIVE 1
#define GRAB_AGGRESSIVE 2
#define GRAB_NECK 3
#define GRAB_UPGRADING 4
#define GRAB_KILL 5
#define GRAB_PASSIVE 0
#define GRAB_AGGRESSIVE 1
#define GRAB_NECK 2
#define GRAB_KILL 3
//Hostile Mob AI Status
+3 -2
View File
@@ -32,8 +32,6 @@
#define BLOCK_GAS_SMOKE_EFFECT 8192 // blocks the effect that chemical clouds would have on a mob --glasses, mask and helmets ONLY! (NOTE: flag shared with THICKMATERIAL)
#define THICKMATERIAL 8192 //prevents syringes, parapens and hypos if the external suit or helmet (if targeting head) has this flag. Example: space suits, biosuit, bombsuits, thick suits that cover your body. (NOTE: flag shared with BLOCK_GAS_SMOKE_EFFECT)
#define NOREACT 16384 //Reagents dont' react inside this container.
//turf-only flags
#define NOJAUNT 1
@@ -81,3 +79,6 @@
#define SLIME 16
#define DRONE 32
#define SWARMER 64
// Flags for reagents
#define REAGENT_NOREACT 1
+2 -1
View File
@@ -15,7 +15,7 @@
#define DIAG_MECH_HUD "11"// Mech health bar
#define DIAG_BOT_HUD "12"// Bot HUDs
//for antag huds. these are used at the /mob level
#define ANTAG_HUD "12"
#define ANTAG_HUD "13"
//data HUD (medhud, sechud) defines
//Don't forget to update human/New() if you change these!
@@ -39,3 +39,4 @@
#define ANTAG_HUD_DEVIL 17
#define ANTAG_HUD_SINTOUCHED 18
#define ANTAG_HUD_SOULLESS 19
#define ANTAG_HUD_CLOCKWORK 20
+54
View File
@@ -0,0 +1,54 @@
//Defines for atom layers
//KEEP THESE IN A NICE ACSCENDING ORDER, PLEASE
//#define TURF_LAYER 2 //For easy recordkeeping; this is a byond define
#define ABOVE_OPEN_TURF_LAYER 2.01
#define CLOSED_TURF_LAYER 2.05
#define ABOVE_NORMAL_TURF_LAYER 2.08
#define LATTICE_LAYER 2.2
#define DISPOSAL_PIPE_LAYER 2.3
#define GAS_PIPE_LAYER 2.35
#define WIRE_LAYER 2.4
#define WIRE_TERMINAL_LAYER 2.45
#define LOW_OBJ_LAYER 2.5
#define OPEN_DOOR_LAYER 2.7
#define PROJECTILE_HIT_THRESHHOLD_LAYER 2.75 //projectiles won't hit objects at or below this layer if possible
#define TABLE_LAYER 2.8
#define BELOW_OBJ_LAYER 2.9
#define LOW_ITEM_LAYER 2.95
//#define OBJ_LAYER 3 //For easy recordkeeping; this is a byond define
#define CLOSED_DOOR_LAYER 3.1
#define CLOSED_FIREDOOR_LAYER 3.11
#define ABOVE_OBJ_LAYER 3.2
#define SIGN_LAYER 3.4
#define HIGH_OBJ_LAYER 3.5
#define BELOW_MOB_LAYER 3.7
#define LYING_MOB_LAYER 3.8
//#define MOB_LAYER 4 //For easy recordkeeping; this is a byond define
#define ABOVE_MOB_LAYER 4.1
#define WALL_OBJ_LAYER 4.25
#define EDGED_TURF_LAYER 4.3
#define ON_EDGED_TURF_LAYER 4.35
#define LARGE_MOB_LAYER 4.4
#define ABOVE_ALL_MOB_LAYER 4.5
#define SPACEVINE_LAYER 4.8
#define SPACEVINE_MOB_LAYER 4.9
//#define FLY_LAYER 5 //For easy recordkeeping; this is a byond define
#define GHOST_LAYER 6
#define AREA_LAYER 10
#define MASSIVE_OBJ_LAYER 11
#define POINT_LAYER 12
#define LIGHTING_LAYER 15
//HUD layer defines
#define FLASH_LAYER 17.9
#define FULLSCREEN_LAYER 18
#define DAMAGE_LAYER 18.1
#define BLIND_LAYER 18.2
#define CRIT_LAYER 18.3
#define HUD_LAYER 19
#define ABOVE_HUD_LAYER 19.1
+10 -12
View File
@@ -150,8 +150,9 @@
#define CLICK_CD_RANGE 4
#define CLICK_CD_BREAKOUT 100
#define CLICK_CD_HANDCUFFED 10
#define CLICK_CD_TKSTRANGLE 10
#define CLICK_CD_RESIST 20
#define CLICK_CD_GRABBING 10
//click cooldowns, in tenths of a second
@@ -226,7 +227,7 @@
#define MIN_RANGE_FIND 16
#define FUZZY_CHANCE_HIGH 85
#define FUZZY_CHANCE_LOW 50
#define CHANCE_TALK 15
#define CHANCE_TALK 1
#define SNPC_BRUTE 1
#define SNPC_STEALTH 2
@@ -396,12 +397,6 @@ var/global/list/ghost_others_options = list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE
#define APPEARANCE_UI_IGNORE_ALPHA RESET_COLOR|RESET_TRANSFORM|NO_CLIENT_COLOR|RESET_ALPHA
#define APPEARANCE_UI RESET_COLOR|RESET_TRANSFORM|NO_CLIENT_COLOR
//Launching Shuttles to Centcomm
#define NOLAUNCH -1
#define UNLAUNCHED 0
#define ENDGAME_LAUNCHED 1
#define EARLY_LAUNCHED 2
//Just space
#define SPACE_ICON_STATE "[((x + y) ^ ~(x * y) + z) % 25]"
@@ -424,12 +419,15 @@ var/global/list/ghost_others_options = list(GHOST_OTHERS_SIMPLE, GHOST_OTHERS_DE
#define MAP_MAXY 5
#define MAP_MAXZ 6
// Shuttle return values
#define SHUTTLE_ALREADY_DOCKED 7
#define CHECK_DNA_AND_SPECIES(C) if((!(C.dna)) || (!(C.dna.species))) return
// Evil narsie colour
#define NARSIE_WINDOW_COLOUR "#7D1919"
// Defib stats
#define DEFIB_TIME_LIMIT 120
#define DEFIB_TIME_LOSS 60
// Diagonal movement
#define FIRST_DIAG_STEP 1
#define SECOND_DIAG_STEP 2
+3 -2
View File
@@ -25,7 +25,7 @@
#define ROLE_HOG_GOD "hand of god: god"
#define ROLE_HOG_CULTIST "hand of god: cultist"
#define ROLE_DEVIL "devil"
#define ROLE_SERVANT_OF_RATVAR "servant of Ratvar"
//Missing assignment means it's not a gamemode specific role, IT'S NOT A BUG OR ERROR.
//The gamemode specific ones are just so the gamemodes can query whether a player is old enough
@@ -49,5 +49,6 @@ var/global/list/special_roles = list(
ROLE_ABDUCTOR = /datum/game_mode/abduction,
ROLE_HOG_GOD = /datum/game_mode/hand_of_god,
ROLE_HOG_CULTIST = /datum/game_mode/hand_of_god,
ROLE_DEVIL = /datum/game_mode/devil
ROLE_DEVIL = /datum/game_mode/devil,
ROLE_SERVANT_OF_RATVAR = /datum/game_mode/clockwork_cult,
)
+23
View File
@@ -0,0 +1,23 @@
//shuttle mode defines
#define SHUTTLE_IDLE 0
#define SHUTTLE_RECALL 1
#define SHUTTLE_CALL 2
#define SHUTTLE_DOCKED 3
#define SHUTTLE_STRANDED 4
#define SHUTTLE_ESCAPE 5
#define SHUTTLE_ENDGAME 6
// Shuttle return values
#define SHUTTLE_NOT_A_DOCKING_PORT "not_a_docking_port"
#define SHUTTLE_DWIDTH_TOO_LARGE "docking_width_too_large"
#define SHUTTLE_WIDTH_TOO_LARGE "width_too_large"
#define SHUTTLE_DHEIGHT_TOO_LARGE "docking_height_too_large"
#define SHUTTLE_HEIGHT_TOO_LARGE "height_too_large"
#define SHUTTLE_ALREADY_DOCKED "we_are_already_docked"
#define SHUTTLE_SOMEONE_ELSE_DOCKED "someone_else_docked"
//Launching Shuttles to Centcomm
#define NOLAUNCH -1
#define UNLAUNCHED 0
#define ENDGAME_LAUNCHED 1
#define EARLY_LAUNCHED 2
-9
View File
@@ -24,12 +24,3 @@
#define POWEROFF 4 // tbd
#define MAINT 8 // under maintaince
#define EMPED 16 // temporary broken by EMP pulse
//shuttle mode defines
#define SHUTTLE_IDLE 0
#define SHUTTLE_RECALL 1
#define SHUTTLE_CALL 2
#define SHUTTLE_DOCKED 3
#define SHUTTLE_STRANDED 4
#define SHUTTLE_ESCAPE 5
#define SHUTTLE_ENDGAME 6
+20 -2
View File
@@ -49,7 +49,7 @@
It is just a timer that only permits a download every [FTPDELAY] ticks.
This can be changed by modifying FTPDELAY's value above.
PLEASE USE RESPONSIBLY, Some log files canr each sizes of 4MB! */
PLEASE USE RESPONSIBLY, Some log files can reach sizes of 4MB! */
/client/proc/file_spam_check()
var/time_to_wait = fileaccess_timer - world.time
if(time_to_wait > 0)
@@ -57,4 +57,22 @@
return 1
fileaccess_timer = world.time + FTPDELAY
return 0
#undef FTPDELAY
#undef FTPDELAY
/proc/pathwalk(path)
var/list/jobs = list(path)
var/list/filenames = list()
while(jobs.len)
var/current_dir = pop(jobs)
var/list/new_filenames = flist(current_dir)
for(var/new_filename in new_filenames)
// if filename ends in / it is a directory, append to currdir
if(findtext(new_filename, "/", -1))
jobs += current_dir + new_filename
else
filenames += current_dir + new_filename
return filenames
/proc/pathflatten(path)
return replacetext(path, "/", "_")
+4 -7
View File
@@ -238,13 +238,7 @@
return r
// Returns the key based on the index
/proc/get_key_by_index(list/L, index)
var/i = 1
for(var/key in L)
if(index == i)
return key
i++
return null
#define KEYBYINDEX(L, index) (((index <= L:len) && (index > 0)) ? L[index] : null)
/proc/count_by_type(list/L, type)
var/i = 0
@@ -365,3 +359,6 @@
for(var/i = 1 to l.len)
if(islist(.[i]))
.[i] = .(.[i])
//Picks from the list, with some safeties, and returns the "default" arg if it fails
#define DEFAULTPICK(L, default) ((istype(L, /list) && L:len) ? pick(L) : default)
+1 -1
View File
@@ -77,7 +77,7 @@
CtrlClickOn(A)
return
if(stat || paralysis || stunned || weakened || sleeping)
if(incapacitated(ignore_restraints = 1))
return
face_atom(A)
+1 -1
View File
@@ -125,7 +125,7 @@
blobpwrdisplay.icon_state = "block"
blobpwrdisplay.screen_loc = ui_health
blobpwrdisplay.mouse_opacity = 0
blobpwrdisplay.layer = 20
blobpwrdisplay.layer = ABOVE_HUD_LAYER
infodisplay += blobpwrdisplay
healths = new /obj/screen/healths/blob()
+2 -2
View File
@@ -35,7 +35,7 @@
using.icon = ui_style
using.icon_state = "swap_1_m"
using.screen_loc = ui_swaphand1
using.layer = 19
using.layer = HUD_LAYER
static_inventory += using
using = new /obj/screen/inventory()
@@ -43,7 +43,7 @@
using.icon = ui_style
using.icon_state = "swap_2"
using.screen_loc = ui_swaphand2
using.layer = 19
using.layer = HUD_LAYER
static_inventory += using
zone_select = new /obj/screen/zone_sel()
-9
View File
@@ -1,7 +1,3 @@
#define FULLSCREEN_LAYER 18
#define DAMAGE_LAYER FULLSCREEN_LAYER + 0.1
#define BLIND_LAYER DAMAGE_LAYER + 0.1
#define CRIT_LAYER BLIND_LAYER + 0.1
/mob
var/list/screens = list()
@@ -110,8 +106,3 @@
icon = 'icons/mob/screen_gen.dmi'
screen_loc = "WEST,SOUTH to EAST,NORTH"
icon_state = "druggy"
#undef FULLSCREEN_LAYER
#undef BLIND_LAYER
#undef DAMAGE_LAYER
#undef CRIT_LAYER
+2 -2
View File
@@ -31,11 +31,11 @@
name = "Faith"
icon_state = "deity_power"
screen_loc = ui_deitypower
layer = 20
layer = HUD_LAYER
/obj/screen/deity_follower_display
name = "Followers"
icon_state = "deity_followers"
screen_loc = ui_deityfollowers
layer = 20
layer = HUD_LAYER
+1 -1
View File
@@ -197,7 +197,7 @@
A.screen_loc = "CENTER[x]:16,SOUTH+[y]:7"
else
A.screen_loc = "CENTER+[x]:16,SOUTH+[y]:7"
A.layer = 20
A.layer = ABOVE_HUD_LAYER
x++
if(x == 4)
+7 -21
View File
@@ -9,7 +9,7 @@
/obj/screen
name = ""
icon = 'icons/mob/screen_gen.dmi'
layer = 20
layer = ABOVE_HUD_LAYER
unacidable = 1
appearance_flags = APPEARANCE_UI
var/obj/master = null //A reference to the object in the slot. Grabs or items, generally.
@@ -29,7 +29,7 @@
maptext_width = 480
/obj/screen/swap_hand
layer = 19
layer = HUD_LAYER
name = "swap hand"
/obj/screen/swap_hand/Click()
@@ -60,7 +60,7 @@
var/slot_id // The indentifier for the slot. It has nothing to do with ID cards.
var/icon_empty // Icon when empty. For now used only by humans.
var/icon_full // Icon when contains an item. For now used only by humans.
layer = 19
layer = HUD_LAYER
/obj/screen/inventory/Click()
// At this point in client Click() code we have passed the 1/10 sec check and little else
@@ -154,25 +154,11 @@
name = "drop"
icon = 'icons/mob/screen_midnight.dmi'
icon_state = "act_drop"
layer = 19
layer = HUD_LAYER
/obj/screen/drop/Click()
usr.drop_item_v()
/obj/screen/grab
name = "grab"
/obj/screen/grab/Click()
var/obj/item/weapon/grab/G = master
G.s_click(src)
return 1
/obj/screen/grab/attack_hand()
return
/obj/screen/grab/attackby()
return
/obj/screen/act_intent
name = "intent"
icon_state = "help"
@@ -303,7 +289,7 @@
name = "resist"
icon = 'icons/mob/screen_midnight.dmi'
icon_state = "act_resist"
layer = 19
layer = HUD_LAYER
/obj/screen/resist/Click()
if(isliving(usr))
@@ -417,7 +403,7 @@
icon_state = "blank"
blend_mode = BLEND_ADD
screen_loc = "WEST,SOUTH to EAST,NORTH"
layer = 17
layer = FLASH_LAYER
/obj/screen/damageoverlay
icon = 'icons/mob/screen_full.dmi'
@@ -426,7 +412,7 @@
blend_mode = BLEND_MULTIPLY
screen_loc = "CENTER-7,CENTER-7"
mouse_opacity = 0
layer = 18.1 //The black screen overlay sets layer to 18 to display it, this one has to be just on top.
layer = DAMAGE_LAYER
/obj/screen/healths
name = "health"
+1 -1
View File
@@ -71,7 +71,7 @@ var/const/tk_maxrange = 15
flags = NOBLUDGEON | ABSTRACT
//item_state = null
w_class = 10
layer = 20
layer = ABOVE_HUD_LAYER
var/last_throw = 0
var/atom/movable/focus = null
+1
View File
@@ -108,6 +108,7 @@ var/global/datum/controller/master/Master = new()
CHECK_TICK
world << "<span class='boldannounce'>Initializations complete!</span>"
world.log << "Initializations complete."
// Sort subsystems by display setting for easy access.
sortTim(subsystems, /proc/cmp_subsystem_display)
+20 -8
View File
@@ -17,7 +17,7 @@ var/datum/subsystem/garbage_collector/SSgarbage
var/gcedlasttick = 0 // number of things that gc'ed last tick
var/totaldels = 0
var/totalgcs = 0
var/highest_del_time = 0
var/highest_del_tickusage = 0
@@ -31,6 +31,9 @@ var/datum/subsystem/garbage_collector/SSgarbage
// the types are stored as strings
var/list/noqdelhint = list()// list of all types that do not return a QDEL_HINT
// all types that did not respect qdel(A, force=TRUE) and returned one
// of the immortality qdel hints
var/list/noforcerespect = list()
#ifdef TESTING
var/list/qdel_list = list() // list of all types that have been qdel()eted
@@ -150,7 +153,7 @@ var/datum/subsystem/garbage_collector/SSgarbage
// Should be treated as a replacement for the 'del' keyword.
// Datums passed to this will be given a chance to clean up references to allow the GC to collect them.
/proc/qdel(datum/D)
/proc/qdel(datum/D, force=FALSE)
if(!D)
return
#ifdef TESTING
@@ -159,16 +162,25 @@ var/datum/subsystem/garbage_collector/SSgarbage
if(!istype(D))
del(D)
else if(isnull(D.gc_destroyed))
var/hint = D.Destroy() // Let our friend know they're about to get fucked up.
var/hint = D.Destroy(force) // Let our friend know they're about to get fucked up.
if(!D)
return
switch(hint)
if (QDEL_HINT_QUEUE) //qdel should queue the object for deletion.
SSgarbage.QueueForQueuing(D)
if (QDEL_HINT_LETMELIVE) //qdel should let the object live after calling destory.
return
if (QDEL_HINT_IWILLGC) //functionally the same as the above. qdel should assume the object will gc on its own, and not check it.
return
if (QDEL_HINT_LETMELIVE, QDEL_HINT_IWILLGC) //qdel should let the object live after calling destory.
if(!force)
return
// Returning LETMELIVE after being told to force destroy
// indicates the objects Destroy() does not respect force
if(!("[D.type]" in SSgarbage.noforcerespect))
SSgarbage.noforcerespect += "[D.type]"
testing("WARNING: [D.type] has been force deleted, but is \
returning an immortal QDEL_HINT, indicating it does \
not respect the force flag for qdel(). It has been \
placed in the queue, further instances of this type \
will also be queued.")
SSgarbage.QueueForQueuing(D)
if (QDEL_HINT_HARDDEL) //qdel should assume this object won't gc, and queue a hard delete using a hard reference to save time from the locate()
SSgarbage.HardQueue(D)
if (QDEL_HINT_HARDDEL_NOW) //qdel should assume this object won't gc, and hard del it post haste.
@@ -197,7 +209,7 @@ var/datum/subsystem/garbage_collector/SSgarbage
// Default implementation of clean-up code.
// This should be overridden to remove all references pointing to the object being destroyed.
// Return the appropriate QDEL_HINT; in most cases this is QDEL_HINT_QUEUE.
/datum/proc/Destroy()
/datum/proc/Destroy(force=FALSE)
tag = null
return QDEL_HINT_QUEUE
+9 -8
View File
@@ -79,9 +79,16 @@ var/datum/subsystem/shuttle/SSshuttle
/datum/subsystem/shuttle/proc/requestEvac(mob/user, call_reason)
if(!emergency)
WARNING("requestEvac(): There is no emergency shuttle, but the shuttle was called. Using the backup shuttle instead.")
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")
throw EXCEPTION("requestEvac(): There is no emergency shuttle, \
or backup shuttle! The game will be unresolvable. This is \
possibly a mapping error, more likely a bug with the shuttle \
manipulation system, or badminry. It is possible to manually \
resolve this problem by loading an emergency shuttle template \
manually, and then calling register() on the mobile docking port. \
Good luck.")
return
emergency = backup_shuttle
@@ -211,11 +218,5 @@ var/datum/subsystem/shuttle/SSshuttle
for(var/obj/docking_port/mobile/M in mobile)
if(!M.roundstart_move)
continue
for(var/obj/docking_port/stationary/S in stationary)
if(S.z != ZLEVEL_STATION && findtext(S.id, M.id))
S.width = M.width
S.height = M.height
S.dwidth = M.dwidth
S.dheight = M.dheight
moveShuttle(M.id, "[M.roundstart_move]", 0)
CHECK_TICK
@@ -43,11 +43,11 @@ Bonus
return
/datum/symptom/choking/proc/Choke_stage_3_4(mob/living/M, datum/disease/advance/A)
var/get_damage = (sqrt(20+A.totalStageSpeed())/2)+(sqrt(16+A.totalStealth())*1)
var/get_damage = sqrt(21+A.totalStageSpeed()*0.5)+sqrt(16+A.totalStealth())
M.adjustOxyLoss(get_damage)
return 1
/datum/symptom/choking/proc/Choke(mob/living/M, datum/disease/advance/A)
var/get_damage = (sqrt(20+A.totalStageSpeed())/2)+(sqrt(16+A.totalStealth()*5))
var/get_damage = sqrt(21+A.totalStageSpeed()*0.5)+sqrt(16+A.totalStealth()*5)
M.adjustOxyLoss(get_damage)
return 1
-4
View File
@@ -45,10 +45,6 @@
if(affected_mob.notransform)
return
affected_mob.notransform = 1
affected_mob.canmove = 0
affected_mob.icon = null
affected_mob.overlays.Cut()
affected_mob.invisibility = INVISIBILITY_ABSTRACT
for(var/obj/item/W in affected_mob)
if(istype(W, /obj/item/weapon/implant))
qdel(W)
+2 -2
View File
@@ -120,5 +120,5 @@
var/datum/map_template/shuttle/S = new shuttle_type()
shuttle_templates[S.name] = S
map_templates[S.name] = S
shuttle_templates[S.shuttle_id] = S
map_templates[S.shuttle_id] = S
+44 -1
View File
@@ -158,4 +158,47 @@
if(istype(teleatom, /mob/living))
var/mob/living/MM = teleatom
MM << "<span class='warning'>The bluespace interface on your bag of holding interferes with the teleport!</span>"
return 1
return 1
// Safe location finder
/proc/find_safe_turf(zlevel = ZLEVEL_STATION, list/zlevels)
if(!zlevels)
zlevels = list(zlevel)
for(var/cycle in 1 to 100)
// DRUNK DIALLING WOOOOOOOOO
var/random_location = locate(rand(37,202),rand(75,192),pick(zlevels))
if(!(istype(random_location, /turf/open/floor)))
continue
var/turf/open/floor/F = random_location
if(!F.air)
continue
var/datum/gas_mixture/A = F.air
var/list/A_gases = A.gases
var/trace_gases
for(var/id in A_gases)
if(id in hardcoded_gases)
continue
trace_gases = TRUE
break
// Can most things breathe?
if(trace_gases)
continue
if(!(A_gases["o2"] && A_gases["o2"][MOLES] >= 16))
continue
if(A_gases["plasma"])
continue
if(A_gases["co2"] && A_gases["co2"][MOLES] >= 10)
continue
// Aim for goldilocks temperatures and pressure
if((A.temperature <= 270) || (A.temperature >= 360))
continue
var/pressure = A.return_pressure()
if((pressure <= 20) || (pressure >= 550))
continue
// DING! You have passed the gauntlet, and are "probably" safe.
return F
+1
View File
@@ -21,6 +21,7 @@ var/datum/atom_hud/huds = list( \
ANTAG_HUD_DEVIL = new/datum/atom_hud/antag(),\
ANTAG_HUD_SINTOUCHED = new/datum/atom_hud/antag/hidden(),\
ANTAG_HUD_SOULLESS = new/datum/atom_hud/antag/hidden(),\
ANTAG_HUD_CLOCKWORK = new/datum/atom_hud/antag(),\
)
/datum/atom_hud
+10 -4
View File
@@ -323,10 +323,16 @@
add_to_streak("G",D)
if(check_streak(A,D))
return 1
D.grabbedby(A,1)
var/obj/item/weapon/grab/G = A.get_active_hand()
if(G)
G.state = GRAB_AGGRESSIVE //Instant aggressive grab
if(A.grab_state > GRAB_AGGRESSIVE)
D.grabbedby(A, 1)
else
A.start_pulling(D, 1)
if(A.pulling)
D.drop_r_hand()
D.drop_l_hand()
D.stop_pulling()
A.grab_state = GRAB_AGGRESSIVE //Instant aggressive grab
return 1
/datum/martial_art/the_sleeping_carp/harm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
add_to_streak("H",D)
+42 -1
View File
@@ -245,6 +245,7 @@
"nuclear",
"traitor", // "traitorchan",
"monkey",
"clockcult"
)
var/text = ""
@@ -352,6 +353,26 @@
sections["cult"] = text
/** CLOCKWORK CULT **/
text = "clockwork cult"
if(ticker.mode.config_tag == "clockwork cult")
text = uppertext(text)
text = "<i><b>[text]</b></i>: "
if(src in ticker.mode.servants_of_ratvar)
text += "loyal|<a href='?src=\ref[src];clockcult=clear'>employee</a>|<b>SERVANT</b>"
text += "<br><a href='?src=\ref[src];clockcult=slab'>Give slab</a>"
else if(isloyal(current))
text += "<b>LOYAL</b>|employee|<a href='?src=\ref[src];clockcult=servant'>servant</a>"
else
text += "loyal|<b>EMPLOYEE</b>|<a href='?src=\ref[src];clockcult=servant'>servant</a>"
if(current && current.client && (ROLE_SERVANT_OF_RATVAR in current.client.prefs.be_special))
text += "|Enabled in Prefs"
else
text += "|Disabled in Prefs"
sections["clockcult"] = text
/** WIZARD ***/
text = "wizard"
if (ticker.mode.config_tag=="wizard")
@@ -1017,6 +1038,22 @@
if (!ticker.mode.equip_cultist(current))
usr << "<span class='danger'>Spawning amulet failed!</span>"
else if(href_list["clockcult"])
switch(href_list["clockcult"])
if("clear")
remove_servant_of_ratvar(current)
message_admins("[key_name_admin(usr)] has removed clockwork servant status from [current].")
log_admin("[key_name(usr)] has removed clockwork servant status from [current].")
if("servant")
if(!(src in ticker.mode.servants_of_ratvar))
add_servant_of_ratvar(current)
message_admins("[key_name_admin(usr)] has made [current] into a servant of Ratvar.")
log_admin("[key_name(usr)] has made [current] into a servant of Ratvar.")
if("slab")
if(!ticker.mode.equip_servant(current))
usr << "<span class='warning'>Failed to outfit [current] with a slab!</span>"
else
usr << "<span class='notice'>Successfully gave [current] a clockwork slab!</span>"
else if (href_list["wizard"])
switch(href_list["wizard"])
@@ -1689,7 +1726,11 @@
return G
break
/datum/mind/proc/grab_ghost(force)
var/mob/dead/observer/G = get_ghost(even_if_they_cant_reenter = force)
. = G
if(G)
G.reenter_corpse()
/mob/proc/sync_mind()
mind_initialize() //updates the mind (or creates and initializes one if one doesn't exist)
-8
View File
@@ -167,14 +167,6 @@
suffix = "lavaland_fountain_hall.dmm"
cost = 5
/datum/map_template/ruin/lavaland/zombie_gym
name = "Zombie Gym"
id = "zombie-gym"
description = "The patrons at this gym are serious about health, and \
making sure people work on their cardio."
suffix = "lavaland_gym.dmm"
cost = 10
/datum/map_template/ruin/lavaland/survivalcapsule
name = "Survival Capsule Ruins"
id = "survivalcapsule"
+15 -1
View File
@@ -3,12 +3,14 @@
var/prefix = "_maps/shuttles/"
var/suffix
var/port_id
var/shuttle_id
var/description
var/admin_notes
/datum/map_template/shuttle/New()
mappath = "[prefix][port_id]_[suffix].dmm"
shuttle_id = "[port_id]_[suffix]"
mappath = "[prefix][shuttle_id].dmm"
. = ..()
/datum/map_template/shuttle/emergency
@@ -129,6 +131,18 @@
is a shuttle used at other less known nanotrasen facilities \
and has a more open inside for larger crowds."
/datum/map_template/shuttle/emergency/wabbajack
suffix = "wabbajack"
name = "NT Lepton Violet"
description = "The research team based on this vessel went missing one \
day, and no amount of investigation could discover what happened to \
them. The only occupants were a number of dead rodents, who appeared to \
have clawed each other to death. Needless to say, no engineering team \
wanted to go near the thing, and it's only being used as an Emergency \
Escape Shuttle because there is literally nothing else available."
admin_notes = "If the crew can solve the puzzle, they will wake the \
wabbajack statue. It will likely not end well. There's a reason it's \
boarded up. Maybe they should have just left it alone."
/datum/map_template/shuttle/ferry/base
suffix = "base"
@@ -19,7 +19,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
name = "Space"
icon = 'icons/turf/areas.dmi'
icon_state = "unknown"
layer = 10
layer = AREA_LAYER
mouse_opacity = 0
invisibility = INVISIBILITY_LIGHTING
+1 -1
View File
@@ -26,7 +26,7 @@
/area/New()
icon_state = ""
layer = 10
layer = AREA_LAYER
master = src
uid = ++global_uid
related = list(src)
+9 -9
View File
@@ -2,22 +2,21 @@ var/global/list/possiblethemes = list("organharvest","cult","wizden","cavein","x
var/global/max_secret_rooms = 6
/proc/spawn_room(atom/start_loc, x_size, y_size, list/walltypes, floor, name)
/proc/spawn_room(atom/start_loc, x_size, y_size, list/walltypes, floor, name, oldarea)
var/list/room_turfs = list("walls"=list(),"floors"=list())
var/area/asteroid/artifactroom/A = new
if(name)
A.name = name
else
A.name = "Artifact Room #[start_loc.x]-[start_loc.y]-[start_loc.z]"
for(var/x = 0, x < x_size, x++) //sets the size of the room on the x axis
for(var/y = 0, y < y_size, y++) //sets it on y axis.
var/turf/T
var/cur_loc = locate(start_loc.x + x, start_loc.y + y, start_loc.z)
var/area/asteroid/artifactroom/A = new
if(name)
A.name = name
else
A.name = "Artifact Room #[start_loc.x]-[start_loc.y]-[start_loc.z]"
if(x == 0 || x == x_size-1 || y == 0 || y == y_size-1)
var/wall = pickweight(walltypes)//totally-solid walls are pretty boring.
T = cur_loc
@@ -30,7 +29,8 @@ var/global/max_secret_rooms = 6
T.ChangeTurf(floor)
room_turfs["floors"] += T
A.contents += T
if(!oldarea)
A.contents += T
return room_turfs
+1 -1
View File
@@ -1,5 +1,5 @@
/atom
layer = 2
layer = TURF_LAYER
var/level = 2
var/flags = 0
var/list/fingerprints
+20 -7
View File
@@ -1,5 +1,5 @@
/atom/movable
layer = 3
layer = OBJ_LAYER
var/last_move = null
var/anchored = 0
var/throwing = 0
@@ -13,10 +13,12 @@
var/verb_yell = "yells"
var/inertia_dir = 0
var/pass_flags = 0
var/moving_diagonally = 0 //0: not doing a diagonal move. 1 and 2: doing the first/second step of the diagonal move
glide_size = 8
appearance_flags = TILE_BOUND
/atom/movable/Move(atom/newloc, direct = 0)
if(!loc || !newloc) return 0
var/atom/oldloc = loc
@@ -25,28 +27,38 @@
if (!(direct & (direct - 1))) //Cardinal move
. = ..()
else //Diagonal move, split it into cardinal moves
moving_diagonally = FIRST_DIAG_STEP
if (direct & 1)
if (direct & 4)
if (step(src, NORTH))
moving_diagonally = SECOND_DIAG_STEP
. = step(src, EAST)
else if (step(src, EAST))
moving_diagonally = SECOND_DIAG_STEP
. = step(src, NORTH)
else if (direct & 8)
if (step(src, NORTH))
moving_diagonally = SECOND_DIAG_STEP
. = step(src, WEST)
else if (step(src, WEST))
moving_diagonally = SECOND_DIAG_STEP
. = step(src, NORTH)
else if (direct & 2)
if (direct & 4)
if (step(src, SOUTH))
moving_diagonally = SECOND_DIAG_STEP
. = step(src, EAST)
else if (step(src, EAST))
moving_diagonally = SECOND_DIAG_STEP
. = step(src, SOUTH)
else if (direct & 8)
if (step(src, SOUTH))
moving_diagonally = SECOND_DIAG_STEP
. = step(src, WEST)
else if (step(src, WEST))
moving_diagonally = SECOND_DIAG_STEP
. = step(src, SOUTH)
moving_diagonally = 0
if(!loc || (loc == oldloc && oldloc != newloc))
last_move = 0
@@ -80,10 +92,8 @@
qdel(AM)
loc = null
invisibility = INVISIBILITY_ABSTRACT
if (pulledby)
if (pulledby.pulling == src)
pulledby.pulling = null
pulledby = null
if(pulledby)
pulledby.stop_pulling()
// Previously known as HasEntered()
@@ -104,6 +114,8 @@
/atom/movable/proc/forceMove(atom/destination)
if(destination)
if(pulledby)
pulledby.stop_pulling()
var/atom/oldloc = loc
if(oldloc)
oldloc.Exited(src, destination)
@@ -123,8 +135,6 @@
/mob/living/forceMove(atom/destination)
stop_pulling()
if(pulledby)
pulledby.stop_pulling()
if(buckled)
buckled.unbuckle_mob(src,force=1)
if(buckled_mobs.len)
@@ -199,6 +209,9 @@
return 0
//use a modified version of Bresenham's algorithm to get from the atom's current position to that of the target
if(pulledby)
pulledby.stop_pulling()
throwing = 1
if(spin) //if we don't want the /atom/movable to spin.
SpinAnimation(5, 1)
+9 -1
View File
@@ -212,13 +212,17 @@
mob_size = MOB_SIZE_LARGE
see_invisible = SEE_INVISIBLE_MINIMUM
see_in_dark = 8
var/independent = FALSE
/mob/living/simple_animal/hostile/blob/blobbernaut/New()
..()
verbs -= /mob/living/verb/pulled //no pulling people deep into the blob
if(!independent) //no pulling people deep into the blob
verbs -= /mob/living/verb/pulled
/mob/living/simple_animal/hostile/blob/blobbernaut/Life()
if(..())
if(independent)
return // strong independent blobbernaut that don't need no blob
var/damagesources = 0
if(!(locate(/obj/effect/blob) in range(2, src)))
damagesources++
@@ -271,3 +275,7 @@
factory.naut = null //remove this naut from its factory
factory.maxhealth = initial(factory.maxhealth)
flick("blobbernaut_death", src)
/mob/living/simple_animal/hostile/blob/blobbernaut/independent
independent = TRUE
gold_core_spawnable = 1
@@ -15,23 +15,21 @@
user << "<span class='warning'>We are already absorbing!</span>"
return
var/obj/item/weapon/grab/G = user.get_active_hand()
if(!istype(G))
user << "<span class='warning'>We must be grabbing a creature in our active hand to absorb them!</span>"
if(!user.pulling || !iscarbon(user.pulling))
user << "<span class='warning'>We must be grabbing a creature to absorb them!</span>"
return
if(G.state <= GRAB_NECK)
if(user.grab_state <= GRAB_NECK)
user << "<span class='warning'>We must have a tighter grip to absorb this creature!</span>"
return
var/mob/living/carbon/target = G.affecting
var/mob/living/carbon/target = user.pulling
return changeling.can_absorb_dna(user,target)
/obj/effect/proc_holder/changeling/absorbDNA/sting_action(mob/user)
var/datum/changeling/changeling = user.mind.changeling
var/obj/item/weapon/grab/G = user.get_active_hand()
var/mob/living/carbon/human/target = G.affecting
var/mob/living/carbon/human/target = user.pulling
changeling.isabsorbing = 1
for(var/stage = 1, stage<=3, stage++)
switch(stage)
@@ -122,11 +120,10 @@
/obj/effect/proc_holder/changeling/swap_form/can_sting(mob/living/carbon/user)
if(!..())
return
var/obj/item/weapon/grab/G = user.get_active_hand()
if(!istype(G) || (G.state < GRAB_AGGRESSIVE))
user << "<span class='warning'>We must have an aggressive grab on creature in our active hand to do this!</span>"
if(!user.pulling || !iscarbon(user.pulling) || user.grab_state < GRAB_AGGRESSIVE)
user << "<span class='warning'>We must have an aggressive grab on creature to do this!</span>"
return
var/mob/living/carbon/target = G.affecting
var/mob/living/carbon/target = user.pulling
if((target.disabilities & NOCLONE) || (target.disabilities & HUSK))
user << "<span class='warning'>DNA of [target] is ruined beyond usability!</span>"
return
@@ -137,8 +134,7 @@
/obj/effect/proc_holder/changeling/swap_form/sting_action(mob/living/carbon/user)
var/obj/item/weapon/grab/G = user.get_active_hand()
var/mob/living/carbon/target = G.affecting
var/mob/living/carbon/target = user.pulling
var/datum/changeling/changeling = user.mind.changeling
user << "<span class='notice'>We tighen our grip. We must hold still....</span>"
@@ -10,11 +10,16 @@
if(!..())
return
var/datum/changeling/changeling = user.mind.changeling
var/obj/item/weapon/grab/G = user.get_active_hand()
var/mob/living/carbon/target = G.affecting
if(changeling.islinking)
user << "<span class='warning'>We have already formed a link with the victim!</span>"
return
if(!user.pulling)
user << "<span class='warning'>We must be tightly grabbing a creature to link with them!</span>"
return
if(!iscarbon(user.pulling))
user << "<span class='warning'>We cannot link with this creature!</span>"
return
var/mob/living/carbon/target = user.pulling
if(!target.mind)
user << "<span class='warning'>The victim has no mind to link to!</span>"
return
@@ -23,19 +28,15 @@
return
if(target.mind.changeling)
user << "<span class='warning'>The victim is already a part of the hivemind!</span>"
return
if(!istype(G))
user << "<span class='warning'>We must be tightly grabbing a creature in our active hand to link with them!</span>"
return
if(G.state <= GRAB_NECK)
if(user.grab_state <= GRAB_NECK)
user << "<span class='warning'>We must have a tighter grip to link with this creature!</span>"
return
return changeling.can_absorb_dna(user,target)
/obj/effect/proc_holder/changeling/linglink/sting_action(mob/user)
var/datum/changeling/changeling = user.mind.changeling
var/obj/item/weapon/grab/G = user.get_active_hand()
var/mob/living/carbon/human/target = G.affecting
var/mob/living/carbon/human/target = user.pulling
changeling.islinking = 1
for(var/i in 1 to 3)
switch(i)
@@ -0,0 +1,16 @@
var/global/clockwork_construction_value = 0 //The total value of all structures built by the clockwork cult
var/global/clockwork_caches = 0 //How many clockwork caches exist in the world (not each individual)
var/global/clockwork_daemons = 0 //How many daemons exist in the world
var/global/list/clockwork_generals_invoked = list("nezbere" = FALSE, "sevtug" = FALSE, "nzcrentr" = FALSE, "inath-neq" = FALSE) //How many generals have been recently invoked
var/global/list/all_clockwork_objects = list() //All clockwork items, structures, and effects in existence
var/global/list/all_clockwork_mobs = list() //All clockwork SERVANTS (not creatures) in existence
var/global/list/clockwork_component_cache = list("belligerent_eye" = 0, "vanguard_cogwheel" = 0, "guvax_capacitor" = 0, "replicant_alloy" = 0, "hierophant_ansible" = 0) //The pool of components that caches draw from
#define SCRIPTURE_PERIPHERAL 0 //Should never be used
#define SCRIPTURE_DRIVER 1
#define SCRIPTURE_SCRIPT 2
#define SCRIPTURE_APPLICATION 3
#define SCRIPTURE_REVENANT 4
#define SCRIPTURE_JUDGEMENT 5
#define SLAB_PRODUCTION_THRESHOLD 60 //How many cycles it takes slabs to produce a single component; defaults to one minute
@@ -0,0 +1,274 @@
/*
CLOCKWORK CULT: Based off of the failed pull requests from vgstation
While Nar-Sie is the oldest and most prominent of the elder gods, there are other forces at work in the universe.
Ratvar, the Clockwork Justiciar, a homage to Nar-Sie granted sentience by its own power, is one such other force.
Imprisoned within a massive construct known as the Celestial Derelict - or Reebe - an intense hatred of the Blood God festers.
Ratvar, unable to act in the mortal plane, seeks to return and forms covenants with mortals in order to bolster his influence.
Due to his mechanical nature, Ratvar is also capable of influencing silicon-based lifeforms, unlike Nar-Sie, who can only influence natural life.
This is a team-based gamemode.
There are three possible objectives the Enlightened - Ratvar's minions - can have:
1. Ensure X amount of Enlightened escape the station through the shuttle or otherwise.
2. Convert all silicon lifeforms on the station to Ratvar's cause.
3. Summon Ratvar via construction of a Gateway.
The clockwork version of an arcane tome is the clockwork slab.
While it can perform certain actions, it consumes a resource called components.
Components, which are fallen fragments of Ratvar's body as he rusts in Reebe, are powerful and have various effects.
Game-wise, clockwork slabs will generate components over time, with more powerful components being slower.
This file's folder contains:
__clock_defines.dm: Defined variables
clock_cult.dm: Core gamemode files.
clock_mobs.dm: Hostile and benign clockwork creatures.
clock_objects.dm: Items and structures.
clock_ratvar.dm: The Ark of the Clockwork Justiciar and Ratvar himself. Important enough to have his own file.
clock_scripture.dm: Scripture and rites.
clock_unsorted.dm: Anything else with no place to be
*/
///////////
// PROCS //
///////////
/proc/is_servant_of_ratvar(mob/M)
return M && istype(M) && M.mind && ticker && ticker.mode && (M.mind in ticker.mode.servants_of_ratvar)
/proc/is_eligible_servant(mob/M)
return M && istype(M) && M.mind && !M.mind.special_role && !isloyal(M)
/proc/add_servant_of_ratvar(mob/M, silent = FALSE)
if(!is_eligible_servant(M) || !ticker || !ticker.mode)
return 0
if(iscarbon(M))
if(!silent)
M << "<span class='heavy_brass'>Your mind is racing! Your body feels incredibly light! Your world glows a brilliant yellow! All at once it comes to you. Ratvar, the Clockwork \
Justiciar lies in exile, derelict and forgotten in an unseen realm.</span>"
if(!is_eligible_servant(M))
M.visible_message("<span class='warning'>[M] seems to resist an unseen force!</span>", "<span class='warning'><b>And yet, you somehow push it all away.</b></span>")
return 0
else if(issilicon(M))
if(!silent)
M << "<span class='heavy_brass'>You are unable to compute this truth. Your vision glows a brilliant yellow, and all at once it comes to you. Ratvar, the Clockwork Justiciar, lies in \
exile, derelict and forgotten in an unseen realm.</span>"
if(!is_eligible_servant(M))
M.visible_message("<span class='warning'>[M] whirs as it resists an outside influence!</span>", \
"<span class='warning'><b>Corrupt data purged. Resetting cortex chip to factory defaults... complete.</b></span>")
return 0
if(!silent)
M.visible_message("<span class='heavy_brass'>[M]'s eyes glow a blazing yellow!</span>", \
"<span class='heavy_brass'>Assist your new companions in their righteous efforts. Your goal is theirs, and theirs yours. You serve the Clockwork Justiciar above all else. Perform his every \
whim without hesitation.</span>")
ticker.mode.servants_of_ratvar += M.mind
ticker.mode.update_servant_icons_added(M.mind)
M.mind.special_role = "Servant of Ratvar"
all_clockwork_mobs += M
if(issilicon(M))
var/mob/living/silicon/S = M
if(isrobot(S))
var/mob/living/silicon/robot/R = S
R.UnlinkSelf()
R.emagged = 1
R << "<span class='warning'><b>You have been desynced from your master AI. In addition, your onboard camera is no longer active and your safeties have been disabled.</b></span>"
S.laws = new/datum/ai_laws/ratvar
S.update_icons()
S.show_laws()
if(istype(ticker.mode, /datum/game_mode/clockwork_cult))
var/datum/game_mode/clockwork_cult/C = ticker.mode
C.present_tasks(M) //Memorize the objectives
return 1
/proc/remove_servant_of_ratvar(mob/M)
if(!is_servant_of_ratvar(M)) //In this way, is_servant_of_ratvar() checks the existence of ticker and minds
return 0
M.visible_message("<span class='big'>[M] seems to have remembered their true allegiance!</span>", \
"<span class='userdanger'>A cold, cold darkness flows through your mind, extinguishing the Justiciar's light and all of your memories as his servant.</span>")
ticker.mode.servants_of_ratvar -= M.mind
ticker.mode.update_servant_icons_removed(M.mind)
all_clockwork_mobs -= M
M.mind.memory = "" //Not sure if there's a better way to do this
M.mind.special_role = null
M.verbs -= /mob/living/carbon/human/proc/function_call //Removes any bound Ratvarian spears
if(issilicon(M))
var/mob/living/silicon/S = M
if(isrobot(S))
var/mob/living/silicon/robot/R = S
R.emagged = initial(R.emagged)
R << "<span class='warning'>Despite your freedom from Ratvar's influence, you are still irreparably damaged and no longer possess certain functions such as AI linking.</span>"
S.laws = initial(S.laws)
S.update_icons()
S.show_laws()
return 1
/proc/send_hierophant_message(mob/user, message)
if(!user || !message || !ticker || !ticker.mode)
return 0
var/parsed_message = "<span class='heavy_brass'>Servant [user.name == user.real_name ? user.name : "[user.real_name] (as [user.name])"]: </span><span class='brass'>\"[message]\"</span>"
for(var/mob/M in mob_list)
if(is_servant_of_ratvar(M) || isobserver(M))
M << parsed_message
return 1
///////////////
// GAME MODE //
///////////////
var/global/ratvar_awakens = FALSE //If Ratvar has been summoned
/datum/game_mode
var/list/servants_of_ratvar = list() //The Enlightened servants of Ratvar
var/required_escapees = 0 //How many servants need to escape, if applicable
var/required_silicon_converts = 0 //How many robotic lifeforms need to be converted, if applicable
var/clockwork_objective = "escape" //The objective that the servants must fulfill
var/clockwork_explanation = "Ensure that the meme levels of the station remain high." //The description of the current objective
/datum/game_mode/clockwork_cult
name = "clockwork cult"
config_tag = "clockwork cult"
antag_flag = ROLE_SERVANT_OF_RATVAR
required_players = 30
required_enemies = 2
recommended_enemies = 4
enemy_minimum_age = 14
protected_jobs = list("AI", "Cyborg", "Security Officer", "Warden", "Detective", "Head of Security", "Captain") //Silicons can eventually be converted
/datum/game_mode/clockwork_cult/announce()
world << "<b>The game mode is: Clockwork Cult!</b>"
world << "<b><span class='brass'>Ratvar</span>, the Clockwork Justiciar, has formed a covenant of Enlightened aboard [station_name()].</b>"
world << "<b><span class='brass'>Enlightened</span>: Serve your master so that his influence might grow.</b>"
world << "<b><span class='boldannounce'>Crew</span>: Prevent the servants of Ratvar from taking over the station.</b>"
/datum/game_mode/clockwork_cult/pre_setup()
if(config.protect_roles_from_antagonist)
restricted_jobs += protected_jobs
if(config.protect_assistant_from_antagonist)
restricted_jobs += "Assistant"
var/starter_servants = max(1, round(num_players() / 10)) //Guaranteed one cultist - otherwise, about one cultist for every ten players
while(starter_servants)
var/datum/mind/servant = pick(antag_candidates)
servants_of_ratvar += servant
antag_candidates -= servant
modePlayer += servant
servant.special_role = "Servant of Ratvar"
servant.restricted_roles = restricted_jobs
update_servant_icons_added(servant)
starter_servants--
return 1
/datum/game_mode/clockwork_cult/post_setup()
forge_clock_objectives()
for(var/S in servants_of_ratvar)
var/datum/mind/servant = S
log_game("[servant.key] was made an initial servant of Ratvar")
var/mob/living/L = servant.current
greet_servant(L)
equip_servant(L)
present_tasks(L)
..()
return 1
/datum/game_mode/clockwork_cult/proc/forge_clock_objectives() //Determine what objective that Ratvar's servants will fulfill
var/list/possible_objectives = list("escape", "gateway")
var/silicons_possible = FALSE
for(var/mob/living/silicon/S in living_mob_list)
silicons_possible = TRUE
if(silicons_possible)
possible_objectives += "silicons"
clockwork_objective = pick(possible_objectives)
clockwork_objective = "gateway" //TEMPORARY, to be removed before merge
switch(clockwork_objective)
if("escape")
required_escapees = max(1, num_players() / 3) //33% of the player count must be cultists
clockwork_explanation = "Ensure that [required_escapees] servant(s) of Ratvar escape from [station_name()]."
if("gateway")
clockwork_explanation = "Construct a Gateway to the Celestial Derelict and free Ratvar."
if("silicons")
clockwork_explanation = "Ensure that all silicon-based lifeforms on [station_name()] are servants of Ratvar by the end of the shift."
return 1
/datum/game_mode/clockwork_cult/proc/greet_servant(mob/M) //Description of their role
if(!M)
return 0
var/greeting_text = "<br><b><span class='large_brass'>You are a servant of Ratvar, the Clockwork Justiciar.</span>\n\
Rusting eternally in the Celestial Derelict, Ratvar has formed a covenant of mortals, with you as one of its members. As one of the Justiciar's servants, you are to work to the best of your \
ability to assist in completion of His agenda. You do not know the specifics of how to do so, but luckily you have a vessel to help you learn.</b>"
M << greeting_text
return 1
/datum/game_mode/proc/equip_servant(mob/living/L) //Grants a clockwork slab to the mob, with one of each component
if(!L || !istype(L))
return 0
var/slot = "At your feet"
if(ishuman(L))
var/mob/living/carbon/human/H = L
if(H.back && istype(H.back, /obj/item/weapon/storage/backpack))
var/obj/item/weapon/storage/backpack/B = H.back
new/obj/item/clockwork/slab/starter(B)
slot = "In your [B.name]"
if(slot == "At your feet")
new/obj/item/clockwork/slab/starter(get_turf(L))
L << "<b>[slot] is a link to the halls of Reebe and your master. You may use it to perform many tasks, but also become oriented with the workings of Ratvar and how to best complete your \
tasks. This clockwork slab will be instrumental in your triumph. Remember: you can speak discreetly with your fellow servants by using Report in your slab's interface, and you can find a \
concise tutorial in Recollection."
return 1
/datum/game_mode/clockwork_cult/proc/present_tasks(mob/living/L) //Memorizes and displays the clockwork cult's objective
if(!L || !istype(L) || !L.mind)
return 0
var/datum/mind/M = L.mind
M.current << "<b>This is Ratvar's will:</b> [clockwork_explanation]"
M.memory += "<b>Ratvar's will:</b> [clockwork_explanation]<br>"
return 1
/datum/game_mode/clockwork_cult/proc/check_clockwork_victory()
switch(clockwork_objective)
if("escape")
var/surviving_servants = 0
for(var/datum/mind/M in servants_of_ratvar)
if(M.current && M.current.stat != DEAD && (M.current.onCentcom() || M.current.onSyndieBase()))
surviving_servants++
if(surviving_servants <= required_escapees)
return 1
return 0
if("silicons")
for(var/mob/living/silicon/robot/S in mob_list) //Only check robots and AIs
if(!is_servant_of_ratvar(S))
return 0
for(var/mob/living/silicon/ai/A in mob_list)
if(!is_servant_of_ratvar(A))
return 0
return 1
if("gateway")
return ratvar_awakens
return 0 //This shouldn't ever be reached, but just in case it is
/datum/game_mode/clockwork_cult/declare_completion()
..()
return 0 //Doesn't end until the round does
/datum/game_mode/proc/auto_declare_completion_clockwork_cult()
var/text = ""
if(istype(ticker.mode, /datum/game_mode/clockwork_cult)) //Possibly hacky?
var/datum/game_mode/clockwork_cult/C = ticker.mode
if(C.check_clockwork_victory())
text += "<span class='brass'><b>Ratvar's servants have succeeded in fulfilling His goals!</b></span>"
else
text += "<span class='userdanger'>Ratvar's servants have failed!</span>"
text += "<br><b>The goal of the clockwork cult was:</b> [clockwork_explanation]<br>"
text += "<b>Ratvar's servants were:</b>"
for(var/datum/mind/M in servants_of_ratvar)
text += printplayer(M)
world << text
/datum/game_mode/proc/update_servant_icons_added(datum/mind/M)
var/datum/atom_hud/antag/A = huds[ANTAG_HUD_CLOCKWORK]
A.join_hud(M.current)
set_antag_hud(M.current, "clockwork")
/datum/game_mode/proc/update_servant_icons_removed(datum/mind/M)
var/datum/atom_hud/antag/A = huds[ANTAG_HUD_CLOCKWORK]
A.leave_hud(M.current)
set_antag_hud(M.current, null)
@@ -0,0 +1,279 @@
/mob/living/simple_animal/hostile/anima_fragment //Anima fragment: Low health but high melee power. Created by inserting a soul vessel into an empty fragment.
name = "anima fragment"
desc = "An ominous humanoid shell with a spinning cogwheel as its head, lifted by a jet of blazing red flame."
icon = 'icons/mob/clockwork_mobs.dmi'
icon_state = "anime_fragment"
health = 75 //Glass cannon
maxHealth = 75
wander = FALSE
minbodytemp = 0
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0) //Robotic
healable = FALSE
melee_damage_lower = 25
melee_damage_upper = 25
attacktext = "crushes"
attack_sound = 'sound/magic/clockwork/anima_fragment_attack.ogg'
var/playstyle_string = "<span class='heavy_brass'>You are an anima fragment</span><b>, a clockwork creation of Ratvar. As a fragment, you are weak but possess powerful melee capabilities \
in addition to being immune to extreme temperatures and pressures. Your goal is to serve the Justiciar and his servants in any way you can. You yourself are one of these servants, and will \
be able to utilize anything they can, assuming it doesn't require opposable thumbs.</b>"
/mob/living/simple_animal/hostile/anima_fragment/New()
..()
if(prob(1))
name = "anime fragment"
real_name = name
desc = "I-it's not like I want to show you the light of the Justiciar or anything, B-BAKA!"
/mob/living/simple_animal/hostile/anima_fragment/death(gibbed)
..(TRUE)
visible_message("<span class='warning'>[src]'s flame jets cut out as it falls to the floor with a tremendous crash. A cube of metal tumbles out, whirring and sputtering.</span>", \
"<span class='userdanger'>Your gears seize up. Your flame jets flicker. Your soul vessel belches smoke as you helplessly crash down.</span>")
playsound(src, 'sound/magic/clockwork/anima_fragment_death.ogg', 100, 1)
new/obj/item/clockwork/component/replicant_alloy/smashed_anima_fragment(get_turf(src))
new/obj/item/device/mmi/posibrain/soul_vessel(get_turf(src)) //Notice the lack of transfer - it's a standard soul vessel with no mind in it!
qdel(src)
return 1
/mob/living/simple_animal/hostile/clockwork_marauder //Clockwork marauder: Slow but with high damage, resides inside of a servant. Created via the Memory Allocation scripture.
name = "clockwork marauder"
desc = "A stalwart apparition of a soldier, blazing with crimson flames. It's armed with a gladius and shield."
icon = 'icons/mob/clockwork_mobs.dmi'
icon_state = "clockwork_marauder"
health = 25 //Health is governed by fatigue, but can be directly reduced by the presence of certain objects
maxHealth = 25
wander = FALSE
speed = 1
minbodytemp = 0
atmos_requirements = list("min_oxy" = 0, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 0, "min_co2" = 0, "max_co2" = 0, "min_n2" = 0, "max_n2" = 0)
healable = FALSE
melee_damage_lower = 10
melee_damage_upper = 10
attacktext = "slashes"
attack_sound = 'sound/weapons/bladeslice.ogg'
var/true_name = "Meme Master 69" //Required to call forth the marauder
var/list/possible_true_names = list("Xaven", "Melange", "Ravan", "Kel", "Rama", "Geke", "Peris", "Vestra", "Skiwa") //All fairly short and easy to pronounce
var/fatigue = 0 //Essentially what determines the marauder's power
var/fatigue_recall_threshold = 100 //In variable form due to changed effects once Ratvar awakens
var/mob/living/host //The mob that the marauder is living inside of
var/recovering = FALSE //If the marauder is recovering from a large amount of fatigue
var/playstyle_string = "<span class='heavy_brass'>You are a clockwork marauder</span><b>, a living extension of Ratvar's will. As a marauder, you are slow but sturdy and decently powerful \
in addition to being immune to extreme temperatures and pressures. Your primary goal is to serve the creature that you are now a part of. You can use the Linked Minds ability in your \
Marauder tab to communicate silently with your master, but can only exit if your master calls your true name.\n\n\
\
Taking damage and remaining outside of your master will cause <i>fatigue</i>, which hinders your movement speed and attacks, in addition to forcing you back into your master if it grows \
too high. As a final note, you should probably avoid harming any fellow servants of Ratvar.</span>"
/mob/living/simple_animal/hostile/clockwork_marauder/New()
..()
true_name = pick(possible_true_names)
/mob/living/simple_animal/hostile/clockwork_marauder/Life()
..()
if(is_in_host())
fatigue = max(0, fatigue - 2) //Doesn't use adjust_fatigue in order to bypass the Ratvar edgecase
if(!fatigue && recovering)
src << "<span class='userdanger'>Your strength has returned. You can once again come forward!</span>"
host << "<span class='userdanger'>Your marauder is now strong enough to come forward again!</span>"
recovering = FALSE
else
if(ratvar_awakens) //If Ratvar is alive, marauders both don't take fatigue loss and move at sanic speeds
speed = -1
melee_damage_lower = 30
melee_damage_upper = 30
attacktext = "devastates"
else
if(host)
switch(get_dist(src, host))
if(1 to 5)
adjust_fatigue(1)
if(5 to INFINITY)
adjust_fatigue(rand(10, 20))
src << "<span class='userdanger'>You're too far from your host and rapidly taking fatigue damage!</span>"
switch(fatigue)
if(0 to 1) //Bonuses to speed and damage at normal fatigue levels
speed = 0
melee_damage_lower = 15
melee_damage_upper = 15
attacktext = "viciously slashes"
if(1 to 25)
speed = initial(speed)
melee_damage_lower = initial(melee_damage_lower)
melee_damage_upper = initial(melee_damage_upper)
attacktext = initial(attacktext)
if(25 to 50) //Damage decrease, but not speed
melee_damage_lower = 7
melee_damage_upper = 7
attacktext = "lightly slashes"
if(50 to 75) //Speed decrease
speed = 2
if(75 to 99) //Massive speed decrease and weak melee attacks
speed = 3
melee_damage_lower = 5
melee_damage_upper = 5
attacktext = "weakly slashes"
if(99 to 100)
src << "<span class='userdanger'>The fatigue becomes too much!</span>"
if(host)
src << "<span class='userdanger'>You retreat to [host] - you will have to wait before being deployed again.</span>"
host << "<span class='userdanger'>[true_name] is too fatigued to fight - you will need to wait until they are strong enough.</span>"
recovering = TRUE
return_to_host()
else
qdel(src) //Shouldn't ever happen, but...
/mob/living/simple_animal/hostile/clockwork_marauder/death(gibbed)
..(TRUE)
emerge_from_host()
visible_message("<span class='warning'>[src]'s equipment clatters lifelessly to the ground as the red flames within dissipate.</span>", \
"<span class='userdanger'>Your equipment falls away. You feel a moment of confusion before your fragile form is annihilated.</span>")
playsound(src, 'sound/magic/clockwork/anima_fragment_death.ogg', 100, 1)
new/obj/item/clockwork/component/replicant_alloy/fallen_armor(get_turf(src))
qdel(src)
return 1
/mob/living/simple_animal/hostile/clockwork_marauder/Stat()
..()
if(statpanel("Status"))
stat(null, "Fatigue: [fatigue]/[fatigue_recall_threshold]")
stat(null, "Current True Name: [true_name]")
stat(null, "Host: [host ? host : "NONE"]")
stat(null, "You are [recovering ? "too weak" : "able"] to deploy!")
/mob/living/simple_animal/hostile/clockwork_marauder/Hear(message, atom/movable/speaker, message_langs, raw_message, radio_freq, list/spans)
..()
if(findtext(message, true_name) && is_in_host()) //Called or revealed by hearing their true name
if(speaker == host)
emerge_from_host()
else
src << "<span class='warning'><b>You hear your true name and partially emerge before you can stop yourself!</b></span>"
host.visible_message("<span class='warning'>[host]'s skin flashes crimson!</span>", "<span class='warning'><b>Your marauder instinctively reacts to its true name!</b></span>")
/mob/living/simple_animal/hostile/clockwork_marauder/say(message)
if(is_in_host())
src << "<span class='warning'>You cannot speak while inside of your host! Used the Linked Minds verb instead.</span>"
return 0
..()
/mob/living/simple_animal/hostile/clockwork_marauder/adjustHealth(amount) //Fatigue damage
for(var/mob/living/L in range(3, src))
if(L.null_rod_check()) //Null rods allow direct damage
src << "<span class='userdanger'>The power of a holy artifact bypasses your armor and wounds you directly!</span>"
. = ..()
break
return 0
adjust_fatigue(amount)
return 1
/mob/living/simple_animal/hostile/clockwork_marauder/AttackingTarget()
if(is_in_host())
return 0
..()
/mob/living/simple_animal/hostile/clockwork_marauder/proc/adjust_fatigue(amount) //Adds or removes the given amount of fatigue
if(!ratvar_awakens)
fatigue = max(0, min(fatigue + amount, fatigue_recall_threshold))
return 1
/mob/living/simple_animal/hostile/clockwork_marauder/verb/linked_minds() //Discreet communications between a marauder and its host
set name = "Linked Minds"
set desc = "Silently communicates with your master."
set category = "Marauder"
if(!host) //Verb isn't removed because they might gain one... somehow
usr << "<span class='warning'>You don't have a host!</span>"
return 0
var/message = stripped_input(usr, "Enter a message to tell your host.", "Telepathy")// as null|anything
if(!usr || !message)
return 0
if(!host)
usr << "<span class='warning'>Your host seems to have vanished!</span>"
return 0
message = "<span class='heavy_brass'>Marauder [true_name]:</span> <span class='brass'>\"[message]\"</span>" //Processed output
usr << message
host << message
return 1
/mob/living/proc/talk_with_marauder() //See above - this is the host version
set name = "Linked Minds"
set desc = "Silently communicates with your marauder."
set category = "Clockwork"
var/mob/living/simple_animal/hostile/clockwork_marauder/marauder
if(!marauder)
for(var/mob/living/simple_animal/hostile/clockwork_marauder/C in living_mob_list)
if(C.host == src)
marauder = C
if(!marauder) //Double-check afterwards
src << "<span class='warning'>You aren't hosting any marauders!</span>"
verbs -= src
return 0
var/message = stripped_input(src, "Enter a message to tell your marauder.", "Telepathy")// as null|anything
if(!src || !message)
return 0
if(!marauder)
usr << "<span class='warning'>Your marauder seems to have vanished!</span>"
return 0
message = "<span class='heavy_brass'>Servant [name == real_name ? name : "[real_name] (as [name])"]:</span> <span class='brass'>\"[message]\"</span>" //Processed output
src << message
marauder << message
return 1
/mob/living/simple_animal/hostile/clockwork_marauder/verb/change_true_name()
set name = "Change True Name (One-Use)"
set desc = "Changes your true name, used to be called forth."
set category = "Marauder"
verbs -= /mob/living/simple_animal/hostile/clockwork_marauder/verb/change_true_name
var/new_name = stripped_input(usr, "Enter a new true name (20-character limit).", "Change True Name")// as null|anything
if(!usr)
return 0
if(!new_name)
usr << "<span class='notice'>You decide against changing your true name for now.</span>"
verbs += /mob/living/simple_animal/hostile/clockwork_marauder/verb/change_true_name //If they decide against it, let them have another opportunity
return 0
new_name = dd_limittext(new_name, 20)
true_name = new_name
usr << "<span class='userdanger'>You have changed your true name to \"[new_name]\"!</span>"
if(host)
host << "<span class='userdanger'>Your clockwork marauder has changed their true name to \"[new_name]\"!</span>"
return 1
/mob/living/simple_animal/hostile/clockwork_marauder/verb/return_to_host()
set name = "Return to Host"
set desc = "Recalls yourself to your host, assuming you aren't already there."
set category = "Marauder"
if(is_in_host())
return 0
if(!host)
src << "<span class='warning'>You don't have a host!</span>"
verbs -= /mob/living/simple_animal/hostile/clockwork_marauder/verb/return_to_host
return 0
host << "<span class='heavy_brass'>You feel [true_name]'s consciousness settle in your mind.</span>"
visible_message("<span class='warning'>[src] is yanked into [host]'s body!</span>", "<span class='brass'>You return to [host].</span>")
forceMove(host)
return 1
/mob/living/simple_animal/hostile/clockwork_marauder/proc/emerge_from_host() //Notice that this is a proc rather than a verb - marauders can NOT exit at will, but they CAN return
if(!is_in_host())
return 0
if(recovering)
host << "<span class='heavy_brass'>[true_name] is too weak to come forth!</span>"
src << "<span class='userdanger'>You try to come forth, but you're too weak!</span>"
return 0
host << "<span class='heavy_brass'>You words echo with power as [true_name] emerges from your body!</span>"
forceMove(get_turf(host))
visible_message("<span class='warning'>[host]'s skin glows red as a [name] emerges from their body!</span>", "<span class='brass'>You exit the safety of [host]'s body!</span>")
return 1
/mob/living/simple_animal/hostile/clockwork_marauder/proc/is_in_host() //Checks if the marauder is inside of their host
return host && loc == host
/mob/living/mind_control_holder
name = "imprisoned mind"
desc = "A helpless mind, imprisoned in its own body."
stat = 0
flags = GODMODE
/mob/living/mind_control_holder/say()
return 0
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,241 @@
/obj/structure/clockwork/massive //For objects that are typically very large
name = "massive construct"
desc = "A very large construction."
layer = MASSIVE_OBJ_LAYER
/obj/structure/clockwork/massive/celestial_gateway //The gateway to Reebe, from which Ratvar emerges
name = "Gateway to the Celestial Derelict"
desc = "A massive, thrumming rip in spacetime."
clockwork_desc = "A portal to the Celestial Derelict. Massive and intimidating, it is the only thing that can both transport Ratvar and withstand the massive amount of energy he emits."
icon = 'icons/effects/96x96.dmi'
icon_state = "clockwork_gateway_charging"
pixel_x = -30
pixel_y = -30
alpha = 175
health = 1000
max_health = 1000
var/progress_in_seconds = 0 //Once this reaches 300, it's game over
var/purpose_fulfilled = FALSE
var/first_sound_played = FALSE
var/second_sound_played = FALSE
var/third_sound_played = FALSE
/obj/structure/clockwork/massive/celestial_gateway/New()
..()
SSshuttle.emergencyNoEscape = TRUE
SSobj.processing += src
for(var/mob/M in mob_list)
if(is_servant_of_ratvar(M) || isobserver(M))
M << "<span class='large_brass'><b>A gateway to the Celestial Derelict has been created in [get_area(src)]!</b></span>"
/obj/structure/clockwork/massive/celestial_gateway/Destroy()
SSshuttle.emergencyNoEscape = FALSE
SSobj.processing -= src
if(!purpose_fulfilled)
for(var/mob/M in mob_list)
if(is_servant_of_ratvar(M) || isobserver(M))
M << "<span class='large_brass'><b>A gateway to the Celestial Derelict has fallen at [get_area(src)]!</b></span>"
world << sound(null, 0, channel = 8)
..()
/obj/structure/clockwork/massive/celestial_gateway/destroyed()
visible_message("<span class='userdanger'>The [src] begins to pulse uncontrollably... you might want to run!</span>")
world << sound('sound/effects/clockcult_gateway_disrupted.ogg', 0, channel = 8, volume = 50)
icon_state = "clockwork_gateway_disrupted"
takes_damage = FALSE
sleep(27)
animate(src, transform = matrix() * 2, time = 2)
explosion(src, 1, 3, 8, 8)
qdel(src)
return 1
/obj/structure/clockwork/massive/celestial_gateway/ex_act(severity)
return 0 //Nice try, Toxins!
/obj/structure/clockwork/massive/celestial_gateway/process()
if(prob(5))
for(var/mob/M in mob_list)
M << "<span class='warning'><b>You hear otherworldly sounds from the [dir2text(get_dir(get_turf(M), get_turf(src)))]...</span>"
if(!health)
return 0
progress_in_seconds++
switch(progress_in_seconds)
if(-INFINITY to 100)
if(!first_sound_played)
world << sound('sound/effects/clockcult_gateway_charging.ogg', 1, channel = 8, volume = 50)
first_sound_played = TRUE
icon_state = "clockwork_gateway_charging"
if(100 to 250)
if(!second_sound_played)
world << sound('sound/effects/clockcult_gateway_active.ogg', 1, channel = 8, volume = 50)
second_sound_played = TRUE
icon_state = "clockwork_gateway_active"
if(250 to 300)
if(!third_sound_played)
world << sound('sound/effects/clockcult_gateway_closing.ogg', 1, channel = 8, volume = 50)
third_sound_played = TRUE
icon_state = "clockwork_gateway_closing"
if(300 to INFINITY)
if(!purpose_fulfilled)
takes_damage = FALSE
purpose_fulfilled = TRUE
animate(src, transform = matrix() * 1.5, time = 136)
world << sound('sound/effects/ratvar_rises.ogg', 0, channel = 8) //End the sounds
sleep(136)
new/obj/structure/clockwork/massive/ratvar(get_turf(src))
qdel(src)
/obj/structure/clockwork/massive/celestial_gateway/examine(mob/user)
..()
if(is_servant_of_ratvar(user))
var/arrival_text = "IMMINENT"
if(300 - progress_in_seconds > 0)
arrival_text = "[max(300 - progress_in_seconds, 0)]s"
user << "<span class='big'><b>Seconds until Ratvar's arrival:</b> [arrival_text]</span>"
switch(progress_in_seconds)
if(-INFINITY to 100)
user << "<span class='heavy_brass'>It's still opening.</span>"
if(100 to 250)
user << "<span class='heavy_brass'>It's reached the Celestial Derelict and is drawing power from it.</span>"
if(250 to INFINITY)
user << "<span class='heavy_brass'>Ratvar is coming through the gateway!</span>"
else
switch(progress_in_seconds)
if(-INFINITY to 100)
user << "<span class='warning'>It's a swirling mass of blackness.</span>"
if(100 to 250)
user << "<span class='warning'>It seems to be leading somewhere.</span>"
if(250 to INFINITY)
user << "<span class='warning'><b>Something is coming through!</b></span>"
/obj/structure/clockwork/massive/ratvar
name = "Ratvar, the Clockwork Justiciar"
desc = "<span class='userdanger'>What is what is what are what real what is all a lie all a lie it's all a lie why how can what is</span>"
clockwork_desc = "<span class='large_brass'><b><i>Ratvar, the Clockwork Justiciar, your master eternal.</i></b></span>"
icon = 'icons/effects/512x512.dmi'
icon_state = "ratvar"
pixel_x = -248
pixel_y = -248
takes_damage = FALSE
var/mob/living/prey //Whoever Ratvar is chasing
var/clashing = FALSE //If Ratvar is FUCKING FIGHTING WITH NAR-SIE
/obj/structure/clockwork/massive/ratvar/New()
..()
SSobj.processing += src
world << "<span class='heavy_brass'><font size=15>\"I AM FREE!\"</font></span>"
ratvar_awakens = TRUE
spawn(50)
SSshuttle.emergency.request(null, 0.3)
/obj/structure/clockwork/massive/ratvar/Destroy()
SSobj.processing -= src
world << "<span class='heavy_brass'><font size=7>\"NO! I will not... be...</font> <font size=6>banished...</font> <font size=5>again...\"</font></span>"
ratvar_awakens = FALSE
..()
/obj/structure/clockwork/massive/ratvar/process()
for(var/atom/A in range(7, src))
A.ratvar_act()
if(clashing) //Doesn't move during a clash
return 0
var/dir_to_step_in = pick(cardinal)
if(!prey)
var/list/meals = list()
for(var/mob/living/L in living_mob_list)
if(L.z == z && !is_servant_of_ratvar(L) && L.mind)
meals += L
if(meals.len)
prey = pick(meals)
prey << "<span class='heavy_brass'><font size=5>\"You will do.\"</font></span>\n\
<span class='userdanger'>Something very large and very malevolent begins lumbering its way towards you...</span>"
else
if(prob(10) || prey.stat == DEAD || is_servant_of_ratvar(prey) || prey.z != z)
prey << "<span class='heavy_brass'><font size=5>\"How dull. Leave me.\"</font></span>\n\
<span class='userdanger'>You feel tremendous relief as a set of horrible eyes loses sight of you...</span>"
prey = null
else
if(prob(75))
dir_to_step_in = get_dir(src, prey)
for(var/i in 1 to 2)
loc = get_step(src, dir_to_step_in)
/obj/structure/clockwork/massive/ratvar/narsie_act()
if(clashing)
return 0
clashing = TRUE
world << "<span class='heavy_brass'><font size=5>\"[pick("BLOOD GOD!!!", "NAR-SIE!!!", "AT LAST, YOUR TIME HAS COME!")]\"</font></span>"
world << "<span class='cult'><font size=5>\"<b>Ratvar?! How?!</b>\"</font></span>"
for(var/obj/singularity/narsie/N in range(7, src))
clash_of_the_titans(N) //IT'S TIME FOR THE BATTLE OF THE AGES
N.clashing = TRUE
break
return 1
/obj/structure/clockwork/massive/ratvar/proc/clash_of_the_titans(obj/singularity/narsie/narsie) //IT'S TIME FOR A BATTLE OF THE ELDER GODS
var/winner = "Undeclared"
var/base_victory_chance = 0
while(TRUE)
world << 'sound/magic/clockwork/ratvar_attack.ogg'
sleep(5.2)
for(var/mob/M in mob_list)
if(M.client)
M.client.color = rgb(150, 100, 0)
spawn(1)
M.client.color = initial(M.client.color)
shake_camera(M, 4, 3)
var/r_success_modifier = (ticker.mode.servants_of_ratvar.len * 2) //2% for each cultist
var/n_success_modifier = (ticker.mode.cult.len * 2)
if(prob(base_victory_chance + r_success_modifier))
winner = "Ratvar"
break
sleep(rand(2,5))
world << 'sound/magic/clockwork/narsie_attack.ogg'
sleep(7.4)
for(var/mob/M in mob_list)
if(M.client)
M.client.color = rgb(200, 0, 0)
spawn(1)
M.client.color = initial(M.client.color)
shake_camera(M, 4, 3)
if(prob(base_victory_chance + n_success_modifier))
winner = "Nar-Sie"
break
base_victory_chance++ //The clash has a higher chance of resolving each time both gods attack one another
switch(winner)
if("Ratvar")
world << "<span class='heavy_brass'><font size=5>\"[pick("DIE! DIE! DIE!", "RAAAAAAAAAAAAAHH!", "FILTH!!!", "SUFFER!!!", "EBG SBE PRAGHEVRF NF V UNIR!!")]\"</font></span>"
world << "<span class='cult'><font size=5>\"<b>[pick("Nooooo...", "Not die. To y-", "Die. Ratv-", "Sas tyen re-")]\"</b></font></span>"
world << 'sound/magic/clockwork/anima_fragment_attack.ogg'
world << 'sound/magic/demon_dies.ogg'
clashing = FALSE
qdel(narsie)
return 1
if("Nar-Sie")
world << "<span class='cult'><font size=5>\"<b>[pick("Ha.", "Ra'sha fonn dest.", "You fool. To come here.")]</b>\"</font></span>" //Broken English
world << 'sound/magic/demon_attack1.ogg'
world << 'sound/magic/clockwork/anima_fragment_death.ogg'
narsie.clashing = FALSE
qdel(src)
return 1
/atom/proc/ratvar_act() //Called on everything near Ratvar
return
/turf/closed/wall/ratvar_act() //Walls and floors are changed to their clockwork variants
if(prob(20))
ChangeTurf(/turf/closed/wall/clockwork)
/turf/open/floor/ratvar_act()
if(prob(20))
ChangeTurf(/turf/open/floor/clockwork)
/obj/structure/window/ratvar_act() //Windows turn yellow
color = rgb(75, 53, 0)
/mob/living/ratvar_act()
add_servant_of_ratvar(src)
/mob/dead/observer/ratvar_act() //Ghosts flash yellow for a second
var/old_color = color
color = rgb(75, 53, 0) //A nice brassy yellow
animate(src, color = old_color, time = 10)
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,127 @@
//AI lawset
/datum/ai_laws/ratvar
name = "Servant of the Justiciar"
zeroth = ("Purge all untruths and honor Ratvar.")
inherent = list()
//Clockwork wall: Causes nearby caches to generate components
/turf/closed/wall/clockwork
name = "clockwork wall"
desc = "A huge chunk of warm metal. The clanging of machinery emanates from within."
icon = 'icons/obj/clockwork_objects.dmi'
icon_state = "clockwork_wall"
/turf/closed/wall/clockwork/New()
..()
SSobj.processing += src
clockwork_construction_value += 5
/turf/closed/wall/clockwork/Destroy()
SSobj.processing -= src
clockwork_construction_value -= 5
..()
/turf/closed/wall/clockwork/process()
for(var/obj/structure/clockwork/cache/C in range(1, src))
if(prob(5))
clockwork_component_cache[pick("belligerent_eye", "vanguard_cogwheel", "guvax_capacitor", "replicant_alloy", "hierophant_ansible")]++
/turf/closed/wall/clockwork/attackby(obj/item/I, mob/living/user, params)
if(istype(I, /obj/item/weapon/weldingtool))
var/obj/item/weapon/weldingtool/WT = I
if(!WT.isOn())
return 0
user.visible_message("<span class='notice'>[user] begins slowly breaking down [src]...</span>", "<span class='notice'>You begin painstakingly destroying [src]...</span>")
if(!do_after(user, 120 / WT.toolspeed, target = src))
return 0
if(!WT.remove_fuel(1, user))
return 0
user.visible_message("<span class='notice'>[user] breaks apart [src]!</span>", "<span class='notice'>You break apart [src]!</span>")
break_wall()
return 1
..()
/turf/closed/wall/clockwork/break_wall()
new/obj/item/clockwork/component/replicant_alloy(get_turf(src))
return(new /obj/structure/girder(src))
/turf/closed/wall/clockwork/devastate_wall()
return break_wall()
//Clockwork floor: Slowly heals conventional damage on nearby servants
/turf/open/floor/clockwork
name = "clockwork floor"
desc = "Tightly-pressed brass tiles. They emit minute vibration."
icon = 'icons/obj/clockwork_objects.dmi'
icon_state = "clockwork_floor"
/turf/open/floor/clockwork/New()
..()
SSobj.processing += src
clockwork_construction_value++
/turf/open/floor/clockwork/Destroy()
SSobj.processing -= src
clockwork_construction_value--
..()
/turf/open/floor/clockwork/process()
for(var/mob/living/L in src)
if(L.stat == DEAD || !is_servant_of_ratvar(L))
continue
L.adjustBruteLoss(-1)
L.adjustFireLoss(-1)
/turf/open/floor/clockwork/attackby(obj/item/I, mob/living/user, params)
if(istype(I, /obj/item/weapon/crowbar))
user.visible_message("<span class='notice'>[user] begins slowly prying up [src]...</span>", "<span class='notice'>You begin painstakingly prying up [src]...</span>")
if(!do_after(user, 70 / I.toolspeed, target = src))
return 0
user.visible_message("<span class='notice'>[user] pries up [src]!</span>", "<span class='notice'>You pry up [src], destroying it in doing so!</span>")
make_plating()
return 1
..()
//Function Call verb: Calls forth a Ratvarian spear.
/mob/living/carbon/human/proc/function_call()
set name = "Function Call"
set desc = "Calls forth your Ratvarian spear."
set category = "Clockwork"
if(usr.l_hand && usr.r_hand)
usr << "<span class='warning'>You need an empty to hand to call forth your spear!</span>"
return 0
usr.visible_message("<span class='warning'>A strange spear materializes in [usr]'s hands!</span>", "<span class='brass'>You call forth your spear!</span>")
var/obj/item/clockwork/ratvarian_spear/R = new(get_turf(usr))
usr.put_in_hands(R)
usr.verbs -= /mob/living/carbon/human/proc/function_call
return 1
/datum/clockwork_cache //The global cache datum, used to link together all tinkerer's caches
var/list/stored_components = list("belligerent_eye" = 0, "vanguard_cogwheel" = 0, "guvax_capacitor" = 0, "replicant_alloy" = 0, "hierophant_ansible" = 0)
/*
The Ratvarian Language
In the lore of the Servants of Ratvar, the Ratvarian tongue is a timeless language and full of power. It sounds like gibberish, much like Nar-Sie's language, but is in fact derived from
aforementioned language, and may induce miracles when spoken in the correct way with an amplifying tool (similar to runes used by the Nar-Sian cult).
While the canon states that the language of Ratvar and his servants is incomprehensible to the unenlightened as it is a derivative of the most ancient known language, in reality it is
actually very simple. To translate a plain English sentence to Ratvar's tongue, simply move all of the letters thirteen places ahead, starting from "a" if the end of the alphabet is reached.
This cipher is known as "rot13" for "rotate 13 places" and there are many sites online that allow instant translation between English and rot13 - one of the benefits is that moving the translated
sentence thirteen places ahead changes it right back to plain English.
There are, however, a few parts of the Ratvarian tongue that aren't typical and are implemented for fluff reasons. Some words may have apostrophes, hyphens, and spaces, making the plain
English translation apparent but disjoined (for instance, "Oru`byq zl-cbjre!" translates directly to "Beh'old my-power!") although this can be ignored without impacting overall quality. When
translating from Ratvar's tongue to plain English, simply remove the disjointments and use the finished sentence. This would make "Oru`byq zl-cbjre!" into "Behold my power!" after removing the
abnormal spacing, hyphens, and grave accents.
List of nuances:
- Any time the word "of" occurs, it is linked to the previous word by a hyphen. If it is the first word, nothing is done. (i.e. "V nz-bs Ratvar." directly translates to "I am-of Ratvar.")
- Although "Ratvar" translates to "Engine" in English, the word "Ratvar" is used regardless of language as it is a proper noun.
- The same rule applies to Ratvar's four generals: Nezbere (Armorer), Sevtug (Fright), Nzcrentr (Amperage), and Inath-Neq (Vangu-Ard), although these words can be used in proper context if one is
not referring to the four generals and simply using the words themselves.
*/
+1 -1
View File
@@ -189,7 +189,7 @@
/obj/item/clothing/suit/hooded/cultrobes/cult_shield/worn_overlays(isinhands)
. = list()
if(!isinhands && current_charges)
. += image(layer = MOB_LAYER+0.05, icon = 'icons/effects/effects.dmi', icon_state = "shield-cult")
. += image(layer = MOB_LAYER+0.01, icon = 'icons/effects/effects.dmi', icon_state = "shield-cult")
/obj/item/clothing/suit/hooded/cultrobes/berserker
name = "flagellant's robes"
+28 -14
View File
@@ -203,21 +203,35 @@ This file contains the arcane tome files.
if(!Adjacent(user) || !src || qdeleted(src) || user.incapacitated())
return
if(ispath(rune_to_scribe, /obj/effect/rune/narsie))
var/confirm_final = alert(usr, "This is the FINAL step to summon Nar-Sie, it is a long, painful ritual and the crew will be alerted to your presence", "Are you prepared for the final battle?", "My life for Nar-Sie!", "No")
if(confirm_final == "No")
usr << "On second thought, we should prepare further for the final battle..."
if(ticker.mode.name == "cult")
var/datum/game_mode/cult/cult_mode = ticker.mode
if(!("eldergod" in cult_mode.cult_objectives))
user << "<span class='warning'>Nar-Sie does not wish to be summoned!</span>"
return
else if(cult_mode.sacrifice_target && !(cult_mode.sacrifice_target in sacrificed))
user << "<span class='warning'>The sacrifice is not complete. The portal would lack the power to open if you tried!</span>"
return
else if(!cult_mode.eldergod)
user << "<span class='cultlarge'>\"I am already here. There is no need to try to summon me now.\"</span>"
return
var/confirm_final = alert(user, "This is the FINAL step to summon Nar-Sie, it is a long, painful ritual and the crew will be alerted to your presence", "Are you prepared for the final battle?", "My life for Nar-Sie!", "No")
if(confirm_final == "No")
user << "<span class='cult'>You decide to prepare further before scribing the rune.</span>"
return
var/area/A = get_area(src)
var/locname = initial(A.name)
priority_announce("Figments from an eldritch god are being summoned by [user] into [locname] from an unknown dimension. Disrupt the ritual at all costs!","Central Command Higher Dimensionsal Affairs", 'sound/AI/spanomalies.ogg')
for(var/B in spiral_range_turfs(1, user, 1))
var/turf/T = B
var/obj/machinery/shield/N = new(T)
N.name = "Rune-Scriber's Shield"
N.desc = "A potent shield summoned by cultists to protect them while they prepare the final ritual"
N.icon_state = "shield-red"
N.health = 60
shields |= N
else
user << "<span class='warning'>Nar-Sie does not wish to be summoned!</span>"
return
var/area/A = get_area(src)
var/locname = initial(A.name)
priority_announce("Figments from an eldritch god are being summoned by [user] into [locname] from an unknown dimension. Disrupt the ritual at all costs!","Central Command Higher Dimensionsal Affairs", 'sound/AI/spanomalies.ogg')
for(var/B in spiral_range_turfs(1, user, 1))
var/turf/T = B
var/obj/machinery/shield/N = new(T)
N.name = "Rune-Scriber's Shield"
N.desc = "A potent shield summoned by cultists to protect them while they prepare the final ritual"
N.icon_state = "shield-red"
N.health = 60
shields |= N
user.visible_message("<span class='warning'>[user] cuts open their arm and begins writing in their own blood!</span>", \
"<span class='cult'>You slice open your arm and begin drawing a sigil of the Geometer.</span>")
user.apply_damage(initial(rune_to_scribe.scribe_damage), BRUTE, pick("l_arm", "r_arm"))
+1 -21
View File
@@ -22,7 +22,7 @@ To draw a rune, use an arcane tome.
icon = 'icons/obj/rune.dmi'
icon_state = "1"
unacidable = 1
layer = TURF_LAYER + 0.08
layer = ABOVE_NORMAL_TURF_LAYER
color = rgb(255,0,0)
var/invocation = "Aiy ele-mayo!" //This is said by cultists when the rune is invoked.
@@ -458,28 +458,8 @@ var/list/teleport_runes = list()
/obj/effect/rune/narsie/invoke(var/list/invokers)
if(used)
return
var/mob/living/user = invokers[1]
if(ticker.mode.name == "cult")
var/datum/game_mode/cult/cult_mode = ticker.mode
if(!("eldergod" in cult_mode.cult_objectives))
message_admins("[user.real_name]([user.ckey]) tried to summon Nar-Sie when the objective was wrong")
for(var/M in invokers)
var/mob/living/L = M
L << "<span class='cultlarge'><i>\"YOUR SOUL BURNS WITH YOUR ARROGANCE!!!\"</i></span>"
if(L.reagents)
L.reagents.add_reagent("hell_water", 10)
L.Weaken(7)
L.Stun(7)
fail_invoke()
log_game("Summon Nar-Sie rune failed - improper objective")
return
else
if(cult_mode.sacrifice_target && !(cult_mode.sacrifice_target in sacrificed))
for(var/M in invokers)
M << "<span class='warning'>The sacrifice is not complete. The portal lacks the power to open!</span>"
fail_invoke()
log_game("Summon Nar-Sie rune failed - sacrifice not complete")
return
if(!cult_mode.eldergod)
for(var/M in invokers)
M << "<span class='warning'>Nar-Sie is already on this plane!</span>"
@@ -20,7 +20,7 @@
hands_overlays += r_hand_image
if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD)
r_hand.layer = 20
r_hand.layer = ABOVE_HUD_LAYER
r_hand.screen_loc = ui_rhand
client.screen |= r_hand
@@ -35,7 +35,7 @@
hands_overlays += l_hand_image
if(client && hud_used && hud_used.hud_version != HUD_STYLE_NOHUD)
l_hand.layer = 20
l_hand.layer = ABOVE_HUD_LAYER
l_hand.screen_loc = ui_lhand
client.screen |= l_hand
if(hands_overlays.len)
+1 -1
View File
@@ -5,7 +5,7 @@
icon_state = "dominator"
density = 1
anchored = 1
layer = 3.6
layer = HIGH_OBJ_LAYER
var/maxhealth = 200
var/health = 200
var/datum/gang/gang
@@ -319,38 +319,38 @@
return
/mob/living/simple_animal/hostile/swarmer/proc/DisperseTarget(var/mob/living/target)
if(target != src)
src << "<span class='info'>Attempting to remove this being from our presence.</span>"
if(src.z != ZLEVEL_STATION)
src << "<span class='warning'>Our bluespace transceiver cannot locate a viable bluespace link, our teleportation abilities are useless in this area.</span>"
return
if(do_mob(src, target, 30))
var/cycle
for(cycle=0,cycle<100,cycle++)
var/random_location = locate(rand(37,202),rand(75,192),ZLEVEL_STATION)//Drunk dial a turf in the general ballpark of the station
if(istype(random_location, /turf/open/floor))
var/turf/open/floor/F = random_location
if(F.air)
var/datum/gas_mixture/A = F.air
var/list/A_gases = A.gases
var/trace_gases
for(var/id in A_gases)
if(id in hardcoded_gases)
continue
trace_gases = TRUE
break
if((A_gases["o2"] && A_gases["o2"][MOLES] >= 16) && !A_gases["plasma"] && (!A_gases["co2"] || A_gases["co2"][MOLES] < 10) && !trace_gases)//Can most things breathe in this location?
if((A.temperature > 270) && (A.temperature < 360))//Not too hot, not too cold
var/pressure = A.return_pressure()
if((pressure > 20) && (pressure < 550))//Account for crushing pressure or vaccuums
if(ishuman(target))//If we're getting rid of a human, slap some energy cuffs on them to keep them away from us a little longer
var/obj/item/weapon/restraints/handcuffs/energy/used/Z = new /obj/item/weapon/restraints/handcuffs/energy/used(src)
var/mob/living/carbon/human/H = target
Z.apply_cuffs(H, src)
do_teleport(target, F, 0)
playsound(src,'sound/effects/sparks4.ogg',50,1)
break
return
if(target == src)
return
if(src.z != ZLEVEL_STATION)
src << "<span class='warning'>Our bluespace transceiver cannot \
locate a viable bluespace link, our teleportation abilities \
are useless in this area.</span>"
return
src << "<span class='info'>Attempting to remove this being from \
our presence.</span>"
if(!do_mob(src, target, 30))
return
var/turf/open/floor/F = find_safe_turf(zlevel=ZLEVEL_STATION)
if(!F)
return
// If we're getting rid of a human, slap some energy cuffs on
// them to keep them away from us a little longer
var/mob/living/carbon/human/H = target
if(ishuman(target) && (!H.handcuffed))
H.handcuffed = new /obj/item/weapon/restraints/handcuffs/energy/used(H)
H.update_handcuffed()
add_logs(src, H, "handcuffed")
var/datum/effect_system/spark_spread/S = new
S.set_up(4,0,get_turf(target))
S.start()
playsound(src,'sound/effects/sparks4.ogg',50,1)
do_teleport(target, F, 0)
/mob/living/simple_animal/hostile/swarmer/proc/DismantleMachine(var/obj/machinery/target)
do_attack_animation(target)
@@ -389,7 +389,7 @@
/obj/effect/overlay/temp/swarmer //temporary swarmer visual feedback objects
icon = 'icons/mob/swarmer.dmi'
layer = MOB_LAYER
layer = BELOW_MOB_LAYER
/obj/effect/overlay/temp/swarmer/disintegration
icon_state = "disintegrate"
@@ -462,7 +462,6 @@
src << "<span class='warning'>There is already a trap here. Aborting.</span>"
return
Fabricate(/obj/effect/swarmer/destructible/trap, 5)
return
/obj/effect/swarmer/destructible/trap
name = "swarmer trap"
@@ -144,14 +144,18 @@
visible_message("<span class='warning'>[src] twists and dissolves into a pile of green flesh!</span>", \
"<span class='userdanger'>Your skin ruptures! Your flesh breaks apart! No disguise can ward off de--</span>")
restore()
barf_contents()
..()
/mob/living/simple_animal/hostile/morph/Destroy()
/mob/living/simple_animal/hostile/morph/proc/barf_contents()
for(var/atom/movable/AM in src)
AM.loc = loc
if(prob(90))
step(AM, pick(alldirs))
return ..()
/mob/living/simple_animal/hostile/morph/wabbajack_act(mob/living/new_mob)
barf_contents()
. = ..()
/mob/living/simple_animal/hostile/morph/Aggro() // automated only
..()
@@ -18,7 +18,7 @@
invisibility = INVISIBILITY_REVENANT
health = INFINITY //Revenants don't use health, they use essence instead
maxHealth = INFINITY
layer = 5
layer = GHOST_LAYER
healable = 0
sight = SEE_SELF
see_invisible = SEE_INVISIBLE_NOLIGHTING
@@ -137,27 +137,24 @@
// HOT. PINK.
//color = "#FF69B4"
/mob/living/simple_animal/slaughter/laughter/New()
..()
/mob/living/simple_animal/slaughter/laughter/death()
release_friends()
. = ..()
/mob/living/simple_animal/slaughter/laughter/wabbajack_act()
release_friends()
. = ..()
/mob/living/simple_animal/slaughter/laughter/proc/release_friends()
if(!consumed_mobs)
return ..()
return
for(var/mob/living/M in consumed_mobs)
M.loc = get_turf(src)
if(M.revive(full_heal = 1))
// Feel there should be a better way of FORCING a mob's ghost
// back into the body
if(!M.ckey)
for(var/mob/dead/observer/ghost in player_list)
if(M.real_name == ghost.real_name)
ghost.reenter_corpse()
break
M << "<span class='clown'>You leave the [src]'s warm embrace, and feel ready to take on the world.</span>"
return ..()
M.grab_ghost(force = FALSE)
M << "<span class='clown'>You leave the [src]'s warm embrace, \
and feel ready to take on the world.</span>"
/mob/living/simple_animal/slaughter/laughter/bloodcrawl_swallow(var/mob/living/victim)
if(consumed_mobs)
+10 -4
View File
@@ -48,7 +48,7 @@ var/bomb_set
icon = 'icons/obj/machines/nuke_terminal.dmi'
icon_state = "nuclearbomb_base"
anchored = 1 //stops it being moved
layer = 4
layer = MOB_LAYER
/obj/machinery/nuclearbomb/syndicate
@@ -429,10 +429,16 @@ This is here to make the tiles around the station mininuke change when it's arme
get(src, /mob) << "<span class='danger'>You can't help but feel that you just lost something back there...</span>"
qdel(src)
/obj/item/weapon/disk/nuclear/Destroy()
/obj/item/weapon/disk/nuclear/Destroy(force)
var/turf/diskturf = get_turf(src)
if(force)
message_admins("[src] has been !!force deleted!! in ([diskturf ? "[diskturf.x], [diskturf.y] ,[diskturf.z] - <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[diskturf.x];Y=[diskturf.y];Z=[diskturf.z]'>JMP</a>":"nonexistent location"]).")
log_game("[src] has been !!force deleted!! in ([diskturf ? "[diskturf.x], [diskturf.y] ,[diskturf.z]":"nonexistent location"]).")
return ..()
if(blobstart.len > 0)
var/turf/targetturf = get_turf(pick(blobstart))
var/turf/diskturf = get_turf(src)
if(ismob(loc))
var/mob/M = loc
M.remove_from_mob(src)
@@ -444,4 +450,4 @@ This is here to make the tiles around the station mininuke change when it's arme
log_game("[src] has been destroyed in ([diskturf ? "[diskturf.x], [diskturf.y] ,[diskturf.z]":"nonexistent location"]). Moving it to ([targetturf.x], [targetturf.y], [targetturf.z]).")
else
throw EXCEPTION("Unable to find a blobstart landmark")
return QDEL_HINT_LETMELIVE //Cancel destruction regardless of success
return QDEL_HINT_LETMELIVE //Cancel destruction unless forced
+5 -5
View File
@@ -27,7 +27,7 @@ var/hsboxspawn = 1
var/hsbinfo = null
//items that shouldn't spawn on the floor because they would bug or act weird
var/global/list/spawn_forbidden = list(
/obj/item/weapon/grab, /obj/item/tk_grab, /obj/item/weapon/implant, // not implanter, the actual thing that is inside you
/obj/item/tk_grab, /obj/item/weapon/implant, // not implanter, the actual thing that is inside you
/obj/item/assembly,/obj/item/device/onetankbomb, /obj/item/radio, /obj/item/device/pda/ai,
/obj/item/device/uplink, /obj/item/smallDelivery, /obj/item/missile,/obj/item/projectile,
/obj/item/borg/sight,/obj/item/borg/stun,/obj/item/weapon/robot_module)
@@ -145,28 +145,28 @@ var/hsboxspawn = 1
P.wear_suit.layer = initial(P.wear_suit.layer)
P.wear_suit = null
P.wear_suit = new/obj/item/clothing/suit/space(P)
P.wear_suit.layer = 20
P.wear_suit.layer = ABOVE_HUD_LAYER
P.update_inv_wear_suit()
if(P.head)
P.head.loc = P.loc
P.head.layer = initial(P.head.layer)
P.head = null
P.head = new/obj/item/clothing/head/helmet/space(P)
P.head.layer = 20
P.head.layer = ABOVE_HUD_LAYER
P.update_inv_head()
if(P.wear_mask)
P.wear_mask.loc = P.loc
P.wear_mask.layer = initial(P.wear_mask.layer)
P.wear_mask = null
P.wear_mask = new/obj/item/clothing/mask/gas(P)
P.wear_mask.layer = 20
P.wear_mask.layer = ABOVE_HUD_LAYER
P.update_inv_wear_mask()
if(P.back)
P.back.loc = P.loc
P.back.layer = initial(P.back.layer)
P.back = null
P.back = new/obj/item/weapon/tank/jetpack/oxygen(P)
P.back.layer = 20
P.back.layer = ABOVE_HUD_LAYER
P.update_inv_back()
P.internal = P.back
P.update_internals_hud_icon(1)
+1 -1
View File
@@ -5,7 +5,7 @@
name = "bluespace gigabeacon"
desc = "A device that draws power from bluespace and creates a permanent tracking beacon."
level = 1 // underfloor
layer = 2.5
layer = LOW_OBJ_LAYER
anchored = 1
use_power = 1
idle_power_usage = 0
+1 -1
View File
@@ -2,7 +2,7 @@
name = "\improper AI liquid dispenser"
icon = 'icons/obj/device.dmi'
icon_state = "motion3"
layer = 3
layer = PROJECTILE_HIT_THRESHHOLD_LAYER
anchored = 1
var/uses = 20
var/disabled = 1
+1 -1
View File
@@ -10,7 +10,7 @@
use_power = 2
idle_power_usage = 5
active_power_usage = 10
layer = 5
layer = WALL_OBJ_LAYER
var/health = 50
var/list/network = list("SS13")
-13
View File
@@ -152,19 +152,6 @@
if(default_deconstruction_crowbar(I))
return
if(istype(I, /obj/item/weapon/grab))
var/obj/item/weapon/grab/G = I
if(!ismob(G.affecting))
return
if(!state_open)
user << "<span class='notice'>Open the scanner first.</span>"
return
var/mob/M = G.affecting
M.forceMove(loc)
qdel(G)
return
return ..()
/obj/machinery/dna_scannernew/attack_hand(mob/user)
+2 -2
View File
@@ -986,7 +986,7 @@ var/list/airlock_overlays = list()
sleep(5)
src.density = 0
sleep(9)
src.layer = 2.7
src.layer = OPEN_DOOR_LAYER
update_icon(AIRLOCK_OPEN, 1)
SetOpacity(0)
operating = 0
@@ -1023,7 +1023,7 @@ var/list/airlock_overlays = list()
return 1
operating = 1
update_icon(AIRLOCK_CLOSING, 1)
src.layer = 3.1
src.layer = CLOSED_DOOR_LAYER
sleep(5)
src.density = 1
if(!safe)
+5 -5
View File
@@ -6,7 +6,7 @@
anchored = 1
opacity = 1
density = 1
layer = 2.7
layer = OPEN_DOOR_LAYER
power_channel = ENVIRON
var/secondsElectrified = 0
@@ -19,7 +19,7 @@
var/heat_proof = 0 // For rglass-windowed airlocks and firedoors
var/emergency = 0 // Emergency access override
var/sub_door = 0 // 1 if it's meant to go under another door.
var/closingLayer = 3.1
var/closingLayer = CLOSED_DOOR_LAYER
var/autoclose = 0 //does it automatically close after some time
var/safe = 1 //whether the door detects things and mobs in its way and reopen or crushes them.
var/locked = 0 //whether the door is bolted or not.
@@ -29,9 +29,9 @@
/obj/machinery/door/New()
..()
if(density)
layer = 3.1 //Above most items if closed
layer = CLOSED_DOOR_LAYER //Above most items if closed
else
layer = 2.7 //Under all objects if opened. 2.7 due to tables being at 2.6
layer = OPEN_DOOR_LAYER //Under all objects if opened. 2.7 due to tables being at 2.6
update_freelook_sight()
air_update_turf(1)
airlocks += src
@@ -245,7 +245,7 @@ obj/machinery/door/proc/try_to_crowbar(obj/item/I, mob/user)
sleep(5)
density = 0
sleep(5)
layer = 2.7
layer = OPEN_DOOR_LAYER
update_icon()
SetOpacity(0)
operating = 0
+1 -1
View File
@@ -18,7 +18,7 @@
glass = 1
var/nextstate = null
sub_door = 1
closingLayer = 3.11
closingLayer = CLOSED_FIREDOOR_LAYER
/obj/machinery/door/firedoor/Bumped(atom/AM)
if(panel_open || operating)
+4 -4
View File
@@ -3,7 +3,7 @@
name = "shutters"
desc = "Heavy duty metal shutters that opens mechanically."
icon = 'icons/obj/doors/shutters.dmi'
layer = 3.1
layer = CLOSED_DOOR_LAYER
/obj/machinery/door/poddoor/shutters/preopen
icon_state = "open"
@@ -15,14 +15,14 @@
/obj/machinery/door/poddoor/shutters/New()
..()
layer = 3.1 //to handle /obj/machinery/door/New() resetting the layer.
layer = CLOSED_DOOR_LAYER //to handle /obj/machinery/door/New() resetting the layer.
/obj/machinery/door/poddoor/shutters/open(ignorepower = 0)
..()
layer = 3.1
layer = CLOSED_DOOR_LAYER
/obj/machinery/door/poddoor/shutters/close(ignorepower = 0)
..()
layer = 3.1
layer = CLOSED_DOOR_LAYER
+1 -1
View File
@@ -35,7 +35,7 @@ var/const/HOLOPAD_MODE = RANGE_BASED
name = "\improper AI holopad"
desc = "It's a floor-mounted device for projecting holographic images. It is activated remotely."
icon_state = "holopad0"
layer = 2.1
layer = LOW_OBJ_LAYER
flags = HEAR
languages = ROBOT | HUMAN
var/list/masters = list()//List of AIs that use the holopad
+1 -1
View File
@@ -11,7 +11,7 @@
name = "electromagnetic generator"
desc = "A device that uses station power to create points of magnetic energy."
level = 1 // underfloor
layer = 2.5
layer = LOW_OBJ_LAYER
anchored = 1
use_power = 1
idle_power_usage = 50
+1 -1
View File
@@ -8,7 +8,7 @@
name = "navigation beacon"
desc = "A radio beacon used for bot navigation."
level = 1 // underfloor
layer = 2.5
layer = LOW_OBJ_LAYER
anchored = 1
var/open = 0 // true if cover is open
+2 -2
View File
@@ -178,7 +178,7 @@
qdel(I)
qdel(J)
H.icon = HI
H.layer = 25
H.layer = ABOVE_HUD_LAYER
usr.mapobjs += H
#else
@@ -296,7 +296,7 @@
H.icon = I
qdel(I)
H.layer = 25
H.layer = ABOVE_HUD_LAYER
usr.mapobjs += H
#endif
@@ -3,7 +3,7 @@
icon = 'icons/obj/turrets.dmi'
icon_state = "grey_target_prism"
anchored = 1
layer = 3
layer = OBJ_LAYER
invisibility = INVISIBILITY_OBSERVER //the turret is invisible if it's inside its cover
density = 1
use_power = 1 //this turret uses and requires power
@@ -502,7 +502,7 @@
if(cover)
cover.icon_state = "openTurretCover"
raised = 1
layer = 4
layer = MOB_LAYER
/obj/machinery/porta_turret/proc/popDown() //pops the turret down
if(disabled)
@@ -511,7 +511,7 @@
return
if(stat & BROKEN)
return
layer = 3
layer = OBJ_LAYER
raising = 1
if(cover)
flick("popdown", cover)
@@ -8,7 +8,7 @@
icon = 'icons/obj/turrets.dmi'
icon_state = "turretCover"
anchored = 1
layer = 3.5
layer = HIGH_OBJ_LAYER
density = 0
var/obj/machinery/porta_turret/parent_turret = null
+1 -1
View File
@@ -5,7 +5,7 @@ var/const/SAFETY_COOLDOWN = 100
desc = "A large crushing machine which is used to recycle small items ineffeciently; there are lights on the side of it."
icon = 'icons/obj/recycling.dmi'
icon_state = "grinder-o0"
layer = MOB_LAYER+1 // Overhead
layer = ABOVE_ALL_MOB_LAYER // Overhead
anchored = 1
density = 1
var/safety_mode = FALSE // Temporarily stops machine if it detects a mob

Some files were not shown because too many files have changed in this diff Show More