diff --git a/_maps/RandomZLevels/away_mission/SnowCabin.dmm b/_maps/RandomZLevels/away_mission/SnowCabin.dmm
index dda382c4b7..e7f5341bea 100644
--- a/_maps/RandomZLevels/away_mission/SnowCabin.dmm
+++ b/_maps/RandomZLevels/away_mission/SnowCabin.dmm
@@ -4408,7 +4408,7 @@
/area/awaymission/cabin/caves)
"lr" = (
/obj/effect/decal/cleanable/blood/old,
-/obj/item/kitchen/knife/carrotshiv,
+/obj/item/kitchen/knife/shiv/carrot,
/obj/effect/decal/cleanable/glitter/blue{
desc = "It looks like fancy glitter to me.";
name = "icy wind"
diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm
index cf15bd05e1..26253018ff 100644
--- a/_maps/map_files/BoxStation/BoxStation.dmm
+++ b/_maps/map_files/BoxStation/BoxStation.dmm
@@ -68,118 +68,109 @@
"aai" = (
/turf/closed/wall/r_wall,
/area/security/prison)
-"aaj" = (
-/obj/structure/cable{
- icon_state = "1-4"
+"aam" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 8
},
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
},
/turf/open/floor/plasteel,
-/area/security/prison)
-"aam" = (
-/obj/structure/cable{
- icon_state = "0-2"
- },
-/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
-/area/security/prison)
+/area/security/prison/upper)
"aan" = (
-/obj/machinery/hydroponics/soil,
-/obj/item/seeds/ambrosia,
-/obj/machinery/newscaster{
- pixel_y = 32
- },
-/turf/open/floor/grass,
-/area/security/prison)
-"aao" = (
-/obj/machinery/hydroponics/soil,
-/obj/item/plant_analyzer,
-/obj/structure/sign/warning/electricshock{
- pixel_y = 32
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/grass,
-/area/security/prison)
-"aap" = (
-/obj/machinery/hydroponics/soil,
-/obj/item/seeds/carrot,
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/turf/open/floor/grass,
-/area/security/prison)
-"aaq" = (
-/obj/machinery/camera{
- c_tag = "Prison Common Room";
- network = list("ss13","prison")
+/obj/structure/closet/crate/bin,
+/obj/effect/spawner/lootdrop/prison_contraband,
+/obj/item/trash/sosjerky,
+/obj/item/trash/boritos,
+/obj/item/trash/can,
+/obj/effect/turf_decal/tile/green{
+ dir = 8
},
+/obj/effect/turf_decal/tile/green,
/obj/effect/turf_decal/tile/green{
dir = 1
},
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
+"aao" = (
/obj/effect/turf_decal/tile/green,
/obj/effect/turf_decal/tile/green{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
+"aap" = (
/obj/effect/turf_decal/tile/green{
dir = 8
},
-/obj/structure/sink{
- pixel_y = 20
- },
-/obj/structure/cable{
- icon_state = "4-8"
+/obj/effect/turf_decal/tile/green{
+ dir = 1
},
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plasteel,
-/area/security/prison)
-"aar" = (
-/obj/machinery/hydroponics/soil,
-/obj/item/seeds/glowshroom,
-/obj/structure/cable{
- icon_state = "1-4"
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/grass,
-/area/security/prison)
-"aas" = (
-/obj/structure/sign/warning/electricshock{
- pixel_y = 32
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/turf/open/floor/plasteel,
-/area/security/prison)
+/area/security/prison/upper)
"aat" = (
-/turf/open/floor/plasteel,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
/area/security/prison)
"aau" = (
-/obj/machinery/biogenerator,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
/turf/open/floor/plasteel,
-/area/security/prison)
+/area/security/prison/upper)
"aav" = (
/obj/structure/cable{
icon_state = "1-2"
},
/turf/open/floor/plasteel,
/area/security/prison)
-"aaw" = (
-/obj/machinery/light{
+"aax" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
+"aay" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
dir = 8
},
-/turf/open/floor/grass,
-/area/security/prison)
-"aax" = (
-/mob/living/simple_animal/mouse/brown/Tom,
-/turf/open/floor/grass,
-/area/security/prison)
-"aay" = (
-/turf/open/floor/plating,
-/area/security/prison)
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/cells)
"aaz" = (
/obj/machinery/disposal/bin,
/obj/structure/sign/plaques/deempisi{
@@ -207,29 +198,106 @@
/turf/open/floor/plasteel,
/area/service/bar)
"aaA" = (
-/obj/machinery/seed_extractor,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
/turf/open/floor/plasteel,
-/area/security/prison)
-"aaB" = (
-/obj/structure/window/reinforced,
-/obj/machinery/hydroponics/soil,
-/obj/item/seeds/potato,
-/turf/open/floor/grass,
-/area/security/prison)
+/area/security/prison/upper)
"aaC" = (
-/obj/machinery/hydroponics/soil,
-/obj/structure/window/reinforced,
-/obj/item/seeds/tower,
-/turf/open/floor/grass,
-/area/security/prison)
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/obj/machinery/holopad,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"aaD" = (
-/obj/structure/window/reinforced,
-/obj/machinery/hydroponics/soil,
-/obj/item/seeds/grass,
-/turf/open/floor/grass,
-/area/security/prison)
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/machinery/light{
+ dir = 8;
+ light_color = "#e8eaff"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"aaE" = (
+/obj/machinery/door/airlock/public/glass{
+ name = "Prison Cafeteria"
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"aaF" = (
/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
+"aaG" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/security/prison/upper)
+"aaH" = (
+/turf/open/floor/plating/airless,
+/area/space/nearstation)
+"aaI" = (
+/obj/machinery/washing_machine,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/security/prison/upper)
+"aaK" = (
/obj/effect/turf_decal/tile/green{
dir = 4
},
@@ -239,40 +307,12 @@
/obj/effect/turf_decal/tile/green{
dir = 1
},
-/turf/open/floor/plasteel,
-/area/security/prison)
-"aaF" = (
-/obj/structure/window/reinforced,
-/obj/machinery/hydroponics/soil,
-/obj/item/cultivator,
-/turf/open/floor/grass,
-/area/security/prison)
-"aaG" = (
-/obj/machinery/light{
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
-/obj/machinery/vr_sleeper{
- dir = 8
- },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
-/area/security/prison)
-"aaH" = (
-/turf/open/floor/plating/airless,
-/area/space/nearstation)
-"aaI" = (
-/obj/structure/bookcase,
-/turf/open/floor/plasteel,
-/area/security/prison)
-"aaJ" = (
-/obj/structure/chair/stool,
-/turf/open/floor/plasteel,
-/area/security/prison)
-"aaK" = (
-/obj/machinery/computer/arcade/battle{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/security/prison)
+/area/security/prison/upper)
"aaL" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/door/poddoor/preopen{
@@ -300,9 +340,9 @@
/turf/open/floor/plating,
/area/command/heads_quarters/hos)
"aaN" = (
-/obj/structure/chair/sofa/right,
-/turf/open/floor/plasteel,
-/area/security/prison)
+/obj/effect/spawner/structure/window/reinforced,
+/turf/open/floor/plating,
+/area/security/prison/upper)
"aaO" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/door/poddoor/preopen{
@@ -314,25 +354,17 @@
/turf/open/floor/plating,
/area/command/heads_quarters/hos)
"aaP" = (
-/obj/machinery/computer/cryopod{
- dir = 8;
- pixel_x = 26
- },
-/obj/machinery/cryopod{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/security/prison)
+/obj/structure/table,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/cafeteria,
+/area/security/prison/upper)
"aaQ" = (
/turf/closed/wall,
/area/security/warden)
"aaR" = (
-/obj/structure/lattice,
-/obj/structure/sign/warning/securearea{
- pixel_y = -32
- },
-/turf/open/space,
-/area/space/nearstation)
+/obj/structure/table/reinforced,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"aaS" = (
/obj/structure/grille,
/obj/structure/lattice,
@@ -344,31 +376,38 @@
/turf/open/space,
/area/space/nearstation)
"aaU" = (
-/obj/machinery/computer/arcade/orion_trail{
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
dir = 4
},
-/turf/open/floor/plasteel,
-/area/security/prison)
-"aaV" = (
-/obj/structure/table/wood,
-/obj/item/storage/dice,
-/turf/open/floor/plasteel,
-/area/security/prison)
-"aaW" = (
-/obj/effect/landmark/event_spawn,
-/obj/structure/chair/comfy/brown{
- color = "#596479";
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/security/prison)
-"aaX" = (
-/obj/structure/window/reinforced,
-/obj/machinery/cryopod{
+/obj/effect/turf_decal/tile/neutral{
dir = 8
},
-/turf/open/floor/plasteel,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/door/airlock/security/glass{
+ id_tag = "permaouter";
+ name = "Permabrig Transfer";
+ req_access_txt = "2"
+ },
+/turf/open/floor/plasteel/dark,
/area/security/prison)
+"aaV" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/turf/closed/wall,
+/area/security/prison/upper)
+"aaW" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/security/prison/upper)
"aaY" = (
/obj/effect/turf_decal/bot,
/obj/structure/closet/crate/secure/weapon{
@@ -408,11 +447,21 @@
/turf/open/space,
/area/space/nearstation)
"abb" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 6
+/obj/effect/turf_decal/tile/red{
+ dir = 4
},
-/turf/closed/wall,
-/area/security/execution/transfer)
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/cells)
"abc" = (
/turf/closed/wall,
/area/security/execution/transfer)
@@ -429,31 +478,89 @@
/turf/closed/wall,
/area/security/execution/transfer)
"abf" = (
-/obj/machinery/vending/sustenance,
-/turf/open/floor/plasteel,
-/area/security/prison)
-"abg" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 10
+/obj/machinery/door/airlock/security/glass{
+ name = "Prison Laundry"
},
-/turf/closed/wall,
-/area/security/execution/transfer)
-"abh" = (
-/obj/machinery/holopad,
-/turf/open/floor/plasteel,
-/area/security/prison)
-"abi" = (
-/obj/machinery/shower{
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
dir = 8
},
-/obj/item/soap/nanotrasen,
-/turf/open/floor/plasteel/freezer,
-/area/security/prison)
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"abg" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/security/glass{
+ name = "Cell Block"
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"abh" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/machinery/light,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
+"abi" = (
+/obj/machinery/button/flasher{
+ id = "visitorflash";
+ pixel_x = -6;
+ pixel_y = 24
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/machinery/button/door{
+ id = "visitation";
+ name = "Visitation Shutters";
+ pixel_x = -6;
+ pixel_y = 36;
+ req_access_txt = "2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
"abj" = (
-/obj/structure/bedsheetbin/color,
-/obj/structure/table,
-/turf/open/floor/plasteel/freezer,
-/area/security/prison)
+/obj/structure/chair/office{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
"abk" = (
/obj/effect/turf_decal/tile/red,
/obj/effect/turf_decal/tile/red{
@@ -504,14 +611,17 @@
/turf/open/floor/plasteel/airless/solarpanel,
/area/solars/port/fore)
"abt" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 1
+/obj/effect/turf_decal/tile/red{
+ dir = 8
},
-/obj/effect/turf_decal/stripes/line{
- dir = 9
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/light,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/turf/open/floor/plasteel/dark,
-/area/security/execution/transfer)
+/turf/open/floor/plasteel,
+/area/security/prison/cells)
"abu" = (
/obj/machinery/door/poddoor{
id = "executionspaceblast"
@@ -519,27 +629,23 @@
/turf/open/floor/plating,
/area/security/execution/transfer)
"abv" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 1
+/obj/machinery/camera{
+ c_tag = "Prison Cell Block East";
+ dir = 8;
+ network = list("ss13","prison")
},
-/obj/effect/turf_decal/stripes/line{
- dir = 5
+/obj/effect/turf_decal/tile/red{
+ dir = 8
},
-/turf/open/floor/plasteel/dark,
-/area/security/execution/transfer)
-"abw" = (
-/obj/machinery/light/small{
- dir = 1
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
},
-/obj/machinery/flasher{
- id = "executionflash";
- pixel_y = 25
+/obj/structure/cable{
+ icon_state = "1-8"
},
-/obj/effect/turf_decal/stripes/line{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/security/execution/transfer)
+/turf/open/floor/plasteel,
+/area/security/prison/cells)
"abx" = (
/obj/machinery/camera/motion{
c_tag = "Armory External Motion Sensor";
@@ -548,10 +654,6 @@
/obj/structure/lattice/catwalk,
/turf/open/space/basic,
/area/ai_monitored/security/armory)
-"aby" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/closed/wall/r_wall,
-/area/security/execution/transfer)
"abz" = (
/obj/machinery/light/small{
dir = 4;
@@ -560,43 +662,30 @@
/turf/open/floor/engine,
/area/science/xenobiology)
"abA" = (
-/obj/machinery/light,
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 4
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "2-4"
},
-/turf/open/floor/plasteel,
-/area/security/prison)
-"abB" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 10
+/obj/structure/cable{
+ icon_state = "0-2"
},
-/turf/open/floor/plasteel,
-/area/security/prison)
-"abC" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/security/prison)
-"abD" = (
-/obj/machinery/light,
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
- dir = 4
- },
-/turf/open/floor/plasteel,
+/turf/open/floor/plating,
/area/security/prison)
"abE" = (
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/structure/chair/stool,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 10
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
},
/turf/open/floor/plasteel,
-/area/security/prison)
+/area/security/prison/upper)
"abF" = (
-/turf/open/floor/plasteel/freezer,
-/area/security/prison)
+/obj/structure/table,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
"abG" = (
/obj/structure/lattice/catwalk,
/turf/open/space/basic,
@@ -633,43 +722,33 @@
/turf/open/floor/plasteel/dark,
/area/security/office)
"abK" = (
-/obj/structure/chair/stool,
-/obj/machinery/light/small{
+/obj/structure/window/reinforced{
+ dir = 8
+ },
+/obj/structure/chair{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
dir = 1
},
-/obj/machinery/button/door{
- id = "permabolt3";
- name = "Cell Bolt Control";
- normaldoorcontrol = 1;
- pixel_y = 25;
- specialfunctions = 4
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
-/turf/open/floor/plasteel,
+/turf/open/floor/plasteel/dark,
/area/security/prison)
"abL" = (
/obj/structure/chair/stool,
-/obj/machinery/light/small{
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
dir = 1
},
-/obj/machinery/button/door{
- id = "permabolt2";
- name = "Cell Bolt Control";
- normaldoorcontrol = 1;
- pixel_y = 25;
- specialfunctions = 4
- },
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 8
- },
/turf/open/floor/plasteel,
-/area/security/prison)
-"abM" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/security/prison)
+/area/security/prison/upper)
"abN" = (
/obj/effect/landmark/secequipment,
/obj/effect/turf_decal/tile/red{
@@ -731,7 +810,7 @@
},
/obj/machinery/firealarm{
dir = 4;
- pixel_x = -26
+ pixel_x = -24
},
/turf/open/floor/plasteel/showroomfloor,
/area/security/office)
@@ -788,52 +867,46 @@
/turf/closed/wall,
/area/security/prison)
"ace" = (
-/obj/machinery/door/poddoor/preopen{
- id = "permacell3";
- name = "cell blast door"
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
},
-/obj/machinery/door/airlock/public/glass{
- id_tag = "permabolt3";
- name = "Cell 3"
+/obj/structure/cable{
+ icon_state = "4-8"
},
-/obj/effect/mapping_helpers/airlock/cyclelink_helper,
-/turf/open/floor/plasteel,
-/area/security/prison)
-"acf" = (
-/obj/machinery/door/poddoor/preopen{
- id = "permacell2";
- name = "cell blast door"
- },
-/obj/machinery/door/airlock/public/glass{
- id_tag = "permabolt2";
- name = "Cell 2"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/effect/mapping_helpers/airlock/cyclelink_helper,
-/turf/open/floor/plasteel,
+/turf/open/floor/plasteel/dark,
/area/security/prison)
"acg" = (
+/obj/machinery/door/poddoor/shutters{
+ id = "visitation";
+ name = "Visitation Shutters"
+ },
+/obj/machinery/door/window/southleft,
+/obj/structure/table/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"ach" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/machinery/door/poddoor/preopen{
- id = "permacell1";
- name = "cell blast door"
+/obj/machinery/camera{
+ c_tag = "Prison Visitation";
+ dir = 8;
+ network = list("ss13","prison")
},
-/obj/machinery/door/airlock/public/glass{
- id_tag = "permabolt1";
- name = "Cell 1"
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/effect/mapping_helpers/airlock/cyclelink_helper,
-/turf/open/floor/plasteel,
-/area/security/prison)
-"ach" = (
-/obj/machinery/door/airlock{
- name = "Unisex Restroom"
- },
-/turf/open/floor/plasteel/freezer,
-/area/security/prison)
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
"aci" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on,
/obj/structure/cable{
@@ -949,10 +1022,12 @@
/turf/open/floor/plasteel/dark,
/area/ai_monitored/security/armory)
"acp" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
/obj/structure/cable{
icon_state = "4-8"
},
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
/obj/structure/cable{
icon_state = "2-4"
},
@@ -1038,66 +1113,59 @@
/obj/item/stack/cable_coil/random,
/turf/open/space,
/area/space/nearstation)
-"acz" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on,
-/obj/effect/turf_decal/stripes/line{
- dir = 10
- },
-/turf/open/floor/plasteel/dark,
-/area/security/execution/transfer)
"acA" = (
-/obj/machinery/atmospherics/components/unary/outlet_injector/on,
-/obj/effect/turf_decal/stripes/line{
- dir = 6
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
},
-/turf/open/floor/plasteel/dark,
-/area/security/execution/transfer)
-"acB" = (
-/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/plasteel/dark,
-/area/security/execution/transfer)
-"acC" = (
-/obj/structure/bed,
-/obj/machinery/camera{
- c_tag = "Prison Cell 3";
- network = list("ss13","prison")
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
},
-/obj/item/radio/intercom{
- desc = "Talk through this. It looks like it has been modified to not broadcast.";
- name = "Prison Intercom (General)";
- pixel_y = 24;
- prison_radio = 1
- },
-/turf/open/floor/plasteel,
-/area/security/prison)
-"acD" = (
-/obj/structure/chair/stool,
-/obj/machinery/light/small{
+/obj/effect/turf_decal/tile/neutral{
dir = 1
},
-/obj/machinery/button/door{
- id = "permabolt1";
- name = "Cell Bolt Control";
- normaldoorcontrol = 1;
- pixel_y = 25;
- specialfunctions = 4
+/obj/effect/landmark/start/prisoner,
+/obj/machinery/light/small{
+ dir = 1;
+ light_color = "#ffc1c1"
},
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
-/turf/open/floor/plasteel,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"acC" = (
+/obj/machinery/light{
+ dir = 8;
+ light_color = "#e8eaff"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
/area/security/prison)
+"acD" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "Prison Gate";
+ name = "prison blast door"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/security/prison/upper)
"acE" = (
-/obj/structure/bed,
-/obj/machinery/camera{
- c_tag = "Prison Cell 2";
- network = list("ss13","prison")
+/obj/structure/chair{
+ dir = 8
},
-/obj/item/radio/intercom{
- desc = "Talk through this. It looks like it has been modified to not broadcast.";
- name = "Prison Intercom (General)";
- pixel_y = 24;
- prison_radio = 1
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#c1caff"
},
-/turf/open/floor/plasteel,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/turf/open/floor/plasteel/dark,
/area/security/prison)
"acF" = (
/obj/machinery/light_switch{
@@ -1110,37 +1178,25 @@
/turf/open/floor/plasteel/dark,
/area/command/heads_quarters/hos)
"acG" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/plasteel,
-/area/security/prison)
+/turf/closed/wall,
+/area/security/prison/upper)
"acH" = (
-/obj/structure/bed,
-/obj/machinery/camera{
- c_tag = "Prison Cell 1";
- network = list("ss13","prison")
+/obj/structure/window/reinforced/tinted{
+ dir = 8
},
-/obj/item/radio/intercom{
- desc = "Talk through this. It looks like it has been modified to not broadcast.";
- name = "Prison Intercom (General)";
- pixel_y = 24;
- prison_radio = 1
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
},
-/turf/open/floor/plasteel,
-/area/security/prison)
-"acI" = (
-/obj/machinery/door/poddoor/preopen{
- id = "executionfireblast"
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
},
-/obj/machinery/atmospherics/pipe/simple/general/hidden,
-/obj/machinery/door/firedoor,
-/obj/machinery/door/window/westright{
- dir = 1;
- name = "Transfer Room";
- req_access_txt = "2"
- },
-/obj/effect/turf_decal/tile/neutral{
+/obj/effect/turf_decal/tile/blue{
dir = 1
},
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
+"acI" = (
+/obj/effect/spawner/lootdrop/prison_contraband,
/obj/effect/turf_decal/tile/neutral,
/obj/effect/turf_decal/tile/neutral{
dir = 4
@@ -1148,28 +1204,34 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/bed,
+/obj/item/bedsheet/red,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
/turf/open/floor/plasteel/dark,
-/area/security/execution/transfer)
+/area/security/prison/cells)
"acJ" = (
+/obj/structure/chair/stool,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
+"acK" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
-/area/security/prison)
-"acK" = (
-/obj/structure/mirror{
- pixel_x = 25
- },
-/obj/machinery/light/small{
- dir = 8
- },
-/obj/structure/sink{
- dir = 4;
- pixel_x = 11
- },
-/turf/open/floor/plasteel/freezer,
-/area/security/prison)
+/area/security/prison/upper)
"acL" = (
/obj/machinery/disposal/bin,
/obj/structure/disposalpipe/trunk,
@@ -1178,7 +1240,7 @@
},
/obj/machinery/firealarm{
dir = 8;
- pixel_x = 28
+ pixel_x = 24
},
/turf/open/floor/plasteel/dark,
/area/command/heads_quarters/hos)
@@ -1276,77 +1338,53 @@
},
/turf/open/floor/plasteel/airless/solarpanel,
/area/solars/port/fore)
-"acX" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/machinery/door/poddoor/preopen{
- id = "executionfireblast"
- },
-/obj/machinery/door/firedoor,
-/turf/open/floor/plating,
-/area/security/execution/transfer)
"acY" = (
-/obj/structure/table,
-/obj/item/paper,
-/obj/item/pen,
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/open/floor/plasteel,
-/area/security/prison)
-"acZ" = (
-/obj/effect/spawner/structure/window/reinforced,
-/obj/machinery/door/poddoor/preopen{
- id = "executionfireblast"
+/obj/structure/window/reinforced{
+ dir = 8
},
-/obj/machinery/door/firedoor,
-/turf/open/floor/plating,
-/area/security/execution/transfer)
+/obj/structure/table,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison)
"ada" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on,
-/obj/machinery/flasher{
- id = "PCell 3";
- pixel_x = -28
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
},
-/turf/open/floor/plasteel,
-/area/security/prison)
-"adb" = (
-/obj/structure/table,
-/obj/item/paper,
-/obj/item/pen,
-/turf/open/floor/plasteel,
-/area/security/prison)
-"adc" = (
-/obj/machinery/flasher{
- id = "PCell 1";
- pixel_x = -28
- },
-/obj/machinery/atmospherics/components/unary/vent_pump/on{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/security/prison)
-"add" = (
-/obj/machinery/atmospherics/components/unary/vent_pump/on,
-/obj/machinery/flasher{
- id = "PCell 2";
- pixel_x = -28
- },
-/turf/open/floor/plasteel,
-/area/security/prison)
-"ade" = (
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+/turf/open/floor/plasteel/dark,
+/area/security/prison)
+"adb" = (
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
+"adc" = (
+/obj/machinery/light,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
+"add" = (
+/obj/structure/table,
+/obj/effect/turf_decal/tile/red{
dir = 4
},
-/turf/open/floor/plasteel,
+/obj/effect/turf_decal/tile/red,
+/turf/open/floor/plasteel/dark,
/area/security/prison)
"adf" = (
-/obj/structure/toilet/secret/prison{
- dir = 1
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
},
-/turf/open/floor/plasteel/freezer,
-/area/security/prison)
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
"adg" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable{
@@ -1446,18 +1484,7 @@
/turf/open/floor/plasteel,
/area/security/prison)
"adp" = (
-/obj/structure/table,
/obj/effect/turf_decal/tile/red,
-/obj/item/radio/headset{
- desc = "An updated, modular intercom that fits over the head. Takes encryption keys. It looks like it has been modified to not broadcast.";
- name = "prisoner headset";
- prison_radio = 1
- },
-/obj/item/radio/headset{
- desc = "An updated, modular intercom that fits over the head. Takes encryption keys. It looks like it has been modified to not broadcast.";
- name = "prisoner headset";
- prison_radio = 1
- },
/turf/open/floor/plasteel,
/area/security/prison)
"adq" = (
@@ -1538,89 +1565,80 @@
},
/turf/open/floor/plasteel,
/area/security/office)
-"adC" = (
-/obj/structure/table,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/item/razor,
-/obj/item/toy/plush/borgplushie{
- desc = "A horrible abomination to God in plushie form. Legends say this is used to torture prisoners by repeatedly beating them in the head with it.. ..It feels sorta heavy.";
- force = 1;
- name = "dogborg plushie";
- throwforce = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/security/execution/transfer)
"adD" = (
-/obj/machinery/button/flasher{
- id = "executionflash";
- pixel_x = 24;
- pixel_y = 5
- },
-/obj/machinery/button/door{
- id = "executionspaceblast";
- name = "Vent to Space";
- pixel_x = 25;
- pixel_y = -5;
- req_access_txt = "7"
- },
-/obj/machinery/atmospherics/pipe/simple/general/hidden,
-/turf/open/floor/plasteel/dark,
-/area/security/execution/transfer)
-"adE" = (
-/obj/structure/table,
-/obj/item/folder/red{
- pixel_x = 3
- },
-/obj/item/taperecorder{
- pixel_x = -3
- },
-/obj/item/assembly/flash/handheld,
-/obj/item/reagent_containers/spray/pepper,
-/turf/open/floor/plasteel/dark,
-/area/security/execution/transfer)
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall,
+/area/security/prison/cells)
"adF" = (
+/obj/machinery/door/airlock/security/glass{
+ id_tag = "permaouter";
+ name = "Permabrig Transfer";
+ req_access_txt = "2"
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/turf/closed/wall,
-/area/security/prison)
-"adG" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/turf/closed/wall,
-/area/security/prison)
-"adH" = (
-/obj/machinery/door/airlock/security/glass{
- name = "Long-Term Cell 3";
- req_access_txt = "2"
- },
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 1
},
-/turf/open/floor/plasteel,
-/area/security/prison)
-"adI" = (
-/obj/machinery/door/airlock/security/glass{
- name = "Long-Term Cell 2";
- req_access_txt = "2"
- },
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
-/obj/effect/mapping_helpers/airlock/cyclelink_helper{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/security/prison)
-"adJ" = (
-/obj/machinery/door/airlock/security/glass{
- name = "Long-Term Cell 1";
- req_access_txt = "2"
- },
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/prison)
+"adH" = (
+/obj/machinery/door/airlock/security/glass{
+ id_tag = "permaouter";
+ name = "Permabrig Transfer";
+ req_access_txt = "2"
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 1
},
-/turf/open/floor/plasteel,
+/turf/open/floor/plasteel/dark,
/area/security/prison)
+"adI" = (
+/turf/closed/wall/r_wall,
+/area/security/prison/upper)
+"adJ" = (
+/obj/machinery/door/airlock/security/glass{
+ name = "Permabrig Visitation";
+ req_access_txt = "2"
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
"adK" = (
/obj/effect/turf_decal/tile/red{
dir = 4
@@ -1629,14 +1647,14 @@
/obj/structure/cable{
icon_state = "1-2"
},
-/obj/machinery/firealarm{
- dir = 4;
- pixel_x = -26
- },
/obj/machinery/camera{
c_tag = "Brig EVA Storage";
dir = 4
},
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
/turf/open/floor/plasteel/dark,
/area/security/brig)
"adL" = (
@@ -1796,56 +1814,35 @@
/obj/structure/lattice/catwalk,
/turf/open/space,
/area/solars/port/fore)
-"aea" = (
-/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
-/obj/machinery/atmospherics/components/unary/portables_connector/visible,
-/obj/effect/turf_decal/stripes/line{
- dir = 9
- },
-/turf/open/floor/plating,
-/area/security/execution/transfer)
"aeb" = (
/obj/structure/table,
-/obj/item/flashlight/lamp,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/turf/open/floor/plasteel/dark,
-/area/security/execution/transfer)
-"aec" = (
-/obj/structure/window/reinforced{
+/obj/item/storage/box/handcuffs{
+ pixel_y = 10
+ },
+/obj/item/storage/box/prisoner{
+ pixel_y = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
-/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
-/obj/machinery/atmospherics/components/unary/portables_connector/visible,
-/obj/effect/turf_decal/stripes/line{
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
dir = 1
},
-/turf/open/floor/plating,
-/area/security/execution/transfer)
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison)
"aed" = (
-/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
- dir = 4
- },
-/obj/machinery/button/ignition{
- id = "executionburn";
- pixel_x = 24;
- pixel_y = 5
- },
-/obj/machinery/button/door{
- id = "executionfireblast";
- name = "Transfer Area Lockdown";
- pixel_x = 25;
- pixel_y = -5;
- req_access_txt = "2"
- },
-/obj/machinery/atmospherics/pipe/simple/general/hidden,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/obj/machinery/computer/prisoner/management,
+/obj/effect/turf_decal/delivery,
/turf/open/floor/plasteel/dark,
-/area/security/execution/transfer)
-"aee" = (
-/obj/structure/chair{
- dir = 1
- },
-/turf/open/floor/plasteel/dark,
-/area/security/execution/transfer)
+/area/security/prison)
"aef" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
@@ -1857,76 +1854,71 @@
/obj/effect/turf_decal/tile/red{
dir = 8
},
-/obj/structure/table,
-/obj/item/restraints/handcuffs,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
/turf/open/floor/plasteel,
/area/security/prison)
"aeg" = (
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
-/turf/closed/wall/r_wall,
-/area/security/execution/transfer)
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison)
"aeh" = (
-/obj/machinery/button/door{
- id = "permacell3";
- name = "Cell 3 Lockdown";
- pixel_x = -4;
- pixel_y = 25;
- req_access_txt = "2"
- },
-/obj/machinery/button/flasher{
- id = "PCell 3";
- pixel_x = 6;
- pixel_y = 24
- },
-/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
/obj/effect/turf_decal/tile/red{
dir = 4
},
-/turf/open/floor/plasteel,
-/area/security/prison)
-"aei" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/turf/open/floor/plasteel,
-/area/security/prison)
-"aej" = (
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/supply/hidden,
-/obj/effect/turf_decal/tile/red{
- dir = 1
- },
-/turf/open/floor/plasteel,
-/area/security/prison)
-"aek" = (
-/obj/machinery/light{
- dir = 1
- },
-/obj/machinery/computer/security/telescreen/prison{
- pixel_y = 30
- },
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/machinery/light{
+ dir = 1
+ },
/obj/effect/turf_decal/tile/red{
dir = 1
},
+/turf/open/floor/plasteel,
+/area/security/prison)
+"aei" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/security/prison)
+"aej" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
/obj/effect/turf_decal/tile/red{
dir = 4
},
/turf/open/floor/plasteel,
/area/security/prison)
-"ael" = (
-/obj/machinery/button/door{
- id = "permacell2";
- name = "Cell 2 Lockdown";
- pixel_x = -4;
- pixel_y = 25;
- req_access_txt = "2"
+"aek" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
},
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"ael" = (
/obj/machinery/button/flasher{
id = "PCell 2";
pixel_x = 6;
@@ -1938,21 +1930,24 @@
/obj/effect/turf_decal/tile/red{
dir = 4
},
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
/turf/open/floor/plasteel,
/area/security/prison)
"aem" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/security/prison)
"aen" = (
-/obj/machinery/computer/security/telescreen/prison{
- pixel_y = 30
- },
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
},
/obj/machinery/camera{
- c_tag = "Prison Hallway";
+ c_tag = "Prison Hallway East";
network = list("ss13","prison")
},
/obj/effect/turf_decal/tile/red{
@@ -1986,37 +1981,26 @@
/turf/open/floor/plasteel,
/area/security/prison)
"aeq" = (
-/obj/machinery/button/door{
- id = "permacell1";
- name = "Cell 1 Lockdown";
- pixel_x = -4;
- pixel_y = 25;
- req_access_txt = "2"
- },
/obj/machinery/button/flasher{
id = "PCell 1";
pixel_x = 6;
pixel_y = 24
},
-/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,
/obj/effect/turf_decal/tile/red{
dir = 4
},
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
/turf/open/floor/plasteel,
/area/security/prison)
"aer" = (
-/obj/machinery/firealarm{
- pixel_y = 24
- },
/obj/machinery/power/apc{
areastring = "/area/security/prison";
dir = 4;
name = "Prison Wing APC";
pixel_x = 24
},
-/obj/structure/cable{
- icon_state = "0-8"
- },
/obj/effect/turf_decal/tile/red{
dir = 1
},
@@ -2024,6 +2008,13 @@
/obj/effect/turf_decal/tile/red{
dir = 4
},
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
/turf/open/floor/plasteel,
/area/security/prison)
"aes" = (
@@ -2216,72 +2207,15 @@
},
/turf/open/floor/plasteel/airless/solarpanel,
/area/solars/starboard/fore)
-"aeH" = (
-/obj/machinery/atmospherics/pipe/manifold/general/visible{
- dir = 8
- },
-/obj/machinery/light/small{
- dir = 8
- },
-/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
-/obj/effect/turf_decal/stripes/line{
- dir = 8
- },
-/turf/open/floor/plating,
-/area/security/execution/transfer)
-"aeI" = (
-/obj/structure/rack,
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 5
- },
-/obj/item/flashlight{
- pixel_x = 1;
- pixel_y = 5
- },
-/obj/item/tank/internals/anesthetic{
- pixel_x = -3;
- pixel_y = 1
- },
-/obj/item/tank/internals/oxygen/red{
- pixel_x = 3
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 1
- },
-/obj/effect/turf_decal/tile/neutral,
-/obj/effect/turf_decal/tile/neutral{
- dir = 4
- },
-/obj/effect/turf_decal/tile/neutral{
- dir = 8
- },
-/turf/open/floor/plasteel/dark,
-/area/security/execution/transfer)
-"aeJ" = (
-/obj/structure/window/reinforced{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/general/visible{
- dir = 9
- },
-/turf/open/floor/plating,
-/area/security/execution/transfer)
-"aeK" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/obj/machinery/atmospherics/pipe/simple/general/hidden,
-/obj/structure/cable{
- icon_state = "2-4"
- },
-/turf/open/floor/plasteel/dark,
-/area/security/execution/transfer)
"aeL" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 1
},
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
/turf/open/floor/plasteel/dark,
-/area/security/execution/transfer)
+/area/security/prison)
"aeM" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
/obj/structure/cable{
@@ -2293,26 +2227,17 @@
/obj/effect/turf_decal/tile/red{
dir = 8
},
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
/obj/structure/cable{
- icon_state = "2-8"
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
},
/turf/open/floor/plasteel,
/area/security/prison)
-"aeN" = (
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 4
- },
-/obj/structure/cable{
- icon_state = "4-8"
- },
-/obj/machinery/door/firedoor,
-/obj/machinery/door/airlock/security{
- aiControlDisabled = 1;
- name = "Prisoner Transfer Centre";
- req_access_txt = "2"
- },
-/turf/open/floor/plasteel/dark,
-/area/security/execution/transfer)
"aeO" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -2332,22 +2257,24 @@
/obj/structure/cable{
icon_state = "2-4"
},
-/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
- dir = 10
- },
/obj/effect/turf_decal/tile/red{
dir = 1
},
/obj/effect/turf_decal/tile/red{
dir = 4
},
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/security/prison)
"aeQ" = (
-/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
/obj/structure/cable{
icon_state = "4-8"
},
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/security/prison)
"aeR" = (
@@ -2357,16 +2284,10 @@
/turf/open/floor/plating,
/area/hallway/secondary/exit)
"aeS" = (
-/obj/structure/closet/secure_closet/brig,
/obj/effect/turf_decal/tile/red,
/obj/effect/turf_decal/tile/red{
dir = 8
},
-/obj/item/radio/headset{
- desc = "An updated, modular intercom that fits over the head. Takes encryption keys. It looks like it has been modified to not broadcast.";
- name = "prisoner headset";
- prison_radio = 1
- },
/obj/structure/cable{
icon_state = "1-2"
},
@@ -2717,61 +2638,45 @@
/obj/effect/turf_decal/bot,
/turf/open/floor/plasteel/dark,
/area/command/heads_quarters/hos)
-"aft" = (
-/obj/machinery/atmospherics/pipe/simple/general/visible{
- dir = 5
- },
-/obj/effect/turf_decal/stripes/line{
- dir = 10
- },
-/turf/open/floor/plating,
-/area/security/execution/transfer)
"afu" = (
-/obj/effect/spawner/structure/window/reinforced,
-/turf/open/floor/plating,
-/area/security/execution/transfer)
-"afv" = (
-/obj/machinery/atmospherics/pipe/simple/general/hidden{
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
dir = 4
},
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/bot_white,
+/obj/structure/closet/secure_closet/brig,
/turf/open/floor/plasteel/dark,
-/area/security/execution/transfer)
+/area/security/prison)
+"afv" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/turf/open/floor/plasteel/dark,
+/area/security/prison)
"afw" = (
-/obj/machinery/atmospherics/components/binary/pump{
- dir = 4;
- layer = 2.4
- },
-/obj/machinery/door/window/southleft{
- base_state = "right";
- dir = 4;
- icon_state = "right";
- name = "Armory";
- req_access_txt = "2"
- },
-/obj/effect/turf_decal/stripes/line,
-/turf/open/floor/plating,
-/area/security/execution/transfer)
-"afx" = (
-/obj/machinery/light_switch{
- pixel_x = 25
- },
-/obj/machinery/atmospherics/pipe/simple/general/hidden{
- dir = 9
- },
-/obj/structure/cable{
- icon_state = "1-2"
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
},
/turf/open/floor/plasteel/dark,
-/area/security/execution/transfer)
+/area/security/prison)
"afy" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 1
},
-/obj/machinery/atmospherics/pipe/simple/general/hidden{
- dir = 4
- },
/turf/open/floor/plasteel/dark,
-/area/security/execution/transfer)
+/area/security/prison)
"afz" = (
/obj/effect/turf_decal/tile/red{
dir = 1
@@ -2783,24 +2688,34 @@
/obj/structure/cable{
icon_state = "1-2"
},
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
/turf/open/floor/plasteel,
/area/security/prison)
"afA" = (
-/turf/closed/wall/r_wall,
-/area/security/execution/transfer)
+/obj/structure/reagent_dispensers/peppertank{
+ pixel_y = -32
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/turf/open/floor/plasteel/dark,
+/area/security/prison)
"afB" = (
/obj/item/radio/intercom{
dir = 4;
name = "Station Intercom (General)";
pixel_x = 27
},
-/obj/machinery/atmospherics/pipe/simple/supply/hidden{
- dir = 10
- },
/obj/effect/turf_decal/tile/red,
/obj/effect/turf_decal/tile/red{
dir = 4
},
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 4
+ },
/turf/open/floor/plasteel,
/area/security/prison)
"afC" = (
@@ -2831,21 +2746,16 @@
/turf/open/floor/plating,
/area/hallway/secondary/exit)
"afF" = (
-/obj/structure/table,
-/obj/item/assembly/signaler,
-/obj/item/clothing/suit/straight_jacket,
/obj/effect/turf_decal/tile/red,
/obj/effect/turf_decal/tile/red{
dir = 8
},
+/obj/machinery/light{
+ light_color = "#d1dfff"
+ },
/turf/open/floor/plasteel,
/area/security/prison)
"afG" = (
-/obj/structure/table,
-/obj/item/storage/box/hug,
-/obj/item/razor{
- pixel_x = -6
- },
/obj/effect/turf_decal/tile/red,
/obj/effect/turf_decal/tile/red{
dir = 8
@@ -3082,39 +2992,59 @@
/area/security/range)
"agf" = (
/obj/structure/table,
-/obj/item/stack/sheet/metal,
-/obj/item/storage/box/bodybags,
-/obj/item/pen,
-/obj/machinery/firealarm{
- dir = 1;
- pixel_y = -24
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
},
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/item/clothing/gloves/color/orange,
+/obj/item/restraints/handcuffs,
+/obj/item/reagent_containers/spray/pepper,
/turf/open/floor/plasteel/dark,
-/area/security/execution/transfer)
+/area/security/prison)
"agg" = (
-/obj/structure/closet/secure_closet/injection,
-/obj/structure/cable,
-/obj/machinery/power/apc{
- areastring = "/area/security/execution/transfer";
- name = "Prisoner Transfer Centre";
- pixel_y = -27
+/obj/structure/table,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
},
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/item/clothing/suit/straight_jacket,
+/obj/item/electropack/shockcollar,
+/obj/item/assembly/signaler,
/turf/open/floor/plasteel/dark,
-/area/security/execution/transfer)
+/area/security/prison)
"agh" = (
/obj/structure/table,
-/obj/item/electropack,
-/obj/item/screwdriver,
-/obj/item/wrench,
-/obj/item/clothing/head/helmet,
-/obj/item/assembly/signaler,
-/obj/machinery/light/small,
-/obj/machinery/airalarm{
- dir = 1;
- pixel_y = -22
+/obj/item/storage/box/hug,
+/obj/item/razor{
+ pixel_x = -6
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/light{
+ light_color = "#d1dfff"
},
/turf/open/floor/plasteel/dark,
-/area/security/execution/transfer)
+/area/security/prison)
"agi" = (
/obj/machinery/door/firedoor,
/obj/machinery/door/airlock/security/glass{
@@ -3972,19 +3902,6 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
/area/security/processing)
-"ahE" = (
-/obj/structure/closet/secure_closet/brig,
-/obj/effect/turf_decal/tile/red,
-/obj/effect/turf_decal/tile/red{
- dir = 8
- },
-/obj/item/radio/headset{
- desc = "An updated, modular intercom that fits over the head. Takes encryption keys. It looks like it has been modified to not broadcast.";
- name = "prisoner headset";
- prison_radio = 1
- },
-/turf/open/floor/plasteel,
-/area/security/prison)
"ahF" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -4424,12 +4341,6 @@
},
/turf/open/floor/plasteel,
/area/security/office)
-"ail" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/turf/open/floor/plasteel,
-/area/security/range)
"aim" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable{
@@ -5847,15 +5758,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/engine,
/area/science/xenobiology)
-"akQ" = (
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/structure/cable{
- icon_state = "2-8"
- },
-/turf/open/floor/plasteel,
-/area/security/prison)
"akR" = (
/obj/machinery/camera{
c_tag = "Security Office";
@@ -7078,11 +6980,6 @@
id = "Cell 2";
name = "Cell 2 Locker"
},
-/obj/item/radio/headset{
- desc = "An updated, modular intercom that fits over the head. Takes encryption keys. It looks like it has been modified to not broadcast.";
- name = "prisoner headset";
- prison_radio = 1
- },
/obj/structure/cable{
icon_state = "1-4"
},
@@ -7690,7 +7587,7 @@
},
/obj/machinery/firealarm{
dir = 8;
- pixel_x = 24;
+ pixel_x = 26;
pixel_y = -28
},
/turf/open/floor/plasteel,
@@ -8832,11 +8729,6 @@
id = "Cell 3";
name = "Cell 3 Locker"
},
-/obj/item/radio/headset{
- desc = "An updated, modular intercom that fits over the head. Takes encryption keys. It looks like it has been modified to not broadcast.";
- name = "prisoner headset";
- prison_radio = 1
- },
/obj/structure/cable{
icon_state = "1-4"
},
@@ -9151,7 +9043,7 @@
},
/obj/machinery/firealarm{
dir = 8;
- pixel_x = 28
+ pixel_x = 24
},
/turf/open/floor/plasteel/dark,
/area/security/brig)
@@ -9225,7 +9117,7 @@
},
/obj/machinery/firealarm{
dir = 8;
- pixel_x = 28
+ pixel_x = 24
},
/turf/open/floor/plasteel,
/area/security/processing)
@@ -50585,6 +50477,12 @@
/obj/effect/landmark/event_spawn,
/turf/open/floor/plasteel,
/area/hallway/secondary/exit)
+"czP" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/closed/wall,
+/area/security/prison/cells)
"czQ" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/disposalpipe/segment,
@@ -51302,6 +51200,20 @@
/obj/machinery/deepfryer,
/turf/open/floor/plasteel/cafeteria,
/area/service/kitchen)
+"cCr" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/cells)
"cCs" = (
/obj/structure/closet/emcloset,
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
@@ -51826,6 +51738,22 @@
/obj/structure/sign/poster/official/cohiba_robusto_ad,
/turf/closed/wall,
/area/service/lawoffice)
+"cJA" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/cells)
"cJW" = (
/obj/machinery/computer/gateway_control,
/turf/open/floor/plasteel,
@@ -51882,6 +51810,20 @@
"cNd" = (
/turf/open/space/basic,
/area/space/station_ruins)
+"cNi" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "Prison Gate";
+ name = "prison blast door"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/security/prison/upper)
"cNE" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/closed/wall,
@@ -52112,6 +52054,10 @@
/obj/item/folder/blue,
/turf/open/floor/plasteel/dark,
/area/hallway/primary/central)
+"cSp" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall/r_wall,
+/area/security/prison/upper)
"cSA" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -52379,6 +52325,13 @@
},
/turf/open/floor/plasteel,
/area/engineering/main)
+"cTo" = (
+/obj/structure/table/wood,
+/obj/item/storage/dice,
+/obj/item/instrument/piano_synth,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"cTD" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -52508,6 +52461,13 @@
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
+"cVE" = (
+/obj/machinery/computer/cryopod{
+ pixel_y = 26
+ },
+/obj/effect/turf_decal/loading_area,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
"cVK" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
/turf/open/floor/plasteel/white,
@@ -52519,6 +52479,16 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
+"cYf" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"cZe" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -52636,6 +52606,22 @@
},
/turf/open/floor/plasteel,
/area/science/circuit)
+"dfj" = (
+/obj/machinery/light/small{
+ dir = 8
+ },
+/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
+/obj/effect/turf_decal/stripes/line{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plating,
+/area/security/execution/transfer)
"dfL" = (
/obj/structure/reagent_dispensers/keg/gargle,
/turf/open/floor/wood,
@@ -52703,6 +52689,16 @@
},
/turf/open/floor/plasteel/dark,
/area/medical/paramedic)
+"dnX" = (
+/obj/effect/turf_decal/stripes/white/line,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"dqb" = (
/turf/open/floor/plasteel,
/area/commons/fitness/pool)
@@ -52749,6 +52745,17 @@
},
/turf/closed/wall,
/area/science/circuit)
+"dxv" = (
+/obj/machinery/camera{
+ c_tag = "Prison Cafeteria";
+ dir = 8;
+ network = list("ss13","prison")
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"dxF" = (
/obj/machinery/gear_painter,
/turf/open/floor/wood,
@@ -52781,24 +52788,38 @@
/turf/open/floor/plating,
/area/security/brig)
"dyS" = (
-/obj/effect/turf_decal/tile/green{
- dir = 8
+/obj/machinery/door/airlock/public/glass{
+ name = "Prison Cafeteria"
},
-/obj/effect/turf_decal/tile/green{
- dir = 1
- },
-/obj/effect/turf_decal/tile/green,
-/obj/effect/turf_decal/tile/green{
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
dir = 4
},
-/turf/open/floor/plasteel,
-/area/security/prison)
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
"dzi" = (
/obj/structure/cable{
icon_state = "2-4"
},
/turf/open/floor/carpet,
/area/commons/cryopod)
+"dzK" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"dAe" = (
/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
dir = 1
@@ -52806,6 +52827,11 @@
/obj/machinery/meter,
/turf/open/floor/plasteel,
/area/engineering/atmos)
+"dCd" = (
+/obj/structure/table,
+/obj/item/reagent_containers/food/drinks/drinkingglass,
+/turf/open/floor/plasteel/cafeteria,
+/area/security/prison/upper)
"dCr" = (
/obj/structure/pool/Rboard,
/turf/open/floor/plasteel/yellowsiding{
@@ -52856,6 +52882,27 @@
},
/turf/open/floor/plating,
/area/maintenance/port/fore)
+"dIZ" = (
+/turf/open/floor/padded,
+/area/security/execution/transfer)
+"dJu" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/light/small{
+ dir = 1;
+ light_color = "#ffc1c1"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
"dJL" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -52875,6 +52922,24 @@
/obj/structure/chair/stool/bar,
/turf/open/floor/wood,
/area/maintenance/bar)
+"dLi" = (
+/obj/machinery/hydroponics/soil,
+/obj/item/cultivator,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
+"dLZ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"dMj" = (
/obj/machinery/space_heater,
/obj/effect/turf_decal/stripes/line{
@@ -52888,6 +52953,12 @@
},
/turf/open/floor/plasteel/white,
/area/science/circuit)
+"dNP" = (
+/obj/effect/turf_decal/stripes/white/line{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"dPk" = (
/obj/structure/closet{
name = "Costume Closet"
@@ -52914,6 +52985,32 @@
},
/turf/open/floor/plating,
/area/maintenance/fore)
+"dPs" = (
+/obj/machinery/hydroponics/soil,
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
+"dPE" = (
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"dQD" = (
/obj/machinery/atmospherics/components/binary/pump{
dir = 8;
@@ -52921,6 +53018,26 @@
},
/turf/open/floor/plasteel,
/area/maintenance/disposal/incinerator)
+"dQS" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison)
+"dSh" = (
+/obj/effect/turf_decal/stripes/white/line{
+ dir = 6
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"dTI" = (
/obj/structure/urinal{
pixel_y = 32
@@ -52945,6 +53062,22 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plating,
/area/command/gateway)
+"dYQ" = (
+/obj/machinery/light{
+ dir = 8;
+ light_color = "#e8eaff"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/freezer,
+/area/security/prison/cells)
"dYZ" = (
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
@@ -52969,6 +53102,13 @@
},
/turf/open/space,
/area/solars/starboard/fore)
+"ebo" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
"ecg" = (
/turf/open/floor/plasteel/yellowsiding/corner{
dir = 4
@@ -52981,6 +53121,10 @@
},
/turf/open/floor/plasteel/dark,
/area/medical/morgue)
+"ecB" = (
+/obj/item/toy/beach_ball/holoball,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"edj" = (
/obj/structure/sign/poster/contraband/random{
pixel_y = 32
@@ -53044,6 +53188,25 @@
},
/turf/open/floor/plasteel,
/area/engineering/atmos)
+"ejr" = (
+/obj/machinery/door/airlock/security{
+ name = "Permanent Cell 4"
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
"eky" = (
/obj/structure/table/wood,
/obj/item/reagent_containers/food/snacks/baguette,
@@ -53062,6 +53225,17 @@
},
/turf/open/floor/wood,
/area/service/bar)
+"emf" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Permabrig Maintenance";
+ req_access_txt = "1"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/prison/starboard)
"ene" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -53087,6 +53261,47 @@
/obj/structure/table/wood/poker,
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
+"eoJ" = (
+/obj/machinery/door/airlock/security{
+ name = "Permanent Cell 5"
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"eoR" = (
+/obj/effect/turf_decal/stripes/white/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
+"epj" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/cells)
"epD" = (
/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,
/obj/machinery/light{
@@ -53098,21 +53313,27 @@
},
/turf/open/floor/plasteel,
/area/commons/fitness)
-"eqd" = (
-/obj/item/electropack/shockcollar,
-/obj/item/assembly/signaler,
-/turf/open/floor/plating,
-/area/security/prison)
+"epG" = (
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"eqq" = (
/obj/machinery/atmospherics/pipe/manifold/orange/visible,
/turf/open/floor/plasteel,
/area/engineering/atmos)
"eqA" = (
-/obj/machinery/shower{
- dir = 8
+/obj/structure/cable{
+ icon_state = "1-2"
},
-/turf/open/floor/plasteel/freezer,
-/area/security/prison)
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
"esK" = (
/obj/machinery/door/airlock/maintenance/abandoned{
name = "Chemical Storage";
@@ -53144,6 +53365,17 @@
/obj/structure/disposalpipe/segment,
/turf/open/floor/wood,
/area/service/library)
+"etr" = (
+/obj/structure/chair/stool,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"eus" = (
/obj/machinery/portable_atmospherics/scrubber,
/obj/effect/turf_decal/stripes/line{
@@ -53151,6 +53383,37 @@
},
/turf/open/floor/plasteel,
/area/engineering/atmos)
+"evc" = (
+/obj/machinery/hydroponics/soil,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/machinery/camera{
+ c_tag = "Prison Forestry";
+ dir = 4;
+ network = list("ss13","prison")
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
+"evh" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/camera{
+ c_tag = "Prison Workshop";
+ dir = 4;
+ network = list("ss13","prison")
+ },
+/obj/item/stack/sticky_tape,
+/obj/item/stack/sheet/cardboard{
+ amount = 14
+ },
+/obj/item/stack/packageWrap,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"evR" = (
/turf/open/floor/plating,
/area/maintenance/bar)
@@ -53280,6 +53543,19 @@
},
/turf/closed/wall/r_wall,
/area/engineering/gravity_generator)
+"eDf" = (
+/obj/structure/window/reinforced/tinted{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"eDz" = (
/obj/structure/cable/white{
icon_state = "2-8"
@@ -53288,6 +53564,31 @@
icon_state = "panelscorched"
},
/area/maintenance/starboard/aft)
+"eDF" = (
+/obj/effect/landmark/event_spawn,
+/obj/structure/chair/comfy/brown{
+ color = "#596479";
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
+"eDJ" = (
+/obj/machinery/firealarm{
+ dir = 4;
+ pixel_x = -24
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison)
"eFx" = (
/obj/effect/turf_decal/tile/red{
dir = 1
@@ -53324,6 +53625,14 @@
/obj/effect/spawner/structure/window/shuttle,
/turf/open/floor/plating/airless,
/area/space/nearstation)
+"eIW" = (
+/obj/structure/table,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/machinery/light{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
"eJa" = (
/obj/structure/table/wood/poker,
/obj/item/toy/cards/deck{
@@ -53334,6 +53643,22 @@
},
/turf/open/floor/wood,
/area/service/bar)
+"eJu" = (
+/obj/machinery/button/door{
+ id = "executionspaceblast";
+ name = "Vent to Space";
+ pixel_x = 25;
+ pixel_y = -5;
+ req_access_txt = "7"
+ },
+/obj/machinery/button/flasher{
+ id = "executionflash";
+ pixel_x = 24;
+ pixel_y = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
"eMs" = (
/obj/structure/rack,
/obj/effect/spawner/lootdrop/maintenance{
@@ -53363,10 +53688,49 @@
/obj/structure/grille,
/turf/open/space/basic,
/area/space/nearstation)
+"eRS" = (
+/obj/structure/table,
+/obj/item/folder/red{
+ pixel_x = 3
+ },
+/obj/item/taperecorder{
+ pixel_x = -3
+ },
+/obj/item/assembly/flash/handheld,
+/obj/item/reagent_containers/spray/pepper,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
"eSe" = (
/obj/structure/closet/secure_closet/personal/cabinet,
/turf/open/floor/carpet,
/area/commons/dorms)
+"eSJ" = (
+/obj/machinery/button/ignition{
+ id = "executionburn";
+ pixel_x = 24;
+ pixel_y = 5
+ },
+/obj/machinery/button/door{
+ id = "executionfireblast";
+ name = "Transfer Area Lockdown";
+ pixel_x = 25;
+ pixel_y = -5;
+ req_access_txt = "2"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
"eTA" = (
/obj/structure/table/wood/fancy,
/obj/item/reagent_containers/food/condiment/saltshaker{
@@ -53437,6 +53801,15 @@
},
/turf/open/floor/plasteel,
/area/security/processing)
+"eXI" = (
+/obj/structure/chair{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"eXL" = (
/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
dir = 10
@@ -53448,11 +53821,66 @@
/obj/effect/landmark/start/paramedic,
/turf/open/floor/plasteel/white,
/area/medical/medbay/central)
+"eZI" = (
+/obj/effect/turf_decal/stripes/white/line{
+ dir = 10
+ },
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#e8eaff"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
+"eZS" = (
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/effect/turf_decal/bot_white,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/prison/starboard)
"fbp" = (
/obj/structure/tank_dispenser,
/obj/effect/turf_decal/bot,
/turf/open/floor/engine,
/area/science/storage)
+"fbr" = (
+/obj/machinery/door/window/southleft{
+ base_state = "right";
+ dir = 4;
+ icon_state = "right";
+ name = "Transfer Chamber Configuration";
+ req_access_txt = "2"
+ },
+/obj/machinery/atmospherics/pipe/simple{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/security/execution/transfer)
+"fbY" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/bed,
+/obj/item/bedsheet/red,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
"fcd" = (
/obj/structure/chair/sofa/right{
dir = 8
@@ -53461,6 +53889,10 @@
icon_state = "platingdmg1"
},
/area/maintenance/port/fore)
+"fcj" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/space)
"fcn" = (
/obj/structure/disposalpipe/segment,
/obj/machinery/door/airlock/maintenance{
@@ -53478,11 +53910,61 @@
},
/turf/closed/wall/r_wall,
/area/science/mixing)
+"fdJ" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/cells)
"fdQ" = (
/obj/structure/bed,
/obj/effect/spawner/lootdrop/bedsheet,
/turf/open/floor/plating,
/area/maintenance/fore)
+"fdR" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/security/prison/cells";
+ damage_deflection = 21;
+ desc = "A control terminal for the area's electrical systems. It's secured with a durable antitampering plasteel cage.";
+ dir = 4;
+ name = "Armored Prison Wing Cells APC";
+ pixel_x = 24
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/cells)
+"fdS" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#cee5d2"
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"feE" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -53498,6 +53980,19 @@
},
/turf/open/floor/wood,
/area/service/bar)
+"fgd" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 10
+ },
+/obj/machinery/portable_atmospherics/canister/nitrous_oxide,
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plating,
+/area/security/execution/transfer)
"fgl" = (
/obj/structure/closet/crate/bin,
/obj/item/coin/silver,
@@ -53526,6 +54021,23 @@
},
/turf/closed/wall,
/area/maintenance/disposal/incinerator)
+"fiR" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"fjS" = (
/obj/structure/closet/radiation,
/turf/open/floor/plasteel,
@@ -53586,6 +54098,19 @@
},
/turf/open/floor/wood/wood_diagonal,
/area/maintenance/port/fore)
+"fmR" = (
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#c1caff"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"fnC" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 4
@@ -53915,6 +54440,16 @@
},
/turf/open/floor/plasteel,
/area/service/hydroponics)
+"fFR" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/turf/open/floor/plasteel/dark,
+/area/security/prison)
"fGf" = (
/obj/machinery/smartfridge/disks{
pixel_y = 2
@@ -53958,6 +54493,17 @@
/obj/effect/landmark/start/atmospheric_technician,
/turf/open/floor/plasteel,
/area/engineering/atmos)
+"fKN" = (
+/obj/structure/table,
+/obj/structure/bedsheetbin,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/security/prison/upper)
"fLN" = (
/obj/machinery/chem_dispenser/drinks/beer{
dir = 1
@@ -53969,6 +54515,46 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel/dark,
/area/security/courtroom)
+"fMF" = (
+/obj/machinery/door/airlock/security/glass{
+ name = "Prison Laundry"
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"fMY" = (
+/obj/effect/turf_decal/stripes/white/line{
+ dir = 5
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
+"fNB" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/security/prison/cells)
"fNN" = (
/obj/machinery/door/firedoor,
/obj/structure/cable{
@@ -54113,11 +54699,6 @@
},
/turf/open/floor/plating,
/area/construction)
-"gbu" = (
-/obj/structure/bed,
-/obj/effect/spawner/lootdrop/bedsheet,
-/turf/open/floor/plating,
-/area/security/prison)
"gbT" = (
/obj/item/storage/box/lights/mixed,
/obj/machinery/power/apc{
@@ -54131,6 +54712,13 @@
},
/turf/open/floor/plating,
/area/maintenance/department/medical/morgue)
+"gcm" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 6
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
"gcx" = (
/obj/structure/chair/stool{
pixel_y = 8
@@ -54149,6 +54737,35 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
+"gcV" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
+"gcX" = (
+/obj/structure/table,
+/obj/item/flashlight/lamp,
+/obj/item/stack/sheet/metal,
+/obj/item/storage/box/bodybags,
+/obj/item/pen,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple,
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"gcY" = (
+/obj/structure/weightmachine/weightlifter,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"geg" = (
/obj/machinery/light/small{
dir = 8
@@ -54158,6 +54775,16 @@
/obj/item/reagent_containers/food/snacks/egg/yellow,
/turf/open/floor/plating,
/area/maintenance/port/fore)
+"gfw" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/security/prison/upper)
"gfC" = (
/obj/effect/turf_decal/tile/red,
/obj/structure/chair{
@@ -54180,6 +54807,18 @@
},
/turf/open/floor/plasteel/white,
/area/medical/surgery)
+"ggT" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/cells)
"ghD" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel,
@@ -54187,6 +54826,26 @@
"giy" = (
/turf/open/floor/carpet/arcade,
/area/commons/arcade)
+"giE" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/landmark/start/prisoner,
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
"giT" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -54217,6 +54876,13 @@
/obj/item/poster/random_contraband,
/turf/open/floor/plasteel,
/area/commons/locker)
+"goJ" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/security/prison/upper)
"gpD" = (
/obj/effect/turf_decal/bot_white/left,
/obj/effect/turf_decal/tile/neutral{
@@ -54242,6 +54908,10 @@
},
/turf/open/floor/plating,
/area/maintenance/fore/secondary)
+"grd" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/closed/wall,
+/area/security/prison/upper)
"grr" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 8
@@ -54287,10 +54957,38 @@
/obj/machinery/meter,
/turf/closed/wall/r_wall,
/area/engineering/atmos)
+"gxK" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/closed/wall,
+/area/security/prison/cells)
"gyr" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
/area/security/brig)
+"gyy" = (
+/obj/machinery/door/airlock/security{
+ name = "Isolation Cell";
+ req_access_txt = "2"
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
"gyQ" = (
/turf/open/floor/plasteel/freezer,
/area/commons/toilet)
@@ -54336,16 +55034,16 @@
/turf/open/floor/plasteel/dark,
/area/command/gateway)
"gDP" = (
-/obj/machinery/firealarm{
- dir = 8;
- pixel_x = 28
- },
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 6
},
/obj/item/radio/intercom{
pixel_y = 20
},
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
/turf/open/floor/plasteel,
/area/security/processing)
"gDZ" = (
@@ -54412,6 +55110,15 @@
/obj/structure/bedsheetbin/towel,
/turf/open/floor/wood/wood_diagonal,
/area/maintenance/port/fore)
+"gLu" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"gLw" = (
/obj/effect/turf_decal/tile/blue{
dir = 8
@@ -54453,6 +55160,25 @@
},
/turf/open/floor/wood,
/area/maintenance/bar)
+"gMB" = (
+/obj/machinery/door/airlock/security{
+ name = "Permanent Cell 6"
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
"gMD" = (
/obj/machinery/atmospherics/pipe/simple/green/visible{
dir = 6
@@ -54477,15 +55203,15 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 8
},
+/obj/structure/sign/poster/official/high_class_martini{
+ pixel_x = -32
+ },
/mob/living/simple_animal/bot/mulebot{
beacon_freq = 1400;
home_destination = "QM #1";
name = "Massive Load";
suffix = "#1"
},
-/obj/structure/sign/poster/official/high_class_martini{
- pixel_x = -32
- },
/turf/open/floor/carpet/royalblue,
/area/maintenance/starboard/aft)
"gOZ" = (
@@ -54494,6 +55220,13 @@
},
/turf/open/floor/plating,
/area/commons/fitness)
+"gPY" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"gQr" = (
/obj/machinery/atmospherics/components/binary/valve/digital{
name = "gas to sauna"
@@ -54511,6 +55244,23 @@
},
/turf/open/floor/carpet,
/area/service/library)
+"gSj" = (
+/obj/machinery/door/airlock/security{
+ name = "Permanent Cell 3"
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
"gTx" = (
/obj/effect/turf_decal/bot_white/left,
/obj/effect/turf_decal/tile/neutral{
@@ -54532,6 +55282,11 @@
},
/turf/closed/wall/r_wall,
/area/engineering/gravity_generator)
+"gVc" = (
+/obj/machinery/vending/sustenance,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"gWd" = (
/obj/structure/cable{
icon_state = "1-4"
@@ -54545,6 +55300,19 @@
/obj/structure/lattice,
/turf/open/space/basic,
/area/space/nearstation)
+"gXu" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"gYo" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
@@ -54576,6 +55344,18 @@
dir = 8
},
/area/medical/surgery)
+"gZT" = (
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/prison/port";
+ dir = 8;
+ name = "Prison Port Maintenance APC";
+ pixel_x = -25
+ },
+/obj/effect/turf_decal/bot,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/maintenance/prison/port)
"haM" = (
/obj/item/radio/intercom{
name = "Station Intercom (General)";
@@ -54607,6 +55387,21 @@
icon_state = "platingdmg1"
},
/area/maintenance/starboard/aft)
+"hch" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/cells)
"hcA" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -54653,6 +55448,9 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
+"hkA" = (
+/turf/open/floor/plasteel/dark,
+/area/security/prison)
"hlS" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -54683,6 +55481,15 @@
},
/turf/open/floor/wood/wood_diagonal,
/area/maintenance/port/fore)
+"hnp" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"hnU" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -54718,6 +55525,16 @@
},
/turf/open/floor/plasteel/dark,
/area/command/gateway)
+"hpY" = (
+/obj/machinery/vr_sleeper{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"hrF" = (
/obj/structure/lattice/catwalk,
/obj/structure/cable{
@@ -54750,11 +55567,44 @@
},
/turf/open/floor/plating,
/area/command/gateway)
+"hvC" = (
+/obj/structure/chair{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/cafeteria,
+/area/security/prison/upper)
+"hxg" = (
+/obj/effect/turf_decal/stripes/white/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"hxn" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/atmospherics/pipe/simple/green/visible,
/turf/open/floor/plating,
/area/engineering/atmos)
+"hzs" = (
+/obj/effect/turf_decal/bot,
+/obj/machinery/plate_press,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
+"hzC" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/cells)
"hzK" = (
/turf/open/floor/plasteel/yellowsiding/corner{
dir = 1
@@ -54777,6 +55627,13 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plating,
/area/maintenance/port/fore)
+"hEL" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/security/execution/transfer)
"hGH" = (
/obj/machinery/door/airlock{
desc = "Private study room where nerds are probably playing Dungeons and Dragons 13e, or a place for blood cult rituals.";
@@ -54807,6 +55664,21 @@
/obj/machinery/door/firedoor,
/turf/open/floor/plasteel/dark,
/area/hallway/primary/central)
+"hJO" = (
+/obj/structure/closet/crate/trashcart,
+/obj/effect/spawner/lootdrop/prison_contraband,
+/obj/item/trash/chips,
+/obj/item/trash/candy,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/security/prison/upper)
+"hKo" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/security/prison/cells)
"hMs" = (
/obj/structure/table,
/obj/item/storage/box/bodybags,
@@ -54837,6 +55709,12 @@
},
/turf/closed/wall,
/area/cargo/warehouse)
+"hQw" = (
+/obj/item/electropack/shockcollar,
+/obj/item/assembly/signaler,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/space)
"hQX" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/structure/cable{
@@ -54923,6 +55801,11 @@
"ibK" = (
/turf/open/floor/plasteel,
/area/security/processing)
+"icS" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/maintenance/prison/port)
"idK" = (
/obj/effect/turf_decal/tile/red{
dir = 1
@@ -54947,6 +55830,16 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
+"ifM" = (
+/obj/machinery/shower{
+ dir = 8;
+ pixel_y = -4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/freezer,
+/area/security/prison/cells)
"ihR" = (
/turf/open/floor/plasteel/white,
/area/medical/medbay/lobby)
@@ -55003,6 +55896,19 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
+"ili" = (
+/obj/structure/table,
+/obj/item/electropack,
+/obj/item/screwdriver,
+/obj/item/wrench,
+/obj/item/clothing/head/helmet,
+/obj/item/assembly/signaler,
+/obj/machinery/light/small,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
"imk" = (
/obj/structure/lattice,
/obj/machinery/atmospherics/pipe/simple/orange/visible{
@@ -55050,6 +55956,21 @@
},
/turf/open/floor/plasteel,
/area/commons/fitness/pool)
+"iqi" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/camera{
+ c_tag = "Prison Laundry";
+ dir = 4;
+ network = list("ss13","prison")
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/security/prison/upper)
"iql" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
@@ -55111,6 +56032,15 @@
/obj/structure/table/optable,
/turf/open/floor/plasteel/white,
/area/medical/surgery)
+"iwU" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"iyG" = (
/obj/effect/decal/cleanable/dirt,
/obj/machinery/light/small{
@@ -55131,12 +56061,41 @@
},
/turf/open/floor/wood,
/area/maintenance/bar)
+"iBj" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/grille,
+/turf/open/floor/plating,
+/area/space)
+"iBq" = (
+/obj/machinery/portable_atmospherics/canister/air,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/maintenance/prison/starboard)
"iBv" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 6
},
/turf/open/floor/plasteel,
/area/commons/fitness/pool)
+"iCN" = (
+/obj/machinery/door/airlock{
+ name = "Permabrig Showers"
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
"iDo" = (
/obj/structure/grille,
/turf/open/space/basic,
@@ -55213,6 +56172,14 @@
},
/turf/open/floor/plasteel,
/area/commons/fitness/pool)
+"iMy" = (
+/obj/structure/chair/sofa/right,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"iNn" = (
/obj/machinery/camera{
c_tag = "Kitchen Cold Room"
@@ -55478,11 +56445,6 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel/white,
/area/medical/medbay/lobby)
-"jjC" = (
-/obj/structure/table/wood,
-/obj/item/toy/cards/deck,
-/turf/open/floor/plasteel,
-/area/security/prison)
"jkx" = (
/obj/effect/decal/cleanable/cobweb/cobweb2,
/obj/machinery/computer/slot_machine,
@@ -55499,6 +56461,14 @@
/obj/machinery/rnd/production/techfab/department/cargo,
/turf/open/floor/plasteel,
/area/cargo/office)
+"jlQ" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/prison/port)
"jmL" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 5
@@ -55515,6 +56485,9 @@
},
/turf/open/floor/plasteel,
/area/commons/fitness)
+"jnk" = (
+/turf/closed/wall/r_wall,
+/area/maintenance/prison/starboard)
"jnV" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -55555,10 +56528,25 @@
},
/turf/open/floor/carpet/arcade,
/area/commons/arcade)
+"jqK" = (
+/obj/structure/rack,
+/obj/item/tank/internals/emergency_oxygen,
+/obj/item/clothing/mask/breath,
+/obj/effect/spawner/lootdrop/prison_contraband,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/maintenance/prison/starboard)
"jrE" = (
/obj/item/beacon,
/turf/open/floor/plasteel/white,
/area/science/circuit)
+"jrR" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"jsO" = (
/obj/machinery/hydroponics/soil{
pixel_y = 8
@@ -55596,10 +56584,63 @@
/obj/structure/closet/athletic_mixed,
/turf/open/floor/plasteel,
/area/commons/fitness)
+"jvB" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
+"jvO" = (
+/obj/structure/rack,
+/obj/item/flashlight{
+ pixel_x = 1;
+ pixel_y = 5
+ },
+/obj/item/tank/internals/anesthetic{
+ pixel_x = -3;
+ pixel_y = 1
+ },
+/obj/item/tank/internals/oxygen/red{
+ pixel_x = 3
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/obj/machinery/atmospherics/pipe/simple{
+ dir = 6
+ },
+/turf/open/floor/plating,
+/area/security/execution/transfer)
"jwH" = (
/obj/machinery/holopad,
/turf/open/floor/plasteel,
/area/service/hydroponics)
+"jxx" = (
+/obj/machinery/door/airlock/security{
+ name = "Prison Yard"
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
"jxF" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -55758,6 +56799,20 @@
/obj/effect/landmark/start/assistant,
/turf/open/floor/plasteel,
/area/hallway/secondary/entry)
+"jHp" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"jHt" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/structure/disposalpipe/segment{
@@ -55793,6 +56848,16 @@
/obj/structure/lattice,
/turf/open/space/basic,
/area/space/nearstation)
+"jIH" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"jIW" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -55807,6 +56872,37 @@
},
/turf/open/floor/wood,
/area/maintenance/port/aft)
+"jJP" = (
+/obj/structure/sign/warning/securearea{
+ pixel_x = 32
+ },
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/space/nearstation)
+"jKc" = (
+/obj/structure/closet/secure_closet/injection,
+/obj/machinery/firealarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/machinery/power/apc{
+ areastring = "/area/security/execution/transfer";
+ dir = 1;
+ name = "Prisoner Transfer Centre";
+ pixel_y = 23
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"jKm" = (
+/obj/structure/chair/comfy/brown{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"jKP" = (
/obj/structure/disposalpipe/segment,
/obj/structure/cable{
@@ -55828,12 +56924,6 @@
/obj/effect/mapping_helpers/airlock/cyclelink_helper,
/turf/open/floor/plasteel,
/area/engineering/engine_smes)
-"jLv" = (
-/obj/structure/sign/warning/securearea{
- pixel_x = 32
- },
-/turf/open/space,
-/area/space)
"jLJ" = (
/obj/effect/decal/cleanable/dirt/dust,
/obj/machinery/light/small,
@@ -55866,12 +56956,64 @@
},
/turf/open/floor/plating/rust,
/area/maintenance/port/fore)
-"jRw" = (
-/obj/machinery/computer/arcade/minesweeper{
+"jNN" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison)
+"jOB" = (
+/obj/machinery/door/airlock/security{
+ name = "Prison Forestry"
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
dir = 4
},
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"jRw" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
/turf/open/floor/plasteel,
-/area/security/prison)
+/area/security/prison/upper)
+"jRW" = (
+/obj/item/reagent_containers/glass/bucket,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/sink{
+ dir = 8;
+ pixel_x = -12
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"jSD" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
@@ -55892,6 +57034,39 @@
},
/turf/open/floor/plasteel,
/area/science/circuit)
+"jSY" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
+"jTy" = (
+/obj/machinery/washing_machine,
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/cafeteria,
+/area/security/prison/upper)
+"jUN" = (
+/obj/structure/table/reinforced,
+/obj/structure/reagent_dispensers/servingdish,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"jUV" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -55908,6 +57083,20 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
+"jVP" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/cafeteria,
+/area/security/prison/upper)
+"jVV" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4;
+ pixel_y = 5
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"jVX" = (
/obj/machinery/atmospherics/components/unary/portables_connector/visible{
dir = 4
@@ -55919,6 +57108,13 @@
dir = 1
},
/area/engineering/atmos)
+"jYl" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"jZT" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -55959,6 +57155,42 @@
/obj/machinery/atmospherics/pipe/simple/dark/visible,
/turf/open/space/basic,
/area/space/nearstation)
+"kcB" = (
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/camera{
+ c_tag = "Prison Isolation Cell";
+ dir = 8;
+ network = list("ss13","prison");
+ view_range = 5
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/execution/transfer)
+"kcR" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/light/small{
+ brightness = 3;
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
"kdF" = (
/obj/structure/window/reinforced{
dir = 1
@@ -55993,15 +57225,19 @@
/turf/open/floor/plasteel,
/area/commons/dorms)
"keM" = (
-/obj/machinery/light/small{
- dir = 1
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "Prison Gate";
+ name = "prison blast door"
},
-/obj/structure/window/reinforced{
- dir = 8
+/obj/structure/cable{
+ icon_state = "2-4"
},
-/obj/machinery/washing_machine,
-/turf/open/floor/plasteel/freezer,
-/area/security/prison)
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/security/prison/upper)
"kfv" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -56011,6 +57247,16 @@
},
/turf/open/floor/plating,
/area/engineering/storage/tech)
+"kfG" = (
+/obj/structure/table/wood,
+/obj/item/toy/cards/deck,
+/obj/item/instrument/harmonica,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"kfS" = (
/turf/closed/wall/rust,
/area/maintenance/starboard/aft)
@@ -56026,12 +57272,18 @@
},
/area/maintenance/starboard)
"kgr" = (
-/obj/machinery/light/small{
- brightness = 3;
+/obj/machinery/cryopod{
dir = 8
},
-/turf/open/floor/plating,
-/area/security/prison)
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/effect/turf_decal/bot,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 6
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
"kgB" = (
/obj/machinery/vending/snack/orange,
/obj/machinery/light{
@@ -56056,6 +57308,22 @@
},
/turf/open/floor/plating,
/area/maintenance/fore/secondary)
+"khO" = (
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/security{
+ aiControlDisabled = 1;
+ name = "Prisoner Transfer Centre";
+ req_access_txt = "2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
"khV" = (
/obj/machinery/vending/cola/red,
/obj/structure/sign/poster/contraband/robust_softdrinks{
@@ -56105,6 +57373,13 @@
},
/turf/open/floor/plating,
/area/hallway/secondary/entry)
+"kkb" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"kkK" = (
/obj/machinery/vending/autodrobe,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
@@ -56119,6 +57394,16 @@
/obj/structure/grille,
/turf/open/floor/plating,
/area/maintenance/port/fore)
+"kma" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/security/prison/cells)
"kmw" = (
/obj/structure/chair/comfy/black{
dir = 1
@@ -56156,6 +57441,27 @@
/obj/machinery/door/firedoor,
/turf/open/floor/plasteel/dark,
/area/hallway/primary/central)
+"knA" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/light{
+ dir = 8;
+ light_color = "#e8eaff"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/cells)
"kob" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/structure/disposalpipe/segment,
@@ -56177,6 +57483,27 @@
/obj/machinery/gear_painter,
/turf/open/floor/plasteel,
/area/commons/fitness)
+"ksa" = (
+/obj/structure/closet/secure_closet/brig,
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/bot_white,
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/obj/machinery/light{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison)
"ktP" = (
/obj/machinery/power/smes{
charge = 5e+006
@@ -56192,6 +57519,17 @@
"ktS" = (
/turf/open/space/basic,
/area/space/nearstation)
+"ktW" = (
+/obj/machinery/hydroponics/soil,
+/obj/item/plant_analyzer,
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"kuh" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -56335,6 +57673,18 @@
/obj/effect/landmark/stationroom/box/engine,
/turf/open/space/basic,
/area/space)
+"kGj" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/machinery/light,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"kGv" = (
/obj/machinery/atmospherics/pipe/simple/yellow/visible,
/obj/machinery/atmospherics/pipe/simple/dark/visible{
@@ -56358,6 +57708,11 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
+"kGL" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/grille/broken,
+/turf/open/floor/plating,
+/area/maintenance/prison/starboard)
"kHd" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -56390,6 +57745,36 @@
},
/turf/open/floor/plasteel,
/area/engineering/atmos)
+"kLK" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/security/prison/upper)
+"kMn" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/camera{
+ c_tag = "Permabrig North";
+ dir = 4;
+ network = list("ss13","prison")
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"kMt" = (
/obj/machinery/computer/prisoner/gulag_teleporter_computer,
/turf/open/floor/plasteel,
@@ -56409,6 +57794,13 @@
},
/turf/open/floor/plating,
/area/maintenance/port/aft)
+"kOE" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"kOL" = (
/obj/structure/table/glass,
/turf/open/floor/wood/wood_large,
@@ -56521,6 +57913,24 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
+"kYm" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#e8eaff"
+ },
+/obj/structure/chair/stool,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"kZS" = (
/obj/machinery/light{
dir = 8
@@ -56554,6 +57964,27 @@
},
/turf/closed/wall/r_wall,
/area/command/gateway)
+"ldT" = (
+/obj/structure/chair/office{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"ldY" = (
+/obj/machinery/door/airlock/security{
+ name = "Firing Range";
+ req_access_txt = "2"
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel,
+/area/security/prison)
"leE" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -56604,6 +58035,13 @@
},
/turf/open/floor/plasteel,
/area/commons/dorms)
+"lht" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/security/prison/upper)
"lhQ" = (
/obj/machinery/power/floodlight,
/obj/structure/cable{
@@ -56611,6 +58049,17 @@
},
/turf/open/floor/plating,
/area/engineering/atmos)
+"lic" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"lip" = (
/obj/structure/closet{
name = "Suit Closet"
@@ -56636,6 +58085,12 @@
/obj/item/clothing/under/rank/civilian/lawyer/red,
/turf/open/floor/plasteel,
/area/commons/locker)
+"liJ" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
"ljV" = (
/obj/machinery/airalarm{
dir = 8;
@@ -56656,6 +58111,18 @@
/obj/structure/grille,
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
+"llb" = (
+/obj/structure/table,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/computer/libraryconsole/bookmanagement,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"lnk" = (
/obj/item/radio/intercom{
pixel_y = 25
@@ -56670,6 +58137,11 @@
icon_state = "wood-broken6"
},
/area/maintenance/bar)
+"lpx" = (
+/obj/structure/window,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/white,
+/area/security/prison/upper)
"lpQ" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/effect/spawner/structure/window/reinforced,
@@ -56721,12 +58193,31 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
+"ltm" = (
+/obj/structure/chair/comfy/brown{
+ color = "#66b266";
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"ltv" = (
/mob/living/simple_animal/bot/cleanbot{
name = "Honest Work"
},
/turf/open/floor/carpet/royalblue,
/area/maintenance/starboard/aft)
+"ltw" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"ltK" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
@@ -56739,12 +58230,49 @@
},
/turf/open/floor/plasteel,
/area/commons/dorms)
+"lux" = (
+/obj/structure/closet/crate/hydroponics,
+/obj/item/paper/guides/jobs/hydroponics,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/item/seeds/onion,
+/obj/item/seeds/garlic,
+/obj/item/seeds/potato,
+/obj/item/seeds/tomato,
+/obj/item/seeds/carrot,
+/obj/item/seeds/grass,
+/obj/item/seeds/ambrosia,
+/obj/item/seeds/wheat,
+/obj/item/seeds/pumpkin,
+/obj/effect/spawner/lootdrop/prison_contraband,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"lva" = (
/obj/effect/turf_decal/stripes/corner{
dir = 1
},
/turf/open/floor/plasteel,
/area/service/hydroponics)
+"lvc" = (
+/obj/structure/window/reinforced/tinted{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"lwN" = (
/obj/structure/cable{
icon_state = "1-8"
@@ -56770,6 +58298,25 @@
/obj/structure/sign/nanotrasen,
/turf/closed/wall,
/area/science/circuit)
+"lAD" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/camera{
+ c_tag = "Prison Cell Block Central";
+ dir = 1;
+ network = list("ss13","prison")
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/cells)
"lAH" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -56789,6 +58336,26 @@
dir = 1
},
/area/hallway/secondary/entry)
+"lBk" = (
+/obj/machinery/door/airlock/security{
+ name = "Prison Yard"
+ },
+/obj/machinery/door/firedoor,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
"lBz" = (
/obj/effect/turf_decal/tile/red,
/obj/effect/turf_decal/tile/red{
@@ -56812,6 +58379,39 @@
},
/turf/open/floor/plasteel,
/area/commons/fitness/pool)
+"lCt" = (
+/obj/machinery/light/small{
+ dir = 1;
+ light_color = "#ffc1c1"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
+"lDm" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/cells)
+"lGm" = (
+/obj/machinery/shower{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel/freezer,
+/area/security/prison/cells)
"lGV" = (
/obj/machinery/button/door{
id = "maintdiy";
@@ -56821,6 +58421,9 @@
},
/turf/open/floor/plating,
/area/service/abandoned_gambling_den)
+"lJA" = (
+/turf/closed/wall,
+/area/security/prison/cells)
"lJC" = (
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
dir = 4
@@ -56830,6 +58433,13 @@
},
/turf/open/floor/plating,
/area/security/office)
+"lJS" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
+/turf/open/floor/plasteel,
+/area/security/prison)
"lKj" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
dir = 8
@@ -56839,6 +58449,16 @@
"lLf" = (
/turf/closed/wall/r_wall,
/area/ai_monitored/command/nuke_storage)
+"lLu" = (
+/obj/structure/chair/stool,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"lLA" = (
/obj/machinery/computer/slot_machine{
balance = 15;
@@ -56871,6 +58491,13 @@
},
/turf/open/floor/plasteel,
/area/security/processing)
+"lNQ" = (
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#d1dfff"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"lOr" = (
/obj/structure/table,
/obj/machinery/light/floor,
@@ -56932,6 +58559,13 @@
/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
/turf/open/floor/carpet,
/area/commons/dorms)
+"lUU" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"lVy" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/effect/decal/cleanable/dirt,
@@ -56946,6 +58580,18 @@
/obj/item/light/tube/broken,
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
+"lYI" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/cells)
"lZa" = (
/obj/effect/turf_decal/tile/red{
dir = 1
@@ -56986,6 +58632,17 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel,
/area/security/brig)
+"lZp" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/cells)
"lZs" = (
/obj/effect/decal/cleanable/dirt,
/obj/structure/closet,
@@ -57019,10 +58676,40 @@
dir = 4
},
/area/service/theater)
+"maP" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/cells)
"maT" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/closed/wall,
/area/maintenance/disposal/incinerator)
+"maU" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
+"mbC" = (
+/turf/closed/wall/r_wall,
+/area/security/execution/transfer)
"mbU" = (
/obj/machinery/vr_sleeper{
dir = 8
@@ -57066,10 +58753,59 @@
/obj/structure/bed,
/turf/open/floor/plasteel,
/area/commons/fitness/pool)
+"mhv" = (
+/obj/machinery/door/airlock/security/glass{
+ name = "Visitation Observation";
+ req_access_txt = "2"
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
"mjr" = (
/obj/structure/reagent_dispensers/keg/milk,
/turf/open/floor/wood,
/area/service/bar)
+"mjJ" = (
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"mke" = (
+/obj/machinery/camera{
+ c_tag = "Prison Common Room";
+ dir = 8;
+ network = list("ss13","prison")
+ },
+/obj/machinery/vr_sleeper{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"mkv" = (
/obj/machinery/camera{
c_tag = "Gravity Generator Room";
@@ -57112,11 +58848,28 @@
},
/turf/open/floor/plasteel/freezer,
/area/commons/toilet/locker)
+"mnu" = (
+/obj/machinery/cryopod{
+ dir = 4
+ },
+/obj/effect/turf_decal/bot,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
"mnC" = (
/obj/structure/target_stake,
/obj/item/target/syndicate,
/turf/open/floor/plating,
/area/security/range)
+"moe" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 5
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
"mos" = (
/obj/machinery/light/small{
dir = 8
@@ -57174,6 +58927,17 @@
icon_state = "wood-broken5"
},
/area/maintenance/bar)
+"mpY" = (
+/obj/item/reagent_containers/glass/bucket,
+/obj/item/mop,
+/obj/item/reagent_containers/glass/bottle/ammonia,
+/obj/structure/sink{
+ dir = 4;
+ pixel_x = 12
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/security/prison/upper)
"mqo" = (
/obj/effect/turf_decal/tile/blue{
dir = 4
@@ -57196,6 +58960,14 @@
},
/turf/open/floor/plasteel,
/area/commons/locker)
+"mqQ" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/grille/broken,
+/turf/open/floor/plating,
+/area/maintenance/prison/port)
"mqZ" = (
/obj/item/reagent_containers/glass/beaker,
/turf/open/floor/plating,
@@ -57204,10 +58976,51 @@
/obj/effect/spawner/lootdrop/keg,
/turf/open/floor/wood,
/area/maintenance/bar)
+"msp" = (
+/obj/machinery/computer/arcade/orion_trail,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
+"mte" = (
+/obj/structure/closet/crate,
+/obj/item/reagent_containers/glass/bowl,
+/obj/item/reagent_containers/glass/bowl,
+/obj/item/reagent_containers/glass/bowl,
+/obj/item/reagent_containers/glass/bowl,
+/obj/item/reagent_containers/glass/bowl,
+/obj/item/reagent_containers/glass/bowl,
+/obj/item/reagent_containers/glass/bowl,
+/obj/item/reagent_containers/glass/bowl,
+/obj/item/storage/box/drinkingglasses,
+/obj/item/storage/bag/tray/cafeteria,
+/obj/item/storage/bag/tray/cafeteria,
+/obj/item/storage/bag/tray/cafeteria,
+/obj/item/storage/bag/tray/cafeteria,
+/obj/item/storage/box/drinkingglasses,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/white,
+/area/security/prison/upper)
"mtU" = (
/obj/structure/sign/departments/holy,
/turf/closed/wall,
/area/service/chapel/main)
+"mui" = (
+/obj/machinery/door/airlock/public/glass{
+ name = "Prison Common Room"
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
"muv" = (
/obj/item/radio/intercom{
pixel_y = 25
@@ -57222,6 +59035,29 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/starboard)
+"mvV" = (
+/obj/effect/spawner/lootdrop/prison_contraband,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/bed{
+ dir = 8
+ },
+/obj/item/bedsheet/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
"mwj" = (
/obj/structure/noticeboard{
dir = 8;
@@ -57232,6 +59068,16 @@
},
/turf/open/floor/wood,
/area/command/meeting_room)
+"mwN" = (
+/obj/structure/chair/sofa/left,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"mwS" = (
/turf/open/floor/plating{
icon_state = "platingdmg3"
@@ -57246,6 +59092,21 @@
},
/turf/open/floor/plating,
/area/security/office)
+"mxZ" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/structure/closet/crate/trashcart/laundry,
+/obj/item/clothing/under/rank/prisoner,
+/obj/item/clothing/under/rank/prisoner,
+/obj/item/clothing/under/rank/prisoner/skirt,
+/obj/item/clothing/under/rank/prisoner/skirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/cafeteria,
+/area/security/prison/upper)
"myh" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -57279,6 +59140,30 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
+"mAT" = (
+/obj/machinery/shower{
+ dir = 8;
+ pixel_y = -4
+ },
+/turf/open/floor/plasteel/freezer,
+/area/security/prison/cells)
+"mCm" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/portable_atmospherics/canister/carbon_dioxide,
+/obj/machinery/atmospherics/components/unary/portables_connector/visible{
+ dir = 1
+ },
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/turf/open/floor/plating,
+/area/security/execution/transfer)
+"mCo" = (
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
"mDZ" = (
/obj/effect/turf_decal/tile/neutral{
dir = 1
@@ -57334,6 +59219,18 @@
/obj/effect/decal/cleanable/cobweb,
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
+"mHH" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"mHU" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/structure/light_construct{
@@ -57342,9 +59239,25 @@
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
"mIZ" = (
-/obj/structure/falsewall,
-/turf/open/floor/plating,
-/area/security/prison)
+/obj/machinery/door/firedoor,
+/obj/machinery/door/airlock/security/glass{
+ name = "Cell Block"
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
"mJf" = (
/obj/structure/cable{
icon_state = "0-8"
@@ -57363,6 +59276,16 @@
/obj/item/electronics/airlock,
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
+"mJy" = (
+/obj/structure/table,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"mJH" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/security/prison/cells)
"mLS" = (
/obj/effect/decal/cleanable/dirt/dust,
/turf/open/floor/plating{
@@ -57477,6 +59400,13 @@
},
/turf/open/floor/plasteel,
/area/commons/locker)
+"mZu" = (
+/obj/machinery/door/airlock{
+ name = "Cleaning Closet"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/security/prison/upper)
"mZx" = (
/obj/structure/table/glass,
/obj/item/storage/box/matches{
@@ -57485,6 +59415,18 @@
},
/turf/open/floor/wood/wood_large,
/area/service/chapel/main)
+"naj" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "executionfireblast"
+ },
+/obj/machinery/door/firedoor,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/security/execution/transfer)
"naI" = (
/turf/open/space,
/area/space/station_ruins)
@@ -57536,6 +59478,28 @@
},
/turf/open/floor/plasteel/freezer,
/area/commons/toilet)
+"ncU" = (
+/obj/structure/window/reinforced/tinted{
+ dir = 4
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "visitation";
+ name = "Visitation Shutters"
+ },
+/obj/structure/window/reinforced,
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
"ndq" = (
/turf/open/floor/plating,
/area/service/abandoned_gambling_den)
@@ -57560,6 +59524,17 @@
/obj/machinery/vending/autodrobe,
/turf/open/floor/wood,
/area/maintenance/bar)
+"ngq" = (
+/obj/effect/turf_decal/tile/green,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"ngs" = (
/obj/structure/disposalpipe/segment,
/obj/structure/cable{
@@ -57590,6 +59565,25 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
+"nko" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/landmark/start/prisoner,
+/obj/machinery/light/small{
+ dir = 1;
+ light_color = "#ffc1c1"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
"nkP" = (
/obj/structure/rack,
/obj/effect/spawner/lootdrop/maintenance{
@@ -57640,17 +59634,53 @@
},
/turf/open/floor/plasteel/dark,
/area/maintenance/starboard/fore)
+"noJ" = (
+/obj/structure/closet/secure_closet/brig,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/bot_white,
+/turf/open/floor/plasteel/dark,
+/area/security/prison)
"noL" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 10
},
/turf/open/floor/plating,
/area/maintenance/port/fore)
+"noR" = (
+/obj/structure/sink/kitchen{
+ pixel_y = 28
+ },
+/obj/structure/chair/stool,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/white,
+/area/security/prison/upper)
"noT" = (
/turf/open/floor/wood{
icon_state = "wood-broken4"
},
/area/maintenance/starboard/aft)
+"nqu" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/security/prison/upper)
"nsf" = (
/obj/structure/cable/white{
icon_state = "0-2"
@@ -57773,6 +59803,21 @@
},
/turf/open/space/basic,
/area/space/nearstation)
+"nFA" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/cells)
"nGf" = (
/obj/machinery/hydroponics/constructable,
/obj/machinery/light{
@@ -57837,6 +59882,11 @@
},
/turf/open/floor/plasteel,
/area/commons/locker)
+"nLP" = (
+/obj/item/storage/bag/trash,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/security/prison/upper)
"nNF" = (
/obj/machinery/light{
dir = 1
@@ -57860,6 +59910,23 @@
},
/turf/open/floor/wood,
/area/maintenance/starboard/aft)
+"nRO" = (
+/obj/machinery/door/airlock/security{
+ name = "Permanent Cell 2"
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
"nSt" = (
/obj/effect/turf_decal/tile/neutral{
dir = 4
@@ -57872,6 +59939,10 @@
},
/turf/open/floor/plasteel,
/area/commons/dorms)
+"nSI" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/white,
+/area/security/prison/upper)
"nTG" = (
/obj/structure/chair{
dir = 1
@@ -57929,6 +60000,16 @@
/obj/machinery/atmospherics/pipe/simple/dark/visible,
/turf/open/space,
/area/space/nearstation)
+"nZs" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"nZE" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/effect/turf_decal/tile/neutral,
@@ -57963,6 +60044,21 @@
/obj/item/clothing/head/hardhat/cakehat,
/turf/open/floor/wood,
/area/service/bar)
+"obq" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plating,
+/area/security/prison/upper)
+"obs" = (
+/obj/machinery/light/small{
+ dir = 1;
+ light_color = "#ffc1c1"
+ },
+/turf/open/floor/padded,
+/area/security/execution/transfer)
"oby" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
@@ -58015,6 +60111,12 @@
},
/turf/open/floor/plasteel,
/area/commons/fitness/pool)
+"oiY" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"okK" = (
/obj/machinery/light/small{
dir = 8
@@ -58071,6 +60173,11 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel/white,
/area/science/circuit)
+"olH" = (
+/obj/structure/closet/crate,
+/obj/effect/spawner/lootdrop/prison_contraband,
+/turf/open/floor/plasteel/white,
+/area/security/prison/upper)
"omk" = (
/obj/machinery/atmospherics/pipe/manifold/cyan/visible{
dir = 1
@@ -58096,6 +60203,33 @@
/obj/machinery/holopad,
/turf/open/floor/plasteel,
/area/security/prison)
+"ooF" = (
+/obj/effect/turf_decal/stripes/white/line,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/machinery/firealarm{
+ dir = 1;
+ pixel_y = -24
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
+"oqf" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/cells)
"oqj" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
@@ -58117,6 +60251,21 @@
},
/turf/open/floor/plasteel,
/area/engineering/gravity_generator)
+"oss" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/corner{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 6
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/cells)
"otC" = (
/obj/machinery/status_display/evac,
/turf/closed/wall/r_wall,
@@ -58209,6 +60358,22 @@
},
/turf/open/floor/plating,
/area/maintenance/fore/secondary)
+"ozh" = (
+/obj/machinery/door/window/eastright{
+ dir = 8;
+ name = "Holding Cell"
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison)
"oAB" = (
/obj/structure/fireplace{
pixel_y = -6
@@ -58263,6 +60428,11 @@
"oHB" = (
/turf/open/floor/plasteel/dark,
/area/commons/dorms)
+"oIl" = (
+/obj/structure/weightmachine/weightlifter,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"oIJ" = (
/obj/structure/chair/comfy/brown{
dir = 8
@@ -58291,6 +60461,14 @@
},
/turf/open/floor/wood,
/area/maintenance/bar)
+"oKB" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"oLl" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -58308,6 +60486,19 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel/dark,
/area/hallway/primary/central)
+"oPY" = (
+/obj/structure/window/reinforced/tinted{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"oQP" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel/grimy,
@@ -58318,17 +60509,6 @@
},
/turf/closed/wall,
/area/medical/medbay/central)
-"oSl" = (
-/obj/machinery/door/airlock/security{
- name = "Firing Range";
- req_access_txt = "2"
- },
-/obj/structure/cable{
- icon_state = "1-2"
- },
-/obj/machinery/door/firedoor,
-/turf/open/floor/plasteel,
-/area/security/range)
"oTH" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/machinery/shower,
@@ -58351,10 +60531,22 @@
/obj/machinery/disposal/bin,
/turf/open/floor/plasteel/white,
/area/science/circuit)
+"oUF" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/security/prison/upper)
"oVo" = (
/obj/structure/pool/ladder,
/turf/open/pool,
/area/commons/fitness/pool)
+"oVL" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"oVN" = (
/obj/machinery/meter,
/obj/machinery/atmospherics/pipe/manifold/cyan/visible,
@@ -58366,6 +60558,28 @@
},
/turf/closed/wall/r_wall,
/area/engineering/atmos)
+"oXV" = (
+/obj/structure/window/reinforced/tinted{
+ dir = 8
+ },
+/obj/machinery/door/poddoor/shutters{
+ id = "visitation";
+ name = "Visitation Shutters"
+ },
+/obj/structure/window/reinforced,
+/obj/structure/table/reinforced,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
"oZl" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/structure/closet/wardrobe/pjs,
@@ -58418,6 +60632,24 @@
},
/turf/open/floor/wood,
/area/service/library)
+"peD" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
+"peE" = (
+/obj/structure/table/reinforced,
+/obj/structure/reagent_dispensers/servingdish,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"pgf" = (
/turf/open/floor/mineral/titanium/blue,
/area/commons/dorms)
@@ -58427,6 +60659,23 @@
},
/turf/open/floor/plating,
/area/security/range)
+"pgq" = (
+/obj/machinery/door/airlock/public/glass{
+ name = "Prison Common Room"
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
"pgZ" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -58493,6 +60742,16 @@
},
/turf/open/floor/plasteel,
/area/security/brig)
+"pnb" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on,
+/turf/open/floor/plasteel/cafeteria,
+/area/security/prison/upper)
"pnc" = (
/obj/effect/turf_decal/tile/blue,
/obj/effect/turf_decal/tile/blue{
@@ -58608,6 +60867,12 @@
},
/turf/open/floor/plating,
/area/maintenance/port/fore)
+"pwF" = (
+/obj/machinery/shower{
+ dir = 4
+ },
+/turf/open/floor/plasteel/freezer,
+/area/security/prison/cells)
"pzG" = (
/obj/item/radio/intercom{
name = "Station Intercom (General)";
@@ -58653,6 +60918,18 @@
},
/turf/open/floor/plasteel,
/area/security/brig)
+"pBd" = (
+/obj/machinery/power/apc{
+ areastring = "/area/maintenance/prison/starboard";
+ dir = 8;
+ name = "Prison Starboard Maintenance APC";
+ pixel_x = -25
+ },
+/obj/effect/turf_decal/bot,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/maintenance/prison/starboard)
"pBp" = (
/obj/effect/landmark/event_spawn,
/turf/closed/wall,
@@ -58686,6 +60963,24 @@
/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
+"pFj" = (
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/light/small{
+ dir = 4;
+ light_color = "#d8b1b1"
+ },
+/turf/open/floor/plasteel,
+/area/security/execution/transfer)
+"pFt" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/security/prison/cells)
"pFY" = (
/obj/effect/turf_decal/stripes/line{
dir = 6
@@ -58695,6 +60990,17 @@
},
/turf/open/floor/plasteel,
/area/hallway/secondary/entry)
+"pGA" = (
+/obj/machinery/hydroponics/soil,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"pHl" = (
/obj/structure/table,
/obj/item/storage/box/beakers{
@@ -58730,6 +61036,15 @@
},
/turf/open/floor/plasteel/dark,
/area/hallway/primary/central)
+"pHK" = (
+/obj/machinery/camera{
+ c_tag = "Prison Yard";
+ dir = 4;
+ network = list("ss13","prison")
+ },
+/obj/structure/chair/stool,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"pHO" = (
/obj/effect/turf_decal/tile/blue,
/obj/structure/sign/poster/contraband/fun_police{
@@ -58737,6 +61052,28 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/fore)
+"pIR" = (
+/obj/structure/closet/secure_closet/brig,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/bot_white,
+/obj/machinery/camera{
+ c_tag = "Prison Hallway West";
+ network = list("ss13","prison")
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison)
"pJR" = (
/obj/structure/disposalpipe/segment,
/obj/structure/chair/comfy/brown{
@@ -58805,6 +61142,25 @@
"pQN" = (
/turf/open/floor/plasteel/dark,
/area/hallway/primary/central)
+"pRi" = (
+/obj/structure/table,
+/obj/item/razor,
+/obj/item/toy/plush/borgplushie{
+ desc = "A horrible abomination to God in plushie form. Legends say this is used to torture prisoners by repeatedly beating them in the head with it.. ..It feels sorta heavy.";
+ force = 1;
+ name = "dogborg plushie";
+ throwforce = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple,
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
"pRj" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 6
@@ -58829,6 +61185,39 @@
},
/turf/open/space,
/area/solars/starboard/aft)
+"pTT" = (
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
+"pUf" = (
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"pUy" = (
/obj/effect/turf_decal/tile/red,
/obj/effect/turf_decal/tile/red{
@@ -58870,6 +61259,23 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
+"pZD" = (
+/obj/machinery/door/airlock/security{
+ name = "Permanent Cell 1"
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
"qae" = (
/obj/effect/decal/cleanable/vomit,
/obj/effect/decal/cleanable/dirt,
@@ -58884,6 +61290,20 @@
/obj/effect/turf_decal/stripes/line,
/turf/open/floor/plasteel,
/area/service/bar)
+"qbk" = (
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
+"qcU" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"qeb" = (
/obj/structure/cable{
icon_state = "0-8"
@@ -58938,6 +61358,20 @@
/obj/effect/spawner/structure/window,
/turf/open/floor/wood,
/area/service/library)
+"qgj" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/light{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/cells)
"qje" = (
/obj/structure/sign/mining{
pixel_y = 7
@@ -58993,11 +61427,6 @@
icon_state = "panelscorched"
},
/area/maintenance/starboard/aft)
-"qmn" = (
-/obj/machinery/computer/libraryconsole/bookmanagement,
-/obj/structure/table,
-/turf/open/floor/plasteel,
-/area/security/prison)
"qnC" = (
/obj/machinery/door/firedoor,
/turf/open/floor/plasteel/white,
@@ -59015,6 +61444,18 @@
},
/turf/open/floor/plasteel,
/area/science/circuit)
+"qto" = (
+/obj/machinery/hydroponics/soil,
+/obj/item/shovel/spade,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"qtw" = (
/obj/machinery/door/airlock/external{
dir = 2;
@@ -59049,6 +61490,26 @@
/obj/structure/grille/broken,
/turf/open/space/basic,
/area/space/nearstation)
+"qvc" = (
+/obj/structure/table,
+/obj/structure/window,
+/obj/item/reagent_containers/food/condiment/saltshaker{
+ layer = 3.1;
+ pixel_x = -2;
+ pixel_y = 2
+ },
+/obj/item/reagent_containers/food/condiment/peppermill{
+ desc = "Often used to flavor food or make people sneeze. Fashionably moved to the left side of the table.";
+ pixel_x = -8;
+ pixel_y = 2
+ },
+/obj/item/reagent_containers/food/condiment/enzyme{
+ pixel_x = 9;
+ pixel_y = 3
+ },
+/obj/item/book/manual/chef_recipes,
+/turf/open/floor/plasteel/white,
+/area/security/prison/upper)
"qvf" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
@@ -59058,6 +61519,14 @@
},
/turf/open/floor/plasteel,
/area/commons/dorms)
+"qwA" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/security/prison/cells)
"qAu" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 4
@@ -59073,6 +61542,9 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/port)
+"qCc" = (
+/turf/closed/wall,
+/area/maintenance/prison/port)
"qCw" = (
/obj/structure/chair/stool{
pixel_y = 8
@@ -59113,6 +61585,20 @@
},
/turf/open/floor/plasteel/dark,
/area/maintenance/starboard/aft)
+"qFK" = (
+/obj/machinery/biogenerator,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"qGw" = (
/obj/structure/chair/pew/right{
dir = 8
@@ -59128,6 +61614,15 @@
"qIO" = (
/turf/open/floor/plating/rust,
/area/maintenance/starboard/aft)
+"qIW" = (
+/obj/effect/turf_decal/stripes/line{
+ dir = 9
+ },
+/obj/machinery/atmospherics/components/unary/outlet_injector/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
"qJr" = (
/obj/structure/lattice/catwalk,
/obj/structure/cable{
@@ -59140,6 +61635,16 @@
/obj/structure/lattice,
/turf/open/space,
/area/space/nearstation)
+"qLo" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/security/prison/cells)
"qLy" = (
/obj/structure/chair/sofa/left{
dir = 8
@@ -59177,6 +61682,29 @@
/obj/effect/decal/cleanable/blood/gibs/core,
/turf/open/floor/plasteel/dark,
/area/maintenance/starboard/aft)
+"qNU" = (
+/obj/machinery/door/poddoor/preopen{
+ id = "executionfireblast"
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/door/window/westright{
+ dir = 2;
+ name = "Transfer Room";
+ req_access_txt = "2"
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
"qOc" = (
/obj/effect/turf_decal/tile/green{
dir = 8
@@ -59197,6 +61725,36 @@
},
/turf/open/floor/plasteel,
/area/hallway/primary/port)
+"qOY" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/prison/starboard)
+"qQK" = (
+/obj/machinery/hydroponics/soil,
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
+"qRI" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"qSf" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/structure/cable{
@@ -59256,9 +61814,12 @@
/turf/open/pool,
/area/commons/fitness/pool)
"qXg" = (
-/obj/structure/chair/sofa/left,
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/vending/cola/red{
+ onstation = 0
+ },
/turf/open/floor/plasteel,
-/area/security/prison)
+/area/security/prison/upper)
"qXJ" = (
/obj/machinery/atmospherics/pipe/heat_exchanging/simple{
dir = 9
@@ -59266,10 +61827,42 @@
/obj/structure/lattice,
/turf/open/space/basic,
/area/space/nearstation)
+"qYa" = (
+/obj/machinery/airalarm{
+ dir = 8;
+ pixel_x = 24
+ },
+/obj/effect/turf_decal/bot_white,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/spawner/lootdrop/maintenance,
+/turf/open/floor/plating,
+/area/maintenance/prison/port)
"qZD" = (
/obj/effect/decal/cleanable/egg_smudge,
/turf/open/floor/plating,
/area/maintenance/port/fore)
+"qZQ" = (
+/obj/structure/holohoop{
+ dir = 8
+ },
+/obj/effect/turf_decal/stripes/white/line{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
+"qZT" = (
+/obj/machinery/shower{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel/freezer,
+/area/security/prison/cells)
"raH" = (
/obj/machinery/atmospherics/pipe/manifold/orange/hidden{
dir = 8
@@ -59313,11 +61906,6 @@
id = "Cell 1";
name = "Cell 1 Locker"
},
-/obj/item/radio/headset{
- desc = "An updated, modular intercom that fits over the head. Takes encryption keys. It looks like it has been modified to not broadcast.";
- name = "prisoner headset";
- prison_radio = 1
- },
/obj/structure/cable{
icon_state = "1-4"
},
@@ -59330,6 +61918,12 @@
},
/turf/open/floor/plasteel,
/area/security/brig)
+"rcV" = (
+/obj/structure/sign/warning/securearea{
+ pixel_y = -32
+ },
+/turf/open/space/basic,
+/area/space)
"rdl" = (
/obj/effect/spawner/structure/window/reinforced,
/obj/machinery/atmospherics/pipe/simple/cyan/visible{
@@ -59345,6 +61939,10 @@
},
/turf/open/floor/plasteel/dark,
/area/service/hydroponics)
+"ref" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/prison)
"reA" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -59356,6 +61954,40 @@
/obj/machinery/vending/games,
/turf/open/floor/plasteel,
/area/commons/fitness)
+"reE" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/cells)
+"rgu" = (
+/obj/structure/window/reinforced{
+ dir = 4
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/binary/pump{
+ dir = 4;
+ layer = 2.4
+ },
+/turf/open/floor/plating,
+/area/security/execution/transfer)
"rgL" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 4
@@ -59437,6 +62069,17 @@
/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/plasteel,
/area/commons/dorms)
+"rqq" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"rqE" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 9
@@ -59451,6 +62094,18 @@
/obj/item/clothing/under/dress/sundress,
/turf/open/floor/plasteel,
/area/commons/fitness)
+"rsn" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "executionfireblast"
+ },
+/obj/machinery/door/firedoor,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/obj/machinery/atmospherics/pipe/simple,
+/turf/open/floor/plating,
+/area/security/execution/transfer)
"rsp" = (
/obj/effect/turf_decal/stripes/line,
/obj/structure/table,
@@ -59490,6 +62145,27 @@
/obj/effect/turf_decal/tile/neutral,
/turf/open/floor/plasteel,
/area/commons/dorms)
+"ruu" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/door/firedoor,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/machinery/door/airlock/security/glass{
+ id_tag = "permaouter";
+ name = "Permabrig Transfer";
+ req_access_txt = "2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison)
"rvr" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
@@ -59507,12 +62183,12 @@
/turf/open/floor/plasteel,
/area/commons/fitness)
"rvS" = (
-/obj/structure/chair/comfy/brown{
- color = "#66b266";
- dir = 1
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
},
/turf/open/floor/plasteel,
-/area/security/prison)
+/area/security/prison/upper)
"rwj" = (
/obj/machinery/light/small{
dir = 1
@@ -59540,6 +62216,21 @@
},
/turf/open/floor/wood/wood_large,
/area/service/chapel/main)
+"ryi" = (
+/obj/machinery/airalarm{
+ pixel_y = 23
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/cells)
"ryr" = (
/obj/effect/turf_decal/tile/blue,
/obj/effect/turf_decal/tile/blue{
@@ -59559,12 +62250,41 @@
},
/turf/open/floor/plasteel,
/area/security/brig)
+"rAW" = (
+/obj/effect/turf_decal/stripes/line,
+/obj/machinery/flasher{
+ id = "executionflash";
+ pixel_y = -25
+ },
+/obj/machinery/light/small,
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
"rBq" = (
/obj/item/clothing/head/kitty,
/obj/item/clothing/under/costume/maid,
/obj/item/clothing/mask/muzzle,
/turf/open/floor/plating,
/area/maintenance/bar)
+"rBK" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"rBY" = (
+/obj/structure/bed,
+/turf/open/floor/padded,
+/area/security/execution/transfer)
"rCl" = (
/obj/machinery/door/firedoor,
/obj/effect/mapping_helpers/airlock/cyclelink_helper{
@@ -59587,6 +62307,19 @@
},
/turf/open/floor/plasteel,
/area/security/brig)
+"rDc" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"rDh" = (
/obj/effect/turf_decal/tile/blue{
dir = 8
@@ -59605,6 +62338,15 @@
/obj/item/toy/crayon/spraycan/lubecan,
/turf/open/floor/plasteel,
/area/service/theater)
+"rDm" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"rGo" = (
/obj/machinery/light/small{
dir = 1
@@ -59697,6 +62439,12 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
+"rTj" = (
+/obj/structure/chair{
+ dir = 4
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/security/prison/upper)
"rTo" = (
/obj/machinery/atmospherics/components/binary/pump{
dir = 8;
@@ -59711,6 +62459,12 @@
/obj/effect/spawner/structure/window,
/turf/open/floor/plating,
/area/medical/medbay/central)
+"rUr" = (
+/obj/effect/spawner/lootdrop/prison_contraband,
+/obj/structure/rack,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/maintenance/prison/port)
"rVy" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/decal/cleanable/dirt,
@@ -59806,10 +62560,6 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/closed/wall/r_wall,
/area/engineering/engine_smes)
-"saX" = (
-/obj/item/reagent_containers/glass/bucket,
-/turf/open/floor/grass,
-/area/security/prison)
"sci" = (
/obj/machinery/vr_sleeper{
dir = 4
@@ -59827,6 +62577,11 @@
dir = 4
},
/area/commons/fitness)
+"sew" = (
+/obj/structure/table,
+/obj/machinery/microwave,
+/turf/open/floor/plasteel/white,
+/area/security/prison/upper)
"seP" = (
/obj/structure/cable{
icon_state = "0-8"
@@ -59845,12 +62600,60 @@
/obj/effect/spawner/lootdrop/maintenance,
/turf/open/floor/plating,
/area/maintenance/fore)
+"sfz" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/bed,
+/obj/item/bedsheet/red,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
"shR" = (
/obj/effect/turf_decal/stripes/line{
dir = 8
},
/turf/open/floor/plating/airless,
/area/space/nearstation)
+"siz" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
+"ske" = (
+/obj/machinery/camera{
+ c_tag = "Permabrig South";
+ dir = 1;
+ network = list("ss13","prison")
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"slk" = (
/obj/machinery/door/airlock/maintenance{
req_access_txt = "12"
@@ -59905,6 +62708,17 @@
},
/turf/open/floor/plating,
/area/service/abandoned_gambling_den)
+"ssc" = (
+/obj/effect/turf_decal/stripes/white/line,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"ssB" = (
/obj/effect/turf_decal/tile/green{
dir = 1
@@ -59932,6 +62746,13 @@
/obj/item/toy/poolnoodle/yellow,
/turf/open/floor/plasteel,
/area/commons/fitness/pool)
+"suC" = (
+/obj/machinery/shower{
+ dir = 4
+ },
+/obj/item/soap/nanotrasen,
+/turf/open/floor/plasteel/freezer,
+/area/security/prison/cells)
"suN" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/effect/landmark/event_spawn,
@@ -59940,6 +62761,18 @@
},
/turf/open/floor/plasteel,
/area/science/circuit)
+"suS" = (
+/obj/structure/table,
+/obj/item/storage/fancy/egg_box,
+/obj/item/reagent_containers/food/condiment/flour,
+/obj/item/reagent_containers/food/condiment/rice,
+/obj/machinery/light{
+ dir = 4;
+ light_color = "#e8eaff"
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/white,
+/area/security/prison/upper)
"sxs" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/obj/structure/table,
@@ -59960,6 +62793,18 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
/area/hallway/primary/port)
+"szf" = (
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
+"szn" = (
+/turf/closed/wall/r_wall,
+/area/security/prison/cells)
"sAk" = (
/obj/structure/cable{
icon_state = "1-8"
@@ -59969,6 +62814,11 @@
},
/turf/open/floor/plasteel,
/area/security/brig)
+"sAm" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"sAH" = (
/obj/effect/decal/cleanable/dirt,
/obj/effect/turf_decal/tile/neutral{
@@ -59989,6 +62839,37 @@
icon_state = "wood-broken6"
},
/area/maintenance/bar)
+"sAT" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
+"sBM" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"sCa" = (
/obj/structure/rack,
/obj/item/circuitboard/machine/monkey_recycler,
@@ -60039,6 +62920,12 @@
},
/turf/open/floor/plasteel,
/area/commons/dorms)
+"sHd" = (
+/obj/machinery/door/window/southleft{
+ name = "Permabrig Kitchen"
+ },
+/turf/open/floor/plasteel/white,
+/area/security/prison/upper)
"sHx" = (
/obj/structure/table,
/obj/item/book/manual/hydroponics_pod_people{
@@ -60051,6 +62938,13 @@
},
/turf/open/floor/plasteel,
/area/service/hydroponics)
+"sIn" = (
+/obj/machinery/light/small{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/maintenance/prison/starboard)
"sJw" = (
/obj/effect/turf_decal/stripes/line{
dir = 10
@@ -60083,6 +62977,12 @@
},
/turf/open/floor/plasteel,
/area/commons/fitness)
+"sKA" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/closed/wall,
+/area/security/execution/transfer)
"sKL" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/structure/grille/broken,
@@ -60102,6 +63002,12 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
+"sMu" = (
+/obj/structure/lattice,
+/obj/structure/lattice,
+/obj/structure/grille,
+/turf/open/space/basic,
+/area/space/nearstation)
"sMG" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 4
@@ -60115,6 +63021,12 @@
/obj/item/storage/secure/briefcase,
/turf/open/floor/plasteel,
/area/commons/locker)
+"sNj" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"sOs" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -60240,10 +63152,44 @@
},
/turf/open/floor/plasteel,
/area/service/theater)
+"sYV" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"tal" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/closed/wall,
/area/hallway/secondary/service)
+"tbR" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/toilet{
+ dir = 8
+ },
+/obj/structure/window/reinforced/tinted{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
"tcU" = (
/obj/machinery/door/airlock/maintenance{
req_access_txt = "46"
@@ -60254,6 +63200,37 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plating,
/area/maintenance/fore)
+"tdd" = (
+/obj/machinery/camera{
+ c_tag = "Prison Cell Block North";
+ dir = 4;
+ network = list("ss13","prison")
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/cells)
+"teq" = (
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/machinery/light,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"teS" = (
/obj/structure/chair/stool{
pixel_y = 8
@@ -60280,11 +63257,24 @@
/turf/open/floor/plating,
/area/maintenance/port/fore)
"thB" = (
-/obj/structure/sign/warning/securearea{
- pixel_y = -32
+/obj/effect/turf_decal/tile/green{
+ dir = 4
},
-/turf/open/space,
-/area/space)
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#cee5d2"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"tif" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
@@ -60303,6 +63293,19 @@
/obj/machinery/atmospherics/pipe/manifold/supply/hidden,
/turf/open/floor/plasteel,
/area/commons/dorms)
+"tkx" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/cells)
"tkB" = (
/obj/structure/sign/poster/official/help_others{
pixel_y = -32
@@ -60323,6 +63326,22 @@
},
/turf/open/floor/plating,
/area/security/range)
+"tnH" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#cee5d2"
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/cells)
"tnL" = (
/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
dir = 8
@@ -60338,6 +63357,10 @@
},
/turf/open/floor/carpet,
/area/commons/cryopod)
+"tqk" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
+/turf/closed/wall,
+/area/security/execution/transfer)
"tqB" = (
/obj/effect/turf_decal/stripes/line{
dir = 5
@@ -60364,6 +63387,28 @@
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/turf/open/floor/plasteel,
/area/hallway/primary/port)
+"tso" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/toilet{
+ dir = 4
+ },
+/obj/structure/window/reinforced/tinted{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
"tsq" = (
/obj/structure/cable/white{
icon_state = "0-4"
@@ -60412,6 +63457,48 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
/turf/open/floor/plasteel/white,
/area/medical/medbay/central)
+"txs" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/window/reinforced/tinted{
+ dir = 4
+ },
+/obj/structure/toilet{
+ dir = 1
+ },
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"tyb" = (
+/obj/machinery/door/poddoor/shutters{
+ id = "visitation";
+ name = "Visitation Shutters"
+ },
+/obj/machinery/door/window/southright,
+/obj/structure/table/reinforced,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
"tyE" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -60459,6 +63546,10 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/engineering/atmos)
+"tAS" = (
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"tBV" = (
/turf/closed/wall,
/area/medical/storage)
@@ -60532,6 +63623,18 @@
dir = 1
},
/area/hallway/secondary/entry)
+"tHO" = (
+/obj/structure/table/reinforced,
+/obj/item/storage/bag/tray/cafeteria,
+/obj/item/storage/bag/tray/cafeteria,
+/obj/item/storage/bag/tray/cafeteria,
+/obj/item/storage/bag/tray/cafeteria,
+/obj/item/storage/bag/tray/cafeteria,
+/obj/item/storage/bag/tray/cafeteria,
+/obj/item/storage/bag/tray/cafeteria,
+/obj/item/storage/bag/tray/cafeteria,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"tIE" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on{
dir = 8
@@ -60549,6 +63652,23 @@
/obj/structure/musician/piano,
/turf/open/floor/wood,
/area/service/theater)
+"tJE" = (
+/obj/machinery/door/airlock/security/glass{
+ name = "Isolation Cell";
+ req_access_txt = "2"
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
"tJK" = (
/obj/machinery/door/airlock/engineering{
name = "Gravity Generator";
@@ -60591,6 +63711,12 @@
},
/turf/open/floor/plasteel,
/area/commons/dorms)
+"tLC" = (
+/obj/machinery/vr_sleeper{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"tMl" = (
/obj/effect/turf_decal/loading_area,
/turf/open/floor/plasteel/showroomfloor,
@@ -60607,6 +63733,23 @@
},
/turf/open/floor/plasteel,
/area/engineering/gravity_generator)
+"tOk" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/cells)
"tOq" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 4
@@ -60618,6 +63761,12 @@
/obj/structure/table/wood,
/turf/open/floor/wood,
/area/maintenance/bar)
+"tPY" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/turf/open/floor/plasteel/cafeteria,
+/area/security/prison/upper)
"tRe" = (
/obj/machinery/chem_master,
/turf/open/floor/plasteel/white,
@@ -60676,6 +63825,20 @@
icon_state = "wood-broken5"
},
/area/maintenance/port/fore)
+"tWe" = (
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"tWj" = (
/obj/structure/window/reinforced,
/turf/open/floor/wood,
@@ -60694,6 +63857,12 @@
},
/turf/closed/wall/r_wall,
/area/maintenance/disposal/incinerator)
+"tYg" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"tZa" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -60750,6 +63919,19 @@
},
/turf/open/floor/plating,
/area/maintenance/fore/secondary)
+"ueN" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/cafeteria,
+/area/security/prison/upper)
"ueZ" = (
/obj/item/radio/intercom{
name = "Station Intercom (General)";
@@ -60777,6 +63959,9 @@
dir = 4
},
/area/commons/fitness)
+"ugi" = (
+/turf/open/floor/plasteel/cafeteria,
+/area/security/prison/upper)
"ugp" = (
/obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{
dir = 4
@@ -60816,6 +64001,16 @@
/obj/effect/decal/cleanable/blood/gibs/human/lizard/body,
/turf/open/floor/plasteel/dark,
/area/maintenance/starboard/aft)
+"uhK" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plating,
+/area/security/prison/upper)
"ujv" = (
/obj/structure/sign/departments/restroom,
/turf/closed/wall,
@@ -60878,6 +64073,15 @@
},
/turf/open/floor/plasteel/grimy,
/area/security/detectives_office)
+"uql" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison)
"uqu" = (
/obj/machinery/hydroponics/soil{
pixel_y = 8
@@ -60902,6 +64106,17 @@
/obj/machinery/atmospherics/components/binary/valve,
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
+"uuw" = (
+/obj/machinery/hydroponics/soil,
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"uuG" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -61046,12 +64261,6 @@
/obj/effect/spawner/structure/window/reinforced,
/turf/open/floor/plating,
/area/commons/fitness/pool)
-"uEI" = (
-/obj/structure/chair/comfy/brown{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/security/prison)
"uFp" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -61088,8 +64297,19 @@
/turf/open/floor/plasteel,
/area/security/processing)
"uGI" = (
-/turf/open/floor/grass,
-/area/security/prison)
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"uHc" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 4
@@ -61132,11 +64352,43 @@
/obj/machinery/door/window,
/turf/open/floor/wood,
/area/service/theater)
+"uJY" = (
+/obj/structure/chair/comfy/brown{
+ color = "#596479";
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
+"uKW" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/security/prison/upper)
"uOd" = (
/turf/open/floor/plasteel/white/side{
dir = 4
},
/area/service/theater)
+"uOm" = (
+/obj/machinery/light/small{
+ dir = 1;
+ light_color = "#ffc1c1"
+ },
+/obj/effect/decal/cleanable/dirt,
+/mob/living/simple_animal/mouse/brown/Tom,
+/turf/open/floor/plating,
+/area/security/prison/upper)
"uOJ" = (
/obj/structure/cable{
icon_state = "1-8"
@@ -61198,6 +64450,12 @@
},
/turf/open/floor/plasteel,
/area/commons/locker)
+"uUb" = (
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"uUP" = (
/obj/structure/cable/white,
/obj/structure/cable/white{
@@ -61239,6 +64497,11 @@
},
/turf/closed/wall/r_wall,
/area/ai_monitored/turret_protected/ai_upload)
+"uZY" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/security/prison/upper)
"vae" = (
/obj/effect/turf_decal/stripes/line{
dir = 4
@@ -61338,6 +64601,27 @@
},
/turf/open/floor/plating,
/area/maintenance/fore)
+"vhy" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
+"vim" = (
+/obj/machinery/computer/arcade/minesweeper,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"viF" = (
/obj/structure/disposalpipe/segment{
dir = 4
@@ -61345,6 +64629,28 @@
/obj/machinery/door/firedoor,
/turf/open/floor/plasteel,
/area/hallway/primary/port)
+"viH" = (
+/obj/machinery/camera{
+ c_tag = "Permabrig Central";
+ dir = 8;
+ network = list("ss13","prison")
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 10
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "2-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"vjm" = (
/obj/structure/table/wood,
/obj/item/reagent_containers/rag,
@@ -61353,6 +64659,12 @@
},
/turf/open/floor/wood,
/area/maintenance/bar)
+"vli" = (
+/obj/structure/lattice,
+/obj/structure/grille,
+/obj/structure/lattice,
+/turf/open/space/basic,
+/area/space/nearstation)
"vmQ" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 10
@@ -61483,6 +64795,25 @@
},
/turf/open/floor/wood,
/area/service/library)
+"vws" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden,
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/cells)
+"vwQ" = (
+/obj/structure/bookcase,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"vxh" = (
/turf/open/floor/plating{
icon_state = "platingdmg1"
@@ -61586,6 +64917,22 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
+"vCS" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "1-4"
+ },
+/obj/machinery/atmospherics/pipe/simple,
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
"vEi" = (
/obj/structure/cable{
icon_state = "4-8"
@@ -61621,6 +64968,25 @@
},
/turf/open/floor/plasteel,
/area/engineering/gravity_generator)
+"vFZ" = (
+/obj/effect/spawner/lootdrop/prison_contraband,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/structure/bed,
+/obj/item/bedsheet/red,
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
"vGn" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -61662,6 +65028,9 @@
},
/turf/open/floor/plasteel,
/area/commons/fitness)
+"vHK" = (
+/turf/closed/wall,
+/area/maintenance/prison/starboard)
"vHT" = (
/obj/machinery/door/firedoor,
/obj/structure/sign/departments/evac{
@@ -61729,6 +65098,17 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/maintenance/fore)
+"vMi" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"vOC" = (
/obj/structure/lattice,
/obj/machinery/atmospherics/pipe/simple/dark/visible{
@@ -61781,6 +65161,14 @@
},
/turf/open/floor/plasteel,
/area/engineering/atmos)
+"vRN" = (
+/obj/structure/closet/crate,
+/obj/item/stack/license_plates/empty/fifty,
+/obj/item/stack/license_plates/empty/fifty,
+/obj/item/stack/license_plates/empty/fifty,
+/obj/item/stack/license_plates/empty/fifty,
+/turf/open/floor/plating,
+/area/security/prison/upper)
"vTP" = (
/obj/machinery/door/airlock/external{
name = "Labor Camp Shuttle Airlock";
@@ -61791,6 +65179,25 @@
},
/turf/open/floor/plating,
/area/security/processing)
+"vYF" = (
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/cells)
+"vYY" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"vZA" = (
/obj/structure/lattice/catwalk,
/obj/structure/cable,
@@ -61808,6 +65215,18 @@
},
/turf/open/floor/plasteel,
/area/commons/fitness/pool)
+"waX" = (
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/obj/structure/cable{
+ icon_state = "2-4"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
"wbE" = (
/obj/effect/turf_decal/tile/blue{
alpha = 255
@@ -61836,6 +65255,15 @@
"wcR" = (
/turf/open/floor/plasteel/yellowsiding/corner,
/area/commons/fitness/pool)
+"wcS" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/cells)
"wdr" = (
/obj/machinery/door/window/southleft{
name = "Target Storage"
@@ -61854,6 +65282,21 @@
/obj/structure/girder,
/turf/open/floor/plating/airless,
/area/space/nearstation)
+"weW" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 1
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/cells)
"wfC" = (
/obj/structure/chair/stool{
pixel_y = 8
@@ -61868,6 +65311,17 @@
/obj/item/assembly/signaler,
/turf/open/floor/plating,
/area/maintenance/bar)
+"wgu" = (
+/obj/machinery/door/airlock/maintenance{
+ name = "Permabrig Maintenance";
+ req_access_txt = "1"
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plating,
+/area/maintenance/prison/port)
"wig" = (
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 5
@@ -61902,6 +65356,13 @@
"wkN" = (
/turf/closed/wall,
/area/science/circuit)
+"wkU" = (
+/obj/machinery/light{
+ dir = 8;
+ light_color = "#e8eaff"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"wlg" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -61912,6 +65373,15 @@
/obj/effect/decal/cleanable/dirt,
/turf/open/floor/plating,
/area/maintenance/port/fore)
+"wll" = (
+/obj/structure/toilet{
+ dir = 1
+ },
+/obj/structure/window/reinforced/tinted{
+ dir = 4
+ },
+/turf/open/floor/padded,
+/area/security/execution/transfer)
"wly" = (
/obj/structure/rack,
/obj/effect/spawner/lootdrop/maintenance{
@@ -61934,6 +65404,15 @@
},
/turf/open/floor/plating,
/area/engineering/main)
+"wnX" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel/freezer,
+/area/security/prison/cells)
"woR" = (
/obj/machinery/cryopod{
dir = 1
@@ -61954,6 +65433,22 @@
},
/turf/open/floor/plating,
/area/construction/mining/aux_base)
+"wpV" = (
+/obj/machinery/seed_extractor,
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/machinery/light{
+ dir = 1;
+ light_color = "#d1dfff"
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"wql" = (
/turf/closed/wall/r_wall,
/area/command/gateway)
@@ -62075,6 +65570,28 @@
},
/turf/open/floor/plating,
/area/maintenance/fore/secondary)
+"wAj" = (
+/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"wAN" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/green,
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"wBd" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 6
@@ -62113,6 +65630,12 @@
/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden,
/turf/open/floor/plating,
/area/maintenance/starboard/fore)
+"wIl" = (
+/obj/structure/bed,
+/obj/effect/spawner/lootdrop/bedsheet,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plating,
+/area/space)
"wII" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
/obj/machinery/door/airlock/maintenance,
@@ -62190,6 +65713,38 @@
icon_state = "platingdmg3"
},
/area/maintenance/starboard/aft)
+"wVq" = (
+/obj/machinery/door/airlock/security{
+ name = "Prison Workshop"
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
+"wVt" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/atmospherics/pipe/manifold/supply/hidden{
+ dir = 1
+ },
+/obj/structure/cable{
+ icon_state = "4-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/cells)
"wVN" = (
/obj/structure/falsewall,
/turf/open/floor/plating,
@@ -62222,11 +65777,9 @@
/turf/open/floor/plasteel,
/area/commons/fitness/pool)
"wYc" = (
-/obj/machinery/vr_sleeper{
- dir = 8
- },
-/turf/open/floor/plasteel,
-/area/security/prison)
+/obj/structure/table,
+/turf/open/floor/plasteel/cafeteria,
+/area/security/prison/upper)
"wYn" = (
/obj/structure/plasticflaps/opaque,
/obj/structure/sign/poster/contraband/free_drone{
@@ -62281,6 +65834,20 @@
/obj/item/coin/gold,
/turf/open/floor/plasteel,
/area/commons/fitness)
+"xbP" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/machinery/atmospherics/components/unary/vent_pump/on{
+ dir = 4
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"xcl" = (
/obj/structure/lattice,
/obj/machinery/atmospherics/pipe/simple/dark/visible{
@@ -62301,6 +65868,13 @@
},
/turf/open/floor/plating,
/area/maintenance/starboard/aft)
+"xfW" = (
+/obj/machinery/vr_sleeper{
+ dir = 1
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"xgk" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -62363,13 +65937,14 @@
/turf/open/floor/plating,
/area/construction)
"xib" = (
-/obj/machinery/door/window/westleft{
- base_state = "right";
- icon_state = "right";
- name = "Unisex Showers"
+/obj/effect/spawner/structure/window/reinforced,
+/obj/machinery/door/poddoor/preopen{
+ id = "Prison Gate";
+ name = "prison blast door"
},
-/turf/open/floor/plasteel/freezer,
-/area/security/prison)
+/obj/structure/cable,
+/turf/open/floor/plating,
+/area/security/prison/upper)
"xiw" = (
/obj/machinery/door/airlock{
name = "Service Hall";
@@ -62381,6 +65956,26 @@
},
/turf/open/floor/plating,
/area/hallway/secondary/service)
+"xjU" = (
+/obj/machinery/door/airlock/security{
+ name = "Permabrig Visitation"
+ },
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/door/firedoor,
+/turf/open/floor/plasteel/dark,
+/area/security/prison/upper)
"xkd" = (
/obj/machinery/light/small{
dir = 4;
@@ -62415,6 +66010,31 @@
},
/turf/open/floor/plasteel,
/area/security/brig)
+"xnF" = (
+/obj/machinery/door/airlock/security{
+ name = "Isolation Cell";
+ req_access_txt = "2"
+ },
+/obj/effect/mapping_helpers/airlock/cyclelink_helper,
+/obj/effect/turf_decal/tile/neutral,
+/obj/effect/turf_decal/tile/neutral{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/neutral{
+ dir = 1
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
+"xpH" = (
+/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/cafeteria,
+/area/security/prison/upper)
"xqG" = (
/obj/structure/table/reinforced,
/obj/effect/turf_decal/tile/bar,
@@ -62514,6 +66134,13 @@
},
/turf/open/floor/plasteel,
/area/commons/dorms)
+"xAA" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"xBk" = (
/obj/structure/cable{
icon_state = "1-2"
@@ -62530,6 +66157,16 @@
/obj/item/radio/headset/headset_cargo,
/turf/open/floor/plasteel,
/area/cargo/storage)
+"xBJ" = (
+/obj/effect/turf_decal/stripes/white/line{
+ dir = 8
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 9
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"xDM" = (
/obj/machinery/camera{
c_tag = "Locker Room South";
@@ -62574,6 +66211,12 @@
},
/turf/open/floor/wood/wood_large,
/area/service/chapel/main)
+"xFj" = (
+/obj/structure/cable{
+ icon_state = "1-8"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"xFM" = (
/obj/item/clothing/gloves/color/rainbow,
/obj/item/clothing/head/soft/rainbow,
@@ -62581,6 +66224,20 @@
/obj/item/clothing/under/color/rainbow,
/turf/open/floor/plating,
/area/maintenance/port/fore)
+"xGm" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/stripes/line{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/cells)
"xGQ" = (
/obj/structure/sign/plaques/golden{
pixel_y = 32
@@ -62622,6 +66279,44 @@
},
/turf/open/floor/plating,
/area/security/office)
+"xKl" = (
+/obj/machinery/computer/security/telescreen/prison{
+ pixel_y = 30
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/prison)
+"xLQ" = (
+/obj/effect/turf_decal/tile/green{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/green{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 4
+ },
+/obj/machinery/power/apc/highcap/five_k{
+ areastring = "/area/security/prison/upper";
+ damage_deflection = 21;
+ desc = "A control terminal for the area's electrical systems. It's secured with a durable antitampering plasteel cage.";
+ dir = 1;
+ name = "Armored Upper Prison Wing APC";
+ pixel_y = 23
+ },
+/obj/structure/cable{
+ icon_state = "0-2"
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"xLX" = (
/obj/structure/lattice/catwalk,
/obj/item/stack/marker_beacon{
@@ -62635,13 +66330,48 @@
},
/turf/open/floor/plating/airless,
/area/space/nearstation)
-"xOx" = (
-/obj/structure/chair/comfy/brown{
- color = "#596479";
- dir = 1
+"xMg" = (
+/obj/structure/chair{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/cafeteria,
+/area/security/prison/upper)
+"xMS" = (
+/obj/effect/turf_decal/tile/blue{
+ dir = 4
+ },
+/obj/effect/turf_decal/tile/blue{
+ dir = 8
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel/cafeteria,
+/area/security/prison/upper)
+"xNV" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/effect/turf_decal/tile/red,
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden,
+/obj/structure/cable{
+ icon_state = "4-8"
},
/turf/open/floor/plasteel,
-/area/security/prison)
+/area/security/prison/cells)
+"xOx" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/machinery/light{
+ dir = 1
+ },
+/obj/machinery/atmospherics/pipe/simple/supply/hidden{
+ dir = 4
+ },
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
"xPk" = (
/obj/structure/bed,
/obj/machinery/button/door{
@@ -62703,6 +66433,21 @@
/obj/effect/landmark/carpspawn,
/turf/open/space,
/area/space/station_ruins)
+"xUC" = (
+/obj/effect/turf_decal/tile/red{
+ dir = 1
+ },
+/obj/effect/turf_decal/tile/red{
+ dir = 8
+ },
+/obj/structure/cable{
+ icon_state = "1-2"
+ },
+/obj/machinery/atmospherics/pipe/simple{
+ dir = 10
+ },
+/turf/open/floor/plasteel/dark,
+/area/security/execution/transfer)
"xUL" = (
/obj/effect/turf_decal/bot_white/right,
/obj/effect/turf_decal/tile/neutral{
@@ -62752,6 +66497,13 @@
},
/turf/open/floor/plasteel/grimy,
/area/maintenance/starboard/aft)
+"xWS" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-4"
+ },
+/turf/open/floor/plating,
+/area/security/prison/upper)
"xXi" = (
/obj/machinery/vending/clothing,
/turf/open/floor/plasteel,
@@ -62816,6 +66568,22 @@
},
/turf/open/floor/mineral/titanium/blue,
/area/commons/toilet/locker)
+"yco" = (
+/obj/effect/spawner/structure/window/reinforced,
+/obj/structure/cable{
+ icon_state = "0-8"
+ },
+/turf/open/floor/plating,
+/area/security/prison/cells)
+"ycL" = (
+/obj/effect/spawner/lootdrop/prison_contraband,
+/obj/structure/closet/crate,
+/obj/item/stack/license_plates/empty/fifty,
+/obj/item/stack/license_plates/empty/fifty,
+/obj/item/stack/license_plates/empty/fifty,
+/obj/item/stack/license_plates/empty/fifty,
+/turf/open/floor/plating,
+/area/security/prison/upper)
"ycY" = (
/obj/effect/turf_decal/tile/red{
dir = 1
@@ -62847,6 +66615,12 @@
/obj/machinery/status_display/evac,
/turf/closed/wall,
/area/hallway/primary/central)
+"yeZ" = (
+/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
+ dir = 5
+ },
+/turf/closed/wall,
+/area/security/execution/transfer)
"yfX" = (
/obj/machinery/atmospherics/components/unary/vent_pump/on,
/turf/open/floor/carpet/arcade,
@@ -62874,6 +66648,14 @@
},
/turf/open/floor/plasteel/dark,
/area/hallway/primary/central)
+"yhI" = (
+/obj/machinery/computer/arcade/battle,
+/obj/machinery/firealarm{
+ pixel_y = 24
+ },
+/obj/effect/decal/cleanable/dirt,
+/turf/open/floor/plasteel,
+/area/security/prison/upper)
(1,1,1) = {"
cNd
@@ -80918,7 +84700,7 @@ cNd
cNd
cNd
cNd
-cNd
+naI
cNd
cNd
cNd
@@ -81189,11 +84971,11 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+gXs
+gXs
+gXs
+gXs
+gXs
aaS
aaS
aaS
@@ -81446,6 +85228,7 @@ aaa
aaa
aaa
aaa
+gXs
aaa
aaa
aaa
@@ -81453,13 +85236,12 @@ aaa
aaa
aaa
aaa
+gXs
aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
+gXs
aaa
aaa
aaa
@@ -81703,6 +85485,7 @@ aaa
aaa
aaa
aaa
+gXs
aaa
aaa
aaa
@@ -81710,13 +85493,12 @@ aaa
aaa
aaa
aaa
+gXs
aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
+gXs
aaa
aaa
aaa
@@ -81955,6 +85737,12 @@ aaa
aaa
aaa
aaa
+gXs
+gXs
+gXs
+gXs
+gXs
+gXs
aaa
aaa
aaa
@@ -81962,18 +85750,12 @@ aaa
aaa
aaa
aaa
+gXs
aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+gXs
aaa
aaa
aaa
@@ -82212,25 +85994,25 @@ aaa
aaa
aaa
aaa
+gXs
aaa
aaa
aaa
aaa
+gXs
+aaa
+aaa
+aaa
+gXs
+gXs
+gXs
+gXs
+gXs
aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+gXs
aaa
aaa
aaa
@@ -82469,25 +86251,25 @@ aaa
aaa
aaa
aaa
+gXs
aaa
aaa
aaa
aaa
+gXs
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+gXs
aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+gXs
aaa
aaa
aaa
@@ -82722,32 +86504,32 @@ aaa
aaa
aaa
aaa
+gXs
+gXs
+gXs
+aaa
+gXs
aaa
aaa
aaa
aaa
+gXs
aaa
aaa
aaa
+gXs
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+gXs
+gXs
+gXs
+gXs
+gXs
+gXs
+gXs
+gXs
+gXs
ali
ali
alU
@@ -82978,33 +86760,33 @@ cNd
aaa
aaa
aaa
+eRz
+eRz
+eRz
+eRz
+eRz
+eRz
+eRz
+eRz
+eRz
+eRz
+eRz
+aaa
+aaa
+aaa
+gXs
+aaa
+aaa
+aaa
+gXs
aaa
aaa
aaa
aaa
+gXs
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aae
-aaa
-aaa
ali
anL
avY
@@ -83234,31 +87016,31 @@ cNd
cNd
aaa
aaa
+gXs
+eRz
+aaa
+gXs
aaa
aaa
+gXs
aaa
aaa
+gXs
+aaa
+gXs
+gXs
+gXs
+gXs
+gXs
+gXs
+gXs
+gXs
+gXs
+aaa
+aae
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+gXs
aaa
aaa
aaa
@@ -83491,6 +87273,18 @@ cNd
cNd
aaa
aaa
+gXs
+eRz
+aaa
+aaa
+aaa
+aaa
+gXs
+gXs
+aaa
+gXs
+aaa
+gXs
aaa
aaa
aaa
@@ -83498,24 +87292,12 @@ aaa
aaa
aaa
aaa
+gXs
aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+gXs
aaa
aaa
aaa
@@ -83749,33 +87531,33 @@ cNd
aaa
aaa
aaa
+eRz
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+rcV
+szn
+hKo
+fNB
+szn
+qLo
+mJH
+szn
+szn
+szn
+szn
+szn
+szn
+mbC
+mbC
+mbC
+mbC
+gXs
+jJP
+gXs
+gXs
+gXs
+gXs
+gXs
+gXs
ali
ali
alU
@@ -83996,44 +87778,44 @@ cNd
cNd
cNd
cNd
+cNd
+cNd
+cNd
+cNd
aaa
aaa
aaa
aaa
+gDl
+aaa
+eRz
+gXs
+gXs
+szn
+suC
+qZT
+dYQ
+lGm
+pwF
+lJA
+mvV
+tso
+lJA
+mvV
+tso
+abc
+dIZ
+wll
+mbC
+abc
+abc
+hEL
+abc
aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+gXs
aaa
aaa
aaa
@@ -84253,44 +88035,44 @@ cNd
cNd
cNd
cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+gXs
aaa
aaa
aaa
aaa
+eRz
+aaa
+aaa
+szn
+mAT
+ifM
+wnX
+mAT
+mAT
+lJA
+giE
+rBK
+lJA
+giE
+rBK
+abc
+obs
+rBY
+mbC
+jvO
+dfj
+fgd
+abc
aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+gXs
aaa
aaa
aaa
@@ -84510,44 +88292,44 @@ cNd
cNd
cNd
cNd
+cNd
+cNd
+cNd
+cNd
aaa
+gXs
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+fIs
+fIs
+fIs
+eRz
+gXs
+gXs
+szn
+lJA
+czP
+iCN
+lJA
+lJA
+lJA
+czP
+eoJ
+lJA
+czP
+ejr
+abc
+tJE
+hEL
+mbC
+rgu
+fbr
+mCm
+abc
+abc
+abu
+abu
+abu
+abc
aaa
aaa
aaa
@@ -84767,44 +88549,44 @@ cNd
cNd
cNd
cNd
+cNd
+cNd
+cNd
+cNd
+aaa
+gXs
+gXs
+fIs
aaa
aaa
+gXs
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+gXs
+kma
+fdJ
+hch
+reE
+tdd
+cJA
+tOk
+knA
+vws
+tkx
+epj
+lDm
+xnF
+pFj
+kcB
+gyy
+xUC
+vCS
+gcX
+pRi
+rsn
+qIW
+aca
+ebo
+yeZ
aaa
aaa
aaa
@@ -85026,42 +88808,42 @@ cNd
cNd
aaa
aaa
+eRz
+eRz
+eRz
+sMu
+eRz
+eRz
+gXs
+gXs
+gXs
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aae
-aaa
-aaa
-aaa
-aaa
+gXs
+yco
+lZp
+qgj
+lYI
+hzC
+ggT
+fdR
+qwA
+oqf
+wcS
+pFt
+lAD
+lJA
+lJA
+lJA
+szn
+ili
+waX
+mCo
+eRS
+naj
+liJ
+acc
+rAW
+abe
aaa
aaa
aaa
@@ -85283,42 +89065,42 @@ cNd
cNd
aaa
aaa
+eRz
+aaa
+gXs
+gXs
aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+adI
+adI
+adI
+adI
+qCc
+qCc
+wgu
+qCc
+qCc
+qCc
+czP
+gMB
+lJA
+tnH
+wVt
+gSj
+vYF
+txs
+szn
+jKc
+mjJ
+eJu
+eSJ
+qNU
+moe
+acb
+gcm
+tqk
aaa
aaa
aaa
@@ -85540,42 +89322,42 @@ cNd
cNd
aaa
aaa
+eRz
aaa
aaa
+gXs
+aaa
+gXs
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-jLv
-aaa
-aaa
-aaa
-gWo
-gWo
-gWo
-dYZ
-gWo
-gWo
+adI
+hzs
+evh
+ycL
+qCc
+rUr
+jlQ
+gZT
+hQw
+qCc
+kcR
+rBK
+lJA
+weW
+xNV
+gxK
+dJu
+fbY
+szn
+abd
+khO
+enB
+enB
+enB
+enB
+enB
+enB
+sKA
gXs
gXs
gXs
@@ -85797,37 +89579,37 @@ cNd
cNd
aaa
aaa
+sMu
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-abc
-abc
-abc
+adI
+xWS
+adI
+xWS
+adI
+adI
+lCt
+qcU
+vRN
+qCc
+icS
+mqQ
+qYa
+wIl
+qCc
+sfz
+tbR
+lJA
+ryi
+cCr
+lJA
+lJA
+lJA
+szn
+noJ
+uql
afu
-abc
+acd
wdr
itQ
pgn
@@ -86054,37 +89836,37 @@ cNd
cNd
aaa
aaa
+eRz
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-abc
-aea
-aeH
-aft
-abc
+oUF
+llb
+eXI
+gLu
+vwQ
+acG
+hzs
+hnp
+jVV
+qCc
+qCc
+qCc
+qCc
+qCc
+qCc
+acG
+acG
+lJA
+maP
+wVt
+nRO
+vYF
+txs
+szn
+ksa
+dQS
+afu
+acd
pDe
dly
mnC
@@ -86311,38 +90093,38 @@ cNd
cNd
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+eRz
aaa
gXs
-gXs
-gXs
-abc
-abu
-abu
-abu
-abc
-abc
-aec
-aeJ
+adI
+lNQ
+eDF
+jYl
+lUU
+acG
+acG
+aaW
+wVq
+acG
+qFK
+jRW
+dLi
+evc
+qto
+pGA
+acG
+mnu
+xGm
+xNV
+gxK
+nko
+vFZ
+szn
+noJ
+uql
afw
-abc
-abc
+acd
+acd
dly
xxp
mcp
@@ -86465,7 +90247,7 @@ aaa
aaa
iDo
ctv
-aaT
+iDo
aaa
aaa
aaa
@@ -86568,38 +90350,38 @@ cNd
cNd
aaa
aaa
+eRz
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aae
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-gXs
-aai
-aai
-aai
+oUF
+iMy
+cTo
+ltm
+kkb
+xfW
+aaN
+kMn
+rDc
+grd
+wpV
+tYg
+tAS
+sAm
+jrR
+teq
+acG
+cVE
abb
abt
-aca
-acz
-acX
-adC
+lJA
+lJA
+lJA
+szn
aeb
-aeI
+uql
afv
agf
-abc
+acd
dly
xxp
mcp
@@ -86722,7 +90504,7 @@ aaa
aaa
iDo
iDo
-aaT
+iDo
aaa
aaa
aaa
@@ -86825,38 +90607,38 @@ cNd
cNd
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aai
-eqd
+eRz
+gXs
+gXs
+adI
+mwN
+kfG
+uJY
+kkb
+tLC
+aaN
+peD
+kGj
+acG
+lux
+gPY
+ktW
+qQK
+uuw
+dPs
+acG
kgr
-abe
-abw
-acc
-acB
-acZ
-adE
-aee
+nFA
+wVt
+pZD
+vYF
+txs
+szn
+pIR
aeL
afy
agh
-abc
+acd
kCa
hnU
vda
@@ -87081,39 +90863,39 @@ cNd
cNd
cNd
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
gXs
-aai
-gbu
+eRz
+aaa
+aaa
+oUF
+xFj
+jKm
+cYf
+kkb
+tAS
+pgq
+peD
+sBM
+acG
+acG
+jOB
+acG
+acG
+acG
+acG
+acG
aay
-abd
+oss
abv
-acb
+lJA
acA
acI
adD
aed
-aeK
-afx
+uql
+afv
agg
-abc
+acd
ovv
dCV
idK
@@ -87338,39 +91120,39 @@ cNd
cNd
cNd
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaf
-aaf
-aai
-acd
+gXs
+sMu
+gXs
+gXs
+adI
+adI
+yhI
+lLu
+dLZ
+vYY
+mui
+gcV
+lic
+aau
+xbP
+mHH
+fMF
+ueN
+iqi
+fKN
+acG
mIZ
abg
-enB
-aby
-aby
-aby
-aby
+lJA
+lJA
+lJA
+lJA
+szn
aeg
-aeN
+uql
afA
-afA
-abc
+acd
+acd
kuA
laq
kdP
@@ -87593,41 +91375,41 @@ cNd
cNd
cNd
cNd
-cNd
+gXs
+gXs
+gXs
+eRz
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaf
-aaf
-aaf
-aai
-aai
+oUF
+vim
+kYm
+mke
+hpY
+obq
+fiR
+dPE
+pTT
+jIH
+rqq
+acG
+mxZ
+xMS
+pnb
abf
aaK
jRw
aaU
-acd
+eDJ
acC
ada
adF
aef
aeM
afz
-oSl
-ail
+ldY
+lRb
lRb
vIi
fsj
@@ -87853,34 +91635,34 @@ cNd
cNd
aaa
aaa
+eRz
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aag
+rcV
+adI
+adI
+adI
+acG
+acG
+acG
+lBk
+jxx
+acG
thB
-aai
-aai
-aai
-aai
+rqq
+acG
+acG
+jTy
aaI
-aat
-aat
-aat
-aat
+acG
+gXu
+wAN
+ruu
ace
-aat
+ref
aat
adH
-aei
+aem
aeO
afJ
sXV
@@ -88110,35 +91892,35 @@ cNd
cNd
aaa
aaa
+eRz
+eRz
+gXs
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aag
-aaf
-aai
+gXs
+adI
+msp
+pHK
+wkU
+sNj
+rDm
+acG
+sAT
+rqq
aan
-aaw
-aaB
-qmn
-aaJ
-aat
+acG
+acG
+acG
+acG
+xLQ
abh
-aat
acd
+ozh
abK
acY
-adG
+aai
aeh
-aeO
+lJS
ado
afq
afH
@@ -88368,32 +92150,32 @@ cNd
aaa
aaa
aaa
+eRz
aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aag
-aaa
+xWS
+gcY
+oVL
+dSh
+xBJ
+fMY
+acG
+pUf
aam
aap
-saX
+aau
aaD
aau
-aat
-aat
-aat
+vMi
+oKB
+vhy
abA
-acd
-acd
-acd
-acd
+jNN
+hkA
+hkA
+aai
aek
acp
aav
@@ -88625,32 +92407,32 @@ cNd
aaa
aaa
aaa
+eRz
+eRz
+eRz
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aag
-aaf
-aai
+uKW
+tAS
+tAS
+eoR
+tAS
+ooF
+acG
+viH
+siz
aao
aax
aaC
aaA
-aat
-aat
-aat
+ngq
+tWe
+jHp
aei
-acd
+fFR
acE
add
-adF
+aai
aej
aeQ
adp
@@ -88882,33 +92664,33 @@ cNd
aaa
aaa
aaa
+gXs
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aag
-aaa
-aam
-aar
+eRz
+gXs
+gXs
+uKW
+oIl
+tAS
+eoR
+ecB
+dnX
+acG
+acG
+mZu
+acG
uGI
aaF
-aat
-aat
+qbk
+ske
aaW
-aat
-abB
-acf
-abM
+xjU
+acG
+acG
+acG
acG
adI
-aem
+xKl
omX
afG
aim
@@ -89139,32 +92921,32 @@ cNd
aaa
aaa
aaa
+gXs
+aaa
+eRz
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aag
-aaf
-aai
-aaq
+uhK
+xAA
+jSY
+hxg
+acK
+ssc
+acG
+uOm
+nLP
+acG
dyS
aaE
-aat
+aaN
aaN
aaV
rvS
-aat
-acd
+etr
+tyb
abL
adb
-acd
+adI
ael
aeO
afF
@@ -89396,35 +93178,35 @@ cNd
aaa
aaa
aaa
+gXs
+aaa
+eRz
aaa
aaa
-aaa
-aaa
-aae
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aag
-aaa
-aam
-aaj
-aat
-aat
-aat
+adI
+oIl
+uUb
+eZI
+qZQ
+dNP
+acG
+hJO
+mpY
+acG
+szf
+rDm
+gVc
qXg
-jjC
+acG
xOx
-abD
-acd
-acd
-acd
-acd
+oPY
+ncU
+lvc
+epG
+adI
aen
aeO
-ahE
+afG
afq
aii
afM
@@ -89653,32 +93435,32 @@ cNd
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aag
-aaf
-aai
-aas
-aat
-aat
-aat
-aat
-uEI
-aat
-abC
-acd
+gXs
+gXs
+eRz
+gXs
+gXs
+adI
+jnk
+emf
+vHK
+vHK
+vHK
+vHK
+vHK
+acG
+acG
+fdS
+qRI
+jvB
+iwU
+acG
+ltw
+eDf
+oXV
acH
adc
-acd
+adI
aeo
aev
aeS
@@ -89912,33 +93694,33 @@ aaa
aaa
aaa
aaa
+eRz
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aag
-aaa
-aam
-akQ
-aav
-aav
-aav
-aav
-aav
-aav
+jnk
+qOY
+pBd
+kGL
+fcj
+jqK
+vHK
+rTj
+rTj
+goJ
+kLK
+rTj
+hvC
+acG
+oiY
abE
acg
acJ
-ade
+adb
adJ
aep
aeT
-ahE
+afG
aim
ajL
akj
@@ -90169,30 +93951,30 @@ aaa
aaa
aaa
aaa
+eRz
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aag
-aaf
-aai
-wYc
-wYc
+jnk
+sIn
+eZS
+iBj
+fcj
+iBq
+vHK
+dCd
+aaP
+xpH
aaG
wYc
aaP
-aaX
+acG
keM
xib
-acd
+acG
acD
-acY
-adG
+cNi
+adI
aeq
aeV
agj
@@ -90426,30 +94208,30 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aag
-aaa
-aai
-aai
-aai
-aai
-aai
-aai
-aai
+eRz
+eRz
+gXs
+gXs
+jnk
+jnk
+jnk
+jnk
+vHK
+vHK
+vHK
+xMg
+tPY
+ugi
+lht
+jVP
+tPY
+acG
abj
abF
-acd
-acd
-acd
-acd
+eIW
+mJy
+ldT
+cSp
aeP
afC
agk
@@ -90684,29 +94466,29 @@ aaa
aaa
aaa
aaa
+eRz
aaa
aaa
+gXs
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaf
-aaf
-aaa
-aaf
-aai
+gXs
+adI
+olH
+mte
+lpx
+nZs
+nZs
+nZs
+sYV
+nZs
+maU
+acG
abi
eqA
ach
-acK
+wAj
adf
-acd
+mhv
aer
afB
agi
@@ -90939,31 +94721,31 @@ aaa
aaa
aaa
aaa
+gDl
+aaa
+eRz
aaa
aaa
+gXs
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaf
-aaf
-aaf
-aaf
-aaf
-aaf
-aaf
-aaf
+adI
+noR
+nSI
+sHd
+tAS
+tHO
aaR
-aai
-aai
-aai
-aai
-aai
-aai
-aai
+jUN
+peE
+aaR
+adI
+adI
+adI
+adI
+adI
+adI
+adI
aaZ
aaZ
aiX
@@ -91198,23 +94980,23 @@ aaa
aaa
aaa
aaa
+eRz
+eRz
+eRz
+eRz
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaf
-aaa
-aaf
-aaf
+adI
+sew
+suS
+qvc
+adb
+kOE
+dxv
+fmR
+dzK
+adb
+adI
aaT
aaf
abx
@@ -91456,22 +95238,22 @@ aaa
aaa
aaa
aaa
+gXs
+gXs
+eRz
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaf
-aaa
-aaf
-aaf
+rcV
+adI
+adI
+adI
+adI
+oUF
+gfw
+adI
+adI
+nqu
+uZY
+adI
aaT
gXs
abG
@@ -91714,21 +95496,21 @@ aaa
aaa
aaa
aaa
+gXs
+eRz
aaa
aaa
aaa
aaa
+gXs
aaa
aaa
aaa
aaa
+gXs
aaa
+gXs
aaa
-aaa
-aaf
-aaa
-aaf
-aaf
abY
gXs
abG
@@ -91968,24 +95750,24 @@ aaa
aaa
aaa
aaa
+gXs
+gXs
+gXs
+gXs
+eRz
+aaa
+gXs
+aaa
+aaa
+gXs
aaa
aaa
aaa
aaa
+gXs
aaa
+gXs
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaf
-aaa
-aaf
-aaf
aaT
gXs
abG
@@ -92229,20 +96011,20 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaf
-aaa
-aaf
-aaf
+eRz
+eRz
+eRz
+eRz
+eRz
+vli
+eRz
+eRz
+eRz
+eRz
+aaT
+eRz
+aaT
+aaT
aaT
gXs
abG
@@ -92488,18 +96270,18 @@ aaa
aaa
aaa
aaa
+gXs
+gXs
+gXs
+gXs
+gXs
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+gXs
aaa
aaf
aaa
aaf
-aaf
+ktS
abY
gXs
abG
@@ -92746,17 +96528,17 @@ aaa
aaa
aaa
aaa
+gXs
+aaa
+gXs
aaa
aaa
-aaa
-aaa
-aaa
-aaa
+gXs
aaa
aaf
aaa
aaf
-aaf
+ktS
adR
abo
adR
@@ -93003,17 +96785,17 @@ aaa
aaa
aaa
aaa
+gXs
+aaa
+gXs
aaa
aaa
-aaa
-aaa
-aaa
-aaa
+gXs
aaa
aaf
aaa
aaf
-aaf
+ktS
adR
aaY
abJ
@@ -93262,15 +97044,15 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
+gXs
+gXs
+gXs
+gXs
aaf
aaf
aaf
aaf
-aaa
+gXs
abo
abk
abk
@@ -93519,7 +97301,7 @@ aaa
aaa
aaa
aaa
-aaa
+gXs
aaa
aaa
aaa
@@ -93776,7 +97558,7 @@ aaa
aaa
aaa
aaa
-aaa
+gXs
aaa
aaa
aaa
@@ -93784,7 +97566,7 @@ aaa
aaa
aaa
aaf
-aaa
+gXs
abo
abO
abO
@@ -94033,7 +97815,7 @@ aaa
aaa
aaa
aaa
-aaa
+gXs
aaa
aaa
aaa
@@ -94290,11 +98072,11 @@ aaa
aaa
aaa
aaa
-aaa
-aaa
-aaa
-aaa
-aaa
+gXs
+gXs
+gXs
+gXs
+gXs
aaf
aaf
aaf
diff --git a/_maps/map_files/CogStation/CogStation.dmm b/_maps/map_files/CogStation/CogStation.dmm
index 25598ac9a1..74debaa989 100644
--- a/_maps/map_files/CogStation/CogStation.dmm
+++ b/_maps/map_files/CogStation/CogStation.dmm
@@ -9962,6 +9962,7 @@
/area/security/prison)
"axk" = (
/obj/item/storage/pill_bottle/penis_enlargement,
+/obj/effect/landmark/start/prisoner,
/turf/open/floor/plasteel/freezer,
/area/security/prison)
"axl" = (
@@ -71005,6 +71006,11 @@
/obj/machinery/atmospherics/pipe/simple/violet/visible,
/turf/open/floor/plasteel,
/area/engineering/atmos)
+"kTm" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/landmark/start/prisoner,
+/turf/open/floor/plating,
+/area/security/prison)
"lcD" = (
/obj/machinery/atmospherics/components/unary/thermomachine/freezer{
dir = 1
@@ -71078,6 +71084,11 @@
/obj/machinery/atmospherics/pipe/simple/orange/hidden,
/turf/open/floor/plasteel,
/area/tcommsat/computer)
+"mTf" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/landmark/start/prisoner,
+/turf/open/floor/plasteel,
+/area/security/prison)
"nvn" = (
/obj/machinery/atmospherics/components/unary/vent_scrubber/on{
dir = 1
@@ -95879,7 +95890,7 @@ adE
aew
afG
agP
-agP
+kTm
aiL
ajT
anu
@@ -95894,7 +95905,7 @@ aHT
aJt
aJN
aQg
-akv
+mTf
aew
ayU
aSQ
@@ -96395,7 +96406,7 @@ afY
agP
agP
aiL
-akv
+mTf
anw
akv
akv
diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm
index 2108c61d32..904b8958af 100644
--- a/_maps/map_files/Deltastation/DeltaStation2.dmm
+++ b/_maps/map_files/Deltastation/DeltaStation2.dmm
@@ -10552,6 +10552,7 @@
/obj/effect/turf_decal/tile/neutral{
dir = 4
},
+/obj/effect/landmark/start/prisoner,
/turf/open/floor/plasteel,
/area/security/prison)
"aMj" = (
@@ -12412,6 +12413,7 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/effect/landmark/start/prisoner,
/turf/open/floor/plasteel,
/area/security/prison)
"aUx" = (
@@ -12458,6 +12460,7 @@
/obj/effect/turf_decal/tile/neutral{
dir = 8
},
+/obj/effect/landmark/start/prisoner,
/turf/open/floor/plasteel,
/area/security/prison)
"aUA" = (
@@ -12486,6 +12489,7 @@
/area/security/prison)
"aUB" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/landmark/start/prisoner,
/turf/open/floor/plating{
icon_state = "panelscorched"
},
diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm
index 2690cb1644..731641d737 100644
--- a/_maps/map_files/KiloStation/KiloStation.dmm
+++ b/_maps/map_files/KiloStation/KiloStation.dmm
@@ -55924,6 +55924,7 @@
dir = 1;
pixel_y = -22
},
+/obj/effect/landmark/start/prisoner,
/turf/open/floor/plasteel/showroomfloor,
/area/security/prison)
"bLR" = (
@@ -59245,6 +59246,7 @@
dir = 1;
pixel_y = -22
},
+/obj/effect/landmark/start/prisoner,
/turf/open/floor/plasteel/showroomfloor,
/area/security/prison)
"bRc" = (
@@ -61866,6 +61868,7 @@
/obj/structure/cable{
icon_state = "4-8"
},
+/obj/effect/landmark/start/prisoner,
/turf/open/floor/plasteel/showroomfloor,
/area/security/prison)
"bVq" = (
@@ -79329,6 +79332,7 @@
dir = 4
},
/obj/effect/turf_decal/tile/neutral,
+/obj/effect/landmark/start/prisoner,
/turf/open/floor/plasteel/dark,
/area/security/prison)
"czS" = (
diff --git a/_maps/map_files/LambdaStation/lambda.dmm b/_maps/map_files/LambdaStation/lambda.dmm
index 98bdbe6542..e4aee6ffd6 100644
--- a/_maps/map_files/LambdaStation/lambda.dmm
+++ b/_maps/map_files/LambdaStation/lambda.dmm
@@ -443,6 +443,7 @@
/obj/structure/cable{
icon_state = "1-2"
},
+/obj/effect/landmark/start/prisoner,
/turf/open/floor/plasteel,
/area/security/prison)
"abr" = (
@@ -63052,6 +63053,11 @@
},
/turf/open/space/basic,
/area/space)
+"cZI" = (
+/obj/effect/decal/cleanable/dirt,
+/obj/effect/landmark/start/prisoner,
+/turf/open/floor/plasteel,
+/area/security/prison)
"dcB" = (
/obj/effect/turf_decal/trimline/neutral/filled/line{
dir = 4
@@ -112428,7 +112434,7 @@ agJ
ahA
ady
bPZ
-adx
+cZI
adx
ama
aNh
@@ -113456,7 +113462,7 @@ afg
agM
ady
ajM
-adx
+cZI
adx
asb
baj
@@ -115255,7 +115261,7 @@ amN
agQ
ady
aiu
-adx
+cZI
adx
amc
beg
diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm
index 57a4831073..9279c8f11b 100644
--- a/_maps/map_files/MetaStation/MetaStation.dmm
+++ b/_maps/map_files/MetaStation/MetaStation.dmm
@@ -1344,6 +1344,7 @@
icon_state = "1-2"
},
/obj/machinery/atmospherics/pipe/simple/supply/hidden,
+/obj/effect/landmark/start/prisoner,
/turf/open/floor/plasteel,
/area/security/prison)
"adw" = (
@@ -45097,6 +45098,10 @@
/obj/effect/landmark/start/scientist,
/turf/open/floor/plasteel/white,
/area/science/xenobiology)
+"cUU" = (
+/obj/effect/landmark/start/prisoner,
+/turf/open/floor/plasteel,
+/area/security/prison)
"cUZ" = (
/obj/docking_port/stationary{
dir = 8;
@@ -81318,6 +81323,13 @@
},
/turf/open/floor/plating,
/area/command/bridge)
+"wXA" = (
+/obj/structure/cable/yellow{
+ icon_state = "4-8"
+ },
+/obj/effect/landmark/start/prisoner,
+/turf/open/floor/plasteel,
+/area/security/prison)
"wXC" = (
/obj/machinery/light_switch{
pixel_y = 28
@@ -105902,7 +105914,7 @@ abC
acr
acE
adb
-aaR
+cUU
aaR
aem
aeN
@@ -107181,7 +107193,7 @@ aaC
aaI
aaR
abb
-aaI
+wXA
abG
acb
acu
@@ -107958,7 +107970,7 @@ aaR
aaR
aaR
ade
-aaR
+cUU
aaR
aeo
aeV
diff --git a/_maps/map_files/PubbyStation/PubbyStation.dmm b/_maps/map_files/PubbyStation/PubbyStation.dmm
index acd2b23ba0..83a42bbf58 100644
--- a/_maps/map_files/PubbyStation/PubbyStation.dmm
+++ b/_maps/map_files/PubbyStation/PubbyStation.dmm
@@ -2708,6 +2708,7 @@
/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{
dir = 6
},
+/obj/effect/landmark/start/prisoner,
/turf/open/floor/plasteel,
/area/security/prison)
"agN" = (
@@ -2736,6 +2737,7 @@
/obj/machinery/light/small{
dir = 4
},
+/obj/effect/landmark/start/prisoner,
/turf/open/floor/plasteel/freezer,
/area/security/prison)
"agP" = (
@@ -53485,6 +53487,13 @@
"dFJ" = (
/turf/open/floor/engine,
/area/engineering/supermatter)
+"dHg" = (
+/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{
+ dir = 8
+ },
+/obj/effect/landmark/start/prisoner,
+/turf/open/floor/plasteel,
+/area/security/prison)
"dHo" = (
/obj/machinery/atmospherics/pipe/simple/supply/hidden{
dir = 4
@@ -58619,7 +58628,7 @@
dir = 8
},
/obj/machinery/atmospherics/components/binary/pump/on{
- dir = 3;
+ dir = 2;
name = "Waste to Space"
},
/turf/open/floor/plasteel/dark,
@@ -60988,6 +60997,10 @@
},
/turf/closed/wall/r_wall,
/area/science/xenobiology)
+"tVZ" = (
+/obj/effect/landmark/start/prisoner,
+/turf/open/floor/plasteel/dark,
+/area/security/prison)
"tXn" = (
/obj/structure/sink{
dir = 4;
@@ -83035,13 +83048,13 @@ aaa
aem
aeq
aeE
-aeU
+tVZ
afo
afD
aga
aga
agz
-aie
+dHg
aiH
ahm
ahD
diff --git a/code/__DEFINES/jobs.dm b/code/__DEFINES/jobs.dm
index 35348df3d1..d4ab59cbc1 100644
--- a/code/__DEFINES/jobs.dm
+++ b/code/__DEFINES/jobs.dm
@@ -42,6 +42,7 @@
#define CLOWN (1<<11)
#define MIME (1<<12)
#define ASSISTANT (1<<13)
+#define PRISONER (1<<14)
#define JOB_AVAILABLE 0
#define JOB_UNAVAILABLE_GENERIC 1
@@ -89,3 +90,4 @@
#define JOB_DISPLAY_ORDER_WARDEN 31
#define JOB_DISPLAY_ORDER_DETECTIVE 32
#define JOB_DISPLAY_ORDER_SECURITY_OFFICER 33
+#define JOB_DISPLAY_ORDER_PRISONER 34
diff --git a/code/__DEFINES/traits.dm b/code/__DEFINES/traits.dm
index cd94e5790b..665c0340a4 100644
--- a/code/__DEFINES/traits.dm
+++ b/code/__DEFINES/traits.dm
@@ -347,3 +347,5 @@
/// obtained from mapping helper
#define MAPPING_HELPER_TRAIT "mapping-helper"
+/// Trait associated with mafia
+#define MAFIA_TRAIT "mafia"
diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm
index 64c96cae3b..0110d43e04 100644
--- a/code/_globalvars/lists/flavor_misc.dm
+++ b/code/_globalvars/lists/flavor_misc.dm
@@ -368,6 +368,7 @@ GLOBAL_LIST_INIT(job_heirlooms, list(
"Janitor" = list(/obj/item/mop),
"Scientist" = list(/obj/item/toy/plush/slimeplushie),
"Assistant" = list(/obj/item/clothing/gloves/cut/family),
+ "Prisoner" = list (/obj/item/pen/blue),
"Chaplain" = list(/obj/item/camera/spooky/family),
"Head of Personnel" = list(/obj/item/pinpointer/ian)
))
diff --git a/code/datums/weather/weather_types/radiation_storm.dm b/code/datums/weather/weather_types/radiation_storm.dm
index ed58ee512d..35e5a9a360 100644
--- a/code/datums/weather/weather_types/radiation_storm.dm
+++ b/code/datums/weather/weather_types/radiation_storm.dm
@@ -18,7 +18,7 @@
area_type = /area
protected_areas = list(/area/maintenance, /area/ai_monitored/turret_protected/ai_upload, /area/ai_monitored/turret_protected/ai_upload_foyer,
- /area/ai_monitored/turret_protected/ai, /area/commons/storage/emergency/starboard, /area/commons/storage/emergency/port, /area/shuttle, /area/security/prison/safe, /area/security/prison/toilet)
+ /area/ai_monitored/turret_protected/ai, /area/commons/storage/emergency/starboard, /area/commons/storage/emergency/port, /area/shuttle)
target_trait = ZTRAIT_STATION
immunity_type = "rad"
diff --git a/code/game/area/Space_Station_13_areas.dm b/code/game/area/Space_Station_13_areas.dm
index 57f4fdb8de..caf8fda213 100644
--- a/code/game/area/Space_Station_13_areas.dm
+++ b/code/game/area/Space_Station_13_areas.dm
@@ -37,7 +37,7 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
/area/ai_monitored/turret_protected/AIsatextAP
name = "AI Sat Ext"
icon_state = "storage"
-
+
/area/arrival
requires_power = FALSE
@@ -296,6 +296,28 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
icon_state = "xenomaint"
area_flags = VALID_TERRITORY | BLOBS_ALLOWED | UNIQUE_AREA | XENOBIOLOGY_COMPATIBLE | CULT_PERMITTED
+//Maintenance - Prison
+
+/area/maintenance/prison
+ name = "Prison Maintenance"
+ icon_state = "prison_maintenance"
+
+/area/maintenance/prison/fore
+ name = "Prison Fore Maintenance"
+ icon_state = "prison_maintenance"
+
+/area/maintenance/prison/starboard
+ name = "Prison Starboard Maintenance"
+ icon_state = "prison_maintenance"
+
+/area/maintenance/prison/aft
+ name = "Prison Aft Maintenance"
+ icon_state = "prison_maintenance"
+
+/area/maintenance/prison/port
+ name = "Prison Port Maintenance"
+ icon_state = "prison_maintenance"
+
//Maintenance - Generic
/area/maintenance/arrivals/north
@@ -1393,13 +1415,9 @@ NOTE: there are two lists of areas in the end of this file: centcom and station
name = "Prison Wing"
icon_state = "sec_prison"
-/area/security/prison/toilet //radproof
- name = "Prison Toilet"
- icon_state = "sec_prison_safe"
-
-/area/security/prison/safe //radproof
+/area/security/prison/cells
name = "Prison Wing Cells"
- icon_state = "sec_prison_safe"
+ icon_state = "prison_cells"
/area/security/prison/upper
name = "Upper Prison Wing"
diff --git a/code/game/gamemodes/bloodsucker/bloodsucker.dm b/code/game/gamemodes/bloodsucker/bloodsucker.dm
index 65321f5820..aa8edeaa72 100644
--- a/code/game/gamemodes/bloodsucker/bloodsucker.dm
+++ b/code/game/gamemodes/bloodsucker/bloodsucker.dm
@@ -25,7 +25,7 @@
antag_flag = ROLE_BLOODSUCKER
false_report_weight = 1
chaos = 4
- restricted_jobs = list("AI","Cyborg")
+ restricted_jobs = list("Prisoner", "AI","Cyborg")
protected_jobs = list("Chaplain", "Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster")
required_players = 20
required_enemies = 2
diff --git a/code/game/gamemodes/brother/traitor_bro.dm b/code/game/gamemodes/brother/traitor_bro.dm
index eda6b5f9e2..6da31e41bb 100644
--- a/code/game/gamemodes/brother/traitor_bro.dm
+++ b/code/game/gamemodes/brother/traitor_bro.dm
@@ -7,7 +7,7 @@
config_tag = "traitorbro"
required_players = 25
chaos = 5
- restricted_jobs = list("AI", "Cyborg")
+ restricted_jobs = list("Prisoner", "AI", "Cyborg")
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster")
announce_span = "danger"
diff --git a/code/game/gamemodes/changeling/changeling.dm b/code/game/gamemodes/changeling/changeling.dm
index 20ef83a54c..83c1eec598 100644
--- a/code/game/gamemodes/changeling/changeling.dm
+++ b/code/game/gamemodes/changeling/changeling.dm
@@ -11,7 +11,7 @@ GLOBAL_VAR(changeling_team_objective_type) //If this is not null, we hand our th
antag_flag = ROLE_CHANGELING
false_report_weight = 10
chaos = 5
- restricted_jobs = list("AI", "Cyborg")
+ restricted_jobs = list("Prisoner", "AI", "Cyborg")
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster") //citadel change - adds HoP, CE, CMO, and RD to ling role blacklist
required_players = 15
required_enemies = 1
diff --git a/code/game/gamemodes/changeling/traitor_chan.dm b/code/game/gamemodes/changeling/traitor_chan.dm
index 88a1cde8ce..691111031d 100644
--- a/code/game/gamemodes/changeling/traitor_chan.dm
+++ b/code/game/gamemodes/changeling/traitor_chan.dm
@@ -4,7 +4,7 @@
false_report_weight = 10
chaos = 6
traitors_possible = 3 //hard limit on traitors if scaling is turned off
- restricted_jobs = list("AI", "Cyborg")
+ restricted_jobs = list("Prisoner", "AI", "Cyborg")
required_players = 25
required_enemies = 1 // how many of each type are required
recommended_enemies = 3
diff --git a/code/game/gamemodes/clock_cult/clock_cult.dm b/code/game/gamemodes/clock_cult/clock_cult.dm
index 68d9f1f1b9..e052f2e39f 100644
--- a/code/game/gamemodes/clock_cult/clock_cult.dm
+++ b/code/game/gamemodes/clock_cult/clock_cult.dm
@@ -139,7 +139,7 @@ Credit where due:
required_enemies = 3
recommended_enemies = 5
enemy_minimum_age = 7
- protected_jobs = list("AI", "Cyborg", "Security Officer", "Warden", "Detective", "Head of Security", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster") //Silicons can eventually be converted
+ protected_jobs = list("Prisoner", "AI", "Cyborg", "Security Officer", "Warden", "Detective", "Head of Security", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster") //Silicons can eventually be converted
restricted_jobs = list("Chaplain", "Captain")
announce_span = "brass"
announce_text = "Servants of Ratvar are trying to summon the Justiciar!\n\
diff --git a/code/game/gamemodes/cult/cult.dm b/code/game/gamemodes/cult/cult.dm
index ba9fad7a84..9a49c05739 100644
--- a/code/game/gamemodes/cult/cult.dm
+++ b/code/game/gamemodes/cult/cult.dm
@@ -39,7 +39,7 @@
antag_flag = ROLE_CULTIST
false_report_weight = 10
chaos = 8
- restricted_jobs = list("AI", "Cyborg")
+ restricted_jobs = list("Prisoner", "AI", "Cyborg")
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster")
required_players = 30
required_enemies = 3
diff --git a/code/game/gamemodes/devil/devil_game_mode.dm b/code/game/gamemodes/devil/devil_game_mode.dm
index 9bf7fc0e82..7fe2f91714 100644
--- a/code/game/gamemodes/devil/devil_game_mode.dm
+++ b/code/game/gamemodes/devil/devil_game_mode.dm
@@ -4,7 +4,7 @@
antag_flag = ROLE_DEVIL
false_report_weight = 1
chaos = 3
- protected_jobs = list("Lawyer", "Curator", "Chaplain", "Head of Security", "Captain", "AI")
+ protected_jobs = list("Prisoner", "Lawyer", "Curator", "Chaplain", "Head of Security", "Captain", "AI")
required_players = 0
required_enemies = 1
recommended_enemies = 4
diff --git a/code/game/gamemodes/eldritch_cult/eldritch_cult.dm b/code/game/gamemodes/eldritch_cult/eldritch_cult.dm
index 1693163fa2..2086653012 100644
--- a/code/game/gamemodes/eldritch_cult/eldritch_cult.dm
+++ b/code/game/gamemodes/eldritch_cult/eldritch_cult.dm
@@ -4,7 +4,7 @@
antag_flag = ROLE_HERETIC
false_report_weight = 5
chaos = 5
- restricted_jobs = list("AI", "Cyborg")
+ restricted_jobs = list("Prisoner", "AI", "Cyborg")
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster") //citadel change - adds HoP, CE, CMO, and RD to heretic role blacklist
required_players = 15
required_enemies = 1
diff --git a/code/game/gamemodes/gangs/gangs.dm b/code/game/gamemodes/gangs/gangs.dm
index 100669c487..1352e9340d 100644
--- a/code/game/gamemodes/gangs/gangs.dm
+++ b/code/game/gamemodes/gangs/gangs.dm
@@ -7,7 +7,7 @@ GLOBAL_LIST_EMPTY(gangs)
config_tag = "gang"
antag_flag = ROLE_GANG
chaos = 9
- restricted_jobs = list("AI", "Cyborg")
+ restricted_jobs = list("Prisoner", "AI", "Cyborg")
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster")
required_players = 15
required_enemies = 0
diff --git a/code/game/gamemodes/revolution/revolution.dm b/code/game/gamemodes/revolution/revolution.dm
index 419a74d616..5b3e742336 100644
--- a/code/game/gamemodes/revolution/revolution.dm
+++ b/code/game/gamemodes/revolution/revolution.dm
@@ -13,7 +13,7 @@
antag_flag = ROLE_REV
false_report_weight = 10
chaos = 8
- restricted_jobs = list("AI", "Cyborg")
+ restricted_jobs = list("Prisoner", "AI", "Cyborg")
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster")
required_players = 20
required_enemies = 1
diff --git a/code/game/gamemodes/traitor/traitor.dm b/code/game/gamemodes/traitor/traitor.dm
index d42fe615cd..220fbe9978 100644
--- a/code/game/gamemodes/traitor/traitor.dm
+++ b/code/game/gamemodes/traitor/traitor.dm
@@ -10,7 +10,7 @@
config_tag = "traitor"
antag_flag = ROLE_TRAITOR
false_report_weight = 20 //Reports of traitors are pretty common.
- restricted_jobs = list("Cyborg")//They are part of the AI if he is traitor so are they, they use to get double chances
+ restricted_jobs = list("Prisoner", "Cyborg")//They are part of the AI if he is traitor so are they, they use to get double chances
protected_jobs = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Quartermaster") //citadel change - adds HoP, CE, CMO, and RD to ling role blacklist
required_players = 0
required_enemies = 1
diff --git a/code/game/machinery/doors/airlock.dm b/code/game/machinery/doors/airlock.dm
index 477f72ee3b..982e40a79b 100644
--- a/code/game/machinery/doors/airlock.dm
+++ b/code/game/machinery/doors/airlock.dm
@@ -102,6 +102,9 @@
rad_insulation = RAD_MEDIUM_INSULATION
var/static/list/airlock_overlays = list()
+
+ /// sigh
+ var/unelectrify_timerid
/obj/machinery/door/airlock/Initialize()
. = ..()
@@ -791,21 +794,6 @@
return WIRE_INTERACTION_FAIL
return ..()
-/obj/machinery/door/airlock/proc/electrified_loop()
- while (secondsElectrified > NOT_ELECTRIFIED)
- sleep(10)
- if(QDELETED(src))
- return
-
- secondsElectrified--
- updateDialog()
- // This is to protect against changing to permanent, mid loop.
- if(secondsElectrified == NOT_ELECTRIFIED)
- set_electrified(NOT_ELECTRIFIED)
- else
- set_electrified(ELECTRIFIED_PERMANENT)
- updateDialog()
-
/obj/machinery/door/airlock/Topic(href, href_list, var/nowindow = 0)
// If you add an if(..()) check you must first remove the var/nowindow parameter.
// Otherwise it will runtime with this kind of error: null.Topic()
@@ -1365,11 +1353,18 @@
wires.cut_all()
update_icon()
+/obj/machinery/door/airlock/proc/remove_electrify()
+ secondsElectrified = NOT_ELECTRIFIED
+ unelectrify_timerid = null
+
/obj/machinery/door/airlock/proc/set_electrified(seconds, mob/user)
secondsElectrified = seconds
+ if(unelectrify_timerid)
+ deltimer(unelectrify_timerid)
+ unelectrify_timerid = null
+ if(secondsElectrified != ELECTRIFIED_PERMANENT)
+ unelectrify_timerid = addtimer(CALLBACK(src, .proc/remove_electrify), secondsElectrified SECONDS, TIMER_STOPPABLE)
diag_hud_set_electrified()
- if(secondsElectrified > NOT_ELECTRIFIED)
- INVOKE_ASYNC(src, .proc/electrified_loop)
if(user)
var/message
diff --git a/code/game/machinery/doppler_array.dm b/code/game/machinery/doppler_array.dm
index 2066e88f85..3ff75495e6 100644
--- a/code/game/machinery/doppler_array.dm
+++ b/code/game/machinery/doppler_array.dm
@@ -197,10 +197,8 @@ GLOBAL_LIST_EMPTY(doppler_arrays)
if(orig_light < 10)
say("Explosion not large enough for research calculations.")
return
- else if(orig_light < 4500)
- point_gain = (83300 * orig_light) / (orig_light + 3000)
else
- point_gain = TECHWEB_BOMB_POINTCAP
+ point_gain = (100000 * orig_light) / (orig_light + 5000)
/*****The Point Capper*****/
if(point_gain > linked_techweb.largest_bomb_value)
diff --git a/code/game/machinery/prisonlabor.dm b/code/game/machinery/prisonlabor.dm
new file mode 100644
index 0000000000..b76a62a6be
--- /dev/null
+++ b/code/game/machinery/prisonlabor.dm
@@ -0,0 +1,66 @@
+/obj/machinery/plate_press
+ name = "license plate press"
+ desc = "You know, we're making a lot of license plates for a station with literaly no cars in it."
+ icon = 'icons/obj/machines/prison.dmi'
+ icon_state = "offline"
+ use_power = IDLE_POWER_USE
+ idle_power_usage = 2
+ active_power_usage = 50
+ var/obj/item/stack/license_plates/empty/current_plate
+ var/pressing = FALSE
+
+/obj/machinery/plate_press/update_icon()
+ . = ..()
+ if(!is_operational())
+ icon_state = "offline"
+ else if(pressing)
+ icon_state = "loop"
+ else if(current_plate)
+ icon_state = "online_loaded"
+ else
+ icon_state = "online"
+
+/obj/machinery/plate_press/Destroy()
+ QDEL_NULL(current_plate)
+ . = ..()
+
+/obj/machinery/plate_press/attackby(obj/item/I, mob/living/user, params)
+ if(!is_operational())
+ to_chat(user, "[src] has to be on to do this!")
+ return FALSE
+ if(pressing)
+ to_chat(user, "[src] already has a plate in it!")
+ return FALSE
+ if(istype(I, /obj/item/stack/license_plates/empty))
+ var/obj/item/stack/license_plates/empty/plate = I
+ plate.use(1)
+ current_plate = new plate.type(src, 1) //Spawn a new single sheet in the machine
+ update_icon()
+ else
+ return ..()
+
+/obj/machinery/plate_press/attack_hand(mob/living/user)
+ . = ..()
+ if(!pressing && current_plate)
+ work_press(user)
+
+///This proc attempts to create a plate. User cannot move during this process.
+/obj/machinery/plate_press/proc/work_press(mob/living/user)
+
+ pressing = TRUE
+ update_icon()
+ to_chat(user, "You start pressing a new license plate!")
+
+ if(!do_after(user, 40, target = src))
+ pressing = FALSE
+ update_icon()
+ return FALSE
+
+ use_power(100)
+ to_chat(user, "You finish pressing a new license plate!")
+
+ pressing = FALSE
+ QDEL_NULL(current_plate)
+ update_icon()
+
+ new /obj/item/stack/license_plates/filled(drop_location(), 1)
diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm
index 2ffd556dc1..21ef8e2dcf 100644
--- a/code/game/machinery/recycler.dm
+++ b/code/game/machinery/recycler.dm
@@ -110,7 +110,7 @@
var/list/to_eat = AM0.GetAllContents()
- var/living_detected = FALSE //technically includes silicons as well but eh
+ var/mob/living/living_detected //technically includes silicons as well but eh
var/list/nom = list()
var/list/crunchy_nom = list() //Mobs have to be handled differently so they get a different list instead of checking them multiple times.
@@ -120,10 +120,10 @@
var/obj/item/bodypart/head/as_head = AM
var/obj/item/mmi/as_mmi = AM
if(istype(AM, /obj/item/organ/brain) || (istype(as_head) && as_head.brain) || (istype(as_mmi) && as_mmi.brain) || istype(AM, /obj/item/dullahan_relay))
- living_detected = TRUE
+ living_detected = living_detected || AM
nom += AM
else if(isliving(AM))
- living_detected = TRUE
+ living_detected = living_detected || TRUE
crunchy_nom += AM
var/not_eaten = to_eat.len - nom.len - crunchy_nom.len
if(living_detected) // First, check if we have any living beings detected.
@@ -132,7 +132,7 @@
if(isliving(CRUNCH)) // MMIs and brains will get eaten like normal items
crush_living(CRUNCH)
else // Stop processing right now without eating anything.
- emergency_stop()
+ emergency_stop(living_detected)
return
for(var/nommed in nom)
recycle_item(nommed)
diff --git a/code/game/objects/effects/landmarks.dm b/code/game/objects/effects/landmarks.dm
index 6910bb1db0..a484f78b41 100644
--- a/code/game/objects/effects/landmarks.dm
+++ b/code/game/objects/effects/landmarks.dm
@@ -64,6 +64,10 @@ INITIALIZE_IMMEDIATE(/obj/effect/landmark)
name = "Assistant"
icon_state = "Assistant"
+/obj/effect/landmark/start/prisoner
+ name = "Prisoner"
+ icon_state = "Prisoner"
+
/obj/effect/landmark/start/assistant/override
jobspawn_override = TRUE
delete_after_roundstart = FALSE
diff --git a/code/game/objects/effects/spawners/lootdrop.dm b/code/game/objects/effects/spawners/lootdrop.dm
index 5a0e1790a9..920af875d5 100644
--- a/code/game/objects/effects/spawners/lootdrop.dm
+++ b/code/game/objects/effects/spawners/lootdrop.dm
@@ -60,6 +60,48 @@
/obj/item/gun/ballistic/automatic/pistol/deagle,
/obj/item/storage/box/syndie_kit/throwing_weapons = 3)
+/obj/effect/spawner/lootdrop/prison_contraband
+ name = "prison contraband loot spawner"
+ loot = list(/obj/item/clothing/mask/cigarette/space_cigarette = 4,
+ /obj/item/clothing/mask/cigarette/robust = 2,
+ /obj/item/clothing/mask/cigarette/carp = 3,
+ /obj/item/clothing/mask/cigarette/uplift = 2,
+ /obj/item/clothing/mask/cigarette/dromedary = 3,
+ /obj/item/clothing/mask/cigarette/robustgold = 1,
+ /obj/item/storage/fancy/cigarettes/cigpack_uplift = 3,
+ /obj/item/storage/fancy/cigarettes = 3,
+ /obj/item/clothing/mask/cigarette/rollie/cannabis = 4,
+ /obj/item/toy/crayon/spraycan = 2,
+ /obj/item/crowbar = 1,
+ /obj/item/assembly/flash/handheld = 1,
+ /obj/item/restraints/handcuffs/cable/zipties = 1,
+ /obj/item/restraints/handcuffs = 1,
+ /obj/item/radio/off = 1,
+ /obj/item/lighter = 3,
+ /obj/item/storage/box/matches = 3,
+ /obj/item/reagent_containers/syringe/contraband/space_drugs = 1,
+ /obj/item/reagent_containers/syringe/contraband/krokodil = 1,
+ /obj/item/reagent_containers/syringe/contraband/crank = 1,
+ /obj/item/reagent_containers/syringe/contraband/methamphetamine = 1,
+ /obj/item/reagent_containers/syringe/contraband/bath_salts = 1,
+ /obj/item/reagent_containers/syringe/contraband/fentanyl = 1,
+ /obj/item/reagent_containers/syringe/contraband/morphine = 1,
+ /obj/item/storage/pill_bottle/happy = 1,
+ /obj/item/storage/pill_bottle/lsd = 1,
+ /obj/item/storage/pill_bottle/psicodine = 1,
+ /obj/item/reagent_containers/food/drinks/beer = 4,
+ /obj/item/reagent_containers/food/drinks/bottle/whiskey = 1,
+ /obj/item/paper/fluff/jobs/prisoner/letter = 1,
+ /obj/item/grenade/smokebomb = 1,
+ /obj/item/flashlight/seclite = 1,
+ /obj/item/tailclub = 1, //want to buy makeshift wooden club sprite
+ /obj/item/kitchen/knife/shiv = 4,
+ /obj/item/kitchen/knife/shiv/carrot = 1,
+ /obj/item/kitchen/knife = 1,
+ /obj/item/storage/wallet/random = 1,
+ /obj/item/pda = 1
+ )
+
/obj/effect/spawner/lootdrop/gambling
name = "gambling valuables spawner"
loot = list(
diff --git a/code/game/objects/items/devices/radio/headset.dm b/code/game/objects/items/devices/radio/headset.dm
index 54556c20b6..3ef4cb0307 100644
--- a/code/game/objects/items/devices/radio/headset.dm
+++ b/code/game/objects/items/devices/radio/headset.dm
@@ -105,6 +105,12 @@ GLOBAL_LIST_INIT(channel_tokens, list(
keyslot = new /obj/item/encryptionkey/binary
recalculateChannels()
+/obj/item/radio/headset/headset_prisoner
+ name = "prison radio headset"
+ desc = "An updated, modular intercom that fits over the head. Takes encryption keys. It looks like it has been modified to not broadcast."
+ icon_state = "prisoner_headset"
+ prison_radio = TRUE
+
/obj/item/radio/headset/headset_sec
name = "security radio headset"
desc = "This is used by your elite security force."
diff --git a/code/game/objects/items/kitchen.dm b/code/game/objects/items/kitchen.dm
index 2e7cef2c9f..5a16c24b8e 100644
--- a/code/game/objects/items/kitchen.dm
+++ b/code/game/objects/items/kitchen.dm
@@ -255,18 +255,31 @@
icon_state = "knife"
desc = "A cyborg-mounted plasteel knife. Extremely sharp and durable."
-/obj/item/kitchen/knife/carrotshiv
+/obj/item/kitchen/knife/shiv
+ name = "glass shiv"
+ icon = 'icons/obj/shards.dmi'
+ icon_state = "shiv"
+ item_state = "shiv"
+ lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi'
+ righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi'
+ desc = "A makeshift glass shiv."
+ force = 8
+ throwforce = 12//fuck git
+ attack_verb = list("shanked", "shivved")
+ armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0)
+ custom_materials = list(/datum/material/glass=400)
+
+/obj/item/kitchen/knife/shiv/carrot
name = "carrot shiv"
icon_state = "carrotshiv"
item_state = "carrotshiv"
- lefthand_file = 'icons/mob/inhands/weapons/swords_lefthand.dmi'
- righthand_file = 'icons/mob/inhands/weapons/swords_righthand.dmi'
+ icon = 'icons/obj/kitchen.dmi'
desc = "Unlike other carrots, you should probably keep this far away from your eyes."
- force = 8
- throwforce = 12//fuck git
custom_materials = null
- attack_verb = list("shanked", "shivved")
- armor = list("melee" = 0, "bullet" = 0, "laser" = 0, "energy" = 0, "bomb" = 0, "bio" = 0, "rad" = 0, "fire" = 0, "acid" = 0)
+
+/obj/item/kitchen/knife/shiv/carrot/suicide_act(mob/living/carbon/user)
+ user.visible_message("[user] forcefully drives \the [src] into [user.p_their()] eye! It looks like [user.p_theyre()] trying to commit suicide!")
+ return BRUTELOSS
/obj/item/kitchen/rollingpin
name = "rolling pin"
diff --git a/code/game/objects/items/stacks/license_plates.dm b/code/game/objects/items/stacks/license_plates.dm
new file mode 100644
index 0000000000..06dc86ee61
--- /dev/null
+++ b/code/game/objects/items/stacks/license_plates.dm
@@ -0,0 +1,30 @@
+/obj/item/stack/license_plates
+ name = "invalid plate"
+ desc = "someone fucked up"
+ icon = 'icons/obj/machines/prison.dmi'
+ icon_state = "empty_plate"
+ novariants = FALSE
+ max_amount = 50
+
+/obj/item/stack/license_plates/empty
+ name = "empty license plate"
+ desc = "Instead of a license plate number, this could contain a quote like \"Live laugh love\"."
+
+/obj/item/stack/license_plates/empty/fifty
+ amount = 50
+
+/obj/item/stack/license_plates/filled
+ name = "license plate"
+ desc = "Prison labor paying off."
+ icon_state = "filled_plate_1_1"
+
+///Override to allow for variations
+/obj/item/stack/license_plates/filled/update_icon_state()
+ if(novariants)
+ return
+ if(amount <= (max_amount * (1/3)))
+ icon_state = "filled_plate_[rand(1,6)]_1"
+ else if (amount <= (max_amount * (2/3)))
+ icon_state = "filled_plate_[rand(1,6)]_2"
+ else
+ icon_state = "filled_plate_[rand(1,6)]_3"
diff --git a/code/game/objects/items/stacks/sheets/glass.dm b/code/game/objects/items/stacks/sheets/glass.dm
index 6b1220743f..e62b5421d4 100644
--- a/code/game/objects/items/stacks/sheets/glass.dm
+++ b/code/game/objects/items/stacks/sheets/glass.dm
@@ -355,7 +355,19 @@ GLOBAL_LIST_INIT(plastitaniumglass_recipes, list(
/obj/item/shard/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/lightreplacer))
- I.attackby(src, user)
+ var/obj/item/lightreplacer/L = I
+ L.attackby(src, user)
+ else if(istype(I, /obj/item/stack/sheet/cloth))
+ var/obj/item/stack/sheet/cloth/C = I
+ to_chat(user, "You begin to wrap the [C] around the [src]...")
+ if(do_after(user, 35, target = src))
+ var/obj/item/kitchen/knife/shiv/S = new /obj/item/kitchen/knife/shiv
+ C.use(1)
+ to_chat(user, "You wrap the [C] around the [src] forming a makeshift weapon.")
+ remove_item_from_storage(src)
+ qdel(src)
+ user.put_in_hands(S)
+
else
return ..()
diff --git a/code/game/objects/items/storage/bags.dm b/code/game/objects/items/storage/bags.dm
index cb619a711b..6bb501807d 100644
--- a/code/game/objects/items/storage/bags.dm
+++ b/code/game/objects/items/storage/bags.dm
@@ -317,7 +317,7 @@
* Trays - Agouri
*/
/obj/item/storage/bag/tray
- name = "tray"
+ name = "serving tray"
icon = 'icons/obj/food/containers.dmi'
icon_state = "tray"
desc = "A metal tray to lay food on."
@@ -377,6 +377,12 @@
. = ..()
update_icon()
+/obj/item/storage/bag/tray/cafeteria
+ name = "cafeteria tray"
+ icon = 'icons/obj/food/containers.dmi'
+ icon_state = "foodtray"
+ desc = "A cheap metal tray to pile today's meal onto."
+
//bluespace tray, holds more items
/obj/item/storage/bag/tray/bluespace
name = "bluespace tray"
diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm
index cd10f9209c..02ee466376 100644
--- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm
+++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm
@@ -192,6 +192,7 @@
new /obj/item/clothing/under/rank/prisoner( src )
new /obj/item/clothing/under/rank/prisoner/skirt( src )
new /obj/item/clothing/shoes/sneakers/orange( src )
+ new /obj/item/radio/headset/headset_prisoner( src )
/obj/structure/closet/secure_closet/courtroom
name = "courtroom locker"
diff --git a/code/game/objects/structures/crates_lockers/crates.dm b/code/game/objects/structures/crates_lockers/crates.dm
index 030f7f4edf..f6153330e4 100644
--- a/code/game/objects/structures/crates_lockers/crates.dm
+++ b/code/game/objects/structures/crates_lockers/crates.dm
@@ -106,6 +106,16 @@
name = "trash cart"
icon_state = "trashcart"
+/obj/structure/closet/crate/trashcart/Moved()
+ . = ..()
+ if(has_gravity())
+ playsound(src, 'sound/effects/roll.ogg', 100, TRUE)
+
+/obj/structure/closet/crate/trashcart/laundry
+ name = "laundry cart"
+ desc = "A large cart for hauling around large amounts of laundry."
+ icon_state = "laundry"
+
/obj/structure/closet/crate/medical
desc = "A medical crate."
name = "medical crate"
diff --git a/code/game/turfs/simulated/floor/misc_floor.dm b/code/game/turfs/simulated/floor/misc_floor.dm
index 82e60ed8f6..11f2918bcf 100644
--- a/code/game/turfs/simulated/floor/misc_floor.dm
+++ b/code/game/turfs/simulated/floor/misc_floor.dm
@@ -263,7 +263,7 @@
/turf/open/floor/padded
name = "padded floor"
- desc = "Keeps crazy people from hurting themselves. It's soft, plush, and very nice to get shoved agaisnt."
+ desc = "Keeps crazy people from hurting themselves. It's soft, plush, and very nice to get shoved against."
icon = 'icons/turf/floors.dmi'
icon_state = "floor_padded"
floor_tile = /obj/item/stack/tile/padded
diff --git a/code/modules/antagonists/fugitive/fugitive_outfits.dm b/code/modules/antagonists/fugitive/fugitive_outfits.dm
index 242a7cc7fd..7648196f3e 100644
--- a/code/modules/antagonists/fugitive/fugitive_outfits.dm
+++ b/code/modules/antagonists/fugitive/fugitive_outfits.dm
@@ -2,7 +2,7 @@
name = "Prison Escapee"
uniform = /obj/item/clothing/under/rank/prisoner
shoes = /obj/item/clothing/shoes/sneakers/orange
- r_pocket = /obj/item/kitchen/knife
+ r_pocket = /obj/item/kitchen/knife/shiv
/datum/outfit/prisoner/post_equip(mob/living/carbon/human/H, visualsOnly=FALSE)
if(visualsOnly)
diff --git a/code/modules/cargo/exports/sheets.dm b/code/modules/cargo/exports/sheets.dm
index b0676fbde2..058e0cc892 100644
--- a/code/modules/cargo/exports/sheets.dm
+++ b/code/modules/cargo/exports/sheets.dm
@@ -59,6 +59,11 @@
unit_name = "alien hide"
export_types = list(/obj/item/stack/sheet/animalhide/xeno)
+/datum/export/stack/licenseplate
+ cost = 25
+ unit_name = "license plate"
+ export_types = list(/obj/item/stack/license_plates/filled)
+
// Common materials.
// For base materials, see materials.dm
diff --git a/code/modules/cargo/packs/materials.dm b/code/modules/cargo/packs/materials.dm
index 90629706b5..8b74b0fbe9 100644
--- a/code/modules/cargo/packs/materials.dm
+++ b/code/modules/cargo/packs/materials.dm
@@ -20,6 +20,13 @@
cost = 300 //thrice their export value
contains = list(/obj/item/stack/sheet/cardboard/fifty)
+/datum/supply_pack/materials/license50
+ name = "50 Empty License Plates"
+ desc = "Create a bunch of boxes."
+ cost = 1000 // 50 * 25 + 700 - 1000 = 950 credits profit
+ contains = list(/obj/item/stack/license_plates/empty/fifty)
+ crate_name = "empty license plate crate"
+
/datum/supply_pack/materials/glass50
crate_type = /obj/structure/closet/secure_closet/cargo
name = "50 Glass Sheets"
diff --git a/code/modules/client/verbs/suicide.dm b/code/modules/client/verbs/suicide.dm
index cae9a54484..453c22e7f2 100644
--- a/code/modules/client/verbs/suicide.dm
+++ b/code/modules/client/verbs/suicide.dm
@@ -207,6 +207,10 @@
message_admins("[key_name(src)] (job: [src.job ? "[src.job]" : "None"]) [is_special_character(src) ? "(ANTAG!) " : ""][ghosting ? "ghosted" : "committed suicide"] at [AREACOORD(src)].")
/mob/living/proc/canSuicide()
+ var/area/A = get_area(src)
+ if(A.area_flags & BLOCK_SUICIDE)
+ to_chat(src, span_warning("You can't commit suicide here! You can ghost if you'd like."))
+ return FALSE
if(!CONFIG_GET(flag/suicide_allowed))
to_chat(src, "Suicide is not enabled in the config.")
return FALSE
@@ -214,11 +218,11 @@
if(CONSCIOUS)
return TRUE
if(SOFT_CRIT)
- to_chat(src, "You can't commit suicide while in a critical condition!")
+ to_chat(src, span_warning("You can't commit suicide while in a critical condition!"))
if(UNCONSCIOUS)
- to_chat(src, "You need to be conscious to commit suicide!")
+ to_chat(src, span_warning("You need to be conscious to commit suicide!"))
if(DEAD)
- to_chat(src, "You're already dead!")
+ to_chat(src, span_warning("You're already dead!"))
return
/mob/living/carbon/canSuicide()
diff --git a/code/modules/clothing/outfits/plasmaman.dm b/code/modules/clothing/outfits/plasmaman.dm
index bd2c2b612d..5809cb8f50 100644
--- a/code/modules/clothing/outfits/plasmaman.dm
+++ b/code/modules/clothing/outfits/plasmaman.dm
@@ -71,6 +71,12 @@
head = /obj/item/clothing/head/helmet/space/plasmaman/security/hos
uniform = /obj/item/clothing/under/plasmaman/security/hos
+/datum/outfit/plasmaman/prisoner
+ name = "Prisoner Plasmaman"
+
+ head = /obj/item/clothing/head/helmet/space/plasmaman/prisoner
+ uniform = /obj/item/clothing/under/plasmaman/prisoner
+
/datum/outfit/plasmaman/cargo
name = "Cargo Plasmaman"
diff --git a/code/modules/clothing/spacesuits/plasmamen.dm b/code/modules/clothing/spacesuits/plasmamen.dm
index b50c2b45db..25ad19eee4 100644
--- a/code/modules/clothing/spacesuits/plasmamen.dm
+++ b/code/modules/clothing/spacesuits/plasmamen.dm
@@ -169,6 +169,10 @@
icon_state = "hos_envirohelm"
item_state = "hos_envirohelm"
+/obj/item/clothing/head/helmet/space/plasmaman/prisoner
+ name = "prisoner's plasma envirosuit helmet"
+ desc = "A plasmaman containment helmet for prisoners."
+
/obj/item/clothing/head/helmet/space/plasmaman/medical
name = "medical's plasma envirosuit helmet"
desc = "An envriohelmet designed for plasmaman medical doctors, having two stripes down it's length to denote as much."
diff --git a/code/modules/clothing/under/jobs/Plasmaman/security.dm b/code/modules/clothing/under/jobs/Plasmaman/security.dm
index c9b7b494a3..262b336011 100644
--- a/code/modules/clothing/under/jobs/Plasmaman/security.dm
+++ b/code/modules/clothing/under/jobs/Plasmaman/security.dm
@@ -18,3 +18,9 @@
desc = "A slick black and red plasmaman containment suit designed for the head of security, also called the LAW."
icon_state = "hos_envirosuit"
item_state = "hos_envirosuit"
+
+/obj/item/clothing/under/plasmaman/prisoner
+ name = "prisoner envirosuit"
+ desc = "An orange envirosuit identifying and protecting a criminal plasmaman."
+ icon_state = "prisoner_envirosuit"
+ item_state = "prisoner_envirosuit"
diff --git a/code/modules/food_and_drinks/food/snacks_bread.dm b/code/modules/food_and_drinks/food/snacks_bread.dm
index f30d955b00..b11d2b83b9 100644
--- a/code/modules/food_and_drinks/food/snacks_bread.dm
+++ b/code/modules/food_and_drinks/food/snacks_bread.dm
@@ -19,7 +19,7 @@
custom_food_type = /obj/item/reagent_containers/food/snacks/customizable/sandwich
filling_color = "#FFA500"
list_reagents = list(/datum/reagent/consumable/nutriment = 2)
- slot_flags = ITEM_SLOT_HEAD
+ slot_flags = ITEM_SLOT_MASK
customfoodfilling = 0 //to avoid infinite bread-ception
foodtype = GRAIN
dunkable = TRUE
diff --git a/code/modules/hydroponics/grown/root.dm b/code/modules/hydroponics/grown/root.dm
index 5f9b55b881..843688b5a0 100644
--- a/code/modules/hydroponics/grown/root.dm
+++ b/code/modules/hydroponics/grown/root.dm
@@ -29,7 +29,7 @@
/obj/item/reagent_containers/food/snacks/grown/carrot/attackby(obj/item/I, mob/user, params)
if(I.get_sharpness())
to_chat(user, "You sharpen the carrot into a shiv with [I].")
- var/obj/item/kitchen/knife/carrotshiv/Shiv = new /obj/item/kitchen/knife/carrotshiv
+ var/obj/item/kitchen/knife/shiv/carrot/Shiv = new /obj/item/kitchen/knife/shiv/carrot
remove_item_from_storage(user)
qdel(src)
user.put_in_hands(Shiv)
diff --git a/code/modules/jobs/access.dm b/code/modules/jobs/access.dm
index 06e1863bc9..35a89b46db 100644
--- a/code/modules/jobs/access.dm
+++ b/code/modules/jobs/access.dm
@@ -355,7 +355,7 @@
return list("Assistant", "Captain", "Head of Personnel", "Bartender", "Cook", "Botanist", "Quartermaster", "Cargo Technician",
"Shaft Miner", "Clown", "Mime", "Janitor", "Curator", "Lawyer", "Chaplain", "Chief Engineer", "Station Engineer",
"Atmospheric Technician", "Chief Medical Officer", "Medical Doctor", "Chemist", "Geneticist", "Virologist", "Paramedic",
- "Research Director", "Scientist", "Roboticist", "Head of Security", "Warden", "Detective", "Security Officer")
+ "Research Director", "Scientist", "Roboticist", "Head of Security", "Warden", "Detective", "Security Officer", "Prisoner")
/proc/get_all_job_icons() //For all existing HUD icons
return get_all_jobs() + list("Prisoner")
diff --git a/code/modules/jobs/job_types/prisoner.dm b/code/modules/jobs/job_types/prisoner.dm
new file mode 100644
index 0000000000..13c18c21ca
--- /dev/null
+++ b/code/modules/jobs/job_types/prisoner.dm
@@ -0,0 +1,24 @@
+datum/job/prisoner
+ title = "Prisoner"
+ flag = PRISONER
+ department_head = list("The Security Team")
+ department_flag = CIVILIAN
+ faction = "Station"
+ total_positions = 2
+ spawn_positions = 2
+ supervisors = "the security team"
+
+ outfit = /datum/outfit/job/prisoner
+ plasma_outfit = /datum/outfit/plasmaman/prisoner
+
+ display_order = JOB_DISPLAY_ORDER_PRISONER
+
+/datum/outfit/job/prisoner
+ name = "Prisoner"
+ jobtype = /datum/job/prisoner
+
+ uniform = /obj/item/clothing/under/rank/prisoner
+ shoes = /obj/item/clothing/shoes/sneakers/orange
+ id = /obj/item/card/id/prisoner
+ ears = /obj/item/radio/headset/headset_prisoner
+ belt = null
diff --git a/code/modules/jobs/jobs.dm b/code/modules/jobs/jobs.dm
index 78b7dd3964..d91b102599 100644
--- a/code/modules/jobs/jobs.dm
+++ b/code/modules/jobs/jobs.dm
@@ -43,6 +43,7 @@ GLOBAL_LIST_INIT(civilian_positions, list(
"Chaplain",
"Clown",
"Mime",
+ "Prisoner",
"Assistant"))
GLOBAL_LIST_INIT(security_positions, list(
diff --git a/code/modules/mafia/_defines.dm b/code/modules/mafia/_defines.dm
index 194851beed..6c0c73e0d0 100644
--- a/code/modules/mafia/_defines.dm
+++ b/code/modules/mafia/_defines.dm
@@ -6,14 +6,16 @@
#define MAFIA_TEAM_SOLO "solo"
//types of town roles for random setup gen
-/// assistants it's just assistants filling up the rest of the roles
+/// Add this if you don't want a role to be a choice in the selection
#define TOWN_OVERFLOW "overflow"
/// roles that learn info about others in the game (chaplain, detective, psych)
#define TOWN_INVEST "invest"
-/// roles that keep other roles safe (doctor, and weirdly enough lawyer counts)
+/// roles that keep other roles safe (doctor, sec officer, and weirdly enough lawyer counts)
#define TOWN_PROTECT "protect"
+/// roles that are only there to kill bad guys.
+#define TOWN_KILLING "killing"
/// roles that don't fit into anything else (hop)
-#define TOWN_MISC "misc"
+#define TOWN_SUPPORT "support"
//other types (mafia team, neutrals)
/// normal vote kill changelings
@@ -25,6 +27,20 @@
/// role that upsets the game aka obsessed, usually worse for town than mafia but they can vote against mafia
#define NEUTRAL_DISRUPT "disrupt"
+//role flags (special status of roles like detection immune)
+///to all forms of detection, shows themselves as an assistant.
+#define ROLE_UNDETECTABLE (1<<0)
+///has the ability to kill at night and thus, blocks the game from ending with other teams alive.
+#define ROLE_CAN_KILL (1<<1)
+///can only be one in a randomly generated game
+#define ROLE_UNIQUE (1<<2)
+///role is public to all other players in the game.
+#define ROLE_REVEALED (1<<3)
+///can not be defended, protected, or any other form of protection. all kills succeed no matter what.
+#define ROLE_VULNERABLE (1<<4)
+///cannot perform any actions that night, preselected actions fail
+#define ROLE_ROLEBLOCKED (1<<5)
+
#define MAFIA_PHASE_SETUP 1
#define MAFIA_PHASE_DAY 2
#define MAFIA_PHASE_VOTING 3
@@ -35,12 +51,12 @@
#define MAFIA_ALIVE 1
#define MAFIA_DEAD 2
+#define COMSIG_MAFIA_ON_VISIT "mafia_onvisit"
+#define MAFIA_VISIT_INTERRUPTED 1
+
#define COMSIG_MAFIA_ON_KILL "mafia_onkill"
#define MAFIA_PREVENT_KILL 1
-#define COMSIG_MAFIA_CAN_PERFORM_ACTION "mafia_can_perform_action"
-#define MAFIA_PREVENT_ACTION 1
-
//in order of events + game end
/// when the shutters fall, before the 45 second wait and night event resolution
diff --git a/code/modules/mafia/controller.dm b/code/modules/mafia/controller.dm
index 54dcaebeec..43d15ebffe 100644
--- a/code/modules/mafia/controller.dm
+++ b/code/modules/mafia/controller.dm
@@ -15,6 +15,8 @@
var/phase = MAFIA_PHASE_SETUP
///how long the game has gone on for, changes with every sunrise. day one, night one, day two, etc.
var/turn = 0
+ ///if enabled, the game has fallen under half pop and is sped up
+ var/speed_up = FALSE
///for debugging and testing a full game, or adminbuse. If this is not empty, it will use this as a setup. clears when game is over
var/list/custom_setup = list()
///first day has no voting, and thus is shorter
@@ -187,8 +189,22 @@
turn += 1
phase = MAFIA_PHASE_DAY
if(!check_victory())
+ if(!speed_up)//lets check if the game should be sped up, if not already.
+ var/living_players = 0
+ for(var/i in all_roles)
+ var/datum/mafia_role/player = i
+ if(player.game_status == MAFIA_ALIVE)
+ living_players += 1
+ if(living_players < all_roles.len / 2)
+ speed_up = TRUE
+ send_message("With only [living_players] living players left, the game timers have been sped up.")
+ day_phase_period /= 2
+ voting_phase_period /= 2
+ judgement_phase_period /= 2
+ judgement_lynch_period /= 2
+ night_phase_period /= 2
if(turn == 1)
- send_message("The selected map is [current_map.name]![current_map.description]")
+ send_message(span_notice("The selected map is [current_map.name]![current_map.description]"))
send_message("Day [turn] started! There is no voting on the first day. Say hello to everybody!")
next_phase_timer = addtimer(CALLBACK(src,.proc/check_trial, FALSE),first_day_phase_period,TIMER_STOPPABLE) //no voting period = no votes = instant night
else
@@ -257,19 +273,19 @@
/datum/mafia_controller/proc/lynch()
for(var/i in judgement_innocent_votes)
var/datum/mafia_role/role = i
- send_message("[role.body.real_name] voted innocent.")
+ send_message(span_green("[role.body.real_name] voted innocent."))
for(var/ii in judgement_abstain_votes)
var/datum/mafia_role/role = ii
- send_message("[role.body.real_name] abstained.")
+ send_message(span_comradio("[role.body.real_name] abstained."))
for(var/iii in judgement_guilty_votes)
var/datum/mafia_role/role = iii
- send_message("[role.body.real_name] voted guilty.")
+ send_message(span_red("[role.body.real_name] voted guilty."))
if(judgement_guilty_votes.len > judgement_innocent_votes.len) //strictly need majority guilty to lynch
- send_message("Guilty wins majority, [on_trial.body.real_name] has been lynched.")
- on_trial.kill(src, lynch = TRUE)
+ send_message(span_red("Guilty wins majority, [on_trial.body.real_name] has been lynched."))
+ on_trial.kill(src,lynch = TRUE)
addtimer(CALLBACK(src, .proc/send_home, on_trial),judgement_lynch_period)
else
- send_message("Innocent wins majority, [on_trial.body.real_name] has been spared.")
+ send_message(span_green("Innocent wins majority, [on_trial.body.real_name] has been spared."))
on_trial.body.forceMove(get_turf(on_trial.assigned_landmark))
on_trial = null
//day votes are already cleared, so this will skip the trial and check victory/lockdown/whatever else
@@ -300,11 +316,14 @@
var/list/total_town = list()
var/list/total_mafia = list()
- var/alive_town = 0
+ //voting power of town + solos (since they don't want mafia to overpower)
+ var/anti_mafia_power = 0
+ //voting power of mafia (greater than anti mafia power + team end not blocked = mafia victory)
var/alive_mafia = 0
var/list/solos_to_ask = list() //need to ask after because first round is counting team sizes
var/list/total_victors = list() //if this list gets filled with anyone, they win. list because side antags can with with people
var/blocked_victory = FALSE //if a solo antagonist is stopping the town or mafia from finishing the game.
+ var/town_can_kill = FALSE //Town has a killing role and it cannot allow mafia to win
///PHASE ONE: TALLY UP ALL NUMBERS OF PEOPLE STILL ALIVE
@@ -313,23 +332,24 @@
if(MAFIA_TEAM_MAFIA)
total_mafia += R
if(R.game_status == MAFIA_ALIVE)
- alive_mafia += R.vote_power
+ alive_mafia += R.vote_potential
if(MAFIA_TEAM_TOWN)
total_town += R
if(R.game_status == MAFIA_ALIVE)
- alive_town += R.vote_power
+ anti_mafia_power += R.vote_potential
+ if(R.role_flags & ROLE_CAN_KILL) //the game cannot autoresolve with killing roles (unless a solo wins anyways, like traitors who are immune)
+ town_can_kill = TRUE
if(MAFIA_TEAM_SOLO)
if(R.game_status == MAFIA_ALIVE)
- if(R.solo_counts_as_town)
- alive_town += R.vote_power
+ anti_mafia_power += R.vote_potential
solos_to_ask += R
///PHASE TWO: SEND STATS TO SOLO ANTAGS, SEE IF THEY WON OR TEAMS CANNOT WIN
for(var/datum/mafia_role/solo in solos_to_ask)
- if(solo.check_total_victory(alive_town, alive_mafia))
+ if(solo.check_total_victory(anti_mafia_power, alive_mafia))
total_victors += solo
- if(solo.block_team_victory(alive_town, alive_mafia))
+ if(solo.block_team_victory(anti_mafia_power, alive_mafia))
blocked_victory = TRUE
//solo victories!
@@ -348,7 +368,7 @@
award_role(townie.winner_award, townie)
start_the_end("!! TOWN VICTORY !!")
return TRUE
- else if(alive_mafia >= alive_town) //guess could change if town nightkill is added
+ else if(alive_mafia >= anti_mafia_power && !town_can_kill)
start_the_end("!! MAFIA VICTORY !!")
for(var/datum/mafia_role/changeling in total_mafia)
award_role(changeling.winner_award, changeling)
@@ -396,6 +416,13 @@
custom_setup = list()
turn = 0
votes = list()
+
+ day_phase_period = initial(day_phase_period)
+ voting_phase_period = initial(voting_phase_period)
+ judgement_phase_period = initial(judgement_phase_period)
+ judgement_lynch_period = initial(judgement_lynch_period)
+ night_phase_period = initial(night_phase_period)
+
//map gen does not deal with landmarks
QDEL_LIST(landmarks)
QDEL_NULL(town_center_landmark)
@@ -451,14 +478,15 @@
SEND_SIGNAL(src,COMSIG_MAFIA_NIGHT_START)
SEND_SIGNAL(src,COMSIG_MAFIA_NIGHT_ACTION_PHASE)
//resolve mafia kill, todo unsnowflake this
- var/datum/mafia_role/R = get_vote_winner("Mafia")
- if(R)
+ var/datum/mafia_role/victim = get_vote_winner("Mafia")
+ if(victim)
var/datum/mafia_role/killer = get_random_voter("Mafia")
- if(SEND_SIGNAL(killer,COMSIG_MAFIA_CAN_PERFORM_ACTION,src,"mafia killing",R) & MAFIA_PREVENT_ACTION)
- send_message("[killer.body.real_name] was unable to attack [R.body.real_name] tonight!",MAFIA_TEAM_MAFIA)
+ if(!victim.can_action(src, killer, "changeling murder"))
+ send_message(span_danger("[killer.body.real_name] was unable to attack [victim.body.real_name] tonight!"),MAFIA_TEAM_MAFIA)
else
- send_message("[killer.body.real_name] has attacked [R.body.real_name]!",MAFIA_TEAM_MAFIA)
- R.kill(src)
+ send_message(span_danger("[killer.body.real_name] has attacked [victim.body.real_name]!"),MAFIA_TEAM_MAFIA)
+ if(victim.kill(src,killer,lynch=FALSE))
+ to_chat(victim.body, span_userdanger("You have been killed by a Changeling!"))
reset_votes("Mafia")
SEND_SIGNAL(src,COMSIG_MAFIA_NIGHT_KILL_PHASE)
SEND_SIGNAL(src,COMSIG_MAFIA_NIGHT_END)
@@ -485,14 +513,14 @@
else
votes[vote_type][voter] = target
if(old_vote && old_vote == target)
- send_message("[voter.body.real_name] retracts their vote for [target.body.real_name]!", team = teams)
+ send_message(span_notice("[voter.body.real_name] retracts their vote for [target.body.real_name]!"), team = teams)
else
- send_message("[voter.body.real_name] voted for [target.body.real_name]!",team = teams)
+ send_message(span_notice("[voter.body.real_name] voted for [target.body.real_name]!"),team = teams)
if(!teams)
- target.body.update_icon() //Update the vote display if it's a public vote
+ target.body.update_appearance() //Update the vote display if it's a public vote
var/datum/mafia_role/old = old_vote
if(old)
- old.body.update_icon()
+ old.body.update_appearance()
/**
* Clears out the votes of a certain type (day votes, mafia kill votes) while leaving others untouched
@@ -504,7 +532,7 @@
bodies_to_update += R.body
votes[vote_type] = list()
for(var/mob/M in bodies_to_update)
- M.update_icon()
+ M.update_appearance()
/**
* Returns how many people voted for the role, in whatever vote (day vote, night kill vote)
@@ -571,6 +599,9 @@
/datum/mafia_controller/proc/create_bodies()
for(var/datum/mafia_role/role in all_roles)
var/mob/living/carbon/human/H = new(get_turf(role.assigned_landmark))
+ ADD_TRAIT(H, TRAIT_NOFIRE, MAFIA_TRAIT)
+ ADD_TRAIT(H, TRAIT_NOBREATH, MAFIA_TRAIT)
+ // ADD_TRAIT(H, TRAIT_CANNOT_CRYSTALIZE, MAFIA_TRAIT) freon tomfoolery
H.equipOutfit(player_outfit)
H.status_flags |= GODMODE
RegisterSignal(H,COMSIG_ATOM_UPDATE_OVERLAYS,.proc/display_votes)
@@ -707,6 +738,7 @@
if(role_count > 0)
debug_setup[found_path] = role_count
custom_setup = debug_setup
+ try_autostart()//don't worry, this fails if there's a game in progress
if("cancel_setup")
custom_setup = list()
switch(action) //both living and dead
@@ -723,28 +755,28 @@
switch(action)
if("mf_signup")
if(!SSticker.HasRoundStarted())
- to_chat(usr, "Wait for the round to start.")
+ to_chat(usr, span_warning("Wait for the round to start."))
return
if(GLOB.mafia_signup[C.ckey])
GLOB.mafia_signup -= C.ckey
- to_chat(usr, "You unregister from Mafia.")
+ to_chat(usr, span_notice("You unregister from Mafia."))
return TRUE
else
GLOB.mafia_signup[C.ckey] = C
- to_chat(usr, "You sign up for Mafia.")
+ to_chat(usr, span_notice("You sign up for Mafia."))
if(phase == MAFIA_PHASE_SETUP)
check_signups()
try_autostart()
return TRUE
if("mf_spectate")
if(C.ckey in spectators)
- to_chat(usr, "You will no longer get messages from the game.")
+ to_chat(usr, span_notice("You will no longer get messages from the game."))
spectators -= C.ckey
else
- to_chat(usr, "You will now get messages from the game.")
+ to_chat(usr, span_notice("You will now get messages from the game."))
spectators += C.ckey
return TRUE
- if(user_role.game_status == MAFIA_DEAD)
+ if(user_role && user_role.game_status == MAFIA_DEAD)
return
//User actions (just living)
switch(action)
@@ -814,58 +846,59 @@
. += L[key]
/**
- * Returns a semirandom setup, with...
- * Town, Two invest roles, one protect role, sometimes a misc role, and the rest assistants for town.
- * Mafia, 2 normal mafia and one special.
- * Neutral, two disruption roles, sometimes one is a killing.
+ * Returns a semirandom setup with 12 roles. balance not guaranteed!
*
- * See _defines.dm in the mafia folder for a rundown on what these groups of roles include.
+ * please check the variables at the top of the proc to see how much of each role types it picks
*/
/datum/mafia_controller/proc/generate_random_setup()
var/invests_left = 2
- var/protects_left = 1
- var/miscs_left = prob(35)
+ var/protects_left = 2
+ var/killings_left = 1
+ var/supports_left = 2
+
var/mafiareg_left = 2
var/mafiaspe_left = 1
- var/killing_role = prob(50)
- var/disruptors = killing_role ? 1 : 2 //still required to calculate overflow
- var/overflow_left = max_player - (invests_left + protects_left + miscs_left + mafiareg_left + mafiaspe_left + killing_role + disruptors)
+
+ // if there is one killing role, there will be less disruptors
+ var/neutral_killing_role = prob(50)
var/list/random_setup = list()
+ var/list/unique_roles_added = list()
for(var/i in 1 to max_player) //should match the number of roles to add
- if(overflow_left)
- add_setup_role(random_setup, TOWN_OVERFLOW)
- overflow_left--
- else if(invests_left)
- add_setup_role(random_setup, TOWN_INVEST)
+ if(invests_left)
+ add_setup_role(random_setup, unique_roles_added, TOWN_INVEST)
invests_left--
else if(protects_left)
- add_setup_role(random_setup, TOWN_PROTECT)
+ add_setup_role(random_setup, unique_roles_added, TOWN_PROTECT)
protects_left--
- else if(miscs_left)
- add_setup_role(random_setup, TOWN_MISC)
- miscs_left--
+ else if(killings_left)
+ add_setup_role(random_setup, unique_roles_added, TOWN_KILLING)
+ killings_left--
+ else if(supports_left)
+ add_setup_role(random_setup, unique_roles_added, TOWN_SUPPORT)
+ supports_left--
else if(mafiareg_left)
- add_setup_role(random_setup, MAFIA_REGULAR)
+ add_setup_role(random_setup, unique_roles_added, MAFIA_REGULAR)
mafiareg_left--
else if(mafiaspe_left)
- add_setup_role(random_setup, MAFIA_SPECIAL)
+ add_setup_role(random_setup, unique_roles_added, MAFIA_SPECIAL)
mafiaspe_left--
- else if(killing_role)
- add_setup_role(random_setup, NEUTRAL_KILL)
- killing_role--
+ else if(neutral_killing_role)
+ add_setup_role(random_setup, unique_roles_added, NEUTRAL_KILL)
+ neutral_killing_role--
else
- add_setup_role(random_setup, NEUTRAL_DISRUPT)
+ add_setup_role(random_setup, unique_roles_added, NEUTRAL_DISRUPT)
+ debug = random_setup
return random_setup
/**
- * Helper proc that adds a random role of a type to a setup. if it doesn't exist in the setup, it adds the path to the list and otherwise bumps the path in the list up one
+ * Helper proc that adds a random role of a type to a setup. if it doesn't exist in the setup, it adds the path to the list and otherwise bumps the path in the list up one. unique roles can only get added once.
*/
-/datum/mafia_controller/proc/add_setup_role(setup_list, wanted_role_type)
+/datum/mafia_controller/proc/add_setup_role(setup_list, banned_roles, wanted_role_type)
var/list/role_type_paths = list()
for(var/path in typesof(/datum/mafia_role))
var/datum/mafia_role/instance = path
- if(initial(instance.role_type) == wanted_role_type)
+ if(initial(instance.role_type) == wanted_role_type && !(path in banned_roles))
role_type_paths += instance
var/mafia_path = pick(role_type_paths)
@@ -880,6 +913,8 @@
setup_list[found_role] += 1
return
setup_list[mafia_path] = 1
+ if(initial(mafia_path_type.role_flags) & ROLE_UNIQUE) //check to see if we should no longer consider this okay to add to the game
+ banned_roles += mafia_path
/**
* Called when enough players have signed up to fill a setup. DOESN'T NECESSARILY MEAN THE GAME WILL START.
@@ -893,6 +928,8 @@
var/list/setup = custom_setup
if(!setup.len)
req_players = max_player //MAFIA_MAX_PLAYER_COUNT
+ else if(low_pop_mode)
+ req_players = required_player
else
req_players = assoc_value_sum(setup)
@@ -909,10 +946,10 @@
GLOB.mafia_signup -= key //not valid to play when we checked so remove them from signups
//if there were not enough players, don't start. we already trimmed the list to now hold only valid signups
+
if(length(possible_keys) < req_players)
return
- else //hacky implementation of max players
- req_players = clamp(length(possible_keys), 1, max_player)
+ req_players = clamp(length(possible_keys), required_player, max_player)
//if there were too many players, still start but only make filtered keys as big as it needs to be (cut excess)
//also removes people who do get into final player list from the signup so they have to sign up again when game ends
@@ -923,8 +960,8 @@
//small message about not getting into this game for clarity on why they didn't get in
for(var/unpicked in possible_keys)
var/client/unpicked_client = GLOB.directory[unpicked]
- to_chat(unpicked_client, "Sorry, the starting mafia game has too many players and you were not picked.")
- to_chat(unpicked_client, "You're still signed up, getting messages from the current round, and have another chance to join when the one starting now finishes.")
+ to_chat(unpicked_client, span_danger("Sorry, the starting mafia game has too many players and you were not picked."))
+ to_chat(unpicked_client, span_warning("You're still signed up, getting messages from the current round, and have another chance to join when the one starting now finishes."))
if(!setup.len) //don't actually have one yet, so generate a max player random setup. it's good to do this here instead of above so it doesn't generate one every time a game could possibly start.
setup = generate_random_setup()
diff --git a/code/modules/mafia/map_pieces.dm b/code/modules/mafia/map_pieces.dm
index 3339c596b4..61b8e5dd3e 100644
--- a/code/modules/mafia/map_pieces.dm
+++ b/code/modules/mafia/map_pieces.dm
@@ -33,7 +33,7 @@
requires_power = FALSE
has_gravity = STANDARD_GRAVITY
flags_1 = NONE
- // block_suicide = TRUE
+ area_flags = BLOCK_SUICIDE | UNIQUE_AREA
/datum/map_template/mafia
var/description = ""
@@ -75,5 +75,5 @@
/datum/map_template/mafia/reebe
name = "Reebe"
- description = "Trouble in Reebe station! Copypaste guranteed by ClockCo™"
+ description = "Based of the place known as reebee. Syndicate spies have infiltrated and everyone has to find out who's who before they destroy the ark!"
mappath = "_maps/map_files/Mafia/mafia_reebe.dmm"
diff --git a/code/modules/mafia/outfits.dm b/code/modules/mafia/outfits.dm
index bbc72bd120..fad628e392 100644
--- a/code/modules/mafia/outfits.dm
+++ b/code/modules/mafia/outfits.dm
@@ -30,6 +30,11 @@
uniform = /obj/item/clothing/under/suit/black
shoes = /obj/item/clothing/shoes/laceup
+/datum/outfit/mafia/chaplain
+ name = "Mafia Chaplain"
+
+ uniform = /obj/item/clothing/under/rank/civilian/chaplain
+
/datum/outfit/mafia/md
name = "Mafia Medical Doctor"
@@ -37,10 +42,14 @@
shoes = /obj/item/clothing/shoes/sneakers/white
suit = /obj/item/clothing/suit/toggle/labcoat
-/datum/outfit/mafia/chaplain
- name = "Mafia Chaplain"
+/datum/outfit/mafia/security
+ name = "Mafia Security Officer"
- uniform = /obj/item/clothing/under/rank/civilian/chaplain
+ uniform = /obj/item/clothing/under/rank/security/officer
+ gloves = /obj/item/clothing/gloves/color/black
+ head = /obj/item/clothing/head/helmet/sec
+ suit = /obj/item/clothing/suit/armor/vest/alt
+ shoes = /obj/item/clothing/shoes/jackboots
/datum/outfit/mafia/lawyer
name = "Mafia Lawyer"
@@ -58,6 +67,26 @@
head = /obj/item/clothing/head/hopcap
glasses = /obj/item/clothing/glasses/sunglasses
+/datum/outfit/mafia/hos
+ name = "Mafia Head of Security"
+
+ uniform = /obj/item/clothing/under/rank/security/head_of_security
+ shoes = /obj/item/clothing/shoes/jackboots
+ suit = /obj/item/clothing/suit/armor/hos/trenchcoat
+ gloves = /obj/item/clothing/gloves/color/black
+ head = /obj/item/clothing/head/beret/sec
+ glasses = /obj/item/clothing/glasses/hud/security/sunglasses
+
+/datum/outfit/mafia/warden
+ name = "Mafia Warden"
+
+ uniform = /obj/item/clothing/under/rank/security/warden
+ shoes = /obj/item/clothing/shoes/jackboots
+ suit = /obj/item/clothing/suit/armor/vest/warden/alt
+ gloves = /obj/item/clothing/gloves/color/black
+ head = /obj/item/clothing/head/warden
+ glasses = /obj/item/clothing/glasses/hud/security/sunglasses
+
//mafia
/datum/outfit/mafia/changeling
diff --git a/code/modules/mafia/roles.dm b/code/modules/mafia/roles.dm
index a210c4994f..a48f890d10 100644
--- a/code/modules/mafia/roles.dm
+++ b/code/modules/mafia/roles.dm
@@ -10,19 +10,21 @@
var/mob/living/carbon/human/body
var/obj/effect/landmark/mafia/assigned_landmark
- ///how many votes submitted when you vote.
+ ///role flags (special status of roles like detection immune)
+ var/role_flags = NONE
+ ///how many votes submitted when you vote. used in voting, but not victory
var/vote_power = 1
- var/detect_immune = FALSE
- var/revealed = FALSE
- var/datum/outfit/revealed_outfit = /datum/outfit/mafia/assistant //the assistants need a special path to call out they were in fact assistant, everything else can just use job equipment
- //action = uses
+ ///how many votes your role COULD count for, now or later. used in checking victory
+ var/vote_potential = 1
+ ///what they get equipped with when they are revealed
+ var/datum/outfit/revealed_outfit = /datum/outfit/mafia/assistant
+ ///action = uses
var/list/actions = list()
var/list/targeted_actions = list()
- //what the role gets when it wins a game
+ ///what the role gets when it wins a game
var/winner_award = /datum/award/achievement/mafia/assistant
- //so mafia have to also kill them to have a majority
- var/solo_counts_as_town = FALSE //(don't set this for town)
+ ///so mafia have to also kill them to have a majority
var/game_status = MAFIA_ALIVE
///icon state in the mafia dmi of the hud of the role, used in the mafia ui
@@ -38,8 +40,30 @@
/datum/mafia_role/New(datum/mafia_controller/game)
. = ..()
-/datum/mafia_role/proc/kill(datum/mafia_controller/game,lynch=FALSE)
- if(SEND_SIGNAL(src,COMSIG_MAFIA_ON_KILL,game,lynch) & MAFIA_PREVENT_KILL)
+/**
+ * Tests if a visitor can actually perform an action on this role. Verbose on purpose!
+ *
+ * Will return false if: Your visit is roleblocked, they have perished, or your visit was interrupted
+ */
+/datum/mafia_role/proc/can_action(datum/mafia_controller/game, datum/mafia_role/visitor, action)
+ if(role_flags & ROLE_ROLEBLOCKED)
+ to_chat(visitor,span_danger("Your [action] was blocked!"))
+ return FALSE
+ if(game_status != MAFIA_ALIVE) //They're already dead
+ to_chat(visitor,span_danger("[body.real_name] perished before you could visit!"))
+ return FALSE
+ if(SEND_SIGNAL(src,COMSIG_MAFIA_ON_VISIT,game,visitor) & MAFIA_VISIT_INTERRUPTED) //visited a warden. something that prevents you by visiting that person
+ to_chat(visitor,span_danger("Your [action] was interrupted!"))
+ return FALSE
+ return TRUE
+
+/**
+ * Tests kill immunities, if nothing prevents the kill, kills this role.
+ *
+ * Does not count as visiting, see visit proc.
+ */
+/datum/mafia_role/proc/kill(datum/mafia_controller/game, datum/mafia_role/attacker, lynch=FALSE)
+ if(SEND_SIGNAL(src,COMSIG_MAFIA_ON_KILL,game,attacker,lynch) & MAFIA_PREVENT_KILL)
return FALSE
game_status = MAFIA_DEAD
body.death()
@@ -55,19 +79,19 @@
/datum/mafia_role/proc/greet()
SEND_SOUND(body, 'sound/ambience/ambifailure.ogg')
- to_chat(body,"You are the [name].")
- to_chat(body,"[desc]")
+ to_chat(body,span_danger("You are the [name]."))
+ to_chat(body,span_danger("[desc]"))
switch(team)
if(MAFIA_TEAM_MAFIA)
- to_chat(body,"You and your co-conspirators win if you outnumber crewmembers.")
+ to_chat(body,span_danger("You and your co-conspirators win if you outnumber crewmembers."))
if(MAFIA_TEAM_TOWN)
- to_chat(body,"You are a crewmember. Find out and lynch the changelings!")
+ to_chat(body,span_danger("You are a crewmember. Find out and lynch the changelings!"))
if(MAFIA_TEAM_SOLO)
- to_chat(body,"You are not aligned to town or mafia. Accomplish your own objectives!")
- to_chat(body, "Be sure to read the wiki page to learn more, if you have no idea what's going on.")
+ to_chat(body,span_danger("You are not aligned to town or mafia. Accomplish your own objectives!"))
+ to_chat(body, "Be sure to read the wiki page to learn more, if you have no idea what's going on.")
/datum/mafia_role/proc/reveal_role(datum/mafia_controller/game, verbose = FALSE)
- if(revealed)
+ if((role_flags & ROLE_REVEALED))
return
if(verbose)
game.send_message("It is revealed that the true role of [body] [game_status == MAFIA_ALIVE ? "is" : "was"] [name]!")
@@ -76,7 +100,7 @@
qdel(thing)
special_reveal_equip(game)
body.equipOutfit(revealed_outfit)
- revealed = TRUE
+ role_flags |= ROLE_REVEALED
/datum/mafia_role/proc/special_reveal_equip(datum/mafia_controller/game)
return
@@ -85,7 +109,7 @@
return
/datum/mafia_role/proc/validate_action_target(datum/mafia_controller/game,action,datum/mafia_role/target)
- if(SEND_SIGNAL(src,COMSIG_MAFIA_CAN_PERFORM_ACTION,game,action,target) & MAFIA_PREVENT_ACTION)
+ if((role_flags & ROLE_ROLEBLOCKED))
return FALSE
return TRUE
@@ -114,9 +138,9 @@
team_desc = "Nobody"
team_span = "comradio"
the = FALSE
- result += "The [name] is aligned with [the ? "the " : ""][team_desc]"
+ result += span_notice("The [span_bold("[name]")] is aligned with [the ? "the " : ""][team_desc]")
result += "\"[desc]\""
- result += "[name] wins when they [win_condition]"
+ result += span_notice("[name] wins when they [win_condition]")
to_chat(clueless, result.Join(""))
/datum/mafia_role/detective
@@ -145,35 +169,39 @@
/datum/mafia_role/detective/handle_action(datum/mafia_controller/game,action,datum/mafia_role/target)
if(!target || target.game_status != MAFIA_ALIVE)
- to_chat(body,"You can only investigate alive people.")
+ to_chat(body,span_warning("You can only investigate alive people."))
return
- to_chat(body,"You will investigate [target.body.real_name] tonight.")
+ to_chat(body,span_warning("You will investigate [target.body.real_name] tonight."))
current_investigation = target
/datum/mafia_role/detective/proc/investigate(datum/mafia_controller/game)
SIGNAL_HANDLER
+ if(!current_investigation)
+ return
+
var/datum/mafia_role/target = current_investigation
- if(target)
- if(target.detect_immune)
- to_chat(body,"Your investigations reveal that [target.body.real_name] is a true member of the station.")
- add_note("N[game.turn] - [target.body.real_name] - Town")
- else
- var/team_text
- var/fluff
- switch(target.team)
- if(MAFIA_TEAM_TOWN)
- team_text = "Town"
- fluff = "a true member of the station."
- if(MAFIA_TEAM_MAFIA)
- team_text = "Mafia"
- fluff = "an unfeeling, hideous changeling!"
- if(MAFIA_TEAM_SOLO)
- team_text = "Solo"
- fluff = "a rogue, with their own objectives..."
- to_chat(body,"Your investigations reveal that [target.body.real_name] is [fluff]")
- add_note("N[game.turn] - [target.body.real_name] - [team_text]")
current_investigation = null
+ if(!target.can_action(game, src, "investigation"))
+ return
+ if((target.role_flags & ROLE_UNDETECTABLE))
+ to_chat(body,span_warning("Your investigations reveal that [target.body.real_name] is a true member of the station."))
+ add_note("N[game.turn] - [target.body.real_name] - Town")
+ else
+ var/team_text
+ var/fluff
+ switch(target.team)
+ if(MAFIA_TEAM_TOWN)
+ team_text = "Town"
+ fluff = "a true member of the station."
+ if(MAFIA_TEAM_MAFIA)
+ team_text = "Mafia"
+ fluff = "an unfeeling, hideous changeling!"
+ if(MAFIA_TEAM_SOLO)
+ team_text = "Solo"
+ fluff = "a rogue, with their own objectives..."
+ to_chat(body,span_warning("Your investigations reveal that [target.body.real_name] is [fluff]"))
+ add_note("N[game.turn] - [target.body.real_name] - [team_text]")
/datum/mafia_role/psychologist
name = "Psychologist"
@@ -195,25 +223,27 @@
/datum/mafia_role/psychologist/validate_action_target(datum/mafia_controller/game, action, datum/mafia_role/target)
. = ..()
- if(!. || !can_use || game.phase == MAFIA_PHASE_NIGHT || target.game_status != MAFIA_ALIVE || target.revealed || target == src)
+ if(!. || !can_use || game.phase == MAFIA_PHASE_NIGHT || target.game_status != MAFIA_ALIVE || (target.role_flags & ROLE_REVEALED) || target == src)
return FALSE
/datum/mafia_role/psychologist/handle_action(datum/mafia_controller/game, action, datum/mafia_role/target)
. = ..()
- to_chat(body,"You will reveal [target.body.real_name] tonight.")
+ to_chat(body,span_warning("You will reveal [target.body.real_name] tonight."))
current_target = target
/datum/mafia_role/psychologist/proc/therapy_reveal(datum/mafia_controller/game)
SIGNAL_HANDLER
- if(SEND_SIGNAL(src,COMSIG_MAFIA_CAN_PERFORM_ACTION,game,"reveal",current_target) & MAFIA_PREVENT_ACTION || game_status != MAFIA_ALIVE) //Got lynched or roleblocked by a lawyer.
- current_target = null
- if(current_target)
- add_note("N[game.turn] - [current_target.body.real_name] - Revealed true identity")
- to_chat(body,"You have revealed the true nature of the [current_target]!")
- current_target.reveal_role(game, verbose = TRUE)
- current_target = null
- can_use = FALSE
+ if(!current_target)
+ return
+ var/datum/mafia_role/target = current_target
+ current_target = null
+ if(!target.can_action(game, src, "role reveal"))
+ return
+ add_note("N[game.turn] - [target.body.real_name] - Revealed true identity")
+ to_chat(body,span_warning("You have revealed the true nature of the [target]!"))
+ target.reveal_role(game, verbose = TRUE)
+ can_use = FALSE
/datum/mafia_role/chaplain
name = "Chaplain"
@@ -225,7 +255,7 @@
winner_award = /datum/award/achievement/mafia/chaplain
targeted_actions = list("Pray")
- var/current_target
+ var/datum/mafia_role/current_target
/datum/mafia_role/chaplain/New(datum/mafia_controller/game)
. = ..()
@@ -235,25 +265,29 @@
. = ..()
if(!.)
return
- return game.phase == MAFIA_PHASE_NIGHT && target.game_status == MAFIA_DEAD && target != src && !target.revealed
+ return game.phase == MAFIA_PHASE_NIGHT && target.game_status == MAFIA_DEAD && target != src && !(target.role_flags & ROLE_REVEALED)
/datum/mafia_role/chaplain/handle_action(datum/mafia_controller/game, action, datum/mafia_role/target)
- to_chat(body,"You will commune with the spirit of [target.body.real_name] tonight.")
+ to_chat(body,span_warning("You will commune with the spirit of [target.body.real_name] tonight."))
current_target = target
/datum/mafia_role/chaplain/proc/commune(datum/mafia_controller/game)
SIGNAL_HANDLER
+ if(!current_target)
+ return
var/datum/mafia_role/target = current_target
+ current_target = null
+ if(!target.can_action(game, src, "communion"))
+ return
if(target)
- to_chat(body,"You invoke spirit of [target.body.real_name] and learn their role was [target.name].")
+ to_chat(body,span_warning("You invoke spirit of [target.body.real_name] and learn their role was [target.name]."))
add_note("N[game.turn] - [target.body.real_name] - [target.name]")
- current_target = null
/datum/mafia_role/md
name = "Medical Doctor"
desc = "You can protect a single person each night from killing."
- revealed_outfit = /datum/outfit/mafia/md // /mafia <- outfit must be readded (just make a new mafia outfits file for all of these)
+ revealed_outfit = /datum/outfit/mafia/md
role_type = TOWN_PROTECT
hud_icon = "hudmedicaldoctor"
revealed_icon = "medicaldoctor"
@@ -271,29 +305,38 @@
. = ..()
if(!.)
return
- if(target.name == "Head of Personnel" && target.revealed)
+ if((target.role_flags & ROLE_VULNERABLE) && (target.role_flags & ROLE_REVEALED)) //do not give the option to protect roles that your protection will fail on
return FALSE
return game.phase == MAFIA_PHASE_NIGHT && target.game_status == MAFIA_ALIVE && target != src
/datum/mafia_role/md/handle_action(datum/mafia_controller/game,action,datum/mafia_role/target)
if(!target || target.game_status != MAFIA_ALIVE)
- to_chat(body,"You can only protect alive people.")
+ to_chat(body,span_warning("You can only protect alive people."))
return
- to_chat(body,"You will protect [target.body.real_name] tonight.")
+ to_chat(body,span_warning("You will protect [target.body.real_name] tonight."))
current_protected = target
/datum/mafia_role/md/proc/protect(datum/mafia_controller/game)
SIGNAL_HANDLER
- if(current_protected)
- RegisterSignal(current_protected,COMSIG_MAFIA_ON_KILL,.proc/prevent_kill)
- add_note("N[game.turn] - Protected [current_protected.body.real_name]")
+ if(!current_protected)
+ return
+ var/datum/mafia_role/target = current_protected
+ //current protected is unset at the end, as this action ends at a different phase
+ if(!target.can_action(game, src, "medical assistance"))
+ return
-/datum/mafia_role/md/proc/prevent_kill(datum/source)
+ RegisterSignal(target,COMSIG_MAFIA_ON_KILL,.proc/prevent_kill)
+ add_note("N[game.turn] - Protected [target.body.real_name]")
+
+/datum/mafia_role/md/proc/prevent_kill(datum/source,datum/mafia_controller/game,datum/mafia_role/attacker,lynch)
SIGNAL_HANDLER
- to_chat(body,"The person you protected tonight was attacked!")
- to_chat(current_protected.body,"You were attacked last night, but someone nursed you back to life!")
+ if((current_protected.role_flags & ROLE_VULNERABLE))
+ to_chat(body,span_warning("The person you protected could not be saved."))
+ return
+ to_chat(body,span_warning("The person you protected tonight was attacked!"))
+ to_chat(current_protected.body,span_greentext("You were attacked last night, but someone nursed you back to life!"))
return MAFIA_PREVENT_KILL
/datum/mafia_role/md/proc/end_protection(datum/mafia_controller/game)
@@ -303,11 +346,77 @@
UnregisterSignal(current_protected,COMSIG_MAFIA_ON_KILL)
current_protected = null
+/datum/mafia_role/officer
+ name = "Security Officer"
+ desc = "You can protect a single person each night. If they are attacked, you will retaliate, killing yourself and the attacker."
+ revealed_outfit = /datum/outfit/mafia/security
+ revealed_icon = "securityofficer"
+ hud_icon = "hudsecurityofficer"
+ role_type = TOWN_PROTECT
+ role_flags = ROLE_CAN_KILL
+ winner_award = /datum/award/achievement/mafia/officer
+
+ targeted_actions = list("Defend")
+ var/datum/mafia_role/current_defended
+
+/datum/mafia_role/officer/New(datum/mafia_controller/game)
+ . = ..()
+ RegisterSignal(game,COMSIG_MAFIA_NIGHT_ACTION_PHASE,.proc/defend)
+ RegisterSignal(game,COMSIG_MAFIA_NIGHT_END,.proc/end_defense)
+
+/datum/mafia_role/officer/validate_action_target(datum/mafia_controller/game,action,datum/mafia_role/target)
+ . = ..()
+ if(!.)
+ return
+ if((role_flags & ROLE_VULNERABLE) && (target.role_flags & ROLE_REVEALED)) //do not give the option to protect roles that your protection will fail on
+ return FALSE
+ return game.phase == MAFIA_PHASE_NIGHT && target.game_status == MAFIA_ALIVE && target != src
+
+/datum/mafia_role/officer/handle_action(datum/mafia_controller/game,action,datum/mafia_role/target)
+ if(!target || target.game_status != MAFIA_ALIVE)
+ to_chat(body,span_warning("You can only defend alive people."))
+ return
+ to_chat(body,span_warning("You will defend [target.body.real_name] tonight."))
+ current_defended = target
+
+/datum/mafia_role/officer/proc/defend(datum/mafia_controller/game)
+ SIGNAL_HANDLER
+
+ if(!current_defended)
+ return
+ var/datum/mafia_role/target = current_defended
+ //current defended is unset at the end, as this action ends at a different phase
+ if(!target.can_action(game, src, "security patrol"))
+ return
+ if(target)
+ RegisterSignal(target,COMSIG_MAFIA_ON_KILL,.proc/retaliate)
+ add_note("N[game.turn] - Defended [target.body.real_name]")
+
+/datum/mafia_role/officer/proc/retaliate(datum/source,datum/mafia_controller/game,datum/mafia_role/attacker,lynch)
+ SIGNAL_HANDLER
+
+ if((current_defended.role_flags & ROLE_VULNERABLE))
+ to_chat(body,span_warning("The person you defended could not be saved. You could not attack the killer."))
+ return
+ to_chat(body,span_userdanger("The person you defended tonight was attacked!"))
+ to_chat(current_defended.body,span_userdanger("You were attacked last night, but security fought off the attacker!"))
+ if(attacker.kill(game,src,FALSE)) //you attack the attacker
+ to_chat(attacker.body, span_userdanger("You have been ambushed by Security!"))
+ kill(game,attacker,FALSE) //the attacker attacks you, they were able to attack the target so they can attack you.
+ return MAFIA_PREVENT_KILL
+
+/datum/mafia_role/officer/proc/end_defense(datum/mafia_controller/game)
+ SIGNAL_HANDLER
+
+ if(current_defended)
+ UnregisterSignal(current_defended,COMSIG_MAFIA_ON_KILL)
+ current_defended = null
+
/datum/mafia_role/lawyer
name = "Lawyer"
desc = "You can choose a person during the day to provide extensive legal advice to during the night, preventing night actions."
revealed_outfit = /datum/outfit/mafia/lawyer
- role_type = TOWN_PROTECT
+ role_type = TOWN_SUPPORT
hud_icon = "hudlawyer"
revealed_icon = "lawyer"
winner_award = /datum/award/achievement/mafia/lawyer
@@ -317,23 +426,30 @@
/datum/mafia_role/lawyer/New(datum/mafia_controller/game)
. = ..()
- RegisterSignal(game,COMSIG_MAFIA_SUNDOWN,.proc/roleblock_text)
- RegisterSignal(game,COMSIG_MAFIA_NIGHT_START,.proc/try_to_roleblock)
+ RegisterSignal(game,COMSIG_MAFIA_SUNDOWN,.proc/roleblock)
RegisterSignal(game,COMSIG_MAFIA_NIGHT_END,.proc/release)
-/datum/mafia_role/lawyer/proc/roleblock_text(datum/mafia_controller/game)
+/datum/mafia_role/lawyer/proc/roleblock(datum/mafia_controller/game)
SIGNAL_HANDLER
- if(SEND_SIGNAL(src,COMSIG_MAFIA_CAN_PERFORM_ACTION,game,"roleblock",current_target) & MAFIA_PREVENT_ACTION || game_status != MAFIA_ALIVE) //Got lynched or roleblocked by another lawyer.
+ if(!current_target)
+ return
+
+ var/datum/mafia_role/target = current_target
+ if(!target.can_action(game, src, "roleblock")) //roleblocking a warden moment
current_target = null
- if(current_target)
- to_chat(current_target.body,"YOU HAVE BEEN BLOCKED! YOU CANNOT PERFORM ANY ACTIONS TONIGHT.")
- add_note("N[game.turn] - [current_target.body.real_name] - Blocked")
+ return
+
+ to_chat(target.body,"YOU HAVE BEEN BLOCKED! YOU CANNOT PERFORM ANY ACTIONS TONIGHT.")
+ add_note("N[game.turn] - [target.body.real_name] - Blocked")
+ target.role_flags |= ROLE_ROLEBLOCKED
/datum/mafia_role/lawyer/validate_action_target(datum/mafia_controller/game, action, datum/mafia_role/target)
. = ..()
if(!.)
return FALSE
+ if(target == src)
+ return FALSE
if(game.phase == MAFIA_PHASE_NIGHT)
return FALSE
if(target.game_status != MAFIA_ALIVE)
@@ -343,53 +459,164 @@
. = ..()
if(target == current_target)
current_target = null
- to_chat(body,"You have decided against blocking anyone tonight.")
+ to_chat(body,span_warning("You have decided against blocking anyone tonight."))
else
current_target = target
- to_chat(body,"You will block [target.body.real_name] tonight.")
-
-/datum/mafia_role/lawyer/proc/try_to_roleblock(datum/mafia_controller/game)
- SIGNAL_HANDLER
-
- if(current_target)
- RegisterSignal(current_target,COMSIG_MAFIA_CAN_PERFORM_ACTION, .proc/prevent_action)
+ to_chat(body,span_warning("You will block [target.body.real_name] tonight."))
/datum/mafia_role/lawyer/proc/release(datum/mafia_controller/game)
SIGNAL_HANDLER
. = ..()
if(current_target)
- UnregisterSignal(current_target, COMSIG_MAFIA_CAN_PERFORM_ACTION)
+ current_target.role_flags &= ~ROLE_ROLEBLOCKED
current_target = null
-/datum/mafia_role/lawyer/proc/prevent_action(datum/source)
- SIGNAL_HANDLER
-
- if(game_status == MAFIA_ALIVE) //in case we got killed while imprisoning sk - bad luck edge
- return MAFIA_PREVENT_ACTION
-
/datum/mafia_role/hop
name = "Head of Personnel"
desc = "You can reveal yourself once per game, tripling your vote power but becoming unable to be protected!"
- revealed_outfit = /datum/outfit/mafia/hop
- role_type = TOWN_MISC
+ role_type = TOWN_SUPPORT
+ role_flags = ROLE_UNIQUE
hud_icon = "hudheadofpersonnel"
revealed_icon = "headofpersonnel"
+ revealed_outfit = /datum/outfit/mafia/hop
winner_award = /datum/award/achievement/mafia/hop
targeted_actions = list("Reveal")
+ vote_potential = 3
/datum/mafia_role/hop/validate_action_target(datum/mafia_controller/game, action, datum/mafia_role/target)
. = ..()
- if(!. || game.phase == MAFIA_PHASE_NIGHT || game.turn == 1 || target.game_status != MAFIA_ALIVE || target != src || revealed)
+ if(!. || game.phase == MAFIA_PHASE_NIGHT || game.turn == 1 || target.game_status != MAFIA_ALIVE || target != src || (role_flags & ROLE_REVEALED))
return FALSE
/datum/mafia_role/hop/handle_action(datum/mafia_controller/game, action, datum/mafia_role/target)
. = ..()
reveal_role(game, TRUE)
- vote_power = 2
+ role_flags |= ROLE_VULNERABLE
+ vote_power = 3
-///MAFIA ROLES/// only one until i rework this to allow more, they're the "anti-town" working to kill off townies to win
+/datum/mafia_role/hos
+ name = "Head of Security"
+ desc = "You can decide to execute during the night, visiting someone killing, and revealing them. If they are innocent, you will die at the start of the next night."
+ role_type = TOWN_KILLING
+ role_flags = ROLE_CAN_KILL | ROLE_UNIQUE
+ revealed_outfit = /datum/outfit/mafia/hos
+ revealed_icon = "headofsecurity"
+ hud_icon = "hudheadofsecurity"
+ winner_award = /datum/award/achievement/mafia/hos
+
+ targeted_actions = list("Execute")
+ var/datum/mafia_role/execute_target
+
+/datum/mafia_role/hos/New(datum/mafia_controller/game)
+ . = ..()
+ RegisterSignal(game,COMSIG_MAFIA_NIGHT_ACTION_PHASE,.proc/execute)
+
+/datum/mafia_role/hos/validate_action_target(datum/mafia_controller/game,action,datum/mafia_role/target)
+ . = ..()
+ if(!.)
+ return
+ return game.phase == MAFIA_PHASE_NIGHT && target.game_status == MAFIA_ALIVE && target != src
+
+/datum/mafia_role/hos/handle_action(datum/mafia_controller/game,action,datum/mafia_role/target)
+ if(execute_target == target)
+ to_chat(body,span_warning("You have decided against executing tonight."))
+ to_chat(body,span_warning("You have decided to execute [target.body.real_name] tonight."))
+ execute_target = target
+
+/datum/mafia_role/hos/proc/execute(datum/mafia_controller/game)
+ SIGNAL_HANDLER
+
+ if(!execute_target)
+ return
+ var/datum/mafia_role/target = execute_target
+ execute_target = null
+ if(!target.can_action(game, src, "execution")) //roleblocking a warden moment
+ return
+ if(!target.kill(game,src,FALSE))//protection
+ to_chat(body,span_danger("Your attempt at executing [target.body.real_name] was prevented, or [target.body.real_name] is immune!"))
+ else
+ to_chat(target.body, span_userdanger("You have been executed by the Head of Security!"))
+ target.reveal_role(game, verbose = TRUE)
+ if(target.team == MAFIA_TEAM_TOWN)
+ to_chat(body,span_userdanger("You have killed an innocent crewmember. You will die tomorrow night."))
+ RegisterSignal(game,COMSIG_MAFIA_SUNDOWN,.proc/internal_affairs)
+ role_flags |= ROLE_VULNERABLE
+
+/datum/mafia_role/hos/proc/internal_affairs(datum/mafia_controller/game)
+ to_chat(body,span_userdanger("You have been killed by Nanotrasen Internal Affairs!"))
+ reveal_role(game, verbose = TRUE)
+ kill(game,src,FALSE) //you technically kill yourself but that shouldn't matter
+
+
+//just helps read better
+#define WARDEN_NOT_LOCKDOWN 0//will NOT kill visitors tonight
+#define WARDEN_WILL_LOCKDOWN 1 //will kill visitors tonight
+
+/datum/mafia_role/warden
+ name = "Warden"
+ desc = "You can lockdown during the night once, killing any visitors. WARNING: This kills fellow town members, too!"
+
+ role_type = TOWN_KILLING
+ role_flags = ROLE_CAN_KILL
+ revealed_outfit = /datum/outfit/mafia/warden
+ revealed_icon = "warden"
+ hud_icon = "hudwarden"
+ winner_award = /datum/award/achievement/mafia/warden
+
+ actions = list("Lockdown")
+ var/charges = 1
+ var/protection_status = WARDEN_NOT_LOCKDOWN
+
+
+/datum/mafia_role/warden/New(datum/mafia_controller/game)
+ . = ..()
+ RegisterSignal(game,COMSIG_MAFIA_SUNDOWN,.proc/night_start)
+ RegisterSignal(game,COMSIG_MAFIA_NIGHT_END,.proc/night_end)
+
+/datum/mafia_role/warden/handle_action(datum/mafia_controller/game, action, datum/mafia_role/target)
+ . = ..()
+ if(!charges)
+ to_chat(body,span_danger("You've already locked down this game!"))
+ return
+ if(game.phase == MAFIA_PHASE_NIGHT)
+ to_chat(body,span_danger("You don't have time to lockdown, night has already arrived."))
+ return
+ if(protection_status == WARDEN_WILL_LOCKDOWN)
+ to_chat(body,span_danger("You decide to not lockdown tonight."))
+ else
+ to_chat(body,span_danger("You decide to lockdown, killing any visitors."))
+ protection_status = !protection_status
+
+/datum/mafia_role/warden/proc/night_start(datum/mafia_controller/game)
+ SIGNAL_HANDLER
+
+ if(protection_status == WARDEN_WILL_LOCKDOWN)
+ to_chat(body,span_danger("Any and all visitors are going to eat buckshot tonight."))
+ RegisterSignal(src,COMSIG_MAFIA_ON_VISIT,.proc/self_defense)
+
+/datum/mafia_role/warden/proc/night_end(datum/mafia_controller/game)
+ SIGNAL_HANDLER
+
+ if(protection_status == WARDEN_WILL_LOCKDOWN)
+ charges--
+ UnregisterSignal(src,COMSIG_MAFIA_ON_KILL)
+ to_chat(body,span_danger("You are no longer protected. You have used up your power."))
+ protection_status = WARDEN_NOT_LOCKDOWN
+
+/datum/mafia_role/warden/proc/self_defense(datum/source,datum/mafia_controller/game,datum/mafia_role/attacker,lynch)
+ SIGNAL_HANDLER
+
+ to_chat(body,span_userdanger("You have shot a visitor!"))
+ to_chat(attacker,span_userdanger("You have visited the warden!"))
+ attacker.kill(game, src, lynch = FALSE)
+ return MAFIA_VISIT_INTERRUPTED
+
+#undef WARDEN_NOT_LOCKDOWN
+#undef WARDEN_WILL_LOCKDOWN
+
+///MAFIA ROLES/// they're the "anti-town" working to kill off townies to win
/datum/mafia_role/mafia
name = "Changeling"
@@ -436,7 +663,7 @@
return game.phase == MAFIA_PHASE_NIGHT && target.game_status == MAFIA_ALIVE && target != src
/datum/mafia_role/mafia/thoughtfeeder/handle_action(datum/mafia_controller/game,action,datum/mafia_role/target)
- to_chat(body,"You will feast on the memories of [target.body.real_name] tonight.")
+ to_chat(body,span_warning("You will feast on the memories of [target.body.real_name] tonight."))
current_investigation = target
/datum/mafia_role/mafia/thoughtfeeder/proc/investigate(datum/mafia_controller/game)
@@ -444,18 +671,15 @@
var/datum/mafia_role/target = current_investigation
current_investigation = null
- if(SEND_SIGNAL(src,COMSIG_MAFIA_CAN_PERFORM_ACTION,game,"thoughtfeed",target) & MAFIA_PREVENT_ACTION)
- to_chat(body,"You were unable to investigate [target.body.real_name].")
+ if(!target.can_action(game, src, "thought feeding"))
add_note("N[game.turn] - [target.body.real_name] - Unable to investigate")
return
- if(target)
- if(target.detect_immune)
- to_chat(body,"[target.body.real_name]'s memories reveal that they are the Assistant.")
- add_note("N[game.turn] - [target.body.real_name] - Assistant")
- else
- to_chat(body,"[target.body.real_name]'s memories reveal that they are the [target.name].")
- add_note("N[game.turn] - [target.body.real_name] - [target.name]")
-
+ if((target.role_flags & ROLE_UNDETECTABLE))
+ to_chat(body,span_warning("[target.body.real_name]'s memories reveal that they are the Assistant."))
+ add_note("N[game.turn] - [target.body.real_name] - Assistant")
+ else
+ to_chat(body,span_warning("[target.body.real_name]'s memories reveal that they are the [target.name]."))
+ add_note("N[game.turn] - [target.body.real_name] - [target.name]")
///SOLO ROLES/// they range from anomalous factors to deranged killers that try to win alone.
@@ -465,15 +689,14 @@
win_condition = "kill everyone."
team = MAFIA_TEAM_SOLO
role_type = NEUTRAL_KILL
+ role_flags = ROLE_CAN_KILL
winner_award = /datum/award/achievement/mafia/traitor
-
- targeted_actions = list("Night Kill")
revealed_outfit = /datum/outfit/mafia/traitor
-
- hud_icon = "hudtraitor"
revealed_icon = "traitor"
+ hud_icon = "hudtraitor"
special_theme = "neutral"
+ targeted_actions = list("Night Kill")
var/datum/mafia_role/current_victim
/datum/mafia_role/traitor/New(datum/mafia_controller/game)
@@ -481,17 +704,17 @@
RegisterSignal(src,COMSIG_MAFIA_ON_KILL,.proc/nightkill_immunity)
RegisterSignal(game,COMSIG_MAFIA_NIGHT_KILL_PHASE,.proc/try_to_kill)
-/datum/mafia_role/traitor/check_total_victory(alive_town, alive_mafia) //serial killers just want teams dead
+/datum/mafia_role/traitor/check_total_victory(alive_town, alive_mafia) //serial killers just want teams dead, they cannot be stopped by killing roles anyways
return alive_town + alive_mafia <= 1
/datum/mafia_role/traitor/block_team_victory(alive_town, alive_mafia) //no team can win until they're dead
return TRUE //while alive, town AND mafia cannot win (though since mafia know who is who it's pretty easy to win from that point)
-/datum/mafia_role/traitor/proc/nightkill_immunity(datum/source,datum/mafia_controller/game,lynch)
+/datum/mafia_role/traitor/proc/nightkill_immunity(datum/source,datum/mafia_controller/game,datum/mafia_role/attacker,lynch)
SIGNAL_HANDLER
if(game.phase == MAFIA_PHASE_NIGHT && !lynch)
- to_chat(body,"You were attacked, but they'll have to try harder than that to put you down.")
+ to_chat(body,span_userdanger("You were attacked, but they'll have to try harder than that to put you down."))
return MAFIA_PREVENT_KILL
/datum/mafia_role/traitor/validate_action_target(datum/mafia_controller/game, action, datum/mafia_role/target)
@@ -504,25 +727,29 @@
/datum/mafia_role/traitor/handle_action(datum/mafia_controller/game, action, datum/mafia_role/target)
. = ..()
current_victim = target
- to_chat(body,"You will attempt to kill [target.body.real_name] tonight.")
+ to_chat(body,span_warning("You will attempt to kill [target.body.real_name] tonight."))
-/datum/mafia_role/traitor/proc/try_to_kill(datum/mafia_controller/source)
- // SIGNAL_HANDLER
+/datum/mafia_role/traitor/proc/try_to_kill(datum/mafia_controller/game)
+ SIGNAL_HANDLER
+ if(!current_victim)
+ return
var/datum/mafia_role/target = current_victim
current_victim = null
- if(SEND_SIGNAL(src,COMSIG_MAFIA_CAN_PERFORM_ACTION,source,"traitor kill",target) & MAFIA_PREVENT_ACTION)
+ if(!target.can_action(game, src, "flickering")) //flickering a warden
return
- if(game_status == MAFIA_ALIVE && target && target.game_status == MAFIA_ALIVE)
- if(!target.kill(source))
- to_chat(body,"Your attempt at killing [target.body] was prevented!")
+ if(game_status == MAFIA_ALIVE)
+ if(!target.kill(game,src,FALSE))
+ to_chat(body,span_danger("Your attempt at killing [target.body.real_name] was prevented!"))
+ else
+ to_chat(target.body, span_userdanger("You have been killed by a Traitor!"))
/datum/mafia_role/nightmare
name = "Nightmare"
- desc = "You're a solo monster that cannot be detected by detective roles. You can flicker lights of another room each night. You can instead decide to hunt, killing everyone in a flickering room. Kill everyone to win."
+ desc = "You're a solo monster that cannot be detected by detective roles. You can flicker lights of another room each night, becoming immune to attacks from those roles. You can instead decide to hunt, killing everyone in a flickering room. Kill everyone to win."
win_condition = "kill everyone."
revealed_outfit = /datum/outfit/mafia/nightmare
- detect_immune = TRUE
+ role_flags = ROLE_UNDETECTABLE | ROLE_CAN_KILL
team = MAFIA_TEAM_SOLO
role_type = NEUTRAL_KILL
special_theme = "neutral"
@@ -536,6 +763,7 @@
/datum/mafia_role/nightmare/New(datum/mafia_controller/game)
. = ..()
+ RegisterSignal(src,COMSIG_MAFIA_ON_KILL,.proc/flickering_immunity)
RegisterSignal(game,COMSIG_MAFIA_NIGHT_KILL_PHASE,.proc/flicker_or_hunt)
/datum/mafia_role/nightmare/check_total_victory(alive_town, alive_mafia) //nightmares just want teams dead
@@ -562,33 +790,42 @@
/datum/mafia_role/nightmare/handle_action(datum/mafia_controller/game, action, datum/mafia_role/target)
. = ..()
if(target == flicker_target)
- to_chat(body,"You will do nothing tonight.")
+ to_chat(body,span_warning("You will do nothing tonight."))
flicker_target = null
flicker_target = target
if(action == "Flicker")
- to_chat(body,"You will attempt to flicker [target.body.real_name]'s room tonight.")
+ to_chat(body,span_warning("You will attempt to flicker [target.body.real_name]'s room tonight."))
else
- to_chat(body,"You will hunt everyone in a flickering room down tonight.")
+ to_chat(body,span_danger("You will hunt everyone in a flickering room down tonight."))
-/datum/mafia_role/nightmare/proc/flicker_or_hunt(datum/mafia_controller/source)
- // SIGNAL_HANDLER
+/datum/mafia_role/nightmare/proc/flickering_immunity(datum/source,datum/mafia_controller/game,datum/mafia_role/attacker,lynch)
+ SIGNAL_HANDLER
+ if(!attacker)
+ return //no chance man, that's a town lynch
- if(game_status != MAFIA_ALIVE || !flicker_target)
- return
- if(SEND_SIGNAL(src,COMSIG_MAFIA_CAN_PERFORM_ACTION,source,"nightmare actions",flicker_target) & MAFIA_PREVENT_ACTION)
- to_chat(flicker_target.body, "Your actions were prevented!")
+ if(attacker in flickering)
+ to_chat(body,span_userdanger("You were attacked by someone in a flickering room. You have danced in the shadows, evading them."))
+ return MAFIA_PREVENT_KILL
+
+/datum/mafia_role/nightmare/proc/flicker_or_hunt(datum/mafia_controller/game)
+ SIGNAL_HANDLER
+
+ if(!flicker_target)
return
var/datum/mafia_role/target = flicker_target
flicker_target = null
+ if(!target.can_action(game, src, "flickering")) //flickering a warden
+ return
+
if(target != src) //flicker instead of hunt
- to_chat(target.body, "The lights begin to flicker and dim. You're in danger.")
+ to_chat(target.body, span_userdanger("The lights begin to flicker and dim. You're in danger."))
flickering += target
return
for(var/r in flickering)
var/datum/mafia_role/role = r
if(role && role.game_status == MAFIA_ALIVE)
- to_chat(role.body, "A shadowy monster appears out of the darkness!")
- role.kill(source)
+ to_chat(role.body, span_userdanger("A shadowy figure appears out of the darkness!"))
+ role.kill(game,src,FALSE)
flickering -= role
//just helps read better
@@ -599,7 +836,6 @@
name = "Fugitive"
desc = "You're on the run. You can become immune to night kills exactly twice, and you win by surviving to the end of the game with anyone."
win_condition = "survive to the end of the game, with anyone"
- solo_counts_as_town = TRUE //should not count towards mafia victory, they should have the option to work with town
revealed_outfit = /datum/outfit/mafia/fugitive
team = MAFIA_TEAM_SOLO
role_type = NEUTRAL_DISRUPT
@@ -622,22 +858,22 @@
/datum/mafia_role/fugitive/handle_action(datum/mafia_controller/game, action, datum/mafia_role/target)
. = ..()
if(!charges)
- to_chat(body,"You're out of supplies and cannot protect yourself anymore.")
+ to_chat(body,span_danger("You're out of supplies and cannot protect yourself anymore."))
return
if(game.phase == MAFIA_PHASE_NIGHT)
- to_chat(body,"You don't have time to prepare, night has already arrived.")
+ to_chat(body,span_danger("You don't have time to prepare, night has already arrived."))
return
if(protection_status == FUGITIVE_WILL_PRESERVE)
- to_chat(body,"You decide to not prepare tonight.")
+ to_chat(body,span_danger("You decide to not prepare tonight."))
else
- to_chat(body,"You decide to prepare for a horrible night.")
+ to_chat(body,span_danger("You decide to prepare for a horrible night."))
protection_status = !protection_status
/datum/mafia_role/fugitive/proc/night_start(datum/mafia_controller/game)
SIGNAL_HANDLER
if(protection_status == FUGITIVE_WILL_PRESERVE)
- to_chat(body,"Your preparations are complete. Nothing could kill you tonight!")
+ to_chat(body,span_danger("Your preparations are complete. Nothing could kill you tonight!"))
RegisterSignal(src,COMSIG_MAFIA_ON_KILL,.proc/prevent_death)
/datum/mafia_role/fugitive/proc/night_end(datum/mafia_controller/game)
@@ -646,13 +882,13 @@
if(protection_status == FUGITIVE_WILL_PRESERVE)
charges--
UnregisterSignal(src,COMSIG_MAFIA_ON_KILL)
- to_chat(body,"You are no longer protected. You have [charges] use[charges == 1 ? "" : "s"] left of your power.")
+ to_chat(body,span_danger("You are no longer protected. You have [charges] use[charges == 1 ? "" : "s"] left of your power."))
protection_status = FUGITIVE_NOT_PRESERVING
-/datum/mafia_role/fugitive/proc/prevent_death(datum/mafia_controller/game)
+/datum/mafia_role/fugitive/proc/prevent_death(datum/source,datum/mafia_controller/game,datum/mafia_role/attacker,lynch)
SIGNAL_HANDLER
- to_chat(body,"You were attacked! Luckily, you were ready for this!")
+ to_chat(body,span_userdanger("You were attacked! Luckily, you were ready for this!"))
return MAFIA_PREVENT_KILL
/datum/mafia_role/fugitive/proc/survived(datum/mafia_controller/game)
@@ -669,8 +905,7 @@
name = "Obsessed"
desc = "You're completely lost in your own mind. You win by lynching your obsession before you get killed in this mess. Obsession assigned on the first night!"
win_condition = "lynch their obsession."
- revealed_outfit = /datum/outfit/mafia/obsessed // /mafia <- outfit must be readded (just make a new mafia outfits file for all of these)
- solo_counts_as_town = TRUE //after winning or whatever, can side with whoever. they've already done their objective!
+ revealed_outfit = /datum/outfit/mafia/obsessed
team = MAFIA_TEAM_SOLO
role_type = NEUTRAL_DISRUPT
special_theme = "neutral"
@@ -678,9 +913,6 @@
revealed_icon = "obsessed"
winner_award = /datum/award/achievement/mafia/obsessed
-
- revealed_outfit = /datum/outfit/mafia/obsessed // /mafia <- outfit must be readded (just make a new mafia outfits file for all of these)
- solo_counts_as_town = TRUE //after winning or whatever, can side with whoever. they've already done their objective!
var/datum/mafia_role/obsession
var/lynched_target = FALSE
@@ -700,12 +932,12 @@
if(!obsession)
obsession = pick(all_roles_shuffle) //okay no town just pick anyone here
//if you still don't have an obsession you're playing a single player game like i can't help your dumb ass
- to_chat(body, "Your obsession is [obsession.body.real_name]! Get them lynched to win!")
+ to_chat(body, span_userdanger("Your obsession is [obsession.body.real_name]! Get them lynched to win!"))
add_note("N[game.turn] - I vowed to watch my obsession, [obsession.body.real_name], hang!") //it'll always be N1 but whatever
RegisterSignal(obsession,COMSIG_MAFIA_ON_KILL,.proc/check_victory)
UnregisterSignal(game,COMSIG_MAFIA_SUNDOWN)
-/datum/mafia_role/obsessed/proc/check_victory(datum/source,datum/mafia_controller/game,lynch)
+/datum/mafia_role/obsessed/proc/check_victory(datum/source,datum/mafia_controller/game,datum/mafia_role/attacker,lynch)
SIGNAL_HANDLER
UnregisterSignal(source,COMSIG_MAFIA_ON_KILL)
@@ -716,14 +948,13 @@
game.award_role(winner_award, src)
reveal_role(game, FALSE)
else
- to_chat(body, "You have failed your objective to lynch [obsession.body]!")
+ to_chat(body, span_userdanger("You have failed your objective to lynch [obsession.body.real_name]!"))
/datum/mafia_role/clown
name = "Clown"
desc = "If you are lynched you take down one of your voters (guilty or abstain) with you and win. HONK!"
win_condition = "get themselves lynched!"
revealed_outfit = /datum/outfit/mafia/clown
- solo_counts_as_town = TRUE
team = MAFIA_TEAM_SOLO
role_type = NEUTRAL_DISRUPT
special_theme = "neutral"
@@ -735,8 +966,8 @@
. = ..()
RegisterSignal(src,COMSIG_MAFIA_ON_KILL,.proc/prank)
-/datum/mafia_role/clown/proc/prank(datum/source,datum/mafia_controller/game,lynch)
- // SIGNAL_HANDLER
+/datum/mafia_role/clown/proc/prank(datum/source,datum/mafia_controller/game,datum/mafia_role/attacker,lynch)
+ SIGNAL_HANDLER
if(lynch)
var/datum/mafia_role/victim = pick(game.judgement_guilty_votes + game.judgement_abstain_votes)
diff --git a/code/modules/mob/dead/observer/login.dm b/code/modules/mob/dead/observer/login.dm
index 8daf8ec052..ad71d49489 100644
--- a/code/modules/mob/dead/observer/login.dm
+++ b/code/modules/mob/dead/observer/login.dm
@@ -16,5 +16,5 @@
if (isturf(T))
update_z(T.z)
- update_icon(preferred_form)
+ update_icon(null, preferred_form)
updateghostimages()
diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm
index 80edd142b7..8464e15328 100644
--- a/code/modules/mob/living/carbon/human/species.dm
+++ b/code/modules/mob/living/carbon/human/species.dm
@@ -1999,7 +1999,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names)
if(CHECK_MOBILITY(target, MOBILITY_STAND))
target.adjustStaminaLoss(5)
else
- target.adjustStaminaLoss(target.getStaminaLoss() > 75? 5 : 75)
+ target.adjustStaminaLoss(IS_STAMCRIT(target)? 2 : 10)
if(target.is_shove_knockdown_blocked())
return
diff --git a/code/modules/mob/living/living_defense.dm b/code/modules/mob/living/living_defense.dm
index 2888507baa..7423a164a4 100644
--- a/code/modules/mob/living/living_defense.dm
+++ b/code/modules/mob/living/living_defense.dm
@@ -118,7 +118,7 @@
throwpower = I.throwforce
var/impacting_zone = ran_zone(BODY_ZONE_CHEST, 65)//Hits a random part of the body, geared towards the chest
var/list/block_return = list()
- var/total_damage = I.throwforce
+ var/total_damage = AM.throwforce
if(mob_run_block(AM, throwpower, "\the [AM.name]", ATTACK_TYPE_THROWN, 0, throwingdatum?.thrower, impacting_zone, block_return) & BLOCK_SUCCESS)
hitpush = FALSE
skipcatch = TRUE
diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm
index 340d2e5598..9fd3794520 100644
--- a/code/modules/mob/living/simple_animal/friendly/mouse.dm
+++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm
@@ -134,11 +134,15 @@
qdel(src)
/mob/living/simple_animal/mouse/proc/evolve_plague()
+ return
+
+/*
var/mob/living/simple_animal/hostile/plaguerat = new /mob/living/simple_animal/hostile/plaguerat(loc)
visible_message("[src] devours the food! He rots into something worse!")
if(mind)
mind.transfer_to(plaguerat)
qdel(src)
+*/
/*
* Mouse types
diff --git a/code/modules/modular_computers/file_system/programs/budgetordering.dm b/code/modules/modular_computers/file_system/programs/budgetordering.dm
index 162f480c02..4fda99864c 100644
--- a/code/modules/modular_computers/file_system/programs/budgetordering.dm
+++ b/code/modules/modular_computers/file_system/programs/budgetordering.dm
@@ -12,7 +12,7 @@
///Are you actually placing orders with it?
var/requestonly = TRUE
///Can the tablet see or buy illegal stuff?
- var/contraband = FALSE
+ var/contraband_view = FALSE
///Is it being bought from a personal account, or is it being done via a budget/cargo?
var/self_paid = FALSE
///Can this console approve purchase requests?
@@ -27,10 +27,15 @@
/datum/computer_file/program/budgetorders/proc/get_export_categories()
. = EXPORT_CARGO
+/datum/computer_file/program/budgetorders/run_emag()
+ if(!contraband_view)
+ contraband_view = TRUE
+ return TRUE
+
/datum/computer_file/program/budgetorders/proc/is_visible_pack(mob/user, paccess_to_check, list/access, contraband)
if(issilicon(user)) //Borgs can't buy things.
return FALSE
- if(computer.obj_flags & EMAGGED)
+ if((computer.obj_flags & EMAGGED) || contraband_view)
return TRUE
else if(contraband) //Hide contrband when non-emagged.
return FALSE
@@ -80,14 +85,14 @@
data["supplies"] = list()
for(var/pack in SSshuttle.supply_packs)
var/datum/supply_pack/P = SSshuttle.supply_packs[pack]
- if(!is_visible_pack(usr, P.access , null, P.contraband) || P.hidden)
+ if(!is_visible_pack(usr, P.access , null, P.contraband))
continue
if(!data["supplies"][P.group])
data["supplies"][P.group] = list(
"name" = P.group,
"packs" = list()
)
- if((P.hidden && (P.contraband && !contraband) || (P.special && !P.special_enabled) || P.DropPodOnly))
+ if(((P.hidden || P.contraband) && !contraband_view) || (P.special && !P.special_enabled) || P.DropPodOnly)
continue
data["supplies"][P.group]["packs"] += list(list(
"name" = P.name,
@@ -179,7 +184,7 @@
var/datum/supply_pack/pack = SSshuttle.supply_packs[id]
if(!istype(pack))
return
- if((pack.hidden && (pack.contraband && !contraband) || pack.DropPodOnly))
+ if(((pack.hidden || pack.contraband) && !contraband_view) || pack.DropPodOnly)
return
var/name = "*None Provided*"
diff --git a/code/modules/movespeed/_movespeed_modifier.dm b/code/modules/movespeed/_movespeed_modifier.dm
index 74eedc16c9..5fc415b2b6 100644
--- a/code/modules/movespeed/_movespeed_modifier.dm
+++ b/code/modules/movespeed/_movespeed_modifier.dm
@@ -41,9 +41,9 @@ Key procs
/// Next two variables depend on this: Should we do advanced calculations?
var/complex_calculation = FALSE
/// Absolute max tiles we can boost to
- var/absolute_max_tiles_per_second
+ var/absolute_max_tiles_per_second = INFINITY
/// Max tiles per second we can boost
- var/max_tiles_per_second_boost
+ var/max_tiles_per_second_boost = INFINITY
/// Movetypes this applies to
var/movetypes = ALL
@@ -54,6 +54,8 @@ Key procs
/// Other modification datums this conflicts with.
var/conflicts_with
+
+
/datum/movespeed_modifier/New()
. = ..()
if(!id)
diff --git a/code/modules/movespeed/modifiers/reagents.dm b/code/modules/movespeed/modifiers/reagents.dm
index 96b7be3a69..a6c3133c8b 100644
--- a/code/modules/movespeed/modifiers/reagents.dm
+++ b/code/modules/movespeed/modifiers/reagents.dm
@@ -23,7 +23,7 @@
multiplicative_slowdown = -4
priority = 500
complex_calculation = TRUE
- absolute_max_tiles_per_second = 8
+ absolute_max_tiles_per_second = 10
/datum/movespeed_modifier/reagent/methamphetamine
// very strong painkiller effect that caps out at slightly above runspeed
diff --git a/code/modules/power/supermatter/supermatter.dm b/code/modules/power/supermatter/supermatter.dm
index 148535af76..a759523dd0 100644
--- a/code/modules/power/supermatter/supermatter.dm
+++ b/code/modules/power/supermatter/supermatter.dm
@@ -599,13 +599,13 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal)
zap_icon = SLIGHTLY_CHARGED_ZAP_ICON_STATE
//Uncaps the zap damage, it's maxed by the input power
//Objects take damage now
- flags |= (ZAP_MOB_DAMAGE | ZAP_OBJ_DAMAGE)
+ flags |= (ZAP_MOB_DAMAGE)
zap_count = 3
if(CRITICAL_POWER_PENALTY_THRESHOLD to INFINITY)
zap_icon = OVER_9000_ZAP_ICON_STATE
//It'll stun more now, and damage will hit harder, gloves are no garentee.
//Machines go boom
- flags |= (ZAP_MOB_STUN | ZAP_MACHINE_EXPLOSIVE | ZAP_MOB_DAMAGE | ZAP_OBJ_DAMAGE)
+ flags |= (ZAP_MOB_STUN | ZAP_MOB_DAMAGE)
zap_count = 4
//Now we deal with damage shit
if (damage > damage_penalty_point && prob(20))
@@ -1058,9 +1058,6 @@ GLOBAL_DATUM(main_supermatter_engine, /obj/machinery/power/supermatter_crystal)
if(zapdir)
. = zapdir
- //Going boom should be rareish
- if(prob(80))
- zap_flags &= ~ZAP_MACHINE_EXPLOSIVE
if(target_type == COIL)
//In the best situation we can expect this to grow up to 2120kw before a delam/IT'S GONE TOO FAR FRED SHUT IT DOWN
//The formula for power gen is zap_str * zap_mod / 2 * capacitor rating, between 1 and 4
diff --git a/code/modules/reagents/chemistry/reagents/food_reagents.dm b/code/modules/reagents/chemistry/reagents/food_reagents.dm
index a9bdff64b2..02b19909b0 100644
--- a/code/modules/reagents/chemistry/reagents/food_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/food_reagents.dm
@@ -554,6 +554,13 @@
color = "#302000" // rgb: 48, 32, 0
taste_description = "wet and cheap noodles"
+/datum/reagent/consumable/nutraslop
+ name = "Nutraslop"
+ description = "Mixture of leftover prison foods served on previous days."
+ nutriment_factor = 5 * REAGENTS_METABOLISM
+ color = "#3E4A00" // rgb: 62, 74, 0
+ taste_description = "your imprisonment"
+
/datum/reagent/consumable/hot_ramen/on_mob_life(mob/living/carbon/M)
M.adjust_bodytemperature(10 * TEMPERATURE_DAMAGE_COEFFICIENT, 0, BODYTEMP_NORMAL)
..()
diff --git a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
index a07c5f7a2a..72a9779726 100644
--- a/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
+++ b/code/modules/reagents/chemistry/reagents/medicine_reagents.dm
@@ -1451,7 +1451,7 @@
/datum/reagent/medicine/changelingadrenaline/on_mob_life(mob/living/carbon/metabolizer, delta_time, times_fired)
..()
metabolizer.AdjustAllImmobility(-20 * REM * delta_time)
- metabolizer.adjustStaminaLoss(-10 * REM * delta_time, 0)
+ metabolizer.adjustStaminaLoss(-30 * REM * delta_time, 0)
metabolizer.Jitter(10 * REM * delta_time)
metabolizer.Dizzy(10 * REM * delta_time)
return TRUE
@@ -1477,7 +1477,7 @@
/datum/reagent/medicine/changelinghaste
name = "Changeling Haste"
- description = "Drastically increases movement speed, but deals toxin damage."
+ description = "Drastically increases movement speed."
color = "#AE151D"
metabolization_rate = 2.5 * REAGENTS_METABOLISM
@@ -1489,12 +1489,6 @@
L.remove_movespeed_modifier(/datum/movespeed_modifier/reagent/changelinghaste)
..()
-/datum/reagent/medicine/changelinghaste/on_mob_life(mob/living/carbon/metabolizer, delta_time, times_fired)
- metabolizer.adjustToxLoss(2 * REM * delta_time, 0)
- ..()
- return TRUE
-
-
/datum/reagent/medicine/corazone
// Heart attack code will not do damage if corazone is present
// because it's SPACE MAGIC ASPIRIN
diff --git a/code/modules/reagents/reagent_containers/syringes.dm b/code/modules/reagents/reagent_containers/syringes.dm
index 93a07b1a6e..c2f80de761 100644
--- a/code/modules/reagents/reagent_containers/syringes.dm
+++ b/code/modules/reagents/reagent_containers/syringes.dm
@@ -218,6 +218,31 @@
volume = 50
list_reagents = list(/datum/reagent/medicine/stimulants = 50)
+/obj/item/reagent_containers/syringe/contraband
+ name = "unlabeled syringe"
+ desc = "A syringe containing some sort of unknown chemical cocktail."
+
+/obj/item/reagent_containers/syringe/contraband/space_drugs
+ list_reagents = list(/datum/reagent/drug/space_drugs = 15)
+
+/obj/item/reagent_containers/syringe/contraband/krokodil
+ list_reagents = list(/datum/reagent/drug/krokodil = 15)
+
+/obj/item/reagent_containers/syringe/contraband/crank
+ list_reagents = list(/datum/reagent/drug/crank = 15)
+
+/obj/item/reagent_containers/syringe/contraband/methamphetamine
+ list_reagents = list(/datum/reagent/drug/methamphetamine = 15)
+
+/obj/item/reagent_containers/syringe/contraband/bath_salts
+ list_reagents = list(/datum/reagent/drug/bath_salts = 15)
+
+/obj/item/reagent_containers/syringe/contraband/fentanyl
+ list_reagents = list(/datum/reagent/toxin/fentanyl = 15)
+
+/obj/item/reagent_containers/syringe/contraband/morphine
+ list_reagents = list(/datum/reagent/medicine/morphine = 15)
+
/obj/item/reagent_containers/syringe/calomel
name = "syringe (calomel)"
desc = "Contains calomel."
diff --git a/code/modules/reagents/reagent_dispenser.dm b/code/modules/reagents/reagent_dispenser.dm
index 26f0ca66ee..db82e5cdb2 100644
--- a/code/modules/reagents/reagent_dispenser.dm
+++ b/code/modules/reagents/reagent_dispenser.dm
@@ -233,6 +233,14 @@
anchored = TRUE
reagent_id = /datum/reagent/consumable/cooking_oil
+/obj/structure/reagent_dispensers/servingdish
+ name = "serving dish"
+ desc = "A dish full of food slop for your bowl."
+ icon = 'icons/obj/kitchen.dmi'
+ icon_state = "serving"
+ anchored = TRUE
+ reagent_id = /datum/reagent/consumable/nutraslop
+
////////
//Kegs//
////////
diff --git a/code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.dm b/code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.dm
index 67890838db..fe9ffe2035 100644
--- a/code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.dm
+++ b/code/modules/research/designs/autolathe_desings/autolathe_designs_medical_and_dinnerware.dm
@@ -30,13 +30,21 @@
category = list("initial","Dinnerware")
/datum/design/tray
- name = "Tray"
- id = "tray"
+ name = "Serving Tray"
+ id = "servingtray"
build_type = AUTOLATHE
materials = list(/datum/material/iron = 3000)
build_path = /obj/item/storage/bag/tray
category = list("initial","Dinnerware")
+/datum/design/tray
+ name = "Cafeteria Tray"
+ id = "foodtray"
+ build_type = AUTOLATHE
+ materials = list(/datum/material/iron = 3000)
+ build_path = /obj/item/storage/bag/tray/cafeteria
+ category = list("initial","Dinnerware")
+
/datum/design/bowl
name = "Bowl"
id = "bowl"
diff --git a/code/modules/research/techweb/_techweb.dm b/code/modules/research/techweb/_techweb.dm
index 3c1ba05267..35871e0cb3 100644
--- a/code/modules/research/techweb/_techweb.dm
+++ b/code/modules/research/techweb/_techweb.dm
@@ -142,7 +142,7 @@
if(unlock_hidden)
for(var/i in receiver.hidden_nodes)
CHECK_TICK
- if(!hidden_nodes[i])
+ if(available_nodes[i] || researched_nodes[i] || visible_nodes[i])
receiver.hidden_nodes -= i //We can see it so let them see it too.
for(var/i in researched_nodes)
CHECK_TICK
diff --git a/code/modules/uplink/uplink_items/uplink_ammo.dm b/code/modules/uplink/uplink_items/uplink_ammo.dm
index 2ab6c6f490..a7f3f5321d 100644
--- a/code/modules/uplink/uplink_items/uplink_ammo.dm
+++ b/code/modules/uplink/uplink_items/uplink_ammo.dm
@@ -265,7 +265,7 @@
/datum/uplink_item/ammo/flechetteap
name = "Armor Piercing Flechette Magazine"
desc = "An additional 40-round flechette magazine; compatible with the Flechette Launcer. \
- Loaded with armor piercing flechettes that very nearly ignore armor, but are not very effective agaisnt flesh."
+ Loaded with armor piercing flechettes that very nearly ignore armor, but are not very effective against flesh."
item = /obj/item/ammo_box/magazine/flechette
cost = 2
include_modes = list(/datum/game_mode/nuclear)
diff --git a/config/jobs.txt b/config/jobs.txt
index 1bf271763b..fab38e70f6 100644
--- a/config/jobs.txt
+++ b/config/jobs.txt
@@ -11,6 +11,8 @@ Chief Medical Officer=1,1
Assistant=-1,-1
+Prisoner=0,2
+
Quartermaster=1,1
Cargo Technician=3,2
Shaft Miner=3,3
diff --git a/html/changelog.html b/html/changelog.html
index 541bad4bb2..540b62443c 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -50,6 +50,43 @@
-->
+
14 September 2021
+
Hatterhat updated:
+
+ - The Syndicate zero-day'd the NT IRN program on modular computers through cryptographic sequencing technology. NanoTrasen's cybersecurity divisions are seething.
+
+
LetterN updated:
+
+
Putnam3145 updated:
+
+ - Nerfed bad toxins bombs and buffed good toxins bombs. There's no longer an arbitrary hard research points cap.
+
+
keronshb updated:
+
+ - Removes zap obj damage and machinery explosion from the SM arcs
+ - Fixes hitby runtime.
+
+
zeroisthebiggay updated:
+
+ - the permabrig erp role
+ - changeling adrenals buff
+ - speedups
+ - bread goes in mouth and not on head
+
+
+
12 September 2021
+
LetterN updated:
+
+ - lowers the audio volume of ark sfx
+ - readded cwc theme in the index.js once more
+
+
timothyteakettle updated:
+
+ - allows custom taste text and color on the custom ice cream setting in the ice cream vat
+
+
11 September 2021
LetterN updated:
@@ -473,37 +510,6 @@
-
- 15 July 2021
- Putnam3145 updated:
-
- - fixes a major source of lag
-
-
- 14 July 2021
- Putnam3145 updated:
-
- - Acid is now a component
-
-
- 13 July 2021
- MrJWhit updated:
-
- - Adds a mirror above the sink in the captains bedroom in pubby
-
-
- 12 July 2021
- Putnam3145 updated:
-
- - causes_dirt_buildup_on_floor is now just a thing humans do instead of a weird var only true for humans
-
-
- 11 July 2021
- shellspeed1 updated:
-
- - replaces the seed machine with a biogen in the survival pod.
- - corrected an issue regarding wrong pair of gloves in the pod for DYI wiring .
-
GoonStation 13 Development Team
diff --git a/html/changelogs/.all_changelog.yml b/html/changelogs/.all_changelog.yml
index b8425e506e..b871a65ca5 100644
--- a/html/changelogs/.all_changelog.yml
+++ b/html/changelogs/.all_changelog.yml
@@ -29972,3 +29972,28 @@ DO NOT EDIT THIS FILE BY HAND! AUTOMATICALLY GENERATED BY ss13_genchangelog.py.
- imageadd: The SWAT helmet is now consistent between its front, side and back sprites
for coloration.
- imageadd: new riot armor sprites
+2021-09-12:
+ LetterN:
+ - bugfix: lowers the audio volume of ark sfx
+ - bugfix: readded cwc theme in the index.js once more
+ timothyteakettle:
+ - rscadd: allows custom taste text and color on the custom ice cream setting in
+ the ice cream vat
+2021-09-14:
+ Hatterhat:
+ - balance: The Syndicate zero-day'd the NT IRN program on modular computers through
+ cryptographic sequencing technology. NanoTrasen's cybersecurity divisions are
+ seething.
+ LetterN:
+ - code_imp: sync mafia code
+ Putnam3145:
+ - balance: Nerfed bad toxins bombs and buffed good toxins bombs. There's no longer
+ an arbitrary hard research points cap.
+ keronshb:
+ - balance: Removes zap obj damage and machinery explosion from the SM arcs
+ - bugfix: Fixes hitby runtime.
+ zeroisthebiggay:
+ - rscadd: the permabrig erp role
+ - balance: changeling adrenals buff
+ - bugfix: speedups
+ - bugfix: bread goes in mouth and not on head
diff --git a/html/changelogs/AutoChangeLog-pr-15102.yml b/html/changelogs/AutoChangeLog-pr-15102.yml
deleted file mode 100644
index 6e61ee6840..0000000000
--- a/html/changelogs/AutoChangeLog-pr-15102.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "timothyteakettle"
-delete-after: True
-changes:
- - rscadd: "allows custom taste text and color on the custom ice cream setting in the ice cream vat"
diff --git a/html/changelogs/AutoChangeLog-pr-15121.yml b/html/changelogs/AutoChangeLog-pr-15121.yml
deleted file mode 100644
index 0d39d55435..0000000000
--- a/html/changelogs/AutoChangeLog-pr-15121.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "LetterN"
-delete-after: True
-changes:
- - bugfix: "readded cwc theme in the index.js once more"
diff --git a/html/changelogs/AutoChangeLog-pr-15122.yml b/html/changelogs/AutoChangeLog-pr-15122.yml
deleted file mode 100644
index 3cddb72a8a..0000000000
--- a/html/changelogs/AutoChangeLog-pr-15122.yml
+++ /dev/null
@@ -1,4 +0,0 @@
-author: "LetterN"
-delete-after: True
-changes:
- - bugfix: "lowers the audio volume of ark sfx"
diff --git a/html/changelogs/AutoChangeLog-pr-15155.yml b/html/changelogs/AutoChangeLog-pr-15155.yml
new file mode 100644
index 0000000000..5f3a10473f
--- /dev/null
+++ b/html/changelogs/AutoChangeLog-pr-15155.yml
@@ -0,0 +1,4 @@
+author: "DeltaFire15"
+delete-after: True
+changes:
+ - bugfix: "Techweb hidden nodes should now show less weird behavior."
diff --git a/icons/mob/clothing/head.dmi b/icons/mob/clothing/head.dmi
index 215730c7ee..1596672ac3 100644
Binary files a/icons/mob/clothing/head.dmi and b/icons/mob/clothing/head.dmi differ
diff --git a/icons/mob/clothing/uniform.dmi b/icons/mob/clothing/uniform.dmi
index fd4ded6ad8..d4b1428f3e 100644
Binary files a/icons/mob/clothing/uniform.dmi and b/icons/mob/clothing/uniform.dmi differ
diff --git a/icons/mob/landmarks.dmi b/icons/mob/landmarks.dmi
index 284809da70..0e2ae605f6 100644
Binary files a/icons/mob/landmarks.dmi and b/icons/mob/landmarks.dmi differ
diff --git a/icons/obj/clothing/hats.dmi b/icons/obj/clothing/hats.dmi
index d465470cd7..7d4ae79957 100644
Binary files a/icons/obj/clothing/hats.dmi and b/icons/obj/clothing/hats.dmi differ
diff --git a/icons/obj/clothing/uniforms.dmi b/icons/obj/clothing/uniforms.dmi
index 2bbe93a410..e7467d6352 100644
Binary files a/icons/obj/clothing/uniforms.dmi and b/icons/obj/clothing/uniforms.dmi differ
diff --git a/icons/obj/contraband.dmi b/icons/obj/contraband.dmi
index a6c554f7da..9af0a6ba3a 100644
Binary files a/icons/obj/contraband.dmi and b/icons/obj/contraband.dmi differ
diff --git a/icons/obj/crates.dmi b/icons/obj/crates.dmi
index 1fda3933bd..c6574ca86b 100644
Binary files a/icons/obj/crates.dmi and b/icons/obj/crates.dmi differ
diff --git a/icons/obj/food/containers.dmi b/icons/obj/food/containers.dmi
index 40e00b431e..78ee67c45a 100644
Binary files a/icons/obj/food/containers.dmi and b/icons/obj/food/containers.dmi differ
diff --git a/icons/obj/kitchen.dmi b/icons/obj/kitchen.dmi
index 36efd97189..84b4f47e1a 100644
Binary files a/icons/obj/kitchen.dmi and b/icons/obj/kitchen.dmi differ
diff --git a/icons/obj/machines/prison.dmi b/icons/obj/machines/prison.dmi
new file mode 100644
index 0000000000..7ce58e93a2
Binary files /dev/null and b/icons/obj/machines/prison.dmi differ
diff --git a/icons/obj/radio.dmi b/icons/obj/radio.dmi
index dbfc7b1f93..7e9a976624 100644
Binary files a/icons/obj/radio.dmi and b/icons/obj/radio.dmi differ
diff --git a/icons/obj/shards.dmi b/icons/obj/shards.dmi
index e7875efa26..6e5f5821ce 100644
Binary files a/icons/obj/shards.dmi and b/icons/obj/shards.dmi differ
diff --git a/icons/turf/areas.dmi b/icons/turf/areas.dmi
index a1a6180068..3224e875b2 100644
Binary files a/icons/turf/areas.dmi and b/icons/turf/areas.dmi differ
diff --git a/tgstation.dme b/tgstation.dme
index e9526d1a00..620686af81 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -885,6 +885,7 @@
#include "code\game\machinery\mass_driver.dm"
#include "code\game\machinery\navbeacon.dm"
#include "code\game\machinery\PDApainter.dm"
+#include "code\game\machinery\prisonlabor.dm"
#include "code\game\machinery\quantum_pad.dm"
#include "code\game\machinery\recharger.dm"
#include "code\game\machinery\rechargestation.dm"
@@ -1247,6 +1248,7 @@
#include "code\game\objects\items\robot\robot_upgrades.dm"
#include "code\game\objects\items\stacks\bscrystal.dm"
#include "code\game\objects\items\stacks\cash.dm"
+#include "code\game\objects\items\stacks\license_plates.dm"
#include "code\game\objects\items\stacks\medical.dm"
#include "code\game\objects\items\stacks\rods.dm"
#include "code\game\objects\items\stacks\stack.dm"
@@ -2380,6 +2382,7 @@
#include "code\modules\jobs\job_types\medical_doctor.dm"
#include "code\modules\jobs\job_types\mime.dm"
#include "code\modules\jobs\job_types\paramedic.dm"
+#include "code\modules\jobs\job_types\prisoner.dm"
#include "code\modules\jobs\job_types\quartermaster.dm"
#include "code\modules\jobs\job_types\research_director.dm"
#include "code\modules\jobs\job_types\roboticist.dm"