diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index d6e413f1de..f8b44323a7 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -2292,8 +2292,7 @@ /turf/open/floor/plating, /area/crew_quarters/fitness/recreation) "aeD" = ( -/obj/machinery/door/airlock/external, -/turf/open/floor/plating, +/turf/open/floor/plasteel/grimy, /area/hallway/primary/port) "aeE" = ( /obj/effect/spawner/structure/window/reinforced, @@ -3116,9 +3115,6 @@ }, /turf/open/floor/plasteel, /area/security/prison) -"afQ" = ( -/turf/open/floor/plating, -/area/hallway/primary/port) "afR" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ dir = 1 @@ -3188,8 +3184,14 @@ /turf/open/floor/plasteel/dark, /area/ai_monitored/security/armory) "afZ" = ( -/obj/structure/girder, -/turf/open/floor/plating, +/obj/machinery/camera{ + c_tag = "Arrivals - Lounge"; + dir = 4 + }, +/obj/structure/chair/comfy{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, /area/hallway/primary/port) "aga" = ( /obj/effect/turf_decal/tile/neutral{ @@ -3670,8 +3672,10 @@ /turf/open/floor/plasteel/dark, /area/security/prison) "agQ" = ( -/obj/item/electronics/airlock, -/turf/open/floor/plating, +/obj/machinery/holopad{ + pixel_y = -15 + }, +/turf/open/floor/carpet, /area/hallway/primary/port) "agR" = ( /obj/machinery/airalarm{ @@ -4281,9 +4285,7 @@ }, /area/maintenance/fore) "ahT" = ( -/turf/open/floor/plating{ - icon_state = "panelscorched" - }, +/turf/open/floor/carpet, /area/hallway/primary/port) "ahU" = ( /obj/effect/decal/cleanable/cobweb/cobweb2, @@ -4802,13 +4804,14 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/fitness/recreation) "aiT" = ( -/obj/effect/decal/cleanable/oil{ - icon_state = "floor5" +/obj/effect/turf_decal/tile/blue{ + dir = 4 }, -/turf/open/floor/plating{ - icon_state = "panelscorched" +/obj/machinery/light{ + dir = 4 }, -/area/hallway/primary/port) +/turf/open/floor/plasteel/white/corner, +/area/hallway/secondary/entry) "aiU" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on, /obj/effect/turf_decal/tile/neutral{ @@ -4830,9 +4833,13 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/fitness/recreation) "aiW" = ( -/turf/open/floor/plating{ - icon_state = "platingdmg1" +/obj/structure/chair/comfy{ + dir = 8 }, +/obj/machinery/light{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, /area/hallway/primary/port) "aiX" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, @@ -4936,12 +4943,11 @@ /turf/open/floor/plating, /area/maintenance/port/fore) "ajk" = ( -/obj/structure/shuttle/engine/propulsion/right{ - dir = 4 - }, -/turf/open/floor/plating{ - icon_state = "platingdmg3" +/obj/structure/table/wood, +/obj/item/flashlight/lamp/green{ + pixel_y = 3 }, +/turf/open/floor/plasteel/grimy, /area/hallway/primary/port) "ajl" = ( /obj/item/soap/deluxe, @@ -5035,8 +5041,10 @@ /turf/open/floor/plasteel/dark, /area/security/warden) "ajs" = ( -/obj/item/stack/sheet/metal/ten, -/turf/open/floor/plating, +/obj/item/kirbyplants{ + icon_state = "plant-08" + }, +/turf/open/floor/plasteel/grimy, /area/hallway/primary/port) "ajt" = ( /obj/structure/closet{ @@ -5059,8 +5067,20 @@ /turf/open/floor/plasteel/dark, /area/security/warden) "aju" = ( -/obj/item/stack/sheet/mineral/wood/twenty, -/turf/open/floor/plating, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/plasteel, /area/hallway/primary/port) "ajv" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on{ @@ -6921,9 +6941,17 @@ /turf/open/floor/plating, /area/maintenance/fore) "amv" = ( -/obj/item/stack/sheet/metal/ten, -/obj/item/wrench, -/turf/open/floor/plating, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, /area/hallway/primary/port) "amw" = ( /obj/structure/window/reinforced, @@ -6961,10 +6989,6 @@ /obj/structure/window/reinforced, /turf/open/floor/plasteel/dark, /area/crew_quarters/fitness/recreation) -"amB" = ( -/obj/effect/decal/cleanable/blood/old, -/turf/open/floor/plating, -/area/hallway/primary/port) "amC" = ( /obj/structure/chair{ dir = 4 @@ -24081,9 +24105,10 @@ icon_state = "map-right-MS"; pixel_y = 32 }, -/turf/open/floor/plasteel/white/corner{ +/obj/effect/turf_decal/tile/blue{ dir = 4 }, +/turf/open/floor/plasteel, /area/hallway/secondary/entry) "aVE" = ( /obj/machinery/atmospherics/pipe/manifold/supply/hidden{ @@ -31733,28 +31758,22 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, -/turf/open/floor/plasteel/white/corner, +/turf/open/floor/plasteel, /area/hallway/secondary/entry) "bjX" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/obj/effect/turf_decal/tile/blue{ + dir = 4 }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/hallway/primary/port) +/turf/open/floor/plasteel/cafeteria, +/area/hallway/secondary/entry) "bjY" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/hallway/primary/port) "bjZ" = ( @@ -31814,6 +31833,12 @@ dir = 1 }, /obj/structure/cable, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/port) "bke" = ( @@ -31826,6 +31851,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/port) "bkf" = ( @@ -31845,6 +31873,9 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/port) "bkg" = ( @@ -32823,39 +32854,23 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 }, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/corner, /obj/structure/cable/yellow{ icon_state = "1-2" }, /obj/structure/cable/yellow{ icon_state = "2-4" }, -/turf/open/floor/plasteel/white/corner, +/turf/open/floor/plasteel, /area/hallway/secondary/entry) "blU" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/door/firedoor, /obj/structure/cable/yellow{ icon_state = "4-8" }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) -"blV" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/obj/effect/turf_decal/tile/blue{ + dir = 4 }, -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) +/turf/open/floor/plasteel/white/corner, +/area/hallway/secondary/entry) "blW" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -32864,7 +32879,6 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/effect/turf_decal/stripes/line, /obj/structure/cable/yellow{ icon_state = "4-8" }, @@ -32875,7 +32889,6 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/effect/turf_decal/stripes/line, /obj/structure/cable/yellow{ icon_state = "4-8" }, @@ -32890,7 +32903,6 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/effect/turf_decal/stripes/line, /obj/structure/cable/yellow{ icon_state = "4-8" }, @@ -32904,7 +32916,6 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/effect/turf_decal/stripes/line, /obj/structure/cable/yellow{ icon_state = "4-8" }, @@ -32918,7 +32929,6 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/effect/turf_decal/stripes/line, /obj/structure/cable/yellow{ icon_state = "4-8" }, @@ -32931,10 +32941,13 @@ /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/effect/turf_decal/stripes/line, /obj/structure/cable/yellow{ icon_state = "4-8" }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/port) "bmc" = ( @@ -32944,8 +32957,8 @@ /obj/structure/cable/yellow{ icon_state = "4-8" }, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, /turf/open/floor/plasteel, /area/hallway/primary/port) @@ -32956,6 +32969,9 @@ /obj/structure/cable/yellow{ icon_state = "2-8" }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/port) "bme" = ( @@ -33830,30 +33846,9 @@ }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) -"bnL" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/newscaster{ - pixel_x = 28; - pixel_y = 1 - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel/white/corner, -/area/hallway/secondary/entry) "bnR" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/obj/structure/sign/mining, -/turf/open/floor/plasteel, +/obj/structure/chair/comfy, +/turf/open/floor/plasteel/grimy, /area/hallway/primary/port) "bnS" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, @@ -33863,7 +33858,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/effect/turf_decal/stripes/line{ +/obj/effect/turf_decal/tile/neutral{ dir = 8 }, /turf/open/floor/plasteel, @@ -33878,6 +33873,9 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/port) "bnU" = ( @@ -34956,29 +34954,19 @@ "bqc" = ( /obj/machinery/holopad, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /obj/structure/cable/yellow{ icon_state = "1-2" }, -/turf/open/floor/plasteel/white/corner, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel, /area/hallway/secondary/entry) "bqd" = ( -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line, /obj/structure/cable/yellow{ icon_state = "4-8" }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/hallway/primary/port) "bqj" = ( @@ -34987,7 +34975,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/effect/turf_decal/stripes/line{ +/obj/effect/turf_decal/tile/neutral{ dir = 8 }, /turf/open/floor/plasteel, @@ -36217,16 +36205,10 @@ /area/hallway/secondary/entry) "bso" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /obj/structure/cable/yellow{ icon_state = "1-2" }, -/turf/open/floor/plasteel/white/corner, +/turf/open/floor/plasteel, /area/hallway/secondary/entry) "bsu" = ( /obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ @@ -36236,7 +36218,7 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/effect/turf_decal/stripes/line{ +/obj/effect/turf_decal/tile/neutral{ dir = 8 }, /turf/open/floor/plasteel, @@ -36248,6 +36230,7 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/port) "bsw" = ( @@ -37020,29 +37003,25 @@ /area/hallway/secondary/entry) "btY" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/obj/structure/disposalpipe/segment{ + dir = 9 }, -/obj/machinery/camera{ - c_tag = "Port Primary Hallway - Port"; - dir = 4 +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, /turf/open/floor/plasteel, /area/hallway/primary/port) "btZ" = ( -/obj/machinery/light{ - dir = 4 - }, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, /obj/structure/cable/yellow{ icon_state = "1-2" }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/port) "bua" = ( @@ -37847,26 +37826,23 @@ /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bvK" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bvL" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/structure/cable/yellow{ + icon_state = "2-4" }, /obj/structure/cable/yellow{ icon_state = "1-2" }, -/turf/open/floor/plasteel/white/corner, +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/open/floor/plasteel, /area/hallway/secondary/entry) "bvT" = ( /obj/structure/disposalpipe/segment{ @@ -37878,15 +37854,16 @@ /turf/open/floor/plating, /area/maintenance/department/science/xenobiology) "bvV" = ( -/obj/structure/extinguisher_cabinet{ - pixel_x = 27 - }, /obj/effect/turf_decal/tile/neutral{ dir = 4 }, +/obj/structure/cable/yellow{ + icon_state = "1-8" + }, /obj/structure/cable/yellow{ icon_state = "1-2" }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/port) "bvW" = ( @@ -38677,28 +38654,36 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/turf/open/floor/plasteel, +/obj/structure/cable/yellow{ + icon_state = "2-4" + }, +/turf/open/floor/plasteel/white/corner, /area/hallway/secondary/entry) "bxC" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 9 }, -/turf/open/floor/plasteel, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/turf/open/floor/plasteel/white/corner, /area/hallway/secondary/entry) "bxD" = ( /obj/effect/turf_decal/tile/blue{ - dir = 4 + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/machinery/light{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 5 }, /obj/structure/cable/yellow{ icon_state = "1-2" }, +/obj/structure/cable/yellow{ + icon_state = "2-8" + }, /turf/open/floor/plasteel/white/corner, /area/hallway/secondary/entry) "bxL" = ( @@ -38718,15 +38703,13 @@ /obj/effect/turf_decal/tile/neutral{ dir = 4 }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, /obj/structure/cable/yellow{ icon_state = "1-4" }, -/obj/structure/cable/yellow{ - icon_state = "2-4" +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/port) "bxO" = ( @@ -39609,23 +39592,14 @@ /turf/open/floor/plasteel/dark, /area/aisat) "bzw" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/machinery/newscaster{ - pixel_x = 28; - pixel_y = 1 +/obj/machinery/door/airlock{ + name = "Port Emergency Storage" }, /obj/structure/cable/yellow{ icon_state = "1-2" }, -/turf/open/floor/plasteel/white/corner, -/area/hallway/secondary/entry) +/turf/open/floor/plating, +/area/maintenance/port) "bzx" = ( /turf/closed/wall, /area/security/vacantoffice) @@ -40285,45 +40259,22 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plasteel, /area/hallway/secondary/entry) -"bBd" = ( -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/obj/structure/cable/yellow{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) "bBf" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +/obj/structure/table/wood, +/obj/machinery/light_switch{ + pixel_x = -28 }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/item/folder, +/turf/open/floor/wood, +/area/security/vacantoffice) "bBg" = ( /turf/open/floor/wood, /area/security/vacantoffice) "bBh" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable/yellow{ - icon_state = "2-8" - }, -/obj/structure/cable/yellow{ - icon_state = "2-4" - }, -/turf/open/floor/plasteel, +/obj/structure/table/wood, +/obj/item/reagent_containers/food/snacks/chips, +/turf/open/floor/plasteel/grimy, /area/hallway/primary/port) "bBi" = ( /obj/structure/table/wood, @@ -41039,33 +40990,29 @@ /obj/structure/cable/yellow{ icon_state = "1-2" }, -/turf/open/floor/plasteel/white/corner, -/area/hallway/secondary/entry) -"bCI" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 8 - }, /obj/effect/turf_decal/tile/blue{ dir = 4 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 +/turf/open/floor/plasteel/white/corner, +/area/hallway/secondary/entry) +"bCI" = ( +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 6 }, /obj/structure/cable/yellow{ icon_state = "1-2" }, -/turf/open/floor/plasteel/white/corner, -/area/hallway/secondary/entry) +/turf/open/floor/plating, +/area/maintenance/port) "bCJ" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/obj/item/storage/toolbox/emergency, +/obj/machinery/atmospherics/pipe/simple/supply/hidden{ + dir = 10 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 +/turf/open/floor/plating{ + icon_state = "panelscorched" }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/hallway/primary/port) +/area/maintenance/port) "bCK" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -41074,66 +41021,35 @@ /turf/open/floor/plating, /area/maintenance/starboard) "bCL" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/firealarm{ - pixel_y = -24 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) +/turf/open/floor/wood, +/area/security/vacantoffice) "bCM" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/item/radio/intercom{ - pixel_y = -28 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/security/vacantoffice) "bCN" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/effect/turf_decal/stripes/line{ dir = 8 }, /obj/machinery/door/firedoor, -/obj/machinery/power/apc{ - areastring = "/area/hallway/secondary/entry"; - dir = 8; - name = "Arrivals APC"; - pixel_x = -26 - }, -/obj/structure/cable/yellow{ - icon_state = "0-4" - }, /turf/open/floor/plasteel, /area/hallway/secondary/entry) "bCP" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/structure/sign/map/right{ - desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; - icon_state = "map-right-MS"; - pixel_y = -32 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) +/turf/open/floor/plating, +/area/crew_quarters/toilet/auxiliary) "bCQ" = ( /obj/machinery/door/firedoor, -/obj/structure/cable/yellow{ - icon_state = "2-8" +/obj/effect/turf_decal/tile/blue{ + dir = 4 }, -/turf/open/floor/plasteel, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel/white/corner, /area/hallway/secondary/entry) "bCR" = ( /obj/machinery/power/apc/highcap/five_k{ @@ -41143,7 +41059,7 @@ }, /obj/structure/cable/yellow, /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 5 + dir = 9 }, /turf/open/floor/plasteel, /area/crew_quarters/toilet/auxiliary) @@ -41152,9 +41068,6 @@ dir = 8; pixel_x = 24 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 10 - }, /turf/open/floor/plasteel, /area/crew_quarters/toilet/auxiliary) "bCV" = ( @@ -41792,44 +41705,43 @@ /turf/open/floor/plasteel/white/corner, /area/hallway/secondary/entry) "bEo" = ( -/obj/machinery/door/airlock{ - name = "Port Emergency Storage" - }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/obj/item/storage/box/lights/mixed, /obj/structure/cable/yellow{ icon_state = "1-2" }, /turf/open/floor/plating, /area/maintenance/port) "bEp" = ( -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) +/obj/machinery/vending/coffee, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/port) "bEq" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/closed/wall, -/area/security/vacantoffice) -"bEs" = ( -/obj/structure/table/wood, -/obj/item/paper_bin{ - pixel_x = -2; - pixel_y = 6 - }, -/obj/machinery/newscaster{ - pixel_y = 32 +/obj/structure/light_construct{ + dir = 8 }, /turf/open/floor/wood, /area/security/vacantoffice) -"bEt" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 +"bEs" = ( +/obj/effect/turf_decal/tile/blue{ + dir = 4 }, -/obj/effect/turf_decal/stripes/line{ +/obj/machinery/power/apc{ + areastring = "/area/hallway/secondary/entry"; + dir = 4; + name = "Arrivals APC"; + pixel_x = 26 + }, +/obj/structure/cable/yellow{ + icon_state = "0-8" + }, +/turf/open/floor/plasteel/white/corner, +/area/hallway/secondary/entry) +"bEt" = ( +/obj/structure/chair/comfy{ dir = 8 }, -/obj/machinery/door/firedoor, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/grimy, /area/hallway/primary/port) "bEu" = ( /obj/machinery/door/airlock{ @@ -42811,14 +42723,11 @@ /turf/open/floor/plasteel/grimy, /area/tcommsat/computer) "bGj" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/obj/machinery/vending/cola/random, +/obj/machinery/newscaster{ + pixel_x = -30 }, -/obj/machinery/door/firedoor, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/turf/open/floor/plasteel, +/turf/open/floor/plasteel/dark, /area/hallway/primary/port) "bGk" = ( /obj/structure/cable/yellow{ @@ -42842,8 +42751,9 @@ /turf/open/floor/plasteel, /area/crew_quarters/toilet/auxiliary) "bGm" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 6 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/machinery/shower{ + dir = 8 }, /turf/open/floor/plasteel, /area/crew_quarters/toilet/auxiliary) @@ -43438,18 +43348,20 @@ /turf/open/floor/plasteel/white/corner, /area/hallway/secondary/entry) "bHJ" = ( -/obj/item/tank/internals/oxygen, -/obj/item/tank/internals/oxygen, -/obj/item/clothing/mask/breath, -/obj/item/clothing/mask/breath, -/obj/machinery/light/small{ +/obj/effect/turf_decal/tile/blue{ dir = 4 }, -/turf/open/floor/plating, -/area/maintenance/port) +/obj/machinery/newscaster{ + pixel_x = 28; + pixel_y = 1 + }, +/turf/open/floor/plasteel/white/corner, +/area/hallway/secondary/entry) "bHK" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 +/obj/structure/table/wood, +/obj/item/book/manual/wiki/security_space_law{ + pixel_x = -3; + pixel_y = 5 }, /turf/open/floor/wood, /area/security/vacantoffice) @@ -43463,9 +43375,11 @@ /turf/open/floor/carpet, /area/security/vacantoffice) "bHM" = ( -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/security/vacantoffice) +/obj/structure/chair/comfy{ + dir = 4 + }, +/turf/open/floor/plasteel/grimy, +/area/hallway/primary/port) "bHN" = ( /obj/machinery/shower{ dir = 4 @@ -44151,9 +44065,10 @@ /turf/open/floor/plasteel/grimy, /area/tcommsat/computer) "bJj" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/door/airlock/maintenance{ + req_one_access_txt = "12;27;37" }, +/obj/machinery/atmospherics/pipe/simple/supply/hidden, /obj/structure/cable/yellow{ icon_state = "1-2" }, @@ -44191,26 +44106,23 @@ /turf/open/floor/plasteel/white/corner, /area/hallway/secondary/entry) "bJp" = ( -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/turf/open/floor/plasteel, -/area/hallway/secondary/entry) +/obj/machinery/vending/snack/random, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/port) "bJq" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/item/storage/box/lights/mixed, /obj/structure/cable/yellow{ icon_state = "1-2" }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, /turf/open/floor/plating, /area/maintenance/port) "bJr" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 1 - }, -/obj/machinery/portable_atmospherics/canister/air, -/turf/open/floor/plating, -/area/maintenance/port) +/obj/machinery/atmospherics/pipe/simple/supply/hidden, +/turf/open/floor/plasteel, +/area/hallway/secondary/entry) "bJs" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 10 @@ -44224,9 +44136,6 @@ /obj/item/radio/intercom{ pixel_x = -29 }, -/obj/machinery/light/small{ - dir = 8 - }, /turf/open/floor/wood, /area/security/vacantoffice) "bJu" = ( @@ -44250,8 +44159,10 @@ /turf/open/floor/carpet, /area/security/vacantoffice) "bJw" = ( -/obj/structure/chair/office{ - dir = 8 +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_x = -2; + pixel_y = 6 }, /turf/open/floor/carpet, /area/security/vacantoffice) @@ -44260,15 +44171,6 @@ dir = 8; pixel_x = 24 }, -/obj/structure/table/wood, -/obj/item/camera_film{ - pixel_x = 6; - pixel_y = 7 - }, -/obj/item/camera_film{ - pixel_x = -3; - pixel_y = 5 - }, /turf/open/floor/wood, /area/security/vacantoffice) "bJy" = ( @@ -44956,15 +44858,11 @@ /turf/open/floor/plasteel/white/corner, /area/hallway/secondary/entry) "bKX" = ( -/obj/machinery/door/airlock/maintenance{ - req_one_access_txt = "12;27;37" +/obj/structure/chair/comfy{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/simple/supply/hidden, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/port) +/turf/open/floor/plasteel/grimy, +/area/hallway/primary/port) "bKY" = ( /obj/machinery/power/apc{ areastring = "/area/security/vacantoffice"; @@ -45730,7 +45628,7 @@ /turf/open/floor/plasteel/white/corner, /area/hallway/secondary/entry) "bMC" = ( -/obj/structure/chair/office, +/obj/structure/chair/office/dark, /turf/open/floor/wood, /area/security/vacantoffice) "bMD" = ( @@ -45993,19 +45891,15 @@ /turf/open/floor/carpet, /area/bridge/showroom/corporate) "bNd" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/item/tank/internals/oxygen, +/obj/item/tank/internals/oxygen, +/obj/item/clothing/mask/breath, +/obj/item/clothing/mask/breath, +/obj/machinery/light/small{ dir = 4 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/camera{ - c_tag = "Port Primary Hallway - Mining Shuttle"; - dir = 1 - }, -/obj/effect/landmark/event_spawn, -/turf/open/floor/plasteel, -/area/hallway/primary/port) +/turf/open/floor/plating, +/area/maintenance/port) "bNe" = ( /obj/structure/table/wood, /obj/item/phone{ @@ -46049,17 +45943,11 @@ /turf/open/floor/wood, /area/bridge/showroom/corporate) "bNh" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) +/obj/structure/table/wood, +/obj/item/folder/red, +/obj/item/pen/red, +/turf/open/floor/wood, +/area/security/vacantoffice) "bNi" = ( /obj/structure/window/reinforced{ dir = 8 @@ -46322,12 +46210,17 @@ /turf/open/floor/wood, /area/crew_quarters/theatre) "bNK" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 1 +/obj/machinery/airalarm{ + dir = 8; + pixel_x = 24 }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) +/obj/structure/table/wood, +/obj/item/paper_bin{ + pixel_x = -2; + pixel_y = 6 + }, +/turf/open/floor/wood, +/area/security/vacantoffice) "bNL" = ( /obj/structure/table, /obj/item/stock_parts/subspace/transmitter, @@ -47710,9 +47603,6 @@ dir = 8; pixel_x = 24 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, /turf/open/floor/plating, /area/crew_quarters/toilet/auxiliary) "bQQ" = ( @@ -79125,13 +79015,10 @@ /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 }, -/obj/machinery/door/firedoor, /obj/structure/sign/poster/official/random{ pixel_y = 32 }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/hallway/primary/port) "dhQ" = ( @@ -79209,14 +79096,11 @@ /turf/open/floor/wood, /area/crew_quarters/theatre) "dhZ" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +/obj/structure/urinal{ + pixel_y = 29 }, -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) +/turf/open/floor/plating, +/area/crew_quarters/toilet/auxiliary) "dib" = ( /obj/structure/table/wood, /obj/item/lipstick{ @@ -79252,10 +79136,6 @@ /area/hallway/secondary/entry) "did" = ( /obj/structure/table/wood, -/obj/machinery/light_switch{ - pixel_x = -28 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /obj/item/folder, /turf/open/floor/wood, /area/security/vacantoffice) @@ -79271,13 +79151,11 @@ /turf/open/floor/wood, /area/crew_quarters/theatre) "dig" = ( -/obj/machinery/airalarm{ - dir = 8; - pixel_x = 24 +/obj/item/kirbyplants{ + icon_state = "plant-03" }, -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/security/vacantoffice) +/turf/open/floor/plasteel/grimy, +/area/hallway/primary/port) "dih" = ( /obj/machinery/light/small, /obj/structure/sign/poster/official/random{ @@ -79850,20 +79728,10 @@ /turf/open/space/basic, /area/space) "djW" = ( -/obj/machinery/light{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plasteel, -/area/hallway/primary/port) +/area/maintenance/port) "djX" = ( /obj/structure/closet/crate/coffin, /obj/machinery/door/window/eastleft{ @@ -81264,6 +81132,12 @@ }, /turf/closed/wall, /area/maintenance/starboard) +"dQg" = ( +/obj/machinery/door/airlock/maintenance{ + req_one_access_txt = "12;27;37" + }, +/turf/open/floor/plating, +/area/maintenance/port) "dYu" = ( /obj/machinery/door/airlock/external{ name = "Auxiliary Airlock" @@ -81274,9 +81148,16 @@ /turf/open/floor/plating, /area/hallway/secondary/entry) "eiS" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/turf/open/floor/plasteel, -/area/crew_quarters/toilet/auxiliary) +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/camera{ + c_tag = "Port Primary Hallway - True Port"; + dir = 4 + }, +/turf/open/floor/plasteel/dark, +/area/hallway/primary/port) "eoK" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -81380,6 +81261,12 @@ }, /turf/open/floor/plasteel/white, /area/science/circuit) +"fDG" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 6 + }, +/turf/open/floor/plasteel, +/area/crew_quarters/toilet/auxiliary) "fFM" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -81589,12 +81476,25 @@ /turf/open/floor/plasteel, /area/engine/atmos) "iSt" = ( -/obj/machinery/door/airlock/grunge, -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/blue{ + dir = 4 + }, +/turf/open/floor/plasteel/white/corner, +/area/hallway/secondary/entry) +"jdf" = ( +/obj/machinery/door/airlock{ + id_tag = "AuxShower"; + name = "Shower" + }, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, /turf/open/floor/plasteel, -/area/security/vacantoffice) +/area/crew_quarters/toilet/auxiliary) "jeV" = ( /obj/machinery/conveyor/inverted{ dir = 10; @@ -81662,15 +81562,18 @@ /turf/open/floor/plasteel, /area/engine/atmos) "jBe" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" + }, +/obj/effect/turf_decal/tile/neutral{ dir = 4 }, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/structure/sign/poster/official/random{ - pixel_y = -32 - }, /turf/open/floor/plasteel, /area/hallway/primary/port) "jKK" = ( @@ -81702,15 +81605,23 @@ /obj/effect/turf_decal/tile/neutral{ dir = 1 }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/door/firedoor, /obj/structure/cable/yellow{ icon_state = "4-8" }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, /turf/open/floor/plasteel, /area/hallway/primary/port) +"jRo" = ( +/obj/structure/table/wood, +/obj/machinery/newscaster{ + pixel_y = 32 + }, +/obj/item/clipboard, +/obj/item/paper, +/turf/open/floor/wood, +/area/security/vacantoffice) "kfu" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden, /turf/open/floor/plasteel/white, @@ -81789,15 +81700,18 @@ /turf/open/floor/plasteel/white, /area/science/circuit) "kQP" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/machinery/navbeacon{ + codes_txt = "patrol;next_patrol=6-Port-Central"; + location = "5-Customs" + }, +/obj/structure/cable/yellow{ + icon_state = "4-8" }, /obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/airalarm{ - dir = 1; - pixel_y = -22 + dir = 4 }, /turf/open/floor/plasteel, /area/hallway/primary/port) @@ -81843,6 +81757,9 @@ /turf/open/floor/plasteel/white, /area/science/circuit) "lws" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, /turf/open/floor/carpet, /area/security/vacantoffice) "lzk" = ( @@ -81920,31 +81837,34 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/cryopod) "maP" = ( -/obj/item/storage/toolbox/emergency, -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 10 +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 }, -/turf/open/floor/plating{ - icon_state = "panelscorched" +/obj/structure/cable/yellow{ + icon_state = "4-8" }, -/area/maintenance/port) +/turf/open/floor/plasteel, +/area/hallway/primary/port) "mcS" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 9 - }, -/obj/structure/disposalpipe/segment{ - dir = 9 + dir = 4 }, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/structure/sign/map/left{ - desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; - icon_state = "map-left-MS"; - pixel_y = -32 +/obj/effect/turf_decal/tile/blue{ + dir = 4 }, -/turf/open/floor/plasteel, -/area/hallway/primary/port) +/obj/effect/turf_decal/tile/blue{ + dir = 8 + }, +/obj/item/radio/intercom{ + name = "Station Intercom (General)"; + pixel_y = -28 + }, +/turf/open/floor/plasteel/white/corner, +/area/hallway/secondary/entry) "mjJ" = ( /obj/machinery/nuclearbomb/beer{ pixel_x = 2; @@ -81956,6 +81876,12 @@ /obj/structure/lattice, /turf/closed/wall, /area/crew_quarters/cryopod) +"mot" = ( +/obj/structure/chair/office/dark{ + dir = 8 + }, +/turf/open/floor/wood, +/area/security/vacantoffice) "mvj" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -81997,17 +81923,11 @@ }, /area/maintenance/port/aft) "nhy" = ( -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/corner{ +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 4 }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, +/obj/effect/landmark/event_spawn, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/hallway/primary/port) "njd" = ( @@ -82293,9 +82213,22 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/cryopod) "pHS" = ( -/obj/structure/closet/firecloset, -/turf/open/floor/plating, -/area/maintenance/port) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/airalarm{ + dir = 1; + pixel_y = -22 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/turf/open/floor/plasteel, +/area/hallway/primary/port) "pMX" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -82340,6 +82273,13 @@ }, /turf/open/floor/plating, /area/maintenance/port) +"qkY" = ( +/obj/machinery/door/airlock/grunge, +/obj/structure/cable/yellow{ + icon_state = "1-2" + }, +/turf/open/floor/plasteel, +/area/security/vacantoffice) "qqg" = ( /obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ dir = 6 @@ -82419,11 +82359,18 @@ /turf/open/floor/plasteel, /area/security/prison) "rbE" = ( -/obj/effect/turf_decal/tile/blue{ +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/turf/open/floor/plasteel/white/corner, -/area/hallway/secondary/entry) +/obj/machinery/firealarm{ + pixel_y = -24 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/hallway/primary/port) "roa" = ( /obj/structure/chair/stool, /obj/machinery/light/small{ @@ -82472,19 +82419,16 @@ /turf/closed/wall, /area/quartermaster/miningoffice) "rNX" = ( +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /obj/effect/turf_decal/tile/neutral{ - dir = 1 + dir = 8 }, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/navbeacon{ - codes_txt = "patrol;next_patrol=6-Port-Central"; - location = "5-Customs" - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" +/obj/structure/sign/poster/official/random{ + pixel_y = -32 }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/port) "rQK" = ( @@ -82555,15 +82499,16 @@ /turf/open/floor/plasteel, /area/engine/atmos) "syk" = ( -/obj/machinery/door/airlock{ - id_tag = "AuxShower"; - name = "Shower" +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ - dir = 4 +/obj/structure/cable/yellow{ + icon_state = "1-2" }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, -/area/crew_quarters/toilet/auxiliary) +/area/hallway/primary/port) "sFv" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -82615,6 +82560,10 @@ }, /turf/open/floor/plasteel/dark, /area/crew_quarters/cryopod) +"sZN" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plating, +/area/maintenance/port) "tap" = ( /obj/machinery/power/apc/auto_name/east, /obj/structure/cable/yellow{ @@ -82623,33 +82572,14 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/cryopod) "tre" = ( -/obj/effect/turf_decal/tile/blue{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/obj/structure/cable/yellow{ - icon_state = "4-8" - }, -/obj/structure/cable/yellow{ - icon_state = "2-8" - }, -/obj/structure/cable/yellow{ - icon_state = "2-4" +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, /obj/structure/cable/yellow{ icon_state = "1-2" }, -/obj/structure/cable/yellow{ - icon_state = "1-4" - }, -/obj/structure/cable/yellow{ - icon_state = "1-8" - }, -/turf/open/floor/plasteel/white/corner, -/area/hallway/secondary/entry) +/turf/open/floor/plating, +/area/maintenance/port) "tsx" = ( /obj/structure/cable/yellow{ icon_state = "4-8" @@ -82682,6 +82612,13 @@ }, /turf/open/floor/plasteel/dark, /area/medical/morgue) +"tUa" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/maintenance/port) "tVY" = ( /obj/structure/closet/crate, /obj/item/target/alien, @@ -82807,6 +82744,18 @@ }, /turf/open/floor/plasteel, /area/crew_quarters/fitness/recreation) +"vuY" = ( +/obj/structure/table/wood, +/obj/item/camera_film{ + pixel_x = 6; + pixel_y = 7 + }, +/obj/item/camera_film{ + pixel_x = -3; + pixel_y = 5 + }, +/turf/open/floor/wood, +/area/security/vacantoffice) "vxG" = ( /obj/machinery/atmospherics/pipe/simple/supply/hidden{ dir = 4 @@ -82861,10 +82810,21 @@ /turf/open/floor/plating, /area/security/prison) "wlH" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/structure/reagent_dispensers/fueltank, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/item/radio/intercom{ + pixel_y = -28 + }, +/obj/effect/turf_decal/tile/neutral, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, /turf/open/floor/plasteel, -/area/maintenance/port) +/area/hallway/primary/port) "wmt" = ( /obj/effect/decal/cleanable/flour, /turf/open/floor/plating, @@ -82921,7 +82881,10 @@ /turf/open/floor/plasteel/dark, /area/crew_quarters/cryopod) "xfI" = ( -/obj/machinery/vending/cola/random, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/door/firedoor, /turf/open/floor/plasteel, /area/hallway/primary/port) "xgC" = ( @@ -82936,13 +82899,21 @@ /turf/open/floor/plasteel/white, /area/science/circuit) "xmb" = ( -/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden{ + dir = 4 + }, /obj/effect/turf_decal/tile/neutral{ dir = 8 }, -/obj/structure/cable/yellow{ - icon_state = "1-2" +/obj/structure/sign/map/left{ + desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; + icon_state = "map-left-MS"; + pixel_y = -32 }, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, /turf/open/floor/plasteel, /area/hallway/primary/port) "xse" = ( @@ -83021,26 +82992,22 @@ /turf/open/floor/plasteel, /area/security/prison) "xLL" = ( -/obj/structure/table/wood, -/obj/item/folder/white{ - pixel_x = 4; - pixel_y = -3 +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, -/obj/item/book/manual/wiki/security_space_law{ - pixel_x = -3; - pixel_y = 5 +/obj/machinery/atmospherics/pipe/manifold/scrubbers/hidden, +/obj/structure/sign/map/right{ + desc = "A framed picture of the station. Clockwise from security at the top (red), you see engineering (yellow), science (purple), escape (red and white), medbay (green), arrivals (blue and white), and finally cargo (brown)."; + icon_state = "map-right-MS"; + pixel_y = -32 }, -/turf/open/floor/wood, -/area/security/vacantoffice) +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/plasteel, +/area/hallway/primary/port) "xTV" = ( -/obj/machinery/atmospherics/pipe/simple/supply/hidden{ - dir = 6 - }, -/obj/structure/cable/yellow{ - icon_state = "1-2" - }, -/turf/open/floor/plating, -/area/maintenance/port) +/obj/machinery/atmospherics/pipe/simple/scrubbers/hidden, +/turf/closed/wall, +/area/security/vacantoffice) "xVl" = ( /turf/closed/wall, /area/hallway/secondary/service) @@ -96315,7 +96282,7 @@ bxL bvJ bxB bCQ -bBd +bCH bCH bEn dic @@ -96568,18 +96535,18 @@ bjV bnK bqb bbI -btT +bJr bvK bxC -bEp -bJp -rbE alK alK alK alK alK alK +dQg +alK +alK alK bPF asa @@ -96822,7 +96789,7 @@ bgv biv bjW blT -bnL +bso bqc bso bso @@ -96833,9 +96800,9 @@ tre bCI bEo bJj -xTV +bbL bJq -bKX +bbL bbL bbL bPG @@ -97079,20 +97046,20 @@ bbK biw bjX blU -baE -baE -baE -baE -baE -baE -baE -jPu -bCJ +aiT +bEs +bHJ +aiT +iSt +mcS alK auF -maP -bJr +bCJ +tUa alK +apz +aob +alC aqK aqO alC @@ -97335,21 +97302,21 @@ beL bgw bix bjY -blV +bqd baE -afQ -afQ -afQ -afZ -afQ baE +baE +baE +bqd +nhy +alK djW bNd +sZN alK -wlH -bHJ -pHS -alK +amZ +aob +aob oWR aob bPH @@ -97593,15 +97560,15 @@ bgx biy bjZ blW -baE +ajk afZ -afQ +bHM ajs -afQ -afQ -baE -bBf -kQP +jBe +pHS +bzx +bzx +bzx bzx bzx bzx @@ -97850,13 +97817,13 @@ bgy biz bka blX -baE -afQ -afQ -afQ -afQ -afQ -baE +bnR +ahT +ahT +bKX +jPu +rbE +xTV bBf bCL bEq @@ -98105,19 +98072,19 @@ bda beO bgz biA -bnR +bka blY aeD agQ -afQ -afQ -afQ -afQ -baE +ahT +aeD +kQP rNX -jBe bzx bBg +bBg +bBg +bBg pZb bJu bKZ @@ -98364,16 +98331,16 @@ bgA biz bkb blZ -baE +bnR ahT -afQ -afQ +ahT +bKX aju -afQ -baE -bBh -xmb -iSt +syk +qkY +bGk +bGk +bGk bGk bKZ bHL @@ -98621,18 +98588,18 @@ bpt bcW bkc bma -baE -ahT +bBh +bEt aiW -afQ +dig amv -afQ -baE -bBf +wlH +bzx +bBi bCM -bzx -bzx -bHM +bBg +bBg +bBg bJv drp heE @@ -98879,21 +98846,21 @@ bcW dhP bqd baE -aiT -ajk -afQ -amB -afQ baE -djW -bsx +baE +baE +bqd xfI bzx -bEs +jRo +mot +bBg +bBg +bBg bJw lws bMC -xLL +bOg bzx bRe xDn @@ -99135,18 +99102,18 @@ bgC biB bkd bmb -baE -baE -baE -baE -baE -baE -baE -bBf +bEp +bGj +bJp +eiS +jBe +xmb +bzx +vuY bNh bNK -bzx -dig +bBg +bBg bJx bLa bMD @@ -99396,12 +99363,12 @@ bnS bqj bsu btY -bqj -bsu -bEt -nhy -mcS -bvW +maP +xLL +bzx +bzx +bzx +bzx bzx bzx bzx @@ -99655,7 +99622,7 @@ bsv btZ bvV bxN -bGj +bvW dhZ bCP bvW @@ -99913,9 +99880,9 @@ baE bvW bxO bvW -bvW -bvW -bvW +dhZ +fDG +jdf bGm bHO bvW @@ -100173,7 +100140,7 @@ bzA bBm bCR bvW -syk +bvW bvW bvW bLd @@ -100429,7 +100396,7 @@ bxQ bzB bBn bCS -eiS +bBn bQN dih bvW diff --git a/code/__DEFINES/_flags/item_flags.dm b/code/__DEFINES/_flags/item_flags.dm index b3b65bcf59..26e764c45b 100644 --- a/code/__DEFINES/_flags/item_flags.dm +++ b/code/__DEFINES/_flags/item_flags.dm @@ -52,4 +52,4 @@ #define ORGAN_VITAL (1<<4) //Currently only the brain #define ORGAN_NO_SPOIL (1<<5) //Do not spoil under any circumstances #define ORGAN_NO_DISMEMBERMENT (1<<6) //Immune to disembowelment. -#define ORGAN_EDIBLE (1<<5) //is a snack? :D \ No newline at end of file +#define ORGAN_EDIBLE (1<<7) //is a snack? :D diff --git a/code/__DEFINES/admin/keybindings.dm b/code/__DEFINES/admin/keybindings.dm index 3efc26c7d5..fcfe7c5e58 100644 --- a/code/__DEFINES/admin/keybindings.dm +++ b/code/__DEFINES/admin/keybindings.dm @@ -1,6 +1,6 @@ // Defines for managed input/keybinding system. /// Max length of a keypress command before it's considered to be a forged packet/bogus command -#define MAX_KEYPRESS_COMMANDLENGTH 16 +#define MAX_KEYPRESS_COMMANDLENGTH 32 /// Maximum keys that can be bound to one button #define MAX_COMMANDS_PER_KEY 5 /// Maximum keys per keybind diff --git a/code/__DEFINES/subsystems.dm b/code/__DEFINES/subsystems.dm index b817f04dc1..7a188281d0 100644 --- a/code/__DEFINES/subsystems.dm +++ b/code/__DEFINES/subsystems.dm @@ -153,14 +153,17 @@ var/list/po = A.priority_overlays;\ if(LAZYLEN(rm)){\ A.overlays -= rm;\ - rm.Cut();\ + A.remove_overlays = null;\ }\ if(LAZYLEN(ad)){\ A.overlays |= ad;\ - ad.Cut();\ + A.add_overlays = null;\ }\ if(LAZYLEN(po)){\ A.overlays |= po;\ }\ + else{\ + A.priority_overlays = null;\ + }\ A.flags_1 &= ~OVERLAY_QUEUED_1;\ } diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index f8f6bca31a..ca12567b59 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -145,9 +145,9 @@ continue if(!S.ckeys_allowed) snowflake_ipc_antenna_list[S.name] = mspath - var/color1 = random_short_color() - var/color2 = random_short_color() - var/color3 = random_short_color() + var/color1 = random_color() + var/color2 = random_color() + var/color3 = random_color() var/body_model = MALE switch(intended_gender) diff --git a/code/__HELPERS/sanitize_values.dm b/code/__HELPERS/sanitize_values.dm index cbe1817233..0441e0bcb7 100644 --- a/code/__HELPERS/sanitize_values.dm +++ b/code/__HELPERS/sanitize_values.dm @@ -51,40 +51,111 @@ return default return default -/proc/sanitize_hexcolor(color, desired_format=3, include_crunch=0, default) +#define RGB_FORMAT_INVALID 0 +#define RGB_FORMAT_SHORT 1 +#define RGB_FORMAT_LONG 2 + +/** + * Sanitizes a hexadecimal color. Always outputs lowercase. + * + * @params + * * color - input color, 3 or 6 characters without the #. + * * desired_format - 3 or 6 characters without the potential #. can only put in 3 or 6 here. + * * include_crunch - do we put a # at the start + * * default - default color. must be 3 or 6 characters with or without #. + * * default_replacement - what we replace broken letters with. + */ +/proc/sanitize_hexcolor(color, desired_format = 3, include_crunch = 0, default = rgb(218, 72, 255), default_replacement = "f") + if(!istext(default) || (length(default) < 3)) + CRASH("Default should be a text string of RGB format, with or without the crunch, 3 or 6 characters. Default was instead [default]") + if(!istext(default_replacement) || (length(default_replacement) != 1)) + CRASH("Invalid default_replacement: [default_replacement]") + default_replacement = lowertext(default_replacement) + switch(text2ascii(default_replacement)) + if(48 to 57) + if(97 to 102) + if(65 to 70) + else // yeah yeah i know 3 empty if's.. + CRASH("Invalid default_replacement: [default_replacement]") var/crunch = include_crunch ? "#" : "" if(!istext(color)) - color = "" + color = default - var/start = 1 + (text2ascii(color, 1) == 35) var/len = length(color) - var/char = "" - // RRGGBB -> RGB but awful - var/convert_to_shorthand = desired_format == 3 && length_char(color) > 3 + // get rid of crunch + if(len && color[1] == "#") + if(len >= 2) + color = copytext(color, 2) + else + color = "" + len = length(color) - . = "" - var/i = start - while(i <= len) + switch(desired_format) + if(3) + desired_format = RGB_FORMAT_SHORT + if(6) + desired_format = RGB_FORMAT_LONG + else + CRASH("Invalid desired_format: [desired_format]. Must be 3 or 6.") + var/current_format = RGB_FORMAT_INVALID + switch(length(color)) + if(3) + current_format = RGB_FORMAT_SHORT + if(6) + current_format = RGB_FORMAT_LONG + else + current_format = RGB_FORMAT_INVALID + + if(current_format == RGB_FORMAT_INVALID) // nah + color = default // process default + if(color[1] == "#") // we checked default was at least 3 chars long earlier + color = copytext(color, 2) + len = length(color) + switch(len) + if(3) + current_format = RGB_FORMAT_SHORT + if(6) + current_format = RGB_FORMAT_LONG + else + CRASH("Default was not 3 or 6 RGB hexadecimal characters: [default]") + + var/sanitized = "" + var/char = "" + // first, sanitize hex + for(var/i in 1 to len) char = color[i] switch(text2ascii(char)) - if(48 to 57) //numbers 0 to 9 - . += char - if(97 to 102) //letters a to f - . += char - if(65 to 70) //letters A to F - . += lowertext(char) + if(48 to 57) // 0 to 9 + sanitized += char + if(97 to 102) // a to f + sanitized += char + if(65 to 70) // A to F (capitalized!) + sanitized += lowertext(char) else - break - i += length(char) - if(convert_to_shorthand && i <= len) //skip next one - i += length(color[i]) + sanitized += default_replacement + // do we need to convert? + if(desired_format == current_format) + return crunch + sanitized // no + // yes + if((desired_format == RGB_FORMAT_SHORT) && (current_format == RGB_FORMAT_LONG)) // downconvert + var/temp = "" + // we could do some math but we're lazy and in practice floor()ing this. + for(var/i in 1 to 6 step 2) + temp += sanitized[i] + sanitized = temp + else if((desired_format == RGB_FORMAT_LONG) && (current_format == RGB_FORMAT_SHORT)) // upconvert + var/temp = "" + for(var/i in 1 to 3) + temp += sanitized[i] + temp += sanitized[i] + sanitized = temp + else + CRASH("Invalid desired_format and current_format pair: [desired_format], [current_format]. Could not determine which way to convert.") + return crunch + sanitized - if(length_char(.) != desired_format) - if(default) - return default - return crunch + repeat_string(desired_format, "0") - - return crunch + . +#undef RGB_FORMAT_INVALID +#undef RGB_FORMAT_SHORT +#undef RGB_FORMAT_LONG /proc/sanitize_ooccolor(color) if(length(color) != length_char(color)) diff --git a/code/_onclick/hud/parallax.dm b/code/_onclick/hud/parallax.dm index 03d3ebf5a5..9050bcb5f0 100755 --- a/code/_onclick/hud/parallax.dm +++ b/code/_onclick/hud/parallax.dm @@ -128,7 +128,7 @@ deltimer(C.parallax_animate_timer) var/datum/callback/CB = CALLBACK(src, .proc/update_parallax_motionblur, C, animatedir, new_parallax_movedir, newtransform) if(skip_windups) - CB.Invoke() + CB.InvokeAsync() else C.parallax_animate_timer = addtimer(CB, min(shortesttimer, PARALLAX_LOOP_TIME), TIMER_CLIENT_TIME|TIMER_STOPPABLE) diff --git a/code/datums/beepsky_fashion.dm b/code/datums/beepsky_fashion.dm new file mode 100644 index 0000000000..1156822c93 --- /dev/null +++ b/code/datums/beepsky_fashion.dm @@ -0,0 +1,221 @@ +//similar to dog_fashion, but for beepsky, who has far more refined fashion tastes +/datum/beepsky_fashion + var/name //not setting the name and desc makes them go to the default + var/desc + + var/icon_file = 'icons/mob/secbot_accessories.dmi' //we sell secbots and secbot accessories + var/obj_icon_state + var/obj_alpha + var/obj_color + + var/list/stun_sounds //sound that replaces the stun attack when set + var/ignore_sound = FALSE //whether to ignore sounds entirely or not + + //emotes (don't set them if you want the default value) + var/death_emote //what is said when beepsky dies + var/capture_one //what is said when cuffing someone + var/capture_two //what is said when cuffing someone, directly to the person being cuffed + var/infraction //the level of threat detected + var/taunt // beepsky pointing at a criminal + var/attack_one //text when attacking criminal + var/attack_two //text when attacking criminal, but directly to the criminal + var/patrol_emote //engaging patrol text + var/patrol_fail_emote //failing to engage patrol text + var/list/arrest_texts //first is for not-cuffing, second is for cuffing + var/arrest_emote //text stating that you're cuffing some criminal C with a threat of level X in location Y + + //for reference, the following words are replaced when processed before speech: + //LOCATION = the location passed, if any (this is only used by arrest_emote) + //CRIMINAL = the name of the criminal (this is used by everything but patrol_emote and infraction) + //BOT = the name of the bot (this can be used on any of the emotes) + //THREAT_LEVEL = the level of the threat detected (can be used on arrest_emote and infraction) + +/datum/beepsky_fashion/proc/get_overlay(var/dir) + if(icon_file && obj_icon_state) + var/image/beepsky_overlay = image(icon_file, obj_icon_state, dir = dir) + beepsky_overlay.alpha = obj_alpha + beepsky_overlay.color = obj_color + return beepsky_overlay + +/datum/beepsky_fashion/proc/stun_attack(mob/living/carbon/C) //fired when beepsky does a stun attack with the fashion worn, for sounds/overlays/etc + return + +//actual fashions from here on out +/datum/beepsky_fashion/wizard + obj_icon_state = "wizard" + name = "Archmage Beepsky" + desc = "A secbot stolen from the wizard federation." + death_emote = "BOT casts EI NATH on themselves!" + capture_one = "BOT is casting cable ties on CRIMINAL!" + capture_two = "BOT is casting cable ties on you!" + infraction = "Magical disturbance of magnitude THREAT_LEVEL detected!" + taunt = "BOT points his staff towards CRIMINAL!" + attack_one = "BOT casts magic missile on CRIMINAL!" + attack_two = "BOT casts magic missile on you!" + patrol_emote = "Beginning search for magical disturbances." + patrol_fail_emote = "Failure to find magical disturbances. Recallibrating." + arrest_emote = "ARREST_TYPE level THREAT_LEVEL magical practitioner CRIMINAL in LOCATION." + stun_sounds = list('sound/magic/lightningbolt.ogg', + 'sound/magic/fireball.ogg', + 'sound/weapons/zapbang.ogg', + 'sound/magic/knock.ogg', + 'sound/magic/fleshtostone.ogg', + 'sound/effects/magic.ogg', + 'sound/magic/disintegrate.ogg') + +/datum/beepsky_fashion/cowboy + obj_icon_state = "cowboy" + name = "Sheriff Beepsky" + desc = "The sheriff of this here station." + capture_one = "BOT is tying CRIMINAL up!" + capture_two = "BOT is tying you up!" + infraction = "Outlaws with a bounty of THREAT_LEVEL000 space dollars detected!" + taunt = "BOT aims his revolver towards CRIMINAL!" + attack_one = "BOT unloads his revolver onto CRIMINAL!" + attack_two = "BOT unloads his revolver onto you!" + patrol_emote = "Engaging bounty hunting protocols." + patrol_fail_emote = "Unable to find any bounties due to error. Rebooting." + arrest_emote = "ARREST_TYPE outlaw CRIMINAL with a bounty of THREAT_LEVEL000 in LOCATION." + stun_sounds = list('sound/weapons/Gunshot.ogg', + 'sound/weapons/Gunshot2.ogg', + 'sound/weapons/Gunshot3.ogg', + 'sound/weapons/Gunshot4.ogg') + +/datum/beepsky_fashion/chef + obj_icon_state = "chef" + name = "Chef Beepsky" + desc = "Cooking up the finest foods the station has ever seen." + death_emote = "Mamma-mia!" + infraction = "Grade THREAT_LEVEL prosciutto detected!" + taunt = "BOT glares at CRIMINAL." + attack_one = "BOT CQCs CRIMINAL!" + attack_two = "BOT CQCs you!" + patrol_emote = "Beginning search for the bad prosciutto." + patrol_fail_emote = "All prosciutto is stale. Rebooting." + arrest_texts = list("Frying", "Grilling") //any good secoff knows the difference + arrest_emote = "ARREST_TYPE grade THREAT_LEVEL prosciutto CRIMINAL in LOCATION." + stun_sounds = list('sound/weapons/cqchit1.ogg', + 'sound/weapons/cqchit2.ogg') + +/datum/beepsky_fashion/cat + obj_icon_state = "cat" + name = "OwOfficer Bweepskwee" + desc = "A beepsky unit with cat ears. Catgirl science has gone too far." + death_emote = "Nya!" + capture_one = "BOT is tying CRIMINAL up!!" + capture_two = "BOT is tying you up!" + infraction = "Wevel THREAT_LEVEL infwactwion awert!!!" + taunt = "BOT points at CRIMINAL and nyas!" + attack_one = "BOT shoves CRIMINAL onto a table!" + attack_two = "BOT shoves you onto a table!" + patrol_emote = "Enwgagwing patwol mwodies.." + patrol_fail_emote = "Unawbwle two stwawt patwollies. Nya." + arrest_texts = list("Dwetwaining", "Awwesting") + arrest_emote = "ARREST_TYPE wevel THREAT_LEVEL scwumbwag CRIMINAL in LOCATION. Nya." + ignore_sound = TRUE //we instead make the stunned person fire the nya emote + +/datum/beepsky_fashion/cat/stun_attack(var/mob/living/carbon/C) //makes a fake table under you on hit, makes cat people nya when hit + if(iscatperson(C)) + C.emote("nya") + var/turf/target_turf = get_turf(C) + if(target_turf) //slams you on a fake table + playsound(src, 'sound/weapons/sonic_jackhammer.ogg', 50, 1) + var/obj/effect/overlay_holder = new(target_turf) + overlay_holder.name = "Catboy Table" + overlay_holder.desc = "Where bad catboys go." + var/image/table_overlay = image('icons/obj/smooth_structures/table.dmi', "table") + overlay_holder.add_overlay(table_overlay) + QDEL_IN(overlay_holder, 10) + +/datum/beepsky_fashion/cake //nothing else. it's just beepsky. with a cake on his head. + obj_icon_state = "cake" + name = "Cakesky" + desc = "It's a secbot, wearing a cake on his head!" + +/datum/beepsky_fashion/captain + obj_icon_state = "captain" + name = "Captainsky" + desc = "The real captain of this station." + capture_one = "BOT is lecturing CRIMINAL on why he is the captain!" + capture_two = "BOT is lecturing you on why he is the captain!" + infraction = "Level THREAT_LEVEL greytider detected." + attack_one = "BOT beats CRIMINAL with the chain of command!" + attack_two = "BOT beats you with the chain of command!" + patrol_emote = "Uselessness protocols engaged." + patrol_fail_emote = "Unit has been found as useless. Rebooting." + arrest_texts = list("Demoting", "Firing") + arrest_emote = "ARREST_TYPE level THREAT_LEVEL lesser crewmember CRIMINAL in LOCATION." + stun_sounds = list('sound/weapons/chainhit.ogg') + +/datum/beepsky_fashion/king + obj_icon_state = "king" + name = "King Beepsky" + desc = "He who has ascended to bare the right of king, sits atop the throne." + capture_one = "BOT is calling the guards onto CRIMINAL!" + capture_two = "BOT is calling the guards onto you!" + infraction = "Treason of level THREAT_LEVEL detected!" + attack_one = "BOT strikes CRIMINAL with his kingly authority!" + attack_two = "BOT strikes you with his kingly authority!" + patrol_emote = "Searching for peasants to beat up." + patrol_fail_emote = "Peasants are using dark magic. Recallibrating." + arrest_texts = list("Knighting", "Executing") + arrest_emote = "ARREST_TYPE level THREAT_LEVEL peasant CRIMINAL in LOCATION." + stun_sounds = list('sound/weapons/punch1.ogg', + 'sound/weapons/punch2.ogg', + 'sound/weapons/punch3.ogg', + 'sound/weapons/punch4.ogg') + +/datum/beepsky_fashion/pirate + obj_icon_state = "pirate" + name = "Beepsbeard the Pirate" + desc = "Sailor of the seven seas, all sea-faring bots fear the one known as Beepsbeard." + capture_one = "BOT is making CRIMINAL walk the plank!" + capture_two = "BOT is making you walk the plank!" + infraction = "Enemy vessel spotted with threat level THREAT_LEVEL!" + attack_one = "BOT strikes CRIMINAL with his cutlass!" + attack_two = "BOT strikes you with his cutlass!" + patrol_emote = "Searching for enemy vessels to board." + patrol_fail_emote = "No way to engage enemy vessels. Rebooting." + arrest_texts = list("Boarding", "Sinking") + arrest_emote = "ARREST_TYPE level THREAT_LEVEL vessel CRIMINAL in LOCATION." + stun_sounds = list('sound/weapons/bladeslice.ogg') + +/datum/beepsky_fashion/engineer + obj_icon_state = "engineer" + name = "Chief Engineer Beepsky" + desc = "He fixes criminals with a wrench to the face." + capture_one = "BOT is tying CRIMINAL up!" + capture_two = "BOT is tying you up!" + infraction = "Structural integrity issue spotted with threat level THREAT_LEVEL" + attack_one = "BOT strikes CRIMINAL with his wrench!" + attack_two = "BOT strikes you with his wrench!" + arrest_texts = list("Fixing", "Repairing") + arrest_emote = "ARREST_TYPE level THREAT_LEVEL structural issue in LOCATION" + stun_sounds = list('sound/weapons/genhit.ogg') + +/datum/beepsky_fashion/tophat + obj_icon_state = "tophat" + name = "Fancy Beepsky" + desc = "It's a secbot, wearing a top hat! How fancy." + +/datum/beepsky_fashion/fedora + obj_icon_state = "fedora" + name = "Fedorasky" + desc = "It's a secbot, wearing a fedora!" + +/datum/beepsky_fashion/sombrero + obj_icon_state = "sombrero" + name = "Sombrerosky" + desc = "A secbot wearing a sombrero. Truly, a hombre to all." + +/datum/beepsky_fashion/santa + obj_icon_state = "santa" + name = "Saint Beepsky" + desc = "Have you been a level 7 infraction this holiday season?" + capture_one = "BOT is tying CRIMINAL up with fairy lights!" + capture_two = "BOT is tying you up with fairy lights!" + infraction = "Level THREAT_LEVEL threat to holiday cheer spotted!" + attack_one = "BOT crushes CRIMINAL with their holiday spirit!" + attack_two = "BOT crushes you with their holiday spirit!" + arrest_emote = "ARREST_TYPE level THREAT_LEVEL threat to holiday cheer in LOCATION" + diff --git a/code/datums/components/crafting/recipes/recipes_misc.dm b/code/datums/components/crafting/recipes/recipes_misc.dm index 86d1e77661..214c1b1427 100644 --- a/code/datums/components/crafting/recipes/recipes_misc.dm +++ b/code/datums/components/crafting/recipes/recipes_misc.dm @@ -324,6 +324,13 @@ result = /obj/item/toy/sword/cx subcategory = CAT_MISCELLANEOUS category = CAT_MISC + +/datum/crafting_recipe/catgirlplushie + name = "Catgirl Plushie" + reqs = list(/obj/item/toy/plush/hairball = 3) + result = /obj/item/toy/plush/catgirl + subcategory = CAT_MISCELLANEOUS + category = CAT_MISC //////////// //Unsorted// diff --git a/code/datums/datacore.dm b/code/datums/datacore.dm index 94940b3855..cf942f077f 100644 --- a/code/datums/datacore.dm +++ b/code/datums/datacore.dm @@ -78,6 +78,8 @@ /datum/datacore/proc/manifest() for(var/mob/dead/new_player/N in GLOB.player_list) + if(!N?.client) + continue if(N.new_character) log_manifest(N.ckey,N.new_character.mind,N.new_character) if(ishuman(N.new_character)) diff --git a/code/datums/dna.dm b/code/datums/dna.dm index 23b6704080..8d80bc3f36 100644 --- a/code/datums/dna.dm +++ b/code/datums/dna.dm @@ -131,9 +131,9 @@ L[DNA_FACIAL_HAIR_COLOR_BLOCK] = sanitize_hexcolor(H.facial_hair_color) L[DNA_SKIN_TONE_BLOCK] = construct_block(GLOB.skin_tones.Find(H.skin_tone), GLOB.skin_tones.len) L[DNA_EYE_COLOR_BLOCK] = sanitize_hexcolor(H.eye_color) - L[DNA_COLOR_ONE_BLOCK] = sanitize_hexcolor(features["mcolor"]) - L[DNA_COLOR_TWO_BLOCK] = sanitize_hexcolor(features["mcolor2"]) - L[DNA_COLOR_THREE_BLOCK] = sanitize_hexcolor(features["mcolor3"]) + L[DNA_COLOR_ONE_BLOCK] = sanitize_hexcolor(features["mcolor"], 6) + L[DNA_COLOR_TWO_BLOCK] = sanitize_hexcolor(features["mcolor2"], 6) + L[DNA_COLOR_THREE_BLOCK] = sanitize_hexcolor(features["mcolor3"], 6) if(!GLOB.mam_tails_list.len) init_sprite_accessory_subtypes(/datum/sprite_accessory/mam_tails, GLOB.mam_tails_list) L[DNA_MUTANTTAIL_BLOCK] = construct_block(GLOB.mam_tails_list.Find(features["mam_tail"]), GLOB.mam_tails_list.len) @@ -239,11 +239,11 @@ if(DNA_HAIR_STYLE_BLOCK) setblock(uni_identity, blocknumber, construct_block(GLOB.hair_styles_list.Find(H.hair_style), GLOB.hair_styles_list.len)) if(DNA_COLOR_ONE_BLOCK) - sanitize_hexcolor(features["mcolor"]) + sanitize_hexcolor(features["mcolor"], 6) if(DNA_COLOR_TWO_BLOCK) - sanitize_hexcolor(features["mcolor2"]) + sanitize_hexcolor(features["mcolor2"], 6) if(DNA_COLOR_THREE_BLOCK) - sanitize_hexcolor(features["mcolor3"]) + sanitize_hexcolor(features["mcolor3"], 6) if(DNA_MUTANTTAIL_BLOCK) construct_block(GLOB.mam_tails_list.Find(features["mam_tail"]), GLOB.mam_tails_list.len) if(DNA_MUTANTEAR_BLOCK) diff --git a/code/datums/dog_fashion.dm b/code/datums/dog_fashion.dm index 744f57c391..2e80feac67 100644 --- a/code/datums/dog_fashion.dm +++ b/code/datums/dog_fashion.dm @@ -38,7 +38,6 @@ corgI.color = obj_color return corgI - /datum/dog_fashion/head icon_file = 'icons/mob/corgi_head.dmi' @@ -53,7 +52,6 @@ name = "Sous chef REAL_NAME" desc = "Your food will be taste-tested. All of it." - /datum/dog_fashion/head/captain name = "Captain REAL_NAME" desc = "Probably better than the last captain." diff --git a/code/datums/mood_events/generic_positive_events.dm b/code/datums/mood_events/generic_positive_events.dm index 95177f6869..8f98917ed3 100644 --- a/code/datums/mood_events/generic_positive_events.dm +++ b/code/datums/mood_events/generic_positive_events.dm @@ -196,3 +196,7 @@ description = "That work of art was so great it made me believe in the goodness of humanity. Says a lot in a place like this.\n" mood_change = 4 timeout = 4 MINUTES + +/datum/mood_event/cleared_stomach + description = "Feels nice to get that out of the way!\n" + mood_change = 3 diff --git a/code/datums/wounds/cuts.dm b/code/datums/wounds/cuts.dm index 0ab3bbd5f8..59ce286884 100644 --- a/code/datums/wounds/cuts.dm +++ b/code/datums/wounds/cuts.dm @@ -152,6 +152,11 @@ user.visible_message("[user] licks the wounds on [victim]'s [limb.name].", "You lick some of the wounds on [victim]'s [limb.name]", ignored_mobs=victim) to_chat(victim, "[user] licks the wounds on your [limb.name]! minimum_flow) try_handling(user) diff --git a/code/game/atoms_movement.dm b/code/game/atoms_movement.dm index 68db17f076..db9424d983 100644 --- a/code/game/atoms_movement.dm +++ b/code/game/atoms_movement.dm @@ -6,6 +6,7 @@ // To be removed on step_ conversion // All this work to prevent a second bump /atom/movable/Move(atom/newloc, direct=0) + set waitfor = FALSE //n o . = FALSE if(!newloc || newloc == loc) return @@ -52,6 +53,7 @@ //////////////////////////////////////// /atom/movable/Move(atom/newloc, direct) + set waitfor = FALSE //n o var/atom/movable/pullee = pulling var/turf/T = loc if(!moving_from_pull) diff --git a/code/game/objects/items/plushes.dm b/code/game/objects/items/plushes.dm index 00a9ff22f4..44205f4884 100644 --- a/code/game/objects/items/plushes.dm +++ b/code/game/objects/items/plushes.dm @@ -8,6 +8,7 @@ resistance_flags = FLAMMABLE var/list/squeak_override //Weighted list; If you want your plush to have different squeak sounds use this var/stuffed = TRUE //If the plushie has stuffing in it + var/unstuffable = FALSE //for plushies that can't be stuffed var/obj/item/grenade/grenade //You can remove the stuffing from a plushie and add a grenade to it for *nefarious uses* //--love ~<3-- gender = NEUTER @@ -174,6 +175,9 @@ /obj/item/toy/plush/attackby(obj/item/I, mob/living/user, params) if(I.get_sharpness()) if(!grenade) + if(unstuffable) + to_chat(user, "Nothing to do here.") + return if(!stuffed) to_chat(user, "You already murdered it!") return @@ -187,6 +191,13 @@ grenade = null return if(istype(I, /obj/item/grenade)) + if(unstuffable) + to_chat(user, "No... you should destroy it now!") + sleep(10) + if(QDELETED(user) || QDELETED(src)) + return + SEND_SOUND(user, 'sound/weapons/armbomb.ogg') + return if(stuffed) to_chat(user, "You need to remove some stuffing first!") return @@ -743,3 +754,14 @@ GLOBAL_LIST_INIT(valid_plushie_paths, valid_plushie_paths()) attack_verb = list("headbutt", "scritched", "bit") squeak_override = list('modular_citadel/sound/voice/nya.ogg' = 1) can_random_spawn = FALSE + + +/obj/item/toy/plush/hairball + name = "Hairball" + desc = "A bundle of undigested fibers and scales. Yuck." + icon_state = "Hairball" + unstuffable = TRUE + young = TRUE // Your own mouth-baby. + squeak_override = list('sound/misc/splort.ogg'=1) + attack_verb = list("sploshed", "splorted", "slushed") + can_random_spawn = FALSE diff --git a/code/game/objects/structures/life_candle.dm b/code/game/objects/structures/life_candle.dm index adda7b2afc..52986a44d7 100644 --- a/code/game/objects/structures/life_candle.dm +++ b/code/game/objects/structures/life_candle.dm @@ -35,7 +35,7 @@ linked_minds |= user.mind update_icon() - float(linked_minds.len) + INVOKE_ASYNC(src, /atom/movable.proc/float, linked_minds.len) if(linked_minds.len) START_PROCESSING(SSobj, src) set_light(lit_luminosity) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 042a6e0fe9..1e3d1e93e3 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -863,7 +863,7 @@ if(jobban_isbanned(M, ROLE_TRAITOR) || isbanned_dept) dat += "