diff --git a/Dockerfile b/Dockerfile
index a28b231eab..a037093576 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,4 +1,4 @@
-FROM tgstation/byond:512.1467 as base
+FROM tgstation/byond:512.1484 as base
FROM base as build_base
diff --git a/README.md b/README.md
index 3e123280a2..ed82fb08e6 100644
--- a/README.md
+++ b/README.md
@@ -20,7 +20,7 @@ Based and maintained from /tg/station.
**Forums:** http://citadel-station.net/forum/
**Ban Appeals:** http://citadel-station.net/forum/forumdisplay.php?fid=8
**Code:** https://github.com/Citadel-Station-13/Citadel-Station-13
-**Discord:** [Here](https://discord.gg/3gJ9pnM).
+**Discord:** [Here](https://discord.gg/E6SQuhz).
## DOWNLOADING
diff --git a/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm b/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm
index 69e618282e..a43e6129b7 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm
@@ -167,7 +167,7 @@
/obj/item/book/manual/wiki/barman_recipes,
/obj/item/book/granter/action/drink_fling,
/obj/item/reagent_containers/food/drinks/shaker,
-/obj/item/reagent_containers/glass/rag,
+/obj/item/reagent_containers/rag,
/turf/open/floor/wood,
/area/ruin/powered/beach)
"aI" = (
diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm
index a22d1a21e7..60ae409ea2 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_animal_hospital.dmm
@@ -161,7 +161,7 @@
/turf/open/floor/plasteel/white,
/area/ruin/powered/animal_hospital)
"av" = (
-/obj/item/reagent_containers/glass/rag,
+/obj/item/reagent_containers/rag,
/obj/item/reagent_containers/spray/cleaner,
/obj/effect/turf_decal/tile/blue{
dir = 1
diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm
index 738148c948..ed5b07168f 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_ash_walker1.dmm
@@ -508,7 +508,9 @@
/obj/structure/stone_tile/cracked{
dir = 4
},
-/obj/item/construction/rcd/loaded,
+/obj/item/construction/rcd/loaded/upgraded{
+
+ },
/turf/open/indestructible/boss,
/area/ruin/unpowered/ash_walkers)
"bn" = (
diff --git a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm
index b330592a8e..8e0d9a523a 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_surface_syndicate_base1.dmm
@@ -4728,7 +4728,7 @@
/area/ruin/unpowered/syndicate_lava_base/bar)
"lz" = (
/obj/structure/table/wood,
-/obj/item/reagent_containers/glass/rag{
+/obj/item/reagent_containers/rag{
pixel_x = -4;
pixel_y = 9
},
diff --git a/_maps/RandomRuins/SpaceRuins/advancedlab.dmm b/_maps/RandomRuins/SpaceRuins/advancedlab.dmm
new file mode 100644
index 0000000000..39e29018ea
--- /dev/null
+++ b/_maps/RandomRuins/SpaceRuins/advancedlab.dmm
@@ -0,0 +1,582 @@
+//MAP CONVERTED BY dmm2tgm.py THIS HEADER COMMENT PREVENTS RECONVERSION, DO NOT REMOVE
+"a" = (
+/turf/template_noop,
+/area/template_noop)
+"b" = (
+/turf/closed/wall,
+/area/ruin/space/has_grav/powered/advancedlab)
+"c" = (
+/obj/structure/fans/tiny,
+/obj/machinery/door/airlock/external,
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/powered/advancedlab)
+"d" = (
+/obj/machinery/vending/assist,
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/powered/advancedlab)
+"e" = (
+/obj/machinery/vending/snack/random,
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/powered/advancedlab)
+"f" = (
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/powered/advancedlab)
+"g" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/powered/advancedlab)
+"h" = (
+/obj/structure/table/glass,
+/obj/item/crowbar/advanced,
+/obj/item/multitool/advanced{
+ pixel_x = 4;
+ pixel_y = -1
+ },
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/powered/advancedlab)
+"i" = (
+/obj/machinery/computer/rdconsole,
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/powered/advancedlab)
+"j" = (
+/obj/structure/chair/comfy/beige,
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/powered/advancedlab)
+"k" = (
+/obj/structure/table/glass,
+/obj/item/screwdriver/advanced{
+ pixel_y = 8
+ },
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/powered/advancedlab)
+"l" = (
+/obj/structure/table/glass,
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/powered/advancedlab)
+"m" = (
+/obj/structure/table/glass,
+/obj/item/gps{
+ gpstag = "Abductor Replication Lab";
+ pixel_x = -2;
+ pixel_y = 3
+ },
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/powered/advancedlab)
+"n" = (
+/obj/structure/chair/comfy/beige{
+ icon_state = "comfychair";
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/powered/advancedlab)
+"o" = (
+/obj/structure/table/glass,
+/obj/item/weldingtool/advanced{
+ pixel_x = 4;
+ pixel_y = 4
+ },
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/powered/advancedlab)
+"p" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/structure/table/glass,
+/obj/item/paper{
+ name = "Note to finder";
+ pixel_x = -1;
+ pixel_y = 3;
+ info = "As of yet, our experiments have seen a fair bit of success. Unfortunately, our business partners have stopped funding us as they realised they utterly hate each other. To whoever finds this place, they are yours. Use them how you will. I leave you with the next generation of greytiding."
+ },
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/powered/advancedlab)
+"q" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/structure/table/glass,
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/powered/advancedlab)
+"r" = (
+/obj/structure/table/glass,
+/obj/item/wirecutters/advanced{
+ pixel_y = 7
+ },
+/obj/item/wrench/advanced{
+ pixel_x = -1;
+ pixel_y = 3
+ },
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/powered/advancedlab)
+"s" = (
+/obj/structure/chair/comfy/beige{
+ icon_state = "comfychair";
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/powered/advancedlab)
+"t" = (
+/obj/machinery/light/small,
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/powered/advancedlab)
+"u" = (
+/obj/machinery/light/small{
+ icon_state = "bulb";
+ dir = 4
+ },
+/obj/structure/closet,
+/obj/item/clothing/suit/hooded/wintercoat/miner,
+/obj/item/clothing/shoes/sneakers/brown,
+/obj/item/clothing/under/pants/classicjeans,
+/obj/item/clothing/neck/scarf,
+/obj/item/clothing/neck/stripedgreenscarf,
+/obj/item/toy/tennis/rainbow,
+/obj/item/toy/tennis,
+/obj/item/clothing/suit/hooded/wintercoat/miner,
+/obj/item/clothing/shoes/sneakers/brown,
+/obj/item/clothing/under/pants/classicjeans,
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/powered/advancedlab)
+"v" = (
+/obj/machinery/vending/boozeomat{
+ req_access = null;
+ shut_up = 1
+ },
+/turf/closed/wall,
+/area/ruin/space/has_grav/powered/advancedlab)
+"w" = (
+/obj/machinery/door/airlock/command{
+ name = "Dorms"
+ },
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/powered/advancedlab)
+"x" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/structure/table/glass,
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/powered/advancedlab)
+"y" = (
+/obj/machinery/light/small{
+ icon_state = "bulb";
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/ruin/space/has_grav/powered/advancedlab)
+"z" = (
+/obj/machinery/door/airlock/security{
+ name = "Visiting Business Partners"
+ },
+/turf/open/floor/wood,
+/area/ruin/space/has_grav/powered/advancedlab)
+"A" = (
+/turf/open/floor/wood,
+/area/ruin/space/has_grav/powered/advancedlab)
+"B" = (
+/obj/structure/bed,
+/obj/item/bedsheet/syndie,
+/turf/open/floor/wood,
+/area/ruin/space/has_grav/powered/advancedlab)
+"C" = (
+/obj/structure/closet{
+ name = "Clothes"
+ },
+/obj/item/clothing/head/chameleon,
+/obj/item/clothing/gloves/combat,
+/obj/item/clothing/suit/chameleon,
+/obj/item/clothing/under/chameleon,
+/obj/item/clothing/shoes/chameleon,
+/turf/open/floor/wood,
+/area/ruin/space/has_grav/powered/advancedlab)
+"D" = (
+/obj/machinery/light/small,
+/turf/open/floor/wood,
+/area/ruin/space/has_grav/powered/advancedlab)
+"E" = (
+/obj/structure/table/wood,
+/obj/item/radio/headset/chameleon,
+/turf/open/floor/wood,
+/area/ruin/space/has_grav/powered/advancedlab)
+"F" = (
+/obj/structure/falsewall,
+/turf/open/floor/wood,
+/area/ruin/space/has_grav/powered/advancedlab)
+"G" = (
+/obj/structure/table/wood,
+/turf/open/floor/wood,
+/area/ruin/space/has_grav/powered/advancedlab)
+"H" = (
+/obj/structure/table/wood,
+/obj/item/radio/headset/headset_cent/alt{
+ keyslot2 = null
+ },
+/turf/open/floor/wood,
+/area/ruin/space/has_grav/powered/advancedlab)
+"I" = (
+/obj/structure/closet{
+ name = "Official Clothing"
+ },
+/obj/item/clothing/under/rank/centcom_commander,
+/obj/item/clothing/head/centhat,
+/obj/item/clothing/gloves/combat,
+/obj/item/clothing/suit/armor/vest,
+/obj/item/clothing/shoes/sneakers/brown,
+/turf/open/floor/wood,
+/area/ruin/space/has_grav/powered/advancedlab)
+"J" = (
+/obj/machinery/door/airlock/command{
+ name = "Dorms"
+ },
+/turf/open/floor/wood,
+/area/ruin/space/has_grav/powered/advancedlab)
+"K" = (
+/obj/machinery/door/airlock/command{
+ name = "Visiting Officials"
+ },
+/turf/open/floor/wood,
+/area/ruin/space/has_grav/powered/advancedlab)
+"L" = (
+/obj/structure/bed,
+/obj/item/bedsheet/centcom,
+/turf/open/floor/wood,
+/area/ruin/space/has_grav/powered/advancedlab)
+"M" = (
+/obj/structure/lattice,
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/space/basic,
+/area/ruin/space/has_grav/powered/advancedlab)
+"N" = (
+/obj/structure/extinguisher_cabinet,
+/turf/closed/wall,
+/area/ruin/space/has_grav/powered/advancedlab)
+"O" = (
+/obj/structure/reagent_dispensers/water_cooler,
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/powered/advancedlab)
+"P" = (
+/obj/structure/lattice,
+/turf/template_noop,
+/area/space/nearstation)
+"Q" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/powered/advancedlab)
+"R" = (
+/obj/machinery/light/small{
+ icon_state = "bulb";
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/ruin/space/has_grav/powered/advancedlab)
+"T" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/ruin/space/has_grav/powered/advancedlab)
+
+(1,1,1) = {"
+a
+b
+b
+b
+b
+b
+b
+b
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(2,1,1) = {"
+a
+b
+d
+j
+l
+q
+s
+O
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(3,1,1) = {"
+a
+b
+e
+j
+m
+l
+s
+f
+b
+a
+a
+a
+a
+a
+a
+a
+a
+a
+"}
+(4,1,1) = {"
+a
+c
+f
+j
+l
+l
+s
+f
+M
+M
+M
+M
+M
+M
+a
+a
+a
+a
+"}
+(5,1,1) = {"
+a
+b
+f
+f
+n
+n
+f
+f
+w
+f
+Q
+f
+f
+M
+a
+a
+a
+a
+"}
+(6,1,1) = {"
+a
+b
+f
+f
+f
+f
+f
+f
+M
+M
+M
+M
+f
+M
+a
+a
+a
+a
+"}
+(7,1,1) = {"
+a
+b
+g
+f
+f
+f
+f
+f
+b
+P
+P
+M
+R
+M
+a
+a
+a
+a
+"}
+(8,1,1) = {"
+a
+N
+f
+f
+f
+f
+f
+u
+b
+P
+P
+M
+f
+M
+a
+a
+a
+a
+"}
+(9,1,1) = {"
+a
+b
+f
+f
+f
+f
+f
+b
+b
+b
+b
+M
+J
+M
+b
+a
+a
+a
+"}
+(10,1,1) = {"
+a
+b
+h
+k
+o
+r
+f
+b
+y
+A
+A
+F
+T
+A
+b
+a
+a
+a
+"}
+(11,1,1) = {"
+a
+b
+i
+f
+f
+f
+t
+b
+z
+v
+b
+b
+b
+K
+b
+a
+a
+a
+"}
+(12,1,1) = {"
+a
+b
+p
+f
+f
+f
+f
+b
+A
+C
+b
+G
+A
+A
+b
+a
+a
+a
+"}
+(13,1,1) = {"
+a
+b
+l
+l
+x
+l
+f
+b
+A
+D
+b
+H
+A
+D
+b
+a
+a
+a
+"}
+(14,1,1) = {"
+a
+b
+b
+b
+b
+b
+b
+b
+B
+E
+b
+I
+A
+L
+b
+a
+a
+a
+"}
+(15,1,1) = {"
+a
+a
+a
+a
+a
+a
+a
+b
+b
+b
+b
+b
+b
+b
+b
+a
+a
+a
+"}
diff --git a/_maps/RandomRuins/SpaceRuins/bus.dmm b/_maps/RandomRuins/SpaceRuins/bus.dmm
index fe624c19bf..c731bcac5e 100644
--- a/_maps/RandomRuins/SpaceRuins/bus.dmm
+++ b/_maps/RandomRuins/SpaceRuins/bus.dmm
@@ -260,7 +260,7 @@
/turf/open/floor/plating/asteroid/airless,
/area/ruin/unpowered/no_grav)
"aQ" = (
-/obj/item/reagent_containers/glass/rag,
+/obj/item/reagent_containers/rag,
/turf/open/floor/plating/asteroid/airless,
/area/ruin/unpowered/no_grav)
"aR" = (
diff --git a/_maps/RandomRuins/SpaceRuins/gasthelizards.dmm b/_maps/RandomRuins/SpaceRuins/gasthelizards.dmm
index 8956267108..e21c3a92f7 100644
--- a/_maps/RandomRuins/SpaceRuins/gasthelizards.dmm
+++ b/_maps/RandomRuins/SpaceRuins/gasthelizards.dmm
@@ -103,7 +103,7 @@
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,
-/turf/open/floor/plasteel/airless/dark,
+/turf/open/floor/plasteel/freezer,
/area/ruin/space/has_grav/gasthelizard)
"n" = (
/obj/structure/closet/crate/freezer,
@@ -117,7 +117,7 @@
},
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,
-/turf/open/floor/plasteel/airless/dark,
+/turf/open/floor/plasteel/freezer,
/area/ruin/space/has_grav/gasthelizard)
"o" = (
/obj/structure/closet/crate/freezer,
@@ -129,7 +129,7 @@
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,
/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/lizard,
-/turf/open/floor/plasteel/airless/dark,
+/turf/open/floor/plasteel/freezer,
/area/ruin/space/has_grav/gasthelizard)
"p" = (
/obj/structure/window/reinforced{
@@ -158,7 +158,7 @@
/turf/open/floor/plasteel,
/area/ruin/space/has_grav/gasthelizard)
"r" = (
-/turf/open/floor/plasteel/airless/dark,
+/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/gasthelizard)
"s" = (
/obj/machinery/atmospherics/components/unary/portables_connector/visible{
@@ -203,14 +203,14 @@
/area/ruin/space/has_grav/gasthelizard)
"x" = (
/obj/structure/kitchenspike,
-/turf/open/floor/plasteel/airless/dark,
+/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/gasthelizard)
"y" = (
/obj/structure/table/reinforced,
/obj/item/kitchen/knife/butcher,
/obj/item/restraints/handcuffs,
/obj/item/reagent_containers/spray/pepper,
-/turf/open/floor/plasteel/airless/dark,
+/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/gasthelizard)
"z" = (
/obj/machinery/atmospherics/components/unary/portables_connector/visible{
@@ -230,14 +230,14 @@
/area/ruin/space/has_grav/gasthelizard)
"C" = (
/obj/machinery/gibber,
-/turf/open/floor/plasteel/airless/dark,
+/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/gasthelizard)
"D" = (
/obj/structure/table/reinforced,
/obj/item/clothing/suit/straight_jacket,
/obj/item/reagent_containers/syringe/lethal,
/obj/item/reagent_containers/syringe/lethal/choral,
-/turf/open/floor/plasteel/airless/dark,
+/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/gasthelizard)
"E" = (
/obj/machinery/atmospherics/components/unary/portables_connector/visible{
@@ -258,7 +258,7 @@
/area/ruin/space/has_grav/gasthelizard)
"H" = (
/obj/machinery/door/airlock/security,
-/turf/open/floor/plasteel/airless/dark,
+/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/gasthelizard)
"I" = (
/obj/item/reagent_containers/glass/bottle/morphine{
@@ -282,7 +282,7 @@
pixel_y = 6
},
/obj/structure/table/reinforced,
-/turf/open/floor/plasteel/airless/dark,
+/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/gasthelizard)
"J" = (
/obj/structure/rack,
@@ -328,12 +328,12 @@
/obj/item/cautery,
/obj/item/circular_saw,
/obj/machinery/light,
-/turf/open/floor/plasteel/airless/dark,
+/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/gasthelizard)
"Q" = (
/obj/structure/table/optable,
/obj/effect/decal/cleanable/blood/old,
-/turf/open/floor/plasteel/airless/dark,
+/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/gasthelizard)
"R" = (
/obj/structure/table/reinforced,
@@ -342,7 +342,7 @@
/obj/item/reagent_containers/glass/bottle/mutagen,
/obj/item/reagent_containers/glass/bottle/mutagen,
/obj/item/razor,
-/turf/open/floor/plasteel/airless/dark,
+/turf/open/floor/plasteel/dark,
/area/ruin/space/has_grav/gasthelizard)
"S" = (
/obj/machinery/suit_storage_unit/security,
diff --git a/_maps/RandomRuins/SpaceRuins/spacehotel.dmm b/_maps/RandomRuins/SpaceRuins/spacehotel.dmm
index c64a73eada..69b56946f2 100644
--- a/_maps/RandomRuins/SpaceRuins/spacehotel.dmm
+++ b/_maps/RandomRuins/SpaceRuins/spacehotel.dmm
@@ -2010,7 +2010,7 @@
/area/ruin/space/has_grav/hotel/bar)
"gd" = (
/obj/structure/table/reinforced,
-/obj/item/reagent_containers/glass/rag,
+/obj/item/reagent_containers/rag,
/obj/effect/turf_decal/tile/bar,
/obj/effect/turf_decal/tile/bar{
dir = 1
diff --git a/_maps/RandomZLevels/VR/syndicate_trainer.dmm b/_maps/RandomZLevels/VR/syndicate_trainer.dmm
index f68a799b76..a8c316d770 100644
--- a/_maps/RandomZLevels/VR/syndicate_trainer.dmm
+++ b/_maps/RandomZLevels/VR/syndicate_trainer.dmm
@@ -1973,7 +1973,7 @@
/turf/open/indestructible,
/area/awaymission/centcomAway/thunderdome)
"lB" = (
-/obj/item/reagent_containers/glass/rag,
+/obj/item/reagent_containers/rag,
/turf/open/indestructible,
/area/awaymission/centcomAway/general)
"lD" = (
diff --git a/_maps/RandomZLevels/beach.dmm b/_maps/RandomZLevels/beach.dmm
index dddeadb0be..7aab25e400 100644
--- a/_maps/RandomZLevels/beach.dmm
+++ b/_maps/RandomZLevels/beach.dmm
@@ -150,7 +150,7 @@
/area/awaymission/beach)
"aB" = (
/obj/structure/table,
-/obj/item/reagent_containers/glass/rag,
+/obj/item/reagent_containers/rag,
/turf/open/floor/wood,
/area/awaymission/beach)
"aC" = (
diff --git a/_maps/RandomZLevels/moonoutpost19.dmm b/_maps/RandomZLevels/moonoutpost19.dmm
index 61c606dcde..7edc7b4518 100644
--- a/_maps/RandomZLevels/moonoutpost19.dmm
+++ b/_maps/RandomZLevels/moonoutpost19.dmm
@@ -5383,7 +5383,7 @@
"kn" = (
/obj/structure/table/reinforced,
/obj/machinery/door/firedoor,
-/obj/item/reagent_containers/glass/rag{
+/obj/item/reagent_containers/rag{
pixel_y = 5
},
/obj/machinery/door/poddoor/shutters{
diff --git a/_maps/RandomZLevels/undergroundoutpost45.dmm b/_maps/RandomZLevels/undergroundoutpost45.dmm
index 39f7d99173..f6d46ef97d 100644
--- a/_maps/RandomZLevels/undergroundoutpost45.dmm
+++ b/_maps/RandomZLevels/undergroundoutpost45.dmm
@@ -3601,7 +3601,7 @@
"hn" = (
/obj/structure/table,
/obj/item/stack/packageWrap,
-/obj/item/reagent_containers/glass/rag,
+/obj/item/reagent_containers/rag,
/obj/effect/turf_decal/tile/bar,
/obj/effect/turf_decal/tile/bar{
dir = 1
diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm
index 4420059f62..9cd932c6d4 100644
--- a/_maps/map_files/BoxStation/BoxStation.dmm
+++ b/_maps/map_files/BoxStation/BoxStation.dmm
@@ -42,23 +42,20 @@
/turf/open/floor/plasteel,
/area/crew_quarters/bar)
"aad" = (
-/obj/structure/bed,
-/obj/machinery/airalarm{
- pixel_y = 23
- },
-/obj/machinery/button/door{
- id = "Dorm4";
- name = "Dorm Bolt Control";
- normaldoorcontrol = 1;
- pixel_x = 25;
- specialfunctions = 4
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
-/obj/effect/spawner/lootdrop/bedsheet,
-/turf/open/floor/carpet,
-/area/crew_quarters/dorms)
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/table,
+/obj/item/restraints/handcuffs,
+/turf/open/floor/plasteel,
+/area/security/prison)
"aae" = (
/obj/effect/landmark/carpspawn,
/turf/open/space,
@@ -596,18 +593,21 @@
/turf/closed/wall/r_wall,
/area/security/execution/transfer)
"abz" = (
-/obj/structure/bed,
-/obj/machinery/button/door{
- id = "Dorm5";
- name = "Cabin Bolt Control";
- normaldoorcontrol = 1;
- pixel_y = -25;
- specialfunctions = 4
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/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/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
"abA" = (
/obj/machinery/light,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
@@ -1880,16 +1880,16 @@
/turf/open/floor/plasteel/dark,
/area/security/execution/transfer)
"aef" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/effect/turf_decal/tile/red{
dir = 1
},
+/obj/effect/turf_decal/tile/red,
/obj/effect/turf_decal/tile/red{
dir = 8
},
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
/turf/open/floor/plasteel,
/area/security/prison)
"aeg" = (
@@ -2150,54 +2150,30 @@
/turf/open/floor/plating,
/area/maintenance/fore/secondary)
"aeD" = (
-/obj/structure/bed,
-/obj/machinery/button/door{
- id = "Dorm6";
- name = "Cabin Bolt Control";
- normaldoorcontrol = 1;
- pixel_y = -25;
- specialfunctions = 4
+/obj/machinery/door/airlock/security{
+ name = "Firing Range";
+ req_access_txt = "2"
},
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
-/obj/effect/spawner/lootdrop/bedsheet,
-/turf/open/floor/wood,
-/area/crew_quarters/dorms)
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
"aeE" = (
-/obj/structure/bed,
-/obj/machinery/airalarm{
- pixel_y = 23
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
},
-/obj/machinery/button/door{
- id = "Dorm3";
- name = "Dorm Bolt Control";
- normaldoorcontrol = 1;
- pixel_x = 25;
- specialfunctions = 4
+/obj/machinery/light/small{
+ dir = 8
},
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
- dir = 4
- },
-/obj/effect/spawner/lootdrop/bedsheet,
-/turf/open/floor/carpet,
-/area/crew_quarters/dorms)
+/turf/open/floor/plating,
+/area/security/prison)
"aeF" = (
-/obj/structure/bed,
-/obj/machinery/airalarm{
- pixel_y = 23
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
},
-/obj/machinery/button/door{
- id = "Dorm2";
- name = "Dorm Bolt Control";
- normaldoorcontrol = 1;
- pixel_x = 25;
- specialfunctions = 4
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
- dir = 4
- },
-/obj/effect/spawner/lootdrop/bedsheet,
-/turf/open/floor/carpet,
-/area/crew_quarters/dorms)
+/turf/open/floor/plating,
+/area/security/prison)
"aeG" = (
/obj/structure/cable,
/obj/machinery/power/solar{
@@ -2273,17 +2249,13 @@
/turf/open/floor/plasteel/dark,
/area/security/execution/transfer)
"aeM" = (
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
},
-/obj/effect/turf_decal/tile/red{
- dir = 1
+/obj/structure/window/reinforced{
+ dir = 4
},
-/obj/effect/turf_decal/tile/red{
- dir = 8
- },
-/turf/open/floor/plasteel,
+/turf/open/floor/plating,
/area/security/prison)
"aeN" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
@@ -2575,10 +2547,9 @@
/turf/open/floor/plasteel,
/area/security/main)
"afn" = (
-/obj/structure/bed,
-/obj/item/bedsheet/medical,
-/turf/open/floor/plasteel/white,
-/area/medical/virology)
+/obj/structure/table,
+/turf/open/floor/plasteel/showroomfloor,
+/area/security/warden)
"afo" = (
/obj/machinery/door/airlock/external{
name = "Escape Pod Three"
@@ -2600,13 +2571,19 @@
/turf/open/space/basic,
/area/space)
"afq" = (
-/obj/structure/bed,
-/obj/item/tank/internals/anesthetic,
-/obj/item/clothing/mask/breath,
-/obj/effect/decal/cleanable/semen,
-/obj/effect/spawner/lootdrop/bedsheet,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel,
+/area/security/prison)
+"afr" = (
+/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
-/area/maintenance/bar)
+/area/security/prison)
+"afs" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/security/prison)
"aft" = (
/obj/machinery/atmospherics/pipe/simple/general/visible{
dir = 5
@@ -2663,16 +2640,16 @@
/turf/open/floor/plasteel/dark,
/area/security/execution/transfer)
"afz" = (
-/obj/structure/table,
-/obj/item/restraints/handcuffs,
-/obj/effect/turf_decal/tile/red{
- dir = 1
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
},
-/obj/effect/turf_decal/tile/red,
-/obj/effect/turf_decal/tile/red{
- dir = 8
+/obj/machinery/door/window/westleft{
+ base_state = "right";
+ dir = 4;
+ icon_state = "right";
+ name = "Shooting Range"
},
-/turf/open/floor/plasteel,
+/turf/open/floor/plating,
/area/security/prison)
"afA" = (
/turf/closed/wall/r_wall,
@@ -2916,6 +2893,16 @@
/obj/machinery/atmospherics/pipe/manifold4w/general/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
+"age" = (
+/obj/machinery/door/window/southleft{
+ name = "Target Storage"
+ },
+/obj/item/target/clown,
+/obj/item/target/clown,
+/obj/item/target,
+/obj/item/target,
+/turf/open/floor/plating,
+/area/security/prison)
"agf" = (
/obj/structure/table,
/obj/item/stack/sheet/metal,
@@ -3017,7 +3004,7 @@
/turf/open/floor/plasteel/showroomfloor,
/area/security/warden)
"agp" = (
-/obj/machinery/computer/prisoner,
+/obj/machinery/computer/prisoner/management,
/turf/open/floor/plasteel/showroomfloor,
/area/security/warden)
"agq" = (
@@ -3069,6 +3056,16 @@
},
/turf/open/floor/plasteel/showroomfloor,
/area/security/warden)
+"agv" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/security/prison)
"agw" = (
/obj/structure/table,
/obj/machinery/syndicatebomb/training,
@@ -3193,10 +3190,13 @@
/turf/open/floor/plasteel,
/area/security/main)
"agH" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
+/obj/machinery/door/window/southright{
+ name = "Target Storage"
},
-/turf/open/floor/plasteel/dark,
+/obj/item/target/alien,
+/obj/item/target/alien,
+/obj/item/target/syndicate,
+/turf/open/floor/plating,
/area/security/prison)
"agI" = (
/obj/machinery/airalarm{
@@ -3567,6 +3567,15 @@
},
/turf/open/floor/plasteel/showroomfloor,
/area/security/warden)
+"ahw" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/security/prison)
"ahx" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -4582,7 +4591,7 @@
/turf/open/space,
/area/solar/port/fore)
"ajr" = (
-/obj/machinery/computer/gulag_teleporter_computer,
+/obj/machinery/computer/prisoner/gulag_teleporter_computer,
/turf/open/floor/plasteel,
/area/security/processing)
"ajs" = (
@@ -4590,26 +4599,18 @@
/turf/open/floor/plasteel,
/area/security/processing)
"ajt" = (
-/obj/structure/sign/warning/securearea{
- pixel_x = 32
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/obj/structure/table,
-/obj/item/storage/box/prisoner,
-/obj/machinery/camera{
- c_tag = "Labor Shuttle Dock North"
- },
-/turf/open/floor/plasteel,
-/area/security/processing)
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plating,
+/area/security/prison)
"aju" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+/obj/effect/turf_decal/stripes/line{
dir = 6
},
-/obj/machinery/computer/security/labor,
-/turf/open/floor/plasteel,
-/area/security/processing)
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/security/prison)
"ajv" = (
/obj/machinery/light{
dir = 8
@@ -4923,6 +4924,29 @@
/obj/effect/mapping_helpers/airlock/cyclelink_helper,
/turf/open/floor/plating,
/area/maintenance/solars/port/fore)
+"ajX" = (
+/obj/structure/table,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/recharger,
+/obj/item/gun/energy/laser/practice,
+/obj/item/gun/energy/laser/practice,
+/turf/open/floor/plasteel,
+/area/security/prison)
+"ajY" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/security/prison)
"ajZ" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/sign/warning/vacuum/external{
@@ -4947,20 +4971,18 @@
/area/security/processing)
"akc" = (
/obj/structure/cable{
- icon_state = "4-8"
+ icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 6
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
},
/turf/open/floor/plasteel,
-/area/security/processing)
+/area/security/prison)
"akd" = (
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/plasteel,
-/area/security/processing)
+/obj/structure/lattice,
+/turf/closed/wall,
+/area/security/prison)
"ake" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -5229,6 +5251,44 @@
},
/turf/open/floor/plating,
/area/maintenance/solars/port/fore)
+"akC" = (
+/obj/machinery/door/airlock/security{
+ name = "Labor Shuttle";
+ req_access_txt = "2"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/security/processing)
+"akD" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/security/prison)
+"akE" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/processing)
+"akF" = (
+/obj/structure/sign/warning/securearea{
+ pixel_x = 32
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/camera{
+ c_tag = "Labor Shuttle Dock North"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/security/processing)
"akG" = (
/obj/structure/sign/warning/vacuum/external{
pixel_y = 32
@@ -5249,11 +5309,12 @@
/turf/open/floor/plasteel,
/area/security/processing)
"akJ" = (
-/obj/machinery/light_switch{
- pixel_x = 27
+/obj/structure/cable{
+ icon_state = "2-4"
},
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
- dir = 4
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
},
/turf/open/floor/plasteel,
/area/security/processing)
@@ -5538,12 +5599,42 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/maintenance/port/fore)
+"alj" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/processing)
"alk" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
dir = 1
},
/turf/open/floor/plasteel,
/area/engine/atmos)
+"all" = (
+/obj/machinery/light_switch{
+ pixel_x = 27
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/computer/security/labor,
+/turf/open/floor/plasteel,
+/area/security/processing)
+"alm" = (
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/chair{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/processing)
"aln" = (
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 4
@@ -5555,6 +5646,12 @@
},
/turf/open/floor/plating,
/area/security/processing)
+"alo" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/table,
+/obj/item/storage/box/prisoner,
+/turf/open/floor/plasteel,
+/area/security/processing)
"alp" = (
/turf/open/floor/plating,
/area/security/processing)
@@ -5562,13 +5659,10 @@
/turf/open/floor/plasteel,
/area/security/processing)
"alr" = (
-/obj/machinery/airalarm{
- dir = 8;
- pixel_x = 24
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/turf/open/floor/plasteel,
-/area/security/processing)
+/obj/structure/target_stake,
+/obj/item/target/syndicate,
+/turf/open/floor/plating,
+/area/security/prison)
"als" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -5620,6 +5714,18 @@
},
/turf/open/floor/plasteel,
/area/security/brig)
+"alx" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
"aly" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 1
@@ -5774,6 +5880,24 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plating,
/area/maintenance/fore/secondary)
+"alM" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/security/main";
+ dir = 4;
+ name = "Firing Range APC";
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
"alO" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -5829,6 +5953,44 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
/turf/open/floor/plasteel,
/area/engine/atmos)
+"alY" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/camera{
+ c_tag = "Firing Range";
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"alZ" = (
+/obj/structure/table,
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/item/clothing/glasses/sunglasses{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/clothing/glasses/sunglasses{
+ pixel_x = 3;
+ pixel_y = 3
+ },
+/obj/item/clothing/ears/earmuffs{
+ pixel_x = -3;
+ pixel_y = -2
+ },
+/obj/item/clothing/ears/earmuffs{
+ pixel_x = -3;
+ pixel_y = -2
+ },
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
"ama" = (
/mob/living/simple_animal/sloth/paperwork,
/turf/open/floor/plasteel,
@@ -5848,10 +6010,6 @@
},
/turf/open/floor/plasteel,
/area/security/processing)
-"amd" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/turf/open/floor/plasteel,
-/area/security/processing)
"ame" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -6124,26 +6282,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel,
/area/security/processing)
-"amN" = (
-/obj/structure/table,
-/obj/item/clothing/glasses/sunglasses{
- pixel_x = 3;
- pixel_y = 3
- },
-/obj/item/clothing/glasses/sunglasses{
- pixel_x = 3;
- pixel_y = 3
- },
-/obj/item/clothing/ears/earmuffs{
- pixel_x = -3;
- pixel_y = -2
- },
-/obj/item/clothing/ears/earmuffs{
- pixel_x = -3;
- pixel_y = -2
- },
-/turf/open/floor/plasteel/showroomfloor,
-/area/security/warden)
"amQ" = (
/obj/structure/cable{
icon_state = "0-4"
@@ -7503,6 +7641,24 @@
},
/turf/open/floor/plating,
/area/maintenance/fore/secondary)
+"aqn" = (
+/obj/structure/bed,
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/machinery/button/door{
+ id = "Dorm4";
+ name = "Dorm Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = 25;
+ specialfunctions = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/effect/spawner/lootdrop/bedsheet,
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
"aqo" = (
/obj/structure/chair/stool{
pixel_y = 8
@@ -8283,6 +8439,19 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/fitness)
+"asu" = (
+/obj/structure/bed,
+/obj/machinery/button/door{
+ id = "Dorm5";
+ 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)
"asv" = (
/obj/structure/table,
/obj/effect/spawner/lootdrop/maintenance{
@@ -8374,6 +8543,19 @@
},
/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)
"asM" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
@@ -8980,6 +9162,24 @@
},
/turf/open/floor/plasteel/dark,
/area/crew_quarters/fitness)
+"auw" = (
+/obj/structure/bed,
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/machinery/button/door{
+ id = "Dorm3";
+ name = "Dorm Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = 25;
+ specialfunctions = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/effect/spawner/lootdrop/bedsheet,
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
"aux" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
@@ -10846,6 +11046,24 @@
},
/turf/open/floor/plasteel,
/area/ai_monitored/storage/eva)
+"ayV" = (
+/obj/structure/bed,
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/machinery/button/door{
+ id = "Dorm2";
+ name = "Dorm Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = 25;
+ specialfunctions = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/effect/spawner/lootdrop/bedsheet,
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
"ayW" = (
/turf/closed/wall,
/area/ai_monitored/storage/eva)
@@ -19384,7 +19602,7 @@
/turf/closed/wall,
/area/bridge)
"aTR" = (
-/obj/machinery/computer/prisoner,
+/obj/machinery/computer/prisoner/management,
/obj/effect/turf_decal/tile/red{
dir = 1
},
@@ -20908,7 +21126,7 @@
pixel_x = 32
},
/obj/item/book/manual/wiki/barman_recipes,
-/obj/item/reagent_containers/glass/rag,
+/obj/item/reagent_containers/rag,
/obj/effect/turf_decal/tile/bar,
/obj/effect/turf_decal/tile/bar{
dir = 1
@@ -31259,6 +31477,9 @@
/obj/effect/turf_decal/tile/brown{
dir = 8
},
+/obj/machinery/keycard_auth{
+ pixel_y = 25
+ },
/turf/open/floor/plasteel,
/area/quartermaster/qm)
"bvH" = (
@@ -39377,6 +39598,11 @@
/obj/machinery/announcement_system,
/turf/open/floor/plasteel,
/area/tcommsat/computer)
+"bOm" = (
+/obj/structure/bed,
+/obj/item/bedsheet/medical,
+/turf/open/floor/plasteel/white,
+/area/medical/virology)
"bOn" = (
/obj/machinery/light{
dir = 1
@@ -56671,12 +56897,6 @@
/obj/item/stock_parts/cell/high,
/turf/open/floor/plasteel/white,
/area/science/circuit)
-"eef" = (
-/obj/machinery/autolathe{
- name = "public autolathe"
- },
-/turf/open/floor/plasteel,
-/area/quartermaster/office)
"evR" = (
/turf/open/floor/plating,
/area/maintenance/bar)
@@ -56912,6 +57132,12 @@
/obj/item/pen,
/turf/open/floor/plasteel/white,
/area/science/circuit)
+"ium" = (
+/mob/living/simple_animal/bot/cleanbot{
+ name = "C.L.E.A.N."
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/medbay/central)
"izv" = (
/obj/machinery/vending/clothing,
/obj/machinery/light/small{
@@ -57146,12 +57372,6 @@
},
/turf/open/floor/plating,
/area/construction/mining/aux_base)
-"lKX" = (
-/mob/living/simple_animal/bot/cleanbot{
- name = "C.L.E.A.N."
- },
-/turf/open/floor/plasteel/white,
-/area/medical/medbay/central)
"lMg" = (
/obj/effect/turf_decal/stripes/line{
dir = 9
@@ -57383,6 +57603,14 @@
},
/turf/open/floor/plating,
/area/construction)
+"rMN" = (
+/obj/structure/bed,
+/obj/item/tank/internals/anesthetic,
+/obj/item/clothing/mask/breath,
+/obj/effect/decal/cleanable/semen,
+/obj/effect/spawner/lootdrop/bedsheet,
+/turf/open/floor/plating,
+/area/maintenance/bar)
"rNc" = (
/obj/effect/turf_decal/stripes/line{
dir = 6
@@ -57594,6 +57822,12 @@
},
/turf/open/floor/plasteel/white,
/area/science/circuit)
+"urE" = (
+/obj/machinery/autolathe{
+ name = "public autolathe"
+ },
+/turf/open/floor/plasteel,
+/area/quartermaster/office)
"usO" = (
/obj/machinery/vending/snack/random,
/obj/machinery/light/small{
@@ -57658,7 +57892,7 @@
/area/ai_monitored/storage/eva)
"vjm" = (
/obj/structure/table/wood,
-/obj/item/reagent_containers/glass/rag,
+/obj/item/reagent_containers/rag,
/obj/machinery/light/small{
dir = 1
},
@@ -79853,7 +80087,7 @@ sAM
imH
evR
evR
-afq
+rMN
bCq
bUs
bLv
@@ -80532,12 +80766,12 @@ adB
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+acd
+acd
+acd
+afr
+acd
+acd
aaa
aaa
aaa
@@ -80790,11 +81024,11 @@ abc
abc
afu
abc
-aaa
-aaa
-aaa
-aaa
-aaa
+age
+aeE
+afs
+ahw
+acd
aaa
aaa
aaa
@@ -81047,11 +81281,11 @@ aea
aeH
aft
abc
-aaa
-aaa
-aaa
-aaa
-aaa
+agH
+aeF
+alr
+ajt
+afr
aaa
aaa
aiU
@@ -81305,10 +81539,10 @@ aeJ
afw
abc
abc
-aaf
-aaa
-aaf
-aaf
+aeF
+aay
+ajt
+akd
aaf
aaf
aiU
@@ -81562,9 +81796,9 @@ aeI
afv
agf
abc
-aaf
-aaa
-aaa
+aeF
+aay
+ajt
aiT
aiT
aiV
@@ -81615,7 +81849,7 @@ cNG
cNJ
bLF
aZK
-eef
+urE
bbR
bqt
cBq
@@ -81819,9 +82053,9 @@ aeL
afy
agh
abc
-aaf
-aaa
-aaf
+aeM
+afz
+aju
aiT
ajs
akb
@@ -82076,9 +82310,9 @@ aeK
afx
agg
abc
-aaf
-aaa
-aaa
+ajX
+alx
+alY
aiU
ajr
aka
@@ -82332,13 +82566,13 @@ aeg
aeN
afA
afA
-afA
-aaf
-aaa
-aaa
-aiU
-aju
-akd
+abc
+afq
+agv
+ajY
+akC
+akE
+akJ
akK
als
ame
@@ -82585,20 +82819,20 @@ acd
acC
ada
adF
+aad
+abz
aef
-aeM
-afz
-aai
-aai
-aai
-aai
-aai
-aai
-ajt
+aeD
+aav
akc
-akJ
-alr
-amd
+alM
+alZ
+akD
+akF
+alj
+all
+alm
+alo
amL
anu
alq
@@ -82845,11 +83079,11 @@ adH
aei
aeO
afJ
-acd
-agL
-agK
-agK
-aiB
+aai
+aai
+aai
+aai
+aai
aai
ajw
akf
@@ -83103,10 +83337,10 @@ aeh
aeO
afI
agl
-agH
+agL
ags
ags
-aho
+aiB
acd
ajv
ake
@@ -87728,7 +87962,7 @@ bkA
acF
aes
avB
-amN
+afn
agt
awN
aHp
@@ -88517,13 +88751,13 @@ aoD
aod
aqe
arf
-aad
+aqn
ath
arf
-aeE
+auw
ath
arf
-aeF
+ayV
ath
dgz
aCd
@@ -90317,7 +90551,7 @@ cSA
aqe
arf
ari
-abz
+asu
aun
auW
avR
@@ -91345,7 +91579,7 @@ apr
aqj
arf
ark
-aeD
+asL
aun
avu
awt
@@ -94210,7 +94444,7 @@ blm
bmL
boi
bpw
-lKX
+ium
bsx
btX
bvj
@@ -96541,7 +96775,7 @@ bof
fTg
bLV
bNd
-afn
+bOm
bPp
bQF
bRN
@@ -98347,7 +98581,7 @@ bRQ
bOr
bSQ
bWj
-afn
+bOm
bXc
bYe
bNd
@@ -98861,7 +99095,7 @@ bRQ
bOr
bSQ
bWj
-afn
+bOm
bXc
bYe
bNd
diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm
index bfc4a60f08..554904ada0 100644
--- a/_maps/map_files/Deltastation/DeltaStation2.dmm
+++ b/_maps/map_files/Deltastation/DeltaStation2.dmm
@@ -124,22 +124,6 @@
},
/turf/open/floor/plating,
/area/crew_quarters/abandoned_gambling_den)
-"aaq" = (
-/obj/structure/bed,
-/obj/machinery/status_display{
- pixel_y = 32
- },
-/obj/item/bedsheet/clown,
-/turf/open/floor/plasteel/grimy,
-/area/hallway/secondary/service)
-"aar" = (
-/obj/structure/bed,
-/obj/machinery/status_display{
- pixel_y = 32
- },
-/obj/item/bedsheet/mime,
-/turf/open/floor/wood,
-/area/hallway/secondary/service)
"aas" = (
/obj/docking_port/stationary/random{
id = "pod_lavaland1";
@@ -159,52 +143,6 @@
/obj/effect/landmark/xeno_spawn,
/turf/open/space,
/area/solar/starboard/fore)
-"aav" = (
-/obj/structure/bed,
-/obj/machinery/light{
- dir = 1
- },
-/obj/machinery/status_display{
- pixel_y = 32
- },
-/obj/effect/spawner/lootdrop/bedsheet,
-/turf/open/floor/carpet,
-/area/crew_quarters/dorms)
-"aaw" = (
-/obj/structure/bed,
-/obj/effect/decal/cleanable/dirt{
- desc = "A thin layer of dust coating the floor.";
- name = "dust"
- },
-/obj/effect/spawner/lootdrop/bedsheet,
-/turf/open/floor/wood,
-/area/crew_quarters/dorms)
-"aax" = (
-/obj/structure/bed,
-/obj/effect/spawner/lootdrop/bedsheet,
-/turf/open/floor/wood,
-/area/crew_quarters/dorms)
-"aay" = (
-/obj/structure/bed,
-/obj/effect/spawner/lootdrop/bedsheet,
-/turf/open/floor/plasteel/grimy,
-/area/crew_quarters/dorms)
-"aaz" = (
-/obj/structure/bed,
-/obj/machinery/light,
-/obj/machinery/status_display{
- pixel_y = -32
- },
-/obj/effect/spawner/lootdrop/bedsheet,
-/turf/open/floor/carpet,
-/area/crew_quarters/dorms)
-"aaA" = (
-/obj/structure/bed,
-/obj/item/tank/internals/anesthetic,
-/obj/item/clothing/mask/breath,
-/obj/effect/spawner/lootdrop/bedsheet,
-/turf/open/floor/plating,
-/area/crew_quarters/abandoned_gambling_den)
"aaE" = (
/obj/structure/lattice/catwalk,
/turf/open/space,
@@ -1072,6 +1010,10 @@
},
/turf/open/floor/plasteel,
/area/hallway/secondary/entry)
+"aez" = (
+/obj/machinery/keycard_auth,
+/turf/closed/wall,
+/area/quartermaster/qm)
"aeB" = (
/obj/machinery/status_display,
/turf/closed/wall,
@@ -1133,6 +1075,10 @@
"aeF" = (
/turf/open/floor/plating,
/area/construction/mining/aux_base)
+"aeH" = (
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/space/nearstation)
"aeR" = (
/obj/structure/closet/emcloset,
/obj/effect/decal/cleanable/dirt,
@@ -4561,7 +4507,7 @@
/turf/open/floor/plasteel,
/area/security/checkpoint)
"anx" = (
-/obj/machinery/computer/prisoner{
+/obj/machinery/computer/prisoner/management{
dir = 8
},
/obj/machinery/status_display{
@@ -9328,7 +9274,6 @@
/obj/item/restraints/legcuffs/beartrap,
/obj/item/restraints/legcuffs/beartrap,
/obj/item/restraints/legcuffs/beartrap,
-/obj/effect/decal/cleanable/cobweb,
/obj/effect/turf_decal/bot,
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -9394,7 +9339,6 @@
name = "Custodial RC";
pixel_y = 32
},
-/obj/effect/decal/cleanable/dirt,
/obj/machinery/camera{
c_tag = "Custodial Closet";
dir = 2;
@@ -9913,22 +9857,35 @@
/turf/open/floor/plasteel,
/area/janitor)
"awC" = (
-/obj/effect/decal/cleanable/dirt,
/obj/effect/landmark/start/janitor,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
-/turf/open/floor/plating,
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
/area/janitor)
"awD" = (
-/obj/effect/decal/cleanable/dirt,
/obj/structure/cable/white{
icon_state = "1-2"
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
-/turf/open/floor/plating,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
/area/janitor)
"awE" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
@@ -9943,7 +9900,6 @@
/turf/open/floor/plasteel/white,
/area/janitor)
"awF" = (
-/obj/effect/decal/cleanable/dirt,
/obj/effect/landmark/start/janitor,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 8
@@ -10669,7 +10625,6 @@
/turf/open/floor/plasteel,
/area/janitor)
"axX" = (
-/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/bot,
/obj/effect/landmark/event_spawn,
/obj/effect/turf_decal/tile/neutral{
@@ -10697,11 +10652,21 @@
/area/janitor)
"axZ" = (
/obj/structure/janitorialcart,
-/obj/effect/decal/cleanable/dirt,
/obj/structure/sign/poster/official/work_for_a_future{
pixel_x = 32
},
-/turf/open/floor/plating,
+/obj/effect/turf_decal/bot,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
/area/janitor)
"aya" = (
/obj/effect/decal/cleanable/dirt,
@@ -11289,7 +11254,6 @@
},
/obj/item/reagent_containers/glass/bucket,
/obj/item/reagent_containers/glass/bucket,
-/obj/effect/decal/cleanable/dirt,
/obj/item/mop,
/obj/item/mop,
/obj/item/radio/intercom{
@@ -11332,15 +11296,12 @@
/obj/machinery/light_switch{
pixel_y = -26
},
-/obj/effect/decal/cleanable/dirt,
/obj/structure/cable/white{
icon_state = "1-8"
},
+/obj/effect/turf_decal/tile/green,
/obj/effect/turf_decal/tile/green{
- dir = 1
- },
-/obj/effect/turf_decal/tile/green{
- dir = 4
+ dir = 8
},
/turf/open/floor/plasteel/white,
/area/janitor)
@@ -11381,7 +11342,6 @@
/obj/structure/extinguisher_cabinet{
pixel_x = 26
},
-/obj/effect/decal/cleanable/dirt,
/obj/machinery/light/small,
/obj/structure/disposalpipe/trunk{
dir = 8
@@ -11832,11 +11792,15 @@
/area/engine/atmospherics_engine)
"aAb" = (
/turf/closed/wall,
-/area/hydroponics/garden/abandoned)
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
"aAc" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/closed/wall,
-/area/hydroponics/garden/abandoned)
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
"aAd" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/tile/neutral{
@@ -11882,7 +11846,6 @@
/turf/closed/wall,
/area/janitor)
"aAi" = (
-/obj/effect/decal/cleanable/dirt,
/obj/machinery/door/airlock{
name = "Custodial Closet";
req_access_txt = "26"
@@ -11939,6 +11902,7 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel,
/area/maintenance/port/fore)
"aAm" = (
@@ -12416,7 +12380,9 @@
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/delivery,
/turf/open/floor/plasteel,
-/area/hydroponics/garden/abandoned)
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
"aBh" = (
/obj/item/twohanded/required/kirbyplants/random,
/obj/machinery/light/small{
@@ -12425,27 +12391,27 @@
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/delivery,
/turf/open/floor/plasteel,
-/area/hydroponics/garden/abandoned)
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
"aBi" = (
/obj/structure/table,
/obj/item/clothing/suit/apron/overalls,
/obj/item/cultivator,
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
-/area/hydroponics/garden/abandoned)
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
"aBj" = (
/obj/machinery/biogenerator,
/obj/effect/turf_decal/delivery,
/turf/open/floor/plasteel,
-/area/hydroponics/garden/abandoned)
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
"aBk" = (
/obj/structure/table,
-/obj/item/seeds/poppy/lily{
- pixel_x = 4;
- pixel_y = 4
- },
-/obj/item/seeds/poppy/geranium,
-/obj/effect/decal/cleanable/dirt,
/obj/item/reagent_containers/food/snacks/grown/wheat,
/obj/item/reagent_containers/food/snacks/grown/corn,
/obj/item/reagent_containers/food/snacks/grown/apple,
@@ -12453,15 +12419,23 @@
/obj/machinery/airalarm{
pixel_y = 23
},
+/obj/item/seeds/poppy/lily{
+ pixel_x = 4;
+ pixel_y = 4
+ },
/turf/open/floor/plasteel,
-/area/hydroponics/garden/abandoned)
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
"aBl" = (
/obj/machinery/hydroponics/soil,
/obj/item/seeds/tea,
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/delivery,
/turf/open/floor/plasteel,
-/area/hydroponics/garden/abandoned)
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
"aBm" = (
/obj/item/twohanded/required/kirbyplants/random,
/obj/machinery/status_display{
@@ -12469,18 +12443,21 @@
},
/obj/effect/turf_decal/delivery,
/turf/open/floor/plasteel,
-/area/hydroponics/garden/abandoned)
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
"aBn" = (
/obj/structure/table,
/obj/item/stack/packageWrap,
-/obj/effect/decal/cleanable/dirt,
/obj/item/hand_labeler,
/obj/item/reagent_containers/food/snacks/grown/tea,
/obj/item/reagent_containers/food/snacks/grown/grapes,
/obj/item/reagent_containers/food/snacks/grown/cherries,
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
-/area/hydroponics/garden/abandoned)
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
"aBo" = (
/obj/item/twohanded/required/kirbyplants/random,
/obj/machinery/light/small{
@@ -12490,14 +12467,18 @@
/obj/effect/turf_decal/delivery,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel,
-/area/hydroponics/garden/abandoned)
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
"aBp" = (
/obj/machinery/hydroponics/soil,
/obj/item/seeds/poppy,
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/delivery,
/turf/open/floor/plasteel,
-/area/hydroponics/garden/abandoned)
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
"aBq" = (
/obj/structure/cable/white{
icon_state = "2-4"
@@ -12595,7 +12576,6 @@
/turf/open/floor/plating,
/area/maintenance/port/fore)
"aBx" = (
-/obj/effect/decal/cleanable/dirt,
/obj/structure/cable/white{
icon_state = "4-8"
},
@@ -12682,16 +12662,6 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
-/turf/open/floor/plating,
-/area/maintenance/port/fore)
-"aBD" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -13090,26 +13060,34 @@
/turf/closed/wall/r_wall,
/area/engine/atmospherics_engine)
"aCv" = (
-/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel,
-/area/hydroponics/garden/abandoned)
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
"aCw" = (
+/obj/effect/turf_decal/delivery,
+/obj/machinery/hydroponics/soil,
+/obj/item/seeds/watermelon,
/turf/open/floor/plasteel,
-/area/hydroponics/garden/abandoned)
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
"aCx" = (
-/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 4
},
/turf/open/floor/plasteel,
-/area/hydroponics/garden/abandoned)
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
"aCy" = (
-/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
dir = 4
},
/turf/open/floor/plasteel,
-/area/hydroponics/garden/abandoned)
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
"aCz" = (
/obj/structure/cable/white{
icon_state = "1-2"
@@ -13138,13 +13116,19 @@
/turf/closed/wall,
/area/maintenance/port/fore)
"aCD" = (
-/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
/obj/structure/disposalpipe/segment,
-/turf/open/floor/plating,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
/area/maintenance/port/fore)
"aCE" = (
/obj/structure/cable/white{
@@ -13159,7 +13143,6 @@
/turf/open/floor/plasteel,
/area/maintenance/port/fore)
"aCF" = (
-/obj/effect/decal/cleanable/dirt,
/obj/structure/cable/white{
icon_state = "4-8"
},
@@ -13192,10 +13175,16 @@
icon_state = "4-8"
},
/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
-/turf/open/floor/plating,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/turf/open/floor/plasteel,
/area/maintenance/port/fore)
"aCI" = (
-/obj/effect/decal/cleanable/dirt,
/obj/structure/cable/white{
icon_state = "4-8"
},
@@ -13716,15 +13705,21 @@
},
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
-/area/hydroponics/garden/abandoned)
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
"aDy" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on,
/turf/open/floor/plasteel,
-/area/hydroponics/garden/abandoned)
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
"aDz" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel,
-/area/hydroponics/garden/abandoned)
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
"aDA" = (
/obj/structure/sink{
dir = 4;
@@ -13735,7 +13730,9 @@
},
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
-/area/hydroponics/garden/abandoned)
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
"aDB" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
@@ -13768,6 +13765,14 @@
},
/turf/open/floor/plasteel/grimy,
/area/hallway/secondary/service)
+"aDF" = (
+/obj/structure/bed,
+/obj/machinery/status_display{
+ pixel_y = 32
+ },
+/obj/item/bedsheet/clown,
+/turf/open/floor/plasteel/grimy,
+/area/hallway/secondary/service)
"aDG" = (
/turf/open/floor/plasteel/grimy,
/area/hallway/secondary/service)
@@ -14238,37 +14243,38 @@
/turf/open/space,
/area/space/nearstation)
"aEB" = (
-/obj/effect/decal/cleanable/dirt,
/obj/structure/cable/white{
icon_state = "2-4"
},
/turf/open/floor/plasteel,
-/area/hydroponics/garden/abandoned)
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
"aEC" = (
/obj/structure/cable/white{
icon_state = "4-8"
},
/turf/open/floor/plasteel,
-/area/hydroponics/garden/abandoned)
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
"aED" = (
-/obj/effect/decal/cleanable/dirt,
/obj/structure/cable/white{
icon_state = "4-8"
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
-/area/hydroponics/garden/abandoned)
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
"aEE" = (
/obj/structure/cable/white{
icon_state = "2-8"
},
/turf/open/floor/plasteel,
-/area/hydroponics/garden/abandoned)
-"aEF" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/plasteel,
-/area/hydroponics/garden/abandoned)
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
"aEG" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/cable/white{
@@ -14482,7 +14488,7 @@
},
/obj/item/book/manual/wiki/barman_recipes,
/obj/item/reagent_containers/food/drinks/shaker,
-/obj/item/reagent_containers/glass/rag,
+/obj/item/reagent_containers/rag,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -14904,14 +14910,18 @@
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/delivery,
/turf/open/floor/plasteel,
-/area/hydroponics/garden/abandoned)
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
"aFK" = (
/obj/machinery/hydroponics/soil,
/obj/item/seeds/harebell,
/obj/machinery/light/small,
/obj/effect/turf_decal/delivery,
/turf/open/floor/plasteel,
-/area/hydroponics/garden/abandoned)
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
"aFL" = (
/obj/structure/table,
/obj/item/shovel/spade,
@@ -14922,47 +14932,54 @@
pixel_x = -5
},
/obj/item/reagent_containers/syringe,
-/obj/effect/decal/cleanable/dirt,
/obj/structure/cable/white,
/obj/machinery/power/apc{
- dir = 2;
- name = "Abandoned Garden APC";
areastring = "/area/hydroponics/garden/abandoned";
+ dir = 2;
+ name = "Maintenance Garden APC";
pixel_y = -26
},
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
-/area/hydroponics/garden/abandoned)
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
"aFM" = (
-/obj/machinery/seed_extractor,
/obj/machinery/status_display{
pixel_y = -32
},
-/obj/item/reagent_containers/glass/bucket,
/obj/effect/turf_decal/delivery,
+/obj/machinery/hydroponics/soil,
+/obj/item/seeds/poppy/geranium,
/turf/open/floor/plasteel,
-/area/hydroponics/garden/abandoned)
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
"aFN" = (
/obj/structure/table,
/obj/item/plant_analyzer,
/obj/item/hatchet,
-/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
-/area/hydroponics/garden/abandoned)
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
"aFO" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/effect/turf_decal/delivery,
/turf/open/floor/plasteel,
-/area/hydroponics/garden/abandoned)
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
"aFP" = (
-/obj/effect/decal/cleanable/dirt,
/obj/structure/cable/white{
icon_state = "1-2"
},
/obj/effect/turf_decal/delivery,
/turf/open/floor/plasteel,
-/area/hydroponics/garden/abandoned)
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
"aFQ" = (
/obj/structure/table,
/obj/item/crowbar,
@@ -14970,7 +14987,9 @@
/obj/item/reagent_containers/glass/bucket,
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
-/area/hydroponics/garden/abandoned)
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
"aFR" = (
/obj/machinery/hydroponics/soil,
/obj/item/seeds/tower,
@@ -14979,7 +14998,9 @@
/obj/effect/turf_decal/delivery,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel,
-/area/hydroponics/garden/abandoned)
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
"aFS" = (
/obj/structure/cable/white{
icon_state = "1-2"
@@ -15071,6 +15092,9 @@
location = "Bar"
},
/obj/effect/turf_decal/delivery,
+/obj/machinery/door/window/eastleft{
+ req_access_txt = "25"
+ },
/turf/open/floor/plasteel,
/area/crew_quarters/bar)
"aGc" = (
@@ -15972,18 +15996,16 @@
/area/engine/atmospherics_engine)
"aHl" = (
/obj/effect/spawner/structure/window/reinforced,
-/obj/structure/barricade/wooden,
/turf/open/floor/plating,
-/area/hydroponics/garden/abandoned)
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
"aHm" = (
/obj/machinery/door/airlock/maintenance_hatch{
name = "Maintenance Hatch";
req_access_txt = "12"
},
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/structure/barricade/wooden,
/obj/effect/turf_decal/stripes/line{
dir = 2
},
@@ -15991,17 +16013,17 @@
dir = 1
},
/turf/open/floor/plasteel,
-/area/hydroponics/garden/abandoned)
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
"aHn" = (
/obj/machinery/door/airlock/maintenance_hatch{
name = "Maintenance Hatch";
req_access_txt = "12"
},
-/obj/effect/decal/cleanable/dirt,
/obj/structure/cable/white{
icon_state = "1-2"
},
-/obj/structure/barricade/wooden,
/obj/effect/turf_decal/stripes/line{
dir = 2
},
@@ -16009,13 +16031,16 @@
dir = 1
},
/turf/open/floor/plasteel,
-/area/hydroponics/garden/abandoned)
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
"aHo" = (
/obj/effect/spawner/structure/window/reinforced,
-/obj/structure/barricade/wooden,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plating,
-/area/hydroponics/garden/abandoned)
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
"aHp" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/cable/white{
@@ -16844,7 +16869,6 @@
/turf/open/floor/plasteel,
/area/maintenance/port/fore)
"aII" = (
-/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 5
},
@@ -16858,7 +16882,8 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
-/turf/open/floor/plating,
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
/area/maintenance/port/fore)
"aIK" = (
/obj/structure/cable/white{
@@ -16868,10 +16893,18 @@
dir = 4
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/plating,
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
/area/maintenance/port/fore)
"aIL" = (
-/obj/effect/decal/cleanable/dirt,
/obj/structure/cable/white{
icon_state = "4-8"
},
@@ -16922,6 +16955,14 @@
},
/turf/open/floor/wood,
/area/hallway/secondary/service)
+"aIP" = (
+/obj/structure/bed,
+/obj/machinery/status_display{
+ pixel_y = 32
+ },
+/obj/item/bedsheet/mime,
+/turf/open/floor/wood,
+/area/hallway/secondary/service)
"aIQ" = (
/obj/structure/dresser,
/turf/open/floor/wood{
@@ -17729,10 +17770,16 @@
/area/engine/atmospherics_engine)
"aKg" = (
/obj/structure/closet/emcloset,
-/turf/open/floor/plating,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/turf/open/floor/plasteel,
/area/maintenance/port/fore)
"aKh" = (
-/obj/effect/decal/cleanable/dirt,
/obj/structure/rack,
/obj/effect/spawner/lootdrop/maintenance{
lootcount = 2;
@@ -17746,7 +17793,11 @@
/area/maintenance/port/fore)
"aKi" = (
/obj/structure/closet,
-/turf/open/floor/plating,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/turf/open/floor/plasteel,
/area/maintenance/port/fore)
"aKj" = (
/obj/effect/decal/cleanable/dirt,
@@ -17757,16 +17808,20 @@
/turf/open/floor/plasteel,
/area/maintenance/port/fore)
"aKk" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/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/maintenance/port/fore)
"aKl" = (
/obj/effect/landmark/event_spawn,
/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
@@ -21341,6 +21396,9 @@
location = "Theatre"
},
/obj/effect/turf_decal/delivery,
+/obj/machinery/door/window/westleft{
+ req_access_txt = "46"
+ },
/turf/open/floor/plasteel,
/area/crew_quarters/theatre)
"aQj" = (
@@ -26195,6 +26253,9 @@
dir = 4
},
/obj/effect/turf_decal/delivery,
+/obj/machinery/door/window/eastright{
+ req_one_access_txt = "48,50"
+ },
/turf/open/floor/plasteel,
/area/quartermaster/office)
"aXg" = (
@@ -29255,6 +29316,9 @@
location = "Kitchen"
},
/obj/effect/turf_decal/delivery,
+/obj/machinery/door/window/eastleft{
+ req_access_txt = "28"
+ },
/turf/open/floor/plasteel,
/area/crew_quarters/kitchen)
"bcd" = (
@@ -30907,6 +30971,9 @@
location = "Hydroponics"
},
/obj/effect/turf_decal/delivery,
+/obj/machinery/door/window/westleft{
+ req_access_txt = "35"
+ },
/turf/open/floor/plasteel,
/area/hallway/secondary/service)
"beW" = (
@@ -36097,6 +36164,9 @@
/obj/structure/plasticflaps/opaque,
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/delivery,
+/obj/machinery/door/window/northright{
+ req_access_txt = "48"
+ },
/turf/open/floor/plasteel,
/area/maintenance/starboard/fore)
"bnB" = (
@@ -36442,7 +36512,7 @@
/turf/open/floor/plasteel/grimy,
/area/crew_quarters/heads/hos)
"boc" = (
-/obj/machinery/computer/prisoner{
+/obj/machinery/computer/prisoner/management{
dir = 8
},
/turf/open/floor/plasteel/grimy,
@@ -38748,7 +38818,7 @@
/turf/open/floor/plasteel/grimy,
/area/crew_quarters/heads/hos)
"brE" = (
-/obj/machinery/computer/prisoner{
+/obj/machinery/computer/prisoner/management{
dir = 8
},
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
@@ -39237,13 +39307,6 @@
name = "Hydroponics Desk";
req_access_txt = "35"
},
-/obj/item/seeds/lime{
- pixel_x = 6
- },
-/obj/item/seeds/watermelon,
-/obj/item/seeds/grape{
- pixel_x = -6
- },
/obj/item/reagent_containers/food/snacks/grown/wheat,
/obj/item/reagent_containers/food/snacks/grown/watermelon,
/obj/item/reagent_containers/food/snacks/grown/banana,
@@ -39652,7 +39715,7 @@
/turf/open/floor/plasteel/dark,
/area/security/execution/transfer)
"bth" = (
-/obj/machinery/computer/gulag_teleporter_computer{
+/obj/machinery/computer/prisoner/gulag_teleporter_computer{
dir = 1
},
/obj/structure/disposalpipe/segment{
@@ -41831,6 +41894,9 @@
location = "Atmospherics"
},
/obj/effect/turf_decal/delivery,
+/obj/machinery/door/window/westleft{
+ req_access_txt = "24"
+ },
/turf/open/floor/plasteel,
/area/engine/atmos)
"bwH" = (
@@ -42765,7 +42831,7 @@
/turf/open/floor/plasteel/dark,
/area/bridge)
"byk" = (
-/obj/machinery/computer/prisoner,
+/obj/machinery/computer/prisoner/management,
/obj/effect/turf_decal/tile/red{
dir = 1
},
@@ -56980,7 +57046,7 @@
/turf/open/floor/plasteel,
/area/security/warden)
"bTh" = (
-/obj/machinery/computer/prisoner{
+/obj/machinery/computer/prisoner/management{
dir = 8
},
/obj/structure/cable/white{
@@ -71795,6 +71861,9 @@
location = "Security"
},
/obj/effect/turf_decal/delivery,
+/obj/machinery/door/window/northleft{
+ req_access_txt = "63"
+ },
/turf/open/floor/plasteel,
/area/security/range)
"cqh" = (
@@ -79006,6 +79075,17 @@
/obj/structure/dresser,
/turf/open/floor/carpet,
/area/crew_quarters/dorms)
+"cCi" = (
+/obj/structure/bed,
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/status_display{
+ pixel_y = 32
+ },
+/obj/effect/spawner/lootdrop/bedsheet,
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
"cCj" = (
/obj/structure/closet/secure_closet/personal/cabinet,
/obj/item/clothing/suit/jacket{
@@ -81023,10 +81103,24 @@
icon_state = "wood-broken2"
},
/area/crew_quarters/dorms)
+"cFx" = (
+/obj/structure/bed,
+/obj/effect/decal/cleanable/dirt{
+ desc = "A thin layer of dust coating the floor.";
+ name = "dust"
+ },
+/obj/effect/spawner/lootdrop/bedsheet,
+/turf/open/floor/wood,
+/area/crew_quarters/dorms)
"cFy" = (
/obj/item/twohanded/required/kirbyplants/random,
/turf/open/floor/wood,
/area/crew_quarters/dorms)
+"cFz" = (
+/obj/structure/bed,
+/obj/effect/spawner/lootdrop/bedsheet,
+/turf/open/floor/wood,
+/area/crew_quarters/dorms)
"cFA" = (
/obj/structure/table/wood,
/obj/item/flashlight/lamp/green,
@@ -82564,6 +82658,9 @@
location = "Engineering"
},
/obj/effect/turf_decal/delivery,
+/obj/machinery/door/window/northright{
+ req_access_txt = "10"
+ },
/turf/open/floor/plasteel,
/area/engine/engineering)
"cIr" = (
@@ -87751,6 +87848,9 @@
location = "Medbay"
},
/obj/effect/turf_decal/delivery,
+/obj/machinery/door/window/westleft{
+ req_access_txt = "5"
+ },
/turf/open/floor/plasteel,
/area/medical/storage)
"cRl" = (
@@ -88896,6 +88996,11 @@
/obj/structure/chair/office/dark,
/turf/open/floor/wood,
/area/crew_quarters/dorms)
+"cTc" = (
+/obj/structure/bed,
+/obj/effect/spawner/lootdrop/bedsheet,
+/turf/open/floor/plasteel/grimy,
+/area/crew_quarters/dorms)
"cTd" = (
/obj/structure/table,
/obj/item/storage/fancy/donut_box,
@@ -90092,6 +90197,15 @@
},
/turf/open/floor/wood,
/area/crew_quarters/dorms)
+"cUX" = (
+/obj/structure/bed,
+/obj/machinery/light,
+/obj/machinery/status_display{
+ pixel_y = -32
+ },
+/obj/effect/spawner/lootdrop/bedsheet,
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
"cUY" = (
/obj/structure/closet/secure_closet/personal/cabinet,
/obj/item/clothing/suit/jacket{
@@ -114084,6 +114198,9 @@
location = "Robotics"
},
/obj/effect/turf_decal/delivery,
+/obj/machinery/door/window/northright{
+ req_access_txt = "47"
+ },
/turf/open/floor/plasteel,
/area/science/robotics/lab)
"dKl" = (
@@ -114279,11 +114396,6 @@
/obj/structure/cable/white{
icon_state = "1-2"
},
-/obj/machinery/door/airlock/maintenance_hatch{
- name = "Maintenance Hatch";
- req_access_txt = "12"
- },
-/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/effect/turf_decal/stripes/line{
dir = 2
@@ -114291,6 +114403,10 @@
/obj/effect/turf_decal/stripes/line{
dir = 1
},
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "Chapel Maintenance";
+ req_access_txt = "27"
+ },
/turf/open/floor/plasteel,
/area/maintenance/port/aft)
"dKE" = (
@@ -118990,7 +119106,6 @@
/obj/structure/cable/white{
icon_state = "1-2"
},
-/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
/obj/effect/turf_decal/delivery,
/turf/open/floor/plasteel,
@@ -119335,7 +119450,6 @@
/turf/closed/wall,
/area/chapel/office)
"dTx" = (
-/obj/structure/bodycontainer/morgue,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -119346,6 +119460,7 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/structure/closet/crate/coffin,
/turf/open/floor/plasteel/dark,
/area/chapel/office)
"dTy" = (
@@ -120417,7 +120532,6 @@
name = "Station Intercom";
pixel_x = -26
},
-/obj/item/clothing/under/burial,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -121771,7 +121885,6 @@
/turf/open/floor/plating,
/area/maintenance/port/aft)
"dYv" = (
-/obj/structure/bodycontainer/morgue,
/obj/structure/sign/poster/official/ian{
pixel_y = -32
},
@@ -121785,6 +121898,7 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/structure/closet/crate/coffin,
/turf/open/floor/plasteel/dark,
/area/chapel/office)
"dYw" = (
@@ -122481,14 +122595,19 @@
/turf/open/floor/plating,
/area/maintenance/port/aft)
"dZM" = (
-/obj/effect/decal/cleanable/dirt,
/obj/structure/cable/white{
icon_state = "1-2"
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 9
},
-/turf/open/floor/plating,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
/area/maintenance/port/aft)
"dZN" = (
/turf/closed/wall/r_wall,
@@ -122827,7 +122946,6 @@
/turf/open/floor/plasteel,
/area/maintenance/port/aft)
"eat" = (
-/obj/effect/decal/cleanable/dirt,
/obj/structure/cable/white{
icon_state = "1-8"
},
@@ -122841,11 +122959,6 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 5
},
-/obj/machinery/button/crematorium{
- id = "cremawheat";
- pixel_x = -26;
- req_access_txt = "27"
- },
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -123166,24 +123279,6 @@
/obj/structure/sign/nanotrasen,
/turf/closed/wall/r_wall,
/area/maintenance/port/aft)
-"ebd" = (
-/obj/structure/bodycontainer/morgue,
-/obj/machinery/airalarm{
- dir = 4;
- pixel_x = -22
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/chapel/office)
"ebe" = (
/obj/machinery/light{
dir = 4
@@ -123542,12 +123637,6 @@
/turf/open/floor/plasteel,
/area/maintenance/port/aft)
"ebS" = (
-/obj/structure/table,
-/obj/item/storage/box/gloves{
- pixel_x = 3;
- pixel_y = 3
- },
-/obj/item/storage/box/bodybags,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -123558,15 +123647,15 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
/turf/open/floor/plasteel/dark,
/area/chapel/office)
"ebT" = (
/obj/structure/cable/white{
icon_state = "1-2"
},
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 1
- },
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -123577,6 +123666,9 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
/turf/open/floor/plasteel/dark,
/area/chapel/office)
"ebU" = (
@@ -123819,7 +123911,6 @@
/turf/open/floor/plasteel,
/area/maintenance/port/aft)
"ecw" = (
-/obj/structure/bodycontainer/morgue,
/obj/machinery/firealarm{
dir = 1;
pixel_y = -24
@@ -123834,6 +123925,7 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/structure/closet/crate/coffin,
/turf/open/floor/plasteel/dark,
/area/chapel/office)
"ecx" = (
@@ -125924,7 +126016,7 @@
/turf/open/floor/plasteel,
/area/security/checkpoint/escape)
"egj" = (
-/obj/machinery/computer/prisoner{
+/obj/machinery/computer/prisoner/management{
dir = 1
},
/obj/structure/cable/white{
@@ -126283,6 +126375,20 @@
},
/turf/open/floor/plasteel/dark,
/area/library)
+"enO" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/structure/bodycontainer/morgue,
+/turf/open/floor/plasteel/dark,
+/area/chapel/office)
"exE" = (
/obj/machinery/air_sensor/atmos/toxins_mixing_tank,
/turf/open/floor/engine/vacuum,
@@ -126433,6 +126539,10 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/closed/wall/r_wall,
/area/science/circuit)
+"fHS" = (
+/obj/structure/sign/warning/vacuum,
+/turf/closed/wall/r_wall,
+/area/chapel/office)
"fLR" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 6
@@ -126465,6 +126575,20 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/closed/wall/r_wall,
/area/science/circuit)
+"gFk" = (
+/obj/structure/grille,
+/turf/open/space,
+/area/space/nearstation)
+"gJj" = (
+/obj/machinery/door/window/northleft{
+ name = "Mass Driver"
+ },
+/obj/machinery/mass_driver{
+ id = "chapelgun";
+ name = "Holy Driver"
+ },
+/turf/open/floor/plating,
+/area/chapel/office)
"gKr" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 1
@@ -126482,6 +126606,26 @@
},
/turf/open/floor/plasteel/white,
/area/science/misc_lab)
+"gNJ" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/obj/machinery/airalarm{
+ dir = 2;
+ pixel_y = 22
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/office)
"gNS" = (
/obj/effect/turf_decal/stripes/line,
/obj/effect/turf_decal/tile/neutral{
@@ -126506,6 +126650,20 @@
/obj/effect/turf_decal/tile/purple,
/turf/open/floor/plasteel/white,
/area/science/research)
+"gQw" = (
+/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{
+ heat_capacity = 1e+006
+ },
+/area/maintenance/port/aft)
"gQS" = (
/turf/open/floor/plasteel/white/side{
dir = 9
@@ -126546,6 +126704,10 @@
},
/turf/open/floor/plating,
/area/quartermaster/storage)
+"hei" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/closed/wall/r_wall,
+/area/chapel/office)
"hic" = (
/obj/structure/table/reinforced,
/obj/item/integrated_electronics/analyzer,
@@ -126607,6 +126769,22 @@
},
/turf/open/floor/plasteel,
/area/security/prison)
+"hLO" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/delivery,
+/obj/structure/closet,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 3;
+ name = "3maintenance loot spawner"
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/port/aft)
"hNZ" = (
/obj/structure/chair/office/light{
dir = 8
@@ -126630,11 +126808,50 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
/area/science/research)
+"ibC" = (
+/obj/effect/turf_decal/delivery,
+/obj/machinery/hydroponics/soil,
+/obj/item/seeds/lime{
+ pixel_x = 6
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
+"iiH" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/port/fore)
+"ijd" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/office)
"ijB" = (
/obj/structure/reagent_dispensers/keg/aphro/strong,
/obj/item/reagent_containers/glass/beaker,
/turf/open/floor/plating,
/area/crew_quarters/abandoned_gambling_den)
+"ivF" = (
+/obj/machinery/door/poddoor{
+ id = "chapelgun";
+ name = "Chapel Launcher Door"
+ },
+/obj/structure/fans/tiny,
+/turf/open/floor/plating,
+/area/chapel/office)
"iwL" = (
/obj/machinery/status_display{
pixel_x = 32
@@ -126653,6 +126870,9 @@
},
/turf/open/floor/engine/vacuum,
/area/science/mixing)
+"iyd" = (
+/turf/open/space,
+/area/space)
"iQh" = (
/obj/structure/bodycontainer/morgue{
dir = 1
@@ -126717,6 +126937,21 @@
},
/turf/open/floor/plasteel,
/area/science/research/abandoned)
+"jhK" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/port/aft)
"jjN" = (
/obj/structure/table/reinforced,
/obj/machinery/camera{
@@ -126814,6 +127049,19 @@
/obj/machinery/chem_master,
/turf/open/floor/plasteel/dark,
/area/medical/medbay/central)
+"jPA" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/office)
"jRy" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
@@ -126867,6 +127115,31 @@
},
/turf/open/floor/plasteel,
/area/maintenance/port)
+"kzw" = (
+/obj/machinery/button/crematorium{
+ id = "cremawheat";
+ pixel_x = -26;
+ req_access_txt = "27"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/structure/table,
+/obj/item/clothing/under/burial,
+/obj/item/clothing/under/burial,
+/obj/item/clothing/under/burial,
+/obj/item/clothing/under/burial,
+/obj/item/clothing/under/burial,
+/obj/item/clothing/under/burial,
+/turf/open/floor/plasteel/dark,
+/area/chapel/office)
"kLu" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
@@ -127031,6 +127304,14 @@
dir = 1
},
/area/science/circuit)
+"mdk" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/light/small,
+/turf/open/floor/plasteel,
+/area/maintenance/port/fore)
"mkm" = (
/obj/machinery/atmospherics/components/binary/valve,
/obj/machinery/embedded_controller/radio/airlock_controller/incinerator_toxmix{
@@ -127098,14 +127379,102 @@
},
/turf/open/floor/engine,
/area/science/mixing)
+"mXJ" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/turf/open/floor/plasteel/dark,
+/area/chapel/office)
"nyN" = (
/obj/machinery/vending/kink,
/turf/open/floor/plating,
/area/crew_quarters/abandoned_gambling_den)
+"nOV" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/office)
"nSh" = (
/obj/machinery/atmospherics/pipe/simple/general/hidden,
/turf/closed/wall/r_wall,
/area/maintenance/disposal/incinerator)
+"oaP" = (
+/obj/machinery/seed_extractor,
+/obj/item/reagent_containers/glass/bucket,
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel,
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
+"obe" = (
+/obj/structure/cable/white{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/turf/open/floor/plasteel,
+/area/maintenance/port/fore)
+"owr" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/turf/open/floor/plasteel/dark,
+/area/chapel/office)
+"owI" = (
+/obj/structure/cable/white{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/port/fore)
+"ozr" = (
+/obj/effect/turf_decal/delivery,
+/obj/machinery/hydroponics/soil,
+/obj/item/seeds/grape,
+/turf/open/floor/plasteel,
+/area/hydroponics/garden/abandoned{
+ name = "Maintenance Garden"
+ })
"oIl" = (
/obj/machinery/atmospherics/components/unary/portables_connector/visible{
dir = 1
@@ -127155,6 +127524,19 @@
},
/turf/open/floor/plasteel/dark,
/area/science/mixing)
+"oOb" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/machinery/door/window{
+ req_one_access_txt = "48,50"
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/quartermaster/sorting)
"oSD" = (
/obj/machinery/meter,
/obj/machinery/atmospherics/pipe/manifold/general/visible{
@@ -127214,6 +127596,13 @@
dir = 1
},
/area/science/circuit)
+"poI" = (
+/obj/structure/bed,
+/obj/item/tank/internals/anesthetic,
+/obj/item/clothing/mask/breath,
+/obj/effect/spawner/lootdrop/bedsheet,
+/turf/open/floor/plating,
+/area/crew_quarters/abandoned_gambling_den)
"psi" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/bodycontainer/morgue{
@@ -127238,6 +127627,15 @@
},
/turf/open/floor/plating,
/area/science/research/abandoned)
+"pHf" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/port/fore)
"pQm" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/cable/white{
@@ -127277,6 +127675,19 @@
/obj/effect/spawner/lootdrop/keg,
/turf/open/floor/plating,
/area/crew_quarters/abandoned_gambling_den)
+"qMR" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 2
+ },
+/turf/open/floor/plating,
+/area/chapel/office)
+"rbY" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/closet/crate/coffin,
+/turf/open/floor/plating,
+/area/chapel/office)
"rhO" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 1
@@ -127324,6 +127735,16 @@
},
/turf/open/floor/plasteel,
/area/quartermaster/miningoffice)
+"rYR" = (
+/obj/structure/cable/white{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/port/aft)
"saw" = (
/turf/closed/wall,
/area/science/circuit)
@@ -127335,6 +127756,13 @@
/obj/machinery/door/poddoor/incinerator_toxmix,
/turf/open/floor/engine/vacuum,
/area/science/mixing)
+"tbC" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/turf/open/floor/plasteel,
+/area/maintenance/port/fore)
"tmi" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -127348,14 +127776,58 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/fitness/recreation)
+"tAi" = (
+/obj/structure/reagent_dispensers/watertank,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral,
+/turf/open/floor/plasteel,
+/area/maintenance/port/fore)
"tCh" = (
/turf/closed/wall,
/area/science/misc_lab)
+"tEW" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/structure/bodycontainer/morgue,
+/turf/open/floor/plasteel/dark,
+/area/chapel/office)
"tMk" = (
/turf/open/floor/plasteel/white/side{
dir = 10
},
/area/science/misc_lab)
+"tOQ" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/machinery/computer/pod/old{
+ density = 0;
+ icon = 'icons/obj/airlock_machines.dmi';
+ icon_state = "airlock_control_standby";
+ id = "chapelgun";
+ name = "Mass Driver Controller";
+ pixel_x = -24;
+ pixel_y = 0
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/office)
"tRT" = (
/obj/effect/turf_decal/tile/blue{
dir = 4
@@ -127439,10 +127911,45 @@
},
/turf/open/floor/plasteel/white,
/area/science/mixing)
+"vFw" = (
+/obj/machinery/door/window/northright{
+ name = "Coffin Storage"
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/closet/crate/coffin,
+/turf/open/floor/plating,
+/area/chapel/office)
+"vON" = (
+/obj/structure/cable/white{
+ icon_state = "4-8"
+ },
+/obj/structure/cable/white{
+ icon_state = "2-4"
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/maintenance/port/aft)
"wei" = (
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/science/circuit)
+"whX" = (
+/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/maintenance/port/fore)
"wAA" = (
/obj/structure/sign/nanotrasen,
/turf/closed/wall/r_wall,
@@ -127563,6 +128070,22 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel,
/area/science/research)
+"xWZ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/office)
"xXn" = (
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/atmos/toxins_mixing_output,
/turf/open/floor/engine/vacuum,
@@ -151680,7 +152203,7 @@ djm
fow
dod
dod
-aaA
+poI
dfY
ajr
aad
@@ -156469,7 +156992,7 @@ arB
aug
alg
alg
-aAd
+whX
aKg
alf
aMO
@@ -156726,7 +157249,7 @@ aAb
aAb
aAb
aAb
-arB
+pHf
aKh
alf
aMN
@@ -156980,11 +157503,11 @@ aAb
aBg
aCv
aDx
-aCw
+aCv
aFJ
aAb
aIH
-aoY
+tAi
alf
aMP
aDw
@@ -157235,8 +157758,8 @@ axI
ayU
aAb
aBh
-aCw
-aCw
+aCv
+aCv
aCv
aFK
aHl
@@ -157492,13 +158015,13 @@ axJ
aoY
aAb
aBi
-aCw
+aCv
aCw
aEB
aFL
aAb
-arB
-alg
+aIH
+tbC
avm
arB
arB
@@ -157750,11 +158273,11 @@ alf
aAb
aBj
aCv
-aCw
+oaP
aEC
aFM
aAb
-alg
+aIH
ary
aLz
aLz
@@ -157881,7 +158404,7 @@ edL
eep
eff
aad
-ajr
+aeH
aaa
ajr
aaa
@@ -158007,11 +158530,11 @@ alg
aAb
aBk
aCv
-aCw
+ozr
aEC
aFN
aAb
-arA
+aIH
aKi
aLz
aMQ
@@ -158138,7 +158661,7 @@ edM
eeq
dLY
aad
-aad
+gFk
aaa
aad
aaa
@@ -158263,13 +158786,13 @@ axL
ayV
aAb
aBl
-aCw
+aCv
aDy
aED
aFO
aHm
aII
-aKj
+mdk
aLz
aMR
aOq
@@ -158520,13 +159043,13 @@ axM
ayW
aAb
aBm
-aCw
-aCw
+aCv
+aCv
aEE
aFP
aHn
aIJ
-aKj
+iiH
aLz
aMS
aOr
@@ -158778,12 +159301,12 @@ ayX
aAb
aBn
aCx
-aCw
-aCw
+ibC
+aCv
aFQ
aAb
-asQ
-arB
+owI
+iiH
aLz
aMT
aOs
@@ -159036,7 +159559,7 @@ aAc
aBo
aCy
aDz
-aEF
+aDz
aFR
aHo
aIK
@@ -159156,7 +159679,7 @@ dXz
dYt
dON
dOl
-eap
+vON
eaX
dYu
ect
@@ -159291,7 +159814,7 @@ alf
alf
aAb
aBp
-aCw
+aCv
aDA
aCv
aFJ
@@ -159412,8 +159935,8 @@ dON
dON
dON
dON
-dZJ
-ean
+gQw
+rYR
ebc
ebQ
ecu
@@ -159554,7 +160077,7 @@ aAb
aAb
aAb
aIL
-arB
+tbC
aLz
aLz
aLz
@@ -159671,16 +160194,16 @@ dWI
dZf
dZM
eat
-dLY
-dLY
-dLY
-dLY
-dLY
-dLY
-dLY
+dZN
+dZN
+dZN
+dZN
+fHS
+dZN
+dZN
dLY
aad
-ajr
+aeH
aad
aad
aaa
@@ -159811,7 +160334,7 @@ aEG
aFS
aHp
aIM
-aEG
+obe
aLB
aFS
aEG
@@ -159926,20 +160449,20 @@ dWJ
dLW
dYu
dZg
-dYu
-dYu
-dZg
-ebR
-dLW
-ecQ
-edl
-aad
+hLO
+jhK
+dZN
+owr
+nOV
+tOQ
+gJj
+qMR
+ivF
+aaa
+iyd
aaa
aaa
-aad
-aaa
-aaa
-aad
+iyd
aaa
aaa
aaa
@@ -160183,15 +160706,15 @@ dTw
dTw
dTw
dTw
-dLX
-dLW
-dLW
-dLW
-ecv
-dNt
-edl
-aad
-aad
+dZN
+dZN
+hei
+gNJ
+jPA
+jPA
+vFw
+rbY
+dTw
aad
aad
aad
@@ -160432,7 +160955,7 @@ dPJ
dQC
dRB
dSz
-dTx
+tEW
dUi
dTx
dVN
@@ -160440,11 +160963,11 @@ dTx
dXB
dYv
dTw
-dZN
-dZN
-dZN
-dZN
-dZN
+dZO
+kzw
+enO
+xWZ
+mXJ
dTw
dTw
dTw
@@ -160697,9 +161220,9 @@ dUj
dXC
dYw
dZh
-dZO
+ijd
eau
-ebd
+edr
ebS
ecw
dTw
@@ -160834,11 +161357,11 @@ ary
aAf
aBu
aCB
-aaq
+aDF
aEJ
aFV
aDI
-aar
+aIP
aKo
aLE
aMX
@@ -162632,7 +163155,7 @@ axX
azd
aAj
aBA
-asQ
+asK
aDL
aEO
aGc
@@ -162889,7 +163412,7 @@ axY
aze
aAk
aBB
-asM
+asK
aDL
aEP
aGd
@@ -163402,7 +163925,7 @@ auh
auh
auh
auh
-aBD
+aBz
aCG
aDL
aER
@@ -167519,7 +168042,7 @@ aCP
avQ
aFe
aGp
-aHH
+oOb
aJg
aKF
aLP
@@ -174465,7 +174988,7 @@ aaa
aaa
aad
aQQ
-aQQ
+aez
aUp
aVY
aXE
@@ -178374,7 +178897,7 @@ cyY
cAx
cCd
cDD
-aaw
+cFx
cGU
cAw
cJl
@@ -178382,7 +178905,7 @@ cLa
cMx
cIi
cPR
-aax
+cFz
cDG
cUW
cAw
@@ -179155,7 +179678,7 @@ cNU
cDI
cFB
cDI
-aaz
+cUX
cAw
cYj
cZV
@@ -179402,7 +179925,7 @@ czc
cAw
cCg
cDG
-aax
+cFz
cGW
cIi
cJo
@@ -180171,7 +180694,7 @@ bHq
cxt
coI
cAw
-aav
+cCi
cDI
cFB
cDI
@@ -180439,7 +180962,7 @@ cMB
cIi
cPW
cRv
-aay
+cTc
cVb
cAw
cYp
diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm
index 4de1657e48..13f774d25d 100644
--- a/_maps/map_files/MetaStation/MetaStation.dmm
+++ b/_maps/map_files/MetaStation/MetaStation.dmm
@@ -2,58 +2,10 @@
"aaa" = (
/turf/open/space/basic,
/area/space)
-"aab" = (
-/obj/structure/bed,
-/obj/machinery/button/door{
- id = "Cabin3";
- name = "Cabin Bolt Control";
- normaldoorcontrol = 1;
- pixel_x = 25;
- specialfunctions = 4
- },
-/obj/effect/decal/cleanable/cobweb/cobweb2,
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
- dir = 4
- },
-/obj/effect/spawner/lootdrop/bedsheet,
-/turf/open/floor/wood,
-/area/crew_quarters/dorms)
"aac" = (
/obj/effect/landmark/carpspawn,
/turf/open/space,
/area/space)
-"aad" = (
-/obj/machinery/light/small{
- dir = 1
- },
-/obj/effect/decal/cleanable/cobweb,
-/obj/machinery/button/door{
- id = "Cabin4";
- name = "Cabin Bolt Control";
- normaldoorcontrol = 1;
- pixel_x = -25;
- specialfunctions = 4
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
-/obj/structure/bed,
-/obj/effect/spawner/lootdrop/bedsheet,
-/turf/open/floor/carpet,
-/area/crew_quarters/dorms)
-"aae" = (
-/obj/structure/bed,
-/obj/machinery/button/door{
- id = "Cabin2";
- name = "Cabin Bolt Control";
- normaldoorcontrol = 1;
- pixel_x = 25;
- specialfunctions = 4
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
- dir = 4
- },
-/obj/effect/spawner/lootdrop/bedsheet,
-/turf/open/floor/carpet,
-/area/crew_quarters/dorms)
"aaf" = (
/obj/structure/lattice,
/turf/open/space,
@@ -300,19 +252,6 @@
},
/turf/open/floor/plating,
/area/security/prison)
-"aaM" = (
-/obj/structure/bed,
-/obj/machinery/button/door{
- id = "Cabin5";
- name = "Dorm Bolt Control";
- normaldoorcontrol = 1;
- pixel_x = -25;
- specialfunctions = 4
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
-/obj/effect/spawner/lootdrop/bedsheet,
-/turf/open/floor/wood,
-/area/crew_quarters/dorms)
"aaN" = (
/obj/structure/cable{
icon_state = "0-2"
@@ -355,37 +294,6 @@
},
/turf/open/floor/plasteel,
/area/security/prison)
-"aaU" = (
-/obj/structure/bed,
-/obj/machinery/button/door{
- id = "Cabin6";
- name = "Dorm Bolt Control";
- normaldoorcontrol = 1;
- pixel_x = -25;
- specialfunctions = 4
- },
-/obj/effect/decal/cleanable/cobweb,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 8
- },
-/obj/effect/spawner/lootdrop/bedsheet,
-/turf/open/floor/carpet,
-/area/crew_quarters/dorms)
-"aaV" = (
-/obj/machinery/button/door{
- id = "Cabin7";
- name = "Door Bolt Control";
- normaldoorcontrol = 1;
- pixel_x = -25;
- specialfunctions = 4
- },
-/obj/structure/bed,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 8
- },
-/obj/effect/spawner/lootdrop/bedsheet,
-/turf/open/floor/wood,
-/area/crew_quarters/dorms)
"aaY" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -2109,7 +2017,7 @@
/turf/open/floor/plasteel/dark,
/area/crew_quarters/heads/hos)
"aeu" = (
-/obj/machinery/computer/prisoner,
+/obj/machinery/computer/prisoner/management,
/turf/open/floor/plasteel/dark,
/area/crew_quarters/heads/hos)
"aev" = (
@@ -8508,7 +8416,7 @@
/turf/open/floor/plating,
/area/security/warden)
"apI" = (
-/obj/machinery/computer/prisoner{
+/obj/machinery/computer/prisoner/management{
dir = 4
},
/obj/structure/cable/yellow{
@@ -10233,6 +10141,22 @@
/obj/item/clothing/under/assistantformal,
/turf/open/floor/wood,
/area/crew_quarters/dorms)
+"asV" = (
+/obj/structure/bed,
+/obj/machinery/button/door{
+ id = "Cabin3";
+ name = "Cabin Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = 25;
+ specialfunctions = 4
+ },
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/effect/spawner/lootdrop/bedsheet,
+/turf/open/floor/wood,
+/area/crew_quarters/dorms)
"asW" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -10271,6 +10195,23 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
+"ata" = (
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/cobweb,
+/obj/machinery/button/door{
+ id = "Cabin4";
+ name = "Cabin Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = -25;
+ specialfunctions = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/structure/bed,
+/obj/effect/spawner/lootdrop/bedsheet,
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
"atb" = (
/obj/structure/closet/secure_closet/personal/cabinet,
/obj/machinery/airalarm{
@@ -10573,7 +10514,7 @@
/turf/open/floor/plating,
/area/maintenance/port/fore)
"atK" = (
-/obj/machinery/computer/gulag_teleporter_computer{
+/obj/machinery/computer/prisoner/gulag_teleporter_computer{
dir = 1
},
/turf/open/floor/plasteel/dark,
@@ -11951,6 +11892,21 @@
/obj/item/clothing/under/suit_jacket/tan,
/turf/open/floor/carpet,
/area/crew_quarters/dorms)
+"awE" = (
+/obj/structure/bed,
+/obj/machinery/button/door{
+ id = "Cabin2";
+ name = "Cabin Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = 25;
+ specialfunctions = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/effect/spawner/lootdrop/bedsheet,
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
"awF" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 4
@@ -11964,6 +11920,19 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
+"awG" = (
+/obj/structure/bed,
+/obj/machinery/button/door{
+ id = "Cabin5";
+ name = "Dorm Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = -25;
+ specialfunctions = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/effect/spawner/lootdrop/bedsheet,
+/turf/open/floor/wood,
+/area/crew_quarters/dorms)
"awH" = (
/obj/machinery/newscaster{
pixel_y = 32
@@ -15014,6 +14983,22 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/dorms)
+"aCJ" = (
+/obj/structure/bed,
+/obj/machinery/button/door{
+ id = "Cabin6";
+ name = "Dorm Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = -25;
+ specialfunctions = 4
+ },
+/obj/effect/decal/cleanable/cobweb,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/effect/spawner/lootdrop/bedsheet,
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
"aCK" = (
/obj/structure/closet/secure_closet/personal/cabinet,
/obj/machinery/airalarm{
@@ -17590,6 +17575,21 @@
},
/turf/open/floor/plasteel/dark,
/area/crew_quarters/dorms)
+"aHS" = (
+/obj/machinery/button/door{
+ id = "Cabin7";
+ name = "Door Bolt Control";
+ normaldoorcontrol = 1;
+ pixel_x = -25;
+ specialfunctions = 4
+ },
+/obj/structure/bed,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/effect/spawner/lootdrop/bedsheet,
+/turf/open/floor/wood,
+/area/crew_quarters/dorms)
"aHT" = (
/obj/structure/chair/wood/normal{
dir = 4
@@ -20373,6 +20373,9 @@
/obj/effect/turf_decal/tile/brown{
dir = 4
},
+/obj/machinery/keycard_auth{
+ pixel_y = 23
+ },
/turf/open/floor/plasteel,
/area/quartermaster/qm)
"aNS" = (
@@ -30778,7 +30781,7 @@
/obj/structure/cable/yellow{
icon_state = "2-4"
},
-/obj/machinery/computer/prisoner,
+/obj/machinery/computer/prisoner/management,
/obj/effect/turf_decal/tile/red{
dir = 1
},
@@ -38985,7 +38988,7 @@
pixel_y = 5
},
/obj/item/reagent_containers/food/drinks/shaker,
-/obj/item/reagent_containers/glass/rag{
+/obj/item/reagent_containers/rag{
pixel_y = 5
},
/obj/effect/turf_decal/tile/bar,
@@ -59281,7 +59284,7 @@
},
/area/maintenance/port/aft)
"ckR" = (
-/obj/item/reagent_containers/glass/rag,
+/obj/item/reagent_containers/rag,
/obj/structure/table/wood,
/turf/open/floor/wood{
icon_state = "wood-broken4"
@@ -120053,10 +120056,10 @@ agz
aoV
dhs
arB
-aab
+asV
auf
arB
-aae
+awE
axE
arB
dhA
@@ -121595,19 +121598,19 @@ anK
aoZ
aqk
arB
-aad
+ata
aul
avp
-aaM
+awG
axJ
avp
aAj
arB
-aaU
+aCJ
aEe
arB
boS
-aaV
+aHS
aJh
aKt
aLW
diff --git a/_maps/map_files/OmegaStation/OmegaStation.dmm b/_maps/map_files/OmegaStation/OmegaStation.dmm
index cef0aefc50..0c55f05fcb 100644
--- a/_maps/map_files/OmegaStation/OmegaStation.dmm
+++ b/_maps/map_files/OmegaStation/OmegaStation.dmm
@@ -13484,7 +13484,7 @@
/obj/structure/table/wood,
/obj/item/book/manual/wiki/barman_recipes,
/obj/item/reagent_containers/food/drinks/shaker,
-/obj/item/reagent_containers/glass/rag,
+/obj/item/reagent_containers/rag,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/effect/turf_decal/tile/neutral{
dir = 1
diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm
index e03ba4fcd2..7e4f54c8b4 100644
--- a/_maps/map_files/PubbyStation/PubbyStation.dmm
+++ b/_maps/map_files/PubbyStation/PubbyStation.dmm
@@ -2,44 +2,12 @@
"aaa" = (
/turf/open/space/basic,
/area/space)
-"aab" = (
-/obj/structure/bed,
-/obj/machinery/button/door{
- id = "Dorm3Shutters";
- name = "Privacy Shutters Control";
- pixel_y = 26
- },
-/obj/effect/spawner/lootdrop/bedsheet,
-/turf/open/floor/wood,
-/area/crew_quarters/dorms)
-"aac" = (
-/obj/structure/bed,
-/obj/machinery/button/door{
- id = "Dorm2Shutters";
- name = "Privacy Shutters Control";
- pixel_y = 26;
- req_access_txt = "0"
- },
-/obj/effect/spawner/lootdrop/bedsheet,
-/turf/open/floor/carpet,
-/area/crew_quarters/dorms)
"aad" = (
/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating{
icon_state = "platingdmg3"
},
/area/maintenance/department/science)
-"aae" = (
-/obj/structure/bed,
-/obj/machinery/button/door{
- id = "Dorm1Shutters";
- name = "Privacy Shutters Control";
- pixel_y = 26;
- req_access_txt = "0"
- },
-/obj/effect/spawner/lootdrop/bedsheet,
-/turf/open/floor/plasteel/grimy,
-/area/crew_quarters/dorms)
"abf" = (
/obj/structure/bed,
/turf/open/floor/plating,
@@ -49,6 +17,13 @@
/obj/structure/grille,
/turf/open/space,
/area/space/nearstation)
+"abD" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 4
+ },
+/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
"abI" = (
/obj/structure/lattice,
/turf/open/space,
@@ -4922,7 +4897,7 @@
/turf/open/floor/plasteel/showroomfloor,
/area/security/warden)
"amT" = (
-/obj/machinery/computer/prisoner,
+/obj/machinery/computer/prisoner/management,
/obj/machinery/airalarm{
pixel_y = 22
},
@@ -6097,7 +6072,7 @@
/turf/open/floor/plating,
/area/security/brig)
"apF" = (
-/obj/machinery/computer/gulag_teleporter_computer{
+/obj/machinery/computer/prisoner/gulag_teleporter_computer{
dir = 1
},
/turf/open/floor/plasteel/dark,
@@ -7073,7 +7048,7 @@
/turf/open/floor/plasteel/dark,
/area/bridge)
"arR" = (
-/obj/machinery/computer/prisoner,
+/obj/machinery/computer/prisoner/management,
/obj/effect/turf_decal/tile/red{
dir = 1
},
@@ -8637,6 +8612,16 @@
},
/turf/open/floor/plating,
/area/crew_quarters/dorms)
+"ave" = (
+/obj/structure/bed,
+/obj/machinery/button/door{
+ id = "Dorm3Shutters";
+ name = "Privacy Shutters Control";
+ pixel_y = 26
+ },
+/obj/effect/spawner/lootdrop/bedsheet,
+/turf/open/floor/wood,
+/area/crew_quarters/dorms)
"avf" = (
/obj/machinery/light/small{
dir = 1
@@ -10080,6 +10065,17 @@
},
/turf/open/floor/plating,
/area/crew_quarters/dorms)
+"ayj" = (
+/obj/structure/bed,
+/obj/machinery/button/door{
+ id = "Dorm2Shutters";
+ name = "Privacy Shutters Control";
+ pixel_y = 26;
+ req_access_txt = "0"
+ },
+/obj/effect/spawner/lootdrop/bedsheet,
+/turf/open/floor/carpet,
+/area/crew_quarters/dorms)
"ayk" = (
/obj/machinery/light/small{
dir = 1
@@ -11527,6 +11523,17 @@
},
/turf/open/floor/plating,
/area/crew_quarters/dorms)
+"aBM" = (
+/obj/structure/bed,
+/obj/machinery/button/door{
+ id = "Dorm1Shutters";
+ name = "Privacy Shutters Control";
+ pixel_y = 26;
+ req_access_txt = "0"
+ },
+/obj/effect/spawner/lootdrop/bedsheet,
+/turf/open/floor/plasteel/grimy,
+/area/crew_quarters/dorms)
"aBN" = (
/obj/machinery/light/small{
dir = 1
@@ -14549,6 +14556,18 @@
},
/turf/open/space,
/area/solar/port)
+"aIA" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
"aIC" = (
/obj/machinery/door/airlock/maintenance{
req_access_txt = "12"
@@ -15277,13 +15296,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/cargo)
-"aKm" = (
-/obj/effect/spawner/structure/window/plasma/reinforced,
-/obj/machinery/atmospherics/pipe/simple/orange/visible{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/engine/engineering)
"aKn" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -16688,9 +16700,22 @@
/turf/open/floor/plating,
/area/maintenance/disposal)
"aNV" = (
+/obj/machinery/mineral/stacking_unit_console{
+ dir = 2;
+ machinedir = 8;
+ pixel_x = -32;
+ pixel_y = 32
+ },
/obj/machinery/conveyor{
- dir = 8;
- id = "EngLoad"
+ dir = 4;
+ id = "garbagestacked"
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"aNW" = (
+/obj/machinery/conveyor{
+ dir = 4;
+ id = "garbagestacked"
},
/turf/open/floor/plating,
/area/maintenance/disposal)
@@ -17182,7 +17207,7 @@
/area/maintenance/department/cargo)
"aPg" = (
/obj/machinery/conveyor{
- dir = 8;
+ dir = 4;
id = "garbage"
},
/obj/structure/disposaloutlet{
@@ -17566,7 +17591,7 @@
dir = 8
},
/obj/machinery/conveyor{
- dir = 2;
+ dir = 1;
id = "garbage"
},
/turf/open/floor/plating,
@@ -21118,7 +21143,7 @@
"aYf" = (
/obj/structure/table/reinforced,
/obj/item/book/manual/wiki/barman_recipes,
-/obj/item/reagent_containers/glass/rag,
+/obj/item/reagent_containers/rag,
/obj/effect/turf_decal/tile/red{
dir = 1
},
@@ -24110,6 +24135,10 @@
/obj/effect/turf_decal/tile/brown{
dir = 8
},
+/obj/machinery/keycard_auth{
+ pixel_x = -23;
+ pixel_y = 0
+ },
/turf/open/floor/plasteel,
/area/quartermaster/qm)
"beK" = (
@@ -24169,6 +24198,17 @@
/obj/item/caution,
/turf/open/floor/plating,
/area/maintenance/department/cargo)
+"beT" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/door/airlock/public/glass{
+ name = "Monastery Transit"
+ },
+/turf/open/floor/plasteel/white{
+ heat_capacity = 1e+006
+ },
+/area/chapel/dock)
"beU" = (
/obj/structure/lattice/catwalk,
/obj/structure/cable{
@@ -29401,6 +29441,13 @@
dir = 1
},
/obj/effect/landmark/start/chemist,
+/obj/machinery/button/door{
+ id = "chemistry_shutters";
+ name = "Shutters Control";
+ pixel_x = 26;
+ pixel_y = 4;
+ req_access_txt = "5; 33"
+ },
/obj/effect/turf_decal/tile/yellow{
dir = 1
},
@@ -29442,6 +29489,15 @@
},
/turf/open/floor/plasteel/white,
/area/medical/chemistry)
+"brp" = (
+/obj/item/twohanded/required/kirbyplants{
+ icon_state = "plant-03"
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_x = -24
+ },
+/turf/open/floor/plasteel/dark,
+/area/science/lab)
"brq" = (
/obj/structure/sink/kitchen{
desc = "A sink used for washing one's hands and face. It looks rusty and home-made";
@@ -31924,27 +31980,13 @@
/turf/open/floor/plasteel/white,
/area/medical/chemistry)
"bwW" = (
-/obj/structure/rack,
-/obj/item/stack/packageWrap,
-/obj/item/hand_labeler,
-/obj/item/clothing/glasses/science,
-/obj/item/clothing/glasses/science,
-/obj/effect/turf_decal/tile/yellow,
-/obj/effect/turf_decal/tile/yellow{
- dir = 4
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "chemistry_shutters";
+ name = "chemistry shutters"
},
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
- },
-/turf/open/floor/plasteel/white,
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
/area/medical/chemistry)
-"bxa" = (
-/obj/structure/table/glass,
-/obj/item/book/manual/wiki/research_and_development,
-/obj/item/disk/tech_disk,
-/obj/item/disk/design_disk,
-/turf/open/floor/plasteel/dark,
-/area/science/lab)
"bxc" = (
/obj/structure/disposalpipe/segment{
dir = 6
@@ -32453,17 +32495,19 @@
/turf/open/floor/plasteel,
/area/science/xenobiology)
"bxY" = (
-/obj/structure/closet/emcloset,
/obj/machinery/light/small{
dir = 1
},
-/turf/open/floor/plasteel/dark,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
/area/hallway/secondary/entry)
"bxZ" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 1
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
},
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/plasteel/white,
/area/hallway/secondary/entry)
"bya" = (
/obj/structure/extinguisher_cabinet{
@@ -32472,7 +32516,7 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 1
},
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/plasteel/white,
/area/hallway/secondary/entry)
"byb" = (
/obj/structure/table,
@@ -33186,17 +33230,14 @@
/area/space/nearstation)
"bzz" = (
/obj/effect/turf_decal/stripes/line,
-/obj/structure/chair{
- dir = 4
- },
-/obj/structure/sign/departments/holy{
- pixel_x = -32
- },
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/plasteel/white,
/area/hallway/secondary/entry)
"bzA" = (
/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/plasteel/dark,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
/area/hallway/secondary/entry)
"bzB" = (
/obj/effect/turf_decal/stripes/line,
@@ -33207,7 +33248,7 @@
network = list("monastery");
pixel_x = 28
},
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/plasteel/white,
/area/hallway/secondary/entry)
"bzC" = (
/obj/structure/table,
@@ -33740,8 +33781,9 @@
/obj/structure/transit_tube/curved/flipped{
dir = 4
},
-/turf/open/space/basic,
-/area/space/nearstation)
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/hallway/secondary/entry)
"bAJ" = (
/obj/structure/transit_tube/horizontal,
/obj/structure/window/reinforced/fulltile,
@@ -37152,6 +37194,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
+/obj/machinery/door/firedoor,
/obj/effect/turf_decal/tile/purple{
dir = 1
},
@@ -37276,19 +37319,6 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
-"bHp" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/tile/purple{
- dir = 1
- },
-/obj/effect/turf_decal/tile/purple{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
"bHq" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
@@ -37478,6 +37508,7 @@
dir = 8;
layer = 2.9
},
+/obj/structure/lattice,
/turf/open/space/basic,
/area/space/nearstation)
"bHP" = (
@@ -38059,14 +38090,6 @@
},
/turf/open/floor/plasteel/dark,
/area/chapel/dock)
-"bIY" = (
-/obj/structure/lattice,
-/obj/structure/window/reinforced{
- dir = 8;
- layer = 2.9
- },
-/turf/open/space/basic,
-/area/space/nearstation)
"bIZ" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -38622,15 +38645,15 @@
/area/chapel/dock)
"bKe" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on,
-/turf/open/floor/plasteel/dark,
+/obj/structure/closet/emcloset,
+/turf/open/floor/plasteel/white{
+ heat_capacity = 1e+006
+ },
/area/chapel/dock)
"bKf" = (
-/obj/structure/chair,
-/turf/open/floor/plasteel/dark,
-/area/chapel/dock)
-"bKg" = (
-/obj/structure/closet/emcloset,
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/plasteel/white{
+ heat_capacity = 1e+006
+ },
/area/chapel/dock)
"bKh" = (
/obj/machinery/door/window/eastright{
@@ -39144,19 +39167,11 @@
/turf/open/floor/plasteel/dark,
/area/chapel/dock)
"bLr" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 9
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel/white{
+ heat_capacity = 1e+006
},
-/turf/open/floor/plasteel/dark,
/area/chapel/dock)
-"bLs" = (
-/obj/structure/lattice,
-/obj/structure/window/reinforced{
- dir = 8;
- layer = 2.9
- },
-/turf/open/space,
-/area/space/nearstation)
"bLt" = (
/obj/effect/decal/cleanable/oil{
icon_state = "floor6"
@@ -39647,7 +39662,9 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/plasteel/white{
+ heat_capacity = 1e+006
+ },
/area/chapel/dock)
"bMx" = (
/obj/effect/turf_decal/stripes/line,
@@ -39657,16 +39674,13 @@
/obj/machinery/light/small{
dir = 4
},
-/turf/open/floor/plasteel/dark,
-/area/chapel/dock)
-"bMy" = (
-/obj/structure/window/reinforced{
- dir = 8;
- layer = 2.9
+/obj/structure/chair{
+ dir = 1
},
-/obj/structure/lattice,
-/turf/open/space,
-/area/space/nearstation)
+/turf/open/floor/plasteel/white{
+ heat_capacity = 1e+006
+ },
+/area/chapel/dock)
"bMA" = (
/obj/effect/landmark/event_spawn,
/turf/open/floor/engine,
@@ -40518,19 +40532,6 @@
},
/turf/open/floor/plasteel/dark,
/area/chapel/dock)
-"bOy" = (
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/chapel/dock)
"bOz" = (
/obj/structure/chair/comfy/black{
dir = 1
@@ -42241,12 +42242,6 @@
/obj/structure/flora/ausbushes,
/turf/open/floor/plating/asteroid,
/area/chapel/asteroid/monastery)
-"bSn" = (
-/obj/structure/window/reinforced{
- dir = 8
- },
-/turf/open/space,
-/area/space/nearstation)
"bSo" = (
/obj/machinery/disposal/bin,
/obj/structure/disposalpipe/trunk{
@@ -44059,7 +44054,8 @@
/turf/open/floor/engine/co2,
/area/engine/atmos)
"bWh" = (
-/turf/open/floor/plating/asteroid,
+/obj/effect/turf_decal/sand,
+/turf/open/floor/plasteel,
/area/chapel/office)
"bWi" = (
/obj/structure/flora/ausbushes/leafybush,
@@ -44780,12 +44776,6 @@
},
/turf/closed/wall/r_wall,
/area/engine/atmos)
-"bXI" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel/dark,
-/area/chapel/main/monastery)
"bXJ" = (
/turf/open/floor/plasteel/dark,
/area/chapel/main/monastery)
@@ -45107,6 +45097,24 @@
},
/turf/open/floor/plasteel,
/area/engine/engineering)
+"bYM" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"bYN" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -45179,15 +45187,15 @@
/obj/structure/disposalpipe/segment{
dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
/obj/effect/turf_decal/tile/yellow{
dir = 1
},
/obj/effect/turf_decal/tile/yellow{
dir = 4
},
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
/turf/open/floor/plasteel,
/area/engine/engineering)
"bYR" = (
@@ -46450,13 +46458,6 @@
},
/turf/open/floor/plasteel/dark,
/area/chapel/main/monastery)
-"ccL" = (
-/obj/item/flashlight/lantern{
- icon_state = "lantern-on"
- },
-/obj/effect/turf_decal/sand,
-/turf/open/floor/plasteel,
-/area/chapel/asteroid/monastery)
"ccM" = (
/obj/structure/chair,
/turf/open/floor/plating/asteroid,
@@ -46689,6 +46690,7 @@
/obj/effect/turf_decal/tile/yellow{
dir = 8
},
+/obj/machinery/power/port_gen/pacman,
/turf/open/floor/plasteel,
/area/engine/engineering)
"cdK" = (
@@ -46857,6 +46859,15 @@
},
/turf/open/floor/plating/asteroid,
/area/chapel/asteroid/monastery)
+"cep" = (
+/obj/structure/sign/poster/official/random{
+ pixel_x = -32
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
"ceq" = (
/obj/machinery/power/emitter,
/turf/open/floor/plating,
@@ -47117,22 +47128,6 @@
},
/turf/open/floor/plasteel/dark,
/area/chapel/main/monastery)
-"cfp" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/chapel/main/monastery)
"cfr" = (
/obj/structure/transit_tube_pod,
/obj/structure/transit_tube/station/reverse{
@@ -47240,7 +47235,6 @@
/turf/open/floor/plating,
/area/chapel/main/monastery)
"cfL" = (
-/obj/structure/flora/ausbushes/fernybush,
/obj/machinery/camera{
c_tag = "Monastery Asteroid Starboard Aft";
dir = 1;
@@ -47249,11 +47243,6 @@
/obj/effect/turf_decal/sand,
/turf/open/floor/plasteel,
/area/chapel/asteroid/monastery)
-"cfM" = (
-/obj/structure/flora/ausbushes,
-/obj/effect/turf_decal/sand,
-/turf/open/floor/plasteel,
-/area/chapel/asteroid/monastery)
"cfN" = (
/turf/closed/mineral,
/area/chapel/asteroid/monastery)
@@ -47426,6 +47415,13 @@
},
/turf/open/floor/plating,
/area/engine/engineering)
+"cgt" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
"cgu" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 4
@@ -47470,8 +47466,8 @@
/area/hydroponics/garden/monastery)
"cgL" = (
/obj/structure/closet/cabinet,
-/obj/item/clothing/suit/holidaypriest,
-/obj/item/clothing/suit/nun,
+/obj/item/clothing/suit/chaplain/holidaypriest,
+/obj/item/clothing/suit/chaplain/nun,
/obj/item/clothing/head/nun_hood,
/obj/machinery/button/door{
id = "Cell1";
@@ -47838,8 +47834,8 @@
/area/space/nearstation)
"cio" = (
/obj/structure/closet/cabinet,
-/obj/item/clothing/suit/holidaypriest,
-/obj/item/clothing/suit/nun,
+/obj/item/clothing/suit/chaplain/holidaypriest,
+/obj/item/clothing/suit/chaplain/nun,
/obj/item/clothing/head/nun_hood,
/obj/machinery/button/door{
id = "Cell2";
@@ -50161,6 +50157,19 @@
},
/turf/open/floor/plasteel/dark,
/area/chapel/dock)
+"cqI" = (
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/dock)
"cqS" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -50467,8 +50476,8 @@
/obj/structure/closet,
/obj/item/storage/backpack/cultpack,
/obj/item/clothing/head/nun_hood,
-/obj/item/clothing/suit/nun,
-/obj/item/clothing/suit/holidaypriest,
+/obj/item/clothing/suit/chaplain/nun,
+/obj/item/clothing/suit/chaplain/holidaypriest,
/obj/effect/turf_decal/tile/neutral{
dir = 1
},
@@ -50902,6 +50911,22 @@
/obj/machinery/vending/wardrobe/chap_wardrobe,
/turf/open/floor/carpet,
/area/chapel/office)
+"cua" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/main/monastery)
"cuc" = (
/obj/machinery/light,
/obj/machinery/camera{
@@ -50922,13 +50947,6 @@
},
/turf/open/floor/plasteel/dark,
/area/science/xenobiology)
-"cui" = (
-/obj/structure/lattice,
-/obj/machinery/atmospherics/pipe/simple/orange/visible{
- dir = 4
- },
-/turf/open/space,
-/area/space/nearstation)
"cuk" = (
/obj/structure/closet{
name = "beekeeping wardrobe"
@@ -51264,11 +51282,11 @@
/turf/open/floor/plasteel/dark,
/area/chapel/main/monastery)
"cvf" = (
+/obj/machinery/recycler,
/obj/machinery/conveyor{
- dir = 8;
+ dir = 4;
id = "garbage"
},
-/obj/machinery/recycler,
/turf/open/floor/plating,
/area/maintenance/disposal)
"cvg" = (
@@ -51544,15 +51562,6 @@
},
/turf/open/floor/plasteel/dark,
/area/chapel/main/monastery)
-"cvM" = (
-/obj/item/twohanded/required/kirbyplants{
- icon_state = "plant-10"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 9
- },
-/turf/open/floor/plasteel/dark,
-/area/chapel/main/monastery)
"cvR" = (
/obj/machinery/light/small{
dir = 8
@@ -51850,6 +51859,22 @@
},
/turf/open/space/basic,
/area/space/nearstation)
+"cxj" = (
+/obj/structure/table,
+/obj/item/clothing/glasses/meson/engine,
+/obj/item/clothing/glasses/meson/engine,
+/obj/item/clothing/glasses/meson/engine,
+/obj/item/pipe_dispenser,
+/obj/item/pipe_dispenser,
+/obj/item/pipe_dispenser,
+/obj/machinery/light,
+/obj/effect/turf_decal/delivery,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"cxk" = (
/obj/structure/window/reinforced{
dir = 1;
@@ -52395,6 +52420,12 @@
},
/turf/open/floor/plasteel/dark,
/area/library)
+"cAp" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"cAr" = (
/obj/machinery/light/small{
dir = 8
@@ -52546,15 +52577,6 @@
},
/turf/open/floor/plasteel/dark,
/area/library)
-"cAQ" = (
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plating,
-/area/engine/engineering)
"cAS" = (
/obj/machinery/vending/wardrobe/curator_wardrobe,
/turf/open/floor/plasteel/dark,
@@ -52870,23 +52892,6 @@
},
/turf/open/floor/plasteel,
/area/science/explab)
-"cKV" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
-/obj/machinery/airalarm{
- dir = 4;
- pixel_x = -23
- },
-/obj/effect/turf_decal/tile/blue{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
-"cLw" = (
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/turf/open/floor/plating,
-/area/engine/engineering)
"cOp" = (
/obj/item/clothing/mask/gas,
/obj/item/clothing/mask/gas,
@@ -52896,6 +52901,13 @@
/obj/structure/table,
/turf/open/floor/plasteel,
/area/science/xenobiology)
+"cOA" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
"cPy" = (
/obj/machinery/atmospherics/components/binary/pump{
dir = 2
@@ -52930,6 +52942,14 @@
},
/turf/open/floor/plasteel/white,
/area/science/xenobiology)
+"cQZ" = (
+/obj/machinery/door/airlock/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/department/engine)
+"cRJ" = (
+/obj/machinery/status_display/supply,
+/turf/closed/wall,
+/area/quartermaster/warehouse)
"cSJ" = (
/obj/item/reagent_containers/glass/beaker/cryoxadone{
pixel_x = -2;
@@ -52985,6 +53005,15 @@
},
/turf/open/floor/plasteel/dark,
/area/science/lab)
+"cUT" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 9
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
"cXW" = (
/obj/structure/grille,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
@@ -53037,13 +53066,6 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
-"dgj" = (
-/obj/machinery/atmospherics/pipe/simple/general/visible{
- dir = 6
- },
-/obj/machinery/meter,
-/turf/closed/wall/r_wall,
-/area/engine/supermatter)
"dgz" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -53065,6 +53087,13 @@
},
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
+"dhu" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
+ dir = 6
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/space/basic,
+/area/space/nearstation)
"dhz" = (
/obj/structure/disposalpipe/segment,
/obj/structure/cable{
@@ -53109,6 +53138,12 @@
},
/turf/open/floor/plasteel/dark,
/area/science/explab)
+"dlI" = (
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"dmP" = (
/obj/structure/chair{
dir = 8
@@ -53180,10 +53215,6 @@
},
/turf/open/floor/plasteel/dark,
/area/chapel/office)
-"dps" = (
-/obj/machinery/status_display/ai,
-/turf/closed/wall,
-/area/quartermaster/qm)
"dqw" = (
/obj/machinery/door/airlock/maintenance{
req_access_txt = "0";
@@ -53219,13 +53250,6 @@
/obj/machinery/reagentgrinder,
/turf/open/floor/plating,
/area/maintenance/department/cargo)
-"dsz" = (
-/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
- dir = 5
- },
-/obj/structure/lattice/catwalk,
-/turf/open/space/basic,
-/area/space/nearstation)
"dtm" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -53291,6 +53315,24 @@
/obj/item/stack/sheet/mineral/wood,
/turf/open/floor/plating,
/area/maintenance/department/engine)
+"dzA" = (
+/obj/effect/spawner/lootdrop/maintenance,
+/obj/structure/rack,
+/obj/machinery/light/small{
+ dir = 4
+ },
+/turf/open/floor/plating{
+ icon_state = "panelscorched"
+ },
+/area/maintenance/department/chapel/monastery)
+"dAa" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple,
+/obj/structure/lattice/catwalk,
+/turf/open/space/basic,
+/area/space/nearstation)
"dAF" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/sign/warning/vacuum/external,
@@ -53305,54 +53347,30 @@
icon_state = "platingdmg1"
},
/area/maintenance/department/engine)
-"dEy" = (
-/obj/machinery/airalarm{
- dir = 1;
- pixel_y = -22
- },
-/turf/open/floor/plasteel/dark,
-/area/engine/engineering)
-"dFJ" = (
-/turf/open/floor/engine,
+"dFF" = (
+/turf/closed/wall/r_wall,
/area/engine/supermatter)
-"dHr" = (
+"dGd" = (
/obj/machinery/atmospherics/pipe/manifold/cyan/visible,
-/obj/machinery/button/door{
- id = "engsm";
- name = "Radiation Shutters Control";
- pixel_y = 24;
- req_access_txt = "10"
- },
+/obj/machinery/meter,
/obj/effect/turf_decal/stripes/line{
dir = 1
},
/turf/open/floor/engine,
/area/engine/engineering)
-"dHZ" = (
-/obj/structure/chair/office/light{
- dir = 1
- },
-/obj/effect/landmark/start/chemist,
-/obj/machinery/button/door{
- id = "chemistry_shutters";
- name = "Shutters Control";
- pixel_x = 26;
- pixel_y = 4;
- req_access_txt = "5; 33"
- },
-/obj/effect/turf_decal/tile/yellow{
- dir = 1
- },
-/obj/effect/turf_decal/tile/yellow{
+"dGp" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/junction{
dir = 4
},
-/turf/open/floor/plasteel/white,
-/area/medical/chemistry)
-"dJk" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/atmospherics/pipe/simple/orange/visible,
-/turf/open/floor/plating,
-/area/engine/atmos)
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
+"dHF" = (
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
"dJm" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -53412,12 +53430,18 @@
/obj/machinery/shieldwallgen/xenobiologyaccess,
/turf/open/floor/plating,
/area/maintenance/department/engine)
-"dSp" = (
-/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/engine_waste{
- dir = 1
+"dPZ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
},
-/turf/open/floor/plating/airless,
+/turf/open/floor/plasteel,
/area/engine/engineering)
+"dRs" = (
+/obj/structure/lattice,
+/obj/structure/grille,
+/turf/open/space/basic,
+/area/space)
"dSr" = (
/obj/item/chair,
/turf/open/floor/wood,
@@ -53428,6 +53452,25 @@
},
/turf/open/floor/plasteel,
/area/hallway/secondary/exit/departure_lounge)
+"dUk" = (
+/obj/machinery/cryopod{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison)
+"dVt" = (
+/obj/structure/chair/office/light{
+ dir = 1
+ },
+/obj/effect/landmark/start/chemist,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/chemistry)
"dVI" = (
/obj/machinery/atmospherics/components/binary/pump{
dir = 4;
@@ -53494,10 +53537,6 @@
/obj/structure/chair/office/light,
/turf/open/floor/plasteel/white,
/area/science/xenobiology)
-"eex" = (
-/obj/machinery/status_display/supply,
-/turf/closed/wall,
-/area/quartermaster/office)
"eeQ" = (
/obj/machinery/door/firedoor,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
@@ -53533,13 +53572,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/engine)
-"eiV" = (
-/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
- dir = 4
- },
-/obj/structure/lattice,
-/turf/open/space/basic,
-/area/space/nearstation)
"ekU" = (
/obj/effect/decal/cleanable/cobweb{
icon_state = "cobweb2"
@@ -53550,23 +53582,12 @@
/obj/structure/chair/office/dark,
/turf/open/floor/wood,
/area/lawoffice)
-"epj" = (
-/obj/machinery/cryopod{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/crew_quarters/dorms)
"epJ" = (
/obj/structure/sign/poster/contraband/random{
pixel_y = 32
},
/turf/open/floor/carpet,
/area/maintenance/department/crew_quarters/dorms)
-"epV" = (
-/obj/structure/chair,
-/obj/effect/turf_decal/stripes/corner,
-/turf/open/floor/plasteel,
-/area/engine/engineering)
"eqD" = (
/obj/structure/sign/poster/contraband/random{
pixel_x = -32
@@ -53576,6 +53597,20 @@
icon_state = "wood-broken"
},
/area/maintenance/department/crew_quarters/dorms)
+"eqM" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
+ dir = 5
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/space/basic,
+/area/space/nearstation)
+"erV" = (
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
"eta" = (
/obj/machinery/door/airlock/engineering{
name = "Engineering Supplies";
@@ -53594,6 +53629,40 @@
},
/turf/open/floor/plasteel/dark,
/area/engine/engineering)
+"eue" = (
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"eux" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"euN" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/item/twohanded/required/kirbyplants{
+ icon_state = "plant-10"
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/main/monastery)
"euQ" = (
/obj/structure/sign/warning/vacuum/external{
pixel_y = 32
@@ -53603,10 +53672,20 @@
},
/turf/open/floor/plating,
/area/maintenance/department/science)
-"eyj" = (
-/obj/effect/spawner/structure/window/plasma/reinforced,
-/turf/open/floor/plating,
-/area/engine/engineering)
+"eyT" = (
+/obj/machinery/jukebox,
+/turf/open/floor/plasteel/dark,
+/area/crew_quarters/bar)
+"ezo" = (
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 2;
+ name = "2maintenance loot spawner"
+ },
+/obj/structure/rack,
+/turf/open/floor/plating{
+ icon_state = "panelscorched"
+ },
+/area/maintenance/department/chapel/monastery)
"ezF" = (
/obj/structure/table/wood,
/obj/item/paper_bin,
@@ -53638,23 +53717,6 @@
},
/turf/open/floor/plasteel,
/area/hallway/secondary/exit/departure_lounge)
-"eAH" = (
-/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 5
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
-"eAZ" = (
-/obj/structure/lattice,
-/obj/machinery/atmospherics/pipe/simple/green/visible,
-/obj/machinery/atmospherics/pipe/simple/orange/visible{
- dir = 4
- },
-/turf/open/space,
-/area/space/nearstation)
"eCw" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -53693,19 +53755,6 @@
},
/turf/open/floor/plasteel/white,
/area/medical/sleeper)
-"eFG" = (
-/obj/machinery/mineral/stacking_unit_console{
- dir = 2;
- machinedir = 8;
- pixel_x = -32;
- pixel_y = 32
- },
-/obj/machinery/conveyor{
- dir = 8;
- id = "EngLoad"
- },
-/turf/open/floor/plating,
-/area/maintenance/disposal)
"eHI" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on,
/turf/open/floor/plasteel,
@@ -53730,6 +53779,17 @@
},
/turf/open/floor/plasteel/dark,
/area/hallway/secondary/exit/departure_lounge)
+"eMz" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 4
+ },
+/obj/machinery/door/airlock/engineering/glass{
+ name = "Supermatter Engine";
+ req_access_txt = "10"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
"eMC" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 5
@@ -53749,6 +53809,15 @@
/obj/structure/lattice,
/turf/closed/wall,
/area/space/nearstation)
+"eOA" = (
+/obj/structure/window/reinforced,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/lattice,
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/space/nearstation)
"eOZ" = (
/obj/structure/closet,
/obj/item/clothing/suit/judgerobe,
@@ -53756,6 +53825,19 @@
/obj/item/gavelhammer,
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
+"ePS" = (
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = -28
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
"ePU" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -53783,18 +53865,6 @@
icon_state = "platingdmg3"
},
/area/maintenance/department/security/brig)
-"eRp" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/machinery/door/firedoor,
-/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
-"eSB" = (
-/obj/machinery/computer/cryopod{
- dir = 1;
- pixel_y = -26
- },
-/turf/open/floor/plasteel/dark,
-/area/security/prison)
"eSL" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/item/beacon,
@@ -53816,6 +53886,10 @@
},
/turf/open/floor/plasteel/dark,
/area/engine/engineering)
+"eVW" = (
+/obj/machinery/portable_atmospherics/canister/toxins,
+/turf/open/floor/plating,
+/area/engine/engineering)
"eWi" = (
/obj/structure/cable{
icon_state = "0-4"
@@ -53845,6 +53919,12 @@
/obj/item/stack/cable_coil/cut/random,
/turf/open/floor/plating,
/area/maintenance/department/cargo)
+"fbu" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 6
+ },
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
"fdQ" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -53929,12 +54009,6 @@
},
/turf/open/floor/plasteel/white,
/area/science/explab)
-"fjD" = (
-/obj/machinery/atmospherics/pipe/simple/general/visible{
- dir = 9
- },
-/turf/closed/wall/r_wall,
-/area/engine/supermatter)
"fkH" = (
/obj/effect/turf_decal/stripes/line{
dir = 6
@@ -53947,16 +54021,20 @@
},
/turf/open/floor/plasteel,
/area/science/explab)
+"flP" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"fmh" = (
/turf/open/floor/wood,
/area/maintenance/department/engine)
-"fmL" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/machinery/light{
- dir = 8;
- light_color = "#e8eaff"
+"fml" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 9
},
-/turf/open/floor/plasteel/dark,
+/turf/closed/wall/r_wall,
/area/engine/engineering)
"fmU" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
@@ -53997,12 +54075,6 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plating,
/area/maintenance/department/engine)
-"frj" = (
-/obj/machinery/atmospherics/pipe/simple/orange/visible{
- dir = 6
- },
-/turf/closed/wall/r_wall,
-/area/engine/engineering)
"ftp" = (
/turf/open/floor/plating{
icon_state = "platingdmg1"
@@ -54052,6 +54124,10 @@
},
/turf/open/floor/plasteel,
/area/quartermaster/sorting)
+"fwo" = (
+/obj/machinery/door/airlock/maintenance,
+/turf/open/floor/plating,
+/area/chapel/main/monastery)
"fwr" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 8
@@ -54065,21 +54141,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/cargo)
-"fxC" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible,
-/turf/closed/wall/r_wall,
-/area/engine/supermatter)
-"fym" = (
-/obj/machinery/door/airlock/engineering/glass/critical{
- heat_proof = 1;
- name = "Supermatter Chamber";
- req_access_txt = "10"
- },
-/obj/effect/mapping_helpers/airlock/cyclelink_helper{
- dir = 1
- },
-/turf/open/floor/engine,
-/area/engine/supermatter)
"fyF" = (
/obj/structure/cable/yellow{
icon_state = "0-4"
@@ -54148,12 +54209,6 @@
},
/turf/open/floor/plasteel/dark,
/area/science/mixing)
-"fBZ" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
- dir = 8
- },
-/turf/open/floor/engine,
-/area/engine/supermatter)
"fFv" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/firealarm{
@@ -54162,6 +54217,14 @@
},
/turf/open/floor/plasteel/dark,
/area/engine/engineering)
+"fGt" = (
+/obj/structure/chair/stool,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/landmark/start/station_engineer,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"fIu" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -54234,19 +54297,9 @@
/obj/structure/bookcase/random/religion,
/turf/open/floor/plasteel/dark,
/area/library/lounge)
-"fZK" = (
-/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
- dir = 4
- },
-/obj/machinery/light{
- dir = 4;
- light_color = "#e8eaff"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
+"fWE" = (
/turf/open/floor/engine,
-/area/engine/engineering)
+/area/engine/supermatter)
"gam" = (
/obj/machinery/door/airlock/medical/glass{
name = "Service Door";
@@ -54259,6 +54312,18 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/kitchen)
+"gaJ" = (
+/obj/machinery/status_display/ai,
+/turf/closed/wall,
+/area/quartermaster/qm)
+"gaQ" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"gcj" = (
/obj/machinery/vending/kink,
/obj/effect/turf_decal/tile/blue{
@@ -54306,6 +54371,13 @@
},
/turf/open/floor/plasteel,
/area/hallway/secondary/exit/departure_lounge)
+"gfh" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
+ dir = 6
+ },
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/space/nearstation)
"gfi" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -54315,11 +54387,18 @@
},
/turf/open/floor/plating,
/area/maintenance/department/cargo)
-"ggg" = (
-/obj/machinery/atmospherics/pipe/simple/general/visible{
- dir = 6
+"gih" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
},
-/turf/open/floor/plasteel/dark,
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#d1dfff"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/engine,
/area/engine/engineering)
"giI" = (
/obj/machinery/light/small{
@@ -54364,6 +54443,12 @@
},
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
+"gkN" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
"gkR" = (
/obj/item/twohanded/required/kirbyplants/random,
/obj/structure/extinguisher_cabinet{
@@ -54493,6 +54578,14 @@
heat_capacity = 1e+006
},
/area/hallway/secondary/exit/departure_lounge)
+"gvO" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white{
+ heat_capacity = 1e+006
+ },
+/area/chapel/dock)
"gwn" = (
/obj/structure/sign/warning{
pixel_y = 32
@@ -54545,24 +54638,6 @@
/obj/item/flashlight/lamp/green,
/turf/open/floor/carpet,
/area/lawoffice)
-"gBb" = (
-/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/heat_exchanging/simple,
-/obj/structure/lattice/catwalk,
-/turf/open/space/basic,
-/area/space/nearstation)
-"gDR" = (
-/obj/machinery/camera{
- c_tag = "Central Primary Hallway Escape";
- dir = 4
- },
-/obj/effect/turf_decal/tile/blue{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
"gDZ" = (
/obj/effect/turf_decal/box/corners{
dir = 1
@@ -54582,11 +54657,6 @@
},
/turf/open/floor/plasteel/dark,
/area/science/explab)
-"gEo" = (
-/obj/machinery/atmospherics/pipe/manifold4w/general/visible,
-/obj/machinery/meter,
-/turf/open/floor/plasteel/dark,
-/area/engine/engineering)
"gFo" = (
/obj/structure/window/reinforced,
/obj/structure/table/glass,
@@ -54620,17 +54690,39 @@
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
"gGA" = (
-/obj/structure/table/glass,
-/obj/machinery/reagentgrinder,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
-/obj/effect/turf_decal/tile/yellow,
-/obj/effect/turf_decal/tile/yellow{
- dir = 4
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "chemistry_shutters";
+ name = "chemistry shutters"
},
-/turf/open/floor/plasteel/white,
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
/area/medical/chemistry)
+"gHp" = (
+/obj/machinery/atmospherics/pipe/manifold/orange/visible{
+ dir = 8
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/machinery/light{
+ dir = 8;
+ light_color = "#e8eaff"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"gHy" = (
+/obj/machinery/computer/cryopod{
+ dir = 1;
+ pixel_y = -26
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison)
"gHZ" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable{
@@ -54681,6 +54773,13 @@
/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
+"gLn" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/space/nearstation)
"gLF" = (
/obj/machinery/vending/snack/random,
/obj/effect/turf_decal/tile/neutral{
@@ -54732,12 +54831,6 @@
},
/turf/open/floor/wood,
/area/lawoffice)
-"gQf" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 10
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
"gSH" = (
/turf/closed/wall,
/area/lawoffice)
@@ -54755,6 +54848,21 @@
},
/turf/open/floor/plating,
/area/maintenance/department/cargo)
+"gUS" = (
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible,
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/machinery/camera{
+ c_tag = "Engineering Supermatter Fore";
+ dir = 1;
+ network = list("ss13","engine")
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
"gVc" = (
/turf/open/floor/wood{
icon_state = "wood-broken4"
@@ -54767,31 +54875,10 @@
},
/turf/open/floor/plating,
/area/maintenance/department/science)
-"gXZ" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/machinery/camera{
- c_tag = "Engineering Supermatter Fore";
- dir = 4;
- network = list("ss13","engine")
- },
-/turf/open/floor/plasteel/dark,
-/area/engine/engineering)
"gYo" = (
/obj/structure/grille,
/turf/open/space/basic,
/area/space/nearstation)
-"haA" = (
-/obj/structure/table,
-/obj/item/stack/sheet/metal/fifty,
-/obj/item/stack/rods/fifty,
-/obj/item/clothing/glasses/welding,
-/obj/effect/turf_decal/tile/yellow,
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
- },
-/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/plasteel,
-/area/engine/engineering)
"heC" = (
/obj/machinery/power/apc/highcap/five_k{
dir = 8;
@@ -54838,24 +54925,6 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/aft)
-"hjk" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/orange/visible,
-/turf/open/floor/plasteel,
-/area/engine/atmos)
-"hjD" = (
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/effect/turf_decal/tile/yellow,
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
- },
-/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/plasteel,
-/area/engine/engineering)
"hkQ" = (
/obj/machinery/light{
dir = 4
@@ -54878,26 +54947,6 @@
},
/turf/open/floor/wood,
/area/lawoffice)
-"hon" = (
-/obj/machinery/atmospherics/components/binary/pump/on{
- dir = 4;
- name = "Gas to Filter"
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
-"hoS" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 6
- },
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/structure/cable/yellow{
- icon_state = "1-4"
- },
-/obj/effect/turf_decal/stripes/corner,
-/turf/open/floor/engine,
-/area/engine/engineering)
"hqo" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
@@ -54913,6 +54962,13 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/central)
+"hrx" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
"hvW" = (
/obj/machinery/door/poddoor/preopen{
id = "xenobio4";
@@ -54948,18 +55004,18 @@
/obj/machinery/portable_atmospherics/canister/toxins,
/turf/open/floor/plating,
/area/security/execution/transfer)
+"hxh" = (
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
"hxn" = (
/obj/structure/chair,
/obj/item/clothing/glasses/regular,
/turf/open/floor/plating,
/area/maintenance/department/science)
-"hyh" = (
-/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
- dir = 9
- },
-/obj/structure/lattice/catwalk,
-/turf/open/space/basic,
-/area/space/nearstation)
"hzc" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -54989,6 +55045,21 @@
},
/turf/open/floor/plating,
/area/maintenance/solars/port)
+"hCg" = (
+/obj/machinery/conveyor{
+ dir = 8;
+ id = "garbage"
+ },
+/turf/open/floor/plating,
+/area/maintenance/disposal)
+"hDy" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/holopad,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"hDG" = (
/obj/machinery/door/airlock/engineering{
name = "Auxillary Base Construction";
@@ -55021,43 +55092,20 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/central)
-"hGB" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 1
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
"hHr" = (
/obj/structure/chair/comfy/black{
dir = 4
},
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
-"hIZ" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
- dir = 1
- },
-/obj/effect/turf_decal/tile/blue{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
-"hKp" = (
-/obj/structure/cable/yellow{
- icon_state = "0-8"
- },
-/obj/machinery/atmospherics/pipe/manifold/general/visible{
- dir = 8
- },
-/obj/structure/window/plasma/reinforced{
+"hJO" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
dir = 4
},
-/obj/machinery/power/rad_collector/anchored,
-/turf/open/floor/engine,
-/area/engine/supermatter)
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple,
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/space/nearstation)
"hOx" = (
/obj/structure/cable{
icon_state = "2-4"
@@ -55095,17 +55143,6 @@
icon_state = "platingdmg3"
},
/area/maintenance/department/science)
-"hQy" = (
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "engsm";
- name = "Radiation Chamber Shutters"
- },
-/obj/item/tank/internals/plasma,
-/turf/open/floor/plating,
-/area/engine/supermatter)
"hQz" = (
/obj/structure/closet/emcloset/anchored,
/obj/structure/cable/yellow{
@@ -55117,29 +55154,14 @@
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/engine,
/area/engine/engineering)
-"hSt" = (
-/obj/machinery/atmospherics/components/binary/pump/on{
- dir = 4;
- name = "Gas to Cooling Loop"
+"hRQ" = (
+/obj/structure/window/reinforced{
+ dir = 8;
+ layer = 2.9
},
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
-"hSC" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible,
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/structure/cable/yellow{
- icon_state = "1-4"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
+/obj/structure/lattice,
+/turf/open/space,
+/area/space/nearstation)
"hSM" = (
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 8
@@ -55164,18 +55186,23 @@
},
/turf/open/floor/plating,
/area/maintenance/department/science)
+"hUf" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 9
+ },
+/turf/closed/wall/r_wall,
+/area/engine/supermatter)
+"hUi" = (
+/obj/machinery/atmospherics/pipe/manifold4w/general/visible,
+/obj/machinery/meter,
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
"hUt" = (
/obj/structure/closet/crate{
icon_state = "crateopen"
},
/turf/open/floor/plating,
/area/maintenance/department/cargo)
-"hUw" = (
-/obj/machinery/atmospherics/pipe/simple/orange/visible{
- dir = 9
- },
-/turf/closed/wall/r_wall,
-/area/engine/engineering)
"hUJ" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -55191,17 +55218,25 @@
},
/turf/open/floor/plating,
/area/maintenance/department/engine)
+"hWa" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/white,
+/area/hallway/secondary/entry)
+"hXm" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
"hXt" = (
/obj/structure/girder,
/turf/open/floor/plating,
/area/maintenance/department/science)
-"hXK" = (
-/obj/structure/chair/office/dark{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/plasteel,
-/area/engine/engineering)
"hYe" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/effect/turf_decal/tile/red{
@@ -55243,20 +55278,15 @@
},
/turf/open/floor/plasteel/dark,
/area/hallway/secondary/exit/departure_lounge)
+"iaZ" = (
+/turf/open/space/basic,
+/area/hallway/secondary/entry)
"ick" = (
/obj/structure/cable{
icon_state = "4-8"
},
/turf/open/floor/plasteel/dark,
/area/library)
-"iej" = (
-/obj/machinery/atmospherics/pipe/manifold/cyan/visible,
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/engine,
-/area/engine/engineering)
"igE" = (
/obj/structure/table/reinforced,
/obj/machinery/button/door{
@@ -55305,30 +55335,24 @@
icon_state = "platingdmg3"
},
/area/maintenance/department/science)
+"ikm" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 4;
+ name = "Mix to Gas"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
"ikB" = (
/obj/structure/closet/secure_closet/medical2,
/turf/open/floor/plating,
/area/maintenance/department/science)
-"ikO" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible{
- dir = 9
- },
-/obj/effect/turf_decal/stripes/corner{
- dir = 4
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
"ilD" = (
/obj/machinery/processor/slime,
/turf/open/floor/plasteel/white,
/area/science/xenobiology)
-"imE" = (
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
"ioj" = (
/obj/effect/turf_decal/stripes/line{
dir = 10
@@ -55345,40 +55369,13 @@
},
/turf/open/floor/plasteel/white,
/area/medical/sleeper)
-"iop" = (
-/obj/machinery/atmospherics/pipe/manifold/orange/visible{
- dir = 8
- },
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/machinery/light{
- dir = 8;
- light_color = "#e8eaff"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
-"ioF" = (
-/obj/structure/closet/secure_closet/engineering_electrical,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/effect/turf_decal/stripes/corner{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/engine/engineering)
"iqc" = (
/turf/open/floor/plasteel/stairs/right,
/area/maintenance/department/crew_quarters/dorms)
-"irM" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/engine/engineering)
+"irs" = (
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/space)
"itl" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -55411,13 +55408,6 @@
},
/turf/open/floor/plasteel/dark,
/area/science/xenobiology)
-"iwe" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
-/obj/effect/turf_decal/tile/blue{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
"iyg" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -55434,11 +55424,6 @@
},
/turf/open/floor/plasteel/dark,
/area/engine/engineering)
-"izm" = (
-/obj/effect/spawner/structure/window/plasma/reinforced,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/turf/open/floor/plating,
-/area/engine/engineering)
"izB" = (
/obj/machinery/door/airlock/external{
name = "Escape Pod"
@@ -55521,6 +55506,20 @@
},
/turf/open/floor/plasteel/white,
/area/storage/emergency/port)
+"iHe" = (
+/obj/machinery/camera{
+ c_tag = "Central Primary Hallway Escape";
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"iHI" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/white,
+/area/hallway/secondary/entry)
"iJi" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 5
@@ -55534,13 +55533,6 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/quartermaster/sorting)
-"iLh" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
- dir = 9
- },
-/obj/effect/turf_decal/delivery,
-/turf/open/floor/engine,
-/area/engine/engineering)
"iLl" = (
/obj/machinery/disposal/bin,
/obj/structure/disposalpipe/trunk{
@@ -55602,6 +55594,22 @@
},
/turf/open/floor/plating,
/area/security/execution/transfer)
+"iSi" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 1;
+ name = "Cooling Loop Bypass"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-8"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
"iSz" = (
/obj/structure/cable{
icon_state = "2-8"
@@ -55614,9 +55622,14 @@
},
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
-"iTF" = (
-/obj/structure/sign/warning/electricshock,
-/turf/closed/wall/r_wall,
+"iSL" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/orange/visible,
+/turf/open/floor/plating,
+/area/engine/atmos)
+"iTE" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine,
/area/engine/supermatter)
"iVJ" = (
/obj/effect/spawner/lootdrop/organ_spawner,
@@ -55683,6 +55696,16 @@
icon_state = "platingdmg3"
},
/area/maintenance/department/crew_quarters/dorms)
+"jjA" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 4;
+ name = "Gas to Cooling Loop"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
"jjC" = (
/obj/structure/rack,
/obj/item/storage/briefcase{
@@ -55695,6 +55718,18 @@
},
/turf/open/floor/wood,
/area/lawoffice)
+"jkm" = (
+/obj/structure/closet/emcloset,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel/white,
+/area/hallway/secondary/entry)
+"jrb" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
"jrG" = (
/obj/effect/turf_decal/stripes/corner{
dir = 1
@@ -55750,6 +55785,17 @@
},
/turf/open/floor/plasteel/dark,
/area/science/xenobiology)
+"jtv" = (
+/obj/machinery/camera{
+ c_tag = "Engineering Supermatter Starboard";
+ dir = 8;
+ network = list("ss13","engine")
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
"jvi" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -55795,17 +55841,6 @@
/obj/structure/sign/warning/vacuum/external,
/turf/open/floor/plating,
/area/hallway/secondary/entry)
-"jzE" = (
-/obj/machinery/atmospherics/pipe/simple/general/visible{
- dir = 4
- },
-/obj/machinery/door/airlock/engineering/glass{
- name = "Supermatter Engine";
- req_access_txt = "10"
- },
-/obj/machinery/door/firedoor,
-/turf/open/floor/plasteel/dark,
-/area/engine/engineering)
"jAy" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -55884,15 +55919,39 @@
/obj/machinery/atmospherics/pipe/simple/purple/visible,
/turf/closed/wall/r_wall,
/area/maintenance/disposal/incinerator)
+"jOw" = (
+/obj/structure/closet/secure_closet/engineering_electrical,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"jOB" = (
/turf/open/floor/plating,
/area/storage/emergency/starboard)
+"jOX" = (
+/obj/machinery/door/airlock/public/glass{
+ name = "Monastery Transit"
+ },
+/turf/open/floor/plasteel/white{
+ heat_capacity = 1e+006
+ },
+/area/chapel/dock)
"jPf" = (
/obj/structure/closet,
/obj/effect/spawner/lootdrop/maintenance,
/obj/item/kitchen/knife,
/turf/open/floor/plasteel,
/area/maintenance/department/engine)
+"jPC" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/turf/open/space,
+/area/space/nearstation)
"jQh" = (
/obj/item/stack/sheet/animalhide/xeno,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
@@ -55902,6 +55961,15 @@
icon_state = "platingdmg1"
},
/area/maintenance/department/science)
+"jQn" = (
+/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
"jRG" = (
/obj/structure/disposalpipe/segment{
dir = 5
@@ -55912,6 +55980,13 @@
},
/turf/open/floor/plating,
/area/maintenance/department/science)
+"jTc" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 4;
+ name = "Gas to Filter"
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
"jTh" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -55933,16 +56008,6 @@
},
/turf/open/floor/carpet,
/area/lawoffice)
-"jTU" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible,
-/obj/structure/cable/yellow{
- icon_state = "1-4"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
"jUV" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -55963,12 +56028,6 @@
/obj/item/stack/ore/iron,
/turf/open/floor/plating,
/area/maintenance/department/science)
-"jXF" = (
-/obj/machinery/cryopod{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/security/prison)
"jXV" = (
/obj/machinery/light/small{
dir = 1
@@ -55993,20 +56052,14 @@
icon_state = "platingdmg3"
},
/area/maintenance/department/engine)
-"jZG" = (
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "chemistry_shutters";
- name = "chemistry shutters"
- },
-/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
-/area/medical/chemistry)
-"kaR" = (
-/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{
- dir = 8
+"kec" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/obj/machinery/light{
+ dir = 8;
+ light_color = "#e8eaff"
},
/obj/effect/turf_decal/stripes/line{
- dir = 1
+ dir = 8
},
/turf/open/floor/engine,
/area/engine/engineering)
@@ -56064,10 +56117,6 @@
icon_state = "platingdmg3"
},
/area/maintenance/department/science)
-"klb" = (
-/obj/machinery/status_display/supply,
-/turf/closed/wall,
-/area/quartermaster/sorting)
"klo" = (
/obj/structure/dresser,
/obj/structure/mirror{
@@ -56086,22 +56135,10 @@
/obj/item/clothing/under/rank/clown/sexy,
/turf/open/floor/plasteel/dark,
/area/maintenance/department/crew_quarters/dorms)
-"kmd" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/engine/engineering)
"kmn" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel/white,
/area/science/mixing)
-"koz" = (
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
"kpK" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 5
@@ -56121,6 +56158,12 @@
},
/turf/open/floor/plating,
/area/maintenance/department/engine)
+"ksC" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
"kvj" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -56134,6 +56177,20 @@
},
/turf/open/floor/plasteel,
/area/hallway/secondary/exit/departure_lounge)
+"kvu" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible,
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"kvx" = (
+/obj/machinery/light,
+/turf/open/floor/plasteel/white,
+/area/hallway/secondary/entry)
"kwm" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 5
@@ -56194,12 +56251,22 @@
},
/turf/open/floor/plasteel/dark,
/area/hallway/secondary/exit/departure_lounge)
+"kBe" = (
+/obj/structure/reflector/double/anchored{
+ dir = 9
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
"kDf" = (
/obj/machinery/light/small{
dir = 2
},
/turf/open/floor/carpet/black,
/area/chapel/office)
+"kDI" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/turf/open/floor/plating,
+/area/engine/supermatter)
"kDJ" = (
/obj/machinery/light{
dir = 8
@@ -56332,6 +56399,11 @@
},
/turf/open/floor/engine,
/area/science/xenobiology)
+"kNK" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plating,
+/area/engine/engineering)
"kPi" = (
/obj/structure/table,
/obj/machinery/microwave,
@@ -56405,20 +56477,10 @@
},
/turf/open/floor/plating,
/area/storage/emergency/port)
-"kTj" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/engine/engineering)
-"kTR" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
- dir = 4
- },
-/obj/effect/turf_decal/delivery,
-/turf/open/floor/plasteel/dark,
-/area/engine/engineering)
+"kVA" = (
+/obj/machinery/status_display/supply,
+/turf/closed/wall,
+/area/quartermaster/sorting)
"kWQ" = (
/obj/machinery/atmospherics/pipe/simple/orange/visible,
/obj/structure/cable/yellow{
@@ -56432,16 +56494,15 @@
},
/turf/open/floor/engine,
/area/engine/engineering)
-"kYM" = (
-/obj/structure/extinguisher_cabinet{
- pixel_x = 27
+"kYR" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
},
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 8
+/obj/machinery/light,
+/turf/open/floor/plasteel/white{
+ heat_capacity = 1e+006
},
-/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
+/area/hallway/secondary/entry)
"lcU" = (
/obj/effect/turf_decal/stripes/line{
dir = 5
@@ -56469,29 +56530,14 @@
},
/turf/open/floor/plating,
/area/security/execution/transfer)
-"lfx" = (
-/obj/structure/table,
-/obj/item/clothing/suit/hooded/wintercoat/engineering,
-/obj/item/clothing/glasses/meson,
-/obj/item/clothing/glasses/meson,
-/obj/item/clothing/glasses/meson,
-/obj/effect/turf_decal/delivery,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/plasteel,
-/area/engine/engineering)
+"lfZ" = (
+/obj/machinery/status_display/supply,
+/turf/closed/wall,
+/area/quartermaster/office)
"lhA" = (
/obj/machinery/atmospherics/pipe/manifold/general/visible,
/turf/open/floor/plasteel/dark,
/area/science/xenobiology)
-"lhP" = (
-/obj/machinery/atmospherics/pipe/simple/orange/visible{
- dir = 9
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"liR" = (
/obj/machinery/atmospherics/pipe/simple/green/visible{
dir = 4
@@ -56506,18 +56552,30 @@
/obj/machinery/atmospherics/pipe/simple/general/hidden,
/turf/open/floor/plating,
/area/maintenance/department/cargo)
-"ljG" = (
-/obj/machinery/atmospherics/pipe/simple/orange/visible{
- dir = 6
+"llS" = (
+/turf/open/floor/plasteel/white{
+ heat_capacity = 1e+006
},
-/turf/open/floor/plasteel,
-/area/engine/atmos)
+/area/hallway/secondary/entry)
"lms" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 9
},
/turf/closed/wall,
/area/maintenance/department/engine)
+"lmv" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#d1dfff"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
"lnn" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/effect/turf_decal/tile/neutral,
@@ -56526,32 +56584,17 @@
},
/turf/open/floor/plasteel,
/area/storage/primary)
-"lnr" = (
-/obj/machinery/atmospherics/pipe/manifold/cyan/visible,
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 6
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
-"loz" = (
-/obj/structure/closet/radiation,
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
- },
-/obj/effect/turf_decal/tile/yellow,
-/obj/effect/turf_decal/stripes/line{
- dir = 10
- },
-/turf/open/floor/plasteel,
-/area/engine/engineering)
"lqc" = (
/obj/item/toy/gun,
/obj/effect/decal/cleanable/oil,
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
+"lqo" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/chapel/monastery)
"lqy" = (
/obj/machinery/door/airlock/grunge{
name = "Library"
@@ -56561,13 +56604,13 @@
/obj/machinery/door/firedoor,
/turf/open/floor/plasteel/dark,
/area/library/lounge)
-"lrM" = (
-/obj/structure/cable{
- icon_state = "2-8"
+"lxh" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
},
-/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/plasteel,
-/area/engine/engineering)
+/turf/open/space,
+/area/space/nearstation)
"lzJ" = (
/obj/structure/closet/crate/bin,
/turf/open/floor/carpet,
@@ -56601,6 +56644,24 @@
},
/turf/open/floor/plating,
/area/maintenance/department/engine)
+"lCR" = (
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"lCY" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/disposalpipe/segment,
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"lDW" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/stripes/corner,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"lEn" = (
/obj/structure/window/reinforced{
dir = 1
@@ -56671,12 +56732,6 @@
/obj/item/wrench,
/turf/open/floor/plating,
/area/maintenance/department/science)
-"lJI" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/structure/disposalpipe/segment,
-/obj/machinery/door/firedoor,
-/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
"lKL" = (
/obj/machinery/door/airlock/abandoned{
name = "Starboard Emergency Storage";
@@ -56711,6 +56766,13 @@
},
/turf/open/floor/plating,
/area/maintenance/department/science)
+"lQy" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 9
+ },
+/turf/open/space,
+/area/space/nearstation)
"lQQ" = (
/obj/machinery/door/poddoor/preopen{
id = "bridgespace";
@@ -56736,13 +56798,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/engine)
-"lRX" = (
-/obj/effect/spawner/structure/window/plasma/reinforced,
-/obj/machinery/atmospherics/pipe/simple/orange/visible{
- dir = 9
- },
-/turf/open/floor/plating,
-/area/engine/engineering)
"lTC" = (
/obj/item/shard,
/obj/effect/turf_decal/stripes/line{
@@ -56753,10 +56808,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/engine)
-"lUO" = (
-/obj/structure/sign/warning/radiation,
-/turf/closed/wall/r_wall,
-/area/engine/supermatter)
"lWy" = (
/turf/open/floor/plating,
/area/maintenance/department/science)
@@ -56778,28 +56829,11 @@
},
/turf/open/floor/plasteel,
/area/engine/engineering)
-"lXb" = (
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 8;
- name = "Gas to Mix"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
"lXc" = (
/obj/structure/table,
/obj/item/clothing/head/beret,
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
-"lXJ" = (
-/obj/machinery/atmospherics/components/unary/portables_connector/visible{
- dir = 4
- },
-/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
-/turf/open/floor/plasteel/dark,
-/area/engine/engineering)
"mal" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -56840,10 +56874,32 @@
},
/turf/open/floor/plasteel,
/area/engine/engineering)
-"mci" = (
-/obj/machinery/portable_atmospherics/canister/toxins,
+"mbD" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
/turf/open/floor/plating,
/area/engine/engineering)
+"mcf" = (
+/obj/structure/table/glass,
+/obj/machinery/reagentgrinder,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/chemistry)
+"mdi" = (
+/obj/machinery/rnd/production/circuit_imprinter,
+/obj/machinery/camera{
+ c_tag = "Engineering Starboard Aft";
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"mdL" = (
/obj/structure/table,
/obj/item/paper_bin,
@@ -56860,19 +56916,19 @@
/obj/machinery/status_display/evac,
/turf/closed/wall/r_wall,
/area/engine/supermatter)
-"mfC" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
+"mfg" = (
+/obj/structure/window/reinforced{
+ dir = 8
},
-/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
-"mgz" = (
-/obj/structure/cable{
- icon_state = "4-8"
+/turf/open/space,
+/area/space/nearstation)
+"mfx" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
+ dir = 10
},
-/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/plasteel,
-/area/engine/engineering)
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/space/nearstation)
"mhl" = (
/obj/machinery/power/emitter,
/obj/machinery/light{
@@ -56880,39 +56936,14 @@
},
/turf/open/floor/plating,
/area/engine/engineering)
-"mhn" = (
-/obj/machinery/door/firedoor,
-/obj/structure/sign/poster/random{
- pixel_x = 32
+"mlb" = (
+/obj/structure/cable{
+ icon_state = "1-8"
},
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 8
+/obj/structure/cable{
+ icon_state = "1-2"
},
-/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
-"miw" = (
-/obj/machinery/atmospherics/pipe/manifold/cyan/visible,
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/machinery/camera{
- c_tag = "Engineering Supermatter Fore";
- dir = 1;
- network = list("ss13","engine")
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 10
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
-"mjn" = (
-/obj/machinery/jukebox,
-/turf/open/floor/plasteel/dark,
-/area/crew_quarters/bar)
-"mjK" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
-/turf/closed/wall/r_wall,
+/turf/open/floor/plating,
/area/engine/engineering)
"mlr" = (
/obj/structure/lattice,
@@ -56921,6 +56952,26 @@
},
/turf/open/space/basic,
/area/space/nearstation)
+"mlx" = (
+/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"mlS" = (
+/obj/machinery/door/airlock/engineering/glass/critical{
+ heat_proof = 1;
+ name = "Supermatter Chamber";
+ req_access_txt = "10"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/engine/supermatter)
"mmv" = (
/obj/machinery/door/airlock/engineering{
name = "Engineering Supplies";
@@ -56968,19 +57019,6 @@
},
/turf/open/floor/plasteel/white,
/area/science/xenobiology)
-"mqp" = (
-/obj/machinery/firealarm{
- dir = 8;
- pixel_x = -28
- },
-/obj/machinery/light{
- dir = 8
- },
-/obj/effect/turf_decal/tile/blue{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
"msX" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable{
@@ -57019,6 +57057,21 @@
},
/turf/open/floor/plasteel,
/area/science/xenobiology)
+"mvA" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"mvY" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 2;
+ name = "Gas to Filter"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/engine,
+/area/engine/supermatter)
"mwg" = (
/obj/structure/closet/crate{
icon_state = "crateopen"
@@ -57086,6 +57139,12 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/closed/wall,
/area/maintenance/department/engine)
+"mAi" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
"mCe" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/door/poddoor/preopen{
@@ -57094,6 +57153,27 @@
},
/turf/open/floor/plating,
/area/security/checkpoint/engineering)
+"mCP" = (
+/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"mCU" = (
+/obj/structure/table,
+/obj/item/stack/sheet/metal/fifty,
+/obj/item/stack/rods/fifty,
+/obj/item/clothing/glasses/welding,
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"mDW" = (
/obj/machinery/power/smes{
charge = 5e+006
@@ -57101,16 +57181,6 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/tcommsat/computer)
-"mEu" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 4
- },
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/effect/turf_decal/delivery,
-/turf/open/floor/plasteel/dark,
-/area/engine/engineering)
"mES" = (
/obj/machinery/door/airlock/maintenance/abandoned{
name = "Surgical Room"
@@ -57140,6 +57210,10 @@
},
/turf/open/floor/plating/airless,
/area/space/nearstation)
+"mLc" = (
+/obj/structure/sign/warning/electricshock,
+/turf/closed/wall/r_wall,
+/area/engine/supermatter)
"mLB" = (
/obj/structure/cable{
icon_state = "1-4"
@@ -57179,6 +57253,16 @@
},
/turf/open/floor/plasteel/dark,
/area/science/xenobiology)
+"mVj" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
"mVM" = (
/turf/open/floor/plating/airless,
/area/space/nearstation)
@@ -57191,6 +57275,20 @@
"mZE" = (
/turf/open/space/basic,
/area/space/nearstation)
+"mZK" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
+"mZV" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/turf/closed/wall/r_wall,
+/area/engine/supermatter)
"naq" = (
/obj/structure/disposaloutlet{
dir = 4
@@ -57200,14 +57298,14 @@
},
/turf/open/floor/engine,
/area/science/xenobiology)
-"ncm" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 4
+"ndf" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "Gas to Mix"
},
-/obj/structure/cable/yellow{
- icon_state = "4-8"
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
},
-/obj/effect/turf_decal/stripes/line,
/turf/open/floor/engine,
/area/engine/engineering)
"ndI" = (
@@ -57252,10 +57350,37 @@
/obj/structure/lattice,
/turf/open/space,
/area/space/nearstation)
+"ngg" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
"ngp" = (
/obj/item/chair/stool,
/turf/open/floor/carpet,
/area/maintenance/department/crew_quarters/dorms)
+"nhW" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/machinery/airalarm{
+ dir = 4;
+ pixel_x = -23
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"nif" = (
+/obj/structure/table/glass,
+/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/engineering)
"nih" = (
/obj/structure/closet,
/obj/effect/spawner/lootdrop/costume,
@@ -57279,6 +57404,30 @@
},
/turf/open/floor/plasteel/dark,
/area/hallway/secondary/exit/departure_lounge)
+"nkk" = (
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/obj/structure/chair{
+ dir = 8;
+ name = "Defense"
+ },
+/obj/machinery/camera{
+ c_tag = "Atmospherics Starboard";
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
"nku" = (
/obj/machinery/door/airlock/centcom{
name = "Crematorium";
@@ -57288,6 +57437,21 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel/dark,
/area/chapel/office)
+"nnf" = (
+/obj/structure/rack,
+/obj/item/stack/packageWrap,
+/obj/item/hand_labeler,
+/obj/item/clothing/glasses/science,
+/obj/item/clothing/glasses/science,
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/medical/chemistry)
"nnh" = (
/obj/structure/chair{
dir = 8
@@ -57309,13 +57473,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plating,
/area/maintenance/department/engine)
-"nqu" = (
-/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
- dir = 10
- },
-/obj/structure/lattice,
-/turf/open/space/basic,
-/area/space/nearstation)
"nqV" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -57326,6 +57483,19 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel/dark,
/area/science/xenobiology)
+"nqW" = (
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#e8eaff"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
"nsy" = (
/obj/structure/table,
/obj/item/stack/sheet/metal/fifty,
@@ -57355,14 +57525,6 @@
},
/turf/closed/wall/r_wall,
/area/science/mixing)
-"nsJ" = (
-/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/heat_exchanging/simple,
-/obj/structure/lattice,
-/turf/open/space/basic,
-/area/space/nearstation)
"ntj" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -57399,6 +57561,10 @@
},
/turf/open/floor/plasteel/white/corner,
/area/hallway/primary/central)
+"nyN" = (
+/obj/machinery/power/supermatter_crystal/engine,
+/turf/open/floor/engine,
+/area/engine/supermatter)
"nyO" = (
/obj/item/twohanded/required/kirbyplants{
icon_state = "plant-22"
@@ -57425,12 +57591,6 @@
/obj/machinery/door/firedoor,
/turf/open/floor/plasteel/dark,
/area/engine/engineering)
-"nAY" = (
-/obj/structure/chair/stool,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/effect/landmark/start/station_engineer,
-/turf/open/floor/plasteel,
-/area/engine/engineering)
"nBw" = (
/obj/machinery/computer/crew{
dir = 1
@@ -57503,6 +57663,15 @@
/obj/structure/table/reinforced,
/turf/open/floor/plasteel,
/area/science/xenobiology)
+"nIq" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/camera{
+ c_tag = "Engineering Supermatter Fore";
+ dir = 4;
+ network = list("ss13","engine")
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
"nIU" = (
/obj/structure/disposalpipe/segment{
dir = 9
@@ -57526,6 +57695,17 @@
},
/turf/open/floor/engine,
/area/science/explab)
+"nKF" = (
+/obj/machinery/door/firedoor,
+/obj/structure/sign/poster/random{
+ pixel_x = 32
+ },
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
"nLl" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
@@ -57561,6 +57741,17 @@
},
/turf/open/floor/plasteel,
/area/tcommsat/computer)
+"nNn" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"nNJ" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -57595,6 +57786,13 @@
/obj/item/chair,
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
+"nPW" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
+ dir = 6
+ },
+/obj/machinery/meter,
+/turf/closed/wall/r_wall,
+/area/engine/supermatter)
"nQc" = (
/obj/structure/table,
/obj/item/stack/sheet/metal/fifty,
@@ -57605,13 +57803,9 @@
},
/turf/open/floor/plating,
/area/maintenance/department/engine)
-"nRM" = (
-/obj/structure/chair/stool,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/obj/effect/landmark/start/station_engineer,
-/turf/open/floor/plasteel,
+"nQf" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
+/turf/closed/wall/r_wall,
/area/engine/engineering)
"nSj" = (
/obj/structure/grille/broken,
@@ -57625,16 +57819,6 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/wood,
/area/lawoffice)
-"nTr" = (
-/obj/effect/turf_decal/tile/blue{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
-"nUQ" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/engine,
-/area/engine/supermatter)
"nVU" = (
/obj/item/twohanded/spear,
/turf/open/floor/plating,
@@ -57647,6 +57831,13 @@
/obj/structure/table_frame/wood,
/turf/open/floor/wood,
/area/maintenance/department/engine)
+"nYe" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "Mix to Engine"
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"nYn" = (
/obj/structure/sign/warning/docking,
/obj/effect/spawner/structure/window/reinforced,
@@ -57673,6 +57864,23 @@
},
/turf/open/floor/plating,
/area/maintenance/department/cargo)
+"obl" = (
+/obj/structure/sign/warning/radiation,
+/turf/closed/wall/r_wall,
+/area/engine/supermatter)
+"obG" = (
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible,
+/obj/machinery/button/door{
+ id = "engsm";
+ name = "Radiation Shutters Control";
+ pixel_y = 24;
+ req_access_txt = "10"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
"obP" = (
/obj/structure/table,
/obj/item/paper_bin,
@@ -57682,6 +57890,11 @@
initial_gas_mix = "o2=0.01;n2=0.01"
},
/area/maintenance/department/science)
+"ocy" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating,
+/area/engine/engineering)
"oep" = (
/obj/structure/table/glass,
/obj/item/paper_bin,
@@ -57714,6 +57927,10 @@
},
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
+"oge" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/turf/open/floor/plating,
+/area/engine/engineering)
"ohR" = (
/obj/item/chair,
/turf/open/floor/plating,
@@ -57728,6 +57945,18 @@
},
/turf/open/floor/plating,
/area/maintenance/department/engine)
+"ona" = (
+/obj/machinery/atmospherics/pipe/manifold/green/visible{
+ dir = 8
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-8"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
"onX" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/public/glass{
@@ -57785,6 +58014,12 @@
/obj/structure/window/reinforced,
/turf/open/floor/plasteel,
/area/science/xenobiology)
+"oto" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/hallway/secondary/entry)
"ous" = (
/obj/effect/turf_decal/stripes/line,
/obj/machinery/button/door{
@@ -57807,6 +58042,14 @@
},
/turf/open/floor/plating/airless,
/area/space/nearstation)
+"ovE" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/turf/open/floor/plating{
+ icon_state = "panelscorched"
+ },
+/area/maintenance/department/chapel/monastery)
"ovM" = (
/obj/machinery/atmospherics/pipe/simple/cyan/hidden{
dir = 4
@@ -57832,11 +58075,17 @@
},
/turf/open/floor/plasteel/dark,
/area/chapel/office)
-"oxw" = (
-/obj/structure/cable/yellow{
- icon_state = "4-8"
+"oxt" = (
+/obj/structure/table/glass,
+/obj/item/book/manual/wiki/research_and_development,
+/obj/item/disk/tech_disk,
+/obj/item/disk/design_disk,
+/turf/open/floor/plasteel/dark,
+/area/science/lab)
+"oyE" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
},
-/obj/effect/turf_decal/stripes/line,
/turf/open/floor/engine,
/area/engine/engineering)
"oyF" = (
@@ -57864,6 +58113,19 @@
},
/turf/closed/wall/r_wall,
/area/science/xenobiology)
+"oBY" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/machinery/meter,
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
"oCn" = (
/obj/structure/chair/office/dark{
dir = 1
@@ -57934,6 +58196,15 @@
},
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
+"oFi" = (
+/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
"oFo" = (
/obj/structure/closet/emcloset/anchored,
/obj/structure/sign/warning/vacuum/external{
@@ -57950,23 +58221,6 @@
/obj/item/stack/sheet/mineral/wood,
/turf/open/floor/plasteel,
/area/maintenance/department/engine)
-"oHa" = (
-/obj/machinery/power/emitter/anchored{
- dir = 8;
- state = 2
- },
-/obj/structure/cable{
- icon_state = "0-4"
- },
-/turf/open/floor/plating,
-/area/engine/engineering)
-"oJr" = (
-/obj/effect/spawner/structure/window/plasma/reinforced,
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
- dir = 1
- },
-/turf/open/floor/plating,
-/area/engine/engineering)
"oKa" = (
/obj/structure/rack,
/obj/effect/spawner/lootdrop/maintenance{
@@ -57982,18 +58236,6 @@
icon_state = "platingdmg3"
},
/area/maintenance/department/science)
-"oKv" = (
-/obj/machinery/atmospherics/components/unary/portables_connector/visible,
-/obj/machinery/portable_atmospherics/canister/nitrogen,
-/obj/effect/turf_decal/bot,
-/turf/open/floor/engine,
-/area/engine/engineering)
-"oKJ" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 6
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
"oLR" = (
/obj/effect/turf_decal/tile/red{
dir = 4
@@ -58100,6 +58342,12 @@
icon_state = "platingdmg3"
},
/area/maintenance/department/security/brig)
+"oTD" = (
+/obj/machinery/atmospherics/components/unary/portables_connector/visible,
+/obj/machinery/portable_atmospherics/canister/nitrogen,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/engine,
+/area/engine/engineering)
"oUa" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -58115,14 +58363,6 @@
},
/turf/open/floor/plasteel,
/area/engine/engineering)
-"oWu" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/obj/machinery/holopad,
-/obj/effect/turf_decal/bot,
-/turf/open/floor/plasteel,
-/area/engine/engineering)
"oWw" = (
/obj/item/flashlight,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
@@ -58143,22 +58383,6 @@
},
/turf/open/floor/plasteel/white,
/area/security/execution/transfer)
-"oXq" = (
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 1;
- name = "Cooling Loop Bypass"
- },
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/structure/cable/yellow{
- icon_state = "1-8"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
"oYj" = (
/obj/effect/turf_decal/loading_area{
dir = 4
@@ -58171,12 +58395,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/engine)
-"paU" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
- dir = 6
- },
-/turf/open/floor/plating/airless,
-/area/engine/engineering)
"pbm" = (
/obj/machinery/door/airlock/external{
name = "Pod Docking Bay"
@@ -58212,6 +58430,19 @@
},
/turf/open/floor/plating,
/area/science/explab)
+"peb" = (
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/general/visible{
+ dir = 8
+ },
+/obj/structure/window/plasma/reinforced{
+ dir = 4
+ },
+/obj/machinery/power/rad_collector/anchored,
+/turf/open/floor/engine,
+/area/engine/supermatter)
"pfz" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable{
@@ -58232,13 +58463,12 @@
},
/turf/open/floor/plasteel,
/area/science/xenobiology)
-"pgH" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible,
-/obj/effect/turf_decal/stripes/line{
- dir = 4
+"pga" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
},
-/turf/open/floor/engine,
-/area/engine/engineering)
+/turf/open/floor/plasteel/white,
+/area/hallway/secondary/entry)
"phJ" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
@@ -58260,13 +58490,6 @@
/obj/structure/piano,
/turf/open/floor/plasteel/dark,
/area/maintenance/department/crew_quarters/dorms)
-"pmB" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/orange/visible,
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"pnU" = (
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{
dir = 4;
@@ -58275,14 +58498,16 @@
},
/turf/open/floor/circuit/telecomms,
/area/science/xenobiology)
-"poP" = (
-/obj/structure/lattice,
-/obj/machinery/atmospherics/pipe/simple/cyan/visible,
-/obj/machinery/atmospherics/pipe/simple/orange/visible{
+"ppi" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_x = 29
+ },
+/obj/effect/turf_decal/stripes/line{
dir = 4
},
-/turf/open/space,
-/area/space/nearstation)
+/turf/open/floor/engine,
+/area/engine/engineering)
"pps" = (
/turf/closed/wall,
/area/engine/break_room)
@@ -58301,18 +58526,20 @@
},
/turf/open/floor/engine,
/area/engine/supermatter)
-"psd" = (
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 2;
- name = "Gas to Filter"
+"ptk" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
},
-/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/stripes/line,
/turf/open/floor/engine,
-/area/engine/supermatter)
-"puw" = (
-/obj/structure/sign/warning/fire,
-/turf/closed/wall/r_wall,
-/area/engine/supermatter)
+/area/engine/engineering)
+"puO" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
+ dir = 10
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/space/basic,
+/area/space/nearstation)
"pvK" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/structure/cable{
@@ -58347,17 +58574,13 @@
},
/turf/open/space/basic,
/area/space/nearstation)
-"pxD" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+"pBs" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/obj/effect/turf_decal/stripes/line{
dir = 4
},
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "chemistry_shutters";
- name = "chemistry shutters"
- },
-/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
-/area/medical/chemistry)
+/turf/open/floor/engine,
+/area/engine/engineering)
"pBD" = (
/obj/structure/cable{
icon_state = "0-8"
@@ -58368,22 +58591,6 @@
/obj/machinery/shieldwallgen/xenobiologyaccess,
/turf/open/floor/plating,
/area/maintenance/department/engine)
-"pBJ" = (
-/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
- dir = 10
- },
-/obj/structure/lattice/catwalk,
-/turf/open/space/basic,
-/area/space/nearstation)
-"pCo" = (
-/obj/structure/reflector/single/anchored{
- dir = 6
- },
-/obj/machinery/light/small{
- dir = 1
- },
-/turf/open/floor/plating,
-/area/engine/engineering)
"pDP" = (
/obj/machinery/vending/assist,
/obj/effect/turf_decal/tile/neutral{
@@ -58440,6 +58647,29 @@
},
/turf/open/floor/wood,
/area/crew_quarters/heads/hop)
+"pIk" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/engine,
+/area/engine/engineering)
+"pJx" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 6
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
+ },
+/obj/effect/turf_decal/stripes/corner,
+/turf/open/floor/engine,
+/area/engine/engineering)
"pKd" = (
/obj/effect/spawner/lootdrop/maintenance{
lootcount = 2;
@@ -58499,6 +58729,12 @@
dir = 1
},
/area/hallway/secondary/exit/departure_lounge)
+"pPu" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/engine_waste{
+ dir = 1
+ },
+/turf/open/floor/plating/airless,
+/area/engine/engineering)
"pQw" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
@@ -58579,19 +58815,6 @@
/obj/structure/cable,
/turf/open/floor/wood,
/area/lawoffice)
-"pYh" = (
-/obj/machinery/atmospherics/pipe/simple/orange/visible,
-/turf/closed/wall/r_wall,
-/area/engine/engineering)
-"pYw" = (
-/obj/item/twohanded/required/kirbyplants{
- icon_state = "plant-03"
- },
-/obj/structure/extinguisher_cabinet{
- pixel_x = -24
- },
-/turf/open/floor/plasteel/dark,
-/area/science/lab)
"pYC" = (
/obj/structure/sign/warning{
pixel_y = -32
@@ -58606,12 +58829,25 @@
},
/turf/open/floor/plasteel/white,
/area/medical/virology)
+"qbm" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
"qbp" = (
/obj/machinery/atmospherics/pipe/manifold/general/visible{
dir = 8
},
/turf/open/floor/plasteel/dark,
/area/engine/engineering)
+"qbV" = (
+/obj/structure/lattice,
+/turf/open/space,
+/area/space)
"qbZ" = (
/obj/structure/rack,
/obj/item/clothing/mask/gas,
@@ -58666,18 +58902,6 @@
/obj/item/stack/sheet/mineral/wood,
/turf/open/floor/plating,
/area/maintenance/department/engine)
-"qeY" = (
-/turf/closed/wall/r_wall,
-/area/engine/supermatter)
-"qhE" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
- dir = 1
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/engine/engineering)
"qjx" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/effect/turf_decal/stripes/line,
@@ -58687,38 +58911,10 @@
},
/turf/open/floor/plasteel,
/area/construction/mining/aux_base)
-"qkM" = (
-/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 9
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
"qnT" = (
/obj/machinery/iv_drip,
/turf/open/floor/plating,
/area/maintenance/department/science)
-"qpd" = (
-/obj/machinery/atmospherics/pipe/manifold/green/visible{
- dir = 8
- },
-/obj/structure/cable/yellow{
- icon_state = "1-8"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
-"qpS" = (
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/plasteel,
-/area/engine/engineering)
"qtA" = (
/obj/machinery/atmospherics/pipe/simple/general/visible{
dir = 4
@@ -58859,21 +59055,6 @@
/obj/effect/decal/cleanable/cobweb,
/turf/open/floor/plating,
/area/maintenance/department/science)
-"qLI" = (
-/obj/structure/table,
-/obj/item/stack/sheet/glass/fifty{
- layer = 4
- },
-/obj/item/stack/cable_coil,
-/obj/effect/turf_decal/tile/yellow,
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 6
- },
-/turf/open/floor/plasteel,
-/area/engine/engineering)
"qMi" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/atmospherics/pipe/simple/general/visible,
@@ -58910,10 +59091,10 @@
},
/turf/open/floor/plating,
/area/maintenance/department/engine)
-"qOS" = (
-/obj/effect/spawner/structure/window/plasma/reinforced,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/plating,
+"qPh" = (
+/obj/structure/chair,
+/obj/effect/turf_decal/stripes/corner,
+/turf/open/floor/plasteel,
/area/engine/engineering)
"qPB" = (
/obj/structure/chair/stool,
@@ -58922,22 +59103,8 @@
},
/turf/open/floor/plasteel/dark,
/area/maintenance/department/crew_quarters/dorms)
-"qRl" = (
-/obj/item/radio/intercom{
- name = "Station Intercom (General)";
- pixel_x = 29
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
-"qTV" = (
-/obj/item/radio/intercom{
- name = "Station Intercom (General)";
- pixel_x = -27
- },
-/obj/effect/turf_decal/tile/blue{
+"qUe" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 8
},
/turf/open/floor/plasteel,
@@ -58967,6 +59134,12 @@
},
/turf/open/floor/plasteel/dark,
/area/science/xenobiology)
+"qWB" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
"qWG" = (
/obj/structure/closet/emcloset/anchored,
/turf/open/floor/plating,
@@ -59045,9 +59218,8 @@
/area/medical/sleeper)
"rax" = (
/obj/machinery/conveyor{
- icon_state = "conveyor_map";
dir = 1;
- id = "EngLoad"
+ id = "garbage"
},
/turf/open/floor/plating,
/area/maintenance/disposal)
@@ -59206,6 +59378,23 @@
},
/turf/open/floor/plasteel/dark,
/area/crew_quarters/bar)
+"rwf" = (
+/obj/machinery/power/emitter/anchored{
+ dir = 8;
+ state = 2
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"rwt" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 9
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/engine,
+/area/engine/engineering)
"rxa" = (
/obj/machinery/atmospherics/components/unary/portables_connector/visible{
dir = 1
@@ -59240,6 +59429,13 @@
icon_state = "panelscorched"
},
/area/maintenance/department/engine)
+"rAZ" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
+ dir = 9
+ },
+/obj/structure/lattice/catwalk,
+/turf/open/space/basic,
+/area/space/nearstation)
"rBh" = (
/obj/structure/mopbucket,
/obj/item/mop,
@@ -59254,6 +59450,19 @@
/obj/item/reagent_containers/blood/random,
/turf/open/floor/plating,
/area/maintenance/department/science)
+"rEt" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
"rFq" = (
/obj/structure/chair,
/obj/item/reagent_containers/food/snacks/donkpocket,
@@ -59261,6 +59470,24 @@
icon_state = "platingdmg3"
},
/area/maintenance/department/science)
+"rGz" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
+"rHv" = (
+/obj/machinery/door/airlock/public/glass{
+ name = "Monastery Transit"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white{
+ heat_capacity = 1e+006
+ },
+/area/hallway/secondary/entry)
"rHA" = (
/turf/open/floor/plasteel,
/area/construction/mining/aux_base)
@@ -59319,6 +59546,16 @@
/obj/item/ammo_casing/shotgun/improvised,
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
+"rMt" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 27
+ },
+/obj/effect/turf_decal/tile/purple,
+/obj/effect/turf_decal/tile/purple{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
"rMV" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
@@ -59330,6 +59567,16 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/maintenance/department/science)
+"rPd" = (
+/obj/item/radio/intercom{
+ name = "Station Intercom (General)";
+ pixel_x = -27
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
"rPg" = (
/obj/machinery/atmospherics/components/unary/thermomachine/freezer{
dir = 8
@@ -59344,13 +59591,12 @@
/obj/item/trash/can,
/turf/open/floor/wood,
/area/maintenance/department/engine)
-"rTd" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/structure/cable/yellow{
- icon_state = "4-8"
+"rTZ" = (
+/obj/machinery/cryopod{
+ dir = 8
},
/turf/open/floor/plasteel,
-/area/engine/engineering)
+/area/crew_quarters/dorms)
"rWE" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -59377,6 +59623,14 @@
},
/turf/open/floor/plating,
/area/storage/emergency/starboard)
+"saW" = (
+/obj/machinery/door/airlock/public/glass{
+ name = "Monastery Transit"
+ },
+/turf/open/floor/plasteel/white{
+ heat_capacity = 1e+006
+ },
+/area/hallway/secondary/entry)
"sbk" = (
/obj/structure/girder,
/turf/open/floor/plating,
@@ -59419,6 +59673,17 @@
},
/turf/open/space,
/area/space/nearstation)
+"sdZ" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"sfr" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible,
+/turf/closed/wall/r_wall,
+/area/engine/supermatter)
"sgc" = (
/obj/machinery/vending/cigarette,
/obj/effect/turf_decal/tile/neutral{
@@ -59433,51 +59698,23 @@
},
/turf/open/floor/plasteel/dark,
/area/hallway/secondary/exit/departure_lounge)
-"shH" = (
-/turf/closed/wall/r_wall,
-/area/space/nearstation)
+"sho" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white{
+ heat_capacity = 1e+006
+ },
+/area/hallway/secondary/entry)
"sij" = (
/obj/structure/closet,
/obj/item/reagent_containers/food/snacks/meat/slab/monkey,
/turf/open/floor/plating,
/area/maintenance/department/engine)
-"sjC" = (
-/obj/effect/turf_decal/stripes/line,
-/obj/effect/turf_decal/tile/yellow,
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
- },
-/obj/machinery/power/port_gen/pacman,
-/turf/open/floor/plasteel,
-/area/engine/engineering)
"skw" = (
/obj/machinery/atmospherics/pipe/simple/cyan/hidden,
/turf/closed/wall,
/area/maintenance/department/security/brig)
-"slJ" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible{
- dir = 4
- },
-/obj/machinery/light{
- dir = 1;
- light_color = "#d1dfff"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
-"smv" = (
-/obj/machinery/atmospherics/components/binary/pump/on{
- dir = 8;
- name = "Cooling Loop to Gas"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
"spz" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plating,
@@ -59523,12 +59760,6 @@
},
/turf/open/floor/plating,
/area/maintenance/solars/starboard)
-"svA" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
- dir = 6
- },
-/turf/closed/wall/r_wall,
-/area/engine/engineering)
"svN" = (
/obj/effect/spawner/lootdrop/maintenance,
/obj/structure/sign/departments/restroom{
@@ -59536,11 +59767,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/science)
-"swg" = (
-/obj/machinery/atmospherics/pipe/heat_exchanging/simple,
-/obj/structure/lattice/catwalk,
-/turf/open/space/basic,
-/area/space/nearstation)
"sww" = (
/obj/effect/decal/cleanable/blood/old,
/obj/item/reagent_containers/food/snacks/meat/slab/monkey,
@@ -59575,6 +59801,12 @@
},
/turf/open/floor/plating,
/area/security/execution/transfer)
+"sAF" = (
+/obj/structure/chair/stool,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/landmark/start/station_engineer,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"sAK" = (
/obj/item/clothing/mask/gas/plaguedoctor,
/turf/open/floor/plating,
@@ -59612,6 +59844,17 @@
},
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
+"sHX" = (
+/obj/machinery/atmospherics/components/binary/pump/on{
+ dir = 8;
+ name = "Cooling Loop to Gas"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/engine,
+/area/engine/engineering)
"sJp" = (
/obj/machinery/atmospherics/pipe/simple/general/visible,
/obj/effect/turf_decal/stripes/line,
@@ -59633,6 +59876,21 @@
},
/turf/open/floor/plasteel,
/area/engine/engineering)
+"sKw" = (
+/obj/structure/table,
+/obj/item/stack/sheet/glass/fifty{
+ layer = 4
+ },
+/obj/item/stack/cable_coil,
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"sNz" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -59646,6 +59904,12 @@
},
/turf/open/floor/plating,
/area/security/execution/transfer)
+"sOQ" = (
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/open/space/basic,
+/area/space)
"sQt" = (
/obj/machinery/door/airlock/external{
name = "Supply Dock Airlock";
@@ -59656,6 +59920,37 @@
},
/turf/open/floor/plating,
/area/quartermaster/storage)
+"sQG" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
+ dir = 4
+ },
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/space/nearstation)
+"sQV" = (
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible,
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/engine,
+/area/engine/engineering)
+"sRH" = (
+/obj/structure/lattice,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/window/reinforced,
+/turf/open/space,
+/area/space/nearstation)
+"sTg" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/lattice,
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/space/nearstation)
"sUP" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
dir = 8
@@ -59682,19 +59977,6 @@
},
/turf/open/floor/engine,
/area/engine/engineering)
-"sWW" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
- dir = 4
- },
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/machinery/meter,
-/obj/effect/turf_decal/stripes/line{
- dir = 9
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
"sXi" = (
/obj/machinery/disposal/bin,
/obj/structure/disposalpipe/trunk{
@@ -59709,16 +59991,6 @@
/obj/structure/disposalpipe/segment,
/turf/closed/wall/r_wall,
/area/science/xenobiology)
-"sYQ" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/door/firedoor,
-/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
"sZh" = (
/obj/structure/closet/crate,
/turf/open/floor/plating,
@@ -59756,13 +60028,16 @@
},
/turf/open/floor/plasteel,
/area/science/xenobiology)
-"tbw" = (
-/obj/structure/lattice,
-/obj/machinery/atmospherics/pipe/simple/orange/visible{
- dir = 9
+"tcC" = (
+/obj/machinery/door/firedoor,
+/obj/structure/sign/poster/official/random{
+ pixel_x = -32
},
-/turf/open/space,
-/area/space/nearstation)
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
"tcY" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -59810,10 +60085,6 @@
},
/turf/open/floor/plasteel/white,
/area/science/xenobiology)
-"tdL" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible,
-/turf/closed/wall/r_wall,
-/area/engine/supermatter)
"tfw" = (
/obj/structure/cable{
icon_state = "0-2";
@@ -59859,17 +60130,6 @@
},
/turf/open/floor/plasteel/white,
/area/medical/sleeper)
-"tkL" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible,
-/obj/machinery/light{
- dir = 8;
- light_color = "#e8eaff"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
"tlc" = (
/obj/machinery/recharger,
/obj/structure/table,
@@ -59888,12 +60148,14 @@
},
/turf/open/floor/engine,
/area/engine/engineering)
-"tlV" = (
-/obj/structure/reflector/double/anchored{
- dir = 9
+"tmi" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/cyan/visible,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
},
-/turf/open/floor/plasteel/dark,
-/area/engine/engineering)
+/turf/open/space,
+/area/space/nearstation)
"tnY" = (
/obj/machinery/button/door{
id = "aux_base_shutters";
@@ -59915,15 +60177,13 @@
icon_state = "panelscorched"
},
/area/maintenance/department/security/brig)
-"tqO" = (
-/obj/structure/sign/poster/official/random{
- pixel_x = -32
- },
-/obj/effect/turf_decal/tile/blue{
+"tpX" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/light{
dir = 8
},
-/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
+/turf/open/floor/plasteel/white,
+/area/hallway/secondary/entry)
"tqX" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable{
@@ -59935,6 +60195,13 @@
},
/turf/open/floor/plating,
/area/science/xenobiology)
+"ttX" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 9
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
"tue" = (
/obj/structure/cable{
icon_state = "2-4"
@@ -59991,14 +60258,19 @@
},
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
-"tzH" = (
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "research_shutters_2";
- name = "research shutters"
+"tzh" = (
+/obj/structure/chair/office/dark{
+ dir = 4
},
-/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
-/area/science/lab)
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"tAv" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 6
+ },
+/turf/open/floor/plating/airless,
+/area/engine/engineering)
"tAK" = (
/obj/structure/table,
/obj/structure/window/reinforced{
@@ -60016,13 +60288,6 @@
/obj/item/wrench,
/turf/open/floor/plating,
/area/maintenance/department/cargo)
-"tDE" = (
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 8;
- name = "Mix to Engine"
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"tHk" = (
/obj/machinery/door/firedoor,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
@@ -60038,33 +60303,13 @@
},
/turf/open/floor/plasteel/dark,
/area/engine/engineering)
-"tJr" = (
-/obj/structure/plasticflaps/opaque,
-/obj/effect/turf_decal/delivery,
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "research_shutters_2";
- name = "research shutters"
+"tMA" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
+ dir = 5
},
-/turf/open/floor/plasteel,
-/area/science/lab)
-"tLP" = (
-/obj/machinery/status_display/supply,
-/turf/closed/wall,
-/area/quartermaster/warehouse)
-"tOD" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible,
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
-"tQT" = (
-/obj/effect/spawner/structure/window/plasma/reinforced,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/turf/open/floor/plating,
-/area/engine/engineering)
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/space/nearstation)
"tRc" = (
/obj/structure/ore_box,
/turf/open/floor/plating{
@@ -60097,6 +60342,11 @@
},
/turf/open/floor/plasteel/white,
/area/science/xenobiology)
+"uaa" = (
+/turf/open/floor/plating{
+ icon_state = "panelscorched"
+ },
+/area/maintenance/department/chapel/monastery)
"uaC" = (
/obj/structure/chair/comfy/black{
dir = 8
@@ -60109,13 +60359,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
-"uaO" = (
-/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
- dir = 6
- },
-/obj/structure/lattice/catwalk,
-/turf/open/space/basic,
-/area/space/nearstation)
"uaP" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 8
@@ -60129,14 +60372,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/closed/wall/r_wall,
/area/science/mixing)
-"udl" = (
-/obj/structure/lattice,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/machinery/atmospherics/pipe/simple/orange/visible{
- dir = 4
- },
-/turf/open/space,
-/area/space/nearstation)
"uek" = (
/obj/structure/rack,
/obj/effect/spawner/lootdrop/maintenance{
@@ -60165,21 +60400,27 @@
icon_state = "panelscorched"
},
/area/maintenance/department/science)
-"ueX" = (
-/obj/structure/table/glass,
-/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/engineering)
"ufa" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
/turf/open/floor/plasteel/dark,
/area/science/xenobiology)
+"ufr" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/orange/visible,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"ufx" = (
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "research_shutters_2";
+ name = "research shutters"
+ },
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/science/lab)
"ugC" = (
/obj/structure/chair/office/light{
icon_state = "officechair_white";
@@ -60212,16 +60453,6 @@
},
/turf/closed/wall,
/area/maintenance/department/engine)
-"ukp" = (
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 4;
- name = "Mix to Gas"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
"ulu" = (
/obj/machinery/disposal/bin,
/obj/structure/disposalpipe/trunk{
@@ -60284,13 +60515,12 @@
"uoS" = (
/turf/open/floor/plating,
/area/construction/mining/aux_base)
-"upc" = (
-/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
+"upg" = (
+/obj/machinery/atmospherics/pipe/simple/general/visible{
dir = 6
},
-/obj/structure/lattice,
-/turf/open/space/basic,
-/area/space/nearstation)
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
"uqJ" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable,
@@ -60359,44 +60589,17 @@
},
/turf/open/floor/circuit/telecomms,
/area/science/xenobiology)
+"uwT" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"uwX" = (
/obj/machinery/field/generator,
/turf/open/floor/plating,
/area/maintenance/department/engine)
-"uxP" = (
-/obj/structure/disposalpipe/segment{
- dir = 9
- },
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 9
- },
-/obj/structure/chair{
- dir = 8;
- name = "Defense"
- },
-/obj/machinery/camera{
- c_tag = "Atmospherics Starboard";
- dir = 8
- },
-/obj/effect/turf_decal/tile/purple,
-/obj/effect/turf_decal/tile/purple{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
-"uzh" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/door/airlock/engineering/glass/critical{
- heat_proof = 1;
- name = "Supermatter Chamber";
- req_access_txt = "10"
- },
-/obj/effect/mapping_helpers/airlock/cyclelink_helper,
-/turf/open/floor/engine,
-/area/engine/supermatter)
"uzn" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
/obj/structure/cable{
@@ -60410,6 +60613,10 @@
},
/turf/open/floor/plasteel,
/area/tcommsat/computer)
+"uAL" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel/white,
+/area/hallway/secondary/entry)
"uAU" = (
/obj/structure/table/wood,
/obj/item/folder/blue,
@@ -60431,6 +60638,11 @@
},
/turf/open/floor/engine,
/area/science/explab)
+"uBu" = (
+/turf/open/floor/plating{
+ icon_state = "platingdmg3"
+ },
+/area/maintenance/department/chapel/monastery)
"uCS" = (
/obj/machinery/door/poddoor/shutters{
id = "aux_base_shutters";
@@ -60439,6 +60651,16 @@
/obj/effect/turf_decal/delivery,
/turf/open/floor/plasteel,
/area/construction/mining/aux_base)
+"uDr" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
+"uER" = (
+/turf/closed/wall/r_wall,
+/area/space/nearstation)
"uHG" = (
/obj/structure/cable{
icon_state = "1-4"
@@ -60451,12 +60673,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/engine)
-"uIB" = (
-/obj/machinery/atmospherics/pipe/heat_exchanging/junction{
- dir = 4
- },
-/turf/closed/wall/r_wall,
-/area/engine/engineering)
"uLF" = (
/obj/structure/cable{
icon_state = "1-4"
@@ -60493,6 +60709,12 @@
/obj/effect/turf_decal/plaque,
/turf/open/floor/plating,
/area/maintenance/department/engine)
+"uQa" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/engine,
+/area/engine/supermatter)
"uQR" = (
/obj/item/ammo_casing/shotgun/beanbag,
/turf/open/floor/plating,
@@ -60532,6 +60754,14 @@
/obj/item/stamp/law,
/turf/open/floor/carpet,
/area/lawoffice)
+"uWe" = (
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 2;
+ name = "External Gas to Loop"
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/engine,
+/area/engine/engineering)
"uXG" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -60554,12 +60784,28 @@
},
/turf/open/floor/plating,
/area/maintenance/solars/starboard)
+"uZs" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"vay" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
/turf/open/floor/plating,
/area/maintenance/department/engine)
+"vbQ" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/white,
+/area/hallway/secondary/entry)
+"vdb" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple,
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/space/nearstation)
"veM" = (
/obj/machinery/suit_storage_unit/rd,
/obj/machinery/light{
@@ -60577,6 +60823,15 @@
},
/turf/open/floor/plasteel/dark,
/area/science/mixing)
+"vfn" = (
+/obj/structure/plasticflaps/opaque,
+/obj/effect/turf_decal/delivery,
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "research_shutters_2";
+ name = "research shutters"
+ },
+/turf/open/floor/plasteel,
+/area/science/lab)
"vgp" = (
/obj/machinery/door/firedoor,
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
@@ -60594,6 +60849,14 @@
},
/turf/open/floor/plasteel,
/area/science/xenobiology)
+"vgX" = (
+/obj/structure/lattice,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 4
+ },
+/turf/open/space,
+/area/space/nearstation)
"vhk" = (
/obj/structure/chair,
/turf/open/floor/carpet,
@@ -60607,31 +60870,6 @@
},
/turf/open/floor/plasteel,
/area/engine/engineering)
-"vli" = (
-/obj/structure/table,
-/obj/item/clothing/glasses/meson/engine,
-/obj/item/clothing/glasses/meson/engine,
-/obj/item/clothing/glasses/meson/engine,
-/obj/item/pipe_dispenser,
-/obj/item/pipe_dispenser,
-/obj/item/pipe_dispenser,
-/obj/machinery/light,
-/obj/effect/turf_decal/delivery,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/plasteel,
-/area/engine/engineering)
-"vlC" = (
-/obj/machinery/atmospherics/components/trinary/filter/flipped/critical{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
"vlF" = (
/obj/item/coin/silver,
/obj/effect/decal/cleanable/oil{
@@ -60666,20 +60904,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/engine)
-"voh" = (
-/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
- dir = 5
- },
-/obj/structure/lattice,
-/turf/open/space/basic,
-/area/space/nearstation)
-"vor" = (
-/obj/effect/spawner/structure/window/plasma/reinforced,
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/turf/open/floor/plating,
-/area/engine/engineering)
"vpz" = (
/obj/structure/girder,
/turf/open/floor/plating{
@@ -60697,31 +60921,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/cargo)
-"vsw" = (
-/obj/machinery/camera{
- c_tag = "Engineering Supermatter Starboard";
- dir = 8;
- network = list("ss13","engine")
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
-"vsG" = (
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/obj/machinery/door/airlock/maintenance{
- name = "Research Lab Maintenance";
- req_access_txt = "0";
- req_one_access_txt = "7;29"
- },
-/turf/open/floor/plating,
-/area/maintenance/department/engine)
"vsJ" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/effect/turf_decal/tile/neutral{
@@ -60755,6 +60954,13 @@
/obj/item/clothing/mask/gas,
/turf/open/floor/plating,
/area/maintenance/department/science)
+"vvr" = (
+/obj/effect/spawner/structure/window/plasma/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
"vxp" = (
/obj/machinery/door/window/eastright{
base_state = "left";
@@ -60768,17 +60974,12 @@
/obj/item/assembly/mousetrap,
/turf/open/floor/engine,
/area/science/explab)
-"vxr" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/machinery/light{
- dir = 4;
- light_color = "#e8eaff"
- },
-/obj/effect/turf_decal/stripes/line{
+"vyN" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
-/turf/open/floor/plasteel,
-/area/engine/engineering)
+/turf/closed/wall/r_wall,
+/area/crew_quarters/heads/hor)
"vzz" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/public/glass{
@@ -60789,15 +60990,6 @@
},
/turf/open/floor/plasteel,
/area/crew_quarters/fitness/recreation)
-"vzA" = (
-/obj/machinery/light{
- dir = 8
- },
-/obj/effect/turf_decal/tile/blue{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
"vzP" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plating,
@@ -60828,19 +61020,6 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
-"vBE" = (
-/obj/machinery/atmospherics/pipe/simple/cyan/visible{
- dir = 4
- },
-/obj/machinery/light{
- dir = 1;
- light_color = "#d1dfff"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
"vCC" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -60866,16 +61045,36 @@
},
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
-"vKq" = (
-/obj/machinery/door/firedoor,
-/obj/structure/sign/poster/official/random{
+"vIn" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 6
+ },
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
+"vIU" = (
+/obj/structure/transit_tube/horizontal,
+/obj/structure/sign/departments/holy{
pixel_x = -32
},
-/obj/effect/turf_decal/tile/blue{
+/turf/open/floor/plating,
+/area/hallway/secondary/entry)
+"vJS" = (
+/obj/structure/closet/radiation,
+/obj/effect/turf_decal/tile/yellow{
dir = 8
},
+/obj/effect/turf_decal/tile/yellow,
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
/turf/open/floor/plasteel,
-/area/hallway/primary/aft)
+/area/engine/engineering)
+"vMv" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/chapel/main/monastery)
"vMx" = (
/obj/structure/disposalpipe/segment{
dir = 6
@@ -60885,6 +61084,19 @@
},
/turf/open/floor/plasteel/dark,
/area/science/xenobiology)
+"vMH" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
+"vMQ" = (
+/obj/structure/sign/warning/fire,
+/turf/closed/wall/r_wall,
+/area/engine/supermatter)
"vOw" = (
/obj/machinery/door/airlock/grunge{
name = "Library"
@@ -60899,6 +61111,13 @@
/obj/machinery/door/firedoor,
/turf/open/floor/plasteel/dark,
/area/library)
+"vPU" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
+ dir = 4
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
"vRi" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
@@ -60967,16 +61186,20 @@
},
/turf/open/floor/plasteel/dark,
/area/science/mixing)
-"vVO" = (
-/obj/machinery/atmospherics/pipe/simple/orange/visible,
-/obj/structure/cable/yellow{
- icon_state = "2-8"
+"vYi" = (
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/obj/effect/turf_decal/stripes/corner{
- dir = 1
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
},
-/turf/open/floor/engine,
-/area/engine/engineering)
+/obj/machinery/door/airlock/maintenance{
+ name = "Research Lab Maintenance";
+ req_access_txt = "0";
+ req_one_access_txt = "7;29"
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/engine)
"vYN" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 8;
@@ -60986,22 +61209,16 @@
},
/turf/open/floor/circuit/telecomms,
/area/science/xenobiology)
-"wbB" = (
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 2;
- name = "External Gas to Loop"
+"waN" = (
+/obj/effect/spawner/lootdrop/maintenance{
+ lootcount = 3;
+ name = "3maintenance loot spawner"
},
-/obj/effect/turf_decal/delivery,
-/turf/open/floor/engine,
-/area/engine/engineering)
-"wbF" = (
-/obj/machinery/rnd/production/circuit_imprinter,
-/obj/machinery/camera{
- c_tag = "Engineering Starboard Aft";
- dir = 8
+/obj/structure/rack,
+/turf/open/floor/plating{
+ icon_state = "panelscorched"
},
-/turf/open/floor/plasteel,
-/area/engine/engineering)
+/area/maintenance/department/chapel/monastery)
"wcs" = (
/turf/open/floor/plasteel/dark,
/area/engine/engineering)
@@ -61038,24 +61255,10 @@
},
/turf/open/floor/plasteel,
/area/science/xenobiology)
-"wfG" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/turf/closed/wall/r_wall,
-/area/crew_quarters/heads/hor)
"wfO" = (
/mob/living/simple_animal/hostile/retaliate/poison/snake,
/turf/open/floor/plating,
/area/maintenance/department/engine)
-"wfP" = (
-/obj/machinery/atmospherics/pipe/manifold/cyan/visible,
-/obj/machinery/meter,
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
"wig" = (
/obj/machinery/vending/cigarette,
/turf/open/floor/plating{
@@ -61070,22 +61273,14 @@
/turf/open/floor/plating,
/area/maintenance/department/engine)
"wjm" = (
-/obj/structure/cable{
+/obj/machinery/atmospherics/pipe/manifold/cyan/visible,
+/obj/structure/cable/yellow{
icon_state = "4-8"
},
-/obj/structure/disposalpipe/segment{
- dir = 4
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
},
-/obj/effect/turf_decal/tile/yellow{
- dir = 1
- },
-/obj/effect/turf_decal/tile/yellow{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
- dir = 1
- },
-/turf/open/floor/plasteel,
+/turf/open/floor/engine,
/area/engine/engineering)
"wkZ" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
@@ -61114,6 +61309,27 @@
},
/turf/open/floor/plasteel/white,
/area/science/explab)
+"wlZ" = (
+/obj/machinery/light/small,
+/turf/open/floor/plating{
+ icon_state = "panelscorched"
+ },
+/area/maintenance/department/chapel/monastery)
+"wmA" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/white,
+/area/hallway/secondary/entry)
+"wnw" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/hallway/primary/aft)
"wnJ" = (
/obj/structure/sign/warning,
/turf/closed/wall,
@@ -61147,6 +61363,17 @@
},
/turf/open/floor/wood,
/area/lawoffice)
+"wsx" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#e8eaff"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"wun" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -61174,6 +61401,9 @@
},
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
+"wwK" = (
+/turf/open/floor/plasteel/white,
+/area/hallway/secondary/entry)
"wxb" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -61221,15 +61451,21 @@
},
/turf/open/floor/plating,
/area/maintenance/department/crew_quarters/bar)
-"wDl" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/effect/turf_decal/stripes/corner,
-/turf/open/floor/plasteel,
-/area/engine/engineering)
"wDm" = (
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
+"wDH" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "engsm";
+ name = "Radiation Chamber Shutters"
+ },
+/obj/item/tank/internals/plasma,
+/turf/open/floor/plating,
+/area/engine/supermatter)
"wDZ" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
dir = 1
@@ -61257,18 +61493,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/science)
-"wHI" = (
-/obj/effect/spawner/structure/window/plasma/reinforced,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible{
- dir = 9
- },
-/turf/open/floor/plating,
-/area/engine/engineering)
-"wIo" = (
-/obj/machinery/atmospherics/pipe/heat_exchanging/simple,
-/obj/structure/lattice,
-/turf/open/space/basic,
-/area/space/nearstation)
"wIv" = (
/obj/machinery/power/apc/highcap/five_k{
dir = 8;
@@ -61303,12 +61527,6 @@
},
/turf/open/floor/plating,
/area/crew_quarters/heads/cmo)
-"wLK" = (
-/obj/machinery/atmospherics/pipe/simple/orange/visible{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/engine/atmos)
"wMF" = (
/obj/effect/spawner/lootdrop/three_course_meal,
/obj/effect/spawner/lootdrop/three_course_meal,
@@ -61324,10 +61542,6 @@
/obj/structure/grille,
/turf/open/floor/plating,
/area/maintenance/department/engine)
-"wMX" = (
-/obj/effect/spawner/structure/window/plasma/reinforced,
-/turf/open/floor/plating,
-/area/engine/supermatter)
"wNq" = (
/obj/structure/cable{
icon_state = "1-4"
@@ -61398,6 +61612,12 @@
},
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
+"wSU" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel/white,
+/area/hallway/secondary/entry)
"wTD" = (
/obj/structure/table/wood,
/obj/item/folder/red,
@@ -61440,6 +61660,16 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/central)
+"wXe" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/door/airlock/engineering/glass/critical{
+ heat_proof = 1;
+ name = "Supermatter Chamber";
+ req_access_txt = "10"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/turf/open/floor/engine,
+/area/engine/supermatter)
"wXu" = (
/obj/machinery/disposal/bin,
/obj/structure/window/reinforced{
@@ -61457,10 +61687,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
-"wYK" = (
-/obj/machinery/power/supermatter_crystal/engine,
-/turf/open/floor/engine,
-/area/engine/supermatter)
"xah" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -61508,18 +61734,15 @@
/obj/structure/sign/warning/vacuum/external,
/turf/open/floor/plating,
/area/hallway/secondary/exit/departure_lounge)
-"xer" = (
-/obj/machinery/conveyor{
- dir = 2;
- id = "garbage"
- },
-/turf/open/floor/plating,
-/area/maintenance/disposal)
"xeB" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/structure/disposalpipe/segment,
/turf/open/floor/wood,
/area/lawoffice)
+"xgB" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible,
+/turf/closed/wall/r_wall,
+/area/engine/engineering)
"xgG" = (
/obj/effect/turf_decal/stripes/line{
dir = 5
@@ -61544,12 +61767,11 @@
dir = 1
},
/area/hallway/secondary/exit/departure_lounge)
-"xhI" = (
-/obj/structure/cable/yellow{
- icon_state = "2-4"
- },
-/turf/open/floor/plasteel,
-/area/engine/engineering)
+"xiY" = (
+/obj/structure/lattice,
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/space/nearstation)
"xja" = (
/obj/machinery/light/small{
dir = 4
@@ -61597,10 +61819,34 @@
},
/turf/open/floor/plasteel/dark,
/area/science/xenobiology)
+"xkf" = (
+/obj/effect/landmark/carpspawn,
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/space)
+"xkL" = (
+/obj/structure/table,
+/obj/item/clothing/suit/hooded/wintercoat/engineering,
+/obj/item/clothing/glasses/meson,
+/obj/item/clothing/glasses/meson,
+/obj/item/clothing/glasses/meson,
+/obj/effect/turf_decal/delivery,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/stripes/line,
+/turf/open/floor/plasteel,
+/area/engine/engineering)
"xlA" = (
/obj/machinery/door/airlock/maintenance/abandoned,
/turf/open/floor/plating,
/area/maintenance/department/science)
+"xlY" = (
+/obj/effect/landmark/xeno_spawn,
+/turf/open/floor/plating{
+ icon_state = "platingdmg1"
+ },
+/area/maintenance/department/chapel/monastery)
"xmp" = (
/obj/machinery/door/firedoor,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
@@ -61655,6 +61901,20 @@
/obj/item/broken_bottle,
/turf/open/floor/plating,
/area/maintenance/solars/port)
+"xuW" = (
+/obj/machinery/atmospherics/pipe/heat_exchanging/simple,
+/obj/structure/lattice/catwalk,
+/turf/open/space/basic,
+/area/space/nearstation)
+"xvK" = (
+/obj/structure/reflector/single/anchored{
+ dir = 6
+ },
+/obj/machinery/light/small{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/engine/engineering)
"xvO" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
@@ -61712,6 +61972,10 @@
icon_state = "panelscorched"
},
/area/maintenance/department/security/brig)
+"xyT" = (
+/obj/machinery/light/small,
+/turf/open/floor/plating,
+/area/maintenance/department/chapel/monastery)
"xzp" = (
/obj/effect/turf_decal/tile/blue,
/obj/effect/turf_decal/tile/blue{
@@ -61719,13 +61983,6 @@
},
/turf/open/floor/plasteel/dark,
/area/science/xenobiology)
-"xzR" = (
-/obj/machinery/atmospherics/pipe/manifold/cyan/visible,
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
"xCV" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable{
@@ -61779,6 +62036,7 @@
dir = 1;
light_color = "#ffc1c1"
},
+/obj/effect/landmark/start/lawyer,
/turf/open/floor/wood,
/area/lawoffice)
"xKc" = (
@@ -61809,13 +62067,6 @@
/obj/structure/disposalpipe/junction/flip,
/turf/open/space/basic,
/area/space/nearstation)
-"xNy" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/turf/open/floor/engine,
-/area/engine/engineering)
"xOC" = (
/obj/machinery/door/airlock/external{
name = "Construction Zone";
@@ -61858,6 +62109,12 @@
},
/turf/open/floor/plasteel,
/area/hallway/secondary/exit/departure_lounge)
+"xVT" = (
+/obj/machinery/atmospherics/pipe/simple/orange/visible{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"xWl" = (
/obj/item/pen,
/obj/item/paper_bin{
@@ -61869,6 +62126,10 @@
},
/turf/open/floor/plasteel,
/area/science/xenobiology)
+"xXh" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/maintenance/department/chapel/monastery)
"ybX" = (
/obj/structure/table,
/obj/effect/spawner/lootdrop/maintenance,
@@ -61906,6 +62167,21 @@
},
/turf/open/floor/plating,
/area/maintenance/department/cargo)
+"yjy" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/light{
+ dir = 8;
+ light_color = "#e8eaff"
+ },
+/turf/open/floor/plasteel/dark,
+/area/engine/engineering)
+"ykV" = (
+/obj/machinery/atmospherics/pipe/simple/cyan/visible{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/orange/visible,
+/turf/open/floor/plasteel,
+/area/engine/atmos)
"ymb" = (
/obj/machinery/camera{
c_tag = "Engineering Telecomms Access";
@@ -75967,7 +76243,7 @@ cfN
bOw
bOw
bOw
-bOw
+bQg
bOw
ccu
cbG
@@ -76224,7 +76500,7 @@ bOw
bOw
bOw
bOw
-bOw
+bQg
bUC
bOw
cbG
@@ -76476,12 +76752,12 @@ bOv
bNs
bNs
bWh
-bOw
-bOw
-bOw
-bOw
-bOw
-bOw
+bQg
+bQg
+bQg
+bQg
+bQg
+bQg
bOw
bOw
cbG
@@ -76732,7 +77008,7 @@ bQQ
bNs
bNs
bQe
-bOw
+bQg
bOw
bOw
bOw
@@ -76989,7 +77265,7 @@ bNs
bNs
bOw
bOw
-bOw
+bQg
bOw
bOw
bOw
@@ -77246,7 +77522,7 @@ bOw
bOw
bOw
bOw
-bOw
+bQg
bOw
bOw
bOw
@@ -77503,7 +77779,7 @@ bOw
bOw
bOw
bOw
-bOw
+bQg
bOw
bOw
bUC
@@ -77520,7 +77796,7 @@ ctL
cgg
cfE
cfE
-cfp
+cua
cfE
cuW
cfE
@@ -77759,8 +78035,8 @@ bOw
bOw
bOw
bOw
-bOw
-bOw
+bQg
+bQg
bOw
bWV
bWV
@@ -78016,7 +78292,7 @@ bOw
bOw
bOw
bOw
-bOw
+bQg
bOw
bOw
bWV
@@ -78273,7 +78549,7 @@ bOw
bQd
bOw
bQd
-bOw
+bQg
bQd
bWV
bWV
@@ -78530,7 +78806,7 @@ bOw
bQe
bOw
bOw
-bOw
+bQg
bQe
bWV
bXJ
@@ -78790,7 +79066,7 @@ bQf
bQf
bQf
bWW
-bXI
+vMv
bZn
bZn
bZn
@@ -79032,10 +79308,10 @@ bGG
bHL
bIW
bKc
-bOy
+cqI
bMt
bLn
-bOy
+cqI
bPo
bQg
bQg
@@ -79301,7 +79577,7 @@ bOw
bQe
bOw
bOw
-bOw
+bQg
bQe
bWV
bXJ
@@ -79558,7 +79834,7 @@ bOw
bQd
bOw
bQd
-bOw
+bQg
bWi
bWV
bWV
@@ -79785,7 +80061,7 @@ aaa
aaa
aaa
aaa
-aaa
+btK
aaa
aaa
aaa
@@ -79815,7 +80091,7 @@ bOw
bOw
bOw
bOw
-bOw
+bQg
bOw
bOw
bWV
@@ -80040,9 +80316,9 @@ aaa
aaa
aaa
aaa
-aZx
-aZx
-aZx
+iaZ
+bsl
+btL
aZx
aaa
aaa
@@ -80056,11 +80332,11 @@ aaa
aaa
aaa
aaa
-aaa
-bGI
+irs
+aqG
bGE
bKf
-bLn
+gvO
bMw
bNy
bNw
@@ -80072,7 +80348,7 @@ bOw
bSm
bOw
bOw
-bOw
+bQg
bOw
bOw
bWV
@@ -80297,9 +80573,9 @@ aaa
aaa
aaa
aaa
+iaZ
aZx
-baJ
-bon
+bcX
aZx
aaa
aaa
@@ -80312,12 +80588,12 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
-bGI
+irs
+irs
+aqG
bGE
-bKg
-bLn
+bKf
+gvO
bMx
bNz
bHM
@@ -80329,7 +80605,7 @@ bOw
bOw
bOw
bOw
-bOw
+bQg
bOw
bOw
bOw
@@ -80344,7 +80620,7 @@ ccJ
cdw
cel
ceM
-cfp
+cua
cfE
cfE
chn
@@ -80555,8 +80831,8 @@ aaa
jzz
aZx
jzz
-baK
-bon
+bsl
+btM
aZx
aaa
aaa
@@ -80568,17 +80844,17 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
-bGI
-bHM
-bGE
+irs
+irs
+irs
+aqG
bGE
+jOX
+beT
bHM
bNA
bHM
-abI
+bSZ
bQi
bQR
bNs
@@ -80586,7 +80862,7 @@ bNs
bOw
bOw
bOw
-bOw
+bQg
bOw
bOw
bOw
@@ -80611,8 +80887,8 @@ cvc
cho
cvk
cdx
-cvc
-cvM
+euN
+csS
cfm
cwe
fWv
@@ -80818,23 +81094,23 @@ aZx
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-bIY
-bIY
-bLs
-bMy
+mZE
+bVp
+bVp
+bVp
+bVp
+bVp
+gLn
+sTg
+gLn
+gLn
+eOA
+aZx
+llS
+kYR
+aZx
bNB
-bMy
+hRQ
abI
aby
abI
@@ -80843,15 +81119,15 @@ bNs
bNs
bNs
bOw
-bOw
-bOw
-bOw
-bOw
-bOw
-bOw
-bOw
-bOw
-bOw
+bQg
+bQg
+bQg
+bQg
+bQg
+bQg
+bQg
+bQg
+bQg
bQg
cbR
bXJ
@@ -80869,7 +81145,7 @@ ciF
cuQ
cfm
cfm
-cfm
+fwo
cfm
cwe
ckp
@@ -81075,29 +81351,29 @@ aZx
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aby
-aby
-aaa
-aaa
+bGI
+aZx
+aZx
+aZx
+aZx
+aZx
+aZx
+aZx
+aZx
+aZx
+aZx
+aZx
+llS
+sho
+aZx
amC
aaa
aht
aby
aby
abI
-bSn
-bSZ
+mfg
+sRH
cqS
bNs
bQe
@@ -81108,8 +81384,8 @@ bQg
bQg
bQg
bOw
-bOw
-ccL
+bQe
+bQg
bWV
csT
cen
@@ -81126,7 +81402,7 @@ chq
ciX
cfm
cfN
-cfN
+cwA
cfN
cwe
cwe
@@ -81332,21 +81608,21 @@ aZx
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+bGI
+aZx
+jkm
+tpX
+iHI
+iHI
+iHI
+tpX
+iHI
+hWa
+wwK
+wSU
+llS
+wmA
+aZx
amB
aht
aht
@@ -81355,7 +81631,7 @@ aaa
abI
abI
abI
-abI
+sRH
bNs
bNs
bNs
@@ -81366,7 +81642,7 @@ bXL
bNs
bOw
bOw
-bOw
+bQg
bWV
csU
bWV
@@ -81383,7 +81659,7 @@ chr
chL
cfm
cfN
-cfN
+xyT
cfN
cfN
cfN
@@ -81589,21 +81865,21 @@ aZx
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+bGI
+aZx
+oto
+wwK
+wwK
+wwK
+uAL
+vbQ
+vbQ
+vbQ
+vbQ
+vbQ
+vbQ
+pga
+aZx
amC
aaa
aht
@@ -81613,7 +81889,7 @@ aaa
aaa
abI
aaa
-aaa
+sOQ
bQR
bNs
bNs
@@ -81623,7 +81899,7 @@ bXM
bNs
bOw
bOw
-bOw
+bQg
bOw
ccM
cdD
@@ -81640,7 +81916,7 @@ chs
ciY
cfm
cfN
-cfN
+cwA
cfN
cfN
cfN
@@ -81846,21 +82122,21 @@ aZx
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+bGI
+aZx
+oto
+wwK
+aZx
+aZx
+aZx
+aZx
+aZx
+aZx
+aZx
+aZx
+aZx
+aZx
+aZx
amB
aht
aht
@@ -81880,12 +82156,12 @@ bXN
bNs
bOw
bOw
-bOw
-bOw
-bOw
-bQe
-bOw
-bOw
+bQg
+bQg
+bQg
+bQg
+bQg
+bQg
cfL
cfm
cfm
@@ -81897,7 +82173,7 @@ cht
cfm
cfm
cfN
-cfN
+cwA
cfN
cfN
cfN
@@ -82103,21 +82379,21 @@ aZx
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+aqG
+aZx
+oto
+wwK
+aZx
+irs
+irs
+irs
+irs
+irs
+irs
+irs
+irs
+irs
+irs
amD
aaa
aht
@@ -82140,10 +82416,10 @@ bOw
bUC
bOw
bOw
-bOw
+bQe
bOw
bUC
-cfM
+bQg
cfm
cgO
chu
@@ -82154,7 +82430,7 @@ chu
ciZ
cfm
cfN
-cfN
+cwA
cfN
cfN
cfN
@@ -82359,12 +82635,12 @@ bon
aZx
aaa
aaa
-btK
-aaa
-aaa
-aaa
-aaa
-aaa
+irs
+aqG
+aZx
+oto
+wwK
+aZx
bBV
bDf
bDf
@@ -82411,8 +82687,8 @@ cfm
cfm
cfm
cfN
-cfN
-cfN
+cwA
+cjm
cfN
cfN
cfN
@@ -82615,16 +82891,16 @@ bnp
bon
aZx
aZx
-bsl
-btL
aZx
-aaa
-aaa
-aaa
+aZx
+aZx
+aZx
+oto
+kvx
bAI
-bBW
+qbV
abI
-aaa
+irs
abI
aaa
bva
@@ -82650,11 +82926,11 @@ abI
ahi
bSZ
crO
-crO
-crO
-crO
-crO
-crO
+arF
+arF
+arF
+arF
+arF
crO
crO
crO
@@ -82668,8 +82944,8 @@ cfN
cfN
cfN
cfN
-cfN
-cfN
+wlZ
+cjm
cfN
cfN
aaa
@@ -82802,7 +83078,7 @@ aeU
afo
afG
aeU
-eSB
+gHy
agy
agL
agZ
@@ -82872,12 +83148,12 @@ bnp
baK
bbR
bbR
+bbR
+bbR
+bbR
aZx
-bcX
-aZx
-aYG
-aZx
-aYG
+rHv
+saW
bAJ
bBX
bBX
@@ -82925,9 +83201,9 @@ cfN
cfN
cfN
cfN
-cfN
-cfN
-aaa
+uaa
+cjm
+irs
aaa
aaa
aaa
@@ -83129,13 +83405,13 @@ bnq
baM
baK
baK
-bsl
-btM
+baK
+baK
+baK
aZx
-aYG
bxY
bzz
-bAK
+vIU
bBX
bDg
bEj
@@ -83169,23 +83445,23 @@ caZ
cbS
ccN
bIZ
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+cjm
+cjm
+cjm
+cjm
+cjm
+cjm
+cjm
+cjm
+cjm
cfN
cfN
cfN
cfN
-aaa
-aaa
-aaa
-aaa
+uBu
+cjm
+cjm
+irs
aaa
aaa
aaa
@@ -83316,7 +83592,7 @@ lGp
aeU
afI
aeU
-jXF
+dUk
agy
agN
agY
@@ -83425,24 +83701,24 @@ bIZ
cba
cbT
bDi
-bIZ
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+cQZ
+cwA
+cwA
+cwA
+cwA
+lqo
+cwA
+cwA
+cwA
+cwA
+uaa
+ovE
+uaa
+uBu
+xlY
+ezo
+cjm
+aht
aaa
aaa
aaa
@@ -83683,23 +83959,23 @@ cbb
bDi
ccO
bIZ
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+cjm
+cjm
+xXh
+xXh
+cjm
+cjm
+cjm
+xXh
+xXh
+cjm
+cjm
+cjm
+cjm
+waN
+dzA
+cjm
+aht
aaa
aaa
aaa
@@ -83940,23 +84216,23 @@ bva
bNK
bva
bva
-aaa
-cFB
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+irs
+xkf
+dRs
+dRs
+aht
+aht
+mau
+fon
+fon
+aht
+aht
+aht
+cjm
+cjm
+cjm
+cjm
+aht
aaa
aaa
aaa
@@ -84209,11 +84485,11 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+dRs
+dRs
+irs
+irs
+xiY
aaa
aaa
aaa
@@ -88820,9 +89096,9 @@ eQN
tcY
cam
cam
-sjC
+cdI
bXk
-mci
+eVW
cbX
ceq
mhl
@@ -89077,7 +89353,7 @@ bpL
fQf
cbW
cbd
-cdI
+gaQ
cri
cbX
cbX
@@ -90615,9 +90891,9 @@ bXh
bXZ
bYK
bZz
-nAY
+sAF
cbd
-nRM
+fGt
cam
cdM
bXq
@@ -90627,8 +90903,8 @@ cfQ
bXk
qWG
bXk
-paU
-dSp
+tAv
+pPu
cdm
aaa
aht
@@ -90880,22 +91156,22 @@ qtO
bXk
bXk
bXk
-svA
-mjK
-mjK
-mjK
-wHI
-eyj
-eyj
+fbu
+nQf
+nQf
+nQf
+cgt
+oge
+oge
bXk
-shH
-shH
-shH
-shH
-shH
-shH
-shH
-shH
+uER
+uER
+uER
+uER
+uER
+uER
+uER
+uER
fon
fon
mau
@@ -91127,23 +91403,23 @@ bVH
bWr
bXj
qGZ
-bYQ
+bYM
bZD
caj
cbf
ccb
cah
cdO
-ioF
+jOw
ceX
-qOS
+ocy
cfS
fFv
-fmL
-gXZ
-kmd
-lXJ
-lXJ
+yjy
+nIq
+mAi
+abD
+abD
bXk
aaa
aht
@@ -91396,10 +91672,10 @@ mwG
nAs
cfT
wcs
-ggg
+upg
qbp
qbp
-gEo
+hUi
dMG
bXk
aaa
@@ -91643,14 +91919,14 @@ bXk
bYc
bYO
bZA
-xhI
+dlI
cbh
cbh
cbh
cbh
cbh
-hjD
-vor
+nNn
+mvA
cfU
tIS
iCs
@@ -91900,21 +92176,21 @@ bXk
bYd
bYP
bZF
-rTd
-wDl
-vxr
-irM
-irM
+uZs
+lDW
+wsx
+uwT
+uwT
qFu
cet
ulY
cfV
cgu
cgU
-izm
+kNK
chw
-eyj
-jzE
+oge
+eMz
bXk
bXk
bXk
@@ -92155,31 +92431,31 @@ bVK
bWu
bXk
bYe
-bYQ
+bYM
bZA
can
cbi
ccc
-eyj
+oge
cdR
-tQT
+vvr
bXk
bXk
-sWW
+oBY
cgv
-lXb
+ndf
cgv
uaP
cgv
-ukp
+ikm
cgV
cgv
cgv
-gQf
+gkN
bXk
aht
fon
-shH
+uER
fon
aaa
aaa
@@ -92416,27 +92692,27 @@ bYR
bZA
can
cbj
-eyj
+oge
cbX
wcs
iyJ
cfa
-eyj
+oge
twv
-hoS
+pJx
sWj
dnS
-hSC
-jTU
-fZK
-pgH
-pgH
+rEt
+mZK
+nqW
+pBs
+pBs
uRk
ciG
bXk
aaa
fon
-shH
+uER
fon
aaa
aaa
@@ -92672,7 +92948,7 @@ bYf
bYS
bZA
can
-qpS
+eue
ccd
ccX
ccX
@@ -92680,20 +92956,20 @@ ceu
cbX
cfu
tlN
-ncm
+pIk
cCI
uoq
-hQy
+wDH
chA
meF
-oKv
-wbB
-xzR
+oTD
+uWe
+dHF
hQC
bXk
aht
fon
-shH
+uER
fon
aht
aaa
@@ -92894,7 +93170,7 @@ bmz
bnG
boN
bpW
-dHZ
+brk
bsK
buk
bvs
@@ -92930,27 +93206,27 @@ bYT
bZB
caq
cbk
-eyj
+oge
ccY
cdT
ccY
cbX
-eyj
-vlC
-iej
-qeY
+oge
+jQn
+sQV
+dFF
fyO
fyO
fyO
-qeY
-oKv
-wbB
-wfP
+dFF
+oTD
+uWe
+dGd
hQC
bXk
aaa
fon
-shH
+uER
fon
aaa
aaa
@@ -93186,28 +93462,28 @@ bYh
bYU
bZE
car
-mgz
-eyj
+sdZ
+oge
cbX
wcs
wcs
cfd
bXk
tlN
-ncm
-lUO
+pIk
+obl
mpd
-hKp
-hKp
+peb
+peb
cit
-qeY
-puw
-vBE
+dFF
+vMQ
+gih
hQC
bXk
aht
fon
-shH
+uER
fon
aaa
aaa
@@ -93408,7 +93684,7 @@ bkh
bkh
boN
bpW
-brk
+dVt
bsM
bum
bvt
@@ -93449,22 +93725,22 @@ cda
wcs
wcs
wcs
-eyj
-eAH
-lnr
-qeY
-fBZ
-fBZ
-fBZ
+oge
+oFi
+wjm
+dFF
+uQa
+uQa
+uQa
cgY
ciI
-tdL
-dHr
+mZV
+obG
hQC
bXk
aaa
fon
-shH
+uER
fon
aaa
aaa
@@ -93645,7 +93921,7 @@ aSS
aUg
aVf
aWi
-mjn
+eyT
aYe
aZb
bag
@@ -93668,8 +93944,8 @@ bpV
brm
bsN
bun
-gGA
-bwW
+mcf
+nnf
byA
bAi
bpY
@@ -93698,30 +93974,30 @@ bWz
bVN
bYf
bYW
-oWu
+hDy
cam
-vli
+cxj
ckJ
cey
cdW
wcs
cdW
-eyj
-kTR
-mEu
-wMX
-dFJ
-wYK
-dFJ
-uzh
-nUQ
-fym
-hon
+oge
+vPU
+eux
+kDI
+fWE
+nyN
+fWE
+wXe
+iTE
+mlS
+jTc
hQC
bXk
aht
fon
-shH
+uER
fon
aaa
aaa
@@ -93925,12 +94201,12 @@ bpY
bpY
bpY
bpY
-pxD
-jZG
+gGA
+bwW
bpY
bpY
bpY
-vsG
+vYi
bva
bva
bva
@@ -93957,28 +94233,28 @@ bUT
bYX
bZA
cam
-lfx
+xkL
bXk
-pCo
+xvK
wcs
wcs
-tlV
-eyj
-qkM
-miw
-qeY
+kBe
+oge
+mlx
+gUS
+dFF
prQ
prQ
prQ
-dgj
-psd
-fxC
+nPW
+mvY
+sfr
dZj
hQC
bXk
aaa
fon
-shH
+uER
fon
aaa
aaa
@@ -94178,17 +94454,17 @@ bls
aBI
aBI
bmB
-vKq
-nTr
-gDR
-vzA
+tcC
+qWB
+iHe
+qbm
bvu
-hIZ
-tqO
-mqp
-cKV
-iwe
-qTV
+wnw
+cep
+ePS
+nhW
+rGz
+rPd
xDj
blt
jCv
@@ -94211,31 +94487,31 @@ bVO
bWA
mCe
bYj
-bYQ
+bYM
bZA
cam
-mgz
-eyj
+sdZ
+oge
cbX
wcs
wcs
-dEy
+hxh
bXk
tlN
-ncm
-puw
+pIk
+vMQ
fyF
cZt
cZt
-fjD
-qeY
-iTF
-slJ
+hUf
+dFF
+mLc
+lmv
hQC
bXk
aht
fon
-shH
+uER
fon
aaa
aaa
@@ -94443,11 +94719,11 @@ gkS
tTl
tTl
tTl
-koz
+qUe
dgg
phJ
phJ
-lJI
+lCY
bAk
bIt
bJB
@@ -94468,31 +94744,31 @@ bVP
bWB
mCe
bYk
-wjm
+bYQ
bZF
cbm
-mgz
-eyj
-oHa
-oHa
+sdZ
+oge
+rwf
+rwf
eWi
cbX
-eyj
-vlC
+oge
+jQn
cgx
-qeY
+dFF
fyO
fyO
fyO
-qeY
+dFF
cBS
cjt
-kaR
+mCP
hQC
bXk
aaa
fon
-shH
+uER
fon
aht
aaa
@@ -94692,19 +94968,19 @@ blu
aDZ
aDZ
bjm
-mhn
+nKF
cqi
cqi
cqi
cqi
cqi
-imE
-kYM
-mfC
+erV
+rMt
+ksC
fdQ
bmD
bmD
-eRp
+jrb
bAl
bIu
bJC
@@ -94728,28 +95004,28 @@ bYl
bYO
bZA
cam
-lrM
+lCR
ccd
-cAQ
-cAQ
-cLw
+mlb
+mlb
+mbD
cbX
cfu
jBn
-oxw
+ptk
meF
chA
chA
woh
cCI
cBS
-iLh
+rwt
liR
hQC
bXk
aht
fon
-shH
+uER
fon
aaa
aaa
@@ -94952,18 +95228,18 @@ bKM
cCl
cCl
cCl
-tJr
-tzH
-tzH
+vfn
+ufx
+ufx
byD
bAm
dhz
-uxP
+nkk
bDA
bEQ
bGa
-bHp
-sYQ
+bHg
+mVj
bJD
bBo
bBo
@@ -94986,27 +95262,27 @@ bYY
bZA
cam
cbn
-eyj
+oge
cbX
wcs
cfP
cff
-eyj
+oge
cfX
-vVO
-iop
+kvu
+gHp
kWQ
-oXq
-qpd
-tkL
-tOD
-tOD
-ikO
+iSi
+ona
+kec
+ngg
+ngg
+cUT
hQC
bXk
aaa
fon
-shH
+uER
fon
aaa
aaa
@@ -95207,14 +95483,14 @@ bmC
cqi
boP
bqb
-pYw
+brp
gFo
cSK
duF
-bxa
+oxt
byE
bBp
-wfG
+vyN
bBp
bBp
bBp
@@ -95244,22 +95520,22 @@ bZG
cax
cbo
ccc
-eyj
+oge
cdR
-oJr
+uDr
bXq
bXq
cfY
-xNy
-smv
-xNy
-hGB
-hSt
+hrx
+sHX
+hrx
+hXm
+jjA
civ
civ
-vsw
-qRl
-oKJ
+jtv
+ppi
+oyE
bXk
aht
fon
@@ -95501,19 +95777,19 @@ bZF
cal
cbp
cci
-kTj
-kTj
-qhE
-loz
-frj
-lRX
-eyj
-uIB
-eyj
-eyj
-uIB
-eyj
-eyj
+dPZ
+dPZ
+vMH
+vJS
+vIn
+ttX
+oge
+dGp
+oge
+oge
+dGp
+oge
+oge
bXk
bXk
bXk
@@ -95753,24 +96029,24 @@ bVU
bWG
bXq
bYo
-hXK
+tzh
bZI
-hXK
+tzh
cbq
cbd
cam
cam
cam
-haA
-aKm
-upc
-wIo
-hyh
-upc
-voh
-pBJ
-wIo
-voh
+mCU
+cOA
+gfh
+vdb
+rAZ
+gfh
+tMA
+puO
+vdb
+tMA
cdm
aaa
aaa
@@ -96011,23 +96287,23 @@ bWH
bXk
bTE
bZc
-ueX
+nif
cCU
bZJ
-wbF
+mdi
cCV
ceb
-epV
-qLI
-aKm
-eiV
-upc
-dsz
-eiV
-eiV
-uaO
-voh
-eiV
+qPh
+sKw
+cOA
+sQG
+gfh
+eqM
+sQG
+sQG
+dhu
+tMA
+sQG
cdm
aaa
aaa
@@ -96267,29 +96543,29 @@ bJN
bJN
bJN
bJN
-frj
-pYh
-pYh
-pYh
-pYh
-pYh
-pYh
-pYh
-pYh
-hUw
-nqu
-nsJ
-gBb
-nsJ
-nsJ
-gBb
-nsJ
-nsJ
-dsz
+vIn
+xgB
+xgB
+xgB
+xgB
+xgB
+xgB
+xgB
+xgB
+fml
+mfx
+hJO
+dAa
+hJO
+hJO
+dAa
+hJO
+hJO
+eqM
aht
aht
fon
-shH
+uER
fon
aaa
aaa
@@ -96524,7 +96800,7 @@ bVV
bWI
bXr
bKQ
-udl
+vgX
bZK
abI
abI
@@ -96533,20 +96809,20 @@ abI
aaa
aaa
aaa
-uaO
-wIo
-nsJ
-gBb
-nsJ
-nsJ
-gBb
-nsJ
-nsJ
-hyh
+dhu
+vdb
+hJO
+dAa
+hJO
+hJO
+dAa
+hJO
+hJO
+rAZ
aaa
aaa
fon
-shH
+uER
fon
aaa
aaa
@@ -96781,7 +97057,7 @@ bQI
bWJ
bXs
bJN
-cui
+lxh
bJP
bJP
bJP
@@ -96790,20 +97066,20 @@ bJP
abI
abI
aht
-pBJ
-wIo
-nsJ
-gBb
-nsJ
-nsJ
-gBb
-nsJ
-nsJ
-dsz
+puO
+vdb
+hJO
+dAa
+hJO
+hJO
+dAa
+hJO
+hJO
+eqM
aht
aht
fon
-shH
+uER
fon
aaa
aaa
@@ -97018,7 +97294,7 @@ bCK
bDG
bEW
bAt
-bHg
+aIA
cqw
cqD
bKO
@@ -97038,7 +97314,7 @@ bMf
fuR
bXt
bYp
-eAZ
+jPC
bZL
caz
cbs
@@ -97047,20 +97323,20 @@ bJP
aaa
aaa
aaa
-uaO
-wIo
-nsJ
-gBb
-nsJ
-nsJ
-gBb
-nsJ
-nsJ
-hyh
+dhu
+vdb
+hJO
+dAa
+hJO
+hJO
+dAa
+hJO
+hJO
+rAZ
aaa
aaa
fon
-shH
+uER
fon
aaa
aaa
@@ -97295,7 +97571,7 @@ bVW
bWL
bXu
bLW
-cui
+lxh
bMi
caA
cbt
@@ -97304,20 +97580,20 @@ bJP
aaa
aaa
aaa
-pBJ
-swg
-hyh
-pBJ
-hyh
-pBJ
-hyh
-pBJ
-hyh
+puO
+xuW
+rAZ
+puO
+rAZ
+puO
+rAZ
+puO
+rAZ
cdm
aht
aht
fon
-shH
+uER
fon
aaa
aaa
@@ -97552,7 +97828,7 @@ bVX
bWM
bXv
bWc
-poP
+tmi
bZL
caB
cbs
@@ -97789,7 +98065,7 @@ bAt
bAt
bAu
bAu
-bHp
+bHg
cqx
bJJ
bKQ
@@ -97804,12 +98080,12 @@ bQI
bQI
bTM
bUs
-ljG
-hjk
-pmB
+cAp
+ykV
+ufr
bXw
-dJk
-tbw
+iSL
+lQy
bJP
bJP
bJP
@@ -98061,7 +98337,7 @@ bMf
bMf
bTN
bUt
-wLK
+flP
bOk
bWK
bXt
@@ -98317,8 +98593,8 @@ bRx
bQJ
bPQ
bTO
-ljG
-lhP
+cAp
+xVT
bOk
bWL
bXx
@@ -98332,21 +98608,21 @@ bJP
aaa
aaa
fon
-shH
-shH
-shH
-shH
-shH
-shH
-shH
-shH
-shH
-shH
+uER
+uER
+uER
+uER
+uER
+uER
+uER
+uER
+uER
+uER
fon
aaa
aht
-shH
-shH
+uER
+uER
fon
aaa
aaa
@@ -98574,7 +98850,7 @@ bPQ
bPQ
bPQ
bTP
-wLK
+flP
bVh
bVY
bWM
@@ -98602,7 +98878,7 @@ fon
fon
aaa
aht
-shH
+uER
fon
fon
aaa
@@ -98831,7 +99107,7 @@ bQK
bQK
bPQ
bTQ
-wLK
+flP
bKX
bOk
bWN
@@ -99088,7 +99364,7 @@ bRy
bSf
bSR
bTM
-wLK
+flP
bKX
bVZ
bWO
@@ -99272,13 +99548,13 @@ ale
asb
coe
apX
-aab
+ave
awn
apX
-aac
+ayj
azr
apX
-aae
+aBM
aDb
apX
oFo
@@ -99345,7 +99621,7 @@ bRz
bMf
bSS
bTR
-tDE
+nYe
bKX
bWa
bMf
@@ -99802,7 +100078,7 @@ aHn
aIi
aJi
aKe
-klb
+kVA
aMi
aNJ
fwl
@@ -100840,7 +101116,7 @@ lAs
eeQ
aUs
aLf
-eex
+lfZ
aLf
aLf
aUl
@@ -101105,7 +101381,7 @@ aTm
bbE
bbE
bbE
-dps
+bbE
bbE
bbE
aEj
@@ -101364,7 +101640,7 @@ bcA
bdF
beJ
bfB
-bbE
+gaJ
aZv
aUC
biz
@@ -102101,7 +102377,7 @@ apX
apX
avl
fIu
-epj
+rTZ
aIh
azA
dbi
@@ -102635,7 +102911,7 @@ aNP
aPb
aNO
aNP
-tLP
+cRJ
aTq
aSk
aTm
@@ -107513,7 +107789,7 @@ aaa
aaa
aLn
aNT
-xer
+rax
aQo
aPg
aRu
@@ -107771,7 +108047,7 @@ aaa
aLm
aLm
aNU
-aNV
+hCg
dqY
aRv
sZh
@@ -108027,8 +108303,8 @@ aaa
aaa
aLm
aME
-eFG
aNV
+hCg
dqY
aRw
sqQ
@@ -108284,8 +108560,8 @@ aaa
aaa
aLo
aMF
-aNV
-aNV
+aNW
+hCg
cvf
aQn
sqQ
@@ -108542,7 +108818,7 @@ aaa
aLo
aMG
aNX
-aNV
+hCg
rax
aRy
aSn
diff --git a/_maps/map_files/debug/runtimestation.dmm b/_maps/map_files/debug/runtimestation.dmm
index 7a591a48fa..feb8fc8cc0 100644
--- a/_maps/map_files/debug/runtimestation.dmm
+++ b/_maps/map_files/debug/runtimestation.dmm
@@ -41,7 +41,7 @@
/area/engine/gravity_generator)
"am" = (
/obj/machinery/atmospherics/components/unary/tank/air,
-/turf/open/floor/plating,
+/turf/open/floor/plasteel,
/area/engine/atmos)
"an" = (
/obj/structure/lattice/catwalk,
@@ -124,6 +124,8 @@
dir = 5
},
/obj/structure/cable,
+/obj/machinery/power/port_gen/pacman/super,
+/obj/item/stack/sheet/mineral/uranium,
/turf/open/floor/plasteel,
/area/engine/gravity_generator)
"au" = (
@@ -351,7 +353,7 @@
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 8
},
-/turf/open/floor/plasteel/dark,
+/turf/open/floor/plasteel,
/area/engine/gravity_generator)
"aY" = (
/obj/machinery/light{
@@ -431,7 +433,7 @@
icon_state = "1-2"
},
/obj/machinery/door/airlock,
-/turf/open/floor/plating,
+/turf/open/floor/plasteel,
/area/engine/atmos)
"bl" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
@@ -447,9 +449,9 @@
/turf/open/floor/plating,
/area/engine/atmos)
"bo" = (
-/obj/structure/table,
-/obj/item/screwdriver/power,
-/obj/item/wirecutters/power,
+/obj/structure/closet/secure_closet/atmospherics{
+ locked = 0
+ },
/turf/open/floor/plasteel,
/area/engine/engineering)
"bp" = (
@@ -508,7 +510,7 @@
icon_state = "1-2"
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/turf/open/floor/plating,
+/turf/open/floor/plasteel,
/area/engine/engineering)
"by" = (
/turf/closed/wall/r_wall,
@@ -521,7 +523,7 @@
/turf/open/floor/plasteel,
/area/science)
"bC" = (
-/obj/machinery/computer/gulag_teleporter_computer{
+/obj/machinery/computer/prisoner/gulag_teleporter_computer{
dir = 4
},
/turf/open/floor/plasteel,
@@ -658,13 +660,13 @@
/obj/structure/cable{
icon_state = "0-2"
},
-/mob/living/carbon/human,
/obj/effect/turf_decal/tile/blue{
dir = 4
},
/obj/effect/turf_decal/tile/blue{
dir = 8
},
+/mob/living/carbon/human,
/turf/open/floor/plasteel/white/corner{
dir = 1
},
@@ -673,20 +675,20 @@
/obj/machinery/light{
dir = 1
},
-/mob/living/carbon/human,
/obj/effect/turf_decal/tile/blue{
dir = 4
},
+/mob/living/carbon/human,
/turf/open/floor/plasteel/white/corner{
dir = 1
},
/area/medical/medbay)
"bW" = (
/obj/machinery/camera/autoname,
-/mob/living/carbon/human,
/obj/effect/turf_decal/tile/blue{
dir = 4
},
+/mob/living/carbon/human,
/turf/open/floor/plasteel/white/corner{
dir = 1
},
@@ -730,7 +732,7 @@
icon_state = "4-8"
},
/obj/machinery/door/airlock,
-/turf/open/floor/plating,
+/turf/open/floor/plasteel,
/area/bridge)
"ce" = (
/obj/structure/cable{
@@ -895,7 +897,7 @@
/area/medical/medbay)
"cz" = (
/obj/structure/fans/tiny,
-/turf/open/floor/plating,
+/turf/open/floor/plasteel,
/area/medical/medbay)
"cA" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
@@ -1280,7 +1282,7 @@
/area/storage/primary)
"dH" = (
/obj/machinery/door/airlock,
-/turf/open/floor/plating,
+/turf/open/floor/plasteel,
/area/maintenance/department/bridge)
"dI" = (
/obj/effect/landmark/start,
@@ -1309,6 +1311,8 @@
/area/construction)
"dN" = (
/obj/structure/table,
+/obj/item/warpwhistle,
+/obj/item/voodoo,
/turf/open/floor/plasteel,
/area/storage/primary)
"dO" = (
@@ -1337,7 +1341,7 @@
"dS" = (
/obj/machinery/atmospherics/components/unary/tank/air,
/obj/machinery/camera/autoname,
-/turf/open/floor/plating,
+/turf/open/floor/plasteel,
/area/engine/atmos)
"dT" = (
/obj/machinery/camera/autoname,
@@ -1429,7 +1433,7 @@
name = "Mining Dock Airlock"
},
/obj/structure/fans/tiny,
-/turf/open/floor/plating,
+/turf/open/floor/plasteel,
/area/quartermaster/miningoffice)
"ef" = (
/obj/machinery/door/airlock,
@@ -1484,7 +1488,7 @@
name = "Arrival Airlock"
},
/obj/structure/fans/tiny,
-/turf/open/floor/plating,
+/turf/open/floor/plasteel,
/area/hallway/secondary/entry)
"ep" = (
/obj/structure/cable{
@@ -1543,7 +1547,7 @@
name = "Escape Pod One"
},
/obj/structure/fans/tiny,
-/turf/open/floor/plating,
+/turf/open/floor/plasteel,
/area/hallway/secondary/entry)
"ey" = (
/obj/machinery/status_display/supply,
@@ -1576,6 +1580,9 @@
icon_state = "1-4"
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
/turf/open/floor/plasteel,
/area/hallway/secondary/entry)
"eC" = (
@@ -1659,6 +1666,9 @@
/area/storage/primary)
"eL" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
/turf/open/floor/plasteel,
/area/hallway/secondary/entry)
"eM" = (
@@ -1800,6 +1810,9 @@
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 4
},
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
/turf/open/floor/plasteel,
/area/hallway/secondary/entry)
"fe" = (
@@ -1822,6 +1835,7 @@
dir = 8
},
/obj/effect/turf_decal/bot,
+/obj/item/export_scanner,
/turf/open/floor/plasteel,
/area/quartermaster/storage)
"ff" = (
@@ -1911,6 +1925,7 @@
/obj/machinery/computer/cargo/express{
dir = 4
},
+/obj/item/disk/cargo/bluespace_pod,
/turf/open/floor/plasteel,
/area/quartermaster/storage)
"fs" = (
@@ -1918,7 +1933,7 @@
name = "Transport Airlock"
},
/obj/structure/fans/tiny,
-/turf/open/floor/plating,
+/turf/open/floor/plasteel,
/area/hallway/secondary/entry)
"ft" = (
/obj/machinery/door/airlock,
@@ -1928,7 +1943,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
-/turf/open/floor/plating,
+/turf/open/floor/plasteel,
/area/hallway/primary/central)
"fu" = (
/obj/structure/cable{
@@ -2135,7 +2150,7 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
},
-/turf/open/floor/plating,
+/turf/open/floor/plasteel,
/area/storage/primary)
"fO" = (
/turf/open/floor/plasteel,
@@ -2236,12 +2251,6 @@
},
/turf/open/floor/plasteel,
/area/quartermaster/storage)
-"fZ" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 9
- },
-/turf/open/floor/plasteel,
-/area/hallway/secondary/entry)
"ga" = (
/turf/closed/wall/r_wall,
/area/hallway/secondary/exit/departure_lounge)
@@ -2256,7 +2265,7 @@
name = "Auxiliary Airlock"
},
/obj/structure/fans/tiny,
-/turf/open/floor/plating,
+/turf/open/floor/plasteel,
/area/hallway/secondary/entry)
"gd" = (
/obj/effect/spawner/structure/window/reinforced,
@@ -2513,6 +2522,26 @@
/obj/item/paper/guides/jobs/security/labor_camp,
/turf/open/floor/plasteel,
/area/security/brig)
+"gM" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/space/basic,
+/turf/open/floor/carpet/blackred,
+/area/crew_quarters/bar)
+"gR" = (
+/obj/machinery/power/apc{
+ dir = 1;
+ pixel_y = 25
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics)
"gY" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 8
@@ -2539,6 +2568,15 @@
},
/turf/open/floor/plasteel,
/area/science)
+"jt" = (
+/obj/machinery/smartfridge,
+/turf/open/floor/grass,
+/area/hydroponics)
+"jw" = (
+/obj/machinery/power/rtg/abductor,
+/obj/structure/cable,
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
"jE" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 8
@@ -2550,6 +2588,26 @@
/obj/item/melee/transforming/energy/axe,
/turf/open/floor/plasteel,
/area/storage/primary)
+"kf" = (
+/obj/machinery/vending/hydroseeds,
+/turf/open/floor/grass,
+/area/hydroponics)
+"kk" = (
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/space,
+/area/space/nearstation)
"kn" = (
/obj/machinery/light{
dir = 1
@@ -2559,6 +2617,14 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/central)
+"kG" = (
+/obj/machinery/vending/hydronutrients,
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/turf/open/floor/grass,
+/area/hydroponics)
"kQ" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 8
@@ -2575,6 +2641,10 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/central)
+"kT" = (
+/obj/machinery/light,
+/turf/open/floor/plasteel,
+/area/crew_quarters/bar)
"lg" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -2590,6 +2660,14 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/central)
+"mI" = (
+/obj/machinery/hydroponics/constructable,
+/turf/open/floor/grass,
+/area/hydroponics)
+"nb" = (
+/obj/structure/filingcabinet/chestdrawer/wheeled,
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
"ny" = (
/obj/structure/table,
/obj/item/storage/toolbox/syndicate,
@@ -2597,7 +2675,7 @@
/area/storage/primary)
"ou" = (
/obj/machinery/airalarm/directional/west,
-/turf/open/floor/plating,
+/turf/open/floor/plasteel,
/area/engine/atmos)
"oV" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
@@ -2610,12 +2688,20 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/closed/wall/r_wall,
/area/science)
+"pF" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/reagentgrinder/constructed,
+/obj/structure/table/reinforced,
+/turf/open/floor/grass,
+/area/hydroponics)
"pI" = (
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 8
},
/obj/machinery/door/airlock/external/glass,
-/turf/open/floor/plating,
+/turf/open/floor/plasteel,
/area/medical/medbay)
"pQ" = (
/obj/structure/cable{
@@ -2625,7 +2711,7 @@
/area/medical/chemistry)
"qb" = (
/obj/machinery/door/airlock,
-/turf/open/floor/plating,
+/turf/open/floor/plasteel,
/area/engine/atmos)
"qn" = (
/obj/structure/cable{
@@ -2633,11 +2719,55 @@
},
/turf/open/floor/plating,
/area/maintenance/department/bridge)
+"qZ" = (
+/obj/structure/lattice,
+/obj/structure/lattice/catwalk,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/space,
+/area/space/nearstation)
+"rN" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/cafeteria)
+"sD" = (
+/obj/effect/turf_decal/tile/blue,
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/structure/closet/secure_closet/warden{
+ locked = 0
+ },
+/turf/open/floor/plasteel,
+/area/bridge)
"sE" = (
/obj/machinery/power/rtg/advanced,
/obj/structure/cable,
/turf/open/floor/plating/airless,
/area/space/nearstation)
+"sN" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/bar)
+"sP" = (
+/obj/structure/table/reinforced,
+/obj/machinery/chem_dispenser/drinks/beer/fullupgrade,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/bar)
+"up" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/cafeteria)
"ut" = (
/obj/structure/closet/secure_closet/atmospherics{
locked = 0
@@ -2645,15 +2775,40 @@
/obj/machinery/light{
dir = 1
},
-/turf/open/floor/plating,
+/turf/open/floor/plasteel,
/area/engine/atmos)
"vm" = (
/turf/closed/wall/r_wall,
/area/maintenance/aft)
+"vs" = (
+/obj/machinery/door/airlock,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/crew_quarters/bar)
"vv" = (
/obj/machinery/door/airlock,
/turf/open/floor/plating,
/area/storage/primary)
+"vG" = (
+/obj/machinery/biogenerator,
+/turf/open/floor/grass,
+/area/hydroponics)
+"vH" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/bar)
+"vN" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/space/basic,
+/turf/open/floor/carpet/blackred,
+/area/crew_quarters/bar)
"vP" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -2676,6 +2831,10 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/central)
+"wf" = (
+/turf/open/space/basic,
+/turf/open/floor/carpet/blackred,
+/area/crew_quarters/bar)
"wS" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -2685,6 +2844,48 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/central)
+"wT" = (
+/obj/structure/table/reinforced,
+/obj/machinery/microwave,
+/turf/open/floor/plasteel,
+/area/crew_quarters/bar)
+"wX" = (
+/obj/structure/chair/stool/bar,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/space/basic,
+/turf/open/floor/carpet/blackred,
+/area/crew_quarters/bar)
+"xh" = (
+/obj/structure/closet/secure_closet/hydroponics,
+/turf/open/floor/grass,
+/area/hydroponics)
+"xj" = (
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"yl" = (
+/obj/structure/chair/stool/bar,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/space/basic,
+/turf/open/floor/carpet/blackred,
+/area/crew_quarters/bar)
+"yt" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/crew_quarters/bar)
+"yM" = (
+/obj/machinery/vending/wallmed,
+/turf/closed/wall/r_wall,
+/area/hallway/secondary/entry)
+"yO" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/cafeteria)
"zo" = (
/obj/machinery/power/apc/auto_name/south,
/obj/structure/cable{
@@ -2732,6 +2933,10 @@
"Ce" = (
/turf/open/floor/plasteel,
/area/medical/chemistry)
+"Cr" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/crew_quarters/cafeteria)
"Ct" = (
/obj/structure/closet/syndicate/resources/everything,
/turf/open/floor/plasteel,
@@ -2743,6 +2948,30 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
/area/medical/chemistry)
+"Dh" = (
+/obj/structure/table/reinforced,
+/obj/machinery/chem_dispenser/drinks/fullupgrade,
+/turf/open/floor/plasteel,
+/area/crew_quarters/bar)
+"DH" = (
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/hydroponics)
+"DJ" = (
+/obj/structure/kitchenspike,
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/cafeteria)
+"Em" = (
+/obj/structure/table/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/bar)
"EI" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 8
@@ -2751,6 +2980,9 @@
/obj/effect/turf_decal/tile/blue{
dir = 8
},
+/obj/structure/closet/secure_closet/quartermaster{
+ locked = 0
+ },
/turf/open/floor/plasteel,
/area/bridge)
"ES" = (
@@ -2762,6 +2994,37 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/central)
+"Fg" = (
+/turf/open/floor/plasteel,
+/area/engine/atmos)
+"Fy" = (
+/obj/machinery/seed_extractor,
+/turf/open/floor/grass,
+/area/hydroponics)
+"Ga" = (
+/obj/machinery/vending/boozeomat/all_access,
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/bar)
+"Gc" = (
+/obj/structure/closet/secure_closet/miner/unlocked,
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"Go" = (
+/obj/structure/closet/wardrobe/cargotech,
+/turf/open/floor/plasteel,
+/area/quartermaster/storage)
+"Hn" = (
+/obj/structure/beebox,
+/obj/item/honey_frame,
+/obj/item/honey_frame,
+/obj/item/honey_frame,
+/obj/item/queen_bee/bought,
+/turf/open/floor/grass,
+/area/hydroponics)
"If" = (
/obj/machinery/rnd/production/techfab/department,
/turf/open/floor/plasteel,
@@ -2776,12 +3039,35 @@
},
/turf/open/floor/plasteel,
/area/bridge)
+"IB" = (
+/obj/structure/chair/stool/bar,
+/turf/open/space/basic,
+/turf/open/floor/carpet/blackred,
+/area/crew_quarters/bar)
"JF" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 8
},
/turf/open/floor/plasteel,
/area/medical/chemistry)
+"JJ" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics)
+"JV" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/bar)
"Kx" = (
/obj/structure/table,
/obj/item/analyzer,
@@ -2789,10 +3075,55 @@
/obj/machinery/light,
/turf/open/floor/plating,
/area/engine/atmos)
+"Lg" = (
+/obj/machinery/door/airlock/external{
+ name = "Labor Camp Shuttle Airlock"
+ },
+/obj/structure/fans/tiny,
+/turf/open/floor/plasteel,
+/area/security/brig)
+"Lo" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/turf/open/space/basic,
+/turf/open/floor/carpet/blackred,
+/area/crew_quarters/bar)
"Ly" = (
/obj/machinery/chem_dispenser/chem_synthesizer,
/turf/open/floor/plasteel/dark,
/area/medical/chemistry)
+"Mk" = (
+/obj/structure/table,
+/obj/item/book_of_babel,
+/obj/item/book/granter/action/origami,
+/obj/item/book/granter/action/drink_fling,
+/turf/open/floor/plasteel,
+/area/storage/primary)
+"MH" = (
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/apc{
+ dir = 1;
+ pixel_y = 25
+ },
+/turf/open/floor/plasteel,
+/area/crew_quarters/bar)
+"MQ" = (
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/space/basic,
+/turf/open/floor/carpet/blackred,
+/area/crew_quarters/bar)
+"MS" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/hydroponics)
"MY" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/structure/cable{
@@ -2800,6 +3131,27 @@
},
/turf/open/floor/plasteel,
/area/engine/atmos)
+"Nw" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "0-2";
+ pixel_y = 1
+ },
+/obj/machinery/power/apc{
+ dir = 1;
+ pixel_y = 25
+ },
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/cafeteria)
+"NC" = (
+/turf/closed/wall/r_wall,
+/area/crew_quarters/cafeteria)
+"NL" = (
+/obj/structure/closet/secure_closet/freezer/kitchen/mining,
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/cafeteria)
"NZ" = (
/obj/machinery/rnd/production/protolathe/department,
/turf/open/floor/plasteel,
@@ -2808,16 +3160,26 @@
/obj/item/disk/tech_disk/debug,
/turf/open/floor/plasteel,
/area/science)
+"PD" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/cafeteria)
"PI" = (
/obj/structure/fans/tiny/invisible,
/turf/open/space/basic,
/area/space)
+"PV" = (
+/obj/machinery/vending/dinnerware,
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/cafeteria)
"Qt" = (
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 4
},
/obj/machinery/door/airlock/external/glass,
-/turf/open/floor/plating,
+/turf/open/floor/plasteel,
/area/medical/medbay)
"Rb" = (
/obj/effect/spawner/structure/window/reinforced,
@@ -2830,6 +3192,9 @@
},
/turf/open/floor/plating/airless,
/area/space/nearstation)
+"Si" = (
+/turf/open/floor/plasteel,
+/area/crew_quarters/bar)
"Sj" = (
/obj/structure/table/optable,
/obj/effect/turf_decal/tile/blue{
@@ -2837,9 +3202,37 @@
},
/turf/open/floor/plasteel/white/corner,
/area/medical/medbay)
+"Sv" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/plantgenes/seedvault,
+/turf/open/floor/grass,
+/area/hydroponics)
+"SC" = (
+/obj/structure/closet/secure_closet/freezer/meat,
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/cafeteria)
+"SF" = (
+/obj/machinery/chem_dispenser/mutagensaltpeter,
+/obj/item/reagent_containers/glass/beaker/bluespace,
+/obj/item/reagent_containers/glass/beaker/bluespace,
+/obj/item/reagent_containers/glass/beaker/bluespace,
+/turf/open/floor/grass,
+/area/hydroponics)
+"Tp" = (
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/power/rtg/abductor,
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
"Tt" = (
/turf/open/floor/plating,
/area/maintenance/aft)
+"TZ" = (
+/turf/closed/wall/r_wall,
+/area/crew_quarters/bar)
"Ut" = (
/obj/structure/closet/secure_closet/medical3{
locked = 0
@@ -2911,7 +3304,7 @@
/obj/machinery/light{
dir = 1
},
-/turf/open/floor/plating,
+/turf/open/floor/plasteel,
/area/engine/atmos)
"Yy" = (
/obj/machinery/light{
@@ -2924,10 +3317,26 @@
},
/turf/open/floor/plasteel,
/area/science)
+"YB" = (
+/turf/open/floor/plasteel/freezer,
+/area/crew_quarters/cafeteria)
"ZD" = (
/obj/machinery/suit_storage_unit/ce,
/turf/open/floor/plasteel,
/area/engine/atmos)
+"ZO" = (
+/turf/closed/wall/r_wall,
+/area/hydroponics)
+"ZR" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
+/turf/open/space/basic,
+/turf/open/floor/carpet/blackred,
+/area/crew_quarters/bar)
(1,1,1) = {"
aa
@@ -5368,13 +5777,13 @@ en
ek
eh
dY
-aa
-aa
-aa
-aa
-aa
-aa
-aa
+DH
+DH
+DH
+DH
+DH
+DH
+ZO
aa
aa
aa
@@ -5460,13 +5869,13 @@ en
ek
eh
en
-aa
-aa
-aa
-aa
-aa
-aa
-aa
+Hn
+mI
+mI
+mI
+mI
+xh
+DH
aa
aa
aa
@@ -5552,13 +5961,13 @@ en
ek
eh
dY
-aa
-aa
-aa
-aa
-aa
-aa
-aa
+gR
+JJ
+xj
+xj
+xj
+xj
+DH
aa
aa
aa
@@ -5644,13 +6053,13 @@ dY
gC
eh
dY
-aa
-aa
-aa
-aa
-aa
-aa
-aa
+pF
+MS
+vG
+SF
+xj
+kf
+DH
aa
aa
aa
@@ -5736,13 +6145,13 @@ en
ek
eh
dY
-aa
-aa
-aa
-aa
-aa
-aa
-aa
+Sv
+MS
+Fy
+jt
+xj
+kG
+ZO
aa
aa
aa
@@ -5801,7 +6210,7 @@ di
bw
ag
bw
-di
+Lg
bw
ag
ag
@@ -5827,14 +6236,14 @@ dY
dY
ek
eh
-dY
-aa
-aa
-aa
-aa
-aa
-aa
-aa
+yM
+vH
+sN
+Si
+Si
+Si
+kT
+TZ
aa
aa
aa
@@ -5920,13 +6329,13 @@ eh
ek
eh
dY
-aa
-aa
-aa
-aa
-aa
-aa
-aa
+vH
+vN
+wf
+wf
+wf
+Si
+yt
aa
aa
aa
@@ -6009,16 +6418,16 @@ eL
eL
eL
eL
-fZ
-eh
-dY
-aa
-aa
-aa
-aa
-aa
-aa
-aa
+fd
+eL
+vs
+JV
+ZR
+MQ
+Lo
+gM
+Si
+yt
aa
aa
aa
@@ -6104,13 +6513,13 @@ eh
eh
eh
ge
-aa
-aa
-aa
-aa
-aa
-aa
-aa
+MH
+IB
+yl
+wX
+IB
+Si
+yt
aa
aa
aa
@@ -6196,13 +6605,13 @@ fI
dY
dY
ge
-aa
-aa
-aa
-aa
-aa
-aa
-aa
+Ga
+Dh
+sP
+Em
+wT
+kT
+TZ
aa
aa
aa
@@ -6256,10 +6665,10 @@ aa
aa
ah
ut
-aw
+Fg
ou
-aw
-aw
+Fg
+Fg
Kx
ah
bs
@@ -6287,14 +6696,14 @@ cN
Tt
vm
fg
-aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
+NC
+NC
+YB
+PD
+up
+YB
+YB
+NC
aa
aa
aa
@@ -6380,13 +6789,13 @@ Tt
vm
fg
aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
+NC
+Nw
+rN
+yO
+YB
+YB
+NC
aa
aa
aa
@@ -6472,13 +6881,13 @@ Tt
vm
fg
aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
+NC
+PV
+NL
+SC
+SC
+DJ
+NC
aa
aa
aa
@@ -6564,13 +6973,13 @@ Tt
vm
fg
aa
-aa
-aa
-aa
-aa
-aa
-aa
-aa
+NC
+NC
+Cr
+NC
+Cr
+NC
+NC
aa
aa
aa
@@ -7084,11 +7493,11 @@ aa
aa
ae
ab
-ab
-ab
-aB
-ab
-ab
+Tp
+qZ
+kk
+qZ
+jw
ab
bv
bJ
@@ -7175,13 +7584,13 @@ aa
aa
aa
ae
-ac
-ac
+ab
+ab
ab
aB
ab
-ac
-ac
+ab
+ab
bv
bK
cf
@@ -7277,7 +7686,7 @@ ac
bv
bL
cf
-cq
+sD
bv
cD
bE
@@ -8306,7 +8715,7 @@ dJ
dJ
dJ
dJ
-dN
+Mk
cS
gH
fO
@@ -8669,7 +9078,7 @@ cS
cS
cS
fN
-vv
+dG
cS
cS
cS
@@ -8764,9 +9173,9 @@ eZ
eu
fq
fr
-eu
-eu
-eu
+nb
+Go
+Gc
et
aa
aa
diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm
index d796330cc8..80e80cd6a9 100644
--- a/_maps/map_files/generic/CentCom.dmm
+++ b/_maps/map_files/generic/CentCom.dmm
@@ -1264,9 +1264,9 @@
/area/holodeck/rec_center/chapelcourt)
"dw" = (
/obj/structure/table/wood/fancy,
-/obj/item/clothing/suit/nun,
+/obj/item/clothing/suit/chaplain/nun,
/obj/item/clothing/head/nun_hood,
-/obj/item/clothing/suit/holidaypriest,
+/obj/item/clothing/suit/chaplain/holidaypriest,
/turf/open/floor/holofloor{
dir = 8;
icon_state = "dark"
@@ -2248,11 +2248,6 @@
},
/turf/open/floor/plasteel,
/area/tdome/arena_source)
-"fR" = (
-/obj/item/paicard,
-/obj/structure/table/wood,
-/turf/open/floor/engine/cult,
-/area/wizard_station)
"fS" = (
/obj/effect/turf_decal/tile/red{
dir = 8
@@ -2940,22 +2935,6 @@
/obj/machinery/capture_the_flag/red,
/turf/open/floor/circuit/green/anim,
/area/ctf)
-"hH" = (
-/obj/structure/table/reinforced,
-/obj/item/flashlight/seclite,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/obj/item/paicard,
-/turf/open/floor/plasteel/dark,
-/area/centcom/ferry)
"hI" = (
/obj/effect/turf_decal/stripes/line{
dir = 10
@@ -3885,7 +3864,7 @@
/turf/open/floor/plasteel,
/area/centcom/control)
"jS" = (
-/obj/machinery/computer/prisoner,
+/obj/machinery/computer/prisoner/management,
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/centcom/control)
@@ -5878,7 +5857,7 @@
/turf/open/floor/plasteel,
/area/centcom/control)
"nY" = (
-/obj/machinery/computer/prisoner{
+/obj/machinery/computer/prisoner/management{
dir = 1
},
/obj/effect/turf_decal/stripes/line{
@@ -8415,6 +8394,9 @@
/turf/open/floor/plating,
/area/syndicate_mothership)
"tg" = (
+/obj/machinery/shower{
+ dir = 4
+ },
/obj/item/soap/syndie,
/turf/open/floor/plasteel/freezer,
/area/syndicate_mothership)
@@ -9858,7 +9840,7 @@
id = "XCCFerry";
name = "Hanger Bay Shutters";
pixel_y = 24;
- req_access_txt = "2"
+ req_access_txt = "101"
},
/obj/effect/turf_decal/stripes/line{
dir = 5
@@ -10513,7 +10495,7 @@
/turf/open/floor/plasteel/dark,
/area/centcom/control)
"yv" = (
-/obj/machinery/computer/prisoner{
+/obj/machinery/computer/prisoner/management{
dir = 1
},
/obj/machinery/light,
@@ -11391,6 +11373,22 @@
/obj/structure/table/reinforced,
/turf/open/floor/plasteel/grimy,
/area/centcom/ferry)
+"AL" = (
+/obj/structure/table/reinforced,
+/obj/item/flashlight/seclite,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/item/paicard,
+/turf/open/floor/plasteel/dark,
+/area/centcom/ferry)
"AM" = (
/obj/machinery/shuttle_manipulator,
/turf/open/floor/circuit/green,
@@ -11587,6 +11585,11 @@
},
/turf/open/floor/plasteel/white,
/area/centcom/holding)
+"Bp" = (
+/obj/item/paicard,
+/obj/structure/table/wood,
+/turf/open/floor/engine/cult,
+/area/wizard_station)
"Bs" = (
/obj/structure/table/wood,
/obj/machinery/computer/libraryconsole/bookmanagement,
@@ -15122,7 +15125,7 @@
/obj/structure/table/wood,
/obj/item/book/manual/wiki/barman_recipes,
/obj/item/reagent_containers/food/drinks/shaker,
-/obj/item/reagent_containers/glass/rag,
+/obj/item/reagent_containers/rag,
/obj/machinery/newscaster{
pixel_y = -32
},
@@ -17434,6 +17437,8 @@
/obj/structure/mirror{
pixel_x = -28
},
+/obj/structure/table,
+/obj/item/reagent_containers/rag/towel/syndicate,
/turf/open/floor/plasteel/freezer,
/area/syndicate_mothership)
"Rm" = (
@@ -25742,7 +25747,7 @@ lI
lI
lI
Ax
-fR
+Bp
qZ
qZ
Ax
@@ -56338,7 +56343,7 @@ yr
sw
sw
Ad
-hH
+AL
Bx
sw
Cv
diff --git a/code/__DEFINES/DNA.dm b/code/__DEFINES/DNA.dm
index 4ed099d9e2..4372c4ca24 100644
--- a/code/__DEFINES/DNA.dm
+++ b/code/__DEFINES/DNA.dm
@@ -98,6 +98,13 @@
#define DRINKSBLOOD 15
#define NOEYES 16
#define MARKINGS 17
+#define MUTCOLORS2 18
+#define MUTCOLORS3 19
+#define NOAROUSAL 20 //Stops all arousal effects
+#define NOGENITALS 21 //Cannot create, use, or otherwise have genitals
+#define MATRIXED 22 //if icon is color matrix'd
+#define SKINTONE 23 //uses skin tones
+#define HORNCOLOR 24
#define ORGAN_SLOT_BRAIN "brain"
#define ORGAN_SLOT_APPENDIX "appendix"
diff --git a/code/__DEFINES/admin.dm b/code/__DEFINES/admin.dm
index fb42bc46c0..b875998f0a 100644
--- a/code/__DEFINES/admin.dm
+++ b/code/__DEFINES/admin.dm
@@ -81,3 +81,10 @@
#define SPAM_TRIGGER_WARNING 5 //Number of identical messages required before the spam-prevention will warn you to stfu
#define SPAM_TRIGGER_AUTOMUTE 10 //Number of identical messages required before the spam-prevention will automute you
+
+///Max length of a keypress command before it's considered to be a forged packet/bogus command
+#define MAX_KEYPRESS_COMMANDLENGTH 16
+///Max amount of keypress messages per second over two seconds before client is autokicked
+#define MAX_KEYPRESS_AUTOKICK 100
+///Length of held key rolling buffer
+#define HELD_KEY_BUFFER_LENGTH 15
diff --git a/code/__DEFINES/antagonists.dm b/code/__DEFINES/antagonists.dm
index e35defd485..b2f05fd5f8 100644
--- a/code/__DEFINES/antagonists.dm
+++ b/code/__DEFINES/antagonists.dm
@@ -38,5 +38,5 @@
//Gangshit
#define NOT_DOMINATING -1
-#define MAX_LEADERS_GANG 3
+#define MAX_LEADERS_GANG 4
#define INITIAL_DOM_ATTEMPTS 3
diff --git a/code/__DEFINES/citadel_defines.dm b/code/__DEFINES/citadel_defines.dm
index 2abe0db04e..d966c73d23 100644
--- a/code/__DEFINES/citadel_defines.dm
+++ b/code/__DEFINES/citadel_defines.dm
@@ -12,7 +12,7 @@
#define ui_boxcraft "EAST-4:22,SOUTH+1:6"
#define ui_boxarea "EAST-4:6,SOUTH+1:6"
#define ui_boxlang "EAST-5:22,SOUTH+1:6"
-#define ui_boxvore "EAST-4:22,SOUTH+1:6"
+#define ui_boxvore "EAST-5:22,SOUTH+1:6"
//Filters
#define CIT_FILTER_STAMINACRIT filter(type="drop_shadow", x=0, y=0, size=-3, border=0, color="#04080F")
@@ -40,7 +40,7 @@
#define BALLS_SACK_SIZE_DEF 8
#define BALLS_SACK_SIZE_MAX 40
-#define CUM_RATE 5
+#define CUM_RATE 0.035
#define CUM_RATE_MULT 1
#define CUM_EFFICIENCY 1//amount of nutrition required per life()
@@ -89,17 +89,6 @@
//Damage stuffs
#define AROUSAL "arousal"
-//DNA stuffs. Remember to change this if upstream adds more snowflake options
-
-
-//Species stuffs. Remember to change this if upstream updates species flags
-#define MUTCOLORS2 35
-#define MUTCOLORS3 36
-#define NOAROUSAL 37 //Stops all arousal effects
-#define NOGENITALS 38 //Cannot create, use, or otherwise have genitals
-#define MATRIXED 39 //if icon is color matrix'd
-#define SKINTONE 40 //uses skin tones
-
//Citadel istypes
#define isgenital(A) (istype(A, /obj/item/organ/genital))
@@ -115,22 +104,21 @@
//xenobio console upgrade stuff
#define XENOBIO_UPGRADE_MONKEYS 1
-#define XENOBIO_UPGRADE_SLIMEBASIC 2
+#define XENOBIO_UPGRADE_SLIMEBASIC 2
#define XENOBIO_UPGRADE_SLIMEADV 4
//stamina stuff
-#define STAMINA_SOFTCRIT 100 //softcrit for stamina damage. prevents standing up, prevents performing actions that cost stamina, etc, but doesn't force a rest or stop movement
-#define STAMINA_CRIT 140 //crit for stamina damage. forces a rest, and stops movement until stamina goes back to stamina softcrit
-#define STAMINA_SOFTCRIT_TRADITIONAL 0 //same as STAMINA_SOFTCRIT except for the more traditional health calculations
+#define STAMINA_SOFTCRIT 100 //softcrit for stamina damage. prevents standing up, prevents performing actions that cost stamina, etc, but doesn't force a rest or stop movement
+#define STAMINA_CRIT 140 //crit for stamina damage. forces a rest, and stops movement until stamina goes back to stamina softcrit
+#define STAMINA_SOFTCRIT_TRADITIONAL 0 //same as STAMINA_SOFTCRIT except for the more traditional health calculations
#define STAMINA_CRIT_TRADITIONAL -40 //ditto, but for STAMINA_CRIT
-#define MIN_MELEE_STAMCOST 1.25 //Minimum cost for swinging items around. Will be extra useful when stats and skills are introduced.
#define CRAWLUNDER_DELAY 30 //Delay for crawling under a standing mob
//Citadel toggles because bitflag memes
-#define MEDIHOUND_SLEEPER 1
-#define EATING_NOISES 2
-#define DIGESTION_NOISES 4
+#define MEDIHOUND_SLEEPER (1<<0)
+#define EATING_NOISES (1<<1)
+#define DIGESTION_NOISES (1<<2)
#define TOGGLES_CITADEL (EATING_NOISES|DIGESTION_NOISES)
diff --git a/code/__DEFINES/colors.dm b/code/__DEFINES/colors.dm
index de9c7af221..06c3c352ca 100644
--- a/code/__DEFINES/colors.dm
+++ b/code/__DEFINES/colors.dm
@@ -3,26 +3,35 @@
#define COLOR_INPUT_DISABLED "#F0F0F0"
#define COLOR_INPUT_ENABLED "#D3B5B5"
-//#define COLOR_WHITE "#EEEEEE"
-//#define COLOR_SILVER "#C0C0C0"
-//#define COLOR_GRAY "#808080"
+#define COLOR_DARKMODE_INFO_BUTTONS_BG "#40628A"
+#define COLOR_DARKMODE_ISSUE_BUTTON_BG "#ce4242"
+#define COLOR_DARKMODE_BACKGROUND "#202020"
+#define COLOR_DARKMODE_DARKBACKGROUND "#171717"
+#define COLOR_DARKMODE_TEXT "#f0f0f0"
+
+#define COLOR_WHITEMODE_INFO_BUTTONS_BG "#90b3dd"
+#define COLOR_WHITEMODE_ISSUE_BUTTON_BG "#ef7f7f"
+#define COLOR_WHITEMODE_BACKGROUND "#ffffff"
+#define COLOR_WHITEMODE_DARKBACKGROUND "#eeeeee"
+#define COLOR_WHITEMODE_TEXT "#000000"
+
#define COLOR_FLOORTILE_GRAY "#8D8B8B"
#define COLOR_ALMOST_BLACK "#333333"
-//#define COLOR_BLACK "#000000"
+#define COLOR_BLACK "#000000"
#define COLOR_RED "#FF0000"
-//#define COLOR_RED_LIGHT "#FF3333"
-//#define COLOR_MAROON "#800000"
+#define COLOR_RED_LIGHT "#FF3333"
+#define COLOR_MAROON "#800000"
#define COLOR_YELLOW "#FFFF00"
-//#define COLOR_OLIVE "#808000"
-//#define COLOR_LIME "#32CD32"
+#define COLOR_OLIVE "#808000"
+#define COLOR_LIME "#32CD32"
#define COLOR_GREEN "#008000"
#define COLOR_CYAN "#00FFFF"
-//#define COLOR_TEAL "#008080"
+#define COLOR_TEAL "#008080"
#define COLOR_BLUE "#0000FF"
-//#define COLOR_BLUE_LIGHT "#33CCFF"
-//#define COLOR_NAVY "#000080"
+#define COLOR_BLUE_LIGHT "#33CCFF"
+#define COLOR_NAVY "#000080"
#define COLOR_PINK "#FFC0CB"
-//#define COLOR_MAGENTA "#FF00FF"
+#define COLOR_MAGENTA "#FF00FF"
#define COLOR_PURPLE "#800080"
#define COLOR_ORANGE "#FF9900"
#define COLOR_BEIGE "#CEB689"
diff --git a/code/__DEFINES/combat.dm b/code/__DEFINES/combat.dm
index 7cab82149d..e31d2a278e 100644
--- a/code/__DEFINES/combat.dm
+++ b/code/__DEFINES/combat.dm
@@ -183,4 +183,16 @@ GLOBAL_LIST_INIT(shove_disarming_types, typecacheof(list(
#define BODY_ZONE_PRECISE_R_FOOT "r_foot"
//We will round to this value in damage calculations.
-#define DAMAGE_PRECISION 0.1
\ No newline at end of file
+#define DAMAGE_PRECISION 0.1
+
+//items total mass, used to calculate their attacks' stamina costs. If not defined, the cost will be (w_class * 1.25)
+#define TOTAL_MASS_TINY_ITEM 1.25
+#define TOTAL_MASS_SMALL_ITEM 2.5
+#define TOTAL_MASS_NORMAL_ITEM 3.75
+#define TOTAL_MASS_BULKY_ITEM 5
+#define TOTAL_MASS_HUGE_ITEM 6.25
+#define TOTAL_MASS_GIGANTIC_ITEM 7.5
+
+#define TOTAL_MASS_HAND_REPLACEMENT 5 //standard punching stamina cost. most hand replacements are huge items anyway.
+#define TOTAL_MASS_MEDIEVAL_WEAPON 3.6 //very, very generic average sword/warpick/etc. weight in pounds.
+#define TOTAL_MASS_TOY_SWORD 1.5
diff --git a/code/__DEFINES/components.dm b/code/__DEFINES/components.dm
index 8d86826ac2..40aea24105 100644
--- a/code/__DEFINES/components.dm
+++ b/code/__DEFINES/components.dm
@@ -24,7 +24,7 @@
// start global signals with "!", this used to be necessary but now it's just a formatting choice
#define COMSIG_GLOB_NEW_Z "!new_z" //from base of datum/controller/subsystem/mapping/proc/add_new_zlevel(): (list/args)
#define COMSIG_GLOB_VAR_EDIT "!var_edit" //called after a successful var edit somewhere in the world: (list/args)
-
+#define COMSIG_GLOB_LIVING_SAY_SPECIAL "!say_special" //global living say plug - use sparingly: (mob/speaker , message)
//////////////////////////////////////////////////////////////////
// /datum signals
@@ -73,6 +73,8 @@
#define COMSIG_ATOM_CANREACH "atom_can_reach" //from internal loop in atom/movable/proc/CanReach(): (list/next)
#define COMPONENT_BLOCK_REACH 1
#define COMSIG_ATOM_SCREWDRIVER_ACT "atom_screwdriver_act" //from base of atom/screwdriver_act(): (mob/living/user, obj/item/I)
+#define COMSIG_ATOM_INTERCEPT_TELEPORT "intercept_teleport" //called when teleporting into a protected turf: (channel, turf/origin)
+ #define COMPONENT_BLOCK_TELEPORT 1
/////////////////
#define COMSIG_ATOM_ATTACK_GHOST "atom_attack_ghost" //from base of atom/attack_ghost(): (mob/dead/observer/ghost)
#define COMSIG_ATOM_ATTACK_HAND "atom_attack_hand" //from base of atom/attack_hand(): (mob/user)
@@ -157,6 +159,7 @@
#define COMSIG_OBJ_BREAK "obj_break" //from base of /obj/obj_break(): (damage_flag)
#define COMSIG_OBJ_SETANCHORED "obj_setanchored" //called in /obj/structure/setAnchored(): (value)
+
// /obj/item signals
#define COMSIG_ITEM_ATTACK "item_attack" //from base of obj/item/attack(): (/mob/living/target, /mob/living/user)
#define COMSIG_ITEM_ATTACK_SELF "item_attack_self" //from base of obj/item/attack_self(): (/mob)
diff --git a/code/__DEFINES/construction.dm b/code/__DEFINES/construction.dm
index ee51fb6909..c394d003d8 100644
--- a/code/__DEFINES/construction.dm
+++ b/code/__DEFINES/construction.dm
@@ -109,3 +109,5 @@
#define RCD_AIRLOCK 2
#define RCD_DECONSTRUCT 3
#define RCD_WINDOWGRILLE 4
+#define RCD_MACHINE 8
+#define RCD_COMPUTER 16
\ No newline at end of file
diff --git a/code/__DEFINES/donator_groupings.dm b/code/__DEFINES/donator_groupings.dm
new file mode 100644
index 0000000000..4b210609f2
--- /dev/null
+++ b/code/__DEFINES/donator_groupings.dm
@@ -0,0 +1,18 @@
+#define DONATOR_GROUP_TIER_1_CONFIG_PATH /datum/config_entry/keyed_list/donator_group/tier_1_donators
+#define DONATOR_GROUP_TIER_2_CONFIG_PATH /datum/config_entry/keyed_list/donator_group/tier_2_donators
+#define DONATOR_GROUP_TIER_3_CONFIG_PATH /datum/config_entry/keyed_list/donator_group/tier_3_donators
+
+#define DONATOR_GROUP_TIER_1_CONFIG_SUBPATH keyed_list/donator_group/tier_1_donators
+#define DONATOR_GROUP_TIER_2_CONFIG_SUBPATH keyed_list/donator_group/tier_2_donators
+#define DONATOR_GROUP_TIER_3_CONFIG_SUBPATH keyed_list/donator_group/tier_3_donators
+
+#define TIER_1_DONATORS CONFIG_GET(DONATOR_GROUP_TIER_1_CONFIG_SUBPATH)
+#define TIER_2_DONATORS CONFIG_GET(DONATOR_GROUP_TIER_2_CONFIG_SUBPATH)
+#define TIER_3_DONATORS CONFIG_GET(DONATOR_GROUP_TIER_3_CONFIG_SUBPATH)
+
+//flags
+#define DONATOR_GROUP_TIER_1 "T1"
+#define DONATOR_GROUP_TIER_2 "T2"
+#define DONATOR_GROUP_TIER_3 "T3"
+
+#define IS_CKEY_DONATOR_GROUP(ckey, groupid) is_donator_group(ckey, groupid)
diff --git a/code/__DEFINES/flags.dm b/code/__DEFINES/flags.dm
index 2fe70961f8..d64fa30047 100644
--- a/code/__DEFINES/flags.dm
+++ b/code/__DEFINES/flags.dm
@@ -7,7 +7,7 @@
//for convenience
#define ENABLE_BITFIELD(variable, flag) (variable |= (flag))
#define DISABLE_BITFIELD(variable, flag) (variable &= ~(flag))
-#define CHECK_BITFIELD(variable, flag) (variable & flag)
+#define CHECK_BITFIELD(variable, flag) (variable & (flag))
#define TOGGLE_BITFIELD(variable, flag) (variable ^= (flag))
GLOBAL_LIST_INIT(bitflags, list(1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384, 32768))
diff --git a/code/__DEFINES/inventory.dm b/code/__DEFINES/inventory.dm
index 03cfde802f..24d381d1a8 100644
--- a/code/__DEFINES/inventory.dm
+++ b/code/__DEFINES/inventory.dm
@@ -28,6 +28,7 @@
#define ITEM_SLOT_POCKET (1<<11) // this is to allow items with a w_class of WEIGHT_CLASS_NORMAL or WEIGHT_CLASS_BULKY to fit in pockets.
#define ITEM_SLOT_DENYPOCKET (1<<12) // this is to deny items with a w_class of WEIGHT_CLASS_SMALL or WEIGHT_CLASS_TINY to fit in pockets.
#define ITEM_SLOT_NECK (1<<13)
+#define ITEM_SLOT_SUITSTORE (1<<14)
//SLOTS
#define SLOT_BACK 1
@@ -52,6 +53,7 @@
#define SLOT_LEGCUFFED 19
#define SLOT_GENERC_DEXTROUS_STORAGE 20
+
#define SLOTS_AMT 20 // Keep this up to date!
//I hate that this has to exist
@@ -84,6 +86,8 @@
. = ITEM_SLOT_ICLOTHING
if(SLOT_L_STORE, SLOT_R_STORE)
. = ITEM_SLOT_POCKET
+ if(SLOT_S_STORE)
+ . = ITEM_SLOT_SUITSTORE
//Bit flags for the flags_inv variable, which determine when a piece of clothing hides another. IE a helmet hiding glasses.
@@ -230,3 +234,6 @@ GLOBAL_LIST_INIT(security_wintercoat_allowed, typecacheof(list(
/obj/item/tank/internals/emergency_oxygen,
/obj/item/tank/internals/plasmaman,
/obj/item/toy)))
+
+//Internals checker
+#define GET_INTERNAL_SLOTS(C) list(C.head, C.wear_mask)
diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm
index 8ff40c3ef9..8dc7464230 100644
--- a/code/__DEFINES/is_helpers.dm
+++ b/code/__DEFINES/is_helpers.dm
@@ -50,13 +50,13 @@
#define isgolem(A) (is_species(A, /datum/species/golem))
#define islizard(A) (is_species(A, /datum/species/lizard))
#define isplasmaman(A) (is_species(A, /datum/species/plasmaman))
-#define ispodperson(A) (is_species(A, /datum/species/podperson))
+#define ispodperson(A) (is_species(A, /datum/species/pod))
#define isflyperson(A) (is_species(A, /datum/species/fly))
#define isjellyperson(A) (is_species(A, /datum/species/jelly))
#define isslimeperson(A) (is_species(A, /datum/species/jelly/slime))
#define isluminescent(A) (is_species(A, /datum/species/jelly/luminescent))
#define iszombie(A) (is_species(A, /datum/species/zombie))
-#define ismoth(A) (is_species(A, /datum/species/moth))
+#define ismoth(A) (is_species(A, /datum/species/insect))
#define ishumanbasic(A) (is_species(A, /datum/species/human))
#define iscatperson(A) (ishumanbasic(A) && istype(A.dna.species, /datum/species/human/felinid) )
diff --git a/code/__DEFINES/jobs.dm b/code/__DEFINES/jobs.dm
index dc4080a789..e6eb9f313e 100644
--- a/code/__DEFINES/jobs.dm
+++ b/code/__DEFINES/jobs.dm
@@ -48,3 +48,41 @@
#define JOB_UNAVAILABLE_PLAYTIME 3
#define JOB_UNAVAILABLE_ACCOUNTAGE 4
#define JOB_UNAVAILABLE_SLOTFULL 5
+
+#define DEFAULT_RELIGION "Christianity"
+#define DEFAULT_DEITY "Space Jesus"
+
+#define JOB_DISPLAY_ORDER_DEFAULT 0
+
+#define JOB_DISPLAY_ORDER_ASSISTANT 1
+#define JOB_DISPLAY_ORDER_CAPTAIN 2
+#define JOB_DISPLAY_ORDER_HEAD_OF_PERSONNEL 3
+#define JOB_DISPLAY_ORDER_BARTENDER 4
+#define JOB_DISPLAY_ORDER_COOK 5
+#define JOB_DISPLAY_ORDER_BOTANIST 6
+#define JOB_DISPLAY_ORDER_JANITOR 7
+#define JOB_DISPLAY_ORDER_CLOWN 8
+#define JOB_DISPLAY_ORDER_MIME 9
+#define JOB_DISPLAY_ORDER_CURATOR 10
+#define JOB_DISPLAY_ORDER_LAWYER 11
+#define JOB_DISPLAY_ORDER_CHAPLAIN 12
+#define JOB_DISPLAY_ORDER_QUARTERMASTER 13
+#define JOB_DISPLAY_ORDER_CARGO_TECHNICIAN 14
+#define JOB_DISPLAY_ORDER_SHAFT_MINER 15
+#define JOB_DISPLAY_ORDER_CHIEF_ENGINEER 16
+#define JOB_DISPLAY_ORDER_STATION_ENGINEER 17
+#define JOB_DISPLAY_ORDER_ATMOSPHERIC_TECHNICIAN 18
+#define JOB_DISPLAY_ORDER_CHIEF_MEDICAL_OFFICER 19
+#define JOB_DISPLAY_ORDER_MEDICAL_DOCTOR 20
+#define JOB_DISPLAY_ORDER_CHEMIST 21
+#define JOB_DISPLAY_ORDER_GENETICIST 22
+#define JOB_DISPLAY_ORDER_VIROLOGIST 23
+#define JOB_DISPLAY_ORDER_RESEARCH_DIRECTOR 24
+#define JOB_DISPLAY_ORDER_SCIENTIST 25
+#define JOB_DISPLAY_ORDER_ROBOTICIST 26
+#define JOB_DISPLAY_ORDER_HEAD_OF_SECURITY 27
+#define JOB_DISPLAY_ORDER_WARDEN 28
+#define JOB_DISPLAY_ORDER_DETECTIVE 29
+#define JOB_DISPLAY_ORDER_SECURITY_OFFICER 30
+#define JOB_DISPLAY_ORDER_AI 31
+#define JOB_DISPLAY_ORDER_CYBORG 32
diff --git a/code/__DEFINES/logging.dm b/code/__DEFINES/logging.dm
index 8234059a36..2ba5012301 100644
--- a/code/__DEFINES/logging.dm
+++ b/code/__DEFINES/logging.dm
@@ -16,6 +16,7 @@
#define INVESTIGATE_EXONET "exonet"
#define INVESTIGATE_NANITES "nanites"
#define INVESTIGATE_CIRCUIT "circuit"
+#define INVESTIGATE_FERMICHEM "fermichem"
#define INVESTIGATE_RCD "rcd"
// Logging types for log_message()
diff --git a/code/__DEFINES/maths.dm b/code/__DEFINES/maths.dm
index d344f7f010..5bce51293f 100644
--- a/code/__DEFINES/maths.dm
+++ b/code/__DEFINES/maths.dm
@@ -201,4 +201,10 @@
return list(region_x1 & region_x2, region_y1 & region_y2)
+#define EXP_DISTRIBUTION(desired_mean) ( -(1/(1/desired_mean)) * log(rand(1, 1000) * 0.001) )
+
+#define LORENTZ_DISTRIBUTION(x, s) ( s*TAN(TODEGREES(PI*(rand()-0.5))) + x )
+#define LORENTZ_CUMULATIVE_DISTRIBUTION(x, y, s) ( (1/PI)*TORADIANS(arctan((x-y)/s)) + 1/2 )
+
+#define RULE_OF_THREE(a, b, x) ((a*x)/b)
// )
diff --git a/code/__DEFINES/melee.dm b/code/__DEFINES/melee.dm
new file mode 100644
index 0000000000..cb4a433211
--- /dev/null
+++ b/code/__DEFINES/melee.dm
@@ -0,0 +1,10 @@
+//Martial arts defines
+
+#define MARTIALART_BOXING "boxing"
+#define MARTIALART_WRESTLING "wrestling"
+#define MARTIALART_SLEEPINGCARP "sleeping carp"
+#define MARTIALART_PSYCHOBRAWL "psychotic brawling"
+#define MARTIALART_MUSHPUNCH "mushroom punch"
+#define MARTIALART_KRAVMAGA "krav maga"
+#define MARTIALART_CQC "CQC"
+#define MARTIALART_PLASMAFIST "plasma fist"
\ No newline at end of file
diff --git a/code/__DEFINES/misc.dm b/code/__DEFINES/misc.dm
index fc8e7dda2f..b6115e93e9 100644
--- a/code/__DEFINES/misc.dm
+++ b/code/__DEFINES/misc.dm
@@ -57,7 +57,7 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s
#define BODYPARTS_LAYER 28 //Initially "AUGMENTS", this was repurposed to be a catch-all bodyparts flag
#define MARKING_LAYER 27 //Matrixed body markings because clashing with snouts?
#define BODY_ADJ_LAYER 26 //certain mutantrace features (snout, body markings) that must appear above the body parts
-#define GENITALS_ADJ_LAYER 25
+#define GENITALS_FRONT_LAYER 25 //Draws some genitalia above clothes and the TAUR body if need be.
#define BODY_LAYER 24 //underwear, undershirts, socks, eyes, lips(makeup)
#define FRONT_MUTATIONS_LAYER 23 //mutations that should appear above body, body_adj and bodyparts layer (e.g. laser eyes)
#define DAMAGE_LAYER 22 //damage indicators (cuts and burns)
@@ -69,7 +69,6 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s
#define EARS_LAYER 17
#define BODY_TAUR_LAYER 16
#define SUIT_LAYER 15
-#define GENITALS_FRONT_LAYER 14 //Draws some genitalia above clothes and the TAUR body if need be.
#define GLASSES_LAYER 13
#define BELT_LAYER 12 //Possible make this an overlay of somethign required to wear a belt?
#define SUIT_STORE_LAYER 11
@@ -83,7 +82,7 @@ Will print: "/mob/living/carbon/human/death" (you can optionally embed it in a s
#define HANDS_LAYER 3
#define BODY_FRONT_LAYER 2
#define FIRE_LAYER 1 //If you're on fire
-#define TOTAL_LAYERS 31 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_;
+#define TOTAL_LAYERS 30 //KEEP THIS UP-TO-DATE OR SHIT WILL BREAK ;_;
//Human Overlay Index Shortcuts for alternate_worn_layer, layers
//Because I *KNOW* somebody will think layer+1 means "above"
@@ -275,10 +274,6 @@ GLOBAL_LIST_INIT(pda_styles, list(MONO, VT, ORBITRON, SHARE))
GLOBAL_LIST_INIT(pda_reskins, list(PDA_SKIN_CLASSIC = 'icons/obj/pda.dmi', PDA_SKIN_ALT = 'icons/obj/pda_alt.dmi',
PDA_SKIN_RUGGED = 'icons/obj/pda_rugged.dmi', PDA_SKIN_MODERN = 'icons/obj/pda_modern.dmi'))
-//Color Defines
-#define OOC_COLOR "#002eb8"
-#define AOOC_COLOR "#b8002e"
-
/////////////////////////////////////
// atom.appearence_flags shortcuts //
/////////////////////////////////////
@@ -382,6 +377,7 @@ GLOBAL_LIST_INIT(pda_reskins, list(PDA_SKIN_CLASSIC = 'icons/obj/pda.dmi', PDA_S
#define CLOCK_SILICONS 22
#define CLOCK_PROSELYTIZATION 23
#define SHUTTLE_HIJACK 24
+#define GANG_VICTORY 25
#define FIELD_TURF 1
#define FIELD_EDGE 2
@@ -458,6 +454,13 @@ GLOBAL_LIST_INIT(pda_reskins, list(PDA_SKIN_CLASSIC = 'icons/obj/pda.dmi', PDA_S
#define SUMMON_GUNS "guns"
#define SUMMON_MAGIC "magic"
+#define TELEPORT_CHANNEL_BLUESPACE "bluespace" //Classic bluespace teleportation, requires a sender but no receiver
+#define TELEPORT_CHANNEL_QUANTUM "quantum" //Quantum-based teleportation, requires both sender and receiver, but is free from normal disruption
+#define TELEPORT_CHANNEL_WORMHOLE "wormhole" //Wormhole teleportation, is not disrupted by bluespace fluctuations but tends to be very random or unsafe
+#define TELEPORT_CHANNEL_MAGIC "magic" //Magic teleportation, does whatever it wants (unless there's antimagic)
+#define TELEPORT_CHANNEL_CULT "cult" //Cult teleportation, does whatever it wants (unless there's holiness)
+#define TELEPORT_CHANNEL_FREE "free" //Anything else
+
//Run the world with this parameter to enable a single run though of the game setup and tear down process with unit tests in between
#define TEST_RUN_PARAMETER "test-run"
//Force the log directory to be something specific in the data/logs folder
@@ -469,6 +472,9 @@ GLOBAL_LIST_INIT(pda_reskins, list(PDA_SKIN_CLASSIC = 'icons/obj/pda.dmi', PDA_S
#define EGG_LAYING_MESSAGES list("lays an egg.","squats down and croons.","begins making a huge racket.","begins clucking raucously.")
+// list of all null rod weapons
+#define HOLY_WEAPONS /obj/item/nullrod, /obj/item/twohanded/dualsaber/hypereutactic/chaplain, /obj/item/gun/energy/laser/redtag/hitscan/chaplain, /obj/item/multitool/chaplain, /obj/item/melee/baseball_bat/chaplain
+
// Used by PDA and cartridge code to reduce repetitiveness of spritesheets
#define PDAIMG(what) {""}
@@ -492,4 +498,4 @@ GLOBAL_LIST_INIT(pda_reskins, list(PDA_SKIN_CLASSIC = 'icons/obj/pda.dmi', PDA_S
#define PREF_SAVELOAD_COOLDOWN 5
#define VOMIT_TOXIC 1
-#define VOMIT_PURPLE 2
\ No newline at end of file
+#define VOMIT_PURPLE 2
diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm
index 1d1dda6d99..6143047275 100644
--- a/code/__DEFINES/mobs.dm
+++ b/code/__DEFINES/mobs.dm
@@ -116,6 +116,8 @@
#define BIOWARE_GENERIC "generic"
#define BIOWARE_NERVES "nerves"
#define BIOWARE_CIRCULATION "circulation"
+#define BIOWARE_LIGAMENTS "ligaments"
+#define BIOWARE_DISSECTION "dissected"
//Health hud screws for carbon mobs
#define SCREWYHUD_NONE 0
diff --git a/code/__DEFINES/movespeed_modification.dm b/code/__DEFINES/movespeed_modification.dm
index 9f8d310193..c0aac36415 100644
--- a/code/__DEFINES/movespeed_modification.dm
+++ b/code/__DEFINES/movespeed_modification.dm
@@ -28,4 +28,6 @@
#define MOVESPEED_ID_SIMPLEMOB_VARSPEED "SIMPLEMOB_VARSPEED_MODIFIER"
#define MOVESPEED_ID_ADMIN_VAREDIT "ADMIN_VAREDIT_MODIFIER"
-#define MOVESPEED_ID_PAI_SPACEWALK_SPEEDMOD "PAI_SPACEWALK_MODIFIER"
\ No newline at end of file
+#define MOVESPEED_ID_PAI_SPACEWALK_SPEEDMOD "PAI_SPACEWALK_MODIFIER"
+
+#define MOVESPEED_ID_SANITY "MOOD_SANITY"
diff --git a/code/__DEFINES/obj_flags.dm b/code/__DEFINES/obj_flags.dm
index 8566571928..01d95d7ff9 100644
--- a/code/__DEFINES/obj_flags.dm
+++ b/code/__DEFINES/obj_flags.dm
@@ -20,21 +20,21 @@
#define FORCE_STRING_OVERRIDE (1<<2) // used for tooltips
#define NEEDS_PERMIT (1<<3) //Used by security bots to determine if this item is safe for public use.
#define SLOWS_WHILE_IN_HAND (1<<4)
-#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 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 NODROP (1<<8) // This flag makes it so that an item literally cannot be removed at all, or at least that's how it should be. Only deleted.
-#define ABSTRACT (1<<9) // for all things that are technically items but used for various different stuff
-#define IMMUTABLE_SLOW (1<<10) //When players should not be able to change the slowdown of the item (Speed potions, ect)
-#define SURGICAL_TOOL (1<<12) //Tool commonly used for surgery: won't attack targets in an active surgical operation on help intent (in case of mistakes)
+#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.
// 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 MASKINTERNALS (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.
\ No newline at end of file
+#define VOICEBOX_DISABLED (1<<7) // The voicebox is currently turned off.
diff --git a/code/__DEFINES/preferences.dm b/code/__DEFINES/preferences.dm
index 02f151dcd9..0992b2e586 100644
--- a/code/__DEFINES/preferences.dm
+++ b/code/__DEFINES/preferences.dm
@@ -69,4 +69,9 @@
//Flags in the players table in the db
#define DB_FLAG_EXEMPT 1
-#define DEFAULT_CYBORG_NAME "Default Cyborg Name"
\ No newline at end of file
+#define DEFAULT_CYBORG_NAME "Default Cyborg Name"
+
+//Job preferences levels
+#define JP_LOW 1
+#define JP_MEDIUM 2
+#define JP_HIGH 3
diff --git a/code/__DEFINES/radio.dm b/code/__DEFINES/radio.dm
index 897d107939..928f364a81 100644
--- a/code/__DEFINES/radio.dm
+++ b/code/__DEFINES/radio.dm
@@ -1,5 +1,55 @@
// Radios use a large variety of predefined frequencies.
+//say based modes like binary are in living/say.dm
+
+#define RADIO_CHANNEL_COMMON "Common"
+#define RADIO_KEY_COMMON ";"
+
+#define RADIO_CHANNEL_SECURITY "Security"
+#define RADIO_KEY_SECURITY "s"
+#define RADIO_TOKEN_SECURITY ":s"
+
+#define RADIO_CHANNEL_ENGINEERING "Engineering"
+#define RADIO_KEY_ENGINEERING "e"
+#define RADIO_TOKEN_ENGINEERING ":e"
+
+#define RADIO_CHANNEL_COMMAND "Command"
+#define RADIO_KEY_COMMAND "c"
+#define RADIO_TOKEN_COMMAND ":c"
+
+#define RADIO_CHANNEL_SCIENCE "Science"
+#define RADIO_KEY_SCIENCE "n"
+#define RADIO_TOKEN_SCIENCE ":n"
+
+#define RADIO_CHANNEL_MEDICAL "Medical"
+#define RADIO_KEY_MEDICAL "m"
+#define RADIO_TOKEN_MEDICAL ":m"
+
+#define RADIO_CHANNEL_SUPPLY "Supply"
+#define RADIO_KEY_SUPPLY "u"
+#define RADIO_TOKEN_SUPPLY ":u"
+
+#define RADIO_CHANNEL_SERVICE "Service"
+#define RADIO_KEY_SERVICE "v"
+#define RADIO_TOKEN_SERVICE ":v"
+
+#define RADIO_CHANNEL_AI_PRIVATE "AI Private"
+#define RADIO_KEY_AI_PRIVATE "o"
+#define RADIO_TOKEN_AI_PRIVATE ":o"
+
+
+#define RADIO_CHANNEL_SYNDICATE "Syndicate"
+#define RADIO_KEY_SYNDICATE "t"
+#define RADIO_TOKEN_SYNDICATE ":t"
+
+#define RADIO_CHANNEL_CENTCOM "CentCom"
+#define RADIO_KEY_CENTCOM "y"
+#define RADIO_TOKEN_CENTCOM ":y"
+
+#define RADIO_CHANNEL_CTF_RED "Red Team"
+#define RADIO_CHANNEL_CTF_BLUE "Blue Team"
+
+
#define MIN_FREE_FREQ 1201 // -------------------------------------------------
// Frequencies are always odd numbers and range from 1201 to 1599.
diff --git a/code/__DEFINES/reactions.dm b/code/__DEFINES/reactions.dm
index 2688b479b5..9579571174 100644
--- a/code/__DEFINES/reactions.dm
+++ b/code/__DEFINES/reactions.dm
@@ -25,7 +25,8 @@
#define NOBLIUM_FORMATION_ENERGY 2e9 //1 Mole of Noblium takes the planck energy to condense.
//Research point amounts
#define NOBLIUM_RESEARCH_AMOUNT 1000
-#define BZ_RESEARCH_AMOUNT 150
+#define BZ_RESEARCH_SCALE 4
+#define BZ_RESEARCH_MAX_AMOUNT 400
#define MIASMA_RESEARCH_AMOUNT 160
#define STIMULUM_RESEARCH_AMOUNT 50
//Plasma fusion properties
diff --git a/code/__DEFINES/reagents.dm b/code/__DEFINES/reagents.dm
index c3682d905d..174289d3bb 100644
--- a/code/__DEFINES/reagents.dm
+++ b/code/__DEFINES/reagents.dm
@@ -2,7 +2,13 @@
#define LIQUID 2
#define GAS 3
-// reagents_flags defines
+//reagents reaction var defines
+#define REAGENT_NORMAL_PH 7.000
+#define REAGENT_PH_ACCURACY 0.001
+#define REAGENT_PURITY_ACCURACY 0.001
+#define DEFAULT_SPECIFIC_HEAT 200
+
+// container_type defines
#define INJECTABLE (1<<0) // Makes it possible to add reagents through droppers and syringes.
#define DRAWABLE (1<<1) // Makes it possible to remove reagents through syringes.
diff --git a/code/__DEFINES/say.dm b/code/__DEFINES/say.dm
index 82fbfdb848..e655408db1 100644
--- a/code/__DEFINES/say.dm
+++ b/code/__DEFINES/say.dm
@@ -6,17 +6,43 @@
//Message modes. Each one defines a radio channel, more or less.
#define MODE_HEADSET "headset"
#define MODE_ROBOT "robot"
+
#define MODE_R_HAND "right hand"
+#define MODE_KEY_R_HAND "r"
+
#define MODE_L_HAND "left hand"
+#define MODE_KEY_L_HAND "l"
+
#define MODE_INTERCOM "intercom"
+#define MODE_KEY_INTERCOM "i"
+
#define MODE_BINARY "binary"
+#define MODE_KEY_BINARY "b"
+#define MODE_TOKEN_BINARY ":b"
+
#define MODE_WHISPER "whisper"
#define MODE_WHISPER_CRIT "whispercrit"
+
#define MODE_DEPARTMENT "department"
+#define MODE_KEY_DEPARTMENT "h"
+#define MODE_TOKEN_DEPARTMENT ":h"
+
+#define MODE_ADMIN "admin"
+#define MODE_KEY_ADMIN "p"
+
+#define MODE_DEADMIN "deadmin"
+#define MODE_KEY_DEADMIN "d"
+
#define MODE_ALIEN "alientalk"
#define MODE_HOLOPAD "holopad"
+
#define MODE_CHANGELING "changeling"
+#define MODE_KEY_CHANGELING "g"
+#define MODE_TOKEN_CHANGELING ":g"
+
#define MODE_VOCALCORDS "cords"
+#define MODE_KEY_VOCALCORDS "x"
+
#define MODE_MONKEY "monkeyhive"
//Spans. Robot speech, italics, etc. Applied in compose_message().
diff --git a/code/__DEFINES/status_effects.dm b/code/__DEFINES/status_effects.dm
index ffaaa04d0f..3cd64af8c7 100644
--- a/code/__DEFINES/status_effects.dm
+++ b/code/__DEFINES/status_effects.dm
@@ -44,6 +44,8 @@
#define STATUS_EFFECT_SLEEPING /datum/status_effect/incapacitating/sleeping //the affected is asleep
+#define STATUS_EFFECT_PACIFY /datum/status_effect/pacify //the affected is pacified, preventing direct hostile actions
+
#define STATUS_EFFECT_BELLIGERENT /datum/status_effect/belligerent //forces the affected to walk, doing damage if they try to run
#define STATUS_EFFECT_GEISTRACKER /datum/status_effect/geis_tracker //if you're using geis, this tracks that and keeps you from using scripture
diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm
index 19d0540e0e..3394fba90c 100644
--- a/code/__DEFINES/subsystems.dm
+++ b/code/__DEFINES/subsystems.dm
@@ -93,6 +93,7 @@
#define FIRE_PRIORITY_SERVER_MAINT 10
#define FIRE_PRIORITY_RESEARCH 10
#define FIRE_PRIORITY_VIS 10
+#define FIRE_PRIORITY_VORE 10
#define FIRE_PRIORITY_GARBAGE 15
#define FIRE_PRIORITY_WET_FLOORS 20
#define FIRE_PRIORITY_AIR 20
diff --git a/code/__DEFINES/time.dm b/code/__DEFINES/time.dm
index c5d6f3051e..f13f13510b 100644
--- a/code/__DEFINES/time.dm
+++ b/code/__DEFINES/time.dm
@@ -31,4 +31,4 @@ When using time2text(), please use "DDD" to find the weekday. Refrain from using
#define WORLDTIMEOFDAY2TEXT(format) GAMETIMESTAMP(format, world.timeofday)
#define TIME_STAMP(format, showds) showds ? "[WORLDTIMEOFDAY2TEXT(format)]:[world.timeofday % 10]" : WORLDTIMEOFDAY2TEXT(format)
#define STATION_TIME(display_only) ((((world.time - SSticker.round_start_time) * SSticker.station_time_rate_multiplier) + SSticker.gametime_offset) % 864000) - (display_only? GLOB.timezoneOffset : 0)
-#define STATION_TIME_TIMESTAMP(format) time2text(STATION_TIME(TRUE), format)
\ No newline at end of file
+#define STATION_TIME_TIMESTAMP(format) time2text(STATION_TIME(TRUE), format)
diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm
index 99eb892fc8..e198041c6e 100644
--- a/code/__DEFINES/traits.dm
+++ b/code/__DEFINES/traits.dm
@@ -95,6 +95,8 @@
#define TRAIT_NOHUNGER "no_hunger"
#define TRAIT_EASYDISMEMBER "easy_dismember"
#define TRAIT_LIMBATTACHMENT "limb_attach"
+#define TRAIT_NOLIMBDISABLE "no_limb_disable"
+#define TRAIT_EASYLIMBDISABLE "easy_limb_disable"
#define TRAIT_TOXINLOVER "toxinlover"
#define TRAIT_NOBREATH "no_breath"
#define TRAIT_ANTIMAGIC "anti_magic"
@@ -108,6 +110,8 @@
#define TRAIT_NOHARDCRIT "nohardcrit"
#define TRAIT_NOSOFTCRIT "nosoftcrit"
#define TRAIT_MINDSHIELD "mindshield"
+#define TRAIT_FEARLESS "fearless"
+#define TRAIT_UNSTABLE "unstable"
#define TRAIT_PARALYSIS_L_ARM "para-l-arm" //These are used for brain-based paralysis, where replacing the limb won't fix it
#define TRAIT_PARALYSIS_R_ARM "para-r-arm"
#define TRAIT_PARALYSIS_L_LEG "para-l-leg"
@@ -116,15 +120,20 @@
#define TRAIT_LAW_ENFORCEMENT_METABOLISM "law-enforcement-metabolism"
#define TRAIT_STRONG_GRABBER "strong_grabber"
#define TRAIT_CALCIUM_HEALER "calcium_healer"
+#define TRAIT_CAPTAIN_METABOLISM "captain-metabolism"
//non-mob traits
#define TRAIT_PARALYSIS "paralysis" //Used for limb-based paralysis, where replacing the limb will fix it
+// item traits
+#define TRAIT_NODROP "nodrop"
+
#define TRAIT_ALCOHOL_TOLERANCE "alcohol_tolerance"
#define TRAIT_AGEUSIA "ageusia"
#define TRAIT_HEAVY_SLEEPER "heavy_sleeper"
#define TRAIT_NIGHT_VISION "night_vision"
#define TRAIT_LIGHT_STEP "light_step"
+#define TRAIT_SILENT_STEP "silent_step"
#define TRAIT_SPEEDY_STEP "speedy_step"
#define TRAIT_SPIRITUAL "spiritual"
#define TRAIT_VORACIOUS "voracious"
@@ -140,12 +149,15 @@
#define TRAIT_CROCRIN_IMMUNE "crocin_immune"
#define TRAIT_NYMPHO "nymphomania"
#define TRAIT_MASO "masochism"
+#define TRAIT_HIGH_BLOOD "high_blood"
+#define TRAIT_PHARMA "hepatic_pharmacokinesis"
#define TRAIT_PARA "paraplegic"
#define TRAIT_EMPATH "empath"
#define TRAIT_FRIENDLY "friendly"
#define TRAIT_ASSBLASTUSA "assblastusa"
#define TRAIT_CULT_EYES "cult_eyes"
+
// common trait sources
#define TRAIT_GENERIC "generic"
#define EYE_DAMAGE "eye_damage"
@@ -156,6 +168,12 @@
#define SPECIES_TRAIT "species"
#define ORGAN_TRAIT "organ"
#define JOB_TRAIT "job"
+#define CYBORG_ITEM_TRAIT "cyborg-item"
+#define ADMIN_TRAIT "admin" // (B)admins only.
+#define CHANGELING_TRAIT "changeling"
+#define CULT_TRAIT "cult"
+#define CURSED_ITEM_TRAIT "cursed-item" // The item is magically cursed
+#define ABSTRACT_ITEM_TRAIT "abstract-item"
#define ROUNDSTART_TRAIT "roundstart" //cannot be removed without admin intervention
// unique trait sources, still defines
@@ -168,3 +186,24 @@
#define STASIS_MUTE "stasis"
#define GENETICS_SPELL "genetics_spell"
#define EYES_COVERED "eyes_covered"
+#define CULT_TRAIT "cult"
+#define CLOWN_NUKE_TRAIT "clown-nuke"
+#define STICKY_MOUSTACHE_TRAIT "sticky-moustache"
+#define CHAINSAW_FRENZY_TRAIT "chainsaw-frenzy"
+#define CHRONO_GUN_TRAIT "chrono-gun"
+#define REVERSE_BEAR_TRAP_TRAIT "reverse-bear-trap"
+#define GLUED_ITEM_TRAIT "glued-item"
+#define CURSED_MASK_TRAIT "cursed-mask"
+#define HIS_GRACE_TRAIT "his-grace"
+#define HAND_REPLACEMENT_TRAIT "magic-hand"
+#define HOT_POTATO_TRAIT "hot-potato"
+#define SABRE_SUICIDE_TRAIT "sabre-suicide"
+#define ABDUCTOR_VEST_TRAIT "abductor-vest"
+#define CAPTURE_THE_FLAG_TRAIT "capture-the-flag"
+#define EYE_OF_GOD_TRAIT "eye-of-god"
+#define SHAMEBRERO_TRAIT "shamebrero"
+#define CHRONOSUIT_TRAIT "chronosuit"
+#define FLIGHTSUIT_TRAIT "flightsuit"
+#define LOCKED_HELMET_TRAIT "locked-helmet"
+#define NINJA_SUIT_TRAIT "ninja-suit"
+#define ANTI_DROP_IMPLANT_TRAIT "anti-drop-implant"
diff --git a/code/__HELPERS/_cit_helpers.dm b/code/__HELPERS/_cit_helpers.dm
index 668b151b6e..86d0a34e3e 100644
--- a/code/__HELPERS/_cit_helpers.dm
+++ b/code/__HELPERS/_cit_helpers.dm
@@ -58,6 +58,7 @@ GLOBAL_LIST_EMPTY(ipc_antennas_list)
//Genitals and Arousal Lists
GLOBAL_LIST_EMPTY(cock_shapes_list)//global_lists.dm for the list initializations //Now also _DATASTRUCTURES globals.dm
GLOBAL_LIST_EMPTY(cock_shapes_icons) //Associated list for names->icon_states for cockshapes.
+GLOBAL_LIST_EMPTY(gentlemans_organ_names)
GLOBAL_LIST_EMPTY(balls_shapes_list)
GLOBAL_LIST_EMPTY(balls_shapes_icons)
GLOBAL_LIST_EMPTY(breasts_size_list)
@@ -93,6 +94,12 @@ GLOBAL_LIST_INIT(dildo_colors, list(//mostly neon colors
"Purple" = "#e300ff"//purple
))
+GLOBAL_LIST_INIT(meat_types, list(
+ "Mammalian" = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/mammal,
+ "Aquatic" = /obj/item/reagent_containers/food/snacks/carpmeat/aquatic,
+ "Avian" = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/avian,
+ "Inesct" = /obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/insect))
+
//Crew objective and miscreants stuff
GLOBAL_VAR_INIT(miscreants_allowed, FALSE)
diff --git a/code/__HELPERS/cmp.dm b/code/__HELPERS/cmp.dm
index e09ebcb10c..37f36a7e0d 100644
--- a/code/__HELPERS/cmp.dm
+++ b/code/__HELPERS/cmp.dm
@@ -81,3 +81,6 @@ GLOBAL_VAR_INIT(cmp_field, "name")
/proc/cmp_advdisease_resistance_asc(datum/disease/advance/A, datum/disease/advance/B)
return A.totalResistance() - B.totalResistance()
+
+/proc/cmp_job_display_asc(datum/job/A, datum/job/B)
+ return A.display_order - B.display_order
diff --git a/code/__HELPERS/donator_groupings.dm b/code/__HELPERS/donator_groupings.dm
new file mode 100644
index 0000000000..bdff20553a
--- /dev/null
+++ b/code/__HELPERS/donator_groupings.dm
@@ -0,0 +1,25 @@
+/*
+Current specifications:
+
+Donator groups in __DEFINES/donator_groupings.dm, config entries in controllers/configuration/entries/donator.dm
+
+3 groups, Tier 1/2/3
+Each tier includes the one before it (ascending)
+For fast lookups, this is generated using regenerate_donator_grouping_list()
+
+*/
+
+/proc/is_donator_group(ckey, group)
+ ckey = ckey(ckey) //make sure it's ckey'd.
+ var/list/L = GLOB.donators_by_group[group]
+ return L && L.Find(ckey)
+
+/proc/regenerate_donator_grouping_list()
+ GLOB.donators_by_group = list() //reinit everything
+ var/list/donator_list = GLOB.donators_by_group //cache
+ var/list/tier_1 = TIER_1_DONATORS
+ donator_list[DONATOR_GROUP_TIER_1] = tier_1.Copy() //The .Copy() is to "decouple"/make a new list, rather than letting the global list impact the config list.
+ var/list/tier_2 = tier_1 + TIER_2_DONATORS //Using + on lists implies making new lists, so we don't need to manually Copy().
+ donator_list[DONATOR_GROUP_TIER_2] = tier_2
+ var/list/tier_3 = tier_2 + TIER_3_DONATORS
+ donator_list[DONATOR_GROUP_TIER_3] = tier_3
diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm
index c8a33959ed..b20122e653 100644
--- a/code/__HELPERS/global_lists.dm
+++ b/code/__HELPERS/global_lists.dm
@@ -30,7 +30,8 @@
init_sprite_accessory_subtypes(/datum/sprite_accessory/legs, GLOB.legs_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/wings, GLOB.r_wings_list,roundstart = TRUE)
init_sprite_accessory_subtypes(/datum/sprite_accessory/caps, GLOB.caps_list)
- init_sprite_accessory_subtypes(/datum/sprite_accessory/moth_wings, GLOB.moth_wings_list)
+ init_sprite_accessory_subtypes(/datum/sprite_accessory/insect_wings, GLOB.insect_wings_list)
+ init_sprite_accessory_subtypes(/datum/sprite_accessory/insect_fluff, GLOB.insect_fluffs_list)
//CIT CHANGES START HERE, ADDS SNOWFLAKE BODYPARTS AND MORE
//mammal bodyparts (fucking furries)
@@ -44,6 +45,9 @@
init_sprite_accessory_subtypes(/datum/sprite_accessory/xeno_head, GLOB.xeno_head_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/xeno_tail, GLOB.xeno_tail_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/xeno_dorsal, GLOB.xeno_dorsal_list)
+ //ipcs
+ init_sprite_accessory_subtypes(/datum/sprite_accessory/screen, GLOB.ipc_screens_list, roundstart = TRUE)
+ init_sprite_accessory_subtypes(/datum/sprite_accessory/antenna, GLOB.ipc_antennas_list, roundstart = TRUE)
//genitals
init_sprite_accessory_subtypes(/datum/sprite_accessory/penis, GLOB.cock_shapes_list)
for(var/K in GLOB.cock_shapes_list)
@@ -52,7 +56,12 @@
init_sprite_accessory_subtypes(/datum/sprite_accessory/vagina, GLOB.vagina_shapes_list)
init_sprite_accessory_subtypes(/datum/sprite_accessory/breasts, GLOB.breasts_shapes_list)
- GLOB.breasts_size_list = list("a","b","c","d","e") //We need the list to choose from initialized, but it's no longer a sprite_accessory thing.
+ GLOB.breasts_size_list = list ("a", "b", "c", "d", "e") //We need the list to choose from initialized, but it's no longer a sprite_accessory thing.
+ GLOB.gentlemans_organ_names = list("phallus", "willy", "dick", "prick", "member", "tool", "gentleman's organ",
+ "cock", "wang", "knob", "dong", "joystick", "pecker", "johnson", "weenie", "tadger", "schlong", "thirsty ferret",
+ "baloney pony", "schlanger", "Mutton dagger", "old blind bob","Hanging Johnny", "fishing rod", "Tally whacker", "polly rocket",
+ "One eyed trouser trout", "Ding dong", "ankle spanker", "Pork sword", "engine cranker", "Harry hot dog", "Davy Crockett",
+ "Kidney cracker", "Heat seeking moisture missile", "Giggle stick", "love whistle", "Tube steak", "Uncle Dick", "Purple helmet warrior")
for(var/K in GLOB.breasts_shapes_list)
var/datum/sprite_accessory/breasts/value = GLOB.breasts_shapes_list[K]
GLOB.breasts_shapes_icons[K] = value.icon_state
@@ -61,6 +70,7 @@
for(var/K in GLOB.balls_shapes_list)
var/datum/sprite_accessory/testicles/value = GLOB.balls_shapes_list[K]
GLOB.balls_shapes_icons[K] = value.icon_state
+
//END OF CIT CHANGES
//Species
diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm
index 5ec839130a..8f3cd4f60d 100644
--- a/code/__HELPERS/mobs.dm
+++ b/code/__HELPERS/mobs.dm
@@ -59,7 +59,7 @@
if(!GLOB.horns_list.len)
init_sprite_accessory_subtypes(/datum/sprite_accessory/horns, GLOB.horns_list)
if(!GLOB.ears_list.len)
- init_sprite_accessory_subtypes(/datum/sprite_accessory/ears, GLOB.horns_list)
+ init_sprite_accessory_subtypes(/datum/sprite_accessory/ears, GLOB.ears_list)
if(!GLOB.frills_list.len)
init_sprite_accessory_subtypes(/datum/sprite_accessory/frills, GLOB.frills_list)
if(!GLOB.spines_list.len)
@@ -70,8 +70,10 @@
init_sprite_accessory_subtypes(/datum/sprite_accessory/body_markings, GLOB.body_markings_list)
if(!GLOB.wings_list.len)
init_sprite_accessory_subtypes(/datum/sprite_accessory/wings, GLOB.wings_list)
- if(!GLOB.moth_wings_list.len)
- init_sprite_accessory_subtypes(/datum/sprite_accessory/moth_wings, GLOB.moth_wings_list)
+ if(!GLOB.insect_wings_list.len)
+ init_sprite_accessory_subtypes(/datum/sprite_accessory/insect_wings, GLOB.insect_wings_list)
+ if(!GLOB.insect_fluffs_list.len)
+ init_sprite_accessory_subtypes(/datum/sprite_accessory/insect_fluff, GLOB.insect_fluffs_list)
//CIT CHANGES - genitals and such
if(!GLOB.cock_shapes_list.len)
@@ -130,22 +132,23 @@
//CIT CHANGE - changes this entire return to support cit's snowflake parts
return(list(
- "mcolor" = color1,
- "mcolor2" = color2,
- "mcolor3" = color3,
- "tail_lizard" = pick(GLOB.tails_list_lizard),
- "tail_human" = "None",
- "wings" = "None",
- "snout" = pick(GLOB.snouts_list),
- "horns" = pick(GLOB.horns_list),
- "ears" = "None",
- "frills" = pick(GLOB.frills_list),
- "spines" = pick(GLOB.spines_list),
- "body_markings" = pick(GLOB.body_markings_list),
- "legs" = pick("Normal Legs","Digitigrade Legs"),
- "caps" = pick(GLOB.caps_list),
- "moth_wings" = pick(GLOB.moth_wings_list),
- "taur" = "None",
+ "mcolor" = color1,
+ "mcolor2" = color2,
+ "mcolor3" = color3,
+ "tail_lizard" = pick(GLOB.tails_list_lizard),
+ "tail_human" = "None",
+ "wings" = "None",
+ "snout" = pick(GLOB.snouts_list),
+ "horns" = pick(GLOB.horns_list),
+ "ears" = "None",
+ "frills" = pick(GLOB.frills_list),
+ "spines" = pick(GLOB.spines_list),
+ "body_markings" = pick(GLOB.body_markings_list),
+ "legs" = pick("Plantigrade","Digitigrade"),
+ "caps" = pick(GLOB.caps_list),
+ "insect_wings" = pick(GLOB.insect_wings_list),
+ "insect_fluff" = "None",
+ "taur" = "None",
"mam_body_markings" = pick(snowflake_markings_list),
"mam_ears" = pick(snowflake_ears_list),
"mam_snouts" = pick(snowflake_mam_snouts_list),
@@ -189,6 +192,7 @@
"breasts_size" = pick(GLOB.breasts_size_list),
"breasts_shape" = "Pair",
"breasts_fluid" = "milk",
+ "breasts_producing" = FALSE,
"has_vag" = FALSE,
"vag_shape" = pick(GLOB.vagina_shapes_list),
"vag_color" = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F"),
@@ -200,9 +204,11 @@
"womb_cum_mult" = CUM_RATE_MULT,
"womb_efficiency" = CUM_EFFICIENCY,
"womb_fluid" = "femcum",
- "ipc_screen" = "Sunburst",
- "ipc_antenna" = "None",
- "flavor_text" = ""))
+ "ipc_screen" = "Sunburst",
+ "ipc_antenna" = "None",
+ "flavor_text" = "",
+ "meat_type" = "Mammalian"
+ ))
/proc/random_hair_style(gender)
switch(gender)
diff --git a/code/__HELPERS/names.dm b/code/__HELPERS/names.dm
index 09e0aa95b9..db2eba2422 100644
--- a/code/__HELPERS/names.dm
+++ b/code/__HELPERS/names.dm
@@ -151,6 +151,10 @@ GLOBAL_VAR(command_name)
GLOBAL_VAR(syndicate_code_phrase) //Code phrase for traitors.
GLOBAL_VAR(syndicate_code_response) //Code response for traitors.
+//Cached regex search - for checking if codewords are used.
+GLOBAL_DATUM(syndicate_code_phrase_regex, /regex)
+GLOBAL_DATUM(syndicate_code_response_regex, /regex)
+
/*
Should be expanded.
How this works:
diff --git a/code/__HELPERS/roundend.dm b/code/__HELPERS/roundend.dm
index cdd2e99dd8..0e9413520b 100644
--- a/code/__HELPERS/roundend.dm
+++ b/code/__HELPERS/roundend.dm
@@ -281,6 +281,17 @@
var/statspage = CONFIG_GET(string/roundstatsurl)
var/info = statspage ? "[GLOB.round_id]" : GLOB.round_id
parts += "[GLOB.TAB]Round ID: [info]"
+
+ var/list/voting_results = SSvote.stored_gamemode_votes
+
+ if(length(voting_results))
+ parts += "[GLOB.TAB]Voting: "
+ var/total_score = 0
+ for(var/choice in voting_results)
+ var/score = voting_results[choice]
+ total_score += score
+ parts += "[GLOB.TAB][GLOB.TAB][choice]: [score]"
+
parts += "[GLOB.TAB]Shift Duration: [DisplayTimeText(world.time - SSticker.round_start_time)]"
parts += "[GLOB.TAB]Station Integrity: [mode.station_was_nuked ? "Destroyed" : "[popcount["station_integrity"]]%"]"
var/total_players = GLOB.joined_player_list.len
@@ -297,6 +308,13 @@
//ignore this comment, it fixes the broken sytax parsing caused by the " above
else
parts += "[GLOB.TAB]Nobody died this shift!"
+ if(istype(SSticker.mode, /datum/game_mode/dynamic))
+ var/datum/game_mode/dynamic/mode = SSticker.mode
+ parts += "[GLOB.TAB]Threat level: [mode.threat_level]"
+ parts += "[GLOB.TAB]Threat left: [mode.threat]"
+ parts += "[GLOB.TAB]Executed rules:"
+ for(var/datum/dynamic_ruleset/rule in mode.executed_rules)
+ parts += "[GLOB.TAB][GLOB.TAB][rule.ruletype] - [rule.name]: -[rule.cost] threat"
return parts.Join("
")
/client/proc/roundend_report_file()
diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm
index 1ee5ce986f..6908a5057f 100644
--- a/code/__HELPERS/text.dm
+++ b/code/__HELPERS/text.dm
@@ -791,3 +791,6 @@ GLOBAL_LIST_INIT(binary, list("0","1"))
rearranged += cword
message = "[prefix][jointext(rearranged," ")]"
. = message
+
+#define is_alpha(X) ((text2ascii(X) <= 122) && (text2ascii(X) >= 97))
+#define is_digit(X) ((length(X) == 1) && (length(text2num(X)) == 1))
\ No newline at end of file
diff --git a/code/__HELPERS/time.dm b/code/__HELPERS/time.dm
index b28e7b5807..f0d5a7b252 100644
--- a/code/__HELPERS/time.dm
+++ b/code/__HELPERS/time.dm
@@ -73,3 +73,11 @@ GLOBAL_VAR_INIT(rollovercheck_last_timeofday, 0)
/proc/daysSince(realtimev)
return round((world.realtime - realtimev) / (24 HOURS))
+
+/proc/worldtime2text()
+ return gameTimestamp("hh:mm:ss", world.time)
+
+/proc/gameTimestamp(format = "hh:mm:ss", wtime=null)
+ if(!wtime)
+ wtime = world.time
+ return time2text(wtime - GLOB.timezoneOffset, format)
diff --git a/code/__HELPERS/unsorted.dm b/code/__HELPERS/unsorted.dm
index 7e078184b7..3c8d62ce3a 100644
--- a/code/__HELPERS/unsorted.dm
+++ b/code/__HELPERS/unsorted.dm
@@ -1487,6 +1487,7 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new)
/obj/item/reagent_containers/food/snacks/grown/nettle, // base type
/obj/item/reagent_containers/food/snacks/deepfryholder,
/obj/item/reagent_containers/food/snacks/grown/shell,
+ /obj/item/reagent_containers/food/snacks/clothing,
/obj/item/reagent_containers/food/snacks/store/bread
)
blocked |= typesof(/obj/item/reagent_containers/food/snacks/customizable)
diff --git a/code/_globalvars/bitfields.dm b/code/_globalvars/bitfields.dm
index b861af633d..3b32745b5c 100644
--- a/code/_globalvars/bitfields.dm
+++ b/code/_globalvars/bitfields.dm
@@ -47,7 +47,6 @@ GLOBAL_LIST_INIT(bitfields, list(
"NO_MAT_REDEMPTION" = NO_MAT_REDEMPTION,
"DROPDEL" = DROPDEL,
"NOBLUDGEON" = NOBLUDGEON,
- "NODROP" = NODROP,
"ABSTRACT" = ABSTRACT,
),
"admin_flags" = list(
@@ -137,7 +136,7 @@ GLOBAL_LIST_INIT(bitfields, list(
"LAVAPROTECT" = LAVAPROTECT,
"STOPSPRESSUREDAMAGE" = STOPSPRESSUREDAMAGE,
"BLOCK_GAS_SMOKE_EFFECT" = BLOCK_GAS_SMOKE_EFFECT,
- "MASKINTERNALS" = MASKINTERNALS,
+ "ALLOWINTERNALS" = ALLOWINTERNALS,
"NOSLIP" = NOSLIP,
"THICKMATERIAL" = THICKMATERIAL,
"VOICEBOX_TOGGLABLE" = VOICEBOX_TOGGLABLE,
diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm
index 82ccd439ee..c759658bd4 100644
--- a/code/_globalvars/lists/flavor_misc.dm
+++ b/code/_globalvars/lists/flavor_misc.dm
@@ -34,7 +34,8 @@ GLOBAL_LIST_EMPTY(ears_list)
GLOBAL_LIST_EMPTY(wings_list)
GLOBAL_LIST_EMPTY(wings_open_list)
GLOBAL_LIST_EMPTY(r_wings_list)
-GLOBAL_LIST_EMPTY(moth_wings_list)
+GLOBAL_LIST_EMPTY(insect_wings_list)
+GLOBAL_LIST_EMPTY(insect_fluffs_list)
GLOBAL_LIST_EMPTY(caps_list)
GLOBAL_LIST_INIT(ghost_forms_with_directions_list, list("ghost")) //stores the ghost forms that support directional sprites
@@ -100,6 +101,11 @@ GLOBAL_LIST_INIT(security_depts_prefs, list(SEC_DEPT_RANDOM, SEC_DEPT_NONE, SEC_
#define DDUFFELBAG "Department Duffel Bag"
GLOBAL_LIST_INIT(backbaglist, list(DBACKPACK, DSATCHEL, DDUFFELBAG, GBACKPACK, GSATCHEL, GDUFFELBAG, LSATCHEL))
+//Suit/Skirt
+#define PREF_SUIT "Jumpsuit"
+#define PREF_SKIRT "Jumpskirt"
+GLOBAL_LIST_INIT(jumpsuitlist, list(PREF_SUIT, PREF_SKIRT))
+
//Uplink spawn loc
#define UPLINK_PDA "PDA"
#define UPLINK_RADIO "Radio"
diff --git a/code/_globalvars/lists/maintenance_loot.dm b/code/_globalvars/lists/maintenance_loot.dm
index ef460cd54c..c25ebf5b0a 100644
--- a/code/_globalvars/lists/maintenance_loot.dm
+++ b/code/_globalvars/lists/maintenance_loot.dm
@@ -73,7 +73,7 @@ GLOBAL_LIST_INIT(maintenance_loot, list(
/obj/item/paper/crumpled = 1,
/obj/item/pen = 1,
/obj/item/reagent_containers/spray/pestspray = 1,
- /obj/item/reagent_containers/glass/rag = 3,
+ /obj/item/reagent_containers/rag = 3,
/obj/item/stock_parts/cell = 3,
/obj/item/storage/belt/utility = 2,
/obj/item/storage/box = 2,
@@ -107,9 +107,10 @@ GLOBAL_LIST_INIT(maintenance_loot, list(
/obj/item/storage/toolbox/artistic = 2,
/obj/item/toy/eightball = 1,
/obj/item/reagent_containers/pill/floorpill = 1,
- /obj/item/reagent_containers/food/snacks/cannedpeaches/maint = 1,
+ /obj/item/reagent_containers/food/snacks/cannedpeaches/maint = 2,
/obj/item/storage/daki = 3, //VERY IMPORTANT CIT CHANGE - adds bodypillows to maint
/obj/item/storage/pill_bottle/penis_enlargement = 2,
+ /obj/item/storage/pill_bottle/breast_enlargement = 2,
/obj/item/clothing/shoes/wheelys = 1,
/obj/item/clothing/shoes/kindleKicks = 1,
/obj/item/autosurgeon/penis = 1,
diff --git a/code/_globalvars/lists/misc.dm b/code/_globalvars/lists/misc.dm
new file mode 100644
index 0000000000..1dcde53a72
--- /dev/null
+++ b/code/_globalvars/lists/misc.dm
@@ -0,0 +1 @@
+GLOBAL_LIST_EMPTY(donators_by_group) //group id = donator list of ckeys
diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm
index 22210bfd08..5f0e7c9b22 100644
--- a/code/_onclick/click.dm
+++ b/code/_onclick/click.dm
@@ -67,7 +67,7 @@
/mob/proc/ClickOn( atom/A, params )
if(world.time <= next_click)
return
- next_click = world.time + 1
+ next_click = world.time + world.tick_lag
if(check_click_intercept(params,A))
return
diff --git a/code/_onclick/hud/_defines.dm b/code/_onclick/hud/_defines.dm
index a987f70d7b..ae36b4abb4 100644
--- a/code/_onclick/hud/_defines.dm
+++ b/code/_onclick/hud/_defines.dm
@@ -79,6 +79,7 @@
#define ui_drop_throw "EAST-1:28,SOUTH+1:7"
#define ui_pull_resist "EAST-2:26,SOUTH+1:7"
#define ui_movi "EAST-2:26,SOUTH:5"
+#define ui_sprintbufferloc "EAST-2:26,SOUTH:18"
#define ui_acti "EAST-3:24,SOUTH:5"
#define ui_zonesel "EAST-1:28,SOUTH:5"
#define ui_acti_alt "EAST-1:28,SOUTH:5" //alternative intent switcher for when the interface is hidden (F12)
diff --git a/code/_onclick/hud/human.dm b/code/_onclick/hud/human.dm
index 01e118aaed..7f2fca9d98 100644
--- a/code/_onclick/hud/human.dm
+++ b/code/_onclick/hud/human.dm
@@ -134,6 +134,13 @@
static_inventory += using
//END OF CITADEL CHANGES
+ //same as above but buffer.
+ using = new /obj/screen/sprint_buffer
+ using.screen_loc = ui_sprintbufferloc
+ sprint_buffer = using
+ static_inventory += using
+
+
using = new /obj/screen/drop()
using.icon = ui_style
using.screen_loc = ui_drop_throw
diff --git a/code/_onclick/hud/screen_objects.dm b/code/_onclick/hud/screen_objects.dm
index 5ee4ae0f8a..4c666d708c 100644
--- a/code/_onclick/hud/screen_objects.dm
+++ b/code/_onclick/hud/screen_objects.dm
@@ -290,16 +290,19 @@
icon_state = "internal0"
else
if(!C.getorganslot(ORGAN_SLOT_BREATHING_TUBE))
- if(!istype(C.wear_mask, /obj/item/clothing/mask))
+ var/obj/item/clothing/check
+ var/internals = FALSE
+
+ for(check in GET_INTERNAL_SLOTS(C))
+ if(istype(check, /obj/item/clothing/mask))
+ var/obj/item/clothing/mask/M = check
+ if(M.mask_adjusted)
+ M.adjustmask(C)
+ if(CHECK_BITFIELD(check.clothing_flags, ALLOWINTERNALS))
+ internals = TRUE
+ if(!internals)
to_chat(C, "You are not wearing an internals mask!")
- return 1
- else
- var/obj/item/clothing/mask/M = C.wear_mask
- if(M.mask_adjusted) // if mask on face but pushed down
- M.adjustmask(C) // adjust it back
- if( !(M.clothing_flags & MASKINTERNALS) )
- to_chat(C, "You are not wearing an internals mask!")
- return
+ return
var/obj/item/I = C.is_holding_item_of_type(/obj/item/tank)
if(I)
diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm
index 3896c3eac3..6455b4ccb6 100644
--- a/code/_onclick/item_attack.dm
+++ b/code/_onclick/item_attack.dm
@@ -171,3 +171,7 @@
if(prob(2))
playsound(src, 'sound/weapons/dink.ogg', 30, 1)
return 1
+
+/obj/item/proc/getweight()
+ return total_mass || w_class * 1.25
+
diff --git a/code/controllers/configuration/config_entry.dm b/code/controllers/configuration/config_entry.dm
index 49ff1c8d49..3ac103affc 100644
--- a/code/controllers/configuration/config_entry.dm
+++ b/code/controllers/configuration/config_entry.dm
@@ -19,6 +19,7 @@
var/abstract_type = /datum/config_entry //do not instantiate if type matches this
var/vv_VAS = TRUE //Force validate and set on VV. VAS proccall guard will run regardless.
+ var/postload_required = FALSE //requires running OnPostload()
var/dupes_allowed = FALSE
@@ -72,6 +73,9 @@
/datum/config_entry/proc/DeprecationUpdate(value)
return
+/datum/config_entry/proc/OnPostload()
+ return
+
/datum/config_entry/string
config_entry_value = ""
abstract_type = /datum/config_entry/string
@@ -80,7 +84,7 @@
/datum/config_entry/string/vv_edit_var(var_name, var_value)
return var_name != "auto_trim" && ..()
-/datum/config_entry/string/ValidateAndSet(str_val)
+/datum/config_entry/string/ValidateAndSet(str_val, during_load)
if(!VASProcCallGuard(str_val))
return FALSE
config_entry_value = auto_trim ? trim(str_val) : str_val
diff --git a/code/controllers/configuration/configuration.dm b/code/controllers/configuration/configuration.dm
index 0232081c1a..ea2919f342 100644
--- a/code/controllers/configuration/configuration.dm
+++ b/code/controllers/configuration/configuration.dm
@@ -101,6 +101,7 @@
log_config("Loading config file [filename]...")
var/list/lines = world.file2list("[directory]/[filename]")
var/list/_entries = entries
+ var/list/postload_required = list()
for(var/L in lines)
L = trim(L)
if(!L)
@@ -157,18 +158,24 @@
else
warning("[new_ver.type] is deprecated but gave no proper return for DeprecationUpdate()")
- var/validated = E.ValidateAndSet(value)
+ var/validated = E.ValidateAndSet(value, TRUE)
if(!validated)
log_config("Failed to validate setting \"[value]\" for [entry]")
else
if(E.modified && !E.dupes_allowed)
log_config("Duplicate setting for [entry] ([value], [E.resident_file]) detected! Using latest.")
+ if(E.postload_required)
+ postload_required[E] = TRUE
E.resident_file = filename
if(validated)
E.modified = TRUE
+ for(var/i in postload_required)
+ var/datum/config_entry/E = i
+ E.OnPostload()
+
++.
/datum/controller/configuration/can_vv_get(var_name)
diff --git a/code/controllers/configuration/entries/donator.dm b/code/controllers/configuration/entries/donator.dm
new file mode 100644
index 0000000000..b74d5f5839
--- /dev/null
+++ b/code/controllers/configuration/entries/donator.dm
@@ -0,0 +1,22 @@
+/datum/config_entry/keyed_list/donator_group
+ key_mode = KEY_MODE_TEXT
+ value_mode = VALUE_MODE_FLAG
+ abstract_type = /datum/config_entry/keyed_list/donator_group
+
+//If we're in the middle of a config load, only do the regeneration afterwards to prevent this from wasting a massive amount of CPU for list regenerations.
+/datum/config_entry/keyed_list/donator_group/ValidateAndSet(str_val, during_load)
+ . = ..()
+ if(. && during_load)
+ regenerate_donator_grouping_list()
+
+/datum/config_entry/keyed_list/donator_group/OnPostload()
+ . = ..()
+ regenerate_donator_grouping_list()
+
+//This is kinda weird in that the config entries are defined here but all the handling/calculations are in __HELPERS/donator_groupings.dm
+
+/datum/config_entry/keyed_list/donator_group/tier_1_donators
+
+/datum/config_entry/keyed_list/donator_group/tier_2_donators
+
+/datum/config_entry/keyed_list/donator_group/tier_3_donators
diff --git a/code/controllers/subsystem/assets.dm b/code/controllers/subsystem/assets.dm
index 7285298283..7b6554bd3f 100644
--- a/code/controllers/subsystem/assets.dm
+++ b/code/controllers/subsystem/assets.dm
@@ -6,7 +6,17 @@ SUBSYSTEM_DEF(assets)
var/list/preload = list()
/datum/controller/subsystem/assets/Initialize(timeofday)
- for(var/type in typesof(/datum/asset))
+
+ var/list/priority_assets = list(
+ /datum/asset/simple/oui_theme_nano,
+ /datum/asset/simple/goonchat
+ )
+
+ for(var/type in priority_assets)
+ var/datum/asset/A = new type()
+ A.register()
+
+ for(var/type in typesof(/datum/asset) - (priority_assets | list(/datum/asset, /datum/asset/simple)))
var/datum/asset/A = type
if (type != initial(A._abstract))
get_asset_datum(type)
diff --git a/code/controllers/subsystem/input.dm b/code/controllers/subsystem/input.dm
index 221d04dad5..cc09ca816e 100644
--- a/code/controllers/subsystem/input.dm
+++ b/code/controllers/subsystem/input.dm
@@ -23,7 +23,7 @@ SUBSYSTEM_DEF(input)
// This is for when macro sets are eventualy datumized
/datum/controller/subsystem/input/proc/setup_default_macro_sets()
var/list/static/default_macro_sets
-
+
if(default_macro_sets)
macro_sets = default_macro_sets
return
@@ -49,6 +49,7 @@ SUBSYSTEM_DEF(input)
"old_hotkeys" = list(
"Tab" = "\".winset \\\"mainwindow.macro=old_default input.focus=true input.background-color=[COLOR_INPUT_ENABLED]\\\"\"",
"O" = "ooc",
+ "L" = "looc",
"T" = "say",
"M" = "me",
"Back" = "\".winset \\\"input.text=\\\"\\\"\\\"\"", // This makes it so backspace can remove default inputs
diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm
index 5e960e0f96..ea7e7ce812 100644
--- a/code/controllers/subsystem/job.dm
+++ b/code/controllers/subsystem/job.dm
@@ -110,13 +110,16 @@ SUBSYSTEM_DEF(job)
if(job.required_playtime_remaining(player.client))
JobDebug("FOC player not enough xp, Player: [player]")
continue
+ if(!player.client.prefs.pref_species.qualifies_for_rank(job.title, player.client.prefs.features))
+ JobDebug("FOC non-human failed, Player: [player]")
+ continue
if(flag && (!(flag in player.client.prefs.be_special)))
JobDebug("FOC flag failed, Player: [player], Flag: [flag], ")
continue
if(player.mind && job.title in player.mind.restricted_roles)
JobDebug("FOC incompatible with antagonist role, Player: [player]")
continue
- if(player.client.prefs.GetJobDepartment(job, level) & job.flag)
+ if(player.client.prefs.job_preferences["[job.title]"] == level)
JobDebug("FOC pass, Player: [player], Level:[level]")
candidates += player
return candidates
@@ -145,6 +148,10 @@ SUBSYSTEM_DEF(job)
JobDebug("GRJ player not old enough, Player: [player]")
continue
+ if(!player.client.prefs.pref_species.qualifies_for_rank(job.title, player.client.prefs.features))
+ JobDebug("GRJ non-human failed, Player: [player]")
+ continue
+
if(job.required_playtime_remaining(player.client))
JobDebug("GRJ player not enough xp, Player: [player]")
continue
@@ -182,7 +189,7 @@ SUBSYSTEM_DEF(job)
if((job.current_positions >= job.total_positions) && job.total_positions != -1)
continue
var/list/candidates = FindOccupationCandidates(job, level)
- if(!candidates.len)
+ if(!candidates?.len)
continue
var/mob/dead/new_player/candidate = pick(candidates)
if(AssignRole(candidate, command_position))
@@ -200,7 +207,7 @@ SUBSYSTEM_DEF(job)
if((job.current_positions >= job.total_positions) && job.total_positions != -1)
continue
var/list/candidates = FindOccupationCandidates(job, level)
- if(!candidates.len)
+ if(!candidates?.len)
continue
var/mob/dead/new_player/candidate = pick(candidates)
AssignRole(candidate, command_position)
@@ -228,7 +235,7 @@ SUBSYSTEM_DEF(job)
* fills var "assigned_role" for all ready players.
* This proc must not have any side effect besides of modifying "assigned_role".
**/
-/datum/controller/subsystem/job/proc/DivideOccupations()
+/datum/controller/subsystem/job/proc/DivideOccupations(list/required_jobs)
//Setup new player list and get the jobs list
JobDebug("Running DO")
@@ -241,14 +248,14 @@ SUBSYSTEM_DEF(job)
//Get the players who are ready
for(var/mob/dead/new_player/player in GLOB.player_list)
- if(player.ready == PLAYER_READY_TO_PLAY && player.mind && !player.mind.assigned_role)
+ if(player.ready == PLAYER_READY_TO_PLAY && player.check_preferences() && player.mind && !player.mind.assigned_role)
unassigned += player
initial_players_to_assign = unassigned.len
- JobDebug("DO, Len: [unassigned.len]")
+ JobDebug("DO, Len: [unassigned?.len]")
if(unassigned.len == 0)
- return 0
+ return validate_required_jobs(required_jobs)
//Scale number of open security officer slots to population
setup_officer_positions()
@@ -269,8 +276,8 @@ SUBSYSTEM_DEF(job)
//People who wants to be the overflow role, sure, go on.
JobDebug("DO, Running Overflow Check 1")
var/datum/job/overflow = GetJob(SSjob.overflow_role)
- var/list/overflow_candidates = FindOccupationCandidates(overflow, 3)
- JobDebug("AC1, Candidates: [overflow_candidates.len]")
+ var/list/overflow_candidates = FindOccupationCandidates(overflow, JP_LOW)
+ JobDebug("AC1, Candidates: [overflow_candidates?.len]")
for(var/mob/dead/new_player/player in overflow_candidates)
JobDebug("AC1 pass, Player: [player]")
AssignRole(player, SSjob.overflow_role)
@@ -297,7 +304,8 @@ SUBSYSTEM_DEF(job)
// Loop through all levels from high to low
var/list/shuffledoccupations = shuffle(occupations)
- for(var/level = 1 to 3)
+ var/list/levels = list(JP_HIGH,JP_MEDIUM,JP_LOW)
+ for(var/level in levels)
//Check the head jobs first each level
CheckHeadPositions(level)
@@ -326,13 +334,17 @@ SUBSYSTEM_DEF(job)
if(job.required_playtime_remaining(player.client))
JobDebug("DO player not enough xp, Player: [player], Job:[job.title]")
continue
+
+ if(!player.client.prefs.pref_species.qualifies_for_rank(job.title, player.client.prefs.features))
+ JobDebug("DO non-human failed, Player: [player], Job:[job.title]")
+ continue
if(player.mind && job.title in player.mind.restricted_roles)
JobDebug("DO incompatible with antagonist role, Player: [player], Job:[job.title]")
continue
// If the player wants that job on this level, then try give it to him.
- if(player.client.prefs.GetJobDepartment(job, level) & job.flag)
+ if(player.client.prefs.job_preferences["[job.title]"] == level)
// If the job isn't filled
if((job.current_positions < job.spawn_positions) || job.spawn_positions == -1)
JobDebug("DO pass, Player: [player], Level:[level], Job:[job.title]")
@@ -351,9 +363,28 @@ SUBSYSTEM_DEF(job)
//Mop up people who can't leave.
for(var/mob/dead/new_player/player in unassigned) //Players that wanted to back out but couldn't because they're antags (can you feel the edge case?)
if(!GiveRandomJob(player))
- AssignRole(player, SSjob.overflow_role) //If everything is already filled, make them an assistant
+ if(!AssignRole(player, SSjob.overflow_role)) //If everything is already filled, make them an assistant
+ return FALSE //Living on the edge, the forced antagonist couldn't be assigned to overflow role (bans, client age) - just reroll
- return 1
+ return validate_required_jobs(required_jobs)
+
+/datum/controller/subsystem/job/proc/validate_required_jobs(list/required_jobs)
+ if(!required_jobs.len)
+ return TRUE
+ for(var/required_group in required_jobs)
+ var/group_ok = TRUE
+ for(var/rank in required_group)
+ var/datum/job/J = GetJob(rank)
+ if(!J)
+ SSticker.mode.setup_error = "Invalid job [rank] in gamemode required jobs."
+ return FALSE
+ if(J.current_positions < required_group[rank])
+ group_ok = FALSE
+ break
+ if(group_ok)
+ return TRUE
+ SSticker.mode.setup_error = "Required jobs not present."
+ return FALSE
//We couldn't find a job from prefs for this guy.
/datum/controller/subsystem/job/proc/HandleUnassigned(mob/dead/new_player/player)
@@ -406,7 +437,7 @@ SUBSYSTEM_DEF(job)
if(length(GLOB.jobspawn_overrides[rank]))
S = pick(GLOB.jobspawn_overrides[rank])
if(S)
- SendToAtom(H, S, buckle = FALSE)
+ S.JoinPlayerHere(H, FALSE)
if(!S) //if there isn't a spawnpoint send them to latejoin, if there's no latejoin go yell at your mapper
log_world("Couldn't find a round start spawn point for [rank]")
SendToLateJoin(H)
@@ -418,7 +449,7 @@ SUBSYSTEM_DEF(job)
if(job)
if(!job.dresscodecompliant)// CIT CHANGE - dress code compliance
equip_loadout(N, H) // CIT CHANGE - allows players to spawn with loadout items
- var/new_mob = job.equip(H, null, null, joined_late)
+ var/new_mob = job.equip(H, null, null, joined_late , null, M.client)
if(ismob(new_mob))
H = new_mob
if(!joined_late)
@@ -428,16 +459,22 @@ SUBSYSTEM_DEF(job)
SSpersistence.antag_rep_change[M.client.ckey] += job.GetAntagRep()
+/* if(M.client.holder)
+ if(CONFIG_GET(flag/auto_deadmin_players) || (M.client.prefs?.toggles & DEADMIN_ALWAYS))
+ M.client.holder.auto_deadmin()
+ else
+ handle_auto_deadmin_roles(M.client, rank) */
+
to_chat(M, "You are the [rank].")
if(job)
to_chat(M, "As the [rank] you answer directly to [job.supervisors]. Special circumstances may change this.")
- to_chat(M, "To speak on your departments radio, use the :h button. To see others, look closely at your headset.")
+ job.radio_help_message(M)
if(job.req_admin_notify)
- to_chat(M, "You are playing a job that is important for Game Progression. If you have to disconnect, please notify the admins via adminhelp.")
+ to_chat(M, "You are playing a job that is important for Game Progression. If you have to disconnect immediately, please notify the admins via adminhelp. Otherwise put your locker gear back into the locker and cryo out.")
if(job.custom_spawn_text)
to_chat(M, "[job.custom_spawn_text]")
if(CONFIG_GET(number/minimal_access_threshold))
- to_chat(M, "As this station was initially staffed with a [CONFIG_GET(flag/jobs_have_minimal_access) ? "full crew, only your job's necessities" : "skeleton crew, additional access may"] have been added to your ID card.")
+ to_chat(M, "As this station was initially staffed with a [CONFIG_GET(flag/jobs_have_minimal_access) ? "full crew, only your job's necessities" : "skeleton crew, additional access may"] have been added to your ID card.")
if(job && H)
if(job.dresscodecompliant)// CIT CHANGE - dress code compliance
@@ -446,12 +483,24 @@ SUBSYSTEM_DEF(job)
equip_loadout(N, H, TRUE)//CIT CHANGE - makes players spawn with in-backpack loadout items properly. A little hacky but it works
return H
-
+/*
+/datum/controller/subsystem/job/proc/handle_auto_deadmin_roles(client/C, rank)
+ if(!C?.holder)
+ return TRUE
+ var/datum/job/job = GetJob(rank)
+ if(!job)
+ return
+ if((job.auto_deadmin_role_flags & DEADMIN_POSITION_HEAD) && (CONFIG_GET(flag/auto_deadmin_heads) || (C.prefs?.toggles & DEADMIN_POSITION_HEAD)))
+ return C.holder.auto_deadmin()
+ else if((job.auto_deadmin_role_flags & DEADMIN_POSITION_SECURITY) && (CONFIG_GET(flag/auto_deadmin_security) || (C.prefs?.toggles & DEADMIN_POSITION_SECURITY)))
+ return C.holder.auto_deadmin()
+ else if((job.auto_deadmin_role_flags & DEADMIN_POSITION_SILICON) && (CONFIG_GET(flag/auto_deadmin_silicons) || (C.prefs?.toggles & DEADMIN_POSITION_SILICON))) //in the event there's ever psuedo-silicon roles added, ie synths.
+ return C.holder.auto_deadmin()*/
/datum/controller/subsystem/job/proc/setup_officer_positions()
var/datum/job/J = SSjob.GetJob("Security Officer")
if(!J)
- throw EXCEPTION("setup_officer_positions(): Security officer job is missing")
+ CRASH("setup_officer_positions(): Security officer job is missing")
var/ssc = CONFIG_GET(number/security_scaling_coeff)
if(ssc > 0)
@@ -502,13 +551,15 @@ SUBSYSTEM_DEF(job)
if(job.required_playtime_remaining(player.client))
young++
continue
- if(player.client.prefs.GetJobDepartment(job, 1) & job.flag)
- high++
- else if(player.client.prefs.GetJobDepartment(job, 2) & job.flag)
- medium++
- else if(player.client.prefs.GetJobDepartment(job, 3) & job.flag)
- low++
- else never++ //not selected
+ switch(player.client.prefs.job_preferences["[job.title]"])
+ if(JP_HIGH)
+ high++
+ if(JP_MEDIUM)
+ medium++
+ if(JP_LOW)
+ low++
+ else
+ never++
SSblackbox.record_feedback("nested tally", "job_preferences", high, list("[job.title]", "high"))
SSblackbox.record_feedback("nested tally", "job_preferences", medium, list("[job.title]", "medium"))
SSblackbox.record_feedback("nested tally", "job_preferences", low, list("[job.title]", "low"))
@@ -551,51 +602,61 @@ SUBSYSTEM_DEF(job)
newjob.spawn_positions = J.spawn_positions
newjob.current_positions = J.current_positions
-/datum/controller/subsystem/job/proc/SendToAtom(mob/M, atom/A, buckle)
- if(buckle && isliving(M) && istype(A, /obj/structure/chair))
- var/obj/structure/chair/C = A
- if(C.buckle_mob(M, FALSE, FALSE))
- return
- M.forceMove(get_turf(A))
+/atom/proc/JoinPlayerHere(mob/M, buckle)
+ // By default, just place the mob on the same turf as the marker or whatever.
+ M.forceMove(get_turf(src))
+
+/obj/structure/chair/JoinPlayerHere(mob/M, buckle)
+ // Placing a mob in a chair will attempt to buckle it, or else fall back to default.
+ if (buckle && isliving(M) && buckle_mob(M, FALSE, FALSE))
+ return
+ ..()
/datum/controller/subsystem/job/proc/SendToLateJoin(mob/M, buckle = TRUE)
+ var/atom/destination
if(M.mind && M.mind.assigned_role && length(GLOB.jobspawn_overrides[M.mind.assigned_role])) //We're doing something special today.
- SendToAtom(M,pick(GLOB.jobspawn_overrides[M.mind.assigned_role]),FALSE)
+ destination = pick(GLOB.jobspawn_overrides[M.mind.assigned_role])
+ destination.JoinPlayerHere(M, FALSE)
return
if(latejoin_trackers.len)
- SendToAtom(M, pick(latejoin_trackers), buckle)
- else
- //bad mojo
- var/area/shuttle/arrival/A = GLOB.areas_by_type[/area/shuttle/arrival]
- if(A)
- //first check if we can find a chair
- var/obj/structure/chair/C = locate() in A
- if(C)
- SendToAtom(M, C, buckle)
- return
- else //last hurrah
- var/list/avail = list()
- for(var/turf/T in A)
- if(!is_blocked_turf(T, TRUE))
- avail += T
- if(avail.len)
- SendToAtom(M, pick(avail), FALSE)
- return
+ destination = pick(latejoin_trackers)
+ destination.JoinPlayerHere(M, buckle)
+ return
- //pick an open spot on arrivals and dump em
- var/list/arrivals_turfs = shuffle(get_area_turfs(/area/shuttle/arrival))
- if(arrivals_turfs.len)
- for(var/turf/T in arrivals_turfs)
- if(!is_blocked_turf(T, TRUE))
- SendToAtom(M, T, FALSE)
- return
- //last chance, pick ANY spot on arrivals and dump em
- SendToAtom(M, arrivals_turfs[1], FALSE)
- else
- var/msg = "Unable to send mob [M] to late join!"
- message_admins(msg)
- CRASH(msg)
+ //bad mojo
+ var/area/shuttle/arrival/A = GLOB.areas_by_type[/area/shuttle/arrival]
+ if(A)
+ //first check if we can find a chair
+ var/obj/structure/chair/C = locate() in A
+ if(C)
+ C.JoinPlayerHere(M, buckle)
+ return
+
+ //last hurrah
+ var/list/avail = list()
+ for(var/turf/T in A)
+ if(!is_blocked_turf(T, TRUE))
+ avail += T
+ if(avail.len)
+ destination = pick(avail)
+ destination.JoinPlayerHere(M, FALSE)
+ return
+
+ //pick an open spot on arrivals and dump em
+ var/list/arrivals_turfs = shuffle(get_area_turfs(/area/shuttle/arrival))
+ if(arrivals_turfs.len)
+ for(var/turf/T in arrivals_turfs)
+ if(!is_blocked_turf(T, TRUE))
+ T.JoinPlayerHere(M, FALSE)
+ return
+ //last chance, pick ANY spot on arrivals and dump em
+ destination = arrivals_turfs[1]
+ destination.JoinPlayerHere(M, FALSE)
+ else
+ var/msg = "Unable to send mob [M] to late join!"
+ message_admins(msg)
+ CRASH(msg)
///////////////////////////////////
@@ -637,4 +698,4 @@ SUBSYSTEM_DEF(job)
. |= player.mind
/datum/controller/subsystem/job/proc/JobDebug(message)
- log_job_debug(message)
\ No newline at end of file
+ log_job_debug(message)
diff --git a/code/controllers/subsystem/processing/chemistry.dm b/code/controllers/subsystem/processing/chemistry.dm
new file mode 100644
index 0000000000..da31d65fb3
--- /dev/null
+++ b/code/controllers/subsystem/processing/chemistry.dm
@@ -0,0 +1,5 @@
+PROCESSING_SUBSYSTEM_DEF(chemistry)
+ wait = 5
+ flags = SS_KEEP_TIMING
+
+
diff --git a/code/controllers/subsystem/processing/quirks.dm b/code/controllers/subsystem/processing/quirks.dm
index a6c86a3576..4af54b8c70 100644
--- a/code/controllers/subsystem/processing/quirks.dm
+++ b/code/controllers/subsystem/processing/quirks.dm
@@ -9,6 +9,7 @@ PROCESSING_SUBSYSTEM_DEF(quirks)
runlevels = RUNLEVEL_GAME
var/list/quirks = list() //Assoc. list of all roundstart quirk datum types; "name" = /path/
+ 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
@@ -22,11 +23,68 @@ PROCESSING_SUBSYSTEM_DEF(quirks)
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)
+/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)
- for(var/V in cli.prefs.character_quirks)
+ var/list/quirks = cli.prefs.character_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(!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)].")
+
+/datum/controller/subsystem/processing/quirks/proc/quirk_path_by_name(name)
+ return quirks[name]
+
+/datum/controller/subsystem/processing/quirks/proc/quirk_points_by_name(name)
+ return quirk_points[name]
+
+/datum/controller/subsystem/processing/quirks/proc/quirk_name_by_path(path)
+ return quirk_names_by_path[path]
+
+/datum/controller/subsystem/processing/quirks/proc/total_points(list/quirk_names)
+ . = 0
+ for(var/i in quirk_names)
+ . += quirk_points_by_name(i)
+
+/datum/controller/subsystem/processing/quirks/proc/filter_quirks(list/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
+ if(length(blacklisted))
+ for(var/i in blacklisted)
+ quirks -= i
+ cut += i
+
+ /* //Code to automatically reduce positive quirks until balance is even.
+ var/points_used = total_points(quirks)
+ if(points_used > 0)
+ //they owe us points, let's collect.
+ for(var/i in quirks)
+ var/points = quirk_points_by_name(i)
+ if(points > 0)
+ cut += i
+ quirks -= i
+ points_used -= points
+ if(points_used <= 0)
+ break
+ */
+
+ //Nah, let's null all non-neutrals out.
+ if(cut.len)
+ for(var/i in quirks)
+ if(quirk_points_by_name(i) != 0)
+ //cut += i -- Commented out: Only show the ones that triggered the quirk purge.
+ quirks -= i
+
+ return cut
/datum/controller/subsystem/processing/quirks/proc/GenerateQuirks(client/user)
if(user.prefs.character_quirks.len)
diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm
index 74f9ad0382..14e1e86f7d 100755
--- a/code/controllers/subsystem/ticker.dm
+++ b/code/controllers/subsystem/ticker.dm
@@ -127,9 +127,20 @@ SUBSYSTEM_DEF(ticker)
if(!GLOB.syndicate_code_phrase)
GLOB.syndicate_code_phrase = generate_code_phrase(return_list=TRUE)
+
+ var/codewords = jointext(GLOB.syndicate_code_phrase, "|")
+ var/regex/codeword_match = new("([codewords])", "ig")
+
+ GLOB.syndicate_code_phrase_regex = codeword_match
+
if(!GLOB.syndicate_code_response)
GLOB.syndicate_code_response = generate_code_phrase(return_list=TRUE)
+ var/codewords = jointext(GLOB.syndicate_code_response, "|")
+ var/regex/codeword_match = new("([codewords])", "ig")
+
+ GLOB.syndicate_code_response_regex = codeword_match
+
start_at = world.time + (CONFIG_GET(number/lobby_countdown) * 10)
if(CONFIG_GET(flag/randomize_shift_time))
gametime_offset = rand(0, 23) HOURS
@@ -218,7 +229,7 @@ SUBSYSTEM_DEF(ticker)
if(GLOB.secret_force_mode != "secret")
var/datum/game_mode/smode = config.pick_mode(GLOB.secret_force_mode)
if(!smode.can_start())
- message_admins("\blue Unable to force secret [GLOB.secret_force_mode]. [smode.required_players] players and [smode.required_enemies] eligible antagonists needed.")
+ message_admins("Unable to force secret [GLOB.secret_force_mode]. [smode.required_players] players and [smode.required_enemies] eligible antagonists needed.")
else
mode = smode
@@ -244,7 +255,7 @@ SUBSYSTEM_DEF(ticker)
var/can_continue = 0
can_continue = src.mode.pre_setup() //Choose antagonists
CHECK_TICK
- SSjob.DivideOccupations() //Distribute jobs
+ can_continue = can_continue && SSjob.DivideOccupations(mode.required_jobs) //Distribute jobs
CHECK_TICK
if(!GLOB.Debug2)
@@ -291,14 +302,14 @@ SUBSYSTEM_DEF(ticker)
round_start_time = world.time
SSdbcore.SetRoundStart()
- to_chat(world, "Welcome to [station_name()], enjoy your stay!")
+ to_chat(world, "Welcome to [station_name()], enjoy your stay!")
SEND_SOUND(world, sound('sound/ai/welcome.ogg'))
current_state = GAME_STATE_PLAYING
Master.SetRunLevel(RUNLEVEL_GAME)
if(SSevents.holidays)
- to_chat(world, "and...")
+ to_chat(world, "and...")
for(var/holidayname in SSevents.holidays)
var/datum/holiday/holiday = SSevents.holidays[holidayname]
to_chat(world, "
" if(unlock_content || check_rights_for(user.client, R_ADMIN)) dat += "OOC Color: Change " + dat += "Antag OOC Color: Change " + dat += " | "
if(user.client.holder)
dat +=""
@@ -791,6 +818,7 @@ GLOBAL_LIST_EMPTY(preferences_datums)
dat += "Voracious MediHound sleepers: [(cit_toggles & MEDIHOUND_SLEEPER) ? "Yes" : "No"] " dat += "Hear Vore Sounds: [(cit_toggles & EATING_NOISES) ? "Yes" : "No"] " dat += "Hear Vore Digestion Sounds: [(cit_toggles & DIGESTION_NOISES) ? "Yes" : "No"] " + dat += "Lewdchem:[lewdchem == TRUE ? "Enabled" : "Disabled"] " dat += "Widescreen: [widescreenpref ? "Enabled ([CONFIG_GET(string/default_view)])" : "Disabled (15x15)"] " dat += "Auto stand: [autostand ? "Enabled" : "Disabled"] " dat += "Screen Shake: [(screenshake==100) ? "Full" : ((screenshake==0) ? "None" : "[screenshake]")] " @@ -911,11 +939,9 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += " | Description | BANNED | " + HTML += "[rank]BANNED | " continue var/required_playtime_remaining = job.required_playtime_remaining(user.client) if(required_playtime_remaining) @@ -1015,7 +1039,13 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/available_in_days = job.available_in_days(user.client) HTML += "[rank]\[IN [(available_in_days)] DAYS\] | " continue - if((job_civilian_low & overflow.flag) && (rank != SSjob.overflow_role) && !jobban_isbanned(user, SSjob.overflow_role)) + if(!user.client.prefs.pref_species.qualifies_for_rank(rank, user.client.prefs.features)) + if(user.client.prefs.pref_species.id == "human") + HTML += "[rank]\[MUTANT\] | " + else + HTML += "[rank]\[NON-HUMAN\] | " + continue + if((job_preferences["[SSjob.overflow_role]"] == JP_LOW) && (rank != SSjob.overflow_role) && !jobban_isbanned(user, SSjob.overflow_role)) HTML += "[rank]" continue if((rank in GLOB.command_positions) || (rank == "AI"))//Bold head jobs @@ -1030,32 +1060,32 @@ GLOBAL_LIST_EMPTY(preferences_datums) var/prefUpperLevel = -1 // level to assign on left click var/prefLowerLevel = -1 // level to assign on right click - if(GetJobDepartment(job, 1) & job.flag) - prefLevelLabel = "High" - prefLevelColor = "slateblue" - prefUpperLevel = 4 - prefLowerLevel = 2 - else if(GetJobDepartment(job, 2) & job.flag) - prefLevelLabel = "Medium" - prefLevelColor = "green" - prefUpperLevel = 1 - prefLowerLevel = 3 - else if(GetJobDepartment(job, 3) & job.flag) - prefLevelLabel = "Low" - prefLevelColor = "orange" - prefUpperLevel = 2 - prefLowerLevel = 4 - else - prefLevelLabel = "NEVER" - prefLevelColor = "red" - prefUpperLevel = 3 - prefLowerLevel = 1 - + switch(job_preferences["[job.title]"]) + if(JP_HIGH) + prefLevelLabel = "High" + prefLevelColor = "slateblue" + prefUpperLevel = 4 + prefLowerLevel = 2 + if(JP_MEDIUM) + prefLevelLabel = "Medium" + prefLevelColor = "green" + prefUpperLevel = 1 + prefLowerLevel = 3 + if(JP_LOW) + prefLevelLabel = "Low" + prefLevelColor = "orange" + prefUpperLevel = 2 + prefLowerLevel = 4 + else + prefLevelLabel = "NEVER" + prefLevelColor = "red" + prefUpperLevel = 3 + prefLowerLevel = 1 HTML += "" if(rank == SSjob.overflow_role)//Overflow is special - if(job_civilian_low & overflow.flag) + if(job_preferences["[SSjob.overflow_role]"] == JP_LOW) HTML += "Yes" else HTML += "No" @@ -1086,61 +1116,17 @@ GLOBAL_LIST_EMPTY(preferences_datums) /datum/preferences/proc/SetJobPreferenceLevel(datum/job/job, level) if (!job) - return 0 + return FALSE - if (level == 1) // to high - // remove any other job(s) set to high - job_civilian_med |= job_civilian_high - job_engsec_med |= job_engsec_high - job_medsci_med |= job_medsci_high - job_civilian_high = 0 - job_engsec_high = 0 - job_medsci_high = 0 + if (level == JP_HIGH) // to high + //Set all other high to medium + for(var/j in job_preferences) + if(job_preferences["[j]"] == JP_HIGH) + job_preferences["[j]"] = JP_MEDIUM + //technically break here - if (job.department_flag == CIVILIAN) - job_civilian_low &= ~job.flag - job_civilian_med &= ~job.flag - job_civilian_high &= ~job.flag - - switch(level) - if (1) - job_civilian_high |= job.flag - if (2) - job_civilian_med |= job.flag - if (3) - job_civilian_low |= job.flag - - return 1 - else if (job.department_flag == ENGSEC) - job_engsec_low &= ~job.flag - job_engsec_med &= ~job.flag - job_engsec_high &= ~job.flag - - switch(level) - if (1) - job_engsec_high |= job.flag - if (2) - job_engsec_med |= job.flag - if (3) - job_engsec_low |= job.flag - - return 1 - else if (job.department_flag == MEDSCI) - job_medsci_low &= ~job.flag - job_medsci_med &= ~job.flag - job_medsci_high &= ~job.flag - - switch(level) - if (1) - job_medsci_high |= job.flag - if (2) - job_medsci_med |= job.flag - if (3) - job_medsci_low |= job.flag - - return 1 - - return 0 + job_preferences["[job.title]"] = level + return TRUE /datum/preferences/proc/UpdateJobPreference(mob/user, role, desiredLvl) if(!SSjob || SSjob.occupations.len <= 0) @@ -1157,64 +1143,29 @@ GLOBAL_LIST_EMPTY(preferences_datums) ShowChoices(user) return - if(role == SSjob.overflow_role) - if(job_civilian_low & job.flag) - job_civilian_low &= ~job.flag - else - job_civilian_low |= job.flag - SetChoices(user) - return 1 + var/jpval = null + switch(desiredLvl) + if(3) + jpval = JP_LOW + if(2) + jpval = JP_MEDIUM + if(1) + jpval = JP_HIGH - SetJobPreferenceLevel(job, desiredLvl) + if(role == SSjob.overflow_role) + if(job_preferences["[job.title]"] == JP_LOW) + jpval = null + else + jpval = JP_LOW + + SetJobPreferenceLevel(job, jpval) SetChoices(user) return 1 /datum/preferences/proc/ResetJobs() - - job_civilian_high = 0 - job_civilian_med = 0 - job_civilian_low = 0 - - job_medsci_high = 0 - job_medsci_med = 0 - job_medsci_low = 0 - - job_engsec_high = 0 - job_engsec_med = 0 - job_engsec_low = 0 - - -/datum/preferences/proc/GetJobDepartment(datum/job/job, level) - if(!job || !level) - return 0 - switch(job.department_flag) - if(CIVILIAN) - switch(level) - if(1) - return job_civilian_high - if(2) - return job_civilian_med - if(3) - return job_civilian_low - if(MEDSCI) - switch(level) - if(1) - return job_medsci_high - if(2) - return job_medsci_med - if(3) - return job_medsci_low - if(ENGSEC) - switch(level) - if(1) - return job_engsec_high - if(2) - return job_engsec_med - if(3) - return job_engsec_low - return 0 + job_preferences = list() /datum/preferences/proc/SetQuirks(mob/user) if(!SSquirks) @@ -1407,19 +1358,21 @@ GLOBAL_LIST_EMPTY(preferences_datums) facial_hair_style = random_facial_hair_style(gender) if("underwear") underwear = random_underwear(gender) - undie_color = random_color() + undie_color = random_short_color() if("undershirt") undershirt = random_undershirt(gender) - shirt_color = random_color() + shirt_color = random_short_color() if("socks") socks = random_socks() - socks_color = random_color() + socks_color = random_short_color() if(BODY_ZONE_PRECISE_EYES) eye_color = random_eye_color() if("s_tone") skin_tone = random_skin_tone() if("bag") backbag = pick(GLOB.backbaglist) + if("suit") + jumpsuit_style = pick(GLOB.jumpsuitlist) if("all") random_character() @@ -1526,7 +1479,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) if("undie_color") var/n_undie_color = input(user, "Choose your underwear's color.", "Character Preference", undie_color) as color|null if(n_undie_color) - undie_color = n_undie_color + undie_color = sanitize_hexcolor(n_undie_color) if("undershirt") var/new_undershirt = input(user, "Choose your character's undershirt:", "Character Preference") as null|anything in GLOB.undershirt_list @@ -1536,7 +1489,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) if("shirt_color") var/n_shirt_color = input(user, "Choose your undershirt's color.", "Character Preference", shirt_color) as color|null if(n_shirt_color) - shirt_color = n_shirt_color + shirt_color = sanitize_hexcolor(n_shirt_color) if("socks") var/new_socks = input(user, "Choose your character's socks:", "Character Preference") as null|anything in GLOB.socks_list @@ -1546,7 +1499,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) if("socks_color") var/n_socks_color = input(user, "Choose your socks' color.", "Character Preference", socks_color) as color|null if(n_socks_color) - socks_color = n_socks_color + socks_color = sanitize_hexcolor(n_socks_color) if("eyes") var/new_eyes = input(user, "Choose your character's eye colour:", "Character Preference","#"+eye_color) as color|null @@ -1554,9 +1507,9 @@ GLOBAL_LIST_EMPTY(preferences_datums) eye_color = sanitize_hexcolor(new_eyes) if("species") - var/result = input(user, "Select a species", "Species Selection") as null|anything in GLOB.roundstart_races + var/result = input(user, "Select a species", "Species Selection") as null|anything in GLOB.roundstart_race_names if(result) - var/newtype = GLOB.species_list[result] + var/newtype = GLOB.species_list[GLOB.roundstart_race_names[result]] pref_species = new newtype() //let's ensure that no weird shit happens on species swapping. custom_species = null @@ -1684,6 +1637,12 @@ GLOBAL_LIST_EMPTY(preferences_datums) features["tail_human"] = "None" features["tail_lizard"] = "None" + if("meats") + var/new_meat + new_meat = input(user, "Choose your character's meat type:", "Character Preference") as null|anything in GLOB.meat_types + if(new_meat) + features["meat_type"] = new_meat + if("snout") var/list/snowflake_snouts_list = list() for(var/path in GLOB.snouts_list) @@ -1719,6 +1678,11 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(new_horns) features["horns"] = new_horns + if("horns_color") + var/new_horn_color = input(user, "Choose your character's horn colour:", "Character Preference","#"+horn_color) as color|null + if(new_horn_color) + horn_color = sanitize_hexcolor(new_horn_color) + if("wings") var/new_wings new_wings = input(user, "Choose your character's wings:", "Character Preference") as null|anything in GLOB.r_wings_list @@ -1753,11 +1717,17 @@ GLOBAL_LIST_EMPTY(preferences_datums) features["legs"] = new_legs update_preview_icon() - if("moth_wings") - var/new_moth_wings - new_moth_wings = input(user, "Choose your character's wings:", "Character Preference") as null|anything in GLOB.moth_wings_list - if(new_moth_wings) - features["moth_wings"] = new_moth_wings + if("insect_wings") + var/new_insect_wings + new_insect_wings = input(user, "Choose your character's wings:", "Character Preference") as null|anything in GLOB.insect_wings_list + if(new_insect_wings) + features["insect_wings"] = new_insect_wings + + if("insect_fluffs") + var/new_insect_fluff + new_insect_fluff = input(user, "Choose your character's wings:", "Character Preference") as null|anything in GLOB.insect_fluffs_list + if(new_insect_fluff) + features["insect_fluff"] = new_insect_fluff if("s_tone") var/new_s_tone = input(user, "Choose your character's skin-tone:", "Character Preference") as null|anything in GLOB.skin_tones @@ -1951,11 +1921,23 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(new_ooccolor) ooccolor = new_ooccolor + if("aooccolor") + var/new_aooccolor = input(user, "Choose your Antag OOC colour:", "Game Preference",ooccolor) as color|null + if(new_aooccolor) + aooccolor = new_aooccolor + if("bag") var/new_backbag = input(user, "Choose your character's style of bag:", "Character Preference") as null|anything in GLOB.backbaglist if(new_backbag) backbag = new_backbag + if("suit") + if(jumpsuit_style == PREF_SUIT) + jumpsuit_style = PREF_SKIRT + else + jumpsuit_style = PREF_SUIT + + if("uplink_loc") var/new_loc = input(user, "Choose your character's traitor uplink spawn location:", "Character Preference") as null|anything in GLOB.uplink_spawn_loc_list if(new_loc) @@ -2018,6 +2000,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) features["genitals_use_skintone"] = !features["genitals_use_skintone"] if("arousable") arousable = !arousable + if("lewdchem") + lewdchem = !lewdchem if("has_cock") features["has_cock"] = !features["has_cock"] if(features["has_cock"] == FALSE) @@ -2034,6 +2018,10 @@ GLOBAL_LIST_EMPTY(preferences_datums) features["eggsack_internal"] = !features["eggsack_internal"] if("has_breasts") features["has_breasts"] = !features["has_breasts"] + if(features["has_breasts"] == FALSE) + features["breasts_producing"] = FALSE + if("breasts_producing") + features["breasts_producing"] = !features["breasts_producing"] if("has_vag") features["has_vag"] = !features["has_vag"] if(features["has_vag"] == FALSE) @@ -2217,7 +2205,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) if(!is_loadout_slot_available(G.category)) to_chat(user, "You cannot take this loadout, as you've already chosen too many of the same category!") return - if(G.ckeywhitelist && G.ckeywhitelist.len && !(user.ckey in G.ckeywhitelist)) + if(G.donoritem && !G.donator_ckey_check(user.ckey)) to_chat(user, "This is an item intended for donator use only. You are not authorized to use this item.") return if(gear_points >= initial(G.cost)) @@ -2259,6 +2247,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) organ_eyes.old_eye_color = eye_color character.hair_color = hair_color character.facial_hair_color = facial_hair_color + character.horn_color = horn_color character.skin_tone = skin_tone character.hair_style = hair_style @@ -2276,6 +2265,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) character.backbag = backbag + character.jumpsuit_style = jumpsuit_style var/datum/species/chosen_species if(!roundstart_checks || (pref_species.id in GLOB.roundstart_races)) @@ -2298,7 +2288,10 @@ GLOBAL_LIST_EMPTY(preferences_datums) if("xenotail" in pref_species.default_features) character.dna.species.mutant_bodyparts |= "xenotail" - if(("legs" in character.dna.species.mutant_bodyparts) && character.dna.features["legs"] == "Digitigrade Legs") + if("meat_type" in pref_species.default_features) + character.type_of_meat = GLOB.meat_types[features["meat_type"]] + + if(("legs" in character.dna.species.mutant_bodyparts) && (character.dna.features["legs"] == "Digitigrade" || character.dna.features["legs"] == "Avian")) pref_species.species_traits |= DIGITIGRADE else pref_species.species_traits -= DIGITIGRADE diff --git a/code/modules/client/preferences_savefile.dm b/code/modules/client/preferences_savefile.dm index b9c5cb7ef9..ebd135916c 100644 --- a/code/modules/client/preferences_savefile.dm +++ b/code/modules/client/preferences_savefile.dm @@ -5,7 +5,7 @@ // You do not need to raise this if you are adding new values that have sane defaults. // Only raise this value when changing the meaning/format/name/layout of an existing value // where you would want the updater procs below to run -#define SAVEFILE_VERSION_MAX 20 +#define SAVEFILE_VERSION_MAX 23 /* SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Carn @@ -49,6 +49,65 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car pda_style = "mono" if(current_version < 20) pda_color = "#808000" + if((current_version < 21) && features["meat_type"] && (features["meat_type"] == null)) + features["meat_type"] = "Mammalian" + if(current_version < 22) + + job_preferences = list() //It loaded null from nonexistant savefile field. + + var/job_civilian_high = 0 + var/job_civilian_med = 0 + var/job_civilian_low = 0 + + var/job_medsci_high = 0 + var/job_medsci_med = 0 + var/job_medsci_low = 0 + + var/job_engsec_high = 0 + var/job_engsec_med = 0 + var/job_engsec_low = 0 + + S["job_civilian_high"] >> job_civilian_high + S["job_civilian_med"] >> job_civilian_med + S["job_civilian_low"] >> job_civilian_low + S["job_medsci_high"] >> job_medsci_high + S["job_medsci_med"] >> job_medsci_med + S["job_medsci_low"] >> job_medsci_low + S["job_engsec_high"] >> job_engsec_high + S["job_engsec_med"] >> job_engsec_med + S["job_engsec_low"] >> job_engsec_low + + //Can't use SSjob here since this happens right away on login + for(var/job in subtypesof(/datum/job)) + var/datum/job/J = job + var/new_value + var/fval = initial(J.flag) + switch(initial(J.department_flag)) + if(CIVILIAN) + if(job_civilian_high & fval) + new_value = JP_HIGH + else if(job_civilian_med & fval) + new_value = JP_MEDIUM + else if(job_civilian_low & fval) + new_value = JP_LOW + if(MEDSCI) + if(job_medsci_high & fval) + new_value = JP_HIGH + else if(job_medsci_med & fval) + new_value = JP_MEDIUM + else if(job_medsci_low & fval) + new_value = JP_LOW + if(ENGSEC) + if(job_engsec_high & fval) + new_value = JP_HIGH + else if(job_engsec_med & fval) + new_value = JP_MEDIUM + else if(job_engsec_low & fval) + new_value = JP_LOW + if(new_value) + job_preferences["[initial(J.title)]"] = new_value + else if(current_version < 23) // we are fixing a gamebreaking bug. + job_preferences = list() //It loaded null from nonexistant savefile field. /datum/preferences/proc/load_path(ckey,filename="preferences.sav") if(!ckey) @@ -117,6 +176,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["widescreenpref"] >> widescreenpref S["autostand"] >> autostand S["cit_toggles"] >> cit_toggles + S["lewdchem"] >> lewdchem //try to fix any outdated data if necessary if(needs_update >= 0) @@ -211,6 +271,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["widescreenpref"], widescreenpref) WRITE_FILE(S["autostand"], autostand) WRITE_FILE(S["cit_toggles"], cit_toggles) + WRITE_FILE(S["lewdchem"], lewdchem) return 1 @@ -244,6 +305,11 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car var/species_id S["species"] >> species_id if(species_id) + if(species_id == "avian" || species_id == "aquatic") + species_id = "mammal" + else if(species_id == "moth") + species_id = "insect" + var/newtype = GLOB.species_list[species_id] if(newtype) pref_species = new newtype @@ -252,27 +318,29 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["features["mcolor"]"] , "#FFF") //Character - S["real_name"] >> real_name - S["nameless"] >> nameless - S["custom_species"] >> custom_species - S["name_is_always_random"] >> be_random_name - S["body_is_always_random"] >> be_random_body - S["gender"] >> gender - S["age"] >> age - S["hair_color"] >> hair_color - S["facial_hair_color"] >> facial_hair_color - S["eye_color"] >> eye_color - S["skin_tone"] >> skin_tone - S["hair_style_name"] >> hair_style - S["facial_style_name"] >> facial_hair_style - S["underwear"] >> underwear - S["undie_color"] >> undie_color - S["undershirt"] >> undershirt - S["shirt_color"] >> shirt_color - S["socks"] >> socks - S["socks_color"] >> socks_color - S["backbag"] >> backbag - S["uplink_loc"] >> uplink_spawn_loc + S["real_name"] >> real_name + S["nameless"] >> nameless + S["custom_species"] >> custom_species + S["name_is_always_random"] >> be_random_name + S["body_is_always_random"] >> be_random_body + S["gender"] >> gender + S["age"] >> age + S["hair_color"] >> hair_color + S["facial_hair_color"] >> facial_hair_color + S["eye_color"] >> eye_color + S["skin_tone"] >> skin_tone + S["hair_style_name"] >> hair_style + S["facial_style_name"] >> facial_hair_style + S["underwear"] >> underwear + S["undie_color"] >> undie_color + S["undershirt"] >> undershirt + S["shirt_color"] >> shirt_color + S["socks"] >> socks + S["socks_color"] >> socks_color + S["horn_color"] >> horn_color + S["backbag"] >> backbag + S["jumpsuit_style"] >> jumpsuit_style + S["uplink_loc"] >> uplink_spawn_loc S["feature_mcolor"] >> features["mcolor"] S["feature_lizard_tail"] >> features["tail_lizard"] S["feature_lizard_snout"] >> features["snout"] @@ -281,29 +349,23 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["feature_lizard_spines"] >> features["spines"] S["feature_lizard_body_markings"] >> features["body_markings"] S["feature_lizard_legs"] >> features["legs"] - S["feature_moth_wings"] >> features["moth_wings"] S["feature_human_tail"] >> features["tail_human"] S["feature_human_ears"] >> features["ears"] + S["feature_insect_wings"] >> features["insect_wings"] + S["feature_insect_fluff"] >> features["insect_fluff"] //Custom names for(var/custom_name_id in GLOB.preferences_custom_names) var/savefile_slot_name = custom_name_id + "_name" //TODO remove this S[savefile_slot_name] >> custom_names[custom_name_id] - S["preferred_ai_core_display"] >> preferred_ai_core_display - S["prefered_security_department"] >> prefered_security_department + S["preferred_ai_core_display"] >> preferred_ai_core_display + S["prefered_security_department"] >> prefered_security_department //Jobs S["joblessrole"] >> joblessrole - S["job_civilian_high"] >> job_civilian_high - S["job_civilian_med"] >> job_civilian_med - S["job_civilian_low"] >> job_civilian_low - S["job_medsci_high"] >> job_medsci_high - S["job_medsci_med"] >> job_medsci_med - S["job_medsci_low"] >> job_medsci_low - S["job_engsec_high"] >> job_engsec_high - S["job_engsec_med"] >> job_engsec_med - S["job_engsec_low"] >> job_engsec_low + //Load prefs + S["job_preferences"] >> job_preferences //Quirks S["all_quirks"] >> all_quirks @@ -322,6 +384,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["feature_mam_tail_animated"] >> features["mam_tail_animated"] S["feature_taur"] >> features["taur"] S["feature_mam_snouts"] >> features["mam_snouts"] + S["feature_meat"] >> features["meat_type"] //Xeno features S["feature_xeno_tail"] >> features["xenotail"] S["feature_xeno_dors"] >> features["xenodorsal"] @@ -346,6 +409,7 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car S["feature_breasts_shape"] >> features["breasts_shape"] S["feature_breasts_color"] >> features["breasts_color"] S["feature_breasts_fluid"] >> features["breasts_fluid"] + S["feature_breasts_producing"] >> features["breasts_producing"] //vagina features S["feature_has_vag"] >> features["has_vag"] S["feature_vag_shape"] >> features["vag_shape"] @@ -370,11 +434,11 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car //Sanitize - real_name = reject_bad_name(real_name) - gender = sanitize_gender(gender, TRUE, TRUE) + real_name = reject_bad_name(real_name) + gender = sanitize_gender(gender, TRUE, TRUE) if(!real_name) - real_name = random_unique_name(gender) - custom_species = reject_bad_name(custom_species) + real_name = random_unique_name(gender) + custom_species = reject_bad_name(custom_species) for(var/custom_name_id in GLOB.preferences_custom_names) var/namedata = GLOB.preferences_custom_names[custom_name_id] custom_names[custom_name_id] = reject_bad_name(custom_names[custom_name_id],namedata["allow_numbers"]) @@ -384,56 +448,55 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car if(!features["mcolor"] || features["mcolor"] == "#000") features["mcolor"] = pick("FFFFFF","7F7F7F", "7FFF7F", "7F7FFF", "FF7F7F", "7FFFFF", "FF7FFF", "FFFF7F") - nameless = sanitize_integer(nameless, 0, 1, initial(nameless)) + nameless = sanitize_integer(nameless, 0, 1, initial(nameless)) be_random_name = sanitize_integer(be_random_name, 0, 1, initial(be_random_name)) be_random_body = sanitize_integer(be_random_body, 0, 1, initial(be_random_body)) if(gender == MALE) - hair_style = sanitize_inlist(hair_style, GLOB.hair_styles_male_list) + hair_style = sanitize_inlist(hair_style, GLOB.hair_styles_male_list) facial_hair_style = sanitize_inlist(facial_hair_style, GLOB.facial_hair_styles_male_list) else - hair_style = sanitize_inlist(hair_style, GLOB.hair_styles_female_list) + hair_style = sanitize_inlist(hair_style, GLOB.hair_styles_female_list) facial_hair_style = sanitize_inlist(facial_hair_style, GLOB.facial_hair_styles_female_list) - underwear = sanitize_inlist(underwear, GLOB.underwear_list) - undie_color = sanitize_hexcolor(undie_color, 6, 1, initial(undie_color)) - undershirt = sanitize_inlist(undershirt, GLOB.undershirt_list) - shirt_color = sanitize_hexcolor(shirt_color, 6, 1, initial(shirt_color)) - socks = sanitize_inlist(socks, GLOB.socks_list) - socks_color = sanitize_hexcolor(socks_color, 6, 1, initial(socks_color)) - age = sanitize_integer(age, AGE_MIN, AGE_MAX, initial(age)) - hair_color = sanitize_hexcolor(hair_color, 3, 0) - facial_hair_color = sanitize_hexcolor(facial_hair_color, 3, 0) - eye_color = sanitize_hexcolor(eye_color, 3, 0) - skin_tone = sanitize_inlist(skin_tone, GLOB.skin_tones) - backbag = sanitize_inlist(backbag, GLOB.backbaglist, initial(backbag)) - uplink_spawn_loc = sanitize_inlist(uplink_spawn_loc, GLOB.uplink_spawn_loc_list, initial(uplink_spawn_loc)) - features["mcolor"] = sanitize_hexcolor(features["mcolor"], 3, 0) - features["tail_lizard"] = sanitize_inlist(features["tail_lizard"], GLOB.tails_list_lizard) - features["tail_human"] = sanitize_inlist(features["tail_human"], GLOB.tails_list_human) - features["snout"] = sanitize_inlist(features["snout"], GLOB.snouts_list) - features["horns"] = sanitize_inlist(features["horns"], GLOB.horns_list) - features["ears"] = sanitize_inlist(features["ears"], GLOB.ears_list) - features["frills"] = sanitize_inlist(features["frills"], GLOB.frills_list) - features["spines"] = sanitize_inlist(features["spines"], GLOB.spines_list) - features["body_markings"] = sanitize_inlist(features["body_markings"], GLOB.body_markings_list) + underwear = sanitize_inlist(underwear, GLOB.underwear_list) + undie_color = sanitize_hexcolor(undie_color, 3, FALSE, initial(undie_color)) + undershirt = sanitize_inlist(undershirt, GLOB.undershirt_list) + shirt_color = sanitize_hexcolor(shirt_color, 3, FALSE, initial(shirt_color)) + socks = sanitize_inlist(socks, GLOB.socks_list) + socks_color = sanitize_hexcolor(socks_color, 3, FALSE, initial(socks_color)) + age = sanitize_integer(age, AGE_MIN, AGE_MAX, initial(age)) + hair_color = sanitize_hexcolor(hair_color, 3, 0) + facial_hair_color = sanitize_hexcolor(facial_hair_color, 3, 0) + eye_color = sanitize_hexcolor(eye_color, 3, 0) + skin_tone = sanitize_inlist(skin_tone, GLOB.skin_tones) + horn_color = sanitize_hexcolor(horn_color, 3, FALSE) + backbag = sanitize_inlist(backbag, GLOB.backbaglist, initial(backbag)) + jumpsuit_style = sanitize_inlist(jumpsuit_style, GLOB.jumpsuitlist, initial(jumpsuit_style)) + uplink_spawn_loc = sanitize_inlist(uplink_spawn_loc, GLOB.uplink_spawn_loc_list, initial(uplink_spawn_loc)) + features["mcolor"] = sanitize_hexcolor(features["mcolor"], 3, 0) + features["tail_lizard"] = sanitize_inlist(features["tail_lizard"], GLOB.tails_list_lizard) + features["tail_human"] = sanitize_inlist(features["tail_human"], GLOB.tails_list_human) + features["snout"] = sanitize_inlist(features["snout"], GLOB.snouts_list) + features["horns"] = sanitize_inlist(features["horns"], GLOB.horns_list) + features["ears"] = sanitize_inlist(features["ears"], GLOB.ears_list) + features["frills"] = sanitize_inlist(features["frills"], GLOB.frills_list) + features["spines"] = sanitize_inlist(features["spines"], GLOB.spines_list) + features["body_markings"] = sanitize_inlist(features["body_markings"], GLOB.body_markings_list) features["feature_lizard_legs"] = sanitize_inlist(features["legs"], GLOB.legs_list) - features["moth_wings"] = sanitize_inlist(features["moth_wings"], GLOB.moth_wings_list) + features["insect_wings"] = sanitize_inlist(features["insect_wings"], GLOB.insect_wings_list) + features["insect_fluff"] = sanitize_inlist(features["insect_fluff"], GLOB.insect_fluffs_list) joblessrole = sanitize_integer(joblessrole, 1, 3, initial(joblessrole)) - job_civilian_high = sanitize_integer(job_civilian_high, 0, 65535, initial(job_civilian_high)) - job_civilian_med = sanitize_integer(job_civilian_med, 0, 65535, initial(job_civilian_med)) - job_civilian_low = sanitize_integer(job_civilian_low, 0, 65535, initial(job_civilian_low)) - job_medsci_high = sanitize_integer(job_medsci_high, 0, 65535, initial(job_medsci_high)) - job_medsci_med = sanitize_integer(job_medsci_med, 0, 65535, initial(job_medsci_med)) - job_medsci_low = sanitize_integer(job_medsci_low, 0, 65535, initial(job_medsci_low)) - job_engsec_high = sanitize_integer(job_engsec_high, 0, 65535, initial(job_engsec_high)) - job_engsec_med = sanitize_integer(job_engsec_med, 0, 65535, initial(job_engsec_med)) - job_engsec_low = sanitize_integer(job_engsec_low, 0, 65535, initial(job_engsec_low)) + //Validate job prefs + for(var/j in job_preferences) + if(job_preferences["[j]"] != JP_LOW && job_preferences["[j]"] != JP_MEDIUM && job_preferences["[j]"] != JP_HIGH) + job_preferences -= j all_quirks = SANITIZE_LIST(all_quirks) + positive_quirks = SANITIZE_LIST(positive_quirks) negative_quirks = SANITIZE_LIST(negative_quirks) - neutral_quirks = SANITIZE_LIST(neutral_quirks) + neutral_quirks = SANITIZE_LIST(neutral_quirks) cit_character_pref_load(S) @@ -455,30 +518,32 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["version"] , SAVEFILE_VERSION_MAX) //load_character will sanitize any bad data, so assume up-to-date.) //Character - WRITE_FILE(S["real_name"] , real_name) - WRITE_FILE(S["nameless"] , nameless) - WRITE_FILE(S["custom_species"] , custom_species) - WRITE_FILE(S["name_is_always_random"] , be_random_name) - WRITE_FILE(S["body_is_always_random"] , be_random_body) - WRITE_FILE(S["gender"] , gender) - WRITE_FILE(S["age"] , age) - WRITE_FILE(S["hair_color"] , hair_color) - WRITE_FILE(S["facial_hair_color"] , facial_hair_color) - WRITE_FILE(S["eye_color"] , eye_color) - WRITE_FILE(S["skin_tone"] , skin_tone) - WRITE_FILE(S["hair_style_name"] , hair_style) - WRITE_FILE(S["facial_style_name"] , facial_hair_style) - WRITE_FILE(S["underwear"] , underwear) - WRITE_FILE(S["undie_color"] , undie_color) - WRITE_FILE(S["undershirt"] , undershirt) - WRITE_FILE(S["shirt_color"] , shirt_color) - WRITE_FILE(S["socks"] , socks) - WRITE_FILE(S["socks_color"] , socks_color) - WRITE_FILE(S["backbag"] , backbag) - WRITE_FILE(S["uplink_loc"] , uplink_spawn_loc) - WRITE_FILE(S["species"] , pref_species.id) + WRITE_FILE(S["real_name"] , real_name) + WRITE_FILE(S["nameless"] , nameless) + WRITE_FILE(S["custom_species"] , custom_species) + WRITE_FILE(S["name_is_always_random"] , be_random_name) + WRITE_FILE(S["body_is_always_random"] , be_random_body) + WRITE_FILE(S["gender"] , gender) + WRITE_FILE(S["age"] , age) + WRITE_FILE(S["hair_color"] , hair_color) + WRITE_FILE(S["facial_hair_color"] , facial_hair_color) + WRITE_FILE(S["eye_color"] , eye_color) + WRITE_FILE(S["skin_tone"] , skin_tone) + WRITE_FILE(S["hair_style_name"] , hair_style) + WRITE_FILE(S["facial_style_name"] , facial_hair_style) + WRITE_FILE(S["underwear"] , underwear) + WRITE_FILE(S["undie_color"] , undie_color) + WRITE_FILE(S["undershirt"] , undershirt) + WRITE_FILE(S["shirt_color"] , shirt_color) + WRITE_FILE(S["socks"] , socks) + WRITE_FILE(S["socks_color"] , socks_color) + WRITE_FILE(S["horn_color"] , horn_color) + WRITE_FILE(S["backbag"] , backbag) + WRITE_FILE(S["jumpsuit_style"] , jumpsuit_style) + WRITE_FILE(S["uplink_loc"] , uplink_spawn_loc) + WRITE_FILE(S["species"] , pref_species.id) WRITE_FILE(S["feature_mcolor"] , features["mcolor"]) - WRITE_FILE(S["feature_lizard_tail"] , features["tail_lizard"]) + WRITE_FILE(S["feature_lizard_tail"] , features["tail_lizard"]) WRITE_FILE(S["feature_human_tail"] , features["tail_human"]) WRITE_FILE(S["feature_lizard_snout"] , features["snout"]) WRITE_FILE(S["feature_lizard_horns"] , features["horns"]) @@ -486,28 +551,23 @@ SAVEFILE UPDATING/VERSIONING - 'Simplified', or rather, more coder-friendly ~Car WRITE_FILE(S["feature_lizard_frills"] , features["frills"]) WRITE_FILE(S["feature_lizard_spines"] , features["spines"]) WRITE_FILE(S["feature_lizard_body_markings"] , features["body_markings"]) - WRITE_FILE(S["feature_lizard_legs"] , features["legs"]) - WRITE_FILE(S["feature_moth_wings"] , features["moth_wings"]) + WRITE_FILE(S["feature_lizard_legs"] , features["legs"]) + WRITE_FILE(S["feature_insect_wings"] , features["insect_wings"]) + WRITE_FILE(S["feature_insect_fluff"] , features["insect_fluff"]) + WRITE_FILE(S["feature_meat"] , features["meat_type"]) //Custom names for(var/custom_name_id in GLOB.preferences_custom_names) var/savefile_slot_name = custom_name_id + "_name" //TODO remove this WRITE_FILE(S[savefile_slot_name],custom_names[custom_name_id]) - WRITE_FILE(S["preferred_ai_core_display"] , preferred_ai_core_display) - WRITE_FILE(S["prefered_security_department"] , prefered_security_department) + WRITE_FILE(S["preferred_ai_core_display"] , preferred_ai_core_display) + WRITE_FILE(S["prefered_security_department"] , prefered_security_department) //Jobs WRITE_FILE(S["joblessrole"] , joblessrole) - WRITE_FILE(S["job_civilian_high"] , job_civilian_high) - WRITE_FILE(S["job_civilian_med"] , job_civilian_med) - WRITE_FILE(S["job_civilian_low"] , job_civilian_low) - WRITE_FILE(S["job_medsci_high"] , job_medsci_high) - WRITE_FILE(S["job_medsci_med"] , job_medsci_med) - WRITE_FILE(S["job_medsci_low"] , job_medsci_low) - WRITE_FILE(S["job_engsec_high"] , job_engsec_high) - WRITE_FILE(S["job_engsec_med"] , job_engsec_med) - WRITE_FILE(S["job_engsec_low"] , job_engsec_low) + //Write prefs + WRITE_FILE(S["job_preferences"] , job_preferences) //Quirks WRITE_FILE(S["all_quirks"] , all_quirks) diff --git a/code/modules/client/verbs/aooc.dm b/code/modules/client/verbs/aooc.dm index 893501a852..311c22955d 100644 --- a/code/modules/client/verbs/aooc.dm +++ b/code/modules/client/verbs/aooc.dm @@ -1,3 +1,6 @@ +GLOBAL_VAR_INIT(AOOC_COLOR, null)//If this is null, use the CSS for OOC. Otherwise, use a custom colour. +GLOBAL_VAR_INIT(normal_aooc_colour, "#ce254f") + /client/verb/aooc(msg as text) set name = "AOOC" set desc = "An OOC channel exclusive to antagonists." @@ -50,7 +53,7 @@ var/keyname = key if(prefs.unlock_content) if(prefs.toggles & MEMBER_PUBLIC) - keyname = "[icon2html('icons/member_content.dmi', world, "blag")][keyname]" + keyname = "[icon2html('icons/member_content.dmi', world, "blag")][keyname]" //The linkify span classes and linkify=TRUE below make ooc text get clickable chat href links if you pass in something resembling a url var/antaglisting = list() @@ -74,23 +77,27 @@ else to_chat(C, "Antag OOC: [keyname][holder.fakekey ? "/([holder.fakekey])" : ""]: ") else - to_chat(C, "Antag OOC: [holder.fakekey ? holder.fakekey : key]: ") + if(GLOB.AOOC_COLOR) + to_chat(C, "Antag OOC: [holder.fakekey ? holder.fakekey : key]: ") + else + to_chat(C, "Antag OOC: [holder.fakekey ? holder.fakekey : key]: ") else if(!(key in C.prefs.ignoring)) - to_chat(C, "Antag OOC: [keyname]: ") - -GLOBAL_VAR_INIT(antag_ooc_colour, AOOC_COLOR) + if(GLOB.AOOC_COLOR) + to_chat(C, "Antag OOC: [keyname]: ") + else + to_chat(C, "Antag OOC: [keyname]: ") /client/proc/set_aooc(newColor as color) set name = "Set Antag OOC Color" set desc = "Modifies antag OOC Color" set category = "Fun" - GLOB.antag_ooc_colour = sanitize_ooccolor(newColor) + GLOB.AOOC_COLOR = sanitize_ooccolor(newColor) /client/proc/reset_aooc() set name = "Reset Antag OOC Color" set desc = "Returns antag OOC Color to default" set category = "Fun" - GLOB.antag_ooc_colour = AOOC_COLOR + GLOB.AOOC_COLOR = null /proc/toggle_aooc(toggle = null) if(toggle != null) //if we're specifically en/disabling ooc diff --git a/code/modules/client/verbs/ooc.dm b/code/modules/client/verbs/ooc.dm index 5df13a1ffe..8a233025a1 100644 --- a/code/modules/client/verbs/ooc.dm +++ b/code/modules/client/verbs/ooc.dm @@ -1,3 +1,6 @@ +GLOBAL_VAR_INIT(OOC_COLOR, null)//If this is null, use the CSS for OOC. Otherwise, use a custom colour. +GLOBAL_VAR_INIT(normal_ooc_colour, "#002eb8") + /client/verb/ooc(msg as text) set name = "OOC" //Gave this shit a shorter name so you only have to time out "ooc" rather than "ooc message" to use it --NeoFite set category = "OOC" @@ -66,9 +69,15 @@ else to_chat(C, "OOC: [keyname][holder.fakekey ? "/([holder.fakekey])" : ""]: ") else - to_chat(C, "OOC: [holder.fakekey ? holder.fakekey : key]: ") + if(GLOB.OOC_COLOR) + to_chat(C, "OOC: [holder.fakekey ? holder.fakekey : key]: ") + else + to_chat(C, "OOC: [holder.fakekey ? holder.fakekey : key]: ") else if(!(key in C.prefs.ignoring)) - to_chat(C, "OOC: [keyname]: ") + if(GLOB.OOC_COLOR) + to_chat(C, "OOC: [keyname]: ") + else + to_chat(C, "OOC: [keyname]: ") /proc/toggle_ooc(toggle = null) if(toggle != null) //if we're specifically en/disabling ooc @@ -99,19 +108,17 @@ else GLOB.dooc_allowed = !GLOB.dooc_allowed -GLOBAL_VAR_INIT(normal_ooc_colour, OOC_COLOR) - /client/proc/set_ooc(newColor as color) set name = "Set Player OOC Color" set desc = "Modifies player OOC Color" set category = "Fun" - GLOB.normal_ooc_colour = sanitize_ooccolor(newColor) + GLOB.OOC_COLOR = sanitize_ooccolor(newColor) /client/proc/reset_ooc() set name = "Reset Player OOC Color" set desc = "Returns player OOC Color to default" set category = "Fun" - GLOB.normal_ooc_colour = OOC_COLOR + GLOB.OOC_COLOR = null /client/verb/colorooc() set name = "Set Your OOC Color" diff --git a/code/modules/clothing/chameleon.dm b/code/modules/clothing/chameleon.dm index 7e7da2839e..33a83487fc 100644 --- a/code/modules/clothing/chameleon.dm +++ b/code/modules/clothing/chameleon.dm @@ -60,7 +60,7 @@ to_chat(owner, "You shouldn't be able to toggle a camogear helmetmask if you're not wearing it") if(new_headgear) // Force drop the item in the headslot, even though - // it's NODROP_1 + // it's TRAIT_NODROP D.dropItemToGround(target, TRUE) qdel(old_headgear) // where is `SLOT_HEAD` defined? WHO KNOWS @@ -418,12 +418,12 @@ /obj/item/clothing/head/chameleon/drone // The camohat, I mean, holographic hat projection, is part of the // drone itself. - item_flags = NODROP armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) // which means it offers no protection, it's just air and light /obj/item/clothing/head/chameleon/drone/Initialize() . = ..() + ADD_TRAIT(src, TRAIT_NODROP, ABSTRACT_ITEM_TRAIT) chameleon_action.random_look() var/datum/action/item_action/chameleon/drone/togglehatmask/togglehatmask_action = new(src) togglehatmask_action.UpdateButtonIcon() @@ -437,7 +437,7 @@ item_state = "gas_alt" resistance_flags = NONE armor = list("melee" = 5, "bullet" = 5, "laser" = 5, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) - clothing_flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS + clothing_flags = BLOCK_GAS_SMOKE_EFFECT | ALLOWINTERNALS flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR gas_transfer_coefficient = 0.01 permeability_coefficient = 0.01 @@ -472,13 +472,13 @@ /obj/item/clothing/mask/chameleon/drone //Same as the drone chameleon hat, undroppable and no protection - item_flags = NODROP armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) // Can drones use the voice changer part? Let's not find out. vchange = 0 /obj/item/clothing/mask/chameleon/drone/Initialize() . = ..() + ADD_TRAIT(src, TRAIT_NODROP, ABSTRACT_ITEM_TRAIT) chameleon_action.random_look() var/datum/action/item_action/chameleon/drone/togglehatmask/togglehatmask_action = new(src) togglehatmask_action.UpdateButtonIcon() @@ -630,3 +630,27 @@ /obj/item/stamp/chameleon/broken/Initialize() . = ..() chameleon_action.emp_randomise(INFINITY) + +/obj/item/clothing/neck/cloak/chameleon + name = "black tie" + desc = "A neosilk clip-on tie." + icon_state = "blacktie" + item_color = "blacktie" + resistance_flags = NONE + armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 50) + +/obj/item/clothing/neck/cloak/chameleon + var/datum/action/item_action/chameleon/change/chameleon_action + +/obj/item/clothing/neck/cloak/chameleon/Initialize() + . = ..() + chameleon_action = new(src) + chameleon_action.chameleon_type = /obj/item/clothing/neck + chameleon_action.chameleon_name = "Cloak" + chameleon_action.initialize_disguises() + +/obj/item/clothing/neck/cloak/chameleon/emp_act(severity) + . = ..() + if(. & EMP_PROTECT_SELF) + return + chameleon_action.emp_randomise() diff --git a/code/modules/clothing/clothing.dm b/code/modules/clothing/clothing.dm index 767b700051..ed3e9f9b89 100644 --- a/code/modules/clothing/clothing.dm +++ b/code/modules/clothing/clothing.dm @@ -43,6 +43,8 @@ /obj/item/clothing/Initialize() . = ..() + if(CHECK_BITFIELD(clothing_flags, VOICEBOX_TOGGLABLE)) + actions_types += /datum/action/item_action/toggle_voice_box if(ispath(pocket_storage_component_path)) LoadComponent(pocket_storage_component_path) @@ -135,7 +137,7 @@ update_clothes_damaged_state(TRUE) if(ismob(loc)) //It's not important enough to warrant a message if nobody's wearing it var/mob/M = loc - M.visible_message("[M]'s [name] starts to fall apart!", "Your [name] starts to fall apart!") + to_chat(M, "Your [name] starts to fall apart!") /obj/item/clothing/proc/update_clothes_damaged_state(damaging = TRUE) var/index = "[REF(initial(icon))]-[initial(icon_state)]" diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm index 6e25db1fa6..097b10cae5 100644 --- a/code/modules/clothing/glasses/_glasses.dm +++ b/code/modules/clothing/glasses/_glasses.dm @@ -378,10 +378,13 @@ vision_flags = SEE_TURFS|SEE_MOBS|SEE_OBJS darkness_view = 8 scan_reagents = TRUE - item_flags = NODROP lighting_alpha = LIGHTING_PLANE_ALPHA_MOSTLY_INVISIBLE resistance_flags = LAVA_PROOF | FIRE_PROOF +/obj/item/clothing/glasses/godeye/Initialize() + . = ..() + ADD_TRAIT(src, TRAIT_NODROP, EYE_OF_GOD_TRAIT) + /obj/item/clothing/glasses/godeye/attackby(obj/item/W as obj, mob/user as mob, params) if(istype(W, src) && W != src && W.loc == user) if(W.icon_state == "godeye") diff --git a/code/modules/clothing/glasses/hud.dm b/code/modules/clothing/glasses/hud.dm index a87e95e28c..387aa65d20 100644 --- a/code/modules/clothing/glasses/hud.dm +++ b/code/modules/clothing/glasses/hud.dm @@ -24,11 +24,13 @@ desc = "[desc] The display is flickering slightly." /obj/item/clothing/glasses/hud/emag_act(mob/user) + . = ..() if(obj_flags & EMAGGED) return obj_flags |= EMAGGED to_chat(user, "PZZTTPFFFT") desc = "[desc] The display is flickering slightly." + return TRUE /obj/item/clothing/glasses/hud/health name = "health scanner HUD" diff --git a/code/modules/clothing/glasses/vg_glasses.dm b/code/modules/clothing/glasses/vg_glasses.dm index 449b34b22e..a51a03242c 100644 --- a/code/modules/clothing/glasses/vg_glasses.dm +++ b/code/modules/clothing/glasses/vg_glasses.dm @@ -6,21 +6,18 @@ name = "purple sunglasses" icon_state = "sun_purple" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/glasses.dmi' /obj/item/clothing/glasses/sunglasses/star name = "star-shaped sunglasses" desc = "Novelty sunglasses, both lenses are in the shape of a star." icon_state = "sun_star" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/glasses.dmi' /obj/item/clothing/glasses/sunglasses/rockstar name = "red star-shaped sunglasses" desc = "Novelty sunglasses with a fancy silver frame and two red-tinted star-shaped lenses. You should probably stomp on them and get a pair of normal ones." icon_state = "sun_star_silver" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/glasses.dmi' /obj/item/clothing/glasses/gglasses name = "Green Glasses" @@ -28,7 +25,6 @@ icon_state = "gglasses" item_state = "gglasses" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/glasses.dmi' /obj/item/clothing/glasses/welding/superior name = "superior welding goggles" @@ -36,7 +32,6 @@ icon_state = "rwelding-g" item_state = "rwelding-g" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/glasses.dmi' actions_types = list(/datum/action/item_action/toggle) flash_protect = 2 tint = 1 diff --git a/code/modules/clothing/gloves/_gloves.dm b/code/modules/clothing/gloves/_gloves.dm index 817fe59dcd..f0c1eeb833 100644 --- a/code/modules/clothing/gloves/_gloves.dm +++ b/code/modules/clothing/gloves/_gloves.dm @@ -8,6 +8,7 @@ slot_flags = ITEM_SLOT_GLOVES attack_verb = list("challenged") var/transfer_prints = FALSE + var/transfer_blood = 0 strip_delay = 20 equip_delay_other = 40 diff --git a/code/modules/clothing/gloves/miscellaneous.dm b/code/modules/clothing/gloves/miscellaneous.dm index bc36353ac5..cc6d65b74d 100644 --- a/code/modules/clothing/gloves/miscellaneous.dm +++ b/code/modules/clothing/gloves/miscellaneous.dm @@ -65,6 +65,9 @@ var/warcry = "AT" /obj/item/clothing/gloves/rapid/Touch(mob/living/target,proximity = TRUE) + if(!istype(target)) + return + var/mob/living/M = loc if(M.a_intent == INTENT_HARM) @@ -72,9 +75,33 @@ M.adjustStaminaLoss(-2) //Restore 2/3 of the stamina used assuming empty stam buffer. With proper stamina buffer management, this results in a net gain of +.5 stamina per click. if(warcry) M.say("[warcry]", ignore_spam = TRUE, forced = "north star warcry") + .= FALSE + /obj/item/clothing/gloves/rapid/attack_self(mob/user) var/input = stripped_input(user,"What do you want your battlecry to be? Max length of 6 characters.", ,"", 7) if(input) warcry = input + +/obj/item/clothing/gloves/rapid/hug + name = "Hugs of the North Star" + desc = "Just looking at these fills you with an urge to hug the shit out of people" + warcry = "owo" //Shouldn't ever come into play + +/obj/item/clothing/gloves/rapid/hug/Touch(mob/living/target,proximity = TRUE) + if(!istype(target)) + return + + var/mob/living/M = loc + + if(M.a_intent == INTENT_HELP) + if(target.health >= 0 && !HAS_TRAIT(target, TRAIT_FAKEDEATH)) //Can't hug people who are dying/dead + if(target.on_fire || target.lying ) //No spamming extinguishing, helping them up, or other non-hugging/patting help interactions + return + else + M.changeNext_move(CLICK_CD_RAPID) + . = FALSE + +/obj/item/clothing/gloves/rapid/hug/attack_self(mob/user) + return FALSE \ No newline at end of file diff --git a/code/modules/clothing/head/beanie.dm b/code/modules/clothing/head/beanie.dm index bbae5b261f..a5fb04d393 100644 --- a/code/modules/clothing/head/beanie.dm +++ b/code/modules/clothing/head/beanie.dm @@ -74,4 +74,13 @@ icon_state = "beaniestripedgreen" item_color = "beaniestripedgreen" +/obj/item/clothing/head/beanie/durathread + name = "durathread beanie" + desc = "A beanie made from durathread, its resilient fibres provide some protection to the wearer." + icon_state = "beaniedurathread" + item_color = null + armor = list("melee" = 25, "bullet" = 10, "laser" = 20,"energy" = 10, "bomb" = 30, "bio" = 15, "rad" = 20, "fire" = 100, "acid" = 50) + + + //No dog fashion sprites yet :( poor Ian can't be dope like the rest of us yet \ No newline at end of file diff --git a/code/modules/clothing/head/cit_hats.dm b/code/modules/clothing/head/cit_hats.dm index 7b0e68264f..df4a21d6c1 100644 --- a/code/modules/clothing/head/cit_hats.dm +++ b/code/modules/clothing/head/cit_hats.dm @@ -4,4 +4,3 @@ icon = 'modular_citadel/icons/obj/clothing/cit_hats.dmi' icon_state = "hunter" item_state = "hunter_worn" - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/head.dmi' diff --git a/code/modules/clothing/head/helmet.dm b/code/modules/clothing/head/helmet.dm index f4b4e4a96d..be6e270e45 100644 --- a/code/modules/clothing/head/helmet.dm +++ b/code/modules/clothing/head/helmet.dm @@ -336,3 +336,11 @@ for(var/X in actions) var/datum/action/A = X A.UpdateButtonIcon() + + +/obj/item/clothing/head/helmet/durathread + name = "makeshift helmet" + desc = "A hardhat with strips of leather and durathread for additional blunt protection." + icon_state = "durathread" + item_state = "durathread" + armor = list("melee" = 25, "bullet" = 10, "laser" = 20,"energy" = 10, "bomb" = 30, "bio" = 15, "rad" = 20, "fire" = 100, "acid" = 50) diff --git a/code/modules/clothing/head/jobs.dm b/code/modules/clothing/head/jobs.dm index 429401a626..298510564c 100644 --- a/code/modules/clothing/head/jobs.dm +++ b/code/modules/clothing/head/jobs.dm @@ -121,9 +121,12 @@ /obj/item/clothing/head/beret/highlander desc = "That was white fabric. Was." - item_flags = NODROP dog_fashion = null //THIS IS FOR SLAUGHTER, NOT PUPPIES +/obj/item/clothing/head/beret/highlander/Initialize() + . = ..() + ADD_TRAIT(src, TRAIT_NODROP, HIGHLANDER) + //Security /obj/item/clothing/head/HoS @@ -276,6 +279,13 @@ desc = "This headwear shows off your Cargonian leadership" icon_state = "qmberet" +/obj/item/clothing/head/beret/durathread + name = "durathread beret" + desc = "A beret made from durathread, its resilient fibres provide some protection to the wearer." + icon_state = "beretdurathread" + item_color = null + armor = list("melee" = 25, "bullet" = 10, "laser" = 20,"energy" = 10, "bomb" = 30, "bio" = 15, "rad" = 20, "fire" = 100, "acid" = 50) + #undef DRILL_DEFAULT #undef DRILL_SHOUTING #undef DRILL_YELLING diff --git a/code/modules/clothing/head/misc.dm b/code/modules/clothing/head/misc.dm index 277ce2a8ad..041f0ba012 100644 --- a/code/modules/clothing/head/misc.dm +++ b/code/modules/clothing/head/misc.dm @@ -221,9 +221,12 @@ icon_state = "shamebrero" item_state = "shamebrero" desc = "Once it's on, it never comes off." - item_flags = NODROP dog_fashion = null +/obj/item/clothing/head/sombrero/shamebrero/Initialize() + . = ..() + ADD_TRAIT(src, TRAIT_NODROP, SHAMEBRERO_TRAIT) + /obj/item/clothing/head/cone desc = "This cone is trying to warn you of something!" name = "warning cone" @@ -309,8 +312,8 @@ /obj/item/clothing/head/pharaoh name = "pharaoh hat" desc = "Walk like an Egyptian." - icon_state = "pharoah_hat" - icon_state = "pharoah_hat" + icon_state = "pharaoh_hat" + icon_state = "pharaoh_hat" /obj/item/clothing/head/jester/alt name = "jester hat" diff --git a/code/modules/clothing/head/soft_caps.dm b/code/modules/clothing/head/soft_caps.dm index 5c7514541d..b14b0575f9 100644 --- a/code/modules/clothing/head/soft_caps.dm +++ b/code/modules/clothing/head/soft_caps.dm @@ -129,3 +129,14 @@ icon_state = "emtsoft" item_color = "emt" dog_fashion = null + +/obj/item/clothing/head/soft/baseball + name = "baseball cap" + desc = "It's a robust baseball hat, this one belongs to syndicate major league team." + icon_state = "baseballsoft" + item_color = "baseballsoft" + item_state = "baseballsoft" + flags_inv = HIDEEYES|HIDEFACE + armor = list("melee" = 35, "bullet" = 35, "laser" = 25, "energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 20, "acid" = 90) + strip_delay = 90 //You dont take a Major Leage cap + dog_fashion = null \ No newline at end of file diff --git a/code/modules/clothing/head/vg_hats.dm b/code/modules/clothing/head/vg_hats.dm index efeb5291db..dc245cd39a 100644 --- a/code/modules/clothing/head/vg_hats.dm +++ b/code/modules/clothing/head/vg_hats.dm @@ -1,4 +1,3 @@ - /obj/item/clothing/head/helmet/dredd name = "Judge Helmet" desc = "Judge, Jury, and Executioner." @@ -12,7 +11,6 @@ max_heat_protection_temperature = SPACE_HELM_MAX_TEMP_PROTECT strip_delay = 80 dog_fashion = null - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/head.dmi' /obj/item/clothing/head/helmet/aviatorhelmet name = "Aviator Helmet" @@ -21,15 +19,12 @@ item_state = "aviator_helmet" icon_state = "aviator_helmet" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/head.dmi' /obj/item/clothing/head/helmet/biker name = "Biker's Helmet" desc = "This helmet should protect you from russians and masked vigilantes." armor = list(melee = 25, bullet = 15, laser = 20, energy = 10, bomb = 10, bio = 0, rad = 0) icon_state = "biker_helmet" - icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/head.dmi' flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR /obj/item/clothing/head/helmet/richard @@ -38,7 +33,6 @@ armor = list(melee = 0, bullet = 0, laser = 0, energy = 0, bomb = 0, bio = 0, rad = 0) icon_state = "richard" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/head.dmi' flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR /obj/item/clothing/head/helmet/megahelmet @@ -47,7 +41,6 @@ icon_state = "megahelmet" item_state = "megahelmet" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/head.dmi' siemens_coefficient = 1 /obj/item/clothing/head/helmet/protohelmet @@ -56,7 +49,6 @@ icon_state = "protohelmet" item_state = "protohelmet" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/head.dmi' siemens_coefficient = 1 /obj/item/clothing/head/helmet/megaxhelmet @@ -65,7 +57,6 @@ icon_state = "megaxhelmet" item_state = "megaxhelmet" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/head.dmi' /obj/item/clothing/head/helmet/joehelmet name = "Sniper Helmet" @@ -74,7 +65,6 @@ flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR item_state = "joehelmet" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/head.dmi' /obj/item/clothing/head/helmet/doomguy name = "Doomguy's helmet" @@ -83,7 +73,6 @@ flags_inv = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR item_state = "doom" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/head.dmi' armor = list(melee = 50, bullet = 40, laser = 40,energy = 40, bomb = 5, bio = 0, rad = 0) /obj/item/clothing/head/helmet/neorussian @@ -92,8 +81,6 @@ icon_state = "nr_helmet" item_state = "nr_helmet" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/head.dmi' - /obj/item/clothing/head/stalhelm name = "Stalhelm" @@ -101,7 +88,6 @@ icon_state = "stalhelm" item_state = "stalhelm" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/head.dmi' /obj/item/clothing/head/panzer name = "Panzer Cap" @@ -109,7 +95,6 @@ icon_state = "panzercap" item_state = "panzercap" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/head.dmi' /obj/item/clothing/head/naziofficer name = "Officer Cap" @@ -117,8 +102,6 @@ icon_state = "officercap" item_state = "officercap" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/head.dmi' - /obj/item/clothing/head/russobluecamohat name = "russian blue camo beret" @@ -133,7 +116,6 @@ icon_state = "russofurhat" item_state = "russofurhat" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/head.dmi' /obj/item/clothing/head/squatter_hat name = "slav squatter hat" @@ -141,7 +123,6 @@ item_state = "squatter_hat" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' desc = "Cyka blyat." - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/head.dmi' /obj/item/clothing/head/snake name = "snake head" @@ -149,8 +130,6 @@ icon_state = "snakehead" item_state = "snakehead" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/head.dmi' - /obj/item/clothing/head/mummy_rags name = "mummy rags" desc = "Ancient rags taken off from some mummy." @@ -158,7 +137,6 @@ item_state = "mummy" item_color = "mummy" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/head.dmi' flags_inv = HIDEHAIR|HIDEFACE|HIDEEARS /obj/item/clothing/head/clownpiece @@ -167,7 +145,6 @@ icon_state = "clownpiece" item_state = "clownpiece" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/head.dmi' /obj/item/clothing/head/mitre name = "mitre" @@ -175,7 +152,6 @@ icon_state = "mitre" item_state = "mitre" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/head.dmi' /obj/item/clothing/head/tinfoil name = "tinfoil hat" @@ -183,7 +159,6 @@ icon_state = "foilhat" item_state = "paper" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/head.dmi' siemens_coefficient = 2 /obj/item/clothing/head/celtic @@ -192,4 +167,3 @@ icon_state = "celtic_crown" item_state = "celtic_crown" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/head.dmi' diff --git a/code/modules/clothing/masks/breath.dm b/code/modules/clothing/masks/breath.dm index ed0ef27174..947aa048c4 100644 --- a/code/modules/clothing/masks/breath.dm +++ b/code/modules/clothing/masks/breath.dm @@ -4,8 +4,8 @@ icon_state = "breath" item_state = "m_mask" body_parts_covered = 0 - clothing_flags = MASKINTERNALS - visor_flags = MASKINTERNALS + clothing_flags = ALLOWINTERNALS + visor_flags = ALLOWINTERNALS w_class = WEIGHT_CLASS_SMALL gas_transfer_coefficient = 0.1 permeability_coefficient = 0.5 diff --git a/code/modules/clothing/masks/gasmask.dm b/code/modules/clothing/masks/gasmask.dm index bcf3064c49..c613d1a91e 100644 --- a/code/modules/clothing/masks/gasmask.dm +++ b/code/modules/clothing/masks/gasmask.dm @@ -2,7 +2,7 @@ name = "gas mask" desc = "A face-covering mask that can be connected to an air supply. While good for concealing your identity, it isn't good for blocking gas flow." //More accurate icon_state = "gas_alt" - clothing_flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS + clothing_flags = BLOCK_GAS_SMOKE_EFFECT | ALLOWINTERNALS flags_inv = HIDEEARS|HIDEEYES|HIDEFACE|HIDEFACIALHAIR|HIDESNOUT w_class = WEIGHT_CLASS_NORMAL item_state = "gas_alt" @@ -59,7 +59,7 @@ /obj/item/clothing/mask/gas/clown_hat name = "clown wig and mask" desc = "A true prankster's facial attire. A clown is incomplete without his wig and mask." - clothing_flags = MASKINTERNALS + clothing_flags = ALLOWINTERNALS icon_state = "clown" item_state = "clown_hat" flags_cover = MASKCOVERSEYES @@ -91,7 +91,7 @@ /obj/item/clothing/mask/gas/sexyclown name = "sexy-clown wig and mask" desc = "A feminine clown mask for the dabbling crossdressers or female entertainers." - clothing_flags = MASKINTERNALS + clothing_flags = ALLOWINTERNALS icon_state = "sexyclown" item_state = "sexyclown" flags_cover = MASKCOVERSEYES @@ -100,7 +100,7 @@ /obj/item/clothing/mask/gas/mime name = "mime mask" desc = "The traditional mime's mask. It has an eerie facial posture." - clothing_flags = MASKINTERNALS + clothing_flags = ALLOWINTERNALS icon_state = "mime" item_state = "mime" flags_cover = MASKCOVERSEYES @@ -132,7 +132,7 @@ /obj/item/clothing/mask/gas/monkeymask name = "monkey mask" desc = "A mask used when acting as a monkey." - clothing_flags = MASKINTERNALS + clothing_flags = ALLOWINTERNALS icon_state = "monkeymask" item_state = "monkeymask" flags_cover = MASKCOVERSEYES @@ -141,7 +141,7 @@ /obj/item/clothing/mask/gas/sexymime name = "sexy mime mask" desc = "A traditional female mime's mask." - clothing_flags = MASKINTERNALS + clothing_flags = ALLOWINTERNALS icon_state = "sexymime" item_state = "sexymime" flags_cover = MASKCOVERSEYES @@ -162,7 +162,7 @@ name = "owl mask" desc = "Twoooo!" icon_state = "owl" - clothing_flags = MASKINTERNALS + clothing_flags = ALLOWINTERNALS flags_cover = MASKCOVERSEYES resistance_flags = FLAMMABLE diff --git a/code/modules/clothing/masks/hailer.dm b/code/modules/clothing/masks/hailer.dm index 8860650fbc..086d47e8bf 100644 --- a/code/modules/clothing/masks/hailer.dm +++ b/code/modules/clothing/masks/hailer.dm @@ -7,10 +7,10 @@ actions_types = list(/datum/action/item_action/halt, /datum/action/item_action/adjust) icon_state = "sechailer" item_state = "sechailer" - clothing_flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS + clothing_flags = BLOCK_GAS_SMOKE_EFFECT | ALLOWINTERNALS flags_inv = HIDEFACIALHAIR|HIDEFACE w_class = WEIGHT_CLASS_SMALL - visor_flags = BLOCK_GAS_SMOKE_EFFECT | MASKINTERNALS + visor_flags = BLOCK_GAS_SMOKE_EFFECT | ALLOWINTERNALS visor_flags_inv = HIDEFACE flags_cover = MASKCOVERSMOUTH visor_flags_cover = MASKCOVERSMOUTH @@ -69,12 +69,14 @@ /obj/item/clothing/mask/gas/sechailer/attack_self() halt() -/obj/item/clothing/mask/gas/sechailer/emag_act(mob/user as mob) - if(safety) - safety = FALSE - to_chat(user, "You silently fry [src]'s vocal circuit with the cryptographic sequencer.") - else + +/obj/item/clothing/mask/gas/sechailer/emag_act(mob/user) + . = ..() + if(!safety) return + safety = FALSE + to_chat(user, "You silently fry [src]'s vocal circuit with the cryptographic sequencer.") + return TRUE /obj/item/clothing/mask/gas/sechailer/verb/halt() set category = "Object" diff --git a/code/modules/clothing/masks/miscellaneous.dm b/code/modules/clothing/masks/miscellaneous.dm index 1716992e45..4b8f16a77f 100644 --- a/code/modules/clothing/masks/miscellaneous.dm +++ b/code/modules/clothing/masks/miscellaneous.dm @@ -75,7 +75,7 @@ /obj/item/clothing/mask/pig name = "pig mask" - desc = "A rubber pig mask." + desc = "A rubber pig mask with a builtin voice modulator." icon_state = "pig" item_state = "pig" flags_inv = HIDEFACE|HIDEHAIR|HIDEFACIALHAIR @@ -92,7 +92,11 @@ desc = "It looks like a mask, but closer inspection reveals it's melded onto this persons face!" //It's only ever going to be attached to your face. flags_inv = HIDEFACIALHAIR clothing_flags = NONE - item_flags = NODROP + +/obj/item/clothing/mask/pig/cursed/Initialize() + . = ..() + ADD_TRAIT(src, TRAIT_NODROP, CURSED_MASK_TRAIT) + playsound(get_turf(src), 'sound/magic/pighead_curse.ogg', 50, 1) ///frog mask - reeee!! /obj/item/clothing/mask/frog @@ -114,16 +118,19 @@ /obj/item/clothing/mask/frog/cursed clothing_flags = NONE - item_flags = NODROP //reee!! + +/obj/item/clothing/mask/frog/cursed/Initialize() + . = ..() + ADD_TRAIT(src, TRAIT_NODROP, CURSED_MASK_TRAIT) /obj/item/clothing/mask/frog/cursed/equipped(mob/user, slot) var/mob/living/carbon/C = user - if(C.wear_mask == src) - to_chat(user, "[src] was cursed! Ree!!") + if(C.wear_mask == src && HAS_TRAIT_FROM(src, TRAIT_NODROP, CURSED_ITEM_TRAIT)) + to_chat(user, "[src] was cursed! Ree!!") return ..() /obj/item/clothing/mask/cowmask - name = "Cow mask" + name = "Cow mask with a builtin voice modulator." desc = "A rubber cow mask," icon = 'icons/mob/mask.dmi' icon_state = "cowmask" @@ -137,12 +144,17 @@ if(!CHECK_BITFIELD(clothing_flags, VOICEBOX_DISABLED)) speech_args[SPEECH_MESSAGE] = pick("Moooooooo!","Moo!","Moooo!") + /obj/item/clothing/mask/cowmask/cursed name = "cow face" desc = "It looks like a cow mask, but closer inspection reveals it's melded onto this persons face!" flags_inv = HIDEFACIALHAIR clothing_flags = NONE - item_flags = NODROP + +/obj/item/clothing/mask/cowmask/cursed/Initialize() + . = ..() + ADD_TRAIT(src, TRAIT_NODROP, CURSED_MASK_TRAIT) + playsound(get_turf(src), 'sound/magic/cowhead_curse.ogg', 50, 1) /obj/item/clothing/mask/horsehead name = "horse head mask" @@ -157,12 +169,17 @@ if(!CHECK_BITFIELD(clothing_flags, VOICEBOX_DISABLED)) speech_args[SPEECH_MESSAGE] = pick("NEEIIGGGHHHH!", "NEEEIIIIGHH!", "NEIIIGGHH!", "HAAWWWWW!", "HAAAWWW!") + /obj/item/clothing/mask/horsehead/cursed name = "horse face" desc = "It initially looks like a mask, but it's melded into the poor person's face." clothing_flags = NONE flags_inv = HIDEFACIALHAIR - item_flags = NODROP + +/obj/item/clothing/mask/horsehead/cursed/Initialize() + . = ..() + ADD_TRAIT(src, TRAIT_NODROP, CURSED_MASK_TRAIT) + playsound(get_turf(src), 'sound/magic/horsehead_curse.ogg', 50, 1) /obj/item/clothing/mask/rat name = "rat mask" @@ -296,3 +313,9 @@ message = replacetextEx(message,regex(capitalize(key),"g"), "[capitalize(value)]") message = replacetextEx(message,regex(key,"g"), "[value]") speech_args[SPEECH_MESSAGE] = trim(message) + +/obj/item/clothing/mask/bandana/durathread + name = "durathread bandana" + desc = "A bandana made from durathread, you wish it would provide some protection to its wearer, but it's far too thin..." + icon_state = "banddurathread" + diff --git a/code/modules/clothing/masks/vg_masks.dm b/code/modules/clothing/masks/vg_masks.dm index 7de27fb780..29b65a6b8e 100644 --- a/code/modules/clothing/masks/vg_masks.dm +++ b/code/modules/clothing/masks/vg_masks.dm @@ -3,18 +3,15 @@ desc = "Some pranksters are truly magical." icon_state = "wizzclown" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/masks.dmi' /obj/item/clothing/mask/chapmask name = "venetian mask" desc = "A plain porcelain mask that covers the entire face. Standard attire for particularly unspeakable religions. The eyes are wide shut." icon_state = "chapmask" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/masks.dmi' /obj/item/clothing/mask/neorussian name = "neo-Russian mask" desc = "Somehow, it makes you act and look way more polite than usual." icon_state = "nr_mask" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/masks.dmi' diff --git a/code/modules/clothing/outfits/ert.dm b/code/modules/clothing/outfits/ert.dm index b4310a7f42..523ed55aa4 100644 --- a/code/modules/clothing/outfits/ert.dm +++ b/code/modules/clothing/outfits/ert.dm @@ -45,16 +45,23 @@ R.recalculateChannels() /datum/outfit/ert/commander/alert - name = "ERT Commander - High Alert" + name = "ERT Commander - Amber Alert" suit = /obj/item/clothing/suit/space/hardsuit/ert/alert glasses = /obj/item/clothing/glasses/thermal/eyepatch backpack_contents = list(/obj/item/storage/box/engineer=1,\ /obj/item/melee/baton/loaded=1,\ /obj/item/clothing/mask/gas/sechailer/swat=1,\ - /obj/item/gun/energy/pulse/pistol/loyalpin=1) + /obj/item/gun/energy/e_gun=1) l_pocket = /obj/item/melee/transforming/energy/sword/saber +/datum/outfit/ert/commander/alert/red + name = "ERT Commander - Red Alert" + backpack_contents = list(/obj/item/storage/box/engineer=1,\ + /obj/item/melee/baton/loaded=1,\ + /obj/item/clothing/mask/gas/sechailer/swat=1,\ + /obj/item/gun/energy/pulse/pistol/loyalpin=1) + /datum/outfit/ert/security name = "ERT Security" @@ -80,15 +87,22 @@ R.recalculateChannels() /datum/outfit/ert/security/alert - name = "ERT Security - High Alert" + name = "ERT Security - Amber Alert" suit = /obj/item/clothing/suit/space/hardsuit/ert/alert/sec backpack_contents = list(/obj/item/storage/box/engineer=1,\ /obj/item/storage/box/handcuffs=1,\ /obj/item/clothing/mask/gas/sechailer/swat=1,\ /obj/item/melee/baton/loaded=1,\ - /obj/item/gun/energy/pulse/carbine/loyalpin=1) + /obj/item/gun/energy/e_gun/stun=1) +/datum/outfit/ert/security/alert/red + name = "ERT Security - Red Alert" + backpack_contents = list(/obj/item/storage/box/engineer=1,\ + /obj/item/storage/box/handcuffs=1,\ + /obj/item/clothing/mask/gas/sechailer/swat=1,\ + /obj/item/melee/baton/loaded=1,\ + /obj/item/gun/energy/pulse/carbine/loyalpin=1) /datum/outfit/ert/medic name = "ERT Medic" @@ -117,9 +131,18 @@ R.recalculateChannels() /datum/outfit/ert/medic/alert - name = "ERT Medic - High Alert" + name = "ERT Medic - Amber Alert" suit = /obj/item/clothing/suit/space/hardsuit/ert/alert/med + backpack_contents = list(/obj/item/storage/box/engineer=1,\ + /obj/item/melee/baton/loaded=1,\ + /obj/item/clothing/mask/gas/sechailer/swat=1,\ + /obj/item/gun/energy/e_gun=1,\ + /obj/item/reagent_containers/hypospray/combat/nanites=1,\ + /obj/item/gun/medbeam=1) + +/datum/outfit/ert/medic/alert/red + name = "ERT Medic - Red Alert" backpack_contents = list(/obj/item/storage/box/engineer=1,\ /obj/item/melee/baton/loaded=1,\ /obj/item/clothing/mask/gas/sechailer/swat=1,\ @@ -154,15 +177,51 @@ R.recalculateChannels() /datum/outfit/ert/engineer/alert - name = "ERT Engineer - High Alert" + name = "ERT Engineer - Amber Alert" suit = /obj/item/clothing/suit/space/hardsuit/ert/alert/engi + backpack_contents = list(/obj/item/storage/box/engineer=1,\ + /obj/item/melee/baton/loaded=1,\ + /obj/item/clothing/mask/gas/sechailer/swat=1,\ + /obj/item/gun/energy/e_gun=1,\ + /obj/item/construction/rcd/combat=1) + +/datum/outfit/ert/engineer/alert/red + name = "ERT Engineer - Red Alert" backpack_contents = list(/obj/item/storage/box/engineer=1,\ /obj/item/melee/baton/loaded=1,\ /obj/item/clothing/mask/gas/sechailer/swat=1,\ /obj/item/gun/energy/pulse/pistol/loyalpin=1,\ /obj/item/construction/rcd/combat=1) +/datum/outfit/ert/greybois + name = "Emergency Assistant" + + uniform = /obj/item/clothing/under/color/grey/glorf + shoes = /obj/item/clothing/shoes/sneakers/black + gloves = /obj/item/clothing/gloves/color/fyellow + ears = /obj/item/radio/headset + head = /obj/item/clothing/head/soft/grey + belt = /obj/item/storage/belt/utility/full + back = /obj/item/storage/backpack + mask = /obj/item/clothing/mask/gas + l_pocket = /obj/item/tank/internals/emergency_oxygen + l_hand = /obj/item/storage/toolbox/emergency/old + id = /obj/item/card/id + +/datum/outfit/ert/greybois/greygod + suit = /obj/item/clothing/suit/hazardvest + l_hand = /obj/item/storage/toolbox/plastitanium + gloves = /obj/item/clothing/gloves/color/yellow + +/datum/outfit/ert/greybois/post_equip(mob/living/carbon/human/H, visualsOnly = FALSE) + if(visualsOnly) + return + var/obj/item/card/id/W = H.wear_id + W.registered_name = H.real_name + W.assignment = "Assistant" + W.access = list(ACCESS_MAINT_TUNNELS,ACCESS_CENT_GENERAL) + W.update_label(W.registered_name, W.assignment) /datum/outfit/centcom_official name = "CentCom Official" diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm index d314a4c48e..7fe527fec3 100644 --- a/code/modules/clothing/shoes/miscellaneous.dm +++ b/code/modules/clothing/shoes/miscellaneous.dm @@ -62,6 +62,16 @@ desc = "A pair of orange rubber boots, designed to prevent slipping on wet surfaces while also drying them." icon_state = "galoshes_dry" +/obj/item/clothing/shoes/sneakers/noslip + desc = "A pair of black shoes, they have the soles of galoshes making them unable to be slipped on a wet surface." + name = "black shoes" + icon_state = "black" + permeability_coefficient = 0.30 + clothing_flags = NOSLIP + strip_delay = 50 + equip_delay_other = 50 + resistance_flags = NONE + /obj/item/clothing/shoes/galoshes/dry/step_action() var/turf/open/t_loc = get_turf(src) SEND_SIGNAL(t_loc, COMSIG_TURF_MAKE_DRY, TURF_WET_WATER, TRUE, INFINITY) @@ -69,10 +79,8 @@ /obj/item/clothing/shoes/clown_shoes desc = "The prankster's standard-issue clowning shoes. Damn, they're huge!" name = "clown shoes" - icon_state = "clown" - item_state = "clown_shoes" + icon_state = "clown_shoes" slowdown = SHOES_SLOWDOWN+1 - item_color = "clown" pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes/clown /obj/item/clothing/shoes/clown_shoes/Initialize() @@ -98,7 +106,6 @@ name = "jackboots" desc = "Nanotrasen-issue Security combat boots for combat scenarios or combat situations. All combat, all the time." icon_state = "jackboots" - item_state = "jackboots" lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi' item_color = "hosred" @@ -115,7 +122,6 @@ name = "winter boots" desc = "Boots lined with 'synthetic' animal fur." icon_state = "winterboots" - item_state = "winterboots" permeability_coefficient = 0.15 cold_protection = FEET|LEGS min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT @@ -127,7 +133,6 @@ name = "work boots" desc = "Nanotrasen-issue Engineering lace-up work boots for the especially blue-collar." icon_state = "workboots" - item_state = "jackboots" lefthand_file = 'icons/mob/inhands/equipment/security_lefthand.dmi' righthand_file = 'icons/mob/inhands/equipment/security_righthand.dmi' permeability_coefficient = 0.15 @@ -145,7 +150,6 @@ name = "\improper Nar'Sien invoker boots" desc = "A pair of boots worn by the followers of Nar'Sie." icon_state = "cult" - item_state = "cult" item_color = "cult" cold_protection = FEET min_cold_protection_temperature = SHOES_MIN_TEMP_PROTECT @@ -157,7 +161,11 @@ icon_state = "cultalt" /obj/item/clothing/shoes/cult/alt/ghost - item_flags = NODROP | DROPDEL + item_flags = DROPDEL + +/obj/item/clothing/shoes/cult/alt/ghost/Initialize() + . = ..() + ADD_TRAIT(src, TRAIT_NODROP, CULT_TRAIT) /obj/item/clothing/shoes/cyborg name = "cyborg boots" @@ -174,7 +182,6 @@ name = "roman sandals" desc = "Sandals with buckled leather straps on it." icon_state = "roman" - item_state = "roman" strip_delay = 100 equip_delay_other = 100 permeability_coefficient = 0.9 @@ -183,14 +190,12 @@ name = "griffon boots" desc = "A pair of costume boots fashioned after bird talons." icon_state = "griffinboots" - item_state = "griffinboots" pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes /obj/item/clothing/shoes/bhop name = "jump boots" desc = "A specialized pair of combat boots with a built-in propulsion system for rapid foward movement." icon_state = "jetboots" - item_state = "jetboots" item_color = "hosred" resistance_flags = FIRE_PROOF pocket_storage_component_path = /datum/component/storage/concrete/pockets/shoes @@ -215,17 +220,13 @@ var/atom/target = get_edge_target_turf(user, user.dir) //gets the user's direction - if (user.throw_at(target, jumpdistance, jumpspeed, spin = FALSE, diagonals_first = TRUE, callback = CALLBACK(src, .proc/hop_end))) - jumping = TRUE + if (user.throw_at(target, jumpdistance, jumpspeed, spin = FALSE, diagonals_first = TRUE)) playsound(src, 'sound/effects/stealthoff.ogg', 50, 1, 1) + recharging_time = world.time + recharging_rate user.visible_message("[usr] dashes forward into the air!") else to_chat(user, "Something prevents you from dashing forward!") -/obj/item/clothing/shoes/bhop/proc/hop_end() - jumping = FALSE - recharging_time = world.time + recharging_rate - /obj/item/clothing/shoes/singery name = "yellow performer's boots" desc = "These boots were made for dancing." @@ -252,7 +253,6 @@ name = "Wheely-Heels" desc = "Uses patented retractable wheel technology. Never sacrifice speed for style - not that this provides much of either." //Thanks Fel icon_state = "wheelys" - item_state = "wheelys" actions_types = list(/datum/action/item_action/wheelys) var/wheelToggle = FALSE //False means wheels are not popped out var/obj/vehicle/ridden/scooter/wheelys/W @@ -291,7 +291,6 @@ name = "Kindle Kicks" desc = "They'll sure kindle something in you, and it's not childhood nostalgia..." icon_state = "kindleKicks" - item_state = "kindleKicks" actions_types = list(/datum/action/item_action/kindleKicks) var/lightCycle = 0 var/active = FALSE diff --git a/code/modules/clothing/shoes/vg_shoes.dm b/code/modules/clothing/shoes/vg_shoes.dm index 931c25b823..627a061181 100644 --- a/code/modules/clothing/shoes/vg_shoes.dm +++ b/code/modules/clothing/shoes/vg_shoes.dm @@ -5,7 +5,6 @@ icon_state = "leather" item_color = "leather" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/head.dmi' mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/shoes/magboots/deathsquad @@ -14,7 +13,6 @@ icon_state = "DS-magboots0" magboot_state = "DS-magboots" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/head.dmi' resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF mutantrace_variation = NO_MUTANTRACE_VARIATION @@ -23,7 +21,6 @@ name = "atmospherics magboots" icon_state = "atmosmagboots0" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/head.dmi' magboot_state = "atmosmagboots" resistance_flags = FIRE_PROOF mutantrace_variation = NO_MUTANTRACE_VARIATION @@ -33,7 +30,6 @@ desc = "Simon's Shoes." icon_state = "simonshoes" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/head.dmi' mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/shoes/kneesocks @@ -41,7 +37,6 @@ desc = "A pair of girly knee-high socks." icon_state = "kneesock" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/head.dmi' mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/shoes/jestershoes @@ -49,7 +44,6 @@ desc = "As worn by the clowns of old." icon_state = "jestershoes" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/head.dmi' mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/shoes/aviatorboots @@ -57,7 +51,6 @@ desc = "Boots suitable for just about any occasion." icon_state = "aviator_boots" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/head.dmi' mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/shoes/libertyshoes @@ -65,7 +58,6 @@ desc = "Freedom isn't free, neither were these shoes." icon_state = "libertyshoes" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/head.dmi' mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/shoes/megaboots @@ -73,7 +65,6 @@ desc = "Large armored boots, very weak to large spikes." icon_state = "megaboots" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/head.dmi' mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/shoes/protoboots @@ -81,7 +72,6 @@ desc = "Functionally identical to the DRN-001 model's boots, but in red." icon_state = "protoboots" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/head.dmi' mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/shoes/megaxboots @@ -89,7 +79,6 @@ desc = "Regardless of how much stronger these boots are than the DRN-001 model's, they're still extremely easy to pierce with a large spike." icon_state = "megaxboots" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/head.dmi' mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/shoes/joeboots @@ -97,7 +86,6 @@ desc = "Nearly identical to the Prototype's boots, except in black." icon_state = "joeboots" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/head.dmi' mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/shoes/doomguy @@ -105,7 +93,6 @@ desc = "If you look closely, you might see skull fragments still buried in these boots." icon_state = "doom" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/head.dmi' mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/shoes/rottenshoes @@ -113,7 +100,6 @@ desc = "These shoes seem perfect for sneaking around." icon_state = "rottenshoes" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/head.dmi' mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/shoes/sandal/slippers @@ -121,7 +107,6 @@ icon_state = "slippers" desc = "For the wizard that puts comfort first. Who's going to laugh?" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/head.dmi' mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/shoes/slippers_worn @@ -129,7 +114,6 @@ desc = "Fluffy..." icon_state = "slippers_worn" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/head.dmi' mutantrace_variation = NO_MUTANTRACE_VARIATION /obj/item/clothing/shoes/jackboots/neorussian @@ -137,5 +121,4 @@ desc = "Tovarish, no one will realize you stepped on a pile of shit if your pair already looks like shit." icon_state = "nr_boots" icon = 'modular_citadel/icons/obj/clothing/vg_clothes.dmi' - alternate_worn_icon = 'modular_citadel/icons/mob/citadel/head.dmi' mutantrace_variation = NO_MUTANTRACE_VARIATION \ No newline at end of file diff --git a/code/modules/clothing/spacesuits/_spacesuits.dm b/code/modules/clothing/spacesuits/_spacesuits.dm index 9d3918ed84..662a91c80c 100644 --- a/code/modules/clothing/spacesuits/_spacesuits.dm +++ b/code/modules/clothing/spacesuits/_spacesuits.dm @@ -4,7 +4,7 @@ name = "space helmet" icon_state = "spaceold" desc = "A special helmet with solar UV shielding to protect your eyes from harmful rays." - clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL + clothing_flags = STOPSPRESSUREDAMAGE | THICKMATERIAL | BLOCK_GAS_SMOKE_EFFECT | ALLOWINTERNALS item_state = "spaceold" permeability_coefficient = 0.01 armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 50, "fire" = 80, "acid" = 70) diff --git a/code/modules/clothing/spacesuits/chronosuit.dm b/code/modules/clothing/spacesuits/chronosuit.dm index d0820304fe..5a53e2776a 100644 --- a/code/modules/clothing/spacesuits/chronosuit.dm +++ b/code/modules/clothing/spacesuits/chronosuit.dm @@ -27,7 +27,6 @@ armor = list("melee" = 60, "bullet" = 60, "laser" = 60, "energy" = 60, "bomb" = 30, "bio" = 90, "rad" = 90, "fire" = 100, "acid" = 1000) resistance_flags = FIRE_PROOF | ACID_PROOF var/list/chronosafe_items = list(/obj/item/chrono_eraser, /obj/item/gun/energy/chrono_gun) - var/list/hands_nodrop = list() var/obj/item/clothing/head/helmet/space/chronos/helmet = null var/obj/effect/chronos_cam/camera = null var/datum/action/innate/chrono_teleport/teleport_now = new @@ -97,8 +96,7 @@ user.anchored = FALSE teleporting = 0 for(var/obj/item/I in user.held_items) - if(I in hands_nodrop) - I.item_flags &= ~NODROP + REMOVE_TRAIT(I, TRAIT_NODROP, CHRONOSUIT_TRAIT) if(camera) camera.remove_target_ui() camera.forceMove(user) @@ -131,11 +129,8 @@ user.ExtinguishMob() - hands_nodrop = list() for(var/obj/item/I in user.held_items) - if(!(I.item_flags & NODROP)) - hands_nodrop += I - I.item_flags |= NODROP + ADD_TRAIT(I, TRAIT_NODROP, CHRONOSUIT_TRAIT) user.animate_movement = NO_STEPS user.changeNext_move(8 + phase_in_ds) user.notransform = 1 @@ -194,9 +189,9 @@ if(user.head && istype(user.head, /obj/item/clothing/head/helmet/space/chronos)) to_chat(user, "\[ ok \] Mounting /dev/helm") helmet = user.head - helmet.item_flags |= NODROP + ADD_TRAIT(helmet, TRAIT_NODROP, CHRONOSUIT_TRAIT) helmet.suit = src - src.item_flags |= NODROP + ADD_TRAIT(src, TRAIT_NODROP, CHRONOSUIT_TRAIT) to_chat(user, "\[ ok \] Starting brainwave scanner") to_chat(user, "\[ ok \] Starting ui display driver") to_chat(user, "\[ ok \] Initializing chronowalk4-view") @@ -215,7 +210,7 @@ activating = 1 var/mob/living/carbon/human/user = src.loc var/hard_landing = teleporting && force - item_flags &= ~NODROP + REMOVE_TRAIT(src, TRAIT_NODROP, CHRONOSUIT_TRAIT) cooldown = world.time + cooldowntime * 1.5 activated = 0 activating = 0 @@ -236,7 +231,7 @@ to_chat(user, "\[ ok \] Unmounting /dev/helmet") to_chat(user, "logout") if(helmet) - helmet.item_flags &= ~NODROP + REMOVE_TRAIT(helmet, TRAIT_NODROP, CHRONOSUIT_TRAIT) helmet.suit = null helmet = null if(camera) diff --git a/code/modules/clothing/spacesuits/flightsuit.dm b/code/modules/clothing/spacesuits/flightsuit.dm index 176bc81665..b105b72234 100644 --- a/code/modules/clothing/spacesuits/flightsuit.dm +++ b/code/modules/clothing/spacesuits/flightsuit.dm @@ -897,7 +897,7 @@ usermessage("You're already wearing something on your back!", "boldwarning") return FALSE user.equip_to_slot_if_possible(pack,SLOT_BACK,0,0,1) - pack.item_flags |= NODROP + ADD_TRAIT(pack, TRAIT_NODROP, FLIGHTSUIT_TRAIT) resync() user.visible_message("A [pack.name] extends from [user]'s [name] and clamps to [user.p_their()] back!") user.update_inv_wear_suit() @@ -911,7 +911,7 @@ return FALSE if(pack.flight && forced) pack.disable_flight(1) - pack.item_flags &= ~NODROP + REMOVE_TRAIT_FROM(pack, TRAIT_NODROP, FLIGHTSUIT_TRAIT) resync() if(user) user.transferItemToLoc(pack, src, TRUE) @@ -935,14 +935,14 @@ usermessage("You're already wearing something on your feet!", "boldwarning") return FALSE user.equip_to_slot_if_possible(shoes,SLOT_SHOES,0,0,1) - shoes.item_flags |= NODROP + ADD_TRAIT(shoes, TRAIT_NODROP, FLIGHTSUIT_TRAIT) user.visible_message("[user]'s [name] extends a pair of [shoes.name] over [user.p_their()] feet!") user.update_inv_wear_suit() playsound(src.loc, 'sound/mecha/mechmove03.ogg', 50, 1) deployedshoes = TRUE /obj/item/clothing/suit/space/hardsuit/flightsuit/proc/retract_flightshoes(forced = FALSE) - shoes.item_flags &= ~NODROP + REMOVE_TRAIT_FROM(shoes, TRAIT_NODROP, FLIGHTSUIT_TRAIT) playsound(src, 'sound/mecha/mechmove03.ogg', 50, 1) if(user) user.transferItemToLoc(shoes, src, TRUE) diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm index 22eac9f5aa..2694497579 100644 --- a/code/modules/clothing/spacesuits/hardsuit.dm +++ b/code/modules/clothing/spacesuits/hardsuit.dm @@ -624,19 +624,19 @@ desc = "The Multi-Augmented Severe Operations Networked Resource Integration Gear is an man-portable tank designed for extreme environmental situations. It is excessively bulky, but rated for all but the most atomic of hazards. The specialized armor is surprisingly weak to conventional weaponry. The exo slot can attach most storge bags on to the suit." icon_state = "hardsuit-ancient" item_state = "anc_hardsuit" - armor = list("melee" = 10, "bullet" = 5, "laser" = 5, "energy" = 500, "bomb" = 500, "bio" = 500, "rad" = 500, "fire" = 500, "acid" = 500) + armor = list("melee" = 20, "bullet" = 15, "laser" = 15, "energy" = 45, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) slowdown = 6 //Slow allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/storage, /obj/item/construction/rcd, /obj/item/pipe_dispenser) helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ancient/mason max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT - resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF + resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF /obj/item/clothing/head/helmet/space/hardsuit/ancient/mason name = "M.A.S.O.N RIG helmet" desc = "The M.A.S.O.N RIG helmet is complimentary to the rest of the armor. It features a very large, high powered flood lamp and robust flash protection." icon_state = "hardsuit0-ancient" item_state = "anc_helm" - armor = list("melee" = 10, "bullet" = 5, "laser" = 5, "energy" = 500, "bomb" = 500, "bio" = 500, "rad" = 500, "fire" = 500, "acid" = 500) + armor = list("melee" = 20, "bullet" = 15, "laser" = 15, "energy" = 45, "bomb" = 100, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) item_color = "ancient" brightness_on = 16 scan_reagents = TRUE @@ -644,7 +644,7 @@ tint = 1 var/obj/machinery/doppler_array/integrated/bomb_radar max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT - resistance_flags = INDESTRUCTIBLE | LAVA_PROOF | FIRE_PROOF | ACID_PROOF + resistance_flags = LAVA_PROOF | FIRE_PROOF | ACID_PROOF /obj/item/clothing/head/helmet/space/hardsuit/ancient/mason/Initialize() . = ..() @@ -766,12 +766,15 @@ icon_state = "ert_medical" item_state = "ert_medical" item_color = "ert_medical" - item_flags = NODROP //Dont want people changing into the other teams gear helmettype = /obj/item/clothing/head/helmet/space/hardsuit/shielded/ctf armor = list("melee" = 0, "bullet" = 30, "laser" = 30, "energy" = 30, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 95, "acid" = 95) slowdown = 0 max_charges = 5 +/obj/item/clothing/suit/space/hardsuit/shielded/ctf/Initialize() + . = ..() + ADD_TRAIT(src, TRAIT_NODROP, CAPTURE_THE_FLAG_TRAIT) + /obj/item/clothing/suit/space/hardsuit/shielded/ctf/red name = "red shielded hardsuit" icon_state = "ert_security" diff --git a/code/modules/clothing/spacesuits/miscellaneous.dm b/code/modules/clothing/spacesuits/miscellaneous.dm index 6d7c1036be..5d718a8173 100644 --- a/code/modules/clothing/spacesuits/miscellaneous.dm +++ b/code/modules/clothing/spacesuits/miscellaneous.dm @@ -171,10 +171,13 @@ Contains: item_color = "ert_commander" armor = list("melee" = 65, "bullet" = 50, "laser" = 50, "energy" = 50, "bomb" = 50, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 80) strip_delay = 130 - item_flags = NODROP brightness_on = 7 resistance_flags = ACID_PROOF +/obj/item/clothing/head/helmet/space/hardsuit/ert/Initialize() + . = ..() + ADD_TRAIT(src, TRAIT_NODROP, LOCKED_HELMET_TRAIT) + /obj/item/clothing/suit/space/hardsuit/ert name = "emergency response team suit" desc = "Standard issue command suit for the ERT." @@ -237,8 +240,6 @@ Contains: item_state = "hardsuit0-ert_commander-alert" item_color = "ert_commander-alert" armor = list("melee" = 70, "bullet" = 55, "laser" = 50, "energy" = 50, "bomb" = 65, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) - strip_delay = 130 - item_flags = NODROP brightness_on = 8 resistance_flags = FIRE_PROOF | ACID_PROOF @@ -248,11 +249,8 @@ Contains: icon_state = "ert_command-alert" item_state = "ert_command-alert" helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/alert - allowed = list(/obj/item/gun, /obj/item/ammo_box, /obj/item/ammo_casing, /obj/item/melee/baton, /obj/item/restraints/handcuffs, /obj/item/tank/internals) armor = list("melee" = 70, "bullet" = 55, "laser" = 50, "energy" = 50, "bomb" = 65, "bio" = 100, "rad" = 100, "fire" = 100, "acid" = 100) - strip_delay = 130 resistance_flags = FIRE_PROOF | ACID_PROOF - tauric = TRUE //Citadel Add for tauric hardsuits //ERT Security /obj/item/clothing/head/helmet/space/hardsuit/ert/alert/sec @@ -342,9 +340,13 @@ Contains: armor = list("melee" = -20, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 100, "rad" = 75, "fire" = 60, "acid" = 75) //As whimpy as a space carp brightness_on = 0 //luminosity when on actions_types = list() - item_flags = NODROP mutantrace_variation = NO_MUTANTRACE_VARIATION +/obj/item/clothing/head/helmet/space/hardsuit/carp/Initialize() + . = ..() + ADD_TRAIT(src, TRAIT_NODROP, LOCKED_HELMET_TRAIT) + + /obj/item/clothing/suit/space/hardsuit/carp name = "carp space suit" desc = "A slimming piece of dubious space carp technology, you suspect it won't stand up to hand-to-hand blows." diff --git a/code/modules/clothing/suits/_suits.dm b/code/modules/clothing/suits/_suits.dm index 7346dc9ea9..3008043156 100644 --- a/code/modules/clothing/suits/_suits.dm +++ b/code/modules/clothing/suits/_suits.dm @@ -5,6 +5,7 @@ allowed = list(/obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) slot_flags = ITEM_SLOT_OCLOTHING + body_parts_covered = CHEST var/blood_overlay_type = "suit" var/togglename = null var/suittoggled = FALSE @@ -28,7 +29,6 @@ H.update_inv_wear_suit() else if(adjusted == ALT_STYLE) adjusted = NORMAL_STYLE - H.update_inv_wear_suit() if(("taur" in H.dna.species.mutant_bodyparts) && (H.dna.features["taur"] != "None")) if(H.dna.features["taur"] in list("Naga", "Tentacle")) diff --git a/code/modules/clothing/suits/armor.dm b/code/modules/clothing/suits/armor.dm index 5eec159462..19050dc36f 100644 --- a/code/modules/clothing/suits/armor.dm +++ b/code/modules/clothing/suits/armor.dm @@ -1,6 +1,5 @@ /obj/item/clothing/suit/armor allowed = null - body_parts_covered = CHEST cold_protection = CHEST|GROIN min_cold_protection_temperature = ARMOR_MIN_TEMP_PROTECT heat_protection = CHEST|GROIN @@ -238,3 +237,14 @@ /obj/item/clothing/suit/armor/riot/knight/red icon_state = "knight_red" item_state = "knight_red" + +/obj/item/clothing/suit/armor/vest/durathread + name = "makeshift vest" + desc = "A vest made of durathread with strips of leather acting as trauma plates." + icon_state = "durathread" + item_state = "durathread" + strip_delay = 60 + equip_delay_other = 40 + max_integrity = 200 + resistance_flags = FLAMMABLE + armor = list("melee" = 20, "bullet" = 10, "laser" = 30, "energy" = 5, "bomb" = 15, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 50) diff --git a/code/modules/clothing/suits/cloaks.dm b/code/modules/clothing/suits/cloaks.dm index 173d50ba64..b8287c7f4c 100644 --- a/code/modules/clothing/suits/cloaks.dm +++ b/code/modules/clothing/suits/cloaks.dm @@ -7,7 +7,7 @@ icon_state = "qmcloak" item_state = "qmcloak" w_class = WEIGHT_CLASS_SMALL - body_parts_covered = CHEST|GROIN|LEGS|ARMS + body_parts_covered = CHEST|LEGS|ARMS /obj/item/clothing/head/cloakhood name = "cloak hood" @@ -15,7 +15,6 @@ icon_state = "golhood" desc = "A hood for a cloak." body_parts_covered = HEAD - item_flags = NODROP flags_inv = HIDEHAIR|HIDEEARS /obj/item/clothing/neck/cloak/suicide_act(mob/user) @@ -63,7 +62,7 @@ allowed = list(/obj/item/flashlight, /obj/item/tank/internals, /obj/item/pickaxe, /obj/item/twohanded/spear, /obj/item/twohanded/bonespear, /obj/item/organ/regenerative_core/legion, /obj/item/kitchen/knife/combat/bone, /obj/item/kitchen/knife/combat/survival) armor = list("melee" = 35, "bullet" = 10, "laser" = 25, "energy" = 10, "bomb" = 25, "bio" = 0, "rad" = 0, "fire" = 60, "acid" = 60) //a fair alternative to bone armor, requiring alternative materials and gaining a suit slot hoodtype = /obj/item/clothing/head/hooded/cloakhood/goliath - body_parts_covered = CHEST|GROIN|ARMS + body_parts_covered = CHEST|ARMS|LEGS /obj/item/clothing/head/hooded/cloakhood/goliath name = "goliath cloak hood" diff --git a/code/modules/clothing/suits/jobs.dm b/code/modules/clothing/suits/jobs.dm index bf11d40caf..4318839845 100644 --- a/code/modules/clothing/suits/jobs.dm +++ b/code/modules/clothing/suits/jobs.dm @@ -23,30 +23,48 @@ allowed = list(/obj/item/disk, /obj/item/stamp, /obj/item/reagent_containers/food/drinks/flask, /obj/item/melee, /obj/item/storage/lockbox/medal, /obj/item/assembly/flash/handheld, /obj/item/storage/box/matches, /obj/item/lighter, /obj/item/clothing/mask/cigarette, /obj/item/storage/fancy/cigarettes, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) //Chaplain -/obj/item/clothing/suit/nun +/obj/item/clothing/suit/chaplain + name = "chaplain suit" + desc = "A piece of clothing adorned by the gods of Coding. Should never exist in this mortal realm." + allowed = list(/obj/item/storage/book/bible, HOLY_WEAPONS, /obj/item/reagent_containers/food/drinks/bottle/holywater, /obj/item/storage/fancy/candle_box, /obj/item/candle, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) + +/obj/item/clothing/suit/chaplain/nun name = "nun robe" desc = "Maximum piety in this star system." icon_state = "nun" item_state = "nun" body_parts_covered = CHEST|GROIN|LEGS|ARMS|HANDS flags_inv = HIDESHOES|HIDEJUMPSUIT - allowed = list(/obj/item/storage/book/bible, /obj/item/nullrod, /obj/item/reagent_containers/food/drinks/bottle/holywater, /obj/item/storage/fancy/candle_box, /obj/item/candle, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) -/obj/item/clothing/suit/studentuni +/obj/item/clothing/suit/chaplain/studentuni name = "student robe" desc = "The uniform of a bygone institute of learning." icon_state = "studentuni" item_state = "studentuni" body_parts_covered = ARMS|CHEST - allowed = list(/obj/item/storage/book/bible, /obj/item/nullrod, /obj/item/reagent_containers/food/drinks/bottle/holywater, /obj/item/storage/fancy/candle_box, /obj/item/candle, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) -/obj/item/clothing/suit/witchhunter +/obj/item/clothing/suit/chaplain/witchhunter name = "witchunter garb" desc = "This worn outfit saw much use back in the day." icon_state = "witchhunter" item_state = "witchhunter" body_parts_covered = CHEST|GROIN|LEGS|ARMS - allowed = list(/obj/item/storage/book/bible, /obj/item/nullrod, /obj/item/reagent_containers/food/drinks/bottle/holywater, /obj/item/storage/fancy/candle_box, /obj/item/candle, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) + +/obj/item/clothing/suit/chaplain/pharaoh + name = "pharaoh tunic" + desc = "Lavish space tomb not included." + icon_state = "pharaoh" + icon_state = "pharaoh" + body_parts_covered = CHEST|GROIN + +/obj/item/clothing/suit/chaplain/holidaypriest + name = "holiday priest" + desc = "This is a nice holiday, my son." + icon_state = "holidaypriest" + item_state = "w_suit" + body_parts_covered = CHEST|GROIN|LEGS|ARMS + flags_inv = HIDEJUMPSUIT + //Chef /obj/item/clothing/suit/toggle/chef @@ -135,6 +153,7 @@ icon = 'icons/obj/clothing/belts.dmi' icon_state = "suspenders" blood_overlay_type = "armor" //it's the less thing that I can put here + body_parts_covered = NONE //Security /obj/item/clothing/suit/security/officer @@ -177,3 +196,24 @@ armor = list("melee" = 25, "bullet" = 10, "laser" = 25, "energy" = 10, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 45) cold_protection = CHEST|ARMS heat_protection = CHEST|ARMS + + +//Robotocist + +/obj/item/clothing/suit/hooded/techpriest + name = "techpriest robes" + desc = "For those who REALLY love their toasters." + icon_state = "techpriest" + item_state = "techpriest" + body_parts_covered = CHEST|GROIN|LEGS|ARMS + hoodtype = /obj/item/clothing/head/hooded/techpriest + mutantrace_variation = NO_MUTANTRACE_VARIATION + +/obj/item/clothing/head/hooded/techpriest + name = "techpriest's hood" + desc = "A hood for those who REALLY love their toasters." + icon_state = "techpriesthood" + item_state = "techpriesthood" + body_parts_covered = HEAD + flags_inv = HIDEHAIR|HIDEEARS + mutantrace_variation = MUTANTRACE_VARIATION diff --git a/code/modules/clothing/suits/miscellaneous.dm b/code/modules/clothing/suits/miscellaneous.dm index 9d039e0cb6..942fdaed73 100644 --- a/code/modules/clothing/suits/miscellaneous.dm +++ b/code/modules/clothing/suits/miscellaneous.dm @@ -67,6 +67,7 @@ item_state = "death" flags_1 = CONDUCT_1 fire_resist = T0C+5200 + body_parts_covered = CHEST|GROIN|LEGS|ARMS|HANDS|FEET flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT @@ -75,6 +76,7 @@ desc = "this pretty much looks ridiculous" //Needs no fixing icon_state = "justice" item_state = "justice" + body_parts_covered = CHEST|GROIN|LEGS|ARMS|HANDS|FEET flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT @@ -100,14 +102,14 @@ desc = "A fancy purple apron for a stylish person." icon_state = "purplebartenderapron" item_state = "purplebartenderapron" - body_parts_covered = CHEST|GROIN|LEGS + body_parts_covered = CHEST /obj/item/clothing/suit/syndicatefake name = "black and red space suit replica" icon_state = "syndicate-black-red" item_state = "syndicate-black-red" desc = "A plastic replica of the Syndicate space suit. You'll look just like a real murderous Syndicate agent in this! This is a toy, it is not made for use in space!" - w_class = WEIGHT_CLASS_NORMAL + body_parts_covered = CHEST|ARMS|GROIN|LEGS|FEET|HANDS allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy) flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT resistance_flags = NONE @@ -154,7 +156,7 @@ icon_state = "owl_wings" item_state = "owl_wings" togglename = "wings" - body_parts_covered = ARMS|CHEST + body_parts_covered = ARMS actions_types = list(/datum/action/item_action/toggle_wings) /obj/item/clothing/suit/toggle/owlwings/Initialize() @@ -167,16 +169,6 @@ icon_state = "griffin_wings" item_state = "griffin_wings" - -/obj/item/clothing/suit/holidaypriest - name = "holiday priest" - desc = "This is a nice holiday, my son." - icon_state = "holidaypriest" - item_state = "w_suit" - body_parts_covered = CHEST|GROIN|LEGS|ARMS - flags_inv = HIDEJUMPSUIT - allowed = list(/obj/item/storage/book/bible, /obj/item/nullrod, /obj/item/reagent_containers/food/drinks/bottle/holywater, /obj/item/storage/fancy/candle_box, /obj/item/candle, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman) - /obj/item/clothing/suit/cardborg name = "cardborg suit" desc = "An ordinary cardboard box with holes cut in the sides." @@ -219,6 +211,7 @@ desc = "Your classic, non-racist poncho." icon_state = "classicponcho" item_state = "classicponcho" + body_parts_covered = CHEST|GROIN /obj/item/clothing/suit/poncho/green name = "green poncho" @@ -237,7 +230,10 @@ desc = "Forced to live on your shameful acting as a fake Mexican, you and your poncho have grown inseparable. Literally." icon_state = "ponchoshame" item_state = "ponchoshame" - item_flags = NODROP + +/obj/item/clothing/suit/poncho/ponchoshame/Initialize() + . = ..() + ADD_TRAIT(src, TRAIT_NODROP, SHAMEBRERO_TRAIT) /obj/item/clothing/suit/whitedress name = "white dress" @@ -252,7 +248,7 @@ desc = "A costume made from 'synthetic' carp scales, it smells." icon_state = "carp_casual" item_state = "labcoat" - body_parts_covered = CHEST|GROIN|ARMS + body_parts_covered = CHEST|GROIN|ARMS|LEGS|FEET cold_protection = CHEST|GROIN|ARMS min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT //Space carp like space, so you should too allowed = list(/obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/gun/ballistic/automatic/speargun) @@ -272,9 +268,7 @@ desc = "A costume that looks like someone made a human-like corgi, it won't guarantee belly rubs." icon_state = "ian" item_state = "labcoat" - body_parts_covered = CHEST|GROIN|ARMS - //cold_protection = CHEST|GROIN|ARMS - //min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT + body_parts_covered = CHEST|GROIN|ARMS|LEGS|FEET allowed = list() hoodtype = /obj/item/clothing/head/hooded/ian_hood dog_fashion = /datum/dog_fashion/back @@ -284,8 +278,6 @@ desc = "A hood that looks just like a corgi's head, it won't guarantee dog biscuits." icon_state = "ian" body_parts_covered = HEAD - //cold_protection = HEAD - //min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT flags_inv = HIDEHAIR|HIDEEARS /obj/item/clothing/suit/hooded/bee_costume // It's Hip! @@ -311,7 +303,7 @@ desc = "A horribly bloated suit made from human skins." icon_state = "lingspacesuit" item_state = "labcoat" - body_parts_covered = CHEST|GROIN|ARMS + body_parts_covered = CHEST|GROIN|ARMS|LEGS|FEET|HANDS allowed = list() actions_types = list(/datum/action/item_action/toggle_human_head) hoodtype = /obj/item/clothing/head/hooded/human_head @@ -352,18 +344,21 @@ desc = "A worn out, curiously comfortable t-shirt with a picture of Ian. You wouldn't go so far as to say it feels like being hugged when you wear it, but it's pretty close. Good for sleeping in." icon_state = "ianshirt" item_state = "ianshirt" + body_parts_covered = CHEST|GROIN /obj/item/clothing/suit/nerdshirt name = "gamer shirt" desc = "A baggy shirt with vintage game character Phanic the Weasel. Why would anyone wear this?" icon_state = "nerdshirt" item_state = "nerdshirt" + body_parts_covered = CHEST|GROIN /obj/item/clothing/suit/vapeshirt //wearing this is asking to get beat. name = "Vape Naysh shirt" desc = "A cheap white T-shirt with a big tacky \"VN\" on the front, Why would you wear this unironically?" icon_state = "vapeshirt" item_state = "vapeshirt" + body_parts_covered = CHEST|GROIN /obj/item/clothing/suit/jacket name = "bomber jacket" @@ -371,7 +366,7 @@ icon_state = "bomberjacket" item_state = "brownjsuit" allowed = list(/obj/item/flashlight, /obj/item/tank/internals/emergency_oxygen, /obj/item/tank/internals/plasmaman, /obj/item/toy, /obj/item/storage/fancy/cigarettes, /obj/item/lighter, /obj/item/radio) - body_parts_covered = CHEST|GROIN|ARMS + body_parts_covered = CHEST|ARMS cold_protection = CHEST|GROIN|ARMS min_cold_protection_temperature = FIRE_SUIT_MIN_TEMP_PROTECT @@ -396,6 +391,7 @@ desc = "A thick jacket with a rubbery, water-resistant shell." icon_state = "pufferjacket" item_state = "hostrench" + body_parts_covered = CHEST|GROIN|ARMS armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 50, "rad" = 0, "fire" = 0, "acid" = 0) /obj/item/clothing/suit/jacket/puffer/vest @@ -443,18 +439,21 @@ desc = "Looks like this belongs in a very old movie set." icon_state = "draculacoat" item_state = "draculacoat" + body_parts_covered = CHEST|ARMS /obj/item/clothing/suit/drfreeze_coat name = "doctor freeze's labcoat" desc = "A labcoat imbued with the power of features and freezes." icon_state = "drfreeze_coat" item_state = "drfreeze_coat" + body_parts_covered = CHEST|GROIN|ARMS /obj/item/clothing/suit/gothcoat name = "gothic coat" desc = "Perfect for those who want stalk in a corner of a bar." icon_state = "gothcoat" item_state = "gothcoat" + body_parts_covered = CHEST|ARMS|HAND_LEFT //peculiar /obj/item/clothing/suit/xenos name = "xenos suit" @@ -465,13 +464,6 @@ flags_inv = HIDEGLOVES|HIDESHOES|HIDEJUMPSUIT allowed = list(/obj/item/clothing/mask/facehugger/toy) -/obj/item/clothing/suit/nemes - name = "pharoah tunic" - desc = "Lavish space tomb not included." - icon_state = "pharoah" - icon_state = "pharoah" - body_parts_covered = CHEST|GROIN - // WINTER COATS @@ -600,6 +592,7 @@ name = "spooky ghost" desc = "This is obviously just a bedsheet, but maybe try it on?" icon_state = "bedsheet" + body_parts_covered = CHEST|GROIN|LEGS|ARMS|HANDS|HEAD user_vars_to_edit = list("name" = "Spooky Ghost", "real_name" = "Spooky Ghost" , "incorporeal_move" = INCORPOREAL_MOVE_BASIC, "appearance_flags" = KEEP_TOGETHER|TILE_BOUND, "alpha" = 150) alternate_worn_layer = ABOVE_BODY_FRONT_LAYER //so the bedsheet goes over everything but fire @@ -608,6 +601,7 @@ desc = "A big and clanky suit made of bronze that offers no protection and looks very unfashionable. Nice." icon = 'icons/obj/clothing/clockwork_garb.dmi' icon_state = "clockwork_cuirass_old" + body_parts_covered = CHEST|GROIN|LEGS armor = list("melee" = 5, "bullet" = 0, "laser" = -5, "energy" = 0, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 20, "acid" = 20) /obj/item/clothing/suit/ghost_sheet @@ -620,4 +614,5 @@ throw_range = 2 w_class = WEIGHT_CLASS_TINY flags_inv = HIDEGLOVES|HIDEEARS|HIDEFACE|HIDEHAIR|HIDEFACIALHAIR + body_parts_covered = CHEST|GROIN|LEGS|ARMS|HANDS|HEAD alternate_worn_layer = UNDER_HEAD_LAYER diff --git a/code/modules/clothing/under/accessories.dm b/code/modules/clothing/under/accessories.dm index 396bcb4766..878030bc5d 100644 --- a/code/modules/clothing/under/accessories.dm +++ b/code/modules/clothing/under/accessories.dm @@ -1,4 +1,4 @@ -/obj/item/clothing/accessory //Ties moved to neck slot items, but as there are still things like medals and armbands, this accessory system is being kept as-is +/obj/item/clothing/accessory //Ties moved to neck slot items, but as there are still things like medals, pokadots, and armbands, this accessory system is being kept as-is name = "Accessory" desc = "Something has gone wrong!" icon = 'icons/obj/clothing/accessories.dmi' @@ -354,3 +354,60 @@ item_color = "skull" above_suit = TRUE armor = list("melee" = 5, "bullet" = 5, "laser" = 5, "energy" = 5, "bomb" = 20, "bio" = 20, "rad" = 5, "fire" = 0, "acid" = 25) + +///////////////////// +//Synda Accessories// +///////////////////// + +/obj/item/clothing/accessory/padding + name = "soft padding" + desc = "Some long sheets of padding to help soften the blows of a physical attacks." + icon_state = "padding" + item_color = "nothing" + armor = list("melee" = 15, "bullet" = 10, "laser" = 0, "energy" = 0, "bomb" = 5, "bio" = 0, "rad" = 0, "fire" = -20, "acid" = 45) + +/obj/item/clothing/accessory/kevlar + name = "kevlar sheets" + desc = "Long thin sheets of kevlar to help resist bullets and some physical attacks." + icon_state = "padding" + item_color = "nothing" + armor = list("melee" = 10, "bullet" = 20, "laser" = 0, "energy" = 0, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 25) + +/obj/item/clothing/accessory/plastics + name = "underling plastic sheet" + desc = "A full body sheet of white plastic to help defuse lasers and energy based weapons." + icon_state = "plastics" + item_color = "nothing" + armor = list("melee" = 0, "bullet" = 0, "laser" = 20, "energy" = 10, "bomb" = 0, "bio" = 30, "rad" = 0, "fire" = 0, "acid" = -40) + +///////////////////// +//Pokadots On Pants// +///////////////////// + +/obj/item/clothing/accessory/attrocious_pokadots + name = "atrocious pokadots" + desc = "They look like something out of a thrift store. Attaches to clothing not to be worn by itself." + icon_state = "attrocious_pokadots" + item_color = "attrocious_pokadots" + attack_verb = list("horrifed", "eye bleeded") + +/obj/item/clothing/accessory/black_white_pokadots + name = "checkered pokadots" + desc = "You can play a game of chess on these! Attaches to clothing not to be worn by itself." + icon_state = "black_white_pokadots" + item_color = "black_white_pokadots" + attack_verb = list("check", "mate") + +/obj/item/clothing/accessory/nt_pokadots + name = "blue and white pokadots" + desc = "To show your pride in your workplace, in the most annoying possable way. Attaches to clothing not to be worn by itself." + icon_state = "nt_pokadots" + item_color = "nt_pokadots" + attack_verb = list("eye bleeded", "annoyed") + +/obj/item/clothing/accessory/syndi_pokadots + name = "black and red pokadots" + desc = "King me. Attaches to clothing not to be worn by itself." //checkers! + icon_state = "syndi_pokadots" + item_color = "syndi_pokadots" + attack_verb = list("jumped", "taken") \ No newline at end of file diff --git a/code/modules/clothing/under/color.dm b/code/modules/clothing/under/color.dm index 324c16fec7..54264ef9d4 100644 --- a/code/modules/clothing/under/color.dm +++ b/code/modules/clothing/under/color.dm @@ -1,12 +1,18 @@ /obj/item/clothing/under/color desc = "A standard issue colored jumpsuit. Variety is the spice of life!" +/obj/item/clothing/under/skirt/color + body_parts_covered = CHEST|GROIN|ARMS + can_adjust = FALSE + fitted = FEMALE_UNIFORM_TOP + /obj/item/clothing/under/color/random icon_state = "random_jumpsuit" /obj/item/clothing/under/color/random/Initialize() ..() - var/obj/item/clothing/under/color/C = pick(subtypesof(/obj/item/clothing/under/color) - /obj/item/clothing/under/color/random - /obj/item/clothing/under/color/grey/glorf - /obj/item/clothing/under/color/black/ghost) + var/obj/item/clothing/under/color/C = pick(subtypesof(/obj/item/clothing/under/color) - subtypesof(/obj/item/clothing/under/skirt/color) - /obj/item/clothing/under/color/random - /obj/item/clothing/under/color/grey/glorf - /obj/item/clothing/under/color/black/ghost) + if(ishuman(loc)) var/mob/living/carbon/human/H = loc H.equip_to_slot_or_del(new C(H), SLOT_W_UNIFORM) //or else you end up with naked assistants running around everywhere... @@ -14,6 +20,20 @@ new C(loc) return INITIALIZE_HINT_QDEL +/obj/item/clothing/under/skirt/color/random + icon_state = "random_jumpsuit" //Skirt variant needed + +/obj/item/clothing/under/skirt/color/random/Initialize() + ..() + var/obj/item/clothing/under/skirt/color/C = pick(subtypesof(/obj/item/clothing/under/skirt/color) - /obj/item/clothing/under/skirt/color/random) + if(ishuman(loc)) + var/mob/living/carbon/human/H = loc + H.equip_to_slot_or_del(new C(H), SLOT_W_UNIFORM) + else + new C(loc) + return INITIALIZE_HINT_QDEL + + /obj/item/clothing/under/color/black name = "black jumpsuit" icon_state = "black" @@ -21,9 +41,22 @@ item_color = "black" resistance_flags = NONE -/obj/item/clothing/under/color/black/ghost - item_flags = NODROP | DROPDEL +/obj/item/clothing/under/skirt/color/black + name = "black jumpskirt" + icon_state = "black_skirt" + item_state = "bl_suit" + item_color = "black_skirt" +/obj/item/clothing/under/color/black/ghost + item_flags = DROPDEL + +/obj/item/clothing/under/color/black/ghost/Initialize() + . = ..() + ADD_TRAIT(src, TRAIT_NODROP, CULT_TRAIT) + +/obj/item/clothing/under/color/black/ghost/Initialize() + . = ..() + ADD_TRAIT(src, TRAIT_NODROP, DROPDEL) /obj/item/clothing/under/color/grey name = "grey jumpsuit" desc = "A tasteful grey jumpsuit that reminds you of the good old days." @@ -31,6 +64,13 @@ item_state = "gy_suit" item_color = "grey" +/obj/item/clothing/under/skirt/color/grey + name = "grey jumpskirt" + desc = "A tasteful grey jumpskirt that reminds you of the good old days." + icon_state = "grey_skirt" + item_state = "gy_suit" + item_color = "grey_skirt" + /obj/item/clothing/under/color/grey/glorf name = "ancient jumpsuit" desc = "A terribly ragged and frayed grey jumpsuit. It looks like it hasn't been washed in over a decade." @@ -45,12 +85,24 @@ item_state = "b_suit" item_color = "blue" +/obj/item/clothing/under/skirt/color/blue + name = "blue jumpskirt" + icon_state = "blue_skirt" + item_state = "b_suit" + item_color = "blue_skirt" + /obj/item/clothing/under/color/green name = "green jumpsuit" icon_state = "green" item_state = "g_suit" item_color = "green" +/obj/item/clothing/under/skirt/color/green + name = "green jumpskirt" + icon_state = "green_skirt" + item_state = "g_suit" + item_color = "green_skirt" + /obj/item/clothing/under/color/orange name = "orange jumpsuit" desc = "Don't wear this near paranoid security officers." @@ -58,6 +110,12 @@ item_state = "o_suit" item_color = "orange" +/obj/item/clothing/under/skirt/color/orange + name = "orange jumpskirt" + icon_state = "orange_skirt" + item_state = "o_suit" + item_color = "orange_skirt" + /obj/item/clothing/under/color/pink name = "pink jumpsuit" icon_state = "pink" @@ -65,66 +123,133 @@ item_state = "p_suit" item_color = "pink" +/obj/item/clothing/under/skirt/color/pink + name = "pink jumpskirt" + icon_state = "pink_skirt" + item_state = "p_suit" + item_color = "pink_skirt" + /obj/item/clothing/under/color/red name = "red jumpsuit" icon_state = "red" item_state = "r_suit" item_color = "red" +/obj/item/clothing/under/skirt/color/red + name = "red jumpskirt" + icon_state = "red_skirt" + item_state = "r_suit" + item_color = "red_skirt" + /obj/item/clothing/under/color/white name = "white jumpsuit" icon_state = "white" item_state = "w_suit" item_color = "white" +/obj/item/clothing/under/skirt/color/white + name = "white jumpskirt" + icon_state = "white_skirt" + item_state = "w_suit" + item_color = "white_skirt" + /obj/item/clothing/under/color/yellow name = "yellow jumpsuit" icon_state = "yellow" item_state = "y_suit" item_color = "yellow" +/obj/item/clothing/under/skirt/color/yellow + name = "yellow jumpskirt" + icon_state = "yellow_skirt" + item_state = "y_suit" + item_color = "yellow_skirt" + /obj/item/clothing/under/color/darkblue name = "darkblue jumpsuit" icon_state = "darkblue" item_state = "b_suit" item_color = "darkblue" +/obj/item/clothing/under/skirt/color/darkblue + name = "darkblue jumpskirt" + icon_state = "darkblue_skirt" + item_state = "b_suit" + item_color = "darkblue_skirt" + /obj/item/clothing/under/color/teal name = "teal jumpsuit" icon_state = "teal" item_state = "b_suit" item_color = "teal" +/obj/item/clothing/under/skirt/color/teal + name = "teal jumpskirt" + icon_state = "teal_skirt" + item_state = "b_suit" + item_color = "teal_skirt" + + /obj/item/clothing/under/color/lightpurple name = "purple jumpsuit" icon_state = "lightpurple" item_state = "p_suit" item_color = "lightpurple" +/obj/item/clothing/under/skirt/color/lightpurple + name = "lightpurple jumpskirt" + icon_state = "lightpurple_skirt" + item_state = "p_suit" + item_color = "lightpurple_skirt" + /obj/item/clothing/under/color/darkgreen name = "darkgreen jumpsuit" icon_state = "darkgreen" item_state = "g_suit" item_color = "darkgreen" +/obj/item/clothing/under/skirt/color/darkgreen + name = "darkgreen jumpskirt" + icon_state = "darkgreen_skirt" + item_state = "g_suit" + item_color = "darkgreen_skirt" + /obj/item/clothing/under/color/lightbrown name = "lightbrown jumpsuit" icon_state = "lightbrown" item_state = "lb_suit" item_color = "lightbrown" +/obj/item/clothing/under/skirt/color/lightbrown + name = "lightbrown jumpskirt" + icon_state = "lightbrown_skirt" + item_state = "lb_suit" + item_color = "lightbrown_skirt" + /obj/item/clothing/under/color/brown name = "brown jumpsuit" icon_state = "brown" item_state = "lb_suit" item_color = "brown" +/obj/item/clothing/under/skirt/color/brown + name = "brown jumpskirt" + icon_state = "brown_skirt" + item_state = "lb_suit" + item_color = "brown_skirt" + /obj/item/clothing/under/color/maroon name = "maroon jumpsuit" icon_state = "maroon" item_state = "r_suit" item_color = "maroon" +/obj/item/clothing/under/skirt/color/maroon + name = "maroon jumpskirt" + icon_state = "maroon_skirt" + item_state = "r_suit" + item_color = "maroon_skirt" + /obj/item/clothing/under/color/rainbow name = "rainbow jumpsuit" desc = "A multi-colored jumpsuit!" @@ -132,3 +257,11 @@ item_state = "rainbow" item_color = "rainbow" can_adjust = FALSE + +/obj/item/clothing/under/skirt/color/rainbow + name = "rainbow jumpskirt" + desc = "A multi-colored jumpskirt!" + icon_state = "rainbow_skirt" + item_state = "rainbow" + item_color = "rainbow_skirt" + can_adjust = FALSE diff --git a/code/modules/clothing/under/jobs/civilian.dm b/code/modules/clothing/under/jobs/civilian.dm index 2288c98b34..c6796d64c9 100644 --- a/code/modules/clothing/under/jobs/civilian.dm +++ b/code/modules/clothing/under/jobs/civilian.dm @@ -16,6 +16,16 @@ item_color = "purplebartender" can_adjust = FALSE +/obj/item/clothing/under/rank/bartender/skirt + name = "bartender's skirt" + desc = "It looks like it could use some more flair." + icon_state = "barman_skirt" + item_state = "bar_suit" + item_color = "barman_skirt" + body_parts_covered = CHEST|GROIN|ARMS + can_adjust = FALSE + fitted = FEMALE_UNIFORM_TOP + /obj/item/clothing/under/rank/captain //Alright, technically not a 'civilian' but its better then giving a .dm file for a single define. desc = "It's a blue jumpsuit with some gold markings denoting the rank of \"Captain\"." name = "captain's jumpsuit" @@ -25,6 +35,16 @@ sensor_mode = SENSOR_COORDS random_sensor = FALSE +/obj/item/clothing/under/rank/captain/skirt + name = "captain's jumpskirt" + desc = "It's a blue jumpskirt with some gold markings denoting the rank of \"Captain\"." + icon_state = "captain_skirt" + item_state = "b_suit" + item_color = "captain_skirt" + body_parts_covered = CHEST|GROIN|ARMS + can_adjust = FALSE + fitted = FEMALE_UNIFORM_TOP + /obj/item/clothing/under/rank/cargo name = "quartermaster's jumpsuit" desc = "It's a jumpsuit worn by the quartermaster. It's specially designed to prevent back injuries caused by pushing paper." @@ -32,6 +52,16 @@ item_state = "lb_suit" item_color = "qm" +/obj/item/clothing/under/rank/cargo/skirt + name = "quartermaster's jumpskirt" + desc = "It's a jumpskirt worn by the quartermaster. It's specially designed to prevent back injuries caused by pushing paper." + icon_state = "qm_skirt" + item_state = "lb_suit" + item_color = "qm_skirt" + body_parts_covered = CHEST|GROIN|ARMS + can_adjust = FALSE + fitted = FEMALE_UNIFORM_TOP + /obj/item/clothing/under/rank/cargotech name = "cargo technician's jumpsuit" desc = "Shooooorts! They're comfy and easy to wear!" @@ -42,6 +72,15 @@ mutantrace_variation = MUTANTRACE_VARIATION alt_covers_chest = TRUE +/obj/item/clothing/under/rank/cargotech/skirt + name = "cargo technician's jumpskirt" + desc = "Skiiiiirts! They're comfy and easy to wear" + icon_state = "cargo_skirt" + item_state = "lb_suit" + item_color = "cargo_skirt" + body_parts_covered = CHEST|GROIN|ARMS + can_adjust = FALSE + fitted = FEMALE_UNIFORM_TOP /obj/item/clothing/under/rank/chaplain desc = "It's a black jumpsuit, often worn by religious folk." @@ -51,6 +90,16 @@ item_color = "chapblack" can_adjust = FALSE +/obj/item/clothing/under/rank/chaplain/skirt + name = "chaplain's jumpskirt" + desc = "It's a black jumpskirt, often worn by religious folk." + icon_state = "chapblack_skirt" + item_state = "bl_suit" + item_color = "chapblack_skirt" + body_parts_covered = CHEST|GROIN|ARMS + can_adjust = FALSE + fitted = FEMALE_UNIFORM_TOP + /obj/item/clothing/under/rank/chef name = "cook's suit" desc = "A suit which is given only to the most hardcore cooks in space." @@ -58,6 +107,15 @@ item_color = "chef" alt_covers_chest = TRUE +/obj/item/clothing/under/rank/chef/skirt + name = "cook's skirt" + desc = "A skirt which is given only to the most hardcore cooks in space." + icon_state = "chef_skirt" + item_color = "chef_skirt" + body_parts_covered = CHEST|GROIN|ARMS + can_adjust = FALSE + fitted = FEMALE_UNIFORM_TOP + /obj/item/clothing/under/rank/clown name = "clown suit" desc = "'HONK!'" @@ -66,7 +124,6 @@ item_color = "clown" fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE - /obj/item/clothing/under/rank/blueclown name = "blue clown suit" desc = "'BLUE HONK!'" @@ -130,7 +187,6 @@ /obj/item/clothing/under/rank/clown/Initialize() . = ..() AddComponent(/datum/component/squeak, list('sound/items/bikehorn.ogg'=1), 50) - /obj/item/clothing/under/rank/head_of_personnel desc = "It's a jumpsuit worn by someone who works in the position of \"Head of Personnel\"." name = "head of personnel's jumpsuit" @@ -139,6 +195,16 @@ item_color = "hop" can_adjust = FALSE +/obj/item/clothing/under/rank/head_of_personnel/skirt + name = "head of personnel's jumpskirt" + desc = "It's a jumpskirt worn by someone who works in the position of \"Head of Personnel\"." + icon_state = "hop_skirt" + item_state = "b_suit" + item_color = "hop_skirt" + body_parts_covered = CHEST|GROIN|ARMS + can_adjust = FALSE + fitted = FEMALE_UNIFORM_TOP + /obj/item/clothing/under/rank/hydroponics desc = "It's a jumpsuit designed to protect against minor plant-related hazards." name = "botanist's jumpsuit" @@ -147,6 +213,16 @@ item_color = "hydroponics" permeability_coefficient = 0.5 +/obj/item/clothing/under/rank/hydroponics/skirt + name = "botanist's jumpskirt" + desc = "It's a jumpskirt designed to protect against minor plant-related hazards." + icon_state = "hydroponics_skirt" + item_state = "g_suit" + item_color = "hydroponics_skirt" + body_parts_covered = CHEST|GROIN|ARMS + can_adjust = FALSE + fitted = FEMALE_UNIFORM_TOP + /obj/item/clothing/under/rank/janitor desc = "It's the official uniform of the station's janitor. It has minor protection from biohazards." name = "janitor's jumpsuit" @@ -154,49 +230,108 @@ item_color = "janitor" armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 10, "rad" = 0, "fire" = 0, "acid" = 0) +/obj/item/clothing/under/rank/janitor/skirt + name = "janitor's jumpskirt" + desc = "It's the official skirt of the station's janitor. It has minor protection from biohazards." + icon_state = "janitor_skirt" + item_color = "janitor_skirt" + body_parts_covered = CHEST|GROIN|ARMS + can_adjust = FALSE + fitted = FEMALE_UNIFORM_TOP + /obj/item/clothing/under/lawyer desc = "Slick threads." name = "Lawyer suit" can_adjust = FALSE - /obj/item/clothing/under/lawyer/black + name = "lawyer black suit" icon_state = "lawyer_black" item_state = "lawyer_black" item_color = "lawyer_black" +/obj/item/clothing/under/lawyer/black/skirt + name = "lawyer black suitskirt" + icon_state = "lawyer_black_skirt" + item_state = "lawyer_black" + item_color = "lawyer_black_skirt" + fitted = FEMALE_UNIFORM_TOP + /obj/item/clothing/under/lawyer/female + name = "female black suit" icon_state = "black_suit_fem" - item_state = "black_suit_fem" + item_state = "bl_suit" item_color = "black_suit_fem" /obj/item/clothing/under/lawyer/red + name = "lawyer red suit" icon_state = "lawyer_red" item_state = "lawyer_red" item_color = "lawyer_red" +/obj/item/clothing/under/lawyer/female/skirt + name = "female black suitskirt" + icon_state = "black_suit_fem_skirt" + item_state = "bl_suit" + item_color = "black_suit_fem_skirt" + fitted = FEMALE_UNIFORM_TOP + +/obj/item/clothing/under/lawyer/red/skirt + name = "lawyer red suitskirt" + icon_state = "lawyer_red_skirt" + item_state = "lawyer_red" + item_color = "lawyer_red_skirt" + fitted = FEMALE_UNIFORM_TOP + /obj/item/clothing/under/lawyer/blue + name = "lawyer blue suit" icon_state = "lawyer_blue" item_state = "lawyer_blue" item_color = "lawyer_blue" +/obj/item/clothing/under/lawyer/blue/skirt + name = "lawyer blue suitskirt" + icon_state = "lawyer_blue_skirt" + item_state = "lawyer_blue" + item_color = "lawyer_blue_skirt" + fitted = FEMALE_UNIFORM_TOP + /obj/item/clothing/under/lawyer/bluesuit name = "blue suit" desc = "A classy suit and tie." icon_state = "bluesuit" - item_state = "bluesuit" + item_state = "b_suit" item_color = "bluesuit" can_adjust = TRUE alt_covers_chest = TRUE +/obj/item/clothing/under/lawyer/bluesuit/skirt + name = "blue suitskirt" + desc = "A classy suitskirt and tie." + icon_state = "bluesuit_skirt" + item_state = "b_suit" + item_color = "bluesuit_skirt" + body_parts_covered = CHEST|GROIN|ARMS + can_adjust = FALSE + fitted = FEMALE_UNIFORM_TOP + /obj/item/clothing/under/lawyer/purpsuit name = "purple suit" icon_state = "lawyer_purp" - item_state = "lawyer_purp" + item_state = "p_suit" item_color = "lawyer_purp" fitted = NO_FEMALE_UNIFORM can_adjust = TRUE alt_covers_chest = TRUE +/obj/item/clothing/under/lawyer/purpsuit/skirt + name = "purple suitskirt" + icon_state = "lawyer_purp_skirt" + item_state = "p_suit" + item_color = "lawyer_purp_skirt" + body_parts_covered = CHEST|GROIN|ARMS + can_adjust = FALSE + fitted = FEMALE_UNIFORM_TOP + /obj/item/clothing/under/lawyer/blacksuit name = "black suit" desc = "A professional black suit. Nanotrasen Investigation Bureau approved!" @@ -206,6 +341,16 @@ can_adjust = TRUE alt_covers_chest = TRUE +/obj/item/clothing/under/lawyer/blacksuit/skirt + name = "black suitskirt" + desc = "A professional black suit. Nanotrasen Investigation Bureau approved!" + icon_state = "blacksuit_skirt" + item_state = "bar_suit" + item_color = "blacksuit_skirt" + can_adjust = FALSE + alt_covers_chest = TRUE + fitted = FEMALE_UNIFORM_TOP + /obj/item/clothing/under/rank/curator name = "sensible suit" desc = "It's very... sensible." @@ -214,6 +359,33 @@ item_color = "red_suit" can_adjust = FALSE +/obj/item/clothing/under/lawyer/really_black + name = "executive suit" + desc = "A formal black suit and red tie, intended for the station's finest." + icon_state = "really_black_suit" + item_state = "bl_suit" + item_color = "really_black_suit" + +/obj/item/clothing/under/lawyer/really_black/skirt + name = "executive suitskirt" + desc = "A formal black suitskirt and red tie, intended for the station's finest." + icon_state = "really_black_suit_skirt" + item_state = "bl_suit" + item_color = "really_black_suit_skirt" + body_parts_covered = CHEST|GROIN|ARMS + can_adjust = FALSE + fitted = FEMALE_UNIFORM_TOP + +/obj/item/clothing/under/rank/curator/skirt + name = "sensible suitskirt" + desc = "It's very... sensible." + icon_state = "red_suit_skirt" + item_state = "red_suit" + item_color = "red_suit_skirt" + body_parts_covered = CHEST|GROIN|ARMS + can_adjust = FALSE + fitted = FEMALE_UNIFORM_TOP + /obj/item/clothing/under/rank/curator/treasure_hunter name = "treasure hunter uniform" desc = "A rugged uniform suitable for treasure hunting." @@ -228,13 +400,22 @@ item_state = "mime" item_color = "mime" +/obj/item/clothing/under/rank/mime/skirt + name = "mime's skirt" + desc = "It's not very colourful." + icon_state = "mime_skirt" + item_state = "mime" + item_color = "mime_skirt" + body_parts_covered = CHEST|GROIN|ARMS + can_adjust = FALSE + fitted = FEMALE_UNIFORM_TOP + /obj/item/clothing/under/rank/miner desc = "It's a snappy jumpsuit with a sturdy set of overalls. It is very dirty." name = "shaft miner's jumpsuit" icon_state = "miner" item_state = "miner" item_color = "miner" - /obj/item/clothing/under/rank/miner/lavaland desc = "A green uniform for operating in hazardous environments." name = "shaft miner's jumpsuit" diff --git a/code/modules/clothing/under/jobs/engineering.dm b/code/modules/clothing/under/jobs/engineering.dm index 4ee0963a64..f65b05c280 100644 --- a/code/modules/clothing/under/jobs/engineering.dm +++ b/code/modules/clothing/under/jobs/engineering.dm @@ -8,6 +8,16 @@ armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 10, "fire" = 80, "acid" = 40) resistance_flags = NONE +/obj/item/clothing/under/rank/chief_engineer/skirt + name = "chief engineer's jumpskirt" + desc = "It's a high visibility jumpskirt given to those engineers insane enough to achieve the rank of \"Chief Engineer\". It has minor radiation shielding." + icon_state = "chief_skirt" + item_state = "gy_suit" + item_color = "chief_skirt" + body_parts_covered = CHEST|GROIN|ARMS + can_adjust = FALSE + fitted = FEMALE_UNIFORM_TOP + /obj/item/clothing/under/rank/atmospheric_technician desc = "It's a jumpsuit worn by atmospheric technicians." name = "atmospheric technician's jumpsuit" @@ -16,6 +26,16 @@ item_color = "atmos" resistance_flags = NONE +/obj/item/clothing/under/rank/atmospheric_technician/skirt + name = "atmospheric technician's jumpskirt" + desc = "It's a jumpskirt worn by atmospheric technicians." + icon_state = "atmos_skirt" + item_state = "atmos_suit" + item_color = "atmos_skirt" + body_parts_covered = CHEST|GROIN|ARMS + can_adjust = FALSE + fitted = FEMALE_UNIFORM_TOP + /obj/item/clothing/under/rank/engineer desc = "It's an orange high visibility jumpsuit worn by engineers. It has minor radiation shielding." name = "engineer's jumpsuit" @@ -24,6 +44,23 @@ item_color = "engine" armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 10, "fire" = 60, "acid" = 20) resistance_flags = NONE +/obj/item/clothing/under/rank/engineer/hazard + name = "engineer's hazard jumpsuit" + desc = "A high visibility jumpsuit made from heat and radiation resistant materials." + icon_state = "hazard" + item_state = "suit-orange" + item_color = "hazard" + alt_covers_chest = TRUE + +/obj/item/clothing/under/rank/engineer/skirt + name = "engineer's jumpskirt" + desc = "It's an orange high visibility jumpskirt worn by engineers." + icon_state = "engine_skirt" + item_state = "engi_suit" + item_color = "engine_skirt" + body_parts_covered = CHEST|GROIN|ARMS + can_adjust = FALSE + fitted = FEMALE_UNIFORM_TOP /obj/item/clothing/under/rank/roboticist desc = "It's a slimming black with reinforced seams; great for industrial work." @@ -31,4 +68,14 @@ icon_state = "robotics" item_state = "robotics" item_color = "robotics" - resistance_flags = NONE \ No newline at end of file + resistance_flags = NONE + +/obj/item/clothing/under/rank/roboticist/skirt + name = "roboticist's jumpskirt" + desc = "It's a slimming black with reinforced seams; great for industrial work." + icon_state = "robotics_skirt" + item_state = "robotics" + item_color = "robotics_skirt" + body_parts_covered = CHEST|GROIN|ARMS + can_adjust = FALSE + fitted = FEMALE_UNIFORM_TOP diff --git a/code/modules/clothing/under/jobs/medsci.dm b/code/modules/clothing/under/jobs/medsci.dm index f0980cae4d..7b7a205021 100644 --- a/code/modules/clothing/under/jobs/medsci.dm +++ b/code/modules/clothing/under/jobs/medsci.dm @@ -10,6 +10,16 @@ armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 10, "bio" = 10, "rad" = 0, "fire" = 0, "acid" = 35) can_adjust = FALSE +/obj/item/clothing/under/rank/research_director/skirt + name = "research director's vest suitskirt" + desc = "It's a suitskirt worn by those with the know-how to achieve the position of \"Research Director\". Its fabric provides minor protection from biological contaminants." + icon_state = "director_skirt" + item_state = "lb_suit" + item_color = "director_skirt" + body_parts_covered = CHEST|GROIN|ARMS + can_adjust = FALSE + fitted = FEMALE_UNIFORM_TOP + /obj/item/clothing/under/rank/research_director/alt desc = "Maybe you'll engineer your own half-man, half-pig creature some day. Its fabric provides minor protection from biological contaminants." name = "research director's tan suit" @@ -20,6 +30,16 @@ can_adjust = TRUE alt_covers_chest = TRUE +/obj/item/clothing/under/rank/research_director/alt/skirt + name = "research director's tan suitskirt" + desc = "Maybe you'll engineer your own half-man, half-pig creature some day. Its fabric provides minor protection from biological contaminants." + icon_state = "rdwhimsy_skirt" + item_state = "rdwhimsy" + item_color = "rdwhimsy_skirt" + body_parts_covered = CHEST|GROIN|ARMS + can_adjust = FALSE + fitted = FEMALE_UNIFORM_TOP + /obj/item/clothing/under/rank/research_director/turtleneck desc = "A dark purple turtleneck and tan khakis, for a director with a superior sense of style." name = "research director's turtleneck" @@ -30,6 +50,16 @@ can_adjust = TRUE alt_covers_chest = TRUE +/obj/item/clothing/under/rank/research_director/turtleneck/skirt + name = "research director's turtleneck skirt" + desc = "A dark purple turtleneck and tan khaki skirt, for a director with a superior sense of style." + icon_state = "rdturtle_skirt" + item_state = "p_suit" + item_color = "rdturtle_skirt" + body_parts_covered = CHEST|GROIN|ARMS + can_adjust = FALSE + fitted = FEMALE_UNIFORM_TOP + /obj/item/clothing/under/rank/scientist desc = "It's made of a special fiber that provides minor protection against explosives. It has markings that denote the wearer as a scientist." name = "scientist's jumpsuit" @@ -39,6 +69,15 @@ permeability_coefficient = 0.5 armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 10, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0) +/obj/item/clothing/under/rank/scientist/skirt + name = "scientist's jumpskirt" + desc = "It's made of a special fiber that provides minor protection against explosives. It has markings that denote the wearer as a scientist." + icon_state = "toxinswhite_skirt" + item_state = "w_suit" + item_color = "toxinswhite_skirt" + body_parts_covered = CHEST|GROIN|ARMS + can_adjust = FALSE + fitted = FEMALE_UNIFORM_TOP /obj/item/clothing/under/rank/chemist desc = "It's made of a special fiber that gives special protection against biohazards. It has a chemist rank stripe on it." @@ -49,6 +88,16 @@ permeability_coefficient = 0.5 armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 10, "rad" = 0, "fire" = 50, "acid" = 65) +/obj/item/clothing/under/rank/chemist/skirt + name = "chemist's jumpskirt" + desc = "It's made of a special fiber that gives special protection against biohazards. It has a chemist rank stripe on it." + icon_state = "chemistrywhite_skirt" + item_state = "w_suit" + item_color = "chemistrywhite_skirt" + body_parts_covered = CHEST|GROIN|ARMS + can_adjust = FALSE + fitted = FEMALE_UNIFORM_TOP + /* * Medical */ @@ -61,6 +110,16 @@ permeability_coefficient = 0.5 armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 10, "rad" = 0, "fire" = 0, "acid" = 0) +/obj/item/clothing/under/rank/chief_medical_officer/skirt + name = "chief medical officer's jumpskirt" + desc = "It's a jumpskirt worn by those with the experience to be \"Chief Medical Officer\". It provides minor biological protection." + icon_state = "cmo_skirt" + item_state = "w_suit" + item_color = "cmo_skirt" + body_parts_covered = CHEST|GROIN|ARMS + can_adjust = FALSE + fitted = FEMALE_UNIFORM_TOP + /obj/item/clothing/under/rank/geneticist desc = "It's made of a special fiber that gives special protection against biohazards. It has a genetics rank stripe on it." name = "geneticist's jumpsuit" @@ -70,6 +129,16 @@ permeability_coefficient = 0.5 armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 10, "rad" = 0, "fire" = 0, "acid" = 0) +/obj/item/clothing/under/rank/geneticist/skirt + name = "geneticist's jumpskirt" + desc = "It's made of a special fiber that gives special protection against biohazards. It has a genetics rank stripe on it." + icon_state = "geneticswhite_skirt" + item_state = "w_suit" + item_color = "geneticswhite_skirt" + body_parts_covered = CHEST|GROIN|ARMS + can_adjust = FALSE + fitted = FEMALE_UNIFORM_TOP + /obj/item/clothing/under/rank/virologist desc = "It's made of a special fiber that gives special protection against biohazards. It has a virologist rank stripe on it." name = "virologist's jumpsuit" @@ -79,6 +148,16 @@ permeability_coefficient = 0.5 armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 10, "rad" = 0, "fire" = 0, "acid" = 0) +/obj/item/clothing/under/rank/virologist/skirt + name = "virologist's jumpskirt" + desc = "It's made of a special fiber that gives special protection against biohazards. It has a virologist rank stripe on it." + icon_state = "virologywhite_skirt" + item_state = "w_suit" + item_color = "virologywhite_skirt" + body_parts_covered = CHEST|GROIN|ARMS + can_adjust = FALSE + fitted = FEMALE_UNIFORM_TOP + /obj/item/clothing/under/rank/nursesuit desc = "It's a jumpsuit commonly worn by nursing staff in the medical department." name = "nurse's suit" @@ -90,7 +169,6 @@ body_parts_covered = CHEST|GROIN|ARMS fitted = NO_FEMALE_UNIFORM can_adjust = FALSE - /obj/item/clothing/under/rank/medical desc = "It's made of a special fiber that provides minor protection against biohazards. It has a cross on the chest denoting that the wearer is trained medical personnel." name = "medical doctor's jumpsuit" @@ -99,24 +177,31 @@ item_color = "medical" permeability_coefficient = 0.5 armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 10, "rad" = 0, "fire" = 0, "acid" = 0) - /obj/item/clothing/under/rank/medical/blue name = "medical scrubs" desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in baby blue." icon_state = "scrubsblue" item_color = "scrubsblue" can_adjust = FALSE - /obj/item/clothing/under/rank/medical/green name = "medical scrubs" desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in dark green." icon_state = "scrubsgreen" item_color = "scrubsgreen" can_adjust = FALSE - /obj/item/clothing/under/rank/medical/purple name = "medical scrubs" desc = "It's made of a special fiber that provides minor protection against biohazards. This one is in deep purple." icon_state = "scrubspurple" item_color = "scrubspurple" can_adjust = FALSE + +/obj/item/clothing/under/rank/medical/skirt + name = "medical doctor's jumpskirt" + desc = "It's made of a special fiber that provides minor protection against biohazards. It has a cross on the chest denoting that the wearer is trained medical personnel." + icon_state = "medical_skirt" + item_state = "w_suit" + item_color = "medical_skirt" + body_parts_covered = CHEST|GROIN|ARMS + can_adjust = FALSE + fitted = FEMALE_UNIFORM_TOP diff --git a/code/modules/clothing/under/jobs/security.dm b/code/modules/clothing/under/jobs/security.dm index 6f9e77b09f..6c00d6969c 100644 --- a/code/modules/clothing/under/jobs/security.dm +++ b/code/modules/clothing/under/jobs/security.dm @@ -4,11 +4,9 @@ * Detective * Navy uniforms */ - /* * Security */ - /obj/item/clothing/under/rank/security name = "security jumpsuit" desc = "A tactical security jumpsuit for officers complete with Nanotrasen belt buckle." @@ -20,14 +18,12 @@ alt_covers_chest = TRUE sensor_mode = SENSOR_COORDS random_sensor = FALSE - /obj/item/clothing/under/rank/security/grey name = "grey security jumpsuit" desc = "A tactical relic of years past before Nanotrasen decided it was cheaper to dye the suits red instead of washing out the blood." icon_state = "security" item_state = "gy_suit" item_color = "security" - /obj/item/clothing/under/rank/security/skirt name = "security jumpskirt" desc = "A \"tactical\" security jumpsuit with the legs replaced by a skirt." @@ -36,6 +32,7 @@ item_color = "secskirt" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE //you know now that i think of it if you adjust the skirt and the sprite disappears isn't that just like flashing everyone + fitted = FEMALE_UNIFORM_TOP /obj/item/clothing/under/rank/warden @@ -49,7 +46,6 @@ alt_covers_chest = TRUE sensor_mode = 3 random_sensor = FALSE - /obj/item/clothing/under/rank/warden/grey name = "grey security suit" desc = "A formal relic of years past before Nanotrasen decided it was cheaper to dye the suits red instead of washing out the blood." @@ -57,6 +53,16 @@ item_state = "gy_suit" item_color = "warden" +/obj/item/clothing/under/rank/warden/skirt + name = "warden's suitskirt" + desc = "A formal security suitskirt for officers complete with Nanotrasen belt buckle." + icon_state = "rwarden_skirt" + item_state = "r_suit" + item_color = "rwarden_skirt" + body_parts_covered = CHEST|GROIN|ARMS + can_adjust = FALSE + fitted = FEMALE_UNIFORM_TOP + /* * Detective */ @@ -72,6 +78,16 @@ sensor_mode = 3 random_sensor = FALSE +/obj/item/clothing/under/rank/det/skirt + name = "detective's suitskirt" + desc = "Someone who wears this means business." + icon_state = "detective_skirt" + item_state = "det" + item_color = "detective_skirt" + body_parts_covered = CHEST|GROIN|ARMS + can_adjust = FALSE + fitted = FEMALE_UNIFORM_TOP + /obj/item/clothing/under/rank/det/grey name = "noir suit" desc = "A hard-boiled private investigator's grey suit, complete with tie clip." @@ -80,6 +96,16 @@ item_color = "greydet" alt_covers_chest = TRUE +/obj/item/clothing/under/rank/det/grey/skirt + name = "noir suitskirt" + desc = "A hard-boiled private investigator's grey suitskirt, complete with tie clip." + icon_state = "greydet_skirt" + item_state = "greydet" + item_color = "greydet_skirt" + body_parts_covered = CHEST|GROIN|ARMS + can_adjust = FALSE + fitted = FEMALE_UNIFORM_TOP + /* * Head of Security */ @@ -95,13 +121,22 @@ sensor_mode = 3 random_sensor = FALSE +/obj/item/clothing/under/rank/head_of_security/skirt + name = "head of security's jumpskirt" + desc = "A security jumpskirt decorated for those few with the dedication to achieve the position of Head of Security." + icon_state = "rhos_skirt" + item_state = "r_suit" + item_color = "rhos_skirt" + body_parts_covered = CHEST|GROIN|ARMS + can_adjust = FALSE + fitted = FEMALE_UNIFORM_TOP + /obj/item/clothing/under/rank/head_of_security/grey name = "head of security's grey jumpsuit" desc = "There are old men, and there are bold men, but there are very few old, bold men." icon_state = "hos" item_state = "gy_suit" item_color = "hos" - /obj/item/clothing/under/rank/head_of_security/alt name = "head of security's turtleneck" desc = "A stylish alternative to the normal head of security jumpsuit, complete with tactical pants." @@ -109,10 +144,19 @@ item_state = "bl_suit" item_color = "hosalt" +/obj/item/clothing/under/rank/head_of_security/alt/skirt + name = "head of security's turtleneck skirt" + desc = "A stylish alternative to the normal head of security jumpsuit, complete with a tactical skirt." + icon_state = "hosalt_skirt" + item_state = "bl_suit" + item_color = "hosalt_skirt" + body_parts_covered = CHEST|GROIN|ARMS + can_adjust = FALSE + fitted = FEMALE_UNIFORM_TOP + /* * Navy uniforms */ - /obj/item/clothing/under/rank/security/navyblue name = "security officer's formal uniform" desc = "The latest in fashionable security outfits." @@ -120,7 +164,6 @@ item_state = "officerblueclothes" item_color = "officerblueclothes" alt_covers_chest = TRUE - /obj/item/clothing/under/rank/head_of_security/navyblue desc = "The insignia on this uniform tells you that this uniform belongs to the Head of Security." name = "head of security's formal uniform" @@ -128,7 +171,6 @@ item_state = "hosblueclothes" item_color = "hosblueclothes" alt_covers_chest = TRUE - /obj/item/clothing/under/rank/warden/navyblue desc = "The insignia on this uniform tells you that this uniform belongs to the Warden." name = "warden's formal uniform" @@ -136,11 +178,9 @@ item_state = "wardenblueclothes" item_color = "wardenblueclothes" alt_covers_chest = TRUE - /* *Blueshirt */ - /obj/item/clothing/under/rank/security/blueshirt name = "blue shirt and tie" desc = "I'm a little busy right now, Calhoun." @@ -148,3 +188,13 @@ item_state = "blueshift" item_color = "blueshift" can_adjust = FALSE +/* + *Spacepol + */ +/obj/item/clothing/under/rank/security/spacepol + name = "police uniform" + desc = "Space not controlled by megacorporations, planets, or pirates is under the jurisdiction of Spacepol." + icon_state = "spacepol" + item_state = "spacepol" + item_color = "spacepol" + can_adjust = FALSE diff --git a/code/modules/clothing/under/miscellaneous.dm b/code/modules/clothing/under/miscellaneous.dm index 91fde0dbd0..616c00b6c1 100644 --- a/code/modules/clothing/under/miscellaneous.dm +++ b/code/modules/clothing/under/miscellaneous.dm @@ -5,7 +5,6 @@ item_color = "red_pyjamas" item_state = "w_suit" can_adjust = FALSE - /obj/item/clothing/under/pj/blue name = "blue pj's" desc = "Sleepwear." @@ -13,7 +12,6 @@ item_color = "blue_pyjamas" item_state = "w_suit" can_adjust = FALSE - /obj/item/clothing/under/patriotsuit name = "Patriotic Suit" desc = "Motorcycle not included." @@ -21,7 +19,6 @@ item_state = "ek" item_color = "ek" can_adjust = FALSE - /obj/item/clothing/under/scratch name = "white suit" desc = "A white suit, suitable for an excellent host." @@ -30,13 +27,22 @@ item_color = "scratch" can_adjust = FALSE +/obj/item/clothing/under/scratch/skirt + name = "white suitskirt" + desc = "A white suitskirt, suitable for an excellent host." + icon_state = "white_suit_skirt" + item_state = "scratch" + item_color = "white_suit_skirt" + body_parts_covered = CHEST|GROIN|ARMS + can_adjust = FALSE + fitted = FEMALE_UNIFORM_TOP + /obj/item/clothing/under/sl_suit desc = "It's a very amish looking suit." name = "amish suit" icon_state = "sl_suit" item_color = "sl_suit" can_adjust = FALSE - /obj/item/clothing/under/roman name = "\improper Roman armor" desc = "Ancient Roman armor. Made of metallic and leather straps." @@ -46,7 +52,6 @@ can_adjust = FALSE strip_delay = 100 resistance_flags = NONE - /obj/item/clothing/under/waiter name = "waiter's outfit" desc = "It's a very smart uniform with a special pocket for tip." @@ -54,7 +59,6 @@ item_state = "waiter" item_color = "waiter" can_adjust = FALSE - /obj/item/clothing/under/rank/prisoner name = "prison jumpsuit" desc = "It's standardised Nanotrasen prisoner-wear. Its suit sensors are stuck in the \"Fully On\" position." @@ -65,20 +69,28 @@ sensor_mode = SENSOR_COORDS random_sensor = FALSE +/obj/item/clothing/under/rank/prisoner/skirt + name = "prison jumpskirt" + desc = "It's standardised Nanotrasen prisoner-wear. Its suit sensors are stuck in the \"Fully On\" position." + icon_state = "prisoner_skirt" + item_state = "o_suit" + item_color = "prisoner_skirt" + body_parts_covered = CHEST|GROIN|ARMS + can_adjust = FALSE + fitted = FEMALE_UNIFORM_TOP + /obj/item/clothing/under/rank/mailman name = "mailman's jumpsuit" desc = "'Special delivery!'" icon_state = "mailman" item_state = "b_suit" item_color = "mailman" - /obj/item/clothing/under/rank/psyche name = "psychedelic jumpsuit" desc = "Groovy!" icon_state = "psyche" item_state = "p_suit" item_color = "psyche" - /obj/item/clothing/under/rank/clown/sexy name = "sexy-clown suit" desc = "It makes you look HONKable!" @@ -86,7 +98,6 @@ item_state = "sexyclown" item_color = "sexyclown" can_adjust = FALSE - /obj/item/clothing/under/jabroni name = "Jabroni Outfit" desc = "The leather club is two sectors down." @@ -94,7 +105,6 @@ item_state = "darkholme" item_color = "darkholme" can_adjust = FALSE - /obj/item/clothing/under/rank/vice name = "vice officer's jumpsuit" desc = "It's the standard issue pretty-boy outfit, as seen on Holo-Vision." @@ -102,7 +112,6 @@ item_state = "gy_suit" item_color = "vice" can_adjust = FALSE - /obj/item/clothing/under/rank/centcom_officer desc = "It's a jumpsuit worn by CentCom Officers." name = "\improper CentCom officer's jumpsuit" @@ -110,14 +119,12 @@ item_state = "g_suit" item_color = "officer" alt_covers_chest = TRUE - /obj/item/clothing/under/rank/centcom_commander desc = "It's a jumpsuit worn by CentCom's highest-tier Commanders." name = "\improper CentCom officer's jumpsuit" icon_state = "centcom" item_state = "dg_suit" item_color = "centcom" - /obj/item/clothing/under/space name = "\improper NASA jumpsuit" desc = "It has a NASA logo on it and is made of space-proofed materials." @@ -134,7 +141,6 @@ max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT can_adjust = FALSE resistance_flags = NONE - /obj/item/clothing/under/acj name = "administrative cybernetic jumpsuit" icon_state = "syndicate" @@ -151,28 +157,24 @@ max_heat_protection_temperature = SPACE_SUIT_MAX_TEMP_PROTECT can_adjust = FALSE resistance_flags = FIRE_PROOF | ACID_PROOF - /obj/item/clothing/under/owl name = "owl uniform" desc = "A soft brown jumpsuit made of synthetic feathers and strong conviction." icon_state = "owl" item_color = "owl" can_adjust = FALSE - /obj/item/clothing/under/griffin name = "griffon uniform" desc = "A soft brown jumpsuit with a white feather collar made of synthetic feathers and a lust for mayhem." icon_state = "griffin" item_color = "griffin" can_adjust = FALSE - /obj/item/clothing/under/cloud name = "cloud" desc = "cloud" icon_state = "cloud" item_color = "cloud" can_adjust = FALSE - /obj/item/clothing/under/gimmick/rank/captain/suit name = "captain's suit" desc = "A green suit and yellow necktie. Exemplifies authority." @@ -181,6 +183,16 @@ item_color = "green_suit" can_adjust = FALSE +/obj/item/clothing/under/gimmick/rank/captain/suit/skirt + name = "green suitskirt" + desc = "A green suitskirt and yellow necktie. Exemplifies authority." + icon_state = "green_suit_skirt" + item_state = "dg_suit" + item_color = "green_suit_skirt" + body_parts_covered = CHEST|GROIN|ARMS + can_adjust = FALSE + fitted = FEMALE_UNIFORM_TOP + /obj/item/clothing/under/gimmick/rank/head_of_personnel/suit name = "head of personnel's suit" desc = "A teal suit and yellow necktie. An authoritative yet tacky ensemble." @@ -189,6 +201,16 @@ item_color = "teal_suit" can_adjust = FALSE +/obj/item/clothing/under/gimmick/rank/head_of_personnel/suit/skirt + name = "teal suitskirt" + desc = "A teal suitskirt and yellow necktie. An authoritative yet tacky ensemble." + icon_state = "teal_suit_skirt" + item_state = "g_suit" + item_color = "teal_suit_skirt" + body_parts_covered = CHEST|GROIN|ARMS + can_adjust = FALSE + fitted = FEMALE_UNIFORM_TOP + /obj/item/clothing/under/suit_jacket name = "black suit" desc = "A black suit and red tie. Very formal." @@ -196,21 +218,18 @@ item_state = "bl_suit" item_color = "black_suit" can_adjust = FALSE - /obj/item/clothing/under/suit_jacket/really_black name = "executive suit" desc = "A formal black suit and red tie, intended for the station's finest." icon_state = "really_black_suit" item_state = "bl_suit" - item_color = "black_suit" - + item_color = "really_black_suit" /obj/item/clothing/under/suit_jacket/female name = "executive suit" desc = "A formal trouser suit for women, intended for the station's finest." icon_state = "black_suit_fem" item_state = "black_suit_fem" item_color = "black_suit_fem" - /obj/item/clothing/under/suit_jacket/green name = "green suit" desc = "A green suit and yellow necktie. Baller." @@ -218,56 +237,48 @@ item_state = "dg_suit" item_color = "green_suit" can_adjust = FALSE - /obj/item/clothing/under/suit_jacket/red name = "red suit" desc = "A red suit and blue tie. Somewhat formal." icon_state = "red_suit" item_state = "r_suit" item_color = "red_suit" - /obj/item/clothing/under/suit_jacket/charcoal name = "charcoal suit" desc = "A charcoal suit and red tie. Very professional." icon_state = "charcoal_suit" item_state = "charcoal_suit" item_color = "charcoal_suit" - /obj/item/clothing/under/suit_jacket/navy name = "navy suit" desc = "A navy suit and red tie, intended for the station's finest." icon_state = "navy_suit" item_state = "navy_suit" item_color = "navy_suit" - /obj/item/clothing/under/suit_jacket/burgundy name = "burgundy suit" desc = "A burgundy suit and black tie. Somewhat formal." icon_state = "burgundy_suit" item_state = "burgundy_suit" item_color = "burgundy_suit" - /obj/item/clothing/under/suit_jacket/checkered name = "checkered suit" desc = "That's a very nice suit you have there. Shame if something were to happen to it, eh?" icon_state = "checkered_suit" item_state = "checkered_suit" item_color = "checkered_suit" - /obj/item/clothing/under/suit_jacket/tan name = "tan suit" desc = "A tan suit with a yellow tie. Smart, but casual." icon_state = "tan_suit" item_state = "tan_suit" item_color = "tan_suit" - /obj/item/clothing/under/suit_jacket/white name = "white suit" desc = "A white suit and jacket with a blue shirt. You wanna play rough? OKAY!" icon_state = "white_suit" item_state = "white_suit" item_color = "white_suit" - /obj/item/clothing/under/burial name = "burial garments" desc = "Traditional burial garments from the early 22nd century." @@ -275,7 +286,6 @@ item_state = "burial" item_color = "burial" has_sensor = NO_SENSORS - /obj/item/clothing/under/skirt/black name = "black skirt" desc = "A black skirt, very fancy!" @@ -284,7 +294,6 @@ body_parts_covered = CHEST|GROIN|ARMS fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE - /obj/item/clothing/under/skirt/blue name = "blue skirt" desc = "A blue, casual skirt." @@ -294,7 +303,6 @@ body_parts_covered = CHEST|GROIN|ARMS fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE - /obj/item/clothing/under/skirt/red name = "red skirt" desc = "A red, casual skirt." @@ -304,7 +312,6 @@ body_parts_covered = CHEST|GROIN|ARMS fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE - /obj/item/clothing/under/skirt/purple name = "purple skirt" desc = "A purple, casual skirt." @@ -314,8 +321,6 @@ body_parts_covered = CHEST|GROIN|ARMS fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE - - /obj/item/clothing/under/schoolgirl name = "blue schoolgirl uniform" desc = "It's just like one of my Japanese animes!" @@ -325,25 +330,21 @@ body_parts_covered = CHEST|GROIN|ARMS fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE - /obj/item/clothing/under/schoolgirl/red name = "red schoolgirl uniform" icon_state = "schoolgirlred" item_state = "schoolgirlred" item_color = "schoolgirlred" - /obj/item/clothing/under/schoolgirl/green name = "green schoolgirl uniform" icon_state = "schoolgirlgreen" item_state = "schoolgirlgreen" item_color = "schoolgirlgreen" - /obj/item/clothing/under/schoolgirl/orange name = "orange schoolgirl uniform" icon_state = "schoolgirlorange" item_state = "schoolgirlorange" item_color = "schoolgirlorange" - /obj/item/clothing/under/overalls name = "laborer's overalls" desc = "A set of durable overalls for getting the job done." @@ -351,7 +352,6 @@ item_state = "lb_suit" item_color = "overalls" can_adjust = FALSE - /obj/item/clothing/under/pirate name = "pirate outfit" desc = "Yarr." @@ -359,7 +359,6 @@ item_state = "pirate" item_color = "pirate" can_adjust = FALSE - /obj/item/clothing/under/soviet name = "soviet uniform" desc = "For the Motherland!" @@ -367,7 +366,6 @@ item_state = "soviet" item_color = "soviet" can_adjust = FALSE - /obj/item/clothing/under/redcoat name = "redcoat uniform" desc = "Looks old." @@ -375,7 +373,6 @@ item_state = "redcoat" item_color = "redcoat" can_adjust = FALSE - /obj/item/clothing/under/kilt name = "kilt" desc = "Includes shoes and plaid." @@ -385,10 +382,12 @@ body_parts_covered = CHEST|GROIN|LEGS|FEET fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE - /obj/item/clothing/under/kilt/highlander desc = "You're the only one worthy of this kilt." - item_flags = NODROP + +/obj/item/clothing/under/kilt/highlander/Initialize() + . = ..() + ADD_TRAIT(src, TRAIT_NODROP, HIGHLANDER) /obj/item/clothing/under/sexymime name = "sexy mime outfit" @@ -399,7 +398,6 @@ body_parts_covered = CHEST|GROIN|LEGS fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE - /obj/item/clothing/under/gladiator name = "gladiator uniform" desc = "Are you not entertained? Is that not why you are here?" @@ -410,11 +408,9 @@ fitted = NO_FEMALE_UNIFORM can_adjust = FALSE resistance_flags = NONE - /obj/item/clothing/under/gladiator/ash_walker desc = "This gladiator uniform appears to be covered in ash and fairly dated." has_sensor = NO_SENSORS - /obj/item/clothing/under/sundress name = "sundress" desc = "Makes you want to frolic in a field of daisies." @@ -424,7 +420,6 @@ body_parts_covered = CHEST|GROIN fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE - /obj/item/clothing/under/captainparade name = "captain's parade uniform" desc = "A captain's luxury-wear, for special occasions." @@ -432,7 +427,6 @@ item_state = "by_suit" item_color = "captain_parade" can_adjust = FALSE - /obj/item/clothing/under/hosparademale name = "head of security's parade uniform" desc = "A male head of security's luxury-wear, for special occasions." @@ -440,7 +434,6 @@ item_state = "r_suit" item_color = "hos_parade_male" can_adjust = FALSE - /obj/item/clothing/under/hosparadefem name = "head of security's parade uniform" desc = "A female head of security's luxury-wear, for special occasions." @@ -449,7 +442,6 @@ item_color = "hos_parade_fem" fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE - /obj/item/clothing/under/assistantformal name = "assistant's formal uniform" desc = "An assistant's formal-wear. Why an assistant needs formal-wear is still unknown." @@ -457,7 +449,6 @@ item_state = "gy_suit" item_color = "assistant_formal" can_adjust = FALSE - /obj/item/clothing/under/blacktango name = "black tango dress" desc = "Filled with Latin fire." @@ -466,8 +457,6 @@ item_color = "black_tango" fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE - body_parts_covered = CHEST|GROIN - /obj/item/clothing/under/stripeddress name = "striped dress" desc = "Fashion in space." @@ -477,7 +466,6 @@ body_parts_covered = CHEST|GROIN|ARMS fitted = FEMALE_UNIFORM_FULL can_adjust = FALSE - /obj/item/clothing/under/sailordress name = "sailor dress" desc = "Formal wear for a leading lady." @@ -487,7 +475,6 @@ body_parts_covered = CHEST|GROIN|ARMS fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE - /obj/item/clothing/under/redeveninggown name = "red evening gown" desc = "Fancy dress for space bar singers." @@ -496,7 +483,6 @@ item_color = "red_evening_gown" fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE - /obj/item/clothing/under/maid name = "maid costume" desc = "Maid in China." @@ -506,12 +492,10 @@ body_parts_covered = CHEST|GROIN fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE - /obj/item/clothing/under/maid/Initialize() . = ..() var/obj/item/clothing/accessory/maidapron/A = new (src) attach_accessory(A) - /obj/item/clothing/under/janimaid name = "maid uniform" desc = "A simple maid uniform for housekeeping." @@ -521,7 +505,6 @@ body_parts_covered = CHEST|GROIN fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE - /obj/item/clothing/under/plaid_skirt name = "red plaid skirt" desc = "A preppy red skirt with a white blouse." @@ -531,7 +514,6 @@ fitted = FEMALE_UNIFORM_TOP can_adjust = TRUE alt_covers_chest = TRUE - /obj/item/clothing/under/plaid_skirt/blue name = "blue plaid skirt" desc = "A preppy blue skirt with a white blouse." @@ -541,7 +523,6 @@ fitted = FEMALE_UNIFORM_TOP can_adjust = TRUE alt_covers_chest = TRUE - /obj/item/clothing/under/plaid_skirt/purple name = "purple plaid skirt" desc = "A preppy purple skirt with a white blouse." @@ -551,7 +532,6 @@ fitted = FEMALE_UNIFORM_TOP can_adjust = TRUE alt_covers_chest = TRUE - /obj/item/clothing/under/singery name = "yellow performer's outfit" desc = "Just looking at this makes you want to sing." @@ -562,7 +542,6 @@ fitted = NO_FEMALE_UNIFORM alternate_worn_layer = ABOVE_SHOES_LAYER can_adjust = FALSE - /obj/item/clothing/under/singerb name = "blue performer's outfit" desc = "Just looking at this makes you want to sing." @@ -573,7 +552,6 @@ alternate_worn_layer = ABOVE_SHOES_LAYER fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE - /obj/item/clothing/under/plaid_skirt/green name = "green plaid skirt" desc = "A preppy green skirt with a white blouse." @@ -583,17 +561,14 @@ fitted = FEMALE_UNIFORM_TOP can_adjust = TRUE alt_covers_chest = TRUE - /obj/item/clothing/under/jester name = "jester suit" desc = "A jolly dress, well suited to entertain your master, nuncle." icon_state = "jester" item_color = "jester" can_adjust = FALSE - /obj/item/clothing/under/jester/alt icon_state = "jester2" - /obj/item/clothing/under/geisha name = "geisha suit" desc = "Cute space ninja senpai not included." @@ -601,14 +576,12 @@ item_color = "geisha" body_parts_covered = CHEST|GROIN|ARMS can_adjust = FALSE - /obj/item/clothing/under/villain name = "villain suit" desc = "A change of wardrobe is necessary if you ever want to catch a real superhero." icon_state = "villain" item_color = "villain" can_adjust = FALSE - /obj/item/clothing/under/sailor name = "sailor suit" desc = "Skipper's in the wardroom drinkin gin'." @@ -616,7 +589,6 @@ item_state = "b_suit" item_color = "sailor" can_adjust = FALSE - /obj/item/clothing/under/plasmaman name = "plasma envirosuit" desc = "A special containment suit that allows plasma-based lifeforms to exist safely in an oxygenated environment, and automatically extinguishes them in a crisis. Despite being airtight, it's not spaceworthy." @@ -630,17 +602,12 @@ var/next_extinguish = 0 var/extinguish_cooldown = 100 var/extinguishes_left = 5 - - /obj/item/clothing/under/plasmaman/examine(mob/user) ..() to_chat(user, "There are [extinguishes_left] extinguisher charges left in this suit.") - - /obj/item/clothing/under/plasmaman/proc/Extinguish(mob/living/carbon/human/H) if(!istype(H)) return - if(H.on_fire) if(extinguishes_left) if(next_extinguish > world.time) @@ -651,7 +618,6 @@ H.ExtinguishMob() new /obj/effect/particle_effect/water(get_turf(H)) return 0 - /obj/item/clothing/under/plasmaman/attackby(obj/item/E, mob/user, params) ..() if (istype(E, /obj/item/extinguisher_refill)) @@ -665,20 +631,17 @@ return return return - /obj/item/extinguisher_refill name = "envirosuit extinguisher cartridge" desc = "A cartridge loaded with a compressed extinguisher mix, used to refill the automatic extinguisher on plasma envirosuits." icon_state = "plasmarefill" icon = 'icons/obj/device.dmi' - /obj/item/clothing/under/rank/security/navyblue/russian name = "\improper Russian officer's uniform" desc = "The latest in fashionable russian outfits." icon_state = "hostanclothes" item_state = "hostanclothes" item_color = "hostanclothes" - /obj/item/clothing/under/mummy name = "mummy wrapping" desc = "Return the slab or suffer my stale references." @@ -689,7 +652,6 @@ fitted = NO_FEMALE_UNIFORM can_adjust = FALSE resistance_flags = NONE - /obj/item/clothing/under/scarecrow name = "scarecrow clothes" desc = "Perfect camouflage for hiding in botany." @@ -700,7 +662,6 @@ fitted = NO_FEMALE_UNIFORM can_adjust = FALSE resistance_flags = NONE - /obj/item/clothing/under/draculass name = "draculass coat" desc = "A dress inspired by the ancient \"Victorian\" era." @@ -710,8 +671,6 @@ body_parts_covered = CHEST|GROIN|ARMS fitted = FEMALE_UNIFORM_TOP can_adjust = FALSE - mutantrace_variation = NO_MUTANTRACE_VARIATION - /obj/item/clothing/under/drfreeze name = "doctor freeze's jumpsuit" desc = "A modified scientist jumpsuit to look extra cool." @@ -719,8 +678,6 @@ item_state = "drfreeze" item_color = "drfreeze" can_adjust = FALSE - mutantrace_variation = NO_MUTANTRACE_VARIATION - /obj/item/clothing/under/lobster name = "foam lobster suit" desc = "Who beheaded the college mascot?" @@ -729,8 +686,6 @@ item_color = "lobster" fitted = NO_FEMALE_UNIFORM can_adjust = FALSE - mutantrace_variation = NO_MUTANTRACE_VARIATION - /obj/item/clothing/under/gondola name = "gondola hide suit" desc = "Now you're cooking." @@ -738,7 +693,6 @@ item_state = "lb_suit" item_color = "gondola" can_adjust = FALSE - /obj/item/clothing/under/skeleton name = "skeleton jumpsuit" desc = "A black jumpsuit with a white bone pattern printed on it. Spooky!" @@ -755,4 +709,23 @@ desc = "A simple, inconspicuous harness replacement for a jumpsuit." icon_state = "gear_harness" item_state = "gear_harness" //We dont use golem do to being a item, item without faces making it default to error suit sprites. - body_parts_covered = CHEST|GROIN \ No newline at end of file + body_parts_covered = CHEST|GROIN + +/obj/item/clothing/under/durathread + name = "durathread jumpsuit" + desc = "A jumpsuit made from durathread, its resilient fibres provide some protection to the wearer." + icon_state = "durathread" + item_state = "durathread" + item_color = "durathread" + can_adjust = TRUE + armor = list("melee" = 10, "laser" = 10, "fire" = 40, "acid" = 10, "bomb" = 5) + +/obj/item/clothing/under/duraskirt + name = "durathread jumpskirt" + desc = "A jumpsuit made from durathread, its resilient fibres provide some protection to the wearer. Being a short skirt, it naturally doesn't protect the legs." + icon_state = "duraskirt" + item_state = "duraskirt" + item_color = "durathread" + can_adjust = FALSE + body_parts_covered = CHEST|GROIN|ARMS + armor = list("melee" = 10, "laser" = 10, "fire" = 40, "acid" = 10, "bomb" = 5) \ No newline at end of file diff --git a/code/modules/clothing/under/syndicate.dm b/code/modules/clothing/under/syndicate.dm index 83cab9d992..4e3e1aa0cc 100644 --- a/code/modules/clothing/under/syndicate.dm +++ b/code/modules/clothing/under/syndicate.dm @@ -8,6 +8,17 @@ armor = list("melee" = 10, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40) alt_covers_chest = TRUE +/obj/item/clothing/under/syndicate/skirt + name = "tactical skirtleneck" + desc = "A non-descript and slightly suspicious looking skirtleneck." + icon_state = "syndicate_skirt" + item_state = "bl_suit" + item_color = "syndicate_skirt" + has_sensor = NO_SENSORS + armor = list("melee" = 10, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40) + alt_covers_chest = TRUE + fitted = FEMALE_UNIFORM_TOP + /obj/item/clothing/under/syndicate/tacticool name = "tacticool turtleneck" desc = "Just looking at it makes you want to buy an SKS, go into the woods, and -operate-." @@ -16,6 +27,15 @@ item_color = "tactifool" armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40) +/obj/item/clothing/under/syndicate/tacticool/skirt + name = "tacticool skirtleneck" + desc = "Just looking at it makes you want to buy an SKS, go into the woods, and -operate-." + icon_state = "tactifool_skirt" + item_state = "bl_suit" + item_color = "tactifool_skirt" + armor = list("melee" = 0, "bullet" = 0, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40) + fitted = FEMALE_UNIFORM_TOP + /obj/item/clothing/under/syndicate/sniper name = "Tactical turtleneck suit" desc = "A double seamed tactical turtleneck disguised as a civilian grade silk suit. Intended for the most formal operator. The collar is really sharp." @@ -47,3 +67,14 @@ icon_state = "syndicate_combat" item_color = "syndicate_combat" can_adjust = FALSE + +/obj/item/clothing/under/syndicate/baseball + name = "major league, number unknown" + desc = "A major league outfit with the number faded number on the back. Seems rather robust for just a game" + icon_state = "syndicatebaseball" + item_state = "syndicatebaseball" + item_color = "syndicatebaseball" + has_sensor = NO_SENSORS + armor = list("melee" = 15, "bullet" = 5, "laser" = 0,"energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 50, "acid" = 40) + alt_covers_chest = TRUE + diff --git a/code/modules/crafting/craft.dm b/code/modules/crafting/craft.dm index 3e96512bb8..0fb46c3e46 100644 --- a/code/modules/crafting/craft.dm +++ b/code/modules/crafting/craft.dm @@ -317,6 +317,8 @@ var/list/cant_craft = list() for(var/rec in GLOB.crafting_recipes) var/datum/crafting_recipe/R = rec + if(!R.always_availible && !(R.type in user?.mind?.learned_recipes)) //User doesn't actually know how to make this. + continue if((R.category != cur_category) || (R.subcategory != cur_subcategory)) continue if(check_contents(R, surroundings)) @@ -431,3 +433,10 @@ data["tool_text"] = tool_text return data + +//Mind helpers + +/datum/mind/proc/teach_crafting_recipe(R) + if(!learned_recipes) + learned_recipes = list() + learned_recipes |= R \ No newline at end of file diff --git a/code/modules/crafting/recipes.dm b/code/modules/crafting/recipes.dm index a76be1ff45..73052acfe1 100644 --- a/code/modules/crafting/recipes.dm +++ b/code/modules/crafting/recipes.dm @@ -9,6 +9,7 @@ var/chem_catalysts[] = list() //like tools but for reagents var/category = CAT_NONE //where it shows up in the crafting UI var/subcategory = CAT_NONE + var/always_availible = TRUE //Set to FALSE if it needs to be learned first. /datum/crafting_recipe/pin_removal name = "Pin Removal" @@ -68,7 +69,7 @@ /datum/crafting_recipe/molotov name = "Molotov" result = /obj/item/reagent_containers/food/drinks/bottle/molotov - reqs = list(/obj/item/reagent_containers/glass/rag = 1, + reqs = list(/obj/item/reagent_containers/rag = 1, /obj/item/reagent_containers/food/drinks/bottle = 1) parts = list(/obj/item/reagent_containers/food/drinks/bottle = 1) time = 40 @@ -210,6 +211,12 @@ time = 40 category = CAT_ROBOT +/datum/crafting_recipe/potatos + name = "Potat-OS" + reqs = list(/obj/item/stack/cable_coil = 1, /obj/item/stack/rods = 1, /obj/item/reagent_containers/food/snacks/grown/potato = 1, /obj/item/aicard = 1 ) + result = /obj/item/aicard/potato + category = CAT_ROBOT + /datum/crafting_recipe/improvised_pneumatic_cannon //Pretty easy to obtain but name = "Pneumatic Cannon" result = /obj/item/pneumatic_cannon/ghetto @@ -352,6 +359,7 @@ reqs = list(/obj/item/restraints/handcuffs/cable = 1, /obj/item/shard = 1, /obj/item/stack/rods = 1) + parts = list(/obj/item/shard = 1) time = 40 category = CAT_WEAPONRY subcategory = CAT_WEAPON @@ -454,6 +462,12 @@ /obj/item/bikehorn = 1) category = CAT_MISC +/datum/crafting_recipe/toyneb + name = "Non-Euplastic Blade" + reqs = list(/obj/item/light/tube = 1, /obj/item/stack/cable_coil = 1, /obj/item/stack/sheet/plastic = 4) + result = /obj/item/toy/sword/cx + category = CAT_MISC + /datum/crafting_recipe/chemical_payload name = "Chemical Payload (C4)" result = /obj/item/bombcore/chemical @@ -659,6 +673,15 @@ tools = list(TOOL_SCREWDRIVER, TOOL_WRENCH, TOOL_WELDER) category = CAT_MISC +/datum/crafting_recipe/femur_breaker + name = "Femur Breaker" + result = /obj/structure/femur_breaker + time = 150 + reqs = list(/obj/item/stack/sheet/metal = 20, + /obj/item/stack/cable_coil = 30) + tools = list(TOOL_SCREWDRIVER, TOOL_WRENCH, TOOL_WELDER) + category = CAT_MISC + /datum/crafting_recipe/lizardhat name = "Lizard Cloche Hat" result = /obj/item/clothing/head/lizard @@ -791,6 +814,56 @@ time = 40 category = CAT_MISC +/datum/crafting_recipe/bronze_driver + name = "Bronze Plated Screwdriver" + result = /obj/item/screwdriver/bronze + reqs = list(/obj/item/screwdriver = 1, + /obj/item/stack/cable_coil = 10, + /obj/item/stack/tile/bronze = 1, + /datum/reagent/water = 15) + time = 40 + category = CAT_MISC + +/datum/crafting_recipe/bronze_welder + name = "Bronze Plated Welding Tool" + result = /obj/item/weldingtool/bronze + reqs = list(/obj/item/weldingtool = 1, + /obj/item/stack/cable_coil = 10, + /obj/item/stack/tile/bronze = 1, + /datum/reagent/water = 15) + time = 40 + category = CAT_MISC + +/datum/crafting_recipe/bronze_wirecutters + name = "Bronze Plated Wirecutters" + result = /obj/item/wirecutters/bronze + reqs = list(/obj/item/wirecutters = 1, + /obj/item/stack/cable_coil = 10, + /obj/item/stack/tile/bronze = 1, + /datum/reagent/water = 15) + time = 40 + category = CAT_MISC + +/datum/crafting_recipe/bronze_crowbar + name = "Bronze Plated Crowbar" + result = /obj/item/crowbar/bronze + reqs = list(/obj/item/crowbar = 1, + /obj/item/stack/cable_coil = 10, + /obj/item/stack/tile/bronze = 1, + /datum/reagent/water = 15) + time = 40 + category = CAT_MISC + +/datum/crafting_recipe/bronze_wrench + name = "Bronze Plated Wrench" + result = /obj/item/wrench/bronze + reqs = list(/obj/item/wrench = 1, + /obj/item/stack/cable_coil = 10, + /obj/item/stack/tile/bronze = 1, + /datum/reagent/water = 15) + time = 40 + category = CAT_MISC + /datum/crafting_recipe/smartdart name = "Medical smartdart" result = /obj/item/reagent_containers/syringe/dart @@ -823,3 +896,44 @@ time = 150 //It's a gun category = CAT_WEAPONRY subcategory = CAT_WEAPON + +/datum/crafting_recipe/durathread_duffelbag + name = "Durathread Dufflebag" + result = /obj/item/storage/backpack/duffelbag/durathread + reqs = list(/obj/item/stack/sheet/durathread = 7, + /obj/item/stack/sheet/leather = 3) + time = 70 + category = CAT_CLOTHING + +/datum/crafting_recipe/durathread_toolbelt + name = "Durathread Toolbelt" + result = /obj/item/storage/belt/durathread + reqs = list(/obj/item/stack/sheet/durathread = 5, + /obj/item/stack/sheet/leather = 1) + time = 30 + category = CAT_CLOTHING + +/datum/crafting_recipe/durathread_bandolier + name = "Durathread Bandolier" + result = /obj/item/storage/belt/bandolier/durathread + reqs = list(/obj/item/stack/sheet/durathread = 6, + /obj/item/stack/sheet/leather = 2) + time = 50 + category = CAT_CLOTHING + + /datum/crafting_recipe/durathread_helmet + name = "Makeshift Durathread Helmet" + result = /obj/item/clothing/head/helmet/durathread + reqs = list(/obj/item/stack/sheet/durathread = 4, + /obj/item/stack/sheet/leather = 2) + time = 30 + category = CAT_CLOTHING + +/datum/crafting_recipe/durathread_vest + name = "Makeshift Durathread Armour" + result = /obj/item/clothing/suit/armor/vest/durathread + reqs = list(/obj/item/stack/sheet/durathread = 6, + /obj/item/stack/sheet/leather = 3) + time = 50 + category = CAT_CLOTHING + diff --git a/code/modules/detectivework/footprints_and_rag.dm b/code/modules/detectivework/footprints_and_rag.dm deleted file mode 100644 index a25bc01b13..0000000000 --- a/code/modules/detectivework/footprints_and_rag.dm +++ /dev/null @@ -1,50 +0,0 @@ - -/mob - var/bloody_hands = 0 - -/obj/item/clothing/gloves - var/transfer_blood = 0 - - -/obj/item/reagent_containers/glass/rag - name = "damp rag" - desc = "For cleaning up messes, you suppose." - w_class = WEIGHT_CLASS_TINY - icon = 'icons/obj/toy.dmi' - icon_state = "rag" - item_flags = NOBLUDGEON - reagent_flags = OPENCONTAINER - amount_per_transfer_from_this = 5 - possible_transfer_amounts = list() - volume = 5 - spillable = FALSE - -/obj/item/reagent_containers/glass/rag/suicide_act(mob/user) - user.visible_message("[user] is smothering [user.p_them()]self with [src]! It looks like [user.p_theyre()] trying to commit suicide!") - return (OXYLOSS) - -/obj/item/reagent_containers/glass/rag/afterattack(atom/A as obj|turf|area, mob/user,proximity) - . = ..() - if(!proximity) - return - if(iscarbon(A) && A.reagents && reagents.total_volume) - var/mob/living/carbon/C = A - var/reagentlist = pretty_string_from_reagent_list(reagents) - var/log_object = "a damp rag containing [reagentlist]" - if(user.a_intent == INTENT_HARM && !C.is_mouth_covered()) - reagents.reaction(C, INGEST) - reagents.trans_to(C, reagents.total_volume) - C.visible_message("[user] has smothered \the [C] with \the [src]!", "[user] has smothered you with \the [src]!", "You hear some struggling and muffled cries of surprise.") - log_combat(user, C, "smothered", log_object) - else - reagents.reaction(C, TOUCH) - reagents.clear_reagents() - C.visible_message("[user] has touched \the [C] with \the [src].") - log_combat(user, C, "touched", log_object) - - else if(istype(A) && src in user) - user.visible_message("[user] starts to wipe down [A] with [src]!", "You start to wipe down [A] with [src]...") - if(do_after(user,30, target = A)) - user.visible_message("[user] finishes wiping off [A]!", "You finish wiping off [A].") - SEND_SIGNAL(A, COMSIG_COMPONENT_CLEAN_ACT, CLEAN_MEDIUM) - return diff --git a/code/modules/events/holiday/vday.dm b/code/modules/events/holiday/vday.dm index a4e8b276b5..8f77af58eb 100644 --- a/code/modules/events/holiday/vday.dm +++ b/code/modules/events/holiday/vday.dm @@ -41,11 +41,16 @@ else L.mind.add_antag_datum(/datum/antagonist/heartbreaker) -/proc/forge_valentines_objective(mob/living/lover,mob/living/date) +/proc/forge_valentines_objective(mob/living/lover,mob/living/date,var/chemLove = FALSE) lover.mind.special_role = "valentine" - var/datum/antagonist/valentine/V = new - V.date = date.mind - lover.mind.add_antag_datum(V) //These really should be teams but i can't be assed to incorporate third wheels right now + if (chemLove == TRUE) + var/datum/antagonist/valentine/chem/V = new //Changes text and EOG check basically. + V.date = date.mind + lover.mind.add_antag_datum(V) + else + var/datum/antagonist/valentine/V = new + V.date = date.mind + lover.mind.add_antag_datum(V) //These really should be teams but i can't be assed to incorporate third wheels right now /datum/round_event/valentines/announce(fake) priority_announce("It's Valentine's Day! Give a valentine to that special someone!") diff --git a/code/modules/events/meteor_wave.dm b/code/modules/events/meteor_wave.dm index 798bcf82dd..af22ae3b96 100644 --- a/code/modules/events/meteor_wave.dm +++ b/code/modules/events/meteor_wave.dm @@ -15,6 +15,12 @@ var/list/wave_type var/wave_name = "normal" +/datum/round_event/meteor_wave/setup() + announceWhen = 1 + startWhen = rand(300, 600) //Yeah for SOME REASON this is measured in seconds and not deciseconds??? + endWhen = startWhen + 60 + + /datum/round_event/meteor_wave/New() ..() if(!wave_type) @@ -46,7 +52,7 @@ kill() /datum/round_event/meteor_wave/announce(fake) - priority_announce("Meteors have been detected on collision course with the station.", "Meteor Alert", 'sound/ai/meteors.ogg') + priority_announce("Meteors have been detected on collision course with the station. Estimated time until impact: [round(startWhen/60)] minutes.", "Meteor Alert", 'sound/ai/meteors.ogg') /datum/round_event/meteor_wave/tick() if(ISMULTIPLE(activeFor, 3)) diff --git a/code/modules/events/wizard/curseditems.dm b/code/modules/events/wizard/curseditems.dm index a6e08fbd8c..41ee4246b1 100644 --- a/code/modules/events/wizard/curseditems.dm +++ b/code/modules/events/wizard/curseditems.dm @@ -50,7 +50,8 @@ var/obj/item/I = new J //dumb but required because of byond throwing a fit anytime new gets too close to a list H.dropItemToGround(H.get_item_by_slot(i), TRUE) H.equip_to_slot_or_del(I, i) - I.item_flags |= NODROP | DROPDEL + ADD_TRAIT(I, TRAIT_NODROP, CURSED_ITEM_TRAIT) + I.item_flags |= DROPDEL I.name = "cursed " + I.name for(var/mob/living/carbon/human/H in GLOB.alive_mob_list) diff --git a/code/modules/events/wizard/shuffle.dm b/code/modules/events/wizard/shuffle.dm index ec253f13c3..7e37429223 100644 --- a/code/modules/events/wizard/shuffle.dm +++ b/code/modules/events/wizard/shuffle.dm @@ -27,7 +27,7 @@ for(var/mob/living/carbon/human/H in mobs) if(!moblocs) break //locs aren't always unique, so this may come into play - do_teleport(H, moblocs[moblocs.len]) + do_teleport(H, moblocs[moblocs.len], channel = TELEPORT_CHANNEL_MAGIC) moblocs.len -= 1 for(var/mob/living/carbon/human/H in GLOB.alive_mob_list) diff --git a/code/modules/events/wormholes.dm b/code/modules/events/wormholes.dm index 412e54878a..bb601b7c82 100644 --- a/code/modules/events/wormholes.dm +++ b/code/modules/events/wormholes.dm @@ -63,4 +63,4 @@ hard_target = P.loc if(!hard_target) return - do_teleport(M, hard_target, 1, 1, 0, 0) ///You will appear adjacent to the beacon + do_teleport(M, hard_target, 1, 1, 0, 0, channel = TELEPORT_CHANNEL_WORMHOLE) ///You will appear adjacent to the beacon diff --git a/code/modules/food_and_drinks/drinks/drinks/bottle.dm b/code/modules/food_and_drinks/drinks/drinks/bottle.dm index f85668d2b8..e72b624ae5 100644 --- a/code/modules/food_and_drinks/drinks/drinks/bottle.dm +++ b/code/modules/food_and_drinks/drinks/drinks/bottle.dm @@ -7,11 +7,12 @@ /obj/item/reagent_containers/food/drinks/bottle amount_per_transfer_from_this = 10 volume = 100 + force = 15 throwforce = 15 item_state = "broken_beer" //Generic held-item sprite until unique ones are made. lefthand_file = 'icons/mob/inhands/misc/food_lefthand.dmi' righthand_file = 'icons/mob/inhands/misc/food_righthand.dmi' - var/const/duration = 13 //Directly relates to the 'knockdown' duration. Lowered by armor (i.e. helmets) + var/knockdown_duration = 13 //Directly relates to the 'knockdown' duration. Lowered by armor (i.e. helmets) isGlass = TRUE foodtype = ALCOHOL @@ -61,46 +62,30 @@ to_chat(user, "You don't want to harm [target]!") return - force = 15 //Smashing bottles over someoen's head hurts. - var/obj/item/bodypart/affecting = user.zone_selected //Find what the player is aiming at - var/armor_block = 0 //Get the target's armor values for normal attack damage. - var/armor_duration = 0 //The more force the bottle has, the longer the duration. + var/headarmor = 0 // Target's head armor + var/armor_block = min(90, target.run_armor_check(affecting, "melee", null, null,armour_penetration)) // For normal attack damage - //Calculating duration and calculating damage. - if(ishuman(target)) + //If they have a hat/helmet and the user is targeting their head. + if(affecting == BODY_ZONE_HEAD) + var/obj/item/I = target.get_item_by_slot(SLOT_HEAD) + if(I) + headarmor = I.armor.melee - var/mob/living/carbon/human/H = target - var/headarmor = 0 // Target's head armor - armor_block = H.run_armor_check(affecting, "melee", null, null,armour_penetration) // For normal attack damage - - //If they have a hat/helmet and the user is targeting their head. - if(istype(H.head, /obj/item/clothing/head) && affecting == BODY_ZONE_HEAD) - headarmor = H.head.armor.melee - else - headarmor = 0 - - //Calculate the knockdown duration for the target. - armor_duration = (duration - headarmor) + force - - else - //Only humans can have armor, right? - armor_block = target.run_armor_check(affecting, "melee") - if(affecting == BODY_ZONE_HEAD) - armor_duration = duration + force + //Calculate the knockdown duration for the target. + var/armor_duration = (knockdown_duration - headarmor) + force //Apply the damage! - armor_block = min(90,armor_block) target.apply_damage(force, BRUTE, affecting, armor_block) // You are going to knock someone out for longer if they are not wearing a helmet. var/head_attack_message = "" - if(affecting == BODY_ZONE_HEAD && istype(target, /mob/living/carbon/)) + if(affecting == BODY_ZONE_HEAD && iscarbon(target)) head_attack_message = " on the head" //Knockdown the target for the duration that we calculated and divide it by 5. if(armor_duration) - target.apply_effect(min(armor_duration, 200) , EFFECT_KNOCKDOWN) // Never knockdown more than a flash! + target.Knockdown(min(armor_duration, 200)) // Never knockdown more than a flash! //Display an attack message. if(target != user) @@ -202,17 +187,18 @@ desc = "A flask of holy water...it's been sitting in the Necropolis a while though." list_reagents = list("hell_water" = 100) -/obj/item/reagent_containers/food/drinks/holyoil +/obj/item/reagent_containers/food/drinks/bottle/holyoil name = "flask of zelus oil" - desc = "A brass flask of Zelus oil, a viscous fluid with a scenting of brass - this flask may be sipped or thrown." + desc = "A brass flask of Zelus oil, a viscous fluid scenting of brass. Can be thrown to deal damage from afar." icon_state = "zelusflask" - list_reagents = list("holyoil" = 30) //Powerfull + list_reagents = list("holyoil" = 30) volume = 30 foodtype = NONE - force = 12 //Same as a toolbox + force = 18 throwforce = 18 + knockdown_duration = 18 -/obj/item/reagent_containers/food/drinks/holyoil/null +/obj/item/reagent_containers/food/drinks/bottle/holyoil/empty list_reagents = list("holyoil" = 0) /obj/item/reagent_containers/food/drinks/bottle/vermouth diff --git a/code/modules/food_and_drinks/food/condiment.dm b/code/modules/food_and_drinks/food/condiment.dm index 31e99535d1..1d0b626d98 100644 --- a/code/modules/food_and_drinks/food/condiment.dm +++ b/code/modules/food_and_drinks/food/condiment.dm @@ -16,6 +16,7 @@ //Possible_states has the reagent id as key and a list of, in order, the icon_state, the name and the desc as values. Used in the on_reagent_change(changetype) to change names, descs and sprites. var/list/possible_states = list( "ketchup" = list("ketchup", "ketchup bottle", "You feel more American already."), + "mustard" = list("mustard", "mustard bottle", "A spice mixed with enzymes and water."), "capsaicin" = list("hotsauce", "hotsauce bottle", "You can almost TASTE the stomach ulcers now!"), "enzyme" = list("enzyme", "universal enzyme bottle", "Used in cooking various dishes"), "soysauce" = list("soysauce", "soy sauce bottle", "A salty soy-based flavoring"), @@ -282,6 +283,12 @@ originalname = "ketchup" list_reagents = list("ketchup" = 10) +//Mustard +/obj/item/reagent_containers/food/condiment/pack/mustard + name = "mustard pack" + originalname = "mustard" + list_reagents = list("mustard" = 10) + //Hot sauce /obj/item/reagent_containers/food/condiment/pack/hotsauce name = "hotsauce pack" diff --git a/code/modules/food_and_drinks/food/snacks/meat.dm b/code/modules/food_and_drinks/food/snacks/meat.dm index 1a82d1b406..ee169e9861 100644 --- a/code/modules/food_and_drinks/food/snacks/meat.dm +++ b/code/modules/food_and_drinks/food/snacks/meat.dm @@ -108,7 +108,7 @@ tastes = list("maggots" = 1, "the inside of a reactor" = 1) foodtype = MEAT | RAW | GROSS -/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/moth +/obj/item/reagent_containers/food/snacks/meat/slab/human/mutant/insect icon_state = "mothmeat" desc = "Unpleasantly powdery and dry. Kind of pretty, though." filling_color = "#BF896B" diff --git a/code/modules/food_and_drinks/food/snacks_cake.dm b/code/modules/food_and_drinks/food/snacks_cake.dm index 1eeea79410..98f80331a7 100644 --- a/code/modules/food_and_drinks/food/snacks_cake.dm +++ b/code/modules/food_and_drinks/food/snacks_cake.dm @@ -17,21 +17,21 @@ foodtype = GRAIN | DAIRY /obj/item/reagent_containers/food/snacks/store/cake/plain - name = "vanilla cake" + name = "plain cake" desc = "A plain cake, not a lie." icon_state = "plaincake" custom_food_type = /obj/item/reagent_containers/food/snacks/customizable/cake bonus_reagents = list("nutriment" = 10, "vitamin" = 2) - tastes = list("vanilla" = 1, "sweetness" = 2,"cake" = 5) + tastes = list("sweetness" = 2,"cake" = 5) foodtype = GRAIN | DAIRY | SUGAR /obj/item/reagent_containers/food/snacks/cakeslice/plain - name = "vanilla cake slice" + name = "plain cake slice" desc = "Just a slice of cake, it is enough for everyone." icon_state = "plaincake_slice" filling_color = "#FFD700" customfoodfilling = 1 - tastes = list("vanilla" = 1, "sweetness" = 2,"cake" = 5) + tastes = list("sweetness" = 2,"cake" = 5) foodtype = GRAIN | DAIRY | SUGAR /obj/item/reagent_containers/food/snacks/store/cake/carrot @@ -147,7 +147,6 @@ tastes = list("cake" = 5, "sweetness" = 2, "sourness" = 2) foodtype = GRAIN | DAIRY | FRUIT | SUGAR - /obj/item/reagent_containers/food/snacks/store/cake/chocolate name = "chocolate cake" desc = "A cake with added chocolate." @@ -186,7 +185,6 @@ tastes = list("cake" = 5, "sweetness" = 1) foodtype = GRAIN | DAIRY | JUNKFOOD | SUGAR - /obj/item/reagent_containers/food/snacks/store/cake/apple name = "apple cake" desc = "A cake centred with Apple." @@ -248,7 +246,6 @@ /obj/item/reagent_containers/food/snacks/store/cake/bsvc // blackberry strawberries vanilla cake name = "blackberry and strawberry vanilla cake" desc = "A plain cake, filled with assortment of blackberries and strawberries!" - icon = 'modular_citadel/icons/obj/food/cake.dmi' icon_state = "blackbarry_strawberries_cake_vanilla_cake" slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/bsvc bonus_reagents = list("nutriment" = 14, "vitamin" = 4) @@ -258,7 +255,6 @@ /obj/item/reagent_containers/food/snacks/cakeslice/bsvc name = "blackberry and strawberry vanilla cake slice" desc = "Just a slice of cake filled with assortment of blackberries and strawberries!" - icon = 'modular_citadel/icons/obj/food/cake.dmi' icon_state = "blackbarry_strawberries_cake_vanilla_slice" filling_color = "#FFD700" tastes = list("blackbarry" = 2, "strawberries" = 2, "vanilla" = 2, "sweetness" = 2,"cake" = 3) @@ -267,7 +263,6 @@ /obj/item/reagent_containers/food/snacks/store/cake/bscc // blackbarry strawberries chocolate cake name = "blackberry and strawberry chocolate cake" desc = "A plain cake, filled with assortment of blackberries and strawberries!" - icon = 'modular_citadel/icons/obj/food/cake.dmi' icon_state = "blackbarry_strawberries_cake_coco_cake" slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/bscc bonus_reagents = list("nutriment" = 14, "vitamin" = 4, "cocoa" = 5) @@ -277,16 +272,14 @@ /obj/item/reagent_containers/food/snacks/cakeslice/bscc name = "blackberry and strawberry chocolate cake slice" desc = "Just a slice of cake filled with assortment of blackberries and strawberries!" - icon = 'modular_citadel/icons/obj/food/cake.dmi' icon_state = "blackbarry_strawberries_cake_coco_cake_slice" filling_color = "#FFD700" tastes = list("blackberry" = 2, "strawberries" = 2, "chocolate" = 2, "sweetness" = 2,"cake" = 3) foodtype = GRAIN | DAIRY | FRUIT | SUGAR -obj/item/reagent_containers/food/snacks/store/cake/holy_cake +/obj/item/reagent_containers/food/snacks/store/cake/holy_cake name = "angel food cake" desc = "A cake made for angels and chaplains alike! Contains holy water." - icon = 'modular_citadel/icons/obj/food/cake.dmi' icon_state = "holy_cake" slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/holy_cake_slice bonus_reagents = list("nutriment" = 1, "vitamin" = 3, "holy_water" = 10) @@ -296,7 +289,6 @@ obj/item/reagent_containers/food/snacks/store/cake/holy_cake /obj/item/reagent_containers/food/snacks/cakeslice/holy_cake_slice name = "angel food cake slice" desc = "A slice of heavenly cake." - icon = 'modular_citadel/icons/obj/food/cake.dmi' icon_state = "holy_cake_slice" filling_color = "#00FFFF" tastes = list("cake" = 5, "sweetness" = 1, "clouds" = 1) @@ -305,7 +297,6 @@ obj/item/reagent_containers/food/snacks/store/cake/holy_cake obj/item/reagent_containers/food/snacks/store/cake/pound_cake name = "pound cake" desc = "A condensed cake made for filling people up quickly." - icon = 'modular_citadel/icons/obj/food/cake.dmi' icon_state = "pound_cake" slices_num = 7 //Its ment to feed the party slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/pound_cake_slice @@ -316,16 +307,14 @@ obj/item/reagent_containers/food/snacks/store/cake/pound_cake /obj/item/reagent_containers/food/snacks/cakeslice/pound_cake_slice name = "pound cake slice" desc = "A slice of condensed cake made for filling people up quickly." - icon = 'modular_citadel/icons/obj/food/cake.dmi' icon_state = "pound_cake_slice" filling_color = "#00FFFF" tastes = list("cake" = 5, "sweetness" = 5, "batter" = 1) foodtype = GRAIN | DAIRY | SUGAR | JUNKFOOD -obj/item/reagent_containers/food/snacks/store/cake/hardware_cake +/obj/item/reagent_containers/food/snacks/store/cake/hardware_cake name = "hardware cake" desc = "A cake that is made with electronic boards and leaks acid..." - icon = 'modular_citadel/icons/obj/food/cake.dmi' icon_state = "hardware_cake" slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/hardware_cake_slice bonus_reagents = list("sacid" = 15, "oil" = 15) @@ -335,8 +324,58 @@ obj/item/reagent_containers/food/snacks/store/cake/hardware_cake /obj/item/reagent_containers/food/snacks/cakeslice/hardware_cake_slice name = "hardware cake slice" desc = "A slice of electronic boards and some acid." - icon = 'modular_citadel/icons/obj/food/cake.dmi' icon_state = "hardware_cake_slice" filling_color = "#00FFFF" tastes = list("acid" = 1, "metal" = 1, "regret" = 10) foodtype = GRAIN | GROSS + +/obj/item/reagent_containers/food/snacks/store/cake/vanilla_cake + name = "vanilla cake" + desc = "A vanilla frosted cake." + icon_state = "vanillacake" + slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/vanilla_slice + bonus_reagents = list("sugar" = 15, "vanilla" = 15) + tastes = list("cake" = 1, "sugar" = 1, "vanilla" = 10) + foodtype = GRAIN | SUGAR | DAIRY + +/obj/item/reagent_containers/food/snacks/cakeslice/vanilla_slice + name = "vanilla cake slice" + desc = "A slice of vanilla frosted cake." + icon_state = "vanillacake_slice" + filling_color = "#00FFFF" + tastes = list("cake" = 1, "sugar" = 1, "vanilla" = 10) + foodtype = GRAIN | SUGAR | DAIRY + +/obj/item/reagent_containers/food/snacks/store/cake/clown_cake + name = "clown cake" + desc = "A funny cake with a clown face on it." + icon_state = "clowncake" + slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/clown_slice + bonus_reagents = list("sugar" = 15, "laugher" = 15) + tastes = list("cake" = 1, "sugar" = 1, "joy" = 10) + foodtype = GRAIN | SUGAR | DAIRY + +/obj/item/reagent_containers/food/snacks/cakeslice/clown_slice + name = "clown cake slice" + desc = "A slice of bad jokes, and silly props." + icon_state = "clowncake_slice" + filling_color = "#00FFFF" + tastes = list("cake" = 1, "sugar" = 1, "joy" = 10) + foodtype = GRAIN | SUGAR | DAIRY + +/obj/item/reagent_containers/food/snacks/store/cake/peach_cake + name = "peach cake" + desc = "A peach filled cake." + icon_state = "peachcake" + slice_path = /obj/item/reagent_containers/food/snacks/cakeslice/peach_slice + bonus_reagents = list("sugar" = 5, "peachjuice" = 15) + tastes = list("cake" = 1, "sugar" = 1, "peachjuice" = 10) + foodtype = GRAIN | SUGAR | DAIRY + +/obj/item/reagent_containers/food/snacks/cakeslice/peach_slice + name = "peach cake slice" + desc = "A slice of peach cake." + icon_state = "peach_slice" + filling_color = "#00FFFF" + tastes = list("cake" = 1, "sugar" = 1, "peachjuice" = 10) + foodtype = GRAIN | SUGAR | DAIRY diff --git a/code/modules/food_and_drinks/food/snacks_frozen.dm b/code/modules/food_and_drinks/food/snacks_frozen.dm index febfa527ca..3988909b30 100644 --- a/code/modules/food_and_drinks/food/snacks_frozen.dm +++ b/code/modules/food_and_drinks/food/snacks_frozen.dm @@ -28,6 +28,50 @@ tastes = list("ice cream" = 1, "banana" = 1, "a bad joke" = 1) foodtype = FRUIT | DAIRY | SUGAR +/obj/item/reagent_containers/food/snacks/banana_split + name = "banana split" + trash = /obj/item/reagent_containers/food/drinks/drinkingglass + desc = "A long glass dish filled with ice-cream, chocolate and a banana down the middle. A timeless classic by any standards." + icon_state = "banana_split" + bonus_reagents = list("nutriment" = 5, "vitamin" = 3) + list_reagents = list("nutriment" = 3, "banana" = 10, "vitamin" = 2) + filling_color = "#FFFACD" + tastes = list("ice cream" = 1, "banana" = 1, "charries" = 1) + foodtype = FRUIT | DAIRY | SUGAR + +/obj/item/reagent_containers/food/snacks/cola_float + name = "Root Beer Float" + trash = /obj/item/reagent_containers/food/drinks/drinkingglass + desc = "A glass filled with cream, soda and ice-cream with a cherry on top." + icon_state = "cola_float" + bonus_reagents = list("nutriment" = 3, "vitamin" = 1) + list_reagents = list("nutriment" = 3, "vitamin" = 2) + filling_color = "#FFFACD" + tastes = list("ice cream" = 1, "space coal" = 1, "cherries" = 1) + foodtype = FRUIT | DAIRY | SUGAR + +/obj/item/reagent_containers/food/snacks/charrie_float + name = "Cherry Shake" + trash = /obj/item/reagent_containers/food/drinks/drinkingglass + desc = "Cherries mixed with ice-cream, known for its filling tastes" + icon_state = "cherryshake" + bonus_reagents = list("nutriment" = 3, "vitamin" = 1) + list_reagents = list("nutriment" = 3, "vitamin" = 2, "cherryshake" = 15) + filling_color = "#FFFACD" + tastes = list("ice cream" = 1, "charries" = 1) + foodtype = FRUIT | DAIRY | SUGAR + +/obj/item/reagent_containers/food/snacks/bluecharrie_float + name = "Blue Cherry Shake" + trash = /obj/item/reagent_containers/food/drinks/drinkingglass + desc = "Cherries mixed with ice-cream, known for its filling tastes. This one is a exotic blue!" + icon_state = "bluecherryshake" + bonus_reagents = list("nutriment" = 3, "vitamin" = 1) + list_reagents = list("nutriment" = 3, "vitamin" = 2, "bluecherryshake" = 10) + filling_color = "#FFFACD" + tastes = list("ice cream" = 1, "blue cherries" = 1) + foodtype = FRUIT | DAIRY | SUGAR + /obj/item/reagent_containers/food/snacks/spacefreezy name = "space freezy" desc = "The best icecream in space." @@ -88,7 +132,7 @@ /obj/item/reagent_containers/food/snacks/snowcones/orange name = "orange flavored snowcone" - desc = "A mix of different flavors dizzled on a snowball in a paper cup." + desc = "A orange flavor dizzled on a snowball in a paper cup." icon_state = "orange_sc" list_reagents = list("nutriment" = 1, "orangejuice" = 10) tastes = list("ice" = 1, "water" = 1, "berries" = 5) @@ -126,11 +170,27 @@ tastes = list("ice" = 1, "water" = 1, "berries" = 5) foodtype = FRUIT +/obj/item/reagent_containers/food/snacks/snowcones/peach + name = "peach flavored snowcone" + desc = "A peach flavord snowball in a paper cup." + icon_state = "peach_sc" + list_reagents = list("nutriment" = 1, "peachjuice" = 10) + tastes = list("ice" = 1, "water" = 1, " peach" = 5) + foodtype = FRUIT + +/obj/item/reagent_containers/food/snacks/snowcones/strawberry + name = "strawberry flavored snowcone" + desc = "A strawberry flavord snowball in a paper cup." + icon_state = "blue_sc" + list_reagents = list("nutriment" = 1, "berryjuice" = 10) + tastes = list("ice" = 1, "water" = 1, " strawberry" = 5) + foodtype = FRUIT + /obj/item/reagent_containers/food/snacks/snowcones/fruitsalad name = "mixed fruit flavored snowcone" desc = "A mix of different flavors dizzled on a snowball in a paper cup." icon_state = "fruitsalad_sc" - list_reagents = list("nutriment" = 1, "lemonjuice" = 5, "limejuice" = 5, "lemonjuice" = 5, "orangejuice" = 5) + list_reagents = list("nutriment" = 1, "limejuice" = 5, "lemonjuice" = 5, "orangejuice" = 5) tastes = list("ice" = 1, "water" = 1, "fruits" = 25) foodtype = FRUIT diff --git a/code/modules/food_and_drinks/food/snacks_meat.dm b/code/modules/food_and_drinks/food/snacks_meat.dm index cf99bd78d9..0b53ec8822 100644 --- a/code/modules/food_and_drinks/food/snacks_meat.dm +++ b/code/modules/food_and_drinks/food/snacks_meat.dm @@ -322,6 +322,14 @@ filling_color = "#800000" tastes = list("meat" = 1, "butter" = 1) +/obj/item/reagent_containers/food/snacks/corndog + name = "corndog plate" + desc = "A plate with two small corn dogs, with two dimples of ketchup and mustard to dip them in." + icon_state = "dorndog" + trash = /obj/item/trash/plate/alt + tastes = list("hotdog" = 2, "mustard and ketchup" = 1, "fryed bread" = 1) + bonus_reagents = list("nutriment" = 6, "vitamin" = 2, "mustard" = 5, "ketchup" = 5) + /obj/item/reagent_containers/food/snacks/kebab/rat name = "rat-kebab" desc = "Not so delicious rat meat, on a stick." diff --git a/code/modules/food_and_drinks/food/snacks_other.dm b/code/modules/food_and_drinks/food/snacks_other.dm index e36efe750b..ad0824dd79 100644 --- a/code/modules/food_and_drinks/food/snacks_other.dm +++ b/code/modules/food_and_drinks/food/snacks_other.dm @@ -573,4 +573,22 @@ name = "Maintenance Peaches" desc = "I have a mouth and I must eat." icon_state = "peachcanmaint" - tastes = list("peaches" = 1, "tin" = 7) \ No newline at end of file + tastes = list("peaches" = 1, "tin" = 7) + +/obj/item/reagent_containers/food/snacks/chocolatestrawberry + name = "Chocolate dipped strawberries" + desc = "A strawberry dipped in a bit of chocolate." + icon_state = "chocolatestrawberry" + list_reagents = list("sugar" = 5, "nutriment" = 2) + filling_color = "#ffdf26" + tastes = list("strawberries" = 5, "chocolate" = 3) + foodtype = FRUIT | SUGAR + +/obj/item/reagent_containers/food/snacks/chocolatebanana + name = "Chocolate dipped banana" + desc = "A banana dipped in a bit of chocolate and held on a stick." + icon_state = "banana_coco" + list_reagents = list("sugar" = 5, "nutriment" = 3, "vitamin" = 1) + filling_color = "#ffdf26" + tastes = list("banana" = 5, "chocolate" = 3) + foodtype = FRUIT | SUGAR \ No newline at end of file diff --git a/code/modules/food_and_drinks/food/snacks_pastry.dm b/code/modules/food_and_drinks/food/snacks_pastry.dm index 238bb4f86a..9b87002738 100644 --- a/code/modules/food_and_drinks/food/snacks_pastry.dm +++ b/code/modules/food_and_drinks/food/snacks_pastry.dm @@ -308,7 +308,6 @@ tastes = list("bread" = 1, "egg" = 1, "cheese" = 1) foodtype = GRAIN | MEAT | DAIRY - /obj/item/reagent_containers/food/snacks/sugarcookie name = "sugar cookie" desc = "Just like your little sister used to make." @@ -369,6 +368,16 @@ tastes = list("cake" = 3, "blue cherry" = 1) foodtype = GRAIN | FRUIT | SUGAR +/obj/item/reagent_containers/food/snacks/strawberrycupcake + name = "Strawberry cupcake" + desc = "Strawberry inside a delicious cupcake." + icon_state = "strawberrycupcake" + bonus_reagents = list("nutriment" = 1, "vitamin" = 3) + list_reagents = list("nutriment" = 5, "vitamin" = 1) + filling_color = "#F0E68C" + tastes = list("cake" = 2, "strawberry" = 1) + foodtype = GRAIN | FRUIT | SUGAR + /obj/item/reagent_containers/food/snacks/honeybun name = "honey bun" desc = "A sticky pastry bun glazed with honey." diff --git a/code/modules/food_and_drinks/food/snacks_pie.dm b/code/modules/food_and_drinks/food/snacks_pie.dm index 0b12ee4fcf..bc66d353e1 100644 --- a/code/modules/food_and_drinks/food/snacks_pie.dm +++ b/code/modules/food_and_drinks/food/snacks_pie.dm @@ -171,8 +171,6 @@ tastes = list("pie" = 1, "apple" = 1) foodtype = GRAIN | FRUIT | SUGAR - - /obj/item/reagent_containers/food/snacks/pie/cherrypie name = "cherry pie" desc = "Taste so good, make a grown man cry." @@ -221,6 +219,33 @@ tastes = list("pie" = 1, "grape" = 1) foodtype = GRAIN | FRUIT | SUGAR +/obj/item/reagent_containers/food/snacks/pie/mimetart + name = "mime tart" + desc = "..." + icon_state = "mimetart" + bonus_reagents = list("nutriment" = 1, "vitamin" = 4, "nothing" = 10) + list_reagents = list("nutriment" = 5, "vitamin" = 5) + tastes = list("pie" = 1, "nothing" = 1) + foodtype = GRAIN + +/obj/item/reagent_containers/food/snacks/pie/berrytart + name = "berry tart" + desc = "A tasty dessert of many different small barries on a thin pie crust." + icon_state = "berrytart" + bonus_reagents = list("nutriment" = 1, "vitamin" = 4) + list_reagents = list("nutriment" = 3, "vitamin" = 5) + tastes = list("pie" = 1, "berries" = 2) + foodtype = GRAIN | FRUIT + +/obj/item/reagent_containers/food/snacks/pie/cocolavatart + name = "chocolate lava tart" + desc = "A tasty dessert made of chocaloate, with a liquid core." + icon_state = "cocolavatart" + bonus_reagents = list("nutriment" = 1, "vitamin" = 4) + list_reagents = list("nutriment" = 4, "vitamin" = 4) + tastes = list("pie" = 1, "grape" = 1) + foodtype = GRAIN | SUGAR + /obj/item/reagent_containers/food/snacks/pie/blumpkinpie name = "blumpkin pie" desc = "An odd blue pie made with toxic blumpkin." @@ -288,6 +313,22 @@ icon_state = "baklavaslice" trash = /obj/item/trash/plate filling_color = "#1E90FF" - list_reagents = list("nutriment" = 2, "vitamins" = 4) + list_reagents = list("nutriment" = 2, "vitamin" = 4) tastes = list("nuts" = 1, "pie" = 1) - foodtype = GRAIN \ No newline at end of file + foodtype = GRAIN + +/obj/item/reagent_containers/food/snacks/pie/strawberrypie + name = "strawberry pie" + desc = "A strawberry pie." + icon_state = "strawberrypie" + bonus_reagents = list("nutriment" = 6, "vitamin" = 6) + tastes = list("strawberry" = 1, "pie" = 1) + foodtype = GRAIN | FRUIT | SUGAR + +/obj/item/reagent_containers/food/snacks/pie/peachpie + name = "peach pie" + desc = "A pie with peach filling." + icon_state = "strawberrypie" + bonus_reagents = list("nutriment" = 5, "vitamin" = 6, "peachjuice" = 15) + tastes = list("peach" = 1, "pie" = 1) + foodtype = GRAIN | FRUIT diff --git a/code/modules/food_and_drinks/food/snacks_vend.dm b/code/modules/food_and_drinks/food/snacks_vend.dm index 317a434040..8f661b868e 100644 --- a/code/modules/food_and_drinks/food/snacks_vend.dm +++ b/code/modules/food_and_drinks/food/snacks_vend.dm @@ -7,7 +7,7 @@ desc = "Nougat love it or hate it." icon_state = "candy" trash = /obj/item/trash/candy - list_reagents = list("nutriment" = 1, "sugar" = 3) + list_reagents = list("nutriment" = 1, "sugar" = 3, "cocoa" = 3) junkiness = 25 filling_color = "#D2691E" tastes = list("candy" = 1) diff --git a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm index 23172841e4..dd33f696c9 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/deep_fryer.dm @@ -94,7 +94,7 @@ God bless America. else if(default_deconstruction_screwdriver(user, "fryer_off", "fryer_off" ,I)) //where's the open maint panel icon?! return else - if(is_type_in_typecache(I, deepfry_blacklisted_items) || (I.item_flags & (ABSTRACT | NODROP | DROPDEL))) + if(is_type_in_typecache(I, deepfry_blacklisted_items) || HAS_TRAIT(I, TRAIT_NODROP) || (I.item_flags & (ABSTRACT | DROPDEL))) return ..() else if(!frying && user.transferItemToLoc(I, src)) to_chat(user, "You put [I] into [src].") diff --git a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm index d8d4e843dc..e02c3c1334 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/gibber.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/gibber.dm @@ -78,7 +78,7 @@ if(!ignore_clothing) for(var/obj/item/I in C.held_items + C.get_equipped_items()) - if(!(I.item_flags & NODROP)) + if(!HAS_TRAIT(I, TRAIT_NODROP)) to_chat(user, "Subject may not have abiotic items on.") return diff --git a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm index 58d3ef69bb..0f901f2412 100644 --- a/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm +++ b/code/modules/food_and_drinks/kitchen_machinery/icecream_vat.dm @@ -1,9 +1,13 @@ #define ICECREAM_VANILLA 1 #define ICECREAM_CHOCOLATE 2 #define ICECREAM_STRAWBERRY 3 -#define ICECREAM_BLUE 4 -#define CONE_WAFFLE 5 -#define CONE_CHOC 6 +#define ICECREAM_PEACH 4 +#define ICECREAM_GRAPE 5 +#define ICECREAM_BLUE 6 +#define CONE_WAFFLE 7 +#define CONE_CHOC 8 + + /obj/machinery/icecream_vat name = "ice cream vat" @@ -26,7 +30,9 @@ "cocoa" = 5, "vanilla" = 5, "berryjuice" = 5, - "singulo" = 5) + "singulo" = 5, + "peachjuice" = 5, + "grapejuice" = 5) /obj/machinery/icecream_vat/proc/get_ingredient_list(type) switch(type) @@ -34,6 +40,10 @@ return list("milk", "ice", "cocoa") if(ICECREAM_STRAWBERRY) return list("milk", "ice", "berryjuice") + if(ICECREAM_PEACH) + return list("milk", "ice", "peachjuice") + if(ICECREAM_GRAPE) + return list("milk", "ice", "grapejuice") if(ICECREAM_BLUE) return list("milk", "ice", "singulo") if(CONE_WAFFLE) @@ -50,6 +60,10 @@ return "chocolate" if(ICECREAM_STRAWBERRY) return "strawberry" + if(ICECREAM_PEACH) + return "peach" + if(ICECREAM_GRAPE) + return "grape" if(ICECREAM_BLUE) return "blue" if(CONE_WAFFLE) @@ -62,7 +76,7 @@ /obj/machinery/icecream_vat/Initialize() . = ..() - while(product_types.len < 6) + while(product_types.len < 8) product_types.Add(5) create_reagents(100, OPENCONTAINER | NO_REACT) for(var/reagent in icecream_vat_reagents) @@ -76,6 +90,8 @@ dat += "Vanilla ice cream: Select Make x5 [product_types[ICECREAM_VANILLA]] scoops left. (Ingredients: milk, ice) |
| [prize.equipment_name] | [prize.cost] | Purchase |
Welcome, [client ? client.prefs.real_name : "Unknown User"]
" - output += "" - - if(SSticker.current_state <= GAME_STATE_PREGAME) - switch(ready) - if(PLAYER_NOT_READY) - output += "\[ [LINKIFY_READY("Ready", PLAYER_READY_TO_PLAY)] | Not Ready | [LINKIFY_READY("Observe", PLAYER_READY_TO_OBSERVE)] \]
" - if(PLAYER_READY_TO_PLAY) - output += "\[ Ready | [LINKIFY_READY("Not Ready", PLAYER_NOT_READY)] | [LINKIFY_READY("Observe", PLAYER_READY_TO_OBSERVE)] \]
" - if(PLAYER_READY_TO_OBSERVE) - output += "\[ [LINKIFY_READY("Ready", PLAYER_READY_TO_PLAY)] | [LINKIFY_READY("Not Ready", PLAYER_NOT_READY)] | Observe \]
" - else - output += "" - output += "" - output += "[LINKIFY_READY("Observe", PLAYER_READY_TO_OBSERVE)]
" - - if(!IsGuestKey(src.key)) - if (SSdbcore.Connect()) - var/isadmin = 0 - if(src.client && src.client.holder) - isadmin = 1 - var/datum/DBQuery/query_get_new_polls = SSdbcore.NewQuery("SELECT id FROM [format_table_name("poll_question")] WHERE [(isadmin ? "" : "adminonly = false AND")] Now() BETWEEN starttime AND endtime AND id NOT IN (SELECT pollid FROM [format_table_name("poll_vote")] WHERE ckey = \"[sanitizeSQL(ckey)]\") AND id NOT IN (SELECT pollid FROM [format_table_name("poll_textreply")] WHERE ckey = \"[sanitizeSQL(ckey)]\")") - var/rs = REF(src) - if(query_get_new_polls.Execute()) - var/newpoll = 0 - if(query_get_new_polls.NextRow()) - newpoll = 1 - - if(newpoll) - output += "Show Player Polls (NEW!)
" - else - output += "" - qdel(query_get_new_polls) - if(QDELETED(src)) - return - - output += "| " - for(var/jobcat in categorizedJobs) - if(categorizedJobs[jobcat]["colBreak"]) - dat += " | "
- if(!length(categorizedJobs[jobcat]["jobs"]))
- continue
- var/color = categorizedJobs[jobcat]["color"]
- dat += " " - dat += " |
Welcome, [client ? client.prefs.real_name : "Unknown User"]
" + output += "\[ [LINKIFY_READY("Ready", PLAYER_READY_TO_PLAY)] | Not Ready | [LINKIFY_READY("Observe", PLAYER_READY_TO_OBSERVE)] \]
" + if(PLAYER_READY_TO_PLAY) + output += "\[ Ready | [LINKIFY_READY("Not Ready", PLAYER_NOT_READY)] | [LINKIFY_READY("Observe", PLAYER_READY_TO_OBSERVE)] \]
" + if(PLAYER_READY_TO_OBSERVE) + output += "\[ [LINKIFY_READY("Ready", PLAYER_READY_TO_PLAY)] | [LINKIFY_READY("Not Ready", PLAYER_NOT_READY)] | Observe \]
" + else + output += "" + output += "" + output += "[LINKIFY_READY("Observe", PLAYER_READY_TO_OBSERVE)]
" + + if(!IsGuestKey(src.key)) + if (SSdbcore.Connect()) + var/isadmin = 0 + if(src.client && src.client.holder) + isadmin = 1 + var/datum/DBQuery/query_get_new_polls = SSdbcore.NewQuery("SELECT id FROM [format_table_name("poll_question")] WHERE [(isadmin ? "" : "adminonly = false AND")] Now() BETWEEN starttime AND endtime AND id NOT IN (SELECT pollid FROM [format_table_name("poll_vote")] WHERE ckey = \"[sanitizeSQL(ckey)]\") AND id NOT IN (SELECT pollid FROM [format_table_name("poll_textreply")] WHERE ckey = \"[sanitizeSQL(ckey)]\")") + var/rs = REF(src) + if(query_get_new_polls.Execute()) + var/newpoll = 0 + if(query_get_new_polls.NextRow()) + newpoll = 1 + + if(newpoll) + output += "Show Player Polls (NEW!)
" + else + output += "" + qdel(query_get_new_polls) + if(QDELETED(src)) + return + + output += "| "
+ var/column_counter = 0
+ var/free_space = 0
+ for(var/list/category in list(GLOB.command_positions) + list(GLOB.supply_positions) + list(GLOB.engineering_positions) + list(GLOB.nonhuman_positions - "pAI") + list(GLOB.civilian_positions) + list(GLOB.medical_positions) + list(GLOB.science_positions) + list(GLOB.security_positions))
+ var/cat_color = "fff" //random default
+ if(SSjob.name_occupations && SSjob.name_occupations[category[1]])
+ cat_color = SSjob.name_occupations[category[1]].selection_color //use the color of the first job in the category (the department head) as the category color
+ else
+ cat_color = SSjob.occupations[category[1]].selection_color
+ dat += " " + column_counter++ + if(free_space <=4) + free_space++ + if(column_counter > 0 && (column_counter % 3 == 0)) + dat += " | " + if(free_space >= 5 && (free_space % 5 == 0) && (column_counter % 3 != 0)) + free_space = 0 + column_counter = 0 + dat += " | " + + dat += " |
| "
+ for(var/jobcat in categorizedJobs)
+ if(!length(categorizedJobs[jobcat]["jobs"]))
+ continue
+ var/color = categorizedJobs[jobcat]["color"]
+ dat += " " + dat += " |
| t |