diff --git a/.editorconfig b/.editorconfig
index a25dbdfc85..df93ae3a16 100644
--- a/.editorconfig
+++ b/.editorconfig
@@ -2,3 +2,7 @@
insert_final_newline = true
indent_style = tab
indent_size = 4
+
+[*.yml]
+indent_style = space
+indent_size = 2
diff --git a/.travis.yml b/.travis.yml
index bef3a69ad7..ab3b1003c3 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,28 +1,34 @@
language: generic
-sudo: false
dist: xenial
+sudo: false
+
branches:
except:
- ___TGS3TempBranch
- ___TGSTempBranch
+
matrix:
include:
- - env:
- - BUILD_TOOLS=true
- name: "Build Tools"
+ - name: "Run Linters"
addons:
apt:
packages:
- python3
- python3-pip
- python3-setuptools
- cache:
- directories:
- - tgui/node_modules
- - env:
- - BUILD_TESTING=true
- - BUILD_TOOLS=false
- name: "Build All Maps"
+ install:
+ - tools/travis/install_build_tools.sh
+ - tools/travis/install_dreamchecker.sh
+ script:
+ - tools/travis/check_filedirs.sh tgstation.dme
+ - tools/travis/check_changelogs.sh
+ - find . -name "*.php" -print0 | xargs -0 -n1 php -l
+ - find . -name "*.json" -not -path "./tgui/node_modules/*" -print0 | xargs -0 python3 ./tools/json_verifier.py
+ - tools/travis/build_tgui.sh
+ - tools/travis/check_grep.sh
+ - ~/dreamchecker
+
+ - name: "Compile All Maps"
addons:
apt:
packages:
@@ -30,10 +36,15 @@ matrix:
cache:
directories:
- $HOME/BYOND
- - env:
- - BUILD_TESTING=false
- - BUILD_TOOLS=false
- name: "Build and Run Unit Tests"
+ install:
+ - tools/travis/install_byond.sh
+ - source $HOME/BYOND/byond/bin/byondsetup
+ before_script:
+ - tools/travis/template_dm_generator.py
+ script:
+ - tools/travis/dm.sh -DTRAVISBUILDING -DTRAVISTESTING -DALL_MAPS tgstation.dme
+
+ - name: "Compile and Run Tests"
addons:
mariadb: '10.2'
apt:
@@ -41,7 +52,6 @@ matrix:
- ubuntu-toolchain-r-test
packages:
- libstdc++6:i386
- - libssl-dev:i386
- gcc-multilib
- g++-7
- g++-7-multilib
@@ -49,25 +59,19 @@ matrix:
- libmariadbd-dev
cache:
directories:
- - $HOME/.cargo
- $HOME/BYOND
- - $HOME/MariaDB
- - $HOME/.rustup
-
-install:
- - tools/travis/install_build_tools.sh
- - if [ $BUILD_TOOLS = false ] && [ $BUILD_TESTING = false ]; then mysql -u root -e 'CREATE DATABASE tg_travis;'; fi
- - if [ $BUILD_TOOLS = false ] && [ $BUILD_TESTING = false ]; then mysql -u root tg_travis < SQL/tgstation_schema.sql; fi
- - if [ $BUILD_TOOLS = false ] && [ $BUILD_TESTING = false ]; then mysql -u root -e 'CREATE DATABASE tg_travis_prefixed;'; fi
- - if [ $BUILD_TOOLS = false ] && [ $BUILD_TESTING = false ]; then mysql -u root tg_travis_prefixed < SQL/tgstation_schema_prefixed.sql; fi
-
-before_script:
- - tools/travis/before_build_tools.sh
- - tools/travis/before_build_byond.sh
-
-script:
- - tools/travis/check_filedirs.sh tgstation.dme
- - tools/travis/build_tools.sh || travis_terminate 1
- - tools/travis/build_dependencies.sh || travis_terminate 1
- - tools/travis/build_byond.sh
-
+ - $HOME/libmariadb
+ install:
+ - tools/travis/install_byond.sh
+ - source $HOME/BYOND/byond/bin/byondsetup
+ - tools/travis/install_libmariadb.sh
+ - tools/travis/install_rust_g.sh
+ before_script:
+ - mysql -u root -e 'CREATE DATABASE tg_travis;'
+ - mysql -u root tg_travis < SQL/tgstation_schema.sql
+ - mysql -u root -e 'CREATE DATABASE tg_travis_prefixed;'
+ - mysql -u root tg_travis_prefixed < SQL/tgstation_schema_prefixed.sql
+ - tools/travis/build_bsql.sh
+ script:
+ - tools/travis/dm.sh -DTRAVISBUILDING tgstation.dme || travis_terminate 1
+ - tools/travis/run_server.sh
diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_elite_tumor.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_elite_tumor.dmm
new file mode 100644
index 0000000000..6e44ec3197
--- /dev/null
+++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_elite_tumor.dmm
@@ -0,0 +1,111 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/lavaland/surface/outdoors)
+"b" = (
+/obj/structure/elite_tumor,
+/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors)
+"c" = (
+/turf/open/floor/plating/asteroid/basalt/lava_land_surface,
+/area/lavaland/surface/outdoors)
+
+(1,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(3,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(4,1,1) = {"
+a
+a
+a
+c
+c
+c
+a
+a
+a
+"}
+(5,1,1) = {"
+a
+a
+a
+c
+b
+c
+a
+a
+a
+"}
+(6,1,1) = {"
+a
+a
+a
+c
+c
+c
+a
+a
+a
+"}
+(7,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(8,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(9,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
diff --git a/_maps/RandomRuins/SpaceRuins/spacehermit.dmm b/_maps/RandomRuins/SpaceRuins/spacehermit.dmm
index 341dcf7b99..f64bfa8a4e 100644
--- a/_maps/RandomRuins/SpaceRuins/spacehermit.dmm
+++ b/_maps/RandomRuins/SpaceRuins/spacehermit.dmm
@@ -338,6 +338,9 @@
/obj/item/flashlight/lamp/bananalamp,
/turf/open/floor/plating/asteroid,
/area/ruin/unpowered)
+"bt" = (
+/turf/closed/mineral/random/low_chance/earth_like,
+/area/ruin/unpowered)
(1,1,1) = {"
aa
@@ -474,13 +477,13 @@ ab
ab
ab
ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
ab
ab
ab
@@ -520,22 +523,22 @@ aA
ab
ab
ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
ab
ab
aA
@@ -569,27 +572,27 @@ aA
aA
aA
ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
ab
aA
aa
@@ -620,29 +623,29 @@ ab
ab
aA
ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
ab
aA
aa
@@ -666,36 +669,36 @@ aM
aa
aA
ab
+bt
+bt
+bt
+bt
ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
ab
aA
aa
@@ -718,37 +721,37 @@ aa
aa
aA
ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
ae
af
ae
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
ab
aA
aa
@@ -770,38 +773,38 @@ aa
aa
aA
ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
af
aq
af
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
ab
aA
aa
@@ -822,38 +825,38 @@ aa
aA
aA
ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
ae
ae
ao
ae
ae
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
ab
aA
aa
@@ -874,39 +877,39 @@ aa
aA
aA
ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
af
an
an
an
af
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
ab
aA
aa
@@ -927,24 +930,24 @@ aA
aA
aA
ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
ae
ae
bh
@@ -952,13 +955,13 @@ an
an
ae
aZ
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
ab
aA
aa
@@ -979,24 +982,24 @@ aA
aA
aA
ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
af
aY
ao
@@ -1004,13 +1007,13 @@ ao
ao
ak
ba
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
ab
aA
aa
@@ -1031,24 +1034,24 @@ aA
aA
aA
ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
al
aj
ap
@@ -1056,13 +1059,13 @@ an
as
aj
aE
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
ab
aA
aa
@@ -1083,24 +1086,24 @@ aA
aA
aA
ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
af
ak
ao
@@ -1109,12 +1112,12 @@ ao
ak
ba
ac
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
ab
aA
aa
@@ -1134,24 +1137,24 @@ aa
aA
aA
ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
ah
az
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
aR
ae
ae
@@ -1161,12 +1164,12 @@ an
ae
aZ
ac
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
ab
aA
aM
@@ -1186,24 +1189,24 @@ aa
aA
aA
ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
ac
ac
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
aR
ag
ag
@@ -1213,12 +1216,12 @@ af
at
bb
ac
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
ab
aA
aa
@@ -1238,24 +1241,24 @@ aa
aA
aA
ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
ad
ac
ac
ac
ac
-ab
+bt
aH
aJ
aL
-ab
-ab
+bt
+bt
aT
ac
ac
@@ -1265,12 +1268,12 @@ ac
ac
ac
aR
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
ab
aA
aa
@@ -1289,14 +1292,14 @@ aa
aA
aA
ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
ad
au
ac
@@ -1306,8 +1309,8 @@ ac
ac
ac
ac
-ab
-ab
+bt
+bt
ac
ac
ac
@@ -1317,12 +1320,12 @@ ac
ac
ac
bg
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
ab
aA
aa
@@ -1341,14 +1344,14 @@ aa
aA
aA
ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
ad
aw
bs
@@ -1358,9 +1361,9 @@ ac
ac
ac
ac
-ab
-ab
-ab
+bt
+bt
+bt
ac
ac
ac
@@ -1368,13 +1371,13 @@ ac
ac
ac
ac
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
ab
aA
aa
@@ -1393,14 +1396,14 @@ aa
aA
aA
ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
ad
ax
ac
@@ -1409,9 +1412,9 @@ aF
ac
ac
ac
-ab
-ab
-ab
+bt
+bt
+bt
aU
bd
ac
@@ -1420,13 +1423,13 @@ bl
bm
ac
ac
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
ab
aA
aa
@@ -1445,14 +1448,14 @@ aa
aA
aA
ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
ad
ay
ac
@@ -1461,9 +1464,9 @@ ac
aG
ac
ac
-ab
-ab
-ab
+bt
+bt
+bt
av
be
ac
@@ -1473,12 +1476,12 @@ bn
bo
bo
bq
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
ab
aA
aa
@@ -1496,16 +1499,16 @@ aa
aa
aA
ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
ac
ac
ac
@@ -1513,9 +1516,9 @@ ac
ac
ac
ac
-ab
-ab
-ab
+bt
+bt
+bt
bc
bf
ac
@@ -1525,11 +1528,11 @@ ac
ac
ac
br
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
ab
aA
aa
@@ -1548,26 +1551,26 @@ aa
aA
aA
ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
ac
-ab
+bt
ac
ac
ac
ac
ac
-ab
-ab
+bt
+bt
ac
ac
ac
@@ -1577,11 +1580,11 @@ ac
ac
ac
ac
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
ab
aA
aa
@@ -1599,20 +1602,20 @@ aa
aa
aA
ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
ac
ac
ac
@@ -1628,11 +1631,11 @@ ac
ac
ac
ac
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
ab
aA
aa
@@ -1651,26 +1654,26 @@ aa
aa
aA
ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
ac
ac
ac
-ab
-ab
+bt
+bt
ac
ac
ac
@@ -1682,9 +1685,9 @@ ac
ac
ac
ac
-ab
-ab
-ab
+bt
+bt
+bt
ab
aa
aa
@@ -1703,26 +1706,26 @@ aa
aa
aA
ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
aK
-ab
-ab
+bt
+bt
ac
ac
ac
@@ -1734,8 +1737,8 @@ bp
ac
ac
aR
-ab
-ab
+bt
+bt
ab
aA
aa
@@ -1756,25 +1759,25 @@ aa
aa
aA
ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
aP
ac
ac
@@ -1786,8 +1789,8 @@ ac
ac
ac
aR
-ab
-ab
+bt
+bt
ab
aA
aa
@@ -1808,25 +1811,25 @@ aa
aa
aA
ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
aQ
aP
ac
@@ -1836,10 +1839,10 @@ ac
ac
ac
ac
-ab
+bt
ac
-ab
-ab
+bt
+bt
ab
aA
aa
@@ -1860,27 +1863,27 @@ aa
aa
aA
ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
ac
ac
ac
@@ -1888,10 +1891,10 @@ ac
aP
ac
bg
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
ab
aa
aa
@@ -1913,26 +1916,26 @@ aa
aA
ab
ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
ac
ac
ac
@@ -1940,9 +1943,9 @@ ac
ac
ac
aS
-ab
-ab
-ab
+bt
+bt
+bt
ab
aA
aa
@@ -1966,25 +1969,25 @@ aa
aA
aA
ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
bg
ac
ac
@@ -1992,9 +1995,9 @@ ac
ac
ac
aS
-ab
-ab
-ab
+bt
+bt
+bt
ab
aA
aa
@@ -2018,25 +2021,25 @@ aa
aa
aA
ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
ac
ac
bj
@@ -2044,9 +2047,9 @@ ac
ac
ac
aS
-ab
-ab
-ab
+bt
+bt
+bt
ab
aA
aa
@@ -2071,24 +2074,24 @@ aa
aa
aA
ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
aS
bi
ac
@@ -2096,9 +2099,9 @@ ac
ac
aS
aS
-ab
-ab
-ab
+bt
+bt
+bt
ab
aA
aa
@@ -2124,23 +2127,23 @@ aM
aa
aA
ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
aS
ac
ac
@@ -2148,8 +2151,8 @@ ac
ac
aS
aS
-ab
-ab
+bt
+bt
ab
aA
aa
@@ -2176,20 +2179,20 @@ aa
aa
aA
ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
ab
aA
aS
@@ -2229,18 +2232,18 @@ aa
aA
aA
ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
ab
aA
aA
@@ -2282,17 +2285,17 @@ aa
aA
aA
ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
ab
aA
aA
@@ -2335,16 +2338,16 @@ aa
aA
aA
ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
ab
aA
aa
@@ -2388,16 +2391,16 @@ aa
aA
aA
ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
-ab
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
+bt
ab
ab
aa
@@ -2448,9 +2451,9 @@ ab
ab
ab
ab
-ab
-ab
-ab
+bt
+bt
+bt
ab
aa
aa
@@ -2933,7 +2936,7 @@ aa
aa
aa
aa
-ab
+bt
aa
aa
aa
diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm
index 53b12ca0bb..7bec217f62 100644
--- a/_maps/map_files/BoxStation/BoxStation.dmm
+++ b/_maps/map_files/BoxStation/BoxStation.dmm
@@ -3,44 +3,17 @@
/turf/open/space/basic,
/area/space)
"aab" = (
-/obj/machinery/firealarm{
- dir = 4;
- pixel_x = 24
- },
-/obj/structure/table,
-/obj/machinery/chem_dispenser/drinks/beer{
- dir = 8
- },
-/obj/item/radio/intercom{
- pixel_y = 25
- },
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
+/obj/effect/turf_decal/stripes/line{
dir = 1
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
+/turf/open/floor/plating,
+/area/space/nearstation)
"aac" = (
-/obj/machinery/requests_console{
- department = "Bar";
- departmentType = 2;
- pixel_x = 30;
- receive_ore_updates = 1
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
},
-/obj/machinery/camera{
- c_tag = "Bar";
- dir = 8
- },
-/obj/structure/table,
-/obj/machinery/chem_dispenser/drinks{
- dir = 8
- },
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
+/turf/open/floor/plating,
+/area/space/nearstation)
"aad" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
@@ -113,40 +86,30 @@
"aan" = (
/obj/machinery/hydroponics/soil,
/obj/item/seeds/ambrosia,
-/obj/effect/turf_decal/tile/green{
- dir = 1
+/obj/machinery/newscaster{
+ pixel_y = 32
},
-/obj/effect/turf_decal/tile/green{
- dir = 4
- },
-/obj/effect/turf_decal/tile/green{
- dir = 8
- },
-/turf/open/floor/plasteel,
+/turf/open/floor/grass,
/area/security/prison)
"aao" = (
-/obj/machinery/airalarm{
- pixel_y = 23
- },
-/turf/open/floor/plating,
+/obj/machinery/hydroponics/soil,
+/obj/item/seeds/carrot,
+/turf/open/floor/grass,
/area/security/prison)
"aap" = (
/obj/machinery/hydroponics/soil,
-/obj/item/seeds/carrot,
-/obj/effect/turf_decal/tile/green{
- dir = 1
- },
-/obj/effect/turf_decal/tile/green{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/security/prison)
-"aaq" = (
+/obj/item/plant_analyzer,
/obj/structure/sign/warning/electricshock{
pixel_y = 32
},
+/turf/open/floor/grass,
+/area/security/prison)
+"aaq" = (
/obj/machinery/hydroponics/soil,
-/obj/item/plant_analyzer,
+/obj/item/seeds/glowshroom,
+/turf/open/floor/grass,
+/area/security/prison)
+"aar" = (
/obj/machinery/camera{
c_tag = "Prison Common Room";
network = list("ss13","prison")
@@ -158,24 +121,20 @@
/obj/effect/turf_decal/tile/green{
dir = 4
},
-/turf/open/floor/plasteel,
-/area/security/prison)
-"aar" = (
-/obj/machinery/hydroponics/soil,
-/obj/item/seeds/glowshroom,
/obj/effect/turf_decal/tile/green{
- dir = 1
+ dir = 8
},
-/obj/effect/turf_decal/tile/green{
- dir = 4
+/obj/structure/sink{
+ pixel_y = 20
},
/turf/open/floor/plasteel,
/area/security/prison)
"aas" = (
-/obj/structure/sink{
- pixel_y = 20
+/obj/structure/sign/warning/electricshock{
+ pixel_y = 32
},
-/turf/open/floor/plating,
+/obj/machinery/seed_extractor,
+/turf/open/floor/plasteel,
/area/security/prison)
"aat" = (
/turf/open/floor/plasteel,
@@ -194,78 +153,64 @@
/obj/machinery/light{
dir = 8
},
-/turf/open/floor/plating,
+/turf/open/floor/grass,
/area/security/prison)
"aax" = (
-/mob/living/simple_animal/mouse/brown/Tom,
-/turf/open/floor/plating,
+/turf/open/floor/grass,
/area/security/prison)
"aay" = (
/turf/open/floor/plating,
/area/security/prison)
"aaz" = (
/obj/item/reagent_containers/glass/bucket,
-/turf/open/floor/plating,
+/turf/open/floor/grass,
/area/security/prison)
"aaA" = (
-/obj/machinery/seed_extractor,
+/obj/machinery/vr_sleeper{
+ dir = 8
+ },
/turf/open/floor/plasteel,
/area/security/prison)
"aaB" = (
-/obj/structure/window/reinforced,
-/obj/machinery/hydroponics/soil,
-/obj/item/seeds/potato,
+/mob/living/simple_animal/mouse/brown/Tom,
+/turf/open/floor/grass,
+/area/security/prison)
+"aaC" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
/obj/effect/turf_decal/tile/green{
dir = 1
},
/obj/effect/turf_decal/tile/green,
/obj/effect/turf_decal/tile/green{
- dir = 8
+ dir = 4
},
/turf/open/floor/plasteel,
/area/security/prison)
-"aaC" = (
-/obj/structure/window/reinforced,
-/turf/open/floor/plating,
-/area/security/prison)
"aaD" = (
/obj/structure/window/reinforced,
/obj/machinery/hydroponics/soil,
-/obj/item/seeds/grass,
-/obj/effect/turf_decal/tile/green,
-/obj/effect/turf_decal/tile/green{
- dir = 8
- },
-/turf/open/floor/plasteel,
+/obj/item/seeds/potato,
+/turf/open/floor/grass,
/area/security/prison)
"aaE" = (
/obj/structure/window/reinforced,
/obj/machinery/hydroponics/soil,
-/obj/item/cultivator,
-/obj/effect/turf_decal/tile/green,
-/obj/effect/turf_decal/tile/green{
- dir = 4
- },
-/obj/effect/turf_decal/tile/green{
- dir = 8
- },
-/turf/open/floor/plasteel,
+/obj/item/seeds/grass,
+/turf/open/floor/grass,
/area/security/prison)
"aaF" = (
-/obj/structure/window/reinforced,
/obj/machinery/hydroponics/soil,
-/obj/item/cultivator,
-/obj/effect/turf_decal/tile/green,
-/obj/effect/turf_decal/tile/green{
- dir = 8
- },
-/turf/open/floor/plasteel,
+/obj/structure/window/reinforced,
+/obj/item/seeds/tower,
+/turf/open/floor/grass,
/area/security/prison)
"aaG" = (
/obj/machinery/light{
dir = 4
},
-/obj/machinery/cryopod{
+/obj/machinery/vr_sleeper{
dir = 8
},
/turf/open/floor/plasteel,
@@ -282,77 +227,54 @@
/turf/open/floor/plasteel,
/area/security/prison)
"aaK" = (
-/obj/machinery/washing_machine,
-/obj/structure/window/reinforced{
- dir = 1
- },
-/obj/effect/turf_decal/tile/blue{
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 4
},
-/obj/effect/turf_decal/tile/blue{
- dir = 8
- },
-/turf/open/floor/plasteel/cafeteria,
-/area/security/prison)
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aaL" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/structure/window/reinforced{
- dir = 1
- },
-/obj/effect/turf_decal/tile/blue{
- dir = 4
- },
-/obj/effect/turf_decal/tile/blue{
- dir = 8
- },
-/turf/open/floor/plasteel/cafeteria,
-/area/security/prison)
-"aaM" = (
/obj/machinery/computer/libraryconsole/bookmanagement,
/obj/structure/table,
-/obj/machinery/newscaster{
- pixel_x = -32
- },
/turf/open/floor/plasteel,
/area/security/prison)
+"aaM" = (
+/obj/structure/falsewall,
+/turf/open/floor/plating,
+/area/security/prison)
"aaN" = (
-/obj/structure/table,
-/obj/item/pen,
-/turf/open/floor/plasteel,
+/obj/structure/window/reinforced,
+/obj/machinery/hydroponics/soil,
+/obj/item/cultivator,
+/turf/open/floor/grass,
/area/security/prison)
"aaO" = (
-/obj/structure/table,
-/obj/item/storage/pill_bottle/dice,
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
/turf/open/floor/plasteel,
/area/security/prison)
"aaP" = (
-/obj/structure/table,
-/obj/structure/bedsheetbin,
-/obj/effect/turf_decal/tile/blue{
- dir = 4
- },
-/obj/effect/turf_decal/tile/blue{
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
},
+/turf/closed/wall,
+/area/security/execution/transfer)
+"aaQ" = (
/obj/machinery/computer/cryopod{
dir = 8;
pixel_x = 26
},
-/turf/open/floor/plasteel/cafeteria,
-/area/security/prison)
-"aaQ" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/effect/turf_decal/tile/blue{
- dir = 4
- },
-/obj/effect/turf_decal/tile/blue{
+/obj/machinery/cryopod{
dir = 8
},
-/turf/open/floor/plasteel/cafeteria,
+/turf/open/floor/plasteel,
/area/security/prison)
"aaR" = (
/obj/structure/lattice,
@@ -372,50 +294,30 @@
/turf/open/space,
/area/space/nearstation)
"aaU" = (
-/obj/machinery/computer/arcade{
- icon_state = "arcade";
+/obj/machinery/computer/arcade/minesweeper{
dir = 4
},
/turf/open/floor/plasteel,
/area/security/prison)
"aaV" = (
-/obj/structure/table,
-/obj/item/paper_bin{
- pixel_x = -3;
- pixel_y = 7
- },
-/obj/item/pen,
+/obj/structure/chair/sofa/right,
/turf/open/floor/plasteel,
/area/security/prison)
"aaW" = (
-/obj/structure/table,
-/obj/item/toy/cards/deck,
+/obj/structure/chair/sofa/left,
/turf/open/floor/plasteel,
/area/security/prison)
"aaX" = (
-/obj/machinery/washing_machine,
/obj/structure/window/reinforced,
-/obj/effect/turf_decal/tile/blue{
- dir = 4
- },
-/obj/effect/turf_decal/tile/blue{
+/obj/machinery/cryopod{
dir = 8
},
-/turf/open/floor/plasteel/cafeteria,
+/turf/open/floor/plasteel,
/area/security/prison)
"aaY" = (
-/obj/structure/window/reinforced,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/effect/turf_decal/tile/blue{
- dir = 4
- },
-/obj/effect/turf_decal/tile/blue{
- dir = 8
- },
-/turf/open/floor/plasteel/cafeteria,
-/area/security/prison)
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/security/execution/transfer)
"aaZ" = (
/turf/closed/wall/r_wall,
/area/ai_monitored/security/armory)
@@ -450,11 +352,11 @@
/turf/open/floor/plasteel,
/area/security/prison)
"abg" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 10
+/obj/machinery/computer/arcade{
+ dir = 4
},
-/turf/closed/wall/r_wall,
-/area/security/execution/transfer)
+/turf/open/floor/plasteel,
+/area/security/prison)
"abh" = (
/obj/machinery/holopad,
/turf/open/floor/plasteel,
@@ -473,6 +375,7 @@
/obj/structure/window/reinforced{
dir = 8
},
+/obj/machinery/washing_machine,
/turf/open/floor/plasteel/freezer,
/area/security/prison)
"abk" = (
@@ -560,8 +463,7 @@
/area/security/execution/transfer)
"abu" = (
/obj/machinery/door/poddoor{
- id = "executionspaceblast";
- name = "blast door"
+ id = "executionspaceblast"
},
/turf/open/floor/plating,
/area/security/execution/transfer)
@@ -588,8 +490,9 @@
/turf/open/floor/plasteel/dark,
/area/security/execution/transfer)
"abx" = (
-/obj/machinery/vending/cola/random,
-/turf/open/floor/plasteel,
+/obj/structure/bedsheetbin/color,
+/obj/structure/table,
+/turf/open/floor/plasteel/freezer,
/area/security/prison)
"aby" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
@@ -616,9 +519,6 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 4
},
-/obj/item/twohanded/required/kirbyplants{
- icon_state = "plant-24"
- },
/turf/open/floor/plasteel,
/area/security/prison)
"abB" = (
@@ -655,7 +555,6 @@
"abG" = (
/obj/machinery/door/window/westleft{
base_state = "right";
- dir = 8;
icon_state = "right";
name = "Unisex Showers"
},
@@ -751,8 +650,7 @@
pixel_y = -3
},
/obj/machinery/camera/motion{
- c_tag = "Armory Motion Sensor";
- dir = 2
+ c_tag = "Armory Motion Sensor"
},
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -921,7 +819,6 @@
/area/security/execution/transfer)
"acb" = (
/obj/machinery/sparker{
- dir = 2;
id = "executionburn";
pixel_x = 25
},
@@ -1009,8 +906,8 @@
/area/ai_monitored/security/armory)
"acm" = (
/obj/machinery/power/apc/highcap/five_k{
- dir = 4;
areastring = "/area/ai_monitored/security/armory";
+ dir = 4;
name = "Armory APC";
pixel_x = 24
},
@@ -1098,18 +995,14 @@
/turf/open/floor/plasteel/dark,
/area/security/execution/transfer)
"acA" = (
-/obj/machinery/atmospherics/components/unary/outlet_injector/on{
- dir = 2
- },
+/obj/machinery/atmospherics/components/unary/outlet_injector/on,
/obj/effect/turf_decal/stripes/line{
dir = 6
},
/turf/open/floor/plasteel/dark,
/area/security/execution/transfer)
"acB" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel/dark,
/area/security/execution/transfer)
"acC" = (
@@ -1120,7 +1013,6 @@
},
/obj/item/radio/intercom{
desc = "Talk through this. It looks like it has been modified to not broadcast.";
- dir = 2;
name = "Prison Intercom (General)";
pixel_y = 24;
prison_radio = 1
@@ -1150,7 +1042,6 @@
},
/obj/item/radio/intercom{
desc = "Talk through this. It looks like it has been modified to not broadcast.";
- dir = 2;
name = "Prison Intercom (General)";
pixel_y = 24;
prison_radio = 1
@@ -1172,7 +1063,6 @@
},
/obj/item/radio/intercom{
desc = "Talk through this. It looks like it has been modified to not broadcast.";
- dir = 2;
name = "Prison Intercom (General)";
pixel_y = 24;
prison_radio = 1
@@ -1211,13 +1101,15 @@
/turf/open/floor/plasteel,
/area/security/prison)
"acK" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12;
- pixel_y = 2
+/obj/structure/mirror{
+ pixel_x = 25
},
/obj/machinery/light/small{
- dir = 4
+ dir = 8
+ },
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = 11
},
/turf/open/floor/plasteel/freezer,
/area/security/prison)
@@ -1239,25 +1131,23 @@
pixel_y = -3
},
/obj/machinery/atmospherics/components/unary/vent_pump/on,
-/obj/effect/turf_decal/bot{
- dir = 2
- },
+/obj/effect/turf_decal/bot,
/obj/structure/window/reinforced{
dir = 1;
layer = 2.9
},
-/turf/open/floor/plasteel{
- dir = 2
- },
+/turf/open/floor/plasteel,
/area/ai_monitored/security/armory)
"acN" = (
-/obj/structure/chair/stool/bar,
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp/green{
+ on = 0;
+ pixel_x = -7;
+ pixel_y = 12
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
"acO" = (
/obj/structure/closet/l3closet/security,
/obj/machinery/camera{
@@ -1278,15 +1168,16 @@
/area/crew_quarters/heads/hos)
"acR" = (
/obj/structure/table/wood,
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
/obj/item/flashlight/lamp/green{
on = 0;
pixel_x = -3;
pixel_y = 8
},
-/obj/item/paper_bin{
- pixel_x = -3;
- pixel_y = 7
- },
+/obj/item/pen/fountain,
/turf/open/floor/carpet,
/area/crew_quarters/heads/hos)
"acS" = (
@@ -1438,9 +1329,7 @@
pixel_x = 3;
pixel_y = -3
},
-/obj/effect/turf_decal/bot{
- dir = 2
- },
+/obj/effect/turf_decal/bot,
/obj/structure/window/reinforced{
dir = 1;
layer = 2.9
@@ -1448,9 +1337,7 @@
/obj/structure/window/reinforced{
dir = 4
},
-/turf/open/floor/plasteel{
- dir = 2
- },
+/turf/open/floor/plasteel,
/area/ai_monitored/security/armory)
"adk" = (
/obj/structure/rack,
@@ -1463,9 +1350,7 @@
pixel_x = 3;
pixel_y = -3
},
-/obj/effect/turf_decal/bot{
- dir = 2
- },
+/obj/effect/turf_decal/bot,
/obj/structure/window/reinforced{
dir = 1;
layer = 2.9
@@ -1473,9 +1358,7 @@
/obj/structure/window/reinforced{
dir = 8
},
-/turf/open/floor/plasteel{
- dir = 2
- },
+/turf/open/floor/plasteel,
/area/ai_monitored/security/armory)
"adl" = (
/obj/machinery/door/poddoor/shutters{
@@ -1514,15 +1397,12 @@
/turf/open/floor/carpet,
/area/crew_quarters/heads/hos)
"adq" = (
-/obj/structure/table/wood,
-/obj/item/instrument/guitar{
- pixel_x = -7
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
},
-/obj/item/instrument/eguitar{
- pixel_x = 5
- },
-/turf/open/floor/wood,
-/area/crew_quarters/theatre)
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
"adr" = (
/obj/structure/sign/warning/vacuum/external{
pixel_x = -32
@@ -1700,9 +1580,7 @@
/area/security/prison)
"adK" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on,
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/ai_monitored/security/armory)
"adL" = (
@@ -1731,8 +1609,8 @@
/area/crew_quarters/heads/hos)
"adN" = (
/obj/machinery/power/apc{
- dir = 8;
areastring = "/area/crew_quarters/heads/hos";
+ dir = 8;
name = "Head of Security's Office APC";
pixel_x = -24
},
@@ -1743,8 +1621,11 @@
/turf/open/floor/carpet,
/area/crew_quarters/heads/hos)
"adO" = (
-/obj/structure/chair/stool,
/obj/effect/landmark/event_spawn,
+/obj/structure/chair/comfy/brown{
+ color = "#596479";
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/security/prison)
"adP" = (
@@ -1755,9 +1636,7 @@
/turf/open/floor/carpet,
/area/crew_quarters/heads/hos)
"adQ" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/ai_monitored/security/armory)
"adR" = (
@@ -2040,13 +1919,12 @@
/area/security/prison)
"aer" = (
/obj/machinery/firealarm{
- dir = 2;
pixel_y = 24
},
/obj/machinery/power/apc{
+ areastring = "/area/security/prison";
dir = 4;
name = "Prison Wing APC";
- areastring = "/area/security/prison";
pixel_x = 24
},
/obj/structure/cable{
@@ -2065,7 +1943,6 @@
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/machinery/suit_storage_unit/security,
/obj/effect/turf_decal/tile/red,
/obj/effect/turf_decal/tile/red{
dir = 8
@@ -2082,7 +1959,6 @@
/obj/structure/cable{
icon_state = "1-8"
},
-/obj/machinery/suit_storage_unit/security,
/obj/effect/turf_decal/tile/red,
/obj/effect/turf_decal/tile/red{
dir = 8
@@ -2145,7 +2021,8 @@
"aeB" = (
/obj/structure/table,
/obj/item/stack/packageWrap,
-/obj/item/pen,
+/obj/item/stack/packageWrap,
+/obj/item/hand_labeler,
/turf/open/floor/plasteel,
/area/security/main)
"aeC" = (
@@ -2444,8 +2321,6 @@
/area/security/main)
"afd" = (
/obj/item/radio/intercom{
- freerange = 0;
- frequency = 1459;
name = "Station Intercom (General)";
pixel_x = 29
},
@@ -2553,7 +2428,7 @@
/turf/open/floor/plasteel,
/area/security/main)
"afn" = (
-/obj/structure/table,
+/obj/machinery/suit_storage_unit/security,
/turf/open/floor/plasteel/showroomfloor,
/area/security/warden)
"afo" = (
@@ -2924,9 +2799,8 @@
/obj/structure/closet/secure_closet/injection,
/obj/structure/cable,
/obj/machinery/power/apc{
- dir = 2;
- name = "Prisoner Transfer Centre";
areastring = "/area/security/execution/transfer";
+ name = "Prisoner Transfer Centre";
pixel_y = -27
},
/turf/open/floor/plasteel/dark,
@@ -3034,9 +2908,7 @@
icon_state = "2-4"
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/ai_monitored/security/armory)
"agr" = (
@@ -3054,12 +2926,11 @@
/turf/open/floor/plasteel/showroomfloor,
/area/security/warden)
"agu" = (
-/obj/structure/table,
-/obj/machinery/recharger,
/obj/machinery/airalarm{
dir = 8;
pixel_x = 24
},
+/obj/machinery/suit_storage_unit/security,
/turf/open/floor/plasteel/showroomfloor,
/area/security/warden)
"agv" = (
@@ -3085,6 +2956,7 @@
/obj/effect/turf_decal/tile/red{
dir = 8
},
+/obj/machinery/syndicatebomb/training,
/turf/open/floor/plasteel,
/area/security/main)
"agx" = (
@@ -3159,8 +3031,13 @@
/area/security/brig)
"agE" = (
/obj/structure/table,
-/obj/item/folder/red,
-/obj/item/pen,
+/obj/item/storage/fancy/donut_box{
+ pixel_y = 10
+ },
+/obj/item/storage/fancy/donut_box,
+/obj/item/storage/fancy/donut_box{
+ pixel_y = -10
+ },
/turf/open/floor/plasteel,
/area/security/main)
"agF" = (
@@ -3334,8 +3211,11 @@
/turf/open/floor/plating,
/area/security/warden)
"agX" = (
-/obj/structure/table,
-/obj/machinery/recharger,
+/obj/structure/closet/secure_closet/warden,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/item/book/manual/wiki/security_space_law,
/turf/open/floor/plasteel/showroomfloor,
/area/security/warden)
"agY" = (
@@ -3402,14 +3282,21 @@
/turf/open/floor/plasteel,
/area/security/main)
"ahh" = (
+/obj/item/paper_bin/bundlenatural{
+ pixel_x = 6;
+ pixel_y = 4
+ },
+/obj/item/paper_bin{
+ pixel_x = -6;
+ pixel_y = 4
+ },
+/obj/item/pen/fountain,
+/obj/item/folder/red,
/obj/structure/disposalpipe/segment{
dir = 4
},
+/obj/item/pen,
/obj/structure/table,
-/obj/item/paper_bin{
- pixel_x = -3;
- pixel_y = 7
- },
/turf/open/floor/plasteel,
/area/security/main)
"ahi" = (
@@ -3517,8 +3404,6 @@
/area/security/brig)
"ahs" = (
/obj/item/radio/intercom{
- freerange = 0;
- frequency = 1459;
name = "Station Intercom (General)";
pixel_y = 24
},
@@ -3563,9 +3448,9 @@
/area/security/brig)
"ahv" = (
/obj/machinery/power/apc{
+ areastring = "/area/security/warden";
dir = 8;
name = "Brig Control APC";
- areastring = "/area/security/warden";
pixel_x = -24
},
/obj/structure/cable{
@@ -3649,9 +3534,7 @@
/area/security/main)
"ahD" = (
/obj/machinery/door/window/westleft{
- base_state = "left";
dir = 4;
- icon_state = "left";
name = "Brig Infirmary"
},
/obj/effect/turf_decal/tile/red,
@@ -3784,9 +3667,9 @@
/area/security/main)
"ahN" = (
/obj/machinery/power/apc{
+ areastring = "/area/security/main";
dir = 4;
name = "Security Office APC";
- areastring = "/area/security/main";
pixel_x = 24
},
/obj/structure/cable{
@@ -3809,9 +3692,17 @@
/turf/open/floor/plasteel/white,
/area/security/brig)
"ahQ" = (
-/obj/structure/closet/secure_closet/warden,
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/table,
+/obj/machinery/recharger{
+ pixel_x = -6;
+ pixel_y = 3
+ },
+/obj/machinery/recharger{
+ pixel_x = 6;
+ pixel_y = 3
},
/turf/open/floor/plasteel/showroomfloor,
/area/security/warden)
@@ -3966,16 +3857,11 @@
/turf/open/floor/plasteel/white,
/area/security/brig)
"aie" = (
-/obj/structure/table,
-/obj/item/folder/red,
-/obj/item/pen,
-/obj/item/hand_labeler,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/obj/item/book/manual/wiki/security_space_law,
-/turf/open/floor/plasteel/showroomfloor,
-/area/security/warden)
+/obj/structure/closet/wardrobe/mixed,
+/obj/item/clothing/shoes/jackboots,
+/obj/item/coin/silver,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
"aif" = (
/obj/structure/disposalpipe/segment,
/obj/structure/cable{
@@ -4475,7 +4361,6 @@
"aje" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on,
/obj/machinery/firealarm{
- dir = 2;
pixel_y = 24
},
/obj/effect/turf_decal/tile/red{
@@ -4535,8 +4420,6 @@
/area/security/courtroom)
"ajj" = (
/obj/item/radio/intercom{
- broadcasting = 0;
- listening = 1;
name = "Station Intercom (General)";
pixel_y = 20
},
@@ -4590,10 +4473,10 @@
/turf/open/floor/plasteel/dark,
/area/security/courtroom)
"ajq" = (
+/obj/structure/lattice/catwalk,
/obj/structure/cable{
icon_state = "0-2"
},
-/obj/structure/lattice/catwalk,
/turf/open/space,
/area/solar/port/fore)
"ajr" = (
@@ -4643,7 +4526,6 @@
/area/security/brig)
"ajx" = (
/obj/machinery/firealarm{
- dir = 2;
pixel_y = 24
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
@@ -4660,9 +4542,9 @@
/area/security/brig)
"ajy" = (
/obj/machinery/power/apc{
+ areastring = "/area/security/brig";
dir = 1;
name = "Brig APC";
- areastring = "/area/security/brig";
pixel_y = 24
},
/obj/structure/cable{
@@ -4740,9 +4622,7 @@
/area/security/courtroom)
"ajF" = (
/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
-/obj/effect/turf_decal/tile/red{
- dir = 2
- },
+/obj/effect/turf_decal/tile/red,
/turf/open/floor/plasteel,
/area/security/brig)
"ajG" = (
@@ -4824,9 +4704,7 @@
"ajO" = (
/obj/structure/table/wood,
/obj/item/radio/intercom{
- broadcasting = 0;
dir = 8;
- listening = 1;
name = "Station Intercom (Court)"
},
/obj/effect/turf_decal/tile/neutral{
@@ -5027,9 +4905,7 @@
dir = 1
},
/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
-/obj/effect/turf_decal/tile/red{
- dir = 2
- },
+/obj/effect/turf_decal/tile/red,
/turf/open/floor/plasteel,
/area/security/brig)
"akh" = (
@@ -5077,9 +4953,7 @@
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 1
},
-/obj/effect/turf_decal/tile/red{
- dir = 2
- },
+/obj/effect/turf_decal/tile/red,
/turf/open/floor/plasteel,
/area/security/brig)
"akl" = (
@@ -5582,10 +5456,10 @@
/turf/open/floor/plasteel,
/area/security/brig)
"alg" = (
+/obj/structure/lattice/catwalk,
/obj/structure/cable{
icon_state = "0-2"
},
-/obj/structure/lattice/catwalk,
/turf/open/space,
/area/solar/starboard/fore)
"alh" = (
@@ -5703,7 +5577,6 @@
},
/obj/item/radio/intercom{
desc = "Talk through this. It looks like it has been modified to not broadcast.";
- dir = 2;
name = "Prison Intercom (General)";
pixel_x = -25;
pixel_y = -2;
@@ -5738,7 +5611,6 @@
},
/obj/item/radio/intercom{
desc = "Talk through this. It looks like it has been modified to not broadcast.";
- dir = 2;
name = "Prison Intercom (General)";
pixel_x = -25;
pixel_y = -2;
@@ -5815,9 +5687,7 @@
/turf/open/floor/plasteel,
/area/security/brig)
"alF" = (
-/obj/machinery/atmospherics/components/unary/tank/air{
- dir = 2
- },
+/obj/machinery/atmospherics/components/unary/tank/air,
/turf/open/floor/plating,
/area/maintenance/port/fore)
"alG" = (
@@ -5862,22 +5732,25 @@
/turf/open/floor/plasteel,
/area/security/courtroom)
"alK" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/machinery/button/door{
+ id = "Room Two";
+ name = "Door Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = 7;
+ pixel_y = -24;
+ specialfunctions = 4
},
-/obj/structure/cable{
- icon_state = "2-8"
+/obj/structure/chair/comfy/brown{
+ dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/turf/open/floor/plating,
-/area/maintenance/fore/secondary)
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
"alL" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/power/apc{
+ areastring = "/area/security/courtroom";
dir = 8;
name = "Courtroom APC";
- areastring = "/area/security/courtroom";
pixel_x = -24
},
/obj/structure/cable{
@@ -5905,14 +5778,8 @@
/turf/open/floor/plasteel,
/area/security/prison)
"alN" = (
-/obj/machinery/camera{
- c_tag = "Dormitory Toilets";
- dir = 1
- },
-/obj/structure/table,
-/obj/structure/bedsheetbin/towel,
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet)
+/turf/open/space/basic,
+/area/space/nearstation)
"alO" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -5923,8 +5790,7 @@
"alQ" = (
/obj/machinery/power/solar_control{
id = "auxsolareast";
- name = "Port Bow Solar Control";
- track = 0
+ name = "Port Bow Solar Control"
},
/obj/structure/cable{
icon_state = "0-4"
@@ -6001,7 +5867,7 @@
pixel_y = -2
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/turf/open/floor/plasteel,
@@ -6026,17 +5892,23 @@
/turf/open/floor/plasteel,
/area/security/processing)
"amd" = (
-/obj/effect/turf_decal/tile/red{
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/button/door{
+ desc = "Bolts the doors to the Private Study.";
+ id = "PrivateStudy";
+ name = "Private Study Lock";
+ pixel_x = -5;
+ pixel_y = 24;
+ req_access_txt = "28"
},
-/obj/machinery/computer/arcade{
- icon_state = "arcade";
- dir = 4
+/obj/machinery/button/door{
+ id = "PrivateStudy1";
+ name = "Privacy Shutters";
+ pixel_x = 5;
+ pixel_y = 24
},
-/turf/open/floor/plasteel/white/corner{
- dir = 1
- },
-/area/hallway/secondary/exit)
+/turf/open/floor/wood,
+/area/library)
"ame" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -6048,7 +5920,6 @@
/area/security/processing)
"amf" = (
/obj/structure/bed,
-/obj/item/bedsheet,
/obj/structure/cable{
icon_state = "1-2"
},
@@ -6056,6 +5927,7 @@
id = "Cell 1";
pixel_x = -28
},
+/obj/item/bedsheet/orange,
/turf/open/floor/plasteel,
/area/security/brig)
"amg" = (
@@ -6067,11 +5939,11 @@
/area/security/brig)
"amh" = (
/obj/structure/bed,
-/obj/item/bedsheet,
/obj/machinery/flasher{
id = "Cell 2";
pixel_x = -28
},
+/obj/item/bedsheet/orange,
/turf/open/floor/plasteel,
/area/security/brig)
"ami" = (
@@ -6083,11 +5955,11 @@
/area/security/brig)
"amj" = (
/obj/structure/bed,
-/obj/item/bedsheet,
/obj/machinery/flasher{
id = "Cell 3";
pixel_x = -28
},
+/obj/item/bedsheet/orange,
/turf/open/floor/plasteel,
/area/security/brig)
"amk" = (
@@ -6170,7 +6042,6 @@
/obj/item/bedsheet,
/obj/item/radio/intercom{
desc = "Talk through this. It looks like it has been modified to not broadcast.";
- dir = 2;
name = "Prison Intercom (General)";
pixel_x = 25;
pixel_y = -2;
@@ -6216,11 +6087,8 @@
/turf/open/floor/plating,
/area/maintenance/solars/starboard/fore)
"amx" = (
-/obj/structure/chair{
- dir = 1
- },
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
+/turf/closed/wall,
+/area/crew_quarters/abandoned_gambling_den)
"amy" = (
/obj/structure/chair/stool{
pixel_y = 8
@@ -6244,16 +6112,18 @@
/turf/open/floor/plating,
/area/maintenance/solars/port/fore)
"amB" = (
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable{
+ icon_state = "1-2"
},
-/obj/machinery/computer/arcade{
- icon_state = "arcade";
- dir = 1
+/obj/structure/cable{
+ icon_state = "2-8"
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
"amC" = (
/turf/open/floor/plating,
/area/maintenance/port/fore)
@@ -6300,6 +6170,29 @@
/obj/item/trash/plate,
/turf/open/floor/plating,
/area/maintenance/port/fore)
+"amI" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 4;
+ name = "Air In"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"amJ" = (
+/obj/structure/mirror{
+ pixel_y = 32
+ },
+/obj/structure/sink{
+ dir = 1;
+ pixel_y = 25
+ },
+/obj/structure/toilet{
+ dir = 4
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/dorms)
"amK" = (
/obj/structure/sign/warning/docking,
/turf/closed/wall,
@@ -6320,6 +6213,19 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel,
/area/security/processing)
+"amN" = (
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"amO" = (
+/obj/machinery/shower{
+ dir = 8
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/dorms)
+"amP" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall,
+/area/crew_quarters/dorms)
"amQ" = (
/obj/structure/cable{
icon_state = "0-4"
@@ -6465,18 +6371,21 @@
/turf/open/floor/plating,
/area/maintenance/fore/secondary)
"anc" = (
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/machinery/shower{
+ dir = 4
},
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/plating,
-/area/maintenance/fore/secondary)
+/obj/item/soap,
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/dorms)
"and" = (
/obj/machinery/light/small{
dir = 4
},
/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
/turf/open/floor/plating,
/area/maintenance/fore/secondary)
"ane" = (
@@ -6493,9 +6402,9 @@
icon_state = "0-4"
},
/obj/machinery/power/apc{
+ areastring = "/area/maintenance/solars/port/fore";
dir = 8;
name = "Port Bow Solar APC";
- areastring = "/area/maintenance/solars/port/fore";
pixel_x = -25;
pixel_y = 3
},
@@ -6566,6 +6475,13 @@
},
/turf/open/floor/plating,
/area/maintenance/port/fore)
+"anq" = (
+/obj/structure/sign/poster/official/twelve_gauge,
+/turf/closed/wall/r_wall,
+/area/ai_monitored/security/armory)
+"anr" = (
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/dorms)
"ans" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 4
@@ -6679,15 +6595,11 @@
/turf/open/floor/plating,
/area/security/courtroom)
"anD" = (
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
},
-/obj/structure/disposalpipe/segment,
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
- dir = 1
- },
-/turf/open/floor/plating,
-/area/maintenance/fore/secondary)
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
"anE" = (
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 4
@@ -6733,6 +6645,16 @@
/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating,
/area/maintenance/port/fore)
+"anM" = (
+/obj/structure/window/reinforced/tinted{
+ dir = 8
+ },
+/obj/structure/window/reinforced/tinted{
+ dir = 4
+ },
+/obj/structure/curtain,
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/dorms)
"anN" = (
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 4
@@ -6879,8 +6801,7 @@
"aoh" = (
/obj/machinery/power/solar_control{
id = "auxsolareast";
- name = "Starboard Bow Solar Control";
- track = 0
+ name = "Starboard Bow Solar Control"
},
/obj/structure/cable{
icon_state = "0-4"
@@ -6932,6 +6853,9 @@
/obj/item/circuitboard/machine/monkey_recycler,
/turf/open/floor/plating,
/area/maintenance/port/fore)
+"aop" = (
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet)
"aoq" = (
/obj/structure/sign/warning/vacuum/external{
pixel_y = -32
@@ -7026,9 +6950,7 @@
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
"aoz" = (
-/obj/effect/turf_decal/tile/red{
- dir = 2
- },
+/obj/effect/turf_decal/tile/red,
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
"aoA" = (
@@ -7037,9 +6959,7 @@
pixel_y = -29
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/effect/turf_decal/tile/red{
- dir = 2
- },
+/obj/effect/turf_decal/tile/red,
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
"aoB" = (
@@ -7047,16 +6967,12 @@
dir = 1;
pixel_y = -24
},
-/obj/effect/turf_decal/tile/red{
- dir = 2
- },
+/obj/effect/turf_decal/tile/red,
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
"aoC" = (
/obj/machinery/vending/coffee,
-/obj/effect/turf_decal/tile/red{
- dir = 2
- },
+/obj/effect/turf_decal/tile/red,
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
"aoD" = (
@@ -7068,23 +6984,17 @@
pixel_x = 5;
pixel_y = -32
},
-/obj/effect/turf_decal/tile/red{
- dir = 2
- },
+/obj/effect/turf_decal/tile/red,
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
"aoE" = (
/obj/machinery/vending/cigarette,
-/obj/effect/turf_decal/tile/red{
- dir = 2
- },
+/obj/effect/turf_decal/tile/red,
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
"aoF" = (
/obj/machinery/vending/snack/random,
-/obj/effect/turf_decal/tile/red{
- dir = 2
- },
+/obj/effect/turf_decal/tile/red,
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
"aoG" = (
@@ -7104,27 +7014,9 @@
/turf/open/floor/plasteel/dark,
/area/security/courtroom)
"aoI" = (
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/obj/structure/disposalpipe/segment{
- dir = 9
- },
-/obj/machinery/light/small{
- dir = 4
- },
-/obj/machinery/power/apc{
- dir = 2;
- name = "Fitness Room APC";
- areastring = "/area/crew_quarters/fitness";
- pixel_y = -24
- },
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/turf/open/floor/plating,
-/area/maintenance/fore/secondary)
+/obj/structure/fireplace,
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
"aoJ" = (
/obj/structure/disposalpipe/segment,
/turf/open/floor/plating,
@@ -7219,6 +7111,26 @@
/obj/structure/closet/emcloset,
/turf/open/floor/plating,
/area/maintenance/port/fore)
+"aoY" = (
+/obj/structure/sign/warning/fire{
+ desc = "A sign that states the labeled room's number.";
+ dir = 10;
+ icon_state = "roomnum";
+ name = "Room Number 6";
+ pixel_y = 24
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/washing_machine{
+ pixel_x = 7;
+ pixel_y = 7
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
"aoZ" = (
/obj/machinery/atmospherics/components/binary/valve/digital{
name = "Waste Release"
@@ -7334,9 +7246,9 @@
icon_state = "0-2"
},
/obj/machinery/power/apc{
+ areastring = "/area/maintenance/fore/secondary";
dir = 1;
name = "Fore Maintenance APC";
- areastring = "/area/maintenance/fore/secondary";
pixel_y = 24
},
/obj/structure/disposalpipe/segment{
@@ -7367,38 +7279,23 @@
/turf/open/floor/plating,
/area/maintenance/fore/secondary)
"apu" = (
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/structure/closet/secure_closet/personal/cabinet{
+ desc = "Swipe your ID on the closet to claim it. First come first serve, this one is wooden and fancy. Store your stuff here.";
+ name = "Personal ID-Locked Closet";
+ pixel_y = 15
},
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 9
- },
-/turf/open/floor/plating,
-/area/maintenance/fore/secondary)
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
"apv" = (
-/obj/machinery/door/airlock/maintenance{
- name = "Fitness Maintenance";
- req_access_txt = "12"
- },
+/obj/structure/lattice/catwalk,
+/turf/open/space/basic,
+/area/space/nearstation)
+"apw" = (
/obj/structure/cable{
icon_state = "1-2"
},
/obj/structure/disposalpipe/segment,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/plating,
-/area/maintenance/fore/secondary)
-"apw" = (
-/obj/machinery/atmospherics/components/binary/pump/on{
- dir = 4;
- name = "Air In"
- },
-/obj/effect/landmark/blobstart,
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plating,
/area/maintenance/fore/secondary)
"apx" = (
@@ -7435,9 +7332,9 @@
icon_state = "0-4"
},
/obj/machinery/power/apc{
+ areastring = "/area/maintenance/solars/starboard/fore";
dir = 8;
name = "Starboard Bow Solar APC";
- areastring = "/area/maintenance/solars/starboard/fore";
pixel_x = -25;
pixel_y = 3
},
@@ -7458,8 +7355,9 @@
/turf/closed/wall/r_wall,
/area/maintenance/starboard/fore)
"apD" = (
-/obj/structure/closet/wardrobe/mixed,
-/obj/item/clothing/shoes/jackboots,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/machinery/computer/slot_machine,
+/obj/item/coin/iron,
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"apE" = (
@@ -7475,6 +7373,15 @@
/obj/machinery/portable_atmospherics/canister/water_vapor,
/turf/open/floor/plasteel,
/area/janitor)
+"apH" = (
+/obj/machinery/door/airlock{
+ desc = "A small bathroom with a sink, toilet and shower.";
+ id_tag = "Bath1";
+ name = "Bathroom"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet)
"apI" = (
/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/atmos_waste{
dir = 1
@@ -7485,6 +7392,12 @@
"apJ" = (
/turf/closed/wall,
/area/construction/mining/aux_base)
+"apK" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/space/nearstation)
"apL" = (
/obj/structure/table,
/obj/effect/spawner/lootdrop/maintenance{
@@ -7513,6 +7426,14 @@
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
/area/maintenance/port/fore)
+"apQ" = (
+/obj/machinery/door/airlock{
+ desc = "A small bathroom with a sink, toilet and shower.";
+ id_tag = "Bath2";
+ name = "Bathroom"
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet)
"apR" = (
/obj/item/paper/fluff/jobs/security/beepsky_mom,
/turf/open/floor/plating,
@@ -7523,6 +7444,18 @@
},
/turf/open/floor/plating,
/area/maintenance/fore)
+"apT" = (
+/obj/structure/lattice/catwalk,
+/obj/item/stack/marker_beacon{
+ anchored = 1;
+ icon_state = "markerburgundy-on";
+ light_power = 3;
+ light_range = 3;
+ name = "Docking Beacon";
+ picked_color = "Burgundy"
+ },
+/turf/open/space/basic,
+/area/space/nearstation)
"apU" = (
/turf/open/floor/plating,
/area/security/vacantoffice/b)
@@ -7539,13 +7472,21 @@
/turf/open/floor/plating,
/area/maintenance/fore)
"apX" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/turf/closed/wall,
-/area/crew_quarters/fitness)
-"apY" = (
-/obj/structure/closet/secure_closet/personal,
+/obj/structure/bed,
+/obj/item/bedsheet/random,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
/turf/open/floor/carpet,
/area/crew_quarters/dorms)
+"apY" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "maintdiy";
+ name = "Security Shutters"
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/abandoned_gambling_den)
"apZ" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 8
@@ -7553,12 +7494,9 @@
/turf/open/floor/wood,
/area/lawoffice)
"aqa" = (
-/obj/structure/table,
-/obj/machinery/light/small{
- dir = 8
- },
-/turf/open/floor/carpet,
-/area/crew_quarters/dorms)
+/obj/machinery/recharge_station,
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
"aqb" = (
/obj/structure/rack,
/obj/item/storage/briefcase,
@@ -7639,9 +7577,8 @@
/area/maintenance/fore/secondary)
"aqk" = (
/obj/machinery/power/apc{
- dir = 2;
- name = "Dormitory APC";
areastring = "/area/crew_quarters/dorms";
+ name = "Dormitory APC";
pixel_y = -24
},
/obj/structure/cable{
@@ -7653,32 +7590,22 @@
/turf/open/floor/plating,
/area/maintenance/fore/secondary)
"aql" = (
-/obj/structure/disposalpipe/segment{
- dir = 6
+/obj/structure/mirror{
+ pixel_y = 32
},
-/obj/structure/cable{
- icon_state = "2-8"
+/obj/structure/sink{
+ dir = 1;
+ pixel_y = 25
},
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
- dir = 1
- },
-/turf/open/floor/plating,
-/area/maintenance/fore/secondary)
-"aqm" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+/obj/machinery/light/small{
dir = 4
},
-/turf/open/floor/plating,
-/area/maintenance/fore/secondary)
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/dorms)
+"aqm" = (
+/obj/structure/chair/sofa/right,
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
"aqn" = (
/obj/structure/bed,
/obj/machinery/airalarm{
@@ -7698,11 +7625,25 @@
/turf/open/floor/carpet,
/area/crew_quarters/dorms)
"aqo" = (
-/obj/structure/chair/stool{
- pixel_y = 8
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/turf/open/floor/wood,
-/area/crew_quarters/dorms)
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/crew_quarters/fitness";
+ name = "Fitness Room APC";
+ pixel_y = -24
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
"aqp" = (
/obj/structure/rack,
/obj/item/clothing/suit/fire/firefighter,
@@ -7727,24 +7668,45 @@
/turf/open/floor/plating,
/area/maintenance/fore/secondary)
"aqr" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aqs" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 6
},
/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "holoprivacy";
+ name = "Holodeck Shutters"
+ },
/turf/open/floor/plating,
/area/crew_quarters/fitness)
-"aqs" = (
+"aqt" = (
+/obj/machinery/door/airlock{
+ desc = "A small bathroom with a sink, toilet and shower.";
+ id_tag = "Bath3";
+ name = "Bathroom"
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet)
+"aqu" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
-/area/crew_quarters/fitness)
-"aqu" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 10
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "holoprivacy";
+ name = "Holodeck Shutters"
},
-/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/crew_quarters/fitness)
"aqv" = (
@@ -7788,26 +7750,47 @@
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"aqB" = (
-/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/structure/table/glass,
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/pen,
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"aqC" = (
-/obj/machinery/computer/slot_machine{
- balance = 15;
- money = 500
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/structure/chair/comfy/brown{
+ dir = 4
},
-/obj/item/coin/iron,
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
+/turf/open/floor/wood,
+/area/crew_quarters/dorms)
"aqD" = (
-/obj/effect/decal/cleanable/cobweb,
-/obj/item/coin/gold,
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/structure/table/wood,
+/turf/open/floor/wood,
+/area/crew_quarters/dorms)
"aqE" = (
-/obj/effect/landmark/xeno_spawn,
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
+/obj/item/flashlight/lamp/green{
+ pixel_x = -3;
+ pixel_y = 22
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4;
+ pixel_y = 5
+ },
+/obj/structure/dresser{
+ desc = "There's plenty of clothes here to change into! It has a surprising amount of variety, too.";
+ name = "Dresser";
+ pixel_y = 7
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
+"aqF" = (
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
"aqG" = (
/obj/docking_port/stationary/random{
dir = 4;
@@ -7816,6 +7799,28 @@
},
/turf/open/space,
/area/space/nearstation)
+"aqH" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
+"aqI" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
"aqJ" = (
/obj/effect/mapping_helpers/airlock/cyclelink_helper,
/obj/machinery/door/airlock/external{
@@ -7841,19 +7846,25 @@
/obj/machinery/meter,
/turf/open/floor/plating,
/area/maintenance/port/fore)
+"aqN" = (
+/obj/structure/toilet{
+ dir = 8
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/dorms)
"aqO" = (
/obj/structure/closet,
/obj/effect/spawner/lootdrop/maintenance{
- lootcount = 2;
- name = "2maintenance loot spawner"
+ lootcount = 3;
+ name = "3maintenance loot spawner"
},
/turf/open/floor/plating,
/area/maintenance/port/fore)
"aqP" = (
/obj/machinery/power/apc{
+ areastring = "/area/maintenance/port/fore";
dir = 1;
name = "Port Bow Maintenance APC";
- areastring = "/area/maintenance/port/fore";
pixel_x = -1;
pixel_y = 26
},
@@ -7882,9 +7893,9 @@
/area/security/processing)
"aqT" = (
/obj/machinery/power/apc{
+ areastring = "/area/security/processing";
dir = 8;
name = "Labor Shuttle Dock APC";
- areastring = "/area/security/processing";
pixel_x = -24
},
/obj/structure/cable,
@@ -7893,6 +7904,14 @@
},
/turf/open/floor/plating,
/area/maintenance/fore)
+"aqU" = (
+/obj/structure/closet/secure_closet/personal{
+ desc = "Swipe your ID on this locker to claim it. You can drag it around and use it as your own personal storage area. Very useful.";
+ name = "Personal ID-Locked Locker";
+ pixel_y = 10
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
"aqV" = (
/obj/structure/table/wood,
/obj/item/paper_bin{
@@ -7961,6 +7980,13 @@
"arf" = (
/turf/closed/wall,
/area/crew_quarters/dorms)
+"arg" = (
+/obj/machinery/hydroponics/constructable,
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/hydroponics)
"arh" = (
/obj/machinery/door/airlock/maintenance{
name = "Dormitories Maintenance";
@@ -7970,60 +7996,49 @@
/turf/open/floor/plating,
/area/maintenance/fore/secondary)
"ari" = (
-/obj/machinery/airalarm{
- pixel_y = 23
- },
-/obj/structure/closet/secure_closet/personal/cabinet,
-/obj/effect/decal/cleanable/cobweb/cobweb2,
-/turf/open/floor/wood,
-/area/crew_quarters/dorms)
-"arj" = (
-/turf/closed/wall,
-/area/crew_quarters/fitness)
-"ark" = (
-/obj/machinery/airalarm{
- pixel_y = 23
- },
-/obj/structure/closet/secure_closet/personal/cabinet,
-/turf/open/floor/wood,
-/area/crew_quarters/dorms)
-"arl" = (
-/obj/structure/disposalpipe/junction/flip{
- dir = 2
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/effect/turf_decal/tile/neutral{
+/obj/machinery/light/small{
dir = 1
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
+"arj" = (
+/obj/machinery/door/airlock{
+ id_tag = "Room Two";
+ name = "Room Seven - Luxury Suite"
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
-"arm" = (
+/obj/machinery/door/firedoor,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/dorms)
+"ark" = (
+/obj/structure/bed,
+/obj/item/bedsheet/random,
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
+"arl" = (
+/obj/structure/sign/poster/official/ion_rifle,
+/turf/closed/wall/r_wall,
+/area/ai_monitored/security/armory)
+"arm" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "holoprivacy";
+ name = "Holodeck Shutters"
+ },
/turf/open/floor/plating,
/area/crew_quarters/fitness)
"arn" = (
-/obj/structure/closet/athletic_mixed,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 5
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
"aro" = (
/turf/open/floor/engine{
name = "Holodeck Projector Floor"
@@ -8046,35 +8061,31 @@
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"arr" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/structure/cable{
- icon_state = "2-8"
+/obj/structure/disposalpipe/segment,
+/obj/machinery/door/airlock/maintenance{
+ name = "Dormitories Maintenance";
+ req_access_txt = "12"
},
/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
+/area/maintenance/fore/secondary)
"ars" = (
-/obj/machinery/power/apc{
- dir = 1;
- name = "Starboard Bow Maintenance APC";
- areastring = "/area/maintenance/starboard/fore";
- pixel_y = 24
+/obj/item/flashlight/lamp/green{
+ pixel_x = -3;
+ pixel_y = 22
},
-/obj/structure/cable{
- icon_state = "0-4"
+/obj/structure/dresser{
+ desc = "There's plenty of clothes here to change into! It has a surprising amount of variety, too.";
+ name = "Dresser";
+ pixel_y = 7
},
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
+/turf/open/floor/wood,
+/area/crew_quarters/dorms)
"art" = (
-/obj/machinery/light/small{
- dir = 1
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
},
-/obj/machinery/camera{
- c_tag = "Fore Starboard Solar Access"
- },
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
"aru" = (
/obj/structure/chair/stool,
/turf/open/floor/plating,
@@ -8099,11 +8110,11 @@
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"ary" = (
-/obj/structure/closet,
-/obj/item/coin/iron,
-/obj/effect/spawner/lootdrop/maintenance,
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/dorms)
"arz" = (
/obj/item/coin/gold,
/obj/item/coin/iron,
@@ -8112,11 +8123,26 @@
"arA" = (
/obj/structure/closet,
/obj/effect/spawner/lootdrop/maintenance,
+/obj/item/coin/plasma,
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"arB" = (
/turf/closed/wall/r_wall,
/area/hallway/secondary/entry)
+"arC" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"arD" = (
+/obj/item/radio/intercom{
+ dir = 4;
+ name = "Station Intercom (General)";
+ pixel_x = 27
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
"arE" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on,
/obj/effect/turf_decal/tile/yellow{
@@ -8204,14 +8230,27 @@
/turf/open/floor/plating,
/area/maintenance/port/fore)
"arO" = (
-/obj/machinery/monkey_recycler,
-/obj/item/reagent_containers/food/snacks/monkeycube,
-/obj/item/reagent_containers/food/snacks/monkeycube,
-/turf/open/floor/plating,
-/area/maintenance/port/fore)
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/chair/sofa,
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
"arP" = (
/turf/closed/wall,
/area/maintenance/fore)
+"arQ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
"arR" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on,
/obj/structure/table/wood,
@@ -8235,7 +8274,7 @@
},
/obj/structure/filingcabinet/employment,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/turf/open/floor/wood,
@@ -8284,14 +8323,15 @@
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
"asb" = (
-/obj/structure/disposalpipe/trunk{
- dir = 8
+/obj/structure/sign/warning/fire{
+ desc = "A sign that states the labeled room's number.";
+ dir = 5;
+ icon_state = "roomnum";
+ name = "Room Number 7";
+ pixel_y = 24
},
-/obj/machinery/disposal/bin,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
+/obj/structure/chair/sofa/right,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
/turf/open/floor/plasteel,
@@ -8335,20 +8375,11 @@
/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
"asg" = (
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+/obj/structure/chair{
dir = 4
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
+/area/crew_quarters/fitness)
"ash" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -8381,23 +8412,29 @@
/turf/open/floor/plating,
/area/security/vacantoffice/b)
"ask" = (
-/obj/structure/dresser,
+/obj/machinery/light/small{
+ dir = 4;
+ light_color = "#d8b1b1"
+ },
/turf/open/floor/wood,
/area/crew_quarters/dorms)
"asl" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/turf/open/floor/plating,
/area/security/vacantoffice/b)
"asm" = (
-/obj/machinery/light/small{
- dir = 1
+/obj/structure/closet/secure_closet/bar{
+ req_access_txt = "25"
},
-/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/item/clothing/under/waiter,
+/obj/item/clothing/under/waiter,
+/obj/item/clothing/under/waiter,
+/obj/item/gun/ballistic/revolver/doublebarrel,
/turf/open/floor/wood,
-/area/crew_quarters/dorms)
+/area/crew_quarters/bar)
"asn" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
/turf/open/floor/plating,
@@ -8414,69 +8451,41 @@
/turf/open/floor/plating,
/area/maintenance/fore)
"asp" = (
-/obj/structure/table/wood,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/vending/wardrobe/bar_wardrobe,
/turf/open/floor/wood,
-/area/crew_quarters/dorms)
+/area/crew_quarters/bar)
"asq" = (
-/obj/machinery/camera{
- c_tag = "Fitness Room"
+/obj/machinery/light,
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
},
-/obj/structure/closet/masks,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"asr" = (
-/obj/structure/closet/boxinggloves,
-/obj/machinery/light{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/obj/item/clothing/shoes/jackboots,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
+/obj/structure/table/wood/fancy,
+/obj/item/reagent_containers/food/drinks/soda_cans/starkist{
+ pixel_x = -3;
+ pixel_y = 5
},
/turf/open/floor/plasteel,
/area/crew_quarters/fitness)
"ass" = (
-/obj/structure/closet/lasertag/red,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 10
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/door/airlock/external{
+ name = "External Access";
+ req_access_txt = "13"
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
"ast" = (
-/obj/structure/closet/lasertag/blue,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
+/obj/machinery/airalarm{
+ pixel_y = 23
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
+/obj/structure/chair/sofa/left,
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
"asu" = (
/obj/structure/bed,
/obj/machinery/button/door{
@@ -8496,6 +8505,9 @@
lootcount = 3;
name = "3maintenance loot spawner"
},
+/obj/structure/light_construct{
+ dir = 8
+ },
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"asw" = (
@@ -8531,6 +8543,10 @@
"asC" = (
/turf/open/floor/plasteel/airless,
/area/space/nearstation)
+"asD" = (
+/obj/machinery/light,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"asE" = (
/turf/closed/wall,
/area/hallway/secondary/entry)
@@ -8538,6 +8554,13 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/construction/mining/aux_base)
+"asG" = (
+/obj/machinery/camera{
+ c_tag = "Bar South";
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"asH" = (
/obj/structure/closet/toolcloset,
/obj/effect/turf_decal/tile/yellow{
@@ -8582,40 +8605,30 @@
/turf/open/floor/plating,
/area/maintenance/port/fore)
"asL" = (
-/obj/structure/bed,
-/obj/machinery/button/door{
- id = "Dorm6";
- name = "Cabin Bolt Control";
- normaldoorcontrol = 1;
- pixel_y = -25;
- specialfunctions = 4
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
-/obj/effect/spawner/lootdrop/bedsheet,
-/turf/open/floor/wood,
-/area/crew_quarters/dorms)
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plating,
+/area/space/nearstation)
"asM" = (
-/obj/structure/disposalpipe/segment,
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
- dir = 8
+/obj/structure/cable{
+ icon_state = "1-2"
},
/obj/structure/cable{
- icon_state = "1-4"
+ icon_state = "2-4"
},
-/obj/effect/turf_decal/tile/neutral{
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"asN" = (
+/obj/machinery/light/small{
dir = 1
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
+/obj/machinery/camera{
+ c_tag = "Fore Starboard Solar Access"
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
-"asN" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
"asO" = (
/obj/structure/reagent_dispensers/fueltank,
/turf/open/floor/plating,
@@ -8643,48 +8656,64 @@
/turf/open/floor/plating,
/area/maintenance/fore)
"asU" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 8;
+ name = "8maintenance loot spawner"
+ },
/turf/open/floor/plasteel,
/area/security/vacantoffice/b)
"asV" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
- dir = 1
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/starboard/fore";
+ dir = 1;
+ name = "Starboard Bow Maintenance APC";
+ pixel_y = 24
},
/obj/structure/cable{
- icon_state = "2-8"
+ icon_state = "0-8"
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
"asW" = (
-/obj/machinery/light/small{
- dir = 8
+/obj/structure/table/wood,
+/obj/item/storage/box/evidence,
+/obj/item/hand_labeler{
+ pixel_x = 5
},
-/obj/structure/rack,
-/obj/item/storage/briefcase,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/item/taperecorder,
/turf/open/floor/plasteel/grimy,
/area/security/detectives_office)
"asX" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
+/area/crew_quarters/dorms)
"asY" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 9
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "holoprivacy";
+ name = "Holodeck Shutters"
},
/turf/open/floor/plating,
/area/crew_quarters/fitness)
"asZ" = (
+/obj/structure/chair/sofa/left,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/obj/machinery/vr_sleeper,
-/obj/effect/turf_decal/tile/red,
-/obj/effect/turf_decal/tile/red{
- dir = 4
+ dir = 10
},
/turf/open/floor/plasteel,
/area/crew_quarters/fitness)
@@ -8725,23 +8754,23 @@
/turf/open/floor/carpet,
/area/crew_quarters/dorms)
"atf" = (
-/obj/structure/chair/stool{
- pixel_y = 8
+/obj/machinery/camera{
+ c_tag = "Bar Storage"
},
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 4
+/obj/structure/sink/kitchen{
+ pixel_y = 28
},
-/turf/open/floor/carpet,
-/area/crew_quarters/dorms)
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"atg" = (
/obj/machinery/door/airlock{
id_tag = "Dorm4";
- name = "Dorm 4"
+ name = "Room Three"
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
-/turf/open/floor/plasteel,
+/turf/open/floor/plasteel/dark,
/area/crew_quarters/dorms)
"ath" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
@@ -8772,6 +8801,17 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
+"atk" = (
+/obj/machinery/light/small,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"atl" = (
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -23
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
"atm" = (
/turf/open/floor/wood,
/area/crew_quarters/dorms)
@@ -8816,7 +8856,13 @@
/turf/open/floor/plating,
/area/security/vacantoffice/b)
"att" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/table/wood/fancy,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/item/reagent_containers/food/drinks/britcup{
+ desc = "Kingston's personal cup.";
+ pixel_x = 5;
+ pixel_y = 5
+ },
/turf/open/floor/plasteel,
/area/crew_quarters/fitness)
"atu" = (
@@ -8860,8 +8906,22 @@
icon_state = "panelscorched"
},
/area/maintenance/starboard/fore)
+"atz" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/obj/structure/closet/wardrobe/black,
+/obj/item/clothing/under/skirt/black,
+/obj/item/clothing/head/beret/black,
+/obj/item/clothing/head/beret/black,
+/obj/item/clothing/under/trendy_fit,
+/obj/item/clothing/under/trendy_fit,
+/obj/item/clothing/under/sundress,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
"atA" = (
/obj/structure/table,
+/obj/item/paicard,
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"atB" = (
@@ -8957,13 +9017,19 @@
/turf/closed/wall,
/area/maintenance/port/fore)
"atQ" = (
-/obj/machinery/door/airlock{
- id_tag = "Dorm5";
- name = "Cabin 1"
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/turf/open/floor/wood,
-/area/crew_quarters/dorms)
+/obj/structure/closet/wardrobe/white,
+/obj/item/clothing/under/waiter,
+/obj/item/clothing/under/waiter,
+/obj/item/clothing/under/waiter,
+/obj/structure/sign/poster/contraband/lizard{
+ pixel_x = -32
+ },
+/obj/item/clothing/suit/straight_jacket,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
"atR" = (
/obj/effect/landmark/carpspawn,
/obj/structure/lattice,
@@ -8973,10 +9039,15 @@
/turf/closed/wall,
/area/space/nearstation)
"atT" = (
-/obj/structure/closet,
-/obj/effect/spawner/lootdrop/maintenance,
-/turf/open/floor/plating,
-/area/maintenance/port/fore)
+/obj/structure/table/wood/poker,
+/obj/item/toy/cards/deck{
+ pixel_y = 5
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"atU" = (
/obj/structure/rack,
/obj/effect/spawner/lootdrop/maintenance{
@@ -8986,44 +9057,48 @@
/turf/open/floor/plating,
/area/maintenance/port/fore)
"atV" = (
-/obj/machinery/airalarm{
- dir = 4;
- pixel_x = -23
- },
-/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 1
+ dir = 4;
+ pixel_y = 5
},
-/obj/effect/turf_decal/tile/neutral{
+/obj/structure/chair/sofa{
dir = 1
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/turf/open/floor/plasteel,
/area/crew_quarters/fitness)
"atW" = (
/obj/structure/chair/stool,
/turf/open/floor/plating,
/area/maintenance/port/fore)
+"atX" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/space/nearstation)
"atY" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/closed/wall,
/area/security/vacantoffice/b)
"atZ" = (
-/obj/machinery/door/firedoor,
-/obj/machinery/door/airlock/public/glass{
- name = "Holodeck Door"
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
},
/turf/open/floor/plasteel,
/area/crew_quarters/fitness)
"aua" = (
-/obj/effect/turf_decal/tile/red,
-/obj/effect/turf_decal/tile/red{
- dir = 4
+/obj/structure/bed,
+/obj/machinery/button/door{
+ id = "Dorm6";
+ name = "Cabin Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_y = -25;
+ specialfunctions = 4
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/effect/spawner/lootdrop/bedsheet,
+/turf/open/floor/wood,
+/area/crew_quarters/dorms)
"aub" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/effect/turf_decal/tile/yellow,
@@ -9043,6 +9118,12 @@
},
/turf/open/floor/plasteel,
/area/construction/mining/aux_base)
+"aud" = (
+/obj/machinery/atmospherics/components/unary/tank/air{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
"aue" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/closed/wall,
@@ -9146,60 +9227,60 @@
/turf/open/floor/plating,
/area/maintenance/fore)
"aup" = (
-/obj/machinery/door/airlock{
- id_tag = "Dorm6";
- name = "Cabin 2"
+/obj/structure/table/wood/fancy,
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_x = -3;
+ pixel_y = 9
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/turf/open/floor/wood,
-/area/crew_quarters/dorms)
+/obj/item/reagent_containers/food/condiment/peppermill{
+ dir = 1;
+ pixel_x = 3;
+ pixel_y = 9
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
"auq" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/closed/wall,
/area/security/vacantoffice/b)
"aur" = (
-/obj/machinery/door/window/eastright{
- base_state = "left";
- dir = 8;
- icon_state = "left";
- name = "Fitness Ring"
- },
-/obj/structure/window/reinforced{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness)
+/obj/structure/table/wood/fancy/black,
+/obj/machinery/light/small,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
"aus" = (
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
+/area/crew_quarters/dorms)
"aut" = (
-/obj/structure/window/reinforced{
- dir = 1
+/obj/machinery/door/airlock{
+ id_tag = "Room One";
+ name = "Room Six - Luxury Suite"
},
+/obj/machinery/door/firedoor,
/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness)
+/area/crew_quarters/dorms)
"auu" = (
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
- dir = 4
+/obj/structure/closet/secure_closet/personal/cabinet{
+ desc = "Swipe your ID on the closet to claim it. First come first serve, this one is wooden and fancy. Store your stuff here.";
+ name = "Personal ID-Locked Closet";
+ pixel_y = 15
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
+/turf/open/floor/wood,
+/area/crew_quarters/dorms)
"auv" = (
-/obj/structure/window/reinforced{
- dir = 4
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/structure/closet/secure_closet/personal/cabinet{
+ desc = "Swipe your ID on the closet to claim it. First come first serve, this one is wooden and fancy. Store your stuff here.";
+ name = "Personal ID-Locked Closet";
+ pixel_y = 15
},
-/obj/structure/window/reinforced{
- dir = 1
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
- dir = 4
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness)
+/turf/open/floor/wood,
+/area/crew_quarters/dorms)
"auw" = (
/obj/structure/bed,
/obj/machinery/airalarm{
@@ -9219,54 +9300,79 @@
/turf/open/floor/carpet,
/area/crew_quarters/dorms)
"aux" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/obj/machinery/meter,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"auy" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
-"auy" = (
-/obj/machinery/door/firedoor,
-/obj/machinery/door/airlock/public/glass{
- name = "Holodeck Door"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 5
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
-"auz" = (
-/obj/machinery/camera{
- c_tag = "Holodeck"
- },
-/obj/machinery/airalarm{
- pixel_y = 24
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
-"auA" = (
-/obj/machinery/light/small{
+/obj/effect/turf_decal/tile/neutral{
dir = 1
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"auz" = (
+/obj/machinery/light/small,
+/obj/machinery/atmospherics/components/unary/tank/air{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"auA" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 4
},
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/structure/sign/warning/fire{
+ desc = "A sign that states the labeled room's number.";
+ dir = 4;
+ icon_state = "roomnum";
+ name = "Room Number 3";
+ pixel_x = -30;
+ pixel_y = -7
+ },
+/obj/effect/landmark/start/assistant,
/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
+/area/crew_quarters/dorms)
"auB" = (
/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "holoprivacy";
+ name = "Holodeck Shutters"
+ },
/turf/open/floor/plating,
/area/crew_quarters/fitness)
"auC" = (
-/obj/machinery/light/small,
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
"auD" = (
/obj/structure/reagent_dispensers/fueltank,
/turf/open/floor/plating,
@@ -9328,6 +9434,21 @@
},
/turf/open/floor/plasteel,
/area/maintenance/department/electrical)
+"auN" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
"auO" = (
/obj/structure/closet/emcloset,
/turf/open/floor/plating,
@@ -9339,37 +9460,20 @@
/turf/open/floor/plasteel,
/area/construction/mining/aux_base)
"auR" = (
-/obj/machinery/light{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
+/turf/closed/wall,
+/area/crew_quarters/fitness)
"auS" = (
-/obj/machinery/requests_console{
- department = "Crew Quarters";
- pixel_y = 30
- },
/obj/machinery/camera{
- c_tag = "Dormitory North"
+ c_tag = "Holodeck"
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
+/obj/machinery/airalarm{
+ pixel_y = 24
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
},
/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
+/area/crew_quarters/fitness)
"auT" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -9377,36 +9481,20 @@
/turf/open/floor/plating,
/area/maintenance/port/fore)
"auU" = (
-/obj/machinery/firealarm{
- dir = 2;
- pixel_y = 24
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
+/obj/machinery/atmospherics/components/binary/valve,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
"auV" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/closed/wall,
/area/maintenance/port/fore)
"auW" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
-/obj/effect/turf_decal/tile/neutral{
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 1
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
"auX" = (
@@ -9475,13 +9563,7 @@
/turf/open/floor/plating,
/area/maintenance/fore)
"avg" = (
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
"avh" = (
@@ -9490,18 +9572,18 @@
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/power/apc{
+ areastring = "/area/security/vacantoffice/b";
dir = 8;
name = "Vacant Office B APC";
- areastring = "/area/security/vacantoffice/b";
pixel_x = -24
},
/turf/open/floor/plating,
/area/maintenance/fore)
"avi" = (
/obj/machinery/power/apc{
+ areastring = "/area/lawoffice";
dir = 1;
name = "Law Office APC";
- areastring = "/area/lawoffice";
pixel_y = 24
},
/obj/structure/cable{
@@ -9512,7 +9594,7 @@
/area/maintenance/fore)
"avj" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/structure/cable{
@@ -9533,43 +9615,17 @@
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
"avl" = (
-/obj/structure/extinguisher_cabinet{
- pixel_x = -5;
- pixel_y = 30
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
},
/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
"avm" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
"avn" = (
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
+/obj/structure/disposalpipe/segment,
/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
"avo" = (
@@ -9597,8 +9653,7 @@
pixel_y = 24
},
/obj/machinery/camera{
- c_tag = "Detective's Office";
- dir = 2
+ c_tag = "Detective's Office"
},
/turf/open/floor/plasteel/grimy,
/area/security/detectives_office)
@@ -9616,68 +9671,63 @@
/turf/open/floor/plating,
/area/maintenance/fore)
"avt" = (
-/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
"avu" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/effect/turf_decal/tile/neutral{
+/obj/structure/chair/sofa/left{
dir = 1
},
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
-"avv" = (
-/obj/structure/chair/stool{
- pixel_y = 8
- },
-/obj/effect/landmark/start/assistant,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
-"avw" = (
-/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
/turf/open/floor/plasteel,
/area/crew_quarters/fitness)
+"avv" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/meter,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"avw" = (
+/obj/machinery/button/door{
+ id = "Room One";
+ name = "Door Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = -25;
+ specialfunctions = 4
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
"avx" = (
-/obj/effect/spawner/structure/window,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"avy" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "holoprivacy";
+ name = "Holodeck Shutters"
+ },
/turf/open/floor/plating,
/area/crew_quarters/fitness)
-"avy" = (
-/obj/structure/window/reinforced{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness)
"avz" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
+/obj/machinery/computer/holodeck{
dir = 4
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/plasteel,
/area/crew_quarters/fitness)
"avA" = (
-/obj/structure/window/reinforced{
- dir = 4
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#e8eaff"
},
-/turf/open/floor/plasteel/dark,
+/obj/structure/chair/sofa/right{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
/area/crew_quarters/fitness)
"avB" = (
/obj/effect/spawner/structure/window/reinforced,
@@ -9687,17 +9737,20 @@
/turf/open/floor/plating,
/area/ai_monitored/security/armory)
"avC" = (
-/obj/structure/chair{
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
"avD" = (
-/obj/machinery/computer/holodeck{
- dir = 4
+/obj/structure/cable{
+ icon_state = "2-4"
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
"avE" = (
/obj/machinery/door/poddoor/preopen{
id = "maint3"
@@ -9746,9 +9799,9 @@
/area/maintenance/department/electrical)
"avL" = (
/obj/machinery/power/apc{
+ areastring = "/area/maintenance/department/electrical";
dir = 1;
name = "Electrical Maintenance APC";
- areastring = "/area/maintenance/department/electrical";
pixel_y = 24
},
/obj/structure/cable{
@@ -9777,8 +9830,6 @@
},
/obj/item/multitool,
/obj/item/radio/intercom{
- freerange = 0;
- frequency = 1459;
name = "Station Intercom (General)";
pixel_x = 29
},
@@ -9810,11 +9861,17 @@
/turf/open/floor/plasteel,
/area/construction/mining/aux_base)
"avR" = (
-/obj/structure/table/wood,
-/obj/item/storage/firstaid/regular,
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
+/obj/structure/table/wood/poker,
+/obj/item/clothing/mask/cigarette/cigar{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4;
+ pixel_y = 5
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"avS" = (
/obj/item/wrench,
/turf/open/floor/plating,
@@ -9892,9 +9949,9 @@
/area/maintenance/fore)
"awd" = (
/obj/machinery/power/apc{
+ areastring = "/area/maintenance/fore";
dir = 1;
name = "Fore Maintenance APC";
- areastring = "/area/maintenance/fore";
pixel_y = 24
},
/obj/structure/cable{
@@ -10027,60 +10084,73 @@
/turf/open/floor/plating,
/area/maintenance/fore/secondary)
"awo" = (
-/obj/machinery/door/airlock{
- id_tag = "Dorm3";
- name = "Dorm 3"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+/obj/structure/chair/comfy/black{
dir = 4
},
-/turf/open/floor/plasteel,
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -29
+ },
+/turf/open/floor/carpet,
/area/crew_quarters/dorms)
"awp" = (
-/obj/structure/table/wood,
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
-/obj/item/storage/pill_bottle/dice,
/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
"awq" = (
-/obj/structure/chair/stool{
- pixel_y = 8
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
+/area/crew_quarters/fitness)
"awr" = (
/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
"aws" = (
-/obj/structure/table/wood,
-/obj/item/coin/silver,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Holodeck Door"
+ },
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/fitness)
+"awt" = (
+/obj/structure/disposalpipe/segment{
dir = 4
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
-"awt" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 9
+ dir = 4
},
/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
"awu" = (
-/obj/structure/chair/stool{
- pixel_y = 8
- },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/closet/wardrobe/mixed,
+/obj/item/clothing/under/kilt,
+/obj/item/clothing/under/kilt,
+/obj/item/clothing/under/skirt/purple,
+/obj/item/clothing/head/beret,
+/obj/item/clothing/head/beret,
+/obj/item/clothing/head/beret,
/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
+/area/crew_quarters/fitness)
"awv" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/obj/structure/sign/warning/fire{
+ desc = "A sign that states the labeled room's number.";
+ dir = 8;
+ icon_state = "roomnum";
+ name = "Room Number 4";
+ pixel_y = 24
+ },
+/obj/effect/turf_decal/tile/neutral{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
"aww" = (
@@ -10097,48 +10167,62 @@
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"awy" = (
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
"awz" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/public/glass{
- name = "Fitness"
+ name = "Holodeck Door"
},
-/turf/open/floor/plasteel,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/plasteel/dark,
/area/crew_quarters/fitness)
"awA" = (
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/machinery/door/airlock{
+ id_tag = "Dorm5";
+ name = "Room Four"
},
-/obj/machinery/holopad,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/dorms)
"awB" = (
-/obj/effect/landmark/start/assistant,
-/obj/machinery/vr_sleeper,
-/obj/effect/turf_decal/tile/green,
-/obj/effect/turf_decal/tile/green{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"awC" = (
-/obj/structure/table,
-/obj/item/paper/fluff/holodeck/disclaimer,
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"awD" = (
/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"awE" = (
-/obj/effect/decal/cleanable/cobweb/cobweb2,
-/obj/structure/closet/crate,
-/obj/effect/spawner/lootdrop/maintenance,
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/table/wood,
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_x = -3;
+ pixel_y = 20
+ },
+/obj/item/reagent_containers/food/condiment/peppermill{
+ dir = 1;
+ pixel_x = 3;
+ pixel_y = 20
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/item/reagent_containers/food/drinks/britcup,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
"awF" = (
/obj/structure/closet/crate,
/obj/effect/spawner/lootdrop/maintenance{
@@ -10179,26 +10263,34 @@
/area/maintenance/starboard/fore)
"awK" = (
/obj/structure/table/glass,
-/obj/item/pen,
+/obj/item/coin/silver,
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"awL" = (
-/obj/structure/table/glass,
-/obj/item/paper_bin{
- pixel_x = -3;
- pixel_y = 7
+/obj/structure/table,
+/obj/item/instrument/guitar{
+ pixel_x = -7
},
+/obj/item/instrument/eguitar{
+ pixel_x = 5
+ },
+/obj/item/instrument/violin,
+/obj/item/instrument/trombone,
+/obj/item/instrument/saxophone,
+/obj/item/instrument/piano_synth,
+/obj/item/instrument/recorder,
+/obj/item/instrument/accordion,
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"awM" = (
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 6
+/obj/machinery/button/door{
+ id = "maintdiy";
+ name = "Shutters Control Button";
+ pixel_x = -6;
+ pixel_y = 24
},
/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
+/area/crew_quarters/abandoned_gambling_den)
"awN" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -10294,6 +10386,14 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/hallway/secondary/entry)
+"awX" = (
+/obj/machinery/door/airlock{
+ id_tag = "Dorm6";
+ name = "Room Five"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/dorms)
"awY" = (
/obj/machinery/light{
dir = 1
@@ -10357,6 +10457,15 @@
},
/turf/open/floor/plasteel,
/area/construction/mining/aux_base)
+"axd" = (
+/obj/structure/closet,
+/obj/effect/decal/cleanable/cobweb,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 4;
+ name = "4maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
"axe" = (
/obj/machinery/sleeper{
dir = 4
@@ -10558,12 +10667,11 @@
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
"axC" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+/obj/effect/turf_decal/tile/red{
dir = 4
},
-/obj/effect/turf_decal/tile/blue{
- dir = 8
+/obj/structure/sign/poster/official/enlist{
+ pixel_y = 32
},
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
@@ -10574,12 +10682,16 @@
/turf/closed/wall,
/area/maintenance/fore/secondary)
"axE" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
- dir = 1
+/obj/structure/closet,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 8;
+ name = "8maintenance loot spawner"
},
-/obj/effect/turf_decal/tile/blue,
-/turf/open/floor/plasteel,
-/area/hallway/primary/fore)
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/abandoned_gambling_den)
"axF" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 9
@@ -10617,6 +10729,12 @@
},
/turf/open/floor/plasteel,
/area/hallway/secondary/entry)
+"axJ" = (
+/obj/structure/piano{
+ icon_state = "piano"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
"axK" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 8
@@ -10624,128 +10742,189 @@
/turf/closed/wall,
/area/maintenance/port/fore)
"axL" = (
-/obj/machinery/holopad,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/closet/wardrobe/grey,
+/obj/item/clothing/under/assistantformal,
+/obj/item/clothing/under/assistantformal,
+/obj/machinery/camera{
+ c_tag = "Dorms East - Holodeck";
+ dir = 4
+ },
/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
+/area/crew_quarters/fitness)
"axM" = (
-/obj/structure/table/wood,
-/obj/item/paicard,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
"axN" = (
-/obj/structure/table/wood,
-/obj/item/storage/crayons,
-/turf/open/floor/plasteel,
+/obj/structure/chair/comfy/black{
+ dir = 8
+ },
+/turf/open/floor/carpet,
/area/crew_quarters/dorms)
"axO" = (
-/obj/structure/chair/stool{
- pixel_y = 8
- },
-/obj/effect/landmark/start/assistant,
-/turf/open/floor/plasteel,
+/obj/machinery/light/small,
+/turf/open/floor/mineral/titanium/blue,
/area/crew_quarters/dorms)
"axP" = (
-/obj/structure/table/wood,
-/obj/item/toy/cards/deck{
- pixel_x = 2
+/obj/structure/cable{
+ icon_state = "4-8"
},
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/structure/table/wood,
+/obj/item/paicard,
/obj/item/clothing/mask/balaclava{
pixel_x = -8;
pixel_y = 8
},
+/obj/item/toy/cards/deck{
+ pixel_x = 2
+ },
+/obj/item/storage/crayons,
/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
"axQ" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
-"axR" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/door/firedoor,
-/obj/machinery/door/airlock/public/glass{
- name = "Fitness"
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
-"axS" = (
-/obj/structure/window/reinforced,
-/obj/structure/window/reinforced{
+/obj/machinery/light{
dir = 8
},
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
dir = 8
},
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness)
-"axT" = (
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
},
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
-"axU" = (
-/obj/structure/window/reinforced,
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness)
-"axV" = (
-/obj/structure/cable{
- icon_state = "2-4"
+/obj/structure/sign/warning/fire{
+ desc = "A sign that states the labeled room's number.";
+ dir = 1;
+ icon_state = "roomnum";
+ name = "Room Number 2";
+ pixel_x = -30;
+ pixel_y = -7
},
/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
-"axW" = (
-/obj/machinery/door/window/eastright{
- base_state = "left";
- icon_state = "left";
- name = "Fitness Ring"
+"axR" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
},
-/obj/structure/window/reinforced,
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness)
-"axX" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
dir = 1
},
/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
-"axY" = (
-/obj/effect/turf_decal/tile/green,
-/obj/effect/turf_decal/tile/green{
+"axS" = (
+/obj/item/flashlight/lamp/green{
+ pixel_x = -3;
+ pixel_y = 22
+ },
+/obj/structure/dresser{
+ desc = "There's plenty of clothes here to change into! It has a surprising amount of variety, too.";
+ name = "Dresser";
+ pixel_y = 7
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
+"axT" = (
+/obj/machinery/door/airlock{
+ id_tag = "Dorm3";
+ name = "Room Two"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/dorms)
+"axU" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/obj/structure/sign/warning/fire{
+ desc = "A sign that states the labeled room's number.";
+ dir = 6;
+ icon_state = "roomnum";
+ name = "Room Number 5";
+ pixel_y = 24
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
-"axZ" = (
-/obj/machinery/door/firedoor,
-/obj/machinery/door/airlock/public/glass{
- name = "Holodeck Door"
+/area/crew_quarters/dorms)
+"axV" = (
+/obj/structure/chair/comfy/brown{
+ dir = 8
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"axW" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 6
},
/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"axX" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/light/small,
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
+"axY" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/obj/structure/closet/toolcloset,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"axZ" = (
+/obj/machinery/light/small{
+ dir = 1;
+ light_color = "#ffc1c1"
+ },
+/obj/machinery/airalarm{
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel,
/area/crew_quarters/fitness)
"aya" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
},
/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
+/area/crew_quarters/dorms)
"ayb" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
+/obj/structure/chair{
+ dir = 8
},
/turf/open/floor/plasteel,
/area/crew_quarters/fitness)
@@ -10821,9 +11000,7 @@
/turf/open/floor/plasteel,
/area/hallway/secondary/entry)
"ayn" = (
-/obj/effect/turf_decal/stripes/corner{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/corner,
/turf/open/floor/plasteel,
/area/hallway/secondary/entry)
"ayo" = (
@@ -10997,14 +11174,6 @@
/turf/closed/wall/r_wall,
/area/ai_monitored/storage/eva)
"ayM" = (
-/obj/machinery/firealarm{
- dir = 2;
- pixel_y = 24
- },
-/obj/item/clothing/head/welding,
-/turf/open/floor/plasteel,
-/area/ai_monitored/storage/eva)
-"ayN" = (
/obj/structure/rack,
/obj/machinery/light{
dir = 1
@@ -11014,8 +11183,15 @@
/obj/item/flashlight,
/obj/item/flashlight,
/obj/item/flashlight,
+/obj/item/clothing/glasses/welding,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/storage/eva)
+"ayN" = (
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel,
+/area/ai_monitored/storage/eva)
"ayO" = (
/obj/structure/table,
/obj/item/storage/toolbox/electrical{
@@ -11029,9 +11205,9 @@
/area/ai_monitored/storage/eva)
"ayP" = (
/obj/machinery/power/apc{
+ areastring = "/area/ai_monitored/storage/eva";
dir = 1;
name = "EVA Storage APC";
- areastring = "/area/ai_monitored/storage/eva";
pixel_y = 24
},
/obj/structure/cable{
@@ -11114,38 +11290,45 @@
/turf/open/floor/plasteel,
/area/ai_monitored/storage/eva)
"ayY" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
- dir = 1
+/obj/structure/sign/poster/official/cohiba_robusto_ad,
+/turf/closed/wall,
+/area/lawoffice)
+"ayZ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
},
/obj/effect/turf_decal/tile/blue{
dir = 8
},
-/turf/open/floor/plasteel,
-/area/hallway/primary/fore)
-"ayZ" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 1
+/obj/structure/sign/poster/contraband/pwr_game{
+ pixel_x = -32
},
-/obj/effect/turf_decal/tile/blue,
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
"aza" = (
-/obj/machinery/light,
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
+/obj/machinery/vr_sleeper{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green{
dir = 8
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 4
+ },
+/area/crew_quarters/fitness)
"azb" = (
-/obj/structure/chair/stool{
- pixel_y = 8
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 2
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/fitness)
"azc" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 4
@@ -11159,47 +11342,68 @@
/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
"azd" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
+/obj/machinery/vr_sleeper{
dir = 8
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
-"aze" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
-"azf" = (
-/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
-"azg" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 10
- },
-/turf/open/floor/plating,
-/area/crew_quarters/fitness)
-"azh" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/obj/machinery/vr_sleeper,
/obj/effect/turf_decal/tile/green,
/obj/effect/turf_decal/tile/green{
dir = 4
},
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 8
+ },
+/area/crew_quarters/fitness)
+"aze" = (
+/obj/machinery/vr_sleeper{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 4
+ },
+/area/crew_quarters/fitness)
+"azf" = (
+/obj/structure/grille/broken,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/window{
+ dir = 4
+ },
+/obj/structure/window,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating{
+ icon_state = "panelscorched"
+ },
+/area/maintenance/starboard/fore)
+"azg" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/button/door{
+ id = "holoprivacy";
+ name = "Holodeck Privacy";
+ pixel_y = 24
+ },
/turf/open/floor/plasteel,
/area/crew_quarters/fitness)
+"azh" = (
+/obj/machinery/door/airlock{
+ name = "Instrument Storage"
+ },
+/turf/open/floor/plasteel/dark,
+/area/maintenance/starboard/fore)
"azi" = (
/obj/machinery/door/airlock/maintenance{
name = "Garden Maintenance";
@@ -11209,61 +11413,81 @@
/turf/open/floor/plating,
/area/maintenance/port/fore)
"azj" = (
-/obj/structure/disposalpipe/segment{
- dir = 5
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
},
-/obj/item/radio/intercom{
- name = "Station Intercom (General)";
- pixel_y = -29
+/obj/structure/closet{
+ name = "Holodeck Outfits"
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
+/obj/item/clothing/under/trek/Q,
+/obj/item/clothing/under/trek/command/next,
+/obj/item/clothing/under/trek/command/next,
+/obj/item/clothing/under/trek/command/next,
+/obj/item/clothing/under/trek/engsec/next,
+/obj/item/clothing/under/trek/engsec/next,
+/obj/item/clothing/under/trek/engsec/next,
+/obj/item/clothing/under/trek/engsec/next,
+/obj/item/clothing/under/trek/medsci/next,
+/obj/item/clothing/under/trek/medsci/next,
+/obj/item/clothing/under/trek/medsci/next,
+/obj/item/clothing/under/mw2_russian_para,
+/obj/item/clothing/under/mw2_russian_para,
+/obj/item/clothing/under/gladiator,
+/obj/item/clothing/under/gladiator,
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
},
/turf/open/floor/plasteel,
/area/crew_quarters/fitness)
"azk" = (
-/obj/structure/disposalpipe/segment{
- dir = 10
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/machinery/light/small{
+ dir = 4;
+ light_color = "#d8b1b1"
},
/turf/open/floor/plasteel,
/area/crew_quarters/fitness)
"azl" = (
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
},
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
-"azm" = (
-/obj/structure/chair/stool{
- pixel_y = 8
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
},
/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
-"azn" = (
-/obj/structure/table,
-/obj/item/storage/firstaid/regular,
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
-"azo" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
+/area/crew_quarters/dorms)
+"azm" = (
+/obj/machinery/shower{
dir = 4
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/toilet)
+"azn" = (
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/dorms)
+"azo" = (
+/obj/machinery/shower{
+ dir = 8;
+ pixel_y = -4
+ },
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/toilet)
"azp" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "holoprivacy";
+ name = "Holodeck Shutters"
+ },
/turf/open/floor/plating,
/area/crew_quarters/fitness)
"azq" = (
@@ -11466,6 +11690,27 @@
},
/turf/open/floor/plating,
/area/maintenance/fore)
+"azP" = (
+/obj/structure/table/wood,
+/obj/machinery/requests_console{
+ department = "Theatre";
+ name = "theatre RC";
+ pixel_x = -32
+ },
+/obj/item/reagent_containers/food/snacks/baguette,
+/obj/item/toy/dummy,
+/obj/item/lipstick/random{
+ pixel_x = 2;
+ pixel_y = 2
+ },
+/obj/item/lipstick/random{
+ pixel_x = -2;
+ pixel_y = -2
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 4
+ },
+/area/crew_quarters/theatre)
"azQ" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -11504,12 +11749,9 @@
/turf/open/floor/plasteel,
/area/ai_monitored/storage/eva)
"azT" = (
-/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,
-/obj/effect/turf_decal/tile/neutral{
- dir = 2
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
+/obj/effect/landmark/event_spawn,
+/turf/closed/wall,
+/area/crew_quarters/fitness)
"azU" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -11523,27 +11765,38 @@
/turf/open/floor/plasteel,
/area/ai_monitored/storage/eva)
"azV" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+/obj/machinery/vr_sleeper{
dir = 8
},
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white/side{
dir = 8
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
+/area/crew_quarters/fitness)
"azW" = (
/turf/open/floor/plasteel,
/area/ai_monitored/storage/eva)
"azX" = (
-/obj/machinery/door/airlock{
- name = "Unisex Showers"
+/obj/machinery/vr_sleeper{
+ dir = 4
},
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/effect/turf_decal/tile/green{
+ dir = 8
},
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet)
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white/corner{
+ dir = 4
+ },
+/area/crew_quarters/fitness)
"azY" = (
/obj/structure/table,
/obj/item/radio/off,
@@ -11563,27 +11816,26 @@
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
"aAb" = (
-/obj/machinery/door/airlock{
- id_tag = "Dorm2";
- name = "Dorm 2"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
+/area/crew_quarters/fitness)
"aAc" = (
/obj/effect/spawner/structure/window,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"aAd" = (
-/obj/machinery/light_switch{
- pixel_y = -25
+/obj/machinery/camera{
+ c_tag = "Dorms West"
},
-/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
- dir = 8
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
},
/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
@@ -11595,46 +11847,51 @@
/turf/open/floor/plating,
/area/maintenance/port/fore)
"aAf" = (
-/obj/structure/closet/wardrobe/pjs,
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
+/obj/machinery/vr_sleeper{
dir = 8
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white/corner{
+ dir = 1
+ },
+/area/crew_quarters/fitness)
"aAg" = (
-/obj/item/radio/intercom{
- name = "Station Intercom (General)";
- pixel_y = -29
+/obj/machinery/vr_sleeper{
+ dir = 4
},
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
dir = 8
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white/corner{
+ dir = 4
+ },
+/area/crew_quarters/fitness)
"aAh" = (
/turf/closed/wall,
/area/crew_quarters/toilet)
"aAi" = (
-/obj/structure/closet/wardrobe/pjs,
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
+/turf/open/floor/plating,
+/area/crew_quarters/fitness)
"aAj" = (
/obj/structure/cable{
icon_state = "1-4"
},
/obj/machinery/power/apc{
- dir = 2;
- name = "Security Checkpoint APC";
areastring = "/area/security/checkpoint/auxiliary";
+ name = "Security Checkpoint APC";
pixel_x = 1;
pixel_y = -24
},
@@ -11643,119 +11900,77 @@
/turf/open/floor/plating,
/area/maintenance/port/fore)
"aAk" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/disposalpipe/segment{
- dir = 5
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
+/obj/structure/closet/athletic_mixed,
/turf/open/floor/plasteel,
/area/crew_quarters/fitness)
"aAl" = (
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 5
- },
-/obj/structure/reagent_dispensers/water_cooler,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
+/obj/structure/closet/boxinggloves,
/turf/open/floor/plasteel,
/area/crew_quarters/fitness)
"aAm" = (
-/obj/machinery/firealarm{
- dir = 1;
- pixel_y = -24
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/public/glass{
+ name = "Holodeck Door"
},
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
},
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/light,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/plasteel,
+/turf/open/floor/plasteel/dark,
/area/crew_quarters/fitness)
"aAn" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/disposalpipe/segment{
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 4
},
-/obj/machinery/light_switch{
- pixel_y = -25
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
+/area/crew_quarters/dorms)
"aAo" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/dorms)
"aAp" = (
-/obj/structure/cable{
- icon_state = "2-8"
+/obj/structure/closet{
+ name = "Suit Closet"
},
-/obj/structure/disposalpipe/segment{
- dir = 10
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 10
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
+/obj/item/clothing/under/suit_jacket/white,
+/obj/item/clothing/under/suit_jacket/tan,
+/obj/item/clothing/under/suit_jacket/red,
+/obj/item/clothing/under/suit_jacket/really_black,
+/obj/item/clothing/under/suit_jacket/navy,
+/obj/item/clothing/under/suit_jacket/green,
+/obj/item/clothing/under/suit_jacket/female,
+/obj/item/clothing/under/suit_jacket/checkered,
+/obj/item/clothing/under/suit_jacket/charcoal,
+/obj/item/clothing/under/suit_jacket/burgundy,
+/obj/item/clothing/under/suit_jacket,
+/obj/item/clothing/under/lawyer/black,
+/obj/item/clothing/under/lawyer/blacksuit,
+/obj/item/clothing/under/lawyer/blue,
+/obj/item/clothing/under/lawyer/bluesuit,
+/obj/item/clothing/under/lawyer/female,
+/obj/item/clothing/under/lawyer/purpsuit,
+/obj/item/clothing/under/lawyer/really_black,
+/obj/item/clothing/under/lawyer/red,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"aAq" = (
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aAr" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"aAs" = (
+/obj/machinery/light/small{
+ dir = 4;
+ light_color = "#d8b1b1"
},
/turf/open/floor/plasteel,
/area/crew_quarters/fitness)
-"aAr" = (
-/obj/structure/closet,
-/obj/effect/decal/cleanable/cobweb,
-/obj/effect/spawner/lootdrop/maintenance,
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
-"aAs" = (
-/obj/structure/closet,
-/obj/effect/spawner/lootdrop/maintenance{
- lootcount = 2;
- name = "2maintenance loot spawner"
- },
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
"aAt" = (
/obj/machinery/door/poddoor/preopen{
id = "maint2"
@@ -11763,12 +11978,12 @@
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"aAu" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
/obj/machinery/door/poddoor/preopen{
id = "maint2"
},
-/obj/structure/cable{
- icon_state = "1-2"
- },
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"aAv" = (
@@ -11780,9 +11995,9 @@
/area/maintenance/starboard/fore)
"aAw" = (
/obj/machinery/power/apc{
+ areastring = "/area/hydroponics/garden";
dir = 4;
name = "Garden APC";
- areastring = "/area/hydroponics/garden";
pixel_x = 27;
pixel_y = 2
},
@@ -11796,9 +12011,7 @@
/turf/open/floor/plasteel,
/area/hydroponics/garden)
"aAy" = (
-/obj/machinery/power/smes{
- charge = 0
- },
+/obj/machinery/power/smes,
/obj/structure/cable{
icon_state = "0-4"
},
@@ -11825,9 +12038,7 @@
/turf/closed/wall,
/area/maintenance/department/electrical)
"aAB" = (
-/obj/machinery/power/smes{
- charge = 0
- },
+/obj/machinery/power/smes,
/obj/structure/cable{
icon_state = "0-8"
},
@@ -11900,9 +12111,8 @@
/area/hydroponics/garden)
"aAL" = (
/obj/machinery/power/apc{
- dir = 2;
- name = "Primary Tool Storage APC";
areastring = "/area/storage/primary";
+ name = "Primary Tool Storage APC";
pixel_x = 1;
pixel_y = -24
},
@@ -11914,6 +12124,16 @@
},
/turf/open/floor/plating,
/area/maintenance/port/fore)
+"aAM" = (
+/obj/structure/mirror{
+ pixel_y = 32
+ },
+/obj/structure/sink{
+ dir = 1;
+ pixel_y = 25
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet)
"aAN" = (
/obj/structure/cable{
icon_state = "2-8"
@@ -11989,18 +12209,11 @@
/turf/open/floor/plasteel,
/area/ai_monitored/storage/eva)
"aAX" = (
-/obj/machinery/light{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
},
/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
+/area/crew_quarters/fitness)
"aAY" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
@@ -12008,10 +12221,10 @@
/turf/open/floor/plating,
/area/maintenance/port/fore)
"aAZ" = (
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/structure/urinal{
+ pixel_y = 32
},
-/turf/open/floor/plasteel/freezer,
+/turf/open/floor/mineral/titanium/blue,
/area/crew_quarters/toilet)
"aBa" = (
/turf/closed/wall/r_wall,
@@ -12084,9 +12297,9 @@
/area/maintenance/fore)
"aBi" = (
/obj/machinery/power/apc{
+ areastring = "/area/gateway";
dir = 8;
name = "Gateway APC";
- areastring = "/area/gateway";
pixel_x = -24;
pixel_y = -1
},
@@ -12126,7 +12339,6 @@
/turf/open/floor/plating,
/area/maintenance/port/fore)
"aBm" = (
-/obj/effect/landmark/start/assistant,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 5
},
@@ -12216,26 +12428,41 @@
/turf/open/floor/plasteel,
/area/hydroponics/garden)
"aBx" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 9
- },
-/turf/closed/wall,
-/area/crew_quarters/toilet)
+/obj/effect/turf_decal/stripes/corner,
+/turf/open/floor/plasteel,
+/area/hydroponics)
"aBy" = (
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet)
-"aBz" = (
-/obj/machinery/shower{
+/obj/machinery/camera{
+ c_tag = "Library North"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet)
-"aBA" = (
-/obj/machinery/shower{
- dir = 8
+/obj/structure/chair/sofa/right,
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#c1caff"
},
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet)
+/turf/open/floor/wood,
+/area/library)
+"aBz" = (
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/effect/landmark/start/assistant,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/chair/sofa/left,
+/turf/open/floor/wood,
+/area/library)
+"aBA" = (
+/obj/structure/chair/comfy/brown{
+ dir = 4
+ },
+/obj/effect/landmark/event_spawn,
+/turf/open/floor/wood,
+/area/library)
"aBB" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/closed/wall,
@@ -12251,6 +12478,12 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
+"aBD" = (
+/obj/structure/chair/comfy/brown{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/library)
"aBE" = (
/obj/item/clothing/under/rank/mailman,
/obj/item/clothing/head/mailman,
@@ -12300,9 +12533,12 @@
/turf/open/floor/plating,
/area/maintenance/port/fore)
"aBM" = (
-/obj/effect/landmark/start/assistant,
-/turf/open/floor/plasteel,
-/area/hydroponics/garden)
+/obj/structure/sign/poster/official/nanomichi_ad{
+ pixel_y = 32
+ },
+/obj/machinery/vending/snack/random,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
"aBN" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/closed/wall,
@@ -12359,9 +12595,9 @@
/area/ai_monitored/nuke_storage)
"aBU" = (
/obj/machinery/power/apc{
+ areastring = "/area/ai_monitored/nuke_storage";
dir = 1;
name = "Vault APC";
- areastring = "/area/ai_monitored/nuke_storage";
pixel_y = 25
},
/obj/structure/cable{
@@ -12483,21 +12719,27 @@
/turf/open/floor/carpet,
/area/crew_quarters/cryopod)
"aCe" = (
-/obj/effect/landmark/xeno_spawn,
-/obj/item/bikehorn/rubberducky,
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
},
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet)
+/obj/effect/turf_decal/tile/blue,
+/obj/structure/sign/poster/official/do_not_question{
+ pixel_x = 32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
"aCf" = (
-/obj/machinery/camera{
- c_tag = "Theatre Storage"
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
},
-/turf/open/floor/plasteel/white/side{
- dir = 4
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
},
-/area/crew_quarters/theatre)
+/obj/structure/sign/poster/official/obey{
+ pixel_x = -32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
"aCg" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -12505,11 +12747,14 @@
/turf/open/floor/plasteel,
/area/ai_monitored/storage/eva)
"aCh" = (
-/obj/machinery/vending/autodrobe,
-/turf/open/floor/plasteel/white/side{
- dir = 4
+/obj/machinery/shower{
+ dir = 8;
+ pixel_y = -4
},
-/area/crew_quarters/theatre)
+/obj/effect/landmark/xeno_spawn,
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/toilet)
"aCi" = (
/obj/structure/cable,
/obj/effect/spawner/structure/window/reinforced,
@@ -12536,32 +12781,48 @@
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"aCm" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12;
- pixel_y = 2
+/obj/item/radio/intercom{
+ pixel_y = 25
},
-/obj/structure/mirror{
- pixel_x = -28
+/obj/machinery/camera{
+ c_tag = "Theatre Stage"
},
-/obj/machinery/light{
- dir = 1
- },
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet)
-"aCn" = (
-/obj/structure/urinal{
- pixel_y = 32
- },
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet)
-"aCo" = (
-/obj/structure/chair/stool{
- pixel_y = 8
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+/obj/structure/chair/comfy/brown{
dir = 4
},
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aCn" = (
+/obj/structure/table/wood/fancy,
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_x = -3;
+ pixel_y = 20
+ },
+/obj/item/reagent_containers/food/condiment/peppermill{
+ dir = 1;
+ pixel_x = 3;
+ pixel_y = 20
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aCo" = (
+/obj/structure/closet{
+ name = "Costume Closet"
+ },
+/obj/item/clothing/head/russobluecamohat,
+/obj/item/clothing/head/russobluecamohat,
+/obj/item/clothing/head/russofurhat,
+/obj/item/clothing/head/russofurhat,
+/obj/item/clothing/head/russofurhat,
+/obj/item/clothing/head/russofurhat,
+/obj/item/clothing/under/mw2_russian_para,
+/obj/item/clothing/under/mw2_russian_para,
+/obj/item/clothing/under/mw2_russian_para,
+/obj/item/clothing/under/mw2_russian_para,
+/obj/item/clothing/shoes/jackboots,
+/obj/item/clothing/shoes/jackboots,
+/obj/item/clothing/shoes/jackboots,
+/obj/item/clothing/shoes/jackboots,
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"aCp" = (
@@ -12578,19 +12839,11 @@
/turf/open/floor/plasteel/white/corner,
/area/hallway/secondary/entry)
"aCq" = (
-/obj/structure/table/wood,
-/obj/machinery/requests_console{
- department = "Theatre";
- departmentType = 0;
- name = "theatre RC";
- pixel_x = -32
- },
-/obj/item/reagent_containers/food/snacks/baguette,
-/obj/item/toy/dummy,
-/turf/open/floor/plasteel/white/side{
- dir = 4
- },
-/area/crew_quarters/theatre)
+/obj/structure/closet/lasertag/red,
+/obj/item/clothing/under/pj/red,
+/obj/item/clothing/under/pj/red,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
"aCr" = (
/turf/closed/wall,
/area/crew_quarters/theatre)
@@ -12614,30 +12867,53 @@
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"aCu" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 5
- },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "holoprivacy";
+ name = "Holodeck Shutters"
+ },
/turf/open/floor/plating,
/area/crew_quarters/fitness)
"aCv" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
+ dir = 5
},
/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "holoprivacy";
+ name = "Holodeck Shutters"
+ },
/turf/open/floor/plating,
/area/crew_quarters/fitness)
"aCw" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 9
+ dir = 4
},
/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "holoprivacy";
+ name = "Holodeck Shutters"
+ },
/turf/open/floor/plating,
/area/crew_quarters/fitness)
+"aCx" = (
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aCy" = (
-/obj/effect/decal/cleanable/oil,
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aCz" = (
/obj/structure/window/reinforced{
dir = 8
@@ -12648,18 +12924,11 @@
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"aCA" = (
-/obj/structure/grille/broken,
-/obj/structure/cable{
- icon_state = "1-8"
+/obj/structure/chair/comfy/brown{
+ dir = 1
},
-/obj/structure/window{
- dir = 4
- },
-/obj/structure/window,
-/turf/open/floor/plating{
- icon_state = "panelscorched"
- },
-/area/maintenance/starboard/fore)
+/turf/open/floor/wood,
+/area/library)
"aCB" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 6
@@ -12789,6 +13058,13 @@
"aCR" = (
/turf/closed/wall,
/area/chapel/main)
+"aCS" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/chair/comfy/brown{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/library)
"aCT" = (
/obj/structure/table,
/obj/item/stack/sheet/metal/fifty,
@@ -12800,6 +13076,23 @@
},
/turf/open/floor/plasteel,
/area/construction/mining/aux_base)
+"aCU" = (
+/obj/machinery/photocopier{
+ pixel_x = -5;
+ pixel_y = -5
+ },
+/turf/open/floor/wood,
+/area/library)
+"aCV" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/structure/sign/poster/official/obey{
+ pixel_x = 32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
"aCW" = (
/obj/structure/reagent_dispensers/watertank,
/obj/effect/spawner/lootdrop/maintenance,
@@ -12846,7 +13139,6 @@
pixel_y = 5
},
/obj/machinery/firealarm{
- dir = 2;
pixel_y = 24
},
/turf/open/floor/plasteel,
@@ -12857,7 +13149,6 @@
dir = 1
},
/obj/item/radio/intercom{
- broadcasting = 0;
name = "Station Intercom (General)";
pixel_y = 20
},
@@ -12900,9 +13191,14 @@
/turf/open/floor/plasteel,
/area/hydroponics/garden)
"aDh" = (
-/obj/machinery/vending/assist,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/structure/sign/poster/official/space_cops{
+ pixel_x = -32
+ },
/turf/open/floor/plasteel,
-/area/storage/primary)
+/area/hallway/primary/fore)
"aDi" = (
/obj/structure/window/reinforced,
/turf/open/floor/plasteel/dark,
@@ -12927,7 +13223,6 @@
},
/obj/machinery/requests_console{
department = "Tool Storage";
- departmentType = 0;
pixel_y = 30
},
/turf/open/floor/plasteel,
@@ -12954,7 +13249,6 @@
/obj/item/assembly/signaler,
/obj/item/assembly/signaler,
/obj/item/radio/intercom{
- broadcasting = 0;
name = "Station Intercom (General)";
pixel_y = 20
},
@@ -13011,6 +13305,10 @@
},
/turf/open/floor/circuit,
/area/ai_monitored/nuke_storage)
+"aDu" = (
+/obj/structure/chair/comfy/brown,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aDv" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 8
@@ -13073,9 +13371,7 @@
/area/ai_monitored/storage/eva)
"aDB" = (
/obj/machinery/suit_storage_unit/standard_unit,
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/ai_monitored/storage/eva)
"aDC" = (
@@ -13099,9 +13395,7 @@
c_tag = "EVA Storage";
dir = 1
},
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/ai_monitored/storage/eva)
"aDF" = (
@@ -13112,38 +13406,33 @@
/turf/open/floor/plasteel,
/area/ai_monitored/storage/eva)
"aDG" = (
-/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
+/obj/machinery/door/poddoor/shutters/preopen{
+ desc = "Privacy shutters for the Private Study. Stops people spying in on your game.";
+ id = "PrivateStudy1";
+ name = "Private Study Privacy Shutters"
},
-/obj/machinery/camera{
- c_tag = "Dormitory South";
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
+/obj/effect/spawner/structure/window,
+/turf/open/floor/wood,
+/area/library)
"aDH" = (
-/obj/structure/table,
-/obj/item/paper_bin{
- pixel_x = 1;
- pixel_y = 9
- },
-/obj/item/pen,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/obj/item/folder/white,
-/obj/item/stamp/rd{
- pixel_x = 3;
- pixel_y = -2
- },
-/turf/open/floor/plasteel/cafeteria,
-/area/crew_quarters/heads/hor)
+/obj/structure/table/wood,
+/obj/item/flashlight/lamp/green,
+/obj/item/pen/fountain/captain,
+/turf/open/floor/carpet,
+/area/crew_quarters/heads/captain)
"aDI" = (
/obj/structure/sign/warning/electricshock,
/turf/closed/wall/r_wall,
/area/ai_monitored/storage/eva)
+"aDJ" = (
+/obj/machinery/door/airlock{
+ desc = "Private study room where nerds are probably playing Dungeons and Dragons 13e, or a place for blood cult rituals.";
+ id_tag = "PrivateStudy";
+ name = "Private Study"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/wood,
+/area/library)
"aDK" = (
/obj/machinery/door/airlock/public/glass{
name = "Cryogenics "
@@ -13156,126 +13445,140 @@
/turf/open/floor/plasteel,
/area/crew_quarters/cryopod)
"aDL" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12;
- pixel_y = 2
- },
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12;
- pixel_y = 2
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet)
-"aDM" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet)
-"aDN" = (
-/obj/machinery/light/small,
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet)
-"aDO" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
-/obj/machinery/airalarm{
- pixel_y = 23
- },
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet)
-"aDP" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on,
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet)
-"aDQ" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet)
-"aDR" = (
-/obj/structure/table/wood,
-/obj/structure/mirror{
- pixel_x = -28
- },
-/obj/item/lipstick/random{
- pixel_x = 2;
- pixel_y = 2
- },
-/obj/item/lipstick/random{
- pixel_x = -2;
- pixel_y = -2
- },
-/turf/open/floor/plasteel/white/side{
- dir = 4
- },
-/area/crew_quarters/theatre)
-"aDS" = (
/obj/machinery/door/airlock{
- name = "Unisex Showers"
+ desc = "Private study room where nerds are probably playing Dungeons and Dragons 13e, or a place for blood cult rituals.";
+ id_tag = "PrivateStudy";
+ name = "Private Study"
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+/obj/machinery/door/firedoor,
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/wood,
+/area/library)
+"aDM" = (
+/obj/structure/chair/sofa/right,
+/obj/structure/window{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aDN" = (
+/obj/structure/chair/sofa,
+/obj/structure/window{
+ dir = 1
+ },
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aDO" = (
+/obj/structure/chair/sofa/left,
+/obj/structure/window{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aDP" = (
+/obj/structure/chair/comfy/brown{
dir = 4
},
-/obj/structure/cable{
- icon_state = "4-8"
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aDR" = (
+/obj/structure/closet/lasertag/blue,
+/obj/item/clothing/under/pj/blue,
+/obj/item/clothing/under/pj/blue,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"aDS" = (
+/obj/machinery/light/small{
+ dir = 4;
+ light_color = "#d8b1b1"
},
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet)
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aDT" = (
-/obj/machinery/light/small,
-/obj/structure/cable{
- icon_state = "1-8"
+/obj/structure/table/wood/fancy,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4;
+ pixel_y = 5
},
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet)
+/obj/item/reagent_containers/food/snacks/burger/plain,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aDU" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 8
+/obj/structure/table,
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_x = -3;
+ pixel_y = 9
},
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/item/reagent_containers/food/condiment/peppermill{
+ dir = 1;
+ pixel_x = 3;
+ pixel_y = 9
},
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet)
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aDV" = (
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
-/obj/machinery/meter,
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
+/obj/structure/table/wood/fancy,
+/obj/machinery/light,
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_x = -3;
+ pixel_y = 20
+ },
+/obj/item/reagent_containers/food/condiment/peppermill{
+ dir = 1;
+ pixel_x = 3;
+ pixel_y = 20
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4;
+ pixel_y = 5
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aDW" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+/obj/machinery/holopad,
+/obj/machinery/camera{
+ c_tag = "Dorms Central"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 10
},
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -5;
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
"aDX" = (
-/obj/effect/decal/cleanable/cobweb/cobweb2,
-/obj/structure/reagent_dispensers/fueltank,
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
+/obj/structure/chair/sofa{
+ dir = 1
+ },
+/obj/structure/window,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aDY" = (
-/obj/structure/chair/stool,
-/obj/effect/landmark/start/mime,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 4
+/obj/structure/cable{
+ icon_state = "1-2"
},
-/turf/open/floor/plasteel/white/side{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = 11
},
-/area/crew_quarters/theatre)
+/obj/structure/mirror{
+ pixel_x = 25
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet)
"aDZ" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -13304,29 +13607,17 @@
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"aEb" = (
-/obj/machinery/door/airlock/maintenance{
- name = "Theatre Maintenance";
- req_access_txt = "46"
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
+/obj/structure/closet/secure_closet/personal/cabinet{
+ desc = "Swipe your ID on the closet to claim it. First come first serve, this one is wooden and fancy. Store your stuff here.";
+ name = "Personal ID-Locked Closet";
+ pixel_y = 15
},
/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
+/area/maintenance/port)
"aEc" = (
-/obj/structure/disposalpipe/segment{
- dir = 6
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/turf/open/floor/plasteel/white/side{
- dir = 4
- },
-/area/crew_quarters/theatre)
+/obj/structure/chair/wood/wings,
+/turf/open/floor/plating,
+/area/maintenance/port)
"aEd" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -13360,9 +13651,8 @@
dir = 4
},
/obj/machinery/power/apc{
- dir = 2;
- name = "Chapel APC";
areastring = "/area/chapel/main";
+ name = "Chapel APC";
pixel_y = -24
},
/obj/structure/cable{
@@ -13424,11 +13714,121 @@
/obj/structure/fans/tiny,
/turf/open/floor/plating,
/area/chapel/main)
+"aEo" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aEp" = (
+/obj/structure/flora/ausbushes/fullgrass,
+/obj/structure/flora/ausbushes/sparsegrass,
+/obj/structure/flora/ausbushes/ppflowers,
+/obj/structure/flora/ausbushes/ywflowers,
+/obj/structure/flora/ausbushes/brflowers,
+/obj/effect/spawner/structure/window,
+/turf/open/floor/grass,
+/area/crew_quarters/bar)
+"aEq" = (
+/obj/structure/chair/stool{
+ pixel_y = 8
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aEr" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#cee5d2"
+ },
+/obj/structure/table,
+/obj/structure/bedsheetbin/color,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"aEs" = (
+/obj/machinery/vending/cola/red,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aEt" = (
+/obj/machinery/computer/arcade/minesweeper,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aEu" = (
+/obj/machinery/computer/arcade/battle,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aEv" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/closet/wardrobe/pjs,
+/obj/item/clothing/under/maid,
+/obj/item/clothing/under/maid,
+/obj/item/clothing/under/janimaid,
+/obj/item/clothing/under/janimaid,
+/obj/item/clothing/accessory/maidapron,
+/obj/item/clothing/accessory/maidapron,
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"aEw" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/bar)
+"aEx" = (
+/obj/structure/table/reinforced,
+/obj/item/clothing/head/that,
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/bar)
+"aEy" = (
+/obj/structure/table,
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_x = -9;
+ pixel_y = 9
+ },
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_x = -3;
+ pixel_y = 9
+ },
+/obj/item/reagent_containers/food/condiment/peppermill{
+ dir = 1;
+ pixel_x = -3
+ },
+/obj/item/reagent_containers/food/condiment/peppermill{
+ pixel_x = -9
+ },
+/obj/item/sharpener{
+ pixel_x = 10
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
"aEz" = (
/obj/machinery/power/apc{
+ areastring = "/area/hallway/secondary/entry";
dir = 4;
name = "Entry Hall APC";
- areastring = "/area/hallway/secondary/entry";
pixel_x = 24
},
/obj/structure/cable,
@@ -13685,97 +14085,68 @@
/turf/closed/wall/r_wall,
/area/ai_monitored/storage/eva)
"aFd" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
+/obj/structure/table/wood,
+/obj/item/instrument/guitar{
+ pixel_x = -7
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
+/obj/item/instrument/eguitar{
+ pixel_x = 5
},
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
+/obj/item/instrument/violin,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aFe" = (
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
- dir = 8
+/obj/machinery/door/airlock{
+ id_tag = "Dorm2";
+ name = "Room One"
},
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
-"aFf" = (
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
- dir = 1
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet)
-"aFg" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
-/turf/closed/wall,
-/area/crew_quarters/toilet)
-"aFh" = (
-/obj/machinery/door/airlock{
- name = "Unisex Restrooms"
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/dorms)
+"aFf" = (
+/obj/structure/piano{
+ icon_state = "piano"
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet)
-"aFi" = (
-/obj/machinery/power/apc{
- dir = 4;
- name = "Dormitory Bathrooms APC";
- areastring = "/area/crew_quarters/toilet";
- pixel_x = 26
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet)
-"aFj" = (
-/obj/effect/turf_decal/tile/red,
-/obj/effect/turf_decal/tile/blue{
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aFg" = (
+/obj/structure/chair/comfy/black{
dir = 8
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/theatre)
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aFh" = (
+/obj/structure/chair/comfy/brown{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aFi" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aFj" = (
+/obj/structure/table,
+/obj/item/reagent_containers/food/drinks/britcup,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aFk" = (
-/obj/machinery/disposal/bin,
-/obj/structure/disposalpipe/trunk{
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
dir = 1
},
-/obj/effect/turf_decal/tile/red,
-/obj/effect/turf_decal/tile/blue{
- dir = 8
- },
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
-/area/crew_quarters/theatre)
+/area/crew_quarters/bar)
"aFl" = (
/obj/machinery/light/small{
dir = 8
@@ -13808,12 +14179,17 @@
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"aFp" = (
-/obj/effect/spawner/lootdrop/maintenance,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
+/obj/machinery/door/window/southright{
+ name = "Bar Door";
+ req_one_access_txt = "25;28"
},
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/crew_quarters/bar)
"aFq" = (
/obj/structure/lattice,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
@@ -13846,6 +14222,20 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
+"aFt" = (
+/obj/structure/table/reinforced,
+/obj/machinery/computer/security/telescreen/entertainment{
+ pixel_x = 32
+ },
+/obj/item/book/manual/wiki/barman_recipes,
+/obj/item/reagent_containers/rag,
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/crew_quarters/bar)
"aFu" = (
/turf/closed/wall,
/area/library)
@@ -13871,15 +14261,14 @@
/area/maintenance/starboard/fore)
"aFy" = (
/obj/machinery/power/apc{
- dir = 2;
- name = "Chapel Office APC";
areastring = "/area/chapel/office";
+ name = "Chapel Office APC";
pixel_y = -24
},
/obj/structure/cable,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plating,
-/area/chapel/office)
+/area/maintenance/starboard/fore)
"aFz" = (
/turf/open/floor/plasteel/dark,
/area/chapel/main)
@@ -13899,6 +14288,36 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel/dark,
/area/chapel/main)
+"aFC" = (
+/obj/structure/table,
+/obj/item/reagent_containers/food/snacks/bluecherrycupcake{
+ pixel_y = 5
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aFD" = (
+/obj/structure/chair/comfy/brown{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aFE" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 23
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet)
+"aFF" = (
+/obj/structure/chair/sofa{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aFG" = (
/obj/effect/turf_decal/tile/blue{
dir = 4
@@ -14044,7 +14463,9 @@
/turf/open/floor/plasteel,
/area/storage/primary)
"aFS" = (
-/obj/effect/landmark/start/assistant,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/storage/primary)
"aFT" = (
@@ -14054,9 +14475,8 @@
/turf/open/floor/plasteel,
/area/storage/primary)
"aFU" = (
-/obj/effect/landmark/start/assistant,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 4
+/obj/structure/chair/stool{
+ pixel_y = 8
},
/turf/open/floor/plasteel,
/area/storage/primary)
@@ -14075,8 +14495,6 @@
/area/gateway)
"aFX" = (
/obj/item/radio/intercom{
- freerange = 0;
- frequency = 1459;
name = "Station Intercom (General)";
pixel_x = -30
},
@@ -14168,7 +14586,7 @@
/area/ai_monitored/nuke_storage)
"aGf" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/turf/open/floor/plasteel,
@@ -14191,39 +14609,48 @@
/turf/open/floor/plasteel/dark,
/area/ai_monitored/storage/eva)
"aGk" = (
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12;
- pixel_y = 2
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet)
+/turf/open/floor/plating,
+/area/space/nearstation)
"aGl" = (
-/obj/machinery/light_switch{
- pixel_x = 27
+/obj/structure/closet/crate,
+/obj/item/book/manual/wiki/telescience,
+/obj/item/book/manual/wiki/engineering_guide,
+/obj/item/book/manual/wiki/engineering_construction,
+/obj/item/book/manual/wiki/atmospherics,
+/obj/item/book/manual/wiki/detective,
+/obj/item/book/manual/wiki/tcomms,
+/obj/item/book/manual/wiki/engineering_singulo_tesla,
+/obj/item/book/manual/wiki/experimentor,
+/obj/item/book/manual/wiki/research_and_development,
+/obj/item/book/manual/wiki/robotics_cyborgs,
+/obj/item/book/manual/wiki/security_space_law,
+/obj/item/book/manual/wiki/medicine,
+/obj/item/book/manual/wiki/medical_cloning,
+/obj/item/book/manual/wiki/infections,
+/obj/item/book/manual/ripley_build_and_repair,
+/obj/item/book/manual/hydroponics_pod_people,
+/obj/item/book/manual/wiki/toxins,
+/obj/item/book/manual/wiki/grenades,
+/obj/item/book{
+ desc = "An undeniably handy book.";
+ icon_state = "bookknock";
+ name = "A Simpleton's Guide to Safe-cracking with Stethoscopes"
},
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet)
+/turf/open/floor/wood,
+/area/library)
"aGm" = (
-/obj/structure/toilet{
- pixel_y = 8
- },
-/obj/machinery/light/small{
- dir = 8
- },
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet)
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/hydroponics)
"aGn" = (
-/obj/structure/toilet{
- pixel_y = 8
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
},
-/obj/machinery/light/small{
- dir = 8
- },
-/obj/effect/landmark/blobstart,
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet)
+/turf/open/floor/plasteel,
+/area/hydroponics)
"aGo" = (
/obj/structure/table,
/obj/item/stack/sheet/rglass{
@@ -14243,12 +14670,11 @@
/turf/open/floor/plasteel,
/area/ai_monitored/storage/eva)
"aGp" = (
-/obj/machinery/light/small{
- dir = 8
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
},
-/obj/machinery/recharge_station,
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet)
+/turf/open/floor/plasteel,
+/area/hydroponics)
"aGq" = (
/obj/item/stack/sheet/plasteel{
amount = 10
@@ -14300,28 +14726,13 @@
/turf/closed/wall,
/area/crew_quarters/theatre)
"aGw" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/obj/structure/closet/secure_closet/freezer/cream_pie,
-/obj/effect/turf_decal/tile/red{
- dir = 1
- },
-/obj/effect/turf_decal/tile/red,
-/obj/effect/turf_decal/tile/blue{
- dir = 4
- },
-/obj/effect/turf_decal/tile/blue{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/theatre)
+/obj/machinery/seed_extractor,
+/turf/open/floor/plasteel/dark,
+/area/hydroponics)
"aGx" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/turf/closed/wall,
-/area/crew_quarters/toilet)
+/obj/machinery/biogenerator,
+/turf/open/floor/plasteel/dark,
+/area/hydroponics)
"aGy" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -14479,6 +14890,12 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
+"aGK" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics)
"aGL" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -14520,15 +14937,9 @@
/turf/closed/wall,
/area/chapel/office)
"aGP" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
+/obj/machinery/vending/hydronutrients,
+/turf/open/floor/plasteel/dark,
+/area/hydroponics)
"aGQ" = (
/obj/structure/disposalpipe/segment{
dir = 10
@@ -14541,6 +14952,12 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
+"aGR" = (
+/obj/machinery/vending/hydroseeds{
+ slogan_delay = 700
+ },
+/turf/open/floor/plasteel/dark,
+/area/hydroponics)
"aGS" = (
/obj/structure/cable{
icon_state = "2-8"
@@ -14632,17 +15049,33 @@
/area/hallway/secondary/entry)
"aHb" = (
/obj/structure/table/wood,
-/obj/item/paper_bin{
- pixel_x = 1;
- pixel_y = 9
+/obj/item/paper_bin/bundlenatural{
+ pixel_x = 6;
+ pixel_y = 4
},
-/obj/item/stack/packageWrap,
-/turf/open/floor/wood,
-/area/library)
+/obj/item/paper_bin{
+ pixel_x = -6;
+ pixel_y = 4
+ },
+/obj/item/pen/fountain,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/item/pen/fourcolor,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
"aHc" = (
-/obj/machinery/vending/games,
-/turf/open/floor/wood,
-/area/library)
+/obj/effect/turf_decal/stripes/corner{
+ dir = 8
+ },
+/obj/effect/landmark/start/botanist,
+/turf/open/floor/plasteel,
+/area/hydroponics)
"aHd" = (
/obj/machinery/disposal/bin,
/obj/structure/disposalpipe/trunk,
@@ -14668,8 +15101,7 @@
pixel_y = 28
},
/obj/machinery/camera{
- c_tag = "Chapel Office";
- dir = 2
+ c_tag = "Chapel Office"
},
/turf/open/floor/plasteel/grimy,
/area/chapel/office)
@@ -14750,6 +15182,34 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/chapel/main)
+"aHr" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"aHs" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"aHt" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#cee5d2"
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
"aHu" = (
/obj/machinery/status_display{
pixel_x = 32
@@ -14828,12 +15288,12 @@
/turf/open/floor/plasteel/dark,
/area/ai_monitored/storage/eva)
"aHD" = (
-/obj/structure/chair/stool{
- pixel_y = 8
+/obj/structure/chair/comfy/beige{
+ dir = 8
},
/obj/effect/landmark/start/assistant,
-/turf/open/floor/plasteel,
-/area/storage/primary)
+/turf/open/floor/plasteel/grimy,
+/area/hallway/secondary/entry)
"aHE" = (
/obj/structure/table,
/obj/item/weldingtool,
@@ -15000,38 +15460,67 @@
/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
"aHU" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
+/obj/structure/extinguisher_cabinet{
+ pixel_y = -30
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aHV" = (
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aHW" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aHX" = (
+/obj/machinery/light{
dir = 1
},
-/obj/structure/sink{
- dir = 8;
- pixel_x = -12;
- pixel_y = 2
+/obj/structure/table/wood/fancy,
+/obj/item/reagent_containers/food/condiment/peppermill{
+ pixel_x = -9
},
-/obj/structure/mirror{
- pixel_x = -28
+/obj/item/reagent_containers/food/condiment/peppermill{
+ dir = 1;
+ pixel_x = -3
},
-/obj/effect/landmark/start/assistant,
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet)
-"aHV" = (
-/obj/machinery/door/airlock{
- name = "Unit 1"
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_x = -9;
+ pixel_y = 9
},
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet)
-"aHW" = (
-/obj/machinery/door/airlock{
- name = "Unit 2"
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_x = -3;
+ pixel_y = 9
},
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet)
-"aHX" = (
-/obj/machinery/door/airlock{
- name = "Unit B"
+/obj/item/reagent_containers/food/condiment/pack/ketchup{
+ pixel_x = 5
},
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet)
+/obj/item/reagent_containers/food/condiment/pack/ketchup{
+ pixel_x = 5
+ },
+/obj/item/reagent_containers/food/condiment/pack/ketchup{
+ pixel_x = 5
+ },
+/obj/item/reagent_containers/food/condiment/pack/hotsauce{
+ pixel_x = 10
+ },
+/obj/item/reagent_containers/food/condiment/pack/hotsauce{
+ pixel_x = 10
+ },
+/obj/item/reagent_containers/food/condiment/pack/mustard{
+ pixel_x = 10
+ },
+/obj/item/reagent_containers/food/condiment/pack/mustard{
+ pixel_x = 10
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aHY" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
dir = 1
@@ -15039,23 +15528,12 @@
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"aHZ" = (
-/obj/machinery/airalarm{
- dir = 4;
- pixel_x = -22
- },
-/obj/structure/closet/crate/wooden/toy,
-/obj/effect/turf_decal/tile/red{
- dir = 1
- },
-/obj/effect/turf_decal/tile/red,
-/obj/effect/turf_decal/tile/blue{
- dir = 4
- },
-/obj/effect/turf_decal/tile/blue{
- dir = 8
+/obj/effect/turf_decal/tile/blue,
+/obj/structure/sign/poster/contraband/fun_police{
+ pixel_x = 32
},
/turf/open/floor/plasteel,
-/area/crew_quarters/theatre)
+/area/hallway/primary/fore)
"aIa" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
@@ -15065,9 +15543,9 @@
/area/maintenance/starboard/fore)
"aIb" = (
/obj/machinery/power/apc{
+ areastring = "/area/crew_quarters/theatre";
dir = 8;
name = "Theatre APC";
- areastring = "/area/crew_quarters/theatre";
pixel_x = -25
},
/obj/structure/cable,
@@ -15078,9 +15556,8 @@
/area/maintenance/starboard/fore)
"aIc" = (
/obj/machinery/power/apc{
- dir = 2;
- name = "Bar APC";
areastring = "/area/crew_quarters/bar";
+ name = "Bar APC";
pixel_y = -24
},
/obj/structure/cable,
@@ -15120,18 +15597,13 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
-/obj/effect/turf_decal/bot{
- dir = 2
- },
-/turf/open/floor/plasteel{
- dir = 2
- },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
/area/crew_quarters/bar)
"aIh" = (
/obj/machinery/power/apc{
- dir = 2;
- name = "Kitchen APC";
areastring = "/area/crew_quarters/kitchen";
+ name = "Kitchen APC";
pixel_y = -24
},
/obj/structure/cable,
@@ -15140,6 +15612,12 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
+"aIi" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aIj" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -15190,9 +15668,8 @@
/area/maintenance/starboard/fore)
"aIn" = (
/obj/machinery/power/apc{
- dir = 2;
- name = "Hydroponics APC";
areastring = "/area/hydroponics";
+ name = "Hydroponics APC";
pixel_y = -24
},
/obj/structure/cable{
@@ -15219,21 +15696,15 @@
/turf/closed/wall,
/area/hydroponics)
"aIr" = (
-/obj/structure/filingcabinet,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/turf/open/floor/wood,
-/area/library)
+/turf/open/floor/plating,
+/area/crew_quarters/abandoned_gambling_den)
"aIs" = (
-/obj/structure/chair/office/dark,
-/obj/machinery/camera{
- c_tag = "Library North";
- dir = 2
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
},
+/obj/structure/chair/comfy/brown,
/turf/open/floor/wood,
-/area/library)
+/area/crew_quarters/bar)
"aIt" = (
/turf/open/floor/wood,
/area/library)
@@ -15253,16 +15724,11 @@
/turf/open/floor/wood,
/area/library)
"aIw" = (
-/obj/structure/chair/office/dark,
-/obj/structure/disposalpipe/segment{
- dir = 6
- },
-/obj/effect/landmark/start/assistant,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
+ dir = 9
},
/turf/open/floor/wood,
-/area/library)
+/area/crew_quarters/bar)
"aIx" = (
/obj/structure/disposalpipe/segment{
dir = 9
@@ -15273,29 +15739,35 @@
/turf/open/floor/wood,
/area/library)
"aIy" = (
-/obj/structure/disposalpipe/segment,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/turf/open/floor/plasteel/dark,
-/area/chapel/office)
+/obj/structure/table/wood,
+/obj/item/paper_bin{
+ pixel_x = 1;
+ pixel_y = 9
+ },
+/obj/item/stack/packageWrap,
+/obj/item/pen/fourcolor,
+/turf/open/floor/wood,
+/area/library)
"aIz" = (
/obj/machinery/disposal/bin,
/obj/structure/disposalpipe/trunk,
/turf/open/floor/plasteel/grimy,
/area/chapel/office)
"aIA" = (
-/obj/structure/table/wood,
-/obj/item/paper_bin{
- pixel_x = -2;
- pixel_y = 5
- },
-/obj/item/storage/crayons,
-/turf/open/floor/plasteel/grimy,
-/area/chapel/office)
-"aIB" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/structure/bodycontainer/crematorium{
id = "crematoriumChapel"
},
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/office)
+"aIB" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
/turf/open/floor/plasteel/dark,
/area/chapel/office)
"aIC" = (
@@ -15319,6 +15791,15 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/security/warden)
+"aIG" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
"aIH" = (
/obj/structure/table,
/obj/item/storage/box/lights/mixed,
@@ -15370,8 +15851,7 @@
/area/storage/primary)
"aIO" = (
/obj/machinery/camera{
- c_tag = "Arrivals Lounge";
- dir = 2
+ c_tag = "Arrivals Lounge"
},
/obj/machinery/light{
dir = 1
@@ -15405,7 +15885,7 @@
/obj/item/reagent_containers/glass/bucket,
/obj/item/plant_analyzer,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/effect/turf_decal/tile/green,
@@ -15419,8 +15899,6 @@
/obj/structure/table/glass,
/obj/item/plant_analyzer,
/obj/item/radio/intercom{
- freerange = 0;
- frequency = 1459;
name = "Station Intercom (General)";
pixel_x = 29
},
@@ -15580,12 +16058,13 @@
/turf/open/floor/plasteel,
/area/ai_monitored/storage/eva)
"aJk" = (
-/obj/machinery/door/airlock{
- name = "Theatre Backstage";
- req_access_txt = "46"
+/obj/machinery/holopad,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
},
/turf/open/floor/plasteel,
-/area/crew_quarters/theatre)
+/area/crew_quarters/dorms)
"aJl" = (
/obj/structure/tank_dispenser/oxygen,
/obj/machinery/light{
@@ -15597,12 +16076,11 @@
/turf/open/floor/plasteel,
/area/ai_monitored/storage/eva)
"aJm" = (
-/obj/structure/sink/kitchen{
- pixel_y = 28
+/obj/machinery/light{
+ dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
+/turf/open/floor/plating,
+/area/crew_quarters/abandoned_gambling_den)
"aJn" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -15612,8 +16090,7 @@
dir = 1
},
/obj/machinery/camera{
- c_tag = "Central Hallway North";
- dir = 2
+ c_tag = "Central Hallway North"
},
/obj/effect/turf_decal/tile/blue{
dir = 1
@@ -15685,8 +16162,17 @@
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"aJv" = (
-/obj/machinery/vending/cola/random,
-/turf/open/floor/plasteel/dark,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/structure/sign/poster/contraband/robust_softdrinks{
+ pixel_x = -32;
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel,
/area/hallway/primary/central)
"aJw" = (
/turf/closed/wall,
@@ -15706,6 +16192,10 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/central)
+"aJz" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/dorms)
"aJA" = (
/obj/machinery/door/airlock/maintenance{
name = "Kitchen Maintenance";
@@ -15737,13 +16227,12 @@
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"aJE" = (
-/obj/item/reagent_containers/food/drinks/shaker,
-/obj/item/gun/ballistic/revolver/doublebarrel,
-/obj/structure/table/wood,
-/obj/item/stack/spacecash/c10,
-/obj/item/stack/spacecash/c100,
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#e8eaff"
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/abandoned_gambling_den)
"aJF" = (
/obj/machinery/newscaster{
pixel_x = 30
@@ -15770,9 +16259,6 @@
/area/chapel/office)
"aJH" = (
/obj/machinery/door/window/southleft{
- base_state = "left";
- dir = 2;
- icon_state = "left";
name = "Bar Delivery";
req_access_txt = "25"
},
@@ -15783,11 +16269,11 @@
/turf/closed/wall,
/area/crew_quarters/kitchen)
"aJJ" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/chapel/office)
+/obj/structure/table/wood,
+/obj/item/folder/yellow,
+/obj/item/pen/blue,
+/turf/open/floor/wood,
+/area/library)
"aJK" = (
/obj/machinery/navbeacon{
codes_txt = "delivery;dir=2";
@@ -15795,12 +16281,8 @@
location = "Kitchen"
},
/obj/structure/plasticflaps/opaque,
-/obj/effect/turf_decal/bot{
- dir = 2
- },
-/turf/open/floor/plasteel{
- dir = 2
- },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
/area/crew_quarters/kitchen)
"aJL" = (
/obj/machinery/navbeacon{
@@ -15809,30 +16291,26 @@
location = "Hydroponics"
},
/obj/structure/plasticflaps/opaque,
-/obj/effect/turf_decal/bot{
- dir = 2
- },
-/turf/open/floor/plasteel{
- dir = 2
- },
-/area/hydroponics)
-"aJM" = (
-/obj/structure/table/wood,
-/obj/item/flashlight/lamp{
- pixel_y = 10
- },
-/obj/structure/disposalpipe/segment,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/turf/open/floor/plasteel/grimy,
-/area/chapel/office)
-"aJN" = (
-/obj/structure/table,
-/obj/item/book/manual/hydroponics_pod_people,
-/obj/item/paper/guides/jobs/hydroponics,
+/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
/area/hydroponics)
+"aJM" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel/dark,
+/area/chapel/office)
+"aJN" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/sign/departments/security{
+ pixel_x = -32;
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
"aJO" = (
/obj/structure/table,
/obj/machinery/reagentgrinder,
@@ -15840,30 +16318,55 @@
/area/hydroponics)
"aJP" = (
/obj/structure/table/wood,
-/obj/item/folder/yellow,
-/obj/item/pen,
-/turf/open/floor/wood,
-/area/library)
-"aJQ" = (
-/obj/structure/chair/office/dark{
+/obj/item/flashlight/lamp{
+ pixel_y = 10
+ },
+/obj/structure/disposalpipe/segment,
+/obj/item/nullrod,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
-/turf/open/floor/wood,
-/area/library)
-"aJR" = (
-/obj/structure/chair/office/dark{
+/turf/open/floor/plasteel/grimy,
+/area/chapel/office)
+"aJQ" = (
+/obj/machinery/light{
dir = 8
},
-/turf/open/floor/wood,
-/area/library)
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"aJR" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/neutral,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
"aJS" = (
/obj/structure/table/wood,
/obj/structure/disposalpipe/segment,
+/obj/item/paicard,
/turf/open/floor/wood,
/area/library)
"aJT" = (
/obj/structure/table/wood,
-/obj/item/nullrod,
+/obj/item/paper_bin{
+ pixel_x = -2;
+ pixel_y = 5
+ },
+/obj/item/storage/crayons,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
@@ -15971,9 +16474,9 @@
icon_state = "0-4"
},
/obj/machinery/power/apc{
+ areastring = "/area/construction/mining/aux_base";
dir = 8;
name = "Auxillary Base Construction APC";
- areastring = "/area/construction/mining/aux_base";
pixel_x = -24
},
/obj/structure/cable{
@@ -15984,11 +16487,33 @@
},
/turf/open/floor/plating,
/area/maintenance/port/fore)
+"aKg" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"aKh" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"aKi" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/obj/structure/table,
+/obj/structure/bedsheetbin/towel,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
"aKj" = (
/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/tile/neutral{
- dir = 2
- },
+/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/plasteel,
/area/hallway/secondary/entry)
"aKk" = (
@@ -16028,22 +16553,24 @@
/turf/open/floor/plating,
/area/storage/primary)
"aKq" = (
-/obj/item/radio/intercom{
- pixel_y = 25
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
},
-/obj/machinery/camera{
- c_tag = "Theatre Stage";
- dir = 2
- },
-/turf/open/floor/wood,
-/area/crew_quarters/theatre)
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
"aKr" = (
-/obj/machinery/airalarm{
- dir = 2;
- pixel_y = 24
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/turf/open/floor/wood,
-/area/crew_quarters/theatre)
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
"aKs" = (
/obj/structure/disposalpipe/segment,
/obj/effect/spawner/structure/window,
@@ -16182,14 +16709,22 @@
/turf/open/floor/plasteel,
/area/hydroponics)
"aKJ" = (
-/obj/machinery/light_switch{
- pixel_y = 28
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -29
},
-/obj/machinery/light{
- dir = 1
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/turf/open/floor/wood,
-/area/crew_quarters/theatre)
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
"aKK" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/structure/closet/secure_closet/hydroponics,
@@ -16212,45 +16747,46 @@
/turf/open/floor/plasteel,
/area/hydroponics)
"aKM" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
-"aKN" = (
-/obj/structure/window/reinforced{
- dir = 4
+/obj/structure/cable{
+ icon_state = "2-8"
},
-/turf/open/floor/wood,
-/area/crew_quarters/theatre)
-"aKO" = (
-/obj/machinery/disposal/bin,
-/obj/structure/disposalpipe/trunk{
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/obj/effect/turf_decal/tile/neutral{
dir = 8
},
-/obj/machinery/firealarm{
- dir = 2;
- pixel_y = 24
- },
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
- },
+/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
+/area/crew_quarters/dorms)
+"aKN" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/chair/comfy/brown,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"aKO" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/chair/comfy/black,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
"aKP" = (
-/obj/structure/disposalpipe/segment{
- dir = 5
+/obj/machinery/door/airlock{
+ name = "Unisex Restrooms"
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
+/obj/structure/cable{
+ icon_state = "1-2"
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/dorms)
"aKQ" = (
/obj/machinery/reagentgrinder,
/obj/structure/table/wood,
@@ -16260,11 +16796,13 @@
/turf/open/floor/wood,
/area/crew_quarters/bar)
"aKS" = (
-/obj/machinery/camera{
- c_tag = "Bar Storage"
+/obj/effect/turf_decal/tile/red,
+/obj/structure/sign/departments/security{
+ pixel_x = 32;
+ pixel_y = -32
},
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
+/turf/open/floor/plasteel,
+/area/hallway/primary/fore)
"aKT" = (
/obj/structure/closet/secure_closet/freezer/meat,
/turf/open/floor/plasteel/showroomfloor,
@@ -16275,9 +16813,6 @@
/area/hydroponics)
"aKV" = (
/obj/machinery/door/window/southleft{
- base_state = "left";
- dir = 2;
- icon_state = "left";
name = "Kitchen Delivery";
req_access_txt = "28"
},
@@ -16317,8 +16852,9 @@
c_tag = "Chapel Crematorium";
dir = 4
},
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 1
+/obj/structure/bodycontainer/morgue,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
},
/turf/open/floor/plasteel/dark,
/area/chapel/office)
@@ -16387,11 +16923,9 @@
/turf/open/floor/wood,
/area/library)
"aLh" = (
-/obj/machinery/light{
- dir = 4
- },
-/turf/open/floor/wood,
-/area/library)
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/crew_quarters/toilet)
"aLi" = (
/obj/structure/chair/comfy/beige,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
@@ -16467,6 +17001,23 @@
},
/turf/open/floor/plasteel/dark,
/area/chapel/main)
+"aLs" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/machinery/camera{
+ c_tag = "Dorms South";
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
"aLt" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
dir = 4
@@ -16483,7 +17034,7 @@
/area/construction/mining/aux_base)
"aLv" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/effect/turf_decal/stripes/line{
@@ -16550,9 +17101,9 @@
icon_state = "0-2"
},
/obj/machinery/power/apc{
- name = "Port Hall APC";
areastring = "/area/hallway/primary/port";
dir = 1;
+ name = "Port Hall APC";
pixel_y = 26
},
/turf/open/floor/plasteel,
@@ -16588,8 +17139,7 @@
/area/hallway/primary/port)
"aLL" = (
/obj/machinery/camera{
- c_tag = "Port Hallway 2";
- dir = 2
+ c_tag = "Port Hallway 2"
},
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -16628,15 +17178,18 @@
/turf/open/floor/plasteel,
/area/hallway/primary/port)
"aLQ" = (
-/obj/machinery/camera{
- c_tag = "Central Hallway North-East";
- dir = 2
+/obj/structure/cable,
+/obj/machinery/power/apc{
+ areastring = "/area/crew_quarters/toilet";
+ dir = 4;
+ name = "Dormitory Bathrooms APC";
+ pixel_x = 26
},
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/central)
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/table/glass,
+/obj/structure/bedsheetbin/towel,
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet)
"aLR" = (
/obj/machinery/newscaster{
pixel_y = 32
@@ -16650,10 +17203,11 @@
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"aLS" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk,
+/turf/open/floor/plasteel/white/side{
dir = 4
},
-/turf/open/floor/wood,
/area/crew_quarters/theatre)
"aLT" = (
/obj/machinery/door/firedoor,
@@ -16678,15 +17232,13 @@
dir = 1
},
/obj/machinery/firealarm{
- dir = 2;
pixel_y = 24
},
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"aLW" = (
/obj/machinery/camera{
- c_tag = "Central Hallway North-West";
- dir = 2
+ c_tag = "Central Hallway North-West"
},
/obj/machinery/airalarm{
pixel_y = 23
@@ -16746,14 +17298,12 @@
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"aMg" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
+/obj/machinery/vending/cola/pwr_game,
+/obj/structure/sign/poster/contraband/pwr_game{
+ pixel_y = 32
},
/turf/open/floor/plasteel,
-/area/hallway/primary/central)
+/area/crew_quarters/locker)
"aMh" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 4
@@ -16790,7 +17340,6 @@
/area/crew_quarters/kitchen)
"aMm" = (
/obj/machinery/firealarm{
- dir = 2;
pixel_y = 24
},
/turf/open/floor/plasteel,
@@ -16808,20 +17357,33 @@
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"aMp" = (
-/obj/structure/chair/stool{
- pixel_y = 8
- },
-/turf/open/floor/wood,
-/area/crew_quarters/theatre)
+/obj/effect/landmark/blobstart,
+/turf/open/floor/plating,
+/area/maintenance/department/electrical)
"aMq" = (
-/obj/structure/piano{
- icon_state = "piano"
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
},
-/turf/open/floor/wood,
-/area/crew_quarters/theatre)
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
"aMr" = (
-/turf/open/floor/wood,
-/area/crew_quarters/theatre)
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
"aMs" = (
/obj/structure/disposalpipe/segment{
dir = 5
@@ -16843,41 +17405,33 @@
/turf/open/floor/plasteel,
/area/hydroponics)
"aMu" = (
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
- dir = 4
- },
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
+/obj/machinery/camera{
+ c_tag = "Bathrooms";
dir = 1
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
+/obj/structure/urinal{
+ pixel_y = 32
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet)
"aMv" = (
-/obj/structure/window/reinforced{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/turf/open/floor/wood,
-/area/crew_quarters/theatre)
-"aMw" = (
-/obj/machinery/computer/slot_machine,
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
-"aMx" = (
-/obj/structure/chair/stool,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/toilet)
+"aMw" = (
+/obj/machinery/door/airlock{
+ name = "Unisex Restrooms"
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/hallway/primary/central)
+"aMx" = (
+/obj/machinery/door/airlock{
+ name = "Shower Room"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/toilet)
"aMy" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -16910,13 +17464,21 @@
/turf/open/floor/plasteel,
/area/hydroponics)
"aMB" = (
-/obj/machinery/vending/coffee,
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
+/obj/effect/spawner/structure/window,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/abandoned_gambling_den)
"aMC" = (
-/obj/machinery/vending/cola/random,
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/light_switch{
+ pixel_y = -25
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/abandoned_gambling_den)
"aMD" = (
/obj/machinery/icecream_vat,
/turf/open/floor/plasteel/showroomfloor,
@@ -16942,27 +17504,28 @@
/turf/open/floor/plasteel,
/area/hydroponics)
"aMH" = (
-/obj/structure/chair/office/dark{
- dir = 1
+/obj/machinery/door/airlock{
+ name = "Unisex Restrooms"
},
-/turf/open/floor/wood,
-/area/library)
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/bar)
"aMI" = (
/obj/machinery/light/small,
/obj/machinery/vending/wardrobe/hydro_wardrobe,
/turf/open/floor/plasteel,
/area/hydroponics)
"aMJ" = (
-/obj/structure/chair/office/dark{
- dir = 1
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
},
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/wood,
-/area/library)
+/turf/closed/wall,
+/area/crew_quarters/dorms)
"aMK" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
- dir = 1
+/obj/structure/disposalpipe/segment{
+ dir = 5
},
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
/turf/open/floor/plasteel/dark,
/area/chapel/office)
"aML" = (
@@ -16973,8 +17536,7 @@
/area/chapel/main)
"aMM" = (
/obj/machinery/camera{
- c_tag = "Chapel North";
- dir = 2
+ c_tag = "Chapel North"
},
/turf/open/floor/plasteel/dark,
/area/chapel/main)
@@ -17041,9 +17603,11 @@
/turf/open/floor/plasteel,
/area/hallway/primary/port)
"aMW" = (
-/obj/structure/bodycontainer/morgue,
-/turf/open/floor/plasteel/dark,
-/area/chapel/office)
+/obj/structure/bookcase{
+ name = "Forbidden Knowledge"
+ },
+/turf/open/floor/carpet,
+/area/library)
"aMX" = (
/turf/open/floor/plasteel/grimy,
/area/chapel/office)
@@ -17124,6 +17688,13 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/port)
+"aNn" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/chair/comfy/brown,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aNo" = (
/obj/structure/cable{
icon_state = "1-8"
@@ -17154,17 +17725,33 @@
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"aNt" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/chair/comfy/brown{
dir = 4
},
-/turf/open/floor/wood,
-/area/crew_quarters/theatre)
-"aNu" = (
-/obj/structure/closet/secure_closet/bar{
- req_access_txt = "25"
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
},
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
+/obj/effect/turf_decal/tile/neutral,
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"aNu" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/crew_quarters/abandoned_gambling_den";
+ name = "Abandoned Gambling Den APC";
+ pixel_y = -24
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/abandoned_gambling_den)
"aNv" = (
/obj/effect/turf_decal/plaque{
icon_state = "L4"
@@ -17240,57 +17827,78 @@
/turf/open/floor/wood,
/area/crew_quarters/bar)
"aNF" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
},
-/turf/open/floor/wood,
-/area/crew_quarters/theatre)
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/obj/item/reagent_containers/food/drinks/soda_cans/starkist{
+ pixel_x = -3;
+ pixel_y = 5
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/bar)
"aNG" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
+/obj/structure/chair/comfy/brown{
+ dir = 8
},
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
+/area/crew_quarters/dorms)
"aNH" = (
-/obj/machinery/door/window{
- dir = 4;
- name = "Theatre Stage"
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/structure/sign/warning/fire{
+ desc = "A sign that states the labeled room's number.";
+ icon_state = "roomnum";
+ name = "Room Number 1";
+ pixel_x = -30;
+ pixel_y = -7
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 4
},
-/turf/open/floor/wood,
-/area/crew_quarters/theatre)
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
"aNI" = (
-/obj/machinery/computer/slot_machine,
-/obj/machinery/light/small{
- dir = 4
- },
-/obj/machinery/status_display{
- pixel_x = 32
- },
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
- },
+/obj/structure/closet/jcloset,
+/obj/item/storage/bag/trash,
+/obj/item/clothing/under/janimaid,
+/obj/item/clothing/under/janimaid,
+/obj/item/clothing/under/janimaid,
+/obj/item/clothing/under/maid,
+/obj/item/clothing/under/maid,
+/obj/item/clothing/under/maid,
/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
+/area/janitor)
"aNJ" = (
-/obj/structure/chair/stool,
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
- dir = 4
- },
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
+/obj/structure/table,
+/obj/item/grenade/chem_grenade/cleaner,
+/obj/item/grenade/chem_grenade/cleaner,
+/obj/item/grenade/chem_grenade/cleaner,
+/obj/machinery/requests_console{
+ department = "Janitorial";
+ departmentType = 1;
+ pixel_y = -29
},
+/obj/item/reagent_containers/spray/cleaner,
+/obj/item/storage/box/lights/mixed,
+/obj/item/storage/box/lights/mixed,
/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
+/area/janitor)
"aNK" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
dir = 8
@@ -17343,6 +17951,7 @@
"aNR" = (
/obj/structure/table/wood,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/item/paicard,
/turf/open/floor/carpet,
/area/hallway/secondary/entry)
"aNS" = (
@@ -17379,9 +17988,11 @@
/turf/open/floor/plasteel,
/area/hallway/primary/port)
"aNV" = (
-/obj/machinery/photocopier,
-/turf/open/floor/wood,
-/area/library)
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/abandoned_gambling_den)
"aNW" = (
/obj/machinery/door/airlock/public/glass{
name = "Chapel Office";
@@ -17588,6 +18199,15 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/port)
+"aOu" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/chair/comfy/brown{
+ dir = 8
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aOv" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -17712,32 +18332,56 @@
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"aOH" = (
-/obj/structure/window/reinforced,
-/turf/open/floor/wood,
-/area/crew_quarters/theatre)
+/obj/structure/closet/secure_closet/captains,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/obj/item/clothing/under/captainparade,
+/turf/open/floor/carpet,
+/area/crew_quarters/heads/captain)
"aOI" = (
/obj/structure/kitchenspike,
/turf/open/floor/plasteel/showroomfloor,
/area/crew_quarters/kitchen)
"aOJ" = (
-/obj/structure/window/reinforced,
-/obj/structure/window/reinforced{
- dir = 4
+/obj/item/radio/intercom{
+ dir = 8;
+ name = "Station Intercom (General)";
+ pixel_x = -28
},
-/turf/open/floor/wood,
-/area/crew_quarters/theatre)
-"aOK" = (
-/obj/effect/spawner/structure/window,
-/turf/open/floor/plating,
-/area/crew_quarters/bar)
-"aOL" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
+/obj/structure/closet/secure_closet/hop,
+/obj/effect/turf_decal/tile/blue{
dir = 1
},
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/item/clothing/suit/ianshirt,
/turf/open/floor/plasteel,
+/area/crew_quarters/heads/hop)
+"aOK" = (
+/obj/machinery/door/airlock{
+ name = "Theatre Backstage";
+ req_access_txt = "46"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
/area/crew_quarters/bar)
+"aOL" = (
+/obj/machinery/camera{
+ c_tag = "Central Hallway North-East"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -5;
+ pixel_y = 30
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
"aOM" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/atmospherics/components/unary/vent_pump/on{
@@ -17806,8 +18450,7 @@
"aOW" = (
/obj/machinery/hydroponics/constructable,
/obj/machinery/camera{
- c_tag = "Hydroponics North";
- dir = 2
+ c_tag = "Hydroponics North"
},
/turf/open/floor/plasteel/dark,
/area/hydroponics)
@@ -17864,29 +18507,38 @@
/turf/open/floor/wood,
/area/library)
"aPg" = (
-/obj/structure/bookcase{
- name = "Forbidden Knowledge"
- },
-/turf/open/floor/engine/cult,
-/area/library)
-"aPh" = (
-/obj/structure/table/wood,
-/obj/item/paper_bin{
- pixel_x = -3;
- pixel_y = 7
- },
-/obj/item/pen/invisible,
-/turf/open/floor/engine/cult,
-/area/library)
-"aPi" = (
-/obj/structure/table/wood,
-/obj/item/taperecorder,
-/obj/item/camera,
/obj/item/radio/intercom{
pixel_y = 25
},
-/turf/open/floor/engine/cult,
+/obj/machinery/vending/wardrobe/curator_wardrobe,
+/turf/open/floor/carpet,
/area/library)
+"aPh" = (
+/obj/structure/table/wood,
+/obj/item/book/codex_gigas,
+/obj/item/clothing/under/suit_jacket/red,
+/obj/structure/destructible/cult/tome,
+/turf/open/floor/carpet,
+/area/library)
+"aPi" = (
+/obj/structure/chair/comfy/brown,
+/turf/open/floor/carpet,
+/area/library)
+"aPj" = (
+/obj/machinery/vr_sleeper{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white/corner{
+ dir = 1
+ },
+/area/crew_quarters/fitness)
"aPk" = (
/turf/open/floor/plasteel/chapel{
dir = 4
@@ -17961,7 +18613,6 @@
/area/hallway/secondary/entry)
"aPv" = (
/obj/item/radio/intercom{
- broadcasting = 0;
name = "Station Intercom (General)";
pixel_y = 20
},
@@ -18080,6 +18731,19 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel,
/area/hallway/primary/port)
+"aPP" = (
+/obj/structure/reagent_dispensers/watertank/high,
+/obj/structure/sign/poster/contraband/lizard{
+ pixel_x = -32
+ },
+/obj/structure/sign/poster/contraband/lizard{
+ pixel_x = -32
+ },
+/obj/structure/sign/poster/contraband/lizard{
+ pixel_x = -32
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics)
"aPQ" = (
/turf/closed/wall,
/area/storage/tools)
@@ -18170,39 +18834,34 @@
/turf/open/floor/plating,
/area/bridge)
"aPY" = (
-/obj/structure/chair/stool,
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
+/obj/structure/table/optable{
+ name = "Robotics Operating Table"
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
+/obj/effect/landmark/event_spawn,
+/obj/item/tank/internals/anesthetic,
+/obj/item/clothing/mask/breath,
+/turf/open/floor/plasteel/dark,
+/area/science/robotics/lab)
"aPZ" = (
-/obj/structure/table,
-/obj/machinery/computer/security/telescreen/entertainment{
- pixel_x = -31
- },
-/obj/item/clothing/head/hardhat/cakehat,
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
+/obj/item/mop,
+/obj/item/reagent_containers/glass/bucket,
+/obj/structure/sign/poster/contraband/busty_backdoor_xeno_babes_6{
+ pixel_x = 32
},
/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
+/area/janitor)
"aQa" = (
-/obj/structure/table,
-/obj/item/kitchen/fork,
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
+/obj/structure/reagent_dispensers/watertank,
+/obj/structure/sign/poster/contraband/lusty_xenomorph{
+ pixel_x = 32
},
/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
+/area/janitor)
"aQb" = (
-/obj/structure/window/reinforced,
-/obj/structure/table/wood,
-/obj/item/instrument/violin,
-/turf/open/floor/wood,
+/obj/machinery/vending/autodrobe,
+/turf/open/floor/plasteel/white/side{
+ dir = 4
+ },
/area/crew_quarters/theatre)
"aQc" = (
/obj/effect/turf_decal/tile/bar,
@@ -18212,23 +18871,15 @@
/turf/open/floor/plasteel,
/area/crew_quarters/bar)
"aQd" = (
-/obj/structure/chair,
-/obj/effect/landmark/start/assistant,
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/space)
"aQe" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/structure/chair/stool,
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
+/turf/open/floor/plating,
+/area/space/nearstation)
"aQf" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/effect/turf_decal/tile/green{
@@ -18343,22 +18994,24 @@
/area/library)
"aQr" = (
/obj/machinery/light/small,
-/obj/machinery/vending/wardrobe/curator_wardrobe,
-/turf/open/floor/engine/cult,
+/obj/structure/table/wood/fancy,
+/turf/open/floor/carpet,
/area/library)
"aQs" = (
-/obj/structure/destructible/cult/tome,
-/obj/item/clothing/under/suit_jacket/red,
-/obj/item/book/codex_gigas,
-/turf/open/floor/engine/cult,
+/obj/structure/bed,
+/obj/item/bedsheet/black,
+/turf/open/floor/carpet,
/area/library)
"aQt" = (
-/obj/effect/landmark/blobstart,
-/obj/structure/chair/comfy/brown{
- dir = 1
- },
-/turf/open/floor/engine/cult,
-/area/library)
+/obj/structure/table,
+/obj/item/stack/cable_coil/random,
+/obj/item/stack/cable_coil/random,
+/obj/item/stack/cable_coil,
+/obj/item/paper_bin/construction,
+/obj/item/stack/cable_coil,
+/obj/item/pen/fourcolor,
+/turf/open/floor/plasteel,
+/area/storage/art)
"aQu" = (
/turf/open/floor/plasteel/chapel,
/area/chapel/main)
@@ -18494,37 +19147,67 @@
/area/crew_quarters/locker)
"aQO" = (
/obj/structure/closet/wardrobe/white,
+/obj/item/clothing/suit/ghost_sheet,
+/obj/item/clothing/suit/ghost_sheet,
+/obj/item/clothing/suit/ghost_sheet,
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aQP" = (
-/obj/structure/reagent_dispensers/fueltank,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/chair/comfy/brown{
+ dir = 8
+ },
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aQQ" = (
/obj/machinery/light_switch{
pixel_y = 28
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/locker)
-"aQQ" = (
-/obj/structure/reagent_dispensers/watertank,
+/obj/machinery/vending/cigarette,
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aQR" = (
-/obj/machinery/vending/cola/random,
+/obj/machinery/camera{
+ c_tag = "Arrivals Bay 3 & 4";
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line,
+/obj/effect/landmark/start/assistant,
/turf/open/floor/plasteel,
-/area/crew_quarters/locker)
+/area/hallway/secondary/entry)
"aQS" = (
/obj/machinery/vending/coffee,
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aQT" = (
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/plasteel,
-/area/crew_quarters/locker)
+/obj/item/clothing/gloves/color/rainbow,
+/obj/item/clothing/head/soft/rainbow,
+/obj/item/clothing/shoes/sneakers/rainbow,
+/obj/item/clothing/under/color/rainbow,
+/turf/open/floor/plating,
+/area/maintenance/port/fore)
"aQU" = (
-/obj/machinery/vending/kink,
-/turf/open/floor/plasteel,
-/area/crew_quarters/locker)
+/obj/structure/sign/poster/contraband/lizard{
+ pixel_x = -32
+ },
+/obj/structure/sign/poster/contraband/lizard{
+ pixel_x = -32
+ },
+/obj/structure/sign/poster/contraband/lizard{
+ pixel_x = -32
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
"aQV" = (
-/obj/machinery/vending/clothing,
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aQW" = (
@@ -18532,18 +19215,19 @@
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aQX" = (
-/obj/machinery/firealarm{
- dir = 2;
- pixel_y = 24
+/obj/machinery/vending/clothing,
+/obj/structure/disposalpipe/segment{
+ dir = 4
},
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aQY" = (
-/obj/structure/table,
-/obj/item/stack/cable_coil/random,
-/obj/item/stack/cable_coil/random,
+/obj/machinery/vending/autodrobe/all_access,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
/turf/open/floor/plasteel,
-/area/storage/art)
+/area/crew_quarters/locker)
"aQZ" = (
/obj/machinery/light/small{
dir = 4
@@ -18736,47 +19420,30 @@
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"aRu" = (
-/obj/machinery/light{
- dir = 8
- },
-/obj/structure/chair/stool,
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
-"aRv" = (
-/obj/structure/chair{
- dir = 1
- },
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
-"aRw" = (
-/obj/structure/chair{
- dir = 1
- },
-/obj/effect/landmark/start/assistant,
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
-"aRx" = (
-/obj/structure/chair{
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
+/obj/machinery/vending/kink,
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#e8eaff"
},
/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
+/area/crew_quarters/fitness)
+"aRv" = (
+/obj/effect/landmark/blobstart,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"aRw" = (
+/obj/structure/fans/tiny/invisible,
+/turf/open/space/basic,
+/area/space)
+"aRx" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/plating,
+/area/space/nearstation)
"aRy" = (
/obj/structure/extinguisher_cabinet{
pixel_x = -5;
@@ -18795,7 +19462,9 @@
/turf/open/floor/plasteel,
/area/crew_quarters/bar)
"aRA" = (
-/obj/machinery/vending/dinnerware,
+/obj/machinery/vending/dinnerware{
+ contraband = list(/obj/item/kitchen/rollingpin = 2, /obj/item/kitchen/knife/butcher = 2, /obj/item/reagent_containers/food/condiment/flour = 4)
+ },
/turf/open/floor/plasteel/cafeteria,
/area/crew_quarters/kitchen)
"aRB" = (
@@ -18803,8 +19472,7 @@
pixel_y = 25
},
/obj/machinery/camera{
- c_tag = "Kitchen";
- dir = 2
+ c_tag = "Kitchen"
},
/obj/structure/closet/secure_closet/freezer/fridge,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
@@ -18875,9 +19543,9 @@
icon_state = "1-2"
},
/obj/machinery/power/apc{
+ areastring = "/area/library";
dir = 4;
name = "Library APC";
- areastring = "/area/library";
pixel_x = 24
},
/obj/structure/cable,
@@ -18920,7 +19588,7 @@
/area/library)
"aRR" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/turf/open/floor/plasteel/dark,
@@ -18945,13 +19613,13 @@
/area/hallway/secondary/exit)
"aRV" = (
/obj/machinery/power/apc{
+ areastring = "/area/storage/tools";
dir = 1;
name = "Auxiliary Tool Storage APC";
- areastring = "/area/storage/tools";
pixel_y = 24
},
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/structure/cable{
@@ -18990,8 +19658,7 @@
pixel_y = 28
},
/obj/machinery/camera{
- c_tag = "Auxiliary Tool Storage";
- dir = 2
+ c_tag = "Auxiliary Tool Storage"
},
/obj/structure/table,
/obj/item/stack/sheet/metal/fifty,
@@ -19012,7 +19679,7 @@
/area/storage/tools)
"aSd" = (
/obj/machinery/firealarm{
- dir = 2;
+ dir = 1;
pixel_y = -24
},
/turf/open/floor/plasteel,
@@ -19032,26 +19699,39 @@
/turf/open/floor/plating,
/area/maintenance/port)
"aSh" = (
-/obj/structure/closet/wardrobe/mixed,
-/obj/item/radio/intercom{
- name = "Station Intercom (General)";
- pixel_x = -27
+/obj/structure/table,
+/obj/item/storage/toolbox/artistic{
+ pixel_y = 10
+ },
+/obj/item/storage/toolbox/artistic,
+/obj/item/storage/toolbox/electrical{
+ pixel_y = -10
},
/turf/open/floor/plasteel,
-/area/crew_quarters/locker)
+/area/storage/art)
"aSi" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
-"aSk" = (
-/obj/structure/table,
-/obj/item/stack/cable_coil/random,
-/obj/item/stack/cable_coil/random,
-/obj/item/stack/cable_coil,
-/obj/item/paper_bin/construction,
-/obj/item/stack/cable_coil,
+"aSj" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/light,
/turf/open/floor/plasteel,
-/area/storage/art)
+/area/crew_quarters/dorms)
+"aSk" = (
+/obj/structure/table/wood,
+/obj/item/camera_film,
+/obj/item/camera_film,
+/obj/item/taperecorder,
+/obj/item/camera,
+/turf/open/floor/wood,
+/area/library)
"aSl" = (
/obj/machinery/light_switch{
pixel_y = 28
@@ -19067,36 +19747,50 @@
/turf/open/floor/plating,
/area/storage/emergency/port)
"aSo" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/trunk{
dir = 4
},
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
-"aSp" = (
-/obj/structure/chair/stool,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 9
- },
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
-"aSq" = (
-/obj/structure/chair{
+/obj/machinery/disposal/bin,
+/obj/effect/turf_decal/tile/neutral{
dir = 8
},
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
- },
+/obj/effect/turf_decal/tile/neutral,
+/obj/machinery/light,
/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
+/area/crew_quarters/dorms)
+"aSp" = (
+/obj/structure/toilet{
+ dir = 4
+ },
+/obj/structure/mirror{
+ pixel_y = 32
+ },
+/obj/structure/sink{
+ dir = 1;
+ pixel_y = 25
+ },
+/obj/machinery/button/door{
+ id = "Bath1";
+ name = "Door Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = 14;
+ pixel_y = 38;
+ specialfunctions = 4
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet)
+"aSq" = (
+/obj/machinery/door/airlock{
+ name = "Recharging Station"
+ },
+/turf/open/floor/plating,
+/area/maintenance/fore/secondary)
"aSr" = (
/turf/open/floor/plasteel,
/area/storage/tools)
@@ -19212,28 +19906,20 @@
/turf/open/floor/plasteel,
/area/crew_quarters/bar)
"aSG" = (
-/obj/structure/table/wood/poker,
-/obj/item/toy/cards/deck,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
+/obj/structure/fireplace,
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 23
},
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
+/turf/open/floor/plating,
+/area/maintenance/port)
"aSH" = (
-/obj/structure/chair/stool,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "1-2"
},
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
+/turf/open/space,
+/area/solar/starboard/aft)
"aSI" = (
/obj/machinery/door/airlock/public/glass{
name = "Kitchen";
@@ -19314,13 +20000,17 @@
/turf/open/floor/plasteel/dark,
/area/hydroponics)
"aSS" = (
-/obj/machinery/seed_extractor,
-/turf/open/floor/plasteel,
-/area/hydroponics)
+/obj/structure/lattice/catwalk,
+/obj/structure/cable,
+/turf/open/space,
+/area/solar/starboard/aft)
"aST" = (
-/obj/machinery/biogenerator,
-/turf/open/floor/plasteel,
-/area/hydroponics)
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/space,
+/area/solar/starboard/aft)
"aSU" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 1
@@ -19342,25 +20032,19 @@
/turf/open/floor/plasteel,
/area/storage/tools)
"aSX" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+/obj/machinery/vending/kink,
+/obj/structure/disposalpipe/segment{
dir = 4
},
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plating,
-/area/maintenance/port)
-"aSY" = (
-/obj/structure/table/reinforced,
-/obj/item/clothing/head/that{
- throwforce = 1
- },
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
- },
/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
+/area/crew_quarters/locker)
+"aSY" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/space,
+/area/solar/starboard/aft)
"aSZ" = (
/obj/effect/landmark/start/bartender,
/obj/effect/turf_decal/tile/bar,
@@ -19369,6 +20053,13 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/bar)
+"aTa" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/space,
+/area/solar/starboard/aft)
"aTb" = (
/obj/machinery/newscaster{
pixel_y = 32
@@ -19377,9 +20068,7 @@
/area/library)
"aTc" = (
/obj/machinery/door/window/northright{
- base_state = "right";
dir = 8;
- icon_state = "right";
name = "Library Desk Door";
req_access_txt = "37"
},
@@ -19475,6 +20164,20 @@
},
/turf/open/floor/plating,
/area/hallway/secondary/exit)
+"aTp" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/space,
+/area/solar/port/fore)
+"aTq" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/space,
+/area/solar/starboard/fore)
"aTr" = (
/obj/machinery/door/firedoor,
/obj/machinery/status_display{
@@ -19506,17 +20209,25 @@
/turf/open/floor/plating,
/area/maintenance/port)
"aTw" = (
-/obj/structure/closet/wardrobe/green,
-/obj/machinery/light{
- dir = 8
+/obj/structure/closet/wardrobe/mixed,
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_x = -27
},
+/obj/item/clothing/head/beret,
+/obj/item/clothing/head/beret,
+/obj/item/clothing/head/russobluecamohat,
+/obj/item/clothing/head/russobluecamohat,
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aTx" = (
-/obj/structure/chair/stool{
- pixel_y = 8
+/obj/machinery/firealarm{
+ pixel_y = 24
},
-/obj/effect/landmark/start/assistant,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/vending/games,
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aTy" = (
@@ -19524,45 +20235,71 @@
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aTz" = (
-/obj/structure/table,
-/turf/open/floor/plasteel,
-/area/crew_quarters/locker)
-"aTA" = (
-/obj/structure/table,
-/obj/item/storage/toolbox/mechanical{
- pixel_x = -2;
- pixel_y = -1
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/locker)
-"aTB" = (
/obj/structure/chair/stool{
pixel_y = 8
},
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
-"aTC" = (
-/obj/structure/table,
-/obj/item/storage/toolbox/mechanical{
- pixel_x = -2;
- pixel_y = -1
+"aTA" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
},
-/obj/structure/disposalpipe/segment,
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aTB" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/structure/window{
+ dir = 1
+ },
+/obj/structure/window{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aTC" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/window{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aTD" = (
-/obj/structure/closet/secure_closet/personal,
-/obj/machinery/airalarm{
- dir = 8;
- pixel_x = 24
+/obj/effect/turf_decal/tile/red{
+ dir = 1
},
-/obj/machinery/camera{
- c_tag = "Locker Room East";
- dir = 8
- },
-/obj/machinery/light{
+/obj/effect/turf_decal/tile/yellow{
dir = 4
},
+/obj/effect/turf_decal/tile/blue,
+/obj/structure/window{
+ dir = 1
+ },
+/obj/structure/window{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aTE" = (
@@ -19606,6 +20343,12 @@
/area/storage/emergency/port)
"aTL" = (
/obj/structure/table,
+/obj/item/storage/toolbox/artistic{
+ icon_state = "yellow";
+ item_state = "toolbox_yellow";
+ name = "Cable Toolbox";
+ pixel_y = 6
+ },
/obj/item/storage/toolbox/emergency,
/turf/open/floor/plasteel,
/area/storage/tools)
@@ -19615,10 +20358,15 @@
/turf/open/floor/plasteel/cafeteria,
/area/crew_quarters/kitchen)
"aTN" = (
-/obj/structure/table,
-/obj/item/kitchen/rollingpin,
-/turf/open/floor/plasteel/cafeteria,
-/area/crew_quarters/kitchen)
+/obj/machinery/vending/dinnerware{
+ contraband = list(/obj/item/reagent_containers/food/condiment/flour = 4);
+ desc = "This vendor is full of condiments to put on food.";
+ name = "\improper Condiments Vendor";
+ product_ads = "Get your sauces here!;No slave labour was used to make these products!;Nanotrasen Approved?!";
+ products = list(/obj/item/storage/bag/tray = 8, /obj/item/reagent_containers/food/drinks/drinkingglass = 10, /obj/item/storage/box/cups = 5, /obj/item/reagent_containers/food/condiment/pack/ketchup = 20, /obj/item/reagent_containers/food/condiment/pack/mustard = 20, /obj/item/reagent_containers/food/condiment/pack/hotsauce = 20, /obj/item/reagent_containers/food/condiment/pack/astrotame = 20, /obj/item/reagent_containers/food/condiment/saltshaker = 20, /obj/item/reagent_containers/food/condiment/peppermill = 20)
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"aTO" = (
/obj/structure/table,
/obj/item/book/manual/chef_recipes,
@@ -19738,28 +20486,19 @@
/turf/open/floor/plasteel,
/area/bridge)
"aUf" = (
-/obj/machinery/airalarm{
- dir = 4;
- pixel_x = -22
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "0-4"
},
-/obj/machinery/camera{
- c_tag = "Bar West";
- dir = 4
- },
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
+/turf/open/space,
+/area/solar/port/aft)
"aUg" = (
-/obj/structure/chair,
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
+/turf/open/space,
+/area/solar/port/aft)
"aUh" = (
/obj/structure/table/reinforced,
/obj/machinery/door/window/eastleft{
@@ -19784,15 +20523,28 @@
/turf/open/floor/plasteel/dark,
/area/hydroponics)
"aUj" = (
-/obj/machinery/vending/hydronutrients,
-/turf/open/floor/plasteel,
-/area/hydroponics)
-"aUk" = (
-/obj/machinery/vending/hydroseeds{
- slogan_delay = 700
+/obj/item/soap,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/light/small{
+ dir = 1;
+ light_color = "#ffc1c1"
},
-/turf/open/floor/plasteel,
-/area/hydroponics)
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/toilet)
+"aUk" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/machinery/camera{
+ c_tag = "VR Sleepers";
+ dir = 1
+ },
+/obj/machinery/light/small,
+/turf/open/floor/plasteel/white/side{
+ dir = 1
+ },
+/area/crew_quarters/fitness)
"aUl" = (
/obj/structure/chair/office/dark{
dir = 8
@@ -19817,39 +20569,71 @@
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aUp" = (
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/machinery/camera{
+ c_tag = "Locker Room East";
+ dir = 8
+ },
+/obj/machinery/light{
+ dir = 4
+ },
/obj/structure/table,
-/obj/item/clothing/head/soft/grey{
- pixel_x = -2;
- pixel_y = 3
+/obj/item/reagent_containers/rag/towel/random,
+/obj/item/razor,
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
+"aUq" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/locker)
-"aUq" = (
-/obj/structure/table,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+/obj/structure/window{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
dir = 4
},
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aUr" = (
-/obj/structure/chair/stool{
- pixel_y = 8
- },
-/obj/effect/landmark/start/assistant,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aUs" = (
-/obj/structure/table,
-/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aUt" = (
@@ -19859,12 +20643,27 @@
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aUu" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/window{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aUv" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 10
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
},
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
@@ -19911,10 +20710,17 @@
/turf/open/floor/wood,
/area/library)
"aUC" = (
-/obj/structure/chair/comfy/black,
-/obj/effect/landmark/start/assistant,
-/turf/open/floor/wood,
-/area/library)
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/obj/effect/landmark/start/mime,
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 4
+ },
+/area/crew_quarters/theatre)
"aUD" = (
/obj/structure/table/wood,
/obj/item/flashlight/lamp/green{
@@ -19966,6 +20772,15 @@
dir = 1
},
/area/chapel/main)
+"aUL" = (
+/obj/machinery/computer/arcade,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white/corner{
+ dir = 1
+ },
+/area/hallway/secondary/exit)
"aUM" = (
/obj/machinery/camera{
c_tag = "Arrivals Bay 2";
@@ -19984,11 +20799,29 @@
/turf/open/floor/wood,
/area/security/vacantoffice)
"aUP" = (
-/obj/machinery/airalarm{
- pixel_y = 23
+/obj/structure/toilet{
+ dir = 4
},
-/turf/open/floor/wood,
-/area/security/vacantoffice)
+/obj/structure/mirror{
+ pixel_y = 32
+ },
+/obj/structure/sink{
+ dir = 1;
+ pixel_y = 25
+ },
+/obj/machinery/button/door{
+ id = "Bath2";
+ name = "Door Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = 14;
+ pixel_y = 38;
+ specialfunctions = 4
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet)
"aUQ" = (
/obj/structure/table/wood,
/turf/open/floor/wood,
@@ -20012,18 +20845,29 @@
/turf/open/floor/plating,
/area/maintenance/port)
"aUU" = (
-/obj/structure/closet/wardrobe/grey,
-/obj/machinery/requests_console{
- department = "Locker Room";
- pixel_x = -32
+/obj/structure/closet/wardrobe/green,
+/obj/machinery/light{
+ dir = 8
},
+/obj/item/clothing/under/kilt,
+/obj/item/clothing/under/kilt,
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aUV" = (
-/obj/structure/chair/stool{
- pixel_y = 8
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/door/window/westright{
+ name = "Red Corner"
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
dir = 4
},
/turf/open/floor/plasteel,
@@ -20040,17 +20884,29 @@
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aUY" = (
-/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aUZ" = (
-/obj/structure/closet/secure_closet/personal,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 10
- },
+/obj/structure/table,
+/obj/item/clothing/gloves/boxing/yellow,
+/obj/item/clothing/gloves/boxing/green,
+/obj/item/clothing/gloves/boxing/blue,
+/obj/item/clothing/gloves/boxing/blue,
+/obj/item/clothing/gloves/boxing,
+/obj/item/clothing/gloves/boxing,
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aVa" = (
@@ -20128,9 +20984,9 @@
/area/bridge)
"aVh" = (
/obj/machinery/power/apc{
+ areastring = "/area/hallway/primary/fore";
dir = 8;
name = "Fore Primary Hallway APC";
- areastring = "/area/hallway/primary/fore";
pixel_x = -24
},
/obj/structure/cable{
@@ -20295,8 +21151,7 @@
/area/hallway/primary/central)
"aVv" = (
/obj/machinery/camera{
- c_tag = "Bridge East Entrance";
- dir = 2
+ c_tag = "Bridge East Entrance"
},
/obj/effect/turf_decal/tile/blue{
dir = 1
@@ -20307,40 +21162,42 @@
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"aVw" = (
-/obj/structure/table/wood/poker,
-/obj/item/clothing/mask/cigarette/cigar,
-/obj/item/toy/cards/deck,
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
+/obj/effect/landmark/carpspawn,
+/turf/open/space/basic,
+/area/space)
"aVx" = (
-/obj/machinery/holopad,
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "holoprivacy";
+ name = "Holodeck Shutters"
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/fitness)
"aVy" = (
-/obj/structure/table/reinforced,
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/table,
+/obj/item/storage/firstaid/regular{
+ pixel_y = 5
},
/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
+/area/crew_quarters/fitness)
"aVz" = (
/turf/open/floor/plasteel/cafeteria,
/area/crew_quarters/kitchen)
"aVA" = (
-/obj/structure/table/reinforced,
-/obj/machinery/door/firedoor,
-/obj/item/reagent_containers/food/snacks/pie/cream,
-/turf/open/floor/plasteel/cafeteria,
-/area/crew_quarters/kitchen)
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 4
+ },
+/area/crew_quarters/theatre)
"aVB" = (
/obj/structure/table,
/obj/item/reagent_containers/food/condiment/enzyme{
@@ -20360,15 +21217,18 @@
/turf/open/floor/plating,
/area/maintenance/port)
"aVD" = (
-/obj/structure/table,
-/obj/item/reagent_containers/food/condiment/saltshaker{
- pixel_x = -3
+/obj/machinery/door/airlock/maintenance{
+ name = "Theatre Maintenance";
+ req_access_txt = "46"
},
-/obj/item/reagent_containers/food/condiment/peppermill{
- pixel_x = 3
+/obj/structure/disposalpipe/segment{
+ dir = 4
},
-/turf/open/floor/plasteel/cafeteria,
-/area/crew_quarters/kitchen)
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/theatre)
"aVE" = (
/obj/structure/table,
/obj/item/storage/box/donkpockets{
@@ -20384,10 +21244,18 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/plasteel/cafeteria,
/area/crew_quarters/kitchen)
+"aVG" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/obj/structure/table,
+/obj/item/coin/gold,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
"aVH" = (
/obj/machinery/processor,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/turf/open/floor/plasteel/cafeteria,
@@ -20409,9 +21277,14 @@
/turf/open/floor/plasteel/dark,
/area/hydroponics)
"aVK" = (
-/obj/effect/landmark/start/botanist,
-/turf/open/floor/plasteel,
-/area/hydroponics)
+/obj/machinery/shower{
+ dir = 4
+ },
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/toilet)
"aVL" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -20454,10 +21327,9 @@
/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
"aVP" = (
-/obj/structure/table/wood,
-/obj/item/paper,
-/turf/open/floor/wood,
-/area/library)
+/obj/machinery/vending/autodrobe/all_access,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
"aVQ" = (
/obj/structure/chair/comfy/black{
dir = 8
@@ -20466,27 +21338,32 @@
/area/library)
"aVR" = (
/obj/structure/table/wood,
-/obj/item/pen/red,
-/obj/item/pen/blue{
- pixel_x = 5;
- pixel_y = 5
+/obj/item/paper_bin/bundlenatural{
+ pixel_x = 6;
+ pixel_y = 4
},
+/obj/item/paper_bin{
+ pixel_x = -6;
+ pixel_y = 4
+ },
+/obj/item/pen/fountain,
+/obj/item/pen/fourcolor,
/turf/open/floor/wood,
/area/library)
"aVS" = (
/obj/structure/table/wood,
-/obj/item/camera_film,
-/obj/item/camera_film,
+/obj/item/pen/red,
/turf/open/floor/wood,
/area/library)
"aVT" = (
/obj/structure/table/wood,
-/obj/item/paper_bin{
- pixel_x = 1;
- pixel_y = 9
+/obj/item/reagent_containers/food/drinks/bottle/whiskey{
+ pixel_x = 3
},
-/turf/open/floor/wood,
-/area/library)
+/obj/item/lighter,
+/obj/item/restraints/handcuffs,
+/turf/open/floor/carpet,
+/area/security/detectives_office)
"aVU" = (
/obj/structure/chair/stool,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
@@ -20587,6 +21464,7 @@
/area/chapel/main)
"aWh" = (
/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,
+/obj/item/beacon,
/turf/open/floor/plasteel,
/area/hallway/secondary/exit)
"aWi" = (
@@ -20629,6 +21507,14 @@
"aWn" = (
/obj/structure/closet/wardrobe/black,
/obj/item/clothing/shoes/jackboots,
+/obj/item/clothing/under/janimaid,
+/obj/item/clothing/under/janimaid,
+/obj/item/clothing/under/maid,
+/obj/item/clothing/under/maid,
+/obj/item/clothing/accessory/maidapron,
+/obj/item/clothing/accessory/maidapron,
+/obj/item/clothing/head/beret/black,
+/obj/item/clothing/head/beret/black,
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aWo" = (
@@ -20689,9 +21575,9 @@
/area/maintenance/port)
"aWw" = (
/obj/machinery/power/apc{
+ areastring = "/area/storage/art";
dir = 1;
name = "Art Storage";
- areastring = "/area/storage/art";
pixel_y = 24
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
@@ -20721,9 +21607,9 @@
/area/crew_quarters/toilet/locker)
"aWz" = (
/obj/machinery/power/apc{
+ areastring = "/area/storage/emergency/port";
dir = 1;
name = "Port Emergency Storage APC";
- areastring = "/area/storage/emergency/port";
pixel_y = 24
},
/obj/structure/cable{
@@ -20741,9 +21627,21 @@
/turf/open/floor/plating,
/area/maintenance/port)
"aWB" = (
-/obj/structure/reagent_dispensers/fueltank,
-/turf/open/floor/plating,
-/area/maintenance/port)
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
"aWC" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -20971,9 +21869,8 @@
/area/bridge)
"aWW" = (
/obj/machinery/power/apc/highcap/five_k{
- dir = 2;
- name = "Bridge APC";
areastring = "/area/bridge";
+ name = "Bridge APC";
pixel_y = -24
},
/obj/structure/cable,
@@ -21124,51 +22021,51 @@
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"aXi" = (
-/obj/machinery/light{
+/obj/machinery/vending/clothing,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"aXj" = (
+/obj/structure/reagent_dispensers/water_cooler,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/tile/neutral{
dir = 8
},
-/obj/machinery/computer/security/telescreen/entertainment{
- pixel_x = -31
- },
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
- },
+/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
-"aXj" = (
-/obj/structure/table/reinforced,
-/obj/item/lighter,
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
+/area/crew_quarters/dorms)
"aXk" = (
-/obj/structure/table/reinforced,
-/obj/machinery/computer/security/telescreen/entertainment{
- pixel_x = 32
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
},
-/obj/item/book/manual/wiki/barman_recipes,
-/obj/item/reagent_containers/rag,
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/machinery/door/window/eastleft{
+ name = "Blue Corner"
+ },
+/obj/effect/turf_decal/tile/blue{
dir = 1
},
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
+/area/crew_quarters/locker)
"aXl" = (
-/obj/machinery/door/window/southright{
- name = "Bar Door";
- req_one_access_txt = "25;28"
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "2-8"
},
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
+/obj/structure/disposalpipe/junction,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
},
+/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
+/area/crew_quarters/dorms)
"aXm" = (
/obj/effect/landmark/start/cook,
/turf/open/floor/plasteel/cafeteria,
@@ -21204,29 +22101,33 @@
/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
"aXr" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
},
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aXs" = (
-/obj/machinery/disposal/bin,
-/obj/structure/disposalpipe/trunk{
- dir = 4
+/obj/machinery/door/airlock/maintenance{
+ name = "Detective Maintenance";
+ req_access_txt = "4"
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/locker)
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
"aXt" = (
-/obj/effect/turf_decal/stripes/corner{
- dir = 2
+/obj/machinery/power/apc{
+ areastring = "/area/security/detectives_office";
+ dir = 4;
+ name = "Detective's Office APC";
+ pixel_x = 24
},
-/obj/item/twohanded/required/kirbyplants{
- icon_state = "plant-21";
- pixel_x = -3;
- pixel_y = 3
+/obj/structure/cable{
+ icon_state = "0-8"
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/locker)
+/turf/open/floor/plasteel/grimy,
+/area/security/detectives_office)
"aXu" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
@@ -21234,20 +22135,45 @@
/turf/open/floor/carpet,
/area/library)
"aXv" = (
-/obj/structure/disposalpipe/segment{
- dir = 9
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/window{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
},
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aXw" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 2
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
},
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aXx" = (
-/obj/structure/closet/secure_closet/personal,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aXy" = (
@@ -21268,10 +22194,19 @@
/turf/open/floor/carpet,
/area/chapel/main)
"aXA" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/effect/turf_decal/stripes/corner{
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/structure/window{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
dir = 1
},
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aXB" = (
@@ -21305,19 +22240,24 @@
/turf/closed/wall,
/area/quartermaster/warehouse)
"aXF" = (
-/obj/effect/landmark/event_spawn,
-/obj/effect/turf_decal/tile/neutral{
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
dir = 1
},
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
+/obj/item/paper_bin/bundlenatural{
+ pixel_x = 6;
+ pixel_y = 4
},
-/obj/effect/turf_decal/tile/neutral{
+/obj/item/pen/fountain{
+ pixel_x = 6
+ },
+/obj/effect/turf_decal/stripes/line{
dir = 8
},
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/fitness)
+/obj/item/pen/fourcolor,
+/turf/open/floor/plasteel,
+/area/crew_quarters/bar)
"aXG" = (
/obj/machinery/light{
dir = 4
@@ -21330,6 +22270,10 @@
},
/turf/open/floor/plasteel,
/area/hallway/secondary/exit)
+"aXH" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
"aXI" = (
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 4
@@ -21379,15 +22323,16 @@
/turf/open/floor/wood,
/area/security/vacantoffice)
"aXO" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 1
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
},
+/obj/effect/turf_decal/tile/neutral,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
+/area/crew_quarters/dorms)
"aXP" = (
/obj/machinery/portable_atmospherics/canister/air,
/turf/open/floor/plating,
@@ -21467,9 +22412,9 @@
/area/security/vacantoffice)
"aYa" = (
/obj/machinery/power/apc{
+ areastring = "/area/maintenance/port";
dir = 8;
name = "Port Maintenance APC";
- areastring = "/area/maintenance/port";
pixel_x = -27;
pixel_y = 2
},
@@ -21498,12 +22443,12 @@
/turf/open/floor/plating,
/area/maintenance/port)
"aYc" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 6
- },
/obj/structure/disposalpipe/segment{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
/turf/closed/wall,
/area/quartermaster/warehouse)
"aYd" = (
@@ -21535,19 +22480,17 @@
/area/construction)
"aYh" = (
/obj/structure/disposalpipe/segment{
- dir = 4
+ dir = 10
},
-/obj/machinery/light/small{
- dir = 4
+/obj/machinery/button/door{
+ id = "kanyewest";
+ name = "Privacy Shutters";
+ pixel_y = 24
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plating,
-/area/maintenance/port)
+/obj/structure/rack,
+/obj/item/storage/briefcase,
+/turf/open/floor/plasteel/grimy,
+/area/security/detectives_office)
"aYi" = (
/obj/structure/closet/secure_closet/detective,
/obj/structure/disposalpipe/segment{
@@ -21559,15 +22502,8 @@
/turf/open/floor/plasteel/grimy,
/area/security/detectives_office)
"aYj" = (
-/obj/structure/table/wood,
-/obj/item/taperecorder,
-/obj/structure/disposalpipe/segment{
- dir = 10
- },
-/obj/machinery/button/door{
- id = "kanyewest";
- name = "Privacy Shutters";
- pixel_y = 24
+/obj/machinery/light/small{
+ dir = 8
},
/turf/open/floor/plasteel/grimy,
/area/security/detectives_office)
@@ -21764,9 +22700,8 @@
/area/hallway/primary/central)
"aYF" = (
/obj/machinery/power/apc{
- dir = 2;
- name = "Central Hall APC";
areastring = "/area/hallway/primary/central";
+ name = "Central Hall APC";
pixel_y = -24
},
/obj/structure/cable,
@@ -21784,28 +22719,24 @@
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"aYH" = (
-/obj/structure/table,
-/obj/item/razor,
-/obj/structure/window{
- dir = 1
+/obj/structure/table/wood,
+/obj/item/paper/fluff{
+ info = "Renovation Notice
The bar layout for the station is very old. We've decided to give it a facelift after our partnership with IKEA Intergalactic?.
We added some sweet retro arcade machines and much more seating area. We removed the stage since it hasn't ever been used.You can run this place like a restaurant now that you have tables. Go whip up a menu with the Chef. You have a condiments table and your Requests Console has been moved so a noticeboard can be placed there. Take tickets from customers and pin them on the noticeboard for the Chef.We hope you like the new bar! b>";
+ name = "Renovation Notice - Bar";
+ pixel_x = -5;
+ pixel_y = 3
},
-/obj/effect/turf_decal/tile/blue{
+/obj/item/reagent_containers/food/drinks/shaker,
+/obj/item/stack/spacecash/c100,
+/obj/item/stack/spacecash/c100,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"aYI" = (
+/obj/structure/chair/comfy/black{
dir = 4
},
-/obj/effect/turf_decal/tile/blue{
- dir = 8
- },
-/turf/open/floor/plasteel/cafeteria,
-/area/crew_quarters/locker)
-"aYI" = (
-/obj/structure/chair/stool/bar,
-/obj/effect/landmark/start/assistant,
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
- },
/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
+/area/crew_quarters/dorms)
"aYJ" = (
/obj/machinery/light_switch{
pixel_y = -25
@@ -21853,9 +22784,9 @@
/turf/open/floor/plasteel,
/area/hydroponics)
"aYP" = (
-/obj/structure/reagent_dispensers/watertank/high,
+/obj/structure/table/wood/poker,
/turf/open/floor/plasteel,
-/area/hydroponics)
+/area/crew_quarters/dorms)
"aYQ" = (
/obj/machinery/hydroponics/constructable,
/obj/effect/turf_decal/tile/green{
@@ -21872,25 +22803,24 @@
/turf/open/floor/plasteel,
/area/hydroponics)
"aYS" = (
-/obj/structure/closet,
-/obj/item/clothing/under/suit_jacket/female{
- pixel_x = 3;
- pixel_y = 1
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1;
+ pixel_x = 5
},
-/obj/item/clothing/under/suit_jacket/really_black{
- pixel_x = -2
- },
-/obj/structure/window{
- dir = 1
- },
-/obj/effect/turf_decal/tile/blue{
+/obj/machinery/light/small{
dir = 4
},
-/obj/effect/turf_decal/tile/blue{
- dir = 8
+/obj/structure/table/glass,
+/obj/item/razor{
+ pixel_x = 2;
+ pixel_y = 3
},
-/turf/open/floor/plasteel/cafeteria,
-/area/crew_quarters/locker)
+/obj/item/reagent_containers/rag/towel/random,
+/obj/item/reagent_containers/rag/towel/random,
+/obj/item/reagent_containers/rag/towel/random,
+/obj/item/reagent_containers/rag/towel/random,
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet)
"aYT" = (
/obj/machinery/camera{
c_tag = "Hydroponics South";
@@ -21910,11 +22840,17 @@
/turf/open/floor/carpet,
/area/library)
"aYX" = (
-/obj/structure/window/reinforced{
- dir = 8
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/effect/turf_decal/stripes/line{
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
dir = 8
},
/turf/open/floor/plasteel,
@@ -21926,16 +22862,15 @@
/turf/open/floor/carpet,
/area/library)
"aYZ" = (
-/obj/structure/table/wood,
-/obj/item/storage/box/evidence,
-/obj/item/hand_labeler{
- pixel_x = 5
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
},
-/obj/structure/disposalpipe/segment{
- dir = 4
+/obj/structure/closet/crate/freezer,
+/obj/machinery/light/small{
+ dir = 8
},
-/turf/open/floor/plasteel/grimy,
-/area/security/detectives_office)
+/turf/open/floor/plasteel,
+/area/quartermaster/warehouse)
"aZa" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 1
@@ -21943,16 +22878,10 @@
/turf/open/floor/plasteel/grimy,
/area/security/detectives_office)
"aZb" = (
-/obj/machinery/camera{
- c_tag = "Bar South";
- dir = 1
- },
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
- },
+/obj/structure/table/wood/poker,
+/obj/item/toy/cards/deck,
/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
+/area/crew_quarters/dorms)
"aZc" = (
/obj/structure/disposalpipe/segment,
/obj/structure/cable{
@@ -22043,15 +22972,14 @@
/turf/open/floor/wood,
/area/security/vacantoffice)
"aZo" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 11
+/obj/structure/disposalpipe/segment{
+ dir = 4
},
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
- dir = 1
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
},
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet/locker)
+/turf/open/floor/plasteel/grimy,
+/area/security/detectives_office)
"aZp" = (
/obj/structure/rack,
/obj/item/electronics/apc,
@@ -22086,41 +23014,77 @@
/turf/open/floor/plating,
/area/maintenance/port)
"aZt" = (
-/obj/structure/toilet{
- pixel_y = 8
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1;
+ pixel_x = 5
},
-/obj/machinery/light/small{
- dir = 8
- },
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet/locker)
+/obj/machinery/light/small,
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet)
"aZu" = (
/obj/machinery/photocopier,
/turf/open/floor/wood,
/area/bridge/meeting_room)
"aZv" = (
-/obj/machinery/door/airlock{
- name = "Unit 1"
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
},
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet/locker)
-"aZw" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet/locker)
-"aZx" = (
-/obj/effect/turf_decal/tile/blue{
- dir = 4
- },
-/obj/effect/turf_decal/tile/blue{
+/obj/structure/table,
+/obj/machinery/chem_dispenser/drinks/beer{
dir = 8
},
-/turf/open/floor/plasteel/cafeteria,
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/bar)
+"aZw" = (
+/obj/effect/turf_decal/tile/bar,
+/obj/effect/turf_decal/tile/bar{
+ dir = 1
+ },
+/obj/machinery/requests_console{
+ department = "Bar";
+ departmentType = 2;
+ pixel_x = -30;
+ pixel_y = 45;
+ receive_ore_updates = 1
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/bar)
+"aZx" = (
+/obj/structure/closet{
+ name = "Suit Closet"
+ },
+/obj/item/clothing/under/suit_jacket/white,
+/obj/item/clothing/under/suit_jacket/tan,
+/obj/item/clothing/under/suit_jacket/red,
+/obj/item/clothing/under/suit_jacket/really_black,
+/obj/item/clothing/under/suit_jacket/navy,
+/obj/item/clothing/under/suit_jacket/green,
+/obj/item/clothing/under/suit_jacket/female,
+/obj/item/clothing/under/suit_jacket/checkered,
+/obj/item/clothing/under/suit_jacket/charcoal,
+/obj/item/clothing/under/suit_jacket/burgundy,
+/obj/item/clothing/under/suit_jacket,
+/obj/item/clothing/under/lawyer/black,
+/obj/item/clothing/under/lawyer/blacksuit,
+/obj/item/clothing/under/lawyer/blue,
+/obj/item/clothing/under/lawyer/bluesuit,
+/obj/item/clothing/under/lawyer/female,
+/obj/item/clothing/under/lawyer/purpsuit,
+/obj/item/clothing/under/lawyer/really_black,
+/obj/item/clothing/under/lawyer/red,
+/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"aZy" = (
/obj/machinery/camera{
- c_tag = "Conference Room";
- dir = 2
+ c_tag = "Conference Room"
},
/turf/open/floor/wood,
/area/bridge/meeting_room)
@@ -22281,53 +23245,50 @@
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"aZZ" = (
-/obj/machinery/vending/cigarette,
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
+/obj/structure/chair/comfy/brown{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
+"baa" = (
+/obj/structure/chair/comfy/brown{
dir = 1
},
/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
+/area/crew_quarters/dorms)
"bab" = (
-/obj/machinery/light,
-/obj/machinery/firealarm{
- dir = 1;
- pixel_y = -24
- },
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
+/obj/structure/chair/comfy/black{
dir = 1
},
/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
+/area/crew_quarters/dorms)
"bac" = (
-/obj/machinery/newscaster{
- pixel_y = -28
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
},
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
+/obj/effect/turf_decal/tile/neutral,
+/obj/structure/cable{
+ icon_state = "4-8"
},
/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
+/area/crew_quarters/dorms)
"bad" = (
-/obj/machinery/light,
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
+/obj/structure/rack,
+/obj/item/tank/internals/emergency_oxygen,
+/obj/item/tank/internals/emergency_oxygen,
+/obj/item/clothing/mask/breath,
+/obj/item/clothing/mask/breath,
+/obj/effect/decal/cleanable/cobweb,
+/obj/item/clothing/under/color/grey,
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
"bae" = (
-/obj/structure/noticeboard{
- pixel_y = -27
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/structure/disposalpipe/segment{
+ dir = 5
},
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
"baf" = (
/obj/structure/disposalpipe/segment{
dir = 9
@@ -22341,28 +23302,29 @@
/turf/open/floor/wood,
/area/crew_quarters/heads/captain)
"bag" = (
-/obj/machinery/airalarm{
- dir = 1;
- pixel_y = -22
+/obj/structure/disposalpipe/segment{
+ dir = 10
},
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
"bah" = (
-/obj/structure/extinguisher_cabinet{
- pixel_y = -30
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
},
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
},
-/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
"bai" = (
-/obj/machinery/light/small,
+/obj/machinery/camera{
+ c_tag = "Bar";
+ dir = 8
+ },
+/obj/structure/table,
+/obj/machinery/chem_dispenser/drinks{
+ dir = 8
+ },
/obj/effect/turf_decal/tile/bar,
/obj/effect/turf_decal/tile/bar{
dir = 1
@@ -22395,7 +23357,7 @@
pixel_y = 2
},
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/turf/open/floor/plasteel,
@@ -22458,10 +23420,9 @@
/turf/open/floor/wood,
/area/library)
"bat" = (
-/obj/structure/table/wood,
-/obj/item/pen,
-/turf/open/floor/wood,
-/area/library)
+/obj/structure/reagent_dispensers/keg/semen,
+/turf/open/floor/plating,
+/area/maintenance/bar)
"bau" = (
/obj/structure/chair/comfy/black{
dir = 4
@@ -22479,15 +23440,16 @@
/turf/open/floor/wood,
/area/library)
"baw" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 11
+/obj/structure/table/reinforced,
+/obj/machinery/door/firedoor,
+/obj/item/reagent_containers/food/snacks/pie/cream,
+/obj/structure/noticeboard{
+ desc = "Tickets for food orders will be placed here. The Chef should make the order and hand it to a waiter, waitress or just let the barkeep serve it.";
+ name = "Food Orders";
+ pixel_y = 26
},
-/obj/structure/mirror{
- pixel_x = 28
- },
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet/locker)
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
"bax" = (
/obj/structure/chair/comfy/black{
dir = 4
@@ -22526,9 +23488,9 @@
/area/hallway/secondary/exit)
"baD" = (
/obj/machinery/power/apc{
+ areastring = "/area/hallway/secondary/exit";
dir = 8;
name = "Escape Hallway APC";
- areastring = "/area/hallway/secondary/exit";
pixel_x = -25
},
/obj/structure/cable{
@@ -22601,9 +23563,9 @@
icon_state = "1-2"
},
/obj/machinery/power/apc{
+ areastring = "/area/crew_quarters/toilet/locker";
dir = 4;
name = "Locker Restrooms APC";
- areastring = "/area/crew_quarters/toilet/locker";
pixel_x = 27;
pixel_y = 2
},
@@ -22619,8 +23581,28 @@
/turf/open/floor/plating,
/area/maintenance/port)
"baO" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/turf/open/floor/plasteel/freezer,
+/obj/structure/toilet{
+ dir = 4
+ },
+/obj/structure/mirror{
+ pixel_y = 32
+ },
+/obj/structure/sink{
+ dir = 1;
+ pixel_y = 25
+ },
+/obj/machinery/button/door{
+ id = "LockerShitter1";
+ name = "Door Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = 14;
+ pixel_y = 38;
+ specialfunctions = 4
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/mineral/titanium/blue,
/area/crew_quarters/toilet/locker)
"baP" = (
/obj/structure/table/wood,
@@ -22811,24 +23793,28 @@
/turf/open/floor/plasteel/freezer,
/area/crew_quarters/toilet/locker)
"bbr" = (
-/obj/machinery/camera{
- c_tag = "Locker Room South";
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/window,
+/obj/structure/window{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"bbs" = (
-/obj/structure/window/reinforced{
- dir = 8
- },
-/obj/machinery/light,
+/obj/effect/landmark/event_spawn,
+/obj/effect/landmark/xmastree,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/locker)
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"bbt" = (
/obj/structure/closet/crate,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
@@ -22836,9 +23822,9 @@
/area/quartermaster/warehouse)
"bbu" = (
/obj/machinery/power/apc{
+ areastring = "/area/crew_quarters/heads/captain";
dir = 1;
name = "Captain's Office APC";
- areastring = "/area/crew_quarters/heads/captain";
pixel_y = 24
},
/obj/structure/cable{
@@ -22866,7 +23852,7 @@
/obj/machinery/door/airlock/public/glass{
name = "Diner"
},
-/turf/open/floor/plasteel,
+/turf/open/floor/plasteel/dark,
/area/crew_quarters/bar)
"bby" = (
/obj/structure/sign/barsign,
@@ -22878,14 +23864,14 @@
},
/area/hallway/primary/starboard)
"bbA" = (
-/obj/machinery/camera{
- c_tag = "Starboard Primary Hallway 2";
- dir = 2
+/obj/machinery/vending/assist,
+/obj/structure/sign/poster/contraband/grey_tide{
+ desc = "A poster promoting a regression to ape-like intelligence for Assistants, suggesting they break, loot and murder enough to make even a caveman blush.";
+ pixel_x = -32;
+ poster_item_desc = "Nanotrasen does not condone such messages. Please don't regress to ape-level intelligence as this poster suggests."
},
-/turf/open/floor/plasteel/white/corner{
- dir = 1
- },
-/area/hallway/primary/starboard)
+/turf/open/floor/plasteel,
+/area/storage/primary)
"bbB" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/public/glass{
@@ -22915,7 +23901,7 @@
/area/chapel/main)
"bbG" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/effect/turf_decal/tile/red{
@@ -22934,9 +23920,9 @@
/area/hallway/secondary/exit)
"bbI" = (
/obj/machinery/power/apc{
+ areastring = "/area/security/vacantoffice";
dir = 8;
name = "Vacant Office APC";
- areastring = "/area/security/vacantoffice";
pixel_x = -24
},
/obj/structure/cable{
@@ -22963,9 +23949,10 @@
/area/maintenance/port)
"bbL" = (
/obj/machinery/door/airlock{
- name = "Unit 2"
+ id_tag = "LockerShitter1";
+ name = "Unit 1"
},
-/turf/open/floor/plasteel/freezer,
+/turf/open/floor/mineral/titanium/blue,
/area/crew_quarters/toilet/locker)
"bbM" = (
/obj/item/book/manual/wiki/security_space_law,
@@ -22973,16 +23960,20 @@
/turf/open/floor/carpet,
/area/bridge/meeting_room)
"bbN" = (
-/obj/machinery/washing_machine,
-/obj/machinery/light,
-/obj/effect/turf_decal/tile/blue{
- dir = 4
+/obj/machinery/button/door{
+ id = "Bath3";
+ name = "Door Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = 14;
+ pixel_y = 38;
+ specialfunctions = 4
},
-/obj/effect/turf_decal/tile/blue{
+/obj/machinery/light/small{
dir = 8
},
-/turf/open/floor/plasteel/cafeteria,
-/area/crew_quarters/locker)
+/obj/machinery/recharge_station,
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet)
"bbO" = (
/obj/machinery/washing_machine,
/obj/effect/turf_decal/tile/blue{
@@ -23000,13 +23991,20 @@
/turf/open/floor/plasteel,
/area/quartermaster/warehouse)
"bbQ" = (
-/obj/structure/table/wood,
-/obj/item/reagent_containers/food/drinks/bottle/whiskey{
- pixel_x = 3
+/obj/item/paper_bin/bundlenatural{
+ pixel_x = 6;
+ pixel_y = 4
},
-/obj/item/lighter,
-/turf/open/floor/carpet,
-/area/security/detectives_office)
+/obj/item/paper_bin{
+ pixel_x = -6;
+ pixel_y = 4
+ },
+/obj/item/pen/fountain,
+/obj/structure/table,
+/obj/item/pen/fourcolor,
+/obj/item/stamp/hop,
+/turf/open/floor/plasteel,
+/area/crew_quarters/heads/hop)
"bbR" = (
/turf/open/floor/plasteel,
/area/quartermaster/office)
@@ -23023,15 +24021,22 @@
/turf/open/floor/carpet,
/area/security/detectives_office)
"bbU" = (
-/obj/machinery/door/airlock/maintenance{
- name = "Detective Maintenance";
- req_access_txt = "4"
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
},
-/turf/open/floor/plating,
-/area/maintenance/port)
+/obj/effect/turf_decal/tile/blue,
+/obj/structure/window,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
"bbV" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/turf/open/floor/plasteel,
@@ -23184,31 +24189,46 @@
/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
"bcr" = (
-/obj/machinery/camera{
- c_tag = "Starboard Primary Hallway";
- dir = 2
+/obj/machinery/smartfridge/disks{
+ pixel_y = 2
+ },
+/obj/structure/table,
+/obj/item/radio/intercom{
+ pixel_y = 25
},
/turf/open/floor/plasteel,
-/area/hallway/primary/starboard)
+/area/hydroponics)
"bcs" = (
/obj/machinery/firealarm{
- dir = 2;
pixel_y = 24
},
/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
"bct" = (
-/obj/effect/landmark/xeno_spawn,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = 11
+ },
+/obj/structure/mirror{
+ pixel_x = 28
+ },
/turf/open/floor/plasteel/freezer,
/area/crew_quarters/toilet/locker)
"bcu" = (
-/obj/machinery/door/airlock/maintenance{
- name = "Locker Room Maintenance";
- req_access_txt = "12"
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/turf/open/floor/plating,
-/area/maintenance/port)
+/obj/structure/window,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
"bcv" = (
/obj/structure/extinguisher_cabinet{
pixel_x = -5;
@@ -23217,13 +24237,26 @@
/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
"bcw" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/closed/wall,
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/structure/window,
+/obj/structure/window{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/plasteel,
/area/crew_quarters/locker)
"bcx" = (
/obj/machinery/camera{
- c_tag = "Starboard Primary Hallway 5";
- dir = 2
+ c_tag = "Starboard Primary Hallway 5"
},
/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
@@ -23296,12 +24329,13 @@
/turf/open/floor/plating,
/area/maintenance/port)
"bcJ" = (
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
- dir = 8
+/obj/machinery/door/airlock{
+ desc = "To keep the station within regulations, space IKEA requires one storage cupboard for their Nanotrasen partnership to continue.";
+ id_tag = "MaintDorm1";
+ name = "Furniture Storage"
},
-/obj/structure/closet/crate/freezer,
-/turf/open/floor/plasteel,
-/area/quartermaster/warehouse)
+/turf/open/floor/plasteel/dark,
+/area/maintenance/port)
"bcK" = (
/obj/structure/rack,
/obj/effect/spawner/lootdrop/maintenance,
@@ -23329,12 +24363,21 @@
/turf/open/floor/carpet,
/area/bridge/meeting_room)
"bcO" = (
-/obj/structure/sink{
- dir = 4;
- pixel_x = 11
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
},
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet/locker)
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/theatre)
"bcP" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 8
@@ -23354,21 +24397,20 @@
/turf/open/floor/plasteel,
/area/quartermaster/warehouse)
"bcS" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
+/obj/effect/landmark/blobstart,
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/toilet/locker)
+"bcT" = (
+/obj/structure/window/reinforced{
+ dir = 8
},
+/obj/machinery/light,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/machinery/light/small{
- dir = 4
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
},
/turf/open/floor/plasteel,
-/area/quartermaster/warehouse)
-"bcT" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/turf/closed/wall,
-/area/quartermaster/warehouse)
+/area/crew_quarters/locker)
"bcU" = (
/obj/structure/table/wood,
/turf/open/floor/wood,
@@ -23382,6 +24424,14 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/plasteel/grimy,
/area/security/detectives_office)
+"bcW" = (
+/obj/structure/table/wood,
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/turf/open/floor/wood,
+/area/security/vacantoffice)
"bcX" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/door/poddoor/preopen{
@@ -23413,18 +24463,14 @@
/area/bridge/meeting_room)
"bdb" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/turf/open/floor/plasteel/white/side{
- dir = 2
- },
+/turf/open/floor/plasteel/white/side,
/area/hallway/primary/starboard)
"bdc" = (
/obj/structure/extinguisher_cabinet{
pixel_y = -30
},
/obj/machinery/light,
-/turf/open/floor/plasteel/white/corner{
- dir = 2
- },
+/turf/open/floor/plasteel/white/corner,
/area/hallway/primary/starboard)
"bdd" = (
/obj/machinery/vending/cola/random,
@@ -23658,11 +24704,32 @@
/turf/open/floor/plating,
/area/maintenance/port)
"bdE" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/obj/structure/closet/crate/wooden/toy,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
dir = 8
},
-/turf/open/floor/plasteel/grimy,
-/area/security/detectives_office)
+/obj/structure/sign/poster/contraband/clown{
+ pixel_y = -32
+ },
+/obj/structure/sign/poster/contraband/clown{
+ pixel_y = -32
+ },
+/obj/structure/sign/poster/contraband/clown{
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/theatre)
"bdF" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 4
@@ -23686,8 +24753,15 @@
/turf/open/floor/carpet,
/area/bridge/meeting_room)
"bdJ" = (
-/obj/machinery/door/airlock{
- name = "Unit 3"
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = 11
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/structure/mirror{
+ pixel_x = 28
},
/turf/open/floor/plasteel/freezer,
/area/crew_quarters/toilet/locker)
@@ -23699,15 +24773,20 @@
/turf/open/floor/carpet,
/area/bridge/meeting_room)
"bdL" = (
-/obj/effect/landmark/blobstart,
-/obj/item/clothing/suit/ianshirt,
-/obj/structure/closet,
-/turf/open/floor/plating,
-/area/maintenance/port)
+/obj/machinery/camera{
+ c_tag = "Locker Room South";
+ dir = 8
+ },
+/obj/structure/closet/secure_closet/personal,
+/turf/open/floor/plasteel,
+/area/crew_quarters/locker)
"bdM" = (
-/obj/item/latexballon,
-/turf/open/floor/plating,
-/area/maintenance/port)
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/warehouse)
"bdN" = (
/obj/machinery/door/airlock/medical{
name = "Morgue";
@@ -23755,9 +24834,9 @@
/area/quartermaster/warehouse)
"bdT" = (
/obj/machinery/power/apc{
+ areastring = "/area/maintenance/disposal";
dir = 8;
name = "Disposal APC";
- areastring = "/area/maintenance/disposal";
pixel_x = -24
},
/obj/structure/cable{
@@ -23772,13 +24851,39 @@
/obj/structure/closet/crate/medical,
/turf/open/floor/plasteel,
/area/quartermaster/warehouse)
+"bdV" = (
+/obj/structure/toilet{
+ dir = 4
+ },
+/obj/structure/mirror{
+ pixel_y = 32
+ },
+/obj/structure/sink{
+ dir = 1;
+ pixel_y = 25
+ },
+/obj/machinery/button/door{
+ id = "LockerShitter2";
+ name = "Door Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = 14;
+ pixel_y = 38;
+ specialfunctions = 4
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet/locker)
"bdW" = (
-/obj/item/clothing/gloves/color/rainbow,
-/obj/item/clothing/head/soft/rainbow,
-/obj/item/clothing/shoes/sneakers/rainbow,
-/obj/item/clothing/under/color/rainbow,
-/turf/open/floor/plating,
-/area/maintenance/port)
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/warehouse)
"bdX" = (
/obj/item/storage/fancy/donut_box,
/obj/structure/table,
@@ -23838,9 +24943,8 @@
/area/ai_monitored/turret_protected/ai_upload)
"bed" = (
/obj/machinery/power/apc/highcap/five_k{
- dir = 2;
- name = "Upload APC";
areastring = "/area/ai_monitored/turret_protected/ai_upload";
+ name = "Upload APC";
pixel_y = -24
},
/obj/structure/cable,
@@ -23874,9 +24978,7 @@
/obj/item/aiModule/supplied/oxygen,
/obj/item/aiModule/zeroth/oneHuman,
/obj/machinery/door/window{
- base_state = "left";
dir = 8;
- icon_state = "left";
name = "High-Risk Modules";
req_access_txt = "20"
},
@@ -23994,12 +25096,12 @@
/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
"bev" = (
-/obj/machinery/light,
-/obj/effect/turf_decal/tile/blue{
- dir = 8
+/obj/structure/chair/stool{
+ pixel_y = 8
},
-/turf/open/floor/plasteel,
-/area/hallway/primary/starboard)
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
"bew" = (
/obj/structure/cable{
icon_state = "2-4"
@@ -24090,9 +25192,7 @@
/area/quartermaster/sorting)
"beG" = (
/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/tile/red{
- dir = 2
- },
+/obj/effect/turf_decal/tile/red,
/turf/open/floor/plasteel,
/area/hallway/secondary/exit)
"beH" = (
@@ -24227,7 +25327,7 @@
layer = 2.9
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/structure/table/reinforced,
@@ -24261,14 +25361,17 @@
/area/medical/morgue)
"beZ" = (
/obj/machinery/mineral/stacking_unit_console{
- dir = 2;
machinedir = 8
},
/turf/closed/wall,
/area/maintenance/disposal)
"bfa" = (
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet/locker)
+/obj/structure/chair/sofa/left{
+ dir = 1
+ },
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"bfb" = (
/obj/structure/sign/warning/vacuum/external{
pixel_y = 32
@@ -24281,9 +25384,9 @@
/area/chapel/main)
"bfc" = (
/obj/machinery/power/apc{
+ areastring = "/area/crew_quarters/locker";
dir = 1;
name = "Locker Room APC";
- areastring = "/area/crew_quarters/locker";
pixel_y = 24
},
/obj/structure/cable{
@@ -24302,9 +25405,17 @@
/turf/open/floor/plating,
/area/maintenance/port)
"bfe" = (
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
-/turf/open/floor/plating,
-/area/maintenance/port)
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/structure/window{
+ dir = 1
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/locker)
"bff" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 9
@@ -24346,9 +25457,8 @@
dir = 9
},
/obj/machinery/power/apc{
- dir = 2;
- name = "Cargo Bay APC";
areastring = "/area/quartermaster/storage";
+ name = "Cargo Bay APC";
pixel_x = 1;
pixel_y = -24
},
@@ -24534,9 +25644,8 @@
/area/hallway/primary/starboard)
"bfP" = (
/obj/machinery/power/apc{
- dir = 2;
- name = "Starboard Primary Hallway APC";
areastring = "/area/hallway/primary/starboard";
+ name = "Starboard Primary Hallway APC";
pixel_y = -24
},
/obj/structure/cable,
@@ -24684,13 +25793,17 @@
/turf/open/floor/plasteel,
/area/hallway/secondary/entry)
"bgi" = (
-/obj/machinery/camera{
- c_tag = "Arrivals Bay 3 & 4";
- dir = 1
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/sign/poster/contraband/space_up{
+ pixel_y = -32
},
-/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
-/area/hallway/secondary/entry)
+/area/hallway/primary/central)
"bgj" = (
/obj/machinery/conveyor{
dir = 8;
@@ -24705,6 +25818,13 @@
},
/turf/open/floor/plating,
/area/maintenance/disposal)
+"bgl" = (
+/obj/machinery/door/airlock{
+ id_tag = "LockerShitter2";
+ name = "Unit 2"
+ },
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet/locker)
"bgm" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 10
@@ -24726,9 +25846,9 @@
icon_state = "1-2"
},
/obj/machinery/power/apc{
+ areastring = "/area/science/robotics/mechbay";
dir = 4;
name = "Mech Bay APC";
- areastring = "/area/science/robotics/mechbay";
pixel_x = 26
},
/obj/structure/cable{
@@ -24755,18 +25875,16 @@
/turf/open/floor/plating,
/area/maintenance/port)
"bgr" = (
-/obj/machinery/door/airlock{
- name = "Unit 4"
+/obj/machinery/camera{
+ c_tag = "Locker Room Toilets";
+ dir = 8
},
/turf/open/floor/plasteel/freezer,
/area/crew_quarters/toilet/locker)
"bgs" = (
-/obj/machinery/airalarm{
- dir = 1;
- pixel_y = -22
- },
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet/locker)
+/obj/item/chair/wood,
+/turf/open/floor/plating,
+/area/maintenance/port)
"bgt" = (
/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating,
@@ -24796,6 +25914,11 @@
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
/turf/open/floor/plating,
/area/maintenance/port)
+"bgx" = (
+/obj/structure/closet/wardrobe/cargotech,
+/obj/item/radio/headset/headset_cargo,
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
"bgy" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 9
@@ -24989,16 +26112,16 @@
/area/crew_quarters/heads/captain)
"bgY" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"bgZ" = (
/obj/machinery/power/apc{
+ areastring = "/area/medical/chemistry";
dir = 1;
name = "Chemistry APC";
- areastring = "/area/medical/chemistry";
pixel_y = 24
},
/obj/structure/cable{
@@ -25022,11 +26145,9 @@
/area/medical/chemistry)
"bhc" = (
/obj/machinery/camera{
- c_tag = "Chemistry";
- dir = 2
+ c_tag = "Chemistry"
},
/obj/machinery/firealarm{
- dir = 2;
pixel_y = 24
},
/obj/machinery/chem_heater,
@@ -25068,8 +26189,7 @@
/area/security/checkpoint/medical)
"bhj" = (
/obj/machinery/camera{
- c_tag = "Security Post - Medbay";
- dir = 2
+ c_tag = "Security Post - Medbay"
},
/obj/machinery/requests_console{
department = "Security";
@@ -25146,9 +26266,9 @@
/area/medical/morgue)
"bhp" = (
/obj/machinery/power/apc{
+ areastring = "/area/medical/morgue";
dir = 1;
name = "Morgue APC";
- areastring = "/area/medical/morgue";
pixel_y = 24
},
/obj/structure/cable{
@@ -25358,6 +26478,11 @@
},
/turf/open/floor/plating,
/area/maintenance/disposal)
+"bhK" = (
+/obj/structure/table/wood/fancy/royalblue,
+/obj/item/crowbar/red,
+/turf/open/floor/plating,
+/area/maintenance/port)
"bhL" = (
/obj/machinery/mineral/stacking_machine{
input_dir = 1;
@@ -25387,12 +26512,32 @@
},
/turf/open/floor/plating,
/area/maintenance/port)
-"bhQ" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
+"bhP" = (
+/obj/structure/closet/crate,
+/obj/item/stack/sheet/mineral/wood/fifty{
+ amount = 20
},
-/turf/closed/wall,
-/area/crew_quarters/toilet/locker)
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bhQ" = (
+/obj/structure/closet,
+/obj/item/stack/tile/carpet/royalblue{
+ amount = 24
+ },
+/obj/item/stack/tile/carpet/green{
+ amount = 24
+ },
+/obj/item/stack/tile/carpet/purple{
+ amount = 24
+ },
+/obj/item/stack/tile/carpet/orange{
+ amount = 24
+ },
+/obj/item/stack/tile/wood{
+ amount = 24
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
"bhR" = (
/obj/structure/grille,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
@@ -25453,7 +26598,6 @@
/area/quartermaster/storage)
"bhZ" = (
/obj/machinery/door/window/eastleft{
- dir = 4;
icon_state = "right";
name = "Incoming Mail";
req_access_txt = "50"
@@ -25475,8 +26619,6 @@
dir = 8
},
/obj/item/radio/intercom{
- freerange = 0;
- frequency = 1459;
name = "Station Intercom (General)";
pixel_x = 29
},
@@ -25630,9 +26772,16 @@
/turf/open/floor/plasteel/white,
/area/medical/chemistry)
"bit" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on,
-/turf/open/floor/plasteel/white,
-/area/medical/medbay/central)
+/obj/machinery/light,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/structure/bedsheetbin/color,
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/locker)
"biu" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel/white,
@@ -25770,6 +26919,19 @@
"biL" = (
/turf/open/floor/plasteel/white,
/area/science/robotics/lab)
+"biM" = (
+/obj/machinery/button/door{
+ desc = "Alright, GAMER! Want to take your PWRGAME addiction to the MAX? Just smash this button with your chubby chetto encrusted hands an- oh, you broke the switch. Good job, idiot.";
+ id = "RIPFUN";
+ name = "Powerful Gamer Toggle";
+ normaldoorcontrol = 1;
+ pixel_x = -24;
+ pixel_y = 7;
+ specialfunctions = 4
+ },
+/obj/structure/table_frame/wood,
+/turf/open/floor/plating,
+/area/maintenance/port)
"biN" = (
/obj/effect/turf_decal/tile/red{
dir = 1
@@ -25782,11 +26944,9 @@
"biO" = (
/obj/machinery/camera{
c_tag = "Robotics Lab";
- dir = 2;
network = list("ss13","rd")
},
/obj/machinery/button/door{
- dir = 2;
id = "robotics";
name = "Shutters Control Button";
pixel_x = 6;
@@ -25833,8 +26993,7 @@
/area/science/research)
"biS" = (
/obj/machinery/camera{
- c_tag = "Research Division Access";
- dir = 2
+ c_tag = "Research Division Access"
},
/obj/structure/sink{
dir = 4;
@@ -25880,12 +27039,10 @@
"biX" = (
/obj/machinery/camera{
c_tag = "Research and Development";
- dir = 2;
network = list("ss13","rd");
pixel_x = 22
},
/obj/machinery/button/door{
- dir = 2;
id = "rnd";
name = "Shutters Control Button";
pixel_x = -6;
@@ -25905,6 +27062,10 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plating,
/area/maintenance/starboard)
+"biZ" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plating,
+/area/maintenance/port)
"bja" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -26136,6 +27297,10 @@
/obj/structure/closet/wardrobe/black,
/turf/open/floor/plating,
/area/maintenance/central)
+"bjD" = (
+/obj/structure/bed,
+/turf/open/floor/plating,
+/area/maintenance/port)
"bjE" = (
/obj/machinery/airalarm{
dir = 4;
@@ -26271,9 +27436,7 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 6
},
-/obj/effect/turf_decal/tile/blue{
- dir = 2
- },
+/obj/effect/turf_decal/tile/blue,
/turf/open/floor/plasteel/white,
/area/medical/medbay/central)
"bjV" = (
@@ -26286,6 +27449,11 @@
},
/turf/open/floor/plasteel/white,
/area/medical/medbay/central)
+"bjW" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/structure/table/wood/fancy/purple,
+/turf/open/floor/plating,
+/area/maintenance/port)
"bjX" = (
/obj/structure/table,
/obj/machinery/recharger{
@@ -26330,8 +27498,8 @@
"bkb" = (
/obj/machinery/camera{
c_tag = "Medbay Morgue";
- network = list("ss13","medbay");
- dir = 8
+ dir = 8;
+ network = list("ss13","medbay")
},
/obj/machinery/airalarm{
dir = 8;
@@ -26347,10 +27515,23 @@
/obj/machinery/portable_atmospherics/canister/air,
/turf/open/floor/plating,
/area/storage/emergency/starboard)
+"bke" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/junction/flip,
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
"bkf" = (
/obj/structure/reagent_dispensers/watertank,
/turf/open/floor/plating,
/area/storage/emergency/starboard)
+"bkg" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/maintenance/port)
"bkh" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/circuit,
@@ -26375,7 +27556,6 @@
"bkj" = (
/obj/structure/closet/emcloset,
/obj/machinery/airalarm{
- dir = 2;
pixel_y = 24
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
@@ -26391,6 +27571,22 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/plasteel/white,
/area/science/robotics/lab)
+"bkl" = (
+/obj/effect/turf_decal/tile/blue{
+ alpha = 255
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ alpha = 255;
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
"bkm" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 10
@@ -26711,9 +27907,9 @@
/area/maintenance/central)
"bkX" = (
/obj/machinery/power/apc{
+ areastring = "/area/bridge/meeting_room";
dir = 4;
name = "Conference Room APC";
- areastring = "/area/bridge/meeting_room";
pixel_x = 24
},
/obj/structure/cable{
@@ -26870,8 +28066,8 @@
/obj/structure/table/reinforced,
/obj/machinery/camera{
c_tag = "Medbay Foyer";
- network = list("ss13","medbay");
- dir = 8
+ dir = 8;
+ network = list("ss13","medbay")
},
/obj/machinery/cell_charger,
/turf/open/floor/plasteel/white,
@@ -26884,9 +28080,9 @@
icon_state = "4-8"
},
/obj/machinery/power/apc{
+ areastring = "/area/storage/emergency/starboard";
dir = 1;
name = "Starboard Emergency Storage APC";
- areastring = "/area/storage/emergency/starboard";
pixel_y = 24
},
/obj/structure/cable{
@@ -26899,9 +28095,9 @@
/area/maintenance/department/medical/morgue)
"blp" = (
/obj/machinery/power/apc{
+ areastring = "/area/security/checkpoint/medical";
dir = 8;
name = "Medbay Security APC";
- areastring = "/area/security/checkpoint/medical";
pixel_x = -25
},
/obj/structure/cable{
@@ -26948,12 +28144,9 @@
/turf/open/floor/plasteel,
/area/science/robotics/mechbay)
"blt" = (
-/obj/machinery/recharge_station,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/science/robotics/mechbay)
+/obj/structure/sign/poster/contraband/tools,
+/turf/closed/wall,
+/area/storage/primary)
"blu" = (
/obj/machinery/computer/mech_bay_power_console{
dir = 4
@@ -27050,8 +28243,6 @@
/obj/item/healthanalyzer,
/obj/item/healthanalyzer,
/obj/item/radio/intercom{
- freerange = 0;
- frequency = 1459;
name = "Station Intercom (General)";
pixel_x = 29
},
@@ -27113,6 +28304,17 @@
/obj/effect/landmark/start/roboticist,
/turf/open/floor/plasteel,
/area/science/robotics/lab)
+"blN" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ alpha = 255;
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
"blO" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plating,
@@ -27210,7 +28412,7 @@
},
/obj/item/stack/cable_coil,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/turf/open/floor/plasteel/white,
@@ -27305,6 +28507,16 @@
},
/turf/open/floor/plasteel,
/area/quartermaster/sorting)
+"bml" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plating,
+/area/maintenance/port)
"bmm" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -27487,7 +28699,6 @@
"bmJ" = (
/obj/item/radio/intercom{
broadcasting = 1;
- freerange = 0;
frequency = 1485;
listening = 0;
name = "Station Intercom (Medbay)";
@@ -27495,7 +28706,7 @@
},
/obj/machinery/light,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/turf/open/floor/plasteel/white,
@@ -27646,6 +28857,38 @@
},
/turf/closed/wall/r_wall,
/area/science/robotics/mechbay)
+"bnd" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ alpha = 255;
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
+"bne" = (
+/obj/machinery/button/door{
+ desc = "A remote control switch for the genetics doors.";
+ id = "GeneticsDoor";
+ name = "Genetics Exit Button";
+ normaldoorcontrol = 1;
+ pixel_x = 8;
+ pixel_y = 24
+ },
+/obj/structure/table,
+/obj/item/book/manual/wiki/medical_cloning{
+ pixel_y = 6
+ },
+/obj/item/storage/box/rxglasses{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/box/bodybags,
+/obj/item/pen,
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
"bnf" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 10
@@ -27702,7 +28945,7 @@
/obj/item/assembly/flash/handheld,
/obj/item/assembly/flash/handheld,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/turf/open/floor/plasteel,
@@ -27734,9 +28977,9 @@
},
/obj/item/stock_parts/scanning_module,
/obj/machinery/power/apc{
+ areastring = "/area/science/lab";
dir = 4;
name = "Research Lab APC";
- areastring = "/area/science/lab";
pixel_x = 26
},
/obj/structure/cable{
@@ -27782,8 +29025,12 @@
/turf/closed/wall,
/area/maintenance/starboard)
"bnt" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
+/obj/structure/rack,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 3;
+ name = "3maintenance loot spawner"
},
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
@@ -27949,9 +29196,7 @@
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"bnN" = (
-/obj/effect/turf_decal/tile/red{
- dir = 2
- },
+/obj/effect/turf_decal/tile/red,
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"bnO" = (
@@ -28079,10 +29324,15 @@
/turf/open/floor/carpet,
/area/crew_quarters/heads/captain)
"bnZ" = (
-/obj/structure/table/wood,
-/obj/item/flashlight/lamp/green,
-/turf/open/floor/carpet,
-/area/crew_quarters/heads/captain)
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=HOP";
+ location = "CHE"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
"boa" = (
/obj/structure/toilet{
dir = 4
@@ -28173,7 +29423,6 @@
pixel_y = -22
},
/obj/machinery/requests_console{
- announcementConsole = 0;
department = "Medbay";
departmentType = 1;
name = "Medbay RC";
@@ -28224,6 +29473,12 @@
},
/turf/open/floor/plasteel/white,
/area/medical/medbay/central)
+"bop" = (
+/obj/structure/closet/wardrobe/white,
+/obj/item/clothing/under/kilt,
+/obj/item/clothing/under/janimaid,
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
"boq" = (
/obj/structure/bed/roller,
/obj/effect/turf_decal/tile/blue,
@@ -28242,15 +29497,25 @@
"bos" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/power/apc{
+ areastring = "/area/science/robotics/lab";
dir = 8;
name = "Robotics Lab APC";
- areastring = "/area/science/robotics/lab";
pixel_x = -25
},
/obj/structure/cable,
/obj/structure/disposalpipe/segment,
/turf/open/floor/plasteel/white,
/area/science/robotics/lab)
+"bot" = (
+/obj/structure/closet/wardrobe/grey,
+/obj/item/clothing/head/beret/black,
+/obj/item/clothing/head/beret/black,
+/obj/item/clothing/head/beret,
+/obj/item/clothing/head/beret,
+/obj/item/clothing/under/assistantformal,
+/obj/item/clothing/under/skirt/black,
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
"bou" = (
/turf/open/floor/plasteel,
/area/science/robotics/lab)
@@ -28405,9 +29670,7 @@
/turf/open/floor/plasteel/dark,
/area/science/robotics/lab)
"boM" = (
-/turf/open/floor/plasteel/white/corner{
- dir = 2
- },
+/turf/open/floor/plasteel/white/corner,
/area/science/research)
"boN" = (
/obj/effect/turf_decal/tile/brown{
@@ -28417,9 +29680,7 @@
/area/quartermaster/office)
"boO" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/turf/open/floor/plasteel/white/side{
- dir = 2
- },
+/turf/open/floor/plasteel/white/side,
/area/science/research)
"boP" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
@@ -28495,20 +29756,16 @@
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"boY" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
+/obj/machinery/vending/cola/black,
+/obj/structure/sign/poster/contraband/sun_kist{
+ pixel_y = 32
},
-/obj/effect/turf_decal/tile/red,
-/obj/effect/turf_decal/tile/red{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/central)
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"boZ" = (
/obj/structure/table/reinforced,
/obj/machinery/door/window/northleft{
dir = 8;
- icon_state = "left";
name = "Reception Window"
},
/obj/machinery/door/window/brigdoor{
@@ -28516,7 +29773,6 @@
dir = 4;
icon_state = "rightsecure";
name = "Head of Personnel's Desk";
- req_access = null;
req_access_txt = "57"
},
/obj/structure/disposalpipe/segment{
@@ -28581,7 +29837,7 @@
"bpg" = (
/obj/structure/chair/office/light,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/effect/turf_decal/stripes/line{
@@ -28622,13 +29878,18 @@
/turf/open/floor/carpet,
/area/crew_quarters/heads/captain)
"bpk" = (
-/obj/structure/closet/secure_closet/captains,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 4
+/obj/machinery/camera{
+ c_tag = "Genetics Cloning";
+ dir = 4;
+ network = list("ss13","medbay")
},
-/turf/open/floor/carpet,
-/area/crew_quarters/heads/captain)
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/obj/structure/closet/secure_closet/personal/patient,
+/turf/open/floor/plasteel/white,
+/area/medical/genetics)
"bpl" = (
/obj/structure/table/wood,
/obj/item/storage/box/matches,
@@ -28804,9 +30065,9 @@
/area/medical/chemistry)
"bpG" = (
/obj/machinery/power/apc{
+ areastring = "/area/medical/genetics";
dir = 1;
name = "Genetics APC";
- areastring = "/area/medical/genetics";
pixel_y = 24
},
/obj/structure/cable{
@@ -28820,7 +30081,6 @@
/obj/item/radio/headset/headset_medsci,
/obj/machinery/requests_console{
department = "Genetics";
- departmentType = 0;
name = "Genetics Requests Console";
pixel_y = 30
},
@@ -28952,7 +30212,7 @@
/area/science/robotics/lab)
"bpX" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
@@ -28985,6 +30245,12 @@
},
/turf/open/floor/plasteel/dark,
/area/science/robotics/lab)
+"bqb" = (
+/obj/structure/shuttle/engine/propulsion{
+ dir = 1
+ },
+/turf/open/space/basic,
+/area/space/nearstation)
"bqc" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
/turf/open/floor/plasteel/white,
@@ -29186,16 +30452,14 @@
icon_state = "0-4"
},
/obj/machinery/power/apc{
+ areastring = "/area/engine/gravity_generator";
dir = 8;
name = "Gravity Generator APC";
- areastring = "/area/engine/gravity_generator";
pixel_x = -25;
pixel_y = 1
},
/obj/structure/table,
-/obj/item/paper/guides/jobs/engi/gravity_gen{
- layer = 3
- },
+/obj/item/paper/guides/jobs/engi/gravity_gen,
/obj/item/pen/blue,
/obj/item/radio/intercom{
name = "Station Intercom (General)";
@@ -29351,8 +30615,7 @@
},
/obj/machinery/camera{
c_tag = "Medbay West";
- network = list("ss13","medbay");
- dir = 2
+ network = list("ss13","medbay")
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -29457,9 +30720,7 @@
/obj/structure/cable{
icon_state = "1-8"
},
-/obj/effect/turf_decal/tile/blue{
- dir = 2
- },
+/obj/effect/turf_decal/tile/blue,
/turf/open/floor/plasteel/white,
/area/medical/medbay/central)
"bri" = (
@@ -29490,6 +30751,12 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on,
/turf/open/floor/plasteel/white,
/area/medical/genetics)
+"brl" = (
+/obj/structure/shuttle/engine/heater{
+ dir = 1
+ },
+/turf/closed/wall/mineral/titanium,
+/area/space/nearstation)
"brm" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -29536,7 +30803,6 @@
"brq" = (
/obj/effect/turf_decal/stripes/line,
/obj/machinery/button/door{
- dir = 2;
id = "robotics2";
name = "Shutters Control Button";
pixel_x = 24;
@@ -29577,7 +30843,6 @@
/area/science/research)
"bru" = (
/obj/machinery/firealarm{
- dir = 2;
pixel_y = 24
},
/obj/structure/disposalpipe/segment{
@@ -29644,29 +30909,22 @@
/obj/item/pen,
/obj/machinery/camera{
c_tag = "Experimentor Lab";
- dir = 2;
network = list("ss13","rd")
},
/obj/item/hand_labeler,
/obj/item/stack/packageWrap,
-/turf/open/floor/plasteel/white/side{
- dir = 2
- },
+/turf/open/floor/plasteel/white/side,
/area/science/explab)
"brA" = (
/obj/structure/table,
/obj/item/paper_bin{
pixel_y = 6
},
-/turf/open/floor/plasteel/white/corner{
- dir = 2
- },
+/turf/open/floor/plasteel/white/corner,
/area/science/explab)
"brB" = (
/obj/structure/closet/l3closet/scientist,
-/turf/open/floor/plasteel/white/side{
- dir = 2
- },
+/turf/open/floor/plasteel/white/side,
/area/science/explab)
"brC" = (
/obj/structure/table,
@@ -29676,9 +30934,7 @@
pixel_y = 23
},
/obj/item/radio/off,
-/turf/open/floor/plasteel/white/side{
- dir = 2
- },
+/turf/open/floor/plasteel/white/side,
/area/science/explab)
"brD" = (
/obj/structure/closet/emcloset,
@@ -29818,6 +31074,9 @@
"brS" = (
/turf/open/floor/plasteel,
/area/crew_quarters/heads/hop)
+"brT" = (
+/turf/open/floor/plating,
+/area/space/nearstation)
"brU" = (
/obj/structure/sign/warning/electricshock{
pixel_y = -32
@@ -29947,7 +31206,6 @@
/area/teleporter)
"bsk" = (
/obj/machinery/firealarm{
- dir = 2;
pixel_y = 24
},
/obj/machinery/light{
@@ -29960,8 +31218,6 @@
/area/teleporter)
"bsl" = (
/obj/item/radio/intercom{
- broadcasting = 0;
- listening = 1;
name = "Station Intercom (General)";
pixel_y = 20
},
@@ -30014,10 +31270,7 @@
dir = 4
},
/obj/item/radio/intercom{
- broadcasting = 0;
- freerange = 0;
frequency = 1485;
- listening = 1;
name = "Station Intercom (Medbay)";
pixel_y = -30
},
@@ -30045,17 +31298,14 @@
/area/medical/medbay/central)
"bst" = (
/obj/item/radio/intercom{
- broadcasting = 0;
- freerange = 0;
frequency = 1485;
- listening = 1;
name = "Station Intercom (Medbay)";
pixel_x = 30
},
/obj/machinery/camera{
c_tag = "Medbay East";
- network = list("ss13","medbay");
dir = 8;
+ network = list("ss13","medbay");
pixel_y = -22
},
/turf/open/floor/plasteel/white,
@@ -30113,6 +31363,9 @@
dir = 9
},
/area/science/research)
+"bsB" = (
+/turf/closed/wall/mineral/titanium,
+/area/space/nearstation)
"bsC" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
/turf/open/floor/plasteel/white,
@@ -30165,9 +31418,9 @@
/area/science/explab)
"bsI" = (
/obj/machinery/power/apc{
+ areastring = "/area/science/explab";
dir = 4;
name = "Experimentation Lab APC";
- areastring = "/area/science/explab";
pixel_x = 26
},
/obj/structure/cable,
@@ -30216,12 +31469,8 @@
/turf/open/floor/plasteel/dark,
/area/science/robotics/lab)
"bsP" = (
-/obj/structure/table/optable{
- name = "Robotics Operating Table"
- },
-/obj/effect/landmark/event_spawn,
-/turf/open/floor/plasteel/dark,
-/area/science/robotics/lab)
+/turf/open/floor/plating/foam,
+/area/space/nearstation)
"bsQ" = (
/turf/open/floor/plasteel/dark,
/area/science/robotics/lab)
@@ -30292,8 +31541,7 @@
dir = 4
},
/obj/machinery/camera{
- c_tag = "Research Division North";
- dir = 2
+ c_tag = "Research Division North"
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -30335,7 +31583,6 @@
/area/science/research)
"btf" = (
/obj/machinery/requests_console{
- announcementConsole = 0;
department = "Medbay";
departmentType = 1;
name = "Medbay RC";
@@ -30358,9 +31605,9 @@
/turf/open/floor/plasteel/white,
/area/science/research)
"bti" = (
-/obj/structure/closet/secure_closet/personal/patient,
-/turf/open/floor/plasteel/white,
-/area/medical/genetics)
+/obj/effect/spawner/structure/window/shuttle,
+/turf/open/floor/plating,
+/area/space/nearstation)
"btj" = (
/obj/structure/disposalpipe/segment{
dir = 6
@@ -30371,9 +31618,9 @@
/turf/open/floor/plasteel/white,
/area/science/explab)
"btk" = (
-/obj/structure/closet/wardrobe/white,
-/turf/open/floor/plasteel/white,
-/area/medical/genetics)
+/obj/structure/grille/broken,
+/turf/open/floor/plating,
+/area/space/nearstation)
"btl" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
/turf/open/floor/plasteel/white,
@@ -30434,7 +31681,6 @@
pixel_y = -8
},
/obj/machinery/button/door{
- dir = 2;
id = "QMLoaddoor2";
layer = 4;
name = "Loading Doors";
@@ -30463,7 +31709,7 @@
"btt" = (
/obj/structure/table,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/item/folder/yellow,
@@ -30507,11 +31753,16 @@
/turf/open/floor/plasteel,
/area/science/research)
"bty" = (
-/obj/structure/chair{
- dir = 8
+/obj/structure/chair/sofa/right,
+/obj/structure/window{
+ dir = 1
},
-/turf/open/floor/plasteel,
-/area/quartermaster/office)
+/obj/structure/sign/poster/contraband/pwr_game{
+ pixel_x = -32
+ },
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"btz" = (
/obj/structure/disposalpipe/segment,
/obj/effect/turf_decal/tile/brown{
@@ -30521,8 +31772,7 @@
/area/hallway/primary/central)
"btA" = (
/obj/machinery/camera{
- c_tag = "Research Division West";
- dir = 2
+ c_tag = "Research Division West"
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
@@ -30553,13 +31803,21 @@
"btD" = (
/obj/structure/table,
/obj/item/paper_bin{
- pixel_x = -3;
- pixel_y = 7
+ pixel_x = 1;
+ pixel_y = 9
},
/obj/item/pen,
-/obj/item/stamp/hop,
-/turf/open/floor/plasteel,
-/area/crew_quarters/heads/hop)
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/item/folder/white,
+/obj/item/pen/fountain,
+/obj/item/stamp/rd{
+ pixel_x = 3;
+ pixel_y = -2
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/heads/hor)
"btE" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -30594,9 +31852,9 @@
/area/teleporter)
"btI" = (
/obj/machinery/power/apc{
+ areastring = "/area/teleporter";
dir = 8;
name = "Teleporter APC";
- areastring = "/area/teleporter";
pixel_x = -24
},
/obj/structure/cable{
@@ -30682,7 +31940,6 @@
/area/medical/medbay/central)
"btS" = (
/obj/machinery/firealarm{
- dir = 2;
pixel_y = 24
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
@@ -30766,9 +32023,8 @@
"buc" = (
/obj/machinery/light,
/obj/machinery/power/apc{
- dir = 2;
- name = "Cargo Office APC";
areastring = "/area/quartermaster/office";
+ name = "Cargo Office APC";
pixel_x = 1;
pixel_y = -24
},
@@ -30776,9 +32032,7 @@
icon_state = "0-4"
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/effect/turf_decal/tile/brown{
- dir = 2
- },
+/obj/effect/turf_decal/tile/brown,
/turf/open/floor/plasteel,
/area/quartermaster/office)
"bud" = (
@@ -30823,6 +32077,10 @@
},
/turf/open/floor/plasteel/white,
/area/medical/genetics)
+"buh" = (
+/obj/structure/girder,
+/turf/open/floor/plating,
+/area/space/nearstation)
"bui" = (
/obj/machinery/airalarm{
dir = 1;
@@ -30989,10 +32247,16 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/plating,
/area/maintenance/starboard)
+"buA" = (
+/obj/structure/frame/computer{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/space/nearstation)
"buB" = (
/obj/machinery/conveyor_switch/oneway{
- id = "QMLoad";
- dir = 8
+ dir = 8;
+ id = "QMLoad"
},
/turf/open/floor/plasteel,
/area/quartermaster/storage)
@@ -31071,12 +32335,12 @@
/turf/open/floor/plasteel,
/area/quartermaster/office)
"buJ" = (
-/obj/structure/chair{
- dir = 8
+/obj/structure/chair/sofa,
+/obj/structure/window{
+ dir = 1
},
-/obj/machinery/light,
-/turf/open/floor/plasteel,
-/area/quartermaster/office)
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"buK" = (
/obj/machinery/light{
dir = 4
@@ -31344,20 +32608,12 @@
/turf/open/floor/plasteel/white,
/area/medical/sleeper)
"bvn" = (
-/obj/machinery/button/door{
- desc = "A remote control switch for the genetics doors.";
- id = "GeneticsDoor";
- name = "Genetics Exit Button";
- normaldoorcontrol = 1;
- pixel_x = 8;
- pixel_y = 24
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
},
-/obj/structure/table,
-/obj/item/book/manual/wiki/medical_cloning{
- pixel_y = 6
- },
-/turf/open/floor/plasteel/white,
-/area/medical/genetics)
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall,
+/area/maintenance/port)
"bvo" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 4
@@ -31465,8 +32721,8 @@
"bvB" = (
/obj/machinery/camera{
c_tag = "Genetics Access";
- network = list("ss13","medbay");
dir = 8;
+ network = list("ss13","medbay");
pixel_y = -22
},
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
@@ -31517,6 +32773,20 @@
},
/turf/open/floor/plasteel,
/area/quartermaster/qm)
+"bvG" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/light/small,
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 5;
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel/white/side{
+ dir = 1
+ },
+/area/crew_quarters/fitness)
"bvH" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
dir = 4
@@ -31738,20 +33008,10 @@
/area/hallway/primary/central)
"bwi" = (
/obj/item/radio/intercom{
- dir = 8;
- name = "Station Intercom (General)";
- pixel_x = -28
+ pixel_x = -25
},
-/obj/structure/closet/secure_closet/hop,
-/obj/effect/turf_decal/tile/blue{
- dir = 1
- },
-/obj/effect/turf_decal/tile/blue,
-/obj/effect/turf_decal/tile/blue{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/heads/hop)
+/turf/open/floor/mineral/titanium/blue,
+/area/crew_quarters/toilet)
"bwj" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 4
@@ -31928,8 +33188,7 @@
/obj/structure/table/glass,
/obj/machinery/camera{
c_tag = "Medbay Cryogenics";
- network = list("ss13","medbay");
- dir = 2
+ network = list("ss13","medbay")
},
/obj/item/reagent_containers/glass/beaker/cryoxadone,
/obj/item/reagent_containers/glass/beaker/cryoxadone,
@@ -31945,24 +33204,17 @@
/turf/open/floor/plasteel/white,
/area/medical/medbay/central)
"bwL" = (
-/obj/machinery/camera{
- c_tag = "Genetics Cloning";
- network = list("ss13","medbay");
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/structure/closet/wardrobe/miner,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
-/obj/structure/table,
-/obj/machinery/firealarm{
- dir = 8;
- pixel_x = -24
- },
-/obj/item/storage/box/rxglasses{
- pixel_x = 3;
- pixel_y = 3
- },
-/obj/item/storage/box/bodybags,
-/obj/item/pen,
-/turf/open/floor/plasteel/white,
-/area/medical/genetics)
+/obj/item/radio/headset/headset_cargo/mining,
+/turf/open/floor/plasteel,
+/area/quartermaster/miningdock)
"bwM" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -32009,6 +33261,10 @@
dir = 9
},
/area/science/research)
+"bwP" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/closed/wall,
+/area/maintenance/port)
"bwQ" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
@@ -32191,6 +33447,14 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plating,
/area/maintenance/aft)
+"bxh" = (
+/obj/structure/table,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 4;
+ name = "4maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
"bxi" = (
/obj/machinery/computer/aifixer{
dir = 8
@@ -32278,9 +33542,7 @@
pixel_x = 25;
req_access_txt = "47"
},
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel/white,
/area/science/explab)
"bxt" = (
@@ -32627,6 +33889,7 @@
pixel_x = -3;
pixel_y = 7
},
+/obj/item/pen/fountain,
/turf/open/floor/plasteel,
/area/quartermaster/qm)
"byh" = (
@@ -32796,9 +34059,9 @@
/area/quartermaster/qm)
"byA" = (
/obj/machinery/power/apc{
+ areastring = "/area/quartermaster/qm";
dir = 1;
name = "Quartermaster APC";
- areastring = "/area/quartermaster/qm";
pixel_y = 24
},
/obj/structure/cable{
@@ -32852,9 +34115,9 @@
/area/quartermaster/miningdock)
"byF" = (
/obj/machinery/power/apc{
+ areastring = "/area/quartermaster/miningdock";
dir = 1;
name = "Mining Dock APC";
- areastring = "/area/quartermaster/miningdock";
pixel_y = 24
},
/obj/structure/cable{
@@ -33019,6 +34282,9 @@
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"byV" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
/obj/structure/extinguisher_cabinet{
pixel_x = 5;
pixel_y = -32
@@ -33087,7 +34353,6 @@
/obj/item/stack/packageWrap,
/obj/item/pen,
/obj/machinery/requests_console{
- announcementConsole = 0;
department = "Medbay";
departmentType = 1;
name = "Medbay RC";
@@ -33212,8 +34477,8 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 4;
external_pressure_bound = 140;
- pressure_checks = 0;
- name = "server vent"
+ name = "server vent";
+ pressure_checks = 0
},
/turf/open/floor/circuit/telecomms/server,
/area/science/server)
@@ -33250,14 +34515,13 @@
"bzy" = (
/obj/machinery/camera{
c_tag = "Server Room";
- dir = 2;
network = list("ss13","rd");
pixel_x = 22
},
/obj/machinery/power/apc{
+ areastring = "/area/science/server";
dir = 1;
name = "Server Room APC";
- areastring = "/area/science/server";
pixel_y = 25
},
/obj/structure/cable{
@@ -33332,7 +34596,7 @@
/area/science/research)
"bzF" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/turf/open/floor/plasteel,
@@ -33343,18 +34607,14 @@
name = "Central Access"
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/effect/turf_decal/tile/yellow{
- dir = 2
- },
+/obj/effect/turf_decal/tile/yellow,
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"bzH" = (
/obj/structure/table,
/obj/item/hemostat,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/plasteel/white/side{
- dir = 2
- },
+/turf/open/floor/plasteel/white/side,
/area/medical/sleeper)
"bzI" = (
/obj/structure/disposalpipe/segment,
@@ -33381,9 +34641,7 @@
/turf/open/floor/plasteel/white,
/area/medical/sleeper)
"bzL" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel/white,
/area/crew_quarters/heads/hor)
"bzM" = (
@@ -33455,9 +34713,7 @@
/area/quartermaster/qm)
"bzU" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
-/obj/effect/turf_decal/tile/blue{
- dir = 2
- },
+/obj/effect/turf_decal/tile/blue,
/turf/open/floor/plasteel/white,
/area/medical/sleeper)
"bzV" = (
@@ -33564,11 +34820,11 @@
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"bAj" = (
-/obj/machinery/navbeacon{
- codes_txt = "patrol;next_patrol=HOP";
- location = "CHE"
+/obj/structure/disposalpipe/trunk{
+ dir = 1
},
-/turf/open/floor/plasteel,
+/obj/machinery/disposal/bin,
+/turf/open/floor/plasteel/dark,
/area/hallway/primary/central)
"bAk" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
@@ -33616,9 +34872,9 @@
icon_state = "4-8"
},
/obj/machinery/power/apc{
+ areastring = "/area/security/checkpoint/supply";
dir = 1;
name = "Cargo Security APC";
- areastring = "/area/security/checkpoint/supply";
pixel_x = 1;
pixel_y = 24
},
@@ -33636,7 +34892,7 @@
dir = 8
},
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/turf/open/floor/plasteel/white,
@@ -33647,8 +34903,8 @@
},
/obj/machinery/camera{
c_tag = "Medbay Treatment Center";
- network = list("ss13","medbay");
- dir = 8
+ dir = 8;
+ network = list("ss13","medbay")
},
/turf/open/floor/plasteel,
/area/medical/sleeper)
@@ -33859,9 +35115,7 @@
"bAP" = (
/obj/machinery/door/firedoor,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/effect/turf_decal/tile/yellow{
- dir = 2
- },
+/obj/effect/turf_decal/tile/yellow,
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
"bAQ" = (
@@ -34016,6 +35270,10 @@
/obj/structure/cable{
icon_state = "1-8"
},
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_y = -29
+ },
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"bBh" = (
@@ -34185,13 +35443,8 @@
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"bBz" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/plasteel,
+/obj/machinery/vending/cola/space_up,
+/turf/open/floor/plasteel/dark,
/area/hallway/primary/central)
"bBA" = (
/obj/structure/cable{
@@ -34203,14 +35456,20 @@
/turf/open/floor/plasteel,
/area/hallway/primary/central)
"bBB" = (
-/obj/structure/cable{
- icon_state = "1-8"
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
},
-/obj/structure/disposalpipe/segment{
- dir = 9
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
},
/turf/open/floor/plasteel,
-/area/hallway/primary/central)
+/area/crew_quarters/fitness)
"bBC" = (
/obj/structure/disposalpipe/segment{
dir = 10
@@ -34238,9 +35497,7 @@
"bBF" = (
/obj/machinery/portable_atmospherics/scrubber,
/obj/item/storage/firstaid/toxin,
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/obj/machinery/airalarm/unlocked{
pixel_y = 24
},
@@ -34260,19 +35517,14 @@
/turf/closed/wall,
/area/quartermaster/miningdock)
"bBI" = (
-/obj/machinery/airalarm{
- dir = 8;
- pixel_x = 24
- },
-/obj/structure/closet/wardrobe/miner,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
+/obj/structure/table,
+/obj/item/stack/packageWrap,
+/obj/item/stack/packageWrap,
+/obj/item/hand_labeler,
/turf/open/floor/plasteel,
-/area/quartermaster/miningdock)
+/area/hallway/secondary/service)
"bBJ" = (
/obj/machinery/firealarm{
- dir = 2;
pixel_y = 24
},
/turf/open/floor/plasteel/white,
@@ -34291,6 +35543,14 @@
},
/turf/open/floor/plasteel/white,
/area/medical/medbay/central)
+"bBM" = (
+/obj/structure/closet,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 4;
+ name = "4maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
"bBN" = (
/turf/closed/wall,
/area/crew_quarters/heads/cmo)
@@ -34350,6 +35610,18 @@
},
/turf/open/floor/circuit/telecomms/server,
/area/science/server)
+"bBT" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
"bBU" = (
/obj/machinery/atmospherics/pipe/simple{
dir = 9
@@ -34411,9 +35683,8 @@
/area/security/checkpoint/science)
"bCa" = (
/obj/machinery/power/apc{
- dir = 2;
- name = "Science Security APC";
areastring = "/area/security/checkpoint/science";
+ name = "Science Security APC";
pixel_y = -24
},
/obj/structure/cable,
@@ -34475,9 +35746,9 @@
/area/maintenance/port/aft)
"bCf" = (
/obj/machinery/power/apc{
+ areastring = "/area/crew_quarters/heads/hor";
dir = 8;
name = "RD Office APC";
- areastring = "/area/crew_quarters/heads/hor";
pixel_x = -25
},
/obj/structure/cable,
@@ -34581,9 +35852,7 @@
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/effect/turf_decal/tile/yellow{
- dir = 2
- },
+/obj/effect/turf_decal/tile/yellow,
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
"bCq" = (
@@ -34660,9 +35929,20 @@
/turf/open/floor/plating,
/area/maintenance/aft)
"bCA" = (
-/obj/machinery/vending/cigarette,
-/turf/open/floor/plasteel/dark,
-/area/hallway/primary/central)
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 5
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
"bCB" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -34688,9 +35968,7 @@
"bCD" = (
/obj/structure/table,
/obj/item/retractor,
-/turf/open/floor/plasteel/white/side{
- dir = 2
- },
+/turf/open/floor/plasteel/white/side,
/area/medical/sleeper)
"bCE" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
@@ -34725,12 +36003,14 @@
/turf/open/floor/plasteel/white,
/area/medical/sleeper)
"bCI" = (
-/obj/structure/chair/office/dark{
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
dir = 4
},
-/obj/effect/landmark/event_spawn,
-/turf/open/floor/wood,
-/area/library)
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
"bCJ" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -34747,8 +36027,7 @@
/obj/structure/closet/secure_closet/medical3,
/obj/machinery/camera{
c_tag = "Medbay Storage";
- network = list("ss13","medbay");
- dir = 2
+ network = list("ss13","medbay")
},
/turf/open/floor/plasteel/white,
/area/medical/sleeper)
@@ -34765,7 +36044,13 @@
/turf/open/floor/plasteel/white,
/area/medical/sleeper)
"bCO" = (
-/obj/machinery/bloodbankgen,
+/obj/structure/table,
+/obj/item/storage/box/bodybags{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/storage/box/rxglasses,
+/obj/item/hand_labeler,
/turf/open/floor/plasteel/white,
/area/medical/sleeper)
"bCP" = (
@@ -34799,35 +36084,22 @@
/turf/open/floor/plasteel/white,
/area/medical/sleeper)
"bCT" = (
-/obj/structure/table,
-/obj/item/storage/belt/medical{
- pixel_y = 2
- },
-/obj/item/storage/belt/medical{
- pixel_y = 2
- },
-/obj/item/storage/belt/medical{
- pixel_y = 2
- },
-/obj/item/clothing/neck/stethoscope,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
+/obj/machinery/bloodbankgen,
/turf/open/floor/plasteel/white,
/area/medical/sleeper)
"bCU" = (
/obj/item/radio/intercom{
- broadcasting = 0;
- freerange = 0;
frequency = 1485;
- listening = 1;
name = "Station Intercom (Medbay)";
pixel_x = -30
},
/obj/machinery/camera{
c_tag = "Medbay South";
- network = list("ss13","medbay");
- dir = 4
+ dir = 4;
+ network = list("ss13","medbay")
},
/turf/open/floor/plasteel/white,
/area/medical/medbay/central)
@@ -34950,7 +36222,6 @@
/obj/item/pen,
/obj/machinery/requests_console{
department = "Mining";
- departmentType = 0;
pixel_x = -30
},
/obj/machinery/light{
@@ -34960,7 +36231,7 @@
/area/quartermaster/miningdock)
"bDl" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
@@ -34994,13 +36265,11 @@
/area/quartermaster/miningdock)
"bDp" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/effect/turf_decal/tile/yellow{
- dir = 2
- },
+/obj/effect/turf_decal/tile/yellow,
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
"bDq" = (
@@ -35022,9 +36291,15 @@
/turf/open/floor/plasteel,
/area/janitor)
"bDs" = (
-/obj/structure/reagent_dispensers/watertank,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green,
/turf/open/floor/plasteel,
-/area/janitor)
+/area/hallway/primary/starboard)
"bDt" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 10
@@ -35042,6 +36317,13 @@
/turf/open/floor/plating,
/area/maintenance/aft)
"bDv" = (
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"bDw" = (
/obj/structure/table,
/obj/item/flashlight{
pixel_x = 1;
@@ -35056,14 +36338,15 @@
/obj/machinery/status_display/ai{
pixel_x = -32
},
-/turf/open/floor/plating,
-/area/storage/tech)
-"bDw" = (
-/obj/structure/table,
-/obj/item/screwdriver{
- pixel_y = 16
+/obj/machinery/power/apc{
+ areastring = "/area/storage/tech";
+ dir = 1;
+ name = "Tech Storage APC";
+ pixel_y = 24
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
},
-/obj/item/wirecutters,
/turf/open/floor/plating,
/area/storage/tech)
"bDx" = (
@@ -35076,33 +36359,28 @@
/turf/open/floor/plating,
/area/storage/tech)
"bDy" = (
-/obj/machinery/camera{
- c_tag = "Tech Storage";
- dir = 2
- },
-/obj/machinery/power/apc{
- dir = 1;
- name = "Tech Storage APC";
- areastring = "/area/storage/tech";
- pixel_y = 24
- },
-/obj/structure/cable{
- icon_state = "0-2"
+/obj/structure/table,
+/obj/item/screwdriver{
+ pixel_y = 16
},
+/obj/item/wirecutters,
/turf/open/floor/plating,
/area/storage/tech)
"bDz" = (
-/obj/machinery/airalarm{
- pixel_y = 23
+/obj/structure/table,
+/obj/item/aicard,
+/obj/item/aiModule/reset,
+/obj/structure/cable{
+ icon_state = "1-2"
},
/turf/open/floor/plating,
/area/storage/tech)
"bDA" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/power/apc{
+ areastring = "/area/medical/sleeper";
dir = 4;
name = "Treatment Center APC";
- areastring = "/area/medical/sleeper";
pixel_x = 26
},
/obj/structure/cable{
@@ -35129,9 +36407,6 @@
/turf/open/floor/plasteel/white,
/area/medical/sleeper)
"bDD" = (
-/obj/structure/sign/warning/nosmoking{
- pixel_x = -28
- },
/obj/structure/bed,
/obj/item/bedsheet/medical,
/obj/effect/turf_decal/tile/blue{
@@ -35145,8 +36420,8 @@
},
/obj/machinery/camera{
c_tag = "Medbay Recovery Room";
- network = list("ss13","medbay");
- dir = 8
+ dir = 8;
+ network = list("ss13","medbay")
},
/obj/machinery/iv_drip,
/turf/open/floor/plasteel/white,
@@ -35164,9 +36439,7 @@
/area/medical/medbay/central)
"bDG" = (
/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/tile/yellow{
- dir = 2
- },
+/obj/effect/turf_decal/tile/yellow,
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
"bDH" = (
@@ -35182,8 +36455,9 @@
/turf/open/floor/plasteel/white,
/area/medical/medbay/central)
"bDJ" = (
-/obj/item/storage/box/lights/mixed,
-/obj/item/storage/box/lights/mixed,
+/obj/structure/sign/poster/contraband/lizard{
+ pixel_x = -32
+ },
/turf/open/floor/plasteel,
/area/janitor)
"bDK" = (
@@ -35197,8 +36471,17 @@
/turf/open/floor/plasteel,
/area/janitor)
"bDL" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
/turf/open/floor/plasteel,
-/area/janitor)
+/area/crew_quarters/fitness)
"bDM" = (
/obj/structure/disposalpipe/segment,
/turf/open/floor/plasteel,
@@ -35212,11 +36495,15 @@
/turf/open/floor/plasteel/white,
/area/medical/medbay/central)
"bDO" = (
-/obj/structure/cable{
- icon_state = "2-4"
+/obj/machinery/vending/snack/orange,
+/obj/machinery/light{
+ dir = 1
},
-/turf/open/floor/plating,
-/area/maintenance/aft)
+/obj/structure/sign/poster/contraband/donut_corp{
+ pixel_y = 32
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"bDP" = (
/obj/machinery/navbeacon{
codes_txt = "delivery;dir=8";
@@ -35290,6 +36577,13 @@
},
/turf/open/floor/plasteel/white,
/area/medical/sleeper)
+"bDX" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plating,
+/area/crew_quarters/abandoned_gambling_den)
"bDY" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -35418,8 +36712,8 @@
},
/obj/machinery/camera{
c_tag = "Chief Medical Office";
- network = list("ss13","medbay");
dir = 8;
+ network = list("ss13","medbay");
pixel_y = -22
},
/obj/effect/turf_decal/tile/blue{
@@ -35436,7 +36730,6 @@
"bEn" = (
/obj/machinery/camera{
c_tag = "Xenobiology Test Chamber";
- dir = 2;
network = list("xeno","rd")
},
/obj/machinery/light{
@@ -35459,9 +36752,9 @@
/area/science/storage)
"bEq" = (
/obj/machinery/power/apc{
+ areastring = "/area/science/research";
dir = 8;
name = "Misc Research APC";
- areastring = "/area/science/research";
pixel_x = -25
},
/obj/structure/cable{
@@ -35491,9 +36784,7 @@
/obj/machinery/light{
dir = 1
},
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel/white,
/area/science/mixing)
"bEv" = (
@@ -35501,9 +36792,7 @@
/obj/machinery/light_switch{
pixel_y = 28
},
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel/white,
/area/science/mixing)
"bEw" = (
@@ -35511,9 +36800,7 @@
/obj/item/radio/intercom{
pixel_y = 25
},
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel/white,
/area/science/mixing)
"bEx" = (
@@ -35522,17 +36809,13 @@
dir = 8
},
/obj/machinery/firealarm{
- dir = 2;
pixel_y = 24
},
/obj/machinery/camera{
c_tag = "Toxins Lab West";
- dir = 2;
network = list("ss13","rd")
},
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel/white,
/area/science/mixing)
"bEy" = (
@@ -35540,9 +36823,7 @@
/obj/structure/window/reinforced{
dir = 4
},
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel/white,
/area/science/mixing)
"bEz" = (
@@ -35688,15 +36969,8 @@
/turf/open/floor/plasteel,
/area/quartermaster/miningdock)
"bER" = (
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 4
- },
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/techstorage/rnd,
/turf/open/floor/plating,
/area/storage/tech)
"bES" = (
@@ -35746,9 +37020,12 @@
/turf/open/floor/plating,
/area/storage/tech)
"bEX" = (
-/obj/structure/table,
-/obj/item/aicard,
-/obj/item/aiModule/reset,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
/turf/open/floor/plating,
/area/storage/tech)
"bEY" = (
@@ -35844,18 +37121,20 @@
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
"bFk" = (
-/obj/item/mop,
-/obj/item/reagent_containers/glass/bucket,
-/turf/open/floor/plasteel,
-/area/janitor)
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/turf/open/floor/plating,
+/area/crew_quarters/abandoned_gambling_den)
"bFl" = (
/obj/structure/cable{
icon_state = "1-2"
},
/obj/machinery/power/apc{
+ areastring = "/area/janitor";
dir = 8;
name = "Custodial Closet APC";
- areastring = "/area/janitor";
pixel_x = -24
},
/obj/structure/cable{
@@ -35893,9 +37172,7 @@
/area/maintenance/aft)
"bFq" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/effect/turf_decal/tile/yellow{
- dir = 2
- },
+/obj/effect/turf_decal/tile/yellow,
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
"bFr" = (
@@ -35989,21 +37266,14 @@
/turf/open/floor/plasteel,
/area/medical/sleeper)
"bFC" = (
-/obj/structure/table,
-/obj/item/reagent_containers/food/condiment/peppermill{
- pixel_x = 5;
- pixel_y = -2
+/obj/structure/door_assembly/door_assembly_mai,
+/obj/item/electronics/airlock,
+/obj/structure/cable{
+ icon_state = "1-2"
},
-/obj/item/reagent_containers/food/condiment/saltshaker{
- pixel_x = -2;
- pixel_y = 2
- },
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/crew_quarters/abandoned_gambling_den)
"bFD" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
@@ -36070,6 +37340,9 @@
"bFJ" = (
/obj/structure/bed,
/obj/item/bedsheet/medical,
+/obj/structure/sign/warning/nosmoking{
+ pixel_x = -28
+ },
/turf/open/floor/plasteel/white,
/area/medical/sleeper)
"bFK" = (
@@ -36224,12 +37497,8 @@
/obj/machinery/doppler_array/research/science{
dir = 4
},
-/obj/effect/turf_decal/bot{
- dir = 2
- },
-/turf/open/floor/plasteel{
- dir = 2
- },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
/area/science/mixing)
"bGe" = (
/turf/closed/wall,
@@ -36238,6 +37507,22 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating/airless,
/area/science/test_area)
+"bGg" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"bGh" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating{
+ icon_state = "panelscorched"
+ },
+/area/maintenance/starboard/fore)
"bGi" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -36321,8 +37606,7 @@
/area/storage/tech)
"bGs" = (
/obj/machinery/camera{
- c_tag = "Secure Tech Storage";
- dir = 2
+ c_tag = "Secure Tech Storage"
},
/obj/structure/cable{
icon_state = "1-2"
@@ -36347,11 +37631,12 @@
/turf/open/floor/plating,
/area/storage/tech)
"bGw" = (
-/obj/structure/rack,
/obj/structure/cable{
- icon_state = "1-2"
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
},
-/obj/effect/spawner/lootdrop/techstorage/rnd,
/turf/open/floor/plating,
/area/storage/tech)
"bGx" = (
@@ -36382,18 +37667,14 @@
/turf/open/floor/plasteel/white,
/area/science/mixing)
"bGB" = (
-/obj/structure/table,
-/obj/item/grenade/chem_grenade/cleaner,
-/obj/item/grenade/chem_grenade/cleaner,
-/obj/item/grenade/chem_grenade/cleaner,
-/obj/machinery/requests_console{
- department = "Janitorial";
- departmentType = 1;
- pixel_y = -29
+/obj/structure/cable{
+ icon_state = "2-4"
},
-/obj/item/reagent_containers/spray/cleaner,
-/turf/open/floor/plasteel,
-/area/janitor)
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
"bGC" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -36516,9 +37797,7 @@
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/effect/turf_decal/tile/yellow{
- dir = 2
- },
+/obj/effect/turf_decal/tile/yellow,
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
"bGP" = (
@@ -36544,15 +37823,34 @@
/area/maintenance/aft)
"bGR" = (
/obj/structure/table,
-/obj/item/hand_labeler,
-/obj/item/storage/box/rxglasses,
-/obj/item/storage/box/bodybags{
- pixel_x = 3;
- pixel_y = 3
+/obj/item/storage/belt/medical{
+ pixel_y = 2
},
-/obj/item/gun/syringe,
+/obj/item/storage/belt/medical{
+ pixel_y = 2
+ },
+/obj/item/storage/belt/medical{
+ pixel_y = 2
+ },
+/obj/item/clothing/neck/stethoscope,
/turf/open/floor/plasteel/white,
/area/medical/sleeper)
+"bGS" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
"bGT" = (
/obj/structure/table,
/obj/item/folder/white,
@@ -36649,9 +37947,9 @@
/area/maintenance/aft)
"bHe" = (
/obj/machinery/power/apc{
+ areastring = "/area/science/storage";
dir = 8;
name = "Toxins Storage APC";
- areastring = "/area/science/storage";
pixel_x = -25
},
/obj/structure/cable{
@@ -36671,6 +37969,22 @@
},
/turf/open/floor/plasteel/white,
/area/science/research)
+"bHg" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/structure/sign/departments/restroom{
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/dorms)
"bHh" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 4
@@ -36706,9 +38020,7 @@
"bHl" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
-/obj/effect/turf_decal/tile/yellow{
- dir = 2
- },
+/obj/effect/turf_decal/tile/yellow,
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
"bHm" = (
@@ -36764,9 +38076,7 @@
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/effect/turf_decal/stripes/corner{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/corner,
/turf/open/floor/plasteel,
/area/science/mixing)
"bHt" = (
@@ -36799,6 +38109,16 @@
},
/turf/open/floor/plating,
/area/science/test_area)
+"bHx" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/obj/structure/table,
+/obj/item/kitchen/rollingpin,
+/obj/item/shovel/spade,
+/obj/item/reagent_containers/glass/bucket,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/service)
"bHy" = (
/obj/structure/closet/crate,
/obj/machinery/light/small{
@@ -36830,6 +38150,19 @@
},
/turf/open/floor/plasteel,
/area/quartermaster/miningdock)
+"bHB" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/table,
+/obj/item/storage/box/beakers{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/item/storage/box/beakers{
+ pixel_x = 2;
+ pixel_y = 2
+ },
+/turf/open/floor/plasteel,
+/area/hallway/secondary/service)
"bHC" = (
/obj/effect/landmark/blobstart,
/turf/open/floor/plating,
@@ -36845,12 +38178,17 @@
/turf/open/floor/plating,
/area/maintenance/port/aft)
"bHF" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
-/obj/effect/landmark/event_spawn,
-/turf/open/floor/wood,
-/area/crew_quarters/theatre)
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
"bHG" = (
/obj/structure/rack,
/obj/machinery/light/small{
@@ -36927,9 +38265,7 @@
/turf/open/floor/plating,
/area/storage/tech)
"bHP" = (
-/obj/effect/turf_decal/tile/yellow{
- dir = 2
- },
+/obj/effect/turf_decal/tile/yellow,
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
"bHQ" = (
@@ -36972,9 +38308,9 @@
/area/maintenance/aft)
"bHV" = (
/obj/machinery/power/apc{
+ areastring = "/area/maintenance/aft";
dir = 8;
name = "Aft Maintenance APC";
- areastring = "/area/maintenance/aft";
pixel_x = -24
},
/obj/structure/cable{
@@ -37003,6 +38339,18 @@
},
/turf/open/floor/plasteel/white,
/area/medical/medbay/central)
+"bHZ" = (
+/obj/structure/table,
+/obj/item/book/manual/hydroponics_pod_people{
+ pixel_x = -4;
+ pixel_y = 5
+ },
+/obj/item/paper/guides/jobs/hydroponics{
+ pixel_x = -5;
+ pixel_y = 3
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics)
"bIa" = (
/obj/structure/disposalpipe/segment{
dir = 5
@@ -37034,8 +38382,8 @@
},
/obj/machinery/camera{
c_tag = "Surgery Operating";
- network = list("ss13","medbay");
dir = 1;
+ network = list("ss13","medbay");
pixel_x = 22
},
/obj/machinery/light,
@@ -37133,6 +38481,9 @@
/obj/item/clothing/glasses/hud/health,
/obj/item/clothing/glasses/hud/health,
/obj/item/clothing/glasses/hud/health,
+/obj/item/hand_labeler,
+/obj/item/stack/packageWrap,
+/obj/item/stack/packageWrap,
/turf/open/floor/plasteel/white,
/area/medical/sleeper)
"bIk" = (
@@ -37474,9 +38825,7 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 8
},
-/obj/effect/turf_decal/stripes/corner{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/corner,
/turf/open/floor/plasteel,
/area/science/mixing)
"bIV" = (
@@ -37872,6 +39221,10 @@
},
/turf/closed/wall,
/area/science/storage)
+"bJS" = (
+/obj/structure/sign/departments/restroom,
+/turf/closed/wall,
+/area/crew_quarters/toilet)
"bJT" = (
/obj/machinery/vending/cigarette,
/turf/open/floor/plasteel/white,
@@ -37954,9 +39307,9 @@
/area/science/mixing)
"bKa" = (
/obj/machinery/power/apc{
+ areastring = "/area/science/mixing";
dir = 4;
name = "Toxins Lab APC";
- areastring = "/area/science/mixing";
pixel_x = 26
},
/obj/structure/cable,
@@ -38252,9 +39605,9 @@
icon_state = "0-8"
},
/obj/machinery/power/apc{
+ areastring = "/area/medical/medbay/central";
dir = 4;
name = "Medbay APC";
- areastring = "/area/medical/medbay/central";
pixel_x = 24
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
@@ -38331,9 +39684,9 @@
/area/medical/medbay/central)
"bKS" = (
/obj/machinery/power/apc{
+ areastring = "/area/crew_quarters/heads/cmo";
dir = 1;
name = "CM Office APC";
- areastring = "/area/crew_quarters/heads/cmo";
pixel_y = 24
},
/obj/structure/cable{
@@ -38377,9 +39730,7 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/science/xenobiology)
"bKX" = (
@@ -38408,9 +39759,7 @@
pixel_y = 2
},
/obj/structure/table/reinforced,
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/science/xenobiology)
"bKZ" = (
@@ -38431,18 +39780,14 @@
name = "Test Chamber";
req_access_txt = "55"
},
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/science/xenobiology)
"bLb" = (
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/science/xenobiology)
"bLc" = (
@@ -38452,9 +39797,7 @@
/obj/item/clothing/glasses/science,
/obj/item/clothing/glasses/science,
/obj/structure/table,
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/science/xenobiology)
"bLd" = (
@@ -38568,10 +39911,18 @@
dir = 8
},
/turf/open/floor/plating{
- luminosity = 2;
- initial_gas_mix = "o2=0.01;n2=0.01"
+ initial_gas_mix = "o2=0.01;n2=0.01";
+ luminosity = 2
},
/area/science/test_area)
+"bLs" = (
+/obj/structure/reagent_dispensers/keg/milk,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"bLt" = (
+/obj/structure/reagent_dispensers/keg/gargle,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"bLu" = (
/obj/structure/rack,
/obj/effect/spawner/lootdrop/maintenance,
@@ -38596,6 +39947,10 @@
/obj/item/stock_parts/subspace/treatment,
/obj/item/stock_parts/subspace/treatment,
/obj/item/stock_parts/subspace/treatment,
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
/turf/open/floor/plating,
/area/storage/tech)
"bLy" = (
@@ -38627,6 +39982,10 @@
/obj/item/clothing/gloves/color/yellow,
/obj/item/t_scanner,
/obj/item/multitool,
+/obj/machinery/camera{
+ c_tag = "Tech Storage";
+ dir = 1
+ },
/turf/open/floor/plating,
/area/storage/tech)
"bLB" = (
@@ -38658,9 +40017,8 @@
"bLF" = (
/obj/structure/filingcabinet/filingcabinet,
/obj/machinery/power/apc{
- dir = 2;
- name = "Delivery Office APC";
areastring = "/area/quartermaster/sorting";
+ name = "Delivery Office APC";
pixel_x = 1;
pixel_y = -24
},
@@ -38857,9 +40215,9 @@
/area/science/misc_lab)
"bMg" = (
/obj/machinery/power/apc{
+ areastring = "/area/science/xenobiology";
dir = 8;
name = "Xenobiology APC";
- areastring = "/area/science/xenobiology";
pixel_x = -25
},
/obj/structure/cable{
@@ -38900,7 +40258,6 @@
"bMm" = (
/obj/machinery/monkey_recycler,
/obj/machinery/firealarm{
- dir = 2;
pixel_y = 24
},
/obj/effect/turf_decal/stripes/line{
@@ -38966,7 +40323,6 @@
/area/science/mixing)
"bMw" = (
/obj/machinery/sparker/toxmix{
- dir = 2;
pixel_x = 25
},
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxins_mixing_output{
@@ -39041,6 +40397,10 @@
},
/turf/open/floor/plating/airless,
/area/science/test_area)
+"bMF" = (
+/obj/structure/reagent_dispensers/keg/mead,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"bMG" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -39103,7 +40463,6 @@
/area/engine/atmos)
"bMP" = (
/obj/machinery/firealarm{
- dir = 2;
pixel_y = 24
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
@@ -39144,9 +40503,7 @@
/turf/open/floor/plasteel,
/area/engine/atmos)
"bMV" = (
-/obj/machinery/atmospherics/pipe/manifold/supply/visible{
- dir = 2
- },
+/obj/machinery/atmospherics/pipe/manifold/supply/visible,
/obj/machinery/meter/atmos/distro_loop,
/turf/open/floor/plasteel,
/area/engine/atmos)
@@ -39175,6 +40532,13 @@
},
/turf/open/floor/plasteel,
/area/engine/atmos)
+"bNa" = (
+/obj/machinery/door/firedoor,
+/obj/structure/sign/departments/evac{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
"bNb" = (
/obj/item/airlock_painter,
/obj/structure/lattice,
@@ -39339,9 +40703,7 @@
/turf/open/floor/engine,
/area/science/mixing)
"bNw" = (
-/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_toxmix{
- dir = 2
- },
+/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_toxmix,
/turf/open/floor/engine,
/area/science/mixing)
"bNx" = (
@@ -39406,9 +40768,7 @@
/turf/open/floor/plating/airless,
/area/science/test_area)
"bNF" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plating/airless,
/area/science/test_area)
"bNG" = (
@@ -39446,11 +40806,30 @@
/turf/open/floor/plasteel,
/area/quartermaster/office)
"bNL" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
/obj/machinery/airalarm{
- pixel_y = 23
+ dir = 1;
+ pixel_y = -22
},
/turf/open/floor/plating,
/area/construction)
+"bNM" = (
+/obj/machinery/light,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/structure/sign/directions/evac{
+ dir = 4;
+ pixel_y = -25
+ },
+/obj/structure/sign/directions/science{
+ dir = 4;
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
"bNN" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -39472,8 +40851,6 @@
dir = 6
},
/obj/item/radio/intercom{
- freerange = 0;
- frequency = 1459;
name = "Station Intercom (General)";
pixel_x = -30
},
@@ -39494,8 +40871,7 @@
pixel_y = 23
},
/obj/machinery/camera{
- c_tag = "Atmospherics Monitoring";
- dir = 2
+ c_tag = "Atmospherics Monitoring"
},
/obj/machinery/light{
dir = 4
@@ -39662,8 +41038,7 @@
/obj/structure/closet/emcloset,
/obj/machinery/camera{
c_tag = "Virology Airlock";
- network = list("ss13","medbay");
- dir = 2
+ network = list("ss13","medbay")
},
/obj/effect/turf_decal/stripes/line{
dir = 5
@@ -39775,7 +41150,6 @@
/area/tcommsat/computer)
"bOE" = (
/obj/machinery/sparker/toxmix{
- dir = 2;
pixel_x = 25
},
/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxins_mixing_input{
@@ -39850,12 +41224,21 @@
/area/quartermaster/office)
"bOM" = (
/obj/structure/table,
-/obj/item/paper_bin,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 10
+/obj/item/clothing/head/welding{
+ pixel_x = -3;
+ pixel_y = 7
},
+/obj/item/clothing/head/welding{
+ pixel_x = -5;
+ pixel_y = 3
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/item/multitool,
+/obj/item/clothing/glasses/welding,
/turf/open/floor/plasteel,
-/area/tcommsat/computer)
+/area/engine/atmos)
"bON" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/door/poddoor/shutters/preopen{
@@ -39866,9 +41249,9 @@
/area/security/detectives_office)
"bOO" = (
/obj/machinery/power/apc{
+ areastring = "/area/security/checkpoint/engineering";
dir = 8;
name = "Engineering Security APC";
- areastring = "/area/security/checkpoint/engineering";
pixel_x = -24
},
/obj/structure/cable{
@@ -39949,7 +41332,6 @@
/obj/effect/turf_decal/delivery,
/obj/machinery/door/window/northleft{
dir = 4;
- icon_state = "left";
name = "Atmospherics Desk";
req_access_txt = "24"
},
@@ -40181,6 +41563,13 @@
},
/turf/open/floor/plasteel/white,
/area/medical/virology)
+"bPv" = (
+/obj/machinery/door/firedoor,
+/obj/structure/sign/departments/evac{
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
"bPw" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
dir = 4
@@ -40416,6 +41805,36 @@
},
/turf/open/floor/plasteel,
/area/tcommsat/computer)
+"bPR" = (
+/obj/structure/sign/mining{
+ pixel_y = 7
+ },
+/turf/closed/wall,
+/area/quartermaster/miningdock)
+"bPS" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/sign/departments/custodian{
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bPT" = (
+/obj/structure/reagent_dispensers/foamtank,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/box,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"bPU" = (
/obj/item/shard,
/turf/open/floor/plating,
@@ -40784,7 +42203,6 @@
/obj/item/clothing/ears/earmuffs,
/obj/machinery/camera{
c_tag = "Testing Lab North";
- dir = 2;
network = list("ss13","rd")
},
/turf/open/floor/plasteel,
@@ -40793,7 +42211,6 @@
/obj/machinery/requests_console{
department = "Science";
departmentType = 2;
- dir = 2;
name = "Science Requests Console";
pixel_y = 30;
receive_ore_updates = 1
@@ -40824,6 +42241,21 @@
},
/turf/open/floor/engine,
/area/science/misc_lab)
+"bQX" = (
+/obj/structure/reagent_dispensers/watertank/high,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/box,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"bQY" = (
/obj/structure/table/reinforced,
/obj/item/integrated_circuit_printer,
@@ -40844,6 +42276,50 @@
/obj/item/stack/sheet/metal/ten,
/turf/open/floor/plasteel/white,
/area/science/circuit)
+"bRb" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/obj/structure/sign/departments/engineering{
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"bRc" = (
+/obj/structure/sign/poster/contraband/space_cola{
+ pixel_x = -32
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"bRd" = (
+/obj/structure/sign/poster/contraband/space_up{
+ pixel_x = -32;
+ pixel_y = 32
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"bRe" = (
+/obj/machinery/computer/slot_machine{
+ balance = 15;
+ money = 500;
+ pixel_x = -5
+ },
+/obj/structure/sign/poster/contraband/robust_softdrinks{
+ pixel_x = -32
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
+"bRf" = (
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/plasteel,
+/area/hallway/secondary/entry)
"bRg" = (
/obj/structure/rack,
/obj/effect/spawner/lootdrop/maintenance{
@@ -40957,7 +42433,6 @@
/obj/machinery/door/firedoor/heavy,
/obj/machinery/door/window/northleft{
dir = 4;
- icon_state = "left";
name = "Atmospherics Desk";
req_access_txt = "24"
},
@@ -41122,7 +42597,7 @@
/area/medical/virology)
"bRO" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/turf/open/floor/plasteel/white,
@@ -41342,6 +42817,14 @@
/obj/effect/decal/cleanable/cobweb,
/turf/open/floor/plating,
/area/maintenance/port/aft)
+"bSr" = (
+/obj/structure/sign/poster/official/fruit_bowl{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel/white/corner{
+ dir = 1
+ },
+/area/hallway/primary/starboard)
"bSs" = (
/obj/structure/reagent_dispensers/watertank,
/turf/open/floor/plating,
@@ -41356,6 +42839,18 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
/area/tcommsat/computer)
+"bSu" = (
+/obj/machinery/camera{
+ c_tag = "Starboard Primary Hallway 2"
+ },
+/obj/structure/sign/poster/contraband/eat{
+ pixel_y = 32;
+ poster_item_desc = "This poster promotes obesity, it also promotes giving the Chef a reason to keep their job."
+ },
+/turf/open/floor/plasteel/white/corner{
+ dir = 1
+ },
+/area/hallway/primary/starboard)
"bSv" = (
/obj/machinery/camera{
c_tag = "Construction Area";
@@ -41459,20 +42954,13 @@
/area/engine/atmos)
"bSF" = (
/obj/structure/table,
-/obj/item/clothing/head/welding{
- pixel_x = -3;
- pixel_y = 7
+/obj/item/paper_bin,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
},
-/obj/item/clothing/head/welding{
- pixel_x = -5;
- pixel_y = 3
- },
-/obj/machinery/light{
- dir = 8
- },
-/obj/item/multitool,
+/obj/item/pen/fountain,
/turf/open/floor/plasteel,
-/area/engine/atmos)
+/area/tcommsat/computer)
"bSG" = (
/obj/structure/table,
/obj/item/stack/sheet/metal/fifty,
@@ -41513,6 +43001,12 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/engine/atmos)
+"bSL" = (
+/obj/structure/sign/poster/contraband/red_rum{
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
"bSM" = (
/obj/machinery/atmospherics/pipe/simple/cyan/visible{
dir = 4
@@ -41528,6 +43022,15 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/engine/atmos)
+"bSO" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/sign/poster/official/cohiba_robusto_ad{
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel/grimy,
+/area/security/detectives_office)
"bSP" = (
/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
dir = 4
@@ -41611,9 +43114,9 @@
/area/medical/virology)
"bSX" = (
/obj/machinery/power/apc/highcap/five_k{
+ areastring = "/area/medical/virology";
dir = 1;
name = "Virology APC";
- areastring = "/area/medical/virology";
pixel_y = 24
},
/obj/structure/cable{
@@ -41629,6 +43132,15 @@
/obj/machinery/vending/medical,
/turf/open/floor/plasteel/white,
/area/medical/virology)
+"bSZ" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/structure/sign/poster/contraband/have_a_puff{
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel/grimy,
+/area/security/detectives_office)
"bTa" = (
/obj/machinery/door/window/northleft{
dir = 4;
@@ -41810,6 +43322,13 @@
/obj/item/pen,
/turf/open/floor/plasteel/white,
/area/science/circuit)
+"bTq" = (
+/obj/structure/sign/poster/contraband/smoke{
+ desc = "This poster reminds us all that the Detective is a parasite. Year after year, they must get replacement lungs because of their addiction. ";
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel/grimy,
+/area/security/detectives_office)
"bTr" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -41818,6 +43337,68 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
+"bTs" = (
+/obj/structure/sign/poster/official/help_others{
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
+"bTt" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/obj/structure/reagent_dispensers/watertank,
+/turf/open/floor/plating,
+/area/maintenance/port)
+"bTu" = (
+/obj/machinery/recharge_station,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/sign/poster/official/state_laws{
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel,
+/area/science/robotics/mechbay)
+"bTv" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/structure/sign/poster/official/ian{
+ pixel_x = 32;
+ pixel_y = 32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bTw" = (
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/structure/sign/poster/official/love_ian{
+ pixel_x = 32;
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bTx" = (
+/obj/effect/turf_decal/bot,
+/obj/structure/sign/poster/official/pda_ad{
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
+"bTy" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/sign/poster/contraband/hacking_guide{
+ pixel_y = 32
+ },
+/turf/open/floor/plating,
+/area/maintenance/aft)
"bTz" = (
/obj/machinery/door/airlock/maintenance{
req_access_txt = "12"
@@ -41903,9 +43484,9 @@
/area/tcommsat/computer)
"bTJ" = (
/obj/machinery/power/apc{
- name = "Aft Hall APC";
areastring = "/area/hallway/primary/aft";
dir = 8;
+ name = "Aft Hall APC";
pixel_x = -25;
pixel_y = 1
},
@@ -42226,6 +43807,21 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plating,
/area/maintenance/port/aft)
+"bUw" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/sign/poster/contraband/free_drone{
+ pixel_y = 32
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
"bUx" = (
/obj/structure/disposalpipe/junction/yjunction{
dir = 1
@@ -42255,11 +43851,27 @@
},
/turf/open/floor/plating,
/area/maintenance/port/aft)
+"bUA" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "Engineering";
+ name = "engineering security door"
+ },
+/obj/effect/turf_decal/delivery,
+/obj/machinery/shower{
+ dir = 8
+ },
+/obj/structure/sign/warning/enginesafety{
+ pixel_x = 32
+ },
+/obj/structure/sign/poster/official/safety_eye_protection{
+ pixel_y = -32
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"bUB" = (
/obj/machinery/power/apc{
- dir = 2;
- name = "Telecomms Monitoring APC";
areastring = "/area/tcommsat/computer";
+ name = "Telecomms Monitoring APC";
pixel_y = -24
},
/obj/structure/cable{
@@ -42404,6 +44016,7 @@
/area/engine/atmos)
"bUU" = (
/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
+/obj/machinery/atmospherics/miner/n2o,
/turf/open/floor/engine/n2o,
/area/engine/atmos)
"bUV" = (
@@ -42416,6 +44029,13 @@
},
/turf/open/floor/engine/n2o,
/area/engine/atmos)
+"bUX" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/sign/poster/official/safety_eye_protection,
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
"bUY" = (
/obj/structure/disposalpipe/segment{
dir = 5
@@ -42511,7 +44131,6 @@
/area/hallway/primary/aft)
"bVg" = (
/obj/item/radio/intercom{
- broadcasting = 0;
name = "Station Intercom (General)";
pixel_y = 20
},
@@ -42634,10 +44253,12 @@
},
/turf/open/space,
/area/space/nearstation)
+"bVw" = (
+/obj/structure/sign/poster/official/safety_eye_protection,
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
"bVx" = (
-/obj/machinery/atmospherics/components/unary/outlet_injector/on{
- dir = 2
- },
+/obj/machinery/atmospherics/components/unary/outlet_injector/on,
/turf/open/floor/plating/airless,
/area/maintenance/port/aft)
"bVy" = (
@@ -42709,6 +44330,19 @@
},
/turf/open/floor/plating,
/area/maintenance/port/aft)
+"bVH" = (
+/obj/machinery/camera{
+ c_tag = "Engineering Storage";
+ dir = 4
+ },
+/obj/machinery/rnd/production/protolathe/department/engineering,
+/obj/structure/sign/poster/contraband/power{
+ desc = "Lord Singuloth must feed. Annoyingly, it's really easy for people to sabotage containment and let Lord Singuloth eat the entire station.. For this reason, Nanotrasen prefers Supermatter reactors.";
+ pixel_x = -32;
+ poster_item_desc = "This poster depicts Lord Singuloth. Nanotrasen doesn't approve. Nanotrasen wants Supermatter over Singularities, as they are usually much safer."
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"bVI" = (
/turf/closed/wall/r_wall,
/area/tcommsat/server)
@@ -42719,6 +44353,12 @@
/obj/machinery/vending/snack/random,
/turf/open/floor/plasteel,
/area/engine/break_room)
+"bVL" = (
+/obj/machinery/shower{
+ dir = 8
+ },
+/turf/open/floor/plasteel/freezer,
+/area/security/prison)
"bVM" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plating,
@@ -42902,6 +44542,13 @@
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
/area/medical/virology)
+"bWk" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/effect/landmark/start/assistant,
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
"bWl" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -42959,9 +44606,7 @@
/turf/open/floor/plasteel,
/area/science/misc_lab)
"bWq" = (
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 2
- },
+/obj/machinery/atmospherics/components/binary/pump,
/turf/open/floor/plasteel,
/area/science/misc_lab)
"bWr" = (
@@ -43040,9 +44685,9 @@
dir = 1
},
/obj/machinery/power/apc/highcap/five_k{
+ areastring = "/area/tcommsat/server";
dir = 1;
name = "Telecomms Server APC";
- areastring = "/area/tcommsat/server";
pixel_y = 25
},
/obj/structure/cable{
@@ -43156,8 +44801,6 @@
/area/security/checkpoint/engineering)
"bWR" = (
/obj/item/radio/intercom{
- freerange = 0;
- frequency = 1459;
name = "Station Intercom (General)";
pixel_x = -30
},
@@ -43447,6 +45090,17 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
/area/science/circuit)
+"bXu" = (
+/obj/machinery/camera{
+ c_tag = "Bar West";
+ dir = 4
+ },
+/obj/machinery/computer/arcade/orion_trail,
+/obj/structure/sign/poster/official/foam_force_ad{
+ pixel_x = -32
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"bXv" = (
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 4
@@ -43611,6 +45265,7 @@
/obj/effect/turf_decal/stripes/line{
dir = 8
},
+/obj/item/cartridge/atmos,
/turf/open/floor/plasteel,
/area/engine/atmos)
"bXS" = (
@@ -43618,23 +45273,15 @@
dir = 4
},
/obj/machinery/portable_atmospherics/canister,
-/obj/effect/turf_decal/bot{
- dir = 2
- },
-/turf/open/floor/plasteel{
- dir = 2
- },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
/area/engine/atmos)
"bXT" = (
/obj/machinery/atmospherics/components/unary/portables_connector/visible{
dir = 8
},
-/obj/effect/turf_decal/bot{
- dir = 2
- },
-/turf/open/floor/plasteel{
- dir = 2
- },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
/area/engine/atmos)
"bXU" = (
/obj/machinery/atmospherics/pipe/manifold/yellow/visible{
@@ -43773,12 +45420,8 @@
/area/science/misc_lab)
"bYk" = (
/obj/structure/reagent_dispensers/fueltank,
-/obj/effect/turf_decal/bot{
- dir = 2
- },
-/turf/open/floor/plasteel{
- dir = 2
- },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
/area/science/misc_lab)
"bYl" = (
/obj/structure/disposalpipe/segment,
@@ -43793,12 +45436,8 @@
/obj/structure/window/reinforced{
dir = 4
},
-/obj/effect/turf_decal/bot{
- dir = 2
- },
-/turf/open/floor/plasteel{
- dir = 2
- },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
/area/science/misc_lab)
"bYn" = (
/obj/structure/disposalpipe/segment,
@@ -43937,29 +45576,22 @@
/turf/open/floor/plasteel,
/area/tcommsat/computer)
"bYG" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/effect/turf_decal/tile/yellow,
-/obj/effect/turf_decal/tile/yellow{
- dir = 4
- },
-/obj/effect/turf_decal/tile/yellow{
+/obj/structure/chair{
dir = 8
},
+/obj/machinery/light,
+/obj/effect/landmark/start/assistant,
/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
+/area/quartermaster/office)
"bYH" = (
/turf/closed/wall,
/area/engine/break_room)
"bYI" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
-/obj/effect/turf_decal/tile/yellow{
- dir = 2
- },
+/obj/effect/turf_decal/tile/yellow,
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
"bYJ" = (
@@ -44046,6 +45678,7 @@
/area/engine/atmos)
"bYU" = (
/obj/machinery/portable_atmospherics/canister/toxins,
+/obj/machinery/atmospherics/miner/toxins,
/turf/open/floor/engine/plasma,
/area/engine/atmos)
"bYV" = (
@@ -44121,6 +45754,22 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/engine/break_room)
+"bZf" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/chair{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
"bZg" = (
/obj/structure/disposalpipe/segment{
dir = 10
@@ -44256,13 +45905,17 @@
/area/engine/break_room)
"bZz" = (
/obj/structure/table,
-/obj/machinery/cell_charger,
/obj/machinery/light_switch{
pixel_x = -23
},
/obj/machinery/light{
dir = 8
},
+/obj/item/book/manual/wiki/engineering_hacking{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/book/manual/wiki/engineering_construction,
/turf/open/floor/plasteel,
/area/engine/break_room)
"bZA" = (
@@ -44327,9 +45980,9 @@
/area/engine/break_room)
"bZF" = (
/obj/machinery/power/apc{
+ areastring = "/area/engine/atmos";
dir = 8;
name = "Atmospherics APC";
- areastring = "/area/engine/atmos";
pixel_x = -24
},
/obj/structure/cable{
@@ -44513,6 +46166,15 @@
},
/turf/open/floor/plasteel,
/area/science/misc_lab)
+"cab" = (
+/obj/structure/table,
+/obj/item/storage/pill_bottle/dice{
+ pixel_x = 4;
+ pixel_y = 4
+ },
+/obj/item/reagent_containers/food/snacks/cherrycupcake,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"cac" = (
/obj/structure/chair/stool,
/turf/open/floor/plating,
@@ -44555,6 +46217,18 @@
},
/turf/open/floor/circuit/telecomms/mainframe,
/area/tcommsat/server)
+"caj" = (
+/obj/structure/table,
+/obj/item/reagent_containers/food/drinks/soda_cans/starkist{
+ pixel_x = 5;
+ pixel_y = 7
+ },
+/obj/item/reagent_containers/food/drinks/soda_cans/dr_gibb{
+ pixel_x = -3;
+ pixel_y = 2
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"cak" = (
/obj/machinery/telecomms/hub/preset,
/obj/effect/turf_decal/tile/neutral{
@@ -44592,6 +46266,18 @@
},
/turf/open/floor/plasteel/dark,
/area/tcommsat/computer)
+"cam" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "kitchen";
+ name = "kitchen shutters"
+ },
+/obj/item/reagent_containers/food/snacks/bluecherrycupcake{
+ pixel_y = 5
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
"can" = (
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 8
@@ -44690,13 +46376,20 @@
/area/hallway/primary/aft)
"caw" = (
/obj/structure/table,
+/obj/item/storage/box/lights/mixed,
/obj/item/clothing/glasses/meson,
-/obj/machinery/airalarm{
- dir = 4;
- pixel_x = -22
+/obj/item/clothing/glasses/meson,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
},
/turf/open/floor/plasteel,
-/area/engine/break_room)
+/area/engine/engineering)
"cax" = (
/obj/structure/closet/wardrobe/black,
/obj/effect/decal/cleanable/cobweb,
@@ -44733,6 +46426,18 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/security/checkpoint/engineering)
+"caB" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "kitchen";
+ name = "kitchen shutters"
+ },
+/obj/item/reagent_containers/food/snacks/cheesynachos{
+ pixel_y = 5
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
"caC" = (
/obj/structure/disposalpipe/segment{
dir = 9
@@ -44861,9 +46566,7 @@
/obj/machinery/atmospherics/components/binary/valve{
dir = 4
},
-/obj/effect/turf_decal/stripes/line{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plating,
/area/maintenance/aft)
"caQ" = (
@@ -45000,9 +46703,9 @@
/area/science/misc_lab)
"cbd" = (
/obj/machinery/power/apc{
+ areastring = "/area/science/misc_lab";
dir = 4;
name = "Testing Lab APC";
- areastring = "/area/science/misc_lab";
pixel_x = 26
},
/obj/structure/cable{
@@ -45100,13 +46803,11 @@
/turf/open/floor/plating,
/area/tcommsat/computer)
"cbp" = (
-/obj/structure/closet/secure_closet/engineering_chief{
- req_access_txt = "0"
- },
+/obj/structure/closet/secure_closet/engineering_chief,
/obj/machinery/power/apc/highcap/five_k{
+ areastring = "/area/crew_quarters/heads/chief";
dir = 4;
name = "CE Office APC";
- areastring = "/area/crew_quarters/heads/chief";
pixel_x = 24
},
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
@@ -45170,16 +46871,14 @@
dir = 8;
pixel_y = -22
},
-/obj/effect/turf_decal/tile/yellow{
- dir = 2
- },
+/obj/effect/turf_decal/tile/yellow,
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
"cbu" = (
/obj/machinery/power/apc{
+ areastring = "/area/engine/break_room";
dir = 8;
name = "Engineering Foyer APC";
- areastring = "/area/engine/break_room";
pixel_x = -24
},
/obj/structure/cable{
@@ -45196,33 +46895,37 @@
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
"cbw" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 5
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/disposalpipe/sorting/mail/flip{
+ dir = 8;
+ sortType = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
},
/turf/open/floor/plating,
/area/maintenance/port/aft)
"cbx" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
+ dir = 10
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/plating,
-/area/maintenance/port/aft)
-"cby" = (
/obj/structure/cable{
icon_state = "1-2"
},
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
+"cby" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/structure/disposalpipe/segment,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 10
- },
/turf/open/floor/plating,
/area/maintenance/port/aft)
"cbz" = (
@@ -45419,6 +47122,11 @@
},
/turf/open/floor/plasteel,
/area/science/misc_lab)
+"cbX" = (
+/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
+/obj/machinery/atmospherics/miner/carbon_dioxide,
+/turf/open/floor/engine/co2,
+/area/engine/atmos)
"cbY" = (
/obj/structure/table/reinforced,
/obj/item/multitool,
@@ -45472,10 +47180,10 @@
/turf/open/space,
/area/solar/port/aft)
"ccd" = (
-/obj/structure/closet,
-/obj/effect/spawner/lootdrop/maintenance,
-/turf/open/floor/plating,
-/area/maintenance/port/aft)
+/obj/machinery/portable_atmospherics/canister/nitrogen,
+/obj/machinery/atmospherics/miner/nitrogen,
+/turf/open/floor/engine/n2,
+/area/engine/atmos)
"cce" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -45638,17 +47346,15 @@
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
"ccu" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/structure/cable{
- icon_state = "1-4"
- },
-/obj/structure/disposalpipe/segment{
- dir = 5
+ icon_state = "1-2"
},
/turf/open/floor/plating,
/area/maintenance/port/aft)
"ccv" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/turf/open/floor/plasteel,
@@ -45687,8 +47393,9 @@
/turf/open/floor/plasteel,
/area/engine/atmos)
"ccB" = (
-/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
-/turf/open/floor/engine/co2,
+/obj/machinery/portable_atmospherics/canister/oxygen,
+/obj/machinery/atmospherics/miner/oxygen,
+/turf/open/floor/engine/o2,
/area/engine/atmos)
"ccC" = (
/obj/machinery/air_sensor/atmos/carbon_tank,
@@ -45720,6 +47427,11 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plating,
/area/maintenance/aft)
+"ccH" = (
+/obj/structure/table,
+/obj/item/paper/fluff/holodeck/disclaimer,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
"ccI" = (
/obj/structure/disposalpipe/segment{
dir = 5
@@ -45802,13 +47514,23 @@
/area/science/xenobiology)
"ccR" = (
/obj/machinery/portable_atmospherics/pump,
-/obj/effect/turf_decal/bot{
- dir = 2
- },
-/turf/open/floor/plasteel{
- dir = 2
- },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
/area/science/misc_lab)
+"ccS" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/structure/window,
+/obj/structure/sign/poster/official/high_class_martini{
+ pixel_x = -32
+ },
+/obj/effect/landmark/start/assistant,
+/obj/structure/chair/sofa/left{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"ccT" = (
/obj/machinery/light{
dir = 4
@@ -45896,38 +47618,30 @@
/turf/open/floor/plasteel,
/area/tcommsat/computer)
"cdh" = (
-/obj/structure/disposalpipe/sorting/mail/flip{
- dir = 8;
- sortType = 4
+/obj/structure/lattice/catwalk,
+/obj/item/stack/marker_beacon{
+ anchored = 1;
+ icon_state = "markerburgundy-on";
+ light_power = 3;
+ light_range = 3;
+ name = "Docking Beacon";
+ picked_color = "Burgundy"
},
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plating,
-/area/maintenance/port/aft)
+/area/space/nearstation)
"cdi" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
+/obj/structure/grille,
+/obj/structure/lattice,
/turf/open/floor/plating,
-/area/maintenance/port/aft)
+/area/space/nearstation)
"cdj" = (
-/obj/structure/cable{
- icon_state = "1-8"
+/obj/structure/closet/crate/bin,
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
},
-/obj/structure/disposalpipe/segment{
- dir = 9
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plating,
-/area/maintenance/port/aft)
+/obj/item/cartridge/atmos,
+/turf/open/floor/engine,
+/area/engine/engineering)
"cdk" = (
/obj/machinery/computer/atmos_alert,
/obj/effect/turf_decal/tile/neutral{
@@ -45952,6 +47666,7 @@
/obj/item/paper/monitorkey,
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/item/pen/fountain,
/turf/open/floor/plasteel,
/area/crew_quarters/heads/chief)
"cdn" = (
@@ -45996,9 +47711,9 @@
/area/maintenance/starboard/aft)
"cds" = (
/obj/machinery/power/apc{
+ areastring = "/area/maintenance/starboard/aft";
dir = 8;
name = "Starboard Quarter Maintenance APC";
- areastring = "/area/maintenance/starboard/aft";
pixel_x = -25
},
/obj/structure/cable{
@@ -46165,6 +47880,13 @@
},
/turf/open/floor/plating,
/area/maintenance/aft)
+"cdM" = (
+/obj/structure/window,
+/obj/structure/chair/sofa/right{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"cdN" = (
/obj/structure/disposalpipe/segment{
dir = 9
@@ -46179,6 +47901,15 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
+"cdP" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
"cdQ" = (
/obj/structure/closet/emcloset,
/obj/effect/decal/cleanable/cobweb,
@@ -46190,12 +47921,8 @@
/area/maintenance/starboard/aft)
"cdS" = (
/obj/machinery/portable_atmospherics/scrubber,
-/obj/effect/turf_decal/bot{
- dir = 2
- },
-/turf/open/floor/plasteel{
- dir = 2
- },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
/area/science/misc_lab)
"cdT" = (
/obj/effect/turf_decal/stripes/line{
@@ -46223,9 +47950,9 @@
/area/maintenance/starboard/aft)
"cdW" = (
/obj/machinery/power/apc{
+ areastring = "/area/maintenance/port/aft";
dir = 8;
name = "Port Quarter Maintenance APC";
- areastring = "/area/maintenance/port/aft";
pixel_x = -25;
pixel_y = 1
},
@@ -46242,6 +47969,13 @@
},
/turf/open/floor/plasteel/white,
/area/science/research)
+"cdY" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
"cdZ" = (
/obj/machinery/telecomms/processor/preset_two,
/turf/open/floor/plasteel/dark/telecomms,
@@ -46316,16 +48050,18 @@
/turf/open/floor/plasteel,
/area/engine/engineering)
"cek" = (
-/obj/machinery/door/poddoor/preopen{
- id = "Engineering";
- name = "engineering security door"
- },
-/obj/effect/turf_decal/delivery,
-/obj/machinery/shower{
- dir = 8
+/obj/structure/closet/wardrobe/grey,
+/obj/machinery/requests_console{
+ department = "Locker Room";
+ pixel_x = -32
},
+/obj/item/clothing/under/assistantformal,
+/obj/item/clothing/under/assistantformal,
+/obj/item/clothing/under/assistantformal,
+/obj/item/clothing/under/color/grey,
+/obj/item/clothing/under/color/grey,
/turf/open/floor/plasteel,
-/area/engine/engineering)
+/area/crew_quarters/locker)
"cel" = (
/obj/machinery/door/poddoor/preopen{
id = "Engineering";
@@ -46402,6 +48138,18 @@
},
/turf/open/floor/plasteel,
/area/engine/engineering)
+"ceu" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
"cev" = (
/obj/effect/spawner/structure/window,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
@@ -46532,12 +48280,8 @@
/area/maintenance/starboard/aft)
"ceP" = (
/obj/machinery/portable_atmospherics/canister,
-/obj/effect/turf_decal/bot{
- dir = 2
- },
-/turf/open/floor/plasteel{
- dir = 2
- },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
/area/science/misc_lab)
"ceQ" = (
/obj/structure/cable{
@@ -46607,18 +48351,18 @@
"cfa" = (
/obj/structure/rack,
/obj/item/storage/belt/utility,
-/obj/item/wrench,
-/obj/item/weldingtool,
-/obj/item/clothing/head/welding{
- pixel_x = -3;
- pixel_y = 5
- },
/obj/effect/turf_decal/tile/yellow{
dir = 1
},
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
+/obj/item/weldingtool/largetank,
+/obj/item/clothing/head/welding{
+ pixel_x = -3;
+ pixel_y = 5
+ },
+/obj/item/clothing/glasses/welding,
/turf/open/floor/plasteel,
/area/engine/engineering)
"cfb" = (
@@ -46637,7 +48381,7 @@
/area/crew_quarters/heads/chief)
"cfd" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/structure/closet/radiation,
@@ -46661,6 +48405,16 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plating,
/area/maintenance/port/aft)
+"cff" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue,
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
"cfg" = (
/obj/structure/cable{
icon_state = "1-4"
@@ -46737,10 +48491,9 @@
/area/maintenance/aft)
"cfr" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{
- dir = 2;
external_pressure_bound = 140;
- pressure_checks = 0;
- name = "killroom vent"
+ name = "killroom vent";
+ pressure_checks = 0
},
/obj/machinery/camera{
c_tag = "Xenobiology Kill Room";
@@ -46804,14 +48557,33 @@
},
/turf/open/floor/plasteel,
/area/engine/engineering)
-"cfB" = (
-/obj/structure/closet/secure_closet/engineering_personal,
-/obj/effect/turf_decal/tile/yellow,
+"cfA" = (
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"cfB" = (
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/fitness)
+"cfC" = (
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
dir = 4
},
/turf/open/floor/plasteel,
-/area/engine/engineering)
+/area/crew_quarters/fitness)
"cfD" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/door/airlock/maintenance{
@@ -46824,6 +48596,18 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plating,
/area/maintenance/port/aft)
+"cfE" = (
+/obj/machinery/button/door{
+ desc = "Bolts the doors to the Private Study.";
+ id = "PrivateStudy";
+ name = "Private Study Lock";
+ pixel_x = 25;
+ pixel_y = 25;
+ req_access_txt = "";
+ req_one_access_txt = "28;63"
+ },
+/turf/open/floor/wood,
+/area/library)
"cfF" = (
/obj/machinery/suit_storage_unit/ce,
/obj/effect/turf_decal/stripes/line{
@@ -46858,17 +48642,15 @@
/turf/open/floor/plasteel/dark,
/area/crew_quarters/heads/chief)
"cfI" = (
-/obj/structure/closet/secure_closet/engineering_personal,
-/obj/machinery/airalarm{
- dir = 8;
- pixel_x = 24
+/obj/structure/cable{
+ icon_state = "1-8"
},
-/obj/effect/turf_decal/tile/yellow,
-/obj/effect/turf_decal/tile/yellow{
- dir = 4
+/obj/structure/disposalpipe/segment{
+ dir = 9
},
+/obj/effect/landmark/start/assistant,
/turf/open/floor/plasteel,
-/area/engine/engineering)
+/area/hallway/primary/central)
"cfJ" = (
/obj/machinery/light/small{
dir = 1
@@ -46932,6 +48714,14 @@
},
/turf/open/floor/plasteel,
/area/engine/atmos)
+"cfS" = (
+/obj/structure/closet,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 8;
+ name = "8maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
"cfT" = (
/obj/machinery/atmospherics/pipe/simple/green/visible{
dir = 9
@@ -46944,6 +48734,17 @@
},
/turf/closed/wall,
/area/maintenance/disposal/incinerator)
+"cfV" = (
+/obj/structure/table,
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -22
+ },
+/obj/item/stack/packageWrap,
+/obj/item/stack/packageWrap,
+/obj/item/hand_labeler,
+/turf/open/floor/plasteel,
+/area/engine/break_room)
"cfW" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -46956,9 +48757,8 @@
/area/maintenance/aft)
"cfX" = (
/obj/machinery/power/apc{
- dir = 2;
- name = "Incinerator APC";
areastring = "/area/maintenance/disposal/incinerator";
+ name = "Incinerator APC";
pixel_y = -24
},
/obj/structure/cable,
@@ -47067,7 +48867,6 @@
/area/science/xenobiology)
"cgl" = (
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{
- dir = 2;
external_pressure_bound = 120;
name = "killroom vent"
},
@@ -47097,11 +48896,11 @@
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
"cgp" = (
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
- dir = 1
+/obj/structure/rack,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 4;
+ name = "4maintenance loot spawner"
},
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
@@ -47139,9 +48938,8 @@
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
"cgu" = (
-/obj/structure/rack,
-/obj/effect/decal/cleanable/cobweb/cobweb2,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
"cgv" = (
@@ -47239,6 +49037,17 @@
},
/turf/open/floor/plating,
/area/maintenance/port/aft)
+"cgH" = (
+/obj/structure/closet/secure_closet/engineering_personal,
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/item/clothing/under/overalls,
+/obj/item/clothing/under/overalls,
+/obj/item/radio/headset/headset_eng,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"cgI" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
dir = 1
@@ -47266,6 +49075,34 @@
},
/turf/open/floor/engine,
/area/engine/engineering)
+"cgM" = (
+/obj/structure/closet/secure_closet/engineering_personal,
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/item/clothing/under/overalls,
+/obj/item/clothing/under/overalls,
+/obj/item/radio/headset/headset_eng,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"cgN" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/obj/structure/closet/secure_closet/engineering_electrical,
+/obj/item/storage/toolbox/artistic{
+ icon_state = "yellow";
+ item_state = "toolbox_yellow";
+ name = "Cable Toolbox";
+ pixel_y = 6
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"cgO" = (
/obj/structure/rack,
/obj/item/lighter,
@@ -47286,6 +49123,19 @@
},
/turf/open/floor/plasteel/dark,
/area/crew_quarters/heads/chief)
+"cgP" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/structure/closet/secure_closet/engineering_welding,
+/obj/item/clothing/glasses/welding,
+/obj/item/clothing/glasses/welding,
+/obj/item/clothing/glasses/welding,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"cgQ" = (
/obj/machinery/camera{
c_tag = "Engineering East";
@@ -47486,7 +49336,6 @@
dir = 1
},
/obj/machinery/atmospherics/components/binary/pump{
- dir = 2;
name = "atmospherics mix pump"
},
/turf/open/floor/plasteel,
@@ -47726,12 +49575,10 @@
/turf/open/space,
/area/solar/port/aft)
"chM" = (
-/obj/structure/cable{
- icon_state = "0-4"
- },
-/obj/structure/lattice/catwalk,
-/turf/open/space,
-/area/solar/port/aft)
+/obj/structure/closet/secure_closet/engineering_personal,
+/obj/item/radio/headset/headset_eng,
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
"chN" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -47791,6 +49638,22 @@
},
/turf/open/floor/plating,
/area/maintenance/port/aft)
+"chU" = (
+/obj/structure/rack,
+/obj/item/storage/toolbox/artistic{
+ icon_state = "yellow";
+ item_state = "toolbox_yellow";
+ name = "Cable Toolbox";
+ pixel_y = 6
+ },
+/obj/item/storage/toolbox/artistic{
+ icon_state = "yellow";
+ item_state = "toolbox_yellow";
+ name = "Cable Toolbox";
+ pixel_y = -4
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
"chV" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -47809,6 +49672,22 @@
},
/turf/open/floor/engine,
/area/engine/engineering)
+"chW" = (
+/obj/item/wrench,
+/obj/structure/rack,
+/obj/item/weldingtool/hugetank,
+/obj/item/clothing/head/welding{
+ pixel_x = -3;
+ pixel_y = 5
+ },
+/obj/item/clothing/head/welding{
+ pixel_x = -3;
+ pixel_y = 5
+ },
+/obj/item/clothing/glasses/welding,
+/obj/item/clothing/glasses/welding,
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
"chX" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -47825,6 +49704,10 @@
/obj/machinery/shieldgen,
/turf/open/floor/plating,
/area/engine/engineering)
+"chZ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/crew_quarters/locker)
"cia" = (
/obj/effect/turf_decal/bot{
dir = 1
@@ -47837,6 +49720,14 @@
},
/turf/open/floor/plasteel,
/area/engine/engineering)
+"cib" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 8;
+ name = "8maintenance loot spawner"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port/aft)
"cic" = (
/obj/effect/turf_decal/bot{
dir = 1
@@ -47859,9 +49750,9 @@
},
/obj/structure/reagent_dispensers/watertank,
/obj/machinery/power/apc/highcap/fifteen_k{
+ areastring = "/area/engine/engineering";
dir = 1;
name = "Engineering APC";
- areastring = "/area/engine/engineering";
pixel_y = 25
},
/obj/structure/cable{
@@ -47903,6 +49794,10 @@
"cig" = (
/turf/closed/wall,
/area/engine/engineering)
+"cih" = (
+/obj/effect/spawner/lootdrop/keg,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
"cii" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -47958,6 +49853,13 @@
},
/turf/open/floor/plasteel/dark,
/area/crew_quarters/heads/chief)
+"cil" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/light_construct{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
"cim" = (
/turf/open/floor/plasteel,
/area/crew_quarters/heads/chief)
@@ -48029,6 +49931,12 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/engine/atmos)
+"ciw" = (
+/obj/structure/light_construct{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
"cix" = (
/obj/machinery/atmospherics/pipe/simple/cyan/visible,
/turf/closed/wall/r_wall,
@@ -48118,8 +50026,10 @@
},
/area/maintenance/starboard/aft)
"ciK" = (
-/obj/structure/rack,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/door/airlock/maintenance{
+ req_access_txt = "12"
+ },
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
"ciL" = (
@@ -48172,17 +50082,16 @@
/obj/machinery/power/solar_control{
dir = 4;
id = "portsolar";
- name = "Port Quarter Solar Control";
- track = 0
+ name = "Port Quarter Solar Control"
},
/obj/structure/cable,
/turf/open/floor/plating,
/area/maintenance/solars/port/aft)
"ciR" = (
/obj/machinery/power/apc{
+ areastring = "/area/maintenance/solars/port/aft";
dir = 4;
name = "Port Quarter Solar APC";
- areastring = "/area/maintenance/solars/port/aft";
pixel_x = 23;
pixel_y = 2
},
@@ -48207,22 +50116,27 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plating,
/area/maintenance/port/aft)
+"ciV" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/light_construct{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
"ciW" = (
/obj/effect/landmark/blobstart,
/turf/open/floor/plating,
/area/engine/engineering)
"ciX" = (
-/obj/structure/closet/crate,
-/obj/item/stack/sheet/metal/fifty,
-/obj/item/stack/rods/fifty,
-/obj/item/stack/sheet/glass/fifty,
-/obj/item/electronics/airlock,
-/obj/item/electronics/airlock,
-/obj/item/stock_parts/cell/high/plus,
-/obj/item/stack/sheet/mineral/plasma{
- amount = 30
+/obj/machinery/light{
+ dir = 1
},
-/turf/open/floor/plating,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
/area/engine/engineering)
"ciY" = (
/obj/machinery/door/poddoor{
@@ -48698,6 +50612,11 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/heads/chief)
+"cjZ" = (
+/obj/structure/table,
+/obj/machinery/cell_charger,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"cka" = (
/obj/machinery/door/poddoor/preopen{
id = "testlab";
@@ -48807,14 +50726,22 @@
/turf/closed/wall,
/area/maintenance/starboard/aft)
"ckp" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/structure/rack,
/obj/effect/spawner/lootdrop/maintenance{
- lootcount = 2;
- name = "2maintenance loot spawner"
+ lootcount = 3;
+ name = "3maintenance loot spawner"
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
+"ckq" = (
+/obj/structure/table,
+/obj/item/stack/sheet/glass/fifty,
+/obj/item/stack/sheet/glass/fifty,
+/obj/item/stack/sheet/glass/fifty,
+/obj/item/stack/rods/fifty,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"ckr" = (
/obj/structure/reagent_dispensers/fueltank,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
@@ -48831,9 +50758,9 @@
/area/maintenance/solars/starboard/aft)
"ckt" = (
/obj/machinery/power/apc{
+ areastring = "/area/maintenance/solars/starboard/aft";
dir = 8;
name = "Starboard Quarter Solar APC";
- areastring = "/area/maintenance/solars/starboard/aft";
pixel_x = -26;
pixel_y = 3
},
@@ -48907,6 +50834,14 @@
},
/turf/open/floor/plasteel,
/area/engine/engineering)
+"ckE" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/door/airlock/maintenance{
+ name = "Locker Room Maintenance";
+ req_access_txt = "12"
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
"ckF" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel,
@@ -48931,6 +50866,15 @@
},
/turf/open/floor/plasteel,
/area/engine/engineering)
+"ckJ" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/obj/item/storage/toolbox/electrical,
+/turf/open/floor/plating,
+/area/maintenance/department/medical/morgue)
"ckK" = (
/obj/structure/tank_dispenser,
/obj/effect/turf_decal/bot{
@@ -48995,10 +50939,27 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/heads/chief)
+"ckP" = (
+/obj/structure/noticeboard{
+ pixel_y = -27
+ },
+/obj/structure/chair/sofa/right{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"ckQ" = (
/obj/structure/closet/cardboard,
/turf/open/floor/plasteel,
/area/quartermaster/warehouse)
+"ckR" = (
+/obj/structure/closet,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/item/coin/gold,
+/obj/item/coin/gold,
+/obj/item/coin/gold,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
"ckS" = (
/obj/structure/closet/cardboard,
/turf/open/floor/plating,
@@ -49072,9 +51033,7 @@
/turf/open/floor/plasteel,
/area/maintenance/disposal/incinerator)
"cle" = (
-/obj/machinery/atmospherics/pipe/simple/general/visible{
- dir = 2
- },
+/obj/machinery/atmospherics/pipe/simple/general/visible,
/turf/open/floor/plasteel,
/area/maintenance/disposal/incinerator)
"clf" = (
@@ -49188,13 +51147,10 @@
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
"cls" = (
-/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance{
- lootcount = 3;
- name = "3maintenance loot spawner"
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/plating,
+/turf/closed/wall,
/area/maintenance/starboard/aft)
"clt" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
@@ -49328,6 +51284,12 @@
},
/turf/open/floor/plasteel/dark,
/area/engine/engine_smes)
+"clH" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
"clI" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -49342,23 +51304,33 @@
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
/area/engine/engineering)
-"clM" = (
-/obj/structure/table,
-/obj/item/crowbar/large,
-/obj/item/storage/box/lights/mixed,
-/obj/item/clothing/glasses/meson,
-/obj/item/clothing/glasses/meson,
-/obj/effect/turf_decal/tile/yellow{
- dir = 1
+"clK" = (
+/obj/structure/closet/crate,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/stack/rods/fifty,
+/obj/item/stack/sheet/glass/fifty,
+/obj/item/electronics/airlock,
+/obj/item/electronics/airlock,
+/obj/item/stock_parts/cell/high/plus,
+/obj/item/stack/sheet/mineral/plasma{
+ amount = 30
},
-/obj/effect/turf_decal/tile/yellow{
- dir = 4
- },
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
- },
-/turf/open/floor/plasteel,
+/obj/item/lightreplacer,
+/obj/item/lightreplacer,
+/turf/open/floor/plating,
/area/engine/engineering)
+"clL" = (
+/obj/structure/table,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/item/coin/silver,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
+"clM" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/item/coin/silver,
+/turf/open/floor/plating,
+/area/maintenance/starboard/fore)
"clN" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/effect/turf_decal/tile/yellow{
@@ -49367,13 +51339,21 @@
/turf/open/floor/plasteel,
/area/engine/engineering)
"clO" = (
-/obj/machinery/vr_sleeper,
-/obj/effect/turf_decal/tile/red,
-/obj/effect/turf_decal/tile/red{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/landmark/start/janitor,
+/mob/living/simple_animal/hostile/lizard{
+ name = "Wags-His-Tail";
+ real_name = "Wags-His-Tail"
},
/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
+/area/janitor)
+"clP" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/reagent_dispensers/fueltank,
+/turf/open/floor/plating,
+/area/maintenance/port)
"clQ" = (
/obj/effect/turf_decal/tile/yellow{
dir = 1
@@ -49381,21 +51361,9 @@
/turf/open/floor/plasteel,
/area/engine/engineering)
"clR" = (
-/obj/machinery/light{
- dir = 1
- },
-/obj/structure/table,
-/obj/item/book/manual/wiki/engineering_hacking{
- pixel_x = 3;
- pixel_y = 3
- },
-/obj/item/book/manual/wiki/engineering_construction,
-/obj/item/clothing/glasses/meson,
-/obj/effect/turf_decal/tile/yellow{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/engine/engineering)
+/obj/machinery/portable_atmospherics/pump,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
"clS" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
/obj/machinery/rnd/production/techfab/department/security,
@@ -49406,28 +51374,30 @@
/turf/open/floor/plasteel,
/area/security/main)
"clT" = (
-/obj/machinery/portable_atmospherics/canister/nitrogen,
-/turf/open/floor/engine/n2,
-/area/engine/atmos)
+/obj/machinery/portable_atmospherics/scrubber,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
"clU" = (
/turf/open/floor/engine/n2,
/area/engine/atmos)
"clV" = (
-/obj/machinery/portable_atmospherics/canister/oxygen,
-/turf/open/floor/engine/o2,
-/area/engine/atmos)
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/central)
"clW" = (
/turf/open/floor/engine/o2,
/area/engine/atmos)
"clX" = (
-/obj/effect/landmark/event_spawn,
-/obj/effect/landmark/xmastree,
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
+/obj/machinery/light{
dir = 1
},
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
+/area/hallway/primary/central)
"clY" = (
/obj/effect/landmark/xeno_spawn,
/turf/open/floor/engine/air,
@@ -49435,17 +51405,28 @@
"clZ" = (
/turf/open/floor/engine/air,
/area/engine/atmos)
+"cma" = (
+/obj/machinery/hydroponics/constructable,
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_x = 29
+ },
+/turf/open/floor/plasteel/dark,
+/area/hydroponics)
"cmb" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/maintenance/disposal/incinerator)
"cmc" = (
-/obj/machinery/atmospherics/pipe/simple/general/visible{
- dir = 2
+/obj/machinery/camera{
+ c_tag = "Starboard Primary Hallway"
},
-/turf/closed/wall/r_wall,
-/area/maintenance/disposal/incinerator)
+/obj/item/radio/intercom{
+ pixel_y = 25
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/starboard)
"cmd" = (
/turf/closed/wall/r_wall,
/area/maintenance/disposal/incinerator)
@@ -49509,15 +51490,27 @@
},
/turf/open/floor/plasteel/showroomfloor,
/area/security/warden)
+"cmm" = (
+/obj/structure/table,
+/obj/item/reagent_containers/food/condiment/flour,
+/obj/item/kitchen/rollingpin,
+/turf/open/floor/plasteel/cafeteria,
+/area/crew_quarters/kitchen)
"cmn" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating,
-/area/maintenance/starboard/aft)
+/obj/structure/table/wood,
+/obj/item/storage/pill_bottle/dice,
+/turf/open/floor/plasteel,
+/area/security/prison)
"cmo" = (
/obj/structure/rack,
/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
+"cmp" = (
+/obj/structure/table/wood,
+/obj/item/toy/cards/deck,
+/turf/open/floor/plasteel,
+/area/security/prison)
"cmq" = (
/obj/effect/landmark/xeno_spawn,
/obj/structure/disposalpipe/segment,
@@ -49526,21 +51519,18 @@
},
/area/maintenance/starboard/aft)
"cmr" = (
-/obj/structure/closet/toolcloset,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 5
+/obj/structure/chair/comfy/brown{
+ dir = 8
},
-/turf/open/floor/plating,
-/area/maintenance/starboard/aft)
+/turf/open/floor/plasteel,
+/area/security/prison)
"cms" = (
-/obj/machinery/door/airlock/maintenance{
- req_access_txt = "12"
+/obj/structure/chair/comfy/brown{
+ color = "#66b266";
+ dir = 1
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/maintenance/starboard/aft)
+/turf/open/floor/plasteel,
+/area/security/prison)
"cmt" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
@@ -49567,8 +51557,7 @@
/obj/machinery/power/solar_control{
dir = 1;
id = "starboardsolar";
- name = "Starboard Quarter Solar Control";
- track = 0
+ name = "Starboard Quarter Solar Control"
},
/obj/structure/cable{
icon_state = "0-4"
@@ -49648,6 +51637,13 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
/area/engine/engineering)
+"cmE" = (
+/obj/structure/chair/comfy/brown{
+ color = "#596479";
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
"cmF" = (
/obj/effect/turf_decal/tile/yellow{
dir = 1
@@ -49659,7 +51655,7 @@
/area/engine/engineering)
"cmG" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/structure/cable{
@@ -49676,6 +51672,34 @@
},
/turf/open/floor/plasteel,
/area/engine/engineering)
+"cmH" = (
+/obj/item/electropack/shockcollar,
+/obj/item/assembly/signaler,
+/turf/open/floor/plating,
+/area/security/prison)
+"cmI" = (
+/obj/structure/bed,
+/obj/effect/spawner/lootdrop/bedsheet,
+/turf/open/floor/plating,
+/area/security/prison)
+"cmJ" = (
+/obj/machinery/door/airlock/external{
+ name = "External Access";
+ req_access_txt = "13"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
+"cmK" = (
+/obj/machinery/door/airlock/external{
+ name = "External Access";
+ req_access_txt = "13"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/starboard/aft)
"cmL" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -49725,9 +51749,7 @@
/turf/open/floor/plasteel,
/area/construction)
"cmY" = (
-/obj/machinery/atmospherics/components/binary/pump/on{
- dir = 2
- },
+/obj/machinery/atmospherics/components/binary/pump/on,
/obj/machinery/light/small{
dir = 8
},
@@ -49877,9 +51899,6 @@
/area/engine/engine_smes)
"cnr" = (
/obj/machinery/door/window/southleft{
- base_state = "left";
- dir = 2;
- icon_state = "left";
name = "Engineering Delivery";
req_access_txt = "10"
},
@@ -49971,7 +51990,6 @@
/area/maintenance/aft)
"cnF" = (
/obj/machinery/atmospherics/components/binary/pump/on{
- dir = 2;
name = "Waste Out"
},
/obj/structure/disposalpipe/segment{
@@ -49996,11 +52014,6 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
-"cnJ" = (
-/obj/structure/disposalpipe/segment,
-/obj/effect/spawner/lootdrop/maintenance,
-/turf/open/floor/plating,
-/area/maintenance/starboard/aft)
"cnK" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -50390,39 +52403,18 @@
pixel_x = 3;
pixel_y = -3
},
-/obj/effect/turf_decal/bot{
- dir = 2
- },
+/obj/effect/turf_decal/bot,
/obj/structure/window/reinforced{
dir = 1;
layer = 2.9
},
-/turf/open/floor/plasteel{
- dir = 2
- },
+/turf/open/floor/plasteel,
/area/ai_monitored/security/armory)
"coT" = (
/obj/machinery/atmospherics/pipe/simple/general/visible,
/obj/machinery/meter,
/turf/open/floor/engine,
/area/science/misc_lab)
-"coZ" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 10
- },
-/obj/structure/closet/secure_closet/engineering_electrical,
-/turf/open/floor/plasteel,
-/area/engine/engineering)
-"cpa" = (
-/obj/machinery/light{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 5
- },
-/obj/structure/closet/secure_closet/engineering_welding,
-/turf/open/floor/plasteel,
-/area/engine/engineering)
"cpb" = (
/obj/structure/closet/emcloset,
/obj/machinery/light/small{
@@ -50484,9 +52476,7 @@
/turf/open/floor/plasteel,
/area/engine/engine_smes)
"cpk" = (
-/obj/effect/turf_decal/stripes/corner{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/corner,
/turf/open/floor/plasteel,
/area/engine/engine_smes)
"cpl" = (
@@ -50542,13 +52532,6 @@
},
/turf/open/floor/plasteel,
/area/engine/engineering)
-"cps" = (
-/obj/structure/table,
-/obj/item/stack/sheet/glass/fifty,
-/obj/item/stack/sheet/glass/fifty,
-/obj/item/stack/sheet/glass/fifty,
-/turf/open/floor/plasteel,
-/area/engine/engineering)
"cpt" = (
/obj/structure/table,
/obj/item/clothing/gloves/color/yellow,
@@ -50648,7 +52631,6 @@
"cpO" = (
/obj/structure/lattice,
/obj/machinery/atmospherics/components/binary/pump/on{
- dir = 2;
name = "Incinerator Output Pump"
},
/turf/open/space,
@@ -50672,9 +52654,8 @@
"cpS" = (
/obj/structure/cable,
/obj/machinery/power/apc{
- dir = 2;
- name = "SMES room APC";
areastring = "/area/engine/engine_smes";
+ name = "SMES room APC";
pixel_y = -24
},
/obj/effect/turf_decal/stripes/line{
@@ -50705,25 +52686,12 @@
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/engine/engine_smes)
-"cpV" = (
-/obj/machinery/camera{
- c_tag = "Engineering Storage";
- dir = 4
- },
-/obj/machinery/rnd/production/protolathe/department/engineering,
-/turf/open/floor/plasteel,
-/area/engine/engineering)
"cpW" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 1
},
/turf/open/floor/plasteel,
/area/engine/engineering)
-"cpX" = (
-/obj/structure/table,
-/obj/item/stack/rods/fifty,
-/turf/open/floor/plasteel,
-/area/engine/engineering)
"cpY" = (
/obj/structure/cable{
icon_state = "2-8"
@@ -50905,13 +52873,6 @@
/obj/machinery/door/poddoor/incinerator_atmos_main,
/turf/open/floor/engine/vacuum,
/area/maintenance/disposal/incinerator)
-"cqu" = (
-/obj/machinery/door/airlock/external{
- name = "External Access";
- req_access_txt = "13"
- },
-/turf/open/floor/plating,
-/area/maintenance/starboard/aft)
"cqv" = (
/obj/effect/decal/cleanable/cobweb/cobweb2,
/turf/open/floor/plating,
@@ -50969,7 +52930,7 @@
dir = 4
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/turf/open/floor/engine,
@@ -51025,11 +52986,6 @@
},
/turf/open/floor/plasteel/dark,
/area/ai_monitored/security/armory)
-"cqJ" = (
-/obj/structure/cable,
-/obj/structure/lattice/catwalk,
-/turf/open/space,
-/area/solar/starboard/aft)
"cqK" = (
/obj/structure/table,
/obj/effect/spawner/lootdrop/maintenance{
@@ -51044,12 +53000,6 @@
},
/turf/open/floor/plating,
/area/maintenance/port/aft)
-"cqM" = (
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
"cqN" = (
/obj/structure/table,
/obj/item/stack/sheet/metal/fifty,
@@ -51079,10 +53029,6 @@
},
/turf/open/floor/plasteel,
/area/engine/engineering)
-"cqQ" = (
-/obj/structure/reagent_dispensers/watertank,
-/turf/open/floor/plasteel,
-/area/engine/engineering)
"cqR" = (
/obj/structure/reagent_dispensers/fueltank,
/turf/open/floor/plasteel,
@@ -51131,7 +53077,6 @@
/area/engine/supermatter)
"crb" = (
/obj/machinery/atmospherics/components/binary/pump{
- dir = 2;
name = "Gas to Chamber"
},
/obj/effect/decal/cleanable/dirt,
@@ -51158,12 +53103,6 @@
},
/turf/open/floor/plating,
/area/engine/engineering)
-"cri" = (
-/obj/structure/disposalpipe/segment{
- dir = 5
- },
-/turf/open/floor/plating,
-/area/maintenance/starboard/aft)
"crk" = (
/obj/structure/lattice/catwalk,
/turf/open/space,
@@ -51252,9 +53191,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
-/obj/effect/turf_decal/stripes/corner{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/corner,
/turf/open/floor/plasteel,
/area/hallway/secondary/entry)
"crz" = (
@@ -51545,14 +53482,6 @@
/obj/machinery/atmospherics/pipe/heat_exchanging/simple,
/turf/open/space,
/area/space/nearstation)
-"csy" = (
-/obj/structure/table,
-/obj/item/weldingtool,
-/obj/structure/disposalpipe/segment{
- dir = 10
- },
-/turf/open/floor/plating,
-/area/maintenance/starboard/aft)
"csA" = (
/obj/machinery/door/poddoor/shutters/preopen{
id = "engsm";
@@ -51570,13 +53499,6 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/ai_monitored/turret_protected/aisat_interior)
-"csE" = (
-/obj/structure/cable{
- icon_state = "0-2"
- },
-/obj/structure/lattice/catwalk,
-/turf/open/space,
-/area/solar/starboard/aft)
"csH" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -51662,27 +53584,6 @@
},
/turf/open/floor/plating,
/area/ai_monitored/turret_protected/aisat_interior)
-"csY" = (
-/obj/structure/cable{
- icon_state = "0-2"
- },
-/obj/structure/cable{
- icon_state = "0-4"
- },
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/obj/structure/cable,
-/obj/structure/lattice/catwalk,
-/turf/open/space,
-/area/solar/starboard/aft)
-"csZ" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/structure/lattice/catwalk,
-/turf/open/space,
-/area/solar/starboard/aft)
"cta" = (
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 4
@@ -51981,7 +53882,7 @@
pixel_y = 4
},
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/effect/turf_decal/tile/neutral{
@@ -52034,9 +53935,9 @@
icon_state = "0-8"
},
/obj/machinery/power/apc{
+ areastring = "/area/ai_monitored/turret_protected/aisat_interior";
dir = 4;
name = "MiniSat Foyer APC";
- areastring = "/area/ai_monitored/turret_protected/aisat_interior";
pixel_x = 27
},
/obj/structure/chair,
@@ -52101,8 +54002,6 @@
"cud" = (
/obj/machinery/turretid{
control_area = "/area/ai_monitored/turret_protected/aisat_interior";
- enabled = 1;
- icon_state = "control_standby";
name = "Antechamber Turret Control";
pixel_y = -24;
req_access = null;
@@ -52181,7 +54080,6 @@
/area/ai_monitored/turret_protected/aisat/service)
"cun" = (
/obj/machinery/atmospherics/components/binary/pump{
- dir = 2;
name = "Mix to MiniSat"
},
/obj/effect/turf_decal/stripes/line,
@@ -52190,12 +54088,10 @@
"cuo" = (
/obj/machinery/portable_atmospherics/canister/air,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
-/obj/effect/turf_decal/stripes/corner{
- dir = 2
- },
+/obj/effect/turf_decal/stripes/corner,
/turf/open/floor/plating,
/area/ai_monitored/turret_protected/aisat/atmos)
"cup" = (
@@ -52279,7 +54175,7 @@
amount = 35
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/effect/turf_decal/stripes/corner{
@@ -52347,8 +54243,6 @@
},
/obj/machinery/turretid{
control_area = "/area/ai_monitored/turret_protected/aisat/atmos";
- enabled = 1;
- icon_state = "control_standby";
name = "Atmospherics Turret Control";
pixel_x = -27;
req_access = null;
@@ -52374,8 +54268,6 @@
},
/obj/machinery/turretid{
control_area = "/area/ai_monitored/turret_protected/aisat/service";
- enabled = 1;
- icon_state = "control_standby";
name = "Service Bay Turret Control";
pixel_x = 27;
req_access = null;
@@ -52464,9 +54356,9 @@
/area/ai_monitored/turret_protected/aisat/atmos)
"cuM" = (
/obj/machinery/power/apc{
+ areastring = "/area/ai_monitored/turret_protected/aisat/atmos";
dir = 8;
name = "MiniSat Atmospherics APC";
- areastring = "/area/ai_monitored/turret_protected/aisat/atmos";
pixel_x = -27
},
/obj/structure/cable{
@@ -52590,9 +54482,9 @@
/area/ai_monitored/turret_protected/aisat/service)
"cuX" = (
/obj/machinery/power/apc{
+ areastring = "/area/ai_monitored/turret_protected/aisat/service";
dir = 4;
name = "MiniSat Service Bay APC";
- areastring = "/area/ai_monitored/turret_protected/aisat/service";
pixel_x = 27
},
/obj/structure/cable{
@@ -52677,8 +54569,6 @@
},
/obj/machinery/turretid{
control_area = "/area/ai_monitored/turret_protected/aisat/hallway";
- enabled = 1;
- icon_state = "control_standby";
name = "Chamber Hallway Turret Control";
pixel_x = 32;
pixel_y = -24;
@@ -52796,23 +54686,18 @@
"cvx" = (
/obj/effect/landmark/start/ai/secondary,
/obj/item/radio/intercom{
- anyai = 1;
freerange = 1;
listening = 0;
name = "Custom Channel";
pixel_y = 28
},
/obj/item/radio/intercom{
- broadcasting = 0;
freerange = 1;
- listening = 1;
name = "Common Channel";
pixel_x = -27;
pixel_y = 5
},
/obj/item/radio/intercom{
- anyai = 1;
- broadcasting = 0;
freerange = 1;
frequency = 1447;
name = "Private Channel";
@@ -52835,23 +54720,18 @@
"cvA" = (
/obj/effect/landmark/start/ai/secondary,
/obj/item/radio/intercom{
- anyai = 1;
freerange = 1;
listening = 0;
name = "Custom Channel";
pixel_y = 28
},
/obj/item/radio/intercom{
- broadcasting = 0;
freerange = 1;
- listening = 1;
name = "Common Channel";
pixel_x = 27;
pixel_y = 5
},
/obj/item/radio/intercom{
- anyai = 1;
- broadcasting = 0;
freerange = 1;
frequency = 1447;
name = "Private Channel";
@@ -52950,7 +54830,7 @@
network = list("aicore")
},
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/turf/open/floor/circuit,
@@ -53047,9 +54927,9 @@
"cwa" = (
/obj/structure/cable,
/obj/machinery/power/apc{
+ areastring = "/area/ai_monitored/turret_protected/aisat/hallway";
dir = 4;
name = "MiniSat Chamber Hallway APC";
- areastring = "/area/ai_monitored/turret_protected/aisat/hallway";
pixel_x = 27
},
/turf/open/floor/circuit,
@@ -53148,7 +55028,7 @@
dir = 8
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/turf/open/floor/plasteel/dark,
@@ -53246,13 +55126,6 @@
},
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/ai)
-"cwy" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/table_frame,
-/obj/item/wirerod,
-/obj/effect/spawner/lootdrop/maintenance,
-/turf/open/floor/plating,
-/area/maintenance/starboard/aft)
"cwz" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 5
@@ -53312,9 +55185,8 @@
icon_state = "0-8"
},
/obj/machinery/power/apc/highcap/five_k{
- dir = 2;
- name = "AI Chamber APC";
areastring = "/area/ai_monitored/turret_protected/ai";
+ name = "AI Chamber APC";
pixel_y = -24
},
/obj/machinery/flasher{
@@ -53454,14 +55326,6 @@
},
/turf/open/floor/plating,
/area/security/processing)
-"cxW" = (
-/obj/effect/mapping_helpers/airlock/cyclelink_helper,
-/obj/machinery/door/airlock/external{
- name = "External Access";
- req_access_txt = "13"
- },
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
"cxY" = (
/obj/machinery/camera{
c_tag = "Arrivals Escape Pod 1";
@@ -53740,15 +55604,6 @@
/obj/effect/landmark/event_spawn,
/turf/open/floor/plasteel,
/area/hallway/secondary/exit)
-"czP" = (
-/obj/structure/chair/stool/bar,
-/obj/effect/landmark/event_spawn,
-/obj/effect/turf_decal/tile/bar,
-/obj/effect/turf_decal/tile/bar{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/bar)
"czQ" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/disposalpipe/segment,
@@ -53995,15 +55850,6 @@
/obj/structure/closet/secure_closet/freezer/kitchen/maintenance,
/turf/open/floor/plating,
/area/maintenance/port/aft)
-"cAz" = (
-/obj/structure/disposalpipe/segment{
- dir = 5
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/chapel/office)
"cAA" = (
/obj/machinery/light/small{
dir = 1
@@ -54049,9 +55895,8 @@
icon_state = "4-8"
},
/obj/machinery/power/apc{
- dir = 2;
- name = "Head of Personnel APC";
areastring = "/area/crew_quarters/heads/hop";
+ name = "Head of Personnel APC";
pixel_y = -24
},
/obj/structure/cable{
@@ -54079,14 +55924,6 @@
/obj/machinery/light/small,
/turf/open/floor/plating,
/area/maintenance/port/aft)
-"cAL" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/mob/living/simple_animal/hostile/lizard{
- name = "Wags-His-Tail";
- real_name = "Wags-His-Tail"
- },
-/turf/open/floor/plasteel,
-/area/janitor)
"cAN" = (
/obj/machinery/door/airlock/maintenance{
name = "Security Maintenance";
@@ -54125,23 +55962,18 @@
"cAS" = (
/obj/effect/landmark/start/ai,
/obj/item/radio/intercom{
- broadcasting = 0;
freerange = 1;
- listening = 1;
name = "Common Channel";
pixel_x = -27;
pixel_y = -9
},
/obj/item/radio/intercom{
- anyai = 1;
freerange = 1;
listening = 0;
name = "Custom Channel";
pixel_y = -31
},
/obj/item/radio/intercom{
- anyai = 1;
- broadcasting = 0;
freerange = 1;
frequency = 1447;
name = "Private Channel";
@@ -54236,7 +56068,6 @@
"cBb" = (
/obj/machinery/camera/motion{
c_tag = "MiniSat AI Chamber South";
- dir = 2;
network = list("aicore")
},
/turf/open/floor/circuit,
@@ -54268,7 +56099,6 @@
"cBf" = (
/obj/machinery/camera{
c_tag = "MiniSat External South";
- dir = 2;
network = list("minisat");
start_active = 1
},
@@ -54318,14 +56148,6 @@
/obj/effect/landmark/event_spawn,
/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
-"cBn" = (
-/obj/machinery/camera{
- c_tag = "Locker Room Toilets";
- dir = 8
- },
-/obj/effect/landmark/event_spawn,
-/turf/open/floor/plasteel/freezer,
-/area/crew_quarters/toilet/locker)
"cBo" = (
/obj/effect/landmark/event_spawn,
/turf/open/floor/wood,
@@ -54401,7 +56223,6 @@
/area/science/xenobiology)
"cBA" = (
/obj/machinery/button/massdriver{
- dir = 2;
id = "toxinsdriver";
pixel_y = 24
},
@@ -54540,18 +56361,6 @@
/obj/effect/landmark/event_spawn,
/turf/open/floor/plasteel/dark,
/area/ai_monitored/turret_protected/aisat/hallway)
-"cBT" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/light/small{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/maintenance/starboard/aft)
-"cBU" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/closet/emcloset,
-/turf/open/floor/plating,
-/area/maintenance/starboard/aft)
"cBV" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/security{
@@ -54626,31 +56435,6 @@
},
/turf/closed/wall,
/area/security/detectives_office)
-"cCl" = (
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/turf/open/floor/plating,
-/area/maintenance/port)
-"cCm" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plating,
-/area/maintenance/port)
-"cCn" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/obj/machinery/power/apc{
- dir = 4;
- name = "Detective's Office APC";
- areastring = "/area/security/detectives_office";
- pixel_x = 24
- },
-/obj/structure/cable,
-/turf/open/floor/plating,
-/area/maintenance/port)
"cCo" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
@@ -55138,7 +56922,7 @@
/area/engine/engineering)
"cEk" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/turf/open/floor/plasteel/dark,
@@ -55187,7 +56971,6 @@
"cEu" = (
/obj/machinery/camera{
c_tag = "Supermatter Chamber";
- dir = 2;
network = list("engine");
pixel_x = 23
},
@@ -55382,7 +57165,6 @@
icon_state = "1-4"
},
/obj/machinery/atmospherics/components/binary/pump{
- dir = 2;
name = "Cooling Loop Bypass"
},
/turf/open/floor/engine,
@@ -55547,7 +57329,6 @@
},
/obj/machinery/camera{
c_tag = "Engineering Supermatter Aft";
- dir = 2;
network = list("ss13","engine");
pixel_x = 23
},
@@ -55599,13 +57380,6 @@
},
/turf/open/floor/plasteel/dark,
/area/engine/engineering)
-"cGd" = (
-/obj/structure/closet/crate/bin,
-/obj/effect/turf_decal/stripes/line{
- dir = 10
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
"cGe" = (
/obj/structure/cable{
icon_state = "2-8"
@@ -55654,10 +57428,6 @@
/obj/machinery/light,
/turf/open/floor/plasteel/dark,
/area/engine/engineering)
-"cGl" = (
-/obj/structure/closet/secure_closet/engineering_personal,
-/turf/open/floor/plasteel/dark,
-/area/engine/engineering)
"cGr" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 5
@@ -55913,7 +57683,6 @@
/area/science/robotics/mechbay)
"cHF" = (
/obj/machinery/button/door{
- dir = 2;
id = "Skynet_launch";
name = "Mech Bay Door Control";
pixel_x = 6;
@@ -56262,9 +58031,9 @@
/area/quartermaster/sorting)
"cNL" = (
/obj/machinery/power/apc{
+ areastring = "/area/maintenance/central";
dir = 1;
name = "Central Maintenance APC";
- areastring = "/area/maintenance/central";
pixel_y = 24
},
/obj/structure/cable{
@@ -56299,9 +58068,9 @@
/area/maintenance/starboard)
"cNS" = (
/obj/machinery/power/apc{
+ areastring = "/area/maintenance/starboard";
dir = 4;
name = "Starboard Maintenance APC";
- areastring = "/area/maintenance/starboard";
pixel_x = 26
},
/obj/structure/cable{
@@ -56430,12 +58199,6 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
-"cSz" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/turf/closed/wall,
-/area/chapel/main)
"cSA" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -56528,7 +58291,6 @@
"cSM" = (
/obj/machinery/computer/station_alert,
/obj/item/radio/intercom{
- broadcasting = 0;
name = "Station Intercom (General)";
pixel_y = 20
},
@@ -56727,7 +58489,6 @@
icon_state = "4-8"
},
/obj/machinery/requests_console{
- announcementConsole = 0;
department = "Engineering";
departmentType = 4;
name = "Engineering RC";
@@ -56746,9 +58507,9 @@
icon_state = "1-2"
},
/obj/machinery/power/apc{
+ areastring = "/area/maintenance/central/secondary";
dir = 8;
name = "Central Maintenance APC";
- areastring = "/area/maintenance/central/secondary";
pixel_x = -24
},
/obj/structure/cable{
@@ -56772,12 +58533,6 @@
},
/turf/open/floor/plating,
/area/maintenance/port/aft)
-"cTI" = (
-/obj/machinery/door/airlock/maintenance/abandoned{
- req_access_txt = "12"
- },
-/turf/open/floor/plating,
-/area/maintenance/starboard/aft)
"cTJ" = (
/obj/machinery/door/airlock/maintenance{
req_access_txt = "12"
@@ -56808,9 +58563,9 @@
/area/medical/morgue)
"cTM" = (
/obj/machinery/power/apc{
+ areastring = "/area/maintenance/department/medical/morgue";
dir = 4;
name = "Morgue Maintenance APC";
- areastring = "/area/maintenance/department/medical/morgue";
pixel_x = 26
},
/obj/structure/cable{
@@ -57015,13 +58770,6 @@
icon_state = "wood-broken4"
},
/area/maintenance/bar)
-"fGf" = (
-/obj/machinery/smartfridge/disks{
- pixel_y = 2
- },
-/obj/structure/table,
-/turf/open/floor/plasteel,
-/area/hydroponics)
"fKl" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/effect/landmark/event_spawn,
@@ -57032,17 +58780,10 @@
dir = 4
},
/obj/machinery/firealarm{
- dir = 2;
pixel_y = 24
},
/turf/open/floor/plasteel/white,
/area/medical/medbay/central)
-"gbq" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plating,
-/area/construction)
"gbT" = (
/obj/structure/table,
/obj/item/stack/sheet/metal/fifty,
@@ -57058,18 +58799,6 @@
"gjl" = (
/turf/closed/wall,
/area/quartermaster/warehouse)
-"gsz" = (
-/obj/machinery/camera{
- c_tag = "Fitness Room South";
- dir = 1
- },
-/obj/machinery/vr_sleeper,
-/obj/effect/turf_decal/tile/green,
-/obj/effect/turf_decal/tile/green{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/fitness)
"gwd" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -57098,12 +58827,6 @@
},
/turf/open/floor/wood,
/area/maintenance/bar)
-"gOZ" = (
-/obj/machinery/door/airlock/maintenance{
- req_access_txt = "12"
- },
-/turf/open/floor/plating,
-/area/crew_quarters/fitness)
"gWd" = (
/obj/structure/cable{
icon_state = "1-4"
@@ -57128,9 +58851,9 @@
icon_state = "1-2"
},
/obj/machinery/power/apc{
+ areastring = "/area/quartermaster/warehouse";
dir = 4;
name = "Cargo Warehouse APC";
- areastring = "/area/quartermaster/warehouse";
pixel_x = 26
},
/obj/structure/cable{
@@ -57138,10 +58861,6 @@
},
/turf/open/floor/plating,
/area/maintenance/port)
-"hwu" = (
-/obj/machinery/vr_sleeper,
-/turf/open/floor/plasteel,
-/area/security/prison)
"hEm" = (
/obj/item/twohanded/required/kirbyplants{
icon_state = "plant-22"
@@ -57159,13 +58878,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel/white,
/area/science/circuit)
-"ihn" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/vr_sleeper,
-/turf/open/floor/plasteel,
-/area/security/prison)
"iiW" = (
/turf/open/floor/wood,
/area/maintenance/bar)
@@ -57255,12 +58967,6 @@
/obj/machinery/rnd/production/techfab/department/cargo,
/turf/open/floor/plasteel,
/area/quartermaster/office)
-"jnR" = (
-/obj/machinery/atmospherics/components/binary/valve{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
"jqv" = (
/obj/structure/chair/wood/normal{
dir = 1
@@ -57311,15 +59017,6 @@
},
/turf/open/floor/wood,
/area/maintenance/port/aft)
-"jMY" = (
-/obj/structure/table,
-/obj/item/stack/cable_coil{
- pixel_x = 3;
- pixel_y = -7
- },
-/obj/item/stack/cable_coil,
-/turf/open/floor/plasteel/dark,
-/area/engine/engineering)
"jSO" = (
/obj/machinery/light{
dir = 4
@@ -57338,14 +59035,6 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
-"khb" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 10
- },
-/obj/structure/table,
-/obj/item/kitchen/rollingpin,
-/turf/open/floor/plasteel,
-/area/hallway/secondary/service)
"khB" = (
/obj/machinery/door/airlock/external{
req_access_txt = "13"
@@ -57390,14 +59079,6 @@
},
/turf/open/floor/plasteel,
/area/hallway/secondary/service)
-"kQk" = (
-/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance{
- lootcount = 2;
- name = "2maintenance loot spawner"
- },
-/turf/open/floor/plating,
-/area/maintenance/department/medical/morgue)
"kQq" = (
/obj/effect/turf_decal/stripes/line,
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
@@ -57437,14 +59118,6 @@
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
/area/science/circuit)
-"mjr" = (
-/obj/machinery/vending/wardrobe/bar_wardrobe,
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
-"moD" = (
-/obj/effect/landmark/barthpot,
-/turf/open/floor/wood,
-/area/library)
"mpI" = (
/obj/structure/table/wood,
/turf/open/floor/wood{
@@ -57500,8 +59173,8 @@
/area/engine/engineering)
"nxv" = (
/obj/machinery/power/apc{
- name = "Construction Area APC";
areastring = "/area/construction";
+ name = "Construction Area APC";
pixel_y = -24
},
/obj/structure/cable{
@@ -57530,6 +59203,10 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
+"nWU" = (
+/obj/machinery/smartfridge/organ/preloaded,
+/turf/closed/wall,
+/area/medical/sleeper)
"oce" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 1
@@ -57556,7 +59233,6 @@
/area/science/circuit)
"oKh" = (
/obj/structure/chair/wood/normal{
- icon_state = "wooden_chair";
dir = 8
},
/turf/open/floor/wood,
@@ -57597,9 +59273,7 @@
pixel_y = -3
},
/obj/item/radio/intercom{
- freerange = 0;
frequency = 1485;
- listening = 1;
name = "Station Intercom (Medbay)";
pixel_x = 30
},
@@ -57668,12 +59342,6 @@
/obj/item/reagent_containers/food/drinks/beer,
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
-"rsp" = (
-/obj/machinery/atmospherics/components/unary/tank/air{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
"rBq" = (
/obj/item/clothing/head/kitty,
/obj/item/clothing/under/maid,
@@ -57732,12 +59400,6 @@
/obj/effect/mapping_helpers/airlock/cyclelink_helper,
/turf/open/floor/plating,
/area/maintenance/department/medical/morgue)
-"sxs" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/structure/table,
-/obj/item/shovel/spade,
-/turf/open/floor/plasteel,
-/area/hallway/secondary/service)
"sAM" = (
/turf/open/floor/wood{
icon_state = "wood-broken6"
@@ -57817,7 +59479,6 @@
dir = 4
},
/obj/machinery/firealarm{
- dir = 2;
pixel_y = 24
},
/turf/open/floor/carpet,
@@ -57832,10 +59493,6 @@
/obj/item/restraints/handcuffs/fake,
/turf/open/floor/plating,
/area/maintenance/bar)
-"tyO" = (
-/obj/item/clothing/under/color/grey,
-/turf/open/floor/plating,
-/area/maintenance/bar)
"tMl" = (
/obj/effect/turf_decal/loading_area,
/turf/open/floor/plasteel/showroomfloor,
@@ -57885,16 +59542,6 @@
/obj/item/flashlight,
/turf/open/floor/plasteel/dark,
/area/engine/engineering)
-"uhH" = (
-/obj/item/wrench,
-/obj/item/weldingtool,
-/obj/item/clothing/head/welding{
- pixel_x = -3;
- pixel_y = 5
- },
-/obj/structure/rack,
-/turf/open/floor/plasteel/dark,
-/area/engine/engineering)
"ujF" = (
/obj/machinery/cryopod{
dir = 4
@@ -57948,9 +59595,7 @@
/turf/open/floor/plasteel,
/area/science/circuit)
"uPT" = (
-/obj/machinery/atmospherics/pipe/simple/general/visible{
- dir = 2
- },
+/obj/machinery/atmospherics/pipe/simple/general/visible,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
@@ -58001,13 +59646,6 @@
},
/turf/open/floor/wood,
/area/maintenance/bar)
-"vpY" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 10
- },
-/obj/machinery/meter,
-/turf/open/floor/plating,
-/area/maintenance/starboard/fore)
"vsM" = (
/obj/machinery/power/apc/auto_name/south,
/obj/structure/cable,
@@ -58024,7 +59662,7 @@
"vzp" = (
/obj/structure/table/reinforced,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/item/stock_parts/cell/high,
@@ -58119,11 +59757,6 @@
},
/turf/closed/wall/r_wall,
/area/maintenance/disposal/incinerator)
-"wUY" = (
-/obj/structure/table,
-/obj/item/reagent_containers/glass/bucket,
-/turf/open/floor/plasteel,
-/area/hallway/secondary/service)
"xgF" = (
/obj/structure/chair/stool/bar,
/turf/open/floor/wood{
@@ -64207,6 +65840,11 @@ aaa
aaa
aaa
aaa
+cdh
+aaa
+aaa
+aaa
+cdh
aaa
aaa
aaa
@@ -64219,12 +65857,7 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+aVw
aaa
aaa
aaa
@@ -64458,23 +66091,23 @@ aaa
aaa
aaa
aaa
+cdh
+aaa
+cdh
aaa
aaa
aaa
+gXs
aaa
aaa
aaa
+gXs
aaa
aaa
aaa
+cdh
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+cdh
aaa
aaa
aaa
@@ -64715,23 +66348,23 @@ aaa
aaa
aaa
aaa
+gXs
+aaa
+gXs
aaa
aaa
+gXs
+apv
+gXs
+gXs
+gXs
+apv
+gXs
aaa
aaa
+gXs
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+gXs
aaa
aaa
aaa
@@ -64971,25 +66604,25 @@ aaa
aaa
aaa
aaa
+apv
+apv
+gXs
+aag
+apv
+gXs
+gXs
aaa
aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aae
-aaa
+gXs
+gXs
+apv
+apv
+aQd
+aag
+apv
aaa
aaa
aaa
@@ -65228,25 +66861,25 @@ aaa
aaa
aaa
aaa
+aGk
+aQe
+aaa
+aQe
+aRx
+gXs
+aoV
aaa
aaa
aaa
aaa
aaa
aaa
+gXs
+aGk
+aQe
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+aQe
+aRx
aaa
aaa
aaa
@@ -65485,10 +67118,11 @@ aaa
aaa
aaa
aaa
-aaa
+aab
aaa
cpe
aaa
+asL
aaa
aaa
aaa
@@ -65498,12 +67132,11 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
+aab
aaa
cwV
aaa
-aaa
+asL
aaa
aaa
aaa
@@ -65741,14 +67374,12 @@ aaa
aaa
aaa
aae
-aaf
+alN
+gXs
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aae
+gXs
aaa
aaa
aaa
@@ -65758,9 +67389,11 @@ aaa
aaa
aaa
aaa
+gXs
aaa
aaa
aaa
+gXs
aaa
aaa
aaa
@@ -65998,14 +67631,12 @@ aaa
aaa
aaa
aaa
-aaf
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+alN
+gXs
+aaa
+aaa
+aaa
+gXs
aaa
aaa
aaa
@@ -66015,9 +67646,11 @@ aaa
aaa
aaa
aaa
+gXs
aaa
aaa
aaa
+gXs
aaa
aaa
aaa
@@ -66255,14 +67888,12 @@ aaa
aaa
aaa
aaa
-aaf
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+alN
+gXs
+aaa
+aaa
+aaa
+gXs
aaa
aaa
aaa
@@ -66272,9 +67903,11 @@ aaa
aaa
aaa
aaa
+gXs
aaa
aaa
aaa
+gXs
aaa
aaa
aaa
@@ -66512,11 +68145,12 @@ aaa
aaa
aaa
aaa
-aaf
-aaa
+alN
+gXs
aaa
cqq
aaa
+gXs
aaa
aaa
aaa
@@ -66526,12 +68160,11 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
+gXs
aaa
cqq
aaa
-aaa
+gXs
aaa
aaa
aaa
@@ -66769,7 +68402,7 @@ aaf
aaf
aaf
aaa
-aaf
+alN
arB
asE
cyb
@@ -68842,7 +70475,7 @@ aaa
awW
aOh
ayl
-ayl
+bRf
aRY
awW
aaa
@@ -68854,7 +70487,7 @@ awW
awZ
ayl
ayl
-bgi
+aQR
awW
aaa
aaa
@@ -71419,7 +73052,7 @@ aUO
aUy
aWm
aWf
-aUQ
+bcW
czK
bhN
bcl
@@ -71702,7 +73335,7 @@ aaa
aaa
aaa
aaa
-aae
+aaa
aaa
aaa
aaa
@@ -71958,7 +73591,7 @@ aaa
aaa
aaa
aaa
-aaa
+aae
aaa
aaa
aaa
@@ -72186,7 +73819,7 @@ aPa
aQn
ayl
czK
-aUP
+aUO
aUO
aXL
aXZ
@@ -72437,7 +74070,7 @@ aHy
ayl
aKk
aLA
-aNf
+aHD
aNf
aLA
aQD
@@ -74463,8 +76096,8 @@ ady
ady
ady
ady
-ady
ajq
+aTp
ajW
akB
alh
@@ -74489,7 +76122,7 @@ aBG
aAQ
aAQ
aAQ
-aBM
+aAQ
aAQ
aKn
aLE
@@ -74505,11 +76138,11 @@ aXQ
aXQ
aXQ
aXQ
-aXQ
-aXQ
-aXQ
-aXQ
-bhQ
+aPz
+aPz
+bcJ
+aPz
+bkg
bjj
bkF
aaa
@@ -74759,14 +76392,14 @@ aPA
aPA
aPA
aXQ
-aZt
+baO
aXQ
-aZt
-aXQ
-aZt
-aXQ
-aZt
-bhQ
+bdV
+aPz
+axS
+bgs
+biM
+bkg
bjj
bkF
aaa
@@ -75011,20 +76644,20 @@ aNm
aOl
aPA
aQO
-aSh
aTw
aUU
+cek
aWn
aXQ
-aZv
-aXQ
bbL
aXQ
-bdJ
-aXQ
-bgr
-bhQ
-bjj
+bgl
+aPz
+aEb
+bhK
+biZ
+bvn
+bml
bkF
aaa
aaa
@@ -75249,7 +76882,7 @@ alU
amC
arM
alU
-atT
+avc
asO
avV
atO
@@ -75257,7 +76890,7 @@ ayw
atN
aAV
aBQ
-aDh
+bbA
aDo
aFQ
aHe
@@ -75274,13 +76907,13 @@ aUn
aTy
aWy
aYe
-aZw
-aZw
bbq
-bct
-bfa
-bfa
-bhQ
+bcS
+aPz
+aEc
+bhP
+bjD
+bkg
bjk
bkE
aaa
@@ -75524,20 +77157,20 @@ aLk
aNo
aOo
aPA
-aQQ
+aQS
aQN
aSV
aUo
aUX
aXp
-baO
-aZo
-baw
-bcO
-baw
-cBn
-bgs
+bct
+bdJ
+bgr
+aPz
+aSG
bhQ
+bjW
+bwP
bjk
bkF
aaa
@@ -75781,20 +77414,20 @@ aLE
aLE
aOn
aPA
-aQP
+aQQ
aQN
-aTx
-aUV
+aTz
+aUt
aWo
aXQ
aXQ
aXQ
aXQ
-aXQ
-aXQ
-aXQ
-aXQ
-bhQ
+aPz
+aPz
+aPz
+aPz
+bkg
bjk
aPz
aaa
@@ -75838,7 +77471,7 @@ ccb
ccb
ccb
aaa
-chL
+aUf
aaa
ccb
ccb
@@ -76030,26 +77663,26 @@ aAY
aBQ
aDl
bxk
-aFS
+aDo
aDo
aIX
-aBQ
+blt
aLE
aLE
aOp
aPA
-aQR
+aMg
aQN
-aTA
-aUq
+aQN
+aUt
aWq
-aXs
-aYH
-aZx
+aQN
+aQN
+aQN
+aQN
+bfe
bbO
aPA
-bdM
-aPz
bgt
bhS
bjk
@@ -76095,7 +77728,7 @@ aaa
aaf
aaa
aaa
-chL
+aUg
aaa
aaa
aaf
@@ -76297,16 +77930,16 @@ aOl
aPC
aQN
aQN
-aTz
-aUp
-aWq
-aXr
-aZx
+aTB
+aUq
+aUV
+aXv
+bbr
+aQN
+aQN
cBh
-bbN
+bit
aPA
-bdL
-aPz
bgt
bhR
bjk
@@ -76352,7 +77985,7 @@ aaf
aaf
aaf
aaf
-chM
+aUg
aaf
aaf
aaf
@@ -76545,25 +78178,25 @@ aBQ
aDn
aDo
aDo
-aHD
+aFU
aIZ
aBQ
aLE
aLE
aOq
aPD
-aQT
-aQT
+aQV
+aQN
aTC
-aUs
+aUr
aUY
-aXv
-aYS
-aZx
+aXw
+bbU
+aQN
+aQN
+bfe
bbO
aPA
-bdM
-aPz
aSg
bhT
bjk
@@ -76793,7 +78426,7 @@ amC
amC
amC
alU
-aqO
+avc
amC
atJ
atO
@@ -76804,23 +78437,23 @@ aDo
aDo
aDo
aIY
-aBQ
+blt
aLE
aLE
aOl
aPA
-aQS
+aQX
aQN
-aTB
+aTC
aUr
-aWq
-aXt
+aYX
+aXx
+bcu
+aQN
+aQN
aPA
aPA
aPA
-aPA
-aPA
-aPz
bel
bfI
bgq
@@ -77047,7 +78680,7 @@ aaf
alU
alU
alU
-alU
+amC
amC
alU
atM
@@ -77058,7 +78691,7 @@ aAY
aBQ
aDp
aDo
-aFU
+aFS
aDo
aJb
aKp
@@ -77066,15 +78699,15 @@ aLE
aLE
aOl
aPE
-aQV
+aQY
+aQN
+aTC
+aUs
+aWB
+aXx
+bcu
+aQN
aQN
-aSi
-aUu
-aWq
-aXw
-aZB
-aZB
-aZB
aZB
aPA
bfc
@@ -77303,8 +78936,8 @@ alU
aaf
aaH
alU
-arO
-alU
+aQT
+amC
amC
avc
atO
@@ -77323,15 +78956,15 @@ aLH
aLE
aOl
aPA
-aQU
+aSX
+aQN
+aTD
+aUu
+aXk
+aXA
+bcw
aQN
aQN
-aUt
-aWq
-aXw
-aZA
-aZA
-aZA
aZA
aPA
aWv
@@ -77580,17 +79213,17 @@ aLK
aLK
aOr
aPA
-aQX
-aQN
+aTx
aQN
+aSi
aUv
aWp
-aXA
-aYX
-aYX
-aYX
-bbs
-bcw
+aTy
+aTy
+aTy
+aTy
+bcT
+chZ
bfd
bgw
aZE
@@ -77837,18 +79470,18 @@ aLJ
aLE
aOl
aPA
-aQW
-aQW
-aTD
-aQW
+aTA
+aQN
+aUp
aUZ
-aXx
+aXr
aYU
aYU
aYU
-bbr
-bcu
-bfe
+aYU
+aYU
+ckE
+bTt
aYb
aZE
bjm
@@ -78098,14 +79731,14 @@ aPG
aPG
aPG
aPG
+aZx
+aQW
+aQW
+aQW
+aQW
+bdL
aPA
-aPA
-aPA
-aPA
-aPA
-aPA
-aPA
-aWv
+clP
aYb
aZE
bjp
@@ -78351,19 +79984,19 @@ aLL
bDe
aOl
aPF
-aQY
-aSk
+aSh
+aQt
aTE
aPG
-aWu
-aYa
-aZD
-aZD
-hcE
-aZD
-aZD
-bff
-bfk
+aPA
+aPA
+aPA
+aPA
+aPA
+aPA
+aPA
+aWv
+aYb
aZE
bjo
bjr
@@ -78612,17 +80245,17 @@ aRa
aRa
aTG
aPG
-aWw
-aYc
-aZF
-aZF
-aZF
-aZF
-aZF
-aZF
-bgy
+aWu
+aYa
+aZD
+aZD
+hcE
+aZD
+aZD
+bff
+bfk
aZE
-bjr
+bgx
bjr
ama
bmh
@@ -78664,7 +80297,7 @@ bHE
bUs
ceY
bCq
-bHE
+bJP
bUs
bHE
bLu
@@ -78869,15 +80502,15 @@ aQZ
aRa
aTF
aPG
-aSX
-aWC
-baS
-aZI
-baS
-baS
-bdS
-bdU
-ckQ
+aWw
+aYc
+aZF
+aZF
+aZF
+aZF
+aZF
+aZF
+bgy
gjl
bjq
bjr
@@ -79131,7 +80764,7 @@ aXJ
bgA
aZp
baY
-bcJ
+aYZ
bcF
bfg
bgA
@@ -79420,7 +81053,7 @@ aoV
bCq
bHE
bHE
-bSq
+bad
cdb
bCq
bVE
@@ -79645,7 +81278,7 @@ aXM
bfi
cBi
bbS
-bcS
+bdM
bbt
bfi
beD
@@ -79899,14 +81532,14 @@ aTH
aPK
aWz
aWC
+baS
+baS
+baS
+bcR
+baS
+baS
+baS
gjl
-gjl
-gjl
-bcT
-gjl
-gjl
-gjl
-aZE
bju
biv
bmf
@@ -79947,14 +81580,14 @@ mrR
dKP
odx
rBq
-tur
+bat
bCq
bUs
bLv
aaa
bLv
bJf
-ccd
+cfS
bCq
aaa
aaa
@@ -80154,16 +81787,16 @@ aRc
aSm
aTJ
aPK
-cCl
-aYh
-cCm
-cCm
-cCm
-cCn
-aPz
+aWA
+aWC
+baS
+aZI
+baS
bdW
-aSg
-aZE
+bdS
+bdU
+ckQ
+gjl
bgz
biT
boU
@@ -80174,7 +81807,7 @@ bbR
btu
bbR
bOL
-bxy
+bPR
byF
bwW
bGm
@@ -80411,11 +82044,11 @@ aPK
aSm
aTI
aPK
-aWB
+aXs
cCj
apd
apd
-bbU
+apd
cCk
apd
aZK
@@ -80460,7 +82093,7 @@ iiW
dfL
dKP
mqZ
-tyO
+tur
wfR
bCq
bUs
@@ -80668,9 +82301,9 @@ aPK
aSn
aTK
aPK
-apd
-cCj
-asW
+aXt
+aZo
+aYj
baW
bLE
bLG
@@ -80929,8 +82562,8 @@ apd
aYi
aqW
aqW
-bbQ
-bLG
+aVT
+bSO
apd
aZH
aZK
@@ -81208,7 +82841,7 @@ bwY
byJ
bwe
bAc
-bBI
+bwL
bGn
bGn
bGn
@@ -81444,7 +83077,7 @@ aWG
aZa
baX
bcH
-bdE
+bSZ
apd
aZH
bnL
@@ -81642,9 +83275,9 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
+gXs
+gXs
+brT
abc
abu
abu
@@ -81727,7 +83360,7 @@ bCq
bHD
bJe
bCq
-bLu
+cib
bHE
bHE
bHE
@@ -81898,10 +83531,10 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
+gXs
+aai
+aai
+aai
abb
abt
aca
@@ -81954,11 +83587,11 @@ aSa
aSr
aSr
apd
-aYZ
+asW
bLE
aqW
aqW
-bLE
+bTq
apd
beA
bqp
@@ -82156,9 +83789,9 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
+aai
+cmH
+aay
abe
abw
acc
@@ -82211,7 +83844,7 @@ aTL
aTP
aWD
apd
-aYj
+aYh
aZL
baU
baU
@@ -82227,8 +83860,8 @@ bnJ
bbR
bbR
bbR
-bty
-buJ
+bWk
+bYG
bwe
bxE
byM
@@ -82412,10 +84045,10 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
+gXs
+aai
+cmI
+aay
abd
abv
acb
@@ -82519,8 +84152,8 @@ bLw
bLw
bLw
caq
-cbw
-ccu
+bCA
+bHE
ciT
bCq
bSs
@@ -82670,11 +84303,11 @@ aaa
aaa
aaf
aaf
-aaH
-aai
-aai
-abg
-aby
+ctv
+acd
+aaM
+aaP
+aaY
aby
aby
aby
@@ -82776,10 +84409,10 @@ bVI
bVI
bVI
bTA
-bEP
-cdi
-bCq
-bCq
+bHF
+bHE
+bHE
+bHE
bHE
bHE
cmD
@@ -82787,7 +84420,7 @@ cnr
cnU
chD
cpq
-cpV
+bVH
cqw
cqO
crp
@@ -82928,10 +84561,10 @@ aaf
aaf
aai
aai
-aai
-aaU
abf
-abx
+aat
+aaU
+abg
acd
acC
ada
@@ -83033,8 +84666,8 @@ bWB
bWB
bVI
cax
-cbx
-cdh
+cbw
+cby
ciU
cjK
ckA
@@ -83185,7 +84818,7 @@ aai
aai
aai
aaI
-aaM
+aat
aat
aat
aat
@@ -83252,12 +84885,12 @@ aYl
bBi
aLY
bnN
-boY
+bTv
bqw
aJq
aJq
aYl
-aKF
+bTw
aLX
aJq
aJq
@@ -83290,8 +84923,8 @@ cdd
cea
bVI
caz
-cby
-cdj
+cbx
+ccu
cdv
cem
cem
@@ -83440,8 +85073,8 @@ aaf
aai
aan
aaw
-aaB
-aat
+aaD
+aaL
aaJ
aat
abh
@@ -83695,9 +85328,9 @@ aaa
aag
aaa
aak
-aap
-aay
-aaD
+aao
+aaz
+aaE
aat
aat
aat
@@ -83734,7 +85367,7 @@ ats
atY
auo
axy
-ayN
+ayM
azE
aAW
aCa
@@ -83771,7 +85404,7 @@ bqy
cBr
bqy
buK
-bqy
+bTx
aJw
aJq
aJq
@@ -83803,10 +85436,10 @@ bWB
bWB
cec
bVI
-cay
+bUw
ccw
chY
-ciX
+clK
cjM
ckB
ckB
@@ -83817,7 +85450,7 @@ coH
cgR
cgR
cqx
-cqR
+cgR
crp
crJ
crT
@@ -83952,9 +85585,9 @@ aaa
aag
aaf
aaj
-aao
-aax
-aaC
+aap
+aaB
+aaF
aat
aat
adO
@@ -83991,7 +85624,7 @@ atu
cCi
awg
axy
-ayM
+ayN
azs
aAR
aBP
@@ -84071,10 +85704,10 @@ ckC
ccw
cnX
coH
-cps
-cpX
+cjZ
+ckq
cqz
-cqQ
+cqR
ccw
crH
crT
@@ -84209,13 +85842,13 @@ aaa
aag
aaa
aal
-aar
-aay
-aaF
-aat
-aaO
-aaW
+aaq
+aax
+aaN
aat
+aaV
+cmn
+cms
abB
acf
abM
@@ -84285,11 +85918,11 @@ bqA
brW
btB
buM
-bwi
+aOJ
bmr
aMm
aJq
-bBi
+byV
bCs
bCs
bEY
@@ -84466,13 +86099,13 @@ aaa
aag
aaf
aaj
-aaq
-aay
-aaE
-aaJ
-aaN
-aaV
+aar
+aaC
+aaO
aat
+aaW
+cmp
+cmE
aat
acd
abL
@@ -84548,11 +86181,11 @@ aMn
aJq
bBi
bCs
-bDv
+bDw
+bDz
+bFb
bEX
bFa
-bHH
-bFa
bKt
bLx
bCs
@@ -84723,13 +86356,13 @@ aaa
aag
aaa
aal
-aat
-aay
+aau
aat
aat
-aaJ
aat
aat
+cmr
+aat
abD
acd
acd
@@ -84797,7 +86430,7 @@ bnR
bpe
bqB
bqq
-btD
+bbQ
buO
bwk
bmr
@@ -84981,7 +86614,7 @@ aag
aaf
aaj
aas
-aaz
+aat
aat
aat
aat
@@ -85029,7 +86662,7 @@ aGq
aHO
aJl
ayW
-aJq
+clV
aJq
aOE
aJn
@@ -85062,7 +86695,7 @@ byP
aJq
bBi
bCs
-bDw
+bDy
bEZ
bGv
bHH
@@ -85074,7 +86707,7 @@ bNJ
bNJ
bKx
cjL
-gbq
+bNL
bNI
bUz
bVJ
@@ -85240,10 +86873,10 @@ aam
aav
aav
aav
-aaL
-aaQ
-aaY
-ihn
+aav
+aav
+aav
+aav
abE
acg
acJ
@@ -85319,7 +86952,7 @@ byR
bnM
bBl
bCs
-bDz
+bFa
bFa
bFa
bHH
@@ -85327,7 +86960,7 @@ bFa
bFa
bFa
bCs
-bNL
+bNJ
bNJ
apV
cjL
@@ -85366,7 +86999,7 @@ cEL
cFb
cFu
cFI
-cGd
+cdj
cGs
cGr
ccw
@@ -85494,14 +87127,14 @@ aaa
aag
aaf
aai
-aau
+aaA
aaA
aaG
-aaK
-aaP
+aaA
+aaQ
aaX
-hwu
-aat
+abj
+abG
acd
acD
acY
@@ -85576,10 +87209,10 @@ byQ
aJq
aJq
bCs
-bDy
-bFb
-bGw
+bFa
+bFa
bER
+bGw
bJk
bFa
bLA
@@ -85611,7 +87244,7 @@ cTa
ceZ
clQ
cgR
-cgx
+bUX
coM
cpv
cqb
@@ -85626,11 +87259,11 @@ cqb
cAo
cGt
cgx
-jMY
+chU
csd
cHa
csd
-uhH
+chW
ccw
aaa
aaT
@@ -85757,8 +87390,8 @@ aai
aai
aai
aai
-abj
-abG
+abx
+abF
acd
acd
acd
@@ -85831,7 +87464,7 @@ aaa
aJn
aXf
aJq
-byV
+aJq
bCs
bAM
bFa
@@ -85850,7 +87483,7 @@ bNI
bEP
bVJ
bVJ
-bOM
+bSF
bQd
bQP
bSt
@@ -86015,7 +87648,7 @@ aaa
aaf
aai
abi
-abF
+bVL
ach
acK
adf
@@ -86536,11 +88169,11 @@ cpg
acv
adi
adi
-aaZ
+arl
aeW
agQ
ahv
-ahQ
+agX
aiI
aiH
ajB
@@ -86553,7 +88186,7 @@ anw
anz
aov
aph
-aph
+ayY
ard
ard
ard
@@ -86793,7 +88426,7 @@ acl
ajC
acL
adi
-aaZ
+anq
agp
agT
ahx
@@ -86808,7 +88441,7 @@ afM
amR
anw
anz
-aov
+aJN
apk
anw
anw
@@ -86817,9 +88450,9 @@ anw
aVh
avj
awl
-axC
-ayY
-azZ
+ayZ
+aCf
+aDh
azZ
azZ
azZ
@@ -87322,7 +88955,7 @@ agj
amS
anx
anz
-aoz
+aKS
apm
aqd
anA
@@ -87331,9 +88964,9 @@ atd
anA
avk
awk
-axE
-ayZ
-aAa
+aCe
+aCV
+aHZ
aBu
aAa
aAa
@@ -87568,7 +89201,7 @@ aeY
agt
agt
ahz
-aie
+ahQ
aiN
ajc
ajI
@@ -87656,7 +89289,7 @@ bYH
bYH
bVg
bXn
-bYG
+bRb
cfb
cfF
cfb
@@ -87664,7 +89297,7 @@ cik
cjg
cjU
cfb
-clM
+caw
cfz
cgR
ccw
@@ -87890,7 +89523,7 @@ aJq
bBu
bCv
bAT
-bDL
+bDJ
bDq
bCv
bJs
@@ -87909,7 +89542,7 @@ bWO
bXK
bYH
bZz
-caw
+cfV
bYH
bVo
bXq
@@ -88148,7 +89781,7 @@ bBt
bCv
bDH
bFf
-bGB
+aNJ
bCv
bJs
bKy
@@ -88337,7 +89970,7 @@ adg
aeu
alt
agu
-agX
+agt
ahB
aij
agn
@@ -88354,14 +89987,14 @@ aoB
aod
aqe
arf
-aqa
-atf
+aqU
+awy
arf
-aqa
-atf
+aqU
+awy
arf
-aqa
-atf
+aqU
+awy
dgz
tqg
ujF
@@ -88611,13 +90244,13 @@ aoz
aod
aqe
arf
-apY
+ari
ate
arf
-apY
+ari
ath
arf
-apY
+ari
ath
dgz
fvY
@@ -88658,9 +90291,9 @@ bsh
bqH
aJq
aJq
-aXf
+bPS
bCv
-bDJ
+aNI
bCt
bGD
bCv
@@ -88695,7 +90328,7 @@ ckO
ckH
cja
cny
-ccw
+bVw
cip
cnx
cDx
@@ -88906,7 +90539,7 @@ bjF
blc
bmz
bnY
-bpk
+aOH
bqJ
bsj
btI
@@ -88949,7 +90582,7 @@ ciq
cfb
cfb
cfb
-clR
+ciX
cgR
cgR
cMm
@@ -89119,7 +90752,7 @@ akY
afM
amp
aiX
-anA
+axC
anz
aoC
aod
@@ -89129,19 +90762,19 @@ asd
atg
arf
asd
-awo
+axT
arf
asd
-aAb
+aFe
dgz
iVU
aDK
vHj
eVC
dgz
+aBM
+aEs
aJv
-aKG
-aMg
bHt
aOE
aJn
@@ -89175,7 +90808,7 @@ aJq
aXf
bCv
bAU
-cAL
+clO
bFg
bFs
bJt
@@ -89382,18 +91015,18 @@ aoF
apo
aqh
arh
-asg
+auA
atj
aul
-auR
+axQ
atj
-aul
+azl
+aNH
+atj
+aJQ
azc
atj
-aAX
-azc
-atj
-aFe
+aMq
aul
aHT
aJy
@@ -89419,7 +91052,7 @@ bim
bjG
aZV
bmB
-bnZ
+aDH
bpl
bqH
bsl
@@ -89432,8 +91065,8 @@ aLY
bBx
bCv
apG
-bFk
-bDs
+aPZ
+aQa
bCv
bJs
bHo
@@ -89642,15 +91275,15 @@ aun
asf
ati
auk
-aux
-avt
-axL
+arQ
+aus
+aJk
bbl
-azT
-auk
-auk
-aDG
-aFd
+avt
+aJR
+aya
+aLs
+aMr
auk
aHH
aJg
@@ -89700,8 +91333,8 @@ bNT
bOV
bQj
bRw
-bSF
-bOd
+bOM
+bPT
bTP
bRA
bWQ
@@ -89717,12 +91350,12 @@ cap
ctR
ccn
cdo
-cek
+bUA
ccw
cet
cfd
-cfB
-cfI
+cgH
+cgM
cgQ
cjS
cjN
@@ -89735,7 +91368,7 @@ cEW
cse
cse
csu
-cGl
+chM
ccw
aaa
aaa
@@ -89899,15 +91532,15 @@ arf
arf
arf
arf
-auU
-avG
+arf
+auC
+aKg
awr
awr
-azV
+aKr
+aAh
aAh
aAh
-aFg
-aFh
aAh
aAh
aAh
@@ -89941,7 +91574,7 @@ btL
buY
buY
bqH
-aJq
+clV
aJq
aXf
bCv
@@ -89958,7 +91591,7 @@ bOV
bQo
bRz
bSH
-bOd
+bQX
bTP
bRA
bWQ
@@ -90153,23 +91786,23 @@ aoG
cSA
aqe
arf
-aqo
-asp
+auu
+atm
+atm
arf
-auS
-avv
-awu
-awr
aAd
+auW
+awr
+aXH
+aXO
aAh
-aCm
-aDL
-aFf
-aGk
-aHU
-alN
+aSp
aAh
-aLQ
+aUP
+aAh
+bbN
+aAh
+aOL
aJq
aOE
aJn
@@ -90202,7 +91835,7 @@ aJq
aJq
bBy
bzs
-bDO
+bTy
bFl
bGH
bHU
@@ -90215,7 +91848,7 @@ bOV
bQj
bRy
bSG
-bOd
+bPT
bUK
bVT
bWR
@@ -90410,23 +92043,23 @@ aoH
cSA
aqe
arf
-asm
+aqC
blU
-atQ
-avg
-awp
-axN
+blU
+awA
+auy
+aKh
awr
-aAg
+awr
+aKJ
aAh
-aDO
-aDQ
-aFi
-aGl
-aBy
-aBy
+apH
aAh
-aMn
+apQ
+aAh
+aqt
+aAh
+clX
aJq
aOE
aJn
@@ -90495,7 +92128,7 @@ clU
clU
bOh
ccw
-coZ
+cgN
cgU
cgU
cDK
@@ -90667,21 +92300,21 @@ ajo
cSA
aqe
arf
-ari
+aqD
+ask
asu
aun
-auW
-avR
-axM
-awu
-aAf
+awv
+aKg
+aYI
+awr
+bHg
aAh
-aCn
-aDM
-aGx
-aAh
-aAh
-aBy
+aop
+bwi
+aop
+aop
+aop
aAh
aMm
aJq
@@ -90714,7 +92347,7 @@ bqH
bqH
aJq
bHt
-bBz
+bgi
bzs
bzs
bFm
@@ -90748,11 +92381,11 @@ bMQ
aaf
bQA
ckU
-clT
+ccd
cmU
bOh
ccw
-cpa
+cgP
cjc
cqo
cDL
@@ -90927,19 +92560,19 @@ arf
arf
arf
arf
-avm
-aws
-axP
-azb
-aAi
-aAh
-aCn
-aDM
-aGx
-aGm
-aHV
-aBy
-aAh
+arf
+auC
+aKN
+aYP
+baa
+aKM
+aKP
+aFE
+aDY
+aLQ
+aYS
+aop
+aMw
aJq
aJq
aJq
@@ -90970,9 +92603,9 @@ bva
bwu
bwu
bwu
-bwu
-bBB
-aJv
+bke
+cfI
+bBz
bzs
bFp
bGJ
@@ -91181,21 +92814,21 @@ ajo
app
aqi
arf
-ask
+ars
+atm
atm
arf
-avl
-awq
-axO
-aza
+aHt
+aKO
+aZb
+bab
+aSj
aAh
aAh
aAh
-aDS
-aGx
aAh
aAh
-aDN
+aMu
aAh
aMo
aNC
@@ -91227,7 +92860,7 @@ aJq
aJq
aJq
aJq
-bAj
+bnZ
aJq
aKG
bzs
@@ -91438,22 +93071,22 @@ ajo
aps
aqk
arf
-asm
+auv
+blU
aHw
-aup
-avn
-awv
-axX
-aze
+awX
+axR
+aKq
+aZZ
+awr
+bac
aAh
-aBz
-aBz
-aDU
-aGx
-aGn
-aHW
-aBy
+aVK
+azm
+azm
aAh
+aAZ
+bJS
aJq
aJq
aJq
@@ -91484,9 +93117,9 @@ aJq
aJq
bxL
byX
-aJq
-aJq
-bCA
+aXh
+bmE
+bAj
bzs
bCC
bDA
@@ -91695,31 +93328,31 @@ ajo
apr
aqj
arf
-ark
-asL
+ary
+ask
+aua
aun
-avu
-awt
-axV
-azd
-azX
-aAZ
-aCe
-aDT
-aGx
+axU
+awr
+awr
+axW
+aHb
+aLh
+aUj
+aMv
+aMv
+aMx
+aZt
aAh
-aAh
-aBy
-aAh
-aCr
-aCr
-aCr
aJC
+aJC
+aJC
+aQg
bYP
-aQg
aJC
aQg
aJC
+aJC
aQg
aJC
aJC
@@ -91776,7 +93409,7 @@ bMQ
aaf
bQA
ckX
-clV
+ccB
cmV
bOh
cig
@@ -91950,35 +93583,35 @@ ajp
ajp
ajo
apt
-aqm
-arj
-arj
-arj
-arj
-avx
-awz
-axR
-avx
+arn
+arf
+arf
+arf
+arf
+arf
+asX
+awr
+awr
+avG
+axP
aAh
-aBA
-aBA
-aDP
-aBx
-aGp
-aHX
-aBy
+aCh
+azo
+azo
aAh
-aMq
-adq
-aQb
-aPZ
-aRu
-aQc
-aUf
-aQc
-aXi
-aQc
-amB
+aAM
+aMH
+bRc
+bRe
+bty
+aFj
+ccS
+bXu
+aKR
+aFd
+aDM
+cab
+bfa
aJC
bcq
bcq
@@ -92207,16 +93840,17 @@ ajo
aoa
ajo
apt
-aql
-apv
-arl
-asM
-atV
-avw
-awy
-axQ
-azj
-arj
+aqr
+aoJ
+aoJ
+aoJ
+aoJ
+arr
+auN
+awr
+awr
+avG
+aNt
aAh
aAh
aAh
@@ -92224,19 +93858,18 @@ aAh
aAh
aAh
aAh
-aAh
-aMp
-aMr
-aOH
-aPY
-aQc
-aRx
-aQc
-aQc
-aPY
-aQc
-aZZ
-aJC
+aKR
+aKR
+buJ
+aDU
+aDX
+aEt
+aKR
+aFf
+aDN
+aDU
+aFF
+aQg
aYV
aYV
aYV
@@ -92464,35 +94097,35 @@ ahT
anb
ahT
anZ
-apu
-arj
-asb
-asV
-aus
-aus
-awA
-axT
-azl
-aAl
-arj
-aCq
-aDR
+aqo
+arf
+arf
+arf
+arf
+arf
+aDW
+avl
+avm
+avg
+awE
+aCr
+azP
aFl
aGD
-aHZ
+bdE
aCr
-aKJ
-aMr
-aMr
-aOH
-aQc
-aQd
-aQa
-aRv
-aPY
-aVw
-aPY
-bac
+boY
+bRd
+aKR
+aDO
+aFC
+cdM
+aEu
+aKR
+aFg
+aDO
+caj
+ckP
aJC
aYV
aYV
@@ -92714,44 +94347,44 @@ aif
aif
aif
aif
-aif
-aif
-alK
-aif
bkV
-anc
-anD
-aoI
-apX
-arn
-asN
-aur
-avy
-avy
-axS
-azk
-aAk
-arj
-aCf
-aDY
-aFj
+adq
+amB
+aif
+aif
+apw
+aqH
+aqI
+arf
+apu
+atl
+avw
+aut
+axM
+avx
+avn
+awp
+aNG
+aCr
+aLS
+aUC
aGr
aHI
-aJk
-aMr
-aMr
-aNt
-aOH
-aQc
-aQc
-aSq
-aQc
-aQc
-aPY
-aQc
-bab
+aOK
+aKR
+aKR
+aKR
+aKR
+aKR
+aKR
+aKR
+aKR
+aKR
+aKR
+aKR
+asq
aJC
-aYV
+bSL
aYV
ber
bfF
@@ -92963,11 +94596,7 @@ abp
afo
abp
abp
-ahn
-ahn
-aiA
-aiA
-aiA
+aSq
ahn
aiA
aiA
@@ -92979,38 +94608,42 @@ aod
ahn
apx
ahn
-arj
-asr
-asN
-aut
-avz
-aXF
-axU
-azn
-aAn
-arj
-aCh
-aEc
-aFk
-aGw
+ahn
+ahn
+ahn
+ahn
+arf
+aoI
+aqF
+awo
+arf
+aoY
+awr
+awr
+awt
+aXj
+aCr
+aQb
+aVA
+bcO
aHK
aCr
-aKr
-aMr
-bHF
-aOH
-aQc
-aQc
-aSo
-clX
-aVx
-aQc
-aQc
-aQc
+bDO
+aKR
+aKR
+aDP
+aDP
+aEo
+aKR
+aKR
+aKR
+aDP
+aKR
+aKR
bbx
aYV
aYV
-aYV
+bTs
bfF
bhd
bis
@@ -93216,16 +94849,12 @@ aaf
aaf
aaf
abp
-aaa
+aRw
afp
-aaa
+aRw
abp
-aaa
-aaa
-aaa
-aaf
-aaf
-aaf
+aqa
+ahn
aaa
aaf
aaf
@@ -93234,36 +94863,40 @@ ahn
anE
aod
aoK
-apw
+amI
aqp
-arj
-asq
-asN
-aut
-avz
-avz
-axU
-azm
-aAm
-arj
+ahn
+anc
+anr
+anM
+aqF
+aqF
+aqF
+aur
+aun
+aEr
+awr
+awr
+awt
+aSo
aCr
-aEb
aCr
+aVD
aGv
aCr
aCr
-aKq
-aLS
-aNF
-aOH
-aQc
-aQc
-aSH
-aQc
-aQc
-aRx
-aQc
-aQc
+aCm
+aKR
+aDu
+aDT
+aDV
+aEp
+aHX
+aKR
+aIs
+atT
+aFD
+aKR
aQg
aYV
aYV
@@ -93288,7 +94921,7 @@ bvj
bvj
bvd
bFu
-bvj
+nWU
bvj
bvd
bKH
@@ -93477,12 +95110,8 @@ aaa
aaa
aaa
adR
-aaa
-aaa
-aaa
-aaf
-aaf
-aaa
+ahn
+ahn
aaa
aaa
aaa
@@ -93493,43 +95122,47 @@ aoe
aoL
apy
aqq
-arj
-ast
-asN
-auv
-avA
-avA
-axW
-azo
-aAp
+ahn
+aql
+aqN
+arf
+aqE
+ark
+aqF
+axN
+arf
+aKi
+avm
+aAn
+aIG
+aXl
aBC
aCt
aEA
-aCt
aGz
aIb
aCr
-aKN
-aMv
-aNH
-aOJ
-aQc
-aPY
-aSG
-aPY
-aUg
-bFC
-aRw
-aQc
+aCn
+aKR
+aKR
+axV
+aFh
+arC
+aKR
+aKR
+aNn
+avR
+aFD
+aKR
bbx
aYV
aYV
bet
bfH
bhf
+bkl
bhh
-bhh
-bhh
+bkl
bmJ
bof
bpu
@@ -93729,15 +95362,11 @@ aaa
aaa
aaa
aaa
+gXs
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+gXs
aaa
aaa
aaa
@@ -93750,43 +95379,47 @@ ahn
ahn
ahn
ahn
-arj
-ass
-asX
-auu
-att
-att
-att
-azf
+ahn
+arf
+arf
+arf
+asd
+arf
+arf
+arf
+arf
+aMJ
+azn
aAo
-apX
+aJz
+amP
aBB
aBB
aBB
aGy
aIa
cNE
-aKM
-aMu
-aNG
-aKM
-aKM
-aKM
-aSp
-aQc
-aQc
-aSq
-aQc
-bad
+aQP
+awB
+awB
+aaK
+aFi
+awB
+awB
+awB
+aIi
+aOu
+aKR
+asD
bby
aYV
aYV
bet
bfG
bhe
-bit
+blN
bjS
-bli
+bnd
bli
boe
bli
@@ -93986,15 +95619,11 @@ aaa
aaa
aaa
aaa
+gXs
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+gXs
aaa
aaa
aaa
@@ -94004,37 +95633,41 @@ aaa
aag
aag
aag
-aaa
-aaa
-aaf
-arj
-clO
-asZ
-aua
-clO
-awB
-axY
-azh
-gsz
-arj
-aaf
-aaa
+arf
+amJ
+axO
+arf
+apu
+acN
+amP
+atz
+axL
+atQ
+awu
+aEv
+azj
+aAb
+aAr
+amN
+amN
+aza
+azX
alP
aGI
aId
aJD
-aKP
-aMx
-aNJ
-aQe
-aOL
-aOL
-aOL
-aOL
-aOL
-aOL
-aXO
-aZb
+aCx
+awC
+awC
+bbs
+aHW
+awC
+awC
+awC
+awC
+aIw
+aKR
+asG
aJC
aYV
aYV
@@ -94243,10 +95876,11 @@ aaa
aaa
aaa
aaa
-aaa
+aab
aaa
aqG
aaa
+asL
aaa
aaa
aaa
@@ -94256,44 +95890,43 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aqr
-arm
-arm
-asY
+arf
+amO
+anr
+anM
+aqF
+alK
+arf
+axZ
+amN
atZ
-auB
-auB
-atZ
-azg
-azp
-azp
-aCu
-aaf
+amN
+amN
+bBB
+cdP
+ceu
+cfA
+amN
+azb
+aUk
alP
aGH
aIc
aJC
-aKO
-aMw
-aNI
-aMw
-aOK
-acN
-acN
-acN
-acN
-acN
-aQc
-bae
+aCy
+aTN
+aDS
+aKR
+aKR
+aEq
+aEq
+aEq
+aEq
+aEq
+aKR
+aKR
aJC
-bcr
+cmc
aYV
bet
bfG
@@ -94336,7 +95969,7 @@ bYU
bXW
bOh
cbH
-ccB
+cbX
cbH
bOh
aaf
@@ -94500,6 +96133,11 @@ aaa
aaa
aaa
aaa
+aac
+apK
+aaa
+apK
+atX
aaa
aaa
aaa
@@ -94509,30 +96147,25 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aqs
-aro
-aro
-aro
-aro
-aro
-aro
-aro
-aro
-aro
-aro
-aCv
-aaa
+arf
+arf
+arf
+arf
+aoI
+anD
+arj
+art
+amN
+amN
+amN
+amN
+bDL
+amN
+aAX
+cfB
+amN
+azd
+aAf
alP
aGJ
aIe
@@ -94542,13 +96175,13 @@ aJC
aJC
aJC
aJC
-aXj
-aVy
-aSY
-aVy
-aVy
-aYI
-bah
+aXF
+aEw
+aEx
+aEw
+aNF
+aEq
+aHU
aJC
aYV
bdo
@@ -94757,8 +96390,11 @@ aaa
aaa
aaa
aaa
-aaa
-aae
+apv
+apv
+gXs
+apv
+apv
aaa
aaa
aaa
@@ -94770,42 +96406,39 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aqs
-aro
-aro
-aro
-aro
-aro
-aro
-aro
-aro
-aro
-aro
-aCv
-aaf
+arf
+aqm
+aqF
+axX
+arf
+asb
+asr
+avu
+amN
+amN
+bDL
+amN
+aAX
+cfB
+amN
+aze
+aAg
alP
aGJ
aIe
-aJE
-aKQ
+asm
aLU
-aNu
+aKQ
+aYH
aJC
aPw
-aQc
+aZw
aQc
aSZ
aQc
-aVy
-czP
-bag
+aFk
+aEq
+aHV
aJC
aYV
aYV
@@ -95015,6 +96648,9 @@ aaa
aaa
aaa
aaa
+gXs
+aaa
+gXs
aaa
aaa
aaa
@@ -95027,26 +96663,23 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aqs
-aro
-aro
-aro
-aro
-aro
-aro
-aro
-aro
-aro
-aro
-aCv
-aaa
+arf
+ast
+arD
+apX
+arf
+arO
+aup
+atV
+amN
+asg
+bZf
+cdY
+cff
+cfC
+amN
+azb
+bvG
alP
aGA
aHS
@@ -95060,9 +96693,9 @@ aRz
aSF
aQc
aQc
-aXl
-aQc
-bai
+aFp
+aKR
+atk
aJC
aYV
aYV
@@ -95272,9 +96905,9 @@ aaa
aaa
aaa
aaa
+apT
aaa
-aaa
-aaa
+apT
aaa
aaa
aaa
@@ -95287,43 +96920,43 @@ aaa
aae
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aqs
-aro
-aro
-aro
-aro
-aro
-aro
-aro
-aro
-aro
-aro
-aCv
-aaf
+arf
+arf
+arf
+arf
+arf
+asZ
+att
+avA
+awq
+aVy
+aVG
+amN
+aRu
+aVP
+aXi
+azV
+aPj
alP
aGL
aHM
-aJm
+asp
aKz
-mjr
+bLs
aND
aJC
-aab
+aZv
aRg
aQc
-aac
-aQc
-aXk
-aQc
+bai
aQc
+aFt
+aKR
+aKR
aJC
aYV
aYV
-bev
+bNM
bfK
bhi
bhi
@@ -95521,6 +97154,7 @@ aaa
aaa
aaa
aaa
+aae
aaa
aaa
aaa
@@ -95546,34 +97180,33 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
+gXs
aqs
-aro
-aro
-aro
-aro
-aro
-aro
-aro
-aro
-aro
-aro
+asY
+asY
+auB
+aws
+avy
+avy
+aws
+azp
+aCu
+aCu
aCv
-aaa
+auR
alP
aGL
aIe
aJC
-aKS
-aMC
+atf
+bLt
aJC
aJC
aJI
aJI
aSI
aJI
-aVA
+baw
aJI
aYK
aJI
@@ -95803,27 +97436,27 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
+gXs
+gXs
aqu
-arm
-arm
-arm
-auy
-auB
-auB
-axZ
-azp
-azp
-azp
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
aCw
-aaf
+aaa
alP
aGL
aIg
aJH
aKR
-aMB
+bMF
aJC
aOP
aJI
@@ -95834,7 +97467,7 @@ aVz
aVz
aYJ
aJI
-bbz
+bSr
aYV
aYV
aYV
@@ -96059,22 +97692,22 @@ aaa
aaa
aaa
aaa
+gXs
+gXs
aaa
+aqu
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aCw
aaf
-aaf
-aaf
-arj
-arj
-arj
-auA
-avD
-awC
-ayb
-arj
-alP
-alP
-aaa
-aaa
alP
aGL
aIe
@@ -96315,23 +97948,23 @@ aaa
aaa
aaa
aaa
+gXs
+gXs
+aaa
+aaa
+aqu
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aCw
aaa
-aaf
-aaf
-aaf
-aaf
-aaf
-aaf
-arj
-auz
-avC
-avC
-aya
-arj
-arA
-alP
-alP
-alP
alP
aGN
aIh
@@ -96351,7 +97984,7 @@ baj
bbz
aYV
bdp
-aYV
+bDv
bfK
bfK
bfK
@@ -96404,7 +98037,7 @@ cle
cli
uPT
cmY
-cmc
+cme
cop
cmd
cmd
@@ -96571,24 +98204,24 @@ aaa
aaa
aaa
aaa
+gXs
+gXs
aaa
+aaa
+aaa
+aqu
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aCw
aaf
-aaf
-aaa
-aaa
-aaa
-aaa
-aaf
-arj
-auB
-auB
-arj
-gOZ
-arj
-anf
-anf
-rsp
-rsp
alP
aGB
aIf
@@ -96600,11 +98233,11 @@ aON
aQk
aRD
aSM
-aVD
+aEy
aVE
aXm
aVz
-bak
+cam
bbz
aYV
bdp
@@ -96827,25 +98460,25 @@ aaa
aaa
aaa
aaa
-aaa
-aaf
-aaf
-aaa
-aaa
-aaa
-aaa
-aaa
-aaf
-aaa
gXs
-aoV
-alP
-anf
-anf
-anf
-anf
-aDW
-aDV
+gXs
+aaa
+aaa
+aaa
+aaa
+aqu
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aro
+aCw
+aaa
alP
aGL
aHY
@@ -96857,7 +98490,7 @@ aOM
aQj
aRB
aSL
-aTN
+cmm
cCq
aVz
cAg
@@ -97083,7 +98716,6 @@ aaa
aaa
aaa
aaa
-aaa
aaf
aaf
aaa
@@ -97091,18 +98723,19 @@ aaa
aaa
aaa
aaa
-aaa
-aaf
-aaa
-gXs
-aoV
-alP
-awD
-anf
-anf
-anf
-aCy
-jnR
+arm
+asY
+asY
+asY
+awz
+avy
+avy
+aAm
+aCu
+aCu
+aCu
+aVx
+auR
alP
aGL
avI
@@ -97118,7 +98751,7 @@ aTO
cCq
aVz
aVz
-bak
+caB
bbz
aYV
bdp
@@ -97134,8 +98767,8 @@ boo
bqQ
bhg
bua
-bvn
-bwL
+bne
+bpk
bxX
bsL
bua
@@ -97339,7 +98972,6 @@ aaS
aaS
aaS
aaS
-aaa
aaf
aaf
aaa
@@ -97347,21 +98979,22 @@ aaa
aaa
aaa
aaa
-aaf
-aaf
-alO
-alO
-alO
+aaa
+aaa
+aaa
+aaa
+auR
+azg
+avz
+ccH
+aAX
+aAp
+aAk
+aAl
+aCq
+aDR
alP
-alP
-alP
-alP
-alP
-alP
-alP
-vpY
-aFn
-aGP
+aGJ
avI
aJI
aJI
@@ -97376,7 +99009,7 @@ aVF
aVF
aYM
aJI
-bbA
+bSu
aYV
bdr
bdb
@@ -97597,26 +99230,26 @@ aaf
aaa
aaS
aaf
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
aaf
-aaa
-aaa
-aaa
-aaa
-aaa
-aag
-alO
-arp
-alO
-awD
-anf
-anf
-awD
-anf
-aoP
-alP
-aBE
-alP
-aDX
+aaf
+auR
+auS
+ayb
+azk
+atZ
+amN
+amN
+aAs
+amN
+amN
alP
aGJ
avI
@@ -97648,7 +99281,7 @@ boq
boq
brj
bpE
-btk
+bop
bum
bvq
bzn
@@ -97853,22 +99486,22 @@ adS
aeG
aaa
aaS
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
aaf
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aag
-cxW
-anf
-aqv
-anf
-anf
-anf
-aEl
-anf
+aaf
+alO
+auR
+auR
+auR
+azT
+aAi
cVb
cVb
cVb
@@ -97905,7 +99538,7 @@ bpE
bpE
bpE
bpE
-bti
+bot
bul
bvp
bzm
@@ -98119,11 +99752,11 @@ aaa
aaa
aag
alO
-alO
+arp
alO
anf
-auC
-alP
+anf
+anf
anf
anf
cVb
@@ -98145,7 +99778,7 @@ aSR
aUi
aVJ
aOX
-aYP
+aPP
bal
bam
aYV
@@ -98374,20 +100007,20 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
-alO
-aqy
-anf
-alP
-awE
+aag
+ass
anf
+aqv
+ayf
+aux
+auU
+avv
+avC
cVb
vCb
-wUY
-khb
-sxs
+bBI
+bHx
+bHB
tal
aCI
aIj
@@ -98631,15 +100264,15 @@ aaf
aaf
aaf
aaf
-aaf
-apC
-apC
-apC
-apC
-apC
-apC
+aag
+alO
+anf
+alO
+aud
+auz
alP
anf
+aCG
cVb
cVb
cVb
@@ -98652,12 +100285,12 @@ aIq
aKK
aMy
aIp
-aOX
+arg
aQm
-aRJ
-aRJ
-aRJ
-aVK
+aBx
+aGp
+aGp
+aHc
aRJ
aRJ
aRJ
@@ -98890,18 +100523,18 @@ aof
aof
aof
aof
-arq
-asv
-atv
-auD
-apC
-awF
-anf
alP
-arA
-anf
+alP
+alP
+alP
+alP
+awF
+aCG
+alP
+bBM
+aBE
aCz
-asw
+aQU
aCJ
aGT
aIn
@@ -98911,10 +100544,10 @@ aMt
aIp
aOW
aQm
-aRJ
-aSS
-aUj
-aRJ
+aGm
+aGw
+aGP
+aHr
aRJ
aYQ
cBg
@@ -99147,35 +100780,35 @@ aoh
aoN
apA
aof
-ars
-anf
-arx
-anf
-apC
+arq
+asv
+atv
+auD
+alP
aoQ
-cqM
-asw
-asw
-asw
-aCA
-anf
-aFp
+avD
+ayg
+ayg
+ayg
+azf
+aFn
+aAq
aGW
anf
aIp
-fGf
+bcr
aMA
aIp
aOX
aQm
-aRJ
-aST
-aUk
-aRJ
+aGm
+aGx
+aGR
+aHr
aRJ
aYQ
bam
-aYV
+bBT
aYV
aYV
aYV
@@ -99392,10 +101025,10 @@ adU
adU
adU
adU
-adU
-adU
-adU
alg
+aTq
+aTq
+aTq
acx
amv
ane
@@ -99404,11 +101037,11 @@ aog
aoM
apz
aqw
-arr
+asM
asw
asw
auE
-apC
+alP
awG
auF
alP
@@ -99425,14 +101058,14 @@ aMz
aNQ
aOX
aQm
-aRJ
-aRJ
-aRJ
-aRJ
+aGn
+aGK
+aGK
+aHs
aRJ
aYR
ban
-aYV
+bCI
aYV
aYV
bez
@@ -99489,7 +101122,7 @@ bAw
cmk
cnf
bzs
-aaa
+aaf
aaa
aaa
aaa
@@ -99661,22 +101294,22 @@ aoi
aoO
apB
aqx
-art
+asN
anf
anf
auF
-apC
+alP
awH
auF
alP
-aAr
-anf
+axd
+aBF
alP
aaa
aFq
aGX
aIp
-aJO
+bHZ
aKU
aME
aNN
@@ -99689,13 +101322,13 @@ aXo
aXo
aYO
bap
-aYV
+bCI
aYV
bci
beB
bfS
bfS
-kQk
+ckJ
ipA
gbT
cTO
@@ -99918,35 +101551,35 @@ aof
aof
aof
aof
-anf
+asV
aoP
atw
auF
-apC
+alP
aoP
auF
azr
-anf
+aRv
atw
alP
alP
aFo
aGV
aIp
-aJN
+aJO
aLd
aMN
aNQ
aOZ
aOX
aOX
-aOX
+cma
aUz
aVM
aOX
aYT
bam
-aYV
+bDs
baR
bcb
bdl
@@ -100003,7 +101636,7 @@ bAw
bAw
clp
aag
-aaa
+apv
aaa
aaa
aaa
@@ -100179,9 +101812,9 @@ anf
anf
aty
auF
-apC
alP
-auF
+aAt
+aAu
alP
alP
alP
@@ -100260,7 +101893,7 @@ bPn
bPn
bPn
aag
-aaa
+gXs
aaa
aaa
aaa
@@ -100432,16 +102065,16 @@ aaa
aaa
apC
anf
-anf
+aRv
alP
atx
auF
-apC
+alP
auD
auF
-alP
-aAs
-anf
+apE
+axJ
+awL
alP
aCG
aFr
@@ -100515,9 +102148,9 @@ czY
cOT
aaa
aaa
+gXs
aaa
-aaa
-aaa
+gXs
aaa
aaa
aaa
@@ -100693,13 +102326,13 @@ alP
alP
apE
auG
-apC
-aoP
+alP
+clM
auF
apE
anf
anf
-alP
+azh
aCG
aDZ
aFu
@@ -100772,9 +102405,9 @@ czY
cOT
aaa
aaa
+gXs
aaa
-aaa
-aaa
+gXs
aaa
aaa
aaa
@@ -100960,12 +102593,12 @@ aCB
aEB
aFs
bbE
-aIr
+amd
bav
aLf
-aIt
-aNS
-aPb
+aCU
+aDG
+aRO
aQp
aRN
aIt
@@ -100987,7 +102620,7 @@ bls
bfT
boD
bpY
-bsP
+aPY
box
btw
buT
@@ -101028,11 +102661,11 @@ cQB
czY
cOT
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+apv
+apv
+apv
+apv
+apv
aaa
aaa
aaa
@@ -101205,24 +102838,24 @@ apC
alP
alP
alP
-anf
+ciw
auH
avF
awI
ayc
+ciV
asw
-aAu
asw
aCD
aEa
aFv
aGG
aIu
-aJQ
-bCI
+aBA
aIt
aIt
-aPb
+aDG
+aRO
aIt
aRN
aIt
@@ -101468,17 +103101,17 @@ avE
anf
anf
awD
-aAt
+anf
aty
aCC
aDZ
+anf
aFu
-aFu
-aIs
-aJP
-aLg
-aMH
+aBy
+aJJ
+aCA
aIt
+aDJ
aYW
aYW
aYW
@@ -101497,7 +103130,7 @@ cHJ
cHL
blw
bjP
-blt
+bTu
bfT
boG
bqa
@@ -101545,10 +103178,10 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
+bsP
+bti
+btk
+buh
aaa
aaa
aaa
@@ -101730,12 +103363,12 @@ alP
aCE
aDZ
aFu
-aHc
-aIw
+aFu
+aBz
aJS
-aJS
-aMJ
+aCS
aNP
+aDL
aOS
aOS
aOS
@@ -101798,15 +103431,15 @@ cOT
cQB
cAa
cOT
+gXs
+bqb
+brl
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+bsP
+bsP
+bsP
+buh
aaa
aaa
aaa
@@ -101974,7 +103607,7 @@ aaf
aaf
alO
aqA
-anf
+arz
alP
anf
anf
@@ -101983,25 +103616,25 @@ awJ
anf
alP
aAv
-anf
+cih
aCE
aDZ
aFu
-aHb
+aIy
aIv
-aJR
-aJR
+aBD
aIt
aIt
+aDG
+aRO
+aIt
aPd
aIt
-aRO
-aRO
-aUC
-aVP
+aPb
+aIt
aXu
aYW
-bat
+aVS
bbD
aYV
aXq
@@ -102056,14 +103689,14 @@ czU
czZ
cOT
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+apv
+brT
+brT
+bsP
+bsP
+bsP
+buA
+bti
aaa
aaa
aaa
@@ -102247,15 +103880,15 @@ aFu
aHd
aIx
aJF
-aLh
+aQq
+aNS
+aDG
+aRO
aIt
-aNV
aPd
aIt
-aRO
-aRO
+aPb
aIt
-aVQ
aXu
aYW
aVQ
@@ -102312,15 +103945,15 @@ cOT
cgm
czY
cOT
+gXs
+bqb
+brl
+bsB
+brT
+brT
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+bsB
aaa
aaa
aaa
@@ -102485,8 +104118,8 @@ aaf
aaf
aaa
aaa
-alO
-apD
+alP
+aie
aEl
anf
arx
@@ -102500,22 +104133,22 @@ alP
alP
aCF
aDZ
+alP
aFw
aFw
aFw
aFw
aFw
-aFw
-aFw
+aFu
aPf
aQq
aRP
+cfE
aIt
aIt
-moD
aWd
aXV
-aIt
+aGl
bbD
aYV
aXq
@@ -102572,11 +104205,11 @@ cNW
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+bsB
+bsB
+bti
+bsP
+gXs
aaa
aaa
aaa
@@ -102742,15 +104375,15 @@ aaa
aaf
aaf
aaa
-alP
+alO
anf
anf
arw
-asA
-asA
+bxh
+clL
anf
alP
-awL
+aqB
anf
anf
apE
@@ -102759,17 +104392,17 @@ aCH
aED
aFy
aGO
-aIB
-aJJ
+aIA
+aJM
aKZ
-aMW
aFw
aFu
aFu
aFu
+aFu
aTc
aUD
-aVS
+aSk
aYW
aYW
bax
@@ -102833,10 +104466,10 @@ aaa
aaa
aaa
aaa
-cOT
-cOT
-cOT
-aag
+aaa
+aaa
+aaa
+aaa
aaa
aaa
aaa
@@ -103016,17 +104649,17 @@ aCk
aEC
aFx
aGM
-aIy
+aIB
aJG
-cAz
aMK
aFw
-aPg
+aMW
+aPi
aQr
aFu
aTb
aIt
-aVR
+aLg
aYW
aYW
aUD
@@ -103087,13 +104720,13 @@ aaa
aaa
aaa
aaa
+apv
+apv
+apv
+apv
aaa
aaa
aaa
-cOT
-cOe
-cqu
-aag
aaa
aaa
aaa
@@ -103255,16 +104888,16 @@ aaa
aaa
aaa
aaa
+gXs
alP
-alP
-alP
-aqB
-arx
-anf
-anf
-anf
-alP
-awM
+apD
+ayf
+bev
+cil
+aFn
+aFn
+aBB
+bGB
ayg
ayg
ayg
@@ -103277,9 +104910,9 @@ aFw
aLo
aLb
aFw
-aFw
-aPi
-aQt
+aPg
+aYW
+aYW
aRQ
aIt
aUF
@@ -103340,17 +104973,17 @@ cOT
cgm
czY
cOT
-aaf
-aaf
-aaf
-aaf
-aaf
-cNW
-cNW
-cOT
-cqu
-cOT
-aag
+aaa
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
aaa
aaa
aaa
@@ -103511,13 +105144,13 @@ aaa
aaa
aaa
aaa
-aaa
-alP
-aoP
-alP
-alP
-apE
-alP
+amx
+amx
+amx
+amx
+aMB
+amx
+amx
atB
alP
alP
@@ -103531,16 +105164,16 @@ aEd
aFw
aHf
aIz
-aJM
+aJP
aLa
-cBZ
aFw
aPh
+aYW
aQs
aFu
aTd
aUE
-aVT
+aVR
aYW
aYW
aZd
@@ -103600,13 +105233,13 @@ cOT
aaa
aaa
aaa
-aaf
-aaf
-cNW
-cwy
-cmn
-cmn
-cOT
+aaa
+gXs
+aaa
+aaa
+gXs
+aaa
+aaa
aaa
aaa
aaa
@@ -103761,36 +105394,35 @@ aaa
aaa
aaa
aaa
-aaf
-aaf
-aaf
-aaf
-alP
-alP
-alP
-alP
-alP
-anf
-anf
-anf
-anf
-anf
-anf
-aty
-anf
-awx
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+aaa
+amx
+axE
+aIr
+aJm
+aNV
+bDX
+bFC
+bGg
+bGh
+bGg
+bGS
avI
asA
apE
-arx
aCo
+aCG
aEf
aFw
aGU
aIC
aJU
aLe
-aMX
aFw
aCR
aCR
@@ -103798,6 +105430,7 @@ aCR
aCR
aCR
aCR
+aCR
aWe
aWe
aCR
@@ -103860,10 +105493,10 @@ cNW
cNW
cNW
cNW
-cmn
-cmn
-cmn
cOT
+cOT
+aag
+aaa
aaa
aaa
aaa
@@ -104022,15 +105655,15 @@ aaa
aaa
aaa
aaa
-alO
-amx
-anf
-anf
-anf
-anf
-alP
-alP
-alP
+aaa
+aaa
+aaa
+apY
+aIr
+aIr
+aIr
+aIr
+aMC
asB
asB
asB
@@ -104044,13 +105677,13 @@ aCK
aEf
aFw
aHg
-aIA
+cBZ
aJT
aLc
-aMX
aFw
aFz
aFz
+aFz
aRR
aTe
aUG
@@ -104114,14 +105747,14 @@ cko
clq
cmq
ciI
-cnJ
-cri
-cTI
-cmn
-cBT
-cBU
-cOT
-aaa
+bae
+cmJ
+cOe
+cOe
+cmK
+aag
+gXs
+apv
aaa
aaa
aaa
@@ -104279,15 +105912,15 @@ aaa
aaa
aaa
aaa
-alP
-alP
-alP
-alP
-alP
-anf
-alP
-aqD
-arz
+aaa
+aaa
+aaa
+apY
+aIr
+aIr
+aIr
+aIr
+aNu
asB
atD
auJ
@@ -104304,8 +105937,8 @@ aGY
aII
aJW
aMX
-aMX
aNW
+aFz
aPl
aQv
aPl
@@ -104371,13 +106004,13 @@ cNW
cOx
cBL
cOe
-cOe
cvO
cNW
cNW
-cNW
-cNW
-cNW
+cOT
+cOT
+aag
+aaa
aaa
aaa
aaa
@@ -104534,17 +106167,17 @@ aaa
aaa
aaa
aaa
-aaf
-aaf
-aaf
-aaf
-aaf
-aaf
-alP
-anf
-alP
-aqC
-ary
+aaa
+aaa
+aaa
+aaa
+aaa
+amx
+aIr
+aIr
+aIr
+aIr
+aIr
asB
atC
auI
@@ -104562,7 +106195,7 @@ aHi
aJV
aFw
aFw
-aFw
+aFz
aPk
aQu
aPk
@@ -104627,9 +106260,9 @@ cNW
cNW
cNW
cNW
-cNW
cOe
-csy
+bag
+clH
cko
cAf
aaa
@@ -104796,12 +106429,12 @@ aaa
aaa
aaa
aaa
-aaf
-alP
-anf
-alP
-alP
-alP
+apY
+aIr
+aIr
+aIr
+aIr
+aIr
asB
atE
auI
@@ -104811,7 +106444,7 @@ avM
azv
aAA
asB
-cSz
+aCE
aEi
aFw
aHl
@@ -104879,14 +106512,14 @@ ceO
cNW
cgm
chw
-ciK
+cgp
cjC
+cgu
ckp
cls
-cmr
-cNW
cOe
-cmo
+cOe
+cou
cNW
aaf
aaf
@@ -105051,20 +106684,20 @@ aaa
aaa
aaa
aaa
-aaf
-aaf
-aaf
-alP
-anf
-apE
-anf
-anf
+aaa
+aaa
+apY
+aIr
+aIr
+aIr
+aIr
+aIr
asB
asB
asB
avL
awR
-auI
+aMp
azu
aAz
asB
@@ -105104,7 +106737,7 @@ buo
bvJ
bCk
byo
-aDH
+btD
bxP
bCf
bvK
@@ -105134,16 +106767,16 @@ bQZ
cdR
ceN
cNW
-cgp
+axY
chv
ciJ
cbf
-cbf
+ciK
clr
-bnt
-cNW
+bah
cOe
-cou
+cOe
+bMB
cOT
aaa
aaa
@@ -105310,12 +106943,12 @@ aaa
aaa
aaa
aaa
-aaf
-alP
-aoQ
-alP
-aqE
-arA
+amx
+awM
+aIr
+aJE
+aIr
+bFk
asB
atG
auL
@@ -105397,10 +107030,10 @@ cNW
cNW
cNW
clt
-bnt
-cNW
+cQw
cOe
-bMB
+cOe
+bNA
cOT
aaa
aaa
@@ -105566,13 +107199,13 @@ aaa
aaa
aaa
aaa
-aaf
-aaf
-alP
-alP
-alP
-alP
-alP
+aaa
+amx
+amx
+amx
+amx
+amx
+amx
asB
atF
auK
@@ -105653,11 +107286,11 @@ chx
cNW
aaa
cNW
-cgr
-cms
+clt
+cQw
+cNW
+cNW
cNW
-cOe
-bNA
cNW
aaf
aaf
@@ -105858,9 +107491,9 @@ aXB
aZh
baB
aCR
-bcq
+bNa
bdx
-bcq
+bPv
bgc
bgc
biX
@@ -105911,10 +107544,10 @@ cOT
aaa
cOT
clt
-bnt
+cQw
+cOe
cOe
cOe
-cNW
cNW
aaa
aaa
@@ -106169,18 +107802,18 @@ aaa
cOT
clt
cQw
-cNW
-cNW
-cNW
-aaa
-aaa
-aaS
-aaS
-aaS
-aaS
-aaS
-aaS
-aaS
+cOe
+cOe
+cOe
+cOe
+sQX
+cdi
+cdi
+cdi
+cdi
+cdi
+cdi
+cdi
aaS
aaS
aba
@@ -106366,7 +107999,7 @@ aCR
aCR
aCR
aTl
-amd
+aUL
aVW
aXD
aZj
@@ -106419,17 +108052,17 @@ ccT
bSc
bSc
cfu
-cgu
+bnt
chA
cNW
aaa
cNW
clt
cQw
-aaf
-aaf
-aaf
-aaf
+cOe
+cOe
+cOe
+cNW
aaf
aaS
aaa
@@ -106683,10 +108316,10 @@ cNW
cNW
clt
cQw
-aaa
-aaa
-aaa
-aaa
+cOe
+cOe
+cOe
+cNW
aaa
aaS
aaa
@@ -106932,18 +108565,18 @@ cbZ
bSl
cmo
cNW
-cOx
+ckR
cNW
chC
ciL
cOe
cOe
clv
-cmt
-aaa
-aaa
-aaa
-aaa
+cQw
+cNW
+cNW
+cNW
+cNW
aaa
aba
aaf
@@ -107199,7 +108832,7 @@ clu
cmt
aaa
aaa
-aaa
+gXs
aaa
aaa
aaf
@@ -107713,7 +109346,7 @@ cjD
cjD
cnj
aaa
-aaa
+gXs
aaa
aaa
aaf
@@ -107984,7 +109617,7 @@ crD
aaa
aaa
aaa
-csZ
+aSY
aaa
aaa
aaa
@@ -108231,18 +109864,18 @@ cyU
cpi
cpi
cpi
-cqJ
+aSH
+aSS
crk
crk
crk
crk
crk
+aST
+aSH
+aSS
crk
-crk
-csE
-cpi
-csY
-cpi
+aST
cpi
cpi
ctB
@@ -108498,7 +110131,7 @@ crF
aaa
aaa
aaa
-csZ
+aTa
aaa
aaa
aaa
@@ -108979,8 +110612,8 @@ cbf
cbf
cbf
cbf
-cbf
bYr
+cbf
clr
cad
cbi
@@ -109237,7 +110870,7 @@ cNW
cNW
cNW
cNW
-cNW
+clR
clt
cac
cbh
@@ -109503,7 +111136,7 @@ cbf
cbf
ceT
cNW
-cOe
+clT
chH
cNW
aaf
diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm
index d9d46066bf..821672a9b4 100644
--- a/_maps/map_files/Deltastation/DeltaStation2.dmm
+++ b/_maps/map_files/Deltastation/DeltaStation2.dmm
@@ -1800,7 +1800,7 @@
pixel_y = -32
},
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/item/twohanded/required/kirbyplants/random,
@@ -15186,7 +15186,7 @@
/area/crew_quarters/bar)
"aGc" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24;
pixel_y = 32
},
@@ -15457,7 +15457,7 @@
pixel_y = 32
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/light_switch{
@@ -16828,7 +16828,7 @@
/area/maintenance/disposal/incinerator)
"aIy" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/light_switch{
@@ -17791,7 +17791,7 @@
},
/obj/effect/decal/cleanable/dirt,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/machinery/atmospherics/components/unary/vent_pump/on{
@@ -21486,7 +21486,7 @@
"aQl" = (
/obj/structure/table/wood,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/item/camera,
@@ -23602,7 +23602,7 @@
/area/crew_quarters/theatre)
"aTy" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/light_switch{
@@ -26869,6 +26869,7 @@
/area/engine/atmos)
"aXW" = (
/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
+/obj/machinery/atmospherics/miner/carbon_dioxide,
/turf/open/floor/engine/co2,
/area/engine/atmos)
"aXX" = (
@@ -27337,7 +27338,7 @@
/area/crew_quarters/bar/atrium)
"aYF" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/light{
@@ -27513,7 +27514,7 @@
"aYR" = (
/obj/item/twohanded/required/kirbyplants/random,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24;
pixel_y = -32
},
@@ -27639,7 +27640,7 @@
"aZb" = (
/obj/machinery/photocopier,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24;
pixel_y = -32
},
@@ -29257,6 +29258,7 @@
/area/engine/atmos)
"bbO" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
+/obj/machinery/atmospherics/miner/oxygen,
/turf/open/floor/engine/o2,
/area/engine/atmos)
"bbP" = (
@@ -29336,7 +29338,7 @@
pixel_y = 22
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/chem_master/condimaster{
@@ -29603,7 +29605,7 @@
/obj/item/clipboard,
/obj/item/toy/figure/miner,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/machinery/light{
@@ -30753,6 +30755,7 @@
/area/engine/atmos)
"bev" = (
/obj/machinery/portable_atmospherics/canister/toxins,
+/obj/machinery/atmospherics/miner/toxins,
/turf/open/floor/engine/plasma,
/area/engine/atmos)
"bew" = (
@@ -30819,7 +30822,7 @@
/obj/effect/decal/cleanable/dirt,
/obj/item/twohanded/required/kirbyplants/random,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
@@ -31057,7 +31060,7 @@
"beY" = (
/obj/structure/kitchenspike,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
@@ -32494,6 +32497,7 @@
/area/engine/atmos)
"bhw" = (
/obj/machinery/portable_atmospherics/canister/nitrogen,
+/obj/machinery/atmospherics/miner/nitrogen,
/turf/open/floor/engine/n2,
/area/engine/atmos)
"bhx" = (
@@ -32627,7 +32631,7 @@
/area/crew_quarters/kitchen)
"bhL" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24;
pixel_y = 32
},
@@ -34606,6 +34610,7 @@
/obj/machinery/portable_atmospherics/canister/nitrous_oxide{
valve_open = 1
},
+/obj/machinery/atmospherics/miner/n2o,
/turf/open/floor/engine/n2o,
/area/engine/atmos)
"bkI" = (
@@ -37308,7 +37313,6 @@
/obj/item/clothing/accessory/armband/deputy,
/obj/item/clothing/accessory/armband/deputy,
/obj/item/clothing/accessory/armband/deputy,
-/obj/item/reagent_containers/food/snacks/donut/jelly/cherryjelly,
/obj/effect/turf_decal/tile/red{
dir = 1
},
@@ -40095,7 +40099,7 @@
/area/crew_quarters/heads/hos)
"bty" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24;
pixel_y = -32
},
@@ -40782,7 +40786,7 @@
/area/security/main)
"buM" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24;
pixel_y = -32
},
@@ -41844,7 +41848,7 @@
dir = 8
},
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/machinery/light_switch{
@@ -43216,7 +43220,7 @@
"byI" = (
/obj/item/twohanded/required/kirbyplants/random,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/effect/turf_decal/tile/red{
@@ -43230,7 +43234,7 @@
/area/security/execution/transfer)
"byJ" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
@@ -48755,7 +48759,7 @@
/area/engine/gravity_generator)
"bGg" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/item/twohanded/required/kirbyplants/random,
@@ -48794,7 +48798,7 @@
/area/engine/break_room)
"bGk" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/airalarm{
@@ -48935,7 +48939,7 @@
"bGt" = (
/obj/item/twohanded/required/kirbyplants/random,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/light_switch{
@@ -49890,7 +49894,7 @@
/area/engine/gravity_generator)
"bHS" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/light_switch{
@@ -50406,7 +50410,7 @@
"bIG" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/effect/turf_decal/tile/neutral,
@@ -51881,7 +51885,7 @@
"bKU" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/effect/turf_decal/tile/neutral{
@@ -52445,7 +52449,7 @@
"bLK" = (
/obj/item/twohanded/required/kirbyplants/random,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/button/door{
@@ -55374,7 +55378,7 @@
"bQh" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/effect/turf_decal/tile/yellow{
@@ -57009,7 +57013,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/structure/disposalpipe/segment,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/effect/turf_decal/tile/red{
@@ -57153,7 +57157,7 @@
pixel_y = -3
},
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/effect/turf_decal/tile/neutral{
@@ -57248,7 +57252,7 @@
layer = 2.9
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/light/small{
@@ -60797,7 +60801,7 @@
"bXY" = (
/obj/item/twohanded/required/kirbyplants/random,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
@@ -60899,7 +60903,7 @@
"bYh" = (
/obj/item/twohanded/required/kirbyplants/random,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
@@ -60920,7 +60924,7 @@
"bYi" = (
/obj/structure/window/reinforced,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
@@ -62280,7 +62284,7 @@
/area/ai_monitored/turret_protected/aisat_interior)
"caj" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/porta_turret/ai,
@@ -64037,7 +64041,7 @@
"cdk" = (
/obj/machinery/vending/wardrobe/law_wardrobe,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/turf/open/floor/wood,
@@ -64076,7 +64080,7 @@
/area/security/brig)
"cdn" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/machinery/light{
@@ -67030,7 +67034,7 @@
/area/engine/engineering)
"chF" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24;
pixel_y = -32
},
@@ -67361,7 +67365,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/structure/disposalpipe/segment,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/effect/turf_decal/tile/neutral,
@@ -69328,7 +69332,7 @@
pixel_x = -26
},
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24;
pixel_y = 32
},
@@ -70711,7 +70715,7 @@
},
/obj/item/camera_film,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/turf/open/floor/plasteel/grimy,
@@ -76603,7 +76607,7 @@
},
/obj/item/crowbar,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/structure/table/reinforced,
@@ -77602,7 +77606,7 @@
"czP" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/effect/turf_decal/tile/neutral{
@@ -77888,7 +77892,7 @@
dir = 8
},
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/structure/cable/white{
@@ -78794,7 +78798,7 @@
"cBL" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/item/twohanded/required/kirbyplants/random,
@@ -80798,7 +80802,7 @@
/obj/item/radio,
/obj/item/radio,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/effect/decal/cleanable/dirt,
@@ -81427,7 +81431,7 @@
/obj/item/clothing/head/welding,
/obj/effect/decal/cleanable/dirt,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24;
pixel_y = -32
},
@@ -82645,7 +82649,7 @@
/area/crew_quarters/dorms)
"cIk" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
@@ -87477,7 +87481,7 @@
"cQE" = (
/obj/structure/closet/secure_closet/security/science,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/machinery/status_display{
@@ -88838,7 +88842,7 @@
pixel_y = 32
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/light_switch{
@@ -95618,7 +95622,7 @@
/obj/item/paper_bin,
/obj/item/pen,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/item/storage/bag/bio,
@@ -96554,7 +96558,7 @@
/obj/item/reagent_containers/glass/bottle/epinephrine,
/obj/item/reagent_containers/dropper,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/light{
@@ -100259,7 +100263,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/structure/disposalpipe/segment,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/door/firedoor,
@@ -100623,7 +100627,7 @@
/area/science/explab)
"dmJ" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/effect/turf_decal/bot,
@@ -100634,7 +100638,7 @@
dir = 4
},
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/effect/turf_decal/bot,
@@ -103278,7 +103282,7 @@
pixel_x = 36
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/vending/assist,
@@ -103445,7 +103449,7 @@
pixel_y = 6
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/camera{
@@ -103794,10 +103798,10 @@
/turf/open/floor/plasteel/white,
/area/medical/medbay/central)
"dsI" = (
-/obj/structure/sign/warning/nosmoking,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
+/obj/machinery/smartfridge/organ/preloaded,
/turf/closed/wall,
/area/medical/surgery)
"dsJ" = (
@@ -104055,7 +104059,7 @@
"dti" = (
/obj/structure/closet/bombcloset,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/effect/turf_decal/stripes/line{
@@ -104389,7 +104393,7 @@
/area/medical/surgery)
"dtQ" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/effect/turf_decal/tile/blue{
@@ -105002,7 +105006,7 @@
"duZ" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24;
pixel_y = -26
},
@@ -105033,7 +105037,7 @@
"dvd" = (
/obj/item/twohanded/required/kirbyplants/random,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/effect/turf_decal/bot,
@@ -107185,7 +107189,7 @@
"dyD" = (
/obj/structure/table,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/machinery/status_display/ai{
@@ -108398,7 +108402,7 @@
/obj/item/clothing/glasses/welding,
/obj/structure/table/reinforced,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/effect/turf_decal/bot,
@@ -111492,7 +111496,7 @@
dir = 5
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/turf/open/floor/plasteel,
@@ -111886,7 +111890,7 @@
pixel_y = 26
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24;
pixel_y = -26
},
@@ -112582,7 +112586,7 @@
/area/science/robotics/lab)
"dHC" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/structure/disposalpipe/segment,
@@ -113983,7 +113987,7 @@
"dJO" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
@@ -114247,7 +114251,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/structure/disposalpipe/segment,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/effect/turf_decal/tile/neutral,
@@ -116746,7 +116750,7 @@
"dOC" = (
/obj/structure/filingcabinet/medical,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/effect/turf_decal/tile/blue{
@@ -117626,7 +117630,7 @@
name = "emergency shower"
},
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/machinery/atmospherics/components/unary/vent_pump/on{
@@ -118825,7 +118829,7 @@
/area/medical/virology)
"dSd" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/machinery/light{
@@ -119657,7 +119661,7 @@
dir = 8
},
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/structure/sign/poster/official/work_for_a_future{
@@ -119868,7 +119872,7 @@
dir = 4
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
@@ -121622,7 +121626,7 @@
"dXI" = (
/obj/structure/chair/wood,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/camera{
@@ -122148,7 +122152,7 @@
/area/medical/virology)
"dYV" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/structure/closet/secure_closet/medical1,
@@ -125155,7 +125159,7 @@
},
/obj/item/camera_film,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/status_display{
@@ -125251,7 +125255,7 @@
"eeH" = (
/obj/structure/filingcabinet/security,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/machinery/light_switch{
@@ -125960,7 +125964,7 @@
"egb" = (
/obj/structure/table/wood,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/item/clipboard,
@@ -127428,6 +127432,10 @@
/obj/item/assembly/signaler,
/turf/open/floor/plating,
/area/crew_quarters/abandoned_gambling_den)
+"mMC" = (
+/obj/structure/sign/warning/nosmoking,
+/turf/closed/wall,
+/area/medical/surgery)
"mQE" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
@@ -174919,7 +174927,7 @@ dkv
dma
dma
dma
-dma
+mMC
dsI
dro
dvz
diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm
index f72a787214..8e1a3b618d 100644
--- a/_maps/map_files/MetaStation/MetaStation.dmm
+++ b/_maps/map_files/MetaStation/MetaStation.dmm
@@ -1445,7 +1445,7 @@
icon_state = "1-2"
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 28
},
/obj/machinery/light{
@@ -3882,7 +3882,7 @@
/obj/item/clothing/head/helmet/riot,
/obj/item/clothing/head/helmet/riot,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 28
},
/obj/effect/turf_decal/tile/neutral{
@@ -4020,7 +4020,7 @@
"ahJ" = (
/obj/machinery/disposal/bin,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/machinery/light_switch{
@@ -4158,7 +4158,7 @@
icon_state = "1-2"
},
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/effect/turf_decal/tile/neutral{
@@ -4903,7 +4903,7 @@
name = "Evidence Closet 5"
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 28
},
/obj/effect/turf_decal/tile/neutral{
@@ -7192,7 +7192,7 @@
/obj/item/reagent_containers/glass/bottle/morphine,
/obj/machinery/light/small,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -26
},
/obj/effect/turf_decal/bot,
@@ -7248,7 +7248,7 @@
"anu" = (
/obj/machinery/vending/security,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 28
},
/turf/open/floor/plasteel/showroomfloor,
@@ -7733,7 +7733,7 @@
"aot" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 28
},
/obj/effect/turf_decal/tile/red{
@@ -7780,7 +7780,7 @@
/area/maintenance/port/fore)
"aoy" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 28
},
/obj/structure/closet/secure_closet/warden,
@@ -9298,7 +9298,7 @@
},
/obj/structure/table/wood,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 28
},
/turf/open/floor/plasteel/grimy,
@@ -9456,7 +9456,7 @@
/area/engine/gravity_generator)
"arS" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 28
},
/obj/structure/cable{
@@ -11192,7 +11192,7 @@
dir = 5
},
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -26
},
/obj/effect/turf_decal/tile/neutral{
@@ -13469,7 +13469,7 @@
/area/security/brig)
"azQ" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/structure/filingcabinet,
@@ -14063,7 +14063,7 @@
/area/hallway/primary/fore)
"aAX" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 28
},
/obj/machinery/light/small{
@@ -14112,7 +14112,7 @@
"aBc" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -26
},
/obj/effect/turf_decal/tile/red{
@@ -14609,7 +14609,7 @@
maxcharge = 2000
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/effect/spawner/lootdrop/maintenance,
@@ -15124,7 +15124,7 @@
/area/maintenance/port/fore)
"aDh" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/machinery/light{
@@ -16127,7 +16127,7 @@
"aFc" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/machinery/camera{
@@ -16225,7 +16225,7 @@
"aFo" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 28
},
/obj/effect/turf_decal/tile/neutral{
@@ -16236,7 +16236,7 @@
"aFp" = (
/obj/structure/reagent_dispensers/watertank,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/machinery/light_switch{
@@ -16584,7 +16584,7 @@
icon_state = "2-4"
},
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -26
},
/obj/machinery/camera{
@@ -16858,7 +16858,7 @@
},
/obj/item/pen,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/structure/reagent_dispensers/peppertank{
@@ -17616,7 +17616,7 @@
/area/maintenance/starboard/fore)
"aHX" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/effect/turf_decal/stripes/line{
@@ -18710,7 +18710,7 @@
icon_state = "1-8"
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/turf/open/floor/wood,
@@ -19722,7 +19722,7 @@
/area/storage/primary)
"aMF" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
@@ -19794,7 +19794,7 @@
/area/hallway/primary/fore)
"aMK" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
@@ -20623,7 +20623,7 @@
/area/lawoffice)
"aOs" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/structure/table,
@@ -21207,7 +21207,7 @@
"aPA" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/camera{
@@ -21396,7 +21396,7 @@
pixel_y = 32
},
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -26
},
/obj/effect/turf_decal/tile/neutral{
@@ -23473,7 +23473,7 @@
icon_state = "1-2"
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/effect/turf_decal/stripes/line{
@@ -23863,7 +23863,7 @@
/area/crew_quarters/locker)
"aUL" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/effect/turf_decal/tile/neutral{
@@ -25956,7 +25956,7 @@
pixel_x = -38
},
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/effect/turf_decal/loading_area{
@@ -28079,7 +28079,7 @@
"bcn" = (
/obj/structure/rack,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -26
},
/obj/item/clothing/gloves/color/fyellow,
@@ -28277,7 +28277,7 @@
/area/storage/tech)
"bcE" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -26
},
/obj/structure/disposalpipe/segment{
@@ -28446,7 +28446,7 @@
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/structure/cable/yellow{
@@ -28566,7 +28566,7 @@
},
/obj/structure/closet/secure_closet/security,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/effect/turf_decal/tile/red{
@@ -28783,7 +28783,7 @@
dir = 9
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/effect/turf_decal/tile/neutral{
@@ -29276,7 +29276,7 @@
"beo" = (
/obj/structure/closet/secure_closet/security/engine,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/structure/cable/yellow{
@@ -30114,7 +30114,7 @@
pixel_y = 7
},
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -26
},
/turf/open/floor/plasteel/dark,
@@ -30613,7 +30613,7 @@
/obj/item/mop,
/obj/structure/disposalpipe/segment,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/turf/open/floor/plasteel,
@@ -31943,7 +31943,7 @@
/area/hallway/primary/starboard)
"bjE" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 28
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
@@ -32353,7 +32353,7 @@
"bkn" = (
/obj/structure/table,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -26
},
/obj/effect/turf_decal/tile/brown{
@@ -33024,7 +33024,7 @@
/obj/machinery/computer/teleporter,
/obj/machinery/atmospherics/components/unary/vent_pump/on,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -26
},
/obj/effect/turf_decal/tile/neutral{
@@ -34207,7 +34207,7 @@
/area/ai_monitored/storage/satellite)
"bnK" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
@@ -34637,7 +34637,7 @@
/area/bridge)
"boC" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/item/storage/fancy/donut_box,
@@ -36458,7 +36458,7 @@
dir = 4
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/effect/turf_decal/tile/blue{
@@ -37243,7 +37243,7 @@
/obj/structure/table,
/obj/item/camera_film,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 28
},
/turf/open/floor/plasteel,
@@ -38242,7 +38242,7 @@
pixel_x = 4
},
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -26
},
/turf/open/floor/plasteel/dark,
@@ -38729,7 +38729,7 @@
"bwr" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/camera{
@@ -38821,7 +38821,7 @@
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/effect/turf_decal/tile/blue{
@@ -38943,7 +38943,7 @@
"bwK" = (
/obj/structure/table,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -26
},
/obj/machinery/chem_dispenser/drinks,
@@ -39807,7 +39807,7 @@
"byv" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/effect/turf_decal/tile/neutral{
@@ -39973,7 +39973,7 @@
dir = 4
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/effect/turf_decal/tile/blue,
@@ -40671,7 +40671,7 @@
dir = 4
},
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/turf/open/floor/carpet,
@@ -41103,7 +41103,7 @@
pixel_y = -30
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/item/paper_bin{
@@ -41614,7 +41614,7 @@
/area/crew_quarters/theatre)
"bCd" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/structure/table/wood,
@@ -41949,7 +41949,7 @@
/area/crew_quarters/toilet/auxiliary)
"bCS" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/turf/open/floor/plasteel,
@@ -44190,7 +44190,7 @@
dir = 5
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/effect/turf_decal/tile/yellow{
@@ -45223,7 +45223,7 @@
/area/security/vacantoffice)
"bJx" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/turf/open/floor/wood,
@@ -45233,7 +45233,7 @@
dir = 8
},
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/effect/decal/cleanable/cobweb,
@@ -45319,7 +45319,7 @@
"bJH" = (
/obj/machinery/suit_storage_unit/standard_unit,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/effect/turf_decal/tile/neutral{
@@ -45855,6 +45855,7 @@
/obj/machinery/portable_atmospherics/canister/nitrous_oxide{
valve_open = 1
},
+/obj/machinery/atmospherics/miner/n2o,
/turf/open/floor/engine/n2o,
/area/engine/atmos)
"bKJ" = (
@@ -45967,7 +45968,7 @@
icon_state = "1-2"
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/camera{
@@ -46985,7 +46986,7 @@
"bMW" = (
/obj/machinery/teleport/station,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/turf/open/floor/plating,
@@ -47352,7 +47353,7 @@
/area/crew_quarters/kitchen)
"bNC" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/vending/dinnerware,
@@ -47447,7 +47448,7 @@
dir = 4
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/turf/open/floor/plasteel/dark,
@@ -48899,6 +48900,7 @@
/area/engine/atmos)
"bQY" = (
/obj/machinery/portable_atmospherics/canister/toxins,
+/obj/machinery/atmospherics/miner/toxins,
/turf/open/floor/engine/plasma,
/area/engine/atmos)
"bQZ" = (
@@ -49198,7 +49200,7 @@
name = "novelty HoS hat"
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/light/small{
@@ -49294,7 +49296,7 @@
"bRO" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/effect/turf_decal/tile/neutral{
@@ -49729,7 +49731,7 @@
"bSD" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/effect/turf_decal/tile/neutral{
@@ -51342,6 +51344,7 @@
/area/engine/atmos)
"bVO" = (
/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
+/obj/machinery/atmospherics/miner/carbon_dioxide,
/turf/open/floor/engine/co2,
/area/engine/atmos)
"bVP" = (
@@ -52408,7 +52411,7 @@
/area/hallway/primary/central)
"bXZ" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/item/twohanded/required/kirbyplants{
@@ -53733,7 +53736,7 @@
dir = 1
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/camera{
@@ -53817,7 +53820,7 @@
},
/obj/item/pen,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/effect/turf_decal/tile/red{
@@ -53831,7 +53834,7 @@
/area/security/checkpoint/science/research)
"caG" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/structure/sink{
@@ -55905,7 +55908,7 @@
},
/obj/machinery/atmospherics/components/unary/vent_pump/on,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -26;
pixel_y = 28
},
@@ -57091,7 +57094,7 @@
icon_state = "2-8"
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 28
},
/obj/structure/reagent_dispensers/cooking_oil,
@@ -57265,7 +57268,7 @@
/area/medical/sleeper)
"cgT" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
@@ -57892,7 +57895,7 @@
/area/maintenance/port/aft)
"cie" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
@@ -58454,6 +58457,7 @@
/area/engine/atmos)
"cjd" = (
/obj/machinery/portable_atmospherics/canister/nitrogen,
+/obj/machinery/atmospherics/miner/nitrogen,
/turf/open/floor/engine/n2,
/area/engine/atmos)
"cje" = (
@@ -58468,6 +58472,7 @@
/area/engine/atmos)
"cjg" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
+/obj/machinery/atmospherics/miner/oxygen,
/turf/open/floor/engine/o2,
/area/engine/atmos)
"cjh" = (
@@ -59031,7 +59036,7 @@
/area/maintenance/starboard/aft)
"ckm" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/structure/sink{
@@ -59626,7 +59631,7 @@
dir = 8
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/effect/turf_decal/tile/neutral{
@@ -59730,7 +59735,7 @@
/area/science/research)
"clI" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/structure/closet/firecloset,
@@ -61045,7 +61050,7 @@
/area/science/research)
"cok" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -26
},
/obj/structure/disposalpipe/segment,
@@ -62766,7 +62771,7 @@
dir = 8
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/turf/open/floor/plasteel/white/side{
@@ -62776,6 +62781,9 @@
"cro" = (
/obj/structure/bed/roller,
/obj/machinery/iv_drip,
+/obj/structure/sign/warning/nosmoking{
+ pixel_x = -28
+ },
/turf/open/floor/plasteel/white,
/area/medical/surgery)
"crq" = (
@@ -63296,9 +63304,6 @@
dir = 1;
pixel_y = -22
},
-/obj/structure/sign/warning/nosmoking{
- pixel_x = -28
- },
/obj/machinery/iv_drip,
/obj/effect/turf_decal/tile/blue,
/obj/effect/turf_decal/tile/blue{
@@ -63319,7 +63324,7 @@
"csq" = (
/obj/structure/bed,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/item/bedsheet/medical,
@@ -63349,7 +63354,7 @@
/area/medical/cryo)
"cst" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/machinery/camera{
@@ -64556,7 +64561,7 @@
pixel_y = 2
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/structure/sign/warning/nosmoking{
@@ -64778,7 +64783,7 @@
},
/obj/item/storage/secure/briefcase,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/turf/open/floor/plasteel/cafeteria{
@@ -65130,7 +65135,7 @@
/area/medical/genetics)
"cvC" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/item/storage/box/syringes,
@@ -65705,7 +65710,7 @@
"cwF" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/effect/turf_decal/tile/blue{
@@ -65785,7 +65790,7 @@
"cwO" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/effect/turf_decal/tile/blue{
@@ -66781,7 +66786,7 @@
/area/science/circuit)
"cyN" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/machinery/airalarm{
@@ -67430,7 +67435,7 @@
},
/obj/item/paper,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/structure/table/glass,
@@ -68105,7 +68110,7 @@
"cBi" = (
/obj/structure/reagent_dispensers/fueltank,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 28
},
/obj/effect/turf_decal/delivery,
@@ -68521,7 +68526,7 @@
/area/medical/medbay/aft)
"cCb" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/structure/closet/secure_closet/personal/patient,
@@ -69596,7 +69601,7 @@
dir = 4
},
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/effect/turf_decal/tile/neutral{
@@ -70136,7 +70141,7 @@
/area/science/robotics/lab)
"cFj" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 28;
pixel_y = 5
},
@@ -70649,7 +70654,7 @@
"cGi" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/turf/open/floor/plasteel/white/side{
@@ -72046,7 +72051,7 @@
dir = 9
},
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -26
},
/obj/machinery/vending/wardrobe/viro_wardrobe,
@@ -73267,7 +73272,7 @@
dir = 9
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/effect/turf_decal/stripes/line{
@@ -73902,7 +73907,7 @@
"cLS" = (
/obj/structure/chair/stool,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/effect/turf_decal/tile/green,
@@ -73931,7 +73936,7 @@
pixel_y = 25
},
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -26
},
/obj/structure/table/wood,
@@ -77869,7 +77874,7 @@
/area/hallway/primary/central)
"cVi" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/turf/open/floor/wood,
@@ -79683,7 +79688,7 @@
network = list("ss13","engine")
},
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -26
},
/turf/open/floor/plasteel/dark,
@@ -81295,7 +81300,7 @@
/area/crew_quarters/theatre)
"dis" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/disposal/bin,
@@ -83997,6 +84002,10 @@
},
/turf/open/floor/plating,
/area/maintenance/port)
+"qnB" = (
+/obj/machinery/smartfridge/organ/preloaded,
+/turf/closed/wall,
+/area/medical/surgery)
"qqg" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 6
@@ -84064,7 +84073,7 @@
/area/library)
"qXt" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/turf/open/floor/plasteel/dark,
@@ -104229,7 +104238,7 @@ cia
cia
cpX
cia
-cia
+qnB
cia
ceu
dyg
diff --git a/_maps/map_files/OmegaStation/OmegaStation.dmm b/_maps/map_files/OmegaStation/OmegaStation.dmm
index a7ab212bd6..175edcede4 100644
--- a/_maps/map_files/OmegaStation/OmegaStation.dmm
+++ b/_maps/map_files/OmegaStation/OmegaStation.dmm
@@ -1094,7 +1094,7 @@
dir = 8
},
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/effect/turf_decal/tile/purple{
@@ -3052,7 +3052,7 @@
"afp" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/camera{
@@ -3138,7 +3138,7 @@
dir = 8
},
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/machinery/camera{
@@ -4288,7 +4288,7 @@
/area/maintenance/starboard/fore)
"ahk" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/machinery/light_switch{
@@ -4440,7 +4440,7 @@
"ahy" = (
/obj/machinery/suit_storage_unit/security,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
@@ -4475,7 +4475,7 @@
"ahB" = (
/obj/machinery/photocopier,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/structure/cable/white{
@@ -7740,7 +7740,7 @@
/obj/item/stack/packageWrap,
/obj/item/hand_labeler,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/machinery/camera{
@@ -7886,7 +7886,7 @@
"anj" = (
/obj/machinery/suit_storage_unit/standard_unit,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/effect/turf_decal/stripes/end{
@@ -8367,7 +8367,7 @@
"anZ" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/effect/turf_decal/tile/neutral{
@@ -8554,7 +8554,7 @@
},
/obj/structure/table/reinforced,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/effect/turf_decal/tile/red{
@@ -9965,7 +9965,7 @@
icon_state = "plant-21"
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/light{
@@ -10216,7 +10216,7 @@
pixel_y = -22
},
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/item/paper_bin,
@@ -11445,7 +11445,7 @@
"atj" = (
/obj/machinery/vending/coffee,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/light{
@@ -12887,7 +12887,7 @@
/area/hallway/primary/port)
"avX" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/item/twohanded/required/kirbyplants{
@@ -12902,7 +12902,7 @@
/obj/item/stock_parts/cell/high,
/obj/machinery/cell_charger,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/machinery/light_switch{
@@ -14105,7 +14105,7 @@
/area/engine/atmos)
"ayl" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/effect/turf_decal/stripes/line{
@@ -14116,7 +14116,7 @@
"aym" = (
/obj/machinery/portable_atmospherics/canister/nitrogen,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/effect/turf_decal/delivery,
@@ -16093,7 +16093,7 @@
"aCh" = (
/obj/machinery/vending/snack/random,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/effect/turf_decal/bot,
@@ -16186,11 +16186,13 @@
"aCs" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
/obj/machinery/light/small,
+/obj/machinery/atmospherics/miner/oxygen,
/turf/open/floor/engine/o2,
/area/engine/atmos)
"aCw" = (
/obj/machinery/portable_atmospherics/canister/nitrogen,
/obj/machinery/light/small,
+/obj/machinery/atmospherics/miner/nitrogen,
/turf/open/floor/engine/n2,
/area/engine/atmos)
"aCz" = (
@@ -16503,7 +16505,7 @@
/obj/item/clipboard,
/obj/item/toy/figure/chef,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/machinery/camera{
@@ -16714,7 +16716,7 @@
/area/engine/break_room)
"aDw" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/machinery/atmospherics/components/unary/portables_connector/visible{
@@ -17444,7 +17446,7 @@
"aEK" = (
/obj/machinery/vending/clothing,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/effect/turf_decal/bot,
@@ -17977,7 +17979,7 @@
dir = 1
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/structure/cable{
@@ -18209,7 +18211,7 @@
/area/hallway/primary/port)
"aFL" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
@@ -20148,7 +20150,7 @@
/obj/structure/table,
/obj/item/storage/pill_bottle/dice,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/machinery/light{
@@ -21489,7 +21491,7 @@
"aLg" = (
/obj/machinery/vending/snack/random,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
@@ -22597,7 +22599,7 @@
/area/maintenance/starboard/central)
"aNF" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
@@ -23062,7 +23064,7 @@
/area/engine/engineering)
"aOG" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/effect/turf_decal/stripes/line{
@@ -23834,7 +23836,7 @@
"aPW" = (
/obj/machinery/vending/snack/random,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
@@ -25049,7 +25051,7 @@
name = "emergency shower"
},
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
@@ -26916,7 +26918,7 @@
/obj/item/storage/box/bodybags,
/obj/item/pen,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
@@ -28252,7 +28254,7 @@
dir = 1
},
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
@@ -29794,7 +29796,7 @@
/area/hallway/primary/aft)
"baN" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/machinery/atmospherics/components/unary/vent_pump/on{
@@ -30100,7 +30102,7 @@
/area/medical/medbay/zone3)
"bbu" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/light{
@@ -31241,7 +31243,7 @@
dir = 4
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
@@ -32128,7 +32130,7 @@
/area/security/checkpoint)
"beK" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
@@ -34456,7 +34458,7 @@
pixel_y = -22
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/light/small{
@@ -37099,7 +37101,7 @@
"dai" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/effect/turf_decal/tile/blue{
@@ -37669,6 +37671,7 @@
/obj/machinery/light/small{
dir = 1
},
+/obj/machinery/atmospherics/miner/n2o,
/turf/open/floor/engine/n2o,
/area/engine/atmos)
"gcw" = (
@@ -37974,6 +37977,7 @@
/obj/machinery/light/small{
dir = 1
},
+/obj/machinery/atmospherics/miner/carbon_dioxide,
/turf/open/floor/engine/co2,
/area/engine/atmos)
"hTn" = (
@@ -38421,6 +38425,7 @@
/obj/machinery/light/small{
dir = 1
},
+/obj/machinery/atmospherics/miner/toxins,
/turf/open/floor/engine/plasma,
/area/engine/atmos)
"kiw" = (
@@ -40387,7 +40392,7 @@
/area/maintenance/starboard)
"sHf" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/turf/open/floor/plasteel,
@@ -42215,6 +42220,7 @@
},
/obj/structure/table,
/obj/machinery/firealarm{
+ dir = 1;
pixel_y = -26
},
/obj/effect/turf_decal/tile/neutral,
@@ -42280,6 +42286,7 @@
},
/obj/effect/turf_decal/delivery,
/obj/machinery/firealarm{
+ dir = 1;
pixel_y = -26
},
/obj/effect/turf_decal/tile/neutral,
@@ -42880,6 +42887,12 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/closed/wall/r_wall,
/area/maintenance/disposal/incinerator)
+"uvp" = (
+/obj/machinery/smartfridge/organ/preloaded{
+ pixel_y = 2
+ },
+/turf/closed/wall,
+/area/medical/medbay/zone3)
"uxJ" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/public/glass{
@@ -81595,7 +81608,7 @@ aSh
bcf
bcW
blt
-aSh
+uvp
aOL
bfA
bfX
diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm
index d70bc0187b..97befd1551 100644
--- a/_maps/map_files/PubbyStation/PubbyStation.dmm
+++ b/_maps/map_files/PubbyStation/PubbyStation.dmm
@@ -174,7 +174,6 @@
pixel_x = -27
},
/obj/machinery/firealarm{
- dir = 1;
pixel_y = 26
},
/turf/open/floor/circuit,
@@ -672,7 +671,7 @@
/obj/item/pen,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 28
},
/obj/item/paper_bin,
@@ -2453,7 +2452,7 @@
dir = 6
},
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -27
},
/turf/open/floor/plasteel/showroomfloor,
@@ -3387,7 +3386,7 @@
/obj/item/gun/energy/e_gun,
/obj/machinery/atmospherics/components/unary/vent_pump/on,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -27
},
/turf/open/floor/plasteel/dark,
@@ -4248,7 +4247,7 @@
},
/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -27
},
/obj/effect/turf_decal/tile/red{
@@ -4964,7 +4963,7 @@
dir = 4
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 28
},
/turf/open/floor/plasteel/showroomfloor,
@@ -8228,7 +8227,7 @@
dir = 10
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/turf/open/floor/plasteel/dark,
@@ -8715,7 +8714,7 @@
/area/crew_quarters/dorms)
"avl" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 28
},
/obj/machinery/computer/cryopod{
@@ -9674,7 +9673,7 @@
light_color = "#e8eaff"
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 28
},
/obj/machinery/computer/rdconsole{
@@ -11431,7 +11430,6 @@
"aBB" = (
/obj/machinery/computer/cargo/request,
/obj/machinery/firealarm{
- dir = 1;
pixel_y = 29
},
/turf/open/floor/wood,
@@ -12379,7 +12377,7 @@
/area/storage/primary)
"aDB" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 28
},
/obj/effect/turf_decal/tile/neutral,
@@ -14356,7 +14354,6 @@
dir = 4
},
/obj/machinery/firealarm{
- dir = 1;
pixel_y = 29
},
/obj/effect/turf_decal/tile/blue{
@@ -17508,7 +17505,7 @@
dir = 10
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 28
},
/turf/open/floor/plasteel,
@@ -18556,7 +18553,7 @@
/area/maintenance/department/crew_quarters/bar)
"aSA" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -28
},
/obj/machinery/hydroponics/constructable,
@@ -18775,7 +18772,6 @@
dir = 4
},
/obj/machinery/firealarm{
- dir = 1;
pixel_y = 29
},
/obj/effect/turf_decal/tile/brown{
@@ -19108,7 +19104,7 @@
"aTP" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 28
},
/obj/effect/turf_decal/tile/neutral,
@@ -21328,7 +21324,7 @@
dir = 4
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 28
},
/obj/effect/turf_decal/tile/brown,
@@ -21725,7 +21721,7 @@
dir = 1
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 28
},
/turf/open/floor/plasteel/dark,
@@ -22077,7 +22073,7 @@
dir = 8
},
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -28
},
/obj/effect/turf_decal/tile/green{
@@ -24433,7 +24429,6 @@
"bfx" = (
/obj/structure/reagent_dispensers/fueltank,
/obj/machinery/firealarm{
- dir = 1;
pixel_y = 24
},
/obj/effect/turf_decal/delivery,
@@ -24819,7 +24814,6 @@
/area/hallway/primary/central)
"bgx" = (
/obj/machinery/firealarm{
- dir = 1;
pixel_y = 27
},
/obj/structure/chair,
@@ -26683,7 +26677,7 @@
"bly" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -26;
pixel_y = 28
},
@@ -27994,7 +27988,6 @@
"boz" = (
/obj/machinery/vending/clothing,
/obj/machinery/firealarm{
- dir = 1;
pixel_y = 27
},
/obj/effect/turf_decal/tile/blue{
@@ -30024,7 +30017,7 @@
"bsB" = (
/obj/machinery/atmospherics/components/unary/thermomachine/freezer,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -26
},
/obj/structure/sign/poster/official/random{
@@ -30231,7 +30224,7 @@
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 28
},
/obj/effect/turf_decal/tile/green,
@@ -30360,7 +30353,7 @@
/obj/item/crowbar,
/obj/item/wrench,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -28
},
/obj/item/multitool,
@@ -30810,7 +30803,7 @@
/area/medical/chemistry)
"bun" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 28
},
/obj/effect/turf_decal/tile/yellow{
@@ -30848,7 +30841,7 @@
network = list("ss13","rd")
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 28
},
/obj/machinery/light{
@@ -31469,7 +31462,7 @@
dir = 1
},
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -28
},
/obj/effect/turf_decal/tile/purple{
@@ -34270,7 +34263,7 @@
/area/science/storage)
"bBH" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -28
},
/obj/effect/turf_decal/tile/purple{
@@ -34299,7 +34292,7 @@
"bBK" = (
/obj/structure/closet/bombcloset,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/structure/sign/poster/official/random{
@@ -35599,7 +35592,7 @@
dir = 4
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 28
},
/obj/machinery/light{
@@ -35961,8 +35954,7 @@
dir = 1
},
/obj/machinery/vending/wallmed{
- pixel_y = 28;
- products = list(/obj/item/reagent_containers/syringe = 3, /obj/item/reagent_containers/pill/patch/styptic = 1, /obj/item/reagent_containers/pill/patch/silver_sulf = 1, /obj/item/reagent_containers/medspray/sterilizine = 1)
+ pixel_y = 28
},
/obj/machinery/atmospherics/components/unary/vent_pump/on,
/obj/effect/landmark/blobstart,
@@ -36644,7 +36636,7 @@
"bGe" = (
/obj/machinery/portable_atmospherics/scrubber,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 28
},
/obj/effect/turf_decal/tile/neutral{
@@ -36690,7 +36682,7 @@
network = list("ss13","rd")
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 28
},
/turf/open/floor/engine,
@@ -37123,7 +37115,7 @@
dir = 4
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 28
},
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
@@ -37749,6 +37741,9 @@
/obj/effect/turf_decal/tile/blue{
dir = 8
},
+/obj/machinery/light_switch{
+ pixel_x = -22
+ },
/turf/open/floor/plasteel/white,
/area/medical/surgery)
"bIp" = (
@@ -37795,8 +37790,7 @@
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/vending/wallmed{
- pixel_y = 28;
- products = list(/obj/item/reagent_containers/syringe = 3, /obj/item/reagent_containers/pill/patch/styptic = 1, /obj/item/reagent_containers/pill/patch/silver_sulf = 1, /obj/item/reagent_containers/medspray/sterilizine = 1)
+ pixel_y = 28
},
/obj/effect/turf_decal/tile/blue{
dir = 1
@@ -38757,8 +38751,7 @@
/area/medical/medbay/central)
"bKw" = (
/obj/machinery/vending/wallmed{
- pixel_y = 28;
- products = list(/obj/item/reagent_containers/syringe = 3, /obj/item/reagent_containers/pill/patch/styptic = 1, /obj/item/reagent_containers/pill/patch/silver_sulf = 1, /obj/item/reagent_containers/medspray/sterilizine = 1)
+ pixel_y = 28
},
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 4
@@ -38828,10 +38821,6 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 1
},
-/obj/machinery/firealarm{
- dir = 8;
- pixel_x = -26
- },
/obj/effect/turf_decal/tile/blue{
dir = 1
},
@@ -39305,15 +39294,16 @@
/obj/item/clothing/gloves/color/latex,
/obj/item/clothing/mask/surgical,
/obj/item/clothing/suit/apron/surgical,
-/obj/machinery/light_switch{
- pixel_x = -22
- },
/obj/effect/turf_decal/tile/blue{
dir = 1
},
/obj/effect/turf_decal/tile/blue{
dir = 8
},
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -26
+ },
/turf/open/floor/plasteel/white,
/area/medical/surgery)
"bLN" = (
@@ -40977,7 +40967,7 @@
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/effect/turf_decal/tile/yellow{
@@ -41115,6 +41105,7 @@
/area/engine/atmos)
"bQa" = (
/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
+/obj/machinery/atmospherics/miner/n2o,
/turf/open/floor/engine/n2o,
/area/engine/atmos)
"bQb" = (
@@ -41200,7 +41191,6 @@
},
/obj/effect/turf_decal/stripes/line,
/obj/machinery/firealarm{
- dir = 1;
pixel_y = 29
},
/turf/open/floor/plasteel/dark,
@@ -41252,7 +41242,6 @@
},
/obj/item/stock_parts/cell/high/plus,
/obj/machinery/firealarm{
- dir = 1;
pixel_y = 29
},
/obj/effect/turf_decal/tile/green{
@@ -42523,6 +42512,7 @@
/area/engine/atmos)
"bSX" = (
/obj/machinery/portable_atmospherics/canister/toxins,
+/obj/machinery/atmospherics/miner/toxins,
/turf/open/floor/engine/plasma,
/area/engine/atmos)
"bSY" = (
@@ -42923,7 +42913,6 @@
dir = 4
},
/obj/machinery/firealarm{
- dir = 1;
pixel_y = 29
},
/obj/effect/turf_decal/tile/yellow{
@@ -44029,6 +44018,7 @@
/area/engine/atmos)
"bWf" = (
/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
+/obj/machinery/atmospherics/miner/carbon_dioxide,
/turf/open/floor/engine/co2,
/area/engine/atmos)
"bWg" = (
@@ -45325,7 +45315,6 @@
dir = 4
},
/obj/machinery/firealarm{
- dir = 1;
pixel_y = 29
},
/obj/effect/turf_decal/stripes/corner{
@@ -46143,6 +46132,7 @@
/area/engine/atmos)
"cbt" = (
/obj/machinery/portable_atmospherics/canister/nitrogen,
+/obj/machinery/atmospherics/miner/nitrogen,
/turf/open/floor/engine/n2,
/area/engine/atmos)
"cbu" = (
@@ -46150,6 +46140,7 @@
/area/engine/atmos)
"cbv" = (
/obj/machinery/portable_atmospherics/canister/oxygen,
+/obj/machinery/atmospherics/miner/oxygen,
/turf/open/floor/engine/o2,
/area/engine/atmos)
"cbw" = (
@@ -47520,7 +47511,7 @@
/area/engine/engineering)
"cgV" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/effect/turf_decal/stripes/line{
@@ -48339,7 +48330,7 @@
"ckD" = (
/obj/structure/chair/wood/normal,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -28
},
/turf/open/floor/plasteel/dark,
@@ -52165,7 +52156,6 @@
network = list("ss13","monastery")
},
/obj/machinery/firealarm{
- dir = 1;
pixel_y = 29
},
/turf/open/floor/plasteel/dark,
@@ -53839,7 +53829,7 @@
/area/maintenance/department/security/brig)
"ePS" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -28
},
/obj/machinery/light{
@@ -54224,7 +54214,7 @@
"fFv" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/turf/open/floor/plasteel/dark,
@@ -54362,7 +54352,7 @@
"gdL" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -28
},
/obj/effect/turf_decal/tile/purple{
@@ -55674,6 +55664,10 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/central)
+"jdA" = (
+/obj/machinery/smartfridge/organ/preloaded,
+/turf/closed/wall,
+/area/medical/surgery)
"jeq" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -56359,7 +56353,7 @@
dir = 8
},
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -27
},
/obj/effect/turf_decal/tile/green{
@@ -59446,7 +59440,6 @@
pixel_y = 6
},
/obj/machinery/firealarm{
- dir = 1;
pixel_y = 27
},
/turf/open/floor/plasteel/cafeteria,
@@ -59847,7 +59840,6 @@
dir = 4
},
/obj/machinery/firealarm{
- dir = 1;
pixel_y = 29
},
/obj/effect/turf_decal/tile/red{
@@ -60089,7 +60081,7 @@
},
/obj/item/hand_labeler,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 28
},
/obj/machinery/light{
@@ -61752,7 +61744,6 @@
dir = 4
},
/obj/machinery/firealarm{
- dir = 1;
pixel_y = 29
},
/obj/effect/turf_decal/tile/neutral{
@@ -92221,7 +92212,7 @@ bFU
bFU
bIn
bJt
-bFU
+jdA
bFU
bFU
bFU
diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm
index 80e80cd6a9..6a323ee86f 100644
--- a/_maps/map_files/generic/CentCom.dmm
+++ b/_maps/map_files/generic/CentCom.dmm
@@ -3398,7 +3398,7 @@
/area/centcom/supply)
"iS" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/effect/turf_decal/tile/brown{
@@ -3883,7 +3883,7 @@
/area/centcom/control)
"jV" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/effect/turf_decal/stripes/line{
@@ -4231,7 +4231,7 @@
icon_state = "plant-22"
},
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/effect/turf_decal/tile/neutral{
@@ -5775,7 +5775,7 @@
req_access_txt = "109"
},
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/effect/turf_decal/tile/neutral{
@@ -5799,7 +5799,7 @@
req_access_txt = "109"
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/effect/turf_decal/tile/neutral{
@@ -6866,7 +6866,7 @@
/area/centcom/ferry)
"pM" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/machinery/atmospherics/components/unary/vent_pump/on{
@@ -6893,7 +6893,7 @@
/obj/item/clothing/gloves/color/black,
/obj/item/clothing/glasses/eyepatch,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/turf/open/floor/plasteel/grimy,
@@ -9214,7 +9214,7 @@
pixel_y = -32
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/effect/turf_decal/tile/neutral{
@@ -11017,7 +11017,7 @@
dir = 8
},
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/effect/turf_decal/tile/blue{
@@ -12323,7 +12323,7 @@
/obj/item/book/manual/wiki/security_space_law,
/obj/item/taperecorder,
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/obj/effect/turf_decal/tile/neutral{
@@ -12390,7 +12390,7 @@
"CM" = (
/obj/structure/filingcabinet/medical,
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/effect/turf_decal/tile/neutral{
@@ -14511,7 +14511,7 @@
/area/tdome/tdomeobserve)
"Hq" = (
/obj/machinery/firealarm{
- dir = 4;
+ dir = 8;
pixel_x = 24
},
/turf/open/floor/plasteel/white,
@@ -14554,7 +14554,7 @@
/area/tdome/tdomeobserve)
"Hu" = (
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/effect/turf_decal/tile/bar,
@@ -15835,7 +15835,7 @@
icon_state = "plant-21"
},
/obj/machinery/firealarm{
- dir = 8;
+ dir = 4;
pixel_x = -24
},
/obj/effect/turf_decal/tile/neutral{
diff --git a/_maps/map_files/generic/City_of_Cogs.dmm b/_maps/map_files/generic/City_of_Cogs.dmm
index e1e7659ce3..1195ad62c5 100644
--- a/_maps/map_files/generic/City_of_Cogs.dmm
+++ b/_maps/map_files/generic/City_of_Cogs.dmm
@@ -379,15 +379,6 @@
/obj/item/camera,
/turf/open/indestructible/clock_spawn_room,
/area/reebe/city_of_cogs)
-"Nz" = (
-/obj/structure/table/bronze,
-/obj/item/implantcase,
-/obj/item/implantcase,
-/obj/item/implantcase,
-/obj/item/implanter,
-/obj/item/storage/backpack/duffelbag/sec/surgery,
-/turf/open/floor/clockwork/reebe,
-/area/reebe/city_of_cogs)
"NH" = (
/obj/structure/table/bronze,
/obj/item/taperecorder,
@@ -409,10 +400,6 @@
"WT" = (
/turf/closed/wall/clockwork,
/area/reebe)
-"Yy" = (
-/obj/structure/table/optable,
-/turf/open/floor/clockwork/reebe,
-/area/reebe/city_of_cogs)
(1,1,1) = {"
zb
@@ -33918,7 +33905,7 @@ ab
ai
bE
aj
-Yy
+aj
aj
aj
aA
@@ -34175,7 +34162,7 @@ ab
ah
al
aj
-Nz
+aj
aj
aC
ah
diff --git a/_maps/shuttles/emergency_raven.dmm b/_maps/shuttles/emergency_raven.dmm
index 2c04837c79..05446968e7 100644
--- a/_maps/shuttles/emergency_raven.dmm
+++ b/_maps/shuttles/emergency_raven.dmm
@@ -56,7 +56,7 @@
/turf/open/floor/plasteel/dark,
/area/shuttle/escape)
"ah" = (
-/obj/machinery/computer/shuttle,
+/obj/machinery/computer/emergency_shuttle,
/turf/open/floor/plasteel/dark,
/area/shuttle/escape)
"ai" = (
diff --git a/code/__DEFINES/admin.dm b/code/__DEFINES/admin.dm
index b875998f0a..bded562a3c 100644
--- a/code/__DEFINES/admin.dm
+++ b/code/__DEFINES/admin.dm
@@ -69,6 +69,7 @@
#define ADMIN_PUNISHMENT_BSA "Bluespace Artillery Device"
#define ADMIN_PUNISHMENT_FIREBALL "Fireball"
#define ADMIN_PUNISHMENT_ROD "Immovable Rod"
+#define ADMIN_PUNISHMENT_SUPPLYPOD_QUICK "Supply Pod (Quick)"
#define ADMIN_PUNISHMENT_SUPPLYPOD "Supply Pod"
#define ADMIN_PUNISHMENT_MAZING "Puzzle"
#define ADMIN_PUNISHMENT_PIE "Cream Pie"
diff --git a/code/__DEFINES/antagonists.dm b/code/__DEFINES/antagonists.dm
index b2f05fd5f8..cabcc0a17d 100644
--- a/code/__DEFINES/antagonists.dm
+++ b/code/__DEFINES/antagonists.dm
@@ -12,6 +12,7 @@
#define APPRENTICE_BLUESPACE "bluespace"
#define APPRENTICE_ROBELESS "robeless"
#define APPRENTICE_HEALING "healing"
+#define APPRENTICE_MARTIAL "martial"
//ERT Types
@@ -40,3 +41,19 @@
#define NOT_DOMINATING -1
#define MAX_LEADERS_GANG 4
#define INITIAL_DOM_ATTEMPTS 3
+
+//Bloodsucker defines
+// Bloodsucker related antag datums
+#define ANTAG_DATUM_BLOODSUCKER /datum/antagonist/bloodsucker
+#define ANTAG_DATUM_VASSAL /datum/antagonist/vassal
+//#define ANTAG_DATUM_HUNTER /datum/antagonist/vamphunter Disabled for now
+
+// BLOODSUCKER
+#define BLOODSUCKER_LEVEL_TO_EMBRACE 3
+#define BLOODSUCKER_FRENZY_TIME 25 // How long the vamp stays in frenzy.
+#define BLOODSUCKER_FRENZY_OUT_TIME 300 // How long the vamp goes back into frenzy.
+#define BLOODSUCKER_STARVE_VOLUME 5 // Amount of blood, below which a Vamp is at risk of frenzy.
+
+#define CAT_STRUCTURE "Structures"
+
+#define MARTIALART_HUNTER "hunter-fu"
diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm
index 41b5deb302..74a6796bd2 100644
--- a/code/__DEFINES/atmospherics.dm
+++ b/code/__DEFINES/atmospherics.dm
@@ -9,12 +9,13 @@
#define META_GAS_FUSION_POWER 7
//ATMOS
//stuff you should probably leave well alone!
-#define R_IDEAL_GAS_EQUATION 8.31 //kPa*L/(K*mol)
-#define ONE_ATMOSPHERE 101.325 //kPa
-#define TCMB 2.7 // -270.3degC
-#define TCRYO 225 // -48.15degC
-#define T0C 273.15 // 0degC
-#define T20C 293.15 // 20degC
+#define R_IDEAL_GAS_EQUATION 8.31446261815324 //kPa*L/(K*mol)
+#define ONE_ATMOSPHERE 101.325 //kPa
+#define TCMB 2.7 // -270.3degC
+#define TCRYO 225 // -48.15degC
+#define T0C 273.15 // 0degC
+#define T20C 293.15 // 20degC
+#define STEFANBOLTZMANN (5.670373*10e-8) // W/(m^2*K^4)
#define MOLES_CELLSTANDARD (ONE_ATMOSPHERE*CELL_VOLUME/(T20C*R_IDEAL_GAS_EQUATION)) //moles in a 2.5 m^3 cell at 101.325 Pa and 20 degC
#define M_CELL_WITH_RATIO (MOLES_CELLSTANDARD * 0.005) //compared against for superconductivity
@@ -149,9 +150,9 @@
//OPEN TURF ATMOS
#define OPENTURF_DEFAULT_ATMOS "o2=22;n2=82;TEMP=293.15" //the default air mix that open turfs spawn
-#define TCOMMS_ATMOS "n2=100;TEMP=80" //-193,15C telecommunications. also used for xenobiology slime killrooms
+#define TCOMMS_ATMOS "n2=100;TEMP=80" //-193,15°C telecommunications. also used for xenobiology slime killrooms
#define AIRLESS_ATMOS "TEMP=2.7" //space
-#define FROZEN_ATMOS "o2=22;n2=82;TEMP=180" //-93.15C snow and ice turfs
+#define FROZEN_ATMOS "o2=22;n2=82;TEMP=180" //-93.15°C snow and ice turfs
#define BURNMIX_ATMOS "o2=2500;plasma=5000;TEMP=370" //used in the holodeck burn test program
//ATMOSPHERICS DEPARTMENT GAS TANK TURFS
diff --git a/code/__DEFINES/atom_hud.dm b/code/__DEFINES/atom_hud.dm
index 0e4f0f3a6e..322a150617 100644
--- a/code/__DEFINES/atom_hud.dm
+++ b/code/__DEFINES/atom_hud.dm
@@ -58,6 +58,7 @@
#define ANTAG_HUD_SOULLESS 21
#define ANTAG_HUD_CLOCKWORK 22
#define ANTAG_HUD_BROTHER 23
+#define ANTAG_HUD_BLOODSUCKER 24
// Notification action types
#define NOTIFY_JUMP "jump"
diff --git a/code/__DEFINES/cargo.dm b/code/__DEFINES/cargo.dm
index 0d07ef353a..52a2d56697 100644
--- a/code/__DEFINES/cargo.dm
+++ b/code/__DEFINES/cargo.dm
@@ -11,6 +11,7 @@
#define STYLE_FRUIT 11
#define STYLE_INVISIBLE 12
#define STYLE_GONDOLA 13
+#define STYLE_SEETHROUGH 14
#define POD_ICON_STATE 1
#define POD_NAME 2
@@ -29,5 +30,6 @@
list("honkpod", "\improper HONK pod", "A brightly-colored supply pod. It likely originated from the Clown Federation."),\
list("fruitpod", "\improper Orange", "An angry orange."),\
list("", "\improper S.T.E.A.L.T.H. pod MKVII", "A supply pod that, under normal circumstances, is completely invisible to conventional methods of detection. How are you even seeing this?"),\
- list("gondolapod", "gondola", "The silent walker. This one seems to be part of a delivery agency.")\
+ list("gondolapod", "gondola", "The silent walker. This one seems to be part of a delivery agency."),\
+ list("", "", "")\
)
\ No newline at end of file
diff --git a/code/__DEFINES/citadel_defines.dm b/code/__DEFINES/citadel_defines.dm
index e3cafd4613..47b5c2f602 100644
--- a/code/__DEFINES/citadel_defines.dm
+++ b/code/__DEFINES/citadel_defines.dm
@@ -57,9 +57,9 @@
#define BALLS_SACK_SIZE_DEF 8
#define BALLS_SACK_SIZE_MAX 40
-#define CUM_RATE 0.035
+#define CUM_RATE 2 // holy shit what a really shitty define name - relates to units per arbitrary measure of time?
#define CUM_RATE_MULT 1
-#define CUM_EFFICIENCY 1//amount of nutrition required per life()
+#define CUM_EFFICIENCY 1 //amount of nutrition required per life()
#define EGG_GIRTH_MIN 1//inches
#define EGG_GIRTH_DEF 6
diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm
index 3664da4a5d..2d40d91023 100644
--- a/code/__DEFINES/combat.dm
+++ b/code/__DEFINES/combat.dm
@@ -98,6 +98,7 @@
//the define for visible message range in combat
#define COMBAT_MESSAGE_RANGE 3
+#define DEFAULT_MESSAGE_RANGE 7
//Shove knockdown lengths (deciseconds)
#define SHOVE_KNOCKDOWN_SOLID 30
diff --git a/code/__DEFINES/components.dm b/code/__DEFINES/components.dm
index b79f1c2e59..f95ff93ac3 100644
--- a/code/__DEFINES/components.dm
+++ b/code/__DEFINES/components.dm
@@ -5,6 +5,17 @@
#define COMPONENT_INCOMPATIBLE 1
#define COMPONENT_NOTRANSFER 2
+#define ELEMENT_INCOMPATIBLE 1 // Return value to cancel attaching
+
+// /datum/element flags
+/// Causes the detach proc to be called when the host object is being deleted
+#define ELEMENT_DETACH (1 << 0)
+/**
+ * Only elements created with the same arguments given after `id_arg_index` share an element instance
+ * The arguments are the same when the text and number values are the same and all other values have the same ref
+ */
+#define ELEMENT_BESPOKE (1 << 1)
+
// How multiple components of the exact same type are handled in the same datum
#define COMPONENT_DUPE_HIGHLANDER 0 //old component is deleted (default)
@@ -25,10 +36,12 @@
//////////////////////////////////////////////////////////////////
// /datum signals
-#define COMSIG_COMPONENT_ADDED "component_added" //when a component is added to a datum: (/datum/component)
-#define COMSIG_COMPONENT_REMOVING "component_removing" //before a component is removed from a datum because of RemoveComponent: (/datum/component)
+#define COMSIG_COMPONENT_ADDED "component_added" //sent to the new datum parent when a component is added to them: (/datum/component)
+#define COMSIG_COMPONENT_REMOVING "component_removing" //sent to the datum parent before a component is removed from them because of RemoveComponent: (/datum/component)
+#define COMSIG_COMPONENT_UNREGISTER_PARENT "component_unregister_parent" //sent to the component itself when unregistered from a parent
+#define COMSIG_COMPONENT_REGISTER_PARENT "component_register_parent" //sent to the component itself when registered to a parent
#define COMSIG_PARENT_PREQDELETED "parent_preqdeleted" //before a datum's Destroy() is called: (force), returning a nonzero value will cancel the qdel operation
-#define COMSIG_PARENT_QDELETED "parent_qdeleted" //after a datum's Destroy() is called: (force, qdel_hint), at this point none of the other components chose to interrupt qdel and Destroy has been called
+#define COMSIG_PARENT_QDELETING "parent_qdeleting" //just before a datum's Destroy() is called: (force), at this point none of the other components chose to interrupt qdel and Destroy will be called
// /atom signals
#define COMSIG_PARENT_ATTACKBY "atom_attackby" //from base of atom/attackby(): (/obj/item, /mob/living, params)
@@ -122,25 +135,29 @@
#define COMSIG_MOVABLE_POST_THROW "movable_post_throw" //from base of atom/movable/throw_at(): (datum/thrownthing, spin)
#define COMSIG_MOVABLE_Z_CHANGED "movable_ztransit" //from base of atom/movable/onTransitZ(): (old_z, new_z)
#define COMSIG_MOVABLE_SECLUDED_LOCATION "movable_secluded" //called when the movable is placed in an unaccessible area, used for stationloving: ()
-#define COMSIG_MOVABLE_HEAR "movable_hear" //from base of atom/movable/Hear(): (message, atom/movable/speaker, message_language, raw_message, radio_freq, list/spans, message_mode)
+#define COMSIG_MOVABLE_HEAR "movable_hear" //from base of atom/movable/Hear(): (message, atom/movable/speaker, message_language, raw_message, radio_freq, list/spans, message_mode, atom/movable/source)
#define HEARING_MESSAGE 1
#define HEARING_SPEAKER 2
// #define HEARING_LANGUAGE 3
#define HEARING_RAW_MESSAGE 4
/* #define HEARING_RADIO_FREQ 5
#define HEARING_SPANS 6
- #define HEARING_MESSAGE_MODE 7 */
+ #define HEARING_MESSAGE_MODE 7
+ #define HEARING_SOURCE 8*/
#define COMSIG_MOVABLE_DISPOSING "movable_disposing" //called when the movable is added to a disposal holder object for disposal movement: (obj/structure/disposalholder/holder, obj/machinery/disposal/source)
#define COMSIG_MOVABLE_TELEPORTED "movable_teleported" //from base of do_teleport(): (channel, turf/origin, turf/destination)
// /mind signals
-#define COMSIG_MIND_TRANSFER "mind_transfer" //from base of mind/transfer_to(): (new_character, old_character)
+#define COMSIG_PRE_MIND_TRANSFER "pre_mind_transfer" //from base of mind/transfer_to() before it's done: (new_character, old_character)
+ #define COMPONENT_STOP_MIND_TRANSFER 1 //stops the mind transfer from happening.
+#define COMSIG_MIND_TRANSFER "mind_transfer" //from base of mind/transfer_to() when it's done: (new_character, old_character)
// /mob signals
#define COMSIG_MOB_EXAMINATE "mob_examinate" //from base of /mob/verb/examinate(): (atom/A)
#define COMPONENT_ALLOW_EXAMINE 1
#define COMSIG_MOB_DEATH "mob_death" //from base of mob/death(): (gibbed)
-#define COMSIG_MOB_GHOSTIZE "mob_ghostize" //from base of mob/Ghostize(): (can_reenter_corpse)
+ #define COMPONENT_BLOCK_DEATH_BROADCAST 1 //stops the death from being broadcasted in deadchat.
+#define COMSIG_MOB_GHOSTIZE "mob_ghostize" //from base of mob/Ghostize(): (can_reenter_corpse, special, penalize)
#define COMPONENT_BLOCK_GHOSTING 1
#define COMSIG_MOB_ALLOWED "mob_allowed" //from base of obj/allowed(mob/M): (/obj) returns bool, if TRUE the mob has id access to the obj
#define COMSIG_MOB_RECEIVE_MAGIC "mob_receive_magic" //from base of mob/anti_magic_check(): (mob/user, magic, holy, tinfoil, chargecost, self, protection_sources)
@@ -148,10 +165,13 @@
#define COMSIG_MOB_HUD_CREATED "mob_hud_created" //from base of mob/create_mob_hud(): ()
#define COMSIG_MOB_ATTACK_HAND "mob_attack_hand" //from base of
#define COMSIG_MOB_ITEM_ATTACK "mob_item_attack" //from base of /obj/item/attack(): (mob/M, mob/user)
+ #define COMPONENT_ITEM_NO_ATTACK 1
#define COMSIG_MOB_ITEM_AFTERATTACK "mob_item_afterattack" //from base of obj/item/afterattack(): (atom/target, mob/user, proximity_flag, click_parameters)
#define COMSIG_MOB_ATTACK_RANGED "mob_attack_ranged" //from base of mob/RangedAttack(): (atom/A, params)
#define COMSIG_MOB_THROW "mob_throw" //from base of /mob/throw_item(): (atom/target)
-#define COMSIG_MOB_KEY_CHANGE "mob_key_change" //from base of /mob/transfer_ckey()
+#define COMSIG_MOB_KEY_CHANGE "mob_key_change" //from base of /mob/transfer_ckey(): (new_character, old_character)
+#define COMSIG_MOB_PRE_PLAYER_CHANGE "mob_pre_player_change" //sent to the target mob from base of /mob/transfer_ckey() and /mind/transfer_to(): (our_character, their_character)
+// #define COMPONENT_STOP_MIND_TRANSFER 1
#define COMSIG_MOB_UPDATE_SIGHT "mob_update_sight" //from base of /mob/update_sight(): ()
#define COMSIG_MOB_SAY "mob_say" // from /mob/living/say(): (proc args list)
#define COMPONENT_UPPERCASE_SPEECH 1
@@ -313,3 +333,11 @@
//Ouch my toes!
#define CALTROP_BYPASS_SHOES 1
#define CALTROP_IGNORE_WALKERS 2
+
+//Xenobio hotkeys
+#define COMSIG_XENO_SLIME_CLICK_CTRL "xeno_slime_click_ctrl" //from slime CtrlClickOn(): (/mob)
+#define COMSIG_XENO_SLIME_CLICK_ALT "xeno_slime_click_alt" //from slime AltClickOn(): (/mob)
+#define COMSIG_XENO_SLIME_CLICK_SHIFT "xeno_slime_click_shift" //from slime ShiftClickOn(): (/mob)
+#define COMSIG_XENO_TURF_CLICK_SHIFT "xeno_turf_click_shift" //from turf ShiftClickOn(): (/mob)
+#define COMSIG_XENO_TURF_CLICK_CTRL "xeno_turf_click_alt" //from turf AltClickOn(): (/mob)
+#define COMSIG_XENO_MONKEY_CLICK_CTRL "xeno_monkey_click_ctrl" //from monkey CtrlClickOn(): (/mob)
diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm
index 9e8a4f71c2..55962bf78c 100644
--- a/code/__DEFINES/flags.dm
+++ b/code/__DEFINES/flags.dm
@@ -32,6 +32,7 @@ GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 204
#define TESLA_IGNORE_1 (1<<13) // TESLA_IGNORE grants immunity from being targeted by tesla-style electricity
#define INITIALIZED_1 (1<<14) //Whether /atom/Initialize() has already run for the object
#define ADMIN_SPAWNED_1 (1<<15) //was this spawned by an admin? used for stat tracking stuff.
+#define PREVENT_CONTENTS_EXPLOSION_1 (1<<16) /// should not get harmed if this gets caught by an explosion?
//turf-only flags
#define NOJAUNT_1 (1<<0)
diff --git a/code/__DEFINES/food.dm b/code/__DEFINES/food.dm
index 15c7af5749..72e6a12f84 100644
--- a/code/__DEFINES/food.dm
+++ b/code/__DEFINES/food.dm
@@ -11,6 +11,7 @@
#define GROSS (1<<10)
#define TOXIC (1<<11)
#define PINEAPPLE (1<<12)
+#define BREAKFAST (1<<13)
#define DRINK_NICE 1
#define DRINK_GOOD 2
diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm
index 6f433374e7..09ef814f68 100644
--- a/code/__DEFINES/is_helpers.dm
+++ b/code/__DEFINES/is_helpers.dm
@@ -118,6 +118,8 @@ GLOBAL_LIST_INIT(turfs_without_ground, typecacheof(list(
#define ismouse(A) (istype(A, /mob/living/simple_animal/mouse))
+#define iscow(A) (istype(A, /mob/living/simple_animal/cow))
+
#define isslime(A) (istype(A, /mob/living/simple_animal/slime))
#define isdrone(A) (istype(A, /mob/living/simple_animal/drone))
diff --git a/code/__DEFINES/lighting.dm b/code/__DEFINES/lighting.dm
index 13dccc74fe..89c702e605 100644
--- a/code/__DEFINES/lighting.dm
+++ b/code/__DEFINES/lighting.dm
@@ -59,11 +59,13 @@
#define LIGHT_RANGE_FIRE 3 //How many tiles standard fires glow.
#define LIGHTING_PLANE_ALPHA_VISIBLE 255
-#define LIGHTING_PLANE_ALPHA_NV_TRAIT 250
+#define LIGHTING_PLANE_ALPHA_NV_TRAIT 223
#define LIGHTING_PLANE_ALPHA_MOSTLY_VISIBLE 192
#define LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE 128 //For lighting alpha, small amounts lead to big changes. even at 128 its hard to figure out what is dark and what is light, at 64 you almost can't even tell.
#define LIGHTING_PLANE_ALPHA_INVISIBLE 0
+#define NIGHT_VISION_DARKSIGHT_RANGE 3
+
//lighting area defines
#define DYNAMIC_LIGHTING_DISABLED 0 //dynamic lighting disabled (area stays at full brightness)
#define DYNAMIC_LIGHTING_ENABLED 1 //dynamic lighting enabled
@@ -80,4 +82,4 @@
#define FLASH_LIGHT_DURATION 2
#define FLASH_LIGHT_POWER 3
-#define FLASH_LIGHT_RANGE 3.8
\ No newline at end of file
+#define FLASH_LIGHT_RANGE 3.8
diff --git a/code/__DEFINES/movespeed_modification.dm b/code/__DEFINES/movespeed_modification.dm
index 50e1a10fa1..1883df6e8e 100644
--- a/code/__DEFINES/movespeed_modification.dm
+++ b/code/__DEFINES/movespeed_modification.dm
@@ -57,6 +57,7 @@
#define MOVESPEED_ID_PRONE_DRAGGING "PRONE_DRAG"
#define MOVESPEED_ID_HUMAN_CARRYING "HUMAN_CARRY"
+#define MOVESPEED_ID_SHRINK_RAY "SHRUNKEN_SPEED_MODIFIER"
#define MOVESPEED_ID_TASED_STATUS "TASED"
diff --git a/code/__DEFINES/obj_flags.dm b/code/__DEFINES/obj_flags.dm
index d3e724aefb..94c2c372f0 100644
--- a/code/__DEFINES/obj_flags.dm
+++ b/code/__DEFINES/obj_flags.dm
@@ -25,23 +25,22 @@
#define NO_MAT_REDEMPTION (1<<5) //Stops you from putting things like an RCD or other items into an ORM or protolathe for materials.
#define DROPDEL (1<<6) //When dropped, it calls qdel on itself
#define NOBLUDGEON (1<<7) //when an item has this it produces no "X has been hit by Y with Z" message in the default attackby()
-#define ABSTRACT (1<<8) //for all things that are technically items but used for various different stuff
+#define ABSTRACT (1<<8) //for all things that are technically items but used for various different stuff
#define IMMUTABLE_SLOW (1<<9) //When players should not be able to change the slowdown of the item (Speed potions, ect)
#define SURGICAL_TOOL (1<<10) //Tool commonly used for surgery: won't attack targets in an active surgical operation on help intent (in case of mistakes)
-#define NO_UNIFORM_REQUIRED (1<<11) //Can be worn on certain slots (currently belt and id) that would otherwise require an uniform.
+#define NO_UNIFORM_REQUIRED (1<<11) //Can be worn on certain slots (currently belt and id) that would otherwise require an uniform.
// Flags for the clothing_flags var on /obj/item/clothing
#define LAVAPROTECT (1<<0)
#define STOPSPRESSUREDAMAGE (1<<1) //SUIT and HEAD items which stop pressure damage. To stop you taking all pressure damage you must have both a suit and head item with this flag.
#define BLOCK_GAS_SMOKE_EFFECT (1<<2) //blocks the effect that chemical clouds would have on a mob --glasses, mask and helmets ONLY!
-#define ALLOWINTERNALS (1<<3) //mask allows internals
+#define ALLOWINTERNALS (1<<3) //mask allows internals
#define NOSLIP (1<<4) //prevents from slipping on wet floors, in space etc
#define THICKMATERIAL (1<<5) //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.
#define VOICEBOX_TOGGLABLE (1<<6) //The voicebox in this clothing can be toggled.
#define VOICEBOX_DISABLED (1<<7) //The voicebox is currently turned off.
-#define SNUG_FIT (1<<8) //Prevents knock-off from things like hat-throwing.
-#define ANTI_TINFOIL_MANEUVER (1<<9) //Hats with negative effects when worn (i.e the tinfoil hat).
+#define IGNORE_HAT_TOSS (1<<8) //Hats with negative effects when worn (i.e the tinfoil hat).
// Flags for the organ_flags var on /obj/item/organ
@@ -50,4 +49,4 @@
#define ORGAN_FAILING (1<<2) //Failing organs perform damaging effects until replaced or fixed
#define ORGAN_EXTERNAL (1<<3) //Was this organ implanted/inserted/etc, if true will not be removed during species change.
#define ORGAN_VITAL (1<<4) //Currently only the brain
-#define ORGAN_NO_SPOIL (1<<5) //Do not spoil under any circumstances
\ No newline at end of file
+#define ORGAN_NO_SPOIL (1<<5) //Do not spoil under any circumstances
diff --git a/code/__DEFINES/role_preferences.dm b/code/__DEFINES/role_preferences.dm
index b316c003a9..d5e3f828b8 100644
--- a/code/__DEFINES/role_preferences.dm
+++ b/code/__DEFINES/role_preferences.dm
@@ -35,6 +35,8 @@
#define ROLE_LAVALAND "lavaland"
#define ROLE_INTERNAL_AFFAIRS "internal affairs agent"
#define ROLE_GANG "gangster"
+#define ROLE_BLOODSUCKER "bloodsucker"
+//#define ROLE_MONSTERHUNTER "monster hunter" Disabled for now
//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
@@ -60,7 +62,9 @@ GLOBAL_LIST_INIT(special_roles, list(
ROLE_OVERTHROW = /datum/game_mode/overthrow,
ROLE_INTERNAL_AFFAIRS = /datum/game_mode/traitor/internal_affairs,
ROLE_SENTIENCE,
- ROLE_GANG = /datum/game_mode/gang
+ ROLE_GANG = /datum/game_mode/gang,
+ ROLE_BLOODSUCKER = /datum/game_mode/bloodsucker
+ //ROLE_MONSTERHUNTER Disabled for now
))
//Job defines for what happens when you fail to qualify for any job during job selection
diff --git a/code/__DEFINES/say.dm b/code/__DEFINES/say.dm
index af06a5a2d0..beeee22df9 100644
--- a/code/__DEFINES/say.dm
+++ b/code/__DEFINES/say.dm
@@ -75,8 +75,16 @@
#define LINGHIVE_LING 2
#define LINGHIVE_LINK 3
+//whether the emote is visible or audible.
+#define EMOTE_VISIBLE 1
+#define EMOTE_AUDIBLE 2
+
//Don't set this very much higher then 1024 unless you like inviting people in to dos your server with message spam
#define MAX_MESSAGE_LEN 2048 //Citadel edit: What's the WORST that could happen?
#define MAX_NAME_LEN 42
#define MAX_BROADCAST_LEN 512
#define MAX_CHARTER_LEN 80
+
+// Audio/Visual Flags. Used to determine what sense are required to notice a message.
+#define MSG_VISUAL (1<<0)
+#define MSG_AUDIBLE (1<<1)
\ No newline at end of file
diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm
index 0f1a36d663..6d52f4640c 100644
--- a/code/__DEFINES/status_effects.dm
+++ b/code/__DEFINES/status_effects.dm
@@ -46,7 +46,7 @@
#define STATUS_EFFECT_SLEEPING /datum/status_effect/incapacitating/sleeping //the affected is asleep
-#define STATUS_EFFECT_TASED /datum/status_effect/electrode //the affected has been tased, preventing fine muscle control
+#define STATUS_EFFECT_TASED /datum/status_effect/no_combat_mode/electrode/ //the affected has been tased, preventing fine muscle control
#define STATUS_EFFECT_PACIFY /datum/status_effect/pacify //the affected is pacified, preventing direct hostile actions
@@ -58,6 +58,8 @@
#define MAX_MANIA_SEVERITY 100 //how high the mania severity can go
#define MANIA_DAMAGE_TO_CONVERT 90 //how much damage is required before it'll convert affected targets
+#define STATUS_EFFECT_CHOKINGSTRAND /datum/status_effect/strandling //Choking Strand
+
#define STATUS_EFFECT_HISWRATH /datum/status_effect/his_wrath //His Wrath.
#define STATUS_EFFECT_SUMMONEDGHOST /datum/status_effect/cultghost //is a cult ghost and can't use manifest runes
@@ -66,6 +68,8 @@
#define STATUS_EFFECT_SAWBLEED /datum/status_effect/saw_bleed //if the bleed builds up enough, takes a ton of damage
+#define STATUS_EFFECT_NECKSLICE /datum/status_effect/neck_slice //Creates the flavor messages for the neck-slice
+
#define STATUS_EFFECT_NECROPOLIS_CURSE /datum/status_effect/necropolis_curse
#define CURSE_BLINDING 1 //makes the edges of the target's screen obscured
#define CURSE_SPAWNING 2 //spawns creatures that attack the target only
@@ -81,6 +85,9 @@
#define STATUS_EFFECT_BREASTS_ENLARGEMENT /datum/status_effect/chem/breast_enlarger //Applied slowdown due to the ominous bulk.
#define STATUS_EFFECT_PENIS_ENLARGEMENT /datum/status_effect/chem/penis_enlarger //More applied slowdown, just like the above.
+
+#define STATUS_EFFECT_NO_COMBAT_MODE /datum/status_effect/no_combat_mode //Wont allow combat mode and will disable it
+#define STATUS_EFFECT_MESMERIZE /datum/status_effect/no_combat_mode/mesmerize //Just reskinned no_combat_mode
/////////////
// NEUTRAL //
/////////////
diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm
index 60212385f8..428d569531 100644
--- a/code/__DEFINES/traits.dm
+++ b/code/__DEFINES/traits.dm
@@ -66,6 +66,7 @@
#define TRAIT_HUSK "husk"
#define TRAIT_NOCLONE "noclone"
#define TRAIT_CLUMSY "clumsy"
+#define TRAIT_CHUNKYFINGERS "chunkyfingers" //means that you can't use weapons with normal trigger guards.
#define TRAIT_DUMB "dumb"
#define TRAIT_MONKEYLIKE "monkeylike" //sets IsAdvancedToolUser to FALSE
#define TRAIT_PACIFISM "pacifism"
@@ -117,15 +118,23 @@
#define TRAIT_PARALYSIS_R_ARM "para-r-arm"
#define TRAIT_PARALYSIS_L_LEG "para-l-leg"
#define TRAIT_PARALYSIS_R_LEG "para-r-leg"
+#define TRAIT_DISK_VERIFIER "disk-verifier"
#define TRAIT_UNINTELLIGIBLE_SPEECH "unintelligible-speech"
#define TRAIT_SOOTHED_THROAT "soothed-throat"
#define TRAIT_LAW_ENFORCEMENT_METABOLISM "law-enforcement-metabolism"
-#define TRAIT_STRONG_GRABBER "strong_grabber"
-#define TRAIT_CALCIUM_HEALER "calcium_healer"
+#define TRAIT_STRONG_GRABBER "strong_grabber"
+#define TRAIT_CALCIUM_HEALER "calcium_healer"
+#define TRAIT_MAGIC_CHOKE "magic_choke"
#define TRAIT_CAPTAIN_METABOLISM "captain-metabolism"
#define TRAIT_ABDUCTOR_TRAINING "abductor-training"
#define TRAIT_ABDUCTOR_SCIENTIST_TRAINING "abductor-scientist-training"
#define TRAIT_SURGEON "surgeon"
+#define TRAIT_COLDBLOODED "coldblooded" // Your body is literal room temperature. Does not make you immune to the temp.
+#define TRAIT_NONATURALHEAL "nonaturalheal" // Only Admins can heal you. NOTHING else does it unless it's given the god tag.
+#define TRAIT_NORUNNING "norunning" // You walk!
+#define TRAIT_NOMARROW "nomarrow" // You don't make blood, with chemicals or nanites.
+#define TRAIT_NOPULSE "nopulse" // Your heart doesn't beat.
+
//non-mob traits
#define TRAIT_PARALYSIS "paralysis" //Used for limb-based paralysis, where replacing the limb will fix it
@@ -162,6 +171,7 @@
#define TRAIT_FRIENDLY "friendly"
#define TRAIT_ASSBLASTUSA "assblastusa"
#define TRAIT_CULT_EYES "cult_eyes"
+#define TRAIT_FREESPRINT "free_sprinting"
// common trait sources
@@ -215,5 +225,8 @@
#define LOCKED_HELMET_TRAIT "locked-helmet"
#define NINJA_SUIT_TRAIT "ninja-suit"
#define ANTI_DROP_IMPLANT_TRAIT "anti-drop-implant"
+#define SLEEPING_CARP_TRAIT "sleeping_carp"
#define ABDUCTOR_ANTAGONIST "abductor-antagonist"
-#define MADE_UNCLONEABLE "made-uncloneable"
\ No newline at end of file
+#define MADE_UNCLONEABLE "made-uncloneable"
+#define NUKEOP_TRAIT "nuke-op"
+#define DEATHSQUAD_TRAIT "deathsquad"
diff --git a/code/__HELPERS/cmp.dm b/code/__HELPERS/cmp.dm
index c0501b4e41..4a86f57fcd 100644
--- a/code/__HELPERS/cmp.dm
+++ b/code/__HELPERS/cmp.dm
@@ -23,6 +23,9 @@ GLOBAL_VAR_INIT(cmp_field, "name")
/proc/cmp_records_dsc(datum/data/record/a, datum/data/record/b)
return sorttext(a.fields[GLOB.cmp_field], b.fields[GLOB.cmp_field])
+/proc/cmp_filter_data_priority(list/A, list/B)
+ return A["priority"] - B["priority"]
+
/proc/cmp_ckey_asc(client/a, client/b)
return sorttext(b.ckey, a.ckey)
@@ -85,8 +88,29 @@ GLOBAL_VAR_INIT(cmp_field, "name")
/proc/cmp_job_display_asc(datum/job/A, datum/job/B)
return A.display_order - B.display_order
+/proc/cmp_uplink_items_dsc(datum/uplink_item/A, datum/uplink_item/B)
+ return sorttext(initial(B.name), initial(A.name))
+
/proc/cmp_numbered_displays_name_asc(datum/numbered_display/A, datum/numbered_display/B)
return sorttext(A.sample_object.name, B.sample_object.name)
/proc/cmp_numbered_displays_name_dsc(datum/numbered_display/A, datum/numbered_display/B)
- return sorttext(B.sample_object.name, A.sample_object.name)
\ No newline at end of file
+ return sorttext(B.sample_object.name, A.sample_object.name)
+
+/proc/cmp_quirk_asc(datum/quirk/A, datum/quirk/B)
+ var/a_sign = num2sign(initial(A.value) * -1)
+ var/b_sign = num2sign(initial(B.value) * -1)
+
+ // Neutral traits go last.
+ if(a_sign == 0)
+ a_sign = 2
+ if(b_sign == 0)
+ b_sign = 2
+
+ var/a_name = initial(A.name)
+ var/b_name = initial(B.name)
+
+ if(a_sign != b_sign)
+ return a_sign - b_sign
+ else
+ return sorttext(b_name, a_name)
\ No newline at end of file
diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm
index 7852251230..a7bf5da17f 100644
--- a/code/__HELPERS/global_lists.dm
+++ b/code/__HELPERS/global_lists.dm
@@ -97,6 +97,16 @@
var/datum/emote/E = new path()
E.emote_list[E.key] = E
+ //Uplink Items
+ for(var/path in subtypesof(/datum/uplink_item))
+ var/datum/uplink_item/I = path
+ if(!initial(I.item)) //We add categories to a separate list.
+ GLOB.uplink_categories |= initial(I.category)
+ continue
+ GLOB.uplink_items += path
+ //(sub)typesof entries are listed by the order they are loaded in the code, so we'll have to rearrange them here.
+ GLOB.uplink_items = sortList(GLOB.uplink_items, /proc/cmp_uplink_items_dsc)
+
init_subtypes(/datum/crafting_recipe, GLOB.crafting_recipes)
//creates every subtype of prototype (excluding prototype) and adds it to list L.
diff --git a/code/__HELPERS/roundend.dm b/code/__HELPERS/roundend.dm
index 2c92816264..27f1a81fef 100644
--- a/code/__HELPERS/roundend.dm
+++ b/code/__HELPERS/roundend.dm
@@ -313,14 +313,15 @@
parts += "[FOURSPACES]Threat level: [mode.threat_level]"
parts += "[FOURSPACES]Threat left: [mode.threat]"
parts += "[FOURSPACES]Executed rules:"
+ for(var/datum/dynamic_ruleset/rule in mode.executed_rules)
+ parts += "[FOURSPACES][FOURSPACES][rule.ruletype] - [rule.name]: -[rule.cost + rule.scaled_times * rule.scaling_cost] threat"
+ parts += "[FOURSPACES]Other threat changes:"
for(var/str in mode.threat_log)
parts += "[FOURSPACES][FOURSPACES][str]"
for(var/entry in mode.threat_tallies)
parts += "[FOURSPACES][FOURSPACES][entry] added [mode.threat_tallies[entry]]"
- /*
- for(var/datum/dynamic_ruleset/rule in mode.executed_rules)
- parts += "[FOURSPACES][FOURSPACES][rule.ruletype] - [rule.name]: -[rule.cost + rule.scaled_times * rule.scaling_cost] threat"
- */
+ SSblackbox.record_feedback("tally","dynamic_threat",mode.threat_level,"Final threat level")
+ SSblackbox.record_feedback("tally","dynamic_threat",mode.threat,"Threat left")
return parts.Join("
")
/client/proc/roundend_report_file()
diff --git a/code/__HELPERS/sorts/__main.dm b/code/__HELPERS/sorts/__main.dm
index 768622818f..493f7b2096 100644
--- a/code/__HELPERS/sorts/__main.dm
+++ b/code/__HELPERS/sorts/__main.dm
@@ -31,58 +31,58 @@ GLOBAL_DATUM_INIT(sortInstance, /datum/sortInstance, new())
var/list/runLens = list()
- proc/timSort(start, end)
- runBases.Cut()
- runLens.Cut()
+/datum/sortInstance/proc/timSort(start, end)
+ runBases.Cut()
+ runLens.Cut()
- var/remaining = end - start
+ var/remaining = end - start
- //If array is small, do a 'mini-TimSort' with no merges
- if(remaining < MIN_MERGE)
- var/initRunLen = countRunAndMakeAscending(start, end)
- binarySort(start, end, start+initRunLen)
- return
+ //If array is small, do a 'mini-TimSort' with no merges
+ if(remaining < MIN_MERGE)
+ var/initRunLen = countRunAndMakeAscending(start, end)
+ binarySort(start, end, start+initRunLen)
+ return
- //March over the array finding natural runs
- //Extend any short natural runs to runs of length minRun
- var/minRun = minRunLength(remaining)
+ //March over the array finding natural runs
+ //Extend any short natural runs to runs of length minRun
+ var/minRun = minRunLength(remaining)
- do
- //identify next run
- var/runLen = countRunAndMakeAscending(start, end)
+ do
+ //identify next run
+ var/runLen = countRunAndMakeAscending(start, end)
- //if run is short, extend to min(minRun, remaining)
- if(runLen < minRun)
- var/force = (remaining <= minRun) ? remaining : minRun
+ //if run is short, extend to min(minRun, remaining)
+ if(runLen < minRun)
+ var/force = (remaining <= minRun) ? remaining : minRun
- binarySort(start, start+force, start+runLen)
- runLen = force
+ binarySort(start, start+force, start+runLen)
+ runLen = force
- //add data about run to queue
- runBases.Add(start)
- runLens.Add(runLen)
+ //add data about run to queue
+ runBases.Add(start)
+ runLens.Add(runLen)
- //maybe merge
- mergeCollapse()
+ //maybe merge
+ mergeCollapse()
- //Advance to find next run
- start += runLen
- remaining -= runLen
+ //Advance to find next run
+ start += runLen
+ remaining -= runLen
- while(remaining > 0)
+ while(remaining > 0)
- //Merge all remaining runs to complete sort
- //ASSERT(start == end)
- mergeForceCollapse();
- //ASSERT(runBases.len == 1)
+ //Merge all remaining runs to complete sort
+ //ASSERT(start == end)
+ mergeForceCollapse();
+ //ASSERT(runBases.len == 1)
- //reset minGallop, for successive calls
- minGallop = MIN_GALLOP
+ //reset minGallop, for successive calls
+ minGallop = MIN_GALLOP
- return L
+ return L
- /*
+/*
Sorts the specified portion of the specified array using a binary
insertion sort. This is the best method for sorting small numbers
of elements. It requires O(n log n) compares, but O(n^2) data
@@ -95,33 +95,33 @@ GLOBAL_DATUM_INIT(sortInstance, /datum/sortInstance, new())
lo the index of the first element in the range to be sorted
hi the index after the last element in the range to be sorted
start the index of the first element in the range that is not already known to be sorted
- */
- proc/binarySort(lo, hi, start)
- //ASSERT(lo <= start && start <= hi)
- if(start <= lo)
- start = lo + 1
+*/
+/datum/sortInstance/proc/binarySort(lo, hi, start)
+ //ASSERT(lo <= start && start <= hi)
+ if(start <= lo)
+ start = lo + 1
- for(,start < hi, ++start)
- var/pivot = fetchElement(L,start)
+ for(,start < hi, ++start)
+ var/pivot = fetchElement(L,start)
- //set left and right to the index where pivot belongs
- var/left = lo
- var/right = start
- //ASSERT(left <= right)
+ //set left and right to the index where pivot belongs
+ var/left = lo
+ var/right = start
+ //ASSERT(left <= right)
- //[lo, left) elements <= pivot < [right, start) elements
- //in other words, find where the pivot element should go using bisection search
- while(left < right)
- var/mid = (left + right) >> 1 //round((left+right)/2)
- if(call(cmp)(fetchElement(L,mid), pivot) > 0)
- right = mid
- else
- left = mid+1
+ //[lo, left) elements <= pivot < [right, start) elements
+ //in other words, find where the pivot element should go using bisection search
+ while(left < right)
+ var/mid = (left + right) >> 1 //round((left+right)/2)
+ if(call(cmp)(fetchElement(L,mid), pivot) > 0)
+ right = mid
+ else
+ left = mid+1
- //ASSERT(left == right)
- moveElement(L, start, left) //move pivot element to correct location in the sorted range
+ //ASSERT(left == right)
+ moveElement(L, start, left) //move pivot element to correct location in the sorted range
- /*
+/*
Returns the length of the run beginning at the specified position and reverses the run if it is back-to-front
A run is the longest ascending sequence with:
@@ -132,514 +132,514 @@ GLOBAL_DATUM_INIT(sortInstance, /datum/sortInstance, new())
For its intended use in a stable mergesort, the strictness of the
definition of "descending" is needed so that the call can safely
reverse a descending sequence without violating stability.
- */
- proc/countRunAndMakeAscending(lo, hi)
- //ASSERT(lo < hi)
+*/
+/datum/sortInstance/proc/countRunAndMakeAscending(lo, hi)
+ //ASSERT(lo < hi)
- var/runHi = lo + 1
- if(runHi >= hi)
- return 1
+ var/runHi = lo + 1
+ if(runHi >= hi)
+ return 1
- var/last = fetchElement(L,lo)
- var/current = fetchElement(L,runHi++)
+ var/last = fetchElement(L,lo)
+ var/current = fetchElement(L,runHi++)
- if(call(cmp)(current, last) < 0)
- while(runHi < hi)
- last = current
- current = fetchElement(L,runHi)
- if(call(cmp)(current, last) >= 0)
- break
- ++runHi
- reverseRange(L, lo, runHi)
- else
- while(runHi < hi)
- last = current
- current = fetchElement(L,runHi)
- if(call(cmp)(current, last) < 0)
- break
- ++runHi
+ if(call(cmp)(current, last) < 0)
+ while(runHi < hi)
+ last = current
+ current = fetchElement(L,runHi)
+ if(call(cmp)(current, last) >= 0)
+ break
+ ++runHi
+ reverseRange(L, lo, runHi)
+ else
+ while(runHi < hi)
+ last = current
+ current = fetchElement(L,runHi)
+ if(call(cmp)(current, last) < 0)
+ break
+ ++runHi
- return runHi - lo
+ return runHi - lo
- //Returns the minimum acceptable run length for an array of the specified length.
- //Natural runs shorter than this will be extended with binarySort
- proc/minRunLength(n)
- //ASSERT(n >= 0)
- var/r = 0 //becomes 1 if any bits are shifted off
- while(n >= MIN_MERGE)
- r |= (n & 1)
- n >>= 1
- return n + r
+//Returns the minimum acceptable run length for an array of the specified length.
+//Natural runs shorter than this will be extended with binarySort
+/datum/sortInstance/proc/minRunLength(n)
+ //ASSERT(n >= 0)
+ var/r = 0 //becomes 1 if any bits are shifted off
+ while(n >= MIN_MERGE)
+ r |= (n & 1)
+ n >>= 1
+ return n + r
- //Examines the stack of runs waiting to be merged and merges adjacent runs until the stack invariants are reestablished:
- // runLen[i-3] > runLen[i-2] + runLen[i-1]
- // runLen[i-2] > runLen[i-1]
- //This method is called each time a new run is pushed onto the stack.
- //So the invariants are guaranteed to hold for i= 2)
- var/n = runBases.len - 1
- if(n > 1 && runLens[n-1] <= runLens[n] + runLens[n+1])
- if(runLens[n-1] < runLens[n+1])
- --n
- mergeAt(n)
- else if(runLens[n] <= runLens[n+1])
- mergeAt(n)
- else
- break //Invariant is established
-
-
- //Merges all runs on the stack until only one remains.
- //Called only once, to finalise the sort
- proc/mergeForceCollapse()
- while(runBases.len >= 2)
- var/n = runBases.len - 1
- if(n > 1 && runLens[n-1] < runLens[n+1])
+//Examines the stack of runs waiting to be merged and merges adjacent runs until the stack invariants are reestablished:
+// runLen[i-3] > runLen[i-2] + runLen[i-1]
+// runLen[i-2] > runLen[i-1]
+//This method is called each time a new run is pushed onto the stack.
+//So the invariants are guaranteed to hold for i= 2)
+ var/n = runBases.len - 1
+ if(n > 1 && runLens[n-1] <= runLens[n] + runLens[n+1])
+ if(runLens[n-1] < runLens[n+1])
--n
mergeAt(n)
-
-
- //Merges the two consecutive runs at stack indices i and i+1
- //Run i must be the penultimate or antepenultimate run on the stack
- //In other words, i must be equal to stackSize-2 or stackSize-3
- proc/mergeAt(i)
- //ASSERT(runBases.len >= 2)
- //ASSERT(i >= 1)
- //ASSERT(i == runBases.len - 1 || i == runBases.len - 2)
-
- var/base1 = runBases[i]
- var/base2 = runBases[i+1]
- var/len1 = runLens[i]
- var/len2 = runLens[i+1]
-
- //ASSERT(len1 > 0 && len2 > 0)
- //ASSERT(base1 + len1 == base2)
-
- //Record the legth of the combined runs. If i is the 3rd last run now, also slide over the last run
- //(which isn't involved in this merge). The current run (i+1) goes away in any case.
- runLens[i] += runLens[i+1]
- runLens.Cut(i+1, i+2)
- runBases.Cut(i+1, i+2)
-
-
- //Find where the first element of run2 goes in run1.
- //Prior elements in run1 can be ignored (because they're already in place)
- var/k = gallopRight(fetchElement(L,base2), base1, len1, 0)
- //ASSERT(k >= 0)
- base1 += k
- len1 -= k
- if(len1 == 0)
- return
-
- //Find where the last element of run1 goes in run2.
- //Subsequent elements in run2 can be ignored (because they're already in place)
- len2 = gallopLeft(fetchElement(L,base1 + len1 - 1), base2, len2, len2-1)
- //ASSERT(len2 >= 0)
- if(len2 == 0)
- return
-
- //Merge remaining runs, using tmp array with min(len1, len2) elements
- if(len1 <= len2)
- mergeLo(base1, len1, base2, len2)
+ else if(runLens[n] <= runLens[n+1])
+ mergeAt(n)
else
- mergeHi(base1, len1, base2, len2)
+ break //Invariant is established
- /*
- Locates the position to insert key within the specified sorted range
- If the range contains elements equal to key, this will return the index of the LEFTMOST of those elements
+//Merges all runs on the stack until only one remains.
+//Called only once, to finalise the sort
+/datum/sortInstance/proc/mergeForceCollapse()
+ while(runBases.len >= 2)
+ var/n = runBases.len - 1
+ if(n > 1 && runLens[n-1] < runLens[n+1])
+ --n
+ mergeAt(n)
- key the element to be inserted into the sorted range
- base the index of the first element of the sorted range
- len the length of the sorted range, must be greater than 0
- hint the offset from base at which to begin the search, such that 0 <= hint < len; i.e. base <= hint < base+hint
- Returns the index at which to insert element 'key'
- */
- proc/gallopLeft(key, base, len, hint)
- //ASSERT(len > 0 && hint >= 0 && hint < len)
+//Merges the two consecutive runs at stack indices i and i+1
+//Run i must be the penultimate or antepenultimate run on the stack
+//In other words, i must be equal to stackSize-2 or stackSize-3
+/datum/sortInstance/proc/mergeAt(i)
+ //ASSERT(runBases.len >= 2)
+ //ASSERT(i >= 1)
+ //ASSERT(i == runBases.len - 1 || i == runBases.len - 2)
- var/lastOffset = 0
- var/offset = 1
- if(call(cmp)(key, fetchElement(L,base+hint)) > 0)
- var/maxOffset = len - hint
- while(offset < maxOffset && call(cmp)(key, fetchElement(L,base+hint+offset)) > 0)
- lastOffset = offset
- offset = (offset << 1) + 1
+ var/base1 = runBases[i]
+ var/base2 = runBases[i+1]
+ var/len1 = runLens[i]
+ var/len2 = runLens[i+1]
- if(offset > maxOffset)
- offset = maxOffset
+ //ASSERT(len1 > 0 && len2 > 0)
+ //ASSERT(base1 + len1 == base2)
- lastOffset += hint
- offset += hint
+ //Record the legth of the combined runs. If i is the 3rd last run now, also slide over the last run
+ //(which isn't involved in this merge). The current run (i+1) goes away in any case.
+ runLens[i] += runLens[i+1]
+ runLens.Cut(i+1, i+2)
+ runBases.Cut(i+1, i+2)
- else
- var/maxOffset = hint + 1
- while(offset < maxOffset && call(cmp)(key, fetchElement(L,base+hint-offset)) <= 0)
- lastOffset = offset
- offset = (offset << 1) + 1
- if(offset > maxOffset)
- offset = maxOffset
+ //Find where the first element of run2 goes in run1.
+ //Prior elements in run1 can be ignored (because they're already in place)
+ var/k = gallopRight(fetchElement(L,base2), base1, len1, 0)
+ //ASSERT(k >= 0)
+ base1 += k
+ len1 -= k
+ if(len1 == 0)
+ return
- var/temp = lastOffset
- lastOffset = hint - offset
- offset = hint - temp
+ //Find where the last element of run1 goes in run2.
+ //Subsequent elements in run2 can be ignored (because they're already in place)
+ len2 = gallopLeft(fetchElement(L,base1 + len1 - 1), base2, len2, len2-1)
+ //ASSERT(len2 >= 0)
+ if(len2 == 0)
+ return
- //ASSERT(-1 <= lastOffset && lastOffset < offset && offset <= len)
+ //Merge remaining runs, using tmp array with min(len1, len2) elements
+ if(len1 <= len2)
+ mergeLo(base1, len1, base2, len2)
+ else
+ mergeHi(base1, len1, base2, len2)
- //Now L[base+lastOffset] < key <= L[base+offset], so key belongs somewhere to the right of lastOffset but no farther than
- //offset. Do a binary search with invariant L[base+lastOffset-1] < key <= L[base+offset]
- ++lastOffset
- while(lastOffset < offset)
- var/m = lastOffset + ((offset - lastOffset) >> 1)
- if(call(cmp)(key, fetchElement(L,base+m)) > 0)
- lastOffset = m + 1
- else
- offset = m
+/*
+ Locates the position to insert key within the specified sorted range
+ If the range contains elements equal to key, this will return the index of the LEFTMOST of those elements
- //ASSERT(lastOffset == offset)
- return offset
+ key the element to be inserted into the sorted range
+ base the index of the first element of the sorted range
+ len the length of the sorted range, must be greater than 0
+ hint the offset from base at which to begin the search, such that 0 <= hint < len; i.e. base <= hint < base+hint
- /**
- * Like gallopLeft, except that if the range contains an element equal to
- * key, gallopRight returns the index after the rightmost equal element.
- *
- * @param key the key whose insertion point to search for
- * @param a the array in which to search
- * @param base the index of the first element in the range
- * @param len the length of the range; must be > 0
- * @param hint the index at which to begin the search, 0 <= hint < n.
- * The closer hint is to the result, the faster this method will run.
- * @param c the comparator used to order the range, and to search
- * @return the int k, 0 <= k <= n such that a[b + k - 1] <= key < a[b + k]
- */
- proc/gallopRight(key, base, len, hint)
- //ASSERT(len > 0 && hint >= 0 && hint < len)
+ Returns the index at which to insert element 'key'
+*/
+/datum/sortInstance/proc/gallopLeft(key, base, len, hint)
+ //ASSERT(len > 0 && hint >= 0 && hint < len)
- var/offset = 1
- var/lastOffset = 0
- if(call(cmp)(key, fetchElement(L,base+hint)) < 0) //key <= L[base+hint]
- var/maxOffset = hint + 1 //therefore we want to insert somewhere in the range [base,base+hint] = [base+,base+(hint+1))
- while(offset < maxOffset && call(cmp)(key, fetchElement(L,base+hint-offset)) < 0) //we are iterating backwards
- lastOffset = offset
- offset = (offset << 1) + 1 //1 3 7 15
+ var/lastOffset = 0
+ var/offset = 1
+ if(call(cmp)(key, fetchElement(L,base+hint)) > 0)
+ var/maxOffset = len - hint
+ while(offset < maxOffset && call(cmp)(key, fetchElement(L,base+hint+offset)) > 0)
+ lastOffset = offset
+ offset = (offset << 1) + 1
- if(offset > maxOffset)
- offset = maxOffset
+ if(offset > maxOffset)
+ offset = maxOffset
- var/temp = lastOffset
- lastOffset = hint - offset
- offset = hint - temp
+ lastOffset += hint
+ offset += hint
- else //key > L[base+hint]
- var/maxOffset = len - hint //therefore we want to insert somewhere in the range (base+hint,base+len) = [base+hint+1, base+hint+(len-hint))
- while(offset < maxOffset && call(cmp)(key, fetchElement(L,base+hint+offset)) >= 0)
- lastOffset = offset
- offset = (offset << 1) + 1
+ else
+ var/maxOffset = hint + 1
+ while(offset < maxOffset && call(cmp)(key, fetchElement(L,base+hint-offset)) <= 0)
+ lastOffset = offset
+ offset = (offset << 1) + 1
- if(offset > maxOffset)
- offset = maxOffset
+ if(offset > maxOffset)
+ offset = maxOffset
- lastOffset += hint
- offset += hint
+ var/temp = lastOffset
+ lastOffset = hint - offset
+ offset = hint - temp
//ASSERT(-1 <= lastOffset && lastOffset < offset && offset <= len)
- ++lastOffset
- while(lastOffset < offset)
- var/m = lastOffset + ((offset - lastOffset) >> 1)
+ //Now L[base+lastOffset] < key <= L[base+offset], so key belongs somewhere to the right of lastOffset but no farther than
+ //offset. Do a binary search with invariant L[base+lastOffset-1] < key <= L[base+offset]
+ ++lastOffset
+ while(lastOffset < offset)
+ var/m = lastOffset + ((offset - lastOffset) >> 1)
- if(call(cmp)(key, fetchElement(L,base+m)) < 0) //key <= L[base+m]
- offset = m
- else //key > L[base+m]
- lastOffset = m + 1
+ if(call(cmp)(key, fetchElement(L,base+m)) > 0)
+ lastOffset = m + 1
+ else
+ offset = m
- //ASSERT(lastOffset == offset)
+ //ASSERT(lastOffset == offset)
+ return offset
- return offset
+/**
+ * Like gallopLeft, except that if the range contains an element equal to
+ * key, gallopRight returns the index after the rightmost equal element.
+ *
+ * @param key the key whose insertion point to search for
+ * @param a the array in which to search
+ * @param base the index of the first element in the range
+ * @param len the length of the range; must be > 0
+ * @param hint the index at which to begin the search, 0 <= hint < n.
+ * The closer hint is to the result, the faster this method will run.
+ * @param c the comparator used to order the range, and to search
+ * @return the int k, 0 <= k <= n such that a[b + k - 1] <= key < a[b + k]
+ */
+/datum/sortInstance/proc/gallopRight(key, base, len, hint)
+ //ASSERT(len > 0 && hint >= 0 && hint < len)
+
+ var/offset = 1
+ var/lastOffset = 0
+ if(call(cmp)(key, fetchElement(L,base+hint)) < 0) //key <= L[base+hint]
+ var/maxOffset = hint + 1 //therefore we want to insert somewhere in the range [base,base+hint] = [base+,base+(hint+1))
+ while(offset < maxOffset && call(cmp)(key, fetchElement(L,base+hint-offset)) < 0) //we are iterating backwards
+ lastOffset = offset
+ offset = (offset << 1) + 1 //1 3 7 15
+
+ if(offset > maxOffset)
+ offset = maxOffset
+
+ var/temp = lastOffset
+ lastOffset = hint - offset
+ offset = hint - temp
+
+ else //key > L[base+hint]
+ var/maxOffset = len - hint //therefore we want to insert somewhere in the range (base+hint,base+len) = [base+hint+1, base+hint+(len-hint))
+ while(offset < maxOffset && call(cmp)(key, fetchElement(L,base+hint+offset)) >= 0)
+ lastOffset = offset
+ offset = (offset << 1) + 1
+
+ if(offset > maxOffset)
+ offset = maxOffset
+
+ lastOffset += hint
+ offset += hint
+
+ //ASSERT(-1 <= lastOffset && lastOffset < offset && offset <= len)
+
+ ++lastOffset
+ while(lastOffset < offset)
+ var/m = lastOffset + ((offset - lastOffset) >> 1)
+
+ if(call(cmp)(key, fetchElement(L,base+m)) < 0) //key <= L[base+m]
+ offset = m
+ else //key > L[base+m]
+ lastOffset = m + 1
+
+ //ASSERT(lastOffset == offset)
+
+ return offset
- //Merges two adjacent runs in-place in a stable fashion.
- //For performance this method should only be called when len1 <= len2!
- proc/mergeLo(base1, len1, base2, len2)
- //ASSERT(len1 > 0 && len2 > 0 && base1 + len1 == base2)
+//Merges two adjacent runs in-place in a stable fashion.
+//For performance this method should only be called when len1 <= len2!
+/datum/sortInstance/proc/mergeLo(base1, len1, base2, len2)
+ //ASSERT(len1 > 0 && len2 > 0 && base1 + len1 == base2)
- var/cursor1 = base1
- var/cursor2 = base2
+ var/cursor1 = base1
+ var/cursor2 = base2
- //degenerate cases
- if(len2 == 1)
- moveElement(L, cursor2, cursor1)
- return
+ //degenerate cases
+ if(len2 == 1)
+ moveElement(L, cursor2, cursor1)
+ return
- if(len1 == 1)
- moveElement(L, cursor1, cursor2+len2)
- return
+ if(len1 == 1)
+ moveElement(L, cursor1, cursor2+len2)
+ return
- //Move first element of second run
- moveElement(L, cursor2++, cursor1++)
- --len2
+ //Move first element of second run
+ moveElement(L, cursor2++, cursor1++)
+ --len2
- outer:
- while(1)
- var/count1 = 0 //# of times in a row that first run won
- var/count2 = 0 // " " " " " " second run won
+ outer:
+ while(1)
+ var/count1 = 0 //# of times in a row that first run won
+ var/count2 = 0 // " " " " " " second run won
- //do the straightfoward thin until one run starts winning consistently
+ //do the straightfoward thin until one run starts winning consistently
- do
- //ASSERT(len1 > 1 && len2 > 0)
- if(call(cmp)(fetchElement(L,cursor2), fetchElement(L,cursor1)) < 0)
- moveElement(L, cursor2++, cursor1++)
- --len2
+ do
+ //ASSERT(len1 > 1 && len2 > 0)
+ if(call(cmp)(fetchElement(L,cursor2), fetchElement(L,cursor1)) < 0)
+ moveElement(L, cursor2++, cursor1++)
+ --len2
- ++count2
- count1 = 0
+ ++count2
+ count1 = 0
- if(len2 == 0)
- break outer
- else
- ++cursor1
-
- ++count1
- count2 = 0
-
- if(--len1 == 1)
- break outer
-
- while((count1 | count2) < minGallop)
-
-
- //one run is winning consistently so galloping may provide huge benifits
- //so try galloping, until such time as the run is no longer consistently winning
- do
- //ASSERT(len1 > 1 && len2 > 0)
-
- count1 = gallopRight(fetchElement(L,cursor2), cursor1, len1, 0)
- if(count1)
- cursor1 += count1
- len1 -= count1
-
- if(len1 <= 1)
- break outer
-
- moveElement(L, cursor2, cursor1)
- ++cursor2
- ++cursor1
- if(--len2 == 0)
+ if(len2 == 0)
break outer
-
- count2 = gallopLeft(fetchElement(L,cursor1), cursor2, len2, 0)
- if(count2)
- moveRange(L, cursor2, cursor1, count2)
-
- cursor2 += count2
- cursor1 += count2
- len2 -= count2
-
- if(len2 == 0)
- break outer
-
+ else
++cursor1
+
+ ++count1
+ count2 = 0
+
if(--len1 == 1)
break outer
- --minGallop
-
- while((count1|count2) > MIN_GALLOP)
-
- if(minGallop < 0)
- minGallop = 0
- minGallop += 2; // Penalize for leaving gallop mode
+ while((count1 | count2) < minGallop)
- if(len1 == 1)
- //ASSERT(len2 > 0)
- moveElement(L, cursor1, cursor2+len2)
+ //one run is winning consistently so galloping may provide huge benifits
+ //so try galloping, until such time as the run is no longer consistently winning
+ do
+ //ASSERT(len1 > 1 && len2 > 0)
- //else
- //ASSERT(len2 == 0)
- //ASSERT(len1 > 1)
+ count1 = gallopRight(fetchElement(L,cursor2), cursor1, len1, 0)
+ if(count1)
+ cursor1 += count1
+ len1 -= count1
-
- proc/mergeHi(base1, len1, base2, len2)
- //ASSERT(len1 > 0 && len2 > 0 && base1 + len1 == base2)
-
- var/cursor1 = base1 + len1 - 1 //start at end of sublists
- var/cursor2 = base2 + len2 - 1
-
- //degenerate cases
- if(len2 == 1)
- moveElement(L, base2, base1)
- return
-
- if(len1 == 1)
- moveElement(L, base1, cursor2+1)
- return
-
- moveElement(L, cursor1--, cursor2-- + 1)
- --len1
-
- outer:
- while(1)
- var/count1 = 0 //# of times in a row that first run won
- var/count2 = 0 // " " " " " " second run won
-
- //do the straightfoward thing until one run starts winning consistently
- do
- //ASSERT(len1 > 0 && len2 > 1)
- if(call(cmp)(fetchElement(L,cursor2), fetchElement(L,cursor1)) < 0)
- moveElement(L, cursor1--, cursor2-- + 1)
- --len1
-
- ++count1
- count2 = 0
-
- if(len1 == 0)
- break outer
- else
- --cursor2
- --len2
-
- ++count2
- count1 = 0
-
- if(len2 == 1)
- break outer
- while((count1 | count2) < minGallop)
-
- //one run is winning consistently so galloping may provide huge benifits
- //so try galloping, until such time as the run is no longer consistently winning
- do
- //ASSERT(len1 > 0 && len2 > 1)
-
- count1 = len1 - gallopRight(fetchElement(L,cursor2), base1, len1, len1-1) //should cursor1 be base1?
- if(count1)
- cursor1 -= count1
-
- moveRange(L, cursor1+1, cursor2+1, count1) //cursor1+1 == cursor2 by definition
-
- cursor2 -= count1
- len1 -= count1
-
- if(len1 == 0)
- break outer
-
- --cursor2
-
- if(--len2 == 1)
+ if(len1 <= 1)
break outer
- count2 = len2 - gallopLeft(fetchElement(L,cursor1), cursor1+1, len2, len2-1)
- if(count2)
- cursor2 -= count2
- len2 -= count2
+ moveElement(L, cursor2, cursor1)
+ ++cursor2
+ ++cursor1
+ if(--len2 == 0)
+ break outer
- if(len2 <= 1)
- break outer
+ count2 = gallopLeft(fetchElement(L,cursor1), cursor2, len2, 0)
+ if(count2)
+ moveRange(L, cursor2, cursor1, count2)
+ cursor2 += count2
+ cursor1 += count2
+ len2 -= count2
+
+ if(len2 == 0)
+ break outer
+
+ ++cursor1
+ if(--len1 == 1)
+ break outer
+
+ --minGallop
+
+ while((count1|count2) > MIN_GALLOP)
+
+ if(minGallop < 0)
+ minGallop = 0
+ minGallop += 2; // Penalize for leaving gallop mode
+
+
+ if(len1 == 1)
+ //ASSERT(len2 > 0)
+ moveElement(L, cursor1, cursor2+len2)
+
+ //else
+ //ASSERT(len2 == 0)
+ //ASSERT(len1 > 1)
+
+
+/datum/sortInstance/proc/mergeHi(base1, len1, base2, len2)
+ //ASSERT(len1 > 0 && len2 > 0 && base1 + len1 == base2)
+
+ var/cursor1 = base1 + len1 - 1 //start at end of sublists
+ var/cursor2 = base2 + len2 - 1
+
+ //degenerate cases
+ if(len2 == 1)
+ moveElement(L, base2, base1)
+ return
+
+ if(len1 == 1)
+ moveElement(L, base1, cursor2+1)
+ return
+
+ moveElement(L, cursor1--, cursor2-- + 1)
+ --len1
+
+ outer:
+ while(1)
+ var/count1 = 0 //# of times in a row that first run won
+ var/count2 = 0 // " " " " " " second run won
+
+ //do the straightfoward thing until one run starts winning consistently
+ do
+ //ASSERT(len1 > 0 && len2 > 1)
+ if(call(cmp)(fetchElement(L,cursor2), fetchElement(L,cursor1)) < 0)
moveElement(L, cursor1--, cursor2-- + 1)
--len1
+ ++count1
+ count2 = 0
+
+ if(len1 == 0)
+ break outer
+ else
+ --cursor2
+ --len2
+
+ ++count2
+ count1 = 0
+
+ if(len2 == 1)
+ break outer
+ while((count1 | count2) < minGallop)
+
+ //one run is winning consistently so galloping may provide huge benifits
+ //so try galloping, until such time as the run is no longer consistently winning
+ do
+ //ASSERT(len1 > 0 && len2 > 1)
+
+ count1 = len1 - gallopRight(fetchElement(L,cursor2), base1, len1, len1-1) //should cursor1 be base1?
+ if(count1)
+ cursor1 -= count1
+
+ moveRange(L, cursor1+1, cursor2+1, count1) //cursor1+1 == cursor2 by definition
+
+ cursor2 -= count1
+ len1 -= count1
+
if(len1 == 0)
break outer
- --minGallop
- while((count1|count2) > MIN_GALLOP)
+ --cursor2
- if(minGallop < 0)
- minGallop = 0
- minGallop += 2 // Penalize for leaving gallop mode
+ if(--len2 == 1)
+ break outer
- if(len2 == 1)
- //ASSERT(len1 > 0)
+ count2 = len2 - gallopLeft(fetchElement(L,cursor1), cursor1+1, len2, len2-1)
+ if(count2)
+ cursor2 -= count2
+ len2 -= count2
- cursor1 -= len1
- moveRange(L, cursor1+1, cursor2+1, len1)
+ if(len2 <= 1)
+ break outer
- //else
- //ASSERT(len1 == 0)
- //ASSERT(len2 > 0)
+ moveElement(L, cursor1--, cursor2-- + 1)
+ --len1
+
+ if(len1 == 0)
+ break outer
+
+ --minGallop
+ while((count1|count2) > MIN_GALLOP)
+
+ if(minGallop < 0)
+ minGallop = 0
+ minGallop += 2 // Penalize for leaving gallop mode
+
+ if(len2 == 1)
+ //ASSERT(len1 > 0)
+
+ cursor1 -= len1
+ moveRange(L, cursor1+1, cursor2+1, len1)
+
+ //else
+ //ASSERT(len1 == 0)
+ //ASSERT(len2 > 0)
- proc/mergeSort(start, end)
- var/remaining = end - start
+/datum/sortInstance/proc/mergeSort(start, end)
+ var/remaining = end - start
- //If array is small, do an insertion sort
- if(remaining < MIN_MERGE)
- binarySort(start, end, start/*+initRunLen*/)
- return
+ //If array is small, do an insertion sort
+ if(remaining < MIN_MERGE)
+ binarySort(start, end, start/*+initRunLen*/)
+ return
- var/minRun = minRunLength(remaining)
+ var/minRun = minRunLength(remaining)
- do
- var/runLen = (remaining <= minRun) ? remaining : minRun
+ do
+ var/runLen = (remaining <= minRun) ? remaining : minRun
- binarySort(start, start+runLen, start)
+ binarySort(start, start+runLen, start)
- //add data about run to queue
- runBases.Add(start)
- runLens.Add(runLen)
+ //add data about run to queue
+ runBases.Add(start)
+ runLens.Add(runLen)
- //Advance to find next run
- start += runLen
- remaining -= runLen
+ //Advance to find next run
+ start += runLen
+ remaining -= runLen
- while(remaining > 0)
+ while(remaining > 0)
- while(runBases.len >= 2)
- var/n = runBases.len - 1
- if(n > 1 && runLens[n-1] <= runLens[n] + runLens[n+1])
- if(runLens[n-1] < runLens[n+1])
- --n
- mergeAt2(n)
- else if(runLens[n] <= runLens[n+1])
- mergeAt2(n)
- else
- break //Invariant is established
-
- while(runBases.len >= 2)
- var/n = runBases.len - 1
- if(n > 1 && runLens[n-1] < runLens[n+1])
+ while(runBases.len >= 2)
+ var/n = runBases.len - 1
+ if(n > 1 && runLens[n-1] <= runLens[n] + runLens[n+1])
+ if(runLens[n-1] < runLens[n+1])
--n
mergeAt2(n)
+ else if(runLens[n] <= runLens[n+1])
+ mergeAt2(n)
+ else
+ break //Invariant is established
- return L
+ while(runBases.len >= 2)
+ var/n = runBases.len - 1
+ if(n > 1 && runLens[n-1] < runLens[n+1])
+ --n
+ mergeAt2(n)
- proc/mergeAt2(i)
- var/cursor1 = runBases[i]
- var/cursor2 = runBases[i+1]
+ return L
- var/end1 = cursor1+runLens[i]
- var/end2 = cursor2+runLens[i+1]
+/datum/sortInstance/proc/mergeAt2(i)
+ var/cursor1 = runBases[i]
+ var/cursor2 = runBases[i+1]
- var/val1 = fetchElement(L,cursor1)
- var/val2 = fetchElement(L,cursor2)
+ var/end1 = cursor1+runLens[i]
+ var/end2 = cursor2+runLens[i+1]
- while(1)
- if(call(cmp)(val1,val2) <= 0)
- if(++cursor1 >= end1)
- break
- val1 = fetchElement(L,cursor1)
- else
- moveElement(L,cursor2,cursor1)
+ var/val1 = fetchElement(L,cursor1)
+ var/val2 = fetchElement(L,cursor2)
- if(++cursor2 >= end2)
- break
- ++end1
- ++cursor1
+ while(1)
+ if(call(cmp)(val1,val2) <= 0)
+ if(++cursor1 >= end1)
+ break
+ val1 = fetchElement(L,cursor1)
+ else
+ moveElement(L,cursor2,cursor1)
- val2 = fetchElement(L,cursor2)
+ if(++cursor2 >= end2)
+ break
+ ++end1
+ ++cursor1
+
+ val2 = fetchElement(L,cursor2)
- //Record the legth of the combined runs. If i is the 3rd last run now, also slide over the last run
- //(which isn't involved in this merge). The current run (i+1) goes away in any case.
- runLens[i] += runLens[i+1]
- runLens.Cut(i+1, i+2)
- runBases.Cut(i+1, i+2)
+ //Record the legth of the combined runs. If i is the 3rd last run now, also slide over the last run
+ //(which isn't involved in this merge). The current run (i+1) goes away in any case.
+ runLens[i] += runLens[i+1]
+ runLens.Cut(i+1, i+2)
+ runBases.Cut(i+1, i+2)
#undef MIN_GALLOP
#undef MIN_MERGE
diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm
index 43791a5642..74c32dd52f 100644
--- a/code/__HELPERS/unsorted.dm
+++ b/code/__HELPERS/unsorted.dm
@@ -1538,4 +1538,12 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new)
/proc/CallAsync(datum/source, proctype, list/arguments)
set waitfor = FALSE
- return call(source, proctype)(arglist(arguments))
\ No newline at end of file
+ return call(source, proctype)(arglist(arguments))
+
+/proc/num2sign(numeric)
+ if(numeric > 0)
+ return 1
+ else if(numeric < 0)
+ return -1
+ else
+ return 0
diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm
index 91f5105553..e0cf8ebdd5 100644
--- a/code/_globalvars/bitfields.dm
+++ b/code/_globalvars/bitfields.dm
@@ -142,8 +142,7 @@ GLOBAL_LIST_INIT(bitfields, list(
"THICKMATERIAL" = THICKMATERIAL,
"VOICEBOX_TOGGLABLE" = VOICEBOX_TOGGLABLE,
"VOICEBOX_DISABLED" = VOICEBOX_DISABLED,
- "SNUG_FIT" = SNUG_FIT,
- "ANTI_TINFOIL_MANEUVER" = ANTI_TINFOIL_MANEUVER,
+ "IGNORE_HAT_TOSS" = IGNORE_HAT_TOSS,
),
"tesla_flags" = list(
"TESLA_MOB_DAMAGE" = TESLA_MOB_DAMAGE,
diff --git a/code/_globalvars/lists/objects.dm b/code/_globalvars/lists/objects.dm
index 14c752613b..fa68fab85f 100644
--- a/code/_globalvars/lists/objects.dm
+++ b/code/_globalvars/lists/objects.dm
@@ -19,6 +19,8 @@ GLOBAL_LIST(chemical_reagents_list) //list of all /datum/reagent datums index
GLOBAL_LIST_EMPTY(materials_list) //list of all /datum/material datums indexed by material id.
GLOBAL_LIST_EMPTY(tech_list) //list of all /datum/tech datums indexed by id.
GLOBAL_LIST_EMPTY(surgeries_list) //list of all surgeries by name, associated with their path.
+GLOBAL_LIST_EMPTY(uplink_items) //list of all uplink item typepaths, ascendingly sorted by their initial name.
+GLOBAL_LIST_EMPTY(uplink_categories) //list of all uplink categories, listed by the order they are loaded in code. Be careful.
GLOBAL_LIST_EMPTY(crafting_recipes) //list of all table craft recipes
GLOBAL_LIST_EMPTY(rcd_list) //list of Rapid Construction Devices.
GLOBAL_LIST_EMPTY(apcs_list) //list of all Area Power Controller machines, separate from machines for powernet speeeeeeed.
diff --git a/code/_globalvars/lists/typecache.dm b/code/_globalvars/lists/typecache.dm
index 96807214f2..1ec3de0bc5 100644
--- a/code/_globalvars/lists/typecache.dm
+++ b/code/_globalvars/lists/typecache.dm
@@ -10,3 +10,5 @@ GLOBAL_LIST_INIT(typecache_living, typecacheof(/mob/living))
GLOBAL_LIST_INIT(typecache_stack, typecacheof(/obj/item/stack))
GLOBAL_LIST_INIT(typecache_machine_or_structure, typecacheof(list(/obj/machinery, /obj/structure)))
+
+GLOBAL_LIST_INIT(freezing_objects, typecacheof(list(/obj/structure/closet/crate/freezer, /obj/structure/closet/secure_closet/freezer, /obj/structure/bodycontainer, /obj/item/autosurgeon, /obj/machinery/smartfridge/organ))) //list of all cold objects, that freeze organs when inside
diff --git a/code/_onclick/ai.dm b/code/_onclick/ai.dm
index 7a495b95e7..2a8289697b 100644
--- a/code/_onclick/ai.dm
+++ b/code/_onclick/ai.dm
@@ -114,7 +114,8 @@
/mob/living/silicon/ai/CtrlClickOn(var/atom/A)
A.AICtrlClick(src)
/mob/living/silicon/ai/AltClickOn(var/atom/A)
- A.AIAltClick(src)
+ if(!A.AIAltClick(src))
+ altclick_listed_turf(A)
/*
The following criminally helpful code is just the previous code cleaned up;
@@ -125,9 +126,10 @@
/* Atom Procs */
/atom/proc/AICtrlClick()
return
+
/atom/proc/AIAltClick(mob/living/silicon/ai/user)
- AltClick(user)
- return
+ return AltClick(user)
+
/atom/proc/AIShiftClick()
return
/atom/proc/AICtrlShiftClick()
@@ -151,6 +153,7 @@
shock_perm(usr)
else
shock_restore(usr)
+ return TRUE
/obj/machinery/door/airlock/AIShiftClick() // Opens and closes doors!
if(obj_flags & EMAGGED)
@@ -185,10 +188,12 @@
return
toggle_on()
add_fingerprint(usr)
+ return TRUE
/* Holopads */
/obj/machinery/holopad/AIAltClick(mob/living/silicon/ai/user)
hangup_all_calls()
+ return TRUE
//
// Override TurfAdjacent for AltClicking
diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm
index e9f50d9212..4c477f3872 100644
--- a/code/_onclick/click.dm
+++ b/code/_onclick/click.dm
@@ -353,8 +353,17 @@
Unused except for AI
*/
/mob/proc/AltClickOn(atom/A)
- A.AltClick(src)
- return
+ if(!A.AltClick(src))
+ altclick_listed_turf(A)
+
+/mob/proc/altclick_listed_turf(atom/A)
+ var/turf/T = get_turf(A)
+ if(T == A.loc || T == A)
+ if(T == listed_turf)
+ listed_turf = null
+ else if(TurfAdjacent(T))
+ listed_turf = T
+ client.statpanel = T.name
/mob/living/carbon/AltClickOn(atom/A)
if(!stat && mind && iscarbon(A) && A != src)
@@ -366,18 +375,7 @@
..()
/atom/proc/AltClick(mob/user)
- SEND_SIGNAL(src, COMSIG_CLICK_ALT, user)
- var/turf/T = get_turf(src)
- if(T && user.TurfAdjacent(T))
- user.listed_turf = T
- user.client.statpanel = T.name
-
-// Use this instead of /mob/proc/AltClickOn(atom/A) where you only want turf content listing without additional atom alt-click interaction
-/atom/proc/AltClickNoInteract(mob/user, atom/A)
- var/turf/T = get_turf(A)
- if(T && user.TurfAdjacent(T))
- user.listed_turf = T
- user.client.statpanel = T.name
+ . = SEND_SIGNAL(src, COMSIG_CLICK_ALT, user)
/mob/proc/TurfAdjacent(turf/T)
return T.Adjacent(src)
diff --git a/code/_onclick/cyborg.dm b/code/_onclick/cyborg.dm
index 7f63b74945..a2d566d566 100644
--- a/code/_onclick/cyborg.dm
+++ b/code/_onclick/cyborg.dm
@@ -110,7 +110,8 @@
/mob/living/silicon/robot/CtrlClickOn(atom/A)
A.BorgCtrlClick(src)
/mob/living/silicon/robot/AltClickOn(atom/A)
- A.BorgAltClick(src)
+ if(!A.BorgAltClick(src))
+ altclick_listed_turf(A)
/atom/proc/BorgCtrlShiftClick(mob/living/silicon/robot/user) //forward to human click if not overridden
CtrlShiftClick(user)
@@ -154,20 +155,17 @@
..()
/atom/proc/BorgAltClick(mob/living/silicon/robot/user)
- AltClick(user)
- return
+ return AltClick(user)
/obj/machinery/door/airlock/BorgAltClick(mob/living/silicon/robot/user) // Eletrifies doors. Forwards to AI code.
if(get_dist(src,user) <= user.interaction_range)
- AIAltClick()
- else
- ..()
+ return AIAltClick()
+ return ..()
/obj/machinery/turretid/BorgAltClick(mob/living/silicon/robot/user) //turret lethal on/off. Forwards to AI code.
if(get_dist(src,user) <= user.interaction_range)
- AIAltClick()
- else
- ..()
+ return AIAltClick()
+ return ..()
/*
As with AI, these are not used in click code,
diff --git a/code/_onclick/hud/_defines.dm b/code/_onclick/hud/_defines.dm
index 167fa989b2..9d53703cdd 100644
--- a/code/_onclick/hud/_defines.dm
+++ b/code/_onclick/hud/_defines.dm
@@ -107,6 +107,10 @@
#define ui_internal "EAST-1:28,CENTER+1:19"//CIT CHANGE - moves internal icon up a little bit to accommodate for the stamina meter
#define ui_mood "EAST-1:28,CENTER-3:10"
+//living
+#define ui_living_pull "EAST-1:28,CENTER-2:15"
+#define ui_living_health "EAST-1:28,CENTER:15"
+
//borgs
#define ui_borg_health "EAST-1:28,CENTER-1:15" //borgs have the health display where humans have the pressure damage indicator.
diff --git a/code/_onclick/hud/action_button.dm b/code/_onclick/hud/action_button.dm
index 2b5af9ddb8..858b8dbd06 100644
--- a/code/_onclick/hud/action_button.dm
+++ b/code/_onclick/hud/action_button.dm
@@ -113,7 +113,7 @@
name = "Show Buttons"
else
name = "Hide Buttons"
- UpdateIcon()
+ update_icon()
usr.update_action_buttons()
/obj/screen/movable/action_button/hide_toggle/AltClick(mob/user)
@@ -125,6 +125,7 @@
moved = FALSE
user.update_action_buttons(TRUE)
to_chat(user, "Action button positions have been reset.")
+ return TRUE
/obj/screen/movable/action_button/hide_toggle/proc/InitialiseIcon(datum/hud/owner_hud)
@@ -134,9 +135,9 @@
hide_icon = settings["toggle_icon"]
hide_state = settings["toggle_hide"]
show_state = settings["toggle_show"]
- UpdateIcon()
+ update_icon()
-/obj/screen/movable/action_button/hide_toggle/proc/UpdateIcon()
+/obj/screen/movable/action_button/hide_toggle/update_icon()
cut_overlays()
add_overlay(mutable_appearance(hide_icon, hidden ? show_state : hide_state))
diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm
index 391e86f390..c42956bbaa 100644
--- a/code/_onclick/hud/alert.dm
+++ b/code/_onclick/hud/alert.dm
@@ -213,6 +213,16 @@ or something covering your eyes."
desc = "Whoa man, you're tripping balls! Careful you don't get addicted... if you aren't already."
icon_state = "high"
+/obj/screen/alert/mind_control
+ name = "Mind Control"
+ desc = "Your mind has been hijacked! Click to view the mind control command."
+ icon_state = "mind_control"
+ var/command
+
+/obj/screen/alert/mind_control/Click()
+ var/mob/living/L = usr
+ to_chat(L, "[command]")
+
/obj/screen/alert/hypnosis
name = "Hypnosis"
desc = "Something's hypnotizing you, but you're not really sure about what."
diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm
index 7f2fca9d98..3b5f851333 100644
--- a/code/_onclick/hud/human.dm
+++ b/code/_onclick/hud/human.dm
@@ -349,6 +349,13 @@
devilsouldisplay = new /obj/screen/devil/soul_counter
infodisplay += devilsouldisplay
+ blood_display = new /obj/screen/bloodsucker/blood_counter // Blood Volume
+ infodisplay += blood_display
+ vamprank_display = new /obj/screen/bloodsucker/rank_counter // Vampire Rank
+ infodisplay += vamprank_display
+ sunlight_display = new /obj/screen/bloodsucker/sunlight_counter // Sunlight
+ infodisplay += sunlight_display
+
zone_select = new /obj/screen/zone_sel()
zone_select.icon = ui_style
zone_select.update_icon(mymob)
diff --git a/code/_onclick/hud/lavaland_elite.dm b/code/_onclick/hud/lavaland_elite.dm
new file mode 100644
index 0000000000..277ea8b898
--- /dev/null
+++ b/code/_onclick/hud/lavaland_elite.dm
@@ -0,0 +1,16 @@
+/datum/hud/lavaland_elite
+ ui_style = 'icons/mob/screen_elite.dmi'
+
+/datum/hud/lavaland_elite/New(mob/living/simple_animal/hostile/asteroid/elite)
+ ..()
+
+ pull_icon = new /obj/screen/pull()
+ pull_icon.icon = ui_style
+ pull_icon.update_icon()
+ pull_icon.screen_loc = ui_living_pull
+ pull_icon.hud = src
+ static_inventory += pull_icon
+
+ healths = new /obj/screen/healths/lavaland_elite()
+ healths.hud = src
+ infodisplay += healths
diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm
index 5f128ff76d..86b4b0c024 100644
--- a/code/_onclick/hud/screen_objects.dm
+++ b/code/_onclick/hud/screen_objects.dm
@@ -644,6 +644,12 @@
screen_loc = ui_construct_health
mouse_opacity = MOUSE_OPACITY_TRANSPARENT
+/obj/screen/healths/lavaland_elite
+ icon = 'icons/mob/screen_elite.dmi'
+ icon_state = "elite_health0"
+ screen_loc = ui_health
+ mouse_opacity = MOUSE_OPACITY_TRANSPARENT
+
/obj/screen/healthdoll
name = "health doll"
screen_loc = ui_healthdoll
diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm
index 9107fa9e3e..e6b2a63673 100644
--- a/code/_onclick/item_attack.dm
+++ b/code/_onclick/item_attack.dm
@@ -39,23 +39,12 @@
if(..())
return TRUE
user.changeNext_move(CLICK_CD_MELEE)
- if(user.a_intent == INTENT_HARM && stat == DEAD && (butcher_results || guaranteed_butcher_results)) //can we butcher it?
- var/datum/component/butchering/butchering = I.GetComponent(/datum/component/butchering)
- if(butchering && butchering.butchering_enabled)
- to_chat(user, "You begin to butcher [src]...")
- playsound(loc, butchering.butcher_sound, 50, TRUE, -1)
- if(do_mob(user, src, butchering.speed) && Adjacent(I))
- butchering.Butcher(user, src)
- return 1
- else if(I.get_sharpness() && !butchering) //give sharp objects butchering functionality, for consistency
- I.AddComponent(/datum/component/butchering, 80 * I.toolspeed)
- attackby(I, user, params) //call the attackby again to refresh and do the butchering check again
- return
return I.attack(src, user)
/obj/item/proc/attack(mob/living/M, mob/living/user)
- SEND_SIGNAL(src, COMSIG_ITEM_ATTACK, M, user)
+ if(SEND_SIGNAL(src, COMSIG_ITEM_ATTACK, M, user) & COMPONENT_ITEM_NO_ATTACK)
+ return
SEND_SIGNAL(user, COMSIG_MOB_ITEM_ATTACK, M, user)
if(item_flags & NOBLUDGEON)
return
@@ -123,7 +112,7 @@
send_item_attack_message(I, user)
if(I.force)
apply_damage(totitemdamage, I.damtype) //CIT CHANGE - replaces I.force with totitemdamage
- if(I.damtype == BRUTE)
+ if(I.damtype == BRUTE && !HAS_TRAIT(src, TRAIT_NOMARROW))
if(prob(33))
I.add_mob_blood(src)
var/turf/location = get_turf(src)
@@ -176,4 +165,3 @@
/obj/item/proc/getweight()
return total_mass || w_class * 1.25
-
diff --git a/code/_onclick/observer.dm b/code/_onclick/observer.dm
index 299d7f64f8..f76a745fd2 100644
--- a/code/_onclick/observer.dm
+++ b/code/_onclick/observer.dm
@@ -31,7 +31,7 @@
ShiftClickOn(A)
return
if(modifiers["alt"])
- AltClickNoInteract(src, A)
+ altclick_listed_turf(A)
return
if(modifiers["ctrl"])
CtrlClickOn(A)
diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm
index fdddbda344..21d9d4e093 100644
--- a/code/controllers/configuration/entries/game_options.dm
+++ b/code/controllers/configuration/entries/game_options.dm
@@ -379,3 +379,10 @@
/datum/config_entry/number/auto_transfer_delay
config_entry_value = 72000
min_val = 0
+
+/datum/config_entry/number/marauder_delay_non_reebe
+ config_entry_value = 1800
+ min_val = 0
+
+/datum/config_entry/flag/allow_clockwork_marauder_on_station
+ config_entry_value = TRUE
diff --git a/code/controllers/subsystem/dcs.dm b/code/controllers/subsystem/dcs.dm
index c1e101a0e7..faf95fd319 100644
--- a/code/controllers/subsystem/dcs.dm
+++ b/code/controllers/subsystem/dcs.dm
@@ -1,6 +1,27 @@
-SUBSYSTEM_DEF(dcs)
+PROCESSING_SUBSYSTEM_DEF(dcs)
name = "Datum Component System"
- flags = SS_NO_INIT | SS_NO_FIRE
+ flags = SS_NO_INIT
+ var/list/elements_by_type = list()
-/datum/controller/subsystem/dcs/Recover()
+/datum/controller/subsystem/processing/dcs/Recover()
comp_lookup = SSdcs.comp_lookup
+
+/datum/controller/subsystem/processing/dcs/proc/GetElement(datum/element/eletype, ...)
+ var/element_id = eletype
+
+ if(initial(eletype.element_flags) & ELEMENT_BESPOKE)
+ var/list/fullid = list("[eletype]")
+ for(var/i in initial(eletype.id_arg_index) to length(args))
+ var/argument = args[i]
+ if(istext(argument) || isnum(argument))
+ fullid += "[argument]"
+ else
+ fullid += "[REF(argument)]"
+ element_id = fullid.Join("&")
+
+ . = elements_by_type[element_id]
+ if(.)
+ return
+ if(!ispath(eletype, /datum/element))
+ CRASH("Attempted to instantiate [eletype] as a /datum/element")
+ . = elements_by_type[element_id] = new eletype
\ No newline at end of file
diff --git a/code/controllers/subsystem/garbage.dm b/code/controllers/subsystem/garbage.dm
index eec9f63a12..f8ca1e7eae 100644
--- a/code/controllers/subsystem/garbage.dm
+++ b/code/controllers/subsystem/garbage.dm
@@ -98,7 +98,7 @@ SUBSYSTEM_DEF(garbage)
state = SS_RUNNING
break
-
+
/datum/controller/subsystem/garbage/proc/HandleQueue(level = GC_QUEUE_CHECK)
@@ -266,8 +266,8 @@ SUBSYSTEM_DEF(garbage)
D.gc_destroyed = GC_CURRENTLY_BEING_QDELETED
var/start_time = world.time
var/start_tick = world.tick_usage
+ SEND_SIGNAL(D, COMSIG_PARENT_QDELETING, force) // Let the (remaining) components know about the result of Destroy
var/hint = D.Destroy(arglist(args.Copy(2))) // Let our friend know they're about to get fucked up.
- SEND_SIGNAL(D, COMSIG_PARENT_QDELETED, force, hint) // Let the (remaining) components know about the result of Destroy
if(world.time != start_time)
I.slept_destroy++
else
diff --git a/code/controllers/subsystem/persistence.dm b/code/controllers/subsystem/persistence.dm
index c3db8552c6..8329493818 100644
--- a/code/controllers/subsystem/persistence.dm
+++ b/code/controllers/subsystem/persistence.dm
@@ -12,6 +12,7 @@ SUBSYSTEM_DEF(persistence)
var/list/obj/structure/chisel_message/chisel_messages = list()
var/list/saved_messages = list()
var/list/saved_modes = list(1,2,3)
+ var/list/saved_dynamic_rules = list(list(),list(),list())
var/list/saved_threat_levels = list(1,1,1)
var/list/saved_maps
var/list/saved_trophies = list()
@@ -227,7 +228,10 @@ SUBSYSTEM_DEF(persistence)
CollectSecretSatchels()
CollectTrophies()
CollectRoundtype()
- CollectThreatLevel()
+ if(istype(SSticker.mode, /datum/game_mode/dynamic))
+ var/datum/game_mode/dynamic/mode = SSticker.mode
+ CollectThreatLevel(mode)
+ CollectRulesets(mode)
RecordMaps()
SavePhotoPersistence() //THIS IS PERSISTENCE, NOT THE LOGGING PORTION.
if(CONFIG_GET(flag/use_antag_rep))
@@ -384,17 +388,27 @@ SUBSYSTEM_DEF(persistence)
fdel(json_file)
WRITE_FILE(json_file, json_encode(file_data))
-/datum/controller/subsystem/persistence/proc/CollectThreatLevel()
- if(istype(SSticker.mode, /datum/game_mode/dynamic))
- var/datum/game_mode/dynamic/mode = SSticker.mode
- saved_threat_levels[3] = saved_threat_levels[2]
- saved_threat_levels[2] = saved_threat_levels [1]
- saved_threat_levels[1] = mode.threat_level
- var/json_file = file("data/RecentThreatLevels.json")
- var/list/file_data = list()
- file_data["data"] = saved_threat_levels
- fdel(json_file)
- WRITE_FILE(json_file, json_encode(file_data))
+/datum/controller/subsystem/persistence/proc/CollectThreatLevel(var/datum/game_mode/dynamic/mode)
+ saved_threat_levels[3] = saved_threat_levels[2]
+ saved_threat_levels[2] = saved_threat_levels [1]
+ saved_threat_levels[1] = mode.threat_level
+ var/json_file = file("data/RecentThreatLevels.json")
+ var/list/file_data = list()
+ file_data["data"] = saved_threat_levels
+ fdel(json_file)
+ WRITE_FILE(json_file, json_encode(file_data))
+
+/datum/controller/subsystem/persistence/proc/CollectRulesets(var/datum/game_mode/dynamic/mode)
+ saved_dynamic_rules[3] = saved_dynamic_rules[2]
+ saved_dynamic_rules[2] = saved_dynamic_rules[1]
+ saved_dynamic_rules[1] = list()
+ for(var/datum/dynamic_ruleset/ruleset in mode.executed_rules)
+ saved_dynamic_rules[1] += ruleset.config_tag
+ var/json_file = file("data/RecentRulesets.json")
+ var/list/file_data = list()
+ file_data["data"] = saved_dynamic_rules
+ fdel(json_file)
+ WRITE_FILE(json_file, json_encode(file_data))
/datum/controller/subsystem/persistence/proc/RecordMaps()
saved_maps = saved_maps?.len ? list("[SSmapping.config.map_name]") | saved_maps : list("[SSmapping.config.map_name]")
diff --git a/code/controllers/subsystem/processing/quirks.dm b/code/controllers/subsystem/processing/quirks.dm
index 4af54b8c70..0b9284a144 100644
--- a/code/controllers/subsystem/processing/quirks.dm
+++ b/code/controllers/subsystem/processing/quirks.dm
@@ -12,27 +12,40 @@ PROCESSING_SUBSYSTEM_DEF(quirks)
var/list/quirk_names_by_path = list()
var/list/quirk_points = list() //Assoc. list of quirk names and their "point cost"; positive numbers are good traits, and negative ones are bad
var/list/quirk_objects = list() //A list of all quirk objects in the game, since some may process
+ var/list/quirk_blacklist = list() //A list a list of quirks that can not be used with each other. Format: list(quirk1,quirk2),list(quirk3,quirk4)
/datum/controller/subsystem/processing/quirks/Initialize(timeofday)
if(!quirks.len)
SetupQuirks()
+ quirk_blacklist = list(list("Blind","Nearsighted"),list("Jolly","Depression","Apathetic"),list("Ageusia","Deviant Tastes"),list("Ananas Affinity","Ananas Aversion"))
return ..()
/datum/controller/subsystem/processing/quirks/proc/SetupQuirks()
- for(var/V in subtypesof(/datum/quirk))
+// Sort by Positive, Negative, Neutral; and then by name
+ var/list/quirk_list = sortList(subtypesof(/datum/quirk), /proc/cmp_quirk_asc)
+
+ for(var/V in quirk_list)
var/datum/quirk/T = V
quirks[initial(T.name)] = T
quirk_points[initial(T.name)] = initial(T.value)
quirk_names_by_path[T] = initial(T.name)
/datum/controller/subsystem/processing/quirks/proc/AssignQuirks(mob/living/user, client/cli, spawn_effects, roundstart = FALSE, datum/job/job, silent = FALSE, mob/to_chat_target)
- GenerateQuirks(cli)
- var/list/quirks = cli.prefs.character_quirks.Copy()
+ var/badquirk = FALSE
+ var/list/my_quirks = cli.prefs.all_quirks.Copy()
var/list/cut
- if(job && job.blacklisted_quirks)
- cut = filter_quirks(quirks, job)
- for(var/V in quirks)
- user.add_quirk(V, spawn_effects)
+ if(job?.blacklisted_quirks)
+ cut = filter_quirks(my_quirks, job)
+ for(var/V in my_quirks)
+ var/datum/quirk/Q = quirks[V]
+ if(Q)
+ user.add_quirk(Q, spawn_effects)
+ else
+ stack_trace("Invalid quirk \"[V]\" in client [cli.ckey] preferences")
+ cli.prefs.all_quirks -= V
+ badquirk = TRUE
+ if(badquirk)
+ cli.prefs.save_character()
if(!silent && LAZYLEN(cut))
to_chat(to_chat_target || user, "All of your non-neutral character quirks have been cut due to these quirks conflicting with your job assignment: [english_list(cut)].")
@@ -50,28 +63,28 @@ PROCESSING_SUBSYSTEM_DEF(quirks)
for(var/i in quirk_names)
. += quirk_points_by_name(i)
-/datum/controller/subsystem/processing/quirks/proc/filter_quirks(list/quirks, datum/job/job)
+/datum/controller/subsystem/processing/quirks/proc/filter_quirks(list/our_quirks, datum/job/job)
var/list/cut = list()
var/list/banned_names = list()
for(var/i in job.blacklisted_quirks)
var/name = quirk_name_by_path(i)
if(name)
banned_names += name
- var/list/blacklisted = quirks & banned_names
+ var/list/blacklisted = our_quirks & banned_names
if(length(blacklisted))
for(var/i in blacklisted)
- quirks -= i
+ our_quirks -= i
cut += i
/* //Code to automatically reduce positive quirks until balance is even.
- var/points_used = total_points(quirks)
+ var/points_used = total_points(our_quirks)
if(points_used > 0)
//they owe us points, let's collect.
- for(var/i in quirks)
+ for(var/i in our_quirks)
var/points = quirk_points_by_name(i)
if(points > 0)
cut += i
- quirks -= i
+ our_quirks -= i
points_used -= points
if(points_used <= 0)
break
@@ -79,14 +92,9 @@ PROCESSING_SUBSYSTEM_DEF(quirks)
//Nah, let's null all non-neutrals out.
if(cut.len)
- for(var/i in quirks)
+ for(var/i in our_quirks)
if(quirk_points_by_name(i) != 0)
//cut += i -- Commented out: Only show the ones that triggered the quirk purge.
- quirks -= i
+ our_quirks -= i
return cut
-
-/datum/controller/subsystem/processing/quirks/proc/GenerateQuirks(client/user)
- if(user.prefs.character_quirks.len)
- return
- user.prefs.character_quirks = user.prefs.all_quirks
diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm
index 6f619fef0b..890725fbb1 100755
--- a/code/controllers/subsystem/ticker.dm
+++ b/code/controllers/subsystem/ticker.dm
@@ -384,8 +384,8 @@ SUBSYSTEM_DEF(ticker)
captainless=0
if(player.mind.assigned_role != player.mind.special_role)
SSjob.EquipRank(N, player.mind.assigned_role, 0)
- if(CONFIG_GET(flag/roundstart_traits) && ishuman(N.new_character))
- SSquirks.AssignQuirks(N.new_character, N.client, TRUE, TRUE, SSjob.GetJob(player.mind.assigned_role), FALSE, N)
+ if(CONFIG_GET(flag/roundstart_traits) && ishuman(N.new_character))
+ SSquirks.AssignQuirks(N.new_character, N.client, TRUE, TRUE, SSjob.GetJob(player.mind.assigned_role), FALSE, N)
CHECK_TICK
if(captainless)
for(var/mob/dead/new_player/N in GLOB.player_list)
diff --git a/code/controllers/subsystem/traumas.dm b/code/controllers/subsystem/traumas.dm
index 33798d74f7..1ad4a15ee7 100644
--- a/code/controllers/subsystem/traumas.dm
+++ b/code/controllers/subsystem/traumas.dm
@@ -87,13 +87,13 @@ SUBSYSTEM_DEF(traumas)
"skeletons" = typecacheof(list(/obj/item/organ/tongue/bone, /obj/item/clothing/suit/armor/bone, /obj/item/stack/sheet/bone,
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/skeleton,
/obj/effect/decal/remains/human)),
- "conspiracies" = typecacheof(list(/obj/item/clothing/under/rank/captain, /obj/item/clothing/under/rank/head_of_security,
+ "conspiracies" = typecacheof(list(/obj/item/clothing/under/rank/captain, /obj/item/clothing/under/rank/head_of_security,
/obj/item/clothing/under/rank/chief_engineer, /obj/item/clothing/under/rank/chief_medical_officer,
/obj/item/clothing/under/rank/head_of_personnel, /obj/item/clothing/under/rank/research_director,
/obj/item/clothing/under/rank/head_of_security/grey, /obj/item/clothing/under/rank/head_of_security/alt,
/obj/item/clothing/under/rank/research_director/alt, /obj/item/clothing/under/rank/research_director/turtleneck,
/obj/item/clothing/under/captainparade, /obj/item/clothing/under/hosparademale, /obj/item/clothing/under/hosparadefem,
- /obj/item/clothing/head/helmet/abductor, /obj/item/clothing/suit/armor/abductor/vest, /obj/item/abductor_baton,
+ /obj/item/clothing/head/helmet/abductor, /obj/item/clothing/suit/armor/abductor/vest, /obj/item/abductor/baton,
/obj/item/storage/belt/military/abductor, /obj/item/gun/energy/alien, /obj/item/abductor/silencer,
/obj/item/abductor/gizmo, /obj/item/clothing/under/rank/centcom_officer,
/obj/item/clothing/suit/space/hardsuit/ert, /obj/item/clothing/suit/space/hardsuit/ert/sec,
@@ -136,7 +136,7 @@ SUBSYSTEM_DEF(traumas)
"aliens" = typecacheof(list(/obj/item/clothing/mask/facehugger, /obj/item/organ/body_egg/alien_embryo,
/obj/structure/alien, /obj/item/toy/toy_xeno,
/obj/item/clothing/suit/armor/abductor, /obj/item/abductor, /obj/item/gun/energy/alien,
- /obj/item/abductor_baton, /obj/item/radio/headset/abductor, /obj/item/scalpel/alien, /obj/item/hemostat/alien,
+ /obj/item/abductor/baton, /obj/item/radio/headset/abductor, /obj/item/scalpel/alien, /obj/item/hemostat/alien,
/obj/item/retractor/alien, /obj/item/circular_saw/alien, /obj/item/surgicaldrill/alien, /obj/item/cautery/alien,
/obj/item/clothing/head/helmet/abductor, /obj/structure/bed/abductor, /obj/structure/table_frame/abductor,
/obj/structure/table/abductor, /obj/structure/table/optable/abductor, /obj/structure/closet/abductor, /obj/item/organ/heart/gland,
diff --git a/code/datums/brain_damage/hypnosis.dm b/code/datums/brain_damage/hypnosis.dm
index f937c19658..37aee6df7e 100644
--- a/code/datums/brain_damage/hypnosis.dm
+++ b/code/datums/brain_damage/hypnosis.dm
@@ -68,4 +68,4 @@
new /datum/hallucination/chat(owner, TRUE, FALSE, "[hypnotic_phrase]")
/datum/brain_trauma/hypnosis/handle_hearing(datum/source, list/hearing_args)
- hearing_args[HEARING_MESSAGE] = target_phrase.Replace(hearing_args[HEARING_MESSAGE], "$1")
+ hearing_args[HEARING_RAW_MESSAGE] = target_phrase.Replace(hearing_args[HEARING_RAW_MESSAGE], "$1")
diff --git a/code/datums/brain_damage/imaginary_friend.dm b/code/datums/brain_damage/imaginary_friend.dm
index 8337a8e4d5..9005a788b7 100644
--- a/code/datums/brain_damage/imaginary_friend.dm
+++ b/code/datums/brain_damage/imaginary_friend.dm
@@ -149,8 +149,8 @@
friend_talk(message)
-/mob/camera/imaginary_friend/Hear(message, atom/movable/speaker, datum/language/message_language, raw_message, radio_freq, list/spans, message_mode)
- to_chat(src, compose_message(speaker, message_language, raw_message, radio_freq, spans, message_mode))
+/mob/camera/imaginary_friend/Hear(message, atom/movable/speaker, datum/language/message_language, raw_message, radio_freq, list/spans, message_mode, atom/movable/source)
+ to_chat(src, compose_message(speaker, message_language, raw_message, radio_freq, spans, message_mode, FALSE, source))
/mob/camera/imaginary_friend/proc/friend_talk(message)
message = capitalize(trim(copytext(sanitize(message), 1, MAX_MESSAGE_LEN)))
diff --git a/code/datums/brain_damage/mild.dm b/code/datums/brain_damage/mild.dm
index 012f771a29..235417d62c 100644
--- a/code/datums/brain_damage/mild.dm
+++ b/code/datums/brain_damage/mild.dm
@@ -241,7 +241,7 @@
if(prob(25))
var/deja_vu = pick_n_take(hear_dejavu)
var/static/regex/quoted_spoken_message = regex("\".+\"", "gi")
- hearing_args[HEARING_MESSAGE] = quoted_spoken_message.Replace(hearing_args[HEARING_MESSAGE], "\"[deja_vu]\"") //Quotes included to avoid cases where someone says part of their name
+ hearing_args[HEARING_RAW_MESSAGE] = quoted_spoken_message.Replace(hearing_args[HEARING_RAW_MESSAGE], "\"[deja_vu]\"") //Quotes included to avoid cases where someone says part of their name
return
if(hear_dejavu.len >= 15)
if(prob(50))
diff --git a/code/datums/brain_damage/phobia.dm b/code/datums/brain_damage/phobia.dm
index 034f2baaaf..80a1bd2470 100644
--- a/code/datums/brain_damage/phobia.dm
+++ b/code/datums/brain_damage/phobia.dm
@@ -88,7 +88,7 @@
if(findtext(hearing_args[HEARING_RAW_MESSAGE], reg))
addtimer(CALLBACK(src, .proc/freak_out, null, word), 10) //to react AFTER the chat message
- hearing_args[HEARING_MESSAGE] = reg.Replace(hearing_args[HEARING_MESSAGE], "$1")
+ hearing_args[HEARING_RAW_MESSAGE] = reg.Replace(hearing_args[HEARING_RAW_MESSAGE], "$1")
break
/datum/brain_trauma/mild/phobia/handle_speech(datum/source, list/speech_args)
diff --git a/code/datums/brain_damage/split_personality.dm b/code/datums/brain_damage/split_personality.dm
index dfe63ce141..a1284319f1 100644
--- a/code/datums/brain_damage/split_personality.dm
+++ b/code/datums/brain_damage/split_personality.dm
@@ -198,9 +198,9 @@
/datum/brain_trauma/severe/split_personality/brainwashing/handle_hearing(datum/source, list/hearing_args)
if(HAS_TRAIT(owner, TRAIT_DEAF) || owner == hearing_args[HEARING_SPEAKER])
return
- var/message = hearing_args[HEARING_MESSAGE]
+ var/message = hearing_args[HEARING_RAW_MESSAGE]
if(findtext(message, codeword))
- hearing_args[HEARING_MESSAGE] = replacetext(message, codeword, "[codeword]")
+ hearing_args[HEARING_RAW_MESSAGE] = replacetext(message, codeword, "[codeword]")
addtimer(CALLBACK(src, /datum/brain_trauma/severe/split_personality.proc/switch_personalities), 10)
/datum/brain_trauma/severe/split_personality/brainwashing/handle_speech(datum/source, list/speech_args)
diff --git a/code/datums/components/_component.dm b/code/datums/components/_component.dm
index fbe94cbb9e..72b9681f91 100644
--- a/code/datums/components/_component.dm
+++ b/code/datums/components/_component.dm
@@ -53,7 +53,7 @@
// If you want/expect to be moving the component around between parents, use this to register on the parent for signals
/datum/component/proc/RegisterWithParent()
- return
+ SEND_SIGNAL(src, COMSIG_COMPONENT_REGISTER_PARENT) //CITADEL EDIT
/datum/component/proc/Initialize(...)
return
@@ -85,7 +85,7 @@
UnregisterFromParent()
/datum/component/proc/UnregisterFromParent()
- return
+ SEND_SIGNAL(src, COMSIG_COMPONENT_UNREGISTER_PARENT) //CITADEL EDIT
/datum/proc/RegisterSignal(datum/target, sig_type_or_types, proctype, override = FALSE)
if(QDELETED(src) || QDELETED(target))
@@ -184,6 +184,7 @@
// The type arg is casted so initial works, you shouldn't be passing a real instance into this
/datum/proc/GetComponent(datum/component/c_type)
+ RETURN_TYPE(c_type)
if(initial(c_type.dupe_mode) == COMPONENT_DUPE_ALLOWED)
stack_trace("GetComponent was called to get a component of which multiple copies could be on an object. This can easily break and should be changed. Type: \[[c_type]\]")
var/list/dc = datum_components
diff --git a/code/datums/components/bane.dm b/code/datums/components/bane.dm
index 84f8010270..bdfcfed517 100644
--- a/code/datums/components/bane.dm
+++ b/code/datums/components/bane.dm
@@ -19,12 +19,14 @@
src.damage_multiplier = damage_multiplier
/datum/component/bane/RegisterWithParent()
+ . = ..()
if(speciestype)
RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, .proc/speciesCheck)
else
RegisterSignal(parent, COMSIG_ITEM_AFTERATTACK, .proc/mobCheck)
/datum/component/bane/UnregisterFromParent()
+ . = ..()
UnregisterSignal(parent, COMSIG_ITEM_AFTERATTACK)
/datum/component/bane/proc/speciesCheck(obj/item/source, atom/target, mob/user, proximity_flag, click_parameters)
diff --git a/code/datums/components/bouncy.dm b/code/datums/components/bouncy.dm
index f6a2a89195..c7ca85455b 100644
--- a/code/datums/components/bouncy.dm
+++ b/code/datums/components/bouncy.dm
@@ -21,9 +21,11 @@
RegisterSignal(parent, bounce, .proc/bounce_up)
/datum/component/bouncy/RegisterWithParent()
+ . = ..()
RegisterSignal(parent, bounce_signals, .proc/bounce_up)
/datum/component/bouncy/UnregisterFromParent()
+ . = ..()
UnregisterSignal(parent, bounce_signals)
/datum/component/bouncy/proc/bounce_up(datum/source)
diff --git a/code/datums/components/butchering.dm b/code/datums/components/butchering.dm
index 372fa8e283..d5af47ea1f 100644
--- a/code/datums/components/butchering.dm
+++ b/code/datums/components/butchering.dm
@@ -4,8 +4,9 @@
var/bonus_modifier = 0 //percentage increase to bonus item chance
var/butcher_sound = 'sound/weapons/slice.ogg' //sound played when butchering
var/butchering_enabled = TRUE
+ var/can_be_blunt = FALSE
-/datum/component/butchering/Initialize(_speed, _effectiveness, _bonus_modifier, _butcher_sound, disabled)
+/datum/component/butchering/Initialize(_speed, _effectiveness, _bonus_modifier, _butcher_sound, disabled, _can_be_blunt)
if(_speed)
speed = _speed
if(_effectiveness)
@@ -16,6 +17,56 @@
butcher_sound = _butcher_sound
if(disabled)
butchering_enabled = FALSE
+ if(_can_be_blunt)
+ can_be_blunt = _can_be_blunt
+ if(isitem(parent))
+ RegisterSignal(parent, COMSIG_ITEM_ATTACK, .proc/onItemAttack)
+
+/datum/component/butchering/proc/onItemAttack(obj/item/source, mob/living/M, mob/living/user)
+ if(user.a_intent != INTENT_HARM)
+ return
+ if(M.stat == DEAD && (M.butcher_results || M.guaranteed_butcher_results)) //can we butcher it?
+ if(butchering_enabled && (can_be_blunt || source.get_sharpness()))
+ INVOKE_ASYNC(src, .proc/startButcher, source, M, user)
+ return COMPONENT_ITEM_NO_ATTACK
+
+ if(ishuman(M) && source.force && source.get_sharpness())
+ var/mob/living/carbon/human/H = M
+ if((H.health <= H.crit_threshold || (user.pulling == H && user.grab_state >= GRAB_NECK) || H.IsSleeping()) && user.zone_selected == BODY_ZONE_HEAD) // Only sleeping, neck grabbed, or crit, can be sliced.
+ if(H.has_status_effect(/datum/status_effect/neck_slice))
+ user.show_message("[H]'s neck has already been already cut, you can't make the bleeding any worse!", 1, \
+ "Their neck has already been already cut, you can't make the bleeding any worse!")
+ return COMPONENT_ITEM_NO_ATTACK
+ INVOKE_ASYNC(src, .proc/startNeckSlice, source, H, user)
+ return COMPONENT_ITEM_NO_ATTACK
+
+/datum/component/butchering/proc/startButcher(obj/item/source, mob/living/M, mob/living/user)
+ to_chat(user, "You begin to butcher [M]...")
+ playsound(M.loc, butcher_sound, 50, TRUE, -1)
+ if(do_mob(user, M, speed) && M.Adjacent(source))
+ Butcher(user, M)
+
+/datum/component/butchering/proc/startNeckSlice(obj/item/source, mob/living/carbon/human/H, mob/living/user)
+ user.visible_message("[user] is slitting [H]'s throat!", \
+ "You start slicing [H]'s throat!", \
+ "You hear a cutting noise!", ignored_mobs = H)
+ H.show_message("Your throat is being slit by [user]!", 1, \
+ "Something is cutting into your neck!", NONE)
+ log_combat(user, H, "starts slicing the throat of")
+
+ playsound(H.loc, butcher_sound, 50, TRUE, -1)
+ if(do_mob(user, H, CLAMP(500 / source.force, 30, 100)) && H.Adjacent(source))
+ if(H.has_status_effect(/datum/status_effect/neck_slice))
+ user.show_message("[H]'s neck has already been already cut, you can't make the bleeding any worse!", 1, \
+ "Their neck has already been already cut, you can't make the bleeding any worse!")
+ return
+
+ H.visible_message("[user] slits [H]'s throat!", \
+ "[user] slits your throat...")
+ log_combat(user, H, "finishes slicing the throat of")
+ H.apply_damage(source.force, BRUTE, BODY_ZONE_HEAD)
+ H.bleed_rate = CLAMP(H.bleed_rate + 20, 0, 30)
+ H.apply_status_effect(/datum/status_effect/neck_slice)
/datum/component/butchering/proc/Butcher(mob/living/butcher, mob/living/meat)
var/turf/T = meat.drop_location()
@@ -50,3 +101,23 @@
/datum/component/butchering/proc/ButcherEffects(mob/living/meat) //extra effects called on butchering, override this via subtypes
return
+
+///Special snowflake component only used for the recycler.
+/datum/component/butchering/recycler
+
+/datum/component/butchering/recycler/Initialize(_speed, _effectiveness, _bonus_modifier, _butcher_sound, disabled, _can_be_blunt)
+ if(!istype(parent, /obj/machinery/recycler)) //EWWW
+ return COMPONENT_INCOMPATIBLE
+ . = ..()
+ if(. == COMPONENT_INCOMPATIBLE)
+ return
+ RegisterSignal(parent, COMSIG_MOVABLE_CROSSED, .proc/onCrossed)
+
+/datum/component/butchering/recycler/proc/onCrossed(datum/source, mob/living/L)
+ if(!istype(L))
+ return
+ var/obj/machinery/recycler/eater = parent
+ if(eater.safety_mode || (eater.stat & (BROKEN|NOPOWER))) //I'm so sorry.
+ return
+ if(L.stat == DEAD && (L.butcher_results || L.guaranteed_butcher_results))
+ Butcher(parent, L)
\ No newline at end of file
diff --git a/code/datums/components/decal.dm b/code/datums/components/decal.dm
index 641dbdb1cf..60317797a7 100644
--- a/code/datums/components/decal.dm
+++ b/code/datums/components/decal.dm
@@ -17,6 +17,7 @@
apply()
/datum/component/decal/RegisterWithParent()
+ . = ..()
if(first_dir)
RegisterSignal(parent, COMSIG_ATOM_DIR_CHANGE, .proc/rotate_react)
if(cleanable)
@@ -25,6 +26,7 @@
RegisterSignal(parent, COMSIG_PARENT_EXAMINE, .proc/examine)
/datum/component/decal/UnregisterFromParent()
+ . = ..()
UnregisterSignal(parent, list(COMSIG_ATOM_DIR_CHANGE, COMSIG_COMPONENT_CLEAN_ACT, COMSIG_PARENT_EXAMINE))
/datum/component/decal/Destroy()
diff --git a/code/datums/components/earhealing.dm b/code/datums/components/earhealing.dm
deleted file mode 100644
index bd3d57480d..0000000000
--- a/code/datums/components/earhealing.dm
+++ /dev/null
@@ -1,30 +0,0 @@
-// An item worn in the ear slot with this component will heal your ears each
-// Life() tick, even if normally your ears would be too damaged to heal.
-
-/datum/component/earhealing
- var/mob/living/carbon/wearer
-
-/datum/component/earhealing/Initialize()
- if(!isitem(parent))
- return COMPONENT_INCOMPATIBLE
- RegisterSignal(parent, list(COMSIG_ITEM_EQUIPPED, COMSIG_ITEM_DROPPED), .proc/equippedChanged)
-
-/datum/component/earhealing/proc/equippedChanged(datum/source, mob/living/carbon/user, slot)
- if (slot == SLOT_EARS && istype(user))
- if (!wearer)
- START_PROCESSING(SSobj, src)
- wearer = user
- else
- if (wearer)
- STOP_PROCESSING(SSobj, src)
- wearer = null
-
-/datum/component/earhealing/process()
- if (!wearer)
- STOP_PROCESSING(SSobj, src)
- return
- if(!HAS_TRAIT(wearer, TRAIT_DEAF))
- var/obj/item/organ/ears/ears = wearer.getorganslot(ORGAN_SLOT_EARS)
- if (ears)
- ears.deaf = max(ears.deaf - 1, (ears.damage < ears.maxHealth ? 0 : 1)) // Do not clear deafness if our ears are too damaged
- ears.damage = max(ears.damage - 0.1, 0)
diff --git a/code/datums/components/fantasy/_fantasy.dm b/code/datums/components/fantasy/_fantasy.dm
index 86e016784a..9e8493b6f4 100644
--- a/code/datums/components/fantasy/_fantasy.dm
+++ b/code/datums/components/fantasy/_fantasy.dm
@@ -30,11 +30,13 @@
return ..()
/datum/component/fantasy/RegisterWithParent()
+ . = ..()
var/obj/item/master = parent
originalName = master.name
modify()
/datum/component/fantasy/UnregisterFromParent()
+ . = ..()
unmodify()
/datum/component/fantasy/InheritComponent(datum/component/fantasy/newComp, original, list/arguments)
diff --git a/code/datums/components/igniter.dm b/code/datums/components/igniter.dm
index b40383e828..13944b1200 100644
--- a/code/datums/components/igniter.dm
+++ b/code/datums/components/igniter.dm
@@ -9,6 +9,7 @@
src.fire_stacks = fire_stacks
/datum/component/igniter/RegisterWithParent()
+ . = ..()
if(ismachinery(parent) || isstructure(parent) || isgun(parent)) // turrets, etc
RegisterSignal(parent, COMSIG_PROJECTILE_ON_HIT, .proc/projectile_hit)
else if(isitem(parent))
@@ -17,6 +18,7 @@
RegisterSignal(parent, COMSIG_HOSTILE_ATTACKINGTARGET, .proc/hostile_attackingtarget)
/datum/component/igniter/UnregisterFromParent()
+ . = ..()
UnregisterSignal(parent, list(COMSIG_ITEM_AFTERATTACK, COMSIG_HOSTILE_ATTACKINGTARGET, COMSIG_PROJECTILE_ON_HIT))
/datum/component/igniter/proc/item_afterattack(obj/item/source, atom/target, mob/user, proximity_flag, click_parameters)
diff --git a/code/datums/components/knockback.dm b/code/datums/components/knockback.dm
index b4fcaa2dd8..988a0e575e 100644
--- a/code/datums/components/knockback.dm
+++ b/code/datums/components/knockback.dm
@@ -10,6 +10,7 @@
src.throw_anchored = throw_anchored
/datum/component/knockback/RegisterWithParent()
+ . = ..()
if(ismachinery(parent) || isstructure(parent) || isgun(parent)) // turrets, etc
RegisterSignal(parent, COMSIG_PROJECTILE_ON_HIT, .proc/projectile_hit)
else if(isitem(parent))
@@ -18,6 +19,7 @@
RegisterSignal(parent, COMSIG_HOSTILE_ATTACKINGTARGET, .proc/hostile_attackingtarget)
/datum/component/knockback/UnregisterFromParent()
+ . = ..()
UnregisterSignal(parent, list(COMSIG_ITEM_AFTERATTACK, COMSIG_HOSTILE_ATTACKINGTARGET, COMSIG_PROJECTILE_ON_HIT))
/datum/component/knockback/proc/item_afterattack(obj/item/source, atom/target, mob/user, proximity_flag, click_parameters)
diff --git a/code/datums/components/lifesteal.dm b/code/datums/components/lifesteal.dm
index c7a78e10a3..9d62d32866 100644
--- a/code/datums/components/lifesteal.dm
+++ b/code/datums/components/lifesteal.dm
@@ -10,6 +10,7 @@
src.flat_heal = flat_heal
/datum/component/lifesteal/RegisterWithParent()
+ . = ..()
if(isgun(parent))
RegisterSignal(parent, COMSIG_PROJECTILE_ON_HIT, .proc/projectile_hit)
else if(isitem(parent))
@@ -18,6 +19,7 @@
RegisterSignal(parent, COMSIG_HOSTILE_ATTACKINGTARGET, .proc/hostile_attackingtarget)
/datum/component/lifesteal/UnregisterFromParent()
+ . = ..()
UnregisterSignal(parent, list(COMSIG_ITEM_AFTERATTACK, COMSIG_HOSTILE_ATTACKINGTARGET, COMSIG_PROJECTILE_ON_HIT))
/datum/component/lifesteal/proc/item_afterattack(obj/item/source, atom/target, mob/user, proximity_flag, click_parameters)
diff --git a/code/datums/components/mood.dm b/code/datums/components/mood.dm
index b46919a6c6..2ecd77546d 100644
--- a/code/datums/components/mood.dm
+++ b/code/datums/components/mood.dm
@@ -150,15 +150,6 @@
if(9)
setSanity(sanity+0.4, maximum=SANITY_GREAT)
- if(HAS_TRAIT(owner, TRAIT_DEPRESSION))
- if(prob(0.05))
- add_event(null, "depression", /datum/mood_event/depression)
- clear_event(null, "jolly")
- if(HAS_TRAIT(owner, TRAIT_JOLLY))
- if(prob(0.05))
- add_event(null, "jolly", /datum/mood_event/jolly)
- clear_event(null, "depression")
-
HandleNutrition(owner)
/datum/component/mood/proc/setSanity(amount, minimum=SANITY_INSANE, maximum=SANITY_NEUTRAL)//I'm sure bunging this in here will have no negative repercussions.
@@ -248,7 +239,7 @@
var/datum/hud/hud = owner.hud_used
screen_obj = new
hud.infodisplay += screen_obj
- RegisterSignal(hud, COMSIG_PARENT_QDELETED, .proc/unmodify_hud)
+ RegisterSignal(hud, COMSIG_PARENT_QDELETING, .proc/unmodify_hud)
RegisterSignal(screen_obj, COMSIG_CLICK, .proc/hud_click)
/datum/component/mood/proc/unmodify_hud(datum/source)
diff --git a/code/datums/components/nanites.dm b/code/datums/components/nanites.dm
index 362961a24f..0ef13b514b 100644
--- a/code/datums/components/nanites.dm
+++ b/code/datums/components/nanites.dm
@@ -34,6 +34,7 @@
cloud_sync()
/datum/component/nanites/RegisterWithParent()
+ . = ..()
RegisterSignal(parent, COMSIG_HAS_NANITES, .proc/confirm_nanites)
RegisterSignal(parent, COMSIG_NANITE_UI_DATA, .proc/nanite_ui_data)
RegisterSignal(parent, COMSIG_NANITE_GET_PROGRAMS, .proc/get_programs)
@@ -57,6 +58,7 @@
RegisterSignal(parent, COMSIG_NANITE_SIGNAL, .proc/receive_signal)
/datum/component/nanites/UnregisterFromParent()
+ . = ..()
UnregisterSignal(parent, list(COMSIG_HAS_NANITES,
COMSIG_NANITE_UI_DATA,
COMSIG_NANITE_GET_PROGRAMS,
diff --git a/code/datums/components/orbiter.dm b/code/datums/components/orbiter.dm
index efa0fd14d5..05174c196b 100644
--- a/code/datums/components/orbiter.dm
+++ b/code/datums/components/orbiter.dm
@@ -20,12 +20,14 @@
begin_orbit(orbiter, radius, clockwise, rotation_speed, rotation_segments, pre_rotation)
/datum/component/orbiter/RegisterWithParent()
+ . = ..()
var/atom/target = parent
while(ismovableatom(target))
RegisterSignal(target, COMSIG_MOVABLE_MOVED, .proc/move_react)
target = target.loc
/datum/component/orbiter/UnregisterFromParent()
+ . = ..()
var/atom/target = parent
while(ismovableatom(target))
UnregisterSignal(target, COMSIG_MOVABLE_MOVED)
diff --git a/code/datums/components/rotation.dm b/code/datums/components/rotation.dm
index 81ff2d517d..422d73520e 100644
--- a/code/datums/components/rotation.dm
+++ b/code/datums/components/rotation.dm
@@ -106,6 +106,7 @@
if(!can_be_rotated.Invoke(user, rotation) || !can_user_rotate.Invoke(user, rotation))
return
BaseRot(user, rotation)
+ return TRUE
/datum/component/simple_rotation/proc/WrenchRot(datum/source, obj/item/I, mob/living/user)
if(!can_be_rotated.Invoke(user,default_rotation_direction) || !can_user_rotate.Invoke(user,default_rotation_direction))
diff --git a/code/datums/components/shrapnel.dm b/code/datums/components/shrapnel.dm
index a911221f26..4d1fe21b95 100644
--- a/code/datums/components/shrapnel.dm
+++ b/code/datums/components/shrapnel.dm
@@ -13,10 +13,12 @@
src.override_projectile_range = override_projectile_range
/datum/component/shrapnel/RegisterWithParent()
+ . = ..()
if(ismachinery(parent) || isstructure(parent) || isgun(parent)) // turrets, etc
RegisterSignal(parent, COMSIG_PROJECTILE_ON_HIT, .proc/projectile_hit)
/datum/component/shrapnel/UnregisterFromParent()
+ . = ..()
UnregisterSignal(parent, list(COMSIG_PROJECTILE_ON_HIT))
/datum/component/shrapnel/proc/projectile_hit(atom/fired_from, atom/movable/firer, atom/target, Angle)
diff --git a/code/datums/components/shrink.dm b/code/datums/components/shrink.dm
new file mode 100644
index 0000000000..f070d9b22f
--- /dev/null
+++ b/code/datums/components/shrink.dm
@@ -0,0 +1,42 @@
+/datum/component/shrink
+ var/olddens
+ var/oldopac
+ dupe_mode = COMPONENT_DUPE_HIGHLANDER
+
+/datum/component/shrink/Initialize(shrink_time)
+ if(!isatom(parent))
+ return COMPONENT_INCOMPATIBLE
+ var/atom/parent_atom = parent
+ parent_atom.transform = parent_atom.transform.Scale(0.5,0.5)
+ olddens = parent_atom.density
+ oldopac = parent_atom.opacity
+ parent_atom.density = 0
+ parent_atom.opacity = 0
+ if(isliving(parent_atom))
+ var/mob/living/L = parent_atom
+ L.add_movespeed_modifier(MOVESPEED_ID_SHRINK_RAY, update=TRUE, priority=100, multiplicative_slowdown=4)
+ if(iscarbon(L))
+ var/mob/living/carbon/C = L
+ C.unequip_everything()
+ C.visible_message("[C]'s belongings fall off of [C.p_them()] as they shrink down!",
+ "Your belongings fall away as everything grows bigger!")
+ if(ishuman(C))
+ var/mob/living/carbon/human/H = C
+ H.physiology.damage_resistance -= 100//carbons take double damage while shrunk
+ parent_atom.visible_message("[parent_atom] shrinks down to a tiny size!",
+ "Everything grows bigger!")
+ QDEL_IN(src, shrink_time)
+
+
+/datum/component/shrink/Destroy()
+ var/atom/parent_atom = parent
+ parent_atom.transform = parent_atom.transform.Scale(2,2)
+ parent_atom.density = olddens
+ parent_atom.opacity = oldopac
+ if(isliving(parent_atom))
+ var/mob/living/L = parent_atom
+ L.remove_movespeed_modifier(MOVESPEED_ID_SHRINK_RAY)
+ if(ishuman(L))
+ var/mob/living/carbon/human/H = L
+ H.physiology.damage_resistance += 100
+ ..()
\ No newline at end of file
diff --git a/code/datums/components/sizzle.dm b/code/datums/components/sizzle.dm
new file mode 100644
index 0000000000..5e56dd15cb
--- /dev/null
+++ b/code/datums/components/sizzle.dm
@@ -0,0 +1,25 @@
+/datum/component/sizzle
+ var/mutable_appearance/sizzling
+ var/sizzlealpha = 0
+ dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS
+
+/datum/component/sizzle/Initialize()
+ if(!isatom(parent))
+ return COMPONENT_INCOMPATIBLE
+ setup_sizzle()
+
+/datum/component/sizzle/InheritComponent(datum/component/C, i_am_original)
+ var/atom/food = parent
+ sizzlealpha += 5
+ sizzling.alpha = sizzlealpha
+ food.cut_overlay(sizzling)
+ food.add_overlay(sizzling)
+
+/datum/component/sizzle/proc/setup_sizzle()
+ var/atom/food = parent
+ var/icon/grill_marks = icon(initial(food.icon), initial(food.icon_state)) //we only want to apply grill marks to the initial icon_state for each object
+ grill_marks.Blend("#fff", ICON_ADD) //fills the icon_state with white (except where it's transparent)
+ grill_marks.Blend(icon('icons/obj/kitchen.dmi', "grillmarks"), ICON_MULTIPLY) //adds grill marks and the remaining white areas become transparent
+ sizzling = new(grill_marks)
+ sizzling.alpha = sizzlealpha
+ food.add_overlay(sizzling)
\ No newline at end of file
diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm
index dd189137a5..76a9b2e6aa 100644
--- a/code/datums/components/storage/storage.dm
+++ b/code/datums/components/storage/storage.dm
@@ -57,7 +57,7 @@
var/screen_start_x = 4 //These two are where the storage starts being rendered, screen_loc wise.
var/screen_start_y = 2
//End
-
+
var/limited_random_access = FALSE //Quick if statement in accessible_items to determine if we care at all about what people can access at once.
var/limited_random_access_stack_position = 0 //If >0, can only access top items
var/limited_random_access_stack_bottom_up = FALSE //If TRUE, above becomes bottom items
@@ -647,9 +647,9 @@
if(M == viewing)
to_chat(usr, "You put [I] [insert_preposition]to [parent].")
else if(in_range(M, viewing)) //If someone is standing close enough, they can tell what it is...
- viewing.show_message("[M] puts [I] [insert_preposition]to [parent].", 1)
+ viewing.show_message("[M] puts [I] [insert_preposition]to [parent].", MSG_VISUAL)
else if(I && I.w_class >= 3) //Otherwise they can only see large or normal items from a distance...
- viewing.show_message("[M] puts [I] [insert_preposition]to [parent].", 1)
+ viewing.show_message("[M] puts [I] [insert_preposition]to [parent].", MSG_VISUAL)
/datum/component/storage/proc/update_icon()
if(isobj(parent))
@@ -762,7 +762,7 @@
if(!isliving(user) || !user.CanReach(parent))
return
if(check_locked(source, user, TRUE))
- return
+ return TRUE
var/atom/A = parent
if(!quickdraw)
@@ -770,19 +770,20 @@
user_show_to_mob(user)
if(rustle_sound)
playsound(A, "rustle", 50, 1, -5)
- return
+ return TRUE
- if(!user.incapacitated())
+ if(user.can_hold_items() && !user.incapacitated())
var/obj/item/I = locate() in real_location()
if(!I)
return
A.add_fingerprint(user)
remove_from_storage(I, get_turf(user))
if(!user.put_in_hands(I))
- to_chat(user, "You fumble for [I] and it falls on the floor.")
- return
+ user.visible_message("[user] fumbles with the [parent], letting [I] fall on the floor.", \
+ "You fumble with [parent], letting [I] fall on the floor.")
+ return TRUE
user.visible_message("[user] draws [I] from [parent]!", "You draw [I] from [parent].")
- return
+ return TRUE
/datum/component/storage/proc/action_trigger(datum/signal_source, datum/action/source)
gather_mode_switch(source.owner)
diff --git a/code/datums/components/summoning.dm b/code/datums/components/summoning.dm
index 552959603d..61718301b3 100644
--- a/code/datums/components/summoning.dm
+++ b/code/datums/components/summoning.dm
@@ -24,6 +24,7 @@
src.faction = faction
/datum/component/summoning/RegisterWithParent()
+ . = ..()
if(ismachinery(parent) || isstructure(parent) || isgun(parent)) // turrets, etc
RegisterSignal(parent, COMSIG_PROJECTILE_ON_HIT, .proc/projectile_hit)
else if(isitem(parent))
@@ -32,6 +33,7 @@
RegisterSignal(parent, COMSIG_HOSTILE_ATTACKINGTARGET, .proc/hostile_attackingtarget)
/datum/component/summoning/UnregisterFromParent()
+ . = ..()
UnregisterSignal(parent, list(COMSIG_ITEM_AFTERATTACK, COMSIG_HOSTILE_ATTACKINGTARGET, COMSIG_PROJECTILE_ON_HIT))
/datum/component/summoning/proc/item_afterattack(obj/item/source, atom/target, mob/user, proximity_flag, click_parameters)
diff --git a/code/datums/components/tactical.dm b/code/datums/components/tactical.dm
index 5917fc3009..ba028e2fd5 100644
--- a/code/datums/components/tactical.dm
+++ b/code/datums/components/tactical.dm
@@ -9,10 +9,12 @@
src.allowed_slot = allowed_slot
/datum/component/tactical/RegisterWithParent()
+ . = ..()
RegisterSignal(parent, COMSIG_ITEM_EQUIPPED, .proc/modify)
RegisterSignal(parent, COMSIG_ITEM_DROPPED, .proc/unmodify)
/datum/component/tactical/UnregisterFromParent()
+ . = ..()
UnregisterSignal(parent, list(COMSIG_ITEM_EQUIPPED, COMSIG_ITEM_DROPPED))
unmodify()
diff --git a/code/datums/components/virtual_reality.dm b/code/datums/components/virtual_reality.dm
index f8f0679e9b..2f0405af2e 100644
--- a/code/datums/components/virtual_reality.dm
+++ b/code/datums/components/virtual_reality.dm
@@ -1,128 +1,245 @@
+/**
+ * The virtual reality turned component.
+ * Originally created to overcome issues of mob polymorphing locking the player inside virtual reality
+ * and allow for a more "immersive" virtual reality in a virtual reality experience.
+ * It relies on comically complex order of logic, expect things to break if procs such as mind/transfer_to() are revamped.
+ * In short, a barebone not so hardcoded VR framework.
+ * If you plan to add more devices that make use of this component, remember to isolate their code outta here where possible.
+ */
/datum/component/virtual_reality
can_transfer = TRUE
- var/datum/mind/mastermind // where is my mind t. pixies
+ //the player's mind (not the parent's), should something happen to them or to their mob.
+ var/datum/mind/mastermind
+ //the current mob's mind, which we need to keep track for mind transfer.
var/datum/mind/current_mind
- var/obj/machinery/vr_sleeper/vr_sleeper
+ //the action datum used by the mob to quit the vr session.
var/datum/action/quit_vr/quit_action
+ //This one's name should be self explainatory, currently used for emags.
var/you_die_in_the_game_you_die_for_real = FALSE
- var/datum/component/virtual_reality/inception //The component works on a very fragile link betwixt mind, ckey and death.
+ //Used to allow people to play recursively playing vr while playing vr without many issues.
+ var/datum/component/virtual_reality/level_below
+ var/datum/component/virtual_reality/level_above
+ //Used to stop the component from executing certain functions that'd cause us some issues otherwise.
+ //FALSE if there is a connected player, otherwise TRUE.
+ var/session_paused = TRUE
+ //Used to stop unwarranted behaviour from happening in cases where the master mind transference is unsupported. Set on Initialize().
+ var/allow_mastermind_transfer = FALSE
-/datum/component/virtual_reality/Initialize(mob/M, obj/machinery/vr_sleeper/gaming_pod, yolo = FALSE, new_char = TRUE)
- if(!ismob(parent) || !istype(M))
+/datum/component/virtual_reality/Initialize(yolo = FALSE, _allow_mastermind_transfer = FALSE)
+ var/mob/M = parent
+ if(!istype(M) || !M.mind)
return COMPONENT_INCOMPATIBLE
- var/mob/vr_M = parent
- mastermind = M.mind
- RegisterSignal(M, list(COMSIG_MOB_DEATH, COMSIG_PARENT_QDELETED), .proc/game_over)
- RegisterSignal(M, COMSIG_MOB_KEY_CHANGE, .proc/switch_player)
- RegisterSignal(mastermind, COMSIG_MIND_TRANSFER, .proc/switch_player)
you_die_in_the_game_you_die_for_real = yolo
- quit_action = new()
- if(gaming_pod)
- vr_sleeper = gaming_pod
- RegisterSignal(vr_sleeper, COMSIG_ATOM_EMAG_ACT, .proc/you_only_live_once)
- RegisterSignal(vr_sleeper, COMSIG_MACHINE_EJECT_OCCUPANT, .proc/revert_to_reality)
- vr_M.ckey = M.ckey
- var/datum/component/virtual_reality/clusterfk = M.GetComponent(/datum/component/virtual_reality)
- if(clusterfk && !clusterfk.inception)
- clusterfk.inception = src
- SStgui.close_user_uis(M, src)
+ allow_mastermind_transfer = _allow_mastermind_transfer
+ quit_action = new
+
+/datum/component/virtual_reality/Destroy()
+ QDEL_NULL(quit_action)
+ if(level_above)
+ level_above.level_below = null
+ level_above = null
+ if(level_below)
+ level_below.level_above = null
+ level_below = null
+ return ..()
/datum/component/virtual_reality/RegisterWithParent()
+ . = ..()
var/mob/M = parent
current_mind = M.mind
+ if(!quit_action)
+ quit_action = new
quit_action.Grant(M)
- RegisterSignal(quit_action, COMSIG_ACTION_TRIGGER, .proc/revert_to_reality)
- RegisterSignal(M, list(COMSIG_MOB_DEATH, COMSIG_PARENT_QDELETED), .proc/game_over)
+ RegisterSignal(quit_action, COMSIG_ACTION_TRIGGER, .proc/action_trigger)
+ RegisterSignal(M, list(COMSIG_MOB_DEATH, COMSIG_PARENT_QDELETING), .proc/game_over)
RegisterSignal(M, COMSIG_MOB_GHOSTIZE, .proc/be_a_quitter)
- RegisterSignal(M, COMSIG_MOB_KEY_CHANGE, .proc/pass_me_the_remote)
- RegisterSignal(current_mind, COMSIG_MIND_TRANSFER, .proc/pass_me_the_remote)
- mastermind.current.audiovisual_redirect = M
- if(vr_sleeper)
- vr_sleeper.vr_mob = M
+ RegisterSignal(M, COMSIG_MOB_KEY_CHANGE, .proc/on_player_transfer)
+ RegisterSignal(current_mind, COMSIG_MIND_TRANSFER, .proc/on_player_transfer)
+ RegisterSignal(current_mind, COMSIG_PRE_MIND_TRANSFER, .proc/pre_player_transfer)
+ if(mastermind?.current)
+ mastermind.current.audiovisual_redirect = M
/datum/component/virtual_reality/UnregisterFromParent()
- quit_action.Remove(parent)
- UnregisterSignal(parent, list(COMSIG_MOB_DEATH, COMSIG_PARENT_QDELETED, COMSIG_MOB_KEY_CHANGE, COMSIG_MOB_GHOSTIZE))
- UnregisterSignal(current_mind, COMSIG_MIND_TRANSFER)
- UnregisterSignal(quit_action, COMSIG_ACTION_TRIGGER)
+ . = ..()
+ if(quit_action)
+ quit_action.Remove(parent)
+ UnregisterSignal(quit_action, COMSIG_ACTION_TRIGGER)
+ UnregisterSignal(parent, list(COMSIG_MOB_DEATH, COMSIG_PARENT_QDELETING, COMSIG_MOB_KEY_CHANGE, COMSIG_MOB_GHOSTIZE))
+ UnregisterSignal(current_mind, list(COMSIG_MIND_TRANSFER, COMSIG_PRE_MIND_TRANSFER))
current_mind = null
- mastermind.current.audiovisual_redirect = null
+ if(mastermind?.current)
+ mastermind.current.audiovisual_redirect = null
-/datum/component/virtual_reality/proc/switch_player(datum/source, mob/new_mob, mob/old_mob)
- if(vr_sleeper || !new_mob.mind)
- // Machineries currently don't deal up with the occupant being polymorphed et similar... Or did something fuck up?
- revert_to_reality()
- return
- old_mob.audiovisual_redirect = null
- new_mob.audiovisual_redirect = parent
-
-/datum/component/virtual_reality/proc/action_trigger(datum/signal_source, datum/action/source)
- if(source != quit_action)
- return COMPONENT_ACTION_BLOCK_TRIGGER
- revert_to_reality(signal_source)
+/**
+ * Called when attempting to connect a mob to a virtual reality mob.
+ * This will return FALSE if the mob is without player or dead. TRUE otherwise
+ */
+/datum/component/virtual_reality/proc/connect(mob/M)
+ var/mob/vr_M = parent
+ if(!M.mind || M.stat == DEAD || !vr_M.mind || vr_M.stat == DEAD)
+ return FALSE
+ var/datum/component/virtual_reality/VR = M.GetComponent(/datum/component/virtual_reality)
+ if(VR)
+ VR.level_below = src
+ level_above = VR
+ M.transfer_ckey(vr_M, FALSE)
+ mastermind = M.mind
+ mastermind.current.audiovisual_redirect = parent
+ RegisterSignal(mastermind, COMSIG_PRE_MIND_TRANSFER, .proc/switch_player)
+ RegisterSignal(M, list(COMSIG_MOB_DEATH, COMSIG_PARENT_QDELETING), .proc/game_over)
+ RegisterSignal(M, COMSIG_MOB_PRE_PLAYER_CHANGE, .proc/player_hijacked)
+ SStgui.close_user_uis(vr_M, src)
+ session_paused = FALSE
+ return TRUE
+/**
+ * emag_act() hook. Makes the game deadlier, killing the mastermind mob too should the parent die.
+ */
/datum/component/virtual_reality/proc/you_only_live_once()
- if(you_die_in_the_game_you_die_for_real || vr_sleeper?.only_current_user_can_interact)
+ if(you_die_in_the_game_you_die_for_real)
return FALSE
you_die_in_the_game_you_die_for_real = TRUE
return TRUE
-/datum/component/virtual_reality/proc/pass_me_the_remote(datum/source, mob/new_mob)
- if(new_mob == mastermind.current)
- revert_to_reality(source)
- return TRUE
- new_mob.TakeComponent(src)
- return TRUE
+/**
+ * Called when the mastermind mind is transferred to another mob.
+ * This is pretty much just going to simply quit the session until machineries support polymorphed occupants etcetera.
+ */
+/datum/component/virtual_reality/proc/switch_player(datum/source, mob/new_mob, mob/old_mob)
+ if(session_paused)
+ return
+ if(!allow_mastermind_transfer)
+ quit()
+ return COMPONENT_STOP_MIND_TRANSFER
+ UnregisterSignal(old_mob, list(COMSIG_MOB_DEATH, COMSIG_PARENT_QDELETING, COMSIG_MOB_PRE_PLAYER_CHANGE))
+ RegisterSignal(new_mob, list(COMSIG_MOB_DEATH, COMSIG_PARENT_QDELETING), .proc/game_over)
+ RegisterSignal(new_mob, COMSIG_MOB_PRE_PLAYER_CHANGE, .proc/player_hijacked)
+ old_mob.audiovisual_redirect = null
+ new_mob.audiovisual_redirect = parent
+/**
+ * Called to stop the player mind from being transferred should the new mob happen to be one of our masterminds'.
+ * Since the target's mind.current is going to be null'd in the mind transfer process,
+ * This has to be done in a different signal proc than on_player_transfer(), by then the mastermind.current will be null.
+ */
+/datum/component/virtual_reality/proc/pre_player_transfer(datum/source, mob/new_mob, mob/old_mob)
+ if(!mastermind || session_paused)
+ return
+ if(new_mob == mastermind.current)
+ quit()
+ return COMPONENT_STOP_MIND_TRANSFER
+ if(!level_above)
+ return
+ var/datum/component/virtual_reality/VR = level_above
+ while(VR)
+ if(VR.mastermind.current == new_mob)
+ VR.quit() //this will revert the ckey back to new_mob.
+ return COMPONENT_STOP_MIND_TRANSFER
+ VR = VR.level_above
+
+/**
+ * Called when someone or something else is somewhat about to replace the mastermind's mob key somehow.
+ * And potentially lock the player in a broken virtual reality plot. Not really something to be proud of.
+ */
+/datum/component/virtual_reality/proc/player_hijacked(datum/source, mob/our_character, mob/their_character)
+ if(session_paused)
+ return
+ if(!their_character)
+ quit(cleanup = TRUE)
+ return
+ var/will_it_be_handled_in_their_pre_player_transfer = FALSE
+ var/datum/component/virtual_reality/VR = src
+ while(VR)
+ if(VR.parent == their_character)
+ will_it_be_handled_in_their_pre_player_transfer = TRUE
+ break
+ VR = VR.level_below
+ if(!will_it_be_handled_in_their_pre_player_transfer) //it's not the player playing shenanigeans, abandon all ships.
+ quit(cleanup = TRUE)
+
+/**
+ * Takes care of moving the component from a mob to another when their mind or ckey is transferred.
+ * The very reason this component even exists (else one would be stuck playing as a monky if monkyified)
+ */
+/datum/component/virtual_reality/proc/on_player_transfer(datum/source, mob/new_mob, mob/old_mob)
+ new_mob.TakeComponent(src)
+
+/**
+ * Required for the component to be transferable from mob to mob.
+ */
/datum/component/virtual_reality/PostTransfer()
if(!ismob(parent))
return COMPONENT_INCOMPATIBLE
+/**
+ *The following procs simply acts as hooks for quit(), since components do not use callbacks anymore
+ */
+/datum/component/virtual_reality/proc/action_trigger(datum/signal_source, datum/action/source)
+ quit()
+ return COMPONENT_ACTION_BLOCK_TRIGGER
+
/datum/component/virtual_reality/proc/revert_to_reality(datum/source)
- quit_it()
+ quit()
/datum/component/virtual_reality/proc/game_over(datum/source)
- quit_it(TRUE, TRUE)
+ quit(you_die_in_the_game_you_die_for_real, TRUE)
+ return COMPONENT_BLOCK_DEATH_BROADCAST
-/datum/component/virtual_reality/proc/be_a_quitter(datum/source, can_reenter_corpse)
- quit_it()
- return COMPONENT_BLOCK_GHOSTING
+/datum/component/virtual_reality/proc/be_a_quitter(datum/source, can_reenter_corpse, special = FALSE, penalize = FALSE)
+ if(!special)
+ quit()
+ return COMPONENT_BLOCK_GHOSTING
-/datum/component/virtual_reality/proc/virtual_reality_in_a_virtual_reality(mob/player, killme = FALSE, datum/component/virtual_reality/yo_dawg)
+/datum/component/virtual_reality/proc/machine_destroyed(datum/source)
+ quit(cleanup = TRUE)
+
+/**
+ * Takes care of deleting itself, moving the player back to the mastermind's current and queueing the parent for deletion.
+ * It supports nested virtual realities by recursively calling vr_in_a_vr(), which in turns calls quit(),
+ * up to the deepest level, where the ckey will be transferred back to our mastermind's mob instead.
+ * The above operation is skipped when session_paused is TRUE (ergo no player in control of the current mob).
+ * vars:
+ * * deathcheck is used to kill the master, you want this FALSE unless for stuff that doesn't involve emagging.
+ * * cleanup is used to queue the parent for the next vr_clean_master's run, where they'll be deleted should they be dead.
+ * * mob/override is used for the recursive virtual reality explained above and shouldn't be used outside of vr_in_a_vr().
+ */
+/datum/component/virtual_reality/proc/quit(deathcheck = FALSE, cleanup = FALSE, mob/override)
var/mob/M = parent
- quit_it(FALSE, killme, player, yo_dawg)
- yo_dawg.inception = null
- if(killme)
- M.death(FALSE)
-
-/datum/component/virtual_reality/proc/quit_it(deathcheck = FALSE, cleanup = FALSE, mob/override)
- var/mob/M = parent
- var/mob/dreamer = override ? override : mastermind.current
- if(!mastermind)
- to_chat(M, "You feel a dreadful sensation, something terrible happened. You try to wake up, but you find yourself unable to...")
- else
- var/key_transfer = FALSE
- if(inception?.parent)
- inception.virtual_reality_in_a_virtual_reality(dreamer, cleanup, src)
+ if(!session_paused)
+ session_paused = TRUE
+ var/mob/dreamer = override || mastermind.current
+ if(!dreamer) //This shouldn't happen.
+ stack_trace("virtual reality component quit() called without a mob to transfer the parent ckey to.")
+ to_chat(M, "You feel a dreadful sensation, something terrible happened. You try to wake up, but you find yourself unable to...")
+ qdel(src)
+ return
+ if(level_below?.parent)
+ level_below.vr_in_a_vr(dreamer, deathcheck, (deathcheck && cleanup))
else
- key_transfer = TRUE
- if(key_transfer)
M.transfer_ckey(dreamer, FALSE)
- dreamer.stop_sound_channel(CHANNEL_HEARTBEAT)
- dreamer.audiovisual_redirect = null
- if(deathcheck && you_die_in_the_game_you_die_for_real)
- to_chat(mastermind, "You feel everything fading away...")
- dreamer.death(FALSE)
- if(cleanup)
- var/obj/effect/vr_clean_master/cleanbot = locate() in get_area(M)
- if(cleanbot)
- LAZYADD(cleanbot.corpse_party, M)
- if(vr_sleeper)
- vr_sleeper.vr_mob = null
- vr_sleeper = null
- qdel(src)
+ if(deathcheck)
+ to_chat(dreamer, "You feel everything fading away...")
+ dreamer.death(FALSE)
+ mastermind.current.audiovisual_redirect = null
+ if(!cleanup)
+ if(level_above)
+ level_above.level_below = null
+ level_above = null
+ UnregisterSignal(mastermind.current, list(COMSIG_MOB_DEATH, COMSIG_PARENT_QDELETING, COMSIG_MOB_PRE_PLAYER_CHANGE))
+ UnregisterSignal(mastermind, COMSIG_PRE_MIND_TRANSFER)
+ mastermind = null
+ if(cleanup)
+ var/obj/effect/vr_clean_master/cleanbot = locate() in get_area(M)
+ if(cleanbot)
+ LAZYOR(cleanbot.corpse_party, M)
+ qdel(src)
-/datum/component/virtual_reality/Destroy()
- var/datum/action/quit_vr/delet_me = quit_action
- . = ..()
- qdel(delet_me)
\ No newline at end of file
+/**
+ * Used for recursive virtual realities shenanigeans and should be called only through the above proc.
+ */
+/datum/component/virtual_reality/proc/vr_in_a_vr(mob/player, deathcheck = FALSE, lethal_cleanup = FALSE)
+ var/mob/M = parent
+ quit(deathcheck, lethal_cleanup, player)
+ M.audiovisual_redirect = null
+ if(lethal_cleanup)
+ M.death(FALSE)
diff --git a/code/datums/components/wet_floor.dm b/code/datums/components/wet_floor.dm
index 38b17993d8..d6c5c0bf83 100644
--- a/code/datums/components/wet_floor.dm
+++ b/code/datums/components/wet_floor.dm
@@ -34,10 +34,12 @@
last_process = world.time
/datum/component/wet_floor/RegisterWithParent()
+ . = ..()
RegisterSignal(parent, COMSIG_TURF_IS_WET, .proc/is_wet)
RegisterSignal(parent, COMSIG_TURF_MAKE_DRY, .proc/dry)
/datum/component/wet_floor/UnregisterFromParent()
+ . = ..()
UnregisterSignal(parent, list(COMSIG_TURF_IS_WET, COMSIG_TURF_MAKE_DRY))
/datum/component/wet_floor/Destroy()
diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm
index 60bb24c8c2..cf33fa3633 100644
--- a/code/datums/datacore.dm
+++ b/code/datums/datacore.dm
@@ -255,7 +255,7 @@
M.fields["alg_d"] = "No allergies have been detected in this patient."
M.fields["cdi"] = "None"
M.fields["cdi_d"] = "No diseases have been diagnosed at the moment."
- M.fields["notes"] = "No notes."
+ M.fields["notes"] = H.get_trait_string(medical)
medical += M
//Security Record
diff --git a/code/datums/datumvars.dm b/code/datums/datumvars.dm
index e44134f01f..feac1de972 100644
--- a/code/datums/datumvars.dm
+++ b/code/datums/datumvars.dm
@@ -1398,3 +1398,29 @@
var/mob/living/carbon/human/H = locate(href_list["copyoutfit"]) in GLOB.carbon_list
if(istype(H))
H.copy_outfit()
+ else if(href_list["modquirks"])
+ if(!check_rights(R_SPAWN))
+ return
+
+ var/mob/living/carbon/human/H = locate(href_list["modquirks"]) in GLOB.mob_list
+ if(!istype(H))
+ to_chat(usr, "This can only be done to instances of type /mob/living/carbon/human")
+ return
+
+ var/list/options = list("Clear"="Clear")
+ for(var/x in subtypesof(/datum/quirk))
+ var/datum/quirk/T = x
+ var/qname = initial(T.name)
+ options[H.has_quirk(T) ? "[qname] (Remove)" : "[qname] (Add)"] = T
+
+ var/result = input(usr, "Choose quirk to add/remove","Quirk Mod") as null|anything in options
+ if(result)
+ if(result == "Clear")
+ for(var/datum/quirk/q in H.roundstart_quirks)
+ H.remove_quirk(q.type)
+ else
+ var/T = options[result]
+ if(H.has_quirk(T))
+ H.remove_quirk(T)
+ else
+ H.add_quirk(T,TRUE)
diff --git a/code/datums/dna.dm b/code/datums/dna.dm
index 8a3fd82cb9..ccc5d97cf8 100644
--- a/code/datums/dna.dm
+++ b/code/datums/dna.dm
@@ -254,7 +254,6 @@
if(icon_update)
update_body()
update_hair()
- update_body_parts()
update_mutations_overlay()// no lizard with human hulk overlay please.
diff --git a/code/datums/dog_fashion.dm b/code/datums/dog_fashion.dm
index c798f35218..b9e774aa50 100644
--- a/code/datums/dog_fashion.dm
+++ b/code/datums/dog_fashion.dm
@@ -174,3 +174,13 @@
/datum/dog_fashion/back/deathsquad
name = "Trooper REAL_NAME"
desc = "That's not red paint. That's real corgi blood."
+
+/datum/dog_fashion/head/colour
+ name = "Stylish REAL_NAME"
+ desc = "From the tips of their paws to the top of their head, they look like a made bed."
+ emote_see = list("tries to tap dances.","looks sadly at others outfits...","barks at bad fashion!")
+
+/datum/dog_fashion/head/telegram
+ name = "Messenger REAL_NAME"
+ desc = "Dont shoot the messenger..."
+ emote_see = list("licks an envelope.","looks ready to set off to send a letter...","works on barking!")
diff --git a/code/datums/elements/_element.dm b/code/datums/elements/_element.dm
new file mode 100644
index 0000000000..8f9b97db22
--- /dev/null
+++ b/code/datums/elements/_element.dm
@@ -0,0 +1,39 @@
+/datum/element
+ var/element_flags = NONE
+ /**
+ * The index of the first attach argument to consider for duplicate elements
+ * Is only used when flags contains ELEMENT_BESPOKE
+ * This is infinity so you must explicitly set this
+ */
+ var/id_arg_index = INFINITY
+
+/datum/element/proc/Attach(datum/target)
+ if(type == /datum/element)
+ return ELEMENT_INCOMPATIBLE
+ if(element_flags & ELEMENT_DETACH)
+ RegisterSignal(target, COMSIG_PARENT_QDELETING, .proc/Detach)
+
+/datum/element/proc/Detach(datum/source, force)
+ UnregisterSignal(source, COMSIG_PARENT_QDELETING)
+
+/datum/element/Destroy(force)
+ if(!force)
+ return QDEL_HINT_LETMELIVE
+ SSdcs.elements_by_type -= type
+ return ..()
+
+//DATUM PROCS
+
+/datum/proc/AddElement(eletype, ...)
+ var/datum/element/ele = SSdcs.GetElement(arglist(args))
+ args[1] = src
+ if(ele.Attach(arglist(args)) == ELEMENT_INCOMPATIBLE)
+ CRASH("Incompatible [eletype] assigned to a [type]! args: [json_encode(args)]")
+
+/**
+ * Finds the singleton for the element type given and detaches it from src
+ * You only need additional arguments beyond the type if you're using ELEMENT_BESPOKE
+ */
+/datum/proc/RemoveElement(eletype, ...)
+ var/datum/element/ele = SSdcs.GetElement(arglist(args))
+ ele.Detach(src)
\ No newline at end of file
diff --git a/code/datums/components/cleaning.dm b/code/datums/elements/cleaning.dm
similarity index 79%
rename from code/datums/components/cleaning.dm
rename to code/datums/elements/cleaning.dm
index 5324a87fee..e4fb3edd48 100644
--- a/code/datums/components/cleaning.dm
+++ b/code/datums/elements/cleaning.dm
@@ -1,13 +1,15 @@
-/datum/component/cleaning
- dupe_mode = COMPONENT_DUPE_UNIQUE_PASSARGS
+/datum/element/cleaning/Attach(datum/target)
+ . = ..()
+ if(!ismovableatom(target))
+ return ELEMENT_INCOMPATIBLE
+ RegisterSignal(target, COMSIG_MOVABLE_MOVED, .proc/Clean)
-/datum/component/cleaning/Initialize()
- if(!ismovableatom(parent))
- return COMPONENT_INCOMPATIBLE
- RegisterSignal(parent, list(COMSIG_MOVABLE_MOVED), .proc/Clean)
+/datum/element/cleaning/Detach(datum/target)
+ . = ..()
+ UnregisterSignal(target, COMSIG_MOVABLE_MOVED)
-/datum/component/cleaning/proc/Clean()
- var/atom/movable/AM = parent
+/datum/element/cleaning/proc/Clean(datum/source)
+ var/atom/movable/AM = source
var/turf/T = AM.loc
SEND_SIGNAL(T, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_WEAK)
for(var/A in T)
@@ -43,4 +45,4 @@
cleaned_human.clean_blood()
cleaned_human.wash_cream()
cleaned_human.regenerate_icons()
- to_chat(cleaned_human, "[src] cleans your face!")
\ No newline at end of file
+ to_chat(cleaned_human, "[src] cleans your face!")
diff --git a/code/datums/elements/earhealing.dm b/code/datums/elements/earhealing.dm
new file mode 100644
index 0000000000..7477742673
--- /dev/null
+++ b/code/datums/elements/earhealing.dm
@@ -0,0 +1,37 @@
+
+/datum/element/earhealing
+ element_flags = ELEMENT_DETACH
+ var/list/user_by_item = list()
+
+/datum/element/earhealing/New()
+ START_PROCESSING(SSdcs, src)
+
+/datum/element/earhealing/Attach(datum/target)
+ . = ..()
+ if(!isitem(target))
+ return ELEMENT_INCOMPATIBLE
+
+ RegisterSignal(target, list(COMSIG_ITEM_EQUIPPED, COMSIG_ITEM_DROPPED), .proc/equippedChanged)
+
+/datum/element/earhealing/Detach(datum/target)
+ . = ..()
+ UnregisterSignal(target, list(COMSIG_ITEM_EQUIPPED, COMSIG_ITEM_DROPPED))
+ user_by_item -= target
+
+/datum/element/earhealing/proc/equippedChanged(datum/source, mob/living/carbon/user, slot)
+ if(slot == SLOT_EARS && istype(user))
+ user_by_item[source] = user
+ else
+ user_by_item -= source
+
+/datum/element/earhealing/process()
+ for(var/i in user_by_item)
+ var/mob/living/carbon/user = user_by_item[i]
+ if(HAS_TRAIT(user, TRAIT_DEAF))
+ continue
+ var/obj/item/organ/ears/ears = user.getorganslot(ORGAN_SLOT_EARS)
+ if(!ears)
+ continue
+ ears.deaf = max(ears.deaf - 0.25, (ears.damage < ears.maxHealth ? 0 : 1)) // Do not clear deafness if our ears are too damaged
+ ears.damage = max(ears.damage - 0.025, 0)
+ CHECK_TICK
diff --git a/code/datums/emotes.dm b/code/datums/emotes.dm
index 6c91cc3a7d..f0fca5db5a 100644
--- a/code/datums/emotes.dm
+++ b/code/datums/emotes.dm
@@ -1,6 +1,3 @@
-#define EMOTE_VISIBLE 1
-#define EMOTE_AUDIBLE 2
-
/datum/emote
var/key = "" //What calls the emote
var/key_third_person = "" //This will also call the emote
diff --git a/code/datums/explosion.dm b/code/datums/explosion.dm
index b3c57e4838..7be4489e86 100644
--- a/code/datums/explosion.dm
+++ b/code/datums/explosion.dm
@@ -198,7 +198,7 @@ GLOBAL_LIST_EMPTY(explosions)
var/list/items = list()
for(var/I in T)
var/atom/A = I
- if (!A.prevent_content_explosion()) //The atom/contents_explosion() proc returns null if the contents ex_acting has been handled by the atom, and TRUE if it hasn't.
+ if (!(A.flags_1 & PREVENT_CONTENTS_EXPLOSION_1)) //The atom/contents_explosion() proc returns null if the contents ex_acting has been handled by the atom, and TRUE if it hasn't.
items += A.GetAllContents()
for(var/O in items)
var/atom/A = O
diff --git a/code/datums/hud.dm b/code/datums/hud.dm
index 32bce89f4d..169b08dc98 100644
--- a/code/datums/hud.dm
+++ b/code/datums/hud.dm
@@ -27,6 +27,7 @@ GLOBAL_LIST_INIT(huds, list(
ANTAG_HUD_SOULLESS = new/datum/atom_hud/antag/hidden(),
ANTAG_HUD_CLOCKWORK = new/datum/atom_hud/antag(),
ANTAG_HUD_BROTHER = new/datum/atom_hud/antag/hidden(),
+ ANTAG_HUD_BLOODSUCKER = new/datum/atom_hud/antag/bloodsucker()
))
/datum/atom_hud
diff --git a/code/datums/looping_sounds/machinery_sounds.dm b/code/datums/looping_sounds/machinery_sounds.dm
index b84133faf7..f9a9e07aed 100644
--- a/code/datums/looping_sounds/machinery_sounds.dm
+++ b/code/datums/looping_sounds/machinery_sounds.dm
@@ -4,7 +4,7 @@
mid_sounds = list('sound/machines/shower/shower_mid1.ogg'=1,'sound/machines/shower/shower_mid2.ogg'=1,'sound/machines/shower/shower_mid3.ogg'=1)
mid_length = 10
end_sound = 'sound/machines/shower/shower_end.ogg'
- volume = 20
+ volume = 10
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -32,7 +32,7 @@
mid_sounds = list('sound/machines/fryer/deep_fryer_1.ogg' = 1, 'sound/machines/fryer/deep_fryer_2.ogg' = 1)
mid_length = 2
end_sound = 'sound/machines/fryer/deep_fryer_emerge.ogg'
- volume = 15
+ volume = 5
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
@@ -43,3 +43,12 @@
mid_length = 10
end_sound = 'sound/machines/microwave/microwave-end.ogg'
volume = 90
+
+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+/datum/looping_sound/grill
+ mid_length = 2
+ mid_sounds = list('sound/machines/fryer/deep_fryer_1.ogg' = 1, 'sound/machines/fryer/deep_fryer_2.ogg' = 1)
+ volume = 10
+
+///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
\ No newline at end of file
diff --git a/code/datums/martial.dm b/code/datums/martial.dm
index 26a709590c..32850c69df 100644
--- a/code/datums/martial.dm
+++ b/code/datums/martial.dm
@@ -8,9 +8,7 @@
var/deflection_chance = 0 //Chance to deflect projectiles
var/reroute_deflection = FALSE //Delete the bullet, or actually deflect it in some direction?
var/block_chance = 0 //Chance to block melee attacks using items while on throw mode.
- var/restraining = 0 //used in cqc's disarm_act to check if the disarmed is being restrained and so whether they should be put in a chokehold or not
var/help_verb
- var/no_guns = FALSE
var/pacifism_check = TRUE //are the martial arts combos/attacks unable to be used by pacifist.
var/allow_temp_override = TRUE //if this martial art can be overridden by temporary martial arts
@@ -28,14 +26,16 @@
/datum/martial_art/proc/add_to_streak(element,mob/living/carbon/human/D)
if(D != current_target)
- current_target = D
- streak = ""
- restraining = 0
+ reset_streak(D)
streak = streak+element
if(length(streak) > max_streak_length)
streak = copytext(streak,2)
return
+/datum/martial_art/proc/reset_streak(mob/living/carbon/human/new_target)
+ current_target = new_target
+ streak = ""
+
/datum/martial_art/proc/basic_hit(mob/living/carbon/human/A,mob/living/carbon/human/D)
var/damage = rand(A.dna.species.punchdamagelow, A.dna.species.punchdamagehigh)
@@ -81,7 +81,7 @@
D.forcesay(GLOB.hit_appends)
return 1
-/datum/martial_art/proc/teach(mob/living/carbon/human/H,make_temporary=0)
+/datum/martial_art/proc/teach(mob/living/carbon/human/H, make_temporary = FALSE)
if(!istype(H) || !H.mind)
return FALSE
if(H.mind.martial_art)
diff --git a/code/datums/martial/cqc.dm b/code/datums/martial/cqc.dm
index 73173a4a9a..09a493a670 100644
--- a/code/datums/martial/cqc.dm
+++ b/code/datums/martial/cqc.dm
@@ -9,24 +9,13 @@
id = MARTIALART_CQC
help_verb = /mob/living/carbon/human/proc/CQC_help
block_chance = 75
- var/just_a_cook = FALSE
- var/static/list/areas_under_siege = typecacheof(list(/area/crew_quarters/kitchen,
- /area/crew_quarters/cafeteria,
- /area/crew_quarters/bar))
+ var/old_grab_state = null
+ var/restraining = FALSE
-/datum/martial_art/cqc/under_siege
- name = "Close Quarters Cooking"
- just_a_cook = TRUE
-
-/datum/martial_art/cqc/proc/drop_restraining()
+/datum/martial_art/cqc/reset_streak(mob/living/carbon/human/new_target)
+ . = ..()
restraining = FALSE
-/datum/martial_art/cqc/can_use(mob/living/carbon/human/H)
- var/area/A = get_area(H)
- if(just_a_cook && !(is_type_in_typecache(A, areas_under_siege)))
- return FALSE
- return ..()
-
/datum/martial_art/cqc/proc/check_streak(mob/living/carbon/human/A, mob/living/carbon/human/D)
if(!can_use(A))
return FALSE
@@ -75,6 +64,7 @@
D.apply_damage(10, BRUTE)
log_combat(A, D, "kicked (CQC)")
if(D.IsKnockdown() && !D.stat)
+ log_combat(A, D, "knocked out (Head kick)(CQC)")
D.visible_message("[A] kicks [D]'s head, knocking [D.p_them()] out!", \
"[A] kicks your head, knocking you out!")
playsound(get_turf(A), 'sound/weapons/genhit1.ogg', 50, 1, -1)
@@ -85,7 +75,8 @@
/datum/martial_art/cqc/proc/Pressure(mob/living/carbon/human/A, mob/living/carbon/human/D)
if(!can_use(A))
return FALSE
- D.visible_message("[A] forces their arm on [D]'s neck!")
+ log_combat(A, D, "pressured (CQC)")
+ D.visible_message("[A] punches [D]'s neck!")
D.adjustStaminaLoss(60)
playsound(get_turf(A), 'sound/weapons/cqchit1.ogg', 50, 1, -1)
return TRUE
@@ -96,18 +87,20 @@
if(!can_use(A))
return FALSE
if(!D.stat)
+ log_combat(A, D, "restrained (CQC)")
D.visible_message("[A] locks [D] into a restraining position!", \
"[A] locks you into a restraining position!")
D.adjustStaminaLoss(20)
D.Stun(100)
restraining = TRUE
- addtimer(CALLBACK(src, .proc/drop_restraining), 50, TIMER_UNIQUE)
+ addtimer(VARSET_CALLBACK(src, restraining, FALSE), 50, TIMER_UNIQUE)
return TRUE
/datum/martial_art/cqc/proc/Consecutive(mob/living/carbon/human/A, mob/living/carbon/human/D)
if(!can_use(A))
return FALSE
if(!D.stat)
+ log_combat(A, D, "consecutive CQC'd (CQC)")
D.visible_message("[A] strikes [D]'s abdomen, neck and back consecutively", \
"[A] strikes your abdomen, neck and back consecutively!")
playsound(get_turf(D), 'sound/weapons/cqchit2.ogg', 50, 1, -1)
@@ -119,23 +112,20 @@
return TRUE
/datum/martial_art/cqc/grab_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
- if(!can_use(A))
- return FALSE
- add_to_streak("G",D)
- if(check_streak(A,D))
- return TRUE
- if(A == D) // no self grab.
- return FALSE
- if(A.grab_state >= GRAB_AGGRESSIVE)
+ if(A.a_intent == INTENT_GRAB && A!=D && can_use(A)) // A!=D prevents grabbing yourself
+ add_to_streak("G",D)
+ if(check_streak(A,D)) //if a combo is made no grab upgrade is done
+ return TRUE
+ old_grab_state = A.grab_state
D.grabbedby(A, 1)
- else
- A.start_pulling(D, 1)
- if(A.pulling)
- D.stop_pulling()
+ if(old_grab_state == GRAB_PASSIVE)
+ D.drop_all_held_items()
+ A.grab_state = GRAB_AGGRESSIVE //Instant agressive grab if on grab intent
log_combat(A, D, "grabbed", addition="aggressively")
- A.grab_state = GRAB_AGGRESSIVE //Instant aggressive grab
-
- return TRUE
+ D.visible_message("[A] violently grabs [D]!", \
+ "[A] violently grabs you!")
+ return TRUE
+ return FALSE
/datum/martial_art/cqc/harm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
if(!can_use(A))
@@ -190,6 +180,7 @@
playsound(D, 'sound/weapons/punchmiss.ogg', 25, 1, -1)
log_combat(A, D, "disarmed (CQC)", "[I ? " grabbing \the [I]" : ""]")
if(restraining && A.pulling == D)
+ log_combat(A, D, "knocked out (Chokehold)(CQC)")
D.visible_message("[A] puts [D] into a chokehold!", \
"[A] puts you into a chokehold!")
D.SetSleeping(400)
@@ -208,9 +199,19 @@
to_chat(usr, "You try to remember some of the basics of CQC.")
to_chat(usr, "Slam: Grab Harm. Slam opponent into the ground, knocking them down.")
- to_chat(usr, "CQC Kick: Disarm Harm Harm. Knocks opponent away. Knocks out stunned or knocked down opponents.")
- to_chat(usr, "Restrain: Grab Grab. Locks opponents into a restraining position, disarm to knock them out with a choke hold.")
+ to_chat(usr, "CQC Kick: Harm Harm. Knocks opponent away. Knocks out stunned or knocked down opponents.")
+ to_chat(usr, "Restrain: Grab Grab. Locks opponents into a restraining position, disarm to knock them out with a chokehold.")
to_chat(usr, "Pressure: Disarm Grab. Decent stamina damage.")
to_chat(usr, "Consecutive CQC: Disarm Disarm Harm. Mainly offensive move, huge damage and decent stamina damage.")
to_chat(usr, "In addition, by having your throw mode on when being attacked, you enter an active defense mode where you have a chance to block and sometimes even counter attacks done to you.")
+
+///Subtype of CQC. Only used for the chef.
+/datum/martial_art/cqc/under_siege
+ name = "Close Quarters Cooking"
+
+///Prevents use if the cook is not in the kitchen.
+/datum/martial_art/cqc/under_siege/can_use(mob/living/carbon/human/H) //this is used to make chef CQC only work in kitchen
+ if(!istype(get_area(H), /area/crew_quarters/kitchen))
+ return FALSE
+ return ..()
diff --git a/code/datums/martial/sleeping_carp.dm b/code/datums/martial/sleeping_carp.dm
index f89374dc2a..bb652208ee 100644
--- a/code/datums/martial/sleeping_carp.dm
+++ b/code/datums/martial/sleeping_carp.dm
@@ -9,35 +9,36 @@
id = MARTIALART_SLEEPINGCARP
deflection_chance = 100
reroute_deflection = TRUE
- no_guns = TRUE
allow_temp_override = FALSE
help_verb = /mob/living/carbon/human/proc/sleeping_carp_help
+ var/old_grab_state = null
/datum/martial_art/the_sleeping_carp/proc/check_streak(mob/living/carbon/human/A, mob/living/carbon/human/D)
if(findtext(streak,WRIST_WRENCH_COMBO))
streak = ""
wristWrench(A,D)
- return 1
+ return TRUE
if(findtext(streak,BACK_KICK_COMBO))
streak = ""
backKick(A,D)
- return 1
+ return TRUE
if(findtext(streak,STOMACH_KNEE_COMBO))
streak = ""
kneeStomach(A,D)
- return 1
+ return TRUE
if(findtext(streak,HEAD_KICK_COMBO))
streak = ""
headKick(A,D)
- return 1
+ return TRUE
if(findtext(streak,ELBOW_DROP_COMBO))
streak = ""
elbowDrop(A,D)
- return 1
- return 0
+ return TRUE
+ return FALSE
/datum/martial_art/the_sleeping_carp/proc/wristWrench(mob/living/carbon/human/A, mob/living/carbon/human/D)
if(!D.stat && !D.IsStun() && !D.IsKnockdown())
+ log_combat(A, D, "wrist wrenched (Sleeping Carp)")
A.do_attack_animation(D, ATTACK_EFFECT_PUNCH)
D.visible_message("[A] grabs [D]'s wrist and wrenches it sideways!", \
"[A] grabs your wrist and violently wrenches it to the side!")
@@ -46,24 +47,29 @@
D.dropItemToGround(D.get_active_held_item())
D.apply_damage(5, BRUTE, pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM))
D.Knockdown(60)//CIT CHANGE - makes sleepingcarp use knockdown() for its stuns instead of stun()
- return 1
- log_combat(A, D, "wrist wrenched (Sleeping Carp)")
+ return TRUE
return basic_hit(A,D)
/datum/martial_art/the_sleeping_carp/proc/backKick(mob/living/carbon/human/A, mob/living/carbon/human/D)
- if(A.dir == D.dir && !D.stat && !D.IsKnockdown())
- A.do_attack_animation(D, ATTACK_EFFECT_PUNCH)
- D.visible_message("[A] kicks [D] in the back!", \
- "[A] kicks you in the back, making you stumble and fall!")
- step_to(D,get_step(D,D.dir),1)
- D.Knockdown(80)
- playsound(get_turf(D), 'sound/weapons/punch1.ogg', 50, 1, -1)
- return 1
- log_combat(A, D, "back-kicked (Sleeping Carp)")
+ if(!D.stat && !D.IsKnockdown())
+ if(A.dir == D.dir)
+ log_combat(A, D, "back-kicked (Sleeping Carp)")
+ A.do_attack_animation(D, ATTACK_EFFECT_PUNCH)
+ D.visible_message("[A] kicks [D] in the back!", \
+ "[A] kicks you in the back, making you stumble and fall!")
+ step_to(D,get_step(D,D.dir),1)
+ D.Knockdown(80)
+ playsound(get_turf(D), 'sound/weapons/punch1.ogg', 50, 1, -1)
+ return TRUE
+ else
+ log_combat(A, D, "missed a back-kick (Sleeping Carp) on")
+ D.visible_message("[A] tries to kick [D] in the back, but misses!", \
+ "[A] tries to kick you in the back, but misses!")
return basic_hit(A,D)
/datum/martial_art/the_sleeping_carp/proc/kneeStomach(mob/living/carbon/human/A, mob/living/carbon/human/D)
if(!D.stat && !D.IsKnockdown())
+ log_combat(A, D, "stomach kneed (Sleeping Carp)")
A.do_attack_animation(D, ATTACK_EFFECT_KICK)
D.visible_message("[A] knees [D] in the stomach!", \
"[A] winds you with a knee in the stomach!")
@@ -71,12 +77,12 @@
D.losebreath += 3
D.Knockdown(40)//CIT CHANGE - makes sleepingcarp use knockdown() for its stuns instead of stun()
playsound(get_turf(D), 'sound/weapons/punch1.ogg', 50, 1, -1)
- return 1
- log_combat(A, D, "stomach kneed (Sleeping Carp)")
+ return TRUE
return basic_hit(A,D)
/datum/martial_art/the_sleeping_carp/proc/headKick(mob/living/carbon/human/A, mob/living/carbon/human/D)
if(!D.stat && !D.IsKnockdown())
+ log_combat(A, D, "head kicked (Sleeping Carp)")
A.do_attack_animation(D, ATTACK_EFFECT_KICK)
D.visible_message("[A] kicks [D] in the head!", \
"[A] kicks you in the jaw!")
@@ -84,12 +90,12 @@
D.drop_all_held_items()
playsound(get_turf(D), 'sound/weapons/punch1.ogg', 50, 1, -1)
D.Knockdown(80)//CIT CHANGE - makes sleepingcarp use knockdown() for its stuns instead of stun()
- return 1
- log_combat(A, D, "head kicked (Sleeping Carp)")
+ return TRUE
return basic_hit(A,D)
/datum/martial_art/the_sleeping_carp/proc/elbowDrop(mob/living/carbon/human/A, mob/living/carbon/human/D)
if(D.IsKnockdown() || D.resting || D.stat)
+ log_combat(A, D, "elbow dropped (Sleeping Carp)")
A.do_attack_animation(D, ATTACK_EFFECT_PUNCH)
D.visible_message("[A] elbow drops [D]!", \
"[A] piledrives you with their elbow!")
@@ -97,37 +103,29 @@
D.death() //FINISH HIM!
D.apply_damage(50, BRUTE, BODY_ZONE_CHEST)
playsound(get_turf(D), 'sound/weapons/punch1.ogg', 75, 1, -1)
- return 1
- log_combat(A, D, "elbow dropped (Sleeping Carp)")
+ return TRUE
return basic_hit(A,D)
/datum/martial_art/the_sleeping_carp/grab_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
- add_to_streak("G",D)
- if(check_streak(A,D))
- return 1
- if(A == D) //no self grab stun
- return FALSE
- if(A.grab_state >= GRAB_AGGRESSIVE)
+ if(A.a_intent == INTENT_GRAB && A!=D) // A!=D prevents grabbing yourself
+ add_to_streak("G",D)
+ if(check_streak(A,D)) //if a combo is made no grab upgrade is done
+ return TRUE
+ old_grab_state = A.grab_state
D.grabbedby(A, 1)
- else
- A.start_pulling(D, 1)
- if(A.pulling)
+ if(old_grab_state == GRAB_PASSIVE)
D.drop_all_held_items()
- D.stop_pulling()
- if(A.a_intent == INTENT_GRAB)
- log_combat(A, D, "grabbed", addition="aggressively")
- D.visible_message("[A] violently grabs [D]!", \
- "[A] violently grabs you!")
- A.grab_state = GRAB_AGGRESSIVE //Instant aggressive grab
- else
- log_combat(A, D, "grabbed", addition="passively")
- A.grab_state = GRAB_PASSIVE
- return 1
+ A.grab_state = GRAB_AGGRESSIVE //Instant agressive grab if on grab intent
+ log_combat(A, D, "grabbed", addition="aggressively")
+ D.visible_message("[A] violently grabs [D]!", \
+ "[A] violently grabs you!")
+ return TRUE
+ return FALSE
/datum/martial_art/the_sleeping_carp/harm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
add_to_streak("H",D)
if(check_streak(A,D))
- return 1
+ return TRUE
A.do_attack_animation(D, ATTACK_EFFECT_PUNCH)
var/atk_verb = pick("punches", "kicks", "chops", "hits", "slams")
D.visible_message("[A] [atk_verb] [D]!", \
@@ -138,15 +136,25 @@
D.visible_message("[D] stumbles and falls!", "The blow sends you to the ground!")
D.Knockdown(80)
log_combat(A, D, "[atk_verb] (Sleeping Carp)")
- return 1
+ return TRUE
/datum/martial_art/the_sleeping_carp/disarm_act(mob/living/carbon/human/A, mob/living/carbon/human/D)
add_to_streak("D",D)
if(check_streak(A,D))
- return 1
+ return TRUE
return ..()
+/datum/martial_art/the_sleeping_carp/teach(mob/living/carbon/human/H, make_temporary = FALSE)
+ . = ..()
+ if(!.)
+ return
+ ADD_TRAIT(H, TRAIT_NOGUNS, SLEEPING_CARP_TRAIT)
+
+/datum/martial_art/the_sleeping_carp/on_remove(mob/living/carbon/human/H)
+ . = ..()
+ REMOVE_TRAIT(H, TRAIT_NOGUNS, SLEEPING_CARP_TRAIT)
+
/mob/living/carbon/human/proc/sleeping_carp_help()
set name = "Recall Teachings"
set desc = "Remember the martial techniques of the Sleeping Carp clan."
@@ -233,4 +241,4 @@
/obj/item/twohanded/bostaff/hit_reaction(mob/living/carbon/human/owner, atom/movable/hitby, attack_text = "the attack", final_block_chance = 0, damage = 0, attack_type = MELEE_ATTACK)
if(wielded)
return ..()
- return 0
+ return FALSE
diff --git a/code/datums/mind.dm b/code/datums/mind.dm
index 5cf03e2684..d1b4e51a7d 100644
--- a/code/datums/mind.dm
+++ b/code/datums/mind.dm
@@ -88,10 +88,16 @@
/datum/mind/proc/transfer_to(mob/new_character, var/force_key_move = 0)
var/old_character = current
+ var/signals = SEND_SIGNAL(new_character, COMSIG_MOB_PRE_PLAYER_CHANGE, new_character, old_character) | SEND_SIGNAL(src, COMSIG_PRE_MIND_TRANSFER, new_character, old_character)
+ if(signals & COMPONENT_STOP_MIND_TRANSFER)
+ return
if(current) // remove ourself from our old body's mind variable
current.mind = null
SStgui.on_transfer(current, new_character)
-
+ if(iscarbon(current))
+ var/mob/living/carbon/C = current
+ if(C.combatmode)
+ C.toggle_combat_mode(TRUE, TRUE)
if(!language_holder)
var/datum/language_holder/mob_holder = new_character.get_language_holder(shadow = FALSE)
language_holder = mob_holder.copy(src)
@@ -122,7 +128,6 @@
transfer_martial_arts(new_character)
if(active || force_key_move)
new_character.key = key //now transfer the key to link the client to our new body
- SEND_SIGNAL(src, COMSIG_MIND_TRANSFER, new_character, old_character)
//CIT CHANGE - makes arousal update when transfering bodies
if(isliving(new_character)) //New humans and such are by default enabled arousal. Let's always use the new mind's prefs.
@@ -131,6 +136,8 @@
L.canbearoused = L.client.prefs.arousable //Technically this should make taking over a character mean the body gain the new minds setting...
L.update_arousal_hud() //Removes the old icon
+ SEND_SIGNAL(src, COMSIG_MIND_TRANSFER, new_character, old_character)
+
/datum/mind/proc/store_memory(new_text)
if((length(memory) + length(new_text)) <= MAX_MESSAGE_LEN)
memory += "[new_text]
"
diff --git a/code/datums/mood_events/drug_events.dm b/code/datums/mood_events/drug_events.dm
index 469bf80979..1a681a8a4d 100644
--- a/code/datums/mood_events/drug_events.dm
+++ b/code/datums/mood_events/drug_events.dm
@@ -53,3 +53,63 @@
mood_change = -20
timeout = 300
//special_screen_obj = "mood_happiness_bad" Originally in tg
+
+/datum/mood_event/eigenstate
+ mood_change = -3
+ description = "Where the hell am I? Is this an alternative dimension ?\n"
+
+/datum/mood_event/enthrall
+ mood_change = 5
+
+/datum/mood_event/enthrall/add_effects(message)
+ description = "[message]\n"
+
+/datum/mood_event/enthrallpraise
+ mood_change = 10
+ timeout = 1 MINUTES
+
+/datum/mood_event/enthrallpraise/add_effects(message)
+ description = "[message]\n"
+
+/datum/mood_event/enthrallscold
+ mood_change = -10
+ timeout = 1 MINUTES
+
+/datum/mood_event/enthrallscold/add_effects(message)
+ description = "[message]\n"//aaa I'm not kinky enough for this
+
+/datum/mood_event/enthrallmissing1
+ mood_change = -5
+
+/datum/mood_event/enthrallmissing1/add_effects(message)
+ description = "[message]\n"
+
+/datum/mood_event/enthrallmissing2
+ mood_change = -10
+
+/datum/mood_event/enthrallmissing2/add_effects(message)
+ description = "[message]\n"
+
+/datum/mood_event/enthrallmissing3
+ mood_change = -15
+
+/datum/mood_event/enthrallmissing3/add_effects(message)
+ description = "[message]\n"
+
+/datum/mood_event/enthrallmissing4
+ mood_change = -25
+
+/datum/mood_event/enthrallmissing4/add_effects(message)
+ description = "[message]\n"
+
+/datum/mood_event/InLove
+ mood_change = 10
+
+/datum/mood_event/InLove/add_effects(message)
+ description = "[message]\n"
+
+/datum/mood_event/MissingLove
+ mood_change = -10
+
+/datum/mood_event/MissingLove/add_effects(message)
+ description = "[message]\n"
diff --git a/code/datums/mood_events/generic_negative_events.dm b/code/datums/mood_events/generic_negative_events.dm
index f4ca3a8ebd..a6e4c8ed4f 100644
--- a/code/datums/mood_events/generic_negative_events.dm
+++ b/code/datums/mood_events/generic_negative_events.dm
@@ -176,3 +176,70 @@
/datum/mood_event/revenant_blight/add_effects()
description = "Just give up, [pick("no one will miss you", "there is nothing you can do to help", "even a clown would be more useful than you", "does it even matter in the end?")]...\n"
+
+/datum/mood_event/plushjack
+ description = "I have butchered a plush recently.\n"
+ mood_change = -1
+ timeout = 2 MINUTES
+
+/datum/mood_event/plush_nostuffing
+ description = "A plush I tried to pet had no stuffing...\n"
+ mood_change = -1
+ timeout = 2 MINUTES
+
+//Cursed stuff below
+
+/datum/mood_event/emptypred
+ description = "I had to let someone out.\n"
+ mood_change = -2
+ timeout = 1 MINUTES
+
+/datum/mood_event/emptyprey
+ description = "It feels quite cold out here.\n"
+ mood_change = -2
+ timeout = 1 MINUTES
+
+/datum/mood_event/vampcandle
+ description = "Something is making your mind feel... loose...\n"
+ mood_change = -10
+ timeout = 1 MINUTES
+
+/datum/mood_event/drankblood_bad
+ description = "I drank the blood of a lesser creature. Disgusting.\n"
+ mood_change = -4
+ timeout = 900
+
+/datum/mood_event/drankblood_dead
+ description = "I drank dead blood. I am better than this.\n"
+ mood_change = -7
+ timeout = 900
+
+/datum/mood_event/drankblood_synth
+ description = "I drank synthetic blood. What is wrong with me?\n"
+ mood_change = -7
+ timeout = 900
+
+/datum/mood_event/drankkilled
+ description = "I drank from my victim until they died. I feel...less human.\n"
+ mood_change = -12
+ timeout = 6000
+
+/datum/mood_event/madevamp
+ description = "A soul has been cursed to undeath by my own hand.\n"
+ mood_change = -10
+ timeout = 10000
+
+/datum/mood_event/vampatefood
+ description = "Mortal nourishment no longer sustains me. I feel unwell.\n"
+ mood_change = -6
+ timeout = 1000
+
+/datum/mood_event/daylight_1
+ description = "I slept poorly in a makeshift coffin during the day.\n"
+ mood_change = -3
+ timeout = 1000
+
+/datum/mood_event/daylight_2
+ description = "I have been scorched by the unforgiving rays of the sun.\n"
+ mood_change = -6
+ timeout = 1200
diff --git a/code/datums/mood_events/generic_positive_events.dm b/code/datums/mood_events/generic_positive_events.dm
index 678802aed9..94fd08535f 100644
--- a/code/datums/mood_events/generic_positive_events.dm
+++ b/code/datums/mood_events/generic_positive_events.dm
@@ -113,3 +113,59 @@
/datum/mood_event/happy_empath/add_effects(var/mob/happytarget)
description = "[happytarget.name]'s happiness is infectious!\n"
+
+/datum/mood_event/headpat
+ description = "Headpats are nice.\n"
+ mood_change = 2
+ timeout = 2 MINUTES
+
+/datum/mood_event/hugbox
+ description = "I hugged a box of hugs recently.\n"
+ mood_change = 1
+ timeout = 2 MINUTES
+
+/datum/mood_event/plushpet
+ description = "I pet a plush recently.\n"
+ mood_change = 1
+ timeout = 3000
+
+/datum/mood_event/plushplay
+ description = "I've played with plushes recently.\n"
+ mood_change = 3
+ timeout = 3000
+
+/datum/mood_event/breakfast
+ description = "Nothing like a hearty breakfast to start the shift.\n"
+ mood_change = 2
+ timeout = 15 MINUTES
+
+//Power gamer stuff below
+/datum/mood_event/drankblood
+ description = "I have fed greedly from that which nourishes me.\n"
+ mood_change = 10
+ timeout = 900
+
+/datum/mood_event/coffinsleep
+ description = "I slept in a coffin during the day. I feel whole again.\n"
+ mood_change = 8
+ timeout = 1200
+
+//Cursed stuff below.
+
+/datum/mood_event/orgasm
+ description = "I came!\n" //funny meme haha
+ mood_change = 3
+ timeout = 100 SECONDS
+
+/datum/mood_event/fedpred
+ description = "I've devoured someone!\n"
+ mood_change = 3
+
+/datum/mood_event/fedprey
+ description = "It feels quite cozy in here.\n"
+ mood_change = 3
+
+/datum/mood_event/hope_lavaland
+ description = "What a peculiar emblem. It makes me feel hopeful for my future.\n"
+ mood_change = 5
+
diff --git a/code/datums/mutations/hulk.dm b/code/datums/mutations/hulk.dm
index 85cecca489..c536196e95 100644
--- a/code/datums/mutations/hulk.dm
+++ b/code/datums/mutations/hulk.dm
@@ -5,7 +5,7 @@
get_chance = 15
lowest_value = 256 * 12
text_gain_indication = "Your muscles hurt!"
- species_allowed = list("human") //no skeleton/lizard hulk
+ species_allowed = list("fly") //no skeleton/lizard hulk
health_req = 25
/datum/mutation/human/hulk/on_acquiring(mob/living/carbon/human/owner)
@@ -13,6 +13,7 @@
return
ADD_TRAIT(owner, TRAIT_STUNIMMUNE, TRAIT_HULK)
ADD_TRAIT(owner, TRAIT_PUSHIMMUNE, TRAIT_HULK)
+ ADD_TRAIT(owner, TRAIT_CHUNKYFINGERS, TRAIT_HULK)
owner.update_body_parts()
SEND_SIGNAL(owner, COMSIG_ADD_MOOD_EVENT, "hulk", /datum/mood_event/hulk)
RegisterSignal(owner, COMSIG_MOB_SAY, .proc/handle_speech)
@@ -31,6 +32,7 @@
return
REMOVE_TRAIT(owner, TRAIT_STUNIMMUNE, TRAIT_HULK)
REMOVE_TRAIT(owner, TRAIT_PUSHIMMUNE, TRAIT_HULK)
+ ADD_TRAIT(owner, TRAIT_CHUNKYFINGERS, TRAIT_HULK)
owner.update_body_parts()
SEND_SIGNAL(owner, COMSIG_CLEAR_MOOD_EVENT, "hulk")
UnregisterSignal(owner, COMSIG_MOB_SAY)
diff --git a/code/datums/mutations/speech.dm b/code/datums/mutations/speech.dm
index f02b7f185f..82138e6e34 100644
--- a/code/datums/mutations/speech.dm
+++ b/code/datums/mutations/speech.dm
@@ -95,6 +95,7 @@
message = replacetext(message," ugly "," beautiful ")
message = replacetext(message," douchbag "," nice guy ")
message = replacetext(message," whore "," lady ")
+ message = replacetext(message," gamer "," intellectual ")
message = replacetext(message," nerd "," smarty pants ")
message = replacetext(message," moron "," fun person ")
message = replacetext(message," IT'S LOOSE "," EVERYTHING IS FINE ")
diff --git a/code/datums/ruins/lavaland.dm b/code/datums/ruins/lavaland.dm
index 4f18e6fd62..7ea2d2615d 100644
--- a/code/datums/ruins/lavaland.dm
+++ b/code/datums/ruins/lavaland.dm
@@ -229,4 +229,13 @@
id = "puzzle"
description = "Mystery to be solved."
suffix = "lavaland_surface_puzzle.dmm"
- cost = 5
\ No newline at end of file
+ cost = 5
+
+/datum/map_template/ruin/lavaland/elite_tumor
+ name = "Pulsating Tumor"
+ id = "tumor"
+ description = "A strange tumor which houses a powerful beast..."
+ suffix = "lavaland_surface_elite_tumor.dmm"
+ cost = 5
+ always_place = TRUE
+ allow_duplicates = TRUE
diff --git a/code/datums/status_effects/debuffs.dm b/code/datums/status_effects/debuffs.dm
index 84ed012b82..f5f012e7f9 100644
--- a/code/datums/status_effects/debuffs.dm
+++ b/code/datums/status_effects/debuffs.dm
@@ -80,34 +80,55 @@
desc = "You've fallen asleep. Wait a bit and you should wake up. Unless you don't, considering how helpless you are."
icon_state = "asleep"
-//TASER
-/datum/status_effect/electrode
- id = "tased"
+/datum/status_effect/no_combat_mode/
+ id = "no_combat_mode"
blocks_combatmode = TRUE
- status_type = STATUS_EFFECT_REPLACE
alert_type = null
+ status_type = STATUS_EFFECT_REPLACE
-/datum/status_effect/electrode/on_creation(mob/living/new_owner, set_duration)
+/datum/status_effect/no_combat_mode/on_creation(mob/living/new_owner, set_duration)
if(isnum(set_duration))
duration = set_duration
. = ..()
+ if(iscarbon(owner))
+ var/mob/living/carbon/C = owner
+ if(C.combatmode)
+ C.toggle_combat_mode(TRUE)
+
+/datum/status_effect/no_combat_mode/mesmerize
+ id = "Mesmerize"
+ alert_type = /obj/screen/alert/status_effect/mesmerized
+
+/obj/screen/alert/status_effect/mesmerized
+ name = "Mesmerized"
+ desc = "You cant tear your sight from who is in front of you...Their gaze is simply too enthralling.."
+ icon = 'icons/mob/actions/bloodsucker.dmi'
+ icon_state = "power_mez"
+
+/datum/status_effect/no_combat_mode/electrode
+ id = "tased"
+
+/datum/status_effect/no_combat_mode/electrode/on_creation(mob/living/new_owner, set_duration)
+ if(isnum(set_duration)) //TODO, figure out how to grab from subtype
+ duration = set_duration
+ . = ..()
if(iscarbon(owner))
var/mob/living/carbon/C = owner
if(C.combatmode)
C.toggle_combat_mode(TRUE)
C.add_movespeed_modifier(MOVESPEED_ID_TASED_STATUS, TRUE, override = TRUE, multiplicative_slowdown = 8)
-/datum/status_effect/electrode/on_remove()
+/datum/status_effect/no_combat_mode/electrode/on_remove()
if(iscarbon(owner))
var/mob/living/carbon/C = owner
C.remove_movespeed_modifier(MOVESPEED_ID_TASED_STATUS)
. = ..()
-/datum/status_effect/electrode/tick()
+/datum/status_effect/no_combat_mode/electrode/tick()
if(owner)
owner.adjustStaminaLoss(5) //if you really want to try to stamcrit someone with a taser alone, you can, but it'll take time and good timing.
-/datum/status_effect/electrode/nextmove_modifier() //why is this a proc. its no big deal since this doesnt get called often at all but literally w h y
+/datum/status_effect/no_combat_mode/electrode/nextmove_modifier() //why is this a proc. its no big deal since this doesnt get called often at all but literally w h y
return 2
//OTHER DEBUFFS
@@ -388,6 +409,19 @@
else
new /obj/effect/temp_visual/bleed(get_turf(owner))
+/datum/status_effect/neck_slice
+ id = "neck_slice"
+ status_type = STATUS_EFFECT_UNIQUE
+ alert_type = null
+ duration = -1
+
+/datum/status_effect/neck_slice/tick()
+ var/mob/living/carbon/human/H = owner
+ if(H.stat == DEAD || H.bleed_rate <= 8)
+ H.remove_status_effect(/datum/status_effect/neck_slice)
+ if(prob(10))
+ H.emote(pick("gasp", "gag", "choke"))
+
/mob/living/proc/apply_necropolis_curse(set_curse, duration = 10 MINUTES)
var/datum/status_effect/necropolis_curse/C = has_status_effect(STATUS_EFFECT_NECROPOLIS_CURSE)
if(!set_curse)
@@ -481,7 +515,7 @@
deltimer(timerid)
-//Kindle: Used by servants of Ratvar. 10-second knockdown, reduced by 1 second per 5 damage taken while the effect is active.
+//Kindle: Used by servants of Ratvar. 10-second knockdown, reduced by 1 second per 5 damage taken while the effect is active. Does not take into account Oxy-damage
/datum/status_effect/kindle
id = "kindle"
status_type = STATUS_EFFECT_UNIQUE
@@ -489,6 +523,7 @@
duration = 100
alert_type = /obj/screen/alert/status_effect/kindle
var/old_health
+ var/old_oxyloss
/datum/status_effect/kindle/tick()
owner.Knockdown(15, TRUE, FALSE, 15)
@@ -498,7 +533,9 @@
C.stuttering = max(5, C.stuttering)
if(!old_health)
old_health = owner.health
- var/health_difference = old_health - owner.health
+ if(!old_oxyloss)
+ old_oxyloss = owner.getOxyLoss()
+ var/health_difference = old_health - owner.health - CLAMP(owner.getOxyLoss() - old_oxyloss,0, owner.getOxyLoss())
if(!health_difference)
return
owner.visible_message("The light in [owner]'s eyes dims as [owner.p_theyre()] harmed!", \
@@ -506,6 +543,7 @@
health_difference *= 2 //so 10 health difference translates to 20 deciseconds of stun reduction
duration -= health_difference
old_health = owner.health
+ old_oxyloss = owner.getOxyLoss()
/datum/status_effect/kindle/on_remove()
owner.visible_message("The light in [owner]'s eyes fades!", \
@@ -541,6 +579,38 @@
icon_state = "ichorial_stain"
alerttooltipstyle = "clockcult"
+
+//GOLEM GANG
+
+/datum/status_effect/strandling //get it, strand as in durathread strand + strangling = strandling hahahahahahahahahahhahahaha i want to die
+ id = "strandling"
+ status_type = STATUS_EFFECT_UNIQUE
+ alert_type = /obj/screen/alert/status_effect/strandling
+
+/datum/status_effect/strandling/on_apply()
+ ADD_TRAIT(owner, TRAIT_MAGIC_CHOKE, "dumbmoron")
+ return ..()
+
+/datum/status_effect/strandling/on_remove()
+ REMOVE_TRAIT(owner, TRAIT_MAGIC_CHOKE, "dumbmoron")
+ return ..()
+
+/obj/screen/alert/status_effect/strandling
+ name = "Choking strand"
+ desc = "A magical strand of Durathread is wrapped around your neck, preventing you from breathing! Click this icon to remove the strand."
+ icon_state = "his_grace"
+ alerttooltipstyle = "hisgrace"
+
+/obj/screen/alert/status_effect/strandling/Click(location, control, params)
+ . = ..()
+ to_chat(mob_viewer, "You attempt to remove the durathread strand from around your neck.")
+ if(do_after(mob_viewer, 35, null, mob_viewer))
+ if(isliving(mob_viewer))
+ var/mob/living/L = mob_viewer
+ to_chat(mob_viewer, "You succesfuly remove the durathread strand.")
+ L.remove_status_effect(STATUS_EFFECT_CHOKINGSTRAND)
+
+
datum/status_effect/pacify
id = "pacify"
status_type = STATUS_EFFECT_REPLACE
@@ -666,4 +736,4 @@ datum/status_effect/pacify
if(LAZYLEN(targets) && I)
to_chat(owner, "Your arm spasms!")
owner.log_message("threw [I] due to a Muscle Spasm", LOG_ATTACK)
- owner.throw_item(pick(targets))
\ No newline at end of file
+ owner.throw_item(pick(targets))
diff --git a/code/datums/traits/good.dm b/code/datums/traits/good.dm
index 80a5f24250..b74f24c469 100644
--- a/code/datums/traits/good.dm
+++ b/code/datums/traits/good.dm
@@ -8,12 +8,14 @@
mob_trait = TRAIT_ALCOHOL_TOLERANCE
gain_text = "You feel like you could drink a whole keg!"
lose_text = "You don't feel as resistant to alcohol anymore. Somehow."
+ medical_record_text = "Patient demonstrates a high tolerance for alcohol."
/datum/quirk/apathetic
name = "Apathetic"
desc = "You just don't care as much as other people. That's nice to have in a place like this, I guess."
value = 1
mood_quirk = TRUE
+ medical_record_text = "Patient was administered the Apathy Evaluation Scale but did not bother to complete it."
/datum/quirk/apathetic/add()
var/datum/component/mood/mood = quirk_holder.GetComponent(/datum/component/mood)
@@ -42,6 +44,7 @@
mob_trait = TRAIT_EMPATH
gain_text = "You feel in tune with those around you."
lose_text = "You feel isolated from others."
+ medical_record_text = "Patient is highly perceptive of and sensitive to social cues, or may possibly have ESP. Further testing needed."
/datum/quirk/freerunning
name = "Freerunning"
@@ -50,6 +53,7 @@
mob_trait = TRAIT_FREERUNNING
gain_text = "You feel lithe on your feet!"
lose_text = "You feel clumsy again."
+ medical_record_text = "Patient scored highly on cardio tests."
/datum/quirk/friendly
name = "Friendly"
@@ -59,6 +63,7 @@
gain_text = "You want to hug someone."
lose_text = "You no longer feel compelled to hug others."
mood_quirk = TRUE
+ medical_record_text = "Patient demonstrates low-inhibitions for physical contact and well-developed arms. Requesting another doctor take over this case."
/datum/quirk/jolly
name = "Jolly"
@@ -66,6 +71,11 @@
value = 1
mob_trait = TRAIT_JOLLY
mood_quirk = TRUE
+ medical_record_text = "Patient demonstrates constant euthymia irregular for environment. It's a bit much, to be honest."
+
+/datum/quirk/jolly/on_process()
+ if(prob(0.05))
+ SEND_SIGNAL(quirk_holder, COMSIG_ADD_MOOD_EVENT, "jolly", /datum/mood_event/jolly)
/datum/quirk/light_step
name = "Light Step"
@@ -74,6 +84,7 @@
mob_trait = TRAIT_LIGHT_STEP
gain_text = "You walk with a little more litheness."
lose_text = "You start tromping around like a barbarian."
+ medical_record_text = "Patient's dexterity belies a strong capacity for stealth."
/datum/quirk/quick_step
name = "Quick Step"
@@ -82,6 +93,7 @@
mob_trait = TRAIT_SPEEDY_STEP
gain_text = "You feel determined. No time to lose."
lose_text = "You feel less determined. What's the rush, man?"
+ medical_record_text = "Patient scored highly on racewalking tests."
/datum/quirk/musician
name = "Musician"
@@ -90,6 +102,7 @@
mob_trait = TRAIT_MUSICIAN
gain_text = "You know everything about musical instruments."
lose_text = "You forget how musical instruments work."
+ medical_record_text = "Patient brain scans show a highly-developed auditory pathway."
/datum/quirk/musician/on_spawn()
var/mob/living/carbon/human/H = quirk_holder
@@ -101,21 +114,6 @@
H.equip_to_slot(musicaltuner, SLOT_IN_BACKPACK)
H.regenerate_icons()
-/datum/quirk/night_vision
- name = "Night Vision"
- desc = "You can see slightly more clearly in full darkness than most people."
- value = 1
- mob_trait = TRAIT_NIGHT_VISION
- gain_text = "The shadows seem a little less dark."
- lose_text = "Everything seems a little darker."
-
-/datum/quirk/night_vision/on_spawn()
- var/mob/living/carbon/human/H = quirk_holder
- var/obj/item/organ/eyes/eyes = H.getorgan(/obj/item/organ/eyes)
- if(!eyes || eyes.lighting_alpha)
- return
- eyes.Insert(H) //refresh their eyesight and vision
-
/datum/quirk/photographer
name = "Photographer"
desc = "You know how to handle a camera, shortening the delay between each shot."
@@ -123,6 +121,7 @@
mob_trait = TRAIT_PHOTOGRAPHER
gain_text = "You know everything about photography."
lose_text = "You forget how photo cameras work."
+ medical_record_text = "Patient mentions photography as a stress-relieving hobby."
/datum/quirk/photographer/on_spawn()
var/mob/living/carbon/human/H = quirk_holder
@@ -136,12 +135,14 @@
desc = "You know your body well, and can accurately assess the extent of your wounds."
value = 2
mob_trait = TRAIT_SELF_AWARE
+ medical_record_text = "Patient demonstrates an uncanny knack for self-diagnosis."
/datum/quirk/skittish
name = "Skittish"
desc = "You can conceal yourself in danger. Ctrl-shift-click a closed locker to jump into it, as long as you have access."
value = 2
mob_trait = TRAIT_SKITTISH
+ medical_record_text = "Patient demonstrates a high aversion to danger and has described hiding in containers out of fear."
/datum/quirk/spiritual
name = "Spiritual"
@@ -150,6 +151,7 @@
mob_trait = TRAIT_SPIRITUAL
gain_text = "You feel a little more faithful to the gods today."
lose_text = "You feel less faithful in the gods."
+ medical_record_text = "Patient reports a belief in a higher power."
/datum/quirk/tagger
name = "Tagger"
@@ -158,6 +160,7 @@
mob_trait = TRAIT_TAGGER
gain_text = "You know how to tag walls efficiently."
lose_text = "You forget how to tag walls properly."
+ medical_record_text = "Patient was recently seen for possible paint huffing incident."
/datum/quirk/tagger/on_spawn()
var/mob/living/carbon/human/H = quirk_holder
@@ -173,6 +176,7 @@
mob_trait = TRAIT_VORACIOUS
gain_text = "You feel HONGRY."
lose_text = "You no longer feel HONGRY."
+ medical_record_text = "Patient demonstrates a disturbing capacity for eating."
/datum/quirk/trandening
name = "High Luminosity Eyes"
@@ -194,6 +198,7 @@
mob_trait = TRAIT_HIGH_BLOOD
gain_text = "You feel full of blood!"
lose_text = "You feel like your blood pressure went down."
+ medical_record_text = "Patient's blood tests report an abnormal concentration of red blood cells in their bloodstream."
/datum/quirk/bloodpressure/add()
var/mob/living/M = quirk_holder
@@ -203,3 +208,15 @@
/datum/quirk/bloodpressure/remove()
var/mob/living/M = quirk_holder
M.blood_ratio = 1
+
+/datum/quirk/night_vision
+ name = "Night Vision"
+ desc = "You can see slightly more clearly in full darkness than most people."
+ value = 1
+ mob_trait = TRAIT_NIGHT_VISION
+ gain_text = "The shadows seem a little less dark."
+ lose_text = "Everything seems a little darker."
+
+/datum/quirk/night_vision/on_spawn()
+ var/mob/living/carbon/human/H = quirk_holder
+ H.update_sight()
diff --git a/code/datums/traits/negative.dm b/code/datums/traits/negative.dm
index 178e1aaeb0..3319259381 100644
--- a/code/datums/traits/negative.dm
+++ b/code/datums/traits/negative.dm
@@ -22,14 +22,19 @@
value = -1
gain_text = "You start feeling depressed."
lose_text = "You no longer feel depressed." //if only it were that easy!
- medical_record_text = "Patient has a severe mood disorder causing them to experience sudden moments of sadness."
+ medical_record_text = "Patient has a severe mood disorder, causing them to experience acute episodes of depression."
mood_quirk = TRUE
+/datum/quirk/depression/on_process()
+ if(prob(0.05))
+ SEND_SIGNAL(quirk_holder, COMSIG_ADD_MOOD_EVENT, "depression", /datum/mood_event/depression)
+
/datum/quirk/family_heirloom
name = "Family Heirloom"
desc = "You are the current owner of an heirloom, passed down for generations. You have to keep it safe!"
value = -1
mood_quirk = TRUE
+ medical_record_text = "Patient demonstrates an unnatural attachment to a family heirloom."
var/obj/item/heirloom
var/where
@@ -143,6 +148,7 @@
name = "Nyctophobia"
desc = "As far as you can remember, you've always been afraid of the dark. While in the dark without a light source, you instinctually act careful, and constantly feel a sense of dread."
value = -1
+ medical_record_text = "Patient demonstrates a fear of the dark. (Seriously?)"
/datum/quirk/nyctophobia/on_process()
var/mob/living/carbon/human/H = quirk_holder
@@ -163,7 +169,8 @@
desc = "Bright lights irritate you. Your eyes start to water, your skin feels itchy against the photon radiation, and your hair gets dry and frizzy. Maybe it's a medical condition. If only Nanotrasen was more considerate of your needs..."
value = -1
gain_text = "The safty of light feels off..."
- lose_text = "Enlighing."
+ lose_text = "Enlightening."
+ medical_record_text = "Despite my warnings, the patient refuses turn on the lights, only to end up rolling down a full flight of stairs and into the cellar."
/datum/quirk/lightless/on_process()
var/turf/T = get_turf(quirk_holder)
@@ -332,16 +339,19 @@
medical_record_text = "Patient has an extreme or irrational fear and aversion to an undefined stimuli."
var/datum/brain_trauma/mild/phobia/phobia
-/datum/quirk/phobia/add()
+/datum/quirk/phobia/post_add()
var/mob/living/carbon/human/H = quirk_holder
phobia = new
- H.gain_trauma(phobia, TRAUMA_RESILIENCE_SURGERY)
+ H.gain_trauma(phobia, TRAUMA_RESILIENCE_ABSOLUTE)
+
+/datum/quirk/phobia/remove()
+ var/mob/living/carbon/human/H = quirk_holder
+ H?.cure_trauma_type(phobia, TRAUMA_RESILIENCE_ABSOLUTE)
/datum/quirk/mute
name = "Mute"
desc = "Due to some accident, medical condition, or simply by choice, you are completely unable to speak."
value = -2 //HALP MAINTS
- mob_trait = TRAIT_MUTE
gain_text = "You find yourself unable to speak!"
lose_text = "You feel a growing strength in your vocal chords."
medical_record_text = "Functionally mute, patient is unable to use their voice in any capacity."
@@ -350,14 +360,17 @@
/datum/quirk/mute/add()
var/mob/living/carbon/human/H = quirk_holder
mute = new
- H.gain_trauma(mute, TRAUMA_RESILIENCE_SURGERY)
+ H.gain_trauma(mute, TRAUMA_RESILIENCE_ABSOLUTE)
+
+/datum/quirk/mute/remove()
+ var/mob/living/carbon/human/H = quirk_holder
+ H?.cure_trauma_type(mute, TRAUMA_RESILIENCE_ABSOLUTE)
/datum/quirk/mute/on_process()
if(quirk_holder.mind && LAZYLEN(quirk_holder.mind.antag_datums))
to_chat(quirk_holder, "Your antagonistic nature has caused your voice to be heard.")
qdel(src)
-
/datum/quirk/unstable
name = "Unstable"
desc = "Due to past troubles, you are unable to recover your sanity if you lose it. Be very careful managing your mood!"
@@ -373,7 +386,7 @@
value = -4
gain_text = "You can't see anything."
lose_text = "You miraculously gain back your vision."
- medical_record_text = "Subject has permanent blindness."
+ medical_record_text = "Patient has permanent blindness."
/datum/quirk/blindness/add()
quirk_holder.become_blind(ROUNDSTART_TRAIT)
@@ -384,3 +397,6 @@
if(!H.equip_to_slot_if_possible(glasses, SLOT_GLASSES, bypass_equip_delay_self = TRUE)) //if you can't put it on the user's eyes, put it in their hands, otherwise put it on their eyes eyes
H.put_in_hands(glasses)
H.regenerate_icons()
+
+/datum/quirk/blindness/remove()
+ quirk_holder?.cure_blind(ROUNDSTART_TRAIT)
diff --git a/code/datums/traits/neutral.dm b/code/datums/traits/neutral.dm
index 9e05af03b6..eae2db6a5f 100644
--- a/code/datums/traits/neutral.dm
+++ b/code/datums/traits/neutral.dm
@@ -16,6 +16,7 @@
value = 0
gain_text = "You feel an intense craving for pineapple."
lose_text = "Your feelings towards pineapples seem to return to a lukewarm state."
+ medical_record_text = "Patient demonstrates a pathological love of pineapple."
/datum/quirk/pineapple_liker/add()
var/mob/living/carbon/human/H = quirk_holder
@@ -34,6 +35,7 @@
value = 0
gain_text = "You find yourself pondering what kind of idiot actually enjoys pineapples..."
lose_text = "Your feelings towards pineapples seem to return to a lukewarm state."
+ medical_record_text = "Patient is correct to think that pineapple is disgusting."
/datum/quirk/pineapple_hater/add()
var/mob/living/carbon/human/H = quirk_holder
@@ -52,6 +54,7 @@
value = 0
gain_text = "You start craving something that tastes strange."
lose_text = "You feel like eating normal food again."
+ medical_record_text = "Patient demonstrates irregular nutrition preferences."
/datum/quirk/deviant_tastes/add()
var/mob/living/carbon/human/H = quirk_holder
@@ -92,7 +95,7 @@
value = 0
gain_text = "You feel more prudish."
lose_text = "You don't feel as prudish as before."
- medical_record_text = "Patient exhibits a special gene that makes them immune to Crocin and Hexacrocin."
+ medical_record_text = "Patient exhibits a special gene that makes them immune to aphrodisiacs."
/datum/quirk/libido
name = "Nymphomania"
@@ -134,6 +137,7 @@
value = 0
mob_trait = TRAIT_PHARMA
lose_text = "Your liver feels different."
+ medical_record_text = "Non-invasive tests report that the patient's metabolism is indeed incompatible with a certain \"stimulants\"."
var/active = FALSE
var/power = 0
var/cachedmoveCalc = 1
diff --git a/code/datums/weather/weather_types/radiation_storm.dm b/code/datums/weather/weather_types/radiation_storm.dm
index 6765cdf2cd..0d763aa5ad 100644
--- a/code/datums/weather/weather_types/radiation_storm.dm
+++ b/code/datums/weather/weather_types/radiation_storm.dm
@@ -22,27 +22,17 @@
target_trait = ZTRAIT_STATION
immunity_type = "rad"
+
+ var/radiation_intensity = 100
/datum/weather/rad_storm/telegraph()
..()
status_alarm(TRUE)
-
/datum/weather/rad_storm/weather_act(mob/living/L)
var/resist = L.getarmor(null, "rad")
- if(prob(40))
- if(ishuman(L))
- var/mob/living/carbon/human/H = L
- if(H.dna && !HAS_TRAIT(H, TRAIT_RADIMMUNE))
- if(prob(max(0,100-resist)))
- H.randmuti()
- if(prob(50))
- if(prob(90))
- H.randmutb()
- else
- H.randmutg()
- H.domutcheck()
- L.rad_act(20)
+ var/ratio = 1 - (min(resist, 100) / 100)
+ L.rad_act(radiation_intensity * ratio)
/datum/weather/rad_storm/end()
if(..())
diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm
index 612c3cba42..f5e285a5c2 100644
--- a/code/game/area/areas.dm
+++ b/code/game/area/areas.dm
@@ -327,7 +327,7 @@ GLOBAL_LIST_EMPTY(teleportlocs)
for(var/obj/machinery/light/L in src)
L.update()
-/area/proc/updateicon()
+/area/proc/update_icon()
var/weather_icon
for(var/V in SSweather.processing)
var/datum/weather/W = V
@@ -337,7 +337,7 @@ GLOBAL_LIST_EMPTY(teleportlocs)
if(!weather_icon)
icon_state = null
-/area/space/updateicon()
+/area/space/update_icon()
icon_state = null
/*
@@ -370,7 +370,7 @@ GLOBAL_LIST_EMPTY(teleportlocs)
/area/proc/power_change()
for(var/obj/machinery/M in src) // for each machine in the area
M.power_change() // reverify power status (to update icons etc.)
- updateicon()
+ update_icon()
/area/proc/usage(chan)
var/used = 0
diff --git a/code/game/atoms.dm b/code/game/atoms.dm
index a5e13d8e4f..0c6be84c64 100644
--- a/code/game/atoms.dm
+++ b/code/game/atoms.dm
@@ -316,9 +316,6 @@
to_chat(user, "You can't move while buckled to [src]!")
return
-/atom/proc/prevent_content_explosion()
- return FALSE
-
/atom/proc/contents_explosion(severity, target)
return //For handling the effects of explosions on contents that would not normally be effected
@@ -812,8 +809,7 @@ Proc for attack log creation, because really why not
// Filter stuff
/atom/movable/proc/add_filter(name,priority,list/params)
- if(!filter_data)
- filter_data = list()
+ LAZYINITLIST(filter_data)
var/list/p = params.Copy()
p["priority"] = priority
filter_data[name] = p
@@ -821,7 +817,7 @@ Proc for attack log creation, because really why not
/atom/movable/proc/update_filters()
filters = null
- sortTim(filter_data,associative = TRUE)
+ filter_data = sortTim(filter_data, /proc/cmp_filter_data_priority, TRUE)
for(var/f in filter_data)
var/list/data = filter_data[f]
var/list/arguments = data.Copy()
diff --git a/code/game/data_huds.dm b/code/game/data_huds.dm
index 65a7c6a954..1a57cf5051 100644
--- a/code/game/data_huds.dm
+++ b/code/game/data_huds.dm
@@ -189,7 +189,13 @@
if(tod)
var/tdelta = round(world.time - timeofdeath)
if(tdelta < (DEFIB_TIME_LIMIT * 10))
- holder.icon_state = "huddefib"
+ var/obj/item/organ/heart/He = getorgan(/obj/item/organ/heart)
+ if(He)
+ holder.icon_state = "huddefib"
+ if(He.organ_flags & ORGAN_FAILING)
+ holder.icon_state = "huddefibheart"
+ else
+ holder.icon_state = "huddefibheart"
return
holder.icon_state = "huddead"
else
diff --git a/code/game/gamemodes/bloodsucker/bloodsucker.dm b/code/game/gamemodes/bloodsucker/bloodsucker.dm
new file mode 100644
index 0000000000..e784fd836d
--- /dev/null
+++ b/code/game/gamemodes/bloodsucker/bloodsucker.dm
@@ -0,0 +1,292 @@
+
+/datum/game_mode
+ var/list/datum/mind/bloodsuckers = list() // List of minds belonging to this game mode.
+ var/list/datum/mind/vassals = list() // List of minds that have been turned into Vassals.
+ //var/list/datum/mind/vamphunters = list() // List of minds hunting vampires. Disabled at the moment
+ var/obj/effect/sunlight/bloodsucker_sunlight // Sunlight Timer. Created on first Bloodsucker assign. Destroyed on last removed Bloodsucker.
+
+ // LISTS //
+ var/list/vassal_allowed_antags = list(/datum/antagonist/brother, /datum/antagonist/traitor, /datum/antagonist/traitor/internal_affairs, /datum/antagonist/survivalist, \
+ /datum/antagonist/rev, /datum/antagonist/nukeop, /datum/antagonist/pirate, /datum/antagonist/cult, /datum/antagonist/abductee)
+ // The antags you're allowed to be if turning Vassal.
+
+/datum/game_mode/bloodsucker
+ name = "bloodsucker"
+ config_tag = "bloodsucker"
+ traitor_name = "Bloodsucker"
+ antag_flag = ROLE_BLOODSUCKER
+ false_report_weight = 1
+ restricted_jobs = list("AI","Cyborg")
+ protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster")
+ required_players = 20
+ required_enemies = 2
+ recommended_enemies = 4
+ reroll_friendly = FALSE
+ enemy_minimum_age = 7
+ round_ends_with_antag_death = FALSE
+
+
+ announce_span = "danger"
+ announce_text = "Filthy, bloodsucking vampires are crawling around disguised as crewmembers!\n\
+ Bloodsuckers: The crew are cattle, while you are both shepherd and slaughterhouse.\n\
+ Crew: Put an end to the undead infestation before the station is overcome!"
+
+/datum/game_mode/bloodsucker/generate_report()
+ return "Reports indicate that some of your crew may have toppled statues in the past week, angering the gods and becoming cursed with undeath and a desire for blood. Watch out for crewmembers that seem to shun the light or are found pale and delirious."
+
+// Seems to be run by game ONCE, and finds all potential players to be antag.
+/datum/game_mode/bloodsucker/pre_setup()
+
+ // Set Restricted Jobs
+ if(CONFIG_GET(flag/protect_roles_from_antagonist))
+ restricted_jobs += protected_jobs
+
+ if(CONFIG_GET(flag/protect_assistant_from_antagonist))
+ restricted_jobs += "Assistant"
+
+ // Set number of Vamps
+ recommended_enemies = CLAMP(round(num_players()/10), 1, 6);
+
+ // Select Antags
+ for(var/i = 0, i < recommended_enemies, i++)
+ if (!antag_candidates.len)
+ break
+ var/datum/mind/bloodsucker = pick(antag_candidates)
+ // Can we even BE a bloodsucker?
+ //if (can_make_bloodsucker(bloodsucker, display_warning=FALSE))
+ bloodsuckers += bloodsucker
+ bloodsucker.restricted_roles = restricted_jobs
+ log_game("[bloodsucker.key] (ckey) has been selected as a Bloodsucker.")
+ antag_candidates.Remove(bloodsucker) // Apparently you can also write antag_candidates -= bloodsucker
+
+ // Assign Hunters (as many as monsters, plus one)
+ //assign_monster_hunters(bloodsuckers.len, TRUE, bloodsuckers) // Disabled for now
+
+ // Do we have enough vamps to continue?
+ return bloodsuckers.len >= required_enemies
+
+
+// Gamemode is all done being set up. We have all our Vamps. We now pick objectives and let them know what's happening.
+/datum/game_mode/bloodsucker/post_setup()
+
+ // Sunlight (Creating Bloodsuckers manually will check to create this, too)
+ check_start_sunlight()
+
+ // Vamps
+ for(var/datum/mind/bloodsucker in bloodsuckers)
+ // spawn() --> Run block of code but game continues on past it.
+ // sleep() --> Run block of code and freeze code there (including whoever called us) until it's resolved.
+
+ //Clean Bloodsucker Species (racist?)
+ //clean_invalid_species(bloodsucker)
+ // TO-DO !!!
+
+ // Add Bloodsucker Antag Datum (or remove from list on Fail)
+ if (!make_bloodsucker(bloodsucker))
+ bloodsuckers -= bloodsucker
+
+ // NOTE: Hunters are done in ..() parent proc
+
+ return ..()
+
+// Checking for ACTUALLY Dead Vamps
+/datum/game_mode/bloodsucker/are_special_antags_dead()
+ // Bloodsucker not Final Dead
+ for(var/datum/mind/bloodsucker in bloodsuckers)
+ if(!bloodsucker.AmFinalDeath())
+ return FALSE
+ return TRUE
+
+
+// Init Sunlight (called from datum_bloodsucker.on_gain(), in case game mode isn't even Bloodsucker
+/datum/game_mode/proc/check_start_sunlight()
+ // Already Sunlight (and not about to cancel)
+ if (istype(bloodsucker_sunlight) && !bloodsucker_sunlight.cancel_me)
+ return
+ bloodsucker_sunlight = new ()
+
+// End Sun (last bloodsucker removed)
+/datum/game_mode/proc/check_cancel_sunlight()
+ // No Sunlight
+ if (!istype(bloodsucker_sunlight))
+ return
+ if (bloodsuckers.len <= 0)
+ bloodsucker_sunlight.cancel_me = TRUE
+ qdel(bloodsucker_sunlight)
+ bloodsucker_sunlight = null
+
+/datum/game_mode/proc/is_daylight()
+ return istype(bloodsucker_sunlight) && bloodsucker_sunlight.amDay
+
+//////////////////////////////////////////////////////////////////////////////
+
+
+/datum/game_mode/proc/can_make_bloodsucker(datum/mind/bloodsucker, datum/mind/creator, display_warning=TRUE) // Creator is just here so we can display fail messages to whoever is turning us.
+ // No Mind
+ if(!bloodsucker || !bloodsucker.key) // KEY is client login?
+ //if(creator) // REMOVED. You wouldn't see their name if there is no mind, so why say anything?
+ // to_chat(creator, "[bloodsucker] isn't self-aware enough to be raised as a Bloodsucker!")
+ return FALSE
+ // Current body is invalid
+ if(!ishuman(bloodsucker.current))// && !ismonkey(bloodsucker.current))
+ if(display_warning && creator)
+ to_chat(creator, "[bloodsucker] isn't evolved enough to be raised as a Bloodsucker!")
+ return FALSE
+ // Species Must have a HEART (Sorry Plasmabois)
+ var/mob/living/carbon/human/H = bloodsucker.current
+ if(NOBLOOD in H.dna.species.species_traits)
+ if(display_warning && creator)
+ to_chat(creator, "[bloodsucker]'s DNA isn't compatible!")
+ return FALSE
+ // Already a Non-Human Antag
+ if(bloodsucker.has_antag_datum(/datum/antagonist/abductor) || bloodsucker.has_antag_datum(/datum/antagonist/devil) || bloodsucker.has_antag_datum(/datum/antagonist/changeling))
+ return FALSE
+ // Already a vamp
+ if(bloodsucker.has_antag_datum(ANTAG_DATUM_BLOODSUCKER))
+ if(display_warning && creator)
+ to_chat(creator, "[bloodsucker] is already a Bloodsucker!")
+ return FALSE
+ // Not High Enough
+ if(creator)
+ var/datum/antagonist/bloodsucker/creator_bloodsucker = creator.has_antag_datum(ANTAG_DATUM_BLOODSUCKER)
+ if(!istype(creator_bloodsucker) || creator_bloodsucker.vamplevel < BLOODSUCKER_LEVEL_TO_EMBRACE)
+ to_chat(creator, "Your blood is too thin to turn this corpse!")
+ return FALSE
+ return TRUE
+
+
+/datum/game_mode/proc/make_bloodsucker(datum/mind/bloodsucker, datum/mind/creator = null) // NOTE: This is a game_mode/proc, NOT a game_mode/bloodsucker/proc! We need to access this function despite the game mode.
+ if (!can_make_bloodsucker(bloodsucker))
+ return FALSE
+
+ // Create Datum: Fledgling
+ var/datum/antagonist/bloodsucker/A
+
+ // [FLEDGLING]
+ if (creator)
+ A = new (bloodsucker)
+ A.creator = creator
+ bloodsucker.add_antag_datum(A)
+ // Log
+ message_admins("[bloodsucker] has become a Bloodsucker, and was created by [creator].")
+ log_admin("[bloodsucker] has become a Bloodsucker, and was created by [creator].")
+
+ // [MASTER]
+ else
+ A = bloodsucker.add_antag_datum(ANTAG_DATUM_BLOODSUCKER)
+
+
+ return TRUE
+
+
+/datum/game_mode/proc/remove_bloodsucker(datum/mind/bloodsucker)
+ bloodsucker.remove_antag_datum(ANTAG_DATUM_BLOODSUCKER)
+
+
+/datum/game_mode/proc/clean_invalid_species(datum/mind/bloodsucker)
+ // Only checking for Humans here
+ if (!ishuman(bloodsucker.current) || !bloodsucker.current.client)
+ return
+ var/am_valid = TRUE
+ var/mob/living/carbon/human/H = bloodsucker.current
+
+ // Check if PLASMAMAN?
+ if(NOBLOOD in H.dna.species.species_traits)
+ am_valid = FALSE
+
+ // PROBLEM:
+ //
+ // Setting species leaves clothes on. If you were a plasmaman, we need to reassign your entire outfit. Otherwise
+ // everyone will wonder why you're a human with Plasma clothes (jk they'll know you're antag)
+
+ // Convert to HUMAN (along with ID and PDA)
+ if (!am_valid)
+ H.set_species(/datum/species/human)
+ H.real_name = H.client.prefs.custom_names["human"]
+ var/obj/item/card/id/ID = H.wear_id?.GetID()
+ if(ID)
+ ID.registered_name = H.real_name
+ ID.update_label()
+
+
+/datum/game_mode/proc/can_make_vassal(mob/living/target, datum/mind/creator, display_warning=TRUE)//, check_antag_or_loyal=FALSE)
+ // Not Correct Type: Abort
+ if (!iscarbon(target) || !creator)
+ return FALSE
+ if (target.stat > UNCONSCIOUS)
+ return FALSE
+ // Check Overdose: Am I even addicted to blood? Do I even have any in me?
+ //if (!target.reagents.addiction_list || !target.reagents.reagent_list)
+ //message_admins("DEBUG2: can_make_vassal() Abort: No reagents")
+ // return 0
+ // Check Overdose: Did my current volume go over the Overdose threshold?
+ //var/am_addicted = 0
+ //for (var/datum/reagent/blood/vampblood/blood in target.reagents.addiction_list) // overdosed is tracked in reagent_list, not addiction_list.
+ //message_admins("DEBUG3: can_make_vassal() Found Blood! [blood] [blood.overdose]")
+ //if (blood.overdosed)
+ // am_addicted = 1 // Blood is present in addiction? That's all we need.
+ // break
+
+ //if (!am_addicted)
+ //message_admins("DEBUG4: can_make_vassal() Abort: No Blood")
+ // return 0
+ // No Mind!
+ if (!target.mind || !target.mind.key)
+ if (display_warning)
+ to_chat(creator, "[target] isn't self-aware enough to be made into a Vassal.")
+ return FALSE
+ // Already MY Vassal
+ var/datum/antagonist/vassal/V = target.mind.has_antag_datum(ANTAG_DATUM_VASSAL)
+ if (istype(V) && V.master)
+ if (V.master.owner == creator)
+ if (display_warning)
+ to_chat(creator, "[target] is already your loyal Vassal!")
+ else
+ if (display_warning)
+ to_chat(creator, "[target] is the loyal Vassal of another Bloodsucker!")
+ return FALSE
+ // Already Antag or Loyal (Vamp Hunters count as antags)
+ if (target.mind.enslaved_to || AmInvalidAntag(target.mind)) //!VassalCheckAntagValid(target.mind, check_antag_or_loyal)) // HAS_TRAIT(target, TRAIT_MINDSHIELD, "implant") ||
+ if (display_warning)
+ to_chat(creator, "[target] resists the power of your blood to dominate their mind!")
+ return FALSE
+ return TRUE
+
+
+/datum/game_mode/proc/AmValidAntag(datum/mind/M)
+ // No List?
+ if(!islist(M.antag_datums) || M.antag_datums.len == 0)
+ return FALSE
+ // Am I NOT an invalid Antag? NOTE: We already excluded non-antags above. Don't worry about the "No List?" check in AmInvalidIntag()
+ return !AmInvalidAntag(M)
+
+/datum/game_mode/proc/AmInvalidAntag(datum/mind/M)
+ // No List?
+ if(!islist(M.antag_datums) || M.antag_datums.len == 0)
+ return FALSE
+ // Does even ONE antag appear in this mind that isn't in the list? Then FAIL!
+ for(var/datum/antagonist/antag_datum in M.antag_datums)
+ if (!(antag_datum.type in vassal_allowed_antags)) // vassal_allowed_antags is a list stored in the game mode, above.
+ //message_admins("DEBUG VASSAL: Found Invalid: [antag_datum] // [antag_datum.type]")
+ return TRUE
+ //message_admins("DEBUG VASSAL: Valid Antags! (total of [M.antag_datums.len])")
+ // WHEN YOU DELETE THE ABOVE: Remove the 3 second timer on converting the vassal too.
+ return FALSE
+
+/datum/game_mode/proc/make_vassal(mob/living/target, datum/mind/creator)
+ if (!can_make_vassal(target,creator))
+ return FALSE
+ // Make Vassal
+ var/datum/antagonist/vassal/V = new (target.mind)
+ var/datum/antagonist/bloodsucker/B = creator.has_antag_datum(ANTAG_DATUM_BLOODSUCKER)
+ V.master = B
+ target.mind.add_antag_datum(V, V.master.get_team())
+ // Update Bloodsucker Title (we're a daddy now)
+ B.SelectTitle(am_fledgling = FALSE) // Only works if you have no title yet.
+ // Log
+ message_admins("[target] has become a Vassal, and is enslaved to [creator].")
+ log_admin("[target] has become a Vassal, and is enslaved to [creator].")
+ return TRUE
+
+/datum/game_mode/proc/remove_vassal(datum/mind/vassal)
+ vassal.remove_antag_datum(ANTAG_DATUM_VASSAL)
diff --git a/code/game/gamemodes/bloodsucker/hunter.dm b/code/game/gamemodes/bloodsucker/hunter.dm
new file mode 100644
index 0000000000..cec990e9c3
--- /dev/null
+++ b/code/game/gamemodes/bloodsucker/hunter.dm
@@ -0,0 +1,50 @@
+
+
+/*
+// Called from game mode pre_setup()
+/datum/game_mode/proc/assign_monster_hunters(monster_count = 4, guaranteed_hunters = FALSE, list/datum/mind/exclude_from_hunter)
+
+ // Not all game modes GUARANTEE a hunter
+ if (rand(0,2) == 0) // 50% of the time, we get fewer or NO Hunters
+ if (!guaranteed_hunters)
+ return
+ else
+ monster_count /= 2
+
+ var/list/no_hunter_jobs = list("AI","Cyborg")
+
+ // Set Restricted Jobs
+ if(CONFIG_GET(flag/protect_roles_from_antagonist))
+ no_hunter_jobs += list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster")
+
+ if(CONFIG_GET(flag/protect_assistant_from_antagonist))
+ no_hunter_jobs += "Assistant"
+
+ // Find Valid Hunters
+ var/list/datum/mind/hunter_candidates = get_players_for_role(ROLE_MONSTERHUNTER)
+
+ // Assign Hunters (as many as vamps, plus one)
+ for(var/i = 1, i < monster_count, i++) // Start at 1 so we skip Hunters if there's only one sucker.
+ if (!hunter_candidates.len)
+ break
+ // Assign Hunter
+ var/datum/mind/hunter = pick(hunter_candidates)
+ hunter_candidates.Remove(hunter) // Remove Either Way
+ // Already Antag? Skip
+ if (islist(exclude_from_hunter) && (locate(hunter) in exclude_from_hunter)) //if (islist(hunter.antag_datums) && hunter.antag_datums.len)
+ i --
+ continue
+ // NOTE:
+ vamphunters += hunter
+ hunter.restricted_roles = no_hunter_jobs
+ log_game("[hunter.key] (ckey) has been selected as a Hunter.")
+
+// Called from game mode post_setup()
+/datum/game_mode/proc/finalize_monster_hunters(monster_count = 4)
+ var/amEvil = TRUE // First hunter is always an evil boi
+ for(var/datum/mind/hunter in vamphunters)
+ var/datum/antagonist/vamphunter/A = new (hunter)
+ A.bad_dude = amEvil
+ hunter.add_antag_datum(A)
+ amEvil = FALSE // Every other hunter is just a boring greytider
+*/
diff --git a/code/game/gamemodes/clown_ops/clown_weapons.dm b/code/game/gamemodes/clown_ops/clown_weapons.dm
index ee96d1fa10..9b52ddda1e 100644
--- a/code/game/gamemodes/clown_ops/clown_weapons.dm
+++ b/code/game/gamemodes/clown_ops/clown_weapons.dm
@@ -265,6 +265,7 @@
armor = list("melee" = 40, "bullet" = 40, "laser" = 50, "energy" = 35, "bomb" = 20, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 100)
max_temperature = 35000
operation_req_access = list(ACCESS_SYNDICATE)
+ internals_req_access = list(ACCESS_SYNDICATE)
wreckage = /obj/structure/mecha_wreckage/honker/dark
max_equip = 3
spawn_tracked = FALSE
diff --git a/code/game/gamemodes/dynamic/dynamic.dm b/code/game/gamemodes/dynamic/dynamic.dm
index 25edd0c68b..075184046d 100644
--- a/code/game/gamemodes/dynamic/dynamic.dm
+++ b/code/game/gamemodes/dynamic/dynamic.dm
@@ -236,6 +236,9 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
return rule.round_result()
return ..()
+/datum/game_mode/dynamic/generate_report()
+ return "Mysterious signals that demonstrate strange dynamics have been detected in your sector. Watch out for oddities."
+
/datum/game_mode/dynamic/send_intercept()
. = "Central Command Status Summary
"
switch(round(threat_level))
@@ -297,6 +300,7 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
/datum/game_mode/dynamic/proc/log_threat(var/log_str,var/verbose = FALSE)
threat_log_verbose += ("[worldtime2text()]: "+log_str)
+ SSblackbox.record_feedback("tally","dynamic_threat_log",1,log_str)
if(!verbose)
threat_log += log_str
@@ -326,6 +330,10 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
peaceful_percentage = round(LORENTZ_CUMULATIVE_DISTRIBUTION(relative_threat, GLOB.dynamic_curve_centre, GLOB.dynamic_curve_width), 0.01)*100
threat = threat_level
+ SSblackbox.record_feedback("tally","dynamic_threat",threat_level,"Initial threat level")
+ SSblackbox.record_feedback("tally","dynamic_threat",GLOB.dynamic_curve_centre,"Curve centre")
+ SSblackbox.record_feedback("tally","dynamic_threat",GLOB.dynamic_curve_width,"Curve width")
+ SSblackbox.record_feedback("tally","dynamic_threat",peaceful_percentage,"Percent of same-vote rounds that are more peaceful")
/datum/game_mode/dynamic/can_start()
message_admins("Dynamic mode parameters for the round:")
@@ -337,6 +345,7 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
if(GLOB.dynamic_forced_threat_level >= 0)
threat_level = round(GLOB.dynamic_forced_threat_level, 0.1)
threat = threat_level
+ SSblackbox.record_feedback("tally","dynamic_threat",threat_level,"Threat level (forced by admins)")
else
generate_threat()
@@ -381,7 +390,8 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
if (roundstart_rules.len <= 0)
log_game("DYNAMIC: [roundstart_rules.len] rules.")
return TRUE
-
+ SSblackbox.record_feedback("tally","dynamic",roundstart_rules.len,"Roundstart rules considered")
+ SSblackbox.record_feedback("tally","dynamic",roundstart_rules.len,"Players readied up")
if(GLOB.dynamic_forced_roundstart_ruleset.len > 0)
rigged_roundstart()
else
@@ -510,7 +520,7 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
var/added_threat = starting_rule.scale_up(extra_rulesets_amount, threat)
if (starting_rule.pre_execute())
spend_threat(starting_rule.cost + added_threat)
- log_threat("[starting_rule.ruletype] - [starting_rule.name] -[starting_rule.cost + starting_rule.scaled_times * starting_rule.scaling_cost] threat")
+ log_threat("[starting_rule.ruletype] - [starting_rule.name] -[starting_rule.cost + starting_rule.scaled_times * starting_rule.scaling_cost] threat", verbose = TRUE)
if(starting_rule.flags & HIGHLANDER_RULESET)
highlander_executed = TRUE
else if(starting_rule.flags & ONLY_RULESET)
@@ -534,6 +544,7 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
if(rule.execute())
if(rule.persistent)
current_rules += rule
+ SSblackbox.record_feedback("associative","dynamic_rulesets",1,rule.get_blackbox_info())
return TRUE
rule.clean_up() // Refund threat, delete teams and so on.
executed_rules -= rule
@@ -605,13 +616,14 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
new_rule.trim_candidates()
if (new_rule.ready(forced))
spend_threat(new_rule.cost)
- log_threat("[new_rule.ruletype] - [new_rule.name] -[new_rule.cost] threat")
+ log_threat("[new_rule.ruletype] - [new_rule.name] -[new_rule.cost] threat", verbose = TRUE)
if (new_rule.execute()) // This should never fail since ready() returned 1
if(new_rule.flags & HIGHLANDER_RULESET)
highlander_executed = TRUE
else if(new_rule.flags & ONLY_RULESET)
only_ruleset_executed = TRUE
log_game("DYNAMIC: Making a call to a specific ruleset...[new_rule.name]!")
+ SSblackbox.record_feedback("associative","dynamic_rulesets",1,new_rule.get_blackbox_info())
executed_rules += new_rule
if (new_rule.persistent)
current_rules += new_rule
@@ -626,7 +638,7 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
if (rule.execute())
log_game("DYNAMIC: Injected a [rule.ruletype == "latejoin" ? "latejoin" : "midround"] ruleset [rule.name].")
spend_threat(rule.cost)
- log_threat("[rule.ruletype] [rule.name] spent [rule.cost]")
+ log_threat("[rule.ruletype] [rule.name] spent [rule.cost]", verbose = TRUE)
if(rule.flags & HIGHLANDER_RULESET)
highlander_executed = TRUE
else if(rule.flags & ONLY_RULESET)
@@ -636,6 +648,7 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
message_admins("[key_name(M)] joined the station, and was selected by the [rule.name] ruleset.")
log_game("DYNAMIC: [key_name(M)] joined the station, and was selected by the [rule.name] ruleset.")
executed_rules += rule
+ SSblackbox.record_feedback("associative","dynamic_rulesets",1,rule.get_blackbox_info())
rule.candidates.Cut()
if (rule.persistent)
current_rules += rule
@@ -652,6 +665,8 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
for (var/datum/dynamic_ruleset/rule in current_rules)
if(rule.rule_process() == RULESET_STOP_PROCESSING) // If rule_process() returns 1 (RULESET_STOP_PROCESSING), stop processing.
current_rules -= rule
+ SSblackbox.record_feedback("tally","dynamic",1,"Rulesets finished")
+ SSblackbox.record_feedback("associative","dynamic_rulesets_finished",1,rule.get_blackbox_info())
if (midround_injection_cooldown < world.time)
if (GLOB.dynamic_forced_extended)
@@ -670,6 +685,7 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
update_playercounts()
if (get_injection_chance())
+ SSblackbox.record_feedback("tally","dynamic",1,"Attempted midround injections")
var/cur_threat_frac = threat/threat_level
var/list/drafted_rules = list()
var/antag_num = current_players[CURRENT_LIVING_ANTAGS].len
@@ -685,12 +701,16 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
drafted_rules[rule] = round(rule.get_weight() + (rule.cost * cur_threat_frac))
else
drafted_rules[rule] = rule.get_weight()
+ else if(threat < rule.cost)
+ SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough threat to spend")
if (drafted_rules.len > 0)
+ SSblackbox.record_feedback("tally","dynamic",1,"Successful midround injections")
picking_midround_latejoin_rule(drafted_rules)
else
midround_injection_cooldown = (midround_injection_cooldown + world.time)/2
if(event_injection_cooldown < world.time)
+ SSblackbox.record_feedback("tally","dynamic",1,"Attempted event injections")
var/event_injection_cooldown_middle = 0.5*(GLOB.dynamic_event_delay_max + GLOB.dynamic_event_delay_min)
event_injection_cooldown = (round(CLAMP(EXP_DISTRIBUTION(event_injection_cooldown_middle), GLOB.dynamic_event_delay_min, GLOB.dynamic_event_delay_max)) + world.time)
message_admins("DYNAMIC: Doing event injection.")
@@ -701,7 +721,10 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
if(rule.acceptable(current_players[CURRENT_LIVING_PLAYERS].len, threat_level) && threat >= rule.cost)
if(rule.ready())
drafted_rules[rule] = rule.get_weight()
+ else if(threat < rule.cost)
+ SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough threat to spend")
if(drafted_rules.len > 0)
+ SSblackbox.record_feedback("tally","dynamic",1,"Successful event injections")
picking_midround_latejoin_rule(drafted_rules)
/// Updates current_players.
@@ -792,6 +815,7 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
forced_latejoin_rule = null
else if (latejoin_injection_cooldown < world.time && prob(get_injection_chance()))
+ SSblackbox.record_feedback("tally","dynamic",1,"Attempted latejoin injections")
var/list/drafted_rules = list()
for (var/datum/dynamic_ruleset/latejoin/rule in latejoin_rules)
if (rule.acceptable(current_players[CURRENT_LIVING_PLAYERS].len, threat_level) && threat >= rule.cost)
@@ -809,22 +833,29 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1)
drafted_rules[rule] = rule.get_weight()
if (drafted_rules.len > 0 && picking_midround_latejoin_rule(drafted_rules))
+ SSblackbox.record_feedback("tally","dynamic",1,"Successful latejoin injections")
var/latejoin_injection_cooldown_middle = 0.5*(GLOB.dynamic_latejoin_delay_max + GLOB.dynamic_latejoin_delay_min)
latejoin_injection_cooldown = round(CLAMP(EXP_DISTRIBUTION(latejoin_injection_cooldown_middle), GLOB.dynamic_latejoin_delay_min, GLOB.dynamic_latejoin_delay_max)) + world.time
/// Refund threat, but no more than threat_level.
/datum/game_mode/dynamic/proc/refund_threat(regain)
threat = min(threat_level,threat+regain)
+ SSblackbox.record_feedback("tally","dynamic_threat",regain,"Refunded threat")
+ log_threat("[regain] refunded. Threat is now [threat].", verbose = TRUE)
/// Generate threat and increase the threat_level if it goes beyond, capped at 100
/datum/game_mode/dynamic/proc/create_threat(gain)
threat = min(100, threat+gain)
if(threat > threat_level)
threat_level = threat
+ SSblackbox.record_feedback("tally","dynamic_threat",gain,"Created threat")
+ log_threat("[gain] created. Threat is now [threat] and threat level is now [threat_level].", verbose = TRUE)
/// Expend threat, can't fall under 0.
/datum/game_mode/dynamic/proc/spend_threat(cost)
threat = max(threat-cost,0)
+ SSblackbox.record_feedback("tally","dynamic_threat",cost,"Threat spent")
+ log_threat("[cost] spent. Threat is now [threat].", verbose = TRUE)
/// Turns the value generated by lorentz distribution to threat value between 0 and 100.
/datum/game_mode/dynamic/proc/lorentz_to_threat(x)
diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets.dm b/code/game/gamemodes/dynamic/dynamic_rulesets.dm
index 0c8ec0a2b8..7f6ea088a1 100644
--- a/code/game/gamemodes/dynamic/dynamic_rulesets.dm
+++ b/code/game/gamemodes/dynamic/dynamic_rulesets.dm
@@ -80,6 +80,9 @@
/// Delay for when execute will get called from the time of post_setup (roundstart) or process (midround/latejoin).
/// Make sure your ruleset works with execute being called during the game when using this, and that the clean_up proc reverts it properly in case of faliure.
var/delay = 0
+ /// Whether or not recent-round weight values are taken into account for this ruleset.
+ /// Weight reduction uses the same values as secret's recent-round mode weight reduction.
+ var/always_max_weight = FALSE
/datum/dynamic_ruleset/New()
..()
@@ -91,8 +94,15 @@
var/costs = CONFIG_GET(keyed_list/dynamic_cost)
var/requirementses = CONFIG_GET(keyed_list/dynamic_requirements) // can't damn well use requirements
var/high_population_requirements = CONFIG_GET(keyed_list/dynamic_high_population_requirement)
+ var/list/repeated_mode_adjust = CONFIG_GET(number_list/repeated_mode_adjust)
if(config_tag in weights)
- weight = weights[config_tag]
+ var/weight_mult = 1
+ if(!always_max_weight && SSpersistence.saved_dynamic_rules.len == 3 && repeated_mode_adjust.len == 3)
+ var/saved_dynamic_rules = SSpersistence.saved_dynamic_rules
+ for(var/i in 1 to 3)
+ if(config_tag in saved_dynamic_rules[i])
+ weight_mult -= (repeated_mode_adjust[i]/100)
+ weight = weights[config_tag] * weight_mult
if(config_tag in costs)
cost = costs[config_tag]
if(config_tag in requirementses)
@@ -115,12 +125,15 @@
/// If your rule has extra checks, such as counting security officers, do that in ready() instead
/datum/dynamic_ruleset/proc/acceptable(population = 0, threat_level = 0)
if(minimum_players > population)
+ SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to low pop")
return FALSE
if(maximum_players > 0 && population > maximum_players)
+ SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to high pop")
return FALSE
if (population >= GLOB.dynamic_high_pop_limit)
indice_pop = 10
if(threat_level < high_population_requirement)
+ SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough threat level")
log_game("DYNAMIC: [name] did not reach threat level threshold: [threat_level]/[high_population_requirement]")
return FALSE
else
@@ -132,6 +145,7 @@
log_game("DYNAMIC: requirements and antag_cap lists have different lengths in ruleset [name]. Likely config issue, report this.")
indice_pop = min(requirements.len,round(population/pop_per_requirement)+1)
if(threat_level < requirements[indice_pop])
+ SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough threat level")
log_game("DYNAMIC: [name] did not reach threat level threshold: [threat_level]/[requirements[indice_pop]]")
return FALSE
else
@@ -178,6 +192,7 @@
/// IMPORTANT: If ready() returns TRUE, that means pre_execute() or execute() should never fail!
/datum/dynamic_ruleset/proc/ready(forced = 0)
if (required_candidates > candidates.len)
+ SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough candidates")
return FALSE
return TRUE
@@ -212,6 +227,24 @@
/datum/dynamic_ruleset/proc/check_finished()
return FALSE
+/// Returns a list to be displayed on statbus.
+/datum/dynamic_ruleset/proc/get_blackbox_info()
+ var/list/ruleset_data = list()
+ ruleset_data["name"] = name
+ ruleset_data["rule_type"] = ruletype
+ ruleset_data["cost"] = total_cost
+ ruleset_data["weight"] = weight
+ ruleset_data["scaled_times"] = scaled_times
+ ruleset_data["antagonist_type"] = antag_datum
+ ruleset_data["population_tier"] = indice_pop
+ ruleset_data["assigned"] = list()
+ for (var/datum/mind/M in assigned)
+ var/assigned_data = list()
+ assigned_data["key"] = M.key
+ assigned_data["name"] = M.name
+ ruleset_data["assigned"] += list(assigned_data)
+ return ruleset_data
+
//////////////////////////////////////////////
// //
// ROUNDSTART RULESETS //
diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_events.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_events.dm
index 4ac8cc91d3..b6cd313bfc 100644
--- a/code/game/gamemodes/dynamic/dynamic_rulesets_events.dm
+++ b/code/game/gamemodes/dynamic/dynamic_rulesets_events.dm
@@ -3,6 +3,17 @@
var/typepath // typepath of the event
var/triggering
+/datum/dynamic_ruleset/event/get_blackbox_info()
+ var/list/ruleset_data = list()
+ ruleset_data["name"] = name
+ ruleset_data["rule_type"] = ruletype
+ ruleset_data["cost"] = total_cost
+ ruleset_data["weight"] = weight
+ ruleset_data["scaled_times"] = scaled_times
+ ruleset_data["event_type"] = typepath
+ ruleset_data["population_tier"] = indice_pop
+ return ruleset_data
+
/datum/dynamic_ruleset/event/execute()
var/datum/round_event/E = new typepath()
E.current_players = get_active_player_count(alive_check = 1, afk_check = 1, human_check = 1)
@@ -26,6 +37,7 @@
var/threat = round(mode.threat_level/10)
if (job_check < required_enemies[threat])
+ SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough enemy roles")
return FALSE
return TRUE
@@ -125,6 +137,7 @@
requirements = list(5,5,5,5,5,5,5,5,5,5)
high_population_requirement = 5
repeatable = TRUE
+ always_max_weight = TRUE
//////////////////////////////////////////////
// //
@@ -146,12 +159,15 @@
/datum/dynamic_ruleset/event/meteor_wave/ready()
if(mode.threat_level > 40 && mode.threat >= 25 && prob(20))
+ name = "Meteor Wave: Threatening"
cost = 25
typepath = /datum/round_event/meteor_wave/threatening
else if(mode.threat_level > 50 && mode.threat >= 40 && prob(30))
+ name = "Meteor Wave: Catastrophic"
cost = 40
typepath = /datum/round_event/meteor_wave/catastrophic
else
+ name = "Meteor Wave: Normal"
cost = 15
typepath = /datum/round_event/meteor_wave
return ..()
@@ -280,6 +296,7 @@
requirements = list(5,5,5,5,5,5,5,5,5,5)
high_population_requirement = 5
repeatable = TRUE
+ always_max_weight = TRUE
/datum/dynamic_ruleset/event/space_dust
name = "Minor Space Dust"
@@ -293,6 +310,7 @@
requirements = list(5,5,5,5,5,5,5,5,5,5)
high_population_requirement = 5
repeatable = TRUE
+ always_max_weight = TRUE
/datum/dynamic_ruleset/event/major_dust
name = "Major Space Dust"
@@ -332,6 +350,7 @@
requirements = list(101,101,101,5,5,5,5,5,5,5)
high_population_requirement = 5
repeatable = TRUE
+ always_max_weight = TRUE
/datum/dynamic_ruleset/event/radiation_storm
name = "Radiation Storm"
diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm
index 5810fd0ae0..fe9347d9d5 100644
--- a/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm
+++ b/code/game/gamemodes/dynamic/dynamic_rulesets_latejoin.dm
@@ -36,9 +36,9 @@
continue // Dead players cannot count as opponents
if (M.mind && M.mind.assigned_role && (M.mind.assigned_role in enemy_roles) && (!(M in candidates) || (M.mind.assigned_role in restricted_roles)))
job_check++ // Checking for "enemies" (such as sec officers). To be counters, they must either not be candidates to that rule, or have a job that restricts them from it
-
var/threat = round(mode.threat_level/10)
if (job_check < required_enemies[threat])
+ SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough enemy roles")
return FALSE
return ..()
@@ -69,6 +69,7 @@
high_population_requirement = 15
repeatable = TRUE
flags = TRAITOR_RULESET
+ always_max_weight = TRUE
//////////////////////////////////////////////
// //
diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm
index 8cda402ebf..91ac73d142 100644
--- a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm
+++ b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm
@@ -87,6 +87,7 @@
var/threat = round(mode.threat_level/10)
if (job_check < required_enemies[threat])
+ SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough enemy roles")
return FALSE
return TRUE
@@ -94,11 +95,8 @@
var/list/possible_candidates = list()
possible_candidates.Add(dead_players)
possible_candidates.Add(list_observers)
- send_applications(possible_candidates)
- if(assigned.len > 0)
- return TRUE
- else
- return FALSE
+ var/application_successful = send_applications(possible_candidates)
+ return assigned.len > 0 && application_successful
/// This sends a poll to ghosts if they want to be a ghost spawn from a ruleset.
/datum/dynamic_ruleset/midround/from_ghosts/proc/send_applications(list/possible_volunteers = list())
@@ -113,25 +111,18 @@
if(!candidates || candidates.len <= required_candidates)
message_admins("The ruleset [name] did not receive enough applications.")
log_game("DYNAMIC: The ruleset [name] did not receive enough applications.")
- mode.refund_threat(cost)
- mode.log_threat("Rule [name] refunded [cost] (not receive enough applications)",verbose=TRUE)
- mode.executed_rules -= src
- return
+ return FALSE
message_admins("[candidates.len] players volunteered for the ruleset [name].")
log_game("DYNAMIC: [candidates.len] players volunteered for [name].")
review_applications()
+ return TRUE
/// Here is where you can check if your ghost applicants are valid for the ruleset.
/// Called by send_applications().
/datum/dynamic_ruleset/midround/from_ghosts/proc/review_applications()
for (var/i = 1, i <= required_candidates, i++)
if(candidates.len <= 0)
- if(i == 1)
- // We have found no candidates so far and we are out of applicants.
- mode.refund_threat(cost)
- mode.log_threat("Rule [name] refunded [cost] (all applications invalid)",verbose=TRUE)
- mode.executed_rules -= src
break
var/mob/applicant = pick(candidates)
candidates -= applicant
@@ -189,6 +180,7 @@
repeatable = TRUE
high_population_requirement = 15
flags = TRAITOR_RULESET
+ always_max_weight = TRUE
/datum/dynamic_ruleset/midround/autotraitor/acceptable(population = 0, threat = 0)
var/player_count = mode.current_players[CURRENT_LIVING_PLAYERS].len
@@ -301,6 +293,7 @@
/datum/dynamic_ruleset/midround/from_ghosts/wizard/ready(forced = FALSE)
if (required_candidates > (dead_players.len + list_observers.len))
+ SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough ghosts")
return FALSE
if(GLOB.wizardstart.len == 0)
log_admin("Cannot accept Wizard ruleset. Couldn't find any wizard spawn points.")
@@ -363,6 +356,7 @@
/datum/dynamic_ruleset/midround/from_ghosts/nuclear/ready(forced = FALSE)
if (required_candidates > (dead_players.len + list_observers.len))
+ SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough ghosts")
return FALSE
return ..()
@@ -399,6 +393,7 @@
/datum/dynamic_ruleset/midround/from_ghosts/blob/ready(forced = FALSE)
if (required_candidates > (dead_players.len + list_observers.len))
+ SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough ghosts")
return FALSE
return ..()
@@ -430,6 +425,7 @@
/datum/dynamic_ruleset/midround/from_ghosts/xenomorph/ready(forced = FALSE)
if (required_candidates > (dead_players.len + list_observers.len))
+ SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough ghosts")
return FALSE
return ..()
@@ -529,6 +525,7 @@
/datum/dynamic_ruleset/midround/from_ghosts/sentient_disease/ready(forced = FALSE)
if (required_candidates > (dead_players.len + list_observers.len))
+ SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough ghosts")
return FALSE
return ..()
@@ -567,6 +564,7 @@
if(deadMobs < REVENANT_SPAWN_THRESHOLD)
return FALSE
if(required_candidates > (dead_players.len + list_observers.len))
+ SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough ghosts")
return FALSE
for(var/mob/living/L in GLOB.dead_mob_list) //look for any dead bodies
var/turf/T = get_turf(L)
@@ -614,6 +612,7 @@
/datum/dynamic_ruleset/midround/from_ghosts/slaughter_demon/ready(forced = FALSE)
if(required_candidates > (dead_players.len + list_observers.len))
+ SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough ghosts")
return FALSE
for(var/obj/effect/landmark/carpspawn/L in GLOB.landmarks_list)
if(isturf(L.loc))
@@ -665,6 +664,7 @@
/datum/dynamic_ruleset/midround/from_ghosts/abductors/ready(forced = FALSE)
if(required_candidates > (dead_players.len + list_observers.len))
+ SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough ghosts")
return FALSE
team = new /datum/team/abductor_team
if(team.team_number > ABDUCTOR_MAX_TEAMS)
@@ -704,6 +704,7 @@
/datum/dynamic_ruleset/midround/from_ghosts/ninja/ready(forced = FALSE)
if(required_candidates > (dead_players.len + list_observers.len))
+ SSblackbox.record_feedback("tally","dynamic",1,"Times rulesets rejected due to not enough ghosts")
return FALSE
if(!spawn_loc)
var/list/spawn_locs = list()
@@ -744,3 +745,31 @@
#undef ABDUCTOR_MAX_TEAMS
#undef REVENANT_SPAWN_THRESHOLD
+
+//////////////////////////////////////////////
+// //
+// BLOODSUCKERS //
+// //
+//////////////////////////////////////////////
+
+/datum/dynamic_ruleset/latejoin/bloodsucker
+ name = "Bloodsucker Infiltrator"
+ config_tag = "latejoin_bloodsucker"
+ antag_datum = ANTAG_DATUM_BLOODSUCKER
+ antag_flag = ROLE_TRAITOR
+ restricted_roles = list("AI", "Cyborg")
+ protected_roles = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster")
+ required_candidates = 1
+ weight = 3
+ cost = 10
+ requirements = list(90,80,70,60,55,50,45,40,35,30)
+ high_population_requirement = 30
+ repeatable = TRUE
+
+/datum/dynamic_ruleset/latejoin/bloodsucker/execute()
+ var/mob/M = pick(candidates)
+ assigned += M.mind
+ M.mind.special_role = antag_flag
+ if(mode.make_bloodsucker(M.mind))
+ mode.bloodsuckers += M
+ return TRUE
diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm
index 56b02a1364..e5bb0af464 100644
--- a/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm
+++ b/code/game/gamemodes/dynamic/dynamic_rulesets_roundstart.dm
@@ -21,6 +21,7 @@
requirements = list(50,50,50,50,50,50,50,50,50,50)
high_population_requirement = 40
antag_cap = list(1,1,1,1,2,2,2,2,3,3)
+ always_max_weight = TRUE
var/autotraitor_cooldown = 450 // 15 minutes (ticks once per 2 sec)
/datum/dynamic_ruleset/roundstart/traitor/pre_execute()
@@ -778,3 +779,42 @@
var/ramp_up_final = CLAMP(round(meteorminutes/rampupdelta), 1, 10)
spawn_meteors(ramp_up_final, wavetype)
+
+//////////////////////////////////////////////
+// //
+// BLOODSUCKERS //
+// //
+//////////////////////////////////////////////
+
+/datum/dynamic_ruleset/roundstart/bloodsucker
+ name = "Bloodsuckers"
+ config_tag = "bloodsucker"
+ persistent = TRUE
+ antag_flag = ROLE_BLOODSUCKER
+ antag_datum = ANTAG_DATUM_BLOODSUCKER
+ minimum_required_age = 0
+ protected_roles = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster")
+ restricted_roles = list("Cyborg", "AI")
+ required_candidates = 1
+ weight = 2
+ cost = 15
+ scaling_cost = 10
+ requirements = list(90,80,70,60,50,50,50,50,50,50)
+ high_population_requirement = 50
+ antag_cap = list(1,1,1,1,1,2,2,2,2,2)
+
+/datum/dynamic_ruleset/roundstart/bloodsucker/pre_execute()
+ var/num_bloodsuckers = antag_cap[indice_pop] * (scaled_times + 1)
+ for (var/i = 1 to num_bloodsuckers)
+ var/mob/M = pick_n_take(candidates)
+ assigned += M.mind
+ M.mind.special_role = ROLE_BLOODSUCKER
+ M.mind.restricted_roles = restricted_roles
+ return TRUE
+
+/datum/dynamic_ruleset/roundstart/bloodsucker/execute()
+ mode.check_start_sunlight()
+ for(var/datum/mind/M in assigned)
+ if(mode.make_bloodsucker(M))
+ mode.bloodsuckers += M
+ return TRUE
diff --git a/code/game/gamemodes/game_mode.dm b/code/game/gamemodes/game_mode.dm
index 4d7b346241..3a258599b7 100644
--- a/code/game/gamemodes/game_mode.dm
+++ b/code/game/gamemodes/game_mode.dm
@@ -81,6 +81,7 @@
///Everyone should now be on the station and have their normal gear. This is the place to give the special roles extra things
/datum/game_mode/proc/post_setup(report) //Gamemodes can override the intercept report. Passing TRUE as the argument will force a report.
+ //finalize_monster_hunters() Disabled for now
if(!report)
report = !CONFIG_GET(flag/no_intercept_report)
addtimer(CALLBACK(GLOBAL_PROC, .proc/display_roundstart_logout_report), ROUNDSTART_LOGOUT_REPORT_TIME)
@@ -305,48 +306,88 @@
// The odds become:
// Player A: 150 / 250 = 0.6 = 60%
// Player B: 100 / 250 = 0.4 = 40%
-/datum/game_mode/proc/antag_pick(list/datum/candidates)
+
+//Use return list if you want a list, with the arg being the number you want returned.
+//WARNING: THIS PROC DOES NOT TAKE INTO ACCOUNT WHAT SSPersistence ALREADY HAS FOR "ADJUST ANTAG REP". If this is used more than once
+//and the person rolls more than once, they will not get even more deduction!
+//More efficient if you use return list instead of calling this multiple times
+//fail_default_pick makes it use pick() instead of antag rep if it can't find anyone
+//allow_zero_if_insufficient allows it to pick people with zero rep if there isn't enough antags
+/datum/game_mode/proc/antag_pick(list/datum/mind/candidates, return_list = FALSE, fail_default_pick = TRUE, allow_zero_if_insufficient = TRUE)
if(!CONFIG_GET(flag/use_antag_rep)) // || candidates.len <= 1)
return pick(candidates)
- // Tickets start at 100
- var/DEFAULT_ANTAG_TICKETS = CONFIG_GET(number/default_antag_tickets)
+ //whoever named the config entries is a bad person :(
- // You may use up to 100 extra tickets (double your odds)
- var/MAX_TICKETS_PER_ROLL = CONFIG_GET(number/max_tickets_per_roll)
-
-
- var/total_tickets = 0
-
- MAX_TICKETS_PER_ROLL += DEFAULT_ANTAG_TICKETS
-
- var/p_ckey
- var/p_rep
-
- for(var/datum/mind/mind in candidates)
- p_ckey = ckey(mind.key)
- total_tickets += min(SSpersistence.antag_rep[p_ckey] + DEFAULT_ANTAG_TICKETS, MAX_TICKETS_PER_ROLL)
-
- var/antag_select = rand(1,total_tickets)
- var/current = 1
-
- for(var/datum/mind/mind in candidates)
- p_ckey = ckey(mind.key)
- p_rep = SSpersistence.antag_rep[p_ckey]
-
- var/previous = current
- var/spend = min(p_rep + DEFAULT_ANTAG_TICKETS, MAX_TICKETS_PER_ROLL)
- current += spend
-
- if(antag_select >= previous && antag_select <= (current-1))
- SSpersistence.antag_rep_change[p_ckey] = -(spend - DEFAULT_ANTAG_TICKETS)
-
-// WARNING("AR_DEBUG: Player [mind.key] won spending [spend] tickets from starting value [SSpersistence.antag_rep[p_ckey]]")
-
- return mind
-
- WARNING("Something has gone terribly wrong. /datum/game_mode/proc/antag_pick failed to select a candidate. Falling back to pick()")
- return pick(candidates)
+ //Tickets you get for free
+ var/free_tickets = CONFIG_GET(number/default_antag_tickets)
+ //Max extra tickets you can use
+ var/additional_tickets = CONFIG_GET(number/max_tickets_per_roll)
+
+ var/list/ckey_to_mind = list() //this is admittedly shitcode but I'm webediting
+ var/list/prev_tickets = SSpersistence.antag_rep //cache for hyper-speed in theory. how many tickets someone has stored
+ var/list/curr_tickets = list() //how many tickets someone has for *this* antag roll, so with the free tickets
+ var/list/datum/mind/insufficient = list() //who got cucked out of an antag roll due to not having *any* tickets
+ for(var/datum/mind/M in candidates)
+ var/mind_ckey = ckey(M.key)
+ var/can_spend = min(prev_tickets[mind_ckey], additional_tickets) //they can only spend up to config/max_tickets_per_roll
+ var/amount = can_spend + free_tickets //but they get config/default_antag_tickets for free
+ if(amount <= 0) //if they don't have any
+ insufficient += M //too bad!
+ continue
+ curr_tickets[mind_ckey] = amount
+ ckey_to_mind[mind_ckey] = M //make sure we can look them up after picking
+
+ if(!return_list) //return a single guy
+ var/ckey
+ if(length(curr_tickets))
+ ckey = pickweight(curr_tickets)
+ SSpersistence.antag_rep_change[ckey] = -(curr_tickets[ckey] - free_tickets) //deduct what they spent
+ var/mind = ckey_to_mind[ckey] || (allow_zero_if_insufficient? pick(insufficient) : null) //we want their mind
+ if(!mind) //no mind
+ var/warning = "WARNING: No antagonists were successfully picked by /datum/gamemode/proc/antag_pick()![fail_default_pick? " Defaulting to pick()!":""]"
+ message_admins(warning)
+ log_game(warning)
+ if(fail_default_pick)
+ mind = pick(candidates)
+ return mind
+ else //the far more efficient and proper use of this, to get a list
+ var/list/rolled = list()
+ var/list/spend_tickets = list()
+ for(var/i in 1 to return_list)
+ if(!length(curr_tickets)) //ah heck, we're out of candidates..
+ break
+ var/ckey = pickweight(curr_tickets) //pick
+ rolled += ckey //add
+ spend_tickets[ckey] = curr_tickets[ckey] - free_tickets
+ curr_tickets -= ckey //don't roll them again
+ var/missing = return_list - length(rolled)
+ var/list/add
+ if((missing > 0) && allow_zero_if_insufficient) //need more..
+ for(var/i in 1 to missing)
+ if(!length(insufficient))
+ break //still not enough
+ var/datum/mind/M = pick_n_take(insufficient)
+ add += M
+ if(!length(rolled) && !length(add)) //if no one could normally roll AND no one can zero roll
+ var/warning = "WARNING: No antagonists were successfully picked by /datum/gamemode/proc/antag_pick()![fail_default_pick? " Defaulting to pick()!":""]"
+ message_admins(warning)
+ log_game(warning)
+ var/list/failed = list()
+ if(fail_default_pick)
+ var/list/C = candidates.Copy()
+ for(var/i in 1 to return_list)
+ if(!length(C))
+ break
+ failed += pick_n_take(C)
+ return failed //Wew, no one qualified!
+ for(var/i in 1 to length(rolled))
+ var/ckey = rolled[i]
+ SSpersistence.antag_rep_change[ckey] = -(spend_tickets[ckey]) //deduct what all of the folks who rolled spent
+ rolled[i] = ckey_to_mind[ckey] //whoever called us wants minds, not ckeys
+ if(add)
+ rolled += add
+ return rolled
/datum/game_mode/proc/get_players_for_role(role)
var/list/players = list()
diff --git a/modular_citadel/code/game/gamemodes/gangs/dominator.dm b/code/game/gamemodes/gangs/dominator.dm
similarity index 100%
rename from modular_citadel/code/game/gamemodes/gangs/dominator.dm
rename to code/game/gamemodes/gangs/dominator.dm
diff --git a/modular_citadel/code/game/gamemodes/gangs/dominator_countdown.dm b/code/game/gamemodes/gangs/dominator_countdown.dm
similarity index 100%
rename from modular_citadel/code/game/gamemodes/gangs/dominator_countdown.dm
rename to code/game/gamemodes/gangs/dominator_countdown.dm
diff --git a/modular_citadel/code/game/gamemodes/gangs/gang.dm b/code/game/gamemodes/gangs/gang.dm
similarity index 100%
rename from modular_citadel/code/game/gamemodes/gangs/gang.dm
rename to code/game/gamemodes/gangs/gang.dm
diff --git a/modular_citadel/code/game/gamemodes/gangs/gang_datums.dm b/code/game/gamemodes/gangs/gang_datums.dm
similarity index 100%
rename from modular_citadel/code/game/gamemodes/gangs/gang_datums.dm
rename to code/game/gamemodes/gangs/gang_datums.dm
diff --git a/modular_citadel/code/game/gamemodes/gangs/gang_decals.dm b/code/game/gamemodes/gangs/gang_decals.dm
similarity index 100%
rename from modular_citadel/code/game/gamemodes/gangs/gang_decals.dm
rename to code/game/gamemodes/gangs/gang_decals.dm
diff --git a/modular_citadel/code/game/gamemodes/gangs/gang_hud.dm b/code/game/gamemodes/gangs/gang_hud.dm
similarity index 100%
rename from modular_citadel/code/game/gamemodes/gangs/gang_hud.dm
rename to code/game/gamemodes/gangs/gang_hud.dm
diff --git a/modular_citadel/code/game/gamemodes/gangs/gang_items.dm b/code/game/gamemodes/gangs/gang_items.dm
similarity index 100%
rename from modular_citadel/code/game/gamemodes/gangs/gang_items.dm
rename to code/game/gamemodes/gangs/gang_items.dm
diff --git a/modular_citadel/code/game/gamemodes/gangs/gang_pen.dm b/code/game/gamemodes/gangs/gang_pen.dm
similarity index 100%
rename from modular_citadel/code/game/gamemodes/gangs/gang_pen.dm
rename to code/game/gamemodes/gangs/gang_pen.dm
diff --git a/modular_citadel/code/game/gamemodes/gangs/gangs.dm b/code/game/gamemodes/gangs/gangs.dm
similarity index 100%
rename from modular_citadel/code/game/gamemodes/gangs/gangs.dm
rename to code/game/gamemodes/gangs/gangs.dm
diff --git a/modular_citadel/code/game/gamemodes/gangs/gangtool.dm b/code/game/gamemodes/gangs/gangtool.dm
similarity index 100%
rename from modular_citadel/code/game/gamemodes/gangs/gangtool.dm
rename to code/game/gamemodes/gangs/gangtool.dm
diff --git a/modular_citadel/code/game/gamemodes/gangs/implant_gang.dm b/code/game/gamemodes/gangs/implant_gang.dm
similarity index 100%
rename from modular_citadel/code/game/gamemodes/gangs/implant_gang.dm
rename to code/game/gamemodes/gangs/implant_gang.dm
diff --git a/code/game/gamemodes/revolution/revolution.dm b/code/game/gamemodes/revolution/revolution.dm
index 8459819b5b..74554ac9f8 100644
--- a/code/game/gamemodes/revolution/revolution.dm
+++ b/code/game/gamemodes/revolution/revolution.dm
@@ -14,8 +14,8 @@
false_report_weight = 10
restricted_jobs = list("AI", "Cyborg")
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster")
- required_players = 30
- required_enemies = 2
+ required_players = 20
+ required_enemies = 1
recommended_enemies = 3
enemy_minimum_age = 14
diff --git a/code/game/machinery/Beacon.dm b/code/game/machinery/Beacon.dm
index 3d0931d534..c98795c90b 100644
--- a/code/game/machinery/Beacon.dm
+++ b/code/game/machinery/Beacon.dm
@@ -25,10 +25,10 @@
// update the invisibility and icon
/obj/machinery/bluespace_beacon/hide(intact)
invisibility = intact ? INVISIBILITY_MAXIMUM : 0
- updateicon()
+ update_icon()
// update the icon_state
-/obj/machinery/bluespace_beacon/proc/updateicon()
+/obj/machinery/bluespace_beacon/update_icon()
var/state="floor_beacon"
if(invisibility)
@@ -45,4 +45,4 @@
else if (Beacon.loc != loc)
Beacon.forceMove(loc)
- updateicon()
+ update_icon()
diff --git a/code/game/machinery/Sleeper.dm b/code/game/machinery/Sleeper.dm
index 68f7327551..520721560a 100644
--- a/code/game/machinery/Sleeper.dm
+++ b/code/game/machinery/Sleeper.dm
@@ -36,12 +36,11 @@
RefreshParts()
add_inital_chems()
-/obj/machinery/sleeper/Destroy()
- var/obj/item/reagent_containers/sleeper_buffer/buffer = new /obj/item/reagent_containers/sleeper_buffer(loc)
+/obj/machinery/sleeper/on_deconstruction()
+ var/obj/item/reagent_containers/sleeper_buffer/buffer = new (loc)
buffer.volume = reagents.maximum_volume
buffer.reagents.maximum_volume = reagents.maximum_volume
reagents.trans_to(buffer.reagents, reagents.total_volume)
- ..()
/obj/machinery/sleeper/proc/add_inital_chems()
for(var/i in available_chems)
@@ -182,12 +181,14 @@
open_machine()
/obj/machinery/sleeper/AltClick(mob/user)
+ . = ..()
if(!user.canUseTopic(src, !issilicon(user)))
return
if(state_open)
close_machine()
else
open_machine()
+ return TRUE
/obj/machinery/sleeper/examine(mob/user)
. = ..()
diff --git a/code/game/machinery/_machinery.dm b/code/game/machinery/_machinery.dm
index ff7383cd9e..5f44fccdac 100644
--- a/code/game/machinery/_machinery.dm
+++ b/code/game/machinery/_machinery.dm
@@ -181,8 +181,9 @@ Class Procs:
if(isliving(A))
var/mob/living/L = A
L.update_canmove()
- SEND_SIGNAL(src, COMSIG_MACHINE_EJECT_OCCUPANT, occupant)
- occupant = null
+ if(occupant)
+ SEND_SIGNAL(src, COMSIG_MACHINE_EJECT_OCCUPANT, occupant)
+ occupant = null
/obj/machinery/proc/can_be_occupant(atom/movable/am)
return occupant_typecache ? is_type_in_typecache(am, occupant_typecache) : isliving(am)
diff --git a/code/game/machinery/aug_manipulator.dm b/code/game/machinery/aug_manipulator.dm
index b9d63e5771..b41910f010 100644
--- a/code/game/machinery/aug_manipulator.dm
+++ b/code/game/machinery/aug_manipulator.dm
@@ -132,8 +132,8 @@
..()
if(!user.canUseTopic(src))
return
- else
- eject_part(user)
+ eject_part(user)
+ return TRUE
/obj/machinery/aug_manipulator/power_change()
..()
diff --git a/code/game/machinery/bloodbankgen.dm b/code/game/machinery/bloodbankgen.dm
index c489f6c9c9..c92e55084d 100644
--- a/code/game/machinery/bloodbankgen.dm
+++ b/code/game/machinery/bloodbankgen.dm
@@ -12,7 +12,6 @@
var/filling = FALSE
var/obj/item/reagent_containers/blood/bag = null
var/obj/item/reagent_containers/blood/outbag = null
- var/bloodstored = 0
var/maxbloodstored = 1000
var/menustat = "menu"
var/efficiency = 0
@@ -20,7 +19,7 @@
/obj/machinery/bloodbankgen/Initialize()
. = ..()
- create_reagents(1000)
+ create_reagents(maxbloodstored, AMOUNT_VISIBLE)
update_icon()
/obj/machinery/bloodbankgen/Destroy()
@@ -28,12 +27,13 @@
QDEL_NULL(outbag)
return ..()
-/obj/machinery/bloodbankgen/contents_explosion(severity, target)
- ..()
+/obj/machinery/bloodbankgen/examine(mob/user)
+ . = ..()
if(bag)
- bag.ex_act(severity, target)
+ . += "It has \a [bag.name] hooked to its input slot. The counter reads: \"Current Capacity: [bag.reagents.total_volume] of [bag.reagents.maximum_volume]\""
if(outbag)
- outbag.ex_act(severity, target)
+ . += "It has \a [bag.name] hooked to its output slot. The counter reads: \"Current Capacity: [outbag.reagents.total_volume] of [outbag.reagents.maximum_volume]\""
+
/obj/machinery/bloodbankgen/handle_atom_del(atom/A)
..()
@@ -115,80 +115,48 @@
/obj/machinery/bloodbankgen/process()
if(!is_operational())
- return PROCESS_KILL
-
- bloodstored = reagents.total_volume
+ return
var/transfer_amount = 20
if(draining)
- if(reagents.total_volume >= reagents.maximum_volume)
- draining = FALSE
+ if(reagents.total_volume >= reagents.maximum_volume || !bag || !bag.reagents.total_volume)
+ beep_stop_pumping()
return
-
- if(bag)
- if(bag.reagents.total_volume)
- var/datum/reagent/blood/B = bag.reagents.has_reagent("blood")
- if(B)
- var/amount = reagents.maximum_volume - reagents.total_volume //monitor the machine's internal storage
- amount = min(amount, transfer_amount)
- if(!amount)
- draining = FALSE
- updateUsrDialog()
- visible_message("[src] beeps loudly.")
- playsound(loc, 'sound/machines/twobeep.ogg', 50, 1)
- return
-
- if(bag.blood_type == "SY") //no infinite loops using synthetics.
- reagents.add_reagent("syntheticblood", amount)
- else
- reagents.add_reagent("syntheticblood", (amount+(5*efficiency)))
-
- if(bag.reagents.total_volume >= amount)
- bag.reagents.remove_reagent("blood", amount)
- else
- visible_message("[src] beeps loudly.")
- playsound(loc, 'sound/machines/twobeep.ogg', 50, 1)
- draining = FALSE
-
- bag.update_icon()
- update_icon()
- updateUsrDialog()
- else
- draining = FALSE
- updateUsrDialog()
+ var/blood_amount = bag.reagents.get_reagent_amount("blood")
+ //monitor the machine and blood bag's reagents storage.
+ var/amount = min(blood_amount, min(transfer_amount, reagents.maximum_volume - reagents.total_volume))
+ if(!amount)
+ beep_stop_pumping()
return
+ var/bonus = bag.blood_type == "SY" ? 0 : 5 * efficiency //no infinite loops using synthetics.
+ reagents.add_reagent("syntheticblood", amount + bonus)
+ bag.reagents.remove_reagent("blood", amount)
+ update_icon()
if(filling)
- if(!reagents || !reagents.total_volume)
- filling = FALSE //there ain't anything in the machine yo.
+ if(!reagents.total_volume || !outbag || outbag.reagents.total_volume >= outbag.reagents.maximum_volume)
+ beep_stop_pumping("[src] pings.", TRUE)
return
- if(outbag && outbag.reagents.total_volume < outbag.reagents.maximum_volume)
- var/amount = outbag.reagents.maximum_volume - outbag.reagents.total_volume //monitor the output bag's internal storage
- amount = min(amount, transfer_amount)
- if(!amount)
- filling = FALSE
- visible_message("[src] pings.")
- playsound(loc, 'sound/machines/beep.ogg', 50, 1)
- updateUsrDialog()
- return
+ //monitor the output bag's reagents storage.
+ var/amount = min(transfer_amount, outbag.reagents.maximum_volume - outbag.reagents.total_volume)
+ reagents.trans_to(outbag, amount)
+ update_icon()
- reagents.trans_to(outbag, amount)
- outbag.update_icon()
- update_icon()
- updateUsrDialog()
- else
- visible_message("[src] pings.")
- playsound(loc, 'sound/machines/beep.ogg', 50, 1)
- filling = FALSE
- updateUsrDialog()
- return
+/obj/machinery/bloodbankgen/proc/beep_stop_pumping(msg = "[src] beeps loudly.", out_instead_of_in = FALSE)
+ if(out_instead_of_in)
+ filling = FALSE
+ else
+ draining = FALSE
+ updateUsrDialog()
+ audible_message(msg)
+ playsound(loc, 'sound/machines/twobeep.ogg', 50, 1)
/obj/machinery/bloodbankgen/attackby(obj/item/O, mob/user, params)
if(user.a_intent == INTENT_HARM)
return ..()
- if(default_deconstruction_screwdriver(user, "bloodbank-off", "bloodbank-off", O))
+ if(default_deconstruction_screwdriver(user, "bloodbank-off", "bloodbank-off", O) || default_unfasten_wrench(user, O, 20) == SUCCESSFUL_UNFASTEN)
if(bag)
var/obj/item/reagent_containers/blood/B = bag
B.forceMove(drop_location())
@@ -204,31 +172,37 @@
return
if(istype(O, /obj/item/reagent_containers/blood))
- . = 1 //no afterattack
- if(!panel_open)
- if(bag && outbag)
- to_chat(user, "This machine already has bags attached.")
-
- if(!bag && !outbag)
- var/choice = alert(user, "Choose where to place [O]", "", "Input", "Cancel", "Output")
- switch(choice)
- if("Cancel")
- return FALSE
- if("Input")
- attachinput(O, user)
- if("Output")
- attachoutput(O, user)
- else if(!bag)
- attachinput(O, user)
- else if(!outbag)
- attachoutput(O, user)
- else
- to_chat(user, "Close the maintenance panel first.")
- return
+ . = TRUE //no afterattack
+ var/msg
+ if(panel_open)
+ . += "Close the maintenance panel"
+ if(!anchored)
+ . += "[msg ? " and a" : "A"]nchor its bolts"
+ if(length(msg))
+ to_chat(user, "[msg] first.")
+ return
+ if(bag && outbag)
+ to_chat(user, "This machine already has bags attached.")
+ if(!bag && !outbag)
+ var/choice = alert(user, "Choose where to place [O]", "", "Input", "Cancel", "Output")
+ switch(choice)
+ if("Cancel")
+ return FALSE
+ if("Input")
+ attachinput(O, user)
+ if("Output")
+ attachoutput(O, user)
+ else if(!bag)
+ attachinput(O, user)
+ else if(!outbag)
+ attachoutput(O, user)
else
to_chat(user, "You cannot put this in [src]!")
+/obj/machinery/bloodbankgen/is_operational()
+ return ..() && anchored
+
/obj/machinery/bloodbankgen/ui_interact(mob/user)
. = ..()
@@ -268,7 +242,7 @@
if(!bag && !outbag)
dat += "No containers inside, please insert container.
"
- var/datum/browser/popup = new(user, "bloodbankgen", name, 350, 520)
+ var/datum/browser/popup = new(user, "bloodbankgen", name, 350, 420)
popup.set_content(dat)
popup.open()
@@ -306,6 +280,7 @@
if(usr && Adjacent(usr) && !issiliconoradminghost(usr))
usr.put_in_hands(bag)
bag = null
+ draining = null
update_icon()
/obj/machinery/bloodbankgen/proc/detachoutput()
@@ -314,6 +289,7 @@
if(usr && Adjacent(usr) && !issiliconoradminghost(usr))
usr.put_in_hands(outbag)
outbag = null
+ filling = null
update_icon()
/obj/machinery/bloodbankgen/proc/attachinput(obj/item/O, mob/user)
@@ -339,23 +315,22 @@
to_chat(user, "There is already something in this slot!")
/obj/machinery/bloodbankgen/Topic(href, href_list)
- if(..() || panel_open)
+ . = ..()
+ if(. | !is_operational())
return
usr.set_machine(src)
if(href_list["activateinput"])
activateinput()
- updateUsrDialog()
else if(href_list["detachinput"])
detachinput()
- updateUsrDialog()
else if(href_list["activateoutput"])
activateoutput()
- updateUsrDialog()
else if(href_list["detachoutput"])
detachoutput()
- updateUsrDialog()
+
+ updateUsrDialog()
diff --git a/code/game/machinery/cell_charger.dm b/code/game/machinery/cell_charger.dm
index 1839e44e3b..1c0635fd3d 100644
--- a/code/game/machinery/cell_charger.dm
+++ b/code/game/machinery/cell_charger.dm
@@ -13,7 +13,7 @@
var/chargelevel = -1
var/charge_rate = 500
-/obj/machinery/cell_charger/proc/updateicon()
+/obj/machinery/cell_charger/update_icon()
cut_overlays()
if(charging)
add_overlay(image(charging.icon, charging.icon_state))
@@ -53,7 +53,7 @@
charging = W
user.visible_message("[user] inserts a cell into [src].", "You insert a cell into [src].")
chargelevel = -1
- updateicon()
+ update_icon()
else
if(!charging && default_deconstruction_screwdriver(user, icon_state, icon_state, W))
return
@@ -76,7 +76,7 @@
charging.update_icon()
charging = null
chargelevel = -1
- updateicon()
+ update_icon()
/obj/machinery/cell_charger/attack_hand(mob/user)
. = ..()
@@ -127,4 +127,4 @@
use_power(charge_rate)
charging.give(charge_rate) //this is 2558, efficient batteries exist
- updateicon()
+ update_icon()
diff --git a/code/game/machinery/computer/buildandrepair.dm b/code/game/machinery/computer/buildandrepair.dm
index 056beb2e96..e8e15ff586 100644
--- a/code/game/machinery/computer/buildandrepair.dm
+++ b/code/game/machinery/computer/buildandrepair.dm
@@ -133,12 +133,13 @@
..()
/obj/structure/frame/computer/AltClick(mob/user)
- ..()
+ . = ..()
if(!isliving(user) || !user.canUseTopic(src, BE_CLOSE, ismonkey(user)))
return
if(anchored)
to_chat(usr, "You must unwrench [src] before rotating it!")
- return
+ return TRUE
setDir(turn(dir, -90))
+ return TRUE
diff --git a/code/game/machinery/computer/card.dm b/code/game/machinery/computer/card.dm
index e8e8e1cdd6..3bdb635d39 100644
--- a/code/game/machinery/computer/card.dm
+++ b/code/game/machinery/computer/card.dm
@@ -170,19 +170,19 @@ GLOBAL_VAR_INIT(time_last_changed_position, 0)
return TRUE
/obj/machinery/computer/card/AltClick(mob/user)
- ..()
+ . = ..()
if(!user.canUseTopic(src, !issilicon(user)) || !is_operational())
return
if(inserted_modify_id)
if(id_eject(user, inserted_modify_id))
inserted_modify_id = null
updateUsrDialog()
- return
+ return TRUE
if(inserted_scan_id)
if(id_eject(user, inserted_scan_id))
inserted_scan_id = null
updateUsrDialog()
- return
+ return TRUE
/obj/machinery/computer/card/ui_interact(mob/user)
. = ..()
diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm
index b5cb066b3a..22a523c58b 100755
--- a/code/game/machinery/computer/communications.dm
+++ b/code/game/machinery/computer/communications.dm
@@ -42,12 +42,6 @@
. = ..()
GLOB.shuttle_caller_list += src
-/obj/machinery/computer/communications/process()
- if(..())
- var/ai_autoupdate = aistate != STATE_STATUSDISPLAY && aistate != STATE_CALLSHUTTLE && aistate != STATE_PURCHASE && aistate != STATE_VIEWMESSAGE
- var/machine_user_autoupdate = state != STATE_STATUSDISPLAY && state != STATE_CALLSHUTTLE && state != STATE_PURCHASE && state != STATE_VIEWMESSAGE
- updateDialog(machine_user_autoupdate,ai_autoupdate)
-
/obj/machinery/computer/communications/Topic(href, href_list)
if(..())
return
@@ -76,7 +70,7 @@
if(check_access(I))
authenticated = 1
auth_id = "[I.registered_name] ([I.assignment])"
- if((20 in I.access))
+ if((ACCESS_CAPTAIN in I.access))
authenticated = 2
playsound(src, 'sound/machines/terminal_on.ogg', 50, 0)
if(obj_flags & EMAGGED)
@@ -285,7 +279,7 @@
// OMG CENTCOM LETTERHEAD
if("MessageCentCom")
- if(authenticated==2)
+ if(authenticated)
if(!checkCCcooldown())
to_chat(usr, "Arrays recycling. Please stand by.")
return
@@ -586,8 +580,6 @@
popup.set_content(dat)
popup.open()
- popup.set_content(dat)
- popup.open()
/obj/machinery/computer/communications/proc/get_javascript_header(form_id)
var/dat = {"