diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index 1d57752822..bbe78d044d 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -260,10 +260,52 @@ /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) +"aaL" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "hos" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/hos) +"aaM" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "hos" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/hos) "aaN" = ( /obj/structure/chair/sofa/right, /turf/open/floor/plasteel, /area/security/prison) +"aaO" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "hos" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/crew_quarters/heads/hos) "aaP" = ( /obj/machinery/computer/cryopod{ dir = 8; @@ -274,6 +316,9 @@ }, /turf/open/floor/plasteel, /area/security/prison) +"aaQ" = ( +/turf/closed/wall, +/area/security/warden) "aaR" = ( /obj/structure/lattice, /obj/structure/sign/warning/securearea{ @@ -291,6 +336,12 @@ /obj/structure/grille, /turf/open/space, /area/space/nearstation) +"aaU" = ( +/obj/machinery/computer/arcade/orion_trail{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/prison) "aaV" = ( /obj/structure/table/wood, /obj/item/storage/pill_bottle/dice, @@ -311,6 +362,36 @@ }, /turf/open/floor/plasteel, /area/security/prison) +"aaY" = ( +/obj/effect/turf_decal/bot, +/obj/structure/closet/crate/secure/weapon{ + desc = "A secure clothing crate."; + name = "formal uniform crate"; + req_access = "3" + }, +/obj/item/clothing/under/rank/security/navyblue, +/obj/item/clothing/under/rank/security/navyblue, +/obj/item/clothing/under/rank/security/navyblue, +/obj/item/clothing/under/rank/security/navyblue, +/obj/item/clothing/under/rank/security/navyblue, +/obj/item/clothing/under/rank/warden/navyblue, +/obj/item/clothing/under/rank/head_of_security/navyblue, +/obj/item/clothing/suit/armor/navyblue, +/obj/item/clothing/suit/armor/navyblue, +/obj/item/clothing/suit/armor/navyblue, +/obj/item/clothing/suit/armor/navyblue, +/obj/item/clothing/suit/armor/navyblue, +/obj/item/clothing/suit/armor/vest/warden/navyblue, +/obj/item/clothing/suit/armor/hos/navyblue, +/obj/item/clothing/head/beret/sec/navyofficer, +/obj/item/clothing/head/beret/sec/navyofficer, +/obj/item/clothing/head/beret/sec/navyofficer, +/obj/item/clothing/head/beret/sec/navyofficer, +/obj/item/clothing/head/beret/sec/navyofficer, +/obj/item/clothing/head/beret/sec/navywarden, +/obj/item/clothing/head/beret/sec/navyhos, +/turf/open/floor/plasteel/dark, +/area/security/main) "aaZ" = ( /turf/closed/wall/r_wall, /area/ai_monitored/security/armory) @@ -367,54 +448,29 @@ /turf/open/floor/plasteel/freezer, /area/security/prison) "abk" = ( -/obj/machinery/keycard_auth{ - pixel_x = 24; - pixel_y = 10 +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 }, -/obj/structure/table/wood, -/obj/item/radio/off, -/obj/item/taperecorder, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hos) +/turf/open/floor/plasteel/dark, +/area/security/main) "abl" = ( -/obj/machinery/vending/security, -/turf/open/floor/plasteel/showroomfloor, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, /area/security/main) "abm" = ( -/obj/structure/table, -/obj/item/storage/box/firingpins, -/obj/item/storage/box/firingpins, -/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/ai_monitored/security/armory) +/area/security/main) "abn" = ( -/obj/structure/rack, -/obj/machinery/firealarm{ - pixel_y = 24 - }, -/obj/item/gun/energy/e_gun/dragnet, -/obj/item/gun/energy/e_gun/dragnet, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, +/obj/structure/closet/secure_closet/security/sec, +/obj/effect/turf_decal/bot, /turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) +/area/security/main) "abo" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -426,11 +482,12 @@ /turf/closed/wall/r_wall, /area/crew_quarters/heads/hos) "abr" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "hos" +/obj/machinery/computer/security/hos, +/obj/effect/turf_decal/bot, +/obj/structure/cable{ + icon_state = "1-2" }, -/turf/open/floor/plating, +/turf/open/floor/plasteel/dark, /area/crew_quarters/heads/hos) "abs" = ( /obj/structure/cable{ @@ -477,11 +534,13 @@ /turf/open/floor/plasteel/dark, /area/security/execution/transfer) "abx" = ( -/obj/machinery/computer/arcade{ +/obj/machinery/camera/motion{ + c_tag = "Armory External Motion Sensor"; dir = 4 }, -/turf/open/floor/plasteel, -/area/security/prison) +/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, @@ -531,110 +590,41 @@ "abF" = ( /turf/open/floor/plasteel/freezer, /area/security/prison) +"abG" = ( +/obj/structure/lattice/catwalk, +/turf/open/space/basic, +/area/ai_monitored/security/armory) "abH" = ( -/obj/structure/table, -/obj/item/storage/box/chemimp{ - pixel_x = 6 - }, -/obj/item/storage/box/trackimp{ - pixel_x = -3 - }, -/obj/item/storage/lockbox/loyalty, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/obj/structure/closet/secure_closet/security/sec, +/obj/effect/turf_decal/bot, +/obj/machinery/light{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) +/area/security/main) "abI" = ( -/obj/structure/rack, -/obj/item/clothing/suit/armor/riot{ - pixel_x = -3; - pixel_y = 3 +/obj/structure/reagent_dispensers/peppertank{ + pixel_y = 32 }, -/obj/item/clothing/suit/armor/riot, -/obj/item/clothing/suit/armor/riot{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/machinery/light{ +/obj/effect/turf_decal/tile/red{ dir = 1 }, -/obj/item/clothing/head/helmet/riot{ - pixel_x = -3; - pixel_y = 3 +/obj/structure/cable{ + icon_state = "2-8" }, -/obj/item/clothing/head/helmet/riot, -/obj/item/clothing/head/helmet/riot{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/item/shield/riot{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/shield/riot, -/obj/item/shield/riot{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral, -/obj/effect/turf_decal/tile/neutral{ +/obj/effect/turf_decal/stripes/corner{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, /turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) "abJ" = ( -/obj/structure/rack, -/obj/item/clothing/suit/armor/bulletproof{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/clothing/suit/armor/bulletproof, -/obj/item/clothing/suit/armor/bulletproof{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/item/clothing/head/helmet/alt{ - layer = 3.00001; - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/clothing/head/helmet/alt{ - layer = 3.00001 - }, -/obj/item/clothing/head/helmet/alt{ - layer = 3.00001; - pixel_x = 3; - pixel_y = -3 - }, -/obj/machinery/camera/motion{ - c_tag = "Armory Motion Sensor" - }, -/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{ +/obj/machinery/vending/wardrobe/sec_wardrobe, +/obj/effect/turf_decal/bot, +/obj/machinery/light{ dir = 8 }, /turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) +/area/security/main) "abK" = ( /obj/structure/chair/stool, /obj/machinery/light/small{ @@ -674,95 +664,81 @@ /turf/open/floor/plasteel, /area/security/prison) "abN" = ( -/obj/structure/closet/secure_closet/lethalshots, +/obj/effect/landmark/secequipment, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/bot, /turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) +/area/security/main) "abO" = ( /turf/open/floor/plasteel/showroomfloor, /area/security/main) "abP" = ( -/obj/structure/closet/secure_closet/security/sec, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/showroomfloor, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/dark, /area/security/main) "abQ" = ( -/obj/structure/rack, -/obj/machinery/airalarm{ - pixel_y = 23 +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/item/gun/energy/ionrifle, -/obj/item/gun/energy/temperature/security, -/obj/item/clothing/suit/armor/laserproof, -/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/ai_monitored/security/armory) +/turf/open/floor/carpet, +/area/crew_quarters/heads/hos) "abR" = ( -/obj/structure/closet/secure_closet/security/sec, -/obj/machinery/light{ - dir = 4 - }, +/obj/machinery/vending/security, /obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/showroomfloor, +/turf/open/floor/plasteel/dark, /area/security/main) "abS" = ( -/obj/machinery/computer/secure_data, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hos) +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/security/main) "abT" = ( -/obj/machinery/requests_console{ - announcementConsole = 1; - department = "Head of Security's Desk"; - departmentType = 5; - name = "Head of Security RC"; - pixel_y = 30 +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "hos" }, -/obj/item/radio/intercom{ - dir = 4; - name = "Station Intercom (General)"; - pixel_x = -31 +/obj/structure/cable{ + icon_state = "0-2" }, -/obj/structure/table/wood, -/obj/item/storage/box/seccarts{ - pixel_x = 3; - pixel_y = 2 - }, -/obj/item/storage/box/deputy, -/turf/open/floor/carpet, +/turf/open/floor/plating, /area/crew_quarters/heads/hos) "abU" = ( -/obj/machinery/computer/card/minor/hos, +/obj/item/book/manual/wiki/security_space_law, +/obj/structure/table/wood, +/obj/structure/cable{ + icon_state = "1-2" + }, /turf/open/floor/carpet, /area/crew_quarters/heads/hos) "abV" = ( -/obj/machinery/computer/security/hos, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hos) +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/machinery/camera{ + c_tag = "Brig Equipment Room"; + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -26; + pixel_y = 0 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) "abW" = ( -/obj/machinery/airalarm{ - pixel_y = 23 +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "hos" }, -/obj/structure/reagent_dispensers/peppertank{ - pixel_x = 30 +/obj/structure/cable{ + icon_state = "1-4" }, -/obj/structure/table/wood, -/obj/item/reagent_containers/food/drinks/bottle/vodka/badminka, -/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{ - pixel_x = -5; - pixel_y = 5 - }, -/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{ - pixel_x = -5 - }, -/turf/open/floor/carpet, +/obj/structure/cable, +/turf/open/floor/plating, /area/crew_quarters/heads/hos) "abX" = ( /obj/structure/cable{ @@ -853,80 +829,169 @@ /turf/open/floor/plasteel/freezer, /area/security/prison) "aci" = ( -/obj/vehicle/ridden/secway, -/turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) -"acj" = ( -/obj/machinery/light{ - dir = 4 +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/obj/structure/cable{ + icon_state = "2-8" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) +"acj" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/machinery/suit_storage_unit/hos, /turf/open/floor/carpet, /area/crew_quarters/heads/hos) "ack" = ( -/obj/effect/turf_decal/stripes/line{ +/obj/structure/table/reinforced, +/obj/item/grenade/barrier{ + pixel_x = 4 + }, +/obj/item/grenade/barrier, +/obj/item/grenade/barrier{ + pixel_x = -4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"acl" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"acm" = ( /obj/machinery/power/apc/highcap/five_k{ areastring = "/area/ai_monitored/security/armory"; - dir = 4; + dir = 8; name = "Armory APC"; - pixel_x = 24 + pixel_x = -24 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8 }, /obj/structure/cable{ - icon_state = "0-2" + icon_state = "0-4" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"acl" = ( +/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/turf_decal/stripes/end{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"acm" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 }, /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) "acn" = ( -/obj/item/storage/secure/safe/HoS{ - pixel_x = 35 +/obj/effect/turf_decal/tile/red{ + dir = 1 }, -/obj/structure/closet/secure_closet/hos, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hos) +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) "aco" = ( -/obj/structure/closet/bombcloset/security, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) "acp" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/structure/cable{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, +/area/security/prison) "acq" = ( -/obj/effect/landmark/secequipment, -/obj/effect/turf_decal/bot, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) +/obj/machinery/firealarm{ + pixel_y = 24 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) "acr" = ( /obj/structure/chair/comfy/black, /turf/open/floor/carpet, /area/crew_quarters/heads/hos) "acs" = ( -/obj/machinery/newscaster/security_unit{ - pixel_x = -30 +/obj/machinery/power/apc{ + areastring = "/area/crew_quarters/heads/hos"; + dir = 8; + name = "Head of Security's Office APC"; + pixel_x = -24 }, -/obj/machinery/camera{ - c_tag = "Head of Security's Office"; - dir = 4 +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/bed/dogbed{ + desc = "A comfy-looking pet bed. You can even strap your pet in, in case the gravity turns off."; + name = "pet bed" }, -/obj/machinery/recharger{ - pixel_y = 4 +/obj/structure/cable{ + icon_state = "1-4" }, -/obj/structure/table/wood, -/turf/open/floor/carpet, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/mob/living/simple_animal/hostile/retaliate/bat/secbat{ + desc = "An adorable fruit bat with a cute little hat, may or may not have a reputation for biting out eyeballs, or at least that's what the HoS'd tell you."; + name = "Colonel Chomps" + }, +/turf/open/floor/plasteel/dark, /area/crew_quarters/heads/hos) "act" = ( /obj/machinery/holopad, @@ -936,9 +1001,18 @@ /turf/open/floor/carpet, /area/crew_quarters/heads/hos) "acv" = ( -/obj/structure/closet/secure_closet/contraband/armory, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, /turf/open/floor/plasteel/dark, -/area/ai_monitored/security/armory) +/area/crew_quarters/heads/hos) "acw" = ( /obj/structure/sign/warning/securearea{ pixel_y = -32 @@ -1020,8 +1094,15 @@ /turf/open/floor/plasteel, /area/security/prison) "acF" = ( -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) +/obj/machinery/light_switch{ + pixel_y = -23 + }, +/obj/effect/landmark/event_spawn, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) "acG" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, @@ -1085,29 +1166,23 @@ /turf/open/floor/plasteel/freezer, /area/security/prison) "acL" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk, +/obj/structure/cable{ + icon_state = "2-8" }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 28; + pixel_y = 0 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) "acM" = ( -/obj/structure/rack, -/obj/item/gun/energy/e_gun{ - pixel_x = -3; - pixel_y = 3 +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/item/gun/energy/e_gun, -/obj/item/gun/energy/e_gun{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/turf_decal/bot, -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) "acN" = ( /obj/structure/chair/stool{ @@ -1116,16 +1191,24 @@ /turf/open/floor/wood, /area/crew_quarters/bar) "acO" = ( -/obj/structure/closet/l3closet/security, -/obj/machinery/camera{ - c_tag = "Brig Equipment Room"; - dir = 4 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/effect/turf_decal/tile/red{ + dir = 8 }, -/turf/open/floor/plasteel/showroomfloor, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, /area/security/main) "acP" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = 30 + }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/showroomfloor, +/turf/open/floor/plasteel/dark, /area/security/main) "acQ" = ( /obj/structure/table/wood, @@ -1134,35 +1217,32 @@ /turf/open/floor/carpet, /area/crew_quarters/heads/hos) "acR" = ( -/obj/structure/table/wood, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "hos" }, -/obj/item/flashlight/lamp/green{ - on = 0; - pixel_x = -3; - pixel_y = 8 - }, -/obj/item/pen/fountain, -/turf/open/floor/carpet, +/obj/structure/cable, +/turf/open/floor/plating, /area/crew_quarters/heads/hos) "acS" = ( -/obj/item/book/manual/wiki/security_space_law, -/obj/structure/table/wood, -/turf/open/floor/carpet, +/obj/structure/disposalpipe/segment, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/door/poddoor/preopen{ + id = "hos" + }, +/obj/structure/cable, +/turf/open/floor/plating, /area/crew_quarters/heads/hos) "acT" = ( -/obj/machinery/door/window/eastleft{ - name = "armoury desk"; - req_access_txt = "1" +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "2-4" }, -/obj/machinery/door/window/westleft{ - name = "armoury desk"; - req_access_txt = "3" +/obj/structure/cable{ + icon_state = "0-4" }, -/obj/structure/table/reinforced, -/turf/open/floor/plasteel, +/turf/open/floor/plating, /area/ai_monitored/security/armory) "acU" = ( /obj/machinery/door/airlock/external{ @@ -1261,52 +1341,22 @@ /turf/open/floor/plasteel/freezer, /area/security/prison) "adg" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/turf/open/floor/plating, +/area/ai_monitored/security/armory) +"adh" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"adh" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hos) -"adi" = ( -/obj/machinery/flasher/portable, -/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/ai_monitored/security/armory) -"adj" = ( -/obj/structure/rack, -/obj/item/gun/energy/e_gun/advtaser{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/gun/energy/e_gun/advtaser, -/obj/item/gun/energy/e_gun/advtaser{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/effect/turf_decal/bot, -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/obj/structure/window/reinforced{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"adk" = ( +"adi" = ( /obj/structure/rack, /obj/item/gun/ballistic/shotgun/riot{ pixel_x = -3; @@ -1317,38 +1367,65 @@ pixel_x = 3; pixel_y = -3 }, -/obj/effect/turf_decal/bot, /obj/structure/window/reinforced{ dir = 1; - layer = 2.9 + pixel_y = 1 }, -/obj/structure/window/reinforced{ +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/bot, +/obj/machinery/light{ + dir = 4; + light_color = "#c1caff" + }, +/turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) +"adj" = ( +/obj/machinery/recharger, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) +"adk" = ( +/obj/machinery/recharger, +/obj/structure/table/reinforced, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) "adl" = ( -/obj/machinery/door/poddoor/shutters{ - id = "armory"; - name = "Armoury Shutter" +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 8 }, -/obj/machinery/button/door{ - id = "armory"; - name = "Armory Shutters"; - pixel_y = -26; - req_access_txt = "3" +/obj/effect/turf_decal/tile/red{ + dir = 1 }, -/obj/effect/turf_decal/delivery, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel/dark, +/area/security/main) "adm" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "hos" +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_x = 29 }, -/turf/open/floor/plating, -/area/crew_quarters/heads/hos) +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/landmark/secequipment, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/security/main) "adn" = ( /obj/structure/chair{ dir = 1 @@ -1356,13 +1433,26 @@ /turf/open/floor/carpet, /area/crew_quarters/heads/hos) "ado" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hos) +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/prison) "adp" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hos) +/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" = ( /obj/machinery/computer/slot_machine{ balance = 15; @@ -1468,14 +1558,13 @@ "adC" = ( /obj/structure/table, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/scalpel{ - pixel_y = 12 - }, -/obj/item/circular_saw, -/obj/item/hemostat, -/obj/item/retractor, -/obj/item/surgical_drapes, /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" = ( @@ -1550,58 +1639,106 @@ /turf/open/floor/plasteel, /area/security/prison) "adK" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/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 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) "adL" = ( -/obj/structure/closet{ - name = "Evidence Closet" +/obj/machinery/suit_storage_unit/security, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"adM" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 }, /obj/effect/turf_decal/tile/red{ dir = 1 }, -/obj/effect/turf_decal/tile/red, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"adN" = ( +/obj/machinery/requests_console{ + announcementConsole = 1; + department = "Head of Security's Desk"; + departmentType = 5; + name = "Head of Security RC"; + pixel_y = 30 + }, +/obj/item/radio/intercom{ + dir = 4; + name = "Station Intercom (General)"; + pixel_x = -31 + }, +/obj/structure/table/wood, +/obj/item/storage/box/seccarts{ + pixel_x = 3; + pixel_y = 2 + }, +/obj/item/storage/box/deputy, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) +"adO" = ( +/obj/machinery/computer/secure_data, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) +"adP" = ( +/obj/structure/rack, +/obj/item/gun/energy/e_gun{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/gun/energy/e_gun, +/obj/item/gun/energy/e_gun{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/structure/window/reinforced, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, /obj/effect/turf_decal/tile/red{ dir = 4 }, -/turf/open/floor/plasteel, -/area/security/brig) -"adM" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/button/door{ - id = "hos"; - name = "HoS Office Shutters"; - pixel_y = -25 - }, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hos) -"adN" = ( -/obj/machinery/power/apc{ - areastring = "/area/crew_quarters/heads/hos"; - dir = 8; - name = "Head of Security's Office APC"; - pixel_x = -24 - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hos) -"adP" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hos) -"adQ" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) +"adQ" = ( +/obj/machinery/computer/card/minor/hos, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) "adR" = ( /turf/closed/wall/r_wall, /area/security/main) @@ -1851,6 +1988,9 @@ /obj/effect/turf_decal/tile/red{ dir = 1 }, +/obj/structure/extinguisher_cabinet{ + pixel_y = 30 + }, /turf/open/floor/plasteel, /area/security/prison) "aep" = ( @@ -1905,84 +2045,116 @@ /turf/open/floor/plasteel, /area/security/prison) "aes" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/red, -/obj/structure/rack, -/obj/structure/window/reinforced{ - dir = 8 - }, -/obj/item/key/security, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"aet" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"aeu" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/structure/rack, -/obj/structure/window/reinforced{ - dir = 4 - }, -/obj/item/storage/box/handcuffs, -/obj/item/storage/box/handcuffs, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"aev" = ( -/obj/machinery/light{ - dir = 4 +/obj/machinery/airalarm{ + pixel_y = 23 }, /obj/structure/reagent_dispensers/peppertank{ pixel_x = 30 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) -"aew" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) -"aex" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "hos" +/obj/structure/table/wood, +/obj/item/reagent_containers/food/drinks/bottle/vodka/badminka, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{ + pixel_x = -5; + pixel_y = 5 }, -/turf/open/floor/plating, +/obj/item/reagent_containers/food/drinks/drinkingglass/shotglass{ + pixel_x = -5 + }, +/turf/open/floor/plasteel/dark, /area/crew_quarters/heads/hos) -"aey" = ( -/obj/machinery/door/airlock/command/glass{ - name = "Head of Security"; - req_access_txt = "58" - }, -/obj/structure/cable{ - icon_state = "1-2" +"aet" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Equipment Room"; + req_access_txt = "1" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hos) -"aez" = ( -/obj/structure/closet{ - name = "Evidence Closet" - }, +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ - dir = 1 + dir = 4 }, /obj/effect/turf_decal/tile/red{ dir = 8 }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/main) +"aeu" = ( +/obj/machinery/newscaster/security_unit{ + pixel_x = -30 + }, +/obj/machinery/camera{ + c_tag = "Head of Security's Office"; + dir = 4 + }, +/obj/machinery/recharger{ + pixel_y = 4 + }, +/obj/structure/table/wood, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) +"aev" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, /turf/open/floor/plasteel, +/area/security/prison) +"aew" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, /area/security/brig) +"aex" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/ai_monitored/security/armory) +"aey" = ( +/obj/machinery/keycard_auth{ + pixel_x = 24; + pixel_y = 10 + }, +/obj/structure/table/wood, +/obj/item/radio/off, +/obj/item/taperecorder, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) +"aez" = ( +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/flashlight/lamp/green{ + on = 0; + pixel_x = -3; + pixel_y = 8 + }, +/obj/item/pen/fountain, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) "aeA" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk, @@ -2005,6 +2177,55 @@ }, /turf/open/floor/plating, /area/maintenance/fore/secondary) +"aeD" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/machinery/suit_storage_unit/hos, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) +"aeE" = ( +/obj/structure/closet/secure_closet/lethalshots, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"aeF" = ( +/obj/structure/table/reinforced, +/obj/item/storage/box/firingpins{ + pixel_x = 6 + }, +/obj/item/storage/box/firingpins{ + pixel_x = -3 + }, +/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/ai_monitored/security/armory) "aeG" = ( /obj/structure/cable, /obj/machinery/power/solar{ @@ -2154,11 +2375,18 @@ /turf/open/floor/plating, /area/hallway/secondary/exit) "aeS" = ( -/obj/structure/cable{ - icon_state = "4-8" +/obj/structure/closet/secure_closet/brig, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/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" }, /turf/open/floor/plasteel, /area/security/prison) @@ -2173,12 +2401,21 @@ /turf/open/floor/plasteel, /area/security/prison) "aeU" = ( -/obj/structure/cable{ - icon_state = "4-8" +/obj/effect/landmark/start/security_officer, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel, -/area/security/prison) +/area/security/main) "aeV" = ( /obj/structure/cable{ icon_state = "4-8" @@ -2192,67 +2429,85 @@ /turf/open/floor/plasteel, /area/security/prison) "aeW" = ( -/obj/machinery/requests_console{ - department = "Security"; - departmentType = 5; - pixel_x = -30 +/obj/structure/table/reinforced, +/obj/item/storage/box/chemimp{ + pixel_x = 6 }, -/obj/machinery/camera{ - c_tag = "Brig Control Room"; +/obj/item/storage/box/trackimp{ + pixel_x = -3 + }, +/obj/item/storage/lockbox/loyalty, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/machinery/light{ +/obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/structure/rack, -/obj/item/clothing/mask/gas/sechailer{ - pixel_x = -3; - pixel_y = 3 +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, -/obj/item/clothing/mask/gas/sechailer, -/obj/item/clothing/mask/gas/sechailer{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/item/storage/toolbox/drone, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) "aeX" = ( -/obj/structure/cable{ - icon_state = "0-4" +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 }, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, -/turf/open/floor/plating, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) "aeY" = ( -/obj/structure/cable{ - icon_state = "4-8" +/obj/vehicle/ridden/secway, +/obj/item/key/security, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, -/obj/machinery/door/window/southleft{ - name = "Armory"; - req_access_txt = "3" +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/stripes/line{ - dir = 10 +/obj/effect/turf_decal/tile/neutral{ + dir = 4 }, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) "aeZ" = ( -/obj/structure/cable{ - icon_state = "0-8" +/obj/structure/rack, +/obj/item/gun/energy/ionrifle, +/obj/item/gun/energy/temperature/security, +/obj/item/clothing/suit/armor/laserproof, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, -/obj/structure/cable{ - icon_state = "0-4" +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 +/obj/effect/turf_decal/tile/neutral{ + dir = 4 }, -/turf/open/floor/plating, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/machinery/airalarm{ + pixel_y = 23 + }, +/turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) "afa" = ( /obj/docking_port/stationary{ @@ -2266,28 +2521,65 @@ /turf/open/space/basic, /area/space) "afb" = ( -/obj/machinery/recharger, -/obj/structure/table, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) -"afc" = ( -/obj/structure/table, -/obj/machinery/recharger, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) -"afd" = ( -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_x = 29 +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/vending/wardrobe/sec_wardrobe, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"afc" = ( +/obj/structure/closet/secure_closet/contraband/armory, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 8; + name = "8maintenance loot spawner" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/obj/effect/turf_decal/tile/blue, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"afd" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) "afe" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) "aff" = ( /obj/effect/landmark/start/security_officer, /obj/effect/turf_decal/tile/red{ @@ -2383,6 +2675,10 @@ }, /turf/open/floor/plasteel, /area/security/main) +"afn" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/security/brig) "afo" = ( /obj/machinery/door/airlock/external{ name = "Escape Pod Three" @@ -2403,6 +2699,37 @@ }, /turf/open/space/basic, /area/space) +"afq" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/turf/open/floor/plating, +/area/security/brig) +"afr" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/landmark/start/security_officer, +/turf/open/floor/plasteel, +/area/security/main) +"afs" = ( +/obj/item/storage/secure/safe/HoS{ + pixel_x = 35 + }, +/obj/structure/closet/secure_closet/hos, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) "aft" = ( /obj/machinery/atmospherics/pipe/simple/general/visible{ dir = 5 @@ -2503,14 +2830,15 @@ /turf/open/floor/plasteel, /area/security/prison) "afD" = ( -/obj/structure/table, -/obj/item/electropack, -/obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ - dir = 8 + dir = 1 }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/landmark/start/security_officer, /turf/open/floor/plasteel, -/area/security/prison) +/area/security/main) "afE" = ( /obj/machinery/light/small, /turf/open/floor/plating, @@ -2527,9 +2855,6 @@ /area/security/prison) "afG" = ( /obj/structure/table, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, /obj/item/storage/box/hug, /obj/item/razor{ pixel_x = -6 @@ -2541,20 +2866,46 @@ /turf/open/floor/plasteel, /area/security/prison) "afH" = ( -/obj/structure/closet/secure_closet/brig, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ +/obj/structure/table/glass, +/obj/item/storage/firstaid/regular{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/storage/firstaid/regular, +/obj/item/reagent_containers/glass/bottle/charcoal{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/reagent_containers/glass/bottle/epinephrine{ + pixel_x = -2; + pixel_y = -2 + }, +/obj/item/reagent_containers/syringe{ + name = "steel point" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/turf/open/floor/plasteel, -/area/security/prison) +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) "afI" = ( -/obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ - dir = 8 + dir = 4 }, -/turf/open/floor/plasteel, -/area/security/prison) +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) "afJ" = ( /obj/structure/extinguisher_cabinet{ pixel_x = 1; @@ -2567,38 +2918,51 @@ /turf/open/floor/plasteel, /area/security/prison) "afK" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Evidence Storage"; - req_access_txt = "63" - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"afL" = ( -/obj/structure/closet{ - name = "Evidence Closet" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ +/obj/structure/table/glass, +/obj/machinery/computer/med_data/laptop, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/effect/turf_decal/tile/red{ +/obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/turf/open/floor/plasteel, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"afL" = ( +/obj/machinery/computer/operating, +/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/bot, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, /area/security/brig) "afM" = ( /turf/open/floor/plasteel, /area/security/brig) "afN" = ( -/obj/machinery/light, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 }, /turf/open/floor/plasteel, @@ -2632,22 +2996,31 @@ /area/security/main) "afS" = ( /obj/machinery/door/airlock/security/glass{ - name = "Equipment Room"; - req_access_txt = "1" + name = "Brig EVA Storage"; + req_access_txt = "3" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel/showroomfloor, -/area/security/main) +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/dark, +/area/security/brig) "afT" = ( -/obj/effect/landmark/start/security_officer, /obj/effect/turf_decal/tile/red{ - dir = 1 + dir = 4 }, -/obj/effect/turf_decal/tile/red{ +/obj/effect/turf_decal/tile/red, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, -/turf/open/floor/plasteel, -/area/security/main) +/turf/open/floor/plasteel/dark, +/area/security/brig) "afU" = ( /turf/open/floor/plasteel, /area/security/main) @@ -2713,6 +3086,20 @@ /obj/machinery/atmospherics/pipe/manifold4w/general/visible, /turf/open/floor/plasteel, /area/engine/atmos) +"age" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/camera{ + c_tag = "Firing Range"; + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on, +/turf/open/floor/plasteel, +/area/security/prison) "agf" = ( /obj/structure/table, /obj/item/stack/sheet/metal, @@ -2789,11 +3176,28 @@ /turf/open/floor/plasteel, /area/security/prison) "agl" = ( -/obj/machinery/door/airlock/security{ - name = "Interrogation"; - req_access_txt = "63" +/obj/structure/table, +/obj/item/clothing/glasses/sunglasses{ + pixel_x = 3; + pixel_y = 3 }, -/turf/open/floor/plasteel/dark, +/obj/item/clothing/glasses/sunglasses{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/clothing/ears/earmuffs{ + pixel_x = -3; + pixel_y = -2 + }, +/obj/item/clothing/ears/earmuffs{ + pixel_x = -3; + pixel_y = -2 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel, /area/security/prison) "agm" = ( /obj/machinery/light{ @@ -2809,75 +3213,79 @@ /turf/closed/wall/r_wall, /area/security/warden) "ago" = ( -/obj/machinery/computer/security, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"agp" = ( -/obj/machinery/computer/prisoner/management, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"agq" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/window/southleft{ - base_state = "right"; - icon_state = "right"; - name = "Armory"; - req_access_txt = "3" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) -"agr" = ( -/obj/machinery/computer/secure_data, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"ags" = ( -/obj/structure/chair{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) -"agt" = ( -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"agu" = ( -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 - }, -/obj/machinery/suit_storage_unit/security, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"agw" = ( -/obj/structure/table, -/obj/machinery/syndicatebomb/training, -/obj/item/gun/energy/laser/practice, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ +/obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/machinery/syndicatebomb/training, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/bot, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"agp" = ( +/obj/structure/table, +/obj/item/book/manual/wiki/security_space_law, +/obj/item/book/manual/wiki/security_space_law, +/obj/structure/window/reinforced, /turf/open/floor/plasteel, +/area/security/brig) +"agq" = ( +/obj/machinery/door/poddoor/shutters{ + id = "armory1"; + name = "Armoury Shutter" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"agr" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/security/processing) +"ags" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, /area/security/main) +"agt" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/ai_monitored/security/armory) +"agu" = ( +/obj/machinery/computer/prisoner/gulag_teleporter_computer, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/processing) +"agv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, +/area/security/processing) +"agw" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/button/door{ + id = "hos"; + name = "HoS Office Shutters"; + pixel_y = -25 + }, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) "agx" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 8 @@ -2901,12 +3309,35 @@ /turf/open/floor/plasteel, /area/security/main) "agz" = ( -/obj/effect/landmark/start/security_officer, -/obj/effect/turf_decal/tile/red{ +/obj/structure/closet/secure_closet{ + name = "nonlethal ammunition"; + req_access = "list(3)" + }, +/obj/item/storage/box/rubbershot, +/obj/item/storage/box/rubbershot, +/obj/item/storage/box/rubbershot, +/obj/item/storage/box/rubbershot, +/obj/item/storage/box/rubbershot, +/obj/item/storage/box/rubbershot, +/obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/turf/open/floor/plasteel, -/area/security/main) +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) "agA" = ( /obj/machinery/requests_console{ department = "Security"; @@ -2991,71 +3422,118 @@ }, /turf/open/floor/plasteel, /area/security/main) -"agI" = ( -/obj/machinery/airalarm{ - pixel_y = 23 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) -"agJ" = ( -/obj/item/cigbutt, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) -"agK" = ( -/turf/open/floor/plasteel/dark, -/area/security/prison) -"agL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) -"agM" = ( -/obj/item/clothing/gloves/color/latex, -/obj/item/clothing/mask/surgical, -/obj/item/reagent_containers/spray/cleaner, -/obj/structure/table/glass, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/security/brig) -"agN" = ( -/obj/item/storage/firstaid/regular{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/storage/firstaid/regular, -/obj/structure/table/glass, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/security/brig) -"agO" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, +"agH" = ( /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 4 }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"agI" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"agJ" = ( +/obj/machinery/flasher/portable, +/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/bot, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"agK" = ( +/obj/machinery/flasher/portable, +/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/delivery, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"agL" = ( +/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/brig) +"agM" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/power/apc{ + areastring = "/area/security/brig"; + dir = 1; + name = "Brig APC"; + pixel_y = 24 + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"agN" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"agO" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Brig Infirmary"; + req_access_txt = "2" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, /turf/open/floor/plasteel, /area/security/brig) "agP" = ( @@ -3076,61 +3554,103 @@ /area/security/brig) "agQ" = ( /obj/structure/cable{ - icon_state = "4-8" + icon_state = "2-4" }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"agR" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/security/warden) -"agS" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"agT" = ( -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"agU" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"agV" = ( -/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"agW" = ( -/obj/structure/cable{ - icon_state = "0-2" +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"agR" = ( +/obj/effect/turf_decal/loading_area{ + dir = 4; + pixel_x = -3 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"agS" = ( +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"agT" = ( +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/security/warden) -"agY" = ( -/obj/structure/table, -/obj/item/storage/fancy/donut_box, /obj/effect/turf_decal/tile/red{ dir = 1 }, /obj/effect/turf_decal/tile/red{ dir = 8 }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, /turf/open/floor/plasteel, -/area/security/main) +/area/security/brig) +"agU" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"agV" = ( +/obj/machinery/button/door{ + id = "armory1"; + name = "Armory Shutters"; + pixel_y = -26; + req_access_txt = "3" + }, +/obj/machinery/door/poddoor/shutters{ + id = "armory1"; + name = "Armoury Shutter" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"agW" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/airlock/command, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel/dark, +/area/crew_quarters/heads/hos) +"agX" = ( +/obj/machinery/door/poddoor/shutters{ + id = "armory2"; + name = "Armoury Shutter" + }, +/obj/machinery/button/door{ + id = "armory2"; + name = "Armory Shutters"; + pixel_y = -26; + req_access_txt = "3" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"agY" = ( +/obj/structure/table/glass, +/obj/item/storage/box/bodybags, +/obj/item/reagent_containers/blood, +/obj/item/reagent_containers/spray/cleaner, +/obj/machinery/light{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel/dark, +/area/security/brig) "agZ" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, @@ -3140,9 +3660,11 @@ /turf/open/floor/plasteel, /area/security/main) "ahb" = ( -/obj/effect/landmark/start/security_officer, -/turf/open/floor/plasteel, -/area/security/main) +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) "ahc" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -3259,162 +3781,230 @@ /turf/open/floor/plasteel, /area/security/main) "ahm" = ( +/obj/structure/rack, /obj/structure/window/reinforced{ - dir = 4 + dir = 1; + layer = 2.9 }, -/obj/machinery/iv_drip, -/obj/item/reagent_containers/blood, -/obj/effect/turf_decal/tile/red{ +/obj/item/storage/box/handcuffs{ + pixel_x = -1; + pixel_y = 1 + }, +/obj/item/storage/box/handcuffs{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/turf/open/floor/plasteel/white, -/area/security/brig) +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/camera/motion{ + c_tag = "Armory Motion Sensor"; + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) "ahn" = ( /turf/closed/wall, /area/maintenance/fore/secondary) "aho" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, +/obj/effect/turf_decal/tile/red, /turf/open/floor/plasteel/dark, -/area/security/prison) +/area/ai_monitored/security/armory) "ahp" = ( -/obj/structure/chair{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/security/prison) -"ahq" = ( -/obj/structure/table, -/obj/item/flashlight/lamp, -/turf/open/floor/plasteel/dark, -/area/security/prison) -"ahr" = ( -/obj/structure/closet{ - name = "Evidence Closet" - }, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"ahq" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/rack, +/obj/item/storage/box/prisoner, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 4 }, /turf/open/floor/plasteel, -/area/security/brig) +/area/security/processing) +"ahr" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/processing) "ahs" = ( -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = 24 +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/structure/table/glass, -/obj/machinery/computer/med_data/laptop, -/obj/effect/turf_decal/tile/red{ - dir = 1 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/light_switch{ + pixel_x = 27 }, +/turf/open/floor/plasteel, +/area/security/processing) +"aht" = ( /obj/effect/turf_decal/tile/red{ dir = 4 }, -/turf/open/floor/plasteel/white, -/area/security/brig) -"aht" = ( -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/security/brig) -"ahu" = ( -/obj/item/storage/box/bodybags, -/obj/structure/extinguisher_cabinet{ - pixel_x = -27 - }, -/obj/item/reagent_containers/syringe{ - name = "steel point" - }, -/obj/item/reagent_containers/glass/bottle/charcoal, -/obj/item/reagent_containers/glass/bottle/epinephrine, -/obj/machinery/light{ - dir = 8 - }, -/obj/structure/table/glass, +/obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 1 }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"ahu" = ( +/obj/structure/table/optable, +/obj/item/storage/backpack/duffelbag/sec/surgery, +/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/white, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, /area/security/brig) "ahv" = ( -/obj/machinery/power/apc{ - areastring = "/area/security/warden"; - dir = 8; - name = "Brig Control APC"; - pixel_x = -24 +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" }, /obj/structure/cable{ icon_state = "0-4" }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"ahx" = ( +/turf/open/floor/plating, +/area/security/brig) +"ahw" = ( +/obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-4" + icon_state = "1-8" }, /obj/structure/cable{ icon_state = "1-4" }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"ahy" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/security/brig) +"ahx" = ( +/obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "0-8" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"ahz" = ( /obj/structure/cable{ - icon_state = "4-8" + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/security/brig) +"ahy" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/structure/cable{ + icon_state = "1-8" }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"ahA" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ dir = 8 }, -/turf/open/floor/plasteel, -/area/security/main) -"ahB" = ( -/obj/structure/cable{ - icon_state = "4-8" +/turf/open/floor/plasteel/dark, +/area/security/brig) +"ahz" = ( +/obj/structure/tank_dispenser/oxygen, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"ahA" = ( +/obj/structure/rack, +/obj/structure/window/reinforced, +/obj/item/storage/box/teargas{ + pixel_x = -1; + pixel_y = 1 + }, +/obj/item/storage/box/flashbangs{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/item/radio/intercom{ + pixel_x = -30 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"ahB" = ( +/obj/structure/rack, +/obj/item/gun/energy/e_gun/dragnet{ + pixel_x = 2; + pixel_y = -2 + }, +/obj/item/gun/energy/e_gun/dragnet{ + pixel_x = -2; + pixel_y = 2 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) "ahC" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -3426,35 +4016,23 @@ /turf/open/floor/plasteel, /area/security/main) "ahD" = ( -/obj/machinery/door/window/westleft{ - dir = 4; - name = "Brig Infirmary" - }, +/obj/structure/chair, +/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 = 4 + dir = 8 }, -/turf/open/floor/plasteel/white, -/area/security/brig) -"ahE" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Brig Control"; - req_access_txt = "3" +/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 = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) +/turf/open/floor/plasteel, +/area/security/prison) "ahF" = ( /obj/structure/cable{ icon_state = "4-8" @@ -3468,20 +4046,14 @@ /turf/open/floor/plasteel, /area/security/main) "ahG" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/machinery/disposal/bin, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ dir = 4 }, +/obj/structure/disposalpipe/trunk, /turf/open/floor/plasteel, -/area/security/main) +/area/security/brig) "ahH" = ( /obj/structure/disposalpipe/junction/yjunction{ dir = 1 @@ -3520,20 +4092,12 @@ /turf/open/floor/plasteel, /area/security/main) "ahK" = ( -/obj/structure/disposalpipe/segment{ +/obj/effect/turf_decal/tile/red{ dir = 4 }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/structure/chair, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/effect/landmark/start/security_officer, -/turf/open/floor/plasteel, -/area/security/main) +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) "ahL" = ( /obj/structure/cable{ icon_state = "4-8" @@ -3582,121 +4146,192 @@ /turf/closed/wall, /area/maintenance/fore/secondary) "ahP" = ( -/turf/open/floor/plasteel/white, -/area/security/brig) +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel, +/area/security/processing) "ahQ" = ( -/obj/structure/closet/secure_closet/warden, -/obj/structure/cable{ - icon_state = "4-8" +/obj/effect/turf_decal/tile/red{ + dir = 8 }, -/obj/item/book/manual/wiki/security_space_law, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"ahR" = ( -/obj/structure/chair/office/dark, -/obj/effect/landmark/start/warden, -/obj/machinery/button/door{ - id = "Prison Gate"; - name = "Prison Wing Lockdown"; - pixel_x = -27; - pixel_y = 8; - req_access_txt = "2" - }, -/obj/machinery/button/door{ - id = "Secure Gate"; - name = "Cell Shutters"; - pixel_x = -27; - pixel_y = -2 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"ahS" = ( -/obj/structure/table, -/obj/structure/cable{ - icon_state = "1-8" +/obj/effect/turf_decal/tile/red{ + dir = 1 }, /obj/structure/cable{ icon_state = "1-2" }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"ahR" = ( +/obj/structure/rack, +/obj/item/gun/energy/laser{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/gun/energy/laser, +/obj/item/gun/energy/laser{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/structure/window/reinforced{ + dir = 1; + pixel_y = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"ahS" = ( +/obj/structure/bodycontainer/morgue, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/bot, +/obj/machinery/camera{ + c_tag = "Brig Infirmary"; + dir = 4; + network = list("ss13") + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) "ahT" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, /area/maintenance/fore/secondary) "ahU" = ( -/obj/structure/closet{ - name = "Evidence Closet" - }, -/obj/effect/turf_decal/tile/red{ +/obj/machinery/computer/shuttle/labor{ dir = 1 }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ +/obj/effect/turf_decal/stripes/line{ dir = 8 }, /turf/open/floor/plasteel, -/area/security/brig) +/area/security/processing) "ahV" = ( -/obj/structure/table, -/obj/item/folder/red, -/obj/item/taperecorder, -/turf/open/floor/plasteel/dark, -/area/security/prison) +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 4 + }, +/obj/machinery/computer/security/labor{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/security/processing) "ahW" = ( -/obj/structure/bodycontainer/morgue, -/obj/machinery/camera{ - c_tag = "Brig Infirmary"; +/obj/structure/rack, +/obj/item/clothing/suit/armor/riot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/suit/armor/riot, +/obj/item/clothing/suit/armor/riot{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/clothing/head/helmet/riot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/head/helmet/riot, +/obj/item/clothing/head/helmet/riot{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/shield/riot{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/shield/riot, +/obj/item/shield/riot{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/structure/window/reinforced{ + dir = 1; + layer = 2.9 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/light{ + dir = 8 + }, +/obj/structure/extinguisher_cabinet{ + pixel_x = -26 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"ahX" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ dir = 4 }, /turf/open/floor/plasteel/dark, -/area/security/brig) -"ahX" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 5 - }, -/obj/machinery/computer/crew{ - dir = 8 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) +/area/ai_monitored/security/armory) "ahY" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ +/obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"ahZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/machinery/firealarm{ - dir = 1; - pixel_y = -24 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ +/obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/turf/open/floor/plasteel, -/area/security/main) +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/bot, +/mob/living/simple_animal/bot/secbot{ + arrest_type = 1; + health = 45; + icon_state = "secbot1"; + idcheck = 1; + name = "Sergeant-at-Armsky"; + weaponscheck = 1 + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"ahZ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) "aia" = ( /obj/structure/noticeboard{ dir = 1; @@ -3737,29 +4372,29 @@ /area/maintenance/fore/secondary) "aid" = ( /obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel/white, -/area/security/brig) -"aie" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/structure/table, -/obj/machinery/recharger{ - pixel_x = -6; - pixel_y = 3 - }, -/obj/machinery/recharger{ - pixel_x = 6; - pixel_y = 3 - }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel/showroomfloor, -/area/security/warden) +/area/security/brig) +"aie" = ( +/obj/structure/bed, +/obj/machinery/iv_drip, +/obj/item/bedsheet/medical, +/obj/effect/turf_decal/tile/neutral, +/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/brig) "aif" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable{ @@ -3769,89 +4404,136 @@ /turf/open/floor/plating, /area/maintenance/fore/secondary) "aig" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/structure/table, +/obj/item/clothing/mask/gas/sechailer{ + pixel_x = -3; + pixel_y = 3 }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"aih" = ( -/obj/structure/closet{ - name = "Evidence Closet" +/obj/item/clothing/mask/gas/sechailer, +/obj/item/clothing/mask/gas/sechailer{ + pixel_x = 3; + pixel_y = -3 }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 +/obj/item/storage/toolbox/electrical{ + pixel_x = -2; + pixel_y = 2 }, -/obj/effect/turf_decal/tile/red{ - dir = 8 +/obj/item/storage/toolbox/drone{ + pixel_x = 2; + pixel_y = -2 }, /turf/open/floor/plasteel, /area/security/brig) +"aih" = ( +/obj/machinery/door/poddoor/shutters{ + id = "armory2"; + name = "Armoury Shutter" + }, +/obj/effect/turf_decal/delivery, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) "aii" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 +/obj/machinery/rnd/production/techfab/department/security, +/obj/effect/turf_decal/delivery, +/obj/machinery/light{ + dir = 8; + light_color = "#e8eaff" }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/security/warden) +/turf/open/floor/plasteel/dark, +/area/security/brig) "aij" = ( -/obj/machinery/light_switch{ - pixel_y = -23 +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "1-4" }, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 +/obj/structure/cable{ + icon_state = "0-4" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) +/turf/open/floor/plating, +/area/security/brig) "aik" = ( /obj/structure/cable{ - icon_state = "1-2" + icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ dir = 1 }, -/obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 8 }, +/obj/structure/table, +/obj/item/gun/energy/laser/practice, +/obj/machinery/syndicatebomb/training, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, /turf/open/floor/plasteel, /area/security/main) "ail" = ( -/obj/machinery/camera{ - c_tag = "Brig Interrogation"; - dir = 8; - network = list("interrogation") +/obj/machinery/door/airlock/security{ + name = "Firing Range"; + req_access_txt = "2" }, -/turf/open/floor/plasteel/dark, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, /area/security/prison) "aim" = ( -/obj/machinery/light_switch{ - pixel_y = -23 +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/main) +/turf/open/floor/plating, +/area/security/brig) "ain" = ( -/obj/effect/turf_decal/tile/red{ +/obj/structure/rack, +/obj/item/clothing/suit/armor/bulletproof{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/suit/armor/bulletproof, +/obj/item/clothing/suit/armor/bulletproof{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/clothing/head/helmet/alt{ + layer = 3.00001; + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/clothing/head/helmet/alt{ + layer = 3.00001 + }, +/obj/item/clothing/head/helmet/alt{ + layer = 3.00001; + pixel_x = 3; + pixel_y = -3 + }, +/obj/structure/window/reinforced, +/obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/effect/turf_decal/tile/red{ +/obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/turf/open/floor/plasteel/white, -/area/security/brig) +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/blue{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) "aio" = ( /obj/structure/table, /obj/item/stack/sheet/metal/fifty, @@ -3861,33 +4543,21 @@ /turf/open/floor/plasteel, /area/ai_monitored/storage/eva) "aip" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/effect/turf_decal/tile/red{ dir = 4 }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/main) +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) "aiq" = ( -/obj/machinery/camera{ - c_tag = "Security Office"; - dir = 1 - }, -/obj/machinery/computer/secure_data{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/effect/turf_decal/tile/red{ dir = 4 }, -/obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ - dir = 8 + dir = 1 }, -/turf/open/floor/plasteel, -/area/security/main) +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) "air" = ( /obj/structure/chair, /turf/open/floor/plating, @@ -3908,22 +4578,15 @@ /turf/open/floor/plasteel, /area/security/main) "ait" = ( -/obj/item/radio/intercom{ - name = "Station Intercom (General)"; - pixel_y = -29 - }, -/obj/machinery/computer/security{ +/obj/effect/turf_decal/tile/red{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/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, -/area/security/main) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) "aiu" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -3941,34 +4604,44 @@ /turf/open/floor/plasteel, /area/security/main) "aiv" = ( -/obj/structure/cable{ - icon_state = "1-4" +/obj/structure/rack, +/obj/item/gun/energy/e_gun/advtaser{ + pixel_x = -3; + pixel_y = 3 }, -/obj/structure/disposalpipe/segment{ - dir = 5 +/obj/item/gun/energy/e_gun/advtaser, +/obj/item/gun/energy/e_gun/advtaser{ + pixel_x = 3; + pixel_y = -3 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/structure/window/reinforced, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ dir = 4 }, /obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"aiw" = ( +/obj/machinery/light_switch{ + pixel_y = -23 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 8 }, +/obj/structure/chair/sofa/left{ + dir = 1 + }, /turf/open/floor/plasteel, /area/security/main) -"aiw" = ( -/obj/machinery/door/window/westleft{ - base_state = "right"; - dir = 4; - icon_state = "right"; - name = "Brig Infirmary" - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel/white, -/area/security/brig) "aix" = ( /obj/structure/cable{ icon_state = "4-8" @@ -3996,19 +4669,19 @@ /turf/open/floor/plasteel, /area/security/brig) "aiz" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/airalarm{ - dir = 4; - pixel_x = -23 +/obj/machinery/light, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, +/obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/chair/sofa{ dir = 1 }, /turf/open/floor/plasteel, -/area/security/brig) +/area/security/main) "aiA" = ( /obj/machinery/door/airlock/external{ req_access_txt = "13" @@ -4019,135 +4692,141 @@ /turf/open/floor/plating, /area/maintenance/fore/secondary) "aiB" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/turf/open/floor/plasteel/dark, -/area/security/prison) -"aiC" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel/dark, -/area/security/prison) -"aiD" = ( -/obj/structure/bodycontainer/morgue, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"aiE" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, -/turf/open/floor/plasteel/dark, -/area/security/prison) -"aiF" = ( -/obj/structure/bed, -/obj/item/clothing/suit/straight_jacket, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 8 }, -/turf/open/floor/plasteel/white, -/area/security/brig) +/obj/structure/chair/sofa/right{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/main) +"aiC" = ( +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/landmark/start/security_officer, +/turf/open/floor/plasteel, +/area/security/main) +"aiD" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"aiE" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1; + pixel_x = 0 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"aiF" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/gulag_item_reclaimer{ + pixel_x = 32 + }, +/turf/open/floor/plasteel, +/area/security/processing) "aiG" = ( /obj/effect/turf_decal/tile/red{ dir = 1 }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, +/obj/item/radio/intercom{ + pixel_y = 25 + }, /turf/open/floor/plasteel, /area/security/brig) "aiH" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 4 }, +/obj/machinery/camera{ + c_tag = "Brig Central"; + dir = 8; + network = list("ss13") + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, /turf/open/floor/plasteel, /area/security/brig) "aiI" = ( -/obj/structure/cable{ - icon_state = "0-4" +/obj/structure/bodycontainer/morgue, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, -/obj/structure/sign/warning/electricshock{ - pixel_x = -32 +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/security/warden) -"aiJ" = ( -/obj/structure/table/reinforced, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/door/window/brigdoor{ - dir = 1; - name = "Armory Desk"; - req_access_txt = "3" - }, -/obj/machinery/door/window/southleft{ - name = "Reception Desk"; - req_access_txt = "63" - }, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen{ - pixel_x = 4; - pixel_y = 4 - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"aiK" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/security/warden) -"aiL" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/security/warden) -"aiM" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Brig Control"; - req_access_txt = "3" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) -"aiN" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/security/warden) -"aiO" = ( -/obj/structure/window/reinforced{ +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/structure/bed, -/obj/item/clothing/suit/straight_jacket, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"aiJ" = ( +/obj/structure/sign/warning/electricshock{ + pixel_y = 32 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aiK" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/security/processing) +"aiL" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"aiM" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/showroomfloor, +/area/security/brig) +"aiN" = ( /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 4 @@ -4155,33 +4834,51 @@ /obj/effect/turf_decal/tile/red{ dir = 8 }, -/turf/open/floor/plasteel/white, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1; + pixel_x = 0 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"aiO" = ( +/obj/machinery/shower{ + dir = 1 + }, +/obj/structure/sink{ + dir = 4; + pixel_x = 11 + }, +/obj/structure/mirror{ + pixel_x = 28 + }, +/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/box, +/turf/open/floor/plasteel/dark, /area/security/brig) "aiP" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/closed/wall/r_wall, /area/security/main) "aiQ" = ( -/obj/machinery/camera{ - c_tag = "Brig East" +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, +/turf/open/floor/plating, /area/security/brig) "aiR" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, +/obj/structure/closet/l3closet/security, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, /area/security/brig) "aiS" = ( /obj/item/stack/rods, @@ -4198,13 +4895,10 @@ /turf/closed/wall/r_wall, /area/security/processing) "aiW" = ( -/obj/machinery/door/airlock/security{ - name = "Interrogation"; - req_access_txt = "63" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/structure/closet/bombcloset/security, +/obj/effect/turf_decal/bot, /turf/open/floor/plasteel/dark, -/area/security/prison) +/area/security/brig) "aiX" = ( /turf/closed/wall/r_wall, /area/security/brig) @@ -4213,33 +4907,35 @@ /turf/open/floor/plasteel, /area/security/courtroom) "aiZ" = ( +/obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ - icon_state = "4-8" + icon_state = "0-4" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/brig) +/turf/open/floor/plating, +/area/ai_monitored/security/armory) "aja" = ( +/obj/machinery/door/poddoor/shutters{ + id = "armory3"; + name = "Armoury Shutter" + }, +/obj/effect/turf_decal/delivery, /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"ajb" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/brig) +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"ajb" = ( +/obj/machinery/door/poddoor/shutters{ + id = "armory3"; + name = "Armoury Shutter" + }, +/obj/effect/turf_decal/delivery, +/obj/structure/cable{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) "ajc" = ( /obj/effect/turf_decal/tile/red{ dir = 1 @@ -4250,49 +4946,44 @@ /turf/open/floor/plasteel, /area/security/brig) "ajd" = ( -/obj/structure/sign/plaques/golden{ - pixel_y = 32 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 +/obj/structure/table/wood, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" }, /turf/open/floor/plasteel, -/area/security/brig) +/area/security/vacantoffice/b) "aje" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/machinery/firealarm{ - pixel_y = 24 +/obj/machinery/door/airlock/security{ + name = "Armory"; + req_access_txt = "3" }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"ajf" = ( +/obj/machinery/door/firedoor, /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"ajg" = ( /obj/structure/cable{ - icon_state = "1-8" + icon_state = "2-8" }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/turf/open/floor/plasteel, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/ai_monitored/security/armory) +"ajf" = ( +/obj/structure/table/wood, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/security/vacantoffice/b) +"ajg" = ( +/obj/machinery/computer/secure_data, +/obj/effect/turf_decal/bot, +/turf/open/floor/plasteel/dark, /area/security/brig) "ajh" = ( /obj/machinery/light_switch{ @@ -4383,135 +5074,162 @@ /turf/open/space, /area/solar/port/fore) "ajr" = ( -/obj/machinery/computer/prisoner/gulag_teleporter_computer, -/turf/open/floor/plasteel, -/area/security/processing) +/obj/structure/table/wood, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/light, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" + }, +/turf/open/floor/plating, +/area/security/vacantoffice/b) "ajs" = ( /obj/machinery/gulag_teleporter, /turf/open/floor/plasteel, /area/security/processing) "ajt" = ( -/obj/structure/sign/warning/securearea{ - pixel_x = 32 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, /obj/machinery/camera{ - c_tag = "Labor Shuttle Dock North" + c_tag = "Vacant Office B"; + dir = 1 + }, +/obj/structure/table/wood, +/obj/effect/spawner/lootdrop/maintenance{ + lootcount = 2; + name = "2maintenance loot spawner" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, -/area/security/processing) +/area/security/vacantoffice/b) "aju" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"ajv" = ( -/obj/machinery/light{ - dir = 8 - }, -/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/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"ajw" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/turf/closed/wall/r_wall, -/area/security/brig) -"ajx" = ( -/obj/machinery/firealarm{ - pixel_y = 24 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"ajy" = ( -/obj/machinery/power/apc{ - areastring = "/area/security/brig"; - dir = 1; - name = "Brig APC"; - pixel_y = 24 - }, -/obj/structure/cable{ - icon_state = "0-2" - }, -/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/brig) -"ajz" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 1 - }, -/obj/machinery/computer/security/telescreen/interrogation{ - pixel_y = 30 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"ajA" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"ajB" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/brig) -"ajD" = ( /obj/structure/cable{ icon_state = "4-8" }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/security/main) +"ajv" = ( +/obj/machinery/door/airlock/security/glass{ + id_tag = "innerbrig"; + name = "Brig Infirmary"; + req_access_txt = "2"; + req_one_access_txt = "0" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"ajw" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"ajx" = ( +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"ajy" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "1-4" + }, +/turf/open/floor/plating, +/area/maintenance/fore) +"ajz" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/security/brig) +"ajA" = ( +/obj/effect/landmark/start/security_officer, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"ajB" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/rack, +/obj/item/storage/box/zipties{ + pixel_x = -1; + pixel_y = 1 + }, +/obj/item/storage/box/zipties{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/security/brig) +"ajC" = ( +/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/supply/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"ajD" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, /turf/open/floor/plasteel, /area/security/brig) "ajE" = ( @@ -4526,24 +5244,37 @@ /turf/open/floor/plasteel, /area/security/courtroom) "ajF" = ( -/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, -/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, /turf/open/floor/plasteel, /area/security/brig) "ajG" = ( -/obj/machinery/light, -/obj/machinery/door_timer{ - id = "Cell 1"; - name = "Cell 1"; - pixel_y = -32 +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/security/brig) "ajH" = ( @@ -4557,37 +5288,59 @@ /turf/open/floor/plasteel, /area/security/courtroom) "ajI" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ dir = 4 }, +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, /turf/open/floor/plasteel, /area/security/brig) "ajJ" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 }, /turf/open/floor/plasteel, /area/security/brig) "ajK" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, /turf/open/floor/plasteel, /area/security/brig) "ajL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/machinery/computer/security, +/obj/effect/turf_decal/bot, +/obj/structure/window/reinforced{ dir = 4 }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/security/brig) "ajM" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ @@ -4596,12 +5349,16 @@ /turf/open/floor/plasteel, /area/security/courtroom) "ajN" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security{ - name = "Brig"; - req_access_txt = "63; 42" +/obj/structure/sign/plaques/golden{ + pixel_y = 32 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, /turf/open/floor/plasteel, @@ -4713,6 +5470,35 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plating, /area/maintenance/solars/port/fore) +"ajX" = ( +/obj/machinery/light{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/item/radio/intercom{ + pixel_y = 25 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"ajY" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/security/brig) "ajZ" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/sign/warning/vacuum/external{ @@ -4721,11 +5507,15 @@ /turf/open/floor/plating, /area/construction/mining/aux_base) "aka" = ( -/obj/structure/chair{ +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, -/area/security/processing) +/area/security/brig) "akb" = ( /obj/machinery/light{ dir = 8 @@ -4736,129 +5526,139 @@ /turf/open/floor/plasteel, /area/security/processing) "akc" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"akd" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/security/processing) -"ake" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, /obj/effect/turf_decal/tile/red{ dir = 1 }, /obj/effect/turf_decal/tile/red{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/main) +"akd" = ( +/obj/effect/landmark/start/security_officer, +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/main) +"ake" = ( +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Brig East"; + dir = 8 + }, /turf/open/floor/plasteel, /area/security/brig) "akf" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security{ - name = "Labor Shuttle"; - req_access_txt = "2" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 + dir = 10 }, -/turf/open/floor/plasteel, +/turf/closed/wall/r_wall, /area/security/brig) "akg" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/camera{ - c_tag = "Brig West"; - dir = 1 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/machinery/atmospherics/components/unary/vent_pump/on, /turf/open/floor/plasteel, /area/security/brig) "akh" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "1-8" +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/turf/open/floor/plasteel, -/area/security/brig) -"aki" = ( -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"akj" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 + dir = 1 }, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 8 }, +/obj/structure/table, +/obj/item/storage/fancy/donut_box, /turf/open/floor/plasteel, -/area/security/brig) -"akk" = ( +/area/security/main) +"aki" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 }, /obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/security/main) +"akj" = ( +/obj/structure/chair{ + dir = 1 + }, +/obj/structure/window/reinforced{ + dir = 4 + }, /turf/open/floor/plasteel, /area/security/brig) +"akk" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Security Office"; + req_access_txt = "1" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/security/main) "akl" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ dir = 4 }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, /turf/open/floor/plasteel, /area/security/brig) "akm" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 +/obj/machinery/door/airlock/security{ + name = "Labor Shuttle"; + req_access_txt = "2" + }, +/obj/structure/cable{ + icon_state = "1-2" }, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel, -/area/security/brig) +/area/security/processing) "akn" = ( /obj/structure/table/wood, /obj/item/folder/blue, @@ -4870,105 +5670,113 @@ /turf/open/floor/plasteel, /area/security/courtroom) "ako" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ dir = 4 }, -/obj/machinery/door_timer{ - id = "Cell 2"; - name = "Cell 2"; - pixel_y = -32 - }, -/obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 8 }, +/obj/structure/disposalpipe/segment, /turf/open/floor/plasteel, /area/security/brig) "akp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"akq" = ( -/obj/machinery/camera{ - c_tag = "Brig Central"; - dir = 1 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door_timer{ - id = "Cell 3"; - name = "Cell 3"; - pixel_y = -32 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"akr" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aks" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, /obj/structure/cable{ icon_state = "1-8" }, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "2-8" }, -/turf/open/floor/plasteel, -/area/security/brig) -"akt" = ( -/obj/machinery/light, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/door_timer{ - id = "Cell 4"; - name = "Cell 4"; - pixel_y = -32 - }, -/obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 8 }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aku" = ( +/obj/effect/turf_decal/tile/red, /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ dir = 1 }, /turf/open/floor/plasteel, /area/security/brig) -"akv" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +"akq" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel, +/area/security/brig) +"akr" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 28; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/security/processing) +"aks" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/main) +"akt" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aku" = ( +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"akv" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/security/brig) "akw" = ( @@ -4978,10 +5786,19 @@ /turf/open/floor/plasteel, /area/security/courtroom) "akx" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ dir = 4 }, -/turf/closed/wall/r_wall, +/turf/open/floor/plasteel, /area/security/brig) "aky" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -4996,6 +5813,18 @@ }, /turf/open/floor/plasteel, /area/security/courtroom) +"akz" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) "akA" = ( /obj/structure/chair{ dir = 8; @@ -5016,6 +5845,42 @@ }, /turf/open/floor/plating, /area/maintenance/solars/port/fore) +"akC" = ( +/obj/effect/turf_decal/tile/red, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"akD" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"akE" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"akF" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) "akG" = ( /obj/structure/sign/warning/vacuum/external{ pixel_y = 32 @@ -5024,11 +5889,21 @@ /turf/open/floor/plating, /area/security/processing) "akH" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ dir = 4 }, /turf/open/floor/plasteel, -/area/security/processing) +/area/security/brig) "akI" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -5036,80 +5911,97 @@ /turf/open/floor/plasteel, /area/security/processing) "akJ" = ( -/obj/machinery/light_switch{ - pixel_x = 27 +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Brig"; + req_access_txt = "63; 42" }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/computer/security/labor, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, -/area/security/processing) +/area/security/brig) "akK" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/obj/structure/cable{ + icon_state = "4-8" + }, /turf/open/floor/plasteel, -/area/security/processing) +/area/security/brig) "akL" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/meter, /turf/open/floor/plating, /area/maintenance/fore) "akM" = ( -/obj/structure/cable{ - icon_state = "0-2" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/security/brig) -"akN" = ( -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/security/brig) -"akO" = ( -/obj/machinery/door/window/brigdoor/security/cell{ - id = "Cell 1"; - name = "Cell 1" - }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 8 }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"akN" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /obj/structure/cable{ - icon_state = "2-4" + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 }, /turf/open/floor/plasteel, /area/security/brig) +"akO" = ( +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/table, +/obj/machinery/microwave{ + pixel_y = 6 + }, +/turf/open/floor/plasteel, +/area/security/main) "akP" = ( -/obj/structure/cable{ - icon_state = "0-8" +/obj/effect/turf_decal/tile/red, +/obj/machinery/door_timer{ + id = "Cell 1"; + name = "Cell 1"; + pixel_y = -32 }, -/obj/structure/cable{ - icon_state = "0-4" +/obj/effect/turf_decal/tile/red{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, +/obj/machinery/light, +/obj/machinery/camera{ + c_tag = "Brig West"; + dir = 1 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, /area/security/brig) "akQ" = ( /obj/structure/cable{ @@ -5118,153 +6010,122 @@ /turf/closed/wall, /area/security/brig) "akR" = ( -/obj/machinery/door/window/brigdoor/security/cell{ - id = "Cell 2"; - name = "Cell 2" +/obj/machinery/camera{ + c_tag = "Security Office"; + dir = 1 }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 8 }, -/obj/structure/cable{ - icon_state = "2-4" - }, +/obj/structure/table, +/obj/item/storage/box/donkpockets, /turf/open/floor/plasteel, -/area/security/brig) +/area/security/main) "akS" = ( -/obj/structure/cable{ - icon_state = "0-8" +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -29 }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/security/brig) -"akT" = ( -/obj/machinery/door/window/brigdoor/security/cell{ - id = "Cell 3"; - name = "Cell 3" - }, -/obj/structure/cable{ - icon_state = "4-8" +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 8 }, +/obj/structure/table, +/turf/open/floor/plasteel, +/area/security/main) +"akT" = ( /obj/structure/cable{ - icon_state = "2-4" + icon_state = "4-8" }, -/obj/structure/cable{ - icon_state = "2-4" +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 }, /turf/open/floor/plasteel, /area/security/brig) "akU" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Brig Desk"; - req_access_txt = "1" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/turf/open/floor/plasteel/dark, +/obj/machinery/holopad, +/turf/open/floor/plasteel, /area/security/brig) "akV" = ( -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/structure/cable{ - icon_state = "0-4" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/security/brig) -"akW" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/door/airlock/security/glass{ - id_tag = "innerbrig"; - name = "Brig"; - req_access_txt = "63" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"akW" = ( +/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 = "1-8" - }, -/obj/structure/cable{ - icon_state = "1-4" - }, /turf/open/floor/plasteel, /area/security/brig) "akX" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/door/airlock/security/glass{ - id_tag = "innerbrig"; - name = "Brig"; - req_access_txt = "63" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, +/obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ - dir = 1 + dir = 8 }, /obj/effect/turf_decal/tile/red{ dir = 4 }, -/obj/effect/turf_decal/tile/red{ - dir = 8 +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 9 }, /turf/open/floor/plasteel, /area/security/brig) "akY" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/security/warden) +"akZ" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Brig Control"; + req_access_txt = "3" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"ala" = ( +/obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ icon_state = "0-8" }, /obj/structure/cable{ icon_state = "0-4" }, -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "1-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 - }, /turf/open/floor/plating, -/area/security/brig) -"ala" = ( -/obj/machinery/door/window/brigdoor/security/cell{ - desc = "A rare fourth cell, known for faulty wiring..."; - id = "Cell 4"; - name = "Cell 4" - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/security/brig) +/area/security/warden) "alb" = ( /obj/structure/chair{ dir = 4; @@ -5312,6 +6173,24 @@ }, /turf/open/floor/plasteel, /area/security/courtroom) +"alf" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -24 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"alg" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) "alh" = ( /obj/structure/cable{ icon_state = "1-2" @@ -5329,12 +6208,57 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/maintenance/port/fore) +"alj" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) "alk" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/visible{ dir = 1 }, /turf/open/floor/plasteel, /area/engine/atmos) +"all" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"alm" = ( +/obj/machinery/button/door{ + id = "armory3"; + name = "Armory Shutters"; + pixel_y = 26; + req_access_txt = "3" + }, +/obj/machinery/light{ + dir = 1; + light_color = "#cee5d2" + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) "aln" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 @@ -5346,34 +6270,76 @@ }, /turf/open/floor/plating, /area/security/processing) +"alo" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plating, +/area/security/warden) "alp" = ( /turf/open/floor/plating, /area/security/processing) "alq" = ( -/turf/open/floor/plasteel, -/area/security/processing) -"alr" = ( -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 +/obj/machinery/door/airlock/security/glass{ + name = "Evidence Storage"; + req_access_txt = "1" }, +/obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/chair{ +/turf/open/floor/plasteel/dark, +/area/security/warden) +"alr" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 5 + }, +/turf/closed/wall/r_wall, +/area/security/warden) +"als" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/door_timer{ + id = "Cell 3"; + name = "Cell 3"; + pixel_y = -32 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel, +/area/security/brig) +"alt" = ( +/obj/machinery/door/airlock/security/glass{ + id_tag = "innerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ dir = 1 }, /turf/open/floor/plasteel, -/area/security/processing) -"als" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/processing) -"alt" = ( -/obj/structure/reagent_dispensers/peppertank, -/turf/closed/wall/r_wall, -/area/ai_monitored/security/armory) +/area/security/brig) "alu" = ( /obj/machinery/nuclearbomb/selfdestruct, /obj/effect/turf_decal/tile/neutral{ @@ -5389,86 +6355,118 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/nuke_storage) "alv" = ( +/obj/effect/spawner/structure/window/reinforced, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "0-8" }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 +/obj/structure/cable{ + icon_state = "0-4" }, -/obj/item/radio/intercom{ - desc = "Talk through this. It looks like it has been modified to not broadcast."; - name = "Prison Intercom (General)"; - pixel_x = -25; - pixel_y = -2; - prison_radio = 1 +/obj/machinery/door/poddoor/preopen{ + id = "Secure Gate"; + name = "brig shutters" }, -/turf/open/floor/plasteel, +/turf/open/floor/plating, /area/security/brig) "alw" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 1 - }, -/obj/machinery/light/small{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aly" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 - }, -/obj/item/radio/intercom{ - desc = "Talk through this. It looks like it has been modified to not broadcast."; - name = "Prison Intercom (General)"; - pixel_x = -25; - pixel_y = -2; - prison_radio = 1 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"alz" = ( -/obj/machinery/button/door{ - id = "briggate"; - name = "Desk Shutters"; - pixel_x = -26; - pixel_y = 6 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"alA" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "briggate"; - name = "security shutters" - }, -/obj/machinery/door/window/eastleft{ - name = "Brig Desk"; - req_access_txt = "1" - }, -/obj/item/paper_bin{ - pixel_x = -3; - pixel_y = 7 - }, -/obj/item/pen, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"alB" = ( -/obj/machinery/computer/secure_data, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"alC" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 +/obj/machinery/door/airlock/security/glass{ + id_tag = "innerbrig"; + name = "Brig"; + req_access_txt = "63" }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 4 }, /obj/effect/turf_decal/tile/red{ dir = 8 }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"alx" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/computer/security/telescreen/interrogation{ + dir = 1; + pixel_y = -32 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"aly" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"alz" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"alA" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/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/brig) +"alB" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"alC" = ( +/obj/effect/turf_decal/tile/red, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1; + pixel_x = 0 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/plasteel, /area/security/brig) "alD" = ( @@ -5476,6 +6474,23 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/security/courtroom) +"alE" = ( +/obj/machinery/computer/security{ + dir = 4 + }, +/obj/machinery/requests_console{ + department = "Security"; + departmentType = 5; + pixel_x = -30 + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/firealarm{ + dir = 4; + pixel_x = -26; + pixel_y = 26 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) "alF" = ( /obj/machinery/atmospherics/components/unary/tank/air, /turf/open/floor/plating, @@ -5548,6 +6563,13 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plating, /area/maintenance/fore/secondary) +"alM" = ( +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"alN" = ( +/obj/machinery/computer/prisoner/management, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) "alO" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -5602,115 +6624,238 @@ /obj/machinery/atmospherics/pipe/simple/scrubbers/visible, /turf/open/floor/plasteel, /area/engine/atmos) +"alY" = ( +/obj/machinery/computer/secure_data, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 8 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"alZ" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/security/brig) "ama" = ( /mob/living/simple_animal/sloth/paperwork, /turf/open/floor/plasteel, /area/quartermaster/storage) "amb" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/turf/open/floor/plasteel, -/area/security/processing) +/turf/closed/wall/r_wall, +/area/security/warden) "amc" = ( -/obj/machinery/computer/shuttle/labor{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ dir = 8 }, -/turf/open/floor/plasteel, -/area/security/processing) -"amd" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/table, -/obj/item/storage/box/prisoner, -/turf/open/floor/plasteel, -/area/security/processing) -"ame" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"amf" = ( -/obj/structure/bed, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/flasher{ - id = "Cell 1"; - pixel_x = -28 - }, -/obj/item/bedsheet/orange, -/turf/open/floor/plasteel, -/area/security/brig) -"amg" = ( -/obj/structure/closet/secure_closet/brig{ - id = "Cell 1"; - name = "Cell 1 Locker" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"amh" = ( -/obj/structure/bed, -/obj/machinery/flasher{ - id = "Cell 2"; - pixel_x = -28 - }, -/obj/item/bedsheet/orange, -/turf/open/floor/plasteel, -/area/security/brig) -"ami" = ( -/obj/structure/closet/secure_closet/brig{ - id = "Cell 2"; - name = "Cell 2 Locker" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"amj" = ( -/obj/structure/bed, -/obj/machinery/flasher{ - id = "Cell 3"; - pixel_x = -28 - }, -/obj/item/bedsheet/orange, -/turf/open/floor/plasteel, -/area/security/brig) -"amk" = ( -/obj/structure/closet/secure_closet/brig{ - id = "Cell 3"; - name = "Cell 3 Locker" - }, -/turf/open/floor/plasteel, -/area/security/brig) -"aml" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel/dark, -/area/security/brig) -"amn" = ( -/obj/structure/chair/office/dark, /obj/structure/cable{ icon_state = "4-8" }, -/turf/open/floor/plasteel/dark, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/plasteel, /area/security/brig) -"amo" = ( +"amd" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"ame" = ( /obj/effect/turf_decal/tile/red{ dir = 4 }, /obj/effect/turf_decal/tile/red, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet{ + pixel_y = -30 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"amf" = ( +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"amg" = ( +/obj/structure/closet{ + name = "Evidence Closet" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"amh" = ( +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/structure/cable, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/security/brig) +"ami" = ( +/obj/machinery/door/window/brigdoor/security/cell{ + id = "Cell 1"; + name = "Cell 1" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/brig) +"amj" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel, +/area/security/brig) +"amk" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/machinery/door_timer{ + id = "Cell 2"; + name = "Cell 2"; + pixel_y = -32 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aml" = ( +/obj/machinery/atmospherics/pipe/manifold4w/supply/hidden, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"amm" = ( +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plating, +/area/security/brig) +"amn" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Cell Interior Shutters"; + name = "brig shutters" + }, +/turf/open/floor/plating, +/area/security/brig) +"amo" = ( +/obj/machinery/door/window/brigdoor/security/cell{ + id = "Cell 2"; + name = "Cell 2" + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, /area/security/brig) "amp" = ( -/obj/structure/closet/secure_closet/brig{ - id = "Cell 4"; - name = "Cell 4 Locker" +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"amq" = ( +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_x = 0; + pixel_y = -26 + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/disposalpipe/segment{ + dir = 9 }, /turf/open/floor/plasteel, /area/security/brig) @@ -5751,6 +6896,30 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/maintenance/solars/starboard/fore) +"amx" = ( +/obj/machinery/door/window/brigdoor/security/cell{ + id = "Cell 3"; + name = "Cell 3" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "2-8" + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/brig) "amy" = ( /obj/structure/chair/stool{ pixel_y = 8 @@ -5773,6 +6942,16 @@ }, /turf/open/floor/plating, /area/maintenance/solars/port/fore) +"amB" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1; + pixel_x = 0 + }, +/turf/open/floor/plasteel, +/area/security/brig) "amC" = ( /turf/open/floor/plating, /area/maintenance/port/fore) @@ -5819,30 +6998,88 @@ /obj/item/trash/plate, /turf/open/floor/plating, /area/maintenance/port/fore) +"amI" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"amJ" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) "amK" = ( /obj/structure/sign/warning/docking, /turf/closed/wall, /area/security/processing) "amL" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/security/processing) +/turf/open/floor/plasteel/dark, +/area/security/brig) "amM" = ( -/obj/machinery/door/airlock/security/glass{ - name = "Prisoner Processing"; +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/airlock/security{ + name = "Labor Shuttle"; req_access_txt = "2" }, -/obj/structure/cable{ - icon_state = "1-2" +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/security/processing) "amN" = ( -/obj/machinery/suit_storage_unit/security, +/obj/structure/table/reinforced, +/obj/item/paper_bin{ + pixel_x = -3; + pixel_y = 7 + }, +/obj/item/pen{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/machinery/door/window/brigdoor{ + dir = 4; + name = "Reception Desk"; + req_access_txt = "3" + }, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Brig Control"; + name = "brig shutters" + }, +/obj/machinery/door/window/southright{ + dir = 8; + name = "Reception Desk"; + req_access_txt = "63" + }, /turf/open/floor/plasteel/showroomfloor, /area/security/warden) +"amO" = ( +/obj/machinery/holopad, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"amP" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/cable{ + icon_state = "1-4" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/open/floor/plasteel, +/area/security/brig) "amQ" = ( /obj/structure/cable{ icon_state = "0-4" @@ -5876,82 +7113,33 @@ /turf/closed/wall/r_wall, /area/security/brig) "amT" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "briggate"; - name = "security shutters" +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1; + pixel_x = 0 }, -/obj/machinery/door/window/southleft{ - name = "Brig Desk"; - req_access_txt = "1" - }, -/turf/open/floor/plasteel/dark, +/turf/open/floor/plasteel, /area/security/brig) "amU" = ( -/obj/machinery/door/poddoor/preopen{ - id = "briggate"; - name = "security blast door" +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1; + pixel_x = 0 }, -/obj/structure/cable{ - icon_state = "0-8" - }, -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/security/brig) +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) "amV" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "briggate"; - name = "security shutters" - }, -/obj/machinery/door/window/southleft{ - base_state = "right"; - icon_state = "right"; - name = "Brig Desk"; - req_access_txt = "1" +/obj/machinery/holopad, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"amW" = ( +/obj/effect/landmark/start/warden, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"amX" = ( +/obj/structure/chair{ + dir = 4 }, /turf/open/floor/plasteel/dark, /area/security/brig) -"amW" = ( -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/machinery/door/airlock/security/glass{ - id_tag = "outerbrig"; - name = "Brig"; - req_access_txt = "63" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) -"amX" = ( -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/obj/machinery/door/airlock/security/glass{ - id_tag = "outerbrig"; - name = "Brig"; - req_access_txt = "63" - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/brig) "amY" = ( /obj/structure/chair{ dir = 1 @@ -5986,6 +7174,10 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plating, /area/maintenance/fore/secondary) +"and" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/security/brig) "ane" = ( /obj/structure/cable{ icon_state = "1-2" @@ -6073,58 +7265,52 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) +"anq" = ( +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"anr" = ( +/obj/structure/disposalpipe/segment, +/turf/closed/wall/r_wall, +/area/security/warden) "ans" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"ant" = ( -/obj/machinery/gulag_item_reclaimer{ - pixel_y = 24 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"anu" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 9 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/processing) -"anv" = ( /obj/structure/cable{ icon_state = "1-2" }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/red{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"ant" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + name = "Evidence Storage"; + req_access = null; + req_access_txt = "3" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"anu" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/security/warden) +"anv" = ( +/obj/structure/closet{ + name = "Evidence Closet" + }, /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ dir = 4 }, -/turf/open/floor/plasteel, -/area/security/processing) +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) "anw" = ( /obj/effect/turf_decal/tile/red{ dir = 1 @@ -6132,26 +7318,43 @@ /turf/open/floor/plasteel, /area/hallway/primary/fore) "anx" = ( -/obj/structure/sign/warning/electricshock{ - pixel_y = 32 +/obj/structure/bed, +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/effect/turf_decal/tile/red{ - dir = 1 +/obj/machinery/flasher{ + id = "Cell 1"; + pixel_x = -24; + pixel_y = -36 + }, +/obj/item/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + name = "Prison Intercom (General)"; + pixel_x = -27; + pixel_y = -27; + prison_radio = 1 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/item/bedsheet/green, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 }, /turf/open/floor/plasteel, -/area/hallway/primary/fore) +/area/security/brig) "any" = ( -/obj/structure/sign/warning/electricshock{ - pixel_y = 32 +/obj/effect/landmark/event_spawn, +/obj/structure/cable{ + icon_state = "1-2" }, -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 +/obj/structure/cable{ + icon_state = "1-4" }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, -/area/hallway/primary/fore) +/area/security/brig) "anz" = ( /turf/open/floor/plasteel, /area/hallway/primary/fore) @@ -6161,6 +7364,30 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/fore) +"anB" = ( +/obj/structure/bed, +/obj/machinery/flasher{ + id = "Cell 2"; + pixel_x = -24; + pixel_y = -36 + }, +/obj/item/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + name = "Prison Intercom (General)"; + pixel_x = -27; + pixel_y = -27; + prison_radio = 1 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/item/bedsheet/blue, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) "anC" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -6222,6 +7449,31 @@ /obj/effect/spawner/lootdrop/maintenance, /turf/open/floor/plating, /area/maintenance/port/fore) +"anM" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/closet/secure_closet/brig{ + 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" + }, +/obj/effect/turf_decal/tile/green, +/obj/effect/turf_decal/tile/green{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) "anN" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 @@ -6245,21 +7497,38 @@ /turf/open/space/basic, /area/space) "anP" = ( +/obj/machinery/door/airlock/security{ + name = "Interrogation"; + req_access_txt = "2" + }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - name = "Labor Camp Shuttle Airlock" - }, -/turf/open/floor/plasteel, -/area/security/processing) +/turf/open/floor/plasteel/dark, +/area/security/brig) "anQ" = ( -/obj/structure/sign/warning/electricshock{ - pixel_y = 32 +/obj/structure/bed, +/obj/machinery/flasher{ + id = "Cell 3"; + pixel_x = -24; + pixel_y = -36 }, -/obj/machinery/light{ - dir = 1 +/obj/item/radio/intercom{ + desc = "Talk through this. It looks like it has been modified to not broadcast."; + name = "Prison Intercom (General)"; + pixel_x = -27; + pixel_y = -27; + prison_radio = 1 + }, +/obj/machinery/light/small{ + dir = 8 + }, +/obj/item/bedsheet/yellow, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 }, /turf/open/floor/plasteel, -/area/hallway/primary/fore) +/area/security/brig) "anR" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on, /turf/open/floor/plasteel, @@ -6418,6 +7687,31 @@ /obj/item/circuitboard/machine/monkey_recycler, /turf/open/floor/plating, /area/maintenance/port/fore) +"aop" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/closet/secure_closet/brig{ + 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" + }, +/obj/effect/turf_decal/tile/blue, +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) "aoq" = ( /obj/structure/sign/warning/vacuum/external{ pixel_y = -32 @@ -6426,18 +7720,15 @@ /turf/open/floor/plating, /area/security/processing) "aor" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 4 +/obj/structure/table, +/obj/item/restraints/handcuffs, +/obj/item/taperecorder, +/obj/item/folder/red, +/obj/machinery/light_switch{ + pixel_y = -24 }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/processing) +/turf/open/floor/plasteel/dark, +/area/security/brig) "aos" = ( /obj/structure/closet/emcloset, /obj/effect/turf_decal/stripes/line{ @@ -6446,41 +7737,25 @@ /turf/open/floor/plasteel, /area/security/processing) "aot" = ( -/obj/machinery/light{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "2-8" - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, /obj/effect/turf_decal/tile/red{ dir = 8 }, -/turf/open/floor/plasteel, -/area/security/processing) -"aou" = ( -/obj/structure/cable{ - icon_state = "1-4" - }, -/obj/machinery/camera{ - c_tag = "Labor Shuttle Dock South"; +/obj/effect/turf_decal/tile/red{ dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, /obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, /turf/open/floor/plasteel, -/area/security/processing) +/area/security/brig) +"aou" = ( +/obj/item/melee/baton/cattleprod, +/obj/item/stock_parts/cell/high, +/obj/item/electropack, +/obj/structure/closet/secure_closet{ + name = "Persuasion Storage"; + req_access = "list(2)" + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) "aov" = ( /obj/effect/turf_decal/tile/red{ dir = 8 @@ -6695,6 +7970,32 @@ /obj/structure/closet/emcloset, /turf/open/floor/plating, /area/maintenance/port/fore) +"aoY" = ( +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 28; + pixel_y = -28 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"aoZ" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-2" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Brig Control"; + name = "brig shutters" + }, +/turf/open/floor/plating, +/area/security/warden) "apa" = ( /obj/machinery/atmospherics/pipe/simple/green/visible{ dir = 4 @@ -6703,19 +8004,20 @@ /turf/open/floor/plasteel, /area/engine/atmos) "apb" = ( -/obj/structure/plasticflaps, -/turf/open/floor/plating, -/area/security/processing) -"apc" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Security Maintenance"; - req_access_txt = "2" - }, /obj/structure/cable{ - icon_state = "1-2" + icon_state = "4-8" }, -/turf/open/floor/plating, -/area/maintenance/fore) +/obj/machinery/atmospherics/pipe/manifold/supply/hidden, +/obj/effect/turf_decal/tile/red, +/obj/structure/extinguisher_cabinet{ + pixel_y = -30 + }, +/turf/open/floor/plasteel, +/area/security/brig) +"apc" = ( +/obj/structure/chair/office/dark, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) "apd" = ( /turf/closed/wall, /area/security/detectives_office) @@ -6857,6 +8159,31 @@ }, /turf/open/floor/plating, /area/maintenance/fore/secondary) +"apv" = ( +/obj/structure/table/reinforced, +/obj/machinery/recharger{ + pixel_x = -6; + pixel_y = 3 + }, +/obj/machinery/recharger{ + pixel_x = 6; + pixel_y = 3 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"apw" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Firing Range"; + dir = 8 + }, +/turf/open/floor/plasteel, +/area/security/processing) "apx" = ( /obj/machinery/door/airlock/atmos/abandoned{ name = "Atmospherics Maintenance"; @@ -6932,6 +8259,28 @@ /obj/machinery/portable_atmospherics/canister/water_vapor, /turf/open/floor/plasteel, /area/janitor) +"apH" = ( +/obj/machinery/computer/crew{ + dir = 4 + }, +/obj/machinery/button/door{ + id = "outerbrig"; + name = "Brig Exterior Doors Control"; + pixel_x = -24; + pixel_y = -24; + req_access = null; + req_access_txt = "2" + }, +/obj/machinery/button/door{ + id = "innerbrig"; + name = "Brig Interior Doors Control"; + pixel_x = -24; + pixel_y = -40; + req_access = null; + req_access_txt = "2" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) "apI" = ( /obj/machinery/atmospherics/components/unary/relief_valve/atmos/atmos_waste{ dir = 1 @@ -6942,6 +8291,16 @@ "apJ" = ( /turf/closed/wall, /area/construction/mining/aux_base) +"apK" = ( +/obj/structure/chair{ + dir = 4 + }, +/obj/machinery/airalarm{ + dir = 4; + pixel_x = -22 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) "apL" = ( /obj/structure/table, /obj/effect/spawner/lootdrop/maintenance{ @@ -6970,16 +8329,64 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/maintenance/port/fore) +"apQ" = ( +/obj/structure/closet{ + name = "Evidence Closet" + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/firealarm{ + dir = 1; + pixel_y = -24 + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) "apR" = ( -/obj/item/paper/fluff/jobs/security/beepsky_mom, -/turf/open/floor/plating, -/area/security/processing) +/obj/machinery/door/airlock/security/glass{ + id_tag = "innerbrig"; + name = "Brig"; + req_access_txt = "63" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) "apS" = ( /obj/structure/cable{ icon_state = "1-2" }, /turf/open/floor/plating, /area/maintenance/fore) +"apT" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/structure/cable{ + icon_state = "1-8" + }, +/turf/closed/wall/r_wall, +/area/security/warden) "apU" = ( /turf/open/floor/plating, /area/security/vacantoffice/b) @@ -6995,6 +8402,20 @@ }, /turf/open/floor/plating, /area/maintenance/fore) +"apX" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/structure/cable{ + icon_state = "0-4" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Brig Control"; + name = "brig shutters" + }, +/turf/open/floor/plating, +/area/security/warden) "apY" = ( /obj/machinery/light/small{ dir = 1 @@ -7177,6 +8598,27 @@ }, /turf/open/floor/plating, /area/maintenance/fore/secondary) +"aqr" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/brigdoor{ + dir = 1; + name = "Reception Desk"; + req_access_txt = "3" + }, +/obj/machinery/door/window/southleft{ + name = "Reception Desk"; + req_access_txt = "63" + }, +/obj/machinery/door/firedoor, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Brig Control"; + name = "brig shutters" + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) "aqs" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ @@ -7188,6 +8630,17 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/fitness/pool) +"aqt" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable{ + icon_state = "0-8" + }, +/obj/machinery/door/poddoor/preopen{ + id = "Secure Brig Control"; + name = "brig shutters" + }, +/turf/open/floor/plating, +/area/security/warden) "aqu" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -7239,6 +8692,62 @@ /obj/structure/closet/firecloset, /turf/open/floor/plating, /area/maintenance/starboard/fore) +"aqB" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aqC" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aqD" = ( +/obj/structure/sign/warning/electricshock{ + pixel_y = 32 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/machinery/light{ + dir = 1; + light_color = "#d1dfff" + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aqE" = ( +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/effect/turf_decal/tile/red, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aqF" = ( +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) "aqG" = ( /obj/docking_port/stationary/random{ dir = 4; @@ -7247,6 +8756,25 @@ }, /turf/open/space, /area/space/nearstation) +"aqH" = ( +/obj/machinery/light{ + dir = 1; + light_color = "#d1dfff" + }, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aqI" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 9 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/security/processing) "aqJ" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/machinery/door/airlock/external{ @@ -7272,6 +8800,25 @@ /obj/machinery/meter, /turf/open/floor/plating, /area/maintenance/port/fore) +"aqN" = ( +/obj/structure/closet/secure_closet/warden, +/obj/structure/sign/poster/official/ion_rifle{ + pixel_y = 32 + }, +/obj/structure/sign/poster/official/twelve_gauge{ + pixel_x = 32 + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/item/radio/intercom{ + pixel_x = 32; + pixel_y = 20 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) "aqO" = ( /obj/structure/closet, /obj/effect/spawner/lootdrop/maintenance{ @@ -7301,27 +8848,26 @@ /turf/open/floor/plating, /area/maintenance/fore) "aqS" = ( -/obj/machinery/light/small{ - dir = 4 +/obj/effect/turf_decal/tile/red{ + dir = 8 }, -/obj/structure/table, -/obj/machinery/cell_charger, -/obj/item/stock_parts/cell/potato{ - name = "\improper Beepsky's emergency battery" +/obj/machinery/light{ + dir = 8 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/fore) +"aqT" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Security Maintenance"; + req_access_txt = "2" + }, +/obj/structure/cable{ + icon_state = "1-2" }, /turf/open/floor/plating, -/area/security/processing) -"aqT" = ( -/obj/machinery/power/apc{ - areastring = "/area/security/processing"; - dir = 8; - name = "Labor Shuttle Dock APC"; - pixel_x = -24 - }, -/obj/structure/cable, -/obj/structure/cable{ - icon_state = "0-2" - }, +/area/maintenance/fore) +"aqU" = ( +/obj/item/paper/fluff/jobs/security/beepsky_mom, /turf/open/floor/plating, /area/maintenance/fore) "aqV" = ( @@ -7370,9 +8916,9 @@ /turf/open/floor/wood, /area/lawoffice) "arc" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) +/obj/structure/plasticflaps, +/turf/open/floor/plating, +/area/maintenance/fore) "ard" = ( /obj/machinery/door/poddoor/preopen{ id = "lawyer_blast"; @@ -7392,6 +8938,13 @@ "arf" = ( /turf/closed/wall, /area/crew_quarters/dorms) +"arg" = ( +/obj/item/bedsheet/red, +/mob/living/simple_animal/bot/secbot/beepsky{ + name = "Officer Beepsky" + }, +/turf/open/floor/plating, +/area/maintenance/fore) "arh" = ( /obj/machinery/door/airlock/maintenance{ name = "Dormitories Maintenance"; @@ -7416,6 +8969,17 @@ }, /turf/open/floor/wood, /area/crew_quarters/dorms) +"arl" = ( +/obj/machinery/light/small{ + dir = 4 + }, +/obj/structure/table, +/obj/machinery/cell_charger, +/obj/item/stock_parts/cell/potato{ + name = "\improper Beepsky's emergency battery" + }, +/turf/open/floor/plating, +/area/maintenance/fore) "arm" = ( /obj/machinery/light/small{ dir = 1; @@ -7426,6 +8990,19 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/fitness) +"arn" = ( +/obj/machinery/power/apc{ + areastring = "/area/security/processing"; + dir = 8; + name = "Labor Shuttle Dock APC"; + pixel_x = -24 + }, +/obj/structure/cable, +/obj/structure/cable{ + icon_state = "0-2" + }, +/turf/open/floor/plating, +/area/maintenance/fore) "aro" = ( /turf/open/floor/engine{ name = "Holodeck Projector Floor" @@ -7456,6 +9033,15 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/fore) +"ars" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + req_access_txt = "13" + }, +/turf/open/floor/plating, +/area/maintenance/fore) "art" = ( /obj/machinery/light/small{ dir = 1 @@ -7491,6 +9077,38 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/fore) +"ary" = ( +/obj/machinery/power/apc{ + areastring = "/area/security/warden"; + dir = 2; + name = "Brig Control APC"; + pixel_x = 0; + pixel_y = -24 + }, +/obj/machinery/button/door{ + id = "Secure Gate"; + name = "Cell Shutters"; + pixel_x = 6; + pixel_y = -40; + req_access = null; + req_access_txt = "2" + }, +/obj/machinery/button/door{ + id = "Prison Gate"; + name = "Prison Wing Lockdown"; + pixel_x = -6; + pixel_y = -40; + req_access_txt = "2" + }, +/obj/structure/filingcabinet/chestdrawer, +/obj/machinery/light, +/obj/structure/cable, +/obj/machinery/camera{ + c_tag = "Brig Control"; + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) "arz" = ( /obj/item/coin/gold, /obj/item/coin/iron, @@ -7505,6 +9123,35 @@ "arB" = ( /turf/closed/wall/r_wall, /area/hallway/secondary/entry) +"arC" = ( +/obj/structure/disposalpipe/segment, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"arD" = ( +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/structure/closet/secure_closet/brig{ + 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" + }, +/obj/effect/turf_decal/tile/yellow, +/obj/effect/turf_decal/tile/yellow{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/security/brig) "arE" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/turf_decal/tile/yellow{ @@ -7601,6 +9248,14 @@ "arP" = ( /turf/closed/wall, /area/maintenance/fore) +"arQ" = ( +/obj/structure/table, +/obj/item/flashlight/lamp, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) "arR" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/structure/table/wood, @@ -7608,9 +9263,15 @@ /turf/open/floor/plating, /area/security/vacantoffice/b) "arS" = ( -/obj/structure/table/wood, -/turf/open/floor/plating, -/area/security/vacantoffice/b) +/obj/structure/chair{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1; + pixel_x = 0 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) "arT" = ( /turf/open/floor/plasteel, /area/security/vacantoffice/b) @@ -7672,6 +9333,17 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/fore) +"asb" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on{ + dir = 1; + pixel_x = 0 + }, +/obj/machinery/camera{ + c_tag = "Brig Evidence Storage"; + dir = 1 + }, +/turf/open/floor/plasteel/dark, +/area/security/warden) "asc" = ( /obj/structure/cable{ icon_state = "4-8" @@ -7806,6 +9478,76 @@ }, /turf/open/floor/plating, /area/maintenance/fore) +"asp" = ( +/obj/machinery/camera{ + c_tag = "Brig Interrogation"; + dir = 8; + network = list("interrogation") + }, +/obj/machinery/light{ + dir = 4; + light_color = "#e8eaff" + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 28; + pixel_y = 0 + }, +/turf/open/floor/plasteel/dark, +/area/security/brig) +"asq" = ( +/obj/machinery/disposal/bin, +/obj/machinery/light_switch{ + pixel_y = -23 + }, +/obj/structure/reagent_dispensers/peppertank{ + pixel_x = 32; + pixel_y = -32 + }, +/obj/machinery/button/door{ + id = "Secure Brig Control"; + name = "Brig Control Shutters"; + pixel_x = 6; + pixel_y = -40; + req_access = null; + req_access_txt = "2" + }, +/obj/machinery/button/door{ + id = "Cell Interior Shutters"; + name = "Cell Interior Shutters"; + pixel_x = -6; + pixel_y = -40; + req_access_txt = "2" + }, +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 + }, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/turf/open/floor/plasteel/showroomfloor, +/area/security/warden) +"asr" = ( +/obj/machinery/door/airlock/security/glass{ + name = "Prisoner Processing"; + req_access_txt = "2" + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/security/processing) +"ass" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Labor Camp Shuttle Airlock" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/plasteel, +/area/security/processing) "ast" = ( /obj/structure/bed, /obj/item/bedsheet/random, @@ -7818,6 +9560,27 @@ }, /turf/open/floor/wood, /area/crew_quarters/dorms) +"asv" = ( +/obj/machinery/light{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red, +/obj/effect/turf_decal/tile/red{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red{ + dir = 8 + }, +/obj/structure/cable{ + icon_state = "1-2" + }, +/obj/machinery/firealarm{ + dir = 8; + pixel_x = 28; + pixel_y = 0 + }, +/turf/open/floor/plasteel, +/area/security/processing) "asw" = ( /obj/structure/cable{ icon_state = "1-2" @@ -7851,6 +9614,11 @@ "asC" = ( /turf/open/floor/plasteel/airless, /area/space/nearstation) +"asD" = ( +/obj/structure/table/wood, +/mob/living/simple_animal/pet/fox/Renault, +/turf/open/floor/carpet, +/area/crew_quarters/heads/captain) "asE" = ( /turf/closed/wall, /area/hallway/secondary/entry) @@ -7934,13 +9702,6 @@ /obj/structure/closet/secure_closet/chemical, /turf/open/floor/plating, /area/maintenance/fore) -"asU" = ( -/obj/effect/spawner/lootdrop/maintenance{ - lootcount = 8; - name = "8maintenance loot spawner" - }, -/turf/open/floor/plasteel, -/area/security/vacantoffice/b) "asW" = ( /obj/machinery/light/small{ dir = 8 @@ -8051,13 +9812,6 @@ }, /turf/closed/wall, /area/maintenance/port/fore) -"ato" = ( -/obj/machinery/light_switch{ - pixel_y = -23 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/carpet, -/area/crew_quarters/heads/hos) "atp" = ( /obj/machinery/door/airlock/external{ name = "Construction Zone" @@ -8079,24 +9833,10 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) -"ats" = ( -/obj/structure/table/wood, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/machinery/light, -/turf/open/floor/plating, -/area/security/vacantoffice/b) "att" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/crew_quarters/fitness) -"atu" = ( -/obj/machinery/camera{ - c_tag = "Vacant Office B"; - dir = 1 - }, -/obj/structure/table/wood, -/turf/open/floor/plasteel, -/area/security/vacantoffice/b) "atv" = ( /obj/structure/table, /obj/item/shard, @@ -8331,22 +10071,6 @@ }, /turf/open/floor/wood, /area/lawoffice) -"auj" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/security/brig) "auk" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/effect/turf_decal/tile/neutral, @@ -8621,15 +10345,6 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) -"avd" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/external{ - req_access_txt = "13" - }, -/turf/open/floor/plating, -/area/maintenance/fore) "ave" = ( /obj/structure/sign/warning/vacuum/external{ pixel_y = 32 @@ -8820,13 +10535,6 @@ /obj/structure/bedsheetbin/towel, /turf/open/floor/plasteel, /area/crew_quarters/dorms) -"avB" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable{ - icon_state = "0-8" - }, -/turf/open/floor/plating, -/area/ai_monitored/security/armory) "avC" = ( /obj/structure/chair{ dir = 8 @@ -9055,30 +10763,6 @@ }, /turf/open/floor/plating, /area/maintenance/fore) -"awe" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/maintenance/fore) -"awf" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/machinery/atmospherics/pipe/manifold/supply/hidden{ - dir = 1 - }, -/turf/open/floor/plating, -/area/maintenance/fore) "awg" = ( /obj/structure/cable{ icon_state = "4-8" @@ -9257,10 +10941,6 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/dorms) -"aww" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/security/brig) "awx" = ( /obj/structure/cable{ icon_state = "4-8" @@ -9427,18 +11107,6 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/fore) -"awN" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) "awO" = ( /obj/structure/cable{ icon_state = "4-8" @@ -9747,19 +11415,6 @@ }, /turf/open/floor/plating, /area/maintenance/fore) -"axx" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/maintenance/fore) "axy" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -13523,16 +15178,6 @@ dir = 4 }, /area/chapel/main) -"aHp" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/filingcabinet/chestdrawer, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) "aHq" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -14062,11 +15707,6 @@ /obj/structure/table/glass, /turf/open/floor/plasteel/chapel, /area/chapel/main) -"aIF" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/turf/open/floor/plating, -/area/security/warden) "aIH" = ( /obj/structure/table, /obj/item/storage/box/lights/mixed, @@ -21528,10 +23168,6 @@ /obj/structure/table, /turf/open/floor/wood, /area/bridge/meeting_room) -"bbZ" = ( -/obj/structure/table/wood, -/turf/open/floor/carpet, -/area/crew_quarters/heads/captain) "bca" = ( /turf/open/floor/carpet, /area/bridge/meeting_room) @@ -24969,10 +26605,6 @@ }, /turf/open/floor/plating, /area/maintenance/disposal) -"bkA" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) "bkB" = ( /obj/machinery/button/door{ id = "Disposal Exit"; @@ -25604,13 +27236,6 @@ }, /turf/open/floor/plating, /area/maintenance/disposal) -"blT" = ( -/obj/structure/cable{ - icon_state = "2-4" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) "blU" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/wood, @@ -26905,16 +28530,7 @@ /turf/open/floor/plasteel, /area/hallway/primary/central) "boX" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "hopqueue"; - name = "HoP Queue Shutters" - }, -/obj/effect/turf_decal/loading_area{ - dir = 8 - }, +/obj/machinery/holopad, /turf/open/floor/plasteel, /area/hallway/primary/central) "boY" = ( @@ -47396,16 +49012,6 @@ }, /turf/open/floor/plasteel/dark, /area/engine/engine_smes) -"clI" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/main) "clJ" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -47459,15 +49065,6 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) -"clS" = ( -/obj/machinery/atmospherics/pipe/manifold/supply/hidden, -/obj/machinery/rnd/production/techfab/department/security, -/obj/effect/turf_decal/tile/red, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/security/main) "clT" = ( /obj/machinery/portable_atmospherics/canister/nitrogen, /obj/machinery/atmospherics/miner/nitrogen, @@ -47552,13 +49149,6 @@ }, /turf/open/floor/plating, /area/maintenance/aft) -"cml" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) "cmo" = ( /obj/structure/rack, /obj/effect/spawner/lootdrop/maintenance, @@ -48199,10 +49789,6 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/fitness) -"coi" = ( -/obj/machinery/atmospherics/pipe/manifold4w/scrubbers, -/turf/open/floor/plasteel, -/area/security/brig) "con" = ( /turf/open/pool, /area/crew_quarters/fitness/pool) @@ -48390,24 +49976,6 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) -"coS" = ( -/obj/structure/rack, -/obj/item/gun/energy/laser{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/gun/energy/laser, -/obj/item/gun/energy/laser{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/effect/turf_decal/bot, -/obj/structure/window/reinforced{ - dir = 1; - layer = 2.9 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) "coT" = ( /obj/machinery/atmospherics/pipe/simple/general/visible, /obj/machinery/meter, @@ -48454,27 +50022,6 @@ }, /turf/open/space, /area/space/nearstation) -"cpg" = ( -/obj/item/grenade/barrier{ - pixel_x = 4 - }, -/obj/item/grenade/barrier, -/obj/item/grenade/barrier{ - pixel_x = -4 - }, -/obj/structure/table, -/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/ai_monitored/security/armory) "cph" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/simple/green/visible, @@ -48578,15 +50125,6 @@ /obj/machinery/cell_charger, /turf/open/floor/plasteel, /area/engine/engineering) -"cpA" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/structure/chair/office/dark{ - dir = 4 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) "cpC" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /obj/effect/landmark/event_spawn, @@ -48796,39 +50334,6 @@ }, /turf/open/floor/plasteel, /area/engine/engineering) -"cqG" = ( -/obj/structure/rack, -/obj/item/storage/box/rubbershot{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/storage/box/rubbershot{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/storage/box/rubbershot, -/obj/item/storage/box/rubbershot, -/obj/item/storage/box/rubbershot{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/item/storage/box/rubbershot{ - pixel_x = 3; - pixel_y = -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/ai_monitored/security/armory) "cqJ" = ( /obj/structure/lattice/catwalk, /obj/structure/cable{ @@ -50843,28 +52348,6 @@ }, /turf/open/floor/plating, /area/maintenance/port/fore) -"cwM" = ( -/obj/structure/rack, -/obj/item/storage/box/teargas{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/storage/box/flashbangs{ - pixel_x = 3; - pixel_y = -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/ai_monitored/security/armory) "cwT" = ( /obj/machinery/camera{ c_tag = "Arrivals Escape Pod 2"; @@ -50881,16 +52364,6 @@ }, /turf/open/space, /area/space/nearstation) -"cxk" = ( -/obj/structure/cable{ - icon_state = "4-8" - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, -/obj/structure/cable{ - icon_state = "1-4" - }, -/turf/open/floor/plasteel/showroomfloor, -/area/security/warden) "cxn" = ( /obj/structure/lattice, /obj/effect/landmark/carpspawn, @@ -50900,12 +52373,6 @@ /obj/structure/chair/wood/normal, /turf/open/floor/wood, /area/maintenance/bar) -"cxA" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/ai_monitored/security/armory) "cxE" = ( /obj/docking_port/stationary{ dir = 8; @@ -51926,18 +53393,6 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"cBV" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security{ - name = "Security Office"; - req_access_txt = "1" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plasteel, -/area/security/main) "cBZ" = ( /obj/structure/table/wood, /obj/item/clothing/under/burial, @@ -51975,13 +53430,6 @@ }, /turf/open/floor/plating, /area/construction) -"cCh" = ( -/obj/item/bedsheet/red, -/mob/living/simple_animal/bot/secbot/beepsky{ - name = "Officer Beepsky" - }, -/turf/open/floor/plating, -/area/security/processing) "cCi" = ( /turf/closed/wall, /area/security/vacantoffice/b) @@ -53371,6 +54819,10 @@ }, /turf/closed/wall, /area/science/circuit) +"dxs" = ( +/obj/machinery/holopad, +/turf/open/floor/plasteel/showroomfloor, +/area/security/main) "dyS" = ( /obj/effect/turf_decal/tile/green{ dir = 8 @@ -53432,16 +54884,6 @@ /obj/structure/chair/stool/bar, /turf/open/floor/wood, /area/maintenance/bar) -"dLG" = ( -/obj/machinery/door/airlock/security{ - name = "Firing Range"; - req_access_txt = "2" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/security/prison) "dMZ" = ( /obj/structure/sign/poster/official/random{ pixel_y = 32 @@ -53760,12 +55202,6 @@ }, /turf/closed/wall/r_wall, /area/science/mixing) -"fde" = ( -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/security/brig) "feE" = ( /obj/structure/cable{ icon_state = "1-2" @@ -54761,6 +56197,11 @@ /obj/effect/landmark/blobstart, /turf/open/floor/plating, /area/maintenance/starboard/fore) +"jga" = ( +/obj/machinery/vending/snack/random, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/central) "jgm" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -54802,17 +56243,6 @@ /obj/machinery/rnd/production/techfab/department/cargo, /turf/open/floor/plasteel, /area/quartermaster/office) -"jls" = ( -/obj/machinery/door/airlock/security{ - name = "Labor Shuttle"; - req_access_txt = "2" - }, -/obj/structure/cable{ - icon_state = "1-2" - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/security/processing) "jmV" = ( /obj/structure/table/wood/fancy, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -55429,11 +56859,6 @@ }, /turf/open/floor/plasteel, /area/hydroponics) -"lyR" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/turf/open/floor/plating, -/area/security/prison) "lAB" = ( /obj/structure/sign/nanotrasen, /turf/closed/wall, @@ -55684,6 +57109,19 @@ }, /turf/open/floor/plasteel/dark, /area/engine/gravity_generator) +"mOG" = ( +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/security/brig) "mOO" = ( /obj/structure/chair/sofa/left{ dir = 1 @@ -55713,31 +57151,6 @@ /obj/item/clothing/under/color/grey, /turf/open/floor/plating, /area/maintenance/port/aft) -"mPt" = ( -/obj/structure/table, -/obj/machinery/atmospherics/components/unary/vent_pump/on, -/obj/item/clothing/glasses/sunglasses{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/clothing/glasses/sunglasses{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/clothing/ears/earmuffs{ - pixel_x = -3; - pixel_y = -2 - }, -/obj/item/clothing/ears/earmuffs{ - pixel_x = -3; - pixel_y = -2 - }, -/obj/machinery/firealarm{ - dir = 8; - pixel_x = 24 - }, -/turf/open/floor/plasteel, -/area/security/prison) "mPE" = ( /obj/machinery/chem_dispenser/drinks, /obj/structure/table/wood, @@ -56202,6 +57615,13 @@ }, /turf/open/floor/wood, /area/maintenance/bar) +"oKK" = ( +/obj/machinery/door/window/southleft{ + name = "Brig Operations"; + req_one_access_txt = "4; 1" + }, +/turf/open/floor/plasteel, +/area/security/brig) "oLl" = ( /obj/structure/cable{ icon_state = "4-8" @@ -56265,10 +57685,6 @@ }, /turf/open/floor/wood, /area/library) -"pfm" = ( -/obj/structure/sign/poster/official/twelve_gauge, -/turf/closed/wall/r_wall, -/area/ai_monitored/security/armory) "pgf" = ( /turf/open/floor/mineral/titanium/blue, /area/crew_quarters/dorms) @@ -56448,6 +57864,13 @@ }, /turf/open/floor/plating, /area/maintenance/disposal) +"pNu" = ( +/obj/structure/window/reinforced{ + dir = 4 + }, +/obj/structure/window/reinforced, +/turf/open/floor/plasteel, +/area/security/brig) "pPi" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 @@ -56481,6 +57904,16 @@ }, /turf/open/floor/plasteel/dark, /area/hallway/primary/central) +"pRl" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 4 + }, +/obj/structure/cable{ + icon_state = "4-8" + }, +/obj/machinery/holopad, +/turf/open/floor/plasteel, +/area/security/prison) "pRs" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 5 @@ -56936,6 +58369,15 @@ }, /turf/open/floor/plasteel/dark, /area/bridge/meeting_room) +"rTU" = ( +/obj/machinery/door/window/northleft{ + dir = 4; + name = "Brig Operations"; + req_access_txt = "0"; + req_one_access_txt = "4; 1" + }, +/turf/open/floor/plasteel, +/area/security/brig) "rXl" = ( /obj/structure/chair/office/light, /obj/machinery/firealarm{ @@ -57019,16 +58461,6 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/plating, /area/maintenance/department/medical/morgue) -"spu" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) "sqp" = ( /obj/structure/cable{ icon_state = "4-8" @@ -57367,19 +58799,6 @@ }, /turf/open/floor/plating, /area/maintenance/starboard/aft) -"ttX" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Firing Range"; - dir = 1 - }, -/turf/open/floor/plasteel, -/area/security/prison) "tur" = ( /obj/item/restraints/handcuffs/fake, /turf/open/floor/plating, @@ -57567,16 +58986,6 @@ }, /turf/open/floor/plasteel, /area/hallway/primary/central) -"uaj" = ( -/obj/effect/turf_decal/tile/red{ - dir = 4 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) "uaw" = ( /obj/machinery/power/apc{ areastring = "/area/storage/art"; @@ -57680,13 +59089,6 @@ dir = 8 }, /area/crew_quarters/fitness/pool) -"unW" = ( -/obj/effect/landmark/event_spawn, -/obj/structure/cable{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, -/area/security/brig) "uoB" = ( /obj/structure/table/reinforced, /obj/item/multitool, @@ -58400,16 +59802,6 @@ /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, /turf/open/floor/plating, /area/maintenance/starboard/fore) -"wIG" = ( -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 8 - }, -/obj/effect/turf_decal/tile/red, -/turf/open/floor/plasteel, -/area/security/brig) "wKe" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ @@ -58700,13 +60092,6 @@ /obj/effect/landmark/start/assistant, /turf/open/floor/plasteel, /area/crew_quarters/fitness) -"xzj" = ( -/obj/machinery/light{ - dir = 1; - light_color = "#d1dfff" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/fore) "xAk" = ( /obj/structure/chair/stool{ pixel_y = 8 @@ -58926,10 +60311,6 @@ /obj/item/folder/blue, /turf/open/floor/plasteel/dark, /area/hallway/primary/central) -"yiY" = ( -/obj/structure/sign/poster/official/ion_rifle, -/turf/closed/wall/r_wall, -/area/ai_monitored/security/armory) (1,1,1) = {" cNd @@ -80875,10 +82256,10 @@ aaa aaa aaa aaa -aaa -aaa -aag -avY +aaf +arP +ars +avZ axs ayD nez @@ -81134,7 +82515,7 @@ aaa aaa aaf arP -avd +ave avZ axr ayE @@ -81388,10 +82769,10 @@ aaa aaa aaa aaa -aaa -aaf arP -ave +arP +arP +cya awa axu ayH @@ -81646,9 +83027,9 @@ aaa aaa aaa arP -arP -arP -cya +asQ +aqR +aqR avZ axt ayG @@ -81903,10 +83284,10 @@ aaa aaa aaa arP -asQ +asP aqR aqR -avZ +awb axt ayG azK @@ -82156,14 +83537,14 @@ aaa aiU anN aiU -aaa -aaa -aaa +aaf +aaf +aaf arP -asP -aqR -aqR -awb +arP +arP +arP +avZ axt ayG azJ @@ -82413,14 +83794,14 @@ aaa aiU alp aiU -aaf -aaf -aaf arP arP arP arP -avZ +asR +aqR +arP +awc axt ayG azM @@ -82662,7 +84043,7 @@ aay xls aiT aiT -aiV +aiT akG cxJ aiU @@ -82670,14 +84051,14 @@ amK aiU cxP aoq -aiV -aiT -aiT arP -asR +aqU +arg +arP +asT aqR -arP -awc +avf +awb axt ayG azL @@ -82920,20 +84301,20 @@ ybj aiT ajs akb +ahq akI -akI -amc -aiT -ant +ahU +aiU +aiD akI aos -aiT -apR -cCh arP -asT aqR -avf +arl +arP +asS +aqR +arP awb axt ayG @@ -83173,23 +84554,23 @@ agg abc dCV idK -ttX -aiU -ajr -aka -akH -alq -amb -aiU -ans -alq -aor -apb -alp -aqS +age +agr +agu +agN +ahr +ahD +ahV +agr +aiE +aiK +aiN +arP +arc +arP +arP +arP arP -asS -aqR arP awd axv @@ -83431,25 +84812,25 @@ abc laq kdP mGw -jls -aju -akd -akK -als -ame -amM -anv -als -aou -aiT -aiT -aiT -arP -arP -arP -arP -awf -axx +akm +akr +agQ +ahs +ahP +apw +asr +aiF +aqI +asv +aqT +apS +arn +apS +apS +apS +apS +ajw +ajy ayJ ayJ aBi @@ -83673,9 +85054,9 @@ aaf aai aai abf -aat +aaK jRw -abx +aaU acd acC ada @@ -83683,29 +85064,29 @@ adF aef aeM afz -dLG +ail aav vIi fsj -mPt -lyR -ajt -akc -akJ -alr -amd -amL -anu -alq -aot -apc -apS -aqT -apS -apS -apS -apS -awe +agl +aai +agv +amM +aiV +aiV +aiV +aiV +aiV +ass +aiT +arP +arP +arP +arP +arP +arP +arP +ajx axw ayI azO @@ -83940,27 +85321,27 @@ adH aei aeO afJ -aai -aai -aai -aai -aai -aai -ajw -akf aiX aiX aiX aiX -aiV -anP -aiT -cCi -cCi -cCi -cCi -cCi +aiX +aiX +ajX +akK +agj +amL +apK +amX +aiX +anz +aqS cCi +apU +ajd +arU +apU +apU cCi awg axy @@ -84196,26 +85577,26 @@ acY adG aeh aeO -afI -agl -agL -ags -ags -aiB -acd -ajv -ake -agj -afL -aez -ahU +ado +afq +afH +agY +ahS +aiI +afn +akD +alx +alZ +amO +arQ +aor aiX anz aov cCi air aqY -arU +arT apU apU cCi @@ -84452,20 +85833,20 @@ acd acd acd aek -aeU +acp +aav +agO afI -acd -agI -ahq -ahV -aho -acd -ajy -akh -afK -ajc -afM -afN +ahb +ahZ +aiL +ajv +akg +aly +anP +and +arS +anq aiX anz aov @@ -84473,8 +85854,8 @@ cCi aqX arR asj -asU -ats +arT +ajr atY auo axy @@ -84710,28 +86091,28 @@ add adF aej aeQ -afD -acd -agJ -ahp -ahp -aiC -adF -ajx -akg +adp +ahv +afK +aht +aid +aiM +ajz +alz +apb agj -adL -ahr -aih +amL +asp +aou aiX anz aov ape arT aqV -arS +ajf apU -atu +ajt cCi awg axy @@ -84966,22 +86347,22 @@ abM acG adI aem -aeO +pRl afG -acd -agK -agK -ail -aiE -aiW -ajA -akj +aim +afL +ahu +aie +aiO +afn +agL +akT agj agj agj aiX aiX -anQ +aiJ aov cCi apU @@ -85227,17 +86608,17 @@ aeO afF agj agj +afn +afn agj agj -agj -agj -ajz -aki -akM -alv -amf +agM +akp +amh +amB +anx amQ -anw +aqB anz aov cCi @@ -85481,20 +86862,20 @@ acd acd aen aeO -afH +ahE +afq +aii +afM +aig +agp agj -agM -ahu -ahW -aiD -agj -auj akl -akO -fde -fde +akM +ami +amP +anM seP -anw +aqC anz aox cCi @@ -85737,20 +87118,20 @@ acH adc acd aeo +aev aeS -afH -agj -agN -aht -ain -aid -agj -aiZ -akk -akN -alw -amg -amR +ahw +ajg +afM +akU +oKK +alf +alA +akP +akQ +amn +amn +amS anz anR aow @@ -85995,20 +87376,20 @@ ade adJ aep aeT -afH -agj -ahs -ahP -ahP -aiF -agj -aja -ajG -akQ -agj -agj -amS -anx +ahE +aim +ajL +akj +rTU +pNu +alg +alB +akV +amm +amT +anB +amR +aqC anz aov aph @@ -86254,18 +87635,18 @@ aeq aeV acd agj -ahm -ahD -aiw -aiO agj -ajD -akm -akP -aly -amh -amR -anw +ahG +ajY +ajY +ako +akt +amj +amo +amP +aop +seP +aqC anz aov aph @@ -86512,16 +87893,16 @@ afC agk agF agP -agP -agP -agP -aiz -ajg -akl -akR -fde -fde -seP +ajJ +agT +all +all +aku +amk +akQ +amn +amn +amS anz anz aov @@ -86768,18 +88149,18 @@ aer afB agi agD -agO -agO -agO -agO +afN +ajK +aiH +akF aiy -ajb -ajF -akN -alw -ami +akv +aml +amm +amT +anQ amR -anw +aqC anz aov api @@ -87023,20 +88404,20 @@ aaZ aaZ aaZ aaZ -aaZ -agn -agR -agn -agR -agn -ajc -ajI -ako -akQ -agj -agj -amS +aiX +aiX +afS +ahx +aiX +aiQ +ajB +akx +akM +amx any +arD +seP +aqC anz aov aph @@ -87274,26 +88655,26 @@ aaf aaf aaT aaf +abx aaZ -abm -cpg -acv -adi -adi -yiY -aeW -agQ -ahv -ahQ -aiI -aiH -ajB -akm -akP -aly -amj -amR -anz +aeF +ack +agJ +acT +adK +aew +afT +ahy +aij +aiR +ajc +akz +als +akQ +amn +amn +amS +aqD anz aov aph @@ -87530,27 +88911,27 @@ aaa aaf aaf aaT -aaa +gXs +abG aaZ -abH +aeW acl -cxA -acL -adi -pfm -agp -agT -ahx -ahS -aiK +agJ +adg +adL +adL +ago +ahz +aim +aiW ajc -ajI -akl -akT -unW -fde -seP -anw +akz +akW +alt +amp +aot +apR +aqE anz old apk @@ -87787,27 +89168,27 @@ aaa aaf aaf abY -aaa +gXs +abG aaZ -abn -ack -adk -adK -cqG aeX -ago -agS -agQ -ahR -aiJ -ajc -ajI -akk -akS -alw -amk -amR -anw +acm +agK +aaZ +aaZ +aex +agt +aaZ +aaZ +aaZ +alm +mOG +akW +alv +amI +alg +alv +aqE anS aoy apj @@ -88044,27 +89425,27 @@ aaa aaf aaf aaT -aaa +gXs +abG aaZ -abJ -ack -acM -adQ -cwM -aeZ -agr -agU -ahy -ahX -aiL -ajc -ajI -akq -akQ -agj -agj -aiX -anx +aeY +acn +agR +ahm +ahA +aeE +agz +ahW +ain +aiZ +ajC +akC +akX +alw +amJ +aoY +apR +aqE anz aoz apm @@ -88109,7 +89490,7 @@ aDt aEO aGc vOU -aKG +jga dml dml oNz @@ -88301,26 +89682,26 @@ aaa aaf aaf aaT -aaa +gXs +abG aaZ -abI -ack -coS -aet -cxA -aeY -agt -agt -ahz -aie -aiN -ajc -ajI -akp -akU -alz -aml -amT +aeZ +aco +agS +aho +ahX +afb +agH +agH +aip +aja +ajD +akH +agn +agn +amN +aoZ +apT anw anz cXU @@ -88558,27 +89939,27 @@ aaa aaf aaf abY -aaa +gXs +abG aaZ -abQ -ack -adj -arc -blT -agq -cml -agV -cxk -aig -aiM -ajc -ajI -akp -akV -alB -amn -amV -anw +afc +aco +agU +ahp +ahY +afd +afd +ahB +aiq +ajb +ajF +akN +akY +alE +amU +apH +apX +aqC anz gfC aod @@ -88814,28 +90195,28 @@ aaf aaa aaf aaf -abY -aaa +adR +abo +adR aaZ -abN -ack -bkA -acF -aes -avB -amN -agt -awN -aHp -aIF -ajc -ajI -akp -akQ -alA -amU -aiX -anw +aaZ +abI +acM +adh +adM +afe +agI +ahQ +ait +aje +ajG +alj +akZ +alM +amV +apc +aqr +aqC anT aoA apn @@ -89071,28 +90452,28 @@ aaf aaa aaf aaf -aaT -aaf +adR +aaY +abJ +abR aaZ -aci -acm -cpA +acq +ahX +adi +adP +ahK +ahK +ahR +aiv adg -aeu -alt -agu -agt -ahB -aij -agn -aje -ajJ -akr -akX +ajI alC -wIG -amX -spu +ala +alN +amW +apv +aqt +aqF anz aoB aod @@ -89328,28 +90709,28 @@ aaf aaf aaf aaa -adR abo +abk +abk +abk +aaZ +agq +agV +aaZ +aaZ +aih +agX aaZ aaZ aaZ -acT -adl -aaZ -aaZ +ajN +amc +alo +alY +ans +ary agn -agW -ahE -aii -agn -ajd -ajI -ahY -akW -aiG -amo -amW -uaj +anA anz gfC aod @@ -89586,27 +90967,27 @@ aaf aaf aaa adR -abP -aco -acO -abl abO +dxs abO -afc +abV +ags +ags +adj afQ -agw -agY -ahA -ahZ +afr +akc +aik +akh adR -aiQ -ajI -akt -akQ -agj -agj -aiX -anw +aiG +amf +anr +aqN +arC +asq +agn +anA anz aoD aod @@ -89849,21 +91230,21 @@ abO abO abO abO -afb +adk abo -afg -ahb -ahG -aik -cBV -ajf -ajK -aks -akY -aly -amj -aiX -anw +afD +afU +aju +aki +akk +akq +amq +agn +amb +ant +agn +agn +anA anz aoC aod @@ -90100,27 +91481,27 @@ aaa aaf aaa adR -abO -acq -acq -acq -acq -aew -afe -afS +abl +abN +abN +abN +abN +acO +adl +aet agy aha ahC aia aiP -aiR -coi -akv -ala -aww -afM -aiX -xzj +aka +akE +alq +amd +anu +asb +agn +aqH anz aoF apo @@ -90357,26 +91738,26 @@ aaf aaf aaf abo -abO -acp +abm +abP +abS +abS +abS acP -acP -acP -aev -afd +adm afR agx agZ ahI -aim +aiw adR -aiG -ajL -aku -akS -alw -amp -aiX +ake +ame +aaQ +amg +anv +apQ +agn anA anz aoE @@ -90412,7 +91793,7 @@ aYo aZV bao baP -bbZ +asD bcP cBo bgS @@ -90614,26 +91995,26 @@ aaa aaa aaf adR -abR -abP -abP -abP -abP +abn +abH +abn +abn +abn adR adR adR agA afU ahF -aip +aiz adR -aiX -ajN -akx -aiX -aiX -aiX -aiX +akf +akJ +alr +agn +agn +agn +agn anC anU anC @@ -90873,16 +92254,16 @@ aaf abq abq abq -abr -abr +abT +abW abq abq aff -afT -agz -ahb +aeU +ajA +akd ahF -clI +aiB abp ajh ajM @@ -91128,18 +92509,18 @@ aaa aaa aaf abq -abT +adN +aeu +aez +aci acs acR -ado -adN -aex afh afV agB ahd ahI -clS +akO abp ajj ajP @@ -91384,19 +92765,19 @@ aaf aaf aaf aaf -abr -abS +aaL +adO acr acQ adn -adM +agw abq afg afU afU ahc ahH -aiq +akR abp aji ajO @@ -91641,19 +93022,19 @@ aaa aaa aaa aaf +aaM abr -abV -acu -acS -adp -adP -aey +abQ +abU +acj +acv +agW afj afX agC ahf -ahK -ait +aks +akS abp ajl ajR @@ -91898,12 +93279,12 @@ aaf aaf aaf aaf -abr -abU +aaO +adQ act acu acu -ato +acF abq afi afW @@ -92156,18 +93537,18 @@ aaa aaa aaf abq -abW -abk -acj -acn -adh -adm +aes +aey +aeD +afs +acL +acS afk afZ agE ahh ahM -aiv +aiC abp aiY ajE diff --git a/code/__DEFINES/antagonists.dm b/code/__DEFINES/antagonists.dm index 145055206c..ea380cf49b 100644 --- a/code/__DEFINES/antagonists.dm +++ b/code/__DEFINES/antagonists.dm @@ -1,3 +1,6 @@ +#define TRAITOR_HUMAN /datum/traitor_class/human/freeform +#define TRAITOR_AI /datum/traitor_class/ai + #define NUKE_RESULT_FLUKE 0 #define NUKE_RESULT_NUKE_WIN 1 #define NUKE_RESULT_CREW_WIN 2 diff --git a/code/__HELPERS/game.dm b/code/__HELPERS/game.dm index 034b5d1825..7703b13018 100644 --- a/code/__HELPERS/game.dm +++ b/code/__HELPERS/game.dm @@ -425,7 +425,7 @@ candidates -= M /proc/pollGhostCandidates(Question, jobbanType, datum/game_mode/gametypeCheck, be_special_flag = 0, poll_time = 300, ignore_category = null, flashwindow = TRUE) - var/datum/element/ghost_role_eligibility/eligibility = SSdcs.GetElement(/datum/element/ghost_role_eligibility) + var/datum/element/ghost_role_eligibility/eligibility = SSdcs.GetElement(list(/datum/element/ghost_role_eligibility)) var/list/candidates = eligibility.get_all_ghost_role_eligible() return pollCandidates(Question, jobbanType, gametypeCheck, be_special_flag, poll_time, ignore_category, flashwindow, candidates) diff --git a/code/controllers/subsystem/jukeboxes.dm b/code/controllers/subsystem/jukeboxes.dm index 2b227e9cab..3ebeaf71ea 100644 --- a/code/controllers/subsystem/jukeboxes.dm +++ b/code/controllers/subsystem/jukeboxes.dm @@ -103,7 +103,7 @@ SUBSYSTEM_DEF(jukeboxes) for(var/mob/M in GLOB.player_list) if(!M.client) continue - if(!(M.client.prefs.toggles & SOUND_INSTRUMENTS)) + if(!(M.client.prefs.toggles & SOUND_INSTRUMENTS) || !M.can_hear()) M.stop_sound_channel(jukeinfo[2]) continue diff --git a/code/controllers/subsystem/processing/quirks.dm b/code/controllers/subsystem/processing/quirks.dm index 10655981e5..5aeaf43bab 100644 --- a/code/controllers/subsystem/processing/quirks.dm +++ b/code/controllers/subsystem/processing/quirks.dm @@ -85,7 +85,7 @@ PROCESSING_SUBSYSTEM_DEF(quirks) our_quirks -= i cut += i pointscut += quirk_points_by_name(i) - if (pointscut >= 0) //with how it works, it needs to be above zero, not below, as points for positive is positive, and negative is negative, we only want it to break if it's above zero, ie. we cut more positive than negative + if (pointscut >= 0) break /* //Code to automatically reduce positive quirks until balance is even. var/points_used = total_points(our_quirks) @@ -102,7 +102,7 @@ PROCESSING_SUBSYSTEM_DEF(quirks) */ //Nah, let's null all non-neutrals out. - if (pointscut != 0)// only if the pointscutting didn't work. + if (pointscut < 0)// only if the pointscutting didn't work. if(cut.len) for(var/i in our_quirks) if(quirk_points_by_name(i) != 0) diff --git a/code/controllers/subsystem/vote.dm b/code/controllers/subsystem/vote.dm index ac0acfb61d..e7e5754f6b 100644 --- a/code/controllers/subsystem/vote.dm +++ b/code/controllers/subsystem/vote.dm @@ -443,7 +443,7 @@ SUBSYSTEM_DEF(vote) var/admin = FALSE var/ckey = ckey(initiator_key) - if(GLOB.admin_datums[ckey]) + if(GLOB.admin_datums[ckey] || initiator_key == "server") admin = TRUE if(next_allowed_time > world.time && !admin) diff --git a/code/datums/beam.dm b/code/datums/beam.dm index d97ee9a773..2622b6ae39 100644 --- a/code/datums/beam.dm +++ b/code/datums/beam.dm @@ -83,6 +83,7 @@ elements.Cut() /datum/beam/Destroy() + finished = TRUE Reset() target = null origin = null @@ -100,7 +101,7 @@ var/length = round(sqrt((DX)**2+(DY)**2)) //hypotenuse of the triangle formed by target and origin's displacement for(N in 0 to length-1 step 32)//-1 as we want < not <=, but we want the speed of X in Y to Z and step X - if(QDELETED(src) || finished) + if(finished) break var/obj/effect/ebeam/X = new beam_type(origin_oldloc) X.owner = src diff --git a/code/datums/components/uplink.dm b/code/datums/components/uplink.dm index a8e03946b6..e73465d785 100644 --- a/code/datums/components/uplink.dm +++ b/code/datums/components/uplink.dm @@ -28,7 +28,7 @@ GLOBAL_LIST_EMPTY(uplinks) var/compact_mode = FALSE var/debug = FALSE -/datum/component/uplink/Initialize(_owner, _lockable = TRUE, _enabled = FALSE, datum/game_mode/_gamemode, starting_tc = 20, datum/ui_state/_checkstate) +/datum/component/uplink/Initialize(_owner, _lockable = TRUE, _enabled = FALSE, datum/game_mode/_gamemode, starting_tc = 20, datum/ui_state/_checkstate, datum/traitor_class/traitor_class) if(!isitem(parent)) return COMPONENT_INCOMPATIBLE @@ -47,7 +47,11 @@ GLOBAL_LIST_EMPTY(uplinks) RegisterSignal(parent, COMSIG_PEN_ROTATED, .proc/pen_rotation) GLOB.uplinks += src - uplink_items = get_uplink_items(gamemode, TRUE, allow_restricted) + var/list/filters = list() + if(istype(traitor_class)) + filters = traitor_class.uplink_filters + starting_tc = traitor_class.TC + uplink_items = get_uplink_items(gamemode, TRUE, allow_restricted, filters) if(_owner) owner = _owner diff --git a/code/datums/diseases/transformation.dm b/code/datums/diseases/transformation.dm index 36c7d70f3c..430b7e07b0 100644 --- a/code/datums/diseases/transformation.dm +++ b/code/datums/diseases/transformation.dm @@ -32,16 +32,16 @@ ..() switch(stage) if(1) - if (prob(stage_prob) && stage1) + if (prob(stage_prob) && length(stage1)) to_chat(affected_mob, pick(stage1)) if(2) - if (prob(stage_prob) && stage2) + if (prob(stage_prob) && length(stage2)) to_chat(affected_mob, pick(stage2)) if(3) - if (prob(stage_prob*2) && stage3) + if (prob(stage_prob*2) && length(stage3)) to_chat(affected_mob, pick(stage3)) if(4) - if (prob(stage_prob*2) && stage4) + if (prob(stage_prob*2) && length(stage4)) to_chat(affected_mob, pick(stage4)) if(5) do_disease_transformation(affected_mob) @@ -162,7 +162,7 @@ desc = "This disease, actually acute nanomachine infection, converts the victim into a cyborg." severity = DISEASE_SEVERITY_BIOHAZARD visibility_flags = 0 - stage1 = list() + stage1 = null stage2 = list("Your joints feel stiff.", "Beep...boop..") stage3 = list("Your joints feel very stiff.", "Your skin feels loose.", "You can feel something move...inside.") stage4 = list("Your skin feels very loose.", "You can feel... something...inside you.") @@ -195,7 +195,7 @@ desc = "This disease changes the victim into a xenomorph." severity = DISEASE_SEVERITY_BIOHAZARD visibility_flags = 0 - stage1 = list() + stage1 = null stage2 = list("Your throat feels scratchy.", "Kill...") stage3 = list("Your throat feels very scratchy.", "Your skin feels tight.", "You can feel something move...inside.") stage4 = list("Your skin feels very tight.", "Your blood boils!", "You can feel... something...inside you.") diff --git a/code/datums/elements/ghost_role_eligibility.dm b/code/datums/elements/ghost_role_eligibility.dm index d04cf36138..28567c579b 100644 --- a/code/datums/elements/ghost_role_eligibility.dm +++ b/code/datums/elements/ghost_role_eligibility.dm @@ -42,7 +42,7 @@ return candidates /mob/proc/can_reenter_round(silent = FALSE) - var/datum/element/ghost_role_eligibility/eli = SSdcs.GetElement(/datum/element/ghost_role_eligibility) + var/datum/element/ghost_role_eligibility/eli = SSdcs.GetElement(list(/datum/element/ghost_role_eligibility)) return eli.can_reenter_round(src,silent) /datum/element/ghost_role_eligibility/proc/can_reenter_round(var/mob/M,silent = FALSE) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 29bb694a6f..edd5c25e2e 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -256,9 +256,11 @@ remove_rev() SSticker.mode.update_cult_icons_removed(src) -/datum/mind/proc/equip_traitor(employer = "The Syndicate", silent = FALSE, datum/antagonist/uplink_owner) +/datum/mind/proc/equip_traitor(datum/traitor_class/traitor_class, silent = FALSE, datum/antagonist/uplink_owner) if(!current) return + if(!traitor_class) + traitor_class = GLOB.traitor_classes[TRAITOR_HUMAN] var/mob/living/carbon/human/traitor_mob = current if (!istype(traitor_mob)) return @@ -306,21 +308,21 @@ if (!uplink_loc) if(!silent) - to_chat(traitor_mob, "Unfortunately, [employer] wasn't able to get you an Uplink.") + to_chat(traitor_mob, "Unfortunately, [traitor_class.employer] wasn't able to get you an Uplink.") . = 0 else . = uplink_loc - var/datum/component/uplink/U = uplink_loc.AddComponent(/datum/component/uplink, traitor_mob.key) + var/datum/component/uplink/U = uplink_loc.AddComponent(/datum/component/uplink, traitor_mob.key,traitor_class) if(!U) CRASH("Uplink creation failed.") U.setup_unlock_code() if(!silent) if(uplink_loc == R) - to_chat(traitor_mob, "[employer] has cunningly disguised a Syndicate Uplink as your [R.name]. Simply dial the frequency [format_frequency(U.unlock_code)] to unlock its hidden features.") + to_chat(traitor_mob, "[traitor_class.employer] has cunningly disguised a Syndicate Uplink as your [R.name]. Simply dial the frequency [format_frequency(U.unlock_code)] to unlock its hidden features.") else if(uplink_loc == PDA) - to_chat(traitor_mob, "[employer] has cunningly disguised a Syndicate Uplink as your [PDA.name]. Simply enter the code \"[U.unlock_code]\" into the ringtone select to unlock its hidden features.") + to_chat(traitor_mob, "[traitor_class.employer] has cunningly disguised a Syndicate Uplink as your [PDA.name]. Simply enter the code \"[U.unlock_code]\" into the ringtone select to unlock its hidden features.") else if(uplink_loc == P) - to_chat(traitor_mob, "[employer] has cunningly disguised a Syndicate Uplink as your [P.name]. Simply twist the top of the pen [U.unlock_code] from its starting position to unlock its hidden features.") + to_chat(traitor_mob, "[traitor_class.employer] has cunningly disguised a Syndicate Uplink as your [P.name]. Simply twist the top of the pen [U.unlock_code] from its starting position to unlock its hidden features.") if(uplink_owner) uplink_owner.antag_memory += U.unlock_note + "
" diff --git a/code/datums/mutations/actions.dm b/code/datums/mutations/actions.dm index 9074b4e0c5..e3ee336097 100644 --- a/code/datums/mutations/actions.dm +++ b/code/datums/mutations/actions.dm @@ -40,7 +40,7 @@ name = "Fire Breath" desc = "You can breathe fire at a target." school = "evocation" - charge_max = 1200 + charge_max = 600 clothes_req = FALSE range = 20 base_icon_state = "fireball" diff --git a/code/datums/traits/good.dm b/code/datums/traits/good.dm index f6ac0e26af..23fd75f982 100644 --- a/code/datums/traits/good.dm +++ b/code/datums/traits/good.dm @@ -108,10 +108,10 @@ var/mob/living/carbon/human/H = quirk_holder var/obj/item/choice_beacon/music/B = new(get_turf(H)) H.put_in_hands(B) - H.equip_to_slot(B, SLOT_IN_BACKPACK) + H.equip_to_slot_if_possible(B, SLOT_IN_BACKPACK) var/obj/item/musicaltuner/musicaltuner = new(get_turf(H)) H.put_in_hands(musicaltuner) - H.equip_to_slot(musicaltuner, SLOT_IN_BACKPACK) + H.equip_to_slot_if_possible(musicaltuner, SLOT_IN_BACKPACK) H.regenerate_icons() /datum/quirk/photographer diff --git a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm index 36b81afc26..e0ad2b8bbc 100644 --- a/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm +++ b/code/game/gamemodes/dynamic/dynamic_rulesets_midround.dm @@ -34,7 +34,7 @@ living_players = trim_list(mode.current_players[CURRENT_LIVING_PLAYERS]) living_antags = trim_list(mode.current_players[CURRENT_LIVING_ANTAGS]) list_observers = trim_list(mode.current_players[CURRENT_OBSERVERS]) - var/datum/element/ghost_role_eligibility/eligibility = SSdcs.GetElement(/datum/element/ghost_role_eligibility) + var/datum/element/ghost_role_eligibility/eligibility = SSdcs.GetElement(list(/datum/element/ghost_role_eligibility)) ghost_eligible = trim_list(eligibility.get_all_ghost_role_eligible()) /datum/dynamic_ruleset/midround/proc/trim_list(list/L = list()) diff --git a/code/game/gamemodes/objective.dm b/code/game/gamemodes/objective.dm index a4b1f68265..b42b41aba4 100644 --- a/code/game/gamemodes/objective.dm +++ b/code/game/gamemodes/objective.dm @@ -1163,12 +1163,17 @@ GLOBAL_LIST_EMPTY(possible_sabotages) var/payout = 0 var/payout_bonus = 0 var/area/dropoff = null + var/static/list/blacklisted_areas = typecacheof(list(/area/ai_monitored/turret_protected, + /area/solar/, + /area/ruin/, //thank you station space ruins + /area/science/test_area/, + /area/shuttle/)) /datum/objective/contract/proc/generate_dropoff() // Generate a random valid area on the station that the dropoff will happen. var/found = FALSE while(!found) var/area/dropoff_area = pick(GLOB.sortedAreas) - if(dropoff_area && is_station_level(dropoff_area.z) && !dropoff_area.outdoors && !istype(dropoff_area, /area/shuttle/)) + if(dropoff_area && is_station_level(dropoff_area.z) && !dropoff_area.outdoors && !is_type_in_typecache(dropoff_area, blacklisted_areas)) dropoff = dropoff_area found = TRUE diff --git a/code/game/machinery/computer/robot.dm b/code/game/machinery/computer/robot.dm index aad375a610..9356a8e933 100644 --- a/code/game/machinery/computer/robot.dm +++ b/code/game/machinery/computer/robot.dm @@ -115,10 +115,10 @@ if(src.allowed(usr)) var/mob/living/silicon/robot/R = locate(href_list["stopbot"]) in GLOB.silicon_mobs if(can_control(usr, R)) - var/choice = input("Are you certain you wish to [R.locked_down? "lock down" : "release"] [R.name]?") in list("Confirm", "Abort") + var/choice = input("Are you certain you wish to [!R.locked_down ? "lock down" : "release"] [R.name]?") in list("Confirm", "Abort") if(choice == "Confirm" && can_control(usr, R) && !..()) - message_admins("[ADMIN_LOOKUPFLW(usr)] [R.locked_down? "locked down" : "released"] [key_name(R, R.client)][ADMIN_LOOKUPFLW(R)]!") - log_game("[key_name(usr)] [R.locked_down? "locked down" : "released"] [key_name(R)]!") + message_admins("[ADMIN_LOOKUPFLW(usr)] [!R.locked_down ? "locked down" : "released"] [key_name(R, R.client)][ADMIN_LOOKUPFLW(R)]!") + log_game("[key_name(usr)] [!R.locked_down ? "locked down" : "released"] [key_name(R)]!") R.SetLockdown(!R.locked_down) to_chat(R, "[!R.locked_down ? "Your lockdown has been lifted!" : "You have been locked down!"]") if(R.connected_ai) diff --git a/code/game/machinery/magnet.dm b/code/game/machinery/magnet.dm index 50edbe5891..c4494b822f 100644 --- a/code/game/machinery/magnet.dm +++ b/code/game/machinery/magnet.dm @@ -316,7 +316,7 @@ if("togglemoving") moving = !moving if(moving) - spawn() MagnetMove() + INVOKE_ASYNC(src, .proc/MagnetMove) updateUsrDialog() @@ -325,7 +325,7 @@ if(looping) return - while(moving && rpath.len >= 1) + while(moving && length(rpath) >= 1) if(stat & (BROKEN|NOPOWER)) break diff --git a/code/game/machinery/recycler.dm b/code/game/machinery/recycler.dm index a2c128437f..dc9f280e48 100644 --- a/code/game/machinery/recycler.dm +++ b/code/game/machinery/recycler.dm @@ -8,7 +8,7 @@ layer = ABOVE_ALL_MOB_LAYER // Overhead density = TRUE circuit = /obj/item/circuitboard/machine/recycler - var/safety_mode = FALSE // Temporarily stops machine if it detects a mob + var/safety_mode = FALSE // Temporarily stops machine if it detects a mob, or upon deconstruction. var/icon_name = "grinder-o" var/blood = 0 var/eat_dir = WEST @@ -24,6 +24,10 @@ update_icon() req_one_access = get_all_accesses() + get_all_centcom_access() +/obj/machinery/recycler/deconstruct(disassembled = TRUE) + safety_mode = TRUE //to stop stock parts and circuit from being deleted. + return ..() + /obj/machinery/recycler/RefreshParts() var/amt_made = 0 var/mat_mod = 0 @@ -97,18 +101,14 @@ . = ..() /obj/machinery/recycler/proc/eat(atom/AM0, sound=TRUE) - if(stat & (BROKEN|NOPOWER)) - return - if(safety_mode) + if(stat & (BROKEN|NOPOWER) || safety_mode) return + var/list/to_eat - if(isitem(AM0)) - to_eat = AM0.GetAllContentsIgnoring(GLOB.typecache_mob) - else - to_eat = list(AM0) + + to_eat = AM0.GetAllContentsIgnoring(GLOB.typecache_mob) var/items_recycled = 0 - for(var/i in to_eat) var/atom/movable/AM = i var/obj/item/bodypart/head/as_head = AM diff --git a/code/game/objects/effects/spiders.dm b/code/game/objects/effects/spiders.dm index 48fba2687d..14b3c4e73e 100644 --- a/code/game/objects/effects/spiders.dm +++ b/code/game/objects/effects/spiders.dm @@ -152,6 +152,16 @@ else ..() +/obj/structure/spider/spiderling/attack_hand(mob/user) + . = ..() + if(user.a_intent != INTENT_HELP) + user.changeNext_move(CLICK_CD_MELEE) + user.do_attack_animation(src) + user.visible_message("[user] splats [src].", "You splat [src].", "You hear a splat...") + playsound(loc, 'sound/effects/snap.ogg', 25) + qdel(src) + return TRUE + /obj/structure/spider/spiderling/process() if(travelling_in_vent) if(isturf(loc)) diff --git a/code/game/objects/items/robot/robot_upgrades.dm b/code/game/objects/items/robot/robot_upgrades.dm index 56af03139a..b137c5c0f3 100644 --- a/code/game/objects/items/robot/robot_upgrades.dm +++ b/code/game/objects/items/robot/robot_upgrades.dm @@ -173,37 +173,6 @@ R.module.basic_modules += S R.module.add_module(S, FALSE, TRUE) -/obj/item/borg/upgrade/premiumka - name = "mining cyborg premium KA" - desc = "A premium kinetic accelerator replacement for the mining module's standard kinetic accelerator." - icon_state = "cyborg_upgrade3" - require_module = 1 - module_type = list(/obj/item/robot_module/miner) - -/obj/item/borg/upgrade/premiumka/action(mob/living/silicon/robot/R, user = usr) - . = ..() - if(.) - for(var/obj/item/gun/energy/kinetic_accelerator/cyborg/KA in R.module) - for(var/obj/item/borg/upgrade/modkit/M in KA.modkits) - M.uninstall(src) - R.module.remove_module(KA, TRUE) - - var/obj/item/gun/energy/kinetic_accelerator/premiumka/cyborg/PKA = new /obj/item/gun/energy/kinetic_accelerator/premiumka/cyborg(R.module) - R.module.basic_modules += PKA - R.module.add_module(PKA, FALSE, TRUE) - -/obj/item/borg/upgrade/premiumka/deactivate(mob/living/silicon/robot/R, user = usr) - . = ..() - if (.) - for(var/obj/item/gun/energy/kinetic_accelerator/premiumka/cyborg/PKA in R.module) - for(var/obj/item/borg/upgrade/modkit/M in PKA.modkits) - M.uninstall(src) - R.module.remove_module(PKA, TRUE) - - var/obj/item/gun/energy/kinetic_accelerator/cyborg/KA = new (R.module) - R.module.basic_modules += KA - R.module.add_module(KA, FALSE, TRUE) - /obj/item/borg/upgrade/advcutter name = "mining cyborg advanced plasma cutter" @@ -462,7 +431,7 @@ desc = "An upgrade to the Medical module's hypospray, containing \ stronger versions of existing chemicals." additional_reagents = list(/datum/reagent/medicine/oxandrolone, /datum/reagent/medicine/sal_acid, - /datum/reagent/medicine/rezadone, /datum/reagent/medicine/pen_acid) + /datum/reagent/medicine/rezadone, /datum/reagent/medicine/pen_acid, /datum/reagent/medicine/prussian_blue) /obj/item/borg/upgrade/piercing_hypospray name = "cyborg piercing hypospray" diff --git a/code/game/objects/items/stacks/stack.dm b/code/game/objects/items/stacks/stack.dm index f707c02ce9..5f2795c857 100644 --- a/code/game/objects/items/stacks/stack.dm +++ b/code/game/objects/items/stacks/stack.dm @@ -219,8 +219,9 @@ O = new R.result_type(usr.drop_location()) if(O) O.setDir(usr.dir) + log_craft("[O] crafted by [usr] at [loc_name(O.loc)]") + use(R.req_amount * multiplier) - log_craft("[O] crafted by [usr] at [loc_name(O.loc)]") if(R.applies_mats && custom_materials && custom_materials.len) var/list/used_materials = list() diff --git a/code/game/objects/items/stacks/wrap.dm b/code/game/objects/items/stacks/wrap.dm index b438c863a8..10240e902b 100644 --- a/code/game/objects/items/stacks/wrap.dm +++ b/code/game/objects/items/stacks/wrap.dm @@ -66,7 +66,7 @@ return if(!istype(target)) return - if(target.anchored) + if(target.anchored || (user in target)) return if(isitem(target)) diff --git a/code/game/objects/items/storage/backpack.dm b/code/game/objects/items/storage/backpack.dm index cee8e0f3ee..b4e0dab65b 100644 --- a/code/game/objects/items/storage/backpack.dm +++ b/code/game/objects/items/storage/backpack.dm @@ -54,7 +54,12 @@ icon_state = "holdingsat" item_state = "holdingsat" species_exception = list(/datum/species/angel) - rad_flags = RAD_PROTECT_CONTENTS | RAD_NO_CONTAMINATE + +/obj/item/storage/backpack/holding/duffel + name = "duffel bag of holding" + desc = "A duffel bag that opens into a localized pocket of Blue Space." + icon_state = "holdingduffel" + item_state = "holdingduffel" /obj/item/storage/backpack/holding/ComponentInitialize() . = ..() diff --git a/code/game/objects/items/stunbaton.dm b/code/game/objects/items/stunbaton.dm index a4ff631b07..0e0ff3638f 100644 --- a/code/game/objects/items/stunbaton.dm +++ b/code/game/objects/items/stunbaton.dm @@ -25,7 +25,7 @@ /obj/item/melee/baton/examine(mob/user) . = ..() - . += "Right click attack while in combat mode or attack while in disarm intent to disarm instead of stun." + . += "Right click attack while in combat mode to disarm instead of stun." /obj/item/melee/baton/get_cell() . = cell @@ -149,8 +149,6 @@ //return TRUE to interrupt attack chain. /obj/item/melee/baton/proc/common_baton_melee(mob/M, mob/living/user, disarming = FALSE) - if(user.a_intent == INTENT_DISARM) - disarming = TRUE //override if they're in disarm intent. if(iscyborg(M) || !isliving(M)) //can't baton cyborgs return FALSE if(status && HAS_TRAIT(user, TRAIT_CLUMSY) && prob(50)) diff --git a/code/game/turfs/simulated/walls.dm b/code/game/turfs/simulated/walls.dm index d26a6efb02..268e8e9109 100644 --- a/code/game/turfs/simulated/walls.dm +++ b/code/game/turfs/simulated/walls.dm @@ -70,7 +70,8 @@ /turf/closed/wall/proc/break_wall() new sheet_type(src, sheet_amount) - return new girder_type(src) + if(girder_type) + return new girder_type(src) /turf/closed/wall/proc/devastate_wall() new sheet_type(src, sheet_amount) diff --git a/code/modules/admin/admin.dm b/code/modules/admin/admin.dm index bb0224bbfc..7be6269589 100644 --- a/code/modules/admin/admin.dm +++ b/code/modules/admin/admin.dm @@ -639,15 +639,13 @@ var/almcam = CONFIG_GET(flag/allow_ai_multicam) CONFIG_SET(flag/allow_ai_multicam, !almcam) if (almcam) - to_chat(world, "The AI no longer has multicam.") for(var/i in GLOB.ai_list) var/mob/living/silicon/ai/aiPlayer = i if(aiPlayer.multicam_on) aiPlayer.end_multicam() - else - to_chat(world, "The AI now has multicam.") log_admin("[key_name(usr)] toggled AI multicam.") world.update_status() + to_chat(GLOB.ai_list | GLOB.admins, "The AI [almcam ? "no longer" : "now"] has multicam.") SSblackbox.record_feedback("nested tally", "admin_toggle", 1, list("Toggle Multicam", "[!almcam ? "Disabled" : "Enabled"]")) //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! /datum/admins/proc/toggleaban() diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 6abf2d3f1b..51c2ba4fc6 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1732,7 +1732,7 @@ var/mob/M = locate(href_list["makeeligible"]) if(!ismob(M)) to_chat(usr, "this can only be used on instances of type /mob.") - var/datum/element/ghost_role_eligibility/eli = SSdcs.GetElement(/datum/element/ghost_role_eligibility) + var/datum/element/ghost_role_eligibility/eli = SSdcs.GetElement(list(/datum/element/ghost_role_eligibility)) if(M.ckey in eli.timeouts) eli.timeouts -= M.ckey diff --git a/code/modules/admin/verbs/randomverbs.dm b/code/modules/admin/verbs/randomverbs.dm index b8b92b0a58..b8175326ec 100644 --- a/code/modules/admin/verbs/randomverbs.dm +++ b/code/modules/admin/verbs/randomverbs.dm @@ -1315,15 +1315,15 @@ GLOBAL_LIST_EMPTY(custom_outfits) //Admin created outfits var/obj/item/reagent_containers/food/snacks/pie/cream/nostun/creamy = new(get_turf(target)) creamy.splat(target) if (ADMIN_PUNISHMENT_CUSTOM_PIE) - var/obj/item/reagent_containers/food/snacks/pie/cream/nostun/A = new(get_turf(target)) + var/obj/item/reagent_containers/food/snacks/pie/cream/nostun/A = new() if(!A.reagents) - var/amount = input(usr, "Specify the reagent size of [A]", "Set Reagent Size", 50) as num + var/amount = input(usr, "Specify the reagent size of [A]", "Set Reagent Size", 50) as num|null if(amount) A.create_reagents(amount) if(A.reagents) var/chosen_id = choose_reagent_id(usr) if(chosen_id) - var/amount = input(usr, "Choose the amount to add.", "Choose the amount.", A.reagents.maximum_volume) as num + var/amount = input(usr, "Choose the amount to add.", "Choose the amount.", A.reagents.maximum_volume) as num|null if(amount) A.reagents.add_reagent(chosen_id, amount) A.splat(target) diff --git a/code/modules/antagonists/bloodsucker/bloodsucker_objectives.dm b/code/modules/antagonists/bloodsucker/bloodsucker_objectives.dm index a2a0238df1..0c80ce0dee 100644 --- a/code/modules/antagonists/bloodsucker/bloodsucker_objectives.dm +++ b/code/modules/antagonists/bloodsucker/bloodsucker_objectives.dm @@ -43,7 +43,7 @@ // EXPLANATION /datum/objective/bloodsucker/lair/update_explanation_text() - explanation_text = "Create a lair by claiming a coffin, and protect it until the end of the shift"// Make sure to keep it safe!" + explanation_text = "Create a lair by claiming a coffin, and protect it until the end of the shift."// Make sure to keep it safe!" // WIN CONDITIONS? /datum/objective/bloodsucker/lair/check_completion() @@ -228,7 +228,7 @@ if (SC && SC.lastgen > 0 && SC.connected_panels.len > 0 && SC.connected_tracker) return FALSE return TRUE -*/ +*/ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// @@ -250,15 +250,15 @@ // WIN CONDITIONS? /datum/objective/bloodsucker/heartthief/check_completion() // -Must have a body. - if (!owner.current) + if(!owner.current) return FALSE // Taken from /steal in objective.dm var/list/all_items = owner.current.GetAllContents() // Includes items inside other items. var/itemcount = FALSE for(var/obj/I in all_items) //Check for items - if(I == /obj/item/organ/heart) - itemcount ++ - if (itemcount >= target_amount) // Got the right amount? + if(istype(I, /obj/item/organ/heart/)) + itemcount++ + if(itemcount >= target_amount) // Got the right amount? return TRUE return FALSE diff --git a/code/modules/antagonists/traitor/IAA/internal_affairs.dm b/code/modules/antagonists/traitor/IAA/internal_affairs.dm index caf2f644df..19144d67c9 100644 --- a/code/modules/antagonists/traitor/IAA/internal_affairs.dm +++ b/code/modules/antagonists/traitor/IAA/internal_affairs.dm @@ -120,7 +120,7 @@ /datum/antagonist/traitor/internal_affairs/reinstate_escape_objective() ..() - var/objtype = traitor_kind == TRAITOR_HUMAN ? /datum/objective/escape : /datum/objective/survive + var/objtype = !istype(traitor_kind,TRAITOR_AI) ? /datum/objective/escape : /datum/objective/survive var/datum/objective/escape_objective = new objtype escape_objective.owner = owner add_objective(escape_objective) @@ -215,20 +215,12 @@ kill_objective.target = target_mind kill_objective.update_explanation_text() add_objective(kill_objective) - - //Optional traitor objective - if(prob(PROB_ACTUAL_TRAITOR)) - employer = "The Syndicate" - owner.special_role = TRAITOR_AGENT_ROLE - special_role = TRAITOR_AGENT_ROLE - syndicate = TRUE - forge_single_objective() return /datum/antagonist/traitor/internal_affairs/forge_traitor_objectives() forge_iaa_objectives() - var/objtype = traitor_kind == TRAITOR_HUMAN ? /datum/objective/escape : /datum/objective/survive + var/objtype = !istype(traitor_kind,TRAITOR_AI) ? /datum/objective/escape : /datum/objective/survive var/datum/objective/escape_objective = new objtype escape_objective.owner = owner add_objective(escape_objective) diff --git a/code/modules/antagonists/traitor/classes/ai.dm b/code/modules/antagonists/traitor/classes/ai.dm new file mode 100644 index 0000000000..fac1efeb49 --- /dev/null +++ b/code/modules/antagonists/traitor/classes/ai.dm @@ -0,0 +1,68 @@ +/datum/traitor_class/ai // this one is special, so has no weight + name = "Malfunctioning AI" + +/datum/traitor_class/ai/forge_objectives(datum/antagonist/traitor/T) + var/objective_count = 0 + + if(prob(30)) + objective_count += forge_single_objective() + + for(var/i = objective_count, i < CONFIG_GET(number/traitor_objectives_amount), i++) + var/datum/objective/assassinate/kill_objective = new + kill_objective.owner = T.owner + kill_objective.find_target() + T.add_objective(kill_objective) + + var/datum/objective/survive/exist/exist_objective = new + exist_objective.owner = T.owner + T.add_objective(exist_objective) + +/datum/traitor_class/ai/forge_single_objective(datum/antagonist/traitor/T) + .=1 + var/special_pick = rand(1,4) + switch(special_pick) + if(1) + var/datum/objective/block/block_objective = new + block_objective.owner = T.owner + T.add_objective(block_objective) + if(2) + var/datum/objective/purge/purge_objective = new + purge_objective.owner = T.owner + T.add_objective(purge_objective) + if(3) + var/datum/objective/robot_army/robot_objective = new + robot_objective.owner = T.owner + T.add_objective(robot_objective) + if(4) //Protect and strand a target + var/datum/objective/protect/yandere_one = new + yandere_one.owner = T.owner + T.add_objective(yandere_one) + yandere_one.find_target() + var/datum/objective/maroon/yandere_two = new + yandere_two.owner = T.owner + yandere_two.target = yandere_one.target + yandere_two.update_explanation_text() // normally called in find_target() + T.add_objective(yandere_two) + .=2 + +/datum/traitor_class/ai/on_removal(datum/antagonist/traitor/T) + var/mob/living/silicon/ai/A = T.owner.current + A.set_zeroth_law("") + A.verbs -= /mob/living/silicon/ai/proc/choose_modules + A.malf_picker.remove_malf_verbs(A) + qdel(A.malf_picker) + + +/datum/traitor_class/ai/apply_innate_effects(mob/living/M) + var/mob/living/silicon/ai/A = M + A.hack_software = TRUE + +/datum/traitor_class/ai/remove_innate_effects(mob/living/M) + var/mob/living/silicon/ai/A = M + A.hack_software = FALSE + +/datum/traitor_class/ai/finalize_traitor(datum/antagonist/traitor/T) + T.add_law_zero() + T.owner.current.playsound_local(get_turf(T.owner.current), 'sound/ambience/antag/malf.ogg', 100, FALSE, pressure_affected = FALSE) + T.owner.current.grant_language(/datum/language/codespeak) + return FALSE diff --git a/code/modules/antagonists/traitor/classes/assassin.dm b/code/modules/antagonists/traitor/classes/assassin.dm new file mode 100644 index 0000000000..0c1d950f57 --- /dev/null +++ b/code/modules/antagonists/traitor/classes/assassin.dm @@ -0,0 +1,37 @@ +/datum/traitor_class/human/assassin + name = "Donk Co Operative" + employer = "Donk Corporation" + weight = 0 + chaos = 1 + cost = 2 + +/datum/traitor_class/human/assassin/forge_single_objective(datum/antagonist/traitor/T) + .=1 + var/permakill_prob = 20 + var/is_dynamic = FALSE + var/datum/game_mode/dynamic/mode + if(istype(SSticker.mode,/datum/game_mode/dynamic)) + mode = SSticker.mode + is_dynamic = TRUE + permakill_prob = max(0,mode.threat_level-50) + var/list/active_ais = active_ais() + if(active_ais.len && prob(100/GLOB.joined_player_list.len)) + var/datum/objective/destroy/destroy_objective = new + destroy_objective.owner = T.owner + destroy_objective.find_target() + T.add_objective(destroy_objective) + else if(prob(30) || (is_dynamic && (mode.storyteller.flags & NO_ASSASSIN))) + var/datum/objective/maroon/maroon_objective = new + maroon_objective.owner = T.owner + maroon_objective.find_target() + T.add_objective(maroon_objective) + else if(prob(permakill_prob)) + var/datum/objective/assassinate/kill_objective = new + kill_objective.owner = T.owner + kill_objective.find_target() + T.add_objective(kill_objective) + else + var/datum/objective/assassinate/once/kill_objective = new + kill_objective.owner = T.owner + kill_objective.find_target() + T.add_objective(kill_objective) diff --git a/code/modules/antagonists/traitor/classes/freeform.dm b/code/modules/antagonists/traitor/classes/freeform.dm new file mode 100644 index 0000000000..f84eadb9f6 --- /dev/null +++ b/code/modules/antagonists/traitor/classes/freeform.dm @@ -0,0 +1,12 @@ +/datum/traitor_class/human/freeform + name = "Waffle Co Agent" + employer = "Waffle Company" + weight = 16 + chaos = 0 + +/datum/traitor_class/human/freeform/forge_objectives(datum/antagonist/traitor/T) + var/datum/objective/escape/O = new + O.explanation_text = "You have no goals! Whatever you can do do antagonize Nanotrasen, do it! The gimmickier, the better! Make sure to escape alive, though!" + O.owner = T.owner + T.add_objective(O) + return diff --git a/code/modules/antagonists/traitor/classes/hijack.dm b/code/modules/antagonists/traitor/classes/hijack.dm new file mode 100644 index 0000000000..e89eda1dcf --- /dev/null +++ b/code/modules/antagonists/traitor/classes/hijack.dm @@ -0,0 +1,18 @@ +/datum/traitor_class/human/hijack + name = "Gorlex Marauder" + employer = "The Gorlex Marauders" + weight = 3 + chaos = 5 + cost = 5 + uplink_filters = list(/datum/uplink_item/stealthy_weapons/romerol_kit) + +/datum/traitor_class/human/hijack/forge_objectives(datum/antagonist/traitor/T) + var/datum/objective/hijack/O = new + O.explanation_text = "The Gorlex Marauders are letting you do what you want, with one condition: the shuttle must be hijacked by hacking its navigational protocols through the control console (alt click emergency shuttle console)." + O.owner = T.owner + T.add_objective(O) + return + +/datum/traitor_class/human/hijack/finalize_traitor(datum/antagonist/traitor/T) + T.hijack_speed=1 + return TRUE diff --git a/code/modules/antagonists/traitor/classes/human.dm b/code/modules/antagonists/traitor/classes/human.dm new file mode 100644 index 0000000000..4e096390c0 --- /dev/null +++ b/code/modules/antagonists/traitor/classes/human.dm @@ -0,0 +1,82 @@ +/datum/traitor_class/human + name = "Syndicate Agent" + chaos = 0 + +/datum/traitor_class/human/forge_objectives(datum/antagonist/traitor/T) + var/objective_count = 0 //Hijacking counts towards number of objectives + if(!SSticker.mode.exchange_blue && SSticker.mode.traitors.len >= 8) //Set up an exchange if there are enough traitors + if(!SSticker.mode.exchange_red) + SSticker.mode.exchange_red = T.owner + else + SSticker.mode.exchange_blue = T.owner + T.assign_exchange_role(SSticker.mode.exchange_red) + T.assign_exchange_role(SSticker.mode.exchange_blue) + objective_count += 1 //Exchange counts towards number of objectives + var/toa = CONFIG_GET(number/traitor_objectives_amount) + for(var/i = objective_count, i < toa, i++) + forge_single_objective(T) + if(!(locate(/datum/objective/escape) in T.objectives)) + var/datum/objective/escape/escape_objective = new + escape_objective.owner = T.owner + T.add_objective(escape_objective) + return + +/datum/traitor_class/human/forge_single_objective(datum/antagonist/traitor/T) + .=1 + var/assassin_prob = 50 + var/is_dynamic = FALSE + var/datum/game_mode/dynamic/mode + if(istype(SSticker.mode,/datum/game_mode/dynamic)) + mode = SSticker.mode + is_dynamic = TRUE + assassin_prob = max(0,mode.threat_level-20) + if(prob(assassin_prob)) + if(is_dynamic) + var/threat_spent = CONFIG_GET(number/dynamic_assassinate_cost) + mode.spend_threat(threat_spent) + mode.log_threat("[T.owner.name] spent [threat_spent] on an assassination target.") + var/list/active_ais = active_ais() + if(active_ais.len && prob(100/GLOB.joined_player_list.len)) + var/datum/objective/destroy/destroy_objective = new + destroy_objective.owner = T.owner + destroy_objective.find_target() + T.add_objective(destroy_objective) + else if(prob(30) || (is_dynamic && (mode.storyteller.flags & NO_ASSASSIN))) + var/datum/objective/maroon/maroon_objective = new + maroon_objective.owner = T.owner + maroon_objective.find_target() + T.add_objective(maroon_objective) + else if(prob(max(0,assassin_prob-20))) + var/datum/objective/assassinate/kill_objective = new + kill_objective.owner = T.owner + kill_objective.find_target() + T.add_objective(kill_objective) + else + var/datum/objective/assassinate/once/kill_objective = new + kill_objective.owner = T.owner + kill_objective.find_target() + T.add_objective(kill_objective) + else + if(prob(15) && !(locate(/datum/objective/download) in T.objectives) && !(T.owner.assigned_role in list("Research Director", "Scientist", "Roboticist"))) + var/datum/objective/download/download_objective = new + download_objective.owner = T.owner + download_objective.gen_amount_goal() + T.add_objective(download_objective) + else if(prob(40)) // cum. not counting download: 40%. + var/datum/objective/steal/steal_objective = new + steal_objective.owner = T.owner + steal_objective.find_target() + T.add_objective(steal_objective) + else if(prob(100/3)) // cum. not counting download: 20%. + var/datum/objective/sabotage/sabotage_objective = new + sabotage_objective.owner = T.owner + sabotage_objective.find_target() + T.add_objective(sabotage_objective) + else // cum. not counting download: 40% + var/datum/objective/flavor/traitor/flavor_objective = new + flavor_objective.owner = T.owner + flavor_objective.forge_objective() + T.add_objective(flavor_objective) + +/datum/traitor_class/human/greet(datum/antagonist/traitor/T) + to_chat(T.owner.current, "You are under contract with [employer]. They have given you your objectives.") diff --git a/code/modules/antagonists/traitor/classes/martyr.dm b/code/modules/antagonists/traitor/classes/martyr.dm new file mode 100644 index 0000000000..78f8bf9b0c --- /dev/null +++ b/code/modules/antagonists/traitor/classes/martyr.dm @@ -0,0 +1,14 @@ +/datum/traitor_class/human/martyr + name = "Tiger Cooperator" + employer = "The Tiger Cooperative" + weight = 2 + chaos = 5 + cost = 5 + uplink_filters = list(/datum/uplink_item/stealthy_weapons/romerol_kit,/datum/uplink_item/bundles_TC/contract_kit) + +/datum/traitor_class/human/martyr/forge_objectives(datum/antagonist/traitor/T) + var/datum/objective/martyr/O = new + O.explanation_text = "The tiger cooperative have given you free reign. You may do as you wish, as long as you die a glorious death!" + O.owner = T.owner + T.add_objective(O) + return diff --git a/code/modules/antagonists/traitor/classes/subterfuge.dm b/code/modules/antagonists/traitor/classes/subterfuge.dm new file mode 100644 index 0000000000..ae43f11fe7 --- /dev/null +++ b/code/modules/antagonists/traitor/classes/subterfuge.dm @@ -0,0 +1,40 @@ +/datum/traitor_class/human/subterfuge + name = "MI13 Operative" + employer = "MI13" + weight = 20 + chaos = -5 + +/datum/traitor_class/human/subterfuge/forge_single_objective(datum/antagonist/traitor/T) + .=1 + var/assassin_prob = 30 + var/datum/game_mode/dynamic/mode + if(istype(SSticker.mode,/datum/game_mode/dynamic)) + mode = SSticker.mode + assassin_prob = max(0,mode.threat_level-40) + if(prob(assassin_prob)) + if(prob(assassin_prob)) + var/datum/objective/assassinate/once/kill_objective = new + kill_objective.owner = T.owner + kill_objective.find_target() + T.add_objective(kill_objective) + else + var/datum/objective/maroon/maroon_objective = new + maroon_objective.owner = T.owner + maroon_objective.find_target() + T.add_objective(maroon_objective) + else + if(prob(15) && !(locate(/datum/objective/download) in T.objectives) && !(T.owner.assigned_role in list("Research Director", "Scientist", "Roboticist"))) + var/datum/objective/download/download_objective = new + download_objective.owner = T.owner + download_objective.gen_amount_goal() + T.add_objective(download_objective) + else if(prob(70)) // cum. not counting download: 40%. + var/datum/objective/steal/steal_objective = new + steal_objective.owner = T.owner + steal_objective.find_target() + T.add_objective(steal_objective) + else + var/datum/objective/sabotage/sabotage_objective = new + sabotage_objective.owner = T.owner + sabotage_objective.find_target() + T.add_objective(sabotage_objective) diff --git a/code/modules/antagonists/traitor/classes/traitor_class.dm b/code/modules/antagonists/traitor/classes/traitor_class.dm new file mode 100644 index 0000000000..3df9dec929 --- /dev/null +++ b/code/modules/antagonists/traitor/classes/traitor_class.dm @@ -0,0 +1,40 @@ +GLOBAL_LIST_EMPTY(traitor_classes) + +/datum/traitor_class + var/name = "Bad Coders Ltd." + var/employer = "The Syndicate" + var/weight = 0 + var/chaos = 0 + var/cost = 0 + var/TC = 20 + var/list/uplink_filters + +/datum/traitor_class/New() + ..() + if(src.type in GLOB.traitor_classes) + qdel(src) + else + GLOB.traitor_classes += src.type + GLOB.traitor_classes[src.type] = src + +/datum/traitor_class/proc/forge_objectives(datum/antagonist/traitor/T) + // Like the old forge_human_objectives. Makes all the objectives for this traitor class. + +/datum/traitor_class/proc/forge_single_objective(datum/antagonist/traitor/T) + // As forge_single_objective. + +/datum/traitor_class/proc/on_removal(datum/antagonist/traitor/T) + // What this does to the antag datum on removal. Called before proper removal, obviously. + +/datum/traitor_class/proc/apply_innate_effects(mob/living/M) + // What innate effects it should have. See: AI. + +/datum/traitor_class/proc/remove_innate_effects(mob/living/M) + // Cleaning up the innate effects. + +/datum/traitor_class/proc/greet(datum/antagonist/traitor/T) + // Message upon creation. Not necessary, but can be useful. + +/datum/traitor_class/proc/finalize_traitor(datum/antagonist/traitor/T) + // Finalization. Return TRUE if should play standard traitor sound/equip, return FALSE if both are special case + return TRUE diff --git a/code/modules/antagonists/traitor/datum_traitor.dm b/code/modules/antagonists/traitor/datum_traitor.dm index 0352272f70..a9dee81a6c 100644 --- a/code/modules/antagonists/traitor/datum_traitor.dm +++ b/code/modules/antagonists/traitor/datum_traitor.dm @@ -1,6 +1,3 @@ -#define TRAITOR_HUMAN "human" -#define TRAITOR_AI "AI" - /datum/antagonist/traitor name = "Traitor" roundend_category = "traitors" @@ -12,43 +9,52 @@ var/give_objectives = TRUE var/should_give_codewords = TRUE var/should_equip = TRUE - var/traitor_kind = TRAITOR_HUMAN //Set on initial assignment + var/datum/traitor_class/traitor_kind var/datum/contractor_hub/contractor_hub hijack_speed = 0.5 //10 seconds per hijack stage by default +/datum/antagonist/traitor/New() + ..() + if(!GLOB.traitor_classes.len)//Only need to fill the list when it's needed. + for(var/I in subtypesof(/datum/traitor_class)) + new I + +/datum/antagonist/traitor/proc/set_traitor_kind(var/kind) + traitor_kind = GLOB.traitor_classes[kind] + if(istype(SSticker.mode, /datum/game_mode/dynamic)) + var/datum/game_mode/dynamic/mode = SSticker.mode + if(traitor_kind.cost) + mode.spend_threat(traitor_kind.cost) + mode.log_threat("[traitor_kind.cost] was spent due to [owner.name] being a [traitor_kind.name].") + /datum/antagonist/traitor/on_gain() if(owner.current && isAI(owner.current)) - traitor_kind = TRAITOR_AI - + set_traitor_kind(TRAITOR_AI) + else + var/chaos_weight = 0 + if(istype(SSticker.mode,/datum/game_mode/dynamic)) + var/datum/game_mode/dynamic/mode = SSticker.mode + chaos_weight = (mode.threat - 50)/50 + var/list/weights = list() + for(var/C in GLOB.traitor_classes) + var/datum/traitor_class/class = GLOB.traitor_classes[C] + var/weight = (1.5*class.weight)/(0.5+NUM_E**(-chaos_weight*class.chaos)) // just a logistic function + weights[C] = weight + var/choice = pickweightAllowZero(weights) + if(!choice) + choice = GLOB.traitor_classes[TRAITOR_HUMAN] + set_traitor_kind(pickweightAllowZero(weights)) + traitor_kind.weight *= 0.8 // less likely this round SSticker.mode.traitors += owner owner.special_role = special_role if(give_objectives) - forge_traitor_objectives() + traitor_kind.forge_objectives(src) finalize_traitor() ..() -/datum/antagonist/traitor/apply_innate_effects() - if(owner.assigned_role == "Clown") - var/mob/living/carbon/human/traitor_mob = owner.current - if(traitor_mob && istype(traitor_mob)) - if(!silent) - to_chat(traitor_mob, "Your training has allowed you to overcome your clownish nature, allowing you to wield weapons without harming yourself.") - traitor_mob.dna.remove_mutation(CLOWNMUT) - -/datum/antagonist/traitor/remove_innate_effects() - if(owner.assigned_role == "Clown") - var/mob/living/carbon/human/traitor_mob = owner.current - if(traitor_mob && istype(traitor_mob)) - traitor_mob.dna.add_mutation(CLOWNMUT) - /datum/antagonist/traitor/on_removal() //Remove malf powers. - if(traitor_kind == TRAITOR_AI && owner.current && isAI(owner.current)) - var/mob/living/silicon/ai/A = owner.current - A.set_zeroth_law("") - A.verbs -= /mob/living/silicon/ai/proc/choose_modules - A.malf_picker.remove_malf_verbs(A) - qdel(A.malf_picker) + traitor_kind.on_removal(src) SSticker.mode.traitors -= owner if(!silent && owner.current) to_chat(owner.current," You are no longer the [special_role]! ") @@ -69,192 +75,11 @@ objectives -= O /datum/antagonist/traitor/proc/forge_traitor_objectives() - switch(traitor_kind) - if(TRAITOR_AI) - forge_ai_objectives() - else - forge_human_objectives() - -/datum/antagonist/traitor/proc/forge_human_objectives() - var/is_hijacker = FALSE - var/datum/game_mode/dynamic/mode - var/is_dynamic = FALSE - var/hijack_prob = 0 - if(istype(SSticker.mode,/datum/game_mode/dynamic)) - mode = SSticker.mode - is_dynamic = TRUE - if(mode.threat >= CONFIG_GET(number/dynamic_hijack_cost)) - hijack_prob = CLAMP(mode.threat_level-50,0,20) - if(GLOB.joined_player_list.len>=GLOB.dynamic_high_pop_limit) - is_hijacker = (prob(hijack_prob) && mode.threat_level > CONFIG_GET(number/dynamic_hijack_high_population_requirement)) - else - var/indice_pop = min(10,round(GLOB.joined_player_list.len/mode.pop_per_requirement)+1) - is_hijacker = (prob(hijack_prob) && (mode.threat_level >= CONFIG_GET(number_list/dynamic_hijack_requirements)[indice_pop])) - if(mode.storyteller.flags & NO_ASSASSIN) - is_hijacker = FALSE - else if (GLOB.joined_player_list.len >= 30) // Less murderboning on lowpop thanks - hijack_prob = 10 - is_hijacker = prob(10) - var/martyr_chance = prob(hijack_prob*2) - var/objective_count = is_hijacker //Hijacking counts towards number of objectives - if(!SSticker.mode.exchange_blue && SSticker.mode.traitors.len >= 8) //Set up an exchange if there are enough traitors - if(!SSticker.mode.exchange_red) - SSticker.mode.exchange_red = owner - else - SSticker.mode.exchange_blue = owner - assign_exchange_role(SSticker.mode.exchange_red) - assign_exchange_role(SSticker.mode.exchange_blue) - objective_count += 1 //Exchange counts towards number of objectives - var/toa = CONFIG_GET(number/traitor_objectives_amount) - for(var/i = objective_count, i < toa, i++) - forge_single_objective() - - if(is_hijacker && objective_count <= toa) //Don't assign hijack if it would exceed the number of objectives set in config.traitor_objectives_amount - if (!(locate(/datum/objective/hijack) in objectives)) - var/datum/objective/hijack/hijack_objective = new - hijack_objective.owner = owner - add_objective(hijack_objective) - if(is_dynamic) - var/threat_spent = CONFIG_GET(number/dynamic_hijack_cost) - mode.spend_threat(threat_spent) - mode.log_threat("[owner.name] spent [threat_spent] on hijack.") - return - - - var/martyr_compatibility = 1 //You can't succeed in stealing if you're dead. - for(var/datum/objective/O in objectives) - if(!O.martyr_compatible) - martyr_compatibility = 0 - break - - if(martyr_compatibility && martyr_chance) - var/datum/objective/martyr/martyr_objective = new - martyr_objective.owner = owner - add_objective(martyr_objective) - if(is_dynamic) - var/threat_spent = CONFIG_GET(number/dynamic_hijack_cost) - mode.spend_threat(threat_spent) - mode.log_threat("[owner.name] spent [threat_spent] on glorious death.") - return - - else - if(!(locate(/datum/objective/escape) in objectives)) - var/datum/objective/escape/escape_objective = new - escape_objective.owner = owner - add_objective(escape_objective) - return - -/datum/antagonist/traitor/proc/forge_ai_objectives() - var/objective_count = 0 - - if(prob(30)) - objective_count += forge_single_objective() - - for(var/i = objective_count, i < CONFIG_GET(number/traitor_objectives_amount), i++) - var/datum/objective/assassinate/kill_objective = new - kill_objective.owner = owner - kill_objective.find_target() - add_objective(kill_objective) - - var/datum/objective/survive/exist/exist_objective = new - exist_objective.owner = owner - add_objective(exist_objective) - - -/datum/antagonist/traitor/proc/forge_single_objective() - switch(traitor_kind) - if(TRAITOR_AI) - return forge_single_AI_objective() - else - return forge_single_human_objective() - -/datum/antagonist/traitor/proc/forge_single_human_objective() //Returns how many objectives are added - .=1 - var/assassin_prob = 50 - var/is_dynamic = FALSE - var/datum/game_mode/dynamic/mode - if(istype(SSticker.mode,/datum/game_mode/dynamic)) - mode = SSticker.mode - is_dynamic = TRUE - assassin_prob = max(0,mode.threat_level-20) - if(prob(assassin_prob)) - if(is_dynamic) - var/threat_spent = CONFIG_GET(number/dynamic_assassinate_cost) - mode.spend_threat(threat_spent) - mode.log_threat("[owner.name] spent [threat_spent] on an assassination target.") - var/list/active_ais = active_ais() - if(active_ais.len && prob(100/GLOB.joined_player_list.len)) - var/datum/objective/destroy/destroy_objective = new - destroy_objective.owner = owner - destroy_objective.find_target() - add_objective(destroy_objective) - else if(prob(30) || (is_dynamic && (mode.storyteller.flags & NO_ASSASSIN))) - var/datum/objective/maroon/maroon_objective = new - maroon_objective.owner = owner - maroon_objective.find_target() - add_objective(maroon_objective) - else if(prob(max(0,assassin_prob-20))) - var/datum/objective/assassinate/kill_objective = new - kill_objective.owner = owner - kill_objective.find_target() - add_objective(kill_objective) - else - var/datum/objective/assassinate/once/kill_objective = new - kill_objective.owner = owner - kill_objective.find_target() - add_objective(kill_objective) - else - if(prob(15) && !(locate(/datum/objective/download) in objectives) && !(owner.assigned_role in list("Research Director", "Scientist", "Roboticist"))) - var/datum/objective/download/download_objective = new - download_objective.owner = owner - download_objective.gen_amount_goal() - add_objective(download_objective) - else if(prob(40)) // cum. not counting download: 40%. - var/datum/objective/steal/steal_objective = new - steal_objective.owner = owner - steal_objective.find_target() - add_objective(steal_objective) - else if(prob(100/3)) // cum. not counting download: 20%. - var/datum/objective/sabotage/sabotage_objective = new - sabotage_objective.owner = owner - sabotage_objective.find_target() - add_objective(sabotage_objective) - else // cum. not counting download: 40% - var/datum/objective/flavor/traitor/flavor_objective = new - flavor_objective.owner = owner - flavor_objective.forge_objective() - add_objective(flavor_objective) - -/datum/antagonist/traitor/proc/forge_single_AI_objective() - .=1 - var/special_pick = rand(1,4) - switch(special_pick) - if(1) - var/datum/objective/block/block_objective = new - block_objective.owner = owner - add_objective(block_objective) - if(2) - var/datum/objective/purge/purge_objective = new - purge_objective.owner = owner - add_objective(purge_objective) - if(3) - var/datum/objective/robot_army/robot_objective = new - robot_objective.owner = owner - add_objective(robot_objective) - if(4) //Protect and strand a target - var/datum/objective/protect/yandere_one = new - yandere_one.owner = owner - add_objective(yandere_one) - yandere_one.find_target() - var/datum/objective/maroon/yandere_two = new - yandere_two.owner = owner - yandere_two.target = yandere_one.target - yandere_two.update_explanation_text() // normally called in find_target() - add_objective(yandere_two) - .=2 + traitor_kind.forge_objectives(src) /datum/antagonist/traitor/greet() to_chat(owner.current, "You are the [owner.special_role].") + traitor_kind.greet(src) owner.announce_objectives() if(should_give_codewords) give_codewords() @@ -270,32 +95,33 @@ set_antag_hud(owner.current, null) /datum/antagonist/traitor/proc/finalize_traitor() - switch(traitor_kind) - if(TRAITOR_AI) - add_law_zero() - owner.current.playsound_local(get_turf(owner.current), 'sound/ambience/antag/malf.ogg', 100, FALSE, pressure_affected = FALSE) - owner.current.grant_language(/datum/language/codespeak) - if(TRAITOR_HUMAN) - if(should_equip) - equip(silent) - owner.current.playsound_local(get_turf(owner.current), 'sound/ambience/antag/tatoralert.ogg', 100, FALSE, pressure_affected = FALSE) + if(traitor_kind.finalize_traitor(src)) + if(should_equip) + equip(silent) + owner.current.playsound_local(get_turf(owner.current), 'sound/ambience/antag/tatoralert.ogg', 100, FALSE, pressure_affected = FALSE) /datum/antagonist/traitor/apply_innate_effects(mob/living/mob_override) . = ..() update_traitor_icons_added() var/mob/M = mob_override || owner.current - if(isAI(M) && traitor_kind == TRAITOR_AI) - var/mob/living/silicon/ai/A = M - A.hack_software = TRUE + traitor_kind.apply_innate_effects(M) + if(owner.assigned_role == "Clown") + var/mob/living/carbon/human/H = M + if(istype(H)) + if(!silent) + to_chat(H, "Your training has allowed you to overcome your clownish nature, allowing you to wield weapons without harming yourself.") + H.dna.remove_mutation(CLOWNMUT) RegisterSignal(M, COMSIG_MOVABLE_HEAR, .proc/handle_hearing) /datum/antagonist/traitor/remove_innate_effects(mob/living/mob_override) . = ..() update_traitor_icons_removed() var/mob/M = mob_override || owner.current - if(isAI(M) && traitor_kind == TRAITOR_AI) - var/mob/living/silicon/ai/A = M - A.hack_software = FALSE + traitor_kind.remove_innate_effects(M) + if(owner.assigned_role == "Clown") + var/mob/living/carbon/human/H = M + if(istype(H)) + H.dna.add_mutation(CLOWNMUT) UnregisterSignal(M, COMSIG_MOVABLE_HEAR) /datum/antagonist/traitor/proc/give_codewords() @@ -326,8 +152,7 @@ killer.add_malf_picker() /datum/antagonist/traitor/proc/equip(var/silent = FALSE) - if(traitor_kind == TRAITOR_HUMAN) - owner.equip_traitor(employer, silent, src) + owner.equip_traitor(traitor_kind, silent, src) /datum/antagonist/traitor/proc/assign_exchange_role() //set faction diff --git a/code/modules/cargo/packs/misc.dm b/code/modules/cargo/packs/misc.dm index d9c9794bd8..80d6f76910 100644 --- a/code/modules/cargo/packs/misc.dm +++ b/code/modules/cargo/packs/misc.dm @@ -89,32 +89,17 @@ /datum/supply_pack/misc/paper_work name = "Freelance Paper work" - desc = "The Nanotrasen Primary Bureaucratic Database Intelligence (PDBI) reports that the station has not completed its funding and grant paperwork this solar cycle. In order to gain further funding, your station is required to fill out (20) ten of these forms or no additional capital will be disbursed. We have sent you ten copies of the following form and we expect every one to be up to Nanotrasen Standards." // Disbursement. It's not a typo, look it up. - cost = 700 // Net of 0 credits but makes (120 x 20 = 2400) + desc = "The Nanotrasen Primary Bureaucratic Database Intelligence (PDBI) reports that the station has not completed its funding and grant paperwork this solar cycle. In order to gain further funding, your station is required to fill out (10) ten of these forms or no additional capital will be disbursed. We have sent you ten copies of the following form and we expect every one to be up to Nanotrasen Standards." // Disbursement. It's not a typo, look it up. + cost = 700 // Net of 0 credits but makes (120 x 10 = 1200) contains = list(/obj/item/folder/paperwork, - /obj/item/folder/paperwork, - /obj/item/folder/paperwork, - /obj/item/folder/paperwork, - /obj/item/folder/paperwork, - /obj/item/folder/paperwork, - /obj/item/folder/paperwork, - /obj/item/folder/paperwork, - /obj/item/folder/paperwork, - /obj/item/folder/paperwork, - /obj/item/folder/paperwork, - /obj/item/folder/paperwork, - /obj/item/folder/paperwork, - /obj/item/folder/paperwork, - /obj/item/folder/paperwork, - /obj/item/folder/paperwork, - /obj/item/folder/paperwork, - /obj/item/folder/paperwork, - /obj/item/folder/paperwork, - /obj/item/folder/paperwork, /obj/item/pen/fountain ) crate_name = "Paperwork" +/datum/supply_pack/misc/paper_work/generate() + . = ..() + for(var/i in 1 to 9) + new /obj/item/folder/paperwork(.) ////////////////////////////////////////////////////////////////////////////// //////////////////////////////// Entertainment /////////////////////////////// ////////////////////////////////////////////////////////////////////////////// @@ -123,16 +108,14 @@ name = "Bedsheet Crate (R)" desc = "Snuggle up in some sweet sheets with this assorted bedsheet crate. Each set comes with eight random bedsheets for your slumbering pleasure!" cost = 2000 - contains = list(/obj/item/bedsheet/random, - /obj/item/bedsheet/random, - /obj/item/bedsheet/random, - /obj/item/bedsheet/random, - /obj/item/bedsheet/random, - /obj/item/bedsheet/random, - /obj/item/bedsheet/random, - /obj/item/bedsheet/random) //I'm lazy, and I copy paste stuff. + contains = list(/obj/item/bedsheet/random) crate_name = "random bedsheet crate" +/datum/supply_pack/misc/randombedsheets/generate() + . = ..() + for(var/i in 1 to 7) + new /obj/item/bedsheet/random(.) + /datum/supply_pack/misc/coloredsheets name = "Bedsheet Crate (C)" desc = "Give your night life a splash of color with this crate filled with bedsheets! Contains a total of nine different-colored sheets." @@ -208,13 +191,14 @@ name = "Dueling Pistols" desc = "Resolve all your quarrels with some nonlethal fun." cost = 2000 - contains = list(/obj/item/storage/lockbox/dueling/hugbox/stamina, - /obj/item/storage/lockbox/dueling/hugbox/stamina, - /obj/item/storage/lockbox/dueling/hugbox/stamina, - /obj/item/storage/lockbox/dueling/hugbox/stamina, - /obj/item/storage/lockbox/dueling/hugbox/stamina) + contains = list(/obj/item/storage/lockbox/dueling/hugbox/stamina) crate_name = "dueling pistols" +/datum/supply_pack/misc/dueling_stam/generate() + . = ..() + for(var/i in 1 to 3) + new /obj/item/storage/lockbox/dueling/hugbox/stamina(.) + /datum/supply_pack/misc/dueling_lethal name = "Lethal Dueling Pistols" desc = "Settle your differences the true spaceman way." @@ -240,12 +224,7 @@ cost = 12000 var/num_contained = 3 contains = list(/obj/item/ammo_box/a357, - /obj/item/ammo_box/a357, - /obj/item/ammo_box/a357, /obj/item/ammo_box/magazine/pistolm9mm, - /obj/item/ammo_box/magazine/pistolm9mm, - /obj/item/ammo_box/magazine/pistolm9mm, - /obj/item/ammo_box/magazine/m45/kitchengun, /obj/item/ammo_box/magazine/m45/kitchengun) crate_name = "crate" diff --git a/code/modules/food_and_drinks/food/snacks_pie.dm b/code/modules/food_and_drinks/food/snacks_pie.dm index b3ad6b5126..dfb62ef59d 100644 --- a/code/modules/food_and_drinks/food/snacks_pie.dm +++ b/code/modules/food_and_drinks/food/snacks_pie.dm @@ -44,8 +44,8 @@ if(ishuman(hit_atom)) var/mob/living/carbon/human/H = hit_atom var/mutable_appearance/creamoverlay = mutable_appearance('icons/effects/creampie.dmi') - if(H.dna.species.limbs_id == "lizard") - creamoverlay.icon_state = "creampie_lizard" + if((("mam_snouts" in H.dna.species.default_features) && H.dna.features["mam_snouts"] != "None") || (("snout" in H.dna.species.default_features) && H.dna.features["snout"] != "None")) + creamoverlay.icon_state = "creampie_snout" else creamoverlay.icon_state = "creampie_human" if(stunning) @@ -53,7 +53,7 @@ H.adjust_blurriness(1) H.visible_message("[H] is creamed by [src]!", "You've been creamed by [src]!") playsound(H, "desceration", 50, TRUE) - if(!H.is_mouth_covered()) + if(!H.is_mouth_covered()) reagents.trans_to(H,15) //Cream pie combat if(!H.creamed) // one layer at a time H.add_overlay(creamoverlay) diff --git a/code/modules/mining/equipment/survival_pod.dm b/code/modules/mining/equipment/survival_pod.dm index b9f85a5c8f..bbab74689c 100644 --- a/code/modules/mining/equipment/survival_pod.dm +++ b/code/modules/mining/equipment/survival_pod.dm @@ -139,6 +139,9 @@ icon = 'icons/obj/lavaland/survival_pod.dmi' icon_state = "sleeper" +/obj/machinery/sleeper/survival_pod/update_icon_state() + return + /obj/machinery/sleeper/survival_pod/update_overlays() . = ..() if(!state_open) @@ -189,7 +192,7 @@ flags_1 = NODECONSTRUCT_1 var/empty = FALSE -/obj/machinery/stasis/survival_pod/ComponentInitialize() +/obj/machinery/smartfridge/survival_pod/ComponentInitialize() . = ..() AddElement(/datum/element/update_icon_blocker) diff --git a/code/modules/mob/living/carbon/carbon_defense.dm b/code/modules/mob/living/carbon/carbon_defense.dm index 545ef9d335..385dfc15ff 100644 --- a/code/modules/mob/living/carbon/carbon_defense.dm +++ b/code/modules/mob/living/carbon/carbon_defense.dm @@ -261,11 +261,11 @@ jitteriness += 1000 //High numbers for violent convulsions do_jitter_animation(jitteriness) stuttering += 2 - if((!(flags & SHOCK_TESLA) || siemens_coeff > 0.5) && (flags & SHOCK_NOSTUN)) + if((!(flags & SHOCK_TESLA) || siemens_coeff > 0.5) && !(flags & SHOCK_NOSTUN)) Stun(40) spawn(20) jitteriness = max(jitteriness - 990, 10) //Still jittery, but vastly less - if((!(flags & SHOCK_TESLA) || siemens_coeff > 0.5) && (flags & SHOCK_NOSTUN)) + if((!(flags & SHOCK_TESLA) || siemens_coeff > 0.5) && !(flags & SHOCK_NOSTUN)) DefaultCombatKnockdown(60) return shock_damage diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 1b57796250..41f8283ab9 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -242,6 +242,12 @@ return if(href_list["pockets"]) + var/strip_mod = 1 + var/strip_silence = FALSE + var/obj/item/clothing/gloves/g = gloves + if (istype(g)) + strip_mod = g.strip_mod + strip_silence = g.strip_silence var/pocket_side = href_list["pockets"] var/pocket_id = (pocket_side == "right" ? SLOT_R_STORE : SLOT_L_STORE) var/obj/item/pocket_item = (pocket_id == SLOT_R_STORE ? r_store : l_store) @@ -258,7 +264,7 @@ else return - if(do_mob(usr, src, POCKET_STRIP_DELAY/delay_denominator, ignorehelditem = TRUE)) //placing an item into the pocket is 4 times faster + if(do_mob(usr, src, max(round(POCKET_STRIP_DELAY/(delay_denominator*strip_mod)),1), ignorehelditem = TRUE)) //placing an item into the pocket is 4 times faster (and the strip_mod too) if(pocket_item) if(pocket_item == (pocket_id == SLOT_R_STORE ? r_store : l_store)) //item still in the pocket we search dropItemToGround(pocket_item) @@ -276,7 +282,8 @@ show_inv(usr) else // Display a warning if the user mocks up - to_chat(src, "You feel your [pocket_side] pocket being fumbled with!") + if (!strip_silence) + to_chat(src, "You feel your [pocket_side] pocket being fumbled with!") ..() //CITADEL CHANGE - removes a tab from behind this ..() so that flavortext can actually be examined diff --git a/code/modules/mob/living/carbon/human/species.dm b/code/modules/mob/living/carbon/human/species.dm index eca119de90..c7444425aa 100644 --- a/code/modules/mob/living/carbon/human/species.dm +++ b/code/modules/mob/living/carbon/human/species.dm @@ -397,7 +397,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(I.flags_inv & HIDEFACIALHAIR) facialhair_hidden = TRUE - if(H.wear_mask) + if(H.wear_mask && istype(H.wear_mask)) var/obj/item/clothing/mask/M = H.wear_mask dynamic_fhair_suffix = M.dynamic_fhair_suffix //mask > head in terms of facial hair if(M.flags_inv & HIDEFACIALHAIR) @@ -451,7 +451,7 @@ GLOBAL_LIST_EMPTY(roundstart_race_names) if(I.flags_inv & HIDEHAIR) hair_hidden = TRUE - if(H.wear_mask) + if(H.wear_mask && istype(H.wear_mask)) var/obj/item/clothing/mask/M = H.wear_mask if(!dynamic_hair_suffix) //head > mask in terms of head hair dynamic_hair_suffix = M.dynamic_hair_suffix diff --git a/code/modules/mob/living/silicon/robot/robot_modules.dm b/code/modules/mob/living/silicon/robot/robot_modules.dm index c45a472367..4f20a95dab 100644 --- a/code/modules/mob/living/silicon/robot/robot_modules.dm +++ b/code/modules/mob/living/silicon/robot/robot_modules.dm @@ -821,7 +821,6 @@ /obj/item/gps/cyborg, /obj/item/weapon/gripper/mining, /obj/item/cyborg_clamp, - /obj/item/card/id/miningborg, /obj/item/stack/marker_beacon, /obj/item/destTagger, /obj/item/stack/packageWrap) @@ -1023,4 +1022,4 @@ /datum/robot_energy_storage/wrapping_paper max_energy = 30 recharge_rate = 1 - name = "Wrapping Paper Storage" \ No newline at end of file + name = "Wrapping Paper Storage" diff --git a/code/modules/mob/living/simple_animal/friendly/dog.dm b/code/modules/mob/living/simple_animal/friendly/dog.dm index 46cdc755db..485cece8b7 100644 --- a/code/modules/mob/living/simple_animal/friendly/dog.dm +++ b/code/modules/mob/living/simple_animal/friendly/dog.dm @@ -363,10 +363,8 @@ icon_dead = "old_corgi_dead" desc = "At a ripe old age of [record_age] Ian's not as spry as he used to be, but he'll always be the HoP's beloved corgi." //RIP turns_per_move = 20 - var/datum/element/mob_holder/ele = SSdcs.GetElement(/datum/element/mob_holder, held_icon) - if(ele) - ele.Detach(src) - AddElement(/datum/element/mob_holder, "old_corgi") + RemoveElement(/datum/element/mob_holder, held_icon) + AddElement(/datum/element/mob_holder, "old_corgi") /mob/living/simple_animal/pet/dog/corgi/Ian/Life() if(!stat && SSticker.current_state == GAME_STATE_FINISHED && !memory_saved) @@ -447,7 +445,7 @@ sleep(3) step_to(src,movement_target,1) - if(movement_target) //Not redundant due to sleeps, Item can be gone in 6 decisecomds + if(movement_target?.loc) //Not redundant due to sleeps, Item can be gone in 6 decisecomds if (movement_target.loc.x < src.x) setDir(WEST) else if (movement_target.loc.x > src.x) diff --git a/code/modules/mob/living/simple_animal/friendly/mouse.dm b/code/modules/mob/living/simple_animal/friendly/mouse.dm index c5a4fa6e1e..370442d4c4 100644 --- a/code/modules/mob/living/simple_animal/friendly/mouse.dm +++ b/code/modules/mob/living/simple_animal/friendly/mouse.dm @@ -64,7 +64,7 @@ ..() /mob/living/simple_animal/mouse/handle_automated_action() - if(isbelly(loc)) + if(!isturf(loc)) return if(prob(chew_probability)) @@ -76,7 +76,7 @@ visible_message("[src] chews through the [C]. It's toast!") playsound(src, 'sound/effects/sparks2.ogg', 100, 1) C.deconstruct() - death(toast=1) + death(toast=TRUE) else C.deconstruct() visible_message("[src] chews through the [C].") diff --git a/code/modules/mob/status_procs.dm b/code/modules/mob/status_procs.dm index 12379bce91..10abf460c6 100644 --- a/code/modules/mob/status_procs.dm +++ b/code/modules/mob/status_procs.dm @@ -19,9 +19,15 @@ /mob/proc/set_dizziness(amount) dizziness = max(amount, 0) -///Blind a mobs eyes by amount +/** + * Sets a mob's blindness to an amount if it was not above it already, similar to how status effects work + */ /mob/proc/blind_eyes(amount) - adjust_blindness(amount) + var/old_blind = eye_blind || HAS_TRAIT(src, TRAIT_BLIND) + eye_blind = max(eye_blind, amount) + var/new_blind = eye_blind || HAS_TRAIT(src, TRAIT_BLIND) + if(old_blind != new_blind) + update_blindness() /** * Adjust a mobs blindness by an amount diff --git a/code/modules/modular_computers/hardware/battery_module.dm b/code/modules/modular_computers/hardware/battery_module.dm index c6b96e3136..55f7c19cd7 100644 --- a/code/modules/modular_computers/hardware/battery_module.dm +++ b/code/modules/modular_computers/hardware/battery_module.dm @@ -12,6 +12,10 @@ battery = new battery_type(src) ..() +/obj/item/computer_hardware/battery/Destroy() + . = ..() + QDEL_NULL(battery) + /obj/item/computer_hardware/battery/try_insert(obj/item/I, mob/living/user = null) if(!holder) return FALSE diff --git a/code/modules/projectiles/guns/misc/beam_rifle.dm b/code/modules/projectiles/guns/misc/beam_rifle.dm index 098395e0d4..c295adde60 100644 --- a/code/modules/projectiles/guns/misc/beam_rifle.dm +++ b/code/modules/projectiles/guns/misc/beam_rifle.dm @@ -47,7 +47,7 @@ var/mob/current_user = null var/list/obj/effect/projectile/tracer/current_tracers - var/structure_piercing = 1 + var/structure_piercing = 0 var/structure_bleed_coeff = 0.7 var/wall_pierce_amount = 0 var/wall_devastate = 0 @@ -60,7 +60,7 @@ var/impact_structure_damage = 75 var/projectile_damage = 40 var/projectile_stun = 0 - var/projectile_setting_pierce = TRUE + var/projectile_setting_pierce = FALSE var/delay = 30 var/lastfire = 0 @@ -160,6 +160,9 @@ add_overlay(drained_overlay) /obj/item/gun/energy/beam_rifle/attack_self(mob/user) + if(!structure_piercing) + projectile_setting_pierce = FALSE + return projectile_setting_pierce = !projectile_setting_pierce to_chat(user, "You set \the [src] to [projectile_setting_pierce? "pierce":"impact"] mode.") aiming_beam() @@ -402,7 +405,7 @@ /obj/item/ammo_casing/energy/beam_rifle/hitscan projectile_type = /obj/item/projectile/beam/beam_rifle/hitscan select_name = "beam" - e_cost = 5000 + e_cost = 10000 fire_sound = 'sound/weapons/beam_sniper.ogg' /obj/item/projectile/beam/beam_rifle @@ -557,9 +560,4 @@ hitscan_light_color_override = "#99ff99" /obj/item/projectile/beam/beam_rifle/hitscan/aiming_beam/prehit(atom/target) - qdel(src) return FALSE - -/obj/item/projectile/beam/beam_rifle/hitscan/aiming_beam/on_hit() - qdel(src) - return BULLET_ACT_HIT diff --git a/code/modules/reagents/reagent_containers/borghydro.dm b/code/modules/reagents/reagent_containers/borghydro.dm index 73d0c5eafa..170ff64138 100644 --- a/code/modules/reagents/reagent_containers/borghydro.dm +++ b/code/modules/reagents/reagent_containers/borghydro.dm @@ -28,7 +28,7 @@ Borg Hypospray var/list/datum/reagents/reagent_list = list() var/list/reagent_ids = list(/datum/reagent/medicine/dexalin, /datum/reagent/medicine/kelotane, /datum/reagent/medicine/bicaridine, /datum/reagent/medicine/antitoxin, - /datum/reagent/medicine/epinephrine, /datum/reagent/medicine/spaceacillin, /datum/reagent/medicine/salglu_solution, /datum/reagent/medicine/insulin) + /datum/reagent/medicine/epinephrine, /datum/reagent/medicine/spaceacillin, /datum/reagent/medicine/salglu_solution, /datum/reagent/medicine/insulin, /datum/reagent/medicine/potass_iodide) var/accepts_reagent_upgrades = TRUE //If upgrades can increase number of reagents dispensed. var/list/modes = list() //Basically the inverse of reagent_ids. Instead of having numbers as "keys" and strings as values it has strings as keys and numbers as values. //Used as list for input() in shakers. @@ -164,7 +164,7 @@ Borg Hypospray icon_state = "borghypo_s" charge_cost = 20 recharge_time = 2 - reagent_ids = list(/datum/reagent/medicine/syndicate_nanites, /datum/reagent/medicine/potass_iodide, /datum/reagent/medicine/morphine, /datum/reagent/medicine/insulin) + reagent_ids = list(/datum/reagent/medicine/syndicate_nanites, /datum/reagent/medicine/prussian_blue, /datum/reagent/medicine/morphine, /datum/reagent/medicine/insulin) bypass_protection = 1 accepts_reagent_upgrades = FALSE @@ -261,5 +261,5 @@ Borg Shaker /obj/item/reagent_containers/borghypo/epi name = "Stabilizer injector" desc = "An advanced chemical synthesizer and injection system, designed to stabilize patients." - reagent_ids = list(/datum/reagent/medicine/epinephrine, /datum/reagent/medicine/insulin) + reagent_ids = list(/datum/reagent/medicine/epinephrine, /datum/reagent/medicine/insulin, /datum/reagent/medicine/potass_iodide) accepts_reagent_upgrades = FALSE diff --git a/code/modules/research/designs/bluespace_designs.dm b/code/modules/research/designs/bluespace_designs.dm index b03b85f99b..0d11b8e887 100644 --- a/code/modules/research/designs/bluespace_designs.dm +++ b/code/modules/research/designs/bluespace_designs.dm @@ -35,6 +35,17 @@ dangerous_construction = TRUE departmental_flags = DEPARTMENTAL_FLAG_SCIENCE +/datum/design/duffelbag_holding + name = "Duffel Bag of Holding" + desc = "A duffel bag that opens into a localized pocket of bluespace." + id = "duffelbag_holding" + build_type = PROTOLATHE + materials = list(/datum/material/gold = 3000, /datum/material/diamond = 1500, /datum/material/uranium = 250, /datum/material/bluespace = 2000) + build_path = /obj/item/storage/backpack/holding/duffel + category = list("Bluespace Designs") + dangerous_construction = TRUE + departmental_flags = DEPARTMENTAL_FLAG_SCIENCE + /datum/design/biobag_holding name = "Bio Bag of Holding" desc = "A chemical holding thingy. Mostly used for xenobiology." diff --git a/code/modules/research/designs/mechfabricator_designs.dm b/code/modules/research/designs/mechfabricator_designs.dm index a5ad3287fc..02d16b8c2e 100644 --- a/code/modules/research/designs/mechfabricator_designs.dm +++ b/code/modules/research/designs/mechfabricator_designs.dm @@ -633,15 +633,6 @@ construction_time = 120 category = list("Cyborg Upgrade Modules") -/datum/design/borg_upgrade_premiumka - name = "Cyborg Upgrade (Premium Kinetic Accelerator)" - id = "borg_upgrade_premiumka" - build_type = MECHFAB - build_path = /obj/item/borg/upgrade/premiumka - materials = list(/datum/material/iron=8000, /datum/material/glass=4000, /datum/material/titanium=2000) - construction_time = 120 - category = list("Cyborg Upgrade Modules") - /datum/design/borg_upgrade_lavaproof name = "Cyborg Upgrade (Lavaproof Tracks)" id = "borg_upgrade_lavaproof" diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index b0d95a87d7..fe5f275da5 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -278,7 +278,7 @@ display_name = "Bluespace Pockets" description = "Studies into the mysterious alternate dimension known as bluespace and how to place items in the threads of reality." prereq_ids = list("adv_power", "adv_bluespace", "adv_biotech", "adv_plasma") - design_ids = list( "bluespacebodybag","bag_holding", "bluespace_pod", "borg_upgrade_trashofholding", "blutrash", "satchel_holding", "bsblood_bag") + design_ids = list( "bluespacebodybag","bag_holding", "bluespace_pod", "borg_upgrade_trashofholding", "blutrash", "satchel_holding", "bsblood_bag", "duffelbag_holding") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 5500) /datum/techweb_node/bluespace_portal @@ -336,7 +336,7 @@ display_name = "Advanced Robotics Research" description = "It can even do the dishes!" prereq_ids = list("robotics") - design_ids = list("borg_upgrade_diamonddrill", "borg_upgrade_advancedmop", "borg_upgrade_advcutter", "borg_upgrade_premiumka") + design_ids = list("borg_upgrade_diamonddrill", "borg_upgrade_advancedmop", "borg_upgrade_advcutter") research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 3000) /datum/techweb_node/neural_programming diff --git a/code/modules/surgery/organs/eyes.dm b/code/modules/surgery/organs/eyes.dm index a915d12838..6b93995e62 100644 --- a/code/modules/surgery/organs/eyes.dm +++ b/code/modules/surgery/organs/eyes.dm @@ -319,6 +319,8 @@ on_mob.forceMove(scanning) for(var/i in 1 to light_beam_distance) scanning = get_step(scanning, scandir) + if(!scanning) + break if(scanning.opacity || scanning.has_opaque_atom) stop = TRUE var/obj/effect/abstract/eye_lighting/L = LAZYACCESS(eye_lighting, i) diff --git a/code/modules/uplink/uplink_items.dm b/code/modules/uplink/uplink_items.dm index 52f6efd3df..bbfa186a48 100644 --- a/code/modules/uplink/uplink_items.dm +++ b/code/modules/uplink/uplink_items.dm @@ -1,4 +1,4 @@ -/proc/get_uplink_items(datum/game_mode/gamemode, allow_sales = TRUE, allow_restricted = TRUE) +/proc/get_uplink_items(datum/game_mode/gamemode, allow_sales = TRUE, allow_restricted = TRUE, other_filter = list()) var/list/filtered_uplink_items = GLOB.uplink_categories.Copy() // list of uplink categories without associated values. var/list/sale_items = list() @@ -18,7 +18,8 @@ continue if (I.restricted && !allow_restricted) continue - + if (I.type in other_filter) + continue LAZYSET(filtered_uplink_items[I.category], I.name, I) if(I.limited_stock < 0 && !I.cant_discount && I.item && I.cost > 1) diff --git a/html/changelogs/AutoChangeLog-pr-11290.yml b/html/changelogs/AutoChangeLog-pr-11290.yml new file mode 100644 index 0000000000..726a8ee797 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11290.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - rscadd: "Traitor classes for traitors: a new way for traitors to have objectives assigned." diff --git a/html/changelogs/AutoChangeLog-pr-11455.yml b/html/changelogs/AutoChangeLog-pr-11455.yml new file mode 100644 index 0000000000..a54556673e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11455.yml @@ -0,0 +1,5 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - tweak: "Number of paper work in the crate \"freelance paperwork\" is half" + - code_imp: "A few cases were something their is unneeded copy past replaced with many 1 in spawns" diff --git a/html/changelogs/AutoChangeLog-pr-11456.yml b/html/changelogs/AutoChangeLog-pr-11456.yml new file mode 100644 index 0000000000..b5a9353d33 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11456.yml @@ -0,0 +1,4 @@ +author: "bunny232" +delete-after: True +changes: + - rscadd: "Box station captain office now has a standard issue renault" diff --git a/html/changelogs/AutoChangeLog-pr-11458.yml b/html/changelogs/AutoChangeLog-pr-11458.yml new file mode 100644 index 0000000000..14e8d7d650 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11458.yml @@ -0,0 +1,5 @@ +author: "Trilbyspaceclone" +delete-after: True +changes: + - rscadd: "Potass Iodide has been fitted into standered borgs as well as medical ones. Upgraded hypos now have Prussian Blue as well." + - tweak: "Syndi borgs Potass Iodide has been swapped for Prussian Blue" diff --git a/html/changelogs/AutoChangeLog-pr-11460.yml b/html/changelogs/AutoChangeLog-pr-11460.yml new file mode 100644 index 0000000000..1c8fb3e3fa --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11460.yml @@ -0,0 +1,4 @@ +author: "Kraseo" +delete-after: True +changes: + - bugfix: "Mice don't chew on wires anymore while they're on your person." diff --git a/html/changelogs/AutoChangeLog-pr-11461.yml b/html/changelogs/AutoChangeLog-pr-11461.yml new file mode 100644 index 0000000000..547a2c58e1 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11461.yml @@ -0,0 +1,4 @@ +author: "Kraseo" +delete-after: True +changes: + - bugfix: "Bloodsucker heart theft objective now completes successfully." diff --git a/html/changelogs/AutoChangeLog-pr-11462.yml b/html/changelogs/AutoChangeLog-pr-11462.yml new file mode 100644 index 0000000000..5c7617e104 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11462.yml @@ -0,0 +1,7 @@ +author: "Qustinnus/floyd, Ghommie" +delete-after: True +changes: + - bugfix: "To save costs, Nanotrasen has removed the emergency battery ejection systems in modular computers. We realized saving the batteries isn't really important." + - bugfix: "You can squash spiderlings with your bare hands now." + - bugfix: "Being deafened properly stops jukebox music from playing." + - bugfix: "admin multicam toggles no longer tells everyone but only admins and AIs" diff --git a/html/changelogs/AutoChangeLog-pr-11464.yml b/html/changelogs/AutoChangeLog-pr-11464.yml new file mode 100644 index 0000000000..cc59b44a30 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11464.yml @@ -0,0 +1,4 @@ +author: "Putnam3145" +delete-after: True +changes: + - bugfix: "Server-run votes aren't subject to vote cooldown" diff --git a/html/changelogs/AutoChangeLog-pr-11465.yml b/html/changelogs/AutoChangeLog-pr-11465.yml new file mode 100644 index 0000000000..d0de4bf083 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11465.yml @@ -0,0 +1,4 @@ +author: "Seris02" +delete-after: True +changes: + - rscadd: "duffel bags of holding" diff --git a/html/changelogs/AutoChangeLog-pr-11466.yml b/html/changelogs/AutoChangeLog-pr-11466.yml new file mode 100644 index 0000000000..c5d60c84c2 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11466.yml @@ -0,0 +1,4 @@ +author: "Seris02" +delete-after: True +changes: + - bugfix: "quirk blacklist fixing" diff --git a/html/changelogs/AutoChangeLog-pr-11467.yml b/html/changelogs/AutoChangeLog-pr-11467.yml new file mode 100644 index 0000000000..5b59fc2e7b --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11467.yml @@ -0,0 +1,4 @@ +author: "Kraseo" +delete-after: True +changes: + - tweak: "Blacklists turret protected areas, the toxins test range, asteroid ruins, and solars from being valid dropoff locations for contracts." diff --git a/html/changelogs/AutoChangeLog-pr-11472.yml b/html/changelogs/AutoChangeLog-pr-11472.yml new file mode 100644 index 0000000000..c7b141d3d9 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11472.yml @@ -0,0 +1,4 @@ +author: "zeroisthebiggay" +delete-after: True +changes: + - rscadd: "Box Station has gotten a brand new brig. Go and check it out and discover all the quirky little soulbits." diff --git a/html/changelogs/AutoChangeLog-pr-11474.yml b/html/changelogs/AutoChangeLog-pr-11474.yml new file mode 100644 index 0000000000..1acf556a00 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11474.yml @@ -0,0 +1,4 @@ +author: "kappa-sama" +delete-after: True +changes: + - balance: "60 seconds instead of 120 for firebreath" diff --git a/html/changelogs/AutoChangeLog-pr-11475.yml b/html/changelogs/AutoChangeLog-pr-11475.yml new file mode 100644 index 0000000000..d6a852ba88 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11475.yml @@ -0,0 +1,4 @@ +author: "Seris02" +delete-after: True +changes: + - bugfix: "robotics console button swapping" diff --git a/html/changelogs/AutoChangeLog-pr-11477.yml b/html/changelogs/AutoChangeLog-pr-11477.yml new file mode 100644 index 0000000000..dcbb8368a9 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11477.yml @@ -0,0 +1,4 @@ +author: "kevinz000" +delete-after: True +changes: + - balance: "Beam rifles shot count 10 --> 5 and can no longer pierce. Also renders properly for reflections against blobs and some other things." diff --git a/html/changelogs/AutoChangeLog-pr-11483.yml b/html/changelogs/AutoChangeLog-pr-11483.yml new file mode 100644 index 0000000000..1dba7db9e1 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11483.yml @@ -0,0 +1,4 @@ +author: "Hatterhat" +delete-after: True +changes: + - rscdel: "Mining cyborgs are no longer physically capable of claiming points nor wielding a premium accelerator." diff --git a/html/changelogs/AutoChangeLog-pr-11484.yml b/html/changelogs/AutoChangeLog-pr-11484.yml new file mode 100644 index 0000000000..b344c39cd4 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11484.yml @@ -0,0 +1,4 @@ +author: "Yenwodyah" +delete-after: True +changes: + - bugfix: "Recycler doesn't delete people in mechs, cardboard boxes, spells, etc. anymore." diff --git a/html/changelogs/AutoChangeLog-pr-11488.yml b/html/changelogs/AutoChangeLog-pr-11488.yml new file mode 100644 index 0000000000..fa4343b4a8 --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11488.yml @@ -0,0 +1,4 @@ +author: "bunny232" +delete-after: True +changes: + - bugfix: "Box bridge now actually has the air distro connected" diff --git a/html/changelogs/AutoChangeLog-pr-11496.yml b/html/changelogs/AutoChangeLog-pr-11496.yml new file mode 100644 index 0000000000..08c74a913e --- /dev/null +++ b/html/changelogs/AutoChangeLog-pr-11496.yml @@ -0,0 +1,4 @@ +author: "Seris02" +delete-after: True +changes: + - bugfix: "fixed thieving gloves not pickpocketing fast" diff --git a/icons/effects/creampie.dmi b/icons/effects/creampie.dmi index 6caecf7d76..d85131f47d 100644 Binary files a/icons/effects/creampie.dmi and b/icons/effects/creampie.dmi differ diff --git a/icons/mob/back.dmi b/icons/mob/back.dmi index 1a2c0e189a..32637a7989 100644 Binary files a/icons/mob/back.dmi and b/icons/mob/back.dmi differ diff --git a/icons/obj/storage.dmi b/icons/obj/storage.dmi index 56c32eb889..33cb08b738 100644 Binary files a/icons/obj/storage.dmi and b/icons/obj/storage.dmi differ diff --git a/tgstation.dme b/tgstation.dme old mode 100755 new mode 100644 index 6c402f99aa..0142e1ca87 --- a/tgstation.dme +++ b/tgstation.dme @@ -1499,6 +1499,14 @@ #include "code\modules\antagonists\swarmer\swarmer_event.dm" #include "code\modules\antagonists\traitor\datum_traitor.dm" #include "code\modules\antagonists\traitor\syndicate_contract.dm" +#include "code\modules\antagonists\traitor\classes\ai.dm" +#include "code\modules\antagonists\traitor\classes\assassin.dm" +#include "code\modules\antagonists\traitor\classes\freeform.dm" +#include "code\modules\antagonists\traitor\classes\hijack.dm" +#include "code\modules\antagonists\traitor\classes\human.dm" +#include "code\modules\antagonists\traitor\classes\martyr.dm" +#include "code\modules\antagonists\traitor\classes\subterfuge.dm" +#include "code\modules\antagonists\traitor\classes\traitor_class.dm" #include "code\modules\antagonists\traitor\equipment\contractor.dm" #include "code\modules\antagonists\traitor\equipment\Malf_Modules.dm" #include "code\modules\antagonists\traitor\IAA\internal_affairs.dm" diff --git a/tgui/package-lock.json b/tgui/package-lock.json index 470e5c2d23..d2567aba36 100644 --- a/tgui/package-lock.json +++ b/tgui/package-lock.json @@ -5480,9 +5480,9 @@ } }, "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-rIqbOrKb8GJmx/5bc2M0QchhUouMXSpd1RTclXsB41JdL+VtnojfaJR+h7F9k18/4kHUsBFgk80Uk+q569vjPA==" }, "mixin-deep": { "version": "1.3.2", diff --git a/tgui/package.json b/tgui/package.json index dd81c3b318..85d47ecfe7 100644 --- a/tgui/package.json +++ b/tgui/package.json @@ -35,7 +35,7 @@ "html5shiv": "3.7.3", "ie8": "0.8.1", "lodash": "^4.17.15", - "minimist": "1.2.0", + "minimist": "1.2.2", "paths-js": "0.4.10", "pleeease-filters": "2.0.0", "postcss": "7.0.18",