diff --git a/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm b/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm
index ccab5ad61135a..1b3a75680d870 100644
--- a/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm
+++ b/_maps/RandomRuins/LavaRuins/lavaland_biodome_beach.dmm
@@ -148,8 +148,7 @@
/turf/open/floor/wood,
/area/ruin/powered/beach)
"aE" = (
-/obj/structure/table,
-/obj/machinery/reagentgrinder,
+/obj/machinery/griddle,
/turf/open/floor/wood,
/area/ruin/powered/beach)
"aF" = (
@@ -160,13 +159,11 @@
/turf/open/floor/wood,
/area/ruin/powered/beach)
"aH" = (
-/obj/structure/table,
/obj/machinery/light{
dir = 1
},
-/obj/item/book/manual/wiki/barman_recipes,
-/obj/item/reagent_containers/food/drinks/shaker,
-/obj/item/reagent_containers/glass/rag,
+/obj/structure/table,
+/obj/machinery/reagentgrinder,
/turf/open/floor/wood,
/area/ruin/powered/beach)
"aI" = (
@@ -239,6 +236,7 @@
/area/ruin/powered/beach)
"aX" = (
/obj/structure/closet/secure_closet/freezer/meat/open,
+/obj/item/reagent_containers/food/condiment/enzyme,
/turf/open/floor/wood,
/area/ruin/powered/beach)
"aY" = (
@@ -592,6 +590,13 @@
/obj/effect/turf_decal/sand,
/turf/open/floor/pod/dark,
/area/ruin/powered/beach)
+"NQ" = (
+/obj/structure/table/wood,
+/obj/item/book/manual/wiki/barman_recipes,
+/obj/item/reagent_containers/food/drinks/shaker,
+/obj/item/reagent_containers/glass/rag,
+/turf/open/floor/wood,
+/area/ruin/powered/beach)
"QS" = (
/obj/effect/turf_decal/sand,
/obj/machinery/light{
@@ -1043,7 +1048,7 @@ at
ax
hY
aC
-aP
+NQ
aW
aK
sy
diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm
index 61e05c1584277..4615925df47f9 100644
--- a/_maps/map_files/BoxStation/BoxStation.dmm
+++ b/_maps/map_files/BoxStation/BoxStation.dmm
@@ -17,23 +17,6 @@
"aai" = (
/turf/closed/wall/r_wall,
/area/security/prison)
-"aaq" = (
-/obj/effect/turf_decal/tile/neutral/fourcorners/contrasted,
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
-/obj/effect/turf_decal/trimline/yellow/filled/line{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/yellow/filled/line{
- dir = 8
- },
-/obj/structure/cable/yellow{
- icon_state = "0-2"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/turf/open/floor/iron/dark,
-/area/storage/tech)
"aaF" = (
/obj/machinery/light/small{
dir = 1
@@ -182,13 +165,6 @@
/obj/item/stack/cable_coil/random,
/turf/open/space,
/area/space/nearstation)
-"acC" = (
-/obj/structure/chair/fancy/sofa/old/right{
- color = "#742925"
- },
-/obj/effect/landmark/start/detective,
-/turf/open/floor/wood,
-/area/security/detectives_office)
"acO" = (
/obj/structure/lattice/catwalk/over,
/obj/structure/cable/yellow{
@@ -2096,30 +2072,6 @@
},
/turf/open/floor/iron,
/area/storage/primary)
-"aDc" = (
-/obj/item/stack/sheet/glass,
-/obj/structure/table/glass,
-/obj/item/stack/sheet/glass,
-/obj/item/stack/sheet/glass,
-/obj/item/stock_parts/matter_bin,
-/obj/item/stock_parts/matter_bin,
-/obj/machinery/light{
- dir = 4
- },
-/obj/item/stock_parts/scanning_module{
- pixel_x = 2;
- pixel_y = 3
- },
-/obj/item/stock_parts/scanning_module,
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
-/obj/structure/cable/yellow{
- icon_state = "0-2"
- },
-/obj/structure/disposalpipe/segment,
-/turf/open/floor/iron/white,
-/area/science/lab)
"aDg" = (
/obj/machinery/biogenerator,
/turf/open/floor/iron,
@@ -4882,10 +4834,6 @@
dir = 8
},
/area/engine/atmos)
-"aZm" = (
-/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/iron,
-/area/hallway/secondary/exit)
"aZp" = (
/obj/structure/rack,
/obj/item/electronics/apc,
@@ -7750,6 +7698,13 @@
/obj/effect/turf_decal/tile/blue/fourcorners/contrasted,
/turf/open/floor/iron,
/area/hallway/primary/central)
+"bwm" = (
+/obj/machinery/power/apc/auto_name/east,
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/turf/open/floor/iron,
+/area/science/mixing)
"bww" = (
/obj/structure/cable/yellow{
icon_state = "0-2"
@@ -8797,6 +8752,21 @@
},
/turf/open/floor/iron/white,
/area/medical/medbay/central)
+"bFP" = (
+/obj/structure/disposalpipe/segment,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/machinery/power/apc/auto_name/east,
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/port)
"bFQ" = (
/obj/structure/sign/warning/nosmoking{
pixel_x = -32
@@ -14255,16 +14225,6 @@
/obj/machinery/cell_charger,
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
-"clB" = (
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
-/obj/structure/cable/yellow,
-/obj/machinery/camera/autoname{
- dir = 1
- },
-/turf/open/floor/plating,
-/area/maintenance/solars/port/aft)
"clE" = (
/obj/effect/turf_decal/bot{
dir = 1
@@ -16410,6 +16370,12 @@
},
/turf/open/floor/plating,
/area/maintenance/port)
+"cCn" = (
+/obj/structure/table/reinforced,
+/obj/structure/displaycase/forsale/kitchen,
+/obj/machinery/digital_clock/directional/north,
+/turf/open/floor/iron/cafeteria_red,
+/area/crew_quarters/bar)
"cCo" = (
/obj/machinery/gateway{
dir = 6
@@ -18040,6 +18006,22 @@
/obj/item/stack/sheet/mineral/plasma/five,
/turf/open/floor/iron,
/area/quartermaster/exploration_dock)
+"cRw" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/power/apc/auto_name/east,
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 8;
+ name = "output gas connector port"
+ },
+/obj/machinery/portable_atmospherics/canister,
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/turf/open/floor/iron,
+/area/maintenance/disposal/incinerator)
"cRG" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
/obj/structure/cable/yellow{
@@ -18689,22 +18671,6 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/hallway/primary/central)
-"dgZ" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 9
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 9
- },
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
-/obj/structure/cable/yellow,
-/obj/effect/turf_decal/tile/red/anticorner/contrasted{
- dir = 4
- },
-/turf/open/floor/iron,
-/area/security/checkpoint/auxiliary)
"dhN" = (
/obj/structure/cable/yellow{
icon_state = "2-4"
@@ -20090,16 +20056,6 @@
},
/turf/open/floor/iron/dark,
/area/security/execution/transfer)
-"dKy" = (
-/obj/structure/closet/secure_closet/hop,
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
-/obj/structure/cable/yellow{
- icon_state = "0-8"
- },
-/turf/open/floor/wood,
-/area/crew_quarters/heads/hop)
"dKA" = (
/obj/effect/turf_decal/tile/dark_blue{
dir = 8
@@ -20501,24 +20457,6 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/turf/open/floor/plating,
/area/quartermaster/storage)
-"dSG" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
-/obj/machinery/atmospherics/components/unary/portables_connector/visible{
- dir = 8;
- name = "output gas connector port"
- },
-/obj/machinery/portable_atmospherics/canister,
-/obj/structure/cable/yellow{
- icon_state = "0-8"
- },
-/turf/open/floor/iron,
-/area/maintenance/disposal/incinerator)
"dSJ" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 1
@@ -21290,6 +21228,15 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/turf/open/floor/iron,
/area/hallway/primary/aft)
+"elv" = (
+/obj/effect/turf_decal/tile/neutral/fourcorners/contrasted,
+/obj/effect/turf_decal/trimline/dark_blue/filled/line,
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/machinery/digital_clock/directional/south,
+/turf/open/floor/iron/dark,
+/area/bridge)
"elC" = (
/obj/structure/chair/wood/normal{
dir = 1
@@ -21406,6 +21353,16 @@
/obj/machinery/light/small,
/turf/open/floor/carpet,
/area/vacant_room/office)
+"ent" = (
+/obj/machinery/power/apc/auto_name/east,
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/obj/effect/turf_decal/tile/blue/opposingcorners{
+ dir = 1
+ },
+/turf/open/floor/iron/white,
+/area/crew_quarters/heads/cmo)
"enz" = (
/turf/open/floor/iron/techmaint,
/area/crew_quarters/fitness)
@@ -21742,13 +21699,6 @@
},
/turf/open/floor/circuit,
/area/ai_monitored/turret_protected/ai_upload)
-"etR" = (
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
-/obj/structure/cable/yellow,
-/turf/open/floor/circuit,
-/area/ai_monitored/turret_protected/aisat/hallway)
"etZ" = (
/obj/structure/table/glass,
/obj/item/storage/belt/medical,
@@ -21765,6 +21715,18 @@
/obj/machinery/gateway/centerstation,
/turf/open/floor/engine,
/area/gateway)
+"euk" = (
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/computer/xenoartifact_console{
+ dir = 8
+ },
+/obj/machinery/power/apc/auto_name/east,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/iron,
+/area/science/misc_lab)
"euG" = (
/obj/structure/disposalpipe/segment{
dir = 5
@@ -22285,6 +22247,10 @@
/obj/effect/turf_decal/tile/neutral/fourcorners/contrasted,
/turf/open/floor/iron/dark,
/area/quartermaster/exploration_prep)
+"eEZ" = (
+/obj/machinery/digital_clock/directional/north,
+/turf/open/floor/iron/dark,
+/area/chapel/main)
"eFB" = (
/obj/machinery/computer/station_alert,
/obj/effect/turf_decal/tile/yellow/fourcorners/contrasted,
@@ -22818,15 +22784,6 @@
/obj/effect/turf_decal/stripes/closeup,
/turf/open/floor/iron/techmaint,
/area/security/prison)
-"eQJ" = (
-/obj/structure/noticeboard{
- pixel_y = 26
- },
-/obj/structure/chair/fancy/sofa/old/left{
- color = "#742925"
- },
-/turf/open/floor/wood,
-/area/security/detectives_office)
"eRh" = (
/obj/structure/disposalpipe/segment{
dir = 10
@@ -22917,6 +22874,14 @@
/obj/item/kirbyplants/random,
/turf/open/floor/iron,
/area/quartermaster/miningdock)
+"eSr" = (
+/obj/machinery/power/apc/auto_name/east,
+/obj/structure/cable/yellow,
+/obj/machinery/camera/autoname{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/maintenance/solars/port/aft)
"eSA" = (
/obj/structure/table/reinforced,
/obj/item/reagent_containers/food/condiment/flour,
@@ -23563,12 +23528,6 @@
},
/turf/open/floor/iron,
/area/hallway/primary/aft)
-"fhS" = (
-/obj/structure/chair/fancy/comfy{
- dir = 8
- },
-/turf/open/floor/carpet,
-/area/hallway/secondary/entry)
"fhT" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 10
@@ -24134,19 +24093,22 @@
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
/turf/open/floor/iron/white,
/area/medical/virology)
-"ftT" = (
-/obj/machinery/computer/security/telescreen/entertainment{
- pixel_y = 32
+"fub" = (
+/obj/structure/closet/secure_closet/security/med,
+/obj/machinery/power/apc/auto_name/east,
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
},
-/obj/machinery/light{
- dir = 1
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
},
-/obj/effect/turf_decal/siding/thinplating_new,
-/obj/effect/turf_decal/tile/neutral/half/contrasted{
- dir = 4
+/obj/machinery/camera/autoname{
+ dir = 9
},
+/obj/effect/turf_decal/tile/red/anticorner/contrasted,
/turf/open/floor/iron,
-/area/crew_quarters/dorms)
+/area/security/checkpoint/medical)
"ful" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -24463,6 +24425,23 @@
},
/turf/open/floor/engine/o2,
/area/engine/atmos)
+"fCz" = (
+/obj/machinery/disposal/bin,
+/obj/structure/disposalpipe/trunk{
+ dir = 4
+ },
+/obj/machinery/button/door{
+ id = "barShutters";
+ name = "bar shutters";
+ pixel_x = 4;
+ pixel_y = 28
+ },
+/obj/machinery/light_switch{
+ pixel_x = -6;
+ pixel_y = 26
+ },
+/turf/open/floor/iron/cafeteria_red,
+/area/crew_quarters/bar)
"fCK" = (
/obj/machinery/power/solar{
id = "auxsolareast";
@@ -25124,6 +25103,14 @@
},
/turf/open/floor/iron/dark,
/area/tcommsat/computer)
+"fTY" = (
+/obj/effect/turf_decal/siding/thinplating_new,
+/obj/effect/turf_decal/tile/neutral/half/contrasted{
+ dir = 4
+ },
+/obj/machinery/digital_clock/directional/north,
+/turf/open/floor/iron,
+/area/crew_quarters/dorms)
"fUp" = (
/obj/machinery/light{
dir = 1
@@ -25495,12 +25482,6 @@
},
/turf/open/floor/carpet/grimy,
/area/chapel/office)
-"gby" = (
-/obj/machinery/light{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/quartermaster/office)
"gbR" = (
/obj/machinery/holopad,
/turf/open/floor/iron/white,
@@ -25896,14 +25877,6 @@
/obj/effect/turf_decal/stripes/closeup,
/turf/open/floor/prison,
/area/security/prison)
-"gkV" = (
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
-/obj/structure/cable/yellow,
-/obj/effect/turf_decal/tile/red/anticorner/contrasted,
-/turf/open/floor/iron/dark,
-/area/security/execution/transfer)
"glg" = (
/obj/structure/cable/yellow{
icon_state = "1-2"
@@ -27078,16 +27051,6 @@
},
/turf/open/floor/iron,
/area/construction/mining/aux_base)
-"gNO" = (
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
-/obj/effect/turf_decal/tile/blue{
- dir = 4
- },
-/obj/structure/cable/yellow,
-/turf/open/floor/iron/white/corner,
-/area/hallway/secondary/entry)
"gOf" = (
/obj/effect/landmark/start/station_engineer,
/obj/effect/turf_decal/stripes/corner{
@@ -27533,12 +27496,6 @@
/obj/effect/turf_decal/bot/left,
/turf/open/floor/iron/dark,
/area/security/execution/transfer)
-"hbt" = (
-/obj/structure/extinguisher_cabinet{
- pixel_y = -30
- },
-/turf/open/floor/iron/cafeteria_red,
-/area/crew_quarters/bar)
"hbA" = (
/obj/structure/disposalpipe/segment,
/obj/structure/cable/yellow{
@@ -28468,23 +28425,6 @@
},
/turf/open/floor/iron,
/area/hallway/primary/central)
-"hzw" = (
-/obj/structure/disposalpipe/segment,
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
-/obj/structure/cable/yellow{
- icon_state = "0-2"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 1
- },
-/turf/open/floor/plating,
-/area/maintenance/port)
"hzA" = (
/obj/effect/turf_decal/trimline/dark_blue/filled/line{
dir = 1
@@ -29601,6 +29541,10 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
+"hWn" = (
+/obj/machinery/digital_clock/directional/south,
+/turf/open/floor/iron/cafeteria_red,
+/area/crew_quarters/bar)
"hWw" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -29754,6 +29698,20 @@
/obj/machinery/ecto_sniffer,
/turf/open/floor/iron/white,
/area/science/robotics/lab)
+"hYz" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/obj/machinery/power/apc/auto_name/east,
+/obj/structure/cable/yellow,
+/obj/effect/turf_decal/tile/red/anticorner/contrasted{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/security/checkpoint/auxiliary)
"hYG" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
@@ -30218,6 +30176,12 @@
/obj/item/stack/sheet/iron/fifty,
/turf/open/floor/iron/dark,
/area/engine/engineering)
+"ijd" = (
+/obj/machinery/digital_clock/directional/east,
+/turf/open/floor/iron/white/side{
+ dir = 9
+ },
+/area/science/research)
"ijs" = (
/obj/machinery/door/airlock/public/glass{
name = "Chapel"
@@ -31450,6 +31414,16 @@
},
/turf/open/floor/iron/dark,
/area/bridge)
+"iKr" = (
+/obj/machinery/light,
+/obj/structure/table,
+/obj/machinery/cell_charger,
+/obj/item/clothing/glasses/meson,
+/obj/effect/turf_decal/tile/yellow/anticorner/contrasted,
+/obj/item/book/manual/wiki/sopengineering,
+/obj/machinery/digital_clock/directional/east,
+/turf/open/floor/iron,
+/area/engine/break_room)
"iKv" = (
/obj/structure/lattice/catwalk,
/obj/structure/cable,
@@ -31488,20 +31462,6 @@
/obj/effect/spawner/structure/window/reinforced/prison,
/turf/open/floor/plating,
/area/security/prison)
-"iLs" = (
-/obj/structure/cable/yellow{
- icon_state = "0-8"
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/computer/xenoartifact_console{
- dir = 8
- },
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/iron,
-/area/science/misc_lab)
"iLQ" = (
/obj/machinery/airalarm{
dir = 4;
@@ -31563,6 +31523,17 @@
},
/turf/open/floor/wood,
/area/vacant_room/office)
+"iNJ" = (
+/obj/structure/rack,
+/obj/effect/turf_decal/tile/dark_blue/fourcorners/contrasted,
+/obj/item/storage/firstaid/regular,
+/obj/machinery/power/apc/auto_name/east,
+/obj/structure/cable/yellow,
+/obj/machinery/light_switch{
+ pixel_y = -26
+ },
+/turf/open/floor/iron/techmaint,
+/area/gateway)
"iNO" = (
/obj/machinery/atmospherics/components/binary/pump/on{
dir = 1;
@@ -31873,6 +31844,17 @@
},
/turf/open/floor/iron/dark,
/area/engine/engineering)
+"iUu" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/obj/machinery/power/apc/auto_name/east,
+/turf/open/floor/iron,
+/area/crew_quarters/locker)
"iVg" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
dir = 8
@@ -32045,15 +32027,6 @@
},
/turf/open/floor/iron,
/area/crew_quarters/fitness)
-"iXX" = (
-/obj/structure/closet,
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
-/obj/structure/cable/yellow,
-/obj/machinery/airalarm/directional/south,
-/turf/open/floor/plating,
-/area/maintenance/disposal)
"iXY" = (
/obj/structure/chair/office{
dir = 1
@@ -32217,6 +32190,12 @@
},
/turf/open/floor/iron,
/area/hallway/secondary/service)
+"jbk" = (
+/obj/machinery/telecomms/receiver/preset_exploration,
+/obj/machinery/power/apc/auto_name/east,
+/obj/structure/cable/yellow,
+/turf/open/floor/circuit/green/telecomms/mainframe,
+/area/quartermaster/exploration_dock)
"jbn" = (
/obj/machinery/light_switch{
pixel_x = -28
@@ -36788,15 +36767,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
-"laq" = (
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
-/obj/structure/cable/yellow{
- icon_state = "0-2"
- },
-/turf/open/floor/iron,
-/area/science/mixing)
"lbh" = (
/obj/structure/disposalpipe/segment,
/turf/closed/wall/r_wall,
@@ -37090,6 +37060,11 @@
},
/turf/open/floor/iron,
/area/engine/atmos)
+"liE" = (
+/obj/machinery/power/apc/auto_name/east,
+/obj/structure/cable/yellow,
+/turf/open/floor/circuit,
+/area/ai_monitored/turret_protected/aisat/hallway)
"liI" = (
/obj/machinery/button/door{
id = "ViroA";
@@ -37204,17 +37179,6 @@
/obj/machinery/atmospherics/pipe/layer_manifold,
/turf/open/floor/plating,
/area/hallway/secondary/entry)
-"ljV" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 1
- },
-/obj/structure/cable/yellow,
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
-/turf/open/floor/iron/freezer,
-/area/crew_quarters/toilet/locker)
"ljZ" = (
/obj/structure/cable/yellow{
icon_state = "1-2"
@@ -38640,6 +38604,12 @@
},
/turf/open/floor/iron/white,
/area/crew_quarters/heads/cmo)
+"lPG" = (
+/obj/machinery/power/apc/auto_name/east,
+/obj/structure/cable/yellow,
+/obj/effect/turf_decal/tile/red/anticorner/contrasted,
+/turf/open/floor/iron/dark,
+/area/security/execution/transfer)
"lPH" = (
/obj/structure/dresser,
/turf/open/floor/carpet/orange,
@@ -40596,24 +40566,6 @@
},
/turf/open/floor/carpet/red,
/area/crew_quarters/heads/hos)
-"mOL" = (
-/obj/structure/closet/secure_closet/security/med,
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
-/obj/structure/cable/yellow{
- icon_state = "0-8"
- },
-/obj/machinery/airalarm{
- dir = 1;
- pixel_y = -22
- },
-/obj/machinery/camera/autoname{
- dir = 9
- },
-/obj/effect/turf_decal/tile/red/anticorner/contrasted,
-/turf/open/floor/iron,
-/area/security/checkpoint/medical)
"mOX" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 6
@@ -41300,6 +41252,14 @@
},
/turf/open/floor/iron/white,
/area/science/mixing)
+"nbG" = (
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/apc/auto_name/east,
+/obj/structure/chair,
+/turf/open/floor/iron/dark,
+/area/ai_monitored/turret_protected/aisat_interior)
"nbZ" = (
/obj/effect/turf_decal/tile/dark_blue,
/turf/open/floor/iron,
@@ -41928,27 +41888,6 @@
},
/turf/open/floor/prison/dark,
/area/security/execution/transfer)
-"npW" = (
-/obj/machinery/disposal/bin,
-/obj/structure/sign/plaques/deempisi{
- pixel_x = -28;
- pixel_y = -4
- },
-/obj/structure/disposalpipe/trunk{
- dir = 4
- },
-/obj/machinery/button/door{
- id = "barShutters";
- name = "bar shutters";
- pixel_x = 4;
- pixel_y = 28
- },
-/obj/machinery/light_switch{
- pixel_x = -6;
- pixel_y = 26
- },
-/turf/open/floor/iron/cafeteria_red,
-/area/crew_quarters/bar)
"nqq" = (
/obj/machinery/camera/motion{
c_tag = "AI Upload Chamber - External";
@@ -42368,6 +42307,15 @@
/obj/machinery/door/firedoor,
/turf/open/floor/iron/white,
/area/science/mixing)
+"nyq" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/structure/cable/yellow,
+/obj/machinery/power/apc/auto_name/east,
+/turf/open/floor/iron/freezer,
+/area/crew_quarters/toilet/locker)
"nyw" = (
/obj/structure/cable/yellow{
icon_state = "0-8"
@@ -43667,6 +43615,16 @@
},
/turf/open/floor/plating,
/area/ai_monitored/turret_protected/aisat_interior)
+"obc" = (
+/obj/effect/turf_decal/trimline/dark_blue/filled/line{
+ dir = 4
+ },
+/obj/machinery/power/apc/auto_name/east,
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/turf/open/floor/iron/dark,
+/area/hallway/secondary/command)
"obi" = (
/obj/structure/sign/poster/official/random{
pixel_y = -32
@@ -44033,6 +43991,21 @@
/obj/item/reagent_containers/glass/rag,
/turf/open/floor/iron/cafeteria_red,
/area/crew_quarters/bar)
+"ojg" = (
+/obj/effect/turf_decal/tile/neutral/fourcorners/contrasted,
+/obj/machinery/power/apc/auto_name/east,
+/obj/effect/turf_decal/trimline/yellow/filled/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/yellow/filled/line{
+ dir = 8
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/iron/dark,
+/area/storage/tech)
"ojl" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 8
@@ -45215,14 +45188,6 @@
},
/turf/open/floor/iron,
/area/engine/engineering)
-"oRr" = (
-/obj/machinery/telecomms/receiver/preset_exploration,
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
-/obj/structure/cable/yellow,
-/turf/open/floor/circuit/green/telecomms/mainframe,
-/area/quartermaster/exploration_dock)
"oRK" = (
/obj/effect/turf_decal/tile/red/half/contrasted{
dir = 1
@@ -45563,6 +45528,28 @@
},
/turf/open/floor/carpet,
/area/quartermaster/exploration_prep)
+"pam" = (
+/obj/item/stack/sheet/glass,
+/obj/structure/table/glass,
+/obj/item/stack/sheet/glass,
+/obj/item/stack/sheet/glass,
+/obj/item/stock_parts/matter_bin,
+/obj/item/stock_parts/matter_bin,
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/item/stock_parts/scanning_module{
+ pixel_x = 2;
+ pixel_y = 3
+ },
+/obj/item/stock_parts/scanning_module,
+/obj/machinery/power/apc/auto_name/east,
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/obj/structure/disposalpipe/segment,
+/turf/open/floor/iron/white,
+/area/science/lab)
"pan" = (
/obj/structure/table/reinforced,
/obj/machinery/door/window/northleft{
@@ -46067,19 +46054,6 @@
},
/turf/open/floor/iron/white,
/area/medical/virology)
-"ppQ" = (
-/obj/structure/rack,
-/obj/effect/turf_decal/tile/dark_blue/fourcorners/contrasted,
-/obj/item/storage/firstaid/regular,
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
-/obj/structure/cable/yellow,
-/obj/machinery/light_switch{
- pixel_y = -26
- },
-/turf/open/floor/iron/techmaint,
-/area/gateway)
"pqp" = (
/obj/machinery/camera/autoname{
dir = 8
@@ -46587,19 +46561,6 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
-"pAX" = (
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
-/obj/structure/cable/yellow{
- icon_state = "0-8"
- },
-/obj/machinery/power/port_gen/pacman,
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/turf/open/floor/plating,
-/area/ai_monitored/turret_protected/aisat/service)
"pAZ" = (
/obj/structure/table,
/obj/item/surgicaldrill,
@@ -47352,6 +47313,13 @@
},
/turf/open/floor/iron,
/area/crew_quarters/locker)
+"pQd" = (
+/obj/structure/closet,
+/obj/machinery/power/apc/auto_name/east,
+/obj/structure/cable/yellow,
+/obj/machinery/airalarm/directional/south,
+/turf/open/floor/plating,
+/area/maintenance/disposal)
"pQr" = (
/obj/structure/cable/yellow{
icon_state = "0-8"
@@ -49089,13 +49057,6 @@
/obj/effect/turf_decal/tile/neutral/opposingcorners,
/turf/open/floor/iron,
/area/vacant_room/commissary)
-"qIB" = (
-/obj/machinery/airalarm{
- dir = 1;
- pixel_y = -22
- },
-/turf/open/floor/iron/cafeteria_red,
-/area/crew_quarters/bar)
"qJm" = (
/obj/structure/disposalpipe/segment,
/obj/structure/cable/yellow{
@@ -49757,6 +49718,13 @@
},
/turf/open/floor/iron,
/area/quartermaster/sorting)
+"qYp" = (
+/obj/machinery/light/small,
+/obj/structure/extinguisher_cabinet{
+ pixel_y = -30
+ },
+/turf/open/floor/iron/cafeteria_red,
+/area/crew_quarters/bar)
"qYK" = (
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 1
@@ -50633,10 +50601,6 @@
/obj/item/reagent_containers/food/drinks/flask/det,
/turf/open/floor/carpet/green,
/area/security/detectives_office)
-"rpr" = (
-/obj/machinery/light/small,
-/turf/open/floor/iron/cafeteria_red,
-/area/crew_quarters/bar)
"rpN" = (
/obj/effect/turf_decal/tile/blue/half/contrasted{
dir = 8
@@ -52430,6 +52394,17 @@
},
/turf/open/floor/carpet/red,
/area/crew_quarters/dorms)
+"scs" = (
+/obj/machinery/power/apc/auto_name/east,
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/port_gen/pacman,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/plating,
+/area/ai_monitored/turret_protected/aisat/service)
"scX" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
@@ -53241,6 +53216,18 @@
},
/turf/open/floor/plating,
/area/maintenance/solars/starboard/fore)
+"suK" = (
+/obj/effect/turf_decal/tile/red/half/contrasted{
+ dir = 4
+ },
+/obj/structure/noticeboard{
+ pixel_y = 26
+ },
+/obj/structure/chair/fancy/sofa/old/left{
+ color = "#742925"
+ },
+/turf/open/floor/wood,
+/area/security/detectives_office)
"suU" = (
/obj/effect/turf_decal/stripes/line{
dir = 9
@@ -54129,6 +54116,14 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
+"sKt" = (
+/obj/machinery/power/apc/auto_name/east,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/structure/cable/yellow,
+/turf/open/floor/iron/white/corner,
+/area/hallway/secondary/entry)
"sKx" = (
/obj/structure/cable/yellow{
icon_state = "1-4"
@@ -54159,6 +54154,14 @@
/obj/effect/turf_decal/tile/neutral/fourcorners/contrasted,
/turf/open/floor/iron/dark,
/area/security/main)
+"sLr" = (
+/obj/structure/chair/fancy/sofa/old/right{
+ color = "#742925"
+ },
+/obj/effect/landmark/start/detective,
+/obj/machinery/digital_clock/directional/north,
+/turf/open/floor/wood,
+/area/security/detectives_office)
"sMt" = (
/obj/structure/sink{
dir = 8;
@@ -54206,16 +54209,6 @@
/obj/machinery/door/firedoor,
/turf/open/floor/iron,
/area/hallway/primary/central)
-"sNi" = (
-/obj/structure/cable/yellow{
- icon_state = "0-8"
- },
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
-/obj/structure/chair,
-/turf/open/floor/iron/dark,
-/area/ai_monitored/turret_protected/aisat_interior)
"sNm" = (
/obj/structure/disposalpipe/segment,
/turf/open/floor/carpet/green,
@@ -55548,6 +55541,10 @@
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
/turf/open/floor/iron,
/area/hallway/primary/starboard)
+"trd" = (
+/obj/machinery/digital_clock,
+/turf/closed/wall,
+/area/hallway/secondary/exit)
"trl" = (
/obj/structure/table,
/obj/machinery/camera/autoname{
@@ -56389,18 +56386,6 @@
},
/turf/open/floor/iron/techmaint,
/area/storage/tech)
-"tEM" = (
-/obj/effect/turf_decal/trimline/dark_blue/filled/line{
- dir = 4
- },
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
-/obj/structure/cable/yellow{
- icon_state = "0-8"
- },
-/turf/open/floor/iron/dark,
-/area/hallway/secondary/command)
"tFe" = (
/obj/machinery/door/firedoor,
/turf/open/floor/iron,
@@ -58328,6 +58313,14 @@
},
/turf/open/floor/iron,
/area/quartermaster/storage)
+"uyq" = (
+/obj/structure/closet/secure_closet/hop,
+/obj/machinery/power/apc/auto_name/east,
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/heads/hop)
"uyT" = (
/obj/structure/chair/fancy,
/obj/effect/turf_decal/tile/blue/anticorner/contrasted{
@@ -58438,13 +58431,6 @@
},
/turf/open/floor/iron,
/area/security/checkpoint/supply)
-"uBy" = (
-/obj/effect/spawner/randomarcade{
- dir = 8
- },
-/obj/effect/turf_decal/tile/red/anticorner/contrasted,
-/turf/open/floor/prison,
-/area/security/prison)
"uCp" = (
/obj/structure/table,
/obj/structure/window/reinforced{
@@ -58573,6 +58559,12 @@
},
/turf/open/floor/iron/white,
/area/medical/virology)
+"uGy" = (
+/obj/structure/sign/plaques/deempisi{
+ pixel_y = -28
+ },
+/turf/open/floor/iron/cafeteria_red,
+/area/crew_quarters/bar)
"uGA" = (
/obj/effect/turf_decal/stripes/corner{
dir = 1
@@ -59302,6 +59294,13 @@
},
/turf/open/floor/iron,
/area/hallway/primary/fore)
+"uZe" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/digital_clock/directional/north,
+/turf/open/floor/iron,
+/area/quartermaster/office)
"uZo" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 4
@@ -60134,6 +60133,16 @@
},
/turf/open/floor/iron,
/area/crew_quarters/theatre)
+"vwU" = (
+/obj/effect/turf_decal/tile/neutral/half/contrasted{
+ dir = 4
+ },
+/obj/machinery/computer/security/telescreen/entertainment{
+ pixel_y = 32
+ },
+/obj/effect/turf_decal/siding/thinplating_new,
+/turf/open/floor/iron,
+/area/crew_quarters/dorms)
"vwZ" = (
/obj/structure/cable/yellow{
icon_state = "1-2"
@@ -60157,18 +60166,6 @@
/obj/item/shovel/spade,
/turf/open/floor/iron,
/area/hallway/secondary/service)
-"vxz" = (
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
-/obj/structure/cable/yellow{
- icon_state = "0-8"
- },
-/obj/effect/turf_decal/tile/blue/opposingcorners{
- dir = 1
- },
-/turf/open/floor/iron/white,
-/area/crew_quarters/heads/cmo)
"vyz" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 1
@@ -60214,6 +60211,20 @@
},
/turf/open/floor/iron/white,
/area/medical/cryo)
+"vAe" = (
+/obj/item/radio/intercom{
+ pixel_y = 20
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/vending/medical{
+ pixel_x = -2
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/machinery/digital_clock/directional/east,
+/turf/open/floor/iron/white,
+/area/medical/medbay/lobby)
"vAh" = (
/obj/machinery/door/window{
name = "SMES Chamber";
@@ -60227,6 +60238,13 @@
},
/turf/open/floor/iron/dark,
/area/engine/gravity_generator)
+"vAE" = (
+/obj/effect/spawner/randomarcade{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red/anticorner/contrasted,
+/turf/open/floor/prison,
+/area/security/prison)
"vBe" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 1
@@ -61145,19 +61163,6 @@
},
/turf/open/floor/iron/grid/steel,
/area/ai_monitored/turret_protected/ai_upload)
-"vVO" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/structure/cable/yellow{
- icon_state = "0-2"
- },
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
-/turf/open/floor/iron,
-/area/crew_quarters/locker)
"vWb" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
/obj/structure/cable/yellow{
@@ -61721,15 +61726,6 @@
},
/turf/open/floor/iron/dark,
/area/security/courtroom)
-"wjg" = (
-/obj/machinery/light,
-/obj/structure/table,
-/obj/machinery/cell_charger,
-/obj/item/clothing/glasses/meson,
-/obj/effect/turf_decal/tile/yellow/anticorner/contrasted,
-/obj/item/book/manual/wiki/sopengineering,
-/turf/open/floor/iron,
-/area/engine/break_room)
"wji" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
@@ -61959,19 +61955,6 @@
},
/turf/open/floor/iron/white,
/area/crew_quarters/heads/cmo)
-"wnP" = (
-/obj/item/radio/intercom{
- pixel_y = 20
- },
-/obj/machinery/light{
- dir = 4
- },
-/obj/machinery/vending/medical{
- pixel_x = -2
- },
-/obj/effect/turf_decal/tile/blue,
-/turf/open/floor/iron/white,
-/area/medical/medbay/lobby)
"wnQ" = (
/obj/structure/lattice/catwalk,
/obj/structure/cable,
@@ -64228,11 +64211,6 @@
/obj/effect/turf_decal/tile/neutral/fourcorners/contrasted,
/turf/open/floor/iron/dark,
/area/quartermaster/exploration_prep)
-"xpH" = (
-/obj/structure/table/reinforced,
-/obj/structure/displaycase/forsale/kitchen,
-/turf/open/floor/iron/cafeteria_red,
-/area/crew_quarters/bar)
"xqa" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
dir = 4
@@ -65505,6 +65483,13 @@
},
/turf/open/floor/iron/white,
/area/medical/medbay/central)
+"xRB" = (
+/obj/structure/chair/fancy/comfy{
+ dir = 8
+ },
+/obj/machinery/digital_clock/directional/east,
+/turf/open/floor/carpet,
+/area/hallway/secondary/entry)
"xRN" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
@@ -78994,7 +78979,7 @@ azD
azD
azD
lMl
-gNO
+sKt
aFG
mQN
ayl
@@ -80542,7 +80527,7 @@ aHy
ayl
loh
nBU
-fhS
+xRB
vJi
nBU
jPx
@@ -80792,7 +80777,7 @@ amC
alU
pSV
hua
-dgZ
+hYz
fLd
qvR
aBI
@@ -80818,7 +80803,7 @@ beO
beZ
bje
bkC
-iXX
+pQd
beO
aaa
aaa
@@ -82351,7 +82336,7 @@ vwZ
hgc
hNY
vlj
-hzw
+bFP
vlj
nrz
ngR
@@ -83635,7 +83620,7 @@ aQN
aQN
xIt
vmV
-ljV
+nyq
jAB
jzB
fkM
@@ -85950,7 +85935,7 @@ aQW
aQW
aQN
ugj
-vVO
+iUu
wuZ
rqX
xVS
@@ -86000,7 +85985,7 @@ bHE
cfw
cgB
ewu
-clB
+eSr
cfw
aag
aag
@@ -90071,7 +90056,7 @@ cNG
ebc
xxk
aZK
-gby
+uZe
bbR
bqt
cBq
@@ -92056,7 +92041,7 @@ pLE
sNN
vZK
kNn
-gkV
+lPG
acZ
cEo
aHK
@@ -92341,7 +92326,7 @@ pNh
mBn
cPf
kKO
-uBy
+vAE
acd
ivE
bpn
@@ -93662,7 +93647,7 @@ bjz
hEA
bmr
rPD
-dKy
+uyq
bmo
olu
bmo
@@ -94197,7 +94182,7 @@ byU
bCs
tpu
qWt
-aaq
+ojg
gGm
iIx
vDe
@@ -94464,7 +94449,7 @@ vZz
bJu
osw
cmX
-ppQ
+iNJ
ayG
bCq
bCq
@@ -94941,7 +94926,7 @@ uHS
vSj
grf
lCw
-nmS
+elv
aTQ
ifm
vGV
@@ -95461,7 +95446,7 @@ gef
eXz
cMU
lDI
-tEM
+obc
ifH
hCs
mmm
@@ -97474,7 +97459,7 @@ iiK
flQ
ikG
aiX
-acC
+sLr
bAJ
vkO
kzV
@@ -97731,7 +97716,7 @@ aiX
aiX
aiX
aiX
-eQJ
+suK
nRu
fPz
gzH
@@ -97818,7 +97803,7 @@ caA
nCY
sJB
bZw
-wjg
+iKr
ctR
ccn
fWY
@@ -98261,7 +98246,7 @@ arf
fLe
hqH
arf
-sIK
+fTY
sbv
kSu
ooz
@@ -99032,7 +99017,7 @@ arf
arf
arf
arf
-ftT
+vwU
sbv
eOe
fqi
@@ -102647,13 +102632,13 @@ aJC
aJC
aJC
aJC
-xpH
+cCn
gEU
sAL
mvz
mvz
ikR
-hbt
+hWn
aJC
aYV
iGe
@@ -102903,14 +102888,14 @@ aKQ
aLU
aNu
aJC
-npW
+fCz
fRF
fRF
dWa
fRF
lLK
jOB
-qIB
+uGy
aJC
aYV
cuf
@@ -103167,7 +103152,7 @@ fRF
fRF
tAG
fRF
-rpr
+qYp
aJC
aYV
cuf
@@ -103243,7 +103228,7 @@ cua
cua
omb
gWx
-sNi
+nbG
qwN
cuA
cuA
@@ -103256,7 +103241,7 @@ rrE
jfI
rrE
hNs
-etR
+liE
jfI
rrE
rrE
@@ -103430,7 +103415,7 @@ aYV
cuf
nEu
uwZ
-wnP
+vAe
qjW
qjW
qjW
@@ -103695,7 +103680,7 @@ bok
btZ
pVe
xaA
-mOL
+fub
btZ
eJE
ucP
@@ -104276,7 +104261,7 @@ cvc
cvc
qLr
xXU
-pAX
+scs
cvc
cvk
cvk
@@ -105024,7 +105009,7 @@ cfj
qwH
cmZ
vOh
-dSG
+cRw
fGe
fkS
cqs
@@ -107315,7 +107300,7 @@ pnv
hZm
lPA
pWy
-vxz
+ent
dPm
bWj
lwA
@@ -112154,7 +112139,7 @@ daL
nGk
ruS
aFw
-aFz
+eEZ
aFz
aRR
aTe
@@ -112692,7 +112677,7 @@ bpX
kUF
brm
kfz
-bBD
+ijd
bvf
bBD
bBD
@@ -114485,7 +114470,7 @@ bhF
xNj
fHf
dpp
-aDc
+pam
wRV
bpO
eHS
@@ -114515,7 +114500,7 @@ bUo
bNq
bEC
pKk
-iLs
+euk
lRv
bSc
bTl
@@ -115527,7 +115512,7 @@ fZi
kch
uUy
uUy
-laq
+bwm
glg
xxW
bKa
@@ -115757,9 +115742,9 @@ aPq
ffm
aPs
aPq
-aZm
-aMZ
-aZm
+aNa
+trd
+aNa
aPq
ecE
scX
@@ -118858,7 +118843,7 @@ aaa
xkR
rKw
eQc
-oRr
+jbk
gQd
wOv
pqr
diff --git a/_maps/map_files/CorgStation/CorgStation.dmm b/_maps/map_files/CorgStation/CorgStation.dmm
index ea6161c73c61c..3c7715cd8a3bd 100644
--- a/_maps/map_files/CorgStation/CorgStation.dmm
+++ b/_maps/map_files/CorgStation/CorgStation.dmm
@@ -5065,13 +5065,6 @@
},
/turf/open/floor/iron/white,
/area/science/xenobiology)
-"boO" = (
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/effect/turf_decal/siding/wood,
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
"bpn" = (
/obj/machinery/atmospherics/pipe/simple/general/hidden,
/obj/effect/turf_decal/tile/neutral/opposingcorners,
@@ -10660,6 +10653,14 @@
},
/turf/open/floor/iron/dark,
/area/engine/engine_room)
+"djm" = (
+/obj/machinery/light,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/obj/machinery/digital_clock/directional/south,
+/turf/open/floor/iron,
+/area/engine/engineering)
"djA" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -13948,6 +13949,16 @@
/obj/machinery/advanced_airlock_controller/directional/east,
/turf/open/floor/plating,
/area/medical/virology)
+"enx" = (
+/obj/structure/chair,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/landmark/event_spawn,
+/obj/effect/turf_decal/tile/neutral/fourcorners/contrasted,
+/obj/machinery/digital_clock/directional/north,
+/turf/open/floor/iron,
+/area/hallway/primary/central)
"enz" = (
/obj/machinery/door/airlock/external{
name = "Transport Airlock"
@@ -17401,6 +17412,13 @@
/obj/machinery/door/firedoor,
/turf/open/floor/iron/white,
/area/maintenance/department/science)
+"fyd" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/machinery/digital_clock/directional/north,
+/turf/open/floor/iron/dark,
+/area/quartermaster/storage)
"fye" = (
/obj/machinery/light/small{
dir = 8
@@ -18136,13 +18154,6 @@
},
/turf/open/floor/iron,
/area/medical/morgue)
-"fKw" = (
-/obj/machinery/light,
-/obj/effect/turf_decal/tile/yellow{
- dir = 8
- },
-/turf/open/floor/iron,
-/area/engine/engineering)
"fKx" = (
/turf/open/floor/plating,
/area/maintenance/port/central)
@@ -18198,12 +18209,6 @@
},
/turf/open/floor/iron/freezer,
/area/security/prison)
-"fLt" = (
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/turf/open/floor/iron/dark,
-/area/quartermaster/storage)
"fLv" = (
/obj/machinery/gateway{
dir = 5
@@ -23226,6 +23231,14 @@
},
/turf/open/floor/iron/dark,
/area/maintenance/department/chapel/monastery)
+"htt" = (
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/yellow{
+ dir = 8
+ },
+/obj/machinery/digital_clock/directional/south,
+/turf/open/floor/iron,
+/area/hallway/secondary/exit)
"htA" = (
/obj/effect/turf_decal/siding/wood{
dir = 1
@@ -25288,6 +25301,22 @@
/obj/item/radio,
/turf/open/floor/iron/dark,
/area/security/main)
+"iap" = (
+/obj/machinery/camera/autoname,
+/obj/effect/landmark/start/security_officer,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/item/radio/intercom{
+ frequency = 1423;
+ name = "Interrogation Intercom";
+ pixel_y = 21
+ },
+/turf/open/floor/iron,
+/area/security/brig)
"iaD" = (
/obj/structure/grille,
/turf/closed/wall/r_wall,
@@ -26433,15 +26462,6 @@
},
/turf/open/floor/wood,
/area/maintenance/port)
-"irR" = (
-/obj/structure/chair,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/effect/landmark/event_spawn,
-/obj/effect/turf_decal/tile/neutral/fourcorners/contrasted,
-/turf/open/floor/iron,
-/area/hallway/primary/central)
"isl" = (
/obj/structure/table/glass,
/obj/item/stack/sheet/iron/fifty,
@@ -31104,6 +31124,11 @@
},
/turf/open/floor/iron,
/area/hallway/secondary/exit/departure_lounge)
+"jVN" = (
+/obj/effect/turf_decal/tile/purple,
+/obj/machinery/digital_clock/directional/east,
+/turf/open/floor/iron/white,
+/area/science/research)
"jVV" = (
/obj/structure/window/reinforced/spawner/west,
/obj/machinery/atmospherics/components/unary/vent_pump/siphon/on{
@@ -31656,13 +31681,6 @@
},
/turf/open/floor/iron,
/area/engine/storage)
-"kgg" = (
-/obj/machinery/vending/medical,
-/obj/effect/turf_decal/tile/blue/anticorner/contrasted{
- dir = 4
- },
-/turf/open/floor/iron/white,
-/area/medical/medbay/lobby)
"kgh" = (
/obj/effect/turf_decal/stripes/line{
dir = 9
@@ -32562,6 +32580,14 @@
"ksE" = (
/turf/open/floor/circuit/green,
/area/engine/gravity_generator)
+"ksG" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/neutral/fourcorners/contrasted,
+/obj/machinery/digital_clock/directional/west,
+/turf/open/floor/iron/dark,
+/area/chapel/main/monastery)
"ksO" = (
/obj/structure/chair/office/light{
dir = 8
@@ -34138,21 +34164,6 @@
/obj/effect/spawner/room/tenxten,
/turf/open/floor/plating,
/area/maintenance/starboard/secondary)
-"kVR" = (
-/obj/effect/spawner/randomarcade{
- dir = 4
- },
-/obj/machinery/power/apc/auto_name/west{
- pixel_x = -24
- },
-/obj/structure/cable/yellow{
- icon_state = "0-4"
- },
-/obj/machinery/camera/autoname{
- dir = 4
- },
-/turf/open/floor/carpet/royalblue,
-/area/crew_quarters/theatre)
"kVV" = (
/obj/machinery/atmospherics/components/binary/dp_vent_pump/layer2{
dir = 1
@@ -44976,6 +44987,14 @@
},
/turf/open/floor/iron,
/area/hydroponics)
+"opK" = (
+/obj/machinery/vending/medical,
+/obj/machinery/vending/medical,
+/obj/effect/turf_decal/tile/blue/anticorner/contrasted{
+ dir = 4
+ },
+/turf/open/floor/iron/white,
+/area/medical/medbay/lobby)
"opS" = (
/obj/structure/table/reinforced,
/obj/item/storage/toolbox/drone,
@@ -47402,6 +47421,21 @@
},
/turf/open/floor/iron,
/area/engine/engine_room)
+"piU" = (
+/obj/effect/spawner/randomarcade{
+ dir = 4
+ },
+/obj/machinery/power/apc/auto_name/west{
+ pixel_x = -24
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-4"
+ },
+/obj/machinery/camera/autoname{
+ dir = 4
+ },
+/turf/open/floor/carpet/royalblue,
+/area/crew_quarters/theatre)
"piY" = (
/obj/structure/table/reinforced,
/obj/machinery/light{
@@ -50075,6 +50109,12 @@
},
/turf/open/floor/iron,
/area/hallway/primary/aft)
+"qdF" = (
+/obj/effect/spawner/randomarcade{
+ dir = 4
+ },
+/turf/open/floor/carpet/royalblue,
+/area/crew_quarters/theatre)
"qdG" = (
/obj/item/crowbar/red,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
@@ -50554,14 +50594,6 @@
/obj/item/storage/toolbox/mechanical,
/turf/open/floor/iron/dark,
/area/engine/storage)
-"qmt" = (
-/obj/effect/spawner/randomvend/cola,
-/obj/effect/turf_decal/delivery,
-/obj/effect/turf_decal/tile/blue/half/contrasted{
- dir = 4
- },
-/turf/open/floor/iron/white,
-/area/medical/medbay/lobby)
"qmJ" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
@@ -52211,16 +52243,6 @@
/obj/machinery/door/firedoor,
/turf/open/floor/iron/white,
/area/science/xenobiology)
-"qNp" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/effect/turf_decal/tile/red{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/security/brig)
"qNr" = (
/obj/machinery/atmospherics/pipe/simple/dark/visible,
/turf/open/floor/iron/dark,
@@ -55730,6 +55752,14 @@
/obj/effect/turf_decal/tile/blue/anticorner/contrasted,
/turf/open/floor/iron,
/area/hallway/primary/central)
+"rVM" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/siding/wood,
+/obj/machinery/digital_clock/directional/south,
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"rVS" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/door/poddoor/preopen{
@@ -57892,6 +57922,15 @@
/obj/effect/turf_decal/delivery,
/turf/open/floor/iron/dark,
/area/engine/storage)
+"sGm" = (
+/obj/effect/spawner/randomvend/cola,
+/obj/effect/turf_decal/delivery,
+/obj/effect/turf_decal/tile/blue/half/contrasted{
+ dir = 4
+ },
+/obj/machinery/digital_clock/directional/north,
+/turf/open/floor/iron/white,
+/area/medical/medbay/lobby)
"sGn" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -63068,6 +63107,17 @@
},
/turf/open/floor/iron/white,
/area/medical/storage)
+"uqH" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/machinery/digital_clock/directional/north,
+/turf/open/floor/iron,
+/area/security/brig)
"uqS" = (
/obj/structure/cable/yellow{
icon_state = "1-2"
@@ -68319,12 +68369,6 @@
},
/turf/open/floor/plating,
/area/crew_quarters/heads/cmo)
-"vXY" = (
-/obj/effect/spawner/randomarcade{
- dir = 4
- },
-/turf/open/floor/carpet/royalblue,
-/area/crew_quarters/theatre)
"vYc" = (
/obj/machinery/light,
/obj/effect/turf_decal/tile/yellow{
@@ -71783,23 +71827,6 @@
},
/turf/open/floor/iron,
/area/hallway/primary/central)
-"xfY" = (
-/obj/machinery/camera/autoname{
- network = list("ss13","security")
- },
-/obj/effect/turf_decal/tile/red{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/item/radio/intercom{
- frequency = 1423;
- name = "Interrogation Intercom";
- pixel_y = 21
- },
-/turf/open/floor/iron,
-/area/security/brig)
"xgn" = (
/obj/structure/window/reinforced/spawner{
dir = 8
@@ -94169,7 +94196,7 @@ fSz
gwG
ahW
eGl
-gHL
+ksG
vqg
qqc
gHL
@@ -97932,7 +97959,7 @@ dEa
wXZ
ces
hYd
-fKw
+djm
amI
pFF
lXu
@@ -102384,8 +102411,8 @@ mmp
fHv
rdA
mQA
-kVR
-vXY
+piU
+qdF
glo
fpf
aQQ
@@ -104707,7 +104734,7 @@ guQ
hAT
gKS
pIk
-rnt
+htt
bOf
qyv
wIF
@@ -105925,7 +105952,7 @@ dWH
jpk
jDg
ipY
-jpk
+jVN
jpk
aKt
nwP
@@ -109825,7 +109852,7 @@ xXn
oRy
tSP
flm
-boO
+rVM
fhO
fhO
fhO
@@ -110567,8 +110594,8 @@ lrx
uQJ
ehY
xVh
-xVx
-irR
+vJi
+enx
eIz
ouI
boA
@@ -112585,7 +112612,7 @@ tTo
tTo
tTo
tTo
-xfY
+iap
wod
kpV
cUn
@@ -112842,7 +112869,7 @@ sim
umx
thk
tTo
-qNp
+uqH
vvb
veZ
rZs
@@ -114408,7 +114435,7 @@ sNC
tSC
kEQ
iDL
-qmt
+sGm
vvO
bOi
iDL
@@ -115179,7 +115206,7 @@ sNC
xRS
iBX
iDL
-kgg
+opK
btd
btd
btd
@@ -118249,7 +118276,7 @@ oeF
ivK
lhX
aWM
-fLt
+fyd
eWf
sCf
eWf
diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm
index 7de1e97e0fac8..5e59cd31e112b 100644
--- a/_maps/map_files/Deltastation/DeltaStation2.dmm
+++ b/_maps/map_files/Deltastation/DeltaStation2.dmm
@@ -1565,12 +1565,6 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/iron,
/area/hallway/secondary/entry)
-"akL" = (
-/obj/machinery/vending/clothing,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/bot,
-/turf/open/floor/iron,
-/area/hallway/secondary/entry)
"akM" = (
/obj/machinery/vending/coffee,
/obj/effect/turf_decal/bot,
@@ -6557,6 +6551,13 @@
"aKV" = (
/turf/closed/wall,
/area/security/prison)
+"aLa" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/tile/neutral/fourcorners/contrasted,
+/obj/machinery/fax/bridge,
+/obj/machinery/digital_clock/directional/south,
+/turf/open/floor/iron/dark,
+/area/bridge)
"aLb" = (
/obj/item/wrench,
/obj/effect/turf_decal/stripes/line{
@@ -31679,6 +31680,13 @@
},
/turf/open/floor/iron,
/area/maintenance/port/fore)
+"dJC" = (
+/obj/machinery/vending/clothing,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/bot,
+/obj/machinery/digital_clock/directional/south,
+/turf/open/floor/iron,
+/area/hallway/secondary/entry)
"dJG" = (
/obj/structure/chair,
/obj/effect/decal/cleanable/dirt,
@@ -32168,6 +32176,16 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/iron,
/area/science/storage)
+"dMg" = (
+/obj/effect/turf_decal/tile/red/anticorner/contrasted{
+ dir = 8
+ },
+/obj/machinery/digital_clock/directional/south,
+/obj/structure/chair/fancy/bench/right{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/security/prison)
"dMr" = (
/obj/structure/chair/stool,
/turf/open/floor/prison,
@@ -33343,13 +33361,6 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/iron,
/area/hallway/secondary/exit/departure_lounge)
-"dXN" = (
-/obj/structure/table,
-/obj/item/paper_bin,
-/obj/item/pen,
-/obj/effect/turf_decal/delivery,
-/turf/open/floor/iron,
-/area/hallway/secondary/exit/departure_lounge)
"dYc" = (
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
@@ -33873,9 +33884,6 @@
/obj/effect/landmark/xeno_spawn,
/turf/open/floor/plating,
/area/maintenance/port/aft)
-"ecz" = (
-/turf/open/floor/iron/dark,
-/area/chapel/main)
"ecF" = (
/obj/machinery/camera{
c_tag = "Departures - Port";
@@ -35010,6 +35018,17 @@
},
/turf/open/floor/iron,
/area/maintenance/port/fore)
+"epc" = (
+/obj/structure/chair/stool/bar{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red/opposingcorners,
+/obj/effect/turf_decal/tile/yellow/opposingcorners{
+ dir = 1
+ },
+/obj/machinery/digital_clock/directional/east,
+/turf/open/floor/iron,
+/area/crew_quarters/bar/atrium)
"epk" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -35603,6 +35622,17 @@
},
/turf/open/floor/iron,
/area/hallway/secondary/service)
+"ewS" = (
+/obj/machinery/holopad,
+/obj/machinery/light,
+/obj/machinery/camera{
+ c_tag = "Chapel - Aft";
+ dir = 1;
+ name = "chapel camera"
+ },
+/obj/machinery/digital_clock/directional/south,
+/turf/open/floor/carpet/grimy,
+/area/chapel/main)
"exc" = (
/obj/effect/turf_decal/tile/neutral/half/contrasted{
dir = 1
@@ -36558,12 +36588,6 @@
},
/turf/open/floor/iron,
/area/engine/storage_shared)
-"eNB" = (
-/obj/effect/spawner/randomarcade{
- dir = 4
- },
-/turf/open/floor/prison,
-/area/security/prison)
"eNJ" = (
/obj/item/radio/intercom{
pixel_x = -28;
@@ -36744,6 +36768,14 @@
},
/turf/open/floor/iron,
/area/medical/patients_rooms)
+"eQl" = (
+/obj/structure/table,
+/obj/item/paper_bin,
+/obj/item/pen,
+/obj/effect/turf_decal/delivery,
+/obj/machinery/digital_clock/directional/south,
+/turf/open/floor/iron,
+/area/hallway/secondary/exit/departure_lounge)
"eQt" = (
/obj/structure/cable/yellow{
icon_state = "0-4"
@@ -36955,6 +36987,19 @@
},
/turf/open/floor/iron,
/area/hallway/secondary/entry)
+"eUE" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/purple{
+ dir = 1
+ },
+/obj/machinery/digital_clock/directional/north,
+/turf/open/floor/iron/white,
+/area/science/research)
"eUM" = (
/obj/structure/cable/yellow{
icon_state = "1-2"
@@ -40903,13 +40948,6 @@
},
/turf/open/floor/plating,
/area/security/checkpoint/medical)
-"gmT" = (
-/obj/structure/chair/fancy/bench/right,
-/obj/effect/turf_decal/tile/red/half/contrasted{
- dir = 8
- },
-/turf/open/floor/iron,
-/area/security/prison)
"gnF" = (
/obj/machinery/light_switch{
pixel_x = 26;
@@ -50605,6 +50643,13 @@
/obj/structure/girder,
/turf/open/floor/plating,
/area/maintenance/aft)
+"jId" = (
+/obj/structure/table,
+/obj/item/paper_bin,
+/obj/item/pen,
+/obj/machinery/digital_clock/directional/south,
+/turf/open/floor/iron,
+/area/medical/medbay/lobby)
"jIo" = (
/obj/structure/disposalpipe/segment{
dir = 2
@@ -61146,6 +61191,16 @@
},
/turf/open/floor/iron,
/area/construction/mining/aux_base)
+"nfA" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/machinery/digital_clock/directional/north,
+/turf/open/floor/iron,
+/area/engine/break_room)
"nfZ" = (
/obj/effect/turf_decal/tile/brown/half/contrasted{
dir = 4
@@ -64868,22 +64923,6 @@
},
/turf/open/floor/iron,
/area/ai_monitored/security/armory)
-"orD" = (
-/obj/structure/noticeboard{
- desc = "A board for remembering the fallen of the station.";
- dir = 1;
- name = "memorial board";
- pixel_y = -32
- },
-/obj/machinery/holopad,
-/obj/machinery/light,
-/obj/machinery/camera{
- c_tag = "Chapel - Aft";
- dir = 1;
- name = "chapel camera"
- },
-/turf/open/floor/carpet/grimy,
-/area/chapel/main)
"orI" = (
/obj/effect/decal/cleanable/dirt,
/obj/item/radio/intercom{
@@ -67005,12 +67044,6 @@
/mob/living/basic/cockroach,
/turf/open/floor/plating,
/area/maintenance/port)
-"peV" = (
-/obj/structure/table/reinforced,
-/obj/effect/turf_decal/tile/neutral/fourcorners/contrasted,
-/obj/machinery/fax/bridge,
-/turf/open/floor/iron/dark,
-/area/bridge)
"peY" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/door/firedoor,
@@ -68452,12 +68485,6 @@
},
/turf/open/floor/iron,
/area/crew_quarters/bar/atrium)
-"pGA" = (
-/obj/structure/table,
-/obj/item/paper_bin,
-/obj/item/pen,
-/turf/open/floor/iron,
-/area/medical/medbay/lobby)
"pGC" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 1
@@ -68512,6 +68539,21 @@
/obj/machinery/light/small,
/turf/open/floor/iron/freezer,
/area/security/prison)
+"pHp" = (
+/obj/structure/table/reinforced,
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/newscaster{
+ pixel_x = -32
+ },
+/obj/effect/turf_decal/tile/brown/anticorner/contrasted{
+ dir = 1
+ },
+/obj/machinery/fax/cargo,
+/obj/machinery/digital_clock/directional/north,
+/turf/open/floor/iron,
+/area/quartermaster/office)
"pHy" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -70996,13 +71038,6 @@
/obj/effect/turf_decal/tile/neutral/fourcorners/contrasted,
/turf/open/floor/iron,
/area/engine/atmos)
-"qvl" = (
-/obj/structure/chair/fancy/bench/right,
-/obj/effect/turf_decal/tile/red/anticorner/contrasted{
- dir = 8
- },
-/turf/open/floor/iron,
-/area/security/prison)
"qwa" = (
/obj/structure/cable/yellow{
icon_state = "2-8"
@@ -76995,6 +77030,12 @@
/obj/effect/turf_decal/tile/neutral/fourcorners/contrasted,
/turf/open/floor/iron/dark,
/area/storage/tech)
+"swg" = (
+/obj/effect/spawner/randomarcade{
+ dir = 4
+ },
+/turf/open/floor/prison,
+/area/security/prison)
"swh" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -82808,19 +82849,6 @@
},
/turf/open/floor/iron,
/area/security/main)
-"uDx" = (
-/obj/item/radio/intercom{
- pixel_x = 26
- },
-/obj/structure/chair/stool/bar{
- dir = 1
- },
-/obj/effect/turf_decal/tile/red/opposingcorners,
-/obj/effect/turf_decal/tile/yellow/opposingcorners{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/crew_quarters/bar/atrium)
"uDH" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -88085,20 +88113,6 @@
},
/turf/open/floor/iron,
/area/hallway/primary/starboard)
-"wmz" = (
-/obj/structure/table/reinforced,
-/obj/machinery/light{
- dir = 8
- },
-/obj/machinery/newscaster{
- pixel_x = -32
- },
-/obj/effect/turf_decal/tile/brown/anticorner/contrasted{
- dir = 1
- },
-/obj/machinery/fax/cargo,
-/turf/open/floor/iron,
-/area/quartermaster/office)
"wmE" = (
/obj/machinery/airalarm{
dir = 8;
@@ -88948,6 +88962,15 @@
},
/turf/open/floor/iron,
/area/maintenance/aft)
+"wCn" = (
+/obj/structure/noticeboard{
+ desc = "A board for remembering the fallen of the station.";
+ dir = 1;
+ name = "memorial board";
+ pixel_y = -32
+ },
+/turf/open/floor/iron/dark,
+/area/chapel/main)
"wCo" = (
/obj/structure/table/reinforced,
/obj/machinery/recharger,
@@ -94174,6 +94197,15 @@
/obj/effect/turf_decal/tile/neutral/fourcorners/contrasted,
/turf/open/floor/iron/dark,
/area/science/xenobiology)
+"ygO" = (
+/obj/effect/turf_decal/tile/red/half/contrasted{
+ dir = 8
+ },
+/obj/structure/chair/fancy/bench/left{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/security/prison)
"ygX" = (
/obj/item/kirbyplants/random,
/obj/effect/turf_decal/tile/neutral/fourcorners/contrasted,
@@ -118520,7 +118552,7 @@ pvf
bxE
iBx
bzg
-bGl
+nfA
mTm
bGl
bHW
@@ -127307,7 +127339,7 @@ cMY
cMY
cMY
cMY
-xDg
+eUE
fjQ
gPv
cOR
@@ -128634,7 +128666,7 @@ dZR
dZk
dWN
dZk
-ecz
+wCn
dTA
dUu
dTw
@@ -129405,7 +129437,7 @@ vFF
lBG
xfp
hNX
-orD
+ewS
dTA
oes
edS
@@ -132627,7 +132659,7 @@ lrd
erE
aHE
fag
-uDx
+epc
wmE
rOT
rOT
@@ -132739,8 +132771,8 @@ gEI
mIR
xUd
vpZ
-dXN
-dYH
+eQl
+dST
dZp
vpZ
bFn
@@ -133375,8 +133407,8 @@ aaa
aaO
pjz
hPl
-akL
-aaO
+dJC
+abf
bPv
ano
eDD
@@ -134175,7 +134207,7 @@ rkO
hqP
rwP
aFe
-wmz
+pHp
mNG
aXg
poY
@@ -134457,7 +134489,7 @@ bYc
esA
rMZ
yaH
-peV
+aLa
bKH
rdd
mUt
@@ -137324,7 +137356,7 @@ jlI
tUL
ffv
vlB
-pGA
+jId
ats
cjk
pFX
@@ -144747,10 +144779,10 @@ amO
oMz
kMh
vjt
-qvl
+dMg
aFm
hll
-eNB
+swg
mkq
fab
aFm
@@ -145004,7 +145036,7 @@ kkr
uCU
ofj
dLy
-gmT
+ygO
hwA
nZc
ueX
diff --git a/_maps/map_files/EchoStation/EchoStation.dmm b/_maps/map_files/EchoStation/EchoStation.dmm
index 7e48b86fc012e..0163bd4ffc432 100644
--- a/_maps/map_files/EchoStation/EchoStation.dmm
+++ b/_maps/map_files/EchoStation/EchoStation.dmm
@@ -104,6 +104,17 @@
},
/turf/open/floor/iron/tech/grid,
/area/ai_monitored/turret_protected/ai_upload)
+"acj" = (
+/obj/structure/disposalpipe/segment{
+ dir = 8
+ },
+/obj/structure/table,
+/obj/item/kitchen/rollingpin{
+ pixel_x = -6;
+ pixel_y = -1
+ },
+/turf/open/floor/iron/cafeteria,
+/area/crew_quarters/kitchen)
"acC" = (
/obj/machinery/light{
dir = 4
@@ -119,32 +130,6 @@
},
/turf/open/floor/engine,
/area/science/explab)
-"acD" = (
-/obj/machinery/button/door{
- id = "meetingshutter";
- name = "Privacy Shutter Control";
- pixel_x = 26;
- pixel_y = 2
- },
-/obj/structure/filingcabinet{
- pixel_x = 8
- },
-/obj/structure/filingcabinet{
- pixel_x = -8
- },
-/obj/effect/turf_decal/trimline/dark_blue/filled/line{
- dir = 5
- },
-/obj/machinery/light_switch{
- pixel_x = 35;
- pixel_y = 2
- },
-/obj/structure/sign/painting/library{
- pixel_x = 1;
- pixel_y = 29
- },
-/turf/open/floor/iron/dark,
-/area/bridge/meeting_room)
"acU" = (
/obj/machinery/atmospherics/components/unary/portables_connector/visible,
/turf/open/floor/iron/tech,
@@ -172,25 +157,6 @@
/obj/structure/flora/rock,
/turf/open/floor/plating/asteroid/basalt/planetary,
/area/asteroid/paradise)
-"adV" = (
-/obj/structure/table,
-/obj/effect/spawner/lootdrop/maintenance/two,
-/obj/item/paicard,
-/turf/open/floor/plating,
-/area/maintenance/department/chapel)
-"aea" = (
-/obj/effect/turf_decal/tile/neutral/half/contrasted{
- dir = 4
- },
-/obj/structure/chair/fancy/bench{
- layer = 2.5
- },
-/obj/structure/disposalpipe/segment{
- dir = 6
- },
-/obj/machinery/firealarm/directional/north,
-/turf/open/floor/iron,
-/area/security/prison)
"aej" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
/obj/structure/sign/warning/vacuum{
@@ -219,6 +185,13 @@
/obj/effect/turf_decal/delivery,
/turf/open/floor/iron/dark,
/area/science/mixing)
+"aeN" = (
+/obj/effect/landmark/start/cook,
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 4
+ },
+/turf/open/floor/iron/cafeteria,
+/area/crew_quarters/kitchen)
"aeV" = (
/obj/structure/railing/corner{
dir = 1
@@ -237,14 +210,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/turf/open/floor/engine,
/area/science/mixing/chamber)
-"afd" = (
-/obj/structure/flora/rock/pile,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 8
- },
-/turf/open/floor/plating/asteroid/basalt/planetary,
-/area/asteroid/paradise)
"afq" = (
/obj/structure/sign/departments/minsky/engineering/telecommmunications{
pixel_x = -32
@@ -269,6 +234,13 @@
"afw" = (
/turf/closed/wall,
/area/crew_quarters/kitchen)
+"afy" = (
+/obj/item/paicard{
+ pixel_x = 5;
+ pixel_y = 1
+ },
+/turf/open/floor/plating,
+/area/quartermaster/warehouse)
"afA" = (
/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{
dir = 4
@@ -278,16 +250,6 @@
},
/turf/open/floor/iron,
/area/maintenance/department/crew_quarters/dorms)
-"afQ" = (
-/obj/machinery/computer/security/mining,
-/obj/effect/turf_decal/tile/brown/half/contrasted{
- dir = 4
- },
-/obj/structure/window/reinforced{
- dir = 8
- },
-/turf/open/floor/iron,
-/area/bridge)
"agi" = (
/obj/structure/closet/secure_closet/hop,
/obj/item/modular_computer/tablet/pda,
@@ -308,24 +270,6 @@
},
/turf/open/floor/carpet/blue,
/area/crew_quarters/heads/hop)
-"agu" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/machinery/door/poddoor{
- id = "engstorage";
- name = "Engineering Secure Storage Lockdown"
- },
-/obj/machinery/door/firedoor,
-/turf/open/floor/iron/dark,
-/area/engine/engineering)
"agI" = (
/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{
dir = 1
@@ -398,16 +342,6 @@
},
/turf/open/floor/iron,
/area/crew_quarters/heads/hop)
-"ahC" = (
-/obj/structure/lattice/catwalk/over,
-/obj/structure/railing{
- dir = 8
- },
-/obj/structure/closet/firecloset/full,
-/turf/open/openspace,
-/area/hallway/primary/fore{
- name = "-1 Primary Hallway"
- })
"ahQ" = (
/obj/effect/turf_decal/sand/plating,
/obj/effect/turf_decal/stripes/line{
@@ -438,23 +372,6 @@
},
/turf/open/floor/iron/white,
/area/medical/medbay/central)
-"ait" = (
-/obj/structure/railing{
- dir = 5
- },
-/obj/effect/turf_decal/siding/dark{
- dir = 5
- },
-/obj/structure/closet/firecloset/full,
-/obj/effect/turf_decal/bot,
-/obj/item/extinguisher/advanced{
- pixel_x = -1;
- pixel_y = -2
- },
-/turf/open/floor/iron/dark,
-/area/hallway/primary/central{
- name = "-2 Primary Hallway"
- })
"aiv" = (
/obj/structure/table/reinforced,
/obj/item/xenoartifact_labeler{
@@ -517,6 +434,10 @@
},
/turf/open/floor/iron/white,
/area/crew_quarters/fitness/recreation)
+"aiU" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating/asteroid/planetary,
+/area/asteroid/paradise)
"aja" = (
/obj/machinery/computer/cargo/request,
/obj/effect/turf_decal/tile/brown/half/contrasted{
@@ -788,20 +709,6 @@
},
/turf/open/floor/iron/dark,
/area/engine/atmos)
-"amn" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/cable/yellow{
- icon_state = "1-8"
- },
-/obj/structure/disposalpipe/segment{
- dir = 5
- },
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 8
- },
-/turf/open/floor/iron/showroomfloor,
-/area/crew_quarters/cryopods)
"amw" = (
/obj/effect/turf_decal/tile/dark_green/fourcorners/contrasted,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
@@ -893,6 +800,18 @@
},
/turf/open/openspace,
/area/ai_monitored/turret_protected/aisat/maint)
+"aof" = (
+/obj/machinery/atmospherics/components/unary/thermomachine/freezer{
+ dir = 1;
+ initialize_directions = 1
+ },
+/obj/effect/turf_decal/bot,
+/obj/item/radio/intercom{
+ pixel_x = 1;
+ pixel_y = -30
+ },
+/turf/open/floor/iron/tech,
+/area/engine/engineering)
"aog" = (
/obj/structure/extinguisher_cabinet{
pixel_x = 1;
@@ -1281,6 +1200,15 @@
/obj/item/lightreplacer,
/turf/open/floor/carpet/green,
/area/crew_quarters/cafeteria)
+"atE" = (
+/obj/structure/disposalpipe/segment,
+/obj/machinery/firealarm/directional/east,
+/turf/open/floor/iron/dark/side{
+ dir = 4
+ },
+/area/hallway/primary/central{
+ name = "-2 Primary Hallway"
+ })
"aua" = (
/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/toxins_mixing_input,
/obj/machinery/sparker/toxmix{
@@ -1351,6 +1279,15 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/wood,
/area/crew_quarters/dorms)
+"avs" = (
+/obj/structure/flora/ausbushes/fullgrass,
+/obj/machinery/camera/autoname{
+ dir = 8;
+ network = list("ss13","engine")
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4,
+/turf/open/floor/plating/asteroid/basalt/planetary,
+/area/asteroid/paradise)
"avD" = (
/obj/effect/turf_decal/delivery,
/turf/open/floor/plating/airless,
@@ -1413,28 +1350,19 @@
"awE" = (
/turf/closed/wall/r_wall,
/area/ai_monitored/turret_protected/aisat_interior)
-"awV" = (
-/obj/structure/table,
-/obj/item/stock_parts/micro_laser,
-/obj/item/stock_parts/manipulator,
-/obj/item/stock_parts/manipulator,
-/obj/item/stock_parts/manipulator,
-/obj/item/stock_parts/manipulator,
-/obj/item/stock_parts/capacitor,
-/obj/item/stock_parts/micro_laser/high,
-/obj/item/stock_parts/micro_laser/high,
-/obj/item/stock_parts/micro_laser/high,
-/obj/item/stock_parts/micro_laser/high,
-/obj/item/paicard{
- pixel_x = 17;
- pixel_y = 1
- },
-/turf/open/floor/iron/dark,
-/area/engine/atmos)
"axa" = (
/obj/structure/girder,
/turf/open/floor/plating,
/area/maintenance/department/engine)
+"axc" = (
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "Maintenance Hatch";
+ req_one_access_txt = "12;5";
+ security_level = 6
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plating,
+/area/maintenance/department/medical/central)
"axj" = (
/obj/effect/landmark/blobstart,
/turf/open/floor/plating,
@@ -1583,21 +1511,6 @@
},
/turf/open/floor/iron,
/area/maintenance/department/science/xenobiology)
-"azx" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/vending/clothing,
-/obj/effect/turf_decal/bot,
-/obj/structure/disposalpipe/segment{
- dir = 2
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 1
- },
-/turf/open/floor/plating/asteroid/planetary,
-/area/crew_quarters/dorms)
"azy" = (
/obj/structure/table/optable{
pixel_y = 7
@@ -1664,20 +1577,6 @@
},
/turf/open/floor/wood,
/area/hallway/secondary/service)
-"aAb" = (
-/obj/structure/railing{
- dir = 4
- },
-/obj/effect/turf_decal/siding/dark{
- dir = 4
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/hallway/primary/central{
- name = "-2 Primary Hallway"
- })
"aAh" = (
/obj/effect/turf_decal/bot,
/obj/structure/extinguisher_cabinet{
@@ -1862,6 +1761,16 @@
/obj/item/pool/rubber_ring,
/turf/open/floor/plating/beach/water,
/area/asteroid/paradise/surface/water)
+"aDi" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 8
+ },
+/obj/structure/table,
+/obj/machinery/microwave{
+ pixel_y = 5
+ },
+/turf/open/floor/iron/cafeteria,
+/area/crew_quarters/kitchen)
"aDn" = (
/obj/effect/turf_decal/tile/dark_green/fourcorners/contrasted,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
@@ -1898,54 +1807,6 @@
"aEM" = (
/turf/closed/wall/r_wall,
/area/science/server)
-"aEU" = (
-/obj/item/radio/intercom{
- freerange = 1;
- name = "Common Channel";
- pixel_x = 29;
- pixel_y = 6
- },
-/obj/item/radio/intercom{
- freerange = 1;
- listening = 0;
- name = "Custom Channel";
- pixel_x = 29;
- pixel_y = 35
- },
-/obj/item/radio/intercom{
- freerange = 1;
- frequency = 1447;
- name = "Private Channel";
- pixel_x = 29;
- pixel_y = 20
- },
-/obj/effect/landmark/start/ai,
-/obj/machinery/button/door{
- id = "AI Chamber entrance shutters";
- name = "AI Chamber Lockdown";
- pixel_x = -25;
- pixel_y = 8;
- req_access_txt = "16"
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/button/door{
- id = "AIwindows";
- name = "AI View Blast doors";
- pixel_x = -38;
- pixel_y = 8;
- req_access_txt = "19"
- },
-/obj/machinery/button/door{
- id = "AI Core shutters";
- name = "AI Core Shutters Toggle";
- pixel_x = -38;
- pixel_y = -3;
- req_access_txt = "16"
- },
-/turf/open/floor/circuit/red,
-/area/ai_monitored/turret_protected/ai)
"aFj" = (
/obj/machinery/door/airlock/research/glass/incinerator/toxmix_exterior,
/obj/effect/mapping_helpers/airlock/locked,
@@ -1967,24 +1828,6 @@
/obj/machinery/door/firedoor,
/turf/open/floor/plating,
/area/science/xenobiology)
-"aFA" = (
-/obj/structure/railing/corner{
- dir = 4
- },
-/obj/effect/turf_decal/siding/dark/corner{
- dir = 4
- },
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/turf/open/floor/iron/dark/corner{
- dir = 4
- },
-/area/hallway/primary/central{
- name = "-2 Primary Hallway"
- })
"aFL" = (
/obj/effect/turf_decal/tile/dark_red/fourcorners/contrasted{
alpha = 180;
@@ -2043,13 +1886,6 @@
/obj/effect/spawner/lootdrop/maintenance/two,
/turf/open/floor/iron,
/area/maintenance/department/science/central)
-"aFW" = (
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/obj/machinery/deepfryer,
-/turf/open/floor/iron/cafeteria,
-/area/crew_quarters/kitchen)
"aGd" = (
/obj/structure/stairs{
dir = 4
@@ -2170,20 +2006,6 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/closed/wall,
/area/maintenance/department/chapel)
-"aIQ" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/stripes/line{
- dir = 6
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/power/rad_collector,
-/turf/open/floor/iron/dark,
-/area/engine/engineering)
"aIR" = (
/obj/structure/flora/grass/jungle/b,
/obj/structure/flora/ausbushes/fullgrass,
@@ -2194,11 +2016,6 @@
},
/turf/open/floor/grass/no_border,
/area/bridge)
-"aJb" = (
-/obj/structure/table,
-/obj/item/paicard,
-/turf/open/floor/iron/dark,
-/area/maintenance/department/crew_quarters/dorms)
"aJe" = (
/obj/machinery/atmospherics/pipe/manifold/general/visible{
dir = 4
@@ -2293,6 +2110,17 @@
},
/turf/open/floor/iron/tech,
/area/science/mixing/chamber)
+"aJD" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/power/apc/auto_name/north{
+ pixel_y = 24
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-4"
+ },
+/obj/effect/turf_decal/numbers/two_nine,
+/turf/open/floor/iron,
+/area/maintenance/department/cargo)
"aJO" = (
/obj/item/radio/intercom{
pixel_x = -1;
@@ -2355,19 +2183,6 @@
/obj/effect/turf_decal/delivery,
/turf/open/floor/engine,
/area/science/explab)
-"aKB" = (
-/obj/machinery/door/airlock/security/glass{
- id_tag = "outerbrig";
- name = "Brig";
- req_access_txt = "2"
- },
-/obj/effect/mapping_helpers/airlock/cyclelink_helper{
- dir = 1
- },
-/obj/effect/turf_decal/stripes/closeup,
-/obj/machinery/door/firedoor,
-/turf/open/floor/prison/dark,
-/area/security/prison)
"aKC" = (
/obj/structure/dresser,
/obj/item/camera{
@@ -2397,24 +2212,6 @@
/obj/effect/landmark/start/botanist,
/turf/open/floor/iron,
/area/hydroponics)
-"aKI" = (
-/obj/effect/turf_decal/trimline/dark/warning{
- dir = 4
- },
-/obj/effect/turf_decal/siding/dark{
- dir = 4
- },
-/obj/effect/turf_decal/siding/dark{
- dir = 8
- },
-/obj/item/radio/intercom{
- pixel_x = -32;
- pixel_y = -3
- },
-/turf/open/floor/iron/dark,
-/area/engineering/hallway{
- name = "Engineering Viewing Platform"
- })
"aLc" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
@@ -2682,6 +2479,17 @@
/obj/effect/spawner/room/fivexfour,
/turf/open/floor/plating,
/area/maintenance/department/science/central)
+"aQs" = (
+/obj/structure/reflector/box{
+ anchored = 1;
+ dir = 1
+ },
+/obj/effect/turf_decal/sand/plating,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plating/asteroid/planetary,
+/area/asteroid/paradise)
"aQv" = (
/obj/effect/turf_decal/sand/plating,
/turf/open/floor/plating/beach/sand,
@@ -2877,10 +2685,24 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/carpet/orange,
/area/crew_quarters/dorms)
+"aSF" = (
+/obj/effect/decal/cleanable/cobweb,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/asteroid/planetary,
+/area/asteroid/paradise)
"aSN" = (
/obj/structure/sign/warning/nosmoking,
/turf/closed/wall,
/area/medical/surgery)
+"aST" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/open/floor/plating/asteroid/basalt/planetary,
+/area/asteroid/paradise)
"aSX" = (
/turf/closed/wall,
/area/crew_quarters/heads/hor)
@@ -2912,6 +2734,21 @@
/obj/effect/landmark/start/security_officer,
/turf/open/floor/iron/dark,
/area/security/brig)
+"aUc" = (
+/obj/effect/turf_decal/tile/blue/half/contrasted{
+ dir = 8
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/iron/white,
+/area/medical/medbay/central)
"aUf" = (
/obj/effect/turf_decal/stripes/line{
dir = 9
@@ -3010,6 +2847,22 @@
},
/turf/open/floor/iron/dark,
/area/security/detectives_office)
+"aVM" = (
+/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{
+ dir = 4
+ },
+/obj/structure/table/reinforced,
+/obj/item/paper_bin{
+ pixel_x = -5;
+ pixel_y = 5
+ },
+/obj/item/book/manual/wiki/security_space_law{
+ pixel_x = 7;
+ pixel_y = 6
+ },
+/obj/machinery/digital_clock/directional/north,
+/turf/open/floor/iron,
+/area/security/brig)
"aVS" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/closet/firecloset/full,
@@ -3020,6 +2873,13 @@
/obj/effect/spawner/lootdrop/maintenance/two,
/turf/open/floor/plating,
/area/maintenance/department/crew_quarters/dorms)
+"aWb" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/obj/effect/landmark/start/cook,
+/turf/open/floor/iron/cafeteria,
+/area/crew_quarters/kitchen)
"aWm" = (
/obj/effect/turf_decal/tile/purple/fourcorners/contrasted,
/obj/effect/decal/cleanable/dirt/dust,
@@ -3034,6 +2894,24 @@
},
/turf/open/floor/iron/white,
/area/science/lab)
+"aWp" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/dark{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/iron/dark/side{
+ dir = 4
+ },
+/area/hallway/primary/central{
+ name = "-2 Primary Hallway"
+ })
"aWy" = (
/obj/effect/turf_decal/siding/wideplating/dark{
dir = 5
@@ -3054,6 +2932,16 @@
},
/turf/open/floor/iron,
/area/maintenance/department/eva)
+"aXp" = (
+/obj/effect/turf_decal/sand/plating,
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/power/port_gen/pacman,
+/turf/open/floor/iron,
+/area/hallway/primary/fore{
+ name = "-1 Primary Hallway"
+ })
"aXq" = (
/obj/structure/cable/yellow{
icon_state = "1-2"
@@ -3081,12 +2969,6 @@
},
/turf/open/floor/plating,
/area/ai_monitored/turret_protected/ai)
-"aXZ" = (
-/obj/structure/flora/ausbushes/ywflowers,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating/asteroid/planetary,
-/area/asteroid/paradise)
"aYa" = (
/obj/effect/spawner/lootdrop/grille_or_trash,
/turf/open/floor/plating,
@@ -3231,20 +3113,6 @@
},
/turf/open/floor/iron/tech,
/area/engine/engineering)
-"bcT" = (
-/obj/structure/chair/stool/bar{
- dir = 8
- },
-/obj/structure/disposalpipe/segment{
- dir = 8
- },
-/obj/item/radio/intercom{
- dir = 1;
- pixel_x = 1;
- pixel_y = -35
- },
-/turf/open/floor/iron/cafeteria_red,
-/area/crew_quarters/cafeteria)
"bdh" = (
/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{
dir = 4
@@ -3322,6 +3190,10 @@
/area/hallway/primary/central{
name = "-2 Primary Hallway"
})
+"bfz" = (
+/obj/structure/spider/stickyweb,
+/turf/open/floor/plating/asteroid/planetary,
+/area/asteroid/paradise)
"bfI" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -3363,6 +3235,21 @@
dir = 10
},
/area/asteroid/paradise/surface/water)
+"bgu" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/disposal/bin,
+/obj/effect/turf_decal/bot,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/obj/item/radio/intercom{
+ dir = 1;
+ pixel_x = 29;
+ pixel_y = -3
+ },
+/turf/open/floor/iron/white,
+/area/crew_quarters/fitness/recreation)
"bgS" = (
/turf/closed/wall,
/area/security/prison/shielded)
@@ -3386,29 +3273,25 @@
/area/engineering/hallway{
name = "Engineering Viewing Platform"
})
-"bhE" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/grille_or_trash,
-/turf/open/floor/iron,
-/area/maintenance/department/science/xenobiology)
-"bhN" = (
-/obj/structure/cable{
- icon_state = "1-2"
+"bhy" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
},
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/disposalpipe/segment{
- dir = 2
+/obj/machinery/rnd/production/techfab/department/cargo,
+/obj/machinery/power/apc/auto_name/east,
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
},
-/obj/effect/turf_decal/tile/neutral/half/contrasted{
+/obj/machinery/light{
dir = 4
},
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 2;
- name = "Atmos to Loop"
- },
-/obj/effect/turf_decal/delivery,
+/turf/open/floor/iron/dark,
+/area/quartermaster/storage)
+"bhE" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/spawner/lootdrop/grille_or_trash,
/turf/open/floor/iron,
-/area/engine/engineering)
+/area/maintenance/department/science/xenobiology)
"bhX" = (
/obj/machinery/door/firedoor,
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
@@ -3462,44 +3345,6 @@
/obj/structure/sign/warning/radiation/rad_area,
/turf/closed/wall/r_wall/rust,
/area/engine/engineering)
-"biX" = (
-/obj/machinery/turretid{
- control_area = "/area/ai_monitored/turret_protected/ai";
- icon_state = "control_stun";
- name = "AI Chamber turret control";
- pixel_x = -1;
- pixel_y = 33
- },
-/obj/machinery/light/small{
- dir = 1
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/camera/autoname{
- dir = 6;
- network = list("aiupload")
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/turf/open/floor/iron/tech/grid,
-/area/ai_monitored/turret_protected/aisat_interior)
-"bja" = (
-/obj/effect/turf_decal/siding/white{
- alpha = 100
- },
-/obj/structure/flora/ausbushes/ywflowers,
-/obj/machinery/light{
- dir = 1
- },
-/obj/item/radio/intercom{
- dir = 1;
- pixel_x = 1;
- pixel_y = 26
- },
-/turf/open/floor/plating/asteroid/planetary,
-/area/crew_quarters/dorms)
"bjl" = (
/obj/effect/turf_decal/stripes/line,
/obj/effect/turf_decal/tile/neutral/half/contrasted{
@@ -3623,24 +3468,6 @@
/obj/structure/sign/departments/minsky/security/command,
/turf/closed/wall/r_wall,
/area/bridge/meeting_room)
-"bns" = (
-/obj/structure/railing{
- dir = 4
- },
-/obj/effect/turf_decal/siding/dark{
- dir = 4
- },
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/iron/dark/side{
- dir = 4
- },
-/area/hallway/primary/central{
- name = "-2 Primary Hallway"
- })
"bnW" = (
/obj/structure/table/reinforced,
/obj/item/storage/box/flashbangs{
@@ -3731,20 +3558,6 @@
/obj/item/pool/pool_noodle,
/turf/open/floor/iron/white,
/area/crew_quarters/fitness/recreation)
-"boR" = (
-/obj/machinery/door/airlock/maintenance_hatch{
- name = "Maintenance Hatch";
- req_access_txt = "32"
- },
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/effect/turf_decal/stripes/closeup{
- dir = 1
- },
-/obj/machinery/door/firedoor,
-/turf/open/floor/plating,
-/area/maintenance/department/engine)
"boV" = (
/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
dir = 8
@@ -3773,60 +3586,12 @@
/area/hallway/primary/fore{
name = "-1 Primary Hallway"
})
-"bpq" = (
-/obj/structure/railing/corner{
- dir = 4
- },
-/turf/open/openspace,
-/area/hydroponics)
"bpM" = (
/obj/structure/sink/kitchen{
pixel_y = 28
},
/turf/open/floor/plating,
/area/maintenance/department/chapel)
-"bpT" = (
-/obj/structure/table/reinforced,
-/obj/item/clipboard{
- pixel_x = -5;
- pixel_y = 3
- },
-/obj/item/paper/monitorkey{
- pixel_x = -5;
- pixel_y = 3
- },
-/obj/item/folder/yellow,
-/obj/item/toy/figure/ce{
- pixel_x = 8;
- pixel_y = 4
- },
-/obj/item/stamp/chief_engineer{
- pixel_x = -5;
- pixel_y = 5
- },
-/obj/effect/turf_decal/siding/wideplating/dark{
- dir = 5
- },
-/obj/machinery/camera/autoname{
- dir = 8;
- network = list("ss13","engine")
- },
-/obj/machinery/requests_console{
- announcementConsole = 1;
- department = "Chief Engineer's Desk";
- departmentType = 4;
- name = "Chief Engineer RC";
- pixel_x = 32;
- pixel_y = 31
- },
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
-/obj/structure/cable/yellow{
- icon_state = "0-2"
- },
-/turf/open/floor/carpet/royalblue,
-/area/crew_quarters/heads/chief)
"bqg" = (
/obj/effect/turf_decal/sand/plating,
/obj/effect/decal/cleanable/dirt/dust,
@@ -3889,6 +3654,19 @@
/obj/machinery/door/firedoor,
/turf/open/floor/iron/white,
/area/medical/medbay/central)
+"bqq" = (
+/obj/machinery/door/airlock/hatch{
+ name = "MiniSat Access";
+ req_one_access_txt = "32;19"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/layer_manifold,
+/obj/effect/turf_decal/stripes/closeup,
+/obj/machinery/door/firedoor,
+/turf/open/floor/iron/tech/grid,
+/area/ai_monitored/turret_protected/aisat_interior)
"bqy" = (
/obj/item/kirbyplants/random,
/obj/structure/extinguisher_cabinet{
@@ -3957,26 +3735,6 @@
},
/turf/open/floor/iron,
/area/security/brig)
-"btq" = (
-/obj/machinery/light,
-/obj/machinery/firealarm/directional/south,
-/obj/structure/disposalpipe/segment{
- dir = 8
- },
-/obj/structure/table,
-/obj/item/food/dough{
- pixel_x = 4
- },
-/obj/item/food/dough{
- pixel_y = 2;
- pixel_x = 9
- },
-/obj/item/reagent_containers/food/condiment/enzyme{
- pixel_x = -5;
- pixel_y = 9
- },
-/turf/open/floor/iron/cafeteria,
-/area/crew_quarters/kitchen)
"btw" = (
/obj/effect/decal/cleanable/dirt/dust,
/turf/closed/wall,
@@ -4024,23 +3782,6 @@
},
/turf/open/floor/wood,
/area/crew_quarters/heads/captain)
-"btU" = (
-/obj/item/radio/intercom{
- dir = 1;
- pixel_x = -31;
- pixel_y = -3
- },
-/obj/machinery/light{
- dir = 8
- },
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 1
- },
-/turf/open/floor/iron/dark,
-/area/science/server)
"bum" = (
/obj/effect/turf_decal/siding/wood{
dir = 9
@@ -4189,10 +3930,31 @@
/obj/structure/lattice,
/turf/open/openspace,
/area/maintenance/department/crew_quarters/bar)
+"bxD" = (
+/obj/effect/turf_decal/tile/neutral/half/contrasted{
+ dir = 8
+ },
+/obj/structure/table,
+/obj/item/flashlight/flare{
+ pixel_x = 4;
+ pixel_y = 5
+ },
+/obj/item/extinguisher/advanced{
+ pixel_x = -8;
+ pixel_y = 2
+ },
+/turf/open/floor/iron,
+/area/engine/atmos)
"bxE" = (
/obj/structure/railing/corner,
/turf/open/floor/iron/sepia,
/area/quartermaster/storage)
+"bxR" = (
+/obj/structure/flora/ausbushes/lavendergrass,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating/asteroid/planetary,
+/area/asteroid/paradise)
"bxZ" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/space_heater,
@@ -4359,6 +4121,11 @@
/obj/structure/railing/corner,
/turf/open/floor/iron/techmaint/planetary,
/area/asteroid/paradise/surface)
+"bBQ" = (
+/obj/effect/turf_decal/sand/plating,
+/obj/structure/flora/rock,
+/turf/open/floor/plating/asteroid/basalt/planetary,
+/area/asteroid/paradise)
"bCq" = (
/obj/machinery/door/window/brigdoor/southright{
dir = 4;
@@ -4380,21 +4147,6 @@
/obj/effect/spawner/room/fivexthree,
/turf/open/floor/plating,
/area/ai_monitored/turret_protected/aisat/maint)
-"bCL" = (
-/obj/item/storage/secure/safe{
- pixel_x = 37;
- pixel_y = 1
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/camera/autoname,
-/obj/item/radio/intercom{
- dir = 1;
- pixel_y = 29
- },
-/turf/open/floor/iron,
-/area/hallway/primary/fore{
- name = "-1 Primary Hallway"
- })
"bCM" = (
/obj/machinery/door/airlock/maintenance_hatch{
name = "Maintenance Hatch";
@@ -4484,22 +4236,14 @@
"bEo" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/cable/yellow{
- icon_state = "2-4"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 6
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 6
- },
-/obj/machinery/power/apc/auto_name/north{
- pixel_y = 24
+ icon_state = "4-8"
},
-/obj/structure/cable/yellow{
- icon_state = "0-2"
+/obj/structure/disposalpipe/segment{
+ dir = 4
},
-/turf/open/floor/plating,
-/area/maintenance/department/medical/morgue)
+/obj/effect/turf_decal/numbers/two_nine,
+/turf/open/floor/iron,
+/area/maintenance/department/science/xenobiology)
"bEu" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/cable/yellow{
@@ -4544,39 +4288,27 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/iron/dark,
/area/engine/engineering)
-"bFJ" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/cable/yellow{
- icon_state = "1-32"
- },
-/obj/effect/turf_decal/trimline/yellow,
-/obj/structure/closet/emcloset/anchored,
-/obj/structure/lattice/catwalk/over,
-/turf/open/openspace,
-/area/maintenance/department/engine/atmos)
"bFY" = (
/obj/machinery/atmospherics/miner/station/n2o,
/obj/machinery/atmospherics/pipe/simple/green/hidden,
/turf/open/floor/engine/n2o,
/area/engine/atmos)
-"bGr" = (
-/obj/structure/table/reinforced,
-/obj/structure/desk_bell{
- pixel_x = -8;
- pixel_y = 9
+"bGl" = (
+/obj/machinery/power/compressor{
+ comp_id = "incineratorturbineLeft";
+ dir = 1;
+ luminosity = 2
},
-/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{
- dir = 1
+/obj/structure/cable{
+ icon_state = "0-2"
},
-/obj/machinery/airalarm/directional/north,
-/obj/item/paicard{
- pixel_x = 5;
- pixel_y = 1
+/obj/structure/cable,
+/obj/machinery/camera/autoname{
+ dir = 4;
+ network = list("ss13, engine")
},
-/turf/open/floor/iron/dark,
-/area/hallway/primary/fore{
- name = "-1 Primary Hallway"
- })
+/turf/open/floor/engine/vacuum,
+/area/maintenance/disposal/incinerator)
"bGD" = (
/obj/effect/turf_decal/sand/plating,
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
@@ -4746,16 +4478,6 @@
},
/turf/open/floor/engine/n2,
/area/engine/atmos)
-"bKr" = (
-/obj/structure/reflector/box{
- anchored = 1;
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 9
- },
-/turf/open/floor/plating/asteroid/planetary,
-/area/asteroid/paradise)
"bKy" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable/yellow{
@@ -4786,21 +4508,6 @@
},
/turf/open/floor/prison,
/area/security/prison)
-"bLd" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/effect/turf_decal/tile/purple/half/contrasted{
- dir = 4
- },
-/obj/effect/turf_decal/numbers/two_nine{
- dir = 2;
- pixel_y = 17
- },
-/turf/open/floor/iron/white/side{
- dir = 1
- },
-/area/science/research)
"bLn" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -4810,6 +4517,20 @@
/area/hallway/primary/fore{
name = "-1 Primary Hallway"
})
+"bLZ" = (
+/obj/effect/turf_decal/siding/white{
+ alpha = 100
+ },
+/obj/effect/turf_decal/bot,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/machinery/digital_clock/directional/east,
+/turf/open/floor/iron/white,
+/area/crew_quarters/fitness/recreation)
"bMd" = (
/obj/effect/decal/cleanable/shreds,
/turf/open/floor/plating/airless,
@@ -4987,11 +4708,6 @@
dir = 4
},
/area/science/research)
-"bOu" = (
-/obj/structure/flora/rock/pile,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4,
-/turf/open/floor/plating/asteroid/basalt/planetary,
-/area/asteroid/paradise)
"bPb" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/tile/purple,
@@ -5045,6 +4761,31 @@
},
/turf/open/floor/iron/dark,
/area/engine/engineering)
+"bRk" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/power/smes,
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/obj/item/radio/intercom{
+ pixel_x = 33;
+ pixel_y = -2
+ },
+/turf/open/floor/iron,
+/area/maintenance/disposal/incinerator)
+"bSm" = (
+/obj/item/radio/intercom{
+ broadcasting = 1;
+ canhear_range = 6;
+ dir = 8;
+ name = "Station Intercom (Court)";
+ pixel_x = 33;
+ pixel_y = -4
+ },
+/turf/open/floor/plating,
+/area/vacant_room/office)
"bSF" = (
/obj/machinery/meter{
target_layer = 4
@@ -5100,22 +4841,6 @@
dir = 1
},
/area/asteroid/paradise/surface/water)
-"bTy" = (
-/obj/effect/decal/cleanable/food/flour,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 1
- },
-/obj/structure/disposalpipe/segment{
- dir = 8
- },
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/turf/open/floor/iron/cafeteria,
-/area/crew_quarters/kitchen)
"bTY" = (
/obj/machinery/power/emitter/welded,
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
@@ -5153,6 +4878,15 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/turf/open/floor/wood,
/area/crew_quarters/cafeteria)
+"bUT" = (
+/obj/structure/sign/directions/supply{
+ dir = 8;
+ pixel_y = 10
+ },
+/turf/closed/wall,
+/area/hallway/primary/aft{
+ name = "-3 Primary Hallway"
+ })
"bVa" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -5160,6 +4894,33 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/maintenance/department/bridge)
+"bVi" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/red/half/contrasted{
+ alpha = 180;
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/hallway/primary/central{
+ name = "-2 Primary Hallway"
+ })
+"bVS" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/obj/effect/spawner/randomarcade{
+ dir = 1
+ },
+/obj/structure/railing,
+/obj/effect/turf_decal/siding/white,
+/obj/machinery/firealarm/directional/west,
+/turf/open/floor/carpet/green,
+/area/crew_quarters/cafeteria)
"bVU" = (
/obj/effect/spawner/room/tenxfive,
/turf/open/floor/plating,
@@ -5262,13 +5023,6 @@
},
/turf/open/floor/plating,
/area/hydroponics)
-"bYW" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 8
- },
-/obj/effect/landmark/start/cook,
-/turf/open/floor/iron/cafeteria,
-/area/crew_quarters/kitchen)
"bZe" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable/yellow{
@@ -5280,11 +5034,12 @@
},
/turf/open/floor/plating,
/area/crew_quarters/heads/hor)
-"bZw" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/item/paicard,
-/turf/open/floor/iron,
-/area/maintenance/department/medical/central)
+"bZl" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 8
+ },
+/turf/open/floor/iron/tech/grid,
+/area/ai_monitored/turret_protected/aisat_interior)
"bZH" = (
/obj/effect/turf_decal/siding/wood{
dir = 5
@@ -5358,6 +5113,19 @@
/obj/effect/spawner/lootdrop/maintenance/two,
/turf/open/floor/plating,
/area/maintenance/department/crew_quarters/dorms)
+"cbl" = (
+/obj/machinery/camera/autoname,
+/obj/effect/turf_decal/tile/purple/half/contrasted{
+ dir = 4
+ },
+/obj/item/radio/intercom{
+ dir = 1;
+ pixel_x = 1;
+ pixel_y = 23
+ },
+/obj/structure/reagent_dispensers/watertank,
+/turf/open/floor/iron,
+/area/janitor)
"cbm" = (
/turf/closed/mineral/random/air,
/area/quartermaster/storage)
@@ -5393,11 +5161,6 @@
/obj/effect/turf_decal/stripes/closeup,
/turf/open/floor/plating,
/area/crew_quarters/heads/captain)
-"ccq" = (
-/obj/structure/flora/ausbushes/ywflowers,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating/asteroid/planetary,
-/area/asteroid/paradise)
"cdq" = (
/obj/structure/window/plasma/reinforced{
dir = 4
@@ -5451,16 +5214,6 @@
/area/hallway/primary/fore{
name = "-1 Primary Hallway"
})
-"cej" = (
-/obj/effect/turf_decal/siding/white{
- dir = 8
- },
-/obj/structure/table,
-/obj/machinery/microwave{
- pixel_y = 5
- },
-/turf/open/floor/iron/cafeteria,
-/area/crew_quarters/kitchen)
"cel" = (
/obj/effect/turf_decal/stripes/line,
/obj/machinery/power/apc/auto_name/west{
@@ -5549,13 +5302,13 @@
},
/turf/open/floor/iron/dark,
/area/quartermaster/storage)
-"chk" = (
-/obj/structure/railing{
- dir = 4
- },
-/obj/structure/lattice,
-/turf/open/openspace,
-/area/maintenance/department/security/brig)
+"cfw" = (
+/obj/structure/stairs,
+/obj/machinery/firealarm/directional/west,
+/turf/open/floor/pod/dark,
+/area/hallway/primary/fore{
+ name = "-1 Primary Hallway"
+ })
"chG" = (
/turf/open/floor/plating/beach/coastline_b{
dir = 8
@@ -5585,24 +5338,6 @@
/obj/structure/sign/poster/random,
/turf/closed/wall,
/area/storage/primary)
-"ciC" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible{
- dir = 5
- },
-/obj/structure/table,
-/obj/effect/turf_decal/tile/yellow/fourcorners/contrasted{
- alpha = 230;
- color = "#edaa0c"
- },
-/obj/item/clothing/gloves/color/black,
-/obj/effect/decal/cleanable/dirt,
-/obj/item/clothing/gloves/color/black{
- pixel_x = 3;
- pixel_y = 7
- },
-/obj/machinery/firealarm/directional/south,
-/turf/open/floor/iron,
-/area/engine/atmos)
"ciD" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/spawner/lootdrop/maintenance/two,
@@ -5621,12 +5356,6 @@
},
/turf/open/floor/plating/asteroid/planetary,
/area/crew_quarters/dorms)
-"cjE" = (
-/obj/effect/turf_decal/sand/plating,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/plating/asteroid/basalt/planetary,
-/area/asteroid/paradise)
"cjG" = (
/obj/structure/chair/fancy/sofa/old/right{
dir = 4
@@ -5947,6 +5676,16 @@
},
/turf/open/floor/iron/dark,
/area/ai_monitored/turret_protected/ai_upload)
+"crU" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/mob/living/simple_animal/pet/cat{
+ desc = "He demands you let him sleep";
+ name = "Sir Fluffington McWhiskerface the Third, Esquire, Purveyor of Mischief and Master of Naps"
+ },
+/turf/open/floor/wood,
+/area/asteroid/paradise/surface)
"crW" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -6085,20 +5824,6 @@
},
/turf/open/floor/iron/dark,
/area/engine/engineering)
-"cwj" = (
-/obj/effect/turf_decal/siding/wideplating/dark{
- dir = 1
- },
-/obj/structure/bed/dogbed/runtime,
-/mob/living/simple_animal/pet/cat/Runtime{
- pixel_y = 4
- },
-/obj/item/toy/plush/runtime{
- pixel_x = -6;
- pixel_y = 1
- },
-/turf/open/floor/carpet/blue,
-/area/crew_quarters/heads/cmo)
"cwk" = (
/obj/effect/turf_decal/siding/dark/corner,
/obj/effect/turf_decal/trimline/yellow/corner{
@@ -6246,6 +5971,13 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/wood,
/area/crew_quarters/dorms)
+"czn" = (
+/obj/machinery/door/firedoor,
+/obj/structure/railing{
+ dir = 4
+ },
+/turf/open/openspace,
+/area/maintenance/department/medical/central)
"czv" = (
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/iron/dark,
@@ -6300,15 +6032,15 @@
},
/turf/open/floor/carpet/red,
/area/medical/exam_room)
-"cAV" = (
-/obj/machinery/chem_dispenser/drinks/beer,
-/obj/structure/table,
-/obj/effect/turf_decal/tile/bar/opposingcorners,
-/obj/machinery/airalarm{
- pixel_y = 28
+"cAy" = (
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/machinery/light/small{
+ dir = 4
},
-/turf/open/floor/iron/dark,
-/area/crew_quarters/kitchen)
+/obj/item/paicard,
+/turf/open/floor/plating,
+/area/hallway/secondary/service)
"cBs" = (
/obj/machinery/holopad,
/obj/effect/turf_decal/stripes/line,
@@ -6333,11 +6065,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/science/central)
-"cBT" = (
-/obj/structure/flora/rock/pile,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating/asteroid/planetary,
-/area/asteroid/paradise)
"cCz" = (
/obj/structure/sign/departments/minsky/security/security,
/turf/closed/wall/r_wall,
@@ -6347,6 +6074,15 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/wood,
/area/crew_quarters/heads/captain)
+"cDv" = (
+/obj/structure/table/wood,
+/obj/item/screwdriver,
+/obj/item/hatchet,
+/obj/item/paicard,
+/turf/open/floor/iron,
+/area/hallway/primary/fore{
+ name = "-1 Primary Hallway"
+ })
"cDx" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
@@ -6500,6 +6236,24 @@
/obj/effect/turf_decal/siding/wideplating/dark,
/turf/open/floor/carpet/blue,
/area/bridge/meeting_room)
+"cFN" = (
+/obj/structure/table,
+/obj/item/stock_parts/micro_laser,
+/obj/item/stock_parts/manipulator,
+/obj/item/stock_parts/manipulator,
+/obj/item/stock_parts/manipulator,
+/obj/item/stock_parts/manipulator,
+/obj/item/stock_parts/capacitor,
+/obj/item/stock_parts/micro_laser/high,
+/obj/item/stock_parts/micro_laser/high,
+/obj/item/stock_parts/micro_laser/high,
+/obj/item/stock_parts/micro_laser/high,
+/obj/item/paicard{
+ pixel_x = 17;
+ pixel_y = 1
+ },
+/turf/open/floor/iron/dark,
+/area/engine/atmos)
"cFP" = (
/obj/structure/flora/grass/jungle,
/turf/open/floor/plating/asteroid/basalt/planetary,
@@ -6588,6 +6342,12 @@
},
/turf/open/floor/iron,
/area/maintenance/department/crew_quarters/dorms)
+"cJm" = (
+/obj/machinery/camera/autoname{
+ network = list("ss13","rd")
+ },
+/turf/open/openspace,
+/area/science/explab)
"cJP" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/door/airlock/engineering{
@@ -6612,6 +6372,14 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/iron,
/area/maintenance/department/crew_quarters/dorms)
+"cJR" = (
+/obj/machinery/firealarm/directional/east,
+/turf/open/floor/iron/dark/side{
+ dir = 4
+ },
+/area/hallway/primary/central{
+ name = "-2 Primary Hallway"
+ })
"cKi" = (
/obj/structure/table/reinforced,
/obj/item/aiModule/supplied/freeform,
@@ -6772,6 +6540,20 @@
},
/turf/open/floor/plating/dirt/planetary,
/area/asteroid/paradise/surface)
+"cPh" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/iron,
+/area/hallway/primary/central{
+ name = "-2 Primary Hallway"
+ })
+"cPw" = (
+/obj/machinery/firealarm/directional/east,
+/turf/open/floor/plating,
+/area/maintenance/department/medical/central)
"cQe" = (
/obj/structure/stairs{
dir = 8
@@ -6824,6 +6606,40 @@
},
/turf/open/floor/iron,
/area/security/brig)
+"cRw" = (
+/obj/effect/mapping_helpers/airlock/unres{
+ dir = 8
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue/half/contrasted{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{
+ cycle_id = "medbay"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/machinery/door/airlock/medical/glass{
+ emergency = 1;
+ id_tag = "MedbayFoyer";
+ name = "Medbay";
+ req_one_access_txt = "5"
+ },
+/turf/open/floor/iron/white,
+/area/medical/medbay/central)
"cSb" = (
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
@@ -7031,66 +6847,28 @@
"cXI" = (
/turf/open/floor/iron,
/area/maintenance/department/eva)
-"cXQ" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/decal/cleanable/oil/slippery,
-/turf/open/floor/plating/airless,
-/area/science/mixing)
-"cYs" = (
-/obj/effect/turf_decal/tile/dark_blue/fourcorners/contrasted{
- alpha = 180
- },
-/obj/effect/turf_decal/loading_area{
- dir = 4;
- pixel_y = -1
- },
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "hopqueue";
- name = "HoP Queue Shutters"
- },
-/obj/structure/railing/corner{
- dir = 8
- },
-/obj/machinery/button/door{
- id = "hopqueue";
- name = "Queue Shutter Control";
- pixel_y = -36;
- req_access_txt = "57"
- },
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
+"cXJ" = (
/obj/item/radio/intercom{
dir = 1;
- pixel_x = 1;
- pixel_y = -27
- },
-/turf/open/floor/iron,
-/area/hallway/primary/fore{
- name = "-1 Primary Hallway"
- })
-"cYy" = (
-/obj/structure/disposalpipe/segment{
- dir = 10
- },
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 1
+ pixel_x = -31;
+ pixel_y = -3
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 8
+/turf/open/floor/plating/beach/sand,
+/area/asteroid/paradise/surface/sand)
+"cXM" = (
+/obj/effect/turf_decal/tile/neutral/half/contrasted{
+ dir = 4
},
+/obj/structure/table,
+/obj/item/pickaxe,
+/obj/machinery/firealarm/directional/north,
/turf/open/floor/iron,
-/area/quartermaster/sorting)
-"cYG" = (
-/obj/machinery/camera/autoname{
- dir = 2;
- network = list("ss13","rd")
- },
-/turf/open/openspace,
-/area/science/explab)
+/area/engine/atmos)
+"cXQ" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/oil/slippery,
+/turf/open/floor/plating/airless,
+/area/science/mixing)
"cYK" = (
/obj/effect/turf_decal/tile/black/opposingcorners{
dir = 1
@@ -7172,15 +6950,6 @@
"dbm" = (
/turf/open/floor/engine,
/area/engine/supermatter)
-"dbB" = (
-/obj/machinery/door/airlock/maintenance_hatch{
- name = "Maintenance Hatch";
- req_one_access_txt = "63;34"
- },
-/obj/effect/turf_decal/stripes/closeup,
-/obj/machinery/door/firedoor,
-/turf/open/floor/plating,
-/area/security/brig)
"dbD" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -7191,44 +6960,10 @@
/obj/structure/flora/grass/jungle,
/turf/open/floor/plating/asteroid/planetary,
/area/asteroid/paradise)
-"dca" = (
-/obj/effect/turf_decal/siding/wideplating/dark{
- dir = 6
- },
-/obj/structure/dresser,
-/obj/item/candle{
- pixel_x = 6;
- pixel_y = 12
- },
-/obj/item/radio/intercom{
- pixel_y = -29
- },
-/turf/open/floor/carpet/orange,
-/area/quartermaster/qm)
-"dci" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/spawner/structure/window/reinforced,
-/obj/structure/curtain/directional{
- dir = 2
- },
-/obj/structure/cable/yellow{
- icon_state = "0-4"
- },
-/turf/open/floor/plating,
-/area/quartermaster/qm)
"dcZ" = (
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/dock/drydock,
/area/quartermaster/storage)
-"ddc" = (
-/obj/structure/chair/stool/bar{
- dir = 8
- },
-/obj/structure/extinguisher_cabinet{
- pixel_y = 32
- },
-/turf/open/floor/iron/cafeteria_red,
-/area/crew_quarters/cafeteria)
"ddj" = (
/obj/structure/disposalpipe/segment{
dir = 2
@@ -7262,6 +6997,21 @@
/obj/structure/reagent_dispensers/fueltank,
/turf/open/floor/plating,
/area/maintenance/department/crew_quarters/dorms)
+"deq" = (
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/tile/dark_blue/fourcorners/contrasted{
+ alpha = 180
+ },
+/obj/machinery/fax/bridge,
+/obj/item/toy/plush/renault{
+ pixel_x = 5;
+ pixel_y = 3
+ },
+/turf/open/floor/iron/dark,
+/area/bridge)
"dev" = (
/obj/machinery/telecomms/bus/preset_three,
/obj/effect/turf_decal/stripes/closeup,
@@ -7289,21 +7039,6 @@
},
/turf/open/floor/plating,
/area/maintenance/disposal)
-"dfc" = (
-/obj/machinery/camera/autoname{
- dir = 2
- },
-/obj/effect/turf_decal/tile/purple/half/contrasted{
- dir = 4
- },
-/obj/item/radio/intercom{
- dir = 1;
- pixel_x = 1;
- pixel_y = 23
- },
-/obj/structure/reagent_dispensers/watertank,
-/turf/open/floor/iron,
-/area/janitor)
"dfi" = (
/obj/effect/turf_decal/tile/blue/opposingcorners{
dir = 1
@@ -7440,15 +7175,6 @@
},
/turf/open/floor/iron,
/area/storage/primary)
-"dih" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/trimline/yellow,
-/obj/structure/cable/yellow{
- icon_state = "8-16"
- },
-/turf/open/floor/pod/dark,
-/area/maintenance/department/engine)
"dii" = (
/obj/structure/cable/yellow{
icon_state = "1-2"
@@ -7468,11 +7194,12 @@
},
/turf/open/floor/plating/asteroid/planetary,
/area/crew_quarters/dorms)
-"dji" = (
-/obj/effect/turf_decal/sand/plating,
-/obj/effect/decal/cleanable/cobweb,
-/turf/open/floor/plating/asteroid/basalt/planetary,
-/area/asteroid/paradise)
+"diS" = (
+/obj/structure/closet,
+/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/item/paicard,
+/turf/open/floor/plating,
+/area/maintenance/department/bridge)
"djm" = (
/turf/open/openspace,
/area/crew_quarters/heads/hor)
@@ -7523,6 +7250,17 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/iron/white,
/area/science/lab)
+"dkP" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/evac,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/iron,
+/area/hallway/primary/central{
+ name = "-2 Primary Hallway"
+ })
"dkR" = (
/obj/effect/turf_decal/tile/blue/anticorner/contrasted,
/obj/structure/reagent_dispensers/water_cooler,
@@ -7563,43 +7301,6 @@
},
/turf/open/floor/iron,
/area/engine/atmos)
-"dmu" = (
-/obj/machinery/door/airlock/maintenance_hatch{
- name = "Maintenance Hatch";
- req_access_txt = "12"
- },
-/obj/effect/mapping_helpers/airlock/abandoned,
-/obj/machinery/door/firedoor,
-/turf/open/floor/plating,
-/area/maintenance/department/medical/central)
-"dmz" = (
-/obj/effect/turf_decal/siding/white{
- alpha = 100
- },
-/obj/effect/turf_decal/bot,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 1
- },
-/turf/open/floor/iron/white,
-/area/crew_quarters/fitness/recreation)
-"dmI" = (
-/obj/effect/turf_decal/bot,
-/obj/machinery/atmospherics/components/unary/portables_connector/visible{
- dir = 1
- },
-/obj/machinery/light{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/line,
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
-/obj/structure/cable/yellow,
-/turf/open/floor/iron/tech,
-/area/science/mixing/chamber)
"dmN" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -7782,17 +7483,6 @@
"dur" = (
/turf/closed/wall,
/area/bridge)
-"dux" = (
-/obj/structure/reflector/box{
- anchored = 1;
- dir = 1
- },
-/obj/effect/turf_decal/sand/plating,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 8
- },
-/turf/open/floor/plating/asteroid/planetary,
-/area/asteroid/paradise)
"duC" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -8181,6 +7871,12 @@
},
/turf/open/floor/wood,
/area/vacant_room/office)
+"dEU" = (
+/obj/machinery/nuclearbomb/selfdestruct,
+/turf/open/floor/circuit/green{
+ luminosity = 2
+ },
+/area/security/nuke_storage)
"dFk" = (
/obj/structure/chair/office/light,
/obj/effect/turf_decal/tile/dark_blue/opposingcorners{
@@ -8268,6 +7964,23 @@
/obj/effect/turf_decal/sand/plating,
/turf/open/floor/plating/asteroid/planetary,
/area/quartermaster/storage)
+"dHA" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/disposalpipe/segment{
+ dir = 2
+ },
+/obj/effect/turf_decal/tile/neutral/half/contrasted{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/binary/pump{
+ name = "Atmos to Loop"
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/iron,
+/area/engine/engineering)
"dHB" = (
/obj/item/clothing/glasses/welding{
pixel_x = 5
@@ -8304,11 +8017,6 @@
/obj/structure/railing,
/turf/open/floor/iron,
/area/science/robotics)
-"dHC" = (
-/obj/structure/lattice/catwalk/over,
-/obj/machinery/firealarm/directional/east,
-/turf/open/openspace,
-/area/maintenance/department/engine/atmos)
"dHS" = (
/obj/effect/turf_decal/bot,
/obj/machinery/light/small{
@@ -8349,23 +8057,6 @@
},
/turf/open/openspace,
/area/ai_monitored/turret_protected/aisat/maint)
-"dIr" = (
-/obj/structure/flora/ausbushes/leafybush{
- max_integrity = 20
- },
-/obj/structure/flora/ausbushes/fullgrass{
- max_integrity = 20
- },
-/obj/structure/window/reinforced{
- dir = 8
- },
-/obj/structure/window/reinforced{
- dir = 4
- },
-/turf/open/floor/grass/no_border,
-/area/hallway/primary/fore{
- name = "-1 Primary Hallway"
- })
"dIK" = (
/turf/open/floor/plating/airless,
/area/science/mixing)
@@ -8417,11 +8108,6 @@
},
/turf/open/floor/dock/drydock,
/area/quartermaster/storage)
-"dKE" = (
-/obj/machinery/portable_atmospherics/scrubber,
-/obj/effect/turf_decal/bot,
-/turf/open/floor/iron/tech,
-/area/engine/engineering)
"dLt" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/tile/purple{
@@ -8616,20 +8302,6 @@
/obj/effect/decal/cleanable/blood/gibs/down,
/turf/open/floor/plating/dirt/planetary,
/area/asteroid/paradise/surface/grass)
-"dRo" = (
-/obj/effect/turf_decal/tile/dark_blue/half/contrasted{
- alpha = 180;
- dir = 2
- },
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/turf/open/floor/iron/dark/side{
- dir = 8
- },
-/area/hallway/primary/fore{
- name = "-1 Primary Hallway"
- })
"dRp" = (
/obj/effect/turf_decal/sand/plating,
/turf/open/floor/plating/asteroid/basalt/planetary,
@@ -8671,6 +8343,21 @@
},
/turf/open/floor/circuit/telecomms/mainframe,
/area/tcommsat/server)
+"dSc" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/porta_turret/ai{
+ dir = 4
+ },
+/turf/open/floor/iron/tech/grid,
+/area/ai_monitored/turret_protected/aisat_interior)
"dSe" = (
/obj/structure/reflector/box,
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
@@ -8782,14 +8469,6 @@
},
/turf/open/floor/iron/dark,
/area/storage/tech)
-"dVh" = (
-/obj/structure/flora/rock/pile,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/plating/asteroid/basalt/planetary,
-/area/asteroid/paradise)
"dVA" = (
/obj/effect/turf_decal/bot,
/obj/structure/closet/secure_closet/freezer/meat{
@@ -8861,6 +8540,14 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron/tech,
/area/engine/atmos)
+"dXH" = (
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "Maintenance Hatch";
+ req_access_txt = "12"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plating,
+/area/maintenance/department/engine/atmos)
"dXI" = (
/turf/closed/wall,
/area/engine/supermatter)
@@ -8900,22 +8587,6 @@
"ebd" = (
/turf/open/floor/iron,
/area/science/misc_lab)
-"ebk" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/structure/disposalpipe/segment{
- dir = 10
- },
-/obj/effect/turf_decal/numbers/two_nine{
- dir = 2
- },
-/obj/effect/turf_decal/bot,
-/turf/open/floor/iron/dark,
-/area/engine/engineering)
"ebn" = (
/obj/structure/flora/grass/jungle/b,
/obj/structure/flora/ausbushes/fullgrass,
@@ -8974,16 +8645,6 @@
},
/turf/open/floor/carpet/green,
/area/crew_quarters/cafeteria)
-"edF" = (
-/obj/structure/railing{
- dir = 1
- },
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/obj/machinery/griddle,
-/turf/open/floor/iron/cafeteria,
-/area/crew_quarters/kitchen)
"eec" = (
/obj/structure/railing,
/turf/open/openspace,
@@ -9177,18 +8838,27 @@
/area/hallway/primary/fore{
name = "-1 Primary Hallway"
})
-"eiD" = (
-/obj/machinery/power/compressor{
- comp_id = "incineratorturbineRight";
- dir = 1;
- luminosity = 2
+"eiN" = (
+/obj/structure/railing/corner{
+ dir = 4
},
-/obj/structure/cable{
- icon_state = "0-2"
+/obj/effect/turf_decal/siding/dark/corner{
+ dir = 4
},
-/obj/structure/cable,
-/turf/open/floor/engine/vacuum,
-/area/maintenance/disposal/incinerator)
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/iron/dark/corner{
+ dir = 4
+ },
+/area/hallway/primary/central{
+ name = "-2 Primary Hallway"
+ })
"eiO" = (
/obj/machinery/gateway{
dir = 1
@@ -9226,21 +8896,6 @@
},
/turf/open/floor/iron/grid/steel,
/area/hydroponics)
-"ejL" = (
-/obj/structure/table/reinforced,
-/obj/item/storage/pill_bottle/dice{
- pixel_x = 4;
- pixel_y = 3
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 8
- },
-/obj/item/toy/plush/nukeplushie{
- pixel_x = -11;
- pixel_y = 9
- },
-/turf/open/floor/prison,
-/area/security/prison)
"ejN" = (
/obj/effect/turf_decal/stripes/line{
dir = 10
@@ -9306,31 +8961,24 @@
},
/turf/open/floor/iron/white,
/area/science/research)
-"elm" = (
-/obj/structure/railing/corner{
- dir = 4
- },
-/obj/effect/turf_decal/siding/dark/corner{
- dir = 4
- },
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/structure/cable/yellow{
- icon_state = "2-8"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/iron/dark/corner{
- dir = 4
- },
-/area/hallway/primary/central{
- name = "-2 Primary Hallway"
- })
"elx" = (
/obj/structure/sign/departments/minsky/research/research,
/turf/closed/wall/r_wall,
/area/science/research)
+"elK" = (
+/obj/effect/turf_decal/tile/blue/anticorner/contrasted,
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/iron/white,
+/area/medical/medbay/central)
"emp" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -9372,33 +9020,26 @@
},
/turf/open/floor/iron/dark,
/area/quartermaster/storage)
-"eol" = (
-/obj/effect/turf_decal/siding/white{
- dir = 8
- },
-/obj/structure/table,
-/obj/item/reagent_containers/food/condiment/peppermill{
- pixel_x = -9;
- pixel_y = 2
+"eop" = (
+/obj/effect/turf_decal/bot,
+/obj/structure/closet/secure_closet/freezer/kitchen{
+ req_access = null;
+ req_one_access_txt = "28;25;35"
},
-/obj/item/reagent_containers/food/condiment/saltshaker{
- pixel_x = -2;
- pixel_y = 2
+/obj/item/storage/box/ingredients/fruity{
+ pixel_x = 4;
+ pixel_y = 6
},
-/turf/open/floor/iron/cafeteria,
-/area/crew_quarters/kitchen)
-"eom" = (
-/obj/structure/cable/yellow{
- icon_state = "1-2"
+/obj/item/storage/box/ingredients/vegetarian{
+ pixel_x = -1;
+ pixel_y = 4
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 5
+/obj/item/storage/box/ingredients/wildcard{
+ pixel_x = -5;
+ pixel_y = 8
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/iron,
-/area/hallway/primary/central{
- name = "-2 Primary Hallway"
- })
+/turf/open/floor/iron/freezer,
+/area/crew_quarters/kitchen/coldroom)
"eoQ" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -9713,13 +9354,6 @@
/area/hallway/primary/fore{
name = "-1 Primary Hallway"
})
-"exV" = (
-/obj/effect/turf_decal/sand/plating,
-/obj/effect/turf_decal/sand/plating,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating/asteroid/basalt/planetary,
-/area/asteroid/paradise)
"eyh" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -9867,24 +9501,21 @@
},
/turf/open/floor/iron/dark,
/area/engine/engineering)
-"eBa" = (
-/obj/item/clothing/gloves/color/yellow,
-/obj/effect/turf_decal/stripes/line,
+"eAX" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/vending/clothing,
/obj/effect/turf_decal/bot,
-/obj/machinery/camera/autoname{
- network = list("ss13","engine")
+/obj/structure/disposalpipe/segment{
+ dir = 2
},
-/obj/structure/closet/secure_closet/atmospherics{
- anchored = 1;
- req_access = null;
- req_one_access_txt = "11"
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 1
},
-/obj/item/radio/intercom{
- pixel_x = -1;
- pixel_y = 29
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
},
-/turf/open/floor/iron,
-/area/engine/atmos)
+/turf/open/floor/plating/asteroid/planetary,
+/area/crew_quarters/dorms)
"eBh" = (
/obj/structure/railing/corner,
/obj/effect/decal/cleanable/dirt/dust,
@@ -9953,10 +9584,48 @@
},
/turf/open/floor/iron/freezer,
/area/crew_quarters/kitchen/coldroom)
+"eCn" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/effect/turf_decal/tile/neutral/half/contrasted{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/binary/pump{
+ name = "Atmos to Loop"
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/iron,
+/area/engine/engineering)
+"eCq" = (
+/obj/machinery/door/airlock/security/glass{
+ name = "Security Office";
+ req_access_txt = 0;
+ req_one_access_txt = "1;4"
+ },
+/obj/effect/turf_decal/stripes/closeup,
+/obj/machinery/door/firedoor,
+/turf/open/floor/plating,
+/area/maintenance/department/security/brig)
"eCB" = (
/obj/effect/spawner/room/fivexfour,
/turf/open/floor/plating,
/area/maintenance/department/medical/central)
+"eDg" = (
+/obj/effect/turf_decal/siding/white{
+ alpha = 100
+ },
+/obj/structure/flora/ausbushes/ywflowers,
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/item/radio/intercom{
+ dir = 1;
+ pixel_x = 1;
+ pixel_y = 26
+ },
+/turf/open/floor/plating/asteroid/planetary,
+/area/crew_quarters/dorms)
"eDk" = (
/obj/machinery/atmospherics/pipe/multiz/layer4{
dir = 8
@@ -10103,6 +9772,15 @@
},
/turf/open/floor/iron/dark,
/area/security/brig)
+"eGO" = (
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "Maintenance Hatch";
+ req_access_txt = "12"
+ },
+/obj/effect/mapping_helpers/airlock/abandoned,
+/obj/machinery/door/firedoor,
+/turf/open/floor/plating,
+/area/maintenance/department/medical/central)
"eHa" = (
/obj/machinery/telecomms/bus/preset_four,
/obj/effect/turf_decal/stripes/closeup{
@@ -10119,6 +9797,13 @@
},
/turf/open/floor/iron/dark,
/area/engine/atmos)
+"eHe" = (
+/obj/effect/turf_decal/sand/plating,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plating/asteroid/planetary,
+/area/asteroid/paradise)
"eHB" = (
/obj/effect/turf_decal/bot,
/obj/machinery/washing_machine,
@@ -10337,23 +10022,6 @@
/obj/effect/landmark/blobstart,
/turf/open/floor/plating,
/area/maintenance/department/crew_quarters/dorms)
-"eNV" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/glass,
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 1
- },
-/obj/effect/turf_decal/numbers/two_nine{
- dir = 2
- },
-/turf/open/floor/iron,
-/area/hallway/secondary/service)
"eOa" = (
/obj/effect/turf_decal/siding/wood{
dir = 10
@@ -10372,6 +10040,20 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/iron,
/area/engine/engineering)
+"eOH" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/sand/plating,
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/turf/open/floor/iron,
+/area/crew_quarters/dorms)
"eOM" = (
/obj/structure/cable/yellow{
icon_state = "1-2"
@@ -10486,14 +10168,6 @@
/obj/item/clothing/glasses/hud/security/sunglasses,
/turf/open/floor/carpet/red,
/area/security/detectives_office)
-"eQB" = (
-/obj/structure/sink/kitchen{
- pixel_y = 22
- },
-/turf/open/floor/iron/dark,
-/area/hallway/primary/aft{
- name = "-3 Primary Hallway"
- })
"eQF" = (
/obj/effect/turf_decal/bot,
/obj/structure/table,
@@ -10522,17 +10196,16 @@
},
/turf/open/floor/iron/dark,
/area/science/robotics)
-"eQW" = (
-/obj/machinery/door/airlock/maintenance_hatch{
- name = "Maintenance Hatch";
- req_one_access_txt = "1;4"
+"eSh" = (
+/obj/effect/turf_decal/tile/neutral/half/contrasted{
+ dir = 8
},
-/obj/effect/turf_decal/stripes/closeup{
- dir = 1
+/obj/item/radio/intercom{
+ dir = 1;
+ pixel_y = -35
},
-/obj/machinery/door/firedoor,
-/turf/open/floor/plating,
-/area/maintenance/department/security/brig)
+/turf/open/floor/iron,
+/area/security/brig)
"eSq" = (
/obj/effect/landmark/blobstart,
/turf/open/floor/plating,
@@ -10572,6 +10245,19 @@
},
/turf/open/floor/wood/broken,
/area/crew_quarters/cafeteria)
+"eTK" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating/asteroid/basalt/planetary,
+/area/asteroid/paradise)
+"eUf" = (
+/obj/effect/turf_decal/bot,
+/obj/machinery/camera/autoname{
+ dir = 8
+ },
+/obj/machinery/gibber,
+/turf/open/floor/iron/freezer,
+/area/crew_quarters/kitchen/coldroom)
"eUg" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 8
@@ -10598,6 +10284,16 @@
},
/turf/open/floor/carpet/blue,
/area/crew_quarters/heads/captain/private)
+"eUC" = (
+/obj/structure/chair/fancy/sofa/old/left{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 9
+ },
+/obj/machinery/digital_clock/directional/north,
+/turf/open/floor/carpet/green,
+/area/crew_quarters/cafeteria)
"eUY" = (
/obj/structure/flora/rock/pile,
/turf/open/floor/plating/asteroid/planetary,
@@ -10685,6 +10381,21 @@
/area/hallway/primary/aft{
name = "-3 Primary Hallway"
})
+"eWv" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable/yellow{
+ icon_state = "1-16"
+ },
+/obj/effect/turf_decal/trimline/yellow,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/obj/structure/lattice/catwalk/over,
+/turf/open/openspace,
+/area/maintenance/department/chapel)
"eWC" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -10807,29 +10518,6 @@
},
/turf/open/floor/engine,
/area/maintenance/disposal/incinerator)
-"eZo" = (
-/obj/machinery/door/airlock/public/glass{
- name = "Cryogenic Lounge"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/machinery/door/firedoor,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 8
- },
-/turf/open/floor/iron/showroomfloor,
-/area/crew_quarters/cryopods)
"eZt" = (
/turf/closed/wall/rust,
/area/science/xenobiology)
@@ -10902,6 +10590,28 @@
},
/turf/open/floor/iron/dark,
/area/storage/primary)
+"fbs" = (
+/obj/effect/turf_decal/tile/purple/half/contrasted{
+ dir = 4
+ },
+/obj/machinery/light,
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/structure/disposalpipe/sorting/mail{
+ dir = 8;
+ sortType = 14
+ },
+/obj/item/radio/intercom{
+ pixel_x = 1;
+ pixel_y = -31
+ },
+/turf/open/floor/iron/white/side{
+ dir = 1
+ },
+/area/science/lab)
"fbA" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/delivery,
@@ -10956,6 +10666,19 @@
},
/turf/open/floor/iron,
/area/maintenance/department/science/xenobiology)
+"fdd" = (
+/obj/effect/turf_decal/bot,
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 1
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/power/apc/auto_name/east,
+/obj/structure/cable/yellow,
+/turf/open/floor/iron/tech,
+/area/science/mixing/chamber)
"fdh" = (
/turf/open/openspace,
/area/ai_monitored/turret_protected/aisat/maint)
@@ -10994,6 +10717,35 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/closed/wall,
/area/maintenance/department/science/xenobiology)
+"feI" = (
+/obj/structure/rack,
+/obj/item/electronics/firelock{
+ pixel_x = -4;
+ pixel_y = -4
+ },
+/obj/item/electronics/airalarm,
+/obj/item/electronics/apc{
+ pixel_x = 2;
+ pixel_y = 2
+ },
+/obj/item/electronics/firealarm{
+ pixel_x = -2;
+ pixel_y = -2
+ },
+/obj/item/multitool,
+/obj/item/clothing/gloves/color/yellow,
+/obj/effect/spawner/lootdrop/techstorage/engineering,
+/obj/effect/spawner/lootdrop/techstorage/engineering,
+/obj/item/radio/intercom{
+ pixel_y = 23
+ },
+/obj/effect/turf_decal/delivery,
+/obj/machinery/light_switch{
+ pixel_x = 23;
+ pixel_y = 23
+ },
+/turf/open/floor/iron/dark,
+/area/storage/tech)
"ffv" = (
/obj/effect/turf_decal/siding/wideplating/terracotta{
dir = 8
@@ -11049,6 +10801,15 @@
},
/turf/open/floor/wood,
/area/crew_quarters/heads/captain)
+"fgF" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/eva)
"fgO" = (
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron/dark/corner,
@@ -11095,6 +10856,17 @@
/obj/item/gun/ballistic/revolver/russian,
/turf/open/floor/iron/dark,
/area/security/nuke_storage)
+"fhR" = (
+/obj/structure/railing{
+ dir = 5
+ },
+/obj/structure/closet/emcloset/anchored,
+/turf/open/floor/iron/dark/side{
+ dir = 5
+ },
+/area/hallway/primary/aft{
+ name = "-3 Primary Hallway"
+ })
"fhV" = (
/obj/structure/closet/toolcloset,
/obj/effect/turf_decal/bot,
@@ -11136,6 +10908,15 @@
},
/turf/open/floor/iron/tech,
/area/engine/atmos)
+"fib" = (
+/obj/effect/turf_decal/numbers/two_nine,
+/turf/open/floor/plating,
+/area/maintenance/department/crew_quarters/dorms)
+"fic" = (
+/obj/structure/lattice/catwalk/over,
+/obj/machinery/firealarm/directional/east,
+/turf/open/openspace,
+/area/maintenance/department/engine/atmos)
"fiu" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/door/airlock/maintenance_hatch{
@@ -11147,6 +10928,25 @@
},
/turf/open/floor/iron,
/area/maintenance/department/engine)
+"fiC" = (
+/obj/structure/table/reinforced,
+/obj/item/storage/pill_bottle/dice{
+ pixel_x = 4;
+ pixel_y = 3
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 8
+ },
+/obj/item/toy/plush/nukeplushie{
+ pixel_x = -11;
+ pixel_y = 9
+ },
+/turf/open/floor/prison,
+/area/security/prison)
+"fiF" = (
+/obj/structure/flora/ausbushes/lavendergrass,
+/turf/closed/mineral/random/air,
+/area/asteroid/paradise)
"fiN" = (
/obj/effect/turf_decal/tile/dark_red/fourcorners/contrasted{
alpha = 180;
@@ -11192,6 +10992,18 @@
/obj/effect/spawner/lootdrop/maintenance/two,
/turf/open/floor/iron,
/area/maintenance/department/science/xenobiology)
+"fjt" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/corner,
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/iron/dark,
+/area/engine/engineering)
"fkk" = (
/obj/item/trash/semki,
/turf/open/floor/plating/beach/sand,
@@ -11277,21 +11089,6 @@
},
/turf/open/floor/iron/dark,
/area/medical/morgue)
-"fnA" = (
-/obj/machinery/telecomms/relay/preset/auto,
-/obj/machinery/door/window/northleft{
- name = "Engi Desk";
- req_one_access_txt = "32;19"
- },
-/obj/structure/window/reinforced/survival_pod,
-/obj/structure/cable/yellow,
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/turf/open/floor/plating,
-/area/hallway/primary/fore{
- name = "-1 Primary Hallway"
- })
"fnC" = (
/obj/effect/turf_decal/stripes/line{
dir = 9
@@ -11327,21 +11124,6 @@
},
/turf/open/floor/wood,
/area/crew_quarters/theatre/backstage)
-"fpo" = (
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/effect/turf_decal/tile/red/half/contrasted{
- alpha = 180;
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/hallway/primary/central{
- name = "-2 Primary Hallway"
- })
"fpu" = (
/obj/effect/turf_decal/tile/neutral/half/contrasted{
dir = 4
@@ -11431,6 +11213,19 @@
},
/turf/open/floor/iron/dark,
/area/bridge)
+"fqC" = (
+/obj/effect/turf_decal/sand/plating,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/crew_quarters/dorms)
"fqM" = (
/obj/effect/turf_decal/stripes/line,
/obj/structure/closet/toolcloset,
@@ -11515,6 +11310,25 @@
},
/turf/open/floor/iron/white,
/area/crew_quarters/heads/cmo)
+"fsF" = (
+/obj/structure/flora/ausbushes/sparsegrass,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4{
+ dir = 8
+ },
+/turf/open/floor/plating/asteroid/planetary,
+/area/asteroid/paradise)
+"fsU" = (
+/obj/machinery/atmospherics/components/unary/thermomachine/freezer{
+ dir = 1;
+ initialize_directions = 1
+ },
+/obj/effect/turf_decal/bot,
+/obj/machinery/firealarm/directional/south,
+/turf/open/floor/iron/tech,
+/area/engine/engineering)
"fta" = (
/obj/effect/turf_decal/tile/purple/anticorner/contrasted{
dir = 4
@@ -11584,13 +11398,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/crew_quarters/dorms)
-"fuG" = (
-/obj/structure/stairs{
- dir = 1
- },
-/obj/structure/fans/tiny,
-/turf/open/floor/pod/dark,
-/area/maintenance/department/engine/atmos)
"fuJ" = (
/obj/structure/cable/yellow{
icon_state = "0-2"
@@ -11749,14 +11556,6 @@
"fyA" = (
/turf/closed/wall,
/area/science/robotics)
-"fyH" = (
-/obj/machinery/nuclearbomb/selfdestruct{
- base_icon_state = null
- },
-/turf/open/floor/circuit/green{
- luminosity = 2
- },
-/area/security/nuke_storage)
"fzp" = (
/obj/structure/table/reinforced,
/obj/effect/spawner/lootdrop/maintenance,
@@ -11855,6 +11654,18 @@
/obj/machinery/telecomms/server/presets/medical,
/turf/open/floor/circuit/green/telecomms/mainframe,
/area/tcommsat/server)
+"fBU" = (
+/obj/structure/stairs,
+/obj/structure/sign/directions/evac{
+ dir = 4;
+ pixel_x = -15;
+ pixel_y = -31
+ },
+/obj/machinery/firealarm/directional/east,
+/turf/open/floor/pod/dark,
+/area/hallway/primary/fore{
+ name = "-1 Primary Hallway"
+ })
"fBW" = (
/obj/structure/closet/crate/medical,
/obj/effect/spawner/lootdrop/ruinloot/medical,
@@ -11950,13 +11761,19 @@
},
/turf/open/floor/engine/co2,
/area/engine/atmos)
-"fDH" = (
-/obj/effect/turf_decal/sand/plating,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/plating/asteroid/basalt/planetary,
-/area/asteroid/paradise)
+"fEe" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/iron/showroomfloor,
+/area/crew_quarters/cryopods)
"fEs" = (
/obj/structure/closet/secure_closet/personal,
/obj/effect/turf_decal/bot,
@@ -11998,22 +11815,17 @@
/obj/machinery/fax/eng,
/turf/open/floor/iron,
/area/engine/engineering)
-"fFT" = (
-/obj/structure/dresser,
-/obj/item/flashlight/lamp/green{
- pixel_x = -4;
- pixel_y = 14
- },
-/obj/item/toy/plush/lisa{
- pixel_x = 5;
- pixel_y = 15
- },
-/turf/open/floor/carpet/blue,
-/area/crew_quarters/heads/hop)
"fFU" = (
/obj/effect/spawner/room/threexfive,
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
+"fFZ" = (
+/obj/structure/sign/painting/library{
+ pixel_x = 1;
+ pixel_y = 29
+ },
+/turf/open/openspace,
+/area/crew_quarters/kitchen)
"fGn" = (
/obj/machinery/door/airlock/vault{
name = "Vault Door";
@@ -12264,33 +12076,9 @@
/obj/item/crowbar/red,
/turf/open/floor/wood,
/area/vacant_room/office)
-"fMW" = (
-/obj/structure/railing{
- dir = 4
- },
-/obj/effect/turf_decal/siding/dark{
- dir = 4
- },
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/turf/open/floor/iron/dark/side{
- dir = 4
- },
-/area/hallway/primary/central{
- name = "-2 Primary Hallway"
- })
"fMX" = (
/turf/closed/wall,
/area/crew_quarters/dorms)
-"fNb" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4{
- dir = 6
- },
-/turf/open/floor/plating/asteroid/planetary,
-/area/asteroid/paradise)
"fNN" = (
/obj/structure/chair/fancy/bench/pew/left{
dir = 1
@@ -12323,19 +12111,6 @@
/obj/machinery/firealarm/directional/south,
/turf/open/floor/iron,
/area/science/mixing)
-"fOE" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/structure/table/wood,
-/obj/effect/turf_decal/siding/wood,
-/obj/item/reagent_containers/food/condiment/peppermill{
- pixel_y = 28
- },
-/obj/item/reagent_containers/food/condiment/saltshaker{
- pixel_y = 23
- },
-/obj/item/paicard,
-/turf/open/floor/carpet/green,
-/area/crew_quarters/cafeteria)
"fOH" = (
/obj/effect/turf_decal/bot,
/obj/effect/turf_decal/tile/dark_red/fourcorners/contrasted{
@@ -12391,23 +12166,6 @@
/obj/structure/reagent_dispensers/fueltank,
/turf/open/floor/plating,
/area/maintenance/department/science/central)
-"fPA" = (
-/obj/machinery/atmospherics/pipe/simple/green/visible/layer4{
- dir = 4
- },
-/obj/structure/table,
-/obj/effect/turf_decal/tile/yellow/fourcorners/contrasted{
- alpha = 230;
- color = "#edaa0c"
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/item/storage/belt/utility,
-/obj/item/t_scanner,
-/obj/item/radio/intercom{
- pixel_y = 29
- },
-/turf/open/floor/iron,
-/area/engine/atmos)
"fPV" = (
/obj/effect/turf_decal/siding/wood{
dir = 4
@@ -12473,6 +12231,20 @@
/obj/machinery/suit_storage_unit/mining/eva,
/turf/open/floor/iron/dark,
/area/quartermaster/storage)
+"fQH" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/dark{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/turf/open/floor/iron/dark,
+/area/hallway/primary/central{
+ name = "-2 Primary Hallway"
+ })
"fQP" = (
/obj/structure/cable/yellow{
icon_state = "1-2"
@@ -12571,6 +12343,15 @@
},
/turf/open/floor/iron/white,
/area/science/lab)
+"fSH" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/curtain/directional,
+/obj/structure/cable/yellow{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/quartermaster/qm)
"fSJ" = (
/obj/machinery/shower{
dir = 8;
@@ -12661,16 +12442,6 @@
/obj/machinery/light,
/turf/open/floor/iron/dark,
/area/engine/atmos)
-"fUl" = (
-/obj/effect/turf_decal/tile/bar/opposingcorners,
-/obj/machinery/vending/dinnerware,
-/obj/machinery/requests_console{
- department = "Kitchen";
- departmentType = 2;
- pixel_y = 30
- },
-/turf/open/floor/iron/dark,
-/area/crew_quarters/kitchen)
"fUG" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/door/poddoor/shutters/preopen{
@@ -12823,27 +12594,12 @@
/obj/structure/fence,
/turf/open/floor/plating/grass,
/area/asteroid/paradise/surface)
-"fYp" = (
-/obj/structure/noticeboard{
- name = "bounty list";
- pixel_x = 1;
- pixel_y = 33
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/effect/turf_decal/bot,
-/obj/machinery/camera/autoname{
- dir = 4;
- network = list("ss13","cargo")
- },
-/obj/effect/turf_decal/numbers/two_nine{
- dir = 2
- },
-/turf/open/floor/iron/sepia,
-/area/hallway/primary/aft{
- name = "-3 Primary Hallway"
- })
+"fXo" = (
+/obj/effect/turf_decal/sand/plating,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating/asteroid/basalt/planetary,
+/area/asteroid/paradise)
"fYK" = (
/obj/structure/cable/yellow{
icon_state = "1-2"
@@ -12885,6 +12641,22 @@
},
/turf/open/floor/plating,
/area/maintenance/department/bridge)
+"fZl" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/holopad,
+/obj/effect/turf_decal/box,
+/turf/open/floor/iron,
+/area/hallway/primary/aft{
+ name = "-3 Primary Hallway"
+ })
"fZm" = (
/obj/machinery/computer/bounty{
dir = 4
@@ -12920,14 +12692,22 @@
},
/turf/open/floor/iron,
/area/security/brig)
-"fZB" = (
-/obj/effect/turf_decal/sand/plating,
-/obj/effect/turf_decal/sand/plating,
-/turf/open/floor/plating/asteroid/basalt/planetary,
-/area/asteroid/paradise)
"fZR" = (
/turf/closed/wall,
/area/maintenance/department/chapel)
+"fZX" = (
+/obj/item/reagent_containers/food/drinks/shaker{
+ pixel_x = -8;
+ pixel_y = 2
+ },
+/obj/structure/table/wood,
+/obj/machinery/reagentgrinder{
+ pixel_x = 6;
+ pixel_y = 6
+ },
+/obj/machinery/digital_clock/directional/north,
+/turf/open/floor/wood,
+/area/crew_quarters/heads/captain)
"fZY" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 4
@@ -13014,25 +12794,6 @@
slowdown = 0
},
/area/asteroid/paradise/surface)
-"gbZ" = (
-/obj/structure/table/reinforced,
-/obj/machinery/door/firedoor,
-/obj/machinery/door/window/northright{
- dir = 2;
- icon_state = "right";
- name = "Engi Desk";
- req_one_access_txt = "32;19"
- },
-/obj/item/toy/figure/engineer{
- pixel_x = 3;
- pixel_y = -1
- },
-/obj/machinery/door/poddoor/preopen{
- id = "Engidesk";
- name = "engineering security door"
- },
-/turf/open/floor/iron/dark,
-/area/engine/engineering)
"gcq" = (
/obj/machinery/light_switch{
pixel_x = 25;
@@ -13169,16 +12930,6 @@
},
/turf/open/floor/plating,
/area/security/brig)
-"gez" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/effect/turf_decal/tile/bar/opposingcorners,
-/obj/structure/cable/yellow{
- icon_state = "2-4"
- },
-/turf/open/floor/iron/dark,
-/area/crew_quarters/kitchen)
"geB" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 8
@@ -13210,6 +12961,24 @@
},
/turf/open/floor/iron/dark,
/area/storage/primary)
+"gfK" = (
+/obj/structure/urinal{
+ dir = 1;
+ pixel_x = 1;
+ pixel_y = 33
+ },
+/obj/effect/turf_decal/tile/blue/opposingcorners{
+ dir = 1
+ },
+/obj/item/radio/intercom{
+ dir = 1;
+ pixel_x = -31;
+ pixel_y = -2
+ },
+/turf/open/floor/iron/freezer,
+/area/hallway/primary/fore{
+ name = "-1 Primary Hallway"
+ })
"gfQ" = (
/obj/effect/turf_decal/tile/purple/anticorner/contrasted,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
@@ -13243,49 +13012,6 @@
"ggs" = (
/turf/closed/wall/rust,
/area/maintenance/department/engine)
-"ggt" = (
-/obj/structure/table/reinforced,
-/obj/item/storage/fancy/donut_box{
- name = "Emergency donut box";
- pixel_x = -2;
- pixel_y = 15
- },
-/obj/item/gun/energy/e_gun/dragnet{
- pixel_x = -2;
- pixel_y = 1
- },
-/obj/item/beacon/nettingportal,
-/obj/machinery/light{
- dir = 8
- },
-/obj/effect/turf_decal/tile/dark_red/fourcorners/contrasted{
- alpha = 180;
- color = "#DE3A3A"
- },
-/obj/machinery/camera/motion{
- c_tag = "Armory - Internal";
- dir = 4;
- network = list("ss13","security")
- },
-/obj/item/storage/toolbox/mechanical{
- pixel_x = -2;
- pixel_y = -11
- },
-/turf/open/floor/iron/dark,
-/area/ai_monitored/security/armory)
-"ggA" = (
-/obj/machinery/airalarm/directional/east,
-/obj/structure/disposalpipe/segment{
- dir = 2
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 10
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 10
- },
-/turf/open/floor/iron,
-/area/quartermaster/sorting)
"ghc" = (
/obj/structure/cable/yellow{
icon_state = "1-2"
@@ -13363,6 +13089,20 @@
"giS" = (
/turf/open/floor/plating/asteroid/planetary,
/area/engine/atmos)
+"giU" = (
+/obj/structure/chair/stool/bar{
+ dir = 8
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 8
+ },
+/obj/item/radio/intercom{
+ dir = 1;
+ pixel_x = 1;
+ pixel_y = -35
+ },
+/turf/open/floor/iron/cafeteria_red,
+/area/crew_quarters/cafeteria)
"gjn" = (
/obj/machinery/newscaster{
pixel_x = 31;
@@ -13521,25 +13261,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/eva)
-"glP" = (
-/obj/effect/spawner/structure/window,
-/obj/structure/curtain/directional{
- color = "#ACD1E9";
- dir = 2;
- icon_state = "bathroom-open";
- icon_type = "bathroom"
- },
-/turf/open/floor/plating,
-/area/medical/surgery)
-"glR" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/cable/yellow{
- icon_state = "1-32"
- },
-/obj/effect/turf_decal/trimline/yellow,
-/obj/structure/lattice/catwalk/over,
-/turf/open/openspace,
-/area/maintenance/department/crew_quarters/bar)
"gmf" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/table,
@@ -13612,27 +13333,6 @@
},
/turf/open/floor/iron,
/area/security/execution/education)
-"gmv" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/door/poddoor{
- id = "engstorage";
- name = "Engineering Secure Storage Lockdown"
- },
-/obj/machinery/door/firedoor,
-/turf/open/floor/iron/dark,
-/area/engine/engineering)
"gmU" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/cable/yellow{
@@ -13745,10 +13445,6 @@
},
/turf/open/floor/iron/tech/grid,
/area/ai_monitored/turret_protected/aisat_interior)
-"gpm" = (
-/obj/structure/lattice,
-/turf/open/openspace,
-/area/maintenance/department/security/brig)
"gpR" = (
/obj/machinery/telecomms/processor/preset_one,
/obj/effect/turf_decal/stripes/line{
@@ -13807,6 +13503,11 @@
},
/turf/open/floor/pod/dark,
/area/bridge/meeting_room)
+"grQ" = (
+/obj/structure/flora/ausbushes/sparsegrass,
+/obj/structure/flora/ausbushes/sparsegrass,
+/turf/open/floor/plating/asteroid/planetary,
+/area/asteroid/paradise)
"grS" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -13842,6 +13543,15 @@
},
/turf/open/floor/iron/dark,
/area/bridge)
+"gth" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/structure/closet/secure_closet/genpop,
+/obj/effect/turf_decal/bot,
+/obj/machinery/firealarm/directional/east,
+/turf/open/floor/iron/dark,
+/area/security/prison)
"gtH" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/spawner/lootdrop/grille_or_trash,
@@ -13903,28 +13613,6 @@
},
/turf/open/floor/iron/sepia,
/area/quartermaster/warehouse)
-"gvF" = (
-/obj/effect/spawner/lootdrop/aimodule_harmless,
-/obj/effect/spawner/lootdrop/aimodule_harmless,
-/obj/effect/turf_decal/stripes/line,
-/obj/machinery/flasher{
- id = "AI";
- pixel_x = -1;
- pixel_y = 32
- },
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/obj/effect/spawner/lootdrop/aimodule_harmless,
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
-/obj/structure/cable{
- icon_state = "0-2"
- },
-/obj/structure/table/reinforced,
-/turf/open/floor/circuit,
-/area/ai_monitored/turret_protected/ai_upload)
"gvQ" = (
/obj/effect/turf_decal/bot,
/obj/machinery/portable_atmospherics/scrubber/huge,
@@ -13933,6 +13621,33 @@
},
/turf/open/floor/iron/dark,
/area/science/mixing)
+"gwb" = (
+/obj/effect/turf_decal/tile/red/half/contrasted{
+ alpha = 180;
+ dir = 1
+ },
+/obj/machinery/camera/autoname{
+ dir = 4;
+ network = list("ss13","security")
+ },
+/obj/machinery/button/door{
+ id = "armory";
+ name = "Armory Shutter Toggle";
+ pixel_x = -32;
+ pixel_y = 1;
+ req_access_txt = "3"
+ },
+/obj/structure/bed/dogbed/walter,
+/mob/living/simple_animal/pet/dog/bullterrier/walter{
+ density = 0;
+ dir = 1
+ },
+/obj/item/stack/sheet/bone{
+ pixel_x = 6;
+ pixel_y = -6
+ },
+/turf/open/floor/iron/dark,
+/area/security/warden)
"gwg" = (
/obj/structure/filingcabinet/chestdrawer,
/obj/effect/turf_decal/bot,
@@ -14003,19 +13718,6 @@
/area/engineering/hallway{
name = "Engineering Viewing Platform"
})
-"gxb" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 4
- },
-/obj/machinery/turretid{
- control_area = "/area/ai_monitored/turret_protected/ai_upload";
- icon_state = "control_stun";
- name = "AI Upload turret control";
- pixel_x = -33;
- pixel_y = 2
- },
-/turf/open/floor/iron/tech/grid,
-/area/ai_monitored/turret_protected/aisat_interior)
"gyq" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable/yellow{
@@ -14150,13 +13852,6 @@
/obj/machinery/airalarm/directional/east,
/turf/open/floor/iron/dark,
/area/ai_monitored/turret_protected/aisat/foyer)
-"gBe" = (
-/obj/structure/railing{
- dir = 1
- },
-/obj/structure/lattice,
-/turf/open/openspace,
-/area/maintenance/department/security/brig)
"gBj" = (
/obj/machinery/door/window/brigdoor{
dir = 4;
@@ -14171,6 +13866,31 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating/rust,
/area/science/test_area)
+"gBS" = (
+/obj/effect/turf_decal/sand/plating,
+/obj/effect/turf_decal/sand/plating,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/asteroid/basalt/planetary,
+/area/asteroid/paradise)
+"gCg" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/firedoor,
+/obj/machinery/door/window/northright{
+ dir = 2;
+ name = "Engi Desk";
+ req_one_access_txt = "32;19"
+ },
+/obj/item/toy/figure/engineer{
+ pixel_x = 3;
+ pixel_y = -1
+ },
+/obj/machinery/door/poddoor/preopen{
+ id = "Engidesk";
+ name = "engineering security door"
+ },
+/turf/open/floor/iron/dark,
+/area/engine/engineering)
"gCM" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/light/small,
@@ -14202,6 +13922,11 @@
/obj/effect/turf_decal/tile/blue/half/contrasted,
/turf/open/floor/iron/white,
/area/medical/medbay/central)
+"gDk" = (
+/obj/structure/flora/ausbushes/lavendergrass,
+/obj/structure/spider/stickyweb,
+/turf/open/floor/plating/asteroid/planetary,
+/area/asteroid/paradise)
"gDp" = (
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron/dark/side{
@@ -14330,6 +14055,13 @@
},
/turf/open/floor/iron,
/area/medical/genetics/cloning)
+"gFG" = (
+/obj/structure/lattice/catwalk/over,
+/obj/machinery/firealarm/directional/east,
+/turf/open/openspace,
+/area/hallway/primary/fore{
+ name = "-1 Primary Hallway"
+ })
"gFM" = (
/obj/effect/turf_decal/tile/purple/fourcorners/contrasted,
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
@@ -14449,16 +14181,69 @@
},
/turf/open/floor/iron/dark,
/area/teleporter)
-"gJk" = (
-/obj/structure/flora/ausbushes/sparsegrass,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 8
+"gJg" = (
+/obj/item/radio/intercom{
+ freerange = 1;
+ name = "Common Channel";
+ pixel_x = 29;
+ pixel_y = 6
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4{
+/obj/item/radio/intercom{
+ freerange = 1;
+ listening = 0;
+ name = "Custom Channel";
+ pixel_x = 29;
+ pixel_y = 35
+ },
+/obj/item/radio/intercom{
+ freerange = 1;
+ frequency = 1447;
+ name = "Private Channel";
+ pixel_x = 29;
+ pixel_y = 20
+ },
+/obj/effect/landmark/start/ai,
+/obj/machinery/button/door{
+ id = "AI Chamber entrance shutters";
+ name = "AI Chamber Lockdown";
+ pixel_x = -25;
+ pixel_y = 8;
+ req_access_txt = "16"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/button/door{
+ id = "AIwindows";
+ name = "AI View Blast doors";
+ pixel_x = -38;
+ pixel_y = 8;
+ req_access_txt = "19"
+ },
+/obj/machinery/button/door{
+ id = "AI Core shutters";
+ name = "AI Core Shutters Toggle";
+ pixel_x = -38;
+ pixel_y = -3;
+ req_access_txt = "16"
+ },
+/turf/open/floor/circuit/red,
+/area/ai_monitored/turret_protected/ai)
+"gJt" = (
+/obj/machinery/disposal/bin,
+/obj/effect/turf_decal/bot,
+/obj/structure/disposalpipe/trunk{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/dark_blue/half/contrasted{
+ alpha = 180
+ },
+/turf/open/floor/iron/dark/corner{
dir = 8
},
-/turf/open/floor/plating/asteroid/planetary,
-/area/asteroid/paradise)
+/area/hallway/primary/central{
+ name = "-2 Primary Hallway"
+ })
"gJv" = (
/obj/structure/ladder,
/turf/open/floor/pod/dark,
@@ -14584,6 +14369,13 @@
/obj/item/storage/belt/utility/full/engi,
/turf/open/floor/iron,
/area/engine/engineering)
+"gNq" = (
+/obj/structure/flora/ausbushes/sparsegrass,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plating/asteroid/planetary,
+/area/asteroid/paradise)
"gNr" = (
/obj/effect/turf_decal/evac/evac_big{
dir = 4
@@ -14792,6 +14584,13 @@
slowdown = 0
},
/area/asteroid/paradise/surface)
+"gRo" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating/asteroid/basalt/planetary,
+/area/asteroid/paradise)
"gRN" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 8
@@ -14811,6 +14610,11 @@
/obj/structure/barricade/wooden/crude,
/turf/open/floor/carpet/royalblack,
/area/vacant_room/office)
+"gSq" = (
+/obj/effect/turf_decal/sand/plating,
+/obj/effect/decal/cleanable/cobweb,
+/turf/open/floor/plating/asteroid/basalt/planetary,
+/area/asteroid/paradise)
"gSt" = (
/obj/effect/turf_decal/siding/wood{
dir = 9
@@ -14914,18 +14718,6 @@
},
/turf/open/floor/plating,
/area/security/brig)
-"gVY" = (
-/obj/structure/flora/junglebush/b{
- max_integrity = 20
- },
-/obj/structure/window/reinforced{
- dir = 4
- },
-/obj/structure/window/reinforced{
- dir = 8
- },
-/turf/open/floor/grass/no_border,
-/area/medical/storage)
"gWa" = (
/turf/open/floor/grass/no_border,
/area/hallway/primary/aft{
@@ -14964,15 +14756,6 @@
/obj/effect/landmark/xeno_spawn,
/turf/open/floor/plating,
/area/maintenance/department/medical/central)
-"gWS" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/sand/plating,
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/turf/open/floor/iron/techmaint/planetary,
-/area/asteroid/paradise/surface)
"gWU" = (
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
@@ -15030,6 +14813,17 @@
},
/turf/open/floor/iron/dark,
/area/quartermaster/storage)
+"gXk" = (
+/obj/structure/disposalpipe/junction{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/dark_blue/half/contrasted{
+ alpha = 180
+ },
+/turf/open/floor/iron,
+/area/hallway/primary/central{
+ name = "-2 Primary Hallway"
+ })
"gXn" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -15176,6 +14970,15 @@
},
/turf/open/floor/plating/dirt/planetary,
/area/asteroid/paradise/surface/grass)
+"haF" = (
+/obj/structure/chair/stool/bar{
+ dir = 8
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_y = 32
+ },
+/turf/open/floor/iron/cafeteria_red,
+/area/crew_quarters/cafeteria)
"haI" = (
/obj/structure/sign/directions/security{
dir = 1;
@@ -15413,86 +15216,29 @@
/area/hallway/primary/fore{
name = "-1 Primary Hallway"
})
+"hif" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-32"
+ },
+/obj/effect/turf_decal/trimline/yellow,
+/obj/structure/lattice/catwalk/over,
+/turf/open/openspace,
+/area/maintenance/department/medical/central)
"hig" = (
/obj/structure/flora/grass/jungle/b,
/turf/open/floor/plating/asteroid/planetary,
/area/quartermaster/storage)
-"hiA" = (
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/tile/blue/half/contrasted{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 8
- },
-/turf/open/floor/iron,
-/area/hallway/primary/central{
- name = "-2 Primary Hallway"
- })
"hiB" = (
/turf/closed/wall,
/area/asteroid/paradise)
-"hjO" = (
-/obj/effect/turf_decal/sand/plating,
-/obj/structure/closet/wardrobe/grey,
-/obj/effect/turf_decal/bot,
-/obj/machinery/light,
-/obj/item/paicard,
-/turf/open/floor/iron,
-/area/crew_quarters/dorms)
"hjU" = (
/turf/open/openspace,
/area/science/mixing)
-"hkO" = (
-/obj/effect/turf_decal/stripes/line,
-/obj/machinery/atmospherics/pipe/simple/green/visible{
- dir = 4
- },
-/obj/item/radio/intercom{
- pixel_y = -33
- },
-/turf/open/floor/iron/dark,
-/area/engine/engineering)
"hkP" = (
/obj/effect/turf_decal/bot,
/obj/machinery/portable_atmospherics/canister/plasma,
/turf/open/floor/iron,
/area/engine/engineering)
-"hkT" = (
-/obj/structure/rack,
-/obj/item/electronics/firelock{
- pixel_x = -4;
- pixel_y = -4
- },
-/obj/item/electronics/airalarm,
-/obj/item/electronics/apc{
- pixel_x = 2;
- pixel_y = 2
- },
-/obj/item/electronics/firealarm{
- pixel_x = -2;
- pixel_y = -2
- },
-/obj/item/multitool,
-/obj/item/clothing/gloves/color/yellow,
-/obj/effect/spawner/lootdrop/techstorage/engineering,
-/obj/effect/spawner/lootdrop/techstorage/engineering,
-/obj/item/radio/intercom{
- pixel_y = 23
- },
-/obj/effect/turf_decal/delivery,
-/obj/machinery/light_switch{
- pixel_x = 23;
- pixel_y = 23
- },
-/turf/open/floor/iron/dark,
-/area/storage/tech)
"hkV" = (
/obj/effect/turf_decal/tile/yellow/opposingcorners{
dir = 8
@@ -15541,12 +15287,6 @@
/obj/effect/decal/cleanable/blood/old,
/turf/open/floor/plating/airless,
/area/science/test_area)
-"hnA" = (
-/obj/effect/turf_decal/sand/plating,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating/asteroid/planetary,
-/area/asteroid/paradise)
"hnY" = (
/obj/structure/sign/departments/minsky/research/research,
/turf/closed/wall/r_wall,
@@ -15768,6 +15508,11 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/iron,
/area/maintenance/department/science/central)
+"hts" = (
+/obj/effect/turf_decal/sand/plating,
+/obj/effect/turf_decal/sand/plating,
+/turf/open/floor/plating/asteroid/basalt/planetary,
+/area/asteroid/paradise)
"htB" = (
/obj/machinery/door/airlock/medical/glass{
name = "Chemistry Lab";
@@ -15786,6 +15531,27 @@
},
/turf/open/floor/iron/white,
/area/medical/apothecary)
+"htC" = (
+/obj/machinery/requests_console{
+ department = "Cargo Bay";
+ departmentType = 2;
+ pixel_x = 31;
+ pixel_y = -2
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 2
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/quartermaster/sorting)
"htV" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/door/airlock/maintenance_hatch{
@@ -15795,14 +15561,6 @@
/obj/effect/mapping_helpers/airlock/abandoned,
/turf/open/floor/plating,
/area/maintenance/department/science/xenobiology)
-"huA" = (
-/obj/structure/sign/directions/engineering{
- pixel_y = 10
- },
-/turf/closed/wall,
-/area/hallway/primary/aft{
- name = "-3 Primary Hallway"
- })
"huR" = (
/obj/structure/lattice,
/obj/structure/railing{
@@ -15817,6 +15575,28 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/iron,
/area/maintenance/department/bridge)
+"hvh" = (
+/obj/effect/turf_decal/tile/blue/half/contrasted{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/light{
+ light_color = "#7AC3FF"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/digital_clock/directional/south,
+/turf/open/floor/iron/white,
+/area/medical/medbay/central)
"hvu" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -16053,35 +15833,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
/area/engine/engineering)
-"hAr" = (
-/obj/effect/turf_decal/sand/plating,
-/obj/structure/flora/rock,
-/turf/open/floor/plating/asteroid/basalt/planetary,
-/area/asteroid/paradise)
-"hAw" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/machinery/light/small,
-/obj/effect/turf_decal/tile/dark_red/fourcorners/contrasted{
- alpha = 180;
- color = "#DE3A3A"
- },
-/obj/machinery/flasher{
- id = "brigentryaux";
- pixel_y = -38;
- range = 3
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/item/radio/intercom{
- dir = 1;
- pixel_x = 1;
- pixel_y = -28
- },
-/turf/open/floor/iron,
-/area/security/brig)
"hAB" = (
/obj/structure/altar_of_gods,
/obj/item/flashlight/lantern{
@@ -16099,6 +15850,19 @@
/obj/structure/barricade/wooden,
/turf/open/floor/plating,
/area/maintenance/department/science/xenobiology)
+"hAU" = (
+/obj/effect/turf_decal/tile/dark_blue/half/contrasted{
+ alpha = 180
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/open/floor/iron/dark/side{
+ dir = 8
+ },
+/area/hallway/primary/fore{
+ name = "-1 Primary Hallway"
+ })
"hAV" = (
/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{
dir = 4
@@ -16190,6 +15954,11 @@
},
/turf/open/floor/iron,
/area/maintenance/department/engine)
+"hCx" = (
+/obj/structure/flora/rock/pile,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4,
+/turf/open/floor/plating/asteroid/basalt/planetary,
+/area/asteroid/paradise)
"hCL" = (
/obj/structure/cable/yellow{
icon_state = "2-8"
@@ -16266,6 +16035,15 @@
},
/turf/open/floor/plating,
/area/hallway/secondary/service)
+"hGc" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/sand/plating,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/open/floor/iron/techmaint/planetary,
+/area/asteroid/paradise/surface)
"hGe" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 1
@@ -16282,6 +16060,15 @@
},
/turf/open/floor/iron/dark,
/area/engine/atmos)
+"hGq" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/spawner/lootdrop/glowstick/lit,
+/obj/effect/turf_decal/trimline/yellow,
+/obj/structure/cable/yellow{
+ icon_state = "2-16"
+ },
+/turf/open/floor/pod/dark,
+/area/maintenance/department/eva)
"hGN" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
@@ -16326,17 +16113,6 @@
},
/turf/open/indestructible/sound/pool,
/area/crew_quarters/fitness/recreation)
-"hIZ" = (
-/obj/structure/railing{
- dir = 9
- },
-/obj/structure/closet/firecloset/full,
-/turf/open/floor/iron/dark/side{
- dir = 9
- },
-/area/hallway/primary/aft{
- name = "-3 Primary Hallway"
- })
"hJA" = (
/obj/structure/window/reinforced,
/turf/open/floor/engine,
@@ -16408,13 +16184,12 @@
/obj/effect/decal/cleanable/cobweb/cobweb2,
/turf/open/floor/iron/dark,
/area/security/detectives_office)
-"hKZ" = (
-/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/atmos_waste{
- dir = 4;
- piping_layer = 4
- },
-/turf/open/floor/plating/asteroid/basalt/planetary,
-/area/asteroid/paradise)
+"hLc" = (
+/obj/structure/table,
+/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/item/paicard,
+/turf/open/floor/plating,
+/area/maintenance/department/chapel)
"hLr" = (
/obj/structure/table/wood,
/obj/item/folder/yellow{
@@ -16596,6 +16371,23 @@
},
/turf/open/floor/iron/sepia,
/area/quartermaster/storage)
+"hRD" = (
+/obj/effect/turf_decal/tile/neutral/half/contrasted{
+ dir = 4
+ },
+/obj/structure/chair/fancy/bench{
+ layer = 2.5
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
+/obj/structure/reagent_dispensers/peppertank{
+ pixel_x = 1;
+ pixel_y = 32
+ },
+/turf/open/floor/iron,
+/area/security/prison)
"hRI" = (
/obj/structure/ladder,
/obj/structure/railing{
@@ -16687,6 +16479,13 @@
},
/turf/open/floor/plating,
/area/maintenance/department/crew_quarters/dorms)
+"hTd" = (
+/obj/structure/flora/rock/pile,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plating/asteroid/planetary,
+/area/asteroid/paradise)
"hTi" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
@@ -16703,11 +16502,36 @@
},
/turf/open/floor/iron,
/area/maintenance/department/chapel)
+"hTq" = (
+/obj/effect/turf_decal/siding/dark{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/dark{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/dark/warning{
+ dir = 8
+ },
+/obj/item/radio/intercom{
+ pixel_x = 32;
+ pixel_y = -2
+ },
+/turf/open/floor/iron/dark,
+/area/engineering/hallway{
+ name = "Engineering Viewing Platform"
+ })
"hTE" = (
/obj/machinery/telecomms/message_server/preset,
/obj/effect/turf_decal/stripes/closeup,
/turf/open/floor/circuit/green/telecomms/mainframe,
/area/tcommsat/server)
+"hTM" = (
+/obj/structure/closet/cardboard,
+/obj/effect/spawner/lootdrop/maintenance/four,
+/obj/item/melee/flyswatter,
+/obj/item/paicard,
+/turf/open/floor/iron,
+/area/maintenance/department/science/central)
"hTN" = (
/obj/effect/turf_decal/siding/dark{
dir = 8
@@ -16735,6 +16559,36 @@
},
/turf/open/floor/carpet/blue,
/area/crew_quarters/heads/cmo)
+"hUe" = (
+/obj/effect/spawner/structure/window,
+/obj/structure/curtain/directional{
+ color = "#ACD1E9";
+ icon_state = "bathroom-open";
+ icon_type = "bathroom"
+ },
+/turf/open/floor/plating,
+/area/medical/surgery)
+"hUj" = (
+/obj/effect/turf_decal/tile/blue/half/contrasted{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/turf/open/floor/iron/white,
+/area/medical/medbay/central)
"hUk" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -16748,21 +16602,6 @@
/obj/structure/grille/broken,
/turf/open/floor/iron,
/area/ai_monitored/turret_protected/aisat/maint)
-"hUJ" = (
-/obj/structure/window/reinforced{
- dir = 1
- },
-/obj/structure/table/reinforced,
-/obj/effect/turf_decal/tile/dark_blue/fourcorners/contrasted{
- alpha = 180
- },
-/obj/machinery/fax/bridge,
-/obj/item/toy/plush/renault{
- pixel_x = 5;
- pixel_y = 3
- },
-/turf/open/floor/iron/dark,
-/area/bridge)
"hUO" = (
/obj/effect/turf_decal/siding/wood{
dir = 9
@@ -16801,22 +16640,6 @@
},
/turf/open/floor/plating/airless,
/area/science/mixing)
-"hXU" = (
-/obj/machinery/nanite_program_hub,
-/obj/effect/turf_decal/stripes/line,
-/obj/machinery/requests_console{
- department = "Science";
- departmentType = 2;
- name = "Science RC";
- pixel_y = 30;
- receive_ore_updates = 1
- },
-/obj/machinery/camera/autoname{
- dir = 2;
- network = list("ss13","rd")
- },
-/turf/open/floor/iron,
-/area/science/research)
"hYe" = (
/obj/effect/turf_decal/siding/yellow,
/obj/effect/turf_decal/trimline/yellow/warning,
@@ -16996,6 +16819,18 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating/rust,
/area/science/mixing)
+"icQ" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/quartermaster/sorting)
"idf" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/spawner/lootdrop/grille_or_trash,
@@ -17025,6 +16860,14 @@
},
/turf/open/floor/iron,
/area/medical/medbay/central)
+"idv" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/power/apc/auto_name/east,
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/turf/open/floor/iron,
+/area/maintenance/department/engine)
"idO" = (
/obj/machinery/portable_atmospherics/pump,
/obj/effect/turf_decal/bot,
@@ -17045,15 +16888,23 @@
},
/turf/open/floor/iron/dark,
/area/medical/medbay/central)
-"ifk" = (
+"ifm" = (
/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/bot,
-/obj/machinery/shieldgen,
-/obj/item/radio/intercom{
- pixel_x = 1;
- pixel_y = -31
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
},
-/turf/open/floor/iron,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/machinery/door/poddoor{
+ id = "engstorage";
+ name = "Engineering Secure Storage Lockdown"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/iron/dark,
/area/engine/engineering)
"ifA" = (
/turf/open/openspace,
@@ -17123,35 +16974,6 @@
},
/turf/open/floor/iron/dark,
/area/engine/atmos)
-"igk" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/cable/yellow{
- icon_state = "8-16"
- },
-/obj/effect/turf_decal/trimline/yellow,
-/obj/structure/cable/yellow{
- icon_state = "8-32"
- },
-/obj/structure/lattice/catwalk/over,
-/turf/open/openspace,
-/area/maintenance/department/bridge)
-"igs" = (
-/obj/structure/table/reinforced,
-/obj/machinery/door/firedoor,
-/obj/item/reagent_containers/food/condiment/saltshaker{
- pixel_x = 4;
- pixel_y = 9
- },
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "Chefwindow";
- name = "Chef window"
- },
-/obj/item/toy/figure/chef{
- pixel_y = -1;
- pixel_x = -4
- },
-/turf/open/floor/iron/white,
-/area/crew_quarters/kitchen)
"igz" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/modular_computer/console/preset/curator,
@@ -17185,24 +17007,6 @@
"ihL" = (
/turf/closed/wall/r_wall/rust,
/area/maintenance/disposal/incinerator)
-"ihN" = (
-/obj/structure/urinal{
- dir = 1;
- pixel_x = 1;
- pixel_y = 33
- },
-/obj/effect/turf_decal/tile/blue/opposingcorners{
- dir = 1
- },
-/obj/item/radio/intercom{
- dir = 1;
- pixel_x = -31;
- pixel_y = -2
- },
-/turf/open/floor/iron/freezer,
-/area/hallway/primary/fore{
- name = "-1 Primary Hallway"
- })
"iil" = (
/obj/effect/turf_decal/tile/yellow/opposingcorners{
dir = 8
@@ -17292,10 +17096,6 @@
},
/turf/open/floor/carpet/blue,
/area/crew_quarters/cafeteria)
-"ijW" = (
-/obj/machinery/camera/autoname,
-/turf/open/openspace,
-/area/crew_quarters/kitchen)
"ikr" = (
/obj/structure/railing{
dir = 1
@@ -17399,6 +17199,20 @@
/obj/machinery/firealarm/directional/south,
/turf/open/floor/iron/white,
/area/crew_quarters/heads/hor)
+"inI" = (
+/obj/effect/turf_decal/trimline/yellow,
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-32"
+ },
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/structure/lattice/catwalk/over,
+/turf/open/openspace,
+/area/maintenance/department/security/brig)
"inZ" = (
/obj/effect/turf_decal/siding/wood{
dir = 6
@@ -17412,13 +17226,17 @@
},
/turf/open/floor/carpet/royalblue,
/area/crew_quarters/heads/captain)
-"ion" = (
-/obj/effect/turf_decal/sand/plating,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 8
+"iox" = (
+/obj/structure/closet/emcloset/anchored,
+/obj/structure/railing{
+ dir = 10
},
-/turf/open/floor/plating/asteroid/basalt/planetary,
-/area/asteroid/paradise)
+/turf/open/floor/iron/dark/side{
+ dir = 10
+ },
+/area/hallway/primary/aft{
+ name = "-3 Primary Hallway"
+ })
"ioR" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -17455,24 +17273,6 @@
},
/turf/open/openspace,
/area/security/brig)
-"ipG" = (
-/obj/structure/sign/directions/science{
- dir = 4;
- pixel_y = 10
- },
-/turf/closed/wall,
-/area/hallway/primary/aft{
- name = "-3 Primary Hallway"
- })
-"irk" = (
-/obj/machinery/atmospherics/components/unary/thermomachine/freezer{
- dir = 1;
- initialize_directions = 1
- },
-/obj/effect/turf_decal/bot,
-/obj/machinery/firealarm/directional/south,
-/turf/open/floor/iron/tech,
-/area/engine/engineering)
"irp" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -17600,43 +17400,15 @@
},
/turf/open/floor/plating/asteroid/planetary,
/area/crew_quarters/dorms)
-"ivf" = (
-/obj/effect/turf_decal/tile/dark_green/fourcorners/contrasted,
-/mob/living/simple_animal/hostile/retaliate/frog{
- attacked_sound = 'sound/effects/huuu.ogg';
- dir = 8;
- name = "Larry";
- pixel_y = 12;
- stepped_sound = null
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 9
- },
-/turf/open/floor/iron,
-/area/hydroponics)
-"ivO" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/cable/yellow{
- icon_state = "8-32"
- },
-/obj/effect/turf_decal/trimline/yellow,
-/obj/structure/closet,
-/obj/effect/spawner/lootdrop/maintenance/two,
-/obj/structure/lattice/catwalk/over,
-/turf/open/openspace,
-/area/maintenance/department/science/central)
"iwb" = (
/turf/closed/wall/r_wall,
/area/maintenance/department/engine/atmos)
-"iwg" = (
-/obj/machinery/door/airlock/maintenance_hatch{
- name = "Maintenance Hatch";
- req_access_txt = "12";
- security_level = 6
- },
-/obj/machinery/door/firedoor,
-/turf/open/floor/plating,
-/area/maintenance/department/security/brig)
+"iwl" = (
+/obj/structure/flora/ausbushes/lavendergrass,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/asteroid/planetary,
+/area/asteroid/paradise)
"iwn" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
@@ -17688,6 +17460,25 @@
},
/turf/open/floor/iron,
/area/bridge/meeting_room)
+"ixf" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-4"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 2
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/turf/open/floor/plating,
+/area/quartermaster/sorting)
"ixz" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
@@ -17695,25 +17486,10 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/dock/drydock,
/area/quartermaster/storage)
-"ixD" = (
-/obj/structure/chair,
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/obj/machinery/light{
- dir = 4
- },
-/obj/item/radio/intercom{
- dir = 1;
- pixel_x = 32;
- pixel_y = 3
- },
-/turf/open/floor/iron/dark/side{
- dir = 5
- },
-/area/hallway/primary/fore{
- name = "-1 Primary Hallway"
- })
+"iya" = (
+/obj/effect/turf_decal/sand/plating,
+/turf/closed/mineral/random/air,
+/area/asteroid/paradise)
"iyb" = (
/obj/effect/turf_decal/tile/black/opposingcorners{
dir = 1
@@ -17732,15 +17508,14 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/turf/open/floor/iron/dark,
/area/ai_monitored/security/armory)
-"iyq" = (
-/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/engine_waste{
- dir = 8
- },
-/turf/open/floor/plating/asteroid/basalt/planetary,
-/area/asteroid/paradise)
"iyS" = (
/turf/closed/wall,
/area/medical/exam_room)
+"izd" = (
+/obj/structure/flora/ausbushes/ywflowers,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/asteroid/planetary,
+/area/asteroid/paradise)
"izj" = (
/turf/closed/wall,
/area/science/misc_lab)
@@ -17753,15 +17528,13 @@
/area/hallway/primary/central{
name = "-2 Primary Hallway"
})
-"iAk" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/spawner/lootdrop/glowstick/lit,
-/obj/effect/turf_decal/trimline/yellow,
-/obj/structure/cable/yellow{
- icon_state = "2-16"
+"izt" = (
+/obj/structure/railing{
+ dir = 5
},
-/turf/open/floor/pod/dark,
-/area/maintenance/department/eva)
+/obj/structure/lattice,
+/turf/open/openspace,
+/area/maintenance/department/security/brig)
"iAI" = (
/obj/effect/turf_decal/tile/blue/opposingcorners{
dir = 1
@@ -17781,6 +17554,19 @@
},
/turf/open/floor/iron/white,
/area/crew_quarters/heads/cmo)
+"iAM" = (
+/obj/effect/turf_decal/tile/neutral/half/contrasted{
+ dir = 4
+ },
+/obj/structure/chair/fancy/bench{
+ layer = 2.5
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 6
+ },
+/obj/machinery/firealarm/directional/north,
+/turf/open/floor/iron,
+/area/security/prison)
"iAN" = (
/obj/structure/chair/office{
dir = 1
@@ -17797,6 +17583,13 @@
/obj/structure/grille/broken,
/turf/open/floor/plating,
/area/maintenance/department/engine/atmos)
+"iBP" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/numbers/two_nine,
+/turf/open/floor/iron,
+/area/maintenance/department/crew_quarters/dorms)
"iBU" = (
/obj/item/kirbyplants/random,
/obj/structure/disposalpipe/segment{
@@ -17812,16 +17605,24 @@
/obj/structure/frame/machine,
/turf/open/floor/plating,
/area/maintenance/department/crew_quarters/dorms)
-"iDj" = (
-/obj/structure/flora/rock/pile,
-/turf/closed/mineral/random/air,
-/area/asteroid/paradise)
"iDI" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/rack,
/obj/effect/spawner/lootdrop/maintenance/four,
/turf/open/floor/plating/asteroid/basalt/planetary,
/area/science/misc_lab)
+"iEa" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-8"
+ },
+/obj/effect/turf_decal/trimline/dark_blue/filled/line,
+/obj/structure/railing/corner,
+/obj/item/storage/secure/safe/caps_spare{
+ pixel_x = 5;
+ pixel_y = -32
+ },
+/turf/open/floor/iron/dark,
+/area/bridge/meeting_room)
"iEh" = (
/obj/machinery/firealarm/directional/east,
/obj/structure/fireplace,
@@ -17878,6 +17679,20 @@
/obj/structure/cable/yellow,
/turf/open/floor/plating,
/area/crew_quarters/heads/hor)
+"iFx" = (
+/obj/machinery/computer/cloning,
+/obj/effect/turf_decal/bot,
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/power/apc/auto_name/north{
+ pixel_y = 24
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/turf/open/floor/iron,
+/area/medical/genetics/cloning)
"iGq" = (
/turf/closed/wall/rust,
/area/quartermaster/warehouse)
@@ -17989,18 +17804,36 @@
},
/turf/open/floor/carpet/red,
/area/crew_quarters/heads/hos)
-"iJz" = (
-/obj/effect/mapping_helpers/airlock/unres{
+"iJe" = (
+/obj/effect/turf_decal/tile/purple/anticorner/contrasted{
+ dir = 4
+ },
+/obj/item/radio/intercom{
+ dir = 1;
+ pixel_x = 32;
+ pixel_y = 29
+ },
+/turf/open/floor/iron/dark/corner{
dir = 8
},
-/obj/machinery/door/airlock/medical/glass{
- name = "kitchen";
- req_one_access_txt = "28;25;35"
+/area/hallway/primary/central{
+ name = "-2 Primary Hallway"
+ })
+"iJL" = (
+/obj/machinery/light_switch{
+ pixel_x = 25;
+ pixel_y = -25
},
-/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/tile/bar/opposingcorners,
-/turf/open/floor/iron/dark,
-/area/crew_quarters/kitchen)
+/obj/machinery/light,
+/obj/item/kirbyplants/random,
+/obj/machinery/camera/autoname{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 1
+ },
+/turf/open/floor/iron/showroomfloor,
+/area/crew_quarters/cryopods)
"iKu" = (
/obj/machinery/door/airlock/public/glass{
name = "Cryogenic Lounge"
@@ -18120,19 +17953,17 @@
/obj/item/bluespace_capsule,
/turf/open/floor/plating,
/area/vacant_room/office)
-"iMF" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
+"iMI" = (
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 5
},
-/obj/effect/turf_decal/numbers/two_nine{
- dir = 2
+/obj/machinery/suit_storage_unit/mining/eva,
+/obj/machinery/light_switch{
+ pixel_x = 23;
+ pixel_y = -9
},
-/turf/open/floor/iron,
-/area/maintenance/department/science/xenobiology)
+/turf/open/floor/carpet/orange,
+/area/quartermaster/qm)
"iNk" = (
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating/airless,
@@ -18174,21 +18005,6 @@
},
/turf/open/floor/iron,
/area/janitor)
-"iNP" = (
-/obj/machinery/light_switch{
- pixel_x = 25;
- pixel_y = -25
- },
-/obj/machinery/light,
-/obj/item/kirbyplants/random,
-/obj/machinery/camera/autoname{
- dir = 1
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 1
- },
-/turf/open/floor/iron/showroomfloor,
-/area/crew_quarters/cryopods)
"iOA" = (
/obj/machinery/conveyor{
id = "QMLoad2"
@@ -18201,6 +18017,16 @@
},
/turf/open/floor/iron/dark,
/area/quartermaster/storage)
+"iOV" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/power/apc/auto_name/east,
+/obj/structure/cable/yellow,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/science/central)
"iPs" = (
/obj/effect/turf_decal/siding/dark,
/obj/effect/turf_decal/siding/dark{
@@ -18221,16 +18047,20 @@
},
/turf/open/floor/carpet/blue,
/area/crew_quarters/heads/hop)
-"iPM" = (
-/obj/effect/turf_decal/sand/plating,
-/obj/structure/flora/ausbushes/sparsegrass,
+"iPK" = (
+/obj/structure/flora/ausbushes/ywflowers,
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 8
- },
/turf/open/floor/plating/asteroid/planetary,
/area/asteroid/paradise)
+"iPP" = (
+/obj/structure/sign/directions/engineering{
+ pixel_y = 10
+ },
+/turf/closed/wall,
+/area/hallway/primary/aft{
+ name = "-3 Primary Hallway"
+ })
"iQa" = (
/obj/effect/turf_decal/siding/wideplating/dark{
dir = 1
@@ -18249,6 +18079,13 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/iron,
/area/maintenance/department/chapel)
+"iQo" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/structure/lattice,
+/turf/open/openspace,
+/area/maintenance/department/security/brig)
"iQq" = (
/obj/structure/disposalpipe/segment,
/obj/effect/turf_decal/evac,
@@ -18256,15 +18093,6 @@
/area/hallway/primary/central{
name = "-2 Primary Hallway"
})
-"iQS" = (
-/obj/item/radio/intercom{
- pixel_x = -31;
- pixel_y = -2
- },
-/turf/open/openspace,
-/area/engineering/hallway{
- name = "Engineering Viewing Platform"
- })
"iRc" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -18362,12 +18190,6 @@
/obj/effect/turf_decal/tile/neutral/anticorner/contrasted,
/turf/open/floor/iron,
/area/security/brig)
-"iTH" = (
-/obj/effect/turf_decal/numbers/two_nine{
- dir = 2
- },
-/turf/open/floor/plating,
-/area/maintenance/department/crew_quarters/dorms)
"iTL" = (
/obj/item/radio/intercom{
pixel_y = 30
@@ -18601,24 +18423,6 @@
/obj/machinery/atmospherics/components/unary/thermomachine/heater/on,
/turf/open/floor/iron,
/area/engine/atmos)
-"iZm" = (
-/obj/machinery/atmospherics/components/trinary/mixer/airmix/flipped{
- dir = 8;
- node1_concentration = 0.79;
- node2_concentration = 0.21;
- piping_layer = 2
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral/half/contrasted{
- dir = 4
- },
-/obj/structure/window/plasma/reinforced{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/engine/atmos)
"iZu" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -18637,6 +18441,14 @@
/area/hallway/primary/fore{
name = "-1 Primary Hallway"
})
+"iZO" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/closet/wardrobe/pink,
+/obj/effect/turf_decal/bot,
+/obj/effect/turf_decal/sand/plating,
+/obj/item/paicard,
+/turf/open/floor/iron,
+/area/crew_quarters/dorms)
"iZV" = (
/turf/closed/wall,
/area/ai_monitored/turret_protected/aisat/foyer)
@@ -18675,6 +18487,20 @@
/area/hallway/primary/fore{
name = "-1 Primary Hallway"
})
+"jaF" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/power/rad_collector,
+/turf/open/floor/iron/dark,
+/area/engine/engineering)
"jaK" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 9
@@ -18699,6 +18525,22 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/wood,
/area/crew_quarters/cafeteria)
+"jcz" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment,
+/obj/item/radio/intercom{
+ dir = 1;
+ pixel_x = 29;
+ pixel_y = -2
+ },
+/turf/open/floor/iron/dark/side{
+ dir = 4
+ },
+/area/hallway/primary/central{
+ name = "-2 Primary Hallway"
+ })
"jdh" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -18710,14 +18552,6 @@
slowdown = 0
},
/area/asteroid/paradise/surface)
-"jdF" = (
-/obj/machinery/door/airlock/maintenance_hatch{
- name = "Maintenance Hatch";
- req_access_txt = "12"
- },
-/obj/machinery/door/firedoor,
-/turf/open/floor/plating,
-/area/maintenance/department/engine/atmos)
"jdU" = (
/obj/effect/turf_decal/tile/neutral/fourcorners/contrasted,
/obj/structure/cable/yellow{
@@ -18755,27 +18589,6 @@
dir = 8
},
/area/science/lab)
-"jfL" = (
-/obj/effect/turf_decal/tile/blue/half/contrasted{
- dir = 4
- },
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/structure/cable/yellow{
- icon_state = "2-8"
- },
-/obj/structure/disposalpipe/segment{
- dir = 10
- },
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 1
- },
-/turf/open/floor/iron/white,
-/area/medical/medbay/central)
"jfU" = (
/obj/machinery/door/airlock/medical{
name = "Psychologist";
@@ -18842,15 +18655,6 @@
/obj/structure/girder,
/turf/open/floor/plating,
/area/maintenance/department/chapel)
-"jji" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/closet,
-/obj/machinery/light/small,
-/obj/effect/spawner/lootdrop/maintenance/four,
-/obj/item/paicard,
-/turf/open/floor/iron,
-/area/maintenance/department/medical/morgue)
"jjj" = (
/obj/structure/noticeboard{
desc = "A board for remembering the fallen of the station.";
@@ -18887,27 +18691,6 @@
/area/hallway/primary/aft{
name = "-3 Primary Hallway"
})
-"jkr" = (
-/obj/effect/turf_decal/tile/blue/half/contrasted{
- dir = 8
- },
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 8
- },
-/turf/open/floor/iron/white,
-/area/medical/medbay/central)
-"jks" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/plating/asteroid/basalt/planetary,
-/area/asteroid/paradise)
"jkx" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable{
@@ -18985,6 +18768,12 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/engine/atmos)
+"jmP" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/engine_waste{
+ dir = 8
+ },
+/turf/open/floor/plating/asteroid/basalt/planetary,
+/area/asteroid/paradise)
"jmY" = (
/turf/open/floor/plating/beach/coastline_b,
/area/asteroid/paradise/surface/water)
@@ -19075,6 +18864,10 @@
},
/turf/open/openspace,
/area/maintenance/department/security/brig)
+"joL" = (
+/obj/structure/flora/rock/pile,
+/turf/closed/mineral/random/air,
+/area/asteroid/paradise)
"jpU" = (
/obj/structure/railing/corner{
dir = 4
@@ -19101,18 +18894,6 @@
},
/turf/open/floor/iron/dark,
/area/engine/engineering)
-"jqF" = (
-/obj/structure/cable/yellow{
- icon_state = "1-8"
- },
-/obj/effect/turf_decal/trimline/dark_blue/filled/line,
-/obj/structure/railing/corner,
-/obj/item/storage/secure/safe/caps_spare{
- pixel_x = 5;
- pixel_y = -32
- },
-/turf/open/floor/iron/dark,
-/area/bridge/meeting_room)
"jqN" = (
/obj/item/bikehorn{
pixel_x = -3;
@@ -19249,31 +19030,6 @@
},
/turf/open/floor/carpet/green,
/area/crew_quarters/cafeteria)
-"jsK" = (
-/obj/structure/railing{
- dir = 4
- },
-/obj/effect/turf_decal/siding/dark{
- dir = 4
- },
-/obj/structure/cable/yellow{
- icon_state = "2-8"
- },
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 10
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 10
- },
-/turf/open/floor/iron/dark/side{
- dir = 4
- },
-/area/hallway/primary/central{
- name = "-2 Primary Hallway"
- })
"jsW" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
@@ -19345,21 +19101,6 @@
},
/turf/open/floor/wood,
/area/crew_quarters/dorms)
-"juB" = (
-/obj/effect/turf_decal/tile/neutral/half/contrasted{
- dir = 8
- },
-/obj/structure/table,
-/obj/item/flashlight/flare{
- pixel_x = 4;
- pixel_y = 5
- },
-/obj/item/extinguisher/advanced{
- pixel_x = -8;
- pixel_y = 2
- },
-/turf/open/floor/iron,
-/area/engine/atmos)
"jwj" = (
/obj/machinery/light{
dir = 8
@@ -19636,16 +19377,6 @@
/obj/effect/decal/cleanable/glass,
/turf/open/floor/plating/rust,
/area/science/test_area)
-"jCI" = (
-/obj/effect/turf_decal/bot,
-/obj/machinery/computer/camera_advanced/xenobio,
-/obj/item/radio/intercom{
- dir = 1;
- pixel_x = 32;
- pixel_y = -3
- },
-/turf/open/floor/iron/grid/steel,
-/area/science/xenobiology)
"jDq" = (
/obj/structure/cable/yellow{
icon_state = "1-2"
@@ -19955,19 +19686,6 @@
/area/hallway/primary/central{
name = "-2 Primary Hallway"
})
-"jIP" = (
-/obj/effect/turf_decal/sand/plating,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 8
- },
-/turf/open/floor/iron,
-/area/crew_quarters/dorms)
"jJH" = (
/obj/structure/chair/stool{
dir = 4
@@ -19978,20 +19696,6 @@
dir = 9
},
/area/asteroid/paradise/surface)
-"jJJ" = (
-/obj/structure/flora/ausbushes/ywflowers{
- max_integrity = 20
- },
-/obj/structure/window/reinforced{
- dir = 8
- },
-/obj/structure/window/reinforced{
- dir = 4
- },
-/turf/open/floor/grass/no_border,
-/area/hallway/primary/fore{
- name = "-1 Primary Hallway"
- })
"jJL" = (
/obj/effect/turf_decal/tile/dark_blue/fourcorners/contrasted{
alpha = 180
@@ -20047,21 +19751,6 @@
/area/hallway/primary/fore{
name = "-1 Primary Hallway"
})
-"jKJ" = (
-/obj/effect/turf_decal/tile/purple/anticorner/contrasted{
- dir = 4
- },
-/obj/item/radio/intercom{
- dir = 1;
- pixel_x = 32;
- pixel_y = 29
- },
-/turf/open/floor/iron/dark/corner{
- dir = 8
- },
-/area/hallway/primary/central{
- name = "-2 Primary Hallway"
- })
"jKK" = (
/obj/effect/turf_decal/tile/blue/anticorner/contrasted{
dir = 1
@@ -20151,19 +19840,6 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/turf/open/floor/plating,
/area/ai_monitored/turret_protected/aisat/maint)
-"jLT" = (
-/obj/structure/chair/fancy/sofa/old/left{
- dir = 4
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 9
- },
-/obj/machinery/vending/wallmed{
- pixel_y = 31;
- products = list(/obj/item/stack/medical/gauze = 4, /obj/item/reagent_containers/hypospray/medipen = 6, /obj/item/reagent_containers/hypospray/medipen/dexalin = 3, /obj/item/reagent_containers/glass/bottle/epinephrine = 2, /obj/item/reagent_containers/glass/bottle/charcoal = 2)
- },
-/turf/open/floor/carpet/green,
-/area/crew_quarters/cafeteria)
"jLX" = (
/obj/effect/spawner/structure/window,
/obj/machinery/door/poddoor/shutters/preopen{
@@ -20263,6 +19939,11 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron/dark,
/area/security/execution/education)
+"jOz" = (
+/obj/machinery/portable_atmospherics/scrubber,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/iron/tech,
+/area/engine/engineering)
"jOC" = (
/obj/item/radio/intercom{
pixel_x = 33;
@@ -20281,19 +19962,6 @@
},
/turf/open/floor/iron/dark,
/area/bridge/meeting_room)
-"jOM" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/power/apc/auto_name/north{
- pixel_y = 24
- },
-/obj/structure/cable/yellow{
- icon_state = "0-4"
- },
-/obj/effect/turf_decal/numbers/two_nine{
- dir = 2
- },
-/turf/open/floor/iron,
-/area/maintenance/department/cargo)
"jOP" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
@@ -20385,14 +20053,10 @@
},
/turf/open/floor/iron/dark,
/area/bridge)
-"jRM" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/closet/wardrobe/pink,
-/obj/effect/turf_decal/bot,
-/obj/effect/turf_decal/sand/plating,
-/obj/item/paicard,
-/turf/open/floor/iron,
-/area/crew_quarters/dorms)
+"jRN" = (
+/obj/structure/spider/stickyweb,
+/turf/open/floor/plating/asteroid/basalt/planetary,
+/area/asteroid/paradise)
"jSm" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
@@ -20460,6 +20124,17 @@
},
/turf/open/floor/iron/grid/steel,
/area/science/mixing)
+"jUk" = (
+/obj/effect/landmark/start/assistant,
+/obj/structure/cable/yellow{
+ icon_state = "2-32"
+ },
+/obj/effect/turf_decal/trimline/yellow,
+/obj/structure/lattice/catwalk/over,
+/turf/open/openspace,
+/area/hallway/primary/fore{
+ name = "-1 Primary Hallway"
+ })
"jUp" = (
/obj/machinery/portable_atmospherics/pump,
/obj/effect/turf_decal/bot{
@@ -20545,6 +20220,34 @@
},
/turf/open/floor/plating,
/area/maintenance/department/science/central)
+"jWf" = (
+/obj/effect/turf_decal/sand/plating,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/asteroid/planetary,
+/area/asteroid/paradise)
+"jWk" = (
+/obj/structure/cable/yellow{
+ icon_state = "2-16"
+ },
+/obj/effect/turf_decal/trimline/yellow,
+/obj/effect/spawner/lootdrop/grille_or_trash,
+/turf/open/floor/pod/dark,
+/area/maintenance/department/crew_quarters/dorms)
+"jWl" = (
+/obj/machinery/portable_atmospherics/scrubber,
+/obj/effect/turf_decal/bot,
+/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer4{
+ dir = 8
+ },
+/obj/item/radio/intercom{
+ pixel_x = 32;
+ pixel_y = -2
+ },
+/turf/open/floor/iron/dark,
+/area/hallway/primary/aft{
+ name = "-3 Primary Hallway"
+ })
"jWU" = (
/obj/effect/turf_decal/tile/blue/half{
dir = 1
@@ -20635,6 +20338,18 @@
},
/turf/open/floor/iron,
/area/ai_monitored/turret_protected/aisat/maint)
+"jYE" = (
+/obj/machinery/power/compressor{
+ comp_id = "incineratorturbineRight";
+ dir = 1;
+ luminosity = 2
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/cable,
+/turf/open/floor/engine/vacuum,
+/area/maintenance/disposal/incinerator)
"jYR" = (
/obj/effect/turf_decal/siding/dark,
/obj/effect/turf_decal/siding/dark{
@@ -20710,20 +20425,6 @@
},
/turf/open/floor/iron/freezer,
/area/crew_quarters/kitchen/coldroom)
-"kam" = (
-/obj/structure/table,
-/obj/item/geiger_counter{
- pixel_x = 6;
- pixel_y = 3
- },
-/obj/item/toy/plush/plushvar{
- pixel_x = -2;
- pixel_y = 9
- },
-/turf/open/floor/iron/dark,
-/area/engineering/hallway{
- name = "Engineering Viewing Platform"
- })
"kao" = (
/obj/structure/chair/office/light{
dir = 1
@@ -20737,6 +20438,24 @@
/obj/effect/decal/cleanable/oil,
/turf/open/floor/iron/dark,
/area/engine/engineering)
+"kax" = (
+/obj/structure/chair/fancy/sofa/old/left{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 6
+ },
+/obj/effect/turf_decal/siding/white,
+/obj/structure/railing{
+ layer = 3
+ },
+/obj/item/radio/intercom{
+ dir = 1;
+ pixel_x = 29;
+ pixel_y = -3
+ },
+/turf/open/floor/carpet/green,
+/area/crew_quarters/cafeteria)
"kbq" = (
/obj/structure/sign/warning/radiation/rad_area,
/turf/closed/wall/r_wall,
@@ -20777,11 +20496,26 @@
},
/turf/open/floor/iron/sepia,
/area/quartermaster/warehouse)
-"kcU" = (
-/obj/structure/lattice/catwalk/over,
-/obj/machinery/firealarm/directional/north,
-/turf/open/openspace,
-/area/maintenance/department/security/brig)
+"kcD" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/obj/structure/table/wood,
+/obj/machinery/computer/security/telescreen/entertainment{
+ network = list("thunder","court","public");
+ pixel_x = -1;
+ pixel_y = 31
+ },
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#7AC3FF"
+ },
+/obj/item/storage/crayons{
+ pixel_x = 3;
+ pixel_y = 4
+ },
+/turf/open/floor/carpet/green,
+/area/crew_quarters/cafeteria)
"kcX" = (
/obj/machinery/computer/security/mining{
dir = 4
@@ -20831,14 +20565,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/crew_quarters/dorms)
-"keI" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/trimline/yellow,
-/obj/structure/cable/yellow{
- icon_state = "8-16"
- },
-/turf/open/floor/pod/dark,
-/area/maintenance/department/science/xenobiology)
"keO" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/cable/yellow{
@@ -20857,15 +20583,6 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating/asteroid/basalt/planetary,
/area/quartermaster/storage)
-"kfb" = (
-/obj/structure/disposalpipe/segment,
-/obj/machinery/firealarm/directional/east,
-/turf/open/floor/iron/dark/side{
- dir = 4
- },
-/area/hallway/primary/central{
- name = "-2 Primary Hallway"
- })
"kfl" = (
/turf/closed/wall/r_wall,
/area/bridge/meeting_room)
@@ -20883,6 +20600,15 @@
},
/turf/open/floor/iron/dark,
/area/engine/atmos)
+"kgq" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/effect/turf_decal/numbers/two_nine{
+ pixel_y = 16
+ },
+/turf/open/floor/iron/dark/side,
+/area/hallway/primary/aft{
+ name = "-3 Primary Hallway"
+ })
"kgt" = (
/obj/effect/turf_decal/stripes/line,
/obj/structure/fence/cut{
@@ -20921,21 +20647,6 @@
"khs" = (
/turf/closed/wall/rust,
/area/science/lab)
-"kie" = (
-/obj/effect/turf_decal/siding/dark{
- dir = 8
- },
-/obj/effect/turf_decal/siding/dark{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/dark/warning{
- dir = 8
- },
-/obj/machinery/firealarm/directional/east,
-/turf/open/floor/iron/dark,
-/area/engineering/hallway{
- name = "Engineering Viewing Platform"
- })
"kiz" = (
/obj/effect/decal/cleanable/greenglow,
/turf/open/floor/plating/dirt/jungle/wasteland,
@@ -20971,6 +20682,24 @@
/obj/structure/cable/yellow,
/turf/open/floor/plating,
/area/ai_monitored/security/armory)
+"klc" = (
+/obj/item/clothing/gloves/color/yellow,
+/obj/effect/turf_decal/stripes/line,
+/obj/effect/turf_decal/bot,
+/obj/machinery/camera/autoname{
+ network = list("ss13","engine")
+ },
+/obj/structure/closet/secure_closet/atmospherics{
+ anchored = 1;
+ req_access = null;
+ req_one_access_txt = "11"
+ },
+/obj/item/radio/intercom{
+ pixel_x = -1;
+ pixel_y = 29
+ },
+/turf/open/floor/iron,
+/area/engine/atmos)
"klh" = (
/obj/structure/flora/ausbushes/lavendergrass,
/obj/effect/decal/cleanable/dirt,
@@ -21020,17 +20749,6 @@
slowdown = 0
},
/area/asteroid/paradise/surface)
-"klO" = (
-/obj/effect/turf_decal/tile/neutral/half/contrasted{
- dir = 8
- },
-/obj/structure/closet/secure_closet/engineering_electrical,
-/obj/item/radio/intercom{
- pixel_x = 1;
- pixel_y = -31
- },
-/turf/open/floor/iron,
-/area/engine/atmos)
"kmg" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
@@ -21050,6 +20768,16 @@
},
/turf/open/floor/plating,
/area/maintenance/department/crew_quarters/bar)
+"kmz" = (
+/obj/structure/lattice/catwalk/over,
+/obj/structure/railing{
+ dir = 8
+ },
+/obj/structure/closet/firecloset/full,
+/turf/open/openspace,
+/area/hallway/primary/fore{
+ name = "-1 Primary Hallway"
+ })
"kmN" = (
/obj/effect/landmark/event_spawn,
/obj/effect/turf_decal/siding/wood{
@@ -21064,6 +20792,11 @@
/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
/turf/open/floor/carpet/purple,
/area/crew_quarters/cafeteria)
+"kmO" = (
+/obj/structure/flora/rock/pile,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/asteroid/planetary,
+/area/asteroid/paradise)
"kmS" = (
/obj/effect/turf_decal/tile/purple/half/contrasted,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
@@ -21078,23 +20811,6 @@
},
/turf/open/floor/iron,
/area/security/brig)
-"kmY" = (
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 1
- },
-/obj/structure/disposalpipe/segment{
- dir = 10
- },
-/obj/machinery/light_switch{
- pixel_x = 23;
- pixel_y = -23
- },
-/turf/open/floor/wood,
-/area/crew_quarters/theatre/backstage)
"knd" = (
/obj/structure/table/reinforced,
/obj/item/aiModule/reset,
@@ -21169,26 +20885,6 @@
/obj/machinery/light/small,
/turf/open/floor/iron,
/area/maintenance/department/chapel)
-"koq" = (
-/obj/machinery/computer/security/telescreen/minisat{
- dir = 4;
- pixel_x = -32
- },
-/obj/structure/table/wood,
-/obj/machinery/light{
- dir = 8
- },
-/obj/item/storage/secure/briefcase{
- layer = 3;
- pixel_x = 15;
- pixel_y = 8
- },
-/obj/item/storage/lockbox/medal{
- pixel_x = -1;
- pixel_y = 1
- },
-/turf/open/floor/carpet/royalblue,
-/area/crew_quarters/heads/captain)
"koJ" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
@@ -21391,6 +21087,24 @@
},
/turf/open/floor/iron/dark,
/area/security/execution/education)
+"ktf" = (
+/obj/structure/railing/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/dark/corner{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/iron/dark/corner{
+ dir = 4
+ },
+/area/hallway/primary/central{
+ name = "-2 Primary Hallway"
+ })
"kti" = (
/obj/effect/turf_decal/stripes/line,
/obj/machinery/status_display/evac{
@@ -21448,28 +21162,6 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/plating,
/area/quartermaster/sorting)
-"kuF" = (
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/structure/cable/yellow{
- icon_state = "1-4"
- },
-/obj/structure/disposalpipe/segment{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/effect/turf_decal/tile/red/half/contrasted{
- alpha = 180;
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
-/turf/open/floor/iron,
-/area/hallway/primary/central{
- name = "-2 Primary Hallway"
- })
"kuW" = (
/turf/closed/wall/r_wall/rust,
/area/science/xenobiology)
@@ -21574,6 +21266,16 @@
},
/turf/open/floor/iron,
/area/maintenance/department/security/brig)
+"kyr" = (
+/obj/machinery/door/window/brigdoor/northright{
+ id = "Cell 1";
+ name = "Cell 1";
+ req_access_txt = "1"
+ },
+/obj/effect/turf_decal/delivery,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/turf/open/floor/prison/dark,
+/area/security/prison)
"kyv" = (
/obj/effect/turf_decal/sand/plating,
/obj/effect/turf_decal/stripes/line{
@@ -21687,6 +21389,15 @@
},
/turf/open/floor/iron/white,
/area/science/research)
+"kAQ" = (
+/obj/structure/railing/corner,
+/obj/effect/turf_decal/siding/wood,
+/obj/machinery/camera/autoname,
+/obj/machinery/vending/games{
+ pixel_y = -1
+ },
+/turf/open/floor/carpet/green,
+/area/crew_quarters/cafeteria)
"kAS" = (
/obj/machinery/atmospherics/components/unary/cryo_cell{
piping_layer = 2
@@ -21798,42 +21509,6 @@
/obj/structure/fence/cut/large,
/turf/open/floor/plating/dirt/planetary,
/area/asteroid/paradise/surface/grass)
-"kCw" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/structure/disposalpipe/segment{
- dir = 2
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/effect/turf_decal/delivery,
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/turf/open/floor/iron/dark,
-/area/engine/engineering)
-"kCL" = (
-/obj/machinery/door/airlock/maintenance_hatch{
- name = "Maintenance Hatch";
- req_one_access_txt = "4;1"
- },
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/closeup{
- dir = 1
- },
-/obj/machinery/door/firedoor,
-/turf/open/floor/plating,
-/area/security/brig)
"kCM" = (
/turf/open/floor/plating,
/area/quartermaster/warehouse)
@@ -21866,21 +21541,6 @@
/obj/structure/reagent_dispensers/cooking_oil,
/turf/open/floor/iron/freezer,
/area/crew_quarters/kitchen/coldroom)
-"kEs" = (
-/obj/machinery/computer/turbine_computer{
- dir = 1;
- id = "incineratorturbineLeft";
- name = "gas turbine left control computer"
- },
-/obj/structure/sign/warning/nosmoking{
- pixel_x = 1;
- pixel_y = -32
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/iron/dark,
-/area/maintenance/disposal/incinerator)
"kEO" = (
/obj/structure/sign/warning/securearea{
pixel_y = 32
@@ -21906,12 +21566,6 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/closed/wall,
/area/maintenance/department/bridge)
-"kFt" = (
-/obj/structure/flora/rock,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating/asteroid/basalt/planetary,
-/area/asteroid/paradise)
"kFx" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
@@ -21956,14 +21610,6 @@
},
/turf/open/floor/plating,
/area/science/robotics)
-"kGQ" = (
-/obj/structure/cable/yellow{
- icon_state = "4-32"
- },
-/obj/effect/turf_decal/trimline/yellow,
-/obj/structure/lattice/catwalk/over,
-/turf/open/openspace,
-/area/maintenance/department/medical/central)
"kHm" = (
/obj/effect/turf_decal/tile/blue/opposingcorners{
dir = 1
@@ -21990,31 +21636,6 @@
/obj/machinery/airalarm/directional/west,
/turf/open/floor/iron/white,
/area/crew_quarters/heads/cmo)
-"kHE" = (
-/obj/effect/mapping_helpers/airlock/unres{
- dir = 8
- },
-/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/effect/turf_decal/tile/blue/half/contrasted{
- dir = 8
- },
-/obj/machinery/door/airlock/medical/glass{
- emergency = 1;
- id_tag = "MedbayFoyer";
- name = "Medbay";
- req_one_access_txt = "5"
- },
-/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{
- cycle_id = "medbay"
- },
-/turf/open/floor/iron/white,
-/area/medical/medbay/central)
"kHF" = (
/obj/machinery/portable_atmospherics/canister/plasma,
/obj/effect/turf_decal/delivery,
@@ -22062,26 +21683,6 @@
},
/turf/open/floor/noslip/standard,
/area/quartermaster/storage)
-"kIp" = (
-/obj/item/toy/plush/moth/firewatch,
-/turf/open/floor/plating/asteroid/basalt/planetary,
-/area/asteroid/paradise)
-"kIR" = (
-/obj/machinery/power/compressor{
- comp_id = "incineratorturbineLeft";
- dir = 1;
- luminosity = 2
- },
-/obj/structure/cable{
- icon_state = "0-2"
- },
-/obj/structure/cable,
-/obj/machinery/camera/autoname{
- dir = 4;
- network = list("ss13, engine")
- },
-/turf/open/floor/engine/vacuum,
-/area/maintenance/disposal/incinerator)
"kJA" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -22096,6 +21697,23 @@
/area/hallway/primary/aft{
name = "-3 Primary Hallway"
})
+"kJL" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/machinery/light_switch{
+ pixel_x = 23;
+ pixel_y = -23
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/theatre/backstage)
"kJM" = (
/obj/structure/ladder,
/obj/structure/railing{
@@ -22103,11 +21721,6 @@
},
/turf/open/floor/pod/dark,
/area/maintenance/department/science/xenobiology)
-"kJR" = (
-/obj/structure/flora/grass/jungle/b,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4,
-/turf/open/floor/plating/asteroid/basalt/planetary,
-/area/asteroid/paradise)
"kJV" = (
/obj/effect/turf_decal/siding/wood{
dir = 8
@@ -22175,17 +21788,6 @@
"kLU" = (
/turf/open/floor/iron,
/area/engine/atmos)
-"kMe" = (
-/obj/effect/landmark/start/assistant,
-/obj/structure/cable/yellow{
- icon_state = "2-32"
- },
-/obj/effect/turf_decal/trimline/yellow,
-/obj/structure/lattice/catwalk/over,
-/turf/open/openspace,
-/area/hallway/primary/fore{
- name = "-1 Primary Hallway"
- })
"kMG" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/cable/yellow{
@@ -22222,6 +21824,22 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/science/lab)
+"kNq" = (
+/obj/effect/decal/cleanable/food/flour,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 8
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/open/floor/iron/cafeteria,
+/area/crew_quarters/kitchen)
"kND" = (
/obj/structure/cable/yellow{
icon_state = "1-8"
@@ -22264,6 +21882,21 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/turf/open/floor/carpet/green,
/area/crew_quarters/cafeteria)
+"kPn" = (
+/obj/effect/turf_decal/siding/dark{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/dark{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/dark/warning{
+ dir = 8
+ },
+/obj/machinery/firealarm/directional/east,
+/turf/open/floor/iron/dark,
+/area/engineering/hallway{
+ name = "Engineering Viewing Platform"
+ })
"kPr" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
@@ -22289,25 +21922,6 @@
},
/turf/open/floor/iron/dark,
/area/storage/tech)
-"kPY" = (
-/obj/structure/railing{
- dir = 4
- },
-/obj/effect/turf_decal/siding/dark{
- dir = 4
- },
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/effect/landmark/start/quartermaster,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/iron/dark/side{
- dir = 4
- },
-/area/hallway/primary/central{
- name = "-2 Primary Hallway"
- })
"kQc" = (
/obj/structure/table/reinforced,
/obj/machinery/firealarm/directional/east,
@@ -22389,19 +22003,6 @@
/obj/machinery/firealarm/directional/south,
/turf/open/floor/iron/dark,
/area/security/brig)
-"kTy" = (
-/obj/effect/turf_decal/stripes/line,
-/obj/structure/railing/corner,
-/obj/structure/railing/corner{
- dir = 8
- },
-/obj/structure/lattice/catwalk/over,
-/obj/effect/turf_decal/trimline/yellow,
-/obj/structure/cable/yellow{
- icon_state = "4-32"
- },
-/turf/open/openspace,
-/area/asteroid/paradise/surface)
"kTG" = (
/obj/effect/spawner/lootdrop/grille_or_trash,
/turf/open/floor/plating,
@@ -22616,6 +22217,15 @@
},
/turf/open/floor/plating,
/area/maintenance/department/science/central)
+"laf" = (
+/obj/machinery/chem_dispenser/drinks/beer,
+/obj/structure/table,
+/obj/effect/turf_decal/tile/bar/opposingcorners,
+/obj/machinery/airalarm{
+ pixel_y = 28
+ },
+/turf/open/floor/iron/dark,
+/area/crew_quarters/kitchen)
"lai" = (
/obj/machinery/portable_atmospherics/scrubber,
/obj/effect/turf_decal/bot{
@@ -22651,6 +22261,15 @@
/obj/structure/lattice/catwalk/over,
/turf/open/floor/plating,
/area/science/mixing)
+"laO" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/trimline/yellow,
+/obj/structure/cable/yellow{
+ icon_state = "8-16"
+ },
+/turf/open/floor/pod/dark,
+/area/maintenance/department/engine)
"lbc" = (
/obj/structure/table,
/obj/item/reagent_containers/glass/bucket,
@@ -22666,24 +22285,6 @@
/obj/item/kitchen/rollingpin,
/turf/open/floor/iron,
/area/hallway/secondary/service)
-"lbu" = (
-/obj/machinery/light{
- dir = 8
- },
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/item/radio/intercom{
- dir = 1;
- pixel_x = -30;
- pixel_y = -2
- },
-/turf/open/floor/iron/dark/side{
- dir = 9
- },
-/area/hallway/primary/aft{
- name = "-3 Primary Hallway"
- })
"lbA" = (
/obj/structure/disposalpipe/segment{
dir = 2
@@ -22701,20 +22302,18 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/ai_monitored/turret_protected/aisat/foyer)
-"lcl" = (
-/obj/machinery/portable_atmospherics/scrubber,
-/obj/effect/turf_decal/bot,
-/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer4{
- dir = 8
+"lcs" = (
+/obj/structure/disposalpipe/segment{
+ dir = 10
},
-/obj/item/radio/intercom{
- pixel_x = 32;
- pixel_y = -2
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
},
-/turf/open/floor/iron/dark,
-/area/hallway/primary/aft{
- name = "-3 Primary Hallway"
- })
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/quartermaster/sorting)
"lcQ" = (
/obj/effect/landmark/start/cyborg,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
@@ -22769,12 +22368,6 @@
/obj/machinery/chem_master,
/turf/open/floor/iron,
/area/medical/apothecary)
-"lep" = (
-/obj/structure/closet,
-/obj/effect/spawner/lootdrop/maintenance/two,
-/obj/item/paicard,
-/turf/open/floor/plating,
-/area/maintenance/department/bridge)
"leF" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
@@ -22877,20 +22470,6 @@
},
/turf/open/floor/engine,
/area/ai_monitored/turret_protected/ai)
-"lgR" = (
-/obj/effect/turf_decal/sand/plating,
-/turf/closed/mineral/random/air,
-/area/asteroid/paradise)
-"lhb" = (
-/obj/effect/turf_decal/stripes/line,
-/obj/effect/turf_decal/numbers/two_nine{
- dir = 2;
- pixel_y = 16
- },
-/turf/open/floor/iron/dark/side,
-/area/hallway/primary/aft{
- name = "-3 Primary Hallway"
- })
"lhc" = (
/obj/structure/railing{
dir = 8
@@ -22912,17 +22491,6 @@
},
/turf/open/floor/iron/dark,
/area/quartermaster/storage)
-"lhf" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/obj/effect/turf_decal/stripes/corner,
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/turf/open/floor/iron/dark,
-/area/engine/engineering)
"lhn" = (
/obj/effect/turf_decal/tile/neutral/half/contrasted,
/obj/effect/landmark/start/security_officer,
@@ -23095,6 +22663,9 @@
/obj/item/stack/rods/five,
/turf/open/floor/iron,
/area/engine/atmos)
+"llQ" = (
+/turf/open/floor/iron/cafeteria,
+/area/crew_quarters/kitchen)
"llS" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 1
@@ -23253,6 +22824,23 @@
/area/engineering/hallway{
name = "Engineering Viewing Platform"
})
+"lpc" = (
+/obj/structure/railing{
+ dir = 5
+ },
+/obj/effect/turf_decal/siding/dark{
+ dir = 5
+ },
+/obj/structure/closet/firecloset/full,
+/obj/effect/turf_decal/bot,
+/obj/item/extinguisher/advanced{
+ pixel_x = -1;
+ pixel_y = -2
+ },
+/turf/open/floor/iron/dark,
+/area/hallway/primary/central{
+ name = "-2 Primary Hallway"
+ })
"lpZ" = (
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating/asteroid/planetary,
@@ -23291,20 +22879,6 @@
},
/turf/open/floor/iron,
/area/janitor)
-"lrB" = (
-/obj/effect/turf_decal/trimline/yellow,
-/obj/structure/railing{
- dir = 8
- },
-/obj/structure/cable/yellow{
- icon_state = "2-32"
- },
-/obj/machinery/light/small{
- dir = 1
- },
-/obj/structure/lattice/catwalk/over,
-/turf/open/openspace,
-/area/maintenance/department/security/brig)
"lrR" = (
/obj/machinery/door/poddoor/shutters/preopen{
id = "cmoshutter";
@@ -23313,21 +22887,6 @@
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
/area/crew_quarters/heads/cmo)
-"lsb" = (
-/obj/machinery/firealarm/directional/east,
-/turf/open/floor/plating,
-/area/maintenance/department/medical/central)
-"lsf" = (
-/obj/structure/disposalpipe/segment{
- dir = 8
- },
-/obj/structure/table,
-/obj/item/kitchen/rollingpin{
- pixel_x = -6;
- pixel_y = -1
- },
-/turf/open/floor/iron/cafeteria,
-/area/crew_quarters/kitchen)
"lsj" = (
/obj/structure/lattice/catwalk/over,
/turf/open/openspace,
@@ -23354,22 +22913,6 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/iron,
/area/maintenance/department/engine)
-"lsM" = (
-/obj/machinery/computer/cloning{
- dir = 2
- },
-/obj/effect/turf_decal/bot,
-/obj/machinery/light{
- dir = 1
- },
-/obj/machinery/power/apc/auto_name/north{
- pixel_y = 24
- },
-/obj/structure/cable/yellow{
- icon_state = "0-2"
- },
-/turf/open/floor/iron,
-/area/medical/genetics/cloning)
"ltd" = (
/obj/structure/lattice/catwalk/over,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
@@ -23451,16 +22994,6 @@
/obj/structure/reagent_dispensers/fueltank,
/turf/open/floor/iron,
/area/maintenance/department/medical/morgue)
-"luz" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 6
- },
-/mob/living/simple_animal/pet/cat{
- desc = "He demands you let him sleep";
- name = "Sir Fluffington McWhiskerface the Third, Esquire, Purveyor of Mischief and Master of Naps"
- },
-/turf/open/floor/wood,
-/area/asteroid/paradise/surface)
"luF" = (
/turf/open/floor/iron,
/area/maintenance/department/medical/morgue)
@@ -23468,23 +23001,6 @@
/obj/structure/bookcase/random/adult,
/turf/open/floor/plating,
/area/vacant_room/office)
-"lvm" = (
-/obj/effect/turf_decal/sand/plating,
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/docking_port/stationary{
- dir = 4;
- dwidth = 9;
- height = 14;
- id = "emergency_home";
- name = "EchoStation emergency evac bay";
- width = 21
- },
-/turf/open/floor/sepia/planetary{
- slowdown = 0
- },
-/area/asteroid/paradise/surface)
"lvL" = (
/obj/structure/window/reinforced{
dir = 1;
@@ -23500,6 +23016,18 @@
},
/turf/open/floor/iron/freezer,
/area/crew_quarters/kitchen/coldroom)
+"lvV" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/open/floor/iron/cafeteria,
+/area/crew_quarters/kitchen)
"lwh" = (
/obj/machinery/space_heater,
/turf/open/floor/plating,
@@ -23522,6 +23050,21 @@
/obj/machinery/door/firedoor,
/turf/open/floor/iron,
/area/hydroponics)
+"lxl" = (
+/obj/machinery/nanite_program_hub,
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/requests_console{
+ department = "Science";
+ departmentType = 2;
+ name = "Science RC";
+ pixel_y = 30;
+ receive_ore_updates = 1
+ },
+/obj/machinery/camera/autoname{
+ network = list("ss13","rd")
+ },
+/turf/open/floor/iron,
+/area/science/research)
"lxo" = (
/obj/structure/closet/crate,
/obj/effect/spawner/lootdrop/maintenance/two,
@@ -23582,6 +23125,13 @@
/obj/item/plunger,
/turf/open/floor/carpet/green,
/area/crew_quarters/cafeteria)
+"lyE" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/structure/lattice,
+/turf/open/openspace,
+/area/maintenance/department/security/brig)
"lyG" = (
/obj/effect/turf_decal/caution/stand_clear,
/obj/effect/turf_decal/stripes/line,
@@ -23612,26 +23162,40 @@
/obj/machinery/space_heater,
/turf/open/floor/iron,
/area/maintenance/department/engine)
-"lzs" = (
-/obj/structure/disposalpipe/junction{
- dir = 1
+"lzD" = (
+/obj/effect/spawner/lootdrop/aimodule_harmless,
+/obj/effect/spawner/lootdrop/aimodule_harmless,
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/flasher{
+ id = "AI";
+ pixel_x = -1;
+ pixel_y = 32
},
-/obj/effect/turf_decal/tile/dark_blue/half/contrasted{
- alpha = 180;
- dir = 2
+/obj/structure/cable{
+ icon_state = "2-8"
},
-/turf/open/floor/iron,
-/area/hallway/primary/central{
- name = "-2 Primary Hallway"
- })
-"lzV" = (
-/turf/open/floor/iron/cafeteria,
-/area/crew_quarters/kitchen)
+/obj/effect/spawner/lootdrop/aimodule_harmless,
+/obj/machinery/power/apc/auto_name/east,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/structure/table/reinforced,
+/turf/open/floor/circuit,
+/area/ai_monitored/turret_protected/ai_upload)
"lAn" = (
/obj/effect/turf_decal/sand/plating,
/obj/structure/girder,
/turf/open/floor/plating,
/area/engine/atmos)
+"lAq" = (
+/obj/item/radio/intercom{
+ pixel_x = -31;
+ pixel_y = -2
+ },
+/turf/open/openspace,
+/area/engineering/hallway{
+ name = "Engineering Viewing Platform"
+ })
"lAt" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/cable/yellow{
@@ -23653,14 +23217,6 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/maintenance/department/science/xenobiology)
-"lAM" = (
-/obj/effect/turf_decal/trimline/yellow,
-/obj/structure/cable/yellow{
- icon_state = "2-32"
- },
-/obj/structure/lattice/catwalk/over,
-/turf/open/openspace,
-/area/maintenance/department/science/central)
"lAN" = (
/turf/closed/wall/mineral/wood,
/area/asteroid/paradise/surface)
@@ -23683,6 +23239,12 @@
/obj/effect/spawner/lootdrop/glowstick/lit,
/turf/open/floor/iron,
/area/maintenance/department/bridge)
+"lBT" = (
+/obj/effect/turf_decal/sand/plating,
+/obj/effect/turf_decal/sand/plating,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/asteroid/planetary,
+/area/asteroid/paradise)
"lBZ" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/cable/yellow{
@@ -23845,22 +23407,6 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/closed/wall,
/area/quartermaster/sorting)
-"lFn" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/effect/turf_decal/numbers/two_nine{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/iron,
-/area/hallway/primary/central{
- name = "-2 Primary Hallway"
- })
"lFC" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/stripes/line{
@@ -23880,6 +23426,13 @@
/obj/structure/grille/broken,
/turf/open/floor/plating,
/area/maintenance/department/crew_quarters/dorms)
+"lFQ" = (
+/obj/machinery/atmospherics/components/unary/outlet_injector/atmos/atmos_waste{
+ dir = 4;
+ piping_layer = 4
+ },
+/turf/open/floor/plating/asteroid/basalt/planetary,
+/area/asteroid/paradise)
"lGc" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/space_heater,
@@ -23992,20 +23545,6 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/iron,
/area/maintenance/department/bridge)
-"lJv" = (
-/obj/structure/flora/ausbushes/sunnybush{
- max_integrity = 20
- },
-/obj/structure/window/reinforced{
- dir = 8
- },
-/obj/structure/window/reinforced{
- dir = 4
- },
-/turf/open/floor/grass/no_border,
-/area/hallway/primary/fore{
- name = "-1 Primary Hallway"
- })
"lJE" = (
/obj/structure/table/wood,
/obj/item/wrench,
@@ -24145,6 +23684,22 @@
/obj/machinery/airalarm/directional/west,
/turf/open/floor/iron,
/area/medical/surgery)
+"lPe" = (
+/obj/machinery/light_switch{
+ pixel_x = 25;
+ pixel_y = 26
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/heads/captain)
"lPu" = (
/obj/structure/railing{
dir = 4
@@ -24187,17 +23742,6 @@
},
/turf/open/floor/carpet/blue,
/area/crew_quarters/cafeteria)
-"lQf" = (
-/obj/machinery/seed_extractor,
-/obj/effect/turf_decal/stripes/line{
- dir = 6
- },
-/obj/machinery/firealarm/directional/east,
-/obj/structure/sign/poster/official/moth1{
- pixel_y = -32
- },
-/turf/open/floor/iron/grid/steel,
-/area/hydroponics)
"lQi" = (
/turf/open/floor/carpet/purple,
/area/crew_quarters/dorms)
@@ -24325,14 +23869,6 @@
},
/turf/open/floor/carpet/purple,
/area/vacant_room/office)
-"lTJ" = (
-/obj/effect/dummy/lighting_obj{
- light_color = "#e6762c";
- light_power = 2;
- light_range = 9
- },
-/turf/open/lava/smooth,
-/area/asteroid/paradise)
"lTW" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -24358,23 +23894,6 @@
},
/turf/open/floor/prison,
/area/security/prison)
-"lUg" = (
-/obj/machinery/light{
- dir = 4
- },
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
-/obj/structure/chair/office/light{
- dir = 1;
- pixel_y = 3
- },
-/obj/structure/cable/yellow{
- icon_state = "0-8"
- },
-/obj/effect/landmark/start/scientist,
-/turf/open/floor/iron/grid/steel,
-/area/science/xenobiology)
"lUh" = (
/obj/effect/spawner/lootdrop/grille_or_trash,
/turf/open/floor/plating,
@@ -24408,16 +23927,6 @@
},
/turf/open/floor/iron/dark,
/area/storage/primary)
-"lUX" = (
-/obj/effect/turf_decal/tile/dark_red/fourcorners/contrasted{
- alpha = 180;
- color = "#DE3A3A"
- },
-/obj/structure/reagent_dispensers/peppertank{
- pixel_y = -32
- },
-/turf/open/floor/iron/dark,
-/area/security/brig)
"lVq" = (
/obj/effect/turf_decal/tile/purple/half/contrasted{
dir = 8
@@ -24578,27 +24087,6 @@
/obj/effect/turf_decal/sand/plating,
/turf/open/floor/plating/asteroid/planetary,
/area/asteroid/paradise)
-"lZZ" = (
-/mob/living/simple_animal/kalo{
- desc = "The Perma brig's cute grass snake.";
- icon = 'icons/mob/animal.dmi';
- icon_dead = "snake_dead";
- icon_living = "snake";
- icon_state = "snake";
- name = "Hugel"
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/prison,
-/area/security/prison)
-"mam" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/plating/asteroid/basalt/planetary,
-/area/asteroid/paradise)
"man" = (
/obj/effect/turf_decal/stripes/line,
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
@@ -24783,15 +24271,22 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron,
/area/maintenance/department/bridge)
-"mgw" = (
-/obj/machinery/door/airlock/maintenance_hatch{
- name = "Maintenance Hatch";
- req_access_txt = "12";
- security_level = 6
+"mgp" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
},
-/obj/structure/lattice/catwalk/over,
-/turf/open/floor/plating,
-/area/maintenance/department/security/brig)
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/turf_decal/numbers/two_nine{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/iron,
+/area/hallway/primary/central{
+ name = "-2 Primary Hallway"
+ })
"mgK" = (
/obj/structure/railing,
/turf/open/openspace,
@@ -24818,6 +24313,38 @@
/obj/structure/cable/yellow,
/turf/open/floor/iron/showroomfloor,
/area/crew_quarters/cryopods)
+"mgY" = (
+/obj/effect/turf_decal/siding/white{
+ alpha = 100;
+ dir = 5
+ },
+/obj/structure/flora/ausbushes/fullgrass,
+/obj/structure/flora/ausbushes/ppflowers,
+/obj/item/radio/intercom{
+ pixel_x = 1;
+ pixel_y = -31
+ },
+/turf/open/floor/plating/asteroid/planetary,
+/area/crew_quarters/dorms)
+"mhe" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/closet,
+/obj/machinery/light/small,
+/obj/effect/spawner/lootdrop/maintenance/four,
+/obj/item/paicard,
+/turf/open/floor/iron,
+/area/maintenance/department/medical/morgue)
+"mht" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/turf_decal/numbers/two_nine,
+/turf/open/floor/iron,
+/area/maintenance/department/cargo)
"mhI" = (
/obj/effect/turf_decal/stripes/line{
dir = 6
@@ -24853,24 +24380,11 @@
},
/turf/open/floor/iron/grid/steel,
/area/bridge)
-"miM" = (
-/obj/effect/turf_decal/siding/dark{
- dir = 8
- },
-/obj/effect/turf_decal/siding/dark{
- dir = 4
- },
-/obj/effect/turf_decal/trimline/dark/warning{
- dir = 8
- },
-/obj/item/radio/intercom{
- pixel_x = 32;
- pixel_y = -2
- },
+"mit" = (
+/obj/structure/table,
+/obj/item/paicard,
/turf/open/floor/iron/dark,
-/area/engineering/hallway{
- name = "Engineering Viewing Platform"
- })
+/area/maintenance/department/crew_quarters/dorms)
"mjt" = (
/obj/machinery/portable_atmospherics/canister,
/obj/machinery/atmospherics/components/unary/portables_connector/visible{
@@ -24878,6 +24392,11 @@
},
/turf/open/floor/iron/tech,
/area/science/mixing)
+"mjw" = (
+/obj/structure/lattice/catwalk/over,
+/obj/machinery/firealarm/directional/east,
+/turf/open/floor/plating,
+/area/maintenance/department/security/brig)
"mjZ" = (
/obj/machinery/flasher{
id = "AI";
@@ -24956,19 +24475,6 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/closed/wall/r_wall,
/area/security/brig)
-"mlP" = (
-/obj/structure/flora/ausbushes/ywflowers{
- max_integrity = 20
- },
-/obj/structure/window/reinforced{
- dir = 4
- },
-/obj/structure/window/reinforced{
- dir = 8
- },
-/obj/structure/window/reinforced,
-/turf/open/floor/grass/no_border,
-/area/medical/storage)
"mma" = (
/obj/item/toy/beach_ball/holoball,
/obj/effect/turf_decal/bot,
@@ -24999,13 +24505,13 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/iron,
/area/maintenance/department/crew_quarters/dorms)
-"mne" = (
-/obj/structure/stairs,
-/obj/machinery/firealarm/directional/west,
-/turf/open/floor/pod/dark,
-/area/hallway/primary/fore{
- name = "-1 Primary Hallway"
- })
+"mmJ" = (
+/obj/structure/flora/ausbushes/ywflowers,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plating/asteroid/planetary,
+/area/asteroid/paradise)
"mni" = (
/obj/structure/flora/rock/pile,
/turf/open/floor/plating/asteroid/basalt/planetary,
@@ -25268,6 +24774,29 @@
/obj/effect/spawner/lootdrop/costume,
/turf/open/floor/iron/dark,
/area/maintenance/department/crew_quarters/dorms)
+"mwP" = (
+/obj/machinery/turretid{
+ control_area = "/area/ai_monitored/turret_protected/ai";
+ icon_state = "control_stun";
+ name = "AI Chamber turret control";
+ pixel_x = -1;
+ pixel_y = 33
+ },
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/camera/autoname{
+ dir = 6;
+ network = list("aiupload")
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/turf/open/floor/iron/tech/grid,
+/area/ai_monitored/turret_protected/aisat_interior)
"mxd" = (
/obj/structure/sign/departments/minsky/research/robotics,
/turf/closed/wall,
@@ -25282,6 +24811,16 @@
/obj/structure/flora/grass/jungle/b,
/turf/open/floor/plating/asteroid/planetary,
/area/quartermaster/storage)
+"mxy" = (
+/obj/effect/turf_decal/tile/bar/opposingcorners,
+/obj/machinery/vending/dinnerware,
+/obj/machinery/requests_console{
+ department = "Kitchen";
+ departmentType = 2;
+ pixel_y = 30
+ },
+/turf/open/floor/iron/dark,
+/area/crew_quarters/kitchen)
"mxG" = (
/obj/structure/barricade/wooden,
/turf/open/floor/plating,
@@ -25376,6 +24915,28 @@
},
/turf/open/floor/circuit,
/area/gateway)
+"mAj" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-4"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red/half/contrasted{
+ alpha = 180;
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/turf/open/floor/iron,
+/area/hallway/primary/central{
+ name = "-2 Primary Hallway"
+ })
"mAk" = (
/obj/structure/flora/ausbushes/ppflowers,
/obj/structure/window/reinforced{
@@ -25432,15 +24993,6 @@
},
/turf/open/floor/iron,
/area/maintenance/department/chapel)
-"mBY" = (
-/obj/machinery/door/airlock/maintenance_hatch{
- name = "Maintenance Hatch";
- req_one_access_txt = "12;5";
- security_level = 6
- },
-/obj/machinery/door/firedoor,
-/turf/open/floor/plating,
-/area/maintenance/department/medical/central)
"mCk" = (
/obj/machinery/air_sensor/atmos/nitrous_tank,
/obj/machinery/atmospherics/pipe/layer_manifold/visible,
@@ -25475,10 +25027,6 @@
},
/turf/open/floor/wood,
/area/vacant_room/office)
-"mDP" = (
-/obj/structure/spider/stickyweb,
-/turf/open/floor/plating/asteroid/planetary,
-/area/asteroid/paradise)
"mDY" = (
/obj/structure/reagent_dispensers/fueltank,
/obj/effect/turf_decal/bot,
@@ -25515,16 +25063,6 @@
},
/turf/open/floor/iron,
/area/maintenance/department/engine/atmos)
-"mFc" = (
-/obj/machinery/door/airlock/security/glass{
- name = "Security Office";
- req_access_txt = 0;
- req_one_access_txt = "1;4"
- },
-/obj/effect/turf_decal/stripes/closeup,
-/obj/machinery/door/firedoor,
-/turf/open/floor/plating,
-/area/maintenance/department/security/brig)
"mFq" = (
/obj/effect/turf_decal/tile/neutral/half/contrasted{
dir = 8
@@ -25607,6 +25145,18 @@
},
/turf/open/floor/iron/dark,
/area/bridge/meeting_room)
+"mFT" = (
+/obj/effect/turf_decal/sand/plating,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4{
+ dir = 9
+ },
+/turf/open/floor/plating/asteroid/basalt/planetary,
+/area/asteroid/paradise)
"mGI" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -25633,6 +25183,13 @@
},
/turf/open/floor/iron,
/area/maintenance/department/bridge)
+"mGS" = (
+/obj/structure/flora/rock/pile,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plating/asteroid/basalt/planetary,
+/area/asteroid/paradise)
"mHK" = (
/obj/machinery/keycard_auth{
pixel_x = 33;
@@ -25691,16 +25248,17 @@
},
/turf/open/floor/wood,
/area/crew_quarters/cafeteria)
-"mIy" = (
-/obj/structure/lattice/catwalk/over,
-/obj/structure/railing{
- dir = 4
+"mIF" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 8
},
-/obj/structure/closet/emcloset,
-/turf/open/openspace,
-/area/hallway/primary/fore{
- name = "-1 Primary Hallway"
- })
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4{
+ dir = 8
+ },
+/turf/open/floor/plating/asteroid/basalt/planetary,
+/area/asteroid/paradise)
"mIN" = (
/obj/effect/turf_decal/tile/blue/half/contrasted{
dir = 8
@@ -25795,13 +25353,6 @@
/area/hallway/primary/aft{
name = "-3 Primary Hallway"
})
-"mLM" = (
-/obj/effect/turf_decal/siding/white{
- dir = 8
- },
-/obj/machinery/processor,
-/turf/open/floor/iron/cafeteria,
-/area/crew_quarters/kitchen)
"mLQ" = (
/obj/machinery/atmospherics/pipe/layer_manifold/visible,
/obj/effect/decal/cleanable/dirt,
@@ -25842,6 +25393,16 @@
},
/turf/open/floor/plating,
/area/maintenance/department/engine/atmos)
+"mMw" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 4
+ },
+/obj/item/radio/intercom{
+ pixel_y = -33
+ },
+/turf/open/floor/iron/dark,
+/area/engine/engineering)
"mMZ" = (
/obj/machinery/atmospherics/components/binary/valve,
/obj/machinery/button/ignition/incinerator/toxmix{
@@ -26000,6 +25561,43 @@
},
/turf/open/floor/plating,
/area/medical/morgue)
+"mRe" = (
+/obj/machinery/button/flasher{
+ id = "brigentryaux";
+ pixel_x = 5;
+ pixel_y = -37
+ },
+/obj/machinery/button/door{
+ desc = "A remote control switch for the medbay foyer.";
+ id = "outerbrig";
+ name = "Brig Exterior Doors Control";
+ normaldoorcontrol = 1;
+ pixel_x = -6;
+ pixel_y = -25;
+ req_access_txt = "63"
+ },
+/obj/machinery/button/door{
+ id = "brigentrance";
+ name = "Brig Lockdown Control";
+ pixel_x = 6;
+ pixel_y = -25;
+ req_access_txt = "63"
+ },
+/obj/effect/turf_decal/tile/red/anticorner/contrasted{
+ alpha = 180;
+ dir = 8
+ },
+/obj/item/radio/intercom{
+ dir = 1;
+ pixel_x = -32;
+ pixel_y = -28
+ },
+/obj/machinery/computer/crew{
+ dir = 4;
+ req_one_access = list(5,4,3)
+ },
+/turf/open/floor/iron/dark,
+/area/security/warden)
"mRH" = (
/obj/structure/bookcase/random/adult,
/obj/machinery/newscaster{
@@ -26096,6 +25694,10 @@
/obj/machinery/computer/pandemic,
/turf/open/floor/iron/white,
/area/crew_quarters/heads/cmo)
+"mUB" = (
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/turf/open/floor/plating/asteroid/planetary,
+/area/asteroid/paradise)
"mVd" = (
/obj/structure/railing{
dir = 1
@@ -26228,43 +25830,6 @@
/obj/effect/spawner/lootdrop/maintenance/two,
/turf/open/floor/iron,
/area/maintenance/department/science/central)
-"mYn" = (
-/obj/structure/chair/fancy/sofa/old/left{
- dir = 8
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 6
- },
-/obj/effect/turf_decal/siding/white,
-/obj/structure/railing{
- layer = 3
- },
-/obj/item/radio/intercom{
- dir = 1;
- pixel_x = 29;
- pixel_y = -3
- },
-/turf/open/floor/carpet/green,
-/area/crew_quarters/cafeteria)
-"mYq" = (
-/obj/machinery/holopad{
- pixel_x = 16;
- pixel_y = 16
- },
-/obj/effect/turf_decal/tile/blue/anticorner/contrasted{
- dir = 8
- },
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 8
- },
-/turf/open/floor/iron/white,
-/area/medical/medbay/central)
"mYL" = (
/obj/structure/closet,
/obj/effect/spawner/lootdrop/maintenance/two,
@@ -26379,21 +25944,6 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/turf/open/floor/plating,
/area/maintenance/department/science/central)
-"ncz" = (
-/obj/effect/turf_decal/trimline/dark/warning{
- dir = 4
- },
-/obj/effect/turf_decal/siding/dark{
- dir = 4
- },
-/obj/effect/turf_decal/siding/dark{
- dir = 8
- },
-/obj/machinery/firealarm/directional/west,
-/turf/open/floor/iron/dark,
-/area/engineering/hallway{
- name = "Engineering Viewing Platform"
- })
"ncA" = (
/obj/effect/turf_decal/caution/stand_clear,
/obj/effect/turf_decal/tile/neutral/half/contrasted{
@@ -26412,6 +25962,34 @@
/area/hallway/primary/aft{
name = "-3 Primary Hallway"
})
+"ncK" = (
+/obj/machinery/holopad{
+ pixel_x = 16;
+ pixel_y = 16
+ },
+/obj/effect/turf_decal/tile/blue/anticorner/contrasted{
+ dir = 8
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/iron/white,
+/area/medical/medbay/central)
+"ncM" = (
+/obj/structure/reagent_dispensers/beerkeg{
+ pixel_x = 6;
+ pixel_y = -6
+ },
+/turf/open/floor/plating/beach/coastline_t{
+ dir = 9
+ },
+/area/asteroid/paradise/surface)
"ncT" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable/yellow{
@@ -26481,6 +26059,13 @@
},
/turf/open/floor/prison/dark,
/area/security/prison)
+"neA" = (
+/obj/structure/flora/rock/pile,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating/asteroid/basalt/planetary,
+/area/asteroid/paradise)
"neD" = (
/obj/structure/disposalpipe/segment{
dir = 5
@@ -26573,30 +26158,6 @@
/obj/effect/turf_decal/sand/plating,
/turf/open/floor/plating,
/area/quartermaster/storage)
-"nip" = (
-/obj/structure/railing{
- dir = 4
- },
-/obj/structure/rack,
-/obj/effect/spawner/lootdrop/techstorage/command,
-/obj/effect/turf_decal/delivery,
-/obj/item/radio/intercom{
- pixel_y = 29
- },
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
-/obj/structure/cable/yellow{
- icon_state = "0-8"
- },
-/obj/machinery/camera/motion{
- c_tag = "Technical Storage";
- dir = 8;
- name = "motion-sensitive Technical Storage";
- network = list("ss13","engine")
- },
-/turf/open/floor/iron/techmaint/planetary,
-/area/storage/tech)
"niw" = (
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
@@ -26646,21 +26207,6 @@
},
/turf/open/floor/wood,
/area/crew_quarters/cafeteria)
-"nlf" = (
-/obj/machinery/disposal/bin,
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/effect/turf_decal/bot,
-/obj/machinery/light{
- dir = 4
- },
-/obj/machinery/firealarm/directional/north,
-/obj/structure/disposalpipe/trunk{
- dir = 8
- },
-/turf/open/floor/iron,
-/area/science/research)
"nlo" = (
/obj/effect/turf_decal/tile/purple/half/contrasted{
dir = 8
@@ -26700,6 +26246,18 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/wood,
/area/vacant_room/office)
+"nmp" = (
+/obj/structure/railing/corner,
+/obj/effect/turf_decal/siding/dark/corner,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/iron/dark/corner,
+/area/hallway/primary/central{
+ name = "-2 Primary Hallway"
+ })
"nmz" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -26799,27 +26357,6 @@
dir = 1
},
/area/science/research)
-"non" = (
-/obj/machinery/requests_console{
- department = "Cargo Bay";
- departmentType = 2;
- pixel_x = 31;
- pixel_y = -2
- },
-/obj/structure/cable/yellow{
- icon_state = "2-8"
- },
-/obj/structure/disposalpipe/segment{
- dir = 2
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/quartermaster/sorting)
"noU" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -26933,18 +26470,6 @@
},
/turf/open/floor/iron/dark,
/area/security/warden)
-"nrD" = (
-/obj/structure/stairs,
-/obj/structure/sign/directions/evac{
- dir = 4;
- pixel_x = -15;
- pixel_y = -31
- },
-/obj/machinery/firealarm/directional/east,
-/turf/open/floor/pod/dark,
-/area/hallway/primary/fore{
- name = "-1 Primary Hallway"
- })
"nrQ" = (
/turf/closed/wall/mineral/titanium/survival/nodiagonal,
/area/hallway/primary/fore{
@@ -27089,22 +26614,6 @@
/obj/item/airlock_painter/decal,
/turf/open/floor/iron,
/area/maintenance/department/chapel)
-"nxu" = (
-/obj/item/beacon{
- pixel_y = 3
- },
-/obj/effect/turf_decal/numbers,
-/obj/structure/railing{
- dir = 6
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 6
- },
-/obj/structure/cable/yellow{
- icon_state = "0-8"
- },
-/turf/open/floor/iron/techmaint/planetary,
-/area/asteroid/paradise/surface)
"nxK" = (
/obj/structure/closet/secure_closet/personal/cabinet,
/obj/item/clothing/under/suit/burgundy,
@@ -27121,6 +26630,46 @@
},
/turf/open/floor/iron,
/area/hydroponics)
+"nyu" = (
+/obj/structure/table/reinforced,
+/obj/item/clipboard{
+ pixel_x = -5;
+ pixel_y = 3
+ },
+/obj/item/paper/monitorkey{
+ pixel_x = -5;
+ pixel_y = 3
+ },
+/obj/item/folder/yellow,
+/obj/item/toy/figure/ce{
+ pixel_x = 8;
+ pixel_y = 4
+ },
+/obj/item/stamp/chief_engineer{
+ pixel_x = -5;
+ pixel_y = 5
+ },
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 5
+ },
+/obj/machinery/camera/autoname{
+ dir = 8;
+ network = list("ss13","engine")
+ },
+/obj/machinery/requests_console{
+ announcementConsole = 1;
+ department = "Chief Engineer's Desk";
+ departmentType = 4;
+ name = "Chief Engineer RC";
+ pixel_x = 32;
+ pixel_y = 31
+ },
+/obj/machinery/power/apc/auto_name/east,
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/turf/open/floor/carpet/royalblue,
+/area/crew_quarters/heads/chief)
"nyB" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/cable/yellow{
@@ -27206,6 +26755,24 @@
},
/turf/open/floor/plating,
/area/maintenance/department/engine)
+"nzU" = (
+/obj/effect/turf_decal/tile/black/opposingcorners{
+ dir = 1
+ },
+/obj/machinery/suit_storage_unit/rd,
+/obj/effect/turf_decal/bot,
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
+/obj/item/toy/plush/slimeplushie{
+ pixel_x = -1;
+ pixel_y = 7
+ },
+/turf/open/floor/iron/white,
+/area/crew_quarters/heads/hor)
"nzZ" = (
/obj/effect/turf_decal/trimline/dark_blue/filled/line,
/obj/structure/railing,
@@ -27240,6 +26807,20 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/maintenance/disposal/incinerator)
+"nAF" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/sand/plating,
+/obj/item/radio/intercom{
+ dir = 1;
+ pixel_x = -31;
+ pixel_y = -3
+ },
+/turf/open/floor/iron,
+/area/hallway/primary/fore{
+ name = "-1 Primary Hallway"
+ })
"nBs" = (
/obj/structure/flora/rock/pile,
/turf/open/floor/iron/techmaint/planetary,
@@ -27276,23 +26857,32 @@
"nEl" = (
/turf/open/floor/iron,
/area/maintenance/department/chapel)
-"nEB" = (
+"nEN" = (
+/obj/structure/stairs{
+ dir = 1
+ },
+/obj/structure/fans/tiny,
+/turf/open/floor/pod/dark,
+/area/maintenance/department/engine/atmos)
+"nEW" = (
+/obj/machinery/computer/security/telescreen/minisat{
+ dir = 4;
+ pixel_x = -32
+ },
/obj/structure/table/wood,
-/obj/item/screwdriver,
-/obj/item/hatchet,
-/obj/item/paicard,
-/turf/open/floor/iron,
-/area/hallway/primary/fore{
- name = "-1 Primary Hallway"
- })
-"nED" = (
-/obj/machinery/holopad,
-/obj/effect/turf_decal/box,
-/obj/structure/cable/yellow{
- icon_state = "1-2"
+/obj/machinery/light{
+ dir = 8
},
-/turf/open/floor/iron/cafeteria,
-/area/crew_quarters/kitchen)
+/obj/item/storage/secure/briefcase{
+ pixel_x = 15;
+ pixel_y = 8
+ },
+/obj/item/storage/lockbox/medal{
+ pixel_x = -1;
+ pixel_y = 1
+ },
+/turf/open/floor/carpet/royalblue,
+/area/crew_quarters/heads/captain)
"nEX" = (
/obj/structure/bed,
/obj/item/bedsheet/dorms,
@@ -27311,13 +26901,6 @@
},
/turf/open/floor/iron,
/area/security/brig)
-"nFA" = (
-/obj/machinery/door/firedoor,
-/obj/structure/railing{
- dir = 4
- },
-/turf/open/openspace,
-/area/maintenance/department/medical/central)
"nFM" = (
/obj/structure/cable/yellow{
icon_state = "1-2"
@@ -27368,26 +26951,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/turf/open/floor/iron/white,
/area/science/xenobiology)
-"nGR" = (
-/obj/structure/sign/poster/random{
- pixel_x = 31
- },
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/table/wood,
-/obj/item/storage/crayons{
- pixel_x = 3;
- pixel_y = 7
- },
-/obj/item/camera{
- pixel_y = -9
- },
-/obj/item/radio/intercom{
- dir = 1;
- pixel_x = 2;
- pixel_y = 29
- },
-/turf/open/floor/wood,
-/area/crew_quarters/cafeteria)
"nHd" = (
/obj/structure/closet/emcloset/anchored,
/turf/open/floor/plating,
@@ -27440,6 +27003,20 @@
},
/turf/open/floor/iron/dark,
/area/ai_monitored/security/armory)
+"nHV" = (
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "Maintenance Hatch";
+ req_access_txt = "32"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/stripes/closeup{
+ dir = 1
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plating,
+/area/maintenance/department/engine)
"nId" = (
/obj/effect/turf_decal/sand/plating,
/obj/effect/decal/cleanable/dirt/dust,
@@ -27530,28 +27107,31 @@
/area/engineering/hallway{
name = "Engineering Viewing Platform"
})
-"nJD" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/numbers/two_nine{
- dir = 2
+"nJX" = (
+/obj/effect/mapping_helpers/airlock/unres{
+ dir = 8
},
-/turf/open/floor/iron,
-/area/maintenance/department/engine)
-"nJM" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/light/small{
- dir = 1
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
},
-/obj/effect/turf_decal/numbers/two_nine{
- dir = 2
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
},
-/turf/open/floor/iron,
-/area/maintenance/department/engine)
-"nKa" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/plating/asteroid/basalt/planetary,
-/area/asteroid/paradise)
+/obj/effect/turf_decal/tile/blue/half/contrasted{
+ dir = 8
+ },
+/obj/machinery/door/airlock/medical/glass{
+ emergency = 1;
+ id_tag = "MedbayFoyer";
+ name = "Medbay";
+ req_one_access_txt = "5"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{
+ cycle_id = "medbay"
+ },
+/turf/open/floor/iron/white,
+/area/medical/medbay/central)
"nKc" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -27607,24 +27187,14 @@
},
/turf/open/floor/iron/dark,
/area/quartermaster/storage)
-"nMa" = (
-/obj/machinery/airalarm/directional/north{
- dir = 1;
- pixel_y = -23
- },
-/mob/living/simple_animal/bot/mulebot{
- home_destination = "QM #3";
- suffix = "#3"
- },
-/obj/machinery/navbeacon{
- codes_txt = "delivery;dir=8";
- dir = 8;
- freq = 1400;
- location = "QM #3"
- },
-/obj/effect/turf_decal/delivery,
-/turf/open/floor/iron,
-/area/quartermaster/warehouse)
+"nLv" = (
+/obj/structure/flora/rock/pile,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating/asteroid/basalt/planetary,
+/area/asteroid/paradise)
"nMm" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable/yellow{
@@ -27662,6 +27232,26 @@
/obj/machinery/computer/prisoner/management,
/turf/open/floor/iron,
/area/bridge)
+"nOu" = (
+/obj/machinery/light,
+/obj/machinery/firealarm/directional/south,
+/obj/structure/disposalpipe/segment{
+ dir = 8
+ },
+/obj/structure/table,
+/obj/item/food/dough{
+ pixel_x = 4
+ },
+/obj/item/food/dough{
+ pixel_y = 2;
+ pixel_x = 9
+ },
+/obj/item/reagent_containers/food/condiment/enzyme{
+ pixel_x = -5;
+ pixel_y = 9
+ },
+/turf/open/floor/iron/cafeteria,
+/area/crew_quarters/kitchen)
"nOx" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -27679,12 +27269,6 @@
/obj/structure/flora/rock/pile,
/turf/open/floor/iron/techmaint/planetary,
/area/asteroid/paradise/surface)
-"nPp" = (
-/obj/structure/flora/ausbushes/lavendergrass,
-/obj/effect/decal/cleanable/cobweb/cobweb2,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating/asteroid/planetary,
-/area/asteroid/paradise)
"nPz" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/space_heater,
@@ -27768,11 +27352,6 @@
},
/turf/open/floor/iron/dark,
/area/security/warden)
-"nSz" = (
-/obj/structure/lattice/catwalk/over,
-/obj/machinery/firealarm/directional/east,
-/turf/open/floor/plating,
-/area/maintenance/department/security/brig)
"nSF" = (
/obj/machinery/vending/wallmed{
pixel_x = -6;
@@ -27829,12 +27408,6 @@
/obj/effect/spawner/lootdrop/maintenance/three,
/turf/open/floor/iron,
/area/maintenance/department/crew_quarters/bar)
-"nTN" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 8
- },
-/turf/open/floor/iron/tech/grid,
-/area/ai_monitored/turret_protected/aisat_interior)
"nTR" = (
/obj/effect/spawner/room/threexthree,
/turf/open/floor/plating,
@@ -27856,6 +27429,13 @@
/obj/structure/barricade/wooden,
/turf/open/floor/iron,
/area/maintenance/department/chapel)
+"nVd" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/closet/cardboard,
+/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/item/paicard,
+/turf/open/floor/iron,
+/area/ai_monitored/turret_protected/aisat/maint)
"nVe" = (
/obj/structure/window/plasma/reinforced{
dir = 8
@@ -27919,18 +27499,6 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/iron/dark,
/area/engine/engineering)
-"nWN" = (
-/obj/structure/railing/corner,
-/obj/effect/turf_decal/siding/dark/corner,
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/iron/dark/corner,
-/area/hallway/primary/central{
- name = "-2 Primary Hallway"
- })
"nXa" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/cable/yellow{
@@ -27980,26 +27548,11 @@
},
/turf/open/floor/plating,
/area/maintenance/department/chapel)
-"nYI" = (
-/obj/structure/railing{
- dir = 5
- },
-/obj/structure/lattice,
-/turf/open/openspace,
-/area/maintenance/department/security/brig)
"nYL" = (
/turf/open/openspace,
/area/hallway/primary/fore{
name = "-1 Primary Hallway"
})
-"nYY" = (
-/obj/machinery/computer/security/hos,
-/obj/item/toy/plush/carpplushie{
- pixel_x = 5;
- pixel_y = 17
- },
-/turf/open/floor/iron/dark,
-/area/crew_quarters/heads/hos)
"nZB" = (
/obj/structure/stairs,
/turf/open/floor/pod/dark,
@@ -28010,26 +27563,6 @@
/obj/effect/landmark/blobstart,
/turf/open/floor/plating,
/area/maintenance/department/medical/central)
-"nZP" = (
-/obj/effect/turf_decal/bot,
-/obj/structure/closet/secure_closet/freezer/kitchen{
- req_access = null;
- req_one_access_txt = "28;25;35"
- },
-/obj/item/storage/box/ingredients/fruity{
- pixel_x = 4;
- pixel_y = 6
- },
-/obj/item/storage/box/ingredients/vegetarian{
- pixel_x = -1;
- pixel_y = 4
- },
-/obj/item/storage/box/ingredients/wildcard{
- pixel_x = -5;
- pixel_y = 8
- },
-/turf/open/floor/iron/freezer,
-/area/crew_quarters/kitchen/coldroom)
"oam" = (
/turf/closed/wall/r_wall,
/area/teleporter)
@@ -28095,6 +27628,23 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/visible,
/turf/open/floor/plating,
/area/engine/engineering)
+"obC" = (
+/obj/effect/turf_decal/tile/blue/anticorner/contrasted{
+ dir = 4
+ },
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 5;
+ pixel_y = 32
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 8
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/iron/white,
+/area/medical/medbay/central)
"ocx" = (
/obj/machinery/atmospherics/pipe/simple/cyan/visible{
dir = 10
@@ -28112,18 +27662,18 @@
/obj/structure/flora/rock/pile,
/turf/open/floor/plating/asteroid/planetary,
/area/quartermaster/storage)
-"ocM" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
-/obj/structure/cable/yellow,
+"ocS" = (
/obj/structure/cable/yellow{
- icon_state = "1-2"
+ icon_state = "4-8"
},
-/turf/open/floor/plating,
-/area/maintenance/department/science/central)
+/obj/structure/disposalpipe/segment{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/quartermaster/sorting)
"odM" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/light/small{
@@ -28184,6 +27734,26 @@
},
/turf/open/floor/iron/grid/steel,
/area/hydroponics)
+"oga" = (
+/obj/effect/turf_decal/tile/neutral/half/contrasted{
+ dir = 8
+ },
+/obj/structure/closet/secure_closet/engineering_electrical,
+/obj/item/radio/intercom{
+ pixel_x = 1;
+ pixel_y = -31
+ },
+/turf/open/floor/iron,
+/area/engine/atmos)
+"ogp" = (
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "Maintenance Hatch";
+ req_one_access_txt = "63;34"
+ },
+/obj/effect/turf_decal/stripes/closeup,
+/obj/machinery/door/firedoor,
+/turf/open/floor/plating,
+/area/security/brig)
"ogJ" = (
/obj/effect/turf_decal/delivery,
/obj/effect/turf_decal/stripes/corner,
@@ -28235,20 +27805,29 @@
dir = 1
},
/area/science/lab)
+"oiK" = (
+/obj/machinery/airalarm/directional/north{
+ dir = 1;
+ pixel_y = -23
+ },
+/mob/living/simple_animal/bot/mulebot{
+ home_destination = "QM #3";
+ suffix = "#3"
+ },
+/obj/machinery/navbeacon{
+ codes_txt = "delivery;dir=8";
+ dir = 8;
+ freq = 1400;
+ location = "QM #3"
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/iron,
+/area/quartermaster/warehouse)
"oiS" = (
/obj/structure/closet/crate/freezer/surplus_limbs,
/obj/effect/turf_decal/bot,
/turf/open/floor/iron/dark,
/area/medical/morgue)
-"oiV" = (
-/obj/structure/sign/directions/supply{
- dir = 8;
- pixel_y = 10
- },
-/turf/closed/wall,
-/area/hallway/primary/aft{
- name = "-3 Primary Hallway"
- })
"ojw" = (
/obj/effect/turf_decal/sand/plating,
/obj/effect/turf_decal/sand/plating,
@@ -28274,6 +27853,22 @@
/obj/effect/decal/cleanable/blood/splatter,
/turf/open/floor/iron,
/area/maintenance/department/crew_quarters/dorms)
+"okn" = (
+/obj/machinery/atmospherics/components/trinary/mixer/airmix/flipped{
+ dir = 8;
+ piping_layer = 2
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral/half/contrasted{
+ dir = 4
+ },
+/obj/structure/window/plasma/reinforced{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/engine/atmos)
"okx" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -28346,18 +27941,6 @@
/area/hallway/primary/fore{
name = "-1 Primary Hallway"
})
-"omt" = (
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/structure/cable/yellow{
- icon_state = "1-4"
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/quartermaster/sorting)
"omN" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 9
@@ -28407,6 +27990,17 @@
},
/turf/open/floor/iron/dark,
/area/bridge)
+"onC" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable/yellow{
+ icon_state = "8-32"
+ },
+/obj/effect/turf_decal/trimline/yellow,
+/obj/structure/lattice/catwalk/over,
+/turf/open/openspace,
+/area/maintenance/department/bridge)
"ool" = (
/obj/docking_port/stationary{
dheight = 1;
@@ -28573,6 +28167,14 @@
/area/hallway/primary/central{
name = "-2 Primary Hallway"
})
+"oqF" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/trimline/yellow,
+/obj/structure/cable/yellow{
+ icon_state = "8-16"
+ },
+/turf/open/floor/pod/dark,
+/area/maintenance/department/science/xenobiology)
"oqZ" = (
/obj/machinery/atmospherics/components/unary/heat_exchanger{
dir = 1
@@ -28625,6 +28227,16 @@
/obj/structure/table/wood/fancy,
/turf/open/floor/wood,
/area/chapel/office)
+"orB" = (
+/obj/machinery/door/airlock/security/glass{
+ name = "Security Office";
+ req_access_txt = 0;
+ req_one_access_txt = "1;4"
+ },
+/obj/effect/turf_decal/stripes/closeup,
+/obj/machinery/door/firedoor,
+/turf/open/floor/iron/dark,
+/area/security/brig)
"orD" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/cable/yellow{
@@ -28669,30 +28281,6 @@
},
/turf/open/floor/iron,
/area/ai_monitored/turret_protected/aisat/maint)
-"osM" = (
-/obj/machinery/conveyor{
- dir = 4;
- id = "packageSort2"
- },
-/obj/effect/turf_decal/stripes/line,
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/machinery/door/window/northleft{
- dir = 2;
- req_access_txt = "50"
- },
-/obj/structure/disposalpipe/segment{
- dir = 2
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 1
- },
-/turf/open/floor/iron/dark,
-/area/quartermaster/sorting)
"osP" = (
/obj/structure/rack,
/obj/effect/turf_decal/bot,
@@ -28706,10 +28294,30 @@
},
/turf/open/floor/iron/dark,
/area/ai_monitored/security/armory)
+"ote" = (
+/obj/machinery/telecomms/relay/preset/auto,
+/obj/machinery/door/window/northleft{
+ name = "Engi Desk";
+ req_one_access_txt = "32;19"
+ },
+/obj/structure/window/reinforced/survival_pod,
+/obj/structure/cable/yellow,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/hallway/primary/fore{
+ name = "-1 Primary Hallway"
+ })
"oth" = (
/obj/structure/sign/warning/explosives,
/turf/closed/wall,
/area/science/mixing)
+"otq" = (
+/obj/structure/lattice/catwalk/over,
+/obj/machinery/firealarm/directional/east,
+/turf/open/openspace,
+/area/maintenance/department/security/brig)
"otr" = (
/obj/machinery/computer/med_data/laptop{
dir = 1;
@@ -28729,18 +28337,6 @@
},
/turf/open/floor/carpet/red,
/area/crew_quarters/heads/hos)
-"otv" = (
-/obj/structure/railing/corner{
- dir = 8
- },
-/obj/effect/turf_decal/siding/wood,
-/obj/machinery/light/small{
- dir = 1
- },
-/obj/machinery/airalarm/directional/north,
-/obj/machinery/vending/donksofttoyvendor,
-/turf/open/floor/carpet/green,
-/area/crew_quarters/cafeteria)
"otW" = (
/obj/effect/turf_decal/box,
/obj/machinery/holopad,
@@ -28855,6 +28451,25 @@
/area/hallway/primary/aft{
name = "-3 Primary Hallway"
})
+"ovX" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/sand/plating,
+/obj/machinery/light,
+/obj/item/radio/intercom{
+ dir = 1;
+ pixel_y = -35
+ },
+/turf/open/floor/plating,
+/area/quartermaster/storage)
+"owG" = (
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "Maintenance Hatch";
+ req_access_txt = "12";
+ security_level = 6
+ },
+/obj/structure/lattice/catwalk/over,
+/turf/open/floor/plating,
+/area/maintenance/department/security/brig)
"owJ" = (
/obj/structure/disposalpipe/segment,
/obj/structure/reagent_dispensers/water_cooler,
@@ -28889,6 +28504,12 @@
/obj/machinery/light,
/turf/open/floor/iron/dark,
/area/engine/atmos)
+"oxs" = (
+/obj/structure/railing/corner{
+ dir = 4
+ },
+/turf/open/openspace,
+/area/hydroponics)
"oxy" = (
/obj/effect/turf_decal/tile/neutral/half/contrasted{
dir = 1
@@ -28920,25 +28541,25 @@
/obj/machinery/portable_atmospherics/canister,
/turf/open/floor/iron/tech,
/area/engine/atmos)
-"oyl" = (
-/obj/effect/turf_decal/siding/white{
- alpha = 100;
- dir = 5
- },
-/obj/structure/flora/ausbushes/fullgrass,
-/obj/structure/flora/ausbushes/ppflowers,
-/obj/item/radio/intercom{
- pixel_x = 1;
- pixel_y = -31
- },
-/turf/open/floor/plating/asteroid/planetary,
-/area/crew_quarters/dorms)
"oyV" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
},
/turf/open/floor/plating,
/area/maintenance/department/medical/central)
+"ozb" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/digital_clock/directional/north,
+/turf/open/floor/wood,
+/area/chapel/main)
"ozj" = (
/obj/structure/flora/rock/pile,
/turf/open/floor/plating/asteroid/planetary,
@@ -28974,6 +28595,14 @@
/obj/structure/ladder,
/turf/open/floor/pod/dark,
/area/ai_monitored/turret_protected/aisat/maint)
+"ozM" = (
+/obj/effect/turf_decal/bot,
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/structure/kitchenspike,
+/turf/open/floor/iron/freezer,
+/area/crew_quarters/kitchen/coldroom)
"ozO" = (
/obj/effect/turf_decal/tile/neutral/half/contrasted{
dir = 4
@@ -29079,6 +28708,17 @@
},
/turf/open/floor/iron/grid/steel,
/area/hydroponics)
+"oCj" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/iron/dark/corner{
+ dir = 8
+ },
+/area/hallway/primary/central{
+ name = "-2 Primary Hallway"
+ })
"oCE" = (
/turf/open/openspace,
/area/engine/atmos)
@@ -29103,6 +28743,21 @@
"oEl" = (
/turf/closed/wall/r_wall,
/area/security/detectives_office)
+"oEv" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/glass,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/effect/turf_decal/numbers/two_nine,
+/turf/open/floor/iron,
+/area/hallway/secondary/service)
"oEx" = (
/obj/effect/turf_decal/tile/purple/anticorner/contrasted,
/obj/machinery/light,
@@ -29127,13 +28782,6 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/iron,
/area/maintenance/department/crew_quarters/dorms)
-"oEM" = (
-/obj/effect/landmark/start/cook,
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 4
- },
-/turf/open/floor/iron/cafeteria,
-/area/crew_quarters/kitchen)
"oEZ" = (
/obj/structure/sign/departments/medbay/alt2,
/turf/closed/wall,
@@ -29480,37 +29128,6 @@
},
/turf/open/floor/iron,
/area/science/misc_lab)
-"oMi" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/button/door/incinerator_vent_atmos_aux{
- pixel_x = 24;
- pixel_y = 8;
- req_one_access = null;
- req_one_access_txt = "11"
- },
-/obj/machinery/button/door/incinerator_vent_atmos_main{
- pixel_x = 24;
- pixel_y = -8;
- req_one_access = null;
- req_one_access_txt = "11"
- },
-/obj/machinery/button/ignition/incinerator/atmos{
- pixel_x = 38;
- pixel_y = -7
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/structure/cable{
- icon_state = "1-8"
- },
-/obj/machinery/computer/turbine_computer{
- dir = 1;
- id = "incineratorturbineRight";
- name = "gas turbine right control computer"
- },
-/turf/open/floor/iron,
-/area/maintenance/disposal/incinerator)
"oMm" = (
/obj/machinery/power/emitter/welded{
dir = 8
@@ -29542,10 +29159,6 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/pod/dark,
/area/maintenance/department/medical/morgue)
-"oMP" = (
-/obj/structure/flora/ausbushes/lavendergrass,
-/turf/closed/mineral/random/air,
-/area/asteroid/paradise)
"oMQ" = (
/obj/effect/turf_decal/tile/dark_red/fourcorners/contrasted{
alpha = 180;
@@ -29563,16 +29176,6 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/iron/dark,
/area/security/brig)
-"oMU" = (
-/obj/effect/turf_decal/numbers/two_nine{
- dir = 2
- },
-/obj/effect/turf_decal/bot,
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/engine/engineering)
"oNe" = (
/obj/effect/turf_decal/siding/wood{
dir = 4
@@ -29591,6 +29194,10 @@
slowdown = 0
},
/area/asteroid/paradise/surface)
+"oNh" = (
+/obj/structure/bonfire,
+/turf/open/floor/plating/asteroid/planetary,
+/area/asteroid/paradise)
"oNp" = (
/obj/effect/turf_decal/siding/white{
alpha = 100;
@@ -29602,6 +29209,25 @@
/obj/structure/flora/rock/pile,
/turf/open/floor/plating/asteroid/planetary,
/area/crew_quarters/dorms)
+"oNr" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/dark{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/landmark/start/quartermaster,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/iron/dark/side{
+ dir = 4
+ },
+/area/hallway/primary/central{
+ name = "-2 Primary Hallway"
+ })
"oNs" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 1
@@ -29643,31 +29269,24 @@
/obj/effect/spawner/room/threexthree,
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
-"oNJ" = (
-/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{
- dir = 4
- },
-/obj/structure/table/reinforced,
-/obj/item/paper_bin{
- pixel_x = -5;
- pixel_y = 5
- },
-/obj/item/book/manual/wiki/security_space_law{
- pixel_x = 7;
- pixel_y = 6
- },
-/turf/open/floor/iron,
-/area/security/brig)
-"oNZ" = (
-/obj/structure/flora/ausbushes/lavendergrass,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/plating/asteroid/planetary,
-/area/asteroid/paradise)
"oOr" = (
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
/area/crew_quarters/dorms)
+"oOA" = (
+/obj/effect/turf_decal/tile/dark_green/fourcorners/contrasted,
+/mob/living/simple_animal/hostile/retaliate/frog{
+ attacked_sound = 'sound/effects/huuu.ogg';
+ dir = 8;
+ name = "Larry";
+ pixel_y = 12;
+ stepped_sound = null
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 9
+ },
+/turf/open/floor/iron,
+/area/hydroponics)
"oOM" = (
/obj/structure/cable,
/obj/machinery/blackbox_recorder,
@@ -29739,25 +29358,6 @@
},
/turf/open/floor/plating,
/area/maintenance/disposal/incinerator)
-"oQf" = (
-/obj/effect/turf_decal/stripes/line,
-/obj/item/radio/intercom{
- dir = 1;
- pixel_y = 29
- },
-/obj/machinery/computer/med_data/laptop{
- pixel_x = 4;
- pixel_y = 2;
- req_one_access = null;
- req_one_access_txt = "1;4"
- },
-/obj/structure/table,
-/obj/item/paicard{
- pixel_x = -14;
- pixel_y = 2
- },
-/turf/open/floor/iron,
-/area/security/brig)
"oQk" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/grille/broken,
@@ -29863,26 +29463,6 @@
},
/turf/open/floor/iron/white,
/area/science/research)
-"oUu" = (
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/tile/yellow/half/contrasted{
- alpha = 180;
- dir = 8
- },
-/obj/item/radio/intercom{
- dir = 1;
- pixel_x = -30;
- pixel_y = -2
- },
-/turf/open/floor/iron/dark/corner{
- dir = 1
- },
-/area/hallway/primary/central{
- name = "-2 Primary Hallway"
- })
"oUH" = (
/obj/structure/table/optable{
name = "Forensics Operating Table"
@@ -29968,11 +29548,6 @@
},
/turf/open/floor/engine,
/area/engine/supermatter)
-"oWJ" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/closed/mineral/random/air,
-/area/asteroid/paradise)
"oXd" = (
/obj/structure/railing{
dir = 9
@@ -29989,15 +29564,6 @@
"oXe" = (
/turf/closed/wall,
/area/maintenance/department/medical/central)
-"oXB" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/obj/structure/closet/secure_closet/genpop,
-/obj/effect/turf_decal/bot,
-/obj/machinery/firealarm/directional/east,
-/turf/open/floor/iron/dark,
-/area/security/prison)
"oXZ" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/cable/yellow{
@@ -30015,6 +29581,26 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron/tech,
/area/engine/engineering)
+"oYO" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/yellow/half/contrasted{
+ alpha = 180;
+ dir = 8
+ },
+/obj/item/radio/intercom{
+ dir = 1;
+ pixel_x = -30;
+ pixel_y = -2
+ },
+/turf/open/floor/iron/dark/corner{
+ dir = 1
+ },
+/area/hallway/primary/central{
+ name = "-2 Primary Hallway"
+ })
"oYP" = (
/obj/effect/turf_decal/tile/purple/half/contrasted{
dir = 1
@@ -30211,13 +29797,6 @@
/obj/machinery/door/firedoor,
/turf/open/floor/iron,
/area/hydroponics)
-"pbz" = (
-/obj/structure/flora/rock/pile,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 8
- },
-/turf/open/floor/plating/asteroid/basalt/planetary,
-/area/asteroid/paradise)
"pcu" = (
/obj/effect/turf_decal/tile/blue/half/contrasted{
dir = 8
@@ -30290,6 +29869,13 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating/asteroid/planetary,
/area/asteroid/paradise)
+"pdw" = (
+/obj/effect/turf_decal/tile/bar/opposingcorners,
+/obj/structure/cable/yellow{
+ icon_state = "1-8"
+ },
+/turf/open/floor/iron/dark,
+/area/crew_quarters/kitchen)
"pdR" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/spawner/lootdrop/grille_or_trash,
@@ -30308,32 +29894,6 @@
},
/turf/open/floor/plating/grass,
/area/asteroid/paradise/surface)
-"pee" = (
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 4
- },
-/obj/machinery/holopad,
-/obj/effect/turf_decal/box,
-/turf/open/floor/iron,
-/area/hallway/primary/aft{
- name = "-3 Primary Hallway"
- })
-"peI" = (
-/obj/effect/turf_decal/stripes/line,
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 8;
- name = "External Gas to Loop"
- },
-/obj/effect/turf_decal/delivery,
-/obj/machinery/firealarm/directional/south,
-/turf/open/floor/iron/dark,
-/area/engine/engineering)
"pfb" = (
/obj/effect/turf_decal/stripes/line,
/obj/effect/turf_decal/evac,
@@ -30341,32 +29901,19 @@
/area/hallway/primary/aft{
name = "-3 Primary Hallway"
})
-"pfd" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/obj/structure/table/wood,
-/obj/machinery/computer/security/telescreen/entertainment{
- network = list("thunder","court","public");
- pixel_x = -1;
- pixel_y = 31
- },
-/obj/machinery/light{
- dir = 1;
- light_color = "#7AC3FF"
- },
-/obj/item/storage/crayons{
- pixel_x = 3;
- pixel_y = 4
- },
-/turf/open/floor/carpet/green,
-/area/crew_quarters/cafeteria)
"pfN" = (
/obj/structure/window/reinforced{
dir = 1
},
/turf/open/floor/engine,
/area/science/xenobiology)
+"pgy" = (
+/obj/structure/flora/ausbushes/sparsegrass,
+/obj/structure/flora/ausbushes/lavendergrass,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/asteroid/planetary,
+/area/asteroid/paradise)
"pgO" = (
/obj/structure/railing/corner{
dir = 4
@@ -30452,33 +29999,6 @@
/obj/effect/turf_decal/stripes/corner,
/turf/open/floor/iron/dark,
/area/medical/morgue)
-"pjQ" = (
-/obj/structure/railing/corner{
- dir = 8
- },
-/obj/machinery/atmospherics/components/unary/thermomachine/freezer{
- dir = 2;
- initialize_directions = 2;
- piping_layer = 4
- },
-/obj/machinery/camera/autoname{
- dir = 6;
- network = list("ss13","medbay")
- },
-/obj/machinery/power/apc/auto_name/north{
- pixel_y = 24
- },
-/obj/machinery/light/small{
- dir = 1
- },
-/obj/structure/cable/yellow{
- icon_state = "0-2"
- },
-/obj/machinery/vending/wallmed{
- pixel_x = -32
- },
-/turf/open/floor/iron/grid/steel,
-/area/medical/medbay/central)
"pjU" = (
/obj/item/kirbyplants/random{
pixel_x = -6;
@@ -30504,15 +30024,6 @@
},
/turf/open/floor/iron/dark,
/area/ai_monitored/security/armory)
-"pkm" = (
-/obj/structure/railing/corner,
-/obj/effect/turf_decal/siding/wood,
-/obj/machinery/camera/autoname,
-/obj/machinery/vending/games{
- pixel_y = -1
- },
-/turf/open/floor/carpet/green,
-/area/crew_quarters/cafeteria)
"pkH" = (
/obj/machinery/chem_master/condimaster,
/obj/structure/railing{
@@ -30601,32 +30112,6 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/engine/atmos)
-"poF" = (
-/obj/machinery/door/window{
- base_state = "leftsecure";
- dir = 8;
- icon_state = "leftsecure";
- name = "Primary AI Core Access";
- obj_integrity = 300;
- req_access_txt = "16"
- },
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "AI Core shutters";
- name = "AI Core Shutter"
- },
-/obj/effect/turf_decal/delivery,
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/turretid{
- control_area = "/area/ai_monitored/turret_protected/ai";
- icon_state = "control_stun";
- name = "AI Chamber turret control";
- pixel_x = -1;
- pixel_y = 29
- },
-/turf/open/floor/engine,
-/area/ai_monitored/turret_protected/ai)
"poV" = (
/obj/effect/turf_decal/tile/purple/anticorner/contrasted,
/obj/structure/table_frame,
@@ -30874,26 +30359,18 @@
},
/turf/open/floor/engine/o2,
/area/engine/atmos)
+"pvC" = (
+/obj/effect/turf_decal/numbers/two_nine,
+/obj/effect/turf_decal/bot,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/turf/open/floor/iron/dark,
+/area/engine/engineering)
"pvV" = (
/obj/machinery/iv_drip,
/turf/open/floor/iron/grid/steel,
/area/medical/patients_rooms)
-"pwr" = (
-/obj/machinery/light_switch{
- pixel_x = 25;
- pixel_y = 26
- },
-/obj/structure/cable/yellow{
- icon_state = "2-4"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 6
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 6
- },
-/turf/open/floor/wood,
-/area/crew_quarters/heads/captain)
"pwy" = (
/obj/structure/flora/ausbushes/sparsegrass,
/obj/structure/closet/crate/miningcar{
@@ -30946,20 +30423,6 @@
"pxs" = (
/turf/closed/mineral/bscrystal,
/area/quartermaster/storage)
-"pxD" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/machinery/power/smes,
-/obj/structure/cable/yellow{
- icon_state = "0-8"
- },
-/obj/item/radio/intercom{
- pixel_x = 33;
- pixel_y = -2
- },
-/turf/open/floor/iron,
-/area/maintenance/disposal/incinerator)
"pxO" = (
/obj/structure/table,
/obj/effect/turf_decal/tile/neutral/fourcorners/contrasted,
@@ -31018,11 +30481,6 @@
/obj/effect/spawner/lootdrop/maintenance/two,
/turf/open/floor/plating,
/area/maintenance/department/science/xenobiology)
-"pzR" = (
-/obj/structure/lattice/catwalk/over,
-/obj/machinery/firealarm/directional/east,
-/turf/open/openspace,
-/area/maintenance/department/security/brig)
"pAb" = (
/obj/structure/railing,
/turf/open/floor/plating/asteroid/planetary,
@@ -31135,13 +30593,6 @@
/obj/effect/turf_decal/siding/wood,
/turf/open/floor/carpet/green,
/area/crew_quarters/cafeteria)
-"pBY" = (
-/obj/item/paicard{
- pixel_x = 5;
- pixel_y = 1
- },
-/turf/open/floor/plating,
-/area/quartermaster/warehouse)
"pCa" = (
/obj/machinery/door/airlock/engineering/glass/critical{
heat_proof = 1;
@@ -31158,51 +30609,6 @@
/obj/item/kirbyplants/random,
/turf/open/floor/wood,
/area/chapel/main)
-"pCI" = (
-/obj/machinery/airalarm/all_access{
- dir = 8;
- pixel_x = 24
- },
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/structure/table,
-/obj/item/paper_bin{
- pixel_x = 5;
- pixel_y = 7
- },
-/obj/item/pen{
- pixel_x = 5;
- pixel_y = 8
- },
-/obj/machinery/light{
- dir = 4
- },
-/obj/machinery/power/terminal{
- dir = 1
- },
-/obj/structure/cable{
- icon_state = "0-2"
- },
-/obj/machinery/camera/autoname{
- dir = 8;
- network = list("ss13","engine")
- },
-/obj/effect/loot_jobscale/medical/burn_kit{
- pixel_x = -6;
- pixel_y = 10
- },
-/obj/item/storage/toolbox/emergency{
- pixel_x = 3;
- pixel_y = -1
- },
-/obj/item/extinguisher/advanced{
- pixel_x = -8;
- pixel_y = 2
- },
-/turf/open/floor/iron,
-/area/maintenance/disposal/incinerator)
"pCT" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/cable/yellow{
@@ -31236,6 +30642,25 @@
dir = 4
},
/area/medical/genetics/cloning)
+"pDD" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/item/radio/intercom{
+ dir = 1;
+ pixel_y = 29
+ },
+/obj/machinery/computer/med_data/laptop{
+ pixel_x = 4;
+ pixel_y = 2;
+ req_one_access = null;
+ req_one_access_txt = "1;4"
+ },
+/obj/structure/table,
+/obj/item/paicard{
+ pixel_x = -14;
+ pixel_y = 2
+ },
+/turf/open/floor/iron,
+/area/security/brig)
"pEf" = (
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
@@ -31299,6 +30724,48 @@
},
/turf/open/floor/iron/dark,
/area/security/brig)
+"pFZ" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/structure/table,
+/obj/effect/turf_decal/siding/white{
+ dir = 9
+ },
+/obj/item/storage/box/papersack{
+ pixel_x = -2;
+ pixel_y = 9
+ },
+/obj/item/storage/box/papersack{
+ pixel_x = -2;
+ pixel_y = 9
+ },
+/obj/item/storage/box/papersack{
+ pixel_x = -2;
+ pixel_y = 9
+ },
+/obj/item/storage/box/papersack{
+ pixel_x = -2;
+ pixel_y = 9
+ },
+/obj/item/storage/box/papersack{
+ pixel_x = -2;
+ pixel_y = 9
+ },
+/obj/item/storage/box/papersack{
+ pixel_x = -4;
+ pixel_y = 5
+ },
+/obj/item/storage/box/papersack{
+ pixel_x = -4;
+ pixel_y = 2
+ },
+/obj/item/food/grown/apple{
+ pixel_x = 11;
+ pixel_y = -6
+ },
+/turf/open/floor/iron/cafeteria,
+/area/crew_quarters/kitchen)
"pGn" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/disposalpipe/segment{
@@ -31306,29 +30773,16 @@
},
/turf/open/floor/iron,
/area/maintenance/department/bridge)
-"pGp" = (
-/obj/structure/extinguisher_cabinet{
- pixel_y = -31
- },
-/mob/living/simple_animal/bot/mulebot{
- beacon_freq = 1400;
- home_destination = "QM #1";
- suffix = "#1"
- },
-/obj/machinery/navbeacon{
- codes_txt = "delivery;dir=8";
- dir = 8;
- freq = 1400;
- location = "QM #1"
- },
-/obj/effect/turf_decal/delivery,
-/turf/open/floor/iron,
-/area/quartermaster/warehouse)
"pGA" = (
/obj/effect/decal/cleanable/blood/old,
/obj/item/hatchet,
/turf/open/floor/plating/dirt/planetary,
/area/asteroid/paradise/surface)
+"pGB" = (
+/obj/effect/turf_decal/sand/plating,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/asteroid/planetary,
+/area/asteroid/paradise)
"pHe" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/door/airlock/maintenance_hatch{
@@ -31429,40 +30883,6 @@
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
/area/maintenance/department/crew_quarters/bar)
-"pII" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4{
- dir = 8
- },
-/turf/open/floor/plating/asteroid/basalt/planetary,
-/area/asteroid/paradise)
-"pIN" = (
-/obj/structure/stairs{
- dir = 8
- },
-/obj/item/radio/intercom{
- dir = 1;
- pixel_x = 2;
- pixel_y = 29
- },
-/turf/open/floor/pod/dark,
-/area/crew_quarters/cafeteria)
-"pJt" = (
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/structure/disposalpipe/segment{
- dir = 1
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/quartermaster/sorting)
"pKj" = (
/obj/structure/flora/rock/pile,
/obj/effect/turf_decal/sand/plating,
@@ -31530,28 +30950,6 @@
},
/turf/open/floor/iron/dark,
/area/storage/tech)
-"pLg" = (
-/obj/structure/disposalpipe/segment,
-/obj/effect/turf_decal/tile/dark_blue/half/contrasted{
- alpha = 180;
- dir = 2
- },
-/turf/open/floor/iron,
-/area/hallway/primary/central{
- name = "-2 Primary Hallway"
- })
-"pLi" = (
-/obj/machinery/atmospherics/components/unary/thermomachine/freezer{
- dir = 1;
- initialize_directions = 1
- },
-/obj/effect/turf_decal/bot,
-/obj/item/radio/intercom{
- pixel_x = 1;
- pixel_y = -30
- },
-/turf/open/floor/iron/tech,
-/area/engine/engineering)
"pLv" = (
/obj/effect/turf_decal/siding/white{
alpha = 100;
@@ -31581,6 +30979,30 @@
},
/turf/open/floor/iron/dark,
/area/engine/engineering)
+"pLT" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/light/small,
+/obj/effect/turf_decal/tile/dark_red/fourcorners/contrasted{
+ alpha = 180;
+ color = "#DE3A3A"
+ },
+/obj/machinery/flasher{
+ id = "brigentryaux";
+ pixel_y = -38;
+ range = 3
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/item/radio/intercom{
+ dir = 1;
+ pixel_x = 1;
+ pixel_y = -28
+ },
+/turf/open/floor/iron,
+/area/security/brig)
"pMc" = (
/obj/structure/lattice/catwalk/over,
/obj/structure/railing{
@@ -31590,21 +31012,6 @@
/area/hallway/primary/fore{
name = "-1 Primary Hallway"
})
-"pMh" = (
-/obj/structure/railing/corner{
- dir = 1
- },
-/obj/effect/turf_decal/siding/white/corner{
- dir = 1
- },
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/turf/open/floor/iron/cafeteria,
-/area/crew_quarters/kitchen)
"pMt" = (
/obj/structure/cable/yellow{
icon_state = "1-8"
@@ -31664,15 +31071,6 @@
"pMW" = (
/turf/closed/wall/r_wall/rust,
/area/maintenance/department/engine)
-"pMX" = (
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/effect/turf_decal/numbers/two_nine{
- dir = 2
- },
-/turf/open/floor/iron,
-/area/maintenance/department/crew_quarters/dorms)
"pMY" = (
/obj/structure/chair,
/obj/effect/turf_decal/tile/neutral/half/contrasted{
@@ -31772,19 +31170,6 @@
},
/turf/open/floor/iron/dark,
/area/engine/atmos)
-"pQt" = (
-/obj/effect/turf_decal/tile/bar/opposingcorners,
-/obj/structure/sink/kitchen{
- desc = "A sink used for washing one's hands and face. It looks rusty and home-made";
- name = "old sink";
- pixel_y = 28
- },
-/turf/open/floor/iron/dark,
-/area/crew_quarters/kitchen)
-"pQG" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/open/openspace,
-/area/asteroid/paradise)
"pRW" = (
/obj/structure/chair/office{
dir = 4
@@ -31836,24 +31221,6 @@
"pSY" = (
/turf/open/floor/plating,
/area/maintenance/department/chapel)
-"pTi" = (
-/obj/structure/table,
-/obj/item/stock_parts/subspace/treatment,
-/obj/item/stock_parts/subspace/treatment,
-/obj/item/stock_parts/subspace/treatment,
-/obj/item/stock_parts/subspace/treatment,
-/obj/machinery/light/small{
- dir = 1
- },
-/obj/item/book/manual/wiki/tcomms{
- pixel_x = 17;
- pixel_y = 4
- },
-/obj/item/radio/intercom{
- pixel_y = 28
- },
-/turf/open/floor/iron/dark,
-/area/engine/atmos)
"pTv" = (
/obj/effect/decal/cleanable/dirt/dust,
/turf/closed/wall,
@@ -31909,6 +31276,17 @@
/obj/structure/filingcabinet,
/turf/open/floor/wood,
/area/medical/exam_room)
+"pUm" = (
+/obj/machinery/conveyor{
+ id = "QMLoad2"
+ },
+/obj/item/radio/intercom{
+ dir = 1;
+ pixel_x = -30;
+ pixel_y = -2
+ },
+/turf/open/floor/iron/dark,
+/area/quartermaster/storage)
"pUo" = (
/obj/machinery/atmospherics/pipe/multiz/layer4{
dir = 1
@@ -31951,14 +31329,37 @@
},
/turf/open/floor/iron,
/area/crew_quarters/kitchen/coldroom)
-"pVH" = (
-/obj/item/radio/intercom{
+"pUZ" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/button/door/incinerator_vent_atmos_aux{
+ pixel_x = 24;
+ pixel_y = 8;
+ req_one_access = null;
+ req_one_access_txt = "11"
+ },
+/obj/machinery/button/door/incinerator_vent_atmos_main{
+ pixel_x = 24;
+ pixel_y = -8;
+ req_one_access = null;
+ req_one_access_txt = "11"
+ },
+/obj/machinery/button/ignition/incinerator/atmos{
+ pixel_x = 38;
+ pixel_y = -7
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/machinery/computer/turbine_computer{
dir = 1;
- pixel_x = -31;
- pixel_y = -3
+ id = "incineratorturbineRight";
+ name = "gas turbine right control computer"
},
-/turf/open/floor/plating/beach/sand,
-/area/asteroid/paradise/surface/sand)
+/turf/open/floor/iron,
+/area/maintenance/disposal/incinerator)
"pVO" = (
/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
dir = 9
@@ -31978,18 +31379,15 @@
},
/turf/open/floor/plating,
/area/ai_monitored/turret_protected/aisat/maint)
-"pWH" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 5
- },
-/obj/effect/spawner/randomarcade{
- dir = 1
+"pWG" = (
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "Maintenance Hatch";
+ req_access_txt = "12";
+ security_level = 6
},
-/obj/structure/railing,
-/obj/effect/turf_decal/siding/white,
-/obj/machinery/firealarm/directional/west,
-/turf/open/floor/carpet/green,
-/area/crew_quarters/cafeteria)
+/obj/machinery/door/firedoor,
+/turf/open/floor/plating,
+/area/maintenance/department/security/brig)
"pWN" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/spawner/lootdrop/glowstick/lit,
@@ -32092,10 +31490,6 @@
/obj/effect/turf_decal/delivery,
/turf/open/floor/plating,
/area/maintenance/department/engine)
-"pXZ" = (
-/obj/effect/decal/cleanable/food/egg_smudge,
-/turf/open/floor/iron/cafeteria,
-/area/crew_quarters/kitchen)
"pYd" = (
/turf/open/floor/wood/broken,
/area/hallway/secondary/service)
@@ -32135,11 +31529,34 @@
name = "mainframe floor"
},
/area/tcommsat/server)
+"pYO" = (
+/obj/machinery/computer/security/mining,
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/machinery/digital_clock/directional/north,
+/turf/open/floor/iron,
+/area/bridge)
"pZC" = (
/obj/structure/closet,
/obj/effect/spawner/lootdrop/maintenance/two,
/turf/open/floor/plating,
/area/maintenance/department/science/central)
+"pZI" = (
+/obj/structure/flora/ausbushes/sunnybush,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/open/floor/grass/no_border,
+/area/hallway/primary/fore{
+ name = "-1 Primary Hallway"
+ })
"qah" = (
/obj/effect/turf_decal/siding/wood{
dir = 1
@@ -32347,6 +31764,12 @@
/obj/structure/barricade/wooden/crude,
/turf/open/floor/plating,
/area/maintenance/department/science/xenobiology)
+"qeO" = (
+/obj/structure/flora/rock/pile,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/asteroid/planetary,
+/area/asteroid/paradise)
"qfj" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/cable/yellow{
@@ -32396,17 +31819,6 @@
/area/hallway/primary/fore{
name = "-1 Primary Hallway"
})
-"qgq" = (
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/iron/dark/corner{
- dir = 8
- },
-/area/hallway/primary/central{
- name = "-2 Primary Hallway"
- })
"qgB" = (
/obj/structure/table/wood,
/obj/effect/turf_decal/siding/wood{
@@ -32419,6 +31831,15 @@
},
/turf/open/floor/carpet/green,
/area/crew_quarters/cafeteria)
+"qgW" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable/yellow{
+ icon_state = "1-32"
+ },
+/obj/effect/turf_decal/trimline/yellow,
+/obj/structure/lattice/catwalk/over,
+/turf/open/openspace,
+/area/maintenance/department/crew_quarters/bar)
"qgY" = (
/turf/closed/wall/r_wall,
/area/maintenance/department/eva)
@@ -32472,6 +31893,21 @@
"qhT" = (
/turf/closed/wall/r_wall,
/area/maintenance/department/security/brig)
+"qiO" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 1
+ },
+/obj/structure/table,
+/obj/machinery/reagentgrinder{
+ pixel_x = -8;
+ pixel_y = 15
+ },
+/obj/item/reagent_containers/glass/beaker{
+ pixel_x = 6;
+ pixel_y = 3
+ },
+/turf/open/floor/iron/cafeteria,
+/area/crew_quarters/kitchen)
"qjd" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/chair/fancy/comfy{
@@ -32490,6 +31926,11 @@
},
/turf/open/floor/iron/dark,
/area/engine/atmos)
+"qjq" = (
+/obj/structure/flora/grass/jungle/b,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4,
+/turf/open/floor/plating/asteroid/basalt/planetary,
+/area/asteroid/paradise)
"qjF" = (
/obj/structure/railing{
dir = 8
@@ -32575,17 +32016,6 @@
/obj/structure/fans/tiny,
/turf/open/floor/iron/techmaint/planetary,
/area/science/mixing)
-"qlK" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/cable/yellow{
- icon_state = "1-16"
- },
-/obj/effect/turf_decal/trimline/yellow,
-/obj/machinery/light/small{
- dir = 4
- },
-/turf/open/floor/pod/dark,
-/area/maintenance/department/medical/morgue)
"qmd" = (
/obj/structure/railing{
dir = 4
@@ -32611,6 +32041,14 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/iron,
/area/maintenance/department/eva)
+"qnE" = (
+/obj/structure/flora/junglebush/c,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plating/asteroid/planetary,
+/area/asteroid/paradise)
"qnK" = (
/obj/machinery/power/apc/auto_name/south{
pixel_y = -24
@@ -32689,17 +32127,6 @@
"qpS" = (
/turf/closed/mineral/random/air,
/area/maintenance/disposal)
-"qqn" = (
-/obj/structure/railing{
- dir = 5
- },
-/obj/structure/closet/emcloset/anchored,
-/turf/open/floor/iron/dark/side{
- dir = 5
- },
-/area/hallway/primary/aft{
- name = "-3 Primary Hallway"
- })
"qrb" = (
/obj/machinery/requests_console{
department = "Science";
@@ -32733,27 +32160,6 @@
},
/turf/open/floor/iron/dark,
/area/quartermaster/storage)
-"qsi" = (
-/obj/effect/turf_decal/tile/blue/half/contrasted{
- dir = 4
- },
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/light{
- light_color = "#7AC3FF"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/turf/open/floor/iron/white,
-/area/medical/medbay/central)
"qsx" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/power/apc/auto_name/north{
@@ -32931,6 +32337,10 @@
/obj/structure/chair/office,
/turf/open/floor/iron/dark,
/area/engine/atmos)
+"qwk" = (
+/obj/machinery/door/firedoor,
+/turf/open/floor/plating,
+/area/maintenance/department/medical/central)
"qwA" = (
/obj/structure/cable/yellow{
icon_state = "2-4"
@@ -33033,6 +32443,12 @@
},
/turf/open/floor/wood,
/area/crew_quarters/theatre/backstage)
+"qza" = (
+/obj/structure/flora/ausbushes/lavendergrass,
+/obj/effect/decal/cleanable/cobweb/cobweb2,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/asteroid/planetary,
+/area/asteroid/paradise)
"qzd" = (
/obj/structure/ladder,
/obj/effect/turf_decal/stripes/line{
@@ -33121,6 +32537,10 @@
/obj/effect/turf_decal/delivery,
/turf/open/floor/iron,
/area/engine/engineering)
+"qBR" = (
+/obj/structure/lattice,
+/turf/open/openspace,
+/area/maintenance/department/security/brig)
"qCg" = (
/turf/open/floor/plating/beach/deep_water,
/area/asteroid/paradise/surface/water)
@@ -33179,39 +32599,9 @@
},
/turf/open/floor/iron,
/area/engine/engineering)
-"qFt" = (
-/obj/effect/turf_decal/bot,
-/obj/machinery/camera/autoname{
- dir = 8
- },
-/obj/machinery/gibber,
-/turf/open/floor/iron/freezer,
-/area/crew_quarters/kitchen/coldroom)
"qFF" = (
/turf/open/floor/wood,
/area/crew_quarters/heads/captain)
-"qFN" = (
-/obj/effect/turf_decal/tile/purple/half/contrasted{
- dir = 4
- },
-/obj/machinery/light,
-/obj/structure/cable/yellow{
- icon_state = "1-4"
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
-/obj/structure/disposalpipe/sorting/mail{
- dir = 8;
- sortType = 14
- },
-/obj/item/radio/intercom{
- pixel_x = 1;
- pixel_y = -31
- },
-/turf/open/floor/iron/white/side{
- dir = 1
- },
-/area/science/lab)
"qGg" = (
/turf/closed/wall,
/area/maintenance/department/engine/atmos)
@@ -33280,6 +32670,17 @@
/obj/structure/table/wood,
/turf/open/floor/wood/broken,
/area/vacant_room/office)
+"qId" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable/yellow{
+ icon_state = "8-32"
+ },
+/obj/effect/turf_decal/trimline/yellow,
+/obj/structure/closet,
+/obj/effect/spawner/lootdrop/maintenance/two,
+/obj/structure/lattice/catwalk/over,
+/turf/open/openspace,
+/area/maintenance/department/science/central)
"qIX" = (
/obj/docking_port/stationary{
dwidth = 3;
@@ -33362,6 +32763,21 @@
/area/hallway/primary/aft{
name = "-3 Primary Hallway"
})
+"qKE" = (
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/power/apc/auto_name/east,
+/obj/structure/chair/office/light{
+ dir = 1;
+ pixel_y = 3
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/obj/effect/landmark/start/scientist,
+/turf/open/floor/iron/grid/steel,
+/area/science/xenobiology)
"qKI" = (
/obj/machinery/portable_atmospherics/scrubber,
/obj/effect/turf_decal/bot{
@@ -33481,6 +32897,15 @@
/obj/machinery/firealarm/directional/north,
/turf/open/floor/iron,
/area/engine/engineering)
+"qOn" = (
+/obj/structure/table/wood,
+/obj/item/soap/nanotrasen,
+/obj/item/paicard{
+ pixel_x = -6;
+ pixel_y = 2
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/cafeteria)
"qOu" = (
/obj/item/target,
/obj/effect/turf_decal/stripes/line,
@@ -33511,6 +32936,21 @@
dir = 8
},
/turf/open/openspace,
+/area/hallway/primary/fore{
+ name = "-1 Primary Hallway"
+ })
+"qQk" = (
+/obj/item/storage/secure/safe{
+ pixel_x = 37;
+ pixel_y = 1
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/camera/autoname,
+/obj/item/radio/intercom{
+ dir = 1;
+ pixel_y = 29
+ },
+/turf/open/floor/iron,
/area/hallway/primary/fore{
name = "-1 Primary Hallway"
})
@@ -33706,10 +33146,6 @@
/obj/structure/railing,
/turf/open/floor/iron,
/area/bridge)
-"qUk" = (
-/obj/machinery/door/firedoor,
-/turf/open/floor/plating,
-/area/maintenance/department/medical/central)
"qUr" = (
/obj/effect/turf_decal/stripes/line,
/obj/item/kirbyplants/random,
@@ -33934,6 +33370,13 @@
},
/turf/open/floor/iron/white,
/area/crew_quarters/heads/cmo)
+"qYC" = (
+/obj/effect/turf_decal/tile/neutral/half/contrasted{
+ dir = 8
+ },
+/obj/machinery/digital_clock/directional/south,
+/turf/open/floor/iron,
+/area/security/brig)
"qYU" = (
/obj/machinery/computer/bounty{
dir = 1
@@ -34083,13 +33526,6 @@
},
/turf/open/floor/iron,
/area/security/brig)
-"rcs" = (
-/obj/structure/flora/ausbushes/ywflowers,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 8
- },
-/turf/open/floor/plating/asteroid/planetary,
-/area/asteroid/paradise)
"rcE" = (
/obj/structure/lattice/catwalk/over,
/obj/machinery/modular_computer/console/preset/engineering{
@@ -34146,10 +33582,6 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/iron/dark,
/area/medical/morgue)
-"reu" = (
-/obj/effect/decal/cleanable/cobweb/cobweb2,
-/turf/open/floor/plating/asteroid/planetary,
-/area/asteroid/paradise)
"reS" = (
/obj/structure/railing/corner,
/obj/effect/decal/cleanable/dirt/dust,
@@ -34312,13 +33744,32 @@
},
/turf/open/floor/iron/white,
/area/crew_quarters/fitness/recreation)
-"riO" = (
-/obj/structure/flora/ausbushes/sparsegrass,
-/obj/structure/flora/ausbushes/lavendergrass,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating/asteroid/planetary,
-/area/asteroid/paradise)
+"riT" = (
+/obj/machinery/button/door{
+ id = "meetingshutter";
+ name = "Privacy Shutter Control";
+ pixel_x = 26;
+ pixel_y = 2
+ },
+/obj/structure/filingcabinet{
+ pixel_x = 8
+ },
+/obj/structure/filingcabinet{
+ pixel_x = -8
+ },
+/obj/effect/turf_decal/trimline/dark_blue/filled/line{
+ dir = 5
+ },
+/obj/machinery/light_switch{
+ pixel_x = 35;
+ pixel_y = 2
+ },
+/obj/structure/sign/painting/library{
+ pixel_x = 1;
+ pixel_y = 29
+ },
+/turf/open/floor/iron/dark,
+/area/bridge/meeting_room)
"rjh" = (
/obj/structure/table,
/obj/machinery/cell_charger,
@@ -34330,6 +33781,21 @@
},
/turf/open/floor/iron,
/area/engine/engineering)
+"rjj" = (
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/hallway/primary/central{
+ name = "-2 Primary Hallway"
+ })
"rjD" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -34351,6 +33817,14 @@
/area/hallway/primary/aft{
name = "-3 Primary Hallway"
})
+"rjX" = (
+/obj/machinery/holopad,
+/obj/effect/turf_decal/box,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/open/floor/iron/cafeteria,
+/area/crew_quarters/kitchen)
"rkg" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/door/poddoor/shutters/preopen{
@@ -34397,22 +33871,6 @@
/obj/effect/decal/cleanable/blood/old,
/turf/open/floor/plating/airless,
/area/science/mixing)
-"rku" = (
-/obj/machinery/light{
- dir = 4
- },
-/obj/structure/disposalpipe/segment,
-/obj/item/radio/intercom{
- dir = 1;
- pixel_x = 29;
- pixel_y = -2
- },
-/turf/open/floor/iron/dark/side{
- dir = 4
- },
-/area/hallway/primary/central{
- name = "-2 Primary Hallway"
- })
"rkz" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 5
@@ -34561,16 +34019,35 @@
/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
/turf/open/floor/iron/dark,
/area/science/mixing)
-"rnW" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
+"rnO" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/structure/railing/corner{
+ dir = 8
},
/obj/structure/cable/yellow{
- icon_state = "0-8"
+ icon_state = "2-4"
},
-/turf/open/floor/iron,
-/area/maintenance/department/engine)
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-16"
+ },
+/obj/effect/turf_decal/trimline/yellow,
+/obj/effect/landmark/start/station_engineer,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/dark/visible{
+ dir = 1
+ },
+/turf/open/floor/pod/dark,
+/area/engine/atmos)
"roc" = (
/obj/structure/table/reinforced,
/obj/item/paper_bin{
@@ -34617,6 +34094,10 @@
/area/hallway/primary/fore{
name = "-1 Primary Hallway"
})
+"roL" = (
+/obj/item/toy/plush/moth/firewatch,
+/turf/open/floor/plating/asteroid/basalt/planetary,
+/area/asteroid/paradise)
"roN" = (
/obj/effect/landmark/xeno_spawn,
/turf/open/floor/plating,
@@ -34774,25 +34255,6 @@
/area/hallway/primary/fore{
name = "-1 Primary Hallway"
})
-"rsj" = (
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/machinery/door/poddoor/shutters/preopen{
- id = "quarantineshutters";
- name = "isolation shutters"
- },
-/obj/machinery/door/airlock/maintenance_hatch{
- name = "Medbay Maintenance";
- req_access_txt = "5"
- },
-/obj/machinery/door/firedoor,
-/turf/open/floor/iron/dark,
-/area/maintenance/department/medical/central)
"rsH" = (
/obj/effect/turf_decal/numbers{
dir = 1
@@ -34900,19 +34362,20 @@
/area/engineering/hallway{
name = "Engineering Viewing Platform"
})
-"ruK" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/disposalpipe/segment{
- dir = 4
+"ruO" = (
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 6
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
+/obj/structure/dresser,
+/obj/item/candle{
+ pixel_x = 6;
+ pixel_y = 12
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 8
+/obj/item/radio/intercom{
+ pixel_y = -29
},
-/turf/open/floor/iron/showroomfloor,
-/area/crew_quarters/cryopods)
+/turf/open/floor/carpet/orange,
+/area/quartermaster/qm)
"ruX" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -34959,6 +34422,19 @@
/obj/item/chair,
/turf/open/floor/plating/airless,
/area/science/test_area)
+"rwG" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/structure/railing/corner,
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/obj/structure/lattice/catwalk/over,
+/obj/effect/turf_decal/trimline/yellow,
+/obj/structure/cable/yellow{
+ icon_state = "4-32"
+ },
+/turf/open/openspace,
+/area/asteroid/paradise/surface)
"rxd" = (
/obj/effect/landmark/xeno_spawn,
/turf/open/floor/plating,
@@ -34992,12 +34468,10 @@
/turf/open/floor/plating/asteroid/planetary,
/area/quartermaster/storage)
"ryh" = (
-/obj/structure/flora/ausbushes/sparsegrass,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 8
- },
-/turf/open/floor/plating/asteroid/planetary,
-/area/asteroid/paradise)
+/obj/structure/lattice/catwalk/over,
+/obj/machinery/firealarm/directional/north,
+/turf/open/openspace,
+/area/maintenance/department/security/brig)
"ryA" = (
/obj/machinery/power/apc/auto_name/south{
pixel_y = -24
@@ -35008,6 +34482,20 @@
/obj/structure/cable/yellow,
/turf/open/floor/iron,
/area/janitor)
+"rzg" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/effect/turf_decal/numbers/two_nine,
+/obj/effect/turf_decal/bot,
+/turf/open/floor/iron/dark,
+/area/engine/engineering)
"rzI" = (
/obj/structure/lattice/catwalk/over,
/obj/structure/railing/corner{
@@ -35027,6 +34515,27 @@
/area/hallway/primary/fore{
name = "-1 Primary Hallway"
})
+"rzP" = (
+/obj/item/kirbyplants/random,
+/obj/item/radio/intercom{
+ dir = 1;
+ pixel_x = -30;
+ pixel_y = -2
+ },
+/turf/open/floor/iron/dark/side{
+ dir = 10
+ },
+/area/hallway/primary/aft{
+ name = "-3 Primary Hallway"
+ })
+"rzV" = (
+/obj/structure/flora/rock/pile,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plating/asteroid/basalt/planetary,
+/area/asteroid/paradise)
"rAh" = (
/obj/structure/table/glass,
/obj/item/retractor{
@@ -35089,30 +34598,6 @@
luminosity = 2
},
/area/ai_monitored/turret_protected/ai)
-"rBu" = (
-/obj/machinery/door/airlock/hatch{
- name = "MiniSat Access";
- req_one_access_txt = "32;19"
- },
-/obj/effect/mapping_helpers/airlock/cyclelink_helper{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/layer_manifold,
-/obj/effect/turf_decal/stripes/closeup,
-/obj/machinery/door/firedoor,
-/turf/open/floor/iron/tech/grid,
-/area/ai_monitored/turret_protected/aisat_interior)
-"rBL" = (
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/effect/turf_decal/evac,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/turf/open/floor/iron,
-/area/hallway/primary/central{
- name = "-2 Primary Hallway"
- })
"rBM" = (
/obj/effect/landmark/xeno_spawn,
/turf/open/floor/plating,
@@ -35133,14 +34618,6 @@
},
/turf/open/floor/plating/asteroid/basalt/planetary,
/area/quartermaster/storage)
-"rCQ" = (
-/obj/effect/turf_decal/bot,
-/obj/structure/railing{
- dir = 1
- },
-/obj/structure/kitchenspike,
-/turf/open/floor/iron/freezer,
-/area/crew_quarters/kitchen/coldroom)
"rDl" = (
/obj/structure/chair/office/light{
dir = 4
@@ -35158,6 +34635,22 @@
},
/turf/open/floor/iron,
/area/bridge)
+"rDI" = (
+/obj/machinery/disposal/bin,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/bot,
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/firealarm/directional/north,
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/obj/machinery/digital_clock/directional/east,
+/turf/open/floor/iron,
+/area/science/research)
"rDX" = (
/obj/effect/turf_decal/tile/purple/fourcorners/contrasted,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
@@ -35168,6 +34661,13 @@
},
/turf/open/floor/iron/white,
/area/science/lab)
+"rEg" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/numbers,
+/turf/open/floor/iron,
+/area/hallway/primary/fore{
+ name = "-1 Primary Hallway"
+ })
"rEh" = (
/obj/effect/turf_decal/tile/neutral/half/contrasted{
dir = 4
@@ -35189,18 +34689,14 @@
},
/turf/open/floor/iron/dark,
/area/security/brig)
-"rEo" = (
-/obj/item/radio/intercom{
- broadcasting = 1;
- canhear_range = 6;
- dir = 8;
- listening = 1;
- name = "Station Intercom (Court)";
- pixel_x = 33;
- pixel_y = -4
+"rEz" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/machinery/light/small{
+ dir = 1
},
-/turf/open/floor/plating,
-/area/vacant_room/office)
+/obj/effect/turf_decal/numbers/two_nine,
+/turf/open/floor/iron,
+/area/maintenance/department/engine)
"rEC" = (
/obj/structure/window/reinforced{
dir = 1
@@ -35221,16 +34717,6 @@
/obj/structure/flora/ausbushes/ywflowers,
/turf/open/floor/plating/asteroid/planetary,
/area/asteroid/paradise)
-"rEU" = (
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/turf/open/floor/iron,
-/area/hallway/primary/central{
- name = "-2 Primary Hallway"
- })
"rEV" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 8
@@ -35349,53 +34835,6 @@
/area/hallway/primary/fore{
name = "-1 Primary Hallway"
})
-"rGO" = (
-/obj/effect/decal/cleanable/cobweb,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating/asteroid/planetary,
-/area/asteroid/paradise)
-"rGX" = (
-/obj/structure/railing{
- dir = 1
- },
-/obj/structure/table,
-/obj/effect/turf_decal/siding/white{
- dir = 9
- },
-/obj/item/storage/box/papersack{
- pixel_x = -2;
- pixel_y = 9
- },
-/obj/item/storage/box/papersack{
- pixel_x = -2;
- pixel_y = 9
- },
-/obj/item/storage/box/papersack{
- pixel_x = -2;
- pixel_y = 9
- },
-/obj/item/storage/box/papersack{
- pixel_x = -2;
- pixel_y = 9
- },
-/obj/item/storage/box/papersack{
- pixel_x = -2;
- pixel_y = 9
- },
-/obj/item/storage/box/papersack{
- pixel_x = -4;
- pixel_y = 5
- },
-/obj/item/storage/box/papersack{
- pixel_x = -4;
- pixel_y = 2
- },
-/obj/item/food/grown/apple{
- pixel_x = 11;
- pixel_y = -6
- },
-/turf/open/floor/iron/cafeteria,
-/area/crew_quarters/kitchen)
"rHi" = (
/obj/structure/extinguisher_cabinet{
pixel_x = -26
@@ -35563,6 +35002,16 @@
},
/turf/open/floor/plating/grass,
/area/asteroid/paradise/surface)
+"rKV" = (
+/obj/docking_port/stationary{
+ dwidth = 12;
+ height = 69;
+ id = "whiteship_home";
+ name = "Auxiliary Dock";
+ width = 25
+ },
+/turf/open/floor/plating/dirt/planetary,
+/area/asteroid/paradise/surface/grass)
"rLa" = (
/obj/structure/stairs,
/obj/structure/extinguisher_cabinet{
@@ -35588,14 +35037,6 @@
},
/turf/open/floor/carpet/blue,
/area/crew_quarters/heads/cmo)
-"rLD" = (
-/obj/structure/flora/junglebush/c,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 8
- },
-/turf/open/floor/plating/asteroid/planetary,
-/area/asteroid/paradise)
"rLL" = (
/obj/effect/turf_decal/stripes/line{
dir = 6
@@ -35707,18 +35148,6 @@
/area/hallway/primary/fore{
name = "-1 Primary Hallway"
})
-"rOE" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/effect/turf_decal/numbers/two_nine{
- dir = 2
- },
-/turf/open/floor/iron,
-/area/maintenance/department/cargo)
"rOI" = (
/obj/effect/turf_decal/stripes/line,
/obj/structure/fence/post{
@@ -35728,13 +35157,6 @@
dir = 1
},
/area/asteroid/paradise/surface)
-"rPg" = (
-/obj/structure/sign/painting/library{
- pixel_x = 1;
- pixel_y = 29
- },
-/turf/open/openspace,
-/area/crew_quarters/kitchen)
"rPj" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -35798,12 +35220,6 @@
slowdown = 0
},
/area/asteroid/paradise/surface)
-"rQQ" = (
-/obj/structure/flora/ausbushes/lavendergrass,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating/asteroid/planetary,
-/area/asteroid/paradise)
"rRc" = (
/obj/structure/table,
/obj/effect/turf_decal/siding/wood{
@@ -35934,42 +35350,29 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/tcommsat/computer)
-"rVG" = (
-/obj/effect/turf_decal/sand/plating,
-/obj/effect/turf_decal/sand/plating,
-/obj/structure/flora/rock/pile,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4,
-/turf/open/floor/plating/asteroid/planetary,
-/area/asteroid/paradise)
+"rWj" = (
+/obj/item/radio/intercom{
+ dir = 1;
+ pixel_x = -33;
+ pixel_y = -36
+ },
+/obj/structure/disposalpipe/trunk/multiz/down{
+ dir = 4
+ },
+/obj/structure/rack,
+/obj/item/stack/package_wrap,
+/obj/item/hand_labeler,
+/obj/item/book/manual/wiki/cooking_to_serve_man,
+/obj/item/book/manual/wiki/barman_recipes{
+ pixel_x = 4;
+ pixel_y = -4
+ },
+/turf/open/floor/iron/cafeteria,
+/area/crew_quarters/kitchen)
"rWp" = (
/obj/effect/spawner/room/fivexfour,
/turf/open/floor/plating,
/area/maintenance/department/crew_quarters/dorms)
-"rWq" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/closet/crate/solarpanel_small,
-/turf/open/floor/iron,
-/area/hallway/primary/fore{
- name = "-1 Primary Hallway"
- })
-"rWs" = (
-/obj/effect/turf_decal/tile/black/opposingcorners{
- dir = 1
- },
-/obj/machinery/suit_storage_unit/rd,
-/obj/effect/turf_decal/bot,
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/structure/cable/yellow{
- icon_state = "2-4"
- },
-/obj/item/toy/plush/slimeplushie{
- pixel_x = -1;
- pixel_y = 7
- },
-/turf/open/floor/iron/white,
-/area/crew_quarters/heads/hor)
"rWV" = (
/obj/structure/ladder,
/obj/effect/turf_decal/stripes/line{
@@ -36023,6 +35426,26 @@
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
/turf/open/floor/iron,
/area/hydroponics)
+"rYe" = (
+/obj/structure/sign/poster/random{
+ pixel_x = 31
+ },
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/table/wood,
+/obj/item/storage/crayons{
+ pixel_x = 3;
+ pixel_y = 7
+ },
+/obj/item/camera{
+ pixel_y = -9
+ },
+/obj/item/radio/intercom{
+ dir = 1;
+ pixel_x = 2;
+ pixel_y = 29
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/cafeteria)
"rYh" = (
/obj/effect/turf_decal/tile/neutral/half/contrasted{
dir = 4
@@ -36313,6 +35736,21 @@
},
/turf/open/floor/plating,
/area/maintenance/department/bridge)
+"sew" = (
+/obj/effect/turf_decal/trimline/dark/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/dark{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/dark{
+ dir = 8
+ },
+/obj/machinery/firealarm/directional/west,
+/turf/open/floor/iron/dark,
+/area/engineering/hallway{
+ name = "Engineering Viewing Platform"
+ })
"sff" = (
/obj/structure/rack,
/obj/item/crowbar/red,
@@ -36416,48 +35854,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/chapel)
-"sid" = (
-/obj/structure/chair/fancy/comfy{
- color = "#596479"
- },
-/obj/effect/turf_decal/siding/wideplating/dark{
- dir = 1
- },
-/obj/effect/landmark/start/captain,
-/obj/machinery/light{
- dir = 1
- },
-/obj/item/radio/intercom{
- pixel_x = 1;
- pixel_y = 27
- },
-/turf/open/floor/carpet/blue,
-/area/bridge/meeting_room)
-"sif" = (
-/obj/structure/table/reinforced,
-/obj/effect/turf_decal/tile/red/half/contrasted{
- alpha = 180
- },
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/structure/cable/yellow{
- icon_state = "2-4"
- },
-/obj/item/book/manual/wiki/security_space_law{
- pixel_x = -6;
- pixel_y = 5
- },
-/obj/machinery/recharger{
- pixel_x = 7;
- pixel_y = 3
- },
-/obj/item/storage/toolbox/mechanical{
- pixel_x = -2;
- pixel_y = 10
- },
-/turf/open/floor/iron/dark,
-/area/security/warden)
"sip" = (
/obj/machinery/camera/autoname{
dir = 4;
@@ -36490,6 +35886,30 @@
},
/turf/open/floor/iron,
/area/engine/atmos)
+"siH" = (
+/obj/machinery/conveyor{
+ dir = 4;
+ id = "packageSort2"
+ },
+/obj/effect/turf_decal/stripes/line,
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/window/northleft{
+ dir = 2;
+ req_access_txt = "50"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 2
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/turf/open/floor/iron/dark,
+/area/quartermaster/sorting)
"siO" = (
/obj/machinery/door/airlock/public/glass{
name = "Chapel"
@@ -36528,14 +35948,6 @@
/area/hallway/primary/central{
name = "-2 Primary Hallway"
})
-"sjd" = (
-/obj/structure/railing,
-/obj/structure/lattice,
-/obj/machinery/firealarm/directional/west,
-/turf/open/openspace,
-/area/hallway/primary/fore{
- name = "-1 Primary Hallway"
- })
"sjC" = (
/obj/item/book/granter/spell/smoke/lesser{
pixel_x = -4;
@@ -36594,19 +36006,6 @@
/area/engineering/hallway{
name = "Engineering Viewing Platform"
})
-"sky" = (
-/obj/item/kirbyplants/random,
-/obj/item/radio/intercom{
- dir = 1;
- pixel_x = -30;
- pixel_y = -2
- },
-/turf/open/floor/iron/dark/side{
- dir = 10
- },
-/area/hallway/primary/aft{
- name = "-3 Primary Hallway"
- })
"skF" = (
/obj/machinery/newscaster{
pixel_y = -31
@@ -36709,31 +36108,9 @@
},
/turf/open/floor/iron/dark,
/area/chapel/office)
-"smX" = (
-/obj/machinery/light{
- dir = 1
- },
-/obj/machinery/disposal/bin,
-/obj/effect/turf_decal/bot,
-/obj/structure/disposalpipe/trunk{
- dir = 4
- },
-/obj/item/radio/intercom{
- pixel_x = -1;
- pixel_y = 30
- },
-/turf/open/floor/iron,
-/area/engine/atmos)
"snu" = (
/turf/closed/wall,
/area/crew_quarters/cryopods)
-"snM" = (
-/obj/structure/flora/junglebush/c,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 8
- },
-/turf/open/floor/plating/asteroid/planetary,
-/area/asteroid/paradise)
"snW" = (
/obj/structure/girder,
/turf/open/floor/plating,
@@ -36778,11 +36155,6 @@
/obj/structure/flora/ausbushes/sparsegrass,
/turf/open/floor/plating/asteroid/planetary,
/area/quartermaster/storage)
-"soQ" = (
-/obj/structure/flora/ausbushes/sparsegrass,
-/obj/structure/flora/ausbushes/sparsegrass,
-/turf/open/floor/plating/asteroid/planetary,
-/area/asteroid/paradise)
"spj" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/cable/yellow{
@@ -36834,20 +36206,6 @@
"srJ" = (
/turf/closed/wall/r_wall,
/area/crew_quarters/heads/hop)
-"srK" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/obj/effect/turf_decal/sand/plating,
-/obj/item/radio/intercom{
- dir = 1;
- pixel_x = -31;
- pixel_y = -3
- },
-/turf/open/floor/iron,
-/area/hallway/primary/fore{
- name = "-1 Primary Hallway"
- })
"ssi" = (
/obj/structure/cable/yellow{
icon_state = "1-2"
@@ -36859,6 +36217,11 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/turf/open/floor/iron,
/area/maintenance/department/bridge)
+"ssr" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/item/paicard,
+/turf/open/floor/iron,
+/area/maintenance/department/medical/central)
"ssw" = (
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/iron/tech,
@@ -36902,15 +36265,6 @@
},
/turf/open/floor/iron,
/area/engine/engineering)
-"suj" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4{
- dir = 8
- },
-/turf/open/floor/plating/asteroid/basalt/planetary,
-/area/asteroid/paradise)
"suk" = (
/obj/structure/chair/office/light{
dir = 4
@@ -36930,44 +36284,13 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/maintenance/department/crew_quarters/bar)
-"svk" = (
-/obj/effect/mapping_helpers/airlock/unres{
- dir = 8
- },
-/obj/machinery/door/firedoor,
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/effect/turf_decal/tile/blue/half/contrasted{
- dir = 4
- },
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{
- cycle_id = "medbay"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 8
- },
-/obj/machinery/door/airlock/medical/glass{
- emergency = 1;
- id_tag = "MedbayFoyer";
- name = "Medbay";
- req_one_access_txt = "5"
+"svv" = (
+/obj/effect/dummy/lighting_obj{
+ light_color = "#e6762c";
+ light_power = 2;
+ light_range = 9
},
-/turf/open/floor/iron/white,
-/area/medical/medbay/central)
-"svB" = (
-/obj/effect/turf_decal/sand/plating,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating/asteroid/planetary,
+/turf/open/lava/smooth,
/area/asteroid/paradise)
"svO" = (
/obj/structure/chair{
@@ -37189,6 +36512,12 @@
"sDa" = (
/turf/closed/wall,
/area/maintenance/disposal)
+"sDH" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/turf_decal/numbers/two_nine,
+/turf/open/floor/wood,
+/area/crew_quarters/cafeteria)
"sEk" = (
/obj/effect/turf_decal/siding/white{
alpha = 100;
@@ -37228,36 +36557,6 @@
},
/turf/open/floor/iron/dark,
/area/engine/atmos)
-"sEO" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/machinery/disposal/bin,
-/obj/effect/turf_decal/bot,
-/obj/structure/disposalpipe/trunk{
- dir = 8
- },
-/obj/item/radio/intercom{
- dir = 1;
- pixel_x = 29;
- pixel_y = -3
- },
-/turf/open/floor/iron/white,
-/area/crew_quarters/fitness/recreation)
-"sEP" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/cable/yellow{
- icon_state = "1-16"
- },
-/obj/effect/turf_decal/trimline/yellow,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 8
- },
-/obj/structure/lattice/catwalk/over,
-/turf/open/openspace,
-/area/maintenance/department/chapel)
"sFa" = (
/obj/effect/turf_decal/tile/purple/half/contrasted{
dir = 8
@@ -37328,6 +36627,16 @@
},
/turf/open/floor/iron,
/area/maintenance/department/bridge)
+"sGK" = (
+/obj/effect/turf_decal/sand/plating,
+/obj/structure/flora/ausbushes/sparsegrass,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plating/asteroid/planetary,
+/area/asteroid/paradise)
"sGX" = (
/obj/item/kirbyplants/random,
/turf/open/floor/iron/sepia,
@@ -37459,6 +36768,15 @@
/obj/machinery/space_heater,
/turf/open/floor/iron,
/area/maintenance/department/bridge)
+"sKV" = (
+/obj/effect/turf_decal/tile/bar/opposingcorners,
+/obj/structure/sink/kitchen{
+ desc = "A sink used for washing one's hands and face. It looks rusty and home-made";
+ name = "old sink";
+ pixel_y = 28
+ },
+/turf/open/floor/iron/dark,
+/area/crew_quarters/kitchen)
"sLb" = (
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/sepia/planetary{
@@ -37577,6 +36895,16 @@
"sNi" = (
/turf/open/floor/plating/beach/water,
/area/asteroid/paradise/surface/water)
+"sNp" = (
+/obj/effect/turf_decal/tile/dark_red/fourcorners/contrasted{
+ alpha = 180;
+ color = "#DE3A3A"
+ },
+/obj/structure/reagent_dispensers/peppertank{
+ pixel_y = -32
+ },
+/turf/open/floor/iron/dark,
+/area/security/brig)
"sNq" = (
/obj/machinery/airalarm/directional/west,
/obj/structure/cable/yellow{
@@ -37667,21 +36995,6 @@
/area/hallway/primary/fore{
name = "-1 Primary Hallway"
})
-"sPN" = (
-/obj/structure/railing/corner{
- dir = 8
- },
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 8
- },
-/turf/open/floor/iron,
-/area/hallway/primary/central{
- name = "-2 Primary Hallway"
- })
"sQG" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -37827,13 +37140,6 @@
},
/turf/open/floor/iron/dark,
/area/crew_quarters/heads/hos)
-"sUv" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/closet/cardboard,
-/obj/effect/spawner/lootdrop/maintenance/two,
-/obj/item/paicard,
-/turf/open/floor/iron,
-/area/ai_monitored/turret_protected/aisat/maint)
"sUS" = (
/obj/machinery/firealarm/directional/north,
/obj/machinery/camera/autoname{
@@ -37846,20 +37152,18 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/maintenance/department/crew_quarters/dorms)
-"sUZ" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/sand/plating,
-/obj/structure/disposalpipe/segment{
- dir = 10
- },
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 1
+"sVh" = (
+/obj/effect/mapping_helpers/airlock/unres{
+ dir = 8
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 10
+/obj/machinery/door/airlock/medical/glass{
+ name = "kitchen";
+ req_one_access_txt = "28;25;35"
},
-/turf/open/floor/iron,
-/area/crew_quarters/dorms)
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/bar/opposingcorners,
+/turf/open/floor/iron/dark,
+/area/crew_quarters/kitchen)
"sVn" = (
/obj/effect/turf_decal/trimline/yellow,
/obj/structure/cable/yellow{
@@ -37916,25 +37220,6 @@
"sWe" = (
/turf/open/floor/iron,
/area/maintenance/department/science/xenobiology)
-"sWk" = (
-/obj/item/radio/intercom{
- dir = 1;
- pixel_x = -33;
- pixel_y = -36
- },
-/obj/structure/disposalpipe/trunk/multiz/down{
- dir = 4
- },
-/obj/structure/rack,
-/obj/item/stack/package_wrap,
-/obj/item/hand_labeler,
-/obj/item/book/manual/wiki/cooking_to_serve_man,
-/obj/item/book/manual/wiki/barman_recipes{
- pixel_x = 4;
- pixel_y = -4
- },
-/turf/open/floor/iron/cafeteria,
-/area/crew_quarters/kitchen)
"sWl" = (
/obj/structure/filingcabinet/chestdrawer,
/mob/living/simple_animal/parrot/Poly,
@@ -37954,6 +37239,27 @@
/obj/effect/turf_decal/delivery,
/turf/open/floor/plating,
/area/security/brig)
+"sWy" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/door/poddoor{
+ id = "engstorage";
+ name = "Engineering Secure Storage Lockdown"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/iron/dark,
+/area/engine/engineering)
"sWD" = (
/obj/machinery/gateway{
dir = 6
@@ -38011,6 +37317,25 @@
},
/turf/open/floor/plating,
/area/maintenance/department/crew_quarters/bar)
+"sXY" = (
+/obj/structure/noticeboard{
+ name = "bounty list";
+ pixel_x = 1;
+ pixel_y = 33
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/effect/turf_decal/bot,
+/obj/machinery/camera/autoname{
+ dir = 4;
+ network = list("ss13","cargo")
+ },
+/obj/effect/turf_decal/numbers/two_nine,
+/turf/open/floor/iron/sepia,
+/area/hallway/primary/aft{
+ name = "-3 Primary Hallway"
+ })
"sYf" = (
/obj/machinery/computer/cryopod{
pixel_y = -27
@@ -38082,6 +37407,24 @@
},
/turf/open/floor/prison,
/area/security/prison)
+"sZb" = (
+/obj/structure/extinguisher_cabinet{
+ pixel_y = -31
+ },
+/mob/living/simple_animal/bot/mulebot{
+ beacon_freq = 1400;
+ home_destination = "QM #1";
+ suffix = "#1"
+ },
+/obj/machinery/navbeacon{
+ codes_txt = "delivery;dir=8";
+ dir = 8;
+ freq = 1400;
+ location = "QM #1"
+ },
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/iron,
+/area/quartermaster/warehouse)
"tae" = (
/obj/effect/turf_decal/sand/plating,
/obj/effect/turf_decal/sand/plating,
@@ -38120,46 +37463,11 @@
},
/turf/open/floor/iron/dark,
/area/engine/engineering)
-"taE" = (
-/obj/structure/flora/rock/pile,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating/asteroid/planetary,
-/area/asteroid/paradise)
"taR" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/iron,
/area/maintenance/department/engine/atmos)
-"taW" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 1
- },
-/obj/structure/railing/corner{
- dir = 8
- },
-/obj/structure/cable/yellow{
- icon_state = "2-4"
- },
-/obj/structure/cable/yellow{
- icon_state = "2-8"
- },
-/obj/structure/cable/yellow{
- icon_state = "2-16"
- },
-/obj/effect/turf_decal/trimline/yellow,
-/obj/effect/landmark/start/station_engineer,
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/manifold/dark/visible{
- dir = 1
- },
-/turf/open/floor/pod/dark,
-/area/engine/atmos)
"taZ" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
@@ -38328,6 +37636,23 @@
},
/turf/open/floor/prison,
/area/security/prison)
+"tfh" = (
+/obj/effect/turf_decal/sand/plating,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/docking_port/stationary{
+ dir = 4;
+ dwidth = 9;
+ height = 14;
+ id = "emergency_home";
+ name = "EchoStation emergency evac bay";
+ width = 21
+ },
+/turf/open/floor/sepia/planetary{
+ slowdown = 0
+ },
+/area/asteroid/paradise/surface)
"tfl" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -38367,27 +37692,6 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/iron/tech,
/area/engine/engineering)
-"tfJ" = (
-/obj/machinery/power/smes{
- charge = 5e+006;
- name = "ai power storage unit"
- },
-/obj/machinery/flasher{
- id = "AI";
- name = "Meatbag Pacifier";
- pixel_x = 23;
- pixel_y = 22
- },
-/obj/structure/cable{
- icon_state = "0-8"
- },
-/obj/item/toy/plush/lizardplushie{
- layer = 5;
- pixel_x = 1;
- pixel_y = 14
- },
-/turf/open/floor/circuit/red,
-/area/ai_monitored/turret_protected/ai)
"tfQ" = (
/obj/machinery/atmospherics/components/binary/pump/layer4{
dir = 4;
@@ -38509,6 +37813,19 @@
},
/turf/open/floor/iron/grid/steel,
/area/hydroponics)
+"tih" = (
+/mob/living/simple_animal/kalo{
+ desc = "The Perma brig's cute grass snake.";
+ icon_dead = "snake_dead";
+ icon_living = "snake";
+ icon_state = "snake";
+ name = "Hugel"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/turf/open/floor/prison,
+/area/security/prison)
"tio" = (
/obj/structure/railing{
dir = 8
@@ -38568,6 +37885,11 @@
/mob/living/simple_animal/slime,
/turf/open/floor/engine,
/area/science/xenobiology)
+"tjf" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/closed/mineral/random/air,
+/area/asteroid/paradise)
"tju" = (
/obj/structure/railing/corner{
dir = 1
@@ -38636,6 +37958,31 @@
},
/turf/open/floor/carpet/green,
/area/crew_quarters/cafeteria)
+"tkD" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/tile/red/half/contrasted{
+ alpha = 180
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
+/obj/item/book/manual/wiki/security_space_law{
+ pixel_x = -6;
+ pixel_y = 5
+ },
+/obj/machinery/recharger{
+ pixel_x = 7;
+ pixel_y = 3
+ },
+/obj/item/storage/toolbox/mechanical{
+ pixel_x = -2;
+ pixel_y = 10
+ },
+/turf/open/floor/iron/dark,
+/area/security/warden)
"tkJ" = (
/turf/open/floor/iron/dark/side{
dir = 6
@@ -38690,6 +38037,33 @@
/obj/structure/stairs,
/turf/open/floor/pod/dark,
/area/science/mixing)
+"tlH" = (
+/obj/machinery/computer/cargo/request{
+ dir = 4
+ },
+/obj/machinery/requests_console{
+ department = "Engineering";
+ departmentType = 3;
+ name = "Engineering RC";
+ pixel_x = -32;
+ pixel_y = -1
+ },
+/obj/machinery/camera/autoname{
+ dir = 4;
+ network = list("ss13","engine")
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/item/radio/intercom{
+ pixel_x = 1;
+ pixel_y = -30
+ },
+/turf/open/floor/iron,
+/area/engine/engineering)
"tlK" = (
/obj/structure/cable/yellow{
icon_state = "1-2"
@@ -38764,6 +38138,34 @@
"tmO" = (
/turf/closed/wall/r_wall,
/area/chapel/office)
+"tnA" = (
+/obj/structure/flora/ausbushes/ywflowers,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/window/reinforced,
+/turf/open/floor/grass/no_border,
+/area/medical/storage)
+"tnI" = (
+/obj/structure/chair/fancy/comfy{
+ color = "#596479"
+ },
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 1
+ },
+/obj/effect/landmark/start/captain,
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/item/radio/intercom{
+ pixel_x = 1;
+ pixel_y = 27
+ },
+/turf/open/floor/carpet/blue,
+/area/bridge/meeting_room)
"tnQ" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/atmospherics/pipe/simple/purple/visible,
@@ -38797,15 +38199,6 @@
},
/turf/open/floor/grass/no_border,
/area/medical/storage)
-"tok" = (
-/obj/structure/reagent_dispensers/beerkeg{
- pixel_x = 6;
- pixel_y = -6
- },
-/turf/open/floor/plating/beach/coastline_t{
- dir = 9
- },
-/area/asteroid/paradise/surface)
"top" = (
/obj/structure/stairs{
dir = 4
@@ -38822,14 +38215,6 @@
/obj/effect/spawner/room/threexfive,
/turf/open/floor/plating,
/area/maintenance/department/science/central)
-"toN" = (
-/obj/machinery/firealarm/directional/east,
-/turf/open/floor/iron/dark/side{
- dir = 4
- },
-/area/hallway/primary/central{
- name = "-2 Primary Hallway"
- })
"tpg" = (
/obj/structure/sign/painting/library{
pixel_y = 32
@@ -38878,16 +38263,6 @@
},
/turf/open/floor/engine,
/area/security/nuke_storage)
-"tpF" = (
-/obj/machinery/door/airlock/security/glass{
- name = "Security Office";
- req_access_txt = 0;
- req_one_access_txt = "1;4"
- },
-/obj/effect/turf_decal/stripes/closeup,
-/obj/machinery/door/firedoor,
-/turf/open/floor/iron/dark,
-/area/security/brig)
"tpH" = (
/obj/structure/grille/broken,
/turf/open/floor/plating,
@@ -38956,6 +38331,15 @@
/area/hallway/primary/fore{
name = "-1 Primary Hallway"
})
+"trB" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4{
+ dir = 8
+ },
+/turf/open/floor/plating/asteroid/basalt/planetary,
+/area/asteroid/paradise)
"trC" = (
/obj/structure/table,
/obj/item/clipboard,
@@ -39026,6 +38410,14 @@
},
/turf/open/floor/plating,
/area/security/prison)
+"tss" = (
+/obj/effect/turf_decal/trimline/yellow,
+/obj/structure/cable/yellow{
+ icon_state = "2-32"
+ },
+/obj/structure/lattice/catwalk/over,
+/turf/open/openspace,
+/area/maintenance/department/science/central)
"tst" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/cable/yellow{
@@ -39085,6 +38477,14 @@
},
/turf/open/floor/iron/dark,
/area/security/brig)
+"ttC" = (
+/obj/structure/railing,
+/obj/structure/lattice,
+/obj/machinery/firealarm/directional/west,
+/turf/open/openspace,
+/area/hallway/primary/fore{
+ name = "-1 Primary Hallway"
+ })
"ttD" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -39162,6 +38562,22 @@
/obj/machinery/atmospherics/pipe/simple/green/hidden,
/turf/open/floor/engine/plasma,
/area/engine/atmos)
+"tvm" = (
+/obj/item/beacon{
+ pixel_y = 3
+ },
+/obj/effect/turf_decal/numbers,
+/obj/structure/railing{
+ dir = 6
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/turf/open/floor/iron/techmaint/planetary,
+/area/asteroid/paradise/surface)
"twd" = (
/obj/structure/flora/rock/pile,
/turf/open/floor/plating/asteroid/basalt/planetary,
@@ -39236,19 +38652,6 @@
},
/turf/open/floor/carpet/green,
/area/vacant_room/office)
-"txL" = (
-/obj/structure/railing/corner{
- dir = 1
- },
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/turf/open/floor/iron,
-/area/hallway/primary/central{
- name = "-2 Primary Hallway"
- })
"txR" = (
/obj/structure/closet/secure_closet/personal,
/turf/open/floor/iron,
@@ -39304,17 +38707,6 @@
"tzP" = (
/turf/closed/wall/r_wall/rust,
/area/science/research)
-"tzS" = (
-/obj/structure/closet/emcloset/anchored,
-/obj/structure/railing{
- dir = 10
- },
-/turf/open/floor/iron/dark/side{
- dir = 10
- },
-/area/hallway/primary/aft{
- name = "-3 Primary Hallway"
- })
"tzT" = (
/obj/item/trash/syndi_cakes,
/turf/open/floor/plating/beach/sand,
@@ -39328,6 +38720,31 @@
},
/turf/open/floor/iron/dark,
/area/medical/morgue)
+"tAz" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/dark{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/turf/open/floor/iron/dark/side{
+ dir = 4
+ },
+/area/hallway/primary/central{
+ name = "-2 Primary Hallway"
+ })
"tAG" = (
/obj/machinery/door/airlock/hatch{
name = "MiniSat Teleporter";
@@ -39409,6 +38826,24 @@
/obj/effect/spawner/lootdrop/glowstick/lit,
/turf/open/floor/iron,
/area/maintenance/department/medical/central)
+"tBT" = (
+/obj/structure/table/reinforced,
+/obj/structure/desk_bell{
+ pixel_x = -8;
+ pixel_y = 9
+ },
+/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{
+ dir = 1
+ },
+/obj/machinery/airalarm/directional/north,
+/obj/item/paicard{
+ pixel_x = 5;
+ pixel_y = 1
+ },
+/turf/open/floor/iron/dark,
+/area/hallway/primary/fore{
+ name = "-1 Primary Hallway"
+ })
"tCf" = (
/obj/machinery/atmospherics/components/unary/portables_connector/visible{
dir = 4
@@ -39457,21 +38892,6 @@
},
/turf/open/floor/iron/white/side,
/area/science/research)
-"tCZ" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 4
- },
-/obj/machinery/porta_turret/ai{
- dir = 4
- },
-/turf/open/floor/iron/tech/grid,
-/area/ai_monitored/turret_protected/aisat_interior)
"tDp" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -39502,6 +38922,17 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/iron,
/area/maintenance/department/bridge)
+"tDT" = (
+/obj/machinery/seed_extractor,
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/obj/machinery/firealarm/directional/east,
+/obj/structure/sign/poster/official/moth1{
+ pixel_y = -32
+ },
+/turf/open/floor/iron/grid/steel,
+/area/hydroponics)
"tEl" = (
/obj/machinery/door/airlock/science{
name = "Toxins Lab";
@@ -39549,6 +38980,19 @@
/obj/structure/sign/departments/minsky/research/dorms,
/turf/closed/wall,
/area/crew_quarters/dorms)
+"tFM" = (
+/obj/effect/turf_decal/tile/neutral/half/contrasted{
+ dir = 4
+ },
+/obj/machinery/camera/autoname{
+ network = list("ss13","security")
+ },
+/obj/item/kirbyplants/random,
+/obj/structure/sink/kitchen{
+ pixel_y = 22
+ },
+/turf/open/floor/iron,
+/area/security/brig)
"tFV" = (
/obj/effect/turf_decal/stripes/line{
dir = 10
@@ -39682,6 +39126,21 @@
/obj/effect/turf_decal/stripes/corner,
/turf/open/floor/plating,
/area/maintenance/department/crew_quarters/dorms)
+"tIw" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/camera/autoname{
+ network = list("aiupload")
+ },
+/obj/machinery/firealarm/directional/north,
+/turf/open/openspace,
+/area/hallway/primary/fore{
+ name = "-1 Primary Hallway"
+ })
"tII" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/bot,
@@ -39694,8 +39153,10 @@
/obj/effect/spawner/lootdrop/maintenance/four,
/turf/open/floor/plating,
/area/maintenance/department/engine/atmos)
-"tIN" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+"tIP" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4{
+ dir = 6
+ },
/turf/open/floor/plating/asteroid/planetary,
/area/asteroid/paradise)
"tJa" = (
@@ -39740,6 +39201,24 @@
/obj/effect/turf_decal/trimline/yellow,
/turf/open/floor/iron/white,
/area/science/lab)
+"tJv" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/item/radio/intercom{
+ dir = 1;
+ pixel_x = -30;
+ pixel_y = -2
+ },
+/turf/open/floor/iron/dark/side{
+ dir = 9
+ },
+/area/hallway/primary/aft{
+ name = "-3 Primary Hallway"
+ })
"tJw" = (
/obj/structure/table/reinforced,
/obj/item/reagent_containers/food/condiment/saltshaker{
@@ -40206,6 +39685,16 @@
},
/turf/open/floor/iron/dark,
/area/security/brig)
+"tST" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/bar/opposingcorners,
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
+/turf/open/floor/iron/dark,
+/area/crew_quarters/kitchen)
"tSZ" = (
/obj/item/reagent_containers/food/condiment/peppermill{
pixel_y = 25
@@ -40258,6 +39747,15 @@
},
/turf/open/floor/iron/dark,
/area/security/warden)
+"tTn" = (
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/dark_blue/half/contrasted{
+ alpha = 180
+ },
+/turf/open/floor/iron,
+/area/hallway/primary/central{
+ name = "-2 Primary Hallway"
+ })
"tTt" = (
/obj/effect/turf_decal/tile/neutral{
dir = 4
@@ -40280,23 +39778,6 @@
},
/turf/open/floor/iron,
/area/maintenance/department/chapel)
-"tTT" = (
-/obj/effect/turf_decal/tile/neutral/half/contrasted{
- dir = 4
- },
-/obj/structure/chair/fancy/bench{
- layer = 2.5
- },
-/obj/structure/disposalpipe/segment{
- dir = 8
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2,
-/obj/structure/reagent_dispensers/peppertank{
- pixel_x = 1;
- pixel_y = 32
- },
-/turf/open/floor/iron,
-/area/security/prison)
"tUh" = (
/obj/structure/cable{
icon_state = "2-8"
@@ -40315,6 +39796,18 @@
/area/engineering/hallway{
name = "Engineering Viewing Platform"
})
+"tUs" = (
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/wood,
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/machinery/airalarm/directional/north,
+/obj/machinery/vending/donksofttoyvendor,
+/turf/open/floor/carpet/green,
+/area/crew_quarters/cafeteria)
"tUu" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 10
@@ -40408,22 +39901,13 @@
},
/turf/open/floor/wood,
/area/vacant_room/office)
-"tVM" = (
-/obj/machinery/disposal/bin,
-/obj/effect/turf_decal/bot,
-/obj/structure/disposalpipe/trunk{
+"tVK" = (
+/obj/effect/turf_decal/siding/white{
dir = 1
},
-/obj/effect/turf_decal/tile/dark_blue/half/contrasted{
- alpha = 180;
- dir = 2
- },
-/turf/open/floor/iron/dark/corner{
- dir = 8
- },
-/area/hallway/primary/central{
- name = "-2 Primary Hallway"
- })
+/obj/machinery/deepfryer,
+/turf/open/floor/iron/cafeteria,
+/area/crew_quarters/kitchen)
"tVY" = (
/turf/open/floor/iron/sepia,
/area/quartermaster/storage)
@@ -40444,6 +39928,23 @@
},
/turf/open/floor/iron,
/area/medical/surgery)
+"tWu" = (
+/obj/machinery/atmospherics/pipe/multiz/layer4{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/multiz/layer2{
+ dir = 1
+ },
+/obj/machinery/light/small,
+/obj/machinery/status_display/evac{
+ pixel_y = -32
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-16"
+ },
+/obj/effect/turf_decal/trimline/yellow,
+/turf/open/floor/pod/dark,
+/area/maintenance/department/science/central)
"tWx" = (
/obj/structure/lattice/catwalk/over,
/obj/structure/railing{
@@ -40509,33 +40010,6 @@
"tYd" = (
/turf/closed/wall,
/area/janitor)
-"tYp" = (
-/obj/effect/turf_decal/tile/red/half/contrasted{
- alpha = 180;
- dir = 1
- },
-/obj/machinery/camera/autoname{
- dir = 4;
- network = list("ss13","security")
- },
-/obj/machinery/button/door{
- id = "armory";
- name = "Armory Shutter Toggle";
- pixel_x = -32;
- pixel_y = 1;
- req_access_txt = "3"
- },
-/obj/structure/bed/dogbed/walter,
-/mob/living/simple_animal/pet/dog/bullterrier/walter{
- density = 0;
- dir = 1
- },
-/obj/item/stack/sheet/bone{
- pixel_x = 6;
- pixel_y = -6
- },
-/turf/open/floor/iron/dark,
-/area/security/warden)
"tYu" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
@@ -40545,23 +40019,21 @@
},
/turf/open/floor/wood,
/area/crew_quarters/cafeteria)
-"tYC" = (
-/obj/machinery/door/window/brigdoor/northright{
- id = "Cell 1";
- name = "Cell 1";
- req_access_txt = "1"
+"tYX" = (
+/obj/machinery/light{
+ dir = 1
},
-/obj/effect/turf_decal/delivery,
-/obj/effect/mapping_helpers/airlock/cyclelink_helper,
-/turf/open/floor/prison/dark,
-/area/security/prison)
-"tZd" = (
-/obj/structure/flora/rock/pile,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/plating/asteroid/basalt/planetary,
-/area/asteroid/paradise)
+/obj/machinery/disposal/bin,
+/obj/effect/turf_decal/bot,
+/obj/structure/disposalpipe/trunk{
+ dir = 4
+ },
+/obj/item/radio/intercom{
+ pixel_x = -1;
+ pixel_y = 30
+ },
+/turf/open/floor/iron,
+/area/engine/atmos)
"tZz" = (
/obj/structure/railing{
dir = 1
@@ -40624,6 +40096,16 @@
},
/turf/open/floor/carpet/red,
/area/crew_quarters/theatre/backstage)
+"udq" = (
+/obj/structure/flora/junglebush/b,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/turf/open/floor/grass/no_border,
+/area/medical/storage)
"udr" = (
/obj/structure/railing/corner{
dir = 1
@@ -40796,33 +40278,6 @@
/obj/structure/cable,
/turf/open/floor/plating,
/area/tcommsat/computer)
-"uiv" = (
-/obj/machinery/computer/cargo/request{
- dir = 4
- },
-/obj/machinery/requests_console{
- department = "Engineering";
- departmentType = 3;
- name = "Engineering RC";
- pixel_x = -32;
- pixel_y = -1
- },
-/obj/machinery/camera/autoname{
- dir = 4;
- network = list("ss13","engine")
- },
-/obj/machinery/light{
- dir = 8
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 4
- },
-/obj/item/radio/intercom{
- pixel_x = 1;
- pixel_y = -30
- },
-/turf/open/floor/iron,
-/area/engine/engineering)
"uiA" = (
/obj/effect/turf_decal/tile/purple{
dir = 4
@@ -40886,6 +40341,32 @@
},
/turf/open/floor/iron,
/area/medical/storage)
+"ujM" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/machinery/conveyor_switch/oneway{
+ dir = 1;
+ id = "packageSort2"
+ },
+/obj/effect/turf_decal/loading_area{
+ dir = 1
+ },
+/obj/effect/landmark/start/cargo_technician,
+/obj/structure/disposalpipe/junction{
+ dir = 8
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/quartermaster/sorting)
"ujX" = (
/obj/structure/cable/yellow{
icon_state = "2-8"
@@ -40905,6 +40386,23 @@
},
/turf/open/floor/plating,
/area/crew_quarters/heads/chief)
+"ukz" = (
+/obj/structure/table/reinforced,
+/obj/machinery/door/firedoor,
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_x = 4;
+ pixel_y = 9
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "Chefwindow";
+ name = "Chef window"
+ },
+/obj/item/toy/figure/chef{
+ pixel_y = -1;
+ pixel_x = -4
+ },
+/turf/open/floor/iron/white,
+/area/crew_quarters/kitchen)
"ukS" = (
/obj/effect/turf_decal/siding/dark{
dir = 6
@@ -40964,13 +40462,12 @@
/area/hallway/primary/central{
name = "-2 Primary Hallway"
})
-"umL" = (
-/obj/effect/landmark/start/cook,
-/obj/effect/turf_decal/tile/bar/opposingcorners,
-/obj/structure/cable/yellow{
- icon_state = "4-8"
+"umB" = (
+/obj/effect/decal/cleanable/generic,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
},
-/turf/open/floor/iron/dark,
+/turf/open/floor/iron/cafeteria,
/area/crew_quarters/kitchen)
"unj" = (
/obj/structure/closet/secure_closet/medical3,
@@ -41018,6 +40515,25 @@
},
/turf/open/floor/iron,
/area/bridge)
+"unI" = (
+/obj/structure/sign/directions/science{
+ dir = 4;
+ pixel_y = 10
+ },
+/turf/closed/wall,
+/area/hallway/primary/aft{
+ name = "-3 Primary Hallway"
+ })
+"unO" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/white{
+ dir = 1
+ },
+/obj/machinery/griddle,
+/turf/open/floor/iron/cafeteria,
+/area/crew_quarters/kitchen)
"uoe" = (
/obj/effect/turf_decal/siding/wood{
dir = 8
@@ -41049,13 +40565,6 @@
},
/turf/open/floor/iron/dark,
/area/security/brig)
-"uoB" = (
-/obj/effect/turf_decal/tile/bar/opposingcorners,
-/obj/structure/cable/yellow{
- icon_state = "1-8"
- },
-/turf/open/floor/iron/dark,
-/area/crew_quarters/kitchen)
"uoF" = (
/obj/machinery/light/small{
dir = 4
@@ -41302,15 +40811,6 @@
},
/turf/open/floor/iron/white,
/area/science/lab)
-"utq" = (
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/structure/cable/yellow{
- icon_state = "1-4"
- },
-/turf/open/floor/plating,
-/area/maintenance/department/eva)
"utK" = (
/obj/effect/landmark/xeno_spawn,
/turf/open/floor/plating/dirt/planetary,
@@ -41344,24 +40844,6 @@
dir = 8
},
/area/bridge)
-"uvf" = (
-/obj/docking_port/stationary{
- dir = 1;
- dwidth = 12;
- height = 69;
- id = "whiteship_home";
- name = "Auxiliary Dock";
- width = 25
- },
-/turf/open/floor/plating/dirt/planetary,
-/area/asteroid/paradise/surface/grass)
-"uvk" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/numbers,
-/turf/open/floor/iron,
-/area/hallway/primary/fore{
- name = "-1 Primary Hallway"
- })
"uvZ" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 1
@@ -41375,6 +40857,11 @@
},
/turf/open/floor/iron/dark,
/area/bridge/meeting_room)
+"uwc" = (
+/obj/structure/cable/yellow,
+/obj/effect/turf_decal/box,
+/turf/open/floor/plating,
+/area/asteroid/paradise/surface)
"uwd" = (
/obj/effect/turf_decal/tile/dark_blue/fourcorners/contrasted{
alpha = 180
@@ -41406,6 +40893,32 @@
},
/turf/open/floor/plating,
/area/maintenance/department/chapel)
+"uwJ" = (
+/obj/machinery/door/window{
+ base_state = "leftsecure";
+ dir = 8;
+ icon_state = "leftsecure";
+ name = "Primary AI Core Access";
+ obj_integrity = 300;
+ req_access_txt = "16"
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "AI Core shutters";
+ name = "AI Core Shutter"
+ },
+/obj/effect/turf_decal/delivery,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/turretid{
+ control_area = "/area/ai_monitored/turret_protected/ai";
+ icon_state = "control_stun";
+ name = "AI Chamber turret control";
+ pixel_x = -1;
+ pixel_y = 29
+ },
+/turf/open/floor/engine,
+/area/ai_monitored/turret_protected/ai)
"uwN" = (
/obj/structure/cable/yellow{
icon_state = "1-2"
@@ -41422,17 +40935,12 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/iron/grid/steel,
/area/medical/medbay/central)
-"uxA" = (
-/obj/machinery/conveyor{
- id = "QMLoad2"
- },
-/obj/item/radio/intercom{
- dir = 1;
- pixel_x = -30;
- pixel_y = -2
- },
-/turf/open/floor/iron/dark,
-/area/quartermaster/storage)
+"uxz" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating/asteroid/basalt/planetary,
+/area/asteroid/paradise)
"uxB" = (
/obj/effect/spawner/structure/window/reinforced/tinted,
/turf/open/floor/plating,
@@ -41633,6 +41141,28 @@
},
/turf/open/floor/iron,
/area/science/lab)
+"uEq" = (
+/obj/machinery/light_switch{
+ pixel_x = 24
+ },
+/obj/structure/bed/double,
+/obj/item/bedsheet/double/captain,
+/obj/item/disk/nuclear{
+ pixel_x = 8;
+ pixel_y = 8
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 10
+ },
+/obj/item/toy/plush/beeplushie{
+ pixel_x = -2;
+ pixel_y = -3
+ },
+/turf/open/floor/carpet/blue,
+/area/crew_quarters/heads/captain/private)
"uEs" = (
/obj/structure/closet/firecloset/full,
/obj/machinery/light/small{
@@ -41777,17 +41307,6 @@
dir = 1
},
/area/science/research)
-"uHR" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/cable/yellow{
- icon_state = "8-32"
- },
-/obj/effect/turf_decal/trimline/yellow,
-/obj/structure/lattice/catwalk/over,
-/turf/open/openspace,
-/area/maintenance/department/bridge)
"uIx" = (
/obj/effect/turf_decal/tile/dark_green{
dir = 1
@@ -41801,16 +41320,16 @@
/obj/item/reagent_containers/food/drinks/shaker,
/turf/open/floor/iron,
/area/hallway/secondary/service)
-"uIH" = (
-/obj/effect/turf_decal/sand/plating,
-/obj/machinery/light{
- dir = 8
+"uIW" = (
+/obj/effect/turf_decal/bot,
+/obj/machinery/computer/camera_advanced/xenobio,
+/obj/item/radio/intercom{
+ dir = 1;
+ pixel_x = 32;
+ pixel_y = -3
},
-/obj/machinery/power/port_gen/pacman,
-/turf/open/floor/iron,
-/area/hallway/primary/fore{
- name = "-1 Primary Hallway"
- })
+/turf/open/floor/iron/grid/steel,
+/area/science/xenobiology)
"uJm" = (
/obj/structure/table/wood/fancy/blue,
/obj/item/radio/intercom{
@@ -41858,21 +41377,13 @@
luminosity = 2
},
/area/security/nuke_storage)
-"uKn" = (
-/obj/effect/turf_decal/siding/white{
- dir = 1
- },
-/obj/structure/table,
-/obj/machinery/reagentgrinder{
- pixel_x = -8;
- pixel_y = 15
- },
-/obj/item/reagent_containers/glass/beaker{
- pixel_x = 6;
- pixel_y = 3
- },
-/turf/open/floor/iron/cafeteria,
-/area/crew_quarters/kitchen)
+"uKf" = (
+/obj/effect/turf_decal/sand/plating,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plating/asteroid/basalt/planetary,
+/area/asteroid/paradise)
"uKq" = (
/obj/effect/turf_decal/bot,
/obj/item/robot_suit,
@@ -41890,13 +41401,6 @@
/obj/item/stock_parts/subspace/crystal,
/turf/open/floor/iron/dark,
/area/engine/atmos)
-"uKV" = (
-/obj/effect/turf_decal/sand/plating,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 8
- },
-/turf/open/floor/plating/asteroid/planetary,
-/area/asteroid/paradise)
"uLf" = (
/obj/effect/turf_decal/sand/plating,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
@@ -41951,6 +41455,18 @@
/obj/structure/closet/firecloset/full,
/turf/open/floor/iron,
/area/maintenance/department/cargo)
+"uMm" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-16"
+ },
+/obj/effect/turf_decal/trimline/yellow,
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/machinery/power/apc/auto_name/east,
+/obj/structure/cable/yellow,
+/turf/open/floor/pod/dark,
+/area/maintenance/department/medical/morgue)
"uMJ" = (
/obj/machinery/computer/xenoartifact_console,
/obj/effect/turf_decal/bot,
@@ -42012,6 +41528,47 @@
},
/turf/open/floor/prison/dark,
/area/security/prison)
+"uNL" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable/yellow{
+ icon_state = "1-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/iron/showroomfloor,
+/area/crew_quarters/cryopods)
+"uNV" = (
+/obj/structure/lattice/catwalk/over,
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/structure/closet/emcloset,
+/turf/open/openspace,
+/area/hallway/primary/fore{
+ name = "-1 Primary Hallway"
+ })
+"uOs" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible/layer4{
+ dir = 4
+ },
+/obj/structure/table,
+/obj/effect/turf_decal/tile/yellow/fourcorners/contrasted{
+ alpha = 230;
+ color = "#edaa0c"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/item/storage/belt/utility,
+/obj/item/t_scanner,
+/obj/item/radio/intercom{
+ pixel_y = 29
+ },
+/turf/open/floor/iron,
+/area/engine/atmos)
"uOJ" = (
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/iron,
@@ -42124,6 +41681,17 @@
},
/turf/open/floor/iron,
/area/security/execution/education)
+"uRE" = (
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "Maintenance Hatch";
+ req_one_access_txt = "1;4"
+ },
+/obj/effect/turf_decal/stripes/closeup{
+ dir = 1
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plating,
+/area/maintenance/department/security/brig)
"uRN" = (
/obj/item/clothing/gloves/color/yellow,
/obj/effect/turf_decal/stripes/line{
@@ -42327,6 +41895,25 @@
},
/turf/open/indestructible/sound/pool,
/area/crew_quarters/fitness/recreation)
+"uUH" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 6
+ },
+/obj/machinery/power/apc/auto_name/north{
+ pixel_y = 24
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/maintenance/department/medical/morgue)
"uUK" = (
/obj/effect/turf_decal/stripes/end{
dir = 1
@@ -42383,6 +41970,16 @@
},
/turf/open/floor/pod/dark,
/area/science/lab)
+"uWl" = (
+/obj/effect/turf_decal/tile/red/half/contrasted{
+ alpha = 180;
+ dir = 1
+ },
+/obj/structure/closet/firecloset/full,
+/turf/open/floor/iron/dark/corner,
+/area/hallway/primary/central{
+ name = "-2 Primary Hallway"
+ })
"uWx" = (
/obj/structure/chair/office{
dir = 4
@@ -42450,6 +42047,26 @@
},
/turf/open/floor/wood,
/area/chapel/office)
+"uXI" = (
+/obj/effect/turf_decal/sand/plating,
+/obj/structure/closet/wardrobe/grey,
+/obj/effect/turf_decal/bot,
+/obj/machinery/light,
+/obj/item/paicard,
+/turf/open/floor/iron,
+/area/crew_quarters/dorms)
+"uYb" = (
+/obj/structure/flora/ausbushes/ywflowers,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/open/floor/grass/no_border,
+/area/hallway/primary/fore{
+ name = "-1 Primary Hallway"
+ })
"uYr" = (
/turf/open/floor/plating/beach/coastline_t{
dir = 6
@@ -42575,6 +42192,24 @@
/obj/structure/sign/warning/explosives/alt,
/turf/open/floor/plating/dirt/planetary,
/area/asteroid/paradise/surface)
+"vcM" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/dark{
+ dir = 4
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/turf/open/floor/iron/dark/side{
+ dir = 4
+ },
+/area/hallway/primary/central{
+ name = "-2 Primary Hallway"
+ })
"vcX" = (
/obj/structure/railing/corner{
dir = 8
@@ -42628,6 +42263,19 @@
},
/turf/open/floor/plating,
/area/maintenance/department/crew_quarters/bar)
+"vdC" = (
+/obj/structure/railing/corner{
+ dir = 1
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/iron,
+/area/hallway/primary/central{
+ name = "-2 Primary Hallway"
+ })
"vet" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
@@ -42686,6 +42334,13 @@
},
/turf/open/floor/plating,
/area/quartermaster/warehouse)
+"vgi" = (
+/obj/structure/stairs{
+ dir = 4
+ },
+/obj/machinery/digital_clock/directional/north,
+/turf/open/floor/pod/dark,
+/area/engine/engineering)
"vgv" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/closet/crate,
@@ -42771,6 +42426,13 @@
},
/turf/open/floor/iron/sepia,
/area/quartermaster/storage)
+"viX" = (
+/obj/effect/turf_decal/sand/plating,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plating/asteroid/basalt/planetary,
+/area/asteroid/paradise)
"vjc" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -42780,6 +42442,10 @@
},
/turf/open/floor/prison/dark,
/area/security/prison)
+"vjo" = (
+/obj/machinery/camera/autoname,
+/turf/open/openspace,
+/area/crew_quarters/kitchen)
"vjB" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
@@ -43072,20 +42738,6 @@
/obj/effect/turf_decal/delivery,
/turf/open/floor/iron,
/area/maintenance/department/medical/morgue)
-"vrF" = (
-/obj/effect/turf_decal/tile/blue/anticorner/contrasted,
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/machinery/door/firedoor,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 8
- },
-/turf/open/floor/iron/white,
-/area/medical/medbay/central)
"vst" = (
/obj/effect/turf_decal/trimline/white/corner{
dir = 4
@@ -43155,11 +42807,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/science/central)
-"vtO" = (
-/obj/structure/cable/yellow,
-/obj/effect/turf_decal/box,
-/turf/open/floor/plating,
-/area/asteroid/paradise/surface)
"vuh" = (
/obj/machinery/holopad,
/obj/effect/turf_decal/box,
@@ -43175,6 +42822,49 @@
/obj/effect/mapping_helpers/airlock/abandoned,
/turf/open/floor/plating,
/area/maintenance/department/medical/morgue)
+"vuo" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/closet/crate/solarpanel_small,
+/turf/open/floor/iron,
+/area/hallway/primary/fore{
+ name = "-1 Primary Hallway"
+ })
+"vuE" = (
+/obj/machinery/atmospherics/pipe/simple/green/visible{
+ dir = 5
+ },
+/obj/structure/table,
+/obj/effect/turf_decal/tile/yellow/fourcorners/contrasted{
+ alpha = 230;
+ color = "#edaa0c"
+ },
+/obj/item/clothing/gloves/color/black,
+/obj/effect/decal/cleanable/dirt,
+/obj/item/clothing/gloves/color/black{
+ pixel_x = 3;
+ pixel_y = 7
+ },
+/obj/machinery/firealarm/directional/south,
+/turf/open/floor/iron,
+/area/engine/atmos)
+"vvo" = (
+/obj/structure/table,
+/obj/item/stock_parts/subspace/treatment,
+/obj/item/stock_parts/subspace/treatment,
+/obj/item/stock_parts/subspace/treatment,
+/obj/item/stock_parts/subspace/treatment,
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/item/book/manual/wiki/tcomms{
+ pixel_x = 17;
+ pixel_y = 4
+ },
+/obj/item/radio/intercom{
+ pixel_y = 28
+ },
+/turf/open/floor/iron/dark,
+/area/engine/atmos)
"vvr" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2,
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden/layer4,
@@ -43229,6 +42919,18 @@
/obj/structure/fans/tiny,
/turf/open/floor/iron/dark,
/area/security/prison)
+"vwq" = (
+/obj/structure/dresser,
+/obj/item/flashlight/lamp/green{
+ pixel_x = -4;
+ pixel_y = 14
+ },
+/obj/item/toy/plush/lisa{
+ pixel_x = 5;
+ pixel_y = 15
+ },
+/turf/open/floor/carpet/blue,
+/area/crew_quarters/heads/hop)
"vwV" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/door/poddoor/shutters/preopen{
@@ -43420,6 +43122,11 @@
},
/turf/open/floor/iron/white,
/area/crew_quarters/heads/hor)
+"vFg" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/effect/turf_decal/numbers/two_nine,
+/turf/open/floor/iron,
+/area/maintenance/department/engine)
"vFx" = (
/obj/structure/closet/secure_closet/chemical,
/obj/item/storage/box/pillbottles,
@@ -43464,18 +43171,6 @@
},
/turf/open/floor/iron/sepia,
/area/quartermaster/storage)
-"vGO" = (
-/obj/item/reagent_containers/food/drinks/shaker{
- pixel_x = -8;
- pixel_y = 2
- },
-/obj/structure/table/wood,
-/obj/machinery/reagentgrinder{
- pixel_x = 6;
- pixel_y = 6
- },
-/turf/open/floor/wood,
-/area/crew_quarters/heads/captain)
"vHe" = (
/obj/effect/turf_decal/loading_area{
dir = 1;
@@ -43592,6 +43287,10 @@
},
/turf/closed/wall,
/area/vacant_room/office)
+"vLy" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/openspace,
+/area/asteroid/paradise)
"vLP" = (
/turf/closed/wall/r_wall,
/area/storage/tech)
@@ -43633,13 +43332,6 @@
/obj/structure/railing/corner,
/turf/open/floor/iron/sepia,
/area/quartermaster/storage)
-"vMy" = (
-/obj/structure/lattice/catwalk/over,
-/obj/machinery/firealarm/directional/east,
-/turf/open/openspace,
-/area/hallway/primary/fore{
- name = "-1 Primary Hallway"
- })
"vMK" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 8
@@ -43674,6 +43366,36 @@
/obj/machinery/airalarm/directional/north,
/turf/open/floor/iron,
/area/science/explab)
+"vPr" = (
+/obj/structure/table/reinforced,
+/obj/item/storage/fancy/donut_box{
+ name = "Emergency donut box";
+ pixel_x = -2;
+ pixel_y = 15
+ },
+/obj/item/gun/energy/e_gun/dragnet{
+ pixel_x = -2;
+ pixel_y = 1
+ },
+/obj/item/beacon/nettingportal,
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/dark_red/fourcorners/contrasted{
+ alpha = 180;
+ color = "#DE3A3A"
+ },
+/obj/machinery/camera/motion{
+ c_tag = "Armory - Internal";
+ dir = 4;
+ network = list("ss13","security")
+ },
+/obj/item/storage/toolbox/mechanical{
+ pixel_x = -2;
+ pixel_y = -11
+ },
+/turf/open/floor/iron/dark,
+/area/ai_monitored/security/armory)
"vPx" = (
/obj/structure/railing,
/obj/structure/lattice,
@@ -43712,15 +43434,16 @@
"vQN" = (
/turf/open/openspace,
/area/medical/medbay/central)
-"vRc" = (
-/obj/effect/turf_decal/tile/red/half/contrasted{
- alpha = 180;
- dir = 1
+"vQZ" = (
+/obj/structure/railing{
+ dir = 9
},
/obj/structure/closet/firecloset/full,
-/turf/open/floor/iron/dark/corner,
-/area/hallway/primary/central{
- name = "-2 Primary Hallway"
+/turf/open/floor/iron/dark/side{
+ dir = 9
+ },
+/area/hallway/primary/aft{
+ name = "-3 Primary Hallway"
})
"vRv" = (
/obj/structure/table/reinforced,
@@ -43822,19 +43545,6 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/iron/dark,
/area/medical/morgue)
-"vTn" = (
-/obj/effect/turf_decal/tile/neutral/half/contrasted{
- dir = 4
- },
-/obj/machinery/camera/autoname{
- network = list("ss13","security")
- },
-/obj/item/kirbyplants/random,
-/obj/structure/sink/kitchen{
- pixel_y = 22
- },
-/turf/open/floor/iron,
-/area/security/brig)
"vTw" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/structure/cable/yellow{
@@ -43890,32 +43600,6 @@
},
/turf/open/floor/iron,
/area/security/prison)
-"vUr" = (
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/machinery/conveyor_switch/oneway{
- dir = 1;
- id = "packageSort2"
- },
-/obj/effect/turf_decal/loading_area{
- dir = 1
- },
-/obj/effect/landmark/start/cargo_technician,
-/obj/structure/disposalpipe/junction{
- dir = 8
- },
-/obj/structure/cable/yellow{
- icon_state = "2-8"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 5
- },
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden/layer2{
- dir = 8
- },
-/turf/open/floor/iron,
-/area/quartermaster/sorting)
"vVo" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -43938,10 +43622,6 @@
},
/turf/open/floor/iron,
/area/engine/engineering)
-"vVC" = (
-/obj/structure/spider/stickyweb,
-/turf/open/floor/plating/asteroid/basalt/planetary,
-/area/asteroid/paradise)
"vVE" = (
/obj/effect/turf_decal/delivery,
/obj/effect/decal/cleanable/dirt/dust,
@@ -44018,6 +43698,12 @@
},
/turf/open/floor/iron,
/area/janitor)
+"vWm" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/flora/rock/pile,
+/obj/machinery/digital_clock/directional/north,
+/turf/open/floor/iron/techmaint/planetary,
+/area/asteroid/paradise/surface)
"vWB" = (
/obj/effect/turf_decal/sand/plating,
/obj/effect/turf_decal/sand/plating,
@@ -44029,25 +43715,6 @@
},
/turf/open/floor/plating,
/area/quartermaster/storage)
-"vWY" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/structure/cable/yellow{
- icon_state = "2-4"
- },
-/obj/structure/cable/yellow{
- icon_state = "0-4"
- },
-/obj/structure/disposalpipe/segment{
- dir = 2
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 1
- },
-/turf/open/floor/plating,
-/area/quartermaster/sorting)
"vXg" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -44073,6 +43740,32 @@
/area/hallway/primary/central{
name = "-2 Primary Hallway"
})
+"vYe" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/turf/open/floor/iron,
+/area/hallway/primary/central{
+ name = "-2 Primary Hallway"
+ })
+"vYl" = (
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 1
+ },
+/obj/structure/bed/dogbed/runtime,
+/mob/living/simple_animal/pet/cat/Runtime{
+ pixel_y = 4
+ },
+/obj/item/toy/plush/runtime{
+ pixel_x = -6;
+ pixel_y = 1
+ },
+/turf/open/floor/carpet/blue,
+/area/crew_quarters/heads/cmo)
"vYB" = (
/obj/effect/turf_decal/tile/yellow/anticorner/contrasted,
/obj/item/kirbyplants/random,
@@ -44087,11 +43780,6 @@
},
/turf/open/floor/iron,
/area/bridge)
-"vZa" = (
-/obj/structure/flora/ausbushes/lavendergrass,
-/obj/structure/spider/stickyweb,
-/turf/open/floor/plating/asteroid/planetary,
-/area/asteroid/paradise)
"vZe" = (
/obj/effect/turf_decal/stripes/line,
/obj/structure/fence/post{
@@ -44099,15 +43787,51 @@
},
/turf/open/floor/plating/grass,
/area/asteroid/paradise/surface)
-"vZG" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4{
- dir = 9
+"vZI" = (
+/obj/machinery/airalarm/all_access{
+ dir = 8;
+ pixel_x = 24
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 5
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
},
-/turf/open/floor/plating/asteroid/basalt/planetary,
-/area/asteroid/paradise)
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_x = 5;
+ pixel_y = 7
+ },
+/obj/item/pen{
+ pixel_x = 5;
+ pixel_y = 8
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/power/terminal{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/obj/machinery/camera/autoname{
+ dir = 8;
+ network = list("ss13","engine")
+ },
+/obj/effect/loot_jobscale/medical/burn_kit{
+ pixel_x = -6;
+ pixel_y = 10
+ },
+/obj/item/storage/toolbox/emergency{
+ pixel_x = 3;
+ pixel_y = -1
+ },
+/obj/item/extinguisher/advanced{
+ pixel_x = -8;
+ pixel_y = 2
+ },
+/turf/open/floor/iron,
+/area/maintenance/disposal/incinerator)
"waf" = (
/obj/effect/turf_decal/tile/neutral/half/contrasted{
dir = 4
@@ -44182,13 +43906,19 @@
},
/turf/open/floor/plating/asteroid/planetary,
/area/crew_quarters/dorms)
-"wbY" = (
-/obj/effect/decal/cleanable/generic,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+"wbv" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 4
},
-/turf/open/floor/iron/cafeteria,
-/area/crew_quarters/kitchen)
+/obj/machinery/turretid{
+ control_area = "/area/ai_monitored/turret_protected/ai_upload";
+ icon_state = "control_stun";
+ name = "AI Upload turret control";
+ pixel_x = -33;
+ pixel_y = 2
+ },
+/turf/open/floor/iron/tech/grid,
+/area/ai_monitored/turret_protected/aisat_interior)
"wbZ" = (
/obj/structure/musician/piano{
icon_state = "piano"
@@ -44280,20 +44010,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/crew_quarters/bar)
-"wdM" = (
-/obj/structure/filingcabinet,
-/obj/item/folder/documents,
-/obj/effect/turf_decal/tile/neutral/half/contrasted{
- dir = 1
- },
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
-/obj/structure/cable/yellow{
- icon_state = "0-8"
- },
-/turf/open/floor/iron/dark,
-/area/security/nuke_storage)
"wdQ" = (
/obj/structure/fireplace,
/obj/structure/bed/dogbed,
@@ -44407,6 +44123,35 @@
/obj/effect/landmark/start/warden,
/turf/open/floor/iron/dark,
/area/security/warden)
+"wgt" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable/yellow{
+ icon_state = "8-16"
+ },
+/obj/effect/turf_decal/trimline/yellow,
+/obj/structure/cable/yellow{
+ icon_state = "8-32"
+ },
+/obj/structure/lattice/catwalk/over,
+/turf/open/openspace,
+/area/maintenance/department/bridge)
+"wgL" = (
+/obj/item/radio/intercom{
+ dir = 1;
+ pixel_x = -31;
+ pixel_y = -3
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
+ dir = 1
+ },
+/turf/open/floor/iron/dark,
+/area/science/server)
"wgZ" = (
/obj/item/storage/pill_bottle/dice,
/obj/effect/turf_decal/siding/wood{
@@ -44520,6 +44265,21 @@
},
/turf/open/floor/iron/dark,
/area/quartermaster/storage)
+"wiQ" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 8
+ },
+/obj/structure/table,
+/obj/item/reagent_containers/food/condiment/peppermill{
+ pixel_x = -9;
+ pixel_y = 2
+ },
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_x = -2;
+ pixel_y = 2
+ },
+/turf/open/floor/iron/cafeteria,
+/area/crew_quarters/kitchen)
"wjm" = (
/obj/structure/railing{
dir = 4
@@ -44607,18 +44367,6 @@
},
/turf/open/floor/iron/dark,
/area/crew_quarters/heads/hop)
-"wkU" = (
-/obj/effect/turf_decal/sand/plating,
-/obj/effect/decal/cleanable/dirt,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 8
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4{
- dir = 9
- },
-/turf/open/floor/plating/asteroid/basalt/planetary,
-/area/asteroid/paradise)
"wli" = (
/obj/machinery/door/airlock/engineering/glass{
name = "Engineering Foyer";
@@ -44682,10 +44430,24 @@
/obj/item/storage/backpack/satchel/flat/treasure,
/turf/open/floor/plating/beach/sand,
/area/asteroid/paradise/surface/sand)
-"wmU" = (
-/obj/structure/bonfire,
-/turf/open/floor/plating/asteroid/planetary,
-/area/asteroid/paradise)
+"wnk" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment,
+/obj/effect/turf_decal/tile/blue/half/contrasted{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/iron,
+/area/hallway/primary/central{
+ name = "-2 Primary Hallway"
+ })
"wnT" = (
/turf/open/floor/dock/drydock,
/area/quartermaster/storage)
@@ -44777,13 +44539,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/engine)
-"wqL" = (
-/obj/structure/flora/rock/pile,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 8
- },
-/turf/open/floor/plating/asteroid/planetary,
-/area/asteroid/paradise)
"wrb" = (
/obj/effect/turf_decal/tile/yellow/half/contrasted{
alpha = 180;
@@ -44830,11 +44585,6 @@
},
/turf/open/floor/iron/dark,
/area/quartermaster/sorting)
-"wsd" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/structure/flora/rock/pile,
-/turf/open/floor/iron/techmaint/planetary,
-/area/asteroid/paradise/surface)
"wsA" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
@@ -44968,6 +44718,17 @@
/obj/effect/spawner/lootdrop/grille_or_trash,
/turf/open/floor/iron,
/area/ai_monitored/turret_protected/aisat/maint)
+"wxC" = (
+/obj/structure/closet/firecloset/full,
+/obj/structure/railing{
+ dir = 6
+ },
+/turf/open/floor/iron/dark/side{
+ dir = 6
+ },
+/area/hallway/primary/aft{
+ name = "-3 Primary Hallway"
+ })
"wyg" = (
/obj/effect/turf_decal/tile/purple/half/contrasted,
/obj/structure/disposalpipe/junction{
@@ -45099,20 +44860,6 @@
},
/turf/open/floor/iron,
/area/hydroponics)
-"wAQ" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/effect/turf_decal/tile/neutral/half/contrasted{
- dir = 4
- },
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 2;
- name = "Atmos to Loop"
- },
-/obj/effect/turf_decal/delivery,
-/turf/open/floor/iron,
-/area/engine/engineering)
"wAY" = (
/obj/effect/turf_decal/sand/plating,
/obj/effect/turf_decal/sand/plating,
@@ -45120,6 +44867,10 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/iron/techmaint/planetary,
/area/asteroid/paradise/surface)
+"wBy" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/closed/mineral/random/air,
+/area/asteroid/paradise)
"wBT" = (
/obj/structure/closet,
/obj/effect/spawner/lootdrop/maintenance/two,
@@ -45144,15 +44895,6 @@
},
/turf/open/floor/iron,
/area/security/prison)
-"wDa" = (
-/obj/structure/table/wood,
-/obj/item/soap/nanotrasen,
-/obj/item/paicard{
- pixel_x = -6;
- pixel_y = 2
- },
-/turf/open/floor/wood,
-/area/crew_quarters/cafeteria)
"wDb" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
@@ -45225,6 +44967,13 @@
},
/turf/open/floor/prison/dark,
/area/security/prison)
+"wEe" = (
+/obj/effect/turf_decal/sand/plating,
+/obj/effect/turf_decal/sand/plating,
+/obj/structure/flora/rock/pile,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4,
+/turf/open/floor/plating/asteroid/planetary,
+/area/asteroid/paradise)
"wEs" = (
/obj/item/radio/intercom{
dir = 1;
@@ -45296,6 +45045,13 @@
},
/turf/open/floor/plating,
/area/maintenance/department/security/brig)
+"wFM" = (
+/obj/structure/flora/junglebush/c,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 8
+ },
+/turf/open/floor/plating/asteroid/planetary,
+/area/asteroid/paradise)
"wGp" = (
/obj/effect/turf_decal/stripes/line,
/obj/effect/decal/cleanable/dirt/dust,
@@ -45353,6 +45109,18 @@
},
/turf/open/floor/pod/dark,
/area/crew_quarters/heads/hor)
+"wHD" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/obj/machinery/disposal/bin,
+/obj/effect/turf_decal/bot,
+/obj/structure/disposalpipe/trunk{
+ dir = 1
+ },
+/obj/machinery/digital_clock/directional/east,
+/turf/open/floor/iron/dark,
+/area/quartermaster/storage)
"wHO" = (
/obj/structure/window/reinforced{
dir = 1
@@ -45382,6 +45150,19 @@
/obj/structure/cable/yellow,
/turf/open/floor/plating,
/area/storage/tech)
+"wIQ" = (
+/obj/structure/flora/ausbushes/leafybush,
+/obj/structure/flora/ausbushes/fullgrass,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/open/floor/grass/no_border,
+/area/hallway/primary/fore{
+ name = "-1 Primary Hallway"
+ })
"wIV" = (
/obj/structure/chair{
dir = 1
@@ -45444,6 +45225,26 @@
},
/turf/open/floor/wood,
/area/crew_quarters/cafeteria)
+"wMn" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-8"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 9
+ },
+/obj/machinery/light_switch{
+ pixel_x = 23;
+ pixel_y = 23
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/cafeteria)
"wMw" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 8
@@ -45566,16 +45367,6 @@
/obj/machinery/photocopier,
/turf/open/floor/iron/dark,
/area/bridge/meeting_room)
-"wOw" = (
-/obj/effect/turf_decal/tile/neutral/half/contrasted{
- dir = 8
- },
-/obj/item/radio/intercom{
- dir = 1;
- pixel_y = -35
- },
-/turf/open/floor/iron,
-/area/security/brig)
"wOF" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -45851,6 +45642,19 @@
},
/turf/open/floor/plating,
/area/maintenance/department/science/central)
+"wVz" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/table/wood,
+/obj/effect/turf_decal/siding/wood,
+/obj/item/reagent_containers/food/condiment/peppermill{
+ pixel_y = 28
+ },
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ pixel_y = 23
+ },
+/obj/item/paicard,
+/turf/open/floor/carpet/green,
+/area/crew_quarters/cafeteria)
"wVI" = (
/obj/effect/turf_decal/delivery,
/obj/machinery/portable_atmospherics/canister/oxygen,
@@ -45898,6 +45702,19 @@
/obj/effect/spawner/lootdrop/grille_or_trash,
/turf/open/floor/plating,
/area/maintenance/department/science/central)
+"wXo" = (
+/obj/machinery/door/airlock/security/glass{
+ id_tag = "outerbrig";
+ name = "Brig";
+ req_access_txt = "2"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/closeup,
+/obj/machinery/door/firedoor,
+/turf/open/floor/prison/dark,
+/area/security/prison)
"wXA" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/bot,
@@ -46019,27 +45836,46 @@
/turf/open/floor/iron,
/area/science/mixing)
"xbA" = (
-/obj/effect/turf_decal/siding/wideplating/dark{
- dir = 5
+/obj/effect/turf_decal/tile/dark_blue/fourcorners/contrasted{
+ alpha = 180
},
-/obj/machinery/suit_storage_unit/mining/eva,
-/obj/machinery/light_switch{
- pixel_x = 23;
- pixel_y = -9
+/obj/effect/turf_decal/loading_area{
+ dir = 4;
+ pixel_y = -1
},
-/turf/open/floor/carpet/orange,
-/area/quartermaster/qm)
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "hopqueue";
+ name = "HoP Queue Shutters"
+ },
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/obj/machinery/button/door{
+ id = "hopqueue";
+ name = "Queue Shutter Control";
+ pixel_y = -36;
+ req_access_txt = "57"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/item/radio/intercom{
+ dir = 1;
+ pixel_x = 1;
+ pixel_y = -27
+ },
+/turf/open/floor/iron,
+/area/hallway/primary/fore{
+ name = "-1 Primary Hallway"
+ })
"xbL" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable/yellow,
/turf/open/floor/plating,
/area/security/warden)
-"xce" = (
-/obj/effect/turf_decal/sand/plating,
-/obj/effect/turf_decal/sand/plating,
-/obj/effect/decal/cleanable/dirt,
-/turf/open/floor/plating/asteroid/planetary,
-/area/asteroid/paradise)
"xck" = (
/obj/structure/closet/secure_closet/detective,
/obj/item/storage/box/evidence{
@@ -46116,6 +45952,14 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/turf/open/floor/iron/dark,
/area/maintenance/disposal/incinerator)
+"xdb" = (
+/obj/effect/landmark/start/cook,
+/obj/effect/turf_decal/tile/bar/opposingcorners,
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/turf/open/floor/iron/dark,
+/area/crew_quarters/kitchen)
"xdp" = (
/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{
dir = 8
@@ -46137,6 +45981,21 @@
},
/turf/open/floor/iron/grid/steel,
/area/bridge)
+"xdH" = (
+/obj/structure/railing/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/white/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/siding/white{
+ dir = 1
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/turf/open/floor/iron/cafeteria,
+/area/crew_quarters/kitchen)
"xdL" = (
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/iron,
@@ -46148,23 +46007,6 @@
/obj/structure/signpost,
/turf/open/floor/plating/grass,
/area/asteroid/paradise/surface)
-"xeI" = (
-/obj/effect/turf_decal/tile/blue/anticorner/contrasted{
- dir = 4
- },
-/obj/structure/extinguisher_cabinet{
- pixel_x = 5;
- pixel_y = 32
- },
-/obj/structure/disposalpipe/segment{
- dir = 8
- },
-/obj/machinery/light{
- dir = 1
- },
-/obj/machinery/door/firedoor,
-/turf/open/floor/iron/white,
-/area/medical/medbay/central)
"xfd" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/decal/cleanable/dirt/dust,
@@ -46253,6 +46095,16 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/turf/open/floor/plating/asteroid/planetary,
/area/quartermaster/storage)
+"xhE" = (
+/obj/structure/reflector/box{
+ anchored = 1;
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/open/floor/plating/asteroid/planetary,
+/area/asteroid/paradise)
"xiu" = (
/obj/effect/turf_decal/trimline/white/line{
dir = 1
@@ -46266,6 +46118,25 @@
},
/turf/open/floor/prison/dark,
/area/security/prison)
+"xiv" = (
+/obj/structure/chair,
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/item/radio/intercom{
+ dir = 1;
+ pixel_x = 32;
+ pixel_y = 3
+ },
+/turf/open/floor/iron/dark/side{
+ dir = 5
+ },
+/area/hallway/primary/fore{
+ name = "-1 Primary Hallway"
+ })
"xiB" = (
/obj/effect/spawner/structure/window/plasma/reinforced,
/turf/open/floor/plating,
@@ -46329,28 +46200,6 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/iron,
/area/science/robotics)
-"xja" = (
-/obj/machinery/light_switch{
- pixel_x = 24
- },
-/obj/structure/bed/double,
-/obj/item/bedsheet/double/captain,
-/obj/item/disk/nuclear{
- pixel_x = 8;
- pixel_y = 8
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/structure/disposalpipe/segment{
- dir = 10
- },
-/obj/item/toy/plush/beeplushie{
- pixel_x = -2;
- pixel_y = -3
- },
-/turf/open/floor/carpet/blue,
-/area/crew_quarters/heads/captain/private)
"xjg" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/stripes/line,
@@ -46499,6 +46348,16 @@
},
/turf/open/floor/iron/tech/grid,
/area/ai_monitored/turret_protected/ai_upload)
+"xne" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 8;
+ name = "External Gas to Loop"
+ },
+/obj/effect/turf_decal/delivery,
+/obj/machinery/firealarm/directional/south,
+/turf/open/floor/iron/dark,
+/area/engine/engineering)
"xnh" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/spawner/lootdrop/grille_or_trash,
@@ -46594,6 +46453,21 @@
},
/turf/open/floor/iron/dark,
/area/engine/atmos)
+"xpn" = (
+/obj/machinery/computer/turbine_computer{
+ dir = 1;
+ id = "incineratorturbineLeft";
+ name = "gas turbine left control computer"
+ },
+/obj/structure/sign/warning/nosmoking{
+ pixel_x = 1;
+ pixel_y = -32
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/iron/dark,
+/area/maintenance/disposal/incinerator)
"xpp" = (
/obj/structure/cable/yellow{
icon_state = "1-2"
@@ -46624,36 +46498,6 @@
/area/hallway/primary/central{
name = "-2 Primary Hallway"
})
-"xpE" = (
-/obj/effect/decal/cleanable/dirt/dust,
-/obj/effect/turf_decal/sand/plating,
-/obj/machinery/light,
-/obj/item/radio/intercom{
- dir = 1;
- pixel_y = -35
- },
-/turf/open/floor/plating,
-/area/quartermaster/storage)
-"xpF" = (
-/obj/structure/cable/yellow{
- icon_state = "1-8"
- },
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 1
- },
-/obj/structure/disposalpipe/segment{
- dir = 9
- },
-/obj/machinery/light_switch{
- pixel_x = 23;
- pixel_y = 23
- },
-/turf/open/floor/wood,
-/area/crew_quarters/cafeteria)
"xpI" = (
/obj/effect/turf_decal/tile/blue/half/contrasted{
dir = 1
@@ -46785,23 +46629,6 @@
/obj/effect/landmark/start/captain,
/turf/open/floor/carpet/royalblue,
/area/crew_quarters/heads/captain)
-"xsl" = (
-/obj/machinery/atmospherics/pipe/multiz/layer4{
- dir = 1
- },
-/obj/machinery/atmospherics/pipe/multiz/layer2{
- dir = 1
- },
-/obj/machinery/light/small,
-/obj/machinery/status_display/evac{
- pixel_y = -32
- },
-/obj/structure/cable/yellow{
- icon_state = "1-16"
- },
-/obj/effect/turf_decal/trimline/yellow,
-/turf/open/floor/pod/dark,
-/area/maintenance/department/science/central)
"xsH" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
@@ -46816,6 +46643,16 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/closed/wall,
/area/maintenance/department/medical/morgue)
+"xtb" = (
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/cable/yellow{
+ icon_state = "1-32"
+ },
+/obj/effect/turf_decal/trimline/yellow,
+/obj/structure/closet/emcloset/anchored,
+/obj/structure/lattice/catwalk/over,
+/turf/open/openspace,
+/area/maintenance/department/engine/atmos)
"xty" = (
/obj/machinery/door/airlock/maintenance_hatch{
name = "Maintenance Hatch";
@@ -46919,6 +46756,35 @@
},
/turf/open/floor/iron/dark,
/area/quartermaster/qm)
+"xvQ" = (
+/obj/effect/turf_decal/trimline/dark/warning{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/dark{
+ dir = 4
+ },
+/obj/effect/turf_decal/siding/dark{
+ dir = 8
+ },
+/obj/item/radio/intercom{
+ pixel_x = -32;
+ pixel_y = -3
+ },
+/turf/open/floor/iron/dark,
+/area/engineering/hallway{
+ name = "Engineering Viewing Platform"
+ })
+"xwe" = (
+/obj/structure/flora/ausbushes/lavendergrass,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4{
+ dir = 6
+ },
+/turf/open/floor/plating/asteroid/planetary,
+/area/asteroid/paradise)
"xwm" = (
/obj/machinery/teleport/station,
/obj/effect/turf_decal/stripes/line{
@@ -47091,6 +46957,26 @@
/area/hallway/primary/fore{
name = "-1 Primary Hallway"
})
+"xBc" = (
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "Maintenance Hatch";
+ req_one_access_txt = "4;1"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/closeup{
+ dir = 1
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plating,
+/area/security/brig)
"xBP" = (
/obj/structure/cable/yellow{
icon_state = "1-2"
@@ -47104,17 +46990,18 @@
},
/turf/open/floor/iron/white,
/area/crew_quarters/fitness/recreation)
-"xBS" = (
-/obj/structure/closet/cardboard,
-/obj/effect/spawner/lootdrop/maintenance/four,
-/obj/item/melee/flyswatter,
-/obj/item/paicard,
-/turf/open/floor/iron,
-/area/maintenance/department/science/central)
"xBU" = (
/obj/structure/closet/firecloset/full,
/turf/open/floor/iron,
/area/ai_monitored/turret_protected/aisat/maint)
+"xCw" = (
+/obj/machinery/computer/security/hos,
+/obj/item/toy/plush/carpplushie{
+ pixel_x = 5;
+ pixel_y = 17
+ },
+/turf/open/floor/iron/dark,
+/area/crew_quarters/heads/hos)
"xCy" = (
/obj/effect/turf_decal/tile/dark_red/fourcorners/contrasted{
alpha = 180;
@@ -47177,21 +47064,6 @@
/obj/machinery/atmospherics/pipe/layer_manifold/visible,
/turf/open/floor/engine/airless,
/area/engine/atmos)
-"xDK" = (
-/obj/structure/railing{
- dir = 4
- },
-/obj/machinery/light{
- dir = 1
- },
-/obj/machinery/camera/autoname{
- network = list("aiupload")
- },
-/obj/machinery/firealarm/directional/north,
-/turf/open/openspace,
-/area/hallway/primary/fore{
- name = "-1 Primary Hallway"
- })
"xDX" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -47208,14 +47080,6 @@
},
/turf/open/floor/iron,
/area/maintenance/department/medical/morgue)
-"xEn" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/effect/turf_decal/numbers/two_nine{
- dir = 2
- },
-/turf/open/floor/wood,
-/area/crew_quarters/cafeteria)
"xEo" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
@@ -47241,6 +47105,28 @@
/obj/structure/closet/emcloset/anchored,
/turf/open/floor/iron,
/area/maintenance/department/bridge)
+"xFT" = (
+/obj/structure/railing{
+ dir = 4
+ },
+/obj/structure/rack,
+/obj/effect/spawner/lootdrop/techstorage/command,
+/obj/effect/turf_decal/delivery,
+/obj/item/radio/intercom{
+ pixel_y = 29
+ },
+/obj/machinery/power/apc/auto_name/east,
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/obj/machinery/camera/motion{
+ c_tag = "Technical Storage";
+ dir = 8;
+ name = "motion-sensitive Technical Storage";
+ network = list("ss13","engine")
+ },
+/turf/open/floor/iron/techmaint/planetary,
+/area/storage/tech)
"xGl" = (
/obj/effect/turf_decal/siding/white{
alpha = 100
@@ -47357,15 +47243,6 @@
},
/turf/open/floor/iron,
/area/medical/apothecary)
-"xIw" = (
-/obj/structure/rack,
-/obj/effect/spawner/lootdrop/maintenance/two,
-/obj/machinery/light/small{
- dir = 4
- },
-/obj/item/paicard,
-/turf/open/floor/plating,
-/area/hallway/secondary/service)
"xIO" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -47415,16 +47292,19 @@
/obj/effect/spawner/room/threexthree,
/turf/open/floor/plating,
/area/maintenance/department/medical/morgue)
-"xJF" = (
-/obj/structure/closet/firecloset/full,
-/obj/structure/railing{
- dir = 6
+"xJE" = (
+/obj/structure/table,
+/obj/item/geiger_counter{
+ pixel_x = 6;
+ pixel_y = 3
},
-/turf/open/floor/iron/dark/side{
- dir = 6
+/obj/item/toy/plush/plushvar{
+ pixel_x = -2;
+ pixel_y = 9
},
-/area/hallway/primary/aft{
- name = "-3 Primary Hallway"
+/turf/open/floor/iron/dark,
+/area/engineering/hallway{
+ name = "Engineering Viewing Platform"
})
"xJJ" = (
/obj/item/radio/intercom{
@@ -47473,28 +47353,45 @@
/obj/structure/ore_box,
/turf/open/floor/plating/asteroid/planetary,
/area/quartermaster/storage)
-"xKs" = (
-/obj/structure/flora/ausbushes/lavendergrass,
-/obj/effect/decal/cleanable/dirt,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 6
+"xKF" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4{
- dir = 6
+/obj/effect/turf_decal/tile/purple/half/contrasted{
+ dir = 4
},
-/turf/open/floor/plating/asteroid/planetary,
-/area/asteroid/paradise)
-"xKB" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 9
+/obj/effect/turf_decal/numbers/two_nine{
+ pixel_y = 17
},
-/obj/machinery/disposal/bin,
-/obj/effect/turf_decal/bot,
-/obj/structure/disposalpipe/trunk{
+/turf/open/floor/iron/white/side{
+ dir = 1
+ },
+/area/science/research)
+"xKQ" = (
+/obj/machinery/airalarm/directional/east,
+/obj/structure/disposalpipe/segment{
+ dir = 2
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 10
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 10
+ },
+/turf/open/floor/iron,
+/area/quartermaster/sorting)
+"xKZ" = (
+/obj/structure/filingcabinet,
+/obj/item/folder/documents,
+/obj/effect/turf_decal/tile/neutral/half/contrasted{
dir = 1
},
+/obj/machinery/power/apc/auto_name/east,
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
/turf/open/floor/iron/dark,
-/area/quartermaster/storage)
+/area/security/nuke_storage)
"xLc" = (
/obj/item/paper/guides/jobs/medical/morgue,
/obj/effect/turf_decal/bot,
@@ -47528,6 +47425,13 @@
/obj/machinery/airalarm/directional/east,
/turf/open/floor/iron,
/area/engine/atmos)
+"xMQ" = (
+/obj/effect/turf_decal/siding/white{
+ dir = 8
+ },
+/obj/machinery/processor,
+/turf/open/floor/iron/cafeteria,
+/area/crew_quarters/kitchen)
"xMR" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/stripes/line{
@@ -47606,18 +47510,6 @@
/obj/effect/spawner/randomvend/cola,
/turf/open/floor/carpet/green,
/area/crew_quarters/cafeteria)
-"xQn" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 6
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 10
- },
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/turf/open/floor/iron/cafeteria,
-/area/crew_quarters/kitchen)
"xQu" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -47636,6 +47528,12 @@
},
/turf/open/floor/iron,
/area/maintenance/department/crew_quarters/dorms)
+"xQV" = (
+/obj/structure/flora/rock,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating/asteroid/basalt/planetary,
+/area/asteroid/paradise)
"xRe" = (
/obj/structure/cable/yellow{
icon_state = "1-8"
@@ -47687,6 +47585,25 @@
},
/turf/open/floor/iron/white,
/area/science/lab)
+"xRD" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "quarantineshutters";
+ name = "isolation shutters"
+ },
+/obj/machinery/door/airlock/maintenance_hatch{
+ name = "Medbay Maintenance";
+ req_access_txt = "5"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/iron/dark,
+/area/maintenance/department/medical/central)
"xRJ" = (
/obj/machinery/door/poddoor/shutters/radiation/preopen{
id = "engsm";
@@ -47820,22 +47737,6 @@
},
/turf/open/floor/engine/o2,
/area/engine/atmos)
-"xUV" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/machinery/rnd/production/techfab/department/cargo,
-/obj/machinery/power/apc/auto_name/east{
- pixel_x = 24
- },
-/obj/structure/cable/yellow{
- icon_state = "0-8"
- },
-/obj/machinery/light{
- dir = 4
- },
-/turf/open/floor/iron/dark,
-/area/quartermaster/storage)
"xVa" = (
/obj/machinery/gateway{
dir = 9
@@ -47913,47 +47814,6 @@
},
/turf/open/floor/wood/broken,
/area/crew_quarters/cafeteria)
-"xWB" = (
-/obj/effect/decal/cleanable/dirt,
-/turf/closed/mineral/random/air,
-/area/asteroid/paradise)
-"xWK" = (
-/obj/machinery/button/flasher{
- id = "brigentryaux";
- pixel_x = 5;
- pixel_y = -37
- },
-/obj/machinery/button/door{
- desc = "A remote control switch for the medbay foyer.";
- id = "outerbrig";
- name = "Brig Exterior Doors Control";
- normaldoorcontrol = 1;
- pixel_x = -6;
- pixel_y = -25;
- req_access_txt = "63"
- },
-/obj/machinery/button/door{
- id = "brigentrance";
- name = "Brig Lockdown Control";
- pixel_x = 6;
- pixel_y = -25;
- req_access_txt = "63"
- },
-/obj/effect/turf_decal/tile/red/anticorner/contrasted{
- alpha = 180;
- dir = 8
- },
-/obj/item/radio/intercom{
- dir = 1;
- pixel_x = -32;
- pixel_y = -28
- },
-/obj/machinery/computer/crew{
- dir = 4;
- req_one_access = list(5,4,3)
- },
-/turf/open/floor/iron/dark,
-/area/security/warden)
"xXi" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
@@ -48033,6 +47893,22 @@
},
/turf/open/floor/iron/white,
/area/science/xenobiology)
+"xZX" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 2
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/delivery,
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/turf/open/floor/iron/dark,
+/area/engine/engineering)
"yaq" = (
/turf/closed/wall/rust,
/area/science/server)
@@ -48137,6 +48013,29 @@
},
/turf/open/floor/plating/asteroid/basalt/planetary,
/area/quartermaster/storage)
+"ycF" = (
+/obj/machinery/door/airlock/public/glass{
+ name = "Cryogenic Lounge"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 4
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/decal/cleanable/dirt/dust,
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 8
+ },
+/turf/open/floor/iron/showroomfloor,
+/area/crew_quarters/cryopods)
"ydE" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/effect/turf_decal/sand/plating,
@@ -48158,15 +48057,6 @@
},
/turf/open/floor/iron,
/area/maintenance/department/crew_quarters/dorms)
-"yeh" = (
-/obj/effect/turf_decal/tile/neutral/half/contrasted{
- dir = 4
- },
-/obj/structure/table,
-/obj/item/pickaxe,
-/obj/machinery/firealarm/directional/north,
-/turf/open/floor/iron,
-/area/engine/atmos)
"yet" = (
/turf/open/floor/plating/beach/coastline_b{
dir = 1
@@ -48196,12 +48086,56 @@
slowdown = 0
},
/area/asteroid/paradise/surface)
+"yeS" = (
+/obj/structure/stairs{
+ dir = 8
+ },
+/obj/item/radio/intercom{
+ dir = 1;
+ pixel_x = 2;
+ pixel_y = 29
+ },
+/turf/open/floor/pod/dark,
+/area/crew_quarters/cafeteria)
"yeZ" = (
/obj/effect/turf_decal/numbers{
dir = 1
},
/turf/open/floor/iron,
/area/maintenance/department/security/brig)
+"yfd" = (
+/obj/structure/railing/corner{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/thermomachine/freezer{
+ piping_layer = 4
+ },
+/obj/machinery/camera/autoname{
+ dir = 6;
+ network = list("ss13","medbay")
+ },
+/obj/machinery/power/apc/auto_name/north{
+ pixel_y = 24
+ },
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/obj/machinery/vending/wallmed{
+ pixel_x = -32
+ },
+/turf/open/floor/iron/grid/steel,
+/area/medical/medbay/central)
+"yfP" = (
+/obj/structure/sink/kitchen{
+ pixel_y = 22
+ },
+/turf/open/floor/iron/dark,
+/area/hallway/primary/aft{
+ name = "-3 Primary Hallway"
+ })
"yfW" = (
/obj/effect/turf_decal/tile/neutral,
/obj/effect/decal/cleanable/dirt/dust,
@@ -48216,6 +48150,16 @@
/area/hallway/primary/central{
name = "-2 Primary Hallway"
})
+"ygN" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/bot,
+/obj/machinery/shieldgen,
+/obj/item/radio/intercom{
+ pixel_x = 1;
+ pixel_y = -31
+ },
+/turf/open/floor/iron,
+/area/engine/engineering)
"ygZ" = (
/obj/item/clothing/suit/ianshirt,
/obj/item/bedsheet/ian,
@@ -48229,14 +48173,6 @@
/obj/item/clothing/suit/hooded/ian_costume,
/turf/open/floor/carpet/blue,
/area/crew_quarters/heads/hop)
-"yhp" = (
-/obj/structure/cable/yellow{
- icon_state = "2-16"
- },
-/obj/effect/turf_decal/trimline/yellow,
-/obj/effect/spawner/lootdrop/grille_or_trash,
-/turf/open/floor/pod/dark,
-/area/maintenance/department/crew_quarters/dorms)
"yib" = (
/obj/effect/turf_decal/tile/blue{
dir = 8
@@ -48261,11 +48197,36 @@
/obj/structure/table_frame,
/turf/open/floor/iron,
/area/engine/atmos)
+"yjb" = (
+/obj/effect/decal/cleanable/food/egg_smudge,
+/turf/open/floor/iron/cafeteria,
+/area/crew_quarters/kitchen)
"yjX" = (
/obj/effect/spawner/structure/window/plasma/reinforced,
/obj/machinery/atmospherics/pipe/simple/green/visible,
/turf/open/floor/plating,
/area/engine/supermatter)
+"ykt" = (
+/obj/machinery/power/smes{
+ charge = 5e+006;
+ name = "ai power storage unit"
+ },
+/obj/machinery/flasher{
+ id = "AI";
+ name = "Meatbag Pacifier";
+ pixel_x = 23;
+ pixel_y = 22
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/item/toy/plush/lizardplushie{
+ layer = 5;
+ pixel_x = 1;
+ pixel_y = 14
+ },
+/turf/open/floor/circuit/red,
+/area/ai_monitored/turret_protected/ai)
"ykL" = (
/obj/structure/cable/yellow{
icon_state = "1-2"
@@ -48306,15 +48267,6 @@
},
/turf/open/floor/plating,
/area/ai_monitored/security/armory)
-"yma" = (
-/obj/structure/flora/ausbushes/fullgrass,
-/obj/machinery/camera/autoname{
- dir = 8;
- network = list("ss13","engine")
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/visible/layer4,
-/turf/open/floor/plating/asteroid/basalt/planetary,
-/area/asteroid/paradise)
(1,1,1) = {"
rGh
@@ -56202,21 +56154,21 @@ cKs
wuy
hig
wuy
-xpE
+ovX
iGq
wCc
kYy
-pBY
+afy
rXp
faZ
uli
uli
-fPA
+uOs
aUf
hpP
fCo
gaj
-ciC
+vuE
uli
uli
uli
@@ -56464,7 +56416,7 @@ gDX
xpJ
kcv
oTt
-pGp
+sZb
faZ
xUB
dtx
@@ -56978,7 +56930,7 @@ oHX
gvg
fBW
mcO
-nMa
+oiK
hZi
fAb
drz
@@ -57459,7 +57411,7 @@ rPT
rPT
rBM
rPT
-iTH
+fib
alK
pDi
vhU
@@ -57470,7 +57422,7 @@ iaR
vhU
iaR
iaR
-jOM
+aJD
vnY
wzb
cbm
@@ -57496,7 +57448,7 @@ hbl
uli
mgL
bKc
-iZm
+okn
cnW
qdc
tIa
@@ -58003,7 +57955,7 @@ wnT
dcZ
maU
lEu
-rOE
+mht
ehf
wzb
jOo
@@ -58529,7 +58481,7 @@ gOe
sKx
grS
dao
-klO
+oga
tHO
uli
tHO
@@ -58742,7 +58694,7 @@ xyS
kOc
gXA
hFP
-eNV
+oEv
jtr
vhT
dzD
@@ -58756,8 +58708,8 @@ oMA
xBP
iKu
jZh
-amn
-iNP
+uNL
+iJL
wKG
uLU
cmd
@@ -58792,7 +58744,7 @@ blO
cFP
jiG
oqZ
-lTJ
+svv
bXA
vqI
vqI
@@ -58997,7 +58949,7 @@ rPT
uVy
eZJ
oRp
-xIw
+cAy
wDf
wys
wys
@@ -59010,10 +58962,10 @@ cmy
itk
pLv
aiR
-sEO
+bgu
vhU
ejN
-ruK
+fEe
tKq
sWT
sWT
@@ -59270,7 +59222,7 @@ iaR
vhU
vhU
ppS
-eZo
+ycF
ppS
sWT
wrA
@@ -59288,19 +59240,19 @@ kjC
wSM
jAN
iOA
-uxA
+pUm
rmX
lEu
jOo
jOo
jOo
vgG
-yeh
+cXM
lly
fia
ycz
hAX
-juB
+bxD
vgG
nXA
ozj
@@ -59514,7 +59466,7 @@ wys
mOA
bWw
eHY
-nZP
+eop
weD
pkH
wys
@@ -59527,8 +59479,8 @@ noh
nKV
wbp
qka
-jIP
-oyl
+fqC
+mgY
pNv
fvh
vpE
@@ -59784,12 +59736,12 @@ pld
dbb
aew
jJR
-sUZ
-azx
-vWY
-osM
-vUr
-omt
+eOH
+eAX
+ixf
+siH
+ujM
+icQ
sWT
mIY
qZA
@@ -59821,7 +59773,7 @@ oPT
urT
uCw
hGZ
-kIR
+bGl
ibg
mTL
gNG
@@ -59839,7 +59791,7 @@ rNv
vDt
sLz
sLz
-hKZ
+lFQ
blO
jsp
jsp
@@ -60026,8 +59978,8 @@ tqL
jES
wys
vht
-rCQ
-qFt
+ozM
+eUf
mbl
lvL
wys
@@ -60042,11 +59994,11 @@ oNp
sjW
plL
orO
-jRM
+iZO
bKy
qQv
-cYy
-pJt
+lcs
+ocS
kuj
duC
eog
@@ -60083,20 +60035,20 @@ ihL
ihL
cFP
xqU
-xKs
-fDH
-cjE
-oNZ
-cjE
-cjE
-mam
-dVh
-dVh
-jks
-nKa
-tZd
-nKa
-vZG
+xwe
+uKf
+fXo
+bxR
+fXo
+fXo
+gRo
+nLv
+nLv
+uxz
+eTK
+neA
+eTK
+aST
xqU
jsp
jsp
@@ -60290,7 +60242,7 @@ eqi
wys
ePw
lSv
-dmz
+bLZ
omN
qSK
tII
@@ -60299,11 +60251,11 @@ bMN
ltJ
gOP
gYZ
-hjO
+uXI
pNv
kGw
-ggA
-non
+xKQ
+htC
guS
pHJ
gdE
@@ -60320,12 +60272,12 @@ eVD
wqg
fGn
vnd
-fyH
+dEU
cBs
hBl
eJz
-eBa
-taW
+klc
+rnO
hGe
teA
hwr
@@ -60335,12 +60287,12 @@ ufL
eZf
lmF
tUh
-eiD
+jYE
ibg
tRR
mFt
cEu
-suj
+trB
dwq
taZ
wsA
@@ -60353,7 +60305,7 @@ vqI
qnY
sLz
blO
-iyq
+jmP
sLz
sLz
jsp
@@ -60552,7 +60504,7 @@ fMX
fMX
qbW
vhU
-bja
+eDg
hPk
gOP
oPC
@@ -60587,7 +60539,7 @@ dms
nAD
xxk
csL
-kEs
+xpn
dzW
ihL
ihL
@@ -60597,7 +60549,7 @@ kEO
fhM
xgK
rNv
-gJk
+fsF
cEk
ozj
sLz
@@ -60824,8 +60776,8 @@ dlh
rru
viT
bdN
-xKB
-xUV
+wHD
+bhy
cfv
xoc
gWp
@@ -60833,7 +60785,7 @@ jPg
qrl
pjs
uly
-wdM
+xKZ
pIl
ptb
roc
@@ -60842,9 +60794,9 @@ gHW
aAY
gHW
pyW
-pxD
-pCI
-oMi
+bRk
+vZI
+pUZ
ihL
xgK
nXA
@@ -60854,7 +60806,7 @@ cEk
mVg
sLz
xTD
-pII
+mIF
sXg
cEk
vqI
@@ -61106,12 +61058,12 @@ dzW
sXB
lRK
nXA
-fNb
-yma
-rVG
-kJR
-bOu
-wkU
+tIP
+avs
+wEe
+qjq
+hCx
+mFT
sLz
vqI
vqI
@@ -61333,12 +61285,12 @@ fMX
fMX
fMX
fMX
-fYp
+sXY
exx
ncA
oxy
mkQ
-dci
+fSH
qzd
moy
cVl
@@ -61368,7 +61320,7 @@ lCS
lCS
mVg
cEk
-pbz
+mGS
blO
vqI
vqI
@@ -61564,7 +61516,7 @@ vqI
vqI
eXB
cjH
-yhp
+jWk
sBt
nHi
eiO
@@ -61608,7 +61560,7 @@ wML
amy
pWS
iNo
-ebk
+rzg
cTC
upw
oNv
@@ -61625,7 +61577,7 @@ apY
biV
sXB
blO
-ion
+viX
xqU
hJN
vqI
@@ -61853,19 +61805,19 @@ qaK
lxu
rjG
ueV
-xbA
+iMI
wEx
caC
-dca
+ruO
mev
-hkT
+feI
tNX
cii
vLP
-nip
+xFT
oeh
vLP
-top
+vgi
mVd
uGZ
udt
@@ -61882,7 +61834,7 @@ gPs
idO
lCS
hJN
-snM
+wFM
ozj
cEk
vqI
@@ -62079,7 +62031,7 @@ vqI
vqI
eXB
nAc
-pMX
+iBP
nHi
nHi
nHi
@@ -62125,7 +62077,7 @@ vLP
top
lts
tpi
-wAQ
+eCn
aIx
fMC
bFF
@@ -62136,10 +62088,10 @@ qzg
nad
hsv
tVm
-dKE
+jOz
lCS
ndX
-ion
+viX
xqU
fPc
vqI
@@ -62359,7 +62311,7 @@ xQN
qMM
dqm
ndg
-sky
+rzP
rQd
aQK
slF
@@ -62367,7 +62319,7 @@ hCL
quH
aji
gSL
-lbu
+tJv
qKB
gMn
sNq
@@ -62377,7 +62329,7 @@ rZv
qvz
sCr
wVR
-uiv
+tlH
pVY
pVY
vVo
@@ -62396,7 +62348,7 @@ wzE
gPs
lCS
eGc
-rcs
+mmJ
ycy
xqU
vqI
@@ -62602,7 +62554,7 @@ eXB
xsH
hhu
hhu
-pIN
+yeS
eYg
hyZ
tov
@@ -62640,7 +62592,7 @@ rZf
oFu
gEa
wWC
-hkO
+mMw
dXI
dXI
ifQ
@@ -62653,7 +62605,7 @@ uTP
uGP
sXB
cFP
-afd
+rzV
wyw
sLz
vqI
@@ -62858,7 +62810,7 @@ rWp
eXB
kef
hhu
-otv
+tUs
dGA
djy
kNX
@@ -62875,16 +62827,16 @@ lCP
niw
cvt
dNV
-xJF
+wxC
gWa
gWa
vdf
-qqn
+fhR
dvw
pfb
pqi
pqi
-oiV
+bUT
fqg
qdV
vTN
@@ -62907,10 +62859,10 @@ hBg
baq
tfH
jhN
-irk
+fsU
sXB
cEk
-ryh
+gNq
ccl
vqI
vqI
@@ -63116,7 +63068,7 @@ eXB
gLd
weN
kOu
-xEn
+sDH
bUA
jaK
jst
@@ -63138,13 +63090,13 @@ rFo
gWa
eWh
ggo
-lhb
+kgq
pqi
pqi
-huA
-eQB
+iPP
+yfP
ept
-pee
+fZl
tlK
qbd
mEl
@@ -63167,7 +63119,7 @@ rbv
gPs
mAp
sLz
-dux
+aQs
cEk
vqI
vqI
@@ -63372,7 +63324,7 @@ rPT
tqL
sUW
hhu
-pkm
+kAQ
qti
qti
wLS
@@ -63389,16 +63341,16 @@ dqm
niw
mcX
ezq
-tzS
+iox
gWa
gWa
gWa
-hIZ
+vQZ
uqn
pfb
pqi
pqi
-ipG
+unI
gkG
vQL
xVj
@@ -63421,10 +63373,10 @@ vmu
baq
fzZ
jhN
-pLi
+aof
lCS
vqI
-wqL
+hTd
vqI
vqI
vqI
@@ -63660,7 +63612,7 @@ rLR
gRN
jSm
gzS
-gbZ
+gCg
uWx
kaw
gNi
@@ -63668,7 +63620,7 @@ fFu
pHp
gEa
wWC
-peI
+xne
dXI
dXI
ocx
@@ -63681,7 +63633,7 @@ uTP
uGP
sXB
vqI
-rLD
+qnE
rNv
vqI
vqI
@@ -63915,7 +63867,7 @@ oIi
oIi
qRc
pMV
-lcl
+jWl
dPx
sCr
wNN
@@ -63938,7 +63890,7 @@ nAy
sfW
sXB
xqU
-uKV
+eHe
vph
vqI
vqI
@@ -64181,11 +64133,11 @@ pVY
dta
kXQ
fZY
-bhN
+dHA
gYA
gYA
wpu
-kCw
+xZX
aje
taA
ePy
@@ -64195,7 +64147,7 @@ oYA
gPs
mAp
rET
-iPM
+sGK
cEk
vqI
vqI
@@ -64451,8 +64403,8 @@ xGG
bTY
dSe
oby
-tIN
-bKr
+aiU
+xhE
vqI
vqI
vqI
@@ -64702,7 +64654,7 @@ bfI
bfI
bfI
oLo
-oMU
+pvC
eGr
cnk
gPs
@@ -64912,7 +64864,7 @@ aVf
iCD
oxK
aVV
-aJb
+mit
eXB
okk
bwI
@@ -65207,8 +65159,8 @@ sXB
sXB
pVY
pVY
-agu
-gmv
+ifm
+sWy
pVY
pVY
iUP
@@ -65464,8 +65416,8 @@ nKW
sXB
hqu
ihA
-lhf
-aIQ
+fjt
+jaF
dHS
vpm
sXB
@@ -65709,8 +65661,8 @@ iti
eZt
mNH
hJA
-jCI
-lUg
+uIW
+qKE
fSJ
mZk
mNH
@@ -65723,7 +65675,7 @@ qtl
dWg
gGH
gla
-ifk
+ygN
sXB
jsp
jsp
@@ -65956,7 +65908,7 @@ gkU
cVj
lfq
heR
-hXU
+lxl
uWI
fKa
wyg
@@ -66222,7 +66174,7 @@ xql
uHM
hNR
vnh
-btU
+wgL
gkj
thD
thD
@@ -66471,12 +66423,12 @@ loD
pCT
tzP
tzP
-nlf
+rDI
rRE
eYE
jKL
moU
-bLd
+xKF
jkp
hyN
qmz
@@ -66720,7 +66672,7 @@ lUm
pzQ
loD
tOz
-rEo
+bSm
txF
iLL
eIe
@@ -66749,7 +66701,7 @@ euN
tdh
xHX
eIc
-boR
+nHV
eIc
xHX
eIc
@@ -67239,7 +67191,7 @@ saM
nCa
saM
kJM
-iMF
+bEo
vet
kyK
saM
@@ -67261,8 +67213,8 @@ lsH
hCs
hzQ
btw
-nJM
-rnW
+rEz
+idv
oRo
woV
lyU
@@ -67507,7 +67459,7 @@ fjp
xmA
orX
rll
-nJD
+vFg
woV
wwk
euN
@@ -67515,7 +67467,7 @@ wBT
woV
hzQ
woV
-dih
+laO
axa
ggs
kRL
@@ -67553,7 +67505,7 @@ vqI
vqI
vqI
vqI
-vZa
+gDk
mVg
klh
vqI
@@ -67750,7 +67702,7 @@ lUm
lUm
lUm
iUZ
-keI
+oqF
saM
saM
iUZ
@@ -67811,7 +67763,7 @@ vqI
vqI
vqI
mKz
-aXZ
+iPK
sLz
qnY
vqI
@@ -68068,8 +68020,8 @@ vqI
vqI
vqI
blO
-oWJ
-xWB
+tjf
+wBy
lZV
sLz
vqI
@@ -68322,11 +68274,11 @@ vqI
vqI
vqI
vqI
-vZa
+gDk
vqI
mVg
-hAr
-xWB
+bBQ
+wBy
qnY
ycy
sLz
@@ -68836,7 +68788,7 @@ vqI
vqI
vqI
vqI
-reu
+mUB
klh
wsA
vqI
@@ -69091,12 +69043,12 @@ vqI
vqI
vqI
vqI
-mDP
-mDP
+bfz
+bfz
vqI
cEk
qnY
-oMP
+fiF
sLz
xqU
sLz
@@ -69349,13 +69301,13 @@ vqI
vqI
fPc
klh
-svB
+pGB
sLz
mKz
lZV
rNv
sLz
-kIp
+roL
bXA
vqI
vqI
@@ -69602,7 +69554,7 @@ vqI
vqI
vqI
vqI
-mDP
+bfz
blO
pdu
xSk
@@ -69613,7 +69565,7 @@ sLz
ycy
sLz
bXA
-lTJ
+svv
vqI
vqI
cEk
@@ -70120,10 +70072,10 @@ vqI
vqI
vqI
vqI
-nPp
+qza
ycy
xSk
-fZB
+hts
sLz
rNv
sLz
@@ -70379,7 +70331,7 @@ vqI
vqI
vqI
vqI
-vVC
+jRN
cEk
rNv
nve
@@ -70639,7 +70591,7 @@ vqI
vqI
vqI
vqI
-vVC
+jRN
sLz
sLz
rNv
@@ -70901,7 +70853,7 @@ vqI
vqI
rNv
rNv
-vVC
+jRN
vqI
vqI
vqI
@@ -122490,7 +122442,7 @@ xsQ
sHr
xsQ
kQw
-bEo
+uUH
cDx
vry
mQR
@@ -122499,7 +122451,7 @@ vTg
vDJ
ble
hqw
-fuG
+nEN
sNT
eZI
eZI
@@ -122510,7 +122462,7 @@ eZI
eZI
eZI
eZI
-jdF
+dXH
aAW
iwI
eOP
@@ -122748,7 +122700,7 @@ eWL
tGT
tGT
kND
-qlK
+uMm
vcY
hqw
pjN
@@ -122762,7 +122714,7 @@ pTV
eZI
nqP
eZI
-dHC
+fic
eZI
nqP
eZI
@@ -122779,9 +122731,9 @@ iwI
iwI
iwI
tHO
-pTi
+vvo
cno
-awV
+cFN
tHO
aPC
lai
@@ -123253,7 +123205,7 @@ kQw
oAv
fgj
wak
-jji
+mhe
kQw
bxt
bsw
@@ -123533,9 +123485,9 @@ mIW
vlt
lUe
lGG
-tYC
+kyr
baQ
-aKB
+wXo
rUJ
wCp
rKN
@@ -123793,7 +123745,7 @@ sYf
sRD
sRD
sRD
-aea
+iAM
xwF
rSK
nst
@@ -124050,7 +124002,7 @@ kdn
ghV
xiu
sRD
-tTT
+hRD
eEe
lob
sRD
@@ -124301,7 +124253,7 @@ epj
xYT
bGO
aBO
-ejL
+fiC
tfg
vjc
rHl
@@ -124547,9 +124499,9 @@ bDD
eXn
xgH
xgH
-gVY
+udq
tob
-mlP
+tnA
aaz
uld
oyg
@@ -124814,7 +124766,7 @@ ozT
tFb
xYT
bEe
-lZZ
+tih
aNk
rjD
rtK
@@ -124834,7 +124786,7 @@ nfX
hoN
pnn
vgG
-smX
+tYX
kLU
eHd
cny
@@ -125081,7 +125033,7 @@ sRD
xab
tml
vPP
-oXB
+gth
qHP
gJG
gmt
@@ -125309,7 +125261,7 @@ kct
kct
kct
kct
-bpq
+oxs
rpH
rGq
wMY
@@ -125317,7 +125269,7 @@ rSE
bDD
gyO
ttY
-pjQ
+yfd
qJT
jLG
xPe
@@ -125561,11 +125513,11 @@ kKq
wqd
suO
afw
-rPg
-rGX
-eol
-mLM
-cej
+fFZ
+pFZ
+wiQ
+xMQ
+aDi
bDD
bDD
tNz
@@ -125578,7 +125530,7 @@ kAS
hyo
iIO
pcu
-qsi
+hvh
jME
jME
dqV
@@ -125818,11 +125770,11 @@ dGh
liG
eyu
clO
-ijW
-edF
-pXZ
-oEM
-sWk
+vjo
+unO
+yjb
+aeN
+rWj
jrU
hUk
ofU
@@ -125861,7 +125813,7 @@ hdJ
vqE
tIJ
mEU
-bFJ
+xtb
vpJ
eeB
fje
@@ -126074,12 +126026,12 @@ eyu
ksj
oBi
afw
-pQt
-gez
-pMh
-nED
-xQn
-bTy
+sKV
+tST
+xdH
+rjX
+lvV
+kNq
lwX
jXQ
lWU
@@ -126092,7 +126044,7 @@ mBp
uxt
qxQ
mIN
-jfL
+hUj
htB
ptj
hns
@@ -126331,12 +126283,12 @@ eyu
dGh
lxo
afw
-fUl
-umL
-uKn
-lzV
-wbY
-btq
+mxy
+xdb
+qiO
+llQ
+umB
+nOu
bDD
ejD
tuz
@@ -126348,8 +126300,8 @@ ttY
jLp
ntA
ttY
-kHE
-svk
+nJX
+cRw
jME
apg
wUl
@@ -126363,9 +126315,9 @@ vsW
xvB
wxq
vqE
-vTn
+tFM
bMW
-wOw
+eSh
oEl
bvY
cnX
@@ -126589,11 +126541,11 @@ bvO
esW
afw
epO
-uoB
-aFW
-lzV
-bYW
-lsf
+pdw
+tVK
+llQ
+aWb
+acj
thc
nRX
oBX
@@ -126606,7 +126558,7 @@ iTe
dFk
bqp
tSb
-mYq
+ncK
bMe
mtO
rDl
@@ -126845,17 +126797,17 @@ eyu
uXi
ssT
afw
-cAV
+laf
gcq
swh
-igs
+ukz
vsM
cEM
bDD
tks
nye
-ivf
-lQf
+oOA
+tDT
bDD
vVE
ttY
@@ -126863,7 +126815,7 @@ byq
tND
kQc
jxa
-jkr
+aUc
ueO
leg
tOU
@@ -126891,11 +126843,11 @@ oEl
gZh
pQk
uNe
-ncz
+sew
eMV
eMV
afq
-aKI
+xvQ
eMV
xiW
skf
@@ -127100,14 +127052,14 @@ vqI
vqI
eyu
hvu
-glR
+qgW
afw
afw
-iJz
+sVh
afw
-ddc
+haF
kAa
-bcT
+giU
bDD
lRO
oHV
@@ -127119,8 +127071,8 @@ ttY
jLp
jLp
ttY
-xeI
-vrF
+obC
+elK
oEZ
nkb
nkb
@@ -127134,7 +127086,7 @@ bPo
vHu
ueV
vqE
-oNJ
+aVM
qao
iTA
oEl
@@ -127377,7 +127329,7 @@ xpy
xpy
oCL
xWj
-hiA
+wnk
wxm
gDp
oRV
@@ -127401,7 +127353,7 @@ xlw
oEl
fVb
wlW
-iQS
+lAq
tle
mAS
ifA
@@ -127616,7 +127568,7 @@ kTG
sxD
fCF
hhu
-jLT
+eUC
sMK
eEc
uoe
@@ -127634,23 +127586,23 @@ sfL
rFm
rFm
dme
-jsK
-fMW
-aFA
-rBL
-rEU
-sPN
-lFn
-txL
-nWN
-bns
-kPY
-elm
-eom
-qgq
-fpo
-kuF
-vRc
+tAz
+vcM
+ktf
+dkP
+cPh
+rjj
+mgp
+vdC
+nmp
+aWp
+oNr
+eiN
+vYe
+oCj
+bVi
+mAj
+uWl
cCz
oEl
jlR
@@ -127873,8 +127825,8 @@ kAk
vdv
gMh
hhu
-pfd
-fOE
+kcD
+wVz
fsb
jeo
oLK
@@ -127893,10 +127845,10 @@ rId
rId
rId
rId
-ait
+lpc
rql
cHd
-aAb
+fQH
qYc
oqs
eWf
@@ -127911,7 +127863,7 @@ anK
wSm
waG
hxh
-oUu
+oYO
wli
wTQ
uyo
@@ -128908,7 +128860,7 @@ jeo
oLK
xIO
olO
-mYn
+kax
gyy
gyy
gyy
@@ -128942,7 +128894,7 @@ ddQ
ddQ
tPD
hsN
-bpT
+nyu
vJG
aoH
oru
@@ -129211,7 +129163,7 @@ cwk
gwZ
gwZ
iHy
-kam
+xJE
kBd
voA
ifA
@@ -129422,7 +129374,7 @@ bkx
pKl
xIO
tov
-pWH
+bVS
gyy
gyy
pqE
@@ -129666,7 +129618,7 @@ vqI
vqI
vqI
tYd
-dfc
+cbl
fvg
xko
ukZ
@@ -129704,9 +129656,9 @@ qjF
dOv
cZZ
fgO
-pLg
-lzs
-tVM
+tTn
+gXk
+gJt
lOf
ajB
ajB
@@ -129945,7 +129897,7 @@ ald
neX
tTb
tTb
-toN
+cJR
tTb
tTb
tTb
@@ -129956,9 +129908,9 @@ jKp
xXi
ygB
aIl
-rku
+jcz
xrZ
-kfb
+atE
iBU
bnn
eyQ
@@ -129967,7 +129919,7 @@ itO
ajB
eFt
aqw
-koq
+nEW
thd
ajB
mLo
@@ -130204,7 +130156,7 @@ pNI
pNI
sSJ
cea
-jKJ
+iJe
iSf
iSf
hKp
@@ -130222,7 +130174,7 @@ cDz
oLi
cDz
ajB
-vGO
+fZX
xsj
wJA
inZ
@@ -130479,7 +130431,7 @@ gEk
vDP
iwM
ajB
-pwr
+lPe
btR
mZW
bAc
@@ -130489,9 +130441,9 @@ tRH
vJn
xHy
uNe
-kie
+kPn
utb
-miM
+hTq
hTN
utb
utb
@@ -130701,9 +130653,9 @@ gEP
ijF
uwN
sIv
-kmY
+kJL
foz
-xpF
+wMn
bZH
fPV
kmN
@@ -130765,7 +130717,7 @@ vqI
vqI
vqI
vqI
-rGO
+aSF
mVg
xSk
cEk
@@ -130960,12 +130912,12 @@ fbS
qVb
xoR
gEP
-nGR
+rYe
gik
sru
kwK
tov
-wDa
+qOn
sSJ
pCc
nXm
@@ -131022,11 +130974,11 @@ vqI
mVg
qnY
wsA
-aXZ
+iPK
klh
lZV
-svB
-xce
+pGB
+lBT
xqU
vqI
vqI
@@ -131227,7 +131179,7 @@ sSJ
sSJ
jDU
sSJ
-auJ
+ozb
nje
baE
baE
@@ -131250,7 +131202,7 @@ piY
qzt
jTj
iEP
-jqF
+iEa
ajB
ajB
ajB
@@ -131541,7 +131493,7 @@ ycy
xqU
sLz
vqI
-lgR
+iya
sLz
ycy
vqI
@@ -131752,7 +131704,7 @@ ffQ
ouZ
xRu
nlo
-qFN
+fbs
gMG
tiS
tiS
@@ -131760,7 +131712,7 @@ gMG
gMG
pcP
kfl
-sid
+tnI
alW
hLr
cFp
@@ -132014,7 +131966,7 @@ uiA
aKG
aKG
ylg
-xBS
+hTM
nwu
kfl
aWy
@@ -132057,7 +132009,7 @@ vqI
vqI
vqI
vqI
-hnA
+jWf
rNv
vqI
vqI
@@ -132244,12 +132196,12 @@ hrC
dGK
fZR
evs
-adV
+hLc
nxt
fZR
xVu
rHO
-sEP
+eWv
eKX
czE
sjC
@@ -132274,7 +132226,7 @@ kNj
tpM
evR
kfl
-acD
+riT
wOh
jOC
jZG
@@ -132282,7 +132234,7 @@ xtQ
hyc
mSE
aKC
-xja
+uEq
oqn
mSE
mSE
@@ -132575,7 +132527,7 @@ fPc
rNv
cEk
sLz
-iDj
+joL
vqI
vqI
vqI
@@ -132804,7 +132756,7 @@ jGk
qSC
fqb
fqb
-lep
+diS
aCm
vqI
vqI
@@ -132830,7 +132782,7 @@ vqI
vqI
adG
ycy
-exV
+gBS
vDt
sLz
sLz
@@ -133051,7 +133003,7 @@ liR
xSM
hdM
aCm
-igk
+wgt
tDF
xCQ
dnZ
@@ -133076,7 +133028,7 @@ vqI
vqI
vqI
vqI
-reu
+mUB
wsA
sLz
sLz
@@ -133286,7 +133238,7 @@ olN
olN
olN
wQI
-lAM
+tss
uWZ
rZM
aAV
@@ -133856,7 +133808,7 @@ vqI
vqI
vqI
vqI
-dji
+gSq
sLz
bvw
vqI
@@ -134112,7 +134064,7 @@ vqI
vqI
vqI
vqI
-lgR
+iya
ycy
vqI
bvw
@@ -134880,7 +134832,7 @@ vqI
vqI
fPc
sLz
-svB
+pGB
ycy
ycy
bvw
@@ -135095,7 +135047,7 @@ aRY
aTx
mMZ
aJe
-dmI
+fdd
mjt
aqu
gXz
@@ -187773,7 +187725,7 @@ oXe
oXe
oXe
oXe
-dmu
+eGO
oXe
oXe
oXe
@@ -188029,13 +187981,13 @@ btO
xMl
mXm
xMl
-mBY
+axc
xdL
tOf
btO
pdR
kWE
-nFA
+czn
lPu
lPu
lPu
@@ -188284,7 +188236,7 @@ xMl
tfd
oXe
ouX
-kGQ
+hif
fmH
oXe
btO
@@ -188292,16 +188244,16 @@ pdR
xdL
mXm
xMl
-qUk
-mgw
+qwk
+owG
aiK
kVV
-pzR
+otq
aiK
aiK
aiK
aiK
-iwg
+pWG
tAg
rKg
lRg
@@ -188545,7 +188497,7 @@ gmU
lwh
oXe
btO
-lsb
+cPw
lUh
tBy
btO
@@ -188554,7 +188506,7 @@ gEN
mxG
gEN
qhT
-eQW
+uRE
qhT
qhT
vqE
@@ -188801,7 +188753,7 @@ tst
pMt
uhc
uhc
-rsj
+xRD
uhc
uhc
uhc
@@ -188812,14 +188764,14 @@ tAg
tAg
qhT
aiK
-gBe
-gpm
+iQo
+qBR
aoM
jij
jij
jij
vqE
-lrB
+inI
nXa
fUT
pPE
@@ -189069,8 +189021,8 @@ rbV
tAg
qhT
aiK
-nYI
-chk
+izt
+lyE
aoM
jij
jij
@@ -189303,7 +189255,7 @@ rFF
oXe
oXe
nPz
-bZw
+ssr
tOf
tOf
tOf
@@ -189316,7 +189268,7 @@ iej
uhc
sUS
jUT
-glP
+hUe
xpI
xjt
rAh
@@ -189325,7 +189277,7 @@ qhT
qhT
qhT
qhT
-kcU
+ryh
aiK
aiK
vqE
@@ -189592,7 +189544,7 @@ jij
fLS
hKm
bnW
-ggt
+vPr
xNi
nHO
fLS
@@ -189830,7 +189782,7 @@ svO
uhc
lVB
dxG
-glP
+hUe
kyT
btC
uSY
@@ -189854,7 +189806,7 @@ pio
fwf
fLS
vqE
-kCL
+xBc
vqE
vqE
vqE
@@ -190356,7 +190308,7 @@ pub
vsU
joF
vqE
-oQf
+pDD
bdh
ndU
tth
@@ -190862,14 +190814,14 @@ usq
vQN
jHd
aiK
-mFc
+eCq
shD
shD
shD
shD
shD
shD
-tpF
+orB
aQg
aTZ
ozO
@@ -191124,13 +191076,13 @@ jor
xNh
jor
shD
-nSz
+mjw
shD
vqE
qvD
xMB
jxX
-lUX
+sNp
fLS
ylY
pKk
@@ -191361,7 +191313,7 @@ gVA
gVA
gVA
kxf
-lsM
+iFx
iEq
erZ
mcZ
@@ -191397,7 +191349,7 @@ ipx
bkW
pNf
nyO
-bHH
+qYC
vqE
vqE
vqE
@@ -192400,11 +192352,11 @@ qwF
aPh
stJ
liZ
-cwj
+vYl
tdN
bqm
oFa
-nYY
+xCw
mWc
llS
cty
@@ -192418,10 +192370,10 @@ dkt
oKL
wQG
qxp
-tYp
+gwb
sIH
fUW
-xWK
+mRe
wQG
ias
jGg
@@ -192683,7 +192635,7 @@ nrw
ufV
kmU
rck
-dbB
+ogp
eFI
qns
nmR
@@ -192932,14 +192884,14 @@ eXG
lDt
wQG
lnK
-sif
+tkD
jzn
tTh
hED
jFz
gos
hsz
-hAw
+pLT
vqE
akG
xnh
@@ -193180,7 +193132,7 @@ nYL
nYL
nYL
nYL
-sjd
+ttC
frz
frz
uEN
@@ -193421,7 +193373,7 @@ jNd
rHi
soL
gim
-gvF
+lzD
lOG
cKi
ajZ
@@ -193449,13 +193401,13 @@ nYL
nYL
wSx
wwE
-bGr
+tBT
jLf
bMB
opx
csB
rLa
-mne
+cfw
fgP
cXI
aWJ
@@ -193684,7 +193636,7 @@ gim
xnb
gim
gim
-xDK
+tIw
sJH
nYL
nYL
@@ -193930,14 +193882,14 @@ fdh
hbs
aEi
aEi
-poF
+uwJ
aEi
ceR
gMP
aya
aEi
-biX
-gxb
+mwP
+wbv
rvJ
awE
vyq
@@ -194186,17 +194138,17 @@ rcQ
fdh
fdh
dpV
-aEU
+gJg
hpO
aXM
-tfJ
+ykt
lYF
nhs
sfC
rsU
-tCZ
+dSc
gjO
-rBu
+bqq
roj
eOr
frz
@@ -194223,13 +194175,13 @@ hAh
koS
sgc
uGu
-lJv
-jJJ
-dIr
+pZI
+uYb
+wIQ
xUk
nbj
-iAk
-utq
+hGq
+fgF
qgY
qgY
qgY
@@ -194451,7 +194403,7 @@ fHo
aZm
aEi
mik
-nTN
+bZl
gpl
awE
pDe
@@ -194733,7 +194685,7 @@ nYL
nYL
nYL
gUx
-ixD
+xiv
bbd
mpj
nSK
@@ -194994,10 +194946,10 @@ wwE
tsf
jdU
bYh
-dRo
+hAU
ceg
nZB
-nrD
+fBU
oam
oam
rNg
@@ -195242,7 +195194,7 @@ frz
pEG
frz
frz
-vMy
+gFG
xWg
eMh
gyq
@@ -195252,7 +195204,7 @@ cRd
iKY
amM
qgj
-cYs
+xbA
oam
oam
oam
@@ -195488,7 +195440,7 @@ ohi
ohi
gMG
lXL
-rWs
+nzU
wlj
vqp
vES
@@ -196014,7 +195966,7 @@ xWg
alf
jRL
bgn
-hUJ
+deq
oPm
dry
wFx
@@ -196525,7 +196477,7 @@ fah
aSX
gXD
xWg
-afQ
+pYO
jRL
geB
fJc
@@ -196821,7 +196773,7 @@ sLz
ycy
sLz
bvw
-pQG
+vLy
sLz
sLz
vqI
@@ -197009,7 +196961,7 @@ gVA
gVA
bEB
xjy
-sUv
+nVd
rFF
rZM
rZM
@@ -197075,10 +197027,10 @@ bvw
bvw
bvw
ycy
-fZB
+hts
sLz
rNv
-pQG
+vLy
bvw
sLz
blO
@@ -197597,11 +197549,11 @@ bvw
bvw
sLz
blO
-rQQ
+iwl
rNv
cEk
sLz
-soQ
+grQ
xUr
sLz
vqI
@@ -197785,7 +197737,7 @@ rFF
rFF
rca
sld
-ivO
+qId
olN
olN
qLe
@@ -197822,7 +197774,7 @@ oNu
uhU
lVQ
srJ
-fFT
+vwq
ade
uJm
srJ
@@ -198103,7 +198055,7 @@ bvw
bvw
vqI
vqI
-wmU
+oNh
pdu
lZV
sLz
@@ -198312,7 +198264,7 @@ sld
wSN
tte
aPc
-cYG
+cJm
fJp
fJp
aPc
@@ -198566,8 +198518,8 @@ olN
pZC
tUu
vtn
-ocM
-xsl
+iOV
+tWu
aPc
fJp
fJp
@@ -198587,7 +198539,7 @@ opN
tDF
kFj
sKD
-uHR
+onC
tDF
xCQ
fMh
@@ -199133,7 +199085,7 @@ pdu
rNv
qnY
sLz
-xWB
+wBy
sLz
sLz
bvw
@@ -199387,9 +199339,9 @@ vqI
vqI
blO
rNv
-svB
+pGB
lZV
-ccq
+izd
rNv
sLz
bvw
@@ -199632,8 +199584,8 @@ vqI
vqI
vqI
blO
-ccq
-taE
+izd
+qeO
sLz
xSk
pdu
@@ -199645,7 +199597,7 @@ vqI
qnY
sLz
nve
-kFt
+xQV
blO
sLz
sLz
@@ -200409,7 +200361,7 @@ blO
ccl
mVg
sLz
-fZB
+hts
cEk
cEk
cEk
@@ -200657,13 +200609,13 @@ vqI
vqI
vqI
vqI
-xWB
+wBy
pdu
xTD
xSk
-cBT
+kmO
sLz
-cBT
+kmO
ozj
blO
sLz
@@ -201462,7 +201414,7 @@ bvw
bvw
bvw
xqU
-svB
+pGB
vqI
vqI
vqI
@@ -201719,7 +201671,7 @@ bvw
bvw
sLz
sLz
-svB
+pGB
vqI
vqI
vqI
@@ -202480,11 +202432,11 @@ vqI
sLz
blO
klh
-riO
-cBT
+pgy
+kmO
mVg
blO
-oMP
+fiF
sLz
qnY
sLz
@@ -253033,7 +252985,7 @@ lAN
lAN
lAN
lAN
-luz
+crU
xxa
wVV
yli
@@ -255906,7 +255858,7 @@ kxS
kxS
kxS
kxS
-uvf
+rKV
kxS
kxS
kxS
@@ -258992,7 +258944,7 @@ nYL
nYL
sip
qPX
-srK
+nAF
pbk
tDr
aqa
@@ -259502,7 +259454,7 @@ nrQ
eKj
eMx
mpI
-ahC
+kmz
ehT
ehT
exJ
@@ -259755,7 +259707,7 @@ dvc
dvc
dvc
nrQ
-ihN
+gfK
wbl
hib
gHf
@@ -259763,11 +259715,11 @@ frz
frz
frz
esO
-uvk
-kMe
-fnA
-gWS
-vtO
+rEg
+jUk
+ote
+hGc
+uwc
lDZ
kqB
lea
@@ -260016,7 +259968,7 @@ sTM
rtT
dfi
nrQ
-mIy
+uNV
pMc
pMc
hpx
@@ -261046,8 +260998,8 @@ dvc
dvc
nrQ
aGW
-rWq
-uIH
+vuo
+aXp
hsh
txR
trd
@@ -261306,7 +261258,7 @@ lJE
csX
rGM
csX
-nEB
+cDv
nrQ
kqB
bIK
@@ -261560,7 +261512,7 @@ dvc
dvc
nrQ
nrQ
-bCL
+qQk
pbk
pbk
fxY
@@ -261822,7 +261774,7 @@ uVJ
uVJ
nrQ
trd
-wsd
+vWm
hfK
ggb
bIK
@@ -262073,7 +262025,7 @@ sNi
pBm
csW
cIX
-pVH
+cXJ
apP
xNL
xNL
@@ -264103,7 +264055,7 @@ uXr
uXr
uSL
crW
-kTy
+rwG
uDA
erN
bMS
@@ -264360,7 +264312,7 @@ uXr
uXr
uXr
bBH
-nxu
+tvm
uDA
erN
jmY
@@ -266698,7 +266650,7 @@ sNi
sNi
yet
kiZ
-tok
+ncM
lyK
tzT
apP
@@ -267728,7 +267680,7 @@ yli
yli
kyv
loj
-lvm
+tfh
xVE
ojC
lFC
diff --git a/_maps/map_files/FlandStation/FlandStation.dmm b/_maps/map_files/FlandStation/FlandStation.dmm
index 8dbf4af27ce4d..e6be8750e2e96 100644
--- a/_maps/map_files/FlandStation/FlandStation.dmm
+++ b/_maps/map_files/FlandStation/FlandStation.dmm
@@ -9023,6 +9023,19 @@
"cnM" = (
/turf/closed/wall/r_wall,
/area/teleporter)
+"cnU" = (
+/obj/machinery/disposal/bin,
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/effect/turf_decal/delivery,
+/obj/structure/disposalpipe/trunk,
+/obj/machinery/digital_clock/directional/north,
+/turf/open/floor/iron/dark,
+/area/hallway/primary/port)
"cnW" = (
/obj/structure/table/wood,
/obj/item/clothing/mask/cigarette/cigar/cohiba{
@@ -11653,6 +11666,20 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
/turf/open/floor/iron/grid/steel,
/area/medical/virology)
+"cVO" = (
+/obj/structure/railing{
+ dir = 1
+ },
+/obj/effect/spawner/randomarcade,
+/obj/effect/turf_decal{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/red/filled/line{
+ dir = 1
+ },
+/obj/effect/turf_decal/trimline/red/line,
+/turf/open/floor/prison,
+/area/security/prison)
"cVS" = (
/turf/open/floor/iron/dark/side{
dir = 5
@@ -15360,6 +15387,11 @@
},
/turf/open/floor/iron/sepia,
/area/engine/break_room)
+"dVz" = (
+/obj/effect/turf_decal/siding/wood,
+/obj/machinery/digital_clock/directional/north,
+/turf/open/floor/wood,
+/area/crew_quarters/dorms)
"dVE" = (
/obj/structure/table/reinforced,
/obj/item/stack/package_wrap,
@@ -17538,17 +17570,6 @@
},
/turf/open/floor/engine,
/area/engine/engine_room)
-"eCc" = (
-/obj/machinery/disposal/bin,
-/obj/effect/turf_decal/delivery,
-/obj/structure/window/reinforced{
- dir = 8
- },
-/obj/structure/disposalpipe/trunk{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/bridge)
"eCd" = (
/obj/structure/table/wood,
/obj/effect/landmark/event_spawn,
@@ -22202,6 +22223,21 @@
},
/turf/open/floor/iron/dark,
/area/hallway/primary/fore)
+"fFK" = (
+/obj/effect/turf_decal/siding/wood/corner{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
+ dir = 8
+ },
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 22
+ },
+/obj/item/kirbyplants/random,
+/obj/machinery/digital_clock/directional/north,
+/turf/open/floor/wood,
+/area/crew_quarters/bar/atrium)
"fFR" = (
/obj/structure/flora/ausbushes/fullgrass,
/turf/open/floor/grass,
@@ -31539,6 +31575,10 @@
/obj/structure/reagent_dispensers/watertank,
/turf/open/floor/plating,
/area/maintenance/port/aft)
+"hZv" = (
+/obj/machinery/digital_clock/directional/north,
+/turf/open/floor/carpet/grimy,
+/area/chapel/main)
"hZG" = (
/obj/structure/sign/map/left{
desc = "A framed outdated, yet detailed picture of the station. there's even the permanent prison wing in the bottom left!";
@@ -41228,13 +41268,6 @@
},
/turf/open/floor/plating,
/area/quartermaster/sorting)
-"kuV" = (
-/obj/effect/turf_decal/guideline/guideline_in_arrow_con/red{
- dir = 5
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
-/turf/open/floor/iron,
-/area/hallway/primary/fore)
"kvb" = (
/obj/machinery/door/airlock{
id_tag = "sec Toilet 2";
@@ -55668,15 +55701,6 @@
dir = 5
},
/area/crew_quarters/fitness/recreation)
-"ogW" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/obj/effect/spawner/randomarcade{
- dir = 4
- },
-/turf/open/floor/iron,
-/area/hallway/secondary/entry)
"ohn" = (
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
@@ -56915,21 +56939,6 @@
},
/turf/open/floor/iron/dark,
/area/bridge/showroom/corporate)
-"oAU" = (
-/obj/effect/turf_decal/trimline/red/filled/warning{
- dir = 5
- },
-/obj/effect/turf_decal/trimline/red/corner{
- dir = 8
- },
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/structure/disposalpipe/segment{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/security/main)
"oAX" = (
/obj/effect/turf_decal/tile/purple/opposingcorners,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
@@ -62805,13 +62814,6 @@
/obj/machinery/firealarm/directional/east,
/turf/open/floor/iron/freezer,
/area/crew_quarters/kitchen/coldroom)
-"qdE" = (
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/machinery/light,
-/turf/open/floor/iron,
-/area/hallway/secondary/exit/departure_lounge)
"qdH" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 8
@@ -63461,6 +63463,20 @@
},
/turf/open/floor/iron,
/area/janitor)
+"qlP" = (
+/obj/effect/spawner/randomarcade{
+ dir = 4
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/effect/turf_decal/bot,
+/obj/machinery/newscaster{
+ pixel_x = -28;
+ pixel_y = 1
+ },
+/turf/open/floor/iron/techmaint,
+/area/crew_quarters/locker)
"qmc" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 8
@@ -65746,6 +65762,17 @@
/obj/effect/landmark/event_spawn,
/turf/open/floor/iron/dark,
/area/medical/cryo)
+"qPt" = (
+/obj/effect/turf_decal/trimline/purple/filled/line,
+/obj/effect/turf_decal/trimline/purple/line{
+ dir = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 8
+ },
+/obj/machinery/digital_clock/directional/south,
+/turf/open/floor/iron/grid/steel,
+/area/science/research)
"qPA" = (
/obj/effect/decal/cleanable/glass,
/obj/structure/cable/yellow{
@@ -66545,20 +66572,6 @@
},
/turf/open/floor/carpet/grimy,
/area/crew_quarters/locker)
-"rbb" = (
-/obj/structure/railing{
- dir = 1
- },
-/obj/effect/spawner/randomarcade,
-/obj/effect/turf_decal{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/red/filled/line{
- dir = 1
- },
-/obj/effect/turf_decal/trimline/red/line,
-/turf/open/floor/prison,
-/area/security/prison)
"rbg" = (
/obj/structure/cable/yellow{
icon_state = "1-2"
@@ -67296,6 +67309,10 @@
dir = 8
},
/area/hallway/primary/central)
+"rlr" = (
+/obj/machinery/digital_clock/directional/north,
+/turf/open/floor/iron/white,
+/area/medical/medbay/lobby)
"rlu" = (
/obj/machinery/atmospherics/pipe/simple/green/visible{
dir = 4
@@ -68974,18 +68991,6 @@
},
/turf/open/floor/plating,
/area/maintenance/department/science)
-"rGm" = (
-/obj/machinery/disposal/bin,
-/obj/structure/window/reinforced{
- dir = 4
- },
-/obj/structure/window/reinforced{
- dir = 8
- },
-/obj/effect/turf_decal/delivery,
-/obj/structure/disposalpipe/trunk,
-/turf/open/floor/iron/dark,
-/area/hallway/primary/port)
"rGy" = (
/turf/closed/wall,
/area/medical/virology)
@@ -70155,6 +70160,15 @@
},
/turf/open/floor/iron/techmaint,
/area/medical/morgue)
+"rSM" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/effect/spawner/randomarcade{
+ dir = 4
+ },
+/turf/open/floor/iron,
+/area/hallway/secondary/entry)
"rSR" = (
/obj/machinery/atmospherics/pipe/layer_manifold{
dir = 4
@@ -71835,6 +71849,16 @@
/obj/effect/turf_decal/tile/dark_blue/fourcorners/contrasted,
/turf/open/floor/iron/dark,
/area/ai_monitored/turret_protected/ai_upload)
+"spk" = (
+/obj/effect/spawner/randomarcade{
+ dir = 4
+ },
+/obj/machinery/status_display/ai{
+ pixel_x = -32
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/iron/techmaint,
+/area/crew_quarters/locker)
"spl" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 8
@@ -72210,16 +72234,6 @@
/obj/structure/sign/departments/minsky/medical/medical2,
/turf/closed/wall/r_wall,
/area/crew_quarters/heads/cmo)
-"suV" = (
-/obj/effect/spawner/randomarcade{
- dir = 4
- },
-/obj/machinery/status_display/ai{
- pixel_x = -32
- },
-/obj/effect/turf_decal/bot,
-/turf/open/floor/iron/techmaint,
-/area/crew_quarters/locker)
"sve" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -72674,20 +72688,6 @@
},
/turf/open/floor/iron/sepia,
/area/maintenance/department/engine)
-"sAF" = (
-/obj/effect/turf_decal/siding/wood/corner{
- dir = 8
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
- dir = 8
- },
-/obj/machinery/airalarm{
- dir = 8;
- pixel_x = 22
- },
-/obj/item/kirbyplants/random,
-/turf/open/floor/wood,
-/area/crew_quarters/bar/atrium)
"sAO" = (
/obj/effect/turf_decal/guideline/guideline_out_arrow_con/blue{
dir = 9
@@ -75170,20 +75170,6 @@
/obj/effect/turf_decal/tile/yellow/opposingcorners,
/turf/open/floor/iron/sepia,
/area/engine/engineering)
-"thX" = (
-/obj/effect/spawner/randomarcade{
- dir = 4
- },
-/obj/machinery/light/small{
- dir = 8
- },
-/obj/effect/turf_decal/bot,
-/obj/machinery/newscaster{
- pixel_x = -28;
- pixel_y = 1
- },
-/turf/open/floor/iron/techmaint,
-/area/crew_quarters/locker)
"thZ" = (
/obj/effect/turf_decal/siding/wideplating/dark{
dir = 4
@@ -76825,15 +76811,6 @@
/obj/effect/turf_decal/tile/yellow/opposingcorners,
/turf/open/floor/iron/sepia,
/area/engine/engineering)
-"tEr" = (
-/obj/machinery/computer/cargo/request{
- dir = 4
- },
-/obj/structure/window/reinforced{
- dir = 1
- },
-/turf/open/floor/iron/dark,
-/area/quartermaster/office)
"tEB" = (
/obj/machinery/door/airlock/engineering{
name = "Auxiliary Construction Storage";
@@ -77171,6 +77148,18 @@
},
/turf/open/floor/engine,
/area/engine/supermatter)
+"tKq" = (
+/obj/structure/table/reinforced,
+/obj/machinery/microwave{
+ pixel_x = -2;
+ pixel_y = 5
+ },
+/obj/item/radio/intercom{
+ pixel_x = -28
+ },
+/obj/machinery/digital_clock/directional/north,
+/turf/open/floor/iron/sepia,
+/area/engine/break_room)
"tKt" = (
/obj/machinery/atmospherics/components/unary/portables_connector/visible{
dir = 1
@@ -77645,13 +77634,6 @@
},
/turf/open/floor/iron/dark,
/area/security/brig)
-"tPH" = (
-/obj/effect/spawner/randomarcade{
- dir = 4
- },
-/obj/effect/turf_decal/bot,
-/turf/open/floor/iron/techmaint,
-/area/crew_quarters/locker)
"tPJ" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -78784,6 +78766,14 @@
/obj/effect/spawner/lootdrop/grille_or_trash,
/turf/open/floor/plating,
/area/maintenance/port)
+"ueP" = (
+/obj/effect/turf_decal/guideline/guideline_in_arrow_con/red{
+ dir = 5
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/machinery/digital_clock/directional/north,
+/turf/open/floor/iron,
+/area/hallway/primary/fore)
"ueW" = (
/obj/effect/turf_decal/siding/dark,
/obj/effect/turf_decal/trimline/red/filled/line{
@@ -83286,17 +83276,6 @@
"vhU" = (
/turf/closed/wall,
/area/medical/apothecary)
-"vib" = (
-/obj/structure/table/reinforced,
-/obj/machinery/microwave{
- pixel_x = -2;
- pixel_y = 5
- },
-/obj/item/radio/intercom{
- pixel_x = -28
- },
-/turf/open/floor/iron/sepia,
-/area/engine/break_room)
"vie" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4{
dir = 4
@@ -89373,6 +89352,16 @@
},
/turf/open/floor/vault,
/area/engine/engine_room)
+"wzY" = (
+/obj/machinery/computer/cargo/request{
+ dir = 4
+ },
+/obj/structure/window/reinforced{
+ dir = 1
+ },
+/obj/machinery/digital_clock/directional/west,
+/turf/open/floor/iron/dark,
+/area/quartermaster/office)
"wAi" = (
/obj/effect/turf_decal/siding/wood/corner{
dir = 4
@@ -92104,6 +92093,14 @@
},
/turf/open/floor/iron/techmaint,
/area/science/research)
+"xeo" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/machinery/light,
+/obj/machinery/digital_clock/directional/south,
+/turf/open/floor/iron,
+/area/hallway/secondary/exit/departure_lounge)
"xew" = (
/obj/structure/cable/yellow{
icon_state = "1-2"
@@ -92672,6 +92669,22 @@
/obj/effect/turf_decal/stripes/closeup,
/turf/open/floor/iron/techmaint,
/area/engine/atmos)
+"xjq" = (
+/obj/effect/turf_decal/trimline/red/filled/warning{
+ dir = 5
+ },
+/obj/effect/turf_decal/trimline/red/corner{
+ dir = 8
+ },
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 1
+ },
+/obj/machinery/digital_clock/directional/east,
+/turf/open/floor/iron,
+/area/security/main)
"xju" = (
/obj/structure/extinguisher_cabinet{
pixel_x = 26
@@ -94063,6 +94076,13 @@
/obj/machinery/advanced_airlock_controller/directional/north,
/turf/open/floor/iron/dark,
/area/quartermaster/miningdock)
+"xzK" = (
+/obj/effect/spawner/randomarcade{
+ dir = 4
+ },
+/obj/effect/turf_decal/bot,
+/turf/open/floor/iron/techmaint,
+/area/crew_quarters/locker)
"xzN" = (
/obj/machinery/light/small,
/turf/open/floor/plating,
@@ -94451,6 +94471,18 @@
},
/turf/open/floor/plating,
/area/maintenance/port)
+"xDl" = (
+/obj/machinery/disposal/bin,
+/obj/effect/turf_decal/delivery,
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/obj/machinery/digital_clock/directional/east,
+/turf/open/floor/iron/dark,
+/area/bridge)
"xDn" = (
/obj/structure/closet/bombcloset/security,
/obj/effect/turf_decal/bot,
@@ -113065,7 +113097,7 @@ xTE
tkJ
taV
tLB
-ogW
+rSM
okR
gjq
bOE
@@ -113284,7 +113316,7 @@ hII
jhy
bSV
vdu
-qdE
+xeo
nMw
nMw
rVV
@@ -119416,7 +119448,7 @@ uDP
uDP
oSV
woq
-hQe
+hZv
hQe
oWH
edq
@@ -119717,7 +119749,7 @@ mib
mib
wOF
vqH
-sAF
+fFK
iVu
iVu
iVu
@@ -122307,7 +122339,7 @@ ceL
ulN
hmI
xTG
-rGm
+cnU
uOq
avq
xTR
@@ -123351,7 +123383,7 @@ paE
vLj
rLO
tCK
-tEr
+wzY
vxm
qkS
iix
@@ -126123,7 +126155,7 @@ xop
tNk
xyb
iLD
-ppz
+rlr
lkI
ppz
lkI
@@ -130506,7 +130538,7 @@ tul
lhU
xDg
fDx
-oAU
+xjq
rgq
ugD
nFX
@@ -132555,7 +132587,7 @@ kdR
jjj
tbg
iOh
-kuV
+ueP
gwQ
wrM
kpl
@@ -133868,7 +133900,7 @@ nWr
nWr
nWr
nWr
-rbb
+cVO
cLL
qer
wSA
@@ -133902,7 +133934,7 @@ wtm
mjN
tyI
odo
-bmp
+qPt
kQd
rAR
wyr
@@ -140826,7 +140858,7 @@ euM
usS
xkQ
qNK
-vib
+tKq
sVS
ykQ
hop
@@ -141527,7 +141559,7 @@ dAq
eaP
yeb
yeb
-eCc
+xDl
sJB
eTP
teE
@@ -142853,7 +142885,7 @@ wtw
usA
tIH
wtw
-eOX
+dVz
oqC
qDo
oxb
@@ -145419,9 +145451,9 @@ wDO
toK
uir
xSF
-suV
-thX
-tPH
+spk
+qlP
+xzK
wDO
uVi
fmY
diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm
index 6d9777691fd90..42b84155b02b5 100644
--- a/_maps/map_files/KiloStation/KiloStation.dmm
+++ b/_maps/map_files/KiloStation/KiloStation.dmm
@@ -5277,10 +5277,6 @@
"awV" = (
/turf/closed/wall/r_wall/rust,
/area/crew_quarters/heads/chief)
-"awW" = (
-/obj/structure/sign/warning/securearea,
-/turf/closed/wall,
-/area/engine/break_room)
"awX" = (
/turf/closed/wall/r_wall,
/area/crew_quarters/heads/chief)
@@ -15052,6 +15048,12 @@
},
/turf/open/floor/iron,
/area/bridge)
+"bCi" = (
+/obj/effect/turf_decal/tile/dark/opposingcorners,
+/obj/effect/turf_decal/delivery,
+/obj/machinery/atmospherics/components/unary/cryo_cell,
+/turf/open/floor/iron/dark,
+/area/medical/cryo)
"bCm" = (
/obj/machinery/light/small{
dir = 1
@@ -18668,10 +18670,6 @@
},
/turf/open/floor/iron/dark,
/area/hallway/secondary/exit/departure_lounge)
-"bWM" = (
-/obj/structure/sign/departments/cargo,
-/turf/closed/wall,
-/area/hallway/secondary/exit/departure_lounge)
"bWO" = (
/obj/machinery/status_display/ai,
/turf/closed/wall,
@@ -23417,6 +23415,18 @@
broken = 1
},
/area/maintenance/aft)
+"cuO" = (
+/obj/effect/spawner/randomarcade,
+/obj/effect/turf_decal/bot,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1;
+ layer = 1
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/security/prison)
"cuP" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt/dust,
@@ -28690,6 +28700,22 @@
/obj/effect/turf_decal/tile/neutral/half/contrasted,
/turf/open/floor/iron/dark,
/area/janitor)
+"cRQ" = (
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red/anticorner/contrasted{
+ dir = 1
+ },
+/obj/machinery/digital_clock/directional/north,
+/turf/open/floor/iron,
+/area/security/main)
"cRX" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/blood/old,
@@ -28819,18 +28845,6 @@
},
/turf/open/floor/iron/dark,
/area/hallway/primary/aft)
-"cUA" = (
-/obj/item/kirbyplants{
- icon_state = "plant-05"
- },
-/obj/machinery/light,
-/obj/effect/turf_decal/stripes/line,
-/obj/effect/turf_decal/tile/brown/half/contrasted{
- dir = 8
- },
-/obj/effect/turf_decal/tile/yellow,
-/turf/open/floor/iron,
-/area/hallway/secondary/exit/departure_lounge)
"cUK" = (
/obj/machinery/modular_computer/console/preset/research{
dir = 8
@@ -29651,6 +29665,19 @@
},
/turf/open/floor/iron/freezer,
/area/medical/virology)
+"dkj" = (
+/obj/effect/turf_decal/bot,
+/obj/machinery/conveyor{
+ dir = 4;
+ id = "QMLoad2";
+ name = "on ramp"
+ },
+/obj/effect/turf_decal/tile/neutral/half/contrasted{
+ dir = 4
+ },
+/obj/machinery/digital_clock/directional/south,
+/turf/open/floor/iron/dark,
+/area/quartermaster/storage)
"dkl" = (
/obj/structure/chair/fancy/comfy{
color = "#354562"
@@ -30104,21 +30131,6 @@
/obj/effect/spawner/mail/maintloot,
/turf/open/floor/plating,
/area/maintenance/port/aft)
-"drj" = (
-/obj/effect/turf_decal/bot,
-/obj/structure/closet/secure_closet/personal,
-/obj/item/storage/backpack,
-/obj/item/storage/backpack/satchel,
-/obj/item/clothing/suit/hooded/wintercoat,
-/obj/item/clothing/shoes/winterboots,
-/obj/machinery/light/small{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral/half/contrasted{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/crew_quarters/locker)
"drH" = (
/obj/structure/table/wood,
/obj/effect/turf_decal/stripes/corner,
@@ -33328,13 +33340,6 @@
},
/turf/closed/wall,
/area/quartermaster/warehouse)
-"ewl" = (
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/dark/opposingcorners,
-/obj/machinery/atmospherics/components/unary/cryo_cell,
-/obj/effect/turf_decal/delivery,
-/turf/open/floor/iron/dark,
-/area/medical/cryo)
"ewC" = (
/obj/effect/turf_decal/bot,
/obj/machinery/washing_machine,
@@ -37566,22 +37571,6 @@
},
/turf/open/floor/iron/showroomfloor,
/area/science/mixing)
-"fRR" = (
-/obj/machinery/light,
-/obj/structure/chair/fancy/sofa/corp/right{
- dir = 4
- },
-/obj/effect/turf_decal/tile/blue/half/contrasted{
- dir = 1
- },
-/obj/effect/turf_decal/tile/blue,
-/obj/machinery/airalarm{
- dir = 1;
- pixel_y = -22
- },
-/obj/effect/turf_decal/stripes/corner,
-/turf/open/floor/iron/showroomfloor,
-/area/medical/medbay/lobby)
"fRS" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/tile/red/opposingcorners,
@@ -37637,26 +37626,6 @@
},
/turf/open/floor/iron/dark,
/area/bridge)
-"fSX" = (
-/obj/machinery/disposal/bin,
-/obj/effect/turf_decal/bot,
-/obj/effect/turf_decal/stripes/corner{
- dir = 4
- },
-/obj/effect/turf_decal/stripes/corner{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{
- dir = 1
- },
-/obj/structure/extinguisher_cabinet{
- pixel_x = 25
- },
-/obj/structure/disposalpipe/trunk{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/security/warden)
"fTc" = (
/obj/structure/disposalpipe/segment{
dir = 5
@@ -38036,21 +38005,6 @@
burnt = 1
},
/area/maintenance/solars/starboard/fore)
-"fZy" = (
-/obj/effect/turf_decal/stripes/corner{
- dir = 4
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/red/anticorner/contrasted{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/security/main)
"fZK" = (
/obj/machinery/camera{
c_tag = "Starboard Hallway Planters";
@@ -40191,6 +40145,21 @@
/obj/effect/turf_decal/tile/neutral/half/contrasted,
/turf/open/floor/iron/dark,
/area/engine/gravity_generator)
+"gPB" = (
+/obj/machinery/light,
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 24
+ },
+/obj/structure/chair/fancy/sofa/old/right{
+ color = "#742925";
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral/half/contrasted{
+ dir = 8
+ },
+/obj/machinery/digital_clock/directional/south,
+/turf/open/floor/iron/dark,
+/area/crew_quarters/bar/atrium)
"gPD" = (
/obj/effect/turf_decal/tile/red/half/contrasted{
dir = 1
@@ -44574,6 +44543,18 @@
broken = 1
},
/area/quartermaster/warehouse)
+"ily" = (
+/obj/machinery/door/poddoor/shutters/preopen{
+ id = "ceprivate";
+ name = "Chief Engineer's Privacy Shutters"
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/caution/stand_clear,
+/obj/structure/sign/warning/securearea{
+ pixel_y = 32
+ },
+/turf/open/floor/iron/dark,
+/area/engine/break_room)
"ilA" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -47525,6 +47506,17 @@
/obj/effect/turf_decal/tile/neutral/fourcorners/contrasted,
/turf/open/floor/iron,
/area/hallway/primary/central)
+"jjN" = (
+/obj/structure/closet/secure_closet/engineering_electrical,
+/obj/effect/turf_decal/box,
+/obj/effect/turf_decal/stripes/corner,
+/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red/opposingcorners,
+/obj/machinery/digital_clock/directional/north,
+/turf/open/floor/iron,
+/area/engine/break_room)
"jjT" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/disposalpipe/segment{
@@ -51061,6 +51053,14 @@
},
/turf/open/floor/iron,
/area/hallway/primary/fore)
+"knS" = (
+/obj/effect/spawner/randomarcade,
+/obj/effect/turf_decal/bot,
+/obj/effect/turf_decal/siding/wood{
+ dir = 1
+ },
+/turf/open/floor/wood,
+/area/security/prison)
"koq" = (
/obj/machinery/holopad,
/obj/effect/turf_decal/bot,
@@ -51706,18 +51706,6 @@
},
/turf/open/floor/iron/dark,
/area/security/main)
-"kAD" = (
-/obj/effect/spawner/randomarcade,
-/obj/effect/turf_decal/bot,
-/obj/effect/turf_decal/siding/wood{
- dir = 1;
- layer = 1
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/turf/open/floor/wood,
-/area/security/prison)
"kBa" = (
/obj/machinery/atmospherics/pipe/simple/cyan/visible{
dir = 4
@@ -53324,12 +53312,6 @@
/obj/effect/turf_decal/tile/neutral/half/contrasted,
/turf/open/floor/iron/dark,
/area/hallway/secondary/exit/departure_lounge)
-"lgL" = (
-/obj/effect/turf_decal/tile/dark/opposingcorners,
-/obj/effect/turf_decal/delivery,
-/obj/machinery/atmospherics/components/unary/cryo_cell,
-/turf/open/floor/iron/dark,
-/area/medical/cryo)
"lgN" = (
/obj/effect/turf_decal/stripes/corner{
dir = 1
@@ -54384,20 +54366,6 @@
},
/turf/open/floor/iron/dark,
/area/science/mixing)
-"lxn" = (
-/obj/structure/table,
-/obj/item/folder,
-/obj/item/nanite_scanner{
- pixel_x = -4;
- pixel_y = 4
- },
-/obj/item/nanite_remote,
-/obj/machinery/light{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral/half/contrasted,
-/turf/open/floor/iron/dark,
-/area/science/research)
"lxx" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
@@ -55052,6 +55020,22 @@
},
/turf/open/floor/iron/dark,
/area/crew_quarters/kitchen)
+"lHZ" = (
+/obj/machinery/digital_clock/directional/north,
+/obj/machinery/camera{
+ c_tag = "Medbay Lobby";
+ name = "medical camera";
+ network = list("ss13","medical");
+ dir = 6
+ },
+/obj/item/kirbyplants{
+ icon_state = "plant-08"
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/turf/open/floor/iron/dark,
+/area/medical/medbay/lobby)
"lIC" = (
/obj/effect/turf_decal/stripes/line{
dir = 1
@@ -58299,20 +58283,6 @@
},
/turf/open/floor/iron/dark,
/area/science/explab)
-"mNG" = (
-/obj/machinery/light,
-/obj/structure/extinguisher_cabinet{
- pixel_x = 24
- },
-/obj/structure/chair/fancy/sofa/old/right{
- color = "#742925";
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral/half/contrasted{
- dir = 8
- },
-/turf/open/floor/iron/dark,
-/area/crew_quarters/bar/atrium)
"mOe" = (
/obj/structure/chair/wood{
dir = 4
@@ -62276,21 +62246,6 @@
burnt = 1
},
/area/maintenance/port)
-"oiB" = (
-/obj/effect/turf_decal/bot,
-/obj/machinery/conveyor{
- dir = 4;
- id = "QMLoad2";
- name = "on ramp"
- },
-/obj/structure/sign/poster/contraband/red_rum{
- pixel_y = -32
- },
-/obj/effect/turf_decal/tile/neutral/half/contrasted{
- dir = 4
- },
-/turf/open/floor/iron/dark,
-/area/quartermaster/storage)
"oiC" = (
/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{
dir = 8
@@ -62470,21 +62425,6 @@
/obj/effect/turf_decal/tile/purple/half/contrasted,
/turf/open/floor/iron/showroomfloor,
/area/maintenance/department/science)
-"okT" = (
-/obj/machinery/camera{
- c_tag = "Medbay Lobby";
- name = "medical camera";
- network = list("ss13","medical");
- dir = 6
- },
-/obj/item/kirbyplants{
- icon_state = "plant-08"
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 10
- },
-/turf/open/floor/iron/dark,
-/area/medical/medbay/lobby)
"olb" = (
/obj/structure/closet/radiation,
/obj/structure/grille/broken,
@@ -67677,6 +67617,13 @@
},
/turf/open/floor/iron/dark,
/area/vacant_room/commissary)
+"pUD" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/dark/opposingcorners,
+/obj/machinery/atmospherics/components/unary/cryo_cell,
+/obj/effect/turf_decal/delivery,
+/turf/open/floor/iron/dark,
+/area/medical/cryo)
"pUV" = (
/obj/machinery/door/airlock/maintenance{
req_access_txt = "12"
@@ -69552,16 +69499,6 @@
/obj/effect/turf_decal/tile/neutral/opposingcorners,
/turf/open/floor/iron/showroomfloor,
/area/engine/atmos)
-"qDM" = (
-/obj/structure/closet/secure_closet/engineering_electrical,
-/obj/effect/turf_decal/box,
-/obj/effect/turf_decal/stripes/corner,
-/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{
- dir = 4
- },
-/obj/effect/turf_decal/tile/red/opposingcorners,
-/turf/open/floor/iron,
-/area/engine/break_room)
"qDN" = (
/obj/machinery/sleeper{
dir = 8
@@ -70250,6 +70187,19 @@
},
/turf/open/floor/iron/dark,
/area/lawoffice)
+"qON" = (
+/obj/item/kirbyplants{
+ icon_state = "plant-05"
+ },
+/obj/machinery/light,
+/obj/effect/turf_decal/stripes/line,
+/obj/effect/turf_decal/tile/brown/half/contrasted{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/yellow,
+/obj/machinery/digital_clock/directional/south,
+/turf/open/floor/iron,
+/area/hallway/secondary/exit/departure_lounge)
"qOW" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -74603,22 +74553,6 @@
},
/turf/open/floor/iron/dark,
/area/crew_quarters/heads/hos)
-"sri" = (
-/obj/item/kirbyplants{
- icon_state = "plant-21"
- },
-/obj/effect/turf_decal/stripes/corner{
- dir = 1
- },
-/obj/effect/turf_decal/stripes/line,
-/obj/effect/turf_decal/tile/blue/anticorner/contrasted{
- dir = 8
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/iron,
-/area/bridge)
"srJ" = (
/obj/structure/sign/poster/official/random{
pixel_y = -32
@@ -74732,14 +74666,6 @@
},
/turf/open/floor/iron/dark,
/area/crew_quarters/heads/hor)
-"stT" = (
-/obj/effect/spawner/randomarcade,
-/obj/effect/turf_decal/bot,
-/obj/effect/turf_decal/siding/wood{
- dir = 1
- },
-/turf/open/floor/wood,
-/area/security/prison)
"stY" = (
/obj/machinery/atmospherics/components/unary/portables_connector/visible,
/obj/effect/turf_decal/box/corners{
@@ -75893,6 +75819,10 @@
/obj/effect/turf_decal/tile/neutral/half/contrasted,
/turf/open/floor/iron/dark,
/area/quartermaster/qm)
+"sOt" = (
+/obj/structure/sign/departments/cargo,
+/turf/closed/wall/rust,
+/area/hallway/secondary/exit/departure_lounge)
"sOC" = (
/obj/effect/turf_decal/bot,
/obj/machinery/holopad,
@@ -77633,6 +77563,23 @@
},
/turf/open/floor/iron/dark,
/area/science/storage)
+"tsd" = (
+/obj/machinery/disposal/bin,
+/obj/effect/turf_decal/bot,
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{
+ dir = 1
+ },
+/obj/structure/disposalpipe/trunk{
+ dir = 8
+ },
+/turf/open/floor/iron/dark,
+/area/security/warden)
"tsf" = (
/obj/effect/turf_decal/delivery,
/obj/effect/turf_decal/stripes/line,
@@ -78213,6 +78160,29 @@
burnt = 1
},
/area/maintenance/port)
+"tBU" = (
+/obj/effect/turf_decal/bot,
+/obj/structure/closet/secure_closet/personal,
+/obj/item/storage/backpack,
+/obj/item/storage/backpack/satchel,
+/obj/item/clothing/suit/hooded/wintercoat,
+/obj/item/clothing/shoes/winterboots,
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral/half/contrasted{
+ dir = 8
+ },
+/obj/machinery/digital_clock/directional/north,
+/obj/effect/turf_decal/bot,
+/obj/machinery/light/small{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral/half/contrasted{
+ dir = 8
+ },
+/turf/open/floor/iron/dark,
+/area/crew_quarters/locker)
"tCc" = (
/obj/effect/turf_decal/stripes/corner,
/obj/effect/decal/cleanable/dirt,
@@ -79028,6 +78998,23 @@
/obj/effect/turf_decal/tile/neutral/fourcorners/contrasted,
/turf/open/floor/iron,
/area/engine/atmos)
+"tTi" = (
+/obj/item/kirbyplants{
+ icon_state = "plant-21"
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line,
+/obj/effect/turf_decal/tile/blue/anticorner/contrasted{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/digital_clock/directional/west,
+/turf/open/floor/iron,
+/area/bridge)
"tTH" = (
/obj/structure/closet/secure_closet/CMO,
/obj/effect/turf_decal/tile/blue/anticorner/contrasted{
@@ -80027,6 +80014,21 @@
/obj/effect/turf_decal/stripes/corner,
/turf/open/floor/iron/freezer,
/area/medical/virology)
+"uoA" = (
+/obj/structure/table,
+/obj/item/folder,
+/obj/item/nanite_scanner{
+ pixel_x = -4;
+ pixel_y = 4
+ },
+/obj/item/nanite_remote,
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral/half/contrasted,
+/obj/machinery/digital_clock/directional/north,
+/turf/open/floor/iron/dark,
+/area/science/research)
"uoB" = (
/obj/effect/turf_decal/tile/red/half/contrasted{
dir = 4
@@ -83755,6 +83757,23 @@
/obj/effect/turf_decal/tile/neutral/opposingcorners,
/turf/open/floor/iron/dark,
/area/crew_quarters/bar)
+"vzz" = (
+/obj/machinery/light,
+/obj/structure/chair/fancy/sofa/corp/right{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue/half/contrasted{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/blue,
+/obj/machinery/airalarm{
+ dir = 1;
+ pixel_y = -22
+ },
+/obj/effect/turf_decal/stripes/corner,
+/obj/machinery/digital_clock/directional/west,
+/turf/open/floor/iron/showroomfloor,
+/area/medical/medbay/lobby)
"vzF" = (
/obj/structure/disposalpipe/segment,
/obj/structure/cable/yellow{
@@ -111413,7 +111432,7 @@ qbn
dNk
gZF
dku
-fZy
+cRQ
uKZ
mln
qVt
@@ -111615,7 +111634,7 @@ gHb
imK
xEQ
aNG
-lgL
+bCi
uPx
uxI
pHq
@@ -111872,7 +111891,7 @@ hVA
fWr
qhY
aNG
-ewl
+pUD
fbp
ixg
qti
@@ -113202,7 +113221,7 @@ lDt
lDt
lDt
lDt
-stT
+knS
wDE
gMx
uyd
@@ -113459,7 +113478,7 @@ pou
rLg
gUQ
lDt
-kAD
+cuO
nZE
gMx
sgL
@@ -113724,7 +113743,7 @@ aat
nUh
lyL
qPH
-fSX
+tsd
fQt
gGZ
iiL
@@ -113938,7 +113957,7 @@ fCB
tdo
ttH
prh
-fRR
+vzz
aQW
dpR
yak
@@ -114726,7 +114745,7 @@ asv
fhb
nkk
afe
-drj
+tBU
sNW
sWl
xiQ
@@ -114961,7 +114980,7 @@ aNn
tKV
aNn
nYU
-okT
+lHZ
gKL
ibY
fYR
@@ -121154,7 +121173,7 @@ jzA
sYf
hxn
vWs
-sri
+tTi
bnP
atj
avV
@@ -127858,11 +127877,11 @@ xkp
kBA
bOj
awL
-bKp
+ily
ckm
bKp
-awW
-qDM
+aIg
+jjN
cox
oaH
axb
@@ -128078,7 +128097,7 @@ sZl
ges
wCW
rtn
-mNG
+gPB
bwi
ajt
bmA
@@ -130377,7 +130396,7 @@ rnc
rFl
udv
aZv
-lxn
+uoA
qwl
pHY
hYK
@@ -132465,7 +132484,7 @@ uJI
bkZ
hiM
xdp
-oiB
+dkj
bjF
bEg
gKQ
@@ -134024,8 +134043,8 @@ xxq
bSn
vyF
xOT
-cUA
-bWM
+qON
+bOc
bPe
bZC
bPe
@@ -134543,7 +134562,7 @@ cJO
jol
pxZ
iHt
-bRF
+sOt
mjb
mjb
bTT
diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm
index ee4b234b07be9..3c536a9f247d1 100644
--- a/_maps/map_files/MetaStation/MetaStation.dmm
+++ b/_maps/map_files/MetaStation/MetaStation.dmm
@@ -7859,6 +7859,25 @@
},
/turf/open/floor/iron,
/area/hallway/primary/central)
+"aZn" = (
+/obj/structure/cable/yellow{
+ icon_state = "1-2"
+ },
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/machinery/navbeacon{
+ codes_txt = "patrol;next_patrol=14.9-CrewQuarters-Central";
+ location = "14.8-Dorms-Lockers"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/digital_clock/directional/west,
+/turf/open/floor/iron,
+/area/crew_quarters/dorms)
"aZo" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -17190,6 +17209,11 @@
},
/turf/open/floor/iron/dark/corner,
/area/engine/atmos)
+"bZZ" = (
+/obj/structure/chair/stool/bar,
+/obj/machinery/digital_clock/directional/east,
+/turf/open/floor/iron/cafeteria_red,
+/area/crew_quarters/bar)
"cak" = (
/obj/effect/turf_decal/tile/blue/anticorner/contrasted{
dir = 4
@@ -21560,10 +21584,6 @@
},
/turf/open/floor/iron,
/area/hallway/secondary/exit/departure_lounge)
-"cOs" = (
-/obj/machinery/status_display/ai,
-/turf/closed/wall,
-/area/hallway/secondary/exit/departure_lounge)
"cOF" = (
/obj/structure/table,
/obj/item/storage/box/bodybags{
@@ -22363,15 +22383,6 @@
/obj/item/storage/box/lights/mixed,
/turf/open/floor/plating,
/area/maintenance/starboard)
-"cTy" = (
-/obj/structure/chair/fancy/comfy{
- color = "#666666";
- dir = 4
- },
-/turf/open/floor/iron/chapel{
- dir = 1
- },
-/area/chapel/main)
"cTF" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -26647,25 +26658,6 @@
},
/turf/open/floor/iron,
/area/hallway/secondary/entry)
-"edV" = (
-/obj/machinery/airalarm/directional/north,
-/obj/structure/rack,
-/obj/item/rollerbed{
- pixel_x = -2
- },
-/obj/item/rollerbed{
- pixel_x = 1;
- pixel_y = 3
- },
-/obj/item/rollerbed{
- pixel_x = 5;
- pixel_y = 8
- },
-/obj/effect/turf_decal/tile/blue/anticorner/contrasted{
- dir = 1
- },
-/turf/open/floor/iron/white,
-/area/medical/medbay/lobby)
"eed" = (
/obj/effect/turf_decal/tile/neutral/half/contrasted,
/obj/effect/mapping_helpers/airlock/abandoned,
@@ -27372,6 +27364,21 @@
},
/turf/open/floor/iron/cafeteria_red,
/area/crew_quarters/bar)
+"euL" = (
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/structure/table,
+/obj/item/paper_bin{
+ pixel_x = -3;
+ pixel_y = 7
+ },
+/obj/effect/turf_decal/tile/brown/anticorner/contrasted{
+ dir = 4
+ },
+/obj/machinery/digital_clock/directional/east,
+/turf/open/floor/iron,
+/area/hallway/primary/port)
"evf" = (
/obj/machinery/camera/motion{
c_tag = "Armory - External";
@@ -29229,6 +29236,12 @@
},
/turf/open/floor/iron,
/area/medical/break_room)
+"fkj" = (
+/obj/effect/spawner/randomarcade{
+ dir = 4
+ },
+/turf/open/floor/prison,
+/area/security/prison)
"fkk" = (
/obj/structure/cable/yellow{
icon_state = "1-2"
@@ -33816,6 +33829,10 @@
},
/turf/open/floor/iron,
/area/crew_quarters/fitness/recreation)
+"gZE" = (
+/obj/machinery/digital_clock/directional,
+/turf/closed/wall,
+/area/hallway/secondary/exit/departure_lounge)
"gZS" = (
/obj/machinery/button/door{
id = "prisonereducation";
@@ -35296,6 +35313,22 @@
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
/area/crew_quarters/kitchen)
+"hEE" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red/half/contrasted{
+ dir = 4
+ },
+/obj/machinery/digital_clock/directional/north,
+/turf/open/floor/iron,
+/area/security/brig)
"hEL" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
dir = 5
@@ -37578,6 +37611,12 @@
},
/turf/open/floor/iron/white,
/area/medical/medbay/aft)
+"iAj" = (
+/obj/item/radio/intercom{
+ pixel_x = 26
+ },
+/turf/closed/wall/r_wall,
+/area/security/main)
"iAm" = (
/obj/structure/cable/yellow{
icon_state = "1-4"
@@ -41109,6 +41148,16 @@
},
/turf/open/floor/iron,
/area/hallway/primary/central)
+"jTa" = (
+/obj/structure/chair/fancy/comfy{
+ color = "#666666";
+ dir = 4
+ },
+/obj/machinery/digital_clock/directional/west,
+/turf/open/floor/iron/chapel{
+ dir = 1
+ },
+/area/chapel/main)
"jTi" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -41306,6 +41355,26 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/turf/open/floor/iron,
/area/maintenance/port)
+"jZh" = (
+/obj/machinery/airalarm/directional/north,
+/obj/structure/rack,
+/obj/item/rollerbed{
+ pixel_x = -2
+ },
+/obj/item/rollerbed{
+ pixel_x = 1;
+ pixel_y = 3
+ },
+/obj/item/rollerbed{
+ pixel_x = 5;
+ pixel_y = 8
+ },
+/obj/effect/turf_decal/tile/blue/anticorner/contrasted{
+ dir = 1
+ },
+/obj/machinery/digital_clock/directional/west,
+/turf/open/floor/iron/white,
+/area/medical/medbay/lobby)
"jZk" = (
/obj/effect/mapping_helpers/airlock/cyclelink_helper,
/obj/structure/disposalpipe/segment,
@@ -41414,24 +41483,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
/area/maintenance/starboard)
-"kau" = (
-/obj/machinery/firealarm{
- pixel_y = 28
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
- dir = 4
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/effect/turf_decal/tile/red/half/contrasted{
- dir = 4
- },
-/turf/open/floor/iron,
-/area/security/brig)
"kaJ" = (
/obj/structure/table,
/obj/item/paicard,
@@ -42577,24 +42628,6 @@
/obj/effect/turf_decal/tile/neutral/fourcorners/contrasted,
/turf/open/floor/iron/dark,
/area/teleporter)
-"kwF" = (
-/obj/structure/extinguisher_cabinet{
- pixel_x = -27
- },
-/obj/machinery/light{
- dir = 8
- },
-/obj/machinery/camera{
- c_tag = "Central Primary Hallway - Fore - Port Corner";
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/hallway/primary/central)
"kwI" = (
/obj/item/reagent_containers/spray/plantbgone{
pixel_y = 3
@@ -44195,12 +44228,6 @@
},
/turf/open/floor/iron/white,
/area/science/research)
-"kZa" = (
-/obj/effect/spawner/randomarcade{
- dir = 4
- },
-/turf/open/floor/prison,
-/area/security/prison)
"kZi" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 9
@@ -44477,20 +44504,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
/turf/open/floor/iron,
/area/storage/tools)
-"lge" = (
-/obj/effect/spawner/randomarcade,
-/obj/machinery/airalarm{
- dir = 8;
- pixel_x = 24
- },
-/obj/machinery/computer/security/telescreen/entertainment{
- pixel_y = 32
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 5
- },
-/turf/open/floor/wood,
-/area/crew_quarters/bar)
"lhn" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 4
@@ -44818,11 +44831,6 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
-"loR" = (
-/obj/item/kirbyplants/random,
-/obj/effect/turf_decal/tile/blue/anticorner/contrasted,
-/turf/open/floor/iron/dark,
-/area/bridge)
"lpd" = (
/obj/structure/lattice/catwalk/over,
/turf/open/floor/plating,
@@ -46656,6 +46664,12 @@
/obj/structure/sign/departments/minsky/medical/medical2,
/turf/closed/wall,
/area/medical/medbay/lobby)
+"mdn" = (
+/obj/item/kirbyplants/random,
+/obj/effect/turf_decal/tile/blue/anticorner/contrasted,
+/obj/machinery/digital_clock/directional/south,
+/turf/open/floor/iron/dark,
+/area/bridge)
"mdo" = (
/obj/effect/turf_decal/tile/neutral{
dir = 4
@@ -47431,6 +47445,25 @@
},
/turf/open/floor/iron,
/area/construction/mining/aux_base)
+"muy" = (
+/obj/machinery/power/apc/highcap/five_k{
+ areastring = "/area/security/warden";
+ dir = 8;
+ name = "Brig Control APC";
+ pixel_x = -1;
+ pixel_y = 24
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-4"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-2"
+ },
+/obj/structure/cable/yellow{
+ icon_state = "0-8"
+ },
+/turf/open/floor/iron/showroomfloor,
+/area/security/main)
"muG" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 6
@@ -52373,6 +52406,21 @@
/obj/effect/turf_decal/tile/brown/half/contrasted,
/turf/open/floor/iron,
/area/storage/primary)
+"ohr" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/camera{
+ c_tag = "Central Primary Hallway - Fore - Port Corner";
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/turf/open/floor/iron,
+/area/hallway/primary/central)
"oid" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 5
@@ -52397,25 +52445,6 @@
},
/turf/open/floor/iron,
/area/hallway/primary/central)
-"oiE" = (
-/obj/structure/cable/yellow{
- icon_state = "4-8"
- },
-/obj/structure/cable/yellow{
- icon_state = "2-8"
- },
-/obj/machinery/power/apc/highcap/five_k{
- areastring = "/area/security/warden";
- dir = 8;
- name = "Brig Control APC";
- pixel_x = -1;
- pixel_y = 24
- },
-/obj/structure/cable/yellow{
- icon_state = "0-4"
- },
-/turf/open/floor/iron/showroomfloor,
-/area/security/main)
"ojf" = (
/obj/structure/cable/yellow{
icon_state = "2-8"
@@ -53354,6 +53383,13 @@
},
/turf/open/floor/wood,
/area/crew_quarters/heads/captain/private)
+"oym" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/machinery/digital_clock/directional/east,
+/turf/open/floor/iron/white/corner,
+/area/hallway/secondary/entry)
"oyE" = (
/obj/effect/turf_decal/tile/neutral/fourcorners/contrasted,
/obj/structure/bodycontainer/morgue,
@@ -54561,24 +54597,6 @@
/obj/effect/turf_decal/tile/brown/half/contrasted,
/turf/open/floor/iron,
/area/storage/primary)
-"oYe" = (
-/obj/structure/cable/yellow{
- icon_state = "1-2"
- },
-/obj/machinery/light/small{
- dir = 8
- },
-/obj/machinery/navbeacon{
- codes_txt = "patrol;next_patrol=14.9-CrewQuarters-Central";
- location = "14.8-Dorms-Lockers"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/turf/open/floor/iron,
-/area/crew_quarters/dorms)
"oYx" = (
/obj/structure/table,
/obj/item/food/grown/wheat,
@@ -60705,20 +60723,6 @@
},
/turf/open/floor/iron,
/area/hydroponics)
-"rsJ" = (
-/obj/machinery/airalarm{
- pixel_y = 23
- },
-/obj/structure/table,
-/obj/item/paper_bin{
- pixel_x = -3;
- pixel_y = 7
- },
-/obj/effect/turf_decal/tile/brown/anticorner/contrasted{
- dir = 4
- },
-/turf/open/floor/iron,
-/area/hallway/primary/port)
"rti" = (
/obj/structure/cable/yellow{
icon_state = "1-2"
@@ -65286,6 +65290,13 @@
/obj/machinery/smartfridge/chemistry,
/turf/closed/wall/r_wall,
/area/medical/chemistry)
+"tjf" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/structure/extinguisher_cabinet{
+ pixel_x = 27
+ },
+/turf/open/floor/iron,
+/area/hallway/primary/central)
"tjn" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -72589,6 +72600,15 @@
},
/turf/open/floor/iron,
/area/crew_quarters/fitness/recreation)
+"vZR" = (
+/obj/effect/turf_decal/delivery,
+/obj/machinery/door/poddoor/preopen{
+ id = "Engineering";
+ name = "Engineering Security Doors"
+ },
+/obj/machinery/digital_clock/directional/north,
+/turf/open/floor/iron,
+/area/engine/break_room)
"vZX" = (
/obj/structure/cable/yellow{
icon_state = "1-8"
@@ -74886,6 +74906,19 @@
},
/turf/open/floor/iron/white,
/area/science/xenobiology)
+"wPN" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
+ dir = 4
+ },
+/obj/effect/turf_decal/trimline/purple/filled/line{
+ dir = 1
+ },
+/obj/machinery/digital_clock/directional/north,
+/turf/open/floor/iron/white,
+/area/science/research)
"wQf" = (
/obj/machinery/door/airlock/maintenance{
name = "Chapel Maintenance";
@@ -75351,6 +75384,16 @@
/obj/item/canvas/twentythree_twentythree,
/turf/open/floor/iron,
/area/storage/art)
+"xao" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/firealarm/directional/south,
+/turf/open/floor/iron,
+/area/security/brig)
"xaq" = (
/obj/structure/flora/junglebush/b,
/obj/structure/window/reinforced,
@@ -76180,6 +76223,20 @@
},
/turf/open/floor/iron,
/area/hallway/primary/port)
+"xnt" = (
+/obj/effect/spawner/randomarcade,
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/machinery/computer/security/telescreen/entertainment{
+ pixel_y = 32
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 5
+ },
+/turf/open/floor/wood,
+/area/crew_quarters/bar)
"xnK" = (
/obj/structure/filingcabinet/chestdrawer,
/obj/machinery/airalarm{
@@ -93007,7 +93064,7 @@ nFP
kwY
bqd
bsp
-bnM
+oym
bnM
ndx
bzw
@@ -100706,7 +100763,7 @@ pbu
aJN
lhv
dne
-rsJ
+euL
lCe
tgo
bff
@@ -101220,7 +101277,7 @@ mtX
aJO
piG
gmp
-kwF
+ohr
nTn
cKI
hMh
@@ -101452,7 +101509,7 @@ gUG
oTw
eNL
srs
-kZa
+fkj
aax
nWv
aaa
@@ -101552,7 +101609,7 @@ cLa
cLa
cPJ
gPS
-cTy
+jTa
cRn
cOS
cMI
@@ -101735,7 +101792,7 @@ aVR
nml
rJh
bqA
-bqA
+tjf
bqA
bqA
iAp
@@ -103565,7 +103622,7 @@ aZa
jfB
bSS
bSS
-edV
+jZh
iqK
tDc
vXT
@@ -105084,7 +105141,7 @@ kLu
bkE
bmy
bor
-loR
+mdn
bsU
bsU
bsU
@@ -105402,7 +105459,7 @@ cLr
cMf
cMU
cNN
-cOs
+gZE
cOW
cMU
cPS
@@ -107099,7 +107156,7 @@ vRS
fDl
fsC
aqa
-oiE
+muy
sMC
vQY
tPv
@@ -107612,7 +107669,7 @@ aeq
jai
eRX
kFN
-aqa
+iAj
jXZ
dkt
uqm
@@ -107622,7 +107679,7 @@ yen
ajD
dZc
ulX
-lQt
+xao
ahB
ahB
kGn
@@ -108135,7 +108192,7 @@ tlO
wnE
ajD
ajD
-kau
+hEE
awq
gCn
aiq
@@ -109486,7 +109543,7 @@ nnT
ckg
clH
bZn
-jKR
+wPN
ioY
sYS
fgQ
@@ -113575,7 +113632,7 @@ qaI
xTu
kJK
foE
-blf
+bZZ
kmk
ujJ
duS
@@ -114056,7 +114113,7 @@ aGJ
mWQ
sXR
fbN
-oYe
+aZn
qpm
rDe
jtP
@@ -115623,7 +115680,7 @@ alq
boY
khd
bmP
-lge
+xnt
jDS
etX
cii
@@ -120241,7 +120298,7 @@ toh
hGd
dgz
aBI
-byK
+vZR
uUo
rUa
pcp
diff --git a/_maps/map_files/RadStation/RadStation.dmm b/_maps/map_files/RadStation/RadStation.dmm
index 2c6cbec8a9542..36d5f89e9307c 100644
--- a/_maps/map_files/RadStation/RadStation.dmm
+++ b/_maps/map_files/RadStation/RadStation.dmm
@@ -5867,15 +5867,6 @@
lighting_overlay_colour = "#DDE6FF";
power_light = 0
})
-"bVQ" = (
-/obj/structure/sign/directions/medical{
- dir = 8;
- pixel_y = -6
- },
-/turf/closed/wall/r_wall,
-/area/security/main{
- name = "Security Locker Room"
- })
"bWa" = (
/obj/structure/lattice/catwalk/over,
/obj/machinery/door/airlock/maintenance_hatch{
@@ -7481,6 +7472,17 @@
/obj/effect/spawner/lootdrop/grille_or_trash,
/turf/open/floor/iron,
/area/maintenance/department/security)
+"cuH" = (
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
+/obj/effect/turf_decal/guideline/guideline_edge/purple{
+ dir = 1
+ },
+/obj/machinery/digital_clock/directional/north,
+/turf/open/floor/iron/white/side,
+/area/science/research)
"cuM" = (
/obj/structure/sign/poster/official/random{
pixel_x = -32
@@ -13005,14 +13007,6 @@
},
/turf/open/floor/iron/white,
/area/medical/virology)
-"edl" = (
-/obj/effect/turf_decal/tile/neutral/half/contrasted{
- dir = 1
- },
-/turf/open/floor/iron/dark/corner{
- dir = 4
- },
-/area/hallway/primary/fore)
"edv" = (
/obj/effect/turf_decal/guideline/guideline_out/brown{
dir = 8
@@ -13819,15 +13813,6 @@
},
/turf/open/floor/iron,
/area/hallway/primary/aft)
-"erj" = (
-/obj/effect/turf_decal/stripes/line{
- dir = 9
- },
-/obj/machinery/computer/rdconsole/production{
- dir = 4
- },
-/turf/open/floor/iron/dark,
-/area/engine/engineering)
"ero" = (
/obj/effect/landmark/blobstart,
/turf/open/floor/iron,
@@ -22895,16 +22880,6 @@
/obj/machinery/smartfridge/chemistry/preloaded,
/turf/closed/wall,
/area/medical/apothecary)
-"gXP" = (
-/obj/structure/table/reinforced,
-/obj/effect/turf_decal/siding/wideplating/dark{
- dir = 4
- },
-/obj/machinery/dish_drive{
- pixel_y = 10
- },
-/turf/open/floor/iron/cafeteria,
-/area/crew_quarters/kitchen)
"gYa" = (
/obj/machinery/photocopier,
/obj/effect/turf_decal/bot,
@@ -31534,6 +31509,19 @@
},
/turf/open/floor/plating,
/area/security/checkpoint/science)
+"jPL" = (
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral/half/contrasted{
+ dir = 4
+ },
+/obj/effect/turf_decal/guideline/guideline_edge/red{
+ dir = 1
+ },
+/obj/machinery/digital_clock/directional/north,
+/turf/open/floor/iron,
+/area/security/brig)
"jPV" = (
/obj/structure/lattice/catwalk,
/obj/item/wrench,
@@ -31785,6 +31773,15 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
/turf/open/floor/iron/tech,
/area/engine/atmos)
+"jTr" = (
+/obj/effect/spawner/randomarcade{
+ dir = 8
+ },
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/turf/open/floor/wood,
+/area/security/prison)
"jTQ" = (
/obj/effect/turf_decal/loading_area{
dir = 1
@@ -32831,16 +32828,6 @@
},
/turf/open/floor/iron,
/area/engine/engine_room)
-"klr" = (
-/obj/machinery/light{
- dir = 1
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer4,
-/obj/effect/turf_decal/guideline/guideline_edge/purple{
- dir = 1
- },
-/turf/open/floor/iron/white/side,
-/area/science/research)
"klu" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on/layer2{
dir = 8
@@ -36641,24 +36628,6 @@
},
/turf/open/floor/iron,
/area/medical/apothecary)
-"lxd" = (
-/obj/machinery/requests_console{
- department = "Science";
- departmentType = 2;
- name = "Science RC";
- pixel_y = 30;
- receive_ore_updates = 1
- },
-/obj/machinery/camera/autoname{
- dir = 2;
- network = list("ss13","rd")
- },
-/obj/structure/disposalpipe/segment{
- dir = 4
- },
-/obj/effect/turf_decal/tile/purple/fourcorners/contrasted,
-/turf/open/floor/iron/dark,
-/area/science/nanite)
"lxi" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/atmospherics/pipe/simple/supply/hidden/layer2,
@@ -39555,6 +39524,18 @@
/obj/structure/sign/warning/nosmoking/circle,
/turf/closed/wall/r_wall,
/area/engine/storage)
+"mtE" = (
+/obj/effect/turf_decal/siding/wood{
+ dir = 4
+ },
+/obj/machinery/camera/autoname{
+ dir = 4
+ },
+/obj/effect/spawner/randomarcade{
+ dir = 4
+ },
+/turf/open/floor/carpet,
+/area/crew_quarters/cafeteria)
"mtI" = (
/turf/open/floor/holofloor/plating,
/area/holodeck/prison)
@@ -42330,6 +42311,16 @@
/area/security/main{
name = "Security Locker Room"
})
+"njD" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/obj/machinery/computer/rdconsole/production{
+ dir = 4
+ },
+/obj/machinery/digital_clock/directional/west,
+/turf/open/floor/iron/dark,
+/area/engine/engineering)
"njS" = (
/obj/machinery/smartfridge/chemistry/virology/preloaded,
/obj/machinery/button/door{
@@ -42843,6 +42834,23 @@
/obj/structure/table,
/turf/open/floor/iron,
/area/engine/break_room)
+"nqJ" = (
+/obj/machinery/camera/autoname{
+ network = list("ss13","rd")
+ },
+/obj/machinery/requests_console{
+ department = "Science";
+ departmentType = 2;
+ name = "Science RC";
+ pixel_y = 30;
+ receive_ore_updates = 1
+ },
+/obj/structure/disposalpipe/segment{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/purple/fourcorners/contrasted,
+/turf/open/floor/iron/dark,
+/area/science/nanite)
"nqQ" = (
/obj/structure/cable/yellow{
icon_state = "4-8"
@@ -44568,15 +44576,6 @@
},
/turf/closed/wall/r_wall,
/area/engine/atmos)
-"nQr" = (
-/obj/effect/spawner/randomarcade{
- dir = 8
- },
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/turf/open/floor/wood,
-/area/security/prison)
"nQt" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 9
@@ -64710,6 +64709,15 @@
},
/turf/open/floor/iron/white,
/area/medical/genetics)
+"ujj" = (
+/obj/effect/turf_decal/tile/neutral/half/contrasted{
+ dir = 1
+ },
+/obj/machinery/digital_clock/directional/west,
+/turf/open/floor/iron/dark/corner{
+ dir = 4
+ },
+/area/hallway/primary/fore)
"ujy" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -68004,18 +68012,6 @@
},
/turf/open/floor/wood,
/area/crew_quarters/dorms)
-"vkF" = (
-/obj/effect/turf_decal/siding/wood{
- dir = 4
- },
-/obj/machinery/camera/autoname{
- dir = 4
- },
-/obj/effect/spawner/randomarcade{
- dir = 4
- },
-/turf/open/floor/carpet,
-/area/crew_quarters/cafeteria)
"vkS" = (
/obj/effect/turf_decal/tile/dark_blue{
alpha = 180;
@@ -69067,6 +69063,20 @@
name = "mainframe floor"
},
/area/tcommsat/server)
+"vDo" = (
+/obj/machinery/conveyor/inverted{
+ dir = 5;
+ id = "MailConv"
+ },
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/structure/cable/yellow{
+ icon_state = "2-4"
+ },
+/obj/machinery/digital_clock/directional/west,
+/turf/open/floor/iron/dark,
+/area/quartermaster/office)
"vDs" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4{
dir = 6
@@ -69163,6 +69173,15 @@
},
/turf/open/floor/iron/tech/grid,
/area/engine/gravity_generator)
+"vDU" = (
+/obj/machinery/light{
+ dir = 8
+ },
+/obj/machinery/digital_clock/directional/west,
+/turf/open/floor/iron/dark/side{
+ dir = 9
+ },
+/area/hallway/secondary/exit/departure_lounge)
"vDZ" = (
/obj/machinery/firealarm/directional/north,
/turf/open/floor/iron/dark,
@@ -69546,6 +69565,17 @@
dir = 9
},
/area/science/research)
+"vKD" = (
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/siding/wideplating/dark{
+ dir = 4
+ },
+/obj/machinery/dish_drive{
+ pixel_y = 10
+ },
+/obj/machinery/digital_clock/directional/north,
+/turf/open/floor/iron/cafeteria,
+/area/crew_quarters/kitchen)
"vLA" = (
/obj/structure/disposalpipe/segment{
dir = 2
@@ -71388,6 +71418,11 @@
},
/turf/open/floor/iron,
/area/maintenance/department/science)
+"wnU" = (
+/obj/effect/turf_decal/tile/blue/fourcorners/contrasted,
+/obj/machinery/digital_clock/directional/north,
+/turf/open/floor/iron/white,
+/area/medical/sleeper)
"wod" = (
/obj/effect/landmark/start/assistant,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden/layer4,
@@ -71986,14 +72021,6 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/iron,
/area/engine/atmos)
-"wBJ" = (
-/obj/machinery/light{
- dir = 8
- },
-/turf/open/floor/iron/dark/side{
- dir = 9
- },
-/area/hallway/secondary/exit/departure_lounge)
"wBN" = (
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 4
@@ -75523,19 +75550,6 @@
dir = 1
},
/area/hallway/secondary/exit/departure_lounge)
-"xFT" = (
-/obj/machinery/conveyor/inverted{
- dir = 5;
- id = "MailConv"
- },
-/obj/machinery/light{
- dir = 8
- },
-/obj/structure/cable/yellow{
- icon_state = "2-4"
- },
-/turf/open/floor/iron/dark,
-/area/quartermaster/office)
"xGh" = (
/obj/structure/table,
/obj/item/assembly/signaler{
@@ -98275,7 +98289,7 @@ pOq
vxS
kgg
sNa
-xFT
+vDo
jut
bAQ
eQu
@@ -103397,8 +103411,8 @@ rtX
aAF
dDS
fhl
-bVQ
-jXu
+hBK
+jPL
wxK
rgL
sOM
@@ -104996,7 +105010,7 @@ qie
qie
qie
qie
-klr
+cuH
eAx
pzV
uUA
@@ -107304,7 +107318,7 @@ pMZ
mZq
oFg
sSc
-lxd
+nqJ
sbe
wAA
ffm
@@ -108280,7 +108294,7 @@ xJA
wnJ
iUx
xtF
-nQr
+jTr
oiw
pxh
gdY
@@ -109129,7 +109143,7 @@ kwh
cnX
ulz
ikR
-erj
+njD
rxR
txH
mwr
@@ -109546,7 +109560,7 @@ vND
twm
qxi
bOq
-edl
+ujj
jUc
jUc
dCe
@@ -113699,7 +113713,7 @@ nXc
eLi
fdq
cnr
-vkF
+mtE
iqV
dJr
iFN
@@ -115020,7 +115034,7 @@ deZ
poJ
deE
cvC
-req
+wnU
iqw
bWm
qkw
@@ -116523,7 +116537,7 @@ nVz
bka
cYQ
eeJ
-gXP
+vKD
diN
cCP
cNU
@@ -118081,7 +118095,7 @@ tpI
ouQ
qfC
xCv
-wBJ
+vDU
vwm
cJN
oXG
diff --git a/beestation.dme b/beestation.dme
index c7f5f129a5834..1baf4c7af978d 100644
--- a/beestation.dme
+++ b/beestation.dme
@@ -196,7 +196,8 @@
#include "code\__DEFINES\dcs\helpers.dm"
#include "code\__DEFINES\dcs\signals.dm"
#include "code\__DEFINES\dcs\signals\signals_area.dm"
-#include "code\__DEFINES\dcs\signals\signals_atom.dm"
+#include "code\__DEFINES\dcs\signals\signals_atom\signals_atom.dm"
+#include "code\__DEFINES\dcs\signals\signals_atom\signals_atom_attack.dm"
#include "code\__DEFINES\dcs\signals\signals_global.dm"
#include "code\__DEFINES\dcs\signals\signals_lighting.dm"
#include "code\__DEFINES\dcs\signals\signals_movable.dm"
@@ -212,6 +213,7 @@
#include "code\__DEFINES\dcs\signals\signals_mob\signals_human.dm"
#include "code\__DEFINES\dcs\signals\signals_mob\signals_living.dm"
#include "code\__DEFINES\dcs\signals\signals_mob\signals_mob.dm"
+#include "code\__DEFINES\dcs\signals\signals_mob\signals_mobattack.dm"
#include "code\__DEFINES\dcs\signals\signals_mob\signals_silicon.dm"
#include "code\__DEFINES\dcs\signals\signals_mob\signals_simplemob.dm"
#include "code\__DEFINES\dcs\signals\signals_mob\signals_xenobiology.dm"
@@ -223,6 +225,7 @@
#include "code\__DEFINES\dcs\signals\signals_obj\signals_item\signals_food.dm"
#include "code\__DEFINES\dcs\signals\signals_obj\signals_item\signals_grenade.dm"
#include "code\__DEFINES\dcs\signals\signals_obj\signals_item\signals_implant.dm"
+#include "code\__DEFINES\dcs\signals\signals_obj\signals_item\signals_itemattack.dm"
#include "code\__DEFINES\dcs\signals\signals_obj\signals_item\signals_item.dm"
#include "code\__DEFINES\dcs\signals\signals_obj\signals_item\signals_organs.dm"
#include "code\__DEFINES\dcs\signals\signals_obj\signals_machine\signals_airlock.dm"
@@ -306,6 +309,7 @@
#include "code\_globalvars\regexes.dm"
#include "code\_globalvars\religion.dm"
#include "code\_globalvars\soul_glimmer.dm"
+#include "code\_globalvars\time_vars.dm"
#include "code\_globalvars\traits.dm"
#include "code\_globalvars\turf.dm"
#include "code\_globalvars\xenoartifact.dm"
@@ -484,6 +488,7 @@
#include "code\controllers\subsystem\processing\ai_behaviors.dm"
#include "code\controllers\subsystem\processing\ai_controllers.dm"
#include "code\controllers\subsystem\processing\clock_component.dm"
+#include "code\controllers\subsystem\processing\digital_clock.dm"
#include "code\controllers\subsystem\processing\fastprocess.dm"
#include "code\controllers\subsystem\processing\fields.dm"
#include "code\controllers\subsystem\processing\fluids.dm"
@@ -889,6 +894,7 @@
#include "code\datums\mood_events\drink_events.dm"
#include "code\datums\mood_events\drug_events.dm"
#include "code\datums\mood_events\generic_negative_events.dm"
+#include "code\datums\mood_events\generic_neutral_events.dm"
#include "code\datums\mood_events\generic_positive_events.dm"
#include "code\datums\mood_events\mood_event.dm"
#include "code\datums\mood_events\needs_events.dm"
@@ -1070,6 +1076,7 @@
#include "code\game\machinery\cryopod.dm"
#include "code\game\machinery\dance_machine.dm"
#include "code\game\machinery\defibrillator_mount.dm"
+#include "code\game\machinery\digital_clock.dm"
#include "code\game\machinery\dish_drive.dm"
#include "code\game\machinery\dna_scanner.dm"
#include "code\game\machinery\doppler_array.dm"
@@ -1709,8 +1716,8 @@
#include "code\game\turfs\open\space\transit.dm"
#include "code\modules\actionspeed\_actionspeed_modifier.dm"
#include "code\modules\actionspeed\modifiers\base.dm"
-#include "code\modules\actionspeed\modifiers\mood.dm"
#include "code\modules\actionspeed\modifiers\race.dm"
+#include "code\modules\actionspeed\modifiers\hunger.dm"
#include "code\modules\actionspeed\modifiers\status_effects.dm"
#include "code\modules\admin\admin.dm"
#include "code\modules\admin\admin_fax_panel.dm"
@@ -3681,9 +3688,16 @@
#include "code\modules\recycling\disposal\pipe.dm"
#include "code\modules\recycling\disposal\pipe_sorting.dm"
#include "code\modules\relay\relay.dm"
-#include "code\modules\religion\religion_sects.dm"
-#include "code\modules\religion\religion_structures.dm"
-#include "code\modules\religion\rites.dm"
+#include "code\modules\religion\_religion_sects.dm"
+#include "code\modules\religion\_religion_structures.dm"
+#include "code\modules\religion\_rites.dm"
+#include "code\modules\religion\sects\candle_sect.dm"
+#include "code\modules\religion\sects\carp_sect.dm"
+#include "code\modules\religion\sects\necro_sect.dm"
+#include "code\modules\religion\sects\plant_sect.dm"
+#include "code\modules\religion\sects\puritan_sect.dm"
+#include "code\modules\religion\sects\shadow_sect.dm"
+#include "code\modules\religion\sects\techno_sect.dm"
#include "code\modules\requests\request.dm"
#include "code\modules\requests\request_manager.dm"
#include "code\modules\research\designs.dm"
diff --git a/code/__DEFINES/actionspeed_modification.dm b/code/__DEFINES/actionspeed_modification.dm
index 40fbd3fe26dcc..7354ac44a3eb7 100644
--- a/code/__DEFINES/actionspeed_modification.dm
+++ b/code/__DEFINES/actionspeed_modification.dm
@@ -1,2 +1,2 @@
//ids
-#define ACTIONSPEED_ID_SANITY "sanity_component"
+#define ACTIONSPEED_ID_SATIETY "nutrition"
diff --git a/code/__DEFINES/atmospherics.dm b/code/__DEFINES/atmospherics.dm
index a2f42354530be..033b608bfe17e 100644
--- a/code/__DEFINES/atmospherics.dm
+++ b/code/__DEFINES/atmospherics.dm
@@ -62,22 +62,32 @@
#define STOP_REACTIONS 2
// Pressure limits.
-#define HAZARD_HIGH_PRESSURE 550 //! This determines at what pressure the ultra-high pressure red icon is displayed. (This one is set as a constant)
-#define WARNING_HIGH_PRESSURE 325 //! This determines when the orange pressure icon is displayed (it is 0.7 * HAZARD_HIGH_PRESSURE)
-#define WARNING_LOW_PRESSURE 50 //! This is when the gray low pressure icon is displayed. (it is 2.5 * HAZARD_LOW_PRESSURE)
-#define HAZARD_LOW_PRESSURE 20 //! This is when the black ultra-low pressure icon is displayed. (This one is set as a constant)
-
-#define TEMPERATURE_DAMAGE_COEFFICIENT 1.5 //! This is used in handle_temperature_damage() for humans, and in reagents that affect body temperature. Temperature damage is multiplied by this amount.
-
-#define BODYTEMP_NORMAL 310.15 //! The natural temperature for a body
-#define BODYTEMP_AUTORECOVERY_DIVISOR 11 //! This is the divisor which handles how much of the temperature difference between the current body temperature and 310.15K (optimal temperature) humans auto-regenerate each tick. The higher the number, the slower the recovery. This is applied each tick, so long as the mob is alive.
-#define BODYTEMP_AUTORECOVERY_MINIMUM 12 //! Minimum amount of kelvin moved toward 310K per tick. So long as abs(310.15 - bodytemp) is more than 50.
+/// This determins at what pressure the ultra-high pressure red icon is displayed. (This one is set as a constant)
+#define HAZARD_HIGH_PRESSURE 550
+/// This determins when the orange pressure icon is displayed (it is 0.7 * HAZARD_HIGH_PRESSURE)
+#define WARNING_HIGH_PRESSURE 325
+/// This is when the gray low pressure icon is displayed. (it is 2.5 * HAZARD_LOW_PRESSURE)
+#define WARNING_LOW_PRESSURE 50
+/// This is when the black ultra-low pressure icon is displayed. (This one is set as a constant)
+#define HAZARD_LOW_PRESSURE 20
+
+/// This is used in handle_temperature_damage() for humans, and in reagents that affect body temperature. Temperature damage is multiplied by this amount.
+#define TEMPERATURE_DAMAGE_COEFFICIENT 1.5
+
+/// The natural temperature for a body
+#define BODYTEMP_NORMAL 310.15
+/// This is the divisor which handles how much of the temperature difference between the current body temperature and 310.15K (optimal temperature) humans auto-regenerate each tick. The higher the number, the slower the recovery. This is applied each tick, so long as the mob is alive.
+#define BODYTEMP_AUTORECOVERY_DIVISOR 14
+/// Minimum amount of kelvin moved toward 310K per tick. So long as abs(310.15 - bodytemp) is more than 50.
+#define BODYTEMP_AUTORECOVERY_MINIMUM 6
///Similar to the BODYTEMP_AUTORECOVERY_DIVISOR, but this is the divisor which is applied at the stage that follows autorecovery. This is the divisor which comes into play when the human's loc temperature is lower than their body temperature. Make it lower to lose bodytemp faster.
#define BODYTEMP_COLD_DIVISOR 15
/// Similar to the BODYTEMP_AUTORECOVERY_DIVISOR, but this is the divisor which is applied at the stage that follows autorecovery. This is the divisor which comes into play when the human's loc temperature is higher than their body temperature. Make it lower to gain bodytemp faster.
#define BODYTEMP_HEAT_DIVISOR 15
-#define BODYTEMP_COOLING_MAX -100 //! The maximum number of degrees that your body can cool in 1 tick, due to the environment, when in a cold area.
-#define BODYTEMP_HEATING_MAX 30 //! The maximum number of degrees that your body can heat up in 1 tick, due to the environment, when in a hot area.
+/// The maximum number of degrees that your body can cool in 1 tick, due to the environment, when in a cold area.
+#define BODYTEMP_COOLING_MAX -30
+/// The maximum number of degrees that your body can heat up in 1 tick, due to the environment, when in a hot area.
+#define BODYTEMP_HEATING_MAX 30
/// The body temperature limit the human body can take before it starts taking damage from heat.
/// This also affects how fast the body normalises it's temperature when hot.
@@ -87,7 +97,22 @@
/// This also affects how fast the body normalises it's temperature when cold.
/// 270k is about -3c, that is below freezing and would hurt over time.
#define BODYTEMP_COLD_DAMAGE_LIMIT (BODYTEMP_NORMAL - 40)
-
+/// The body temperature limit the human body can take before it will take wound damage.
+#define BODYTEMP_HEAT_WOUND_LIMIT (BODYTEMP_NORMAL + 90) // 400.5 k
+
+// Body temperature warning icons
+/// The temperature the red icon is displayed.
+#define BODYTEMP_HEAT_WARNING_3 (BODYTEMP_HEAT_DAMAGE_LIMIT + 360) //+700k
+/// The temperature the orange icon is displayed.
+#define BODYTEMP_HEAT_WARNING_2 (BODYTEMP_HEAT_DAMAGE_LIMIT + 120) //460K
+/// The temperature the yellow icon is displayed.
+#define BODYTEMP_HEAT_WARNING_1 (BODYTEMP_HEAT_DAMAGE_LIMIT) //340K
+/// The temperature the light green icon is displayed.
+#define BODYTEMP_COLD_WARNING_1 (BODYTEMP_COLD_DAMAGE_LIMIT) //270k
+/// The temperature the cyan icon is displayed.
+#define BODYTEMP_COLD_WARNING_2 (BODYTEMP_COLD_DAMAGE_LIMIT - 70) //200k
+/// The temperature the blue icon is displayed.
+#define BODYTEMP_COLD_WARNING_3 (BODYTEMP_COLD_DAMAGE_LIMIT - 150) //120k
#define SPACE_HELM_MIN_TEMP_PROTECT 2.0 //! what min_cold_protection_temperature is set to for space-helmet quality headwear. MUST NOT BE 0.
#define SPACE_HELM_MAX_TEMP_PROTECT 1500 //! Thermal insulation works both ways /Malkevin
diff --git a/code/__DEFINES/bodyparts.dm b/code/__DEFINES/bodyparts.dm
index a17da968ca9af..149dbfd74c225 100644
--- a/code/__DEFINES/bodyparts.dm
+++ b/code/__DEFINES/bodyparts.dm
@@ -1,4 +1,5 @@
-#define IS_ORGANIC_LIMB(A) (A.bodytype & BODYTYPE_ORGANIC)
+#define IS_ORGANIC_LIMB(A) (A && (A.bodytype & BODYTYPE_ORGANIC))
+#define IS_ROBOTIC_LIMB(A) (A && (A.bodytype & BODYTYPE_ROBOTIC))
#define BODYZONE_STYLE_DEFAULT 0
#define BODYZONE_STYLE_MEDICAL 1
diff --git a/code/__DEFINES/cooldowns.dm b/code/__DEFINES/cooldowns.dm
index 6db88cc37d951..b4f215fb28b8d 100644
--- a/code/__DEFINES/cooldowns.dm
+++ b/code/__DEFINES/cooldowns.dm
@@ -28,6 +28,7 @@
//INDEXES
#define COOLDOWN_BORG_SELF_REPAIR "borg_self_repair"
#define COOLDOWN_LARRYKNIFE "larry_knife"
+#define COOLDOWN_CLOCK_WMCHIMES "clock_westminister"
//circuit cooldowns
diff --git a/code/__DEFINES/dcs/signals/signals_atom.dm b/code/__DEFINES/dcs/signals/signals_atom/signals_atom.dm
similarity index 87%
rename from code/__DEFINES/dcs/signals/signals_atom.dm
rename to code/__DEFINES/dcs/signals/signals_atom/signals_atom.dm
index 18c0e97b8ed38..74d1457ccd7ce 100644
--- a/code/__DEFINES/dcs/signals/signals_atom.dm
+++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom.dm
@@ -5,12 +5,6 @@
// /atom signals
///from base of atom/proc/Initialize(mapload): sent any time a new atom is created
#define COMSIG_ATOM_CREATED "atom_created"
-///! from base of atom/attackby(): (/obj/item, /mob/living, params)
-#define COMSIG_PARENT_ATTACKBY "atom_attackby"
- ///! Return this in response if you don't want afterattack to be called
- #define COMPONENT_NO_AFTERATTACK 1
-///! from base of atom/attack_hulk(): (/mob/living/carbon/human)
-#define COMSIG_ATOM_HULK_ATTACK "hulk_attack"
/// from base of atom/examine(): (/mob, list/examine_text)
#define COMSIG_PARENT_EXAMINE "atom_examine"
/// from base of atom/get_examine_name(): (/mob, list/overrides)
@@ -20,8 +14,6 @@
#define EXAMINE_POSITION_BEFORE (1<<1)
//End positions
#define COMPONENT_EXNAME_CHANGED (1<<0)
-//from base of atom/attack_basic_mob(): (/mob/user)
-#define COMSIG_ATOM_ATTACK_BASIC_MOB "attack_basic_mob"
/// from base of [/atom/proc/update_appearance]: (updates)
#define COMSIG_ATOM_UPDATE_APPEARANCE "atom_update_appearance"
@@ -133,24 +125,6 @@
/// called when an atom stops orbiting another atom: (atom)
#define COMSIG_ATOM_ORBIT_STOP "atom_orbit_stop"
-/////////////////
-/* Attack signals. They should share the returned flags, to standardize the attack chain. */
-/// tool_act -> pre_attack -> target.attackby (item.attack) -> afterattack
- ///Ends the attack chain. If sent early might cause posterior attacks not to happen.
- #define COMPONENT_CANCEL_ATTACK_CHAIN (1<<0)
- ///Skips the specific attack step, continuing for the next one to happen.
- #define COMPONENT_SKIP_ATTACK (1<<1)
-
-///! from base of atom/attack_ghost(): (mob/dead/observer/ghost)
-#define COMSIG_ATOM_ATTACK_GHOST "atom_attack_ghost"
-///! from base of atom/attack_hand(): (mob/user)
-#define COMSIG_ATOM_ATTACK_HAND "atom_attack_hand"
-///! from base of atom/attack_paw(): (mob/user)
-#define COMSIG_ATOM_ATTACK_PAW "atom_attack_paw"
- //works on all 3.
- #define COMPONENT_NO_ATTACK_HAND 1
-///! from base of atom/animal_attack(): (/mob/user)
-#define COMSIG_ATOM_ATTACK_ANIMAL "attack_animal"
///This signal return value bitflags can be found in __DEFINES/misc.dm
///called for each movable in a turf contents on /turf/attempt_z_impact(): (atom/movable/A, levels)
#define COMSIG_ATOM_INTERCEPT_Z_FALL "movable_intercept_z_impact"
diff --git a/code/__DEFINES/dcs/signals/signals_atom/signals_atom_attack.dm b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_attack.dm
new file mode 100644
index 0000000000000..91094391ed1d1
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_atom/signals_atom_attack.dm
@@ -0,0 +1,27 @@
+// Atom attack signals. Format:
+// When the signal is called: (signal arguments)
+// All signals send the source datum of the signal as the first argument
+
+///from base of atom/attackby(): (/obj/item, /mob/living, params)
+#define COMSIG_PARENT_ATTACKBY "atom_attackby"
+///Return this in response if you don't want afterattack to be called
+ #define COMPONENT_NO_AFTERATTACK (1<<0)
+///from base of atom/attack_hulk(): (/mob/living/carbon/human)
+#define COMSIG_ATOM_HULK_ATTACK "hulk_attack"
+///from base of atom/animal_attack(): (/mob/user)
+#define COMSIG_ATOM_ATTACK_ANIMAL "attack_animal"
+//from base of atom/attack_basic_mob(): (/mob/user)
+#define COMSIG_ATOM_ATTACK_BASIC_MOB "attack_basic_mob"
+
+/* Attack signals. They should share the returned flags, to standardize the attack chain. */
+/// tool_act -> pre_attack -> target.attackby (item.attack) -> afterattack
+ ///Ends the attack chain. If sent early might cause posterior attacks not to happen.
+ #define COMPONENT_CANCEL_ATTACK_CHAIN (1<<0)
+ ///Skips the specific attack step, continuing for the next one to happen.
+ #define COMPONENT_SKIP_ATTACK (1<<1)
+///from base of atom/attack_ghost(): (mob/dead/observer/ghost)
+#define COMSIG_ATOM_ATTACK_GHOST "atom_attack_ghost"
+///from base of atom/attack_hand(): (mob/user)
+#define COMSIG_ATOM_ATTACK_HAND "atom_attack_hand"
+///from base of atom/attack_paw(): (mob/user)
+#define COMSIG_ATOM_ATTACK_PAW "atom_attack_paw"
diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_human.dm b/code/__DEFINES/dcs/signals/signals_mob/signals_human.dm
index 4d951dcbfe563..9c57150679f92 100644
--- a/code/__DEFINES/dcs/signals/signals_mob/signals_human.dm
+++ b/code/__DEFINES/dcs/signals/signals_mob/signals_human.dm
@@ -3,8 +3,6 @@
// All signals send the source datum of the signal as the first argument
// /mob/living/carbon/human signals
-#define COMSIG_HUMAN_MELEE_UNARMED_ATTACK "human_melee_unarmed_attack" //! from mob/living/carbon/human/UnarmedAttack(): (atom/target)
-#define COMSIG_HUMAN_MELEE_UNARMED_ATTACKBY "human_melee_unarmed_attackby" //! from mob/living/carbon/human/UnarmedAttack(): (mob/living/carbon/human/attacker)
#define COMSIG_HUMAN_DISARM_HIT "human_disarm_hit" //! Hit by successful disarm attack (mob/living/carbon/human/attacker,zone_targeted)
#define COMSIG_HUMAN_ATTACKED "carbon_attacked" //hit by something that checks shields.
diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mob.dm b/code/__DEFINES/dcs/signals/signals_mob/signals_mob.dm
index aa45c9cd1ce71..0ef03a089e156 100644
--- a/code/__DEFINES/dcs/signals/signals_mob/signals_mob.dm
+++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mob.dm
@@ -34,17 +34,11 @@
#define COMSIG_MOB_RECEIVE_ARTIFACT "mob_receive_artifact" //
#define COMPONENT_BLOCK_ARTIFACT 1
#define COMSIG_MOB_HUD_CREATED "mob_hud_created" //! from base of mob/create_mob_hud(): ()
-#define COMSIG_MOB_ATTACK_HAND "mob_attack_hand" //! from base of
#define COMSIG_MOB_ATTACK_HAND_TURF "mob_attack_hand_turf" //! from base of turf/attack_hand
#define COMSIG_MOB_HAND_ATTACKED "mob_hand_attacked" //! from base of
-#define COMSIG_MOB_ITEM_ATTACK "mob_item_attack" //! from base of /obj/item/attack(): (mob/M, mob/user)
- #define COMPONENT_ITEM_NO_ATTACK 1
-#define COMSIG_MOB_ITEM_ATTACKBY "mob_item_attackby" //! from base of /obj/item/attack(): (mob/user, src)
#define COMSIG_MOB_EQUIPPED_ITEM "mob_equipped_item" //! from base of /item/equipped(): (/mob/user, /obj/item, slot)
#define COMSIG_MOB_DROPPED_ITEM "mob_dropped_item" //! from base of /item/dropped(): (/mob/user, /obj/item, loc)
#define COMSIG_MOB_APPLY_DAMGE "mob_apply_damage" //! from base of /mob/living/proc/apply_damage(): (damage, damagetype, def_zone)
-#define COMSIG_MOB_ITEM_AFTERATTACK "mob_item_afterattack" //! from base of obj/item/afterattack(): (atom/target, mob/user, proximity_flag, click_parameters)
-#define COMSIG_MOB_ATTACK_RANGED "mob_attack_ranged" //! from base of mob/RangedAttack(): (atom/A, params)
#define COMSIG_MOB_THROW "mob_throw" //! from base of /mob/throw_item(): (atom/target)
#define COMSIG_MOB_UPDATE_SIGHT "mob_update_sight" //! from base of /mob/update_sight(): ()
#define COMSIG_MOB_EXAMINATE "mob_examinate" //from base of /mob/verb/examinate(): (atom/target)
diff --git a/code/__DEFINES/dcs/signals/signals_mob/signals_mobattack.dm b/code/__DEFINES/dcs/signals/signals_mob/signals_mobattack.dm
new file mode 100644
index 0000000000000..3748b57a5271d
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_mob/signals_mobattack.dm
@@ -0,0 +1,20 @@
+// Format:
+// When the signal is called: (signal arguments)
+// All signals send the source datum of the signal as the first argument
+
+/* Attack signals. They should share the returned flags, to standardize the attack chain. */
+
+///from base of atom/attack_hand(): (mob/user)
+#define COMSIG_MOB_ATTACK_HAND "mob_attack_hand"
+///from base of /obj/item/attack(): (mob/M, mob/user)
+#define COMSIG_MOB_ITEM_ATTACK "mob_item_attack"
+///from base of obj/item/afterattack(): (atom/target, mob/user, proximity_flag, click_parameters)
+#define COMSIG_MOB_ITEM_AFTERATTACK "mob_item_afterattack"
+///from base of obj/item/attack_qdeleted(): (atom/target, mob/user, proxiumity_flag, click_parameters)
+#define COMSIG_MOB_ITEM_ATTACK_QDELETED "mob_item_attack_qdeleted"
+///from base of mob/RangedAttack(): (atom/A, params)
+#define COMSIG_MOB_ATTACK_RANGED "mob_attack_ranged"
+///from mob/living/carbon/human/UnarmedAttack(): (atom/target, proximity)
+#define COMSIG_HUMAN_EARLY_UNARMED_ATTACK "human_early_unarmed_attack"
+///from mob/living/carbon/human/UnarmedAttack(): (atom/target, proximity)
+#define COMSIG_HUMAN_MELEE_UNARMED_ATTACK "human_melee_unarmed_attack"
diff --git a/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_clothing.dm b/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_clothing.dm
index 9e654a2b7da0e..06e9484c867ca 100644
--- a/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_clothing.dm
+++ b/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_clothing.dm
@@ -3,4 +3,6 @@
// All signals send the source datum of the signal as the first argument
// /obj/item/clothing signals
-#define COMSIG_SHOES_STEP_ACTION "shoes_step_action" //! from base of obj/item/clothing/shoes/proc/step_action(): ()
+
+///from [/mob/living/carbon/human/Move]: ()
+#define COMSIG_SHOES_STEP_ACTION "shoes_step_action"
diff --git a/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_item.dm b/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_item.dm
index fbed54f2b0d97..2f74eb1b263fa 100644
--- a/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_item.dm
+++ b/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_item.dm
@@ -3,14 +3,6 @@
// All signals send the source datum of the signal as the first argument
// /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)
- #define COMPONENT_NO_INTERACT 1
-#define COMSIG_ITEM_ATTACK_OBJ "item_attack_obj" //! from base of obj/item/attack_obj(): (/obj, /mob)
- #define COMPONENT_NO_ATTACK_OBJ 1
-#define COMSIG_ITEM_PRE_ATTACK "item_pre_attack" //! from base of obj/item/pre_attack(): (atom/target, mob/user, params)
- #define COMPONENT_NO_ATTACK 1
-#define COMSIG_ITEM_AFTERATTACK "item_afterattack" //! from base of obj/item/afterattack(): (atom/target, mob/user, proximity_flag, params)
///from base of obj/item/equipped(): (/mob/equipper, slot)
#define COMSIG_ITEM_EQUIPPED "item_equip"
///from base of obj/item/on_grind(): ())
diff --git a/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_itemattack.dm b/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_itemattack.dm
new file mode 100644
index 0000000000000..dc127a0a0714f
--- /dev/null
+++ b/code/__DEFINES/dcs/signals/signals_obj/signals_item/signals_itemattack.dm
@@ -0,0 +1,19 @@
+// Format:
+// When the signal is called: (signal arguments)
+// All signals send the source datum of the signal as the first argument
+
+/* Attack signals. They should share the returned flags, to standardize the attack chain. */
+///from base of obj/item/attack(): (/mob/living/target, /mob/living/user)
+#define COMSIG_ITEM_ATTACK "item_attack"
+
+#define COMSIG_MOB_ITEM_ATTACKBY "item_attackby"
+///from base of obj/item/attack_self(): (/mob)
+#define COMSIG_ITEM_ATTACK_SELF "item_attack_self"
+///from base of obj/item/attack_obj(): (/obj, /mob)
+#define COMSIG_ITEM_ATTACK_OBJ "item_attack_obj"
+///from base of obj/item/pre_attack(): (atom/target, mob/user, params)
+#define COMSIG_ITEM_PRE_ATTACK "item_pre_attack"
+///from base of obj/item/afterattack(): (atom/target, mob/user, params)
+#define COMSIG_ITEM_AFTERATTACK "item_afterattack"
+///from base of obj/item/attack_qdeleted(): (atom/target, mob/user, params)
+#define COMSIG_ITEM_ATTACK_QDELETED "item_attack_qdeleted"
diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm
index c6262b0f6dbcf..1f660c1218ef2 100644
--- a/code/__DEFINES/is_helpers.dm
+++ b/code/__DEFINES/is_helpers.dm
@@ -207,7 +207,7 @@ GLOBAL_LIST_INIT(turfs_without_ground, typecacheof(list(
#define ismecha(A) (istype(A, /obj/mecha))
-#define ismopable(A) (A.layer <= HIGH_SIGIL_LAYER) //If something can be cleaned by floor-cleaning devices such as mops or clean bots
+#define ismopable(A) (A && (A.layer <= HIGH_SIGIL_LAYER)) //If something can be cleaned by floor-cleaning devices such as mops or clean bots
#define isorgan(A) (istype(A, /obj/item/organ))
diff --git a/code/__DEFINES/jobs.dm b/code/__DEFINES/jobs.dm
index e17898c697df3..7cacff57a2a97 100644
--- a/code/__DEFINES/jobs.dm
+++ b/code/__DEFINES/jobs.dm
@@ -1,56 +1,3 @@
-
-#define ENGSEC (1<<0)
-
-#define CAPTAIN (1<<0)
-#define HOS (1<<1)
-#define WARDEN (1<<2)
-#define DETECTIVE (1<<3)
-#define OFFICER (1<<4)
-#define CHIEF (1<<5)
-#define ENGINEER (1<<6)
-#define ATMOSTECH (1<<7)
-#define ROBOTICIST (1<<8)
-#define AI_JF (1<<9)
-#define CYBORG (1<<10)
-#define BRIG_PHYS (1<<11)
-#define DEPUTY (1<<12)
-
-
-#define MEDSCI (1<<1)
-
-#define RD_JF (1<<0)
-#define SCIENTIST (1<<1)
-#define EXPLORATION_CREW (1<<2)
-#define CHEMIST (1<<3)
-#define CMO_JF (1<<4)
-#define DOCTOR (1<<5)
-#define GENETICIST (1<<6)
-#define VIROLOGIST (1<<7)
-#define PARAMEDIC (1<<8)
-
-
-#define CIVILIAN (1<<2)
-
-#define HOP (1<<0)
-#define BARTENDER (1<<1)
-#define BOTANIST (1<<2)
-#define COOK (1<<3)
-#define JANITOR (1<<4)
-#define CURATOR (1<<5)
-#define QUARTERMASTER (1<<6)
-#define CARGOTECH (1<<7)
-#define MINER (1<<8)
-#define LAWYER (1<<9)
-#define CHAPLAIN (1<<10)
-#define CLOWN (1<<11)
-#define MIME (1<<12)
-#define ASSISTANT (1<<13)
-#define GIMMICK (1<<14)
-#define BARBER (1<<15)
-#define MAGICIAN (1<<16)
-#define PSYCHIATRIST (1<<17)
-#define CELEBRITY (1<<18)
-
#define JOB_AVAILABLE 0
#define JOB_UNAVAILABLE_GENERIC 1
#define JOB_UNAVAILABLE_BANNED 2
diff --git a/code/__DEFINES/movespeed_modification.dm b/code/__DEFINES/movespeed_modification.dm
index 4e2b67c790696..0bd415d1b3466 100644
--- a/code/__DEFINES/movespeed_modification.dm
+++ b/code/__DEFINES/movespeed_modification.dm
@@ -6,10 +6,44 @@
#define MOVE_CONFLICT_JETPACK "JETPACK"
//ids
-#define MOVESPEED_ID_SANITY "sanity_component"
+#define MOVESPEED_ID_VISIBLE_HUNGER "VISIBLE_HUNGER"
#define MOVESPEED_ID_MOB_GRAB_STATE "mob_grab_state"
#define MOVESPEED_ID_MOB_WALK_RUN "mob_walk_run"
+#define MOVESPEED_ID_SLIME_STATUS "SLIME_STATUS"
+
+#define MOVESPEED_ID_LIVING_TURF_SPEEDMOD "LIVING_TURF_SPEEDMOD"
+#define MOVESPEED_ID_LIVING_LIMBLESS "LIVING_LIMBLESS"
+
+#define MOVESPEED_ID_CARBON_SOFTCRIT "CARBON_SOFTCRIT"
+#define MOVESPEED_ID_CARBON_OLDSPEED "CARBON_DEPRECATED_SPEED"
+#define MOVESPEED_ID_CARBON_CRAWLING "CARBON_CRAWLING"
+
+#define MOVESPEED_ID_DNA_VAULT "DNA_VAULT"
+
+#define MOVESPEED_ID_YELLOW_ORB "YELLOW_ORB"
+
+#define MOVESPEED_ID_TARFOOT "TARFOOT"
+
+#define MOVESPEED_ID_SEPIA "SEPIA"
+#define MOVESPEED_ID_SLIME_SEPIA "SLIME_SEPIA" // slime transforming sepia crossbreed
+
+#define MOVESPEED_ID_MONKEY_REAGENT_SPEEDMOD "MONKEY_REAGENT_SPEEDMOD"
+#define MOVESPEED_ID_MONKEY_TEMPERATURE_SPEEDMOD "MONKEY_TEMPERATURE_SPEEDMOD"
+#define MOVESPEED_ID_MONKEY_HEALTH_SPEEDMOD "MONKEY_HEALTH_SPEEDMOD"
+
+#define MOVESPEED_ID_CHANGELING_MUSCLES "CHANGELING_MUSCLES"
+
+#define MOVESPEED_ID_BASIC_MOB_VARSPEED "BASIC_MOB_VARSPEED_MODIFIER"
+#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"
+
+#define MOVESPEED_ID_PHOBIA "TRAUMA_PHOBIA"
+
+#define MOVESPEED_ID_SPECIES "SPECIES_SPEED_MOD"
+#define MOVESPEED_ID_SNAIL_CRAWL "SNAIL_CRAWL_SPEED_MOD"
#define MOVESPEED_ID_CYBER_THRUSTER "CYBER_IMPLANT_THRUSTER"
#define MOVESPEED_ID_JETPACK "JETPACK"
diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm
index 71a3f315fac28..17fd243d2adf0 100644
--- a/code/__HELPERS/mobs.dm
+++ b/code/__HELPERS/mobs.dm
@@ -716,6 +716,20 @@ GLOBAL_DATUM_INIT(dview_mob, /mob/dview, new)
. = pick(ais)
return .
+/**
+ * Used to get the amount of change between two body temperatures
+ *
+ * When passed the difference between two temperatures returns the amount of change to temperature to apply.
+ * The change rate should be kept at a low value tween 0.16 and 0.02 for optimal results.
+ * vars:
+ * * temp_diff (required) The differance between two temperatures
+ * * change_rate (optional)(Default: 0.06) The rate of range multiplyer
+ */
+/proc/get_temp_change_amount(temp_diff, change_rate = 0.06)
+ if(temp_diff < 0)
+ return (log((temp_diff * -1) * change_rate + 1) * BODYTEMP_AUTORECOVERY_DIVISOR) * -1
+ return log(temp_diff * change_rate + 1) * BODYTEMP_AUTORECOVERY_DIVISOR
+
//// Generalised helper proc for letting mobs rename themselves. Used to be clname() and ainame()
/mob/proc/apply_pref_name(preference_type, client/C)
if(!C)
diff --git a/code/__HELPERS/time.dm b/code/__HELPERS/time.dm
index 787e0f705c702..012085514f552 100644
--- a/code/__HELPERS/time.dm
+++ b/code/__HELPERS/time.dm
@@ -11,7 +11,7 @@
/proc/gameTimestamp(format = "hh:mm:ss", wtime=null)
if(!wtime)
wtime = world.time
- return time2text(wtime, format, 0)
+ return time2text(wtime - GLOB.timezoneOffset, format)
/// Returns the station time in deciseconds
/proc/station_time(display_only = FALSE, wtime=world.time)
@@ -19,7 +19,7 @@
/// Returns the station time in hh:mm:ss
/proc/station_time_timestamp(format = "hh:mm:ss", wtime)
- return time2text(station_time(TRUE, wtime), format, 0)
+ return time2text(station_time(TRUE, wtime), format)
/proc/station_time_debug(force_set)
if(isnum_safe(force_set))
diff --git a/code/_globalvars/time_vars.dm b/code/_globalvars/time_vars.dm
new file mode 100644
index 0000000000000..cc830721145c0
--- /dev/null
+++ b/code/_globalvars/time_vars.dm
@@ -0,0 +1,6 @@
+
+/// The difference betwen midnight (of the host computer) and 0 world.ticks.
+GLOBAL_VAR_INIT(timezoneOffset, 0)
+
+GLOBAL_VAR_INIT(year, time2text(world.realtime,"YYYY"))
+GLOBAL_VAR_INIT(year_integer, text2num(year)) // = 2013???
diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm
index 37ea04ee9d918..a13f706c0df79 100644
--- a/code/_onclick/click.dm
+++ b/code/_onclick/click.dm
@@ -29,15 +29,15 @@
adj += S.nextmove_adjust()
next_move = world.time + ((num + adj)*mod)
-/*
- Before anything else, defer these calls to a per-mobtype handler. This allows us to
- remove istype() spaghetti code, but requires the addition of other handler procs to simplify it.
-
- Alternately, you could hardcode every mob's variation in a flat ClickOn() proc; however,
- that's a lot of code duplication and is hard to maintain.
-
- Note that this proc can be overridden, and is in the case of screen objects.
-*/
+/**
+ * Before anything else, defer these calls to a per-mobtype handler. This allows us to
+ * remove istype() spaghetti code, but requires the addition of other handler procs to simplify it.
+ *
+ * Alternately, you could hardcode every mob's variation in a flat [/mob/proc/ClickOn] proc; however,
+ * that's a lot of code duplication and is hard to maintain.
+ *
+ * Note that this proc can be overridden, and is in the case of screen objects.
+ */
/atom/Click(location,control,params)
if(flags_1 & INITIALIZED_1)
SEND_SIGNAL(src, COMSIG_CLICK, location, control, params, usr)
@@ -51,19 +51,19 @@
if(flags_1 & INITIALIZED_1)
usr.MouseWheelOn(src, delta_x, delta_y, params)
-/*
- Standard mob ClickOn()
- Handles exceptions: Buildmode, middle click, modified clicks, mech actions
-
- After that, mostly just check your state, check whether you're holding an item,
- check whether you're adjacent to the target, then pass off the click to whoever
- is receiving it.
- The most common are:
- * mob/UnarmedAttack(atom,adjacent) - used here only when adjacent, with no item in hand; in the case of humans, checks gloves
- * atom/attackby(item,user) - used only when adjacent
- * item/afterattack(atom,user,adjacent,params) - used both ranged and adjacent
- * mob/RangedAttack(atom,params) - used only ranged, only used for tk and laser eyes but could be changed
-*/
+/**
+ * Standard mob ClickOn()
+ * Handles exceptions: Buildmode, middle click, modified clicks, mech actions
+ *
+ * After that, mostly just check your state, check whether you're holding an item,
+ * check whether you're adjacent to the target, then pass off the click to whoever
+ * is receiving it.
+ * The most common are:
+ * * [mob/proc/UnarmedAttack] (atom,adjacent) - used here only when adjacent, with no item in hand; in the case of humans, checks gloves
+ * * [atom/proc/attackby] (item,user) - used only when adjacent
+ * * [obj/item/proc/afterattack] (atom,user,adjacent,params) - used both ranged and adjacent
+ * * [mob/proc/RangedAttack] (atom,params) - used only ranged, only used for tk and laser eyes but could be changed
+ */
/mob/proc/ClickOn( atom/A, params )
if(world.time <= next_click)
return
@@ -161,7 +161,7 @@
else
RangedAttack(A,params)
-//Is the atom obscured by a PREVENT_CLICK_UNDER_1 object above it
+/// Is the atom obscured by a PREVENT_CLICK_UNDER_1 object above it
/atom/proc/IsObscured()
SHOULD_BE_PURE(TRUE)
if(!isturf(loc)) //This only makes sense for things directly on turfs for now
@@ -180,9 +180,11 @@
return TRUE
return FALSE
+/**
+ * A backwards depth-limited breadth-first-search to see if the target is
+ * logically "in" anything adjacent to us.
+ */
/atom/movable/proc/CanReach(atom/ultimate_target, obj/item/tool, view_only = FALSE)
- // A backwards depth-limited breadth-first-search to see if the target is
- // logically "in" anything adjacent to us.
var/list/direct_access = DirectAccess()
var/depth = 1 + (view_only ? STORAGE_VIEW_DEPTH : INVENTORY_DEPTH)
@@ -247,60 +249,61 @@
return
qdel(dummy)
-// Default behavior: ignore double clicks (the second click that makes the doubleclick call already calls for a normal click)
+/// Default behavior: ignore double clicks (the second click that makes the doubleclick call already calls for a normal click)
/mob/proc/DblClickOn(atom/A, params)
return
-/*
- Translates into attack_hand, etc.
-
- Note: proximity_flag here is used to distinguish between normal usage (flag=1),
- and usage when clicking on things telekinetically (flag=0). This proc will
- not be called at ranged except with telekinesis.
-
- proximity_flag is not currently passed to attack_hand, and is instead used
- in human click code to allow glove touches only at melee range.
-*/
+/**
+ * Translates into [atom/proc/attack_hand], etc.
+ *
+ * Note: proximity_flag here is used to distinguish between normal usage (flag=1),
+ * and usage when clicking on things telekinetically (flag=0). This proc will
+ * not be called at ranged except with telekinesis.
+ *
+ * proximity_flag is not currently passed to attack_hand, and is instead used
+ * in human click code to allow glove touches only at melee range.
+ */
/mob/proc/UnarmedAttack(atom/A, proximity_flag)
if(ismob(A))
changeNext_move(CLICK_CD_MELEE)
return
-/*
- Ranged unarmed attack:
-
- This currently is just a default for all mobs, involving
- laser eyes and telekinesis. You could easily add exceptions
- for things like ranged glove touches, spitting alien acid/neurotoxin,
- animals lunging, etc.
-*/
+/**
+ * Ranged unarmed attack:
+ *
+ * This currently is just a default for all mobs, involving
+ * laser eyes and telekinesis. You could easily add exceptions
+ * for things like ranged glove touches, spitting alien acid/neurotoxin,
+ * animals lunging, etc.
+ */
/mob/proc/RangedAttack(atom/A, params)
SEND_SIGNAL(src, COMSIG_MOB_ATTACK_RANGED, A, params)
-/*
- Restrained ClickOn
- Used when you are handcuffed and click things.
- Not currently used by anything but could easily be.
-*/
+/**
+ * Restrained ClickOn
+ *
+ * Used when you are handcuffed and click things.
+ * Not currently used by anything but could easily be.
+ */
/mob/proc/RestrainedClickOn(atom/A)
return
/**
- * Middle click
- * *Mainly used for swapping hands
- */
+ * Middle click
+ * Mainly used for swapping hands
+ */
/mob/proc/MiddleClickOn(atom/A)
. = SEND_SIGNAL(src, COMSIG_MOB_MIDDLECLICKON, A)
if(. & COMSIG_MOB_CANCEL_CLICKON)
return
swap_hand()
-/*
- Shift click
- For most mobs, examine.
- This is overridden in ai.dm
-*/
+/**
+ * Shift click
+ * For most mobs, examine.
+ * This is overridden in ai.dm
+ */
/mob/proc/ShiftClickOn(atom/A)
A.ShiftClick(src)
return
@@ -310,11 +313,10 @@
user.examinate(src)
return
-/*
- Ctrl click
- For most objects, pull
-*/
-
+/**
+ * Ctrl click
+ * For most objects, pull
+ */
/mob/proc/CtrlClickOn(atom/A)
A.CtrlClick(src)
return
@@ -343,10 +345,10 @@
A.CtrlClick(src) // this assumes you did CtrlClick instead of MiddleClick
return
-/*
- Alt click
- Unused except for AI
-*/
+/**
+ * Alt click
+ * Unused except for AI
+ */
/mob/proc/AltClickOn(atom/A)
. = SEND_SIGNAL(src, COMSIG_MOB_ALTCLICKON, A)
if(. & COMSIG_MOB_CANCEL_CLICKON)
@@ -360,7 +362,7 @@
user.listed_turf = T
user.set_stat_tab(T.name)
-// Use this instead of /mob/proc/AltClickOn(atom/A) where you only want turf content listing without additional atom alt-click interaction
+/// Use this instead of [/mob/proc/AltClickOn] where you only want turf content listing without additional atom alt-click interaction
/atom/proc/AltClickNoInteract(mob/user, atom/A)
var/turf/T = get_turf(A)
if(T && user.TurfAdjacent(T))
@@ -370,10 +372,10 @@
/mob/proc/TurfAdjacent(turf/T)
return T.Adjacent(src)
-/*
- Control+Shift click
- Used for AI and Give code
-*/
+/**
+ * Control+Shift click
+ * Used for AI and Give code
+ */
/mob/proc/CtrlShiftClickOn(atom/A)
A.CtrlShiftClick(src)
return
@@ -408,7 +410,7 @@
LE.preparePixelProjectile(A, src, params)
LE.fire()
-// Simple helper to face what you clicked on, in case it should be needed in more than one place
+/// Simple helper to face what you clicked on, in case it should be needed in more than one place
/mob/proc/face_atom(atom/A)
if( buckled || stat != CONSCIOUS || !A || !x || !y || !A.x || !A.y )
return
@@ -481,8 +483,7 @@
click_turf.Click(click_turf, control, list2params(modifiers))
. = 1
-/* MouseWheelOn */
-
+/// MouseWheelOn
/mob/proc/MouseWheelOn(atom/A, delta_x, delta_y, params)
SEND_SIGNAL(src, COMSIG_MOB_MOUSE_SCROLL_ON, A, delta_x, delta_y, params)
if (!client)
diff --git a/code/_onclick/item_attack.dm b/code/_onclick/item_attack.dm
index 4f6d538f0b9ef..1478721cd627f 100644
--- a/code/_onclick/item_attack.dm
+++ b/code/_onclick/item_attack.dm
@@ -1,31 +1,59 @@
-
+/**
+ * This is the proc that handles the order of an item_attack.
+ *
+ * The order of procs called is:
+ * * [/atom/proc/tool_act] on the target. If it returns TRUE, the chain will be stopped.
+ * * [/obj/item/proc/pre_attack] on src. If this returns TRUE, the chain will be stopped.
+ * * [/atom/proc/attackby] on the target. If it returns TRUE, the chain will be stopped.
+ * * [/obj/item/proc/afterattack]. The return value does not matter.
+ */
/obj/item/proc/melee_attack_chain(mob/user, atom/target, params)
- if(!tool_attack_chain(user, target) && pre_attack(target, user, params))
- // Return 1 in attackby() to prevent afterattack() effects (when safely moving items for example)
- var/resolved = target.attackby(src, user, params)
- if(!resolved && target && !QDELETED(src))
- afterattack(target, user, 1, params)
-
-//Checks if the item can work as a tool, calling the appropriate tool behavior on the target
-/obj/item/proc/tool_attack_chain(mob/user, atom/target)
- if(!tool_behaviour)
- return FALSE
-
- return target.tool_act(user, src, tool_behaviour)
+ if(tool_behaviour && target.tool_act(user, src, tool_behaviour))
+ return TRUE
+ if(pre_attack(target, user, params))
+ return TRUE
+ if(target.attackby(src,user, params))
+ return TRUE
+ if(QDELETED(src))
+ stack_trace("An item got deleted while performing an item attack and did not stop melee_attack_chain.")
+ return TRUE
+ if(QDELETED(target))
+ stack_trace("The target of an item attack got deleted and melee_attack_chain was not stopped.")
+ return TRUE
+ return afterattack(target, user, TRUE, params)
-// Called when the item is in the active hand, and clicked; alternately, there is an 'activate held object' verb or you can hit pagedown.
+/// Called when the item is in the active hand, and clicked; alternately, there is an 'activate held object' verb or you can hit pagedown.
/obj/item/proc/attack_self(mob/user)
- if(SEND_SIGNAL(src, COMSIG_ITEM_ATTACK_SELF, user) & COMPONENT_NO_INTERACT)
- return
+ if(SEND_SIGNAL(src, COMSIG_ITEM_ATTACK_SELF, user) & COMPONENT_CANCEL_ATTACK_CHAIN)
+ return TRUE
interact(user)
+/**
+ * Called on the item before it hits something
+ *
+ * Arguments:
+ * * atom/A - The atom about to be hit
+ * * mob/living/user - The mob doing the htting
+ * * params - click params such as alt/shift etc
+ *
+ * See: [/obj/item/proc/melee_attack_chain]
+ */
/obj/item/proc/pre_attack(atom/A, mob/living/user, params) //do stuff before attackby!
- if(SEND_SIGNAL(src, COMSIG_ITEM_PRE_ATTACK, A, user, params) & COMPONENT_NO_ATTACK)
- return FALSE
- return TRUE //return FALSE to avoid calling attackby after this proc does stuff
-
-// No comment
+ if(SEND_SIGNAL(src, COMSIG_ITEM_PRE_ATTACK, A, user, params) & COMPONENT_CANCEL_ATTACK_CHAIN)
+ return TRUE
+ return FALSE //return TRUE to avoid calling attackby after this proc does stuff
+
+/**
+ * Called on an object being hit by an item
+ *
+ * Arguments:
+ * * obj/item/W - The item hitting this atom
+ * * mob/user - The wielder of this item
+ * * params - click params such as alt/shift etc
+ *
+ * See: [/obj/item/proc/melee_attack_chain]
+ */
/atom/proc/attackby(obj/item/W, mob/user, params)
if(SEND_SIGNAL(src, COMSIG_PARENT_ATTACKBY, W, user, params) & COMPONENT_NO_AFTERATTACK)
return TRUE
@@ -52,10 +80,20 @@
return
return I.attack(src, user)
-
+/**
+ * Called from [/mob/living/attackby]
+ *
+ * Arguments:
+ * * mob/living/M - The mob being hit by this item
+ * * mob/living/user - The mob hitting with this item
+ */
/obj/item/proc/attack(mob/living/M, mob/living/user)
- if(SEND_SIGNAL(src, COMSIG_ITEM_ATTACK, M, user) & COMPONENT_ITEM_NO_ATTACK)
+ var/signal_return = SEND_SIGNAL(src, COMSIG_ITEM_ATTACK, M, user)
+ if(signal_return & COMPONENT_CANCEL_ATTACK_CHAIN)
+ return TRUE
+ if(signal_return & COMPONENT_SKIP_ATTACK)
return
+
SEND_SIGNAL(user, COMSIG_MOB_ITEM_ATTACK, M, user)
SEND_SIGNAL(M, COMSIG_MOB_ITEM_ATTACKBY, user, src)
@@ -100,9 +138,9 @@
add_fingerprint(user)
-//the equivalent of the standard version of attack() but for object targets.
+/// The equivalent of the standard version of [/obj/item/proc/attack] but for object targets.
/obj/item/proc/attack_obj(obj/O, mob/living/user)
- if(SEND_SIGNAL(src, COMSIG_ITEM_ATTACK_OBJ, O, user) & COMPONENT_NO_ATTACK_OBJ)
+ if(SEND_SIGNAL(src, COMSIG_ITEM_ATTACK_OBJ, O, user) & COMPONENT_CANCEL_ATTACK_CHAIN)
return
if(item_flags & NOBLUDGEON)
return
@@ -110,6 +148,7 @@
user.do_attack_animation(O)
O.attacked_by(src, user)
+/// Called from [/obj/item/proc/attack_obj] and [/obj/item/proc/attack] if the attack succeeds
/atom/proc/attacked_by()
return
@@ -150,8 +189,15 @@
else
return ..()
-// Proximity_flag is 1 if this afterattack was called on something adjacent, in your square, or on your person.
-// Click parameters is the params string from byond Click() code, see that documentation.
+/**
+ * Last proc in the [/obj/item/proc/melee_attack_chain]
+ *
+ * Arguments:
+ * * atom/target - The thing that was hit
+ * * mob/user - The mob doing the hitting
+ * * proximity_flag - is 1 if this afterattack was called on something adjacent, in your square, or on your person.
+ * * click_parameters - is the params string from byond [/atom/proc/Click] code, see that documentation.
+ */
/obj/item/proc/afterattack(atom/target, mob/user, proximity_flag, click_parameters)
SEND_SIGNAL(src, COMSIG_ITEM_AFTERATTACK, target, user, proximity_flag, click_parameters)
SEND_SIGNAL(user, COMSIG_MOB_ITEM_AFTERATTACK, target, src, proximity_flag, click_parameters)
diff --git a/code/_onclick/observer.dm b/code/_onclick/observer.dm
index deb9ec5137160..899255956d71c 100644
--- a/code/_onclick/observer.dm
+++ b/code/_onclick/observer.dm
@@ -47,7 +47,7 @@
// Oh by the way this didn't work with old click code which is why clicking shit didn't spam you
/atom/proc/attack_ghost(mob/dead/observer/user)
- if(SEND_SIGNAL(src, COMSIG_ATOM_ATTACK_GHOST, user) & COMPONENT_NO_ATTACK_HAND)
+ if(SEND_SIGNAL(src, COMSIG_ATOM_ATTACK_GHOST, user) & COMPONENT_CANCEL_ATTACK_CHAIN)
return TRUE
if(user.client)
if(user.gas_scan && atmosanalyzer_scan(user, src))
diff --git a/code/_onclick/other_mobs.dm b/code/_onclick/other_mobs.dm
index e2a4f96ce9e32..21bd7205bf3f4 100644
--- a/code/_onclick/other_mobs.dm
+++ b/code/_onclick/other_mobs.dm
@@ -28,12 +28,12 @@
SEND_SIGNAL(src, COMSIG_HUMAN_MELEE_UNARMED_ATTACK, A)
A.attack_hand(src)
-//Return TRUE to cancel other attack hand effects that respect it.
+/// Return TRUE to cancel other attack hand effects that respect it.
/atom/proc/attack_hand(mob/user)
. = FALSE
if(!(interaction_flags_atom & INTERACT_ATOM_NO_FINGERPRINT_ATTACK_HAND))
add_fingerprint(user)
- if(SEND_SIGNAL(src, COMSIG_ATOM_ATTACK_HAND, user) & COMPONENT_NO_ATTACK_HAND)
+ if(SEND_SIGNAL(src, COMSIG_ATOM_ATTACK_HAND, user) & COMPONENT_CANCEL_ATTACK_CHAIN)
. = TRUE
if(interaction_flags_atom & INTERACT_ATOM_ATTACK_HAND)
. = _try_interact(user)
@@ -95,14 +95,16 @@
/mob/living/carbon/human/RangedAttack(atom/A, mouseparams)
. = ..()
+ if(.)
+ return
if(gloves)
var/obj/item/clothing/gloves/G = gloves
if(istype(G) && G.Touch(A,0)) // for magic gloves
- return
+ return TRUE
if(isturf(A) && get_dist(src,A) <= 1)
- src.Move_Pulled(A)
- return
+ Move_Pulled(A)
+ return TRUE
/*
Animals & All Unspecified
@@ -134,7 +136,7 @@
A.attack_paw(src)
/atom/proc/attack_paw(mob/user)
- if(SEND_SIGNAL(src, COMSIG_ATOM_ATTACK_PAW, user) & COMPONENT_NO_ATTACK_HAND)
+ if(SEND_SIGNAL(src, COMSIG_ATOM_ATTACK_PAW, user) & COMPONENT_CANCEL_ATTACK_CHAIN)
return TRUE
return FALSE
diff --git a/code/_onclick/telekinesis.dm b/code/_onclick/telekinesis.dm
index 095fc5bb1f8ef..3d21335141266 100644
--- a/code/_onclick/telekinesis.dm
+++ b/code/_onclick/telekinesis.dm
@@ -4,52 +4,68 @@
This needs more thinking out, but I might as well.
*/
-/*
- Telekinetic attack:
-
- By default, emulate the user's unarmed attack
-*/
-
#define TK_MAXRANGE 15
+/**
+ * Telekinesis attack act, happens when the TK user clicks on a non-adjacent target in range.
+ *
+ * * By default, emulates the user's unarmed attack.
+ * * Called indirectly by the `COMSIG_MOB_ATTACK_RANGED` signal.
+ * * Returns `COMPONENT_CANCEL_ATTACK_CHAIN` when it performs any action, to further acts on the attack chain.
+ */
/atom/proc/attack_tk(mob/user)
if(user.stat || !tkMaxRangeCheck(user, src))
return
new /obj/effect/temp_visual/telekinesis(get_turf(src))
- user.UnarmedAttack(src,0) // attack_hand, attack_paw, etc
add_hiddenprint(user)
- return
+ user.UnarmedAttack(src, FALSE) // attack_hand, attack_paw, etc
+ return COMPONENT_CANCEL_ATTACK_CHAIN
/obj/attack_tk(mob/user)
if(user.stat)
return
if(anchored)
return ..()
- attack_tk_grab(user)
+ return attack_tk_grab(user)
+/obj/item/attack_tk(mob/user)
+ if(user.stat)
+ return
+ return attack_tk_grab(user)
+
+/**
+ * Telekinesis object grab act.
+ *
+ * * Called by `/obj/attack_tk()`.
+ * * Returns `COMPONENT_CANCEL_ATTACK_CHAIN` when it performs any action, to further acts on the attack chain.
+ */
/obj/proc/attack_tk_grab(mob/user)
var/obj/item/tk_grab/O = new(src)
O.tk_user = user
- if(O.focus_object(src))
- user.put_in_active_hand(O)
- add_hiddenprint(user)
+ if(!O.focus_object(src))
+ return
+ user.put_in_active_hand(O)
+ add_hiddenprint(user)
+ return COMPONENT_CANCEL_ATTACK_CHAIN
/mob/attack_tk(mob/user)
return
-/*
- This is similar to item attack_self, but applies to anything
- that you can grab with a telekinetic grab.
-
- It is used for manipulating things at range, for example, opening and closing closets.
- There are not a lot of defaults at this time, add more where appropriate.
-*/
-
+/**
+ * Telekinesis item attack_self act.
+ *
+ * * This is similar to item attack_self, but applies to anything that you can grab with a telekinetic grab.
+ * * It is used for manipulating things at range, for example, opening and closing closets..
+ * * Defined at the `/atom` level but only used at the `/obj/item` one.
+ * * Returns `COMPONENT_CANCEL_ATTACK_CHAIN` when it performs any action, to further acts on the attack chain.
+ */
/atom/proc/attack_self_tk(mob/user)
return
+
/obj/item/attack_self_tk(mob/user)
- attack_self(user)
+ if(attack_self(user))
+ return COMPONENT_CANCEL_ATTACK_CHAIN
/*
@@ -109,25 +125,31 @@
/obj/item/tk_grab/attack_self(mob/user)
if(!focus)
return
- if(QDELETED(focus))
+ if(QDELING(focus))
qdel(src)
return
- focus.attack_self_tk(user)
+ if(focus.attack_self_tk(user) & COMPONENT_CANCEL_ATTACK_CHAIN)
+ . = TRUE
update_icon()
/obj/item/tk_grab/afterattack(atom/target, mob/living/carbon/user, proximity, params)//TODO: go over this
. = ..()
+ if(.)
+ return
+
if(!target || !user)
return
if(!focus)
focus_object(target)
- return
- else if(!check_if_focusable(focus))
+ return TRUE
+
+ if(!check_if_focusable(focus))
return
if(target == focus)
- target.attack_self_tk(user)
+ if(target.attack_self_tk(user) & COMPONENT_CANCEL_ATTACK_CHAIN)
+ . = TRUE
update_icon()
return
@@ -142,16 +164,17 @@
if(!isturf(target) && isitem(focus) && target.Adjacent(focus))
apply_focus_overlay()
var/obj/item/I = focus
- I.melee_attack_chain(tk_user, target, params) //isn't copying the attack chain fun. we should do it more often.
+ . = I.melee_attack_chain(tk_user, target, params) //isn't copying the attack chain fun. we should do it more often.
if(check_if_focusable(focus))
focus.do_attack_animation(target, null, focus)
else
-
+ . = TRUE
apply_focus_overlay()
focus.throw_at(target, 10, 1,user)
user.changeNext_move(CLICK_CD_MELEE)
update_icon()
+
/proc/tkMaxRangeCheck(mob/user, atom/target)
var/d = get_dist(user, target)
if(d > TK_MAXRANGE)
diff --git a/code/controllers/subsystem/job.dm b/code/controllers/subsystem/job.dm
index e01c21f14777c..9b32998314a0b 100644
--- a/code/controllers/subsystem/job.dm
+++ b/code/controllers/subsystem/job.dm
@@ -594,7 +594,7 @@ SUBSYSTEM_DEF(job)
/datum/controller/subsystem/job/proc/LoadJobs()
var/jobstext = rustg_file_read("[global.config.directory]/jobs.txt")
for(var/datum/job/J in occupations)
- if(J.flag == GIMMICK || J.gimmick) //gimmick job slots are dependant on random maint
+ if(J.gimmick) //gimmick job slots are dependant on random maint
continue
var/regex/jobs = new("[J.title]=(-1|\\d+),(-1|\\d+)")
if(jobs.Find(jobstext))
diff --git a/code/controllers/subsystem/processing/digital_clock.dm b/code/controllers/subsystem/processing/digital_clock.dm
new file mode 100644
index 0000000000000..6981e785d1c3c
--- /dev/null
+++ b/code/controllers/subsystem/processing/digital_clock.dm
@@ -0,0 +1,5 @@
+/// The subsystem used to tick digital clocks
+PROCESSING_SUBSYSTEM_DEF(digital_clock)
+ name = "Digital Clocks"
+ flags = SS_NO_INIT|SS_BACKGROUND|SS_KEEP_TIMING
+ wait = 1 SECONDS
diff --git a/code/datums/components/aiming.dm b/code/datums/components/aiming.dm
index b968656ff4ce3..aa254eabdf982 100644
--- a/code/datums/components/aiming.dm
+++ b/code/datums/components/aiming.dm
@@ -334,7 +334,7 @@ AIMING_DROP_WEAPON means they selected the "drop your weapon" command
/datum/component/aiming/proc/aim_react_act(choice)
if(choice == SURRENDER)
- target.emote(SURRENDER)
+ target.emote(SURRENDER,intentional = TRUE)
QDEL_NULL(choice_menu_target)
// Shows a crosshair effect when aiming at a target
diff --git a/code/datums/components/buffer.dm b/code/datums/components/buffer.dm
index 09855e9dcac07..a5b4052792a3d 100644
--- a/code/datums/components/buffer.dm
+++ b/code/datums/components/buffer.dm
@@ -27,7 +27,7 @@
/datum/component/buffer/proc/intercept_attack(datum/source, atom/attack_target, mob/user, params)
SIGNAL_HANDLER
if ((SEND_SIGNAL(attack_target, COMSIG_PARENT_RECIEVE_BUFFER, user, target, parent) & COMPONENT_BUFFER_RECIEVED))
- return COMPONENT_NO_ATTACK
+ return COMPONENT_CANCEL_ATTACK_CHAIN
return NONE
/datum/component/buffer/proc/examine(datum/source, mob/user, list/examine_list)
@@ -42,7 +42,7 @@
flush_buffer()
if (user)
to_chat(user, "You flush the buffer of [source]!")
- return COMPONENT_NO_INTERACT
+ return COMPONENT_CANCEL_ATTACK_CHAIN
/datum/component/buffer/proc/populate_buffer(datum/source, datum/buffer_entity)
SIGNAL_HANDLER
diff --git a/code/datums/components/butchering.dm b/code/datums/components/butchering.dm
index ced03d367abaa..d281865081aa4 100644
--- a/code/datums/components/butchering.dm
+++ b/code/datums/components/butchering.dm
@@ -34,16 +34,16 @@
if(user.a_intent == INTENT_HARM && M.stat == DEAD && (M.butcher_results || M.guaranteed_butcher_results)) //can we butcher it?
if(butchering_enabled && (can_be_blunt || source.is_sharp()))
INVOKE_ASYNC(src, PROC_REF(startButcher), source, M, user)
- return COMPONENT_ITEM_NO_ATTACK
+ return COMPONENT_CANCEL_ATTACK_CHAIN
if(user.a_intent == INTENT_GRAB && ishuman(M) && source.is_sharp())
var/mob/living/carbon/human/H = M
if(H.has_status_effect(/datum/status_effect/neck_slice))
user.show_message("[H]'s neck has already been already cut, you can't make the bleeding any worse!", 1, \
"Their neck has already been already cut, you can't make the bleeding any worse!")
- return COMPONENT_ITEM_NO_ATTACK
+ return COMPONENT_CANCEL_ATTACK_CHAIN
if((H.health <= H.crit_threshold || (user.pulling == H && user.grab_state >= GRAB_NECK) || H.IsSleeping())) // Only sleeping, neck grabbed, or crit, can be sliced.
INVOKE_ASYNC(src, PROC_REF(startNeckSlice), source, H, user)
- return COMPONENT_ITEM_NO_ATTACK
+ return COMPONENT_CANCEL_ATTACK_CHAIN
/datum/component/butchering/proc/startButcher(obj/item/source, mob/living/M, mob/living/user)
to_chat(user, "You begin to butcher [M]...")
diff --git a/code/datums/components/deployable.dm b/code/datums/components/deployable.dm
index f2b031c58b8c5..5202dbae3701c 100644
--- a/code/datums/components/deployable.dm
+++ b/code/datums/components/deployable.dm
@@ -58,7 +58,7 @@
/datum/component/deployable/proc/on_attack_self(datum/source, mob/user)
SIGNAL_HANDLER
INVOKE_ASYNC(src, PROC_REF(try_deploy), user, user.loc)
- return COMPONENT_NO_INTERACT
+ return COMPONENT_CANCEL_ATTACK_CHAIN
/datum/component/deployable/proc/on_afterattack(datum/source, atom/movable/target, mob/user, proximity_flag, params)
SIGNAL_HANDLER
diff --git a/code/datums/components/embedded.dm b/code/datums/components/embedded.dm
index 5bc4612806422..a8969ec2fecd2 100644
--- a/code/datums/components/embedded.dm
+++ b/code/datums/components/embedded.dm
@@ -251,7 +251,7 @@
return
INVOKE_ASYNC(src, PROC_REF(pluckOut), user, 1, 2, "pulling out")
- return COMPONENT_NO_ATTACK_HAND
+ return COMPONENT_CANCEL_ATTACK_CHAIN
/datum/component/embedded/proc/checkRemoval(mob/living/carbon/victim, obj/item/I, mob/user)
SIGNAL_HANDLER
diff --git a/code/datums/components/mood.dm b/code/datums/components/mood.dm
index 90f1852d847c3..6e3b8cee429d7 100644
--- a/code/datums/components/mood.dm
+++ b/code/datums/components/mood.dm
@@ -77,12 +77,20 @@
msg += "I love life!\n"
msg += "Moodlets:\n"//All moodlets
- if(mood_events.len)
- for(var/i in mood_events)
- var/datum/mood_event/event = mood_events[i]
- msg += "[event.description]\n"
- else
- msg += "I don't have much of a reaction to anything right now.\n"
+ var/mood_msg = ""
+ var/thought_msg = ""
+ for(var/i in mood_events)
+ var/datum/mood_event/event = mood_events[i]
+ if(event.mood_change)
+ mood_msg += "[event.description]\n"
+ else
+ thought_msg += "[event.description]\n"
+ if(!mood_msg)
+ msg += "I don't have much of a reaction to anything right now.\n"
+ msg += mood_msg
+ if(thought_msg)
+ msg += "Thoughts:\n"
+ msg += thought_msg
to_chat(user || parent, EXAMINE_BLOCK(msg))
/datum/component/mood/proc/update_mood() //Called whenever a mood event is added or removed
@@ -217,37 +225,24 @@
else
sanity = amount
- var/mob/living/master = parent
switch(sanity)
if(SANITY_INSANE to SANITY_CRAZY)
setInsanityEffect(MAJOR_INSANITY_PEN)
- master.add_movespeed_modifier(/datum/movespeed_modifier/sanity/insane)
- master.add_actionspeed_modifier(/datum/actionspeed_modifier/low_sanity)
sanity_level = 6
if(SANITY_CRAZY to SANITY_UNSTABLE)
setInsanityEffect(MINOR_INSANITY_PEN)
- master.add_movespeed_modifier(/datum/movespeed_modifier/sanity/crazy)
- master.add_actionspeed_modifier(/datum/actionspeed_modifier/low_sanity)
sanity_level = 5
if(SANITY_UNSTABLE to SANITY_DISTURBED)
setInsanityEffect(0)
- master.add_movespeed_modifier(/datum/movespeed_modifier/sanity/disturbed)
- master.add_actionspeed_modifier(/datum/actionspeed_modifier/low_sanity)
sanity_level = 4
if(SANITY_DISTURBED to SANITY_NEUTRAL)
setInsanityEffect(0)
- master.remove_movespeed_modifier(MOVESPEED_ID_SANITY)
- master.remove_actionspeed_modifier(ACTIONSPEED_ID_SANITY)
sanity_level = 3
if(SANITY_NEUTRAL+1 to SANITY_GREAT+1) //shitty hack but +1 to prevent it from responding to super small differences
setInsanityEffect(0)
- master.remove_movespeed_modifier(MOVESPEED_ID_SANITY)
- master.add_actionspeed_modifier(/datum/actionspeed_modifier/high_sanity)
sanity_level = 2
if(SANITY_GREAT+1 to INFINITY)
setInsanityEffect(0)
- master.remove_movespeed_modifier(MOVESPEED_ID_SANITY)
- master.add_actionspeed_modifier(/datum/actionspeed_modifier/high_sanity)
sanity_level = 1
update_mood_icon()
diff --git a/code/datums/components/storage/storage.dm b/code/datums/components/storage/storage.dm
index 53bba3c18a93a..b4ed7cb592bb4 100644
--- a/code/datums/components/storage/storage.dm
+++ b/code/datums/components/storage/storage.dm
@@ -185,7 +185,7 @@
if(!isitem(O) || !click_gather || SEND_SIGNAL(O, COMSIG_CONTAINS_STORAGE))
return FALSE
- . = COMPONENT_NO_ATTACK
+ . = COMPONENT_CANCEL_ATTACK_CHAIN
if(locked)
var/atom/host = parent
host.balloon_alert(M, "[host] is locked.")
@@ -779,7 +779,7 @@
if(user.active_storage == src && A.loc == user) //if you're already looking inside the storage item
user.active_storage.close(user)
close(user)
- . = COMPONENT_NO_ATTACK_HAND
+ . = COMPONENT_CANCEL_ATTACK_CHAIN
return
if(rustle_sound)
@@ -788,18 +788,18 @@
if(ishuman(user))
var/mob/living/carbon/human/H = user
if(H.l_store == A && !H.get_active_held_item()) //Prevents opening if it's in a pocket.
- . = COMPONENT_NO_ATTACK_HAND
+ . = COMPONENT_CANCEL_ATTACK_CHAIN
INVOKE_ASYNC(H, TYPE_PROC_REF(/mob, put_in_hands), A)
H.l_store = null
return
if(H.r_store == A && !H.get_active_held_item())
- . = COMPONENT_NO_ATTACK_HAND
+ . = COMPONENT_CANCEL_ATTACK_CHAIN
INVOKE_ASYNC(H, TYPE_PROC_REF(/mob, put_in_hands), A)
H.r_store = null
return
if(A.loc == user)
- . = COMPONENT_NO_ATTACK_HAND
+ . = COMPONENT_CANCEL_ATTACK_CHAIN
if(locked)
var/atom/host = parent
host.balloon_alert(user, "[host] is locked.")
diff --git a/code/datums/components/uplink.dm b/code/datums/components/uplink.dm
index dc317f773a8db..85c49f68d8b67 100644
--- a/code/datums/components/uplink.dm
+++ b/code/datums/components/uplink.dm
@@ -141,7 +141,7 @@
if(user)
INVOKE_ASYNC(src, PROC_REF(ui_interact), user)
// an unlocked uplink blocks also opening the PDA or headset menu
- return COMPONENT_NO_INTERACT
+ return COMPONENT_CANCEL_ATTACK_CHAIN
/datum/component/uplink/ui_state(mob/user)
diff --git a/code/datums/diseases/advance/symptoms/fever.dm b/code/datums/diseases/advance/symptoms/fever.dm
index 8bc959bea097b..042a34f2fdf11 100644
--- a/code/datums/diseases/advance/symptoms/fever.dm
+++ b/code/datums/diseases/advance/symptoms/fever.dm
@@ -50,7 +50,6 @@ Bonus
unsafe = TRUE
if(A.resistance >= 10)
power = 2.5
- set_body_temp(A.affected_mob, A)
/datum/symptom/fever/Activate(datum/disease/advance/A)
if(!..())
@@ -62,6 +61,7 @@ Bonus
to_chat(M, "[pick("You feel hot.", "You feel like you're burning.")]")
else
to_chat(M, "[pick("You feel too hot.", "You feel like your blood is boiling.")]")
+ set_body_temp(A.affected_mob, A)
/**
* set_body_temp Sets the body temp change
@@ -72,7 +72,10 @@ Bonus
* * datum/disease/advance/A The disease applying the symptom
*/
/datum/symptom/fever/proc/set_body_temp(mob/living/M, datum/disease/advance/A)
- M.add_body_temperature_change("fever", (6 * power) * A.stage)
+ if(!unsafe)
+ M.add_body_temperature_change("fever", max((6 * power) * A.stage, (BODYTEMP_HEAT_DAMAGE_LIMIT - 1)))
+ else
+ M.add_body_temperature_change("fever", max((6 * power) * A.stage, (BODYTEMP_HEAT_DAMAGE_LIMIT + 20)))
/// Update the body temp change based on the new stage
/datum/symptom/fever/on_stage_change(datum/disease/advance/A)
diff --git a/code/datums/diseases/advance/symptoms/shivering.dm b/code/datums/diseases/advance/symptoms/shivering.dm
index 6dd8738936443..f55d3097f5a4a 100644
--- a/code/datums/diseases/advance/symptoms/shivering.dm
+++ b/code/datums/diseases/advance/symptoms/shivering.dm
@@ -47,7 +47,6 @@ Bonus
unsafe = TRUE
if(A.stage_rate >= 10)
power = 2.5
- set_body_temp(A.affected_mob, A)
/datum/symptom/shivering/Activate(datum/disease/advance/A)
if(!..())
@@ -59,6 +58,7 @@ Bonus
to_chat(M, "[pick("You feel cold.", "You shiver.")]")
else
to_chat(M, "[pick("You feel your blood run cold.", "You feel ice in your veins.", "You feel like you can't heat up.", "You shiver violently." )]")
+ set_body_temp(A.affected_mob, A)
/**
* set_body_temp Sets the body temp change
@@ -69,7 +69,10 @@ Bonus
* * datum/disease/advance/A The disease applying the symptom
*/
/datum/symptom/shivering/proc/set_body_temp(mob/living/M, datum/disease/advance/A)
- M.add_body_temperature_change("shivering", -((6 * power) * A.stage))
+ if(!unsafe)
+ M.add_body_temperature_change("shivering", max(-((6 * power) * A.stage), (BODYTEMP_COLD_DAMAGE_LIMIT + 1)))
+ else
+ M.add_body_temperature_change("shivering", max(-((6 * power) * A.stage), (BODYTEMP_COLD_DAMAGE_LIMIT - 20)))
/// Update the body temp change based on the new stage
/datum/symptom/shivering/on_stage_change(datum/disease/advance/A)
diff --git a/code/datums/mood_events/generic_negative_events.dm b/code/datums/mood_events/generic_negative_events.dm
index 31cedace325bd..9d629931bd06d 100644
--- a/code/datums/mood_events/generic_negative_events.dm
+++ b/code/datums/mood_events/generic_negative_events.dm
@@ -14,11 +14,6 @@
description = "CAN'T... BREATHE..."
mood_change = -12
-/datum/mood_event/burnt_thumb
- description = "I shouldn't play with lighters..."
- mood_change = -1
- timeout = 2 MINUTES
-
/datum/mood_event/cold
description = "It's way too cold in here."
mood_change = -5
@@ -27,16 +22,6 @@
description = "It's getting hot in here."
mood_change = -5
-/datum/mood_event/creampie
- description = "I've been creamed. Tastes like pie flavor."
- mood_change = -2
- timeout = 3 MINUTES
-
-/datum/mood_event/slipped
- description = "I slipped. I should be more careful next time..."
- mood_change = -2
- timeout = 3 MINUTES
-
/datum/mood_event/eye_stab
description = "AHHH my eyes, that was really sharp!"
mood_change = -4
@@ -86,29 +71,6 @@
description = "Pull it out!"
mood_change = -7
-/datum/mood_event/table
- description = "Someone threw me on a table!"
- mood_change = -2
- timeout = 2 MINUTES
-
-/datum/mood_event/table/add_effects()
- var/datum/component/L = owner //owner is lying about its type, its component/mood while pretending to be mob. You must cast it to use it properly
- var/mob/living/T = L.parent
- if(ishuman(T))
- var/mob/living/carbon/human/H = T
- if(iscatperson(H) || (istype(H.getorganslot(ORGAN_SLOT_EARS), /obj/item/organ/ears/cat) && istype(H.getorganslot(ORGAN_SLOT_TAIL), /obj/item/organ/tail/cat)))
- var/obj/item/organ/tail/tail = H.getorganslot(ORGAN_SLOT_TAIL)
- if(tail)
- tail.set_wagging(H, TRUE)
- addtimer(CALLBACK(tail, TYPE_PROC_REF(/obj/item/organ/tail, set_wagging), H, FALSE), 3 SECONDS)
- description = "They want to play on the table!"
- mood_change = 2
-
-/datum/mood_event/table_headsmash
- description = "My fucking head, that hurt..."
- mood_change = -3
- timeout = 3 MINUTES
-
/datum/mood_event/brain_damage
mood_change = -3
@@ -138,20 +100,6 @@
mood_change = -4
timeout = 2 MINUTES
-/datum/mood_event/jittery
- description = "I'm nervous and on edge and I can't stand still!!!"
- mood_change = -2
-
-/datum/mood_event/vomit
- description = "I just threw up. Gross."
- mood_change = -2
- timeout = 2 MINUTES
-
-/datum/mood_event/vomitself
- description = "I just threw up all over myself. This is disgusting."
- mood_change = -4
- timeout = 3 MINUTES
-
/datum/mood_event/painful_medicine
description = "Medicine may be good for me but right now it stings like hell."
mood_change = -5
@@ -162,11 +110,6 @@
mood_change = -4
timeout = 4 MINUTES
-/datum/mood_event/loud_gong
- description = "That loud gong noise really hurt my ears!"
- mood_change = -3
- timeout = 2 MINUTES
-
/datum/mood_event/notcreeping
description = "The voices are not happy, and they painfully contort my thoughts into getting back on task."
mood_change = -6
@@ -202,35 +145,16 @@
/datum/mood_event/sad_empath/add_effects(mob/sadtarget)
description = "[sadtarget.name] seems upset..."
-/datum/mood_event/artbad
- description = "I've produced better art than that from my ass.\n"
- mood_change = -2
- timeout = 2 MINUTES
-
/datum/mood_event/sacrifice_bad
description ="Those darn savages!"
mood_change = -5
timeout = 2 MINUTES
-/datum/mood_event/artbad
- description = "I've produced better art than that from my ass."
- mood_change = -2
- timeout = 2 MINUTES
-
/datum/mood_event/gates_of_mansus
description = "LIVING IN A PERFORMANCE IS WORSE THAN DEATH"
mood_change = -25
timeout = 4 MINUTES
-//These are unused so far but I want to remember them to use them later
-/datum/mood_event/cloned_corpse
- description = "I recently saw my own corpse..."
- mood_change = -6
-
-/datum/mood_event/surgery
- description = "HE'S CUTTING ME OPEN!!!"
- mood_change = -8
-
/datum/mood_event/nanite_sadness
description = "+++++++HAPPINESS SUPPRESSION+++++++"
mood_change = -7
@@ -241,17 +165,11 @@
/datum/mood_event/sec_insulated_gloves
description = "I look like an Assistant..."
mood_change = -1
-
/datum/mood_event/burnt_wings
description = "MY PRECIOUS WINGS!!!"
mood_change = -10
timeout = 10 MINUTES
-/datum/mood_event/aquarium_negative
- description = "All the fish are dead..."
- mood_change = -3
- timeout = 1.5 MINUTES
-
/datum/mood_event/feline_dysmorphia
description = "I'm so ugly. I wish I was cuter!"
mood_change = -10
@@ -273,3 +191,8 @@
/datum/mood_event/saw_holopara_death/add_effects(name)
description = "Oh god, [name] just painfully turned to dust... What an horrifying sight..."
+
+/datum/mood_event/loud_gong
+ description = "That loud gong noise really hurt my ears!"
+ mood_change = -3
+ timeout = 2 MINUTES
diff --git a/code/datums/mood_events/generic_neutral_events.dm b/code/datums/mood_events/generic_neutral_events.dm
new file mode 100644
index 0000000000000..a0b5e28b850a0
--- /dev/null
+++ b/code/datums/mood_events/generic_neutral_events.dm
@@ -0,0 +1,66 @@
+/datum/mood_event/burnt_thumb
+ description = "I shouldn't play with lighters..."
+ timeout = 1 MINUTES
+
+/datum/mood_event/creampie
+ description = "I've been creamed. Tastes like pie flavor."
+ timeout = 1 MINUTES
+
+/datum/mood_event/slipped
+ description = "I slipped. I should be more careful next time..."
+ timeout = 1 MINUTES
+
+/datum/mood_event/table
+ description = "Someone threw me on a table!"
+ timeout = 1 MINUTES
+
+/datum/mood_event/table_headsmash
+ description = "My fucking head, that hurt..."
+ timeout = 1 MINUTES
+
+/datum/mood_event/jittery
+ description = "I'm nervous and on edge and I can't stand still!!!"
+
+/datum/mood_event/vomit
+ description = "I just threw up. Gross."
+ timeout = 1 MINUTES
+
+/datum/mood_event/vomitself
+ description = "I just threw up all over myself. This is disgusting."
+ timeout = 1 MINUTES
+
+/datum/mood_event/aquarium_negative
+ description = "All the fish are dead..."
+ timeout = 1 MINUTES
+
+/datum/mood_event/hug
+ description = "Hugs are nice."
+ timeout = 1 MINUTES
+
+/datum/mood_event/warmhug
+ description = "Warm cozy hugs are the best!\n"
+ timeout = 1 MINUTES
+/datum/mood_event/book_nerd
+ description = "I have recently read a book."
+ timeout = 1 MINUTES
+/datum/mood_event/exercise
+ description = "Working out releases those endorphins!"
+ timeout = 1 MINUTES
+/datum/mood_event/pet_animal
+ description = "Animals are adorable! I can't stop petting them!"
+ timeout = 1 MINUTES
+/datum/mood_event/animal_play
+ description = "Aww, it's having fun!"
+ timeout = 1 MINUTES
+/datum/mood_event/honk
+ description = "Maybe clowns aren't so bad after all. Honk!"
+ timeout = 1 MINUTES
+/datum/mood_event/artok
+ description = "It's nice to see people are making art around here.\n"
+ timeout = 1 MINUTES
+/datum/mood_event/artbad
+ description = "I've produced better art than that from my ass.\n"
+ timeout = 1 MINUTES
+/datum/mood_event/aquarium_positive
+ description = "Watching fish in aquarium is calming."
+ timeout = 1 MINUTES
diff --git a/code/datums/mood_events/generic_positive_events.dm b/code/datums/mood_events/generic_positive_events.dm
index e0bf73adb3b64..befcfc21427fb 100644
--- a/code/datums/mood_events/generic_positive_events.dm
+++ b/code/datums/mood_events/generic_positive_events.dm
@@ -1,7 +1,3 @@
-/datum/mood_event/hug
- description = "Hugs are nice."
- mood_change = 1
- timeout = 2 MINUTES
/datum/mood_event/betterhug
description = "Someone was very nice to me."
@@ -19,16 +15,6 @@
/datum/mood_event/besthug/add_effects(mob/friend)
description = "[friend.name] is great to be around, [friend.p_they()] makes me feel so happy!"
-/datum/mood_event/warmhug
- description = "Warm cozy hugs are the best!\n"
- mood_change = 1
- timeout = 2 MINUTES
-
-/datum/mood_event/headpat
- description = "Headpats are lovely!"
- mood_change = 1
- timeout = 2 MINUTES
-
/datum/mood_event/arcade
description = "I beat the arcade game!"
mood_change = 3
@@ -39,37 +25,6 @@
mood_change = 3
timeout = 8 MINUTES
-/datum/mood_event/book_nerd
- description = "I have recently read a book."
- mood_change = 1
- timeout = 5 MINUTES
-
-/datum/mood_event/exercise
- description = "Working out releases those endorphins!"
- mood_change = 2
- timeout = 5 MINUTES
-
-/datum/mood_event/pet_animal
- description = "Animals are adorable! I can't stop petting them!"
- mood_change = 2
- timeout = 5 MINUTES
-
-/datum/mood_event/pet_animal/add_effects(mob/animal)
- description = "\The [animal.name] is adorable! I can't stop petting [animal.p_them()]!"
-
-/datum/mood_event/animal_play
- description = "Aww, it's having fun!"
- mood_change = 2
- timeout = 3 MINUTES
-
-/datum/mood_event/animal_play/add_effects(mob/animal)
- description = "Aww, [animal.name]'s having fun!"
-
-/datum/mood_event/honk
- description = "Maybe clowns aren't so bad after all. Honk!"
- mood_change = 2
- timeout = 4 MINUTES
-
/datum/mood_event/perform_cpr
description = "It feels good to save a life."
mood_change = 6
@@ -163,11 +118,6 @@
description = "The shoes are a clown's legacy, I never want to take them off!"
mood_change = 5
-/datum/mood_event/artok
- description = "It's nice to see people are making art around here.\n"
- mood_change = 2
- timeout = 2 MINUTES
-
/datum/mood_event/artgood
description = "What a thought-provoking piece of art. I'll remember that for a while.\n"
mood_change = 3
@@ -223,6 +173,14 @@
description = "I feel proud to show my remembrance of the many who have died to ensure that I have freedom."
mood_change = 1
+/datum/mood_event/sec_black_gloves
+ description = "Black gloves look good on me."
+ mood_change = 1
+
+/datum/mood_event/assistant_insulated_gloves
+ description = "Finally got my hands on a good pair of gloves!"
+ mood_change = 1
+
/datum/mood_event/funny_prank
description = "That was a funny prank, clown!"
mood_change = 2
@@ -236,19 +194,6 @@
mood_change = param[1]
description = param[2]
-/datum/mood_event/sec_black_gloves
- description = "Black gloves look good on me."
- mood_change = 1
-
-/datum/mood_event/assistant_insulated_gloves
- description = "Finally got my hands on a good pair of gloves!"
- mood_change = 1
-
-/datum/mood_event/aquarium_positive
- description = "Watching fish in aquarium is calming."
- mood_change = 3
- timeout = 1.5 MINUTES
-
/datum/mood_event/toxoplasmosis
description = "I really like being around cats!"
mood_change = 2
diff --git a/code/datums/mutable_appearance.dm b/code/datums/mutable_appearance.dm
index f6e29ab02cf54..b194b34de7e99 100644
--- a/code/datums/mutable_appearance.dm
+++ b/code/datums/mutable_appearance.dm
@@ -26,11 +26,12 @@
/// Produces a mutable appearance glued to the [EMISSIVE_PLANE] dyed to be the [EMISSIVE_COLOR].
/// Setting the layer is highly important
-/proc/emissive_appearance(icon, icon_state = "", layer = FLOAT_LAYER, alpha = 255, appearance_flags = NONE)
+/proc/emissive_appearance(icon, icon_state = "", layer = FLOAT_LAYER, alpha = 255, appearance_flags = NONE, filters)
// We actually increase the layer ever so slightly so that emissives overpower blockers.
// We do this because emissives and blockers can be applied to the same item and in that case
// we do not want the item to block its own emissive overlay.
var/mutable_appearance/appearance = mutable_appearance(icon, icon_state, layer + 0.01, EMISSIVE_PLANE, alpha, appearance_flags | EMISSIVE_APPEARANCE_FLAGS)
+ appearance.filters = filters
var/list/found = GLOB.emissive_color[alpha+1]
if (!found)
found = GLOB.emissive_color[alpha+1] = list(0,0,0,0, 0,0,0,0, 0,0,0,0, 0,0,0,alpha/255, 1,1,1,0)
diff --git a/code/datums/status_effects/buffs.dm b/code/datums/status_effects/buffs.dm
index d2f115db8aa2b..95d573a3d8283 100644
--- a/code/datums/status_effects/buffs.dm
+++ b/code/datums/status_effects/buffs.dm
@@ -568,6 +568,9 @@
owner.set_blurriness(0)
owner.restore_blood()
owner.bodytemperature = owner.get_body_temp_normal()
+ if(istype(owner, /mob/living/carbon/human))
+ var/mob/living/carbon/human/humi = owner
+ humi.coretemperature = humi.get_body_temp_normal()
owner.restoreEars()
duration = rand(150, 450) * power
return TRUE
diff --git a/code/datums/weather/weather.dm b/code/datums/weather/weather.dm
index 22c378658fa22..6c4397e7af0d2 100644
--- a/code/datums/weather/weather.dm
+++ b/code/datums/weather/weather.dm
@@ -24,7 +24,9 @@
var/area_type = /area/space //Types of area to affect
var/protect_indoors = FALSE // set to TRUE to protect indoor areas
- var/list/impacted_areas = list() //Areas to be affected by the weather, calculated when the weather begins
+ /// Areas to be affected by the weather, calculated when the weather begins.
+ /// * If you need to update this list outside of this datum, you might be doing wrong. use update_areas(new_list)
+ VAR_PRIVATE/list/impacted_areas = list()
var/list/protected_areas = list()//Areas that are protected and excluded from the affected areas.
var/impacted_z_levels // The list of z-levels that this weather is actively affecting
@@ -33,7 +35,10 @@
var/aesthetic = FALSE //If the weather has no purpose other than looks
var/immunity_type = "storm" //Used by mobs to prevent them from being affected by the weather
- var/stage = END_STAGE //The stage of the weather, from 1-4
+ /// The stage of the weather, from 1-4
+ var/stage = END_STAGE
+ /// takes the same value as stage by update_areas(). Used to prevent overlay error.
+ VAR_PRIVATE/overlay_stage
// These are read by the weather subsystem and used to determine when and where to run the weather.
var/probability = 0 // Weight amongst other eligible weather. If zero, will never happen randomly.
@@ -48,6 +53,7 @@
var/mutable_appearance/cached_weather_sprite_start
var/mutable_appearance/cached_weather_sprite_process
var/mutable_appearance/cached_weather_sprite_end
+ var/mutable_appearance/cached_current_overlay // a quick access variable
/datum/weather/New(z_levels)
..()
@@ -148,41 +154,99 @@
/datum/weather/proc/weather_act(mob/living/L) //What effect does this weather have on the hapless mob?
return
-/datum/weather/proc/update_areas()
- var/previous_overlay
- var/new_overlay
+/// * [Func A] If list/newly_given_areas = null, It will update area overlays to new weather stage overlay. Typically called by this datum itself.
+/// * [Func B] If list/newly_given_areas is given + overlay is not changed, it will apply overlays to new areas, and remove old areas.
+/// * [Func C] If list/newly_given_areas is given + overlay stage is changed, it will remove old overlay from old areas, and apply new overlay to new areas.
+/datum/weather/proc/update_areas(list/newly_given_areas = null)
+ if(overlay_stage == stage && isnull(newly_given_areas))
+ CRASH("update_areas() is called again while weather overlay is already set (and list/newly_given_areas doesn't exist). stage:[stage] / overlay_stage:[overlay_stage]")
+ overlay_stage = stage
+
+ var/new_overlay = null
switch(stage)
if(STARTUP_STAGE)
if(cached_weather_sprite_start)
new_overlay = cached_weather_sprite_start
- previous_overlay = TRUE // temporary value. see below.
if(MAIN_STAGE)
- if(cached_weather_sprite_start)
- previous_overlay = cached_weather_sprite_start
if(cached_weather_sprite_process)
new_overlay = cached_weather_sprite_process
if(WIND_DOWN_STAGE)
- if(cached_weather_sprite_process)
- previous_overlay = cached_weather_sprite_process
if(cached_weather_sprite_end)
new_overlay = cached_weather_sprite_end
- if(END_STAGE)
- if(cached_weather_sprite_end)
- previous_overlay = cached_weather_sprite_end
- new_overlay = TRUE // temporary value. see below.
+ var/is_overlay_same = (cached_current_overlay == new_overlay)
+ if(is_overlay_same && isnull(newly_given_areas) && isnull(cached_current_overlay) && isnull(new_overlay)) // changing null? meaningless
+ return
- // we won't iterate all areas unnecesarily
- if(!previous_overlay && !new_overlay)
+ //! [Func A] Standard update_areas. This will typically do the weather overlay change.
+ if(isnull(newly_given_areas))
+ if(is_overlay_same) // we don't have to iterate
+ return
+
+ // ugly if conditions, but optimisation. We don't want to do if() checks in for loop
+ if(cached_current_overlay && new_overlay)
+ for(var/area/each_area as anything in impacted_areas)
+ each_area.cut_overlay(cached_current_overlay)
+ each_area.add_overlay(new_overlay)
+ else if(cached_current_overlay)
+ for(var/area/each_area as anything in impacted_areas)
+ each_area.cut_overlay(cached_current_overlay)
+ else if(new_overlay)
+ for(var/area/each_area as anything in impacted_areas)
+ each_area.add_overlay(new_overlay)
+
+ cached_current_overlay = new_overlay // remembers previous one
return
- // removing TRUE value because we don't want typecheck every iteration from for loop
- if(previous_overlay == TRUE)
- previous_overlay = null
- if(new_overlay == TRUE)
- new_overlay = null
+ if(!islist(newly_given_areas))
+ CRASH("lsit/newly_given_areas has been given, but it's not a list()")
+
+
+ // From after this line, It means list/newly_given_areas has a list to update
+ // This will remove old areas, and overlay from list/impacted_areas
+ // and add a new overlay to new areas
+ // And list/impacted_areas will be updated with the new list
+
+ if(is_overlay_same)
+ //! [Func B] overlays are the same, but we have new areas.
+ // * Calculate list
+ // * Early return if there's no list to iterate
+ // * If old_areas_to_remove exists, cut_overlay() for those
+ // * If new_areas_to_add exists, add_overlay() for those
+ var/list/old_areas_to_remove
+ var/list/new_areas_to_add
+ if(length(newly_given_areas))
+ old_areas_to_remove = impacted_areas - newly_given_areas
+ new_areas_to_add = newly_given_areas - impacted_areas
+ /*
+ impacted_areas = list(A, B, C, D)
+ newly_given_areas = list(C, D, E, F)
+
+ old_areas_to_remove = list(A, B) // we want to remove already existing overlay from this
+ new_areas_to_add = list(E, F) // and add the existing overlay to this
+ */
+
+ if(!length(new_areas_to_add) && !length(old_areas_to_remove)) // nope
+ return
+
+ if(cached_current_overlay) // do the change only overlay exists. If there's no overlay, we'll just save list/newly_given_areas
+ for(var/area/each_old_area as anything in old_areas_to_remove)
+ each_old_area.cut_overlay(cached_current_overlay)
+ for(var/area/each_new_area as anything in new_areas_to_add)
+ each_new_area.add_overlay(cached_current_overlay)
+ impacted_areas = newly_given_areas.Copy() // this is now our new team
+ // Note: "new_areas_to_add" is not correct to copy. We just needed to apply cached overlay to new areas.
+ return
- for(var/area/each_area as anything in impacted_areas)
- if(previous_overlay)
- each_area.cut_overlay(previous_overlay)
+ else
+ //! [Func C] different overlays, but also we have new areas
+ // * Removing old overlays from impacted_areas
+ // * Adding new overlays to new areas
+ if(cached_current_overlay)
+ for(var/area/each_old_area as anything in impacted_areas)
+ each_old_area.cut_overlay(cached_current_overlay)
if(new_overlay)
- each_area.add_overlay(new_overlay)
+ for(var/area/each_new_area as anything in newly_given_areas)
+ each_new_area.add_overlay(new_overlay)
+ cached_current_overlay = new_overlay
+ impacted_areas = newly_given_areas.Copy() // this is now our new team
+ return
diff --git a/code/game/area/areas.dm b/code/game/area/areas.dm
index f0b60282d5b1f..4eca7edafc33b 100644
--- a/code/game/area/areas.dm
+++ b/code/game/area/areas.dm
@@ -475,29 +475,12 @@ GLOBAL_LIST_EMPTY(teleportlocs)
for(var/obj/machinery/light/L in src)
L.update(TRUE, TRUE, TRUE)
-/**
- * Update the icon state of the area
- *
- * Im not sure what the heck this does, somethign to do with weather being able to set icon
- * states on areas?? where the heck would that even display?
- */
-/area/update_icon_state()
- var/weather_icon
- for(var/V in SSweather.processing)
- var/datum/weather/W = V
- if(W.stage != END_STAGE && (src in W.impacted_areas))
- W.update_areas()
- weather_icon = TRUE
- if(!weather_icon)
- icon_state = null
- return ..()
/**
* Update the icon of the area (overridden to always be null for space
*/
/area/space/update_icon_state()
SHOULD_CALL_PARENT(FALSE)
icon_state = null
- return ..()
/**
* Returns int 1 or 0 if the area has power for the given channel
diff --git a/code/game/machinery/cell_charger.dm b/code/game/machinery/cell_charger.dm
index 7b21dff633dfa..bd0a164f12229 100644
--- a/code/game/machinery/cell_charger.dm
+++ b/code/game/machinery/cell_charger.dm
@@ -101,6 +101,7 @@
to_chat(user, "You telekinetically remove [charging] from [src].")
removecell()
+ return COMPONENT_CANCEL_ATTACK_CHAIN
/obj/machinery/cell_charger/attack_ai(mob/user)
return
diff --git a/code/game/machinery/digital_clock.dm b/code/game/machinery/digital_clock.dm
new file mode 100644
index 0000000000000..8793d113cabd7
--- /dev/null
+++ b/code/game/machinery/digital_clock.dm
@@ -0,0 +1,181 @@
+/obj/machinery/digital_clock
+ name = "digital clock"
+ desc = "A next-gen normal digital clock that tells the local time. Do not mistake it with shift time!"
+ icon_state = "digital_clock_base"
+ icon = 'icons/obj/digital_clock.dmi'
+ verb_say = "beeps"
+ verb_ask = "bloops"
+ verb_exclaim = "blares"
+ max_integrity = 250
+ obj_integrity = 250
+ density = FALSE
+ layer = ABOVE_WINDOW_LAYER
+ var/station_minutes
+ var/station_hours
+
+/obj/item/wallframe/digital_clock
+ name = "digital clock frame"
+ desc = "Used to build digital clocks, just secure to the wall."
+ icon_state = "digital_clock"
+ icon = 'icons/obj/wallframe.dmi'
+ custom_materials = list(/datum/material/iron = 700, /datum/material/glass = 400)
+ result_path = /obj/machinery/digital_clock
+ pixel_shift = -28
+
+/obj/machinery/digital_clock/wrench_act(mob/living/user, obj/item/tool)
+ . = ..()
+ if(user.a_intent == INTENT_HARM)
+ return
+ to_chat(user, "You start unsecuring [name]...")
+ tool.play_tool_sound(src)
+ if(tool.use_tool(src, user, 6 SECONDS))
+ playsound(loc, 'sound/items/deconstruct.ogg', 50, vary = TRUE)
+ to_chat(user, "You unsecure [name].")
+ deconstruct()
+ return ..()
+
+/obj/machinery/digital_clock/welder_act(mob/living/user, obj/item/tool)
+ . = ..()
+ if(user.a_intent == INTENT_HARM)
+ return
+ if(obj_integrity >= max_integrity)
+ balloon_alert(user, "it doesn't need repairs!")
+ return TRUE
+ to_chat(user, "You start to repair [name]...")
+ if(!tool.use_tool(src, user, 4 SECONDS, amount = 0, volume=50))
+ return TRUE
+ to_chat(user, "You finish to repair [name]...")
+ obj_integrity = max_integrity
+ set_machine_stat(machine_stat & ~BROKEN)
+ update_appearance()
+ return TRUE
+
+/obj/machinery/digital_clock/multitool_act(mob/living/user, obj/item/tool)
+ . = ..()
+ if(user.a_intent == INTENT_HARM)
+ return
+ if(!(obj_flags & EMAGGED))
+ return
+ to_chat(user, "You start resetting [name]...")
+ tool.play_tool_sound(src)
+ if(tool.use_tool(src, user, 6 SECONDS))
+ playsound(loc, 'sound/items/deconstruct.ogg', 50, vary = TRUE)
+ to_chat(user, "You finish to reset [name]...")
+ obj_flags &= ~EMAGGED
+ return TRUE
+
+/obj/machinery/digital_clock/on_emag(mob/user)
+ ..()
+ to_chat(user, "You short the clock's timer!")
+ playsound(src, "sparks", 100, vary = TRUE, extrarange = SHORT_RANGE_SOUND_EXTRARANGE)
+ do_sparks(3, cardinal_only = FALSE, source = src)
+ obj_flags |= EMAGGED
+
+/obj/machinery/digital_clock/deconstruct(disassembled = TRUE)
+ if(!(flags_1 & NODECONSTRUCT_1))
+ if(disassembled)
+ new /obj/item/wallframe/digital_clock(loc)
+ else
+ new /obj/item/stack/sheet/iron(loc, 2)
+ new /obj/item/shard(loc)
+ new /obj/item/shard(loc)
+ qdel(src)
+
+/obj/machinery/digital_clock/Initialize(mapload)
+ . = ..()
+ START_PROCESSING(SSdigital_clock, src)
+
+/obj/machinery/digital_clock/Destroy()
+ STOP_PROCESSING(SSdigital_clock, src)
+ return ..()
+
+/obj/machinery/digital_clock/process()
+ if(machine_stat & NOPOWER)
+ return
+ update_time()
+ if((station_hours == 0 || station_hours == 12) && station_minutes == 0)
+ if(!TIMER_COOLDOWN_CHECK(src, COOLDOWN_CLOCK_WMCHIMES))
+ playsound(src.loc, 'sound/machines/westminister_chimes.ogg', 75)
+ TIMER_COOLDOWN_START(src, COOLDOWN_CLOCK_WMCHIMES, 10 SECONDS)
+ update_appearance()
+
+/obj/machinery/digital_clock/update_appearance(updates=ALL)
+ . = ..()
+ if(machine_stat & (NOPOWER|BROKEN))
+ set_light(0)
+ return
+ set_light(l_range = 1.5, l_power = 0.7, l_color = LIGHT_COLOR_BLUE) // blue light
+
+/obj/machinery/digital_clock/update_overlays()
+ . = ..()
+ if(machine_stat & (NOPOWER|BROKEN))
+ return
+ . += update_time()
+ return .
+
+/obj/machinery/digital_clock/examine(mob/user)
+ . = ..()
+ var/live_time = station_time_timestamp(format = "hh:mm")
+
+ if(obj_flags & EMAGGED)
+ . += "The time doesn't seem quite right!"
+ else
+ . += "The current station time is [live_time]."
+
+/obj/machinery/digital_clock/proc/update_time()
+ if(obj_flags & EMAGGED)
+ station_hours = rand(0, 99)
+ station_minutes = rand(0, 99)
+ else
+ station_hours = text2num(station_time_timestamp(format = "hh"))
+ station_minutes = text2num(station_time_timestamp(format = "mm"))
+
+ // tenth / the '3' in '31' / 31 -> 3.1 -> 3
+ var/station_minute_tenth = station_minutes >= 10 ? round(station_minutes * 0.1) : 0
+ // one / the '1' in '31' / 31 -> 31 - (3 * 10) -> 31 - 30 -> 1
+ var/station_minute_one = station_minutes - (station_minute_tenth * 10)
+
+ // one / the '1' in '12' / 12 -> 1.2 -> 1
+ var/station_hours_tenth = station_hours >= 10 ? round(station_hours * 0.1) : 0
+ // tenth / the '2' in '12' / 12 -> 12 - (1 * 10) -> 12 - 10 -> 2
+ var/station_hours_one = station_hours - (station_hours_tenth * 10)
+
+ var/return_overlays = list()
+
+ var/mutable_appearance/minute_one_overlay = mutable_appearance('icons/obj/digital_clock.dmi', "+[station_minute_one]")
+ minute_one_overlay.pixel_w = 0
+ return_overlays += minute_one_overlay
+
+ var/mutable_appearance/minute_tenth_overlay = mutable_appearance('icons/obj/digital_clock.dmi', "+[station_minute_tenth]")
+ minute_tenth_overlay.pixel_w = -4
+ return_overlays += minute_tenth_overlay
+
+ var/mutable_appearance/separator = mutable_appearance('icons/obj/digital_clock.dmi', "+separator")
+ return_overlays += separator
+
+ var/mutable_appearance/hour_one_overlay = mutable_appearance('icons/obj/digital_clock.dmi', "+[station_hours_one]")
+ hour_one_overlay.pixel_w = -10
+ return_overlays += hour_one_overlay
+
+ var/mutable_appearance/hour_tenth_overlay = mutable_appearance('icons/obj/digital_clock.dmi', "+[station_hours_tenth]")
+ hour_tenth_overlay.pixel_w = -14
+ return_overlays += hour_tenth_overlay
+
+ return return_overlays
+
+
+/obj/machinery/digital_clock/directional/north
+ dir = SOUTH
+ pixel_y = 28
+
+/obj/machinery/digital_clock/directional/south
+ dir = NORTH
+ pixel_y = -28
+
+/obj/machinery/digital_clock/directional/east
+ dir = WEST
+ pixel_x = 28
+
+/obj/machinery/digital_clock/directional/west
+ dir = EAST
+ pixel_x = -28
diff --git a/code/game/mecha/equipment/tools/medical_tools.dm b/code/game/mecha/equipment/tools/medical_tools.dm
index 99ab20edbbe60..22faa231ac704 100644
--- a/code/game/mecha/equipment/tools/medical_tools.dm
+++ b/code/game/mecha/equipment/tools/medical_tools.dm
@@ -163,8 +163,13 @@
t1 = "*dead*"
else
t1 = "Unknown"
+ var/core_temp = ""
+ if(ishuman(patient))
+ var/mob/living/carbon/human/humi = patient
+ core_temp = {"Body Temperature: [humi.bodytemperature-T0C]°C ([humi.bodytemperature*1.8-459.67]°F)
"}
return {"Health: [patient.stat > 1 ? "[t1]" : "[patient.health]% ([t1])"]
- Core Temperature: [patient.bodytemperature-T0C]°C ([patient.bodytemperature*1.8-459.67]°F)
+ [core_temp]
+ Body Temperature: [patient.bodytemperature-T0C]°C ([patient.bodytemperature*1.8-459.67]°F)
Brute Damage: [patient.getBruteLoss()]%
Respiratory Damage: [patient.getOxyLoss()]%
Toxin Content: [patient.getToxLoss()]%
diff --git a/code/game/mecha/equipment/tools/mining_tools.dm b/code/game/mecha/equipment/tools/mining_tools.dm
index 44b98a94ed8e5..b59c15b20f6d9 100644
--- a/code/game/mecha/equipment/tools/mining_tools.dm
+++ b/code/game/mecha/equipment/tools/mining_tools.dm
@@ -129,7 +129,7 @@
target.apply_damage(10, BRUTE, BODY_ZONE_CHEST, target.run_armor_check(target_part, MELEE))
//blood splatters and sparks
- if(issilicon(target) || isbot(target) || isswarmer(target) || !IS_ORGANIC_LIMB(target_part))
+ if(issilicon(target) || isbot(target) || isswarmer(target) || IS_ROBOTIC_LIMB(target_part))
do_sparks(rand(1, 3), FALSE, target.drop_location())
else
var/splatter_dir = get_dir(chassis, target)
diff --git a/code/game/mecha/mecha.dm b/code/game/mecha/mecha.dm
index c57158d222afb..d4fd5438d1c41 100644
--- a/code/game/mecha/mecha.dm
+++ b/code/game/mecha/mecha.dm
@@ -1124,9 +1124,6 @@
to_chat(occupant, "[icon2html(src, occupant)] [message]")
return
-GLOBAL_VAR_INIT(year, time2text(world.realtime,"YYYY"))
-GLOBAL_VAR_INIT(year_integer, text2num(year)) // = 2013???
-
///////////////////////
///// Power stuff /////
///////////////////////
diff --git a/code/game/objects/items/RPD.dm b/code/game/objects/items/RPD.dm
index 2e1094c979931..00e48c6a8dba5 100644
--- a/code/game/objects/items/RPD.dm
+++ b/code/game/objects/items/RPD.dm
@@ -469,7 +469,7 @@ GLOBAL_LIST_INIT(fluid_duct_recipes, list(
attack_target = get_turf(attack_target)
var/can_make_pipe = (isturf(attack_target) || is_type_in_typecache(attack_target, rpd_whitelist))
- . = FALSE
+ . = TRUE
if((mode & DESTROY_MODE) && is_type_in_typecache(A, rpd_targets))
to_chat(user, "You start destroying a pipe...")
diff --git a/code/game/objects/items/devices/scanners.dm b/code/game/objects/items/devices/scanners.dm
index 88ffd03dbb0af..6eb9233fd7d8f 100644
--- a/code/game/objects/items/devices/scanners.dm
+++ b/code/game/objects/items/devices/scanners.dm
@@ -432,6 +432,7 @@ GENE SCANNER
mutant = TRUE
message += "Species: [S.name][mutant ? "-derived mutant" : ""]"
+ message += "Core temperature: [round(H.coretemperature-T0C,0.1)] °C ([round(H.coretemperature*1.8-459.67,0.1)] °F)"
message += "Body temperature: [round(M.bodytemperature-T0C,0.1)] °C ([round(M.bodytemperature*1.8-459.67,0.1)] °F)"
// Time of death
diff --git a/code/game/objects/items/robot/ai_upgrades.dm b/code/game/objects/items/robot/ai_upgrades.dm
index 296af65198de6..322a4eefeb7a1 100644
--- a/code/game/objects/items/robot/ai_upgrades.dm
+++ b/code/game/objects/items/robot/ai_upgrades.dm
@@ -9,10 +9,10 @@
icon_state = "datadisk3"
-/obj/item/malf_upgrade/afterattack(mob/living/silicon/ai/AI, mob/user)
- . = ..()
- if(!istype(AI))
- return
+/obj/item/malf_upgrade/pre_attack(atom/A, mob/living/user)
+ if(!isAI(A))
+ return ..()
+ var/mob/living/silicon/ai/AI = A
if(AI.malf_picker)
AI.malf_picker.processing_time += 50
to_chat(AI, "[user] has attempted to upgrade you with combat software that you already possess. You gain 50 points to spend on Malfunction Modules instead.")
@@ -24,7 +24,7 @@
message_admins("[ADMIN_LOOKUPFLW(user)] has upgraded [ADMIN_LOOKUPFLW(AI)] with a [src].")
to_chat(user, "You upgrade [AI]. [src] is consumed in the process.")
qdel(src)
-
+ return TRUE
//Lipreading
/obj/item/surveillance_upgrade
@@ -33,10 +33,10 @@
icon = 'icons/obj/module.dmi'
icon_state = "datadisk3"
-/obj/item/surveillance_upgrade/afterattack(mob/living/silicon/ai/AI, mob/user)
- . = ..()
- if(!istype(AI))
- return
+/obj/item/surveillance_upgrade/pre_attack(atom/A, mob/living/user)
+ if(!isAI(A))
+ return ..()
+ var/mob/living/silicon/ai/AI = A
if(AI.eyeobj)
AI.eyeobj.set_relay_speech(TRUE)
to_chat(AI, "[user] has upgraded you with surveillance software!")
@@ -45,3 +45,4 @@
log_game("[key_name(user)] has upgraded [key_name(AI)] with a [src].")
message_admins("[ADMIN_LOOKUPFLW(user)] has upgraded [ADMIN_LOOKUPFLW(AI)] with a [src].")
qdel(src)
+ return TRUE
diff --git a/code/game/objects/items/stacks/sheets/mineral/metals.dm b/code/game/objects/items/stacks/sheets/mineral/metals.dm
index 8da1116efe5a7..fb274d1fd2473 100644
--- a/code/game/objects/items/stacks/sheets/mineral/metals.dm
+++ b/code/game/objects/items/stacks/sheets/mineral/metals.dm
@@ -94,7 +94,7 @@ Metals Sheets
return
var/turf/T = get_turf(user) //we may have moved. adjust as needed...
var/area/A = get_area(user)
- if((!is_station_level(T.z) && !is_mining_level(T.z)) || (A && !(A.area_flags & BLOBS_ALLOWED)))
+ if((!is_station_level(T.z) && !is_mining_level(T.z)) || (A && !(A.area_flags & (BLOBS_ALLOWED | VALID_TERRITORY))))
to_chat(user, "The veil is not weak enough here.")
return FALSE
return ..()
diff --git a/code/game/objects/items/teleportation.dm b/code/game/objects/items/teleportation.dm
index 9f67d17f582b5..d62d696dd7bcb 100644
--- a/code/game/objects/items/teleportation.dm
+++ b/code/game/objects/items/teleportation.dm
@@ -123,7 +123,7 @@
/obj/item/hand_tele/pre_attack(atom/target, mob/user, params)
if(try_dispel_portal(target, user))
- return FALSE
+ return TRUE
return ..()
/obj/item/hand_tele/proc/try_dispel_portal(obj/effect/portal/target, mob/user)
diff --git a/code/game/objects/items/theft_tools.dm b/code/game/objects/items/theft_tools.dm
index e92289f30efa1..4e579bfddd7b9 100644
--- a/code/game/objects/items/theft_tools.dm
+++ b/code/game/objects/items/theft_tools.dm
@@ -127,8 +127,8 @@
item_state = "supermattersliver"
pulseicon = "supermatter_sliver_pulse"
-/obj/item/nuke_core/supermatter_sliver/attack_tk() // no TK dusting memes
- return FALSE
+/obj/item/nuke_core/supermatter_sliver/attack_tk(mob/user) // no TK dusting memes
+ return
/obj/item/nuke_core/supermatter_sliver/can_be_pulled(user) // no drag memes
return FALSE
diff --git a/code/game/objects/structures/beds_chairs/chair.dm b/code/game/objects/structures/beds_chairs/chair.dm
index b8cf038e37951..4c93ddb74d010 100644
--- a/code/game/objects/structures/beds_chairs/chair.dm
+++ b/code/game/objects/structures/beds_chairs/chair.dm
@@ -94,9 +94,9 @@
/obj/structure/chair/attack_tk(mob/user)
if(!anchored || has_buckled_mobs() || !isturf(user.loc))
- ..()
- else
- setDir(turn(dir,-90))
+ return ..()
+ setDir(turn(dir,-90))
+ return COMPONENT_CANCEL_ATTACK_CHAIN
/obj/structure/chair/proc/handle_rotation(direction)
handle_layer()
diff --git a/code/game/objects/structures/bedsheet_bin.dm b/code/game/objects/structures/bedsheet_bin.dm
index b26314ec37c13..9648e4d4358a3 100644
--- a/code/game/objects/structures/bedsheet_bin.dm
+++ b/code/game/objects/structures/bedsheet_bin.dm
@@ -105,6 +105,7 @@
hidden = null
add_fingerprint(user)
+ return COMPONENT_CANCEL_ATTACK_CHAIN
/obj/structure/bedsheetbin/attack_tk(mob/user)
if(amount >= 1)
diff --git a/code/game/objects/structures/crates_lockers/closets.dm b/code/game/objects/structures/crates_lockers/closets.dm
index e9fd7f1bbf230..71d88db88d179 100644
--- a/code/game/objects/structures/crates_lockers/closets.dm
+++ b/code/game/objects/structures/crates_lockers/closets.dm
@@ -461,7 +461,8 @@
// tk grab then use on self
/obj/structure/closet/attack_self_tk(mob/user)
- return attack_hand(user)
+ if(attack_hand(user))
+ return COMPONENT_CANCEL_ATTACK_CHAIN
/obj/structure/closet/verb/verb_toggleopen()
set src in view(1)
diff --git a/code/game/objects/structures/extinguisher.dm b/code/game/objects/structures/extinguisher.dm
index 7c43db431012a..c8aa218581b37 100644
--- a/code/game/objects/structures/extinguisher.dm
+++ b/code/game/objects/structures/extinguisher.dm
@@ -93,15 +93,16 @@
/obj/structure/extinguisher_cabinet/attack_tk(mob/user)
+ . = COMPONENT_CANCEL_ATTACK_CHAIN
if(stored_extinguisher)
stored_extinguisher.forceMove(loc)
to_chat(user, "You telekinetically remove [stored_extinguisher] from [src].")
stored_extinguisher = null
- opened = 1
+ opened = TRUE
playsound(loc, 'sound/machines/click.ogg', 15, 1, -3)
update_icon()
- else
- toggle_cabinet(user)
+ return
+ toggle_cabinet(user)
/obj/structure/extinguisher_cabinet/attack_paw(mob/user)
diff --git a/code/game/objects/structures/fireaxe.dm b/code/game/objects/structures/fireaxe.dm
index 599157471090a..669026f47062d 100644
--- a/code/game/objects/structures/fireaxe.dm
+++ b/code/game/objects/structures/fireaxe.dm
@@ -133,13 +133,12 @@
return
/obj/structure/fireaxecabinet/attack_tk(mob/user)
+ . = COMPONENT_CANCEL_ATTACK_CHAIN
if(locked)
to_chat(user, "The [name] won't budge!")
return
- else
- open = !open
- update_appearance()
- return
+ open = !open
+ update_icon()
/obj/structure/fireaxecabinet/update_icon()
cut_overlays()
diff --git a/code/game/objects/structures/tables_racks.dm b/code/game/objects/structures/tables_racks.dm
index 115276a9dd3a8..ed8dec679fa57 100644
--- a/code/game/objects/structures/tables_racks.dm
+++ b/code/game/objects/structures/tables_racks.dm
@@ -114,8 +114,8 @@
user.stop_pulling()
return ..()
-/obj/structure/table/attack_tk()
- return FALSE
+/obj/structure/table/attack_tk(mob/user)
+ return
/obj/structure/table/CanAllowThrough(atom/movable/mover, border_dir)
. = ..()
diff --git a/code/game/objects/structures/window.dm b/code/game/objects/structures/window.dm
index 9c7374d0cec66..a033bd4b51f8b 100644
--- a/code/game/objects/structures/window.dm
+++ b/code/game/objects/structures/window.dm
@@ -150,6 +150,7 @@
user.visible_message("Something knocks on [src].")
add_fingerprint(user)
playsound(src, 'sound/effects/Glassknock.ogg', 50, 1)
+ return COMPONENT_CANCEL_ATTACK_CHAIN
/obj/structure/window/attack_hulk(mob/living/carbon/human/user, does_attack_animation = 0)
if(!can_be_reached(user))
diff --git a/code/game/turfs/turf.dm b/code/game/turfs/turf.dm
index 760a3a6e2a0fe..7f4be91b18acf 100644
--- a/code/game/turfs/turf.dm
+++ b/code/game/turfs/turf.dm
@@ -204,7 +204,7 @@ GLOBAL_LIST_EMPTY(created_baseturf_lists)
else if(allow_z_travel)
to_chat(user, "You can't float up and down when there is gravity!")
. = ..()
- if(SEND_SIGNAL(user, COMSIG_MOB_ATTACK_HAND_TURF, src) & COMPONENT_NO_ATTACK_HAND)
+ if(SEND_SIGNAL(user, COMSIG_MOB_ATTACK_HAND_TURF, src) & COMPONENT_CANCEL_ATTACK_CHAIN)
. = TRUE
if(.)
return
diff --git a/code/modules/actionspeed/modifiers/hunger.dm b/code/modules/actionspeed/modifiers/hunger.dm
new file mode 100644
index 0000000000000..8e9007dcbfda9
--- /dev/null
+++ b/code/modules/actionspeed/modifiers/hunger.dm
@@ -0,0 +1,7 @@
+/datum/actionspeed_modifier/starving
+ multiplicative_slowdown = 0.25
+ id = ACTIONSPEED_ID_SATIETY
+
+/datum/actionspeed_modifier/well_fed
+ multiplicative_slowdown = -0.1
+ id = ACTIONSPEED_ID_SATIETY
diff --git a/code/modules/actionspeed/modifiers/mood.dm b/code/modules/actionspeed/modifiers/mood.dm
deleted file mode 100644
index d8ed005d42b35..0000000000000
--- a/code/modules/actionspeed/modifiers/mood.dm
+++ /dev/null
@@ -1,7 +0,0 @@
-/datum/actionspeed_modifier/low_sanity
- multiplicative_slowdown = 0.25
- id = ACTIONSPEED_ID_SANITY
-
-/datum/actionspeed_modifier/high_sanity
- multiplicative_slowdown = -0.1
- id = ACTIONSPEED_ID_SANITY
diff --git a/code/modules/antagonists/cult/cult.dm b/code/modules/antagonists/cult/cult.dm
index 59b756e69f887..1153b94a20028 100644
--- a/code/modules/antagonists/cult/cult.dm
+++ b/code/modules/antagonists/cult/cult.dm
@@ -293,7 +293,7 @@
new /obj/effect/temp_visual/cult/sparks(get_turf(H), H.dir)
var/istate = pick("halo1","halo2","halo3","halo4","halo5","halo6")
var/mutable_appearance/new_halo_overlay = mutable_appearance('icons/effects/32x64.dmi', istate, CALCULATE_MOB_OVERLAY_LAYER(HALO_LAYER))
- new_halo_overlay.overlays.Add(emissive_appearance('icons/effects/32x64.dmi', istate, CALCULATE_MOB_OVERLAY_LAYER(HALO_LAYER), 160))
+ new_halo_overlay.overlays.Add(emissive_appearance('icons/effects/32x64.dmi', istate, CALCULATE_MOB_OVERLAY_LAYER(HALO_LAYER), 160, filters = H.filters))
ADD_LUM_SOURCE(H, LUM_SOURCE_HOLY)
H.overlays_standing[HALO_LAYER] = new_halo_overlay
H.apply_overlay(HALO_LAYER)
diff --git a/code/modules/antagonists/cult/cult_items.dm b/code/modules/antagonists/cult/cult_items.dm
index 17418e5b8d719..d5733af499ffb 100644
--- a/code/modules/antagonists/cult/cult_items.dm
+++ b/code/modules/antagonists/cult/cult_items.dm
@@ -758,6 +758,7 @@ Striking a noncultist, however, will tear their flesh."}
fire_sound = 'sound/magic/wand_teleport.ogg'
weapon_weight = WEAPON_LIGHT
equip_time = 0
+ has_weapon_slowdown = FALSE
/obj/item/ammo_box/magazine/internal/boltaction/enchanted/arcane_barrage/blood
ammo_type = /obj/item/ammo_casing/magic/arcane_barrage/blood
diff --git a/code/modules/antagonists/heretic/knowledge/void_lore.dm b/code/modules/antagonists/heretic/knowledge/void_lore.dm
index 06c0852573795..e3ae1b7644442 100644
--- a/code/modules/antagonists/heretic/knowledge/void_lore.dm
+++ b/code/modules/antagonists/heretic/knowledge/void_lore.dm
@@ -297,8 +297,7 @@
storm.telegraph()
storm.area_type = source_area.type
- storm.impacted_areas = list(source_area)
- storm.update_areas()
+ storm.update_areas(list(source_area))
/**
* Signal proc for [COMSIG_MOB_DEATH].
diff --git a/code/modules/antagonists/hivemind/spells/hivemind_shatter.dm b/code/modules/antagonists/hivemind/spells/hivemind_shatter.dm
index d2851245c5e2e..a9c453361e46c 100644
--- a/code/modules/antagonists/hivemind/spells/hivemind_shatter.dm
+++ b/code/modules/antagonists/hivemind/spells/hivemind_shatter.dm
@@ -5,6 +5,13 @@
charge_max = 1800
+ var/static/list/special_roles // security roles + Captain are resistant against this spell
+
+/obj/effect/proc_holder/spell/target_hive/hive_shatter/Initialize(mapload)
+ . = ..()
+ if(!special_roles)
+ special_roles = GLOB.security_positions.Copy() + JOB_NAME_CAPTAIN
+
/obj/effect/proc_holder/spell/target_hive/hive_shatter/cast(list/targets, mob/living/user = usr)
var/mob/living/carbon/human/target = targets[1]
var/datum/antagonist/hivemind/hive = user.mind.has_antag_datum(/datum/antagonist/hivemind)
@@ -14,7 +21,7 @@
return
if(!hive.hivemembers)
return
- if(target.mind?.assigned_role in GLOB.security_positions || CAPTAIN)
+ if(target.mind?.assigned_role in special_roles)
to_chat(user, "A subconsciously trained response barely protects [target.name]'s mind.")
to_chat(target, "Powerful mental attacks strike out against us, our training allows us to barely overcome it.")
return
diff --git a/code/modules/antagonists/wizard/equipment/artefact.dm b/code/modules/antagonists/wizard/equipment/artefact.dm
index d34b0c0bee522..d5f5c07d10eff 100644
--- a/code/modules/antagonists/wizard/equipment/artefact.dm
+++ b/code/modules/antagonists/wizard/equipment/artefact.dm
@@ -131,16 +131,18 @@
)
/obj/tear_in_reality/attack_tk(mob/user)
- if(iscarbon(user))
- var/mob/living/carbon/C = user
- var/datum/component/mood/insaneinthemembrane = C.GetComponent(/datum/component/mood)
- if(insaneinthemembrane.sanity < 15)
- return //they've already seen it and are about to die, or are just too insane to care
- to_chat(C, "OH GOD! NONE OF IT IS REAL! NONE OF IT IS REEEEEEEEEEEEEEEEEEEEEEEEAL!")
- insaneinthemembrane.sanity = 0
- for(var/lore in typesof(/datum/brain_trauma/severe))
- C.gain_trauma(lore)
- addtimer(CALLBACK(src, PROC_REF(deranged), C), 100)
+ if(!iscarbon(user))
+ return
+ . = COMPONENT_CANCEL_ATTACK_CHAIN
+ var/mob/living/carbon/jedi = user
+ var/datum/component/mood/insaneinthemembrane = jedi.GetComponent(/datum/component/mood)
+ if(insaneinthemembrane.sanity < 15)
+ return //they've already seen it and are about to die, or are just too insane to care
+ to_chat(jedi, "OH GOD! NONE OF IT IS REAL! NONE OF IT IS REEEEEEEEEEEEEEEEEEEEEEEEAL!")
+ insaneinthemembrane.sanity = 0
+ for(var/lore in typesof(/datum/brain_trauma/severe))
+ jedi.gain_trauma(lore)
+ addtimer(CALLBACK(src, PROC_REF(deranged), jedi), 10 SECONDS)
/obj/tear_in_reality/proc/deranged(mob/living/carbon/C)
if(!C || C.stat == DEAD)
diff --git a/code/modules/clothing/glasses/_glasses.dm b/code/modules/clothing/glasses/_glasses.dm
index 799def9787b81..69f7a30104d53 100644
--- a/code/modules/clothing/glasses/_glasses.dm
+++ b/code/modules/clothing/glasses/_glasses.dm
@@ -43,7 +43,7 @@
. = ..()
// If we have an emissive state, add it to the worn icon too
if (!isinhands && emissive_state)
- . += emissive_appearance(icon_file, emissive_state, item_layer, 100)
+ . += emissive_appearance(icon_file, emissive_state, item_layer, 100, filters = origin.filters)
ADD_LUM_SOURCE(origin, LUM_SOURCE_GLASSES)
/obj/item/clothing/glasses/visor_toggling()
diff --git a/code/modules/clothing/shoes/bananashoes.dm b/code/modules/clothing/shoes/bananashoes.dm
index 133d80f67c07b..1ae58dd045454 100644
--- a/code/modules/clothing/shoes/bananashoes.dm
+++ b/code/modules/clothing/shoes/bananashoes.dm
@@ -12,23 +12,27 @@
. = ..()
AddComponent(/datum/component/material_container, list(/datum/material/bananium), 200000, TRUE, /obj/item/stack)
AddComponent(/datum/component/squeak, list('sound/items/bikehorn.ogg'=1), 75, falloff_exponent = 20)
+ RegisterSignal(src, COMSIG_SHOES_STEP_ACTION, PROC_REF(on_step))
if(always_noslip)
clothing_flags |= NOSLIP
-/obj/item/clothing/shoes/clown_shoes/banana_shoes/step_action()
- . = ..()
+/obj/item/clothing/shoes/clown_shoes/banana_shoes/proc/on_step()
+ SIGNAL_HANDLER
+
var/mob/wearer = loc
var/datum/component/material_container/bananium = GetComponent(/datum/component/material_container)
- if(on && istype(wearer))
- if(bananium.get_material_amount(/datum/material/bananium) < 100)
- on = !on
- if(!always_noslip)
- clothing_flags &= ~NOSLIP
- update_icon()
- to_chat(loc, "You ran out of bananium!")
- else
- new /obj/item/grown/bananapeel/specialpeel(get_step(src,turn(wearer.dir, 180))) //honk
- bananium.use_amount_mat(100, /datum/material/bananium)
+ if(!on || !istype(wearer))
+ return
+
+ if(bananium.get_material_amount(/datum/material/bananium) < 100)
+ on = !on
+ if(!always_noslip)
+ clothing_flags &= ~NOSLIP
+ update_icon()
+ to_chat(loc, "You ran out of bananium!")
+ else
+ new /obj/item/grown/bananapeel/specialpeel(get_step(src,turn(wearer.dir, 180))) //honk
+ bananium.use_amount_mat(100, /datum/material/bananium)
/obj/item/clothing/shoes/clown_shoes/banana_shoes/attack_self(mob/user)
var/datum/component/material_container/bananium = GetComponent(/datum/component/material_container)
diff --git a/code/modules/clothing/shoes/cluwne.dm b/code/modules/clothing/shoes/cluwne.dm
index d45d3753fb3af..b65bedff42fce 100644
--- a/code/modules/clothing/shoes/cluwne.dm
+++ b/code/modules/clothing/shoes/cluwne.dm
@@ -11,9 +11,12 @@
/obj/item/clothing/shoes/cluwne/Initialize(mapload)
.=..()
+ RegisterSignal(src, COMSIG_SHOES_STEP_ACTION, PROC_REF(on_step))
ADD_TRAIT(src, TRAIT_NODROP, CURSED_ITEM_TRAIT)
-/obj/item/clothing/shoes/cluwne/step_action()
+/obj/item/clothing/shoes/cluwne/proc/on_step()
+ SIGNAL_HANDLER
+
if(footstep > 1)
playsound(src, "clownstep", 50, 1)
footstep = 0
diff --git a/code/modules/clothing/shoes/miscellaneous.dm b/code/modules/clothing/shoes/miscellaneous.dm
index a58e4c78e8118..68eb7b389753b 100644
--- a/code/modules/clothing/shoes/miscellaneous.dm
+++ b/code/modules/clothing/shoes/miscellaneous.dm
@@ -1,5 +1,3 @@
-/obj/item/clothing/shoes/proc/step_action() //this was made to rewrite clown shoes squeaking
- SEND_SIGNAL(src, COMSIG_SHOES_STEP_ACTION)
/obj/item/clothing/shoes/combat //basic syndicate combat boots for nuke ops and mob corpses
name = "combat boots"
@@ -55,7 +53,13 @@
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/galoshes/dry/step_action()
+/obj/item/clothing/shoes/galoshes/dry/Initialize(mapload)
+ . = ..()
+ RegisterSignal(src, COMSIG_SHOES_STEP_ACTION, PROC_REF(on_step))
+
+/obj/item/clothing/shoes/galoshes/dry/proc/on_step()
+ SIGNAL_HANDLER
+
var/turf/open/t_loc = get_turf(src)
SEND_SIGNAL(t_loc, COMSIG_TURF_MAKE_DRY, TURF_WET_WATER, TRUE, INFINITY)
diff --git a/code/modules/clothing/spacesuits/hardsuit.dm b/code/modules/clothing/spacesuits/hardsuit.dm
index f6ab865e2ff16..ca31601d7f6c9 100644
--- a/code/modules/clothing/spacesuits/hardsuit.dm
+++ b/code/modules/clothing/spacesuits/hardsuit.dm
@@ -497,6 +497,7 @@
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/syndi
jetpack = /obj/item/tank/jetpack/suit
item_flags = ILLEGAL //Syndicate only and difficult to obtain outside of uplink anyway. Nukie hardsuits on the ship are illegal.
+ slowdown = 0.5
actions_types = list(
/datum/action/item_action/toggle_helmet,
/datum/action/item_action/toggle_beacon,
@@ -527,7 +528,7 @@
/obj/item/clothing/suit/space/hardsuit/syndi/proc/activate_space_mode()
name = initial(name)
desc = initial(desc)
- slowdown = 1
+ slowdown = 0.5
clothing_flags |= STOPSPRESSUREDAMAGE
cold_protection |= CHEST | GROIN | LEGS | FEET | ARMS | HANDS
if(ishuman(loc))
@@ -559,6 +560,7 @@
heat_protection = HEAD
max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
resistance_flags = FIRE_PROOF | ACID_PROOF
+
/obj/item/clothing/suit/space/hardsuit/syndi/elite
name = "elite syndicate hardsuit"
desc = "An elite version of the syndicate hardsuit, with improved armour and fireproofing. It is in travel mode."
diff --git a/code/modules/events/supermatter_surge.dm b/code/modules/events/supermatter_surge.dm
index 175ecd07df125..0b1335ea5a3e5 100644
--- a/code/modules/events/supermatter_surge.dm
+++ b/code/modules/events/supermatter_surge.dm
@@ -14,11 +14,40 @@
var/power = 2000
/datum/round_event/supermatter_surge/setup()
- power = rand(200,4000)
-
+ if(prob(70))
+ power = rand(200,100000)
+ else
+ power = rand(200,200000)
/datum/round_event/supermatter_surge/announce()
- if(power > 800 || prob(round(power/8)))
- priority_announce("Class [round(power/500) + 1] supermatter surge detected. Intervention may be required.", "Anomaly Alert", SSstation.announcer.get_rand_alert_sound())
+ var/severity = ""
+ switch(power)
+ if(-INFINITY to 100000)
+ var/low_threat_perc = 100-round(100*((power-200)/(100000-200)))
+ if(prob(low_threat_perc))
+ if(prob(low_threat_perc))
+ severity = "low; the supermatter should return to normal operation shortly."
+ else
+ severity = "medium; the supermatter should return to normal operation, but regardless, check if the emitters may need to be turned off temporarily."
+ else
+ severity = "high; the emitters likely need to be turned off, and if the supermatter's cooling loop is not fortified, pre-cooled gas may need to be added."
+ if(100000 to INFINITY)
+ severity = "extreme; emergency action is likely to be required even if coolant loop is fine. Turn off the emitters and make sure the loop is properly cooling gases."
+ if(power > 20000 || prob(round(power/200)))
+ priority_announce("Supermatter surge detected. Estimated severity is [severity]", "Anomaly Alert", SSstation.announcer.get_rand_alert_sound())
/datum/round_event/supermatter_surge/start()
- GLOB.main_supermatter_engine.matter_power += power
+ var/obj/machinery/power/supermatter_crystal/supermatter = GLOB.main_supermatter_engine
+ var/power_proportion = supermatter.powerloss_inhibitor/2 // what % of the power goes into matter power, at most 50%
+ // we reduce the proportion that goes into actual matter power based on powerloss inhibitor
+ // primarily so the supermatter doesn't tesla the instant these happen
+ supermatter.matter_power += power * power_proportion
+ var/datum/gas_mixture/gas_puff = new
+ var/selected_gas = pick(4;GAS_CO2, 4;GAS_H2O, 1;GAS_BZ)
+ gas_puff.set_moles(selected_gas, 500)
+ gas_puff.set_temperature(500)
+ var/energy_ratio = (power * 500 * (1-power_proportion)) / gas_puff.thermal_energy()
+ if(energy_ratio < 1) // energy output we want is lower than current energy, reduce the amount of gas we puff out
+ gas_puff.set_moles(GAS_H2O, energy_ratio * 500)
+ else // energy output we want is higher than current energy, increase its actual heat
+ gas_puff.set_temperature(energy_ratio * 500)
+ supermatter.assume_air(gas_puff)
diff --git a/code/modules/hydroponics/hydroitemdefines.dm b/code/modules/hydroponics/hydroitemdefines.dm
index 33852058545f3..c736d09979cc2 100644
--- a/code/modules/hydroponics/hydroitemdefines.dm
+++ b/code/modules/hydroponics/hydroitemdefines.dm
@@ -131,17 +131,17 @@
/obj/item/scythe/pre_attack(atom/A, mob/living/user, params)
if(swiping || !istype(A, /obj/structure/spacevine) || get_turf(A) == get_turf(user))
return ..()
- else
- var/turf/user_turf = get_turf(user)
- var/dir_to_target = get_dir(user_turf, get_turf(A))
- swiping = TRUE
- var/static/list/scythe_slash_angles = list(0, 45, 90, -45, -90)
- for(var/i in scythe_slash_angles)
- var/turf/T = get_step(user_turf, turn(dir_to_target, i))
- for(var/obj/structure/spacevine/V in T)
- if(user.Adjacent(V))
- melee_attack_chain(user, V)
- swiping = FALSE
+ var/turf/user_turf = get_turf(user)
+ var/dir_to_target = get_dir(user_turf, get_turf(A))
+ swiping = TRUE
+ var/static/list/scythe_slash_angles = list(0, 45, 90, -45, -90)
+ for(var/i in scythe_slash_angles)
+ var/turf/T = get_step(user_turf, turn(dir_to_target, i))
+ for(var/obj/structure/spacevine/V in T)
+ if(user.Adjacent(V))
+ melee_attack_chain(user, V)
+ swiping = FALSE
+ return TRUE
// *************************************
// Nutrient defines for hydroponics
diff --git a/code/modules/jobs/job_types/ai.dm b/code/modules/jobs/job_types/ai.dm
index a2de112537f24..980d88fb20f54 100644
--- a/code/modules/jobs/job_types/ai.dm
+++ b/code/modules/jobs/job_types/ai.dm
@@ -1,11 +1,9 @@
/datum/job/ai
title = JOB_NAME_AI
- flag = AI_JF
description = "Follow your laws above all else, be the invisible eye that watches all."
department_for_prefs = DEPT_BITFLAG_SILICON
department_head_for_prefs = JOB_NAME_AI
auto_deadmin_role_flags = DEADMIN_POSITION_SILICON
- department_flag = ENGSEC
faction = "Station"
total_positions = 1
spawn_positions = 1
diff --git a/code/modules/jobs/job_types/assistant.dm b/code/modules/jobs/job_types/assistant.dm
index 3d3f12a2b4f78..94391df0f8349 100644
--- a/code/modules/jobs/job_types/assistant.dm
+++ b/code/modules/jobs/job_types/assistant.dm
@@ -3,7 +3,6 @@ Assistant
*/
/datum/job/assistant
title = JOB_NAME_ASSISTANT
- flag = ASSISTANT
description = "Help out around the station or ask the Head of Personnel for an assignment. As the lowest-level position, expect to be treated like an intern most of the time."
department_for_prefs = DEPT_BITFLAG_ASSISTANT
supervisors = "absolutely everyone"
@@ -18,7 +17,6 @@ Assistant
access = list() //See /datum/job/assistant/get_access()
minimal_access = list() //See /datum/job/assistant/get_access()
- department_flag = CIVILIAN
departments = DEPT_BITFLAG_CIV
bank_account_department = NONE // nothing is free for them
payment_per_department = list(ACCOUNT_CIV_ID = PAYCHECK_ASSISTANT) // Get a job. Job reassignment changes your paycheck now. Get over it.
diff --git a/code/modules/jobs/job_types/atmospheric_technician.dm b/code/modules/jobs/job_types/atmospheric_technician.dm
index d5d304c26a998..3621a9340c799 100644
--- a/code/modules/jobs/job_types/atmospheric_technician.dm
+++ b/code/modules/jobs/job_types/atmospheric_technician.dm
@@ -1,6 +1,5 @@
/datum/job/atmospheric_technician
title = JOB_NAME_ATMOSPHERICTECHNICIAN
- flag = ATMOSTECH
description = "Maintain the air distribution loop to ensure adequate atmospheric conditions in the station, re-pressurize areas after hull breaches, and be a firefighter if necessary."
department_for_prefs = DEPT_BITFLAG_ENG
department_head = list(JOB_NAME_CHIEFENGINEER)
@@ -18,7 +17,6 @@
ACCESS_EXTERNAL_AIRLOCKS, ACCESS_CONSTRUCTION, ACCESS_ATMOSPHERICS, ACCESS_MINERAL_STOREROOM, ACCESS_AUX_BASE)
minimal_access = list(ACCESS_ATMOSPHERICS, ACCESS_MAINT_TUNNELS, ACCESS_CONSTRUCTION, ACCESS_MECH_ENGINE, ACCESS_MINERAL_STOREROOM, ACCESS_AUX_BASE)
- department_flag = ENGSEC
departments = DEPT_BITFLAG_ENG
bank_account_department = ACCOUNT_ENG_BITFLAG
payment_per_department = list(ACCOUNT_ENG_ID = PAYCHECK_MEDIUM)
diff --git a/code/modules/jobs/job_types/bartender.dm b/code/modules/jobs/job_types/bartender.dm
index 8b19676851e10..b1dc21a83cf25 100644
--- a/code/modules/jobs/job_types/bartender.dm
+++ b/code/modules/jobs/job_types/bartender.dm
@@ -1,6 +1,5 @@
/datum/job/bartender
title = JOB_NAME_BARTENDER
- flag = BARTENDER
description = "Brew a variety of drinks for the crew, cooperate with Botany and Chemistry for more exotic recipes, create a comfy atmosphere in your Bar."
department_for_prefs = DEPT_BITFLAG_SRV
department_head = list(JOB_NAME_HEADOFPERSONNEL)
@@ -16,7 +15,6 @@
access = list(ACCESS_HYDROPONICS, ACCESS_BAR, ACCESS_KITCHEN, ACCESS_MORGUE, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM, ACCESS_THEATRE)
minimal_access = list(ACCESS_BAR, ACCESS_MINERAL_STOREROOM, ACCESS_THEATRE, ACCESS_WEAPONS)
- department_flag = CIVILIAN
departments = DEPT_BITFLAG_SRV
bank_account_department = ACCOUNT_SRV_BITFLAG
payment_per_department = list(ACCOUNT_SRV_ID = PAYCHECK_EASY)
diff --git a/code/modules/jobs/job_types/botanist.dm b/code/modules/jobs/job_types/botanist.dm
index 3b6dc26ab0a23..0b93cdb506f14 100644
--- a/code/modules/jobs/job_types/botanist.dm
+++ b/code/modules/jobs/job_types/botanist.dm
@@ -1,6 +1,5 @@
/datum/job/botanist
title = JOB_NAME_BOTANIST
- flag = BOTANIST
description = "Grow plants for the Kitchen, Bar and Chemistry. Sell cannabis and other goods to the crew. Clone people with Replica Pods when needed."
department_for_prefs = DEPT_BITFLAG_SRV
department_head = list(JOB_NAME_HEADOFPERSONNEL)
@@ -15,7 +14,6 @@
access = list(ACCESS_HYDROPONICS, ACCESS_BAR, ACCESS_KITCHEN, ACCESS_MORGUE, ACCESS_MINERAL_STOREROOM)
minimal_access = list(ACCESS_HYDROPONICS, ACCESS_MORGUE, ACCESS_MINERAL_STOREROOM)
- department_flag = CIVILIAN
departments = DEPT_BITFLAG_SRV
bank_account_department = ACCOUNT_SRV_BITFLAG
payment_per_department = list(ACCOUNT_SRV_ID = PAYCHECK_EASY)
diff --git a/code/modules/jobs/job_types/brig_physician.dm b/code/modules/jobs/job_types/brig_physician.dm
index 5aac9dcf0b14d..ac5bc779b8fdb 100644
--- a/code/modules/jobs/job_types/brig_physician.dm
+++ b/code/modules/jobs/job_types/brig_physician.dm
@@ -1,6 +1,5 @@
/datum/job/brig_physician
title = JOB_NAME_BRIGPHYSICIAN
- flag = BRIG_PHYS
description = "Tend to the health of Security Officers and Prisoners, help out at Medbay if you have free time."
department_for_prefs = DEPT_BITFLAG_SEC
department_head_for_prefs = JOB_NAME_HEADOFSECURITY
@@ -18,7 +17,6 @@
access = list(ACCESS_SEC_DOORS, ACCESS_COURT, ACCESS_MAINT_TUNNELS, ACCESS_MORGUE, ACCESS_MEDICAL, ACCESS_BRIGPHYS, ACCESS_MECH_MEDICAL)
minimal_access = list(ACCESS_SEC_DOORS, ACCESS_COURT, ACCESS_MAINT_TUNNELS, ACCESS_MORGUE, ACCESS_MEDICAL, ACCESS_BRIGPHYS, ACCESS_MECH_MEDICAL)
- department_flag = ENGSEC
departments = DEPT_BITFLAG_MED | DEPT_BITFLAG_SEC
bank_account_department = ACCOUNT_MED_BITFLAG
payment_per_department = list(ACCOUNT_MED_ID = PAYCHECK_MEDIUM)
diff --git a/code/modules/jobs/job_types/captain.dm b/code/modules/jobs/job_types/captain.dm
index 749a7c719e0ba..e6b52c2f6bb10 100755
--- a/code/modules/jobs/job_types/captain.dm
+++ b/code/modules/jobs/job_types/captain.dm
@@ -1,6 +1,5 @@
/datum/job/captain
title = JOB_NAME_CAPTAIN
- flag = CAPTAIN
description = "Supreme leader of the station, oversee and appoint missing heads of staff, manage alert levels and contact CentCom if needed. Don't forget to secure the nuclear authentication disk."
department_for_prefs = DEPT_BITFLAG_CAPTAIN
department_head_for_prefs = JOB_NAME_CAPTAIN
@@ -22,7 +21,6 @@
access = list() //See get_access()
minimal_access = list() //See get_access()
- department_flag = ENGSEC
departments = DEPT_BITFLAG_COM
bank_account_department = ACCOUNT_SEC_BITFLAG | ACCOUNT_COM_BITFLAG
payment_per_department = list(
diff --git a/code/modules/jobs/job_types/cargo_technician.dm b/code/modules/jobs/job_types/cargo_technician.dm
index fb71ea18b7d4d..f20abfcefed13 100644
--- a/code/modules/jobs/job_types/cargo_technician.dm
+++ b/code/modules/jobs/job_types/cargo_technician.dm
@@ -1,6 +1,5 @@
/datum/job/cargo_technician
title = JOB_NAME_CARGOTECHNICIAN
- flag = CARGOTECH
description = "Push crates around, deliver bounty papers and mail around the station, make use of the Disposals network to make your life easier."
department_for_prefs = DEPT_BITFLAG_CAR
department_head_for_prefs = JOB_NAME_QUARTERMASTER
@@ -16,7 +15,6 @@
access = list(ACCESS_MAINT_TUNNELS, ACCESS_MAILSORTING, ACCESS_CARGO, ACCESS_QM, ACCESS_MINING, ACCESS_MECH_MINING, ACCESS_MINING_STATION, ACCESS_MINERAL_STOREROOM)
minimal_access = list(ACCESS_MAINT_TUNNELS, ACCESS_CARGO, ACCESS_MAILSORTING, ACCESS_MINERAL_STOREROOM)
- department_flag = CIVILIAN
departments = DEPT_BITFLAG_CAR
bank_account_department = ACCOUNT_CAR_BITFLAG
payment_per_department = list(ACCOUNT_CAR_ID = PAYCHECK_EASY)
diff --git a/code/modules/jobs/job_types/chaplain.dm b/code/modules/jobs/job_types/chaplain.dm
index 6212934aa20ef..d1f59bd514a11 100644
--- a/code/modules/jobs/job_types/chaplain.dm
+++ b/code/modules/jobs/job_types/chaplain.dm
@@ -1,6 +1,5 @@
/datum/job/chaplain
title = JOB_NAME_CHAPLAIN
- flag = CHAPLAIN
description = "Tend to the spiritual well-being of the crew, conduct rites and rituals in your Chapel, exorcise evil spirits and other supernatural beings."
department_for_prefs = DEPT_BITFLAG_CIV
department_head = list(JOB_NAME_HEADOFPERSONNEL)
@@ -15,7 +14,6 @@
access = list(ACCESS_MORGUE, ACCESS_CHAPEL_OFFICE, ACCESS_CREMATORIUM, ACCESS_THEATRE)
minimal_access = list(ACCESS_MORGUE, ACCESS_CHAPEL_OFFICE, ACCESS_CREMATORIUM, ACCESS_THEATRE)
- department_flag = CIVILIAN
departments = DEPT_BITFLAG_CIV
bank_account_department = ACCOUNT_CIV_BITFLAG
payment_per_department = list(ACCOUNT_CIV_ID = PAYCHECK_EASY)
diff --git a/code/modules/jobs/job_types/chemist.dm b/code/modules/jobs/job_types/chemist.dm
index b2302e2d1fc0c..1c241b1149322 100644
--- a/code/modules/jobs/job_types/chemist.dm
+++ b/code/modules/jobs/job_types/chemist.dm
@@ -1,6 +1,5 @@
/datum/job/chemist
title = JOB_NAME_CHEMIST
- flag = CHEMIST
description = "Create healing medicines and fullfill other requests when medicine isn't needed. Label everything you produce correctly to prevent confusion."
department_for_prefs = DEPT_BITFLAG_MED
department_head = list(JOB_NAME_CHIEFMEDICALOFFICER)
@@ -16,7 +15,6 @@
access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CHEMISTRY, ACCESS_VIROLOGY, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_MECH_MEDICAL, ACCESS_MINERAL_STOREROOM)
minimal_access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_CHEMISTRY, ACCESS_MECH_MEDICAL, ACCESS_MINERAL_STOREROOM)
- department_flag = MEDSCI
departments = DEPT_BITFLAG_MED
bank_account_department = ACCOUNT_MED_BITFLAG
payment_per_department = list(ACCOUNT_MED_ID = PAYCHECK_MEDIUM)
diff --git a/code/modules/jobs/job_types/chief_engineer.dm b/code/modules/jobs/job_types/chief_engineer.dm
index e58db3ce096a1..4f49591089a26 100644
--- a/code/modules/jobs/job_types/chief_engineer.dm
+++ b/code/modules/jobs/job_types/chief_engineer.dm
@@ -1,6 +1,5 @@
/datum/job/chief_engineer
title = JOB_NAME_CHIEFENGINEER
- flag = CHIEF
description = "Oversee the engineers and atmospheric technicians, keep a watchful eye on the station's engine, gravity generator, and telecomms. Send your staff to repair hull breaches and damaged equipment as necessary."
department_for_prefs = DEPT_BITFLAG_ENG
auto_deadmin_role_flags = DEADMIN_POSITION_HEAD
@@ -28,7 +27,6 @@
ACCESS_HEADS, ACCESS_CONSTRUCTION, ACCESS_SEC_DOORS, ACCESS_MINISAT, ACCESS_MECH_ENGINE,
ACCESS_CE, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_TCOMSAT, ACCESS_MINERAL_STOREROOM, ACCESS_WEAPONS)
- department_flag = ENGSEC
departments = DEPT_BITFLAG_ENG | DEPT_BITFLAG_COM
bank_account_department = ACCOUNT_ENG_BITFLAG | ACCOUNT_COM_BITFLAG
payment_per_department = list(
diff --git a/code/modules/jobs/job_types/chief_medical_officer.dm b/code/modules/jobs/job_types/chief_medical_officer.dm
index aa3495238eae6..7f51c48f7c529 100644
--- a/code/modules/jobs/job_types/chief_medical_officer.dm
+++ b/code/modules/jobs/job_types/chief_medical_officer.dm
@@ -1,6 +1,5 @@
/datum/job/chief_medical_officer
title = JOB_NAME_CHIEFMEDICALOFFICER
- flag = CMO_JF
description = "Oversee paramedics, doctors, chemists, geneticists and the virologist. \
Ensure doctors and paramedicts are treating people in a timely manner, request medicine and other concoctions from chemists, \
and ensure geneticists and the virologist are following appropriate safety precautions while performing their research."
@@ -28,7 +27,6 @@
ACCESS_CHEMISTRY, ACCESS_VIROLOGY, ACCESS_CMO, ACCESS_SURGERY, ACCESS_RC_ANNOUNCE, ACCESS_MECH_MEDICAL,
ACCESS_KEYCARD_AUTH, ACCESS_SEC_DOORS, ACCESS_MAINT_TUNNELS, ACCESS_BRIGPHYS, ACCESS_EVA, ACCESS_EXTERNAL_AIRLOCKS, ACCESS_WEAPONS)
- department_flag = MEDSCI
departments = DEPT_BITFLAG_MED | DEPT_BITFLAG_COM
bank_account_department = ACCOUNT_MED_BITFLAG | ACCOUNT_COM_BITFLAG
payment_per_department = list(
diff --git a/code/modules/jobs/job_types/clown.dm b/code/modules/jobs/job_types/clown.dm
index 724e67bfd328f..e597a2710eeb2 100644
--- a/code/modules/jobs/job_types/clown.dm
+++ b/code/modules/jobs/job_types/clown.dm
@@ -1,6 +1,5 @@
/datum/job/clown
title = JOB_NAME_CLOWN
- flag = CLOWN
description = "Be the life and soul of the station. Entertain the crew with your hilarious jokes and silly antics, including slipping, pie-ing and honking around. Remember your job is to keep things funny for others, not just yourself."
department_for_prefs = DEPT_BITFLAG_CIV
department_head = list(JOB_NAME_HEADOFPERSONNEL)
@@ -15,7 +14,6 @@
access = list(ACCESS_THEATRE)
minimal_access = list(ACCESS_THEATRE)
- department_flag = CIVILIAN
departments = DEPT_BITFLAG_SRV
bank_account_department = ACCOUNT_SRV_BITFLAG
payment_per_department = list(ACCOUNT_SRV_ID = PAYCHECK_MINIMAL)
diff --git a/code/modules/jobs/job_types/cook.dm b/code/modules/jobs/job_types/cook.dm
index 640defbfed874..2d999e160b0bf 100644
--- a/code/modules/jobs/job_types/cook.dm
+++ b/code/modules/jobs/job_types/cook.dm
@@ -1,6 +1,5 @@
/datum/job/cook
title = JOB_NAME_COOK
- flag = COOK
description = "Whip up meals for the crew, get creative and cook different meals, request ingredients from Botany and Cargo. Make sure everyone stays well fed and happy."
department_for_prefs = DEPT_BITFLAG_SRV
department_head = list(JOB_NAME_HEADOFPERSONNEL)
@@ -16,7 +15,6 @@
access = list(ACCESS_HYDROPONICS, ACCESS_BAR, ACCESS_KITCHEN, ACCESS_MORGUE, ACCESS_MINERAL_STOREROOM)
minimal_access = list(ACCESS_KITCHEN, ACCESS_MORGUE, ACCESS_MINERAL_STOREROOM)
- department_flag = CIVILIAN
departments = DEPT_BITFLAG_SRV
bank_account_department = ACCOUNT_SRV_BITFLAG
payment_per_department = list(ACCOUNT_SRV_ID = PAYCHECK_EASY)
diff --git a/code/modules/jobs/job_types/curator.dm b/code/modules/jobs/job_types/curator.dm
index ed143ce073cdd..df966170cd6ec 100644
--- a/code/modules/jobs/job_types/curator.dm
+++ b/code/modules/jobs/job_types/curator.dm
@@ -1,6 +1,5 @@
/datum/job/curator
title = JOB_NAME_CURATOR
- flag = CURATOR
description = "Be in charge of maintaining the library, engage in peace talks with alien races using your knowledge of all languages, cosplay to your heart's content."
department_for_prefs = DEPT_BITFLAG_CIV
department_head = list(JOB_NAME_HEADOFPERSONNEL)
@@ -15,7 +14,6 @@
access = list(ACCESS_LIBRARY, ACCESS_AUX_BASE, ACCESS_MINING_STATION)
minimal_access = list(ACCESS_LIBRARY, ACCESS_AUX_BASE, ACCESS_MINING_STATION)
- department_flag = CIVILIAN
departments = DEPT_BITFLAG_CIV
bank_account_department = ACCOUNT_CIV_BITFLAG
payment_per_department = list(ACCOUNT_CIV_ID = PAYCHECK_EASY)
diff --git a/code/modules/jobs/job_types/cyborg.dm b/code/modules/jobs/job_types/cyborg.dm
index 3a46423433e18..0800c1916a325 100644
--- a/code/modules/jobs/job_types/cyborg.dm
+++ b/code/modules/jobs/job_types/cyborg.dm
@@ -1,11 +1,9 @@
/datum/job/cyborg
title = JOB_NAME_CYBORG
- flag = CYBORG
description = "Follow your AI's interpretation of your laws above all else, or your own interpretation if not connected to an AI. Choose one of many modules with different tools, ask robotics for maintenance and upgrades."
department_for_prefs = DEPT_BITFLAG_SILICON
department_head_for_prefs = JOB_NAME_AI
auto_deadmin_role_flags = DEADMIN_POSITION_SILICON
- department_flag = ENGSEC
faction = "Station"
total_positions = 1
spawn_positions = 1
diff --git a/code/modules/jobs/job_types/deputy.dm b/code/modules/jobs/job_types/deputy.dm
index f3c5b446e8415..9859642dd8236 100644
--- a/code/modules/jobs/job_types/deputy.dm
+++ b/code/modules/jobs/job_types/deputy.dm
@@ -1,6 +1,5 @@
/datum/job/deputy
title = JOB_NAME_DEPUTY
- flag = DEPUTY
description = "Follow orders and do your best to maintain order on the station while following Space Law."
department_for_prefs = DEPT_BITFLAG_SEC
department_head = list(JOB_NAME_HEADOFSECURITY)
@@ -18,7 +17,6 @@
access = list(ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_COURT, ACCESS_MAINT_TUNNELS, ACCESS_WEAPONS)
minimal_access = list(ACCESS_SEC_DOORS, ACCESS_BRIG, ACCESS_COURT, ACCESS_MAINT_TUNNELS, ACCESS_WEAPONS)
- department_flag = ENGSEC
departments = DEPT_BITFLAG_SEC
bank_account_department = ACCOUNT_SEC_BITFLAG
payment_per_department = list(ACCOUNT_SEC_ID = PAYCHECK_EASY)
diff --git a/code/modules/jobs/job_types/detective.dm b/code/modules/jobs/job_types/detective.dm
index f5435da068fee..5ea9a51b62f4d 100644
--- a/code/modules/jobs/job_types/detective.dm
+++ b/code/modules/jobs/job_types/detective.dm
@@ -1,6 +1,5 @@
/datum/job/detective
title = JOB_NAME_DETECTIVE
- flag = DETECTIVE
description = "Investigate crimes, solve murder mysteries, report your findings to the rest of Security."
department_for_prefs = DEPT_BITFLAG_SEC
auto_deadmin_role_flags = DEADMIN_POSITION_SECURITY
@@ -20,7 +19,6 @@
access = list(ACCESS_SEC_DOORS, ACCESS_SEC_RECORDS, ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS, ACCESS_MECH_SECURITY, ACCESS_COURT, ACCESS_BRIG, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM)
minimal_access = list(ACCESS_SEC_DOORS, ACCESS_SEC_RECORDS, ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS, ACCESS_MECH_SECURITY, ACCESS_COURT, ACCESS_BRIG, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM)
- department_flag = ENGSEC
departments = DEPT_BITFLAG_SEC
bank_account_department = ACCOUNT_SEC_BITFLAG
payment_per_department = list(ACCOUNT_SEC_ID = PAYCHECK_MEDIUM)
diff --git a/code/modules/jobs/job_types/exploration_team.dm b/code/modules/jobs/job_types/exploration_team.dm
index 3a3416b5c95e6..3737e1f1c275d 100644
--- a/code/modules/jobs/job_types/exploration_team.dm
+++ b/code/modules/jobs/job_types/exploration_team.dm
@@ -1,6 +1,5 @@
/datum/job/exploration_crew
title = JOB_NAME_EXPLORATIONCREW
- flag = EXPLORATION_CREW
description = "Go out into space to complete different missions for loads of cash. Find and deliver back research disks for rare technologies."
department_for_prefs = DEPT_BITFLAG_SCI
department_head = list(JOB_NAME_RESEARCHDIRECTOR)
@@ -18,7 +17,6 @@
access = list(ACCESS_MAINT_TUNNELS, ACCESS_RESEARCH, ACCESS_EXPLORATION, ACCESS_TOX,ACCESS_TOX_STORAGE, ACCESS_MECH_SCIENCE, ACCESS_XENOBIOLOGY)
minimal_access = list(ACCESS_RESEARCH, ACCESS_EXPLORATION, ACCESS_TOX, ACCESS_MECH_SCIENCE)
- department_flag = MEDSCI
departments = DEPT_BITFLAG_SCI
bank_account_department = ACCOUNT_SCI_BITFLAG
payment_per_department = list(ACCOUNT_SCI_ID = PAYCHECK_HARD)
diff --git a/code/modules/jobs/job_types/geneticist.dm b/code/modules/jobs/job_types/geneticist.dm
index ea648f5b184b5..bf65e9e84b027 100644
--- a/code/modules/jobs/job_types/geneticist.dm
+++ b/code/modules/jobs/job_types/geneticist.dm
@@ -1,6 +1,5 @@
/datum/job/geneticist
title = JOB_NAME_GENETICIST
- flag = GENETICIST
description = "Discover useful mutations and give them out to the crew at CMO's approval, oversee Cloning, create humanized monkeys for replacement organs and bodyparts if needed."
department_for_prefs = DEPT_BITFLAG_MED
department_head = list(JOB_NAME_CHIEFMEDICALOFFICER)
@@ -16,7 +15,6 @@
access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CHEMISTRY, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_VIROLOGY, ACCESS_MECH_MEDICAL, ACCESS_MINERAL_STOREROOM, ACCESS_MAINT_TUNNELS)
minimal_access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_MECH_MEDICAL)
- department_flag = MEDSCI
departments = DEPT_BITFLAG_MED
bank_account_department = ACCOUNT_MED_BITFLAG
payment_per_department = list(
diff --git a/code/modules/jobs/job_types/gimmick.dm b/code/modules/jobs/job_types/gimmick.dm
index 832f0d9ef4f33..7cc3f4d41cd4a 100644
--- a/code/modules/jobs/job_types/gimmick.dm
+++ b/code/modules/jobs/job_types/gimmick.dm
@@ -1,6 +1,5 @@
/datum/job/gimmick //gimmick var must be set to true for all gimmick jobs BUT the parent
title = JOB_NAME_GIMMICK
- flag = GIMMICK
description = "Use your unique position to provide a service or entertain the crew."
department_for_prefs = DEPT_BITFLAG_ASSISTANT
show_in_prefs = TRUE
@@ -14,7 +13,6 @@
access = list(ACCESS_MAINT_TUNNELS)
minimal_access = list(ACCESS_MAINT_TUNNELS)
- department_flag = CIVILIAN
departments = DEPT_BITFLAG_CIV
bank_account_department = ACCOUNT_CIV_BITFLAG
payment_per_department = list(ACCOUNT_CIV_ID = PAYCHECK_ASSISTANT)
@@ -32,7 +30,6 @@
/datum/job/gimmick/barber
title = JOB_NAME_BARBER
- flag = BARBER
description = "Give the crew haircuts using the variety of tools at your disposal, and provide less professional and cosmetic surgeries."
department_head = list(JOB_NAME_HEADOFPERSONNEL)
supervisors = "the head of personnel"
@@ -44,7 +41,6 @@
access = list(ACCESS_MORGUE, ACCESS_MAINT_TUNNELS)
minimal_access = list(ACCESS_MORGUE, ACCESS_MAINT_TUNNELS)
- department_flag = CIVILIAN
departments = DEPT_BITFLAG_SRV
bank_account_department = ACCOUNT_SRV_BITFLAG
payment_per_department = list(ACCOUNT_SRV_ID = PAYCHECK_ASSISTANT)
@@ -67,7 +63,6 @@
/datum/job/gimmick/stage_magician
title = JOB_NAME_STAGEMAGICIAN
- flag = MAGICIAN
description = "Use your special tools to provide entertainment for the crew, show them than you can do more than simple parlor magic tricks."
department_head = list(JOB_NAME_HEADOFPERSONNEL)
supervisors = "the head of personnel"
@@ -79,7 +74,6 @@
access = list(ACCESS_THEATRE, ACCESS_MAINT_TUNNELS)
minimal_access = list(ACCESS_THEATRE, ACCESS_MAINT_TUNNELS)
- department_flag = CIVILIAN
departments = DEPT_BITFLAG_SRV
bank_account_department = ACCOUNT_SRV_BITFLAG
payment_per_department = list(ACCOUNT_SRV_ID = PAYCHECK_MINIMAL)
@@ -108,7 +102,6 @@
/datum/job/gimmick/psychiatrist
title = JOB_NAME_PSYCHIATRIST
- flag = PSYCHIATRIST
description = "Provide therapy to the crew through talk sessions, psychoactive drugs, and careful consideration of their thoughts and feelings. Provide mental evaluations for Security."
department_head = list(JOB_NAME_CHIEFMEDICALOFFICER)
supervisors = "the chief medical officer"
@@ -120,7 +113,6 @@
access = list(ACCESS_MAINT_TUNNELS, ACCESS_MEDICAL)
minimal_access = list(ACCESS_MAINT_TUNNELS, ACCESS_MEDICAL)
- department_flag = MEDSCI
departments = DEPT_BITFLAG_MED
bank_account_department = ACCOUNT_MED_BITFLAG
payment_per_department = list(ACCOUNT_MED_ID = PAYCHECK_EASY)
@@ -141,7 +133,6 @@
/datum/job/gimmick/vip
title = JOB_NAME_VIP
- flag = CELEBRITY
description = "Flaunt around your wealth, organize posh parties and other high life activities with your near-bottomless budget."
gimmick = TRUE
show_in_prefs = FALSE
@@ -151,7 +142,6 @@
access = list(ACCESS_MAINT_TUNNELS) //Assistants with shitloads of money, what could go wrong?
minimal_access = list(ACCESS_MAINT_TUNNELS)
- department_flag = CIVILIAN
departments = DEPT_BITFLAG_VIP
bank_account_department = ACCOUNT_VIP_BITFLAG
payment_per_department = list(ACCOUNT_VIP_ID = PAYCHECK_VIP) //our power is being fucking rich
diff --git a/code/modules/jobs/job_types/head_of_personnel.dm b/code/modules/jobs/job_types/head_of_personnel.dm
index e4c2b236cdd84..78b0413af8c12 100644
--- a/code/modules/jobs/job_types/head_of_personnel.dm
+++ b/code/modules/jobs/job_types/head_of_personnel.dm
@@ -1,6 +1,5 @@
/datum/job/head_of_personnel
title = JOB_NAME_HEADOFPERSONNEL
- flag = HOP
description = "Second in command on the station, oversee the crew assigned to service and cargo positions, handle department transfer requests by consulting relevant heads. Protect Ian at all costs."
department_for_prefs = DEPT_BITFLAG_CAPTAIN
department_head_for_prefs = JOB_NAME_CAPTAIN
@@ -35,7 +34,6 @@
ACCESS_THEATRE, ACCESS_CHAPEL_OFFICE, ACCESS_LIBRARY, ACCESS_RESEARCH, ACCESS_MINING, ACCESS_VAULT, ACCESS_MINING_STATION,
ACCESS_HOP, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_MINERAL_STOREROOM, ACCESS_AUX_BASE)
- department_flag = CIVILIAN
departments = DEPT_BITFLAG_COM | DEPT_BITFLAG_SRV
bank_account_department = ACCOUNT_SRV_BITFLAG | ACCOUNT_COM_BITFLAG
payment_per_department = list(
diff --git a/code/modules/jobs/job_types/head_of_security.dm b/code/modules/jobs/job_types/head_of_security.dm
index 620b326436696..0423e61e63666 100644
--- a/code/modules/jobs/job_types/head_of_security.dm
+++ b/code/modules/jobs/job_types/head_of_security.dm
@@ -1,6 +1,5 @@
/datum/job/head_of_security
title = JOB_NAME_HEADOFSECURITY
- flag = HOS
description = "Oversee the members of security and ensure they follow Space Law. Deputize other crew members when the station is in need of additional protection."
department_for_prefs = DEPT_BITFLAG_SEC
auto_deadmin_role_flags = DEADMIN_POSITION_HEAD|DEADMIN_POSITION_SECURITY
@@ -27,7 +26,6 @@
ACCESS_FORENSICS_LOCKERS, ACCESS_MORGUE, ACCESS_MAINT_TUNNELS, ACCESS_ALL_PERSONAL_LOCKERS,
ACCESS_HEADS, ACCESS_HOS, ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_MAINT_TUNNELS)
- department_flag = ENGSEC
departments = DEPT_BITFLAG_SEC | DEPT_BITFLAG_COM
bank_account_department = ACCOUNT_SEC_BITFLAG | ACCOUNT_COM_BITFLAG
payment_per_department = list(
diff --git a/code/modules/jobs/job_types/janitor.dm b/code/modules/jobs/job_types/janitor.dm
index 552e827768909..1f10677173cb5 100644
--- a/code/modules/jobs/job_types/janitor.dm
+++ b/code/modules/jobs/job_types/janitor.dm
@@ -1,6 +1,5 @@
/datum/job/janitor
title = JOB_NAME_JANITOR
- flag = JANITOR
description = "Clean up vomit, trash, and other messes around the station. Put down signs to warn people of slipping hazards, and eradicate rodents when you find them. Keep the station clean and tidy."
department_for_prefs = DEPT_BITFLAG_SRV
department_head = list(JOB_NAME_HEADOFPERSONNEL)
@@ -15,7 +14,6 @@
access = list(ACCESS_JANITOR, ACCESS_MAINT_TUNNELS, ACCESS_MINERAL_STOREROOM)
minimal_access = list(ACCESS_JANITOR, ACCESS_MAINT_TUNNELS, ACCESS_MINERAL_STOREROOM)
- department_flag = CIVILIAN
departments = DEPT_BITFLAG_SRV
bank_account_department = ACCOUNT_SRV_BITFLAG
payment_per_department = list(ACCOUNT_SRV_ID = PAYCHECK_EASY)
diff --git a/code/modules/jobs/job_types/lawyer.dm b/code/modules/jobs/job_types/lawyer.dm
index 5eb9c3f3c3d30..e290bc11b3865 100644
--- a/code/modules/jobs/job_types/lawyer.dm
+++ b/code/modules/jobs/job_types/lawyer.dm
@@ -1,6 +1,5 @@
/datum/job/lawyer
title = JOB_NAME_LAWYER
- flag = LAWYER
description = "Ensure Security follows Space Law and Standard Operating Procedure perfectly, represent your clients in trials and other legal troubles, make sure the crew is treated fairly by the men in red."
department_for_prefs = DEPT_BITFLAG_CIV
department_head = list(JOB_NAME_HEADOFPERSONNEL)
@@ -16,7 +15,6 @@
access = list(ACCESS_LAWYER, ACCESS_COURT, ACCESS_SEC_DOORS)
minimal_access = list(ACCESS_LAWYER, ACCESS_COURT, ACCESS_SEC_DOORS)
- department_flag = CIVILIAN
departments = DEPT_BITFLAG_CIV
bank_account_department = ACCOUNT_CIV_BITFLAG
payment_per_department = list(ACCOUNT_CIV_ID = PAYCHECK_EASY)
diff --git a/code/modules/jobs/job_types/medical_doctor.dm b/code/modules/jobs/job_types/medical_doctor.dm
index 44ba5dd0715ef..b44cf72c7d612 100644
--- a/code/modules/jobs/job_types/medical_doctor.dm
+++ b/code/modules/jobs/job_types/medical_doctor.dm
@@ -1,6 +1,5 @@
/datum/job/medical_doctor
title = JOB_NAME_MEDICALDOCTOR
- flag = DOCTOR
description = "Treat people of both minor wounds, serious injuries and resurrect them from the dead. Make use of surgeries and surgical tools, Chemistry's pills and patches, Virology's viruses and in dire cases, Genetics' cloning."
department_for_prefs = DEPT_BITFLAG_MED
department_head = list(JOB_NAME_CHIEFMEDICALOFFICER)
@@ -16,7 +15,6 @@
access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CHEMISTRY, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_VIROLOGY, ACCESS_MECH_MEDICAL, ACCESS_MINERAL_STOREROOM, ACCESS_MAINT_TUNNELS)
minimal_access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CLONING, ACCESS_MECH_MEDICAL, ACCESS_MINERAL_STOREROOM, ACCESS_MAINT_TUNNELS)
- department_flag = MEDSCI
departments = DEPT_BITFLAG_MED
bank_account_department = ACCOUNT_MED_BITFLAG
payment_per_department = list(ACCOUNT_MED_ID = PAYCHECK_MEDIUM)
diff --git a/code/modules/jobs/job_types/mime.dm b/code/modules/jobs/job_types/mime.dm
index 9da99cc13a582..93d4615d27880 100644
--- a/code/modules/jobs/job_types/mime.dm
+++ b/code/modules/jobs/job_types/mime.dm
@@ -1,6 +1,5 @@
/datum/job/mime
title = JOB_NAME_MIME
- flag = MIME
description = "Be the Clown's mute counterpart and arch nemesis. Conduct pantomimes and performances, create interesting situations with your mime powers. Remember your job is to keep things funny for others, not just yourself."
department_for_prefs = DEPT_BITFLAG_CIV
department_head = list(JOB_NAME_HEADOFPERSONNEL)
@@ -15,7 +14,6 @@
access = list(ACCESS_THEATRE)
minimal_access = list(ACCESS_THEATRE)
- department_flag = CIVILIAN
departments = DEPT_BITFLAG_SRV
bank_account_department = ACCOUNT_SRV_BITFLAG
payment_per_department = list(ACCOUNT_SRV_ID = PAYCHECK_MINIMAL)
diff --git a/code/modules/jobs/job_types/paramedic.dm b/code/modules/jobs/job_types/paramedic.dm
index 5343de8394cdf..8d6e204094146 100644
--- a/code/modules/jobs/job_types/paramedic.dm
+++ b/code/modules/jobs/job_types/paramedic.dm
@@ -1,6 +1,5 @@
/datum/job/paramedic
title = JOB_NAME_PARAMEDIC
- flag = PARAMEDIC
description = "Retrieve the gravely injured and dead people from around the station, deliver medicine for minor wounds, and keep a close eye on the Crew Monitor in your free time."
department_for_prefs = DEPT_BITFLAG_MED
department_head = list(JOB_NAME_CHIEFMEDICALOFFICER)
@@ -17,7 +16,6 @@
minimal_access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_CLONING, ACCESS_MECH_MEDICAL, ACCESS_MAINT_TUNNELS,
ACCESS_EVA, ACCESS_EXTERNAL_AIRLOCKS, ACCESS_AUX_BASE)
- department_flag = MEDSCI
departments = DEPT_BITFLAG_MED
bank_account_department = ACCOUNT_MED_BITFLAG
payment_per_department = list(ACCOUNT_MED_ID = PAYCHECK_MEDIUM)
diff --git a/code/modules/jobs/job_types/quartermaster.dm b/code/modules/jobs/job_types/quartermaster.dm
index 9417b5adec897..b2c698b4ea610 100644
--- a/code/modules/jobs/job_types/quartermaster.dm
+++ b/code/modules/jobs/job_types/quartermaster.dm
@@ -1,6 +1,5 @@
/datum/job/quartermaster
title = JOB_NAME_QUARTERMASTER
- flag = QUARTERMASTER
description = "Oversee and direct cargo technicians to fulfill requests for supplies and keep the station well stocked, request funds from department budgets to cover costs, deny frivolous orders when money is tight, and sell anything the station doesn't need."
department_for_prefs = DEPT_BITFLAG_CAR
department_head = list(JOB_NAME_HEADOFPERSONNEL)
@@ -18,7 +17,6 @@
access = list(ACCESS_MAINT_TUNNELS, ACCESS_MAILSORTING, ACCESS_CARGO, ACCESS_QM, ACCESS_MINING, ACCESS_MECH_MINING, ACCESS_MINING_STATION, ACCESS_MINERAL_STOREROOM, ACCESS_VAULT, ACCESS_AUX_BASE, ACCESS_EXPLORATION)
minimal_access = list(ACCESS_MAINT_TUNNELS, ACCESS_MAILSORTING, ACCESS_CARGO, ACCESS_QM, ACCESS_MINING, ACCESS_MECH_MINING, ACCESS_MINING_STATION, ACCESS_MINERAL_STOREROOM, ACCESS_VAULT, ACCESS_AUX_BASE, ACCESS_EXPLORATION)
- department_flag = CIVILIAN
departments = DEPT_BITFLAG_CAR
bank_account_department = ACCOUNT_CAR_BITFLAG
payment_per_department = list(ACCOUNT_CAR_ID = PAYCHECK_MEDIUM)
diff --git a/code/modules/jobs/job_types/research_director.dm b/code/modules/jobs/job_types/research_director.dm
index 8bdb103bd55d6..5bdff2825aa28 100644
--- a/code/modules/jobs/job_types/research_director.dm
+++ b/code/modules/jobs/job_types/research_director.dm
@@ -1,6 +1,5 @@
/datum/job/research_director
title = JOB_NAME_RESEARCHDIRECTOR
- flag = RD_JF
description = "Oversee the scientists and roboticists and keep up with their research projects, take care of any issues with the station's AI that may arise, ensure research is being prioritized in accordance with the needs of the station."
department_for_prefs = DEPT_BITFLAG_SCI
auto_deadmin_role_flags = DEADMIN_POSITION_HEAD
@@ -30,7 +29,6 @@
ACCESS_RC_ANNOUNCE, ACCESS_KEYCARD_AUTH, ACCESS_GATEWAY, ACCESS_MINERAL_STOREROOM,
ACCESS_TECH_STORAGE, ACCESS_MINISAT, ACCESS_MAINT_TUNNELS, ACCESS_NETWORK, ACCESS_AUX_BASE, ACCESS_RD_SERVER, ACCESS_WEAPONS)
- department_flag = MEDSCI
departments = DEPT_BITFLAG_SCI | DEPT_BITFLAG_COM
bank_account_department = ACCOUNT_SCI_BITFLAG | ACCOUNT_COM_BITFLAG
payment_per_department = list(
diff --git a/code/modules/jobs/job_types/roboticist.dm b/code/modules/jobs/job_types/roboticist.dm
index b3ffb9e9cdb02..b56f510c08459 100644
--- a/code/modules/jobs/job_types/roboticist.dm
+++ b/code/modules/jobs/job_types/roboticist.dm
@@ -1,6 +1,5 @@
/datum/job/roboticist
title = JOB_NAME_ROBOTICIST
- flag = ROBOTICIST
description = "Create bots and utility mechs for helping out around the station. Construct war machines by the request of the Captain or Head of Security. Make new Cyborgs, give augmentations and implants to crew members."
department_for_prefs = DEPT_BITFLAG_SCI
department_head = list(JOB_NAME_RESEARCHDIRECTOR)
@@ -19,7 +18,6 @@
minimal_access = list(ACCESS_ROBOTICS, ACCESS_TECH_STORAGE, ACCESS_MORGUE, ACCESS_RESEARCH, ACCESS_MECH_SCIENCE, ACCESS_MECH_MINING, ACCESS_MECH_MEDICAL, ACCESS_MECH_ENGINE,
ACCESS_MINERAL_STOREROOM, ACCESS_AUX_BASE)
- department_flag = MEDSCI
departments = DEPT_BITFLAG_SCI
bank_account_department = ACCOUNT_SCI_BITFLAG
payment_per_department = list(ACCOUNT_SCI_ID = PAYCHECK_MEDIUM)
diff --git a/code/modules/jobs/job_types/scientist.dm b/code/modules/jobs/job_types/scientist.dm
index b20218a57c5db..e132000e0d34e 100644
--- a/code/modules/jobs/job_types/scientist.dm
+++ b/code/modules/jobs/job_types/scientist.dm
@@ -1,6 +1,5 @@
/datum/job/scientist
title = JOB_NAME_SCIENTIST
- flag = SCIENTIST
description = "Engage in Xenobiology, Xenoarchaeology, Nanites, and Toxins; research new technology; and upgrade the machine parts around the station."
department_for_prefs = DEPT_BITFLAG_SCI
department_head = list(JOB_NAME_RESEARCHDIRECTOR)
@@ -19,7 +18,6 @@
minimal_access = list(ACCESS_TOX, ACCESS_TOX_STORAGE, ACCESS_RESEARCH, ACCESS_XENOBIOLOGY, ACCESS_MECH_SCIENCE,
ACCESS_MINERAL_STOREROOM, ACCESS_AUX_BASE, ACCESS_EXPLORATION)
- department_flag = MEDSCI
departments = DEPT_BITFLAG_SCI
bank_account_department = ACCOUNT_SCI_BITFLAG
payment_per_department = list(ACCOUNT_SCI_ID = PAYCHECK_MEDIUM)
diff --git a/code/modules/jobs/job_types/security_officer.dm b/code/modules/jobs/job_types/security_officer.dm
index d545b262d7e8a..fae1ad7d62609 100644
--- a/code/modules/jobs/job_types/security_officer.dm
+++ b/code/modules/jobs/job_types/security_officer.dm
@@ -1,6 +1,5 @@
/datum/job/security_officer
title = JOB_NAME_SECURITYOFFICER
- flag = OFFICER
description = "Follow Space Law, patrol the station, arrest criminals and bring them to the Brig."
department_for_prefs = DEPT_BITFLAG_SEC
auto_deadmin_role_flags = DEADMIN_POSITION_SECURITY
@@ -22,7 +21,6 @@
minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_SEC_RECORDS, ACCESS_BRIG, ACCESS_COURT, ACCESS_WEAPONS,
ACCESS_MECH_SECURITY, ACCESS_MINERAL_STOREROOM) // See /datum/job/security_officer/get_access()
- department_flag = ENGSEC
departments = DEPT_BITFLAG_SEC
bank_account_department = ACCOUNT_SEC_BITFLAG
payment_per_department = list(ACCOUNT_SEC_ID = PAYCHECK_HARD)
diff --git a/code/modules/jobs/job_types/shaft_miner.dm b/code/modules/jobs/job_types/shaft_miner.dm
index 4867b9f058759..5839ba71cac2e 100644
--- a/code/modules/jobs/job_types/shaft_miner.dm
+++ b/code/modules/jobs/job_types/shaft_miner.dm
@@ -1,6 +1,5 @@
/datum/job/shaft_miner
title = JOB_NAME_SHAFTMINER
- flag = MINER
description = "Collect resources for the station, redeem them for points, and purchase gear to collect even more ores."
department_for_prefs = DEPT_BITFLAG_CAR
department_head_for_prefs = JOB_NAME_QUARTERMASTER
@@ -18,7 +17,6 @@
minimal_access = list(ACCESS_MINING, ACCESS_MECH_MINING, ACCESS_MINING_STATION, ACCESS_MAILSORTING, ACCESS_MINERAL_STOREROOM,
ACCESS_AUX_BASE)
- department_flag = CIVILIAN
departments = DEPT_BITFLAG_CAR
bank_account_department = ACCOUNT_CAR_BITFLAG
payment_per_department = list(ACCOUNT_CAR_ID = PAYCHECK_HARD)
diff --git a/code/modules/jobs/job_types/station_engineer.dm b/code/modules/jobs/job_types/station_engineer.dm
index cd14410c3a887..91f6a312ad6da 100644
--- a/code/modules/jobs/job_types/station_engineer.dm
+++ b/code/modules/jobs/job_types/station_engineer.dm
@@ -1,6 +1,5 @@
/datum/job/station_engineer
title = JOB_NAME_STATIONENGINEER
- flag = ENGINEER
description = "Ensure the station has an adequate power supply, repair and build new machinery, repair wiring chewed up by mice."
department_for_prefs = DEPT_BITFLAG_ENG
department_head = list(JOB_NAME_CHIEFENGINEER)
@@ -20,7 +19,6 @@
minimal_access = list(ACCESS_ENGINE, ACCESS_ENGINE_EQUIP, ACCESS_TECH_STORAGE, ACCESS_MAINT_TUNNELS, ACCESS_MECH_ENGINE,
ACCESS_EXTERNAL_AIRLOCKS, ACCESS_CONSTRUCTION, ACCESS_TCOMSAT, ACCESS_MINERAL_STOREROOM, ACCESS_AUX_BASE)
- department_flag = ENGSEC
departments = DEPT_BITFLAG_ENG
bank_account_department = ACCOUNT_ENG_BITFLAG
payment_per_department = list(ACCOUNT_ENG_ID = PAYCHECK_MEDIUM)
diff --git a/code/modules/jobs/job_types/virologist.dm b/code/modules/jobs/job_types/virologist.dm
index c3d90493f9bd2..567af28073c00 100644
--- a/code/modules/jobs/job_types/virologist.dm
+++ b/code/modules/jobs/job_types/virologist.dm
@@ -1,6 +1,5 @@
/datum/job/virologist
title = JOB_NAME_VIROLOGIST
- flag = VIROLOGIST
description = "Collect virus samples from dormant viruses, old blood, and crusty vomit from around the station, isolate the symptoms and use them to create useful healing viruses for the crew."
department_for_prefs = DEPT_BITFLAG_MED
department_head = list(JOB_NAME_CHIEFMEDICALOFFICER)
@@ -17,7 +16,6 @@
access = list(ACCESS_MEDICAL, ACCESS_MORGUE, ACCESS_SURGERY, ACCESS_CHEMISTRY, ACCESS_VIROLOGY, ACCESS_MECH_MEDICAL, ACCESS_GENETICS, ACCESS_CLONING, ACCESS_MINERAL_STOREROOM, ACCESS_MAINT_TUNNELS)
minimal_access = list(ACCESS_MEDICAL, ACCESS_VIROLOGY, ACCESS_MECH_MEDICAL, ACCESS_MINERAL_STOREROOM, ACCESS_MAINT_TUNNELS)
- department_flag = MEDSCI
departments = DEPT_BITFLAG_MED
bank_account_department = ACCOUNT_MED_BITFLAG
payment_per_department = list(ACCOUNT_MED_ID = PAYCHECK_MEDIUM)
diff --git a/code/modules/jobs/job_types/warden.dm b/code/modules/jobs/job_types/warden.dm
index a51c6488ef30d..d81ada3d53d9d 100644
--- a/code/modules/jobs/job_types/warden.dm
+++ b/code/modules/jobs/job_types/warden.dm
@@ -1,6 +1,5 @@
/datum/job/warden
title = JOB_NAME_WARDEN
- flag = WARDEN
description = "Oversee prisoners in the brig and guard the armory. Hand out equipment when necessary and ensure it is returned after threats have been contained."
department_for_prefs = DEPT_BITFLAG_SEC
auto_deadmin_role_flags = DEADMIN_POSITION_SECURITY
@@ -20,7 +19,6 @@
access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_SEC_RECORDS, ACCESS_BRIG, ACCESS_BRIGPHYS, ACCESS_ARMORY,ACCESS_COURT, ACCESS_MECH_SECURITY, ACCESS_MAINT_TUNNELS, ACCESS_MORGUE, ACCESS_WEAPONS, ACCESS_FORENSICS_LOCKERS, ACCESS_MINERAL_STOREROOM)
minimal_access = list(ACCESS_SECURITY, ACCESS_SEC_DOORS, ACCESS_SEC_RECORDS, ACCESS_BRIG, ACCESS_BRIGPHYS, ACCESS_ARMORY, ACCESS_MECH_SECURITY, ACCESS_COURT, ACCESS_WEAPONS, ACCESS_MINERAL_STOREROOM) // See /datum/job/warden/get_access()
- department_flag = ENGSEC
departments = DEPT_BITFLAG_SEC
bank_account_department = ACCOUNT_SEC_BITFLAG
payment_per_department = list(ACCOUNT_SEC_ID = PAYCHECK_HARD)
diff --git a/code/modules/language/language.dm b/code/modules/language/language.dm
index 4fc2dc5c94e4d..5e370146dc573 100644
--- a/code/modules/language/language.dm
+++ b/code/modules/language/language.dm
@@ -27,6 +27,9 @@
var/icon = 'icons/misc/language.dmi'
var/icon_state = "popcorn"
+ // get_icon() proc will return a complete string rather than calling a proc every time.
+ var/fast_icon_span
+
/// Returns TRUE/FALSE based on seeing a language icon is validated to a given hearer in the parameter.
/datum/language/proc/display_icon(atom/movable/hearer)
// ghosts want to know how it is going.
@@ -56,8 +59,10 @@
return TRUE
/datum/language/proc/get_icon()
- var/datum/asset/spritesheet_batched/sheet = get_asset_datum(/datum/asset/spritesheet_batched/chat)
- return sheet.icon_tag("language-[icon_state]")
+ if(!fast_icon_span)
+ var/datum/asset/spritesheet_batched/sheet = get_asset_datum(/datum/asset/spritesheet_batched/chat)
+ fast_icon_span = sheet.icon_tag("language-[icon_state]")
+ return fast_icon_span
/datum/language/proc/get_random_name(gender, name_count=2, syllable_count=4, syllable_divisor=2)
if(!syllables || !syllables.len)
diff --git a/code/modules/mining/equipment/resonator.dm b/code/modules/mining/equipment/resonator.dm
index b5588e772ba9d..150ae9fdcab7e 100644
--- a/code/modules/mining/equipment/resonator.dm
+++ b/code/modules/mining/equipment/resonator.dm
@@ -56,7 +56,7 @@
/obj/item/resonator/pre_attack(atom/target, mob/user, params)
if(check_allowed_items(target, 1))
CreateResonance(target, user)
- return TRUE
+ . = ..()
//resonance field, crushes rock, damages mobs
/obj/effect/temp_visual/resonance
diff --git a/code/modules/mob/living/carbon/carbon.dm b/code/modules/mob/living/carbon/carbon.dm
index 3a5104e107302..c63f3c4a8752a 100644
--- a/code/modules/mob/living/carbon/carbon.dm
+++ b/code/modules/mob/living/carbon/carbon.dm
@@ -861,7 +861,7 @@
/mob/living/carbon/fakefire(var/fire_icon = "Generic_mob_burning")
var/mutable_appearance/new_fire_overlay = mutable_appearance('icons/mob/OnFire.dmi', fire_icon, CALCULATE_MOB_OVERLAY_LAYER(FIRE_LAYER))
new_fire_overlay.appearance_flags = RESET_COLOR
- new_fire_overlay.overlays.Add(emissive_appearance('icons/mob/OnFire.dmi', fire_icon, CALCULATE_MOB_OVERLAY_LAYER(FIRE_LAYER)))
+ new_fire_overlay.overlays.Add(emissive_appearance('icons/mob/OnFire.dmi', fire_icon, CALCULATE_MOB_OVERLAY_LAYER(FIRE_LAYER), filters = src.filters))
overlays_standing[FIRE_LAYER] = new_fire_overlay
apply_overlay(FIRE_LAYER)
diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm
index 24adf825d4053..d27ffb8b289a4 100644
--- a/code/modules/mob/living/carbon/carbon_defense.dm
+++ b/code/modules/mob/living/carbon/carbon_defense.dm
@@ -304,7 +304,6 @@
else if(M.is_zone_selected(BODY_ZONE_HEAD))
M.visible_message("[M] pats [src] on the head.", \
"You pat [src] on the head.")
- SEND_SIGNAL(src, COMSIG_ADD_MOOD_EVENT, "headpat", /datum/mood_event/headpat, M)
for(var/datum/brain_trauma/trauma in M.get_traumas())
trauma.on_hug(M, src)
else if((M.is_zone_selected(BODY_ZONE_L_ARM)) || (M.is_zone_selected(BODY_ZONE_R_ARM)))
diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm
index 611aa231c2afd..8f4e3d2bcb40b 100644
--- a/code/modules/mob/living/carbon/human/human.dm
+++ b/code/modules/mob/living/carbon/human/human.dm
@@ -792,6 +792,8 @@
for(var/datum/mutation/HM as() in dna.mutations)
if(HM.quality != POSITIVE)
dna.remove_mutation(HM.name)
+ coretemperature = get_body_temp_normal(apply_change=FALSE)
+ heat_exposure_stacks = 0
..()
/mob/living/carbon/human/check_weakness(obj/item/weapon, mob/living/attacker)
diff --git a/code/modules/mob/living/carbon/human/human_defines.dm b/code/modules/mob/living/carbon/human/human_defines.dm
index 244a62d152206..5f37d1326c7b8 100644
--- a/code/modules/mob/living/carbon/human/human_defines.dm
+++ b/code/modules/mob/living/carbon/human/human_defines.dm
@@ -59,3 +59,9 @@
var/static/list/can_ride_typecache = typecacheof(list(/mob/living/carbon/human, /mob/living/simple_animal/slime, /mob/living/simple_animal/parrot, /mob/living/carbon/monkey))
var/lastpuke = 0
var/last_fire_update
+
+ /// The core temperature of the human compaired to the skin temp of the body
+ var/coretemperature = BODYTEMP_NORMAL
+
+ ///Exposure to damaging heat levels increases stacks, stacks clean over time when temperatures are lower. Stack is consumed to add a wound.
+ var/heat_exposure_stacks = 0
diff --git a/code/modules/mob/living/carbon/human/human_movement.dm b/code/modules/mob/living/carbon/human/human_movement.dm
index b3640ae6f1abb..e6de200042cbb 100644
--- a/code/modules/mob/living/carbon/human/human_movement.dm
+++ b/code/modules/mob/living/carbon/human/human_movement.dm
@@ -43,8 +43,7 @@
/mob/living/carbon/human/Move(NewLoc, direct)
. = ..()
if(shoes && (mobility_flags & MOBILITY_STAND) && loc == NewLoc && has_gravity(loc))
- var/obj/item/clothing/shoes/S = shoes
- S.step_action()
+ SEND_SIGNAL(shoes, COMSIG_SHOES_STEP_ACTION)
/mob/living/carbon/human/Process_Spacemove(movement_dir = 0) //Temporary laziness thing. Will change to handles by species reee.
if(dna.species.space_move(src))
diff --git a/code/modules/mob/living/carbon/human/life.dm b/code/modules/mob/living/carbon/human/life.dm
index 68be90ff43967..71bb4a23a6177 100644
--- a/code/modules/mob/living/carbon/human/life.dm
+++ b/code/modules/mob/living/carbon/human/life.dm
@@ -39,6 +39,9 @@
// Tissues die without blood circulation
adjustBruteLoss(2)
+ //Body temperature stability and damage
+ dna.species.handle_body_temperature(src)
+
dna.species.spec_life(src) // for mutantraces
//Update our name based on whether our face is obscured/disfigured
@@ -113,8 +116,17 @@
return
dna.species.handle_environment(environment, src)
- dna.species.handle_environment_pressure(environment, src)
- dna.species.handle_body_temperature(src)
+
+/**
+ * Adjust the core temperature of a mob
+ *
+ * vars:
+ * * amount The amount of degrees to change body temperature by
+ * * min_temp (optional) The minimum body temperature after adjustment
+ * * max_temp (optional) The maximum body temperature after adjustment
+ */
+/mob/living/carbon/human/proc/adjust_coretemperature(amount, min_temp=0, max_temp=INFINITY)
+ coretemperature = clamp(coretemperature + amount, min_temp, max_temp)
/**
* get_body_temperature Returns the body temperature with any modifications applied
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index 66f4b98fc712b..5a107d674b4b1 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -1015,7 +1015,7 @@ GLOBAL_LIST_EMPTY(features_by_species)
// Add on emissives, if they have one
if (S.emissive_state)
- accessory_overlay.overlays.Add(emissive_appearance(S.icon, S.emissive_state, CALCULATE_MOB_OVERLAY_LAYER(layer), S.emissive_alpha))
+ accessory_overlay.overlays.Add(emissive_appearance(S.icon, S.emissive_state, CALCULATE_MOB_OVERLAY_LAYER(layer), S.emissive_alpha, filters = H.filters))
ADD_LUM_SOURCE(H, LUM_SOURCE_MUTANT_BODYPART)
//A little rename so we don't have to use tail_lizard or tail_human when naming the sprites.
@@ -1410,39 +1410,52 @@ GLOBAL_LIST_EMPTY(features_by_species)
to_chat(H, "You no longer feel vigorous.")
H.metabolism_efficiency = 1
- //Hunger slowdown for if mood isn't enabled
- if(CONFIG_GET(flag/disable_human_mood))
- if(!HAS_TRAIT(H, TRAIT_NOHUNGER))
- var/hungry = (500 - H.nutrition) / 5 //So overeat would be 100 and default level would be 80
- if(hungry >= 70)
- H.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/hunger, multiplicative_slowdown = (hungry / 50))
- else
- H.remove_movespeed_modifier(/datum/movespeed_modifier/hunger)
-
if(HAS_TRAIT(H, TRAIT_POWERHUNGRY))
handle_charge(H)
else
switch(H.nutrition)
if(NUTRITION_LEVEL_FULL to INFINITY)
H.throw_alert("nutrition", /atom/movable/screen/alert/fat)
- if(NUTRITION_LEVEL_HUNGRY to NUTRITION_LEVEL_FULL)
+ H.remove_movespeed_modifier(MOVESPEED_ID_VISIBLE_HUNGER)
+ H.remove_actionspeed_modifier(ACTIONSPEED_ID_SATIETY)
+ if(NUTRITION_LEVEL_FED to NUTRITION_LEVEL_FULL)
+ H.clear_alert("nutrition")
+ H.remove_movespeed_modifier(MOVESPEED_ID_VISIBLE_HUNGER)
+ H.add_actionspeed_modifier(/datum/actionspeed_modifier/well_fed)
+ if(NUTRITION_LEVEL_HUNGRY to NUTRITION_LEVEL_FED)
H.clear_alert("nutrition")
+ H.remove_movespeed_modifier(MOVESPEED_ID_VISIBLE_HUNGER)
+ H.remove_actionspeed_modifier(ACTIONSPEED_ID_SATIETY)
if(NUTRITION_LEVEL_STARVING to NUTRITION_LEVEL_HUNGRY)
H.throw_alert("nutrition", /atom/movable/screen/alert/hungry)
+ H.add_movespeed_modifier(/datum/movespeed_modifier/visible_hunger/hungry)
+ H.add_actionspeed_modifier(/datum/actionspeed_modifier/starving)
if(0 to NUTRITION_LEVEL_STARVING)
H.throw_alert("nutrition", /atom/movable/screen/alert/starving)
+ H.add_movespeed_modifier(/datum/movespeed_modifier/visible_hunger/starving)
+ H.add_actionspeed_modifier(/datum/actionspeed_modifier/starving)
/datum/species/proc/handle_charge(mob/living/carbon/human/H)
switch(H.nutrition)
if(NUTRITION_LEVEL_FED to INFINITY)
H.clear_alert("nutrition")
+ H.remove_movespeed_modifier(MOVESPEED_ID_VISIBLE_HUNGER)
+ H.add_actionspeed_modifier(/datum/actionspeed_modifier/well_fed)
if(NUTRITION_LEVEL_HUNGRY to NUTRITION_LEVEL_FED)
H.throw_alert("nutrition", /atom/movable/screen/alert/lowcell, 1)
+ H.remove_movespeed_modifier(MOVESPEED_ID_VISIBLE_HUNGER)
+ H.remove_actionspeed_modifier(ACTIONSPEED_ID_SATIETY)
if(NUTRITION_LEVEL_STARVING to NUTRITION_LEVEL_HUNGRY)
H.throw_alert("nutrition", /atom/movable/screen/alert/lowcell, 2)
+ H.add_movespeed_modifier(/datum/movespeed_modifier/visible_hunger/hungry)
+ H.add_actionspeed_modifier(/datum/actionspeed_modifier/starving)
if(1 to NUTRITION_LEVEL_STARVING)
H.throw_alert("nutrition", /atom/movable/screen/alert/lowcell, 3)
+ H.add_movespeed_modifier(/datum/movespeed_modifier/visible_hunger/starving)
+ H.add_actionspeed_modifier(/datum/actionspeed_modifier/starving)
else
+ H.add_movespeed_modifier(/datum/movespeed_modifier/visible_hunger/starving)
+ H.add_actionspeed_modifier(/datum/actionspeed_modifier/starving)
var/obj/item/organ/stomach/battery/battery = H.getorganslot(ORGAN_SLOT_STOMACH)
if(!istype(battery))
H.throw_alert("nutrition", /atom/movable/screen/alert/nocell)
@@ -1843,86 +1856,257 @@ GLOBAL_LIST_EMPTY(features_by_species)
//////////////////////////
/**
- * Enviroment handler for species
+ * Environment handler for species
+ *
+ * vars:
+ * * environment (required) The environment gas mix
+ * * humi (required)(type: /mob/living/carbon/human) The mob we will target
+ */
+/datum/species/proc/handle_environment(datum/gas_mixture/environment, mob/living/carbon/human/humi)
+ handle_environment_pressure(environment, humi)
+
+/**
+ * Body temperature handler for species
*
+ * These procs manage body temp, bamage, and alerts
+ * Some of these will still fire when not alive to balance body temp to the room temp.
* vars:
- * * environment The environment gas mix
- * * H The mob we will stabilize
+ * * humi (required)(type: /mob/living/carbon/human) The mob we will target
*/
-/datum/species/proc/handle_environment(datum/gas_mixture/environment, mob/living/carbon/human/H)
- var/areatemp = H.get_temperature(environment)
+/datum/species/proc/handle_body_temperature(mob/living/carbon/human/humi)
+ //when in a cryo unit we suspend all natural body regulation
+ if(istype(humi.loc, /obj/machinery/atmospherics/components/unary/cryo_cell))
+ return
+
+ //Only stabilise core temp when alive and not in statis
+ if(humi.stat < DEAD && !IS_IN_STASIS(humi))
+ body_temperature_core(humi)
- if(H.stat != DEAD) // If you are dead your body does not stabilize naturally
- natural_bodytemperature_stabilization(environment, H)
+ //These do run in statis
+ body_temperature_skin(humi)
+ body_temperature_alerts(humi)
- if(!H.on_fire || areatemp > H.bodytemperature) // If we are not on fire or the area is hotter
- H.adjust_bodytemperature((areatemp - H.bodytemperature), use_insulation=TRUE, use_steps=TRUE, hardsuit_fix=bodytemp_normal - H.bodytemperature)
+ //Do not cause more damage in statis
+ if(!IS_IN_STASIS(humi))
+ body_temperature_damage(humi)
-/// Handle the body temperature status effects for the species
-/// Traits for resitance to heat or cold are handled here.
-/datum/species/proc/handle_body_temperature(mob/living/carbon/human/H)
+/**
+ * Used to stabilize the core temperature back to normal on living mobs
+ *
+ * The metabolisim heats up the core of the mob trying to keep it at the normal body temp
+ * vars:
+ * * humi (required) The mob we will stabilize
+ */
+/datum/species/proc/body_temperature_core(mob/living/carbon/human/humi)
+ var/natural_change = get_temp_change_amount(humi.get_body_temp_normal() - humi.coretemperature, 0.12)
+ humi.adjust_coretemperature(humi.metabolism_efficiency * natural_change)
+
+/**
+ * Used to normalize the skin temperature on living mobs
+ *
+ * The core temp effects the skin, then the enviroment effects the skin, then we refect that back to the core.
+ * This happens even when dead so bodies revert to room temp over time.
+ * vars:
+ * * humi (required) The mob we will targeting
+ */
+/datum/species/proc/body_temperature_skin(mob/living/carbon/human/humi)
+
+ // change the core based on the skin temp
+ var/skin_core_diff = humi.bodytemperature - humi.coretemperature
+ // change rate of 0.08 to be slightly below area to skin change rate and still have a solid curve
+ var/skin_core_change = get_temp_change_amount(skin_core_diff, 0.08)
+
+ humi.adjust_coretemperature(skin_core_change)
+
+ // get the enviroment details of where the mob is standing
+ var/datum/gas_mixture/environment = humi.loc.return_air()
+ if(!environment) // if there is no environment (nullspace) drop out here.
+ return
+
+ // Get the temperature of the environment for area
+ var/area_temp = humi.get_temperature(environment)
+
+ // Get the insulation value based on the area's temp
+ var/thermal_protection = humi.get_insulation_protection(area_temp)
+
+ // Changes to the skin temperature based on the area
+ var/area_skin_diff = area_temp - humi.bodytemperature
+ if(!humi.on_fire || area_skin_diff > 0)
+ // change rate of 0.1 as area temp has large impact on the surface
+ var/area_skin_change = get_temp_change_amount(area_skin_diff, 0.1)
+
+ // We need to apply the thermal protection of the clothing when applying area to surface change
+ // If the core bodytemp goes over the normal body temp you are overheating and becom sweaty
+ // This will cause the insulation value of any clothing to reduced in effect (70% normal rating)
+ // we add 10 degree over normal body temp before triggering as thick insulation raises body temp
+ if(humi.get_body_temp_normal(apply_change=FALSE) + 10 < humi.coretemperature)
+ // we are overheating and sweaty insulation is not as good reducing thermal protection
+ area_skin_change = (1 - (thermal_protection * 0.7)) * area_skin_change
+ else
+ area_skin_change = (1 - thermal_protection) * area_skin_change
+
+ humi.adjust_bodytemperature(area_skin_change)
+
+ // Core to skin temp transfer, when not on fire
+ if(!humi.on_fire)
+ // Get the changes to the skin from the core temp
+ var/core_skin_diff = humi.coretemperature - humi.bodytemperature
+ // change rate of 0.08 to reflect temp back in to the core at the same rate as core to skin
+ var/core_skin_change = (1 + thermal_protection) * get_temp_change_amount(core_skin_diff, 0.08)
+
+ // We do not want to over shoot after using protection
+ if(core_skin_diff > 0)
+ core_skin_change = min(core_skin_change, core_skin_diff)
+ else
+ core_skin_change = max(core_skin_change, core_skin_diff)
+
+ humi.adjust_bodytemperature(core_skin_change)
+
+
+/**
+ * Used to set alerts and debuffs based on body temperature
+ * vars:
+ * * humi (required) The mob we will targeting
+ */
+/datum/species/proc/body_temperature_alerts(mob/living/carbon/human/humi)
+ var/old_bodytemp = humi.old_bodytemperature
+ var/bodytemp = humi.bodytemperature
// Body temperature is too hot, and we do not have resist traits
- if(H.bodytemperature > bodytemp_heat_damage_limit && !HAS_TRAIT(H, TRAIT_RESISTHEAT))
+ if(bodytemp > bodytemp_heat_damage_limit && !HAS_TRAIT(humi, TRAIT_RESISTHEAT))
// Clear cold mood and apply hot mood
- SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "cold")
- SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "hot", /datum/mood_event/hot)
+ SEND_SIGNAL(humi, COMSIG_CLEAR_MOOD_EVENT, "cold")
+ SEND_SIGNAL(humi, COMSIG_ADD_MOOD_EVENT, "hot", /datum/mood_event/hot)
+
+ //Remove any slowdown from the cold.
+ humi.remove_movespeed_modifier(/datum/movespeed_modifier/cold)
+ // display alerts based on how hot it is
+ // Can't be a switch due to http://www.byond.com/forum/post/2750423
+ if(bodytemp in bodytemp_heat_damage_limit to BODYTEMP_HEAT_WARNING_2)
+ humi.throw_alert("temp", /atom/movable/screen/alert/hot, 1)
+ else if(bodytemp in BODYTEMP_HEAT_WARNING_2 to BODYTEMP_HEAT_WARNING_3)
+ humi.throw_alert("temp", /atom/movable/screen/alert/hot, 2)
+ else
+ humi.throw_alert("temp", /atom/movable/screen/alert/hot, 3)
+
+ // Body temperature is too cold, and we do not have resist traits
+ else if(humi.bodytemperature < bodytemp_cold_damage_limit && !HAS_TRAIT(humi, TRAIT_RESISTCOLD))
+ // clear any hot moods and apply cold mood
+ SEND_SIGNAL(humi, COMSIG_CLEAR_MOOD_EVENT, "hot")
+ SEND_SIGNAL(humi, COMSIG_ADD_MOOD_EVENT, "cold", /datum/mood_event/cold)
+ // Apply cold slow down
+ humi.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/cold, multiplicative_slowdown = ((bodytemp_cold_damage_limit - humi.bodytemperature) / COLD_SLOWDOWN_FACTOR))
+ // Display alerts based how cold it is
+ // Can't be a switch due to http://www.byond.com/forum/post/2750423
+ if(bodytemp in BODYTEMP_COLD_WARNING_2 to bodytemp_cold_damage_limit)
+ humi.throw_alert("temp", /atom/movable/screen/alert/cold, 1)
+ else if(bodytemp in BODYTEMP_COLD_WARNING_3 to BODYTEMP_COLD_WARNING_2)
+ humi.throw_alert("temp", /atom/movable/screen/alert/cold, 2)
+ else
+ humi.throw_alert("temp", /atom/movable/screen/alert/cold, 3)
+
+ // We are not to hot or cold, remove status and moods
+ // Optimization here, we check these things based off the old temperature to avoid unneeded work
+ // We're not perfect about this, because it'd just add more work to the base case, and resistances are rare
+ else if (old_bodytemp > bodytemp_heat_damage_limit || old_bodytemp < bodytemp_cold_damage_limit)
+ humi.clear_alert("temp")
+ humi.remove_movespeed_modifier(/datum/movespeed_modifier/cold)
+ SEND_SIGNAL(humi, COMSIG_CLEAR_MOOD_EVENT, "cold")
+ SEND_SIGNAL(humi, COMSIG_CLEAR_MOOD_EVENT, "hot")
+
+ // Store the old bodytemp for future checking
+ humi.old_bodytemperature = bodytemp
- // Remove any slow down from the cold
- H.remove_movespeed_modifier(/datum/movespeed_modifier/cold)
+/**
+ * Used to apply wounds and damage based on core/body temp
+ * vars:
+ * * humi (required) The mob we will targeting
+ */
+/datum/species/proc/body_temperature_damage(mob/living/carbon/human/humi)
- var/burn_damage = 0
- var/firemodifier = H.fire_stacks / 50
- if (!H.on_fire) // We are not on fire, reduce the modifier
+ //If the body temp is above the wound limit start adding exposure stacks
+ if(humi.bodytemperature > BODYTEMP_HEAT_WOUND_LIMIT)
+ humi.heat_exposure_stacks = min(humi.heat_exposure_stacks + 1, 40)
+ else //When below the wound limit, reduce the exposure stacks fast.
+ humi.heat_exposure_stacks = max(humi.heat_exposure_stacks - 4, 0)
+
+ //when exposure stacks are greater then 10 + rand20 try to apply wounds and reset stacks
+ if(humi.heat_exposure_stacks > (10 + rand(0, 20)))
+ apply_burn_wounds(humi)
+ humi.heat_exposure_stacks = 0
+
+ // Body temperature is too hot, and we do not have resist traits
+ // Apply some burn damage to the body
+ if(humi.coretemperature > bodytemp_heat_damage_limit && !HAS_TRAIT(humi, TRAIT_RESISTHEAT))
+ var/firemodifier = humi.fire_stacks / 50
+ if (!humi.on_fire) // We are not on fire, reduce the modifier
firemodifier = min(firemodifier, 0)
// this can go below 5 at log 2.5
- burn_damage = max(log(2 - firemodifier, (H.bodytemperature - H.get_body_temp_normal())) - 5,0)
-
- // Display alerts based on the amount of fire damage being taken
- if (burn_damage)
- switch(burn_damage)
- if(0 to 2)
- H.throw_alert("temp", /atom/movable/screen/alert/hot, 1)
- if(2 to 4)
- H.throw_alert("temp", /atom/movable/screen/alert/hot, 2)
- else
- H.throw_alert("temp", /atom/movable/screen/alert/hot, 3)
+ var/burn_damage = max(log(2 - firemodifier, (humi.coretemperature - humi.get_body_temp_normal(apply_change=FALSE))) - 5,0)
// Apply species and physiology modifiers to heat damage
- burn_damage = burn_damage * heatmod * H.physiology.heat_mod
+ burn_damage = burn_damage * heatmod * humi.physiology.heat_mod
// 40% for level 3 damage on humans to scream in pain
- if (H.stat < UNCONSCIOUS && (prob(burn_damage) * 10) / 4)
- H.emote("scream")
+ if (humi.stat < UNCONSCIOUS && (prob(burn_damage) * 10) / 4)
+ humi.emote("scream")
// Apply the damage to all body parts
- H.apply_damage(burn_damage, BURN)
+ humi.apply_damage(burn_damage, BURN)
+
+ // Apply some burn damage to the body
+ if(humi.coretemperature < bodytemp_cold_damage_limit && !HAS_TRAIT(humi, TRAIT_RESISTCOLD))
+ switch(humi.coretemperature)
+ if(201 to INFINITY)
+ humi.apply_damage(COLD_DAMAGE_LEVEL_1 * coldmod * humi.physiology.cold_mod, BURN)
+ if(120 to 200)
+ humi.apply_damage(COLD_DAMAGE_LEVEL_2 * coldmod * humi.physiology.cold_mod, BURN)
+ else
+ humi.apply_damage(COLD_DAMAGE_LEVEL_3 * coldmod * humi.physiology.cold_mod, BURN)
- // Body temperature is too cold, and we do not have resist traits
- else if(H.bodytemperature < bodytemp_cold_damage_limit && !HAS_TRAIT(H, TRAIT_RESISTCOLD))
- // clear any hot moods and apply cold mood
- SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "hot")
- SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "cold", /datum/mood_event/cold)
- // Apply cold slow down
- H.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/cold, multiplicative_slowdown = ((bodytemp_cold_damage_limit - H.bodytemperature) / COLD_SLOWDOWN_FACTOR))
- // Display alerts based on the amount of cold damage being taken
- // Apply more damage based on how cold you are
- if (H.bodytemperature >= 200 && H.bodytemperature <= bodytemp_cold_damage_limit)
- H.throw_alert("temp", /atom/movable/screen/alert/cold, 1)
- H.apply_damage(COLD_DAMAGE_LEVEL_1 * coldmod * H.physiology.cold_mod, BURN)
- else if (H.bodytemperature >= 120 && H.bodytemperature < 200)
- H.throw_alert("temp", /atom/movable/screen/alert/cold, 2)
- H.apply_damage(COLD_DAMAGE_LEVEL_2 * coldmod * H.physiology.cold_mod, BURN)
- else
- H.throw_alert("temp", /atom/movable/screen/alert/cold, 3)
- H.apply_damage(COLD_DAMAGE_LEVEL_3 * coldmod * H.physiology.cold_mod, BURN)
+/**
+ * Used to apply burn wounds on random limbs
+ *
+ * This is called from body_temperature_damage when exposure to extream heat adds up and causes a wound.
+ * The wounds will increase in severity as the temperature increases.
+ * vars:
+ * * humi (required) The mob we will targeting
+ */
+/datum/species/proc/apply_burn_wounds(mob/living/carbon/human/humi)
+ // If we are resistant to heat exit
+ if(HAS_TRAIT(humi, TRAIT_RESISTHEAT))
+ return
- // We are not to hot or cold, remove status and moods
- else
- H.clear_alert("temp")
- H.remove_movespeed_modifier(/datum/movespeed_modifier/cold)
- SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "cold")
- SEND_SIGNAL(H, COMSIG_CLEAR_MOOD_EVENT, "hot")
+ // If our body temp is to low for a wound exit
+ if(humi.bodytemperature < BODYTEMP_HEAT_WOUND_LIMIT)
+ return
+
+ // Lets pick a random body part and check for an existing burn
+ var/obj/item/bodypart/bodypart = pick(humi.bodyparts)
+ /* No wounds yet
+ var/datum/wound/burn/existing_burn = locate(/datum/wound/burn) in bodypart.wounds
+
+ // If we have an existing burn try to upgrade it
+ if(existing_burn)
+ switch(existing_burn.severity)
+ if(WOUND_SEVERITY_MODERATE)
+ if(humi.bodytemperature > BODYTEMP_HEAT_WOUND_LIMIT + 400) // 800k
+ bodypart.force_wound_upwards(/datum/wound/burn/severe)
+ if(WOUND_SEVERITY_SEVERE)
+ if(humi.bodytemperature > BODYTEMP_HEAT_WOUND_LIMIT + 2800) // 3200k
+ bodypart.force_wound_upwards(/datum/wound/burn/critical)
+ else // If we have no burn apply the lowest level burn
+ bodypart.force_wound_upwards(/datum/wound/burn/moderate)
+ */
+
+ // always take some burn damage
+ var/burn_damage = HEAT_DAMAGE_LEVEL_1
+ if(humi.bodytemperature > BODYTEMP_HEAT_WOUND_LIMIT + 400)
+ burn_damage = HEAT_DAMAGE_LEVEL_2
+ if(humi.bodytemperature > BODYTEMP_HEAT_WOUND_LIMIT + 2800)
+ burn_damage = HEAT_DAMAGE_LEVEL_3
+
+ humi.apply_damage(burn_damage, BURN, bodypart)
/// Handle the air pressure of the environment
/datum/species/proc/handle_environment_pressure(datum/gas_mixture/environment, mob/living/carbon/human/H)
@@ -1931,12 +2115,10 @@ GLOBAL_LIST_EMPTY(features_by_species)
// Set alerts and apply damage based on the amount of pressure
switch(adjusted_pressure)
-
// Very high pressure, show an alert and take damage
if(HAZARD_HIGH_PRESSURE to INFINITY)
if(!HAS_TRAIT(H, TRAIT_RESISTHIGHPRESSURE))
- H.adjustBruteLoss(min(((adjusted_pressure / HAZARD_HIGH_PRESSURE) -1 ) * \
- PRESSURE_DAMAGE_COEFFICIENT, MAX_HIGH_PRESSURE_DAMAGE) * H.physiology.pressure_mod)
+ H.adjustBruteLoss(min(((adjusted_pressure / HAZARD_HIGH_PRESSURE) -1 ) * PRESSURE_DAMAGE_COEFFICIENT, MAX_HIGH_PRESSURE_DAMAGE) * H.physiology.pressure_mod)
H.throw_alert("pressure", /atom/movable/screen/alert/highpressure, 2)
else
H.clear_alert("pressure")
@@ -1966,62 +2148,6 @@ GLOBAL_LIST_EMPTY(features_by_species)
H.adjustBruteLoss(LOW_PRESSURE_DAMAGE * H.physiology.pressure_mod)
H.throw_alert("pressure", /atom/movable/screen/alert/lowpressure, 2)
-/**
- * Used to stabilize the body temperature back to normal on living mobs
- *
- * vars:
- * * environment The environment gas mix
- * * H The mob we will stabilize
- */
-/datum/species/proc/natural_bodytemperature_stabilization(datum/gas_mixture/environment, mob/living/carbon/human/H)
- var/areatemp = H.get_temperature(environment)
- var/body_temp = H.bodytemperature // Get current body temperature
- var/body_temperature_difference = H.get_body_temp_normal() - body_temp
- var/natural_change = 0
-
- // We are very cold, increase body temperature
- if(body_temp <= bodytemp_cold_damage_limit)
- natural_change = max((body_temperature_difference * H.metabolism_efficiency / BODYTEMP_AUTORECOVERY_DIVISOR), \
- bodytemp_autorecovery_min)
-
- // we are cold, reduce the minimum increment and do not jump over the difference
- else if(body_temp > bodytemp_cold_damage_limit && body_temp < H.get_body_temp_normal())
- natural_change = max(body_temperature_difference * H.metabolism_efficiency / BODYTEMP_AUTORECOVERY_DIVISOR, \
- min(body_temperature_difference, bodytemp_autorecovery_min / 4))
-
- // We are hot, reduce the minimum increment and do not jump below the difference
- else if(body_temp > H.get_body_temp_normal() && body_temp <= bodytemp_heat_damage_limit)
- natural_change = min(body_temperature_difference * H.metabolism_efficiency / BODYTEMP_AUTORECOVERY_DIVISOR, \
- max(body_temperature_difference, -(bodytemp_autorecovery_min / 4)))
-
- // We are very hot, reduce the body temperature
- else if(body_temp >= bodytemp_heat_damage_limit)
- natural_change = min((body_temperature_difference / BODYTEMP_AUTORECOVERY_DIVISOR), -bodytemp_autorecovery_min)
-
- var/thermal_protection = H.get_insulation_protection(body_temp + natural_change)
- if(areatemp > body_temp) // It is hot here
- if(body_temp < H.get_body_temp_normal())
- // Our bodytemp is below normal we are cold, insulation helps us retain body heat
- // and will reduce the heat we lose to the environment
- natural_change = (thermal_protection + 1) * natural_change
- else
- // Our bodytemp is above normal and sweating, insulation hinders out ability to reduce heat
- // but will reduce the amount of heat we get from the environment
- natural_change = (1 / (thermal_protection + 1)) * natural_change
- else // It is cold here
- if(!H.on_fire) // If on fire ignore ignore local temperature in cold areas
- if(body_temp < H.get_body_temp_normal())
- // Our bodytemp is below normal, insulation helps us retain body heat
- // and will reduce the heat we lose to the environment
- natural_change = (thermal_protection + 1) * natural_change
- else
- // Our bodytemp is above normal and sweating, insulation hinders out ability to reduce heat
- // but will reduce the amount of heat we get from the environment
- natural_change = (1 / (thermal_protection + 1)) * natural_change
-
- // Apply the natural stabilization changes
- H.adjust_bodytemperature(natural_change)
-
//////////
// FIRE //
//////////
diff --git a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm
index 1b250df301b49..3ffbcfa97eabb 100644
--- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm
+++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm
@@ -37,7 +37,7 @@
species_r_leg = /obj/item/bodypart/r_leg/lizard
/// Lizards are cold blooded and do not stabilize body temperature naturally
-/datum/species/lizard/natural_bodytemperature_stabilization(datum/gas_mixture/environment, mob/living/carbon/human/H)
+/datum/species/lizard/body_temperature_core(mob/living/carbon/human/humi)
return
/datum/species/lizard/random_name(gender, unique, lastname, attempts)
diff --git a/code/modules/mob/living/carbon/human/species_types/zombies.dm b/code/modules/mob/living/carbon/human/species_types/zombies.dm
index 915675b096a9b..5271df3f8a909 100644
--- a/code/modules/mob/living/carbon/human/species_types/zombies.dm
+++ b/code/modules/mob/living/carbon/human/species_types/zombies.dm
@@ -49,7 +49,7 @@
changesource_flags = MIRROR_BADMIN | WABBAJACK | ERT_SPAWN
/// Zombies do not stabilize body temperature they are the walking dead and are cold blooded
-/datum/species/zombie/natural_bodytemperature_stabilization(datum/gas_mixture/environment, mob/living/carbon/human/H)
+/datum/species/zombie/body_temperature_core(mob/living/carbon/human/humi)
return
/datum/species/zombie/infectious/check_roundstart_eligible()
diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm
index caa03d3ed5587..19863f210eb53 100644
--- a/code/modules/mob/living/carbon/life.dm
+++ b/code/modules/mob/living/carbon/life.dm
@@ -681,7 +681,7 @@ GLOBAL_LIST_INIT(ballmer_windows_me_msg, list("Yo man, what if, we like, uh, put
amount = (amount > 0) ? min(amount / BODYTEMP_HEAT_DIVISOR, BODYTEMP_HEATING_MAX) : max(amount / BODYTEMP_COLD_DIVISOR, BODYTEMP_COOLING_MAX)
if(bodytemperature >= min_temp && bodytemperature <= max_temp)
- bodytemperature = clamp(bodytemperature + amount,min_temp,max_temp)
+ bodytemperature = clamp(bodytemperature + amount, min_temp, max_temp)
/////////
//LIVER//
diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm
index f0d7ffa02ce91..473b83fd49cd1 100644
--- a/code/modules/mob/living/emote.dm
+++ b/code/modules/mob/living/emote.dm
@@ -73,7 +73,7 @@
/datum/emote/living/collapse/run_emote(mob/user, params, type_override, intentional)
. = ..()
- if(. && isliving(user))
+ if(. && isliving(user) && intentional)
var/mob/living/L = user
L.Unconscious(40)
@@ -121,7 +121,7 @@
/datum/emote/living/faint/run_emote(mob/user, params, type_override, intentional)
. = ..()
- if(. && isliving(user))
+ if(. && isliving(user) && intentional)
var/mob/living/L = user
L.SetSleeping(200)
@@ -243,7 +243,7 @@
/datum/emote/living/point/run_emote(mob/user, params, type_override, intentional)
message_param = initial(message_param) // reset
- if(ishuman(user))
+ if(ishuman(user) && intentional)
var/mob/living/carbon/human/H = user
if(H.get_num_arms() == 0)
if(H.get_num_legs() != 0)
@@ -338,7 +338,7 @@
/datum/emote/living/surrender/run_emote(mob/user, params, type_override, intentional)
. = ..()
- if(. && isliving(user))
+ if(. && isliving(user) && intentional)
var/mob/living/L = user
L.Paralyze(200)
@@ -471,12 +471,13 @@
/datum/emote/living/circle/run_emote(mob/user, params, type_override, intentional)
. = ..()
- var/obj/item/circlegame/N = new(user)
- if(user.put_in_hands(N))
- to_chat(user, "You make a circle with your hand.")
- else
- qdel(N)
- to_chat(user, "You don't have any free hands to make a circle with.")
+ if(intentional)
+ var/obj/item/circlegame/N = new(user)
+ if(user.put_in_hands(N))
+ to_chat(user, "You make a circle with your hand.")
+ else
+ qdel(N)
+ to_chat(user, "You don't have any free hands to make a circle with.")
/datum/emote/living/slap
key = "slap"
@@ -487,11 +488,12 @@
. = ..()
if(!.)
return
- var/obj/item/slapper/N = new(user)
- if(user.put_in_hands(N))
- to_chat(user, "You ready your slapping hand.")
- else
- to_chat(user, "You're incapable of slapping in your current state.")
+ if(intentional)
+ var/obj/item/slapper/N = new(user)
+ if(user.put_in_hands(N))
+ to_chat(user, "You ready your slapping hand.")
+ else
+ to_chat(user, "You're incapable of slapping in your current state.")
/datum/emote/living/raisehand
key = "highfive"
@@ -499,14 +501,15 @@
message = "raises their hand"
restraint_check = TRUE
-/datum/emote/living/raisehand/run_emote(mob/user, params)
+/datum/emote/living/raisehand/run_emote(mob/user, params, type_override, intentional)
. = ..()
- var/obj/item/highfive/N = new(user)
- if(user.put_in_hands(N))
- to_chat(user, "You raise your hand for a high-five.")
- else
- qdel(N)
- to_chat(user, "You don't have any free hands to high-five with.")
+ if(intentional)
+ var/obj/item/highfive/N = new(user)
+ if(user.put_in_hands(N))
+ to_chat(user, "You raise your hand for a high-five.")
+ else
+ qdel(N)
+ to_chat(user, "You don't have any free hands to high-five with.")
/datum/emote/living/fingergun
key = "fingergun"
@@ -514,14 +517,15 @@
message = "forms their fingers into the shape of a crude gun"
restraint_check = TRUE
-/datum/emote/living/fingergun/run_emote(mob/user, params)
+/datum/emote/living/fingergun/run_emote(mob/user, params, type_override, intentional)
. = ..()
- var/obj/item/gun/ballistic/revolver/mime/N = new(user)
- if(user.put_in_hands(N))
- to_chat(user, "You form your fingers into a gun.")
- else
- qdel(N)
- to_chat(user, "You don't have any free hands to make fingerguns with.")
+ if(intentional)
+ var/obj/item/gun/ballistic/revolver/mime/N = new(user)
+ if(user.put_in_hands(N))
+ to_chat(user, "You form your fingers into a gun.")
+ else
+ qdel(N)
+ to_chat(user, "You don't have any free hands to make fingerguns with.")
/datum/emote/living/click
key = "click"
diff --git a/code/modules/mob/living/silicon/silicon_defense.dm b/code/modules/mob/living/silicon/silicon_defense.dm
index f07099a5fa73b..3fbe8f1a1bc92 100644
--- a/code/modules/mob/living/silicon/silicon_defense.dm
+++ b/code/modules/mob/living/silicon/silicon_defense.dm
@@ -67,7 +67,7 @@
//ATTACK HAND IGNORING PARENT RETURN VALUE
/mob/living/silicon/attack_hand(mob/living/carbon/human/M)
. = FALSE
- if(SEND_SIGNAL(src, COMSIG_ATOM_ATTACK_HAND, M) & COMPONENT_NO_ATTACK_HAND)
+ if(SEND_SIGNAL(src, COMSIG_ATOM_ATTACK_HAND, M) & COMPONENT_CANCEL_ATTACK_CHAIN)
. = TRUE
switch(M.a_intent)
if ("help")
diff --git a/code/modules/mob/living/simple_animal/hostile/hostile.dm b/code/modules/mob/living/simple_animal/hostile/hostile.dm
index c4adc619b768c..b64402066fbed 100644
--- a/code/modules/mob/living/simple_animal/hostile/hostile.dm
+++ b/code/modules/mob/living/simple_animal/hostile/hostile.dm
@@ -507,8 +507,7 @@
if(ranged && ranged_cooldown <= world.time)
GiveTarget(A)
OpenFire(A)
- ..()
-
+ return ..()
////// AI Status ///////
diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm
index ba1a973306c90..e7449cae7af34 100644
--- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm
+++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/basilisk.dm
@@ -41,7 +41,7 @@
damage_type = BURN
nodamage = TRUE
armor_flag = ENERGY
- temperature = 50
+ temperature = -50 // Cools you down! per hit!
/mob/living/simple_animal/hostile/asteroid/basilisk/GiveTarget(new_target)
if(..()) //we have a target
@@ -129,7 +129,7 @@
damage = 5
damage_type = BURN
nodamage = FALSE
- temperature = 500 //Heats you up!
+ temperature = 200 // Heats you up! per hit!
/obj/projectile/temp/basilisk/magmawing/on_hit(atom/target, blocked = FALSE)
. = ..()
diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm
index 1b60348ca4ba4..c16509a666297 100644
--- a/code/modules/mob/mob.dm
+++ b/code/modules/mob/mob.dm
@@ -963,6 +963,9 @@
/mob/proc/can_interact_with(atom/A, treat_mob_as_adjacent)
if(IsAdminGhost(src))
return TRUE
+ var/datum/dna/mob_dna = has_dna()
+ if(mob_dna?.check_mutation(TK) && tkMaxRangeCheck(src, A))
+ return TRUE
if(treat_mob_as_adjacent && src == A.loc)
return TRUE
return Adjacent(A)
diff --git a/code/modules/mob/mob_defines.dm b/code/modules/mob/mob_defines.dm
index bb49c951331bc..0a39af6912142 100644
--- a/code/modules/mob/mob_defines.dm
+++ b/code/modules/mob/mob_defines.dm
@@ -93,6 +93,9 @@
/// Default body temperature
var/bodytemperature = BODYTEMP_NORMAL //310.15K / 98.6F
+ /// Our body temperatue as of the last process, prevents pointless work when handling alerts
+ var/old_bodytemperature = 0
+
/// Drowsyness level of the mob
var/drowsyness = 0//Carbon
/// Dizziness level of the mob
diff --git a/code/modules/movespeed/modifiers/components.dm b/code/modules/movespeed/modifiers/components.dm
index a80bb1cf08b13..d74793f9b5b9b 100644
--- a/code/modules/movespeed/modifiers/components.dm
+++ b/code/modules/movespeed/modifiers/components.dm
@@ -6,16 +6,3 @@
/datum/movespeed_modifier/snail_crawl
multiplicative_slowdown = -7
movetypes = GROUND
-
-/datum/movespeed_modifier/sanity
- id = MOVESPEED_ID_SANITY
- movetypes = (~FLYING)
-
-/datum/movespeed_modifier/sanity/insane
- multiplicative_slowdown = 0.6
-
-/datum/movespeed_modifier/sanity/crazy
- multiplicative_slowdown = 0.3
-
-/datum/movespeed_modifier/sanity/disturbed
- multiplicative_slowdown = 0.15
diff --git a/code/modules/movespeed/modifiers/mobs.dm b/code/modules/movespeed/modifiers/mobs.dm
index 8fe3cbb80b03b..659b0ca082c42 100644
--- a/code/modules/movespeed/modifiers/mobs.dm
+++ b/code/modules/movespeed/modifiers/mobs.dm
@@ -138,3 +138,13 @@
/datum/movespeed_modifier/nopowercell
multiplicative_slowdown = 1.5
blacklisted_movetypes = FLOATING
+
+/datum/movespeed_modifier/visible_hunger
+ id = MOVESPEED_ID_VISIBLE_HUNGER
+ movetypes = (~FLYING)
+
+/datum/movespeed_modifier/visible_hunger/starving
+ multiplicative_slowdown = 0.6
+
+/datum/movespeed_modifier/visible_hunger/hungry
+ multiplicative_slowdown = 0.2
diff --git a/code/modules/paperwork/filingcabinet.dm b/code/modules/paperwork/filingcabinet.dm
index ba160f639105a..60e03f12459c5 100644
--- a/code/modules/paperwork/filingcabinet.dm
+++ b/code/modules/paperwork/filingcabinet.dm
@@ -81,11 +81,11 @@
/obj/structure/filingcabinet/attack_tk(mob/user)
if(anchored)
- attack_self_tk(user)
- else
- ..()
+ return attack_self_tk(user)
+ return ..()
/obj/structure/filingcabinet/attack_self_tk(mob/user)
+ . = COMPONENT_CANCEL_ATTACK_CHAIN
if(contents.len)
if(prob(40 + contents.len * 5))
var/obj/item/I = pick(contents)
diff --git a/code/modules/power/lighting/light.dm b/code/modules/power/lighting/light.dm
index c9e9e1c2d2815..9e82edabda40a 100644
--- a/code/modules/power/lighting/light.dm
+++ b/code/modules/power/lighting/light.dm
@@ -621,8 +621,8 @@
to_chat(user, "You telekinetically remove the light [fitting].")
// create a light tube/bulb item and put it in the user's hand
- var/obj/item/light/L = drop_light_tube()
- L.attack_tk(user)
+ var/obj/item/light/light_tube = drop_light_tube()
+ return light_tube.attack_tk(user)
// break the light and make sparks if was on
diff --git a/code/modules/power/lighting/light_construct.dm b/code/modules/power/lighting/light_construct.dm
index fa5f81ca18724..96c23c8e7aaf4 100644
--- a/code/modules/power/lighting/light_construct.dm
+++ b/code/modules/power/lighting/light_construct.dm
@@ -54,11 +54,14 @@
add_fingerprint(user)
/obj/structure/light_construct/attack_tk(mob/user)
- if(cell)
- to_chat(user, "You telekinetically remove [cell].")
- cell.forceMove(drop_location())
- cell.attack_tk(user)
- remove_cell()
+ if(!cell)
+ return
+ to_chat(user, "You telekinetically remove [cell].")
+ var/obj/item/stock_parts/cell/cell_reference = cell
+ cell = null
+ cell_reference.forceMove(drop_location())
+ remove_cell()
+ return cell_reference.attack_tk(user)
/obj/structure/light_construct/attackby(obj/item/W, mob/user, params)
add_fingerprint(user)
diff --git a/code/modules/power/singularity/boh_tear.dm b/code/modules/power/singularity/boh_tear.dm
index 18b6b6e477614..ec5ef44fe2ddc 100644
--- a/code/modules/power/singularity/boh_tear.dm
+++ b/code/modules/power/singularity/boh_tear.dm
@@ -75,12 +75,14 @@
investigate_log("was created at [AREACOORD(T)].", INVESTIGATE_ENGINES)
/obj/boh_tear/attack_tk(mob/living/user)
- if(!istype(user))
+ if(!isliving(user))
return
- to_chat(user, "You don't feel like you are real anymore.")
- user.dust_animation()
- user.spawn_dust()
- addtimer(CALLBACK(src, PROC_REF(consume), user), 5)
+ var/mob/living/jedi = user
+ to_chat(jedi, "You don't feel like you are real anymore.")
+ jedi.dust_animation()
+ jedi.spawn_dust()
+ addtimer(CALLBACK(src, PROC_REF(consume), jedi), 0.5 SECONDS)
+ return COMPONENT_CANCEL_ATTACK_CHAIN
#undef BOH_TEAR_CONSUME_RANGE
#undef BOH_TEAR_GRAV_PULL
diff --git a/code/modules/power/singularity/singularity.dm b/code/modules/power/singularity/singularity.dm
index 2b85a17b9475f..e7d57f1962e6a 100644
--- a/code/modules/power/singularity/singularity.dm
+++ b/code/modules/power/singularity/singularity.dm
@@ -62,18 +62,58 @@
return ..()
/obj/anomaly/singularity/attack_tk(mob/user)
- if(iscarbon(user))
- var/mob/living/carbon/C = user
- C.visible_message("[C]'s head begins to collapse in on itself!", "Your head feels like it's collapsing in on itself! This was really not a good idea!", "You hear something crack and explode in gore.")
- var/turf/T = get_turf(C)
- for(var/i in 1 to 3)
- C.apply_damage(30, BRUTE, BODY_ZONE_HEAD)
- new /obj/effect/gibspawner/generic(T, C)
- sleep(1)
- C.ghostize()
- var/obj/item/bodypart/head/rip_u = C.get_bodypart(BODY_ZONE_HEAD)
+ if(!iscarbon(user))
+ return
+ . = COMPONENT_CANCEL_ATTACK_CHAIN
+ var/mob/living/carbon/jedi = user
+ jedi.visible_message(
+ "[jedi]'s head begins to collapse in on itself!",
+ "Your head feels like it's collapsing in on itself! This was really not a good idea!",
+ "You hear something crack and explode in gore."
+ )
+ jedi.Stun(3 SECONDS)
+ new /obj/effect/gibspawner/generic(get_turf(jedi), jedi)
+ jedi.apply_damage(30, BRUTE, BODY_ZONE_HEAD)
+ if(QDELETED(jedi))
+ return // damage was too much
+ if(jedi.stat == DEAD)
+ jedi.ghostize()
+ var/obj/item/bodypart/head/rip_u = jedi.get_bodypart(BODY_ZONE_HEAD)
rip_u.dismember(BURN) //nice try jedi
qdel(rip_u)
+ return
+ addtimer(CALLBACK(src, PROC_REF(carbon_tk_part_two), jedi), 0.1 SECONDS)
+
+
+/obj/anomaly/singularity/proc/carbon_tk_part_two(mob/living/carbon/jedi)
+ if(QDELETED(jedi))
+ return
+ new /obj/effect/gibspawner/generic(get_turf(jedi), jedi)
+ jedi.apply_damage(30, BRUTE, BODY_ZONE_HEAD)
+ if(QDELETED(jedi))
+ return // damage was too much
+ if(jedi.stat == DEAD)
+ jedi.ghostize()
+ var/obj/item/bodypart/head/rip_u = jedi.get_bodypart(BODY_ZONE_HEAD)
+ if(rip_u)
+ rip_u.dismember(BURN)
+ qdel(rip_u)
+ return
+ addtimer(CALLBACK(src, PROC_REF(carbon_tk_part_three), jedi), 0.1 SECONDS)
+
+
+/obj/anomaly/singularity/proc/carbon_tk_part_three(mob/living/carbon/jedi)
+ if(QDELETED(jedi))
+ return
+ new /obj/effect/gibspawner/generic(get_turf(jedi), jedi)
+ jedi.apply_damage(30, BRUTE, BODY_ZONE_HEAD)
+ if(QDELETED(jedi))
+ return // damage was too much
+ jedi.ghostize()
+ var/obj/item/bodypart/head/rip_u = jedi.get_bodypart(BODY_ZONE_HEAD)
+ if(rip_u)
+ rip_u.dismember(BURN)
+ qdel(rip_u)
/obj/anomaly/singularity/ex_act(severity, target)
switch(severity)
diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm
index f9a76a0002bfb..e26fb9848c3cd 100644
--- a/code/modules/power/supermatter/supermatter.dm
+++ b/code/modules/power/supermatter/supermatter.dm
@@ -652,13 +652,16 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal)
Consume(B)
/obj/machinery/power/supermatter_crystal/attack_tk(mob/user)
- if(iscarbon(user))
- var/mob/living/carbon/C = user
- to_chat(C, "That was a really dense idea.")
- C.ghostize()
- var/obj/item/organ/brain/rip_u = locate(/obj/item/organ/brain) in C.internal_organs
- rip_u.Remove(C)
+ if(!iscarbon(user))
+ return
+ var/mob/living/carbon/jedi = user
+ to_chat(jedi, "That was a really dense idea.")
+ jedi.ghostize()
+ var/obj/item/organ/brain/rip_u = locate(/obj/item/organ/brain) in jedi.internal_organs
+ if(rip_u)
+ rip_u.Remove(jedi)
qdel(rip_u)
+ return COMPONENT_CANCEL_ATTACK_CHAIN
/obj/machinery/power/supermatter_crystal/attack_paw(mob/user)
dust_mob(user, cause = "monkey attack")
diff --git a/code/modules/power/tesla/energy_ball.dm b/code/modules/power/tesla/energy_ball.dm
index 17485bfb998de..f1a2d9f89c515 100644
--- a/code/modules/power/tesla/energy_ball.dm
+++ b/code/modules/power/tesla/energy_ball.dm
@@ -147,14 +147,17 @@
dust_mobs(AM)
/obj/anomaly/energy_ball/attack_tk(mob/user)
- if(iscarbon(user))
- var/mob/living/carbon/C = user
- to_chat(C, "That was a shockingly dumb idea.")
- var/obj/item/organ/brain/rip_u = locate(/obj/item/organ/brain) in C.internal_organs
- C.ghostize(FALSE)
+ if(!iscarbon(user))
+ return
+ var/mob/living/carbon/jedi = user
+ to_chat(jedi, "That was a shockingly dumb idea.")
+ var/obj/item/organ/brain/rip_u = locate(/obj/item/organ/brain) in jedi.internal_organs
+ jedi.ghostize(jedi)
+ if(rip_u)
qdel(rip_u)
- C.investigate_log("had [C.p_their()] brain dusted by touching [src] with telekinesis.", INVESTIGATE_DEATHS)
- C.death()
+ jedi.investigate_log("had [jedi.p_their()] brain dusted by touching [src] with telekinesis.", INVESTIGATE_DEATHS)
+ jedi.death()
+ return COMPONENT_CANCEL_ATTACK_CHAIN
/obj/anomaly/energy_ball/proc/dust_mobs(atom/A)
if(isliving(A))
diff --git a/code/modules/projectiles/gun.dm b/code/modules/projectiles/gun.dm
index ef43a95d157d2..43b51205ba111 100644
--- a/code/modules/projectiles/gun.dm
+++ b/code/modules/projectiles/gun.dm
@@ -10,6 +10,7 @@
item_state = "gun"
flags_1 = CONDUCT_1
slot_flags = ITEM_SLOT_BELT
+ item_flags = SLOWS_WHILE_IN_HAND
custom_materials = list(/datum/material/iron=2000)
w_class = WEIGHT_CLASS_LARGE
throwforce = 5
@@ -91,13 +92,14 @@
var/ranged_cooldown = 0
// Equipping
- /// The slowdown applied to mobs upon a gun being equipped
- var/equip_slowdown = 0.5
/// The time it takes for a gun to count as equipped, null to get a precalculated value
var/equip_time = null
/// The timer ID of our equipping action
VAR_PRIVATE/equip_timer_id
+ // Weapon slowdown
+ var/has_weapon_slowdown = TRUE
+
/obj/item/gun/Initialize(mapload)
. = ..()
if(pin)
@@ -111,12 +113,16 @@
canMouseDown = automatic //Nsv13 / Bee change.
build_zooming()
if (isnull(equip_time))
- // Light guns: 1.5 second equip time
- // Medium guns: 2 second equip time
- // Heavy guns: 2.5 second equip time
- equip_time = weapon_weight * 5 + 10
- if(isnull(spread_unwielded))
+ // Light guns: 0.5 second equip time
+ // Medium guns: 0.8 second equip time
+ // Heavy guns: 1.1 second equip time
+ equip_time = weapon_weight * 3 + 2
+ if (isnull(spread_unwielded))
spread_unwielded = weapon_weight * 10 + 10
+ if (has_weapon_slowdown)
+ if (!slowdown)
+ slowdown = 0.3 + weapon_weight * 0.1
+ item_flags |= SLOWS_WHILE_IN_HAND
if(requires_wielding)
RegisterSignal(src, COMSIG_TWOHANDED_WIELD, PROC_REF(wield))
RegisterSignal(src, COMSIG_TWOHANDED_UNWIELD, PROC_REF(unwield))
@@ -194,10 +200,7 @@
if (slot == ITEM_SLOT_HANDS)
ranged_cooldown = max(world.time + equip_time, ranged_cooldown)
user.client?.give_cooldown_cursor(ranged_cooldown - world.time)
- equip_timer_id = addtimer(CALLBACK(src, PROC_REF(clear_gun_equip_slowdown), user), equip_time, TIMER_STOPPABLE)
- user.add_or_update_variable_movespeed_modifier(/datum/movespeed_modifier/drawing_firearm, multiplicative_slowdown = equip_slowdown)
else
- clear_gun_equip_slowdown(user)
if (equip_timer_id)
deltimer(equip_timer_id)
equip_timer_id = null
@@ -215,16 +218,10 @@
zoom(user, user.dir)
update_icon()
user.client?.clear_cooldown_cursor()
- clear_gun_equip_slowdown(user)
if (equip_timer_id)
deltimer(equip_timer_id)
equip_timer_id = null
-/obj/item/gun/proc/clear_gun_equip_slowdown(mob/living/user)
- slowdown = initial(slowdown)
- user.remove_movespeed_modifier(/datum/movespeed_modifier/drawing_firearm)
- equip_timer_id = null
-
//called after the gun has successfully fired its chambered ammo.
/obj/item/gun/proc/process_chamber()
return FALSE
diff --git a/code/modules/projectiles/guns/ballistic/pistol.dm b/code/modules/projectiles/guns/ballistic/pistol.dm
index ae12c1b291cbc..39a23bedd4240 100644
--- a/code/modules/projectiles/guns/ballistic/pistol.dm
+++ b/code/modules/projectiles/guns/ballistic/pistol.dm
@@ -16,7 +16,6 @@
fire_rate = 3
automatic = 0
weapon_weight = WEAPON_LIGHT
- equip_time = 1 SECONDS
/obj/item/gun/ballistic/automatic/pistol/no_mag
spawnwithmagazine = FALSE
@@ -51,6 +50,7 @@
wild_spread = TRUE
wild_factor = 0.70 //Minimum spread is 70% of spread value
equip_time = 0
+ has_weapon_slowdown = FALSE
/obj/item/gun/ballistic/automatic/pistol/der38/twelveshooter //For debugging only, or meme shit
name = "palm pistol devastator"
@@ -77,7 +77,6 @@
mag_type = /obj/item/ammo_box/magazine/m50
can_suppress = FALSE
mag_display = TRUE
- equip_time = 2 SECONDS
/obj/item/gun/ballistic/automatic/pistol/deagle/gold
desc = "A gold plated Desert Eagle folded over a million times by superior martian gunsmiths. Uses .50 AE ammo."
diff --git a/code/modules/projectiles/guns/ballistic/rifle.dm b/code/modules/projectiles/guns/ballistic/rifle.dm
index dca47c5c7775c..122958ed3814c 100644
--- a/code/modules/projectiles/guns/ballistic/rifle.dm
+++ b/code/modules/projectiles/guns/ballistic/rifle.dm
@@ -64,6 +64,7 @@
desc = "Careful not to lose your head."
can_sawoff = FALSE
equip_time = 0 SECONDS
+ has_weapon_slowdown = FALSE
recoil = 0
var/guns_left = 30
mag_type = /obj/item/ammo_box/magazine/internal/boltaction/enchanted
diff --git a/code/modules/projectiles/guns/energy/stun.dm b/code/modules/projectiles/guns/energy/stun.dm
index b16d26bfb6e63..6cddac9147b03 100644
--- a/code/modules/projectiles/guns/energy/stun.dm
+++ b/code/modules/projectiles/guns/energy/stun.dm
@@ -42,7 +42,6 @@
can_flashlight = TRUE
flight_x_offset = 15
flight_y_offset = 10
- equip_time = 2 SECONDS
/obj/item/gun/energy/disabler/cyborg
name = "cyborg disabler"
diff --git a/code/modules/projectiles/guns/magic.dm b/code/modules/projectiles/guns/magic.dm
index d64cace153faf..1e1c36ed1a78f 100644
--- a/code/modules/projectiles/guns/magic.dm
+++ b/code/modules/projectiles/guns/magic.dm
@@ -22,6 +22,7 @@
pin = /obj/item/firing_pin/magic
requires_wielding = FALSE //Magic has no recoil, just hold with 1 hand
equip_time = 0
+ has_weapon_slowdown = FALSE
lefthand_file = 'icons/mob/inhands/items_lefthand.dmi' //not really a gun and some toys use these inhands
righthand_file = 'icons/mob/inhands/items_righthand.dmi'
diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm
index c4f8a40c9c02d..d7372c5e07634 100644
--- a/code/modules/projectiles/projectile/magic.dm
+++ b/code/modules/projectiles/projectile/magic.dm
@@ -730,5 +730,5 @@
damage_type = BURN
nodamage = FALSE
armour_penetration = 100
- temperature = 50
+ temperature = -200 // Cools you down greatly per hit
armor_flag = MAGIC
diff --git a/code/modules/projectiles/projectile/special/temperature.dm b/code/modules/projectiles/projectile/special/temperature.dm
index 65dfd5c04d42a..6f6e39004e5d9 100644
--- a/code/modules/projectiles/projectile/special/temperature.dm
+++ b/code/modules/projectiles/projectile/special/temperature.dm
@@ -5,22 +5,31 @@
damage_type = BURN
nodamage = FALSE
armor_flag = ENERGY
- var/temperature = 100
+ var/temperature = -50 // reduce the body temperature by 50 points
/obj/projectile/temp/on_hit(atom/target, blocked = 0)
. = ..()
- if(isliving(target))
+ if(iscarbon(target))
+ var/mob/living/carbon/hit_mob = target
+ var/thermal_protection = 1 - hit_mob.get_insulation_protection(hit_mob.bodytemperature + temperature)
+
+ // The new body temperature is adjusted by the bullet's effect temperature
+ // Reduce the amount of the effect temperature change based on the amount of insulation the mob is wearing
+ hit_mob.adjust_bodytemperature((thermal_protection * temperature) + temperature)
+
+ else if(isliving(target))
var/mob/living/L = target
- L.adjust_bodytemperature(((100-blocked)/100)*(temperature - L.bodytemperature)) // the new body temperature is adjusted by 100-blocked % of the delta between body temperature and the bullet's effect temperature
+ // the new body temperature is adjusted by the bullet's effect temperature
+ L.adjust_bodytemperature((1 - blocked) * temperature)
/obj/projectile/temp/hot
name = "heat beam"
- temperature = 400
+ temperature = 100 // Raise the body temp by 100 points
/obj/projectile/temp/cryo
name = "cryo beam"
range = 3
- temperature = -240
+ temperature = -240 // Single slow shot reduces temp greatly
/obj/projectile/temp/cryo/on_range()
var/turf/T = get_turf(src)
diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
index 31704cc1e0950..c7ce0a2806bbc 100644
--- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
@@ -29,6 +29,12 @@
M.adjust_bodytemperature(-40 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal(apply_change=FALSE))
else if(M.bodytemperature < (M.get_body_temp_normal(apply_change=FALSE) + 1))
M.adjust_bodytemperature(40 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, M.get_body_temp_normal(apply_change=FALSE))
+ if(ishuman(M))
+ var/mob/living/carbon/human/humi = M
+ if(humi.coretemperature > humi.get_body_temp_normal(apply_change=FALSE))
+ humi.adjust_coretemperature(-40 * TEMPERATURE_DAMAGE_COEFFICIENT, humi.get_body_temp_normal(apply_change=FALSE))
+ else if(humi.coretemperature < (humi.get_body_temp_normal(apply_change=FALSE) + 1))
+ humi.adjust_coretemperature(40 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, humi.get_body_temp_normal(apply_change=FALSE))
..()
/datum/reagent/medicine/leporazine/overdose_process(mob/living/M)
diff --git a/code/modules/reagents/chemistry/reagents/other_reagents.dm b/code/modules/reagents/chemistry/reagents/other_reagents.dm
index 54fca64948e53..79482f58bea95 100644
--- a/code/modules/reagents/chemistry/reagents/other_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/other_reagents.dm
@@ -1115,16 +1115,18 @@
O?.wash(clean_types)
/datum/reagent/space_cleaner/reaction_turf(turf/T, reac_volume)
- if(reac_volume >= 1)
- T.wash(clean_types)
- for(var/am in T)
- var/atom/movable/movable_content
- if(ismopable(movable_content)) // Mopables will be cleaned anyways by the turf wash
- continue
- movable_content.wash(clean_types)
+ if(reac_volume < 1)
+ return
- for(var/mob/living/simple_animal/slime/M in T)
- M.adjustToxLoss(rand(5,10))
+ T.wash(clean_types)
+ for(var/am in T)
+ var/atom/movable/movable_content = am
+ if(ismopable(movable_content)) // Mopables will be cleaned anyways by the turf wash
+ continue
+ movable_content.wash(clean_types)
+
+ for(var/mob/living/simple_animal/slime/M in T)
+ M.adjustToxLoss(rand(5,10))
/datum/reagent/space_cleaner/reaction_mob(mob/living/M, method=TOUCH, reac_volume)
if(method == TOUCH || method == VAPOR)
diff --git a/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm b/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm
index ffb8c55fddcdd..3d8aa24424613 100644
--- a/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/pyrotechnic_reagents.dm
@@ -209,6 +209,9 @@
if(M.reagents.has_reagent(/datum/reagent/oxygen))
M.reagents.remove_reagent(/datum/reagent/oxygen, 0.5)
M.adjust_bodytemperature(-15)
+ if(ishuman(M))
+ var/mob/living/carbon/human/humi = M
+ humi.adjust_coretemperature(-15)
..()
/datum/reagent/cryostylane/reaction_turf(turf/T, reac_volume)
@@ -231,6 +234,9 @@
if(M.reagents.has_reagent(/datum/reagent/oxygen))
M.reagents.remove_reagent(/datum/reagent/oxygen, 0.5)
M.adjust_bodytemperature(15)
+ if(ishuman(M))
+ var/mob/living/carbon/human/humi = M
+ humi.adjust_coretemperature(15)
..()
/datum/reagent/teslium //Teslium. Causes periodic shocks, and makes shocks against the target much more effective.
diff --git a/code/modules/religion/_religion_sects.dm b/code/modules/religion/_religion_sects.dm
new file mode 100644
index 0000000000000..d9290a9aa151d
--- /dev/null
+++ b/code/modules/religion/_religion_sects.dm
@@ -0,0 +1,123 @@
+/**
+ * # Religious Sects
+ *
+ * Religious Sects are a way to convert the fun of having an active 'god' (admin) to code-mechanics so you aren't having to press adminwho.
+ *
+ * Sects are not meant to overwrite the fun of choosing a custom god/religion, but meant to enhance it.
+ * The idea is that Space Jesus (or whoever you worship) can be an evil bloodgod who takes the lifeforce out of people, a nature lover, or all things righteous and good. You decide!
+ *
+ */
+/datum/religion_sect
+ /// Name of the religious sect
+ var/name = "Religious Sect Base Type"
+ /// Flavorful quote given about the sect, used in tgui
+ var/quote = "Hail Coderbus! Coderbus #1! Fuck the playerbase!"
+ /// Opening message when someone gets converted
+ var/desc = "Oh My! What Do We Have Here?!!?!?!?"
+ /// Tgui icon used by this sect - https://fontawesome.com/icons/
+ var/tgui_icon = "bug"
+ /// holder for alignments.
+ var/alignment = ALIGNMENT_GOOD
+ /// Does this require something before being available as an option?
+ var/starter = TRUE
+ /// species traits that block you from picking
+ var/invalidating_qualities = NONE
+ /// The Sect's 'Mana'
+ var/favor = 0 //MANA!
+ /// The max amount of favor the sect can have
+ var/max_favor = 1000
+ /// The default value for an item that can be sacrificed
+ var/default_item_favor = 5
+ /// Turns into 'desired_items_typecache', and is optionally assoc'd to sacrifice instructions if needed.
+ var/list/desired_items
+ /// Autopopulated by `desired_items`
+ var/list/desired_items_typecache
+ /// Lists of rites by type. Converts itself into a list of rites with "name - desc (favor_cost)" = type
+ var/list/rites_list
+ /// Changes the Altar of Gods icon
+ var/altar_icon
+ /// Changes the Altar of Gods icon_state
+ var/altar_icon_state
+ /// Currently Active (non-deleted) rites
+ var/list/active_rites
+ /// Whether the structure has CANDLE OVERLAYS!
+ var/candle_overlay = TRUE
+ /// Whether the altar of the gods is anchored
+ var/altar_anchored = TRUE
+
+/datum/religion_sect/proc/is_available(mob/user)
+ return TRUE // basically all available
+
+/datum/religion_sect/New()
+ . = ..()
+ if(desired_items)
+ desired_items_typecache = typecacheof(desired_items)
+
+/// Activates once selected
+/datum/religion_sect/proc/on_select()
+ SHOULD_CALL_PARENT(TRUE)
+ SSblackbox.record_feedback("text", "sect_chosen", 1, name)
+
+/// Activates once selected and on newjoins, oriented around people who become holy.
+/datum/religion_sect/proc/on_conversion(mob/living/chap)
+ SHOULD_CALL_PARENT(TRUE)
+ to_chat(chap, "\"[quote]\"")
+ to_chat(chap, "[desc]")
+
+/// Returns TRUE if the item can be sacrificed. Can be modified to fit item being tested as well as person offering. Returning TRUE will stop the attackby sequence and proceed to on_sacrifice.
+/datum/religion_sect/proc/can_sacrifice(obj/item/I, mob/living/chap)
+ . = TRUE
+ if(chap.mind.holy_role == HOLY_ROLE_DEACON)
+ to_chat(chap, "You are merely a deacon of [GLOB.deity], and therefore cannot perform rites.")
+ return
+ if(!is_type_in_typecache(I,desired_items_typecache))
+ return FALSE
+
+/// Activates when the sect sacrifices an item. This proc has NO bearing on the attackby sequence of other objects when used in conjunction with the religious_tool component.
+/datum/religion_sect/proc/on_sacrifice(obj/item/I, mob/living/chap)
+ return adjust_favor(default_item_favor,chap)
+
+/// Returns a description for religious tools
+/datum/religion_sect/proc/tool_examine(mob/living/holy_creature)
+ return "You are currently at [round(favor)] favor with [GLOB.deity]."
+
+/// Adjust Favor by a certain amount. Can provide optional features based on a user. Returns actual amount added/removed
+/datum/religion_sect/proc/adjust_favor(amount = 0, mob/living/chap)
+ . = amount
+ if(favor + amount < 0)
+ . = favor //if favor = 5 and we want to subtract 10, we'll only be able to subtract 5
+ if((favor + amount > max_favor))
+ . = (max_favor-favor) //if favor = 5 and we want to add 10 with a max of 10, we'll only be able to add 5
+ favor = clamp(0,max_favor, favor+amount)
+
+/// Sets favor to a specific amount. Can provide optional features based on a user.
+/datum/religion_sect/proc/set_favor(amount = 0, mob/living/chap)
+ favor = clamp(0,max_favor,amount)
+ return favor
+
+/// Activates when an individual uses a rite. Can provide different/additional benefits depending on the user.
+/datum/religion_sect/proc/on_riteuse(mob/living/user, atom/religious_tool)
+
+/// Replaces the bible's bless mechanic. Return TRUE if you want to not do the brain hit.
+/datum/religion_sect/proc/sect_bless(mob/living/target, mob/living/chap)
+ if(!ishuman(target))
+ return FALSE
+ var/mob/living/carbon/human/blessed = target
+ for(var/obj/item/bodypart/bodypart as anything in blessed.bodyparts)
+ if(!IS_ORGANIC_LIMB(bodypart))
+ to_chat(chap, "[GLOB.deity] refuses to heal this metallic taint!")
+ return TRUE
+
+ var/heal_amt = 10
+ var/list/hurt_limbs = blessed.get_damaged_bodyparts(1, 1, null, BODYTYPE_ORGANIC)
+
+ if(hurt_limbs.len)
+ for(var/X in hurt_limbs)
+ var/obj/item/bodypart/affecting = X
+ if(affecting.heal_damage(heal_amt, heal_amt, null, BODYTYPE_ORGANIC))
+ blessed.update_damage_overlays()
+ blessed.visible_message("[chap] heals [blessed] with the power of [GLOB.deity]!")
+ to_chat(blessed, "May the power of [GLOB.deity] compel you to be healed!")
+ playsound(chap, "punch", 25, TRUE, -1)
+ SEND_SIGNAL(blessed, COMSIG_ADD_MOOD_EVENT, "blessing", /datum/mood_event/blessing)
+ return TRUE
diff --git a/code/modules/religion/_religion_structures.dm b/code/modules/religion/_religion_structures.dm
new file mode 100644
index 0000000000000..897c11faae179
--- /dev/null
+++ b/code/modules/religion/_religion_structures.dm
@@ -0,0 +1,71 @@
+/obj/structure/altar_of_gods
+ name = "\improper Altar of the Gods"
+ desc = "An altar which allows the head of the church to choose a sect of religious teachings as well as provide sacrifices to earn favor."
+ icon = 'icons/obj/hand_of_god_structures.dmi'
+ icon_state = "convertaltar"
+ density = TRUE
+ anchored = TRUE
+ layer = TABLE_LAYER
+ pass_flags_self = LETPASSTHROW
+ can_buckle = TRUE
+ buckle_lying = 90 //we turn to you!
+ resistance_flags = INDESTRUCTIBLE
+ ///Avoids having to check global everytime by referencing it locally.
+ var/datum/religion_sect/sect_to_altar
+
+/obj/structure/altar_of_gods/Initialize(mapload)
+ . = ..()
+ reflect_sect_in_icons()
+ AddElement(/datum/element/climbable)
+
+/obj/structure/altar_of_gods/ComponentInitialize()
+ . = ..()
+ AddComponent(/datum/component/religious_tool, ALL, FALSE, CALLBACK(src, PROC_REF(reflect_sect_in_icons)))
+
+/obj/structure/altar_of_gods/attack_hand(mob/living/user)
+ if(!Adjacent(user) || !user.pulling)
+ return ..()
+ if(!isliving(user.pulling))
+ return ..()
+ var/mob/living/pushed_mob = user.pulling
+ if(pushed_mob.buckled)
+ to_chat(user, "[pushed_mob] is buckled to [pushed_mob.buckled]!")
+ return ..()
+ to_chat(user,"Only the faithful may control the disposition of [src]!")
+ return
+ anchored = !anchored
+ if(GLOB.religious_sect)
+ GLOB.religious_sect.altar_anchored = anchored //Having more than one altar of the gods is only possible through adminbus so this should screw with normal gameplay
+ user.visible_message("[user] [anchored ? "" : "un"]anchors [src] [anchored ? "to" : "from"] the floor with [I].", "You [anchored ? "" : "un"]anchor [src] [anchored ? "to" : "from"] the floor with [I].")
+ playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1)
+ user.do_attack_animation(src)
+ return
+ if(I.tool_behaviour == TOOL_WRENCH)
+ return
+ return ..()
+
+
+/obj/structure/altar_of_gods/proc/reflect_sect_in_icons()
+ if(GLOB.religious_sect)
+ sect_to_altar = GLOB.religious_sect
+ if(sect_to_altar.altar_icon)
+ icon = sect_to_altar.altar_icon
+ if(sect_to_altar.altar_icon_state)
+ icon_state = sect_to_altar.altar_icon_state
+
+/obj/structure/destructible/religion
+ density = TRUE
+ anchored = FALSE
+ icon = 'icons/obj/religion.dmi'
+ light_power = 2
+ var/cooldowntime = 0
+ break_sound = 'sound/effects/glassbr2.ogg'
diff --git a/code/modules/religion/_rites.dm b/code/modules/religion/_rites.dm
new file mode 100644
index 0000000000000..010a8c59c04ef
--- /dev/null
+++ b/code/modules/religion/_rites.dm
@@ -0,0 +1,78 @@
+/datum/religion_rites
+ /// name of the religious rite
+ var/name = "religious rite"
+ /// Description of the religious rite
+ var/desc = "immm gonna rooon"
+ /// length it takes to complete the ritual
+ var/ritual_length = (10 SECONDS) //total length it'll take
+ /// list of invocations said (strings) throughout the rite
+ var/list/ritual_invocations //strings that are by default said evenly throughout the rite
+ /// message when you invoke
+ var/invoke_msg
+ var/favor_cost = 0
+ /// does the altar auto-delete the rite
+ var/auto_delete = TRUE
+
+/datum/religion_rites/New()
+ . = ..()
+ if(!GLOB?.religious_sect)
+ return
+ LAZYADD(GLOB.religious_sect.active_rites, src)
+
+/datum/religion_rites/Destroy()
+ if(!GLOB?.religious_sect)
+ return
+ LAZYREMOVE(GLOB.religious_sect.active_rites, src)
+ return ..()
+
+/datum/religion_rites/proc/can_afford(mob/living/user)
+ if(GLOB.religious_sect?.favor < favor_cost)
+ to_chat(user, "This rite requires more favor!")
+ return FALSE
+ return TRUE
+
+///Called to perform the invocation of the rite, with args being the performer and the altar where it's being performed. Maybe you want it to check for something else?
+/datum/religion_rites/proc/perform_rite(mob/living/user, atom/religious_tool)
+ if(!can_afford(user))
+ return FALSE
+ var/turf/T = get_turf(religious_tool)
+ if(!T.is_holy())
+ to_chat(user, "The altar can only function in a holy area!")
+ return FALSE
+ if(!GLOB.religious_sect.altar_anchored)
+ to_chat(user, "The altar must be secured to the floor if you wish to perform the rite!")
+ return FALSE
+ to_chat(user, "You begin to perform the rite of [name]...")
+ if(!ritual_invocations)
+ if(do_after(user, target = user, delay = ritual_length))
+ return TRUE
+ return FALSE
+ var/first_invoke = TRUE
+ for(var/i in ritual_invocations)
+ if(!GLOB.religious_sect.altar_anchored)
+ to_chat(user, "The altar must be secured to the floor if you wish to perform the rite!")
+ return FALSE
+ if(first_invoke) //instant invoke
+ user.say(i)
+ first_invoke = FALSE
+ continue
+ if(!length(ritual_invocations)) //we divide so we gotta protect
+ return FALSE
+ if(!do_after(user, target = user, delay = ritual_length/length(ritual_invocations)))
+ return FALSE
+ user.say(i)
+ if(!do_after(user, target = user, delay = ritual_length/length(ritual_invocations))) //because we start at 0 and not the first fraction in invocations, we still have another fraction of ritual_length to complete
+ return FALSE
+ if(!GLOB.religious_sect.altar_anchored)
+ to_chat(user, "The altar must be secured to the floor if you wish to perform the rite!")
+ return FALSE
+ if(invoke_msg)
+ user.say(invoke_msg)
+ return TRUE
+
+
+///Does the thing if the rite was successfully performed. return value denotes that the effect successfully (IE a harm rite does harm)
+/datum/religion_rites/proc/invoke_effect(mob/living/user, atom/religious_tool)
+ SHOULD_CALL_PARENT(TRUE)
+ GLOB.religious_sect.on_riteuse(user,religious_tool)
+ return TRUE
diff --git a/code/modules/religion/religion_sects.dm b/code/modules/religion/religion_sects.dm
deleted file mode 100644
index c773691fe9b8e..0000000000000
--- a/code/modules/religion/religion_sects.dm
+++ /dev/null
@@ -1,359 +0,0 @@
-/**
- * # Religious Sects
- *
- * Religious Sects are a way to convert the fun of having an active 'god' (admin) to code-mechanics so you aren't having to press adminwho.
- *
- * Sects are not meant to overwrite the fun of choosing a custom god/religion, but meant to enhance it.
- * The idea is that Space Jesus (or whoever you worship) can be an evil bloodgod who takes the lifeforce out of people, a nature lover, or all things righteous and good. You decide!
- *
- */
-/datum/religion_sect
- /// Name of the religious sect
- var/name = "Religious Sect Base Type"
- /// Flavorful quote given about the sect, used in tgui
- var/quote = "Hail Coderbus! Coderbus #1! Fuck the playerbase!"
- /// Opening message when someone gets converted
- var/desc = "Oh My! What Do We Have Here?!!?!?!?"
- /// Tgui icon used by this sect - https://fontawesome.com/icons/
- var/tgui_icon = "bug"
- /// holder for alignments.
- var/alignment = ALIGNMENT_GOOD
- /// Does this require something before being available as an option?
- var/starter = TRUE
- /// species traits that block you from picking
- var/invalidating_qualities = NONE
- /// The Sect's 'Mana'
- var/favor = 0 //MANA!
- /// The max amount of favor the sect can have
- var/max_favor = 1000
- /// The default value for an item that can be sacrificed
- var/default_item_favor = 5
- /// Turns into 'desired_items_typecache', and is optionally assoc'd to sacrifice instructions if needed.
- var/list/desired_items
- /// Autopopulated by `desired_items`
- var/list/desired_items_typecache
- /// Lists of rites by type. Converts itself into a list of rites with "name - desc (favor_cost)" = type
- var/list/rites_list
- /// Changes the Altar of Gods icon
- var/altar_icon
- /// Changes the Altar of Gods icon_state
- var/altar_icon_state
- /// Currently Active (non-deleted) rites
- var/list/active_rites
- /// Whether the structure has CANDLE OVERLAYS!
- var/candle_overlay = TRUE
- /// Whether the altar of the gods is anchored
- var/altar_anchored = TRUE
-
-/datum/religion_sect/proc/is_available(mob/user)
- return TRUE // basically all available
-
-/datum/religion_sect/New()
- . = ..()
- if(desired_items)
- desired_items_typecache = typecacheof(desired_items)
-
-/// Activates once selected
-/datum/religion_sect/proc/on_select()
- SHOULD_CALL_PARENT(TRUE)
- SSblackbox.record_feedback("text", "sect_chosen", 1, name)
-
-/// Activates once selected and on newjoins, oriented around people who become holy.
-/datum/religion_sect/proc/on_conversion(mob/living/chap)
- SHOULD_CALL_PARENT(TRUE)
- to_chat(chap, "\"[quote]\"")
- to_chat(chap, "[desc]")
-
-/// Returns TRUE if the item can be sacrificed. Can be modified to fit item being tested as well as person offering. Returning TRUE will stop the attackby sequence and proceed to on_sacrifice.
-/datum/religion_sect/proc/can_sacrifice(obj/item/I, mob/living/chap)
- . = TRUE
- if(chap.mind.holy_role == HOLY_ROLE_DEACON)
- to_chat(chap, "You are merely a deacon of [GLOB.deity], and therefore cannot perform rites.")
- return
- if(!is_type_in_typecache(I,desired_items_typecache))
- return FALSE
-
-/// Activates when the sect sacrifices an item. This proc has NO bearing on the attackby sequence of other objects when used in conjunction with the religious_tool component.
-/datum/religion_sect/proc/on_sacrifice(obj/item/I, mob/living/chap)
- return adjust_favor(default_item_favor,chap)
-
-/// Returns a description for religious tools
-/datum/religion_sect/proc/tool_examine(mob/living/holy_creature)
- return "You are currently at [round(favor)] favor with [GLOB.deity]."
-
-/// Adjust Favor by a certain amount. Can provide optional features based on a user. Returns actual amount added/removed
-/datum/religion_sect/proc/adjust_favor(amount = 0, mob/living/chap)
- . = amount
- if(favor + amount < 0)
- . = favor //if favor = 5 and we want to subtract 10, we'll only be able to subtract 5
- if((favor + amount > max_favor))
- . = (max_favor-favor) //if favor = 5 and we want to add 10 with a max of 10, we'll only be able to add 5
- favor = clamp(0,max_favor, favor+amount)
-
-/// Sets favor to a specific amount. Can provide optional features based on a user.
-/datum/religion_sect/proc/set_favor(amount = 0, mob/living/chap)
- favor = clamp(0,max_favor,amount)
- return favor
-
-/// Activates when an individual uses a rite. Can provide different/additional benefits depending on the user.
-/datum/religion_sect/proc/on_riteuse(mob/living/user, atom/religious_tool)
-
-/// Replaces the bible's bless mechanic. Return TRUE if you want to not do the brain hit.
-/datum/religion_sect/proc/sect_bless(mob/living/target, mob/living/chap)
- if(!ishuman(target))
- return FALSE
- var/mob/living/carbon/human/blessed = target
- for(var/obj/item/bodypart/bodypart as anything in blessed.bodyparts)
- if(!IS_ORGANIC_LIMB(bodypart))
- to_chat(chap, "[GLOB.deity] refuses to heal this metallic taint!")
- return TRUE
-
- var/heal_amt = 10
- var/list/hurt_limbs = blessed.get_damaged_bodyparts(1, 1, null, BODYTYPE_ORGANIC)
-
- if(hurt_limbs.len)
- for(var/X in hurt_limbs)
- var/obj/item/bodypart/affecting = X
- if(affecting.heal_damage(heal_amt, heal_amt, null, BODYTYPE_ORGANIC))
- blessed.update_damage_overlays()
- blessed.visible_message("[chap] heals [blessed] with the power of [GLOB.deity]!")
- to_chat(blessed, "May the power of [GLOB.deity] compel you to be healed!")
- playsound(chap, "punch", 25, TRUE, -1)
- SEND_SIGNAL(blessed, COMSIG_ADD_MOOD_EVENT, "blessing", /datum/mood_event/blessing)
- return TRUE
-
-/**** Nanotrasen Approved God ****/
-
-/datum/religion_sect/puritanism
- name = "Nanotrasen Approved God"
- desc = "Your run-of-the-mill sect, there are no benefits or boons associated."
- quote = "Nanotrasen Recommends!"
- tgui_icon = "bible"
-
-/**** Technophile Sect ****/
-
-/datum/religion_sect/technophile
- name = "Technophile"
- quote = "May you find peace in a metal shell."
- desc = "Bibles now recharge cyborgs and heal robotic limbs if targeted, but they \
- do not heal organic limbs. You can now sacrifice cells, with favor depending on their charge."
- tgui_icon = "robot"
- alignment = ALIGNMENT_NEUT
- desired_items = list(/obj/item/stock_parts/cell = "with battery charge")
- rites_list = list(/datum/religion_rites/synthconversion, /datum/religion_rites/machine_blessing, /datum/religion_rites/machine_implantation)
- altar_icon_state = "convertaltar-blue"
- max_favor = 5000
-
-/datum/religion_sect/technophile/sect_bless(mob/living/target, mob/living/chap)
- if(iscyborg(target))
- var/mob/living/silicon/robot/R = target
- var/charge_amt = 50
- if(target.mind?.holy_role == HOLY_ROLE_HIGHPRIEST)
- charge_amt *= 2
- R.cell?.charge += charge_amt
- R.visible_message("[chap] charges [R] with the power of [GLOB.deity]!")
- to_chat(R, "You are charged by the power of [GLOB.deity]!")
- SEND_SIGNAL(R, COMSIG_ADD_MOOD_EVENT, "blessing", /datum/mood_event/blessing)
- playsound(chap, 'sound/effects/bang.ogg', 25, TRUE, -1)
- return TRUE
- if(!ishuman(target))
- return
- var/mob/living/carbon/human/blessed = target
-
- //first we determine if we can charge them
- var/did_we_charge = FALSE
- var/obj/item/organ/stomach/battery/ethereal/eth_stomach = blessed.getorganslot(ORGAN_SLOT_STOMACH)
- if(istype(eth_stomach))
- eth_stomach.adjust_charge(60)
- did_we_charge = TRUE
-
- //if we're not targeting a robot part we stop early
- var/obj/item/bodypart/bodypart = blessed.get_bodypart(chap.get_combat_bodyzone(target, zone_context = BODYZONE_CONTEXT_ROBOTIC_LIMB_HEALING))
- if(IS_ORGANIC_LIMB(bodypart))
- if(!did_we_charge)
- to_chat(chap, "[GLOB.deity] scoffs at the idea of healing such fleshy matter!")
- else
- blessed.visible_message("[chap] charges [blessed] with the power of [GLOB.deity]!")
- to_chat(blessed, "You feel charged by the power of [GLOB.deity]!")
- SEND_SIGNAL(blessed, COMSIG_ADD_MOOD_EVENT, "blessing", /datum/mood_event/blessing)
- playsound(chap, 'sound/machines/synth_yes.ogg', 25, TRUE, -1)
- return TRUE
-
- //charge(?) and go
- if(bodypart.heal_damage(5,5,null,BODYTYPE_ROBOTIC))
- blessed.update_damage_overlays()
-
- blessed.visible_message("[chap] [did_we_charge ? "repairs" : "repairs and charges"] [blessed] with the power of [GLOB.deity]!")
- to_chat(blessed, "The inner machinations of [GLOB.deity] [did_we_charge ? "repairs" : "repairs and charges"] you!")
- playsound(chap, 'sound/effects/bang.ogg', 25, TRUE, -1)
- SEND_SIGNAL(blessed, COMSIG_ADD_MOOD_EVENT, "blessing", /datum/mood_event/blessing)
- return TRUE
-
-/datum/religion_sect/technophile/on_sacrifice(obj/item/I, mob/living/chap)
- var/obj/item/stock_parts/cell/the_cell = I
- if(!istype(the_cell)) //how...
- return
- if(the_cell.charge < 300)
- to_chat(chap,"[GLOB.deity] does not accept pity amounts of power.")
- return
- adjust_favor(round(the_cell.charge/100), chap)
- to_chat(chap, "You offer [the_cell]'s power to [GLOB.deity], pleasing them.")
- qdel(I)
- return TRUE
-
-/**** Ever-Burning Candle sect ****/
-
-/datum/religion_sect/candle_sect
- name = "Ever-Burning Candle"
- desc = "Sacrificing burning corpses with a lot of burn damage and candles grants you favor."
- quote = "It must burn! The primal energy must be respected."
- tgui_icon = "fire-alt"
- alignment = ALIGNMENT_NEUT
- max_favor = 10000
- desired_items = list(/obj/item/candle = "already lit")
- rites_list = list(/datum/religion_rites/fireproof, /datum/religion_rites/burning_sacrifice, /datum/religion_rites/infinite_candle)
- altar_icon_state = "convertaltar-red"
-
-//candle sect bibles don't heal or do anything special apart from the standard holy water blessings
-/datum/religion_sect/candle_sect/sect_bless(mob/living/target, mob/living/chap)
- return TRUE
-
-/datum/religion_sect/candle_sect/on_sacrifice(obj/item/candle/offering, mob/living/user)
- if(!istype(offering))
- return
- if(!offering.lit)
- to_chat(user, "The candle needs to be lit to be offered!")
- return
- to_chat(user, "[GLOB.deity] is pleased with your sacrifice.")
- adjust_favor(20, user) //it's not a lot but hey there's a pacifist favor option at least
- qdel(offering)
- return TRUE
-
-/**** Necromantic Sect ****/
-
-/datum/religion_sect/necro_sect
- name = "Necromancy"
- desc = "A sect dedicated to the revival and summoning of the dead. Sacrificing living animals grants you favor."
- quote = "An undead army is a must have!"
- tgui_icon = "skull"
- alignment = ALIGNMENT_EVIL
- max_favor = 10000
- desired_items = list(/obj/item/organ/)
- rites_list = list(/datum/religion_rites/raise_dead, /datum/religion_rites/living_sacrifice, /datum/religion_rites/raise_undead, /datum/religion_rites/create_lesser_lich)
- altar_icon_state = "convertaltar-green"
-
-//Necro bibles don't heal or do anything special apart from the standard holy water blessings
-/datum/religion_sect/necro_sect/sect_bless(mob/living/blessed, mob/living/user)
- return TRUE
-
-/datum/religion_sect/necro_sect/on_sacrifice(obj/item/N, mob/living/L)
- if(!istype(N, /obj/item/organ))
- return
- adjust_favor(10, L)
- to_chat(L, "You offer [N] to [GLOB.deity], pleasing them and gaining 10 favor in the process.")
- qdel(N)
- return TRUE
-
-/**** Carp Sect ****/
-
-/datum/religion_sect/carp_sect
- name = "Followers of the Great Carp"
- desc = "A sect dedicated to the space carp and carp'sie, Offer the gods meat for favor."
- quote = "Drown the station in fish and water."
- tgui_icon = "fish"
- alignment = ALIGNMENT_NEUT
- max_favor = 10000
- desired_items = list(/obj/item/food/meat/slab)
- rites_list = list(/datum/religion_rites/summon_carp, /datum/religion_rites/flood_area, /datum/religion_rites/summon_carpsuit)
- altar_icon_state = "convertaltar-blue"
-
-//Carp bibles give people the carp faction!
-/datum/religion_sect/carp_sect/sect_bless(mob/living/L, mob/living/user)
- if(!isliving(L))
- return FALSE
- L.faction |= "carp"
- user.visible_message("[user] blessed [L] with the power of [GLOB.deity]! They are now protected from Space Carps, Although carps will still fight back if attacked.")
- SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "blessing", /datum/mood_event/blessing)
- return TRUE
-
-/datum/religion_sect/carp_sect/on_sacrifice(obj/item/N, mob/living/L) //and this
- var/obj/item/food/meat/meat = N
- if(!istype(meat)) //how...
- return
- adjust_favor(20, L)
- to_chat(L, "You offer [meat] to [GLOB.deity], pleasing them and gaining 20 favor in the process.")
- qdel(N)
- return TRUE
-
-/**** Plant Sect ****/
-
-/datum/religion_sect/plant_sect
- name = "Nature"
- desc = "A sect dedicated to nature, plants, and animals. Sacrificing seeds grants you favor."
- quote = "Living plant people? What has the world come to!"
- tgui_icon = "tree"
- alignment = ALIGNMENT_GOOD
- max_favor = 10000
- desired_items = list(/obj/item/seeds)
- rites_list = list(/datum/religion_rites/create_podperson, /datum/religion_rites/create_sandstone, /datum/religion_rites/grass_generator, /datum/religion_rites/summon_animals)
- altar_icon_state = "convertaltar-green"
-
-//plant bibles don't heal or do anything special apart from the standard holy water blessings
-/datum/religion_sect/plant_sect/sect_bless(mob/living/blessed, mob/living/user)
- return TRUE
-
-/datum/religion_sect/plant_sect/on_sacrifice(obj/item/N, mob/living/L)
- if(!istype(N, /obj/item/seeds))
- return
- adjust_favor(25, L)
- to_chat(L, "You offer [N] to [GLOB.deity], pleasing them and gaining 25 favor in the process.")
- qdel(N)
- return TRUE
-
-/**** Shadow Sect ****/
-
-/datum/religion_sect/shadow_sect
- starter = FALSE
- name = "Shadow"
- desc = "A sect dedicated to the darkness. The manifested obelisks will generate favor from being in darkness."
- quote = "Turn out the lights, and let the darkness cover the world!"
- tgui_icon = "moon"
- alignment = ALIGNMENT_EVIL
- favor = 100 //Starts off with enough favor to make an obelisk
- max_favor = 25000
- desired_items = list(/obj/item/flashlight)
- rites_list = list(/datum/religion_rites/expand_shadows,/datum/religion_rites/shadow_obelisk, /datum/religion_rites/shadow_conversion,/datum/religion_rites/shadow_blessing,/datum/religion_rites/shadow_eyes)
- altar_icon_state = "convertaltar-dark"
- var/light_reach = 1
- var/light_power = 0
- var/list/obelisks = list()
-
-/datum/religion_sect/shadow_sect/is_available(mob/user)
- if(isshadow(user))
- return TRUE
- return FALSE
-
-//Shadow bibles don't heal or do anything special apart from the standard holy water blessings
-/datum/religion_sect/shadow_sect/sect_bless(mob/living/blessed, mob/living/user)
- return TRUE
-
-/datum/religion_sect/shadow_sect/on_sacrifice(obj/item/N, mob/living/L)
- if(!istype(N, /obj/item/flashlight))
- return
- adjust_favor(5, L)
- to_chat(L, "You offer [N] to [GLOB.deity], pleasing them and gaining 5 favor in the process.")
- qdel(N)
- return TRUE
-
-/datum/religion_sect/shadow_sect/on_select(atom/religious_tool, mob/living/user)
- . = ..()
- if(!religious_tool || !user)
- return
- religious_tool.AddComponent(/datum/component/dark_favor, user)
-
-/datum/religion_sect/shadow_sect/on_conversion(mob/living/chap) //When sect is selected, and when a new chaplain joins after sect has been selected
- . = ..()
- if(is_special_character(chap))
- to_chat(chap, "As you are an antagonist role, you are free to spread darkness across the station.")
- else
- to_chat(chap, "You are not an antagonist, please do not spread darkness outside of the chapel without Command Staff approval.")
diff --git a/code/modules/religion/religion_structures.dm b/code/modules/religion/religion_structures.dm
deleted file mode 100644
index 929544ec4c31d..0000000000000
--- a/code/modules/religion/religion_structures.dm
+++ /dev/null
@@ -1,216 +0,0 @@
-/obj/structure/altar_of_gods
- name = "\improper Altar of the Gods"
- desc = "An altar which allows the head of the church to choose a sect of religious teachings as well as provide sacrifices to earn favor."
- icon = 'icons/obj/hand_of_god_structures.dmi'
- icon_state = "convertaltar"
- density = TRUE
- anchored = TRUE
- layer = TABLE_LAYER
- pass_flags_self = LETPASSTHROW
- can_buckle = TRUE
- buckle_lying = 90 //we turn to you!
- resistance_flags = INDESTRUCTIBLE
- ///Avoids having to check global everytime by referencing it locally.
- var/datum/religion_sect/sect_to_altar
-
-/obj/structure/altar_of_gods/Initialize(mapload)
- . = ..()
- reflect_sect_in_icons()
- AddElement(/datum/element/climbable)
-
-/obj/structure/altar_of_gods/ComponentInitialize()
- . = ..()
- AddComponent(/datum/component/religious_tool, ALL, FALSE, CALLBACK(src, PROC_REF(reflect_sect_in_icons)))
-
-/obj/structure/altar_of_gods/attack_hand(mob/living/user)
- if(!Adjacent(user) || !user.pulling)
- return ..()
- if(!isliving(user.pulling))
- return ..()
- var/mob/living/pushed_mob = user.pulling
- if(pushed_mob.buckled)
- to_chat(user, "[pushed_mob] is buckled to [pushed_mob.buckled]!")
- return ..()
- to_chat(user,"Only the faithful may control the disposition of [src]!")
- return
- anchored = !anchored
- if(GLOB.religious_sect)
- GLOB.religious_sect.altar_anchored = anchored //Having more than one altar of the gods is only possible through adminbus so this should screw with normal gameplay
- user.visible_message("[user] [anchored ? "" : "un"]anchors [src] [anchored ? "to" : "from"] the floor with [I].", "You [anchored ? "" : "un"]anchor [src] [anchored ? "to" : "from"] the floor with [I].")
- playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1)
- user.do_attack_animation(src)
- return
- if(I.tool_behaviour == TOOL_WRENCH)
- return
- return ..()
-
-
-/obj/structure/altar_of_gods/proc/reflect_sect_in_icons()
- if(GLOB.religious_sect)
- sect_to_altar = GLOB.religious_sect
- if(sect_to_altar.altar_icon)
- icon = sect_to_altar.altar_icon
- if(sect_to_altar.altar_icon_state)
- icon_state = sect_to_altar.altar_icon_state
-
-/obj/structure/destructible/religion
- density = TRUE
- anchored = FALSE
- icon = 'icons/obj/religion.dmi'
- light_power = 2
- var/cooldowntime = 0
- break_sound = 'sound/effects/glassbr2.ogg'
-
-/obj/structure/destructible/religion/nature_pylon
- name = "Orb of Nature"
- desc = "A floating crystal that slowly heals all plantlife and holy creatures. It can be anchored with a null rod."
- icon_state = "nature_orb"
- anchored = FALSE
- light_range = 5
- light_color = LIGHT_COLOR_GREEN
- break_message = "The luminous green crystal shatters!"
- var/heal_delay = 20
- var/last_heal = 0
- var/spread_delay = 45
- var/last_spread = 0
-
-/obj/structure/destructible/religion/nature_pylon/Initialize(mapload)
- ..()
- return INITIALIZE_HINT_LATELOAD
-
-/obj/structure/destructible/religion/nature_pylon/LateInitialize()
- . = ..()
- START_PROCESSING(SSobj, src)
-
-/obj/structure/destructible/religion/nature_pylon/Destroy()
- STOP_PROCESSING(SSobj, src)
- return ..()
-
-
-/obj/structure/destructible/religion/nature_pylon/process(delta_time)
- if(last_heal <= world.time)
- last_heal = world.time + heal_delay
- for(var/mob/living/L in range(5, src))
- if(L.health == L.maxHealth)
- continue
- if(!ispodperson(L) && !L.mind?.holy_role)
- continue
- new /obj/effect/temp_visual/heal(get_turf(src), "#47ac05")
- if(ispodperson(L) || L.mind?.holy_role)
- L.adjustBruteLoss(-2*delta_time, 0)
- L.adjustToxLoss(-2*delta_time, 0)
- L.adjustOxyLoss(-2*delta_time, 0)
- L.adjustFireLoss(-2*delta_time, 0)
- L.adjustCloneLoss(-2*delta_time, 0)
- L.updatehealth()
- if(L.blood_volume < BLOOD_VOLUME_NORMAL)
- L.blood_volume += 1.0
- CHECK_TICK
- if(last_spread <= world.time)
- var/list/validturfs = list()
- var/list/natureturfs = list()
- for(var/T in circleviewturfs(src, 5))
- if(istype(T, /turf/open/floor/grass))
- natureturfs |= T
- continue
- var/static/list/blacklisted_pylon_turfs = typecacheof(list(
- /turf/closed,
- /turf/open/floor/grass,
- /turf/open/space,
- /turf/open/lava,
- /turf/open/chasm))
- if(is_type_in_typecache(T, blacklisted_pylon_turfs))
- continue
- else
- validturfs |= T
-
- last_spread = world.time + spread_delay
-
- var/turf/T = safepick(validturfs)
- if(T)
- if(istype(T, /turf/open/floor/plating))
- T.PlaceOnTop(pick(/turf/open/floor/grass, /turf/open/floor/grass/fairy/green), flags = CHANGETURF_INHERIT_AIR)
- else
- T.ChangeTurf(pick(/turf/open/floor/grass, /turf/open/floor/grass/fairy/green), flags = CHANGETURF_INHERIT_AIR)
- else
- var/turf/open/floor/grass/F = safepick(natureturfs)
- if(F)
- new /obj/effect/temp_visual/religion/turf/floor(F)
- else
- // Are we in space or something? No grass turfs or
- // convertable turfs?
- last_spread = world.time + spread_delay*2
-
-/obj/structure/destructible/religion/nature_pylon/attackby(obj/item/I, mob/living/user, params)
- if(istype(I, /obj/item/nullrod))
- if(user.mind?.holy_role == NONE)
- to_chat(user, "Only the faithful may control the disposition of [src]!")
- return
- anchored = !anchored
- user.visible_message("[user] [anchored ? "" : "un"]anchors [src] [anchored ? "to" : "from"] the floor with [I].", "You [anchored ? "" : "un"]anchor [src] [anchored ? "to" : "from"] the floor with [I].")
- playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1)
- user.do_attack_animation(src)
- return
- if(I.tool_behaviour == TOOL_WRENCH)
- return
- return ..()
-
-////Shadow Sect //Original code by DingoDongler
-
-/obj/structure/destructible/religion/shadow_obelisk
- name = "Shadow Obelisk"
- desc = "Grants favor from being shrouded in shadows."
- icon = 'icons/obj/hand_of_god_structures.dmi'
- icon_state = "shadow-obelisk"
- anchored = FALSE
- break_message = "The Obelisk crumbles before you!"
-
-/obj/structure/destructible/religion/shadow_obelisk/attackby(obj/item/I, mob/living/user, params)
- if(istype(I, /obj/item/nullrod))
- if(user.mind?.holy_role == NONE)
- to_chat(user, "Only the faithful may control the disposition of [src]!")
- return
- anchored = !anchored
- user.visible_message("[user] [anchored ? "" : "un"]anchors [src] [anchored ? "to" : "from"] the floor with [I].", "You [anchored ? "" : "un"]anchor [src] [anchored ? "to" : "from"] the floor with [I].")
- playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1)
- user.do_attack_animation(src)
- return
- if(I.tool_behaviour == TOOL_WRENCH)
- return
- return ..()
-
-// Favor generator component. Used on the altar and obelisks
-/datum/component/dark_favor //Original code by DingoDongler
- var/mob/living/creator
-
-/datum/component/dark_favor/Initialize(mob/living/L)
- . = ..()
- if(!L)
- return
- creator = L
- START_PROCESSING(SSobj, src)
-
-/datum/component/dark_favor/Destroy() //Original code by DingoDongler
- . = ..()
- STOP_PROCESSING(SSobj, src)
-
-/datum/component/dark_favor/process(delta_time) //Original code by DingoDongler
- var/datum/religion_sect/shadow_sect/sect = GLOB.religious_sect
- if(!istype(parent, /atom) || !istype(creator) || !istype(sect))
- return
- var/atom/P = parent
- var/turf/T = P.loc
- if(!istype(T))
- return
- var/light_amount = T.get_lumcount()
- var/favor_gained = max(1 - light_amount, 0) * delta_time
- sect.adjust_favor(favor_gained, creator)
diff --git a/code/modules/religion/rites.dm b/code/modules/religion/rites.dm
deleted file mode 100644
index da88445a6ed82..0000000000000
--- a/code/modules/religion/rites.dm
+++ /dev/null
@@ -1,975 +0,0 @@
-/datum/religion_rites
- /// name of the religious rite
- var/name = "religious rite"
- /// Description of the religious rite
- var/desc = "immm gonna rooon"
- /// length it takes to complete the ritual
- var/ritual_length = (10 SECONDS) //total length it'll take
- /// list of invocations said (strings) throughout the rite
- var/list/ritual_invocations //strings that are by default said evenly throughout the rite
- /// message when you invoke
- var/invoke_msg
- var/favor_cost = 0
- /// does the altar auto-delete the rite
- var/auto_delete = TRUE
-
-/datum/religion_rites/New()
- . = ..()
- if(!GLOB?.religious_sect)
- return
- LAZYADD(GLOB.religious_sect.active_rites, src)
-
-/datum/religion_rites/Destroy()
- if(!GLOB?.religious_sect)
- return
- LAZYREMOVE(GLOB.religious_sect.active_rites, src)
- return ..()
-
-/datum/religion_rites/proc/can_afford(mob/living/user)
- if(GLOB.religious_sect?.favor < favor_cost)
- to_chat(user, "This rite requires more favor!")
- return FALSE
- return TRUE
-
-///Called to perform the invocation of the rite, with args being the performer and the altar where it's being performed. Maybe you want it to check for something else?
-/datum/religion_rites/proc/perform_rite(mob/living/user, atom/religious_tool)
- if(!can_afford(user))
- return FALSE
- var/turf/T = get_turf(religious_tool)
- if(!T.is_holy())
- to_chat(user, "The altar can only function in a holy area!")
- return FALSE
- if(!GLOB.religious_sect.altar_anchored)
- to_chat(user, "The altar must be secured to the floor if you wish to perform the rite!")
- return FALSE
- to_chat(user, "You begin to perform the rite of [name]...")
- if(!ritual_invocations)
- if(do_after(user, target = user, delay = ritual_length))
- return TRUE
- return FALSE
- var/first_invoke = TRUE
- for(var/i in ritual_invocations)
- if(!GLOB.religious_sect.altar_anchored)
- to_chat(user, "The altar must be secured to the floor if you wish to perform the rite!")
- return FALSE
- if(first_invoke) //instant invoke
- user.say(i)
- first_invoke = FALSE
- continue
- if(!length(ritual_invocations)) //we divide so we gotta protect
- return FALSE
- if(!do_after(user, target = user, delay = ritual_length/length(ritual_invocations)))
- return FALSE
- user.say(i)
- if(!do_after(user, target = user, delay = ritual_length/length(ritual_invocations))) //because we start at 0 and not the first fraction in invocations, we still have another fraction of ritual_length to complete
- return FALSE
- if(!GLOB.religious_sect.altar_anchored)
- to_chat(user, "The altar must be secured to the floor if you wish to perform the rite!")
- return FALSE
- if(invoke_msg)
- user.say(invoke_msg)
- return TRUE
-
-
-///Does the thing if the rite was successfully performed. return value denotes that the effect successfully (IE a harm rite does harm)
-/datum/religion_rites/proc/invoke_effect(mob/living/user, atom/religious_tool)
- SHOULD_CALL_PARENT(TRUE)
- GLOB.religious_sect.on_riteuse(user,religious_tool)
- return TRUE
-
-
-/**** Technophile Sect ****/
-
-/datum/religion_rites/synthconversion
- name = "Synthetic Conversion"
- desc = "Convert a human-esque individual into a (superior) Android. Buckle a human to convert them, otherwise it will convert you."
- ritual_length = 25 SECONDS
- ritual_invocations = list("By the inner workings of our god ...",
- "... We call upon you, in the face of adversity ...",
- "... to complete us, removing that which is undesirable ...")
- invoke_msg = "... Arise, our champion! Become that which your soul craves, live in the world as your true form!!"
- favor_cost = 1800
-
-/datum/religion_rites/synthconversion/perform_rite(mob/living/user, atom/religious_tool)
- if(!ismovable(religious_tool))
- to_chat(user,"This rite requires a religious device that individuals can be buckled to.")
- return FALSE
- var/atom/movable/movable_reltool = religious_tool
- if(!movable_reltool)
- return FALSE
- if(LAZYLEN(movable_reltool.buckled_mobs))
- to_chat(user,"You're going to convert the one buckled on [movable_reltool].")
- else
- if(!movable_reltool.can_buckle) //yes, if you have somehow managed to have someone buckled to something that now cannot buckle, we will still let you perform the rite!
- to_chat(user,"This rite requires a religious device that individuals can be buckled to.")
- return FALSE
- if(isandroid(user))
- to_chat(user,"You've already converted yourself. To convert others, they must be buckled to [movable_reltool].")
- return FALSE
- to_chat(user,"You're going to convert yourself with this ritual.")
- return ..()
-
-/datum/religion_rites/synthconversion/invoke_effect(mob/living/user, atom/religious_tool)
- ..()
- if(!ismovable(religious_tool))
- CRASH("[name]'s perform_rite had a movable atom that has somehow turned into a non-movable!")
- var/atom/movable/movable_reltool = religious_tool
- var/mob/living/carbon/human/rite_target
- if(!movable_reltool?.buckled_mobs?.len)
- rite_target = user
- else
- for(var/buckled in movable_reltool.buckled_mobs)
- if(ishuman(buckled))
- rite_target = buckled
- break
- if(!rite_target)
- return FALSE
- rite_target.set_species(/datum/species/android)
- rite_target.visible_message("[rite_target] has been converted by the rite of [name]!")
- return TRUE
-
-
-/datum/religion_rites/machine_blessing
- name = "Receive Blessing"
- desc = "Receive a random blessing from the machine god to further your ascension."
- ritual_length = 5 SECONDS
- ritual_invocations =list( "Let your will power our forges.",
- "... Help us in our great conquest!")
- invoke_msg = "The end of flesh is near!"
- favor_cost = 800
-
-/datum/religion_rites/machine_blessing/invoke_effect(mob/living/user, atom/movable/religious_tool)
- ..()
- var/altar_turf = get_turf(religious_tool)
- var/blessing = pick(
- /obj/item/organ/cyberimp/arm/surgery,
- /obj/item/organ/cyberimp/eyes/hud/diagnostic,
- /obj/item/organ/cyberimp/eyes/hud/medical,
- /obj/item/organ/cyberimp/mouth/breathing_tube,
- /obj/item/organ/cyberimp/chest/thrusters,
- /obj/item/organ/cyberimp/chest/nutriment,
- /obj/item/organ/cyberimp/arm/toolset,
- /obj/item/organ/wings/cybernetic,
- /obj/item/organ/eyes/robotic/glow)
- new blessing(altar_turf)
- return TRUE
-
-
-/datum/religion_rites/machine_implantation
- name = "Machine Implantation"
- desc = "Apply a provided upgrade to your body. Place a cybernetic item on the altar, then buckle someone to implant them, otherwise it will implant you."
- ritual_length = 20 SECONDS
- ritual_invocations = list("Lend us your power ...",
- "... We call upon you, grant us this upgrade ...",
- "... Complete us, joining man and machine ...")
- invoke_msg = "... Let the mechanical parts, Merge!!"
- favor_cost = 1000
- var/obj/item/organ/chosen_implant
-
-/datum/religion_rites/machine_implantation/perform_rite(mob/living/user, atom/religious_tool)
- chosen_implant = locate() in get_turf(religious_tool)
- if(!chosen_implant)
- to_chat(user, "This rite requires cybernetics for implantation.")
- return FALSE
- if(!ismovable(religious_tool))
- to_chat(user,"This rite requires a religious device that individuals can be buckled to.")
- return FALSE
- var/atom/movable/movable_reltool = religious_tool
- if(length(movable_reltool.buckled_mobs))
- to_chat(user,"You're going to merge the implant with the one buckled on [movable_reltool].")
- else if(!movable_reltool.can_buckle) //yes, if you have somehow managed to have someone buckled to something that now cannot buckle, we will still let you perform the rite!
- to_chat(user,"This rite requires a religious device that individuals can be buckled to.")
- return FALSE
- to_chat(user,"You're going to merge the implant into yourself with this ritual.")
- return ..()
-
-/datum/religion_rites/machine_implantation/invoke_effect(mob/living/user, atom/religious_tool)
- ..()
- if(!ismovable(religious_tool))
- CRASH("[name]'s perform_rite had a movable atom that has somehow turned into a non-movable!")
- var/atom/movable/movable_reltool = religious_tool
- var/mob/living/carbon/human/rite_target
- if(!length(movable_reltool.buckled_mobs))
- rite_target = user
- else
- for(var/buckled in movable_reltool.buckled_mobs)
- if(ishuman(buckled))
- rite_target = buckled
- break
- if(!rite_target)
- chosen_implant = null
- return FALSE
- chosen_implant.Insert(rite_target)
- rite_target.visible_message("[chosen_implant] has been merged into [rite_target] by the rite of [name]!")
- chosen_implant = null
- return TRUE
-
-
-/**** Ever-Burning Candle sect ****/
-
-///apply a bunch of fire immunity effect to clothing
-/datum/religion_rites/fireproof/proc/apply_fireproof(obj/item/clothing/fireproofed)
- fireproofed.name = "unmelting [fireproofed.name]"
- fireproofed.max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
- fireproofed.heat_protection = chosen_clothing.body_parts_covered
- fireproofed.resistance_flags |= FIRE_PROOF
-
-/datum/religion_rites/fireproof
- name = "Unmelting Protection"
- desc = "Grants fire immunity to any piece of clothing."
- ritual_length = 15 SECONDS
- ritual_invocations = list("And so to support the holder of the Ever-Burning candle...",
- "... allow this unworthy apparel to serve you ...",
- "... make it strong enough to burn a thousand time and more ...")
- invoke_msg = "... Come forth in your new form, and join the unmelting wax of the one true flame!"
- favor_cost = 1000
-///the piece of clothing that will be fireproofed, only one per rite
- var/obj/item/clothing/chosen_clothing
-
-/datum/religion_rites/fireproof/perform_rite(mob/living/user, atom/religious_tool)
- for(var/obj/item/clothing/apparel in get_turf(religious_tool))
- if(apparel.max_heat_protection_temperature >= FIRE_IMMUNITY_MAX_TEMP_PROTECT)
- continue //we ignore anything that is already fireproof
- chosen_clothing = apparel //the apparel has been chosen by our lord and savior
- return ..()
- return FALSE
-
-/datum/religion_rites/fireproof/invoke_effect(mob/living/user, atom/religious_tool)
- ..()
- if(!QDELETED(chosen_clothing) && get_turf(religious_tool) == chosen_clothing.loc) //check if the same clothing is still there
- if(istype(chosen_clothing,/obj/item/clothing/suit/hooded))
- var/obj/item/clothing/suit/hooded/as_hooded = chosen_clothing
- if(as_hooded.hood)
- apply_fireproof(as_hooded.hood)
- else if(istype(chosen_clothing,/obj/item/clothing/suit/space/hardsuit))
- var/obj/item/clothing/suit/space/hardsuit/suit = chosen_clothing
- if(suit.helmet)
- apply_fireproof(suit.helmet)
- apply_fireproof(chosen_clothing)
- playsound(get_turf(religious_tool), 'sound/magic/fireball.ogg', 50, TRUE)
- chosen_clothing = null //our lord and savior no longer cares about this apparel
- return TRUE
- chosen_clothing = null
- to_chat(user,"The clothing that was chosen for the rite is no longer on the altar!")
- return FALSE
-
-/datum/religion_rites/burning_sacrifice
- name = "Burning Offering"
- desc = "Sacrifice a buckled burning corpse for favor, the more burn damage the corpse has the more favor you will receive."
- ritual_length = 15 SECONDS
- ritual_invocations = list("Burning body ...",
- "... cleansed by the flame ...",
- "... we were all created from fire ...",
- "... and to it ...")
- invoke_msg = "... WE RETURN! "
-///the burning corpse chosen for the sacrifice of the rite
- var/mob/living/carbon/chosen_sacrifice
-
-/datum/religion_rites/burning_sacrifice/perform_rite(mob/living/user, atom/religious_tool)
- if(!ismovable(religious_tool))
- to_chat(user,"This rite requires a religious device that individuals can be buckled to.")
- return FALSE
- var/atom/movable/movable_reltool = religious_tool
- if(!movable_reltool)
- return FALSE
- if(!LAZYLEN(movable_reltool.buckled_mobs))
- to_chat(user,"Nothing is buckled to the altar!")
- return FALSE
- for(var/corpse in movable_reltool.buckled_mobs)
- if(!iscarbon(corpse))// only works with carbon corpse since most normal mobs can't be set on fire.
- to_chat(user,"Only carbon lifeforms can be properly burned for the sacrifice!")
- return FALSE
- chosen_sacrifice = corpse
- if(chosen_sacrifice.stat != DEAD)
- to_chat(user,"You can only sacrifice dead bodies, this one is still alive!")
- return FALSE
- if(!chosen_sacrifice.on_fire)
- to_chat(user,"This corpse needs to be on fire to be sacrificed!")
- return FALSE
- return ..()
-
-/datum/religion_rites/burning_sacrifice/invoke_effect(mob/living/user, atom/movable/religious_tool)
- ..()
- if(!(chosen_sacrifice in religious_tool.buckled_mobs)) //checks one last time if the right corpse is still buckled
- to_chat(user,"The right sacrifice is no longer on the altar!")
- chosen_sacrifice = null
- return FALSE
- if(!chosen_sacrifice.on_fire)
- to_chat(user,"The sacrifice is no longer on fire, it needs to burn until the end of the rite!")
- chosen_sacrifice = null
- return FALSE
- if(chosen_sacrifice.stat != DEAD)
- to_chat(user,"The sacrifice has to stay dead for the rite to work!")
- chosen_sacrifice = null
- return FALSE
- var/favor_gained = 100 + round(chosen_sacrifice.getFireLoss())
- GLOB.religious_sect.adjust_favor(favor_gained, user)
- to_chat(user, "[GLOB.deity] absorbs the burning corpse and any trace of fire with it. [GLOB.deity] rewards you with [favor_gained] favor.")
- chosen_sacrifice.dust(force = TRUE)
- playsound(get_turf(religious_tool), 'sound/effects/supermatter.ogg', 50, TRUE)
- chosen_sacrifice = null
- return TRUE
-
-/datum/religion_rites/infinite_candle
- name = "Immortal Candles"
- desc = "Creates 5 candles that never run out of wax."
- ritual_length = 10 SECONDS
- invoke_msg = "Burn bright, little candles, for you will only extinguish along with the universe."
- favor_cost = 200
-
-/datum/religion_rites/infinite_candle/invoke_effect(mob/living/user, atom/movable/religious_tool)
- ..()
- var/altar_turf = get_turf(religious_tool)
- for(var/i in 1 to 5)
- new /obj/item/candle/infinite(altar_turf)
- playsound(altar_turf, 'sound/magic/fireball.ogg', 50, TRUE)
- return TRUE
-
-/// Necro Rites
-
-/datum/religion_rites/create_lesser_lich
- name = "Create Lesser Lich"
- desc = "Gives the bound creature a spell granting them the ability to create a lesser phylactery, causing them to become a skeleton and revive on death twice if the phylactery still exists on-station. Be warned, becoming a lesser lich will prevent revivial by any other means."
- ritual_length = 60 SECONDS //This one's pretty powerful so it'll still be long
- ritual_invocations = list("From the depths of the soul pool ...",
- "... come forth into this being ...",
- "... grant this servant power ...",
- "... grant them temporary immortality ...")
- invoke_msg = "... Grant them the power to become one with necromancy!!"
- favor_cost = 2250
-/// the creature chosen for the rite
- var/mob/living/lich_to_be
-/// the the typepath of the spell to gran
- var/lichspell = /obj/effect/proc_holder/spell/targeted/lesserlichdom
-
-/datum/religion_rites/create_lesser_lich/perform_rite(mob/living/user, atom/religious_tool)
- if(!ismovable(religious_tool))
- to_chat(user,"This rite requires a religious device that individuals can be buckled to.")
- return FALSE
- var/atom/movable/movable_reltool = religious_tool
- if(length(movable_reltool.buckled_mobs))
- for(var/creature in movable_reltool.buckled_mobs)
- lich_to_be = creature
- if(!lich_to_be.mind.hasSoul)
- to_chat(user,"[lich_to_be] has no soul, as such this rite would not help them. To empower another, they must be buckled to [movable_reltool].")
- lich_to_be = null
- return FALSE
- for(var/obj/effect/proc_holder/spell/knownspell in lich_to_be.mob_spell_list)
- if(knownspell.type == lichspell)
- to_chat(user,"You've already empowered [lich_to_be], get them to use the spell granted to them! To empower another, they must be buckled to [movable_reltool].")
- lich_to_be = null
- return FALSE
- to_chat(user,"You're going to empower the [lich_to_be] who is buckled on [movable_reltool].")
- return ..()
- else
- if(!movable_reltool.can_buckle) //yes, if you have somehow managed to have someone buckled to something that now cannot buckle, we will still let you perform the rite!
- to_chat(user,"This rite requires a religious device that individuals can be buckled to.")
- return FALSE
- lich_to_be = user
- if(!lich_to_be.mind.hasSoul)
- to_chat(user,"You have no soul, as such this rite would not help you. To empower another, they must be buckled to [movable_reltool].")
- lich_to_be = null
- return FALSE
- for(var/obj/effect/proc_holder/spell/knownspell in lich_to_be.mob_spell_list)
- if(knownspell.type == lichspell)
- to_chat(user,"You've already empowered yourself, use the spell granted to you! To empower another, they must be buckled to [movable_reltool].")
- lich_to_be = null
- return FALSE
- to_chat(user,"You're empowering yourself!")
- return ..()
-
-
-/datum/religion_rites/create_lesser_lich/invoke_effect(mob/living/user, atom/movable/religious_tool)
- ..()
- if(!ismovable(religious_tool))
- CRASH("[name]'s perform_rite had a movable atom that has somehow turned into a non-movable!")
- var/atom/movable/movable_reltool = religious_tool
- if(!length(movable_reltool.buckled_mobs))
- lich_to_be = user
- else
- for(var/mob/living/carbon/human/buckled in movable_reltool.buckled_mobs)
- lich_to_be = buckled
- break
- if(!lich_to_be)
- return FALSE
- lich_to_be.AddSpell(new lichspell(null))
- lich_to_be.visible_message("[lich_to_be] has been empowered by the soul pool!")
- lich_to_be = null
- return ..()
-
-/datum/religion_rites/raise_undead
- name = "Raise Undead"
- desc = "Creates an undead creature if a soul is willing to take it."
- ritual_length = 50 SECONDS
- ritual_invocations = list("Come forth from the pool of souls ...",
- "... enter our realm ...",
- "... become one with our world ...",
- "... rise ...",
- "... RISE! ...")
- invoke_msg = "... RISE!!!"
- favor_cost = 1250
-
-/datum/religion_rites/raise_undead/invoke_effect(mob/living/user, atom/movable/religious_tool)
- var/turf/altar_turf = get_turf(religious_tool)
- new /obj/effect/temp_visual/cult/blood/long(altar_turf)
- new /obj/effect/temp_visual/dir_setting/curse/long(altar_turf)
- var/list/candidates = poll_ghost_candidates("Do you wish to be resurrected as a Holy Summoned Undead?", ROLE_HOLY_SUMMONED, null, 10 SECONDS, POLL_IGNORE_HOLYUNDEAD)
- if(!length(candidates))
- to_chat(user, "The soul pool is empty...")
- new /obj/effect/gibspawner/human/bodypartless(altar_turf)
- user.visible_message("The soul pool was not strong enough to bring forth the undead.")
- GLOB.religious_sect?.adjust_favor(favor_cost, user) //refund if nobody takes the role
- return NOT_ENOUGH_PLAYERS
- var/mob/dead/observer/selected = pick_n_take(candidates)
- var/datum/mind/Mind = new /datum/mind(selected.key)
- var/undead_species = pick(/mob/living/carbon/human/species/zombie, /mob/living/carbon/human/species/skeleton)
- var/mob/living/carbon/human/species/undead = new undead_species(altar_turf)
- undead.real_name = "Holy Undead ([rand(1,999)])"
- Mind.active = 1
- Mind.transfer_to(undead)
- undead.equip_to_slot_or_del(new /obj/item/storage/backpack/cultpack(undead), ITEM_SLOT_BACK)
- undead.equip_to_slot_or_del(new /obj/item/clothing/under/costume/skeleton(undead), ITEM_SLOT_ICLOTHING)
- undead.equip_to_slot_or_del(new /obj/item/clothing/suit/hooded/chaplain_hoodie(undead), ITEM_SLOT_OCLOTHING)
- undead.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(undead), ITEM_SLOT_FEET)
- undead.AddSpell(new /obj/effect/proc_holder/spell/targeted/smoke(null))
- if(GLOB.religion)
- var/obj/item/storage/book/bible/booze/B = new
- undead.mind?.holy_role = HOLY_ROLE_PRIEST
- B.deity_name = GLOB.deity
- B.name = GLOB.bible_name
- B.icon_state = GLOB.bible_icon_state
- B.item_state = GLOB.bible_item_state
- to_chat(undead, "There is already an established religion onboard the station. You are an acolyte of [GLOB.deity]. Defer to the Chaplain.")
- undead.equip_to_slot_or_del(B, ITEM_SLOT_BACKPACK)
- GLOB.religious_sect?.on_conversion(undead)
- if(is_special_character(user))
- to_chat(undead, "You are grateful to have been summoned into this word by [user]. Serve [user.real_name], and assist [user.p_them()] in completing [user.p_their()] goals at any cost.")
- else
- to_chat(undead, "You are grateful to have been summoned into this world. You are now a member of this station's crew, Try not to cause any trouble.")
- playsound(altar_turf, pick('sound/hallucinations/growl1.ogg','sound/hallucinations/growl2.ogg','sound/hallucinations/growl3.ogg',), 50, TRUE)
- return ..()
-
-/datum/religion_rites/raise_dead
- name = "Raise Dead"
- desc = "Revives a buckled dead creature or person."
- ritual_length = 40 SECONDS
- ritual_invocations = list("Rejoin our world ...",
- "... come forth from the beyond ...",
- "... fresh life awaits you ...",
- "... return to us ...",
- "... by the power granted by the gods ...",
- "... you shall rise again ...")
- invoke_msg = "Welcome back to the mortal plain."
- favor_cost = 1500
-
-///the target
- var/mob/living/carbon/human/raise_target
-
-/datum/religion_rites/raise_dead/perform_rite(mob/living/user, atom/religious_tool)
- if(!religious_tool || !ismovable(religious_tool))
- to_chat(user, "This rite requires a religious device that individuals can be buckled to.")
- return FALSE
- var/atom/movable/movable_reltool = religious_tool
- if(!length(movable_reltool.buckled_mobs))
- to_chat(user, "Nothing is buckled to the altar!")
- return FALSE
- for(var/mob/living/carbon/r_target in movable_reltool.buckled_mobs)
- if(!iscarbon(r_target))
- to_chat(user, "Only carbon lifeforms can be properly resurrected!")
- return FALSE
- if(r_target.stat != DEAD)
- to_chat(user, "You can only resurrect dead bodies, this one is still alive!")
- return FALSE
- if(!r_target.mind)
- to_chat(user, "This creature has no connected soul...")
- return FALSE
- raise_target = r_target
- raise_target.notify_ghost_cloning("Your soul is being summoned back to your body by mystical power!", source = src)
- return ..()
-
-/datum/religion_rites/raise_dead/invoke_effect(mob/living/user, atom/movable/religious_tool)
- var/turf/altar_turf = get_turf(religious_tool)
- if(!(raise_target in religious_tool.buckled_mobs))
- to_chat(user, "The body is no longer on the altar!")
- raise_target = null
- return FALSE
- if(!raise_target.mind)
- to_chat(user, "This creature's soul has left the pool...")
- raise_target = null
- return FALSE
- if(raise_target.stat != DEAD)
- to_chat(user, "The target has to stay dead for the rite to work! If they came back without your spiritual guidence... Who knows what could happen!?")
- raise_target = null
- return FALSE
- raise_target.grab_ghost() // Shove them back in their body.
- raise_target.revive(full_heal = 1, admin_revive = 1)
- playsound(altar_turf, 'sound/magic/staff_healing.ogg', 50, TRUE)
- raise_target = null
- return ..()
-
-/datum/religion_rites/living_sacrifice
- name = "Living Sacrifice"
- desc = "Sacrifice a non-sentient living buckled creature for favor."
- ritual_length = 25 SECONDS
- ritual_invocations = list("To offer this being unto the gods ...",
- "... to feed them with its soul ...",
- "... so that they may consume all within their path ...",
- "... release their binding on this mortal plane ...",
- "... I offer you this living being ...")
- invoke_msg = "... may it join the horde of undead, and become one with the souls of the damned. "
-
-//the living creature chosen for the sacrifice of the rite
- var/mob/living/chosen_sacrifice
-/datum/religion_rites/living_sacrifice/perform_rite(mob/living/user, atom/religious_tool)
- if(!religious_tool || !ismovable(religious_tool))
- to_chat(user, "This rite requires a religious device that individuals can be buckled to.")
- return FALSE
- var/atom/movable/movable_reltool = religious_tool
- if(!length(movable_reltool.buckled_mobs))
- to_chat(user, "Nothing is buckled to the altar!")
- return FALSE
- for(var/creature in movable_reltool.buckled_mobs)
- chosen_sacrifice = creature
- if(chosen_sacrifice.stat == DEAD)
- to_chat(user, "You can only sacrifice living creatures, this one is dead!")
- chosen_sacrifice = null
- return FALSE
- if(chosen_sacrifice.mind)
- to_chat(user, "This sacrifice is sentient! [GLOB.deity] will not accept this offering.")
- chosen_sacrifice = null
- return FALSE
- var/mob/living/carbon/C = creature
- if(!isnull(C))
- cuff(C)
- return ..()
-
-/datum/religion_rites/living_sacrifice/invoke_effect(mob/living/user, atom/movable/religious_tool)
- var/turf/altar_turf = get_turf(religious_tool)
- if(!(chosen_sacrifice in religious_tool.buckled_mobs)) //checks one last time if the right creature is still buckled
- to_chat(user, "The right sacrifice is no longer on the altar!")
- chosen_sacrifice = null
- return FALSE
- if(chosen_sacrifice.stat == DEAD)
- to_chat(user, "The sacrifice is no longer alive, it needs to be alive until the end of the rite!")
- chosen_sacrifice = null
- return FALSE
- var/favor_gained = 200 + round(chosen_sacrifice.health * 2)
- GLOB.religious_sect?.adjust_favor(favor_gained, user)
- new /obj/effect/temp_visual/cult/blood/out(altar_turf)
- to_chat(user, "[GLOB.deity] absorbs [chosen_sacrifice], leaving blood and gore in its place. [GLOB.deity] rewards you with [favor_gained] favor.")
- chosen_sacrifice.gib(TRUE, FALSE, TRUE)
- playsound(get_turf(religious_tool), 'sound/effects/bamf.ogg', 50, TRUE)
- chosen_sacrifice = null
- return ..()
-
-/datum/religion_rites/living_sacrifice/proc/cuff(var/mob/living/carbon/C)
- if(C.handcuffed)
- return
- C.handcuffed = new /obj/item/restraints/handcuffs/energy/cult(C)
- C.update_handcuffed()
- playsound(C, 'sound/magic/smoke.ogg', 50, 1)
- C.visible_message("Darkness forms around [C]'s wrists as shadowy bindings appear on them!")
-
-/**** Carp rites ****/
-
-/datum/religion_rites/summon_carp
- name = "Summon Carp"
- desc = "Creates a Sentient Space Carp, if a soul is willing to take it. If not, the favor is refunded."
- ritual_length = 50 SECONDS
- ritual_invocations = list("Grant us a new follower ...",
- "... let them enter our realm ...",
- "... become one with our world ...",
- "... to swim in our space ...",
- "... and help our cause ...")
- invoke_msg = "... We summon thee, Holy Carp!"
- favor_cost = 500
-
-/datum/religion_rites/summon_carp/invoke_effect(mob/living/user, atom/movable/religious_tool)
- var/turf/altar_turf = get_turf(religious_tool)
- new /obj/effect/temp_visual/bluespace_fissure/long(altar_turf)
- user.visible_message("A tear in reality appears above the altar!")
- var/list/candidates = poll_ghost_candidates("Do you wish to be summoned as a Holy Carp?", ROLE_HOLY_SUMMONED, null, 10 SECONDS, POLL_IGNORE_HOLYCARP)
- if(!length(candidates))
- new /obj/effect/gibspawner/generic(altar_turf)
- user.visible_message("The carp pool was not strong enough to bring forth a space carp.")
- GLOB.religious_sect?.adjust_favor(400, user)
- return NOT_ENOUGH_PLAYERS
- var/mob/dead/observer/selected = pick_n_take(candidates)
- var/datum/mind/M = new /datum/mind(selected.key)
- var/carp_species = pick(/mob/living/simple_animal/hostile/carp/megacarp, /mob/living/simple_animal/hostile/carp)
- var/mob/living/simple_animal/hostile/carp = new carp_species(altar_turf)
- carp.name = "Holy Space-Carp ([rand(1,999)])"
- carp.key = selected.key
- carp.sentience_act()
- carp.maxHealth += 100
- carp.health += 100
- M.transfer_to(carp)
- if(GLOB.religion)
- carp.mind?.holy_role = HOLY_ROLE_PRIEST
- to_chat(carp, "There is already an established religion onboard the station. You are an acolyte of [GLOB.deity]. Defer to the Chaplain.")
- GLOB.religious_sect?.on_conversion(carp)
- if(is_special_character(user))
- to_chat(carp, "You are grateful to have been summoned into this word by [user]. Serve [user.real_name], and assist [user.p_them()] in completing [user.p_their()] goals at any cost.")
- else
- to_chat(carp, "You are grateful to have been summoned into this world. You are now a member of this station's crew, Try not to cause any trouble.")
- playsound(altar_turf, 'sound/effects/slosh.ogg', 50, TRUE)
- return ..()
-
-/datum/religion_rites/summon_carpsuit
- name = "Summon Carp-Suit"
- desc = "Summons a Space-Carp Suit"
- ritual_length = 30 SECONDS
- ritual_invocations = list("We shall become one ...",
- "... we shall blend in ...",
- "... we shall join in the ways of the carp ...",
- "... grant us new clothing ...")
- invoke_msg = "So we can swim."
- favor_cost = 300
- var/obj/item/clothing/suit/chosen_clothing
-
-/datum/religion_rites/summon_carpsuit/perform_rite(mob/living/user, atom/religious_tool)
- var/turf/T = get_turf(religious_tool)
- var/list/L = T.contents
- if(!locate(/obj/item/clothing/suit) in L)
- to_chat(user, "There is no suit clothing on the altar!")
- return FALSE
- for(var/obj/item/clothing/suit/apparel in L)
- chosen_clothing = apparel //the apparel has been chosen by our lord and savior
- return ..()
- return FALSE
-
-/datum/religion_rites/summon_carpsuit/invoke_effect(mob/living/user, atom/religious_tool)
- if(!QDELETED(chosen_clothing) && get_turf(religious_tool) == chosen_clothing.loc) //check if the same clothing is still there
- user.visible_message("The [chosen_clothing] transforms!")
- chosen_clothing.obj_destruction()
- chosen_clothing = null
- new /obj/item/clothing/suit/space/hardsuit/carp/old(get_turf(religious_tool))
- playsound(get_turf(religious_tool), 'sound/effects/slosh.ogg', 50, TRUE)
- return ..()
- chosen_clothing = null
- to_chat(user, "The clothing that was chosen for the rite is no longer on the altar!")
- return FALSE
-
-/datum/religion_rites/flood_area
- name = "Flood Area"
- desc = "Flood the area with water vapor, great for learning to swim!"
- ritual_length = 25 SECONDS
- ritual_invocations = list("We must swim ...",
- "... but to do so, we need water ...",
- "... grant us a great flood ...",
- "... soak us in your glory ...",
- "... we shall swim forever ...")
- invoke_msg = "... in our own personal ocean."
- favor_cost = 200
-
-/datum/religion_rites/flood_area/invoke_effect(mob/living/user, atom/movable/religious_tool)
- var/turf/open/T = get_turf(religious_tool)
- if(istype(T))
- T.atmos_spawn_air("water_vapor=5000;TEMP=255")
- return ..()
-
-/**** Plant rites ****/
-
-/datum/religion_rites/summon_animals
- name = "Create Life"
- desc = "Creates a few animals, this can range from butterflys to giant frogs! Please be careful."
- ritual_length = 30 SECONDS
- ritual_invocations = list("Great Mother ...",
- "... bring us new life ...",
- "... to join with our nature ...",
- "... and live amongst us ...")
- invoke_msg = "... We summon thee, Animals from the Byond!" //might adjust to beyond due to ooc/ic/meta
- favor_cost = 500
-
-/datum/religion_rites/summon_animals/perform_rite(mob/living/user, atom/religious_tool)
- var/turf/altar_turf = get_turf(religious_tool)
- new /obj/effect/temp_visual/bluespace_fissure/long(altar_turf)
- user.visible_message("A tear in reality appears above the altar!")
- return ..()
-
-/datum/religion_rites/summon_animals/invoke_effect(mob/living/user, atom/religious_tool)
- ..()
- var/turf/altar_turf = get_turf(religious_tool)
- for(var/i in 1 to 8)
- var/mob/living/spawned_mob = create_random_mob(altar_turf, FRIENDLY_SPAWN)
- spawned_mob.faction |= "neutral"
- playsound(altar_turf, 'sound/ambience/servicebell.ogg', 25, TRUE)
- if(prob(0.1))
- playsound(altar_turf, 'sound/effects/bamf.ogg', 100, TRUE)
- altar_turf.visible_message("A large form seems to be forcing its way into your reality via the portal [user] opened! RUN!!!")
- new /mob/living/simple_animal/hostile/jungle/leaper(altar_turf)
- return ..()
-
-/datum/religion_rites/create_sandstone
- name = "Create Sandstone"
- desc = "Create Sandstone for soil production to help create a plant garden."
- ritual_length = 35 SECONDS
- ritual_invocations = list("Bring to us ...",
- "... the stone we need ...",
- "... so we can toil away ...")
- invoke_msg = "and spread many seeds."
- favor_cost = 800
-
-/datum/religion_rites/create_sandstone/invoke_effect(mob/living/user, atom/religious_tool)
- new /obj/item/stack/sheet/mineral/sandstone/fifty(get_turf(religious_tool))
- playsound(get_turf(religious_tool), 'sound/effects/pop_expl.ogg', 50, TRUE)
- return ..()
-
-/datum/religion_rites/grass_generator
- name = "Blessing of Nature"
- desc = "Summon a moveable object that slowly generates grass and fairy-grass around itself while healing any Pod-People or Holy people nearby."
- ritual_length = 60 SECONDS
- ritual_invocations = list("Let the plantlife grow ...",
- "... let it grow across the land ...",
- "... far and wide it shall spread ...",
- "... show us true nature ...",
- "... and we shall worship it all ...")
- invoke_msg = "... in our own personal haven."
- favor_cost = 1000
-
-/datum/religion_rites/grass_generator/invoke_effect(mob/living/user, atom/movable/religious_tool)
- var/turf/open/T = get_turf(religious_tool)
- if(istype(T))
- new /obj/structure/destructible/religion/nature_pylon(T)
- return ..()
-
-/datum/religion_rites/create_podperson
- name = "Nature Conversion"
- desc = "Convert a human-esque individual into a being of nature. Buckle a human to convert them, otherwise it will convert you."
- ritual_length = 30 SECONDS
- ritual_invocations = list("By the power of nature ...",
- "... We call upon you, in this time of need ...",
- "... to merge us with all that is natural ...")
- invoke_msg = "... May the grass be greener on the other side, show us what it means to be one with nature!!"
- favor_cost = 300
-
-/datum/religion_rites/create_podperson/perform_rite(mob/living/user, atom/religious_tool)
- if(!ismovable(religious_tool))
- to_chat(user,"This rite requires a religious device that individuals can be buckled to.")
- return FALSE
- var/atom/movable/movable_reltool = religious_tool
- if(!movable_reltool)
- return FALSE
- if(LAZYLEN(movable_reltool.buckled_mobs))
- to_chat(user,"You're going to convert the one buckled on [movable_reltool].")
- else
- if(!movable_reltool.can_buckle) //yes, if you have somehow managed to have someone buckled to something that now cannot buckle, we will still let you perform the rite!
- to_chat(user,"This rite requires a religious device that individuals can be buckled to.")
- return FALSE
- if(ispodperson(user))
- to_chat(user,"You've already converted yourself. To convert others, they must be buckled to [movable_reltool].")
- return FALSE
- to_chat(user,"You're going to convert yourself with this ritual.")
- return ..()
-
-/datum/religion_rites/create_podperson/invoke_effect(mob/living/user, atom/religious_tool)
- ..()
- if(!ismovable(religious_tool))
- CRASH("[name]'s perform_rite had a movable atom that has somehow turned into a non-movable!")
- var/atom/movable/movable_reltool = religious_tool
- var/mob/living/carbon/human/rite_target
- if(!movable_reltool?.buckled_mobs?.len)
- rite_target = user
- else
- for(var/buckled in movable_reltool.buckled_mobs)
- if(ishuman(buckled))
- rite_target = buckled
- break
- if(!rite_target)
- return FALSE
- rite_target.set_species(/datum/species/pod)
- rite_target.visible_message("[rite_target] has been converted by the rite of [name]!")
- return TRUE
-
-/**** Shadow rites ****/ //Original code by DingoDongler
-
-#define DARKNESS_INVERSE_COLOR "#AAD84B" //The color of light has to be inverse, since we're using negative light power
-
-/datum/religion_rites/shadow_conversion
- name = "Shadowperson Conversion"
- desc = "Converts a humanoid into a shadowperson, a race blessed by darkness."
- ritual_length = 30 SECONDS
- ritual_invocations = list("Let the darkness seep into you...",
- "... And cover you, envelope you ...",
- "... And make you one with it ...")
- invoke_msg = "... And let you be born again!"
- favor_cost = 1200
-
-/datum/religion_rites/shadow_conversion/perform_rite(mob/living/user, atom/religious_tool)
- if(!ismovable(religious_tool))
- to_chat(user, "This rite requires a religious device that individuals can be buckled to.")
- return FALSE
- var/atom/movable/movable_reltool = religious_tool
- if(LAZYLEN(movable_reltool.buckled_mobs))
- to_chat(user,"You're going to convert the one buckled on [movable_reltool].")
- else
- if(!movable_reltool.can_buckle) //yes, if you have somehow managed to have someone buckled to something that now cannot buckle, we will still let you perform the rite!
- to_chat(user,"This rite requires a religious device that individuals can be buckled to.")
- return FALSE
- if(isshadow(user))
- to_chat(user,"You've already converted yourself. To convert others, they must be buckled to [movable_reltool].")
- return FALSE
- to_chat(user,"You're going to convert yourself with this ritual.")
- return ..()
-
-/datum/religion_rites/shadow_conversion/invoke_effect(mob/living/user, atom/religious_tool)
- ..()
- if(!ismovable(religious_tool))
- CRASH("[name]'s perform_rite had a movable atom that has somehow turned into a non-movable!")
- var/atom/movable/movable_reltool = religious_tool
- var/mob/living/carbon/human/rite_target
- if(!movable_reltool?.buckled_mobs?.len)
- rite_target = user
- else
- for(var/buckled in movable_reltool.buckled_mobs)
- if(ishuman(buckled))
- rite_target = buckled
- break
- if(!rite_target)
- return FALSE
- rite_target.set_species(/datum/species/shadow)
- rite_target.visible_message("[rite_target] has been converted by the rite of [name]!")
- return TRUE
-
-/datum/religion_rites/shadow_obelisk
- name = "Obelisk Manifestation"
- desc = "Creates an obelisk that generates favor when in a dark area."
- ritual_length = 45 SECONDS
- ritual_invocations = list("Let the shadows combine...",
- "... Solidify and grow ...",
- "... Make an idol to eminate shadows ...")
- invoke_msg = "I summon forth an obelisk, to appease the darkness."
- favor_cost = 100 //Sect starts with 100 favor to begin
-
-/datum/religion_rites/shadow_obelisk/invoke_effect(mob/living/user, atom/religious_tool)
- var/altar_turf = get_turf(religious_tool)
- var/obj/structure/destructible/religion/shadow_obelisk/obelisk = new(altar_turf)
- var/datum/religion_sect/shadow_sect/sect = GLOB.religious_sect
- sect.obelisks += obelisk
- obelisk.AddComponent(/datum/component/dark_favor, user)
- obelisk.set_light(sect.light_reach, sect.light_power, DARKNESS_INVERSE_COLOR)
- playsound(altar_turf, 'sound/magic/fireball.ogg', 50, TRUE)
- return ..()
-
-/datum/religion_rites/expand_shadows
- name = "Shadow Expansion"
- desc = "Grow the reach of shadows extending from the altar, and any obelisks."
- ritual_length = 40 SECONDS
- ritual_invocations = list("Spread out...",
- "... Kill the light ...",
- "... Encompass it all in darkness ...")
- invoke_msg = "Shadows, reach your tendrils from my altar, and extend thy domain."
- favor_cost = 175
-
-/datum/religion_rites/expand_shadows/perform_rite(mob/living/user, atom/religious_tool)
- var/datum/religion_sect/shadow_sect/sect = GLOB.religious_sect
- if((sect.light_power <= -5) || (sect.light_reach >= 10))
- to_chat(user, "The shadows emanating from your idols is as strong as it could be.")
- return FALSE
- return ..()
-
-/datum/religion_rites/expand_shadows/invoke_effect(mob/living/user, atom/religious_tool)
- . = ..()
- var/datum/religion_sect/shadow_sect/sect = GLOB.religious_sect
- if(!sect)
- return
- sect.light_reach += 2
- sect.light_power -= 1
- religious_tool.set_light(sect.light_reach, sect.light_power, DARKNESS_INVERSE_COLOR)
- for(var/obj/structure/destructible/religion/shadow_obelisk/D in sect.obelisks)
- D.set_light(sect.light_reach, sect.light_power, DARKNESS_INVERSE_COLOR)
-
-/datum/religion_rites/shadow_blessing
- name = "Shadow Blessing"
- desc = "Bless someone with the power of shadows, and make them immune to all magic."
- ritual_length = 60 SECONDS
- ritual_invocations = list("Let the darkness reside within us...",
- "... Let the power flow ...",
- "... Encompass our souls in shade ...",
- "... And let the demons know ...",
- "... That their powers will not work apon us any more...",)
- invoke_msg = "Bless thy brethen, and grant them immunity!"
- favor_cost = 8000
-
-/datum/religion_rites/shadow_blessing/perform_rite(mob/living/user, atom/religious_tool)
- if(!ismovable(religious_tool))
- to_chat(user, "This rite requires a religious device that individuals can be buckled to.")
- return FALSE
- var/atom/movable/movable_reltool = religious_tool
- if(LAZYLEN(movable_reltool.buckled_mobs))
- to_chat(user,"You're going to bless the one buckled on [movable_reltool].")
- else
- if(!movable_reltool.can_buckle) //yes, if you have somehow managed to have someone buckled to something that now cannot buckle, we will still let you perform the rite!
- to_chat(user,"This rite requires a religious device that individuals can be buckled to.")
- return FALSE
- if(isshadow(user))
- to_chat(user,"You've already blessed yourself. To convert others, they must be buckled to [movable_reltool].")
- return FALSE
- to_chat(user,"You're going to bless yourself with this ritual.")
- return ..()
-
-/datum/religion_rites/shadow_blessing/invoke_effect(mob/living/user, atom/religious_tool)
- ..()
- if(!ismovable(religious_tool))
- CRASH("[name]'s perform_rite had a movable atom that has somehow turned into a non-movable!")
- var/atom/movable/movable_reltool = religious_tool
- var/mob/living/carbon/human/rite_target
- if(!movable_reltool?.buckled_mobs?.len)
- rite_target = user
- else
- for(var/buckled in movable_reltool.buckled_mobs)
- if(ishuman(buckled))
- rite_target = buckled
- break
- if(!rite_target)
- return FALSE
- ADD_TRAIT(rite_target, TRAIT_ANTIMAGIC, MAGIC_TRAIT)
- //glowing wings overlay
- playsound(rite_target, 'sound/weapons/fwoosh.ogg', 75, 0)
- rite_target.visible_message("[rite_target] has been blessed by the rite of [name]!")
- return TRUE
-
-
-/datum/religion_rites/shadow_eyes
- name = "Grant Shadow Eyes"
- desc = "Grants either the caster, or the buckled person, shadow eyes that give night vision."
- ritual_length = 30 SECONDS
- ritual_invocations = list("Grant us the sight ...",
- "... We call upon the shadows ...",
- "... Show us the way ...")
- invoke_msg = "... Let the darkness be our guide!!"
- favor_cost = 1000
-
-/datum/religion_rites/shadow_eyes/perform_rite(mob/living/user, atom/religious_tool)
- if(!ismovable(religious_tool))
- to_chat(user,"This rite requires a religious device that individuals can be buckled to.")
- return FALSE
- var/atom/movable/movable_reltool = religious_tool
- if(length(movable_reltool.buckled_mobs))
- to_chat(user,"You're going to grant the eyes to the one buckled on [movable_reltool].")
- else if(!movable_reltool.can_buckle) //yes, if you have somehow managed to have someone buckled to something that now cannot buckle, we will still let you perform the rite!
- to_chat(user,"This rite requires a religious device that individuals can be buckled to.")
- return FALSE
- else
- to_chat(user,"You're going to grant the eyes to yourself with this ritual.")
- return ..()
-
-/datum/religion_rites/shadow_eyes/invoke_effect(mob/living/user, atom/religious_tool)
- ..()
- var/obj/item/organ/eyes/night_vision/organ = new()
- if(!ismovable(religious_tool))
- CRASH("[name]'s perform_rite had a movable atom that has somehow turned into a non-movable!")
- var/atom/movable/movable_reltool = religious_tool
- var/mob/living/carbon/human/rite_target
- if(!length(movable_reltool.buckled_mobs))
- rite_target = user
- else
- for(var/buckled in movable_reltool.buckled_mobs)
- if(ishuman(buckled))
- rite_target = buckled
- break
- if(!rite_target)
- return FALSE
- organ.Insert(rite_target)
- rite_target.visible_message("[organ] have been merged into [rite_target] by the rite of [name]!")
- return TRUE
diff --git a/code/modules/religion/sects/candle_sect.dm b/code/modules/religion/sects/candle_sect.dm
new file mode 100644
index 0000000000000..aa45e5165b46c
--- /dev/null
+++ b/code/modules/religion/sects/candle_sect.dm
@@ -0,0 +1,153 @@
+/datum/religion_sect/candle_sect
+ name = "Ever-Burning Candle"
+ desc = "Sacrificing burning corpses with a lot of burn damage and candles grants you favor."
+ quote = "It must burn! The primal energy must be respected."
+ tgui_icon = "fire-alt"
+ alignment = ALIGNMENT_NEUT
+ max_favor = 10000
+ desired_items = list(
+ /obj/item/candle = "already lit")
+ rites_list = list(
+ /datum/religion_rites/fireproof,
+ /datum/religion_rites/burning_sacrifice,
+ /datum/religion_rites/infinite_candle)
+ altar_icon_state = "convertaltar-red"
+
+//candle sect bibles don't heal or do anything special apart from the standard holy water blessings
+/datum/religion_sect/candle_sect/sect_bless(mob/living/target, mob/living/chap)
+ return TRUE
+
+/datum/religion_sect/candle_sect/on_sacrifice(obj/item/candle/offering, mob/living/user)
+ if(!istype(offering))
+ return
+ if(!offering.lit)
+ to_chat(user, "The candle needs to be lit to be offered!")
+ return
+ to_chat(user, "[GLOB.deity] is pleased with your sacrifice.")
+ adjust_favor(20, user) //it's not a lot but hey there's a pacifist favor option at least
+ qdel(offering)
+ return TRUE
+
+
+
+/**** Ever-Burning Candle sect rites ****/
+
+///apply a bunch of fire immunity effect to clothing
+/datum/religion_rites/fireproof/proc/apply_fireproof(obj/item/clothing/fireproofed)
+ fireproofed.name = "unmelting [fireproofed.name]"
+ fireproofed.max_heat_protection_temperature = FIRE_IMMUNITY_MAX_TEMP_PROTECT
+ fireproofed.heat_protection = chosen_clothing.body_parts_covered
+ fireproofed.resistance_flags |= FIRE_PROOF
+
+/datum/religion_rites/fireproof
+ name = "Unmelting Protection"
+ desc = "Grants fire immunity to any piece of clothing."
+ ritual_length = 15 SECONDS
+ ritual_invocations = list(
+ "And so to support the holder of the Ever-Burning candle...",
+ "... allow this unworthy apparel to serve you ...",
+ "... make it strong enough to burn a thousand time and more ...")
+ invoke_msg = "... Come forth in your new form, and join the unmelting wax of the one true flame!"
+ favor_cost = 1000
+///the piece of clothing that will be fireproofed, only one per rite
+ var/obj/item/clothing/chosen_clothing
+
+/datum/religion_rites/fireproof/perform_rite(mob/living/user, atom/religious_tool)
+ for(var/obj/item/clothing/apparel in get_turf(religious_tool))
+ if(apparel.max_heat_protection_temperature >= FIRE_IMMUNITY_MAX_TEMP_PROTECT)
+ continue //we ignore anything that is already fireproof
+ chosen_clothing = apparel //the apparel has been chosen by our lord and savior
+ return ..()
+ return FALSE
+
+/datum/religion_rites/fireproof/invoke_effect(mob/living/user, atom/religious_tool)
+ ..()
+ if(!QDELETED(chosen_clothing) && get_turf(religious_tool) == chosen_clothing.loc) //check if the same clothing is still there
+ if(istype(chosen_clothing,/obj/item/clothing/suit/hooded))
+ var/obj/item/clothing/suit/hooded/as_hooded = chosen_clothing
+ if(as_hooded.hood)
+ apply_fireproof(as_hooded.hood)
+ else if(istype(chosen_clothing,/obj/item/clothing/suit/space/hardsuit))
+ var/obj/item/clothing/suit/space/hardsuit/suit = chosen_clothing
+ if(suit.helmet)
+ apply_fireproof(suit.helmet)
+ apply_fireproof(chosen_clothing)
+ playsound(get_turf(religious_tool), 'sound/magic/fireball.ogg', 50, TRUE)
+ chosen_clothing = null //our lord and savior no longer cares about this apparel
+ return TRUE
+ chosen_clothing = null
+ to_chat(user,"The clothing that was chosen for the rite is no longer on the altar!")
+ return FALSE
+
+/datum/religion_rites/burning_sacrifice
+ name = "Burning Offering"
+ desc = "Sacrifice a buckled burning corpse for favor, the more burn damage the corpse has the more favor you will receive."
+ ritual_length = 15 SECONDS
+ ritual_invocations = list(
+ "Burning body ...",
+ "... cleansed by the flame ...",
+ "... we were all created from fire ...",
+ "... and to it ...")
+ invoke_msg = "... WE RETURN! "
+///the burning corpse chosen for the sacrifice of the rite
+ var/mob/living/carbon/chosen_sacrifice
+
+/datum/religion_rites/burning_sacrifice/perform_rite(mob/living/user, atom/religious_tool)
+ if(!ismovable(religious_tool))
+ to_chat(user,"This rite requires a religious device that individuals can be buckled to.")
+ return FALSE
+ var/atom/movable/movable_reltool = religious_tool
+ if(!movable_reltool)
+ return FALSE
+ if(!LAZYLEN(movable_reltool.buckled_mobs))
+ to_chat(user,"Nothing is buckled to the altar!")
+ return FALSE
+ for(var/corpse in movable_reltool.buckled_mobs)
+ if(!iscarbon(corpse))// only works with carbon corpse since most normal mobs can't be set on fire.
+ to_chat(user,"Only carbon lifeforms can be properly burned for the sacrifice!")
+ return FALSE
+ chosen_sacrifice = corpse
+ if(chosen_sacrifice.stat != DEAD)
+ to_chat(user,"You can only sacrifice dead bodies, this one is still alive!")
+ return FALSE
+ if(!chosen_sacrifice.on_fire)
+ to_chat(user,"This corpse needs to be on fire to be sacrificed!")
+ return FALSE
+ return ..()
+
+/datum/religion_rites/burning_sacrifice/invoke_effect(mob/living/user, atom/movable/religious_tool)
+ ..()
+ if(!(chosen_sacrifice in religious_tool.buckled_mobs)) //checks one last time if the right corpse is still buckled
+ to_chat(user,"The right sacrifice is no longer on the altar!")
+ chosen_sacrifice = null
+ return FALSE
+ if(!chosen_sacrifice.on_fire)
+ to_chat(user,"The sacrifice is no longer on fire, it needs to burn until the end of the rite!")
+ chosen_sacrifice = null
+ return FALSE
+ if(chosen_sacrifice.stat != DEAD)
+ to_chat(user,"The sacrifice has to stay dead for the rite to work!")
+ chosen_sacrifice = null
+ return FALSE
+ var/favor_gained = 100 + round(chosen_sacrifice.getFireLoss())
+ GLOB.religious_sect.adjust_favor(favor_gained, user)
+ to_chat(user, "[GLOB.deity] absorbs the burning corpse and any trace of fire with it. [GLOB.deity] rewards you with [favor_gained] favor.")
+ chosen_sacrifice.dust(force = TRUE)
+ playsound(get_turf(religious_tool), 'sound/effects/supermatter.ogg', 50, TRUE)
+ chosen_sacrifice = null
+ return TRUE
+
+/datum/religion_rites/infinite_candle
+ name = "Immortal Candles"
+ desc = "Creates 5 candles that never run out of wax."
+ ritual_length = 10 SECONDS
+ invoke_msg = "Burn bright, little candles, for you will only extinguish along with the universe."
+ favor_cost = 200
+
+/datum/religion_rites/infinite_candle/invoke_effect(mob/living/user, atom/movable/religious_tool)
+ ..()
+ var/altar_turf = get_turf(religious_tool)
+ for(var/i in 1 to 5)
+ new /obj/item/candle/infinite(altar_turf)
+ playsound(altar_turf, 'sound/magic/fireball.ogg', 50, TRUE)
+ return TRUE
diff --git a/code/modules/religion/sects/carp_sect.dm b/code/modules/religion/sects/carp_sect.dm
new file mode 100644
index 0000000000000..01b1ca252e29d
--- /dev/null
+++ b/code/modules/religion/sects/carp_sect.dm
@@ -0,0 +1,133 @@
+/datum/religion_sect/carp_sect
+ name = "Followers of the Great Carp"
+ desc = "A sect dedicated to the space carp and carp'sie, Offer the gods meat for favor."
+ quote = "Drown the station in fish and water."
+ tgui_icon = "fish"
+ alignment = ALIGNMENT_NEUT
+ max_favor = 10000
+ desired_items = list(
+ /obj/item/food/meat/slab)
+ rites_list = list(
+ /datum/religion_rites/summon_carp,
+ /datum/religion_rites/flood_area,
+ /datum/religion_rites/summon_carpsuit)
+ altar_icon_state = "convertaltar-blue"
+
+//Carp bibles give people the carp faction!
+/datum/religion_sect/carp_sect/sect_bless(mob/living/L, mob/living/user)
+ if(!isliving(L))
+ return FALSE
+ L.faction |= "carp"
+ user.visible_message("[user] blessed [L] with the power of [GLOB.deity]! They are now protected from Space Carps, Although carps will still fight back if attacked.")
+ SEND_SIGNAL(L, COMSIG_ADD_MOOD_EVENT, "blessing", /datum/mood_event/blessing)
+ return TRUE
+
+/datum/religion_sect/carp_sect/on_sacrifice(obj/item/N, mob/living/L) //and this
+ var/obj/item/food/meat/meat = N
+ if(!istype(meat)) //how...
+ return
+ adjust_favor(20, L)
+ to_chat(L, "You offer [meat] to [GLOB.deity], pleasing them and gaining 20 favor in the process.")
+ qdel(N)
+ return TRUE
+
+
+/**** Carp rites ****/
+/datum/religion_rites/summon_carp
+ name = "Summon Carp"
+ desc = "Creates a Sentient Space Carp, if a soul is willing to take it. If not, the favor is refunded."
+ ritual_length = 50 SECONDS
+ ritual_invocations = list(
+ "Grant us a new follower ...",
+ "... let them enter our realm ...",
+ "... become one with our world ...",
+ "... to swim in our space ...",
+ "... and help our cause ...")
+ invoke_msg = "... We summon thee, Holy Carp!"
+ favor_cost = 500
+
+/datum/religion_rites/summon_carp/invoke_effect(mob/living/user, atom/movable/religious_tool)
+ var/turf/altar_turf = get_turf(religious_tool)
+ new /obj/effect/temp_visual/bluespace_fissure/long(altar_turf)
+ user.visible_message("A tear in reality appears above the altar!")
+ var/list/candidates = poll_ghost_candidates("Do you wish to be summoned as a Holy Carp?", ROLE_HOLY_SUMMONED, null, 10 SECONDS, POLL_IGNORE_HOLYCARP)
+ if(!length(candidates))
+ new /obj/effect/gibspawner/generic(altar_turf)
+ user.visible_message("The carp pool was not strong enough to bring forth a space carp.")
+ GLOB.religious_sect?.adjust_favor(400, user)
+ return NOT_ENOUGH_PLAYERS
+ var/mob/dead/observer/selected = pick_n_take(candidates)
+ var/datum/mind/M = new /datum/mind(selected.key)
+ var/carp_species = pick(/mob/living/simple_animal/hostile/carp/megacarp, /mob/living/simple_animal/hostile/carp)
+ var/mob/living/simple_animal/hostile/carp = new carp_species(altar_turf)
+ carp.name = "Holy Space-Carp ([rand(1,999)])"
+ carp.key = selected.key
+ carp.sentience_act()
+ carp.maxHealth += 100
+ carp.health += 100
+ M.transfer_to(carp)
+ if(GLOB.religion)
+ carp.mind?.holy_role = HOLY_ROLE_PRIEST
+ to_chat(carp, "There is already an established religion onboard the station. You are an acolyte of [GLOB.deity]. Defer to the Chaplain.")
+ GLOB.religious_sect?.on_conversion(carp)
+ if(is_special_character(user))
+ to_chat(carp, "You are grateful to have been summoned into this word by [user]. Serve [user.real_name], and assist [user.p_them()] in completing [user.p_their()] goals at any cost.")
+ else
+ to_chat(carp, "You are grateful to have been summoned into this world. You are now a member of this station's crew, Try not to cause any trouble.")
+ playsound(altar_turf, 'sound/effects/slosh.ogg', 50, TRUE)
+ return ..()
+
+/datum/religion_rites/summon_carpsuit
+ name = "Summon Carp-Suit"
+ desc = "Summons a Space-Carp Suit"
+ ritual_length = 30 SECONDS
+ ritual_invocations = list(
+ "We shall become one ...",
+ "... we shall blend in ...",
+ "... we shall join in the ways of the carp ...",
+ "... grant us new clothing ...")
+ invoke_msg = "So we can swim."
+ favor_cost = 300
+ var/obj/item/clothing/suit/chosen_clothing
+
+/datum/religion_rites/summon_carpsuit/perform_rite(mob/living/user, atom/religious_tool)
+ var/turf/T = get_turf(religious_tool)
+ var/list/L = T.contents
+ if(!locate(/obj/item/clothing/suit) in L)
+ to_chat(user, "There is no suit clothing on the altar!")
+ return FALSE
+ for(var/obj/item/clothing/suit/apparel in L)
+ chosen_clothing = apparel //the apparel has been chosen by our lord and savior
+ return ..()
+ return FALSE
+
+/datum/religion_rites/summon_carpsuit/invoke_effect(mob/living/user, atom/religious_tool)
+ if(!QDELETED(chosen_clothing) && get_turf(religious_tool) == chosen_clothing.loc) //check if the same clothing is still there
+ user.visible_message("The [chosen_clothing] transforms!")
+ chosen_clothing.obj_destruction()
+ chosen_clothing = null
+ new /obj/item/clothing/suit/space/hardsuit/carp/old(get_turf(religious_tool))
+ playsound(get_turf(religious_tool), 'sound/effects/slosh.ogg', 50, TRUE)
+ return ..()
+ chosen_clothing = null
+ to_chat(user, "The clothing that was chosen for the rite is no longer on the altar!")
+ return FALSE
+
+/datum/religion_rites/flood_area
+ name = "Flood Area"
+ desc = "Flood the area with water vapor, great for learning to swim!"
+ ritual_length = 25 SECONDS
+ ritual_invocations = list(
+ "We must swim ...",
+ "... but to do so, we need water ...",
+ "... grant us a great flood ...",
+ "... soak us in your glory ...",
+ "... we shall swim forever ...")
+ invoke_msg = "... in our own personal ocean."
+ favor_cost = 200
+
+/datum/religion_rites/flood_area/invoke_effect(mob/living/user, atom/movable/religious_tool)
+ var/turf/open/T = get_turf(religious_tool)
+ if(istype(T))
+ T.atmos_spawn_air("water_vapor=5000;TEMP=255")
+ return ..()
diff --git a/code/modules/religion/sects/necro_sect.dm b/code/modules/religion/sects/necro_sect.dm
new file mode 100644
index 0000000000000..1adbc03fdd4f0
--- /dev/null
+++ b/code/modules/religion/sects/necro_sect.dm
@@ -0,0 +1,273 @@
+/datum/religion_sect/necro_sect
+ name = "Necromancy"
+ desc = "A sect dedicated to the revival and summoning of the dead. Sacrificing living animals grants you favor."
+ quote = "An undead army is a must have!"
+ tgui_icon = "skull"
+ alignment = ALIGNMENT_EVIL
+ max_favor = 10000
+ desired_items = list(
+ /obj/item/organ/)
+ rites_list = list(
+ /datum/religion_rites/raise_dead,
+ /datum/religion_rites/living_sacrifice,
+ /datum/religion_rites/raise_undead,
+ /datum/religion_rites/create_lesser_lich)
+ altar_icon_state = "convertaltar-green"
+
+//Necro bibles don't heal or do anything special apart from the standard holy water blessings
+/datum/religion_sect/necro_sect/sect_bless(mob/living/blessed, mob/living/user)
+ return TRUE
+
+/datum/religion_sect/necro_sect/on_sacrifice(obj/item/N, mob/living/L)
+ if(!istype(N, /obj/item/organ))
+ return
+ adjust_favor(10, L)
+ to_chat(L, "You offer [N] to [GLOB.deity], pleasing them and gaining 10 favor in the process.")
+ qdel(N)
+ return TRUE
+
+
+/// Necro Rites
+
+/datum/religion_rites/create_lesser_lich
+ name = "Create Lesser Lich"
+ desc = "Gives the bound creature a spell granting them the ability to create a lesser phylactery, causing them to become a skeleton and revive on death twice if the phylactery still exists on-station. Be warned, becoming a lesser lich will prevent revivial by any other means."
+ ritual_length = 60 SECONDS //This one's pretty powerful so it'll still be long
+ ritual_invocations = list("From the depths of the soul pool ...",
+ "... come forth into this being ...",
+ "... grant this servant power ...",
+ "... grant them temporary immortality ...")
+ invoke_msg = "... Grant them the power to become one with necromancy!!"
+ favor_cost = 2250
+/// the creature chosen for the rite
+ var/mob/living/lich_to_be
+/// the the typepath of the spell to gran
+ var/lichspell = /obj/effect/proc_holder/spell/targeted/lesserlichdom
+
+/datum/religion_rites/create_lesser_lich/perform_rite(mob/living/user, atom/religious_tool)
+ if(!ismovable(religious_tool))
+ to_chat(user,"This rite requires a religious device that individuals can be buckled to.")
+ return FALSE
+ var/atom/movable/movable_reltool = religious_tool
+ if(length(movable_reltool.buckled_mobs))
+ for(var/creature in movable_reltool.buckled_mobs)
+ lich_to_be = creature
+ if(!lich_to_be.mind.hasSoul)
+ to_chat(user,"[lich_to_be] has no soul, as such this rite would not help them. To empower another, they must be buckled to [movable_reltool].")
+ lich_to_be = null
+ return FALSE
+ for(var/obj/effect/proc_holder/spell/knownspell in lich_to_be.mob_spell_list)
+ if(knownspell.type == lichspell)
+ to_chat(user,"You've already empowered [lich_to_be], get them to use the spell granted to them! To empower another, they must be buckled to [movable_reltool].")
+ lich_to_be = null
+ return FALSE
+ to_chat(user,"You're going to empower the [lich_to_be] who is buckled on [movable_reltool].")
+ return ..()
+ else
+ if(!movable_reltool.can_buckle) //yes, if you have somehow managed to have someone buckled to something that now cannot buckle, we will still let you perform the rite!
+ to_chat(user,"This rite requires a religious device that individuals can be buckled to.")
+ return FALSE
+ lich_to_be = user
+ if(!lich_to_be.mind.hasSoul)
+ to_chat(user,"You have no soul, as such this rite would not help you. To empower another, they must be buckled to [movable_reltool].")
+ lich_to_be = null
+ return FALSE
+ for(var/obj/effect/proc_holder/spell/knownspell in lich_to_be.mob_spell_list)
+ if(knownspell.type == lichspell)
+ to_chat(user,"You've already empowered yourself, use the spell granted to you! To empower another, they must be buckled to [movable_reltool].")
+ lich_to_be = null
+ return FALSE
+ to_chat(user,"You're empowering yourself!")
+ return ..()
+
+
+/datum/religion_rites/create_lesser_lich/invoke_effect(mob/living/user, atom/movable/religious_tool)
+ ..()
+ if(!ismovable(religious_tool))
+ CRASH("[name]'s perform_rite had a movable atom that has somehow turned into a non-movable!")
+ var/atom/movable/movable_reltool = religious_tool
+ if(!length(movable_reltool.buckled_mobs))
+ lich_to_be = user
+ else
+ for(var/mob/living/carbon/human/buckled in movable_reltool.buckled_mobs)
+ lich_to_be = buckled
+ break
+ if(!lich_to_be)
+ return FALSE
+ lich_to_be.AddSpell(new lichspell(null))
+ lich_to_be.visible_message("[lich_to_be] has been empowered by the soul pool!")
+ lich_to_be = null
+ return ..()
+
+/datum/religion_rites/raise_undead
+ name = "Raise Undead"
+ desc = "Creates an undead creature if a soul is willing to take it."
+ ritual_length = 50 SECONDS
+ ritual_invocations = list("Come forth from the pool of souls ...",
+ "... enter our realm ...",
+ "... become one with our world ...",
+ "... rise ...",
+ "... RISE! ...")
+ invoke_msg = "... RISE!!!"
+ favor_cost = 1250
+
+/datum/religion_rites/raise_undead/invoke_effect(mob/living/user, atom/movable/religious_tool)
+ var/turf/altar_turf = get_turf(religious_tool)
+ new /obj/effect/temp_visual/cult/blood/long(altar_turf)
+ new /obj/effect/temp_visual/dir_setting/curse/long(altar_turf)
+ var/list/candidates = poll_ghost_candidates("Do you wish to be resurrected as a Holy Summoned Undead?", ROLE_HOLY_SUMMONED, null, 10 SECONDS, POLL_IGNORE_HOLYUNDEAD)
+ if(!length(candidates))
+ to_chat(user, "The soul pool is empty...")
+ new /obj/effect/gibspawner/human/bodypartless(altar_turf)
+ user.visible_message("The soul pool was not strong enough to bring forth the undead.")
+ GLOB.religious_sect?.adjust_favor(favor_cost, user) //refund if nobody takes the role
+ return NOT_ENOUGH_PLAYERS
+ var/mob/dead/observer/selected = pick_n_take(candidates)
+ var/datum/mind/Mind = new /datum/mind(selected.key)
+ var/undead_species = pick(/mob/living/carbon/human/species/zombie, /mob/living/carbon/human/species/skeleton)
+ var/mob/living/carbon/human/species/undead = new undead_species(altar_turf)
+ undead.real_name = "Holy Undead ([rand(1,999)])"
+ Mind.active = 1
+ Mind.transfer_to(undead)
+ undead.equip_to_slot_or_del(new /obj/item/storage/backpack/cultpack(undead), ITEM_SLOT_BACK)
+ undead.equip_to_slot_or_del(new /obj/item/clothing/under/costume/skeleton(undead), ITEM_SLOT_ICLOTHING)
+ undead.equip_to_slot_or_del(new /obj/item/clothing/suit/hooded/chaplain_hoodie(undead), ITEM_SLOT_OCLOTHING)
+ undead.equip_to_slot_or_del(new /obj/item/clothing/shoes/sneakers/black(undead), ITEM_SLOT_FEET)
+ undead.AddSpell(new /obj/effect/proc_holder/spell/targeted/smoke(null))
+ if(GLOB.religion)
+ var/obj/item/storage/book/bible/booze/B = new
+ undead.mind?.holy_role = HOLY_ROLE_PRIEST
+ B.deity_name = GLOB.deity
+ B.name = GLOB.bible_name
+ B.icon_state = GLOB.bible_icon_state
+ B.item_state = GLOB.bible_item_state
+ to_chat(undead, "There is already an established religion onboard the station. You are an acolyte of [GLOB.deity]. Defer to the Chaplain.")
+ undead.equip_to_slot_or_del(B, ITEM_SLOT_BACKPACK)
+ GLOB.religious_sect?.on_conversion(undead)
+ if(is_special_character(user))
+ to_chat(undead, "You are grateful to have been summoned into this word by [user]. Serve [user.real_name], and assist [user.p_them()] in completing [user.p_their()] goals at any cost.")
+ else
+ to_chat(undead, "You are grateful to have been summoned into this world. You are now a member of this station's crew, Try not to cause any trouble.")
+ playsound(altar_turf, pick('sound/hallucinations/growl1.ogg','sound/hallucinations/growl2.ogg','sound/hallucinations/growl3.ogg',), 50, TRUE)
+ return ..()
+
+/datum/religion_rites/raise_dead
+ name = "Raise Dead"
+ desc = "Revives a buckled dead creature or person."
+ ritual_length = 40 SECONDS
+ ritual_invocations = list("Rejoin our world ...",
+ "... come forth from the beyond ...",
+ "... fresh life awaits you ...",
+ "... return to us ...",
+ "... by the power granted by the gods ...",
+ "... you shall rise again ...")
+ invoke_msg = "Welcome back to the mortal plain."
+ favor_cost = 1500
+
+///the target
+ var/mob/living/carbon/human/raise_target
+
+/datum/religion_rites/raise_dead/perform_rite(mob/living/user, atom/religious_tool)
+ if(!religious_tool || !ismovable(religious_tool))
+ to_chat(user, "This rite requires a religious device that individuals can be buckled to.")
+ return FALSE
+ var/atom/movable/movable_reltool = religious_tool
+ if(!length(movable_reltool.buckled_mobs))
+ to_chat(user, "Nothing is buckled to the altar!")
+ return FALSE
+ for(var/mob/living/carbon/r_target in movable_reltool.buckled_mobs)
+ if(!iscarbon(r_target))
+ to_chat(user, "Only carbon lifeforms can be properly resurrected!")
+ return FALSE
+ if(r_target.stat != DEAD)
+ to_chat(user, "You can only resurrect dead bodies, this one is still alive!")
+ return FALSE
+ if(!r_target.mind)
+ to_chat(user, "This creature has no connected soul...")
+ return FALSE
+ raise_target = r_target
+ raise_target.notify_ghost_cloning("Your soul is being summoned back to your body by mystical power!", source = src)
+ return ..()
+
+/datum/religion_rites/raise_dead/invoke_effect(mob/living/user, atom/movable/religious_tool)
+ var/turf/altar_turf = get_turf(religious_tool)
+ if(!(raise_target in religious_tool.buckled_mobs))
+ to_chat(user, "The body is no longer on the altar!")
+ raise_target = null
+ return FALSE
+ if(!raise_target.mind)
+ to_chat(user, "This creature's soul has left the pool...")
+ raise_target = null
+ return FALSE
+ if(raise_target.stat != DEAD)
+ to_chat(user, "The target has to stay dead for the rite to work! If they came back without your spiritual guidence... Who knows what could happen!?")
+ raise_target = null
+ return FALSE
+ raise_target.grab_ghost() // Shove them back in their body.
+ raise_target.revive(full_heal = 1, admin_revive = 1)
+ playsound(altar_turf, 'sound/magic/staff_healing.ogg', 50, TRUE)
+ raise_target = null
+ return ..()
+
+/datum/religion_rites/living_sacrifice
+ name = "Living Sacrifice"
+ desc = "Sacrifice a non-sentient living buckled creature for favor."
+ ritual_length = 25 SECONDS
+ ritual_invocations = list("To offer this being unto the gods ...",
+ "... to feed them with its soul ...",
+ "... so that they may consume all within their path ...",
+ "... release their binding on this mortal plane ...",
+ "... I offer you this living being ...")
+ invoke_msg = "... may it join the horde of undead, and become one with the souls of the damned. "
+
+//the living creature chosen for the sacrifice of the rite
+ var/mob/living/chosen_sacrifice
+/datum/religion_rites/living_sacrifice/perform_rite(mob/living/user, atom/religious_tool)
+ if(!religious_tool || !ismovable(religious_tool))
+ to_chat(user, "This rite requires a religious device that individuals can be buckled to.")
+ return FALSE
+ var/atom/movable/movable_reltool = religious_tool
+ if(!length(movable_reltool.buckled_mobs))
+ to_chat(user, "Nothing is buckled to the altar!")
+ return FALSE
+ for(var/creature in movable_reltool.buckled_mobs)
+ chosen_sacrifice = creature
+ if(chosen_sacrifice.stat == DEAD)
+ to_chat(user, "You can only sacrifice living creatures, this one is dead!")
+ chosen_sacrifice = null
+ return FALSE
+ if(chosen_sacrifice.mind)
+ to_chat(user, "This sacrifice is sentient! [GLOB.deity] will not accept this offering.")
+ chosen_sacrifice = null
+ return FALSE
+ var/mob/living/carbon/C = creature
+ if(!isnull(C))
+ cuff(C)
+ return ..()
+
+/datum/religion_rites/living_sacrifice/invoke_effect(mob/living/user, atom/movable/religious_tool)
+ var/turf/altar_turf = get_turf(religious_tool)
+ if(!(chosen_sacrifice in religious_tool.buckled_mobs)) //checks one last time if the right creature is still buckled
+ to_chat(user, "The right sacrifice is no longer on the altar!")
+ chosen_sacrifice = null
+ return FALSE
+ if(chosen_sacrifice.stat == DEAD)
+ to_chat(user, "The sacrifice is no longer alive, it needs to be alive until the end of the rite!")
+ chosen_sacrifice = null
+ return FALSE
+ var/favor_gained = 200 + round(chosen_sacrifice.health * 2)
+ GLOB.religious_sect?.adjust_favor(favor_gained, user)
+ new /obj/effect/temp_visual/cult/blood/out(altar_turf)
+ to_chat(user, "[GLOB.deity] absorbs [chosen_sacrifice], leaving blood and gore in its place. [GLOB.deity] rewards you with [favor_gained] favor.")
+ chosen_sacrifice.gib(TRUE, FALSE, TRUE)
+ playsound(get_turf(religious_tool), 'sound/effects/bamf.ogg', 50, TRUE)
+ chosen_sacrifice = null
+ return ..()
+
+/datum/religion_rites/living_sacrifice/proc/cuff(var/mob/living/carbon/C)
+ if(C.handcuffed)
+ return
+ C.handcuffed = new /obj/item/restraints/handcuffs/energy/cult(C)
+ C.update_handcuffed()
+ playsound(C, 'sound/magic/smoke.ogg', 50, 1)
+ C.visible_message("Darkness forms around [C]'s wrists as shadowy bindings appear on them!")
diff --git a/code/modules/religion/sects/plant_sect.dm b/code/modules/religion/sects/plant_sect.dm
new file mode 100644
index 0000000000000..c8a0207e293c3
--- /dev/null
+++ b/code/modules/religion/sects/plant_sect.dm
@@ -0,0 +1,240 @@
+/datum/religion_sect/plant_sect
+ name = "Nature"
+ desc = "A sect dedicated to nature, plants, and animals. Sacrificing seeds grants you favor."
+ quote = "Living plant people? What has the world come to!"
+ tgui_icon = "tree"
+ alignment = ALIGNMENT_GOOD
+ max_favor = 10000
+ desired_items = list(
+ /obj/item/seeds)
+ rites_list = list(
+ /datum/religion_rites/create_podperson,
+ /datum/religion_rites/create_sandstone,
+ /datum/religion_rites/grass_generator,
+ /datum/religion_rites/summon_animals)
+ altar_icon_state = "convertaltar-green"
+
+//plant bibles don't heal or do anything special apart from the standard holy water blessings
+/datum/religion_sect/plant_sect/sect_bless(mob/living/blessed, mob/living/user)
+ return TRUE
+
+/datum/religion_sect/plant_sect/on_sacrifice(obj/item/N, mob/living/L)
+ if(!istype(N, /obj/item/seeds))
+ return
+ adjust_favor(25, L)
+ to_chat(L, "You offer [N] to [GLOB.deity], pleasing them and gaining 25 favor in the process.")
+ qdel(N)
+ return TRUE
+
+
+
+/obj/structure/destructible/religion/nature_pylon
+ name = "Orb of Nature"
+ desc = "A floating crystal that slowly heals all plantlife and holy creatures. It can be anchored with a null rod."
+ icon_state = "nature_orb"
+ anchored = FALSE
+ light_range = 5
+ light_color = LIGHT_COLOR_GREEN
+ break_message = "The luminous green crystal shatters!"
+ var/heal_delay = 20
+ var/last_heal = 0
+ var/spread_delay = 45
+ var/last_spread = 0
+
+/obj/structure/destructible/religion/nature_pylon/Initialize(mapload)
+ ..()
+ return INITIALIZE_HINT_LATELOAD
+
+/obj/structure/destructible/religion/nature_pylon/LateInitialize()
+ . = ..()
+ START_PROCESSING(SSobj, src)
+
+/obj/structure/destructible/religion/nature_pylon/Destroy()
+ STOP_PROCESSING(SSobj, src)
+ return ..()
+
+
+/obj/structure/destructible/religion/nature_pylon/process(delta_time)
+ if(last_heal <= world.time)
+ last_heal = world.time + heal_delay
+ for(var/mob/living/L in range(5, src))
+ if(L.health == L.maxHealth)
+ continue
+ if(!ispodperson(L) && !L.mind?.holy_role)
+ continue
+ new /obj/effect/temp_visual/heal(get_turf(src), "#47ac05")
+ if(ispodperson(L) || L.mind?.holy_role)
+ L.adjustBruteLoss(-2*delta_time, 0)
+ L.adjustToxLoss(-2*delta_time, 0)
+ L.adjustOxyLoss(-2*delta_time, 0)
+ L.adjustFireLoss(-2*delta_time, 0)
+ L.adjustCloneLoss(-2*delta_time, 0)
+ L.updatehealth()
+ if(L.blood_volume < BLOOD_VOLUME_NORMAL)
+ L.blood_volume += 1.0
+ CHECK_TICK
+ if(last_spread <= world.time)
+ var/list/validturfs = list()
+ var/list/natureturfs = list()
+ for(var/T in circleviewturfs(src, 5))
+ if(istype(T, /turf/open/floor/grass))
+ natureturfs |= T
+ continue
+ var/static/list/blacklisted_pylon_turfs = typecacheof(list(
+ /turf/closed,
+ /turf/open/floor/grass,
+ /turf/open/space,
+ /turf/open/lava,
+ /turf/open/chasm))
+ if(is_type_in_typecache(T, blacklisted_pylon_turfs))
+ continue
+ else
+ validturfs |= T
+
+ last_spread = world.time + spread_delay
+
+ var/turf/T = safepick(validturfs)
+ if(T)
+ if(istype(T, /turf/open/floor/plating))
+ T.PlaceOnTop(pick(/turf/open/floor/grass, /turf/open/floor/grass/fairy/green), flags = CHANGETURF_INHERIT_AIR)
+ else
+ T.ChangeTurf(pick(/turf/open/floor/grass, /turf/open/floor/grass/fairy/green), flags = CHANGETURF_INHERIT_AIR)
+ else
+ var/turf/open/floor/grass/F = safepick(natureturfs)
+ if(F)
+ new /obj/effect/temp_visual/religion/turf/floor(F)
+ else
+ // Are we in space or something? No grass turfs or
+ // convertable turfs?
+ last_spread = world.time + spread_delay*2
+
+/obj/structure/destructible/religion/nature_pylon/attackby(obj/item/I, mob/living/user, params)
+ if(istype(I, /obj/item/nullrod))
+ if(user.mind?.holy_role == NONE)
+ to_chat(user, "Only the faithful may control the disposition of [src]!")
+ return
+ anchored = !anchored
+ user.visible_message("[user] [anchored ? "" : "un"]anchors [src] [anchored ? "to" : "from"] the floor with [I].", "You [anchored ? "" : "un"]anchor [src] [anchored ? "to" : "from"] the floor with [I].")
+ playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1)
+ user.do_attack_animation(src)
+ return
+ if(I.tool_behaviour == TOOL_WRENCH)
+ return
+ return ..()
+
+
+/**** Plant rites ****/
+/datum/religion_rites/summon_animals
+ name = "Create Life"
+ desc = "Creates a few animals, this can range from butterflys to giant frogs! Please be careful."
+ ritual_length = 30 SECONDS
+ ritual_invocations = list(
+ "Great Mother ...",
+ "... bring us new life ...",
+ "... to join with our nature ...",
+ "... and live amongst us ...")
+ invoke_msg = "... We summon thee, Animals from the Byond!" //might adjust to beyond due to ooc/ic/meta
+ favor_cost = 500
+
+/datum/religion_rites/summon_animals/perform_rite(mob/living/user, atom/religious_tool)
+ var/turf/altar_turf = get_turf(religious_tool)
+ new /obj/effect/temp_visual/bluespace_fissure/long(altar_turf)
+ user.visible_message("A tear in reality appears above the altar!")
+ return ..()
+
+/datum/religion_rites/summon_animals/invoke_effect(mob/living/user, atom/religious_tool)
+ ..()
+ var/turf/altar_turf = get_turf(religious_tool)
+ for(var/i in 1 to 8)
+ var/mob/living/spawned_mob = create_random_mob(altar_turf, FRIENDLY_SPAWN)
+ spawned_mob.faction |= "neutral"
+ playsound(altar_turf, 'sound/ambience/servicebell.ogg', 25, TRUE)
+ if(prob(0.1))
+ playsound(altar_turf, 'sound/effects/bamf.ogg', 100, TRUE)
+ altar_turf.visible_message("A large form seems to be forcing its way into your reality via the portal [user] opened! RUN!!!")
+ new /mob/living/simple_animal/hostile/jungle/leaper(altar_turf)
+ return ..()
+
+/datum/religion_rites/create_sandstone
+ name = "Create Sandstone"
+ desc = "Create Sandstone for soil production to help create a plant garden."
+ ritual_length = 35 SECONDS
+ ritual_invocations = list(
+ "Bring to us ...",
+ "... the stone we need ...",
+ "... so we can toil away ...")
+ invoke_msg = "and spread many seeds."
+ favor_cost = 800
+
+/datum/religion_rites/create_sandstone/invoke_effect(mob/living/user, atom/religious_tool)
+ new /obj/item/stack/sheet/mineral/sandstone/fifty(get_turf(religious_tool))
+ playsound(get_turf(religious_tool), 'sound/effects/pop_expl.ogg', 50, TRUE)
+ return ..()
+
+/datum/religion_rites/grass_generator
+ name = "Blessing of Nature"
+ desc = "Summon a moveable object that slowly generates grass and fairy-grass around itself while healing any Pod-People or Holy people nearby."
+ ritual_length = 60 SECONDS
+ ritual_invocations = list(
+ "Let the plantlife grow ...",
+ "... let it grow across the land ...",
+ "... far and wide it shall spread ...",
+ "... show us true nature ...",
+ "... and we shall worship it all ...")
+ invoke_msg = "... in our own personal haven."
+ favor_cost = 1000
+
+/datum/religion_rites/grass_generator/invoke_effect(mob/living/user, atom/movable/religious_tool)
+ var/turf/open/T = get_turf(religious_tool)
+ if(istype(T))
+ new /obj/structure/destructible/religion/nature_pylon(T)
+ return ..()
+
+/datum/religion_rites/create_podperson
+ name = "Nature Conversion"
+ desc = "Convert a human-esque individual into a being of nature. Buckle a human to convert them, otherwise it will convert you."
+ ritual_length = 30 SECONDS
+ ritual_invocations = list(
+ "By the power of nature ...",
+ "... We call upon you, in this time of need ...",
+ "... to merge us with all that is natural ...")
+ invoke_msg = "... May the grass be greener on the other side, show us what it means to be one with nature!!"
+ favor_cost = 300
+
+/datum/religion_rites/create_podperson/perform_rite(mob/living/user, atom/religious_tool)
+ if(!ismovable(religious_tool))
+ to_chat(user,"This rite requires a religious device that individuals can be buckled to.")
+ return FALSE
+ var/atom/movable/movable_reltool = religious_tool
+ if(!movable_reltool)
+ return FALSE
+ if(LAZYLEN(movable_reltool.buckled_mobs))
+ to_chat(user,"You're going to convert the one buckled on [movable_reltool].")
+ else
+ if(!movable_reltool.can_buckle) //yes, if you have somehow managed to have someone buckled to something that now cannot buckle, we will still let you perform the rite!
+ to_chat(user,"This rite requires a religious device that individuals can be buckled to.")
+ return FALSE
+ if(ispodperson(user))
+ to_chat(user,"You've already converted yourself. To convert others, they must be buckled to [movable_reltool].")
+ return FALSE
+ to_chat(user,"You're going to convert yourself with this ritual.")
+ return ..()
+
+/datum/religion_rites/create_podperson/invoke_effect(mob/living/user, atom/religious_tool)
+ ..()
+ if(!ismovable(religious_tool))
+ CRASH("[name]'s perform_rite had a movable atom that has somehow turned into a non-movable!")
+ var/atom/movable/movable_reltool = religious_tool
+ var/mob/living/carbon/human/rite_target
+ if(!movable_reltool?.buckled_mobs?.len)
+ rite_target = user
+ else
+ for(var/buckled in movable_reltool.buckled_mobs)
+ if(ishuman(buckled))
+ rite_target = buckled
+ break
+ if(!rite_target)
+ return FALSE
+ rite_target.set_species(/datum/species/pod)
+ rite_target.visible_message("[rite_target] has been converted by the rite of [name]!")
+ return TRUE
diff --git a/code/modules/religion/sects/puritan_sect.dm b/code/modules/religion/sects/puritan_sect.dm
new file mode 100644
index 0000000000000..1fbdfc94409b0
--- /dev/null
+++ b/code/modules/religion/sects/puritan_sect.dm
@@ -0,0 +1,7 @@
+/datum/religion_sect/puritanism
+ name = "Nanotrasen Approved God"
+ desc = "Your run-of-the-mill sect, there are no benefits or boons associated."
+ quote = "Nanotrasen Recommends!"
+ tgui_icon = "bible"
+
+// Yes, that's all.
diff --git a/code/modules/religion/sects/shadow_sect.dm b/code/modules/religion/sects/shadow_sect.dm
new file mode 100644
index 0000000000000..0b010ec1678a2
--- /dev/null
+++ b/code/modules/religion/sects/shadow_sect.dm
@@ -0,0 +1,303 @@
+// Shadow sect - Original code by DingoDongler
+/datum/religion_sect/shadow_sect
+ starter = FALSE
+ name = "Shadow"
+ desc = "A sect dedicated to the darkness. The manifested obelisks will generate favor from being in darkness."
+ quote = "Turn out the lights, and let the darkness cover the world!"
+ tgui_icon = "moon"
+ alignment = ALIGNMENT_EVIL
+ favor = 100 //Starts off with enough favor to make an obelisk
+ max_favor = 25000
+ desired_items = list(
+ /obj/item/flashlight)
+ rites_list = list(
+ /datum/religion_rites/expand_shadows,
+ /datum/religion_rites/shadow_obelisk,
+ /datum/religion_rites/shadow_conversion,
+ /datum/religion_rites/shadow_blessing,
+ /datum/religion_rites/shadow_eyes)
+ altar_icon_state = "convertaltar-dark"
+ var/light_reach = 1
+ var/light_power = 0
+ var/list/obelisks = list()
+
+/datum/religion_sect/shadow_sect/is_available(mob/user)
+ if(isshadow(user))
+ return TRUE
+ return FALSE
+
+//Shadow sect doesn't heal
+/datum/religion_sect/shadow_sect/sect_bless(mob/living/blessed, mob/living/user)
+ return TRUE
+
+/datum/religion_sect/shadow_sect/on_sacrifice(obj/item/N, mob/living/L)
+ if(!istype(N, /obj/item/flashlight))
+ return
+ adjust_favor(5, L)
+ to_chat(L, "You offer [N] to [GLOB.deity], pleasing them and gaining 5 favor in the process.")
+ qdel(N)
+ return TRUE
+
+/datum/religion_sect/shadow_sect/on_select(atom/religious_tool, mob/living/user)
+ . = ..()
+ if(!religious_tool || !user)
+ return
+ religious_tool.AddComponent(/datum/component/dark_favor, user)
+
+/datum/religion_sect/shadow_sect/on_conversion(mob/living/chap) //When sect is selected, and when a new chaplain joins after sect has been selected
+ . = ..()
+ if(is_special_character(chap))
+ to_chat(chap, "As you are an antagonist role, you are free to spread darkness across the station.")
+ else
+ to_chat(chap, "You are not an antagonist, please do not spread darkness outside of the chapel without Command Staff approval.")
+
+
+// Shadow sect construction
+/obj/structure/destructible/religion/shadow_obelisk
+ name = "Shadow Obelisk"
+ desc = "Grants favor from being shrouded in shadows."
+ icon = 'icons/obj/hand_of_god_structures.dmi'
+ icon_state = "shadow-obelisk"
+ anchored = FALSE
+ break_message = "The Obelisk crumbles before you!"
+
+/obj/structure/destructible/religion/shadow_obelisk/attackby(obj/item/I, mob/living/user, params)
+ if(istype(I, /obj/item/nullrod))
+ if(user.mind?.holy_role == NONE)
+ to_chat(user, "Only the faithful may control the disposition of [src]!")
+ return
+ anchored = !anchored
+ user.visible_message("[user] [anchored ? "" : "un"]anchors [src] [anchored ? "to" : "from"] the floor with [I].", "You [anchored ? "" : "un"]anchor [src] [anchored ? "to" : "from"] the floor with [I].")
+ playsound(src.loc, 'sound/items/deconstruct.ogg', 50, 1)
+ user.do_attack_animation(src)
+ return
+ if(I.tool_behaviour == TOOL_WRENCH)
+ return
+ return ..()
+
+// Favor generator component. Used on the altar and obelisks
+/datum/component/dark_favor //Original code by DingoDongler
+ var/mob/living/creator
+
+/datum/component/dark_favor/Initialize(mob/living/L)
+ . = ..()
+ if(!L)
+ return
+ creator = L
+ START_PROCESSING(SSobj, src)
+
+/datum/component/dark_favor/Destroy() //Original code by DingoDongler
+ . = ..()
+ STOP_PROCESSING(SSobj, src)
+
+/datum/component/dark_favor/process(delta_time) //Original code by DingoDongler
+ var/datum/religion_sect/shadow_sect/sect = GLOB.religious_sect
+ if(!istype(parent, /atom) || !istype(creator) || !istype(sect))
+ return
+ var/atom/P = parent
+ var/turf/T = P.loc
+ if(!istype(T))
+ return
+ var/light_amount = T.get_lumcount()
+ var/favor_gained = max(1 - light_amount, 0) * delta_time
+ sect.adjust_favor(favor_gained, creator)
+
+
+
+/**** Shadow rites ****/ //Original code by DingoDongler
+
+#define DARKNESS_INVERSE_COLOR "#AAD84B" //The color of light has to be inverse, since we're using negative light power
+
+/datum/religion_rites/shadow_conversion
+ name = "Shadowperson Conversion"
+ desc = "Converts a humanoid into a shadowperson, a race blessed by darkness."
+ ritual_length = 30 SECONDS
+ ritual_invocations = list(
+ "Let the darkness seep into you...",
+ "... And cover you, envelope you ...",
+ "... And make you one with it ...")
+ invoke_msg = "... And let you be born again!"
+ favor_cost = 1200
+
+/datum/religion_rites/shadow_conversion/perform_rite(mob/living/user, atom/religious_tool)
+ if(!ismovable(religious_tool))
+ to_chat(user, "This rite requires a religious device that individuals can be buckled to.")
+ return FALSE
+ var/atom/movable/movable_reltool = religious_tool
+ if(LAZYLEN(movable_reltool.buckled_mobs))
+ to_chat(user,"You're going to convert the one buckled on [movable_reltool].")
+ else
+ if(!movable_reltool.can_buckle) //yes, if you have somehow managed to have someone buckled to something that now cannot buckle, we will still let you perform the rite!
+ to_chat(user,"This rite requires a religious device that individuals can be buckled to.")
+ return FALSE
+ if(isshadow(user))
+ to_chat(user,"You've already converted yourself. To convert others, they must be buckled to [movable_reltool].")
+ return FALSE
+ to_chat(user,"You're going to convert yourself with this ritual.")
+ return ..()
+
+/datum/religion_rites/shadow_conversion/invoke_effect(mob/living/user, atom/religious_tool)
+ ..()
+ if(!ismovable(religious_tool))
+ CRASH("[name]'s perform_rite had a movable atom that has somehow turned into a non-movable!")
+ var/atom/movable/movable_reltool = religious_tool
+ var/mob/living/carbon/human/rite_target
+ if(!movable_reltool?.buckled_mobs?.len)
+ rite_target = user
+ else
+ for(var/buckled in movable_reltool.buckled_mobs)
+ if(ishuman(buckled))
+ rite_target = buckled
+ break
+ if(!rite_target)
+ return FALSE
+ rite_target.set_species(/datum/species/shadow)
+ rite_target.visible_message("[rite_target] has been converted by the rite of [name]!")
+ return TRUE
+
+/datum/religion_rites/shadow_obelisk
+ name = "Obelisk Manifestation"
+ desc = "Creates an obelisk that generates favor when in a dark area."
+ ritual_length = 45 SECONDS
+ ritual_invocations = list(
+ "Let the shadows combine...",
+ "... Solidify and grow ...",
+ "... Make an idol to eminate shadows ...")
+ invoke_msg = "I summon forth an obelisk, to appease the darkness."
+ favor_cost = 100 //Sect starts with 100 favor to begin
+
+/datum/religion_rites/shadow_obelisk/invoke_effect(mob/living/user, atom/religious_tool)
+ var/altar_turf = get_turf(religious_tool)
+ var/obj/structure/destructible/religion/shadow_obelisk/obelisk = new(altar_turf)
+ var/datum/religion_sect/shadow_sect/sect = GLOB.religious_sect
+ sect.obelisks += obelisk
+ obelisk.AddComponent(/datum/component/dark_favor, user)
+ obelisk.set_light(sect.light_reach, sect.light_power, DARKNESS_INVERSE_COLOR)
+ playsound(altar_turf, 'sound/magic/fireball.ogg', 50, TRUE)
+ return ..()
+
+/datum/religion_rites/expand_shadows
+ name = "Shadow Expansion"
+ desc = "Grow the reach of shadows extending from the altar, and any obelisks."
+ ritual_length = 40 SECONDS
+ ritual_invocations = list(
+ "Spread out...",
+ "... Kill the light ...",
+ "... Encompass it all in darkness ...")
+ invoke_msg = "Shadows, reach your tendrils from my altar, and extend thy domain."
+ favor_cost = 175
+
+/datum/religion_rites/expand_shadows/perform_rite(mob/living/user, atom/religious_tool)
+ var/datum/religion_sect/shadow_sect/sect = GLOB.religious_sect
+ if((sect.light_power <= -5) || (sect.light_reach >= 10))
+ to_chat(user, "The shadows emanating from your idols is as strong as it could be.")
+ return FALSE
+ return ..()
+
+/datum/religion_rites/expand_shadows/invoke_effect(mob/living/user, atom/religious_tool)
+ . = ..()
+ var/datum/religion_sect/shadow_sect/sect = GLOB.religious_sect
+ if(!sect)
+ return
+ sect.light_reach += 2
+ sect.light_power -= 1
+ religious_tool.set_light(sect.light_reach, sect.light_power, DARKNESS_INVERSE_COLOR)
+ for(var/obj/structure/destructible/religion/shadow_obelisk/D in sect.obelisks)
+ D.set_light(sect.light_reach, sect.light_power, DARKNESS_INVERSE_COLOR)
+
+/datum/religion_rites/shadow_blessing
+ name = "Shadow Blessing"
+ desc = "Bless someone with the power of shadows, and make them immune to all magic."
+ ritual_length = 60 SECONDS
+ ritual_invocations = list(
+ "Let the darkness reside within us...",
+ "... Let the power flow ...",
+ "... Encompass our souls in shade ...",
+ "... And let the demons know ...",
+ "... That their powers will not work apon us any more...",)
+ invoke_msg = "Bless thy brethen, and grant them immunity!"
+ favor_cost = 8000
+
+/datum/religion_rites/shadow_blessing/perform_rite(mob/living/user, atom/religious_tool)
+ if(!ismovable(religious_tool))
+ to_chat(user, "This rite requires a religious device that individuals can be buckled to.")
+ return FALSE
+ var/atom/movable/movable_reltool = religious_tool
+ if(LAZYLEN(movable_reltool.buckled_mobs))
+ to_chat(user,"You're going to bless the one buckled on [movable_reltool].")
+ else
+ if(!movable_reltool.can_buckle) //yes, if you have somehow managed to have someone buckled to something that now cannot buckle, we will still let you perform the rite!
+ to_chat(user,"This rite requires a religious device that individuals can be buckled to.")
+ return FALSE
+ if(isshadow(user))
+ to_chat(user,"You've already blessed yourself. To convert others, they must be buckled to [movable_reltool].")
+ return FALSE
+ to_chat(user,"You're going to bless yourself with this ritual.")
+ return ..()
+
+/datum/religion_rites/shadow_blessing/invoke_effect(mob/living/user, atom/religious_tool)
+ ..()
+ if(!ismovable(religious_tool))
+ CRASH("[name]'s perform_rite had a movable atom that has somehow turned into a non-movable!")
+ var/atom/movable/movable_reltool = religious_tool
+ var/mob/living/carbon/human/rite_target
+ if(!movable_reltool?.buckled_mobs?.len)
+ rite_target = user
+ else
+ for(var/buckled in movable_reltool.buckled_mobs)
+ if(ishuman(buckled))
+ rite_target = buckled
+ break
+ if(!rite_target)
+ return FALSE
+ ADD_TRAIT(rite_target, TRAIT_ANTIMAGIC, MAGIC_TRAIT)
+ //glowing wings overlay
+ playsound(rite_target, 'sound/weapons/fwoosh.ogg', 75, 0)
+ rite_target.visible_message("[rite_target] has been blessed by the rite of [name]!")
+ return TRUE
+
+
+/datum/religion_rites/shadow_eyes
+ name = "Grant Shadow Eyes"
+ desc = "Grants either the caster, or the buckled person, shadow eyes that give night vision."
+ ritual_length = 30 SECONDS
+ ritual_invocations = list(
+ "Grant us the sight ...",
+ "... We call upon the shadows ...",
+ "... Show us the way ...")
+ invoke_msg = "... Let the darkness be our guide!!"
+ favor_cost = 1000
+
+/datum/religion_rites/shadow_eyes/perform_rite(mob/living/user, atom/religious_tool)
+ if(!ismovable(religious_tool))
+ to_chat(user,"This rite requires a religious device that individuals can be buckled to.")
+ return FALSE
+ var/atom/movable/movable_reltool = religious_tool
+ if(length(movable_reltool.buckled_mobs))
+ to_chat(user,"You're going to grant the eyes to the one buckled on [movable_reltool].")
+ else if(!movable_reltool.can_buckle) //yes, if you have somehow managed to have someone buckled to something that now cannot buckle, we will still let you perform the rite!
+ to_chat(user,"This rite requires a religious device that individuals can be buckled to.")
+ return FALSE
+ else
+ to_chat(user,"You're going to grant the eyes to yourself with this ritual.")
+ return ..()
+
+/datum/religion_rites/shadow_eyes/invoke_effect(mob/living/user, atom/religious_tool)
+ ..()
+ var/obj/item/organ/eyes/night_vision/organ = new()
+ if(!ismovable(religious_tool))
+ CRASH("[name]'s perform_rite had a movable atom that has somehow turned into a non-movable!")
+ var/atom/movable/movable_reltool = religious_tool
+ var/mob/living/carbon/human/rite_target
+ if(!length(movable_reltool.buckled_mobs))
+ rite_target = user
+ else
+ for(var/buckled in movable_reltool.buckled_mobs)
+ if(ishuman(buckled))
+ rite_target = buckled
+ break
+ if(!rite_target)
+ return FALSE
+ organ.Insert(rite_target)
+ rite_target.visible_message("[organ] have been merged into [rite_target] by the rite of [name]!")
+ return TRUE
diff --git a/code/modules/religion/sects/techno_sect.dm b/code/modules/religion/sects/techno_sect.dm
new file mode 100644
index 0000000000000..0ab00c54fd295
--- /dev/null
+++ b/code/modules/religion/sects/techno_sect.dm
@@ -0,0 +1,202 @@
+/datum/religion_sect/technophile
+ name = "Technophile"
+ quote = "May you find peace in a metal shell."
+ desc = "Bibles now recharge cyborgs and heal robotic limbs if targeted, but they \
+ do not heal organic limbs. You can now sacrifice cells, with favor depending on their charge."
+ tgui_icon = "robot"
+ alignment = ALIGNMENT_NEUT
+ desired_items = list(
+ /obj/item/stock_parts/cell = "with battery charge")
+ rites_list = list(
+ /datum/religion_rites/synthconversion,
+ /datum/religion_rites/machine_blessing,
+ /datum/religion_rites/machine_implantation)
+ altar_icon_state = "convertaltar-blue"
+ max_favor = 5000
+
+/datum/religion_sect/technophile/sect_bless(mob/living/target, mob/living/chap)
+ if(iscyborg(target))
+ var/mob/living/silicon/robot/R = target
+ var/charge_amt = 50
+ if(target.mind?.holy_role == HOLY_ROLE_HIGHPRIEST)
+ charge_amt *= 2
+ R.cell?.charge += charge_amt
+ R.visible_message("[chap] charges [R] with the power of [GLOB.deity]!")
+ to_chat(R, "You are charged by the power of [GLOB.deity]!")
+ SEND_SIGNAL(R, COMSIG_ADD_MOOD_EVENT, "blessing", /datum/mood_event/blessing)
+ playsound(chap, 'sound/effects/bang.ogg', 25, TRUE, -1)
+ return TRUE
+ if(!ishuman(target))
+ return
+ var/mob/living/carbon/human/blessed = target
+
+ //first we determine if we can charge them
+ var/did_we_charge = FALSE
+ var/obj/item/organ/stomach/battery/ethereal/eth_stomach = blessed.getorganslot(ORGAN_SLOT_STOMACH)
+ if(istype(eth_stomach))
+ eth_stomach.adjust_charge(60)
+ did_we_charge = TRUE
+
+ //if we're not targeting a robot part we stop early
+ var/obj/item/bodypart/bodypart = blessed.get_bodypart(chap.get_combat_bodyzone(target, zone_context = BODYZONE_CONTEXT_ROBOTIC_LIMB_HEALING))
+ if(IS_ORGANIC_LIMB(bodypart))
+ if(!did_we_charge)
+ to_chat(chap, "[GLOB.deity] scoffs at the idea of healing such fleshy matter!")
+ else
+ blessed.visible_message("[chap] charges [blessed] with the power of [GLOB.deity]!")
+ to_chat(blessed, "You feel charged by the power of [GLOB.deity]!")
+ SEND_SIGNAL(blessed, COMSIG_ADD_MOOD_EVENT, "blessing", /datum/mood_event/blessing)
+ playsound(chap, 'sound/machines/synth_yes.ogg', 25, TRUE, -1)
+ return TRUE
+
+ //charge(?) and go
+ if(bodypart.heal_damage(5,5,null,BODYTYPE_ROBOTIC))
+ blessed.update_damage_overlays()
+
+ blessed.visible_message("[chap] [did_we_charge ? "repairs" : "repairs and charges"] [blessed] with the power of [GLOB.deity]!")
+ to_chat(blessed, "The inner machinations of [GLOB.deity] [did_we_charge ? "repairs" : "repairs and charges"] you!")
+ playsound(chap, 'sound/effects/bang.ogg', 25, TRUE, -1)
+ SEND_SIGNAL(blessed, COMSIG_ADD_MOOD_EVENT, "blessing", /datum/mood_event/blessing)
+ return TRUE
+
+/datum/religion_sect/technophile/on_sacrifice(obj/item/I, mob/living/chap)
+ var/obj/item/stock_parts/cell/the_cell = I
+ if(!istype(the_cell)) //how...
+ return
+ if(the_cell.charge < 300)
+ to_chat(chap,"[GLOB.deity] does not accept pity amounts of power.")
+ return
+ adjust_favor(round(the_cell.charge/100), chap)
+ to_chat(chap, "You offer [the_cell]'s power to [GLOB.deity], pleasing them.")
+ qdel(I)
+ return TRUE
+
+
+
+/**** Technophile Sect ****/
+/datum/religion_rites/synthconversion
+ name = "Synthetic Conversion"
+ desc = "Convert a human-esque individual into a (superior) Android. Buckle a human to convert them, otherwise it will convert you."
+ ritual_length = 25 SECONDS
+ ritual_invocations = list(
+ "By the inner workings of our god ...",
+ "... We call upon you, in the face of adversity ...",
+ "... to complete us, removing that which is undesirable ...")
+ invoke_msg = "... Arise, our champion! Become that which your soul craves, live in the world as your true form!!"
+ favor_cost = 1800
+
+/datum/religion_rites/synthconversion/perform_rite(mob/living/user, atom/religious_tool)
+ if(!ismovable(religious_tool))
+ to_chat(user,"This rite requires a religious device that individuals can be buckled to.")
+ return FALSE
+ var/atom/movable/movable_reltool = religious_tool
+ if(!movable_reltool)
+ return FALSE
+ if(LAZYLEN(movable_reltool.buckled_mobs))
+ to_chat(user,"You're going to convert the one buckled on [movable_reltool].")
+ else
+ if(!movable_reltool.can_buckle) //yes, if you have somehow managed to have someone buckled to something that now cannot buckle, we will still let you perform the rite!
+ to_chat(user,"This rite requires a religious device that individuals can be buckled to.")
+ return FALSE
+ if(isandroid(user))
+ to_chat(user,"You've already converted yourself. To convert others, they must be buckled to [movable_reltool].")
+ return FALSE
+ to_chat(user,"You're going to convert yourself with this ritual.")
+ return ..()
+
+/datum/religion_rites/synthconversion/invoke_effect(mob/living/user, atom/religious_tool)
+ ..()
+ if(!ismovable(religious_tool))
+ CRASH("[name]'s perform_rite had a movable atom that has somehow turned into a non-movable!")
+ var/atom/movable/movable_reltool = religious_tool
+ var/mob/living/carbon/human/rite_target
+ if(!movable_reltool?.buckled_mobs?.len)
+ rite_target = user
+ else
+ for(var/buckled in movable_reltool.buckled_mobs)
+ if(ishuman(buckled))
+ rite_target = buckled
+ break
+ if(!rite_target)
+ return FALSE
+ rite_target.set_species(/datum/species/android)
+ rite_target.visible_message("[rite_target] has been converted by the rite of [name]!")
+ return TRUE
+
+
+/datum/religion_rites/machine_blessing
+ name = "Receive Blessing"
+ desc = "Receive a random blessing from the machine god to further your ascension."
+ ritual_length = 5 SECONDS
+ ritual_invocations =list(
+ "Let your will power our forges.",
+ "... Help us in our great conquest!")
+ invoke_msg = "The end of flesh is near!"
+ favor_cost = 800
+
+/datum/religion_rites/machine_blessing/invoke_effect(mob/living/user, atom/movable/religious_tool)
+ ..()
+ var/altar_turf = get_turf(religious_tool)
+ var/blessing = pick(
+ /obj/item/organ/cyberimp/arm/surgery,
+ /obj/item/organ/cyberimp/eyes/hud/diagnostic,
+ /obj/item/organ/cyberimp/eyes/hud/medical,
+ /obj/item/organ/cyberimp/mouth/breathing_tube,
+ /obj/item/organ/cyberimp/chest/thrusters,
+ /obj/item/organ/cyberimp/chest/nutriment,
+ /obj/item/organ/cyberimp/arm/toolset,
+ /obj/item/organ/wings/cybernetic,
+ /obj/item/organ/eyes/robotic/glow)
+ new blessing(altar_turf)
+ return TRUE
+
+
+/datum/religion_rites/machine_implantation
+ name = "Machine Implantation"
+ desc = "Apply a provided upgrade to your body. Place a cybernetic item on the altar, then buckle someone to implant them, otherwise it will implant you."
+ ritual_length = 20 SECONDS
+ ritual_invocations = list(
+ "Lend us your power ...",
+ "... We call upon you, grant us this upgrade ...",
+ "... Complete us, joining man and machine ...")
+ invoke_msg = "... Let the mechanical parts, Merge!!"
+ favor_cost = 1000
+ var/obj/item/organ/chosen_implant
+
+/datum/religion_rites/machine_implantation/perform_rite(mob/living/user, atom/religious_tool)
+ chosen_implant = locate() in get_turf(religious_tool)
+ if(!chosen_implant)
+ to_chat(user, "This rite requires cybernetics for implantation.")
+ return FALSE
+ if(!ismovable(religious_tool))
+ to_chat(user,"This rite requires a religious device that individuals can be buckled to.")
+ return FALSE
+ var/atom/movable/movable_reltool = religious_tool
+ if(length(movable_reltool.buckled_mobs))
+ to_chat(user,"You're going to merge the implant with the one buckled on [movable_reltool].")
+ else if(!movable_reltool.can_buckle) //yes, if you have somehow managed to have someone buckled to something that now cannot buckle, we will still let you perform the rite!
+ to_chat(user,"This rite requires a religious device that individuals can be buckled to.")
+ return FALSE
+ to_chat(user,"You're going to merge the implant into yourself with this ritual.")
+ return ..()
+
+/datum/religion_rites/machine_implantation/invoke_effect(mob/living/user, atom/religious_tool)
+ ..()
+ if(!ismovable(religious_tool))
+ CRASH("[name]'s perform_rite had a movable atom that has somehow turned into a non-movable!")
+ var/atom/movable/movable_reltool = religious_tool
+ var/mob/living/carbon/human/rite_target
+ if(!length(movable_reltool.buckled_mobs))
+ rite_target = user
+ else
+ for(var/buckled in movable_reltool.buckled_mobs)
+ if(ishuman(buckled))
+ rite_target = buckled
+ break
+ if(!rite_target)
+ chosen_implant = null
+ return FALSE
+ chosen_implant.Insert(rite_target)
+ rite_target.visible_message("[chosen_implant] has been merged into [rite_target] by the rite of [name]!")
+ chosen_implant = null
+ return TRUE
diff --git a/code/modules/research/designs/autolathe_designs.dm b/code/modules/research/designs/autolathe_designs.dm
index 303dda09e28f8..896eb2235dd57 100644
--- a/code/modules/research/designs/autolathe_designs.dm
+++ b/code/modules/research/designs/autolathe_designs.dm
@@ -1097,3 +1097,13 @@
materials = list(/datum/material/iron = 100, /datum/material/glass = 50)
build_path = /obj/item/assembly/control
category = list("initial","Misc")
+
+/datum/design/digital_clock_frame
+ name = "Digital Clock Frame"
+ id = "digital_clock_frame"
+ build_type = AUTOLATHE | PROTOLATHE
+ materials = list(/datum/material/iron = 700, /datum/material/glass = 400)
+ build_path = /obj/item/wallframe/digital_clock
+ category = list("initial", "Construction")
+ departmental_flags = DEPARTMENTAL_FLAG_ENGINEERING | DEPARTMENTAL_FLAG_SERVICE
+
diff --git a/code/modules/research/destructive_analyzer.dm b/code/modules/research/destructive_analyzer.dm
index d92700c454b96..e81c0f8ed5803 100644
--- a/code/modules/research/destructive_analyzer.dm
+++ b/code/modules/research/destructive_analyzer.dm
@@ -137,7 +137,7 @@ Note: Must be placed within 3 tiles of the R&D Console
var/user_mode_string = ""
if(length(point_value))
user_mode_string = " for [json_encode(point_value)] points"
- else if(loaded_item.custom_materials.len)
+ else if(length(loaded_item.custom_materials))
user_mode_string = " for material reclamation"
var/choice = input("Are you sure you want to destroy [loaded_item][user_mode_string]?") in list("Proceed", "Cancel")
if(choice != "Proceed")
diff --git a/code/modules/research/nanites/nanite_programs/suppression.dm b/code/modules/research/nanites/nanite_programs/suppression.dm
index c0fc41fa4db21..21e7cb7245dea 100644
--- a/code/modules/research/nanites/nanite_programs/suppression.dm
+++ b/code/modules/research/nanites/nanite_programs/suppression.dm
@@ -134,10 +134,6 @@
trigger_cost = 3
trigger_cooldown = 20
rogue_types = list(/datum/nanite_program/brain_misfire, /datum/nanite_program/brain_decay)
- var/static/list/blacklist = list(
- "*surrender",
- "*collapse"
- )
/datum/nanite_program/comm/speech/register_extra_settings()
. = ..()
@@ -155,8 +151,6 @@
if(!comm_message)
var/datum/nanite_extra_setting/sentence = extra_settings[NES_SENTENCE]
sent_message = sentence.get_value()
- if(sent_message in blacklist)
- return
to_chat(host_mob, "You feel compelled to speak...")
host_mob.say(sent_message, forced = "nanite speech")
diff --git a/code/modules/research/stock_parts.dm b/code/modules/research/stock_parts.dm
index e16979c4ced27..d3d0d4224b9a5 100644
--- a/code/modules/research/stock_parts.dm
+++ b/code/modules/research/stock_parts.dm
@@ -31,7 +31,7 @@ If you create T5+ please take a pass at gene_modder.dm [L40]. Max_values MUST fi
if(works_from_distance)
user.Beam(attacked_machinery, icon_state = "rped_upgrade", time = 5)
attacked_machinery.exchange_parts(user, src)
- return FALSE
+ return TRUE
var/obj/structure/frame/machine/attacked_frame = attacked_object
diff --git a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm
index 1274132407b04..d348f5b29ed57 100644
--- a/code/modules/research/xenobiology/crossbreeding/_status_effects.dm
+++ b/code/modules/research/xenobiology/crossbreeding/_status_effects.dm
@@ -220,6 +220,9 @@
owner.adjustFireLoss(1)
owner.Jitter(3)
owner.adjust_bodytemperature(-10)
+ if(ishuman(owner))
+ var/mob/living/carbon/human/humi = owner
+ humi.adjust_coretemperature(-10)
/datum/status_effect/bonechill/on_remove()
owner.remove_movespeed_modifier(/datum/movespeed_modifier/status_effect/bonechill)
@@ -478,7 +481,10 @@
/datum/status_effect/stabilized/orange/tick()
var/body_temperature_difference = owner.get_body_temp_normal(apply_change=FALSE) - owner.bodytemperature
- owner.adjust_bodytemperature(min(5,body_temperature_difference))
+ owner.adjust_bodytemperature(min(5, body_temperature_difference))
+ if(ishuman(owner))
+ var/mob/living/carbon/human/humi = owner
+ humi.adjust_coretemperature(min(5, humi.get_body_temp_normal(apply_change=FALSE) - humi.coretemperature))
return ..()
/datum/status_effect/stabilized/purple
diff --git a/code/modules/spells/spell_types/construct_spells.dm b/code/modules/spells/spell_types/construct_spells.dm
index 76f1bb748128c..7a0247f5b6e9c 100644
--- a/code/modules/spells/spell_types/construct_spells.dm
+++ b/code/modules/spells/spell_types/construct_spells.dm
@@ -245,6 +245,9 @@
user.playsound_local(get_turf(user), 'sound/effects/ghost2.ogg', 50, 1)
target.become_blind(MAGIC_BLIND)
addtimer(CALLBACK(src, PROC_REF(cure_blindness), target), 40)
+ if(ishuman(targets[1]))
+ var/mob/living/carbon/human/humi = targets[1]
+ humi.adjust_coretemperature(-200)
target.adjust_bodytemperature(-200)
/obj/effect/proc_holder/spell/targeted/abyssal_gaze/proc/cure_blindness(mob/living/L)
diff --git a/html/changelog.html b/html/changelog.html
index 64a3b8b26d381..cce76aba099ee 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -56,6 +56,54 @@
-->
+
08 May 2024
+
DrDuckedGoose updated:
+
+ - Fix emissives on players
+ - Add filter compatibility to emissives
+
+
EvilDragonfiend updated:
+
+ - Improved textification of the language icon rendering in TGUI.
+ - cleaned up religion code into multiple dm files
+ - Refactored weather code and fixed weather bad rendering issue.
+ - Void Heretic no longer shows void weather where they don't stand on.
+
+
PowerfulBacon updated:
+
+ - Fixes 515 compilation issue regarding species cold temperature
+
+
XeonMations updated:
+
+ - Fixed blood cultists being able to place structures on survival pods
+
+
rkz, coiax updated:
+
+ - Refactors step_action to save us from a few thousand useless proccalls per shift
+
+
rkz, nightred, lemoninthedark updated:
+
+ - refactored temperature stabilization in humans. Split human temperature into core temperature, which is affected by fevers & shivering symptoms and represents the overall temperature range, and Body Temperature which is what is directly affected by environmental factors and projectiles.
+ - All species will now receive temperature HUD alerts before receiving damage.
+ - recalculates burn damage based on overall temperature
+
+
+
07 May 2024
+
EvilDragonfiend updated:
+
+
Hardly updated:
+
+ - Adds an universal enzyme to the lavaland beach biodome, allowing beach bums to make stuff like bread and tofu
+ - Adds a griddle to the lavaland beach biodome, allowing beach bums to cook again
+
+
rkz, haukeschuemann, Rohesie, Timberpoes, zxaber updated:
+
+ - Standardized the entire attack_chain and added stack_traces to detect when & where it fails.
+ - minor buff to telekinesis to use most interact() code. Unlikely to cause major change, just reducing duplicate code where TK would have its own proc for essentially doing the exact same thing
+
+
04 May 2024
XeonMations updated:
@@ -574,125 +622,6 @@ contributors updated:
- removes a lightswitch on fland
-
- 07 March 2024
- @BriggsIDP @DrDuckedGoose @HowToLoLu updated:
-
- - added a new subtype of the holodeck, a smaller 7x7 holodeck
- - 4 new shuttles: cargo_tiny, mining_tiny, arrival_tiny and evac_tiny
- - Edited bimo gen for surface fauna gen
- - lighting fixes for dynamic lighting thanks to dakae!
- - fixed some zlevel rendering issues
- - tweaked the mapGenerator files biome gen; pixel shifting placed objs
- - various turfs for planetary use
- - pool water code to beach/water, you have to climb in it!
- - made tesla quieter
-
- MarkusLarsson421 updated:
-
- - Added a map sign for Echo Station able to display any of the four floors for mappers to guide players.
-
- MatiAvanti updated:
-
- - Replace "Red Dead Redemption Two" and "Yanye Kest" with "Bonkers" and "John Nanotrasen"
-
-
- 06 March 2024
- Aramix updated:
-
- - Admins can now use View Variable's Add Component/Element again (adminbus potential)
-
- EvilDragonfiend updated:
-
- - Revived 'get_recipes()' proc
- - Base materials now correctly show a dupe version of a craftable object. Currently only a chair is available, and only certain materials like Iron, Plasma sheet, Bananium sheet, etc have this.
- - fixed some materials are not matched to each other
-
- ToasterBan updated:
-
- - adding a beaker to a medbot is now logged
- - The "Flow Hair" hairstyle, which was identical to "Short Hair 4"
-
-
- 05 March 2024
- rkz, Mothblocks, ArcaneDefence updated:
-
- - moths can eat clothes again (perhaps to the dismay of a few)
-
-
- 04 March 2024
- EvilDragonfiend updated:
-
- - Fixed telekinesis mutation throwing runtime when a holder touches an airlock.
- - Telekinesis effect will be shown on an airlock whenever it's telekinetically interacted
-
- Tsar-Salat updated:
-
- - fixes bug with cyborg glass stacks when crafting or using on tableframes
-
-
- 03 March 2024
- HowToLoLu updated:
-
- - Removed an offensive word from the list of phobia trigger words.
-
- RKz, ShizCalev updated:
-
- - Converted everything to use setAnchored() as opposed to setting the anchored var directly. This means that COMSIG_MOVABLE_SETANCHORED can now actually be used reliably to track if an object's anchored var has changed.
- - The refactor also means that varediting the anchored var will now properly update most items' other states that rely on it being set a certain way.
- - Fixed bookcases having the incorrect icon when they're unanchored.
- - Fixed bookcases not automatically picking up spellbooks / storage books when made/spawned.
- - Fixed bookcases not dropping spellbooks / storage books when deconstructed.
-
- ToasterBan updated:
-
- - You can now name a constructed medbot using a pen on it
- - Chemist PDA job disks now also contain robot management
- - Medbot UI now tells you the name of the beaker/chembag that is inserted in it
- - Medbots need to be unlocked to have their beaker/chembag removed
-
- Tsar-Salat updated:
-
- - Full conversion to the new food typepath
- - fixes all instances of machines checking for the old path instead of the new food path, incl. vendors & microwaves
- - converts misc.dm to use protein values
- - converts snacks_vend.dm to use protein values
-
- rkz, Mickyan, Donkie, willox, Timberpoes, Kush1Push1, AnturK updated:
-
- - bloody footprints no longer spawn with incorrect steps and don't break when rotated on shuttles
- - Blood dripping frequency now scales with blood loss
- - Fixed blood decals occasionally containing more blood than they should
- - Footprints and bloody shoes major update. Hardsuits and bare feet can now get bloody as well. Improved blood spreading behaviour.
- - Shoes will no longer get bloody while wearing something that covers them.
- - Blood splatters only make your shoes or feet bloody if the tile is bloody enough,
- - Light steps trait prevents clothing from being covered in blood if you step on a bloody tile with your shoes off.
- - Blood dries over time. Usually, 3 or 6 minutes. If a splatter is big enough, it can stay wet up to 15 minutes.
- - The detective's scanner should now always properly output the correct data for scans and should no longer print out blank entries erroneously.
-
- rkz, Seris02, ExcessiveUseOfCobblestone updated:
-
- - Dehardcodes milkable component reagent
- - Snakes can now be milked for venom. They don't seem to mind.
- - fixed bad qdels with milkable component
- - converted VV component list input to TGUI
-
- rkz, mickyan updated:
-
- - randomized pixel shifting when throwing items
-
- zeskorion updated:
-
- - removes the virologist role. this is config based.
- - Removes most means to customize viruses This is config based. Currently, you can remove up to 2 symptoms from a disease, neuter symptoms, and mix viruses. Symptom removal is not random, with each symptom being removed based on a value given at roundstart.
- - dermagraphic ovulogenesis symptom
- - while virus customization is disabled, virus sample crates instead ship 5 isolated utility symptoms
- - re-adds viro zombies. They're now weaker, and only spread their diseases, instead of spreading the tumor itself.
- - adds a new chemical reaction, which allows you to remove faltered, immutable, dormant, and carrier status from viruses
- - random viruses made through events should be more impactful now
- - some symptom thresholds should be far easier to reach. config controlled.
- - toxoplasmosis sapiens is now level 0, and can *technically* appear, but, like all level 0 symptoms, will practically never appear, and will be even less likely to have any significant effect. However, the owo speak effect has been substantially toned down, and should now only impede the speech of certain letters and induce random cat noises, rather than replacing words arbitrarily.
-
GoonStation 13 Development Team
diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml
index 0a4976924366b..50dd9923c5659 100644
--- a/html/changelogs/.all_changelog.yml
+++ b/html/changelogs/.all_changelog.yml
@@ -43110,3 +43110,40 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
- bugfix: bad food references
- bugfix: deathgasping should work more consistently
- bugfix: wiki manuals for chef and bartender should function now
+2024-05-07:
+ EvilDragonfiend:
+ - bugfix: fixed some nulls
+ Hardly:
+ - rscadd: Adds an universal enzyme to the lavaland beach biodome, allowing beach
+ bums to make stuff like bread and tofu
+ - bugfix: Adds a griddle to the lavaland beach biodome, allowing beach bums to cook
+ again
+ rkz, haukeschuemann, Rohesie, Timberpoes, zxaber:
+ - refactor: Standardized the entire attack_chain and added stack_traces to detect
+ when & where it fails.
+ - balance: minor buff to telekinesis to use most interact() code. Unlikely to cause
+ major change, just reducing duplicate code where TK would have its own proc
+ for essentially doing the exact same thing
+2024-05-08:
+ DrDuckedGoose:
+ - bugfix: Fix emissives on players
+ - tweak: Add filter compatibility to emissives
+ EvilDragonfiend:
+ - code_imp: Improved textification of the language icon rendering in TGUI.
+ - code_imp: cleaned up religion code into multiple dm files
+ - code_imp: Refactored weather code and fixed weather bad rendering issue.
+ - bugfix: Void Heretic no longer shows void weather where they don't stand on.
+ PowerfulBacon:
+ - bugfix: Fixes 515 compilation issue regarding species cold temperature
+ XeonMations:
+ - bugfix: Fixed blood cultists being able to place structures on survival pods
+ rkz, coiax:
+ - refactor: Refactors step_action to save us from a few thousand useless proccalls
+ per shift
+ rkz, nightred, lemoninthedark:
+ - refactor: refactored temperature stabilization in humans. Split human temperature
+ into core temperature, which is affected by fevers & shivering symptoms and
+ represents the overall temperature range, and Body Temperature which is what
+ is directly affected by environmental factors and projectiles.
+ - rscadd: All species will now receive temperature HUD alerts before receiving damage.
+ - balance: recalculates burn damage based on overall temperature
diff --git a/icons/obj/digital_clock.dmi b/icons/obj/digital_clock.dmi
new file mode 100644
index 0000000000000..39a9ed16a7ca1
Binary files /dev/null and b/icons/obj/digital_clock.dmi differ
diff --git a/icons/obj/wallframe.dmi b/icons/obj/wallframe.dmi
index 1f5072c19f274..efb7abb4fa8ae 100644
Binary files a/icons/obj/wallframe.dmi and b/icons/obj/wallframe.dmi differ
diff --git a/sound/machines/westminister_chimes.ogg b/sound/machines/westminister_chimes.ogg
new file mode 100644
index 0000000000000..071b008614649
Binary files /dev/null and b/sound/machines/westminister_chimes.ogg differ
diff --git a/tgui/packages/tgui-panel/styles/goon/chat-dark.scss b/tgui/packages/tgui-panel/styles/goon/chat-dark.scss
index f31a16878b8e3..7f0900ee516e1 100644
--- a/tgui/packages/tgui-panel/styles/goon/chat-dark.scss
+++ b/tgui/packages/tgui-panel/styles/goon/chat-dark.scss
@@ -1391,3 +1391,7 @@ em {
.stat_br {
color: #2ace53;
}
+
+.mood_neutral {
+ color: #99aac0;
+}
diff --git a/tgui/packages/tgui-panel/styles/goon/chat-light.scss b/tgui/packages/tgui-panel/styles/goon/chat-light.scss
index 52900f43b4ac1..44e3ea8702b07 100644
--- a/tgui/packages/tgui-panel/styles/goon/chat-light.scss
+++ b/tgui/packages/tgui-panel/styles/goon/chat-light.scss
@@ -1396,3 +1396,7 @@ h2.alert {
.stat_br {
color: #2ace53;
}
+
+.mood_neutral {
+ color: #34383d;
+}