diff --git a/.github/workflows/run_integration_tests.yml b/.github/workflows/run_integration_tests.yml index d239ef3547b6..7b21400ae95c 100644 --- a/.github/workflows/run_integration_tests.yml +++ b/.github/workflows/run_integration_tests.yml @@ -46,9 +46,9 @@ jobs: - name: Install rust-g run: | bash tools/ci/install_rust_g.sh - - name: Install auxlua + - name: Install dreamluau run: | - bash tools/ci/install_auxlua.sh + bash tools/ci/install_dreamluau.sh - name: Configure version run: | echo "BYOND_MAJOR=${{ inputs.major }}" >> $GITHUB_ENV diff --git a/_maps/boxstation.json b/_maps/boxstation.json index a984fb9f93a0..e0ee9b5ce851 100644 --- a/_maps/boxstation.json +++ b/_maps/boxstation.json @@ -17,12 +17,16 @@ ], "job_changes": { "Prisoner": { - "total_positions": 5, + "total_positions": 4, + "spawn_positions": 8 + }, + "Security Assistant": { + "total_positions": 4, "spawn_positions": 8 }, "Security Officer": { - "total_positions": 7, - "spawn_positions": 17 + "total_positions": 8, + "spawn_positions": 18 } } } diff --git a/_maps/map_files/Blueshift/Blueshift.dmm b/_maps/map_files/Blueshift/Blueshift.dmm index 7fefba480550..0650a938751a 100644 --- a/_maps/map_files/Blueshift/Blueshift.dmm +++ b/_maps/map_files/Blueshift/Blueshift.dmm @@ -2951,7 +2951,7 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ cycle_id = "greater-sec-maint-cluster" }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/obj/effect/mapping_helpers/airlock/access/all/security/general, /turf/open/floor/plating, /area/station/maintenance/department/security/greater) "aEu" = ( @@ -9651,8 +9651,9 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/mapping_helpers/airlock/access/all/command/captain, /obj/machinery/duct, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, /turf/open/floor/carpet/green, /area/station/command/heads_quarters/nt_rep) "bSQ" = ( @@ -13712,7 +13713,7 @@ dir = 4 }, /obj/machinery/duct, -/mob/living/basic/drone/snowflake/bardrone, +/obj/effect/mob_spawn/ghost_role/drone/bar, /turf/open/floor/wood/parquet, /area/station/command/heads_quarters/nt_rep) "cEm" = ( @@ -19386,9 +19387,6 @@ /obj/item/pen/fountain{ pixel_y = 10 }, -/obj/item/stamp/centcom{ - pixel_x = 6 - }, /turf/open/floor/carpet/green, /area/station/command/heads_quarters/nt_rep) "dJh" = ( @@ -33140,7 +33138,7 @@ /obj/machinery/door/firedoor, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/effect/mapping_helpers/airlock/access/all/security/brig, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/security/prison/upper) @@ -35335,16 +35333,7 @@ dir = 8 }, /obj/structure/window/spawner/directional/west, -/obj/structure/closet/secure_closet/personal/cabinet, -/obj/item/clothing/under/rank/centcom/officer, -/obj/item/clothing/under/rank/centcom/officer_skirt, -/obj/item/clothing/under/rank/centcom/intern, -/obj/item/clothing/under/rank/centcom/commander, -/obj/item/clothing/under/rank/centcom/centcom_skirt, -/obj/item/clothing/head/hats/centcom_cap, -/obj/item/clothing/head/hats/centhat, -/obj/item/clothing/glasses/sunglasses, -/obj/item/clothing/suit/armor/centcom_formal, +/obj/structure/closet/secure_closet/nanotrasen_representative, /turf/open/floor/carpet/green, /area/station/command/heads_quarters/nt_rep) "gPh" = ( @@ -39111,7 +39100,8 @@ /obj/machinery/door/airlock/corporate{ name = "Representative's Office" }, -/obj/effect/mapping_helpers/airlock/access/all/command/captain, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, /turf/open/floor/carpet/green, /area/station/command/heads_quarters/nt_rep) "hCU" = ( @@ -41030,7 +41020,7 @@ name = "Equipment Room" }, /obj/effect/turf_decal/delivery/blue, -/obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/effect/mapping_helpers/airlock/access/all/security/armory, /turf/open/floor/iron/dark, /area/station/security/lockers) "hVo" = ( @@ -54697,7 +54687,7 @@ /obj/machinery/door/airlock/maintenance_hatch{ name = "Maintenance Hatch" }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/construction, +/obj/effect/mapping_helpers/airlock/access/all/engineering/aux_base, /turf/open/floor/plating, /area/station/construction/mining/aux_base) "kzV" = ( @@ -54800,6 +54790,7 @@ name = "Premium Cozy Chair" }, /obj/structure/disposalpipe/segment, +/obj/effect/landmark/start/nanotrasen_representative, /turf/open/floor/carpet/green, /area/station/command/heads_quarters/nt_rep) "kAU" = ( @@ -59503,7 +59494,7 @@ name = "Security Maintenance" }, /obj/structure/cable, -/obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/effect/mapping_helpers/airlock/access/all/security/brig, /turf/open/floor/plating, /area/station/maintenance/department/security/upper) "lzT" = ( @@ -70915,11 +70906,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) -"nOw" = ( -/obj/item/clothing/accessory/medal/silver/bureaucracy, -/obj/item/clothing/accessory/medal/gold/ordom, -/turf/open/floor/carpet/green, -/area/station/command/heads_quarters/nt_rep) "nOE" = ( /obj/structure/barricade/security, /obj/effect/turf_decal/stripes, @@ -73721,8 +73707,9 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/effect/mapping_helpers/airlock/access/all/command/captain, /obj/machinery/duct, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, /turf/open/floor/wood/parquet, /area/station/command/heads_quarters/nt_rep) "ooF" = ( @@ -76177,7 +76164,7 @@ }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/effect/mapping_helpers/airlock/access/all/security/armory, /turf/open/floor/iron/dark/side{ dir = 4 }, @@ -81111,9 +81098,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment, -/obj/effect/mapping_helpers/airlock/access/all/command/captain, /obj/machinery/duct, /obj/effect/landmark/navigate_destination, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, /turf/open/floor/wood, /area/station/command/heads_quarters/nt_rep) "pLg" = ( @@ -88249,7 +88237,7 @@ /obj/structure/window/reinforced/tinted/spawner/directional/west, /obj/effect/decal/cleanable/dirt, /obj/structure/toiletbong, -/obj/item/bodypart/head/simian, +/obj/item/bodypart/head/monkey, /obj/effect/decal/cleanable/blood/old{ icon_state = "floor5-old" }, @@ -95742,7 +95730,7 @@ }, /obj/effect/turf_decal/delivery/blue, /obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/effect/mapping_helpers/airlock/access/all/security/brig, /obj/structure/disposalpipe/segment, /turf/open/floor/iron/dark, /area/station/security/lockers) @@ -103858,7 +103846,7 @@ /obj/machinery/door/airlock/security/glass{ name = "Gear Room" }, -/obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/effect/mapping_helpers/airlock/access/all/security/brig, /turf/open/floor/iron/dark, /area/station/security/lockers) "ueE" = ( @@ -106999,7 +106987,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, -/obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/effect/mapping_helpers/airlock/access/all/security/brig, /turf/open/floor/iron/dark/textured_large, /area/station/security/lockers) "uIq" = ( @@ -117609,7 +117597,7 @@ }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/effect/mapping_helpers/airlock/access/all/security/brig, /turf/open/floor/iron, /area/station/security/prison/upper) "wGO" = ( @@ -123003,6 +122991,8 @@ /obj/item/pen/fountain{ pixel_y = 5 }, +/obj/item/clothing/accessory/medal/gold/ordom, +/obj/item/clothing/accessory/medal/silver/bureaucracy, /turf/open/floor/wood/parquet, /area/station/command/heads_quarters/nt_rep) "xLj" = ( @@ -214752,7 +214742,7 @@ jrA ide ide ide -nOw +oTn bhf rre ide diff --git a/_maps/map_files/BoxStation/BoxStation.dmm b/_maps/map_files/BoxStation/BoxStation.dmm index 1ecac79517d0..898c45f74f9d 100644 --- a/_maps/map_files/BoxStation/BoxStation.dmm +++ b/_maps/map_files/BoxStation/BoxStation.dmm @@ -3,13 +3,12 @@ /obj/effect/turf_decal/tile/dark_blue/full, /obj/machinery/light/small/directional/south, /obj/machinery/ticket_machine/directional/south, -/obj/structure/table, +/obj/item/kirbyplants/random, /turf/open/floor/iron/dark/smooth_large, /area/station/hallway/primary/central) "aaA" = ( /obj/effect/turf_decal/box/white, -/obj/effect/turf_decal/arrows/white{ - color = "#0000FF"; +/obj/effect/turf_decal/arrows/blue{ pixel_y = 15 }, /turf/open/floor/engine, @@ -23,13 +22,25 @@ /turf/open/floor/iron, /area/station/engineering/main) "aaN" = ( -/obj/machinery/light/small/directional/south, -/obj/machinery/airalarm/directional/south, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 1 +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/liquid_barrier, +/obj/machinery/door/airlock/maintenance{ + name = "Xenobiology Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/any/science/xenobio, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, /turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) +/area/station/science/xenobiology) "aaX" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ @@ -59,7 +70,8 @@ /obj/machinery/light/directional/north, /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/structure/chair/stool/directional/east, +/obj/effect/landmark/start/geneticist, /turf/open/floor/iron/white, /area/station/science/genetics/cloning) "abv" = ( @@ -79,31 +91,25 @@ /obj/effect/turf_decal/tile/yellow/fourcorners, /turf/open/floor/iron/dark, /area/station/hallway/primary/aft) -"abS" = ( -/obj/machinery/light/neon_lining{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/camera/directional/west{ - c_tag = "Science - Xenobiology, Pen 1"; - name = "xenobiology camera"; - network = list("ss13","rd","xeno") - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "abT" = ( /obj/effect/turf_decal/siding/wood, /obj/machinery/computer/records/security, /turf/open/floor/wood, /area/station/command/heads_quarters/hos) +"aca" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/research) "acc" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 9 }, /obj/effect/turf_decal/bot, -/obj/machinery/airalarm/directional/north, /obj/structure/extinguisher_cabinet/directional/west, /obj/structure/closet/secure_closet/security/sec, /turf/open/floor/iron/dark, @@ -131,11 +137,21 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) +"acB" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 4 + }, +/obj/machinery/camera/autoname/directional/west, +/turf/open/floor/iron/white, +/area/station/medical/medbay/aft) "acE" = ( -/obj/machinery/airalarm/directional/north, -/obj/machinery/light/directional/north, -/turf/open/floor/iron/dark, -/area/station/security/prison) +/obj/structure/table, +/obj/item/food/canned/beans, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "acL" = ( /obj/effect/turf_decal/box, /obj/effect/turf_decal/stripes/end{ @@ -148,6 +164,7 @@ /turf/open/floor/engine, /area/station/ai_monitored/turret_protected/ai) "acW" = ( +/obj/structure/cable, /obj/structure/chair/plastic, /turf/open/floor/iron/dark, /area/station/security/prison/visit) @@ -273,6 +290,24 @@ /obj/structure/filingcabinet, /turf/open/floor/iron/dark, /area/station/security/brig/entrance) +"aeG" = ( +/obj/structure/table/wood/fancy/green, +/obj/item/reagent_containers/cup/glass/trophy/bronze_cup{ + name = "Nanotrasen Representative Foam Force Competition, 3rd Place"; + pixel_x = -9; + pixel_y = 11 + }, +/obj/item/reagent_containers/cup/glass/trophy{ + name = "Nanotrasen Representative of The Week"; + pixel_x = 10; + pixel_y = 11 + }, +/obj/item/reagent_containers/cup/glass/trophy/silver_cup{ + name = "Nanotrasen Representative Quinquennial Competition, 2nd Place"; + pixel_y = 8 + }, +/turf/open/floor/wood/tile, +/area/station/command/heads_quarters/nt_rep) "aeJ" = ( /obj/effect/turf_decal/trimline/purple/line, /obj/effect/turf_decal/trimline/purple/filled/line{ @@ -358,10 +393,9 @@ }, /area/station/commons/storage/primary) "agf" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/space_heater, -/turf/open/floor/iron, -/area/station/maintenance/department/science) +/obj/machinery/duct, +/turf/open/floor/carpet/neon/simple/pink, +/area/station/science/xenobiology) "agn" = ( /obj/machinery/firealarm/directional/north, /obj/machinery/light_switch/directional/north{ @@ -415,9 +449,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, /turf/open/floor/iron/textured, /area/station/engineering/main) "ahy" = ( @@ -450,9 +484,10 @@ /turf/open/floor/plating, /area/station/engineering/atmos/hfr_room) "ahZ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, +/obj/machinery/camera/autoname/directional/east, +/obj/item/radio/intercom/directional/east, +/obj/structure/disposalpipe/segment, +/obj/structure/filingcabinet, /turf/open/floor/wood, /area/station/security/detectives_office) "aij" = ( @@ -475,6 +510,7 @@ /turf/open/floor/iron/white, /area/station/medical/medbay/central) "air" = ( +/obj/machinery/status_display/evac/directional/north, /obj/structure/railing{ dir = 4 }, @@ -493,7 +529,7 @@ dir = 1 }, /obj/machinery/camera/autoname/directional/south, -/obj/structure/sign/departments/lawyer/directional/south, +/obj/machinery/atm/directional/south, /turf/open/floor/iron/dark, /area/station/hallway/primary/fore) "aiG" = ( @@ -501,7 +537,6 @@ dir = 1 }, /obj/structure/extinguisher_cabinet/directional/south, -/obj/machinery/airalarm/directional/east, /obj/structure/disposalpipe/trunk{ dir = 8 }, @@ -541,11 +576,6 @@ "ajn" = ( /turf/closed/wall, /area/station/security/prison/mess) -"ajt" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) "ajG" = ( /obj/effect/turf_decal/trimline/neutral/filled/line, /obj/effect/turf_decal/trimline/neutral/line{ @@ -575,32 +605,20 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, /area/station/commons/vacant_room/commissary) -"akg" = ( -/obj/machinery/light/directional/north, -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ - dir = 1 - }, -/obj/machinery/computer/telecomms/server{ - dir = 4; - network = "tcommsat" - }, -/turf/open/floor/iron/dark, -/area/station/tcommsat/computer) +"akb" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/robot_debris/limb, +/turf/open/floor/iron/checker, +/area/station/maintenance/port/fore) "aks" = ( /obj/machinery/light/small/directional/west, -/obj/machinery/atmospherics/pipe/smart/manifold/pink/hidden{ - dir = 8 +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 }, +/obj/machinery/portable_atmospherics/canister, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"aky" = ( -/obj/effect/turf_decal/stripes/red/line{ - dir = 9 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "akO" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -609,7 +627,7 @@ dir = 4 }, /obj/machinery/door/airlock/external{ - name = "Port Docking Bay 1" + name = "Docking Bay 1" }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 @@ -659,7 +677,10 @@ /area/station/engineering/storage/tech) "ali" = ( /obj/effect/turf_decal/tile/dark_blue/fourcorners, -/obj/structure/window/reinforced/spawner/directional/east, +/obj/item/radio/intercom/directional/west, +/obj/machinery/modular_computer/preset/civilian{ + dir = 1 + }, /turf/open/floor/iron/dark, /area/station/command/gateway) "alj" = ( @@ -669,20 +690,14 @@ /obj/structure/cable/layer1, /turf/open/floor/iron, /area/station/engineering/engine_smes) -"alq" = ( -/obj/item/radio/intercom/directional/north, -/obj/structure/closet/secure_closet/cytology, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "alv" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 +/obj/effect/turf_decal/siding/wood/corner, +/obj/machinery/camera/directional/north{ + c_tag = "Command - Nanotrasen Representative's Office, Lobby"; + name = "command camera" }, -/turf/open/floor/wood, -/area/station/commons/vacant_room/office) +/turf/open/floor/wood/tile, +/area/station/command/heads_quarters/nt_rep) "alB" = ( /obj/machinery/duct, /turf/open/floor/iron/white, @@ -724,6 +739,10 @@ }, /turf/open/floor/iron/dark, /area/station/security/checkpoint/customs/auxiliary) +"amw" = ( +/obj/machinery/light/directional/south, +/turf/open/floor/engine, +/area/station/science/explab) "amD" = ( /turf/closed/wall/r_wall, /area/station/maintenance/solars/port/aft) @@ -751,6 +770,13 @@ }, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) +"anm" = ( +/obj/structure/extinguisher_cabinet/directional/west, +/obj/machinery/plumbing/ooze_compressor{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "anp" = ( /obj/structure/closet/crate/medical, /obj/effect/spawner/random/maintenance, @@ -908,13 +934,28 @@ /turf/open/floor/carpet/red, /area/station/commons/dorms/room6) "apJ" = ( -/obj/structure/cable, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, /obj/machinery/camera/emp_proof/directional/north{ c_tag = "Engineering - External Particle Accelerator, Northeast"; name = "engineering camera" }, +/obj/structure/cable, /turf/open/floor/plating/airless, /area/space/nearstation) +"apK" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/door/airlock/external{ + name = "External Access" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/iron/white/textured_large, +/area/station/science/explab) "apT" = ( /obj/effect/turf_decal/tile/purple/fourcorners, /obj/machinery/light/directional/north, @@ -966,15 +1007,6 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/carpet, /area/station/hallway/secondary/entry) -"aqA" = ( -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/structure/disposaloutlet{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/space/nearstation) "aqD" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 10 @@ -999,7 +1031,7 @@ name = "Turbine Access" }, /obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible/layer4{ +/obj/machinery/atmospherics/pipe/layer_manifold/dark/visible{ dir = 4 }, /turf/open/floor/catwalk_floor, @@ -1017,18 +1049,12 @@ /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) "aqW" = ( -/obj/effect/turf_decal/siding/wideplating_new/dark/corner{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wideplating_new/dark/corner, -/obj/effect/turf_decal/siding/wideplating_new/dark/corner{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/passive_vent{ - dir = 1 - }, -/turf/open/floor/iron/dark/telecomms, -/area/station/tcommsat/server) +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/tcommsat/computer) "ara" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/sign/warning/radiation/directional/north, @@ -1049,22 +1075,6 @@ /obj/machinery/duct, /turf/open/floor/plating, /area/station/service/hydroponics/garden) -"arJ" = ( -/obj/machinery/duct, -/turf/open/floor/carpet/neon/simple/pink, -/area/station/science/xenobiology) -"arL" = ( -/obj/machinery/corral_corner{ - mapping_id = "3" - }, -/obj/machinery/light/neon_lining{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "arN" = ( /obj/structure/window/reinforced/spawner/directional/south, /obj/structure/cable/multilayer/connected, @@ -1108,14 +1118,11 @@ }, /turf/open/floor/catwalk_floor, /area/station/maintenance/starboard/aft) -"asi" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, -/area/station/hallway/primary/aft) "ast" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 4 }, +/obj/machinery/light/small/directional/east, /obj/machinery/camera/directional/east{ c_tag = "Security - Cell 3"; name = "security camera" @@ -1143,7 +1150,14 @@ /turf/open/floor/iron/dark, /area/station/security/office) "asE" = ( -/obj/machinery/computer/records/security, +/obj/structure/table/wood, +/obj/item/toy/figure/detective{ + pixel_x = 11; + pixel_y = 5 + }, +/obj/item/paper_bin, +/obj/item/folder/red, +/obj/item/pen, /turf/open/floor/wood, /area/station/security/detectives_office) "asT" = ( @@ -1151,12 +1165,12 @@ dir = 4 }, /obj/machinery/light/small/directional/east, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable, /obj/machinery/camera/directional/east{ c_tag = "Cargo - Delivery Office, East"; name = "cargo camera" }, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, /turf/open/floor/iron/dark/side{ dir = 4 }, @@ -1170,7 +1184,7 @@ dir = 4 }, /turf/open/floor/iron/dark/smooth_large, -/area/station/maintenance/department/security) +/area/station/security/office) "att" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 1 @@ -1180,10 +1194,18 @@ /turf/open/floor/iron/white, /area/station/science/research) "atv" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/blobstart, -/turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/obj/structure/sign/warning/biohazard/directional/west, +/obj/effect/turf_decal/tile/neutral/anticorner{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral, +/turf/open/floor/iron/dark/smooth_corner, +/area/station/command/gateway) +"atw" = ( +/obj/machinery/light/small/directional/east, +/obj/item/kirbyplants/random, +/turf/open/floor/iron, +/area/station/maintenance/department/science) "atM" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 8 @@ -1228,7 +1250,7 @@ dir = 4 }, /obj/machinery/light/small/directional/south, -/obj/machinery/station_map/directional/south, +/obj/machinery/atm/directional/south, /obj/structure/table/wood, /obj/item/newspaper{ pixel_x = -5 @@ -1257,9 +1279,6 @@ /obj/structure/sign/directions/security/directional/east{ pixel_y = -9 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) "auf" = ( @@ -1301,13 +1320,8 @@ /area/station/security/execution) "aux" = ( /obj/structure/window/reinforced/spawner/directional/south, -/turf/open/floor/iron/dark, +/turf/open/floor/iron/dark/textured, /area/station/commons/fitness/recreation) -"auF" = ( -/obj/structure/extinguisher_cabinet/directional/east, -/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "auK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -1317,11 +1331,6 @@ }, /turf/open/floor/iron/white, /area/station/science/research) -"auW" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, -/obj/structure/cable, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "avz" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/structure/cable, @@ -1335,11 +1344,18 @@ /turf/open/floor/iron/white, /area/station/security/medical) "avD" = ( -/obj/structure/chair/sofa/right/maroon{ - dir = 4 +/obj/structure/rack, +/obj/effect/spawner/random/maintenance/two, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"avI" = ( +/obj/machinery/light/directional/north, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 1 }, -/turf/open/floor/iron, -/area/station/commons/fitness/recreation) +/area/station/tcommsat/computer) "avL" = ( /obj/effect/turf_decal/trimline/purple/filled/line, /obj/machinery/light/small/directional/south, @@ -1348,18 +1364,6 @@ }, /turf/open/floor/iron/white, /area/station/science/research) -"avR" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 4 - }, -/turf/open/floor/iron/white, -/area/station/science/explab) "awn" = ( /obj/effect/turf_decal/tile/dark_blue/fourcorners, /obj/structure/disposalpipe/segment, @@ -1402,8 +1406,8 @@ /turf/open/floor/iron/dark, /area/station/security/prison) "axc" = ( -/obj/structure/sign/poster/contraband/grey_tide/directional/south, /obj/machinery/status_display/ai/directional/east, +/obj/structure/sign/poster/contraband/grey_tide/directional/south, /obj/structure/closet/crate/freezer, /obj/effect/spawner/random/food_or_drink/soup, /obj/effect/spawner/random/food_or_drink/booze, @@ -1417,6 +1421,16 @@ /obj/item/food/grown/banana, /turf/open/floor/grass, /area/station/medical/virology) +"axE" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/machinery/door/poddoor/shutters{ + id = "nt_rep_kitchen_shutters"; + name = "Kitchen Shutters"; + dir = 8 + }, +/turf/open/floor/plating, +/area/station/command/heads_quarters/nt_rep) "axF" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 1 @@ -1503,30 +1517,35 @@ /area/station/security/brig) "ayr" = ( /obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, /turf/open/floor/iron/dark, /area/station/security/checkpoint/medical) "ayu" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, -/obj/machinery/space_heater, -/turf/open/floor/catwalk_floor, -/area/station/maintenance/department/security/brig) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/door/poddoor/preopen{ + id = "xenobiomain"; + name = "Containment Blast Door" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/white/textured, +/area/station/science/xenobiology) "azm" = ( /obj/effect/turf_decal/trimline/dark_blue/filled/line{ dir = 1 }, /obj/effect/turf_decal/trimline/dark_blue/line, /obj/machinery/camera/directional/north{ - c_tag = "Hallway - West, Eastern End"; + c_tag = "Hallway, West - East"; name = "hallway camera" }, /obj/machinery/light/small/directional/north, /obj/structure/sign/departments/aiupload/directional/north, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/dark, /area/station/hallway/primary/port) "azn" = ( @@ -1547,12 +1566,11 @@ /turf/open/floor/iron/dark, /area/station/medical/morgue) "azx" = ( -/obj/effect/turf_decal/stripes/end{ - dir = 4 +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 9 }, -/obj/machinery/shower/directional/east, -/obj/structure/drain, -/turf/open/floor/iron/white/textured_large, +/obj/machinery/suit_storage_unit/medical, +/turf/open/floor/iron/white, /area/station/medical/storage) "azD" = ( /obj/structure/disposalpipe/segment{ @@ -1636,15 +1654,6 @@ /obj/effect/spawner/random/structure/crate, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"aAM" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/turf_decal/box, -/obj/machinery/holopad, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/white/smooth_large, -/area/station/science/xenobiology) "aAQ" = ( /obj/effect/decal/cleanable/cobweb, /obj/effect/spawner/random/trash/garbage, @@ -1698,6 +1707,7 @@ /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, /obj/machinery/recharge_station, +/obj/effect/landmark/start/cyborg, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/satellite) "aBL" = ( @@ -1754,24 +1764,17 @@ }, /area/station/cargo/storage) "aDR" = ( +/obj/effect/spawner/random/trash/mess, /obj/effect/landmark/blobstart, /turf/open/floor/wood, /area/station/maintenance/port/fore) -"aEc" = ( -/obj/structure/cable, -/obj/structure/chair{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) "aEg" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /obj/machinery/duct, -/turf/open/floor/plating/reinforced, +/turf/open/floor/iron/showroomfloor, /area/station/science/xenobiology/hallway) "aEh" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -1800,17 +1803,9 @@ }, /area/station/hallway/primary/aft) "aFe" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/door/airlock/external{ - name = "External Access" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/general, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/iron/white/textured_large, -/area/station/science/auxlab) +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/science/explab) "aFp" = ( /obj/effect/turf_decal/trimline/red/filled/line, /obj/effect/turf_decal/trimline/red/line{ @@ -1872,7 +1867,10 @@ /turf/open/floor/iron/dark/textured, /area/station/engineering/storage_shared) "aGa" = ( -/obj/structure/closet/crate, +/obj/machinery/airalarm/directional/south, +/obj/structure/chair/plastic{ + dir = 8 + }, /turf/open/floor/iron/dark/side{ dir = 6 }, @@ -1884,12 +1882,23 @@ /obj/effect/turf_decal/trimline/red/corner{ dir = 4 }, -/obj/machinery/firealarm/directional/south, +/obj/machinery/firealarm/directional/south{ + pixel_x = 5 + }, /obj/machinery/light_switch/directional/south{ - pixel_x = -8 + pixel_x = -5 }, /turf/open/floor/iron/dark, /area/station/security/office) +"aGj" = ( +/obj/machinery/light/neon_lining{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/stone, +/area/station/science/xenobiology) "aGv" = ( /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 8 @@ -1904,13 +1913,26 @@ }, /area/station/cargo/storage) "aGG" = ( -/turf/open/floor/iron/white/smooth_large, -/area/station/science/auxlab) -"aGU" = ( -/obj/item/radio/intercom/prison/directional/south, -/obj/structure/punching_bag, -/turf/open/floor/iron/dark, -/area/station/security/prison/workout) +/obj/machinery/light/neon_lining{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/camera/directional/east{ + c_tag = "Science - Xenobiology, Pen 3"; + name = "xenobiology camera"; + network = list("ss13","rd","xeno") + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"aHg" = ( +/obj/effect/turf_decal/stripes/red/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, +/turf/open/floor/engine, +/area/station/science/xenobiology) "aHm" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -1977,12 +1999,8 @@ /turf/open/floor/iron/dark/side, /area/station/commons/fitness) "aIr" = ( -/obj/machinery/status_display/evac/directional/east, -/obj/structure/sign/warning/biohazard/directional/north, -/obj/effect/decal/cleanable/dirt, -/obj/structure/chair, -/turf/open/floor/iron, -/area/station/maintenance/department/science) +/turf/closed/wall, +/area/station/maintenance/department/science/xenobiology) "aIy" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -2102,14 +2120,16 @@ /turf/open/floor/iron/dark, /area/station/security/processing) "aKf" = ( -/obj/structure/foamedmetal, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +/obj/machinery/light/directional/west, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/commons/fitness/recreation) "aKl" = ( -/obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, +/obj/structure/disposalpipe/segment, /turf/open/floor/iron/checker, /area/station/maintenance/port/fore) "aKy" = ( @@ -2174,22 +2194,25 @@ /area/station/cargo/miningoffice) "aLZ" = ( /obj/structure/sign/poster/official/random/directional/north, -/obj/structure/closet/wardrobe/mixed, +/obj/structure/closet/wardrobe/green, /turf/open/floor/iron/dark/side{ dir = 1 }, /area/station/commons/locker) "aMh" = ( -/obj/machinery/chem_heater/withbuffer, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) -"aMo" = ( -/obj/machinery/light/small/directional/north, -/obj/structure/sign/warning/electric_shock/directional/north, -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/maintenance, +/obj/machinery/door/airlock/external{ + name = "External Access" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, /turf/open/floor/plating, -/area/station/maintenance/port/fore) +/area/station/maintenance/starboard/fore) +"aMo" = ( +/obj/machinery/station_map/directional/south, +/turf/open/floor/iron/dark/side, +/area/station/commons/locker) "aMw" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -2229,23 +2252,57 @@ }, /turf/open/floor/wood, /area/station/commons/dorms/room5) +"aNn" = ( +/obj/effect/turf_decal/box, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/holopad, +/turf/open/floor/iron/white/smooth_large, +/area/station/science/xenobiology) "aNs" = ( +/obj/structure/extinguisher_cabinet/directional/north, +/obj/machinery/status_display/evac/directional/east, +/obj/structure/disposalpipe/trunk, +/obj/machinery/disposal/bin, /obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/machinery/firealarm/directional/north{ - pixel_x = -5 - }, -/obj/machinery/light_switch/directional/north{ - pixel_x = 5 - }, -/obj/structure/rack, -/obj/item/storage/briefcase, /turf/open/floor/wood, /area/station/security/detectives_office) +"aNw" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/door/airlock/maintenance{ + name = "Nanotrasen Representative's Kitchen Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, +/turf/open/floor/plating, +/area/station/command/heads_quarters/nt_rep) "aNz" = ( /obj/machinery/light/small/directional/south, /obj/machinery/power/rad_collector, /turf/open/floor/plating, /area/station/engineering/main) +"aNC" = ( +/obj/machinery/newscaster/directional/north, +/obj/structure/table, +/obj/item/paper_bin, +/turf/open/floor/iron/dark/side/airless{ + dir = 9 + }, +/area/station/maintenance/space_hut) "aNK" = ( /obj/structure/closet/firecloset/full, /turf/open/floor/plating, @@ -2271,6 +2328,16 @@ }, /turf/open/floor/iron/dark, /area/station/hallway/primary/central) +"aOs" = ( +/obj/structure/table, +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 1 + }, +/obj/item/book/manual/wiki/tcomms, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/station/tcommsat/computer) "aOv" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -2278,6 +2345,7 @@ /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 4 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, /turf/open/floor/iron/dark/side{ dir = 4 }, @@ -2290,10 +2358,10 @@ /obj/effect/turf_decal/trimline/red/filled/line{ dir = 10 }, +/obj/machinery/airalarm/directional/south, /obj/structure/chair{ - dir = 1 + dir = 4 }, -/obj/machinery/airalarm/directional/south, /turf/open/floor/iron/dark, /area/station/security/holding_cell) "aOO" = ( @@ -2344,7 +2412,7 @@ dir = 4 }, /obj/machinery/door/airlock/external{ - name = "Port Docking Bay 1" + name = "Docking Bay 1" }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 @@ -2380,12 +2448,15 @@ /obj/effect/turf_decal/trimline/red/filled/line{ dir = 1 }, -/obj/effect/turf_decal/bot_white{ - color = "#1d5cdf" - }, +/obj/effect/turf_decal/bot_blue, /obj/structure/closet/crate/secure/gear/blueshirt, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) +"aQD" = ( +/obj/machinery/light/directional/north, +/obj/item/kirbyplants/random, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "aQG" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 4 @@ -2398,6 +2469,11 @@ }, /turf/open/floor/iron/dark, /area/station/hallway/primary/fore) +"aQR" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/food_packaging, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "aRd" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -2500,7 +2576,7 @@ dir = 8; dwidth = 2; height = 13; - name = "port bay 3"; + name = "SS13: Docking Bay 3, CentCom"; shuttle_id = "ferry_home"; width = 5 }, @@ -2580,11 +2656,17 @@ }, /turf/open/floor/plating, /area/station/security/checkpoint/escape) +"aTb" = ( +/obj/effect/turf_decal/box, +/obj/structure/cable, +/obj/machinery/holopad, +/turf/open/floor/iron/white/smooth_large, +/area/station/science/explab) "aTl" = ( +/obj/effect/turf_decal/bot, +/obj/item/radio/intercom/directional/north, /obj/structure/cable, -/obj/machinery/light/directional/north, /obj/structure/closet/radiation, -/obj/effect/turf_decal/bot, /turf/open/floor/iron/dark, /area/station/maintenance/disposal/incinerator) "aTv" = ( @@ -2636,23 +2718,20 @@ /obj/effect/turf_decal/trimline/green/warning{ dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, /turf/open/floor/iron/dark, /area/station/hallway/primary/fore) "aUk" = ( -/obj/effect/turf_decal/tile/dark_blue/fourcorners, -/obj/structure/sign/poster/official/state_laws/directional/north, -/obj/structure/table/glass, -/obj/item/toy/plush/pkplush, -/turf/open/floor/iron/dark, +/obj/machinery/computer/upload/ai, +/obj/machinery/flasher/directional/north{ + id = "AI"; + name = "Meatbag Pacifier" + }, +/turf/open/floor/circuit, /area/station/ai_monitored/turret_protected/ai_upload) "aUn" = ( -/obj/machinery/computer/security{ - dir = 1 - }, /obj/item/radio/intercom/directional/south, +/obj/structure/table, +/obj/machinery/recharger, /turf/open/floor/iron/dark, /area/station/security/prison/visit) "aUr" = ( @@ -2683,11 +2762,16 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/hallway/primary/port) +"aUz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron/kitchen, +/area/station/command/heads_quarters/nt_rep) "aUL" = ( -/obj/effect/spawner/random/structure/table_or_rack, -/obj/effect/spawner/random/maintenance, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +/obj/machinery/light/small/directional/north, +/turf/open/floor/iron/dark, +/area/station/security/prison) "aUO" = ( /obj/machinery/conveyor_switch/oneway{ id = "QMLoad2"; @@ -2701,13 +2785,6 @@ }, /turf/open/floor/iron, /area/station/cargo/warehouse) -"aVA" = ( -/obj/machinery/light/directional/east, -/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ - dir = 4 - }, -/turf/open/floor/engine, -/area/station/science/explab) "aVB" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ @@ -2747,8 +2824,9 @@ /turf/open/floor/circuit, /area/station/ai_monitored/turret_protected/ai) "aVV" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, -/obj/machinery/meter, +/obj/machinery/atmospherics/components/tank/oxygen{ + dir = 1 + }, /turf/open/floor/iron, /area/station/science/ordnance) "aWm" = ( @@ -2801,7 +2879,8 @@ /obj/machinery/door/airlock/corporate{ name = "Blueshield's Quarters" }, -/obj/effect/mapping_helpers/airlock/access/all/admin/general, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, /turf/open/floor/iron/dark/textured, /area/station/command/heads_quarters/blueshield) "aXb" = ( @@ -2841,12 +2920,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/engineering/gravity_generator) -"aXq" = ( -/obj/structure/table, -/obj/item/stack/cable_coil/five, -/obj/item/wallframe/camera, -/turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) "aXB" = ( /obj/effect/spawner/random/trash/box, /turf/open/floor/plating, @@ -2854,9 +2927,7 @@ "aXE" = ( /obj/machinery/light/small/directional/west, /obj/structure/sign/warning/secure_area/directional/west, -/obj/effect/decal/cleanable/dirt, /obj/item/kirbyplants/photosynthetic, -/obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/iron/dark, /area/station/maintenance/starboard/aft) "aXI" = ( @@ -2887,13 +2958,6 @@ /obj/effect/spawner/random/bureaucracy/stamp, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"aYt" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/atmospherics/components/binary/pump, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "aYu" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -2908,11 +2972,12 @@ /turf/open/floor/iron/dark, /area/station/security/lockers) "aZc" = ( -/obj/structure/chair/office{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/service/lawoffice) "aZe" = ( /obj/effect/mapping_helpers/broken_floor, /obj/structure/closet, @@ -2920,15 +2985,11 @@ /turf/open/floor/iron, /area/station/maintenance/port/fore) "aZn" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/on, -/obj/machinery/sparker/directional/north{ - id = "execution_burn" - }, -/turf/open/floor/engine, -/area/station/security/execution) +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/obj/structure/ghost_critter_spawn, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "aZW" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -2946,6 +3007,7 @@ /obj/effect/turf_decal/trimline/red/filled/line{ dir = 4 }, +/obj/machinery/light/small/directional/east, /obj/machinery/camera/directional/east{ c_tag = "Security - Cell 2"; name = "security camera" @@ -3058,7 +3120,7 @@ dir = 8 }, /obj/machinery/door/airlock/external{ - name = "Escape Pod Two" + name = "Escape Pod Bay Two" }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 @@ -3066,13 +3128,39 @@ /obj/effect/landmark/navigate_destination/dockescpod2, /turf/open/floor/iron/dark/textured_large, /area/station/hallway/secondary/entry) +"bck" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/poddoor/preopen{ + id = "execution_fireblast" + }, +/obj/machinery/door/firedoor/heavy, +/obj/machinery/door/airlock/security/glass{ + name = "Justice Chamber Exterior" + }, +/obj/effect/mapping_helpers/airlock/access/all/security/armory, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/security/execution) "bcp" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/science/circuits) "bcq" = ( /obj/machinery/light/small/directional/north, -/obj/machinery/camera/autoname/directional/north, +/obj/machinery/camera/directional/north{ + c_tag = "Service - Hallway, 2"; + name = "service camera" + }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/dark/side{ dir = 9 @@ -3094,6 +3182,7 @@ name = "medical camera"; network = list("ss13","medbay") }, +/obj/item/radio/intercom/directional/west, /obj/structure/table/reinforced/rglass, /obj/item/clothing/gloves/latex, /obj/item/storage/box/gloves, @@ -3147,10 +3236,21 @@ /obj/effect/spawner/random/trash/cigbutt, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"bdG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "bdX" = ( /obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ dir = 6 }, +/obj/machinery/meter, /turf/open/floor/iron, /area/station/science/ordnance) "bem" = ( @@ -3263,6 +3363,7 @@ "bfz" = ( /obj/machinery/atmospherics/pipe/bridge_pipe/violet/visible, /obj/machinery/atmospherics/components/binary/pump{ + name = "Director"; dir = 8 }, /turf/open/floor/engine, @@ -3304,11 +3405,11 @@ dir = 1 }, /obj/effect/turf_decal/trimline/dark_blue/line, -/obj/machinery/firealarm/directional/north, /obj/machinery/camera/directional/north{ - c_tag = "Hallway - Central, North"; + c_tag = "Hallway - Central, Northwest"; name = "hallway camera" }, +/obj/structure/sign/warning/secure_area/directional/north, /turf/open/floor/iron/dark, /area/station/hallway/primary/central) "bgf" = ( @@ -3378,6 +3479,10 @@ /obj/machinery/duct, /turf/open/floor/iron/dark, /area/station/command/bridge) +"bgY" = ( +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "bhd" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -3403,8 +3508,12 @@ /turf/open/floor/wood, /area/station/service/library/lounge) "bho" = ( -/turf/open/floor/carpet/red, -/area/station/commons/vacant_room/office) +/obj/structure/table/wood, +/obj/item/storage/box/drinkingglasses{ + pixel_x = 6 + }, +/turf/open/floor/iron/kitchen, +/area/station/command/heads_quarters/nt_rep) "bhw" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/structure/chair_maintenance, @@ -3421,24 +3530,20 @@ /turf/open/floor/iron/showroomfloor, /area/station/command/heads_quarters/rd) "bhI" = ( -/obj/machinery/door/airlock/public/glass/incinerator/atmos_interior, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/effect/mapping_helpers/airlock/locked, -/obj/machinery/airlock_controller/incinerator_atmos{ - pixel_x = -24; - pixel_y = 6 - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/structure/sign/warning/radiation/directional/west, /obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden, -/turf/open/floor/engine, +/obj/machinery/computer/atmos_control/nocontrol/incinerator{ + dir = 4 + }, +/turf/open/floor/iron/dark, /area/station/maintenance/disposal/incinerator) "bia" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /obj/machinery/duct, +/mob/living/basic/goat/pete, /turf/open/floor/iron/freezer, /area/station/service/kitchen/coldroom) "bid" = ( @@ -3446,15 +3551,6 @@ /obj/effect/spawner/random/trash/garbage, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"bii" = ( -/obj/machinery/biomass_recycler, -/obj/item/stack/biomass, -/obj/item/stack/biomass, -/obj/item/stack/biomass, -/obj/item/stack/biomass, -/obj/item/stack/biomass, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "bio" = ( /obj/effect/turf_decal/trimline/blue/filled/line, /obj/machinery/camera/directional/south{ @@ -3474,7 +3570,9 @@ }, /area/station/commons/dorms) "biu" = ( -/obj/structure/cable, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 4 + }, /obj/machinery/computer/crew{ dir = 8 }, @@ -3500,9 +3598,8 @@ /turf/open/floor/iron/dark, /area/station/hallway/primary/starboard) "biQ" = ( -/obj/effect/spawner/random/engineering/material_cheap, -/turf/open/floor/plating, -/area/station/maintenance/port/aft) +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/nt_rep) "bjf" = ( /obj/effect/turf_decal/trimline/yellow/filled/warning, /obj/structure/disposalpipe/segment, @@ -3752,7 +3849,14 @@ /area/station/security/prison/mess) "bnz" = ( /obj/machinery/light/small/directional/south, -/obj/effect/spawner/random/structure/crate, +/obj/machinery/camera/directional/south{ + c_tag = "Maintenance - External Access, Northeast"; + name = "maintenance camera" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/structure/chair_flipped{ + dir = 1 + }, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) "bnA" = ( @@ -3848,47 +3952,12 @@ }, /obj/effect/mapping_helpers/airlock/access/all/science/ordnance_storage, /obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/iron/textured, -/area/station/science/ordnance/storage) -"box" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security{ - aiControlDisabled = 1; - id_tag = "justice_chamber"; - name = "Justice Chamber" - }, -/obj/effect/mapping_helpers/airlock/access/all/security/brig, -/obj/machinery/duct, /turf/open/floor/iron/dark/textured, -/area/station/security/execution) +/area/station/science/ordnance/storage) "boF" = ( /obj/effect/turf_decal/bot/right, /turf/open/floor/engine, /area/station/engineering/atmos/hfr_room) -"boL" = ( -/obj/effect/turf_decal/tile/red/fourcorners, -/obj/structure/rack, -/obj/item/gun/energy/disabler{ - pixel_x = -3; - pixel_y = 3 - }, -/obj/item/gun/energy/disabler, -/obj/item/gun/energy/disabler{ - pixel_x = 3; - pixel_y = -3 - }, -/obj/item/gun/energy/taser, -/obj/item/gun/energy/taser, -/obj/item/gun/energy/taser, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/security/armory) "boP" = ( /obj/structure/table/wood, /turf/open/floor/wood, @@ -3923,6 +3992,17 @@ /obj/machinery/duct, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) +"bpj" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 8 + }, +/obj/machinery/door/airlock/external{ + name = "Labor Camp Shuttle Airlock"; + shuttledocked = 1 + }, +/obj/effect/mapping_helpers/airlock/access/all/security/brig, +/turf/open/floor/iron/dark/textured_large, +/area/station/security/processing) "bpB" = ( /obj/machinery/light/directional/north, /turf/open/floor/iron/dark, @@ -3944,10 +4024,26 @@ dir = 10 }, /area/station/hallway/secondary/exit/departure_lounge) +"bpL" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment, +/obj/machinery/door/airlock/research{ + name = "Research Division Access" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/turf/open/floor/iron/white/textured, +/area/station/science/research) "bpU" = ( /obj/machinery/power/apc/auto_name/directional/west, /obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 }, /turf/open/floor/iron, @@ -3968,9 +4064,23 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /obj/machinery/duct, +/obj/machinery/firealarm/directional/north, /obj/machinery/door/firedoor, /turf/open/floor/catwalk_floor, /area/station/maintenance/department/engine/atmos) +"bqi" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/firealarm/directional/east, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "bqk" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -4035,17 +4145,19 @@ dir = 1 }, /area/station/engineering/atmos/office) -"brd" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/glass/reinforced, -/area/station/commons/fitness/recreation) -"brh" = ( -/obj/effect/decal/cleanable/dirt, +"bqU" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) +/area/station/maintenance/port/fore) +"brd" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/glass/reinforced, +/area/station/commons/fitness/recreation) "brx" = ( /obj/effect/turf_decal/tile/red/fourcorners, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -4068,6 +4180,15 @@ /obj/effect/mapping_helpers/requests_console/information, /turf/open/floor/wood, /area/station/command/heads_quarters/captain) +"brU" = ( +/obj/machinery/camera/directional/south{ + c_tag = "Engineering - Telecomms, Control Room"; + name = "engineering camera" + }, +/obj/item/radio/intercom/directional/south, +/obj/structure/filingcabinet, +/turf/open/floor/iron/dark/side, +/area/station/tcommsat/computer) "brY" = ( /obj/effect/turf_decal/trimline/blue/filled/warning{ dir = 4 @@ -4200,11 +4321,8 @@ /turf/open/floor/iron, /area/station/maintenance/starboard/aft) "btp" = ( -/obj/effect/turf_decal/trimline/dark_blue/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/dark_red/corner{ - dir = 8 +/obj/effect/turf_decal/trimline/dark_blue/filled/corner{ + dir = 4 }, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) @@ -4244,7 +4362,7 @@ dir = 1 }, /obj/machinery/camera/directional/south{ - c_tag = "Hallway - Central, Southeast"; + c_tag = "Hallway, Central - Southeast"; name = "hallway camera" }, /turf/open/floor/iron/dark, @@ -4268,6 +4386,9 @@ /obj/effect/turf_decal/trimline/dark_blue/filled/line{ dir = 1 }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) "bvd" = ( @@ -4337,7 +4458,7 @@ /turf/open/floor/iron/dark, /area/station/security/checkpoint/science) "bvJ" = ( -/obj/effect/turf_decal/stripes/corner{ +/obj/effect/turf_decal/siding/wideplating_new/dark/corner{ dir = 1 }, /turf/open/floor/iron/dark, @@ -4369,8 +4490,8 @@ }, /area/station/hallway/secondary/service) "bwg" = ( -/obj/machinery/atmospherics/pipe/smart/simple/pink/visible{ - dir = 4 +/obj/machinery/atmospherics/pipe/smart/manifold/pink/hidden{ + dir = 1 }, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) @@ -4527,8 +4648,12 @@ /turf/open/floor/iron/vaporwave, /area/station/service/library/printer) "bxZ" = ( +/obj/machinery/door/poddoor/preopen{ + id = "execution_fireblast" + }, +/obj/effect/spawner/structure/window/reinforced/plasma, /obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, -/turf/open/floor/engine, +/turf/open/floor/plating, /area/station/security/execution) "byi" = ( /turf/open/floor/plating/airless, @@ -4560,7 +4685,7 @@ /area/station/hallway/primary/port) "byp" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 4 + dir = 6 }, /obj/machinery/clonepod, /turf/open/floor/iron/white, @@ -4645,12 +4770,13 @@ /turf/open/floor/iron/vaporwave, /area/station/service/library/printer) "bzJ" = ( -/obj/effect/turf_decal/tile/purple/fourcorners, -/obj/machinery/computer/nanite_cloud_controller, -/turf/open/floor/iron/white, -/area/station/science/research) +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "bzS" = ( /obj/effect/turf_decal/tile/dark_blue/fourcorners, +/obj/machinery/light/small/directional/west, /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) @@ -4664,9 +4790,14 @@ /turf/open/floor/iron/dark, /area/station/hallway/primary/central) "bzX" = ( -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron/white/smooth_large, -/area/station/science/auxlab) +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/machinery/light/neon_lining{ + dir = 8 + }, +/turf/open/floor/stone, +/area/station/science/xenobiology) "bAg" = ( /obj/effect/spawner/random/structure/table_or_rack, /obj/effect/spawner/random/engineering/tool, @@ -4743,6 +4874,13 @@ /obj/effect/spawner/random/structure/grille, /turf/open/floor/plating, /area/station/maintenance/port) +"bBR" = ( +/obj/effect/turf_decal/stripes/end, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/machinery/shower/directional/south, +/obj/structure/drain, +/turf/open/floor/iron/showroomfloor, +/area/station/security/medical) "bCg" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 9 @@ -4772,12 +4910,6 @@ }, /turf/open/floor/iron/dark/side, /area/station/cargo/miningoffice) -"bCt" = ( -/obj/machinery/atmospherics/components/tank/air{ - dir = 8 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) "bCy" = ( /turf/open/floor/plating, /area/station/maintenance/department/engineering/central) @@ -4857,17 +4989,23 @@ /turf/open/floor/iron/dark, /area/station/science/breakroom) "bDJ" = ( -/obj/structure/chair{ - dir = 8 - }, +/obj/machinery/vending/barbervend, /turf/open/floor/iron/dark/side{ dir = 6 }, /area/station/hallway/secondary/service) +"bDK" = ( +/turf/open/floor/iron/freezer, +/area/station/science/xenobiology) "bDL" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/turf_decal/trimline/red/filled/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 10 + }, /turf/open/floor/iron/dark, -/area/station/hallway/secondary/entry) +/area/station/hallway/primary/central) "bDS" = ( /obj/structure/lattice/catwalk, /turf/open/space, @@ -4924,8 +5062,6 @@ /area/station/command/heads_quarters/ce) "bFv" = ( /obj/effect/turf_decal/bot, -/obj/machinery/firealarm/directional/north, -/obj/machinery/camera/autoname/directional/north, /obj/structure/closet/radiation, /turf/open/floor/iron, /area/station/science/ordnance) @@ -4936,16 +5072,6 @@ /obj/item/hatchet, /turf/open/floor/grass, /area/station/hallway/primary/central) -"bFF" = ( -/obj/effect/turf_decal/tile/dark_blue/fourcorners, -/obj/item/radio/intercom/directional/west{ - broadcasting = 1; - frequency = 1447; - listening = 0; - name = "AI Private Channel" - }, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai_upload) "bFJ" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 9 @@ -4971,12 +5097,14 @@ /turf/open/floor/iron/dark/smooth_large, /area/station/construction/mining/aux_base) "bFZ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/chair{ - dir = 8 +/obj/machinery/light/neon_lining{ + dir = 4 }, -/turf/open/floor/iron, -/area/station/maintenance/department/science) +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "bGd" = ( /obj/machinery/light/directional/east, /obj/structure/extinguisher_cabinet/directional/east, @@ -5015,14 +5143,6 @@ "bGF" = ( /turf/open/floor/engine/vacuum, /area/station/engineering/atmos) -"bGH" = ( -/obj/structure/sign/warning/deathsposal/directional/north, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/machinery/disposal/bin, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "bGJ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -5030,17 +5150,14 @@ /turf/open/floor/iron/dark, /area/station/security/prison/visit) "bGK" = ( -/obj/effect/turf_decal/tile/yellow/half/contrasted{ - dir = 1 +/obj/effect/turf_decal/siding/wood{ + dir = 4 }, -/obj/machinery/computer/security/telescreen{ - desc = "Used for the Auxiliary Mining Base."; - name = "Auxiliary Base Monitor"; - network = list("auxbase"); - pixel_y = 28 +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 }, -/turf/open/floor/iron/dark, -/area/station/construction/mining/aux_base) +/turf/open/floor/wood, +/area/station/commons/locker) "bGO" = ( /obj/machinery/atmospherics/components/binary/pump{ name = "Ports to Port Mix"; @@ -5070,9 +5187,7 @@ /turf/open/floor/iron/dark/textured, /area/station/engineering/atmos) "bHc" = ( -/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ - dir = 6 - }, +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible, /turf/open/floor/iron/dark, /area/station/engineering/atmos/pumproom) "bHn" = ( @@ -5116,8 +5231,24 @@ /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) "bHS" = ( -/obj/machinery/newscaster/directional/south, -/turf/open/floor/iron/white, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/door/poddoor/preopen{ + id = "testlab"; + name = "Xenobiology Secure Chamber Blast Door" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/visible, +/obj/structure/cable, +/obj/structure/liquid_barrier, +/obj/machinery/door/window/left/directional/east{ + name = "Test Chamber"; + req_access = list("xenobiology") + }, +/turf/open/floor/engine, /area/station/science/xenobiology) "bHT" = ( /obj/effect/spawner/structure/window/reinforced, @@ -5137,9 +5268,6 @@ /obj/effect/turf_decal/trimline/neutral/warning, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) -"bIc" = ( -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "bIf" = ( /obj/effect/turf_decal/trimline/purple/filled/corner{ dir = 4 @@ -5301,6 +5429,16 @@ }, /turf/open/floor/engine, /area/station/ai_monitored/turret_protected/ai) +"bJN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "bJR" = ( /obj/machinery/meter, /obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ @@ -5370,13 +5508,16 @@ /turf/open/floor/iron, /area/station/service/hydroponics/garden) "bKR" = ( -/obj/effect/turf_decal/siding/wideplating_new/dark{ +/obj/effect/turf_decal/siding/thinplating/dark{ dir = 4 }, /obj/effect/turf_decal/siding/wideplating_new/dark/corner{ dir = 8 }, /obj/machinery/light/directional/north, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 10 + }, /turf/open/floor/iron/dark/telecomms, /area/station/tcommsat/server) "bKW" = ( @@ -5401,14 +5542,12 @@ /obj/effect/turf_decal/siding/wood/corner{ dir = 4 }, -/obj/machinery/power/apc/auto_name/directional/west, /obj/machinery/firealarm/directional/south{ pixel_x = 5 }, /obj/machinery/light_switch/directional/south{ pixel_x = -5 }, -/obj/structure/cable, /obj/item/kirbyplants/random, /turf/open/floor/wood, /area/station/command/heads_quarters/hos) @@ -5418,7 +5557,7 @@ }, /obj/effect/turf_decal/stripes/line, /obj/machinery/door/airlock/external{ - name = "Port Docking Bay 2" + name = "Docking Bay 2" }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 @@ -5465,15 +5604,6 @@ }, /turf/open/floor/iron, /area/station/cargo/office) -"bMs" = ( -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/white, -/area/station/science/explab) "bMv" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -5494,9 +5624,9 @@ /turf/open/floor/iron/dark, /area/station/hallway/primary/starboard) "bMC" = ( -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/wood, -/area/station/commons/vacant_room/office) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/nt_rep) "bMM" = ( /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, @@ -5509,23 +5639,25 @@ /turf/open/floor/wood, /area/station/command/heads_quarters/blueshield) "bMX" = ( -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable, -/obj/machinery/vending/wardrobe/det_wardrobe, -/turf/open/floor/wood, -/area/station/security/detectives_office) +/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/effect/turf_decal/trimline/blue/line{ + dir = 1 + }, +/obj/machinery/light/directional/south, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/central) "bNe" = ( -/obj/structure/chair/plastic, +/obj/machinery/light/directional/north, +/obj/machinery/airalarm/directional/north, +/obj/structure/table, /turf/open/floor/iron/dark, /area/station/security/prison) "bNi" = ( -/obj/machinery/status_display/ai/directional/east, -/obj/effect/decal/cleanable/dirt, -/obj/structure/chair{ - dir = 1 +/obj/machinery/plumbing/ooze_sucker{ + mapping_id = "1" }, -/turf/open/floor/iron, -/area/station/maintenance/department/science) +/turf/open/floor/engine, +/area/station/science/xenobiology) "bND" = ( /obj/effect/turf_decal/trimline/green/filled/line, /obj/effect/turf_decal/trimline/green/line{ @@ -5546,18 +5678,28 @@ /turf/open/floor/iron/dark/side, /area/station/cargo/miningoffice) "bNU" = ( +/obj/machinery/light/small/directional/west, +/obj/machinery/airlock_sensor/incinerator_ordmix{ + pixel_x = -24 + }, /obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden{ dir = 4 }, -/obj/machinery/atmospherics/components/binary/pump, -/obj/machinery/airlock_sensor/incinerator_ordmix{ - pixel_x = -24 +/obj/machinery/atmospherics/components/binary/pump{ + name = "Output" }, /turf/open/floor/engine, /area/station/science/ordnance/burnchamber) "bOr" = ( /turf/closed/mineral/random/stationside/asteroid, /area/station/asteroid) +"bOB" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 6 + }, +/obj/machinery/computer/nanite_cloud_controller, +/turf/open/floor/iron/white, +/area/station/science/auxlab) "bOH" = ( /obj/effect/spawner/random/structure/table_or_rack, /obj/effect/spawner/random/maintenance/three, @@ -5617,10 +5759,10 @@ /turf/open/floor/iron/dark, /area/station/service/chapel) "bPm" = ( -/obj/effect/turf_decal/trimline/red/filled/warning{ - dir = 10 +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 }, -/obj/effect/turf_decal/trimline/red/corner{ +/obj/effect/turf_decal/trimline/red/line{ dir = 4 }, /obj/machinery/firealarm/directional/west, @@ -5649,6 +5791,10 @@ /obj/machinery/bluespace_beacon, /turf/open/floor/iron/dark, /area/station/command/teleporter) +"bQa" = ( +/obj/structure/sign/warning/cold_temp/directional/north, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "bQk" = ( /obj/effect/turf_decal/trimline/blue/filled/warning{ dir = 8 @@ -5672,7 +5818,7 @@ /area/station/cargo/miningoffice) "bQu" = ( /obj/machinery/airalarm/directional/south, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ dir = 4 }, /turf/open/floor/plating, @@ -5712,7 +5858,7 @@ /turf/open/floor/iron/dark, /area/station/hallway/secondary/exit/departure_lounge) "bQP" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 }, /turf/open/floor/iron, @@ -5752,17 +5898,30 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, /area/station/service/abandoned_gambling_den) -"bRx" = ( -/obj/machinery/computer/telecomms/monitor{ - dir = 4; - network = "tcommsat" +"bRq" = ( +/obj/machinery/firealarm/directional/south{ + pixel_x = -5 }, -/obj/effect/turf_decal/tile/yellow/half/contrasted{ - dir = 8 +/obj/machinery/button/door/directional/south{ + id = "nt_rep_quarters_door"; + name = "Bedroom Bolt Control"; + pixel_x = 5; + normaldoorcontrol = 1; + specialfunctions = 4; + req_access = list("nt_rep") }, -/turf/open/floor/iron/dark/side{ - dir = 8 +/obj/machinery/light_switch/directional/south{ + pixel_x = 5; + pixel_y = -34 }, +/turf/open/floor/wood/large, +/area/station/command/heads_quarters/nt_rep) +"bRx" = ( +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/n2{ + dir = 4; + transfer_rate = 5 + }, +/turf/open/floor/iron, /area/station/tcommsat/computer) "bRG" = ( /obj/structure/table/wood, @@ -5781,7 +5940,6 @@ /obj/effect/turf_decal/tile/green{ dir = 4 }, -/obj/machinery/camera/autoname/directional/west, /obj/structure/chair{ dir = 4 }, @@ -5829,7 +5987,8 @@ /obj/structure/table, /obj/item/restraints/handcuffs, /obj/item/restraints/handcuffs{ - pixel_y = 3 + pixel_x = -3; + pixel_y = 6 }, /turf/open/floor/iron/dark, /area/station/security/brig) @@ -5866,7 +6025,7 @@ /area/station/security/brig/entrance) "bTx" = ( /obj/machinery/light/small/directional/west, -/obj/effect/turf_decal/stripes/line{ +/obj/effect/turf_decal/siding/thinplating/dark{ dir = 1 }, /turf/open/floor/iron/dark, @@ -5910,6 +6069,8 @@ "bUn" = ( /obj/structure/extinguisher_cabinet/directional/north, /obj/machinery/light/small/directional/north, +/obj/structure/closet/wardrobe/pjs, +/obj/effect/landmark/start/hangover/closet, /turf/open/floor/iron/dark/side{ dir = 1 }, @@ -5973,15 +6134,23 @@ /turf/open/floor/iron/dark, /area/station/engineering/engine_smes) "bVU" = ( +/obj/machinery/light/small/directional/west, +/obj/machinery/camera/directional/west{ + c_tag = "Science - Genetics, Cloning Lab"; + name = "science camera"; + network = list("ss13","rd") + }, +/obj/machinery/firealarm/directional/south{ + pixel_x = 5 + }, +/obj/machinery/light_switch/directional/south{ + pixel_x = -5 + }, /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 10 }, -/obj/item/radio/intercom/directional/south, -/obj/structure/mirror/directional/west, -/obj/structure/sink/directional/east, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/structure/closet/wardrobe/mixed, /turf/open/floor/iron/white, /area/station/science/genetics/cloning) "bVW" = ( @@ -5991,17 +6160,20 @@ /obj/effect/turf_decal/trimline/yellow/corner{ dir = 1 }, +/obj/structure/extinguisher_cabinet/directional/east, /obj/item/kirbyplants/random, /turf/open/floor/iron/dark/side{ dir = 6 }, /area/station/hallway/primary/aft) +"bVX" = ( +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "bWl" = ( /turf/closed/wall/r_wall, /area/station/science/ordnance/office) "bWq" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/trash/mess, /obj/machinery/duct, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) @@ -6022,7 +6194,6 @@ /area/station/maintenance/port/aft) "bXg" = ( /obj/effect/turf_decal/tile/yellow/fourcorners, -/obj/machinery/status_display/ai/directional/north, /obj/structure/table, /obj/item/electronics/apc, /obj/item/electronics/airlock{ @@ -6053,22 +6224,6 @@ }, /turf/open/floor/wood, /area/station/service/chapel/funeral) -"bXQ" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/preopen{ - id = "xenobiomain"; - name = "Containment Blast Door" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/white/textured, -/area/station/science/xenobiology) "bXS" = ( /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 4 @@ -6124,19 +6279,44 @@ /turf/open/floor/carpet/red, /area/station/command/heads_quarters/hos) "bYD" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron/white, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/turf/open/floor/iron, /area/station/science/xenobiology) "bYL" = ( /turf/closed/wall/r_wall, /area/station/hallway/secondary/entry) +"bYM" = ( +/obj/structure/barricade/wooden, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "bYW" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /turf/open/floor/iron, /area/station/maintenance/department/electrical) +"bYZ" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/door/airlock/security/glass{ + name = "Isolation Cell"; + id_tag = "iso_cell_hall_bolt" + }, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/machinery/duct, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/iron/dark/textured, +/area/station/security/prison/safe) "bZa" = ( /obj/machinery/light/directional/west, /obj/machinery/electroplater, @@ -6152,15 +6332,6 @@ /obj/effect/landmark/start/medical_doctor, /turf/open/floor/iron/white, /area/station/medical/exam_room) -"bZl" = ( -/obj/machinery/light/small/built/directional/west, -/obj/structure/frame/computer{ - anchored = 1; - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) "bZt" = ( /obj/structure/table/reinforced, /obj/machinery/button/door{ @@ -6241,7 +6412,7 @@ /turf/open/space/basic, /area/station/solars/starboard/aft) "caF" = ( -/obj/effect/turf_decal/trimline/purple/filled/warning{ +/obj/effect/turf_decal/trimline/purple/filled/line{ dir = 4 }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -6251,16 +6422,16 @@ /area/station/science/research) "caL" = ( /obj/machinery/atmospherics/pipe/bridge_pipe/cyan/visible, -/obj/machinery/atmospherics/pipe/bridge_pipe/orange/visible{ +/obj/machinery/atmospherics/pipe/bridge_pipe/brown/visible{ dir = 4 }, /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/engineering/atmos) "cbe" = ( +/obj/effect/spawner/structure/window/reinforced/tinted, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/spawner/structure/window/reinforced/tinted, /obj/structure/cable, /obj/machinery/door/poddoor/shutters{ id = "visitation"; @@ -6350,13 +6521,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/courtroom) -"ccV" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 1 - }, -/obj/machinery/duct, -/turf/open/floor/iron/white, -/area/station/medical/storage) "ccW" = ( /obj/machinery/atmospherics/pipe/smart/manifold/general/visible{ dir = 4 @@ -6384,6 +6548,7 @@ "cde" = ( /obj/structure/mirror/directional/north, /obj/structure/sink/directional/south, +/obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/iron/dark, /area/station/service/janitor) "cdi" = ( @@ -6519,11 +6684,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/courtroom) -"cet" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/turf/open/floor/iron/dark, -/area/station/security/prison/garden) "cev" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -6595,11 +6755,12 @@ /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/satellite) "cfv" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 +/obj/machinery/holopad, +/obj/effect/turf_decal/siding/wood{ + dir = 8 }, -/turf/open/floor/wood, -/area/station/commons/vacant_room/office) +/turf/open/floor/wood/tile, +/area/station/command/heads_quarters/nt_rep) "cfC" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -6642,6 +6803,7 @@ /area/station/science/robotics/lab) "cgG" = ( /obj/effect/turf_decal/bot, +/obj/machinery/computer/security/telescreen/entertainment/directional/east, /obj/structure/rack, /obj/item/training_toolbox, /turf/open/floor/iron/dark/side{ @@ -6663,6 +6825,10 @@ /obj/structure/cable, /turf/open/floor/catwalk_floor, /area/station/maintenance/department/engine/atmos) +"cgV" = ( +/obj/machinery/duct, +/turf/open/floor/iron/showroomfloor, +/area/station/command/heads_quarters/nt_rep) "cgX" = ( /obj/machinery/light/small/directional/south, /obj/machinery/camera/directional/south{ @@ -6696,10 +6862,7 @@ /turf/open/floor/iron, /area/station/engineering/main) "chk" = ( -/obj/structure/chair/office{ - dir = 4 - }, -/obj/effect/landmark/start/lawyer, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/wood, /area/station/service/lawoffice) "chv" = ( @@ -6771,9 +6934,12 @@ /turf/open/floor/iron/dark/textured, /area/station/security/prison/shower) "cid" = ( -/obj/item/radio/intercom/directional/east, -/turf/open/floor/wood, -/area/station/commons/vacant_room/office) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/nt_rep) "cim" = ( /obj/machinery/conveyor{ dir = 8; @@ -6796,16 +6962,13 @@ /turf/open/floor/wood/tile, /area/station/service/library/artgallery) "ciA" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/turf/open/floor/iron/dark/side{ - dir = 4 - }, -/area/station/service/hydroponics/garden) +/obj/effect/turf_decal/box, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/holopad, +/turf/open/floor/iron/dark/smooth_large, +/area/station/hallway/secondary/entry) "ciG" = ( /obj/effect/turf_decal/trimline/brown/filled/line, /obj/effect/turf_decal/trimline/brown/line{ @@ -6823,6 +6986,12 @@ /obj/effect/spawner/random/engineering/tool, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"ciP" = ( +/obj/structure/table, +/obj/item/folder, +/obj/item/pen, +/turf/open/floor/iron/white, +/area/station/science/explab) "ciR" = ( /obj/effect/turf_decal/tile/green/half/contrasted, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -6836,13 +7005,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/engineering/atmos) -"ciW" = ( -/obj/structure/frame/computer{ - anchored = 1; - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) "cjf" = ( /obj/machinery/computer/mechpad{ dir = 8 @@ -6853,7 +7015,6 @@ /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 1 }, -/obj/machinery/firealarm/directional/north, /turf/open/floor/iron/dark/side{ dir = 1 }, @@ -6912,20 +7073,19 @@ /turf/open/floor/iron/dark, /area/station/command/bridge) "ckD" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +/obj/machinery/light/neon_lining{ + dir = 8 }, +/turf/open/floor/stone, +/area/station/science/xenobiology) +"ckN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/research{ - name = "Asteroid Magnet" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, -/turf/open/floor/iron/white/textured, -/area/station/science/auxlab) +/obj/machinery/firealarm/directional/north, +/turf/open/floor/catwalk_floor, +/area/station/maintenance/department/engine/atmos) "ckO" = ( /obj/effect/turf_decal/tile/purple/full, /obj/effect/turf_decal/stripes/line, @@ -6952,8 +7112,10 @@ /turf/open/floor/iron/white, /area/station/science/research) "cla" = ( -/turf/open/floor/carpet/blue, -/area/station/commons/vacant_room/office) +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/mess, +/turf/open/floor/iron/checker, +/area/station/maintenance/port/fore) "clf" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -6969,13 +7131,6 @@ /obj/machinery/vending/clothing, /turf/open/floor/iron/checker, /area/station/commons/dorms/laundry) -"cll" = ( -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 6 - }, -/obj/machinery/status_display/evac/directional/south, -/turf/open/floor/iron/white, -/area/station/science/explab) "clr" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ @@ -7008,10 +7163,13 @@ /obj/effect/spawner/random/engineering/tracking_beacon, /turf/open/floor/iron/dark, /area/station/security/courtroom) -"cmn" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) +"clS" = ( +/obj/machinery/status_display/ai/directional/north, +/obj/effect/spawner/random/vending/snackvend, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/commons/fitness/recreation) "cmt" = ( /obj/effect/turf_decal/trimline/yellow/filled/warning{ dir = 4 @@ -7049,7 +7207,7 @@ "cmP" = ( /obj/structure/closet/emcloset/anchored, /turf/open/floor/iron/dark/smooth_large, -/area/station/maintenance/department/security) +/area/station/security/office) "cmW" = ( /obj/effect/spawner/random/trash/garbage, /turf/open/floor/plating, @@ -7059,10 +7217,9 @@ /turf/open/floor/catwalk_floor, /area/station/maintenance/starboard/aft) "cnk" = ( -/obj/machinery/atmospherics/pipe/smart/simple/purple/visible, -/obj/machinery/meter, -/turf/open/floor/iron, -/area/station/science/ordnance) +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "cnt" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 9 @@ -7153,10 +7310,6 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/dark, /area/station/hallway/primary/port) -"cot" = ( -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) "cou" = ( /obj/effect/turf_decal/trimline/red/filled/warning{ dir = 8 @@ -7171,10 +7324,18 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "coA" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/machinery/meter, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 8 + }, +/obj/machinery/camera/directional/east{ + c_tag = "Hallway, Arrivals - Docking Bay 1, Upper"; + name = "hallway camera" + }, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/entry) "coE" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -7234,12 +7395,12 @@ /turf/open/floor/iron/dark, /area/station/hallway/primary/fore) "cpO" = ( -/obj/machinery/light/small/directional/south, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/maintenance/department/science) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/stone, +/area/station/science/xenobiology) "cpP" = ( /obj/structure/disposalpipe/sorting/mail{ dir = 8 @@ -7278,6 +7439,10 @@ "crl" = ( /turf/open/floor/iron/dark, /area/station/engineering/atmos/pumproom) +"crm" = ( +/obj/effect/artifact_spawner, +/turf/open/floor/engine, +/area/station/science/explab) "crt" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -7295,6 +7460,10 @@ /obj/structure/punching_bag, /turf/open/floor/iron/dark, /area/station/security/prison/workout) +"crC" = ( +/obj/machinery/light/small/directional/east, +/turf/open/floor/iron/white/smooth_large, +/area/station/science/explab) "crI" = ( /obj/structure/table, /obj/effect/spawner/random/bureaucracy/pen, @@ -7303,25 +7472,6 @@ "crM" = ( /turf/closed/wall/r_wall, /area/station/security/warden) -"crP" = ( -/obj/effect/turf_decal/tile/green/half/contrasted{ - dir = 1 - }, -/obj/machinery/camera/autoname/directional/south, -/obj/item/radio/intercom/directional/south, -/obj/structure/table, -/obj/item/storage/bag/egg, -/obj/item/storage/bag/egg, -/obj/item/storage/bag/egg, -/obj/item/storage/bag/egg, -/obj/item/storage/bag/egg, -/obj/item/chicken_scanner, -/obj/item/chicken_scanner, -/obj/item/chicken_scanner, -/obj/item/chicken_scanner, -/obj/item/chicken_scanner, -/turf/open/floor/iron/dark/side, -/area/station/service/hydroponics) "crV" = ( /obj/effect/turf_decal/trimline/purple/filled/corner{ dir = 1 @@ -7360,6 +7510,7 @@ /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) "ctb" = ( +/obj/effect/turf_decal/box, /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 4 }, @@ -7439,14 +7590,15 @@ /obj/structure/cable/multilayer/connected, /turf/open/floor/plating/airless, /area/space/nearstation) -"cus" = ( -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 8 - }, -/obj/machinery/airalarm/directional/west, -/obj/structure/table, +"cuL" = ( +/obj/structure/sign/warning/biohazard/directional/south, /turf/open/floor/iron/white, -/area/station/science/explab) +/area/station/science/xenobiology) +"cuP" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/light/directional/west, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "cuU" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/trash/garbage, @@ -7718,6 +7870,7 @@ /turf/open/floor/wood, /area/station/command/meeting_room) "cAy" = ( +/obj/machinery/light/small/directional/east, /obj/structure/closet/emcloset/anchored, /turf/open/floor/iron/dark/smooth_large, /area/station/engineering/storage) @@ -7768,12 +7921,18 @@ }, /turf/open/floor/iron/sepia, /area/station/service/library/artgallery) -"cBB" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ +"cBx" = ( +/obj/machinery/corral_corner{ + mapping_id = "2" + }, +/obj/machinery/light/neon_lining{ dir = 4 }, -/turf/open/floor/iron/white, -/area/station/medical/pharmacy) +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "cBM" = ( /obj/structure/table, /obj/effect/turf_decal/siding/thinplating/dark{ @@ -7895,9 +8054,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/dark/textured, /area/station/commons/fitness) -"cDv" = ( -/turf/closed/wall/r_wall, -/area/station/maintenance/department/science/xenobiology) "cDF" = ( /obj/effect/turf_decal/siding/thinplating/corner{ dir = 4 @@ -7914,7 +8070,6 @@ dir = 4 }, /obj/machinery/light/small/directional/east, -/obj/structure/sign/warning/secure_area/directional/east, /obj/machinery/camera/autoname/directional/east, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -7934,14 +8089,8 @@ }, /turf/open/floor/plating, /area/station/service/abandoned_gambling_den) -"cEx" = ( -/obj/machinery/light/directional/east, -/turf/open/floor/engine, -/area/station/science/xenobiology) "cEz" = ( -/obj/effect/turf_decal/box/white{ - color = "#52B4E9" - }, +/obj/effect/turf_decal/box/blue, /turf/open/floor/engine, /area/station/engineering/atmos/hfr_room) "cEG" = ( @@ -8017,15 +8166,14 @@ /turf/open/floor/iron/dark, /area/station/engineering/atmos) "cFU" = ( -/obj/structure/disposalpipe/sorting/mail{ +/obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/mapping_helpers/mail_sorting/science/ordnance, -/turf/open/floor/catwalk_floor/iron, -/area/station/maintenance/department/science) +/obj/machinery/light/neon_lining{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "cGc" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -8054,13 +8202,34 @@ /obj/effect/turf_decal/tile/purple/opposingcorners{ dir = 1 }, -/obj/machinery/camera/autoname/directional/east, /obj/structure/disposalpipe/trunk{ dir = 8 }, /obj/machinery/disposal/bin, /turf/open/floor/iron/checker, /area/station/science/lab) +"cGA" = ( +/obj/structure/table, +/obj/item/folder/yellow{ + pixel_x = 3; + pixel_y = 6 + }, +/obj/item/folder/blue{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/paper_bin{ + pixel_x = -3 + }, +/obj/item/pen{ + pixel_x = -3 + }, +/obj/item/pen/blue{ + pixel_y = 6; + pixel_x = -3 + }, +/turf/open/floor/iron/dark/side, +/area/station/tcommsat/computer) "cGF" = ( /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ dir = 5 @@ -8076,11 +8245,6 @@ /obj/effect/turf_decal/trimline/yellow/filled/warning, /turf/open/floor/iron/dark/side, /area/station/engineering/storage_shared) -"cGR" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/firecloset/full, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "cHc" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -8110,9 +8274,10 @@ /turf/open/floor/iron/dark, /area/station/hallway/primary/starboard) "cIi" = ( -/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, /turf/open/floor/iron, /area/station/tcommsat/computer) "cIv" = ( @@ -8142,6 +8307,15 @@ }, /turf/open/floor/iron/dark, /area/station/service/abandoned_gambling_den) +"cIK" = ( +/obj/machinery/light/small/directional/east, +/obj/machinery/camera/directional/east{ + c_tag = "Science - Artifact Lab, Center"; + network = list("ss13","rd"); + name = "science camera" + }, +/turf/open/floor/iron/white, +/area/station/science/explab) "cIL" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -8154,16 +8328,15 @@ /turf/open/floor/plating, /area/station/maintenance/department/cargo) "cJf" = ( -/obj/effect/turf_decal/trimline/dark_blue/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/dark_red/line{ +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/sorting/mail/flip{ dir = 4 }, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai_upload) +/obj/effect/mapping_helpers/mail_sorting/security/detectives_office, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "cJi" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -8215,6 +8388,10 @@ /turf/open/floor/plating, /area/station/service/abandoned_gambling_den) "cJW" = ( +/obj/machinery/camera/directional/south{ + c_tag = "Security - Visitation, Visitor Side"; + name = "security camera" + }, /obj/machinery/firealarm/directional/south, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -8232,17 +8409,29 @@ /obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /turf/open/floor/iron, /area/station/science/ordnance) -"cKq" = ( -/obj/machinery/firealarm/directional/south, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/maintenance/starboard/aft) "cKv" = ( /obj/effect/turf_decal/trimline/red/filled/line{ - dir = 1 + dir = 9 + }, +/obj/machinery/button/door/directional/north{ + id = "execution_fireblast"; + name = "Justice Chamber Lockdown Control"; + pixel_x = 6; + req_access = list("security") + }, +/obj/machinery/button/door/directional/north{ + id = "justice_blast"; + name = "Emergency Vent Control"; + pixel_x = -6; + req_access = list("security") + }, +/obj/machinery/button/ignition{ + id = "execution_burn"; + name = "Execution Ignition Switch"; + pixel_x = 6; + pixel_y = 36; + req_access = list("security") }, -/obj/machinery/light/directional/north, -/obj/structure/reagent_dispensers/wall/peppertank/directional/north, /obj/structure/table, /obj/item/folder/red{ pixel_x = 3 @@ -8254,27 +8443,10 @@ /obj/item/reagent_containers/spray/pepper, /turf/open/floor/iron/dark, /area/station/security/execution) -"cKw" = ( -/obj/effect/turf_decal/trimline/dark_blue/filled/line{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/dark_red/corner{ - dir = 1 - }, -/obj/machinery/flasher/directional/east{ - id = "AI" - }, +"cKx" = ( +/obj/effect/turf_decal/trimline/dark_blue/filled/warning, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) -"cKx" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "cKF" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/structure/closet_maintenance, @@ -8290,6 +8462,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/hallway/primary/central) +"cKO" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron, +/area/station/maintenance/department/science) "cKS" = ( /obj/structure/closet/secure_closet/atmospherics, /turf/open/floor/iron/dark/side, @@ -8316,19 +8496,24 @@ /turf/closed/wall, /area/station/cargo/lobby) "cLR" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, -/obj/effect/turf_decal/stripes/corner{ +/obj/structure/cable, +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "Incinerator Output Pump"; + target_pressure = 4500; dir = 4 }, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) "cLY" = ( -/obj/structure/cable, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /obj/machinery/camera/emp_proof/directional/north{ c_tag = "Engineering - External Particle Accelerator, Northwest"; name = "engineering camera"; dir = 9 }, +/obj/structure/cable, /turf/open/floor/plating/airless, /area/space/nearstation) "cLZ" = ( @@ -8346,11 +8531,9 @@ /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/restrooms) "cMv" = ( -/obj/effect/turf_decal/tile/purple/fourcorners, -/obj/structure/table/glass, -/obj/item/storage/box/nanitecontrol, +/obj/machinery/duct, /turf/open/floor/iron/white, -/area/station/science/research) +/area/station/science/xenobiology) "cMy" = ( /obj/structure/cable/layer1, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -8384,7 +8567,10 @@ }, /area/station/service/hydroponics/garden) "cMU" = ( -/obj/machinery/camera/autoname/directional/north, +/obj/machinery/camera/directional/north{ + c_tag = "Service - Hallway, 1"; + name = "service camera" + }, /obj/machinery/light/small/directional/north, /obj/structure/table, /turf/open/floor/iron/dark/side{ @@ -8402,15 +8588,14 @@ /turf/open/floor/iron/dark, /area/station/hallway/primary/starboard) "cNi" = ( -/obj/effect/turf_decal/tile/neutral/half/contrasted{ +/obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ - dir = 4 - }, -/obj/machinery/light/small/directional/north, -/turf/open/floor/iron/dark, -/area/station/science/ordnance) +/obj/effect/turf_decal/stripes/line, +/obj/effect/decal/cleanable/dirt, +/obj/structure/barricade/wooden, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "cNm" = ( /obj/effect/decal/cleanable/cobweb, /obj/effect/spawner/random/trash/grille_or_waste, @@ -8470,7 +8655,6 @@ /turf/open/floor/wood, /area/station/service/abandoned_gambling_den) "cOa" = ( -/obj/machinery/camera/autoname/directional/south, /obj/machinery/light/small/directional/south, /obj/structure/table, /obj/machinery/fax{ @@ -8487,21 +8671,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central) -"cOo" = ( -/obj/machinery/corral_corner{ - mapping_id = "6" - }, -/obj/machinery/slime_pen_controller{ - mapping_id = "6" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/light/neon_lining{ - dir = 8 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "cOp" = ( /obj/effect/turf_decal/trimline/green/filled/line, /obj/machinery/firealarm/directional/south, @@ -8565,8 +8734,11 @@ /turf/open/floor/catwalk_floor/iron_dark, /area/station/maintenance/starboard/fore) "cPo" = ( -/obj/structure/cable, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) "cPr" = ( @@ -8594,7 +8766,6 @@ /turf/open/floor/iron/white, /area/station/science/research) "cPV" = ( -/obj/structure/cable, /turf/open/floor/iron/dark/side{ dir = 8 }, @@ -8611,18 +8782,18 @@ /turf/open/floor/iron/dark, /area/station/security/warden) "cPZ" = ( -/obj/effect/turf_decal/trimline/yellow/filled/warning{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/yellow/warning, /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/turf/open/floor/iron/dark/side{ - dir = 1 - }, +/turf/open/floor/iron, /area/station/hallway/primary/aft) +"cQa" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "cQe" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, @@ -8637,9 +8808,11 @@ /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) "cQl" = ( -/obj/effect/turf_decal/trimline/yellow/filled/warning, -/obj/effect/turf_decal/trimline/yellow/warning{ - dir = 1 +/obj/effect/turf_decal/trimline/yellow/filled/corner{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 5 }, /obj/structure/disposalpipe/segment{ dir = 5 @@ -8654,13 +8827,25 @@ /turf/open/floor/plating, /area/station/maintenance/department/science) "cQt" = ( -/obj/machinery/asteroid_magnet{ - center_x = 144; - center_y = 179; - area_size = 3 +/obj/effect/turf_decal/stripes/line{ + dir = 8 }, -/turf/open/floor/iron/white, -/area/station/science/auxlab) +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Asteroid Magnet" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/turf/open/floor/iron/white/textured, +/area/station/science/explab) "cQA" = ( /obj/effect/turf_decal/tile/neutral/half, /obj/effect/turf_decal/tile/neutral/half{ @@ -8725,6 +8910,13 @@ /obj/effect/spawner/random/trash/grille_or_waste, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"cRe" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/landmark/event_spawn, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/fore) "cRg" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ @@ -8761,24 +8953,19 @@ /turf/open/floor/iron/dark, /area/station/service/chapel) "cRQ" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/machinery/camera/directional/north{ - c_tag = "Commons - Vacant Office, North"; - name = "commons camera" - }, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/commons/vacant_room/office) +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/structure/table_or_rack, +/obj/effect/spawner/random/maintenance/two, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "cSm" = ( -/obj/effect/turf_decal/siding/wideplating_new/dark{ +/obj/effect/turf_decal/siding/thinplating/dark{ dir = 8 }, -/obj/effect/turf_decal/siding/wideplating_new/dark{ +/obj/effect/turf_decal/siding/thinplating/dark{ dir = 4 }, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, /turf/open/floor/iron/dark/telecomms, /area/station/tcommsat/server) "cSq" = ( @@ -8822,6 +9009,21 @@ }, /turf/open/floor/iron/textured, /area/station/science/ordnance/office) +"cSJ" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Prisoner Processing" + }, +/obj/effect/mapping_helpers/airlock/access/all/security/brig, +/turf/open/floor/iron/dark/textured, +/area/station/security/processing) "cSQ" = ( /obj/structure/cable, /obj/item/wrench, @@ -8841,17 +9043,6 @@ /obj/effect/spawner/random/structure/closet_maintenance, /turf/open/floor/plating, /area/station/maintenance/port) -"cTs" = ( -/obj/machinery/light_switch/directional/south{ - pixel_x = -5 - }, -/obj/machinery/firealarm/directional/south{ - pixel_x = 5 - }, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/machinery/light/small/directional/south, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "cTz" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -8997,19 +9188,23 @@ /area/station/medical/chemistry) "cVY" = ( /obj/effect/turf_decal/siding/wood{ - dir = 1 + dir = 4 }, -/obj/structure/chair/wood{ - dir = 1 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 }, -/turf/open/floor/wood, -/area/station/commons/vacant_room/office) +/turf/open/floor/wood/tile, +/area/station/command/heads_quarters/nt_rep) "cWi" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/command/bridge) +"cWj" = ( +/obj/machinery/light/small/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "cWn" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 8 @@ -9120,11 +9315,10 @@ /turf/open/floor/plating, /area/station/maintenance/port/aft) "cXK" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/turf/open/floor/wood, -/area/station/commons/vacant_room/office) +/obj/machinery/light/small/directional/north, +/obj/structure/displaycase/trophy, +/turf/open/floor/wood/tile, +/area/station/command/heads_quarters/nt_rep) "cXN" = ( /obj/machinery/airalarm/directional/east, /turf/open/floor/iron/showroomfloor, @@ -9133,6 +9327,9 @@ /obj/effect/turf_decal/trimline/red/filled/corner{ dir = 8 }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, /turf/open/floor/iron/dark, /area/station/security/execution) "cXW" = ( @@ -9163,10 +9360,10 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/fore) "cYA" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/trimline/red/filled/line{ dir = 8 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) @@ -9176,23 +9373,6 @@ }, /turf/open/floor/wood, /area/station/command/heads_quarters/blueshield) -"cYM" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/structure/cable, -/obj/machinery/door/poddoor/preopen{ - id = "testlab"; - name = "Xenobiology Secure Chamber Blast Door" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, -/obj/machinery/door/window/left/directional/north{ - name = "Test Chamber"; - req_access = list("xenobiology") - }, -/obj/structure/liquid_barrier, -/turf/open/floor/engine, -/area/station/science/xenobiology) "cYN" = ( /obj/effect/turf_decal/tile/yellow/fourcorners, /obj/machinery/light/small/directional/north, @@ -9220,10 +9400,6 @@ /turf/open/floor/iron/white, /area/station/medical/break_room) "cZl" = ( -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/obj/machinery/airalarm/directional/south, /turf/open/floor/iron/dark/side, /area/station/tcommsat/computer) "cZs" = ( @@ -9249,17 +9425,6 @@ /obj/machinery/suit_storage_unit/security, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) -"cZL" = ( -/obj/machinery/newscaster/directional/south, -/obj/machinery/reagentgrinder{ - pixel_y = 5 - }, -/obj/item/stack/sheet/mineral/plasma{ - amount = 5 - }, -/obj/structure/table/reinforced/plasmarglass, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "cZU" = ( /obj/machinery/light/small/directional/west, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -9269,14 +9434,19 @@ /turf/open/floor/iron/dark, /area/station/engineering/atmos/hfr_room) "dae" = ( -/obj/effect/spawner/random/structure/chair_flipped{ - dir = 1 +/obj/structure/disposalpipe/segment{ + dir = 4 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/firealarm/directional/north, +/obj/machinery/door/firedoor, /turf/open/floor/plating, /area/station/maintenance/port/fore) "dah" = ( /obj/machinery/camera/directional/east{ - c_tag = "Engineering - Atmospherics, External HFR Access"; + c_tag = "Engineering - External, Atmospherics, HFR Access"; name = "engineering camera" }, /obj/machinery/light/small/directional/east, @@ -9367,13 +9537,19 @@ "dcA" = ( /turf/closed/wall, /area/station/maintenance/department/engineering/central) +"dcC" = ( +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "ddu" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/red/fourcorners, /obj/effect/turf_decal/bot, -/obj/effect/landmark/secequipment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, +/obj/effect/landmark/secequipment, /turf/open/floor/iron/dark, /area/station/security/lockers) "ddy" = ( @@ -9467,12 +9643,6 @@ dir = 9 }, /area/station/engineering/break_room) -"deQ" = ( -/obj/machinery/light/neon_lining{ - dir = 8 - }, -/turf/open/floor/stone, -/area/station/science/xenobiology) "deW" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 @@ -9506,15 +9676,15 @@ /turf/open/floor/iron, /area/station/science/robotics/lab) "dfE" = ( -/obj/structure/table, +/obj/structure/cable, /obj/machinery/door/firedoor, +/obj/structure/table/reinforced, /obj/machinery/door/window/right/directional/north, /obj/machinery/door/window/right/directional/south, /obj/machinery/door/poddoor/shutters{ id = "visitation"; name = "Visitation Shutters" }, -/obj/structure/cable, /turf/open/floor/iron/dark, /area/station/security/prison/visit) "dfL" = ( @@ -9614,12 +9784,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/command/heads_quarters/hop) -"dgH" = ( -/obj/effect/turf_decal/stripes/red/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "dgK" = ( /obj/effect/turf_decal/tile/red/fourcorners, /obj/structure/cable, @@ -9666,8 +9830,16 @@ }, /obj/effect/turf_decal/trimline/neutral/warning, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, /turf/open/floor/iron/dark, /area/station/hallway/primary/port) +"dgZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, +/turf/open/floor/plating/airless, +/area/space/nearstation) "dhc" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 8 @@ -9681,6 +9853,12 @@ /obj/machinery/space_heater, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"dhi" = ( +/obj/structure/chair{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/maintenance/department/science) "dhq" = ( /obj/effect/turf_decal/bot, /obj/structure/table, @@ -9730,11 +9908,9 @@ /turf/open/floor/wood, /area/station/service/bar/backroom) "did" = ( -/obj/machinery/status_display/evac/directional/north, -/turf/open/floor/iron/dark/side{ - dir = 1 - }, -/area/station/commons/fitness/recreation) +/obj/machinery/light/directional/west, +/turf/open/floor/iron/dark, +/area/station/security/prison) "dim" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/bot_white/left, @@ -9809,6 +9985,10 @@ /obj/machinery/duct, /turf/open/floor/iron/dark, /area/station/security/brig) +"djJ" = ( +/obj/effect/turf_decal/vg_decals/numbers/two, +/turf/open/floor/plating/airless, +/area/space/nearstation) "djP" = ( /obj/effect/spawner/random/structure/girder, /turf/open/floor/plating, @@ -9832,6 +10012,14 @@ /obj/machinery/duct, /turf/open/floor/iron/white/textured, /area/station/science/research) +"dkU" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/white/textured, +/area/station/science/xenobiology) "dle" = ( /obj/structure/sign/departments/engineering/directional/west, /obj/effect/decal/cleanable/dirt, @@ -9849,12 +10037,6 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/commons/storage/primary) -"dlt" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "dly" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 1 @@ -9876,7 +10058,7 @@ dir = 8; dwidth = 3; height = 15; - name = "arrivals"; + name = "SS13: Docking Bay 2, Arrivals"; roundstart_template = /datum/map_template/shuttle/arrival/box; width = 7; shuttle_id = "arrival_stationary" @@ -9884,8 +10066,8 @@ /turf/open/space/basic, /area/space) "dlH" = ( -/obj/effect/turf_decal/arrows{ - dir = 4 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 }, /turf/open/floor/iron, /area/station/cargo/lobby) @@ -9897,39 +10079,21 @@ /turf/open/floor/wood, /area/station/service/abandoned_gambling_den) "dlY" = ( -/obj/effect/turf_decal/siding/wideplating_new/dark{ +/obj/effect/turf_decal/siding/thinplating/dark{ dir = 4 }, -/obj/effect/turf_decal/siding/wideplating_new/dark{ +/obj/effect/turf_decal/siding/thinplating/dark{ dir = 8 }, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, /turf/open/floor/iron/dark/telecomms, /area/station/tcommsat/server) -"dmc" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/poddoor/preopen{ - id = "execution_fireblast" - }, -/obj/machinery/door/airlock/security/glass{ - name = "Justice Chamber Interior" - }, -/obj/effect/mapping_helpers/airlock/access/all/security/brig, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/turf/open/floor/engine, -/area/station/security/execution) "dmh" = ( /obj/machinery/light/directional/west, /obj/machinery/status_display/ai/directional/west, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, /turf/open/floor/iron/dark/side{ dir = 8 }, @@ -9940,13 +10104,6 @@ }, /turf/open/floor/iron, /area/station/engineering/main) -"dmt" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) "dmw" = ( /obj/effect/landmark/blobstart, /turf/open/floor/plating, @@ -9963,12 +10120,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/solars/port/aft) -"dnc" = ( -/obj/machinery/plumbing/ooze_sucker{ - mapping_id = "6" - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "dnp" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -10035,11 +10186,8 @@ "dor" = ( /obj/structure/table/wood, /obj/item/paper_bin, -/obj/item/pen{ - pixel_x = -2; - pixel_y = 7 - }, -/obj/item/clothing/glasses/sunglasses/big, +/obj/item/folder, +/obj/item/pen, /turf/open/floor/wood, /area/station/service/lawoffice) "dos" = ( @@ -10050,7 +10198,7 @@ dir = 8 }, /obj/machinery/door/airlock/external{ - name = "Port Docking Bay 3" + name = "Docking Bay 3" }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 @@ -10080,6 +10228,7 @@ /obj/effect/turf_decal/trimline/red/filled/line{ dir = 1 }, +/obj/structure/reagent_dispensers/wall/peppertank/directional/north, /obj/structure/table, /obj/item/reagent_containers/cup/bottle/morphine{ pixel_x = -4; @@ -10111,13 +10260,9 @@ /turf/open/floor/iron/dark, /area/station/security/execution) "doR" = ( -/obj/machinery/power/apc/auto_name/directional/south, -/obj/structure/cable, -/obj/effect/mapping_helpers/apc/cell_10k, -/obj/effect/mapping_helpers/apc/full_charge, -/obj/machinery/plumbing/ooze_compressor, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) +/obj/machinery/light/small/directional/west, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "doT" = ( /obj/structure/ghost_critter_spawn, /obj/effect/decal/cleanable/dirt, @@ -10165,6 +10310,7 @@ /turf/open/floor/iron/kitchen, /area/station/security/prison/mess) "dpu" = ( +/obj/machinery/airalarm/directional/south, /obj/structure/table/wood, /obj/item/cigbutt{ pixel_y = 16; @@ -10194,12 +10340,12 @@ }, /area/station/cargo/sorting) "dpZ" = ( -/obj/effect/turf_decal/siding/wood{ +/obj/structure/chair/office{ dir = 8 }, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/commons/vacant_room/office) +/obj/effect/landmark/start/nanotrasen_representative, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/nt_rep) "dqb" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/north, @@ -10218,18 +10364,9 @@ /turf/open/floor/iron/dark, /area/station/hallway/secondary/exit/departure_lounge) "dqu" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/spawner/random/structure/steam_vent, -/turf/open/floor/catwalk_floor, -/area/station/maintenance/starboard/aft) +/obj/structure/foamedmetal, +/turf/open/misc/asteroid/airless, +/area/station/asteroid) "dqx" = ( /obj/structure/weightmachine/stacklifter, /turf/open/floor/iron/dark, @@ -10270,7 +10407,7 @@ dir = 8 }, /obj/machinery/door/airlock/external{ - name = "Escape Pod One" + name = "Escape Pod Bay One" }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 @@ -10385,16 +10522,11 @@ /obj/machinery/computer/crew, /turf/open/floor/iron, /area/station/medical/paramedic) -"dub" = ( -/obj/structure/chair/office{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) "duj" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ dir = 6 }, +/obj/machinery/meter, /turf/open/floor/iron, /area/station/science/ordnance) "duk" = ( @@ -10423,10 +10555,10 @@ /turf/open/floor/iron/dark/smooth_large, /area/station/security/courtroom) "duF" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/trimline/red/filled/corner{ dir = 4 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) "duH" = ( @@ -10441,24 +10573,39 @@ /turf/open/floor/iron/dark/textured, /area/station/cargo/lobby) "duQ" = ( -/obj/structure/sign/departments/engineering/directional/north, -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/trash/garbage, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +/obj/structure/closet/emcloset/wall/directional/east, +/obj/item/kirbyplants/random, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/nt_rep) "dvd" = ( /obj/machinery/light/small/directional/east, /obj/item/radio/intercom/prison/directional/east, /turf/open/floor/iron/dark, /area/station/security/prison) +"dvl" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"dvB" = ( +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 4 + }, +/obj/effect/mapping_helpers/mail_sorting/science/experimentor_lab, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron, +/area/station/maintenance/department/science) "dvO" = ( /turf/closed/wall, /area/station/medical/paramedic) "dvS" = ( -/obj/effect/turf_decal/trimline/yellow/line{ +/obj/effect/turf_decal/trimline/green/line{ dir = 1 }, -/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/effect/turf_decal/trimline/green/filled/line, /obj/machinery/light/directional/south, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -10470,21 +10617,10 @@ /turf/open/floor/plating, /area/station/science/ordnance/testlab) "dwh" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/commons/fitness/recreation) -"dwq" = ( -/obj/machinery/camera/autoname/directional/north, -/obj/structure/sign/warning/biohazard/directional/north, -/obj/structure/table/reinforced/plasmarglass, -/obj/item/wirecutters, -/obj/item/screwdriver{ - pixel_y = 8 - }, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/cigbutt, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "dws" = ( /obj/effect/turf_decal/trimline/brown/filled/warning, /obj/effect/turf_decal/trimline/brown/warning{ @@ -10524,6 +10660,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, /obj/machinery/door/airlock/command/glass{ name = "Server Room" }, @@ -10576,9 +10713,21 @@ /turf/open/floor/iron/dark, /area/station/service/janitor) "dyv" = ( -/obj/structure/filingcabinet, -/turf/open/floor/carpet/green, -/area/station/commons/vacant_room/office) +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/turf/open/floor/plating, +/area/station/commons/fitness) "dyE" = ( /obj/structure/extinguisher_cabinet/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -10615,21 +10764,23 @@ /obj/structure/disposalpipe/segment{ dir = 6 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/carpet/red, /area/station/command/heads_quarters/hos) -"dzj" = ( -/obj/structure/cable, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "dzl" = ( -/obj/effect/turf_decal/tile/dark_blue/fourcorners, +/obj/effect/turf_decal/trimline/dark_blue/filled/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/obj/machinery/vending/boozeomat/all_access, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) +"dzo" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "dzE" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -10662,6 +10813,9 @@ /area/station/security/checkpoint/medical) "dzR" = ( /obj/machinery/light/small/directional/west, +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ + dir = 6 + }, /turf/open/floor/iron/dark, /area/station/engineering/atmos/pumproom) "dzU" = ( @@ -10698,8 +10852,8 @@ /turf/open/floor/iron/showroomfloor, /area/station/command/heads_quarters/rd) "dAo" = ( -/obj/structure/sign/warning/radiation/directional/west, /obj/machinery/light/small/directional/west, +/obj/structure/sign/warning/radiation/directional/west, /obj/machinery/power/apc/auto_name/directional/south, /obj/structure/cable, /obj/effect/mapping_helpers/apc/cell_5k, @@ -10775,13 +10929,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/hallway/primary/port) -"dBo" = ( -/obj/structure/disposalpipe/trunk, -/obj/structure/disposaloutlet{ - dir = 1 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "dBr" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ @@ -10794,15 +10941,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"dBA" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/light/neon_lining{ - dir = 4 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "dBB" = ( /obj/effect/turf_decal/trimline/blue/filled/warning{ dir = 1 @@ -10822,7 +10960,8 @@ id_tag = "bs_bolt"; name = "Blueshield's Office" }, -/obj/effect/mapping_helpers/airlock/access/all/admin/general, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, /turf/open/floor/iron/dark/textured, /area/station/command/heads_quarters/blueshield) "dBZ" = ( @@ -10869,14 +11008,28 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"dCP" = ( -/obj/effect/turf_decal/trimline/yellow/line{ +"dCC" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 }, -/obj/effect/turf_decal/trimline/yellow/filled/line, -/obj/machinery/station_map/directional/south, +/turf/open/floor/iron/white, +/area/station/science/explab) +"dCO" = ( +/obj/structure/sign/picture_frame/showroom/four{ + pixel_x = -32 + }, +/obj/structure/table/wood/fancy/green, +/obj/item/statuebust/hippocratic{ + pixel_y = 8 + }, /turf/open/floor/iron/dark, -/area/station/hallway/primary/central) +/area/station/command/heads_quarters/nt_rep) +"dCP" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/tcommsat/computer) "dCT" = ( /obj/structure/flora/grass/jungle/b/style_random, /turf/open/floor/grass, @@ -10929,14 +11082,29 @@ "dEg" = ( /obj/machinery/light/small/directional/south, /obj/machinery/camera/directional/south{ - c_tag = "Arrivals - Escape Pod Bay 2"; - name = "arrivals camera" + c_tag = "Hallway, Arrivals - Escape Pod Bay 2"; + name = "hallway camera" }, +/obj/structure/sign/warning/vacuum/external/directional/south, /obj/structure/chair{ dir = 1 }, /turf/open/floor/iron/dark/smooth_large, /area/station/hallway/secondary/entry) +"dEi" = ( +/obj/machinery/light/neon_lining{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/camera/directional/east{ + c_tag = "Science - Xenobiology, Pen 6"; + name = "xenobiology camera"; + network = list("ss13","rd","xeno") + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "dEl" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ @@ -10996,7 +11164,7 @@ /area/station/security/courtroom) "dEG" = ( /obj/structure/cable, -/turf/closed/wall/r_wall, +/turf/open/floor/iron/dark, /area/station/security/prison/visit) "dEH" = ( /turf/closed/wall, @@ -11105,20 +11273,15 @@ /turf/open/floor/iron/dark, /area/station/security/checkpoint/engineering) "dGM" = ( -/obj/effect/turf_decal/trimline/red/filled/warning{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/red/warning, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/hallway/primary/central) +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron, +/area/station/commons/storage/primary) "dGT" = ( -/obj/machinery/light/directional/east, -/obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/wood, -/area/station/commons/vacant_room/office) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/nt_rep) "dGY" = ( /turf/open/floor/iron/dark/side{ dir = 8 @@ -11229,42 +11392,43 @@ /area/station/hallway/primary/central) "dIG" = ( /obj/structure/sign/poster/official/no_erp/directional/south, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, /turf/open/floor/iron/dark/side, /area/station/commons/dorms) "dIJ" = ( -/obj/machinery/firealarm/directional/north, -/obj/machinery/camera/autoname/directional/north, +/obj/machinery/camera/directional/north{ + c_tag = "Service - Custodial Closet"; + name = "service camera" + }, +/obj/machinery/firealarm/directional/north{ + pixel_x = -5 + }, +/obj/machinery/light_switch/directional/north{ + pixel_x = 5 + }, /obj/structure/closet/crate/wooden/toy, /turf/open/floor/iron/dark/side{ dir = 5 }, /area/station/service/theater) -"dIO" = ( -/obj/effect/turf_decal/tile/dark_blue/fourcorners, -/obj/machinery/light/directional/west, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable, -/obj/structure/chair/office/light{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/command/gateway) "dIV" = ( -/obj/structure/disposalpipe/sorting/mail/flip{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/mapping_helpers/mail_sorting/service/law_office, -/turf/open/floor/plating, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/structure/table, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/iron/checker, /area/station/maintenance/port/fore) "dIW" = ( /turf/closed/wall, /area/station/service/lawoffice) "dIY" = ( -/obj/effect/spawner/random/engineering/tracking_beacon, -/turf/open/floor/engine, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron/white, /area/station/science/xenobiology) "dJc" = ( /obj/machinery/meter, @@ -11277,6 +11441,18 @@ /obj/effect/turf_decal/trimline/purple/filled/line, /turf/open/floor/iron/white, /area/station/science/research) +"dJv" = ( +/obj/effect/turf_decal/box, +/obj/structure/disposalpipe/junction/yjunction{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/holopad, +/turf/open/floor/iron/white/smooth_large, +/area/station/science/xenobiology) "dJx" = ( /obj/machinery/computer/records/medical{ dir = 8 @@ -11325,15 +11501,6 @@ /obj/item/hand_labeler, /turf/open/floor/iron/white, /area/station/medical/chemistry) -"dJV" = ( -/obj/machinery/light/neon_lining{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/turf/open/floor/stone, -/area/station/science/xenobiology) "dKa" = ( /obj/effect/spawner/random/vending/colavend, /turf/open/floor/iron/dark, @@ -11382,6 +11549,18 @@ }, /turf/open/floor/iron/dark, /area/station/security/brig) +"dLr" = ( +/obj/machinery/corral_corner{ + mapping_id = "5" + }, +/obj/machinery/light/neon_lining{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "dLv" = ( /obj/structure/cable, /turf/open/floor/iron, @@ -11394,8 +11573,10 @@ dir = 4 }, /obj/effect/turf_decal/stripes/line, -/obj/structure/sign/warning/vacuum/external/directional/south, -/obj/machinery/camera/autoname/directional/west, +/obj/machinery/camera/directional/west{ + c_tag = "Hallway, Arrivals - Escape Pod Bay 1, Access"; + name = "hallway camera" + }, /obj/item/kirbyplants/random, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) @@ -11442,11 +11623,15 @@ /turf/open/floor/iron/white, /area/station/medical/treatment_center) "dMl" = ( -/obj/machinery/computer/upload/borg{ - dir = 4 +/obj/machinery/light/directional/west, +/obj/structure/disposalpipe/segment{ + dir = 5 }, -/turf/open/floor/circuit, -/area/station/ai_monitored/turret_protected/ai_upload) +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/obj/structure/filingcabinet, +/turf/open/floor/wood, +/area/station/service/lawoffice) "dMo" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 10 @@ -11457,7 +11642,6 @@ /turf/open/floor/iron/white, /area/station/medical/pharmacy) "dMC" = ( -/obj/machinery/firealarm/directional/south, /obj/machinery/vending/cigarette, /turf/open/floor/carpet, /area/station/hallway/secondary/entry) @@ -11465,7 +11649,16 @@ /turf/closed/wall, /area/station/science/genetics) "dMR" = ( -/obj/structure/cable, +/obj/machinery/light/directional/east, +/obj/machinery/requests_console/directional/east{ + department = "Law Office"; + name = "Law Office Requests Console" + }, +/obj/effect/mapping_helpers/requests_console/assistance, +/obj/effect/mapping_helpers/requests_console/information, +/obj/machinery/computer/warrant{ + dir = 8 + }, /turf/open/floor/wood, /area/station/service/lawoffice) "dMV" = ( @@ -11484,7 +11677,7 @@ /obj/effect/mapping_helpers/airlock/access/all/security/general, /obj/machinery/duct, /turf/open/floor/plating, -/area/station/maintenance/port/fore) +/area/station/security/interrogation) "dMW" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -11508,25 +11701,9 @@ /obj/effect/landmark/navigate_destination/atmos, /turf/open/floor/iron/dark/textured, /area/station/engineering/break_room) -"dNc" = ( -/obj/effect/turf_decal/tile/green, -/obj/structure/table, -/obj/machinery/plantgenes{ - pixel_y = 6 - }, -/obj/item/clothing/suit/apron, -/obj/item/clothing/accessory/armband/hydro, -/obj/item/wrench, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron/dark/side{ - dir = 9 - }, -/area/station/service/hydroponics) "dNr" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/turf/open/floor/carpet/green, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/carpet, /area/station/commons/locker) "dNt" = ( /obj/machinery/light/small/directional/south, @@ -11582,7 +11759,8 @@ dir = 8 }, /obj/machinery/camera/directional/east{ - c_tag = "Arrivals - Hallway" + c_tag = "Hallway, Arrivals - West Hallway Access"; + name = "hallway camera" }, /obj/structure/sign/directions/medical/directional/east{ pixel_y = 9 @@ -11591,9 +11769,6 @@ /obj/structure/sign/directions/vault/directional/east{ pixel_y = -9 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) "dOs" = ( @@ -11617,6 +11792,11 @@ /obj/machinery/status_display/ai/directional/south, /turf/open/floor/iron/white, /area/station/science/research) +"dOF" = ( +/obj/structure/table, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/iron, +/area/station/maintenance/department/science) "dOL" = ( /obj/machinery/light/small/directional/north, /obj/structure/rack{ @@ -11628,6 +11808,11 @@ /obj/item/storage/fancy/candle_box, /turf/open/floor/iron/vaporwave, /area/station/service/library/printer) +"dON" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "dOS" = ( /turf/closed/wall, /area/station/security/prison/work) @@ -11646,18 +11831,33 @@ /obj/machinery/airalarm/directional/south, /turf/open/floor/grass, /area/station/hallway/primary/central) +"dPp" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 4 + }, +/obj/structure/sign/poster/official/random/directional/west, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/entry) "dPy" = ( /obj/machinery/igniter/incinerator_ordmix, /turf/open/floor/engine/vacuum, /area/station/science/ordnance/burnchamber) "dPz" = ( -/obj/effect/turf_decal/siding/wood{ +/obj/effect/turf_decal/trimline/green/filled/line, +/obj/effect/turf_decal/trimline/green/line{ dir = 1 }, -/turf/open/floor/wood, -/area/station/commons/vacant_room/office) +/obj/machinery/station_map/directional/south, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/central) "dPD" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/camera/directional/east{ + c_tag = "Service - Kitchen, Coldroom"; + name = "service camera" + }, /obj/structure/closet/secure_closet/freezer/kitchen, /turf/open/floor/iron/freezer, /area/station/service/kitchen/coldroom) @@ -11670,8 +11870,19 @@ /area/station/science/research) "dPH" = ( /obj/effect/turf_decal/tile/purple/fourcorners, +/obj/structure/cable, /turf/open/floor/iron/dark, /area/station/command/bridge) +"dPJ" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/machinery/firealarm/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/wood/tile, +/area/station/command/heads_quarters/nt_rep) "dPK" = ( /obj/effect/landmark/blobstart, /turf/open/floor/grass, @@ -11717,24 +11928,11 @@ }, /obj/machinery/light/small/directional/east, /obj/machinery/atmospherics/components/binary/pump/on{ + name = "Input"; dir = 1 }, /turf/open/floor/engine, /area/station/science/ordnance/burnchamber) -"dQB" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - name = "Visitation" - }, -/obj/effect/mapping_helpers/airlock/access/all/syndicate, -/turf/open/floor/iron/dark/textured, -/area/station/security/prison/visit) "dQC" = ( /obj/effect/turf_decal/trimline/blue/filled/warning, /obj/effect/turf_decal/trimline/blue/warning{ @@ -11759,13 +11957,11 @@ /turf/open/floor/iron/dark, /area/station/security/office) "dQL" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/duct, -/turf/open/floor/catwalk_floor/iron, -/area/station/maintenance/department/science) +/obj/machinery/plumbing/ooze_sucker{ + mapping_id = "3" + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "dQR" = ( /obj/machinery/light/directional/south, /obj/effect/turf_decal/trimline/yellow/filled/line, @@ -11792,13 +11988,6 @@ /obj/effect/spawner/random/techstorage/ai_all, /turf/open/floor/iron/dark, /area/station/engineering/storage/tech) -"dRS" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/turf/open/floor/catwalk_floor/iron, -/area/station/maintenance/department/science) "dRU" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 9 @@ -11821,7 +12010,7 @@ dir = 8 }, /obj/machinery/door/airlock/external{ - name = "Escape Pod Two" + name = "Escape Pod Bay Two" }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 @@ -11855,18 +12044,18 @@ /turf/open/floor/plating, /area/station/maintenance/department/cargo) "dTx" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/security/glass{ name = "Equipment Room" }, -/obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/effect/mapping_helpers/airlock/access/all/security/brig, /turf/open/floor/iron/dark/textured, /area/station/security/lockers) "dTD" = ( @@ -11893,9 +12082,12 @@ /turf/open/floor/iron/showroomfloor, /area/station/command/heads_quarters/blueshield) "dTN" = ( -/obj/effect/artifact_spawner, -/turf/open/floor/engine, -/area/station/science/explab) +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "dTS" = ( /obj/effect/turf_decal/trimline/red/filled/corner, /obj/effect/turf_decal/trimline/red/line{ @@ -12004,7 +12196,6 @@ /turf/open/floor/iron, /area/station/cargo/warehouse) "dVk" = ( -/obj/machinery/meter, /obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible{ dir = 8 }, @@ -12031,6 +12222,11 @@ /obj/machinery/power/apc/auto_name/directional/south, /turf/open/floor/wood, /area/station/command/meeting_room) +"dWw" = ( +/obj/structure/cable, +/obj/machinery/station_map/directional/west, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "dWS" = ( /turf/closed/wall/r_wall, /area/station/maintenance/starboard/fore) @@ -12043,6 +12239,13 @@ /obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/wood, /area/station/service/library) +"dXk" = ( +/obj/machinery/atmospherics/components/binary/pump/on/supply/hidden{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "dXF" = ( /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/dark/side, @@ -12096,11 +12299,9 @@ /obj/item/radio/intercom/directional/south, /obj/machinery/recharge_station, /obj/machinery/light/small/directional/east, +/obj/effect/landmark/start/cyborg, /turf/open/floor/iron, /area/station/science/robotics/mechbay) -"dYt" = ( -/turf/open/floor/engine, -/area/station/science/xenobiology) "dYv" = ( /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 5 @@ -12129,8 +12330,8 @@ /turf/open/floor/iron, /area/station/engineering/break_room) "dYI" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/trimline/red/filled/corner, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) "dYQ" = ( @@ -12152,6 +12353,11 @@ }, /turf/open/floor/engine/o2, /area/station/engineering/atmos) +"dZd" = ( +/obj/machinery/airalarm/directional/north, +/obj/machinery/oven/range, +/turf/open/floor/iron/kitchen, +/area/station/command/heads_quarters/nt_rep) "dZe" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -12247,6 +12453,10 @@ /obj/structure/flora/bush/grassy/style_random, /turf/open/floor/grass, /area/station/hallway/primary/central) +"eai" = ( +/obj/machinery/chem_heater/withbuffer, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "ean" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ @@ -12321,13 +12531,16 @@ dir = 1 }, /obj/structure/window/reinforced/spawner/directional/north, -/obj/machinery/light/small/directional/west, /turf/open/floor/grass, /area/station/service/hydroponics) "eaS" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 4 }, +/obj/machinery/camera/directional/east{ + c_tag = "Security - Post, Medical"; + name = "security camera" + }, /obj/machinery/computer/security{ dir = 8 }, @@ -12350,19 +12563,17 @@ /obj/effect/landmark/start/chief_medical_officer, /turf/open/floor/wood, /area/station/command/meeting_room) -"ebp" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ +"ebk" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ dir = 8 }, -/obj/effect/turf_decal/trimline/red/line{ - dir = 4 - }, -/obj/structure/sign/poster/official/space_cops/directional/west, -/turf/open/floor/iron/dark, -/area/station/hallway/primary/fore) +/obj/machinery/light/small/directional/west, +/obj/structure/sign/poster/official/random/directional/west, +/turf/open/floor/iron/white, +/area/station/science/auxlab) "ebw" = ( /turf/closed/wall, -/area/station/maintenance/department/security) +/area/station/security/office) "ebD" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -12373,11 +12584,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/science/research) -"ebL" = ( -/obj/machinery/photocopier, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) "ebN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -12413,6 +12619,7 @@ /area/station/science/ordnance) "ecg" = ( /obj/effect/turf_decal/tile/yellow/fourcorners, +/obj/structure/extinguisher_cabinet/directional/west, /obj/structure/window/reinforced/spawner/directional/south, /obj/machinery/computer/monitor{ dir = 1 @@ -12434,11 +12641,6 @@ /obj/item/multitool, /turf/open/floor/iron/dark, /area/station/command/bridge) -"ecF" = ( -/obj/structure/rack, -/obj/item/storage/briefcase, -/turf/open/floor/wood, -/area/station/service/lawoffice) "ecG" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 6 @@ -12455,7 +12657,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ dir = 4 }, /turf/open/space/basic, @@ -12468,6 +12670,31 @@ dir = 8 }, /area/station/hallway/secondary/exit/departure_lounge) +"edf" = ( +/obj/machinery/light/directional/east, +/obj/machinery/biomass_recycler, +/obj/item/stack/biomass, +/obj/item/stack/biomass, +/obj/item/stack/biomass, +/obj/item/stack/biomass, +/obj/item/stack/biomass, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"edg" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/visible, +/obj/structure/cable, +/obj/machinery/door/window/left/directional/west{ + name = "Test Chamber"; + req_access = list("xenobiology") + }, +/turf/open/floor/iron, +/area/station/science/xenobiology) "edD" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/checker, @@ -12516,7 +12743,10 @@ dir = 9 }, /obj/effect/turf_decal/trimline/neutral/corner, -/obj/machinery/camera/autoname/directional/west, +/obj/machinery/camera/directional/west{ + c_tag = "Hallway, Arrivals - Docking Bay 3, Access"; + name = "hallway camera" + }, /obj/item/kirbyplants/random, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) @@ -12535,6 +12765,11 @@ }, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) +"eee" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/station/science/xenobiology) "eer" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/trash/food_packaging, @@ -12598,9 +12833,8 @@ /turf/open/floor/plating, /area/station/engineering/atmos) "efB" = ( -/obj/item/radio/intercom/directional/east, /obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/electrolyzer, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) "efQ" = ( @@ -12627,11 +12861,11 @@ /turf/open/floor/iron/dark, /area/station/hallway/secondary/exit/departure_lounge) "egC" = ( +/obj/effect/turf_decal/trimline/red/filled/line, +/obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 }, -/obj/effect/turf_decal/trimline/red/filled/line, -/obj/structure/cable, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) "egK" = ( @@ -12794,14 +13028,11 @@ /turf/open/floor/wood, /area/station/command/heads_quarters/hop) "ejK" = ( -/obj/effect/turf_decal/tile/purple/fourcorners, -/obj/machinery/camera/autoname/directional/east, -/obj/machinery/computer/nanite_chamber_control{ - dir = 8 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/machinery/status_display/ai/directional/east, /turf/open/floor/iron/white, -/area/station/science/research) +/area/station/science/xenobiology) "ekn" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -12842,7 +13073,16 @@ }, /obj/machinery/light/directional/west, /obj/structure/table, -/obj/machinery/syndicatebomb/training, +/obj/item/restraints/handcuffs{ + pixel_x = -3; + pixel_y = 6 + }, +/obj/item/restraints/handcuffs, +/obj/item/restraints/handcuffs{ + pixel_x = 3; + pixel_y = -6 + }, +/obj/item/assembly/timer, /turf/open/floor/iron/dark, /area/station/security/office) "elt" = ( @@ -12893,7 +13133,6 @@ /obj/effect/turf_decal/stripes/line, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/light/small/directional/north, /obj/machinery/firealarm/directional/north, /turf/open/floor/iron/dark, /area/station/engineering/engine_smes) @@ -12956,13 +13195,11 @@ /turf/open/floor/wood, /area/station/service/chapel/funeral) "enE" = ( -/obj/machinery/light/directional/east, -/obj/machinery/computer/atmos_control/nocontrol/incinerator{ +/obj/machinery/atmospherics/components/unary/passive_vent{ dir = 8 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/dark, -/area/station/maintenance/disposal/incinerator) +/turf/open/floor/plating/airless, +/area/space) "enT" = ( /obj/structure/tank_dispenser, /turf/open/floor/iron, @@ -13022,11 +13259,13 @@ /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) "eoS" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/light/small/directional/west, +/obj/structure/table/wood, +/obj/item/paper_bin, +/obj/item/pen, +/turf/open/floor/iron/dark, +/area/station/security/detectives_office) "epc" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/trash/box, @@ -13075,17 +13314,14 @@ /turf/open/floor/wood, /area/station/service/library) "eqm" = ( -/obj/structure/window/reinforced/spawner/directional/north, -/obj/effect/landmark/start/hangover, -/turf/open/floor/iron/dark, -/area/station/commons/fitness/recreation) +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/structure/furniture_parts, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "eqx" = ( /obj/effect/turf_decal/trimline/blue/filled/corner{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, /turf/open/floor/iron/white, /area/station/medical/pharmacy) "eqJ" = ( @@ -13106,7 +13342,8 @@ /area/station/commons/dorms) "erd" = ( /obj/machinery/camera/autoname/directional/east, -/obj/machinery/airalarm/directional/east, +/obj/item/radio/intercom/prison/directional/east, +/obj/structure/rack, /turf/open/floor/iron/dark/side{ dir = 4 }, @@ -13133,14 +13370,26 @@ /turf/open/floor/iron/white, /area/station/medical/exam_room) "erC" = ( -/obj/item/stack/spacecash/c1000{ - pixel_y = 11; - pixel_x = 5; +/obj/item/stack/spacecash/c200{ + name = "spess-opoly cash"; value = 0; - name = "spess-opoly cash" + pixel_x = 6; + pixel_y = 12 }, /turf/open/floor/eighties/red, /area/station/service/theater) +"erK" = ( +/obj/effect/turf_decal/stripes/end, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/table/reinforced, +/obj/machinery/button/door{ + id = "testlab"; + name = "Xenobiology Secure Chamber Blast Doors"; + pixel_y = 5; + req_access = list("xenobiology") + }, +/turf/open/floor/iron, +/area/station/science/xenobiology) "erQ" = ( /obj/structure/table, /obj/item/paper_bin, @@ -13171,6 +13420,11 @@ dir = 8 }, /area/station/commons/fitness) +"esE" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/gary, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "esS" = ( /obj/effect/turf_decal/trimline/neutral/line, /obj/effect/turf_decal/trimline/neutral/filled/line{ @@ -13196,16 +13450,12 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/engineering/atmos/storage) -"etg" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ +"ete" = ( +/obj/machinery/atmospherics/components/tank/air{ dir = 8 }, -/obj/effect/turf_decal/trimline/green/line{ - dir = 4 - }, -/obj/machinery/light/directional/west, -/turf/open/floor/iron/dark, -/area/station/hallway/primary/central) +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "etp" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -13222,6 +13472,10 @@ /obj/effect/mapping_helpers/airlock/access/all/security/general, /turf/open/floor/plating, /area/station/security/checkpoint/supply) +"etr" = ( +/obj/effect/spawner/random/engineering/tracking_beacon, +/turf/open/floor/engine, +/area/station/science/xenobiology) "ett" = ( /obj/machinery/firealarm/directional/north{ pixel_x = -5 @@ -13286,10 +13540,11 @@ /area/station/service/kitchen/coldroom) "etW" = ( /obj/effect/turf_decal/stripes/corner, -/obj/machinery/firealarm/directional/south, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, +/obj/machinery/button/door/directional/south{ + id = "station_away_gate"; + name = "Gateway Access Shutter Control"; + req_access = list("gateway") + }, /turf/open/floor/iron, /area/station/command/gateway) "eub" = ( @@ -13321,6 +13576,11 @@ /turf/open/floor/plating, /area/station/engineering/atmos/pumproom) "euP" = ( +/obj/machinery/camera/directional/west{ + c_tag = "Science - Ordnance, Launcher"; + name = "science camera"; + network = list("ss13","rd") + }, /obj/machinery/power/apc/auto_name/directional/west, /obj/structure/cable, /obj/structure/table/reinforced, @@ -13347,11 +13607,19 @@ /turf/open/floor/iron/dark, /area/station/engineering/atmos/pumproom) "evf" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ - dir = 4 +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, +/obj/structure/cable, +/obj/structure/liquid_barrier, +/obj/machinery/door/airlock/hatch{ + name = "Cytology Pen" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, +/turf/open/floor/iron/dark/textured, +/area/station/science/xenobiology) "evj" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -13381,7 +13649,6 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "evs" = ( -/obj/machinery/light/broken/directional/west, /obj/machinery/power/apc/auto_name/directional/west, /obj/structure/cable, /obj/structure/table, @@ -13394,9 +13661,6 @@ /turf/open/floor/plating, /area/station/maintenance/department/science) "evu" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, /turf/open/floor/engine, /area/station/security/execution) @@ -13425,6 +13689,7 @@ dir = 8 }, /obj/machinery/light/directional/west, +/obj/machinery/cell_charger_multi/wall_mounted/directional/west, /obj/machinery/suit_storage_unit/security, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) @@ -13445,7 +13710,11 @@ /obj/effect/turf_decal/trimline/dark_blue/filled/line{ dir = 8 }, -/obj/machinery/camera/autoname/directional/west, +/obj/machinery/camera/directional/west{ + c_tag = "Science - Server Room"; + name = "science camera"; + network = list("ss13","rd") + }, /obj/structure/chair/office/light{ dir = 1 }, @@ -13457,14 +13726,6 @@ /obj/effect/spawner/random/maintenance/two, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"ewM" = ( -/obj/machinery/camera/directional/north{ - c_tag = "Science - Artifact Lab, Test Chamber"; - name = "science camera"; - network = list("ss13","rd") - }, -/turf/open/floor/engine, -/area/station/science/explab) "ewP" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/hidden, /turf/open/floor/catwalk_floor, @@ -13472,10 +13733,9 @@ "exa" = ( /obj/machinery/shower/directional/north, /obj/structure/drain, -/turf/open/floor/iron/white/textured_large, +/turf/open/floor/iron/showroomfloor, /area/station/medical/exam_room) "exf" = ( -/obj/effect/turf_decal/tile/dark_blue/fourcorners, /obj/effect/turf_decal/stripes/line{ dir = 1 }, @@ -13550,6 +13810,7 @@ dir = 9 }, /obj/effect/turf_decal/trimline/neutral/corner, +/obj/structure/sign/poster/official/nanotrasen_logo/directional/west, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) "eyh" = ( @@ -13589,6 +13850,15 @@ }, /turf/open/floor/plating, /area/station/maintenance/solars/starboard/aft) +"eyG" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/explab) "eyN" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -13599,16 +13869,16 @@ /obj/effect/turf_decal/tile/yellow{ dir = 4 }, -/obj/machinery/light_switch/directional/east{ - pixel_y = -5 - }, /obj/machinery/firealarm/directional/east{ pixel_y = 5 }, +/obj/machinery/light_switch/directional/east{ + pixel_y = -5 + }, /obj/item/radio/intercom/directional/south, -/obj/structure/rack, -/obj/item/storage/toolbox/mechanical, -/obj/item/multitool, +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ + dir = 1 + }, /turf/open/floor/iron/dark/side{ dir = 6 }, @@ -13666,24 +13936,21 @@ /obj/effect/mapping_helpers/airlock/access/any/service/maintenance, /turf/open/floor/catwalk_floor/iron_dark, /area/station/service/chapel/funeral) -"eAg" = ( -/obj/effect/turf_decal/stripes/red/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, -/turf/open/floor/engine, -/area/station/science/xenobiology) +"eAf" = ( +/obj/machinery/light/small/directional/south, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/department/science) "eAj" = ( /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/secondary/service) "eAp" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/chair/office{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 }, /turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/area/station/ai_monitored/command/storage/eva) "eAu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood, @@ -13735,6 +14002,14 @@ /obj/effect/landmark/start/prisoner, /turf/open/floor/wood/tile, /area/station/security/prison/safe) +"eBy" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 9 + }, +/obj/machinery/airalarm/directional/north, +/obj/structure/table/glass, +/turf/open/floor/iron/white, +/area/station/science/auxlab) "eBD" = ( /obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 1 @@ -13821,6 +14096,36 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/service/chapel/funeral) +"eCA" = ( +/obj/structure/table/wood, +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = -3 + }, +/obj/item/reagent_containers/condiment/peppermill{ + pixel_x = 3 + }, +/turf/open/floor/iron/kitchen, +/area/station/command/heads_quarters/nt_rep) +"eCE" = ( +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron, +/area/station/maintenance/department/science) +"eCF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron/kitchen, +/area/station/command/heads_quarters/nt_rep) "eCG" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ @@ -13838,7 +14143,7 @@ /turf/open/floor/iron/large, /area/station/security/prison/work) "eDg" = ( -/obj/structure/sign/warning/secure_area/directional/west, +/obj/structure/sign/warning/biohazard/directional/west, /obj/machinery/shower/directional/east, /turf/open/floor/iron/showroomfloor, /area/station/science/xenobiology/hallway) @@ -13895,6 +14200,11 @@ /obj/structure/cable, /turf/open/floor/catwalk_floor, /area/station/maintenance/starboard/aft) +"eFB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/spawner/random/trash/garbage, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "eFJ" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 5 @@ -13971,12 +14281,17 @@ /area/station/cargo/storage) "eGs" = ( /obj/machinery/light/small/directional/west, -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/components/binary/tank_compressor{ - dir = 1 - }, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/components/binary/tank_compressor, /turf/open/floor/iron, /area/station/science/ordnance) +"eGu" = ( +/obj/machinery/light/small/directional/east, +/obj/structure/filingcabinet, +/turf/open/floor/iron/dark/side/airless{ + dir = 5 + }, +/area/station/maintenance/space_hut) "eGw" = ( /turf/open/floor/plating, /area/station/maintenance/central) @@ -14075,6 +14390,10 @@ /obj/structure/cable, /turf/open/floor/iron/vaporwave, /area/station/service/library/printer) +"eHI" = ( +/obj/machinery/light/directional/south, +/turf/open/floor/engine, +/area/station/science/xenobiology) "eHO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, @@ -14168,6 +14487,22 @@ /obj/machinery/washing_machine, /turf/open/floor/iron/checker, /area/station/commons/dorms/laundry) +"eKg" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/spawner/random/structure/steam_vent, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "eKm" = ( /obj/machinery/atmospherics/miner/oxygen, /obj/machinery/portable_atmospherics/canister/oxygen, @@ -14187,6 +14522,7 @@ dir = 8 }, /obj/machinery/light/small/directional/west, +/obj/machinery/status_display/evac/directional/west, /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/iron, /area/station/engineering/storage) @@ -14206,12 +14542,6 @@ /obj/machinery/telecomms/server/presets/command, /turf/open/floor/circuit/green/telecomms, /area/station/tcommsat/server) -"eKK" = ( -/obj/machinery/atmospherics/components/tank/air{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) "eKY" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 1 @@ -14245,19 +14575,11 @@ /turf/open/floor/iron/dark/textured, /area/station/command/heads_quarters/cmo) "eLo" = ( -/obj/machinery/light/floor/has_bulb, -/obj/machinery/duct, -/turf/open/floor/plastic, -/area/station/security/prison/safe) -"eLq" = ( -/obj/structure/table, -/obj/item/paper_bin, -/obj/item/pen, -/obj/item/pen/blue{ - pixel_y = 5 +/obj/structure/chair/plastic{ + dir = 4 }, /turf/open/floor/iron/dark, -/area/station/tcommsat/computer) +/area/station/security/prison) "eLy" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 @@ -14280,6 +14602,28 @@ dir = 1 }, /area/station/engineering/storage_shared) +"eLA" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/poddoor/preopen{ + id = "execution_fireblast" + }, +/obj/machinery/door/airlock/security/glass{ + name = "Justice Chamber Interior" + }, +/obj/effect/mapping_helpers/airlock/access/all/security/armory, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/security/execution) "eMb" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -14311,8 +14655,13 @@ dir = 5 }, /area/station/cargo/storage) +"eMi" = ( +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "eMz" = ( -/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/bot, /obj/machinery/atmospherics/components/trinary/filter{ dir = 1 }, @@ -14336,9 +14685,12 @@ /turf/open/floor/iron/dark, /area/station/security/processing) "eNi" = ( +/obj/effect/turf_decal/box, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/turf/open/floor/iron/dark, +/obj/machinery/holopad, +/turf/open/floor/iron/large, /area/station/tcommsat/computer) "eNs" = ( /turf/closed/wall, @@ -14456,8 +14808,6 @@ /turf/open/floor/plating, /area/station/maintenance/department/cargo) "ePf" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /obj/structure/chair/office/light{ dir = 4 @@ -14466,9 +14816,12 @@ /turf/open/floor/iron/dark, /area/station/security/checkpoint/medical) "ePr" = ( -/obj/machinery/suit_storage_unit/standard_unit, -/turf/open/floor/iron/white/textured, -/area/station/science/auxlab) +/obj/structure/chair/office{ + dir = 1 + }, +/obj/effect/landmark/start/scientist, +/turf/open/floor/iron/white, +/area/station/science/explab) "ePv" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -14510,8 +14863,7 @@ /turf/open/floor/iron/dark, /area/station/construction/mining/aux_base) "eQk" = ( -/obj/structure/table, -/obj/effect/spawner/random/maintenance/two, +/obj/structure/girder, /turf/open/floor/plating, /area/station/maintenance/port/fore) "eQs" = ( @@ -14548,6 +14900,7 @@ /turf/open/floor/iron/dark/textured, /area/station/service/kitchen) "eQI" = ( +/obj/machinery/light/small/directional/west, /obj/machinery/atmospherics/pipe/smart/manifold/purple/visible{ dir = 8 }, @@ -14592,12 +14945,17 @@ /obj/structure/table/reinforced, /obj/machinery/cell_charger, /obj/item/stock_parts/cell/high, +/obj/item/toy/figure/ce{ + pixel_y = 15; + pixel_x = -9 + }, /turf/open/floor/iron/dark/side{ dir = 1 }, /area/station/command/heads_quarters/ce) "eRL" = ( /obj/effect/turf_decal/tile/red/fourcorners, +/obj/structure/cable, /turf/open/floor/iron/dark, /area/station/command/bridge) "eRQ" = ( @@ -14618,23 +14976,19 @@ /turf/open/floor/iron/white, /area/station/science/genetics) "eRY" = ( -/obj/machinery/firealarm/directional/south{ - pixel_x = 5 - }, -/obj/machinery/light_switch/directional/south{ - pixel_x = -5 +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 }, -/turf/open/floor/wood, -/area/station/commons/vacant_room/office) +/turf/open/floor/wood/tile, +/area/station/command/heads_quarters/nt_rep) "eSd" = ( /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, /area/station/maintenance/port/aft) "eSr" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/engineering/material_cheap, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron/kitchen, +/area/station/command/heads_quarters/nt_rep) "eSC" = ( /obj/effect/turf_decal/delivery/white, /obj/structure/closet/crate/freezer, @@ -14642,7 +14996,9 @@ /turf/open/floor/iron, /area/station/cargo/warehouse) "eSE" = ( -/obj/machinery/atmospherics/components/tank, +/obj/machinery/atmospherics/components/tank/air{ + dir = 8 + }, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "eSL" = ( @@ -14686,15 +15042,12 @@ }, /turf/open/floor/plating/airless, /area/space/nearstation) -"eTt" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "eTx" = ( -/obj/machinery/status_display/evac/directional/west, /obj/effect/turf_decal/tile/yellow/fourcorners, +/obj/machinery/camera/directional/west{ + c_tag = "Hallway, South - North" + }, +/obj/machinery/status_display/evac/directional/west, /obj/structure/chair/sofa/bench{ dir = 4 }, @@ -14730,11 +15083,13 @@ /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/eva) "eUa" = ( +/obj/machinery/firealarm/directional/north, /obj/structure/disposalpipe/segment{ dir = 4 }, /obj/structure/cable, -/obj/machinery/firealarm/directional/north, +/obj/structure/chair, +/obj/effect/landmark/start/atmospheric_technician, /turf/open/floor/iron/dark, /area/station/maintenance/disposal/incinerator) "eUr" = ( @@ -14796,15 +15151,23 @@ /obj/machinery/station_map/directional/east, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) +"eUV" = ( +/obj/machinery/light/directional/east, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/obj/effect/mapping_helpers/apc/cell_10k, +/obj/effect/mapping_helpers/apc/full_charge, +/obj/machinery/biomass_recycler, +/obj/item/stack/biomass, +/obj/item/stack/biomass, +/obj/item/stack/biomass, +/obj/item/stack/biomass, +/obj/item/stack/biomass, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "eUW" = ( /turf/open/floor/wood, /area/station/service/chapel/funeral) -"eVi" = ( -/obj/structure/table, -/obj/effect/spawner/random/maintenance, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) "eVz" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ @@ -14840,16 +15203,36 @@ /turf/open/floor/wood, /area/station/command/meeting_room) "eVT" = ( -/obj/machinery/airalarm/directional/west, -/obj/structure/reagent_dispensers/watertank, -/turf/open/floor/plating, -/area/station/maintenance/department/security/brig) +/obj/machinery/corral_corner{ + mapping_id = "6" + }, +/obj/machinery/light/neon_lining{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"eVZ" = ( +/obj/effect/turf_decal/tile/green, +/obj/structure/table, +/obj/machinery/plantgenes{ + pixel_y = 6 + }, +/obj/item/clothing/suit/apron, +/obj/item/clothing/accessory/armband/hydro, +/obj/item/wrench, +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/station/service/hydroponics) "eWd" = ( -/obj/effect/turf_decal/tile/dark_blue/fourcorners, -/obj/structure/extinguisher_cabinet/directional/west, -/obj/item/kirbyplants/photosynthetic, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/filingcabinet, /turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai_upload) +/area/station/security/detectives_office) "eWs" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 6 @@ -14911,13 +15294,14 @@ /turf/open/floor/engine, /area/station/ai_monitored/turret_protected/aisat/foyer) "eWP" = ( -/obj/structure/cable, -/obj/structure/table, -/turf/open/floor/iron/dark, -/area/station/security/prison) +/obj/machinery/light/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/commons/fitness/recreation) "eXJ" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/pink/visible/layer2, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/machinery/light/small/directional/south, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) "eXL" = ( @@ -14944,16 +15328,20 @@ /obj/machinery/camera/autoname/directional/south, /obj/machinery/power/apc/auto_name/directional/south, /obj/structure/cable, -/obj/structure/chair{ +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 }, /turf/open/floor/iron/dark, /area/station/security/holding_cell) "eYX" = ( +/obj/machinery/camera/directional/north{ + c_tag = "Security - Visitation, Prisoner Side"; + name = "security camera" + }, +/obj/machinery/firealarm/directional/north, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 }, -/obj/machinery/camera/autoname/directional/north, /turf/open/floor/iron/dark, /area/station/security/prison/visit) "eZf" = ( @@ -14996,6 +15384,13 @@ /obj/machinery/iv_drip, /turf/open/floor/iron/white, /area/station/medical/surgery) +"fak" = ( +/obj/structure/extinguisher_cabinet/directional/south, +/obj/structure/table, +/turf/open/floor/iron/dark/side/airless{ + dir = 10 + }, +/area/station/maintenance/space_hut) "faw" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/light/small/directional/west, @@ -15033,13 +15428,12 @@ /turf/open/floor/iron/dark, /area/station/hallway/secondary/exit/departure_lounge) "fbk" = ( -/obj/effect/turf_decal/siding/wideplating_new/dark{ - dir = 8 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden/layer4, /obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, -/turf/open/floor/iron/dark/telecomms, -/area/station/tcommsat/server) +/turf/open/floor/iron/dark/smooth_large, +/area/station/tcommsat/computer) "fbw" = ( /obj/structure/table, /obj/item/toy/figure/qm, @@ -15096,6 +15490,12 @@ dir = 6 }, /area/station/engineering/storage_shared) +"fbW" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron, +/area/station/maintenance/department/science) "fce" = ( /obj/effect/turf_decal/tile/neutral/anticorner{ dir = 8 @@ -15116,10 +15516,8 @@ /turf/open/floor/iron/dark, /area/station/security/prison/garden) "fck" = ( -/obj/structure/table, -/obj/item/analysis_bin, -/turf/open/floor/iron/white, -/area/station/science/auxlab) +/turf/open/floor/engine, +/area/station/science/xenobiology) "fcm" = ( /obj/structure/bed{ dir = 4 @@ -15154,16 +15552,12 @@ /turf/open/floor/catwalk_floor/iron_dark, /area/station/maintenance/starboard/aft) "fdb" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 6 - }, -/obj/effect/turf_decal/trimline/yellow/corner{ +/obj/machinery/light/small/directional/south, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 }, -/turf/open/floor/iron/dark/side{ - dir = 6 - }, -/area/station/hallway/primary/aft) +/turf/open/floor/iron/dark/side, +/area/station/commons/locker) "fde" = ( /obj/structure/chair{ dir = 8 @@ -15249,11 +15643,14 @@ /obj/effect/turf_decal/trimline/neutral/line{ dir = 1 }, -/obj/machinery/camera/autoname/directional/south, +/obj/machinery/camera/directional/south{ + c_tag = "Hallway, Arrivals - South"; + name = "hallway camera" + }, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) "feD" = ( -/obj/structure/closet/wardrobe/green, +/obj/structure/closet/wardrobe/grey, /obj/effect/landmark/start/hangover/closet, /turf/open/floor/iron/dark/side{ dir = 1 @@ -15264,20 +15661,6 @@ /obj/effect/spawner/random/trash/mess, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"feX" = ( -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) -"feY" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "ffw" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -15322,34 +15705,32 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"fge" = ( -/obj/machinery/light/directional/east, -/obj/machinery/status_display/ai/directional/east, -/turf/open/floor/iron/white, -/area/station/medical/chemistry) -"fgg" = ( -/obj/effect/turf_decal/stripes/line, +"ffR" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/obj/machinery/door/airlock/security/glass{ - name = "Isolation Cell"; - id_tag = "iso_cell_hall_bolt" - }, -/obj/effect/mapping_helpers/airlock/access/all/security/brig, /obj/machinery/duct, -/obj/effect/mapping_helpers/airlock/cyclelink_helper, -/turf/open/floor/iron/dark/textured, -/area/station/security/prison/safe) +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"fgb" = ( +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/security/warden) +"fge" = ( +/obj/machinery/light/directional/east, +/obj/machinery/status_display/ai/directional/east, +/turf/open/floor/iron/white, +/area/station/medical/chemistry) "fgj" = ( /turf/closed/wall/r_wall, /area/station/science/ordnance/freezerchamber) "fgv" = ( /obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ dir = 10 }, /turf/open/space/basic, @@ -15390,7 +15771,7 @@ /turf/open/floor/iron/dark, /area/station/service/janitor) "fgE" = ( -/obj/machinery/newscaster/directional/west, +/obj/item/radio/intercom/directional/west, /turf/open/floor/wood/tile, /area/station/service/chapel/office) "fgR" = ( @@ -15417,6 +15798,9 @@ }, /obj/machinery/light/small/directional/east, /obj/machinery/status_display/evac/directional/east, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) "fhe" = ( @@ -15424,14 +15808,25 @@ /obj/effect/spawner/random/trash/garbage, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"fho" = ( +/obj/structure/table, +/obj/item/pen, +/obj/item/pen/red{ + pixel_x = 6; + pixel_y = 6 + }, +/turf/open/floor/iron/dark/side/airless{ + dir = 8 + }, +/area/station/maintenance/space_hut) "fhs" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/trimline/red/filled/line{ dir = 4 }, /obj/effect/turf_decal/trimline/red/filled/corner{ dir = 8 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) "fhw" = ( @@ -15478,6 +15873,10 @@ /obj/structure/cable, /turf/open/floor/catwalk_floor, /area/station/maintenance/department/engine/atmos) +"fil" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "fiq" = ( /obj/effect/turf_decal/tile/blue/fourcorners, /obj/structure/closet/secure_closet/medical1, @@ -15512,10 +15911,12 @@ /turf/open/floor/iron, /area/station/engineering/main) "fiB" = ( -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/structure/filingcabinet, +/obj/effect/turf_decal/tile/dark_blue/fourcorners, +/obj/machinery/light/small/directional/west, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, /turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/area/station/ai_monitored/turret_protected/ai_upload) "fiC" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /obj/machinery/meter, @@ -15558,6 +15959,20 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos) +"fjY" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/tcommsat/computer) +"fko" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood/tile, +/area/station/command/heads_quarters/nt_rep) "fkD" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -15684,7 +16099,7 @@ /area/station/science/robotics/lab) "flV" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/engineering/material_cheap, +/obj/effect/spawner/random/trash/cigbutt, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) "fmb" = ( @@ -15719,6 +16134,18 @@ /obj/structure/cable, /turf/open/floor/engine, /area/station/ai_monitored/turret_protected/aisat_interior) +"fmQ" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/obj/machinery/firealarm/directional/west{ + pixel_y = 5 + }, +/obj/machinery/light_switch/directional/west{ + pixel_y = -5 + }, +/turf/open/floor/iron/white, +/area/station/science/auxlab) "fmZ" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 5 @@ -15734,11 +16161,13 @@ /turf/open/floor/iron/dark, /area/station/security/checkpoint/supply) "fnt" = ( -/obj/structure/cable, +/obj/effect/turf_decal/box, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/landmark/event_spawn, -/turf/open/floor/iron, +/obj/structure/cable, +/obj/machinery/holopad, +/turf/open/floor/iron/large, /area/station/tcommsat/computer) "fnw" = ( /obj/effect/turf_decal/trimline/red/filled/warning{ @@ -15815,15 +16244,20 @@ /turf/open/floor/iron/dark, /area/station/hallway/primary/central) "foK" = ( -/obj/effect/turf_decal/tile/dark_blue/fourcorners, -/obj/structure/cable, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/ai_slipper{ - uses = 10 +/obj/structure/cable, +/obj/machinery/door/airlock/maintenance{ + name = "Detective Office Maintenance" }, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai_upload_foyer) +/obj/effect/mapping_helpers/airlock/access/any/security/detective, +/turf/open/floor/plating, +/area/station/security/detectives_office) "foP" = ( /obj/structure/chair/stool/directional/north, /obj/effect/landmark/start/assistant, @@ -15925,6 +16359,11 @@ }, /turf/open/floor/iron/white, /area/station/medical/office) +"fpZ" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron/white, +/area/station/science/explab) "fqe" = ( /turf/closed/wall/r_wall, /area/station/security/processing) @@ -15968,8 +16407,9 @@ /area/station/science/genetics) "fqV" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ - dir = 4 + dir = 10 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) "fqY" = ( @@ -15989,7 +16429,7 @@ /turf/open/floor/carpet, /area/station/maintenance/starboard/fore) "frv" = ( -/obj/effect/spawner/random/structure/table_or_rack, +/obj/structure/rack, /obj/effect/spawner/random/engineering/toolbox, /obj/effect/spawner/random/clothing/gloves, /turf/open/floor/plating, @@ -16015,15 +16455,43 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/cargo/miningoffice) +"frG" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/structure/table/reinforced, +/obj/machinery/computer/security/telescreen{ + name = "Test Chamber Monitor"; + network = list("xeno"); + pixel_y = 2; + dir = 8 + }, +/turf/open/floor/iron, +/area/station/science/xenobiology) "frS" = ( /obj/machinery/camera/autoname/directional/east, /obj/machinery/recharge_station, +/obj/effect/landmark/start/cyborg, /turf/open/floor/iron, /area/station/science/robotics/mechbay) "fsd" = ( /obj/structure/flora/rock/pile/jungle/style_random, /turf/open/floor/grass, /area/station/hallway/primary/central) +"fsi" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/holopad, +/turf/open/floor/iron/kitchen, +/area/station/command/heads_quarters/nt_rep) "fsm" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -16047,6 +16515,10 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, /area/station/service/abandoned_gambling_den) +"fsK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/visible, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "ftk" = ( /turf/open/floor/grass, /area/station/hallway/primary/central) @@ -16100,10 +16572,14 @@ /turf/open/floor/grass, /area/station/hallway/primary/central) "fuh" = ( -/obj/effect/turf_decal/tile/purple/fourcorners, -/obj/machinery/nanite_chamber, -/turf/open/floor/iron/white, -/area/station/science/research) +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron, +/area/station/maintenance/department/science) "fuM" = ( /obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/wood, @@ -16202,10 +16678,10 @@ /turf/open/floor/iron/dark, /area/station/engineering/atmos) "fwv" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/trimline/red/filled/corner{ dir = 8 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) @@ -16239,9 +16715,6 @@ }, /obj/effect/turf_decal/trimline/green/filled/line, /obj/structure/sign/poster/official/random/directional/south, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, /turf/open/floor/iron/dark, /area/station/hallway/primary/port) "fxG" = ( @@ -16297,7 +16770,7 @@ /area/station/security/brig) "fyt" = ( /obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ dir = 6 }, /turf/open/space/basic, @@ -16332,8 +16805,8 @@ /turf/open/floor/iron/dark, /area/station/hallway/primary/fore) "fza" = ( -/obj/effect/turf_decal/trimline/dark_red/filled/warning{ - dir = 4 +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, /obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/iron, @@ -16377,6 +16850,22 @@ }, /turf/open/floor/iron/white, /area/station/science/research) +"fzZ" = ( +/obj/structure/closet/emcloset/wall/directional/south, +/obj/structure/rack, +/obj/item/tank/internals/oxygen/yellow{ + pixel_x = 4; + pixel_y = -3 + }, +/obj/item/tank/internals/oxygen/yellow, +/obj/item/tank/internals/oxygen/yellow{ + pixel_x = -4; + pixel_y = 3 + }, +/turf/open/floor/iron/dark/side/airless{ + dir = 10 + }, +/area/station/maintenance/space_hut) "fAa" = ( /obj/machinery/firealarm/directional/north{ pixel_x = -5 @@ -16411,6 +16900,16 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/engineering/atmos/storage) +"fAF" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "fAL" = ( /obj/structure/cable/layer3, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -16425,9 +16924,12 @@ /turf/open/floor/stone, /area/station/smithing) "fBd" = ( -/obj/structure/chair/wood, -/turf/open/floor/carpet/red, -/area/station/commons/vacant_room/office) +/obj/structure/table, +/obj/item/radio/off, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/tcommsat/computer) "fBh" = ( /obj/machinery/light/small/directional/east, /obj/machinery/firealarm/directional/east, @@ -16484,9 +16986,7 @@ /turf/open/floor/iron, /area/station/commons/fitness) "fDb" = ( -/obj/effect/turf_decal/trimline/neutral/filled/end{ - dir = 8 - }, +/obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/stripes/end{ dir = 8 }, @@ -16502,7 +17002,6 @@ "fDg" = ( /obj/effect/turf_decal/tile/yellow/fourcorners, /obj/machinery/light/directional/west, -/obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/iron/dark, /area/station/command/bridge) "fDt" = ( @@ -16541,12 +17040,17 @@ /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) "fEm" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, /obj/machinery/light/small/directional/south, +/obj/machinery/camera/directional/south{ + c_tag = "Commons - Holodeck Control" + }, /obj/structure/extinguisher_cabinet/directional/south, -/turf/open/floor/iron/dark, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/dark/side{ + dir = 6 + }, /area/station/commons/fitness) "fEr" = ( /obj/effect/turf_decal/trimline/brown/filled/line, @@ -16659,10 +17163,6 @@ /obj/effect/landmark/start/prisoner, /turf/open/floor/wood/large, /area/station/security/prison/safe) -"fFr" = ( -/obj/machinery/duct, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "fFK" = ( /obj/machinery/light/small/directional/east, /obj/machinery/power/apc/auto_name/directional/east, @@ -16671,6 +17171,7 @@ /area/station/command/bridge) "fFP" = ( /obj/machinery/firealarm/directional/west, +/obj/machinery/light/directional/west, /turf/open/floor/iron/dark/side{ dir = 8 }, @@ -16681,12 +17182,12 @@ dir = 1 }, /obj/machinery/light/small/directional/south, +/obj/machinery/camera/autoname/directional/south, /obj/machinery/status_display/door_timer{ id = "Cell 2"; name = "Cell 2"; pixel_y = -32 }, -/obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron/dark, /area/station/security/brig) "fFT" = ( @@ -16700,7 +17201,6 @@ /turf/closed/wall, /area/station/solars/port/aft) "fGh" = ( -/obj/structure/sign/warning/test_chamber/directional/north, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/department/science) @@ -16764,7 +17264,7 @@ /turf/open/floor/grass, /area/station/hallway/primary/central) "fHc" = ( -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ dir = 10 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -16780,11 +17280,22 @@ dir = 8 }, /area/station/engineering/atmos/office) +"fHv" = ( +/obj/machinery/light/small/directional/north, +/obj/machinery/button/door/directional/west{ + id = "nt_rep_kitchen_shutters"; + name = "Kitchen Shutters Control"; + req_access = list("nt_rep") + }, +/obj/item/kirbyplants/random, +/turf/open/floor/iron/kitchen, +/area/station/command/heads_quarters/nt_rep) "fHz" = ( +/obj/machinery/status_display/evac/directional/east, /obj/structure/sign/warning/vacuum/directional/north, /obj/structure/table, -/obj/item/crowbar/red, /obj/item/wrench, +/obj/item/crowbar/red, /obj/item/clothing/mask/gas, /turf/open/floor/iron/white, /area/station/science/ordnance/testlab) @@ -16825,20 +17336,19 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /obj/machinery/door/firedoor, -/obj/machinery/door/airlock/grunge{ - name = "Vacant Office" +/obj/machinery/door/airlock/corporate{ + id_tag = "nt_rep_office_door"; + name = "Nanotrasen Representative's Office" }, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, +/obj/effect/landmark/navigate_destination, /turf/open/floor/iron/dark/textured, -/area/station/commons/vacant_room/office) +/area/station/command/heads_quarters/nt_rep) "fHX" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/hallway/primary/fore) -"fHY" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) "fIl" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -16858,9 +17368,8 @@ /turf/open/floor/stone, /area/station/smithing) "fIw" = ( -/obj/machinery/atmospherics/components/tank/oxygen{ - dir = 1 - }, +/obj/machinery/light/directional/east, +/obj/machinery/atmospherics/components/tank/oxygen, /turf/open/floor/iron, /area/station/science/ordnance) "fIz" = ( @@ -16902,9 +17411,6 @@ dir = 1 }, /obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/security{ name = "Detective's Office" @@ -16929,11 +17435,8 @@ /turf/open/floor/iron/dark, /area/station/security/office) "fJl" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/catwalk_floor/iron, -/area/station/maintenance/department/science) +/turf/closed/wall/r_wall, +/area/station/science/xenobiology) "fJn" = ( /turf/open/floor/iron/dark/side{ dir = 4 @@ -16970,14 +17473,22 @@ /turf/open/floor/wood, /area/station/service/chapel/funeral) "fKd" = ( -/obj/machinery/firealarm/directional/south, -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/trash/garbage, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/firealarm/directional/north, +/obj/machinery/door/firedoor, /turf/open/floor/plating, -/area/station/maintenance/starboard/aft) -"fKj" = ( -/turf/closed/wall, -/area/station/maintenance/department/science/xenobiology) +/area/station/maintenance/port/fore) "fKo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -16997,14 +17508,15 @@ /turf/open/misc/asteroid/airless, /area/station/asteroid) "fKX" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/item/radio/intercom/directional/east, -/obj/structure/table/wood, -/obj/item/paper_bin, -/obj/item/folder/red, -/obj/item/pen, -/turf/open/floor/iron/dark, -/area/station/security/detectives_office) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 4 + }, +/obj/effect/mapping_helpers/mail_sorting/service/law_office, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "fLf" = ( /obj/machinery/firealarm/directional/north, /turf/open/floor/iron/dark/side{ @@ -17035,7 +17547,7 @@ "fLJ" = ( /obj/machinery/shower/directional/west, /obj/structure/drain, -/turf/open/floor/iron/textured_large, +/turf/open/floor/iron/showroomfloor, /area/station/engineering/main) "fLO" = ( /obj/effect/turf_decal/trimline/blue/filled/warning{ @@ -17125,6 +17637,18 @@ /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/iron/dark, /area/station/construction/mining/aux_base) +"fNA" = ( +/obj/machinery/corral_corner{ + mapping_id = "6" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/light/neon_lining{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "fNF" = ( /obj/effect/spawner/random/engineering/tank, /turf/open/floor/plating, @@ -17147,12 +17671,9 @@ /turf/open/floor/iron/dark, /area/station/engineering/engine_smes) "fOn" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ - dir = 10 - }, -/turf/open/floor/iron, -/area/station/maintenance/disposal/incinerator) +/obj/machinery/airalarm/directional/east, +/turf/closed/wall, +/area/station/maintenance/starboard/aft) "fOA" = ( /turf/closed/wall/r_wall, /area/space/nearstation) @@ -17211,23 +17732,24 @@ /turf/open/floor/iron/dark, /area/station/hallway/primary/port) "fPL" = ( -/obj/machinery/light_switch/directional/east{ - pixel_y = 5 - }, -/obj/machinery/light/small/directional/east, /obj/effect/turf_decal/trimline/red/filled/line{ dir = 6 }, -/obj/structure/table, -/obj/machinery/recharger{ - pixel_x = 5 +/obj/machinery/light/small/directional/east, +/obj/machinery/firealarm/directional/south{ + pixel_x = -5 }, -/obj/machinery/firealarm/directional/east{ - pixel_y = -5 +/obj/machinery/light_switch/directional/south{ + pixel_x = 5 }, +/obj/structure/reagent_dispensers/wall/peppertank/directional/east, +/obj/structure/table, /obj/machinery/recharger{ pixel_x = -5 }, +/obj/machinery/recharger{ + pixel_x = 5 + }, /turf/open/floor/iron/dark, /area/station/security/lockers) "fPN" = ( @@ -17248,6 +17770,15 @@ dir = 4 }, /area/station/service/hydroponics) +"fPT" = ( +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/station/commons/fitness) "fQq" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 @@ -17287,9 +17818,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/patients_rooms/room_b) -"fQI" = ( -/turf/open/floor/iron/checker, -/area/station/maintenance/port/fore) "fQJ" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/engineering/tank, @@ -17303,6 +17831,11 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/hallway/secondary/exit/departure_lounge) +"fQT" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron, +/area/station/maintenance/department/science) "fQY" = ( /obj/effect/turf_decal/trimline/red/filled/warning{ dir = 4 @@ -17330,7 +17863,6 @@ "fRq" = ( /obj/effect/turf_decal/box, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/holopad, /turf/open/floor/iron/large, /area/station/commons/fitness/recreation) @@ -17346,18 +17878,27 @@ /turf/open/floor/iron, /area/station/engineering/storage) "fRx" = ( -/obj/effect/spawner/random/trash/mess, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/firealarm/directional/north, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor, +/area/station/maintenance/department/science) +"fRE" = ( +/obj/machinery/newscaster/directional/south, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "fRK" = ( /obj/structure/flora/bush/lavendergrass/style_random, /turf/open/floor/grass, /area/station/medical/virology) "fRT" = ( -/obj/machinery/airalarm/directional/south, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/maintenance/department/science) +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "fRU" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -17426,22 +17967,6 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) -"fSG" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden{ - dir = 4 - }, -/obj/structure/cable, -/obj/structure/liquid_barrier, -/obj/machinery/door/airlock/maintenance, -/obj/effect/mapping_helpers/airlock/access/any/science/xenobio, -/turf/open/floor/plating, -/area/station/science/xenobiology) "fSW" = ( /obj/effect/turf_decal/siding/wood, /obj/machinery/modular_computer/preset/id, @@ -17483,6 +18008,22 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/medical/medbay/lobby) +"fTt" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Test Chamber" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/turf/open/floor/iron/white/textured, +/area/station/science/explab) "fTu" = ( /obj/effect/spawner/random/structure/table_or_rack, /obj/effect/spawner/random/maintenance/two, @@ -17519,10 +18060,25 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/port) +"fUK" = ( +/obj/structure/table/reinforced/rglass, +/obj/item/book/manual/wiki/plumbing{ + pixel_x = -7 + }, +/obj/item/book/manual/wiki/cytology{ + pixel_x = 7 + }, +/obj/item/storage/box/petridish, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "fUX" = ( -/obj/machinery/light/directional/north, -/obj/machinery/newscaster/directional/north, -/obj/item/kirbyplants/random, +/obj/machinery/firealarm/directional/north{ + pixel_x = 5 + }, +/obj/machinery/light_switch/directional/north{ + pixel_x = -5 + }, +/obj/machinery/photocopier, /turf/open/floor/wood, /area/station/security/detectives_office) "fVh" = ( @@ -17544,6 +18100,14 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron/dark/side, /area/station/cargo/sorting) +"fVm" = ( +/obj/structure/table/wood/fancy/green, +/obj/item/fish_feed, +/obj/item/fish_feed{ + pixel_y = 9 + }, +/turf/open/floor/wood/tile, +/area/station/command/heads_quarters/nt_rep) "fVA" = ( /obj/effect/turf_decal/trimline/yellow/filled/warning, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -17567,6 +18131,13 @@ }, /turf/open/floor/iron, /area/station/cargo/office) +"fVP" = ( +/obj/structure/chair{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron/airless, +/area/station/maintenance/space_hut) "fVR" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -17740,6 +18311,10 @@ /obj/structure/extinguisher_cabinet/directional/north, /turf/open/floor/iron/dark, /area/station/security/checkpoint/science) +"fXY" = ( +/obj/machinery/light/directional/south, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "fXZ" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 8 @@ -17835,19 +18410,21 @@ /obj/effect/turf_decal/tile/green/half/contrasted{ dir = 4 }, +/obj/machinery/camera/directional/west{ + c_tag = "Service - Hydroponics, 1"; + name = "service camera" + }, /obj/machinery/chem_master/condimaster, /turf/open/floor/iron/dark/side{ dir = 8 }, /area/station/service/hydroponics) "fZT" = ( -/obj/machinery/light/directional/east, -/obj/structure/sign/poster/random/directional/east, -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/effect/spawner/random/maintenance, -/turf/open/floor/iron, -/area/station/maintenance/department/science) +/obj/machinery/light/neon_lining{ + dir = 4 + }, +/turf/open/floor/stone, +/area/station/science/xenobiology) "fZX" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 4 @@ -17861,12 +18438,6 @@ /obj/machinery/duct, /turf/open/floor/wood, /area/station/service/bar/backroom) -"gag" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/commons/fitness/recreation) "gai" = ( /obj/effect/turf_decal/trimline/blue/filled/line, /obj/effect/turf_decal/trimline/blue/line{ @@ -17944,12 +18515,16 @@ /obj/effect/spawner/random/trash/garbage, /turf/open/floor/plating, /area/station/maintenance/department/cargo) -"gbS" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/structure/chair/office, -/obj/effect/landmark/start/detective, -/turf/open/floor/iron/dark, -/area/station/security/detectives_office) +"gcp" = ( +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 1 + }, +/obj/machinery/status_display/evac/directional/north, +/obj/machinery/computer/message_monitor, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, +/area/station/tcommsat/computer) "gcq" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 1 @@ -18003,10 +18578,8 @@ /turf/open/floor/iron/dark, /area/station/hallway/primary/port) "gdp" = ( -/obj/machinery/duct, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/department/science) +/turf/closed/wall, +/area/station/science/auxlab) "gdw" = ( /obj/machinery/portable_atmospherics/canister, /turf/open/floor/iron/dark, @@ -18017,6 +18590,18 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/cargo/lobby) +"geh" = ( +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/heat_exchanging/manifold{ + dir = 8 + }, +/turf/open/floor/iron/dark/telecomms, +/area/station/tcommsat/server) "gey" = ( /obj/machinery/duct, /turf/open/floor/wood/tile, @@ -18052,18 +18637,18 @@ /turf/open/floor/iron/dark, /area/station/engineering/atmos/pumproom) "geT" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/red/line{ - dir = 8 - }, +/obj/effect/turf_decal/tile/red/fourcorners, /obj/machinery/light/small/directional/east, -/obj/machinery/camera/autoname/directional/east, +/obj/machinery/camera/directional/east{ + c_tag = "Hallway, Arrivals - Central"; + name = "hallway camera" + }, /obj/machinery/power/apc/auto_name/directional/east, /obj/structure/cable, /obj/effect/mapping_helpers/apc/cell_5k, /obj/effect/mapping_helpers/apc/full_charge, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) "gfA" = ( @@ -18077,9 +18662,9 @@ /turf/open/floor/iron/kitchen, /area/station/security/prison/mess) "gfI" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, -/obj/effect/turf_decal/stripes/corner, -/turf/open/floor/iron, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, +/obj/effect/spawner/structure/window/reinforced/plasma, +/turf/open/floor/plating, /area/station/maintenance/disposal/incinerator) "gfK" = ( /obj/effect/turf_decal/stripes/line{ @@ -18090,6 +18675,14 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/science/robotics/mechbay) +"gfR" = ( +/obj/machinery/light/small/directional/north, +/obj/machinery/atmospherics/components/binary/pump{ + name = "Director"; + dir = 4 + }, +/turf/open/floor/plating, +/area/station/science/xenobiology) "gfX" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 9 @@ -18107,20 +18700,18 @@ /turf/open/floor/iron/dark/corner, /area/station/cargo/storage) "ggq" = ( +/obj/structure/cable, /turf/open/floor/iron/dark/side{ dir = 4 }, /area/station/service/theater) "ggy" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/line{ - dir = 8 +/obj/effect/turf_decal/trimline/dark_blue/filled/warning{ + dir = 5 }, -/obj/machinery/light/directional/east, +/obj/machinery/status_display/ai/directional/east, /turf/open/floor/iron/dark, -/area/station/hallway/primary/central) +/area/station/ai_monitored/turret_protected/ai_upload) "ggz" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 1 @@ -18137,12 +18728,16 @@ /turf/open/floor/carpet/red, /area/station/commons/dorms/room6) "ggV" = ( -/obj/effect/spawner/random/structure/chair_flipped{ +/obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/effect/spawner/random/trash/cigbutt, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/dark/textured, +/area/station/security/prison) "ghg" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -18177,6 +18772,17 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/security/warden) +"ghz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/commons/fitness) "ghA" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/barricade/wooden, @@ -18192,6 +18798,12 @@ /obj/effect/landmark/event_spawn, /turf/open/floor/grass, /area/station/hallway/primary/central) +"ghS" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 6 + }, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) "ghV" = ( /turf/open/floor/iron/dark/side{ dir = 5 @@ -18252,6 +18864,8 @@ c_tag = "Maintenance - External Access, Northwest"; name = "maintenance camera" }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/cigbutt, /obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/plating, /area/station/maintenance/port/fore) @@ -18299,6 +18913,9 @@ "gkw" = ( /obj/machinery/light/directional/west, /obj/machinery/status_display/evac/directional/west, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, /turf/open/floor/iron/dark/side{ dir = 8 }, @@ -18307,16 +18924,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/command/heads_quarters/ce) -"gkH" = ( -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/dark_blue/warning{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/command/storage/eva) "gkK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -18359,10 +18966,10 @@ /obj/effect/turf_decal/trimline/red/corner{ dir = 8 }, +/obj/structure/cable, /obj/structure/table, /obj/item/stack/package_wrap, /obj/item/pen, -/obj/structure/cable, /turf/open/floor/iron/dark, /area/station/security/office) "gln" = ( @@ -18395,11 +19002,6 @@ /obj/effect/mapping_helpers/airlock/access/all/security/armory, /turf/open/floor/iron/dark/textured, /area/station/security/warden) -"gmo" = ( -/obj/machinery/light/floor/has_bulb, -/mob/living/basic/slime, -/turf/open/floor/engine, -/area/station/science/xenobiology) "gmy" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 6 @@ -18421,12 +19023,11 @@ /turf/open/floor/wood/large, /area/station/commons/dorms/room1) "gmN" = ( -/obj/machinery/light/directional/west, -/obj/machinery/computer/security/telescreen/entertainment/directional/west, -/turf/open/floor/iron/dark/side{ - dir = 8 - }, -/area/station/commons/fitness/recreation) +/obj/machinery/firealarm/directional/east, +/obj/structure/sign/poster/official/work_for_a_future/directional/south, +/obj/item/kirbyplants/random, +/turf/open/floor/iron/dark, +/area/station/security/prison) "gmT" = ( /obj/effect/turf_decal/trimline/yellow/filled/warning, /turf/open/floor/iron/dark/side, @@ -18437,10 +19038,21 @@ }, /obj/structure/table, /obj/item/paper_bin, -/obj/effect/spawner/random/bureaucracy/folder, -/obj/effect/spawner/random/bureaucracy/pen, +/obj/item/folder, +/obj/item/pen, /turf/open/floor/iron/white, /area/station/science/lab) +"gnd" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 5 + }, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) "gnj" = ( /obj/effect/turf_decal/trimline/yellow/filled/corner{ dir = 4 @@ -18547,7 +19159,7 @@ /turf/open/floor/catwalk_floor, /area/station/maintenance/starboard/fore) "goP" = ( -/obj/effect/turf_decal/stripes/corner{ +/obj/effect/turf_decal/siding/wideplating_new/dark/corner{ dir = 8 }, /turf/open/floor/iron/dark, @@ -18558,7 +19170,6 @@ network = list("ss13","prison"); name = "security camera" }, -/obj/machinery/airalarm/directional/east, /obj/structure/chair/plastic{ dir = 1 }, @@ -18566,22 +19177,6 @@ dir = 4 }, /area/station/security/prison/work) -"gpi" = ( -/obj/machinery/light/directional/north, -/obj/machinery/button/door/directional/north{ - id = "xenobiomain"; - name = "Containment Blast Doors"; - req_access = list("xenobiology") - }, -/obj/structure/table/reinforced/plasmarglass, -/obj/item/vacuum_pack, -/obj/item/vacuum_pack, -/obj/item/vacuum_pack, -/obj/item/disk/vacuum_upgrade/biomass, -/obj/item/disk/vacuum_upgrade/biomass, -/obj/item/disk/vacuum_upgrade/biomass, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "gpq" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/frame/machine, @@ -18657,7 +19252,6 @@ /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 8 }, -/obj/machinery/light/directional/west, /obj/machinery/airalarm/directional/west, /obj/structure/table/reinforced/rglass, /obj/machinery/computer/records/medical/laptop, @@ -18671,6 +19265,15 @@ }, /turf/open/floor/wood, /area/station/command/heads_quarters/hop) +"gqE" = ( +/obj/machinery/light/directional/north, +/obj/machinery/asteroid_magnet{ + center_x = 148; + center_y = 186; + area_size = 7 + }, +/turf/open/floor/iron/white, +/area/station/science/explab) "gqF" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 1 @@ -18689,9 +19292,7 @@ /turf/open/floor/iron/dark, /area/station/security/warden) "gqK" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, +/obj/machinery/duct, /turf/open/floor/iron/white, /area/station/science/genetics) "gqL" = ( @@ -18748,18 +19349,13 @@ /turf/open/floor/iron/dark, /area/station/hallway/secondary/exit/departure_lounge) "grI" = ( -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 6 - }, -/obj/machinery/firealarm/directional/south{ - pixel_x = -5 - }, -/obj/machinery/light_switch/directional/south{ - pixel_x = 5 +/obj/effect/turf_decal/stripes/end{ + dir = 8 }, -/obj/machinery/light/small/directional/east, -/obj/structure/closet/wardrobe/mixed, -/turf/open/floor/iron/white, +/obj/structure/mirror/directional/south, +/obj/machinery/shower/directional/west, +/obj/structure/drain, +/turf/open/floor/iron/showroomfloor, /area/station/science/genetics/cloning) "grL" = ( /obj/effect/turf_decal/trimline/red/filled/line{ @@ -18798,6 +19394,10 @@ }, /turf/open/floor/iron/dark, /area/station/maintenance/disposal) +"gso" = ( +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "gsz" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -18812,7 +19412,7 @@ /area/station/maintenance/department/science) "gsA" = ( /obj/machinery/atmospherics/pipe/bridge_pipe/green/visible, -/obj/machinery/atmospherics/pipe/bridge_pipe/orange/visible{ +/obj/machinery/atmospherics/pipe/bridge_pipe/brown/visible{ dir = 4 }, /turf/open/floor/iron/dark, @@ -18828,6 +19428,17 @@ /obj/structure/cable, /turf/open/floor/iron/dark/smooth_large, /area/station/security/lockers) +"gtm" = ( +/obj/structure/cable, +/obj/structure/table/wood/fancy/green, +/obj/item/modular_computer/laptop/preset/civilian{ + pixel_y = 7 + }, +/obj/item/stack/spacecash/c1000{ + pixel_y = -10 + }, +/turf/open/floor/wood/large, +/area/station/command/heads_quarters/nt_rep) "gtp" = ( /obj/effect/turf_decal/trimline/red/filled/warning, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -18842,17 +19453,20 @@ /turf/open/floor/iron, /area/station/maintenance/starboard/aft) "gtx" = ( -/obj/effect/turf_decal/trimline/dark_blue/filled/line{ - dir = 4 +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, -/obj/effect/turf_decal/trimline/dark_red/line{ - dir = 8 +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/door/airlock/maintenance{ + name = "Law Office Maintenance" }, -/obj/machinery/light/directional/east, -/obj/machinery/status_display/ai/directional/east, -/obj/structure/window/reinforced/spawner/directional/west, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai_upload) +/obj/effect/mapping_helpers/airlock/access/any/security/detective, +/turf/open/floor/plating, +/area/station/service/lawoffice) "gtA" = ( /obj/effect/turf_decal/tile/green, /obj/machinery/button/door/directional/north{ @@ -18881,9 +19495,18 @@ /turf/open/floor/wood, /area/station/service/library/lounge) "gtN" = ( -/obj/machinery/power/apc/auto_name/directional/west, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/plating, /area/station/maintenance/port/fore) "gtO" = ( @@ -18903,10 +19526,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/cargo) -"gtV" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/turf/open/floor/engine, -/area/station/science/explab) "gtY" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -18943,16 +19562,22 @@ /obj/structure/window/reinforced/spawner/directional/south, /turf/open/floor/grass, /area/station/service/hydroponics) +"guJ" = ( +/obj/machinery/chem_master, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"guV" = ( +/obj/machinery/status_display/ai/directional/south, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/nt_rep) "guX" = ( /obj/structure/table/wood, -/obj/item/book/manual/wiki/security_space_law, -/obj/item/book/manual/wiki/security_space_law{ - pixel_y = 5 - }, -/obj/machinery/button/door/directional/east{ - id = "law_office_shutters"; - name = "Law Office Shutters Control"; - req_access = list("lawyer") +/obj/item/paper_bin, +/obj/item/folder, +/obj/item/pen, +/obj/item/toy/figure/lawyer{ + pixel_x = 11; + pixel_y = 7 }, /turf/open/floor/wood, /area/station/service/lawoffice) @@ -18966,13 +19591,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/science) -"gvc" = ( -/obj/machinery/light/small/directional/south, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) "gvm" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -18994,8 +19612,8 @@ /turf/open/floor/iron/white, /area/station/medical/virology) "gvD" = ( -/obj/machinery/blackbox_recorder, /obj/structure/cable, +/obj/machinery/blackbox_recorder, /turf/open/floor/circuit/green/telecomms, /area/station/tcommsat/server) "gvF" = ( @@ -19024,12 +19642,23 @@ /turf/open/floor/iron/dark, /area/station/hallway/secondary/exit/departure_lounge) "gvR" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /obj/structure/window/reinforced/spawner/directional/south, /obj/structure/table/reinforced, -/obj/machinery/chem_dispenser/drinks{ - dir = 1 +/obj/machinery/reagentgrinder{ + pixel_y = 9 }, -/turf/open/floor/iron/kitchen, +/obj/item/reagent_containers/cup/glass/shaker{ + pixel_x = -9; + pixel_y = 3 + }, +/obj/item/reagent_containers/dropper{ + pixel_y = -4 + }, +/turf/open/floor/iron/dark/textured, /area/station/security/prison/mess) "gvW" = ( /obj/effect/turf_decal/trimline/yellow/filled/line, @@ -19073,7 +19702,6 @@ /area/station/science/research) "gwG" = ( /obj/effect/turf_decal/tile/green/half/contrasted, -/obj/machinery/camera/autoname/directional/north, /obj/structure/sink/directional/south, /turf/open/floor/iron/dark/side{ dir = 1 @@ -19229,29 +19857,6 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, /turf/open/floor/iron/dark/textured, /area/station/engineering/atmos) -"gyg" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/poddoor/preopen{ - id = "execution_fireblast" - }, -/obj/machinery/door/firedoor/heavy, -/obj/machinery/door/airlock/security/glass{ - name = "Justice Chamber Exterior" - }, -/obj/effect/mapping_helpers/airlock/access/all/security/brig, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/turf/open/floor/engine, -/area/station/security/execution) "gyl" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 4 @@ -19344,22 +19949,10 @@ }, /turf/open/floor/iron/dark, /area/station/security/courtroom) -"gzz" = ( -/obj/effect/turf_decal/tile/dark_blue/fourcorners, -/obj/structure/table/glass, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/item/ai_module/reset, -/obj/item/ai_module/reset/purge{ - pixel_y = 4; - pixel_x = -5 - }, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai_upload) "gzC" = ( /obj/machinery/camera/autoname/directional/north, /obj/structure/sign/poster/official/no_erp/directional/north, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/dark/side{ dir = 1 }, @@ -19384,10 +19977,6 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/iron, /area/station/cargo/storage) -"gzR" = ( -/obj/item/radio/intercom/directional/south, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "gzX" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -19403,27 +19992,22 @@ /obj/effect/spawner/random/trash/mess, /turf/open/floor/plating, /area/station/maintenance/port) -"gAj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "gAk" = ( /obj/structure/particle_accelerator/fuel_chamber, /turf/open/floor/plating/airless, /area/space/nearstation) "gAu" = ( -/obj/machinery/power/turbine/inlet_compressor{ - dir = 8 - }, +/obj/machinery/igniter/incinerator_atmos, /turf/open/floor/engine, /area/station/maintenance/disposal/incinerator) "gAx" = ( -/obj/machinery/airalarm/directional/east, -/obj/machinery/suit_storage_unit/standard_unit, -/turf/open/floor/iron/white/textured, -/area/station/science/auxlab) +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/corner, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/explab) "gAC" = ( /obj/effect/turf_decal/trimline/neutral/filled/warning{ dir = 1 @@ -19447,8 +20031,9 @@ /turf/open/floor/carpet, /area/station/hallway/secondary/entry) "gAM" = ( -/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/visible, -/turf/closed/wall/r_wall, +/obj/effect/spawner/structure/window/reinforced/tinted, +/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden, +/turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) "gAX" = ( /obj/effect/turf_decal/siding/wood{ @@ -19457,6 +20042,11 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/wood, /area/station/commons/locker) +"gBa" = ( +/obj/structure/sign/warning/electric_shock/directional/north, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "gBc" = ( /obj/machinery/door/airlock/grunge{ id_tag = "toilet_2"; @@ -19522,6 +20112,11 @@ /obj/effect/mapping_helpers/airlock/access/all/science/ordnance, /turf/open/floor/iron/white/textured, /area/station/science/ordnance/testlab) +"gCo" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/science/explab) "gCs" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -19575,12 +20170,15 @@ /obj/effect/landmark/start/security_assistant, /turf/open/floor/iron/dark, /area/station/security/execution/transfer) +"gDn" = ( +/obj/effect/landmark/event_spawn, +/turf/open/floor/engine, +/area/station/science/xenobiology) "gDq" = ( /obj/machinery/portable_atmospherics/canister/plasma, /turf/open/floor/plating, /area/station/engineering/main) "gDV" = ( -/obj/machinery/newscaster/directional/west, /obj/machinery/vending/wardrobe/jani_wardrobe, /turf/open/floor/iron/dark, /area/station/service/janitor) @@ -19601,13 +20199,6 @@ dir = 8 }, /area/station/cargo/storage) -"gEs" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 9 - }, -/obj/machinery/duct, -/turf/open/floor/iron/white, -/area/station/medical/storage) "gEt" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -19741,14 +20332,11 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "gGu" = ( +/obj/structure/extinguisher_cabinet/directional/north, +/obj/machinery/status_display/evac/directional/west, /obj/structure/disposalpipe/trunk, /obj/machinery/disposal/bin, -/obj/machinery/light_switch/directional/north{ - pixel_x = -5 - }, -/obj/machinery/firealarm/directional/north{ - pixel_x = 5 - }, +/obj/effect/decal/cleanable/cobweb, /turf/open/floor/wood, /area/station/service/lawoffice) "gGx" = ( @@ -19849,6 +20437,9 @@ /area/station/service/chapel) "gHs" = ( /obj/structure/cable, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 9 + }, /turf/open/floor/iron/freezer, /area/station/service/kitchen/coldroom) "gHu" = ( @@ -19926,12 +20517,15 @@ "gIg" = ( /obj/structure/table, /obj/machinery/recharger, -/obj/item/paper/fluff/ids_for_dummies, +/obj/item/paper/fluff/ids_for_dummies{ + pixel_x = 6; + pixel_y = 15 + }, /obj/item/toy/figure/ian{ pixel_x = -9 }, /obj/item/toy/figure/hop{ - pixel_y = 13; + pixel_y = 12; pixel_x = -9 }, /turf/open/floor/carpet/royalblue, @@ -19999,16 +20593,14 @@ /turf/open/floor/iron, /area/station/engineering/engine_smes) "gIY" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 10 - }, -/obj/effect/turf_decal/trimline/yellow/corner{ - dir = 4 - }, -/turf/open/floor/iron/dark/side{ - dir = 10 +/obj/effect/turf_decal/trimline/neutral/line, +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 1 }, -/area/station/hallway/primary/aft) +/obj/structure/sign/departments/maint/directional/north, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/port) "gJb" = ( /obj/machinery/airalarm/directional/east, /obj/structure/chair/pew/right{ @@ -20036,6 +20628,7 @@ /turf/closed/wall/r_wall, /area/station/maintenance/starboard/aft) "gJI" = ( +/obj/machinery/light/small/built/directional/west, /obj/structure/reagent_dispensers/plumbed{ dir = 4 }, @@ -20055,16 +20648,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/security/prison/mess) -"gJO" = ( -/obj/effect/turf_decal/trimline/blue/filled/corner{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/duct, -/turf/open/floor/iron/white, -/area/station/medical/storage) "gJU" = ( /obj/effect/turf_decal/bot_red, /obj/machinery/status_display/evac/directional/west, @@ -20094,14 +20677,34 @@ /area/station/science/genetics) "gKj" = ( /obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, -/turf/open/floor/iron, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/airlock_controller/incinerator_atmos{ + pixel_x = 24; + pixel_y = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/pink/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, +/obj/machinery/door/airlock/public/glass/incinerator/atmos_interior, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/obj/effect/mapping_helpers/airlock/locked, +/turf/open/floor/engine, /area/station/maintenance/disposal/incinerator) -"gKk" = ( -/obj/structure/sign/warning/cold_temp/directional/west, -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +"gKo" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/obj/machinery/light/small/directional/west, +/obj/structure/extinguisher_cabinet/directional/west, +/obj/machinery/camera/directional/west{ + c_tag = "Science - Nanite Lab"; + name = "science camera"; + network = list("ss13","rd") + }, /turf/open/floor/iron/white, -/area/station/science/xenobiology) +/area/station/science/auxlab) "gKt" = ( /obj/structure/disposalpipe/junction/flip{ dir = 8 @@ -20112,10 +20715,7 @@ /turf/open/floor/iron/white, /area/station/medical/medbay/central) "gKA" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon{ dir = 1 }, /turf/open/floor/engine, @@ -20133,19 +20733,17 @@ /turf/open/floor/wood, /area/station/command/heads_quarters/captain) "gKN" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/obj/machinery/door/poddoor/shutters{ - id = "engi_break_room_shutters"; - name = "Engineering Shutters"; +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/yellow/line{ dir = 8 }, -/obj/machinery/door/poddoor/preopen{ - id = "engineering"; - name = "Engineering Blast Door" +/obj/machinery/light/directional/east, +/turf/open/floor/iron/dark/side{ + dir = 4 }, -/turf/open/floor/plating, -/area/station/engineering/break_room) +/area/station/hallway/primary/aft) "gKP" = ( /obj/effect/turf_decal/trimline/red/filled/warning, /obj/effect/turf_decal/trimline/red/warning{ @@ -20157,15 +20755,9 @@ /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) "gKT" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/trimline/purple/filled/warning{ - dir = 1 - }, -/obj/structure/cable, -/obj/structure/disposalpipe/segment, +/obj/machinery/light/directional/east, /turf/open/floor/iron/white, -/area/station/science/research) +/area/station/science/xenobiology) "gKU" = ( /obj/effect/turf_decal/bot, /obj/machinery/light/directional/west, @@ -20213,24 +20805,11 @@ }, /area/station/commons/storage/primary) "gLw" = ( -/obj/machinery/camera/directional/south{ - c_tag = "Commons - Holodeck Control" - }, /obj/item/radio/intercom/directional/south, -/turf/open/floor/iron/dark, -/area/station/commons/fitness) -"gLB" = ( -/obj/machinery/corral_corner{ - mapping_id = "4" - }, -/obj/machinery/light/neon_lining{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 +/turf/open/floor/iron/dark/side{ + dir = 10 }, -/turf/open/floor/engine, -/area/station/science/xenobiology) +/area/station/commons/fitness) "gLF" = ( /obj/machinery/power/apc/auto_name/directional/east, /obj/structure/cable, @@ -20249,15 +20828,17 @@ /turf/open/floor/iron/dark, /area/station/security/courtroom) "gLM" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/turf_decal/trimline/red/filled/warning, -/obj/effect/turf_decal/trimline/red/warning{ - dir = 1 +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 }, /turf/open/floor/iron/dark, -/area/station/hallway/primary/fore) +/area/station/hallway/secondary/entry) "gLN" = ( /obj/effect/turf_decal/box, /obj/machinery/holopad, @@ -20285,12 +20866,12 @@ /turf/open/floor/iron/dark, /area/station/medical/morgue) "gLW" = ( -/obj/structure/table/wood, -/obj/item/flashlight/lamp{ - pixel_y = 3 +/obj/effect/turf_decal/siding/wood{ + dir = 4 }, -/turf/open/floor/carpet/green, -/area/station/commons/vacant_room/office) +/obj/structure/cable, +/turf/open/floor/wood/tile, +/area/station/command/heads_quarters/nt_rep) "gLY" = ( /obj/machinery/smartfridge, /turf/closed/wall, @@ -20399,15 +20980,20 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron/dark, /area/station/hallway/secondary/exit/departure_lounge) +"gNO" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/heat_exchanging/manifold, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) "gNS" = ( -/obj/item/stack/sheet/cardboard{ - amount = 14 - }, -/obj/item/stack/package_wrap, -/turf/open/floor/iron/dark/side{ - dir = 6 - }, -/area/station/security/prison/work) +/obj/machinery/firealarm/directional/south, +/obj/item/kirbyplants/random, +/turf/open/floor/iron/dark, +/area/station/security/prison) "gNX" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/structure/table, @@ -20453,22 +21039,13 @@ /obj/effect/spawner/random/structure/girder, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"gOv" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/preopen{ - id = "xenobiomain"; - name = "Containment Blast Door" +"gOA" = ( +/obj/machinery/light/neon_lining{ + dir = 8 }, -/turf/open/floor/iron/white/textured, +/obj/machinery/duct, +/turf/open/floor/stone, /area/station/science/xenobiology) -"gOA" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/maintenance/department/science) "gOE" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -20531,7 +21108,6 @@ "gPS" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/east, -/obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/restrooms) "gPV" = ( @@ -20549,7 +21125,9 @@ dir = 9 }, /obj/structure/extinguisher_cabinet/directional/west, -/obj/structure/chair, +/obj/structure/chair{ + dir = 4 + }, /obj/effect/landmark/start/hangover, /turf/open/floor/iron/dark/side{ dir = 9 @@ -20589,16 +21167,8 @@ /turf/open/floor/carpet/blue, /area/station/medical/psychology) "gQX" = ( -/obj/effect/turf_decal/tile/purple/fourcorners, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/chair{ - dir = 4 - }, -/obj/effect/landmark/start/scientist, -/turf/open/floor/iron/white, -/area/station/science/research) +/turf/closed/wall/r_wall, +/area/station/maintenance/department/science/xenobiology) "gRc" = ( /obj/effect/turf_decal/trimline/dark_blue/filled/end{ dir = 1 @@ -20614,17 +21184,12 @@ /turf/open/floor/iron, /area/station/engineering/main) "gRk" = ( -/obj/structure/table/wood, -/obj/item/phone{ - pixel_x = -5; - pixel_y = 6 - }, -/obj/item/reagent_containers/cup/glass/mug/britcup{ - pixel_x = 8; - pixel_y = 8 - }, -/turf/open/floor/carpet/red, -/area/station/commons/vacant_room/office) +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/nt_rep) "gRo" = ( /obj/structure/flora/rock/pile/style_random, /turf/open/floor/grass, @@ -20769,11 +21334,11 @@ /turf/open/floor/carpet/purple, /area/station/command/heads_quarters/rd) "gSG" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/obj/effect/spawner/random/maintenance, -/turf/open/floor/iron, -/area/station/maintenance/department/science) +/obj/machinery/light/small/directional/north, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "gSL" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 @@ -20830,15 +21395,7 @@ /obj/machinery/holopad, /turf/open/floor/wood, /area/station/service/library/private) -"gTL" = ( -/obj/machinery/light/neon_lining{ - dir = 4 - }, -/obj/machinery/duct, -/turf/open/floor/stone, -/area/station/science/xenobiology) "gUl" = ( -/obj/machinery/light_switch/directional/south, /obj/machinery/camera/autoname/directional/south, /obj/structure/punching_bag, /turf/open/floor/iron/dark, @@ -20909,6 +21466,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, +/obj/machinery/firealarm/directional/west, /obj/machinery/door/firedoor, /turf/open/floor/catwalk_floor, /area/station/maintenance/department/engine/atmos) @@ -20917,15 +21475,6 @@ dir = 1 }, /area/station/service/janitor) -"gWi" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/ai_slipper{ - uses = 10 - }, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai_upload) "gWk" = ( /obj/structure/safe, /obj/item/ammo_box/a357, @@ -20967,30 +21516,38 @@ "gWI" = ( /obj/machinery/light/small/directional/north, /obj/machinery/camera/directional/north{ - c_tag = "Arrivals - Docking Bay 3"; - name = "arrivals camera" + c_tag = "Hallway, Arrivals - Docking Bay 3"; + name = "hallway camera" }, +/obj/structure/sign/warning/docking/directional/north, /obj/structure/chair, /turf/open/floor/iron/dark/smooth_large, /area/station/hallway/secondary/entry) "gWL" = ( +/obj/structure/noticeboard/directional/south, /obj/structure/table/wood, -/obj/item/flashlight/lamp{ - pixel_y = 3 +/obj/item/paper/fluff/gateway{ + pixel_x = 9 }, -/turf/open/floor/carpet/blue, -/area/station/commons/vacant_room/office) -"gXk" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/meter/layer4, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) +/obj/item/coin/gold{ + pixel_x = 7; + pixel_y = 8 + }, +/obj/item/phone{ + pixel_x = -5; + pixel_y = 6 + }, +/obj/item/clothing/mask/cigarette/pipe{ + pixel_x = -5 + }, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/nt_rep) "gXm" = ( -/obj/structure/table, /obj/machinery/camera/autoname/directional/south, -/obj/item/toy/katana, +/obj/machinery/status_display/evac/directional/south, +/obj/structure/table, /obj/item/gun/ballistic/shotgun/toy/crossbow, +/obj/item/toy/katana, /turf/open/floor/iron/dark/side, /area/station/commons/fitness/recreation) "gXK" = ( @@ -21033,23 +21590,22 @@ }, /turf/open/floor/iron/white, /area/station/medical/virology) -"gXW" = ( -/obj/effect/turf_decal/tile/blue/fourcorners, -/obj/structure/chair{ - dir = 8 - }, -/obj/effect/landmark/start/assistant, -/turf/open/floor/iron/dark, -/area/station/hallway/primary/starboard) "gXZ" = ( /obj/effect/turf_decal/trimline/red/filled/line, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) "gYl" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/space_heater, -/turf/open/floor/catwalk_floor, -/area/station/maintenance/department/security/brig) +/obj/machinery/corral_corner{ + mapping_id = "5" + }, +/obj/machinery/light/neon_lining{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "gYp" = ( /obj/machinery/airalarm/directional/east, /obj/item/radio/intercom/directional/south, @@ -21171,7 +21727,6 @@ /obj/effect/turf_decal/trimline/dark_blue/filled/warning{ dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, /turf/open/floor/iron/dark, /area/station/science/server) "gZZ" = ( @@ -21244,6 +21799,9 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, /turf/open/floor/iron/dark/side{ dir = 1 }, @@ -21272,38 +21830,30 @@ }, /turf/open/floor/iron/dark/textured_large, /area/station/hallway/secondary/exit/departure_lounge) -"hcu" = ( -/obj/machinery/smartfridge/extract/preloaded, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "hcB" = ( /obj/machinery/power/port_gen/pacman/pre_loaded, /turf/open/floor/plating, /area/station/maintenance/port/fore) "hcJ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, /obj/effect/turf_decal/trimline/red/filled/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, /obj/effect/spawner/random/engineering/tracking_beacon, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) "hcK" = ( -/obj/machinery/camera/autoname/directional/north, -/obj/machinery/firealarm/directional/north{ - pixel_x = 5 - }, -/obj/machinery/light_switch/directional/north{ - pixel_x = -5 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ +/obj/machinery/light_switch/directional/north, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ dir = 4 }, /turf/open/floor/iron/freezer, /area/station/service/kitchen/coldroom) "hda" = ( +/obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/trash/graffiti, /turf/open/floor/iron/checker, /area/station/maintenance/port/fore) @@ -21336,11 +21886,12 @@ /turf/open/floor/iron/white/textured, /area/station/medical/office) "hdm" = ( -/obj/structure/chair/plastic{ - dir = 1 +/obj/machinery/sparker/directional/north{ + id = "execution_burn" }, -/turf/open/floor/iron/dark, -/area/station/security/prison) +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/layer4, +/turf/open/floor/engine, +/area/station/security/execution) "hdC" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -21425,6 +21976,7 @@ /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat/atmos) "heD" = ( +/obj/structure/cable, /obj/structure/table/wood, /obj/item/book/manual/wiki/security_space_law, /turf/open/floor/carpet/red, @@ -21476,20 +22028,18 @@ /turf/open/floor/iron/white/textured, /area/station/medical/pharmacy) "hfF" = ( -/obj/effect/turf_decal/tile/dark_blue/fourcorners, -/obj/structure/table/glass, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/machinery/door/window/brigdoor/right/directional/west{ - name = "Core Modules"; - req_access = list("captain") +/obj/effect/turf_decal/tile/dark_blue/full, +/obj/machinery/light/directional/east, +/obj/machinery/status_display/ai/directional/east, +/obj/structure/table/reinforced/rglass, +/obj/item/book/manual/wiki/robotics_cyborgs{ + pixel_x = -3 }, -/obj/item/ai_module/core/full/crewsimov{ - pixel_y = 7; - pixel_x = 1 +/obj/item/toy/figure/borg{ + pixel_x = 9; + pixel_y = 3 }, -/obj/item/ai_module/core/full/crewsimovpp, -/obj/effect/spawner/round_default_module, -/turf/open/floor/iron/dark, +/turf/open/floor/iron/dark/smooth_large, /area/station/ai_monitored/turret_protected/ai_upload) "hfI" = ( /obj/effect/turf_decal/stripes/line{ @@ -21569,7 +22119,7 @@ /obj/effect/turf_decal/tile/dark_blue/full, /obj/machinery/light/small/directional/north, /obj/machinery/camera/directional/north{ - c_tag = "Central Hallway, West - HoP Line"; + c_tag = "Hallway, Central - West, HoP Line"; name = "hallway camera" }, /obj/structure/table, @@ -21671,9 +22221,8 @@ /turf/open/floor/iron/white, /area/station/medical/medbay/central) "hjc" = ( -/obj/effect/spawner/random/structure/chair_maintenance{ - dir = 8 - }, +/obj/effect/decal/cleanable/dirt, +/obj/item/trash/can/food/chap, /turf/open/floor/plating, /area/station/maintenance/port/fore) "hjd" = ( @@ -21726,10 +22275,21 @@ }, /turf/open/floor/iron, /area/station/engineering/storage) +"hjT" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/firealarm/directional/east, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor, +/area/station/maintenance/starboard/aft) "hjZ" = ( /turf/open/floor/glass/reinforced, /area/station/security/prison/workout) "hkf" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, /turf/open/floor/iron/dark/side{ dir = 9 }, @@ -21792,7 +22352,9 @@ /turf/open/floor/iron, /area/station/maintenance/starboard/aft) "hkS" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible, +/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ + dir = 4 + }, /turf/open/floor/iron/dark, /area/station/engineering/atmos/pumproom) "hlb" = ( @@ -21821,11 +22383,15 @@ /turf/open/floor/engine, /area/station/ai_monitored/turret_protected/ai) "hlu" = ( +/obj/machinery/light/small/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/turf/open/floor/wood, -/area/station/service/lawoffice) +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "hlD" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -21849,19 +22415,9 @@ /turf/open/floor/iron/dark, /area/station/command/bridge) "hlP" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/turf/open/floor/iron/white, -/area/station/science/auxlab) -"hlY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/obj/machinery/light/neon_lining{ - dir = 4 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, /turf/open/floor/stone, /area/station/science/xenobiology) "hml" = ( @@ -21880,7 +22436,6 @@ /turf/open/floor/iron/white, /area/station/science/circuits) "hmF" = ( -/obj/item/radio/intercom/prison/directional/north, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/dark, /area/station/security/prison) @@ -21900,16 +22455,17 @@ /obj/effect/turf_decal/siding/wood{ dir = 8 }, -/obj/item/storage/secure/safe/hos{ - pixel_x = 35 - }, -/obj/structure/closet/secure_closet/hos, +/obj/structure/bed/dogbed/lia, +/mob/living/basic/carp/pet/lia, /turf/open/floor/wood, /area/station/command/heads_quarters/hos) "hny" = ( /obj/effect/turf_decal/tile/dark_blue/fourcorners, /obj/machinery/light/small/directional/east, /obj/item/storage/secure/safe/caps_spare/directional/east, +/obj/machinery/keycard_auth/directional/east{ + pixel_y = 8 + }, /obj/structure/table/reinforced, /obj/item/disk/nuclear{ pixel_x = -7 @@ -21919,9 +22475,6 @@ pixel_x = 7 }, /obj/item/pinpointer/nuke, -/obj/machinery/keycard_auth/directional/east{ - pixel_y = 8 - }, /turf/open/floor/iron/dark, /area/station/command/bridge) "hnH" = ( @@ -21964,15 +22517,18 @@ dir = 1 }, /obj/effect/turf_decal/stripes/line, +/obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, +/obj/machinery/duct, /obj/machinery/door/airlock/freezer{ name = "Coldroom" }, /obj/effect/mapping_helpers/airlock/access/all/service/kitchen, -/obj/structure/disposalpipe/segment, -/obj/machinery/duct, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, /turf/open/floor/iron/dark/textured, /area/station/service/kitchen/coldroom) "hoR" = ( @@ -21987,6 +22543,7 @@ dir = 1 }, /obj/machinery/camera/autoname/directional/north, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/dark, /area/station/security/execution/transfer) "hpb" = ( @@ -22048,6 +22605,19 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/hallway/primary/central) +"hpE" = ( +/obj/machinery/button/door/directional/south{ + id = "nt_rep_bathroom"; + name = "Bathroom Bolt Control"; + pixel_x = -6; + normaldoorcontrol = 1; + specialfunctions = 4; + req_access = list("nt_rep") + }, +/obj/machinery/shower/directional/west, +/obj/structure/drain, +/turf/open/floor/iron/showroomfloor, +/area/station/command/heads_quarters/nt_rep) "hpL" = ( /obj/effect/spawner/random/vending/snackvend, /turf/open/floor/iron/dark, @@ -22068,16 +22638,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/starboard/aft) -"hqm" = ( -/obj/effect/turf_decal/trimline/purple/filled/line, -/obj/machinery/light_switch/directional/south{ - pixel_x = 5 - }, -/obj/machinery/firealarm/directional/south{ - pixel_x = -5 - }, -/turf/open/floor/iron/white, -/area/station/science/explab) "hqv" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment, @@ -22106,11 +22666,6 @@ /obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/iron/dark, /area/station/security/evidence) -"hqM" = ( -/obj/machinery/airalarm/directional/south, -/obj/machinery/plumbing/ooze_compressor, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "hqN" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -22135,13 +22690,13 @@ /turf/open/floor/iron/dark, /area/station/security/brig) "hrk" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/trimline/red/filled/line{ dir = 4 }, /obj/effect/turf_decal/trimline/red/filled/corner{ dir = 1 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) "hrp" = ( @@ -22193,12 +22748,6 @@ /obj/machinery/computer/atmos_control/ordnancemix, /turf/open/floor/iron, /area/station/science/ordnance) -"hsp" = ( -/obj/effect/turf_decal/stripes/red/line{ - dir = 5 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "hsB" = ( /obj/structure/table/wood, /obj/effect/spawner/random/entertainment/lighter{ @@ -22215,25 +22764,15 @@ /turf/open/floor/plating, /area/station/maintenance/department/cargo) "hsJ" = ( -/obj/effect/turf_decal/trimline/dark_blue/filled/line{ - dir = 5 - }, -/obj/effect/turf_decal/trimline/dark_red/corner{ - dir = 8 - }, -/obj/machinery/camera/motion/directional/east{ - c_tag = "AI - Upload, East"; - network = list("aiupload"); - name = "ai camera" - }, -/obj/item/radio/intercom/directional/east{ - broadcasting = 1; - frequency = 1447; - listening = 0; - name = "AI Private Channel" - }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai_upload) +/area/station/maintenance/starboard/aft) +"hsL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "hsN" = ( /obj/effect/turf_decal/tile/blue/half/contrasted{ dir = 4 @@ -22302,23 +22841,6 @@ }, /turf/open/floor/wood, /area/station/service/library) -"htV" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, -/obj/structure/cable, -/obj/structure/liquid_barrier, -/obj/machinery/door/airlock/research/glass{ - name = "Kill Chamber"; - normalspeed = 0 - }, -/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, -/turf/open/floor/iron/white/textured, -/area/station/science/xenobiology) "htW" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 5 @@ -22333,10 +22855,14 @@ /obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ dir = 1 }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, /obj/structure/sign/warning/hot_temp/directional/north, /obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ dir = 4 }, +/obj/machinery/light/small/directional/north, /turf/open/floor/iron/dark, /area/station/science/ordnance) "hui" = ( @@ -22370,7 +22896,6 @@ /obj/effect/turf_decal/stripes/corner{ dir = 1 }, -/obj/structure/sign/warning/secure_area/directional/north, /turf/open/floor/iron/dark, /area/station/hallway/primary/central) "huy" = ( @@ -22395,6 +22920,13 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/security/brig/entrance) +"huF" = ( +/obj/structure/chair/office{ + dir = 8 + }, +/obj/effect/landmark/start/scientist, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "huJ" = ( /obj/effect/turf_decal/trimline/dark_blue/filled/line{ dir = 8 @@ -22405,6 +22937,10 @@ /obj/machinery/light/directional/west, /turf/open/floor/iron/dark, /area/station/hallway/primary/central) +"huZ" = ( +/obj/effect/turf_decal/vg_decals/numbers/six, +/turf/open/floor/plating/airless, +/area/space/nearstation) "hvc" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -22412,11 +22948,10 @@ /turf/open/floor/iron/dark, /area/station/security/execution/transfer) "hve" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/turf/open/floor/carpet/red, -/area/station/command/heads_quarters/hos) +/obj/effect/decal/cleanable/dirt, +/obj/structure/mannequin/wood, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "hvk" = ( /obj/effect/turf_decal/tile/bar/opposingcorners{ dir = 1 @@ -22434,6 +22969,62 @@ }, /turf/open/floor/iron/kitchen, /area/station/service/kitchen) +"hvn" = ( +/obj/machinery/light/small/directional/north, +/obj/structure/table/wood, +/obj/item/plate, +/obj/item/plate{ + pixel_y = 2 + }, +/obj/item/plate{ + pixel_y = 4 + }, +/obj/item/plate{ + pixel_y = 6 + }, +/obj/item/kitchen/fork{ + pixel_x = -12; + pixel_y = 2 + }, +/obj/item/kitchen/fork{ + pixel_x = -12; + pixel_y = 2 + }, +/obj/item/kitchen/fork{ + pixel_x = -12; + pixel_y = 2 + }, +/obj/item/kitchen/fork{ + pixel_x = -12; + pixel_y = 2 + }, +/obj/item/kitchen/spoon{ + pixel_x = 10; + pixel_y = 2 + }, +/obj/item/kitchen/spoon{ + pixel_x = 10; + pixel_y = 2 + }, +/obj/item/kitchen/spoon{ + pixel_x = 10; + pixel_y = 2 + }, +/obj/item/kitchen/spoon{ + pixel_x = 10; + pixel_y = 2 + }, +/obj/item/kitchen/spoon{ + pixel_x = 10; + pixel_y = 2 + }, +/obj/item/knife{ + pixel_x = 6; + pixel_y = 7 + }, +/obj/item/kitchen/rollingpin, +/turf/open/floor/iron/kitchen, +/area/station/command/heads_quarters/nt_rep) "hvs" = ( /obj/machinery/airalarm/directional/north, /obj/machinery/camera/autoname/directional/north, @@ -22441,6 +23032,7 @@ /area/station/security/prison/workout) "hvz" = ( /obj/machinery/light/small/directional/south, +/obj/structure/sign/warning/vacuum/external/directional/south, /obj/structure/closet/emcloset/anchored, /turf/open/floor/iron/dark/smooth_large, /area/station/hallway/secondary/entry) @@ -22464,8 +23056,8 @@ /turf/open/floor/iron/dark/textured, /area/station/ai_monitored/turret_protected/aisat_interior) "hvX" = ( -/obj/machinery/atmospherics/components/tank{ - dir = 1 +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 }, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) @@ -22499,22 +23091,6 @@ /obj/machinery/duct, /turf/open/floor/iron/dark, /area/station/security/brig) -"hwy" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/research/glass{ - name = "Artifact Research" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, -/turf/open/floor/iron/white/textured, -/area/station/science/explab) "hwB" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/structure/table, @@ -22556,6 +23132,7 @@ /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 8 }, +/obj/machinery/light/directional/west, /obj/machinery/newscaster/directional/west, /obj/machinery/computer/scan_consolenew{ dir = 4 @@ -22574,27 +23151,33 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/iron/dark/textured_large, /area/station/cargo/storage) +"hxE" = ( +/obj/effect/turf_decal/vg_decals/numbers/three, +/turf/open/floor/plating/airless, +/area/space/nearstation) "hxM" = ( /obj/structure/filingcabinet, /turf/open/floor/iron, /area/station/cargo/drone_bay) "hxS" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/machinery/light/neon_lining{ + dir = 8 }, /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron/white, -/area/station/science/auxlab) +/obj/machinery/camera/directional/west{ + c_tag = "Science - Xenobiology, Pen 1"; + name = "xenobiology camera"; + network = list("ss13","rd","xeno") + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "hxV" = ( -/obj/effect/turf_decal/trimline/yellow/line{ +/obj/effect/turf_decal/trimline/green/line{ dir = 1 }, -/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/effect/turf_decal/trimline/green/filled/line, /turf/open/floor/iron/dark, /area/station/hallway/primary/central) "hxY" = ( @@ -22608,23 +23191,17 @@ /turf/open/floor/plating, /area/station/engineering/atmos) "hyb" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /obj/machinery/airalarm/directional/east, /obj/effect/mapping_helpers/airalarm/all_access, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /obj/machinery/power/terminal{ dir = 1 }, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) -"hyd" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/machinery/duct, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "hyj" = ( /obj/structure/table/wood, /obj/effect/spawner/random/bureaucracy/folder, @@ -22638,6 +23215,10 @@ /obj/effect/landmark/start/depsec/engineering, /turf/open/floor/iron/dark, /area/station/security/checkpoint/engineering) +"hyK" = ( +/obj/effect/turf_decal/vg_decals/numbers/one, +/turf/open/floor/plating/airless, +/area/space/nearstation) "hzc" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/light/small/directional/east, @@ -22654,9 +23235,16 @@ /turf/open/floor/plating/airless, /area/station/ai_monitored/turret_protected/aisat/atmos) "hzA" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/pumproom) +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on/coldroom{ + dir = 8 + }, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) +"hzD" = ( +/obj/structure/extinguisher_cabinet/directional/west, +/obj/effect/artifact_spawner, +/turf/open/floor/engine, +/area/station/science/explab) "hzK" = ( /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 8 @@ -22804,7 +23392,7 @@ /area/station/engineering/atmos) "hCz" = ( /obj/machinery/light/small/directional/north, -/obj/structure/table, +/obj/structure/rack, /obj/effect/spawner/random/maintenance/two, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) @@ -22926,9 +23514,17 @@ /turf/open/floor/iron/dark, /area/station/command/bridge) "hDE" = ( -/obj/structure/tank_dispenser, -/turf/open/floor/iron/white, -/area/station/science/auxlab) +/obj/machinery/corral_corner{ + mapping_id = "4" + }, +/obj/machinery/light/neon_lining{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "hDJ" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 6 @@ -22941,25 +23537,10 @@ /turf/open/floor/iron/dark, /area/station/hallway/primary/starboard) "hDN" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/light/small/directional/east, /obj/structure/table/wood, -/obj/item/book/manual/wiki/detective{ - pixel_x = -7; - pixel_y = 5 - }, -/obj/item/reagent_containers/cup/glass/bottle/whiskey{ - pixel_y = 7; - pixel_x = 5 - }, -/obj/item/clothing/mask/cigarette{ - pixel_x = -6 - }, -/obj/item/lighter{ - pixel_x = -6; - pixel_y = 3 - }, -/obj/item/clothing/glasses/hud/security/sunglasses, -/turf/open/floor/wood, +/turf/open/floor/iron/dark, /area/station/security/detectives_office) "hDP" = ( /obj/machinery/status_display/evac/directional/east, @@ -23117,14 +23698,11 @@ /turf/open/floor/iron/dark, /area/station/security/prison/safe) "hGj" = ( -/obj/machinery/light/small/directional/west, -/obj/structure/table/wood, -/obj/item/storage/box/evidence, -/obj/item/hand_labeler, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/wood, /area/station/security/detectives_office) "hGk" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible/layer4{ +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ dir = 4 }, /turf/open/floor/catwalk_floor, @@ -23132,7 +23710,7 @@ "hGm" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, -/area/station/maintenance/department/security) +/area/station/security/office) "hGE" = ( /obj/machinery/air_sensor/nitrogen_tank, /turf/open/floor/engine/n2, @@ -23227,11 +23805,6 @@ /obj/effect/spawner/random/structure/crate, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"hIe" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "hIk" = ( /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 1 @@ -23259,25 +23832,19 @@ /turf/open/floor/iron/dark, /area/station/security/office) "hIE" = ( -/obj/machinery/airalarm/directional/west, +/obj/machinery/newscaster/directional/west, /turf/open/floor/iron/dark, /area/station/service/janitor) "hIN" = ( /obj/effect/turf_decal/tile/dark_blue/full, /obj/effect/turf_decal/delivery, /obj/machinery/camera/directional/north{ - c_tag = "Command - Bridge Deliveries"; + c_tag = "Command - Bridge, Deliveries"; name = "command camera" }, /obj/machinery/light/small/directional/north, /turf/open/floor/iron/dark/smooth_large, /area/station/command/bridge) -"hIU" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "hIW" = ( /obj/structure/table/wood, /obj/machinery/cassette/adv_cassette_deck{ @@ -23415,6 +23982,14 @@ dir = 10 }, /area/station/security/prison) +"hLk" = ( +/obj/structure/cable, +/obj/machinery/door/airlock/external{ + name = "Shipbreaking Control Room" + }, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/turf/open/floor/iron/dark/textured/airless, +/area/station/maintenance/space_hut) "hLs" = ( /obj/machinery/computer/security/telescreen/entertainment/directional/north, /obj/effect/landmark/start/gary/rare, @@ -23425,7 +24000,6 @@ dir = 9 }, /obj/item/radio/intercom/directional/west, -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, /obj/machinery/computer/rdservercontrol, /turf/open/floor/iron/dark, /area/station/science/server) @@ -23459,7 +24033,7 @@ dir = 1 }, /obj/effect/turf_decal/trimline/red/line, -/obj/machinery/atm/directional/north, +/obj/machinery/bluespace_vendor/directional/north, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) "hLW" = ( @@ -23509,11 +24083,8 @@ /turf/open/floor/iron, /area/station/command/gateway) "hMB" = ( -/obj/machinery/camera/directional/west{ - c_tag = "Service - Chapel Office"; - name = "service camera" - }, -/obj/item/radio/intercom/directional/west, +/obj/machinery/light/directional/west, +/obj/machinery/newscaster/directional/west, /obj/structure/chair/comfy/brown{ dir = 4 }, @@ -23538,6 +24109,13 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/medical/cryo) +"hMI" = ( +/obj/structure/sign/flag/nanotrasen/directional/east, +/obj/structure/bed/double, +/obj/item/bedsheet/centcom/double, +/obj/effect/landmark/start/nanotrasen_representative, +/turf/open/floor/wood/large, +/area/station/command/heads_quarters/nt_rep) "hMJ" = ( /obj/effect/turf_decal/tile/red/anticorner/contrasted, /obj/machinery/light_switch/directional/south{ @@ -23581,10 +24159,9 @@ /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/starboard) "hNt" = ( -/obj/machinery/status_display/evac/directional/north, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/maintenance/department/science) +/obj/machinery/duct, +/turf/open/floor/engine, +/area/station/science/xenobiology) "hNA" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -23681,10 +24258,6 @@ /obj/machinery/disposal/bin, /turf/open/floor/iron/dark, /area/station/hallway/primary/fore) -"hOU" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) "hPf" = ( /obj/effect/turf_decal/tile/blue/fourcorners, /obj/structure/table/reinforced/rglass, @@ -23766,8 +24339,8 @@ /turf/open/floor/iron/white, /area/station/science/lab) "hPT" = ( -/obj/item/radio/intercom/directional/west, -/turf/open/floor/wood, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron/dark, /area/station/security/detectives_office) "hQP" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -23784,19 +24357,8 @@ /obj/machinery/duct, /turf/open/floor/iron/white, /area/station/medical/virology) -"hRe" = ( -/obj/machinery/light/small/directional/north, -/obj/machinery/camera/directional/north{ - c_tag = "Science - Xenobiology Secure Cell Interior"; - name = "science camera"; - network = list("ss13","test","rd","xeno") - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "hRt" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ - dir = 8 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, /obj/machinery/meter, /turf/open/floor/iron/dark, /area/station/engineering/atmos/pumproom) @@ -23841,15 +24403,24 @@ pixel_x = 9 }, /obj/item/toy/figure/warden{ - pixel_y = 14 + pixel_y = 18 + }, +/obj/item/screwdriver{ + pixel_y = 10 }, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) "hRV" = ( -/obj/structure/chair/sofa/right/maroon{ +/obj/machinery/light/directional/west, +/obj/machinery/firealarm/directional/west{ + pixel_y = -5 + }, +/obj/machinery/light_switch/directional/west{ + pixel_y = 5 + }, +/turf/open/floor/iron/dark/side{ dir = 8 }, -/turf/open/floor/iron, /area/station/commons/fitness/recreation) "hSc" = ( /obj/effect/spawner/random/structure/table_or_rack, @@ -23882,10 +24453,6 @@ }, /turf/open/floor/iron/dark/side, /area/station/engineering/break_room) -"hSr" = ( -/obj/machinery/space_heater, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) "hSy" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/red/filled/line{ @@ -23933,12 +24500,6 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) -"hTE" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, -/obj/machinery/meter, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) "hTN" = ( /obj/effect/spawner/random/structure/closet_private, /turf/open/floor/plating, @@ -23959,12 +24520,17 @@ dir = 1 }, /obj/machinery/camera/directional/south{ - c_tag = "Arrivals - Bay 1, Lower Hallway"; - name = "arrivals camera" + c_tag = "Hallway, Arrivals - Docking Bay 1, Lower Hallway"; + name = "hallway camera" }, /obj/structure/extinguisher_cabinet/directional/south, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) +"hUd" = ( +/obj/item/radio/intercom/directional/north, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/department/science) "hUt" = ( /obj/structure/chair/stool/directional/south, /obj/effect/landmark/start/hangover, @@ -24030,6 +24596,15 @@ /obj/structure/closet/crate/freezer/blood, /turf/open/floor/iron/white, /area/station/medical/surgery) +"hWs" = ( +/obj/machinery/firealarm/directional/south{ + pixel_x = 5 + }, +/obj/machinery/light_switch/directional/south{ + pixel_x = -5 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "hWv" = ( /obj/structure/sign/poster/ripped/directional/east, /obj/structure/bed/pod, @@ -24055,10 +24630,9 @@ /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/port) "hXf" = ( -/obj/structure/sign/warning/rad_shelter/directional/east, -/obj/machinery/camera/autoname/directional/east, -/turf/open/floor/iron/dark, -/area/station/security/prison) +/obj/structure/cable, +/turf/open/floor/iron/airless, +/area/station/maintenance/space_hut) "hXt" = ( /turf/open/floor/iron/white, /area/station/science/genetics) @@ -24125,15 +24699,17 @@ /turf/open/floor/iron/dark, /area/station/hallway/primary/fore) "hYH" = ( -/obj/structure/sign/warning/biohazard/directional/north, -/obj/machinery/camera/directional/north{ - c_tag = "Maintenance - Science Pass-through, Xenobiology Access"; - name = "maintenance camera"; - network = list("ss13","rd","xeno") +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/iron, -/area/station/maintenance/department/science) +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "xenobiomain"; + name = "Containment Blast Door" + }, +/turf/open/floor/iron/white/textured, +/area/station/science/xenobiology) "hYM" = ( /obj/effect/turf_decal/trimline/brown/filled/line, /obj/structure/window/reinforced/spawner/directional/west, @@ -24142,12 +24718,6 @@ }, /turf/open/floor/iron/dark/side, /area/station/cargo/lobby) -"hYU" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/security/prison/visit) "hYY" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -24165,18 +24735,18 @@ "hYZ" = ( /turf/closed/wall, /area/station/commons/dorms/laundry) +"hZa" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/yellow/visible, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "hZj" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/light/directional/west, -/obj/structure/extinguisher_cabinet/directional/west, -/obj/structure/rack, -/obj/item/storage/briefcase{ - pixel_x = -3; - pixel_y = 3 +/obj/effect/turf_decal/tile/dark_blue/fourcorners, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 }, -/obj/item/storage/secure/briefcase, /turf/open/floor/iron/dark, -/area/station/security/detectives_office) +/area/station/ai_monitored/turret_protected/ai_upload_foyer) "hZp" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -24187,17 +24757,10 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/wood, /area/station/service/library/lounge) -"hZS" = ( -/obj/effect/turf_decal/bot_red, -/obj/structure/cable, -/obj/machinery/suit_storage_unit/standard_unit, -/turf/open/floor/iron/large, -/area/station/ai_monitored/command/storage/eva) "iac" = ( +/obj/effect/decal/cleanable/cobweb, /obj/structure/table, /obj/structure/frame/machine, -/obj/item/stack/cable_coil/five, -/obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/fore) "iah" = ( @@ -24234,12 +24797,14 @@ /turf/open/floor/iron/kitchen, /area/station/service/kitchen) "iaB" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/generic_maintenance_landmark, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/commons/fitness) "iaD" = ( -/obj/item/radio/intercom/directional/south, +/obj/machinery/airalarm/directional/south, /obj/structure/closet/secure_closet/captains, /turf/open/floor/wood, /area/station/command/heads_quarters/captain/private) @@ -24311,9 +24876,8 @@ /turf/open/floor/iron, /area/station/hallway/primary/aft) "icu" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/carpet/red, /area/station/command/heads_quarters/hos) "icv" = ( @@ -24323,9 +24887,8 @@ /turf/open/floor/iron/large, /area/station/engineering/gravity_generator) "icx" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/station/science/auxlab) +/turf/closed/wall/r_wall, +/area/station/science/explab) "icE" = ( /obj/structure/lattice/catwalk, /obj/structure/cable, @@ -24359,29 +24922,29 @@ dir = 1 }, /area/station/engineering/break_room) +"idr" = ( +/turf/open/floor/iron/dark/side/airless{ + dir = 4 + }, +/area/station/maintenance/space_hut) "idJ" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/dark/side{ dir = 1 }, /area/station/commons/fitness) -"idR" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 +"iea" = ( +/obj/machinery/corral_corner{ + mapping_id = "3" }, -/obj/machinery/door/airlock/maintenance, -/obj/effect/mapping_helpers/airlock/access/any/security/maintenance, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 1 +/obj/machinery/light/neon_lining{ + dir = 8 }, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) -"iea" = ( -/obj/machinery/status_display/ai/directional/north, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/maintenance/department/science) +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "ieE" = ( /obj/structure/cable, /obj/machinery/power/solar{ @@ -24403,15 +24966,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/hallway/primary/port) -"ifj" = ( -/obj/machinery/light/neon_lining{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/turf/open/floor/stone, -/area/station/science/xenobiology) "ifr" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 5 @@ -24436,14 +24990,10 @@ /turf/open/floor/iron/dark, /area/station/hallway/primary/central) "ifE" = ( -/obj/machinery/light/directional/east, +/obj/effect/turf_decal/bot, /obj/machinery/atmospherics/components/trinary/mixer/flipped, /turf/open/floor/iron, /area/station/science/ordnance) -"ifN" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "ifT" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 6 @@ -24478,12 +25028,6 @@ /turf/open/floor/iron/dark, /area/station/hallway/secondary/exit/departure_lounge) "ihc" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/machinery/requests_console/directional/west{ - department = "Theatre"; - name = "Theater Requests Console" - }, /turf/open/floor/iron/dark/side{ dir = 8 }, @@ -24501,13 +25045,6 @@ /obj/effect/turf_decal/trimline/yellow/filled/line, /turf/open/floor/iron, /area/station/engineering/main) -"ihm" = ( -/obj/structure/chair/office/light{ - dir = 8 - }, -/obj/effect/landmark/start/signal_technician, -/turf/open/floor/iron/dark, -/area/station/tcommsat/computer) "iho" = ( /obj/structure/closet/secure_closet/personal/cabinet, /turf/open/floor/wood/large, @@ -24518,10 +25055,10 @@ /turf/open/floor/iron/dark, /area/station/hallway/primary/fore) "ihJ" = ( -/obj/structure/cable, /obj/effect/turf_decal/trimline/red/filled/line{ dir = 1 }, +/obj/structure/cable, /turf/open/floor/iron/dark, /area/station/security/lockers) "ihK" = ( @@ -24529,12 +25066,16 @@ /turf/open/floor/wood, /area/station/command/meeting_room) "ihO" = ( -/obj/structure/cable, -/obj/effect/spawner/random/trash/cigbutt, -/turf/open/floor/iron, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/door/poddoor/incinerator_atmos_aux, +/turf/open/floor/engine, /area/station/maintenance/disposal/incinerator) "ihP" = ( /obj/structure/sign/warning/rad_shelter/directional/west, +/obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron/dark, /area/station/security/prison) "iib" = ( @@ -24561,10 +25102,17 @@ /obj/structure/closet/secure_closet/freezer/kitchen{ req_access = null }, +/obj/item/food/flatdough, +/obj/item/food/flatdough, +/obj/item/food/piedough, +/obj/item/food/piedough, +/obj/item/food/grown/tomato, +/obj/item/food/grown/tomato, +/obj/item/food/grown/tomato, /turf/open/floor/iron/kitchen, /area/station/security/prison/mess) "iiE" = ( -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ dir = 4 }, /turf/open/floor/plating, @@ -24580,34 +25128,25 @@ /turf/open/floor/iron/dark/smooth_large, /area/station/engineering/atmos) "ija" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/door/airlock/engineering/glass{ - name = "Server Room" +/obj/item/kirbyplants/random, +/turf/open/floor/iron/dark/side{ + dir = 1 }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 +/area/station/commons/fitness/recreation) +"ijf" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, -/turf/open/floor/iron/dark/textured_large, -/area/station/tcommsat/computer) +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "ijj" = ( -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/dark_blue/warning{ - dir = 8 +/obj/effect/turf_decal/tile/dark_blue/fourcorners, +/obj/machinery/light/small/directional/east, +/obj/machinery/ai_slipper{ + uses = 10 }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, -/area/station/ai_monitored/command/storage/eva) +/area/station/ai_monitored/turret_protected/ai_upload_foyer) "ijn" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ @@ -24621,8 +25160,8 @@ /turf/open/floor/engine/plasma, /area/station/engineering/atmos) "ijG" = ( -/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/co2, -/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/portable_atmospherics/canister, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) "ijM" = ( @@ -24631,7 +25170,6 @@ }, /obj/structure/extinguisher_cabinet/directional/east, /obj/machinery/camera/autoname/directional/east, -/obj/machinery/light/small/directional/east, /turf/open/floor/iron/white, /area/station/science/research) "ijP" = ( @@ -24672,17 +25210,13 @@ }, /area/station/command/heads_quarters/ce) "ikm" = ( -/obj/effect/turf_decal/box, -/obj/effect/turf_decal/stripes/corner, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 +/obj/machinery/light/directional/south, +/obj/machinery/station_map/directional/south, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/holopad, -/turf/open/floor/iron/white/smooth_large, -/area/station/science/auxlab) +/turf/open/floor/iron, +/area/station/maintenance/department/science) "iko" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -24692,7 +25226,7 @@ /area/station/maintenance/department/engine) "ikp" = ( /obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ dir = 10 }, /turf/open/space, @@ -24716,6 +25250,7 @@ }, /area/station/cargo/office) "ikt" = ( +/obj/machinery/light/small/directional/north, /obj/structure/table/wood, /obj/machinery/recharger, /obj/item/hand_tele{ @@ -24795,7 +25330,8 @@ /turf/open/floor/iron/dark, /area/station/command/bridge) "ilE" = ( -/obj/structure/chair{ +/obj/structure/cable, +/obj/structure/chair/plastic{ dir = 1 }, /turf/open/floor/iron/dark, @@ -24806,13 +25342,11 @@ /obj/machinery/duct, /turf/open/floor/iron/dark/smooth_large, /area/station/science/breakroom) -"ilM" = ( -/obj/machinery/space_heater, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) "ilT" = ( /obj/structure/table, +/obj/item/clothing/mask/translator{ + pixel_y = 15 + }, /obj/item/clothing/mask/translator{ pixel_y = 10 }, @@ -24894,16 +25428,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/checkpoint/customs/auxiliary) -"imJ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 4 - }, -/turf/open/floor/iron/white, -/area/station/science/explab) "imU" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -24920,12 +25444,15 @@ /turf/open/floor/plating, /area/station/maintenance/department/engine) "ina" = ( -/obj/effect/turf_decal/siding/wideplating_new/dark{ +/obj/effect/turf_decal/siding/thinplating/dark{ dir = 8 }, /obj/effect/turf_decal/siding/wideplating_new/dark/corner, /obj/machinery/light/directional/north, /obj/structure/cable, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 6 + }, /turf/open/floor/iron/dark/telecomms, /area/station/tcommsat/server) "inn" = ( @@ -24958,23 +25485,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/checkpoint/escape) -"inF" = ( -/obj/machinery/airalarm/directional/west, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/machinery/disposal/bin, -/obj/structure/extinguisher_cabinet/directional/south, -/turf/open/floor/wood, -/area/station/security/detectives_office) -"inK" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/turf/open/floor/iron/dark/side{ - dir = 4 - }, -/area/station/commons/fitness) "inT" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, @@ -25001,12 +25511,6 @@ /obj/machinery/holopad, /turf/open/floor/wood, /area/station/service/library) -"ioq" = ( -/obj/effect/spawner/random/structure/table_or_rack, -/obj/item/storage/box/lights/mixed, -/obj/effect/spawner/random/entertainment/plushie, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) "ior" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -25047,10 +25551,11 @@ /turf/open/floor/iron/dark/smooth_large, /area/station/ai_monitored/turret_protected/ai_upload_foyer) "ipj" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ - dir = 5 +/obj/structure/cable, +/obj/machinery/power/turbine/core_rotor{ + dir = 4; + mapping_id = "main_turbine" }, -/obj/machinery/igniter/incinerator_atmos, /turf/open/floor/engine, /area/station/maintenance/disposal/incinerator) "ipp" = ( @@ -25103,14 +25608,13 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/fore) "ipH" = ( -/obj/machinery/light/small/directional/east, -/obj/machinery/requests_console/directional/east{ - department = "Law Office"; - name = "Law Office Requests Console" +/obj/structure/disposalpipe/segment{ + dir = 10 }, -/obj/effect/mapping_helpers/requests_console/assistance, -/obj/effect/mapping_helpers/requests_console/information, -/obj/structure/filingcabinet, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/holopad, /turf/open/floor/wood, /area/station/service/lawoffice) "ipL" = ( @@ -25132,15 +25636,16 @@ /turf/open/floor/iron/dark, /area/station/security/prison/garden) "iqb" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/structure/disposalpipe/trunk{ - dir = 1 +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "testlab"; + name = "Xenobiology Secure Chamber Blast Door" }, -/obj/machinery/disposal/bin, -/turf/open/floor/iron, +/turf/open/floor/plating/reinforced, /area/station/science/xenobiology) "iqi" = ( /obj/structure/cable, @@ -25200,17 +25705,16 @@ /turf/open/floor/carpet/blue, /area/station/medical/psychology) "iqP" = ( -/obj/effect/turf_decal/stripes/corner{ +/obj/effect/turf_decal/siding/wideplating_new/dark/corner{ dir = 8 }, -/obj/effect/turf_decal/stripes/corner{ +/obj/effect/turf_decal/siding/wideplating_new/dark/corner{ dir = 1 }, /turf/open/floor/iron/dark, /area/station/engineering/atmos/storage) "iqQ" = ( /obj/machinery/airalarm/directional/north, -/obj/machinery/camera/autoname/directional/north, /turf/open/floor/wood, /area/station/service/chapel/funeral) "iqS" = ( @@ -25219,6 +25723,9 @@ /obj/effect/spawner/random/entertainment/money, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"iqY" = ( +/turf/closed/wall, +/area/station/science/xenobiology) "irc" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -25252,10 +25759,16 @@ /turf/open/floor/iron/dark, /area/station/construction/mining/aux_base) "irR" = ( -/obj/effect/turf_decal/tile/purple/fourcorners, -/obj/machinery/nanite_programmer, +/obj/machinery/light/directional/west, +/obj/machinery/status_display/evac/directional/west, +/obj/structure/table/reinforced/rglass, +/obj/item/screwdriver{ + pixel_y = 8 + }, +/obj/item/wirecutters, +/obj/item/vacuum_pack, /turf/open/floor/iron/white, -/area/station/science/research) +/area/station/science/xenobiology) "isa" = ( /obj/effect/turf_decal/trimline/dark_blue/filled/line{ dir = 8 @@ -25282,10 +25795,11 @@ /turf/open/floor/wood, /area/station/service/library) "isM" = ( +/obj/machinery/status_display/ai/directional/south, /obj/structure/easel, /obj/item/canvas/twentythree_twentythree, -/obj/item/canvas/twentythree_nineteen, /obj/item/canvas/twentythree_twentythree, +/obj/item/canvas/twentythree_nineteen, /turf/open/floor/iron/dark/side, /area/station/commons/fitness/recreation) "isR" = ( @@ -25301,6 +25815,9 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/plating, /area/station/maintenance/port/fore) "itd" = ( @@ -25336,9 +25853,9 @@ /turf/open/floor/iron, /area/station/engineering/main) "itA" = ( -/obj/effect/spawner/structure/window/reinforced/plasma, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, -/turf/open/floor/plating, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/space_heater, +/turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) "itB" = ( /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, @@ -25376,9 +25893,8 @@ /turf/open/floor/plating, /area/station/engineering/storage) "itM" = ( -/obj/machinery/camera/directional/east{ - c_tag = "Telecomms Monitoring"; - network = list("tcomms") +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 }, /turf/open/floor/iron/dark/side{ dir = 5 @@ -25417,16 +25933,15 @@ }, /obj/structure/table, /obj/item/paper_bin{ - pixel_x = -6; - pixel_y = 7 + pixel_x = -6 }, /obj/item/stamp/head/qm{ pixel_x = 8; pixel_y = 12 }, -/obj/item/stamp{ - pixel_x = 8; - pixel_y = 6 +/obj/item/stamp/granted{ + pixel_y = 6; + pixel_x = 8 }, /obj/item/stamp/denied{ pixel_x = 8 @@ -25480,11 +25995,6 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron/dark, /area/station/hallway/secondary/exit/departure_lounge) -"iuF" = ( -/obj/machinery/light/directional/south, -/obj/machinery/chem_master, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "iuG" = ( /obj/effect/turf_decal/tile/bar/opposingcorners{ dir = 1 @@ -25492,6 +26002,29 @@ /obj/machinery/deepfryer, /turf/open/floor/iron/kitchen, /area/station/service/kitchen) +"iuI" = ( +/obj/effect/turf_decal/tile/red/fourcorners, +/obj/structure/rack, +/obj/item/gun/energy/disabler{ + pixel_x = -3; + pixel_y = 3 + }, +/obj/item/gun/energy/disabler, +/obj/item/gun/energy/disabler{ + pixel_x = 3; + pixel_y = -3 + }, +/obj/item/gun/energy/taser{ + pixel_y = 3; + pixel_x = -3 + }, +/obj/item/gun/energy/taser, +/obj/item/gun/energy/taser{ + pixel_y = -3; + pixel_x = 3 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/security/armory) "iuJ" = ( /obj/effect/turf_decal/tile/dark_blue/full, /obj/effect/turf_decal/bot_white, @@ -25556,7 +26089,7 @@ dir = 8 }, /obj/machinery/camera/directional/north{ - c_tag = "Hallway - Central, Northwest"; + c_tag = "Hallway - Central, North"; name = "hallway camera" }, /turf/open/floor/iron/dark, @@ -25602,7 +26135,7 @@ "ivS" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible, +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible, /turf/open/floor/plating, /area/station/maintenance/department/engineering/central) "iwa" = ( @@ -25629,42 +26162,14 @@ dir = 1 }, /obj/effect/turf_decal/trimline/neutral/line, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/dark, /area/station/hallway/primary/port) -"iwr" = ( -/obj/machinery/corral_corner{ - mapping_id = "4" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/light/neon_lining{ - dir = 8 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "iwL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/security/prison/garden) -"iwO" = ( -/obj/machinery/corral_corner{ - mapping_id = "4" - }, -/obj/machinery/slime_pen_controller{ - mapping_id = "4" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/light/neon_lining{ - dir = 8 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "iwW" = ( /obj/machinery/button/door/directional/east{ id = "med_break_bathroom"; @@ -25701,7 +26206,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /obj/item/kirbyplants/random, -/turf/open/floor/carpet/green, +/turf/open/floor/carpet, /area/station/commons/locker) "ixJ" = ( /obj/machinery/camera/autoname/directional/west, @@ -25738,6 +26243,11 @@ /obj/machinery/duct, /turf/open/floor/plating, /area/station/service/abandoned_gambling_den) +"iyj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/station/maintenance/department/security/brig) "iym" = ( /obj/effect/turf_decal/tile/blue/fourcorners, /obj/machinery/newscaster/directional/east, @@ -25757,14 +26267,12 @@ /turf/open/floor/iron/white, /area/station/medical/chemistry) "iyE" = ( -/obj/effect/turf_decal/trimline/yellow/filled/warning{ - dir = 9 - }, -/obj/effect/turf_decal/trimline/yellow/corner, -/turf/open/floor/iron/dark/side{ - dir = 9 +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 }, -/area/station/hallway/primary/aft) +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/entry) "iyI" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -25772,9 +26280,10 @@ /turf/open/floor/catwalk_floor, /area/station/maintenance/department/security/brig) "iyL" = ( -/obj/effect/turf_decal/tile/dark_blue/fourcorners, -/obj/structure/table/glass, -/obj/item/toy/figure/borg, +/obj/effect/turf_decal/trimline/dark_blue/filled/end{ + dir = 1 + }, +/obj/structure/window/reinforced/spawner/directional/east, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) "iza" = ( @@ -25795,7 +26304,7 @@ /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, /obj/machinery/camera/directional/north{ - c_tag = "Hallway - West, Western End"; + c_tag = "Hallway, West - West"; name = "hallway camera" }, /obj/machinery/light/small/directional/north, @@ -25853,6 +26362,11 @@ /obj/effect/turf_decal/bot, /turf/open/floor/engine, /area/station/engineering/atmos/hfr_room) +"iAh" = ( +/obj/structure/sign/poster/random/directional/north, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron, +/area/station/maintenance/department/science) "iAi" = ( /obj/effect/turf_decal/trimline/brown/filled/line, /turf/open/floor/iron/dark/side, @@ -25866,8 +26380,10 @@ /turf/open/floor/iron/dark, /area/station/hallway/secondary/exit/departure_lounge) "iAv" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, /turf/open/floor/iron/white, /area/station/medical/chemistry) "iAK" = ( @@ -25885,25 +26401,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/security/office) -"iAT" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/door/airlock/security/glass{ - name = "Isolation Cell"; - id_tag = "iso_cell_hall_bolt" - }, -/obj/effect/mapping_helpers/airlock/access/all/security/brig, -/obj/machinery/duct, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/iron/dark/textured, -/area/station/security/prison/safe) "iAZ" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ @@ -25936,11 +26433,6 @@ dir = 8 }, /area/station/security/prison) -"iBz" = ( -/obj/machinery/light/small/directional/west, -/obj/machinery/space_heater, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "iBE" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 6 @@ -25951,14 +26443,18 @@ /turf/open/floor/iron/white, /area/station/science/research) "iBO" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 +/obj/machinery/light/small/directional/east, +/obj/machinery/computer/security/telescreen/entertainment/directional/east, +/obj/structure/table/wood, +/obj/item/reagent_containers/cup/glass/coffee{ + pixel_x = -3 }, -/obj/effect/turf_decal/trimline/dark_blue/warning{ - dir = 8 +/obj/item/reagent_containers/cup/glass/coffee{ + pixel_x = 6; + pixel_y = 9 }, -/turf/open/floor/iron, -/area/station/ai_monitored/command/storage/eva) +/turf/open/floor/wood, +/area/station/service/lawoffice) "iCB" = ( /obj/effect/spawner/random/structure/girder, /turf/open/floor/plating, @@ -25969,11 +26465,8 @@ /turf/open/space/basic, /area/space/nearstation) "iDb" = ( -/obj/structure/reagent_dispensers/plumbed{ - dir = 8 - }, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +/turf/open/floor/iron/kitchen, +/area/station/command/heads_quarters/nt_rep) "iDf" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/duct, @@ -25981,6 +26474,9 @@ /area/station/maintenance/port/fore) "iDt" = ( /obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, /turf/open/floor/iron/white, /area/station/science/genetics) "iDA" = ( @@ -26027,12 +26523,24 @@ /obj/structure/sign/warning/rad_shelter/directional/east, /turf/open/floor/iron/dark, /area/station/security/prison) +"iFl" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "iFw" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/light/floor/has_bulb, +/obj/machinery/light/directional/north, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/status_display/ai/directional/north, /turf/open/floor/iron/dark, -/area/station/security/prison/visit) +/area/station/security/prison/garden) "iFy" = ( /obj/effect/turf_decal/box, /obj/machinery/holopad, @@ -26102,14 +26610,15 @@ /turf/open/floor/carpet/purple, /area/station/command/heads_quarters/rd) "iGw" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/effect/turf_decal/trimline/green/filled/line{ dir = 4 }, -/obj/effect/turf_decal/trimline/neutral/line{ +/obj/effect/turf_decal/trimline/green/line{ dir = 8 }, /obj/machinery/light/small/directional/east, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ +/obj/machinery/status_display/evac/directional/east, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 }, /turf/open/floor/iron/dark, @@ -26135,10 +26644,11 @@ /turf/open/floor/iron/dark, /area/station/security/evidence) "iHb" = ( -/obj/effect/turf_decal/box, -/obj/machinery/holopad, -/turf/open/floor/iron/dark/smooth_large, -/area/station/security/prison/garden) +/obj/machinery/light/small/directional/north, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/graffiti, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "iHe" = ( /obj/machinery/light/small/directional/south, /obj/machinery/camera/autoname/directional/south, @@ -26157,6 +26667,16 @@ }, /turf/open/floor/iron/white, /area/station/science/circuits) +"iHD" = ( +/obj/structure/table/wood/fancy/green, +/obj/item/paper_bin{ + pixel_y = 3 + }, +/obj/item/pen/fountain{ + pixel_y = 5 + }, +/turf/open/floor/wood/large, +/area/station/command/heads_quarters/nt_rep) "iHJ" = ( /obj/effect/turf_decal/trimline/blue/filled/line, /obj/item/radio/intercom/directional/south, @@ -26170,13 +26690,12 @@ /turf/open/floor/plating, /area/station/maintenance/port/fore) "iHR" = ( -/obj/effect/turf_decal/trimline/red/filled/corner{ +/obj/effect/turf_decal/trimline/red/filled/line{ dir = 4 }, /obj/effect/turf_decal/trimline/red/line{ - dir = 10 + dir = 8 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) "iHT" = ( @@ -26187,6 +26706,10 @@ /obj/effect/landmark/start/cyborg, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/satellite) +"iHZ" = ( +/obj/effect/turf_decal/vg_decals/numbers/five, +/turf/open/floor/plating/airless, +/area/space/nearstation) "iIh" = ( /turf/closed/wall/r_wall, /area/station/security/checkpoint/supply) @@ -26199,20 +26722,16 @@ /obj/structure/sign/departments/security/directional/north, /turf/open/floor/iron/dark, /area/station/hallway/primary/fore) -"iIy" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) "iIA" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 }, /turf/open/floor/engine, /area/station/engineering/atmos/hfr_room) +"iIB" = ( +/obj/effect/turf_decal/trimline/purple/filled/line, +/turf/open/floor/iron/white, +/area/station/science/auxlab) "iID" = ( /obj/effect/turf_decal/trimline/dark_blue/filled/line{ dir = 1 @@ -26274,6 +26793,16 @@ /obj/machinery/duct, /turf/open/floor/iron/textured, /area/station/science/robotics/lab) +"iJw" = ( +/obj/machinery/requests_console/directional/north{ + department = "Science"; + name = "Science Requests Console" + }, +/obj/effect/mapping_helpers/requests_console/ore_update, +/obj/effect/mapping_helpers/requests_console/supplies, +/obj/machinery/slime_market_pad, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "iJC" = ( /obj/effect/turf_decal/trimline/red/corner{ dir = 1 @@ -26287,23 +26816,9 @@ /obj/effect/landmark/start/assistant, /turf/open/floor/iron/dark, /area/station/hallway/primary/fore) -"iJI" = ( -/obj/machinery/corral_corner{ - mapping_id = "1" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/light/neon_lining{ - dir = 4 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "iJX" = ( -/obj/machinery/airalarm/directional/north, -/obj/effect/mapping_helpers/airalarm/all_access, -/obj/effect/mapping_helpers/airalarm/tlv_cold_room, -/obj/structure/table, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, +/obj/structure/sink/kitchen/directional/east, /obj/item/wrench, /turf/open/floor/iron/freezer, /area/station/service/kitchen/coldroom) @@ -26400,9 +26915,10 @@ "iLr" = ( /obj/machinery/light/small/directional/north, /obj/machinery/camera/directional/north{ - c_tag = "Arrivals - Escape Pod Bay 1"; - name = "arrivals camera" + c_tag = "Hallway, Arrivals - Escape Pod Bay 1"; + name = "hallway camera" }, +/obj/structure/sign/warning/vacuum/external/directional/north, /obj/structure/chair, /turf/open/floor/iron/dark/smooth_large, /area/station/hallway/secondary/entry) @@ -26418,6 +26934,22 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"iLC" = ( +/turf/open/floor/iron/dark/side/airless{ + dir = 8 + }, +/area/station/maintenance/space_hut) +"iLF" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/components/binary/valve/digital/on/layer2{ + name = "Primary Waste Release"; + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "iLG" = ( /obj/effect/landmark/start/hangover, /turf/open/floor/iron/chapel{ @@ -26431,20 +26963,6 @@ /obj/machinery/airalarm/directional/east, /turf/open/floor/iron/white, /area/station/science/research) -"iMs" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/light/neon_lining{ - dir = 8 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) -"iMt" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/iron, -/area/station/maintenance/department/science) "iMx" = ( /obj/effect/turf_decal/trimline/red/filled/warning{ dir = 4 @@ -26471,6 +26989,10 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron/dark/smooth_large, /area/station/command/bridge) +"iMH" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/iron, +/area/station/maintenance/department/science) "iMN" = ( /obj/effect/turf_decal/trimline/dark_blue/filled/line{ dir = 8 @@ -26479,7 +27001,7 @@ dir = 4 }, /obj/machinery/camera/directional/west{ - c_tag = "Hallway - Central, East"; + c_tag = "Hallway, Central - East"; name = "hallway camera" }, /turf/open/floor/iron/dark, @@ -26588,11 +27110,11 @@ /turf/open/floor/wood, /area/station/command/heads_quarters/blueshield) "iNZ" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/junction, /obj/effect/turf_decal/stripes/line{ dir = 1 }, /obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/heat_exchanging/junction, /obj/machinery/door/airlock/research/glass{ name = "Freeze Chamber Exterior Airlock"; id_tag = "ord_freezer_bolt" @@ -26605,37 +27127,16 @@ /turf/open/floor/engine/vacuum, /area/station/science/ordnance/freezerchamber) "iOi" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 10 - }, -/obj/machinery/button/door/directional/south{ - pixel_x = -6; - id = "justice_blast"; - name = "Emergency Justice Vent Control"; - req_access = list("security") - }, -/obj/machinery/button/door/directional/south{ - pixel_x = 6; - id = "execution_fireblast"; - name = "Justice Chamber Lockdown"; - req_access = list("security") - }, -/obj/machinery/button/ignition{ - id = "execution_burn"; - name = "Execution Ignition Switch"; - pixel_x = 6; - pixel_y = -36; - req_access = list("security") - }, +/obj/machinery/light/directional/north, +/obj/structure/table, /turf/open/floor/iron/dark, -/area/station/security/execution) +/area/station/security/prison) "iOl" = ( -/obj/structure/chair/office{ - dir = 1 +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 }, -/obj/effect/landmark/start/detective, -/turf/open/floor/carpet/red, -/area/station/security/detectives_office) +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva) "iOs" = ( /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood/tile, @@ -26752,6 +27253,24 @@ }, /turf/open/floor/iron/dark, /area/station/security/processing) +"iPZ" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 6 + }, +/obj/machinery/camera/directional/east{ + c_tag = "Medical - Pathology, Hallway, East"; + network = list("ss13","medbay"); + name = "medical camera" + }, +/obj/structure/table/reinforced/rglass, +/obj/machinery/smartfridge/disks, +/obj/item/storage/box/monkeycubes, +/obj/item/toy/figure/virologist{ + pixel_y = 15; + pixel_x = -9 + }, +/turf/open/floor/iron/white, +/area/station/medical/virology) "iQd" = ( /obj/effect/spawner/random/structure/table_or_rack, /obj/effect/spawner/random/maintenance, @@ -26766,9 +27285,16 @@ /turf/open/floor/iron/dark, /area/station/hallway/primary/starboard) "iQy" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/machinery/atmospherics/components/binary/pump/on/cyan/hidden/layer4{ + dir = 8; + name = "Nitrogen Supply" + }, +/turf/open/floor/iron/dark/telecomms, +/area/station/tcommsat/server) "iQE" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -26816,7 +27342,6 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/fore) "iRs" = ( -/obj/machinery/light/directional/east, /obj/structure/sign/poster/official/random/directional/east, /turf/open/floor/iron/dark/side{ dir = 4 @@ -26896,19 +27421,15 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "iSI" = ( -/obj/effect/spawner/random/engineering/tracking_beacon, -/turf/open/floor/wood, -/area/station/commons/vacant_room/office) -"iSM" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 }, -/obj/effect/turf_decal/trimline/blue/line{ - dir = 8 +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 }, -/obj/structure/sign/departments/medbay/alt/directional/east, -/turf/open/floor/iron/dark, -/area/station/hallway/primary/central) +/turf/open/floor/iron/dark/telecomms, +/area/station/tcommsat/server) "iTg" = ( /obj/effect/turf_decal/tile/purple/fourcorners, /obj/structure/chair/sofa/bench, @@ -26931,6 +27452,13 @@ /obj/effect/landmark/start/station_engineer, /turf/open/floor/iron, /area/station/engineering/break_room) +"iUd" = ( +/obj/machinery/door/airlock/external{ + name = "Shipbreaking Storage Room" + }, +/obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/turf/open/floor/iron/dark/textured/airless, +/area/station/maintenance/space_hut) "iUf" = ( /obj/structure/chair/sofa/bench/left{ dir = 4 @@ -27071,6 +27599,17 @@ /obj/effect/spawner/random/entertainment/coin, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"iWL" = ( +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/explab) "iXl" = ( /obj/structure/flora/bush/fullgrass/style_random, /obj/structure/flora/bush/flowers_br/style_random, @@ -27082,8 +27621,9 @@ }, /area/station/commons/fitness/recreation) "iXy" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral/half/contrasted, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, /turf/open/floor/iron/dark/side, /area/station/commons/storage/primary) "iXB" = ( @@ -27163,6 +27703,8 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /obj/structure/disposalpipe/segment, +/obj/machinery/firealarm/directional/east, +/obj/machinery/door/firedoor, /turf/open/floor/plating, /area/station/maintenance/department/cargo) "iYF" = ( @@ -27189,9 +27731,10 @@ /turf/open/floor/plating, /area/station/maintenance/port/fore) "iYP" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/dark, -/area/station/security/prison/garden) +/area/station/security/prison/visit) "iYW" = ( /obj/effect/decal/cleanable/cobweb, /obj/effect/decal/cleanable/dirt, @@ -27229,6 +27772,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/engine, /area/station/ai_monitored/turret_protected/aisat/foyer) +"iZv" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/iron/dark/side{ + dir = 6 + }, +/area/station/commons/fitness) "iZB" = ( /obj/machinery/atmospherics/components/binary/pump/layer4{ dir = 8; @@ -27252,7 +27801,6 @@ /obj/effect/turf_decal/trimline/red/filled/line{ dir = 4 }, -/obj/machinery/light/small/directional/east, /obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/iron/dark, /area/station/security/execution) @@ -27298,8 +27846,10 @@ /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 8 }, -/obj/machinery/shower/directional/east, -/obj/structure/drain, +/obj/item/radio/intercom/directional/west, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, /turf/open/floor/iron/white, /area/station/science/genetics/cloning) "jbA" = ( @@ -27342,7 +27892,7 @@ /obj/effect/turf_decal/trimline/red/filled/line{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ +/obj/structure/chair{ dir = 4 }, /turf/open/floor/iron/dark, @@ -27389,7 +27939,7 @@ "jcG" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/structure/window/reinforced/spawner/directional/south, -/turf/open/floor/iron/dark, +/turf/open/floor/iron/dark/textured, /area/station/commons/fitness/recreation) "jcU" = ( /obj/effect/turf_decal/trimline/brown/filled/line{ @@ -27412,9 +27962,10 @@ /turf/open/floor/wood, /area/station/service/chapel/funeral) "jdg" = ( -/obj/effect/spawner/structure/window/reinforced, -/turf/open/floor/plating, -/area/station/tcommsat/computer) +/obj/effect/turf_decal/tile/yellow/fourcorners, +/obj/machinery/light/small/directional/south, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/aft) "jdh" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -27442,10 +27993,13 @@ /turf/open/floor/iron/white, /area/station/medical/cryo) "jdJ" = ( -/obj/effect/turf_decal/stripes/red/line{ - dir = 10 +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/turf/open/floor/engine, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/white, /area/station/science/xenobiology) "jdV" = ( /obj/structure/disposalpipe/segment{ @@ -27463,7 +28017,10 @@ /obj/effect/turf_decal/trimline/neutral/line{ dir = 8 }, -/obj/machinery/camera/autoname/directional/east, +/obj/machinery/camera/directional/east{ + c_tag = "Hallway, Arrivals - Docking Bay 1, Lower"; + name = "hallway camera" + }, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) "jef" = ( @@ -27479,15 +28036,17 @@ /turf/open/floor/iron/dark, /area/station/engineering/engine_smes) "jeu" = ( -/obj/structure/sign/warning/radiation/directional/east, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/camera/directional/east{ - c_tag = "Maintenance - Science Pass-through, Ordnance, Burn Chamber Release Window"; - name = "maintenance camera"; - network = list("ss13","rd") +/obj/machinery/corral_corner{ + mapping_id = "6" }, -/turf/open/floor/iron, -/area/station/maintenance/department/science) +/obj/machinery/light/neon_lining{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "jev" = ( /obj/machinery/light/small/directional/north, /turf/open/floor/iron/dark/smooth_large, @@ -27506,6 +28065,18 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/stone, /area/station/smithing) +"jeX" = ( +/obj/effect/turf_decal/trimline/brown/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/entry) "jfC" = ( /obj/machinery/duct, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -27518,9 +28089,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/service{ name = "Law Office" @@ -27537,6 +28105,17 @@ dir = 1 }, /area/station/cargo/storage) +"jgk" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/junction/flip{ + dir = 1 + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/commons/fitness) "jgu" = ( /turf/open/floor/wood/tile, /area/station/commons/dorms/room4) @@ -27576,28 +28155,6 @@ }, /turf/open/space/basic, /area/space/nearstation) -"jhj" = ( -/obj/machinery/light/small/directional/south, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) -"jhk" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/liquid_barrier, -/obj/machinery/door/airlock/maintenance, -/obj/effect/mapping_helpers/airlock/access/any/science/xenobio, -/turf/open/floor/plating, -/area/station/science/xenobiology) "jhq" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -27648,13 +28205,6 @@ /obj/item/storage/dice, /turf/open/floor/wood, /area/station/security/prison/rec) -"jic" = ( -/obj/effect/decal/cleanable/cobweb, -/obj/item/radio/intercom/directional/west, -/obj/structure/extinguisher_cabinet/directional/north, -/obj/machinery/vending/wardrobe/law_wardrobe, -/turf/open/floor/wood, -/area/station/service/lawoffice) "jit" = ( /turf/open/floor/carpet/blue, /area/station/medical/psychology) @@ -27662,6 +28212,15 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/restrooms) +"jiE" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "testlab"; + name = "Xenobiology Secure Chamber Blast Door" + }, +/turf/open/floor/plating/reinforced, +/area/station/science/xenobiology) "jiL" = ( /obj/effect/spawner/random/vending/snackvend, /turf/open/floor/iron/dark/side{ @@ -27674,8 +28233,27 @@ /obj/machinery/duct, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"jiW" = ( +/obj/machinery/corral_corner{ + mapping_id = "5" + }, +/obj/machinery/slime_pen_controller{ + mapping_id = "5" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/light/neon_lining{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "jjk" = ( -/obj/machinery/camera/autoname/directional/west, +/obj/machinery/camera/directional/west{ + c_tag = "Science - Ordnance, Office"; + name = "science camera"; + network = list("ss13","rd") + }, /obj/structure/rack, /obj/item/storage/toolbox/mechanical{ pixel_y = 6 @@ -27740,6 +28318,7 @@ dir = 1 }, /obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/access/any/engineering/maintenance, /obj/effect/mapping_helpers/airlock/unres{ @@ -27766,9 +28345,9 @@ /turf/open/floor/iron/dark/smooth_large, /area/station/hallway/primary/central) "jkE" = ( -/obj/item/food/canned/beans, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +/obj/machinery/duct, +/turf/open/floor/plastic, +/area/station/security/prison/safe) "jkF" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -27859,6 +28438,16 @@ dir = 1 }, /area/station/cargo/office) +"jlT" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 4 + }, +/obj/machinery/light/directional/east, +/obj/machinery/computer/nanite_chamber_control{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/science/auxlab) "jmc" = ( /obj/effect/turf_decal/trimline/yellow/filled/line, /obj/effect/turf_decal/trimline/yellow/line{ @@ -28014,15 +28603,9 @@ /turf/open/floor/iron/dark, /area/station/engineering/atmos/hfr_room) "jpQ" = ( -/obj/item/radio/intercom/directional/north, -/obj/structure/cable, -/obj/effect/turf_decal/tile/yellow{ +/turf/open/floor/iron/dark/side{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/turf/open/floor/iron/dark, /area/station/tcommsat/computer) "jpU" = ( /obj/effect/turf_decal/trimline/yellow/filled/line, @@ -28082,6 +28665,11 @@ }, /turf/open/floor/carpet/royalblue, /area/station/command/heads_quarters/captain) +"jra" = ( +/obj/structure/cable, +/obj/machinery/power/rtg, +/turf/open/floor/plating/airless, +/area/space/nearstation) "jrr" = ( /obj/structure/chair{ dir = 4 @@ -28140,6 +28728,11 @@ /obj/machinery/duct, /turf/open/floor/iron/showroomfloor, /area/station/service/abandoned_gambling_den) +"jrO" = ( +/obj/machinery/light/small/directional/north, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/department/science) "jsb" = ( /obj/structure/table/wood, /obj/item/reagent_containers/cup/glass/shaker, @@ -28152,7 +28745,7 @@ /area/station/maintenance/solars/starboard/fore) "jsw" = ( /obj/machinery/camera/directional/east{ - c_tag = "Security - Visitation Observation"; + c_tag = "Security - Visitation, Observation Room"; name = "security camera" }, /obj/structure/table, @@ -28190,17 +28783,22 @@ }, /turf/open/floor/iron/dark, /area/station/security/execution/transfer) +"jta" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/commons/fitness) "jtl" = ( /obj/machinery/light/directional/east, /obj/structure/bookcase/random/religion, /turf/open/floor/wood, /area/station/service/library) -"jto" = ( -/obj/effect/spawner/random/structure/table_or_rack, -/obj/item/storage/box/lights/mixed, -/obj/item/toy/plush/slimeplushie, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) "jtv" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -28248,10 +28846,11 @@ /turf/open/floor/iron/dark, /area/station/engineering/atmos/storage) "juU" = ( -/obj/structure/chair/sofa/left/maroon{ - dir = 4 - }, -/turf/open/floor/iron, +/obj/structure/easel, +/obj/item/canvas/twentythree_twentythree, +/obj/item/canvas/twentythree_twentythree, +/obj/item/canvas/twentythree_nineteen, +/turf/open/floor/iron/dark/side, /area/station/commons/fitness/recreation) "jvd" = ( /obj/effect/turf_decal/stripes/line{ @@ -28261,13 +28860,12 @@ dir = 8 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, /obj/machinery/door/airlock/external{ name = "Escape Pod Three" }, /obj/effect/landmark/navigate_destination/dockescpod3, /turf/open/floor/iron/dark/textured_large, -/area/station/maintenance/department/security) +/area/station/security/office) "jve" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, /obj/effect/turf_decal/trimline/red/filled/warning, @@ -28286,6 +28884,12 @@ "jvu" = ( /turf/closed/wall, /area/station/commons/fitness) +"jvv" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "jvA" = ( /obj/machinery/power/port_gen/pacman/pre_loaded, /turf/open/floor/plating, @@ -28298,7 +28902,6 @@ /turf/open/floor/iron, /area/station/commons/fitness/recreation) "jwc" = ( -/obj/structure/extinguisher_cabinet/directional/east, /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 4 }, @@ -28306,6 +28909,7 @@ dir = 8 }, /obj/machinery/light/directional/east, +/obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/iron/dark, /area/station/hallway/primary/central) "jwf" = ( @@ -28393,14 +28997,21 @@ /turf/open/floor/plating, /area/station/maintenance/port/aft) "jwZ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 +/obj/machinery/corral_corner{ + mapping_id = "1" }, -/obj/structure/sign/warning/secure_area/directional/south, -/turf/open/floor/iron, -/area/station/maintenance/department/science) +/obj/machinery/light/neon_lining{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "jxd" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 }, @@ -28435,14 +29046,11 @@ }, /area/station/service/chapel) "jxl" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, -/obj/structure/lattice, -/turf/open/space/basic, -/area/space/nearstation) -"jxm" = ( -/obj/machinery/light/floor/has_bulb, +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 6 + }, /turf/open/floor/engine, -/area/station/science/xenobiology) +/area/station/maintenance/disposal/incinerator) "jxy" = ( /turf/closed/wall, /area/station/maintenance/starboard/fore) @@ -28478,11 +29086,19 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/fore) "jyp" = ( -/obj/machinery/firealarm/directional/north, -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/trash/garbage, -/turf/open/floor/iron, -/area/station/maintenance/starboard/aft) +/obj/machinery/firealarm/directional/south{ + pixel_x = -5 + }, +/obj/machinery/button/door/directional/south{ + id = "nt_rep_kitchen_door"; + name = "Kitchen Bolt Control"; + pixel_x = 5; + normaldoorcontrol = 1; + specialfunctions = 4; + req_access = list("nt_rep") + }, +/turf/open/floor/iron/kitchen, +/area/station/command/heads_quarters/nt_rep) "jyz" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -28546,9 +29162,8 @@ /area/station/hallway/primary/fore) "jzo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, /turf/open/floor/iron/dark/smooth_large, -/area/station/maintenance/department/security) +/area/station/security/office) "jzq" = ( /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron/dark/corner, @@ -28561,19 +29176,20 @@ /turf/open/floor/iron, /area/station/engineering/break_room) "jzQ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/obj/structure/chair/stool/directional/east, -/obj/effect/landmark/start/geneticist, /obj/machinery/duct, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, /turf/open/floor/iron/white, /area/station/science/genetics/cloning) "jAb" = ( /obj/effect/turf_decal/trimline/purple/filled/line, -/obj/machinery/firealarm/directional/south, +/obj/machinery/firealarm/directional/south{ + pixel_x = 5 + }, /obj/machinery/light_switch/directional/south{ - pixel_x = -8 + pixel_x = -5 }, /turf/open/floor/iron/white, /area/station/science/research) @@ -28647,6 +29263,12 @@ }, /turf/open/floor/iron, /area/station/service/hydroponics) +"jCu" = ( +/obj/effect/spawner/random/structure/table_or_rack, +/obj/item/storage/box/lights/mixed, +/obj/item/toy/plush/slimeplushie, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "jCx" = ( /obj/effect/turf_decal/trimline/green/filled/line, /obj/effect/turf_decal/trimline/green/line{ @@ -28657,7 +29279,9 @@ /turf/open/floor/iron/dark, /area/station/hallway/primary/starboard) "jCy" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/heater, +/obj/machinery/atmospherics/components/unary/thermomachine/heater{ + dir = 8 + }, /turf/open/floor/iron/dark, /area/station/engineering/atmos/pumproom) "jCA" = ( @@ -28782,6 +29406,9 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /obj/effect/mapping_helpers/broken_floor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/iron, /area/station/maintenance/port/fore) "jDD" = ( @@ -28810,6 +29437,8 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, /obj/machinery/door/airlock/engineering/glass{ name = "Server Room" }, @@ -28819,6 +29448,21 @@ }, /turf/open/floor/iron/dark/textured_large, /area/station/tcommsat/computer) +"jEe" = ( +/obj/structure/sign/warning/biohazard/directional/west, +/obj/structure/table/reinforced/rglass, +/obj/machinery/reagentgrinder{ + pixel_y = 8 + }, +/obj/item/storage/box/beakers{ + pixel_x = 2; + pixel_y = 7 + }, +/obj/item/storage/box/syringes{ + pixel_y = 5 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "jEi" = ( /obj/effect/spawner/random/structure/table_or_rack, /obj/effect/spawner/random/maintenance/two, @@ -28896,7 +29540,9 @@ "jFv" = ( /obj/machinery/light/small/directional/north, /obj/machinery/firealarm/directional/north, -/turf/open/floor/iron/dark, +/turf/open/floor/iron/dark/side{ + dir = 9 + }, /area/station/commons/fitness) "jFw" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ @@ -28904,19 +29550,13 @@ }, /obj/structure/extinguisher_cabinet/directional/east, /obj/structure/table/reinforced/rglass, -/obj/item/crowbar/red, /obj/item/reagent_containers/cup/beaker{ pixel_x = 8; pixel_y = 2 }, /obj/item/reagent_containers/dropper, /obj/item/flashlight/pen, -/obj/item/radio/headset/headset_medsci, /obj/item/infuser_book, -/obj/item/toy/figure/geneticist{ - pixel_y = 11; - pixel_x = -11 - }, /turf/open/floor/iron/white, /area/station/science/genetics) "jFx" = ( @@ -28961,10 +29601,7 @@ /turf/open/floor/iron, /area/station/engineering/main) "jGm" = ( -/obj/effect/landmark/start/atmospheric_technician, -/obj/machinery/atmospherics/pipe/smart/simple/pink/visible{ - dir = 10 - }, +/obj/effect/spawner/random/trash/cigbutt, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) "jGs" = ( @@ -28983,26 +29620,14 @@ /obj/structure/extinguisher_cabinet/directional/south, /turf/open/floor/iron/dark/side, /area/station/security/interrogation) -"jGu" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) -"jGx" = ( -/obj/machinery/plumbing/ooze_sucker{ - mapping_id = "3"; - dir = 1 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "jGA" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 1 }, /obj/effect/turf_decal/trimline/neutral/line, /obj/machinery/camera/directional/north{ - c_tag = "Arrivals - Bay 1, Upper Hallway" + c_tag = "Hallway, Arrivals - Docking Bay 1, Upper Hallway"; + name = "hallway camera" }, /obj/structure/extinguisher_cabinet/directional/north, /turf/open/floor/iron/dark, @@ -29031,9 +29656,11 @@ /obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 1 }, -/obj/machinery/firealarm/directional/south, +/obj/machinery/firealarm/directional/south{ + pixel_x = -5 + }, /obj/machinery/light_switch/directional/south{ - pixel_x = -8 + pixel_x = 5 }, /obj/structure/closet/crate/trashcart/laundry, /obj/item/clothing/under/rank/prisoner/skirt{ @@ -29063,7 +29690,7 @@ /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer2{ dir = 10 }, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ dir = 4 }, /turf/open/space/basic, @@ -29084,21 +29711,29 @@ }, /area/station/hallway/primary/aft) "jHm" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/white, +/area/station/medical/office) +"jHn" = ( /obj/effect/turf_decal/trimline/green/filled/line, /obj/effect/turf_decal/trimline/green/line{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 +/obj/machinery/light/directional/south, +/obj/structure/sign/directions/engineering/directional/south{ + pixel_y = -23 }, -/turf/open/floor/iron/dark, -/area/station/hallway/primary/port) -"jHn" = ( -/obj/effect/turf_decal/trimline/green/filled/line, -/obj/effect/turf_decal/trimline/green/line{ +/obj/structure/sign/directions/evac/directional/south{ + dir = 4 + }, +/obj/structure/sign/directions/security/directional/south{ + pixel_y = -41; + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 }, -/obj/machinery/light/directional/south, /turf/open/floor/iron/dark, /area/station/hallway/primary/port) "jHN" = ( @@ -29177,13 +29812,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /obj/machinery/duct, +/obj/structure/disposalpipe/segment, /turf/open/floor/iron/large, /area/station/commons/dorms) "jJq" = ( +/obj/effect/turf_decal/trimline/purple/filled/corner, /obj/effect/turf_decal/box, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, /obj/machinery/duct, /obj/machinery/holopad, /turf/open/floor/iron/white/smooth_large, @@ -29235,19 +29869,10 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/security/brig) -"jKn" = ( -/obj/machinery/camera/autoname/directional/south, -/obj/machinery/light/small/directional/south, -/obj/structure/extinguisher_cabinet/directional/south, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "jKu" = ( /obj/machinery/shower/directional/east, /obj/structure/drain, -/turf/open/floor/iron/textured_large, +/turf/open/floor/iron/showroomfloor, /area/station/engineering/main) "jKA" = ( /obj/effect/turf_decal/tile/neutral/half/contrasted{ @@ -29265,6 +29890,10 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron, /area/station/engineering/engine_smes) +"jKC" = ( +/obj/machinery/atmospherics/components/tank/oxygen, +/turf/open/floor/iron, +/area/station/science/ordnance) "jKE" = ( /obj/structure/chair{ dir = 8 @@ -29322,7 +29951,7 @@ /obj/structure/cable, /obj/machinery/door/poddoor/shutters{ id = "armory_window_shutters"; - name = "Armory Window Shutter" + name = "Armory Window Shutters" }, /turf/open/floor/plating, /area/station/ai_monitored/security/armory) @@ -29389,6 +30018,24 @@ /obj/structure/extinguisher_cabinet/directional/south, /turf/open/floor/iron/dark, /area/station/hallway/primary/fore) +"jMV" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/corporate{ + id_tag = "nt_rep_office_door"; + name = "Nanotrasen Representative's Office" + }, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, +/turf/open/floor/iron/dark/textured, +/area/station/command/heads_quarters/nt_rep) "jNa" = ( /obj/machinery/portable_atmospherics/canister/air, /turf/open/floor/plating, @@ -29413,15 +30060,10 @@ /turf/open/floor/iron/white, /area/station/medical/medbay/aft) "jNm" = ( -/obj/machinery/firealarm/directional/south{ - pixel_x = -5 - }, -/obj/machinery/light_switch/directional/south{ - pixel_x = 5 - }, -/obj/machinery/suit_storage_unit/standard_unit, -/turf/open/floor/iron/white/textured, -/area/station/science/auxlab) +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/security/brig) "jNJ" = ( /obj/effect/turf_decal/trimline/red/filled/warning{ dir = 8 @@ -29431,6 +30073,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/security/execution) +"jNK" = ( +/obj/effect/turf_decal/stripes/red/line{ + dir = 10 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "jNL" = ( /obj/effect/turf_decal/trimline/purple/filled/line, /turf/open/floor/iron/dark, @@ -29445,11 +30093,16 @@ /turf/open/floor/iron/dark, /area/station/security/warden) "jOc" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 }, -/turf/open/floor/wood, -/area/station/commons/vacant_room/office) +/obj/machinery/light/small/directional/north, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/wood/tile, +/area/station/command/heads_quarters/nt_rep) "jOi" = ( /obj/structure/chair/wood{ dir = 4 @@ -29457,9 +30110,15 @@ /turf/open/floor/wood, /area/station/service/abandoned_gambling_den) "jOm" = ( +/obj/structure/cable, /obj/machinery/telecomms/server/presets/medical, /turf/open/floor/circuit/green/telecomms, /area/station/tcommsat/server) +"jOq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "jOr" = ( /obj/machinery/airalarm/directional/east, /obj/structure/chair/stool/directional/north, @@ -29495,9 +30154,10 @@ /obj/effect/turf_decal/siding/wood{ dir = 8 }, -/obj/machinery/keycard_auth/directional/east, -/obj/structure/bed/dogbed/lia, -/mob/living/basic/carp/pet/lia, +/obj/item/storage/secure/safe/hos{ + pixel_x = 32 + }, +/obj/structure/closet/secure_closet/hos, /turf/open/floor/wood, /area/station/command/heads_quarters/hos) "jOZ" = ( @@ -29515,6 +30175,10 @@ }, /obj/machinery/light/directional/west, /obj/item/radio/intercom/directional/west, +/obj/structure/chair{ + dir = 4 + }, +/obj/effect/landmark/start/assistant, /turf/open/floor/iron/dark/side{ dir = 8 }, @@ -29525,15 +30189,12 @@ /turf/open/floor/wood, /area/station/service/library/lounge) "jPt" = ( -/obj/effect/turf_decal/siding/wideplating_new/dark{ +/obj/effect/turf_decal/trimline/purple/filled/line{ dir = 8 }, -/obj/effect/turf_decal/siding/wideplating_new/dark{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron/dark/telecomms, -/area/station/tcommsat/server) +/obj/machinery/status_display/evac/directional/west, +/turf/open/floor/iron/white, +/area/station/science/research) "jPy" = ( /obj/structure/noticeboard/directional/west, /obj/structure/table/wood, @@ -29547,6 +30208,13 @@ /obj/machinery/vending/boozeomat/all_access, /turf/open/floor/wood, /area/station/service/abandoned_gambling_den) +"jPW" = ( +/obj/structure/toilet{ + pixel_y = 8 + }, +/obj/effect/landmark/start/nanotrasen_representative, +/turf/open/floor/iron/showroomfloor, +/area/station/command/heads_quarters/nt_rep) "jPZ" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 8 @@ -29569,10 +30237,10 @@ /turf/open/floor/iron/dark, /area/station/security/processing) "jQr" = ( -/obj/effect/turf_decal/trimline/blue/line{ +/obj/effect/turf_decal/trimline/yellow/line{ dir = 1 }, -/obj/effect/turf_decal/trimline/blue/filled/line, +/obj/effect/turf_decal/trimline/yellow/filled/line, /obj/machinery/light/directional/south, /obj/structure/extinguisher_cabinet/directional/south, /turf/open/floor/iron/dark, @@ -29637,10 +30305,7 @@ /area/station/maintenance/central) "jSu" = ( /obj/effect/turf_decal/tile/yellow/fourcorners, -/obj/machinery/light/small/directional/west, -/obj/machinery/camera/directional/west{ - c_tag = "Aft Primary Hallway North" - }, +/obj/machinery/light/directional/west, /obj/structure/extinguisher_cabinet/directional/west, /obj/structure/chair/sofa/bench/right{ dir = 4 @@ -29648,11 +30313,23 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron/dark, /area/station/hallway/primary/aft) -"jSC" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/duct, +"jSE" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/door/airlock/grunge{ + name = "Kill Chamber Freezer Unit" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 8 + }, /turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +/area/station/science/xenobiology) "jSG" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 1 @@ -29692,6 +30369,13 @@ /obj/effect/spawner/random/structure/closet_maintenance, /turf/open/floor/plating, /area/station/commons/vacant_room/commissary) +"jTj" = ( +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/drinks/beer{ + dir = 1 + }, +/turf/open/floor/iron/kitchen, +/area/station/command/heads_quarters/nt_rep) "jTs" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -29702,11 +30386,9 @@ /turf/open/floor/iron, /area/station/cargo/storage) "jTy" = ( -/obj/machinery/airalarm/directional/north, -/turf/open/floor/iron/dark/side{ - dir = 1 - }, -/area/station/commons/dorms) +/obj/item/radio/intercom/directional/north, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/nt_rep) "jTS" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ @@ -29720,7 +30402,7 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, -/turf/open/floor/iron/textured, +/turf/open/floor/iron/dark/textured, /area/station/science/ordnance/storage) "jUa" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -29744,6 +30426,12 @@ /obj/machinery/station_map/engineering/directional/north, /turf/open/floor/iron, /area/station/engineering/main) +"jUj" = ( +/obj/effect/spawner/random/structure/table_or_rack, +/obj/item/storage/box/lights/mixed, +/obj/effect/spawner/random/entertainment/plushie, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "jUk" = ( /obj/effect/landmark/blobstart, /turf/open/floor/glass/reinforced, @@ -29758,19 +30446,12 @@ /turf/open/floor/iron/dark, /area/station/security/brig) "jUt" = ( -/obj/machinery/camera/autoname/directional/south, -/obj/machinery/computer/security/telescreen{ - desc = "Used for watching Prison Wing holding areas."; - name = "Prison Monitor"; - network = list("prison"); - pixel_y = -30; - dir = 1 - }, -/obj/machinery/computer/warrant{ - dir = 1 +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 }, -/turf/open/floor/wood, -/area/station/service/lawoffice) +/turf/open/floor/iron/dark, +/area/station/security/detectives_office) "jUC" = ( /obj/effect/turf_decal/siding/thinplating/corner, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -29792,6 +30473,10 @@ }, /turf/open/floor/iron/dark/textured, /area/station/commons/storage/primary) +"jUX" = ( +/obj/machinery/light/directional/east, +/turf/open/floor/catwalk_floor/iron, +/area/station/maintenance/department/science) "jVd" = ( /obj/machinery/airalarm/directional/west, /obj/structure/rack, @@ -29820,7 +30505,6 @@ /area/station/maintenance/port/aft) "jVE" = ( /obj/structure/table/wood/fancy/black, -/obj/item/flashlight/lamp, /turf/open/floor/wood/tile, /area/station/service/chapel/office) "jVP" = ( @@ -29850,12 +30534,6 @@ }, /turf/open/floor/iron/dark, /area/station/hallway/primary/fore) -"jWq" = ( -/obj/machinery/light/neon_lining{ - dir = 4 - }, -/turf/open/floor/stone, -/area/station/science/xenobiology) "jWA" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, @@ -29951,28 +30629,10 @@ id_tag = "bs_bolt"; name = "Blueshield's Office" }, -/obj/effect/mapping_helpers/airlock/access/all/admin/general, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, /turf/open/floor/iron/dark/textured, /area/station/command/heads_quarters/blueshield) -"jXV" = ( -/obj/structure/chair{ - dir = 1 - }, -/obj/effect/landmark/start/scientist, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) -"jYd" = ( -/obj/machinery/corral_corner{ - mapping_id = "2" - }, -/obj/machinery/light/neon_lining{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "jYg" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -29992,9 +30652,8 @@ /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 8 }, -/obj/structure/cable, -/obj/machinery/light/directional/west, /obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, /obj/structure/rack, /obj/item/integrated_circuit/loaded/hello_world{ pixel_x = 7 @@ -30052,11 +30711,11 @@ }, /area/station/engineering/break_room) "jYT" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/white, -/area/station/medical/chemistry) +/area/station/medical/pharmacy) "jZa" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 5 @@ -30099,16 +30758,13 @@ dir = 8 }, /area/station/engineering/gravity_generator) -"jZt" = ( -/obj/machinery/light/small/directional/south, -/obj/machinery/firealarm/directional/south{ - pixel_x = -5 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) +"jZS" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron, +/area/station/maintenance/department/science) "jZY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -30127,6 +30783,21 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/disposal) +"kaA" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 4 + }, +/obj/structure/table/glass, +/obj/item/nanite_remote{ + pixel_y = 6; + pixel_x = 5 + }, +/obj/item/nanite_scanner{ + pixel_x = -4; + pixel_y = -2 + }, +/turf/open/floor/iron/white, +/area/station/science/auxlab) "kaD" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -30176,7 +30847,6 @@ /obj/effect/turf_decal/tile/bar/opposingcorners{ dir = 1 }, -/obj/machinery/camera/autoname/directional/north, /obj/machinery/vending/wardrobe/chef_wardrobe, /turf/open/floor/iron/kitchen, /area/station/service/kitchen) @@ -30227,6 +30897,7 @@ /area/station/engineering/atmos) "kcr" = ( /obj/machinery/light/small/directional/east, +/obj/item/radio/intercom/prison/directional/east, /turf/open/floor/iron/dark/side{ dir = 4 }, @@ -30235,18 +30906,6 @@ /obj/structure/cable, /turf/open/floor/carpet/black, /area/station/security/bitden) -"kcN" = ( -/obj/effect/turf_decal/tile/green/half/contrasted{ - dir = 1 - }, -/obj/structure/table, -/obj/item/chicken_feed{ - pixel_y = 10; - pixel_x = -5 - }, -/obj/machinery/feed_machine, -/turf/open/floor/iron/dark/side, -/area/station/service/hydroponics) "kde" = ( /obj/machinery/atmospherics/components/tank/air{ dir = 4 @@ -30257,7 +30916,9 @@ /obj/machinery/computer/holodeck{ dir = 4 }, -/turf/open/floor/iron/dark, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, /area/station/commons/fitness) "kdy" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ @@ -30269,7 +30930,10 @@ }, /area/station/engineering/break_room) "kdC" = ( -/obj/machinery/camera/autoname/directional/west, +/obj/machinery/camera/directional/west{ + c_tag = "Commons - Restroom, West"; + name = "commons camera" + }, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/restrooms) "kdH" = ( @@ -30309,6 +30973,12 @@ }, /turf/open/floor/iron/white, /area/station/medical/virology) +"kdO" = ( +/obj/structure/table, +/obj/effect/spawner/random/engineering/tool, +/obj/item/stack/cable_coil/five, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "kdZ" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 4 @@ -30475,7 +31145,9 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/obj/effect/spawner/random/trash/mess, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/iron/checker, /area/station/maintenance/port/fore) "kgH" = ( @@ -30489,13 +31161,15 @@ /turf/open/floor/iron/dark, /area/station/engineering/atmos) "kgO" = ( -/obj/effect/turf_decal/trimline/dark_blue/filled/line{ - dir = 8 +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, +/obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/turf/open/floor/iron/dark, +/turf/open/floor/iron/dark/textured, /area/station/ai_monitored/turret_protected/ai_upload) "kgS" = ( /obj/machinery/light/small/built/directional/south, @@ -30513,13 +31187,16 @@ /turf/open/floor/plating, /area/station/cargo/storage) "kha" = ( -/obj/effect/turf_decal/trimline/neutral/line, -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/effect/turf_decal/trimline/red/filled/line{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/effect/turf_decal/trimline/red/line, +/obj/machinery/camera/directional/north{ + c_tag = "Hallway, Arrivals - Checkpoint, South"; + name = "hallway camera" + }, /turf/open/floor/iron/dark, -/area/station/hallway/primary/port) +/area/station/hallway/secondary/entry) "khi" = ( /obj/structure/sign/painting/library{ pixel_y = 32 @@ -30550,6 +31227,16 @@ /obj/effect/spawner/random/structure/crate, /turf/open/floor/iron/dark/corner, /area/station/maintenance/starboard/aft) +"khO" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/chair/office{ + dir = 4 + }, +/obj/effect/landmark/start/scientist, +/turf/open/floor/iron/white, +/area/station/science/auxlab) "khZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -30588,7 +31275,7 @@ /area/station/maintenance/starboard/fore) "kiv" = ( /obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible, +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible, /turf/open/space/basic, /area/space/nearstation) "kix" = ( @@ -30697,23 +31384,37 @@ /obj/machinery/light_switch/directional/west{ pixel_y = 5 }, +/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, /turf/open/floor/iron/dark, /area/station/engineering/atmos/pumproom) "kkb" = ( -/obj/structure/table/wood, -/obj/item/storage/box/cups, -/turf/open/floor/wood, -/area/station/commons/vacant_room/office) +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/corporate{ + name = "Nanotrasen Representative's Office" + }, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, +/turf/open/floor/iron/dark/textured, +/area/station/command/heads_quarters/nt_rep) "kkg" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/obj/structure/table/wood, -/obj/item/paper_bin, -/obj/item/folder, -/obj/item/pen, +/obj/structure/table/wood/fancy/green, +/obj/item/storage/fancy/cigarettes/cigars/cohiba{ + pixel_y = 6 + }, +/obj/item/storage/fancy/cigarettes/cigars/cohiba{ + pixel_y = 10 + }, /turf/open/floor/carpet/green, -/area/station/commons/vacant_room/office) +/area/station/command/heads_quarters/nt_rep) "kkp" = ( /obj/effect/turf_decal/tile/purple/fourcorners, /obj/machinery/light/small/directional/west, @@ -30758,8 +31459,11 @@ /turf/open/floor/iron/dark, /area/station/security/checkpoint/escape) "kkC" = ( -/obj/effect/turf_decal/tile/dark_blue/fourcorners, -/obj/structure/table/glass, +/obj/effect/turf_decal/trimline/dark_blue/filled/line{ + dir = 5 + }, +/obj/machinery/light/directional/north, +/obj/item/radio/intercom/directional/north, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) "kkH" = ( @@ -30778,8 +31482,8 @@ /area/station/science/research) "klo" = ( /obj/structure/extinguisher_cabinet/directional/west, -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ - dir = 6 +/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ + dir = 8 }, /turf/open/floor/iron/dark, /area/station/engineering/atmos/pumproom) @@ -30804,6 +31508,18 @@ }, /turf/open/space/basic, /area/space) +"klF" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/firealarm/directional/west, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/station/maintenance/port) "klM" = ( /obj/effect/turf_decal/bot, /obj/structure/fireaxecabinet/directional/north, @@ -30832,18 +31548,18 @@ "kmq" = ( /turf/open/floor/engine/vacuum, /area/station/science/ordnance/burnchamber) -"kmJ" = ( -/obj/effect/turf_decal/stripes/end, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/machinery/shower/directional/south, -/obj/structure/fluff{ - desc = "What, you think the water just magically soaks into the metallic flooring?"; - icon = 'icons/obj/lavaland/survival_pod.dmi'; - icon_state = "fan_tiny"; - name = "shower drain" +"kmM" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 }, -/turf/open/floor/iron/white/textured, -/area/station/security/medical) +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/science/xenobiology) "kmO" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 9 @@ -30914,22 +31630,6 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron/dark, /area/station/hallway/primary/central) -"knW" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, -/obj/structure/cable, -/obj/structure/liquid_barrier, -/obj/machinery/door/airlock/hatch{ - name = "Cytology Pen" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, -/turf/open/floor/iron/dark/textured, -/area/station/science/xenobiology) "knX" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible, @@ -31045,6 +31745,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/wood, /area/station/command/heads_quarters/blueshield) +"kpC" = ( +/obj/structure/cable, +/turf/open/floor/catwalk_floor, +/area/station/maintenance/department/security/brig) "kpE" = ( /obj/effect/spawner/random/trash/graffiti, /turf/open/floor/plating, @@ -31064,6 +31768,7 @@ /turf/open/floor/wood/tile, /area/station/service/chapel/office) "kpW" = ( +/obj/machinery/light/small/directional/south, /obj/item/radio/intercom/prison/directional/south, /turf/open/floor/iron/dark, /area/station/security/prison) @@ -31071,6 +31776,7 @@ /obj/effect/turf_decal/trimline/red/filled/line{ dir = 8 }, +/obj/machinery/light/small/directional/west, /obj/item/radio/intercom/directional/west, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -31140,17 +31846,28 @@ /turf/open/floor/circuit/telecomms/server, /area/station/science/server) "krE" = ( -/obj/effect/turf_decal/tile/purple/fourcorners, -/obj/machinery/light/directional/east, -/obj/machinery/nanite_program_hub, +/obj/machinery/atmospherics/components/binary/pump{ + name = "Director"; + dir = 1 + }, /turf/open/floor/iron/white, -/area/station/science/research) +/area/station/science/xenobiology) "krH" = ( /obj/effect/turf_decal/siding/thinplating/corner{ dir = 4 }, /turf/open/floor/iron, /area/station/engineering/main) +"krJ" = ( +/obj/machinery/camera/directional/north{ + c_tag = "Engineering - Shipbreaking, Storage Room"; + name = "engineering camera" + }, +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/iron/dark/side/airless{ + dir = 1 + }, +/area/station/maintenance/space_hut) "krQ" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 9 @@ -31176,7 +31893,6 @@ /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 }, -/obj/machinery/status_display/ai/directional/north, /turf/open/floor/iron, /area/station/engineering/storage) "krY" = ( @@ -31218,17 +31934,17 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/medical/glass{ - name = "Medical West Side Entrance" + name = "Medical Staff Entrance" }, /obj/effect/mapping_helpers/airlock/access/all/medical/general, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, /obj/effect/mapping_helpers/airlock/unres{ dir = 4 }, @@ -31281,10 +31997,10 @@ /obj/effect/turf_decal/trimline/red/filled/line{ dir = 6 }, +/obj/item/radio/intercom/directional/south, /obj/structure/chair{ - dir = 1 + dir = 8 }, -/obj/item/radio/intercom/directional/south, /turf/open/floor/iron/dark, /area/station/security/holding_cell) "kuk" = ( @@ -31304,6 +32020,7 @@ /area/station/ai_monitored/turret_protected/ai) "kun" = ( /obj/machinery/camera/autoname/directional/west, +/obj/structure/closet/emcloset/wall/directional/west, /turf/open/floor/iron/dark/smooth_large, /area/station/engineering/main) "kuz" = ( @@ -31324,12 +32041,12 @@ /turf/open/floor/iron/white, /area/station/medical/surgery) "kvh" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, /obj/effect/turf_decal/trimline/red/filled/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) "kvi" = ( @@ -31343,19 +32060,21 @@ /obj/effect/turf_decal/trimline/red/filled/line{ dir = 10 }, +/obj/machinery/light/small/directional/west, /obj/machinery/button/door/directional/west{ id = "armory_side_access"; name = "Armory Side Access"; - pixel_y = 10; + pixel_y = 6; req_access = list("armory") }, -/obj/machinery/light/small/directional/west, -/obj/machinery/vending/wardrobe/sec_wardrobe, /obj/machinery/button/door/directional/west{ - id = "sec_lockers"; + id = "sec_locker_shutters"; name = "Locker Room Shutters Control"; - req_access = list("security") + req_access = list("security"); + pixel_y = -6 }, +/obj/machinery/airalarm/directional/south, +/obj/machinery/vending/wardrobe/sec_wardrobe, /turf/open/floor/iron/dark, /area/station/security/lockers) "kvC" = ( @@ -31363,7 +32082,7 @@ /obj/effect/turf_decal/trimline/red/line{ dir = 1 }, -/obj/machinery/bluespace_vendor/directional/south, +/obj/machinery/atm/directional/south, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) "kvL" = ( @@ -31428,6 +32147,14 @@ }, /turf/open/floor/plating, /area/station/command/heads_quarters/cmo) +"kwI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/catwalk_floor, +/area/station/maintenance/starboard/fore) "kwK" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -31439,7 +32166,7 @@ /obj/effect/mapping_helpers/airlock/access/any/science/general, /obj/effect/mapping_helpers/airlock/access/any/supply/general, /turf/open/floor/plating, -/area/station/maintenance/department/science) +/area/station/smithing) "kwV" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 8 @@ -31457,12 +32184,9 @@ /turf/open/floor/iron/dark, /area/station/security/prison) "kxi" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, +/obj/structure/table/wood, +/obj/item/camera_film, +/obj/item/camera/detective, /turf/open/floor/wood, /area/station/security/detectives_office) "kxo" = ( @@ -31481,6 +32205,7 @@ /turf/open/floor/iron/dark, /area/station/security/holding_cell) "kxu" = ( +/obj/machinery/airalarm/directional/south, /obj/machinery/composters, /turf/open/floor/iron/dark, /area/station/security/prison/garden) @@ -31564,6 +32289,21 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) +"kzb" = ( +/obj/machinery/corral_corner{ + mapping_id = "6" + }, +/obj/machinery/slime_pen_controller{ + mapping_id = "6" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/machinery/light/neon_lining{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "kzf" = ( /obj/structure/window/reinforced/tinted/spawner/directional/north, /obj/machinery/computer/rdconsole, @@ -31577,7 +32317,7 @@ /turf/open/floor/iron/dark, /area/station/security/bitden) "kzv" = ( -/obj/machinery/atmospherics/components/trinary/mixer/flipped, +/obj/machinery/atmospherics/components/tank, /turf/open/floor/iron, /area/station/science/ordnance) "kzJ" = ( @@ -31611,17 +32351,6 @@ /obj/structure/closet/emcloset, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"kAc" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 4 - }, -/obj/machinery/door/airlock/external{ - name = "Labor Camp Shuttle Airlock"; - req_access = list("brig") - }, -/obj/effect/mapping_helpers/airlock/access/all/security/brig, -/turf/open/floor/iron/dark/textured_large, -/area/station/security/processing) "kAo" = ( /obj/effect/turf_decal/trimline/red/warning{ dir = 8 @@ -31729,15 +32458,8 @@ /turf/open/floor/iron, /area/station/cargo/warehouse) "kCD" = ( -/obj/effect/turf_decal/trimline/red/corner{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 5 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, +/obj/effect/turf_decal/tile/red/fourcorners, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) "kCF" = ( @@ -31745,9 +32467,6 @@ /turf/open/floor/plating, /area/station/maintenance/port/fore) "kCR" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, /obj/structure/chair{ dir = 1 }, @@ -31811,12 +32530,11 @@ /area/station/hallway/secondary/service) "kDG" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible, +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible, /turf/open/floor/plating, /area/station/engineering/atmos) "kDS" = ( -/obj/machinery/airalarm/directional/south, -/obj/machinery/photocopier, +/obj/machinery/vending/wardrobe/law_wardrobe, /turf/open/floor/wood, /area/station/service/lawoffice) "kEl" = ( @@ -31842,12 +32560,6 @@ /obj/structure/table, /turf/open/floor/iron/dark, /area/station/commons/vacant_room/commissary) -"kEN" = ( -/obj/machinery/plumbing/ooze_sucker{ - mapping_id = "5" - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "kEX" = ( /obj/effect/turf_decal/tile/dark_blue/fourcorners, /obj/effect/turf_decal/plaque{ @@ -31881,11 +32593,6 @@ /obj/effect/mapping_helpers/apc/cell_5k, /turf/open/floor/iron, /area/station/engineering/gravity_generator) -"kFK" = ( -/obj/machinery/power/apc/auto_name/directional/south, -/obj/structure/cable, -/turf/open/floor/iron/dark/side, -/area/station/security/prison/work) "kFM" = ( /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=Stbd"; @@ -31947,25 +32654,28 @@ }, /turf/open/floor/iron/dark/textured_large, /area/station/cargo/miningoffice) -"kHg" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 +"kGT" = ( +/obj/machinery/light/small/directional/south, +/obj/machinery/camera/directional/south{ + c_tag = "Command - Nanotrasen Representative's Office, Kitchen"; + name = "command camera" }, +/obj/machinery/vending/boozeomat, +/turf/open/floor/iron/kitchen, +/area/station/command/heads_quarters/nt_rep) +"kHg" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/white, /area/station/medical/office) "kHh" = ( /obj/effect/turf_decal/trimline/yellow/filled/warning{ dir = 1 }, +/obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/storage) -"kHw" = ( -/obj/item/paper/crumpled, -/turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) "kHL" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -31981,11 +32691,10 @@ /turf/open/floor/iron/dark, /area/station/maintenance/disposal) "kIh" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 1 - }, -/turf/open/floor/engine, -/area/station/science/explab) +/obj/structure/cable, +/obj/machinery/power/shieldwallgen/xenobiologyaccess, +/turf/open/floor/plating/reinforced, +/area/station/science/xenobiology) "kIl" = ( /obj/machinery/light/small/directional/south, /obj/machinery/camera/autoname/directional/south, @@ -32000,31 +32709,19 @@ }, /turf/open/floor/wood, /area/station/security/prison/rec) -"kIn" = ( -/obj/effect/turf_decal/stripes/red/line{ - dir = 4 - }, -/obj/machinery/light/small/directional/east, -/obj/machinery/camera/autoname/directional/east, -/turf/open/floor/engine, -/area/station/science/xenobiology) "kIt" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/trash/graffiti, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "kIy" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/door/airlock/maintenance, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 1 - }, -/turf/open/floor/plating, -/area/station/commons/fitness) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/duct, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/commons/dorms) "kIA" = ( /obj/machinery/suit_storage_unit/security, /obj/effect/turf_decal/trimline/red/filled/line{ @@ -32072,8 +32769,6 @@ dir = 5 }, /obj/effect/turf_decal/bot, -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/north, /obj/structure/closet/secure_closet/security/sec, /turf/open/floor/iron/dark, /area/station/security/lockers) @@ -32125,7 +32820,6 @@ }, /area/station/hallway/secondary/service) "kJy" = ( -/obj/effect/turf_decal/stripes/end, /obj/machinery/light/small/directional/south, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -32147,7 +32841,8 @@ /turf/open/floor/plating, /area/station/maintenance/port) "kKh" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron, /area/station/commons/storage/primary) "kKi" = ( @@ -32160,6 +32855,17 @@ /obj/effect/landmark/start/psychologist, /turf/open/floor/wood, /area/station/medical/psychology) +"kKj" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/obj/effect/landmark/start/nanotrasen_representative, +/turf/open/floor/iron/kitchen, +/area/station/command/heads_quarters/nt_rep) "kKm" = ( /obj/effect/turf_decal/trimline/red/filled/line, /obj/effect/turf_decal/trimline/red/line{ @@ -32177,7 +32883,12 @@ /turf/open/floor/iron, /area/station/engineering/main) "kKH" = ( -/obj/effect/turf_decal/stripes/end, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /turf/open/floor/plating/airless, /area/station/science/ordnance/bomb) "kKV" = ( @@ -32189,9 +32900,6 @@ "kLf" = ( /turf/closed/wall, /area/station/medical/exam_room) -"kLj" = ( -/turf/open/floor/carpet/neon/simple/pink, -/area/station/science/xenobiology) "kLr" = ( /turf/closed/wall/r_wall, /area/station/medical/treatment_center) @@ -32234,11 +32942,6 @@ }, /turf/open/floor/wood, /area/station/service/library/lounge) -"kMC" = ( -/obj/machinery/atmospherics/components/binary/pump/on/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) "kMD" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 1 @@ -32320,7 +33023,7 @@ /turf/open/floor/plating, /area/station/maintenance/department/science) "kNn" = ( -/obj/structure/closet/wardrobe/grey, +/obj/structure/closet/wardrobe/mixed, /turf/open/floor/iron/dark/side{ dir = 1 }, @@ -32341,22 +33044,25 @@ /obj/effect/mapping_helpers/airlock/unres, /turf/open/floor/iron/dark/textured, /area/station/medical/treatment_center) -"kNy" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) "kNA" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/trash/box, /turf/open/floor/plating, /area/station/maintenance/department/science) +"kND" = ( +/turf/open/floor/glass/reinforced/airless, +/area/station/maintenance/space_hut) "kNH" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/duct, +/obj/structure/liquid_barrier, /obj/machinery/door_buttons/access_button{ idDoor = "xeno_airlock_exterior"; idSelf = "xeno_airlock_control"; @@ -32364,12 +33070,6 @@ req_access = list("xenobiology"); pixel_x = 26 }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/duct, -/obj/structure/liquid_barrier, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/research{ autoclose = 0; @@ -32378,10 +33078,10 @@ name = "Xenobiology Lab External Airlock" }, /obj/effect/mapping_helpers/airlock/access/all/science/xenobio, +/obj/effect/mapping_helpers/airlock/locked, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, -/obj/effect/mapping_helpers/airlock/locked, /turf/open/floor/iron/white/textured, /area/station/science/xenobiology/hallway) "kNJ" = ( @@ -32504,37 +33204,15 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/maintenance/starboard/aft) -"kPJ" = ( -/obj/machinery/corral_corner{ - mapping_id = "1" - }, -/obj/machinery/slime_pen_controller{ - mapping_id = "1" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, +"kQj" = ( /obj/machinery/light/neon_lining{ - dir = 4 + dir = 8 }, -/turf/open/floor/engine, -/area/station/science/xenobiology) -"kQe" = ( -/obj/machinery/light/small/directional/north, -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/trash/graffiti, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) -"kQj" = ( -/obj/structure/disposalpipe/sorting/mail/flip{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/mapping_helpers/mail_sorting/science/xenobiology, -/turf/open/floor/catwalk_floor/iron, -/area/station/maintenance/department/science) +/turf/open/floor/stone, +/area/station/science/xenobiology) "kQo" = ( /obj/machinery/light/directional/west, /obj/structure/chair/sofa/left/maroon{ @@ -32546,13 +33224,19 @@ }, /area/station/commons/fitness) "kQq" = ( -/obj/machinery/atmospherics/components/binary/valve/digital/on{ - name = "Primary Waste Release"; - dir = 4 +/obj/machinery/atmospherics/components/unary/passive_vent{ + dir = 8; + name = "freezer passive vent" }, +/turf/open/floor/iron/freezer, +/area/station/science/xenobiology) +"kQv" = ( +/obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) +/obj/effect/mapping_helpers/apc/cell_5k, +/obj/machinery/griddle, +/turf/open/floor/iron/kitchen, +/area/station/command/heads_quarters/nt_rep) "kQx" = ( /obj/effect/turf_decal/tile/blue/anticorner/contrasted, /obj/machinery/atmospherics/components/trinary/filter/atmos/o2{ @@ -32567,23 +33251,30 @@ /turf/open/floor/iron/large, /area/station/command/heads_quarters/ce) "kQK" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, -/turf/open/floor/iron, -/area/station/maintenance/disposal/incinerator) -"kQP" = ( -/obj/machinery/corral_corner{ - mapping_id = "3" - }, -/obj/machinery/slime_pen_controller{ - mapping_id = "3" - }, +/obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ - dir = 6 + dir = 1 }, -/obj/machinery/light/neon_lining{ - dir = 4 +/obj/machinery/atmospherics/pipe/smart/manifold4w/pink/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, +/obj/machinery/door/airlock/public/glass/incinerator/atmos_exterior, +/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 }, +/obj/effect/mapping_helpers/airlock/locked, /turf/open/floor/engine, +/area/station/maintenance/disposal/incinerator) +"kQP" = ( +/obj/effect/turf_decal/box, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/holopad, +/turf/open/floor/iron/white/smooth_large, /area/station/science/xenobiology) "kQR" = ( /obj/effect/turf_decal/bot, @@ -32607,13 +33298,6 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos/pumproom) -"kRc" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/effect/artifact_spawner, -/turf/open/floor/engine, -/area/station/science/explab) "kRe" = ( /obj/effect/turf_decal/trimline/brown/filled/warning{ dir = 1 @@ -32641,23 +33325,17 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/eva) -"kRS" = ( +"kSi" = ( +/obj/effect/turf_decal/box, +/obj/machinery/holopad, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /obj/structure/disposalpipe/segment{ - dir = 6 + dir = 10 }, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) -"kSi" = ( -/obj/machinery/holopad, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/box, /turf/open/floor/iron/large, -/area/station/tcommsat/computer) +/area/station/commons/fitness) "kSL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -32699,10 +33377,13 @@ /turf/open/floor/iron/dark/textured, /area/station/service/hydroponics/garden) "kTq" = ( -/obj/machinery/firealarm/directional/east, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/maintenance/department/science) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/firealarm/directional/north, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor, +/area/station/maintenance/starboard/aft) "kTz" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ @@ -32745,12 +33426,12 @@ /obj/effect/turf_decal/trimline/red/filled/line{ dir = 4 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, /obj/machinery/flasher/directional/east{ id = "holding_flash" }, +/obj/structure/chair{ + dir = 8 + }, /turf/open/floor/iron/dark, /area/station/security/holding_cell) "kUA" = ( @@ -32766,9 +33447,11 @@ /turf/open/floor/iron/dark, /area/station/hallway/primary/central) "kUB" = ( -/obj/structure/filingcabinet, -/turf/open/floor/carpet/blue, -/area/station/commons/vacant_room/office) +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/nt_rep) "kUI" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -32815,6 +33498,7 @@ /area/station/engineering/storage/tech) "kUQ" = ( /obj/effect/turf_decal/tile/blue/fourcorners, +/obj/structure/extinguisher_cabinet/directional/east, /obj/structure/window/reinforced/spawner/directional/south, /obj/machinery/computer/crew{ dir = 1 @@ -32853,28 +33537,6 @@ /obj/item/key/security, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) -"kVn" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/liquid_barrier, -/obj/machinery/door/airlock/maintenance, -/obj/effect/mapping_helpers/airlock/access/any/science/xenobio, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/science/xenobiology) -"kVq" = ( -/obj/machinery/duct, -/obj/machinery/light/neon_lining{ - dir = 8 - }, -/turf/open/floor/stone, -/area/station/science/xenobiology) "kVD" = ( /obj/structure/closet/crate, /obj/item/stack/sheet/iron/fifty, @@ -32937,12 +33599,12 @@ }, /area/station/service/hydroponics/garden) "kWi" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, /obj/effect/turf_decal/trimline/red/filled/corner{ dir = 1 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) "kWj" = ( @@ -33045,11 +33707,9 @@ /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) "kXK" = ( -/obj/structure/table, -/obj/item/shovel/spade, -/obj/item/plant_analyzer, -/obj/item/cultivator, -/obj/item/reagent_containers/cup/watering_can, +/obj/machinery/vending/hydroseeds{ + slogan_delay = 700 + }, /turf/open/floor/iron/dark, /area/station/security/prison/garden) "kXL" = ( @@ -33134,16 +33794,18 @@ /turf/open/floor/carpet/blue, /area/station/command/heads_quarters/cmo) "kZc" = ( -/obj/structure/extinguisher_cabinet/directional/north, +/obj/structure/sign/picture_frame/portrait/bar{ + pixel_y = 32 + }, /turf/open/floor/wood, /area/station/service/bar) "kZf" = ( /obj/structure/table, /obj/item/toy/crayon/spraycan{ - pixel_x = 3; pixel_y = 6 }, /obj/item/toy/crayon/spraycan{ + pixel_x = 3; pixel_y = 6 }, /obj/item/paint_palette, @@ -33197,23 +33859,13 @@ /turf/open/floor/grass, /area/station/hallway/secondary/exit/departure_lounge) "kZS" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 +/obj/machinery/light/small/directional/east, +/obj/machinery/airlock_sensor/incinerator_atmos{ + pixel_y = 24; + pixel_x = -8 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, -/obj/machinery/button/door/incinerator_vent_atmos_aux{ - pixel_x = -7; - pixel_y = -24 - }, -/obj/machinery/button/door/incinerator_vent_atmos_main{ - pixel_x = -7; - pixel_y = -36 - }, -/obj/machinery/button/ignition/incinerator/atmos{ - pixel_y = -24; - pixel_x = 7 - }, -/turf/open/floor/iron, +/turf/open/floor/engine, /area/station/maintenance/disposal/incinerator) "laj" = ( /obj/effect/decal/cleanable/dirt, @@ -33237,15 +33889,18 @@ }, /turf/open/floor/engine, /area/station/engineering/atmos/hfr_room) -"laO" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on/coldroom, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "laR" = ( /obj/effect/spawner/structure/window/reinforced/tinted, /obj/structure/cable, /turf/open/floor/plating, /area/station/ai_monitored/command/storage/eva) +"laX" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 4 + }, +/obj/machinery/nanite_programmer, +/turf/open/floor/iron/white, +/area/station/science/auxlab) "lbf" = ( /obj/effect/turf_decal/trimline/blue/filled/line, /obj/effect/turf_decal/trimline/blue/line{ @@ -33283,10 +33938,16 @@ /turf/open/floor/wood, /area/station/medical/psychology) "lca" = ( -/obj/structure/sign/warning/radiation/directional/west, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/maintenance/department/science) +/obj/machinery/firealarm/directional/south{ + pixel_x = -5 + }, +/obj/machinery/light_switch/directional/south{ + pixel_x = 5 + }, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/item/kirbyplants/random, +/turf/open/floor/iron/white, +/area/station/science/explab) "lco" = ( /turf/open/floor/wood, /area/station/command/heads_quarters/captain/private) @@ -33311,6 +33972,10 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) +"lcH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "lcI" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -33327,6 +33992,7 @@ /turf/open/floor/iron, /area/station/engineering/gravity_generator) "lcP" = ( +/obj/structure/extinguisher_cabinet/directional/west, /obj/structure/table/wood, /obj/item/book/manual/wiki/security_space_law, /obj/effect/spawner/random/entertainment/coin, @@ -33413,12 +34079,16 @@ /turf/open/floor/iron/dark, /area/station/medical/paramedic) "ley" = ( -/obj/effect/landmark/event_spawn, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, +/obj/effect/turf_decal/trimline/red/filled/line, +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/obj/machinery/camera/directional/south{ + c_tag = "Hallway, Arrivals - Checkpoint, North"; + name = "hallway camera" + }, /turf/open/floor/iron/dark, -/area/station/hallway/primary/port) +/area/station/hallway/secondary/entry) "leA" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -33434,9 +34104,9 @@ /area/station/hallway/primary/port) "leC" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, /turf/open/floor/plating, /area/station/ai_monitored/security/armory) "leD" = ( @@ -33459,24 +34129,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/hallway/primary/central) -"leN" = ( -/obj/effect/turf_decal/tile/dark_blue/fourcorners, -/obj/structure/table/glass, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/machinery/door/window/brigdoor/left/directional/north{ - name = "High-Risk Modules"; - req_access = list("captain") - }, -/obj/item/ai_module/supplied/freeform{ - pixel_x = -1; - pixel_y = -1 - }, -/obj/item/ai_module/supplied/protect_station{ - pixel_y = 3; - pixel_x = 4 - }, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai_upload) "lfd" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -33522,7 +34174,6 @@ dir = 1 }, /obj/machinery/station_map/directional/north, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/dark, /area/station/security/execution/transfer) "lfj" = ( @@ -33563,10 +34214,15 @@ /turf/open/floor/iron/white, /area/station/medical/medbay/aft) "lfw" = ( -/obj/structure/sign/warning/secure_area/directional/south, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/maintenance/department/science) +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/light/neon_lining{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/engine, +/area/station/science/xenobiology) "lfx" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -33575,7 +34231,10 @@ /area/station/engineering/engine_smes) "lfT" = ( /obj/machinery/light/directional/south, -/obj/structure/filingcabinet/chestdrawer, +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, +/obj/machinery/portable_atmospherics/canister/plasma, /turf/open/floor/iron/dark/side, /area/station/tcommsat/computer) "lgx" = ( @@ -33700,21 +34359,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/hallway/primary/fore) +"lii" = ( +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron/dark, +/area/station/command/bridge) "liB" = ( -/obj/machinery/firealarm/directional/east{ - pixel_y = -5 - }, /obj/machinery/camera/autoname/directional/east, -/obj/machinery/light_switch/directional/east{ - pixel_y = 5 - }, /obj/structure/closet/emcloset, /turf/open/floor/iron/showroomfloor, /area/station/science/xenobiology/hallway) "liC" = ( /obj/effect/turf_decal/bot_red, /obj/machinery/light/directional/east, -/obj/structure/sign/warning/electric_shock/directional/east, /obj/machinery/suit_storage_unit/standard_unit, /turf/open/floor/iron/large, /area/station/ai_monitored/command/storage/eva) @@ -33754,10 +34410,6 @@ /area/station/security/checkpoint/medical) "liN" = ( /obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "engineering"; - name = "Engineering Blast Door" - }, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -33765,6 +34417,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "engineering"; + name = "Engineering Blast Door" + }, /turf/open/floor/plating, /area/station/engineering/storage) "liQ" = ( @@ -33779,7 +34435,7 @@ dir = 8 }, /obj/machinery/light/small/directional/west, -/obj/structure/closet/toolcloset, +/obj/item/kirbyplants/random, /turf/open/floor/iron/dark, /area/station/construction/mining/aux_base) "ljl" = ( @@ -33798,8 +34454,8 @@ /turf/open/floor/wood, /area/station/command/heads_quarters/hop) "ljv" = ( -/turf/closed/wall/r_wall, -/area/station/maintenance/department/security) +/turf/open/floor/carpet/neon/simple/pink, +/area/station/science/xenobiology) "ljY" = ( /obj/structure/lattice, /obj/structure/sign/warning/secure_area/directional/east, @@ -33814,12 +34470,14 @@ }, /obj/machinery/light/small/directional/east, /obj/machinery/camera/directional/east{ - c_tag = "Arrivals - Common Mining Dock" + c_tag = "Hallway, Arrivals - Common Mining Dock"; + name = "hallway camera" }, /obj/item/radio/intercom/directional/east, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) "lkh" = ( +/obj/machinery/status_display/ai/directional/west, /obj/machinery/computer/pod/old/mass_driver_controller/ordnancedriver{ pixel_x = 6; pixel_y = 28 @@ -33910,6 +34568,16 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"llZ" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 1 + }, +/obj/machinery/light/directional/north, +/obj/machinery/computer/telecomms/traffic, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/tcommsat/computer) "lmw" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -33924,12 +34592,13 @@ /turf/open/floor/iron/dark, /area/station/engineering/storage/tech) "lmK" = ( -/obj/machinery/plumbing/ooze_sucker{ - mapping_id = "1"; - dir = 1 +/obj/machinery/door/airlock/external{ + name = "External Access" }, -/turf/open/floor/engine, -/area/station/science/xenobiology) +/obj/effect/mapping_helpers/airlock/access/all/engineering/external, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "lmR" = ( /obj/structure/sign/poster/random/directional/south, /obj/effect/decal/cleanable/dirt, @@ -33955,12 +34624,14 @@ /turf/open/floor/iron/dark/smooth_large, /area/station/medical/morgue) "lnm" = ( -/obj/structure/disposalpipe/segment{ - dir = 6 +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 }, -/obj/structure/sign/departments/xenobio/directional/north, -/turf/open/floor/catwalk_floor/iron, -/area/station/maintenance/department/science) +/obj/machinery/light/neon_lining{ + dir = 4 + }, +/turf/open/floor/stone, +/area/station/science/xenobiology) "lnp" = ( /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 6 @@ -33973,11 +34644,6 @@ dir = 6 }, /area/station/cargo/office) -"lns" = ( -/obj/structure/window/reinforced/spawner/directional/east, -/obj/machinery/light/small/directional/south, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "lnu" = ( /obj/structure/cable, /turf/open/floor/catwalk_floor/iron_dark, @@ -34001,9 +34667,23 @@ /turf/open/floor/plating, /area/station/maintenance/port/aft) "lnT" = ( -/obj/machinery/light/small/directional/south, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/corporate{ + id_tag = "nt_rep_kitchen_door"; + name = "Nanotrasen Representative's Kitchen" + }, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, +/turf/open/floor/iron/dark/textured, +/area/station/command/heads_quarters/nt_rep) "loc" = ( /obj/machinery/light/small/directional/south, /obj/vehicle/sealed/mecha/working/ripley/cargo, @@ -34021,11 +34701,12 @@ /turf/open/floor/wood, /area/station/command/heads_quarters/blueshield) "lor" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/commons/fitness) +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/structure/chair_maintenance{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "los" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -34187,15 +34868,6 @@ }, /turf/open/floor/iron/dark, /area/station/hallway/primary/fore) -"lrf" = ( -/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ - dir = 8 - }, -/obj/machinery/computer/message_monitor{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/tcommsat/computer) "lrm" = ( /obj/structure/table/wood/poker, /obj/item/toy/cards/deck{ @@ -34237,10 +34909,6 @@ /obj/machinery/holopad, /turf/open/floor/iron/white/smooth_large, /area/station/medical/treatment_center) -"lrB" = ( -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) "lsa" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -34331,16 +34999,6 @@ dir = 1 }, /area/station/service/hydroponics) -"lsX" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/obj/machinery/door/poddoor/preopen{ - id = "testlab"; - name = "Xenobiology Secure Chamber Blast Door" - }, -/obj/structure/disposalpipe/segment, -/turf/open/floor/plating/reinforced, -/area/station/science/xenobiology) "lte" = ( /obj/structure/disposalpipe/sorting/mail, /obj/effect/mapping_helpers/mail_sorting/medbay/virology, @@ -34350,33 +35008,35 @@ /obj/machinery/duct, /turf/open/floor/iron/white, /area/station/medical/virology) +"ltf" = ( +/obj/effect/turf_decal/stripes/red/line, +/obj/machinery/light/small/directional/south, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/engine, +/area/station/science/xenobiology) "ltg" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/pumproom) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/gibber, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) "ltj" = ( /obj/structure/table/reinforced, -/obj/machinery/reagentgrinder{ - pixel_y = 9 - }, -/turf/open/floor/iron/kitchen, -/area/station/security/prison/mess) -"ltp" = ( -/obj/machinery/light/neon_lining{ - dir = 4 +/obj/item/storage/bag/tray, +/obj/item/reagent_containers/condiment/peppermill{ + pixel_x = -8; + pixel_y = 2 }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = -2; + pixel_y = 4 }, -/obj/machinery/camera/directional/east{ - c_tag = "Science - Xenobiology, Pen 2"; - name = "xenobiology camera"; - network = list("ss13","rd","xeno") +/obj/item/kitchen/rollingpin{ + pixel_y = -4; + pixel_x = 4 }, -/turf/open/floor/engine, -/area/station/science/xenobiology) +/turf/open/floor/iron/kitchen, +/area/station/security/prison/mess) "ltw" = ( /obj/structure/disposalpipe/trunk{ dir = 1 @@ -34453,6 +35113,7 @@ /obj/effect/mapping_helpers/airlock/unres{ dir = 1 }, +/obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/commons/fitness/recreation) "lus" = ( @@ -34544,13 +35205,6 @@ /obj/structure/cable, /turf/open/floor/carpet/black, /area/station/security/bitden) -"lvp" = ( -/obj/machinery/duct, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "lvI" = ( /obj/machinery/airalarm/directional/north, /obj/structure/table, @@ -34681,28 +35335,13 @@ /area/station/maintenance/starboard/aft) "lxA" = ( /obj/effect/turf_decal/tile/yellow/fourcorners, +/obj/machinery/light/small/directional/south, /obj/machinery/atmospherics/pipe/smart/simple/pink/hidden{ dir = 4 }, /obj/structure/closet/firecloset, /turf/open/floor/iron/dark, /area/station/hallway/primary/aft) -"lxC" = ( -/obj/structure/closet/crate/hydroponics, -/obj/item/seeds/tree, -/obj/effect/spawner/random/contraband/prison, -/obj/item/seeds/pumpkin, -/obj/item/seeds/wheat, -/obj/item/seeds/ambrosia, -/obj/item/seeds/grass, -/obj/item/seeds/carrot, -/obj/item/seeds/tomato, -/obj/item/seeds/potato, -/obj/item/seeds/garlic, -/obj/item/seeds/onion, -/obj/item/paper/guides/jobs/hydroponics, -/turf/open/floor/iron/dark, -/area/station/security/prison/garden) "lyp" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -34713,12 +35352,20 @@ /turf/open/floor/iron/dark, /area/station/science/breakroom) "lyv" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/structure/chair_maintenance{ - dir = 4 +/obj/machinery/camera/directional/east{ + c_tag = "Command - Nanotrasen Representative's Office, Desk"; + name = "command camera" }, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) +/obj/structure/sign/calendar/directional/east, +/obj/structure/table/wood, +/obj/item/paper_bin/carbon{ + pixel_x = 7 + }, +/obj/item/book/manual/wiki/security_space_law{ + pixel_x = -7 + }, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/nt_rep) "lyw" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 4 @@ -34752,6 +35399,7 @@ "lyy" = ( /obj/effect/turf_decal/tile/blue/fourcorners, /obj/machinery/light/small/directional/north, +/obj/machinery/camera/autoname/directional/north, /obj/machinery/modular_computer/preset/civilian, /turf/open/floor/iron, /area/station/medical/paramedic) @@ -34796,12 +35444,16 @@ /turf/open/floor/iron/dark, /area/station/hallway/primary/central) "lyP" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/chair{ +/obj/machinery/camera/directional/east{ + c_tag = "Science - Artifact Lab, East"; + network = list("ss13","rd"); + name = "science camera" + }, +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ dir = 4 }, -/turf/open/floor/iron, -/area/station/maintenance/department/science) +/turf/open/floor/engine, +/area/station/science/explab) "lyR" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 8 @@ -34846,10 +35498,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/eva) -"lzt" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "lzu" = ( /turf/closed/wall/r_wall, /area/station/science/ordnance/burnchamber) @@ -34869,6 +35517,18 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/science) +"lzL" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/door/poddoor/preopen{ + id = "xenobiomain"; + name = "Containment Blast Door" + }, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/white/textured, +/area/station/science/xenobiology) "lzT" = ( /turf/open/floor/plating, /area/station/maintenance/department/electrical) @@ -34876,16 +35536,18 @@ /turf/closed/wall, /area/station/service/library/lounge) "lAg" = ( -/obj/machinery/light/small/directional/south, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/structure/cable, -/obj/structure/table/wood, -/obj/machinery/fax{ - fax_name = "Law Office"; - name = "Law Office Fax Machine" +/obj/effect/turf_decal/tile/neutral/half, +/obj/effect/turf_decal/tile/neutral/half{ + dir = 1 }, -/turf/open/floor/wood, -/area/station/service/lawoffice) +/turf/open/floor/iron/dark/smooth_half, +/area/station/command/gateway) +"lAO" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/science/xenobiology) "lAP" = ( /obj/effect/turf_decal/trimline/dark_blue/filled/line{ dir = 6 @@ -34935,9 +35597,14 @@ /turf/open/floor/iron/dark, /area/station/hallway/secondary/exit/departure_lounge) "lBu" = ( -/obj/machinery/atmospherics/components/tank/air{ +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/duct, /turf/open/floor/plating, /area/station/maintenance/port/fore) "lBB" = ( @@ -34948,12 +35615,6 @@ /obj/item/storage/bag/trash, /turf/open/floor/iron/dark/side, /area/station/security/prison) -"lBC" = ( -/obj/structure/weightmachine/stacklifter, -/turf/open/floor/iron/dark/side{ - dir = 5 - }, -/area/station/commons/fitness/recreation) "lBE" = ( /obj/structure/chair/office/light, /obj/effect/landmark/start/medical_doctor, @@ -34969,7 +35630,7 @@ dir = 1 }, /obj/machinery/camera/directional/south{ - c_tag = "Hallway - West, Central, 1"; + c_tag = "Hallway, West - Central 1"; name = "hallway camera" }, /obj/machinery/station_map/directional/south, @@ -34996,17 +35657,14 @@ /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) "lBX" = ( -/obj/machinery/light/small/directional/north, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +/obj/machinery/requests_console/directional/east, +/turf/open/floor/carpet/black, +/area/station/service/theater) "lBZ" = ( /obj/effect/turf_decal/trimline/red/filled/warning, /obj/effect/turf_decal/trimline/red/warning{ dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, /turf/open/floor/iron/dark, /area/station/hallway/primary/fore) "lCf" = ( @@ -35014,8 +35672,10 @@ /turf/open/floor/iron/dark, /area/station/security/checkpoint/customs/auxiliary) "lCg" = ( -/obj/structure/closet/secure_closet/detective, -/turf/open/floor/wood, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/chair/comfy/black, +/obj/effect/landmark/start/detective, +/turf/open/floor/iron/dark, /area/station/security/detectives_office) "lCn" = ( /obj/effect/turf_decal/siding/wood/corner{ @@ -35044,7 +35704,6 @@ /area/station/service/chapel) "lCI" = ( /obj/effect/turf_decal/trimline/red/filled/line, -/obj/structure/cable, /turf/open/floor/iron/dark, /area/station/security/warden) "lCN" = ( @@ -35072,8 +35731,11 @@ /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) "lDG" = ( -/obj/effect/turf_decal/trimline/dark_blue/filled/corner{ - dir = 1 +/obj/effect/turf_decal/trimline/dark_blue/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/dark_blue/filled/line{ + dir = 4 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -35109,18 +35771,6 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"lDW" = ( -/obj/machinery/corral_corner{ - mapping_id = "4" - }, -/obj/machinery/light/neon_lining{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "lDX" = ( /turf/closed/wall/r_wall, /area/station/command/bridge) @@ -35129,6 +35779,15 @@ /obj/structure/reagent_dispensers/watertank/high, /turf/open/floor/iron/dark, /area/station/security/prison/garden) +"lEd" = ( +/obj/structure/extinguisher_cabinet/directional/north, +/obj/structure/table/wood, +/obj/machinery/microwave{ + pixel_x = -1; + pixel_y = 5 + }, +/turf/open/floor/iron/kitchen, +/area/station/command/heads_quarters/nt_rep) "lEf" = ( /obj/item/radio/intercom/directional/east, /obj/structure/table/wood, @@ -35199,13 +35858,34 @@ /turf/open/floor/iron/white, /area/station/science/research) "lFa" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/engineering/tank, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +/obj/effect/turf_decal/trimline/green/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/green/filled/line, +/obj/machinery/light/directional/south, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/port) "lFc" = ( /turf/closed/wall/r_wall, /area/station/command/heads_quarters/hop) +"lFh" = ( +/obj/machinery/corral_corner{ + mapping_id = "2" + }, +/obj/machinery/slime_pen_controller{ + mapping_id = "2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/machinery/light/neon_lining{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "lFp" = ( /turf/closed/wall/r_wall, /area/station/security/brig/entrance) @@ -35219,7 +35899,7 @@ /obj/structure/cable, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/medical/glass{ - name = "Medical North Side Entrance" + name = "Medical Staff Entrance" }, /obj/effect/mapping_helpers/airlock/access/all/medical/general, /obj/effect/mapping_helpers/airlock/unres, @@ -35229,7 +35909,8 @@ /obj/effect/turf_decal/siding/wood{ dir = 4 }, -/obj/structure/cable, +/obj/machinery/airalarm/directional/west, +/obj/structure/table/wood, /turf/open/floor/wood, /area/station/command/heads_quarters/hos) "lFJ" = ( @@ -35295,10 +35976,7 @@ /turf/open/floor/iron/dark/textured, /area/station/commons/dorms/laundry) "lGK" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/on/layer4, +/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon, /turf/open/floor/engine, /area/station/security/execution) "lGU" = ( @@ -35308,8 +35986,11 @@ /turf/open/floor/iron/dark, /area/station/security/brig) "lHd" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, -/turf/closed/wall/r_wall, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/obj/structure/cable, +/turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) "lHi" = ( /turf/closed/wall/r_wall, @@ -35329,13 +36010,20 @@ /turf/open/floor/iron/white, /area/station/medical/cryo) "lHF" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ +/obj/machinery/light/neon_lining{ dir = 8 }, -/turf/open/floor/iron/white, -/area/station/science/auxlab) +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/stone, +/area/station/science/xenobiology) +"lHL" = ( +/obj/structure/sign/departments/engineering/directional/north, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "lHR" = ( /turf/closed/wall, /area/station/maintenance/department/eva) @@ -35352,8 +36040,9 @@ /turf/open/floor/iron/white, /area/station/medical/patients_rooms/room_b) "lHY" = ( -/obj/machinery/atmospherics/components/binary/valve/digital{ - name = "Freeze Chamber" +/obj/machinery/atmospherics/components/binary/pump{ + name = "Freeze Chamber"; + dir = 1 }, /turf/open/floor/iron, /area/station/science/ordnance) @@ -35395,6 +36084,12 @@ dir = 9 }, /obj/structure/table/reinforced/rglass, +/obj/item/toy/figure/geneticist{ + pixel_y = 11; + pixel_x = -11 + }, +/obj/item/crowbar/red, +/obj/item/radio/headset/headset_medsci, /turf/open/floor/iron/white, /area/station/science/genetics) "lIO" = ( @@ -35406,6 +36101,11 @@ /area/station/security/prison/safe) "lIQ" = ( /obj/effect/turf_decal/tile/neutral/half/contrasted, +/obj/machinery/camera/directional/south{ + c_tag = "Science - Ordnance, Lab, Chambers"; + name = "science camera"; + network = list("ss13","rd") + }, /obj/machinery/atmospherics/pipe/smart/simple/purple/visible{ dir = 10 }, @@ -35490,6 +36190,7 @@ /area/station/security/prison/workout) "lKw" = ( /obj/effect/turf_decal/bot, +/obj/structure/cable, /obj/effect/landmark/start/hangover, /turf/open/floor/iron/large, /area/station/commons/storage/primary) @@ -35570,18 +36271,12 @@ }, /turf/open/floor/iron/dark, /area/station/security/office) -"lLm" = ( -/obj/structure/chair/office/light{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/security/prison/visit) "lLp" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /obj/machinery/holopad, -/turf/open/floor/carpet/green, +/turf/open/floor/carpet, /area/station/commons/locker) "lLr" = ( /obj/structure/chair/office/light{ @@ -35697,14 +36392,9 @@ /turf/open/floor/iron/dark, /area/station/hallway/primary/fore) "lNx" = ( -/obj/effect/turf_decal/trimline/red/corner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 6 - }, +/obj/effect/turf_decal/tile/red/fourcorners, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 + dir = 1 }, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) @@ -35712,18 +36402,11 @@ /obj/structure/foamedmetal, /turf/open/floor/plating, /area/station/engineering/main) -"lNG" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "lNO" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 8 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/light/small/directional/west, /turf/open/floor/iron/white, /area/station/science/research) "lNT" = ( @@ -35810,6 +36493,13 @@ /obj/machinery/duct, /turf/open/floor/iron/dark, /area/station/science/breakroom) +"lPZ" = ( +/obj/structure/table/wood, +/obj/machinery/chem_dispenser/drinks{ + dir = 1 + }, +/turf/open/floor/iron/kitchen, +/area/station/command/heads_quarters/nt_rep) "lQc" = ( /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 4 @@ -35860,17 +36550,17 @@ /obj/effect/turf_decal/trimline/red/filled/line{ dir = 5 }, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/obj/machinery/light/small/directional/east, /obj/machinery/firealarm/directional/north{ pixel_x = -5 }, /obj/machinery/light_switch/directional/north{ pixel_x = 5 }, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/machinery/disposal/bin, -/obj/machinery/light/small/directional/east, /turf/open/floor/iron/dark/side{ dir = 5 }, @@ -36044,6 +36734,8 @@ /turf/open/floor/iron/dark, /area/station/security/execution/transfer) "lWH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 }, @@ -36057,8 +36749,13 @@ /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 4 }, +/obj/machinery/firealarm/directional/east{ + pixel_y = 5 + }, +/obj/machinery/light_switch/directional/east{ + pixel_y = -5 + }, /obj/structure/disposalpipe/segment, -/obj/item/radio/intercom/directional/east, /turf/open/floor/iron/dark/side{ dir = 4 }, @@ -36086,11 +36783,14 @@ }, /area/station/service/hydroponics/garden) "lYe" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/turf/open/floor/wood, -/area/station/commons/vacant_room/office) +/turf/open/floor/wood/tile, +/area/station/command/heads_quarters/nt_rep) "lYj" = ( /obj/machinery/atmospherics/components/binary/valve/digital/on{ name = "Waste Release"; @@ -36099,25 +36799,83 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "lYr" = ( -/obj/effect/turf_decal/siding/wideplating_new/dark{ +/obj/effect/turf_decal/siding/thinplating/dark{ dir = 1 }, /obj/structure/sign/warning/no_smoking/directional/south, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, /turf/open/floor/iron/dark/telecomms, /area/station/tcommsat/server) +"lYt" = ( +/obj/machinery/firealarm/directional/north, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "lYB" = ( -/obj/structure/chair/wood{ - dir = 8 +/obj/machinery/digital_clock/directional/south, +/obj/machinery/button/door/directional/west{ + id = "nt_rep_office_door"; + name = "Office Door Bolt Control"; + req_access = list("nt_rep"); + pixel_y = -6; + normaldoorcontrol = 1; + specialfunctions = 4 }, -/turf/open/floor/carpet/blue, -/area/station/commons/vacant_room/office) +/obj/machinery/button/door/directional/west{ + id = "nt_rep_desk_shutters"; + name = "Desk Shutters Control"; + req_access = list("nt_rep"); + pixel_y = 6 + }, +/obj/structure/table/wood, +/obj/item/stamp/centcom{ + pixel_x = 8; + pixel_y = 12 + }, +/obj/item/stamp/granted{ + pixel_y = 6; + pixel_x = 8 + }, +/obj/item/stamp/denied{ + pixel_x = 8 + }, +/obj/item/folder/blue{ + pixel_x = -6 + }, +/obj/item/folder/blue{ + pixel_y = 3; + pixel_x = -6 + }, +/obj/item/folder/blue{ + pixel_y = 6; + pixel_x = -6 + }, +/obj/item/pen/fountain{ + pixel_x = -6 + }, +/obj/item/pen/fourcolor{ + pixel_y = 6; + pixel_x = -3 + }, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/nt_rep) "lYM" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/obj/machinery/photocopier, +/obj/structure/table/wood/fancy/green, +/obj/item/lighter{ + pixel_x = -5 + }, +/obj/item/lighter{ + pixel_x = 5 + }, /turf/open/floor/carpet/green, -/area/station/commons/vacant_room/office) +/area/station/command/heads_quarters/nt_rep) "lZu" = ( /obj/effect/turf_decal/bot, /obj/structure/sign/poster/official/random/directional/south, @@ -36138,17 +36896,15 @@ dir = 8; dwidth = 11; height = 24; - name = "SS13: Auxiliary Dock, Station-Port"; + name = "SS13: Docking Bay 1, Auxiliary"; shuttle_id = "whiteship_home"; width = 35 }, /turf/open/space/basic, /area/space) "lZA" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light/small/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) "lZD" = ( @@ -36157,9 +36913,9 @@ /area/station/service/library/artgallery) "lZJ" = ( /obj/structure/chair/comfy/brown{ - dir = 1 + dir = 8 }, -/obj/effect/landmark/start/hangover, +/obj/effect/landmark/start/assistant, /turf/open/floor/carpet, /area/station/hallway/secondary/entry) "lZP" = ( @@ -36178,12 +36934,11 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "lZR" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 9 +/obj/structure/chair/sofa/left/maroon{ + dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/on, -/turf/open/floor/engine, -/area/station/security/execution) +/turf/open/floor/iron, +/area/station/commons/fitness/recreation) "lZS" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -36200,10 +36955,10 @@ /turf/open/floor/iron/dark/textured, /area/station/security/courtroom) "lZV" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/trimline/red/filled/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /mob/living/simple_animal/bot/secbot/beepsky/armsky, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) @@ -36224,6 +36979,7 @@ /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 1 }, +/obj/machinery/light/small/directional/north, /obj/structure/table, /obj/item/stack/sheet/iron/fifty, /obj/item/stack/sheet/glass/fifty{ @@ -36235,14 +36991,20 @@ /area/station/science/circuits) "maz" = ( /obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ dir = 5 }, /turf/open/space/basic, /area/space/nearstation) "maC" = ( -/turf/open/floor/iron/dark, -/area/station/commons/fitness) +/obj/effect/turf_decal/bot, +/obj/machinery/newscaster/directional/east, +/obj/structure/rack, +/obj/item/training_toolbox, +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/commons/fitness/recreation) "maE" = ( /obj/machinery/button/door/directional/north{ id = "bsq_to_cq"; @@ -36267,14 +37029,27 @@ /turf/open/floor/iron/white, /area/station/medical/chemistry) "maX" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/turf/open/floor/wood, -/area/station/commons/vacant_room/office) +/obj/structure/table/wood/fancy/green, +/obj/item/reagent_containers/cup/glass/bottle/whiskey{ + pixel_x = -6; + pixel_y = 18 + }, +/obj/item/reagent_containers/cup/glass/bottle/navy_rum{ + pixel_x = 6; + pixel_y = 12 + }, +/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{ + pixel_x = 9 + }, +/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{ + pixel_x = -9 + }, +/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass, +/turf/open/floor/carpet/green, +/area/station/command/heads_quarters/nt_rep) "mbi" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/closet/emcloset, @@ -36337,6 +37112,15 @@ dir = 4 }, /area/station/commons/fitness) +"mbY" = ( +/obj/machinery/camera/directional/north{ + c_tag = "Maintenance - Science Pass-through, Artifact Lab Access"; + name = "maintenance camera"; + network = list("ss13","rd") + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/department/science) "mbZ" = ( /obj/structure/disposalpipe/sorting/mail{ dir = 8 @@ -36394,6 +37178,7 @@ /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 4 }, +/obj/machinery/status_display/ai/directional/east, /obj/machinery/vending/engivend, /turf/open/floor/iron, /area/station/engineering/storage) @@ -36404,6 +37189,8 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/door/firedoor, +/obj/machinery/firealarm/directional/south, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) @@ -36418,7 +37205,7 @@ "mcY" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters{ - id = "sec_lockers"; + id = "sec_locker_shutters"; name = "Locker Room Shutters" }, /turf/open/floor/plating, @@ -36511,8 +37298,11 @@ }, /turf/open/floor/engine/vacuum, /area/station/engineering/atmos) +"meW" = ( +/obj/item/radio/intercom/directional/east, +/turf/open/floor/wood/large, +/area/station/command/heads_quarters/nt_rep) "mfd" = ( -/obj/machinery/camera/autoname/directional/south, /obj/structure/closet/crate/hydroponics, /obj/item/shovel/spade, /obj/item/seeds/tower, @@ -36578,6 +37368,11 @@ }, /turf/open/floor/plating/airless, /area/space/nearstation) +"mgK" = ( +/obj/structure/extinguisher_cabinet/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "mgQ" = ( /obj/effect/turf_decal/tile/neutral/half/contrasted, /obj/effect/turf_decal/loading_area, @@ -36622,11 +37417,14 @@ /turf/open/floor/plating, /area/station/maintenance/port/aft) "mhM" = ( -/obj/machinery/firealarm/directional/west, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/firecloset, -/turf/open/floor/iron, -/area/station/maintenance/department/science) +/obj/machinery/light/neon_lining{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "mhP" = ( /obj/machinery/duct, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -36634,18 +37432,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/virology) -"mhS" = ( -/obj/machinery/corral_corner{ - mapping_id = "2" - }, -/obj/machinery/light/neon_lining{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "mhY" = ( /obj/effect/turf_decal/trimline/blue/filled/warning{ dir = 4 @@ -36711,11 +37497,14 @@ /turf/open/floor/iron/dark/smooth_large, /area/station/engineering/main) "mjk" = ( -/obj/structure/extinguisher_cabinet/directional/south, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/iron, -/area/station/maintenance/department/science) +/obj/machinery/light/neon_lining{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/stone, +/area/station/science/xenobiology) "mjw" = ( /obj/structure/table/wood, /obj/item/paper_bin, @@ -36760,26 +37549,23 @@ /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat/foyer) "mkx" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, /obj/structure/table/wood, -/obj/item/phone{ - pixel_x = -6; - pixel_y = 10 +/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{ + pixel_x = -3; + pixel_y = 9 }, -/obj/machinery/recharger{ - pixel_x = -4; - pixel_y = -1 +/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{ + pixel_x = -6 }, -/obj/item/paper_bin{ - pixel_y = 4; +/obj/item/reagent_containers/cup/glass/bottle/whiskey{ + pixel_y = 12; pixel_x = 9 }, -/obj/item/stamp/head/hos{ - pixel_x = 10; - pixel_y = 6 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, /turf/open/floor/wood, /area/station/command/heads_quarters/hos) "mky" = ( @@ -36850,8 +37636,6 @@ /turf/open/floor/engine, /area/station/ai_monitored/turret_protected/aisat/foyer) "mld" = ( -/obj/machinery/light/small/directional/west, -/obj/structure/sign/poster/contraband/random/directional/west, /obj/effect/spawner/random/structure/table_or_rack, /obj/item/extinguisher, /obj/item/tank/internals/oxygen/red, @@ -36866,9 +37650,11 @@ /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) "mlj" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +/obj/machinery/announcement_system, +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/station/tcommsat/computer) "mlt" = ( /obj/machinery/firealarm/directional/south, /obj/machinery/light_switch/directional/south{ @@ -36948,14 +37734,8 @@ /turf/open/floor/engine/vacuum, /area/station/engineering/atmos) "mnA" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/catwalk_floor, -/area/station/maintenance/department/science) +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "mnW" = ( /obj/machinery/atmospherics/pipe/smart/simple/general/visible{ dir = 9 @@ -37031,6 +37811,7 @@ /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 8 }, +/obj/machinery/light/directional/west, /obj/item/radio/intercom/directional/west, /obj/machinery/computer/scan_consolenew{ dir = 4 @@ -37041,6 +37822,7 @@ /obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ dir = 1 }, +/obj/structure/closet/toolcloset, /turf/open/floor/iron/dark, /area/station/construction/mining/aux_base) "mpQ" = ( @@ -37051,10 +37833,12 @@ /turf/open/floor/iron/white, /area/station/medical/patients_rooms/room_a) "mpW" = ( -/obj/effect/turf_decal/trimline/red/filled/warning{ +/obj/effect/turf_decal/trimline/red/filled/corner{ dir = 1 }, -/obj/effect/turf_decal/trimline/red/warning, +/obj/effect/turf_decal/trimline/red/line{ + dir = 6 + }, /turf/open/floor/iron/dark, /area/station/hallway/primary/central) "mpY" = ( @@ -37081,7 +37865,7 @@ /turf/open/floor/plating, /area/station/maintenance/port/fore) "mqW" = ( -/obj/structure/chair/comfy/black, +/obj/structure/chair/office, /obj/effect/landmark/start/head_of_security, /turf/open/floor/carpet/red, /area/station/command/heads_quarters/hos) @@ -37111,13 +37895,16 @@ dir = 4 }, /obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 8; - piping_layer = 2 + dir = 8 }, /turf/open/floor/iron/dark, /area/station/science/ordnance) "mrl" = ( -/obj/machinery/door/poddoor/incinerator_atmos_main, +/obj/machinery/air_sensor/incinerator_tank, +/obj/machinery/atmospherics/pipe/smart/manifold4w/pink/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 9 + }, /turf/open/floor/engine, /area/station/maintenance/disposal/incinerator) "mrv" = ( @@ -37135,26 +37922,10 @@ /obj/effect/mapping_helpers/airlock/access/all/security/general, /turf/open/floor/iron/dark/textured, /area/station/security/checkpoint/escape) -"mrB" = ( -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 8 - }, -/obj/machinery/light/directional/west, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable, -/obj/structure/table, -/obj/item/paper_bin, -/obj/item/folder, -/obj/item/pen, -/turf/open/floor/iron/white, -/area/station/science/explab) "mrF" = ( /obj/effect/turf_decal/trimline/green/filled/corner{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, /turf/open/floor/iron/dark/corner{ dir = 8 }, @@ -37176,7 +37947,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/turf/open/floor/iron/dark, +/turf/open/floor/iron, /area/station/commons/fitness) "mrM" = ( /obj/effect/turf_decal/tile/neutral{ @@ -37212,7 +37983,8 @@ /turf/open/floor/iron/white/textured, /area/station/medical/pharmacy) "mse" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, /turf/open/floor/iron/dark/smooth_large, /area/station/tcommsat/computer) "msk" = ( @@ -37287,24 +38059,19 @@ /turf/open/floor/plating, /area/station/engineering/atmos) "mtN" = ( -/obj/effect/turf_decal/trimline/blue/filled/line, -/obj/effect/turf_decal/trimline/blue/line{ - dir = 1 - }, -/obj/item/radio/intercom/directional/south, -/turf/open/floor/iron/dark, -/area/station/hallway/primary/central) +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/commons/storage/primary) "mug" = ( /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/security/checkpoint/supply) "muu" = ( /obj/machinery/light/directional/east, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable, /obj/item/kirbyplants/random, /turf/open/floor/iron/dark/smooth_large, -/area/station/maintenance/department/security) +/area/station/security/office) "muy" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -37336,9 +38103,7 @@ /turf/open/floor/iron/dark, /area/station/hallway/primary/fore) "muI" = ( -/obj/machinery/power/turbine/turbine_outlet{ - dir = 8 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/pink/visible/layer2, /turf/open/floor/engine, /area/station/maintenance/disposal/incinerator) "muO" = ( @@ -37396,15 +38161,25 @@ /turf/open/floor/carpet/blue, /area/station/commons/dorms/room2) "mvc" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 9 +/obj/machinery/corral_corner{ + mapping_id = "4" }, -/obj/machinery/duct, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/catwalk_floor/iron, -/area/station/maintenance/department/science) +/obj/machinery/slime_pen_controller{ + mapping_id = "4" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 10 + }, +/obj/machinery/light/neon_lining{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"mvo" = ( +/obj/structure/sign/warning/electric_shock/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "mvr" = ( /obj/structure/flora/rock/pile/jungle/large/style_random, /obj/structure/flora/tree/jungle/style_random, @@ -37436,6 +38211,9 @@ /obj/effect/turf_decal/trimline/red/filled/line{ dir = 1 }, +/obj/machinery/light/small/directional/north, +/obj/machinery/airalarm/directional/north, +/obj/effect/mapping_helpers/airalarm/all_access, /obj/structure/table, /obj/item/storage/backpack/duffelbag/sec/surgery{ pixel_y = 5 @@ -37480,7 +38258,11 @@ /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 8 }, -/obj/machinery/camera/autoname/directional/west, +/obj/machinery/camera/directional/west{ + c_tag = "Science - Break Room"; + name = "science camera"; + network = list("ss13","rd") + }, /obj/structure/sign/poster/official/random/directional/west, /obj/structure/table, /obj/machinery/microwave{ @@ -37515,12 +38297,6 @@ /obj/structure/foamedmetal, /turf/open/floor/plating, /area/station/maintenance/department/eva) -"mxo" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/turf/open/floor/iron/white, -/area/station/science/explab) "mxu" = ( /obj/structure/closet/wardrobe/white, /obj/item/clothing/shoes/jackboots, @@ -37539,18 +38315,9 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/white, /area/station/science/research) -"mxG" = ( -/obj/effect/turf_decal/tile/yellow/half/contrasted{ - dir = 8 - }, -/obj/machinery/computer/telecomms/traffic{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/tcommsat/computer) "mxN" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line, -/obj/effect/turf_decal/trimline/yellow/line{ +/obj/effect/turf_decal/trimline/green/filled/line, +/obj/effect/turf_decal/trimline/green/line{ dir = 1 }, /turf/open/floor/iron/dark, @@ -37597,12 +38364,23 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, /area/station/service/abandoned_gambling_den) +"myI" = ( +/obj/machinery/light/small/directional/west, +/obj/structure/sign/warning/test_chamber/directional/west, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/department/science) "myR" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron/dark, /area/station/engineering/engine_smes) +"mze" = ( +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "mzf" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/structure/table, @@ -37614,6 +38392,15 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) +"mzj" = ( +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/station/commons/fitness) "mzn" = ( /obj/effect/turf_decal/tile/blue/fourcorners, /obj/structure/cable, @@ -37652,14 +38439,40 @@ }, /turf/open/floor/iron/dark, /area/station/hallway/primary/central) +"mzz" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research/glass{ + name = "Nanite Lab" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/turf/open/floor/iron/white/textured, +/area/station/science/auxlab) +"mzC" = ( +/obj/machinery/light/small/directional/east, +/obj/machinery/camera/directional/east{ + c_tag = "Engineering - Shipbreaking, Control Room"; + name = "engineering camera" + }, +/obj/machinery/light_switch/directional/south, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron/dark/side/airless{ + dir = 6 + }, +/area/station/maintenance/space_hut) "mzF" = ( /obj/effect/turf_decal/trimline/neutral/line{ dir = 4 }, -/obj/effect/turf_decal/trimline/neutral/filled/corner{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/neutral/filled/corner{ +/obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 }, /obj/effect/turf_decal/stripes/corner{ @@ -37668,9 +38481,6 @@ /obj/effect/turf_decal/stripes/corner{ dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) "mzK" = ( @@ -37701,6 +38511,7 @@ c_tag = "Commons - Vacant Commissary"; name = "commons camera" }, +/obj/machinery/light_switch/directional/south, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, /area/station/commons/vacant_room/commissary) @@ -37710,6 +38521,7 @@ dir = 1 }, /obj/structure/sign/poster/official/random/directional/north, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/dark, /area/station/hallway/primary/port) "mAE" = ( @@ -37722,14 +38534,16 @@ /area/station/science/research) "mAO" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 9 + dir = 8 + }, +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 4 }, -/obj/effect/turf_decal/trimline/yellow/corner, /obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ dir = 6 }, /turf/open/floor/iron/dark/side{ - dir = 9 + dir = 8 }, /area/station/hallway/primary/aft) "mAR" = ( @@ -37778,12 +38592,6 @@ }, /turf/open/floor/iron/dark, /area/station/hallway/primary/starboard) -"mCg" = ( -/obj/machinery/light/small/directional/east, -/obj/machinery/space_heater, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) "mCl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/chair/wood{ @@ -37806,6 +38614,9 @@ /obj/machinery/power/terminal, /turf/open/floor/plating, /area/station/maintenance/solars/port/fore) +"mCx" = ( +/turf/open/floor/engine, +/area/station/science/explab) "mCK" = ( /obj/machinery/light/small/directional/east, /turf/open/floor/engine/co2, @@ -37831,6 +38642,10 @@ "mDv" = ( /turf/closed/wall/r_wall, /area/station/maintenance/department/engine) +"mDE" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/carpet, +/area/station/commons/locker) "mDM" = ( /obj/effect/turf_decal/tile/yellow/opposingcorners{ dir = 1 @@ -37840,12 +38655,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/chemistry) -"mDP" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "mDR" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -37881,8 +38690,16 @@ /turf/open/floor/iron/white, /area/station/science/genetics) "mEg" = ( -/turf/open/floor/wood, -/area/station/commons/vacant_room/office) +/obj/structure/extinguisher_cabinet/directional/south, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/machinery/camera/directional/south{ + c_tag = "Command - Nanotrasen Representative's Office, Hallway"; + name = "command camera" + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/nt_rep) "mEi" = ( /obj/effect/turf_decal/siding/wood/corner, /obj/machinery/light/small/directional/west, @@ -37898,12 +38715,14 @@ /turf/open/floor/iron, /area/station/command/heads_quarters/ce) "mEs" = ( -/obj/effect/turf_decal/trimline/dark_red/filled/line, -/obj/effect/turf_decal/trimline/dark_red/line{ +/obj/machinery/computer/upload/borg{ dir = 1 }, -/obj/structure/window/reinforced/spawner/directional/north, -/turf/open/floor/iron/dark, +/obj/machinery/flasher/directional/south{ + id = "AI"; + name = "Meatbag Pacifier" + }, +/turf/open/floor/circuit, /area/station/ai_monitored/turret_protected/ai_upload) "mEz" = ( /obj/structure/dresser, @@ -37944,6 +38763,14 @@ /obj/item/reagent_containers/blood, /turf/open/floor/iron/white, /area/station/security/medical) +"mFj" = ( +/obj/effect/spawner/random/medical/two_percent_xeno_egg_spawner, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"mFp" = ( +/obj/machinery/duct, +/turf/open/floor/wood/large, +/area/station/command/heads_quarters/nt_rep) "mFK" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/plating, @@ -37987,18 +38814,22 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/hallway/primary/starboard) +"mGR" = ( +/obj/structure/closet/firecloset/wall/directional/east, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/department/science) "mHm" = ( /obj/effect/turf_decal/tile/yellow, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, /turf/open/floor/iron/dark/side{ dir = 4 }, /area/station/tcommsat/computer) "mHH" = ( -/obj/effect/turf_decal/siding/wood/corner, -/obj/machinery/holopad, +/obj/structure/chair/office{ + dir = 8 + }, +/obj/effect/landmark/start/detective, /turf/open/floor/wood, /area/station/security/detectives_office) "mHO" = ( @@ -38113,7 +38944,8 @@ /turf/open/floor/wood, /area/station/commons/locker) "mJo" = ( -/obj/machinery/space_heater, +/obj/structure/sign/warning/hot_temp/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) "mJw" = ( @@ -38133,7 +38965,9 @@ /turf/open/floor/iron/white, /area/station/science/genetics) "mJS" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, /turf/open/floor/iron, /area/station/engineering/main) "mKa" = ( @@ -38169,7 +39003,7 @@ }, /area/station/service/hydroponics) "mLh" = ( -/obj/structure/chair{ +/obj/structure/chair/plastic{ dir = 1 }, /obj/machinery/flasher/directional/west{ @@ -38177,6 +39011,10 @@ }, /turf/open/floor/iron/dark, /area/station/security/prison/visit) +"mLx" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron, +/area/station/maintenance/department/science) "mMt" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -38209,6 +39047,35 @@ /obj/machinery/pdapainter, /turf/open/floor/wood, /area/station/command/heads_quarters/hop) +"mMD" = ( +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/layer_manifold/cyan/hidden{ + dir = 4 + }, +/obj/structure/table, +/obj/item/folder/yellow{ + pixel_x = 3; + pixel_y = 6 + }, +/obj/item/folder/yellow{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/folder/yellow{ + pixel_x = 3 + }, +/obj/item/paper_bin{ + pixel_x = -3 + }, +/obj/item/pen{ + pixel_x = -3 + }, +/turf/open/floor/iron/dark/side{ + dir = 10 + }, +/area/station/tcommsat/computer) "mMQ" = ( /obj/effect/turf_decal/tile/dark_blue/fourcorners, /obj/effect/turf_decal/plaque{ @@ -38218,17 +39085,6 @@ /obj/structure/railing, /turf/open/floor/iron/dark, /area/station/hallway/primary/central) -"mMS" = ( -/obj/effect/turf_decal/trimline/purple/filled/warning{ - dir = 5 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/sorting/mail, -/obj/effect/mapping_helpers/mail_sorting/science/experimentor_lab, -/turf/open/floor/iron/white, -/area/station/science/explab) "mMX" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 1 @@ -38249,7 +39105,6 @@ "mNd" = ( /obj/effect/turf_decal/tile/green/half/contrasted, /obj/machinery/duct, -/obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/port) "mNq" = ( @@ -38272,7 +39127,10 @@ /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/restrooms) "mNy" = ( -/obj/machinery/atmospherics/pipe/smart/simple/pink/visible, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) "mNz" = ( @@ -38284,16 +39142,17 @@ /turf/open/floor/iron/white, /area/station/medical/treatment_center) "mNF" = ( -/obj/effect/turf_decal/trimline/dark_red/corner{ +/obj/effect/turf_decal/stripes/corner{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/corner{ dir = 1 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/spawner/random/engineering/tracking_beacon, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) -"mNW" = ( -/turf/open/floor/iron/freezer, -/area/station/science/xenobiology) "mOc" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/dark/side{ @@ -38341,6 +39200,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, +/obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/commons/dorms/laundry) "mOH" = ( @@ -38351,6 +39211,12 @@ /obj/structure/sign/departments/maint/directional/south, /turf/open/floor/iron/dark, /area/station/hallway/primary/starboard) +"mOJ" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 8 + }, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) "mOO" = ( /obj/machinery/camera/emp_proof/directional/south{ name = "engineering camera"; @@ -38400,6 +39266,14 @@ /obj/structure/cable, /turf/open/floor/iron/kitchen, /area/station/service/kitchen) +"mPp" = ( +/obj/structure/table/reinforced/rglass, +/obj/machinery/reagentgrinder{ + pixel_y = 5 + }, +/obj/item/stack/sheet/mineral/plasma/five, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "mPK" = ( /obj/effect/turf_decal/trimline/dark_blue/filled/line{ dir = 8 @@ -38411,18 +39285,11 @@ /turf/open/floor/iron/dark, /area/station/hallway/primary/central) "mQo" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/small/directional/north, -/obj/machinery/camera/directional/north{ - c_tag = "Maintenance - Science Pass-through, Artifact Lab"; - name = "maintenance camera"; - network = list("ss13","rd") +/obj/machinery/plumbing/ooze_sucker{ + mapping_id = "6" }, -/obj/machinery/status_display/evac/directional/north, -/obj/structure/table, -/obj/effect/spawner/random/maintenance, -/turf/open/floor/iron, -/area/station/maintenance/department/science) +/turf/open/floor/engine, +/area/station/science/xenobiology) "mQx" = ( /obj/structure/closet/secure_closet/freezer/meat{ req_access = null @@ -38430,16 +39297,20 @@ /turf/open/floor/iron/kitchen, /area/station/security/prison/mess) "mQA" = ( -/obj/machinery/status_display/evac/directional/west, -/obj/structure/chair/sofa/corp{ +/obj/effect/turf_decal/trimline/dark_blue/filled/line{ + dir = 8 + }, +/obj/structure/chair/sofa/corp/right{ dir = 4 }, -/turf/open/floor/carpet/blue, +/turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) "mQF" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, -/obj/machinery/atmospherics/pipe/smart/manifold4w/pink/visible/layer2, -/turf/closed/wall/r_wall, +/obj/effect/turf_decal/stripes/corner{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) "mQR" = ( /obj/effect/turf_decal/trimline/neutral/filled/warning, @@ -38461,6 +39332,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, +/obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/commons/dorms/laundry) "mRp" = ( @@ -38495,10 +39367,10 @@ /turf/open/floor/iron/dark, /area/station/engineering/transit_tube) "mRG" = ( -/obj/effect/turf_decal/stripes/line{ +/obj/effect/turf_decal/siding/thinplating/dark{ dir = 1 }, -/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/siding/thinplating/dark, /turf/open/floor/iron/dark, /area/station/engineering/atmos/storage) "mRL" = ( @@ -38521,12 +39393,6 @@ /obj/item/mop, /turf/open/floor/plating, /area/station/maintenance/port) -"mSx" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/hallway/secondary/entry) "mSC" = ( /obj/machinery/vending/boozeomat/all_access, /turf/open/floor/wood, @@ -38544,6 +39410,16 @@ /obj/structure/marker_beacon/burgundy, /turf/open/space/basic, /area/space/nearstation) +"mTh" = ( +/obj/structure/sign/picture_frame/showroom/four{ + pixel_x = -32 + }, +/obj/structure/table/wood/fancy/green, +/obj/item/statuebust{ + pixel_y = 8 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/nt_rep) "mTj" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -38586,7 +39462,7 @@ /obj/structure/cable, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/bathroom{ - name = "Bathroom" + name = "Restroom" }, /obj/effect/landmark/navigate_destination{ location = "Bathroom" @@ -38647,6 +39523,11 @@ "mUw" = ( /turf/open/floor/wood, /area/station/service/lawoffice) +"mUz" = ( +/obj/machinery/light/small/directional/north, +/obj/structure/reagent_dispensers/watertank, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "mUA" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -38731,9 +39612,12 @@ /turf/open/floor/iron/dark, /area/station/security/checkpoint/supply) "mVH" = ( -/obj/machinery/camera/autoname/directional/south, -/turf/open/floor/iron/dark, -/area/station/security/prison) +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured, +/area/station/security/prison/mess) "mVS" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 1 @@ -38744,9 +39628,7 @@ /turf/open/floor/iron/dark, /area/station/medical/morgue) "mVX" = ( -/obj/effect/turf_decal/trimline/neutral/filled/end{ - dir = 8 - }, +/obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/stripes/end{ dir = 8 }, @@ -38853,14 +39735,11 @@ }, /turf/open/floor/iron/dark, /area/station/construction/mining/aux_base) -"mXY" = ( -/obj/machinery/station_map/directional/west, -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "mYl" = ( /obj/machinery/light/small/directional/north, -/obj/effect/spawner/random/structure/closet_maintenance, +/obj/structure/closet/secure_closet{ + req_access = list("engineering") + }, /turf/open/floor/plating, /area/station/maintenance/port/aft) "mYI" = ( @@ -38945,10 +39824,11 @@ /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/restrooms) "nax" = ( -/obj/machinery/firealarm/directional/south{ - pixel_x = -5 - }, -/turf/open/floor/carpet/neon/simple/pink, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, /area/station/science/xenobiology) "naK" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ @@ -38967,6 +39847,10 @@ /obj/structure/sign/poster/official/random/directional/south, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) +"naY" = ( +/obj/structure/cable, +/turf/open/floor/iron/kitchen, +/area/station/command/heads_quarters/nt_rep) "nbg" = ( /obj/effect/spawner/random/structure/girder, /turf/open/floor/plating, @@ -38980,6 +39864,18 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/maintenance/department/electrical) +"nbH" = ( +/obj/machinery/corral_corner{ + mapping_id = "2" + }, +/obj/machinery/light/neon_lining{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "nbP" = ( /obj/machinery/light/small/directional/north, /obj/structure/reagent_dispensers/plumbed, @@ -38991,6 +39887,16 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/science) +"ncg" = ( +/obj/machinery/camera/directional/north{ + c_tag = "Maintenance - Science Pass-through, Xenobiology Access"; + name = "maintenance camera"; + network = list("ss13","rd","xeno") + }, +/obj/structure/sign/departments/xenobio/directional/north, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/department/science) "nck" = ( /obj/machinery/air_sensor/oxygen_tank, /turf/open/floor/engine/o2, @@ -39025,7 +39931,7 @@ /area/station/cargo/miningoffice) "ncG" = ( /obj/machinery/camera/autoname/directional/south, -/obj/machinery/airalarm/directional/south, +/obj/item/radio/intercom/prison/directional/south, /obj/machinery/seed_extractor, /turf/open/floor/iron/dark, /area/station/security/prison/garden) @@ -39126,19 +40032,12 @@ /obj/effect/mapping_helpers/requests_console/assistance, /obj/effect/mapping_helpers/requests_console/supplies, /obj/structure/table/reinforced, -/obj/item/paper_bin{ - pixel_y = 6 - }, -/obj/item/clipboard{ - pixel_y = 6 - }, -/obj/item/folder/yellow{ +/obj/item/storage/fancy/cigarettes/cigars{ pixel_y = 6 }, -/obj/item/pen{ - pixel_y = 4 +/obj/item/lighter{ + pixel_x = 6 }, -/obj/item/stamp/head/ce, /turf/open/floor/iron/dark/side{ dir = 1 }, @@ -39222,6 +40121,10 @@ /obj/structure/cable, /turf/open/floor/stone, /area/station/smithing) +"nfA" = ( +/obj/machinery/status_display/evac/directional/north, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/nt_rep) "nfR" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible/layer4{ dir = 4 @@ -39313,11 +40216,14 @@ /area/station/maintenance/port/fore) "nha" = ( /obj/effect/turf_decal/siding/wood, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/turf/open/floor/wood, -/area/station/commons/vacant_room/office) +/turf/open/floor/wood/tile, +/area/station/command/heads_quarters/nt_rep) "nhh" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -39339,6 +40245,7 @@ dir = 1 }, /obj/effect/turf_decal/stripes/line, +/obj/structure/cable, /obj/machinery/door/poddoor/preopen{ id = "engineering"; name = "Engineering Blast Door" @@ -39359,18 +40266,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/checker, /area/station/science/lab) -"nhv" = ( -/obj/machinery/light/small/directional/south, -/obj/machinery/camera/directional/south{ - c_tag = "Maintenance - Science Pass-through, Ordnance"; - name = "maintenance camera"; - network = list("ss13","rd") - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/maintenance/department/science) "nhL" = ( /obj/effect/turf_decal/tile/blue/fourcorners, /obj/structure/disposalpipe/trunk{ @@ -39379,13 +40274,6 @@ /obj/machinery/disposal/bin, /turf/open/floor/iron/white, /area/station/medical/office) -"nhQ" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) "nhS" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 9 @@ -39463,8 +40351,8 @@ /turf/open/floor/plating, /area/station/cargo/miningoffice) "niG" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line, -/obj/effect/turf_decal/trimline/yellow/line{ +/obj/effect/turf_decal/trimline/green/filled/line, +/obj/effect/turf_decal/trimline/green/line{ dir = 1 }, /obj/effect/landmark/start/hangover, @@ -39551,6 +40439,12 @@ dir = 1 }, /area/station/cargo/storage) +"nks" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "nku" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 4 @@ -39591,6 +40485,13 @@ }, /turf/open/floor/iron/white, /area/station/science/lab) +"nkF" = ( +/obj/effect/turf_decal/vg_decals/numbers/three, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/dark/smooth_large, +/area/station/security/brig) "nkU" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/structure/chair_maintenance{ @@ -39599,14 +40500,11 @@ /turf/open/floor/plating, /area/station/maintenance/department/cargo) "nld" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/structure/chair/wood{ - dir = 4 - }, -/turf/open/floor/wood, -/area/station/commons/vacant_room/office) +/obj/machinery/light/small/directional/south, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/item/kirbyplants/random, +/turf/open/floor/wood/tile, +/area/station/command/heads_quarters/nt_rep) "nlg" = ( /obj/effect/turf_decal/tile/red/fourcorners, /obj/structure/extinguisher_cabinet/directional/west, @@ -39616,7 +40514,8 @@ /turf/open/floor/iron/dark, /area/station/security/checkpoint/escape) "nli" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, +/obj/machinery/atmospherics/pipe/smart/manifold4w/pink/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) "nlj" = ( @@ -39652,12 +40551,10 @@ /turf/open/floor/iron/dark, /area/station/engineering/atmos) "nlU" = ( -/obj/structure/disposalpipe/segment{ - dir = 9 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/camera/autoname/directional/west, +/obj/item/radio/intercom/directional/west, +/obj/structure/disposalpipe/segment, +/obj/item/kirbyplants/random, /turf/open/floor/wood, /area/station/service/lawoffice) "nmf" = ( @@ -39681,6 +40578,21 @@ /obj/structure/filingcabinet, /turf/open/floor/wood, /area/station/command/meeting_room) +"nmR" = ( +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/dark_blue/warning{ + dir = 4 + }, +/obj/machinery/firealarm/directional/south{ + pixel_x = 5 + }, +/obj/machinery/light_switch/directional/south{ + pixel_x = -5 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/command/storage/eva) "nmX" = ( /obj/effect/spawner/random/trash/graffiti, /obj/effect/decal/cleanable/dirt, @@ -39720,10 +40632,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/construction/mining/aux_base) -"nnE" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) "nnG" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -39733,6 +40641,7 @@ /obj/effect/turf_decal/trimline/red/filled/line{ dir = 4 }, +/obj/machinery/light/small/directional/east, /obj/machinery/camera/directional/east{ c_tag = "Security - Cell 4"; name = "security camera" @@ -39776,9 +40685,11 @@ dir = 6 }, /obj/machinery/light_switch/directional/south{ - pixel_x = -8 + pixel_x = 5 + }, +/obj/machinery/firealarm/directional/south{ + pixel_x = -5 }, -/obj/machinery/firealarm/directional/south, /turf/open/floor/iron/dark, /area/station/security/warden) "noo" = ( @@ -39811,19 +40722,27 @@ /turf/open/floor/plating, /area/station/maintenance/port/fore) "noQ" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, /obj/machinery/duct, /obj/structure/window/reinforced/spawner/directional/south, /obj/structure/table/reinforced, -/obj/machinery/chem_dispenser/drinks/beer{ +/obj/machinery/chem_dispenser/drinks{ dir = 1 }, -/turf/open/floor/iron/kitchen, +/turf/open/floor/iron/dark/textured, /area/station/security/prison/mess) "npa" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/commons/fitness) "npc" = ( /obj/machinery/light/directional/west, /obj/structure/table/wood, @@ -39875,7 +40794,6 @@ "nqm" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/light/floor/has_bulb, /turf/open/floor/iron/dark/side{ dir = 1 }, @@ -39886,6 +40804,10 @@ }, /turf/open/floor/iron/dark, /area/station/security/prison) +"nqJ" = ( +/obj/effect/turf_decal/vg_decals/numbers/four, +/turf/open/floor/plating/airless, +/area/space/nearstation) "nqN" = ( /obj/structure/cable/layer1, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -39899,6 +40821,15 @@ /obj/machinery/duct, /turf/open/floor/plating, /area/station/maintenance/department/engineering/central) +"nrg" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/firealarm/directional/east, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor/iron, +/area/station/maintenance/starboard/aft) "nrh" = ( /obj/structure/chair/sofa/bench/right, /turf/open/floor/plating, @@ -39907,6 +40838,7 @@ /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 6 }, +/obj/structure/extinguisher_cabinet/directional/east, /obj/structure/disposalpipe/trunk{ dir = 1 }, @@ -39955,7 +40887,6 @@ "nrX" = ( /obj/machinery/light/small/directional/north, /obj/machinery/camera/autoname/directional/north, -/obj/machinery/atm/directional/north, /obj/structure/closet/secure_closet/personal, /turf/open/floor/iron/dark/side{ dir = 1 @@ -39975,7 +40906,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/box, /obj/machinery/holopad, -/obj/effect/landmark/event_spawn, /turf/open/floor/iron/dark/smooth_large, /area/station/hallway/primary/central) "nsk" = ( @@ -39999,9 +40929,9 @@ /turf/open/floor/iron/white/textured, /area/station/medical/medbay/central) "nst" = ( -/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/main) "nsw" = ( @@ -40018,7 +40948,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/light/directional/north, /obj/structure/filingcabinet, /turf/open/floor/wood/tile, /area/station/service/chapel/office) @@ -40085,16 +41014,6 @@ /obj/structure/flora/bush/leavy/style_random, /turf/open/floor/grass, /area/station/hallway/primary/central) -"ntI" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/table/reinforced, -/obj/machinery/computer/security/telescreen{ - name = "Test Chamber Monitor"; - network = list("xeno"); - pixel_y = 2 - }, -/turf/open/floor/iron, -/area/station/science/xenobiology) "ntM" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 4 @@ -40123,7 +41042,8 @@ id_tag = "bsq_to_cq"; name = "Blueshield's Quarters to Captain's Quarters" }, -/obj/effect/mapping_helpers/airlock/access/all/admin/general, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, /obj/effect/mapping_helpers/airlock/locked, /turf/open/floor/iron/dark/textured, /area/station/command/heads_quarters/blueshield) @@ -40230,7 +41150,7 @@ }, /obj/effect/turf_decal/stripes/line, /obj/machinery/door/airlock/external{ - name = "Port Docking Bay 2" + name = "Docking Bay 2" }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 @@ -40267,6 +41187,25 @@ }, /turf/open/floor/iron/white, /area/station/science/research) +"nwZ" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/structure/liquid_barrier, +/obj/machinery/door/airlock/maintenance{ + name = "Xenobiology Maintenance" + }, +/obj/effect/mapping_helpers/airlock/access/any/science/xenobio, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/science/xenobiology) "nxf" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -40351,6 +41290,23 @@ /obj/structure/closet/emcloset/anchored, /turf/open/floor/iron/dark, /area/station/hallway/secondary/exit/departure_lounge) +"nye" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, +/obj/machinery/door/airlock/grunge{ + name = "Cytology Pen Gas Control" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/science/xenobiology) "nyh" = ( /turf/open/floor/carpet/blue, /area/station/commons/dorms/room2) @@ -40384,9 +41340,11 @@ /turf/open/floor/engine, /area/station/ai_monitored/turret_protected/aisat_interior) "nyL" = ( -/obj/effect/turf_decal/siding/wood/corner, -/turf/open/floor/wood, -/area/station/commons/vacant_room/office) +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark/side, +/area/station/commons/dorms) "nyQ" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 4 @@ -40408,6 +41366,10 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/aft) +"nzl" = ( +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron/dark, +/area/station/command/bridge) "nzn" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/north, @@ -40417,6 +41379,7 @@ /obj/effect/turf_decal/trimline/red/filled/line{ dir = 4 }, +/obj/machinery/light/small/directional/east, /obj/machinery/camera/directional/east{ c_tag = "Security - Cell 1"; name = "security camera" @@ -40426,6 +41389,12 @@ }, /turf/open/floor/iron/dark, /area/station/security/brig) +"nzG" = ( +/obj/effect/turf_decal/stripes/red/line{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "nzT" = ( /obj/machinery/meter, /obj/machinery/atmospherics/pipe/smart/manifold/general/visible{ @@ -40477,9 +41446,11 @@ /turf/open/floor/iron/dark, /area/station/command/teleporter) "nAM" = ( -/obj/machinery/firealarm/directional/north, +/obj/machinery/firealarm/directional/north{ + pixel_x = 5 + }, /obj/machinery/light_switch/directional/north{ - pixel_x = 8 + pixel_x = -5 }, /obj/structure/closet/radiation, /turf/open/floor/iron/textured, @@ -40504,7 +41475,7 @@ /area/space) "nAW" = ( /obj/structure/window/reinforced/spawner/directional/north, -/turf/open/floor/iron/dark, +/turf/open/floor/iron/dark/textured, /area/station/commons/fitness/recreation) "nBb" = ( /obj/machinery/light/small/directional/west, @@ -40587,12 +41558,6 @@ }, /turf/open/floor/iron/dark, /area/station/hallway/primary/starboard) -"nBS" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "nBV" = ( /obj/structure/disposalpipe/junction/flip{ dir = 4 @@ -40603,13 +41568,9 @@ /turf/open/floor/catwalk_floor, /area/station/maintenance/department/science) "nBX" = ( -/obj/effect/turf_decal/trimline/neutral/line, -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/iron/dark, -/area/station/hallway/primary/port) +/obj/machinery/firealarm/directional/south, +/turf/open/floor/carpet, +/area/station/hallway/secondary/entry) "nCp" = ( /obj/effect/turf_decal/box, /obj/machinery/holopad, @@ -40657,6 +41618,11 @@ dir = 4 }, /obj/machinery/light/small/directional/east, +/obj/machinery/camera/directional/east{ + c_tag = "Medical - Lobby"; + network = list("ss13","medbay"); + name = "medical camera" + }, /obj/machinery/power/apc/auto_name/directional/east, /obj/structure/cable, /obj/structure/chair/sofa/corp{ @@ -40666,13 +41632,13 @@ /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) "nDq" = ( -/obj/structure/cable, /obj/effect/turf_decal/siding/wood{ dir = 8 }, /obj/effect/turf_decal/siding/wood{ dir = 4 }, +/obj/structure/cable, /turf/open/floor/iron/dark, /area/station/security/prison/garden) "nDu" = ( @@ -40746,9 +41712,11 @@ /turf/open/floor/iron/white, /area/station/medical/chemistry) "nDy" = ( +/obj/effect/turf_decal/box, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, -/turf/open/floor/iron/dark, +/obj/machinery/holopad, +/turf/open/floor/iron/dark/smooth_large, /area/station/security/prison/visit) "nDF" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ @@ -40758,8 +41726,7 @@ /turf/open/floor/iron/white, /area/station/medical/storage) "nDK" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, /area/station/service/hydroponics/garden) "nEb" = ( @@ -40773,10 +41740,11 @@ /turf/open/floor/iron/dark, /area/station/engineering/storage/tech) "nEI" = ( -/obj/effect/spawner/random/trash/hobo_squat, -/obj/effect/mob_spawn/corpse/human/assistant, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 10 + }, +/turf/open/floor/iron/dark, +/area/station/security/execution) "nEU" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -40814,6 +41782,11 @@ /obj/structure/extinguisher_cabinet/directional/south, /turf/open/floor/iron/dark/side, /area/station/cargo/storage) +"nFt" = ( +/obj/structure/extinguisher_cabinet/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "nFw" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 8 @@ -40890,8 +41863,8 @@ /turf/open/floor/carpet/red, /area/station/commons/dorms/room6) "nGW" = ( -/obj/effect/decal/cleanable/generic, -/obj/effect/decal/cleanable/robot_debris/down, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/garbage, /turf/open/floor/iron/checker, /area/station/maintenance/port/fore) "nHp" = ( @@ -40899,23 +41872,9 @@ /obj/structure/flora/bush/sparsegrass/style_random, /turf/open/floor/grass, /area/station/hallway/primary/central) -"nHx" = ( -/obj/machinery/corral_corner{ - mapping_id = "6" - }, -/obj/machinery/light/neon_lining{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "nHH" = ( -/obj/effect/spawner/random/vending/colavend, -/turf/open/floor/iron/dark/side{ - dir = 1 - }, +/obj/structure/chair/sofa/left/maroon, +/turf/open/floor/iron, /area/station/commons/fitness/recreation) "nHY" = ( /obj/effect/spawner/structure/window/reinforced, @@ -40938,17 +41897,14 @@ /turf/open/floor/carpet/red, /area/station/commons/dorms/room6) "nIb" = ( -/obj/machinery/camera/directional/west{ - c_tag = "Engineering - Atmospherics Incinerator"; - name = "engineering camera" - }, +/obj/effect/turf_decal/stripes/line, /obj/machinery/firealarm/directional/west{ pixel_y = 5 }, -/obj/machinery/atmospherics/components/tank/plasma, /obj/machinery/light_switch/directional/west{ pixel_y = -5 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) "nIs" = ( @@ -40972,11 +41928,9 @@ /turf/open/floor/catwalk_floor/iron_dark, /area/station/maintenance/department/science) "nIt" = ( -/obj/effect/turf_decal/trimline/dark_blue/filled/line{ - dir = 1 +/obj/machinery/ai_slipper{ + uses = 10 }, -/obj/effect/turf_decal/trimline/dark_red/line, -/obj/structure/window/reinforced/spawner/directional/south, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) "nIw" = ( @@ -40989,6 +41943,9 @@ /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 8 }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, /turf/open/floor/iron/dark, /area/station/science/ordnance) "nIC" = ( @@ -40998,13 +41955,10 @@ /turf/open/floor/iron, /area/station/science/robotics/lab) "nIG" = ( -/obj/machinery/door/poddoor/preopen{ - id = "execution_fireblast" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, -/obj/effect/spawner/structure/window/reinforced/plasma, +/obj/effect/decal/cleanable/dirt, +/obj/item/picket_sign, /turf/open/floor/plating, -/area/station/security/execution) +/area/station/maintenance/port/fore) "nII" = ( /obj/machinery/light/small/directional/south, /obj/machinery/power/apc/auto_name/directional/south, @@ -41028,7 +41982,10 @@ /obj/machinery/light_switch/directional/south{ pixel_x = -5 }, -/obj/machinery/camera/autoname/directional/south, +/obj/machinery/camera/directional/south{ + c_tag = "Service - Chapel Office"; + name = "service camera" + }, /turf/open/floor/wood/tile, /area/station/service/chapel/office) "nJa" = ( @@ -41036,13 +41993,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/service/hydroponics) -"nJb" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "nJc" = ( /obj/effect/turf_decal/tile/yellow/fourcorners, /obj/structure/chair/sofa/bench/left{ @@ -41067,7 +42017,7 @@ /turf/open/floor/iron/dark/textured, /area/station/commons/dorms/room4) "nJk" = ( -/turf/open/floor/carpet/green, +/turf/open/floor/carpet, /area/station/commons/locker) "nJo" = ( /obj/effect/turf_decal/trimline/red/filled/warning, @@ -41175,6 +42125,10 @@ }, /turf/open/floor/wood, /area/station/service/abandoned_gambling_den) +"nKK" = ( +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/iron/white, +/area/station/science/explab) "nKP" = ( /obj/structure/extinguisher_cabinet/directional/east, /obj/machinery/cryopod{ @@ -41192,12 +42146,12 @@ }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/highsecurity{ name = "Gravity Generator Room" }, /obj/effect/mapping_helpers/airlock/access/all/engineering/construction, -/obj/structure/cable, /turf/open/floor/iron/dark/textured, /area/station/engineering/gravity_generator) "nKV" = ( @@ -41274,6 +42228,25 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/dark, /area/station/hallway/secondary/exit/departure_lounge) +"nMP" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/button/ignition/incinerator/atmos{ + pixel_y = -24; + pixel_x = 7 + }, +/obj/machinery/button/door/incinerator_vent_atmos_aux{ + pixel_x = -7; + pixel_y = -24 + }, +/obj/machinery/button/door/incinerator_vent_atmos_main{ + pixel_x = -7; + pixel_y = -36 + }, +/obj/structure/table, +/turf/open/floor/iron, +/area/station/maintenance/disposal/incinerator) "nMW" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -41348,21 +42321,6 @@ /obj/item/stack/sheet/mineral/coal/five, /turf/open/floor/wood, /area/station/smithing) -"nNV" = ( -/obj/structure/sign/xenobio_guide/directional/north, -/obj/structure/table/reinforced/plasmarglass, -/obj/machinery/reagentgrinder{ - pixel_y = 8 - }, -/obj/item/storage/box/beakers{ - pixel_x = 2; - pixel_y = 7 - }, -/obj/item/storage/box/syringes{ - pixel_y = 5 - }, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "nOj" = ( /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 1 @@ -41385,13 +42343,6 @@ /obj/machinery/duct, /turf/open/floor/wood/parquet, /area/station/security/prison/safe) -"nOu" = ( -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) "nOv" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 1 @@ -41493,7 +42444,7 @@ /turf/open/floor/iron, /area/station/science/robotics/lab) "nQh" = ( -/obj/structure/chair/sofa/bench/solo{ +/obj/structure/chair{ dir = 4 }, /turf/open/floor/iron/dark, @@ -41579,16 +42530,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"nSh" = ( -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 9 - }, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/machinery/disposal/bin, -/turf/open/floor/iron/white, -/area/station/science/explab) "nSq" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/smart/simple/green/visible{ @@ -41639,6 +42580,19 @@ }, /turf/open/floor/engine, /area/station/ai_monitored/turret_protected/ai) +"nTq" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/light/directional/south, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/obj/structure/tank_dispenser, +/turf/open/floor/iron/white, +/area/station/science/explab) "nTS" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -41663,6 +42617,15 @@ /obj/machinery/disposal/bin, /turf/open/floor/iron/dark/side, /area/station/hallway/secondary/service) +"nUm" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/turf/open/floor/iron/dark/side, +/area/station/commons/dorms) "nUv" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 8 @@ -41677,6 +42640,12 @@ /obj/item/pen, /turf/open/floor/iron/dark, /area/station/security/brig/entrance) +"nUx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/robot_debris/down, +/turf/open/floor/iron/checker, +/area/station/maintenance/port/fore) "nUH" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -41701,12 +42670,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/execution/transfer) -"nUZ" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) "nVc" = ( /obj/structure/chair/office/light{ dir = 4 @@ -41744,19 +42707,6 @@ /obj/effect/turf_decal/tile/purple/fourcorners, /turf/open/floor/iron/dark, /area/station/hallway/primary/starboard) -"nVz" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/structure/chair/office{ - dir = 8 - }, -/obj/effect/landmark/start/scientist, -/turf/open/floor/iron/white, -/area/station/science/explab) "nVA" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ @@ -41778,9 +42728,16 @@ /turf/open/floor/iron, /area/station/command/heads_quarters/ce) "nWh" = ( -/obj/machinery/duct, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/window/reinforced/spawner/directional/south, /obj/structure/table/reinforced, -/turf/open/floor/iron/kitchen, +/obj/machinery/chem_dispenser/drinks/beer{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured, /area/station/security/prison/mess) "nWp" = ( /obj/effect/turf_decal/trimline/red/filled/line{ @@ -41835,6 +42792,16 @@ /obj/machinery/door/poddoor/massdriver_ordnance, /turf/open/floor/plating, /area/station/science/ordnance/testlab) +"nWI" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/research) "nWS" = ( /obj/effect/turf_decal/tile/yellow/fourcorners, /obj/item/kirbyplants/random, @@ -41871,6 +42838,7 @@ }, /obj/machinery/light/small/directional/south, /obj/structure/sign/departments/exam_room/directional/south, +/obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron/white, /area/station/medical/medbay/central) "nXF" = ( @@ -41925,7 +42893,7 @@ }, /obj/structure/window/reinforced/spawner/directional/west, /obj/structure/window/reinforced/spawner/directional/south, -/turf/open/floor/iron/dark, +/turf/open/floor/iron/dark/textured, /area/station/commons/fitness/recreation) "nYd" = ( /obj/effect/turf_decal/trimline/brown/filled/line{ @@ -41946,12 +42914,12 @@ /obj/machinery/vending/games, /turf/open/floor/wood, /area/station/service/library/lounge) -"nYl" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, -/turf/open/floor/engine, -/area/station/science/xenobiology) "nYx" = ( -/obj/machinery/camera/autoname/directional/west, +/obj/machinery/camera/directional/west{ + c_tag = "Science - Access"; + name = "science camera"; + network = list("ss13","rd") + }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, @@ -42025,14 +42993,22 @@ /obj/effect/landmark/navigate_destination/disposals, /turf/open/floor/iron/textured, /area/station/maintenance/disposal) -"nZk" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/iron/white, -/area/station/science/explab) "nZo" = ( -/obj/machinery/power/port_gen/pacman/pre_loaded, -/turf/open/floor/plating, -/area/station/maintenance/department/security/brig) +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/research{ + name = "Artifact Lab" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/turf/open/floor/iron/white/textured, +/area/station/science/explab) "nZt" = ( /obj/effect/turf_decal/box, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -42072,25 +43048,22 @@ /turf/open/floor/catwalk_floor, /area/station/maintenance/department/science) "nZX" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/turf/open/floor/engine, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, +/turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) "oaa" = ( /obj/machinery/light_switch/directional/south, /turf/open/floor/iron/kitchen, /area/station/security/prison/mess) "oak" = ( -/obj/machinery/corral_corner{ - mapping_id = "6" - }, -/obj/machinery/light/neon_lining{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ +/obj/structure/disposalpipe/segment{ dir = 6 }, -/turf/open/floor/engine, -/area/station/science/xenobiology) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "oal" = ( /obj/machinery/light/small/directional/south, /obj/effect/turf_decal/tile/neutral/full, @@ -42154,7 +43127,7 @@ dir = 4 }, /obj/structure/table/reinforced/rglass, -/obj/machinery/light/directional/east, +/obj/machinery/light/small/directional/east, /obj/item/wrench, /obj/item/clothing/gloves/latex, /obj/item/storage/box/masks{ @@ -42261,18 +43234,33 @@ /turf/open/floor/iron/white, /area/station/medical/virology) "ocP" = ( +/obj/structure/extinguisher_cabinet/directional/west, /obj/structure/disposalpipe/trunk{ dir = 1 }, /obj/machinery/disposal/bin, /turf/open/floor/wood, /area/station/command/heads_quarters/captain) +"ocY" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/catwalk_floor/iron, +/area/station/maintenance/department/science) "odm" = ( -/obj/structure/closet/wardrobe/black, /turf/open/floor/iron/dark/side{ dir = 10 }, /area/station/commons/dorms) +"odo" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/iron/checker, +/area/station/maintenance/port/fore) +"odz" = ( +/obj/machinery/firealarm/directional/west, +/turf/open/floor/engine, +/area/station/science/explab) "odC" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -42287,11 +43275,9 @@ /turf/open/floor/iron/dark/textured, /area/station/security/prison) "odN" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/trash/mess, -/obj/machinery/duct, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +/obj/item/radio/intercom/directional/west, +/turf/open/floor/wood, +/area/station/service/library) "oed" = ( /obj/effect/spawner/random/structure/closet_maintenance, /turf/open/floor/plating, @@ -42302,10 +43288,11 @@ /turf/open/floor/iron/textured, /area/station/security/interrogation) "oeH" = ( -/obj/machinery/firealarm/directional/north{ - pixel_x = 5 +/obj/structure/disposalpipe/trunk{ + dir = 8 }, -/turf/open/floor/carpet/neon/simple/pink, +/obj/machinery/disposal/bin, +/turf/open/floor/iron/white, /area/station/science/xenobiology) "oeU" = ( /obj/effect/turf_decal/trimline/neutral/filled/corner{ @@ -42340,16 +43327,13 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/white/textured, /area/station/science/research) -"ofJ" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line, -/obj/effect/turf_decal/trimline/yellow/line{ - dir = 1 - }, +"ofH" = ( +/obj/effect/turf_decal/vg_decals/numbers/one, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/turf/open/floor/iron/dark/side, -/area/station/hallway/primary/aft) +/turf/open/floor/iron/dark/smooth_large, +/area/station/security/brig) "oga" = ( /obj/machinery/firealarm/directional/west, /obj/structure/extinguisher_cabinet/directional/north, @@ -42375,24 +43359,25 @@ /obj/effect/spawner/random/trash/garbage, /turf/open/floor/plating, /area/station/maintenance/department/science) -"ogl" = ( -/mob/living/basic/slime, -/obj/machinery/light/floor/has_bulb, -/turf/open/floor/engine, -/area/station/science/xenobiology) -"ogz" = ( -/obj/structure/table/reinforced, -/obj/item/food/grown/tomato, -/obj/item/food/grown/tomato{ - pixel_x = -4; - pixel_y = 6 +"ogy" = ( +/obj/machinery/light/directional/east, +/obj/structure/sign/painting/parting{ + pixel_x = 32 }, -/obj/item/food/grown/tomato{ - pixel_x = 4; - pixel_y = 5 +/obj/structure/table/wood/fancy/green, +/obj/effect/spawner/random/decoration/statue{ + spawn_loot_chance = 35 }, -/turf/open/floor/iron/kitchen, -/area/station/security/prison/mess) +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/nt_rep) +"ogz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/duct, +/obj/item/soap/homemade, +/turf/open/floor/iron/showroomfloor, +/area/station/security/prison/shower) "ogH" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 5 @@ -42435,11 +43420,11 @@ /turf/closed/wall, /area/station/cargo/sorting) "ogZ" = ( -/obj/structure/sign/warning/secure_area/directional/south, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/emcloset, -/turf/open/floor/iron, -/area/station/maintenance/department/science) +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "ohf" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -42468,18 +43453,6 @@ }, /turf/open/floor/engine, /area/station/ai_monitored/turret_protected/ai) -"ohk" = ( -/obj/machinery/corral_corner{ - mapping_id = "1" - }, -/obj/machinery/light/neon_lining{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "ohm" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/structure/table/reinforced/rglass, @@ -42541,7 +43514,10 @@ dir = 8 }, /obj/structure/sign/poster/random/directional/west, -/obj/machinery/camera/autoname/directional/west, +/obj/machinery/camera/directional/west{ + c_tag = "Cargo - Cargo Bay, West"; + name = "cargo camera" + }, /obj/structure/chair{ dir = 4 }, @@ -42562,8 +43538,8 @@ /obj/effect/turf_decal/trimline/red/line{ dir = 1 }, -/obj/machinery/camera/autoname/directional/south, /obj/machinery/light/small/directional/south, +/obj/machinery/camera/autoname/directional/south, /obj/machinery/status_display/door_timer{ id = "Cell 4"; name = "Cell 4"; @@ -42617,19 +43593,20 @@ /turf/open/floor/iron, /area/station/cargo/miningoffice) "ojQ" = ( -/obj/structure/disposalpipe/sorting/mail{ +/obj/machinery/corral_corner{ + mapping_id = "1" + }, +/obj/machinery/slime_pen_controller{ + mapping_id = "1" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/light/neon_lining{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/mapping_helpers/mail_sorting/science/experimentor_lab, -/obj/effect/mapping_helpers/mail_sorting/science/genetics, -/obj/effect/mapping_helpers/mail_sorting/science/rd_office, -/obj/effect/mapping_helpers/mail_sorting/science/research, -/obj/effect/mapping_helpers/mail_sorting/science/robotics, -/turf/open/floor/catwalk_floor/iron, -/area/station/maintenance/department/science) +/turf/open/floor/engine, +/area/station/science/xenobiology) "ojV" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 @@ -42666,6 +43643,11 @@ }, /turf/open/floor/plating/airless, /area/station/science/ordnance/bomb) +"okA" = ( +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/turf/open/floor/catwalk_floor, +/area/station/maintenance/department/security/brig) "okM" = ( /obj/effect/turf_decal/box, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -42678,11 +43660,7 @@ /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 8 }, -/obj/machinery/button/door/directional/west{ - id = "engi_break_room_shutters"; - name = "Engineering Shutters Control"; - req_access = list("engineering") - }, +/obj/item/radio/intercom/directional/west, /obj/structure/filingcabinet/security, /turf/open/floor/iron/dark/side{ dir = 8 @@ -42695,11 +43673,13 @@ /turf/closed/wall/r_wall, /area/station/maintenance/starboard/aft) "olp" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 }, /turf/open/floor/iron/dark, -/area/station/security/prison/visit) +/area/station/security/prison/garden) "olq" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 8 @@ -42713,6 +43693,11 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) +"olI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, +/obj/machinery/light/directional/west, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "olQ" = ( /obj/effect/turf_decal/tile/bar/opposingcorners{ dir = 1 @@ -42743,7 +43728,7 @@ /area/station/maintenance/port/aft) "oma" = ( /obj/machinery/atmospherics/pipe/bridge_pipe/yellow/visible, -/obj/machinery/atmospherics/pipe/bridge_pipe/orange/visible{ +/obj/machinery/atmospherics/pipe/bridge_pipe/brown/visible{ dir = 4 }, /turf/open/floor/iron/dark, @@ -42760,6 +43745,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, +/obj/structure/disposalpipe/segment, /obj/effect/landmark/blobstart, /turf/open/floor/plating, /area/station/maintenance/port/fore) @@ -42832,7 +43818,7 @@ /turf/open/floor/iron/dark, /area/station/medical/paramedic) "onH" = ( -/obj/machinery/light/small/directional/west, +/obj/machinery/light/directional/west, /obj/structure/sign/warning/rad_shelter/directional/west, /turf/open/floor/iron/dark, /area/station/security/prison) @@ -42868,8 +43854,8 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "ooJ" = ( -/obj/effect/turf_decal/trimline/blue/filled/line, -/obj/effect/turf_decal/trimline/blue/line{ +/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/effect/turf_decal/trimline/yellow/line{ dir = 1 }, /obj/machinery/status_display/evac/directional/south, @@ -42877,7 +43863,7 @@ dir = 1 }, /obj/machinery/camera/directional/south{ - c_tag = "Hallway - Central, South"; + c_tag = "Hallway, Central - South"; name = "hallway camera" }, /turf/open/floor/iron/dark, @@ -42961,7 +43947,7 @@ /turf/open/floor/iron/dark/smooth_large, /area/station/security/execution/transfer) "opO" = ( -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible, +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible, /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/engineering/central) @@ -43008,7 +43994,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/door/airlock/engineering/glass{ +/obj/machinery/door/airlock/engineering{ name = "Engineering Break Room" }, /obj/machinery/door/firedoor, @@ -43035,9 +44021,15 @@ /turf/closed/wall/r_wall, /area/station/maintenance/department/engine/atmos) "oqP" = ( -/obj/effect/turf_decal/trimline/dark_blue/filled/line{ +/obj/effect/turf_decal/trimline/dark_red/filled/line{ dir = 4 }, +/obj/effect/turf_decal/trimline/dark_blue/filled/line{ + dir = 8 + }, +/obj/machinery/firealarm/directional/north{ + pixel_x = -5 + }, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) "ora" = ( @@ -43068,12 +44060,7 @@ /turf/open/floor/wood, /area/station/service/library) "orz" = ( -/obj/effect/turf_decal/trimline/dark_red/corner{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/dark_blue/filled/line{ - dir = 8 - }, +/obj/effect/turf_decal/trimline/dark_blue/filled/warning, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, @@ -43102,11 +44089,18 @@ /turf/open/floor/carpet/red, /area/station/commons/dorms/room6) "otx" = ( -/obj/effect/turf_decal/tile/dark_blue/fourcorners, -/obj/structure/table/glass, -/obj/item/book/manual/wiki/robotics_cyborgs, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai_upload) +/obj/machinery/button/door/directional/east{ + id = "law_office_shutters"; + name = "Law Office Shutters Control"; + req_access = list("lawyer") + }, +/obj/structure/table/wood, +/obj/machinery/fax{ + fax_name = "Law Office"; + name = "Law Office Fax Machine" + }, +/turf/open/floor/wood, +/area/station/service/lawoffice) "otB" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 1 @@ -43115,12 +44109,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/security/execution/transfer) -"otG" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 8 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) "otH" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 10 @@ -43183,6 +44171,13 @@ /obj/item/stock_parts/capacitor, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"ouJ" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 10 + }, +/obj/item/kirbyplants/random, +/turf/open/floor/iron/white, +/area/station/science/auxlab) "ouL" = ( /obj/effect/turf_decal/box, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -43262,10 +44257,13 @@ /obj/effect/turf_decal/siding/wideplating_new/dark/corner{ dir = 1 }, -/obj/effect/turf_decal/siding/wideplating_new/dark{ +/obj/effect/turf_decal/siding/thinplating/dark{ dir = 4 }, /obj/machinery/light/directional/south, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 9 + }, /turf/open/floor/iron/dark/telecomms, /area/station/tcommsat/server) "ovM" = ( @@ -43326,11 +44324,11 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) -"owu" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/science/xenobiology) +"owD" = ( +/obj/machinery/airalarm/directional/south, +/obj/machinery/suit_storage_unit/standard_unit, +/turf/open/floor/iron/white/textured, +/area/station/science/explab) "owH" = ( /obj/machinery/air_sensor/air_tank, /turf/open/floor/engine/air, @@ -43427,8 +44425,19 @@ c_tag = "Command - Gateway"; name = "command camera" }, -/obj/structure/rack, -/obj/item/extinguisher, +/obj/structure/table/reinforced, +/obj/item/radio/off{ + pixel_y = 6 + }, +/obj/item/radio/off{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/radio/off{ + pixel_x = 6; + pixel_y = 4 + }, +/obj/item/radio/off, /turf/open/floor/iron, /area/station/command/gateway) "oym" = ( @@ -43488,6 +44497,9 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance/burnchamber) +"oyL" = ( +/turf/open/floor/iron/showroomfloor, +/area/station/command/heads_quarters/nt_rep) "oyS" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/plating, @@ -43512,7 +44524,11 @@ "oAk" = ( /obj/effect/turf_decal/box, /obj/machinery/airalarm/directional/east, -/obj/machinery/camera/autoname/directional/east, +/obj/machinery/camera/directional/east{ + c_tag = "Science - Ordnance, Storage"; + network = list("ss13","rd"); + name = "science camera" + }, /obj/machinery/portable_atmospherics/scrubber/huge, /turf/open/floor/engine, /area/station/science/ordnance/storage) @@ -43653,10 +44669,10 @@ /turf/open/floor/wood, /area/station/smithing) "oDg" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/spawner/random/maintenance, -/turf/open/floor/catwalk_floor, -/area/station/maintenance/department/security/brig) +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/science/xenobiology) "oDl" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 1 @@ -43673,6 +44689,11 @@ /obj/item/stock_parts/cell/upgraded, /turf/open/floor/iron, /area/station/maintenance/department/electrical) +"oDy" = ( +/obj/machinery/duct, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/wood/large, +/area/station/command/heads_quarters/nt_rep) "oDL" = ( /obj/machinery/status_display/ai/directional/east, /turf/open/floor/iron/dark/side{ @@ -43754,22 +44775,25 @@ /turf/open/floor/iron/dark, /area/station/command/bridge) "oFm" = ( -/obj/effect/turf_decal/trimline/green/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/green/filled/line, -/obj/structure/sign/directions/engineering/directional/south{ - pixel_y = -23 +/obj/effect/turf_decal/tile/darkest_green/full, +/obj/structure/table/reinforced/rglass, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/machinery/door/window/brigdoor/left/directional/west{ + name = "Core Modules"; + req_access = list("captain") }, -/obj/structure/sign/directions/evac/directional/south{ - dir = 4 +/obj/effect/spawner/random/aimodule/neutral{ + pixel_x = -3; + pixel_y = -3 }, -/obj/structure/sign/directions/security/directional/south{ - pixel_y = -41; - dir = 4 +/obj/effect/spawner/random/aimodule/neutral{ + pixel_y = 3; + pixel_x = 3 }, -/turf/open/floor/iron/dark, -/area/station/hallway/primary/port) +/obj/effect/spawner/random/aimodule/harmless, +/turf/open/floor/iron/dark/smooth_large, +/area/station/ai_monitored/turret_protected/ai_upload) "oFy" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/trimline/red/filled/corner{ @@ -43820,6 +44844,10 @@ /obj/effect/spawner/random/structure/girder, /turf/open/floor/plating, /area/station/maintenance/department/engineering/central) +"oGR" = ( +/obj/machinery/firealarm/directional/south, +/turf/open/floor/carpet/neon/simple/pink, +/area/station/science/xenobiology) "oGT" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -43871,7 +44899,10 @@ /obj/effect/turf_decal/tile/bar/opposingcorners{ dir = 1 }, -/obj/machinery/camera/autoname/directional/west, +/obj/machinery/camera/directional/west{ + c_tag = "Service - Kitchen, Serving Area"; + name = "service camera" + }, /obj/machinery/firealarm/directional/west, /obj/structure/chair{ dir = 4 @@ -43906,6 +44937,7 @@ /area/station/security/checkpoint/supply) "oIf" = ( /obj/effect/turf_decal/trimline/purple/filled/line, +/obj/machinery/light/small/directional/south, /obj/machinery/newscaster/directional/south, /obj/machinery/component_printer, /turf/open/floor/iron/white, @@ -43915,11 +44947,25 @@ c_tag = "Command - Bridge, Hall, West"; name = "command camera" }, -/obj/structure/chair/sofa/bench/solo{ +/obj/structure/chair{ dir = 8 }, /turf/open/floor/iron/dark, /area/station/command/bridge) +"oIt" = ( +/obj/machinery/light/neon_lining{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/camera/directional/east{ + c_tag = "Science - Xenobiology, Pen 2"; + name = "xenobiology camera"; + network = list("ss13","rd","xeno") + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "oIw" = ( /obj/machinery/light/directional/west, /obj/structure/cable, @@ -43982,6 +45028,10 @@ /area/station/science/research) "oJd" = ( /obj/structure/table/reinforced, +/obj/item/computer_disk/atmos{ + pixel_y = 6; + pixel_x = 4 + }, /obj/item/paper/monitorkey, /turf/open/floor/iron, /area/station/command/heads_quarters/ce) @@ -44011,21 +45061,6 @@ }, /turf/open/floor/carpet/royalblue, /area/station/command/heads_quarters/hop) -"oKb" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/liquid_barrier, -/obj/machinery/door/airlock/maintenance, -/obj/effect/mapping_helpers/airlock/access/any/science/xenobio, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/science/xenobiology) "oKm" = ( /obj/effect/turf_decal/tile/brown/half/contrasted, /obj/machinery/requests_console/directional/south{ @@ -44119,6 +45154,9 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /obj/effect/mapping_helpers/broken_floor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/plating, /area/station/maintenance/port/fore) "oLb" = ( @@ -44137,23 +45175,6 @@ }, /turf/open/floor/catwalk_floor, /area/station/maintenance/department/science) -"oLf" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - name = "Labor Camp Shuttle Dock" - }, -/obj/effect/mapping_helpers/airlock/access/all/security/brig, -/turf/open/floor/iron/dark/textured, -/area/station/security/processing) "oLg" = ( /turf/closed/wall, /area/station/service/bar/backroom) @@ -44185,6 +45206,10 @@ /obj/effect/turf_decal/tile/green/half/contrasted{ dir = 8 }, +/obj/machinery/camera/directional/east{ + c_tag = "Service - Hydroponics, 2"; + name = "service camera" + }, /obj/structure/reagent_dispensers/watertank/high, /obj/item/reagent_containers/cup/watering_can, /turf/open/floor/iron/dark/side{ @@ -44216,11 +45241,17 @@ /turf/open/floor/iron/dark, /area/station/security/office) "oMq" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ +/obj/effect/turf_decal/trimline/dark_green/filled/line{ dir = 4 }, -/turf/open/floor/iron, -/area/station/cargo/lobby) +/obj/effect/turf_decal/trimline/dark_blue/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai_upload) "oMx" = ( /obj/effect/turf_decal/tile/red/fourcorners, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -44239,6 +45270,20 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) +"oMD" = ( +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 1 + }, +/obj/structure/table, +/obj/machinery/feed_machine{ + pixel_y = 4 + }, +/obj/item/chicken_feed{ + pixel_y = 10; + pixel_x = -5 + }, +/turf/open/floor/iron/dark/side, +/area/station/service/hydroponics) "oMG" = ( /obj/effect/turf_decal/tile/green{ dir = 8 @@ -44254,10 +45299,6 @@ dir = 5 }, /area/station/service/hydroponics) -"oMK" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, -/turf/open/floor/iron/freezer, -/area/station/science/xenobiology) "oNc" = ( /obj/machinery/telecomms/server/presets/service, /turf/open/floor/circuit/green/telecomms, @@ -44265,22 +45306,6 @@ "oNk" = ( /turf/closed/wall/r_wall, /area/station/command/teleporter) -"oNs" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/door/airlock/security{ - name = "Detective's Bedroom" - }, -/obj/effect/mapping_helpers/airlock/access/any/security/detective, -/turf/open/floor/iron/dark/textured, -/area/station/security/detectives_office) -"oNu" = ( -/obj/machinery/firealarm/directional/south, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/department/engine/atmos) "oNx" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 4 @@ -44296,11 +45321,14 @@ dir = 4 }, /obj/machinery/airalarm/directional/east, -/obj/machinery/piratepad/civilian, /obj/machinery/camera/directional/east{ c_tag = "Cargo - Lobby"; name = "cargo camera" }, +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/landmark/start/hangover, /turf/open/floor/iron/dark/side{ dir = 4 }, @@ -44337,6 +45365,10 @@ /obj/effect/turf_decal/stripes/corner, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/eva) +"oOQ" = ( +/obj/machinery/artifact_xray, +/turf/open/floor/engine, +/area/station/science/explab) "oOS" = ( /obj/structure/sign/warning/electric_shock/directional/south, /obj/machinery/light/small/directional/south, @@ -44347,7 +45379,7 @@ "oOX" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/structure/window/reinforced/spawner/directional/north, -/turf/open/floor/iron/dark, +/turf/open/floor/iron/dark/textured, /area/station/commons/fitness/recreation) "oPd" = ( /obj/effect/turf_decal/tile/purple/fourcorners, @@ -44415,7 +45447,11 @@ pixel_x = -4; pixel_y = 2 }, -/turf/open/floor/iron/kitchen, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured, /area/station/security/prison/mess) "oQc" = ( /obj/machinery/light/directional/north, @@ -44511,10 +45547,10 @@ /turf/open/floor/iron/dark, /area/station/hallway/secondary/exit/departure_lounge) "oRC" = ( -/obj/effect/turf_decal/trimline/dark_red/warning{ - dir = 4 +/obj/effect/turf_decal/trimline/dark_blue/filled/corner, +/obj/effect/turf_decal/trimline/dark_blue/filled/corner{ + dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) "oRG" = ( @@ -44530,6 +45566,15 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat/atmos) +"oRJ" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/table/wood, +/obj/item/newspaper{ + pixel_x = 4; + pixel_y = 4 + }, +/turf/open/floor/iron/kitchen, +/area/station/command/heads_quarters/nt_rep) "oSm" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -44538,12 +45583,6 @@ dir = 8 }, /area/station/commons/fitness) -"oSo" = ( -/obj/machinery/firealarm/directional/east, -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/trash/garbage, -/turf/open/floor/plating, -/area/station/maintenance/department/science) "oSr" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/structure/girder, @@ -44633,6 +45672,12 @@ /obj/structure/sign/warning/vacuum/external/directional/west, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"oUu" = ( +/obj/item/kirbyplants/random, +/turf/open/floor/iron/dark/side{ + dir = 5 + }, +/area/station/commons/fitness) "oUv" = ( /obj/effect/turf_decal/trimline/yellow/filled/line, /obj/machinery/light/small/directional/south, @@ -44701,9 +45746,7 @@ /turf/open/floor/iron/large, /area/station/maintenance/department/engine) "oVC" = ( -/obj/effect/turf_decal/box, -/obj/machinery/holopad, -/turf/open/floor/iron/dark/smooth_large, +/turf/open/floor/iron/dark, /area/station/security/prison/visit) "oVH" = ( /obj/effect/turf_decal/trimline/brown/filled/line{ @@ -44742,9 +45785,15 @@ }, /area/station/hallway/secondary/service) "oWq" = ( -/obj/machinery/camera/autoname/directional/north, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/structure/cable, /turf/open/floor/iron/dark, -/area/station/security/prison) +/area/station/security/prison/garden) "oWu" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -44783,22 +45832,17 @@ /turf/open/floor/iron/dark, /area/station/engineering/engine_smes) "oXi" = ( -/obj/effect/turf_decal/tile/dark_blue/fourcorners, -/obj/structure/table/glass, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/structure/window/reinforced/spawner/directional/north, -/obj/item/ai_module/zeroth/onehuman{ - pixel_y = -3; - pixel_x = 4 +/obj/effect/turf_decal/tile/neutral/anticorner{ + dir = 4 }, -/obj/item/ai_module/supplied/oxygen, -/obj/effect/spawner/random/aimodule/harmful{ - pixel_x = 3; - pixel_y = 4 +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai_upload) +/obj/structure/sign/warning/biohazard/directional/east, +/turf/open/floor/iron/dark/smooth_corner{ + dir = 8 + }, +/area/station/command/gateway) "oXy" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -44810,7 +45854,6 @@ /turf/open/floor/iron/showroomfloor, /area/station/medical/virology) "oXN" = ( -/obj/structure/cable, /obj/structure/closet/secure_closet/engineering_welding, /turf/open/floor/iron, /area/station/engineering/storage_shared) @@ -44827,24 +45870,18 @@ /obj/machinery/light_switch/directional/south{ pixel_x = -5 }, -/obj/item/radio/intercom/directional/west, +/obj/structure/extinguisher_cabinet/directional/west, /obj/structure/table/reinforced, -/obj/machinery/camera/directional/south{ - c_tag = "Science - Ordnance Launcher"; - name = "science camera"; - network = list("ss13","rd") - }, /turf/open/floor/iron/white, /area/station/science/ordnance/testlab) "oYl" = ( +/obj/structure/sign/warning/secure_area/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/obj/structure/disposalpipe/sorting/mail/flip{ - dir = 4 - }, -/obj/effect/mapping_helpers/mail_sorting/security/detectives_office, -/obj/structure/sign/warning/secure_area/directional/south, /turf/open/floor/plating, /area/station/maintenance/port/fore) "oYp" = ( @@ -44946,10 +45983,10 @@ /turf/open/floor/iron/dark, /area/station/engineering/atmos/hfr_room) "oZh" = ( -/obj/effect/turf_decal/trimline/yellow/line{ +/obj/effect/turf_decal/trimline/green/line{ dir = 1 }, -/obj/effect/turf_decal/trimline/yellow/filled/line, +/obj/effect/turf_decal/trimline/green/filled/line, /obj/structure/extinguisher_cabinet/directional/south, /turf/open/floor/iron/dark, /area/station/hallway/primary/central) @@ -44971,6 +46008,18 @@ dir = 6 }, /area/station/engineering/break_room) +"oZt" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/duct, +/obj/machinery/door/airlock/bathroom{ + name = "Bathroom"; + id_tag = "nt_rep_bathroom" + }, +/turf/open/floor/iron/dark/textured, +/area/station/command/heads_quarters/nt_rep) "oZv" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, @@ -44990,10 +46039,13 @@ /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) "oZV" = ( +/obj/effect/turf_decal/trimline/dark_blue/filled/line{ + dir = 8 + }, /obj/structure/chair/sofa/corp/left{ dir = 4 }, -/turf/open/floor/carpet/blue, +/turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) "pam" = ( /obj/machinery/power/apc/auto_name/directional/north, @@ -45013,7 +46065,6 @@ "pap" = ( /obj/effect/turf_decal/tile/blue/fourcorners, /obj/machinery/light/directional/east, -/obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/iron/dark, /area/station/command/bridge) "pas" = ( @@ -45023,7 +46074,7 @@ /area/station/maintenance/port/fore) "paw" = ( /obj/machinery/light/small/directional/east, -/obj/structure/rack, +/obj/structure/closet/crate, /turf/open/floor/iron/dark/side{ dir = 4 }, @@ -45090,6 +46141,10 @@ dir = 4 }, /area/station/engineering/break_room) +"pbU" = ( +/obj/machinery/firealarm/directional/north, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/nt_rep) "pch" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 8 @@ -45127,6 +46182,11 @@ /obj/item/flashlight/flare, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"pcT" = ( +/obj/structure/table, +/obj/item/paper_bin, +/turf/open/floor/iron/white, +/area/station/science/explab) "pcU" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 8 @@ -45162,6 +46222,7 @@ /obj/effect/turf_decal/trimline/neutral/corner{ dir = 8 }, +/obj/structure/sign/poster/official/nanotrasen_logo/directional/east, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) "pdN" = ( @@ -45182,23 +46243,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/processing) -"peN" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/preopen{ - id = "xenobiomain"; - name = "Containment Blast Door" - }, -/obj/machinery/duct, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/white/textured, -/area/station/science/xenobiology) "peO" = ( /obj/machinery/firealarm/directional/south{ pixel_x = -5 @@ -45228,7 +46272,6 @@ "pfJ" = ( /obj/machinery/door/firedoor/border_only, /obj/structure/window/reinforced/spawner/directional/south, -/obj/machinery/light/small/directional/west, /turf/open/floor/grass, /area/station/service/hydroponics) "pfS" = ( @@ -45308,16 +46351,13 @@ dir = 4 }, /obj/machinery/airalarm/directional/east, +/obj/structure/extinguisher_cabinet/directional/north, /turf/open/floor/iron/dark, /area/station/construction/mining/aux_base) "phd" = ( -/obj/structure/table/reinforced, -/obj/item/food/flatdough, -/obj/item/food/flatdough{ - pixel_x = 4 - }, -/turf/open/floor/iron/kitchen, -/area/station/security/prison/mess) +/obj/item/radio/intercom/prison/directional/north, +/turf/open/floor/iron/dark, +/area/station/security/prison/workout) "phj" = ( /obj/effect/turf_decal/trimline/blue/filled/warning, /obj/effect/turf_decal/trimline/blue/warning{ @@ -45411,10 +46451,15 @@ /turf/open/floor/grass, /area/station/security/prison/garden) "pji" = ( -/obj/effect/turf_decal/tile/dark_blue/fourcorners, -/obj/structure/reagent_dispensers/water_cooler, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai_upload) +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/holopad, +/turf/open/floor/wood, +/area/station/security/detectives_office) "pjq" = ( /obj/effect/turf_decal/tile/red/anticorner/contrasted{ dir = 4 @@ -45492,10 +46537,28 @@ /obj/machinery/light/directional/west, /turf/open/floor/iron/dark, /area/station/hallway/primary/central) +"pkC" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation) "pkR" = ( /obj/structure/machine/assembly_bench, /turf/open/floor/wood, /area/station/smithing) +"plq" = ( +/obj/effect/turf_decal/trimline/brown/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/entry) "plt" = ( /obj/machinery/space_heater, /turf/open/floor/plating, @@ -45522,10 +46585,6 @@ /obj/machinery/power/port_gen/pacman/pre_loaded, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"plI" = ( -/obj/structure/table/reinforced/plasmarglass, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "plK" = ( /obj/effect/turf_decal/trimline/red/filled/warning{ dir = 8 @@ -45543,6 +46602,13 @@ /obj/structure/cable, /turf/open/floor/circuit/telecomms, /area/station/tcommsat/server) +"pml" = ( +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 1 + }, +/obj/structure/bookcase/manuals/botany, +/turf/open/floor/iron/dark/side, +/area/station/service/hydroponics) "pmr" = ( /obj/effect/turf_decal/trimline/purple/line, /obj/effect/turf_decal/trimline/purple/filled/line{ @@ -45557,6 +46623,11 @@ /turf/open/floor/wood, /area/station/command/meeting_room) "pmv" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 5 + }, /turf/open/floor/iron/freezer, /area/station/service/kitchen/coldroom) "pmF" = ( @@ -45622,9 +46693,14 @@ /turf/open/floor/iron/dark/smooth_large, /area/station/hallway/secondary/service) "pnG" = ( -/obj/structure/table/wood, -/obj/machinery/computer/security/wooden_tv, -/turf/open/floor/carpet/red, +/obj/machinery/airalarm/directional/east, +/obj/structure/closet/secure_closet/detective, +/obj/item/book/manual/wiki/detective, +/obj/item/clothing/glasses/hud/security/sunglasses, +/obj/item/storage/fancy/cigarettes/cigpack_robust, +/obj/item/lighter, +/obj/item/reagent_containers/cup/glass/bottle/whiskey, +/turf/open/floor/wood, /area/station/security/detectives_office) "pnU" = ( /obj/effect/turf_decal/trimline/red/filled/warning{ @@ -45640,6 +46716,16 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/security/office) +"pnY" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 1 + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/structure/table/glass, +/obj/item/storage/box/disks_nanite, +/turf/open/floor/iron/white, +/area/station/science/auxlab) "poh" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, @@ -45655,19 +46741,6 @@ }, /turf/open/floor/plating, /area/station/security/brig/entrance) -"poB" = ( -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 4 - }, -/turf/open/floor/iron/white, -/area/station/science/explab) -"poD" = ( -/obj/machinery/atmospherics/components/unary/passive_vent{ - name = "freezer passive vent"; - dir = 1 - }, -/turf/open/floor/iron/freezer, -/area/station/science/xenobiology) "poG" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/command/nuke_storage) @@ -45684,6 +46757,12 @@ /obj/machinery/vending/coffee, /turf/open/floor/iron/dark, /area/station/science/breakroom) +"poS" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "poU" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -45722,16 +46801,16 @@ dir = 5 }, /obj/structure/rack, -/obj/item/storage/toolbox/mechanical{ - pixel_x = -2; - pixel_y = -1 - }, /obj/item/shovel{ pixel_x = -5 }, /obj/item/pickaxe{ pixel_x = 5 }, +/obj/item/storage/toolbox/mechanical{ + pixel_x = -2; + pixel_y = -1 + }, /turf/open/floor/iron/dark/side{ dir = 5 }, @@ -45750,10 +46829,7 @@ /turf/closed/wall/r_wall, /area/station/engineering/storage_shared) "ppS" = ( -/obj/effect/turf_decal/trimline/dark_red/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/dark_red/arrow_ccw{ +/obj/effect/turf_decal/stripes/line{ dir = 1 }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -45762,9 +46838,10 @@ /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) "ppU" = ( -/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, /turf/open/floor/iron/dark/side{ dir = 1 }, @@ -45817,6 +46894,8 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, +/obj/machinery/firealarm/directional/west, +/obj/machinery/door/firedoor, /turf/open/floor/plating, /area/station/maintenance/department/cargo) "prb" = ( @@ -45841,6 +46920,7 @@ dir = 1 }, /obj/effect/turf_decal/trimline/dark_blue/line, +/obj/machinery/station_map/directional/north, /turf/open/floor/iron/dark, /area/station/hallway/primary/central) "prd" = ( @@ -45859,7 +46939,6 @@ }, /obj/effect/turf_decal/bot, /obj/machinery/light/small/directional/east, -/obj/structure/cable, /obj/structure/closet/secure_closet/security/sec, /turf/open/floor/iron/dark, /area/station/security/lockers) @@ -45879,9 +46958,12 @@ /turf/open/floor/iron/dark, /area/station/security/checkpoint/supply) "prs" = ( -/obj/effect/turf_decal/siding/wideplating_new/dark{ +/obj/effect/turf_decal/siding/thinplating/dark{ dir = 1 }, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, /turf/open/floor/iron/dark/telecomms, /area/station/tcommsat/server) "prw" = ( @@ -45961,6 +47043,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, +/obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/port/fore) "ptd" = ( @@ -45983,7 +47066,6 @@ /area/station/hallway/primary/central) "ptq" = ( /obj/machinery/light/directional/east, -/obj/item/radio/intercom/directional/east, /turf/open/floor/iron/dark/side{ dir = 4 }, @@ -46000,10 +47082,10 @@ /turf/open/floor/iron/dark/textured, /area/station/security/prison) "ptM" = ( +/obj/effect/turf_decal/trimline/red/filled/line, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/obj/effect/turf_decal/trimline/red/filled/line, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) "ptZ" = ( @@ -46023,8 +47105,10 @@ /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) "pun" = ( -/turf/closed/wall, -/area/station/commons/vacant_room/office) +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/command/heads_quarters/nt_rep) "puy" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ @@ -46079,11 +47163,20 @@ /turf/open/floor/iron/kitchen, /area/station/service/kitchen) "puX" = ( -/obj/structure/sign/warning/secure_area/directional/south, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/space_heater, -/turf/open/floor/iron, -/area/station/maintenance/department/science) +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/preopen{ + id = "xenobiomain"; + name = "Containment Blast Door" + }, +/turf/open/floor/iron/white/textured, +/area/station/science/xenobiology) "puZ" = ( /obj/machinery/status_display/ai/directional/east, /obj/effect/turf_decal/tile/neutral/full, @@ -46138,6 +47231,20 @@ "pvL" = ( /turf/closed/wall, /area/station/medical/psychology) +"pwg" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/firealarm/directional/north, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "pwh" = ( /obj/effect/turf_decal/box, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -46159,18 +47266,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/hallway/secondary/exit/departure_lounge) -"pwn" = ( -/obj/machinery/corral_corner{ - mapping_id = "5" - }, -/obj/machinery/light/neon_lining{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "pwp" = ( /turf/open/floor/iron/dark, /area/station/security/courtroom) @@ -46202,6 +47297,7 @@ /area/station/security/brig) "pxl" = ( /obj/effect/turf_decal/tile/red/fourcorners, +/obj/structure/cable, /obj/machinery/door/window/brigdoor/left/directional/south{ name = "Head of Security's Desk"; req_access = list("hos") @@ -46321,12 +47417,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"pyH" = ( -/obj/effect/turf_decal/stripes/red/line{ - dir = 6 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "pyP" = ( /obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/hidden{ dir = 4 @@ -46373,7 +47463,7 @@ /turf/open/floor/iron, /area/station/cargo/drone_bay) "pzp" = ( -/obj/structure/extinguisher_cabinet/directional/west, +/obj/item/radio/intercom/directional/west, /turf/open/floor/wood, /area/station/command/heads_quarters/captain) "pzt" = ( @@ -46395,7 +47485,7 @@ /area/station/service/library) "pzI" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 + dir = 1 }, /turf/open/floor/iron, /area/station/service/theater) @@ -46406,10 +47496,9 @@ /turf/open/floor/iron/dark, /area/station/maintenance/starboard/aft) "pzP" = ( -/obj/structure/chair/office{ - dir = 8 +/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden{ + dir = 4 }, -/obj/effect/landmark/start/station_engineer, /turf/open/floor/iron, /area/station/tcommsat/computer) "pzW" = ( @@ -46422,14 +47511,10 @@ /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) "pzX" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/on{ - dir = 1 - }, -/turf/open/floor/engine, -/area/station/security/execution) +/obj/effect/decal/cleanable/dirt, +/obj/item/broken_bottle, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "pAd" = ( /obj/machinery/duct, /turf/open/floor/iron/showroomfloor, @@ -46451,6 +47536,18 @@ }, /turf/open/floor/iron/dark, /area/station/hallway/primary/fore) +"pAQ" = ( +/obj/machinery/corral_corner{ + mapping_id = "5" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/light/neon_lining{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "pAW" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -46478,24 +47575,18 @@ /area/station/maintenance/port/fore) "pBz" = ( /obj/machinery/light/small/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/iron/dark/side, /area/station/commons/dorms) "pBC" = ( /obj/structure/table/reinforced, -/obj/item/storage/bag/tray, -/obj/item/kitchen/rollingpin{ - pixel_y = -4; - pixel_x = 4 - }, -/obj/item/reagent_containers/condiment/peppermill{ - pixel_x = -8; - pixel_y = 2 - }, -/obj/item/reagent_containers/condiment/saltshaker{ - pixel_x = -2; - pixel_y = 4 +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, -/turf/open/floor/iron/kitchen, +/turf/open/floor/iron/dark/textured, /area/station/security/prison/mess) "pBK" = ( /obj/machinery/light/small/directional/south, @@ -46511,18 +47602,6 @@ /obj/structure/table, /turf/open/floor/iron/white, /area/station/medical/patients_rooms/room_a) -"pBX" = ( -/obj/machinery/corral_corner{ - mapping_id = "3" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/light/neon_lining{ - dir = 4 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "pCb" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/structure/table/reinforced/rglass, @@ -46560,17 +47639,6 @@ /mob/living/carbon/human/species/monkey, /turf/open/floor/grass, /area/station/hallway/primary/central) -"pCm" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/engine, -/area/station/science/explab) -"pCo" = ( -/obj/structure/cable, -/obj/machinery/duct, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "pCs" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 4 @@ -46603,7 +47671,10 @@ dir = 5 }, /obj/machinery/newscaster/directional/east, -/obj/effect/spawner/random/structure/crate, +/obj/structure/chair{ + dir = 8 + }, +/obj/effect/landmark/start/assistant, /turf/open/floor/iron/dark/side{ dir = 5 }, @@ -46635,6 +47706,19 @@ /obj/structure/flora/bush/jungle/a/style_random, /turf/open/floor/grass, /area/station/hallway/primary/central) +"pDq" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/structure/sign/poster/official/random/directional/west, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/entry) "pDy" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 8 @@ -46758,9 +47842,10 @@ /turf/open/floor/iron/dark, /area/station/hallway/primary/port) "pEQ" = ( -/obj/structure/table, -/obj/effect/spawner/random/maintenance, -/turf/open/floor/plating, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/oil, +/obj/effect/decal/cleanable/robot_debris/up, +/turf/open/floor/iron/checker, /area/station/maintenance/port/fore) "pEY" = ( /turf/closed/wall, @@ -46778,14 +47863,16 @@ }, /turf/open/floor/wood, /area/station/service/abandoned_gambling_den) -"pGu" = ( -/obj/structure/table/wood, -/obj/item/taperecorder{ - pixel_x = 9; - pixel_y = 9 +"pGf" = ( +/obj/machinery/atmospherics/components/unary/passive_vent{ + dir = 4; + name = "freezer passive vent" }, -/turf/open/floor/carpet/blue, -/area/station/commons/vacant_room/office) +/turf/open/floor/iron/freezer, +/area/station/science/xenobiology) +"pGu" = ( +/turf/closed/wall, +/area/station/command/heads_quarters/nt_rep) "pGM" = ( /obj/effect/mob_spawn/corpse/human/assistant, /turf/open/floor/wood, @@ -46799,10 +47886,6 @@ }, /turf/open/floor/iron/dark, /area/station/hallway/primary/starboard) -"pGP" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "pGS" = ( /turf/open/floor/iron/dark/side, /area/station/hallway/secondary/service) @@ -46828,6 +47911,9 @@ dir = 1 }, /obj/structure/sign/departments/botany/directional/south, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, /turf/open/floor/iron/dark, /area/station/hallway/primary/port) "pHn" = ( @@ -46844,10 +47930,10 @@ /turf/open/floor/iron/large, /area/station/cargo/storage) "pHw" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2{ - dir = 8 +/obj/machinery/atmospherics/pipe/layer_manifold/pink/visible{ + dir = 4 }, -/turf/open/floor/engine, +/turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) "pHx" = ( /turf/open/floor/wood, @@ -46909,10 +47995,10 @@ /turf/open/floor/iron, /area/station/service/hydroponics/garden) "pHW" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/pink/visible/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, -/turf/open/floor/iron, +/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden{ + dir = 4 + }, +/turf/closed/wall/r_wall, /area/station/maintenance/disposal/incinerator) "pHX" = ( /obj/structure/table/wood/fancy/black, @@ -46936,12 +48022,14 @@ /turf/open/floor/plating, /area/station/maintenance/department/engine) "pIw" = ( -/obj/effect/turf_decal/trimline/red/filled/line, +/obj/structure/extinguisher_cabinet/directional/east, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 + dir = 8 }, -/turf/open/floor/iron/dark, -/area/station/security/execution) +/turf/open/floor/iron/dark/side{ + dir = 4 + }, +/area/station/commons/fitness) "pIA" = ( /obj/effect/turf_decal/trimline/dark_blue/filled/corner{ dir = 4 @@ -46952,11 +48040,11 @@ /turf/open/floor/iron/dark, /area/station/hallway/primary/central) "pIH" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/light/directional/north, -/obj/item/kirbyplants/random, -/turf/open/floor/iron, -/area/station/maintenance/department/science) +/obj/machinery/plumbing/ooze_sucker{ + mapping_id = "5" + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "pIS" = ( /obj/machinery/conveyor{ dir = 8; @@ -47012,15 +48100,22 @@ /turf/open/floor/iron, /area/station/science/robotics/lab) "pJW" = ( -/obj/machinery/camera/autoname/directional/west, +/obj/machinery/camera/directional/west{ + c_tag = "Hallway, Arrivals - Lounge"; + name = "hallway camera" + }, /turf/open/floor/carpet, /area/station/hallway/secondary/entry) "pKw" = ( -/obj/effect/turf_decal/tile/dark_blue/fourcorners, -/obj/structure/table/glass, -/obj/item/ai_module/toy_ai, +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 8 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 4 + }, +/obj/machinery/light/small/directional/west, /turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai_upload) +/area/station/hallway/primary/fore) "pKx" = ( /obj/effect/turf_decal/trimline/dark_blue/filled/line{ dir = 4 @@ -47044,10 +48139,10 @@ }, /area/station/service/chapel) "pKS" = ( -/obj/effect/decal/cleanable/cobweb, +/obj/effect/turf_decal/bot, /obj/structure/cable, +/obj/effect/decal/cleanable/cobweb, /obj/structure/closet/secure_closet/atmospherics, -/obj/effect/turf_decal/bot, /turf/open/floor/iron/dark, /area/station/maintenance/disposal/incinerator) "pKY" = ( @@ -47082,11 +48177,12 @@ /turf/open/floor/plating, /area/station/maintenance/department/cargo) "pLu" = ( -/obj/machinery/atmospherics/components/binary/pump/off/supply/hidden{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron/kitchen, +/area/station/command/heads_quarters/nt_rep) "pLB" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 1 @@ -47127,11 +48223,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, +/obj/machinery/duct, /obj/machinery/door/window/right/directional/east{ name = "Brig Infirmary"; req_access = list("security") }, -/obj/machinery/duct, /turf/open/floor/iron/white, /area/station/security/medical) "pMb" = ( @@ -47277,7 +48373,7 @@ }, /obj/effect/mapping_helpers/airlock/access/all/security/court, /turf/open/floor/catwalk_floor/iron_dark, -/area/station/maintenance/department/science) +/area/station/security/courtroom) "pOx" = ( /obj/machinery/conveyor{ id = "QMLoad" @@ -47309,14 +48405,18 @@ /obj/machinery/button/door/directional/west{ id = "hos_office"; name = "Shutters Control"; - req_access = list("hos") + req_access = list("hos"); + pixel_y = 6 + }, +/obj/machinery/keycard_auth/directional/west{ + pixel_y = -6 }, /obj/machinery/requests_console/directional/north{ department = "Head of Security's Desk"; name = "Head of Security Requests Console" }, -/obj/effect/mapping_helpers/requests_console/announcement, /obj/effect/mapping_helpers/requests_console/assistance, +/obj/effect/mapping_helpers/requests_console/announcement, /obj/effect/mapping_helpers/requests_console/information, /obj/structure/table/wood, /obj/machinery/fax{ @@ -47357,14 +48457,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/dark/smooth_large, /area/station/cargo/miningoffice) -"pQm" = ( -/obj/machinery/light/small/broken/directional/east, -/obj/structure/frame/computer{ - anchored = 1; - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) "pQy" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 10 @@ -47450,6 +48542,15 @@ "pSA" = ( /turf/closed/wall/r_wall, /area/station/security/execution) +"pSD" = ( +/obj/machinery/light/small/directional/south, +/obj/machinery/computer/security/telescreen/entertainment/directional/west, +/obj/structure/disposalpipe/trunk{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/iron/kitchen, +/area/station/command/heads_quarters/nt_rep) "pSJ" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -47467,17 +48568,27 @@ /turf/open/floor/iron/dark, /area/station/engineering/atmos) "pSW" = ( +/obj/effect/turf_decal/trimline/dark_blue/filled/line{ + dir = 9 + }, +/obj/structure/table/glass, +/obj/item/ai_module/toy_ai, /turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/area/station/ai_monitored/turret_protected/ai_upload) +"pTa" = ( +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/auxlab) "pTC" = ( /obj/machinery/duct, /obj/effect/spawner/random/trash/garbage, /turf/open/floor/plating, /area/station/maintenance/port) -"pTE" = ( -/obj/effect/turf_decal/stripes/red/line, -/turf/open/floor/engine, -/area/station/science/xenobiology) "pTI" = ( /obj/machinery/light_switch/directional/west, /obj/machinery/recharge_station, @@ -47563,7 +48674,13 @@ dir = 4 }, /turf/open/floor/plating, -/area/station/maintenance/department/science) +/area/station/maintenance/starboard/fore) +"pVv" = ( +/obj/machinery/airalarm/directional/east, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/graffiti, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "pVB" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -47631,17 +48748,9 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "pWC" = ( -/obj/effect/turf_decal/trimline/brown/filled/line, -/obj/effect/turf_decal/trimline/brown/line{ - dir = 1 - }, -/obj/machinery/firealarm/directional/south, -/obj/machinery/camera/directional/south{ - c_tag = "Arrivals - Checkpoint, South"; - name = "arrivals camera" - }, -/turf/open/floor/iron/dark, -/area/station/hallway/secondary/entry) +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/white, +/area/station/medical/pharmacy) "pWE" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -47664,25 +48773,11 @@ /turf/open/floor/iron/kitchen, /area/station/service/kitchen) "pWO" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/engine, /area/station/security/execution) -"pWP" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "pWU" = ( /obj/effect/turf_decal/trimline/yellow/filled/corner{ dir = 8 @@ -47707,6 +48802,11 @@ dir = 4 }, /area/station/commons/fitness/recreation) +"pXe" = ( +/obj/structure/closet/firecloset/wall/directional/south, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/department/science) "pXi" = ( /obj/structure/table, /obj/effect/spawner/random/maintenance, @@ -47723,6 +48823,13 @@ /obj/machinery/duct, /turf/open/floor/iron, /area/station/engineering/main) +"pXE" = ( +/obj/effect/turf_decal/vg_decals/numbers/four, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/dark/smooth_large, +/area/station/security/brig) "pXG" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -47777,19 +48884,11 @@ /turf/open/floor/iron/dark, /area/station/hallway/primary/central) "pYv" = ( -/obj/effect/turf_decal/tile/purple/fourcorners, -/obj/item/kirbyplants/random, -/turf/open/floor/iron/white, -/area/station/science/research) -"pYx" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/obj/machinery/light/neon_lining{ - dir = 8 - }, -/turf/open/floor/stone, -/area/station/science/xenobiology) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "pYA" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/structure/closet_maintenance, @@ -47818,11 +48917,6 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/dark/smooth_large, /area/station/science/breakroom) -"pYX" = ( -/obj/machinery/firealarm/directional/north, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/department/engine/atmos) "pZa" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -47962,6 +49056,7 @@ /turf/open/floor/iron/vaporwave, /area/station/service/library/printer) "qbg" = ( +/obj/structure/cable, /obj/structure/chair/office/light{ dir = 8 }, @@ -47985,13 +49080,11 @@ /turf/open/floor/iron/dark, /area/station/medical/morgue) "qbm" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/duct, -/turf/open/floor/catwalk_floor, -/area/station/maintenance/department/science) +/obj/machinery/plumbing/ooze_sucker{ + mapping_id = "4" + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "qbz" = ( /obj/structure/cable, /obj/structure/chair/plastic{ @@ -48008,16 +49101,13 @@ /turf/open/floor/iron/white, /area/station/medical/medbay/central) "qcu" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ +/obj/machinery/camera/autoname/directional/north, +/obj/machinery/status_display/evac/directional/north, +/obj/effect/spawner/random/vending/colavend, +/turf/open/floor/iron/dark/side{ dir = 1 }, -/obj/machinery/door/poddoor{ - id = "justice_blast"; - name = "Emergency Justice Vent" - }, -/turf/open/floor/plating/airless, -/area/station/security/execution) +/area/station/commons/fitness/recreation) "qcA" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 1 @@ -48040,22 +49130,17 @@ /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) "qcS" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ +/obj/effect/turf_decal/trimline/dark_blue/filled/line{ dir = 1 }, -/turf/open/floor/iron/dark/side, -/area/station/commons/locker) +/obj/effect/turf_decal/trimline/dark_blue/line, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/port) "qcT" = ( /obj/item/kirbyplants/photosynthetic, /turf/open/floor/iron/dark, /area/station/engineering/transit_tube) -"qcU" = ( -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 8 - }, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron/white, -/area/station/science/research) "qcX" = ( /obj/effect/turf_decal/trimline/yellow/filled/line, /obj/structure/table, @@ -48071,13 +49156,26 @@ }, /turf/open/floor/iron/dark/side, /area/station/engineering/storage_shared) +"qde" = ( +/obj/structure/extinguisher_cabinet/directional/east, +/obj/structure/disposalpipe/trunk, +/obj/machinery/disposal/bin, +/turf/open/floor/iron/white, +/area/station/science/explab) "qdk" = ( /obj/structure/cable, /obj/structure/table, -/obj/item/papercutter, +/obj/item/papercutter{ + pixel_y = 3 + }, /obj/item/hand_labeler, /turf/open/floor/carpet/royalblue, /area/station/command/heads_quarters/hop) +"qdl" = ( +/turf/open/floor/iron/dark/side{ + dir = 6 + }, +/area/station/tcommsat/computer) "qdr" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 4 @@ -48088,9 +49186,16 @@ /turf/open/floor/iron/white, /area/station/medical/medbay/aft) "qds" = ( -/obj/effect/landmark/start/gary, -/turf/open/floor/wood, -/area/station/commons/vacant_room/office) +/obj/machinery/firealarm/directional/north{ + pixel_x = -5 + }, +/obj/machinery/light_switch/directional/north{ + pixel_x = 5 + }, +/obj/machinery/newscaster/directional/east, +/obj/structure/filingcabinet/employment, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/nt_rep) "qdu" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 4 @@ -48194,13 +49299,6 @@ "qem" = ( /turf/open/floor/carpet, /area/station/hallway/secondary/entry) -"qep" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - name = "Waste In" - }, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos/pumproom) "qet" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -48271,11 +49369,6 @@ "qgq" = ( /turf/open/floor/iron/dark, /area/station/security/prison) -"qgu" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/trash/graffiti, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) "qgx" = ( /obj/machinery/light/directional/south, /obj/item/radio/intercom/directional/south, @@ -48285,39 +49378,20 @@ /turf/open/floor/iron/dark, /area/station/service/chapel/office) "qgz" = ( -/obj/effect/turf_decal/trimline/purple/filled/warning, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, +/obj/effect/turf_decal/trimline/purple/filled/warning{ + dir = 6 + }, /obj/machinery/duct, /turf/open/floor/iron/white, /area/station/science/genetics/cloning) "qgA" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/door/airlock/maintenance, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/turf/open/floor/plating, -/area/station/commons/vacant_room/office) +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/nt_rep) "qgD" = ( /obj/machinery/light/small/directional/south, /obj/item/radio/intercom/directional/south, /turf/open/floor/iron/textured, /area/station/engineering/gravity_generator) -"qgL" = ( -/obj/machinery/light/neon_lining{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/turf/open/floor/stone, -/area/station/science/xenobiology) "qgO" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -48364,7 +49438,6 @@ /obj/effect/turf_decal/trimline/brown/line{ dir = 1 }, -/obj/structure/sign/departments/cargo/directional/south, /obj/machinery/light/directional/south, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) @@ -48386,8 +49459,13 @@ /turf/open/floor/iron/dark, /area/station/commons/vacant_room/commissary) "qid" = ( -/obj/effect/turf_decal/siding/wood, -/obj/structure/chair/wood, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, /turf/open/floor/wood, /area/station/security/detectives_office) "qik" = ( @@ -48401,12 +49479,6 @@ dir = 10 }, /area/station/commons/fitness) -"qiC" = ( -/obj/structure/table/wood, -/obj/item/camera_film, -/obj/item/camera/detective, -/turf/open/floor/carpet/red, -/area/station/security/detectives_office) "qiM" = ( /obj/structure/closet/firecloset{ anchored = 1 @@ -48439,11 +49511,14 @@ /turf/open/floor/iron/white, /area/station/medical/patients_rooms/room_b) "qjq" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) +"qjL" = ( /obj/structure/cable, -/obj/machinery/duct, -/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, /turf/open/floor/iron/white, /area/station/science/xenobiology) "qjP" = ( @@ -48533,6 +49608,13 @@ /obj/item/storage/fancy/candle_box/vanilla, /turf/open/floor/wood, /area/station/service/chapel/funeral) +"qlK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/wood/large, +/area/station/command/heads_quarters/nt_rep) "qlQ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, @@ -48543,9 +49625,18 @@ /turf/open/floor/iron/dark, /area/station/security/office) "qmb" = ( -/obj/effect/spawner/random/trash/moisture_trap, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/obj/machinery/firealarm/directional/east, +/obj/machinery/door/firedoor, /turf/open/floor/plating, -/area/station/maintenance/starboard/aft) +/area/station/maintenance/port) "qmd" = ( /obj/effect/spawner/random/trash/grille_or_waste, /turf/open/floor/plating, @@ -48628,12 +49719,21 @@ /area/station/service/library) "qnN" = ( /obj/machinery/light/directional/south, -/obj/item/radio/intercom/prison/directional/south, /obj/structure/table, /obj/item/shovel/spade, +/obj/item/shovel/spade{ + pixel_y = 6; + pixel_x = 12 + }, +/obj/item/cultivator{ + pixel_x = -6 + }, +/obj/item/cultivator{ + pixel_x = 9; + pixel_y = 3 + }, +/obj/item/plant_analyzer, /obj/item/plant_analyzer, -/obj/item/cultivator, -/obj/item/reagent_containers/cup/watering_can, /turf/open/floor/iron/dark, /area/station/security/prison/garden) "qnR" = ( @@ -48683,9 +49783,8 @@ /turf/open/floor/iron/dark, /area/station/security/execution/transfer) "qoB" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/sign/poster/contraband/free_drone/directional/south, -/obj/effect/spawner/random/trash/garbage, +/obj/structure/sign/poster/random/directional/south, +/obj/effect/spawner/random/structure/crate, /turf/open/floor/plating, /area/station/maintenance/port/fore) "qoF" = ( @@ -48708,15 +49807,6 @@ /obj/structure/filingcabinet, /turf/open/floor/iron/vaporwave, /area/station/service/library/printer) -"qpd" = ( -/obj/machinery/light/neon_lining{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/turf/open/floor/stone, -/area/station/science/xenobiology) "qpg" = ( /obj/machinery/camera/emp_proof/directional/east{ c_tag = "Engineering - External Particle Accelerator, East"; @@ -48739,9 +49829,13 @@ /turf/open/floor/iron/white, /area/station/medical/chemistry) "qps" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/pink/visible/layer2, +/obj/machinery/light/small/directional/west, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, -/turf/closed/wall/r_wall, +/obj/machinery/computer/turbine_computer{ + dir = 4; + mapping_id = "main_turbine" + }, +/turf/open/floor/iron/dark, /area/station/maintenance/disposal/incinerator) "qpw" = ( /obj/structure/cable, @@ -48773,11 +49867,11 @@ /turf/open/floor/iron/dark/textured, /area/station/service/library/printer) "qpB" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/light/small/directional/west, -/obj/item/radio/intercom/directional/west, -/turf/open/floor/iron/white, -/area/station/science/auxlab) +/obj/machinery/atmospherics/components/unary/thermomachine/freezer{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/science/explab) "qpF" = ( /obj/structure/lattice/catwalk, /obj/structure/marker_beacon/burgundy, @@ -48789,20 +49883,6 @@ }, /turf/open/floor/iron, /area/station/engineering/main) -"qpO" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/structure/window/reinforced/spawner/directional/east, -/obj/structure/table/reinforced, -/obj/machinery/button/door{ - id = "testlab"; - name = "Xenobiology Secure Chamber Blast Doors"; - pixel_y = -2; - req_access = list("xenobiology") - }, -/turf/open/floor/iron, -/area/station/science/xenobiology) "qpS" = ( /obj/effect/turf_decal/trimline/blue/filled/warning{ dir = 4 @@ -48871,18 +49951,9 @@ req_access = list("security"); pixel_y = 5 }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/dark, /area/station/security/checkpoint/medical) -"qqJ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/sign/warning/secure_area/directional/south, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "qqU" = ( /obj/machinery/computer/cargo{ dir = 8 @@ -48912,11 +49983,12 @@ /turf/open/floor/carpet, /area/station/service/chapel) "qrn" = ( -/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ - dir = 6 +/obj/structure/cable, +/obj/machinery/atmospherics/components/binary/pump/on{ + name = "Waste In" }, /turf/open/floor/iron/dark, -/area/station/engineering/atmos) +/area/station/engineering/atmos/pumproom) "qrs" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -49009,41 +50081,28 @@ /turf/open/floor/iron/dark, /area/station/security/office) "qth" = ( -/obj/item/storage/secure/safe/directional/west, -/obj/structure/table/wood, -/obj/item/taperecorder, -/obj/item/tape/random, -/turf/open/floor/wood, -/area/station/security/detectives_office) +/obj/effect/turf_decal/tile/dark_blue/fourcorners, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai_upload_foyer) +"qtl" = ( +/obj/machinery/camera/directional/south{ + c_tag = "Maintenance - Science Pass-through, Ordnance Access"; + name = "maintenance camera"; + network = list("ss13","rd") + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/department/science) "qtL" = ( /obj/effect/spawner/random/structure/table, /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) "qtW" = ( -/obj/structure/table/wood, -/obj/item/folder/blue, -/obj/item/folder/blue{ - pixel_x = 3; - pixel_y = 3 - }, -/obj/item/folder/blue{ - pixel_x = 6; - pixel_y = 6 - }, -/obj/item/folder/blue{ - pixel_x = 9; - pixel_y = 9 - }, -/obj/item/stamp/law{ - pixel_x = 8; - pixel_y = 6 - }, -/obj/item/clothing/glasses/sunglasses/big, -/obj/item/pen/red{ - pixel_x = -6; - pixel_y = 9 +/obj/structure/chair/office{ + dir = 1 }, +/obj/effect/landmark/start/lawyer, /turf/open/floor/wood, /area/station/service/lawoffice) "qub" = ( @@ -49068,15 +50127,6 @@ }, /obj/effect/turf_decal/trimline/red/line, /obj/structure/table, -/obj/item/restraints/handcuffs, -/obj/item/restraints/handcuffs{ - pixel_x = -3; - pixel_y = 6 - }, -/obj/item/restraints/handcuffs{ - pixel_y = 3 - }, -/obj/item/assembly/timer, /turf/open/floor/iron/dark, /area/station/security/office) "qui" = ( @@ -49094,6 +50144,7 @@ /area/station/command/heads_quarters/cmo) "quN" = ( /obj/machinery/light/directional/west, +/obj/machinery/status_display/ai/directional/west, /obj/structure/chair/plastic{ dir = 4 }, @@ -49117,21 +50168,15 @@ /obj/effect/turf_decal/trimline/neutral/line{ dir = 4 }, -/obj/effect/turf_decal/trimline/neutral/filled/corner{ +/obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 }, -/obj/effect/turf_decal/trimline/neutral/filled/corner{ - dir = 1 - }, /obj/effect/turf_decal/stripes/corner{ dir = 1 }, /obj/effect/turf_decal/stripes/corner{ dir = 8 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) "quZ" = ( @@ -49140,6 +50185,7 @@ dir = 1 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ name = "Primary Tool Storage" @@ -49160,7 +50206,7 @@ }, /obj/effect/turf_decal/stripes/line, /obj/machinery/door/airlock/external{ - name = "Port Docking Bay 2" + name = "Docking Bay 2" }, /obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/iron/dark/textured_large, @@ -49203,7 +50249,7 @@ dir = 1 }, /obj/machinery/camera/directional/south{ - c_tag = "Hallway - West, Central, 2"; + c_tag = "Hallway, West - Central 2"; name = "hallway camera" }, /obj/structure/sign/poster/official/random/directional/south, @@ -49219,6 +50265,11 @@ /obj/machinery/duct, /turf/open/floor/iron, /area/station/hallway/secondary/service) +"qwl" = ( +/obj/machinery/light/small/directional/west, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/department/science) "qwx" = ( /obj/structure/lattice/catwalk, /obj/structure/cable, @@ -49228,11 +50279,6 @@ /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 4 }, -/obj/machinery/camera/directional/east{ - c_tag = "Medical - Lobby"; - network = list("ss13","medbay"); - name = "medical camera" - }, /obj/structure/chair/sofa/corp/right{ dir = 8 }, @@ -49269,11 +50315,11 @@ }, /area/station/cargo/storage) "qxJ" = ( -/obj/structure/table, -/obj/item/paper_bin, -/obj/item/pen, -/turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/obj/machinery/light/small/directional/west, +/obj/structure/sign/poster/contraband/random/directional/west, +/obj/effect/spawner/random/structure/closet_maintenance, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "qxK" = ( /obj/effect/turf_decal/trimline/brown/filled/warning, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -49297,15 +50343,49 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 }, -/obj/structure/cable, /turf/open/floor/iron/dark/smooth_large, -/area/station/maintenance/department/security) +/area/station/security/office) "qyB" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 1 }, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) +"qyZ" = ( +/obj/machinery/light/small/directional/north, +/obj/structure/closet/secure_closet/freezer/fridge/all_access, +/obj/item/storage/box/ingredients/vegetarian, +/obj/item/storage/box/ingredients/italian, +/obj/item/storage/box/ingredients/fruity, +/obj/item/storage/box/ingredients/fiesta, +/obj/item/storage/box/ingredients/american, +/obj/item/reagent_containers/condiment/flour{ + list_reagents = list(/datum/reagent/consumable/flour=600); + name = "Premium All-Purpose Flour (16KG)"; + volume = 600 + }, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/enzyme{ + list_reagents = list(/datum/reagent/consumable/enzyme=500); + name = "universe-sized universal enyzyme"; + volume = 500 + }, +/obj/item/reagent_containers/condiment/rice{ + list_reagents = list(/datum/reagent/consumable/rice=150); + name = "Basmati Rice Sack (4KG)"; + volume = 150 + }, +/obj/item/food/meat/slab, +/obj/item/food/meat/slab, +/obj/item/food/meat/slab, +/obj/item/food/meat/rawbacon, +/obj/item/food/meat/rawbacon, +/obj/item/food/meat/rawbacon, +/obj/item/food/meat/slab/chicken, +/obj/item/food/meat/slab/chicken, +/obj/item/food/meat/slab/chicken, +/turf/open/floor/iron/kitchen, +/area/station/command/heads_quarters/nt_rep) "qzc" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -49388,17 +50468,9 @@ /area/station/ai_monitored/turret_protected/ai) "qzZ" = ( /obj/structure/window/reinforced/spawner/directional/west, -/turf/open/floor/iron/dark, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron/dark/textured, /area/station/commons/fitness/recreation) -"qAa" = ( -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 10 - }, -/obj/item/radio/intercom/directional/west, -/obj/structure/extinguisher_cabinet/directional/south, -/obj/structure/table, -/turf/open/floor/iron/white, -/area/station/science/explab) "qAf" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -49408,13 +50480,15 @@ /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/central) "qAk" = ( -/obj/effect/spawner/structure/window, -/turf/open/floor/plating, +/obj/structure/chair/comfy/brown{ + dir = 8 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/carpet, /area/station/hallway/secondary/entry) "qAo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/light/floor/has_bulb, /turf/open/floor/iron/dark/side, /area/station/security/prison/workout) "qAq" = ( @@ -49444,6 +50518,11 @@ }, /obj/structure/extinguisher_cabinet/directional/west, /obj/structure/filingcabinet, +/obj/machinery/camera/directional/west{ + c_tag = "Science - RaD"; + name = "science camera"; + network = list("ss13","rd") + }, /turf/open/floor/iron/white, /area/station/science/lab) "qBi" = ( @@ -49537,9 +50616,10 @@ /turf/open/floor/iron/dark, /area/station/security/prison/mess) "qDp" = ( -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/station/commons/vacant_room/office) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/nt_rep) "qDz" = ( /obj/structure/sign/warning/radiation/directional/west, /obj/structure/cable/layer1, @@ -49602,6 +50682,11 @@ dir = 1 }, /area/station/service/theater) +"qEW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/port_gen/pacman/pre_loaded, +/turf/open/floor/plating, +/area/station/maintenance/department/security/brig) "qFf" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -49702,6 +50787,12 @@ /obj/effect/spawner/random/trash/moisture_trap, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) +"qGN" = ( +/obj/effect/turf_decal/stripes/red/line{ + dir = 6 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "qGP" = ( /obj/effect/turf_decal/trimline/blue/filled/warning{ dir = 1 @@ -49762,10 +50853,7 @@ /turf/open/floor/iron/white, /area/station/medical/medbay/aft) "qHq" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/extinguisher_cabinet/directional/east, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/table, +/obj/machinery/atmospherics/components/tank/plasma, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) "qHu" = ( @@ -49849,6 +50937,13 @@ dir = 4 }, /area/station/service/hydroponics) +"qIJ" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 8 + }, +/obj/item/radio/intercom/directional/west, +/turf/open/floor/iron/white, +/area/station/science/auxlab) "qIN" = ( /obj/effect/turf_decal/trimline/red/filled/line, /obj/machinery/status_display/ai/directional/south, @@ -49873,7 +50968,6 @@ /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 8 }, -/obj/machinery/camera/autoname/directional/west, /obj/machinery/status_display/ai/directional/west, /obj/structure/table, /obj/machinery/fax{ @@ -49922,16 +51016,16 @@ /area/station/engineering/atmos) "qKG" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 5 + dir = 4 }, -/obj/effect/turf_decal/trimline/yellow/corner{ +/obj/effect/turf_decal/trimline/yellow/line{ dir = 8 }, /obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ dir = 4 }, /turf/open/floor/iron/dark/side{ - dir = 5 + dir = 4 }, /area/station/hallway/primary/aft) "qKU" = ( @@ -49968,9 +51062,9 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "qMF" = ( -/obj/machinery/light/small/directional/west, -/obj/effect/spawner/random/structure/table_or_rack, -/obj/effect/spawner/random/maintenance/two, +/obj/structure/sign/poster/random/directional/north, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/garbage, /turf/open/floor/plating, /area/station/maintenance/port/fore) "qMO" = ( @@ -50003,10 +51097,17 @@ /turf/open/floor/iron/dark, /area/station/hallway/primary/central) "qMY" = ( -/obj/effect/turf_decal/siding/wideplating_new/dark, -/obj/effect/turf_decal/siding/wideplating_new/dark{ +/obj/effect/turf_decal/siding/wideplating_new/dark/corner{ dir = 1 }, +/obj/effect/turf_decal/siding/wideplating_new/dark/corner{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wideplating_new/dark/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, /turf/open/floor/iron/dark/telecomms, /area/station/tcommsat/server) "qNf" = ( @@ -50034,17 +51135,11 @@ /turf/open/floor/iron/dark/side, /area/station/commons/dorms) "qNL" = ( -/obj/machinery/corral_corner{ - mapping_id = "6" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/light/neon_lining{ - dir = 8 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) +/obj/structure/sign/warning/vacuum/external/directional/north, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/garbage, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "qNN" = ( /obj/machinery/meter, /obj/machinery/atmospherics/pipe/smart/manifold/general/visible{ @@ -50061,12 +51156,6 @@ dir = 4 }, /area/station/cargo/storage) -"qOc" = ( -/obj/effect/turf_decal/stripes/line, -/obj/structure/cable, -/obj/machinery/light/small/directional/east, -/turf/open/floor/iron, -/area/station/science/xenobiology) "qOl" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -50086,6 +51175,9 @@ /obj/machinery/light/small/directional/south, /obj/machinery/camera/autoname/directional/south, /obj/structure/extinguisher_cabinet/directional/south, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, /turf/open/floor/iron/dark/side, /area/station/commons/fitness) "qOH" = ( @@ -50106,6 +51198,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, +/obj/machinery/firealarm/directional/north, /obj/machinery/door/firedoor, /turf/open/floor/catwalk_floor/iron, /area/station/maintenance/department/science) @@ -50126,6 +51219,16 @@ /obj/effect/landmark/navigate_destination, /turf/open/floor/iron/dark/textured_large, /area/station/hallway/secondary/entry) +"qPg" = ( +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/iron/kitchen, +/area/station/command/heads_quarters/nt_rep) "qPn" = ( /obj/machinery/door/firedoor/border_only, /obj/machinery/door/firedoor/border_only{ @@ -50161,10 +51264,21 @@ /area/station/security/brig) "qPL" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/delivery/red, /obj/machinery/light/small/directional/east, /obj/machinery/portable_atmospherics/canister/nitrous_oxide, /turf/open/floor/iron/dark, /area/station/security/execution) +"qPO" = ( +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/dark/telecomms, +/area/station/tcommsat/server) "qPP" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -50247,8 +51361,13 @@ /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 1 }, -/obj/structure/chair, -/obj/effect/landmark/start/hangover, +/obj/machinery/firealarm/directional/north{ + pixel_x = 5 + }, +/obj/machinery/light_switch/directional/north{ + pixel_x = -5 + }, +/obj/machinery/computer/piratepad_control/civilian, /turf/open/floor/iron/dark/side{ dir = 1 }, @@ -50263,6 +51382,9 @@ /turf/open/floor/iron, /area/station/engineering/main) "qRn" = ( +/obj/machinery/airalarm/directional/east, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, /obj/machinery/bookbinder, /turf/open/floor/wood, /area/station/service/library/lounge) @@ -50280,6 +51402,9 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /obj/effect/mapping_helpers/burnt_floor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /turf/open/floor/plating, /area/station/maintenance/port/fore) "qRH" = ( @@ -50437,14 +51562,6 @@ dir = 1 }, /area/station/cargo/sorting) -"qUC" = ( -/obj/effect/turf_decal/trimline/purple/filled/warning, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/white, -/area/station/science/explab) "qUM" = ( /obj/effect/turf_decal/box, /obj/machinery/holopad, @@ -50464,9 +51581,9 @@ /turf/open/floor/plating, /area/station/maintenance/department/cargo) "qVi" = ( -/obj/effect/spawner/random/trash/mess, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/service/library/lounge) "qVD" = ( /obj/effect/decal/cleanable/cobweb, /obj/effect/spawner/random/structure/closet_maintenance, @@ -50539,6 +51656,16 @@ }, /turf/open/floor/iron/dark, /area/station/command/bridge) +"qWU" = ( +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron, +/area/station/maintenance/department/science) "qWZ" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 8 @@ -50578,16 +51705,17 @@ /turf/open/floor/plating, /area/station/maintenance/solars/port/fore) "qXp" = ( -/obj/effect/turf_decal/siding/wideplating_new/dark{ +/obj/effect/turf_decal/siding/thinplating/dark{ dir = 8 }, -/obj/effect/turf_decal/siding/wideplating_new/dark{ +/obj/effect/turf_decal/siding/thinplating/dark{ dir = 4 }, /obj/structure/cable, /obj/machinery/power/terminal{ dir = 8 }, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, /turf/open/floor/iron/dark/telecomms, /area/station/tcommsat/server) "qXs" = ( @@ -50612,15 +51740,6 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron/white, /area/station/medical/virology) -"qXN" = ( -/obj/effect/turf_decal/trimline/dark_blue/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/dark_blue/line, -/obj/machinery/light/directional/north, -/obj/structure/sign/warning/electric_shock/directional/north, -/turf/open/floor/iron/dark, -/area/station/hallway/primary/central) "qXO" = ( /obj/item/kirbyplants/random, /turf/open/floor/iron/white, @@ -50635,6 +51754,10 @@ /obj/machinery/light_switch/directional/north{ pixel_x = 5 }, +/obj/machinery/camera/directional/north{ + c_tag = "Service - Kitchen"; + name = "service camera" + }, /turf/open/floor/iron/kitchen, /area/station/service/kitchen) "qXW" = ( @@ -50674,7 +51797,7 @@ /obj/machinery/atmospherics/pipe/bridge_pipe/yellow/visible{ dir = 4 }, -/obj/machinery/atmospherics/pipe/bridge_pipe/orange/visible, +/obj/machinery/atmospherics/pipe/bridge_pipe/brown/visible, /turf/open/space, /area/space/nearstation) "qYY" = ( @@ -50686,8 +51809,9 @@ /turf/closed/wall, /area/station/commons/dorms/room1) "qZk" = ( -/turf/closed/wall/r_wall, -/area/station/science/auxlab) +/obj/machinery/suit_storage_unit/standard_unit, +/turf/open/floor/iron/white/textured, +/area/station/science/explab) "qZn" = ( /obj/effect/turf_decal/trimline/brown/filled/warning{ dir = 1 @@ -50702,7 +51826,7 @@ }, /obj/structure/window/reinforced/spawner/directional/west, /obj/structure/window/reinforced/spawner/directional/north, -/turf/open/floor/iron/dark, +/turf/open/floor/iron/dark/textured, /area/station/commons/fitness/recreation) "qZu" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ @@ -50744,12 +51868,13 @@ /area/station/engineering/main) "rau" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 1 + dir = 4 }, -/obj/effect/turf_decal/trimline/neutral/line, -/obj/machinery/camera/directional/north{ - c_tag = "Arrivals - Checkpoint, North"; - name = "arrivals camera" +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 }, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) @@ -50806,8 +51931,8 @@ /turf/open/floor/iron/dark, /area/station/security/prison/garden) "rbo" = ( -/obj/machinery/telecomms/broadcaster/preset_left, /obj/structure/cable, +/obj/machinery/telecomms/broadcaster/preset_left, /turf/open/floor/circuit/telecomms, /area/station/tcommsat/server) "rbH" = ( @@ -50825,16 +51950,6 @@ "rbY" = ( /turf/open/floor/plastic, /area/station/security/prison/safe) -"rcf" = ( -/obj/machinery/atmospherics/components/unary/passive_vent{ - name = "freezer passive vent" - }, -/turf/open/floor/iron/freezer, -/area/station/science/xenobiology) -"rcj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "rcp" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -50873,18 +51988,18 @@ /turf/open/floor/iron/dark, /area/station/hallway/primary/central) "rdb" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/shutters{ - id = "detective_office_shutters"; - name = "Detective Office Shutters"; +/obj/effect/turf_decal/trimline/purple/filled/line{ dir = 4 }, -/turf/open/floor/plating, -/area/station/security/detectives_office) +/obj/machinery/light/directional/east, +/obj/machinery/status_display/ai/directional/east, +/turf/open/floor/iron/white, +/area/station/science/research) "rdk" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, +/obj/machinery/light/directional/west, +/obj/machinery/computer/security{ + dir = 4 + }, /turf/open/floor/wood, /area/station/security/detectives_office) "rdn" = ( @@ -50913,7 +52028,6 @@ /area/station/maintenance/department/cargo) "rdG" = ( /obj/effect/turf_decal/trimline/purple/filled/line, -/obj/machinery/camera/autoname/directional/south, /obj/item/radio/intercom/directional/south, /turf/open/floor/iron/white, /area/station/science/research) @@ -50924,7 +52038,8 @@ /area/station/commons/dorms) "rdQ" = ( /obj/structure/window/reinforced/spawner/directional/east, -/turf/open/floor/iron/dark, +/obj/effect/landmark/start/hangover, +/turf/open/floor/iron/dark/textured, /area/station/commons/fitness/recreation) "rei" = ( /obj/effect/turf_decal/trimline/blue/filled/warning, @@ -50960,7 +52075,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/turf/open/floor/carpet/green, +/turf/open/floor/carpet, /area/station/commons/locker) "rff" = ( /obj/effect/decal/cleanable/dirt, @@ -51080,11 +52195,6 @@ }, /turf/open/floor/iron, /area/station/science/ordnance/office) -"rgV" = ( -/obj/structure/cable, -/obj/machinery/power/shieldwallgen/xenobiologyaccess, -/turf/open/floor/plating/reinforced, -/area/station/science/xenobiology) "rgY" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -51118,19 +52228,12 @@ /obj/machinery/door/airlock/external{ name = "Security External Access" }, -/obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/effect/mapping_helpers/airlock/access/all/security/brig, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, /turf/open/floor/iron/dark/textured_large, /area/station/security/lockers) -"rhy" = ( -/obj/machinery/light/directional/east, -/obj/machinery/artifact_zapper{ - dir = 8 - }, -/turf/open/floor/engine, -/area/station/science/explab) "rhD" = ( /obj/machinery/light/directional/west, /turf/open/floor/iron/dark, @@ -51164,18 +52267,7 @@ dir = 4 }, /obj/structure/table, -/obj/item/radio/off{ - pixel_y = 6 - }, -/obj/item/radio/off{ - pixel_x = 6; - pixel_y = 4 - }, -/obj/item/radio/off{ - pixel_x = -6; - pixel_y = 4 - }, -/obj/item/radio/off, +/obj/machinery/syndicatebomb/training, /turf/open/floor/iron/dark, /area/station/security/office) "ril" = ( @@ -51266,19 +52358,8 @@ /turf/closed/wall, /area/station/science/genetics/cloning) "rkF" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/door/airlock/external{ - name = "External Access" - }, -/obj/effect/mapping_helpers/airlock/access/all/science/general, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 1 - }, -/turf/open/floor/iron/white/textured_large, -/area/station/science/auxlab) +/turf/open/floor/iron/white/smooth_large, +/area/station/science/explab) "rkK" = ( /obj/structure/table, /obj/item/lightreplacer, @@ -51291,18 +52372,18 @@ "rlc" = ( /obj/structure/table/reinforced, /obj/item/reagent_containers/cup/glass/trophy/bronze_cup{ - name = "Foam force security team competition 3rd place"; + name = "Foam Force Security Team Competition, 3rd Place"; pixel_x = -9; pixel_y = 11 }, /obj/item/reagent_containers/cup/glass/trophy{ - desc = "You did good in the worst way possible."; - name = "Redshield 1st prize"; + desc = "You did good... in the worst way possible."; + name = "Redshield, 1st place"; pixel_x = 10; pixel_y = 11 }, /obj/item/reagent_containers/cup/glass/trophy/silver_cup{ - name = "Head of shitcurity competition 2nd place"; + name = "Head of Shitcurity Competition, 2nd Place"; pixel_y = 8 }, /turf/open/floor/wood, @@ -51367,9 +52448,6 @@ /area/station/engineering/storage) "rlQ" = ( /obj/effect/turf_decal/tile/dark_blue/fourcorners, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, /obj/machinery/turretid{ control_area = "/area/station/ai_monitored/turret_protected/ai_upload"; name = "AI Upload Turret Control"; @@ -51383,13 +52461,24 @@ /turf/open/floor/plating, /area/station/maintenance/port) "rmx" = ( -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible{ - dir = 10 +/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible{ + dir = 1 }, /obj/machinery/light/directional/north, /obj/item/radio/intercom/directional/north, +/obj/machinery/meter, /turf/open/floor/iron/dark, /area/station/engineering/atmos/pumproom) +"rmy" = ( +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 8 + }, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/entry) "rmJ" = ( /obj/effect/turf_decal/vg_decals/atmos/nitrogen, /turf/open/floor/engine/n2, @@ -51402,16 +52491,6 @@ /obj/effect/spawner/random/structure/crate, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"rnm" = ( -/obj/machinery/light/directional/north, -/obj/machinery/button/door/directional/north{ - id = "xenobiomain"; - name = "Containment Blast Doors"; - req_access = list("xenobiology") - }, -/obj/machinery/computer/slime_market, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "rnp" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -51473,8 +52552,8 @@ /obj/effect/turf_decal/trimline/red/line{ dir = 1 }, -/obj/item/radio/intercom/directional/south, /obj/machinery/light/small/directional/south, +/obj/item/radio/intercom/directional/south, /turf/open/floor/iron/dark, /area/station/security/brig) "rot" = ( @@ -51529,30 +52608,12 @@ dir = 5 }, /area/station/commons/fitness) -"rph" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) -"rpt" = ( -/obj/machinery/corral_corner{ - mapping_id = "5" - }, -/obj/machinery/slime_pen_controller{ - mapping_id = "5" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/machinery/light/neon_lining{ - dir = 4 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "rpu" = ( -/obj/structure/bed, -/obj/item/bedsheet/red, -/obj/effect/landmark/start/detective, -/turf/open/floor/wood, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/chair/comfy/black{ + dir = 1 + }, +/turf/open/floor/iron/dark, /area/station/security/detectives_office) "rpA" = ( /obj/effect/turf_decal/bot_white, @@ -51602,12 +52663,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"rpP" = ( -/obj/machinery/camera/autoname/directional/north, -/obj/structure/sign/warning/biohazard/directional/north, -/obj/machinery/slime_market_pad, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "rpT" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 10 @@ -51650,15 +52705,7 @@ }, /turf/open/floor/wood/tile, /area/station/service/library/artgallery) -"rqP" = ( -/obj/structure/chair, -/obj/effect/landmark/start/scientist, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "rrg" = ( -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, /obj/machinery/light/small/directional/west, /obj/structure/sign/warning/cold_temp/directional/west, /turf/open/floor/iron/dark/side{ @@ -51698,9 +52745,7 @@ /obj/machinery/light/directional/east, /obj/machinery/power/apc/auto_name/directional/east, /obj/structure/cable, -/obj/machinery/computer/piratepad_control/civilian{ - dir = 8 - }, +/obj/effect/spawner/random/structure/crate, /turf/open/floor/iron/dark/side{ dir = 4 }, @@ -51760,13 +52805,6 @@ /obj/structure/filingcabinet/security, /turf/open/floor/iron/dark, /area/station/security/checkpoint/engineering) -"rtP" = ( -/obj/structure/frame/computer{ - anchored = 1; - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) "rud" = ( /obj/effect/turf_decal/trimline/green/filled/line, /obj/machinery/composters, @@ -51839,12 +52877,15 @@ /turf/open/floor/iron/dark/textured, /area/station/engineering/storage/tech) "ruH" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/chair/office{ - dir = 8 +/obj/structure/bed{ + dir = 4 }, -/turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/obj/item/bedsheet/dorms{ + dir = 4 + }, +/obj/effect/landmark/start/lawyer, +/turf/open/floor/wood, +/area/station/service/lawoffice) "ruJ" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/portable_atmospherics/canister/air, @@ -51861,6 +52902,17 @@ dir = 4 }, /area/station/service/hydroponics/garden) +"rvd" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/spawner/random/structure/steam_vent, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "rvf" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 8 @@ -51868,6 +52920,19 @@ /obj/machinery/status_display/ai/directional/west, /turf/open/floor/iron/white, /area/station/science/research) +"rvv" = ( +/obj/structure/disposalpipe/sorting/mail{ + dir = 4 + }, +/obj/effect/mapping_helpers/mail_sorting/science/genetics, +/obj/effect/mapping_helpers/mail_sorting/science/rd_office, +/obj/effect/mapping_helpers/mail_sorting/science/research, +/obj/effect/mapping_helpers/mail_sorting/science/robotics, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron, +/area/station/maintenance/department/science) "rvC" = ( /obj/machinery/light/small/directional/north, /obj/structure/closet/l3closet/janitor, @@ -51932,7 +52997,7 @@ /turf/open/floor/iron/dark, /area/station/engineering/atmos) "rwf" = ( -/obj/structure/chair/sofa/bench/solo{ +/obj/structure/chair{ dir = 8 }, /turf/open/floor/iron/dark, @@ -51950,12 +53015,13 @@ /area/station/cargo/drone_bay) "rws" = ( /obj/effect/turf_decal/stripes/line, -/obj/machinery/sparker/directional/south{ - id = "execution_burn" - }, -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/on{ +/obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/door/poddoor{ + id = "justice_blast"; + name = "Emergency Justice Vent" + }, /turf/open/floor/engine, /area/station/security/execution) "rwA" = ( @@ -52025,9 +53091,12 @@ /turf/open/floor/iron/dark, /area/station/engineering/atmos) "rxs" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/kitchen, +/area/station/command/heads_quarters/nt_rep) "rxt" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -52041,6 +53110,11 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/dark/textured, /area/station/hallway/primary/port) +"rxv" = ( +/obj/machinery/light/small/directional/north, +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/iron/freezer, +/area/station/science/xenobiology) "rxF" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 4 @@ -52095,10 +53169,10 @@ /turf/open/floor/plating, /area/station/maintenance/central) "ryc" = ( -/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/dark, +/turf/open/floor/iron/dark/side, /area/station/tcommsat/computer) "ryl" = ( /obj/effect/turf_decal/stripes/line{ @@ -52127,11 +53201,13 @@ /turf/open/floor/iron/dark, /area/station/maintenance/disposal) "ryw" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 }, -/turf/open/floor/iron/dark, -/area/station/hallway/secondary/entry) +/turf/open/floor/iron/white, +/area/station/medical/chemistry) "ryz" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -52140,13 +53216,6 @@ dir = 8 }, /area/station/engineering/atmos) -"ryL" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/engine, -/area/station/science/explab) "ryM" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ @@ -52182,23 +53251,26 @@ /turf/open/floor/plating, /area/station/engineering/atmos/pumproom) "rzi" = ( -/obj/effect/turf_decal/tile/dark_blue/fourcorners, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/machinery/camera/motion/directional/west{ - c_tag = "AI - Upload, West"; - network = list("aiupload"); - name = "ai camera" +/obj/machinery/door/airlock/service{ + name = "Law Office Quarters" }, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai_upload) +/obj/effect/mapping_helpers/airlock/access/any/security/detective, +/turf/open/floor/iron/dark/textured, +/area/station/service/lawoffice) "rzs" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 +/obj/effect/turf_decal/trimline/dark_blue/filled/warning{ + dir = 1 }, /turf/open/floor/iron/dark, -/area/station/security/detectives_office) +/area/station/ai_monitored/turret_protected/ai_upload) "rzz" = ( /obj/effect/turf_decal/tile/blue/fourcorners, /obj/structure/window/reinforced/spawner/directional/south, @@ -52216,6 +53288,7 @@ /turf/open/floor/iron/white, /area/station/medical/storage) "rzG" = ( +/obj/effect/turf_decal/box, /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 4 }, @@ -52244,7 +53317,7 @@ dir = 4 }, /obj/machinery/light/directional/east, -/obj/machinery/vending/medical, +/obj/machinery/smartfridge/chemistry/virology/preloaded, /turf/open/floor/iron/white, /area/station/medical/virology) "rAh" = ( @@ -52419,6 +53492,15 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/cargo/miningoffice) +"rCq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/junction/yjunction{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "rCx" = ( /obj/effect/turf_decal/trimline/dark_blue/filled/line{ dir = 10 @@ -52432,6 +53514,7 @@ /turf/open/floor/iron/dark, /area/station/science/server) "rCE" = ( +/obj/machinery/airalarm/directional/south, /obj/item/kirbyplants/random, /turf/open/floor/iron/dark/side{ dir = 10 @@ -52493,6 +53576,11 @@ "rDD" = ( /turf/closed/wall/r_wall, /area/station/engineering/transit_tube) +"rDF" = ( +/obj/item/radio/intercom/directional/west, +/obj/machinery/photocopier, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/nt_rep) "rDG" = ( /obj/effect/turf_decal/tile/neutral/half/contrasted, /obj/effect/turf_decal/trimline/dark_blue/warning{ @@ -52523,14 +53611,9 @@ }, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) -"rDX" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/components/unary/portables_connector/visible, -/obj/machinery/portable_atmospherics/canister/bz, -/turf/open/floor/iron, -/area/station/science/xenobiology) "rDY" = ( /obj/effect/turf_decal/tile/purple/fourcorners, +/obj/structure/cable, /obj/machinery/door/window/brigdoor/left/directional/south{ name = "Research Director's Desk"; req_access = list("rd") @@ -52538,32 +53621,13 @@ /turf/open/floor/iron/dark, /area/station/command/bridge) "rEd" = ( -/obj/effect/spawner/random/structure/chair_flipped, -/obj/effect/spawner/random/trash/cigbutt, -/obj/effect/decal/cleanable/dirt, -/obj/structure/sign/plaques/kiddie/perfect_drone{ - pixel_x = 32 - }, -/turf/open/floor/iron/checker, -/area/station/maintenance/port/fore) -"rEe" = ( -/obj/effect/turf_decal/tile/dark_blue/fourcorners, -/obj/machinery/light_switch/directional/south{ - pixel_x = -5 - }, -/obj/machinery/button/door/directional/south{ - id = "station_away_gate"; - name = "Gateway Access Shutter Control"; - pixel_x = 5; - req_access = list("gateway") - }, -/obj/effect/turf_decal/bot_white, -/obj/machinery/newscaster/directional/west, -/obj/machinery/modular_computer/preset/civilian{ - dir = 1 +/obj/machinery/light/directional/east, +/obj/structure/sign/flag/nanotrasen/directional/east, +/obj/machinery/modular_computer/preset/command{ + dir = 8 }, -/turf/open/floor/iron/dark, -/area/station/command/gateway) +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/nt_rep) "rEf" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 8 @@ -52623,17 +53687,19 @@ /turf/open/floor/iron/white/smooth_large, /area/station/science/research) "rEL" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/visible, -/obj/machinery/door/window/left/directional/south{ - name = "Test Chamber"; - req_access = list("xenobiology") +/obj/structure/disposalpipe/sorting/mail{ + dir = 1 }, -/turf/open/floor/iron, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/mapping_helpers/mail_sorting/science/xenobiology, +/turf/open/floor/iron/white, /area/station/science/xenobiology) "rEP" = ( /obj/machinery/light/small/directional/north, /obj/machinery/status_display/evac/directional/north, +/obj/structure/closet/wardrobe/black, /turf/open/floor/iron/dark/side{ dir = 1 }, @@ -52645,10 +53711,7 @@ /turf/open/floor/iron/dark/smooth_large, /area/station/engineering/atmos) "rFb" = ( -/obj/machinery/atmospherics/components/unary/passive_vent{ - dir = 8; - name = "freezer passive vent" - }, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, /turf/open/floor/iron/freezer, /area/station/service/kitchen/coldroom) "rFk" = ( @@ -52675,9 +53738,6 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/cargo) -"rGg" = ( -/turf/open/floor/plating, -/area/station/maintenance/port) "rGt" = ( /obj/machinery/light/built/directional/east, /obj/effect/decal/cleanable/dirt, @@ -52685,7 +53745,7 @@ /turf/open/floor/iron/dark, /area/station/service/abandoned_gambling_den) "rGu" = ( -/obj/effect/turf_decal/sand/plating, +/obj/structure/foamedmetal, /turf/open/floor/plating/airless, /area/station/asteroid) "rGz" = ( @@ -52761,21 +53821,21 @@ /turf/open/floor/iron/white/textured, /area/station/medical/chemistry) "rHp" = ( +/obj/effect/turf_decal/stripes/box, +/obj/structure/cable, /obj/machinery/power/smes{ capacity = 9e+006; charge = 10000 }, /obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/obj/effect/turf_decal/stripes/box, -/turf/open/floor/iron/dark/textured_large, +/turf/open/floor/iron/dark, /area/station/maintenance/disposal/incinerator) "rHq" = ( /obj/effect/turf_decal/trimline/dark_blue/filled/line{ dir = 1 }, /obj/effect/turf_decal/trimline/dark_blue/line, +/obj/machinery/camera/autoname/directional/north, /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, /turf/open/floor/iron/white, @@ -52789,15 +53849,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/security/prison/garden) -"rHD" = ( -/obj/machinery/light/neon_lining{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "rHG" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -52822,11 +53873,10 @@ /turf/open/floor/wood, /area/station/service/bar) "rHQ" = ( -/obj/effect/turf_decal/stripes/end{ - dir = 1 - }, -/turf/open/floor/plating/airless, -/area/station/science/ordnance/bomb) +/obj/machinery/status_display/evac/directional/east, +/obj/structure/closet/secure_closet/cytology, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "rHR" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -52839,6 +53889,7 @@ /turf/open/floor/plating/airless, /area/space/nearstation) "rIe" = ( +/obj/effect/turf_decal/stripes/end, /obj/machinery/mass_driver/ordnance{ dir = 1 }, @@ -52865,15 +53916,6 @@ /obj/structure/closet/secure_closet/evidence, /turf/open/floor/iron/dark, /area/station/security/evidence) -"rIN" = ( -/obj/machinery/light/neon_lining{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "rIR" = ( /obj/machinery/light/directional/south, /obj/machinery/newscaster/directional/south, @@ -52901,10 +53943,6 @@ /mob/living/basic/chicken, /turf/open/floor/grass, /area/station/service/hydroponics) -"rJp" = ( -/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) "rJu" = ( /obj/machinery/telecomms/bus/preset_three, /turf/open/floor/circuit/green/telecomms, @@ -52918,40 +53956,17 @@ /turf/open/floor/iron/white, /area/station/medical/pharmacy) "rJM" = ( -/obj/machinery/firealarm/directional/north{ - pixel_x = 5 - }, -/obj/item/stack/sheet/mineral/plasma{ - pixel_x = -6; - pixel_y = 6 - }, -/obj/item/stack/sheet/mineral/plasma, -/obj/item/stack/sheet/mineral/plasma{ - pixel_y = 4 - }, -/obj/item/stack/sheet/mineral/plasma{ - pixel_x = -2; - pixel_y = 2 - }, -/obj/item/reagent_containers/cup/beaker/large, -/obj/item/reagent_containers/cup/beaker{ - pixel_x = 8; - pixel_y = 2 - }, -/obj/item/reagent_containers/dropper, -/obj/item/reagent_containers/dropper{ - pixel_y = -4 +/obj/structure/disposalpipe/segment{ + dir = 6 }, -/obj/structure/table/reinforced/plasmarglass, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/duct, /turf/open/floor/iron/white, /area/station/science/xenobiology) "rKd" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ - dir = 4 - }, -/obj/effect/spawner/random/engineering/tracking_beacon, -/turf/open/floor/iron, +/turf/open/floor/engine, /area/station/maintenance/disposal/incinerator) "rKe" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -52969,6 +53984,12 @@ /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 8 }, +/obj/machinery/light_switch/directional/west{ + pixel_y = 5 + }, +/obj/machinery/firealarm/directional/west{ + pixel_y = -5 + }, /turf/open/floor/iron/dark/side{ dir = 8 }, @@ -52981,7 +54002,9 @@ /turf/open/floor/iron, /area/station/cargo/storage) "rLH" = ( -/obj/machinery/atmospherics/pipe/layer_manifold/pink/visible, +/obj/machinery/atmospherics/components/trinary/filter/atmos/flipped/co2{ + dir = 8 + }, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) "rLK" = ( @@ -53038,10 +54061,6 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"rMt" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, -/turf/open/floor/iron, -/area/station/engineering/main) "rMz" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 6 @@ -53102,12 +54121,17 @@ /area/station/maintenance/starboard/aft) "rNL" = ( /obj/effect/turf_decal/tile/purple/fourcorners, +/obj/structure/cable, /obj/structure/chair/office/light{ dir = 8 }, /obj/effect/landmark/start/research_director, /turf/open/floor/iron/dark, /area/station/command/bridge) +"rNP" = ( +/obj/machinery/light/small/directional/west, +/turf/open/floor/iron/white/smooth_large, +/area/station/science/explab) "rOt" = ( /turf/closed/wall, /area/station/commons/dorms/room3) @@ -53172,6 +54196,10 @@ /obj/item/assembly/flash/handheld, /turf/open/floor/iron/dark, /area/station/security/prison/visit) +"rOP" = ( +/obj/machinery/light/directional/north, +/turf/open/floor/iron/showroomfloor, +/area/station/command/heads_quarters/nt_rep) "rOR" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 4 @@ -53182,8 +54210,10 @@ }, /area/station/engineering/storage_shared) "rOW" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/turf/open/floor/iron, +/obj/effect/turf_decal/box, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/holopad, +/turf/open/floor/iron/large, /area/station/engineering/main) "rPh" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ @@ -53197,10 +54227,8 @@ }, /area/station/engineering/break_room) "rPn" = ( -/obj/machinery/light/small/directional/west, -/obj/machinery/camera/autoname/directional/west, -/turf/open/floor/iron/freezer, -/area/station/science/xenobiology) +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "rPJ" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/vending/snackvend, @@ -53222,10 +54250,10 @@ /turf/open/floor/iron/dark, /area/station/security/processing) "rPV" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 +/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/incinerator_input{ + dir = 1 }, -/turf/open/floor/iron, +/turf/open/floor/engine, /area/station/maintenance/disposal/incinerator) "rPX" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ @@ -53235,6 +54263,12 @@ /obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron/dark, /area/station/hallway/secondary/exit/departure_lounge) +"rPY" = ( +/obj/machinery/light/directional/south, +/obj/structure/reagent_dispensers/watertank, +/obj/structure/extinguisher_cabinet/directional/south, +/turf/open/floor/iron/dark/side/airless, +/area/station/maintenance/space_hut) "rQs" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -53246,16 +54280,21 @@ }, /obj/item/radio/intercom/directional/west, /obj/structure/table/wood, -/obj/item/reagent_containers/cup/glass/bottle/whiskey{ - pixel_y = 14; - pixel_x = 7 +/obj/item/phone{ + pixel_x = -6; + pixel_y = 10 }, -/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{ - pixel_x = 6 +/obj/machinery/recharger{ + pixel_x = -4; + pixel_y = -1 }, -/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{ - pixel_x = -3; - pixel_y = 8 +/obj/item/paper_bin{ + pixel_y = 4; + pixel_x = 9 + }, +/obj/item/stamp/head/hos{ + pixel_x = 10; + pixel_y = 6 }, /turf/open/floor/wood, /area/station/command/heads_quarters/hos) @@ -53275,17 +54314,18 @@ /obj/effect/turf_decal/trimline/red/line{ dir = 1 }, +/obj/machinery/light/small/directional/south, /obj/machinery/status_display/door_timer{ id = "Cell 1"; name = "Cell 1"; pixel_y = -32 }, -/obj/machinery/light/small/directional/south, /turf/open/floor/iron/dark, /area/station/security/brig) "rQU" = ( /obj/effect/turf_decal/tile/blue/fourcorners, /obj/machinery/light/small/directional/south, +/obj/machinery/camera/autoname/directional/south, /obj/item/radio/intercom/directional/south, /obj/machinery/vending/medical, /turf/open/floor/iron/white, @@ -53360,13 +54400,14 @@ /turf/open/floor/catwalk_floor/iron_dark, /area/station/maintenance/department/engine/atmos) "rSc" = ( -/obj/effect/turf_decal/siding/wideplating_new/dark{ +/obj/effect/turf_decal/siding/thinplating/dark{ dir = 8 }, /obj/effect/turf_decal/siding/wideplating_new/dark/corner, /obj/effect/turf_decal/siding/wideplating_new/dark/corner{ dir = 4 }, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, /turf/open/floor/iron/dark/telecomms, /area/station/tcommsat/server) "rSo" = ( @@ -53392,7 +54433,7 @@ /area/station/maintenance/department/science) "rSN" = ( /obj/effect/turf_decal/trimline/blue/filled/warning{ - dir = 9 + dir = 8 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -53562,14 +54603,6 @@ /obj/item/tank/jetpack/carbondioxide, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/eva) -"rUm" = ( -/obj/machinery/camera/autoname/directional/south, -/obj/machinery/airalarm/directional/south, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/security/prison/visit) "rUL" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/structure/closet_maintenance, @@ -53583,9 +54616,9 @@ /turf/closed/wall/r_wall, /area/station/engineering/atmos) "rUY" = ( -/obj/effect/turf_decal/trimline/yellow/filled/warning, -/obj/effect/turf_decal/trimline/yellow/warning{ - dir = 1 +/obj/effect/turf_decal/trimline/yellow/filled/corner, +/obj/effect/turf_decal/trimline/yellow/line{ + dir = 9 }, /turf/open/floor/iron/dark, /area/station/hallway/primary/central) @@ -53597,7 +54630,7 @@ dir = 8 }, /obj/machinery/camera/directional/east{ - c_tag = "Hallway - Central, West"; + c_tag = "Hallway, Central - West"; name = "hallway camera" }, /turf/open/floor/iron/dark, @@ -53623,7 +54656,7 @@ name = "Escape Pod Three" }, /turf/open/floor/iron/dark/textured_large, -/area/station/maintenance/department/security) +/area/station/security/office) "rWp" = ( /obj/structure/chair, /obj/effect/landmark/start/shaft_miner, @@ -53658,6 +54691,11 @@ }, /turf/open/floor/plating, /area/station/maintenance/solars/starboard/fore) +"rWW" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/space_heater, +/turf/open/floor/iron/checker, +/area/station/maintenance/port/fore) "rWZ" = ( /obj/effect/turf_decal/trimline/dark_blue/filled/line{ dir = 1 @@ -53665,13 +54703,10 @@ /obj/effect/turf_decal/trimline/dark_blue/line, /turf/open/floor/iron/dark, /area/station/hallway/primary/port) -"rXC" = ( -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 - }, -/obj/machinery/portable_atmospherics/canister/air, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) +"rXg" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/engine, +/area/station/science/explab) "rXH" = ( /obj/effect/turf_decal/tile/yellow/fourcorners, /obj/machinery/door/window/brigdoor/left/directional/north{ @@ -53751,16 +54786,6 @@ dir = 4 }, /area/station/cargo/office) -"rYV" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/effect/turf_decal/box, -/obj/machinery/holopad, -/obj/machinery/duct, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/white/smooth_large, -/area/station/science/xenobiology) "rZq" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/turret_protected/aisat/foyer) @@ -53792,21 +54817,26 @@ /turf/open/floor/iron, /area/station/engineering/main) "rZB" = ( -/obj/effect/turf_decal/trimline/dark_blue/filled/line{ - dir = 8 +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/table/wood, +/obj/item/folder/red, +/obj/item/folder/red{ + pixel_y = 3 }, -/obj/effect/turf_decal/trimline/dark_blue/line{ - dir = 4 +/obj/item/folder/red{ + pixel_y = 6 + }, +/obj/item/folder/red{ + pixel_y = 9 }, -/obj/machinery/light/small/directional/west, /turf/open/floor/iron/dark, -/area/station/hallway/primary/central) +/area/station/security/detectives_office) "rZN" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/bridge_pipe/green/visible{ dir = 4 }, -/obj/machinery/atmospherics/pipe/bridge_pipe/orange/visible, +/obj/machinery/atmospherics/pipe/bridge_pipe/brown/visible, /turf/open/space, /area/space/nearstation) "rZO" = ( @@ -53830,13 +54860,10 @@ /turf/open/floor/iron/dark, /area/station/security/brig) "san" = ( -/obj/machinery/door/airlock/public/glass/incinerator/atmos_exterior, -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ dir = 1 }, -/obj/effect/mapping_helpers/airlock/locked, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/turf/open/floor/engine, +/turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) "saq" = ( /obj/effect/turf_decal/tile/neutral/half{ @@ -53862,26 +54889,22 @@ /turf/open/floor/plating, /area/station/maintenance/department/engine) "saI" = ( -/obj/structure/disposalpipe/segment{ - dir = 10 +/obj/machinery/corral_corner{ + mapping_id = "3" }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/duct, -/turf/open/floor/catwalk_floor/iron, -/area/station/maintenance/department/science) +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/light/neon_lining{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "saV" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/maintenance/port/aft) "saY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/obj/effect/turf_decal/tile/yellow{ - dir = 1 - }, /turf/open/floor/iron/dark/corner{ dir = 1 }, @@ -53891,24 +54914,10 @@ /obj/effect/spawner/random/structure/crate, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"sbz" = ( -/obj/effect/turf_decal/trimline/dark_red/filled/line, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/ai_slipper{ - uses = 10 - }, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai_upload) "sbB" = ( -/obj/machinery/camera/directional/south{ - c_tag = "Science - Auxiliary Lab"; - name = "science camera"; - network = list("ss13","rd") - }, -/obj/structure/extinguisher_cabinet/directional/south, -/obj/machinery/suit_storage_unit/standard_unit, -/turf/open/floor/iron/white/textured, -/area/station/science/auxlab) +/mob/living/basic/slime, +/turf/open/floor/engine, +/area/station/science/xenobiology) "sbL" = ( /obj/machinery/light/directional/east, /obj/structure/extinguisher_cabinet/directional/east, @@ -53969,11 +54978,15 @@ /obj/effect/turf_decal/siding/wood{ dir = 4 }, +/obj/machinery/status_display/evac/directional/north, /turf/open/floor/iron/dark, /area/station/security/prison/garden) "sdf" = ( /obj/effect/turf_decal/trimline/brown/filled/line, -/obj/machinery/camera/autoname/directional/south, +/obj/machinery/camera/directional/south{ + c_tag = "Cargo - Cargo Bay, Southeast"; + name = "cargo camera" + }, /turf/open/floor/iron/dark/side, /area/station/cargo/storage) "sdL" = ( @@ -54008,24 +55021,14 @@ /obj/machinery/ore_silo, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/nuke_storage) -"set" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment, -/obj/machinery/door/airlock/research{ - name = "Artifact Research" +"sem" = ( +/obj/machinery/artifact_zapper{ + dir = 8 }, -/obj/effect/mapping_helpers/airlock/access/all/science/ordnance, -/turf/open/floor/iron/white/textured, +/turf/open/floor/engine, /area/station/science/explab) "seu" = ( -/obj/machinery/camera/autoname/directional/north, +/obj/machinery/camera/autoname/directional/west, /obj/machinery/computer/station_alert, /turf/open/floor/iron, /area/station/engineering/main) @@ -54045,11 +55048,6 @@ }, /turf/open/floor/wood, /area/station/security/prison/rec) -"sfh" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "sfj" = ( /obj/effect/landmark/start/hangover, /obj/effect/turf_decal/trimline/green/filled/line, @@ -54074,10 +55072,14 @@ /turf/open/floor/iron/white, /area/station/medical/medbay/aft) "sfu" = ( -/obj/effect/spawner/random/structure/table_or_rack, -/obj/effect/spawner/random/maintenance/three, -/turf/open/floor/plating, -/area/station/maintenance/department/science) +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/light/neon_lining{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "sfz" = ( /obj/effect/turf_decal/stripes/box, /obj/machinery/light/small/directional/south, @@ -54165,6 +55167,7 @@ /turf/open/floor/plating, /area/station/maintenance/port/fore) "shx" = ( +/obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 }, @@ -54183,34 +55186,50 @@ /turf/open/floor/iron/dark/smooth_large, /area/station/hallway/secondary/entry) "shL" = ( -/obj/structure/table, -/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ - dir = 1 +/obj/machinery/camera/directional/north{ + c_tag = "Engineering - Telecomms, Monitoring"; + name = "engineering camera" }, -/obj/item/book/manual/wiki/tcomms{ - pixel_x = 4 +/obj/structure/rack, +/obj/item/storage/toolbox/electrical{ + pixel_y = 6 }, -/obj/item/radio/off, +/obj/item/storage/toolbox/mechanical, /turf/open/floor/iron/dark/side{ - dir = 9 + dir = 1 }, /area/station/tcommsat/computer) +"shT" = ( +/obj/structure/cable, +/obj/structure/chair/comfy/black{ + dir = 8 + }, +/obj/effect/landmark/start/nanotrasen_representative, +/turf/open/floor/wood/large, +/area/station/command/heads_quarters/nt_rep) "shX" = ( -/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/trimline/brown/filled/line, +/obj/effect/turf_decal/trimline/brown/line{ + dir = 1 + }, +/obj/machinery/firealarm/directional/south, /turf/open/floor/iron/dark, -/area/station/construction/mining/aux_base) +/area/station/hallway/secondary/entry) "sit" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/engineering/tank, /turf/open/floor/plating, /area/station/maintenance/department/cargo) "six" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, /obj/effect/turf_decal/siding/thinplating/dark{ dir = 8 }, +/obj/machinery/firealarm/directional/south{ + pixel_x = 5 + }, +/obj/machinery/light_switch/directional/south{ + pixel_x = -5 + }, /turf/open/floor/iron, /area/station/command/gateway) "siB" = ( @@ -54293,6 +55312,7 @@ /turf/open/floor/iron, /area/station/maintenance/port/fore) "sjM" = ( +/obj/machinery/light/small/broken/directional/west, /obj/structure/table, /obj/item/clothing/glasses/blindfold, /turf/open/floor/iron/dark, @@ -54331,17 +55351,22 @@ /turf/open/floor/iron/white, /area/station/medical/storage) "skA" = ( -/obj/structure/rack, -/obj/item/storage/bag/ore, -/obj/item/storage/bag/ore, -/obj/item/storage/bag/ore, -/obj/item/storage/bag/ore, -/obj/item/pickaxe, -/obj/item/pickaxe, -/obj/item/pickaxe, -/obj/item/pickaxe, +/obj/machinery/light/directional/east, +/obj/structure/table/reinforced/rglass, +/obj/structure/microscope{ + pixel_x = -1; + pixel_y = 2 + }, +/obj/item/reagent_containers/cup/beaker{ + pixel_x = -8; + pixel_y = 12 + }, +/obj/item/biopsy_tool{ + pixel_x = 11; + pixel_y = 4 + }, /turf/open/floor/iron/white, -/area/station/science/auxlab) +/area/station/science/xenobiology) "skB" = ( /obj/effect/turf_decal/stripes/corner{ dir = 8 @@ -54446,7 +55471,6 @@ /obj/effect/turf_decal/tile/green/half/contrasted{ dir = 8 }, -/obj/effect/decal/cleanable/dirt, /obj/machinery/duct, /turf/open/floor/iron, /area/station/maintenance/port) @@ -54513,7 +55537,12 @@ dir = 1 }, /obj/machinery/light/small/directional/north, -/obj/machinery/firealarm/directional/north, +/obj/machinery/firealarm/directional/north{ + pixel_x = 5 + }, +/obj/machinery/light_switch/directional/north{ + pixel_x = -5 + }, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 }, @@ -54558,7 +55587,7 @@ /turf/open/floor/iron/white, /area/station/medical/storage) "snd" = ( -/obj/structure/rack, +/obj/structure/closet/crate, /turf/open/floor/iron/dark/side{ dir = 4 }, @@ -54605,26 +55634,26 @@ }, /turf/open/floor/plating, /area/station/command/bridge) -"snt" = ( -/obj/machinery/corral_corner{ - mapping_id = "5" - }, -/obj/machinery/light/neon_lining{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "snx" = ( -/obj/structure/chair{ - dir = 8 - }, +/obj/structure/closet/secure_closet/barber, /turf/open/floor/iron/dark/side{ dir = 4 }, /area/station/hallway/secondary/service) +"snE" = ( +/obj/effect/turf_decal/stripes/red/line{ + dir = 5 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"snK" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/firealarm/directional/north, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "snL" = ( /obj/effect/spawner/random/structure/table_or_rack, /obj/item/stack/sheet/iron/ten, @@ -54672,7 +55701,7 @@ name = "Emergency Air Supply"; target_pressure = 250 }, -/turf/open/floor/plating/reinforced, +/turf/open/floor/iron/showroomfloor, /area/station/science/xenobiology/hallway) "soB" = ( /obj/effect/turf_decal/stripes/box, @@ -54687,7 +55716,6 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/structure/cable, /turf/open/floor/wood, /area/station/command/heads_quarters/hos) "spb" = ( @@ -54753,18 +55781,23 @@ /obj/machinery/computer/records/medical/laptop, /turf/open/floor/carpet/blue, /area/station/medical/psychology) +"ssd" = ( +/obj/structure/disposalpipe/sorting/mail{ + dir = 4 + }, +/obj/effect/mapping_helpers/mail_sorting/science/ordnance, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron, +/area/station/maintenance/department/science) "ssz" = ( -/obj/machinery/light/small/directional/south, -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, -/obj/machinery/atmospherics/pipe/smart/manifold4w/pink/visible/layer2, -/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_atmos{ +/obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/machinery/airlock_sensor/incinerator_atmos{ - pixel_y = 24; - pixel_x = 8 - }, -/turf/open/floor/engine, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, +/obj/structure/cable, +/turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) "ssD" = ( /obj/structure/cable, @@ -54774,8 +55807,8 @@ /turf/open/floor/iron, /area/station/science/robotics/lab) "ssL" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ - dir = 8 +/obj/machinery/atmospherics/components/unary/vent_scrubber/on{ + dir = 1 }, /turf/open/floor/iron/dark, /area/station/engineering/atmos/pumproom) @@ -54792,11 +55825,12 @@ /area/station/security/execution/transfer) "stB" = ( /obj/effect/turf_decal/tile/red/fourcorners, -/obj/structure/table, /obj/machinery/button/door/directional/east{ id = "bitrunner_den"; name = "Bitrunner Den Shutters Control" }, +/obj/machinery/status_display/ai/directional/north, +/obj/structure/table, /turf/open/floor/iron/dark, /area/station/security/bitden) "stD" = ( @@ -54852,10 +55886,13 @@ }, /area/station/hallway/secondary/exit/departure_lounge) "sui" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 +/obj/effect/turf_decal/trimline/brown/filled/line{ + dir = 1 + }, +/obj/machinery/piratepad/civilian, +/turf/open/floor/iron/dark/side{ + dir = 1 }, -/turf/open/floor/iron, /area/station/cargo/lobby) "sut" = ( /obj/effect/turf_decal/tile/green/half/contrasted{ @@ -54869,6 +55906,8 @@ /area/station/service/hydroponics) "sux" = ( /obj/machinery/light/small/directional/south, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, /obj/structure/reagent_dispensers/watertank, /turf/open/floor/iron/dark, /area/station/service/janitor) @@ -54891,12 +55930,6 @@ "suH" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/turret_protected/aisat_interior) -"suM" = ( -/obj/machinery/newscaster/directional/west, -/turf/open/floor/iron/dark/side{ - dir = 8 - }, -/area/station/commons/fitness/recreation) "suW" = ( /obj/machinery/requests_console/directional/west{ department = "Quartermaster's Desk"; @@ -54912,31 +55945,13 @@ }, /turf/open/floor/wood, /area/station/command/heads_quarters/qm) -"suX" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/airlock/maintenance{ - name = "Law Office Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/any/service/lawyer, -/turf/open/floor/plating, -/area/station/service/lawoffice) "svc" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /obj/machinery/duct, +/obj/machinery/firealarm/directional/east, /obj/machinery/door/firedoor, /turf/open/floor/catwalk_floor/iron, /area/station/maintenance/department/science) @@ -55032,16 +56047,18 @@ /turf/open/floor/plating, /area/station/security/holding_cell) "swY" = ( -/obj/structure/table/wood, -/obj/item/flashlight/lamp/green{ - pixel_x = -5; - pixel_y = 3 +/obj/machinery/firealarm/directional/north{ + pixel_x = -5 }, -/obj/item/toy/figure/lawyer{ - pixel_x = 9 +/obj/machinery/light_switch/directional/north{ + pixel_x = 5 }, +/obj/machinery/photocopier, /turf/open/floor/wood, /area/station/service/lawoffice) +"sxb" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/space_hut) "sxf" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 1 @@ -55252,34 +56269,35 @@ /turf/open/floor/iron/dark, /area/station/security/lockers) "sBO" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ +/obj/machinery/computer/security/telescreen{ + desc = "Used for watching Prison Wing holding areas."; + name = "Prison Monitor"; + network = list("prison"); + pixel_y = -32; dir = 1 }, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/door/airlock/maintenance{ - name = "Detective Office Maintenance" +/obj/structure/table/wood, +/obj/item/taperecorder, +/obj/item/tape, +/obj/item/hand_labeler{ + pixel_x = -16 }, -/obj/effect/mapping_helpers/airlock/access/any/security/detective, -/turf/open/floor/plating, -/area/station/security/detectives_office) +/turf/open/floor/wood, +/area/station/service/lawoffice) "sBS" = ( /turf/closed/wall, /area/station/tcommsat/computer) -"sBT" = ( -/obj/machinery/firealarm/directional/north, +"sCb" = ( +/obj/structure/sign/poster/contraband/free_drone/directional/south, /obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/trash/garbage, +/obj/effect/spawner/random/trash/grille_or_waste, /turf/open/floor/plating, -/area/station/maintenance/department/science) +/area/station/maintenance/port/fore) "sCj" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/light/small/directional/east, /obj/machinery/status_display/evac/directional/east, -/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ - dir = 4 - }, +/obj/machinery/atmospherics/components/trinary/mixer/flipped, /turf/open/floor/iron, /area/station/science/ordnance) "sCt" = ( @@ -55298,6 +56316,17 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/storage/tech) +"sCN" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"sCP" = ( +/obj/machinery/status_display/ai/directional/east, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "sDi" = ( /obj/item/radio/intercom/directional/east{ freerange = 1; @@ -55331,15 +56360,26 @@ /turf/open/floor/circuit/green, /area/station/ai_monitored/turret_protected/ai) "sDl" = ( -/obj/structure/filingcabinet, -/turf/open/floor/carpet/red, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/wood, /area/station/security/detectives_office) +"sDm" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "sDq" = ( -/obj/structure/reagent_dispensers/wall/peppertank/directional/east, /obj/effect/turf_decal/trimline/red/filled/line{ dir = 4 }, /obj/machinery/camera/autoname/directional/east, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, /obj/structure/table, /obj/item/toy/plush/carpplushie{ name = "Jeff"; @@ -55357,6 +56397,13 @@ /obj/machinery/duct, /turf/open/floor/iron/dark/side, /area/station/service/hydroponics) +"sDt" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/obj/structure/cable, +/obj/machinery/holopad, +/turf/open/floor/wood/large, +/area/station/command/heads_quarters/nt_rep) "sDz" = ( /turf/closed/wall, /area/station/commons/locker) @@ -55425,33 +56472,29 @@ /obj/machinery/duct, /turf/open/floor/iron/dark, /area/station/medical/morgue) -"sFE" = ( -/obj/machinery/firealarm/directional/north, -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/maintenance, -/turf/open/floor/plating, -/area/station/maintenance/starboard/aft) "sFH" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, /obj/effect/turf_decal/trimline/red/filled/line{ dir = 8 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) "sFS" = ( /obj/machinery/light/directional/south, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, /obj/structure/dresser, /turf/open/floor/iron/dark/side{ dir = 6 }, /area/station/service/theater) "sGk" = ( -/obj/machinery/portable_atmospherics/canister, -/obj/machinery/atmospherics/components/unary/portables_connector/visible{ - dir = 4 +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, +/obj/effect/landmark/blobstart, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) "sGm" = ( @@ -55486,10 +56529,13 @@ /turf/open/floor/wood, /area/station/security/prison/rec) "sHl" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/camera/directional/north{ + c_tag = "Science - Ordnance, Lab, North"; + name = "science camera"; + network = list("ss13","rd") + }, /turf/open/floor/iron, -/area/station/science/ordnance/office) +/area/station/science/ordnance) "sHr" = ( /turf/open/floor/iron/dark, /area/station/security/office) @@ -55500,6 +56546,18 @@ /obj/effect/turf_decal/bot_white/left, /turf/open/floor/plating/airless, /area/space/nearstation) +"sHA" = ( +/obj/structure/rack, +/obj/item/storage/bag/ore, +/obj/item/storage/bag/ore, +/obj/item/storage/bag/ore, +/obj/item/storage/bag/ore, +/obj/item/pickaxe, +/obj/item/pickaxe, +/obj/item/pickaxe, +/obj/item/pickaxe, +/turf/open/floor/iron/white, +/area/station/science/explab) "sHP" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 1 @@ -55527,12 +56585,13 @@ dir = 8 }, /obj/machinery/camera/directional/east{ - c_tag = "Security - Prison Access"; + c_tag = "Security - Prison, Access"; name = "security camera" }, /turf/open/floor/iron/dark, /area/station/security/execution/transfer) "sIJ" = ( +/obj/effect/turf_decal/box, /obj/machinery/portable_atmospherics/pump, /turf/open/floor/iron, /area/station/science/ordnance) @@ -55583,6 +56642,11 @@ "sJm" = ( /turf/open/floor/iron/dark, /area/station/security/prison/garden) +"sJo" = ( +/obj/machinery/light/small/directional/south, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "sJq" = ( /obj/machinery/light/small/directional/north, /obj/machinery/newscaster/directional/north, @@ -55591,16 +56655,11 @@ /turf/open/floor/iron, /area/station/engineering/storage_shared) "sJH" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/light/floor/has_bulb, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/duct, +/obj/effect/turf_decal/bot, +/obj/machinery/camera/autoname/directional/east, +/obj/machinery/suit_storage_unit/engine, /turf/open/floor/iron, -/area/station/service/hydroponics) +/area/station/engineering/main) "sJJ" = ( /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 4 @@ -55617,7 +56676,12 @@ /turf/open/floor/plating, /area/station/maintenance/port) "sKd" = ( -/obj/machinery/electrolyzer, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/light/small/directional/west, +/obj/structure/sign/warning/fire/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) "sKg" = ( @@ -55664,12 +56728,16 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"sKS" = ( +/obj/structure/cable, +/turf/open/floor/iron/dark/side/airless, +/area/station/maintenance/space_hut) "sKX" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer2{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ dir = 5 }, /turf/open/space/basic, @@ -55697,9 +56765,6 @@ /turf/open/floor/engine, /area/station/ai_monitored/turret_protected/aisat_interior) "sLh" = ( -/obj/effect/turf_decal/stripes/end{ - dir = 1 - }, /obj/machinery/light/small/directional/north, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/engine, @@ -55723,11 +56788,10 @@ /area/station/medical/medbay/central) "sLA" = ( /obj/machinery/light_switch/directional/south{ - pixel_x = 8 + pixel_x = 5 }, -/obj/machinery/firealarm/directional/south, -/obj/machinery/vending/hydroseeds{ - slogan_delay = 700 +/obj/machinery/firealarm/directional/south{ + pixel_x = -5 }, /turf/open/floor/iron/dark, /area/station/security/prison/garden) @@ -55759,11 +56823,16 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "sMk" = ( -/obj/effect/turf_decal/trimline/purple/filled/warning{ +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"sMm" = ( +/obj/effect/turf_decal/stripes/red/line{ dir = 4 }, -/turf/open/floor/iron/white, -/area/station/science/research) +/turf/open/floor/engine, +/area/station/science/xenobiology) "sMr" = ( /obj/structure/lattice, /obj/structure/sign/nanotrasen{ @@ -55771,21 +56840,6 @@ }, /turf/open/space, /area/space/nearstation) -"sMu" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - name = "Prisoner Processing" - }, -/obj/effect/mapping_helpers/airlock/access/all/security/brig, -/turf/open/floor/iron/dark/textured, -/area/station/security/processing) "sMv" = ( /obj/structure/chair/comfy/brown{ dir = 4 @@ -55823,6 +56877,13 @@ "sMI" = ( /turf/open/floor/carpet/black, /area/station/security/bitden) +"sMO" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/tcommsat/computer) "sMS" = ( /obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/iron, @@ -55968,13 +57029,19 @@ /turf/open/floor/carpet/red, /area/station/security/courtroom) "sPm" = ( -/obj/machinery/light/small/directional/east, -/turf/open/floor/iron/white/smooth_large, -/area/station/science/auxlab) +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/explab) "sPy" = ( -/obj/effect/turf_decal/siding/wideplating_new/dark, +/obj/effect/turf_decal/siding/thinplating/dark, /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, /turf/open/floor/iron/dark/telecomms, /area/station/tcommsat/server) "sPz" = ( @@ -56008,12 +57075,21 @@ /turf/open/floor/iron/white, /area/station/medical/exam_room) "sQf" = ( -/obj/structure/table/wood, -/obj/item/paper_bin, -/obj/item/folder, -/obj/item/pen, -/turf/open/floor/carpet/blue, -/area/station/commons/vacant_room/office) +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters{ + id = "nt_rep_desk_shutters"; + name = "Desk Shutters"; + dir = 8 + }, +/turf/open/floor/iron/dark/textured, +/area/station/command/heads_quarters/nt_rep) "sQo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -56064,10 +57140,19 @@ dir = 1 }, /area/station/commons/storage/primary) +"sQL" = ( +/obj/effect/turf_decal/trimline/blue/filled/line{ + dir = 4 + }, +/obj/structure/table, +/obj/item/healthanalyzer{ + pixel_x = -1; + pixel_y = 6 + }, +/obj/item/storage/backpack/duffelbag/med/surgery, +/turf/open/floor/iron/white, +/area/station/science/robotics/lab) "sQN" = ( -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable, -/obj/machinery/airalarm/directional/south, /obj/machinery/vending/autodrobe, /turf/open/floor/iron/dark/side{ dir = 10 @@ -56113,11 +57198,12 @@ /turf/open/floor/iron/dark, /area/station/hallway/primary/central) "sRt" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 4 }, -/turf/open/floor/iron, -/area/station/commons/storage/primary) +/obj/structure/sink/directional/west, +/turf/open/floor/iron/white, +/area/station/science/genetics) "sRA" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 5 @@ -56161,12 +57247,14 @@ /turf/open/floor/iron, /area/station/science/robotics/mechbay) "sSf" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron/white, -/area/station/science/explab) +/obj/machinery/meter/layer2, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "sSr" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -56199,19 +57287,23 @@ /obj/effect/turf_decal/tile/purple/full, /obj/effect/turf_decal/delivery, /obj/machinery/light/small/directional/west, -/obj/machinery/camera/autoname/directional/west, +/obj/machinery/camera/directional/west{ + c_tag = "Science - Break Room, Deliveries"; + name = "science camera"; + network = list("ss13","rd") + }, /turf/open/floor/iron/dark/smooth_large, /area/station/science/breakroom) "sTD" = ( /obj/effect/turf_decal/delivery, -/obj/structure/window/reinforced/spawner/directional/west, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/disposal/bin, -/obj/structure/cable, +/obj/machinery/light/small/directional/north, +/obj/machinery/status_display/evac/directional/north, /obj/structure/disposalpipe/trunk{ dir = 8 }, -/obj/structure/sign/warning/deathsposal/directional/north, +/obj/structure/cable, +/obj/machinery/disposal/bin, +/obj/structure/window/reinforced/spawner/directional/west, /turf/open/floor/iron/dark, /area/station/maintenance/disposal/incinerator) "sTE" = ( @@ -56225,13 +57317,18 @@ }, /area/station/cargo/storage) "sTW" = ( -/obj/effect/turf_decal/tile/dark_blue/fourcorners, -/obj/structure/table/glass, -/obj/structure/window/reinforced/spawner/directional/south, +/obj/effect/turf_decal/tile/darkest_green/full, +/obj/structure/table/reinforced/rglass, /obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/north, /obj/structure/window/reinforced/spawner/directional/west, -/obj/effect/spawner/random/aimodule/harmless, -/turf/open/floor/iron/dark, +/obj/item/ai_module/core/full/crewsimov{ + pixel_y = 7; + pixel_x = 1 + }, +/obj/item/ai_module/core/full/crewsimovpp, +/obj/effect/spawner/round_default_module, +/turf/open/floor/iron/dark/smooth_large, /area/station/ai_monitored/turret_protected/ai_upload) "sUf" = ( /obj/effect/turf_decal/trimline/red/filled/warning{ @@ -56250,6 +57347,20 @@ }, /turf/open/floor/iron/kitchen, /area/station/service/kitchen) +"sUn" = ( +/obj/machinery/light/neon_lining{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/camera/directional/west{ + c_tag = "Science - Xenobiology, Pen 5"; + name = "xenobiology camera"; + network = list("ss13","rd","xeno") + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "sUv" = ( /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 1 @@ -56287,6 +57398,13 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/white, /area/station/science/research) +"sVo" = ( +/obj/machinery/light/small/directional/west, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron/white, +/area/station/science/explab) "sVp" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -56305,7 +57423,6 @@ /area/station/commons/vacant_room/commissary) "sVK" = ( /obj/structure/sign/poster/random/directional/west, -/obj/effect/decal/cleanable/dirt, /obj/structure/table, /obj/effect/spawner/random/engineering/material_cheap, /turf/open/floor/plating, @@ -56368,6 +57485,9 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /obj/machinery/duct, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 10 + }, /turf/open/floor/iron/freezer, /area/station/service/kitchen/coldroom) "sWq" = ( @@ -56452,29 +57572,13 @@ /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 4 }, -/obj/structure/extinguisher_cabinet/directional/east, -/obj/machinery/camera/directional/east{ - c_tag = "Science - Genetics, Cloning Lab"; - network = list("ss13","rd"); - name = "science camera" - }, -/obj/machinery/computer/cloning{ - dir = 8 - }, +/obj/machinery/dna_scannernew, /turf/open/floor/iron/white, /area/station/science/genetics/cloning) "sXe" = ( /obj/effect/spawner/random/trash/cigbutt, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"sXl" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/effect/spawner/random/structure/steam_vent, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) "sXm" = ( /obj/effect/turf_decal/tile/blue/fourcorners, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -56532,10 +57636,7 @@ /turf/open/floor/iron/dark, /area/station/command/bridge) "sYe" = ( -/obj/effect/turf_decal/trimline/dark_red/warning{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/turf_decal/trimline/dark_blue/filled/corner, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) "sYi" = ( @@ -56545,8 +57646,9 @@ /obj/effect/turf_decal/trimline/blue/line{ dir = 8 }, -/obj/structure/sign/departments/psychology/directional/east, /obj/machinery/light/small/directional/east, +/obj/machinery/camera/autoname/directional/east, +/obj/structure/sign/departments/psychology/directional/east, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) "sYk" = ( @@ -56561,8 +57663,9 @@ /turf/open/floor/engine/vacuum, /area/station/engineering/atmos) "sYt" = ( -/obj/machinery/duct, -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 10 + }, /turf/open/floor/iron/freezer, /area/station/service/kitchen/coldroom) "sYv" = ( @@ -56647,17 +57750,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/service/abandoned_gambling_den) -"sZt" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/box, -/obj/machinery/holopad, -/turf/open/floor/iron/white/smooth_large, -/area/station/science/explab) "sZC" = ( /obj/machinery/light/directional/west, /obj/machinery/power/apc/auto_name/directional/west, @@ -56685,13 +57777,6 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron/dark/smooth_large, /area/station/science/breakroom) -"sZV" = ( -/obj/machinery/light/small/directional/south, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) "sZY" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 10 @@ -56708,6 +57793,11 @@ /obj/machinery/disposal/bin, /turf/open/floor/iron/white, /area/station/medical/pharmacy) +"tah" = ( +/obj/item/radio/intercom/directional/south, +/obj/item/kirbyplants/random, +/turf/open/floor/iron/white, +/area/station/science/explab) "tar" = ( /obj/machinery/duct, /turf/open/floor/iron, @@ -56726,6 +57816,8 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, +/obj/machinery/firealarm/directional/west, +/obj/machinery/door/firedoor, /turf/open/floor/catwalk_floor, /area/station/maintenance/starboard/aft) "taM" = ( @@ -56737,8 +57829,21 @@ /area/station/engineering/break_room) "taN" = ( /obj/structure/table, +/obj/item/radio/off{ + pixel_y = 6 + }, +/obj/item/radio/off{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/radio/off{ + pixel_x = 6; + pixel_y = 4 + }, /obj/item/radio/off, -/obj/item/screwdriver, +/obj/item/screwdriver{ + pixel_y = -15 + }, /turf/open/floor/iron/dark, /area/station/security/office) "tbb" = ( @@ -56794,8 +57899,10 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/structure/sign/warning/vacuum/external/directional/north, -/obj/machinery/camera/autoname/directional/west, +/obj/machinery/camera/directional/west{ + c_tag = "Hallway, Arrivals - Escape Pod Bay 2, Access"; + name = "hallway camera" + }, /obj/item/kirbyplants/random, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) @@ -56835,8 +57942,8 @@ /area/station/maintenance/department/engine/atmos) "tbY" = ( /obj/effect/decal/cleanable/cobweb, -/obj/effect/spawner/random/structure/table_or_rack, -/obj/effect/spawner/random/maintenance/five, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/food_packaging, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) "tcg" = ( @@ -56872,10 +57979,20 @@ /turf/open/floor/iron/white, /area/station/medical/office) "tcI" = ( -/obj/structure/sign/poster/random/directional/east, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/machinery/computer/telecomms/monitor{ + dir = 4; + network = "tcommsat" + }, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/tcommsat/computer) "tcJ" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -56893,11 +58010,27 @@ /turf/open/floor/plating, /area/station/command/heads_quarters/hos) "tcO" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden/layer4, /obj/structure/cable, -/turf/open/floor/iron/checker, -/area/station/maintenance/port/fore) +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 8 + }, +/obj/machinery/door/airlock/engineering/glass{ + name = "Server Room" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/tcoms, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured_large, +/area/station/tcommsat/computer) "tcP" = ( /turf/closed/wall/r_wall, /area/station/science/ordnance) @@ -56926,10 +58059,6 @@ /obj/effect/spawner/random/techstorage/tcomms_all, /turf/open/floor/iron/dark, /area/station/engineering/storage/tech) -"tdv" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) "tdz" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -56966,16 +58095,9 @@ /obj/effect/spawner/random/trash/garbage, /turf/open/floor/plating, /area/station/maintenance/port) -"teq" = ( -/obj/effect/turf_decal/trimline/dark_blue/filled/warning, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai_upload) "tet" = ( /obj/machinery/door/airlock/external{ - name = "Hypertorus Fusion Reactor" + name = "Hypertorus Fusion Reactor Access" }, /obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, /obj/effect/turf_decal/stripes/line{ @@ -57008,8 +58130,10 @@ /turf/open/floor/iron, /area/station/science/robotics/lab) "teS" = ( -/obj/machinery/announcement_system, -/turf/open/floor/iron/dark, +/obj/item/kirbyplants/random, +/turf/open/floor/iron/dark/side{ + dir = 5 + }, /area/station/tcommsat/computer) "tfb" = ( /obj/machinery/airalarm/directional/west, @@ -57043,25 +58167,17 @@ /turf/open/floor/iron, /area/station/engineering/main) "tfS" = ( -/obj/machinery/airalarm/directional/west, -/obj/effect/spawner/random/structure/chair_flipped{ - dir = 4 +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +/turf/open/floor/plating/airless, +/area/space/nearstation) "tfZ" = ( /obj/effect/turf_decal/trimline/green/filled/line, /obj/machinery/light/directional/south, /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/white, /area/station/medical/virology) -"tgl" = ( -/obj/machinery/light/neon_lining{ - dir = 8 - }, -/obj/machinery/duct, -/turf/open/floor/stone, -/area/station/science/xenobiology) "tgq" = ( /obj/machinery/door/firedoor/border_only{ dir = 4 @@ -57095,9 +58211,20 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"thm" = ( +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/pumproom) +"thx" = ( +/obj/machinery/light/small/directional/west, +/obj/structure/sign/warning/rad_shelter/directional/west, +/turf/open/floor/iron/dark, +/area/station/security/prison) "thA" = ( /obj/machinery/atmospherics/components/unary/thermomachine/freezer{ - dir = 1 + dir = 8 }, /turf/open/floor/iron/dark, /area/station/engineering/atmos/pumproom) @@ -57126,16 +58253,23 @@ /obj/machinery/light/directional/east, /turf/open/floor/iron/white, /area/station/science/research) -"tjB" = ( -/obj/machinery/duct, +"tiV" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/machinery/light/neon_lining{ - dir = 8 +/obj/effect/turf_decal/stripes/line{ + dir = 4 }, -/turf/open/floor/engine, -/area/station/science/xenobiology) +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Labor Camp Shuttle Dock" + }, +/obj/effect/mapping_helpers/airlock/access/all/security/brig, +/turf/open/floor/iron/dark/textured, +/area/station/security/processing) "tjC" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 4 @@ -57160,18 +58294,11 @@ /turf/open/floor/iron/white/textured, /area/station/medical/exam_room) "tjP" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/blue/line{ - dir = 8 - }, -/obj/machinery/camera/directional/east{ - c_tag = "Central Hallway East - Teleporter Access"; - name = "hallway camera" - }, -/turf/open/floor/iron/dark, -/area/station/hallway/primary/central) +/obj/machinery/light/small/directional/south, +/obj/machinery/firealarm/directional/south, +/obj/structure/aquarium/prefilled, +/turf/open/floor/wood/tile, +/area/station/command/heads_quarters/nt_rep) "tjW" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/machinery/camera/directional/east{ @@ -57189,6 +58316,15 @@ /obj/machinery/stasis, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"tku" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/commons/locker) "tkC" = ( /obj/effect/turf_decal/stripes/end, /obj/machinery/light/small/directional/south, @@ -57251,12 +58387,10 @@ }, /area/station/cargo/storage) "tln" = ( -/obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/structure/chair/office{ - dir = 1 - }, -/turf/open/floor/iron/dark, -/area/station/security/detectives_office) +/obj/machinery/space_heater, +/obj/machinery/light/small/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "tlp" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -57288,11 +58422,6 @@ /obj/effect/spawner/random/entertainment/money, /turf/open/floor/carpet/green, /area/station/service/abandoned_gambling_den) -"tlL" = ( -/obj/structure/sign/warning/electric_shock/directional/east, -/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "tlO" = ( /turf/closed/wall/r_wall, /area/station/tcommsat/computer) @@ -57319,7 +58448,7 @@ /turf/open/floor/iron/white, /area/station/medical/break_room) "tmB" = ( -/obj/structure/cable, +/obj/item/radio/intercom/directional/west, /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/iron, /area/station/engineering/storage_shared) @@ -57329,10 +58458,6 @@ /turf/open/floor/grass, /area/station/hallway/primary/aft) "tmP" = ( -/obj/effect/turf_decal/trimline/yellow/filled/warning, -/obj/effect/turf_decal/trimline/yellow/warning{ - dir = 1 - }, /obj/structure/disposalpipe/sorting/mail{ dir = 2 }, @@ -57439,11 +58564,12 @@ /area/station/medical/storage) "tod" = ( /obj/structure/sign/poster/random/directional/north, -/obj/structure/table, +/obj/structure/rack, /obj/effect/spawner/random/maintenance/two, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "toh" = ( +/obj/machinery/atmospherics/pipe/layer_manifold/general/hidden, /obj/structure/kitchenspike, /turf/open/floor/iron/freezer, /area/station/service/kitchen/coldroom) @@ -57496,7 +58622,6 @@ /area/station/maintenance/port/fore) "tpn" = ( /obj/structure/sink/directional/west, -/obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) "tpr" = ( @@ -57559,12 +58684,17 @@ /turf/open/floor/plating, /area/station/engineering/transit_tube) "tqj" = ( -/obj/effect/turf_decal/stripes/line, -/obj/machinery/light/small/directional/east, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/structure/cable, -/turf/open/floor/iron/white, -/area/station/science/auxlab) +/obj/machinery/corral_corner{ + mapping_id = "1" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/light/neon_lining{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "tqy" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -57582,6 +58712,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, +/obj/structure/disposalpipe/segment, /obj/effect/spawner/random/structure/steam_vent, /turf/open/floor/plating, /area/station/maintenance/port/fore) @@ -57596,9 +58727,11 @@ /turf/open/floor/iron/white, /area/station/science/genetics) "tqP" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, /turf/open/floor/iron/dark, /area/station/security/holding_cell) "tqT" = ( @@ -57616,6 +58749,12 @@ /obj/machinery/duct, /turf/open/floor/plating, /area/station/engineering/main) +"tre" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "trh" = ( /obj/structure/sign/departments/engineering/directional/south, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -57639,8 +58778,8 @@ /turf/open/floor/iron/kitchen, /area/station/service/kitchen) "trz" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/monitored/incinerator_input{ - dir = 8 +/obj/machinery/power/turbine/turbine_outlet{ + dir = 4 }, /turf/open/floor/engine, /area/station/maintenance/disposal/incinerator) @@ -57661,10 +58800,12 @@ /turf/open/floor/plating, /area/station/service/abandoned_gambling_den) "trS" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, -/turf/open/floor/plating, +/obj/machinery/light/directional/south, +/obj/machinery/airalarm/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, +/obj/structure/table, +/obj/item/multitool, +/turf/open/floor/iron/dark/side, /area/station/tcommsat/computer) "trV" = ( /obj/effect/turf_decal/stripes/line{ @@ -57708,6 +58849,13 @@ /turf/open/floor/iron/dark/textured_large, /area/station/engineering/atmos/storage) "tsi" = ( +/obj/machinery/firealarm/directional/south{ + pixel_x = 5 + }, +/obj/machinery/light_switch/directional/south{ + pixel_x = -5 + }, +/obj/structure/mirror/directional/west, /obj/structure/sink/directional/east, /turf/open/floor/iron/showroomfloor, /area/station/science/xenobiology/hallway) @@ -57834,13 +58982,13 @@ dir = 4 }, /obj/structure/table, -/obj/item/toy/cards/deck, -/obj/item/coin/silver{ - pixel_y = 6; - pixel_x = -3 - }, /turf/open/floor/iron/dark, /area/station/security/brig) +"tue" = ( +/obj/structure/sink/directional/east, +/obj/structure/mirror/directional/west, +/turf/open/floor/iron/showroomfloor, +/area/station/command/heads_quarters/nt_rep) "tum" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/structure/chair_maintenance{ @@ -57891,11 +59039,12 @@ /turf/open/floor/wood, /area/station/security/prison/rec) "tve" = ( -/obj/structure/chair/sofa/corp/right{ - dir = 4 +/obj/effect/turf_decal/trimline/dark_blue/filled/line{ + dir = 10 }, -/obj/machinery/light/directional/west, -/turf/open/floor/carpet/blue, +/obj/structure/table/glass, +/obj/item/toy/plush/pkplush, +/turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) "tvh" = ( /obj/effect/turf_decal/trimline/dark_blue/filled/line{ @@ -57955,13 +59104,13 @@ dir = 4 }, /turf/open/floor/iron/dark/smooth_large, -/area/station/maintenance/department/security) +/area/station/security/office) "tvK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 6 +/obj/structure/disposalpipe/junction/yjunction{ + dir = 4 }, /obj/effect/spawner/random/trash/garbage, /turf/open/floor/plating, @@ -58038,12 +59187,14 @@ /turf/open/floor/iron/dark, /area/station/security/execution/transfer) "twn" = ( -/obj/effect/turf_decal/tile/yellow/half/contrasted, -/obj/machinery/computer/camera_advanced/base_construction/aux{ - dir = 1 +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 8 }, -/turf/open/floor/iron/dark, -/area/station/construction/mining/aux_base) +/obj/structure/extinguisher_cabinet/directional/west, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, +/area/station/engineering/break_room) "twv" = ( /obj/structure/table/wood, /obj/machinery/fax{ @@ -58139,6 +59290,9 @@ "txI" = ( /turf/closed/wall/r_wall, /area/station/maintenance/disposal/incinerator) +"txT" = ( +/turf/open/floor/wood/large, +/area/station/command/heads_quarters/nt_rep) "tyq" = ( /obj/effect/turf_decal/stripes/end{ dir = 1 @@ -58163,10 +59317,26 @@ /area/station/science/ordnance/office) "tyF" = ( /obj/structure/table, -/obj/item/paper_bin, -/obj/item/folder/blue, -/obj/item/pen, -/obj/item/stamp/head/hop, +/obj/item/paper_bin{ + pixel_x = 6 + }, +/obj/item/folder/blue{ + pixel_x = 6 + }, +/obj/item/pen{ + pixel_x = 6 + }, +/obj/item/stamp/head/hop{ + pixel_x = -8; + pixel_y = 12 + }, +/obj/item/stamp/granted{ + pixel_y = 6; + pixel_x = -8 + }, +/obj/item/stamp/denied{ + pixel_x = -8 + }, /turf/open/floor/carpet/royalblue, /area/station/command/heads_quarters/hop) "tyG" = ( @@ -58174,6 +59344,22 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"tyX" = ( +/obj/structure/closet/crate/hydroponics, +/obj/item/seeds/tree, +/obj/effect/spawner/random/contraband/prison, +/obj/item/seeds/pumpkin, +/obj/item/seeds/wheat, +/obj/item/seeds/ambrosia, +/obj/item/seeds/grass, +/obj/item/seeds/carrot, +/obj/item/seeds/tomato, +/obj/item/seeds/potato, +/obj/item/seeds/garlic, +/obj/item/seeds/onion, +/obj/item/paper/guides/jobs/hydroponics, +/turf/open/floor/iron/dark, +/area/station/security/prison/garden) "tzc" = ( /obj/effect/spawner/random/engineering/tank, /turf/open/floor/plating, @@ -58238,6 +59424,7 @@ /area/station/maintenance/starboard/aft) "tzT" = ( /obj/effect/turf_decal/tile/yellow/fourcorners, +/obj/machinery/status_display/evac/directional/south, /obj/structure/closet/toolcloset, /turf/open/floor/iron/dark, /area/station/engineering/storage/tech) @@ -58304,25 +59491,6 @@ }, /turf/open/floor/catwalk_floor, /area/station/maintenance/starboard/aft) -"tAQ" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/security/glass{ - name = "Prison Wing" - }, -/obj/machinery/door/poddoor/preopen{ - id = "perma_lockdown"; - name = "Lockdown Blast Door" - }, -/obj/effect/mapping_helpers/airlock/access/any/security/permabrig, -/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ - cycle_id = "perma-entrance" - }, -/turf/open/floor/iron/dark/textured, -/area/station/security/execution/transfer) "tAZ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible/layer2{ @@ -58343,7 +59511,6 @@ dir = 1 }, /obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/sand/plating, /obj/structure/door_assembly/door_assembly_mai{ anchored = 1 }, @@ -58409,8 +59576,6 @@ /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) "tBq" = ( -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable, /obj/structure/bed{ dir = 4 }, @@ -58439,17 +59604,35 @@ }, /turf/open/floor/iron/dark, /area/station/service/chapel) +"tBL" = ( +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/effect/turf_decal/siding/thinplating/dark{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/dark/telecomms, +/area/station/tcommsat/server) "tCb" = ( /obj/machinery/chem_master/condimaster{ name = "CondiMaster Neo" }, /turf/open/floor/iron/freezer, /area/station/service/kitchen/coldroom) -"tCM" = ( -/obj/machinery/light/directional/north, -/turf/open/floor/iron/dark/side{ +"tCc" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/door/firedoor, +/turf/open/floor/iron/white/textured, +/area/station/science/xenobiology) +"tCM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, /area/station/commons/fitness/recreation) "tCR" = ( /obj/machinery/holopad, @@ -58468,6 +59651,7 @@ /area/station/ai_monitored/command/nuke_storage) "tDV" = ( /obj/machinery/status_display/evac/directional/west, +/obj/machinery/camera/autoname/directional/west, /turf/open/floor/iron/dark, /area/station/security/prison) "tEg" = ( @@ -58550,10 +59734,15 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "tFs" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 +/obj/structure/table/wood, +/obj/item/taperecorder, +/obj/item/tape, +/obj/item/storage/box/evidence{ + pixel_x = -16 + }, +/obj/item/hand_labeler{ + pixel_x = -16 }, -/obj/machinery/firealarm/directional/south, /turf/open/floor/wood, /area/station/security/detectives_office) "tFK" = ( @@ -58575,6 +59764,12 @@ }, /turf/open/floor/iron, /area/station/engineering/storage) +"tGs" = ( +/obj/machinery/airalarm/directional/east, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/station/maintenance/department/security/brig) "tGA" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -58702,11 +59897,8 @@ /turf/open/floor/iron/white/textured, /area/station/medical/pharmacy) "tIF" = ( -/obj/effect/turf_decal/trimline/dark_red/filled/line, -/obj/effect/turf_decal/trimline/dark_red/corner{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/trimline/dark_blue/filled/end, +/obj/structure/window/reinforced/spawner/directional/east, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) "tIO" = ( @@ -58715,7 +59907,7 @@ /area/station/service/hydroponics/garden) "tIU" = ( /turf/open/floor/iron/dark/smooth_large, -/area/station/maintenance/department/security) +/area/station/security/office) "tJc" = ( /obj/effect/turf_decal/vg_decals/atmos/nitrous_oxide, /turf/open/floor/engine/n2o, @@ -58799,14 +59991,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/service/library/lounge) -"tKp" = ( -/obj/effect/turf_decal/trimline/dark_blue/filled/line{ - dir = 9 - }, -/obj/effect/turf_decal/trimline/dark_red/corner, -/obj/structure/cable, -/turf/open/floor/iron/dark, -/area/station/ai_monitored/turret_protected/ai_upload) "tKr" = ( /obj/structure/chair{ dir = 1 @@ -58845,10 +60029,12 @@ /turf/open/floor/iron/kitchen, /area/station/security/prison/mess) "tLs" = ( -/obj/machinery/light/directional/north, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/wood, -/area/station/commons/vacant_room/office) +/obj/effect/turf_decal/box, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/holopad, +/turf/open/floor/iron/dark/smooth_large, +/area/station/command/heads_quarters/nt_rep) "tLu" = ( /obj/machinery/light/small/directional/west, /obj/effect/spawner/random/structure/table_or_rack, @@ -58856,11 +60042,18 @@ /turf/open/floor/plating, /area/station/maintenance/port) "tLv" = ( +/obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/structure/chair_maintenance{ - dir = 4 + dir = 8 }, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"tLD" = ( +/obj/machinery/light/directional/north, +/obj/machinery/airalarm/directional/north, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/department/science) "tLM" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -58876,6 +60069,8 @@ dir = 1 }, /obj/effect/turf_decal/stripes/line, +/obj/machinery/firealarm/directional/east, +/obj/machinery/door/firedoor, /turf/open/floor/plating, /area/station/maintenance/department/engine) "tLT" = ( @@ -58920,17 +60115,11 @@ /obj/item/stack/cable_coil, /turf/open/space/basic, /area/station/solars/port/aft) -"tMy" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/duct, -/obj/structure/disposalpipe/sorting/mail{ - dir = 1 - }, -/obj/effect/mapping_helpers/mail_sorting/science/xenobiology, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) +"tMQ" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable/layer1, +/turf/open/floor/plating/airless, +/area/space/nearstation) "tMU" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters{ @@ -58969,36 +60158,40 @@ dir = 1 }, /obj/machinery/airalarm/directional/north, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/dark, /area/station/security/execution/transfer) "tNG" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/effect/turf_decal/trimline/green/filled/line, +/obj/effect/turf_decal/trimline/green/line{ + dir = 1 + }, +/obj/machinery/firealarm/directional/south, /turf/open/floor/iron/dark, -/area/station/hallway/secondary/entry) -"tNK" = ( -/obj/machinery/artifact_xray, -/turf/open/floor/engine, -/area/station/science/explab) +/area/station/hallway/primary/central) "tNL" = ( /obj/machinery/airalarm/directional/west, /obj/structure/chair/stool/directional/north, /turf/open/floor/plating, /area/station/maintenance/solars/starboard/fore) "tNM" = ( -/obj/machinery/atmospherics/components/binary/valve/digital{ - name = "Burn Chamber" +/obj/machinery/atmospherics/components/binary/pump{ + name = "Burn Chamber"; + dir = 1 }, /turf/open/floor/iron, /area/station/science/ordnance) "tNO" = ( -/obj/machinery/camera/directional/south{ - c_tag = "Security - Detective's Office"; - name = "security camera" +/obj/effect/turf_decal/trimline/dark_blue/filled/line{ + dir = 4 }, -/obj/machinery/light/small/directional/south, -/turf/open/floor/carpet/red, -/area/station/security/detectives_office) +/obj/effect/turf_decal/trimline/dark_blue/filled/line{ + dir = 8 + }, +/obj/machinery/ai_slipper{ + uses = 10 + }, +/turf/open/floor/iron/dark, +/area/station/ai_monitored/turret_protected/ai_upload) "tNW" = ( /obj/effect/turf_decal/trimline/blue/filled/line, /turf/open/floor/iron/white, @@ -59047,6 +60240,13 @@ "tOJ" = ( /turf/closed/wall/r_wall, /area/station/science/lab) +"tOZ" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/explab) "tPs" = ( /obj/effect/turf_decal/trimline/brown/filled/warning, /obj/machinery/conveyor/inverted{ @@ -59056,13 +60256,9 @@ /turf/open/floor/iron/dark/side, /area/station/cargo/storage) "tPv" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) +/obj/machinery/camera/autoname/directional/north, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "tPw" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -59082,11 +60278,33 @@ /obj/structure/cable, /turf/open/floor/iron/showroomfloor, /area/station/command/heads_quarters/rd) +"tPZ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Visitation" + }, +/obj/effect/mapping_helpers/airlock/access/any/security/permabrig, +/turf/open/floor/iron/dark/textured, +/area/station/security/prison/visit) "tQg" = ( /obj/effect/turf_decal/tile/yellow/half/contrasted{ dir = 8 }, -/obj/structure/extinguisher_cabinet/directional/west, +/obj/machinery/computer/security/telescreen{ + desc = "Used for the Auxiliary Mining Base."; + name = "Auxiliary Base Monitor"; + network = list("auxbase"); + pixel_x = -32 + }, +/obj/machinery/computer/camera_advanced/base_construction/aux{ + dir = 4 + }, /turf/open/floor/iron/dark, /area/station/construction/mining/aux_base) "tQl" = ( @@ -59098,7 +60316,16 @@ /area/station/medical/cryo) "tQo" = ( /obj/machinery/light/directional/west, -/obj/machinery/gibber, +/obj/machinery/airalarm/directional/west, +/obj/effect/mapping_helpers/airalarm/tlv_no_checks, +/obj/machinery/atmospherics/components/binary/pump/layer4{ + dir = 1; + name = "Supply to Cooling Loop" + }, +/obj/machinery/atmospherics/components/binary/volume_pump/layer2{ + name = "Cooling Loop to Waste" + }, +/obj/structure/kitchenspike, /turf/open/floor/iron/freezer, /area/station/service/kitchen/coldroom) "tQt" = ( @@ -59157,10 +60384,20 @@ /turf/open/floor/plating, /area/station/maintenance/department/cargo) "tRj" = ( -/obj/effect/turf_decal/tile/dark_blue/fourcorners, -/obj/machinery/light/directional/east, -/obj/item/kirbyplants/photosynthetic, -/turf/open/floor/iron/dark, +/obj/effect/turf_decal/tile/dark_red/full, +/obj/structure/table/reinforced/rglass, +/obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/machinery/door/window/brigdoor/right/directional/west{ + name = "High-Risk Modules"; + req_access = list("captain") + }, +/obj/item/ai_module/reset/purge{ + pixel_y = 4; + pixel_x = -5 + }, +/obj/item/ai_module/reset, +/turf/open/floor/iron/dark/smooth_large, /area/station/ai_monitored/turret_protected/ai_upload) "tRo" = ( /obj/machinery/door/airlock/maintenance{ @@ -59225,20 +60462,6 @@ /obj/structure/closet/l3closet/scientist, /turf/open/floor/iron/white, /area/station/science/research) -"tSd" = ( -/obj/machinery/light/neon_lining{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/camera/directional/east{ - c_tag = "Science - Xenobiology, Pen 3"; - name = "xenobiology camera"; - network = list("ss13","rd","xeno") - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "tSA" = ( /obj/effect/turf_decal/trimline/yellow/filled/line, /obj/machinery/light/small/directional/south, @@ -59301,6 +60524,11 @@ }, /turf/open/floor/plating, /area/station/maintenance/port) +"tUa" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "tUg" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 4 @@ -59318,6 +60546,11 @@ /obj/effect/spawner/random/trash/garbage, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"tUu" = ( +/obj/structure/table, +/obj/item/analysis_bin, +/turf/open/floor/iron/white, +/area/station/science/explab) "tUz" = ( /obj/docking_port/stationary/random{ name = "lavaland"; @@ -59357,24 +60590,26 @@ /turf/open/floor/iron/dark, /area/station/engineering/atmos) "tUV" = ( -/obj/effect/turf_decal/trimline/dark_blue/filled/line{ +/obj/effect/turf_decal/trimline/dark_blue/filled/corner{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/dark_blue/filled/corner{ dir = 1 }, -/obj/effect/turf_decal/trimline/dark_red/corner, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) "tUZ" = ( /obj/machinery/vending/wardrobe/curator_wardrobe, /turf/open/floor/iron/vaporwave, /area/station/service/library/printer) +"tVu" = ( +/obj/machinery/light/directional/north, +/turf/open/floor/engine, +/area/station/science/explab) "tVz" = ( /obj/structure/cable, /turf/open/floor/iron, /area/station/cargo/warehouse) -"tVD" = ( -/obj/machinery/duct, -/turf/open/floor/engine, -/area/station/science/xenobiology) "tVM" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -59444,16 +60679,6 @@ /obj/machinery/duct, /turf/open/floor/iron/dark, /area/station/command/bridge) -"tWP" = ( -/obj/machinery/duct, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/light/neon_lining{ - dir = 4 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "tWQ" = ( /obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/nitrogen_output{ dir = 8 @@ -59486,7 +60711,7 @@ /area/station/science/ordnance/office) "tXu" = ( /obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ dir = 4 }, /turf/open/space/basic, @@ -59498,6 +60723,7 @@ /obj/effect/turf_decal/trimline/dark_blue/line{ dir = 4 }, +/obj/machinery/light/directional/west, /obj/structure/extinguisher_cabinet/directional/west, /turf/open/floor/iron/dark, /area/station/hallway/primary/central) @@ -59530,16 +60756,21 @@ /obj/effect/turf_decal/trimline/yellow/line{ dir = 8 }, -/obj/machinery/light/directional/east, -/obj/structure/extinguisher_cabinet/directional/east, +/obj/machinery/atm/directional/east, /turf/open/floor/iron/dark/side{ dir = 4 }, /area/station/hallway/primary/aft) "tYG" = ( -/obj/machinery/firealarm/directional/west, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/firealarm/directional/north, +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor, /area/station/maintenance/department/engine/atmos) "tYH" = ( /obj/effect/turf_decal/tile/blue/fourcorners, @@ -59550,9 +60781,15 @@ /turf/open/floor/iron/white, /area/station/medical/office) "tYO" = ( -/obj/effect/turf_decal/trimline/dark_green/filled/line{ +/obj/effect/turf_decal/trimline/dark_red/filled/line{ dir = 4 }, +/obj/effect/turf_decal/trimline/dark_blue/filled/line{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) "tYU" = ( @@ -59571,7 +60808,6 @@ /obj/effect/turf_decal/trimline/yellow/line{ dir = 8 }, -/obj/machinery/light/directional/east, /obj/machinery/status_display/ai/directional/east, /turf/open/floor/iron/dark/side{ dir = 4 @@ -59659,16 +60895,27 @@ dir = 1 }, /area/station/command/heads_quarters/cmo) +"uaW" = ( +/obj/machinery/light/directional/north, +/obj/structure/sign/poster/random/directional/north, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron, +/area/station/maintenance/department/science) "ubp" = ( -/obj/structure/table, +/obj/machinery/computer/security, /turf/open/floor/iron/dark, /area/station/security/prison/visit) -"ubE" = ( -/obj/machinery/camera/autoname/directional/north, -/obj/effect/spawner/random/vending/snackvend, -/turf/open/floor/iron/dark/side{ - dir = 1 +"ubs" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 4 }, +/obj/machinery/status_display/evac/directional/east, +/obj/machinery/nanite_program_hub, +/turf/open/floor/iron/white, +/area/station/science/auxlab) +"ubE" = ( +/obj/structure/chair/sofa/right/maroon, +/turf/open/floor/iron, /area/station/commons/fitness/recreation) "ubF" = ( /obj/effect/decal/cleanable/dirt, @@ -59677,18 +60924,6 @@ }, /turf/open/floor/plating, /area/station/service/abandoned_gambling_den) -"uck" = ( -/obj/machinery/corral_corner{ - mapping_id = "3" - }, -/obj/machinery/light/neon_lining{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "ucn" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/mob_spawn/corpse/human/assistant, @@ -59778,7 +61013,7 @@ /area/station/maintenance/port/aft) "udm" = ( /obj/machinery/camera/directional/west{ - c_tag = "Engineering - Atmospherics, External HFR Room, West"; + c_tag = "Engineering - External, Atmospherics, HFR Room, West"; name = "engineering camera" }, /obj/structure/closet/secure_closet/atmospherics, @@ -59811,6 +61046,16 @@ /obj/machinery/vending/modularpc, /turf/open/floor/iron/dark, /area/station/commons/storage/primary) +"ueB" = ( +/obj/structure/disposalpipe/sorting/mail/flip{ + dir = 4 + }, +/obj/effect/mapping_helpers/mail_sorting/science/xenobiology, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/catwalk_floor/iron, +/area/station/maintenance/department/science) "ueH" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -59846,13 +61091,6 @@ "ufs" = ( /turf/closed/wall/r_wall, /area/station/engineering/break_room) -"ufy" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment, -/turf/open/floor/stone, -/area/station/science/xenobiology) "ufA" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ @@ -59878,6 +61116,10 @@ }, /turf/open/floor/iron/dark/textured, /area/station/service/hydroponics) +"ufB" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "ufQ" = ( /obj/effect/turf_decal/box/red, /obj/machinery/atmospherics/components/unary/portables_connector/visible{ @@ -59886,12 +61128,11 @@ /turf/open/floor/iron, /area/station/science/ordnance) "ufV" = ( -/obj/effect/turf_decal/trimline/dark_blue/filled/line, -/obj/effect/turf_decal/trimline/dark_red/corner{ - dir = 1 +/obj/effect/turf_decal/trimline/dark_blue/filled/line{ + dir = 6 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light/directional/south, +/obj/structure/extinguisher_cabinet/directional/south, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) "ugj" = ( @@ -59917,6 +61158,25 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/medical/medbay/aft) +"ugn" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/door/airlock/security/glass{ + name = "Isolation Cell"; + id_tag = "iso_cell_hall_bolt" + }, +/obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/machinery/duct, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/iron/dark/textured, +/area/station/security/prison/safe) "ugt" = ( /obj/structure/lattice, /obj/structure/disposalpipe/segment{ @@ -59960,6 +61220,18 @@ "ugM" = ( /turf/closed/wall, /area/station/commons/dorms/room4) +"ugQ" = ( +/obj/machinery/corral_corner{ + mapping_id = "1" + }, +/obj/machinery/light/neon_lining{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "ugZ" = ( /obj/machinery/requests_console/directional/east{ department = "Telecomms Admin"; @@ -59967,6 +61239,9 @@ }, /obj/effect/mapping_helpers/requests_console/assistance, /obj/effect/mapping_helpers/requests_console/information, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, /turf/open/floor/iron/dark/side{ dir = 4 }, @@ -59993,8 +61268,9 @@ /turf/open/floor/iron, /area/station/hallway/primary/aft) "uhz" = ( -/obj/machinery/atmospherics/pipe/layer_manifold/supply/visible, -/turf/closed/wall/r_wall, +/obj/effect/spawner/structure/window/reinforced/tinted, +/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden, +/turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) "uhA" = ( /obj/effect/turf_decal/stripes/line{ @@ -60004,7 +61280,7 @@ dir = 4 }, /obj/machinery/door/airlock/external{ - name = "Port Docking Bay 1" + name = "Docking Bay 1" }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 @@ -60047,25 +61323,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/security/brig/entrance) -"uim" = ( -/obj/machinery/light/neon_lining{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/camera/directional/west{ - c_tag = "Science - Xenobiology, Pen 5"; - name = "xenobiology camera"; - network = list("ss13","rd","xeno") - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) -"uio" = ( -/obj/structure/closet/emcloset, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) "uir" = ( /obj/machinery/newscaster/directional/west, /obj/machinery/modular_computer/preset/civilian, @@ -60074,13 +61331,13 @@ }, /area/station/engineering/atmos/office) "uis" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/trimline/red/filled/line{ dir = 8 }, /obj/effect/turf_decal/trimline/red/filled/line{ dir = 4 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) "uiu" = ( @@ -60142,6 +61399,17 @@ /obj/item/kirbyplants/random, /turf/open/floor/iron/dark, /area/station/hallway/primary/starboard) +"ujA" = ( +/obj/effect/turf_decal/box, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/holopad, +/turf/open/floor/iron/white/smooth_large, +/area/station/science/explab) "ujN" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -60159,6 +61427,10 @@ /obj/effect/landmark/navigate_destination/common/portquartersolar, /turf/open/floor/plating, /area/station/maintenance/solars/port/aft) +"ujP" = ( +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "ujV" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -60214,14 +61486,14 @@ /turf/open/floor/iron/dark, /area/station/hallway/primary/fore) "ukC" = ( -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ dir = 4 }, /turf/open/floor/iron/dark, /area/station/engineering/atmos) "ukF" = ( -/obj/structure/table, /obj/machinery/door/firedoor, +/obj/structure/table/reinforced, /obj/machinery/door/window/left/directional/north, /obj/machinery/door/window/left/directional/south, /obj/machinery/door/poddoor/shutters{ @@ -60264,11 +61536,9 @@ /turf/open/floor/iron/white, /area/station/medical/medbay/lobby) "ula" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible, -/turf/open/floor/iron, +/obj/machinery/light/small/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/turf/open/floor/engine, /area/station/maintenance/disposal/incinerator) "ulb" = ( /obj/structure/cable, @@ -60292,20 +61562,30 @@ name = "Engineering Break Room" }, /obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, /turf/open/floor/iron/dark/textured, /area/station/engineering/break_room) "ulm" = ( /turf/open/floor/carpet, /area/station/maintenance/starboard/fore) +"ulp" = ( +/obj/effect/turf_decal/box/red, +/obj/machinery/atmospherics/components/unary/outlet_injector{ + dir = 1 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "ulO" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/machinery/light/directional/east, /obj/structure/cable, /obj/machinery/power/terminal{ dir = 8 }, -/obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron/dark, /area/station/engineering/engine_smes) "ulR" = ( @@ -60313,20 +61593,6 @@ /obj/effect/landmark/start/atmospheric_technician, /turf/open/floor/iron/dark, /area/station/engineering/atmos) -"ulT" = ( -/obj/machinery/light/neon_lining{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/machinery/camera/directional/east{ - c_tag = "Science - Xenobiology, Pen 6"; - name = "xenobiology camera"; - network = list("ss13","rd","xeno") - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "umd" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -60363,15 +61629,12 @@ /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) "umJ" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/obj/structure/chair/stool/directional/west, -/obj/effect/landmark/start/assistant, -/turf/open/floor/iron/dark/side{ +/obj/machinery/camera/autoname/directional/north, +/obj/structure/chair/plastic{ dir = 8 }, -/area/station/commons/fitness) +/turf/open/floor/iron/dark, +/area/station/security/prison) "umL" = ( /obj/machinery/firealarm/directional/west, /turf/open/floor/iron/dark, @@ -60392,6 +61655,21 @@ dir = 4 }, /area/station/hallway/secondary/exit/departure_lounge) +"umW" = ( +/obj/structure/rack, +/obj/item/radio/off{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/radio/off{ + pixel_x = 6; + pixel_y = 4 + }, +/obj/item/radio/off, +/turf/open/floor/iron/dark/side/airless{ + dir = 9 + }, +/area/station/maintenance/space_hut) "umX" = ( /obj/effect/mapping_helpers/iannewyear, /turf/open/floor/carpet/royalblue, @@ -60407,25 +61685,45 @@ /turf/open/floor/wood, /area/station/security/prison/rec) "unV" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 +/obj/structure/table/wood, +/obj/item/folder/blue, +/obj/item/folder/blue{ + pixel_y = 3 }, -/obj/effect/turf_decal/trimline/dark_blue/warning{ - dir = 4 +/obj/item/folder/blue{ + pixel_y = 6 }, -/turf/open/floor/iron, -/area/station/ai_monitored/command/storage/eva) +/obj/item/folder/blue{ + pixel_y = 9 + }, +/obj/item/pen/red{ + pixel_x = -6; + pixel_y = 9 + }, +/obj/item/stamp/law{ + pixel_x = 8; + pixel_y = 6 + }, +/obj/item/clothing/glasses/sunglasses/big, +/turf/open/floor/wood, +/area/station/service/lawoffice) "uob" = ( -/obj/effect/turf_decal/tile/purple/fourcorners, -/obj/structure/table/glass, -/obj/item/storage/box/disks_nanite, -/turf/open/floor/iron/white, -/area/station/science/research) +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "uof" = ( -/obj/item/kirbyplants/random, -/turf/open/floor/wood, -/area/station/commons/vacant_room/office) +/obj/machinery/light/small/directional/south, +/obj/structure/extinguisher_cabinet/directional/south, +/obj/structure/closet/secure_closet/nanotrasen_representative, +/turf/open/floor/wood/large, +/area/station/command/heads_quarters/nt_rep) "uol" = ( /turf/open/floor/iron/dark, /area/station/security/lockers) @@ -60445,7 +61743,7 @@ /area/station/maintenance/starboard/aft) "uou" = ( /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible/layer2, -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible/layer4{ +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ dir = 4 }, /turf/open/floor/catwalk_floor, @@ -60455,9 +61753,14 @@ /turf/open/floor/plating, /area/station/maintenance/port/aft) "uox" = ( -/obj/machinery/portable_atmospherics/scrubber, +/obj/structure/closet/emcloset/wall/directional/east, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, -/area/station/science/ordnance) +/area/station/maintenance/department/science) +"uoC" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating/airless, +/area/station/maintenance/space_hut) "uoE" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -60506,17 +61809,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/department/engine/atmos) -"upR" = ( -/obj/effect/mapping_helpers/airlock/cyclelink_helper{ - dir = 8 - }, -/obj/machinery/door/airlock/external{ - name = "Labor Camp Shuttle Airlock"; - shuttledocked = 1 - }, -/obj/effect/mapping_helpers/airlock/access/all/security/brig, -/turf/open/floor/iron/dark/textured_large, -/area/station/security/processing) "uqh" = ( /obj/machinery/light/small/built/directional/east, /obj/effect/decal/cleanable/dirt, @@ -60586,9 +61878,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/effect/turf_decal/trimline/dark_red/arrow_ccw{ - dir = 8 - }, /obj/structure/disposalpipe/segment{ dir = 5 }, @@ -60603,16 +61892,11 @@ /turf/open/floor/iron/dark, /area/station/service/chapel) "urk" = ( -/obj/structure/table/wood, -/obj/item/newspaper{ - pixel_x = 8; - pixel_y = 10 - }, -/obj/item/flashlight/lamp{ - pixel_y = 3 +/obj/structure/cable, +/turf/open/floor/iron/dark/side{ + dir = 8 }, -/turf/open/floor/carpet/red, -/area/station/commons/vacant_room/office) +/area/station/tcommsat/computer) "urm" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -60644,10 +61928,10 @@ /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) "urt" = ( +/obj/item/circuitboard/computer/operating, /obj/item/shard{ icon_state = "medium" }, -/obj/item/circuitboard/computer/operating, /turf/open/floor/iron/white, /area/station/maintenance/port/fore) "uru" = ( @@ -60671,13 +61955,10 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "urV" = ( -/obj/structure/table/reinforced, -/obj/item/food/piedough, -/obj/item/food/piedough{ - pixel_y = 4 - }, -/turf/open/floor/iron/kitchen, -/area/station/security/prison/mess) +/obj/machinery/light/small/directional/south, +/obj/machinery/camera/autoname/directional/south, +/turf/open/floor/iron/dark, +/area/station/security/prison) "urW" = ( /turf/open/floor/iron/dark, /area/station/security/prison/workout) @@ -60697,6 +61978,12 @@ }, /turf/open/floor/catwalk_floor, /area/station/maintenance/starboard/aft) +"usj" = ( +/obj/structure/reagent_dispensers/plumbed{ + dir = 1 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "uso" = ( /obj/machinery/light/directional/south, /obj/structure/bookcase/random/reference, @@ -60722,12 +62009,18 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "uth" = ( -/obj/effect/turf_decal/tile/dark_blue/fourcorners, -/obj/machinery/light/directional/west, +/obj/effect/turf_decal/tile/dark_blue/full, +/obj/machinery/camera/motion/directional/west{ + c_tag = "AI - Upload, West"; + network = list("aiupload"); + name = "ai camera" + }, /obj/machinery/flasher/directional/west{ - id = "AI" + id = "AI"; + name = "Meatbag Pacifier" }, -/turf/open/floor/iron/dark, +/obj/machinery/holopad, +/turf/open/floor/iron/dark/smooth_large, /area/station/ai_monitored/turret_protected/ai_upload) "utj" = ( /obj/effect/turf_decal/trimline/red/filled/line{ @@ -60742,6 +62035,10 @@ /obj/item/stack/sheet/plasteel/fifty, /turf/open/floor/iron/dark, /area/station/engineering/atmos/hfr_room) +"utt" = ( +/obj/structure/closet/firecloset, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "utw" = ( /obj/effect/turf_decal/tile/blue/fourcorners, /obj/machinery/computer/records/medical, @@ -60774,6 +62071,7 @@ dir = 1 }, /obj/effect/turf_decal/trimline/dark_blue/line, +/obj/machinery/light/small/directional/north, /obj/machinery/airalarm/directional/north, /turf/open/floor/iron/dark, /area/station/hallway/primary/central) @@ -60783,10 +62081,19 @@ /turf/open/floor/iron/dark, /area/station/security/execution) "uui" = ( -/obj/machinery/light/directional/west, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/maintenance/department/science) +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/line, +/obj/machinery/light/small/directional/north, +/obj/structure/table, +/obj/item/coin/silver{ + pixel_y = 6; + pixel_x = -3 + }, +/obj/item/toy/cards/deck, +/turf/open/floor/iron/dark, +/area/station/security/brig) "uuj" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -60815,8 +62122,9 @@ /turf/open/floor/plating, /area/station/maintenance/port/aft) "uuA" = ( +/obj/item/radio/intercom/directional/south, /obj/machinery/doppler_array{ - dir = 4 + dir = 1 }, /turf/open/floor/iron/white, /area/station/science/ordnance/testlab) @@ -61030,6 +62338,10 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos) +"uym" = ( +/obj/machinery/firealarm/directional/north, +/turf/open/floor/carpet/neon/simple/pink, +/area/station/science/xenobiology) "uyr" = ( /obj/effect/mapping_helpers/broken_floor, /obj/structure/rack, @@ -61066,13 +62378,13 @@ /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/eva) "uza" = ( -/obj/effect/turf_decal/trimline/red/filled/line{ - dir = 9 +/obj/machinery/sparker/directional/south{ + id = "execution_burn" }, -/obj/machinery/airalarm/directional/north, -/obj/effect/mapping_helpers/airalarm/all_access, -/obj/machinery/space_heater, -/turf/open/floor/iron/dark, +/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2{ + dir = 1 + }, +/turf/open/floor/engine, /area/station/security/execution) "uzl" = ( /obj/machinery/holopad, @@ -61101,6 +62413,7 @@ /turf/open/floor/plating, /area/station/maintenance/port/fore) "uAb" = ( +/obj/machinery/light/small/directional/east, /obj/structure/mirror/directional/north, /obj/structure/sink/directional/south, /obj/effect/decal/cleanable/dirt, @@ -61147,10 +62460,6 @@ /obj/machinery/light/floor/has_bulb, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"uAP" = ( -/obj/machinery/atmospherics/components/unary/outlet_injector/on, -/turf/open/floor/engine, -/area/station/science/xenobiology) "uBt" = ( /obj/structure/sign/poster/random/directional/west, /obj/effect/decal/cleanable/dirt, @@ -61204,12 +62513,12 @@ }, /area/station/hallway/secondary/exit/departure_lounge) "uBX" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/spawner/random/trash/garbage, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +/obj/machinery/newscaster/directional/east, +/obj/structure/table/wood, +/obj/item/camera_film, +/obj/item/camera, +/turf/open/floor/wood, +/area/station/service/lawoffice) "uCh" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/duct, @@ -61258,25 +62567,67 @@ /turf/open/floor/iron/dark, /area/station/hallway/primary/central) "uDm" = ( -/obj/machinery/light/directional/west, -/obj/machinery/light_switch/directional/west, -/turf/open/floor/iron/dark/side{ +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/structure/chair_flipped{ dir = 8 }, -/area/station/commons/fitness/recreation) +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "uDB" = ( -/obj/effect/turf_decal/tile/dark_blue/fourcorners, -/obj/structure/table/glass, -/obj/structure/window/reinforced/spawner/directional/north, +/obj/effect/turf_decal/tile/dark_red/full, +/obj/structure/table/reinforced/rglass, /obj/structure/window/reinforced/spawner/directional/east, +/obj/structure/window/reinforced/spawner/directional/south, /obj/structure/window/reinforced/spawner/directional/west, -/obj/effect/spawner/random/aimodule/neutral, -/obj/effect/spawner/random/aimodule/neutral{ - pixel_x = -2; +/obj/item/ai_module/supplied/oxygen, +/obj/item/ai_module/zeroth/onehuman{ + pixel_y = -3; + pixel_x = 3 + }, +/obj/item/ai_module/supplied/freeform{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/ai_module/supplied/protect_station{ + pixel_y = 3; + pixel_x = 6 + }, +/obj/effect/spawner/random/aimodule/harmful{ + pixel_x = 3; pixel_y = 4 }, -/turf/open/floor/iron/dark, +/turf/open/floor/iron/dark/smooth_large, /area/station/ai_monitored/turret_protected/ai_upload) +"uDO" = ( +/obj/machinery/light/small/directional/south, +/obj/structure/table/wood, +/obj/machinery/reagentgrinder{ + pixel_y = 9 + }, +/obj/item/reagent_containers/cup/glass/shaker{ + pixel_x = -9; + pixel_y = 3 + }, +/obj/item/reagent_containers/dropper{ + pixel_y = -4 + }, +/turf/open/floor/iron/kitchen, +/area/station/command/heads_quarters/nt_rep) +"uEz" = ( +/obj/machinery/corral_corner{ + mapping_id = "3" + }, +/obj/machinery/slime_pen_controller{ + mapping_id = "3" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/machinery/light/neon_lining{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "uEE" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -61286,13 +62637,16 @@ /turf/open/floor/iron/white, /area/station/medical/medbay/aft) "uEU" = ( -/obj/effect/turf_decal/siding/wideplating_new/dark{ +/obj/effect/turf_decal/siding/thinplating/dark{ dir = 8 }, /obj/effect/turf_decal/siding/wideplating_new/dark/corner{ dir = 4 }, /obj/machinery/light/directional/south, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 5 + }, /turf/open/floor/iron/dark/telecomms, /area/station/tcommsat/server) "uEZ" = ( @@ -61367,6 +62721,20 @@ /obj/machinery/newscaster/directional/east, /turf/open/floor/wood, /area/station/service/abandoned_gambling_den) +"uFT" = ( +/obj/machinery/light/neon_lining{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/machinery/camera/directional/west{ + c_tag = "Science - Xenobiology, Pen 4"; + network = list("ss13","rd","xeno"); + name = "xenobiology camera" + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "uFU" = ( /obj/structure/chair/sofa/bench/right{ dir = 4 @@ -61412,6 +62780,7 @@ /turf/open/floor/wood, /area/station/service/abandoned_gambling_den) "uGS" = ( +/obj/machinery/light/floor/has_bulb, /mob/living/basic/chicken, /turf/open/floor/grass, /area/station/service/hydroponics) @@ -61444,10 +62813,15 @@ /turf/open/floor/iron, /area/station/engineering/storage) "uHo" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, -/obj/machinery/atmospherics/pipe/smart/manifold4w/pink/visible/layer2, -/obj/machinery/air_sensor/incinerator_tank, -/turf/open/floor/engine, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable, +/obj/machinery/door/window/left/directional/south{ + name = "Turbine" + }, +/turf/open/floor/iron/textured, /area/station/maintenance/disposal/incinerator) "uHs" = ( /obj/effect/turf_decal/trimline/brown/filled/warning{ @@ -61559,12 +62933,6 @@ /obj/structure/cable, /turf/open/floor/iron/white/textured, /area/station/medical/exam_room) -"uIQ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) "uIU" = ( /obj/structure/table/wood/fancy/royalblue, /obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{ @@ -61648,30 +63016,23 @@ /turf/open/floor/iron/white/textured, /area/station/medical/pharmacy) "uKy" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, /obj/machinery/firealarm/directional/west, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/maintenance/department/science) +/obj/machinery/door/firedoor, +/turf/open/floor/catwalk_floor, +/area/station/maintenance/starboard/aft) +"uKz" = ( +/obj/structure/cable, +/turf/open/floor/iron/white, +/area/station/science/auxlab) "uKE" = ( /obj/effect/turf_decal/tile/yellow/fourcorners, +/obj/machinery/status_display/ai/directional/south, /obj/machinery/portable_atmospherics/pump, /turf/open/floor/iron/dark, /area/station/engineering/storage/tech) -"uKL" = ( -/obj/machinery/corral_corner{ - mapping_id = "2" - }, -/obj/machinery/slime_pen_controller{ - mapping_id = "2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/light/neon_lining{ - dir = 8 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "uKO" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/maintenance, @@ -61748,9 +63109,7 @@ /area/station/maintenance/port/fore) "uLK" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/structure/bed{ - dir = 4 - }, +/obj/structure/bed/medical, /obj/item/clothing/suit/jacket/straight_jacket, /obj/item/clothing/mask/muzzle, /obj/item/clothing/glasses/blindfold, @@ -61812,10 +63171,22 @@ /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 5 }, -/obj/structure/mirror/directional/east, -/obj/structure/sink/directional/west, +/obj/machinery/recharge_station, /turf/open/floor/iron/white, /area/station/medical/storage) +"uMx" = ( +/obj/structure/rack, +/obj/item/storage/toolbox/electrical{ + pixel_y = 6 + }, +/obj/item/storage/toolbox/mechanical, +/obj/item/storage/toolbox/emergency{ + pixel_y = -6 + }, +/turf/open/floor/iron/dark/side/airless{ + dir = 5 + }, +/area/station/maintenance/space_hut) "uMz" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -61911,7 +63282,6 @@ /turf/open/floor/wood, /area/station/service/chapel/funeral) "uNM" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /turf/open/floor/iron/dark, @@ -61921,24 +63291,16 @@ /turf/open/floor/iron/dark, /area/station/construction/mining/aux_base) "uOf" = ( -/obj/structure/table/wood, -/obj/item/paper_bin, -/obj/item/folder/red, -/obj/item/pen, -/obj/item/toy/figure/detective{ - pixel_x = 11; - pixel_y = 6 - }, -/turf/open/floor/carpet/red, +/obj/structure/bed, +/obj/item/bedsheet/dorms, +/obj/effect/landmark/start/detective, +/turf/open/floor/wood, /area/station/security/detectives_office) "uOj" = ( -/obj/effect/turf_decal/stripes/line{ +/obj/machinery/power/turbine/inlet_compressor{ dir = 4 }, -/obj/machinery/atmospherics/components/binary/pump{ - name = "Fuel to Incinerator" - }, -/turf/open/floor/iron, +/turf/open/floor/engine, /area/station/maintenance/disposal/incinerator) "uOm" = ( /obj/item/kirbyplants/random, @@ -62057,7 +63419,7 @@ /area/station/medical/treatment_center) "uQk" = ( /obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible, +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible, /turf/open/space, /area/space/nearstation) "uQl" = ( @@ -62073,15 +63435,28 @@ /obj/machinery/power/shieldwallgen, /turf/open/floor/iron/dark, /area/station/command/teleporter) -"uQv" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 +"uQm" = ( +/obj/item/storage/secure/safe/directional/south, +/obj/machinery/requests_console/directional/east{ + department = "Nanotrasen Representative's Desk"; + name = "Nanotrasen Representative's Requests Console" + }, +/obj/structure/table/wood, +/obj/machinery/fax{ + fax_name = "Consultant's Office"; + name = "Consultant's Fax Machine"; + pixel_y = 3 }, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/nt_rep) +"uQv" = ( /obj/structure/bed/dogbed{ name = "Tom's Bed" }, /mob/living/basic/mouse/brown/tom, -/turf/open/floor/iron/dark, +/turf/open/floor/iron/dark/side{ + dir = 6 + }, /area/station/security/prison/work) "uQP" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, @@ -62143,20 +63518,6 @@ /obj/structure/closet/secure_closet/exile, /turf/open/floor/iron/dark/textured, /area/station/command/gateway) -"uRU" = ( -/obj/effect/turf_decal/tile/green/half/contrasted{ - dir = 1 - }, -/obj/structure/bookcase/manuals/botany, -/turf/open/floor/iron/dark/side, -/area/station/service/hydroponics) -"uRW" = ( -/obj/machinery/plumbing/ooze_sucker{ - mapping_id = "4"; - dir = 1 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "uSp" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -62244,10 +63605,6 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/ai_monitored/turret_protected/aisat_interior) -"uTN" = ( -/obj/machinery/firealarm/directional/south, -/turf/open/floor/catwalk_floor/iron, -/area/station/maintenance/department/science) "uTO" = ( /obj/machinery/button/door/directional/north{ id = "secondary_shop" @@ -62255,6 +63612,11 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/dark, /area/station/commons/vacant_room/commissary) +"uTY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/space_heater, +/turf/open/floor/plating, +/area/station/maintenance/department/security/brig) "uUa" = ( /turf/open/floor/iron/dark/side{ dir = 8 @@ -62264,7 +63626,6 @@ /obj/effect/turf_decal/siding/wood{ dir = 5 }, -/obj/structure/cable, /turf/open/floor/wood, /area/station/command/heads_quarters/hos) "uUs" = ( @@ -62342,7 +63703,7 @@ dir = 4 }, /obj/machinery/door/airlock/external{ - name = "Escape Pod One" + name = "Escape Pod Bay One" }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 @@ -62436,7 +63797,7 @@ "uWo" = ( /obj/machinery/shower/directional/east, /obj/structure/drain, -/turf/open/floor/iron/dark/textured_large, +/turf/open/floor/iron/showroomfloor, /area/station/engineering/atmos/storage) "uWp" = ( /obj/machinery/light/small/directional/west, @@ -62450,7 +63811,9 @@ /obj/effect/turf_decal/trimline/yellow/line{ dir = 4 }, -/obj/machinery/camera/autoname/directional/west, +/obj/machinery/camera/directional/west{ + c_tag = "Hallway, South - South" + }, /obj/machinery/airalarm/directional/west, /turf/open/floor/iron/dark/side{ dir = 8 @@ -62527,6 +63890,7 @@ /area/station/security/detectives_office) "uXH" = ( /obj/effect/turf_decal/tile/red/fourcorners, +/obj/structure/cable, /obj/structure/chair/office/light{ dir = 4 }, @@ -62555,25 +63919,24 @@ /turf/open/floor/iron/dark, /area/station/engineering/atmos/pumproom) "uYe" = ( -/obj/effect/landmark/blobstart, -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ dir = 4 }, -/turf/open/floor/iron, +/obj/machinery/door/poddoor/incinerator_atmos_main, +/turf/open/floor/engine, /area/station/maintenance/disposal/incinerator) "uYf" = ( -/obj/effect/turf_decal/siding/wideplating_new/dark, -/turf/open/floor/iron/dark/telecomms, -/area/station/tcommsat/server) -"uYJ" = ( -/obj/structure/disposalpipe/segment{ +/obj/effect/turf_decal/siding/thinplating/dark, +/obj/machinery/airalarm/directional/north, +/obj/effect/mapping_helpers/airalarm/tlv_no_checks, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 4 }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/wood, -/area/station/service/lawoffice) +/turf/open/floor/iron/dark/telecomms, +/area/station/tcommsat/server) "uYP" = ( /obj/structure/cable, /turf/open/floor/iron/dark, @@ -62596,9 +63959,13 @@ /obj/item/instrument/eguitar, /turf/open/floor/wood, /area/station/maintenance/starboard/fore) +"uZm" = ( +/obj/machinery/airalarm/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "uZz" = ( /obj/machinery/camera/directional/south{ - c_tag = "Engineering - Atmospherics, External HFR Room, South"; + c_tag = "Engineering - External, Atmospherics, HFR Room, South"; name = "engineering camera" }, /turf/open/floor/iron/dark, @@ -62614,13 +63981,26 @@ /turf/open/floor/carpet/blue, /area/station/commons/dorms/room2) "uZR" = ( -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/structure/table, +/obj/item/folder{ + pixel_x = -3; + pixel_y = -3 + }, +/obj/item/folder, +/obj/item/folder{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/folder{ + pixel_x = 6; + pixel_y = 6 + }, +/turf/open/floor/iron/dark/side/airless{ dir = 1 }, -/obj/structure/marker_beacon/burgundy, -/turf/open/floor/plating/airless, -/area/space/nearstation) +/area/station/maintenance/space_hut) "vac" = ( /obj/structure/closet/crate, /obj/item/stock_parts/micro_laser, @@ -62647,10 +64027,21 @@ /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/restrooms) "vam" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/turf/open/floor/iron/dark/textured, +/area/station/commons/fitness) "vau" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -62678,7 +64069,6 @@ /area/station/cargo/storage) "vaR" = ( /obj/effect/turf_decal/tile/green, -/obj/machinery/camera/autoname/directional/north, /obj/structure/table, /obj/item/reagent_containers/spray/plantbgone{ pixel_y = 3 @@ -62741,13 +64131,6 @@ /obj/machinery/station_map/directional/south, /turf/open/floor/iron/dark, /area/station/security/office) -"vbB" = ( -/obj/machinery/duct, -/obj/machinery/light/neon_lining{ - dir = 4 - }, -/turf/open/floor/stone, -/area/station/science/xenobiology) "vbD" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -62789,16 +64172,18 @@ /obj/machinery/light_switch/directional/south{ pixel_x = 5 }, -/obj/machinery/camera/autoname/directional/south, +/obj/machinery/camera/directional/south{ + c_tag = "Science - Ordnance, Lab, South"; + name = "science camera"; + network = list("ss13","rd") + }, /obj/machinery/atmospherics/components/tank, /turf/open/floor/iron, /area/station/science/ordnance) "vcn" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/maintenance/department/science) +/obj/machinery/light/floor/has_bulb, +/turf/open/floor/engine, +/area/station/science/xenobiology) "vcA" = ( /obj/structure/flora/grass/jungle/b/style_random, /obj/structure/flora/bush/sparsegrass/style_random, @@ -62823,14 +64208,20 @@ dir = 10 }, /area/station/cargo/office) +"vcF" = ( +/obj/machinery/light/small/directional/north, +/obj/machinery/computer/security/telescreen/entertainment/directional/west, +/obj/structure/bookcase/random, +/turf/open/floor/wood/large, +/area/station/command/heads_quarters/nt_rep) "vcG" = ( /turf/closed/wall/r_wall, /area/station/engineering/engine_smes) "vcW" = ( -/obj/effect/spawner/random/structure/table, -/obj/effect/spawner/random/maintenance, -/obj/effect/spawner/random/engineering/tool, -/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/structure/chair_flipped{ + dir = 4 + }, /turf/open/floor/iron/checker, /area/station/maintenance/port/fore) "vcY" = ( @@ -62864,6 +64255,20 @@ /obj/machinery/duct, /turf/open/floor/iron/showroomfloor, /area/station/medical/virology) +"vdN" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/door/airlock/external{ + name = "External Access" + }, +/obj/effect/mapping_helpers/airlock/access/all/science/general, +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 1 + }, +/turf/open/floor/iron/white/textured_large, +/area/station/science/explab) "vdO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -62902,8 +64307,12 @@ /obj/structure/drain, /turf/open/floor/iron/showroomfloor, /area/station/security/prison/shower) +"veH" = ( +/obj/item/soap/nanotrasen, +/turf/open/floor/iron/showroomfloor, +/area/station/command/heads_quarters/nt_rep) "veJ" = ( -/obj/effect/decal/cleanable/dirt, +/obj/structure/rack, /obj/effect/spawner/random/maintenance/two, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) @@ -62960,10 +64369,6 @@ /obj/structure/flora/tree/jungle/small/style_random, /turf/open/floor/grass, /area/station/hallway/primary/central) -"vfw" = ( -/obj/machinery/light/directional/west, -/turf/open/floor/engine, -/area/station/science/xenobiology) "vfE" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/vomit/old, @@ -62989,16 +64394,10 @@ /turf/open/floor/iron/dark, /area/station/security/brig) "vfW" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ - dir = 4 - }, -/obj/effect/turf_decal/trimline/neutral/line{ - dir = 8 - }, -/obj/structure/sign/departments/maint/directional/east, -/obj/machinery/camera/autoname/directional/east, -/turf/open/floor/iron/dark, -/area/station/hallway/secondary/entry) +/obj/machinery/light/small/directional/north, +/obj/structure/dresser, +/turf/open/floor/wood/large, +/area/station/command/heads_quarters/nt_rep) "vfX" = ( /obj/effect/turf_decal/trimline/red/filled/warning{ dir = 1 @@ -63013,6 +64412,15 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"vgb" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/commons/dorms) "vgG" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ @@ -63091,11 +64499,11 @@ /turf/closed/wall, /area/station/security/prison/rec) "vhx" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/cobweb, -/obj/effect/spawner/random/trash/garbage, -/turf/open/floor/plating, -/area/station/maintenance/department/engine) +/obj/machinery/light/directional/north, +/obj/structure/extinguisher_cabinet/directional/north, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/nt_rep) "vhN" = ( /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 1 @@ -63134,7 +64542,7 @@ c_tag = "Command - Bridge, Hall, East"; name = "command camera" }, -/obj/structure/chair/sofa/bench/solo{ +/obj/structure/chair{ dir = 4 }, /turf/open/floor/iron/dark, @@ -63168,21 +64576,10 @@ /turf/open/space/basic, /area/space/nearstation) "vir" = ( +/obj/structure/cable, /obj/machinery/telecomms/server/presets/science, /turf/open/floor/circuit/green/telecomms, /area/station/tcommsat/server) -"vjd" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 4 - }, -/obj/structure/table, -/obj/item/healthanalyzer{ - pixel_x = -1; - pixel_y = 6 - }, -/obj/item/storage/backpack/duffelbag/med/surgery, -/turf/open/floor/iron/white, -/area/station/science/robotics/lab) "vje" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ @@ -63228,12 +64625,12 @@ /turf/open/floor/iron, /area/station/maintenance/disposal) "vjI" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, -/obj/machinery/computer/turbine_computer{ - dir = 1; - mapping_id = "main_turbine" +/obj/machinery/atmospherics/pipe/smart/manifold4w/pink/visible/layer2, +/obj/machinery/atmospherics/pipe/bridge_pipe/dark/visible, +/obj/machinery/atmospherics/components/binary/dp_vent_pump/high_volume/incinerator_atmos{ + dir = 4 }, -/turf/open/floor/iron/dark, +/turf/open/floor/engine, /area/station/maintenance/disposal/incinerator) "vjR" = ( /obj/machinery/light/directional/east, @@ -63301,6 +64698,12 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/iron/dark/smooth_large, /area/station/hallway/secondary/entry) +"vki" = ( +/obj/effect/turf_decal/bot_red, +/obj/machinery/status_display/ai/directional/east, +/obj/machinery/suit_storage_unit/standard_unit, +/turf/open/floor/iron/large, +/area/station/ai_monitored/command/storage/eva) "vkj" = ( /obj/structure/table/wood/fancy/black, /obj/item/flashlight/lantern{ @@ -63320,6 +64723,14 @@ /obj/structure/sink/directional/south, /turf/open/floor/iron/white, /area/station/medical/virology) +"vkw" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/catwalk_floor, +/area/station/maintenance/starboard/fore) "vkz" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/light/small/directional/north, @@ -63362,9 +64773,14 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, -/obj/machinery/camera/autoname/directional/south, /turf/open/floor/iron/kitchen, /area/station/service/kitchen) +"vla" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/science/explab) "vlf" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 6 @@ -63434,6 +64850,19 @@ dir = 4 }, /area/station/cargo/storage) +"vlZ" = ( +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/structure/cable, +/obj/structure/table/wood, +/obj/item/reagent_containers/cup/glass/mug/coco{ + desc = "Still hot!"; + pixel_x = -4; + pixel_y = 4 + }, +/turf/open/floor/iron/kitchen, +/area/station/command/heads_quarters/nt_rep) "vmf" = ( /obj/effect/turf_decal/trimline/dark_blue/filled/line{ dir = 1 @@ -63464,10 +64893,6 @@ /obj/structure/sign/poster/official/high_class_martini/directional/north, /turf/open/floor/iron/dark, /area/station/hallway/primary/central) -"vmu" = ( -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/engine, -/area/station/science/xenobiology) "vmA" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/iron, @@ -63487,28 +64912,18 @@ /turf/open/floor/iron/dark, /area/station/engineering/atmos) "vnP" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden{ +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/structure/chair_maintenance{ dir = 4 }, -/obj/machinery/door/airlock/atmos{ - name = "Atmospherics Maintenance" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 8 - }, /turf/open/floor/plating, -/area/station/maintenance/port/fore) +/area/station/maintenance/department/engine) "vof" = ( -/obj/structure/table/wood, -/obj/item/taperecorder, -/obj/item/tape/random, +/obj/structure/chair/comfy/black{ + dir = 1 + }, +/obj/effect/landmark/start/lawyer, /turf/open/floor/wood, /area/station/service/lawoffice) "voi" = ( @@ -63528,7 +64943,7 @@ "vot" = ( /obj/structure/lattice, /obj/machinery/atmospherics/pipe/bridge_pipe/scrubbers/visible, -/obj/machinery/atmospherics/pipe/bridge_pipe/orange/visible{ +/obj/machinery/atmospherics/pipe/bridge_pipe/brown/visible{ dir = 4 }, /turf/open/space/basic, @@ -63541,10 +64956,16 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/fore) "voE" = ( +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/red/line{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/obj/effect/turf_decal/box, -/obj/machinery/holopad, -/turf/open/floor/iron/dark/smooth_large, +/turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) "voJ" = ( /obj/machinery/camera/directional/west{ @@ -63640,14 +65061,6 @@ }, /turf/open/floor/iron/dark, /area/station/maintenance/starboard/aft) -"vpQ" = ( -/obj/machinery/light/directional/north, -/obj/machinery/status_display/evac/directional/north, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/filingcabinet, -/turf/open/floor/iron/dark, -/area/station/tcommsat/computer) "vpV" = ( /obj/effect/turf_decal/tile/green/fourcorners, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -63671,24 +65084,31 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/storage_shared) -"vqd" = ( -/obj/structure/cable, -/obj/structure/closet/firecloset, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) "vqk" = ( -/obj/structure/chair/sofa/left/maroon{ - dir = 8 +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/obj/item/stack/sheet/cardboard{ + amount = 14 }, -/turf/open/floor/iron, -/area/station/commons/fitness/recreation) +/obj/item/stack/package_wrap, +/turf/open/floor/iron/dark/side, +/area/station/security/prison/work) "vqo" = ( /obj/machinery/light/small/directional/east, -/obj/effect/decal/cleanable/dirt, /obj/structure/sign/departments/aisat/directional/east, /obj/item/kirbyplants/photosynthetic, /turf/open/floor/iron/dark, /area/station/maintenance/starboard/aft) +"vqq" = ( +/obj/effect/turf_decal/box, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/holopad, +/turf/open/floor/iron/white/smooth_large, +/area/station/science/xenobiology) "vqr" = ( /obj/structure/table, /obj/item/assembly/timer, @@ -63722,9 +65142,16 @@ /turf/open/floor/iron/dark, /area/station/engineering/storage/tech) "vqP" = ( -/obj/structure/filingcabinet, -/turf/open/floor/carpet/red, -/area/station/commons/vacant_room/office) +/obj/machinery/light/directional/west, +/obj/structure/sign/picture_frame/showroom/four{ + pixel_x = -32 + }, +/obj/structure/table/wood/fancy/green, +/obj/structure/statue/bronze/marx{ + pixel_y = 10 + }, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/nt_rep) "vqV" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -63748,6 +65175,7 @@ }, /obj/effect/turf_decal/trimline/blue/corner, /obj/structure/sign/poster/official/random/directional/north, +/obj/structure/extinguisher_cabinet/directional/west, /obj/machinery/atmospherics/components/unary/portables_connector/visible/layer4{ dir = 4 }, @@ -63807,13 +65235,6 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, /turf/open/floor/iron/dark/textured, /area/station/engineering/atmos/office) -"vse" = ( -/obj/machinery/plumbing/ooze_sucker{ - mapping_id = "2"; - dir = 1 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "vsk" = ( /obj/machinery/firealarm/directional/north, /obj/structure/chair/wood{ @@ -63823,7 +65244,6 @@ /area/station/service/chapel/funeral) "vss" = ( /obj/effect/turf_decal/bot, -/obj/machinery/light/directional/east, /obj/structure/closet/boxinggloves, /obj/effect/landmark/start/hangover/closet, /turf/open/floor/iron/dark/side{ @@ -63848,11 +65268,19 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/science/server) +"vsI" = ( +/obj/structure/plaque/static_plaque/golden/captain{ + pixel_x = 32 + }, +/obj/structure/filingcabinet, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/nt_rep) "vsU" = ( -/obj/machinery/light/small/built/directional/east, -/obj/effect/spawner/random/structure/closet_maintenance, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +/obj/machinery/computer/records/medical{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/security/detectives_office) "vtc" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/iron/dark/side, @@ -63861,6 +65289,17 @@ /obj/structure/sign/departments/restroom/directional/west, /turf/open/floor/wood, /area/station/security/prison/rec) +"vtg" = ( +/obj/machinery/light/small/directional/south, +/obj/machinery/button/door/directional/west{ + id = "nt_rep_bedroom_shutters"; + name = "Bedroom Shutters Control"; + req_access = list("nt_rep") + }, +/obj/structure/sign/calendar/directional/south, +/obj/structure/filingcabinet/chestdrawer, +/turf/open/floor/wood/large, +/area/station/command/heads_quarters/nt_rep) "vto" = ( /obj/structure/disposalpipe/trunk{ dir = 1 @@ -63969,9 +65408,10 @@ /turf/open/floor/iron/dark, /area/station/engineering/storage/tech) "vuY" = ( -/obj/machinery/atmospherics/pipe/smart/simple/pink/visible{ - dir = 6 +/obj/effect/turf_decal/stripes/corner{ + dir = 8 }, +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) "vuZ" = ( @@ -64074,6 +65514,12 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron/dark, /area/station/hallway/primary/central) +"vwt" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/commons/fitness/recreation) "vww" = ( /obj/effect/turf_decal/tile/bar/opposingcorners{ dir = 1 @@ -64089,11 +65535,12 @@ /turf/open/floor/catwalk_floor, /area/station/maintenance/department/security/brig) "vxd" = ( -/obj/effect/spawner/random/maintenance, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/plating, /area/station/maintenance/port/fore) "vxg" = ( -/obj/effect/turf_decal/stripes/line{ +/obj/effect/turf_decal/siding/thinplating/dark{ dir = 8 }, /obj/machinery/duct, @@ -64101,7 +65548,9 @@ /area/station/engineering/atmos/storage) "vxl" = ( /obj/machinery/light/small/directional/south, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/obj/machinery/atmospherics/components/tank/air{ + dir = 1 + }, /turf/open/floor/plating, /area/station/maintenance/port/aft) "vxs" = ( @@ -64118,9 +65567,14 @@ /turf/open/floor/iron/white, /area/station/science/lab) "vxJ" = ( -/obj/effect/mapping_helpers/broken_floor, -/obj/item/broken_bottle, -/obj/effect/spawner/random/maintenance/two, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mob_spawn/corpse/human/assistant, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"vyb" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, /turf/open/floor/plating, /area/station/maintenance/port/fore) "vyg" = ( @@ -64210,6 +65664,12 @@ }, /turf/open/space/basic, /area/space) +"vzn" = ( +/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/science/ordnance) "vzs" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -64287,18 +65747,10 @@ /turf/open/floor/iron/vaporwave, /area/station/service/library/printer) "vAm" = ( -/obj/effect/turf_decal/siding/wideplating_new/dark/corner{ - dir = 1 - }, -/obj/effect/turf_decal/siding/wideplating_new/dark/corner{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wideplating_new/dark/corner{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/passive_vent, -/turf/open/floor/iron/dark/telecomms, -/area/station/tcommsat/server) +/obj/structure/cable, +/obj/structure/grandfatherclock, +/turf/open/floor/wood/tile, +/area/station/command/heads_quarters/nt_rep) "vAH" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/carpet/purple, @@ -64410,30 +65862,28 @@ /turf/open/floor/iron, /area/station/science/ordnance) "vCn" = ( -/obj/machinery/light/directional/south, +/obj/machinery/light/small/directional/south, /turf/open/floor/iron/dark, /area/station/security/prison) "vCp" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/lattice/catwalk, /obj/structure/cable, -/obj/machinery/light/floor/has_bulb, -/turf/open/floor/iron/dark, -/area/station/security/prison) +/turf/open/space/basic, +/area/space/nearstation) "vCq" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/structure/crate, /turf/open/floor/plating, /area/station/maintenance/department/engine) "vCs" = ( -/obj/machinery/door/window/left/directional/east{ - name = "Brig Infirmary"; - req_access = list("security") - }, /obj/effect/turf_decal/trimline/blue/filled/warning{ dir = 4 }, /obj/machinery/duct, +/obj/machinery/door/window/left/directional/east{ + name = "Brig Infirmary"; + req_access = list("security") + }, /turf/open/floor/iron/white, /area/station/security/medical) "vCB" = ( @@ -64470,10 +65920,6 @@ /obj/structure/closet/firecloset/full, /turf/open/floor/plating, /area/station/maintenance/port) -"vCQ" = ( -/obj/effect/spawner/random/engineering/tool, -/turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) "vCT" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ @@ -64527,8 +65973,8 @@ dir = 8 }, /obj/effect/turf_decal/bot, +/obj/structure/sign/poster/official/space_cops/directional/west, /obj/structure/closet/l3closet/security, -/obj/structure/sign/warning/secure_area/directional/west, /turf/open/floor/iron/dark, /area/station/security/lockers) "vDy" = ( @@ -64584,12 +66030,20 @@ /turf/open/floor/wood, /area/station/command/heads_quarters/captain) "vDX" = ( -/obj/machinery/light/directional/east, +/obj/machinery/light/small/directional/east, +/obj/machinery/digital_clock/directional/east, /obj/structure/bed/double, /obj/item/bedsheet/captain/double, /obj/effect/landmark/start/captain, /turf/open/floor/wood, /area/station/command/heads_quarters/captain/private) +"vDY" = ( +/obj/machinery/light/small/directional/east, +/obj/structure/chair{ + dir = 8 + }, +/turf/open/floor/iron, +/area/station/maintenance/department/science) "vEc" = ( /obj/effect/turf_decal/vg_decals/atmos/air, /turf/open/floor/engine/air, @@ -64686,9 +66140,11 @@ /turf/open/floor/iron/dark, /area/station/engineering/atmos) "vEV" = ( -/obj/machinery/atmospherics/components/tank, -/turf/open/floor/iron, -/area/station/science/ordnance) +/obj/machinery/atmospherics/pipe/smart/simple/pink/hidden{ + dir = 9 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "vFa" = ( /turf/closed/wall/r_wall, /area/station/ai_monitored/security/armory) @@ -64759,9 +66215,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/research/glass{ name = "Cloning Lab" @@ -64818,6 +66271,17 @@ /obj/machinery/station_map/directional/south, /turf/open/floor/iron/dark, /area/station/security/brig) +"vHb" = ( +/obj/effect/mapping_helpers/airlock/cyclelink_helper{ + dir = 4 + }, +/obj/machinery/door/airlock/external{ + name = "Labor Camp Shuttle Airlock"; + req_access = list("brig") + }, +/obj/effect/mapping_helpers/airlock/access/all/security/brig, +/turf/open/floor/iron/dark/textured_large, +/area/station/security/processing) "vHc" = ( /obj/effect/turf_decal/trimline/red/filled/warning, /obj/structure/cable, @@ -64882,6 +66346,24 @@ }, /turf/open/floor/iron/white/textured, /area/station/medical/pharmacy) +"vIn" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security{ + aiControlDisabled = 1; + id_tag = "justice_chamber"; + name = "Justice Chamber" + }, +/obj/effect/mapping_helpers/airlock/access/all/security/brig, +/obj/machinery/duct, +/turf/open/floor/iron/dark/textured, +/area/station/security/execution) "vIv" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/trash/garbage, @@ -64918,8 +66400,8 @@ /turf/open/floor/engine/vacuum, /area/station/science/ordnance/freezerchamber) "vJk" = ( -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible, -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible/layer4{ +/obj/machinery/atmospherics/pipe/bridge_pipe/brown/visible, +/obj/machinery/atmospherics/pipe/bridge_pipe/dark/visible{ dir = 4 }, /turf/open/floor/catwalk_floor, @@ -64976,12 +66458,6 @@ }, /turf/open/floor/iron, /area/station/science/ordnance) -"vKs" = ( -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/south, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) "vKt" = ( /obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/access/any/engineering/maintenance, @@ -65006,6 +66482,11 @@ /obj/effect/spawner/random/trash/graffiti, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"vLw" = ( +/obj/structure/cable, +/obj/machinery/computer/slime_market, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "vLC" = ( /obj/effect/turf_decal/tile/red/anticorner/contrasted{ dir = 4 @@ -65014,25 +66495,33 @@ /obj/structure/closet/emcloset/anchored, /turf/open/floor/iron/dark, /area/station/security/processing) -"vLI" = ( -/obj/effect/landmark/event_spawn, -/turf/open/floor/engine, -/area/station/science/xenobiology) "vLL" = ( /obj/structure/cable, /turf/open/floor/wood, /area/station/service/bar) "vLQ" = ( -/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ - dir = 8 +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden, +/obj/item/kirbyplants/random, +/turf/open/floor/iron/dark/side, +/area/station/tcommsat/computer) +"vLR" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 4 }, -/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ +/obj/effect/turf_decal/stripes/line{ dir = 8 }, -/turf/open/floor/iron/dark/side{ - dir = 10 +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 }, -/area/station/tcommsat/computer) +/obj/machinery/duct, +/obj/machinery/firealarm/directional/north, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "vMf" = ( /turf/open/floor/engine, /area/station/science/ordnance/storage) @@ -65053,14 +66542,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, /area/station/maintenance/starboard/fore) -"vME" = ( -/obj/effect/turf_decal/trimline/purple/filled/line{ - dir = 8 - }, -/obj/structure/sign/poster/official/random/directional/west, -/obj/structure/filingcabinet, -/turf/open/floor/iron/white, -/area/station/science/explab) "vML" = ( /obj/effect/turf_decal/trimline/yellow/filled/line, /obj/effect/turf_decal/trimline/yellow/line{ @@ -65098,12 +66579,7 @@ /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 4 }, -/obj/machinery/firealarm/directional/east{ - pixel_y = -5 - }, -/obj/machinery/light_switch/directional/east{ - pixel_y = 5 - }, +/obj/item/radio/intercom/directional/east, /turf/open/floor/iron/dark/side{ dir = 4 }, @@ -65153,11 +66629,22 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/security/brig/entrance) +"vOr" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/duct, +/turf/open/floor/wood/large, +/area/station/command/heads_quarters/nt_rep) "vOB" = ( /obj/structure/window/reinforced/tinted/spawner/directional/north, /obj/machinery/computer/robotics, /turf/open/floor/carpet/purple, /area/station/command/heads_quarters/rd) +"vOG" = ( +/obj/machinery/light/directional/north, +/turf/open/floor/engine, +/area/station/science/xenobiology) "vOP" = ( /obj/effect/turf_decal/tile/purple/full, /obj/effect/turf_decal/box, @@ -65219,13 +66706,11 @@ }, /area/station/engineering/storage_shared) "vPe" = ( -/obj/effect/turf_decal/trimline/neutral/filled/line{ +/obj/effect/turf_decal/arrows{ dir = 1 }, -/obj/effect/turf_decal/trimline/neutral/line, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/turf/open/floor/iron/dark, -/area/station/hallway/secondary/entry) +/turf/open/floor/iron, +/area/station/cargo/lobby) "vPn" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -65236,13 +66721,21 @@ /turf/open/floor/engine, /area/station/ai_monitored/turret_protected/ai) "vPr" = ( -/obj/effect/spawner/random/structure/girder, -/turf/open/floor/plating, -/area/station/maintenance/department/security/brig) +/obj/machinery/plumbing/ooze_sucker{ + mapping_id = "2" + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "vPG" = ( /obj/structure/cable, /turf/open/floor/carpet/red, /area/station/command/heads_quarters/hos) +"vPK" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/science/xenobiology) "vPL" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -65265,12 +66758,25 @@ /obj/structure/drain, /turf/open/floor/iron/showroomfloor, /area/station/science/research) +"vQf" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/machinery/door/poddoor/preopen{ + id = "engineering"; + name = "Engineering Blast Door" + }, +/turf/open/floor/plating, +/area/station/engineering/storage) "vQg" = ( -/obj/effect/turf_decal/trimline/red/filled/corner, -/obj/effect/turf_decal/trimline/red/line{ - dir = 9 +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 8 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) "vQo" = ( @@ -65349,6 +66855,7 @@ name = "Engineering Office" }, /obj/effect/mapping_helpers/airlock/access/any/engineering/general, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, /turf/open/floor/iron/dark/textured, /area/station/engineering/break_room) "vQY" = ( @@ -65391,11 +66898,12 @@ /turf/open/floor/iron/white, /area/station/science/robotics/lab) "vRl" = ( -/obj/machinery/power/turbine/core_rotor{ - dir = 8; - mapping_id = "main_turbine" +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 4 }, -/obj/structure/cable, /turf/open/floor/engine, /area/station/maintenance/disposal/incinerator) "vRp" = ( @@ -65487,14 +66995,6 @@ /obj/machinery/teleport/hub, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat/foyer) -"vTl" = ( -/obj/structure/cable, -/obj/structure/chair{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/department/science/xenobiology) "vTz" = ( /obj/effect/turf_decal/tile/blue/opposingcorners, /obj/structure/cable, @@ -65503,11 +67003,6 @@ dir = 1 }, /area/station/command/heads_quarters/cmo) -"vTL" = ( -/obj/machinery/duct, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/engine, -/area/station/science/xenobiology) "vTN" = ( /obj/machinery/light/directional/east, /obj/machinery/airalarm/directional/east, @@ -65535,7 +67030,9 @@ /turf/open/floor/iron/dark/side, /area/station/hallway/primary/aft) "vTX" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/security/prison/garden) @@ -65553,30 +67050,19 @@ /turf/open/floor/wood, /area/station/service/abandoned_gambling_den) "vUq" = ( -/obj/machinery/light_switch/directional/north, -/obj/item/radio/intercom/directional/west, +/obj/item/radio/intercom/directional/north, +/obj/structure/extinguisher_cabinet/directional/west, /obj/structure/disposalpipe/trunk, /obj/machinery/disposal/bin, /turf/open/floor/iron/dark/side{ dir = 9 }, /area/station/service/theater) -"vUu" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/structure/cable, -/obj/machinery/door/poddoor/preopen{ - id = "testlab"; - name = "Xenobiology Secure Chamber Blast Door" - }, -/turf/open/floor/plating/reinforced, -/area/station/science/xenobiology) "vUv" = ( /obj/effect/turf_decal/tile/dark_blue/fourcorners, +/obj/machinery/light/directional/west, +/obj/machinery/power/apc/auto_name/directional/west, /obj/structure/cable, -/obj/machinery/door/window/left/directional/east{ - name = "Gateway Control"; - req_access = list("gateway") - }, /turf/open/floor/iron/dark, /area/station/command/gateway) "vUx" = ( @@ -65617,7 +67103,6 @@ /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 }, -/obj/machinery/status_display/evac/directional/north, /obj/structure/disposalpipe/segment{ dir = 4 }, @@ -65638,7 +67123,7 @@ /obj/effect/turf_decal/trimline/yellow/line{ dir = 4 }, -/obj/machinery/light/directional/west, +/obj/machinery/light/small/directional/west, /turf/open/floor/iron/dark/side{ dir = 8 }, @@ -65736,6 +67221,14 @@ }, /turf/open/floor/iron/dark, /area/station/command/bridge) +"vXw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden, +/obj/structure/chair/office{ + dir = 8 + }, +/obj/effect/landmark/start/station_engineer, +/turf/open/floor/iron, +/area/station/tcommsat/computer) "vXz" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -65776,6 +67269,7 @@ /turf/open/floor/iron/dark, /area/station/hallway/secondary/exit/departure_lounge) "vXY" = ( +/obj/machinery/light/small/directional/west, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 }, @@ -65832,8 +67326,8 @@ /area/station/medical/chemistry) "vYF" = ( /obj/machinery/light/small/directional/east, -/obj/machinery/atmospherics/pipe/smart/manifold/supply/hidden{ - dir = 4 +/obj/machinery/atmospherics/components/tank/air{ + dir = 8 }, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) @@ -65853,6 +67347,7 @@ /area/station/medical/medbay/central) "vZb" = ( /obj/machinery/camera/autoname/directional/south, +/obj/machinery/airalarm/directional/south, /turf/open/floor/iron/dark/side, /area/station/commons/dorms) "vZd" = ( @@ -65872,13 +67367,19 @@ /turf/open/floor/iron/white, /area/station/medical/medbay/aft) "vZu" = ( -/obj/machinery/light/directional/south, -/obj/structure/easel, -/obj/item/canvas/twentythree_twentythree, -/obj/item/canvas/twentythree_nineteen, -/obj/item/canvas/twentythree_twentythree, -/turf/open/floor/iron/dark/side, -/area/station/commons/fitness/recreation) +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/hobo_squat, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) +"vZv" = ( +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/structure/disposaloutlet{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "vZw" = ( /obj/structure/sign/plaques/kiddie/library{ pixel_x = -32 @@ -65904,7 +67405,6 @@ name = "Custodial Shutters Control"; req_access = list("janitor") }, -/obj/machinery/light/small/directional/west, /turf/open/floor/iron/dark, /area/station/hallway/primary/central) "waq" = ( @@ -65945,6 +67445,28 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/security/evidence) +"wbw" = ( +/obj/effect/turf_decal/tile/green/half/contrasted{ + dir = 1 + }, +/obj/machinery/camera/directional/south{ + c_tag = "Service - Hydroponics, Backroom"; + name = "service camera" + }, +/obj/item/radio/intercom/directional/south, +/obj/structure/table, +/obj/item/storage/bag/egg, +/obj/item/storage/bag/egg, +/obj/item/storage/bag/egg, +/obj/item/storage/bag/egg, +/obj/item/storage/bag/egg, +/obj/item/chicken_scanner, +/obj/item/chicken_scanner, +/obj/item/chicken_scanner, +/obj/item/chicken_scanner, +/obj/item/chicken_scanner, +/turf/open/floor/iron/dark/side, +/area/station/service/hydroponics) "wbA" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 9 @@ -66065,10 +67587,15 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/ai_monitored/turret_protected/aisat/foyer) -"wcU" = ( -/obj/effect/spawner/structure/window/reinforced, +"wcL" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible{ + dir = 1 + }, /turf/open/floor/plating, -/area/station/commons/vacant_room/office) +/area/station/maintenance/department/science/xenobiology) +"wcU" = ( +/turf/closed/wall/r_wall, +/area/station/command/heads_quarters/nt_rep) "wdv" = ( /obj/structure/cable, /turf/open/floor/plating, @@ -66096,12 +67623,11 @@ /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/eva) "wev" = ( -/obj/machinery/atmospherics/components/unary/passive_vent{ - dir = 4; - name = "freezer passive vent" +/obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ + dir = 4 }, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) +/turf/open/floor/iron/dark, +/area/station/engineering/atmos/pumproom) "weB" = ( /obj/structure/bookcase/random/religion, /turf/open/floor/wood, @@ -66206,24 +67732,6 @@ /obj/effect/turf_decal/trimline/dark_blue/warning, /turf/open/floor/iron/dark, /area/station/hallway/primary/central) -"wgd" = ( -/obj/machinery/light/directional/south, -/obj/item/radio/intercom/directional/south, -/obj/structure/microscope{ - pixel_x = -1; - pixel_y = 2 - }, -/obj/item/reagent_containers/cup/beaker{ - pixel_x = -8; - pixel_y = 12 - }, -/obj/item/biopsy_tool{ - pixel_x = 14; - pixel_y = 4 - }, -/obj/structure/table/reinforced/plasmarglass, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "wge" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -66256,18 +67764,6 @@ /obj/item/extinguisher, /turf/open/floor/iron/showroomfloor, /area/station/science/xenobiology/hallway) -"wgR" = ( -/obj/machinery/corral_corner{ - mapping_id = "2" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/light/neon_lining{ - dir = 8 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "wgX" = ( /obj/effect/spawner/random/structure/closet_maintenance, /turf/open/floor/plating, @@ -66306,11 +67802,9 @@ }, /area/station/cargo/storage) "whv" = ( -/obj/machinery/light/small/directional/south, -/obj/machinery/power/apc/auto_name/directional/south, /obj/structure/cable, -/turf/open/floor/catwalk_floor/iron, -/area/station/maintenance/department/science) +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "whA" = ( /obj/effect/turf_decal/trimline/green/filled/line{ dir = 8 @@ -66357,14 +67851,15 @@ /turf/open/floor/iron/dark/textured, /area/station/hallway/secondary/entry) "whJ" = ( -/obj/machinery/atmospherics/components/tank/air, +/obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating, -/area/station/maintenance/port/fore) +/area/station/maintenance/port/aft) "whM" = ( -/obj/machinery/atmospherics/components/binary/pump/on{ - name = "Incinerator Output Pump"; - target_pressure = 4500 +/obj/effect/turf_decal/stripes/corner{ + dir = 1 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/pink/visible/layer2, +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) "whN" = ( @@ -66409,6 +67904,10 @@ /obj/machinery/firealarm/directional/south{ pixel_x = 5 }, +/obj/machinery/camera/directional/south{ + c_tag = "Commons - Restroom, Southeast"; + name = "commons camera" + }, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/restrooms) "wii" = ( @@ -66435,12 +67934,22 @@ /turf/open/floor/catwalk_floor, /area/station/maintenance/starboard/fore) "wiI" = ( +/obj/machinery/airalarm/directional/south, /obj/structure/mop_bucket/janitorialcart{ dir = 1 }, /obj/item/mop, /turf/open/floor/iron/dark, /area/station/service/janitor) +"wiL" = ( +/obj/machinery/light/small/directional/east, +/obj/machinery/camera/directional/east{ + c_tag = "Science - Xenobiology Secure Cell Interior"; + network = list("ss13","test","rd","xeno"); + name = "science camera" + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "wiT" = ( /obj/structure/cable, /turf/open/floor/iron/white, @@ -66501,16 +68010,26 @@ /obj/item/tank/internals/oxygen, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"wjK" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 4 + }, +/obj/machinery/status_display/ai/directional/east, +/obj/machinery/nanite_chamber, +/turf/open/floor/iron/white, +/area/station/science/auxlab) "wjU" = ( -/obj/structure/disposalpipe/segment{ - dir = 5 +/obj/machinery/corral_corner{ + mapping_id = "4" }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/duct, -/turf/open/floor/catwalk_floor, -/area/station/maintenance/department/science) +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/light/neon_lining{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "wjW" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -66528,6 +68047,18 @@ }, /turf/open/floor/iron/white, /area/station/medical/chemistry) +"wjZ" = ( +/obj/machinery/corral_corner{ + mapping_id = "4" + }, +/obj/machinery/light/neon_lining{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "wkb" = ( /obj/effect/turf_decal/tile/dark_blue/fourcorners, /obj/machinery/computer/communications{ @@ -66667,10 +68198,12 @@ /area/station/hallway/primary/starboard) "wlT" = ( /obj/machinery/airalarm/directional/north, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 }, -/turf/open/floor/iron/dark, +/turf/open/floor/iron/dark/side{ + dir = 5 + }, /area/station/commons/fitness) "wlU" = ( /obj/machinery/light/small/directional/west, @@ -66755,16 +68288,16 @@ /obj/structure/chair/sofa/bench, /turf/open/floor/plating, /area/station/maintenance/department/cargo) -"wnl" = ( -/turf/open/floor/engine, -/area/station/science/explab) "wnn" = ( -/obj/effect/decal/cleanable/dirt, -/obj/structure/reagent_dispensers/plumbed{ +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/cable, +/obj/machinery/door/poddoor/shutters{ + id = "nt_rep_bedroom_shutters"; + name = "Bedroom Shutters"; dir = 8 }, /turf/open/floor/plating, -/area/station/maintenance/port/fore) +/area/station/command/heads_quarters/nt_rep) "wnr" = ( /obj/effect/turf_decal/bot_red, /obj/structure/cable, @@ -66784,9 +68317,13 @@ /turf/open/floor/iron, /area/station/cargo/warehouse) "wnR" = ( -/obj/machinery/light/floor/has_bulb, /turf/open/floor/iron/dark/smooth_large, /area/station/security/processing) +"wnY" = ( +/obj/machinery/light/small/directional/south, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/dark, +/area/station/security/prison) "wol" = ( /obj/effect/turf_decal/trimline/red/warning{ dir = 8 @@ -66854,10 +68391,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/virology) -"wpO" = ( -/obj/effect/spawner/random/medical/two_percent_xeno_egg_spawner, -/turf/open/floor/engine, -/area/station/science/xenobiology) "wpZ" = ( /obj/effect/spawner/random/structure/table, /turf/open/floor/plating, @@ -66876,7 +68409,6 @@ }, /area/station/engineering/break_room) "wql" = ( -/obj/machinery/airalarm/directional/east, /obj/machinery/light/directional/east, /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -66982,22 +68514,6 @@ }, /turf/open/floor/plating, /area/station/engineering/atmos) -"wrt" = ( -/obj/machinery/requests_console/directional/south{ - department = "Science"; - name = "Science Requests Console" - }, -/obj/effect/mapping_helpers/requests_console/ore_update, -/obj/effect/mapping_helpers/requests_console/supplies, -/obj/structure/table/reinforced/plasmarglass, -/obj/item/book/manual/wiki/cytology{ - pixel_x = -4; - pixel_y = 4 - }, -/obj/item/book/manual/wiki/plumbing, -/obj/item/storage/box/petridish, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "wrA" = ( /obj/item/kirbyplants/random, /turf/open/floor/wood, @@ -67018,6 +68534,18 @@ /obj/machinery/duct, /turf/open/floor/iron/white, /area/station/science/research) +"wrT" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/firealarm/directional/west, +/obj/machinery/door/firedoor, +/turf/open/floor/plating, +/area/station/maintenance/department/engine) "wsc" = ( /obj/effect/turf_decal/tile/dark_blue/full, /obj/effect/turf_decal/loading_area/white{ @@ -67033,14 +68561,10 @@ "wsn" = ( /obj/effect/turf_decal/tile/red/fourcorners, /obj/machinery/light/small/directional/north, -/obj/machinery/status_display/evac/directional/north, /obj/machinery/computer/order_console/bitrunning, /turf/open/floor/iron/dark, /area/station/security/bitden) "wsq" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/components/unary/outlet_injector/on{ @@ -67093,9 +68617,6 @@ /area/station/hallway/primary/port) "wtt" = ( /obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, /turf/open/floor/iron, /area/station/commons/storage/primary) "wtv" = ( @@ -67105,11 +68626,10 @@ pixel_x = 8; pixel_y = 8 }, +/obj/item/reagent_containers/cup/watering_can, +/obj/item/reagent_containers/cup/watering_can, /turf/open/floor/iron/dark, /area/station/security/prison/garden) -"wtF" = ( -/turf/closed/wall/r_wall, -/area/station/science/xenobiology) "wtM" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -67144,11 +68664,11 @@ /turf/open/floor/iron, /area/station/engineering/break_room) "wtX" = ( -/obj/effect/turf_decal/trimline/red/filled/warning{ - dir = 6 +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 4 }, -/obj/effect/turf_decal/trimline/red/corner{ - dir = 1 +/obj/effect/turf_decal/trimline/red/line{ + dir = 8 }, /obj/machinery/camera/autoname/directional/east, /turf/open/floor/iron/dark, @@ -67189,6 +68709,10 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) +"wuG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/turf/open/floor/iron/freezer, +/area/station/science/xenobiology) "wuH" = ( /obj/effect/turf_decal/trimline/dark_blue/filled/warning{ dir = 4 @@ -67253,6 +68777,7 @@ /turf/open/floor/grass, /area/station/medical/virology) "wwC" = ( +/obj/machinery/digital_clock/directional/west, /obj/structure/displaycase/labcage, /turf/open/floor/iron/vaporwave, /area/station/command/heads_quarters/rd) @@ -67263,7 +68788,6 @@ /turf/open/floor/iron/dark, /area/station/security/processing) "wwO" = ( -/obj/effect/turf_decal/tile/dark_blue/fourcorners, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -67326,17 +68850,10 @@ }, /turf/open/floor/engine/vacuum, /area/station/science/ordnance/freezerchamber) -"wxp" = ( -/obj/machinery/corral_corner{ - mapping_id = "1" - }, -/obj/machinery/light/neon_lining{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/turf/open/floor/engine, +"wxw" = ( +/obj/machinery/light/small/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, +/turf/open/floor/plating, /area/station/science/xenobiology) "wxL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -67423,13 +68940,9 @@ /turf/open/floor/plating, /area/station/engineering/atmos/hfr_room) "wzw" = ( -/obj/structure/table, -/obj/item/folder/blue{ - pixel_x = 3; - pixel_y = 2 +/turf/open/floor/iron/dark/side{ + dir = 4 }, -/obj/item/folder/yellow, -/turf/open/floor/iron/dark, /area/station/tcommsat/computer) "wzA" = ( /obj/structure/chair/comfy/black{ @@ -67510,6 +69023,17 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/wood, /area/station/command/heads_quarters/qm) +"wAX" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/atmospherics/pipe/heat_exchanging/manifold{ + dir = 1 + }, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) "wAZ" = ( /obj/effect/turf_decal/tile/dark_blue/fourcorners, /obj/machinery/door/firedoor/border_only, @@ -67548,6 +69072,7 @@ /obj/effect/turf_decal/trimline/green/line{ dir = 4 }, +/obj/machinery/light/directional/west, /obj/effect/landmark/start/hangover, /turf/open/floor/iron/dark, /area/station/hallway/primary/central) @@ -67572,11 +69097,6 @@ /obj/machinery/duct, /turf/open/floor/iron, /area/station/engineering/main) -"wCb" = ( -/obj/effect/spawner/random/engineering/tool, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) "wCn" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -67611,7 +69131,7 @@ /turf/open/floor/iron/large, /area/station/engineering/storage) "wCX" = ( -/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/siding/thinplating/dark, /obj/machinery/light/small/directional/west, /turf/open/floor/iron/dark, /area/station/engineering/atmos/storage) @@ -67659,11 +69179,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/engine, /area/station/ai_monitored/turret_protected/aisat/foyer) -"wDY" = ( -/obj/machinery/atmospherics/components/binary/pump{ +"wEe" = ( +/obj/machinery/corral_corner{ + mapping_id = "3" + }, +/obj/machinery/light/neon_lining{ dir = 8 }, -/turf/open/floor/iron/white, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/turf/open/floor/engine, /area/station/science/xenobiology) "wEs" = ( /obj/effect/turf_decal/trimline/green/filled/line{ @@ -67709,6 +69235,7 @@ /turf/closed/wall, /area/station/maintenance/port/aft) "wEH" = ( +/obj/item/radio/intercom/directional/east, /turf/open/floor/iron/dark/side{ dir = 4 }, @@ -67729,11 +69256,6 @@ }, /turf/open/floor/iron, /area/station/science/ordnance/office) -"wFu" = ( -/obj/structure/chair/comfy/brown, -/obj/effect/landmark/start/assistant, -/turf/open/floor/carpet, -/area/station/hallway/secondary/entry) "wFB" = ( /obj/structure/grille, /turf/closed/wall/r_wall, @@ -67745,6 +69267,7 @@ /turf/open/floor/plating, /area/station/maintenance/department/electrical) "wGc" = ( +/obj/structure/extinguisher_cabinet/directional/west, /obj/structure/table, /obj/machinery/reagentgrinder{ pixel_y = 8 @@ -67783,12 +69306,8 @@ /turf/open/floor/plating, /area/station/security/execution/transfer) "wGi" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, /obj/machinery/light/small/directional/south, /obj/machinery/camera/autoname/directional/south, -/obj/structure/extinguisher_cabinet/directional/south, /turf/open/floor/iron/dark/side, /area/station/commons/fitness) "wGk" = ( @@ -67811,12 +69330,10 @@ /turf/open/floor/wood, /area/station/security/prison/rec) "wGw" = ( -/obj/effect/turf_decal/tile/purple/fourcorners, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/iron/white, -/area/station/science/research) +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/hidden, +/obj/machinery/meter, +/turf/open/floor/plating, +/area/station/science/xenobiology) "wGD" = ( /obj/effect/turf_decal/bot_red, /obj/structure/cable, @@ -67834,15 +69351,17 @@ /turf/open/floor/iron/dark/side, /area/station/service/hydroponics) "wGI" = ( -/obj/machinery/shower/directional/south, -/obj/structure/drain, -/obj/item/soap/homemade, -/turf/open/floor/iron/showroomfloor, -/area/station/security/prison/shower) +/obj/effect/turf_decal/box, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/holopad, +/turf/open/floor/iron/dark/smooth_large, +/area/station/security/prison/garden) "wGT" = ( -/obj/machinery/computer/records/medical, +/obj/structure/chair/comfy/black, +/obj/effect/landmark/start/lawyer, /turf/open/floor/wood, -/area/station/security/detectives_office) +/area/station/service/lawoffice) "wHt" = ( /obj/machinery/light/directional/west, /obj/item/kirbyplants/random, @@ -68006,6 +69525,10 @@ /obj/structure/bonfire, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"wJF" = ( +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/nt_rep) "wJK" = ( /obj/machinery/firealarm/directional/south, /obj/effect/turf_decal/tile/dark_blue/fourcorners, @@ -68063,14 +69586,12 @@ /turf/open/floor/iron/white/textured, /area/station/medical/cryo) "wKG" = ( -/obj/effect/turf_decal/tile/yellow{ - dir = 8 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/tcommsat/computer) +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron/dark/side, +/area/station/commons/fitness) "wKV" = ( /obj/machinery/door/firedoor/border_only{ dir = 1 @@ -68082,14 +69603,14 @@ /turf/open/floor/grass, /area/station/service/hydroponics) "wLa" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/turf/open/floor/wood, -/area/station/commons/vacant_room/office) +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "wLb" = ( /obj/effect/turf_decal/tile/red/anticorner/contrasted{ dir = 4 @@ -68121,7 +69642,7 @@ /area/station/science/breakroom) "wLv" = ( /obj/structure/cable, -/turf/open/floor/carpet/green, +/turf/open/floor/carpet, /area/station/commons/locker) "wLw" = ( /obj/effect/turf_decal/stripes/line, @@ -68134,14 +69655,6 @@ /obj/machinery/duct, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"wLx" = ( -/obj/effect/turf_decal/trimline/dark_blue/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/dark_blue/line, -/obj/machinery/firealarm/directional/north, -/turf/open/floor/iron/dark, -/area/station/hallway/primary/port) "wLQ" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -68154,12 +69667,6 @@ /obj/structure/cable/layer3, /turf/open/floor/engine, /area/station/ai_monitored/turret_protected/ai) -"wLR" = ( -/obj/machinery/atmospherics/components/unary/artifact_heatingpad{ - dir = 4 - }, -/turf/open/floor/engine, -/area/station/science/explab) "wMm" = ( /obj/effect/turf_decal/trimline/neutral/filled/corner, /obj/effect/turf_decal/trimline/neutral/line{ @@ -68206,6 +69713,13 @@ "wMD" = ( /turf/open/floor/catwalk_floor, /area/station/maintenance/department/engine/atmos) +"wMG" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/science/explab) "wMK" = ( /obj/effect/turf_decal/box, /obj/machinery/holopad, @@ -68213,13 +69727,6 @@ /obj/structure/cable, /turf/open/floor/iron/white/smooth_large, /area/station/science/lab) -"wML" = ( -/obj/effect/turf_decal/box/red, -/obj/machinery/atmospherics/components/unary/outlet_injector{ - dir = 8 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "wMO" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ @@ -68263,7 +69770,10 @@ /turf/open/floor/iron/white, /area/station/science/research) "wND" = ( -/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/corner, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, /turf/open/floor/plating/airless, /area/station/science/ordnance/bomb) "wNK" = ( @@ -68274,7 +69784,7 @@ dir = 8 }, /obj/machinery/door/airlock/external{ - name = "Port Docking Bay 3" + name = "Docking Bay 3" }, /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 @@ -68317,7 +69827,7 @@ /turf/open/floor/iron/dark/side, /area/station/command/heads_quarters/ce) "wOD" = ( -/obj/machinery/firealarm/directional/south, +/obj/item/radio/intercom/directional/north, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 }, @@ -68379,26 +69889,48 @@ /obj/structure/sink/directional/west, /turf/open/floor/iron/white, /area/station/medical/exam_room) -"wPA" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/chair{ - dir = 1 - }, -/obj/effect/landmark/start/scientist, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "wPK" = ( /obj/effect/turf_decal/bot, /obj/machinery/portable_atmospherics/canister, /turf/open/floor/engine, /area/station/science/ordnance/storage) "wPM" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, -/turf/open/floor/carpet/green, -/area/station/commons/locker) +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/corporate{ + id_tag = "nt_rep_quarters_door"; + name = "Nanotrasen Representative's Quarters" + }, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, +/turf/open/floor/iron/dark/textured, +/area/station/command/heads_quarters/nt_rep) +"wPR" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/security/glass{ + name = "Prison Wing" + }, +/obj/machinery/door/poddoor/preopen{ + id = "perma_lockdown"; + name = "Lockdown Blast Door" + }, +/obj/effect/mapping_helpers/airlock/access/any/security/permabrig, +/obj/effect/mapping_helpers/airlock/cyclelink_helper_multi{ + cycle_id = "perma-entrance" + }, +/turf/open/floor/iron/dark/textured, +/area/station/security/execution/transfer) "wPT" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -68434,6 +69966,7 @@ /obj/effect/turf_decal/trimline/red/filled/line{ dir = 1 }, +/obj/machinery/light/small/directional/north, /obj/machinery/camera/autoname/directional/north, /obj/structure/bodycontainer/morgue{ dir = 2 @@ -68451,7 +69984,7 @@ "wQG" = ( /obj/machinery/light/small/directional/east, /obj/effect/decal/cleanable/dirt, -/obj/structure/closet/emcloset, +/obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/port/fore) "wQO" = ( @@ -68461,6 +69994,13 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/catwalk_floor, /area/station/maintenance/starboard/aft) +"wRh" = ( +/obj/structure/closet/emcloset/wall/directional/south, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/iron/dark/side/airless{ + dir = 6 + }, +/area/station/maintenance/space_hut) "wRs" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/structure/grille, @@ -68493,20 +70033,6 @@ /obj/structure/sign/warning/electric_shock, /turf/closed/wall, /area/station/maintenance/starboard/fore) -"wSl" = ( -/obj/machinery/light/neon_lining{ - dir = 8 - }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/obj/machinery/camera/directional/west{ - c_tag = "Science - Xenobiology, Pen 4"; - network = list("ss13","rd","xeno"); - name = "xenobiology camera" - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "wSn" = ( /obj/effect/turf_decal/bot, /obj/machinery/pipedispenser/disposal, @@ -68595,13 +70121,15 @@ /obj/machinery/status_display/ai/directional/west, /turf/open/floor/iron/dark, /area/station/engineering/engine_smes) +"wUe" = ( +/obj/machinery/digital_clock/directional/east, +/turf/open/floor/wood/large, +/area/station/command/heads_quarters/nt_rep) "wUn" = ( -/obj/structure/table/wood, -/obj/item/paper_bin, -/obj/item/folder, -/obj/item/pen, -/turf/open/floor/carpet/red, -/area/station/commons/vacant_room/office) +/obj/structure/closet/firecloset/wall/directional/east, +/obj/item/kirbyplants/random, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/nt_rep) "wUo" = ( /obj/effect/turf_decal/trimline/brown/filled/line{ dir = 4 @@ -68630,10 +70158,16 @@ /turf/open/floor/iron/dark, /area/station/security/execution) "wVk" = ( -/obj/machinery/computer/upload/ai{ - dir = 8 +/obj/effect/turf_decal/trimline/dark_blue/filled/warning{ + dir = 6 }, -/turf/open/floor/circuit, +/obj/machinery/camera/motion/directional/east{ + c_tag = "AI - Upload, East"; + network = list("aiupload"); + name = "ai camera" + }, +/obj/machinery/status_display/evac/directional/east, +/turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) "wVm" = ( /obj/effect/turf_decal/trimline/purple/filled/line, @@ -68655,24 +70189,6 @@ /obj/item/aicard, /turf/open/floor/iron/dark, /area/station/command/bridge) -"wWb" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 6 - }, -/obj/machinery/camera/directional/east{ - c_tag = "Medical - Pathology, Hallway, East"; - network = list("ss13","medbay"); - name = "medical camera" - }, -/obj/structure/table/reinforced/rglass, -/obj/item/storage/box/monkeycubes, -/obj/item/toy/figure/virologist{ - pixel_y = 13; - pixel_x = -9 - }, -/obj/machinery/smartfridge/disks, -/turf/open/floor/iron/white, -/area/station/medical/virology) "wWd" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor, @@ -68781,7 +70297,7 @@ /turf/open/floor/iron/dark, /area/station/maintenance/disposal) "wXR" = ( -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible, +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, @@ -68802,6 +70318,15 @@ /obj/effect/mapping_helpers/airlock/access/all/service/crematorium, /turf/open/floor/catwalk_floor/iron_dark, /area/station/service/chapel/office) +"wYA" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/junction{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/commons/fitness) "wYC" = ( /obj/effect/turf_decal/trimline/neutral/filled/line{ dir = 8 @@ -68835,14 +70360,10 @@ /area/station/hallway/secondary/service) "wZk" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron, /area/station/service/hydroponics/garden) -"wZv" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible, -/turf/open/floor/iron/dark, -/area/station/engineering/atmos) "wZx" = ( /turf/closed/wall/r_wall, /area/station/security/prison/safe) @@ -68873,6 +70394,11 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/gravity_generator) +"xau" = ( +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/station/maintenance/department/science/xenobiology) "xaB" = ( /obj/machinery/light/small/directional/east, /obj/effect/decal/cleanable/dirt, @@ -68939,8 +70465,8 @@ /obj/machinery/firealarm/directional/east{ pixel_y = 5 }, -/obj/machinery/module_duplicator, /obj/structure/extinguisher_cabinet/directional/south, +/obj/machinery/module_duplicator, /turf/open/floor/iron/white, /area/station/science/circuits) "xcb" = ( @@ -68992,6 +70518,7 @@ /area/station/commons/locker) "xcW" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/effect/turf_decal/delivery/red, /obj/machinery/portable_atmospherics/canister/carbon_dioxide, /turf/open/floor/iron/dark, /area/station/security/execution) @@ -69009,11 +70536,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/command/bridge) -"xdD" = ( -/obj/machinery/firealarm/directional/east, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/maintenance/department/engine/atmos) "xdI" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/layer_manifold/scrubbers/hidden, @@ -69036,7 +70558,9 @@ pixel_x = 6; pixel_y = 6 }, -/turf/open/floor/iron/dark, +/turf/open/floor/iron/dark/side{ + dir = 8 + }, /area/station/commons/fitness) "xdR" = ( /obj/effect/turf_decal/tile/neutral/half/contrasted{ @@ -69112,13 +70636,10 @@ /turf/open/floor/iron/dark, /area/station/hallway/primary/fore) "xft" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/chair/office/light{ - dir = 1 +/obj/machinery/newscaster/directional/west, +/obj/machinery/computer/records/security{ + dir = 4 }, -/obj/effect/landmark/start/detective, /turf/open/floor/wood, /area/station/security/detectives_office) "xfA" = ( @@ -69128,21 +70649,28 @@ }, /turf/open/floor/wood, /area/station/command/heads_quarters/blueshield) +"xfI" = ( +/obj/machinery/light/small/directional/south, +/obj/machinery/firealarm/directional/south, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "xfN" = ( -/obj/effect/turf_decal/trimline/yellow/filled/warning{ - dir = 5 +/obj/effect/turf_decal/trimline/yellow/filled/line{ + dir = 4 }, -/obj/effect/turf_decal/trimline/yellow/corner{ +/obj/effect/turf_decal/trimline/yellow/line{ dir = 8 }, /obj/machinery/firealarm/directional/east, /turf/open/floor/iron/dark/side{ - dir = 5 + dir = 4 }, /area/station/hallway/primary/aft) "xfT" = ( /obj/machinery/firealarm/directional/north, -/obj/structure/closet/crate, +/obj/structure/chair/plastic{ + dir = 8 + }, /turf/open/floor/iron/dark/side{ dir = 5 }, @@ -69212,10 +70740,17 @@ /turf/open/floor/iron, /area/station/engineering/storage) "xgz" = ( -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable, -/turf/open/floor/catwalk_floor, -/area/station/maintenance/department/security/brig) +/obj/machinery/corral_corner{ + mapping_id = "2" + }, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/machinery/light/neon_lining{ + dir = 8 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "xgB" = ( /obj/effect/turf_decal/trimline/yellow/filled/warning{ dir = 1 @@ -69230,20 +70765,31 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "xgR" = ( -/obj/machinery/door/poddoor/incinerator_atmos_aux, -/turf/open/floor/engine, +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) +"xgT" = ( +/obj/machinery/airalarm/directional/east, +/obj/machinery/chem_master, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "xgX" = ( /obj/machinery/light/directional/north, /turf/open/floor/iron/dark, /area/station/security/prison) "xgY" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/spawner/random/structure/steam_vent, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +/obj/machinery/airalarm/directional/west, +/obj/structure/closet/secure_closet{ + req_access = list("lawyer"); + name = "Lawyer Locker" + }, +/obj/item/storage/briefcase, +/obj/item/clothing/glasses/sunglasses/big, +/turf/open/floor/wood, +/area/station/service/lawoffice) "xhf" = ( /obj/machinery/light/small/directional/east, /obj/structure/sign/warning/rad_shelter/directional/east, @@ -69270,16 +70816,20 @@ /turf/open/floor/plating, /area/station/commons/dorms) "xhv" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, /obj/structure/cable, -/obj/machinery/holopad, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, /turf/open/floor/wood, /area/station/service/lawoffice) "xhI" = ( -/obj/structure/cable, -/obj/effect/turf_decal/stripes/line, -/turf/open/floor/iron, +/obj/machinery/atmospherics/components/unary/vent_scrubber/layer2{ + dir = 1 + }, +/turf/open/floor/engine, /area/station/maintenance/disposal/incinerator) "xhN" = ( /obj/structure/bed, @@ -69297,8 +70847,8 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/obj/machinery/door/firedoor, /obj/machinery/duct, +/obj/machinery/door/firedoor, /turf/open/floor/iron/dark/textured, /area/station/security/prison) "xhW" = ( @@ -69350,7 +70900,7 @@ /area/station/engineering/break_room) "xiW" = ( /obj/structure/lattice, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ dir = 9 }, /turf/open/space/basic, @@ -69374,6 +70924,14 @@ dir = 1 }, /area/station/service/hydroponics/garden) +"xjv" = ( +/obj/structure/cable, +/obj/structure/chair/office/light{ + dir = 1 + }, +/obj/effect/landmark/start/signal_technician, +/turf/open/floor/iron, +/area/station/tcommsat/computer) "xjx" = ( /obj/effect/turf_decal/tile/yellow/fourcorners, /obj/machinery/firealarm/directional/east{ @@ -69404,22 +70962,11 @@ }, /area/station/service/hydroponics/garden) "xkh" = ( -/obj/item/radio/off{ - pixel_y = 6 - }, -/obj/item/radio/off{ - pixel_x = 6; - pixel_y = 4 - }, -/obj/item/radio/off{ - pixel_x = -6; - pixel_y = 4 - }, -/obj/item/radio/off, -/obj/structure/table/reinforced, /obj/effect/turf_decal/siding/thinplating/dark{ dir = 1 }, +/obj/structure/rack, +/obj/item/extinguisher, /turf/open/floor/iron, /area/station/command/gateway) "xkj" = ( @@ -69439,6 +70986,11 @@ /obj/structure/closet/emcloset, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"xkR" = ( +/obj/machinery/duct, +/mob/living/basic/drone/snowflake/bardrone, +/turf/open/floor/iron/kitchen, +/area/station/command/heads_quarters/nt_rep) "xkV" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 10 @@ -69458,15 +71010,6 @@ /obj/item/pen, /turf/open/floor/iron/dark, /area/station/hallway/primary/starboard) -"xle" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/turf/open/floor/wood, -/area/station/security/detectives_office) "xlk" = ( /obj/structure/closet, /obj/item/clothing/under/misc/mailman, @@ -69480,7 +71023,6 @@ /turf/open/floor/circuit, /area/station/ai_monitored/command/nuke_storage) "xlQ" = ( -/obj/machinery/status_display/evac/directional/south, /obj/structure/table, /obj/item/toy/foamblade, /obj/item/toy/sword{ @@ -69530,10 +71072,11 @@ /turf/open/floor/plating, /area/station/maintenance/department/cargo) "xmK" = ( -/obj/machinery/light/directional/south, -/obj/structure/extinguisher_cabinet/directional/south, -/turf/open/floor/wood, -/area/station/commons/vacant_room/office) +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/open/floor/wood/tile, +/area/station/command/heads_quarters/nt_rep) "xnn" = ( /obj/effect/turf_decal/tile/red/fourcorners, /obj/machinery/dish_drive/bullet, @@ -69543,6 +71086,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/brown/visible, /turf/open/floor/iron/dark, /area/station/engineering/atmos) +"xnz" = ( +/obj/machinery/light/small/directional/north, +/obj/structure/sign/warning/electric_shock/directional/north, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/garbage, +/obj/effect/landmark/generic_maintenance_landmark, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "xnC" = ( /obj/effect/turf_decal/tile/blue/fourcorners, /turf/open/floor/iron/dark, @@ -69584,10 +71135,11 @@ /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat/atmos) "xoa" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/structure/chair_flipped, -/turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +/obj/machinery/atmospherics/components/unary/artifact_heatingpad{ + dir = 4 + }, +/turf/open/floor/engine, +/area/station/science/explab) "xob" = ( /obj/effect/turf_decal/tile/yellow/full, /obj/machinery/light/small/directional/north, @@ -69611,7 +71163,13 @@ /turf/open/floor/iron/dark, /area/station/command/bridge) "xog" = ( -/obj/effect/turf_decal/siding/wood, +/obj/machinery/light/directional/east, +/obj/structure/disposalpipe/segment{ + dir = 9 + }, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/obj/machinery/vending/wardrobe/det_wardrobe, /turf/open/floor/wood, /area/station/security/detectives_office) "xow" = ( @@ -69630,10 +71188,9 @@ /turf/open/floor/iron/dark/textured, /area/station/security/prison/safe) "xoG" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/kirbyplants/random, -/turf/open/floor/iron, -/area/station/maintenance/department/science) +/obj/effect/turf_decal/stripes/line, +/turf/open/floor/engine, +/area/station/science/xenobiology) "xoI" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -69698,9 +71255,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/oil, -/turf/open/floor/iron/checker, +/obj/structure/disposalpipe/junction{ + dir = 4 + }, +/turf/open/floor/plating, /area/station/maintenance/port/fore) "xqC" = ( /obj/structure/chair/stool/directional/south, @@ -69711,7 +71269,6 @@ /obj/effect/turf_decal/trimline/red/filled/line{ dir = 6 }, -/obj/item/kirbyplants/random, /turf/open/floor/iron/dark, /area/station/security/brig/entrance) "xqN" = ( @@ -69724,6 +71281,14 @@ /obj/structure/ghost_critter_spawn, /turf/open/floor/plating, /area/station/maintenance/department/cargo) +"xqR" = ( +/obj/effect/turf_decal/trimline/purple/filled/line{ + dir = 5 + }, +/obj/structure/table/glass, +/obj/item/storage/box/disks_nanite, +/turf/open/floor/iron/white, +/area/station/science/auxlab) "xqS" = ( /obj/effect/turf_decal/tile/green/half/contrasted{ dir = 1 @@ -69731,6 +71296,15 @@ /obj/machinery/growing/tray, /turf/open/floor/iron/dark/side, /area/station/service/hydroponics) +"xqV" = ( +/obj/structure/frame/computer{ + anchored = 1; + dir = 4 + }, +/turf/open/floor/iron/dark/side/airless{ + dir = 8 + }, +/area/station/maintenance/space_hut) "xqW" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/effect/turf_decal/bot_red, @@ -69752,6 +71326,9 @@ /area/station/security/medical) "xrf" = ( /obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, /turf/open/floor/iron, /area/station/cargo/lobby) "xrz" = ( @@ -69807,21 +71384,13 @@ /area/station/service/bar) "xsB" = ( /obj/machinery/camera/directional/west{ - c_tag = "Telecomms Server Room"; - network = list("tcomms") + c_tag = "Engineering - Telecomms, Server Room"; + network = list("tcomms"); + name = "engineering camera" }, /obj/machinery/telecomms/receiver/preset_left, /turf/open/floor/circuit/telecomms, /area/station/tcommsat/server) -"xsC" = ( -/obj/structure/table/reinforced/plasmarglass, -/obj/item/experi_scanner{ - pixel_x = 4 - }, -/obj/item/clothing/gloves/latex, -/obj/item/clothing/glasses/science, -/turf/open/floor/iron/white, -/area/station/science/xenobiology) "xsX" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -69838,7 +71407,12 @@ /area/station/security/prison/rec) "xtc" = ( /obj/machinery/light/directional/east, -/obj/machinery/firealarm/directional/east, +/obj/machinery/firealarm/directional/east{ + pixel_y = -5 + }, +/obj/machinery/light_switch/directional/east{ + pixel_y = 5 + }, /turf/open/floor/iron/dark, /area/station/security/prison/workout) "xtm" = ( @@ -69856,10 +71430,13 @@ /obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ dir = 8 }, -/obj/machinery/light/small/directional/south, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, /obj/structure/sign/warning/cold_temp/directional/south, -/obj/machinery/camera/autoname/directional/south, +/obj/machinery/light/small/directional/south, /obj/machinery/atmospherics/components/binary/pump{ + name = "Director"; dir = 4 }, /turf/open/floor/iron/dark, @@ -69944,12 +71521,6 @@ /area/station/medical/psychology) "xuu" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, -/obj/machinery/firealarm/directional/west{ - pixel_y = -5 - }, -/obj/machinery/light_switch/directional/west{ - pixel_y = 5 - }, /obj/structure/table, /obj/item/stack/sheet/iron/fifty{ pixel_y = 5; @@ -69972,17 +71543,17 @@ /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/eva) "xuA" = ( -/obj/item/radio/intercom/prison/directional/west, -/turf/open/floor/iron/dark, -/area/station/security/prison) +/obj/structure/sink/kitchen/directional/west, +/turf/open/floor/iron/kitchen, +/area/station/command/heads_quarters/nt_rep) "xuF" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line, -/obj/effect/turf_decal/trimline/yellow/line{ +/obj/effect/turf_decal/trimline/green/filled/line, +/obj/effect/turf_decal/trimline/green/line{ dir = 1 }, /obj/structure/sign/poster/ripped/directional/south, /obj/machinery/camera/directional/south{ - c_tag = "Hallway - Central, Southwest"; + c_tag = "Hallway, Central - Southwest"; name = "hallway camera" }, /turf/open/floor/iron/dark, @@ -70005,6 +71576,10 @@ }, /turf/open/floor/iron/white, /area/station/medical/exam_room) +"xvg" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/turf/open/floor/iron/kitchen, +/area/station/command/heads_quarters/nt_rep) "xvo" = ( /obj/machinery/airalarm/directional/east, /obj/structure/filingcabinet, @@ -70017,24 +71592,23 @@ /turf/open/floor/iron/white, /area/station/medical/chemistry) "xvF" = ( -/obj/structure/cable, +/obj/effect/turf_decal/vg_decals/numbers/two, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/light/floor/has_bulb, -/turf/open/floor/iron/dark, +/obj/structure/cable, +/turf/open/floor/iron/dark/smooth_large, /area/station/security/brig) "xvI" = ( /turf/closed/wall/r_wall, /area/station/security/checkpoint/escape) "xvT" = ( -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 }, /turf/open/floor/iron, -/area/station/engineering/gravity_generator) +/area/station/engineering/main) "xvY" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -70065,6 +71639,18 @@ /obj/machinery/vending/modularpc, /turf/open/floor/iron/dark, /area/station/hallway/primary/central) +"xwo" = ( +/obj/structure/table/wood/fancy/green, +/obj/item/flashlight/lamp/green{ + pixel_x = -6; + pixel_y = 6 + }, +/obj/item/clothing/accessory/medal/silver/bureaucracy, +/obj/item/clothing/accessory/medal/gold/ordom{ + pixel_x = 6 + }, +/turf/open/floor/wood/large, +/area/station/command/heads_quarters/nt_rep) "xwq" = ( /obj/effect/turf_decal/bot, /obj/machinery/firealarm/directional/east{ @@ -70078,9 +71664,26 @@ /area/station/engineering/main) "xwx" = ( /obj/effect/turf_decal/tile/neutral/half/contrasted, -/obj/machinery/atmospherics/pipe/smart/simple/violet/visible, +/obj/machinery/atmospherics/components/binary/pump{ + name = "Cooling Loop" + }, /turf/open/floor/iron/dark, /area/station/science/ordnance) +"xwH" = ( +/obj/item/radio/intercom/directional/west, +/obj/structure/table/reinforced/rglass, +/obj/item/stack/sheet/mineral/plasma/five, +/obj/item/reagent_containers/cup/beaker/large, +/obj/item/reagent_containers/cup/beaker{ + pixel_x = 8; + pixel_y = 2 + }, +/obj/item/reagent_containers/dropper, +/obj/item/reagent_containers/dropper{ + pixel_y = -4 + }, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "xwK" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -70118,6 +71721,18 @@ /obj/machinery/status_display/evac/directional/east, /turf/open/floor/iron/white, /area/station/science/research) +"xxB" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 1 + }, +/obj/machinery/status_display/ai/directional/north, +/obj/machinery/computer/telecomms/server{ + network = "tcommsat" + }, +/turf/open/floor/iron/dark/side{ + dir = 1 + }, +/area/station/tcommsat/computer) "xxI" = ( /obj/effect/turf_decal/trimline/green/filled/line, /obj/effect/turf_decal/trimline/green/line{ @@ -70192,12 +71807,9 @@ /turf/open/floor/iron/dark, /area/station/science/server) "xyQ" = ( -/obj/effect/turf_decal/tile/purple/fourcorners, -/obj/machinery/light/directional/east, -/obj/structure/table/glass, -/obj/item/storage/box/disks_nanite, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, /turf/open/floor/iron/white, -/area/station/science/research) +/area/station/science/xenobiology) "xyU" = ( /obj/structure/window/spawner/directional/east, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, @@ -70285,17 +71897,19 @@ "xAf" = ( /obj/effect/turf_decal/tile/blue/fourcorners, /obj/machinery/light/small/directional/west, -/obj/structure/chair{ - dir = 4 - }, -/obj/effect/landmark/start/hangover, /obj/structure/sign/poster/official/random/directional/west, +/obj/item/kirbyplants/random, /turf/open/floor/iron/dark, /area/station/hallway/primary/starboard) "xAj" = ( /obj/effect/turf_decal/stripes/corner, /turf/open/floor/plating/airless, /area/station/science/ordnance/bomb) +"xAs" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/structure/crate, +/turf/open/floor/plating, +/area/station/maintenance/starboard/fore) "xAx" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/dark, @@ -70326,17 +71940,19 @@ /area/station/service/hydroponics) "xAT" = ( /obj/machinery/light/directional/east, +/obj/machinery/status_display/evac/directional/east, /obj/structure/chair/plastic{ dir = 8 }, /turf/open/floor/wood, /area/station/security/prison/rec) -"xBa" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ +"xBj" = ( +/obj/structure/disposalpipe/trunk, +/obj/structure/disposaloutlet{ dir = 1 }, -/turf/open/floor/iron/white, -/area/station/medical/chemistry) +/turf/open/floor/plating/airless, +/area/space/nearstation) "xBB" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ @@ -70375,18 +71991,19 @@ /area/station/service/hydroponics) "xBX" = ( /obj/structure/table/reinforced, -/obj/item/computer_disk/atmos{ - pixel_y = 6; - pixel_x = 4 +/obj/item/paper_bin{ + pixel_y = 6 }, -/obj/item/toy/figure/ce{ - pixel_y = 12; - pixel_x = -8 +/obj/item/clipboard{ + pixel_y = 6 }, -/obj/item/storage/fancy/cigarettes/cigars, -/obj/item/lighter{ - pixel_y = -6 +/obj/item/folder/yellow{ + pixel_y = 6 + }, +/obj/item/pen{ + pixel_y = 4 }, +/obj/item/stamp/head/ce, /turf/open/floor/iron, /area/station/command/heads_quarters/ce) "xCa" = ( @@ -70408,7 +72025,6 @@ /obj/effect/turf_decal/tile/green{ dir = 8 }, -/obj/machinery/camera/autoname/directional/north, /obj/item/radio/intercom/directional/north, /obj/structure/table, /obj/machinery/smartfridge/disks{ @@ -70427,7 +72043,12 @@ /area/station/hallway/primary/aft) "xCo" = ( /obj/machinery/light/directional/south, -/obj/machinery/firealarm/directional/south, +/obj/machinery/firealarm/directional/south{ + pixel_x = 5 + }, +/obj/machinery/light_switch/directional/south{ + pixel_x = -5 + }, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 }, @@ -70446,12 +72067,31 @@ dir = 8 }, /area/station/security/interrogation) +"xCE" = ( +/obj/machinery/status_display/ai/directional/east, +/obj/machinery/smartfridge/extract/preloaded, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) +"xCK" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/department/engine) "xCP" = ( /obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/general/hidden, /obj/structure/cable, -/obj/item/wrench, -/obj/machinery/light/small/directional/west, -/turf/open/floor/iron, +/obj/structure/liquid_barrier, +/obj/machinery/door/airlock/research/glass{ + name = "Kill Chamber"; + normalspeed = 0 + }, +/obj/effect/mapping_helpers/airlock/access/all/science/xenobio, +/turf/open/floor/iron/white/textured, /area/station/science/xenobiology) "xDl" = ( /obj/machinery/atmospherics/components/binary/pump{ @@ -70543,15 +72183,9 @@ /turf/open/floor/iron/white, /area/station/medical/virology) "xFe" = ( -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 8 - }, -/obj/effect/turf_decal/trimline/green/line{ - dir = 4 - }, -/obj/structure/sign/poster/official/cleanliness/directional/west, -/turf/open/floor/iron/dark, -/area/station/hallway/primary/central) +/obj/structure/reagent_dispensers/fueltank, +/turf/open/floor/plating, +/area/station/maintenance/port/aft) "xFj" = ( /turf/open/floor/iron/dark/corner{ dir = 8 @@ -70620,7 +72254,9 @@ }, /area/station/service/hydroponics/garden) "xGy" = ( +/obj/effect/turf_decal/box, /obj/structure/cable, +/obj/machinery/portable_atmospherics/scrubber, /turf/open/floor/iron, /area/station/science/ordnance) "xGG" = ( @@ -70629,10 +72265,12 @@ /area/station/cargo/storage) "xGH" = ( /obj/effect/turf_decal/box, -/obj/structure/sign/warning/no_smoking/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, /obj/machinery/holopad, -/turf/open/floor/iron/large, -/area/station/maintenance/department/science) +/turf/open/floor/iron/white/smooth_large, +/area/station/science/xenobiology) "xGN" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -70670,14 +72308,16 @@ /turf/open/floor/iron/dark/smooth_large, /area/station/engineering/atmos/storage) "xHh" = ( -/obj/structure/disposalpipe/segment{ +/obj/effect/turf_decal/stripes/end{ + dir = 1 + }, +/obj/structure/window/reinforced/spawner/directional/north, +/obj/structure/disposalpipe/trunk{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/catwalk_floor/iron, -/area/station/maintenance/department/science) +/obj/machinery/disposal/bin, +/turf/open/floor/iron, +/area/station/science/xenobiology) "xHp" = ( /obj/machinery/atmospherics/pipe/smart/simple/brown/visible, /turf/open/floor/iron/dark, @@ -70726,14 +72366,9 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos/pumproom) -"xIo" = ( -/obj/machinery/newscaster/directional/west, -/turf/open/floor/wood, -/area/station/service/lawoffice) "xIp" = ( /obj/effect/turf_decal/tile/dark_blue/fourcorners, -/obj/effect/turf_decal/bot_white, -/obj/item/radio/intercom/directional/west, +/obj/machinery/airalarm/directional/west, /obj/machinery/computer/gateway_control, /turf/open/floor/iron/dark, /area/station/command/gateway) @@ -70822,7 +72457,7 @@ /turf/open/floor/iron/dark, /area/station/hallway/primary/central) "xKp" = ( -/obj/machinery/atmospherics/pipe/layer_manifold/dark/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ dir = 4 }, /obj/machinery/door/firedoor/heavy, @@ -70834,11 +72469,14 @@ /area/station/maintenance/disposal/incinerator) "xKq" = ( /obj/structure/sign/warning/rad_shelter/directional/south, +/obj/item/kirbyplants/random, /turf/open/floor/iron/dark, /area/station/security/prison) "xKR" = ( -/obj/effect/landmark/start/hangover, -/turf/open/floor/glass/reinforced, +/obj/structure/chair/sofa/right/maroon{ + dir = 1 + }, +/turf/open/floor/iron, /area/station/commons/fitness/recreation) "xKS" = ( /obj/item/toy/basketball, @@ -70858,13 +72496,10 @@ }, /turf/open/floor/iron/white, /area/station/medical/exam_room) -"xLa" = ( -/obj/machinery/suit_storage_unit/standard_unit, -/obj/effect/turf_decal/bot_red, -/turf/open/floor/iron, -/area/station/ai_monitored/command/storage/eva) "xLc" = ( -/obj/structure/sink/kitchen/directional/south, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, /turf/open/floor/iron/freezer, /area/station/service/kitchen/coldroom) "xLi" = ( @@ -70887,6 +72522,9 @@ "xLD" = ( /obj/effect/turf_decal/stripes/line, /obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, /turf/open/floor/iron, /area/station/engineering/gravity_generator) "xLN" = ( @@ -70965,26 +72603,28 @@ /area/station/security/checkpoint/customs/auxiliary) "xNj" = ( /obj/machinery/camera/directional/east{ - c_tag = "Engineering - Atmospherics, External HFR Room, East"; + c_tag = "Engineering - External, Atmospherics, HFR Room, East"; name = "engineering camera" }, /obj/structure/closet/radiation, /turf/open/floor/iron/dark, /area/station/engineering/atmos/hfr_room) "xNu" = ( -/obj/machinery/light/small/directional/north, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron, -/area/station/maintenance/department/science) -"xNz" = ( -/obj/effect/turf_decal/trimline/dark_blue/filled/line{ - dir = 6 +/obj/effect/turf_decal/stripes/line{ + dir = 8 }, -/obj/machinery/firealarm/directional/south{ - pixel_x = -5 +/obj/machinery/light/neon_lining{ + dir = 8 }, -/obj/machinery/light_switch/directional/south{ - pixel_x = 5 +/obj/machinery/duct, +/turf/open/floor/engine, +/area/station/science/xenobiology) +"xNz" = ( +/obj/effect/turf_decal/trimline/dark_green/filled/line{ + dir = 4 + }, +/obj/effect/turf_decal/trimline/dark_blue/filled/line{ + dir = 8 }, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) @@ -71118,6 +72758,9 @@ /area/station/medical/virology) "xPP" = ( /obj/machinery/light/small/directional/west, +/obj/structure/chair{ + dir = 4 + }, /turf/open/floor/iron/dark/smooth_large, /area/station/engineering/storage) "xPS" = ( @@ -71168,10 +72811,20 @@ dir = 1 }, /obj/effect/turf_decal/trimline/dark_blue/line, +/obj/machinery/light/small/directional/north, /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/hallway/primary/central) +"xRd" = ( +/obj/machinery/camera/directional/west{ + c_tag = "Science - Artifact Lab, West"; + name = "science camera"; + network = list("ss13","rd") + }, +/obj/structure/filingcabinet, +/turf/open/floor/iron/white, +/area/station/science/explab) "xRh" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -71179,10 +72832,9 @@ /turf/open/floor/iron/dark, /area/station/engineering/engine_smes) "xRl" = ( -/obj/item/picket_sign, -/obj/effect/spawner/random/maintenance/two, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +/obj/item/kirbyplants/random, +/turf/open/floor/iron/dark, +/area/station/security/prison) "xRn" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -71227,14 +72879,6 @@ /obj/effect/landmark/navigate_destination/vault, /turf/open/floor/iron/dark/textured, /area/station/ai_monitored/command/nuke_storage) -"xRJ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/duct, -/obj/structure/disposalpipe/segment, -/turf/open/floor/stone, -/area/station/science/xenobiology) "xRO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -71322,15 +72966,11 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "xSA" = ( -/obj/effect/spawner/structure/window/reinforced, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, -/obj/machinery/door/poddoor/shutters{ - id = "hos_office"; - name = "HoS Office Shutters"; - dir = 8 - }, -/turf/open/floor/plating, -/area/station/command/heads_quarters/hos) +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/dark, +/area/station/security/prison/visit) "xSJ" = ( /obj/machinery/airalarm/directional/west, /obj/structure/chair/stool/directional/north, @@ -71374,10 +73014,14 @@ /area/station/ai_monitored/turret_protected/ai) "xTe" = ( /obj/effect/turf_decal/bot, +/obj/machinery/light/small/directional/north, +/obj/machinery/camera/directional/north{ + c_tag = "Engineering - Atmospherics Incinerator"; + name = "engineering camera" + }, /obj/structure/sign/warning/no_smoking/directional/north, /obj/structure/cable, /obj/structure/closet/radiation, -/obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, /area/station/maintenance/disposal/incinerator) "xTF" = ( @@ -71453,15 +73097,16 @@ /turf/open/floor/iron/dark, /area/station/hallway/primary/central) "xUC" = ( -/obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, +/obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ + dir = 8 + }, /obj/machinery/light/small/directional/west, +/obj/machinery/meter, /turf/open/floor/iron/dark, /area/station/engineering/atmos/pumproom) "xUG" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/machinery/light/directional/west, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on, -/turf/open/floor/iron, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/turf/closed/wall/r_wall, /area/station/maintenance/disposal/incinerator) "xUO" = ( /obj/effect/turf_decal/stripes/line, @@ -71511,6 +73156,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, +/obj/structure/disposalpipe/segment, /turf/open/floor/iron/checker, /area/station/commons/dorms/laundry) "xVH" = ( @@ -71563,11 +73209,14 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/fore) "xWi" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/duct, -/obj/effect/spawner/random/trash/cigbutt, -/turf/open/floor/plating, -/area/station/maintenance/port/fore) +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/iron/dark/side{ + dir = 5 + }, +/area/station/commons/fitness/recreation) "xWj" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -71666,7 +73315,7 @@ /obj/machinery/door/window/left/directional/east{ name = "Fitness Ring" }, -/turf/open/floor/iron/dark, +/turf/open/floor/iron/dark/textured, /area/station/commons/fitness/recreation) "xXk" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ @@ -71707,7 +73356,7 @@ "xYe" = ( /obj/machinery/shower/directional/south, /obj/structure/drain, -/turf/open/floor/iron/white/textured_large, +/turf/open/floor/iron/showroomfloor, /area/station/medical/exam_room) "xYi" = ( /obj/effect/spawner/structure/window, @@ -71745,15 +73394,14 @@ "xYr" = ( /obj/effect/turf_decal/tile/red/fourcorners, /obj/effect/turf_decal/bot, -/obj/effect/landmark/secequipment, /obj/structure/cable, +/obj/effect/landmark/secequipment, /turf/open/floor/iron/dark, /area/station/security/lockers) "xYt" = ( -/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/cobweb/cobweb2, /obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/structure/table_or_rack, -/obj/effect/spawner/random/maintenance/two, +/obj/effect/spawner/random/trash/hobo_squat, /turf/open/floor/plating, /area/station/maintenance/port/fore) "xYE" = ( @@ -71781,6 +73429,18 @@ /obj/effect/spawner/random/maintenance/two, /turf/open/floor/plating, /area/station/maintenance/department/science) +"xZf" = ( +/obj/effect/turf_decal/siding/wideplating_new/dark/corner{ + dir = 1 + }, +/obj/effect/turf_decal/siding/wideplating_new/dark/corner, +/obj/effect/turf_decal/siding/wideplating_new/dark/corner{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/hidden/layer4, +/obj/machinery/atmospherics/pipe/heat_exchanging/simple, +/turf/open/floor/iron/dark/telecomms, +/area/station/tcommsat/server) "xZj" = ( /obj/structure/table, /obj/item/storage/crayons, @@ -71820,9 +73480,14 @@ /turf/open/floor/iron/dark, /area/station/construction/mining/aux_base) "xZB" = ( -/obj/structure/chair/wood, -/turf/open/floor/carpet/green, -/area/station/commons/vacant_room/office) +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/wood/tile, +/area/station/command/heads_quarters/nt_rep) "xZD" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -71838,13 +73503,15 @@ /turf/open/floor/wood, /area/station/command/heads_quarters/captain) "xZG" = ( -/obj/structure/table/wood, -/obj/item/camera_film{ - pixel_x = -4; - pixel_y = 4 +/obj/effect/turf_decal/trimline/neutral/filled/line{ + dir = 4 }, -/turf/open/floor/carpet/green, -/area/station/commons/vacant_room/office) +/obj/effect/turf_decal/trimline/neutral/line{ + dir = 8 + }, +/obj/machinery/status_display/ai/directional/east, +/turf/open/floor/iron/dark, +/area/station/hallway/secondary/entry) "xZK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -71901,6 +73568,10 @@ /obj/effect/turf_decal/trimline/green/filled/line, /turf/open/floor/iron/dark, /area/station/hallway/primary/starboard) +"yaC" = ( +/obj/machinery/washing_machine, +/turf/open/floor/iron/showroomfloor, +/area/station/command/heads_quarters/nt_rep) "yaL" = ( /obj/effect/turf_decal/tile/green/half/contrasted{ dir = 8 @@ -71957,10 +73628,12 @@ /turf/open/floor/wood, /area/station/security/prison/rec) "ybw" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/station_map/directional/south, -/turf/open/floor/iron, -/area/station/maintenance/department/science) +/obj/machinery/light/neon_lining{ + dir = 4 + }, +/obj/machinery/duct, +/turf/open/floor/stone, +/area/station/science/xenobiology) "ybA" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -71978,6 +73651,12 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/carpet/blue, /area/station/commons/dorms/room2) +"ybJ" = ( +/obj/effect/turf_decal/stripes/red/line{ + dir = 9 + }, +/turf/open/floor/engine, +/area/station/science/xenobiology) "ybU" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/dark_blue/filled/end, @@ -72026,11 +73705,12 @@ /turf/open/floor/wood, /area/station/service/library) "ycu" = ( -/obj/effect/turf_decal/bot, -/obj/machinery/suit_storage_unit/engine, -/obj/machinery/camera/autoname/directional/north, -/turf/open/floor/iron, -/area/station/engineering/main) +/obj/effect/turf_decal/trimline/red/filled/line{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/turf/open/floor/iron/dark, +/area/station/security/execution/transfer) "ycx" = ( /obj/machinery/light/small/directional/north, /obj/effect/mapping_helpers/burnt_floor, @@ -72098,26 +73778,37 @@ /obj/machinery/door/window/left/directional/west{ name = "Fitness Ring" }, -/turf/open/floor/iron/dark, +/turf/open/floor/iron/dark/textured, /area/station/commons/fitness/recreation) "ydv" = ( -/obj/effect/turf_decal/siding/wood{ +/obj/structure/chair/wood{ dir = 4 }, -/turf/open/floor/wood, -/area/station/commons/vacant_room/office) +/turf/open/floor/wood/tile, +/area/station/command/heads_quarters/nt_rep) "ydz" = ( -/obj/effect/turf_decal/trimline/blue/filled/line{ - dir = 8 +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/landmark/event_spawn, +/turf/open/floor/iron/dark, +/area/station/hallway/primary/port) +"ydB" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 }, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 +/obj/effect/turf_decal/stripes/line, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/duct, +/obj/machinery/door/airlock/freezer{ + name = "Coldroom" }, -/turf/open/floor/iron/white, -/area/station/medical/office) -"ydB" = ( -/mob/living/basic/goat/pete, -/turf/open/floor/iron/freezer, +/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, +/obj/effect/mapping_helpers/airlock/cyclelink_helper, +/turf/open/floor/iron/dark/textured, /area/station/service/kitchen/coldroom) "ydN" = ( /obj/effect/spawner/random/structure/chair_maintenance{ @@ -72139,7 +73830,7 @@ /obj/machinery/airalarm/directional/south, /obj/structure/closet/emcloset/anchored, /turf/open/floor/iron/dark/smooth_large, -/area/station/maintenance/department/security) +/area/station/security/office) "yeo" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/maintenance/five, @@ -72163,33 +73854,30 @@ /turf/open/floor/plating, /area/station/maintenance/solars/port/aft) "yeR" = ( -/obj/effect/turf_decal/trimline/yellow/filled/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/yellow/line, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/simple/cyan/hidden{ dir = 4 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/turf/open/floor/iron/dark/side{ - dir = 1 - }, +/turf/open/floor/iron, /area/station/hallway/primary/aft) "yeV" = ( /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/electrical) "yfi" = ( -/obj/structure/closet/wardrobe/pjs, -/obj/effect/landmark/start/hangover/closet, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/disposal/bin, /turf/open/floor/iron/dark/side{ dir = 6 }, /area/station/commons/dorms) "yft" = ( /obj/effect/turf_decal/tile/neutral/full, +/obj/structure/cable, /obj/machinery/gateway/centerstation, /turf/open/floor/iron/dark/smooth_large, /area/station/command/gateway) @@ -72345,18 +74033,6 @@ /obj/structure/closet/emcloset, /turf/open/floor/iron/dark, /area/station/hallway/primary/central) -"yiC" = ( -/obj/machinery/corral_corner{ - mapping_id = "5" - }, -/obj/effect/turf_decal/stripes/line{ - dir = 5 - }, -/obj/machinery/light/neon_lining{ - dir = 4 - }, -/turf/open/floor/engine, -/area/station/science/xenobiology) "yiD" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -72368,7 +74044,9 @@ dir = 5 }, /obj/machinery/newscaster/directional/north, -/obj/machinery/dna_scannernew, +/obj/machinery/computer/cloning{ + dir = 8 + }, /turf/open/floor/iron/white, /area/station/science/genetics/cloning) "yiR" = ( @@ -72376,6 +74054,14 @@ dir = 6 }, /area/station/commons/locker) +"yiS" = ( +/obj/structure/sign/xenobio_guide/directional/west, +/obj/structure/table/reinforced/rglass, +/obj/item/experi_scanner, +/obj/item/clothing/gloves/latex, +/obj/item/clothing/glasses/science, +/turf/open/floor/iron/white, +/area/station/science/xenobiology) "yjc" = ( /obj/machinery/atmospherics/pipe/smart/simple/brown/visible, /obj/machinery/meter, @@ -72434,13 +74120,13 @@ /turf/open/floor/iron/white, /area/station/medical/chemistry) "yjL" = ( -/obj/effect/turf_decal/trimline/dark_blue/filled/corner, -/obj/effect/turf_decal/trimline/dark_red/line{ - dir = 1 +/obj/effect/turf_decal/trimline/dark_blue/filled/line, +/obj/machinery/firealarm/directional/south{ + pixel_x = 5 + }, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/window/reinforced/spawner/directional/north, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) "yjP" = ( @@ -76483,7 +78169,7 @@ ksa ksa ksa nLE -sQS +ksa ksa rxc ksa @@ -77556,7 +79242,7 @@ ksa ksa ksa ksa -ksa +sQS ksa ksa ksa @@ -78901,7 +80587,7 @@ ksa ksa ksa ksa -ksa +nAS ksa ksa ksa @@ -79058,7 +80744,7 @@ ksa uiu kXx dNu -nwa +weD uho uiu uho @@ -79072,7 +80758,7 @@ ksa uho uiu uho -eed +gIA dNu tbO uiu @@ -79090,9 +80776,9 @@ kXx dNu tbO kfl -bGK +mXM cXu -twn +uNX ltM wZF wZF @@ -79113,9 +80799,9 @@ xyv ryp ucJ ucJ +ucJ iiv -iiv -iiv +ucJ ucJ ksa ksa @@ -79314,7 +81000,7 @@ ksa ksa uiu kXx -dNu +pHA qRH urs bHQ @@ -79330,7 +81016,7 @@ uiu kEL coE oeU -dNu +pHA tbO uiu ksa @@ -79344,7 +81030,7 @@ ksa ksa uiu kXx -dNu +pHA bnB kfl irt @@ -79400,37 +81086,37 @@ ksa ksa ksa ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +fdt +fdt +ndy +fdt +fdt +fdt +fdt +fdt +fdt +fdt +fdt +fdt +fdt +ndy +fdt +ndy +fdt +ndy +fdt +fdt +fdt +fdt +fdt +fdt +fdt +fdt +fdt +fdt +ndy +fdt +fdt ksa ksa ksa @@ -79572,7 +81258,7 @@ ksa uiu xIz pRn -mSx +dNu dNu xyw uiu @@ -79586,7 +81272,7 @@ ksa uiu aXb dNu -bDL +dNu pRn tbO uiu @@ -79601,11 +81287,11 @@ ksa ksa uiu kXx -pHA +pRn wGf veQ mXM -shX +cXu ntz ltM wZF @@ -79657,6 +81343,10 @@ ksa ksa ksa ksa +fdt +ksa +uoo +ksa ksa ksa ksa @@ -79666,8 +81356,11 @@ ksa ksa ksa ksa +uoo ksa +uoo ksa +uoo ksa ksa ksa @@ -79678,16 +81371,9 @@ ksa ksa ksa ksa +uoo ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +fdt ksa ksa ksa @@ -79914,37 +81600,37 @@ ksa ksa ksa ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +ndy +uoo +rxc +aVH +aVH +aVH +aVH +aVH +aVH +aVH +aVH +aVH +aVH +rxc +aVH +aVH +aVH +rxc +aVH +aVH +aVH +aVH +aVH +aVH +aVH +aVH +aVH +aVH +rxc +uoo +ndy ksa ksa ksa @@ -80085,7 +81771,7 @@ ksa ksa uiu kXx -pRn +iyE wMm rDe ifT @@ -80101,7 +81787,7 @@ uiu vXE qlp cQM -pRn +iyE tbO uiu ksa @@ -80115,7 +81801,7 @@ ksa ksa uiu kXx -pRn +iyE bnB kfl smB @@ -80171,7 +81857,9 @@ ksa ksa ksa ksa +fdt ksa +aVH ksa ksa ksa @@ -80197,11 +81885,9 @@ ksa ksa ksa ksa +aVH ksa -ksa -ksa -ksa -ksa +fdt ksa ksa ksa @@ -80342,8 +82028,8 @@ ksa ksa uiu kXx -pRn -nwa +tUH +weD uho uiu uho @@ -80357,8 +82043,8 @@ ksa uho uiu uho -eed -pRn +gIA +tUH tbO uiu ksa @@ -80428,7 +82114,9 @@ ksa ksa ksa ksa +fdt ksa +aVH ksa ksa ksa @@ -80454,11 +82142,9 @@ ksa ksa ksa ksa +aVH ksa -ksa -ksa -ksa -ksa +fdt ksa ksa ksa @@ -80548,15 +82234,15 @@ ksa ksa ksa ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +fEP +fEP +fEP +fEP +fEP +fEP +fEP +fEP +fEP ksa ksa ksa @@ -80599,7 +82285,7 @@ ksa ksa uho jkQ -pRn +tUH mQR qvz ins @@ -80615,7 +82301,7 @@ qvz ins bLR aHU -pRn +tUH dsc uho ksa @@ -80685,7 +82371,9 @@ ksa ksa ksa ksa +fdt ksa +aVH ksa ksa ksa @@ -80711,11 +82399,9 @@ ksa ksa ksa ksa +aVH ksa -ksa -ksa -ksa -ksa +fdt ksa ksa ksa @@ -80801,19 +82487,19 @@ ksa ksa ksa ksa +fEP +fEP +fEP +fEP +fEP ksa +xXP ksa +xXP ksa +xXP ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +xXP ksa ksa ksa @@ -80856,8 +82542,8 @@ ksa ksa uiu kXx -pRn -weD +tUH +nwa uho uho uho @@ -80871,8 +82557,8 @@ ksa uho uho uho -gIA -pRn +eed +tUH tbO uiu uoo @@ -80942,7 +82628,9 @@ ksa ksa ksa ksa +fdt ksa +aVH ksa ksa ksa @@ -80968,11 +82656,9 @@ ksa ksa ksa ksa +aVH ksa -ksa -ksa -ksa -ksa +fdt ksa ksa ksa @@ -81046,20 +82732,6 @@ ksa ksa ksa ksa -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP ksa ksa ksa @@ -81072,14 +82744,26 @@ ksa ksa ksa ksa +fEP +ksa +xXP +ksa +xXP ksa -fPN -nGn -nGn -nGn -fPN -pun -pun +wcU +wcU +wnn +wnn +wnn +wcU +wcU +wcU +axE +axE +axE +wcU +wcU +wcU wcU wcU wcU @@ -81087,6 +82771,8 @@ wcU pun pun pun +wcU +wcU ksa ksa ksa @@ -81113,7 +82799,7 @@ ksa ksa uho jGA -pRn +tUH qRH bHQ uiu @@ -81129,7 +82815,7 @@ uoo uiu njX oeU -pRn +tUH hTV uho ksa @@ -81199,7 +82885,9 @@ ksa ksa ksa ksa +fdt ksa +aVH ksa ksa ksa @@ -81225,11 +82913,9 @@ ksa ksa ksa ksa +aVH ksa -ksa -ksa -ksa -ksa +fdt ksa ksa ksa @@ -81301,24 +82987,10 @@ ksa ksa ksa ksa -fEP -fEP -fEP -ksa -uoo -ksa -ksa -uoo -ksa ksa -uoo ksa ksa -uoo ksa -fEP -fEP -fEP ksa ksa ksa @@ -81326,24 +82998,38 @@ ksa ksa ksa ksa -uoo ksa ksa ksa -fPN -whJ -rxs -lBu -fPN +fEP +xXP +wcU +wcU +wcU +wcU +wcU +vcF +xwo +gtm +iHD +vtg +wcU +fHv +eCA +vlZ +oRJ +pSD +pGu +dCO vqP -urk -dPz -bMC -dyv -gLW -dPz -uof -pun +mTh +pGu +cXK +aeG +vAm +fVm +tjP +wcU uho uiu uiu @@ -81371,7 +83057,7 @@ uho uho axF tUH -ryw +dNu trZ uho uho @@ -81385,7 +83071,7 @@ uho uho uho esT -tNG +dNu tUH eyp uho @@ -81399,7 +83085,7 @@ fDb uho uiu uho -vPe +kXx xxP tbO cRp @@ -81452,10 +83138,13 @@ xHM xXP noh ksa +sQS ksa ksa ksa +fdt ksa +aVH ksa ksa ksa @@ -81481,7 +83170,9 @@ ksa ksa ksa ksa +aVH ksa +fdt ksa ksa ksa @@ -81514,13 +83205,13 @@ ksa ksa ksa ksa +"} +(36,1,1) = {" ksa ksa ksa ksa ksa -"} -(36,1,1) = {" ksa ksa ksa @@ -81558,73 +83249,68 @@ ksa ksa ksa ksa -fEP ksa -uoo ksa -ieE -ieE -ieE -ieE -ieE -ieE -ieE -ieE -ieE -ieE -ksa -uoo ksa -fEP ksa ksa ksa ksa ksa ksa +fEP ksa -uoo -uoo -uoo -uoo -fPN -lBX -coA -hPN -fPN -fBd -wUn -cVY -bMC +wcU +jPW +oyL +tue +wcU +txT +txT +shT +txT +txT +wcU +eSr +iDb +kKj +iDb +iDb +pGu +pbU +qgA +wJF +pGu +alv xZB -xZG +gLW cVY eRY pun exU bgK bgK +gLM bgK -wYC bgK rVz -fMd +pDq qHC -oPJ +fMd oeU -pHA ivp +pHA qRH -oPJ -qHC fMd +qHC +pDq fqY bgK -wYC -bgK bgK +wYC bgK bgK +dPp ghp wzr tUH @@ -81713,7 +83399,9 @@ ksa ksa ksa ksa +fdt ksa +aVH ksa ksa ksa @@ -81739,7 +83427,9 @@ ksa ksa ksa ksa +aVH ksa +fdt ksa ksa ksa @@ -81772,12 +83462,12 @@ ksa ksa ksa ksa +"} +(37,1,1) = {" ksa ksa ksa ksa -"} -(37,1,1) = {" ksa ksa ksa @@ -81813,26 +83503,7 @@ ksa ksa ksa ksa -sQS ksa -fEP -uoo -fXE -snl -snl -snl -snl -snl -snl -snl -snl -snl -snl -snl -snl -fXE -uoo -fEP ksa ksa ksa @@ -81840,18 +83511,33 @@ ksa ksa ksa ksa -uoo ksa ksa ksa -fPN -hPN +ksa +fEP +xXP +wcU +rOP +oyL +cgV +oZt +mFp +oDy +sDt +qlK +vOr +wPM pLu +pLu +qPg +rxs +rxs lnT -fPN -bho gRk -maX +gRk +gRk +jMV nha lYM kkg @@ -81892,7 +83578,7 @@ xxP xxP xxP xxP -xxP +ciA xxP xxP xxP @@ -81970,7 +83656,9 @@ ksa ksa ksa ksa +fdt ksa +aVH ksa ksa ksa @@ -81996,11 +83684,9 @@ ksa ksa ksa ksa +aVH ksa -ksa -ksa -ksa -ksa +fdt ksa ksa ksa @@ -82072,24 +83758,8 @@ ksa ksa ksa ksa -fEP ksa -fXE -uoo -ieE -ieE -ieE -ieE -ieE -ieE -ieE -ieE -ieE -ieE -uoo -fXE ksa -fEP ksa ksa ksa @@ -82101,39 +83771,55 @@ ksa ksa ksa ksa -fPN -hPN -rxs -dhd -fPN -cRQ -dpZ -wLa -alv -cXK -cXK +ksa +fEP +ksa +wcU +yaC +veH +hpE +wcU +txT +txT +txT +txT +bRq +wcU +iDb +iDb +eCF +iDb +jyp +pGu +qgA +qDp +qgA +pGu +dPJ +fko cfv +fko xmK pun pdz vRw -qnR +jUb cUh -vfW -iGw -qnR +coA +wuE qnR +vQg ndl eUO -qnR -jee -qnR +xZG qnR qnR +pDR +rmy ndl +rau qnR -qnR -iGw +wuE jee cUh jUb @@ -82150,7 +83836,7 @@ xuO pny iHR voE -vQg +iHR pny gHQ wjA @@ -82162,11 +83848,11 @@ jxF ghp fir jxF -jxF +plq sJJ lke iKL -jxF +jeX jxF jxF jxF @@ -82227,7 +83913,9 @@ ksa ksa ksa ksa +fdt ksa +aVH ksa ksa ksa @@ -82253,11 +83941,9 @@ ksa ksa ksa ksa +aVH ksa -ksa -ksa -ksa -ksa +fdt ksa ksa ksa @@ -82322,56 +84008,56 @@ ksa ksa ksa ksa -ksa -ksa -ksa fEP fEP fEP fEP fEP -uoo -fXE -ksa -uoo -ksa +fEP +fEP +fEP +fEP +fEP +fEP +fEP +fEP +fEP ksa -uoo ksa ksa -uoo ksa ksa -uoo ksa -fXE ksa -uoo -uoo -uoo -xXP -xXP -uoo +fEP xXP -uoo -cpz -cpz -cpz -cpz -nZL -fPN -vnP -fPN -fPN +wcU +wcU +wcU +wcU +wcU +vfW +wUe +hMI +meW +uof +wcU +qyZ +xvg +fsi +aUz +kGT +pGu +vhx tLs mEg -lYe +pGu jOc -qds -nyL +ydv +ydv ydv nld -fPN +nZL fPN fPN fPN @@ -82484,6 +84170,10 @@ ksa ksa ksa ksa +fdt +ksa +aVH +ksa ksa ksa ksa @@ -82508,6 +84198,10 @@ ksa ksa ksa ksa +aVH +ksa +fdt +ksa ksa ksa ksa @@ -82539,6 +84233,8 @@ ksa ksa ksa ksa +"} +(40,1,1) = {" ksa ksa ksa @@ -82547,8 +84243,6 @@ ksa ksa ksa ksa -"} -(40,1,1) = {" ksa ksa ksa @@ -82569,14 +84263,24 @@ ksa ksa ksa ksa +fEP +fEP +fEP ksa +uoo ksa ksa +uoo ksa ksa +uoo ksa ksa +uoo ksa +fEP +fEP +fEP ksa ksa ksa @@ -82584,51 +84288,33 @@ ksa ksa fEP ksa -uoo ksa -uoo ksa -fXE -uoo -ieE -ieE -ieE -ieE -ieE -ieE -ieE -ieE -ieE -ieE -uoo -fXE -uoo -uoo -fXE -fXE -ahA -uoo -uoo -cpz -oAe -cpz -qXm -xSJ -tkE +xXP +ksa nZL -aMo -iQy -hjI -fPN -mEg -mEg -lYe -iSI -mEg -bMC +nZL +nZL +nZL +nZL +nZL +nZL +kQv +naY +eCF +iDb +jTj +pGu +nfA +qDp +guV +pGu +pGu +sQf +sQf sQf pGu -fPN +nZL vKc wfE sNZ @@ -82656,7 +84342,7 @@ gAI pJW aqj hsB -bbw +qzk uho oAK xxP @@ -82668,7 +84354,7 @@ vRV vRV cdz wjA -xdT +shX cLs gQr jPm @@ -82741,6 +84427,9 @@ ksa ksa ksa ksa +ndy +uoo +rxc ksa ksa ksa @@ -82766,6 +84455,10 @@ ksa ksa ksa ksa +rxc +uoo +ndy +ksa ksa ksa ksa @@ -82797,6 +84490,8 @@ ksa ksa ksa ksa +"} +(41,1,1) = {" ksa ksa ksa @@ -82804,8 +84499,6 @@ ksa ksa ksa ksa -"} -(41,1,1) = {" ksa ksa ksa @@ -82827,9 +84520,24 @@ ksa ksa ksa ksa +fEP ksa +uoo ksa +ieE +ieE +ieE +ieE +ieE +ieE +ieE +ieE +ieE +ieE +ksa +uoo ksa +fEP ksa ksa ksa @@ -82840,58 +84548,36 @@ ksa ksa ksa fEP -uoo -mkV -snl -fXE -fXE -fXE -snl -snl -snl -snl -snl -snl -snl -snl -snl -snl -snl -snl -fXE -fXE -fXE -fXE -vYB -kRu -ahA -tBD -cRg -wdv -qKk -gzX -qAy -oRa -kbD -iHO -iHO -iHO +ksa +fPN +uzT +wfE +vKc +bgY +usj +nZL +dZd +iDb +eCF +iDb +lPZ +pGu qgA -lYe -lYe -lYe -mEg -mEg -bMC -cla +qDp +wJF +pGu +rDF +biQ +dpZ +biQ lYB -fPN +nZL qPR iHO iHO iHO iHO -fxI +rvd iHO iHO iHO @@ -82911,10 +84597,10 @@ suE fPN xPw qem -wFu -qzk -lZJ +qem qAk +lZJ +uho xIz xxP jww @@ -82925,9 +84611,9 @@ jFn vRV yhG wjA -pWC -cLs -qQT +mle +oHb +cjG uBC uBC usv @@ -82998,7 +84684,9 @@ ksa ksa ksa ksa +fdt ksa +aVH ksa ksa ksa @@ -83024,11 +84712,9 @@ ksa ksa ksa ksa +aVH ksa -ksa -ksa -ksa -ksa +fdt ksa ksa ksa @@ -83089,52 +84775,52 @@ ksa ksa ksa ksa +sQS ksa +fEP +uoo +fXE +snl +snl +snl +snl +snl +snl +snl +snl +snl +snl +snl +snl +fXE +uoo +fEP ksa ksa ksa ksa ksa ksa -fEP ksa -uoo ksa -uoo ksa -fXE -uoo -ieE -ieE -ieE -ieE -ieE -ieE -ieE -ieE -ieE -ieE -uoo -fXE -uoo -uoo -fXE -fXE -ahA -uoo -uoo -cpz -oAe -cpz -ogg -mCt -aQt +fEP +xXP +nGn +fhe +wfE +esE +bgY +usj nZL -duQ -iHO -vKc -fPN -uof +lEd +iDb +eCF +xkR +bho +pGu +jTy +qDp qDp kkb dGT @@ -83142,7 +84828,7 @@ cid bMC kUB gWL -fPN +nZL qPR iHO fhe @@ -83166,7 +84852,7 @@ wfE iHO fhe fPN -qem +qAk qem kiI qem @@ -83174,13 +84860,13 @@ qem tJy wbe xxP -sNf +ley vRV ams mgY imH vRV -jci +kha wjA smC uiW @@ -83255,6 +84941,9 @@ ksa ksa ksa ksa +ndy +uoo +aVH ksa ksa ksa @@ -83280,14 +84969,11 @@ ksa ksa ksa ksa +aVH +uoo +ndy ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +nAS ksa ksa ksa @@ -83348,60 +85034,60 @@ ksa ksa ksa ksa -ksa -ksa -ksa -ksa -ksa -fEP -fEP -fEP -fEP fEP +ksa +fXE +uoo +ieE +ieE +ieE +ieE +ieE +ieE +ieE +ieE +ieE +ieE uoo fXE ksa -uoo +fEP ksa ksa -uoo ksa ksa -uoo ksa ksa -uoo ksa -fXE ksa -uoo -uoo -uoo -uoo -uoo -uoo -xXP -uoo -cpz -cpz -nZL +ksa +fEP +ksa +fPN +bvR +eJq +bgY +bgY +usj nZL +hvn +iDb +eCF +xuA +uDO +pGu +wUn +ogy +duQ +pGu +qds +vsI +rEd +lyv +uQm nZL fPN -cfC -fPN -fPN -fPN -fPN -fPN -fPN -fPN -fPN -fPN -fPN -fPN -fPN -cfC +pwg fPN fPN fPN @@ -83439,10 +85125,10 @@ rGN fhw rAT wjA -mle -oHb -qQT -iFy +xdT +cLs +sui +vPe uBC usv pXG @@ -83512,7 +85198,9 @@ ksa ksa ksa ksa +fdt ksa +aVH ksa ksa ksa @@ -83538,11 +85226,9 @@ ksa ksa ksa ksa +aVH ksa -ksa -ksa -ksa -ksa +fdt ksa ksa ksa @@ -83601,62 +85287,62 @@ ksa ksa ksa ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa fEP -ksa -fXE -uoo -ieE -ieE -ieE -ieE -ieE -ieE -ieE -ieE -ieE -ieE +fEP +fEP +fEP +fEP uoo fXE ksa -fEP +uoo ksa ksa +uoo ksa ksa +uoo ksa ksa +uoo +ksa +fXE ksa uoo uoo +uoo +xXP +xXP +uoo +xXP +uoo +cpz +cpz +cpz +cpz +nZL fPN -tfS -gtN -npa -iHO -rSo fPN -qPR -fhe -noO -qPR +fAF fPN -vKc -iCB -qPR fPN +nZL +nZL +nZL +aNw +nZL +nZL +nZL +nZL +nZL +nZL +nZL +nZL +nZL +nZL +nZL +nZL +nZL kCF iHO vKc @@ -83697,10 +85383,10 @@ xNd jci wjA mle -oHb +cLs qQT -sui -oMq +uBC +iFy iAi ucP vhN @@ -83769,6 +85455,9 @@ ksa ksa ksa ksa +ndy +uoo +rxc ksa ksa ksa @@ -83794,12 +85483,9 @@ ksa ksa ksa ksa -ksa -ksa -ksa -ksa -ksa -ksa +rxc +uoo +ndy ksa ksa ksa @@ -83858,62 +85544,62 @@ ksa ksa ksa ksa +fEP ksa +uoo ksa +uoo ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -fEP +fXE +uoo +ieE +ieE +ieE +ieE +ieE +ieE +ieE +ieE +ieE +ieE uoo fXE -snl -snl -snl -snl -snl -snl -snl -snl -snl -snl -snl -snl +uoo +uoo fXE +fXE +ahA uoo -fEP -ksa -sQS -ksa -ksa -ksa -ksa -ksa -fEP -ksa -nGn -pEQ -wfE -mlj -iHO -iCB +uoo +cpz +oAe +cpz +qXm +xSJ +tkE +nZL +xnz +vyb +bgY +fhe +eJq fPN +fhe wfE +bJN bvR -wfE -wfE +noO +hjI fPN -wfE -wfE -wfE +fhe +noO +qPR fPN +vKc +fhe +qPR +fPN +fhe wfE iHO rSo @@ -83941,8 +85627,8 @@ vUY qem qem qem -qem -qAk +nBX +uho xIz xxP xeZ @@ -84026,7 +85712,9 @@ ksa ksa ksa ksa +fdt ksa +aVH ksa ksa ksa @@ -84052,7 +85740,9 @@ ksa ksa ksa ksa +aVH ksa +fdt ksa ksa ksa @@ -84085,36 +85775,8 @@ ksa ksa ksa ksa -ksa -ksa -ksa -ksa -"} -(46,1,1) = {" -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +"} +(46,1,1) = {" ksa ksa ksa @@ -84128,24 +85790,10 @@ ksa ksa ksa ksa -fEP ksa -uoo ksa -ieE -ieE -ieE -ieE -ieE -ieE -ieE -ieE -ieE -ieE ksa -uoo ksa -fEP ksa ksa ksa @@ -84154,24 +85802,62 @@ ksa ksa ksa fEP -ksa -nGn -pEQ -iaB -lLW -iHO -iHO -fxI -iHO -iHO -iHO -iHO -fxI -iHO -iHO +uoo +mkV +snl +fXE +fXE +fXE +snl +snl +snl +snl +snl +snl +snl +snl +snl +snl +snl +snl +fXE +fXE +fXE +fXE +vYB +kRu +ahA +tBD +cRg +wdv +qKk +gzX +qAy +oRa +kbD iHO -fxI iHO +mYW +mYW +mYW +ffR +mYW +mYW +bJN +mYW +mYW +mYW +lBu +mYW +mYW +mYW +lBu +mYW +mYW +mYW +lBu +mYW +mYW jef jiS wLw @@ -84200,7 +85886,7 @@ bkM fAf dMC uho -rau +kXx xxP kfe vRV @@ -84211,7 +85897,7 @@ vRV dxq wjA mle -cLs +oHb cjG dlH xrf @@ -84283,7 +85969,9 @@ ksa ksa ksa ksa +fdt ksa +aVH ksa ksa ksa @@ -84309,11 +85997,9 @@ ksa ksa ksa ksa +aVH ksa -ksa -ksa -ksa -ksa +fdt ksa ksa ksa @@ -84372,54 +86058,53 @@ ksa ksa ksa ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -fEP -fEP fEP ksa uoo ksa -ksa uoo ksa -ksa +fXE uoo -ksa -ksa +ieE +ieE +ieE +ieE +ieE +ieE +ieE +ieE +ieE +ieE +uoo +fXE uoo -ksa -fEP -fEP -fEP -ksa -ksa -ksa -ksa -ksa -ksa -ksa uoo +fXE +fXE +ahA uoo +uoo +cpz +oAe +cpz +ogg +mCt +aQt +nZL +lHL +pVv +eMi +ijf +kCF fPN -dQh -wfE -vxd -iHO +bvR +fhe +bJN +vKc +qPR fBi fPN -vKc qPR iCB fhe @@ -84428,8 +86113,9 @@ fhe fBi fBi fPN +kCF qPR -iDb +wfE qPR fPN mXr @@ -84540,7 +86226,9 @@ ksa ksa ksa ksa +fdt ksa +aVH ksa ksa ksa @@ -84566,11 +86254,9 @@ ksa ksa ksa ksa +aVH ksa -ksa -ksa -ksa -ksa +fdt ksa ksa ksa @@ -84629,51 +86315,51 @@ ksa ksa ksa ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP fEP fEP fEP fEP fEP +uoo +fXE ksa +uoo ksa ksa +uoo ksa ksa +uoo ksa ksa +uoo ksa +fXE ksa +uoo +uoo +uoo +uoo +uoo +uoo +xXP +uoo +cpz +cpz +cpz +cpz +nZL fPN fPN fPN fPN fPN fPN -cfC +fPN +fPN +vLR +fPN +fPN fPN fPN fPN @@ -84797,7 +86483,9 @@ ksa ksa ksa ksa +fdt ksa +aVH ksa ksa ksa @@ -84823,11 +86511,9 @@ ksa ksa ksa ksa +aVH ksa -ksa -ksa -ksa -ksa +fdt ksa ksa ksa @@ -84890,26 +86576,24 @@ ksa ksa ksa ksa +fEP ksa +fXE +uoo +ieE +ieE +ieE +ieE +ieE +ieE +ieE +ieE +ieE +ieE +uoo +fXE ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +fEP ksa ksa ksa @@ -84930,10 +86614,12 @@ wOS qYY fPN iOZ -iHO +bJN +eJq +wfE nsB fPN -klx +fPT mTj wZQ imo @@ -84950,7 +86636,7 @@ mWn imo wZQ sSA -aJq +mzj oNL oNL oNL @@ -85054,7 +86740,9 @@ ksa ksa ksa ksa +fdt ksa +aVH ksa ksa ksa @@ -85080,11 +86768,9 @@ ksa ksa ksa ksa +aVH ksa -ksa -ksa -ksa -ksa +fdt ksa ksa ksa @@ -85147,26 +86833,24 @@ ksa ksa ksa ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +fEP +uoo +fXE +snl +snl +snl +snl +snl +snl +snl +snl +snl +snl +snl +snl +fXE +uoo +fEP ksa ksa ksa @@ -85180,33 +86864,35 @@ ksa ksa ksa fEP -uoo +xXP nGn pGM aDR yhT byj -odN -iHO -iHO -aRM -qmK -fCT -fCT -fCT -fCT -fCT -fCT -fCT -fCT -fCT -fCT -fCT -fCT -fCT -fCT -fCT -fCT +bgY +bdG +qpx +rCq +qpx +dyv +jgk +iaB +iaB +iaB +iaB +iaB +iaB +iaB +iaB +iaB +iaB +iaB +iaB +iaB +iaB +iaB +wYA qOB oNL noN @@ -85229,7 +86915,7 @@ qEk vzJ jmh rYz -fhd +iGw gNn aub hBe @@ -85311,7 +86997,9 @@ ksa ksa ksa ksa +fdt ksa +aVH ksa ksa ksa @@ -85337,11 +87025,9 @@ ksa ksa ksa ksa +aVH ksa -ksa -ksa -ksa -ksa +fdt ksa ksa ksa @@ -85404,26 +87090,24 @@ ksa ksa ksa ksa +fEP ksa +uoo ksa +ieE +ieE +ieE +ieE +ieE +ieE +ieE +ieE +ieE +ieE ksa +uoo ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +fEP ksa ksa ksa @@ -85443,8 +87127,10 @@ vDJ kKV sjF fPN -wnn -iHO +wfE +bvR +vKc +dwJ fhe fPN rpe @@ -85463,7 +87149,7 @@ jkJ frx tSN fHK -ldX +ghz vaG oNL oNL @@ -85568,7 +87254,9 @@ ksa ksa ksa ksa +fdt ksa +aVH ksa ksa ksa @@ -85594,11 +87282,9 @@ ksa ksa ksa ksa +aVH ksa -ksa -ksa -ksa -ksa +fdt ksa ksa ksa @@ -85661,14 +87347,24 @@ ksa ksa ksa ksa +fEP +fEP +fEP ksa +uoo ksa ksa +uoo ksa ksa +uoo ksa ksa +uoo ksa +fEP +fEP +fEP ksa ksa ksa @@ -85677,31 +87373,21 @@ ksa ksa ksa ksa +xXP ksa ksa ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +xXP +xXP fPN fPN fPN fPN fPN fPN -cfC +fPN +fPN +gtN fPN fPN xgf @@ -85720,7 +87406,7 @@ mFS mFS jvu xgf -cDu +vam xgf oNL nNO @@ -85750,7 +87436,7 @@ kNg jZY coj pEY -dNc +eVZ sXx fZO cvn @@ -85825,7 +87511,9 @@ ksa ksa ksa ksa +fdt ksa +aVH ksa ksa ksa @@ -85851,11 +87539,9 @@ ksa ksa ksa ksa +aVH ksa -ksa -ksa -ksa -ksa +fdt ksa ksa ksa @@ -85920,6 +87606,20 @@ ksa ksa ksa ksa +fEP +fEP +fEP +fEP +fEP +fEP +fEP +fEP +fEP +fEP +fEP +fEP +fEP +fEP ksa ksa ksa @@ -85927,39 +87627,25 @@ ksa ksa ksa ksa -sQS -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -fEP -fEP -fEP -ksa ksa xXP xXP +fEP +xXP xXP ksa ksa -xXP ksa ksa ksa uoo -uoo +ksa fPN iac sVK nGW -xqr -dKf +kgC +eqm fPN fLf oSm @@ -85977,7 +87663,7 @@ kOr kOr mFS klx -oSm +jta efq oNL oNL @@ -86068,9 +87754,9 @@ dmE amD ksa ksa -xXP +uoo ksa -xXP +uoo ksa ksa ksa @@ -86082,7 +87768,9 @@ ksa ksa ksa ksa +fdt ksa +aVH ksa ksa ksa @@ -86108,7 +87796,9 @@ ksa ksa ksa ksa +aVH ksa +fdt ksa ksa ksa @@ -86141,13 +87831,12 @@ ksa ksa ksa ksa +"} +(54,1,1) = {" ksa ksa ksa ksa -"} -(54,1,1) = {" -ksa ksa ksa ksa @@ -86188,7 +87877,6 @@ ksa ksa ksa ksa -uoo ksa ksa ksa @@ -86196,27 +87884,25 @@ ksa ksa ksa ksa -xXP ksa ksa ksa +fEP ksa -xXP ksa ksa ksa -xXP ksa ksa ksa fEP ksa -nGn -wfE -edD +fPN +kdO +nUx edD kgC -edD +odo fPN slu fCT @@ -86234,7 +87920,7 @@ kOr kOr mFS foP -fCT +npa fjo hYZ fnI @@ -86254,7 +87940,7 @@ lYa ruN xjO uqS -ciA +uKT uKT qHo tkP @@ -86325,9 +88011,9 @@ nZD amD ksa ksa -xXP +uoo ksa -xXP +uoo ksa ksa ksa @@ -86339,7 +88025,9 @@ ksa ksa ksa ksa +fdt ksa +aVH ksa ksa ksa @@ -86365,11 +88053,9 @@ ksa ksa ksa ksa +aVH ksa -ksa -ksa -ksa -ksa +fdt ksa ksa ksa @@ -86440,39 +88126,39 @@ ksa ksa ksa uoo -fEP -fEP -fEP uoo -ksa uoo uoo uoo ksa +uoo +ksa +ksa ksa ksa -xXP -xXP -xXP -xXP -xXP ksa ksa -xXP ksa ksa +ksa +sQS +ksa xXP xXP xXP ksa +xXP +xXP +xXP ksa -fEP ksa +fEP +uoo nGn hda wfE wfE -tcO +kgC qoB fPN adk @@ -86491,7 +88177,7 @@ kOr kOr mFS svQ -fCT +npa jjz hYZ qUQ @@ -86593,7 +88279,45 @@ uoo uoo uoo uoo -uZR +rxc +ksa +ksa +ndy +uoo +rxc +aVH +aVH +aVH +aVH +aVH +aVH +aVH +aVH +aVH +aVH +rxc +aVH +aVH +aVH +rxc +aVH +aVH +aVH +aVH +aVH +aVH +aVH +aVH +aVH +aVH +rxc +uoo +ndy +ksa +ksa +ksa +ksa +ksa ksa ksa ksa @@ -86621,6 +88345,15 @@ ksa ksa ksa ksa +"} +(56,1,1) = {" +ksa +ksa +ksa +ksa +ksa +ksa +ksa ksa ksa ksa @@ -86647,50 +88380,7 @@ ksa ksa ksa ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -"} -(56,1,1) = {" -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +fEP ksa ksa ksa @@ -86699,9 +88389,7 @@ ksa ksa ksa uoo -ksa -ksa -ksa +uoo uoo ksa ksa @@ -86710,8 +88398,6 @@ ksa ksa ksa ksa -xXP -ksa ksa ksa ksa @@ -86723,13 +88409,13 @@ fEP ksa ksa ksa -uoo -uoo -fPN +fEP +ksa +nGn vcW -rEd -iCB -tcO +wfE +cla +kgC hTN fPN oQn @@ -86748,7 +88434,7 @@ kOr kOr mFS lNW -fCT +npa aIp hdC fwn @@ -86853,37 +88539,37 @@ ksa uoo ksa ksa +fdt ksa +uoo ksa ksa +uoo ksa +uoo ksa +uoo ksa +uoo ksa +uoo ksa +aVH ksa +uoo ksa +uoo ksa +uoo ksa +uoo ksa +uoo ksa ksa +uoo ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +fdt ksa ksa ksa @@ -86951,7 +88637,7 @@ ksa ksa ksa ksa -uoo +fEP uoo uoo uoo @@ -86967,7 +88653,7 @@ ksa xXP xXP ksa -xXP +ksa xXP xXP xXP @@ -86980,14 +88666,14 @@ fEP xXP xXP ksa +fEP uoo -ksa -fPN -fPN -fPN -fPN -cfC -fPN +nGn +dIV +wfE +wfE +dwJ +iCB fPN nCB qzQ @@ -87005,20 +88691,20 @@ kOr hAc jvu tQS -qzQ -bMc +kSi +wKG mOB xVB xVB xVB mQZ -pCI -xrJ -xrJ +vgb +kIy +kIy jJk -xrJ -xrJ -oCd +kIy +kIy +nUm xhs ygZ kos @@ -87028,7 +88714,7 @@ scf jlA sQH kKh -kKh +mtN iXy quZ dgT @@ -87110,37 +88796,37 @@ ksa uoo ksa ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +fdt +fdt +fdt +xXP +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +aVH +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +xXP +fdt +fdt +fdt ksa ksa ksa @@ -87208,7 +88894,7 @@ ksa ksa ksa ksa -uoo +fEP ksa ksa ksa @@ -87237,14 +88923,14 @@ fEP ksa ksa ksa -uoo -uoo -fPN -xYt -wfE -wfE -iHO -vKc +fEP +ksa +nGn +tLv +edD +edD +kgC +cRQ fPN xRs fCT @@ -87275,7 +88961,7 @@ tsw pMB tux qTI -hpl +nyL vFV wfR kos @@ -87284,7 +88970,7 @@ ezf uey jlA sQH -sRt +wtt jzq skl dlj @@ -87369,33 +89055,33 @@ ksa ksa ksa ksa +fdt ksa ksa +uoo +xpD +xpD +xpD +xpD +xpD +xpD +xpD +uoo ksa +aVH ksa +uoo +xpD +xpD +xpD +xpD +xpD +xpD +xpD +uoo ksa ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +fdt ksa ksa ksa @@ -87465,43 +89151,43 @@ ksa ksa ksa ksa +uoo ksa -ksa -ksa +sQS ksa uoo uoo uoo ksa -ksa +uoo ksa ksa uoo uoo xXP -xXP -xXP -xXP +fEP +fEP +fEP xXP ksa ksa ksa -xXP ksa ksa ksa xXP -ksa +xXP +xXP ksa ksa fEP -ksa +uoo nGn +akb wfE -eJq -noO -iHO -iCB +wfE +kgC +sCb fPN idJ fCT @@ -87621,38 +89307,38 @@ vuH cPI saV uoo -uZR -ksa -nAS -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +rxc ksa ksa ksa ksa +fdt +uoo +uoo +uoo +xpD +xpD +xpD +hyK +xpD +xpD +xpD +aVH +aVH +aVH +aVH +aVH +xpD +xpD +xpD +djJ +xpD +xpD +xpD +uoo +uoo +uoo +fdt ksa ksa ksa @@ -87722,13 +89408,13 @@ ksa ksa ksa ksa +uoo ksa ksa ksa ksa ksa -ksa -uoo +fEP ksa ksa ksa @@ -87753,11 +89439,11 @@ ksa ksa fEP ksa -nGn -dae -wfE +fPN wfE -iHO +bYM +pEQ +kgC qPR fPN slu @@ -87783,7 +89469,7 @@ eJG clg rqa hYZ -jTy +ufl juk tYl ptq @@ -87793,7 +89479,7 @@ yfi kxo wfR kos -hZp +epk ezf vkz dbO @@ -87817,7 +89503,7 @@ rCa uGS wNw emg -sJH +ohF pig wKV uGS @@ -87883,33 +89569,33 @@ ksa ksa ksa ksa +fdt ksa ksa +uoo +xpD +xpD +xpD +xpD +xpD +xpD +xpD +uoo ksa +aVH ksa +uoo +xpD +xpD +xpD +xpD +xpD +xpD +xpD +uoo ksa ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +fdt ksa ksa ksa @@ -87974,7 +89660,6 @@ ksa ksa uoo ksa -sQS ksa ksa ksa @@ -87985,7 +89670,8 @@ ksa ksa ksa ksa -uoo +ksa +fEP ksa ksa ksa @@ -88009,12 +89695,12 @@ ksa ksa ksa uoo -uoo +ksa fPN +xYt eQk -eQk -wfE -iHO +rWW +dwJ qPR fPN rpe @@ -88050,7 +89736,7 @@ qZj qZj rEP kos -epk +hZp ezf tkR agv @@ -88140,33 +89826,33 @@ ksa ksa ksa ksa +fdt ksa ksa +uoo +uoo +uoo +uoo +aVH +uoo +uoo +uoo +uoo +uoo +aVH +uoo +uoo +uoo +uoo +uoo +aVH +uoo +uoo +uoo +uoo ksa ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +fdt ksa ksa ksa @@ -88251,17 +89937,17 @@ ksa ksa ksa ksa +fdt +fdt +fdt fEP +fdt +fdt +fdt fEP -fEP -ksa -fEP -fEP -fEP -ksa -fEP -fEP -fEP +fdt +fdt +fdt ksa ksa ksa @@ -88271,7 +89957,7 @@ fPN fPN fPN fPN -cfC +gtN fPN fPN xgf @@ -88326,7 +90012,7 @@ juc kgn kgn nJa -tJE +xqS pEY gtA wuS @@ -88397,33 +90083,33 @@ ksa ksa ksa ksa +fdt ksa ksa +uoo +xpD +xpD +xpD +xpD +xpD +xpD +xpD +uoo ksa +aVH ksa +uoo +xpD +xpD +xpD +xpD +xpD +xpD +xpD +uoo ksa ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +fdt ksa ksa ksa @@ -88488,7 +90174,7 @@ ksa ksa uoo ksa -ksa +sQS ksa uoo ksa @@ -88527,15 +90213,15 @@ oUr nGn aSJ uzT -mlj -iHO +wfE +dwJ vKc fPN fLf oSm wZQ gkw -umJ +koP qiw jvu jFv @@ -88569,7 +90255,7 @@ ezf cbh qmB sQH -eHO +dGM eHO neo jUD @@ -88633,9 +90319,9 @@ tuu sbg wEB ksa -uoo ksa -uoo +ksa +ksa ksa ksa uoo @@ -88649,40 +90335,40 @@ uoo uoo uoo uoo -uoo -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +rxc ksa ksa +nAS ksa +fdt +uoo +uoo +uoo +xpD +xpD +xpD +nqJ +xpD +xpD +xpD +aVH +aVH +aVH +aVH +aVH +xpD +xpD +xpD +hxE +xpD +xpD +xpD +uoo +uoo +uoo +fdt ksa +nAS ksa ksa ksa @@ -88735,7 +90421,7 @@ ksa ksa ksa ksa -ksa +sQS ksa uoo uoo @@ -88783,22 +90469,22 @@ iUx hPN lho wfE -wfE -wfE +lLW +vxd +dwJ iHO -wfE -kIy -lNW +aRM +qmK fCT fCT fCT fCT bMc lUT -lor +qmK mrI -lor -lor +fCT +bMc lUT qmK fCT @@ -88813,7 +90499,7 @@ mvb nIP ufl juk -qNB +hpl qZj lVj rfo @@ -88821,7 +90507,7 @@ jbQ qZj kNn bdl -epk +aMo ezf bnL wuk @@ -88848,7 +90534,7 @@ xAQ tQJ ctk pAW -uRU +pml bnl cLZ fUs @@ -88890,14 +90576,8 @@ tuu lXL saV ksa -uoo -ksa -uoo ksa ksa -uoo -ksa -uoo ksa ksa ksa @@ -88906,25 +90586,10 @@ ksa uoo ksa ksa -uoo -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa ksa +uoo ksa +uoo ksa ksa ksa @@ -88932,12 +90597,33 @@ ksa ksa ksa ksa +fdt ksa ksa +uoo +xpD +xpD +xpD +xpD +xpD +xpD +xpD +uoo ksa +aVH ksa +uoo +xpD +xpD +xpD +xpD +xpD +xpD +xpD +uoo ksa ksa +fdt ksa ksa ksa @@ -88991,7 +90677,7 @@ ksa ksa ksa ksa -sQS +ksa ksa ksa ksa @@ -89025,11 +90711,11 @@ ksa ksa xXP ksa -ksa -ksa xXP ksa +xXP ksa +xXP ksa xXP ksa @@ -89041,11 +90727,11 @@ ncV nGn xkQ giZ -lLW +wfE ita qkB fPN -ghV +oUu kfa fHK fHK @@ -89053,16 +90739,16 @@ ldX btf jvu wlT -maC -maC +fHK +fHK fEm jvu ghV -inK +ldX fHK fHK -ldX -btf +pIw +iZv rOt rOt rOt @@ -89105,7 +90791,7 @@ sjV fzI uQP ohF -crP +wbw bnl wgX fUs @@ -89146,28 +90832,21 @@ gAH tuu jgH saV -uoo -uoo -uoo -uoo ksa ksa -uoo -ksa -uoo ksa ksa ksa -uoo ksa uoo ksa -ksa uoo ksa ksa ksa +uoo ksa +uoo ksa ksa ksa @@ -89175,26 +90854,33 @@ ksa ksa ksa ksa +fdt ksa ksa +uoo +uoo +uoo +uoo +aVH +uoo +uoo +uoo +uoo +uoo +aVH +uoo +uoo +uoo +uoo +uoo +aVH +uoo +uoo +uoo +uoo ksa ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +fdt ksa ksa ksa @@ -89282,11 +90968,11 @@ ksa ksa xXP ksa -ksa -ksa xXP ksa +xXP ksa +xXP ksa xXP ksa @@ -89299,18 +90985,15 @@ fPN fPN fPN fPN -cfC -fPN -fPN -fPN +gtN fPN fPN -gCR -opr -gCR oHl oHl oHl +gCR +opr +gCR oHl oHl oHl @@ -89320,6 +91003,9 @@ oHl gCR xWm gCR +oHl +oHl +oHl rOt fAq pUT @@ -89335,7 +91021,7 @@ bLX ugM wfR kos -qcS +epk sDz rNA jQu @@ -89362,7 +91048,7 @@ juc juc juc ohF -kcN +oMD bnl cLZ fUs @@ -89404,29 +91090,6 @@ tuu lVZ saV ksa -uoo -ksa -uoo -ksa -ksa -uoo -ksa -uoo -ksa -ksa -ksa -uoo -ksa -uoo -ksa -ksa -uoo -ksa -ksa -ksa -ksa -ksa -ksa ksa ksa ksa @@ -89438,7 +91101,9 @@ ksa ksa ksa ksa +uoo ksa +uoo ksa ksa ksa @@ -89446,12 +91111,33 @@ ksa ksa ksa ksa +fdt ksa ksa +uoo +xpD +xpD +xpD +xpD +xpD +xpD +xpD +uoo ksa +aVH ksa +uoo +xpD +xpD +xpD +xpD +xpD +xpD +xpD +uoo ksa ksa +fdt ksa ksa ksa @@ -89538,13 +91224,13 @@ ksa ksa ksa fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP +xXP +giM +giM +ybj +giM +giM +xXP fEP ksa ksa @@ -89559,23 +91245,23 @@ aZe qRD pBu fPN -aKf -aKf -fPN wTz +aKf +uUa +uUa kzX uUa fFP kJs -gmN -suM tfb oPp qPS -uDm -fFP +hRV uUa kzX +uUa +uUa +aKf xZj rOt sLn @@ -89592,16 +91278,16 @@ jgu ugM eeV kos -daT +fdb sDz roS +bGK vbq -vbq -vbq +tku atW sDz sqj -nBX +pzt jZY erS rRm @@ -89677,38 +91363,38 @@ eZG eZG eZG uoo -uoo -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +rxc ksa ksa ksa ksa +fdt +uoo +uoo +uoo +xpD +xpD +xpD +iHZ +xpD +xpD +xpD +aVH +aVH +aVH +aVH +aVH +xpD +xpD +xpD +huZ +xpD +xpD +xpD +uoo +uoo +uoo +fdt ksa ksa ksa @@ -89775,7 +91461,6 @@ ksa ksa uoo ksa -ksa uoo ksa ksa @@ -89794,13 +91479,14 @@ ksa ksa ksa ksa -fEP -ksa -xXP ksa -xXP +fEP ksa -xXP +giM +qgq +did +qgq +giM ksa fEP ksa @@ -89808,7 +91494,7 @@ ksa ksa ksa ksa -xXP +ksa fEP xXP nGn @@ -89816,10 +91502,10 @@ mqN oKS xVA fPN -fPN -fPN -fPN -tCM +jHN +rtE +rtE +rtE xRO xRO fVY @@ -89830,9 +91516,9 @@ lbC rGL xRO xRO -xRO -xRO -xRO +rtE +rtE +rtE kZf rOt hPs @@ -89854,7 +91540,7 @@ mVa nJk dNr nJk -nJk +mDE nJk dUc rfl @@ -89939,33 +91625,33 @@ ksa ksa ksa ksa +fdt ksa ksa +uoo +xpD +xpD +xpD +xpD +xpD +xpD +xpD +uoo ksa +aVH ksa +uoo +xpD +xpD +xpD +xpD +xpD +xpD +xpD +uoo ksa ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +fdt ksa ksa ksa @@ -90032,7 +91718,6 @@ fEP fEP fEP ksa -ksa uoo fEP fEP @@ -90052,11 +91737,12 @@ fEP fEP fEP fEP +fEP xXP giM -giM -giM -giM +mRx +mRx +mRx giM xXP fEP @@ -90066,31 +91752,31 @@ fEP fEP xXP xXP -ksa +xXP ksa nGn xWa jDz pBu fPN -aKf -aKf -fPN -did -xRO +ija +rtE +rtE pvu +xRO +pkC bEF qZo ydo qzZ nYb jHN -pvu +bCh kGr +pvu rtE rtE -rtE -isM +juU rOt rOt rOt @@ -90128,7 +91814,7 @@ xVa iJX toh tQo -toh +ltg hFW xVa wZh @@ -90185,7 +91871,7 @@ sVP dYQ mYY aXn -xvT +qTs efp mqm fMq @@ -90196,33 +91882,33 @@ ksa ksa ksa ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +fdt +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +aVH +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +fdt ksa ksa ksa @@ -90289,7 +91975,6 @@ ksa ksa uoo ksa -ksa uoo ksa uoo @@ -90301,19 +91986,20 @@ ksa xXP ksa ksa +xXP ksa ksa ksa ksa -ksa +xXP ksa ksa xXP ksa giM -bNe -eWP -hdm +qgq +mRx +qgq giM ksa xXP @@ -90324,36 +92010,36 @@ xXP ksa ksa ksa +ksa fPN fPN -fPN -cfC -fPN -fPN -fPN +eKg fPN fPN -ubE +qcu +rtE +rtE +rtE xRO -gag +ubE bEF -eqm +nAW nGg brd aux jHN -bCh +lZR fRq -hRV -vqk rtE -vZu +rtE +rtE +isM gjH nGG nIa osY gjH -eDT +ufl juk hpl jvN @@ -90368,7 +92054,7 @@ mVa nJk nJk wLv -wPM +nJk nJk mVa rfl @@ -90383,10 +92069,10 @@ iXU hHH xVa hcK -ydB -wev -pmv +ghS +rFb pmv +xLc xVa bcq aEh @@ -90394,7 +92080,7 @@ pGS bnl ohG fUs -cdP +wji bnl rSP cLZ @@ -90408,7 +92094,7 @@ fUs cLZ dEs bnl -biQ +thf cfP tcw wEB @@ -90448,12 +92134,7 @@ xLD dFC eZG uoo -uZR -ksa -ksa -ksa -ksa -ksa +rxc ksa ksa ksa @@ -90462,11 +92143,16 @@ ksa ksa ksa ksa +uoo ksa +uoo ksa +uoo ksa +uoo ksa ksa +aVH ksa ksa ksa @@ -90546,7 +92232,6 @@ ksa ksa uoo ksa -ksa uoo ksa uoo @@ -90568,9 +92253,11 @@ wZx wZx wZx wZx -xgX -mRx -qgq +ybj +aBX +ggV +aBX +ybj ybj ybj ybj @@ -90583,26 +92270,25 @@ ksa ksa nGn fBi -wfE -iHO -wfE -kCF -qMF -aUL +dwJ +fhe fPN -nHH +clS +rtE +rtE +rtE xRO -dwh +nHH bEF nAW nPI -xKR +nGg aux jHN -jvO -kGr -juU -avD +xKR +tCM +rtE +rtE rtE gXm gjH @@ -90629,7 +92315,7 @@ ppi mJa sDz fWt -kha +pzt jZY gdm tpO @@ -90638,12 +92324,12 @@ pWG iay pWG vqJ -hoq +ydB sWm +gNO bia -bia -sWm -sWm +wAX +gnd hoq sjw nKV @@ -90664,7 +92350,7 @@ fUs fUs fUs fUs -eVz +klF tuu tuu tuu @@ -90714,18 +92400,18 @@ ksa ksa ksa ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +sxb +sxb +uoC +uoC +uoC +sxb +sxb +iCE +uoo +aVH +uoo +fdt ksa ksa ksa @@ -90809,7 +92495,6 @@ ksa ksa ksa ksa -ksa fEP ksa wZx @@ -90825,9 +92510,11 @@ bXU jIr nxD bXU -oWq +eLo +qgq mRx -kxd +qgq +gNS cbB gJK uoF @@ -90840,27 +92527,26 @@ xXP xXP nGn rMn +dwJ wfE -iHO -iHO -iHO -iHO -iHO -luq -hbX -xRO +fPN +ija +rtE +rtE pvu +xRO +vwt bEF oOX rdQ xXh jcG jHN +jvO +tCM pvu rtE rtE -rtE -rtE xlQ gjH tiN @@ -90896,19 +92582,19 @@ wEt wEt vkX xVa -xLc +wOD sYt rFb gHs -wOD +mOJ xVa mOc dZF xzZ bnl -bOO +uKO kSL -bOO +uKO bnl jEi jEi @@ -90971,18 +92657,18 @@ ksa ksa ksa ksa +sxb +aNC +fho +xqV +xqV +fak +sxb +uoo ksa +aVH ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +fdt ksa ksa ksa @@ -91050,8 +92736,6 @@ ksa ksa ksa ksa -ksa -ksa uoo ksa ksa @@ -91068,6 +92752,7 @@ fEP fEP fEP fEP +fEP xXP wZx rpd @@ -91082,9 +92767,11 @@ bXU gbn aSP bXU +iOi xAx ipb rDd +rDd lfm rAH bhf @@ -91093,19 +92780,18 @@ bhf lBB ybj xXP -fEP +xXP ksa nGn dQh -wfE -wfE -vKc -eJq -iHO -iOZ -fPN -jHN -rtE +xqr +qpx +luq +hbX +xRO +xRO +xRO +xRO rtE xFj uUa @@ -91143,7 +92829,7 @@ fPN fPN fPN fPN -esS +gIY jZY erS rRm @@ -91153,17 +92839,17 @@ wEt mBp otK xVa -laO +tCb dPD bGd etV -tCb +hzA xVa pnC qiT kDx bnl -rGg +cLZ kSL rmn bnl @@ -91219,19 +92905,7 @@ qgD eZG eZG uoo -uoo -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +rxc ksa ksa ksa @@ -91240,6 +92914,18 @@ ksa ksa ksa ksa +sxb +uZR +hXf +fVP +hXf +sKS +hLk +vCp +vCp +vCp +uoo +fdt ksa ksa ksa @@ -91305,8 +92991,6 @@ ksa ksa ksa ksa -ksa -ksa uoo ksa uoo @@ -91326,6 +93010,7 @@ uoo ksa xXP ksa +ksa wZx oaC kVF @@ -91339,9 +93024,11 @@ bXU cnP vzd bXU +umJ qgq ipb qgq +xRl cbB riF diY @@ -91353,28 +93040,27 @@ ksa ksa ksa fPN -nGn -nGn -nGn -fPN -fPN -cfC -fPN +aZn +iYK +eJq fPN -lBC +xWi +eWP +iXp +peS iRs pXd -iXp +eWP cgG wmY vss -cgG -iXp +maC +eWP pXd iRs peS iXp -iXp +eWP vrc oHl ksa @@ -91392,7 +93078,7 @@ pWi hqv rpJ uRq -sXl +uRq uRq vtJ vcC @@ -91449,7 +93135,7 @@ vrf vrf kVX wEB -tcw +whJ nQn uut uut @@ -91464,10 +93150,10 @@ ksa ksa ksa ksa -xXP ksa xXP ksa +xXP ksa eZG nAM @@ -91476,16 +93162,6 @@ uRe eZG ksa ksa -uoo -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa ksa ksa ksa @@ -91495,8 +93171,18 @@ ksa ksa ksa ksa +sxb +eGu +idr +idr +idr +mzC +sxb +uoo ksa +vCp ksa +fdt ksa ksa ksa @@ -91561,8 +93247,6 @@ ksa ksa ksa ksa -sQS -ksa uoo uoo uoo @@ -91583,6 +93267,7 @@ uoo ksa ybj giM +giM wZx aRy bXU @@ -91596,6 +93281,7 @@ bXU ujZ bXU bXU +cbB fTm ipb vCn @@ -91605,18 +93291,18 @@ cbB cbB cbB cbB +cbB ybj ksa ksa ksa -ksa -xXP -ksa -ksa nGn -ggV -iHO -vKc +wfE +iYK +bvR +fPN +fPN +fPN fPN fPN fPN @@ -91645,7 +93331,7 @@ fPN fPN fPN fPN -iYK +dae nZL nZL nZL @@ -91742,18 +93428,18 @@ fdt ksa ksa ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +sxb +sxb +sxb +iUd +sxb +sxb +sxb +iCE +uoo +vCp +uoo +fdt ksa ksa ksa @@ -91821,8 +93507,6 @@ ksa ksa ksa ksa -ksa -ksa fEP ksa xXP @@ -91840,21 +93524,24 @@ cZs cZs wZx doA +qgq onH xJb vUA ihP xJb qgq -onH +thx xJb qgq ggk xJb -xuA +qgq +bpE utG qgq ipb +qgq xKq bXU vXf @@ -91864,22 +93551,21 @@ irp kWN wZx ksa -ksa -ksa -ksa -xXP xXP xXP nGn -wfE -iHO -iHO +wfb +bqU +vcC +bqi +qpx +qpx +qpx psO -uBX -iHO -iHO -iHO -iHO +qpx +qpx +qpx +hBg nGn ksa ksa @@ -91887,8 +93573,8 @@ ksa ksa ksa ksa -xXP ksa +xXP ksa xXP ksa @@ -91900,7 +93586,7 @@ ksa ksa ksa ksa -xXP +ksa nGn iYK vtP @@ -91955,7 +93641,7 @@ hNX nMp wEB cfP -biQ +cuU iQd wEB cfP @@ -91963,7 +93649,7 @@ cuU nwz tcw wEB -tcw +xFe nQn uut uut @@ -92000,15 +93686,15 @@ ksa ksa ksa ksa +sxb +umW +iLC +fzZ +sxb ksa +uoo ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +vCp ksa ksa ksa @@ -92075,9 +93761,7 @@ ksa ksa ksa ksa -ksa -ksa -ksa +sQS ksa xXP fEP @@ -92089,13 +93773,13 @@ fEP uoo wZx cYs -eLo +jkE dot -fgg +bYZ los rdn los -iAT +ugn jou jou jou @@ -92109,10 +93793,13 @@ jou jou jou jou +jou +jou tsL jou tvX lMT +lMT wMO tRU gWz @@ -92120,23 +93807,22 @@ itd lIO jEY wZx -fEP -xXP -xXP xXP xXP ksa -ksa nGn -wfE +hjI +dwh fhe -dae fPN -dKf -vKc -wfE fhe -iHO +uDm +qPR +fPN +wfE +eqm +wfE +dwJ nGn ksa ksa @@ -92144,8 +93830,8 @@ ksa ksa ksa ksa -xXP ksa +xXP ksa xXP ksa @@ -92157,7 +93843,7 @@ ksa ksa ksa ksa -xXP +ksa nGn eGT vtP @@ -92171,8 +93857,8 @@ poG poG bVI kpr -rWZ -ley +fZK +pjD bMh rRm kbB @@ -92257,15 +93943,15 @@ ksa ksa ksa ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +sxb +krJ +kND +rPY +sxb +uoo +jra +vCp +vCp ksa ksa ksa @@ -92335,8 +94021,6 @@ ksa ksa ksa ksa -ksa -ksa fEP ksa ksa @@ -92354,7 +94038,8 @@ cZs cZs wZx lhk -hXf +qgq +flr xJb qgq iFb @@ -92365,11 +94050,13 @@ xJb qgq xhf xJb +qgq knr utG qgq jou qgq +xRl bXU xfT paw @@ -92380,20 +94067,19 @@ wZx ksa ksa ksa -ksa -ksa -ksa -ksa fPN -nGn -nGn -nGn fPN fPN fPN fPN fPN -iHO +fPN +fPN +fPN +fPN +fPN +qMF +dwJ nGn xXP xXP @@ -92401,19 +94087,19 @@ xXP xXP xXP xXP +fPN nGn nGn nGn -nGn -fPN -fPN -fPN fPN +nGn +nGn +nGn fPN -ksa -ksa -ksa -ksa +xXP +xXP +xXP +xXP xXP nGn eGT @@ -92468,7 +94154,7 @@ jay sbg wEB cNm -thf +vrf nwz vrf wEB @@ -92478,8 +94164,8 @@ nwz cfP wEB vrf -nwz -eUB +evJ +dON wEB sbg nwz @@ -92514,15 +94200,15 @@ ksa ksa ksa ksa +sxb +uMx +idr +wRh +sxb ksa +uoo ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +aVH ksa ksa ksa @@ -92590,8 +94276,6 @@ ksa ksa ksa ksa -ksa -ksa uoo uoo fEP @@ -92611,6 +94295,7 @@ uoo ksa ybj giM +giM wZx gSu bXU @@ -92624,9 +94309,11 @@ bXU ukT bXU bXU -acE -jou +cbB qgq +jou +vCn +cbB dOS dOS dOS @@ -92639,32 +94326,31 @@ ksa ksa ksa ksa -ksa -ksa -ksa -ksa xXP ksa -nGn -fBi +fPN +vKc fNF bAg +fBi +fhe +fPN +wfE +dwJ fPN -iHO -nGn -nGn nGn nGn nGn nGn nGn nGn +fPN fhe ydN nVu dUu rSo -iBz +dhd hcB fPN nGn @@ -92685,7 +94371,7 @@ oMz poG dBd kpr -fZK +rWZ pjD qvY rRm @@ -92735,15 +94421,15 @@ cwN nwz kpn nwz -cuU -nwz +eFB +evJ jke -nwz -nwz -nMp +evJ +evJ +evJ tuu tuu -lTk +wrT vHk vHk lhd @@ -92763,7 +94449,7 @@ emI oyi oyi oyi -arP +lfx vcG ksa fdt @@ -92771,15 +94457,15 @@ ksa ksa ksa ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +sxb +sxb +uoC +sxb +sxb +uoo +uoo +uoo +aVH ksa ksa fdt @@ -92845,8 +94531,6 @@ ksa ksa ksa ksa -ksa -ksa uoo uoo uoo @@ -92868,6 +94552,7 @@ uoo ksa uoo ksa +ksa wZx fwb gey @@ -92881,9 +94566,11 @@ bXU fwb wxS bXU +eLo qgq jou -mVH +qgq +xRl dOS sOa lsx @@ -92892,10 +94579,6 @@ vde rCE oxa ksa -lws -lws -lws -ksa ksa ksa ksa @@ -92905,31 +94588,34 @@ xXP nGn wfE wfE -fhe +wfE +wfE +wfE shu -iHO -iHO -iHO -iHO -iHO -iHO -iHO -iHO +bvR +wLa tqH +qpx +qpx +qpx +qpx +qpx +qpx +psO +aKl +aKl aKl -tcO -tcO omw -iHO +qpx tvK qpx -cqF +puy qpx qpx qpx qpx qpx -puy +cqF aIy vtP sMr @@ -92943,7 +94629,7 @@ xRA lsE hSi qLz -pjD +ydz dYc rRm rRm @@ -92997,7 +94683,7 @@ jgH wEB jAw cuU -nwz +nMp nwz vrf xUa @@ -93028,15 +94714,15 @@ ksa ksa ksa ksa +uoo ksa +uoo ksa +uoo ksa ksa ksa -ksa -ksa -ksa -ksa +aVH ksa ksa ksa @@ -93104,8 +94790,6 @@ ksa ksa ksa ksa -ksa -ksa uoo ksa ksa @@ -93124,6 +94808,7 @@ fEP fEP fEP fEP +fEP uoo wZx hcq @@ -93138,43 +94823,44 @@ bXU hcq xTT bXU +bNe hmF jou lMT +lMT eGa shm uBD eCJ sjs -kFK +vqk oxa -pSA -nIG -nIG -nIG -pSA +fEP +fEP +fEP xXP -fdt -ksa ksa xXP ksa -nGn +fPN +fhe fBi -fNF qPR +fNF +dKf fPN +wfE iHO +fPN nGn nGn nGn nGn nGn nGn -nGn -nGn +fPN wfb -fQI +edD ahi jyE aYn @@ -93201,7 +94887,7 @@ dBd kpr rWZ pjD -jHm +erS lea vNB mPm @@ -93285,15 +94971,15 @@ ksa ksa ksa ksa +fdt +fdt +fdt +fdt +fdt ksa ksa ksa -ksa -ksa -ksa -ksa -ksa -uoo +aVH uoo uoo uoo @@ -93367,7 +95053,6 @@ ksa ksa ksa ksa -uoo ksa ksa ksa @@ -93395,24 +95080,22 @@ bXU bsx pZX bXU -fTm +umJ +qgq jou qgq +gmN dOS nKe pOH goR kcr -gNS uQv -pSA -lZR -evu -pzX -qcu +oxa ksa -fdt +lws ksa +xXP ksa xXP ksa @@ -93421,6 +95104,9 @@ fPN fPN fPN fPN +fPN +fPN +qMF iHO nGn xXP @@ -93429,7 +95115,7 @@ xXP xXP xXP xXP -nGn +fPN nGn nGn nGn @@ -93438,10 +95124,10 @@ fPN qUd fPN fPN -ksa -ksa -ksa -ksa +xXP +xXP +xXP +xXP xXP nGn spv @@ -93550,14 +95236,14 @@ ksa ksa ksa ksa -uoo +aVH ksa ksa ksa fOA eTq jVU -lwj +tMQ aHT aHT aHT @@ -93624,7 +95310,6 @@ ksa ksa ksa ksa -uoo ksa ksa fEP @@ -93643,6 +95328,7 @@ wZx wZx wZx wZx +wZx bXU bXU bXU @@ -93651,11 +95337,11 @@ bXU bXU bXU bXU -bXU +cbB aBX xhP aBX -dOS +cbB dOS dOS dOS @@ -93663,21 +95349,21 @@ dOS dOS dOS pSA -aZn +rws bxZ rws pSA xXP -fdt -ksa -ksa xXP ksa fPN kCF -xRl +wfE +nIG +wfE epA fPN +wfE iHO nGn ksa @@ -93699,7 +95385,7 @@ ksa ksa ksa ksa -xXP +ksa nGn spv vtP @@ -93713,7 +95399,7 @@ poG poG bVI kpr -rWZ +qcS pjD erS ocD @@ -93807,14 +95493,14 @@ ksa ksa ksa ksa -uoo +aVH ksa ksa ksa fOA rHT -xpD -xpD +uwr +cIL aHT uoo uoo @@ -93878,12 +95564,11 @@ ksa ksa ksa ksa -ksa +uoo ksa ksa uoo ksa -ksa fEP uoo uoo @@ -93898,6 +95583,7 @@ fEP ksa uoo ksa +uoo ksa aeM joc @@ -93921,20 +95607,20 @@ qgq qgq pSA lGK -wsq +evu gKA -qcu -ksa -fdt -ksa +pSA ksa xXP ksa nGn +avD +pzX +lor wfE tLv -wfE fPN +wfE iHO nGn ksa @@ -93956,7 +95642,7 @@ ksa ksa ksa ksa -xXP +ksa nGn iHO vtP @@ -94036,7 +95722,7 @@ bsX mDv twO wCD -cHh +vQf gct eKr bsK @@ -94064,13 +95750,13 @@ ksa ksa ksa ksa -uoo +aVH ksa ksa ksa fOA cLY -xpD +tfS xpD aHT uoo @@ -94135,12 +95821,11 @@ ksa ksa ksa ksa -ksa +uoo ksa ksa fEP ksa -ksa fEP ksa uoo @@ -94152,6 +95837,7 @@ uoo ksa ksa fEP +fEP uoo uoo uoo @@ -94177,21 +95863,21 @@ lMT lMT dOa pSA -jbA -dmc -jbA +hdm +wsq +uza pSA -xXP -fdt -ksa ksa xXP xXP nGn +acE gtP bCK -qVi +eJq +wfE tpk +bvR iHO nGn ksa @@ -94215,7 +95901,7 @@ ksa ksa ksa fPN -iHO +snK nZL nZL nZL @@ -94295,7 +95981,7 @@ wCD wCD nhq kHh -oPA +oLh oPA oPA uHh @@ -94320,10 +96006,10 @@ ksa ksa ksa fdt -fdt -noh -fdt -fdt +xXP +aVH +xXP +xXP uoo fOA aHT @@ -94391,12 +96077,11 @@ ksa ksa ksa ksa -ksa uoo uoo uoo -fEP uoo +fEP uoo uoo ksa @@ -94408,6 +96093,7 @@ ksa ksa ksa ksa +ksa fEP ksa ksa @@ -94432,23 +96118,23 @@ qgq xUO qgq lMT -mVH +qgq pSA -sLh -pWO -kJy +jbA +eLA +jbA pSA ksa -ksa -ksa -ksa xXP ksa nGn +avD +wfE +uDm vxJ hjc -jkE fPN +wfE iHO nGn ksa @@ -94479,14 +96165,14 @@ iHO iHO iHO spv -xgY +iHO iHO iHO cCv pDC gyp pjD -nvt +coj ksa ksa ksa @@ -94516,7 +96202,7 @@ kLu kLu cGh kLu -exO +qmb dZE wHQ nwz @@ -94550,9 +96236,9 @@ pIs mDv ygq wCD -cHh +vQf krW -oPA +oLh bff tYy kZD @@ -94578,7 +96264,7 @@ ksa ksa fdt ksa -uoo +aVH ksa ksa ksa @@ -94654,12 +96340,12 @@ ksa ksa fEP ksa -ksa uoo ksa uoo ksa ksa +ksa fEP fEP fEP @@ -94691,21 +96377,21 @@ fTm lMT qgq pSA -jbA -gyg -jbA +sLh +pWO +kJy pSA ksa -ksa -ksa -ksa xXP ksa fPN kCF -nEI -kCF +wfE +vZu +wfE +fBi fPN +wfE iHO nGn ksa @@ -94725,7 +96411,7 @@ nGn ksa nTn ksa -xXP +hHw hHw hHw nZL @@ -94743,7 +96429,7 @@ nZL nZL esS pjD -fPs +lFa ksa ksa ksa @@ -94948,9 +96634,9 @@ qgq lMT qgq pSA -uza -jNJ -iOi +jbA +bck +jbA pSA pSA pSA @@ -94962,7 +96648,7 @@ fPN fPN fPN fPN -fPN +qMF iHO nGn ksa @@ -94983,16 +96669,16 @@ ksa ksa ksa hHw -hHw +pSW oZV mQA tve -pji -bFF -bzS +nga +cAR +fiB uth -rzi -eWd +bzS +cAR gcz rlQ ipd @@ -95041,12 +96727,12 @@ nwz cQY cfP xUa -xzN +vnP bsX bsX llR bsX -frw +iuo xzN bsX bsX @@ -95206,8 +96892,8 @@ lMT qgq pSA cKv -eil -vBx +jNJ +nEI lrv vjY wUx @@ -95215,9 +96901,9 @@ faw uLK uuh nZL -rSo +qPR eer -noO +bvR iHO iHO iHO @@ -95225,7 +96911,7 @@ nGn ksa ksa rBi -kAc +vHb rBi ksa rBi @@ -95241,18 +96927,18 @@ ksa ksa hHw dzl -tKp -cJf +uNM +uNM orz kgO lDG -uNM -gWi -uNM -teq +lDG +lDG +lDG +lDG wwO oLb -foK +oLb oLb exf aUs @@ -95298,8 +96984,8 @@ wqv wEB wEB xUa -bsX -lyv +fqx +xzN bsX pHd iko @@ -95458,7 +97144,7 @@ pxB urW gUl mWi -qgq +aUL lMT qgq pSA @@ -95476,9 +97162,9 @@ qPR wfE wfE iHO -fhe +bvR eJq -fPN +nGn xXP xXP rBi @@ -95493,24 +97179,24 @@ xXP nGn iYK nGn -xXP +ksa ksa ksa hHw -pKw +bvc nIt -dMl +jya yjL +nga oqP -oqP -tYO -tYO tYO +tNO +oMq xNz gcz -gcz -gcz -gcz +hZj +ijj +qth gcz azm pjD @@ -95555,15 +97241,15 @@ wAE feW iNG xUa +qSw bsX -fqx pIs xYn -xzN -iuo +bsX +frw pIs bsX -iuo +bsX bsX pIs iuo @@ -95612,7 +97298,7 @@ ksa ksa fOA apJ -xpD +tfS xpD aHT uoo @@ -95701,7 +97387,7 @@ uoo mtq cCf nCu -mEQ +ogz xCo cCf cCf @@ -95721,7 +97407,7 @@ qgq pSA doH sEr -pIw +vBx lrv hzc uCi @@ -95729,9 +97415,9 @@ wDy xcW qPL nZL -qPR -wfE -fhe +fPN +fPN +iCB iHO nZL nZL @@ -95739,7 +97425,7 @@ nZL fqe fqe rBi -upR +bpj rBi fqe rBi @@ -95748,26 +97434,26 @@ rBi nZL fPN fPN -qUd +fKd fPN +xXP ksa ksa -ksa -hHw +nga kkC btp sYe ufV -cAR +nga tRj uDB hfF sTW -cAR +oFm +jFo +jFo +jFo jFo -xIp -dIO -rEe jFo rWZ pjD @@ -95813,20 +97499,20 @@ nwz vrf rBa bsX -qSw -bsX -xYn -bsX -bsX bsX bsX +xYn xzN -bsX -bsX -bsX -bsX -bsX -vCq +xUa +xUa +bJd +xUa +xUa +xUa +xUa +xUa +tbI +xUa mDv mDv mDv @@ -95869,8 +97555,8 @@ ksa ksa fOA rHT -xpD -xpD +cxK +mMt aHT uoo uoo @@ -95956,7 +97642,7 @@ gSB kFk ksa mtq -wGI +mKE vyJ mEQ xhp @@ -95974,7 +97660,7 @@ lKu fSj ctc lMT -vCn +urV pSA oVp sEr @@ -95986,9 +97672,9 @@ pSA pSA pSA nZL -fPN -fPN -oSr +xkQ +bvR +fhe iHO nZL udB @@ -96010,19 +97696,19 @@ nGn ksa ksa ksa -hHw -otx -bvc -jya -sbz -oXi -nga -nga -nga -nga nga +cAR +rzs +cKx +cAR jFo -ali +jFo +jFo +jFo +jFo +jFo +jFo +xIp vUv ali jFo @@ -96069,21 +97755,21 @@ vrf nwz kVX xUa -vam -xzN -bsX -xYn +vCq bsX -frw -llR bsX +xYn bsX -tcI -xzN -frw +xUa +vtr bsX +llR +xUa +hKf +rff +rbW bsX -xzN +vqr mDv djD mdZ @@ -96127,7 +97813,7 @@ ksa fOA cnu jVU -lwj +tMQ aHT aHT aHT @@ -96231,7 +97917,7 @@ urW bGw qgq lMT -mVH +qgq pSA tvq sEr @@ -96243,9 +97929,9 @@ scD xTP oCn nZL -xkQ -fhe -bvR +pas +uCh +eJq iHO nZL qeb @@ -96267,13 +97953,13 @@ nGn ksa ksa ksa -hHw +nga iyL tUV oRC tIF -leN -nga +jFo +atv jgW saq jgW @@ -96282,8 +97968,8 @@ cBM eKp mws six -szU -qLz +jFo +rWZ pjD jHn ksa @@ -96326,21 +98012,21 @@ wEB wqv wEB xUa -xUa -xUa -xUa -xYn iuo -xUa -xUa -bJd -xUa -xUa -xUa -xUa -xUa -tbI -xUa +llR +xzN +xYn +bsX +rBa +pIs +bsX +bsX +kwg +rbW +bsX +pIs +aCF +oTD mDv rTF djD @@ -96484,9 +98170,9 @@ hjZ hjZ kjA urW -aGU +cru mWi -qgq +aUL lMT qgq pSA @@ -96495,15 +98181,15 @@ sEr oQl rnN mky -box +vIn uHD sey fDe nZL pas uCh -eJq -uBX +uCh +mYW nZL slq nBD @@ -96512,7 +98198,7 @@ qsm wwN nJS gtp -sMu +cSJ roc doW gtp @@ -96522,27 +98208,27 @@ eBl iYK nGn ksa -ksa +uoo ksa nga aUk -nIt +ggy wVk mEs -gzz -nga +jFo +lAg bKm ovY fce hTf hMy -pdN wSz knt -jFo -wLx +knt +szU +qLz pjD -oFm +dUh ksa ksa ksa @@ -96563,7 +98249,7 @@ ksa cui cpX gVf -pho +lBX hWv cui cde @@ -96583,21 +98269,21 @@ vrf nwz eub xUa -vhx -vCq -llR +xzN +bsX +bsX xYn bsX xUa -vtr -bsX -llR +xzN +iuo +lhd xUa hKf -rff -rbW -bsX -vqr +qvX +bFK +say +sgM mDv dbG dbG @@ -96733,7 +98419,7 @@ chZ cCf cCf cCf -urW +phd urW bdq xeX @@ -96758,8 +98444,8 @@ sey fDe nZL pas -xWi uCh +eer mYW nZL gOh @@ -96774,20 +98460,20 @@ cBa qUf iPQ nZL -vKc -eJq -iYK +wfE +wfE +hlu +fPN nGn -ksa -uoo -ksa -nga -cAR -hsJ -gtx -cKw -cAR -nga +nGn +nGn +nZL +nZL +nZL +nZL +nZL +nZL +lAg aSa yft hIk @@ -96845,16 +98531,16 @@ iko iko bUS wJa -rBa -pIs -bsX -bsX -kwg -rbW -bsX -pIs -aCF -oTD +mDv +mDv +mDv +mDv +mDv +mDv +mDv +mDv +mDv +mDv mDv btl btl @@ -97031,27 +98717,27 @@ vLC tFM uNj nZL -kQe -eoS -dIV +eJq +wfE +iYK fPN -nGn -nGn -nGn -nZL -nZL -nZL -nZL -nZL -nZL +wfE +bvR +wfE +wfE +wfE +vKc +xkQ +aNK nZL +lAg aAJ sxo pxY cQA xkh -pdN uhe +pdN uZG hPx jXh @@ -97075,10 +98761,10 @@ vui vND vui qAf -eON +vui wBB -xFe -etg +vui +vui fXZ vui rAq @@ -97097,22 +98783,22 @@ cuU lXL vrf xUa -llR +xCK pIs qvX vHk bsX -xUa -xzN -iuo -lhd -xUa -hKf -qvX -bFK -say -sgM mDv +jOm +vir +gvD +rbo +oIw +xsB +sSM +iuU +eKA +fxk btl btl btl @@ -97258,7 +98944,7 @@ eZP eZP mWi fTm -vCp +lMT kpW cqR wbK @@ -97277,7 +98963,7 @@ nZL dMV nZL fqe -oLf +tiV fqe fqe fqe @@ -97288,8 +98974,8 @@ fqe slS fqe nZL -fhe -cKx +wfE +wfE nmm vUS aII @@ -97300,8 +98986,8 @@ aII aII aII hBg -lFa nZL +oXi jgW tbc jgW @@ -97360,16 +99046,16 @@ xUa wPT iuo mDv -mDv -mDv -mDv -mDv -mDv -mDv -mDv -mDv -mDv -mDv +ina +cSm +cSm +rSc +qXp +rSc +cSm +cSm +uEU +fxk hGH jvA rFn @@ -97517,13 +99203,13 @@ xUO rDO lMT qgq -tAQ +wPR aKU aKU aya aKU aKU -tAQ +wPR niu sey tMr @@ -97545,19 +99231,18 @@ jGX jVY wOd fPN +fhe +bvR +vKc fPN -suX -fPN -fPN -fPN -fPN -fPN -fPN -fPN -fPN -fPN -qqJ -nZL +fhe +wfE +wfE +eJq +fhe +wfE +wfE +oYl nZL jFo jFo @@ -97568,6 +99253,7 @@ jFo jFo jFo jFo +jFo bgd gbD hjB @@ -97595,7 +99281,7 @@ qdE dqO jIu wuH -qdE +adP qdE pIA gbD @@ -97617,15 +99303,15 @@ xzN vHk pIs mDv -jOm -vir -gvD -rbo -oIw -xsB -sSM -iuU -eKA +sPy +bnP +jZe +qPO +mIF +iSI +kUV +oNc +lYr fxk kVD rFn @@ -97795,24 +99481,24 @@ fsm xnG yfL ksp -xvF +pXE dzU ium mUT qOl xxI -dIW -jic -uYJ -ePQ -xIo -ecF fPN -aXq -kHw -bZl -ciW fPN +fPN +fPN +fPN +fPN +fPN +fPN +fPN +fPN +fPN +wfE dwJ nZL rUf @@ -97825,7 +99511,7 @@ wvg xqW xuu cvS -qXN +hFk gbD hjB cjW @@ -97874,15 +99560,15 @@ bsX vHk bsX mDv -ina -jPt -jPt -rSc -qXp -rSc -cSm -cSm -uEU +uYf +ujm +gPV +tBL +pme +iQy +jBv +sWq +prs fxk fxk pLU @@ -98031,13 +99717,13 @@ xUO qgq lMT nqD -tAQ +wPR aKU aKU hvc aKU aKU -tAQ +wPR niu qQg tMr @@ -98061,27 +99747,27 @@ xxI dIW gGu nlU -iua -mUw +dMl +xgY kDS -fPN -qxJ -pSW +dIW +ruH +ePQ ruH -dub fPN +wfE dwJ nZL oTL wen lhv ppm -iBO +ppm ppm jFe iuu -iuu -wzl +nmR +cvS oKy gbD hjB @@ -98113,7 +99799,7 @@ aav eNs kvX gbD -dCP +hxV eNs uoo nxf @@ -98131,15 +99817,15 @@ bsX vHk llR mDv -sPy -bnP -jZe -qMY -mIF +bKR +dlY +dlY qMY -kUV -oNc -lYr +geh +xZf +dlY +dlY +ovA fxk pqo pxw @@ -98286,8 +99972,8 @@ ajn ajn ajn fvn -vCp -kxd +lMT +wnY cqR uKf uKf @@ -98316,31 +100002,31 @@ blR xpb aUi jfI -hlu -hlu +mUw +mUw xhv -dMR -lAg +mUw +mUw +dIW +mUw +iua +mUw fPN -lrB -lrB -atv -wCb -idR +fhe dwJ nZL fvt -wen +eAp kRK iuu -gkH +iuu iuu uuj nVk nVk ugD uSG -gbD +aIn wXC cjW wAZ @@ -98388,18 +100074,18 @@ fiT vHk xzN mDv -uYf -ujm -gPV -qMY -pme -qMY -jBv -sWq -prs +euj +rJu +qZw +sBS +tcO +sBS +uAy +uFw +kZz fxk -ycu -rMt +pqo +pxw mJS pxw wMs @@ -98572,19 +100258,19 @@ ium mUT xpb xxI -wpo +dIW swY chk -pVB -bpe -jUt -fPN -ebL -vCQ +ipH aZc -eAp -fPN -dwJ +aZc +rzi +aZc +aZc +aZc +gtx +vcC +fKX ouX nVk nVk @@ -98595,7 +100281,7 @@ nVk nVk rMc oOB -wzl +cvS vmf gbD hjB @@ -98645,19 +100331,19 @@ xUa ooM xUa mDv -bKR -dlY -dlY -vAm +ajT +ajT +ajT +ajT fbk aqW -dlY -dlY -ovA +aqW +aqW +dCP fxk bvL pxw -mJS +rOW pxw kWy ceX @@ -98799,7 +100485,7 @@ dxW dxW jbP ajn -oWq +qgq lMT kxd kml @@ -98807,7 +100493,7 @@ vXY aTv ukF mLh -rUm +vXY vpG twl qQg @@ -98823,7 +100509,7 @@ bYk luI qPJ ksp -xvF +nkF dzU ium mUT @@ -98832,25 +100518,25 @@ xxI wpo guX qtW -ipH -vof +mUw +bpe dor +dIW +mUw +pVB +mUw fPN -fiB -pSW -pQm -rtP -fPN +wfE dwJ nZL lsa nVk aSe aBx -ijj +aBx aBx gyw -wen +iOl tnk vCT ikX @@ -98884,7 +100570,7 @@ rTV lFc hFk gbD -mxN +dPz sRZ jDf sCt @@ -98902,19 +100588,19 @@ imV vHk xzN mDv -euj -rJu -qZw +gcp +urk +mlj ajT -ija +mse ajT -uAy -uFw -kZz +aOs +tcI +mMD fxk pqo -rOW -nst +pxw +xvT kNJ dXL ceX @@ -99058,14 +100744,14 @@ qQq ajn xgX lMT -lMT +ctc fmr vFW -iFw +vFW cbe -iFw vFW -dQB +vFW +tPZ sUf qQg qow @@ -99085,26 +100771,26 @@ nFn ium mUT xpb -aiy -dIW -dIW -dIW -dIW -dIW +xxI +wpo +otx +unV +dMR +uBX +sBO dIW +wGT +iBO +vof fPN -fPN -fPN -fPN -fPN -fPN +wfE dwJ nZL aJH nVk jSX wWJ -unV +wWJ wWJ hgg aBx @@ -99159,17 +100845,17 @@ bsX vHk ikP mDv -ajT -ajT -ajT +llZ +xjv +cGA ajT mse -trS -trS -trS +ajT +fBd +vXw trS fxk -pqo +sJH pxw nst pxw @@ -99295,7 +100981,7 @@ ksa uoo ksa tFK -scR +iFw yaX ipY eJA @@ -99304,7 +100990,7 @@ fch oER ksZ tLo -tLo +oaa ajn aiw vdj @@ -99313,7 +100999,7 @@ fuS fuS acf ajn -awX +umJ hpB awX kml @@ -99342,26 +101028,26 @@ hDp hDp blR xpb -vvy -hjG -wIU -qth -hGj -bMX -inF -hjG -rKe -hZj -rzs +aiy +dIW +dIW +dIW +dIW +dIW +dIW +dIW +dIW +dIW +dIW fPN -fhe +iHb dwJ nZL kOK nVk rfW -xLa -hZS +vki +oCA liC rTP qPo @@ -99416,9 +101102,9 @@ pIs vHk hSc mDv -akg -mxG -lrf +xxB +sMO +brU sBS jEd sBS @@ -99576,7 +101262,7 @@ giM vpG evo evo -dEG +vpG evo evo vpG @@ -99601,24 +101287,24 @@ mUT xpb vvy lmX -wGT +wIU xft rdk -rdk +vsU kxi -nzX -uXn -vWH -uXn -sBO -vcC +hjG +eWd +eoS +rZB +fPN +eJq oYl nZL wzl xWu wzl cvS -wzl +cvS vuA vuA vuA @@ -99655,7 +101341,7 @@ anF lFc ePw gbD -gvW +tNG sRZ jBx pLB @@ -99674,9 +101360,9 @@ kjD xUa mDv jpQ -ihm -wKG -jdg +fjY +cZl +ajT hkf rrg saY @@ -99812,14 +101498,14 @@ rHA nDq nDq mRL -cet -iwL +bMw +olp sJm wgw tLo tLo tLo -urV +pBC qQq wAd wxY @@ -99832,7 +101518,7 @@ xXP ksa vpG ubp -lLm +qbg rOF qbg aUn @@ -99841,7 +101527,7 @@ twl qQg qVR ait -kmJ +bBR vCs pLV oLJ @@ -99859,16 +101545,16 @@ xpb vvy lmX asE -rdk +tbg mHH -xle +tbg tFs hjG -gbS -fKX -tln +hPT +rKe +hPT fPN -vKc +fhe dwJ nZL cdu @@ -99930,13 +101616,13 @@ lhd vHk hSc mDv -vpQ +avI eNi ryc nBk ppU cIi -kSi +cIi fnt lfT fxk @@ -100069,14 +101755,14 @@ rHA mfE mfE xWj -iHb -vTX +sJm +wGI sJm cIv tLo gGV tLo -ogz +pBC qQq fuS dxW @@ -100088,13 +101774,13 @@ ksa xXP ksa vpG -nzn -nDy -nDy -bGJ -bGJ -lLj -vfX +eoo +oVC +dEG +oVC +mlt +vpG +ycu qQg qXW iXP @@ -100116,17 +101802,17 @@ xpb vvy hjG fUX -rdk -xog +hGj +pji sDl -tNO -hjG -hjG -hjG -hjG -fPN -bvR -dwJ +sDl +nzX +uXn +vWH +uXn +foK +vcC +cJf nZL kmX eTY @@ -100188,9 +101874,9 @@ vHk lNt mDv teS -eLq wzw -jdg +qdl +ajT itM ugZ mHm @@ -100323,17 +102009,17 @@ ksa fEP ksa rHA -yaX -yaX -pHz -iYP +nDq +nDq +oWq +bMw vTX sLA oER tLo tLo tLo -phd +pBC qQq fuS dxW @@ -100345,13 +102031,13 @@ fEP fEP fEP vpG -eoo -olp -oVC -hYU -mlt -vpG -twl +nzn +iYP +nDy +xSA +bGJ +lLj +vfX stx cWL nke @@ -100372,17 +102058,17 @@ blR xpb lBZ fJb -rdk -rdk +tbg +tbg qid -qiC -iOl -oNs tbg tbg +hjG +hPT +jUt hPT fPN -cGR +wfE dwJ nZL slt @@ -100407,7 +102093,7 @@ snq dPH rNL rDY -iUz +ilu dnA rXH xlS @@ -100847,7 +102533,7 @@ oER uMg tLo tLo -tLo +mVH dxW fuS bnn @@ -100879,7 +102565,7 @@ tWx luI hps ksp -xvF +ofH dzU ium mUT @@ -100887,8 +102573,8 @@ xpb cwK hjG hjG -rdb -rdb +hjG +hjG hjG hjG hjG @@ -100956,8 +102642,8 @@ xCk tbp cYN wmn -abC -asi +jdg +tbp dly mkG pyE @@ -101097,13 +102783,13 @@ tFK mfE mfE xWj -lxC +tyX lEa wtv oER mQx tLo -oaa +tLo ajn auk wOy @@ -101145,9 +102831,9 @@ bwI vfg jFF jFF +pKw jFF jFF -ebp rpB fyZ jFF @@ -101199,7 +102885,7 @@ oKy beP cQl eVF -iyE +tAf vVA kyX aTC @@ -101209,7 +102895,7 @@ tAf tAf eNx qGy -gIY +tAf nyW mAO jHl @@ -101385,7 +103071,7 @@ gXZ oCE kMD jNZ -jNZ +fgb lCI abc cXi @@ -101416,12 +103102,12 @@ cpJ eBU xpb xpb +cRe xpb xpb xpb -gLM pLb -dGM +gbD gbD gbD nse @@ -101466,7 +103152,7 @@ ddQ rSO fei oBD -ofJ +pqF qej yeR ibZ @@ -101636,13 +103322,13 @@ oRs csZ gGx dAx -boL +iuI lZV jZp jRr pbc skd -jNZ +fgb vQD abc cXi @@ -101678,7 +103364,7 @@ xNW uTw wtX pRz -mpW +bDL hjB hjB kMH @@ -101694,7 +103380,7 @@ hny kLF iUz awG -udk +lii fFK oFj iUz @@ -101723,7 +103409,7 @@ fyA pYd fyA cmt -fdb +fyA nyW qKG fyA @@ -101985,7 +103671,7 @@ tbp sMY fxU lxA -asi +tbp cNN mkG gxP @@ -102225,7 +103911,7 @@ bIY qmM oKy bzW -mtN +jmc tgG tfi alM @@ -102245,11 +103931,11 @@ jWT ufs xeH tYz -fyA +gKN uaf rAO uaf -fyA +gKN tZe bVW enU @@ -102463,7 +104149,7 @@ snq eRL uXH pxl -iUz +ilu awG nkc qcN @@ -102503,9 +104189,9 @@ ufs ufs ufs ufs -gKN +ufs oqA -gKN +ufs ufs ppP ppP @@ -102726,8 +104412,8 @@ qWT pap kUQ xoe -iUz -iUz +udk +nzl hUQ rXT awG @@ -102739,7 +104425,7 @@ vqb vwp oKy mwc -xgj +gvW tgG fpJ xOq @@ -102762,7 +104448,7 @@ jYP okN rKX gIa -rKX +twn kdy ppP aor @@ -103179,7 +104865,7 @@ tQM iSg gkK kvw -mcY +iUB flK ell rhY @@ -103463,7 +105149,7 @@ lsQ mZc mZc mZc -oxz +fRx mZc mZc mZc @@ -103516,7 +105202,7 @@ tgG tgG tgG tgG -lku +ckN oqK tHe iGG @@ -103944,11 +105630,11 @@ meb gki meb sBM -mVx uol -gvK uol +gvK uol +mVx kPm mcY lqh @@ -104054,7 +105740,7 @@ sYD sWy sWy dRp -sWy +dRp shx qcX ppP @@ -104207,7 +105893,7 @@ aYE aYE sDq fPL -mcY +iUB lqh sHr sHr @@ -104459,8 +106145,8 @@ xXP mrP mrP mrP -xSA -xSA +mrP +mrP mrP mrP pEr @@ -104508,7 +106194,7 @@ nNQ qBy tZr xAc -gbD +aIn rBj cjW wAZ @@ -105052,7 +106738,7 @@ uCB uCB cWX mwc -bSC +bMX qCg uTO sJa @@ -105296,7 +106982,7 @@ iMN wSs pYh tXM -rZB +mzq mzq cOn xOV @@ -105486,9 +107172,9 @@ ksa xXP ygY fSW -tCR aAl -hve +aAl +tCR soW tcM qdz @@ -105761,12 +107447,12 @@ vah wbq hqK kfT -veX -iNM -rTx -rTx -fWD -ayq +uui +byk +byk +byk +byk +fVB hDp mBL ccL @@ -105816,13 +107502,13 @@ cOn wXi uDj wXi -tjP +wXi wXi bqA wXi -iSM wXi -ggy +wXi +wXi ihg qCg vGn @@ -106017,14 +107703,14 @@ pEr yjA spo gdg -cmI -cmI -dfS -cmI -cmI -cmI -cmI -cmI +kfT +veX +iNM +rTx +rTx +fWD +ayq +hDp rAA tvh xTF @@ -106275,12 +107961,12 @@ rID siR adT cmI -nZo -jWA -jWA -xgz -eVT -vPr +cmI +dfS +cmI +cmI +cmI +cmI wIv wIv wIv @@ -106365,7 +108051,7 @@ pZj oqK dzR kjV -eVB +qrn klo xUC lGd @@ -106535,7 +108221,7 @@ cmI iNd rjQ iyI -uvW +sZN sZN orE sZN @@ -106622,8 +108308,8 @@ wWd gAM hRt ssL -qep -hzA +eVB +fzi thA ryX lMb @@ -106773,14 +108459,14 @@ ksa ksa rxc vip -ljv +pEr ebw ebw -ljv -ljv +pEr +pEr jvd -ljv -ljv +pEr +cmI twi cmI pJz @@ -106789,8 +108475,8 @@ cmI cmI cmI cmI -fQJ -jWA +iyj +jNm nOM jcX jcX @@ -106878,9 +108564,9 @@ lku alM oqK hrH -ltg +crl eVB -fzi +fpV bHc bHT xHp @@ -107037,7 +108723,7 @@ ebw tvH jzo ats -ljv +cmI cCF cmI fvz @@ -107096,7 +108782,7 @@ oBH jJz okq okq -cBB +okq uhY eqx gUp @@ -107122,13 +108808,13 @@ bcz pDy oiW tgG -flV +uAC lku cNO xOq pZj cNO -oNu +cNO tgG cNO lku @@ -107137,10 +108823,10 @@ uhz xbz iln eVB -fpV -ble -euK -qrn +thm +wNL +ctz +joY nlI xgo xny @@ -107294,7 +108980,7 @@ rVT tIU qyx tIU -ebw +wIv xCc kpE jcX @@ -107353,9 +109039,9 @@ oBH fAn okq okq +pWC aSx -aSx -uFH +jYT uFH svK qmY @@ -107395,9 +109081,9 @@ kQX uXP geR ble -wNL -ctz -wZv +wev +euK +sgT pfo pfo vEP @@ -107551,7 +109237,7 @@ ebw cmP muu yen -ebw +wIv mlN sZN sZN @@ -107562,9 +109248,9 @@ orE vwE sZN sZN -oDg -gYl -ayu +uvW +sZN +vzK mZc vWa oxz @@ -107644,7 +109330,7 @@ pVH lku pZj tgG -pYX +cNO lku rMV oqK @@ -107801,14 +109487,14 @@ ksa ksa rxc vip -ljv +pEr ebw ebw ebw hGm ebw hGm -ebw +wIv aqf aqf aqf @@ -107817,11 +109503,11 @@ aqf aqf aqf wIv -wIv -wIv -wIv -wIv -wIv +jWA +jWA +kpC +jWA +jWA mZc jjm oxz @@ -108073,14 +109759,14 @@ ksa ksa ksa ksa -ksa -ksa -xXP -ksa -ksa -ksa +wIv +qEW +fQJ +okA +tGs +uTY mZc -oSo +ogk oxz ghk mZc @@ -108308,35 +109994,35 @@ ksa ksa ksa ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +fEP +uoo +rxc +aVH +aVH +aVH +aVH +aVH rxc aVH aVH aVH +rxc +aVH aVH aVH aVH aVH rxc -ksa -ksa xXP -ksa -ksa -ksa -mZc +xXP +xXP +cmI +cmI +cmI +cmI +cmI +cmI +bLy mZc qOR mZc @@ -108565,18 +110251,7 @@ ksa ksa ksa ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +fEP ksa aVH mjz @@ -108586,25 +110261,36 @@ mjz mjz mjz mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz aVH -xXP -xXP -qZk -qZk -qZk +ksa +ksa +ksa +icx +pcT +ciP +xRd +nKK qZk bLy -lyP -xHh -mjk +fGh +fuh +fGh bLy -nSh -vME -mrB -cus -qAa -njj uPs +lEZ +emX +emX +emX +jPt +emX ech emX emX @@ -108822,18 +110508,7 @@ ksa ksa ksa ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +fEP ksa aVH mjz @@ -108843,25 +110518,36 @@ mjz mjz mjz mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz aVH -qZk -qZk -qZk -skA -qpB +xXP +xXP +xXP +icx +tUu ePr -bLy -mQo -xHh -fRT -bLy -bMs cch -nVz -sSf -qUC -hwy -gKT +nKK +qZk +bLy +uaW +rvv +jZS +bpL +nWI +weS +weS +weS +weS +weS +weS weS weS weS @@ -108896,8 +110582,8 @@ ayi ukY acx ukY -ukY oMB +ukY qqC dRH vje @@ -109079,19 +110765,8 @@ ksa ksa ksa ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +fEP +uoo aVH mjz mjz @@ -109100,25 +110775,36 @@ mjz mjz mjz mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz aVH +ksa +ksa +ksa icx -bzX -icx -hDE -hlP -sbB +gqE +cch +aTb +gAx +nTq bLy -gOA -xHh -jwZ +fGh +fuh +fGh bLy -bMs -nZk -sZt -mxo -hqm -njj uLC +nJK +nJK +aca +nJK +nJK +nJK tjC xEV imU @@ -109336,18 +111022,7 @@ ksa ksa ksa ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +fEP ksa aVH mjz @@ -109357,25 +111032,36 @@ mjz mjz mjz mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz aVH -aFe -aGG -rkF -hhs -ikm -hxS -ckD -fJl -ojQ -dRS -set -mMS -imJ -avR -poB -cll -njj -njj +xXP +xXP +xXP +icx +sHA +cch +tOZ +nKK +owD +bLy +fGh +fuh +pXe +bLy +gdp +gdp +gdp +mzz +gdp +gdp +gdp dUx bTf ila @@ -109424,8 +111110,8 @@ tQl urK sxS gya -gEs -gJO +skz +ycc chy rQU ocd @@ -109593,18 +111279,7 @@ ksa ksa ksa ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +fEP ksa aVH mjz @@ -109614,25 +111289,36 @@ mjz mjz mjz mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz aVH +ksa +ksa +ksa icx -sPm -icx -fck -lHF -jNm +qde +fpZ +iWL +nKK +qZk bLy -gOA -xHh -vcn +fGh +fuh +fGh bLy -ryL -pCm -pCm -pCm -pCm -kRc -dTN +eBy +ebk +qIJ +pTa +fmQ +gKo +ouJ dUx nhS jWP @@ -109809,14 +111495,6 @@ ksa ksa ksa ksa -uoo -ljY -qpF -ljY -uoo -ksa -ksa -ksa ksa ksa ksa @@ -109858,12 +111536,9 @@ ksa ksa ksa ksa -ksa -ksa -ksa -ksa -ksa -aVH +fEP +uoo +rxc mjz mjz mjz @@ -109871,25 +111546,36 @@ mjz mjz mjz mjz -aVH -qZk -qZk -qZk +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +rxc +xXP +icx +icx +icx +njj +njj cQt -tqj -gAx +njj +njj bLy -iea -xHh -whv +mbY +fuh +fGh bLy -ewM -wLR -wnl -wnl -wnl -wnl -wnl +pnY +uKz +uKz +khO +hhs +hhs +iIB dUx fXF hBp @@ -109924,7 +111610,7 @@ bCg dDp dDp uMf -ydz +dDp dDp dDp ppN @@ -110065,18 +111751,6 @@ ksa ksa ksa ksa -uoo -uoo -wRN -cXW -wRN -uoo -uoo -ksa -ksa -ksa -ksa -ksa ksa ksa ksa @@ -110119,6 +111793,7 @@ ksa ksa ksa ksa +fEP ksa aVH mjz @@ -110128,25 +111803,36 @@ mjz mjz mjz mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz aVH -xXP -xXP -qZk -qZk -qZk -qZk +ksa +aFe +rNP +aFe +cch +cch +eyG +sVo +tah bLy -agf -xHh -kTq +fGh +fuh +fGh bLy -gtV -aVA -kIh -wnl -wnl -rhy -tNK +xqR +kaA +wjK +jlT +ubs +laX +bOB dUx jEw mVt @@ -110179,9 +111865,9 @@ lbf qOH vsB rer -rer +jHm aPy -xqe +kHg xqe xqe cnX @@ -110321,19 +112007,6 @@ ksa ksa ksa ksa -uoo -uoo -cXW -wRN -bkH -wRN -cXW -uoo -uoo -ksa -ksa -ksa -ksa ksa ksa ksa @@ -110377,25 +112050,38 @@ ksa ksa ksa ksa -rxc -aVH -aVH -aVH -aVH +fEP +uoo aVH +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz aVH aVH -rxc -ksa -ksa -xXP -ksa -xXP -ksa -mZc -mZc -qOR -mZc +apK +rkF +vdN +cch +cch +ujA +sPm +sPm +nZo +jZS +dvB +ikm bLy rfS rfS @@ -110421,9 +112107,9 @@ xsX dJe emk ggz -gKi hXt hXt +gKi hXt cev gqK @@ -110437,7 +112123,7 @@ qOH jpg wUo mhY -kHg +vRh vRh vRh vRh @@ -110452,7 +112138,7 @@ tQl sMw sxS bwN -ccV +skz ycc chy iib @@ -110493,20 +112179,20 @@ bpD bpD bpD oqK -dgl +txI txI xKp txI -dgl txI txI txI txI txI -ksa -uoo -ksa -ksa +txI +txI +txI +txI +txI ksa ksa ksa @@ -110520,7 +112206,7 @@ aVH uoo fdt ksa -ksa +sQS ksa ksa ksa @@ -110577,28 +112263,6 @@ ksa ksa ksa ksa -uoo -byC -wRN -cXW -bzw -cLl -hsY -cXW -wRN -wIO -uoo -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa ksa ksa ksa @@ -110643,16 +112307,38 @@ ksa ksa ksa ksa +fEP ksa +aVH +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +aVH ksa -bZv -bZv -bZv -bZv +aFe +crC +aFe +cch +cIK +gCo +dCC +lca bLy -mhM -xHh -ogZ +fGh +fuh +fGh bLy dop dEu @@ -110683,7 +112369,7 @@ ikD oaQ jFw tqK -ikD +sRt eWv xSh fsE @@ -110752,18 +112438,18 @@ pYA cQT pKS cPo -fqV +xgR nIb -bIu +bhI sKd mJo xUG ula -itA +txI jxl -aJU -ksa -ksa +rPV +rKd +txI ksa ksa ksa @@ -110834,82 +112520,82 @@ ksa ksa ksa ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +fEP uoo -cXW -cXW -qCD -gtO -byi -mWa -ume -cXW -cXW -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -bZv -dwc -bZv -lkh -euP -oYi +rxc +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +rxc +xXP +icx +icx +icx +njj +njj +fTt +njj +njj bLy -xNu -xHh -gOA +fGh +fuh +fGh bLy dop mPg @@ -111016,11 +112702,11 @@ whM nli gKj vjI -txI +kQK mrl -txI -ksa -ksa +gAu +rKd +ihO ksa ksa ksa @@ -111091,24 +112777,6 @@ ksa ksa ksa ksa -qpF -wRN -qsk -rqm -byi -fvW -byi -wND -rHQ -kKH -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa ksa ksa ksa @@ -111153,20 +112821,38 @@ ksa ksa ksa ksa +fEP ksa +aVH +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +aVH ksa ksa ksa -nWH -rIe -sYw -lMk -tgW -bbI -gCi -fJl -xHh -fJl +icx +hzD +odz +wMG +mCx +crm +bLy +fGh +fuh +fbW bow dPT paO @@ -111237,7 +112923,7 @@ jLa pNA pwI nyt -owt +acB owt qqZ jFA @@ -111266,15 +112952,17 @@ cNO oqK aTl ppS -fqV -eoJ -sGk +qgZ mwK mwK -rPV +pHw +mwK +txI kZS txI muI +xhI +rKd txI ksa ksa @@ -111285,8 +112973,6 @@ ksa ksa ksa ksa -ksa -ksa aVH ksa fdt @@ -111331,8 +113017,24 @@ ksa ksa ksa ksa -"} -(152,1,1) = {" +"} +(152,1,1) = {" +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa ksa ksa ksa @@ -111348,90 +113050,74 @@ ksa ksa ksa ksa -uoo -cXW -cXW -eZf -okv -byi -xAj -fzM -cXW -cXW -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -bZv -dwc -bZv -fHz -vTN -uuA +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +fEP +ksa +aVH +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +aVH +xXP +xXP +xXP +icx +mCx +mCx +vla +mCx +mCx bLy +hUd +fuh fGh -xHh -nhv bLy iSe lHt kdH -vOj +xLy qAz rfS -qCQ +sHl qCQ qCQ bUF @@ -111457,8 +113143,8 @@ jzQ jJq qgz vGf -mGI -bOJ +nVy +mIl vbD esr sdL @@ -111523,18 +113209,18 @@ cgU lpn urb mNF -uYe +qgZ jGm ijG rLH eXJ -eXJ +txI pHW -xhI +txI +txI vRl -dgl -ksa -ksa +txI +txI ksa ksa ksa @@ -111605,27 +113291,6 @@ ksa ksa ksa ksa -uoo -byC -wRN -cXW -pgT -jCb -tTg -cXW -wRN -wIO -uoo -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa ksa ksa ksa @@ -111670,23 +113335,44 @@ ksa ksa ksa ksa +fEP +uoo +aVH +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +aVH ksa ksa ksa -bZv -bZv -bZv -bZv +icx +tVu +mCx +mCx +mCx +amw bLy -hNt -xHh -xGH +fQT +fuh +fGh bLy lHt lHt efQ oAk -xLy +vOj rfS ecf qCQ @@ -111718,7 +113404,7 @@ fgw neW wxL lbf -gXW +iuK rFk bvm adc @@ -111760,7 +113446,7 @@ pZj cNO cNO xgp -xdD +cNO tgG fgR fgR @@ -111780,16 +113466,16 @@ cNO oqK eUa jxd -rKd -ihO -hOc -hOc -hOc -txI +mwK +mwK +mwK +eoJ +mwK +itA qps +nMP txI -gAu -txI +uOj txI ksa ksa @@ -111863,29 +113549,6 @@ ksa ksa ksa ksa -uoo -uoo -cXW -wRN -soB -wRN -cXW -uoo -uoo -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa ksa ksa ksa @@ -111929,15 +113592,38 @@ ksa ksa ksa ksa +fEP ksa +aVH +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +aVH xXP -ksa -ksa -ksa -mZc -xoG -xHh -vcn +xXP +xXP +icx +mCx +mCx +xoa +mCx +mCx +bLy +tLD +fuh +fGh bLy rfS rfS @@ -112036,18 +113722,18 @@ gBW eJp oqK sTD -qgZ -fOn -gfI -uOj +sGk +hOc +hOc +hOc cLR -kQK +hOc lHd ssz mQF uHo ipj -txI +dgl ksa ksa ksa @@ -112121,35 +113807,12 @@ ksa ksa ksa ksa +ksa uoo +ljY +qpF +ljY uoo -wRN -cXW -wRN -uoo -uoo -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa ksa ksa ksa @@ -112186,15 +113849,38 @@ ksa ksa ksa ksa +fEP ksa -xXP +aVH +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +mjz +aVH ksa ksa ksa -vyg +icx +sem +rXg lyP -xHh -gOA +qpB +oOQ +bLy +fGh +fuh +fGh bLy tyC bpU @@ -112212,7 +113898,7 @@ qCQ qCQ ibc qCQ -uox +qCQ sIJ wsy fzW @@ -112272,7 +113958,7 @@ oKu eBP nge oqK -tYG +cNO xgp cNO nbg @@ -112296,15 +113982,15 @@ rHp hyb efB qHq -enE +bIu lZA -qgZ -bhI +nZX +nZX nZX san -pHw +txI trz -xgR +txI uoo uoo uoo @@ -112378,11 +114064,12 @@ ksa ksa ksa ksa -ksa uoo -jnp -qpF -jnp +uoo +wRN +cXW +wRN +uoo uoo ksa ksa @@ -112419,44 +114106,43 @@ ksa ksa ksa ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -sQS -ksa -ksa -ksa -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP fEP +uoo +rxc +aVH +aVH +aVH +aVH +aVH +rxc +aVH +aVH +aVH +rxc +aVH +aVH +aVH +aVH +aVH +rxc xXP xXP xXP -vyg -gSG -cFU -dRS +icx +icx +icx +icx +icx +icx +bLy +iAh +ssd +jZS oGe rlF eFV -sHl -sHl +tXj +tXj tXj cSz iFN @@ -112464,12 +114150,12 @@ qCQ qCQ qCQ bdX -cnk lHY cGF ctb ctb -vEV +jKC +jKC vbT tcP dPF @@ -112539,10 +114225,10 @@ cgU cgU cgU kcf -flV +uAC tgG tgG -fii +tYG tgG tgG tgG @@ -112551,16 +114237,16 @@ tgG oqK txI txI +dgl +dgl +dgl txI txI txI +gfI txI txI -txI -txI -txI -txI -txI +uYe txI ksa ksa @@ -112634,6 +114320,15 @@ ksa ksa ksa ksa +uoo +uoo +cXW +wRN +bkH +wRN +cXW +uoo +uoo ksa ksa ksa @@ -112689,13 +114384,6 @@ ksa ksa ksa ksa -fEP -ksa -xXP -ksa -ksa -ksa -xXP ksa ksa ksa @@ -112703,12 +114391,10 @@ xXP ksa xXP ksa -ksa -ksa -vyg -bFZ -xHh -lfw +mZc +fGh +fuh +fGh bLy rgN oIJ @@ -112721,13 +114407,13 @@ ufQ duj cKn ejc -aVV tNM +vzn sCj ifE -kzv +aVV fIw -vEV +kzv tcP qZu khZ @@ -112814,7 +114500,7 @@ ksa ksa ksa xXP -ksa +enE ksa ksa ksa @@ -112873,39 +114559,67 @@ ksa ksa ksa ksa -"} -(158,1,1) = {" -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +"} +(158,1,1) = {" +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +uoo +byC +wRN +cXW +bzw +cLl +hsY +cXW +wRN +wIO +uoo +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa ksa ksa ksa @@ -112929,43 +114643,15 @@ ksa ksa ksa ksa -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -xXP -fKj -fKj -fKj -fHY -fHY -fHY -fKj -fKj -cDv -wtF -wtF -wtF -wtF -xXP +bZv +bZv +bZv +bZv +bLy mZc -pIH -xHh -gOA +fGh +fuh +qtl bLy bLy bWl @@ -113147,83 +114833,83 @@ ksa ksa ksa ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -fEP -fEP -ksa -ksa -xXP -ksa -xXP -ksa -xXP -ksa -ksa -xXP -ksa -ksa -ksa -ksa -xXP -ksa -ksa -ksa -fKj -eKK -rXC -jto -uio -hSr -evf -qgu -cDv -mNW -rPn -mNW -wtF -ksa -vyg -lyP -xHh -gOA -lca +uoo +cXW +cXW +qCD +gtO +byi +mWa +ume +cXW +cXW +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +bZv +dwc +bZv +lkh +euP +oYi +bLy +myI +fGh +fuh +fGh +qwl cFG xXP jGJ @@ -113232,7 +114918,7 @@ diJ pZR bNU goA -cNi +jrv rzG lIQ ntc @@ -113302,7 +114988,7 @@ gOr xQC kFe khD -eSE +coz aks hvX nBE @@ -113353,7 +115039,7 @@ ksa ksa ksa ksa -ksa +sQS ksa ksa ksa @@ -113404,6 +115090,16 @@ ksa ksa ksa ksa +qpF +wRN +qsk +rqm +byi +fvW +byi +wND +kKH +kKH ksa ksa ksa @@ -113442,45 +115138,35 @@ ksa ksa ksa ksa -fEP ksa ksa -xXP -xXP -lws -fKj -fKj -fKj -fKj -fKj -fKj -fKj -fKj -fKj -fKj -fKj -fKj -fKj -fKj -fKj -nnE -nnE -rJp -kMC -gXk -uIQ -sZV -cDv -rcf -oMK -poD -wtF ksa -vyg -gSG -xHh -gOA -gOA +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +nWH +rIe +sYw +lMk +tgW +bbI +gCi +fbW +fbW +fuh +fGh +fGh maL xXP jGJ @@ -113505,8 +115191,8 @@ auK dJe dxk lLi -fOT vkB +fOT wOt mog eDN @@ -113561,7 +115247,7 @@ oim gJp uMO bwg -coz +vEV nBE gWu mhc @@ -113624,7 +115310,7 @@ fdt fdt fdt ksa -ksa +sQS ksa ksa ksa @@ -113661,83 +115347,83 @@ ksa ksa ksa ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -fEP -fEP -fEP -fEP -fEP -fEP -fEP -xXP -xXP -xXP -fKj -nUZ -fKj -hOU -hOU -hOU -hOU -hOU -hOU -hOU -hOU -hOU -hOU -hOU -hOU -hOU -hOU -hOU -hOU -hOU -hOU -hOU -kNy -hOU -cDv -mNW -oMK -mNW -wtF -ksa -vyg -bFZ -xHh -iMt -jeu +uoo +cXW +cXW +eZf +okv +byi +xAj +fzM +cXW +cXW +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +uoo +bZv +dwc +bZv +fHz +vTN +uuA +bLy +uox +fGh +fuh +fGh +mGR dNK xXP jGJ @@ -113762,7 +115448,7 @@ auK mxF dxk flU -vjd +sQL lpk eoA sYI @@ -113790,8 +115476,8 @@ xZX dEH ycJ aIN -cVS -jYT +ryw +aIN vYE xvE xvE @@ -113827,7 +115513,7 @@ mhc yeo nBE nBE -vBP +apm nBE nBE nBE @@ -113918,6 +115604,17 @@ ksa ksa ksa ksa +uoo +byC +wRN +cXW +pgT +jCb +tTg +cXW +wRN +wIO +uoo ksa ksa ksa @@ -113949,51 +115646,40 @@ ksa ksa ksa ksa -fEP -fEP ksa ksa -xXP ksa ksa -xXP ksa ksa -xpD -fHY -kQq -feX -vKs -cDv -cDv -cDv -cDv -cDv -cDv -cDv -cDv -cDv -cDv -cDv -cDv -cDv -cDv -cDv -cDv -cDv -cDv -oKb -cDv -cDv -owu -htV -owu -wtF -xXP -mZc -mZc -qOR +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +bZv +bZv +bZv +bZv +bLy mZc +jrO +fuh +eAf mZc bLy bLy @@ -114176,6 +115862,15 @@ ksa ksa ksa ksa +uoo +uoo +cXW +wRN +soB +wRN +cXW +uoo +uoo ksa ksa ksa @@ -114200,76 +115895,67 @@ ksa ksa ksa ksa +fEP +uoo +fJl +fJl +fJl +fJl +fJl +fJl +fJl +fJl +fJl +fJl +fJl +fJl +fJl +fJl +fJl +fJl +fJl ksa ksa ksa ksa ksa ksa -fEP ksa ksa -fKj -fKj -fKj -fHY -fHY -fHY -fKj -fKj -fKj -hTE -tdv -aaN -cDv -snt -rIN -uim -rIN -pwn -uck -rIN -wSl -rIN -arL -wxp -rIN -abS -rIN -ohk -wtF -xsC -mDP -mXY -gKk -rcj -hIe -bii -wtF ksa -vyg -uKy -xHh -uui -gOA -puX +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +mZc +dhi +fGh +fuh +fGh +iMH bLy uPs wNx emX +emX apU lNO emX emX emX klm -qcU +emX emX apU emX emX -lEZ emX +lEZ emX crV auK @@ -114305,7 +115991,7 @@ fpy aIN aIN iAv -xBa +aIN jlr maS maS @@ -114434,9 +116120,13 @@ ksa ksa ksa ksa -ksa -ksa -ksa +uoo +uoo +wRN +cXW +wRN +uoo +uoo ksa ksa ksa @@ -114463,53 +116153,48 @@ ksa ksa ksa fEP -fEP -xXP -fKj -fKj -feX -feX -feX -hOU -feX -feX -feX -feX -feX -ajt -mCg -cDv -nBS -dYt -gmo -dYt -vmu -nBS -dYt -jxm -dYt -vmu -nBS -dYt -gmo -dYt -vmu -wtF -dwq -bYD -dzj -dzj -dzj -dzj -hcu -wtF ksa -vyg -gOA -xHh fJl +dLr +mhM +sUn +mhM +gYl +wEe +mhM +uFT +mhM +iea +ugQ +mhM +hxS +mhM +jwZ fJl +uoo +fEP +fEP +fEP +uoo +oDg +oDg fJl +oDg +oDg +uoo +fEP +fEP +fEP +uoo +uoo +uoo +uoo +vyg +dOF +mLx +fuh +fbW +fbW fRp eJg nVs @@ -114518,6 +116203,7 @@ nVs nVs nVs nVs +nVs mZG nVs nVs @@ -114692,6 +116378,13 @@ ksa ksa ksa ksa +uoo +jnp +qpF +jnp +uoo +ksa +ksa ksa ksa ksa @@ -114712,74 +116405,67 @@ ksa ksa ksa ksa +fEP +fEP +fEP +fEP +fEP +uoo +fJl +ogZ +fck +vcn +sbB +xoG +ogZ +fck +vcn +fck +xoG +ogZ +fck +vcn +sbB +xoG +fJl ksa ksa +uoo ksa ksa +oDg +vLw +dWw +whv +oDg ksa ksa +uoo ksa -fEP ksa +uoo ksa -fHY -feX -feX -cDv -cDv -cDv -cDv -cDv -cDv -cDv -cDv -fSG -cDv -cDv -nBS -dYt -kEN -tVD -vTL -lvp -tVD -uRW -dYt -vmu -nBS -tVD -lmK -dYt -vmu -wtF -gpi -wPA -rph -lNG -bIc -bIc -iuF -wtF ksa -vyg -gOA -xHh -gOA -gOA -xoG +mZc +vDY +fGh +fuh +fGh +atw bLy xmm cOH +nJK oRg -sMk -sMk -sMk +nJK +rdb +nJK caF -sMk -sMk -sMk -sMk -sMk +oRg +nJK +nJK +xxe +nJK oRg nJK nrI @@ -114978,65 +116664,65 @@ ksa ksa fEP ksa -fHY -fHY -hOU -hOU -cDv -dYt -vfw -dYt -wtF -rgV -xCP -dzj -sfh -gzR -wtF -yiC -dBA -dBA -dBA -rpt -pBX -tWP -dBA -dBA -kQP -iJI -tWP -dBA -dBA -kPJ -wtF -nNV -bYD -bIc -bIc -bIc -bIc -aMh -wtF -xXP +ksa +ksa +uoo +ksa +fJl +ogZ +fck +pIH +hNt +xoG +ogZ +fck +qbm +hNt +xoG +ogZ +fck +bNi +hNt +xoG +fJl +fJl +fJl +fJl +fJl +fJl +fJl +iJw +whv +fRE +fJl +fJl +fJl +fJl +fJl +fJl +fJl +uoo +uoo mZc -gOA -xHh -ybw mZc +fGh +fuh +fGh mZc bLy -bLy -bLy -bLy -wGw -wGw -wGw -wGw -gQX -wGw -wGw -wGw -wGw +dWS +dWS +dWS +dWS +dWS +dWS +dWS +dWS +dWS +dWS +dWS +dWS +dWS dWS dWS dWS @@ -115234,67 +116920,67 @@ ksa ksa ksa fEP -xXP -fKj -feX -hOU -cDv -cDv -dYt -vLI -dYt -wtF -vUu -ntI -jXV -hIU -jKn -wtF -kLj -kLj -kLj -kLj -kLj -kLj -arJ -kLj -kLj -kLj -kLj -arJ -kLj -kLj -nax -wtF -rJM -bYD -dzj -pCo -doR -sEO -sEO -sEO -sEO -bLy -hYH -xHh -cpO +uoo +fJl +oDg +oDg +oDg +fJl +pAQ +cFU +cFU +lfw +jiW +saI +cFU +cFU +lfw +uEz +tqj +cFU +cFU +lfw +ojQ +fJl +xwH +jEe +irR +yiS +anm +iqY +aQD +whv +fRT +iqY +anm +yiS +irR +jEe +xwH +fJl +ksa +ksa +ksa mZc -pVu -lTB -sfu -fTi -bLy -pYv -uob -xyQ +fGh fuh -ejK -cMv -krE -irR -bzJ -dWS +fGh +mZc +pVu +uyw +ffx +tKX +jxy +nNJ +iLB +xXC +jxy +ybe +xXC +oed +xXC +nNJ +jxy ffx tzc dhE @@ -115369,7 +117055,7 @@ mhc woy nBE nBE -dqu +ezR nBE nBE nBE @@ -115492,66 +117178,66 @@ ksa ksa fEP ksa -fHY -aEc -hOU -cDv -dYt -dYt -dYt -dYt -dYt -vUu -qpO -bIc -hIU -bIc -gOv -deQ -deQ -dJV -deQ -deQ -deQ -kVq -qpd -deQ -deQ -deQ -tgl -pYx -deQ -deQ -gOv -bIc -gAj -eTt -fFr -cTs +oDg +fRT +whv +xfI +fJl +ljv +ljv +ljv +agf +ljv +ljv +ljv +ljv +agf +ljv +ljv +ljv +ljv +agf +oGR +fJl +tPv +fRT +huF +fRT +cMv +iqY +gso +whv +cnk +iqY +cMv +fRT +huF +fRT +bVX +sEO +sEO +sEO sEO -gTp -eDg -tsi bLy -lnm -kQj -uTN +ncg +fuh +fGh mZc -gdp -wEA -wEA -ogk -bLy -dWS -dWS -dWS -dWS -dWS -dWS -dWS -dWS -dWS -dWS +iRq +iLB +iLB +nNJ +jxy +iLB +iLB +iLB +jxy +iLB +iLB +iLB +kJI +iLB +jxy iLB iLB iLB @@ -115748,66 +117434,66 @@ ksa ksa ksa fEP -xXP -fHY -eVi -jhj -cDv -hRe -dYt -wpO -uAP -nYl -cYM -rEL -cmn -kRS -aAM -bXQ -ufy -ufy -ufy -ufy -ufy -ufy -xRJ -xRJ -xRJ -xRJ -xRJ -xRJ -xRJ -xRJ -xRJ -peN -tMy -qjq -rYV -hyd -nJb -vhh -sos -aEg -aEg -kNH -mvc -saI -dQL -svc -qbm -qbm -wjU -ghk +ksa +oDg +fRT +iFl +fRT +hYH +ckD +ckD +kQj +gOA +ckD +ckD +ckD +lHF +gOA +ckD +ckD +ckD +bzX +gOA +ckD +lzL +fRT +fRT +dvl +fRT +cMv +dkU +fRT +whv +tre +dkU +cMv +fRT +dvl +fRT +hWs +sEO +gTp +eDg +tsi +bLy +ocY +ueB +aRz mZc -nNJ +iRq iLB -xXC +iLB +kJI jxy -bUg +oxX +iLB +iLB +jxy +kJI +iLB +iLB iLB -bUg iLB -lKO jxy iLB sKY @@ -115866,7 +117552,7 @@ gmy nIN lfj rzW -wWb +iPZ jRY axo hmZ @@ -115888,7 +117574,7 @@ kIt mhc nep nBE -lox +hsJ pzL ngS khD @@ -116005,57 +117691,57 @@ ksa ksa ksa fEP -ksa -fHY -vTl -hOU -cDv -dYt -dYt -dYt -dYt -dBo -lsX -iqb -wDY -feY -bIc -gOv -jWq -jWq -ifj -jWq -jWq -jWq -vbB -qgL -jWq -jWq -jWq -gTL -hlY -jWq -jWq -gOv -dlt -gAj -lNG -fFr -lns -sEO -wgM -iaL -liB -bLy -aRz -aRz -aRz -mZc -sBT -wEA -mnA -beS -beS +uoo +oDg +tUa +xGH +poS +puX +hlP +hlP +hlP +cpO +cpO +cpO +cpO +cpO +cpO +cpO +cpO +cpO +cpO +cpO +cpO +ayu +rJM +dIY +vqq +dIY +dIY +tCc +dIY +dJv +dIY +tCc +dIY +sCN +aNn +sCN +rEL +vhh +sos +aEg +aEg +kNH +eCE +qWU +cKO +svc +vkw +wic +wic +wic +wic wic wic wic @@ -116108,7 +117794,7 @@ nBE nBE nBE nBE -tLM +kTq nBE nBE nBE @@ -116262,62 +117948,62 @@ ksa ksa ksa fEP -xXP -fKj -feX -hOU -cDv -cDv -dYt -dIY -dYt -wtF -vUu -rDX -cmn -feY -jZt -wtF -oeH -kLj -kLj -kLj -kLj -kLj -arJ -kLj -kLj -kLj -kLj -arJ -kLj -kLj -kLj -wtF -bGH -gAj -bIc -fFr -hqM -sEO -sEO -sEO +ksa +oDg +fRT +poS +fRT +hYH +fZT +fZT +mjk +ybw +fZT +fZT +fZT +aGj +ybw +fZT +fZT +fZT +lnm +ybw +fZT +lzL +ejK +fRT +cQa +fRT +fRT +dkU +nks +jdJ +fRT +dkU +fRT +fRT +qjL +fRT +ejK sEO +wgM +iaL +liB bLy -aIr -fZT -bNi -mZc -aXc -wEA -sfu -pME +aRz +jUX +aRz mZc +xXC +nNJ +ffx +oed +jxy iLB sKY oed jxy -iLB +nNJ oxX umd iLB @@ -116348,7 +118034,7 @@ qnE wzA dXi hKH -ccp +odN rIx eGD gyn @@ -116520,57 +118206,57 @@ ksa ksa fEP ksa -fHY -fHY -hOU -hOU -cDv -dYt -cEx -dYt -wtF -rgV -qOc -dzj -pWP -bHS -wtF -qNL -iMs -iMs -iMs -cOo -iwr -tjB -iMs -iMs -iwO -wgR -tjB -iMs -iMs -uKL -wtF -alq -gAj -bIc -bIc -bIc -bIc -wrt -wtF -xXP -mZc -mZc -mZc -mZc -mZc -mZc +oDg +fRT +poS +sJo +fJl +uym +ljv +ljv +agf +ljv +ljv +ljv +ljv +agf +ljv +ljv +ljv +ljv +agf +ljv +fJl +lYt +fRT +fRT +fRT +cnk +iqY +fRT +jdJ +fRT +iqY +gso +fRT +whv +fRT +ejK +sEO +sEO +sEO +sEO +bLy mZc mZc mZc mZc jxy +jxy +jxy +jxy +jxy +jxy ipF jxy jxy @@ -116776,46 +118462,46 @@ ksa ksa ksa fEP +uoo +gQX +gQX +aaN +gQX +gQX +fNA +sfu +sfu +xNu +kzb +wjU +sfu +sfu +xNu +mvc +xgz +sfu +sfu +xNu +lFh +fJl +oeH +xCE +edf +guJ +eai +iqY +fRT +jdJ +fXY +iqY +eai +xgT +eUV +xCE +oeH +fJl ksa ksa -fHY -feX -feX -cDv -cDv -cDv -cDv -cDv -cDv -cDv -cDv -jhk -cDv -cDv -nBS -dYt -dnc -tVD -vTL -lvp -tVD -jGx -dYt -vmu -nBS -tVD -vse -dYt -vmu -wtF -rnm -gAj -ifN -eTt -bIc -rqP -wgd -wtF ksa jxy niU @@ -117033,46 +118719,46 @@ ksa ksa ksa fEP -fEP -xXP -fKj -fKj -feX -feX -feX -hOU -feX -feX -feX -feX -feX -iIy -ilM -cDv -nBS -dYt -gmo -dYt -vmu -nBS -dYt -jxm -dYt -vmu -nBS -dYt -ogl -dYt -vmu -wtF -rpP -gAj -dzj -dzj -dzj -dzj -cZL -wtF +ksa +aIr +mnA +pYv +mze +gQX +ogZ +fck +mQo +hNt +xoG +ogZ +fck +dQL +hNt +xoG +ogZ +fck +vPr +hNt +xoG +fJl +fJl +fJl +fJl +fJl +fJl +fJl +bQa +jdJ +cuL +fJl +fJl +fJl +fJl +fJl +fJl +fJl +ksa +ksa ksa xWh bUg @@ -117092,7 +118778,7 @@ iLB iLB umd iLB -vZd +nNJ jxy nsA bva @@ -117289,48 +118975,48 @@ ksa ksa ksa ksa -ksa fEP ksa -ksa -fKj -fKj -fKj -fHY -fHY -fHY -fKj -fKj -fKj -nhQ -dmt -sZV -cDv -nHx -rHD -ulT -rHD -oak -gLB -rHD -tSd -rHD -lDW -jYd -rHD -ltp -rHD -mhS -wtF -lzt -aYt -auF -tlL -pGP -auW -plI -wtF -ksa +bzJ +mnA +pYv +jUj +gQX +ogZ +fck +vcn +sbB +xoG +ogZ +fck +vcn +fck +xoG +ogZ +fck +vcn +sbB +xoG +fJl +lAO +fJl +bDK +pGf +bDK +oDg +fRT +jdJ +fRT +oDg +qGN +nzG +snE +fJl +vPK +fJl +uoo +uoo +uoo xWh iRy iLB @@ -117546,48 +119232,48 @@ ksa ksa ksa ksa -ksa -fEP fEP +uoo +bzJ +ujP +pYv +cWj +gQX +jeu +bFZ +dEi +bFZ +eVT +hDE +bFZ +aGG +bFZ +wjZ +nbH +bFZ +oIt +bFZ +cBx +fJl +wxw +fJl +rxv +wuG +wuG +xCP +sMk +jdJ +hsL +evf +aHg +ulp +ltf +fJl +gfR +fJl ksa ksa -xXP -ksa -ksa -xXP -ksa ksa -xpD -fHY -nOu -hOU -hOU -cDv -cDv -cDv -cDv -cDv -cDv -cDv -cDv -cDv -cDv -cDv -cDv -cDv -cDv -cDv -cDv -cDv -cDv -kVn -cDv -cDv -owu -knW -owu -wtF -xXP xWh iLB iLB @@ -117602,7 +119288,7 @@ iLB iLB iLB nnv -nNJ +aQR iLB iLB iLB @@ -117803,47 +119489,47 @@ ksa ksa ksa ksa +fEP +ksa +bzJ +mnA +pYv +mnA +gQX +gQX +gQX +gQX +gQX +gQX +gQX +gQX +gQX +gQX +gQX +gQX +gQX +gQX +gQX +gQX +gQX +eee +fJl +bDK +kQq +bDK +oDg +xyQ +jdJ +fil +oDg +jNK +sMm +ybJ +fJl +wGw +fJl ksa ksa -fEP -fEP -fEP -fEP -fEP -fEP -fEP -xXP -xXP -xXP -fKj -tPv -fKj -hOU -hOU -hOU -hOU -hOU -hOU -hOU -hOU -hOU -hOU -hOU -hOU -hOU -hOU -hOU -hOU -hOU -hOU -hOU -brh -hOU -cDv -pyH -eAg -hsp -wtF ksa jxy tzc @@ -117861,8 +119547,8 @@ cNp nnv niU tKX -tKX -uyw +tln +nNJ aij jxy flJ @@ -118060,48 +119746,48 @@ ksa ksa ksa ksa +fEP ksa +aIr +utt +pYv +pYv +pYv +pYv +pYv +pYv +pYv +pYv +pYv +pYv +pYv +pYv +pYv +pYv +pYv +pYv +jvv +dzo +gQX +jSE +fJl +fJl +fJl +fJl +fJl +gBa +jdJ +mvo +fJl +fJl +fJl +fJl +fJl +nye +fJl ksa ksa ksa -ksa -ksa -ksa -ksa -uoo -ksa -ksa -xXP -xXP -aqA -fKj -fKj -fKj -fKj -fKj -fKj -fKj -fKj -fKj -fKj -fKj -fKj -fKj -fKj -fKj -nnE -nnE -rJp -kMC -gXk -jGu -gvc -cDv -dgH -wML -pTE -wtF -ksa jxy jxy dBr @@ -118195,7 +119881,7 @@ nep mhc tpC nBE -mhc +nep vBP mhc kIt @@ -118252,7 +119938,7 @@ fdt fdt ksa ksa -ksa +sQS ksa ksa ksa @@ -118317,47 +120003,47 @@ ksa ksa ksa ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa fEP -fEP -ksa -ksa -xXP -ksa -xXP -ksa -xXP -ksa -ksa -xXP -ksa -ksa -ksa -ksa -xXP -ksa +uoo +aIr +aIr +aIr +aIr +aIr +aIr +aIr +aIr +mnA +mnA +sDm +mnA +mnA +aIr +aIr +aIr +aIr +mnA +jvv +mnA +gQX +xyQ +xyQ +xyQ +nFt +xyQ +cuP +xyQ +jdJ +fil +olI +fil +mgK +fil +fil +fil +fJl ksa ksa -fKj -bCt -otG -ioq -vqd -hSr -cot -qgu -cDv -jdJ -kIn -aky -wtF ksa jxy oed @@ -118366,12 +120052,12 @@ ybe jxy uZf iLB -iLB +oxX pBc bDa jxy mld -oed +qxJ veJ gJI frv @@ -118445,7 +120131,7 @@ tLM tLM tLM tLM -tLM +uKy tLM tLM tLM @@ -118454,9 +120140,9 @@ tLM iWu tLM vYg -mhc +tpC xcO -mhc +woy mhc kIt nBE @@ -118574,66 +120260,66 @@ ksa ksa ksa ksa +fEP ksa ksa ksa +uoo ksa ksa +uoo ksa +aIr +mUz +mnA +dXk +mnA +cWj +aIr ksa ksa -ksa -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -xXP -fKj -fKj -fKj -fHY -fHY -fHY -fKj -fKj -cDv -wtF -wtF -wtF -wtF -xXP +aIr +gSG +oak +dTN +nwZ +nax +nax +nax +nax +nax +nax +nax +kQP +ufB +ufB +ufB +fRT +fRT +fRT +fRT +fJl +uoo +uoo +uoo xWh ybe iLB oed jxy cye -jSC bWq -jSC -jSC +bWq +bWq +bWq sLP -jSC -jSC -jSC -iRq +bWq +bWq +bWq +bWq iLB gXK -fRx +oxX aij wYc ucv @@ -118675,7 +120361,7 @@ ksR xtT lAZ lAZ -lAZ +qVi nBE mhc tLM @@ -118831,45 +120517,45 @@ ksa ksa ksa ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa fEP -ksa -xXP -ksa -ksa -ksa -xXP -ksa -ksa -ksa -xXP -ksa -xXP +fEP +fEP +fEP +fEP +fEP +fEP +fEP +uoo +aIr +lcH +lcH +jOq +lcH +lcH +aIr +uoo +uoo +aIr +uZm +iLF +mnA +gQX +fRT +gKT +fRT +sCP +cQa +fRT +fRT +hZa +krE +fsK +nks +rHQ +fUK +skA +mPp +fJl ksa ksa ksa @@ -118888,7 +120574,7 @@ xlk jNa iLB exj -vsU +oed jxy nNJ aij @@ -119095,39 +120781,39 @@ ksa ksa ksa ksa +fEP ksa +aIr +ete +xau +jOq +wcL +ete +aIr ksa ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -sQS -ksa -ksa -ksa -ksa -ksa -ksa -ksa -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -xXP +aIr +jCu +sSf +mze +gQX +fJl +fJl +fJl +fJl +bYD +frG +erK +edg +xHh +kmM +bYD +fJl +fJl +fJl +fJl +fJl +uoo jxy jxy jxy @@ -119189,7 +120875,7 @@ gji nBE nBE nBE -nBE +fOn nBE nBE tLM @@ -119352,42 +121038,42 @@ ksa ksa ksa ksa +fEP +uoo +aIr +aIr +bzJ +bzJ +bzJ +aIr +aIr +uoo +uoo +aIr +bzJ +uob +bzJ +aIr ksa +uoo ksa +fJl +kIh +jiE +jiE +bHS +iqb +jiE +kIh +fJl ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +uoo ksa ksa ksa jxy -wri oed +wri ybe jxy bAF @@ -119398,8 +121084,8 @@ daY jxy sKo tvo -lKO -gOs +nNJ +iLB iLB dUM jyf @@ -119434,7 +121120,7 @@ ccp rcp ccp ccp -ccp +odN gji xYl npc @@ -119609,41 +121295,41 @@ ksa ksa ksa ksa +uoo ksa +uoo ksa ksa +uoo ksa ksa -ksa -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -ksa -ksa -ksa -ksa -ksa -ksa +uoo ksa ksa ksa +xBj +dgZ +aJU ksa ksa fEP -ksa -xWh -iLB +uoo +fJl +fJl +fJl +fck +dcC +vZv +fJl +fJl +fJl +uoo +uoo +uoo +jxy +jxy +jxy +qNL aij aij kod @@ -119660,7 +121346,7 @@ aij aij aij aij -gSA +kwI aij aij aij @@ -119866,29 +121552,15 @@ ksa ksa ksa ksa -ksa -ksa -ksa -ksa fEP fEP fEP -ksa -uoo -ksa -ksa -uoo -ksa -ksa -uoo -ksa -ksa -uoo -ksa fEP fEP fEP -ksa +fEP +fEP +fEP ksa ksa ksa @@ -119898,11 +121570,25 @@ ksa ksa ksa fEP -xXP +ksa +fJl +fck +fck +fck +fck +fck +fck +fck +fJl +ksa +uoo +ksa xWh -kWT +doR +xWh +iLB aij -xoa +nNJ jxy vMC daY @@ -119913,7 +121599,7 @@ jxy wpZ iLB jyf -gOs +iLB tKX iLB oed @@ -120127,36 +121813,36 @@ ksa ksa ksa ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa fEP -ksa uoo -ksa -qpw -qpw -qpw -qpw -qpw -qpw -qpw -qpw -qpw -qpw -ksa +fJl +vOG +gDn +fck +mFj +fck +etr +eHI +fJl uoo -ksa -fEP -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -fEP -ksa -xWh +aVH +aVH +lmK +rPn +aMh iLB aij bnz @@ -120384,24 +122070,6 @@ ksa ksa ksa ksa -fEP -uoo -oAN -icE -icE -icE -icE -icE -icE -icE -icE -icE -icE -icE -icE -oAN -uoo -fEP ksa ksa ksa @@ -120413,10 +122081,28 @@ ksa ksa ksa ksa -jxy -bAh +ksa +ksa +fEP +ksa +fJl +fck +fck +fck +fck +fck +fck +fck +fJl +ksa +aVH +ksa +xWh +qjq +xWh +iLB aij -oed +nNJ jxy eOJ ngl @@ -120641,39 +122327,39 @@ ksa ksa ksa ksa -fEP -ksa -oAN -uoo -qpw -qpw -qpw -qpw -qpw -qpw -qpw -qpw -qpw -qpw -uoo -oAN -ksa -fEP -ksa -ksa -ksa -ksa -ksa ksa ksa ksa +fEP +fEP +fEP +fEP +fEP +fEP +fEP ksa ksa ksa +fEP +uoo +fJl +fJl +fJl +fck +wiL +fck +fJl +fJl +fJl +uoo +aVH +uoo jxy jxy -aij jxy +qNL +aij +xXC jxy fXj iUQ @@ -120894,43 +122580,43 @@ ksa ksa ksa ksa +ksa +ksa +ksa +ksa +ksa fEP fEP fEP +ksa +ksa +uoo +ksa +ksa +fEP fEP fEP -uoo -oAN ksa -uoo ksa ksa -uoo ksa ksa -uoo +fJl +fJl +fJl +fJl +fJl ksa ksa -uoo ksa -oAN +aVH ksa -uoo -uoo -uoo -uoo -uoo -uoo -uoo -uoo -kjj -kjj -kjj -kjj -dWS -uKb +ksa +ksa +jxy +xAs aij -uyw +oed jxy soc rWt @@ -121151,43 +122837,43 @@ ksa ksa ksa ksa -fEP ksa -uoo +fEP +fEP +fEP +fEP +fEP ksa uoo ksa -oAN -uoo -qpw -qpw -qpw -qpw -qpw qpw qpw qpw -qpw -qpw -uoo -oAN -uoo -uoo -oAN -oAN -sWc +ksa uoo +ksa +fEP +fEP +fEP +fEP +fEP +ksa +ksa +ksa uoo -kjj -jse -kjj -vGz -tNL -fSX -dWS -xak -aij -tvo +ksa +ksa +ksa +ksa +ksa +aVH +ksa +ksa +ksa +jxy +jxy +gSA +jxy jxy jxy wSk @@ -121354,46 +123040,45 @@ ksa ksa ksa ksa -"} -(191,1,1) = {" -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +"} +(191,1,1) = {" +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa +ksa ksa ksa ksa @@ -121409,42 +123094,43 @@ ksa ksa ksa fEP +fEP +fEP +ksa +ksa uoo -xHX -icE -oAN +ksa +ksa oAN oAN icE icE icE -icE -icE -icE -icE -icE -icE -icE -icE -icE -oAN oAN oAN -oAN -nKr -ker -sWc -bcQ -mHO -tfF -rWH -tfF -jjD -dOx -amE -aij +ksa +ksa +uoo +ksa +ksa +fEP +fEP +fEP +ksa +uoo +ksa +ksa +ksa +ksa +ksa +aVH +uoo +jxy +jxy +jxy +oed aij -qtL +uyw jxy pTI nbF @@ -121664,44 +123350,44 @@ ksa ksa ksa ksa -ksa fEP ksa uoo ksa -uoo -ksa -oAN -uoo -qpw -qpw -qpw -qpw qpw qpw qpw +uoo +oAN +uoo qpw qpw qpw uoo oAN uoo +qpw +qpw +qpw +ksa uoo -oAN -oAN -sWc -uoo +ksa +fEP +ksa uoo -kjj -jse -kjj -rgi -fSi -rTm -dWS -gNB +ksa +ksa +ksa +ksa +ksa +aVH +ksa +xWh iLB -hsf +iLB +nNJ +aij +tvo jxy bxy lzT @@ -121711,7 +123397,7 @@ vxs jxy nNJ iLB -bAh +xXC jxy aMJ aMJ @@ -121752,7 +123438,7 @@ hpb hpb ueH hpb -hpb +hjT hpb hpb wQO @@ -121921,44 +123607,44 @@ ksa ksa ksa ksa -ksa -fEP -fEP -fEP -fEP fEP uoo oAN +oAN +icE +icE +icE +oAN +oAN ksa -uoo -ksa -ksa -uoo ksa ksa -uoo ksa ksa +oAN +oAN +icE +icE +icE +oAN +oAN uoo +fEP ksa -oAN +aVH +aVH +aVH +aVH +aVH +aVH +aVH ksa -uoo -uoo -uoo -xXP -xXP -xXP -xXP -xXP -kjj -kjj -kjj -kjj -dWS -cEM +xWh +kWT iLB -nNJ +iLB +aij +qtL jxy sfm lzT @@ -122178,11 +123864,6 @@ ksa ksa ksa ksa -ksa -ksa -ksa -ksa -ksa fEP ksa oAN @@ -122190,10 +123871,15 @@ uoo qpw qpw qpw +uoo +oAN +uoo qpw qpw qpw -qpw +uoo +oAN +uoo qpw qpw qpw @@ -122202,20 +123888,20 @@ oAN ksa fEP ksa +aVH ksa ksa ksa ksa ksa +uoo ksa -ksa -ksa -ksa -ksa -jxy -jxy -sWa -jxy +xWh +iLB +nNJ +iLB +aij +hsf jxy bEL bEL @@ -122435,44 +124121,44 @@ ksa ksa ksa ksa +fEP +uoo +oAN +ksa ksa ksa ksa -sQS ksa -fEP -uoo oAN -icE -icE -icE -icE -icE -icE -icE -icE -icE +oAN icE icE icE oAN -uoo -fEP +oAN ksa ksa ksa ksa ksa +oAN +uoo +fEP ksa +aVH ksa ksa ksa -fEP ksa -xWh -oed -iLB +ksa +uoo +uoo +jxy +jxy +jxy ybe +aij +nNJ jxy rRt oDn @@ -122482,7 +124168,7 @@ yeV jxy tzc iLB -bAh +xXC jxy aMJ aMJ @@ -122536,7 +124222,7 @@ nIw vBP nep nBE -jyp +vIv acw eHi swz @@ -122546,7 +124232,7 @@ hpY gtq dSU lct -cKq +hpY nBE vJI nep @@ -122687,49 +124373,49 @@ ksa ksa ksa ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +fEP +fEP +fEP +fEP +fEP fEP ksa +oAN uoo -ksa -qpw qpw qpw qpw +uoo +oAN +uoo qpw qpw qpw +uoo +oAN +uoo qpw qpw qpw -ksa uoo +oAN ksa fEP ksa +aVH ksa ksa ksa ksa ksa +uoo ksa ksa ksa -fEP -xXP -xWh -nNJ -iLB -eSr +jxy +jxy +aij +jxy jxy xzw nbF @@ -122792,7 +124478,7 @@ xEx pxW eFs hpb -gkj +nrg gkj gkj gkj @@ -122804,7 +124490,7 @@ njN njN njN njN -gkj +nrg wQO wQO wQO @@ -122942,51 +124628,51 @@ ksa ksa ksa ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa fEP fEP fEP ksa -uoo ksa ksa uoo ksa ksa -uoo -ksa -ksa -uoo -ksa -fEP -fEP -fEP -ksa -ksa -ksa -ksa +oAN +oAN +icE +icE +icE +oAN +oAN ksa ksa ksa ksa ksa -fEP +oAN +oAN +icE +icE +icE +oAN +oAN ksa -xWh -bAh -iLB -oed +uoo +uoo +aVH +uoo +uoo +uoo +uoo +uoo +kjj +kjj +kjj +kjj +dWS +uKb +aij +ybe jxy rDA xJR @@ -123048,7 +124734,7 @@ tpC nBE dbl hur -fKd +tpC nBE hkR vIv @@ -123062,7 +124748,7 @@ lNZ lPf eHi nBE -sFE +nep tpC mhc nBE @@ -123199,51 +124885,51 @@ ksa ksa ksa ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP -fEP fEP ksa +uoo ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -jxy -jxy -hCN -jxy +uoo +qpw +qpw +qpw +uoo +oAN +uoo +qpw +qpw +qpw +uoo +oAN +uoo +qpw +qpw +qpw +uoo +oAN +uoo +qpw +qpw +qpw +uoo +oAN +uoo +uoo +oAN +oAN +sWc +uoo +uoo +kjj +jse +kjj +vGz +tNL +fSX +dWS +xak +aij +uyw jxy jxy jxy @@ -123437,16 +125123,6 @@ ksa ksa ksa ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa cyp ksa ksa @@ -123466,47 +125142,57 @@ ksa ksa ksa ksa +fEP +uoo +xHX +icE +oAN +icE +icE +icE +oAN +oAN ksa ksa ksa ksa ksa +oAN +oAN +icE +icE +icE +oAN +oAN ksa ksa ksa ksa ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -sQS -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -fEP -ksa -xWh -ybe -iLB -ybe +oAN +oAN +oAN +oAN +nKr +ker +sWc +bcQ +mHO +tfF +rWH +tfF +jjD +dOx +amE +aij +aij +oed jxy ybe ybe oed -bAh -bAh +xXC +xXC jxy kJI iLB @@ -123667,45 +125353,8 @@ ksa ksa ksa ksa -"} -(200,1,1) = {" -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +"} +(200,1,1) = {" ksa ksa ksa @@ -123750,12 +125399,49 @@ ksa ksa ksa ksa +fEP ksa +uoo ksa -fEP -xXP -xWh -iLB +uoo +qpw +qpw +qpw +uoo +oAN +uoo +qpw +qpw +qpw +uoo +oAN +uoo +qpw +qpw +qpw +uoo +oAN +uoo +qpw +qpw +qpw +uoo +oAN +uoo +uoo +oAN +oAN +sWc +uoo +uoo +kjj +jse +kjj +rgi +fSi +rTm +dWS +gNB iLB iLB pxp @@ -123841,9 +125527,9 @@ sea mhc uPg nBE -byX -mhc -byX +hve +hve +hve nBE cnU aSD @@ -123970,49 +125656,49 @@ ksa ksa ksa ksa +fEP +fEP +fEP ksa ksa ksa +uoo ksa ksa +oAN +oAN +icE +icE +icE +oAN +oAN ksa ksa +uoo ksa ksa +oAN +oAN +icE +icE +icE +oAN +oAN ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -fEP -ksa -xWh -ybe +uoo +uoo +uoo +xXP +xXP +xXP +xXP +xXP +kjj +kjj +kjj +kjj +dWS +cEM ybe nNJ jxy @@ -124024,7 +125710,7 @@ nNJ jxy lKO tzc -bAh +xXC jxy iLB iLB @@ -124098,13 +125784,13 @@ hKC xhY khF nBE +hve +hve +hve +cNi tpC -mhc -mhc -utc -mhc aSD -qmb +nep cbj uoo noh @@ -124229,34 +125915,34 @@ ksa ksa ksa ksa +fEP +fEP +fEP +fEP +fEP +fEP ksa +uoo ksa +qpw +qpw +qpw ksa +uoo ksa +fEP +fEP +fEP ksa +uoo ksa +qpw +qpw +qpw ksa +uoo ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +fEP ksa ksa ksa @@ -124355,9 +126041,9 @@ btm tzN xaD nBE -byX -mhc -byX +hve +hve +hve nBE uru aSD @@ -124491,29 +126177,29 @@ ksa ksa ksa ksa +fEP +fEP +fEP ksa ksa +uoo ksa ksa +fEP +fEP +fEP ksa +fEP +fEP +fEP ksa ksa +uoo ksa ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +fEP +fEP +fEP ksa ksa ksa @@ -124585,14 +126271,14 @@ uoo ksa tNr tNr +dqu +dqu tNr tNr tNr -tNr -tNr -tNr -tNr -tNr +dqu +dqu +dqu bOr bOr bOr @@ -124750,25 +126436,25 @@ ksa ksa ksa ksa +fEP +fEP +fEP +fEP +fEP +fEP +fEP ksa ksa ksa ksa ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa -ksa +fEP +fEP +fEP +fEP +fEP +fEP +fEP ksa ksa ksa @@ -125902,7 +127588,7 @@ bOr bOr nBE bfQ -eDD +eSE qRN nBE tNr @@ -136182,7 +137868,7 @@ ksa ksa ksa ksa -nLE +ksa ksa ksa ksa diff --git a/_maps/map_files/Deltastation/DeltaStation2.dmm b/_maps/map_files/Deltastation/DeltaStation2.dmm index c3c9e36d4045..b9cdb804bb11 100644 --- a/_maps/map_files/Deltastation/DeltaStation2.dmm +++ b/_maps/map_files/Deltastation/DeltaStation2.dmm @@ -2226,30 +2226,6 @@ }, /turf/open/floor/iron, /area/station/maintenance/disposal) -"axw" = ( -/obj/structure/table/wood, -/obj/item/folder/blue{ - pixel_x = 1; - pixel_y = 2 - }, -/obj/item/folder/blue, -/obj/item/paper_bin/carbon, -/obj/item/stamp{ - pixel_x = -6 - }, -/obj/item/stamp/denied{ - pixel_x = -6; - pixel_y = 4 - }, -/obj/item/stamp/centcom{ - pixel_x = 6 - }, -/obj/item/pen/fountain{ - pixel_y = 10 - }, -/obj/structure/cable, -/turf/open/floor/wood/parquet, -/area/station/command/heads_quarters/nt_rep) "axz" = ( /obj/machinery/light/directional/south, /turf/open/floor/iron, @@ -5548,6 +5524,7 @@ /obj/item/storage/box/monkeycubes/mousecubes, /obj/item/storage/box/monkeycubes/mousecubes, /obj/item/storage/box/monkeycubes/mousecubes, +/obj/effect/turf_decal/trimline/green/filled/line, /turf/open/floor/iron/white, /area/station/medical/pathology) "bmU" = ( @@ -6170,6 +6147,22 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/freezer, /area/station/security/prison/toilet) +"buu" = ( +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/siding/white/corner{ + dir = 4 + }, +/obj/machinery/door/airlock/freezer{ + name = "Coldroom" + }, +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/machinery/duct, +/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, +/turf/open/floor/iron/freezer, +/area/station/service/kitchen/coldroom) "buK" = ( /obj/structure/table/wood/fancy, /turf/open/floor/iron/grimy, @@ -9643,7 +9636,7 @@ /turf/open/floor/iron/dark, /area/station/medical/morgue) "ciO" = ( -/mob/living/basic/drone/snowflake/bardrone, +/obj/effect/mob_spawn/ghost_role/drone/bar, /turf/open/floor/carpet/green, /area/station/command/heads_quarters/nt_rep) "cjh" = ( @@ -13785,6 +13778,11 @@ }, /turf/open/floor/iron/white, /area/station/medical/storage) +"djP" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/vending/barbervend, +/turf/open/floor/iron/dark, +/area/station/service/barber) "djQ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -17023,6 +17021,15 @@ }, /turf/open/floor/iron, /area/station/ai_monitored/command/storage/eva) +"eab" = ( +/obj/effect/turf_decal/trimline/green/filled/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/green/filled/corner{ + dir = 8 + }, +/turf/open/floor/iron/white, +/area/station/medical/pathology) "eae" = ( /obj/structure/table/reinforced, /obj/item/paper_bin, @@ -21417,20 +21424,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/ai_monitored/aisat/exterior) -"fcl" = ( -/obj/effect/turf_decal/tile/red/opposingcorners{ - dir = 1 - }, -/obj/item/reagent_containers/cup/bowl{ - pixel_y = 3 - }, -/obj/machinery/light_switch/directional/north{ - pixel_x = -8; - pixel_y = 23 - }, -/obj/structure/table, -/turf/open/floor/iron/cafeteria, -/area/station/service/barber) "fco" = ( /obj/machinery/chem_master, /obj/effect/turf_decal/tile/yellow/opposingcorners, @@ -26760,20 +26753,6 @@ /obj/machinery/airalarm/directional/north, /turf/open/floor/plating, /area/station/maintenance/port) -"goE" = ( -/obj/structure/closet/secure_closet/personal/cabinet, -/obj/item/clothing/under/rank/centcom/officer, -/obj/item/clothing/under/rank/centcom/officer_skirt, -/obj/item/clothing/under/rank/centcom/intern, -/obj/item/clothing/under/rank/centcom/commander, -/obj/item/clothing/under/rank/centcom/centcom_skirt, -/obj/item/clothing/head/hats/centcom_cap, -/obj/item/clothing/head/hats/centhat, -/obj/item/clothing/glasses/sunglasses, -/obj/item/clothing/suit/armor/centcom_formal, -/obj/machinery/computer/security/telescreen/entertainment/directional/east, -/turf/open/floor/carpet/green, -/area/station/command/heads_quarters/nt_rep) "goG" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -26887,25 +26866,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"gqf" = ( -/obj/effect/turf_decal/tile/red/opposingcorners{ - dir = 1 - }, -/obj/structure/rack, -/obj/effect/turf_decal/bot_red, -/obj/item/clothing/suit/apron/chef{ - desc = "A white smock used by barbers to remain hair free."; - name = "barber smock" - }, -/obj/item/razor{ - pixel_x = 3; - pixel_y = 4 - }, -/obj/item/razor{ - pixel_x = -2 - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/barber) "gqm" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -27075,15 +27035,16 @@ /area/station/smithing) "grE" = ( /obj/machinery/airalarm/directional/west, -/obj/effect/turf_decal/trimline/green/filled/line{ - dir = 10 - }, /obj/machinery/camera/directional/west{ c_tag = "Virology - Work Room"; name = "virology camera"; network = list("ss13","medbay","virology") }, -/turf/open/floor/iron/white, +/obj/effect/turf_decal/stripes/line{ + dir = 5 + }, +/obj/machinery/smartfridge/chemistry/virology/preloaded, +/turf/open/floor/iron, /area/station/medical/pathology) "grM" = ( /obj/structure/disposalpipe/segment{ @@ -32292,22 +32253,6 @@ /obj/item/radio/intercom/directional/north, /turf/open/floor/iron/dark, /area/station/command/bridge) -"hFP" = ( -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/siding/white/corner{ - dir = 4 - }, -/obj/machinery/door/airlock/freezer{ - name = "Coldroom" - }, -/obj/effect/turf_decal/stripes/line, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, -/obj/machinery/duct, -/obj/effect/mapping_helpers/airlock/access/all/service/kitchen, -/turf/open/floor/iron/freezer, -/area/station/service/kitchen/coldroom) "hFZ" = ( /obj/item/reagent_containers/cup/beaker, /obj/item/reagent_containers/syringe/antiviral, @@ -39593,7 +39538,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 }, -/obj/effect/turf_decal/trimline/green/filled/corner{ +/obj/effect/turf_decal/trimline/green/filled/line{ dir = 8 }, /turf/open/floor/iron/white/smooth_large, @@ -41520,6 +41465,21 @@ }, /turf/open/floor/plating, /area/station/maintenance/disposal) +"jMp" = ( +/obj/machinery/door/airlock/corporate{ + id_tag = "BSdoor"; + name = "Blueshield's Office" + }, +/obj/effect/turf_decal/siding/dark_blue/end, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, +/obj/effect/landmark/navigate_destination, +/turf/open/floor/carpet/neon/simple/blue/nodots, +/area/station/command/heads_quarters/blueshield) "jMq" = ( /obj/structure/safe, /obj/item/clothing/neck/stethoscope, @@ -49014,13 +48974,6 @@ }, /turf/open/floor/iron, /area/station/science/research) -"lzM" = ( -/obj/item/paper/pamphlet/violent_video_games, -/obj/effect/spawner/random/entertainment/money_small, -/obj/structure/rack, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron/dark, -/area/station/service/barber) "lzQ" = ( /obj/structure/disposalpipe/trunk{ dir = 4 @@ -49766,6 +49719,21 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"lIa" = ( +/obj/structure/chair/comfy/brown{ + color = "#c45c57"; + desc = "Remarkably soft, with plush cozy cushions, premium memory-foam and covered in stain-resistant fabric. Made by Kat-Kea???!"; + dir = 8; + name = "Premium Cozy Chair" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/effect/landmark/start/nanotrasen_representative, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/nt_rep) "lIl" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -50936,6 +50904,20 @@ }, /turf/open/floor/wood, /area/station/command/heads_quarters/captain) +"lUM" = ( +/obj/machinery/door/airlock/corporate{ + name = "Blueshield's Quarters" + }, +/obj/effect/turf_decal/siding/dark_blue/end{ + dir = 8 + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, +/turf/open/floor/carpet/neon/simple/blue/nodots, +/area/station/command/heads_quarters/blueshield) "lUN" = ( /obj/structure/reagent_dispensers/watertank, /obj/effect/decal/cleanable/dirt, @@ -62782,19 +62764,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/maintenance/department/chapel) -"oTo" = ( -/obj/machinery/door/airlock/corporate{ - id_tag = "BSdoor"; - name = "Blueshield's Office" - }, -/obj/effect/turf_decal/siding/dark_blue/end, -/obj/machinery/door/firedoor, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/access/all/admin/general, -/turf/open/floor/carpet/neon/simple/blue/nodots, -/area/station/command/heads_quarters/blueshield) "oTs" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -68467,6 +68436,27 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/command/bridge) +"qkn" = ( +/obj/structure/table/wood, +/obj/item/folder/blue{ + pixel_x = 1; + pixel_y = 2 + }, +/obj/item/folder/blue, +/obj/item/paper_bin/carbon, +/obj/item/stamp{ + pixel_x = -6 + }, +/obj/item/stamp/denied{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/pen/fountain{ + pixel_y = 10 + }, +/obj/structure/cable, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/nt_rep) "qko" = ( /obj/item/kirbyplants/random, /obj/effect/turf_decal/tile/brown/half{ @@ -76393,6 +76383,34 @@ }, /turf/open/floor/iron/dark, /area/station/science/server) +"sfX" = ( +/obj/effect/turf_decal/tile/red/opposingcorners{ + dir = 1 + }, +/obj/structure/rack, +/obj/effect/turf_decal/bot_red, +/obj/item/clothing/suit/apron/chef{ + desc = "A white smock used by barbers to remain hair free."; + name = "barber smock" + }, +/obj/item/scissors{ + pixel_x = 7; + pixel_y = 5 + }, +/obj/item/razor{ + pixel_x = 3; + pixel_y = 4 + }, +/obj/item/scissors{ + pixel_x = 2; + pixel_y = 1 + }, +/obj/item/razor{ + pixel_x = -2; + pixel_y = 0 + }, +/turf/open/floor/iron/cafeteria, +/area/station/service/barber) "sge" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -77123,18 +77141,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/medical/medbay/lobby) -"sqx" = ( -/obj/machinery/door/airlock/corporate{ - id_tag = "Repdoor"; - name = "Representative's Office" - }, -/obj/effect/mapping_helpers/airlock/access/all/admin/general, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/landmark/navigate_destination, -/turf/open/floor/wood, -/area/station/command/heads_quarters/nt_rep) "sqI" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -82121,19 +82127,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/commons/locker) -"tBd" = ( -/obj/machinery/door/airlock/corporate{ - name = "Blueshield's Quarters" - }, -/obj/effect/turf_decal/siding/dark_blue/end{ - dir = 8 - }, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/access/all/admin/general, -/turf/open/floor/carpet/neon/simple/blue/nodots, -/area/station/command/heads_quarters/blueshield) "tBf" = ( /obj/effect/turf_decal/siding/wood{ dir = 6 @@ -86195,10 +86188,10 @@ /turf/open/floor/iron/dark, /area/station/engineering/main) "uxI" = ( +/obj/machinery/disease2/centrifuge, /obj/effect/turf_decal/stripes/line{ - dir = 5 + dir = 4 }, -/obj/machinery/disease2/centrifuge, /turf/open/floor/iron, /area/station/medical/pathology) "uxY" = ( @@ -88184,6 +88177,19 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/department/science) +"uWX" = ( +/obj/machinery/door/airlock/corporate{ + id_tag = "Repdoor"; + name = "Representative's Office" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/navigate_destination, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, +/turf/open/floor/wood, +/area/station/command/heads_quarters/nt_rep) "uXg" = ( /obj/effect/turf_decal/trimline/hot_pink/filled/line{ dir = 4 @@ -91101,20 +91107,6 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) -"vFM" = ( -/obj/structure/chair/comfy/brown{ - color = "#c45c57"; - desc = "Remarkably soft, with plush cozy cushions, premium memory-foam and covered in stain-resistant fabric. Made by Kat-Kea???!"; - dir = 8; - name = "Premium Cozy Chair" - }, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/north, -/turf/open/floor/wood/parquet, -/area/station/command/heads_quarters/nt_rep) "vFU" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -93318,6 +93310,17 @@ }, /turf/open/floor/iron, /area/station/medical/storage) +"wjs" = ( +/obj/effect/turf_decal/tile/red/opposingcorners{ + dir = 1 + }, +/obj/machinery/light_switch/directional/north{ + pixel_x = -8; + pixel_y = 23 + }, +/obj/structure/closet/secure_closet/barber, +/turf/open/floor/iron/cafeteria, +/area/station/service/barber) "wjA" = ( /obj/effect/turf_decal/trimline/green/filled/corner{ dir = 4 @@ -99968,6 +99971,11 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/service/abandoned_gambling_den/gaming) +"xMu" = ( +/obj/machinery/computer/security/telescreen/entertainment/directional/east, +/obj/structure/closet/secure_closet/nanotrasen_representative, +/turf/open/floor/carpet/green, +/area/station/command/heads_quarters/nt_rep) "xMy" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -133127,7 +133135,7 @@ sIE pVw hXw btc -hFP +buu xAt pEs oTB @@ -133156,7 +133164,7 @@ nXK qAQ aej wce -lzM +djP dvG kKK bNh @@ -135212,7 +135220,7 @@ nXK qAQ qtE tBf -gqf +sfX dvG tGq iEl @@ -135467,7 +135475,7 @@ wjF uED saD lpq -fcl +wjs xpI qAQ dvG @@ -136317,7 +136325,7 @@ tgT qYo tgT hZE -wjV +eab jpN mIg rJG @@ -137762,7 +137770,7 @@ uMA wjO dOZ pwG -tBd +lUM siG siG diL @@ -138022,7 +138030,7 @@ kOj hPv jyy fDC -oTo +jMp vsW tFF bog @@ -143674,9 +143682,9 @@ dvy nnk kOj kqH -axw +qkn gVc -sqx +uWX tch aPY bog @@ -143930,7 +143938,7 @@ sLK dvy lSl pwG -vFM +lIa eJl lLF piR @@ -144444,7 +144452,7 @@ skZ dvy lSl pwG -goE +xMu xkN gti piR diff --git a/_maps/map_files/IceBoxStation/IceBoxStation.dmm b/_maps/map_files/IceBoxStation/IceBoxStation.dmm index be852ed8eab3..45651ea6c53c 100644 --- a/_maps/map_files/IceBoxStation/IceBoxStation.dmm +++ b/_maps/map_files/IceBoxStation/IceBoxStation.dmm @@ -71,6 +71,23 @@ /obj/item/clothing/head/helmet/skull, /turf/open/misc/asteroid/snow/icemoon, /area/icemoon/underground/explored) +"abJ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/command{ + name = "Teleport Access" + }, +/obj/structure/cable, +/obj/effect/landmark/navigate_destination, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/any/command/teleporter, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, +/turf/open/floor/iron, +/area/station/command/teleporter) "abL" = ( /obj/machinery/light/directional/north, /obj/structure/sign/warning/secure_area/directional/north, @@ -2625,34 +2642,6 @@ /obj/machinery/meter/layer4, /turf/open/floor/plating, /area/station/maintenance/department/medical/central) -"aTw" = ( -/obj/structure/table/wood, -/obj/item/folder/blue{ - pixel_x = 1; - pixel_y = 2 - }, -/obj/item/folder/blue, -/obj/item/stamp/denied{ - pixel_x = -6; - pixel_y = 4 - }, -/obj/item/stamp{ - pixel_x = -6 - }, -/obj/item/paper_bin/carbon{ - pixel_x = 14; - pixel_y = 3 - }, -/obj/item/pen/fountain{ - pixel_y = 10 - }, -/obj/item/stamp/centcom{ - pixel_x = 6 - }, -/obj/structure/window/spawner/directional/west, -/obj/machinery/airalarm/directional/north, -/turf/open/floor/carpet/green, -/area/station/command/heads_quarters/nt_rep) "aTG" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -3444,6 +3433,10 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/hallway/primary/central) +"beB" = ( +/obj/machinery/vending/barbervend, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) "beO" = ( /obj/structure/reagent_dispensers/fueltank, /turf/open/floor/plating, @@ -10837,22 +10830,6 @@ /obj/structure/ladder, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"dmG" = ( -/obj/effect/mapping_helpers/airlock/access/all/admin/general, -/obj/machinery/door/airlock/corporate{ - id_tag = "Repdoor"; - name = "Representative's Office" - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/door/firedoor, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/landmark/navigate_destination, -/turf/open/floor/wood, -/area/station/command/heads_quarters/nt_rep) "dmI" = ( /obj/machinery/chem_master, /obj/effect/turf_decal/tile/yellow/full, @@ -24054,9 +24031,6 @@ "hHN" = ( /turf/open/floor/iron, /area/station/engineering/atmos) -"hHU" = ( -/turf/open/floor/plating, -/area/station/maintenance/department/crew_quarters/bar) "hHV" = ( /obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/nitrogen_output{ dir = 1 @@ -27923,6 +27897,10 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/engine/plasma, /area/station/engineering/atmos) +"iUc" = ( +/obj/structure/closet/secure_closet/barber, +/turf/open/floor/plating, +/area/station/maintenance/department/crew_quarters/bar) "iUd" = ( /obj/machinery/conveyor{ dir = 6; @@ -28941,17 +28919,6 @@ /obj/machinery/light/directional/east, /turf/open/floor/grass, /area/station/service/hydroponics) -"jly" = ( -/obj/structure/chair/comfy/brown{ - color = "#c45c57"; - desc = "Remarkably soft, with plush cozy cushions, premium memory-foam and covered in stain-resistant fabric. Made by Kat-Kea???!"; - dir = 4; - name = "Premium Cozy Chair" - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/carpet/green, -/area/station/command/heads_quarters/nt_rep) "jlF" = ( /obj/machinery/computer/arcade/amputation{ dir = 4 @@ -33337,6 +33304,19 @@ }, /turf/open/floor/glass/reinforced, /area/station/engineering/atmos/pumproom) +"kFN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/door/airlock/corporate{ + id_tag = "BSdoor"; + name = "Blueshield's Office" + }, +/obj/effect/landmark/navigate_destination, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, +/turf/open/floor/carpet, +/area/station/command/heads_quarters/blueshield) "kFO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -42885,6 +42865,31 @@ /obj/effect/mapping_helpers/mail_sorting/supply/cargo_bay, /turf/open/floor/iron, /area/station/cargo/office) +"nEC" = ( +/obj/structure/table/wood, +/obj/item/folder/blue{ + pixel_x = 1; + pixel_y = 2 + }, +/obj/item/folder/blue, +/obj/item/stamp/denied{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/stamp{ + pixel_x = -6 + }, +/obj/item/paper_bin/carbon{ + pixel_x = 14; + pixel_y = 3 + }, +/obj/item/pen/fountain{ + pixel_y = 10 + }, +/obj/structure/window/spawner/directional/west, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/carpet/green, +/area/station/command/heads_quarters/nt_rep) "nEZ" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -46524,6 +46529,23 @@ /obj/machinery/light/warm/directional/west, /turf/open/floor/iron, /area/station/security/prison/workout) +"oKk" = ( +/obj/machinery/door/airlock/corporate{ + id_tag = "Repdoor"; + name = "Representative's Office" + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/navigate_destination, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, +/turf/open/floor/wood, +/area/station/command/heads_quarters/nt_rep) "oKv" = ( /obj/item/trash/popcorn, /turf/open/floor/plating, @@ -50580,18 +50602,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/engineering/atmos) -"pYs" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/door/airlock/corporate{ - id_tag = "BSdoor"; - name = "Blueshield's Office" - }, -/obj/effect/landmark/navigate_destination, -/obj/effect/mapping_helpers/airlock/access/all/admin/general, -/turf/open/floor/carpet, -/area/station/command/heads_quarters/blueshield) "pYz" = ( /obj/machinery/door/firedoor/border_only, /turf/open/floor/iron/dark/corner{ @@ -50904,6 +50914,18 @@ /obj/machinery/duct, /turf/open/floor/iron, /area/station/security/processing) +"qeW" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/machinery/camera/directional/north{ + c_tag = "Teleporter" + }, +/obj/structure/closet/secure_closet/nanotrasen_representative, +/turf/open/floor/wood, +/area/station/command/heads_quarters/nt_rep) "qfh" = ( /turf/open/floor/iron/recharge_floor, /area/station/science/robotics/mechbay) @@ -55810,27 +55832,6 @@ /obj/effect/landmark/start/assistant, /turf/open/floor/iron/grimy, /area/station/hallway/secondary/entry) -"rLe" = ( -/obj/structure/closet/secure_closet/personal/cabinet, -/obj/item/clothing/under/rank/centcom/officer, -/obj/item/clothing/under/rank/centcom/officer_skirt, -/obj/item/clothing/under/rank/centcom/intern, -/obj/item/clothing/under/rank/centcom/commander, -/obj/item/clothing/under/rank/centcom/centcom_skirt, -/obj/item/clothing/head/hats/centcom_cap, -/obj/item/clothing/head/hats/centhat, -/obj/item/clothing/glasses/sunglasses, -/obj/item/clothing/suit/armor/centcom_formal, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable, -/obj/machinery/camera/directional/north{ - c_tag = "Teleporter" - }, -/turf/open/floor/wood, -/area/station/command/heads_quarters/nt_rep) "rLo" = ( /turf/open/floor/plating, /area/station/cargo/miningdock) @@ -56539,21 +56540,6 @@ /obj/machinery/duct, /turf/open/floor/glass/reinforced, /area/station/science/xenobiology) -"rXN" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/command{ - name = "Teleport Access" - }, -/obj/structure/cable, -/obj/effect/landmark/navigate_destination, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/airlock/access/all/command/teleporter, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/command/teleporter) "rXX" = ( /obj/machinery/door/airlock/external{ name = "Labor Camp Shuttle Airlock"; @@ -58297,6 +58283,21 @@ /obj/machinery/vending/cigarette, /turf/open/floor/iron/dark, /area/station/hallway/primary/central) +"sAF" = ( +/obj/structure/sign/warning/secure_area/directional/west, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/corporate{ + id_tag = "Repdoor"; + name = "Representative's Office" + }, +/obj/structure/disposalpipe/segment, +/obj/effect/mapping_helpers/airlock/access/any/command/teleporter, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, +/turf/open/floor/iron, +/area/station/maintenance/central/lesser) "sAI" = ( /obj/machinery/camera{ c_tag = "Morgue Hallway" @@ -59355,19 +59356,6 @@ /obj/structure/microscope, /turf/open/floor/iron/grimy, /area/station/security/prison/work) -"sTV" = ( -/obj/structure/sign/warning/secure_area/directional/west, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/airlock/corporate{ - id_tag = "Repdoor"; - name = "Representative's Office" - }, -/obj/structure/disposalpipe/segment, -/obj/effect/mapping_helpers/airlock/access/all/command/teleporter, -/turf/open/floor/iron, -/area/station/maintenance/central/lesser) "sUi" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -72309,6 +72297,18 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron, /area/station/hallway/secondary/service) +"xdg" = ( +/obj/structure/chair/comfy/brown{ + color = "#c45c57"; + desc = "Remarkably soft, with plush cozy cushions, premium memory-foam and covered in stain-resistant fabric. Made by Kat-Kea???!"; + dir = 4; + name = "Premium Cozy Chair" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/start/nanotrasen_representative, +/turf/open/floor/carpet/green, +/area/station/command/heads_quarters/nt_rep) "xdl" = ( /obj/structure/cable, /turf/open/floor/iron/white, @@ -178000,8 +178000,8 @@ fWU fWU dMS fkJ -hHU -hHU +beB +iUc dMS nCJ dMS @@ -233005,7 +233005,7 @@ gfr fnv pPM fjt -pYs +kFN umE ujA eYd @@ -237636,7 +237636,7 @@ lpM tYq sqU olH -rLe +qeW euf jzn olH @@ -237893,8 +237893,8 @@ nkb anu xLF olH -aTw -jly +nEC +xdg fXb olH nKe @@ -238923,7 +238923,7 @@ sIt sIt log olH -dmG +oKk olH aTG hGh @@ -239181,7 +239181,7 @@ wdg pqu bVv mZe -sTV +sAF pwf oUL qKz @@ -239440,7 +239440,7 @@ gJR sIt log mhQ -rXN +abJ mhQ mhQ cjR diff --git a/_maps/map_files/KiloStation/KiloStation.dmm b/_maps/map_files/KiloStation/KiloStation.dmm index 2fbc8db0e329..4d310a600bef 100644 --- a/_maps/map_files/KiloStation/KiloStation.dmm +++ b/_maps/map_files/KiloStation/KiloStation.dmm @@ -426,8 +426,11 @@ /area/station/ai_monitored/turret_protected/aisat/atmos) "adV" = ( /obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark/textured_large, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "aed" = ( /obj/effect/turf_decal/bot, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -656,7 +659,7 @@ pixel_y = -6 }, /turf/open/floor/iron/dark/textured, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "agy" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters{ @@ -1310,7 +1313,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, -/area/station/hallway/secondary/entry) +/area/station/maintenance/starboard/aft) "aqm" = ( /obj/machinery/newscaster/directional/north, /obj/effect/turf_decal/trimline/hot_pink/filled/line{ @@ -1337,20 +1340,12 @@ dir = 8 }, /turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "aqt" = ( -/obj/machinery/door/airlock/atmos{ - name = "Atmospherics Connector" - }, -/obj/effect/turf_decal/delivery, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/airlock/abandoned, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 1 - }, -/obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, /turf/open/floor/iron/dark, -/area/station/maintenance/port/greater) +/area/station/service/kitchen/abandoned) "aqv" = ( /obj/structure/transit_tube/junction, /obj/structure/lattice/catwalk, @@ -1466,10 +1461,9 @@ /obj/effect/turf_decal/stripes/corner{ dir = 4 }, -/obj/machinery/power/apc/auto_name/directional/east, /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, -/area/station/hallway/secondary/entry) +/area/station/maintenance/starboard/aft) "ath" = ( /obj/effect/turf_decal/delivery, /obj/structure/closet/crate/engineering, @@ -1538,6 +1532,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/light/small/directional/north, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/crew_quarters/bar) "avo" = ( @@ -1710,6 +1705,8 @@ "axJ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/ghost_critter_spawn, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/moisture_trap, /turf/open/floor/plating, /area/station/maintenance/aft) "axT" = ( @@ -2214,6 +2211,7 @@ /obj/structure/cable, /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/broken_floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/port/greater) "aHD" = ( @@ -2256,7 +2254,7 @@ /obj/item/shard, /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, -/area/station/maintenance/fore) +/area/station/medical/abandoned) "aIw" = ( /obj/effect/landmark/secequipment, /obj/effect/turf_decal/bot, @@ -2469,8 +2467,11 @@ /obj/machinery/door/airlock/wood{ name = "You Know Why You're Here" }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark/textured, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "aLv" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral/half/contrasted, @@ -2515,6 +2516,13 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/service/hydroponics) +"aMk" = ( +/obj/structure/dresser, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral/half/contrasted, +/turf/open/floor/iron/dark, +/area/station/service/theater/abandoned) "aMp" = ( /obj/machinery/door/airlock/maintenance{ name = "Cargo Maintenance" @@ -2583,7 +2591,7 @@ dir = 1 }, /turf/open/floor/iron/dark, -/area/station/maintenance/fore) +/area/station/medical/abandoned) "aND" = ( /turf/closed/wall/r_wall, /area/station/science/lab) @@ -2962,10 +2970,6 @@ /obj/structure/safe{ pixel_x = 3 }, -/obj/item/stack/spacecash/c500{ - pixel_x = -2; - pixel_y = -2 - }, /obj/item/storage/belt/bandolier, /obj/item/gun/ballistic/rifle/boltaction/pipegun, /obj/effect/decal/cleanable/dirt, @@ -3515,20 +3519,20 @@ /turf/open/floor/iron, /area/station/hallway/primary/starboard) "bed" = ( -/obj/machinery/door/airlock/maintenance, -/obj/effect/mapping_helpers/airlock/abandoned, -/obj/structure/barricade/wooden/crude, -/obj/effect/decal/cleanable/dirt, /obj/structure/sign/warning/biohazard/directional/east, -/obj/structure/cable, /obj/effect/mapping_helpers/airlock/unres{ dir = 1 }, /obj/effect/mapping_helpers/airlock/access/any/science/maintenance, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/door/airlock/medical{ + name = "Abandoned Medbay" + }, /turf/open/floor/iron/dark, -/area/station/maintenance/fore) +/area/station/medical/abandoned) "beo" = ( /obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, @@ -3634,8 +3638,8 @@ /area/station/security/checkpoint/science/research) "bhy" = ( /obj/effect/turf_decal/stripes/corner, -/obj/structure/closet/cardboard, /obj/structure/sign/poster/contraband/random/directional/north, +/obj/effect/spawner/random/trash/moisture_trap, /turf/open/floor/iron/dark/textured_large, /area/station/maintenance/starboard) "bhB" = ( @@ -3842,8 +3846,9 @@ /obj/effect/decal/cleanable/blood/gibs/old, /obj/effect/decal/cleanable/blood/old, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, /turf/open/floor/wood, -/area/station/maintenance/port/fore) +/area/station/service/theater/abandoned) "bla" = ( /obj/effect/turf_decal/tile/purple, /obj/effect/turf_decal/tile/purple/half/contrasted{ @@ -3858,6 +3863,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/decal/cleanable/blood, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard) "bln" = ( @@ -4024,8 +4030,9 @@ /obj/effect/turf_decal/trimline/dark/filled/line{ dir = 5 }, +/obj/machinery/airalarm/directional/north, /turf/open/floor/iron/dark/textured_large, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "boR" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/tile/yellow{ @@ -4082,7 +4089,7 @@ pixel_x = -4 }, /turf/open/floor/glass, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "bqd" = ( /obj/structure/chair/sofa/bench/left{ dir = 1 @@ -4169,7 +4176,7 @@ /obj/effect/spawner/structure/window/hollow/reinforced/directional, /obj/structure/cable, /turf/open/floor/plating, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "brH" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -4457,6 +4464,7 @@ "bvR" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/moisture_trap, /turf/open/floor/plating, /area/station/maintenance/port/aft) "bwe" = ( @@ -4515,6 +4523,10 @@ /obj/effect/spawner/random/engineering/tracking_beacon, /turf/open/floor/engine/vacuum, /area/station/science/ordnance/bomb) +"bxw" = ( +/obj/structure/sign/warning/secure_area, +/turf/closed/wall/r_wall, +/area/station/command/heads_quarters/nt_rep) "bxx" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ @@ -4586,16 +4598,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/hallway/primary/port) -"bza" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/space_heater, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/blood/old, -/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/hallway/primary/aft) "bzb" = ( /obj/structure/grille, /obj/effect/turf_decal/stripes/line{ @@ -4658,6 +4660,7 @@ /obj/effect/turf_decal/trimline/piss_yellow/filled/line{ dir = 5 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/textured_corner{ dir = 8 }, @@ -4758,18 +4761,6 @@ /obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, /turf/open/floor/iron/dark, /area/station/maintenance/port/greater) -"bBr" = ( -/obj/machinery/door/airlock/engineering{ - name = "Emergency Storage" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 1 - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, -/turf/open/floor/iron/dark, -/area/station/hallway/primary/aft) "bBE" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ dir = 4 @@ -4893,8 +4884,9 @@ /obj/effect/turf_decal/siding/wood/corner{ dir = 1 }, +/obj/structure/cable, /turf/open/floor/plating/rust, -/area/station/maintenance/department/crew_quarters/bar) +/area/station/service/hydroponics/garden/abandoned) "bEs" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -4989,7 +4981,7 @@ }, /obj/effect/spawner/random/trash/garbage, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "bGE" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -5085,6 +5077,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/port/greater) "bIm" = ( @@ -5331,6 +5324,7 @@ }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard) "bLf" = ( @@ -5350,8 +5344,9 @@ /obj/structure/grille/broken, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, /turf/open/floor/plating, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "bLL" = ( /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -5570,6 +5565,10 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard) +"bOQ" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plastic, +/area/station/service/abandoned_gambling_den) "bPb" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -5597,6 +5596,19 @@ /obj/effect/mapping_helpers/airlock/access/all/security/general, /turf/open/floor/iron/showroomfloor, /area/station/security/brig) +"bPt" = ( +/obj/machinery/airalarm/directional/south, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/yellow/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red/opposingcorners, +/obj/structure/table, +/obj/machinery/processor{ + pixel_y = 1 + }, +/turf/open/floor/iron/showroomfloor, +/area/station/service/kitchen/abandoned) "bPx" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/red/filled/corner{ @@ -5634,7 +5646,7 @@ /obj/effect/turf_decal/stripes/line, /obj/effect/decal/cleanable/blood, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "bPP" = ( /obj/effect/turf_decal/stripes/line, /obj/structure/flora/grass/jungle/b/style_random, @@ -5827,7 +5839,15 @@ /obj/structure/cable, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, -/area/station/maintenance/fore) +/area/station/medical/abandoned) +"bSD" = ( +/obj/effect/turf_decal/tile/yellow/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red/opposingcorners, +/obj/structure/sign/poster/contraband/random/directional/north, +/turf/open/floor/iron/showroomfloor, +/area/station/service/kitchen/abandoned) "bSN" = ( /obj/machinery/plumbing/ooze_sucker{ mapping_id = "3"; @@ -5855,6 +5875,12 @@ }, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/captain) +"bTu" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/light/dim/directional/south, +/obj/structure/closet/secure_closet/freezer/kitchen/maintenance, +/turf/open/floor/plating, +/area/station/service/kitchen/abandoned) "bTE" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -6323,7 +6349,7 @@ dir = 6 }, /turf/open/floor/iron/dark/textured, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "bZN" = ( /obj/structure/table/glass, /obj/item/clothing/glasses/hud/health{ @@ -6406,8 +6432,9 @@ "caL" = ( /obj/structure/closet/cardboard, /obj/effect/mapping_helpers/broken_floor, +/obj/structure/sign/poster/contraband/random/directional/east, /turf/open/floor/wood, -/area/station/maintenance/port/fore) +/area/station/service/theater/abandoned) "caN" = ( /obj/structure/sign/warning/fire/directional/west, /obj/machinery/firealarm/directional/south, @@ -6518,10 +6545,14 @@ dir = 1 }, /obj/machinery/airalarm/directional/west, -/obj/machinery/status_display/ai/directional/north, /obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 1 }, +/obj/item/kirbyplants{ + icon_state = "applebush" + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/secondary/entry) "ccr" = ( @@ -6544,10 +6575,6 @@ }, /turf/open/floor/carpet/neon/simple/green, /area/station/science/xenobiology) -"ccz" = ( -/obj/effect/decal/cleanable/cobweb, -/turf/closed/mineral/random/labormineral, -/area/space/nearstation) "ccG" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -6587,7 +6614,7 @@ /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "ccX" = ( /obj/structure/lattice, /obj/structure/window/reinforced/spawner/directional/west, @@ -6808,18 +6835,24 @@ /obj/structure/safe{ pixel_x = 3 }, -/obj/item/stack/spacecash/c500{ - pixel_x = -2; - pixel_y = -2 - }, -/obj/item/lazarus_injector, /obj/effect/decal/cleanable/dirt, /obj/structure/spider/stickyweb, /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 4 }, +/obj/item/stack/spacecash/c1000, +/obj/item/stack/spacecash/c1000, +/obj/item/stack/spacecash/c1000, +/obj/item/lazarus_injector, /turf/open/floor/iron/dark, /area/station/maintenance/port/greater) +"cfQ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/sign/poster/contraband/random/directional/west, +/turf/open/floor/wood/large, +/area/station/command/heads_quarters/nt_rep) "cfR" = ( /obj/structure/table/reinforced, /obj/effect/turf_decal/delivery, @@ -6907,21 +6940,6 @@ }, /turf/open/floor/iron/recharge_floor, /area/station/maintenance/port/aft) -"cgW" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/firedoor, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/door/airlock/corporate{ - id_tag = "BSdoor"; - name = "Blueshield's Office" - }, -/obj/effect/mapping_helpers/airlock/access/all/admin/general, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/blueshield) "cgX" = ( /obj/structure/rack, /obj/item/wirecutters{ @@ -6947,6 +6965,9 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/port/lesser) +"chk" = ( +/turf/closed/wall/r_wall, +/area/station/service/theater/abandoned) "chp" = ( /obj/effect/turf_decal/tile/blue/anticorner/contrasted{ dir = 8 @@ -7154,17 +7175,13 @@ /turf/open/floor/iron, /area/station/engineering/atmos) "cjx" = ( -/obj/effect/turf_decal/stripes/line, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/cobweb, /obj/structure/cable, -/obj/effect/turf_decal/stripes/line{ - dir = 1 - }, /obj/effect/mapping_helpers/burnt_floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, -/area/station/maintenance/port/greater) +/area/station/service/kitchen/abandoned) "cjR" = ( /obj/structure/railing/corner{ dir = 8 @@ -7429,7 +7446,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/glass, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "cnc" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/sign/warning/vacuum/external/directional/south, @@ -8020,13 +8037,13 @@ name = "EMERGENCY STORAGE" }, /turf/closed/wall, -/area/station/hallway/secondary/entry) +/area/station/maintenance/starboard/aft) "cvT" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/blobstart, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, -/area/station/maintenance/fore) +/area/station/medical/abandoned) "cwf" = ( /obj/structure/chair/office/light{ dir = 4 @@ -8084,6 +8101,15 @@ /obj/effect/mapping_helpers/airlock/access/any/medical/general, /turf/open/floor/iron/dark, /area/station/medical/treatment_center) +"cwA" = ( +/obj/machinery/griddle, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/yellow/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red/opposingcorners, +/turf/open/floor/iron/showroomfloor, +/area/station/service/kitchen/abandoned) "cwL" = ( /obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/unres, @@ -8158,16 +8184,6 @@ /obj/effect/mapping_helpers/airlock/access/all/command/eva, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/eva) -"czv" = ( -/obj/machinery/light_switch/directional/west, -/obj/structure/chair/office{ - dir = 4 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/turf/open/floor/wood/large, -/area/station/command/heads_quarters/nt_rep) "czy" = ( /obj/machinery/door/airlock/external/glass{ name = "Supply Door Airlock" @@ -8422,7 +8438,7 @@ /obj/structure/bookcase/random/fiction, /obj/effect/decal/cleanable/cobweb, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard/fore) +/area/station/service/library/abandoned) "cFk" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ @@ -9026,7 +9042,7 @@ dir = 10 }, /turf/open/floor/iron/dark/textured_large, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "cOp" = ( /obj/structure/sign/warning/docking, /turf/closed/wall/rust, @@ -9227,12 +9243,6 @@ }, /turf/open/floor/circuit, /area/station/ai_monitored/turret_protected/ai_upload) -"cTi" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/burnt_floor, -/turf/open/floor/plating, -/area/station/hallway/primary/aft) "cTw" = ( /obj/item/toy/plush/lizard_plushie, /turf/open/floor/plating, @@ -9299,8 +9309,9 @@ /area/station/maintenance/department/medical/central) "cUT" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/airalarm/directional/south, /turf/open/floor/wood, -/area/station/maintenance/port/fore) +/area/station/service/theater/abandoned) "cVb" = ( /obj/machinery/atmospherics/pipe/smart/simple/green/visible{ dir = 4 @@ -9644,6 +9655,7 @@ /obj/structure/cable, /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/burnt_floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/port/greater) "cYA" = ( @@ -9702,8 +9714,10 @@ dir = 8 }, /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark/textured, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "cZK" = ( /obj/structure/lattice, /obj/machinery/atmospherics/components/unary/passive_vent{ @@ -9802,6 +9816,8 @@ /obj/effect/turf_decal/siding/wood{ dir = 5 }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/dim/directional/north, /turf/open/floor/iron/vaporwave, /area/station/service/library) "dcj" = ( @@ -9820,10 +9836,6 @@ dir = 4 }, /area/station/hallway/primary/fore) -"dcm" = ( -/obj/structure/sign/warning/secure_area, -/turf/closed/wall, -/area/station/command/heads_quarters/nt_rep) "dcn" = ( /obj/effect/turf_decal/bot, /obj/machinery/quantum_server{ @@ -9879,6 +9891,15 @@ }, /turf/open/floor/wood, /area/station/service/bar/atrium) +"ddN" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/yellow/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red/opposingcorners, +/turf/open/floor/iron/showroomfloor, +/area/station/service/kitchen/abandoned) "ddP" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -10165,7 +10186,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/trash/garbage, /turf/open/floor/plating, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "dix" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ @@ -10214,8 +10235,9 @@ dir = 1 }, /obj/effect/decal/cleanable/dirt, +/obj/machinery/light_switch/directional/south, /turf/open/floor/glass, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "djC" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -10237,7 +10259,7 @@ dir = 4 }, /turf/open/floor/plating, -/area/station/hallway/secondary/entry) +/area/station/maintenance/starboard/aft) "djW" = ( /obj/machinery/airalarm/directional/south, /obj/machinery/camera/directional/south{ @@ -10522,13 +10544,6 @@ /obj/effect/turf_decal/tile/blue, /turf/open/floor/iron, /area/station/engineering/atmos) -"doj" = ( -/obj/effect/turf_decal/stripes/corner, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/west, -/turf/open/floor/plating, -/area/station/hallway/primary/aft) "dok" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ @@ -10646,7 +10661,7 @@ pixel_x = -16 }, /turf/open/floor/plastic, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "dpw" = ( /obj/structure/chair, /obj/effect/landmark/start/security_officer, @@ -10785,19 +10800,6 @@ /obj/machinery/portable_atmospherics/canister, /turf/open/floor/iron/dark, /area/station/science/ordnance/storage) -"drC" = ( -/obj/structure/table, -/obj/effect/decal/cleanable/blood/old, -/obj/item/clothing/gloves/color/black, -/obj/item/wrench, -/obj/structure/sign/warning/no_smoking{ - pixel_x = 30 - }, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/hallway/primary/aft) "drG" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -10821,6 +10823,10 @@ dir = 4 }, /area/station/hallway/primary/port) +"drL" = ( +/obj/machinery/light_switch/directional/west, +/turf/closed/wall, +/area/station/service/library) "dsc" = ( /obj/machinery/door/airlock/command/glass{ name = "Control Room" @@ -11322,7 +11328,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, -/area/station/maintenance/department/crew_quarters/bar) +/area/station/service/hydroponics/garden/abandoned) "dBg" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/broken_floor, @@ -11529,6 +11535,15 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"dGi" = ( +/obj/structure/chair/stool/bar/directional/west, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/yellow/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red/opposingcorners, +/turf/open/floor/iron/showroomfloor, +/area/station/service/kitchen/abandoned) "dGm" = ( /obj/machinery/atmospherics/components/unary/artifact_heatingpad{ dir = 4 @@ -11542,7 +11557,7 @@ }, /obj/structure/cable, /turf/open/floor/plating, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "dGB" = ( /obj/effect/turf_decal/tile/yellow, /obj/effect/turf_decal/tile/neutral, @@ -11560,7 +11575,6 @@ /obj/effect/turf_decal/stripes/corner{ dir = 1 }, -/obj/structure/cable, /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, /area/station/maintenance/port/fore) @@ -11652,8 +11666,11 @@ /area/station/service/chapel/office) "dIi" = ( /obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plastic, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "dIn" = ( /obj/structure/table/wood, /obj/structure/cable, @@ -11916,6 +11933,11 @@ /obj/effect/turf_decal/tile/neutral/opposingcorners, /turf/open/floor/iron/showroomfloor, /area/station/engineering/atmos) +"dKY" = ( +/obj/effect/turf_decal/tile/neutral/fourcorners, +/obj/structure/cable, +/turf/open/floor/iron/showroomfloor, +/area/station/medical/storage) "dKZ" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -12063,6 +12085,12 @@ }, /turf/closed/wall/r_wall, /area/station/engineering/atmos/pumproom) +"dNl" = ( +/obj/structure/frame/machine/secured, +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/light_switch/directional/north, +/turf/open/floor/plating, +/area/station/service/kitchen/abandoned) "dOc" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -12263,6 +12291,12 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron/dark, /area/station/security/courtroom) +"dRs" = ( +/obj/effect/turf_decal/stripes/corner, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/moisture_trap, +/turf/open/floor/plating, +/area/station/maintenance/department/security/upper) "dRv" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -12435,6 +12469,7 @@ "dTQ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/yellow/half/contrasted, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/showroomfloor, /area/station/medical/chemistry) "dTT" = ( @@ -12745,10 +12780,11 @@ "dZR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/broken_floor, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, /turf/open/floor/plating, -/area/station/hallway/secondary/entry) +/area/station/maintenance/starboard/aft) "dZS" = ( /obj/machinery/door/airlock/atmos/glass, /obj/effect/mapping_helpers/airlock/cyclelink_helper, @@ -12783,6 +12819,13 @@ /obj/effect/turf_decal/tile/neutral/anticorner/contrasted, /turf/open/floor/iron/dark, /area/station/engineering/lobby) +"eaI" = ( +/obj/effect/decal/cleanable/oil, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/department/security/upper) "eaR" = ( /obj/effect/turf_decal/trimline/piss_yellow/filled/line{ dir = 4 @@ -12802,15 +12845,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "ebh" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/department/medical/pathology) "ebp" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/components/unary/bluespace_sender, +/obj/structure/table, +/obj/item/pipe_dispenser, /turf/open/floor/iron/dark, /area/station/engineering/atmos) "eby" = ( @@ -13064,6 +13107,11 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/hallway/primary/central) +"efg" = ( +/obj/structure/table, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/service/kitchen/abandoned) "efq" = ( /obj/structure/disposalpipe/segment, /obj/machinery/light/neon_lining{ @@ -13295,31 +13343,6 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/iron/dark, /area/station/security/prison/garden) -"eix" = ( -/obj/structure/table/wood, -/obj/effect/turf_decal/tile/neutral/opposingcorners, -/obj/item/paper_bin{ - pixel_x = -5 - }, -/obj/item/pen{ - pixel_x = -5 - }, -/obj/item/stamp{ - pixel_x = -6; - pixel_y = -2 - }, -/obj/item/stamp/centcom{ - pixel_y = 7 - }, -/obj/item/stamp/denied{ - pixel_x = 6; - pixel_y = -3 - }, -/obj/effect/turf_decal/tile/dark_green/opposingcorners{ - dir = 1 - }, -/turf/open/floor/stone, -/area/station/command/heads_quarters/nt_rep) "eiz" = ( /obj/structure/cable, /obj/machinery/duct, @@ -13363,13 +13386,6 @@ }, /turf/open/space/basic, /area/space/nearstation) -"eiY" = ( -/obj/machinery/door/airlock/maintenance, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/airlock/unres, -/obj/effect/mapping_helpers/airlock/access/any/security/maintenance, -/turf/open/floor/iron/dark, -/area/station/hallway/primary/aft) "eja" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -13449,9 +13465,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/restrooms) -"ekM" = ( -/turf/closed/wall, -/area/station/hallway/primary/aft) "ekY" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/reagent_dispensers/plumbed, @@ -13574,8 +13587,9 @@ /area/station/commons/storage/primary) "emB" = ( /obj/machinery/light/small/directional/south, -/obj/effect/mapping_helpers/burnt_floor, /obj/structure/ghost_critter_spawn, +/obj/effect/mapping_helpers/burnt_floor, +/obj/effect/spawner/random/trash/moisture_trap, /turf/open/floor/plating, /area/station/maintenance/fore) "emM" = ( @@ -13906,9 +13920,6 @@ /obj/effect/decal/cleanable/blood/old, /turf/open/floor/carpet/green, /area/station/maintenance/port/greater) -"esG" = ( -/turf/closed/wall/r_wall/rust, -/area/station/maintenance/port/fore) "esO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/landmark/event_spawn, @@ -14124,7 +14135,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/neutral/opposingcorners, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard/fore) +/area/station/service/library/abandoned) "exQ" = ( /obj/effect/decal/cleanable/oil/streak, /obj/machinery/growing/tray, @@ -14157,7 +14168,7 @@ dir = 8 }, /turf/open/floor/iron/dark, -/area/station/hallway/secondary/entry) +/area/station/maintenance/starboard/aft) "eyf" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -14186,7 +14197,7 @@ "eyl" = ( /obj/effect/landmark/start/gary, /turf/open/floor/wood, -/area/station/maintenance/port/fore) +/area/station/service/theater/abandoned) "eyv" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -14269,17 +14280,6 @@ /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, /area/station/security/execution/education) -"eAa" = ( -/obj/structure/rack, -/obj/effect/turf_decal/bot, -/obj/item/storage/toolbox/emergency, -/obj/item/flashlight, -/obj/machinery/light/small/directional/east, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/hallway/primary/aft) "eAk" = ( /obj/machinery/light/small/directional/east, /obj/structure/chair/wood{ @@ -14356,7 +14356,7 @@ /obj/effect/mapping_helpers/broken_floor, /obj/effect/mob_spawn/corpse/human/damaged, /turf/open/floor/plating, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "eAF" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -14406,7 +14406,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/area/station/service/theater/abandoned) "eBZ" = ( /obj/effect/turf_decal/delivery, /obj/structure/closet/crate/silvercrate, @@ -14430,7 +14430,7 @@ /obj/structure/cable, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, -/area/station/hallway/secondary/entry) +/area/station/maintenance/starboard/aft) "eCy" = ( /obj/effect/decal/cleanable/blood/old, /obj/effect/decal/cleanable/blood/gibs/old, @@ -14618,7 +14618,7 @@ /area/station/maintenance/department/security/upper) "eGy" = ( /turf/open/floor/iron/dark/textured, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "eGz" = ( /obj/structure/sign/poster/random/directional/north, /obj/effect/mapping_helpers/airlock/access/any/engineering/maintenance, @@ -14796,7 +14796,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "eIP" = ( /obj/machinery/computer/security/telescreen{ desc = "Used for watching the ai_upload."; @@ -14887,6 +14887,14 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/cargo/storage) +"eKp" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/service/kitchen/abandoned) "eKG" = ( /obj/effect/turf_decal/tile/purple{ dir = 1 @@ -15394,7 +15402,7 @@ }, /obj/structure/cable, /turf/open/floor/plating, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "eRD" = ( /obj/structure/table/wood, /obj/machinery/light/directional/south, @@ -15480,7 +15488,7 @@ /obj/effect/landmark/event_spawn, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, -/area/station/maintenance/starboard/fore) +/area/station/service/library/abandoned) "eUk" = ( /obj/effect/turf_decal/tile/red{ dir = 1 @@ -15553,21 +15561,23 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/plating, /area/station/maintenance/starboard) +"eVO" = ( +/obj/structure/sign/poster/contraband/random/directional/east, +/obj/machinery/newscaster/directional/south, +/obj/structure/sign/poster/contraband/random/directional/east, +/obj/machinery/newscaster/directional/south, +/obj/machinery/hydroponics/constructable, +/turf/open/floor/wood, +/area/station/service/hydroponics/garden/abandoned) "eVP" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, /obj/effect/decal/cleanable/dirt, -/obj/structure/girder/displaced, /obj/structure/grille/broken, /obj/structure/cable, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, /obj/effect/mapping_helpers/broken_floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, -/area/station/maintenance/port/greater) +/area/station/service/kitchen/abandoned) "eVT" = ( /obj/machinery/computer/records/medical{ dir = 8 @@ -15895,7 +15905,7 @@ /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, /turf/open/floor/plating, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "fby" = ( /obj/machinery/oven, /obj/effect/turf_decal/bot, @@ -16129,7 +16139,7 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /mob/living/basic/mining/goliath, /turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "feZ" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -16288,7 +16298,7 @@ dir = 4 }, /turf/open/floor/plating, -/area/station/hallway/secondary/entry) +/area/station/maintenance/starboard/aft) "fgA" = ( /obj/effect/turf_decal/bot, /obj/structure/tank_dispenser/oxygen{ @@ -16647,7 +16657,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/box/corners, /turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "fmi" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -16737,7 +16747,7 @@ dir = 8 }, /turf/open/floor/plating, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "fnu" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral/half/contrasted{ @@ -17132,17 +17142,6 @@ "fuB" = ( /turf/closed/wall/rust, /area/station/maintenance/starboard/aft) -"fuF" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/turf_decal/caution/stand_clear, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/red/half/contrasted, -/turf/open/floor/iron, -/area/station/hallway/primary/aft) "fuM" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -17237,7 +17236,7 @@ /obj/structure/bookcase/random/reference, /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard/fore) +/area/station/service/library/abandoned) "fvK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -17307,7 +17306,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "fxw" = ( /obj/machinery/door/airlock/external{ name = "Departure Shuttle Airlock"; @@ -17460,7 +17459,7 @@ }, /obj/structure/cable, /turf/open/floor/plating, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "fzr" = ( /turf/closed/wall/r_wall, /area/station/command/heads_quarters/hos) @@ -17487,6 +17486,11 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"fzY" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/service/kitchen/abandoned) "fAb" = ( /obj/effect/turf_decal/stripes/corner{ dir = 8 @@ -17872,7 +17876,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small/directional/east, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "fEQ" = ( /obj/machinery/light/directional/east, /obj/machinery/status_display/ai/directional/east, @@ -17929,7 +17933,7 @@ dir = 8 }, /turf/open/floor/iron/dark, -/area/station/hallway/secondary/entry) +/area/station/maintenance/starboard/aft) "fFW" = ( /obj/structure/easel, /obj/item/canvas/nineteen_nineteen, @@ -17942,6 +17946,12 @@ }, /turf/open/floor/iron/dark, /area/station/commons/storage/art) +"fGe" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/burnt_floor, +/obj/effect/spawner/random/trash/moisture_trap, +/turf/open/floor/plating, +/area/station/maintenance/aft) "fGl" = ( /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 8 @@ -18138,7 +18148,7 @@ pixel_y = 6 }, /turf/open/floor/glass, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "fJo" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 1 @@ -18256,8 +18266,9 @@ }, /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood, +/obj/machinery/airalarm/directional/south, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "fKA" = ( /obj/effect/turf_decal/tile/yellow, /turf/open/floor/iron/showroomfloor, @@ -18300,7 +18311,7 @@ /obj/machinery/iv_drip, /obj/effect/turf_decal/trimline/dark/filled/line, /turf/open/floor/iron/dark/textured_large, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "fLy" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -18391,7 +18402,7 @@ /obj/effect/turf_decal/stripes/line, /obj/effect/decal/cleanable/blood/old, /turf/open/floor/wood, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "fMF" = ( /obj/machinery/camera/directional/west{ c_tag = "Atmospherics Tank - Plasma"; @@ -18526,7 +18537,7 @@ /obj/effect/decal/cleanable/blood/old, /obj/effect/turf_decal/tile/neutral/opposingcorners, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard/fore) +/area/station/service/library/abandoned) "fOR" = ( /obj/structure/table, /obj/effect/turf_decal/stripes/corner{ @@ -18787,7 +18798,7 @@ dir = 8 }, /turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "fSH" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/disposalpipe/segment{ @@ -18816,7 +18827,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, /turf/open/floor/wood, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "fSZ" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -18897,6 +18908,12 @@ }, /turf/open/floor/engine/vacuum, /area/station/science/ordnance/bomb) +"fWu" = ( +/obj/machinery/airalarm/directional/east, +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/hydroponics/constructable, +/turf/open/floor/wood, +/area/station/service/hydroponics/garden/abandoned) "fWB" = ( /obj/machinery/airalarm/directional/west, /obj/machinery/rnd/production/techfab/department/service, @@ -18909,6 +18926,16 @@ }, /turf/open/floor/iron/dark, /area/station/hallway/secondary/service) +"fWC" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/space_heater, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, +/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/security/upper) "fWZ" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -19040,6 +19067,10 @@ /obj/structure/flora/bush/grassy/style_random, /turf/open/floor/grass, /area/station/service/hydroponics) +"fZb" = ( +/obj/structure/falsewall, +/turf/open/floor/plating, +/area/station/maintenance/abandon_wrestle) "fZk" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -19495,8 +19526,11 @@ pixel_y = -11 }, /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, /turf/open/floor/iron/dark/textured, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "ggS" = ( /turf/closed/wall/r_wall, /area/station/science/ordnance) @@ -19705,7 +19739,7 @@ dir = 1 }, /turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "gjF" = ( /obj/effect/turf_decal/delivery, /obj/structure/reagent_dispensers/fueltank, @@ -20138,7 +20172,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "gry" = ( /obj/structure/sign/warning/fire, /turf/closed/wall/r_wall, @@ -20286,6 +20320,7 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/sign/poster/contraband/grey_tide/directional/north, /obj/effect/mapping_helpers/broken_floor, +/obj/effect/spawner/random/trash/moisture_trap, /turf/open/floor/plating, /area/station/maintenance/port/greater) "gtI" = ( @@ -20592,6 +20627,28 @@ /obj/machinery/digital_clock/directional/north, /turf/open/floor/iron/dark, /area/station/engineering/atmos) +"gyW" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/firedoor, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/door/airlock/corporate{ + id_tag = "BSdoor"; + name = "Blueshield's Office" + }, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/blueshield) +"gyZ" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/spawner/random/trash/moisture_trap, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "gzb" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/grille/broken, @@ -20599,7 +20656,7 @@ dir = 8 }, /turf/open/floor/plating, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "gzm" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -20689,17 +20746,14 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron/dark, /area/station/hallway/primary/central/fore) +"gAU" = ( +/turf/closed/wall, +/area/station/service/theater/abandoned) "gBd" = ( /obj/machinery/portable_atmospherics/canister/plasma, /obj/machinery/light/directional/west, /turf/open/floor/iron/dark, /area/station/science/ordnance/storage) -"gBp" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/hallway/secondary/entry) "gBt" = ( /obj/structure/chair/stool/directional/south, /turf/open/floor/iron/dark/textured, @@ -20752,6 +20806,18 @@ /obj/item/flashlight, /turf/open/floor/iron/dark, /area/station/engineering/storage/tech) +"gCd" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/yellow/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red/opposingcorners, +/obj/structure/sign/poster/contraband/rebels_unite/directional/north, +/turf/open/floor/iron/showroomfloor, +/area/station/service/kitchen/abandoned) "gCf" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -20873,11 +20939,6 @@ /obj/machinery/growing/tray, /turf/open/floor/grass, /area/station/security/prison/garden) -"gDW" = ( -/obj/structure/sign/poster/contraband/random/directional/east, -/obj/machinery/newscaster/directional/south, -/turf/open/floor/wood, -/area/station/maintenance/department/crew_quarters/bar) "gEZ" = ( /obj/machinery/shower/directional/north, /obj/effect/turf_decal/box/red, @@ -21064,6 +21125,7 @@ /obj/effect/turf_decal/tile/blue/opposingcorners{ dir = 1 }, +/obj/structure/cable, /turf/open/floor/iron/showroomfloor, /area/station/medical/office) "gII" = ( @@ -21204,6 +21266,9 @@ dir = 4 }, /obj/effect/turf_decal/tile/yellow/opposingcorners, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/maintenance/starboard/fore) "gJW" = ( @@ -21369,7 +21434,7 @@ /obj/effect/landmark/event_spawn, /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "gNI" = ( /obj/structure/transit_tube, /obj/structure/lattice, @@ -21473,8 +21538,11 @@ /obj/machinery/door/airlock/wood{ name = "What A Shame" }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plastic, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "gPy" = ( /obj/effect/turf_decal/bot, /obj/machinery/computer/rdconsole{ @@ -21667,7 +21735,7 @@ dir = 8 }, /turf/open/floor/glass, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "gSi" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment{ @@ -21721,7 +21789,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, -/area/station/maintenance/fore) +/area/station/medical/abandoned) "gSW" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/command{ @@ -21895,6 +21963,11 @@ /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron/dark, /area/station/cargo/office) +"gVk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/medical/abandoned) "gVp" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/reagent_dispensers/plumbed, @@ -22043,7 +22116,7 @@ /obj/item/trash/popcorn, /obj/effect/decal/cleanable/blood/old, /turf/open/floor/wood, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "gXc" = ( /obj/effect/turf_decal/delivery, /obj/structure/disposaloutlet{ @@ -22469,7 +22542,7 @@ dir = 6 }, /turf/open/floor/iron/dark/textured_large, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "heU" = ( /obj/structure/sign/warning/electric_shock/directional/south, /obj/effect/decal/cleanable/dirt, @@ -22505,14 +22578,18 @@ }, /area/station/hallway/primary/central) "hfi" = ( -/obj/structure/mineral_door/wood{ - name = "Secret Beer Storage" - }, /obj/effect/decal/cleanable/blood/tracks{ dir = 8 }, +/obj/machinery/door/airlock/service/glass{ + name = "Abandoned Cafeteria" + }, +/obj/effect/mapping_helpers/airlock/access/any/engineering/maintenance, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "hfl" = ( /obj/effect/turf_decal/bot, /obj/effect/decal/cleanable/dirt, @@ -22659,6 +22736,14 @@ /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/ce) +"hhG" = ( +/obj/structure/grille/broken, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/department/security/upper) "hhO" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -22884,7 +22969,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "hky" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/monitored/carbon_input{ dir = 1 @@ -22978,11 +23063,6 @@ /obj/effect/turf_decal/trimline/piss_yellow/filled/line, /turf/open/floor/iron/dark/textured_large, /area/station/maintenance/port/fore) -"hlP" = ( -/obj/machinery/airalarm/directional/east, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/wood, -/area/station/maintenance/department/crew_quarters/bar) "hlW" = ( /obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, @@ -23014,13 +23094,15 @@ /area/station/maintenance/department/chapel/monastery) "hmn" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/clothing/wardrobe_closet_colored, /obj/effect/decal/cleanable/cobweb, /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 4 }, +/obj/machinery/vending/hydroseeds{ + slogan_delay = 700 + }, /turf/open/floor/iron/dark, -/area/station/maintenance/department/crew_quarters/bar) +/area/station/service/hydroponics/garden/abandoned) "hmB" = ( /obj/machinery/airalarm/directional/west, /obj/effect/decal/cleanable/dirt, @@ -23148,6 +23230,10 @@ /obj/structure/liquid_barrier, /turf/open/floor/iron/dark, /area/station/science/xenobiology) +"hnK" = ( +/obj/structure/chair/stool/bar/directional/west, +/turf/open/floor/plating, +/area/station/service/kitchen/abandoned) "hnL" = ( /obj/machinery/telecomms/server/presets/engineering, /turf/open/floor/circuit/green/telecomms/mainframe, @@ -23160,7 +23246,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/glass, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "hnU" = ( /obj/effect/turf_decal/tile/purple{ dir = 8 @@ -23354,6 +23440,10 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"hrq" = ( +/obj/machinery/light/small/directional/west, +/turf/open/floor/plating, +/area/station/service/kitchen/abandoned) "hrs" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -23701,7 +23791,6 @@ /obj/structure/transit_tube, /obj/structure/disposalpipe/segment, /obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/cobweb, /turf/open/floor/iron/grimy, /area/station/hallway/primary/fore) "hxg" = ( @@ -24082,14 +24171,18 @@ /turf/open/floor/iron/dark, /area/station/science/ordnance/office) "hDe" = ( -/obj/structure/mineral_door/wood{ - name = "Secret Beer Storage" - }, -/obj/structure/barricade/wooden/crude, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/service/glass{ + name = "Abandoned Cafeteria" + }, +/obj/effect/mapping_helpers/airlock/access/any/engineering/maintenance, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 4 + }, +/obj/structure/cable, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "hDs" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/decal/cleanable/dirt, @@ -24332,7 +24425,7 @@ dir = 1 }, /turf/open/floor/iron/dark, -/area/station/hallway/secondary/entry) +/area/station/maintenance/starboard/aft) "hHt" = ( /obj/structure/table, /obj/item/storage/crayons, @@ -24374,10 +24467,12 @@ /turf/open/floor/engine, /area/station/ai_monitored/turret_protected/ai_upload) "hIk" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, -/obj/effect/mapping_helpers/airlock/access/all/security/general, -/obj/machinery/door/airlock/maintenance, +/obj/machinery/door/airlock/maintenance_hatch, +/obj/effect/mapping_helpers/airlock/access/any/security/maintenance, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 8 + }, /turf/open/floor/iron/dark, /area/station/maintenance/port/lesser) "hIm" = ( @@ -24407,7 +24502,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /mob/living/basic/ghost, /turf/open/floor/wood, -/area/station/maintenance/starboard/fore) +/area/station/service/library/abandoned) "hIv" = ( /obj/item/bedsheet/red, /obj/structure/bed, @@ -24586,8 +24681,9 @@ id_tag = "medbay_front_door"; name = "Medbay Storage" }, -/obj/effect/mapping_helpers/airlock/access/all/medical/general, /obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/all/medical/general, +/obj/structure/cable, /turf/open/floor/iron/dark, /area/station/medical/storage) "hJZ" = ( @@ -24749,6 +24845,7 @@ /obj/effect/turf_decal/siding/wood/corner{ dir = 4 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/vaporwave, /area/station/service/library) "hMf" = ( @@ -24853,7 +24950,7 @@ }, /obj/structure/cable, /turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "hNI" = ( /obj/effect/turf_decal/tile/neutral{ dir = 1 @@ -25167,7 +25264,7 @@ dir = 1 }, /turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "hRj" = ( /obj/machinery/atmospherics/components/binary/pump{ dir = 8; @@ -25202,7 +25299,7 @@ "hRs" = ( /obj/machinery/firealarm/directional/south, /turf/closed/wall, -/area/station/maintenance/fore) +/area/station/medical/abandoned) "hRv" = ( /obj/structure/table/reinforced/plasmarglass, /obj/machinery/camera/directional/west{ @@ -25587,7 +25684,7 @@ }, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "hWS" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 8 @@ -25750,6 +25847,9 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron_dark, /area/station/security/execution/transfer) +"hZR" = ( +/turf/closed/wall/rust, +/area/station/service/kitchen/abandoned) "hZS" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -25926,10 +26026,6 @@ /area/station/security/execution/transfer) "ibL" = ( /obj/structure/table, -/obj/item/circular_saw, -/obj/item/surgicaldrill{ - pixel_y = 5 - }, /obj/item/healthanalyzer, /obj/machinery/light/directional/north, /obj/effect/turf_decal/tile/neutral/half/contrasted, @@ -26306,6 +26402,7 @@ /obj/structure/disposalpipe/segment{ dir = 6 }, +/obj/effect/spawner/random/trash/moisture_trap, /turf/open/floor/catwalk_floor/iron_dark, /area/station/maintenance/port/aft) "ijy" = ( @@ -26323,8 +26420,9 @@ /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/neutral/half/contrasted, +/obj/machinery/light_switch/directional/north, /turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/area/station/service/theater/abandoned) "ijG" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -26354,7 +26452,7 @@ dir = 8 }, /turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "ijN" = ( /obj/effect/decal/cleanable/blood/old, /turf/open/floor/engine/vacuum, @@ -26362,6 +26460,12 @@ "ijQ" = ( /turf/closed/wall, /area/station/service/bar/atrium) +"ika" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/plating, +/area/station/service/kitchen/abandoned) "ikb" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/north, @@ -26385,7 +26489,7 @@ dir = 1 }, /turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "ikg" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -26434,7 +26538,7 @@ pixel_x = -16 }, /turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "ikO" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -26711,13 +26815,6 @@ }, /turf/open/floor/iron/dark, /area/station/medical/medbay/central) -"ipg" = ( -/obj/effect/decal/cleanable/oil, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating, -/area/station/hallway/primary/aft) "iph" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -26998,7 +27095,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /turf/open/floor/plating, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "irW" = ( /obj/effect/decal/cleanable/dirt, /obj/item/broken_bottle{ @@ -27007,7 +27104,7 @@ }, /obj/effect/decal/cleanable/blood, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "irZ" = ( /obj/effect/turf_decal/tile/purple{ dir = 8 @@ -27064,7 +27161,7 @@ dir = 1 }, /turf/open/floor/iron/dark, -/area/station/hallway/secondary/entry) +/area/station/maintenance/starboard/aft) "itF" = ( /obj/structure/chair/comfy/black, /obj/effect/landmark/start/chaplain, @@ -27336,7 +27433,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "ixj" = ( /obj/machinery/modular_computer/preset/engineering, /obj/effect/turf_decal/tile/neutral, @@ -27421,6 +27518,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"ixU" = ( +/obj/structure/closet/secure_closet/freezer/fridge/open, +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/sign/poster/contraband/random/directional/south, +/turf/open/floor/plating, +/area/station/service/kitchen/abandoned) "iyd" = ( /obj/machinery/door/poddoor/incinerator_atmos_main, /turf/open/floor/engine, @@ -27556,7 +27659,7 @@ "izu" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/textured, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "izv" = ( /obj/structure/closet{ name = "chapel locker" @@ -27601,8 +27704,9 @@ /obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ dir = 1 }, +/obj/machinery/light_switch/directional/east, /turf/open/floor/iron/dark, -/area/station/maintenance/fore) +/area/station/medical/abandoned) "izM" = ( /obj/effect/spawner/random/vending/colavend, /obj/effect/turf_decal/bot, @@ -27693,7 +27797,7 @@ /obj/effect/landmark/generic_maintenance_landmark, /obj/effect/turf_decal/tile/neutral/opposingcorners, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard/fore) +/area/station/service/library/abandoned) "iBz" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -27829,7 +27933,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "iDK" = ( /obj/machinery/light/small/directional/west, /turf/open/floor/engine, @@ -27924,6 +28028,7 @@ "iFa" = ( /obj/machinery/light/small/directional/south, /obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/moisture_trap, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "iFi" = ( @@ -28039,7 +28144,7 @@ }, /obj/effect/spawner/random/loafer, /turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "iGs" = ( /obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ dir = 8 @@ -28209,7 +28314,7 @@ /obj/structure/cable, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "iIp" = ( /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -28311,6 +28416,7 @@ /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 8 }, +/obj/structure/cable, /turf/open/floor/iron, /area/station/maintenance/starboard/fore) "iJR" = ( @@ -28467,7 +28573,7 @@ /obj/machinery/status_display/evac/directional/north, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, -/area/station/maintenance/fore) +/area/station/medical/abandoned) "iMJ" = ( /obj/effect/landmark/start/ai/secondary, /obj/item/radio/intercom/directional/north{ @@ -28603,6 +28709,12 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/wood, /area/station/command/heads_quarters/captain) +"iOH" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/all/medical/chemistry, +/obj/machinery/door/airlock/maintenance_hatch, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "iOR" = ( /turf/open/floor/iron/showroomfloor, /area/station/security/execution/transfer) @@ -29098,13 +29210,13 @@ dir = 5 }, /turf/open/floor/iron/dark/textured, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "iVF" = ( /obj/structure/table/wood, /obj/item/clipboard, /obj/item/camera, /turf/open/floor/wood, -/area/station/maintenance/starboard/fore) +/area/station/service/library/abandoned) "iVR" = ( /obj/structure/sign/poster/contraband/random/directional/south, /turf/closed/wall, @@ -29239,6 +29351,7 @@ /obj/structure/grille/broken, /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/broken_floor, +/obj/effect/spawner/random/trash/moisture_trap, /turf/open/floor/plating, /area/station/maintenance/port/lesser) "iYr" = ( @@ -29251,6 +29364,19 @@ }, /turf/open/floor/iron/dark, /area/station/service/chapel) +"iYw" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/corporate{ + id_tag = "BSdoor"; + name = "Nanotrasen Representative's Office" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, +/turf/open/floor/iron/dark, +/area/station/command/heads_quarters/nt_rep) "iYx" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood, @@ -29263,6 +29389,7 @@ /turf/open/floor/iron/dark, /area/station/maintenance/fore) "iYG" = ( +/obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/textured_edge, /area/station/maintenance/port/fore) "iZd" = ( @@ -29295,6 +29422,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/commons/fitness/recreation) +"iZQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/service/kitchen/abandoned) "iZT" = ( /obj/item/kirbyplants{ icon_state = "plant-05" @@ -29380,7 +29513,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, -/area/station/maintenance/fore) +/area/station/medical/abandoned) "jay" = ( /obj/machinery/conveyor{ id = "garbage" @@ -29856,11 +29989,12 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "jhy" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/port/greater) "jhz" = ( @@ -30358,6 +30492,19 @@ /obj/effect/mapping_helpers/airlock/access/any/security/maintenance, /turf/open/floor/iron/dark, /area/station/maintenance/port/lesser) +"jpV" = ( +/obj/structure/table, +/obj/item/reagent_containers/condiment/enzyme{ + pixel_x = -6; + pixel_y = 8 + }, +/obj/item/knife/kitchen, +/obj/item/kitchen/rollingpin{ + pixel_x = -4 + }, +/obj/item/reagent_containers/condiment/flour, +/turf/open/floor/plating, +/area/station/service/kitchen/abandoned) "jpX" = ( /obj/machinery/recharge_station, /obj/effect/turf_decal/bot, @@ -30422,7 +30569,7 @@ /obj/structure/cable, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, -/area/station/maintenance/starboard/fore) +/area/station/service/library/abandoned) "jrh" = ( /obj/machinery/door/morgue{ name = "Confession Booth (Public)" @@ -30614,16 +30761,6 @@ /obj/structure/cable, /turf/open/floor/iron/showroomfloor, /area/station/security/office) -"juj" = ( -/obj/effect/spawner/random/decoration/glowstick, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/sign/poster/contraband/random/directional/north, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating, -/area/station/hallway/primary/aft) "juq" = ( /obj/structure/flora/grass/jungle/a/style_random, /obj/structure/flora/bush/sparsegrass/style_random, @@ -30990,7 +31127,7 @@ /obj/structure/bookcase/random/nonfiction, /obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard/fore) +/area/station/service/library/abandoned) "jBN" = ( /obj/structure/chair/office{ dir = 4 @@ -31033,8 +31170,9 @@ /obj/effect/landmark/generic_maintenance_landmark, /obj/structure/sign/poster/contraband/random/directional/south, /obj/effect/mapping_helpers/broken_floor, +/obj/machinery/airalarm/directional/west, /turf/open/floor/plating, -/area/station/maintenance/fore) +/area/station/medical/abandoned) "jCQ" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -31462,7 +31600,7 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "jKj" = ( /obj/machinery/door/airlock/mining{ name = "Auxiliary Base" @@ -31481,7 +31619,7 @@ /obj/effect/decal/cleanable/blood/gibs, /obj/effect/decal/cleanable/blood, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "jKt" = ( /obj/machinery/light/small/directional/south, /obj/effect/turf_decal/tile/brown/opposingcorners{ @@ -31642,6 +31780,17 @@ /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron, /area/station/engineering/hallway) +"jMC" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/space_heater, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/security/upper) "jMF" = ( /obj/structure/closet/emcloset/anchored, /obj/effect/turf_decal/bot, @@ -31789,7 +31938,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "jQr" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -31831,7 +31980,7 @@ /obj/structure/barricade/wooden, /obj/effect/spawner/structure/window, /turf/open/floor/plating, -/area/station/maintenance/port/fore) +/area/station/service/theater/abandoned) "jQT" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -31967,7 +32116,7 @@ /obj/structure/chair/sofa/middle/maroon, /obj/structure/sign/poster/contraband/random/directional/north, /turf/open/floor/wood, -/area/station/maintenance/starboard/fore) +/area/station/service/library/abandoned) "jSx" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -32093,6 +32242,16 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/command/bridge) +"jTW" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/turf_decal/tile/red/half/contrasted, +/obj/effect/turf_decal/tile/neutral, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) "jUa" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/bot, @@ -32528,15 +32687,6 @@ /obj/structure/cable, /turf/open/floor/engine, /area/station/ai_monitored/turret_protected/ai) -"kbv" = ( -/obj/effect/turf_decal/delivery, -/obj/structure/reagent_dispensers/fueltank, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/hallway/primary/aft) "kbO" = ( /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, @@ -32615,9 +32765,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"kcY" = ( -/turf/closed/wall/rust, -/area/station/commons/fitness/recreation) "kcZ" = ( /obj/machinery/corral_corner{ mapping_id = "6" @@ -32657,7 +32804,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/textured_large, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "kep" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/security/glass{ @@ -32709,7 +32856,7 @@ dir = 4 }, /turf/open/floor/iron/dark, -/area/station/hallway/secondary/entry) +/area/station/maintenance/starboard/aft) "keO" = ( /obj/effect/turf_decal/stripes/corner, /obj/effect/turf_decal/tile/neutral/half/contrasted, @@ -32763,6 +32910,12 @@ /obj/structure/sign/poster/random/directional/east, /turf/open/floor/iron/showroomfloor, /area/station/commons/toilet/restrooms) +"kgt" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) "kgD" = ( /obj/machinery/power/solar{ id = "aftstarboard"; @@ -32851,6 +33004,17 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/security/courtroom) +"kiN" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) "kiO" = ( /obj/structure/lattice, /obj/structure/sign/warning/secure_area/directional/west, @@ -33028,7 +33192,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "knC" = ( /obj/structure/chair/plastic{ dir = 1 @@ -33143,13 +33307,6 @@ dir = 8 }, /area/station/maintenance/port/fore) -"koE" = ( -/obj/effect/decal/cleanable/blood/old, -/obj/item/radio/intercom/directional/west, -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating, -/area/station/hallway/primary/aft) "koO" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -33390,7 +33547,7 @@ /obj/item/storage/briefcase, /obj/effect/turf_decal/trimline/dark/filled/line, /turf/open/floor/iron/dark/textured, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "kud" = ( /obj/structure/cable, /obj/machinery/power/smes/engineering{ @@ -33425,6 +33582,7 @@ dir = 4 }, /obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/moisture_trap, /turf/open/floor/plating, /area/station/maintenance/aft) "kut" = ( @@ -33889,7 +34047,7 @@ dir = 1 }, /turf/open/floor/iron/dark/textured, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "kCA" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -34162,7 +34320,6 @@ /turf/open/floor/plating, /area/station/maintenance/port/greater) "kFG" = ( -/obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/abandoned, /obj/structure/barricade/wooden/crude, /obj/effect/decal/cleanable/dirt, @@ -34172,8 +34329,11 @@ dir = 1 }, /obj/effect/mapping_helpers/airlock/access/any/science/maintenance, +/obj/machinery/door/airlock/medical{ + name = "Abandoned Medbay" + }, /turf/open/floor/iron/dark, -/area/station/maintenance/fore) +/area/station/medical/abandoned) "kFR" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/machinery/atmospherics/pipe/bridge_pipe/green/visible, @@ -34352,7 +34512,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, -/area/station/hallway/secondary/entry) +/area/station/maintenance/starboard/aft) "kJf" = ( /obj/machinery/portable_atmospherics/scrubber, /obj/machinery/atmospherics/components/unary/portables_connector/visible{ @@ -34461,7 +34621,7 @@ }, /obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, /turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/area/station/service/theater/abandoned) "kKG" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -34483,12 +34643,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/kitchen, /area/station/security/prison/mess) -"kKP" = ( -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, -/turf/closed/wall, -/area/station/hallway/primary/central) "kKX" = ( /obj/effect/turf_decal/bot, /obj/machinery/holopad, @@ -34584,7 +34738,7 @@ dir = 8 }, /turf/open/floor/wood, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "kMP" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/door/airlock/external{ @@ -34658,7 +34812,7 @@ }, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, -/area/station/maintenance/starboard/fore) +/area/station/service/library/abandoned) "kNP" = ( /obj/effect/turf_decal/bot, /obj/structure/rack, @@ -34699,7 +34853,7 @@ /obj/structure/sign/poster/contraband/random/directional/west, /obj/effect/turf_decal/tile/neutral/opposingcorners, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard/fore) +/area/station/service/library/abandoned) "kOh" = ( /obj/machinery/duct, /obj/effect/turf_decal/stripes/line{ @@ -34740,7 +34894,7 @@ "kPh" = ( /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "kPo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -34795,23 +34949,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/checkpoint/engineering) -"kQd" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/structure/closet/secure_closet/personal/cabinet, -/obj/item/clothing/under/rank/centcom/officer, -/obj/item/clothing/under/rank/centcom/officer_skirt, -/obj/item/clothing/under/rank/centcom/intern, -/obj/item/clothing/under/rank/centcom/commander, -/obj/item/clothing/under/rank/centcom/centcom_skirt, -/obj/item/clothing/head/hats/centcom_cap, -/obj/item/clothing/head/hats/centhat, -/obj/item/clothing/glasses/sunglasses, -/obj/item/clothing/suit/armor/centcom_formal, -/obj/structure/sign/poster/contraband/random/directional/west, -/turf/open/floor/wood/large, -/area/station/command/heads_quarters/nt_rep) "kQj" = ( /obj/effect/turf_decal/bot, /obj/machinery/status_display/door_timer{ @@ -34944,6 +35081,14 @@ }, /turf/open/floor/iron/dark, /area/station/service/bar/atrium) +"kRZ" = ( +/obj/effect/turf_decal/tile/yellow/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red/opposingcorners, +/obj/structure/sign/poster/contraband/random/directional/south, +/turf/open/floor/iron/showroomfloor, +/area/station/service/kitchen/abandoned) "kSs" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/binary/pump/off{ @@ -35076,10 +35221,6 @@ /obj/effect/decal/cleanable/blood/old, /obj/effect/decal/cleanable/blood/gibs/old, /obj/effect/spawner/random/structure/crate, -/mob/living/basic/chicken{ - desc = "A timeless classic."; - name = "Kentucky" - }, /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, /area/station/maintenance/starboard) @@ -35185,7 +35326,7 @@ /obj/structure/bed/medical/emergency, /obj/effect/turf_decal/bot, /turf/open/floor/iron/dark, -/area/station/maintenance/fore) +/area/station/medical/abandoned) "kWS" = ( /obj/effect/turf_decal/tile/purple{ dir = 8 @@ -35224,7 +35365,7 @@ pixel_y = -6 }, /turf/open/floor/iron/dark/textured, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "kXw" = ( /obj/effect/turf_decal/siding/wood, /obj/structure/cable, @@ -35257,7 +35398,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/glass, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "kXS" = ( /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 4 @@ -35602,7 +35743,7 @@ /obj/effect/decal/cleanable/blood/old, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, -/area/station/maintenance/starboard/fore) +/area/station/service/library/abandoned) "lds" = ( /obj/effect/decal/cleanable/blood/old, /obj/item/stack/rods, @@ -35643,7 +35784,7 @@ /obj/item/shard, /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, -/area/station/maintenance/fore) +/area/station/medical/abandoned) "leS" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -35760,7 +35901,7 @@ dir = 4 }, /turf/open/floor/iron/dark, -/area/station/hallway/secondary/entry) +/area/station/maintenance/starboard/aft) "lge" = ( /obj/structure/railing/corner{ dir = 1 @@ -35939,6 +36080,14 @@ /obj/structure/cable, /turf/open/floor/catwalk_floor/iron_dark, /area/station/maintenance/solars/starboard/fore) +"ljN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/yellow/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red/opposingcorners, +/turf/open/floor/iron/showroomfloor, +/area/station/service/kitchen/abandoned) "lkl" = ( /obj/effect/turf_decal/bot, /obj/machinery/holopad, @@ -35989,6 +36138,9 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/fore) +"lll" = ( +/turf/closed/wall/rust, +/area/station/service/theater/abandoned) "llu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/decal/cleanable/dirt, @@ -36742,7 +36894,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, -/area/station/hallway/secondary/entry) +/area/station/maintenance/starboard/aft) "lxw" = ( /obj/effect/turf_decal/tile/purple{ dir = 1 @@ -36811,7 +36963,7 @@ /obj/structure/closet/crate/freezer/blood, /obj/effect/turf_decal/trimline/dark/filled/line, /turf/open/floor/iron/dark/textured_large, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "lyP" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -36896,14 +37048,22 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/hallway/primary/central) +"lzP" = ( +/obj/machinery/light/small/directional/west, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/department/security/upper) "lzQ" = ( -/obj/machinery/door/airlock/maintenance, +/obj/effect/mapping_helpers/airlock/unres, /obj/structure/disposalpipe/segment, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/airlock/unres, -/obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/effect/mapping_helpers/airlock/access/any/security/maintenance, +/obj/machinery/door/airlock/maintenance_hatch, /turf/open/floor/iron/dark, /area/station/maintenance/port/lesser) "lzS" = ( @@ -36987,9 +37147,6 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron/dark, /area/station/maintenance/fore) -"lAU" = ( -/turf/closed/wall, -/area/station/command/heads_quarters/nt_rep) "lAV" = ( /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible{ dir = 4 @@ -37107,6 +37264,7 @@ /obj/effect/turf_decal/tile/blue{ dir = 8 }, +/obj/structure/cable, /turf/open/floor/iron/showroomfloor, /area/station/medical/office) "lCV" = ( @@ -37125,8 +37283,9 @@ /obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ dir = 1 }, +/obj/machinery/airalarm/directional/south, /turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "lDa" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/delivery, @@ -37356,12 +37515,14 @@ /turf/open/floor/plating, /area/station/security/execution/transfer) "lGY" = ( -/obj/effect/turf_decal/bot, -/obj/structure/rack, /obj/effect/decal/cleanable/dirt, -/obj/effect/spawner/random/maintenance/two, +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/item/chair/stool/bar{ + pixel_y = -8; + dir = 1 + }, /turf/open/floor/iron/dark, -/area/station/maintenance/port/greater) +/area/station/service/kitchen/abandoned) "lHk" = ( /obj/structure/railing{ dir = 4 @@ -37476,6 +37637,12 @@ /obj/machinery/digital_clock/directional/south, /turf/open/floor/iron/dark, /area/station/engineering/main) +"lJc" = ( +/obj/structure/table, +/obj/effect/spawner/random/maintenance, +/obj/item/reagent_containers/cup/rag, +/turf/open/floor/plating, +/area/station/service/kitchen/abandoned) "lJd" = ( /obj/structure/chair/stool/bar/directional/east, /obj/effect/turf_decal/tile/red/opposingcorners, @@ -37517,6 +37684,9 @@ "lJE" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/broken_floor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) "lJJ" = ( @@ -37733,14 +37903,12 @@ /area/station/command/heads_quarters/hos) "lMx" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/machinery/airalarm/directional/west, -/obj/machinery/atmospherics/components/binary/pump/on/layer4, /obj/effect/mapping_helpers/burnt_floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, -/area/station/maintenance/port/greater) +/area/station/service/kitchen/abandoned) "lMy" = ( /obj/effect/decal/remains/human, /turf/open/floor/engine/vacuum, @@ -37867,7 +38035,7 @@ dir = 8 }, /turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "lPh" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -37981,27 +38149,6 @@ /obj/effect/landmark/start/librarian, /turf/open/floor/cult, /area/station/service/library) -"lRa" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/turf_decal/tile/yellow/half/contrasted{ - dir = 1 - }, -/obj/effect/turf_decal/tile/red{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/hallway/primary/aft) -"lRg" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "lRk" = ( /turf/closed/wall, /area/station/maintenance/starboard/fore) @@ -38160,6 +38307,22 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/security/courtroom) +"lUE" = ( +/obj/structure/table, +/obj/item/food/meat/slab/human{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/food/meat/slab/human, +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = -8; + pixel_y = 5 + }, +/obj/item/reagent_containers/condiment/peppermill{ + pixel_x = -8 + }, +/turf/open/floor/plating, +/area/station/service/kitchen/abandoned) "lUZ" = ( /obj/effect/decal/cleanable/blood/old, /turf/open/floor/catwalk_floor/iron_dark, @@ -38267,7 +38430,7 @@ /obj/machinery/chem_dispenser/drinks/beer, /obj/effect/turf_decal/delivery, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "lWe" = ( /obj/structure/cable, /obj/effect/turf_decal/stripes/red/line{ @@ -38299,7 +38462,7 @@ dir = 8 }, /turf/open/floor/iron/dark/textured, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "lWm" = ( /obj/machinery/door/airlock/engineering{ name = "Starboard Bow Solar Access" @@ -38356,7 +38519,7 @@ /area/station/engineering/storage/tech) "lWU" = ( /turf/open/floor/fakepit, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "lXe" = ( /obj/structure/table, /obj/item/storage/box/lights/mixed{ @@ -39140,8 +39303,9 @@ dir = 8 }, /obj/effect/mapping_helpers/broken_floor, +/obj/structure/cable, /turf/open/floor/wood, -/area/station/maintenance/department/crew_quarters/bar) +/area/station/service/hydroponics/garden/abandoned) "mkI" = ( /obj/structure/table/wood, /obj/machinery/light/small/directional/north, @@ -39150,7 +39314,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/area/station/service/theater/abandoned) "mkQ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -39339,6 +39503,16 @@ /obj/structure/sign/warning/docking, /turf/closed/wall/rust, /area/station/maintenance/starboard) +"mna" = ( +/obj/effect/spawner/random/decoration/glowstick, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/sign/poster/contraband/random/directional/north, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/department/security/upper) "mnb" = ( /obj/machinery/status_display/ai/directional/east, /obj/machinery/door/airlock{ @@ -39777,6 +39951,9 @@ "mum" = ( /turf/open/floor/iron/dark, /area/station/maintenance/disposal/incinerator) +"muP" = ( +/turf/closed/wall/rust, +/area/station/maintenance/abandon_wrestle) "mvn" = ( /obj/machinery/door/airlock/external{ name = "Science Escape Pod"; @@ -39993,7 +40170,7 @@ "mzc" = ( /obj/effect/spawner/structure/window/reinforced/tinted, /turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "mzp" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk, @@ -40156,7 +40333,7 @@ /obj/effect/turf_decal/stripes/corner, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "mCc" = ( /obj/effect/turf_decal/bot, /obj/structure/closet/crate, @@ -40185,7 +40362,6 @@ /turf/open/floor/iron, /area/station/commons/fitness/recreation) "mCk" = ( -/obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/abandoned, /obj/structure/barricade/wooden/crude, /obj/structure/cable, @@ -40193,8 +40369,11 @@ dir = 1 }, /obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, +/obj/machinery/door/airlock/service{ + name = "Abandoned Gambling Den" + }, /turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "mCE" = ( /obj/effect/turf_decal/bot, /obj/machinery/light/directional/north, @@ -40296,7 +40475,6 @@ /turf/closed/wall/r_wall/rust, /area/station/security/prison/mess) "mEj" = ( -/obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/abandoned, /obj/structure/barricade/wooden/crude, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -40304,8 +40482,12 @@ dir = 1 }, /obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, +/obj/structure/cable, +/obj/machinery/door/airlock/service{ + name = "Abandoned Theater" + }, /turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/area/station/service/theater/abandoned) "mEG" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -40425,7 +40607,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, /turf/open/floor/wood, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "mFL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -40860,6 +41042,10 @@ /obj/structure/sign/poster/contraband/random/directional/north, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"mMX" = ( +/obj/effect/spawner/structure/window/reinforced, +/turf/open/floor/plating, +/area/station/maintenance/abandon_cafeteria) "mNe" = ( /obj/machinery/light/small/directional/north, /obj/effect/turf_decal/siding/thinplating/dark, @@ -40935,7 +41121,7 @@ }, /obj/effect/landmark/blobstart, /turf/open/floor/wood, -/area/station/maintenance/starboard/fore) +/area/station/service/library/abandoned) "mOb" = ( /obj/machinery/door/firedoor, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -40964,7 +41150,7 @@ pixel_x = 8 }, /turf/open/floor/glass, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "mOg" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ @@ -40977,9 +41163,15 @@ /obj/effect/turf_decal/tile/blue, /turf/open/floor/iron, /area/station/engineering/atmos) +"mOz" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/plating, +/area/station/service/kitchen/abandoned) "mOH" = ( /turf/open/floor/iron/dark/textured_large, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "mPc" = ( /obj/structure/table, /obj/item/storage/box/evidence{ @@ -41060,7 +41252,7 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "mQm" = ( /obj/effect/turf_decal/tile/red/half/contrasted{ dir = 8 @@ -41216,7 +41408,7 @@ pixel_y = 10 }, /turf/open/floor/plating, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "mSq" = ( /obj/effect/decal/cleanable/blood/old, /obj/effect/decal/cleanable/dirt, @@ -41460,7 +41652,7 @@ /obj/structure/sign/poster/contraband/random/directional/north, /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/area/station/service/theater/abandoned) "mWn" = ( /turf/open/floor/circuit/green{ luminosity = 2 @@ -41682,6 +41874,12 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/security/brig) +"nai" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/yellow/opposingcorners, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron/showroomfloor, +/area/station/medical/chemistry) "naE" = ( /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 4 @@ -42014,6 +42212,9 @@ /obj/structure/flora/bush/sparsegrass/style_random, /turf/open/floor/sandy_dirt, /area/station/service/hydroponics) +"ngx" = ( +/turf/open/floor/plating, +/area/station/service/kitchen/abandoned) "ngF" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/burnt_floor, @@ -42070,6 +42271,12 @@ /obj/machinery/light/small/directional/east, /turf/open/floor/iron/dark, /area/station/maintenance/port/aft) +"nhC" = ( +/obj/structure/frame/machine/secured, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/dim/directional/north, +/turf/open/floor/plating, +/area/station/service/kitchen/abandoned) "nhO" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 4 @@ -42144,6 +42351,15 @@ /obj/effect/turf_decal/tile/blue, /turf/open/floor/iron, /area/station/engineering/atmos) +"niB" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/reagent_dispensers/fueltank, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/security/upper) "niL" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on{ dir = 8 @@ -42194,7 +42410,7 @@ dir = 8 }, /turf/open/floor/iron/dark/textured, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "nkI" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -42607,10 +42823,9 @@ /turf/open/floor/iron/showroomfloor, /area/station/security/execution/transfer) "nqX" = ( -/obj/structure/sign/poster/contraband/random/directional/east, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, -/area/station/maintenance/port/fore) +/area/station/service/theater/abandoned) "nrf" = ( /obj/machinery/light/small/directional/east, /turf/open/floor/engine, @@ -42700,15 +42915,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"nsQ" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 1 - }, -/obj/structure/cable, -/obj/effect/turf_decal/box, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron, -/area/station/hallway/primary/aft) "nsX" = ( /obj/structure/plaque/static_plaque/atmos, /turf/closed/wall, @@ -42728,12 +42934,15 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "ntf" = ( /obj/machinery/light/small/red/directional/south, /obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark/textured_large, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "ntl" = ( /obj/structure/rack, /obj/item/ammo_box/magazine/m35, @@ -42793,6 +43002,7 @@ /obj/effect/turf_decal/stripes/corner{ dir = 4 }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/port/greater) "nuo" = ( @@ -42874,6 +43084,11 @@ }, /turf/open/floor/iron/dark, /area/station/security/warden) +"nvY" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/service/kitchen/abandoned) "nwf" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -42966,7 +43181,7 @@ /obj/machinery/chem_dispenser/drinks, /obj/effect/turf_decal/delivery, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "nwY" = ( /obj/effect/turf_decal/tile/yellow{ dir = 1 @@ -43077,7 +43292,7 @@ /obj/effect/mapping_helpers/airlock/access/any/service/janitor, /obj/effect/mapping_helpers/airlock/access/any/engineering/maintenance, /turf/open/floor/iron/dark, -/area/station/hallway/secondary/entry) +/area/station/maintenance/starboard/aft) "nyQ" = ( /obj/structure/disposalpipe/segment, /obj/effect/turf_decal/tile/blue, @@ -43151,6 +43366,7 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/mapping_helpers/airlock/access/all/science/general, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/science/explab) "nzW" = ( @@ -43513,6 +43729,17 @@ /obj/item/food/grown/poppy, /turf/open/floor/iron/dark, /area/station/service/chapel) +"nGG" = ( +/obj/structure/rack, +/obj/effect/turf_decal/bot, +/obj/item/storage/toolbox/emergency, +/obj/item/flashlight, +/obj/machinery/light/small/directional/east, +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/security/upper) "nGJ" = ( /obj/effect/mapping_helpers/iannewyear, /turf/open/floor/wood, @@ -43992,8 +44219,9 @@ "nMW" = ( /obj/effect/decal/cleanable/blood/old, /obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/dark/textured, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "nMY" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/old, @@ -44034,7 +44262,7 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "nNW" = ( /obj/machinery/vending/wardrobe/robo_wardrobe, /obj/effect/turf_decal/bot, @@ -44133,7 +44361,7 @@ dir = 4 }, /turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "nPT" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/burnt_floor, @@ -44254,6 +44482,17 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/dark, /area/station/cargo/storage) +"nRP" = ( +/obj/machinery/door/airlock/engineering{ + name = "Emergency Storage" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/unres{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/security/upper) "nSe" = ( /obj/effect/turf_decal/bot, /obj/effect/turf_decal/tile/neutral{ @@ -44400,8 +44639,9 @@ "nUi" = ( /obj/structure/chair/sofa/right/maroon, /obj/effect/mapping_helpers/broken_floor, +/obj/machinery/airalarm/directional/north, /turf/open/floor/wood, -/area/station/maintenance/starboard/fore) +/area/station/service/library/abandoned) "nUt" = ( /obj/effect/turf_decal/box, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -45061,7 +45301,7 @@ pixel_x = -2 }, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "oiz" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -45069,7 +45309,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/gibs, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "oiJ" = ( /obj/effect/turf_decal/bot, /obj/effect/decal/cleanable/dirt, @@ -45085,7 +45325,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "oiV" = ( /obj/effect/decal/cleanable/blood/old, /obj/effect/decal/remains/human, @@ -45595,7 +45835,7 @@ dir = 1 }, /turf/open/floor/iron/dark/textured, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "osR" = ( /obj/structure/cable, /obj/machinery/computer/shuttle/labor, @@ -45893,7 +46133,7 @@ /obj/effect/turf_decal/stripes/line, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "oye" = ( /obj/machinery/light/small/directional/north, /obj/structure/closet/emcloset/anchored, @@ -45927,10 +46167,10 @@ /obj/structure/window/reinforced/spawner/directional/north{ pixel_y = 1 }, +/obj/item/surgery_tray, /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 1 }, -/obj/item/surgery_tray, /turf/open/floor/iron/dark, /area/station/science/robotics/lab) "oyY" = ( @@ -46004,7 +46244,7 @@ dir = 8 }, /turf/open/floor/iron/dark, -/area/station/hallway/secondary/entry) +/area/station/maintenance/starboard/aft) "ozZ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/decal/cleanable/dirt, @@ -46290,7 +46530,7 @@ dir = 8 }, /turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "oFf" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/decal/cleanable/dirt, @@ -46723,23 +46963,6 @@ /obj/machinery/dna_scannernew, /turf/open/floor/iron/dark, /area/station/science/genetics) -"oNo" = ( -/obj/effect/turf_decal/bot, -/obj/structure/rack, -/obj/effect/decal/cleanable/blood/old, -/obj/item/weldingtool{ - pixel_x = -2; - pixel_y = 6 - }, -/obj/item/clothing/head/utility/welding{ - pixel_y = 5 - }, -/obj/item/crowbar/red, -/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ - dir = 4 - }, -/turf/open/floor/iron/dark, -/area/station/hallway/primary/aft) "oNr" = ( /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, @@ -46915,7 +47138,7 @@ dir = 9 }, /turf/open/floor/iron/dark/textured, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "oQH" = ( /obj/effect/turf_decal/tile/purple/opposingcorners, /obj/effect/turf_decal/tile/purple/anticorner/contrasted{ @@ -46952,7 +47175,7 @@ dir = 9 }, /turf/open/floor/iron/dark/textured_large, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "oRt" = ( /obj/structure/sign/departments/medbay/alt, /turf/closed/wall, @@ -46997,6 +47220,9 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/science/ordnance/office) +"oRN" = ( +/turf/closed/wall, +/area/station/service/hydroponics/garden/abandoned) "oRZ" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/trinary/mixer{ @@ -47076,8 +47302,11 @@ "oTm" = ( /obj/effect/decal/cleanable/blood/old, /obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plastic, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "oTt" = ( /obj/structure/sign/painting/library{ pixel_x = 32 @@ -47158,6 +47387,7 @@ "oUc" = ( /obj/effect/decal/cleanable/cobweb, /obj/effect/mapping_helpers/broken_floor, +/obj/machinery/airalarm/directional/north, /turf/open/floor/plating, /area/station/maintenance/department/crew_quarters/bar) "oUg" = ( @@ -47179,6 +47409,9 @@ "oUl" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small/red/directional/west, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) "oUu" = ( @@ -47215,7 +47448,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/light/small/directional/west, /turf/open/floor/glass, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "oVl" = ( /obj/machinery/door/airlock/external{ name = "Satellite External Airlock" @@ -47333,8 +47566,9 @@ /turf/open/floor/iron/showroomfloor, /area/station/medical/treatment_center) "oXj" = ( -/obj/effect/decal/cleanable/dirt, /obj/structure/ghost_critter_spawn, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/moisture_trap, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "oXm" = ( @@ -47465,7 +47699,7 @@ /obj/item/weldingtool/mini, /obj/effect/turf_decal/tile/neutral/anticorner/contrasted, /turf/open/floor/iron/dark, -/area/station/maintenance/fore) +/area/station/medical/abandoned) "oZb" = ( /obj/structure/railing{ dir = 4 @@ -47495,7 +47729,7 @@ dir = 4 }, /turf/open/floor/iron/dark/textured, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "oZB" = ( /obj/structure/closet/secure_closet/hos, /obj/effect/turf_decal/delivery, @@ -47644,7 +47878,7 @@ /obj/item/clothing/shoes/sandal, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/area/station/service/theater/abandoned) "pcc" = ( /obj/effect/turf_decal/loading_area{ dir = 1 @@ -47761,14 +47995,10 @@ /area/station/security/evidence) "pdE" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 6 - }, -/obj/machinery/atmospherics/components/binary/pump/on/layer4{ - dir = 4 - }, +/obj/structure/table, +/obj/effect/spawner/random/maintenance, /turf/open/floor/plating, -/area/station/maintenance/port/greater) +/area/station/service/kitchen/abandoned) "pdI" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, @@ -47860,14 +48090,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/commons/fitness/recreation) -"peT" = ( -/obj/machinery/light/small/directional/west, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/plating, -/area/station/hallway/primary/aft) "peY" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -48156,7 +48378,7 @@ }, /obj/effect/decal/cleanable/blood, /turf/open/floor/plating, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "pjV" = ( /obj/structure/table/wood, /obj/machinery/newscaster/directional/east, @@ -48165,8 +48387,10 @@ pixel_y = 4 }, /obj/item/pen, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, /turf/open/floor/wood, -/area/station/maintenance/starboard/fore) +/area/station/service/library/abandoned) "pjZ" = ( /obj/effect/turf_decal/tile/yellow{ dir = 4 @@ -48196,6 +48420,9 @@ /obj/structure/flora/bush/sparsegrass/style_random, /turf/open/floor/grass, /area/station/service/hydroponics) +"pkx" = ( +/turf/closed/wall/r_wall, +/area/station/maintenance/abandon_cafeteria) "pkz" = ( /obj/item/chair/stool{ dir = 4; @@ -48204,7 +48431,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/glass, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "pkE" = ( /obj/effect/turf_decal/siding/white{ dir = 8 @@ -48247,6 +48474,9 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"pkZ" = ( +/turf/closed/wall/rust, +/area/station/service/library/abandoned) "pll" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -48294,7 +48524,7 @@ /obj/machinery/status_display/evac/directional/north, /obj/effect/turf_decal/tile/neutral/opposingcorners, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard/fore) +/area/station/service/library/abandoned) "plP" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/cyan/visible, /obj/effect/turf_decal/tile/blue/half/contrasted{ @@ -48402,12 +48632,6 @@ /area/station/maintenance/fore) "pmu" = ( /obj/structure/table, -/obj/item/analyzer{ - pixel_y = 4 - }, -/obj/item/analyzer{ - pixel_x = 2 - }, /obj/machinery/requests_console/directional/west{ department = "Tool Storage"; name = "Tool Storage Requests Console" @@ -48415,6 +48639,11 @@ /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 4 }, +/obj/item/stack/sheet/iron/fifty, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/rods/fifty{ + pixel_y = 5 + }, /turf/open/floor/iron/dark, /area/station/commons/storage/primary) "pmy" = ( @@ -48540,6 +48769,13 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/commons/fitness/recreation) +"pnR" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/structure/closet/secure_closet/nanotrasen_representative, +/turf/open/floor/wood/large, +/area/station/command/heads_quarters/nt_rep) "pop" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -48950,7 +49186,7 @@ "pvH" = ( /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, -/area/station/maintenance/starboard/fore) +/area/station/service/library/abandoned) "pvK" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -49147,6 +49383,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/structure/steam_vent, /obj/effect/mapping_helpers/burnt_floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/port/greater) "pzC" = ( @@ -49267,6 +49504,9 @@ /area/station/medical/office) "pAY" = ( /obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) "pBh" = ( @@ -49350,8 +49590,9 @@ /obj/effect/decal/cleanable/blood/gibs/limb, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/mapping_helpers/broken_floor, +/obj/structure/cable, /turf/open/floor/wood, -/area/station/maintenance/port/fore) +/area/station/service/theater/abandoned) "pCF" = ( /obj/structure/door_assembly/door_assembly_ext{ anchored = 1 @@ -49615,7 +49856,7 @@ /obj/effect/turf_decal/box, /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, -/area/station/maintenance/fore) +/area/station/medical/abandoned) "pGD" = ( /obj/structure/cable, /obj/effect/turf_decal/siding/wideplating/dark{ @@ -49782,7 +50023,7 @@ dir = 8 }, /turf/open/floor/iron/dark, -/area/station/maintenance/fore) +/area/station/medical/abandoned) "pIO" = ( /turf/closed/wall/r_wall/rust, /area/station/command/heads_quarters/ce) @@ -50019,15 +50260,6 @@ }, /turf/open/floor/iron/smooth_large, /area/station/maintenance/department/chapel/monastery) -"pNV" = ( -/obj/effect/turf_decal/delivery, -/obj/effect/decal/cleanable/dirt, -/obj/structure/closet/firecloset, -/obj/effect/turf_decal/tile/neutral/half/contrasted{ - dir = 8 - }, -/turf/open/floor/iron/dark, -/area/station/hallway/primary/aft) "pNY" = ( /obj/machinery/computer/security/mining{ dir = 8 @@ -50139,8 +50371,11 @@ pixel_y = 3 }, /obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark/textured_large, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "pQi" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -50353,6 +50588,17 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/maintenance/solars/port/fore) +"pTu" = ( +/obj/machinery/door/airlock/service/glass{ + name = "Abandoned Kitchen" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark, +/area/station/service/kitchen/abandoned) "pTL" = ( /obj/effect/turf_decal/bot/left, /turf/open/floor/iron, @@ -50398,8 +50644,11 @@ name = "Afraid?" }, /obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plastic, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "pUj" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -50440,7 +50689,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "pVc" = ( /obj/machinery/door/poddoor/preopen{ id = "bridge blast"; @@ -50758,7 +51007,7 @@ /obj/machinery/light/small/directional/east, /obj/structure/dresser, /turf/open/floor/wood, -/area/station/maintenance/starboard/fore) +/area/station/service/library/abandoned) "qbf" = ( /obj/effect/turf_decal/siding/red{ dir = 4 @@ -51387,7 +51636,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, /turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "qkw" = ( /obj/structure/cable, /obj/structure/disposalpipe/junction/yjunction{ @@ -51411,8 +51660,11 @@ /obj/effect/turf_decal/trimline/dark/filled/line{ dir = 4 }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark/textured, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "qlg" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -51772,6 +52024,13 @@ /obj/effect/mapping_helpers/airlock/access/all/service/kitchen, /turf/open/floor/iron/dark, /area/station/maintenance/department/bridge) +"qrh" = ( +/obj/effect/turf_decal/tile/yellow/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red/opposingcorners, +/turf/open/floor/iron/showroomfloor, +/area/station/service/kitchen/abandoned) "qrk" = ( /obj/machinery/power/smes, /obj/effect/turf_decal/bot, @@ -51828,6 +52087,7 @@ "qrU" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/department/crew_quarters/bar) "qsb" = ( @@ -51896,7 +52156,7 @@ }, /obj/effect/spawner/random/trash/garbage, /turf/open/floor/plating, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "qtn" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 9 @@ -51909,7 +52169,7 @@ /obj/structure/chair/stool/bar, /obj/effect/decal/cleanable/blood, /turf/open/floor/glass, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "qtA" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -52010,7 +52270,7 @@ dir = 8 }, /turf/open/floor/iron/dark/textured, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "qvV" = ( /obj/structure/table, /obj/item/paper_bin{ @@ -52296,8 +52556,9 @@ "qzJ" = ( /obj/structure/chair/stool/bar/directional/south, /obj/effect/mapping_helpers/broken_floor, +/obj/structure/cable, /turf/open/floor/wood, -/area/station/maintenance/port/fore) +/area/station/service/theater/abandoned) "qzR" = ( /obj/machinery/atmospherics/pipe/bridge_pipe/cyan/visible{ dir = 4 @@ -52332,6 +52593,8 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/moisture_trap, /turf/open/floor/plating, /area/station/maintenance/port/lesser) "qAG" = ( @@ -52383,9 +52646,8 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/corner{ - dir = 8 - }, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/port/greater) "qBq" = ( @@ -52509,7 +52771,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "qDW" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -52546,7 +52808,6 @@ /turf/open/floor/iron/showroomfloor, /area/station/science/research) "qEs" = ( -/obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/abandoned, /obj/structure/barricade/wooden/crude, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -52556,8 +52817,11 @@ dir = 1 }, /obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, +/obj/machinery/door/airlock/service{ + name = "Abandoned Gambling Den" + }, /turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "qEu" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -52941,7 +53205,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, /turf/open/floor/wood, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "qMd" = ( /obj/machinery/button/door/directional/south{ id = "medbay_front_door"; @@ -53146,13 +53410,19 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"qOV" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/burnt_floor, +/turf/open/floor/plating, +/area/station/maintenance/department/security/upper) "qOW" = ( /obj/machinery/light/small/red/directional/west, /obj/effect/turf_decal/trimline/dark/filled/line{ dir = 8 }, /turf/open/floor/iron/dark/textured_large, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "qPb" = ( /obj/machinery/washing_machine, /obj/effect/turf_decal/tile/blue/opposingcorners{ @@ -53200,7 +53470,7 @@ "qPU" = ( /obj/structure/bookcase/random/reference, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard/fore) +/area/station/service/library/abandoned) "qPV" = ( /obj/structure/lattice/catwalk, /obj/structure/railing{ @@ -53214,9 +53484,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/misc/asteroid/airless, /area/space/nearstation) -"qQg" = ( -/turf/open/floor/iron/dark, -/area/station/hallway/primary/aft) "qQj" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -53454,30 +53721,17 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/service/bar/atrium) -"qTK" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/door/airlock/engineering{ - name = "Emergency Storage" - }, -/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, -/obj/effect/turf_decal/tile/neutral{ - dir = 1 - }, -/obj/effect/mapping_helpers/airlock/unres, -/turf/open/floor/iron/dark, -/area/station/hallway/primary/central) "qTY" = ( -/obj/structure/table, -/obj/item/surgical_drapes, -/obj/item/scalpel{ - pixel_y = 5 - }, -/obj/item/cautery, /obj/machinery/light_switch/directional/north, /obj/effect/turf_decal/tile/neutral/half/contrasted, +/obj/structure/table, +/obj/item/clipboard{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/clothing/gloves/latex, +/obj/item/clothing/mask/surgical, +/obj/item/clothing/suit/apron/surgical, /turf/open/floor/iron/dark, /area/station/medical/surgery/aft) "qUb" = ( @@ -53654,7 +53908,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, -/area/station/maintenance/fore) +/area/station/medical/abandoned) "qWB" = ( /obj/machinery/door/airlock/maintenance, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -53789,7 +54043,7 @@ dir = 1 }, /turf/open/floor/iron/dark/textured_large, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "qYv" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -54059,7 +54313,7 @@ dir = 4 }, /turf/open/floor/iron/dark/textured_large, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "rcj" = ( /obj/structure/toilet, /obj/effect/decal/cleanable/dirt, @@ -54188,7 +54442,7 @@ dir = 8 }, /turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "rdM" = ( /obj/structure/sign/warning/secure_area, /turf/closed/wall, @@ -54344,7 +54598,7 @@ /obj/effect/decal/cleanable/cobweb, /obj/effect/turf_decal/tile/neutral/anticorner/contrasted, /turf/open/floor/iron/dark, -/area/station/hallway/secondary/entry) +/area/station/maintenance/starboard/aft) "rgy" = ( /obj/structure/disposalpipe/segment{ dir = 5 @@ -54497,7 +54751,6 @@ /obj/structure/table, /obj/item/clipboard, /obj/item/folder/yellow, -/obj/item/pipe_dispenser, /turf/open/floor/iron/dark, /area/station/engineering/atmos) "riQ" = ( @@ -54799,6 +55052,17 @@ /obj/effect/mapping_helpers/airlock/access/all/science/rd, /turf/open/floor/iron/dark, /area/station/science/server) +"roS" = ( +/obj/item/chair/stool/bar{ + pixel_y = -8; + dir = 1 + }, +/obj/effect/turf_decal/tile/yellow/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red/opposingcorners, +/turf/open/floor/iron/showroomfloor, +/area/station/service/kitchen/abandoned) "roT" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -55162,7 +55426,6 @@ /turf/open/floor/iron/dark, /area/station/cargo/warehouse) "rsZ" = ( -/obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/abandoned, /obj/structure/barricade/wooden/crude, /obj/effect/decal/cleanable/dirt, @@ -55172,8 +55435,11 @@ dir = 1 }, /obj/effect/mapping_helpers/airlock/access/any/science/maintenance, +/obj/machinery/door/airlock/service{ + name = "Abandoned Library" + }, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard/fore) +/area/station/service/library/abandoned) "rtc" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/structure/crate, @@ -55199,7 +55465,7 @@ /obj/machinery/computer/records/medical/laptop, /obj/structure/sign/poster/contraband/random/directional/north, /turf/open/floor/iron/dark, -/area/station/maintenance/fore) +/area/station/medical/abandoned) "rtF" = ( /obj/machinery/atmospherics/pipe/smart/manifold/purple/visible{ dir = 8 @@ -55387,6 +55653,7 @@ "rxo" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/corner, +/obj/effect/spawner/random/trash/moisture_trap, /turf/open/floor/plating, /area/station/maintenance/starboard) "rxp" = ( @@ -55477,7 +55744,7 @@ /obj/effect/mapping_helpers/broken_floor, /obj/effect/decal/cleanable/blood/gibs/up, /turf/open/floor/plating, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "ryn" = ( /obj/structure/cable, /turf/open/floor/plating, @@ -55512,16 +55779,10 @@ /turf/open/floor/iron/dark, /area/station/service/library) "rzB" = ( -/obj/structure/table, -/obj/item/clipboard{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/clothing/gloves/latex, -/obj/item/clothing/mask/surgical, -/obj/item/clothing/suit/apron/surgical, /obj/machinery/firealarm/directional/east, /obj/effect/turf_decal/tile/neutral/half/contrasted, +/obj/structure/closet/crate/freezer/blood, +/obj/effect/turf_decal/bot, /turf/open/floor/iron/dark, /area/station/medical/surgery/aft) "rzE" = ( @@ -55774,6 +56035,10 @@ /obj/effect/turf_decal/tile/neutral/opposingcorners, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/eva) +"rDs" = ( +/obj/machinery/oven/range, +/turf/open/floor/plating, +/area/station/service/kitchen/abandoned) "rDL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/holopad, @@ -55791,7 +56056,7 @@ /obj/effect/turf_decal/bot, /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron/dark, -/area/station/maintenance/fore) +/area/station/medical/abandoned) "rDX" = ( /obj/structure/window/reinforced/spawner/directional/south, /obj/machinery/atmospherics/components/trinary/filter/atmos/n2o{ @@ -56109,7 +56374,7 @@ }, /obj/structure/cable, /turf/open/floor/plating, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "rKm" = ( /obj/effect/turf_decal/bot, /obj/machinery/computer/atmos_alert, @@ -56288,7 +56553,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, -/area/station/maintenance/port/fore) +/area/station/service/theater/abandoned) "rNg" = ( /obj/effect/turf_decal/tile/red{ dir = 1 @@ -56954,7 +57219,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "rYc" = ( /obj/structure/sign/nanotrasen, /turf/closed/wall, @@ -57072,6 +57337,13 @@ }, /turf/open/misc/asteroid, /area/space/nearstation) +"saj" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/service/kitchen/abandoned) "sav" = ( /obj/structure/flora/bush/pale/style_random, /obj/structure/sign/warning/electric_shock/directional/south, @@ -57325,7 +57597,7 @@ /obj/structure/noticeboard/directional/west, /obj/effect/turf_decal/tile/neutral/opposingcorners, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard/fore) +/area/station/service/library/abandoned) "sdp" = ( /obj/structure/table/reinforced, /obj/machinery/fax{ @@ -57344,7 +57616,7 @@ }, /obj/effect/decal/cleanable/blood/gibs/core, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "sec" = ( /obj/effect/turf_decal/trimline/piss_yellow/filled/line{ dir = 4 @@ -57356,6 +57628,7 @@ /obj/item/reagent_containers/cup/glass/bottle/beer/almost_empty{ pixel_x = 12 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/textured_edge{ dir = 4 }, @@ -57383,7 +57656,7 @@ /obj/effect/landmark/generic_maintenance_landmark, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "sex" = ( /obj/effect/turf_decal/tile/blue/half/contrasted{ dir = 1 @@ -57434,7 +57707,7 @@ pixel_y = 6 }, /turf/open/floor/plating, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "seU" = ( /obj/structure/table, /obj/item/clothing/gloves/color/yellow, @@ -57681,8 +57954,9 @@ /obj/effect/decal/cleanable/blood/gibs/old, /obj/effect/decal/cleanable/blood/old, /obj/effect/mapping_helpers/broken_floor, +/obj/effect/spawner/random/trash/moisture_trap, /turf/open/floor/wood, -/area/station/maintenance/port/fore) +/area/station/service/theater/abandoned) "sju" = ( /obj/machinery/shower/directional/east, /obj/item/soap/nanotrasen, @@ -57937,9 +58211,6 @@ }, /turf/closed/wall, /area/station/engineering/atmos) -"snn" = ( -/turf/closed/wall/rust, -/area/station/maintenance/department/chapel/monastery) "snp" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/neutral/fourcorners, @@ -58188,6 +58459,7 @@ /obj/effect/turf_decal/trimline/gray/filled/line{ dir = 10 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark/textured, /area/station/maintenance/port/fore) "srs" = ( @@ -58199,7 +58471,7 @@ /obj/structure/closet/secure_closet/personal, /obj/effect/decal/cleanable/cobweb, /turf/open/floor/plating, -/area/station/maintenance/fore) +/area/station/medical/abandoned) "srA" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/turf_decal/stripes/line{ @@ -58468,8 +58740,9 @@ /obj/structure/chair/sofa/corner/maroon, /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/effect/mapping_helpers/broken_floor, +/obj/machinery/light_switch/directional/north, /turf/open/floor/wood, -/area/station/maintenance/starboard/fore) +/area/station/service/library/abandoned) "swZ" = ( /obj/effect/turf_decal/delivery, /obj/machinery/door/airlock/security{ @@ -59333,13 +59606,6 @@ }, /turf/open/floor/iron/dark, /area/station/service/chapel) -"sKM" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/obj/structure/closet/secure_closet/nanotrasen_consultant, -/turf/open/floor/wood/large, -/area/station/command/heads_quarters/nt_rep) "sKV" = ( /obj/structure/closet/crate/wooden/toy, /obj/effect/turf_decal/box, @@ -59462,6 +59728,14 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, /turf/open/floor/iron/dark, /area/station/engineering/atmos) +"sMg" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 1 + }, +/obj/effect/turf_decal/box, +/obj/effect/turf_decal/tile/neutral/fourcorners, +/turf/open/floor/iron, +/area/station/hallway/primary/aft) "sMi" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -59625,6 +59899,10 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) +"sPo" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/textured_large, +/area/station/service/abandoned_gambling_den) "sPq" = ( /obj/structure/table/glass, /obj/machinery/reagentgrinder{ @@ -59890,7 +60168,7 @@ dir = 8 }, /turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "sSR" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/decal/cleanable/dirt, @@ -59942,6 +60220,9 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/cargo/warehouse) +"sTH" = ( +/turf/closed/wall/rust, +/area/station/maintenance/abandon_cafeteria) "sTO" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/corner{ @@ -60030,11 +60311,10 @@ /turf/closed/wall, /area/station/service/hydroponics) "sVB" = ( -/obj/machinery/door/airlock/maintenance{ - name = "Chemistry Maintenance" - }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/mapping_helpers/airlock/access/all/medical/chemistry, +/obj/machinery/door/airlock/maintenance_hatch, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/port/greater) "sVD" = ( @@ -60123,7 +60403,7 @@ pixel_x = -16 }, /turf/open/floor/plastic, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "sXy" = ( /obj/structure/urinal/directional/west, /obj/effect/turf_decal/tile/red{ @@ -60198,6 +60478,11 @@ /area/station/maintenance/disposal/incinerator) "sYM" = ( /obj/machinery/light/small/directional/south, +/obj/machinery/suit_storage_unit/standard_unit{ + desc = "An industrial suit storage device carrying retro space suits. Neat!"; + helmet_type = /obj/item/clothing/head/helmet/space; + suit_type = /obj/item/clothing/suit/space + }, /turf/open/floor/plating, /area/station/service/chapel) "sYQ" = ( @@ -60428,13 +60713,6 @@ /obj/machinery/telecomms/processor/preset_three, /turf/open/floor/circuit/green/telecomms/mainframe, /area/station/tcommsat/server) -"tdv" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/neutral/fourcorners, -/turf/open/floor/iron, -/area/station/hallway/primary/aft) "tdG" = ( /obj/machinery/shower/directional/south, /obj/effect/turf_decal/tile/blue/opposingcorners{ @@ -60590,6 +60868,9 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"tfv" = ( +/turf/open/floor/iron/dark, +/area/station/maintenance/department/security/upper) "tfG" = ( /obj/effect/spawner/random/vending/colavend, /obj/effect/turf_decal/tile/red{ @@ -60633,7 +60914,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/neutral/half/contrasted, /turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/area/station/service/theater/abandoned) "tgd" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -60660,7 +60941,7 @@ }, /obj/effect/decal/cleanable/blood, /turf/open/floor/plating, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "tgp" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/closet/crate, @@ -60911,7 +61192,7 @@ /obj/effect/decal/cleanable/blood/old, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, -/area/station/maintenance/fore) +/area/station/medical/abandoned) "tlh" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/yellow/half/contrasted, @@ -60935,8 +61216,9 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/decal/cleanable/blood/old, /obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/south, /turf/open/floor/wood, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "tlL" = ( /obj/effect/turf_decal/stripes/line, /obj/effect/decal/cleanable/dirt, @@ -60998,7 +61280,7 @@ /obj/structure/cable, /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "tme" = ( /obj/machinery/power/smes{ capacity = 9e+006; @@ -61283,8 +61565,10 @@ /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 4 }, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, /turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/area/station/service/theater/abandoned) "tqb" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/tile/yellow/half/contrasted{ @@ -61532,17 +61816,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/showroomfloor, /area/station/security/prison/safe) -"tuP" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/line{ - dir = 10 - }, -/obj/machinery/light/small/directional/west, -/obj/machinery/meter/layer4, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "tuT" = ( /obj/machinery/holopad, /obj/effect/turf_decal/bot, @@ -61588,7 +61861,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "tvK" = ( /obj/machinery/door/airlock/security/glass{ name = "Transferring Centre" @@ -61655,7 +61928,6 @@ /turf/closed/wall/r_wall/rust, /area/station/engineering/supermatter/room) "twR" = ( -/obj/machinery/door/airlock/maintenance, /obj/effect/mapping_helpers/airlock/abandoned, /obj/structure/barricade/wooden/crude, /obj/effect/decal/cleanable/dirt, @@ -61663,8 +61935,11 @@ dir = 8 }, /obj/effect/mapping_helpers/airlock/access/any/science/maintenance, +/obj/machinery/door/airlock/service{ + name = "Abandoned Library" + }, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard/fore) +/area/station/service/library/abandoned) "twX" = ( /turf/closed/wall/r_wall, /area/station/security/prison/shower) @@ -61705,7 +61980,7 @@ "txp" = ( /obj/effect/spawner/random/trash/garbage, /turf/open/floor/glass, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "tya" = ( /obj/effect/decal/cleanable/blood/gibs/limb, /obj/effect/decal/cleanable/blood/old, @@ -61715,7 +61990,7 @@ dir = 4 }, /turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "tyx" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/landmark/start/scientist, @@ -61830,6 +62105,7 @@ /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 4 }, +/obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/secondary/entry) "tAu" = ( @@ -61923,17 +62199,6 @@ }, /turf/open/floor/iron/dark, /area/station/maintenance/department/crew_quarters/bar) -"tBT" = ( -/obj/effect/turf_decal/delivery, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/space_heater, -/obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/dark, -/area/station/hallway/primary/aft) "tCh" = ( /obj/machinery/computer/robotics{ dir = 1 @@ -61982,6 +62247,31 @@ /obj/effect/turf_decal/bot_white, /turf/open/floor/iron/dark/textured_large, /area/station/service/chapel/funeral) +"tDl" = ( +/turf/closed/wall, +/area/station/medical/abandoned) +"tDt" = ( +/obj/structure/table/wood, +/obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/item/paper_bin{ + pixel_x = -5 + }, +/obj/item/pen{ + pixel_x = -5 + }, +/obj/item/stamp{ + pixel_x = -6; + pixel_y = -2 + }, +/obj/item/stamp/denied{ + pixel_x = 6; + pixel_y = -3 + }, +/obj/effect/turf_decal/tile/dark_green/opposingcorners{ + dir = 1 + }, +/turf/open/floor/stone, +/area/station/command/heads_quarters/nt_rep) "tDu" = ( /obj/structure/chair/pew{ dir = 8 @@ -62024,6 +62314,13 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"tEI" = ( +/obj/structure/sink/kitchen/directional/west, +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/service/kitchen/abandoned) "tEZ" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -62130,6 +62427,7 @@ /obj/effect/decal/cleanable/dirt, /obj/item/shard, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/spawner/random/trash/moisture_trap, /turf/open/floor/plating, /area/station/maintenance/port/fore) "tGZ" = ( @@ -62210,8 +62508,11 @@ /obj/effect/mapping_helpers/broken_floor, /obj/effect/decal/cleanable/blood/gibs/old, /obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "tJa" = ( /obj/machinery/camera/directional/west{ c_tag = "Atmospherics Tank - N2O"; @@ -62530,6 +62831,23 @@ }, /turf/open/floor/iron, /area/station/engineering/main) +"tNX" = ( +/obj/effect/turf_decal/bot, +/obj/structure/rack, +/obj/effect/decal/cleanable/blood/old, +/obj/item/weldingtool{ + pixel_x = -2; + pixel_y = 6 + }, +/obj/item/clothing/head/utility/welding{ + pixel_y = 5 + }, +/obj/item/crowbar/red, +/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ + dir = 4 + }, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/security/upper) "tNY" = ( /obj/effect/turf_decal/stripes/corner, /obj/effect/turf_decal/stripes/corner{ @@ -62555,7 +62873,7 @@ /obj/effect/decal/cleanable/blood/gibs/limb, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, -/area/station/maintenance/port/fore) +/area/station/service/theater/abandoned) "tOr" = ( /obj/effect/turf_decal/delivery, /obj/structure/reagent_dispensers/watertank, @@ -62744,13 +63062,13 @@ /turf/open/floor/plating, /area/station/maintenance/department/bridge) "tRO" = ( -/obj/structure/sink/directional/west, /obj/effect/decal/cleanable/blood/old, /obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/box, /obj/effect/mapping_helpers/burnt_floor, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, /turf/open/floor/plating, -/area/station/maintenance/fore) +/area/station/medical/abandoned) "tRX" = ( /obj/machinery/conveyor{ id = "garbage" @@ -62814,6 +63132,17 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/port/greater) +"tTz" = ( +/obj/machinery/light_switch/directional/west, +/obj/structure/chair/office{ + dir = 4 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/landmark/start/nanotrasen_representative, +/turf/open/floor/wood/large, +/area/station/command/heads_quarters/nt_rep) "tTD" = ( /obj/machinery/light/directional/north, /obj/structure/chair/sofa/bench, @@ -63036,8 +63365,9 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/decal/cleanable/dirt, /obj/effect/mapping_helpers/burnt_floor, +/obj/structure/cable, /turf/open/floor/plating, -/area/station/hallway/secondary/entry) +/area/station/maintenance/starboard/aft) "tXS" = ( /obj/machinery/atmospherics/components/tank/oxygen, /turf/open/floor/iron/showroomfloor, @@ -63353,7 +63683,7 @@ dir = 8 }, /turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "ucS" = ( /obj/structure/flora/bush/flowers_yw/style_random, /obj/effect/decal/cleanable/blood/old, @@ -63723,7 +64053,12 @@ }, /obj/effect/landmark/generic_maintenance_landmark, /turf/open/floor/wood, -/area/station/maintenance/port/fore) +/area/station/service/theater/abandoned) +"uiT" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/machinery/vending/dinnerware, +/turf/open/floor/plating, +/area/station/service/kitchen/abandoned) "uiV" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -63772,6 +64107,12 @@ dir = 8 }, /area/station/hallway/primary/central/fore) +"uku" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/abandon_cafeteria) "ukM" = ( /obj/structure/sign/warning/vacuum/external/directional/south, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -64185,6 +64526,15 @@ /obj/effect/turf_decal/siding/thinplating/dark/end, /turf/open/floor/glass/reinforced, /area/station/service/chapel) +"upN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/trimline/dark/filled/line{ + dir = 4 + }, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/structure/cable, +/turf/open/floor/iron/dark/textured, +/area/station/service/abandoned_gambling_den) "upR" = ( /obj/effect/turf_decal/bot, /obj/effect/turf_decal/siding/wood{ @@ -64240,15 +64590,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/cargo/sorting) -"uqT" = ( -/obj/structure/grille/broken, -/obj/effect/turf_decal/stripes/line, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating, -/area/station/hallway/primary/aft) "uqW" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -64664,7 +65005,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "uyl" = ( /obj/effect/landmark/event_spawn, /obj/effect/turf_decal/tile/blue/half/contrasted{ @@ -64675,18 +65016,6 @@ }, /turf/open/floor/iron, /area/station/security/courtroom) -"uyD" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/airlock/corporate{ - id_tag = "BSdoor"; - name = "Nanotrasen Representative's Office" - }, -/obj/effect/mapping_helpers/airlock/access/all/command/captain, -/obj/machinery/door/firedoor, -/turf/open/floor/iron/dark, -/area/station/command/heads_quarters/nt_rep) "uyR" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/showroomfloor, @@ -64739,12 +65068,6 @@ /obj/effect/spawner/random/structure/crate, /turf/open/floor/iron/dark/textured_large, /area/station/maintenance/port/greater) -"uAb" = ( -/obj/structure/girder, -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/burnt_floor, -/turf/open/floor/plating, -/area/station/hallway/secondary/entry) "uAc" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/rack, @@ -65151,6 +65474,7 @@ }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard) "uGU" = ( @@ -65179,7 +65503,7 @@ pixel_y = 6 }, /turf/open/floor/wood, -/area/station/maintenance/port/fore) +/area/station/service/theater/abandoned) "uHg" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 @@ -65198,6 +65522,9 @@ }, /turf/open/floor/iron/dark, /area/station/security/courtroom) +"uHJ" = ( +/turf/closed/wall, +/area/station/maintenance/abandon_cafeteria) "uHL" = ( /obj/machinery/airalarm/directional/south, /obj/machinery/camera/autoname/directional/south, @@ -65216,7 +65543,7 @@ "uHW" = ( /obj/structure/sign/poster/contraband/clown, /turf/closed/wall/rust, -/area/station/maintenance/port/fore) +/area/station/service/theater/abandoned) "uHY" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/stripes/line{ @@ -65460,8 +65787,9 @@ /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 4 }, +/obj/machinery/light_switch/directional/north, /turf/open/floor/plating, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "uMb" = ( /obj/item/kirbyplants{ icon_state = "plant-11" @@ -65538,6 +65866,19 @@ /obj/machinery/power/turbine/turbine_outlet, /turf/open/floor/engine, /area/station/maintenance/disposal/incinerator) +"uNA" = ( +/obj/structure/table, +/obj/effect/decal/cleanable/blood/old, +/obj/item/clothing/gloves/color/black, +/obj/item/wrench, +/obj/structure/sign/warning/no_smoking{ + pixel_x = 30 + }, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/security/upper) "uNO" = ( /turf/closed/wall, /area/station/commons/toilet/restrooms) @@ -65577,7 +65918,7 @@ /obj/structure/curtain, /obj/structure/toilet, /turf/open/floor/plastic, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "uOs" = ( /obj/structure/sign/departments/psychology/directional/north, /obj/effect/turf_decal/siding/blue{ @@ -65658,6 +65999,18 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/engineering/atmos/pumproom) +"uQl" = ( +/obj/structure/table, +/obj/machinery/microwave{ + desc = "Cooks and boils stuff, somehow."; + pixel_y = 5 + }, +/obj/effect/turf_decal/tile/yellow/opposingcorners{ + dir = 1 + }, +/obj/effect/turf_decal/tile/red/opposingcorners, +/turf/open/floor/iron/showroomfloor, +/area/station/service/kitchen/abandoned) "uQn" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -65852,6 +66205,21 @@ /obj/effect/mapping_helpers/airlock/access/all/science/general, /turf/open/floor/iron/dark, /area/station/science/lab) +"uTj" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/stripes/line, +/obj/machinery/door/airlock/engineering{ + name = "Emergency Storage" + }, +/obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/effect/turf_decal/tile/neutral{ + dir = 1 + }, +/obj/effect/mapping_helpers/airlock/unres, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/security/upper) "uTt" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -65890,7 +66258,7 @@ dir = 1 }, /turf/open/floor/glass, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "uUk" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/highsecurity{ @@ -65923,6 +66291,9 @@ "uVx" = ( /turf/closed/wall/rust, /area/station/hallway/primary/port) +"uVJ" = ( +/turf/closed/wall/rust, +/area/station/medical/abandoned) "uVK" = ( /obj/machinery/bluespace_vendor/directional/north, /turf/open/floor/iron/dark, @@ -66064,9 +66435,6 @@ }, /turf/open/floor/iron, /area/station/security/prison) -"uXZ" = ( -/turf/closed/wall/rust, -/area/station/hallway/primary/aft) "uYp" = ( /obj/structure/chair/stool/bar/directional/west, /turf/open/floor/wood, @@ -66720,7 +67088,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "vjh" = ( /turf/closed/wall, /area/station/maintenance/port/greater) @@ -66737,7 +67105,7 @@ }, /obj/structure/barricade/wooden/crude, /turf/open/floor/iron/dark/textured_large, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "vjX" = ( /obj/structure/table/reinforced, /obj/machinery/door/firedoor, @@ -66781,7 +67149,7 @@ dir = 8 }, /turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "vku" = ( /obj/structure/sign/warning/secure_area, /turf/closed/wall, @@ -66994,13 +67362,20 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron, /area/station/hallway/primary/starboard) +"vny" = ( +/obj/machinery/door/airlock/maintenance, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/unres, +/obj/effect/mapping_helpers/airlock/access/any/security/maintenance, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/security/upper) "vnC" = ( /obj/effect/spawner/structure/window/hollow/reinforced/directional{ dir = 9 }, /obj/structure/cable, /turf/open/floor/plating, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "vnH" = ( /obj/item/radio/intercom/directional/west, /obj/structure/flora/bush/grassy/style_random, @@ -67263,7 +67638,7 @@ dir = 4 }, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "vrb" = ( /turf/open/floor/iron, /area/station/commons/fitness/recreation) @@ -67337,8 +67712,9 @@ /obj/effect/decal/cleanable/dirt, /obj/structure/cable, /obj/effect/mapping_helpers/burnt_floor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, -/area/station/maintenance/port/greater) +/area/station/service/kitchen/abandoned) "vrS" = ( /obj/effect/turf_decal/siding/wood, /obj/machinery/light/directional/south, @@ -67535,7 +67911,7 @@ dir = 1 }, /turf/open/floor/iron/dark/textured, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "vvd" = ( /obj/machinery/mech_bay_recharge_port, /obj/machinery/airalarm/directional/west, @@ -68233,6 +68609,7 @@ /obj/machinery/light_switch/directional/east{ pixel_y = -33 }, +/obj/structure/cable, /turf/open/floor/iron/showroomfloor, /area/station/medical/storage) "vEI" = ( @@ -68290,6 +68667,9 @@ /obj/structure/cable, /turf/open/floor/iron/dark/textured_large, /area/station/maintenance/port/aft) +"vFF" = ( +/turf/closed/wall/rust, +/area/station/service/hydroponics/garden/abandoned) "vFH" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/turf_decal/stripes/line{ @@ -68311,12 +68691,12 @@ dir = 10 }, /turf/open/floor/iron/dark/textured, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "vFU" = ( /obj/structure/bookcase/random/nonfiction, /obj/effect/decal/cleanable/cobweb, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard/fore) +/area/station/service/library/abandoned) "vFX" = ( /obj/machinery/button/door/directional/north{ id = "oproompriv"; @@ -68915,16 +69295,6 @@ /obj/structure/lattice, /turf/open/space/basic, /area/space) -"vOl" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/stripes/corner{ - dir = 1 - }, -/obj/effect/mapping_helpers/burnt_floor, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) "vOn" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/sign/poster/contraband/random/directional/north, @@ -69075,9 +69445,12 @@ /turf/open/misc/asteroid/airless, /area/space/nearstation) "vQY" = ( -/obj/structure/sign/departments/medbay/alt, -/turf/closed/wall, -/area/station/maintenance/port/greater) +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/obj/machinery/light/small/dim/directional/east, +/turf/open/floor/plating, +/area/station/service/kitchen/abandoned) "vRf" = ( /obj/structure/falsewall, /turf/open/floor/plating, @@ -69294,7 +69667,7 @@ "vUo" = ( /obj/structure/sign/departments/medbay/alt, /turf/closed/wall/rust, -/area/station/maintenance/fore) +/area/station/medical/abandoned) "vUp" = ( /obj/machinery/door/airlock/maintenance{ name = "Drone Bay Maintenance" @@ -69311,6 +69684,9 @@ }, /turf/open/floor/iron/dark/corner, /area/station/hallway/primary/port) +"vUC" = ( +/turf/closed/wall, +/area/station/service/library/abandoned) "vUH" = ( /obj/structure/disposalpipe/segment, /obj/effect/landmark/start/cargo_technician, @@ -69365,19 +69741,12 @@ }, /turf/open/floor/iron, /area/station/security/brig) -"vVw" = ( -/turf/closed/wall/r_wall/rust, -/area/station/science/lab) "vVx" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/engineering/atmos/pumproom) -"vVC" = ( -/obj/structure/sign/warning/fire, -/turf/closed/wall, -/area/station/maintenance/port/greater) "vVE" = ( /obj/machinery/newscaster/directional/east, /obj/structure/table/reinforced/plasmarglass, @@ -69443,7 +69812,7 @@ dir = 4 }, /turf/open/floor/iron/dark, -/area/station/maintenance/fore) +/area/station/medical/abandoned) "vVP" = ( /obj/machinery/air_sensor/mix_tank, /turf/open/floor/engine/vacuum, @@ -69558,8 +69927,6 @@ "vXf" = ( /obj/structure/table, /obj/item/folder/white, -/obj/item/retractor, -/obj/item/hemostat, /obj/machinery/vending/wallmed/directional/north, /obj/machinery/camera/directional/north{ c_tag = "Medical Operating Theater B"; @@ -69614,18 +69981,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/maintenance/disposal/incinerator) -"vXC" = ( -/obj/machinery/door/airlock/atmos{ - name = "Atmospherics Connector" - }, -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/airlock/unres{ - dir = 8 - }, -/obj/effect/mapping_helpers/airlock/access/any/medical/maintenance, -/turf/open/floor/iron/dark, -/area/station/maintenance/port/greater) "vXI" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 4 @@ -69824,7 +70179,7 @@ /obj/structure/table, /obj/effect/spawner/random/food_or_drink/booze, /turf/open/floor/plating, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "waL" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -69906,7 +70261,7 @@ }, /obj/effect/turf_decal/delivery, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "wcs" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 @@ -70375,7 +70730,7 @@ }, /obj/structure/cable, /turf/open/floor/plating, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "wjm" = ( /obj/effect/turf_decal/tile/blue/half/contrasted{ dir = 8 @@ -70480,7 +70835,7 @@ "wlm" = ( /obj/structure/bookcase/random/fiction, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard/fore) +/area/station/service/library/abandoned) "wlz" = ( /obj/structure/railing{ dir = 8 @@ -70974,7 +71329,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/decal/cleanable/blood/old, /turf/open/floor/iron/dark/textured_large, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "wsb" = ( /obj/structure/reagent_dispensers/fueltank, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -71151,7 +71506,7 @@ "wuI" = ( /obj/structure/sign/poster/contraband/missing_gloves, /turf/closed/wall/rust, -/area/station/maintenance/port/greater) +/area/station/service/kitchen/abandoned) "wuW" = ( /obj/machinery/status_display/evac/directional/west, /obj/effect/turf_decal/bot, @@ -71299,17 +71654,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"wxG" = ( -/obj/machinery/asteroid_magnet{ - center_x = 176; - center_y = 177; - area_size = 7 - }, -/obj/effect/turf_decal/tile/purple/half/contrasted{ - dir = 1 - }, -/turf/open/floor/iron/showroomfloor, -/area/station/science/explab) "wxI" = ( /obj/item/kirbyplants{ icon_state = "plant-05" @@ -71317,7 +71661,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/neutral/opposingcorners, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard/fore) +/area/station/service/library/abandoned) "wxM" = ( /obj/structure/cable, /obj/effect/turf_decal/stripes/line{ @@ -71494,6 +71838,9 @@ /obj/effect/turf_decal/siding/red, /turf/open/floor/iron/showroomfloor, /area/station/security/checkpoint/science/research) +"wAE" = ( +/turf/closed/wall, +/area/station/service/kitchen/abandoned) "wAS" = ( /obj/machinery/telecomms/broadcaster/preset_left, /turf/open/floor/circuit/green/telecomms/mainframe, @@ -71564,6 +71911,15 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/engineering/hallway) +"wBF" = ( +/obj/effect/turf_decal/delivery, +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/firecloset, +/obj/effect/turf_decal/tile/neutral/half/contrasted{ + dir = 8 + }, +/turf/open/floor/iron/dark, +/area/station/maintenance/department/security/upper) "wCe" = ( /obj/effect/turf_decal/delivery, /obj/structure/closet/emcloset, @@ -71632,7 +71988,7 @@ /obj/machinery/light/small/red/directional/east, /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "wEt" = ( /turf/closed/wall/r_wall/rust, /area/station/service/bar/atrium) @@ -72065,6 +72421,12 @@ /obj/effect/mapping_helpers/airlock/access/all/security/general, /turf/open/floor/iron/showroomfloor, /area/station/security/brig) +"wKy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/obj/machinery/airalarm/directional/south, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "wKC" = ( /obj/effect/landmark/event_spawn, /obj/structure/cable, @@ -72083,6 +72445,12 @@ dir = 1 }, /area/station/service/chapel) +"wKP" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/obj/effect/spawner/random/trash/moisture_trap, +/turf/open/floor/plating, +/area/station/maintenance/port/greater) "wLp" = ( /obj/effect/turf_decal/tile/brown{ dir = 4 @@ -72302,7 +72670,7 @@ /obj/effect/decal/cleanable/blood/old, /obj/structure/mirror/directional/west, /turf/open/floor/iron/dark/textured, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "wOS" = ( /obj/structure/kitchenspike, /obj/effect/turf_decal/bot/left, @@ -72364,6 +72732,9 @@ /obj/effect/turf_decal/box, /turf/open/floor/stone, /area/station/science/xenobiology) +"wPI" = ( +/turf/closed/wall/rust, +/area/station/service/abandoned_gambling_den) "wPL" = ( /obj/effect/turf_decal/siding/wood{ dir = 10 @@ -72398,7 +72769,7 @@ /obj/effect/turf_decal/delivery, /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "wQT" = ( /obj/effect/turf_decal/bot, /obj/structure/rack, @@ -72465,6 +72836,12 @@ /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 10 }, +/obj/effect/turf_decal/bot{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/bluespace_sender{ + dir = 1 + }, /turf/open/floor/iron/dark, /area/station/maintenance/disposal/incinerator) "wRE" = ( @@ -72581,7 +72958,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/glass, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "wSY" = ( /obj/machinery/camera/directional/south{ c_tag = "Satellite Antechamber"; @@ -72663,7 +73040,7 @@ }, /obj/item/surgical_drapes, /turf/open/floor/iron/dark/textured, -/area/station/maintenance/starboard/fore) +/area/station/service/abandoned_gambling_den) "wUa" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -73089,7 +73466,7 @@ }, /obj/structure/sign/poster/contraband/punch_shit/directional/east, /turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "xbx" = ( /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/stripes/line, @@ -73124,6 +73501,17 @@ }, /turf/open/floor/stone, /area/station/command/heads_quarters/nt_rep) +"xbW" = ( +/obj/machinery/asteroid_magnet{ + center_x = 176; + center_y = 178; + area_size = 7 + }, +/obj/effect/turf_decal/tile/purple/half/contrasted{ + dir = 1 + }, +/turf/open/floor/iron/showroomfloor, +/area/station/science/explab) "xbZ" = ( /obj/machinery/portable_atmospherics/scrubber/huge, /obj/effect/turf_decal/delivery, @@ -73422,7 +73810,7 @@ }, /obj/effect/decal/cleanable/dirt, /turf/open/floor/glass, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "xfO" = ( /turf/open/floor/iron/showroomfloor, /area/station/medical/cryo) @@ -73460,7 +73848,7 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "xha" = ( /turf/open/floor/engine/co2, /area/station/engineering/atmos) @@ -73594,11 +73982,21 @@ }, /turf/open/floor/plating, /area/station/command/gateway) +"xjy" = ( +/obj/effect/decal/cleanable/blood/old, +/obj/item/radio/intercom/directional/west, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/broken_floor, +/turf/open/floor/plating, +/area/station/maintenance/department/security/upper) "xjz" = ( /obj/structure/window/reinforced/spawner/directional/north, /obj/structure/chair/sofa/corp/right, /turf/open/floor/iron/grimy, /area/station/hallway/primary/fore) +"xjD" = ( +/turf/closed/wall, +/area/station/service/abandoned_gambling_den) "xjI" = ( /obj/effect/turf_decal/stripes/white/line{ dir = 8 @@ -73846,6 +74244,7 @@ }, /obj/effect/decal/cleanable/blood/old, /obj/effect/turf_decal/tile/neutral/opposingcorners, +/obj/effect/landmark/blobstart, /turf/open/floor/iron/dark, /area/station/maintenance/port/greater) "xnC" = ( @@ -73939,7 +74338,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "xoM" = ( /obj/effect/turf_decal/tile/purple{ dir = 1 @@ -73973,15 +74372,13 @@ /area/station/security/office) "xpk" = ( /obj/effect/decal/cleanable/dirt, -/obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/effect/turf_decal/stripes/line{ - dir = 5 +/obj/structure/chair/stool/bar/directional/south, +/obj/effect/turf_decal/tile/yellow/opposingcorners{ + dir = 1 }, -/obj/structure/extinguisher_cabinet/directional/east, -/obj/effect/landmark/blobstart, -/obj/effect/mapping_helpers/broken_floor, -/turf/open/floor/plating, -/area/station/maintenance/port/greater) +/obj/effect/turf_decal/tile/red/opposingcorners, +/turf/open/floor/iron/showroomfloor, +/area/station/service/kitchen/abandoned) "xpl" = ( /obj/effect/turf_decal/bot, /obj/machinery/conveyor{ @@ -74264,13 +74661,14 @@ /obj/structure/window/reinforced/spawner/directional/north{ pixel_y = 1 }, -/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ - dir = 1 - }, /obj/item/clothing/gloves/latex, /obj/item/healthanalyzer, /obj/item/clothing/mask/surgical, /obj/item/clothing/suit/apron/surgical, +/obj/effect/turf_decal/tile/neutral/anticorner/contrasted{ + dir = 1 + }, +/obj/item/healthanalyzer, /turf/open/floor/iron/dark, /area/station/science/robotics/lab) "xvj" = ( @@ -74361,13 +74759,19 @@ }, /turf/open/floor/grass, /area/station/medical/pathology) +"xxi" = ( +/obj/effect/turf_decal/stripes/corner{ + dir = 8 + }, +/turf/closed/wall, +/area/station/maintenance/department/security/upper) "xxk" = ( /turf/closed/wall/r_wall, /area/station/command/heads_quarters/cmo) "xxn" = ( /obj/effect/decal/cleanable/blood/gibs/body, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "xxJ" = ( /obj/machinery/ai_slipper{ uses = 10 @@ -74430,6 +74834,7 @@ }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/mapping_helpers/burnt_floor, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/port/fore) "xzi" = ( @@ -74741,6 +75146,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/bot, /obj/effect/turf_decal/stripes/line, +/obj/effect/spawner/random/trash/moisture_trap, /turf/open/floor/catwalk_floor/iron_dark, /area/station/maintenance/starboard) "xDm" = ( @@ -74889,14 +75295,9 @@ /turf/open/misc/asteroid/airless, /area/space/nearstation) "xGQ" = ( -/obj/effect/turf_decal/bot, -/obj/machinery/portable_atmospherics/canister/air, /obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/portables_connector/visible/layer4{ - dir = 1 - }, /turf/open/floor/iron/dark, -/area/station/maintenance/port/greater) +/area/station/service/kitchen/abandoned) "xHa" = ( /obj/machinery/duct, /turf/open/floor/engine, @@ -74953,6 +75354,7 @@ dir = 8 }, /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, +/obj/structure/cable, /turf/open/floor/iron/dark, /area/station/hallway/secondary/entry) "xIq" = ( @@ -75080,11 +75482,11 @@ /turf/open/floor/iron/dark, /area/station/maintenance/starboard/fore) "xLd" = ( -/obj/structure/closet/crate/freezer/blood, /obj/effect/turf_decal/bot, /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 1 }, +/obj/structure/table, /turf/open/floor/iron/dark, /area/station/medical/surgery/aft) "xLk" = ( @@ -75145,7 +75547,7 @@ }, /obj/effect/decal/cleanable/blood, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard) +/area/station/maintenance/abandon_cafeteria) "xLX" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -75153,6 +75555,10 @@ /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, /area/station/maintenance/fore) +"xLY" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/dark/textured, +/area/station/maintenance/port/fore) "xMn" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -75232,7 +75638,7 @@ }, /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, -/area/station/maintenance/port/fore) +/area/station/maintenance/abandon_wrestle) "xOh" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -75778,6 +76184,9 @@ }, /turf/open/floor/iron, /area/station/service/janitor) +"xWB" = ( +/turf/closed/wall, +/area/station/maintenance/abandon_wrestle) "xWJ" = ( /obj/effect/turf_decal/tile/red{ dir = 1 @@ -76143,7 +76552,7 @@ /obj/effect/decal/remains/human, /obj/effect/turf_decal/tile/neutral/opposingcorners, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard/fore) +/area/station/service/library/abandoned) "yaZ" = ( /obj/effect/turf_decal/tile/yellow{ dir = 1 @@ -76352,7 +76761,7 @@ /mob/living/basic/ghost, /obj/effect/turf_decal/tile/neutral/opposingcorners, /turf/open/floor/iron/dark, -/area/station/maintenance/starboard/fore) +/area/station/service/library/abandoned) "yeK" = ( /obj/effect/turf_decal/bot, /obj/machinery/light/directional/south, @@ -76503,7 +76912,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, -/area/station/maintenance/fore) +/area/station/medical/abandoned) "yhr" = ( /obj/structure/table/wood/fancy/black, /obj/machinery/firealarm/directional/east, @@ -76830,13 +77239,15 @@ /turf/open/floor/wood/parquet, /area/station/security/prison/safe) "ylP" = ( -/obj/effect/spawner/random/structure/crate, /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/neutral/half/contrasted{ dir = 4 }, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/effect/spawner/random/trash/moisture_trap, +/obj/structure/cable, /turf/open/floor/iron/dark, -/area/station/maintenance/department/crew_quarters/bar) +/area/station/service/hydroponics/garden/abandoned) "ylT" = ( /obj/structure/table, /obj/effect/turf_decal/tile/neutral{ @@ -86007,13 +86418,13 @@ aaa aaB aaa aaa -aaa -aaa -aaa -aaa -aaa -aeu -aeu +wAE +hZR +hZR +wAE +wAE +wAE +wAE aeU aaa aaa @@ -86264,13 +86675,13 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aeU -aeu -aeu -aeu +hZR +uiT +uQl +jpV +rDs +cwA +wAE aeU aaa aaa @@ -86521,13 +86932,13 @@ aaa aaa aaa aaa -aaa -aaa -aeu -aeu -aeu -aeu -aeu +wAE +bSD +ljN +qrh +nvY +bPt +hZR aeu aeU aaa @@ -86778,13 +87189,13 @@ vjh vjh ycx vjh -vjh -acm -vku -aeu -aeu -aeu -aeu +wAE +dNl +fzY +iZQ +eKp +ixU +hZR aeu aeu aaa @@ -87035,13 +87446,13 @@ dVN qly ykK lqN -ycx -aaa -aeU -aeu -aeu -aeu -aeu +hZR +nhC +ljN +iZQ +ljN +bTu +wAE aeu vku aeo @@ -87292,13 +87703,13 @@ ufL bhQ oiV ssk -vjh -aaa -aUz -aeU -aeu -aeu -aeu +wAE +gCd +saj +ika +ddN +tEI +hZR aeu aaQ aaa @@ -87549,13 +87960,13 @@ xVH spr oFt gfc -vjh -aeU -aeU -vku -aeu -aeu -aeu +wAE +pTu +lJc +efg +lUE +hZR +wAE aeu qJs acK @@ -87806,13 +88217,13 @@ phh rrQ vjh sYs -vjh -aeU -aeu -aeu -aeu -wDI -aeu +wAE +ika +roS +hnK +dGi +hrq +wAE aeu aDT omw @@ -88063,13 +88474,13 @@ eso gsb lql xSp -vjh -ycx -vjh -vjh -ycx -vjh -vjh +wAE +ika +mOz +ljN +ngx +kRZ +wAE aeu aDU aaa @@ -88258,7 +88669,7 @@ ixB nJT sfY iqQ -snn +dJi wXa vmZ eXY @@ -88324,7 +88735,7 @@ fvr cjx aqt lMx -tuP +nvY xGQ wuI aeu @@ -88583,7 +88994,7 @@ vQY xpk pdE lGY -vjh +wAE aeu jTt aaa @@ -88836,11 +89247,11 @@ bMp lfl ycx vrN -ycx -vjh -vXC -vVC -ycx +wAE +wAE +wAE +wAE +hZR vjh vjh aaa @@ -89095,8 +89506,8 @@ vjh aHB pzc qBe -lRg -vOl +jhy +cYy jhy aHB vjh @@ -89285,7 +89696,7 @@ aeu hmh nLd wZi -snn +dJi dJi tdf vmZ @@ -89351,7 +89762,7 @@ tsf yhU gLH mtV -hBJ +mtV mtV mtV mtV @@ -89541,8 +89952,8 @@ aeu aeu ixB ixB -snn -snn +dJi +dJi tmj wXa prn @@ -89599,7 +90010,7 @@ aeU aeu vjh gLH -dBg +wKy hBJ hPx ivP @@ -89611,7 +90022,7 @@ mtV bRO fFe fUp -hBJ +mtV cYy vjh eNQ @@ -89861,7 +90272,7 @@ mtV mlm mlm mlm -hBJ +mtV fvh lXK tGg @@ -90054,7 +90465,7 @@ aeu aeu aeu aeu -rNx +gnh sjG tiv uVK @@ -90382,7 +90793,7 @@ hdq lzF lzF hjt -hBJ +mtV cYy vjh vjh @@ -90627,7 +91038,7 @@ ycx mZn vjh wrw -sVB +iOH tqb icG wTx @@ -90648,7 +91059,7 @@ mfl lOa pdY vjh -ycx +vjh mqI npr pQo @@ -90657,7 +91068,7 @@ npr pQo npr pqD -iza +pqD pqD qsy tKt @@ -90893,8 +91304,8 @@ ikO ctf ikO ikO -oeF -icG +cSJ +nai dTQ sVB bId @@ -91172,7 +91583,7 @@ bJv bJv bJv bJv -iza +pqD jsN tKt iMA @@ -91398,7 +91809,7 @@ vjh vjh vjh mFt -hBJ +mtV mtZ hdq rZW @@ -91418,7 +91829,7 @@ rNj uvV uvV vKf -ycx +vjh bJv bJv omO @@ -91905,7 +92316,7 @@ pST aeu pVz jYV -iGM +xLY iGM iYG kgY @@ -91924,7 +92335,7 @@ nJF rZW rZW vHr -hBJ +mtV pZe qsn otO @@ -91943,7 +92354,7 @@ omO bJv bJv bJv -iza +pqD tKt jzF iVR @@ -92434,7 +92845,7 @@ tlU bcY mtV mtV -hBJ +mtV mtV mtV mtV @@ -92684,13 +93095,13 @@ pVz pVz kFw hyq -esG +eWP rFL nrS nsl mxh mtV -dBg +wKP vjh wQT kyK @@ -92971,7 +93382,7 @@ bJv bJv bJv bJv -iza +pqD tKt heU pqD @@ -93180,10 +93591,10 @@ aeu aUz aeu aeu -pVz -xBI -pVz -eWP +gAU +lll +gAU +chk wEM vOT tOo @@ -93203,7 +93614,7 @@ sbZ bUo hse bXy -hBJ +mtV dBg qXJ nSy @@ -93437,11 +93848,11 @@ aeu aeu aeu aeu -pVz +gAU pbY tpY -eWP -eWP +chk +chk kGj imO eWP @@ -93694,11 +94105,11 @@ aeu aeu aeu aeu -xBI +lll tfY qzJ uiR -xBI +lll uHY dGD bsa @@ -93951,7 +94362,7 @@ aeu aeu aeu aeu -pVz +gAU ijz bkS pCu @@ -93982,7 +94393,7 @@ lWI lWI nJH fSH -dBg +wKP eNQ csa csa @@ -94207,12 +94618,12 @@ aeu aeu aeu aeu -pVz -xBI -pVz +gAU +lll +gAU kKE -pVz -pVz +gAU +gAU pyk frb pVz @@ -94464,7 +94875,7 @@ aeu aeu aeu aeu -pVz +gAU mWj rMJ cUT @@ -94520,7 +94931,7 @@ pkl rnc rnc rnc -pkl +rnc rnc uJT jjI @@ -94721,7 +95132,7 @@ aeu aeu aeu aeu -pVz +gAU mkI uHc eyl @@ -94978,7 +95389,7 @@ aeu aeu aeu aeu -xBI +lll eBQ tOq sjk @@ -95235,11 +95646,11 @@ aeu aeu aeu aeu -pVz -ijz +gAU +aMk nqX caL -pVz +gAU wdn pLO xtt @@ -95489,14 +95900,14 @@ exA aeu aeu aeu -pVz -xBI -pVz -pVz -xBI -xBI -pVz -pVz +xWB +muP +xWB +xWB +muP +fZb +xWB +xWB xBI pVz qKx @@ -95745,16 +96156,16 @@ aeU exA aeu aeu -pVz -xBI +xWB +muP fzp fmh iGo tya nPS brA -xBI -pVz +muP +xWB pVP ami xxk @@ -96002,7 +96413,7 @@ aeU exA aeu aeu -pVz +xWB uLS wjj jhv @@ -96011,7 +96422,7 @@ xOg hRg eRC ixi -pVz +xWB dYM eyj xxk @@ -96258,8 +96669,8 @@ aeU aeU exA aeu -xBI -pVz +muP +xWB mBW hNF jQh @@ -96268,7 +96679,7 @@ ebc gjD qku tmd -xBI +muP oRz pVz xxk @@ -96515,7 +96926,7 @@ aeU aeU exA aeu -xBI +muP hkr fMB vnC @@ -96782,7 +97193,7 @@ dGo dGo eRC tlJ -pVz +xWB mMP pVz bQB @@ -97286,8 +97697,8 @@ aaa aeU aeU wbG -pVz -xBI +xWB +muP ucP mFE jJJ @@ -97296,7 +97707,7 @@ mQk mQk xgV lCV -pVz +xWB iTZ pVz nbP @@ -97307,7 +97718,7 @@ eUN uOs pNh aVG -kpm +dKY bFX eWd iut @@ -97544,16 +97955,16 @@ aaa aeu wbG aeu -pVz -xBI +xWB +muP lON xbv ijL rdI fSE sSP -pVz -xBI +xWB +muP iSx pVz pVz @@ -97564,7 +97975,7 @@ dkh qGK wlL kpm -kpm +dKY iUC eWd mJR @@ -97802,14 +98213,14 @@ aaa vEC fYf hUW -pVz -pVz -xBI -xBI -pVz -pVz -xBI -pVz +xWB +xWB +muP +muP +xWB +xWB +muP +xWB lVe ocS ogg @@ -98580,8 +98991,8 @@ fYf ajM oaO bod -xBI -xBI +pVz +pVz pVz pVz pVz @@ -99139,9 +99550,9 @@ qNZ jwQ sbO qea -lAU -dcm -lAU +nYX +bxw +nYX nYX nYX nYX @@ -99355,7 +99766,7 @@ qlC vsX iWG gwu -nki +cXZ dkh jUU hgH @@ -99396,11 +99807,11 @@ vrb vrb vrb kDc -lAU -sKM +nYX +pnR sOq -czv -kQd +tTz +cfQ jhS nYX rKL @@ -99644,7 +100055,7 @@ uvA bKc lCz hCD -kcY +xDc kfn iRD bhC @@ -99653,7 +100064,7 @@ bCE pcX skH pFr -lAU +nYX upR pRB blu @@ -99910,11 +100321,11 @@ fkL xDc obQ taX -lAU +nYX gSZ wpv guv -eix +tDt xbP nYX cUk @@ -100167,7 +100578,7 @@ lXe xDc xDc xDc -lAU +nYX wgn tOY hUl @@ -100424,9 +100835,9 @@ uAA dLk uAA uwR -lAU -uyD -lAU +nYX +iYw +nYX cme iEU wHo @@ -100683,7 +101094,7 @@ apv hoK vUP iGs -lAU +nYX qsR qsR qsR @@ -101156,7 +101567,7 @@ efG bJM qlC efG -qlC +efG uZq pkE nEV @@ -101457,7 +101868,7 @@ apv apv apv sYQ -jQE +doA wYq doA soQ @@ -101953,9 +102364,9 @@ lbO lbO lbO lbO -jCm -cXT -jCm +oRN +vFF +oRN jCm wbo jCm @@ -102212,7 +102623,7 @@ aug lbO hmn ylP -cXT +vFF oUc qHV xHn @@ -102229,7 +102640,7 @@ jQE aXQ rIb tfn -vkh +doA iET gaC kml @@ -102466,7 +102877,7 @@ nXV lBa hMe him -lbO +drL dAU mkB bEe @@ -102486,7 +102897,7 @@ ulS sye fNe bDs -vkh +doA gDB eGu ych @@ -102498,10 +102909,10 @@ nDS taU yaA jhg -fuF +ykE cfL xUQ -nPT +fGe pDM rTi ddb @@ -102724,9 +103135,9 @@ lbO dcf bWI lbO -hlP -gDW -cXT +fWu +eVO +vFF auS nrJ cXT @@ -102743,7 +103154,7 @@ uTt tzI fNe rqW -vkh +doA doA ufh ych @@ -102955,8 +103366,8 @@ lAC jqV sLG qfu -qlC -qlC +efG +efG hTK ufc xGz @@ -102981,9 +103392,9 @@ lbO lbO lbO lbO -jCm -cXT -jCm +oRN +vFF +oRN fPN oRI cXT @@ -103215,9 +103626,9 @@ gGs tpr efG quG -qlC efG -qlC +efG +efG efG efG efG @@ -103258,17 +103669,17 @@ gDv hQF fNe tuF -qTK -qQg -koE -peT -oNo -ekM -juj -doj -ekM +uTj +tfv +xjy +lzP +tNX +doA +mna +dRs +doA aJK -tdv +kgt obH eeq fhw @@ -103515,18 +103926,18 @@ lUD tzI gWw fQC -kKP -qQg -bza -cTi -ipg -eiY -cTi -uqT -bBr -lRa -nsQ -wWm +xxi +tfv +fWC +qOV +eaI +vny +qOV +hhG +nRP +kiN +sMg +jTW gmG fgb deI @@ -103730,7 +104141,7 @@ hfl oiJ tPD tPD -vbi +tPD tPD tPD uAS @@ -103772,15 +104183,15 @@ lUD tzI fNe uok -vkh -ekM -tBT -drC -kbv -uXZ -pNV -eAa -ekM +doA +doA +jMC +uNA +niB +wYq +wBF +nGG +doA jIA jhg xXz @@ -104030,14 +104441,14 @@ tzI fNe wgX fNI -ekM -ekM -ekM -ekM -ekM -ekM -ekM -ekM +doA +doA +doA +doA +doA +doA +doA +doA ayY ojG wWm @@ -104241,7 +104652,7 @@ qlC fbm fbm efG -vbi +tPD rLy nIq qlk @@ -105013,7 +105424,7 @@ aDQ bjR aDQ uxN -itn +uxN jRQ wFL eBZ @@ -105273,7 +105684,7 @@ sac uxN yjd kut -itn +uxN uxN qNr beN @@ -105301,7 +105712,7 @@ hLu hLu hLu hLu -cgW +gyW hLu hLu cEr @@ -105838,7 +106249,7 @@ qYO uUk giA nfN -mjh +cfL xhH uUO jSC @@ -106798,12 +107209,12 @@ lac cmN lac lac -efG -qlC -efG -efG -qlC -efG +tDl +uVJ +tDl +tDl +uVJ +tDl ffY wnV pEL @@ -107314,7 +107725,7 @@ roc xjt rtx aIv -uDt +gVk tlb bSA kFG @@ -107552,7 +107963,7 @@ aeu aeu aeu aeu -ccz +aeu aeu aeu aaa @@ -108083,12 +108494,12 @@ tBk xjv hrU lac -qlC +uVJ iMG izL pIK tRO -lRk +tDl fvU iyF lRk @@ -108340,12 +108751,12 @@ xjt lac xjt xjt -efG -efG -qlC -efG -efG -fvU +tDl +tDl +uVJ +tDl +tDl +uVJ gwa wrR cnW @@ -108584,13 +108995,13 @@ aaa acm aaa aaa -lRk -lRk +xjD +xjD mzc mzc mzc -lRk -lRk +xjD +xjD aeu cIU cIX @@ -108602,13 +109013,13 @@ cIX cIX cIX cIX -fvU -lRk -lRk -fvU -fvU -lRk -lRk +pkZ +vUC +vUC +pkZ +pkZ +vUC +vUC weK gMp lRk @@ -108837,17 +109248,17 @@ aaa aaa acm aaa -lRk -lRk -lRk -lRk -lRk +xjD +xjD +xjD +xjD +xjD oQv qvx nkF lWi vFT -lRk +xjD aeu cIV cIX @@ -108859,13 +109270,13 @@ cIX cIX cIX cIX -lRk +vUC qPU kOb jBy sdm cES -fvU +pkZ fRw sWA lRk @@ -109094,7 +109505,7 @@ aaa aaa acm acm -lRk +xjD oRs qOW cOd @@ -109104,7 +109515,7 @@ izu wNG eGy kth -lRk +xjD aeu cIU cIX @@ -109116,13 +109527,13 @@ cIX cIX cIX cIX -lRk +vUC fvJ fOI vFU exP wlm -lRk +vUC wrR fvU lRk @@ -109361,7 +109772,7 @@ izu agx izu kXh -lRk +xjD aeu cIU cIX @@ -109373,13 +109784,13 @@ cIX cIX cIX cIX -fvU +pkZ plG yeH yaY iBv wxI -lRk +vUC wpf aVn lRk @@ -109618,7 +110029,7 @@ nMW cZB ggO wTT -lRk +xjD aeu cIV cIX @@ -109630,7 +110041,7 @@ cIX cIX cIX cIX -fvU +pkZ nUi iVF eUe @@ -109865,17 +110276,17 @@ aaa aaa aeo acm -lRk +xjD boC rci heM vjx iVA -qkY +upN qkY oZm bZt -lRk +xjD aeu cIU cIX @@ -109887,13 +110298,13 @@ cIX cIX cIX cIX -lRk +vUC jSw kNJ mOa qbc pjV -lRk +vUC hbT pjE aEU @@ -110122,17 +110533,17 @@ aaa aaa aeo aaa -lRk -lRk -lRk -lRk -lRk -lRk -lRk +xjD +xjD +xjD +xjD +xjD +xjD +xjD aLh -lRk -lRk -lRk +xjD +xjD +xjD aeu cIV cIX @@ -110144,13 +110555,13 @@ cIX cIX cIX cIX -fvU +pkZ swW lda pvH -lRk -fvU -lRk +vUC +pkZ +vUC fvU kzT lRk @@ -110381,13 +110792,13 @@ acm aaa aaa aeU -lRk +xjD lWU lWU lWU keg adV -lRk +xjD aeu aeu aeu @@ -110401,11 +110812,11 @@ cIX cIX cIX cIX -lRk -fvU -lRk +vUC +pkZ +vUC twR -fvU +pkZ fhH vpi lRk @@ -110644,7 +111055,7 @@ lWU lWU keg pQh -lRk +xjD aeu aeu aeu @@ -110901,12 +111312,12 @@ lWU lWU keg ntf -lRk -lRk -lRk -lRk -lRk -fvU +xjD +xjD +xjD +xjD +xjD +wPI oQg hib cIY @@ -111163,7 +111574,7 @@ tIW sXn dpr ikM -lRk +xjD fBX ajs cJk @@ -111415,12 +111826,12 @@ lWU lWU keg wsa -lRk +xjD oTm dIi dIi dIi -fvU +wPI vBv ake reJ @@ -111666,18 +112077,18 @@ acm acm aeU aUz -lRk +xjD lWU lWU lWU keg -adV -lRk +sPo +xjD uOp wDX -dIi +bOQ oTm -lRk +xjD ugA cJh otr @@ -111923,18 +112334,18 @@ aeU aeU aeU aeU -lRk -lRk -lRk -lRk -lRk -lRk -lRk -lRk -lRk -lRk +xjD +xjD +xjD +xjD +xjD +xjD +xjD +xjD +xjD +xjD pUc -lRk +xjD fvU jKj vIc @@ -113766,7 +114177,7 @@ vFY ofs mnl gkW -vVw +aND xDM xDM aND @@ -114585,7 +114996,7 @@ uSH uSH uSH aAU -oQk +gyZ xBz gDM qZX @@ -115347,7 +115758,7 @@ cvM rgv aqe kIQ -uAb +gDM keE lgb cuV @@ -115566,7 +115977,7 @@ vFY bhr rOJ vFY -vOX +rZV lDu lDu dJS @@ -115605,10 +116016,10 @@ eCf fgu djQ atc -gBp +ipO tXB hGX -mkk +fuB aeu bPP cko @@ -115857,15 +116268,15 @@ gCl iyM rDj jvK -rCi +cuV exV ozV fFs -rCi +cuV lxo dZR itC -rCi +cuV aeu fIn cko @@ -116080,7 +116491,7 @@ iwB wAC nvq nMB -vOX +rZV uhx oWm rZV @@ -118876,16 +119287,16 @@ qmV rZV rZV rZV -rZV -rZV -rZV -rZV -vOX -rZV -vOX +uHJ +uHJ +uHJ +uHJ +sTH +uHJ +sTH hDe hfi -vOX +sTH dJo mua adp @@ -119133,16 +119544,16 @@ sZt rZV aeu aeu -rZV +uHJ wQS irW eIu oVh oiz -fkP +uku bLw gzb -lDu +pkx lDu lWm xWS @@ -119390,7 +119801,7 @@ aTW kHe egQ aeu -rZV +uHJ nwO ryj seS @@ -119647,7 +120058,7 @@ aaa aaa qPV egQ -sJS +mMX lWd pjP vjb @@ -119877,23 +120288,23 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +ohI +acK +acK +acK +acK +acK +acK +ohI +acK +ohI +acK +acK +acK +acK +acK +acK +ohI aaa aaa aaa @@ -119904,7 +120315,7 @@ aaa aaa aeU vSL -sJS +mMX wcj knB waJ @@ -120134,23 +120545,23 @@ aaa aaa aaa aaa -aaa -aaa -ohI -acK -acK -acK -acK -acK -ohI -acK -ohI -acK -acK -acK acK +cBp +cBp +cBp +cBp +cBp +cBp +cBp +cBp +cBp +cBp +cBp +cBp +cBp +cBp +cBp acK -ohI aaa aaa aaa @@ -120161,7 +120572,7 @@ aaa aaa aUz vSL -sJS +mMX oio diu mSn @@ -120169,7 +120580,7 @@ bpU iDs tvC fKy -rZV +uHJ uVQ uVQ mbl @@ -120391,8 +120802,6 @@ aaa aaa aaa aaa -aaa -aaa acK cBp cBp @@ -120407,6 +120816,8 @@ cBp cBp cBp cBp +cBp +cBp acK aaa aeo @@ -120418,7 +120829,7 @@ aaa aeU aeU vSL -sJS +mMX bGB jKo xLT @@ -120426,7 +120837,7 @@ sdF rXX fIW dju -rZV +uHJ aeu waT hjb @@ -120648,8 +121059,6 @@ aaa aaa aaa aaa -aaa -aaa acK cBp cBp @@ -120664,6 +121073,8 @@ cBp cBp cBp cBp +cBp +cBp acK aaa acK @@ -120675,7 +121086,7 @@ oxT oxT dsi vSL -sJS +mMX bpU wST uUc @@ -120683,7 +121094,7 @@ gqZ oxW xfN hnS -rZV +uHJ aeu waT eKO @@ -120905,8 +121316,6 @@ aaa aaa aaa aaa -aaa -aaa acK cBp cBp @@ -120921,6 +121330,8 @@ cBp cBp cBp cBp +cBp +cBp acK acK acK @@ -120932,7 +121343,7 @@ mcE oxT oxT egQ -rZV +uHJ qts cnb mOc @@ -120940,7 +121351,7 @@ fEP bPO txp gSa -rZV +uHJ aeu aDS uFL @@ -121162,8 +121573,6 @@ aeU aaa aaa aaa -aaa -aaa acK cBp cBp @@ -121178,6 +121587,8 @@ cBp cBp cBp cBp +cBp +cBp acK acK mcE @@ -121189,15 +121600,15 @@ mcE mcE oxT moH -rZV -sJS -sJS -rZV -rZV -rZV -sJS -sJS -rZV +uHJ +mMX +mMX +uHJ +uHJ +uHJ +mMX +mMX +uHJ aeU aDS uFL @@ -121419,8 +121830,6 @@ aeU aaa aaa aaa -aaa -aaa acK cBp cBp @@ -121435,6 +121844,8 @@ cBp cBp cBp cBp +cBp +cBp acK mcE mcE @@ -121676,8 +122087,6 @@ aeU aeU aaa aaa -aaa -aaa ohI cBp cBp @@ -121692,6 +122101,8 @@ cBp cBp cBp cBp +cBp +cBp ohI bsf dLM @@ -121933,8 +122344,6 @@ aeu aeU aaa aaa -aaa -aaa acK cBp cBp @@ -121949,9 +122358,11 @@ cBp cBp cBp cBp +cBp +cBp acK bsf -wxG +xbW nCZ tiL izr @@ -122190,8 +122601,6 @@ aUz aeU aaa aaa -aaa -aaa ohI cBp cBp @@ -122206,6 +122615,8 @@ cBp cBp cBp cBp +cBp +cBp ohI bsf xzw @@ -122447,8 +122858,6 @@ aeU aeU aaa aaa -aaa -aaa acK cBp cBp @@ -122463,6 +122872,8 @@ cBp cBp cBp cBp +cBp +cBp acK mcE mcE @@ -122704,8 +123115,6 @@ aeU aeU aaa aaa -aaa -aaa acK cBp cBp @@ -122720,6 +123129,8 @@ cBp cBp cBp cBp +cBp +cBp acK acK mcE @@ -122961,8 +123372,6 @@ aeU aeU aaa aaa -aaa -aaa acK cBp cBp @@ -122977,6 +123386,8 @@ cBp cBp cBp cBp +cBp +cBp acK acK acK @@ -123218,8 +123629,6 @@ aap aaa aaa aaa -aaa -aaa acK cBp cBp @@ -123234,6 +123643,8 @@ cBp cBp cBp cBp +cBp +cBp acK aaa acK @@ -123475,8 +123886,6 @@ aeu aeu aaa aaa -aaa -aaa acK cBp cBp @@ -123491,6 +123900,8 @@ cBp cBp cBp cBp +cBp +cBp acK aaa aaa @@ -123732,23 +124143,23 @@ aeu aeu aeu aaa -aaa -aaa -ohI -acK -acK -acK -acK -acK -ohI -acK -ohI -acK -acK -acK acK +cBp +cBp +cBp +cBp +cBp +cBp +cBp +cBp +cBp +cBp +cBp +cBp +cBp +cBp +cBp acK -ohI aaa aaa aaa @@ -123989,23 +124400,23 @@ aeu aeu aeu aeu -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +ohI +acK +acK +acK +acK +acK +acK +ohI +acK +ohI +acK +acK +acK +acK +acK +acK +ohI aaa aaa aaa diff --git a/_maps/map_files/MetaStation/MetaStation.dmm b/_maps/map_files/MetaStation/MetaStation.dmm index 38cecb0c9aeb..891f8144a4a6 100644 --- a/_maps/map_files/MetaStation/MetaStation.dmm +++ b/_maps/map_files/MetaStation/MetaStation.dmm @@ -166,18 +166,6 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/disposal) -"adG" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/duct, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "adS" = ( /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, @@ -465,16 +453,6 @@ /obj/effect/turf_decal/tile/blue/fourcorners, /turf/open/floor/iron/white, /area/station/medical/surgery/theatre) -"aiz" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/structure/cable, -/turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen/coldroom) "aiW" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -678,6 +656,19 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"amJ" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "amV" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, @@ -869,6 +860,11 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, /area/station/cargo/quartermaster) +"aqd" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/sign/poster/contraband/random/directional/west, +/turf/open/floor/wood, +/area/station/service/theater) "aqh" = ( /obj/machinery/door/airlock/maintenance{ name = "Research Maintenance" @@ -896,6 +892,14 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/cargo/miningoffice) +"aqz" = ( +/obj/machinery/newscaster/directional/north, +/obj/machinery/computer/slot_machine{ + pixel_y = 2 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/commons/lounge) "aqG" = ( /obj/effect/spawner/structure/window, /turf/open/floor/plating, @@ -961,6 +965,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/grimy, /area/station/tcommsat/computer) +"arW" = ( +/obj/machinery/light/floor, +/turf/open/floor/wood, +/area/station/commons/lounge) "ase" = ( /obj/machinery/airalarm/directional/west, /obj/effect/mapping_helpers/airalarm/tlv_no_checks, @@ -1061,14 +1069,6 @@ }, /turf/open/floor/iron, /area/station/security/office) -"atU" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/machinery/light/small/directional/north, -/turf/open/floor/wood, -/area/station/service/bar/backroom) "atV" = ( /obj/machinery/recharger{ pixel_y = 4 @@ -1120,12 +1120,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood, /area/station/commons/dorms) -"auy" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/window/spawner/directional/west, -/turf/open/floor/carpet, -/area/station/service/theater) "auH" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 1 @@ -1337,6 +1331,15 @@ "ayg" = ( /turf/open/floor/engine/o2, /area/station/engineering/atmos) +"ayh" = ( +/obj/machinery/light/small/directional/west, +/obj/item/clothing/mask/animal/horsehead, +/obj/structure/table/wood, +/obj/machinery/airalarm/directional/south, +/obj/item/clothing/mask/fakemoustache, +/obj/structure/sign/poster/contraband/random/directional/west, +/turf/open/floor/wood, +/area/station/service/theater) "ayr" = ( /turf/open/floor/iron, /area/station/engineering/break_room) @@ -1415,19 +1418,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"aAb" = ( -/obj/machinery/camera/directional/east{ - c_tag = "Theater - Stage" - }, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, -/obj/item/radio/intercom/directional/east, -/obj/structure/table/wood, -/obj/item/clothing/glasses/monocle, -/obj/structure/sign/poster/random/directional/south, -/turf/open/floor/wood/large, -/area/station/service/theater) "aAg" = ( /obj/effect/turf_decal/tile/neutral, /obj/structure/disposalpipe/segment, @@ -1713,6 +1703,19 @@ /obj/effect/turf_decal/loading_area, /turf/open/floor/iron, /area/station/maintenance/port/aft) +"aFo" = ( +/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "aFv" = ( /obj/machinery/newscaster/directional/north, /obj/structure/table/wood, @@ -1760,6 +1763,22 @@ /obj/item/radio/intercom/directional/west, /turf/open/floor/iron/white, /area/station/medical/surgery/theatre) +"aGA" = ( +/obj/structure/table, +/obj/machinery/microwave, +/obj/effect/turf_decal/trimline/brown/warning{ + dir = 5 + }, +/obj/machinery/light/directional/west, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/firealarm/directional/west, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "aGD" = ( /obj/structure/closet/crate/coffin, /obj/machinery/door/window/left/directional/east{ @@ -1768,6 +1787,12 @@ }, /turf/open/floor/plating, /area/station/service/chapel/funeral) +"aGF" = ( +/obj/machinery/vending/coffee, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/machinery/computer/security/telescreen/entertainment/directional/north, +/turf/open/floor/iron, +/area/station/commons/lounge) "aGH" = ( /obj/machinery/door/firedoor, /obj/structure/cable, @@ -1937,6 +1962,13 @@ }, /turf/open/floor/iron, /area/station/construction/storage_wing) +"aIF" = ( +/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on/coldroom, +/obj/effect/turf_decal/delivery, +/obj/machinery/light_switch/directional/north, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "aIQ" = ( /obj/structure/cable, /obj/machinery/station_map/engineering/directional/west, @@ -2106,11 +2138,6 @@ "aKP" = ( /turf/closed/wall/r_wall, /area/station/engineering/supermatter/room) -"aLk" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/turf/open/floor/iron, -/area/station/service/bar) "aLr" = ( /obj/machinery/atmospherics/components/unary/vent_pump/siphon/monitored/nitrous_output{ dir = 1 @@ -2260,19 +2287,6 @@ /obj/effect/turf_decal/tile/blue, /turf/open/floor/iron/dark, /area/station/command/bridge) -"aNN" = ( -/obj/machinery/airalarm/directional/south, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/neutral/opposingcorners{ - dir = 1 - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "aNO" = ( /obj/structure/window/reinforced/spawner/directional/east, /obj/item/food/grown/harebell, @@ -2439,13 +2453,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/cargo/sorting) -"aPV" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/turf/open/floor/wood/large, -/area/station/commons/lounge) "aPX" = ( /obj/machinery/atmospherics/components/unary/thermomachine/freezer/on{ dir = 1 @@ -2721,6 +2728,16 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/ai_monitored/command/storage/eva) +"aUZ" = ( +/obj/machinery/chem_dispenser/drinks/beer{ + dir = 1 + }, +/obj/structure/table, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/machinery/light/small/directional/south, +/obj/machinery/digital_clock/directional/south, +/turf/open/floor/iron, +/area/station/service/bar) "aVd" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -2878,25 +2895,21 @@ /obj/effect/turf_decal/trimline/brown/filled/line, /turf/open/floor/iron, /area/station/construction/storage_wing) -"aXt" = ( -/obj/structure/table/wood, -/obj/item/toy/mecha/honk{ - pixel_y = 12 - }, -/obj/item/toy/dummy, -/obj/item/lipstick/purple{ - pixel_x = -2; - pixel_y = -2 +"aXy" = ( +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/navigate_destination/kitchen, +/obj/effect/mapping_helpers/airlock/access/any/service/bar, +/obj/effect/mapping_helpers/airlock/access/any/service/kitchen, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/effect/turf_decal/siding/wood{ + dir = 1 }, -/obj/item/lipstick/jade{ - pixel_x = 2; - pixel_y = 2 +/obj/machinery/door/airlock/public{ + name = "Kitchen" }, -/obj/item/lipstick/black, -/obj/structure/sign/poster/contraband/random/directional/west, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/wood, -/area/station/service/theater) +/turf/open/floor/iron, +/area/station/service/kitchen) "aXE" = ( /obj/machinery/door/airlock/maintenance{ name = "Service Maintenance" @@ -3055,6 +3068,12 @@ }, /turf/open/floor/iron, /area/station/security/warden) +"aZs" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/closed/wall, +/area/station/service/theater) "aZv" = ( /obj/machinery/door/poddoor/shutters/preopen{ dir = 1; @@ -3098,6 +3117,12 @@ /obj/machinery/duct, /turf/open/floor/stone, /area/station/science/xenobiology) +"bai" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood/large, +/area/station/commons/lounge) "bau" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -3624,6 +3649,25 @@ /obj/machinery/clonepod, /turf/open/floor/iron/dark, /area/station/science/genetics) +"bkv" = ( +/obj/structure/table, +/obj/machinery/microwave, +/obj/effect/turf_decal/trimline/brown/warning{ + dir = 6 + }, +/obj/machinery/camera/directional/west{ + c_tag = "Kitchen" + }, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/power/apc/auto_name/directional/west, +/obj/structure/cable, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "bkF" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -3940,6 +3984,15 @@ dir = 4 }, /area/station/service/chapel) +"bpt" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/table/wood/poker, +/obj/effect/spawner/random/entertainment/gambling, +/obj/effect/spawner/random/entertainment/gambling, +/obj/effect/spawner/random/entertainment/gambling, +/turf/open/floor/wood, +/area/station/commons/lounge) "bpu" = ( /obj/machinery/airalarm/directional/north, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, @@ -3978,15 +4031,13 @@ }, /turf/open/floor/iron, /area/station/security/brig) -"bpY" = ( -/obj/machinery/light/small/directional/west, -/obj/item/clothing/mask/animal/horsehead, -/obj/structure/table/wood, -/obj/machinery/airalarm/directional/south, -/obj/item/clothing/mask/fakemoustache, -/obj/structure/sign/poster/contraband/random/directional/west, -/turf/open/floor/wood, -/area/station/service/theater) +"bpT" = ( +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood/large, +/area/station/commons/lounge) "bqk" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/atmos/glass{ @@ -4185,13 +4236,6 @@ /obj/effect/turf_decal/tile/yellow/anticorner/contrasted, /turf/open/floor/iron/white, /area/station/medical/chemistry) -"btI" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/landmark/start/hangover, -/obj/structure/chair/stool/directional/north, -/turf/open/floor/wood, -/area/station/commons/lounge) "btK" = ( /obj/structure/window/reinforced/spawner/directional/north{ pixel_y = 1 @@ -4224,6 +4268,18 @@ /obj/effect/mapping_helpers/mail_sorting/supply/cargo_bay, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"buf" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/structure/window/spawner/directional/west, +/obj/structure/sign/poster/random/directional/north, +/obj/effect/spawner/random/structure/musician/piano/random_piano, +/turf/open/floor/wood/large, +/area/station/service/theater) "bug" = ( /obj/structure/lattice, /obj/item/tank/internals/oxygen/empty, @@ -4455,15 +4511,6 @@ "bzH" = ( /turf/closed/wall, /area/station/cargo/sorting) -"bzI" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/structure/sign/poster/random/directional/east, -/obj/structure/table/wood, -/obj/item/food/pie/cream, -/turf/open/floor/wood/large, -/area/station/service/theater) "bzO" = ( /obj/structure/table, /obj/machinery/plantgenes, @@ -4600,12 +4647,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/science/robotics/lab) -"bCk" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 4 - }, -/turf/open/floor/wood, -/area/station/commons/lounge) "bCo" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, @@ -4647,6 +4688,17 @@ "bDq" = ( /turf/closed/wall/r_wall, /area/station/engineering/transit_tube) +"bDC" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood/large, +/area/station/service/theater) "bDK" = ( /obj/effect/turf_decal/tile/brown/half/contrasted{ dir = 8 @@ -4666,11 +4718,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/fore) -"bDR" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/carpet, -/area/station/service/theater) "bDW" = ( /turf/closed/wall, /area/station/maintenance/department/engine) @@ -4704,14 +4751,18 @@ /obj/machinery/power/apc/auto_name/directional/south, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"bEU" = ( -/obj/machinery/airalarm/directional/north, -/obj/machinery/computer/slot_machine{ - pixel_y = 2 +"bFe" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/duct, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 }, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/turf/open/floor/iron, -/area/station/commons/lounge) +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "bFr" = ( /obj/item/paper_bin{ pixel_x = -2; @@ -4741,15 +4792,6 @@ "bGC" = ( /turf/closed/wall, /area/station/hallway/primary/central) -"bGJ" = ( -/obj/structure/chair/stool/bar/directional/south, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/turf/open/floor/iron, -/area/station/commons/lounge) "bGL" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -5017,11 +5059,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/service) -"bMp" = ( -/obj/machinery/vending/wardrobe/bar_wardrobe, -/obj/item/radio/intercom/directional/east, -/turf/open/floor/wood, -/area/station/service/bar/backroom) "bMt" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/table/reinforced, @@ -5073,16 +5110,6 @@ /obj/machinery/light_switch/directional/north, /turf/open/floor/wood, /area/station/service/bar/backroom) -"bNh" = ( -/obj/effect/decal/cleanable/dirt, -/obj/item/book/manual/wiki/barman_recipes{ - pixel_x = -4; - pixel_y = 7 - }, -/obj/structure/table, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/turf/open/floor/iron, -/area/station/service/bar) "bNk" = ( /obj/machinery/photocopier, /obj/machinery/camera/directional/east{ @@ -5378,16 +5405,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/port) -"bTl" = ( -/obj/structure/chair/stool/bar/directional/south, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/effect/turf_decal/siding/wood{ - dir = 5 - }, -/turf/open/floor/iron, -/area/station/commons/lounge) "bTq" = ( /obj/machinery/camera/motion/directional/south{ c_tag = "AI Upload Chamber - Port"; @@ -5408,6 +5425,13 @@ /obj/machinery/light/directional/east, /turf/open/floor/iron/white, /area/station/command/heads_quarters/rd) +"bTV" = ( +/obj/structure/cable, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood/large, +/area/station/commons/lounge) "bUc" = ( /obj/machinery/shower/directional/west, /obj/effect/landmark/start/assistant, @@ -5679,6 +5703,13 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/engine, /area/station/science/xenobiology) +"cbr" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/turf/open/floor/carpet, +/area/station/service/theater) "cbz" = ( /turf/closed/wall, /area/station/cargo/storage) @@ -5875,24 +5906,6 @@ /obj/machinery/air_sensor/ordnance_burn_chamber, /turf/open/floor/engine/vacuum, /area/station/science/ordnance/burnchamber) -"cgR" = ( -/obj/machinery/newscaster/directional/south, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/light/directional/south, -/obj/structure/table, -/obj/item/reagent_containers/cup/beaker/large, -/obj/item/reagent_containers/cup/beaker{ - pixel_x = 8; - pixel_y = 2 - }, -/obj/item/reagent_containers/cup/rag{ - pixel_x = -4 - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "cha" = ( /obj/machinery/door/airlock/research/glass{ name = "Ordnance Lab" @@ -5969,6 +5982,12 @@ /obj/effect/turf_decal/tile/neutral/anticorner/contrasted, /turf/open/floor/iron, /area/station/security/courtroom) +"ciK" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "ciQ" = ( /obj/machinery/computer/order_console/bitrunning{ dir = 1 @@ -6201,6 +6220,15 @@ /obj/structure/closet/crate/engineering/electrical, /turf/open/floor/catwalk_floor/iron_dark, /area/station/maintenance/solars/port/aft) +"cnJ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/sign/poster/random/directional/east, +/obj/structure/table/wood, +/obj/item/food/pie/cream, +/turf/open/floor/wood/large, +/area/station/service/theater) "cnK" = ( /turf/closed/wall, /area/station/engineering/main) @@ -6409,13 +6437,6 @@ /obj/structure/cable, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, /area/station/medical/coldroom) -"cqI" = ( -/obj/effect/landmark/start/bartender, -/obj/effect/decal/cleanable/dirt, -/obj/structure/cable, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/turf/open/floor/iron, -/area/station/service/bar) "cqQ" = ( /obj/machinery/corral_corner{ mapping_id = "6" @@ -6478,12 +6499,6 @@ /obj/structure/sign/poster/official/random/directional/north, /turf/open/floor/iron/cafeteria, /area/station/commons/dorms) -"crT" = ( -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/wood/large, -/area/station/service/theater) "csb" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 8 @@ -6608,6 +6623,17 @@ "cur" = ( /turf/open/floor/plating, /area/station/maintenance/fore) +"cuu" = ( +/obj/structure/table/wood, +/obj/item/staff/broom, +/obj/item/wrench, +/obj/machinery/airalarm/directional/east, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 8 + }, +/obj/structure/sign/poster/random/directional/north, +/turf/open/floor/wood/large, +/area/station/service/theater) "cuw" = ( /obj/effect/landmark/generic_maintenance_landmark, /obj/machinery/shower/directional/south, @@ -6823,12 +6849,6 @@ /obj/structure/sign/poster/random/directional/west, /turf/open/floor/iron, /area/station/hallway/primary/central) -"cwW" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/turf/open/floor/wood/large, -/area/station/commons/lounge) "cwX" = ( /obj/machinery/door/window/brigdoor{ name = "Command Desk"; @@ -7038,19 +7058,6 @@ }, /turf/open/floor/iron/white, /area/station/science/lobby) -"cAx" = ( -/obj/structure/closet/secure_closet/personal/cabinet, -/obj/item/clothing/under/rank/centcom/officer, -/obj/item/clothing/under/rank/centcom/officer_skirt, -/obj/item/clothing/under/rank/centcom/intern, -/obj/item/clothing/under/rank/centcom/commander, -/obj/item/clothing/under/rank/centcom/centcom_skirt, -/obj/item/clothing/head/hats/centcom_cap, -/obj/item/clothing/head/hats/centhat, -/obj/item/clothing/glasses/sunglasses, -/obj/item/clothing/suit/armor/centcom_formal, -/turf/open/floor/carpet/green, -/area/station/command/heads_quarters/nt_rep) "cAB" = ( /obj/machinery/light/directional/west, /obj/structure/extinguisher_cabinet/directional/west, @@ -7110,12 +7117,6 @@ }, /turf/open/floor/iron, /area/station/security/courtroom) -"cBW" = ( -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "cCs" = ( /obj/effect/decal/cleanable/dirt, /obj/item/storage/belt/utility/full, @@ -7123,6 +7124,12 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/science/robotics/lab) +"cCu" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/chair/stool/directional/north, +/turf/open/floor/wood, +/area/station/commons/lounge) "cCN" = ( /obj/item/stack/sheet/iron/fifty, /obj/item/stack/sheet/iron/fifty, @@ -7204,6 +7211,23 @@ }, /turf/open/floor/iron, /area/station/engineering/main) +"cDX" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) +"cEr" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/machinery/light_switch/directional/west, +/turf/open/floor/wood, +/area/station/service/theater) "cEv" = ( /obj/item/food/grown/wheat, /obj/item/food/grown/watermelon, @@ -7226,26 +7250,6 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) -"cFU" = ( -/obj/machinery/reagentgrinder{ - pixel_x = 6; - pixel_y = 6 - }, -/obj/item/reagent_containers/cup/glass/shaker{ - pixel_x = -6 - }, -/obj/machinery/camera/directional/south{ - c_tag = "Bar - Counter" - }, -/obj/structure/table, -/obj/machinery/requests_console/directional/south{ - department = "Bar"; - name = "Bar Requests Console" - }, -/obj/effect/mapping_helpers/requests_console/supplies, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/turf/open/floor/iron, -/area/station/service/bar) "cFW" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -7434,6 +7438,15 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/carpet, /area/station/commons/dorms) +"cKQ" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Bar" + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/structure/disposalpipe/segment, +/turf/open/floor/iron, +/area/station/commons/lounge) "cLc" = ( /obj/structure/chair/office, /obj/effect/landmark/start/quartermaster, @@ -7480,6 +7493,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood, /area/station/service/library) +"cLD" = ( +/obj/structure/table/wood, +/turf/open/floor/wood, +/area/station/commons/lounge) "cLN" = ( /obj/effect/turf_decal/stripes/line, /obj/machinery/firealarm/directional/west, @@ -7551,16 +7568,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"cNA" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Bar" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/turf/open/floor/iron, -/area/station/commons/lounge) "cNS" = ( /turf/open/floor/iron, /area/station/maintenance/port/aft) @@ -7714,12 +7721,6 @@ /obj/effect/landmark/start/gary, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) -"cRC" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/turf/closed/wall, -/area/station/service/theater) "cRM" = ( /obj/machinery/growing/soil, /obj/machinery/camera/directional/west{ @@ -8097,6 +8098,26 @@ }, /turf/open/floor/iron, /area/station/medical/medbay/lobby) +"cYI" = ( +/obj/machinery/reagentgrinder{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/reagent_containers/cup/glass/shaker{ + pixel_x = -6 + }, +/obj/machinery/camera/directional/south{ + c_tag = "Bar - Counter" + }, +/obj/structure/table, +/obj/machinery/requests_console/directional/south{ + department = "Bar"; + name = "Bar Requests Console" + }, +/obj/effect/mapping_helpers/requests_console/supplies, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar) "cYL" = ( /obj/machinery/door/poddoor/shutters{ id = "aux_base_shutters"; @@ -8208,6 +8229,14 @@ }, /turf/open/floor/engine, /area/station/engineering/atmospherics_engine) +"daw" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar) "daz" = ( /obj/effect/turf_decal/tile/neutral/fourcorners, /obj/machinery/atm/directional/north, @@ -8233,19 +8262,6 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/security/armory) -"daS" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/structure/cable, -/turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen/coldroom) "daT" = ( /obj/machinery/atmospherics/pipe/smart/simple/yellow/visible, /turf/open/floor/iron, @@ -8307,11 +8323,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/science/genetics) -"dbH" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/sign/poster/contraband/random/directional/west, -/turf/open/floor/wood, -/area/station/service/theater) "dbX" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -8332,13 +8343,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security/bitden) -"dce" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/light_switch/directional/south, -/turf/open/floor/wood/large, -/area/station/service/theater) "dcF" = ( /obj/effect/landmark/event_spawn, /obj/effect/decal/cleanable/dirt, @@ -8441,19 +8445,6 @@ /obj/machinery/atmospherics/pipe/smart/simple/supply/hidden, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"ded" = ( -/obj/effect/turf_decal/bot, -/obj/machinery/light_switch/directional/south, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/deepfryer, -/obj/effect/turf_decal/trimline/brown/warning{ - dir = 5 - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "deg" = ( /obj/machinery/holopad, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -8541,10 +8532,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/nuke_storage) -"dfp" = ( -/obj/effect/turf_decal/tile/bar/opposingcorners, -/turf/open/floor/iron, -/area/station/service/bar) "dfB" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron, @@ -8596,6 +8583,14 @@ "dgD" = ( /turf/closed/wall, /area/station/security/range) +"dgE" = ( +/obj/structure/chair/stool/bar/directional/south, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/commons/lounge) "dgS" = ( /obj/machinery/rnd/production/techfab/department/security, /turf/open/floor/iron/dark, @@ -8662,6 +8657,21 @@ }, /turf/open/floor/iron, /area/station/construction/storage_wing) +"dhE" = ( +/obj/effect/turf_decal/delivery, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/corporate{ + id_tag = "BSdoor"; + name = "Blueshield's Office" + }, +/obj/effect/landmark/navigate_destination, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, +/turf/open/floor/iron, +/area/station/command/heads_quarters/blueshield) "dhF" = ( /obj/machinery/smartfridge/organ, /turf/open/floor/iron/dark, @@ -8728,6 +8738,14 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/central) +"diU" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "diX" = ( /obj/machinery/portable_atmospherics/canister/carbon_dioxide, /turf/open/floor/iron/dark, @@ -9333,6 +9351,14 @@ "duI" = ( /turf/closed/wall, /area/station/command/bridge) +"dvh" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/obj/structure/cable, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar) "dvk" = ( /obj/structure/table, /obj/machinery/light/directional/west, @@ -9702,13 +9728,6 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"dDq" = ( -/obj/effect/landmark/start/bartender, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/turf/open/floor/iron, -/area/station/service/bar) "dDx" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -9937,24 +9956,17 @@ }, /turf/open/floor/iron/white/smooth_large, /area/station/medical/pharmacy) -"dHV" = ( -/obj/effect/turf_decal/delivery, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/corporate{ - id_tag = "BSdoor"; - name = "Blueshield's Office" - }, -/obj/effect/landmark/navigate_destination, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/admin/general, -/turf/open/floor/iron, -/area/station/command/heads_quarters/blueshield) "dIy" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/maintenance/central) +"dIz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/disposalpipe/segment, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar) "dIA" = ( /obj/structure/rack, /obj/item/wrench/medical, @@ -9999,6 +10011,13 @@ /obj/machinery/door/window/right/directional/west, /turf/open/floor/wood, /area/station/command/heads_quarters/captain/private) +"dJj" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/light/floor, +/turf/open/floor/wood/large, +/area/station/commons/lounge) "dJK" = ( /turf/open/floor/iron/stairs/right{ dir = 1 @@ -10179,16 +10198,6 @@ /obj/machinery/bluespace_vendor/directional/south, /turf/open/floor/iron, /area/station/commons/locker) -"dLY" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/structure/table/wood, -/obj/effect/spawner/random/trash/soap, -/obj/structure/sign/poster/random/directional/east, -/obj/machinery/light/small/directional/east, -/turf/open/floor/wood/large, -/area/station/service/theater) "dMb" = ( /obj/structure/table, /obj/item/analyzer, @@ -10263,14 +10272,6 @@ }, /turf/open/floor/iron/dark, /area/station/medical/storage) -"dMX" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/duct, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "dNw" = ( /obj/effect/spawner/random/structure/crate, /turf/open/floor/plating, @@ -10632,10 +10633,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/commons/locker) -"dTD" = ( -/obj/structure/chair/stool/directional/south, -/turf/open/floor/wood, -/area/station/commons/lounge) "dTK" = ( /obj/machinery/holopad/secure{ pixel_x = 9; @@ -10820,10 +10817,6 @@ /obj/effect/spawner/random/trash/garbage, /turf/open/floor/plating, /area/station/security/prison/safe) -"dXE" = ( -/obj/effect/landmark/start/hangover, -/turf/open/floor/carpet, -/area/station/service/theater) "dXH" = ( /obj/structure/chair, /obj/effect/landmark/start/assistant, @@ -10933,6 +10926,18 @@ /obj/effect/landmark/start/scientist, /turf/open/floor/iron/white, /area/station/science/explab) +"dZj" = ( +/obj/structure/table, +/obj/item/scissors{ + pixel_x = -5; + pixel_y = 3 + }, +/obj/item/razor{ + pixel_x = 6; + pixel_y = 2 + }, +/turf/open/floor/plating, +/area/station/maintenance/port) "dZm" = ( /turf/closed/wall, /area/station/commons/storage/tools) @@ -11053,6 +11058,12 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/hallway/primary/central) +"eaL" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/station/service/theater) "eaN" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -11083,13 +11094,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/port) -"ebq" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/turf/open/floor/wood/large, -/area/station/commons/lounge) "ebr" = ( /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=0-SecurityDesk"; @@ -11328,15 +11332,6 @@ /obj/machinery/atmospherics/pipe/smart/simple/purple/visible, /turf/open/floor/iron/dark/corner, /area/station/engineering/atmos/pumproom) -"efg" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Bar" - }, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/structure/disposalpipe/segment, -/turf/open/floor/iron, -/area/station/commons/lounge) "eft" = ( /obj/structure/extinguisher_cabinet/directional/north, /obj/structure/closet/secure_closet/security/sec, @@ -11355,6 +11350,13 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/aft/greater) +"efV" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/start/hangover, +/obj/structure/chair/stool/directional/north, +/turf/open/floor/wood, +/area/station/commons/lounge) "efY" = ( /obj/structure/chair/office{ dir = 1 @@ -11448,6 +11450,13 @@ /obj/machinery/atmospherics/components/unary/bluespace_sender, /turf/open/floor/iron, /area/station/engineering/atmos) +"egW" = ( +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "ehg" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 6 @@ -11752,6 +11761,14 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) +"elE" = ( +/obj/machinery/smartfridge/drinks, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/bar) "elJ" = ( /turf/closed/wall/r_wall, /area/station/science/server) @@ -12003,14 +12020,6 @@ /obj/effect/landmark/start/assistant, /turf/open/floor/iron, /area/station/commons/fitness/recreation) -"epO" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/obj/structure/cable, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/turf/open/floor/iron, -/area/station/service/bar) "epW" = ( /obj/effect/turf_decal/siding/wood{ dir = 6 @@ -12153,16 +12162,6 @@ "esk" = ( /turf/closed/wall/r_wall, /area/station/engineering/storage/tcomms) -"esv" = ( -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "esH" = ( /obj/structure/disposalpipe/segment{ dir = 6 @@ -12235,6 +12234,19 @@ /obj/structure/light_construct/small/directional/east, /turf/open/floor/wood, /area/station/maintenance/port/aft) +"etz" = ( +/obj/structure/window/spawner/directional/west, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/computer/security/telescreen/entertainment/directional/south, +/obj/structure/table/wood, +/obj/effect/spawner/random/entertainment/musical_instrument, +/obj/item/clothing/glasses/regular/hipster{ + name = "Hipster Glasses" + }, +/turf/open/floor/wood/large, +/area/station/service/theater) "etA" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -12525,6 +12537,16 @@ }, /turf/open/floor/iron/dark/textured, /area/station/medical/pathology) +"eyP" = ( +/obj/effect/landmark/start/clown, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/carpet, +/area/station/service/theater) +"eyT" = ( +/obj/structure/cable, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar) "ezb" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/structure/filingcabinet{ @@ -12573,13 +12595,6 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/service/bar) -"eAk" = ( -/obj/structure/cable, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/turf/open/floor/wood/large, -/area/station/commons/lounge) "eAL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, @@ -12660,13 +12675,6 @@ /obj/effect/mapping_helpers/airlock/access/any/command/captain, /turf/open/floor/iron/white, /area/station/command/heads_quarters/captain/private) -"eCQ" = ( -/obj/structure/chair/wood/wings{ - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/carpet, -/area/station/service/theater) "eCS" = ( /obj/machinery/door/airlock/external{ name = "Space Shack" @@ -12769,10 +12777,6 @@ /obj/effect/mapping_helpers/airlock/access/any/command/maintenance, /turf/open/floor/plating, /area/station/maintenance/central) -"eEN" = ( -/obj/item/radio/intercom/directional/east, -/turf/open/floor/wood, -/area/station/service/theater) "eEV" = ( /obj/effect/turf_decal/box/white{ color = "#52B4E9" @@ -12850,6 +12854,14 @@ /obj/effect/spawner/random/vending/colavend, /turf/open/floor/iron, /area/station/hallway/primary/port) +"eHL" = ( +/obj/effect/turf_decal/bot, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/machinery/disposal/bin, +/turf/open/floor/wood, +/area/station/commons/lounge) "eHR" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -12860,20 +12872,28 @@ /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"eIw" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/landmark/start/hangover, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/turf/open/floor/wood/large, -/area/station/commons/lounge) "eIy" = ( /obj/structure/cable, /obj/machinery/photocopier, /turf/open/floor/carpet, /area/station/command/heads_quarters/hop) +"eIA" = ( +/obj/item/radio/intercom/directional/south, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/structure/table, +/obj/machinery/reagentgrinder{ + pixel_x = 6; + pixel_y = 6 + }, +/obj/item/reagent_containers/condiment/enzyme{ + pixel_x = -6; + pixel_y = 5 + }, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "eIO" = ( /turf/closed/wall, /area/station/maintenance/department/medical/central) @@ -13528,6 +13548,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/commons/locker) +"eVV" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/mirror/directional/west, +/turf/open/floor/wood, +/area/station/service/theater) "eVX" = ( /obj/machinery/firealarm/directional/west, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -13574,11 +13599,6 @@ }, /turf/open/floor/engine, /area/station/engineering/atmospherics_engine) -"eWG" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/mirror/directional/west, -/turf/open/floor/wood, -/area/station/service/theater) "eWO" = ( /obj/effect/turf_decal/trimline/red/filled/corner{ dir = 1 @@ -13833,6 +13853,14 @@ dir = 1 }, /area/station/science/lobby) +"fan" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/chair/wood/wings{ + dir = 1 + }, +/turf/open/floor/carpet, +/area/station/service/theater) "fao" = ( /obj/structure/flora/bush/flowers_yw/style_random, /obj/structure/flora/bush/sparsegrass/style_random, @@ -13992,18 +14020,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark/corner, /area/station/engineering/atmos) -"feQ" = ( -/obj/structure/table/wood, -/obj/item/lipstick{ - pixel_y = 5 - }, -/obj/effect/spawner/random/entertainment/musical_instrument, -/obj/structure/sign/poster/random/directional/east, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/turf/open/floor/wood/large, -/area/station/service/theater) "feV" = ( /obj/structure/table/reinforced, /obj/item/clothing/gloves/latex, @@ -14052,6 +14068,23 @@ /obj/effect/landmark/start/security_assistant, /turf/open/floor/iron, /area/station/security/brig) +"ffs" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 1; + id = "kitchen_counter"; + name = "Kitchen Counter Shutters" + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/structure/table/reinforced, +/obj/structure/displaycase/forsale/kitchen{ + pixel_y = 8 + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/kitchen) "ffv" = ( /obj/structure/table, /obj/item/plate, @@ -14093,12 +14126,6 @@ }, /turf/open/floor/iron, /area/station/security/brig) -"fge" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/table/wood/poker, -/turf/open/floor/wood, -/area/station/commons/lounge) "fgl" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -14360,6 +14387,15 @@ /obj/machinery/power/port_gen/pacman/pre_loaded, /turf/open/floor/plating, /area/station/maintenance/aft/greater) +"fjf" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Bar" + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/commons/lounge) "fjn" = ( /obj/machinery/door/airlock/maintenance, /obj/structure/cable, @@ -14369,6 +14405,12 @@ /obj/effect/mapping_helpers/airlock/access/any/service/maintenance, /turf/open/floor/plating, /area/station/maintenance/port) +"fjq" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/light/small/directional/west, +/turf/open/floor/wood, +/area/station/service/theater) "fjD" = ( /turf/closed/wall, /area/station/commons/toilet/auxiliary) @@ -14377,12 +14419,6 @@ /obj/machinery/power/apc/auto_name/directional/north, /turf/open/floor/iron, /area/station/cargo/sorting) -"fjY" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/chair/stool/directional/north, -/turf/open/floor/wood, -/area/station/commons/lounge) "fkb" = ( /obj/effect/turf_decal/tile/yellow{ dir = 4 @@ -14418,6 +14454,16 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) +"fks" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar) "fkC" = ( /obj/structure/table, /obj/item/paper_bin{ @@ -14709,6 +14755,11 @@ }, /turf/open/floor/iron/white/smooth_large, /area/station/medical/storage) +"foU" = ( +/obj/structure/window/spawner/directional/west, +/obj/effect/landmark/start/hangover, +/turf/open/floor/carpet, +/area/station/service/theater) "fpi" = ( /obj/effect/turf_decal/stripes{ dir = 1 @@ -14780,6 +14831,14 @@ /obj/item/storage/secure/briefcase, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/ce) +"fqM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/east, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar) "fqN" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -14965,6 +15024,15 @@ /obj/effect/landmark/start/gary, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"fvd" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/start/cook, +/obj/machinery/duct, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "fvB" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -15000,6 +15068,12 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron/dark, /area/station/science/ordnance/testlab) +"fwt" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/chair/stool/directional/east, +/turf/open/floor/wood, +/area/station/commons/lounge) "fwz" = ( /obj/machinery/portable_atmospherics/canister/nitrogen, /turf/open/floor/iron/dark, @@ -15388,6 +15462,14 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/command) +"fFc" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, +/obj/structure/disposalpipe/segment{ + dir = 10 + }, +/obj/machinery/light/small/directional/north, +/turf/open/floor/wood, +/area/station/service/bar/backroom) "fFi" = ( /obj/machinery/computer/crew{ dir = 4 @@ -15996,10 +16078,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, /area/station/maintenance/port/aft) -"fQT" = ( -/obj/effect/landmark/start/mime, -/turf/open/floor/carpet, -/area/station/service/theater) "fQW" = ( /obj/machinery/door/airlock/mining/glass{ name = "Mining Dock" @@ -16112,6 +16190,15 @@ }, /turf/open/floor/iron, /area/station/service/hydroponics) +"fSN" = ( +/obj/effect/spawner/random/structure/closet_maintenance, +/obj/effect/spawner/random/maintenance/three, +/obj/item/clothing/mask/cigarette/pipe{ + pixel_x = 0; + pixel_y = 16 + }, +/turf/open/floor/plating, +/area/station/maintenance/port) "fTm" = ( /obj/machinery/door/airlock/security/glass{ name = "Permabrig Visitation" @@ -16137,6 +16224,14 @@ }, /turf/open/floor/iron/dark, /area/station/ai_monitored/aisat/exterior) +"fTy" = ( +/obj/structure/cable, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/light/floor, +/turf/open/floor/wood/large, +/area/station/commons/lounge) "fTE" = ( /obj/machinery/duct, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -16213,18 +16308,20 @@ /obj/effect/turf_decal/tile/brown/half/contrasted, /turf/open/floor/iron, /area/station/cargo/sorting) -"fVr" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 +"fVy" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 1; + id = "kitchen_counter"; + name = "Kitchen Counter Shutters" }, -/obj/machinery/firealarm/directional/south, -/obj/structure/table/wood, -/obj/item/stack/sheet/cloth/ten, -/obj/item/toy/crayon/spraycan, -/obj/item/stack/rods/ten, -/obj/machinery/light/small/directional/south, -/turf/open/floor/wood/large, -/area/station/service/theater) +/obj/machinery/door/firedoor, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/turf/open/floor/iron, +/area/station/service/kitchen) "fVA" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 4 @@ -16292,6 +16389,19 @@ "fWA" = ( /turf/closed/wall/r_wall, /area/station/maintenance/starboard/greater) +"fWC" = ( +/obj/machinery/button/door/directional/east{ + id = "kitchen_counter"; + name = "Kitchen Counter Shutters Control"; + req_access = list("kitchen") + }, +/obj/structure/table, +/obj/machinery/processor{ + pixel_y = 12 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "fWE" = ( /obj/structure/table/wood/fancy/green, /obj/item/storage/secure/safe/directional/north, @@ -16594,27 +16704,6 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) -"gbq" = ( -/obj/machinery/vending/wardrobe/chef_wardrobe, -/obj/effect/turf_decal/trimline/brown/warning{ - dir = 6 - }, -/obj/effect/turf_decal/bot, -/obj/machinery/light_switch/directional/south{ - pixel_x = -6 - }, -/obj/machinery/button/door/directional/south{ - id = "kitchen_service"; - name = "Service Shutter Control"; - pixel_x = 6; - req_access = list("kitchen") - }, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "gbG" = ( /obj/effect/spawner/random/structure/closet_maintenance, /obj/item/storage/box/lights/mixed, @@ -16677,11 +16766,6 @@ }, /turf/open/floor/grass, /area/station/science/research) -"gcW" = ( -/obj/structure/window/spawner/directional/west, -/obj/machinery/light/floor, -/turf/open/floor/carpet, -/area/station/service/theater) "gdb" = ( /turf/closed/wall/r_wall, /area/station/security/range) @@ -16888,16 +16972,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"ghq" = ( -/obj/effect/landmark/event_spawn, -/obj/machinery/holopad, -/turf/open/floor/carpet, -/area/station/service/theater) -"ghw" = ( -/obj/effect/landmark/start/clown, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/carpet, -/area/station/service/theater) "ghK" = ( /obj/structure/rack, /obj/item/tank/internals/oxygen, @@ -17011,16 +17085,6 @@ /obj/machinery/vending/wardrobe/jani_wardrobe, /turf/open/floor/iron, /area/station/service/janitor) -"gjH" = ( -/obj/structure/cable, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 1 - }, -/turf/open/floor/wood/large, -/area/station/commons/lounge) "gjN" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ dir = 4 @@ -17125,14 +17189,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) -"glJ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/turf/open/floor/carpet, -/area/station/service/theater) "glW" = ( /obj/structure/showcase/machinery/microwave{ dir = 1; @@ -17298,6 +17354,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/catwalk_floor/iron_dark, /area/station/maintenance/solars/port/aft) +"gnR" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood/large, +/area/station/service/theater) "gnS" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -17449,6 +17514,12 @@ }, /turf/open/floor/plating, /area/station/science/genetics) +"gqp" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/chair/stool/directional/west, +/turf/open/floor/wood, +/area/station/commons/lounge) "gqr" = ( /obj/machinery/conveyor{ dir = 1; @@ -17756,15 +17827,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/commons/locker) -"gwc" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/public/glass{ - name = "Bar" - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/turf/open/floor/iron, -/area/station/commons/lounge) "gwd" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 1 @@ -17817,6 +17879,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/engineering/atmos) +"gxf" = ( +/obj/structure/table/wood/poker, +/obj/effect/spawner/random/entertainment/gambling, +/turf/open/floor/wood, +/area/station/commons/lounge) "gxn" = ( /obj/structure/nestbox, /turf/open/floor/sandy_dirt, @@ -18311,6 +18378,13 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance/storage) +"gHx" = ( +/obj/structure/chair/office{ + dir = 1 + }, +/obj/effect/landmark/start/nanotrasen_representative, +/turf/open/floor/carpet/green, +/area/station/command/heads_quarters/nt_rep) "gHE" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -18555,6 +18629,11 @@ /obj/effect/landmark/start/scientist, /turf/open/floor/iron/white/smooth_large, /area/station/science/explab) +"gMb" = ( +/obj/effect/landmark/start/hangover, +/obj/structure/chair/stool/directional/south, +/turf/open/floor/wood, +/area/station/commons/lounge) "gMc" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/neutral, @@ -18585,6 +18664,12 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"gMz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/window/spawner/directional/west, +/turf/open/floor/carpet, +/area/station/service/theater) "gMA" = ( /obj/structure/window/reinforced/spawner/directional/north{ pixel_y = 1 @@ -18909,12 +18994,6 @@ /obj/machinery/station_map/engineering/directional/west, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"gTc" = ( -/obj/structure/table, -/obj/structure/extinguisher_cabinet/directional/east, -/obj/effect/turf_decal/tile/bar, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "gTh" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -19052,13 +19131,6 @@ /obj/structure/sign/warning/electric_shock/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/fore) -"gUM" = ( -/obj/machinery/atmospherics/components/unary/thermomachine/freezer/on/coldroom, -/obj/effect/turf_decal/delivery, -/obj/machinery/light_switch/directional/north, -/obj/structure/window/reinforced/spawner/directional/south, -/turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen/coldroom) "gUP" = ( /obj/structure/chair{ dir = 1 @@ -19084,12 +19156,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) -"gVa" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/chair/stool/directional/east, -/turf/open/floor/wood, -/area/station/commons/lounge) "gVj" = ( /obj/effect/turf_decal/tile/blue, /obj/effect/turf_decal/tile/yellow{ @@ -19136,17 +19202,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/brig) -"gWh" = ( -/obj/structure/table, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) -"gWl" = ( -/obj/effect/landmark/event_spawn, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/turf/open/floor/iron, -/area/station/service/bar) "gWn" = ( /obj/effect/spawner/structure/window/reinforced/plasma, /turf/open/floor/plating, @@ -19203,33 +19258,10 @@ /obj/item/restraints/handcuffs, /turf/open/floor/carpet, /area/station/security/detectives_office) -"gXj" = ( -/obj/machinery/newscaster/directional/east, -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/turf/open/floor/wood, -/area/station/service/theater) "gXl" = ( /obj/structure/flora/rock/pile/jungle/style_random, /turf/open/floor/grass, /area/station/medical/pathology) -"gXo" = ( -/obj/structure/extinguisher_cabinet/directional/south, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/trimline/brown/warning{ - dir = 9 - }, -/obj/structure/table, -/obj/item/storage/bag/tray, -/obj/item/kitchen/rollingpin, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "gXp" = ( /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating/airless, @@ -19621,6 +19653,32 @@ /obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, /turf/closed/wall, /area/station/engineering/atmos/pumproom) +"hdw" = ( +/obj/structure/table/wood, +/obj/item/paper_bin/carbon{ + pixel_x = 7; + pixel_y = 2 + }, +/obj/item/pen/fountain{ + pixel_x = 8; + pixel_y = 2 + }, +/obj/item/stamp{ + pixel_x = -1; + pixel_y = 17 + }, +/obj/item/stamp/denied{ + pixel_x = -9; + pixel_y = 12 + }, +/obj/item/phone{ + pixel_x = -5; + pixel_y = -2 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/carpet/green, +/area/station/command/heads_quarters/nt_rep) "hdx" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -19657,6 +19715,12 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"hdY" = ( +/obj/structure/table/reinforced, +/obj/effect/spawner/random/entertainment/lighter, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar) "hdZ" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -19857,11 +19921,6 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/engineering/storage/tech) -"hhN" = ( -/obj/machinery/vending/cigarette, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/turf/open/floor/iron, -/area/station/commons/lounge) "hio" = ( /obj/effect/turf_decal/tile/bar, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -19903,6 +19962,16 @@ }, /turf/open/floor/iron/white, /area/station/medical/surgery/theatre) +"hiG" = ( +/obj/machinery/power/apc/auto_name/directional/north, +/obj/machinery/camera/directional/north{ + c_tag = "Bar - Starboard" + }, +/obj/structure/cable, +/obj/effect/spawner/random/entertainment/arcade, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/commons/lounge) "hiM" = ( /obj/machinery/food_cart, /obj/machinery/atmospherics/pipe/heat_exchanging/junction{ @@ -20247,6 +20316,11 @@ "hmM" = ( /turf/open/floor/sandy_dirt, /area/station/service/hydroponics) +"hmR" = ( +/obj/structure/table, +/obj/structure/cable, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "hne" = ( /obj/machinery/door/window/brigdoor{ name = "Justice Chamber"; @@ -20412,6 +20486,10 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/central) +"hpo" = ( +/obj/structure/table, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "hps" = ( /obj/machinery/status_display/evac/directional/north, /obj/machinery/camera/directional/north{ @@ -20436,6 +20514,16 @@ }, /turf/open/floor/iron, /area/station/science/robotics/mechbay) +"hqg" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment{ + dir = 5 + }, +/obj/structure/cable, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "hqj" = ( /turf/closed/wall/r_wall, /area/station/science/ordnance/burnchamber) @@ -20478,39 +20566,10 @@ /obj/effect/turf_decal/tile/neutral, /turf/open/floor/iron, /area/station/commons/fitness/recreation) -"hqW" = ( -/obj/item/radio/intercom/directional/south, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/structure/table, -/obj/machinery/reagentgrinder{ - pixel_x = 6; - pixel_y = 6 - }, -/obj/item/reagent_containers/condiment/enzyme{ - pixel_x = -6; - pixel_y = 5 - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "hrh" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple/layer2, /turf/open/floor/iron/dark/airless, /area/station/science/ordnance/freezerchamber) -"hri" = ( -/obj/structure/table/reinforced, -/obj/structure/displaycase/forsale/kitchen{ - pixel_y = 8 - }, -/obj/machinery/computer/security/telescreen/entertainment/directional/west, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/service/bar) "hrG" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -20523,15 +20582,6 @@ /obj/structure/cable, /turf/open/floor/carpet/green, /area/station/command/heads_quarters/nt_rep) -"hrM" = ( -/obj/machinery/vending/boozeomat, -/obj/structure/sign/picture_frame/portrait/bar{ - pixel_y = -28 - }, -/obj/item/radio/intercom/directional/west, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/turf/open/floor/iron, -/area/station/service/bar) "hsp" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -20540,11 +20590,6 @@ /obj/structure/fans/tiny, /turf/open/floor/plating, /area/station/maintenance/solars/port/fore) -"hsE" = ( -/obj/effect/landmark/start/hangover, -/obj/structure/chair/stool/directional/south, -/turf/open/floor/wood, -/area/station/commons/lounge) "hsF" = ( /obj/machinery/door/airlock{ id_tag = "AuxToilet3"; @@ -20558,6 +20603,23 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/carpet, /area/station/service/chapel) +"hsW" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/window/left/directional/north{ + name = "Kitchen Window"; + req_access = list("kitchen") + }, +/obj/machinery/door/firedoor, +/obj/item/paper, +/obj/effect/turf_decal/delivery, +/obj/machinery/door/poddoor/shutters/preopen{ + id = "kitchen_service"; + name = "Service Shutter" + }, +/obj/item/pen, +/obj/structure/window/reinforced/spawner/directional/west, +/turf/open/floor/iron, +/area/station/hallway/secondary/service) "hsZ" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/wood, @@ -20638,6 +20700,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/engineering/atmos/storage/gas) +"htQ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/table/wood/poker, +/turf/open/floor/wood, +/area/station/commons/lounge) "htS" = ( /obj/structure/fluff/iced_abductor, /turf/open/misc/asteroid/basalt/airless, @@ -20660,6 +20728,20 @@ dir = 1 }, /area/station/engineering/atmos) +"hua" = ( +/obj/machinery/vending/dinnerware, +/obj/effect/turf_decal/trimline/brown/warning{ + dir = 5 + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "huj" = ( /obj/effect/landmark/event_spawn, /turf/open/floor/iron/dark, @@ -20998,11 +21080,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/port) -"hyX" = ( -/obj/structure/cable, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/turf/open/floor/iron, -/area/station/service/bar) "hyZ" = ( /obj/machinery/flasher/directional/east{ id = "AI"; @@ -21060,12 +21137,6 @@ /obj/structure/cable, /turf/open/floor/iron/white, /area/station/science/cytology) -"hAc" = ( -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/tile/bar, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "hAk" = ( /obj/structure/cable, /obj/effect/landmark/start/hangover, @@ -21715,12 +21786,6 @@ /obj/effect/landmark/start/depsec/science, /turf/open/floor/iron, /area/station/security/checkpoint/science) -"hNC" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/chair/stool/directional/east, -/turf/open/floor/wood, -/area/station/commons/lounge) "hND" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -21862,6 +21927,15 @@ }, /turf/open/floor/iron, /area/station/security/brig) +"hQN" = ( +/obj/effect/landmark/navigate_destination/bar, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/item/reagent_containers/cup/rag, +/obj/structure/table, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar) "hQT" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -21925,6 +21999,15 @@ /obj/effect/landmark/start/cargo_technician, /turf/open/floor/iron, /area/station/cargo/sorting) +"hRF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/start/hangover, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood/large, +/area/station/commons/lounge) "hRQ" = ( /obj/machinery/disposal/bin{ pixel_x = -2; @@ -22151,10 +22234,6 @@ }, /turf/open/floor/wood, /area/station/maintenance/port/aft) -"hWo" = ( -/obj/structure/chair/wood/wings, -/turf/open/floor/carpet, -/area/station/service/theater) "hWx" = ( /obj/structure/disposalpipe/segment{ dir = 9 @@ -22444,19 +22523,6 @@ "hZQ" = ( /turf/closed/wall/r_wall, /area/station/maintenance/port/fore) -"hZR" = ( -/obj/machinery/door/airlock/corporate{ - id_tag = "Repdoor"; - name = "Representative's Office" - }, -/obj/effect/mapping_helpers/airlock/access/all/admin/general, -/obj/effect/landmark/navigate_destination, -/obj/machinery/door/firedoor, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/wood, -/area/station/command/heads_quarters/nt_rep) "hZV" = ( /turf/closed/wall/r_wall, /area/station/medical/morgue) @@ -22571,22 +22637,6 @@ /obj/machinery/atmospherics/pipe/smart/simple/purple/visible, /turf/closed/wall, /area/station/engineering/atmos) -"ici" = ( -/obj/machinery/door/firedoor, -/obj/effect/decal/cleanable/dirt, -/obj/effect/mapping_helpers/airlock/access/all/service/bar, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/effect/turf_decal/tile/neutral/opposingcorners{ - dir = 1 - }, -/obj/machinery/door/airlock/glass{ - name = "Bar" - }, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/service/bar) "icj" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -22786,10 +22836,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/aft/greater) -"iga" = ( -/obj/item/kirbyplants/potty, -/turf/open/floor/wood/large, -/area/station/commons/lounge) "ign" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -22836,12 +22882,6 @@ }, /turf/open/floor/wood/parquet, /area/station/medical/psychology) -"igQ" = ( -/obj/structure/chair/office{ - dir = 1 - }, -/turf/open/floor/carpet/green, -/area/station/command/heads_quarters/nt_rep) "igS" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -22955,16 +22995,6 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/plating, /area/station/maintenance/fore) -"iin" = ( -/obj/machinery/power/apc/auto_name/directional/north, -/obj/machinery/camera/directional/north{ - c_tag = "Bar - Starboard" - }, -/obj/structure/cable, -/obj/effect/spawner/random/entertainment/arcade, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/turf/open/floor/iron, -/area/station/commons/lounge) "iio" = ( /obj/effect/turf_decal/tile/purple/fourcorners, /obj/machinery/door/airlock/command{ @@ -22998,6 +23028,12 @@ /obj/machinery/air_sensor/mix_tank, /turf/open/floor/engine/vacuum, /area/station/engineering/atmos) +"iiZ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/holopad, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar) "ije" = ( /obj/structure/cable, /obj/machinery/power/apc/auto_name/directional/east, @@ -23010,6 +23046,10 @@ /obj/effect/turf_decal/delivery, /turf/open/floor/iron, /area/station/service/hydroponics) +"ijC" = ( +/obj/item/radio/intercom/directional/east, +/turf/open/floor/wood, +/area/station/service/theater) "ijF" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/trash/mess, @@ -23258,18 +23298,6 @@ /obj/item/pai_card, /turf/open/floor/wood, /area/station/service/library) -"inI" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/structure/closet/secure_closet/freezer/fridge, -/obj/effect/turf_decal/trimline/brown/warning{ - dir = 9 - }, -/obj/effect/turf_decal/tile/bar, -/obj/machinery/light/directional/east, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "inL" = ( /obj/machinery/status_display/evac/directional/north, /obj/effect/turf_decal/stripes/line{ @@ -23768,21 +23796,10 @@ }, /turf/open/floor/iron/kitchen_coldroom/freezerfloor, /area/station/service/kitchen/coldroom) -"iuM" = ( -/obj/machinery/door/firedoor, -/obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/navigate_destination/kitchen, -/obj/effect/mapping_helpers/airlock/access/any/service/bar, -/obj/effect/mapping_helpers/airlock/access/any/service/kitchen, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/door/airlock/public{ - name = "Kitchen" - }, -/turf/open/floor/iron, -/area/station/service/kitchen) +"iuP" = ( +/obj/item/kirbyplants/potty, +/turf/open/floor/wood/large, +/area/station/commons/lounge) "iva" = ( /obj/machinery/door/airlock/maintenance{ name = "Security Maintenance" @@ -24249,11 +24266,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"iCY" = ( -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "iCZ" = ( /obj/machinery/corral_corner{ mapping_id = "6" @@ -24283,17 +24295,6 @@ /obj/effect/landmark/start/security_officer, /turf/open/floor/iron/dark, /area/station/security/range) -"iDC" = ( -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/effect/turf_decal/bot, -/turf/open/floor/wood, -/area/station/service/theater) "iDG" = ( /obj/structure/table, /obj/item/stock_parts/scanning_module{ @@ -24477,18 +24478,6 @@ /obj/item/modular_computer/laptop/preset/civilian, /turf/open/floor/wood, /area/station/service/cafeteria) -"iHh" = ( -/obj/structure/sign/poster/random/directional/east, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/structure/closet/secure_closet/freezer/kitchen, -/obj/effect/turf_decal/trimline/brown/warning{ - dir = 10 - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "iHn" = ( /obj/effect/turf_decal/trimline/yellow/filled/corner{ dir = 4 @@ -24544,22 +24533,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/ai_upload) -"iIT" = ( -/obj/structure/sign/poster/random/directional/east, -/obj/machinery/requests_console/directional/south{ - department = "Kitchen"; - name = "Kitchen Requests Console" - }, -/obj/effect/mapping_helpers/requests_console/supplies, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/neutral/opposingcorners{ - dir = 1 - }, -/obj/machinery/chem_master/condimaster{ - name = "CondiMaster Neo" - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "iIW" = ( /obj/effect/landmark/event_spawn, /obj/effect/turf_decal/tile/yellow, @@ -24684,23 +24657,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/service) -"iJM" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/item/reagent_containers/condiment/peppermill{ - pixel_x = 3 - }, -/obj/item/reagent_containers/condiment/saltshaker{ - pixel_x = -3 - }, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 1; - id = "kitchen_counter"; - name = "Kitchen Counter Shutters" - }, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/turf/open/floor/iron, -/area/station/service/kitchen) "iKh" = ( /obj/structure/window/reinforced/spawner/directional/west, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -24789,6 +24745,12 @@ }, /turf/open/floor/iron, /area/station/security/brig) +"iLL" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/wood, +/area/station/commons/lounge) "iLV" = ( /obj/structure/table/wood/fancy/orange, /obj/item/clothing/mask/cigarette/cigar{ @@ -25183,6 +25145,24 @@ }, /turf/open/floor/iron, /area/station/service/hydroponics) +"iQJ" = ( +/obj/machinery/newscaster/directional/south, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/light/directional/south, +/obj/structure/table, +/obj/item/reagent_containers/cup/beaker/large, +/obj/item/reagent_containers/cup/beaker{ + pixel_x = 8; + pixel_y = 2 + }, +/obj/item/reagent_containers/cup/rag{ + pixel_x = -4 + }, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "iQO" = ( /obj/machinery/firealarm/directional/west, /obj/structure/sink/directional/east, @@ -25524,6 +25504,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood, /area/station/commons/dorms) +"iVn" = ( +/obj/effect/landmark/start/bartender, +/obj/effect/decal/cleanable/dirt, +/obj/structure/cable, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar) "iVs" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment, @@ -25857,7 +25844,7 @@ dir = 1 }, /obj/effect/turf_decal/siding/wood, -/mob/living/basic/drone/snowflake/bardrone, +/obj/effect/mob_spawn/ghost_role/drone/bar, /turf/open/floor/wood/parquet, /area/station/command/heads_quarters/nt_rep) "jcd" = ( @@ -26355,12 +26342,6 @@ }, /turf/open/floor/iron/freezer, /area/station/hallway/primary/aft) -"jjF" = ( -/obj/structure/table/reinforced, -/obj/item/holosign_creator/robot_seat/bar, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/turf/open/floor/iron, -/area/station/service/bar) "jjL" = ( /obj/machinery/light/small/directional/east, /obj/machinery/computer/security/telescreen/entertainment/directional/east, @@ -26468,6 +26449,11 @@ "jlU" = ( /turf/closed/wall/r_wall, /area/station/science/xenobiology) +"jlV" = ( +/obj/machinery/vending/wardrobe/bar_wardrobe, +/obj/item/radio/intercom/directional/east, +/turf/open/floor/wood, +/area/station/service/bar/backroom) "jlY" = ( /obj/structure/urinal/directional/north, /obj/effect/landmark/start/hangover, @@ -26576,10 +26562,6 @@ }, /turf/open/floor/iron, /area/station/cargo/sorting) -"job" = ( -/obj/structure/closet/emcloset, -/turf/open/floor/plating, -/area/station/maintenance/starboard/greater) "joj" = ( /obj/item/radio/intercom/directional/east, /obj/effect/turf_decal/tile/yellow/half/contrasted{ @@ -26822,10 +26804,6 @@ }, /turf/open/floor/iron/white, /area/station/science/cytology) -"jsn" = ( -/obj/structure/table/wood, -/turf/open/floor/wood, -/area/station/commons/lounge) "jso" = ( /obj/structure/cable, /obj/machinery/door/firedoor, @@ -27364,6 +27342,14 @@ /obj/machinery/light/floor/has_bulb, /turf/open/floor/stone, /area/station/science/xenobiology) +"jzy" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "jzC" = ( /obj/machinery/door/window/right/directional/north{ dir = 8; @@ -28128,17 +28114,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron, /area/station/hallway/primary/aft) -"jNV" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/wood/large, -/area/station/service/theater) "jNX" = ( /obj/structure/window/reinforced/spawner/directional/north, /mob/living/carbon/human/species/monkey, @@ -28440,6 +28415,22 @@ /obj/machinery/light/small/directional/west, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"jTf" = ( +/obj/structure/extinguisher_cabinet/directional/south, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/trimline/brown/warning{ + dir = 9 + }, +/obj/structure/table, +/obj/item/storage/bag/tray, +/obj/item/kitchen/rollingpin, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "jTy" = ( /obj/structure/table/wood, /obj/item/book/granter/action/spell/smoke/lesser{ @@ -28461,6 +28452,10 @@ /obj/machinery/pdapainter/security, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/hos) +"jTM" = ( +/obj/effect/landmark/start/mime, +/turf/open/floor/carpet, +/area/station/service/theater) "jTN" = ( /obj/machinery/portable_atmospherics/pump, /obj/effect/turf_decal/siding/purple{ @@ -28963,12 +28958,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/command/bridge) -"kcs" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/turf/open/floor/wood, -/area/station/commons/lounge) "kcu" = ( /obj/structure/table, /obj/item/stack/sheet/iron{ @@ -29179,14 +29168,6 @@ /obj/machinery/light/floor/has_bulb, /turf/open/floor/engine, /area/station/science/xenobiology) -"khA" = ( -/obj/machinery/newscaster/directional/north, -/obj/machinery/computer/slot_machine{ - pixel_y = 2 - }, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/turf/open/floor/iron, -/area/station/commons/lounge) "khD" = ( /obj/machinery/door/airlock/maintenance{ name = "Crematorium Maintenance" @@ -29256,6 +29237,15 @@ }, /turf/open/floor/iron, /area/mine/maintenance/public) +"kjz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/decal/cleanable/dirt, +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar) "kjG" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 1 @@ -29519,6 +29509,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"knR" = ( +/obj/structure/table/wood, +/obj/item/lipstick{ + pixel_y = 5 + }, +/obj/effect/spawner/random/entertainment/musical_instrument, +/obj/structure/sign/poster/random/directional/east, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood/large, +/area/station/service/theater) "knT" = ( /obj/machinery/door/airlock/security/glass{ name = "Security Post - Cargo" @@ -29872,16 +29874,6 @@ /obj/structure/lattice, /turf/open/space/basic, /area/space/nearstation) -"ktP" = ( -/obj/structure/chair/stool/bar/directional/south, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/turf/open/floor/iron, -/area/station/commons/lounge) "ktW" = ( /obj/structure/showcase/cyborg/old{ dir = 8; @@ -29931,13 +29923,6 @@ /obj/machinery/vending/cigarette, /turf/open/floor/iron/dark, /area/station/hallway/primary/aft) -"kuA" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment, -/turf/open/floor/carpet, -/area/station/service/theater) "kuB" = ( /obj/structure/window/spawner/directional/east, /turf/open/floor/iron/dark, @@ -30373,6 +30358,10 @@ "kCZ" = ( /turf/closed/wall, /area/station/service/hydroponics) +"kDw" = ( +/obj/effect/landmark/start/hangover, +/turf/open/floor/carpet, +/area/station/service/theater) "kDG" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -30613,6 +30602,10 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating/airless, /area/station/science/ordnance/bomb) +"kJy" = ( +/obj/structure/chair/wood/wings, +/turf/open/floor/carpet, +/area/station/service/theater) "kJH" = ( /obj/structure/table/wood, /obj/machinery/light/directional/south, @@ -30842,26 +30835,11 @@ }, /turf/open/floor/iron, /area/station/cargo/sorting) -"kND" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/light/floor, -/turf/open/floor/wood/large, -/area/station/commons/lounge) "kNO" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/effect/turf_decal/trimline/yellow/filled/end, /turf/open/floor/iron/textured, /area/station/medical/medbay/central) -"kNT" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/chair/wood/wings{ - dir = 1 - }, -/turf/open/floor/carpet, -/area/station/service/theater) "kNV" = ( /obj/machinery/door/airlock/engineering{ name = "Port Quarter Solar Access" @@ -30990,6 +30968,12 @@ }, /turf/open/floor/iron, /area/station/security/checkpoint/engineering) +"kPx" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 + }, +/turf/open/floor/wood, +/area/station/commons/lounge) "kPA" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/trash/box, @@ -31710,6 +31694,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/security/prison/visit) +"lbw" = ( +/obj/structure/dresser, +/turf/open/floor/wood, +/area/station/service/theater) "lbH" = ( /mob/living/basic/chicken{ name = "Featherbottom"; @@ -31862,19 +31850,6 @@ /obj/structure/cable, /turf/open/floor/catwalk_floor/iron_dark, /area/station/maintenance/solars/starboard/fore) -"leJ" = ( -/obj/structure/window/spawner/directional/west, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/computer/security/telescreen/entertainment/directional/south, -/obj/structure/table/wood, -/obj/effect/spawner/random/entertainment/musical_instrument, -/obj/item/clothing/glasses/regular/hipster{ - name = "Hipster Glasses" - }, -/turf/open/floor/wood/large, -/area/station/service/theater) "lfc" = ( /obj/machinery/newscaster/directional/north, /obj/effect/turf_decal/stripes/corner{ @@ -32001,6 +31976,14 @@ /obj/item/storage/medkit/brute, /turf/open/floor/iron, /area/station/commons/fitness/recreation) +"lhz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/turf/open/floor/carpet, +/area/station/service/theater) "lhD" = ( /obj/structure/reagent_dispensers/watertank, /obj/effect/spawner/random/trash/janitor_supplies, @@ -32481,15 +32464,6 @@ /obj/item/stock_parts/cell/high, /turf/open/floor/iron/white, /area/station/medical/pharmacy) -"loh" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/decal/cleanable/dirt, -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/turf/open/floor/iron, -/area/station/service/bar) "lop" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -33254,9 +33228,6 @@ /obj/effect/mapping_helpers/airlock/access/all/supply/general, /turf/open/floor/iron, /area/station/cargo/sorting) -"lBA" = ( -/turf/open/floor/wood/large, -/area/station/commons/lounge) "lBN" = ( /obj/structure/table, /obj/effect/turf_decal/delivery, @@ -33515,17 +33486,6 @@ /obj/machinery/atmospherics/components/unary/thermomachine/freezer, /turf/open/floor/iron, /area/station/engineering/atmos/pumproom) -"lIB" = ( -/obj/structure/table/reinforced, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/spawner/random/entertainment/lighter, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/service/bar) "lIM" = ( /obj/structure/table, /obj/item/stack/package_wrap{ @@ -33620,6 +33580,16 @@ /obj/effect/landmark/carpspawn, /turf/open/space/basic, /area/space) +"lKz" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/structure/table/wood, +/obj/effect/spawner/random/trash/soap, +/obj/structure/sign/poster/random/directional/east, +/obj/machinery/light/small/directional/east, +/turf/open/floor/wood/large, +/area/station/service/theater) "lKA" = ( /obj/machinery/atmospherics/pipe/smart/simple/orange/hidden{ dir = 6 @@ -33745,6 +33715,11 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/iron/dark, /area/station/engineering/atmos) +"lMd" = ( +/obj/structure/sink/kitchen/directional/west, +/mob/living/basic/goat/pete, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "lMq" = ( /turf/open/misc/asteroid/basalt/airless, /area/space/nearstation) @@ -33872,6 +33847,22 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/science/genetics) +"lOw" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/light_switch/directional/south, +/turf/open/floor/wood/large, +/area/station/service/theater) +"lOB" = ( +/obj/structure/chair/stool/bar/directional/south, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/effect/landmark/start/assistant, +/turf/open/floor/iron, +/area/station/commons/lounge) "lOK" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -34124,10 +34115,29 @@ /obj/structure/sign/directions/ptl/directional/north, /turf/open/floor/iron/dark, /area/station/engineering/break_room) +"lSt" = ( +/obj/structure/closet/secure_closet/freezer/meat, +/obj/machinery/light/small/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/obj/machinery/camera/directional/west{ + c_tag = "Kitchen - Cold Room" + }, +/turf/open/floor/iron/kitchen_coldroom/freezerfloor, +/area/station/service/kitchen/coldroom) "lSw" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/science/cytology) +"lSx" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/wood/large, +/area/station/commons/lounge) "lSz" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -34139,6 +34149,11 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/command) +"lTh" = ( +/obj/structure/table, +/obj/effect/spawner/random/food_or_drink/cake_ingredients, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "lTj" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -34575,14 +34590,6 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) -"lYR" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/turf/open/floor/iron, -/area/station/service/bar) "lYY" = ( /obj/machinery/duct, /obj/machinery/corral_corner{ @@ -34655,6 +34662,10 @@ /obj/item/book/codex_gigas, /turf/open/floor/iron/vaporwave, /area/station/service/library) +"maF" = ( +/obj/structure/closet/secure_closet/nanotrasen_representative, +/turf/open/floor/carpet/green, +/area/station/command/heads_quarters/nt_rep) "maJ" = ( /obj/effect/landmark/event_spawn, /obj/structure/cable, @@ -34737,15 +34748,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/engineering/atmos) -"mcn" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/duct, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/machinery/griddle, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "mcP" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/public/glass{ @@ -34816,6 +34818,18 @@ /obj/machinery/status_display/evac/directional/south, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) +"mex" = ( +/obj/machinery/door/airlock{ + name = "Theater Stage" + }, +/obj/structure/cable, +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/starboard/greater) "mez" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -35089,6 +35103,12 @@ /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, /area/station/maintenance/port/aft) +"miQ" = ( +/obj/structure/table, +/obj/structure/extinguisher_cabinet/directional/east, +/obj/effect/turf_decal/tile/bar, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "miX" = ( /obj/effect/turf_decal/tile/blue/half/contrasted{ dir = 1 @@ -35309,36 +35329,6 @@ }, /turf/open/floor/iron, /area/station/commons/fitness/recreation) -"mnq" = ( -/obj/structure/table/wood, -/obj/item/paper_bin/carbon{ - pixel_x = 7; - pixel_y = 2 - }, -/obj/item/pen/fountain{ - pixel_x = 8; - pixel_y = 2 - }, -/obj/item/stamp/centcom{ - pixel_x = 9; - pixel_y = 17 - }, -/obj/item/stamp{ - pixel_x = -1; - pixel_y = 17 - }, -/obj/item/stamp/denied{ - pixel_x = -9; - pixel_y = 12 - }, -/obj/item/phone{ - pixel_x = -5; - pixel_y = -2 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/carpet/green, -/area/station/command/heads_quarters/nt_rep) "mnx" = ( /obj/structure/sign/directions/evac{ pixel_y = 1 @@ -35467,11 +35457,6 @@ }, /turf/open/floor/iron/dark, /area/station/security/lockers) -"mpx" = ( -/obj/structure/sink/kitchen/directional/west, -/mob/living/basic/goat/pete, -/turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen/coldroom) "mpC" = ( /obj/structure/rack, /obj/item/clothing/under/rank/prisoner, @@ -35599,6 +35584,24 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/fore) +"msq" = ( +/obj/machinery/light_switch/directional/west{ + pixel_y = 26 + }, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/structure/rack, +/obj/item/hand_labeler, +/obj/item/stack/package_wrap, +/obj/item/stack/package_wrap, +/obj/item/holosign_creator/robot_seat/restaurant, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "mst" = ( /obj/effect/landmark/start/gary, /turf/open/floor/plating, @@ -35611,14 +35614,6 @@ /obj/structure/reagent_dispensers/watertank, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) -"msT" = ( -/obj/structure/table, -/obj/item/food/dough, -/obj/item/knife{ - pixel_x = -13 - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "msW" = ( /obj/machinery/light/directional/north, /obj/structure/sign/warning/secure_area/directional/north, @@ -35712,11 +35707,6 @@ /obj/structure/window/reinforced/spawner/directional/south, /turf/open/floor/iron/dark, /area/station/ai_monitored/aisat/exterior) -"mtX" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/duct, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "mue" = ( /obj/structure/disposalpipe/segment, /obj/structure/cable, @@ -35792,6 +35782,12 @@ /obj/machinery/door/firedoor, /turf/open/floor/plating, /area/station/science/explab) +"mva" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/mob/living/carbon/human/species/monkey/punpun, +/turf/open/floor/iron, +/area/station/service/bar) "mvg" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -35800,18 +35796,6 @@ }, /turf/open/floor/carpet, /area/station/service/library) -"mvk" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/structure/disposalpipe/segment{ - dir = 5 - }, -/obj/machinery/light_switch/directional/west, -/turf/open/floor/wood, -/area/station/service/theater) "mvR" = ( /turf/closed/wall/r_wall, /area/station/science/lab) @@ -35883,12 +35867,6 @@ }, /turf/open/floor/iron, /area/station/cargo/sorting) -"mwS" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/turf/open/floor/wood, -/area/station/commons/lounge) "mxg" = ( /obj/machinery/shower/directional/west, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, @@ -35957,16 +35935,6 @@ /obj/effect/landmark/start/depsec/science, /turf/open/floor/iron, /area/station/security/checkpoint/science) -"myG" = ( -/obj/structure/sign/directions/evac, -/obj/structure/sign/directions/medical{ - pixel_y = 8 - }, -/obj/structure/sign/directions/science{ - pixel_y = -8 - }, -/turf/closed/wall, -/area/station/commons/lounge) "myH" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 1 @@ -36086,6 +36054,19 @@ }, /turf/open/floor/iron/freezer, /area/station/security/prison/shower) +"mAk" = ( +/obj/machinery/camera/directional/east{ + c_tag = "Theater - Stage" + }, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/item/radio/intercom/directional/east, +/obj/structure/table/wood, +/obj/item/clothing/glasses/monocle, +/obj/structure/sign/poster/random/directional/south, +/turf/open/floor/wood/large, +/area/station/service/theater) "mAm" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/security/glass{ @@ -36235,6 +36216,22 @@ /obj/item/kirbyplants/random/dead, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/rd) +"mCq" = ( +/obj/structure/sign/poster/random/directional/east, +/obj/machinery/requests_console/directional/south{ + department = "Kitchen"; + name = "Kitchen Requests Console" + }, +/obj/effect/mapping_helpers/requests_console/supplies, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/machinery/chem_master/condimaster{ + name = "CondiMaster Neo" + }, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "mCL" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, @@ -36358,14 +36355,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) -"mFj" = ( -/obj/effect/spawner/random/vending/colavend, -/obj/machinery/camera/directional/north{ - c_tag = "Bar - Fore" - }, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/turf/open/floor/iron, -/area/station/commons/lounge) "mFm" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -37166,6 +37155,16 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/medical/medbay/lobby) +"mTm" = ( +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "mTp" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -37237,6 +37236,27 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) +"mUO" = ( +/obj/machinery/vending/wardrobe/chef_wardrobe, +/obj/effect/turf_decal/trimline/brown/warning{ + dir = 6 + }, +/obj/effect/turf_decal/bot, +/obj/machinery/light_switch/directional/south{ + pixel_x = -6 + }, +/obj/machinery/button/door/directional/south{ + id = "kitchen_service"; + name = "Service Shutter Control"; + pixel_x = 6; + req_access = list("kitchen") + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "mUQ" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, @@ -38110,13 +38130,6 @@ /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating, /area/station/maintenance/port/aft) -"njC" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/table/wood/poker, -/obj/effect/spawner/random/entertainment/cigarette, -/turf/open/floor/wood, -/area/station/commons/lounge) "njE" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/bot, @@ -38232,6 +38245,11 @@ /obj/effect/turf_decal/tile/red/half/contrasted, /turf/open/floor/iron, /area/station/security/office) +"nlu" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/light/floor, +/turf/open/floor/wood, +/area/station/commons/lounge) "nlL" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 8 @@ -38638,6 +38656,19 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/science/ordnance/testlab) +"nru" = ( +/obj/machinery/airalarm/directional/south, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "nrG" = ( /obj/machinery/light/directional/west, /obj/machinery/recharge_station, @@ -38742,12 +38773,14 @@ /obj/effect/mapping_helpers/airlock/access/all/science/general, /turf/open/floor/iron/white, /area/station/science/lab) -"ntj" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 +"nti" = ( +/obj/structure/cable, +/obj/effect/turf_decal/siding/wood{ + dir = 1 }, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) +/obj/machinery/light/floor, +/turf/open/floor/wood, +/area/station/commons/lounge) "ntk" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 8 @@ -39007,15 +39040,6 @@ /obj/structure/bookcase/random/reference, /turf/open/floor/wood, /area/station/service/library) -"nxA" = ( -/obj/effect/landmark/navigate_destination/bar, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/item/reagent_containers/cup/rag, -/obj/structure/table, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/turf/open/floor/iron, -/area/station/service/bar) "nxF" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -39292,15 +39316,6 @@ }, /turf/open/floor/iron/white/smooth_large, /area/station/medical/surgery/aft) -"nCd" = ( -/obj/structure/chair/stool/bar/directional/south, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/effect/landmark/start/assistant, -/turf/open/floor/iron, -/area/station/commons/lounge) "nCs" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -39356,6 +39371,10 @@ }, /turf/open/floor/iron/dark, /area/station/science/ordnance/storage) +"nDE" = ( +/obj/item/kirbyplants/organic/plant10, +/turf/open/floor/wood/large, +/area/station/commons/lounge) "nDP" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -39544,12 +39563,6 @@ /obj/structure/easel, /turf/open/floor/plating, /area/station/maintenance/disposal) -"nIo" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/light/small/directional/west, -/turf/open/floor/wood, -/area/station/service/theater) "nIP" = ( /obj/structure/table/glass, /obj/item/paper_bin{ @@ -39635,20 +39648,6 @@ /obj/effect/turf_decal/trimline/red/filled/corner, /turf/open/floor/iron, /area/station/security/brig) -"nJY" = ( -/obj/machinery/door/firedoor, -/obj/structure/table/reinforced, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 1; - id = "kitchen_counter"; - name = "Kitchen Counter Shutters" - }, -/obj/structure/desk_bell{ - pixel_x = 7 - }, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/turf/open/floor/iron, -/area/station/service/kitchen) "nKr" = ( /obj/docking_port/stationary{ dir = 8; @@ -39943,6 +39942,15 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"nPh" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/machinery/griddle, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "nPt" = ( /obj/structure/reagent_dispensers/fueltank, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -39962,6 +39970,16 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/security/prison/garden) +"nQb" = ( +/obj/structure/chair/stool/bar/directional/south, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/commons/lounge) "nQh" = ( /obj/structure/window/spawner/directional/west, /obj/machinery/conveyor{ @@ -40093,6 +40111,15 @@ "nSe" = ( /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) +"nSf" = ( +/obj/structure/chair/stool/bar/directional/south, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/turf/open/floor/iron, +/area/station/commons/lounge) "nSs" = ( /obj/structure/showcase/cyborg/old{ pixel_y = 20 @@ -40265,6 +40292,9 @@ /obj/item/bouquet/poppy, /turf/open/floor/plating/airless, /area/space/nearstation) +"nVW" = ( +/turf/open/floor/wood/large, +/area/station/commons/lounge) "nWh" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -40291,6 +40321,14 @@ /obj/effect/spawner/random/maintenance, /turf/open/floor/plating, /area/station/maintenance/department/engine) +"nWs" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "nWu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment{ @@ -40655,6 +40693,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/security/office) +"ocs" = ( +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "ocv" = ( /obj/structure/table/wood/fancy/green, /obj/structure/statue/bronze/marx{ @@ -40772,13 +40816,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/catwalk_floor/iron_dark, /area/station/maintenance/solars/port/fore) -"oeQ" = ( -/obj/effect/landmark/start/hangover, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/turf/open/floor/wood/large, -/area/station/commons/lounge) "oeR" = ( /obj/structure/table/wood, /obj/item/book/manual/wiki/security_space_law, @@ -40881,12 +40918,6 @@ /obj/effect/spawner/random/structure/crate, /turf/open/floor/iron/dark, /area/station/maintenance/aft/lesser) -"ogs" = ( -/obj/machinery/vending/coffee, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/machinery/computer/security/telescreen/entertainment/directional/north, -/turf/open/floor/iron, -/area/station/commons/lounge) "ogF" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -40927,16 +40958,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"ohn" = ( -/obj/machinery/light_switch/directional/north, -/obj/effect/turf_decal/siding/wood, -/obj/effect/landmark/start/clown, -/obj/structure/chair/wood/wings{ - dir = 8 - }, -/obj/machinery/light/small/directional/north, -/turf/open/floor/wood/large, -/area/station/service/theater) "ohp" = ( /obj/structure/table, /obj/machinery/cell_charger, @@ -41173,6 +41194,18 @@ /obj/structure/sign/poster/random/directional/south, /turf/open/floor/plating, /area/station/hallway/secondary/service) +"olX" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/item/food/pie/cream, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 1; + id = "kitchen_counter"; + name = "Kitchen Counter Shutters" + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/kitchen) "ome" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -41252,6 +41285,12 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) +"onP" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/commons/lounge) "oog" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -41410,6 +41449,12 @@ /obj/structure/window/reinforced/spawner/directional/south, /turf/open/floor/iron/dark, /area/station/ai_monitored/aisat/exterior) +"oqq" = ( +/obj/structure/table/reinforced, +/obj/item/holosign_creator/robot_seat/bar, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar) "oqK" = ( /obj/structure/rack, /obj/item/clothing/suit/hazardvest, @@ -41572,6 +41617,13 @@ }, /turf/open/floor/iron/white, /area/station/medical/chemistry) +"otc" = ( +/obj/structure/cable, +/obj/machinery/door/window/right/directional/west{ + name = "Theater Stage" + }, +/turf/open/floor/carpet, +/area/station/service/theater) "ote" = ( /obj/structure/table, /obj/item/computer_disk{ @@ -41622,6 +41674,11 @@ }, /turf/open/floor/holofloor/dark, /area/station/science/cytology) +"ouf" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/sign/poster/random/directional/north, +/turf/open/floor/wood/large, +/area/station/service/theater) "oul" = ( /obj/effect/turf_decal/tile/bar, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -41800,12 +41857,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/white, /area/station/medical/office) -"owi" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/holopad, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/turf/open/floor/iron, -/area/station/service/bar) "owv" = ( /obj/machinery/computer/atmos_alert, /obj/effect/turf_decal/tile/brown/half/contrasted{ @@ -41927,6 +41978,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"oyQ" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/landmark/start/hangover, +/turf/open/floor/wood, +/area/station/commons/lounge) "ozi" = ( /obj/machinery/disposal/bin, /obj/machinery/camera/directional/east{ @@ -43004,6 +43062,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/engineering/gravity_generator) +"oUb" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/hangover, +/obj/machinery/duct, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "oUh" = ( /obj/structure/reagent_dispensers/watertank, /obj/effect/turf_decal/stripes/corner{ @@ -43165,19 +43234,6 @@ /obj/effect/mapping_helpers/airlock/access/any/command/hop, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/hop) -"oXd" = ( -/obj/machinery/atmospherics/pipe/heat_exchanging/junction{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/structure/cable, -/turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen/coldroom) "oXl" = ( /obj/machinery/telecomms/server/presets/science, /turf/open/floor/circuit/telecomms/mainframe, @@ -43591,24 +43647,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/carpet, /area/station/command/heads_quarters/captain/private) -"pek" = ( -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/door/airlock{ - name = "Theater Backstage" - }, -/obj/effect/mapping_helpers/airlock/access/all/service/theatre, -/obj/effect/mapping_helpers/airlock/unres, -/obj/machinery/door/firedoor, -/turf/open/floor/wood, -/area/station/service/theater) -"peF" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/chair/stool/directional/west, -/turf/open/floor/wood, -/area/station/commons/lounge) "peM" = ( /turf/closed/wall/r_wall, /area/station/engineering/atmos/storage/gas) @@ -43716,6 +43754,12 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron/white, /area/station/medical/treatment_center) +"pgT" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood, +/area/station/commons/lounge) "pgU" = ( /obj/structure/chair{ dir = 4 @@ -44001,24 +44045,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/medical/pathology) -"pmZ" = ( -/obj/machinery/light_switch/directional/west{ - pixel_y = 26 - }, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral/opposingcorners{ - dir = 1 - }, -/obj/structure/rack, -/obj/item/hand_labeler, -/obj/item/stack/package_wrap, -/obj/item/stack/package_wrap, -/obj/item/holosign_creator/robot_seat/restaurant, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "pnc" = ( /obj/structure/window/spawner/directional/south, /obj/machinery/door/window/right/directional/east{ @@ -44102,12 +44128,6 @@ }, /turf/open/floor/iron, /area/station/engineering/main) -"pof" = ( -/obj/structure/table/reinforced, -/obj/effect/spawner/random/entertainment/lighter, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/turf/open/floor/iron, -/area/station/service/bar) "pom" = ( /turf/open/floor/iron, /area/station/engineering/storage_shared) @@ -44144,6 +44164,15 @@ }, /turf/open/floor/iron, /area/station/cargo/miningoffice) +"pph" = ( +/obj/structure/cable, +/obj/structure/table, +/obj/item/book/manual/chef_recipes{ + pixel_x = 2; + pixel_y = 6 + }, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "ppB" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/carpet, @@ -44633,15 +44662,6 @@ /obj/item/gavelhammer, /turf/open/floor/iron, /area/station/security/courtroom) -"pyc" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/table/wood/poker, -/obj/effect/spawner/random/entertainment/gambling, -/obj/effect/spawner/random/entertainment/gambling, -/obj/effect/spawner/random/entertainment/gambling, -/turf/open/floor/wood, -/area/station/commons/lounge) "pyd" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/cable, @@ -44780,12 +44800,6 @@ }, /turf/open/floor/wood, /area/station/service/cafeteria) -"pAr" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/landmark/start/hangover, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/turf/open/floor/iron, -/area/station/service/bar) "pAW" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/manifold/layer2{ dir = 4 @@ -45045,6 +45059,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"pGg" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/closed/wall, +/area/station/service/theater) "pGn" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, @@ -45190,9 +45210,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/engineering/atmos/storage/gas) -"pIz" = ( -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "pID" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, @@ -45312,14 +45329,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/grimy, /area/station/tcommsat/computer) -"pKw" = ( -/obj/structure/cable, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/light/floor, -/turf/open/floor/wood, -/area/station/commons/lounge) "pKB" = ( /obj/effect/turf_decal/bot, /obj/effect/turf_decal/mining, @@ -45551,6 +45560,20 @@ /obj/machinery/light/small/directional/north, /turf/open/floor/cult, /area/station/service/chapel/funeral) +"pPb" = ( +/obj/machinery/door/firedoor, +/obj/machinery/smartfridge/food, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 1; + id = "kitchen_counter"; + name = "Kitchen Counter Shutters" + }, +/turf/open/floor/iron, +/area/station/service/kitchen) "pPl" = ( /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, @@ -45607,6 +45630,15 @@ }, /turf/open/floor/stone, /area/station/science/xenobiology) +"pQl" = ( +/obj/structure/chair/stool/bar/directional/south, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/iron, +/area/station/commons/lounge) "pQo" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ dir = 5 @@ -45709,6 +45741,16 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/command) +"pRc" = ( +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/machinery/light/directional/west, +/turf/open/floor/iron, +/area/station/service/bar) "pRe" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -46114,13 +46156,6 @@ /obj/effect/landmark/navigate_destination/library, /turf/open/floor/carpet, /area/station/service/library) -"pZQ" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/carpet, -/area/station/service/theater) "qad" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -46300,22 +46335,6 @@ /obj/machinery/light/directional/south, /turf/open/floor/iron, /area/station/service/hydroponics/garden) -"qdI" = ( -/obj/structure/table, -/obj/machinery/microwave, -/obj/effect/turf_decal/trimline/brown/warning{ - dir = 5 - }, -/obj/machinery/light/directional/west, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/firealarm/directional/west, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "qdT" = ( /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ @@ -46363,6 +46382,15 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) +"qeG" = ( +/obj/machinery/chem_dispenser/drinks{ + dir = 1 + }, +/obj/machinery/newscaster/directional/south, +/obj/structure/table, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar) "qeJ" = ( /obj/structure/disposalpipe/segment, /obj/machinery/door/firedoor, @@ -46565,6 +46593,10 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos) +"qhd" = ( +/obj/machinery/status_display/evac, +/turf/closed/wall, +/area/station/commons/lounge) "qhx" = ( /obj/item/radio/intercom/directional/east, /obj/effect/turf_decal/tile/purple, @@ -46659,6 +46691,10 @@ /obj/effect/turf_decal/stripes/white/line, /turf/open/floor/iron/dark, /area/station/science/ordnance/testlab) +"qiU" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood/large, +/area/station/commons/lounge) "qiY" = ( /obj/machinery/growing/tray, /obj/effect/turf_decal/bot, @@ -46714,6 +46750,11 @@ }, /turf/open/floor/plating, /area/station/medical/abandoned) +"qkk" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/holopad, +/turf/open/floor/carpet, +/area/station/service/theater) "qkl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, @@ -46902,6 +46943,20 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/science/circuits) +"qnf" = ( +/obj/machinery/door/firedoor, +/obj/structure/table/reinforced, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 1; + id = "kitchen_counter"; + name = "Kitchen Counter Shutters" + }, +/obj/structure/desk_bell{ + pixel_x = 7 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/kitchen) "qnj" = ( /obj/structure/window/spawner/directional/west, /turf/open/floor/grass, @@ -47000,6 +47055,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"qom" = ( +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar) "qos" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -47187,15 +47246,6 @@ /obj/machinery/newscaster/directional/south, /turf/open/floor/iron, /area/station/cargo/drone_bay) -"qrO" = ( -/obj/machinery/chem_dispenser/drinks{ - dir = 1 - }, -/obj/machinery/newscaster/directional/south, -/obj/structure/table, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/turf/open/floor/iron, -/area/station/service/bar) "qrQ" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/tile/bar{ @@ -47406,6 +47456,16 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security/holding_cell) +"quW" = ( +/obj/structure/sign/directions/evac, +/obj/structure/sign/directions/medical{ + pixel_y = 8 + }, +/obj/structure/sign/directions/science{ + pixel_y = -8 + }, +/turf/closed/wall, +/area/station/commons/lounge) "qvC" = ( /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/dark, @@ -47492,6 +47552,10 @@ dir = 1 }, /area/station/service/chapel) +"qxi" = ( +/obj/machinery/vending/barbervend, +/turf/open/floor/plating, +/area/station/maintenance/port) "qxr" = ( /obj/structure/cable, /obj/effect/mapping_helpers/broken_floor, @@ -47930,15 +47994,6 @@ /obj/item/pipe_dispenser, /turf/open/floor/iron, /area/station/engineering/main) -"qFo" = ( -/obj/machinery/door/firedoor, -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/machinery/door/airlock/public/glass{ - name = "Bar" - }, -/turf/open/floor/iron, -/area/station/commons/lounge) "qFv" = ( /obj/machinery/door/poddoor/shutters{ dir = 8; @@ -47960,6 +48015,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/engineering/atmos) +"qFM" = ( +/obj/effect/landmark/event_spawn, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar) "qFP" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -48036,13 +48098,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/port) -"qHd" = ( -/obj/effect/landmark/event_spawn, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/turf/open/floor/wood/large, -/area/station/commons/lounge) "qHh" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible{ dir = 9 @@ -48431,6 +48486,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/carpet, /area/station/command/bridge) +"qNZ" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/closet/secure_closet/freezer/fridge, +/obj/effect/turf_decal/trimline/brown/warning{ + dir = 9 + }, +/obj/effect/turf_decal/tile/bar, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "qOs" = ( /obj/machinery/door/airlock/maintenance{ name = "Genetics Maintenance" @@ -48504,6 +48571,25 @@ }, /turf/open/floor/iron, /area/station/cargo/miningoffice) +"qPd" = ( +/obj/structure/chair/stool/bar/directional/south, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/commons/lounge) +"qPn" = ( +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/obj/machinery/disposal/bin, +/obj/structure/disposalpipe/trunk{ + dir = 8 + }, +/obj/effect/turf_decal/bot, +/turf/open/floor/wood, +/area/station/service/theater) "qPs" = ( /obj/structure/lattice/catwalk, /obj/structure/marker_beacon/indigo, @@ -48553,6 +48639,23 @@ }, /turf/open/floor/iron/dark, /area/station/medical/break_room) +"qQF" = ( +/obj/effect/landmark/start/hangover, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood/large, +/area/station/commons/lounge) +"qQV" = ( +/obj/machinery/light_switch/directional/north, +/obj/effect/turf_decal/siding/wood, +/obj/effect/landmark/start/clown, +/obj/structure/chair/wood/wings{ + dir = 8 + }, +/obj/machinery/light/small/directional/north, +/turf/open/floor/wood/large, +/area/station/service/theater) "qQX" = ( /obj/machinery/door/firedoor, /obj/effect/turf_decal/stripes/line{ @@ -48608,16 +48711,6 @@ /obj/machinery/light/dim/directional/east, /turf/open/floor/grass, /area/station/security/bitden) -"qRD" = ( -/obj/machinery/disposal/bin, -/obj/structure/disposalpipe/trunk{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/machinery/light/directional/west, -/turf/open/floor/iron, -/area/station/service/bar) "qRI" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/cable, @@ -48827,6 +48920,16 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/space_hut) +"qVb" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/public/glass{ + name = "Bar" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/commons/lounge) "qVc" = ( /obj/effect/landmark/event_spawn, /turf/open/floor/iron/dark, @@ -48897,6 +49000,16 @@ /obj/machinery/portable_atmospherics/pump, /turf/open/floor/iron/white, /area/station/science/explab) +"qWl" = ( +/obj/structure/cable, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 1 + }, +/turf/open/floor/wood/large, +/area/station/commons/lounge) "qWq" = ( /obj/machinery/asteroid_magnet{ center_x = 32; @@ -49201,14 +49314,6 @@ /obj/machinery/portable_atmospherics/canister/nitrous_oxide, /turf/open/floor/iron/dark, /area/station/science/ordnance/storage) -"rbe" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/east, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/turf/open/floor/iron, -/area/station/service/bar) "rbs" = ( /obj/structure/cable, /obj/structure/table, @@ -49376,23 +49481,6 @@ /obj/machinery/light/directional/south, /turf/open/floor/iron/dark, /area/station/science/ordnance) -"reS" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 1; - id = "kitchen_counter"; - name = "Kitchen Counter Shutters" - }, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/structure/table/reinforced, -/obj/structure/displaycase/forsale/kitchen{ - pixel_y = 8 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/service/kitchen) "rfb" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -49565,14 +49653,6 @@ /obj/effect/mapping_helpers/burnt_floor, /turf/open/floor/plating/airless, /area/station/solars/port/fore) -"riL" = ( -/obj/machinery/restaurant_portal/restaurant, -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/structure/extinguisher_cabinet/directional/north, -/turf/open/floor/wood, -/area/station/commons/lounge) "riW" = ( /obj/structure/plasticflaps/opaque, /obj/machinery/door/window/left/directional/north{ @@ -49637,6 +49717,11 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/hallway/primary/aft) +"rkx" = ( +/obj/machinery/vending/cigarette, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/commons/lounge) "rkz" = ( /obj/machinery/computer/records/pathology{ dir = 4 @@ -49721,10 +49806,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/fore) -"rls" = ( -/obj/structure/dresser, -/turf/open/floor/wood, -/area/station/service/theater) "rlu" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -49970,14 +50051,6 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"rqb" = ( -/obj/structure/cable, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/light/floor, -/turf/open/floor/wood/large, -/area/station/commons/lounge) "rqT" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -50092,6 +50165,14 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/fore) +"rsM" = ( +/obj/structure/table, +/obj/item/food/dough, +/obj/item/knife{ + pixel_x = -13 + }, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "rtd" = ( /obj/machinery/camera/motion/directional/east{ c_tag = "E.V.A. Storage" @@ -50167,14 +50248,6 @@ }, /turf/open/floor/cult, /area/station/service/chapel/office) -"rtZ" = ( -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/spawner/random/structure/crate, -/turf/open/floor/plating, -/area/station/maintenance/starboard/greater) "ruc" = ( /obj/structure/window/reinforced/spawner/directional/west, /turf/open/floor/iron/dark, @@ -50593,11 +50666,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark/textured_large, /area/station/security/bitden) -"rAg" = ( -/obj/effect/turf_decal/siding/wood, -/obj/structure/sign/poster/random/directional/north, -/turf/open/floor/wood/large, -/area/station/service/theater) "rAo" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/reagent_dispensers/watertank, @@ -51088,13 +51156,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/central) -"rIk" = ( -/obj/structure/cable, -/obj/machinery/door/window/right/directional/west{ - name = "Theater Stage" - }, -/turf/open/floor/carpet, -/area/station/service/theater) "rIG" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/shutters/preopen{ @@ -51492,15 +51553,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/engineering/main) -"rPg" = ( -/obj/structure/chair/stool/bar/directional/south, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/iron, -/area/station/commons/lounge) "rPh" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/highsecurity{ @@ -51741,6 +51793,12 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) +"rTk" = ( +/obj/structure/cable, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/wood/large, +/area/station/service/theater) "rTw" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -51788,14 +51846,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/mine/maintenance/public) -"rTQ" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "rTV" = ( /obj/machinery/firealarm/directional/west, /obj/structure/table, @@ -51992,14 +52042,6 @@ /obj/item/flashlight/lamp, /turf/open/floor/iron/dark, /area/station/security/execution/education) -"rXF" = ( -/obj/effect/turf_decal/bot, -/obj/structure/disposalpipe/trunk{ - dir = 8 - }, -/obj/machinery/disposal/bin, -/turf/open/floor/wood, -/area/station/commons/lounge) "rXJ" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/chair/stool/directional/east, @@ -52132,6 +52174,10 @@ /obj/item/reagent_containers/syringe, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) +"rZs" = ( +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/station/maintenance/starboard/greater) "rZt" = ( /obj/machinery/atmospherics/pipe/smart/manifold/purple/visible{ dir = 8 @@ -52405,11 +52451,6 @@ "sdb" = ( /turf/open/floor/plating, /area/station/science/ordnance/testlab) -"sdf" = ( -/obj/structure/window/spawner/directional/west, -/obj/effect/landmark/start/hangover, -/turf/open/floor/carpet, -/area/station/service/theater) "sdn" = ( /obj/item/target, /obj/structure/training_machine, @@ -52484,20 +52525,6 @@ /obj/machinery/duct, /turf/open/floor/plating, /area/station/maintenance/department/engine) -"sej" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/landmark/start/hangover, -/obj/machinery/duct, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) -"sew" = ( -/obj/structure/chair/stool/bar/directional/south, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/effect/turf_decal/siding/wood{ - dir = 5 - }, -/turf/open/floor/iron, -/area/station/commons/lounge) "sey" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -52507,6 +52534,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/central) +"sez" = ( +/obj/structure/chair/wood/wings{ + dir = 8 + }, +/obj/effect/landmark/start/mime, +/turf/open/floor/carpet, +/area/station/service/theater) "seN" = ( /obj/structure/sign/directions/evac, /turf/closed/wall/r_wall, @@ -52550,14 +52584,6 @@ "sfA" = ( /turf/open/floor/carpet, /area/station/medical/psychology) -"sfD" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/duct, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "sfF" = ( /obj/machinery/duct, /obj/effect/turf_decal/trimline/blue/filled/end, @@ -52805,6 +52831,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/science/lab) +"skz" = ( +/obj/effect/mapping_helpers/broken_floor, +/obj/structure/closet/secure_closet/barber, +/turf/open/floor/plating, +/area/station/maintenance/port) "slc" = ( /obj/effect/decal/cleanable/dirt, /obj/vehicle/ridden/janicart, @@ -53591,6 +53622,11 @@ /obj/effect/landmark/start/janitor, /turf/open/floor/iron, /area/station/service/janitor) +"szM" = ( +/obj/structure/table/reinforced, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar) "szO" = ( /obj/structure/cable, /turf/open/floor/wood, @@ -53833,9 +53869,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/security/warden) -"sEh" = ( -/turf/open/floor/carpet, -/area/station/service/theater) "sEk" = ( /obj/structure/extinguisher_cabinet/directional/east, /obj/effect/turf_decal/tile/neutral{ @@ -54012,6 +54045,11 @@ "sIe" = ( /turf/closed/wall/r_wall, /area/station/security/execution/transfer) +"sIp" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/duct, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "sIs" = ( /obj/effect/turf_decal/stripes/corner{ dir = 1 @@ -54177,20 +54215,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/command/bridge) -"sLp" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, -/obj/effect/decal/cleanable/dirt, -/obj/machinery/duct, -/obj/structure/disposalpipe/segment{ - dir = 6 - }, -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "sLD" = ( /obj/machinery/airalarm/directional/south, /obj/effect/turf_decal/tile/yellow/half/contrasted, @@ -54286,6 +54310,13 @@ }, /turf/open/floor/iron, /area/station/science/circuits) +"sNc" = ( +/obj/effect/landmark/start/bartender, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar) "sNi" = ( /turf/open/floor/wood, /area/station/service/theater) @@ -54580,6 +54611,13 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/commons/fitness/recreation) +"sSu" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "sSx" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/command{ @@ -54691,6 +54729,15 @@ }, /turf/open/floor/iron, /area/station/security/execution/transfer) +"sTT" = ( +/obj/machinery/vending/boozeomat, +/obj/structure/sign/picture_frame/portrait/bar{ + pixel_y = -28 + }, +/obj/item/radio/intercom/directional/west, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar) "sUi" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk, @@ -55118,14 +55165,6 @@ /obj/effect/mapping_helpers/airlock/access/all/science/rd, /turf/open/floor/iron/dark, /area/station/science/server) -"tbq" = ( -/obj/structure/chair/stool/bar/directional/south, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/turf/open/floor/iron, -/area/station/commons/lounge) "tck" = ( /obj/structure/extinguisher_cabinet/directional/north, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -55600,16 +55639,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"tju" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/obj/structure/disposalpipe/segment{ - dir = 10 - }, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/turf/open/floor/iron, -/area/station/service/bar) "tjG" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/simple/orange/visible, @@ -55748,6 +55777,13 @@ /obj/effect/mapping_helpers/airlock/access/all/service/hydroponics, /turf/open/floor/iron, /area/station/service/hydroponics) +"tlN" = ( +/obj/machinery/newscaster/directional/east, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/service/theater) "tlZ" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -56127,6 +56163,10 @@ "tsd" = ( /turf/closed/wall, /area/station/maintenance/space_hut) +"tso" = ( +/obj/machinery/oven/range, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "tst" = ( /obj/effect/turf_decal/tile/neutral, /obj/structure/cable, @@ -56411,15 +56451,6 @@ /obj/effect/mapping_helpers/airlock/access/all/command/minisat, /turf/open/floor/iron/dark, /area/station/ai_monitored/turret_protected/aisat_interior) -"txi" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/landmark/start/cook, -/obj/machinery/duct, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "txk" = ( /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=14.5-Recreation"; @@ -56733,13 +56764,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/science/research) -"tEy" = ( -/obj/effect/turf_decal/tile/bar, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "tEP" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -56986,6 +57010,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/central) +"tKx" = ( +/obj/structure/table/wood, +/obj/item/clothing/head/costume/sombrero/green, +/obj/structure/sign/poster/random/directional/east, +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/effect/landmark/start/hangover, +/obj/machinery/light/small/directional/east, +/turf/open/floor/wood/large, +/area/station/service/theater) "tKA" = ( /obj/effect/decal/cleanable/dirt, /obj/effect/turf_decal/bot, @@ -57133,13 +57168,6 @@ }, /turf/open/floor/wood, /area/station/command/heads_quarters/hos) -"tLU" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "tMe" = ( /obj/machinery/portable_atmospherics/canister/nitrous_oxide, /obj/machinery/light/small/directional/east, @@ -57386,16 +57414,6 @@ dir = 1 }, /area/station/engineering/atmos/storage/gas) -"tRL" = ( -/obj/machinery/airalarm/directional/west, -/obj/machinery/chem_master/condimaster{ - desc = "Looks like a knock-off chem-master. Perhaps useful for separating liquids when mixing drinks precisely. Also dispenses condiments."; - name = "HoochMaster Deluxe" - }, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/turf/open/floor/iron, -/area/station/service/bar) "tRU" = ( /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron/dark, @@ -57697,18 +57715,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/engineering/storage/tech) -"tXH" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/item/food/pie/cream, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 1; - id = "kitchen_counter"; - name = "Kitchen Counter Shutters" - }, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/turf/open/floor/iron, -/area/station/service/kitchen) "tXU" = ( /obj/machinery/door/airlock/maintenance, /obj/structure/cable, @@ -57926,6 +57932,13 @@ /obj/structure/window/spawner/directional/north, /turf/open/floor/plating, /area/station/maintenance/disposal) +"ubz" = ( +/obj/structure/chair/wood/wings{ + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/carpet, +/area/station/service/theater) "ubB" = ( /obj/structure/table/reinforced, /obj/item/folder/blue{ @@ -58145,11 +58158,6 @@ }, /turf/open/floor/iron, /area/station/security/office) -"uey" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/light/floor, -/turf/open/floor/wood, -/area/station/commons/lounge) "ueB" = ( /obj/machinery/airalarm/directional/south, /obj/effect/turf_decal/tile/yellow/half/contrasted, @@ -58170,6 +58178,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/security/brig) +"uft" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/carpet, +/area/station/service/theater) "ufu" = ( /obj/effect/turf_decal/tile/red, /obj/effect/turf_decal/tile/red{ @@ -58360,6 +58375,13 @@ }, /turf/open/floor/iron, /area/station/cargo/sorting) +"uiz" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/carpet, +/area/station/service/theater) "uiB" = ( /obj/machinery/door/airlock/maintenance, /obj/structure/cable, @@ -58368,13 +58390,6 @@ /obj/effect/mapping_helpers/airlock/access/all/engineering/maintenance, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"uiK" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/disposalpipe/segment, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/turf/open/floor/iron, -/area/station/service/bar) "ujk" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /obj/effect/turf_decal/siding/purple{ @@ -58449,14 +58464,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/service) -"uky" = ( -/obj/machinery/smartfridge/drinks, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/service/bar) "ukN" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 1 @@ -58504,6 +58511,14 @@ }, /turf/open/floor/iron/white, /area/station/science/lobby) +"umA" = ( +/obj/machinery/restaurant_portal/restaurant, +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/wood, +/area/station/commons/lounge) "umI" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -58545,6 +58560,11 @@ /obj/machinery/light/directional/west, /turf/open/floor/iron/white, /area/station/security/prison/mess) +"umP" = ( +/obj/structure/window/spawner/directional/west, +/obj/machinery/light/floor, +/turf/open/floor/carpet, +/area/station/service/theater) "umS" = ( /obj/item/radio/intercom/directional/west, /obj/machinery/computer/records/security{ @@ -58688,6 +58708,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/security/interrogation) +"upE" = ( +/obj/structure/chair/stool/directional/south, +/turf/open/floor/wood, +/area/station/commons/lounge) "upR" = ( /obj/structure/table, /obj/machinery/recharger{ @@ -58711,6 +58735,14 @@ }, /turf/open/floor/iron, /area/station/service/hydroponics) +"upX" = ( +/obj/structure/disposalpipe/segment{ + dir = 4 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/spawner/random/structure/crate, +/turf/open/floor/plating, +/area/station/maintenance/starboard/greater) "upZ" = ( /obj/item/radio/intercom/directional/north, /obj/machinery/light/small/directional/north, @@ -58979,14 +59011,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/starboard) -"utS" = ( -/obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/start/hangover, -/obj/structure/cable, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/machinery/firealarm/directional/east, -/turf/open/floor/iron, -/area/station/service/bar) "utT" = ( /obj/structure/table/wood, /obj/effect/decal/cleanable/dirt, @@ -59163,12 +59187,17 @@ "uwQ" = ( /turf/closed/wall/r_wall, /area/station/engineering/atmos) -"uwU" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 +"uwY" = ( +/obj/structure/table/reinforced, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/spawner/random/entertainment/lighter, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 4 }, -/turf/open/floor/wood, -/area/station/commons/lounge) +/turf/open/floor/iron, +/area/station/service/bar) "uxa" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -59507,6 +59536,18 @@ /obj/effect/turf_decal/tile/red/anticorner/contrasted, /turf/open/floor/iron/dark, /area/station/security/evidence) +"uCX" = ( +/obj/structure/sign/poster/random/directional/east, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/structure/closet/secure_closet/freezer/kitchen, +/obj/effect/turf_decal/trimline/brown/warning{ + dir = 10 + }, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "uCZ" = ( /obj/effect/turf_decal/stripes/line{ dir = 6 @@ -60173,13 +60214,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/port) -"uOO" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/effect/landmark/start/hangover, -/turf/open/floor/wood, -/area/station/commons/lounge) "uOS" = ( /obj/machinery/door/airlock/grunge{ name = "Morgue" @@ -60305,6 +60339,13 @@ /obj/machinery/telecomms/server/presets/common, /turf/open/floor/circuit/telecomms/mainframe, /area/station/tcommsat/server) +"uRr" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood/large, +/area/station/commons/lounge) "uRu" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 @@ -60817,14 +60858,6 @@ }, /turf/open/floor/engine, /area/station/science/xenobiology) -"vdX" = ( -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/decal/cleanable/dirt, -/obj/structure/table, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "veO" = ( /obj/effect/turf_decal/tile/blue/anticorner/contrasted{ dir = 8 @@ -60846,12 +60879,6 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /turf/open/floor/iron/white/smooth_large, /area/station/medical/treatment_center) -"vfm" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/mob/living/carbon/human/species/monkey/punpun, -/turf/open/floor/iron, -/area/station/service/bar) "vfv" = ( /obj/machinery/conveyor{ dir = 4; @@ -60881,13 +60908,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/chemistry) -"vgb" = ( -/obj/effect/decal/cleanable/dirt, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/turf/open/floor/wood/large, -/area/station/commons/lounge) "vgd" = ( /obj/machinery/door/airlock/engineering{ name = "Telecomms Storage" @@ -60975,6 +60995,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/dark, /area/station/service/chapel/office) +"vhU" = ( +/obj/machinery/airalarm/directional/north, +/obj/machinery/computer/slot_machine{ + pixel_y = 2 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/commons/lounge) "vhV" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -61010,6 +61038,25 @@ /obj/effect/landmark/start/atmospheric_technician, /turf/open/floor/iron, /area/station/engineering/atmos/pumproom) +"viZ" = ( +/obj/structure/table/wood, +/obj/item/toy/mecha/honk{ + pixel_y = 12 + }, +/obj/item/toy/dummy, +/obj/item/lipstick/purple{ + pixel_x = -2; + pixel_y = -2 + }, +/obj/item/lipstick/jade{ + pixel_x = 2; + pixel_y = 2 + }, +/obj/item/lipstick/black, +/obj/structure/sign/poster/contraband/random/directional/west, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood, +/area/station/service/theater) "vjd" = ( /obj/machinery/light/directional/north, /obj/effect/turf_decal/tile/neutral{ @@ -61068,10 +61115,6 @@ }, /turf/open/floor/wood, /area/station/cargo/quartermaster) -"vjx" = ( -/obj/machinery/light/floor, -/turf/open/floor/wood, -/area/station/commons/lounge) "vjA" = ( /obj/structure/cable, /obj/machinery/holopad/secure, @@ -61107,21 +61150,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"vjI" = ( -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/obj/effect/turf_decal/bot, -/obj/structure/sink/directional/east, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) -"vjR" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/wood/large, -/area/station/commons/lounge) "vjS" = ( /obj/effect/landmark/start/paramedic, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -61199,6 +61227,16 @@ }, /turf/open/floor/plating, /area/station/maintenance/aft/greater) +"vky" = ( +/obj/machinery/airalarm/directional/west, +/obj/machinery/chem_master/condimaster{ + desc = "Looks like a knock-off chem-master. Perhaps useful for separating liquids when mixing drinks precisely. Also dispenses condiments."; + name = "HoochMaster Deluxe" + }, +/obj/effect/turf_decal/bot, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar) "vkz" = ( /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -61317,18 +61355,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"vmE" = ( -/obj/machinery/door/airlock{ - name = "Theater Stage" - }, -/obj/structure/cable, -/obj/structure/disposalpipe/segment{ - dir = 4 - }, -/obj/effect/mapping_helpers/airlock/access/any/service/maintenance, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, -/area/station/maintenance/starboard/greater) "vmH" = ( /obj/machinery/door/airlock/security{ name = "Customs Desk" @@ -61505,6 +61531,14 @@ }, /turf/open/floor/iron, /area/station/security/checkpoint/customs) +"vpu" = ( +/obj/machinery/light/small/directional/east, +/obj/structure/sign/poster/contraband/random/directional/east, +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 8 + }, +/turf/open/floor/wood, +/area/station/service/theater) "vpB" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -61596,13 +61630,6 @@ /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /turf/open/floor/iron, /area/station/service/hydroponics) -"vqN" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/station/service/theater) "vqU" = ( /obj/structure/cable, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -61614,17 +61641,6 @@ /obj/structure/sink/directional/west, /turf/open/floor/iron/white, /area/station/science/research) -"vrF" = ( -/obj/structure/table/reinforced, -/obj/structure/desk_bell{ - pixel_x = -11 - }, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/service/bar) "vrJ" = ( /obj/machinery/porta_turret/ai{ dir = 8 @@ -61836,11 +61852,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, /area/station/hallway/secondary/entry) -"vwi" = ( -/obj/structure/table, -/obj/item/clothing/mask/cigarette/pipe, -/turf/open/floor/plating, -/area/station/maintenance/port) "vwN" = ( /obj/effect/turf_decal/tile/blue{ dir = 4 @@ -61863,10 +61874,6 @@ /obj/effect/spawner/random/bureaucracy/paper, /turf/open/floor/plating, /area/station/maintenance/port) -"vwV" = ( -/obj/machinery/status_display/evac, -/turf/closed/wall, -/area/station/commons/lounge) "vxa" = ( /mob/living/basic/slime, /turf/open/floor/engine, @@ -62043,17 +62050,6 @@ }, /turf/open/floor/iron/white, /area/station/science/research) -"vBY" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/start/hangover, -/obj/machinery/duct, -/obj/effect/turf_decal/tile/neutral{ - dir = 4 - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "vCa" = ( /obj/structure/window/reinforced/spawner/directional/north{ layer = 2.9 @@ -62066,6 +62062,15 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/maintenance/port/aft) +"vCk" = ( +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/machinery/door/airlock/public/glass{ + name = "Bar" + }, +/turf/open/floor/iron, +/area/station/commons/lounge) "vCr" = ( /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -62233,19 +62238,6 @@ /obj/structure/closet/secure_closet/medical1, /turf/open/floor/wood/parquet, /area/station/medical/pathology) -"vEO" = ( -/obj/machinery/button/door/directional/east{ - id = "kitchen_counter"; - name = "Kitchen Counter Shutters Control"; - req_access = list("kitchen") - }, -/obj/structure/table, -/obj/machinery/processor{ - pixel_y = 12 - }, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "vET" = ( /obj/effect/turf_decal/tile/neutral{ dir = 8 @@ -62290,6 +62282,17 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/command/heads_quarters/captain/private) +"vFy" = ( +/obj/effect/turf_decal/tile/bar{ + dir = 1 + }, +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/turf_decal/bot, +/obj/structure/sink/directional/east, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "vFB" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -62846,6 +62849,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, /turf/closed/wall/r_wall, /area/station/maintenance/disposal/incinerator) +"vQl" = ( +/obj/effect/turf_decal/tile/neutral{ + dir = 4 + }, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/duct, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "vQs" = ( /turf/closed/wall, /area/station/cargo/warehouse) @@ -62855,6 +62866,12 @@ /obj/machinery/firealarm/directional/south, /turf/open/floor/iron/dark, /area/station/engineering/storage/tech) +"vQF" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/chair/stool/directional/east, +/turf/open/floor/wood, +/area/station/commons/lounge) "vQI" = ( /obj/structure/sign/warning/pods, /turf/closed/wall/r_wall, @@ -62979,15 +62996,6 @@ /obj/item/storage/fancy/cigarettes/cigpack_uplift, /turf/open/floor/iron/white, /area/station/medical/abandoned) -"vSa" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/disposalpipe/segment, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/turf/open/floor/wood/large, -/area/station/service/theater) "vSo" = ( /obj/machinery/light/small/directional/south, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -63062,26 +63070,6 @@ "vTX" = ( /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) -"vUn" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/firedoor, -/obj/item/reagent_containers/condiment/peppermill{ - pixel_x = 3 - }, -/obj/item/reagent_containers/condiment/saltshaker{ - pixel_x = -3 - }, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 1; - id = "kitchen_counter"; - name = "Kitchen Counter Shutters" - }, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 1 - }, -/turf/open/floor/iron, -/area/station/service/kitchen) "vUM" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -63619,6 +63607,9 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"wcK" = ( +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "wcL" = ( /obj/machinery/door/window/right/directional/north{ base_state = "left"; @@ -63749,6 +63740,12 @@ }, /turf/open/floor/iron, /area/station/cargo/sorting) +"wex" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/start/hangover, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar) "wez" = ( /obj/machinery/atmospherics/pipe/smart/simple/scrubbers/visible, /turf/open/floor/iron/dark, @@ -64034,14 +64031,6 @@ /obj/structure/rack, /turf/open/floor/plating, /area/station/maintenance/port/fore) -"wjK" = ( -/obj/item/clothing/head/hats/tophat, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/table, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/turf/open/floor/iron, -/area/station/service/bar) "wjQ" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -64109,18 +64098,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/white, /area/station/science/research) -"wkI" = ( -/obj/structure/closet/secure_closet/freezer/meat, -/obj/machinery/light/small/directional/west, -/obj/machinery/atmospherics/pipe/smart/manifold4w/dark/visible, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/obj/machinery/camera/directional/west{ - c_tag = "Kitchen - Cold Room" - }, -/turf/open/floor/iron/kitchen_coldroom/freezerfloor, -/area/station/service/kitchen/coldroom) "wkL" = ( /obj/effect/spawner/structure/window/reinforced, /obj/machinery/door/poddoor/preopen{ @@ -64170,6 +64147,13 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/science/robotics/lab) +"wmA" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/table/wood/poker, +/obj/effect/spawner/random/entertainment/cigarette, +/turf/open/floor/wood, +/area/station/commons/lounge) "wmB" = ( /obj/structure/window/reinforced/spawner/directional/east, /turf/open/floor/iron/dark, @@ -64267,6 +64251,16 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/medical/storage) +"woZ" = ( +/obj/structure/chair/stool/bar/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/effect/turf_decal/siding/wood{ + dir = 5 + }, +/turf/open/floor/iron, +/area/station/commons/lounge) "wpo" = ( /obj/item/storage/box/matches{ pixel_x = -2; @@ -64388,6 +64382,13 @@ /obj/effect/spawner/random/engineering/tracking_beacon, /turf/open/floor/circuit/green, /area/station/science/robotics/mechbay) +"wsg" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/wood/large, +/area/station/commons/lounge) "wsq" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/security{ @@ -64754,12 +64755,6 @@ /obj/effect/spawner/random/structure/crate, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"wyV" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/turf/closed/wall, -/area/station/service/theater) "wza" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -64813,6 +64808,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/circuit/green, /area/station/ai_monitored/turret_protected/ai_upload) +"wzI" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/carpet, +/area/station/service/theater) "wzK" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -65323,23 +65323,6 @@ }, /turf/open/floor/iron, /area/station/commons/storage/tools) -"wKs" = ( -/obj/structure/table/reinforced, -/obj/machinery/door/window/left/directional/north{ - name = "Kitchen Window"; - req_access = list("kitchen") - }, -/obj/machinery/door/firedoor, -/obj/item/paper, -/obj/effect/turf_decal/delivery, -/obj/machinery/door/poddoor/shutters/preopen{ - id = "kitchen_service"; - name = "Service Shutter" - }, -/obj/item/pen, -/obj/structure/window/reinforced/spawner/directional/west, -/turf/open/floor/iron, -/area/station/hallway/secondary/service) "wKu" = ( /obj/structure/cable, /turf/open/floor/wood, @@ -65432,17 +65415,6 @@ /obj/structure/window/reinforced/spawner/directional/east, /turf/open/floor/iron/dark, /area/station/ai_monitored/aisat/exterior) -"wMk" = ( -/obj/structure/table/wood, -/obj/item/clothing/head/costume/sombrero/green, -/obj/structure/sign/poster/random/directional/east, -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/effect/landmark/start/hangover, -/obj/machinery/light/small/directional/east, -/turf/open/floor/wood/large, -/area/station/service/theater) "wMx" = ( /obj/effect/turf_decal/bot, /obj/effect/landmark/start/hangover, @@ -65452,6 +65424,20 @@ /obj/effect/spawner/random/structure/crate, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) +"wMM" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/duct, +/obj/structure/disposalpipe/segment{ + dir = 6 + }, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "wMY" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -65516,6 +65502,14 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/command/gateway) +"wNM" = ( +/obj/effect/spawner/random/vending/colavend, +/obj/machinery/camera/directional/north{ + c_tag = "Bar - Fore" + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/commons/lounge) "wNN" = ( /obj/effect/turf_decal/plaque{ icon_state = "L9" @@ -65703,20 +65697,6 @@ }, /turf/open/floor/circuit/green, /area/station/ai_monitored/turret_protected/ai) -"wPv" = ( -/obj/structure/table/reinforced, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 1; - id = "kitchen_counter"; - name = "Kitchen Counter Shutters" - }, -/obj/machinery/door/firedoor, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 4 - }, -/turf/open/floor/iron, -/area/station/service/kitchen) "wPB" = ( /obj/machinery/light/small/directional/south, /turf/open/floor/engine/air, @@ -65774,6 +65754,17 @@ /obj/effect/spawner/structure/window, /turf/open/floor/plating, /area/station/science/lab) +"wQc" = ( +/obj/structure/table/reinforced, +/obj/structure/desk_bell{ + pixel_x = -11 + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/bar) "wQj" = ( /obj/machinery/atmospherics/components/unary/portables_connector/visible/layer4{ dir = 8 @@ -65938,20 +65929,6 @@ }, /turf/open/floor/iron/white, /area/station/medical/surgery/theatre) -"wSc" = ( -/obj/machinery/door/firedoor, -/obj/machinery/smartfridge/food, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/effect/turf_decal/siding/wood{ - dir = 1 - }, -/obj/machinery/door/poddoor/shutters/preopen{ - dir = 1; - id = "kitchen_counter"; - name = "Kitchen Counter Shutters" - }, -/turf/open/floor/iron, -/area/station/service/kitchen) "wSe" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -66310,16 +66287,6 @@ /obj/effect/spawner/random/trash/mess, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) -"wYn" = ( -/obj/machinery/chem_dispenser/drinks/beer{ - dir = 1 - }, -/obj/structure/table, -/obj/effect/turf_decal/tile/bar/opposingcorners, -/obj/machinery/light/small/directional/south, -/obj/machinery/digital_clock/directional/south, -/turf/open/floor/iron, -/area/station/service/bar) "wYo" = ( /obj/machinery/airalarm/directional/east, /obj/machinery/light/directional/south, @@ -66477,11 +66444,6 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/port) -"xbw" = ( -/obj/structure/table, -/obj/effect/spawner/random/food_or_drink/cake_ingredients, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "xbE" = ( /obj/structure/table/wood, /obj/effect/turf_decal/siding/wood{ @@ -66712,6 +66674,18 @@ }, /turf/open/floor/iron/white, /area/station/science/cytology) +"xfw" = ( +/obj/structure/disposalpipe/segment, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock{ + name = "Theater Backstage" + }, +/obj/effect/mapping_helpers/airlock/access/all/service/theatre, +/obj/effect/mapping_helpers/airlock/unres, +/obj/machinery/door/firedoor, +/turf/open/floor/wood, +/area/station/service/theater) "xfx" = ( /obj/structure/table/glass, /obj/item/stack/medical/mesh, @@ -66893,6 +66867,20 @@ /obj/machinery/meter, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) +"xhf" = ( +/obj/machinery/door/airlock/corporate{ + id_tag = "Repdoor"; + name = "Representative's Office" + }, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, +/obj/effect/landmark/navigate_destination, +/obj/machinery/door/firedoor, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, +/turf/open/floor/wood, +/area/station/command/heads_quarters/nt_rep) "xhh" = ( /turf/open/floor/plating/airless, /area/station/science/ordnance/bomb) @@ -67131,6 +67119,16 @@ "xlF" = ( /turf/open/floor/iron, /area/station/service/hydroponics) +"xlT" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/book/manual/wiki/barman_recipes{ + pixel_x = -4; + pixel_y = 7 + }, +/obj/structure/table, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar) "xlU" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -67287,6 +67285,12 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos) +"xoC" = ( +/obj/effect/landmark/event_spawn, +/obj/effect/turf_decal/tile/bar, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "xoK" = ( /obj/effect/landmark/start/botanist, /obj/effect/turf_decal/tile/green{ @@ -67347,15 +67351,6 @@ /obj/structure/sign/poster/contraband/random/directional/north, /turf/open/floor/wood, /area/station/maintenance/port/aft) -"xqv" = ( -/obj/structure/cable, -/obj/structure/table, -/obj/item/book/manual/chef_recipes{ - pixel_x = 2; - pixel_y = 6 - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "xqI" = ( /obj/machinery/computer/security/labor{ dir = 8 @@ -67584,14 +67579,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/closed/wall/r_wall, /area/station/maintenance/aft/lesser) -"xva" = ( -/obj/machinery/light/small/directional/east, -/obj/structure/sign/poster/contraband/random/directional/east, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 8 - }, -/turf/open/floor/wood, -/area/station/service/theater) "xvd" = ( /obj/structure/closet/emcloset, /obj/effect/turf_decal/delivery, @@ -68251,17 +68238,6 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/plating, /area/station/maintenance/disposal) -"xGB" = ( -/obj/structure/table/wood, -/obj/item/staff/broom, -/obj/item/wrench, -/obj/machinery/airalarm/directional/east, -/obj/effect/turf_decal/siding/wood/corner{ - dir = 8 - }, -/obj/structure/sign/poster/random/directional/north, -/turf/open/floor/wood/large, -/area/station/service/theater) "xGD" = ( /obj/structure/cable, /obj/effect/turf_decal/tile/purple, @@ -68299,10 +68275,6 @@ }, /turf/open/floor/iron, /area/station/engineering/gravity_generator) -"xIC" = ( -/obj/item/kirbyplants/organic/plant10, -/turf/open/floor/wood/large, -/area/station/commons/lounge) "xID" = ( /obj/structure/disposalpipe/segment{ dir = 10 @@ -68435,10 +68407,6 @@ /obj/structure/machine/assembly_bench, /turf/open/floor/wood, /area/station/smithing) -"xLR" = ( -/obj/machinery/oven/range, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "xMl" = ( /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=15-Court"; @@ -68470,12 +68438,6 @@ /obj/structure/cable, /turf/open/floor/wood, /area/station/service/cafeteria) -"xMY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 4 - }, -/turf/open/floor/carpet, -/area/station/service/theater) "xNb" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -68492,6 +68454,14 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"xNi" = ( +/obj/item/clothing/head/hats/tophat, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/table, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/bar) "xNm" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -68570,6 +68540,22 @@ }, /turf/open/floor/wood, /area/station/command/heads_quarters/blueshield) +"xOv" = ( +/obj/machinery/door/firedoor, +/obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/airlock/access/all/service/bar, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/effect/turf_decal/tile/neutral/opposingcorners{ + dir = 1 + }, +/obj/machinery/door/airlock/glass{ + name = "Bar" + }, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/bar) "xOw" = ( /obj/structure/cable, /obj/structure/disposalpipe/segment{ @@ -68637,28 +68623,10 @@ /obj/machinery/status_display/ai/directional/east, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) -"xPg" = ( -/obj/structure/table/wood/poker, -/obj/effect/spawner/random/entertainment/gambling, -/turf/open/floor/wood, -/area/station/commons/lounge) -"xPh" = ( -/obj/structure/table, -/obj/machinery/microwave, -/obj/effect/turf_decal/trimline/brown/warning{ - dir = 6 - }, -/obj/machinery/camera/directional/west{ - c_tag = "Kitchen" - }, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/obj/machinery/power/apc/auto_name/directional/west, -/obj/structure/cable, +"xPk" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/start/hangover, +/obj/machinery/duct, /turf/open/floor/iron/cafeteria, /area/station/service/kitchen) "xPm" = ( @@ -68696,6 +68664,9 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) +"xPL" = ( +/turf/open/floor/carpet, +/area/station/service/theater) "xPN" = ( /obj/effect/turf_decal/tile/neutral{ dir = 4 @@ -68724,6 +68695,18 @@ /obj/structure/extinguisher_cabinet/directional/east, /turf/open/floor/iron/white, /area/station/medical/medbay/central) +"xQi" = ( +/obj/structure/table/reinforced, +/obj/structure/displaycase/forsale/kitchen{ + pixel_y = 8 + }, +/obj/machinery/computer/security/telescreen/entertainment/directional/west, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/bar) "xQx" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -68757,13 +68740,6 @@ /obj/machinery/exodrone_launcher, /turf/open/floor/plating, /area/station/cargo/drone_bay) -"xQS" = ( -/obj/structure/chair/wood/wings{ - dir = 8 - }, -/obj/effect/landmark/start/mime, -/turf/open/floor/carpet, -/area/station/service/theater) "xQT" = ( /obj/machinery/power/apc/auto_name/directional/south, /obj/effect/turf_decal/siding/wood{ @@ -68955,6 +68931,23 @@ /obj/structure/sign/poster/contraband/random/directional/north, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"xVn" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/item/reagent_containers/condiment/peppermill{ + pixel_x = 3 + }, +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = -3 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 1; + id = "kitchen_counter"; + name = "Kitchen Counter Shutters" + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/turf/open/floor/iron, +/area/station/service/kitchen) "xVq" = ( /obj/effect/turf_decal/tile/yellow{ dir = 8 @@ -69235,6 +69228,14 @@ }, /turf/open/floor/plating, /area/station/maintenance/fore/lesser) +"xYX" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/hangover, +/obj/structure/cable, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/machinery/firealarm/directional/east, +/turf/open/floor/iron, +/area/station/service/bar) "xZb" = ( /obj/effect/spawner/random/structure/grille, /turf/open/floor/plating, @@ -69325,6 +69326,19 @@ }, /turf/open/floor/iron/checker, /area/station/science/research) +"yaB" = ( +/obj/effect/turf_decal/bot, +/obj/machinery/light_switch/directional/south, +/obj/effect/turf_decal/tile/bar, +/obj/effect/turf_decal/tile/neutral{ + dir = 8 + }, +/obj/machinery/deepfryer, +/obj/effect/turf_decal/trimline/brown/warning{ + dir = 5 + }, +/turf/open/floor/iron/cafeteria, +/area/station/service/kitchen) "yaD" = ( /obj/structure/table, /obj/item/stack/rods/fifty, @@ -69480,18 +69494,6 @@ }, /turf/open/floor/iron, /area/station/maintenance/disposal/incinerator) -"ydq" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/effect/turf_decal/siding/wood{ - dir = 10 - }, -/obj/structure/window/spawner/directional/west, -/obj/structure/sign/poster/random/directional/north, -/obj/effect/spawner/random/structure/musician/piano/random_piano, -/turf/open/floor/wood/large, -/area/station/service/theater) "ydr" = ( /obj/machinery/camera/directional/east{ c_tag = "Auxiliary Tool Storage" @@ -69585,20 +69587,6 @@ }, /turf/open/floor/iron/dark/textured, /area/station/medical/pathology) -"yfn" = ( -/obj/machinery/vending/dinnerware, -/obj/effect/turf_decal/trimline/brown/warning{ - dir = 5 - }, -/obj/effect/turf_decal/bot, -/obj/effect/turf_decal/tile/bar{ - dir = 1 - }, -/obj/effect/turf_decal/tile/neutral{ - dir = 8 - }, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "yfq" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk{ @@ -69618,6 +69606,38 @@ }, /turf/open/floor/engine/n2o, /area/station/engineering/atmos) +"yfz" = ( +/obj/structure/table/reinforced, +/obj/machinery/door/firedoor, +/obj/item/reagent_containers/condiment/peppermill{ + pixel_x = 3 + }, +/obj/item/reagent_containers/condiment/saltshaker{ + pixel_x = -3 + }, +/obj/machinery/door/poddoor/shutters/preopen{ + dir = 1; + id = "kitchen_counter"; + name = "Kitchen Counter Shutters" + }, +/obj/effect/turf_decal/tile/bar/opposingcorners, +/obj/effect/turf_decal/siding/wood/corner{ + dir = 1 + }, +/turf/open/floor/iron, +/area/station/service/kitchen) +"yfG" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 1 + }, +/obj/machinery/firealarm/directional/south, +/obj/structure/table/wood, +/obj/item/stack/sheet/cloth/ten, +/obj/item/toy/crayon/spraycan, +/obj/item/stack/rods/ten, +/obj/machinery/light/small/directional/south, +/turf/open/floor/wood/large, +/area/station/service/theater) "yfI" = ( /obj/machinery/atmospherics/pipe/layer_manifold/supply/hidden, /turf/closed/wall/r_wall, @@ -69783,11 +69803,6 @@ }, /turf/open/floor/iron/grimy, /area/station/service/chapel/office) -"ykj" = ( -/obj/structure/table, -/obj/structure/cable, -/turf/open/floor/iron/cafeteria, -/area/station/service/kitchen) "ykn" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper, /obj/machinery/door/airlock/external{ @@ -86504,7 +86519,7 @@ lMY pOa mrN gXe -vwi +dZj tql pOa aDl @@ -87016,7 +87031,7 @@ fjD tmI fjD pOa -cIW +fSN rwB tYi vXH @@ -87789,8 +87804,8 @@ oyx pOa xgG vJY -gDZ -wev +skz +qxi pOa uOH uOH @@ -99099,7 +99114,7 @@ tnE mOi fWE kqB -cAx +maF tvE ibX htd @@ -99349,7 +99364,7 @@ syo eDL lSz tst -dHV +dhE xOl iag eZZ @@ -100635,11 +100650,11 @@ syo cnA nNw dmK -hZR +xhf iME ejm uKL -mnq +hdw xAB jCA tvE @@ -100896,7 +100911,7 @@ pdV neg kfb hrH -igQ +gHx aHC avc tvE @@ -102679,12 +102694,12 @@ uZj ghl xZW uOX -myG +quW rac bvJ bvJ -qFo -cNA +vCk +qVb bvJ bvJ pTS @@ -102937,18 +102952,18 @@ jHu fRS twN lkc -hhN -uOO +rkx +oyQ hkG xEJ yjc -oeQ -xIC -hri -qRD -dfp -tRL -hrM +qQF +nDE +xQi +pRc +qom +vky +sTT eQE bNf vZM @@ -103194,18 +103209,18 @@ aEr fRS twN rac -mFj +wNM kMr jSf gjr hnr -qHd -bGJ -vrF -tju -uiK -lYR -loh +bpT +nSf +wQc +fks +dIz +daw +kjz nxH mVY pQC @@ -103451,18 +103466,18 @@ vFB fRS twN rac -ogs +aGF wCL gPh hkG wPE -cwW -tbq -aLk -pAr -wjK -cqI -cFU +bai +qPd +szM +wex +xNi +iVn +cYI eQE oWH nBf @@ -103713,13 +103728,13 @@ kSw oPx gvm uhP -ebq -tbq -pof -owi -nxA -hyX -wYn +wsg +qPd +hdY +iiZ +hQN +eyT +aUZ eQE eEf rOM @@ -103966,19 +103981,19 @@ fRS tLx bvJ dYK -vjx +arW gae uFf qVt -kND -tbq -jjF -vfm -gWl -epO -qrO +dJj +qPd +oqq +mva +qFM +dvh +qeG eQE -atU +fFc qfB dDH pkK @@ -104221,22 +104236,22 @@ dZm mta pxl tUu -efg +cKQ xDw riZ nGK nGK -gVa -eIw -bTl -lIB -dDq -rbe -utS -bNh +vQF +hRF +woZ +uwY +sNc +fqM +xYX +xlT eQE mFC -bMp +jlV eQE bOA eLI @@ -104478,16 +104493,16 @@ dAn vFB fRS twN -gwc +fjf lWm gvm vLM wSs -njC -cwW -lBA -uky -ici +wmA +bai +nVW +elE +xOv pTS pTS pTS @@ -104740,17 +104755,17 @@ lWm kdN wSs jGA -pyc -cwW -vgb -iuM -esv -vjI -pmZ -qdI -xPh -yfn -gbq +bpt +bai +lSx +aXy +mTm +vFy +msq +aGA +bkv +hua +mUO uIs amu gsr @@ -104993,21 +105008,21 @@ vFB fRS cAf bvJ -rXF -uey +eHL +nlu fSd fSd -peF -kND -vjR -wSc -esv -dMX -vBY +gqp +dJj +qiU +pPb +mTm +vQl +oUb wXc xzj vMb -adG +bFe tqe qmy ltv @@ -105250,22 +105265,22 @@ dOw fRS tUv rac -riL -bCk +umA +kPx hkG qpM qVt -cwW -ktP -vUn -esv -vdX -mtX -xqv -gWh +bai +nQb +yfz +mTm +diU +sIp +pph +hpo fWW -rTQ -wKs +jzy +hsW jER rMA ukv @@ -105507,21 +105522,21 @@ cjP tqU vhI rac -khA -kcs -dTD -jsn -fjY -aPV -rPg -tXH -esv -xLR -mtX -ykj -msT +aqz +pgT +upE +cLD +cCu +uRr +pQl +olX +mTm +tso +sIp +hmR +rsM dVm -hqW +eIA uIs qVM aJI @@ -105764,21 +105779,21 @@ vFB fRS tUv rac -bEU -kcs -hsE -jsn -btI -cwW -tbq -iJM -esv -xbw -mtX -ykj -gWh +vhU +pgT +gMb +cLD +efV +bai +qPd +xVn +mTm +lTh +sIp +hmR +hpo lPi -cgR +iQJ uIs jui rhc @@ -106021,21 +106036,21 @@ vFB pKi axU rac -iin -pKw +hiG +nti wKu wKu -mwS -rqb -nCd -nJY -esv -xLR -sej +iLL +fTy +lOB +qnf +mTm +tso +xPk hED -hAc -tEy -iIT +xoC +egW +mCq uIs mAV vqp @@ -106278,19 +106293,19 @@ vFB fRS tUv bvJ -uwU +onP kSw nGK nGK -hNC -gjH -sew -wPv -esv -ntj -txi -iCY -gXo +fwt +qWl +dgE +fVy +mTm +ciK +fvd +cDX +jTf huG huG huG @@ -106534,23 +106549,23 @@ xww jsv tlZ aPF -vwV -jsn -dTD +qhd +cLD +upE wSs -xPg -fge -eAk -iga -reS -cBW +gxf +htQ +bTV +iuP +ffs +ocs klS -mcn +nPh mlu -ded +yaB huG -gUM -wkI +aIF +lSt phS huG iNQ @@ -106792,22 +106807,22 @@ aEr sDs jYi obG -ydq +buf mzn -sdf -gcW -auy -rIk -leJ +foU +umP +gMz +otc +etz uIs -tLU -pIz -sfD +sSu +wcK +nWs ebK -sLp +wMM laT mSS -aiz +hqg hiM huG wVd @@ -107049,22 +107064,22 @@ dFp fRS tUv obG -ohn -sEh -hWo -ghq -kNT +qQV +xPL +kJy +qkk +fan wBT -fVr +yfG uIs -vEO -gTc -inI -iHh -aNN +fWC +miQ +qNZ +uCX +nru huG -mpx -oXd +lMd +aFo apt huG jWj @@ -107306,22 +107321,22 @@ vFB usY huX obG -rAg -xMY -dXE -xQS +ouf +eaL +kDw +sez yaO -vqN -dce +uiz +lOw obG -cRC +pGg obG obG obG obG obG huG -daS +amJ gKS huG olP @@ -107563,20 +107578,20 @@ fdE gaN iqB obG -crT -bDR -bDR -glJ -kuA -pZQ -vSa -pek -mvk -nIo -eWG -dbH -aXt -bpY +rTk +wzI +wzI +lhz +cbr +uft +gnR +xfw +cEr +fjq +eVV +aqd +viZ +ayh huG iuJ tNQ @@ -107820,19 +107835,19 @@ fAv fRS tUv obG -xGB -wMk -feQ -jNV -bzI -dLY -aAb -wyV -iDC -gXj +cuu +tKx +knR +bDC +cnJ +lKz +mAk +aZs +qPn +tlN sNi -fQT -eCQ +jTM +ubz mMu huG hEl @@ -108080,16 +108095,16 @@ unL unL unL unL -vmE +mex unL unL unL unL unL unL -rls -sEh -ghw +lbw +xPL +eyP cwb unL qyB @@ -108345,8 +108360,8 @@ lzL scG unL jcY -eEN -xva +ijC +vpu deX rJk ofe @@ -108597,9 +108612,9 @@ fWA fWA fWA fWA -job +rZs yaf -rtZ +upX unL unL unL diff --git a/_maps/map_files/Mining/Lavaland.dmm b/_maps/map_files/Mining/Lavaland.dmm index 4b2a65a6fe51..4f6bd4e03623 100644 --- a/_maps/map_files/Mining/Lavaland.dmm +++ b/_maps/map_files/Mining/Lavaland.dmm @@ -12280,7 +12280,7 @@ fQ fQ fQ aj -pU +aj pU pU wr @@ -12796,7 +12796,7 @@ pU aj aj aj -pU +aj sy wE pU @@ -13054,7 +13054,7 @@ aj aj aj aj -pU +aj pU pU uU @@ -13312,7 +13312,7 @@ fQ aj aj aj -pU +aj pU uU uU @@ -15378,8 +15378,8 @@ aj aj aj aj -pU -pU +aj +aj aj aj aj @@ -15894,7 +15894,7 @@ aj fQ aj aj -pU +aj uU uU uU @@ -16673,7 +16673,7 @@ aj aj aj aj -pU +aj pU pU uU @@ -16925,7 +16925,7 @@ aj aj fQ aj -pU +aj ad pU aj @@ -16937,7 +16937,7 @@ aj aj uU uU -pU +aj aj aj aj @@ -17198,7 +17198,7 @@ aj aj aj aj -pU +aj uU uU uU @@ -17438,7 +17438,7 @@ fQ fQ fQ fQ -pU +aj aj aj aj @@ -17696,7 +17696,7 @@ fQ fQ fQ fQ -pU +aj aj aj fQ @@ -19536,7 +19536,7 @@ pU pU aj aj -pU +aj pU uU uU @@ -19793,8 +19793,8 @@ ai ai pU aj -pU -pU +aj +aj uU uU uU @@ -24939,7 +24939,7 @@ ZY pU aj aj -pU +aj pU pU pU @@ -25195,7 +25195,7 @@ ZY pU aj aj -pU +aj pU pU pU @@ -25965,7 +25965,7 @@ ZY ZY aj aj -pU +aj JD RP RP @@ -26222,7 +26222,7 @@ ZY pU aj aj -pU +aj JD RP RP @@ -26992,7 +26992,7 @@ ZY ZY aj aj -pU +aj pU JD RP @@ -27763,7 +27763,7 @@ ZY ZY aj aj -pU +aj pU rN RP @@ -28278,7 +28278,7 @@ ZY pU aj aj -pU +aj pU pU pU @@ -28536,7 +28536,7 @@ ZY aj aj aj -pU +aj pU pU aj @@ -29049,7 +29049,7 @@ ZY ZY ZY pU -pU +aj aj aj aj @@ -29584,7 +29584,7 @@ aj Od qx Od -pU +aj an dJ rF @@ -30613,7 +30613,7 @@ pV Xw aj aj -pU +aj cU aj aj @@ -30864,12 +30864,12 @@ aj aj aj aj -pU -pU +aj +aj kt yh kt -pU +aj pU zU pU @@ -31121,8 +31121,8 @@ aj aj aj pU -pU -pU +aj +aj jc Kh jc @@ -33703,7 +33703,7 @@ kt HO jc Ae -pU +aj aj aj pU @@ -33964,7 +33964,7 @@ qe aj aj aj -pU +aj pU pU aj @@ -34218,11 +34218,11 @@ pU pU dJ pU -pU -pU aj aj -pU +aj +aj +aj pU aj aj @@ -34477,12 +34477,12 @@ dJ dJ dJ pU -pU aj aj aj aj -pU +aj +aj pU aj aj diff --git a/_maps/map_files/Ouroboros/Ouroboros.dmm b/_maps/map_files/Ouroboros/Ouroboros.dmm index e5d5b6ba4de2..4d72be21b3db 100644 --- a/_maps/map_files/Ouroboros/Ouroboros.dmm +++ b/_maps/map_files/Ouroboros/Ouroboros.dmm @@ -160,6 +160,18 @@ }, /turf/open/floor/plating, /area/station/cargo/office) +"adi" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 9 + }, +/obj/structure/chair/office{ + dir = 1 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, +/obj/structure/cable, +/obj/effect/landmark/start/signal_technician, +/turf/open/floor/wood/large, +/area/station/tcommsat/computer) "adr" = ( /obj/effect/turf_decal/bot, /obj/structure/closet/emcloset, @@ -5977,18 +5989,6 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) -"bNF" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 10 - }, -/obj/structure/railing, -/obj/structure/window/reinforced/spawner/directional/south, -/obj/machinery/computer/telecomms/monitor{ - network = "tcommsat"; - dir = 1 - }, -/turf/open/floor/wood/large, -/area/station/tcommsat/computer) "bNG" = ( /obj/effect/spawner/random/engineering/tracking_beacon, /obj/structure/disposalpipe/segment{ @@ -6124,6 +6124,19 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/wood/large, /area/station/security/prison) +"bPN" = ( +/obj/structure/disposalpipe/segment, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/door/airlock/corporate{ + name = "Consultant's Office" + }, +/obj/machinery/door/firedoor, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, +/turf/open/floor/iron/dark/smooth_large, +/area/station/command/heads_quarters/nt_rep) "bQj" = ( /obj/machinery/door/firedoor, /obj/effect/mapping_helpers/airlock/access/all/service/theatre, @@ -8478,13 +8491,6 @@ }, /turf/open/floor/carpet/royalblue, /area/station/command/heads_quarters/captain) -"cBm" = ( -/obj/effect/turf_decal/box, -/obj/machinery/computer/telecomms/server{ - network = "tcommsat" - }, -/turf/open/floor/iron/dark/small, -/area/station/tcommsat/computer) "cBn" = ( /obj/structure/closet/crate/large{ name = "doublebeard wine crate" @@ -8924,6 +8930,19 @@ /obj/structure/closet/secure_closet/security/sec, /turf/open/floor/engine, /area/station/security/lockers) +"cHX" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/corporate{ + id_tag = "BSdoor"; + name = "Blueshield's Office" + }, +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, +/turf/open/floor/iron/dark/smooth_large, +/area/station/command/meeting_room/council) "cIj" = ( /obj/structure/railing{ dir = 8 @@ -13103,6 +13122,28 @@ /obj/effect/turf_decal/lunar_sand, /turf/open/floor/glass/reinforced, /area/station/science/xenobiology) +"dUZ" = ( +/obj/structure/table/wood, +/obj/item/folder/blue{ + pixel_x = 4; + pixel_y = 4 + }, +/obj/item/paper/fluff/ids_for_dummies, +/obj/item/stamp/denied{ + pixel_x = -7; + pixel_y = 9 + }, +/obj/item/stamp{ + pixel_x = -7; + pixel_y = 1 + }, +/obj/effect/turf_decal/siding/wood, +/obj/machinery/requests_console/auto_name/directional/south, +/obj/effect/mapping_helpers/requests_console/information, +/obj/effect/mapping_helpers/requests_console/assistance, +/obj/effect/mapping_helpers/requests_console/announcement, +/turf/open/floor/wood, +/area/station/command/heads_quarters/nt_rep) "dVa" = ( /obj/structure/window/spawner/directional/west, /obj/structure/chair/plastic{ @@ -17045,6 +17086,18 @@ }, /turf/open/floor/iron/dark, /area/station/command/bridge) +"fam" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 10 + }, +/obj/structure/railing, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/machinery/computer/telecomms/monitor{ + network = "tcommsat"; + dir = 1 + }, +/turf/open/floor/wood/large, +/area/station/tcommsat/computer) "faA" = ( /obj/effect/turf_decal/stripes/white/line, /obj/effect/turf_decal/stripes/blue/line{ @@ -18620,18 +18673,6 @@ /obj/item/radio/intercom/chapel/directional/west, /turf/open/floor/wood/tile, /area/station/service/chapel/office) -"fAL" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/corporate{ - id_tag = "BSdoor"; - name = "Blueshield's Office" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/landmark/navigate_destination, -/obj/effect/mapping_helpers/airlock/access/all/admin/general, -/turf/open/floor/iron/dark/smooth_large, -/area/station/command/heads_quarters/blueshield) "fAT" = ( /obj/effect/turf_decal/arrows{ dir = 8; @@ -18953,18 +18994,6 @@ }, /turf/open/floor/plating, /area/station/engineering/gravity_generator) -"fHk" = ( -/obj/structure/disposalpipe/segment, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock/corporate{ - name = "Consultant's Office" - }, -/obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/any/command/captain, -/turf/open/floor/iron/dark/smooth_large, -/area/station/command/heads_quarters/nt_rep) "fHm" = ( /obj/structure/cable, /obj/machinery/door/airlock/external{ @@ -19641,12 +19670,6 @@ dir = 8 }, /area/station/cargo/quartermaster) -"fRq" = ( -/obj/machinery/airalarm/directional/west, -/obj/machinery/light_switch/directional/north, -/obj/machinery/computer/nanite_chamber_control, -/turf/open/floor/iron/dark/small, -/area/station/science/circuits) "fRv" = ( /obj/effect/spawner/random/structure/furniture_parts, /turf/open/floor/plating, @@ -21576,6 +21599,15 @@ }, /turf/open/floor/iron/dark, /area/station/science/cytology) +"gww" = ( +/obj/item/clothing/accessory/medal/gold/ordom, +/obj/effect/turf_decal/stripes/line{ + dir = 9 + }, +/obj/effect/turf_decal/bot, +/obj/structure/closet/secure_closet/nanotrasen_representative, +/turf/open/floor/iron/dark/smooth_large, +/area/station/command/heads_quarters/nt_rep) "gwx" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/camera/directional/east{ @@ -21721,6 +21753,18 @@ /obj/effect/spawner/random/trash/moisture, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"gzB" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/obj/structure/chair/comfy/brown{ + color = "#439C1E"; + dir = 8 + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/start/nanotrasen_representative, +/turf/open/floor/wood, +/area/station/command/heads_quarters/nt_rep) "gzF" = ( /obj/structure/table/glass, /obj/item/storage/box/monkeycubes{ @@ -23475,6 +23519,19 @@ /obj/structure/cable, /turf/open/floor/iron/dark/corner, /area/station/commons/dorms) +"gZS" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/corporate{ + id_tag = "BSdoor"; + name = "Blueshield's Office" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/landmark/navigate_destination, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, +/turf/open/floor/iron/dark/smooth_large, +/area/station/command/heads_quarters/blueshield) "hab" = ( /turf/closed/wall, /area/station/commons/vacant_room/commissary) @@ -26706,6 +26763,35 @@ }, /turf/open/floor/iron/kitchen/diagonal, /area/station/security/prison) +"hWY" = ( +/obj/structure/table/glass, +/obj/effect/turf_decal/stripes/line, +/obj/item/storage/box/disks_nanite{ + pixel_x = -7; + pixel_y = 14 + }, +/obj/item/storage/box/disks_nanite{ + pixel_x = -8; + pixel_y = 5 + }, +/obj/item/storage/box/nanitecontrol{ + pixel_x = -7; + pixel_y = 19 + }, +/obj/item/paper_bin{ + pixel_x = 8; + pixel_y = 4 + }, +/obj/item/folder/white{ + pixel_x = 8; + pixel_y = 6 + }, +/obj/item/pen{ + pixel_x = 8; + pixel_y = 7 + }, +/turf/open/floor/iron/dark/small, +/area/station/science/circuits) "hWZ" = ( /obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /obj/machinery/airalarm/directional/west, @@ -29867,13 +29953,6 @@ /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/wood, /area/station/maintenance/starboard/fore) -"iSJ" = ( -/obj/effect/turf_decal/box, -/obj/machinery/light/cold/directional/north, -/obj/machinery/airalarm/directional/north, -/obj/machinery/computer/telecomms/traffic, -/turf/open/floor/iron/dark/small, -/area/station/tcommsat/computer) "iSS" = ( /obj/structure/disposalpipe/junction/flip{ dir = 4 @@ -32065,6 +32144,14 @@ }, /turf/open/floor/plating, /area/station/maintenance/port/central) +"jzQ" = ( +/obj/effect/turf_decal/tile/purple/diagonal_centre, +/obj/effect/turf_decal/siding/white{ + dir = 1 + }, +/obj/machinery/modular_computer/preset/cargochat/science, +/turf/open/floor/iron/white/diagonal, +/area/station/science/breakroom) "jzW" = ( /obj/effect/spawner/random/vending/colavend, /turf/open/floor/iron/dark, @@ -34139,6 +34226,18 @@ "kgP" = ( /turf/open/openspace, /area/station/hallway/secondary/exit/departure_lounge) +"kgV" = ( +/obj/effect/turf_decal/trimline/red/line{ + dir = 1 + }, +/obj/effect/turf_decal/trimline/red/mid_joiner{ + dir = 1 + }, +/obj/machinery/computer/operating{ + dir = 8 + }, +/turf/open/floor/iron/white/smooth_large, +/area/station/security/medical) "kgX" = ( /turf/open/floor/iron/dark, /area/station/maintenance/disposal/incinerator) @@ -34486,14 +34585,6 @@ dir = 8 }, /area/station/engineering/gravity_generator) -"kkC" = ( -/obj/effect/turf_decal/tile/purple/diagonal_centre, -/obj/effect/turf_decal/siding/white{ - dir = 1 - }, -/obj/machinery/modular_computer/preset/cargochat/science, -/turf/open/floor/iron/white/diagonal, -/area/station/science/breakroom) "kkR" = ( /obj/effect/turf_decal/siding/white{ dir = 6 @@ -35322,18 +35413,6 @@ /obj/effect/turf_decal/box, /turf/open/floor/iron/dark/smooth_large, /area/station/medical/pharmacy) -"kuQ" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/corporate{ - id_tag = "BSdoor"; - name = "Blueshield's Office" - }, -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/access/all/admin/general, -/turf/open/floor/iron/dark/smooth_large, -/area/station/command/meeting_room/council) "kuV" = ( /turf/open/openspace, /area/station/maintenance/port/fore) @@ -35465,6 +35544,14 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/engineering/lobby) +"kxN" = ( +/obj/structure/railing{ + dir = 1 + }, +/obj/machinery/photocopier, +/obj/effect/turf_decal/bot, +/turf/open/floor/iron/dark, +/area/station/science/circuits) "kxX" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -35565,18 +35652,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark/telecomms, /area/station/tcommsat/server) -"kyM" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 9 - }, -/obj/structure/chair/office{ - dir = 1 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden, -/obj/structure/cable, -/obj/effect/landmark/start/signal_technician, -/turf/open/floor/wood/large, -/area/station/tcommsat/computer) "kyR" = ( /obj/effect/turf_decal/siding/wood{ dir = 1 @@ -38436,6 +38511,18 @@ dir = 5 }, /area/station/hallway/primary/central/aft) +"loa" = ( +/obj/machinery/door/firedoor, +/obj/machinery/door/airlock/corporate{ + id_tag = "BSdoor"; + name = "Blueshield's Quarters" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, +/turf/open/floor/iron/dark/smooth_large, +/area/station/command/heads_quarters/blueshield) "loi" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark/small, @@ -41205,17 +41292,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/cargo/storage) -"mep" = ( -/obj/structure/bed, -/obj/item/bedsheet/medical, -/obj/effect/turf_decal/trimline/red/line{ - dir = 1 - }, -/obj/effect/turf_decal/trimline/red/mid_joiner{ - dir = 1 - }, -/turf/open/floor/iron/white/smooth_large, -/area/station/security/medical) "meq" = ( /obj/machinery/smartfridge, /turf/open/floor/iron/dark/smooth_large, @@ -42691,6 +42767,16 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/fore) +"mBu" = ( +/obj/machinery/door/airlock/corporate{ + name = "Consultant's Quarters" + }, +/obj/machinery/door/firedoor, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, +/turf/open/floor/iron/dark/smooth_large, +/area/station/command/heads_quarters/nt_rep) "mBw" = ( /obj/structure/cable, /obj/effect/mapping_helpers/burnt_floor, @@ -43532,6 +43618,12 @@ }, /turf/open/floor/iron/white, /area/station/science/xenobiology) +"mMG" = ( +/obj/machinery/airalarm/directional/west, +/obj/machinery/light_switch/directional/north, +/obj/machinery/computer/nanite_chamber_control, +/turf/open/floor/iron/dark/small, +/area/station/science/circuits) "mMK" = ( /obj/structure/chair/office{ dir = 4 @@ -43637,32 +43729,6 @@ /obj/structure/table, /turf/open/floor/iron/small, /area/station/science/robotics/lab) -"mPb" = ( -/obj/structure/table/wood, -/obj/item/folder/blue{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/paper/fluff/ids_for_dummies, -/obj/item/stamp/centcom{ - pixel_x = 4; - pixel_y = 4 - }, -/obj/item/stamp/denied{ - pixel_x = -7; - pixel_y = 9 - }, -/obj/item/stamp{ - pixel_x = -7; - pixel_y = 1 - }, -/obj/effect/turf_decal/siding/wood, -/obj/machinery/requests_console/auto_name/directional/south, -/obj/effect/mapping_helpers/requests_console/information, -/obj/effect/mapping_helpers/requests_console/assistance, -/obj/effect/mapping_helpers/requests_console/announcement, -/turf/open/floor/wood, -/area/station/command/heads_quarters/nt_rep) "mPi" = ( /obj/machinery/light/warm/directional/east, /turf/open/floor/wood, @@ -53196,35 +53262,6 @@ /obj/structure/tank_holder/extinguisher, /turf/open/floor/plating, /area/station/science/xenobiology) -"pHY" = ( -/obj/structure/table/glass, -/obj/effect/turf_decal/stripes/line, -/obj/item/storage/box/disks_nanite{ - pixel_x = -7; - pixel_y = 14 - }, -/obj/item/storage/box/disks_nanite{ - pixel_x = -8; - pixel_y = 5 - }, -/obj/item/storage/box/nanitecontrol{ - pixel_x = -7; - pixel_y = 19 - }, -/obj/item/paper_bin{ - pixel_x = 8; - pixel_y = 4 - }, -/obj/item/folder/white{ - pixel_x = 8; - pixel_y = 6 - }, -/obj/item/pen{ - pixel_x = 8; - pixel_y = 7 - }, -/turf/open/floor/iron/dark/small, -/area/station/science/circuits) "pIa" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply, /turf/open/floor/iron/white, @@ -54529,11 +54566,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/dark/smooth_large, /area/station/medical/pharmacy) -"qbe" = ( -/obj/structure/bed, -/obj/item/bedsheet/medical, -/turf/open/floor/iron/white/smooth_large, -/area/station/security/medical) "qbf" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, @@ -60182,15 +60214,6 @@ /obj/machinery/power/port_gen/pacman, /turf/open/floor/plating, /area/station/maintenance/department/science/xenobiology) -"rPB" = ( -/obj/machinery/door/airlock/corporate{ - name = "Consultant's Quarters" - }, -/obj/machinery/door/firedoor, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/effect/mapping_helpers/airlock/access/any/command/captain, -/turf/open/floor/iron/dark/smooth_large, -/area/station/command/heads_quarters/nt_rep) "rPM" = ( /obj/effect/spawner/random/structure/closet_maintenance, /obj/effect/spawner/random/maintenance/two, @@ -61477,6 +61500,10 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/hallway/secondary/entry) +"sie" = ( +/obj/structure/table/optable, +/turf/open/floor/iron/white/smooth_large, +/area/station/security/medical) "sin" = ( /obj/effect/mapping_helpers/broken_floor, /obj/structure/disposalpipe/segment{ @@ -62984,14 +63011,6 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/secondary/entry) -"sET" = ( -/obj/structure/railing{ - dir = 1 - }, -/obj/machinery/photocopier, -/obj/effect/turf_decal/bot, -/turf/open/floor/iron/dark, -/area/station/science/circuits) "sEV" = ( /obj/effect/turf_decal/trimline/dark_red/corner{ dir = 4 @@ -65944,6 +65963,13 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/greater) +"tyK" = ( +/obj/effect/turf_decal/box, +/obj/machinery/computer/telecomms/server{ + network = "tcommsat" + }, +/turf/open/floor/iron/dark/small, +/area/station/tcommsat/computer) "tyU" = ( /obj/machinery/door/firedoor, /obj/machinery/door/airlock/research{ @@ -69161,7 +69187,7 @@ dir = 10 }, /obj/effect/turf_decal/bot, -/obj/structure/closet/l3closet/virology, +/obj/machinery/smartfridge/chemistry/virology/preloaded, /turf/open/floor/iron/dark/smooth_large, /area/station/medical/virology) "uyk" = ( @@ -72378,16 +72404,6 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/wood/tile, /area/station/commons/lounge) -"vuC" = ( -/obj/item/clothing/accessory/medal/gold/ordom, -/obj/item/clothing/gloves/combat, -/obj/effect/turf_decal/stripes/line{ - dir = 9 - }, -/obj/effect/turf_decal/bot, -/obj/structure/closet/secure_closet/nanotrasen_consultant, -/turf/open/floor/iron/dark/smooth_large, -/area/station/command/heads_quarters/nt_rep) "vuD" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -72490,15 +72506,6 @@ }, /turf/open/floor/iron/dark, /area/station/cargo/storage) -"vwa" = ( -/obj/machinery/firealarm/directional/north, -/obj/effect/turf_decal/stripes/line{ - dir = 4 - }, -/obj/effect/turf_decal/box, -/obj/machinery/nanite_chamber, -/turf/open/floor/iron/dark/small, -/area/station/science/circuits) "vwB" = ( /obj/effect/turf_decal/tile/dark/opposingcorners{ dir = 1 @@ -75907,17 +75914,6 @@ /obj/structure/flora/bush/jungle/b/style_random, /turf/open/floor/grass, /area/station/medical/virology) -"wsa" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/obj/structure/chair/comfy/brown{ - color = "#439C1E"; - dir = 8 - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/wood, -/area/station/command/heads_quarters/nt_rep) "wsb" = ( /obj/effect/turf_decal/stripes/line{ dir = 4 @@ -76002,6 +75998,15 @@ }, /turf/open/floor/iron/dark/smooth_large, /area/station/medical/pharmacy) +"wti" = ( +/obj/machinery/firealarm/directional/north, +/obj/effect/turf_decal/stripes/line{ + dir = 4 + }, +/obj/effect/turf_decal/box, +/obj/machinery/nanite_chamber, +/turf/open/floor/iron/dark/small, +/area/station/science/circuits) "wtk" = ( /obj/structure/disposalpipe/segment, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -78424,6 +78429,13 @@ /obj/machinery/light/directional/east, /turf/open/floor/iron, /area/station/hallway/primary/central/aft) +"xeM" = ( +/obj/effect/turf_decal/box, +/obj/machinery/light/cold/directional/north, +/obj/machinery/airalarm/directional/north, +/obj/machinery/computer/telecomms/traffic, +/turf/open/floor/iron/dark/small, +/area/station/tcommsat/computer) "xeU" = ( /obj/item/kirbyplants/organic/plant22, /obj/effect/turf_decal/siding/dark{ @@ -79200,17 +79212,6 @@ /obj/machinery/light/cold/directional/west, /turf/open/floor/iron/dark, /area/station/security/checkpoint/customs) -"xrM" = ( -/obj/machinery/door/firedoor, -/obj/machinery/door/airlock/corporate{ - id_tag = "BSdoor"; - name = "Blueshield's Quarters" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/effect/mapping_helpers/airlock/access/all/admin/general, -/turf/open/floor/iron/dark/smooth_large, -/area/station/command/heads_quarters/blueshield) "xsq" = ( /obj/effect/spawner/random/trash/grime, /obj/structure/disposalpipe/segment{ @@ -107882,8 +107883,8 @@ hLR biW mUg web -fRq -pHY +mMG +hWY fah tSu pfu @@ -108139,7 +108140,7 @@ web tPs pjs web -vwa +wti cmc nBq wPa @@ -109168,7 +109169,7 @@ air emO web dAc -sET +kxN pnm reW omr @@ -110710,7 +110711,7 @@ tal tal tal tal -kkC +jzQ gjc foo vZy @@ -114011,7 +114012,7 @@ hOA oQe wRn pYE -cBm +tyK lDi vXr eRW @@ -114268,9 +114269,9 @@ tsO mzQ leY pYE -iSJ -kyM -bNF +xeM +adi +fam uYM sTr sTr @@ -115608,7 +115609,7 @@ gTt gTt gTt ykB -kuQ +cHX qbi gWJ fKE @@ -116636,7 +116637,7 @@ xUm aTL kGu hBQ -xrM +loa ffw nyK lNk @@ -117149,7 +117150,7 @@ oTb kcf aYJ vbN -fAL +gZS vbN fGw hHf @@ -124585,8 +124586,8 @@ iVU sSc eVK ggS -mep -qbe +kgV +sie xRx nRX xwo @@ -181660,7 +181661,7 @@ xyn xVN mBM qRT -fHk +bPN cbZ mCj uVe @@ -181916,7 +181917,7 @@ aoG gAG dkH cQN -mPb +dUZ aoG lyw tmT @@ -182172,7 +182173,7 @@ aoG npw gLq qVz -wsa +gzB euG aoG aoG @@ -182430,7 +182431,7 @@ viD hgl ugC oZU -vuC +gww aoG aoG eLF @@ -182686,7 +182687,7 @@ hoo hoo pLY qMA -rPB +mBu qMA aoG aoG diff --git a/_maps/map_files/Theseus/Theseus.dmm b/_maps/map_files/Theseus/Theseus.dmm index 59b5309e78dd..ad0c7f9235b4 100644 --- a/_maps/map_files/Theseus/Theseus.dmm +++ b/_maps/map_files/Theseus/Theseus.dmm @@ -199,6 +199,8 @@ }, /obj/effect/decal/cleanable/dirt, /obj/structure/closet/emcloset, +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/engineering/flashlight, /turf/open/floor/iron, /area/station/maintenance/starboard/upper) "adL" = ( @@ -738,6 +740,7 @@ /obj/structure/disposalpipe/segment{ dir = 6 }, +/obj/machinery/requests_console/auto_name/directional/east, /turf/open/floor/iron/dark/textured, /area/station/medical/morgue) "alj" = ( @@ -1066,6 +1069,11 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) +"aqB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/requests_console/auto_name/directional/south, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "aqS" = ( /obj/machinery/door/airlock/maintenance{ name = "Medbay Maintenance" @@ -1218,6 +1226,11 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central) +"atl" = ( +/obj/machinery/hydroponics/constructable, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/starboard/upper) "atp" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -1255,12 +1268,9 @@ /turf/open/floor/carpet, /area/station/service/chapel) "auc" = ( -/obj/machinery/door/window/brigdoor/right/directional/north{ - id = "Cell 2"; - name = "Cell 2"; - dir = 4 +/obj/machinery/door/window/brigdoor/security/cell/left/directional/east{ + id = "Cell 2" }, -/obj/effect/mapping_helpers/airlock/access/all/security/general, /obj/effect/turf_decal/tile/red/fourcorners, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -1617,6 +1627,10 @@ /obj/effect/turf_decal/bot, /turf/open/floor/plating, /area/station/maintenance/department/medical) +"aAP" = ( +/obj/effect/spawner/random/structure/grille, +/turf/open/floor/plating, +/area/station/maintenance/solars/port/aft) "aAS" = ( /obj/machinery/door/airlock/maintenance{ name = "Central Starboard Maintenance" @@ -1711,6 +1725,7 @@ dir = 1 }, /obj/machinery/holopad, +/obj/machinery/requests_console/auto_name/directional/south, /turf/open/floor/iron, /area/station/security/processing) "aDe" = ( @@ -1909,6 +1924,7 @@ /obj/effect/spawner/random/contraband/cannabis, /obj/structure/table/wood, /obj/effect/spawner/random/maintenance, +/obj/effect/spawner/random/entertainment/toy_figure, /turf/open/floor/carpet/green, /area/station/maintenance/starboard/upper) "aGB" = ( @@ -2608,6 +2624,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/effect/spawner/random/medical/supplies, /turf/open/floor/plating, /area/station/maintenance/department/medical) "aOl" = ( @@ -2738,6 +2755,7 @@ /obj/effect/spawner/random/structure/table, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, /obj/effect/spawner/random/engineering/toolbox, +/obj/effect/spawner/random/engineering/material, /turf/open/floor/plating, /area/station/maintenance/starboard/upper) "aPY" = ( @@ -5436,7 +5454,7 @@ "bHk" = ( /obj/effect/turf_decal/tile/red/fourcorners, /obj/structure/cable, -/obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/effect/mapping_helpers/airlock/access/all/security/armory, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/security/glass{ name = "Equipment Room" @@ -5746,6 +5764,7 @@ /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/requests_console/auto_name/directional/south, /turf/open/floor/iron, /area/station/engineering/lobby) "bNi" = ( @@ -5945,6 +5964,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/wood, /area/station/service/library) +"bRc" = ( +/obj/effect/spawner/random/maintenance, +/obj/item/restraints/legcuffs/beartrap/prearmed, +/turf/open/floor/plating, +/area/station/maintenance/central) "bRl" = ( /obj/effect/spawner/structure/window/reinforced, /obj/structure/barricade/wooden/crude, @@ -6618,9 +6642,9 @@ /turf/open/floor/iron, /area/station/hallway/primary/starboard) "caE" = ( -/obj/structure/closet/emcloset, -/obj/effect/turf_decal/bot, -/obj/effect/landmark/start/hangover/closet, +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/blood/old, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "caM" = ( @@ -7008,6 +7032,7 @@ /area/station/hallway/secondary/exit/departure_lounge) "cfL" = ( /obj/machinery/modular_computer/preset/id, +/obj/machinery/requests_console/auto_name/directional/north, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/rd) "cfM" = ( @@ -7161,15 +7186,13 @@ pixel_x = 6; pixel_y = 30 }, +/obj/effect/mob_spawn/ghost_role/drone/bar, /turf/open/floor/wood/parquet, /area/station/command/heads_quarters/nt_rep) "cit" = ( -/obj/machinery/door/window/brigdoor/right/directional/north{ - id = "Cell 1"; - name = "Cell 1"; - dir = 4 +/obj/machinery/door/window/brigdoor/security/cell/left/directional/east{ + id = "Cell 1" }, -/obj/effect/mapping_helpers/airlock/access/all/security/general, /obj/effect/turf_decal/tile/red/fourcorners, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -7370,6 +7393,12 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 }, +/obj/structure/closet/secure_closet/engineering_personal, +/obj/effect/turf_decal/bot, +/obj/item/clothing/glasses/meson/engine, +/obj/item/construction/rcd/loaded, +/obj/item/construction/rld, +/obj/item/construction/rtd/loaded, /turf/open/floor/iron, /area/station/engineering/hallway) "clq" = ( @@ -7514,6 +7543,11 @@ /obj/effect/landmark/start/head_of_personnel, /turf/open/floor/carpet/green, /area/station/command/heads_quarters/hop) +"cna" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/spawner/random/medical/minor_healing, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) "cni" = ( /obj/effect/landmark/event_spawn, /obj/effect/turf_decal/stripes/corner{ @@ -7619,6 +7653,7 @@ }, /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, +/obj/machinery/requests_console/auto_name/directional/east, /turf/open/floor/iron, /area/station/security/lockers) "coy" = ( @@ -7774,6 +7809,7 @@ /area/station/commons/dorms) "csd" = ( /obj/effect/spawner/random/trash/food_packaging, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "csg" = ( @@ -8874,6 +8910,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/commons/dorms) +"cHA" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/spawner/random/trash, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "cHF" = ( /obj/machinery/door/airlock/virology/glass{ name = "Monkey Pen" @@ -9137,8 +9178,9 @@ /turf/open/floor/iron/white, /area/station/science/ordnance/storage) "cNh" = ( -/obj/effect/spawner/random/trash/box, -/obj/item/clothing/mask/gas, +/obj/effect/spawner/random/structure/closet_maintenance, +/obj/effect/spawner/random/maintenance/three, +/obj/effect/spawner/random/medical/medkit, /turf/open/floor/plating, /area/station/maintenance/department/medical) "cNl" = ( @@ -9519,6 +9561,11 @@ /obj/effect/spawner/random/structure/chair_maintenance, /turf/open/floor/plating, /area/station/maintenance/starboard/central) +"cRN" = ( +/obj/structure/chair/stool/directional/south, +/obj/effect/spawner/random/trash/cigbutt, +/turf/open/floor/plating, +/area/station/maintenance/port/lesser) "cRW" = ( /obj/structure/chair/office{ dir = 4 @@ -9622,6 +9669,8 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/extinguisher_cabinet/directional/north, /obj/effect/spawner/random/structure/closet_maintenance, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/cobweb/cobweb2, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "cTG" = ( @@ -9813,6 +9862,12 @@ /obj/structure/falsewall, /turf/open/floor/plating, /area/station/maintenance/starboard/upper) +"cXs" = ( +/obj/effect/turf_decal/stripes, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/upper) "cXA" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -9975,6 +10030,8 @@ /area/station/maintenance/starboard/upper) "cZL" = ( /obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/hangover, +/obj/effect/decal/cleanable/cobweb, /turf/open/floor/plating/rust, /area/station/maintenance/starboard/aft) "cZR" = ( @@ -10596,6 +10653,16 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/dark, /area/station/security/checkpoint/science) +"dlQ" = ( +/obj/structure/closet/crate/hydroponics, +/obj/item/wrench, +/obj/item/shovel/spade, +/obj/item/wirecutters, +/obj/item/reagent_containers/cup/watering_can, +/obj/effect/spawner/random/maintenance, +/obj/effect/spawner/random/fishing_rods, +/turf/open/floor/plating, +/area/station/maintenance/starboard/upper) "dlT" = ( /obj/machinery/mass_driver/ordnance, /obj/effect/turf_decal/stripes/line{ @@ -10727,6 +10794,10 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/station/engineering/break_room) +"dnE" = ( +/obj/machinery/requests_console/auto_name/directional/west, +/turf/open/floor/wood/large, +/area/station/service/library/private) "dnH" = ( /obj/effect/turf_decal/trimline/red/filled/line, /obj/effect/turf_decal/tile/red/half, @@ -11032,6 +11103,7 @@ pixel_x = -6; pixel_y = 28 }, +/obj/machinery/requests_console/auto_name/directional/east, /turf/open/floor/carpet/royalblue, /area/station/medical/break_room) "dru" = ( @@ -11238,6 +11310,7 @@ "dtN" = ( /obj/item/kirbyplants/random, /obj/structure/cable, +/obj/machinery/requests_console/auto_name/directional/south, /turf/open/floor/iron, /area/station/commons/fitness/recreation) "dtY" = ( @@ -11301,6 +11374,7 @@ /obj/effect/spawner/random/trash/bacteria, /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "duz" = ( @@ -11398,6 +11472,7 @@ pixel_x = 8; pixel_y = -5 }, +/obj/machinery/requests_console/auto_name/directional/west, /turf/open/floor/wood, /area/station/service/barber) "dvq" = ( @@ -11628,6 +11703,7 @@ /obj/structure/chair/comfy/black, /obj/structure/closet/emcloset/wall/directional/east, /obj/effect/landmark/start/captain, +/obj/machinery/requests_console/auto_name/directional/north, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/captain/private) "dyC" = ( @@ -11711,9 +11787,17 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/command) -"dzN" = ( -/obj/effect/turf_decal/bot, +"dzz" = ( +/obj/structure/rack, +/obj/item/stack/cable_coil, +/obj/item/stack/sheet/iron/twenty, +/obj/item/stack/sheet/glass/fifty, /turf/open/floor/plating, +/area/station/maintenance/solars/port/aft) +"dzN" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/food_packaging, +/turf/open/floor/iron/smooth, /area/station/maintenance/port/lesser) "dzO" = ( /obj/effect/turf_decal/tile/red{ @@ -12745,6 +12829,10 @@ dir = 1 }, /obj/machinery/airalarm/directional/north, +/obj/item/lightreplacer, +/obj/item/construction/rcd/loaded, +/obj/item/construction/rld, +/obj/item/construction/rtd/loaded, /turf/open/floor/iron, /area/station/engineering/hallway) "dPq" = ( @@ -12948,6 +13036,9 @@ /area/space/nearstation) "dSQ" = ( /obj/item/radio/intercom/directional/north, +/obj/machinery/door/airlock/maintenance{ + name = "Starboard Bow Maintenance" + }, /turf/open/floor/plating, /area/station/maintenance/starboard/upper) "dTa" = ( @@ -12999,13 +13090,13 @@ /turf/open/floor/plating, /area/station/maintenance/port/lesser) "dUh" = ( -/obj/structure/window/spawner/directional/east, /obj/structure/sign/calendar/directional/south, /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk{ dir = 4 }, -/turf/open/floor/carpet/green, +/obj/structure/window/spawner/directional/west, +/turf/open/floor/wood/parquet, /area/station/command/heads_quarters/nt_rep) "dUq" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -13019,10 +13110,10 @@ /turf/open/floor/iron, /area/station/security/prison) "dUC" = ( +/obj/structure/cable, /obj/machinery/door/poddoor/preopen{ - id = "Safety" + id = "cap" }, -/obj/structure/cable, /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, /area/station/command/heads_quarters/captain/private) @@ -13032,9 +13123,8 @@ dir = 1 }, /obj/machinery/light/directional/south, -/obj/structure/table, /obj/item/storage/box/perfume{ - pixel_x = 4; + pixel_x = 41; pixel_y = 5 }, /turf/open/floor/iron/showroomfloor, @@ -13156,6 +13246,7 @@ /area/station/service/hydroponics) "dXb" = ( /obj/machinery/teleport/hub, +/obj/machinery/requests_console/auto_name/directional/east, /turf/open/floor/iron/dark, /area/station/command/teleporter) "dXn" = ( @@ -13321,6 +13412,11 @@ /obj/structure/cable, /turf/open/floor/wood, /area/station/security/detectives_office) +"dZd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/caution_sign, +/turf/open/floor/plating, +/area/station/maintenance/starboard/upper) "dZg" = ( /obj/machinery/camera/directional/north, /turf/open/floor/engine, @@ -13509,10 +13605,10 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/door/airlock/maintenance_hatch{ - name = "Maintenance Hatch" - }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/door/airlock/maintenance{ + name = "Forward Sci Maintenance" + }, /turf/open/floor/iron, /area/station/maintenance/port/lesser) "ebH" = ( @@ -13963,6 +14059,9 @@ /obj/machinery/camera/directional/south{ c_tag = "Auxiliary Base Construction" }, +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/engineering/tool, +/obj/effect/spawner/random/entertainment/cigarette_pack, /turf/open/floor/plating, /area/station/maintenance/starboard/upper) "egh" = ( @@ -14653,7 +14752,6 @@ }, /area/station/engineering/hallway) "erV" = ( -/obj/item/kirbyplants/random, /obj/effect/turf_decal/trimline/red/filled/line{ dir = 8 }, @@ -14661,6 +14759,8 @@ dir = 4 }, /obj/machinery/camera/directional/west, +/obj/machinery/rnd/production/techfab/department/security, +/obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/station/security/office) "esb" = ( @@ -14758,6 +14858,7 @@ /obj/effect/landmark/start/hangover, /obj/structure/disposalpipe/segment, /obj/structure/bed/medical, +/obj/item/pillow, /turf/open/floor/iron/white/textured_edge{ dir = 8 }, @@ -15356,6 +15457,11 @@ /obj/effect/spawner/random/trash/mess, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"eDB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/weldingtool/empty, +/turf/open/floor/iron/smooth, +/area/station/maintenance/port/lesser) "eDD" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/iron, @@ -15434,6 +15540,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/space/basic, /area/space/nearstation) +"eFK" = ( +/obj/structure/cable, +/obj/effect/decal/cleanable/dirt, +/obj/structure/light_construct/directional/east, +/turf/open/floor/iron, +/area/station/maintenance/port/lesser) "eFW" = ( /obj/effect/turf_decal/trimline/purple/filled/line{ dir = 1 @@ -15701,11 +15813,14 @@ /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/satellite) "eMt" = ( -/obj/machinery/recharge_station, -/obj/effect/turf_decal/bot, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/plating, -/area/station/maintenance/starboard/aft) +/obj/structure/sink/directional/west, +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/obj/structure/sign/poster/official/random/directional/east, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/starboard/upper) "eMx" = ( /obj/machinery/mass_driver/ordnance{ dir = 8 @@ -15912,6 +16027,12 @@ /obj/machinery/status_display/evac/directional/north, /turf/open/floor/plating, /area/station/engineering/supermatter/room) +"eQv" = ( +/obj/effect/turf_decal/bot, +/obj/effect/landmark/start/hangover/closet, +/obj/structure/closet/emcloset, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "eQO" = ( /obj/effect/mapping_helpers/airlock/access/all/engineering/atmos, /obj/structure/cable, @@ -16262,6 +16383,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"eVr" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/food_packaging, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "eVw" = ( /obj/effect/turf_decal/trimline/white/filled/line{ dir = 6 @@ -16476,6 +16602,7 @@ /obj/effect/decal/cleanable/dirt/dust, /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/spawner/random/engineering/tool, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "eZi" = ( @@ -16911,6 +17038,7 @@ /area/station/hallway/secondary/exit/departure_lounge) "fet" = ( /obj/structure/filingcabinet/filingcabinet, +/obj/machinery/requests_console/auto_name/directional/north, /turf/open/floor/wood, /area/station/medical/psychology) "feA" = ( @@ -17522,7 +17650,7 @@ /obj/effect/turf_decal/trimline/red/filled/line{ dir = 5 }, -/obj/machinery/suit_storage_unit/open, +/obj/machinery/suit_storage_unit/security, /turf/open/floor/iron, /area/station/security/office) "fnq" = ( @@ -18159,6 +18287,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/disposalpipe/segment, +/obj/machinery/requests_console/auto_name/directional/east, /turf/open/floor/iron/white/textured, /area/station/medical/storage) "fzs" = ( @@ -18624,7 +18753,8 @@ id_tag = "BSdoor"; name = "Blueshield's Office" }, -/obj/effect/mapping_helpers/airlock/access/all/admin/general, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, /turf/open/floor/wood, /area/station/command/heads_quarters/blueshield) "fGn" = ( @@ -19085,12 +19215,13 @@ /obj/structure/sign/picture_frame/showroom/four{ pixel_y = 32 }, +/obj/machinery/camera/directional/north, +/obj/structure/cable, +/obj/effect/landmark/start/nanotrasen_representative, /obj/structure/chair/comfy{ color = "#596479"; - dir = 4 + dir = 8 }, -/obj/machinery/camera/directional/north, -/obj/structure/cable, /turf/open/floor/wood/parquet, /area/station/command/heads_quarters/nt_rep) "fNw" = ( @@ -19596,6 +19727,7 @@ /obj/structure/window/reinforced/spawner/directional/north, /mob/living/carbon/human/species/monkey, /obj/structure/flora/bush/flowers_pp, +/obj/item/radio/intercom/directional/south, /turf/open/floor/grass, /area/station/science/genetics) "fVF" = ( @@ -20442,6 +20574,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, +/obj/machinery/requests_console/auto_name/directional/south, /turf/open/floor/wood, /area/station/security/detectives_office) "giF" = ( @@ -20674,6 +20807,11 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/security/brig/upper) +"gmu" = ( +/obj/effect/spawner/random/maintenance/three, +/obj/structure/closet/cardboard, +/turf/open/floor/plating, +/area/station/maintenance/port/lesser) "gmv" = ( /obj/machinery/light/small/directional/east, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/visible/layer2, @@ -20830,6 +20968,13 @@ /obj/effect/turf_decal/bot, /turf/open/floor/carpet/orange, /area/station/maintenance/starboard/central) +"gpd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/filingcabinet/chestdrawer{ + pixel_y = 2 + }, +/turf/open/floor/iron/smooth, +/area/station/maintenance/port/lesser) "gpf" = ( /obj/effect/landmark/navigate_destination/atmos, /obj/effect/turf_decal/trimline/yellow/filled/line, @@ -21037,15 +21182,15 @@ dir = 8; tag = "" }, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, /obj/effect/turf_decal/bot, /obj/structure/tank_dispenser/oxygen, /obj/machinery/button/door/directional/west{ pixel_y = 8; id = "evablast" }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/eva) "gsK" = ( @@ -21253,6 +21398,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/hallway/primary/upper) +"gwH" = ( +/obj/effect/spawner/random/maintenance, +/obj/effect/spawner/random/structure/crate_loot, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "gwJ" = ( /obj/machinery/light/directional/north, /obj/effect/turf_decal/tile/yellow/half/contrasted{ @@ -22205,6 +22356,8 @@ /area/station/science/breakroom) "gKe" = ( /obj/effect/spawner/random/structure/closet_maintenance, +/obj/item/paint/paint_remover, +/obj/effect/spawner/random/engineering/material, /turf/open/floor/plating, /area/station/maintenance/solars/port/aft) "gKf" = ( @@ -22254,6 +22407,7 @@ /area/station/science/genetics) "gKy" = ( /obj/effect/turf_decal/stripes, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/upper) "gKD" = ( @@ -22337,6 +22491,14 @@ /obj/effect/turf_decal/tile/blue/fourcorners, /turf/open/floor/iron/dark/telecomms, /area/station/tcommsat/server) +"gMT" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Forward Sci Maintenance" + }, +/obj/structure/cable, +/obj/effect/mapping_helpers/airlock/welded, +/turf/open/floor/plating, +/area/station/maintenance/port/lesser) "gMX" = ( /obj/effect/landmark/start/ai/secondary, /obj/item/radio/intercom/directional/north{ @@ -22474,6 +22636,11 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron, /area/station/ai_monitored/command/storage/eva) +"gOG" = ( +/obj/effect/spawner/structure/window/reinforced, +/obj/structure/barricade/wooden/crude, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "gOM" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/airalarm/directional/south, @@ -22844,8 +23011,6 @@ /area/station/engineering/gravity_generator) "gTZ" = ( /obj/structure/cable, -/obj/machinery/light/small/directional/north, -/obj/effect/decal/cleanable/dirt, /obj/structure/fans/tiny, /turf/open/floor/plating, /area/station/maintenance/solars/port/fore) @@ -23870,12 +24035,9 @@ /turf/open/floor/iron, /area/station/engineering/atmos/upper) "hkt" = ( -/obj/machinery/door/window/brigdoor/right/directional/north{ - id = "Cell 3"; - name = "Cell 3"; - dir = 4 +/obj/machinery/door/window/brigdoor/security/cell/left/directional/east{ + id = "Cell 3" }, -/obj/effect/mapping_helpers/airlock/access/all/security/general, /obj/effect/turf_decal/tile/red/fourcorners, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -24659,9 +24821,6 @@ pixel_y = -1; pixel_x = 8 }, -/obj/machinery/requests_console/auto_name/directional/west{ - can_send_announcements = 1 - }, /obj/structure/extinguisher_cabinet/directional/north, /obj/item/folder/blue, /obj/item/stamp/head/rd, @@ -25468,7 +25627,7 @@ /obj/structure/table/wood, /obj/effect/spawner/random/entertainment/lighter, /obj/effect/spawner/random/entertainment/money_small, -/obj/effect/spawner/random/entertainment/money_small, +/obj/effect/spawner/random/entertainment/money_medium, /turf/open/floor/plating, /area/station/maintenance/starboard/upper) "hJl" = ( @@ -25769,11 +25928,11 @@ /turf/open/floor/plating, /area/station/maintenance/port/lesser) "hOL" = ( +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/engineering/tank, /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/effect/turf_decal/bot, -/obj/effect/spawner/random/engineering/tank, /turf/open/floor/iron, /area/station/maintenance/starboard/upper) "hOO" = ( @@ -27032,6 +27191,7 @@ /obj/structure/sign/poster/contraband/clown/directional/north, /obj/structure/sign/poster/contraband/clown/directional/west, /obj/effect/decal/cleanable/confetti, +/obj/item/stack/sheet/meat/five, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "iia" = ( @@ -27233,6 +27393,7 @@ pixel_x = -3; pixel_y = 12 }, +/obj/machinery/requests_console/auto_name/directional/south, /turf/open/floor/iron, /area/station/engineering/break_room) "ikW" = ( @@ -27601,6 +27762,10 @@ /obj/machinery/atmospherics/pipe/layer_manifold/supply/visible/layer4, /turf/open/floor/iron/dark, /area/station/engineering/atmos/pumproom) +"ipC" = ( +/obj/effect/spawner/random/structure/grille, +/turf/open/floor/plating, +/area/station/cargo/storage) "ipF" = ( /obj/structure/cable, /obj/effect/decal/cleanable/dirt, @@ -27678,6 +27843,14 @@ /obj/item/assembly/mousetrap, /turf/open/floor/iron, /area/station/maintenance/department/medical) +"iry" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Lesser Starboard Maintenance" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/cable, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "irB" = ( /obj/effect/landmark/start/cyborg, /obj/machinery/holopad/secure, @@ -27937,6 +28110,13 @@ "ivA" = ( /turf/open/floor/iron/dark/textured, /area/station/medical/morgue) +"ivD" = ( +/obj/effect/spawner/random/trash/bin, +/obj/machinery/light/small{ + dir = 8 + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/upper) "ivU" = ( /obj/structure/table/wood, /obj/effect/turf_decal/bot, @@ -28092,7 +28272,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, -/obj/item/radio/intercom/directional/west, +/obj/machinery/requests_console/auto_name/directional/west, /turf/open/floor/iron/dark, /area/station/science/genetics) "ixA" = ( @@ -28183,6 +28363,9 @@ dir = 1 }, /obj/machinery/camera/directional/north, +/obj/item/construction/rcd/loaded, +/obj/item/construction/rld, +/obj/item/construction/rtd/loaded, /turf/open/floor/iron, /area/station/engineering/hallway) "iyn" = ( @@ -28381,6 +28564,12 @@ "iAK" = ( /turf/closed/wall, /area/station/cargo/storage) +"iAT" = ( +/obj/effect/spawner/random/maintenance, +/obj/effect/decal/cleanable/dirt, +/obj/effect/landmark/start/hangover, +/turf/open/floor/plating, +/area/station/maintenance/starboard/upper) "iBg" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 6 @@ -28571,6 +28760,11 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/atmos/storage/gas) +"iEh" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "iEo" = ( /obj/item/coin, /obj/structure/chair/stool/directional/north, @@ -28905,8 +29099,8 @@ /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) "iKh" = ( -/obj/effect/turf_decal/bot, -/obj/effect/spawner/random/structure/crate_empty, +/obj/effect/spawner/random/trash/grille_or_waste, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "iKx" = ( @@ -29046,6 +29240,7 @@ dir = 4 }, /obj/item/clothing/shoes/galoshes, +/obj/machinery/requests_console/auto_name/directional/south, /turf/open/floor/iron, /area/station/service/janitor) "iLX" = ( @@ -29081,6 +29276,9 @@ /obj/structure/extinguisher_cabinet/directional/north, /obj/effect/spawner/random/trash/food_packaging, /obj/effect/spawner/random/maintenance/three, +/obj/item/clothing/gloves/color/fyellow, +/obj/effect/spawner/random/engineering/material, +/obj/effect/spawner/random/structure/closet_maintenance, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "iMB" = ( @@ -29162,6 +29360,10 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/hop) +"iNt" = ( +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/solars/port/aft) "iNu" = ( /obj/structure/window/reinforced/spawner/directional/north, /obj/effect/turf_decal/stripes, @@ -29392,6 +29594,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/command/heads_quarters/ce) +"iQS" = ( +/obj/effect/spawner/random/maintenance, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/upper) "iQV" = ( /obj/structure/window/spawner/directional/north, /obj/structure/table/wood, @@ -29923,6 +30130,10 @@ }, /turf/open/floor/plating, /area/station/engineering/break_room) +"jal" = ( +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/upper) "jau" = ( /obj/effect/turf_decal/trimline/red/filled/corner, /obj/effect/turf_decal/tile/neutral/anticorner{ @@ -30422,10 +30633,12 @@ /turf/open/floor/carpet/green, /area/station/maintenance/department/medical) "jgK" = ( +/obj/structure/closet/emcloset, +/obj/effect/turf_decal/bot, /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/structure/closet/emcloset, +/obj/effect/spawner/random/maintenance/three, /turf/open/floor/plating, /area/station/maintenance/starboard/upper) "jgL" = ( @@ -31344,6 +31557,9 @@ /obj/effect/turf_decal/stripes, /obj/effect/spawner/random/clothing/wardrobe_closet, /obj/item/radio/intercom/directional/north, +/obj/effect/spawner/random/clothing/beret_or_rabbitears, +/obj/effect/spawner/random/clothing/costume, +/obj/effect/spawner/random/clothing/twentyfive_percent_cyborg_mask, /turf/open/floor/plating, /area/station/maintenance/starboard/upper) "jwo" = ( @@ -31523,6 +31739,7 @@ pixel_x = -6; pixel_y = 6 }, +/obj/effect/spawner/random/engineering/flashlight, /turf/open/floor/plating, /area/station/maintenance/starboard/lesser) "jyZ" = ( @@ -32185,11 +32402,11 @@ /turf/open/floor/carpet, /area/station/command/meeting_room/council) "jIs" = ( -/obj/machinery/door/airlock{ - name = "Empty Room" - }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/structure/barricade/wooden, +/obj/machinery/door/airlock{ + name = "Abandoned Room" + }, /turf/open/floor/plating, /area/station/maintenance/starboard/upper) "jIu" = ( @@ -32489,6 +32706,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/effect/spawner/random/medical/medkit, /turf/open/floor/iron, /area/station/maintenance/department/medical) "jNv" = ( @@ -32544,6 +32762,10 @@ /obj/effect/spawner/random/decoration/paint, /turf/open/floor/plating, /area/station/maintenance/starboard/upper) +"jOI" = ( +/obj/effect/decal/cleanable/blood/old, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "jOO" = ( /obj/machinery/porta_turret/ai{ dir = 4 @@ -34010,6 +34232,7 @@ /area/station/service/hydroponics/garden) "klk" = ( /obj/effect/spawner/random/maintenance/three, +/obj/effect/decal/cleanable/dirt/dust, /turf/open/floor/plating, /area/station/maintenance/solars/port/aft) "klC" = ( @@ -34153,6 +34376,7 @@ /obj/machinery/power/apc/auto_name/directional/west, /obj/structure/disposalpipe/junction/flip, /obj/structure/cable, +/obj/item/paint/paint_remover, /turf/open/floor/iron, /area/station/maintenance/disposal) "knm" = ( @@ -34481,6 +34705,11 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security/processing) +"ksE" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "ksF" = ( /turf/closed/wall, /area/station/science/explab) @@ -34601,6 +34830,12 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/dark, /area/station/science/ordnance) +"kum" = ( +/obj/structure/extinguisher_cabinet/directional/west, +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/upper) "kuv" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -34678,6 +34913,7 @@ /obj/effect/turf_decal/bot_red, /obj/structure/sign/poster/official/carwo_grenade/directional/north, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/machinery/requests_console/auto_name/directional/east, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/blueshield) "kvE" = ( @@ -34926,11 +35162,27 @@ /turf/open/floor/iron, /area/station/security/range) "kAa" = ( -/obj/effect/decal/cleanable/cobweb, -/obj/effect/decal/cleanable/dirt, -/obj/effect/landmark/start/hangover, -/turf/open/floor/plating/rust, -/area/station/maintenance/starboard/aft) +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/stack/sheet/glass/fifty, +/obj/structure/closet/crate/engineering/electrical, +/obj/effect/decal/cleanable/dirt/dust, +/turf/open/floor/plating, +/area/station/maintenance/solars/port/aft) "kAc" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 1 @@ -36503,6 +36755,12 @@ }, /turf/open/floor/plating/airless, /area/station/science/ordnance/bomb) +"kWs" = ( +/obj/effect/decal/cleanable/dirt, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) "kWz" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -37186,6 +37444,10 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/maintenance/port/fore) +"lex" = ( +/obj/machinery/portable_atmospherics/canister/air, +/turf/open/floor/plating, +/area/station/maintenance/starboard/upper) "leC" = ( /obj/effect/turf_decal/trimline/blue/filled/line{ dir = 6 @@ -37624,6 +37886,11 @@ /obj/machinery/gibber, /turf/open/floor/iron/freezer, /area/station/service/kitchen/coldroom) +"llp" = ( +/obj/effect/turf_decal/tile/blue/half, +/obj/machinery/requests_console/auto_name/directional/south, +/turf/open/floor/iron/white/textured_edge, +/area/station/medical/medbay/central) "llw" = ( /obj/machinery/disposal/bin, /obj/effect/turf_decal/bot, @@ -38582,6 +38849,7 @@ /area/station/science/explab) "lxC" = ( /obj/machinery/iv_drip, +/obj/effect/spawner/random/medical/medkit, /turf/open/floor/plating, /area/station/medical/abandoned) "lxR" = ( @@ -38735,6 +39003,7 @@ }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/requests_console/auto_name/directional/east, /turf/open/floor/iron/white/textured, /area/station/hallway/primary/upper) "lzo" = ( @@ -38852,6 +39121,7 @@ "lBj" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/cable, +/obj/effect/spawner/random/engineering/flashlight, /turf/open/floor/plating, /area/station/maintenance/starboard/upper) "lBo" = ( @@ -39843,6 +40113,8 @@ /area/station/medical/pharmacy) "lQd" = ( /obj/structure/closet/emcloset, +/obj/effect/spawner/random/medical/medkit, +/obj/effect/spawner/random/medical/injector, /turf/open/floor/plating, /area/station/maintenance/department/medical) "lQf" = ( @@ -39898,7 +40170,6 @@ /obj/structure/railing/wood{ dir = 8 }, -/obj/machinery/camera/directional/east, /obj/structure/sink/kitchen/directional/north, /turf/open/floor/grass, /area/station/service/hydroponics/garden) @@ -39914,6 +40185,7 @@ name = "Forward Sci Maintenance" }, /obj/effect/decal/cleanable/dirt, +/obj/effect/mapping_helpers/airlock/abandoned, /turf/open/floor/iron, /area/station/maintenance/port/lesser) "lSo" = ( @@ -39995,7 +40267,7 @@ }, /obj/structure/cable, /obj/effect/turf_decal/tile/red/fourcorners, -/obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/effect/mapping_helpers/airlock/access/all/security/brig, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/disposalpipe/segment{ @@ -40097,6 +40369,11 @@ "lVw" = ( /turf/closed/wall, /area/station/service/hydroponics/upper) +"lVH" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/food_packaging, +/turf/open/floor/plating, +/area/station/maintenance/starboard/upper) "lVV" = ( /obj/effect/turf_decal/tile/neutral, /obj/effect/turf_decal/tile/neutral{ @@ -40767,7 +41044,6 @@ dir = 9 }, /obj/machinery/station_map/engineering/directional/north, -/obj/effect/turf_decal/bot_blue, /turf/open/floor/iron, /area/station/engineering/hallway) "mfE" = ( @@ -41241,6 +41517,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron, /area/station/command/heads_quarters/ce) +"mlE" = ( +/obj/effect/turf_decal/tile/dark{ + dir = 1 + }, +/obj/machinery/requests_console/auto_name/directional/south, +/turf/open/floor/iron/showroomfloor, +/area/station/commons/dorms/laundry) "mlH" = ( /obj/structure/closet/crate{ icon_state = "crateopen" @@ -41321,6 +41604,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/holopad/secure, /obj/structure/cable, +/obj/effect/landmark/start/blueshield, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/blueshield) "mmY" = ( @@ -41734,12 +42018,12 @@ /area/station/commons/dorms) "muo" = ( /obj/structure/cable, -/obj/machinery/door/airlock/maintenance{ - name = "Construction Area" - }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/mapping_helpers/airlock/access/any/service/general, +/obj/machinery/door/airlock/maintenance{ + name = "Starboard Bow Maintenance" + }, /turf/open/floor/plating, /area/station/maintenance/starboard/upper) "mus" = ( @@ -41924,6 +42208,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, +/obj/effect/spawner/random/medical/supplies, /turf/open/floor/plating, /area/station/maintenance/department/medical) "myY" = ( @@ -41952,6 +42237,11 @@ /obj/effect/spawner/random/trash/graffiti, /turf/open/floor/iron, /area/station/maintenance/port/fore) +"mzG" = ( +/obj/structure/lattice/catwalk, +/obj/item/stack/cable_coil/five, +/turf/open/space/basic, +/area/space/nearstation) "mzQ" = ( /obj/structure/table/reinforced, /obj/machinery/reagentgrinder{ @@ -42172,6 +42462,12 @@ pixel_x = 20; c_tag = "Engineering - SMES" }, +/obj/item/stack/sheet/glass/fifty, +/obj/item/stack/sheet/iron/fifty{ + pixel_y = 7 + }, +/obj/structure/rack, +/obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/station/engineering/main) "mCh" = ( @@ -42552,6 +42848,7 @@ "mIH" = ( /obj/effect/turf_decal/stripes, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/upper) "mIZ" = ( @@ -43063,6 +43360,10 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/cargo/warehouse) +"mRp" = ( +/obj/effect/spawner/random/maintenance, +/turf/open/floor/iron, +/area/station/maintenance/starboard/upper) "mRq" = ( /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 @@ -43499,6 +43800,9 @@ }, /obj/structure/cable, /obj/item/radio/intercom/command/directional/north, +/obj/item/clothing/mask/cigarette/pipe{ + pixel_x = -5 + }, /turf/open/floor/carpet/green, /area/station/command/heads_quarters/nt_rep) "mWY" = ( @@ -45083,6 +45387,7 @@ /obj/structure/cable, /obj/effect/landmark/start/clown, /obj/effect/landmark/start/clown, +/obj/machinery/requests_console/auto_name/directional/south, /turf/open/floor/eighties/red{ icon = 'goon/icons/turf/floors.dmi'; icon_state = "clown_carpet" @@ -45121,6 +45426,11 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/white, /area/station/science/lower) +"nxj" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/upper) "nxt" = ( /obj/structure/showcase/cyborg/old{ dir = 8; @@ -45272,20 +45582,14 @@ dir = 1 }, /obj/structure/table/wood/fancy/green, -/obj/item/statuebust{ - pixel_y = 18 - }, -/obj/item/reagent_containers/cup/glass/bottle/patron{ - pixel_y = 3; - pixel_x = -4 - }, -/obj/item/reagent_containers/cup/glass/drinkingglass/shotglass{ - pixel_x = 8; - pixel_y = 4 - }, /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/fax{ + fax_name = "Consultant's Office"; + name = "Consultant's Fax Machine"; + pixel_y = 3 + }, /turf/open/floor/wood/parquet, /area/station/command/heads_quarters/nt_rep) "nzr" = ( @@ -45423,6 +45727,7 @@ /obj/structure/cable, /obj/effect/spawner/random/structure/closet_maintenance, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/spawner/random/decoration/carpet, /turf/open/floor/iron, /area/station/maintenance/starboard/upper) "nAV" = ( @@ -45610,6 +45915,7 @@ /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 }, +/obj/effect/spawner/random/entertainment/money_small, /turf/open/floor/wood, /area/station/commons/dorms) "nEk" = ( @@ -45829,6 +46135,12 @@ "nIk" = ( /turf/closed/wall, /area/station/science/lower) +"nIm" = ( +/obj/structure/table, +/obj/item/plant_analyzer, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/starboard/upper) "nIs" = ( /obj/effect/turf_decal/tile/neutral/half{ dir = 1 @@ -45845,6 +46157,7 @@ }, /obj/item/reagent_containers/blood/random, /obj/item/reagent_containers/blood/random, +/obj/machinery/requests_console/auto_name/directional/north, /turf/open/floor/iron/showroomfloor, /area/station/medical/coldroom) "nIB" = ( @@ -45982,11 +46295,11 @@ /turf/open/floor/iron/dark, /area/station/engineering/gravity_generator) "nKw" = ( +/obj/effect/turf_decal/bot, +/obj/effect/landmark/start/hangover, /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/effect/turf_decal/bot, -/obj/effect/landmark/start/hangover, /turf/open/floor/iron, /area/station/maintenance/starboard/upper) "nKC" = ( @@ -46014,6 +46327,10 @@ }, /turf/open/floor/plating, /area/station/science/ordnance/testlab) +"nKU" = ( +/obj/effect/spawner/random/trash/moisture, +/turf/open/floor/plating, +/area/station/maintenance/starboard/upper) "nLa" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -46529,6 +46846,7 @@ dir = 1 }, /obj/machinery/camera/autoname/directional/north, +/obj/machinery/requests_console/auto_name/directional/north, /turf/open/floor/iron, /area/station/security/courtroom) "nTC" = ( @@ -46951,6 +47269,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/iron/white, /area/station/science/lower) +"oae" = ( +/obj/machinery/hydroponics/constructable, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/botanical_waste, +/turf/open/floor/plating, +/area/station/maintenance/starboard/upper) "oah" = ( /obj/structure/cable, /obj/structure/closet/emcloset/wall/directional/west, @@ -46959,9 +47284,15 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/exit/departure_lounge) +"oam" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/effect/landmark/start/hangover, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "oan" = ( /obj/effect/spawner/random/trash/mess, /obj/effect/spawner/random/structure/closet_maintenance, +/obj/item/lightreplacer, /turf/open/floor/plating, /area/station/maintenance/starboard/upper) "oaq" = ( @@ -47329,6 +47660,7 @@ dir = 8 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/requests_console/auto_name/directional/east, /turf/open/floor/iron/dark, /area/station/science/ordnance) "ofM" = ( @@ -47341,8 +47673,8 @@ "ofS" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/effect/decal/cleanable/cobweb/cobweb2, -/obj/effect/spawner/random/engineering/canister, /obj/effect/turf_decal/bot, +/obj/machinery/portable_atmospherics/canister/air, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "ofY" = ( @@ -47521,6 +47853,7 @@ dir = 8 }, /obj/effect/turf_decal/bot, +/obj/machinery/requests_console/auto_name/directional/west, /turf/open/floor/iron, /area/station/security/office) "ojh" = ( @@ -47545,6 +47878,7 @@ /obj/machinery/airalarm/directional/north, /mob/living/basic/parrot/poly, /obj/machinery/camera/directional/east, +/obj/item/construction/rcd/ce, /turf/open/floor/wood, /area/station/command/heads_quarters/ce) "ojM" = ( @@ -47688,6 +48022,7 @@ dir = 8 }, /obj/structure/bed/medical, +/obj/item/pillow, /turf/open/floor/iron/white/textured_edge{ dir = 8 }, @@ -47972,7 +48307,8 @@ /obj/machinery/button/door/directional/east{ pixel_x = -17; pixel_y = 30; - name = "Captain Office Shutters" + name = "Captain Office Shutters"; + id = "cap" }, /turf/open/floor/carpet, /area/station/command/heads_quarters/captain/private) @@ -48038,6 +48374,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, +/obj/effect/landmark/start/blueshield, /turf/open/floor/carpet/royalblue, /area/station/command/heads_quarters/blueshield) "org" = ( @@ -48693,6 +49030,7 @@ dir = 8 }, /obj/effect/turf_decal/bot, +/obj/machinery/requests_console/auto_name/directional/east, /turf/open/floor/iron/grimy, /area/station/hallway/secondary/service) "oAE" = ( @@ -48903,6 +49241,11 @@ /obj/effect/turf_decal/stripes/box, /turf/open/floor/iron/white/textured, /area/station/hallway/primary/upper) +"oDM" = ( +/obj/effect/decal/cleanable/dirt, +/obj/item/wrench, +/turf/open/floor/plating, +/area/station/maintenance/port/lesser) "oDR" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/spawner/random/trash/garbage, @@ -49475,6 +49818,13 @@ /obj/effect/decal/cleanable/cobweb/cobweb2, /obj/structure/extinguisher_cabinet/directional/north, /obj/machinery/light/small/red/dim/directional/north, +/obj/item/stack/sheet/iron/twenty, +/obj/item/stack/sheet/glass/fifty{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/structure/rack, +/obj/effect/spawner/random/engineering/material, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "oNA" = ( @@ -49776,26 +50126,8 @@ /turf/open/floor/iron/dark, /area/station/security/interrogation) "oSE" = ( -/obj/structure/closet/secure_closet/personal/cabinet, -/obj/item/modular_computer/laptop/preset/civilian{ - pixel_y = 3; - pixel_x = 6 - }, -/obj/item/clothing/mask/cigarette/pipe{ - pixel_x = -5 - }, -/obj/item/clothing/suit/armor/centcom_formal, -/obj/item/clothing/glasses/sunglasses, -/obj/item/clothing/head/hats/centhat, -/obj/item/clothing/head/hats/centcom_cap, -/obj/item/clothing/under/rank/centcom/centcom_skirt, -/obj/item/clothing/under/rank/centcom/commander, -/obj/item/clothing/under/rank/centcom/intern, -/obj/item/clothing/under/rank/centcom/officer_skirt, -/obj/item/clothing/under/rank/centcom/officer, -/obj/item/clothing/accessory/medal/gold/ordom, -/obj/item/clothing/accessory/medal/silver/bureaucracy, /obj/machinery/light/warm/directional/south, +/obj/structure/closet/secure_closet/nanotrasen_representative, /turf/open/floor/carpet/green, /area/station/command/heads_quarters/nt_rep) "oSI" = ( @@ -49853,6 +50185,7 @@ pixel_y = -4 }, /obj/structure/table/reinforced, +/obj/machinery/requests_console/auto_name/directional/north, /turf/open/floor/iron/white, /area/station/medical/pharmacy) "oTy" = ( @@ -50404,6 +50737,7 @@ /obj/structure/cable, /obj/effect/spawner/random/medical/patient_stretcher, /obj/machinery/camera/autoname/directional/west, +/obj/effect/spawner/random/medical/injector, /turf/open/floor/plating, /area/station/maintenance/department/medical) "pei" = ( @@ -50599,6 +50933,7 @@ }, /obj/item/kirbyplants/random, /obj/machinery/light/directional/east, +/obj/machinery/airalarm/directional/east, /turf/open/floor/wood, /area/station/command/heads_quarters/captain/private) "phd" = ( @@ -50708,6 +51043,12 @@ /obj/structure/extinguisher_cabinet/directional/north, /turf/open/floor/iron/white, /area/station/science/genetics) +"piB" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/closet/cardboard, +/obj/effect/spawner/random/maintenance/three, +/turf/open/floor/iron/smooth, +/area/station/maintenance/port/lesser) "piD" = ( /obj/structure/punching_bag, /obj/effect/turf_decal/bot, @@ -51576,6 +51917,7 @@ "pwU" = ( /obj/effect/mapping_helpers/broken_floor, /obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/engineering/material, /turf/open/floor/wood, /area/station/maintenance/port/lesser) "pwZ" = ( @@ -51993,6 +52335,11 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/plating, /area/station/commons/dorms) +"pFw" = ( +/obj/structure/trash_pile, +/obj/item/lightreplacer, +/turf/open/floor/plating, +/area/station/maintenance/department/medical) "pFx" = ( /obj/item/stack/package_wrap{ pixel_y = -5; @@ -52231,6 +52578,12 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) +"pIE" = ( +/obj/structure/table, +/obj/item/storage/bag/plants/portaseeder, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/upper) "pIQ" = ( /obj/structure/table/wood, /obj/item/book/manual/wiki/barman_recipes{ @@ -52264,6 +52617,7 @@ }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/requests_console/auto_name/directional/south, /turf/open/floor/iron, /area/station/command/bridge) "pIW" = ( @@ -52390,6 +52744,12 @@ }, /turf/open/floor/wood, /area/station/command/heads_quarters/captain/private) +"pKw" = ( +/obj/effect/decal/cleanable/dirt/dust, +/obj/machinery/light/small/red/directional/north, +/obj/effect/spawner/random/engineering/tank, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "pKK" = ( /obj/machinery/portable_atmospherics/canister, /obj/machinery/atmospherics/components/unary/portables_connector/visible{ @@ -53007,6 +53367,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/camera/directional/north, +/obj/machinery/requests_console/auto_name/directional/north, /turf/open/floor/iron/dark, /area/station/science/explab) "pUO" = ( @@ -53815,10 +54176,6 @@ pixel_x = -5; pixel_y = 3 }, -/obj/item/stamp/centcom{ - pixel_x = 5; - pixel_y = 7 - }, /obj/item/pen{ pixel_x = 4; pixel_y = -4 @@ -54119,6 +54476,19 @@ /obj/machinery/camera/directional/north, /turf/open/floor/plating, /area/station/engineering/supermatter/room) +"qit" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/item/pen/fountain{ + pixel_x = 8; + pixel_y = 8 + }, +/obj/item/paper{ + name = "my last will and testament"; + default_raw_text = "if you are reading this, that means i have died during the construction of this abomination against mankind. i leave behind all my material wealth to my dog brian and i part this plane of existence with these words of wisdom: do no take contract work from nanotrasen they don't give you health benefits" + }, +/turf/open/floor/iron/smooth, +/area/station/maintenance/port/lesser) "qiv" = ( /obj/item/radio/intercom/directional/east, /obj/structure/cable, @@ -54178,6 +54548,7 @@ dir = 10 }, /obj/machinery/airalarm/directional/south, +/obj/machinery/requests_console/auto_name/directional/west, /turf/open/floor/iron/white/textured, /area/station/medical/surgery/theatre) "qjh" = ( @@ -54506,6 +54877,11 @@ icon_state = "crateopen" }, /obj/machinery/airalarm/directional/south, +/obj/item/stack/sheet/iron/twenty, +/obj/item/stack/sheet/glass/fifty{ + pixel_x = 3; + pixel_y = 3 + }, /turf/open/floor/iron, /area/station/cargo/warehouse) "qng" = ( @@ -54729,6 +55105,7 @@ "qrA" = ( /obj/effect/turf_decal/bot, /obj/structure/closet/firecloset/full, +/obj/effect/spawner/random/maintenance/three, /turf/open/floor/plating, /area/station/maintenance/starboard/upper) "qrE" = ( @@ -56040,6 +56417,7 @@ /obj/effect/turf_decal/trimline/red/filled/line{ dir = 1 }, +/obj/machinery/requests_console/auto_name/directional/north, /turf/open/floor/iron/dark, /area/station/security/checkpoint/science) "qKV" = ( @@ -56333,6 +56711,7 @@ }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/requests_console/auto_name/directional/east, /turf/open/floor/iron/white/textured, /area/station/science/cytology) "qPq" = ( @@ -56429,12 +56808,9 @@ /turf/open/floor/iron/freezer, /area/station/service/kitchen/coldroom) "qQs" = ( -/obj/machinery/door/window/brigdoor/right/directional/north{ - id = "Cell 4"; - name = "Cell 4"; - dir = 4 +/obj/machinery/door/window/brigdoor/security/cell/left/directional/east{ + id = "Cell 4" }, -/obj/effect/mapping_helpers/airlock/access/all/security/general, /obj/effect/turf_decal/tile/red/fourcorners, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -56994,6 +57370,11 @@ }, /turf/open/floor/iron/dark, /area/station/science/xenobiology) +"qYG" = ( +/obj/structure/table/wood/fancy/black, +/obj/effect/spawner/random/maintenance/three, +/turf/open/floor/plating, +/area/station/maintenance/port/fore) "qYN" = ( /obj/machinery/cryopod{ dir = 8 @@ -57286,10 +57667,10 @@ /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/door/airlock{ - name = "Empty Room" - }, /obj/effect/mapping_helpers/airlock/access/any/service/hydroponics, +/obj/machinery/door/airlock/hydroponics/glass{ + name = "Hydroponics" + }, /turf/open/floor/plating, /area/station/service/hydroponics) "rdR" = ( @@ -58677,6 +59058,7 @@ "rxE" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable, +/obj/effect/landmark/start/blueshield, /turf/open/floor/wood, /area/station/command/heads_quarters/blueshield) "rxK" = ( @@ -58887,12 +59269,9 @@ /turf/open/floor/carpet/green, /area/station/medical/psychology) "rAG" = ( -/obj/machinery/door/morgue{ - name = "Private Study"; - req_access = list("library") - }, -/turf/open/space/basic, -/area/space) +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron/smooth, +/area/station/maintenance/port/lesser) "rAH" = ( /obj/effect/turf_decal/tile/dark{ dir = 1 @@ -59183,6 +59562,12 @@ }, /turf/open/space/basic, /area/space/nearstation) +"rFm" = ( +/obj/effect/spawner/random/engineering/atmospherics_portable, +/obj/effect/turf_decal/bot, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "rFq" = ( /obj/structure/table, /obj/item/storage/toolbox/mechanical{ @@ -59685,10 +60070,9 @@ /turf/open/floor/plating, /area/station/maintenance/port/lesser) "rLn" = ( -/obj/effect/spawner/structure/window, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/plating, +/turf/closed/wall, /area/station/medical/storage) "rLy" = ( /obj/structure/disposalpipe/segment{ @@ -60235,6 +60619,8 @@ /area/station/science/genetics) "rVb" = ( /obj/effect/spawner/random/structure/closet_maintenance, +/obj/effect/spawner/random/engineering/vending_restock, +/obj/effect/spawner/random/entertainment/cigarette_pack, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "rVd" = ( @@ -60348,9 +60734,7 @@ /turf/open/floor/iron/dark, /area/station/security/prison/safe) "rWs" = ( -/obj/effect/spawner/random/structure/crate_loot, -/obj/effect/turf_decal/bot, -/obj/effect/spawner/random/maintenance, +/obj/structure/cable, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "rWK" = ( @@ -60371,6 +60755,7 @@ /obj/item/toy/figure/warden{ pixel_y = 3 }, +/obj/machinery/requests_console/auto_name/directional/south, /turf/open/floor/iron/dark, /area/station/security/warden) "rXb" = ( @@ -60399,6 +60784,7 @@ /obj/structure/table/wood, /obj/effect/decal/cleanable/blood, /obj/structure/sign/poster/contraband/clown/directional/east, +/obj/effect/spawner/random/entertainment/money_small, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "rXf" = ( @@ -60816,6 +61202,7 @@ }, /obj/effect/landmark/start/assistant, /obj/structure/sign/poster/official/no_erp/directional/north, +/obj/effect/spawner/random/entertainment/money_medium, /turf/open/floor/carpet/red, /area/station/commons/dorms) "sez" = ( @@ -61009,6 +61396,7 @@ "sha" = ( /obj/structure/sign/poster/official/random/directional/north, /obj/effect/spawner/random/structure/closet_maintenance, +/obj/effect/spawner/random/maintenance/three, /turf/open/floor/plating, /area/station/maintenance/department/medical) "shp" = ( @@ -61607,9 +61995,6 @@ /area/station/engineering/lobby) "srG" = ( /obj/structure/reagent_dispensers/fueltank, -/obj/effect/turf_decal/stripes/line{ - dir = 8 - }, /obj/effect/turf_decal/bot, /obj/machinery/firealarm/directional/west{ pixel_y = 3 @@ -61617,6 +62002,9 @@ /obj/machinery/light_switch/directional/west{ pixel_y = -6 }, +/obj/effect/turf_decal/stripes/line{ + dir = 8 + }, /turf/open/floor/iron/dark, /area/station/ai_monitored/command/storage/eva) "srI" = ( @@ -61822,6 +62210,7 @@ "svf" = ( /obj/effect/turf_decal/bot, /obj/item/mcobject/teleporter, +/obj/machinery/requests_console/auto_name/directional/north, /turf/open/floor/iron/grimy, /area/station/service/library) "svn" = ( @@ -62069,6 +62458,12 @@ }, /turf/open/floor/wood, /area/station/service/library) +"szD" = ( +/obj/effect/decal/cleanable/dirt, +/obj/structure/table, +/obj/effect/spawner/random/trash/food_packaging, +/turf/open/floor/iron/smooth, +/area/station/maintenance/port/lesser) "szE" = ( /obj/machinery/portable_atmospherics/scrubber, /obj/effect/turf_decal/bot, @@ -62309,8 +62704,9 @@ /obj/machinery/door/airlock/bathroom{ name = "Restroom" }, -/obj/effect/mapping_helpers/airlock/access/all/command/captain, /obj/machinery/duct, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, /turf/open/floor/wood/parquet, /area/station/command/heads_quarters/nt_rep) "sCg" = ( @@ -62581,6 +62977,11 @@ "sFT" = ( /turf/closed/wall/r_wall, /area/station/cargo/warehouse) +"sGb" = ( +/obj/effect/decal/cleanable/cobweb/cobweb2, +/obj/structure/reagent_dispensers/watertank/high, +/turf/open/floor/plating, +/area/station/maintenance/starboard/upper) "sGq" = ( /obj/structure/railing/wood{ dir = 1 @@ -62705,6 +63106,8 @@ "sHW" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/spawner/random/decoration/paint, +/obj/structure/rack, +/obj/item/wirecutters, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) "sHY" = ( @@ -63270,6 +63673,10 @@ }, /turf/open/floor/iron, /area/station/security/courtroom) +"sSq" = ( +/obj/item/wrench, +/turf/open/floor/plating, +/area/station/maintenance/port/lesser) "sSD" = ( /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/plating, @@ -64010,6 +64417,12 @@ }, /turf/open/floor/iron, /area/station/cargo/miningoffice) +"tdt" = ( +/obj/structure/table, +/obj/item/clothing/gloves/color/fyellow, +/obj/effect/spawner/random/maintenance, +/turf/open/floor/plating, +/area/station/maintenance/port/lesser) "tdA" = ( /obj/effect/spawner/random/trash/graffiti, /obj/effect/decal/cleanable/dirt, @@ -64478,6 +64891,12 @@ /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 4 }, +/obj/structure/closet/secure_closet/engineering_personal, +/obj/effect/turf_decal/bot, +/obj/item/clothing/glasses/meson/engine, +/obj/item/construction/rcd/loaded, +/obj/item/construction/rld, +/obj/item/construction/rtd/loaded, /turf/open/floor/iron, /area/station/engineering/hallway) "tju" = ( @@ -64625,7 +65044,7 @@ pixel_y = 9 }, /obj/item/storage/box/lipsticks{ - pixel_x = -12; + pixel_x = -10; pixel_y = 3 }, /turf/open/floor/iron/showroomfloor, @@ -65198,6 +65617,7 @@ /obj/machinery/light/directional/north, /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk, +/obj/machinery/requests_console/auto_name/directional/north, /turf/open/floor/iron/dark/corner{ dir = 8 }, @@ -65404,6 +65824,11 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron, /area/station/hallway/primary/central) +"tvW" = ( +/obj/effect/spawner/random/maintenance/two, +/obj/effect/spawner/random/engineering/tool, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "twg" = ( /obj/effect/turf_decal/stripes/line{ dir = 10 @@ -65561,6 +65986,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/hallway/primary/central) +"tyc" = ( +/obj/effect/spawner/random/engineering/material, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "tyf" = ( /obj/machinery/computer/security/mining, /obj/effect/turf_decal/bot, @@ -65823,10 +66252,10 @@ /area/station/security/brig) "tBl" = ( /obj/machinery/portable_atmospherics/canister/air, +/obj/effect/turf_decal/bot, /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/effect/turf_decal/bot, /turf/open/floor/iron, /area/station/maintenance/starboard/upper) "tBp" = ( @@ -66176,6 +66605,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/medical/surgery/theatre) +"tIw" = ( +/obj/machinery/door/airlock/maintenance{ + name = "Starboard Bow Maintenance" + }, +/turf/open/floor/plating, +/area/station/maintenance/starboard/upper) "tID" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/effect/spawner/random/trash/moisture, @@ -66969,6 +67404,30 @@ /obj/machinery/light/warm/directional/north, /turf/open/floor/iron/smooth, /area/station/maintenance/disposal/incinerator) +"tTC" = ( +/obj/structure/cable, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/solar_assembly, +/obj/item/stack/sheet/glass/fifty, +/obj/structure/closet/crate/engineering/electrical, +/obj/effect/decal/cleanable/dirt, +/obj/machinery/light/small/directional/north, +/turf/open/floor/plating, +/area/station/maintenance/solars/port/fore) "tTJ" = ( /obj/machinery/door/airlock/engineering{ name = "Break Room" @@ -67292,6 +67751,12 @@ /obj/structure/closet/firecloset/wall/directional/west, /turf/open/floor/plating, /area/station/maintenance/starboard/central) +"tXI" = ( +/obj/effect/spawner/random/structure/crate_empty, +/obj/effect/turf_decal/bot, +/obj/effect/spawner/random/engineering/tool, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "tXO" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -67344,6 +67809,7 @@ /obj/structure/disposalpipe/segment{ dir = 4 }, +/obj/machinery/requests_console/auto_name/directional/west, /turf/open/floor/wood/large, /area/station/smithing) "tYC" = ( @@ -67486,6 +67952,7 @@ /area/station/command/bridge) "uaK" = ( /obj/effect/turf_decal/bot, +/obj/effect/spawner/random/engineering/flashlight, /turf/open/floor/plating, /area/station/maintenance/starboard/central) "uaL" = ( @@ -68368,9 +68835,10 @@ /turf/open/floor/iron/stairs/right, /area/station/science/cytology) "uoA" = ( -/obj/machinery/light/small/directional/east, +/obj/structure/table, +/obj/item/radio/off, /turf/open/floor/plating, -/area/station/maintenance/starboard/upper) +/area/station/maintenance/port/lesser) "uoB" = ( /obj/effect/turf_decal/loading_area{ dir = 1 @@ -69166,14 +69634,14 @@ pixel_y = 8 }, /obj/effect/spawner/random/food_or_drink/cups, +/obj/machinery/requests_console/auto_name/directional/east, /turf/open/floor/iron, /area/station/service/bar) "uzj" = ( -/obj/machinery/rnd/production/techfab/department/security, -/obj/effect/turf_decal/bot, /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, /obj/machinery/light/directional/north, +/obj/item/kirbyplants/random, /turf/open/floor/iron/grimy, /area/station/security/office) "uzm" = ( @@ -69270,10 +69738,10 @@ /turf/closed/wall/r_wall, /area/station/hallway/secondary/entry) "uBx" = ( -/obj/effect/spawner/random/trash/bin, /obj/effect/spawner/random/trash/graffiti{ pixel_x = 32 }, +/obj/effect/decal/cleanable/dirt, /turf/open/floor/plating, /area/station/maintenance/starboard/upper) "uBD" = ( @@ -69458,16 +69926,14 @@ pixel_x = 10; pixel_y = 2 }, +/obj/machinery/requests_console/auto_name/directional/north, /turf/open/floor/iron/dark/side, /area/station/science/circuits) "uDT" = ( -/obj/effect/spawner/structure/window/reinforced, -/obj/machinery/door/poddoor/preopen{ - id = "Safety" - }, -/obj/structure/cable, -/turf/open/floor/plating, -/area/station/command/heads_quarters/captain/private) +/obj/structure/lattice/catwalk, +/obj/structure/transit_tube/crossing, +/turf/open/space/basic, +/area/space/nearstation) "uDW" = ( /obj/structure/bodycontainer/morgue, /obj/effect/turf_decal/tile/neutral/full, @@ -69634,7 +70100,7 @@ pixel_x = 4 }, /obj/structure/sign/warning/gas_mask/directional/south, -/obj/item/radio/intercom/directional/east, +/obj/machinery/requests_console/auto_name/directional/east, /turf/open/floor/iron/dark, /area/station/science/ordnance/office) "uGL" = ( @@ -70138,6 +70604,7 @@ /obj/machinery/camera/directional/east, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2, /obj/effect/spawner/random/maintenance, +/obj/item/stack/cable_coil, /turf/open/floor/plating, /area/station/maintenance/solars/port/fore) "uNj" = ( @@ -70387,6 +70854,12 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/port/fore) +"uQN" = ( +/obj/machinery/suit_storage_unit/standard_unit, +/obj/effect/turf_decal/bot, +/obj/machinery/requests_console/auto_name/directional/west, +/turf/open/floor/iron/white, +/area/station/science/explab) "uRb" = ( /obj/machinery/atmospherics/components/unary/vent_pump/high_volume/siphon/monitored/air_output, /turf/open/floor/engine/air, @@ -70921,10 +71394,17 @@ /obj/item/clothing/suit/space/fragile, /obj/item/clothing/head/helmet/space/fragile, /obj/item/storage/belt/utility, +/obj/effect/spawner/random/engineering/toolbox, +/obj/effect/spawner/random/engineering/material, /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/effect/spawner/random/engineering/toolbox, +/turf/open/floor/iron, +/area/station/maintenance/starboard/upper) +"uZd" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/spawner/random/trash/botanical_waste, +/obj/effect/spawner/random/trash/moisture_trap, /turf/open/floor/iron, /area/station/maintenance/starboard/upper) "uZo" = ( @@ -71042,6 +71522,7 @@ /obj/machinery/camera/directional/west{ network = list("theater") }, +/obj/machinery/requests_console/auto_name/directional/west, /turf/open/floor/iron, /area/station/engineering/storage) "vbg" = ( @@ -71642,6 +72123,11 @@ }, /turf/open/floor/iron, /area/station/hallway/primary/central/fore) +"vjG" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/dirt, +/turf/open/floor/iron, +/area/station/maintenance/starboard/upper) "vjL" = ( /obj/effect/turf_decal/delivery, /obj/effect/turf_decal/stripes{ @@ -71703,6 +72189,7 @@ "vkw" = ( /obj/effect/spawner/random/medical/patient_stretcher, /obj/effect/spawner/random/medical/surgery_tool, +/obj/effect/spawner/random/medical/memeorgans, /turf/open/floor/iron/white, /area/station/medical/abandoned) "vkx" = ( @@ -72303,6 +72790,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/maintenance/starboard/aft) +"vun" = ( +/obj/machinery/door/airlock/maintenance_hatch{ + name = "Maintenance Hatch" + }, +/obj/effect/mapping_helpers/airlock/welded, +/turf/open/floor/plating, +/area/station/maintenance/port/lesser) "vuo" = ( /obj/effect/turf_decal/stripes/line, /obj/structure/disposalpipe/segment{ @@ -72562,7 +73056,8 @@ /obj/machinery/door/airlock/corporate{ name = "Representative's Office" }, -/obj/effect/mapping_helpers/airlock/access/all/command/general, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, /turf/open/floor/wood/parquet, /area/station/command/heads_quarters/nt_rep) "vxI" = ( @@ -72596,6 +73091,7 @@ /obj/effect/spawner/random/engineering/material_cheap, /obj/effect/spawner/random/decoration/material, /obj/item/radio/intercom/directional/north, +/obj/effect/spawner/random/engineering/material, /turf/open/floor/plating, /area/station/maintenance/starboard/upper) "vys" = ( @@ -74399,6 +74895,9 @@ "vZE" = ( /obj/effect/turf_decal/stripes, /obj/effect/spawner/random/clothing/wardrobe_closet, +/obj/effect/spawner/random/clothing/bowler_or_that, +/obj/effect/spawner/random/clothing/kittyears_or_rabbitears, +/obj/effect/spawner/random/clothing/backpack, /turf/open/floor/plating, /area/station/maintenance/starboard/upper) "wak" = ( @@ -74517,6 +75016,7 @@ /obj/effect/decal/cleanable/dirt, /obj/effect/spawner/random/structure/closet_maintenance, /obj/item/storage/box/lights/tubes, +/obj/effect/spawner/random/medical/medkit, /turf/open/floor/iron, /area/station/maintenance/department/medical) "wct" = ( @@ -76203,6 +76703,14 @@ dir = 4 }, /area/station/service/chapel) +"wGD" = ( +/obj/structure/sink/directional/west, +/obj/effect/turf_decal/loading_area{ + dir = 8 + }, +/obj/structure/sign/poster/official/random/directional/east, +/turf/open/floor/plating, +/area/station/maintenance/starboard/upper) "wGG" = ( /obj/machinery/door/poddoor/preopen{ id = "brigfront"; @@ -76614,6 +77122,7 @@ /area/station/cargo/storage) "wLA" = ( /obj/structure/closet/secure_closet/freezer/kitchen, +/obj/machinery/requests_console/auto_name/directional/north, /turf/open/floor/iron/kitchen, /area/station/service/kitchen) "wLC" = ( @@ -76762,6 +77271,7 @@ /obj/effect/turf_decal/trimline/yellow/filled/line, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/requests_console/auto_name/directional/south, /turf/open/floor/iron, /area/station/engineering/hallway) "wNn" = ( @@ -77078,16 +77588,13 @@ /turf/open/floor/plating, /area/station/maintenance/port/lesser) "wRn" = ( -/obj/structure/chair/comfy/brown{ - color = "#c45c57"; - desc = "Remarkably soft, with plush cozy cushions, premium memory-foam and covered in stain-resistant fabric. Made by Kat-Kea???!"; - dir = 8; - name = "Premium Cozy Chair" - }, -/obj/structure/window/spawner/directional/east, /obj/item/storage/secure/safe/directional/north, /obj/structure/cable, -/turf/open/floor/carpet/green, +/obj/machinery/modular_computer/preset/command{ + dir = 4 + }, +/obj/structure/window/spawner/directional/west, +/turf/open/floor/wood/parquet, /area/station/command/heads_quarters/nt_rep) "wRq" = ( /obj/effect/turf_decal/tile/blue/half, @@ -77176,7 +77683,6 @@ dir = 4 }, /obj/structure/sign/poster/official/random/directional/north, -/obj/item/clothing/suit/space/hardsuit/hop, /turf/open/floor/iron/dark, /area/station/command/heads_quarters/hop) "wSi" = ( @@ -77246,6 +77752,7 @@ /area/station/commons/storage/primary) "wSL" = ( /obj/item/kirbyplants/random, +/obj/machinery/requests_console/auto_name/directional/south, /turf/open/floor/wood, /area/station/service/theater) "wSM" = ( @@ -77474,6 +77981,12 @@ /obj/structure/curtain/bounty, /turf/open/floor/plating, /area/station/security/detectives_office) +"wVk" = ( +/obj/effect/decal/cleanable/dirt, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/spawner/random/trash/hobo_squat, +/turf/open/floor/plating, +/area/station/maintenance/port/lesser) "wVl" = ( /obj/effect/decal/cleanable/dirt/dust, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ @@ -77555,10 +78068,6 @@ /obj/effect/turf_decal/siding/wood{ dir = 8 }, -/obj/machinery/button/door/directional/north{ - id = "qmprivacy"; - pixel_x = -6 - }, /turf/open/floor/carpet/red, /area/station/cargo/quartermaster) "wWY" = ( @@ -77789,6 +78298,18 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/plating, /area/station/maintenance/starboard/upper) +"xbz" = ( +/obj/structure/table, +/obj/item/reagent_containers/cup/watering_can{ + pixel_y = 15 + }, +/obj/item/reagent_containers/spray/plantbgone{ + pixel_x = 4; + pixel_y = 6 + }, +/obj/effect/spawner/random/food_or_drink/seed, +/turf/open/floor/plating, +/area/station/maintenance/starboard/upper) "xbJ" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -78619,10 +79140,11 @@ }, /area/station/service/hydroponics/garden) "xoe" = ( +/obj/machinery/portable_atmospherics/canister/oxygen, +/obj/effect/turf_decal/bot, /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/machinery/portable_atmospherics/canister/oxygen, /turf/open/floor/iron, /area/station/ai_monitored/command/storage/eva) "xof" = ( @@ -79514,6 +80036,12 @@ dir = 9 }, /area/station/security/courtroom) +"xAp" = ( +/obj/machinery/recharge_station, +/obj/effect/decal/cleanable/cobweb, +/obj/effect/turf_decal/bot, +/turf/open/floor/plating, +/area/station/maintenance/starboard/aft) "xAK" = ( /obj/machinery/disposal/bin, /obj/effect/turf_decal/bot, @@ -80217,12 +80745,8 @@ pixel_x = 16; pixel_y = 2 }, -/obj/machinery/button/curtain{ - pixel_y = 21; - pixel_x = -10; - id = "repcurtain" - }, /obj/structure/cable, +/obj/machinery/requests_console/auto_name/directional/north, /turf/open/floor/wood/parquet, /area/station/command/heads_quarters/nt_rep) "xNv" = ( @@ -81446,11 +81970,11 @@ /turf/open/floor/iron, /area/station/hallway/primary/central/fore) "ygt" = ( -/obj/machinery/airalarm/directional/west, /obj/item/radio/intercom/directional/south, /obj/machinery/computer/communications{ dir = 4 }, +/obj/machinery/requests_console/auto_name/directional/west, /turf/open/floor/carpet, /area/station/command/heads_quarters/captain/private) "ygE" = ( @@ -81517,7 +82041,7 @@ /obj/effect/turf_decal/trimline/red/filled/line{ dir = 9 }, -/obj/machinery/suit_storage_unit/open, +/obj/machinery/suit_storage_unit/security, /turf/open/floor/iron, /area/station/security/office) "yhk" = ( @@ -90363,13 +90887,13 @@ lXw lXw lXw lXw -nhC -nhC -nhC -nhC -nhC -nhC -nhC +euv +euv +euv +euv +euv +euv +lXw nhC nhC nhC @@ -90626,7 +91150,7 @@ nhC nhC nhC nhC -nhC +lXw nhC nhC nhC @@ -90883,7 +91407,7 @@ nhC nhC nhC nhC -nhC +euv nhC nhC nhC @@ -91140,8 +91664,8 @@ lXw lXw nhC nhC -nhC -nhC +euv +euv nhC nhC nhC @@ -91398,7 +91922,7 @@ lXw nhC nhC nhC -nhC +euv nhC nhC nhC @@ -91655,7 +92179,7 @@ jHe lXw lXw nhC -nhC +euv nhC nhC nhC @@ -91912,7 +92436,7 @@ nAj jHe nhC nhC -nhC +euv nhC nhC nhC @@ -92169,7 +92693,7 @@ jHe lXw lXw nhC -nhC +euv nhC nhC nhC @@ -92426,7 +92950,7 @@ lXw nhC nhC nhC -nhC +euv nhC nhC nhC @@ -92683,7 +93207,7 @@ jHe lXw lXw nhC -nhC +euv nhC nhC nhC @@ -92940,7 +93464,7 @@ nAj jHe nhC nhC -nhC +euv nhC nhC nhC @@ -93197,7 +93721,7 @@ jHe lXw lXw nhC -nhC +lXw nhC nhC nhC @@ -93454,7 +93978,7 @@ lXw nhC nhC nhC -nhC +euv nhC nhC nhC @@ -93711,7 +94235,7 @@ jHe lXw lXw nhC -nhC +euv nhC nhC nhC @@ -93968,7 +94492,7 @@ nAj jHe nhC nhC -nhC +euv nhC nhC nhC @@ -94225,7 +94749,7 @@ jHe lXw lXw nhC -nhC +euv nhC nhC nhC @@ -94482,7 +95006,7 @@ lXw nhC nhC nhC -nhC +euv nhC nhC nhC @@ -94739,7 +95263,7 @@ jHe lXw lXw nhC -nhC +euv nhC nhC nhC @@ -94996,7 +95520,7 @@ nAj jHe nhC nhC -nhC +lXw nhC nhC nhC @@ -95252,8 +95776,8 @@ jHe jHe lXw lXw -nhC -nhC +lXw +lXw nhC nhC nhC @@ -95510,7 +96034,7 @@ nhC nhC nhC nhC -nhC +euv nhC nhC nhC @@ -95762,6 +96286,12 @@ nhC lXw lXw nhC +sJw +sJw +lcu +lcu +sJw +sJw nhC nhC nhC @@ -95844,14 +96374,8 @@ nhC nhC nhC nhC -nhC -nhC -nhC -nhC -nhC -nhC -"} -(55,1,1) = {" +"} +(55,1,1) = {" nhC nhC nhC @@ -96015,15 +96539,15 @@ iCs iCs iCs nAj -iCs +mzG iCs lXw lXw sJw -sJw -sJw -sJw -sJw +kAa +aAP +kAa +dzz sJw nhC nhC @@ -96536,7 +97060,7 @@ pma jHi sLv sLv -sLv +iNt gKe sJw lXw @@ -97776,18 +98300,18 @@ nhC nhC nhC nhC -nhC -nhC -nhC -nhC -nhC -nhC -nhC -nhC -nhC -nhC -nhC -nhC +euv +euv +euv +euv +lXw +lXw +euv +euv +euv +euv +lXw +lXw lXw iCs iCs @@ -98033,7 +98557,7 @@ nhC nhC nhC nhC -nhC +euv nhC nhC nhC @@ -98290,14 +98814,14 @@ nhC nhC nhC nhC -nhC -nhC -nhC -nhC -nhC -nhC -nhC -nhC +euv +lXw +lXw +lXw +lXw +lXw +lXw +lXw lXw lXw lXw @@ -98547,7 +99071,7 @@ nhC nhC nhC nhC -nhC +lXw nhC nhC rzL @@ -98566,7 +99090,7 @@ rzL nmm nmm npt -oES +uQN uBi vWT sII @@ -98804,7 +99328,7 @@ nhC nhC nhC nhC -nhC +lXw nhC nhC xAd @@ -99057,11 +99581,11 @@ nhC nhC nhC nhC -nhC -nhC -nhC -nhC -nhC +lXw +lXw +lXw +lXw +lXw nhC nhC xAd @@ -99314,7 +99838,7 @@ nhC nhC nhC nhC -nhC +lXw nhC nhC nhC @@ -99571,12 +100095,12 @@ nhC nhC nhC nhC -nhC -nhC -nhC -nhC -nhC -nhC +lXw +rzL +rzL +xAd +xAd +rzL rzL jXU ndj @@ -99828,13 +100352,13 @@ nhC nhC nhC nhC -nhC -nhC -nhC -nhC -nhC -nhC rzL +rzL +nJA +nJA +sSq +tdt +ePW jXU lfl cdJ @@ -100085,13 +100609,13 @@ nhC nhC nhC nhC -nhC -nhC -nhC -nhC -nhC -nhC rzL +wVk +tBd +dzN +cRN +uoA +ePW jXU jXU rfW @@ -100342,13 +100866,13 @@ nhC nhC nhC nhC -nhC -nhC -nhC -nhC -nhC -nhC -xAd +rzL +tBd +tBd +rAG +rAG +qit +ePW nJA kJy kqL @@ -100552,7 +101076,7 @@ lXw nhC nhC nhC -lXw +aDp aDp xTU aDp @@ -100599,13 +101123,13 @@ nhC nhC nhC nhC -nhC -nhC -nhC -nhC -nhC -nhC -xAd +rzL +oDM +rAG +eDB +rAG +szD +ePW xrM jXU jXU @@ -100809,8 +101333,8 @@ nhC nhC nhC nhC -lXw aDp +tTC gTZ uGN jvh @@ -100856,13 +101380,13 @@ nhC nhC nhC nhC -nhC -nhC -nhC -nhC -nhC -nhC -xAd +rzL +piB +rAG +piB +rAG +rAG +gMT ndj ndj kxP @@ -101113,13 +101637,13 @@ nhC nhC nhC nhC -nhC -nhC -nhC -nhC -nhC -nhC rzL +piB +tBd +gmu +gpd +ePW +ePW jXU jXU tNN @@ -101370,13 +101894,13 @@ nhC nhC nhC nhC -nhC -nhC -nhC -rzL -rzL rzL rzL +vun +ePW +ePW +ePW +ePW ePW jXU aqx @@ -101616,9 +102140,7 @@ uuF euc lyY duh -uDT -nhC -nhC +dUC nhC nhC nhC @@ -101631,6 +102153,8 @@ nhC nhC nhC rzL +vuZ +ePW aJO unX cLY @@ -101873,9 +102397,7 @@ aKu xdC xdC gye -uDT -nhC -nhC +dUC nhC nhC nhC @@ -101888,6 +102410,8 @@ nhC nhC nhC rzL +rzL +rzL afJ oZD fLN @@ -102130,7 +102654,7 @@ qER mmS unI gFF -uDT +dUC nhC nhC nhC @@ -102920,7 +103444,7 @@ rjL tBd ePW vuZ -dzN +nJA nJA ePW hOO @@ -105545,7 +106069,7 @@ nhC nhC nhC nhC -nhC +lXw nhC nhC nhC @@ -105802,7 +106326,7 @@ nhC nhC nhC nhC -nhC +lXw nhC nhC nhC @@ -106059,7 +106583,7 @@ nhC nhC nhC nhC -nhC +lXw nhC nhC nhC @@ -106316,7 +106840,7 @@ nhC nhC nhC nhC -nhC +lXw nhC nhC nhC @@ -106573,7 +107097,7 @@ nhC nhC nhC nhC -nhC +lXw nhC nhC nhC @@ -106830,7 +107354,7 @@ nhC nhC nhC nhC -nhC +lXw nhC nhC nhC @@ -107087,7 +107611,7 @@ nhC nhC nhC nhC -nhC +lXw nhC nhC nhC @@ -107344,7 +107868,7 @@ nhC nhC nhC nhC -nhC +lXw nhC nhC nhC @@ -107601,7 +108125,7 @@ nhC nhC nhC nhC -nhC +lXw nhC nhC nhC @@ -107621,8 +108145,8 @@ lXw lXw lXw lXw -lXw -lXw +euv +euv nhC nhC nhC @@ -107858,8 +108382,8 @@ nhC nhC nhC nhC -nhC -nhC +lXw +lXw lXw lXw lXw @@ -107879,7 +108403,7 @@ nhC lXw nhC nhC -lXw +euv nhC nhC nhC @@ -108069,7 +108593,7 @@ prb bdp qmz ePW -ues +eFK ues jZd aCg @@ -108115,7 +108639,7 @@ nhC nhC nhC nhC -nhC +lXw nRq rwL rwL @@ -108277,7 +108801,7 @@ nbT eqb dzT smX -uHS +bRc xae tAQ tAQ @@ -108582,7 +109106,7 @@ xii lTe jUu nNA -nDZ +dnE eLT eLT jVj @@ -108899,7 +109423,7 @@ rfH snA snA rbW -pDI +pFw snA qae qae @@ -109936,7 +110460,7 @@ pgK rae rwL nhC -lXw +euv nhC nhC nhC @@ -110038,10 +110562,10 @@ ixS ixS bJS bJS -bJS -bJS -bJS -bJS +ixS +ixS +ixS +ixS ixS vxS mVa @@ -110193,7 +110717,7 @@ rwL rwL rwL nhC -lXw +euv nhC nhC nhC @@ -110450,7 +110974,7 @@ hcv rwL lXw lXw -lXw +euv nhC nhC nhC @@ -110694,7 +111218,7 @@ vvS lPp uwH pro -uOO +cna aqS gcX bYE @@ -111086,7 +111610,7 @@ wjC bXg uqc wHr -hEf +mlE nBb pxn dxF @@ -111207,7 +111731,7 @@ jct xJm lPp eno -pro +kWs qoa rwL xkA @@ -111575,10 +112099,10 @@ nhC nhC lXw nhC +ixS bJS -bJS -bJS -bJS +ixS +ixS neU iQp tGd @@ -111835,7 +112359,7 @@ nhC nhC nhC nhC -bJS +ixS alc taO sbO @@ -112091,8 +112615,8 @@ lXw lXw nhC lXw -bJS -bJS +ixS +ixS alc tQH nCS @@ -112982,7 +113506,7 @@ leC wnt xzY wrR -jFK +llp aYM aKB qSg @@ -117756,7 +118280,7 @@ uyy eQW fqM kab -mET +qYG tyW kab tyW @@ -120139,7 +120663,7 @@ mic qTc lmW nKK -lfp +aqB sOE maq reV @@ -125206,7 +125730,7 @@ jmp tVI iCs iCs -iCs +mzG iCs iCs iCs @@ -125583,7 +126107,7 @@ nHr noq noq sNJ -sNJ +ejC oiS lXw iCs @@ -125979,7 +126503,7 @@ lXw lXw vJO eTS -qeL +jal rWk mKG eDG @@ -126615,7 +127139,9 @@ nhC nhC lXw vgY +uDT nnR +uDT nnR nnR nnR @@ -126627,15 +127153,13 @@ nnR nnR nnR nnR +uDT nnR nnR nnR nnR nnR -nnR -nnR -nnR -nnR +uDT oKq iCs iCs @@ -126751,7 +127275,7 @@ eTS rYq gKy mKG -pIW +cXs lYS vgt nQf @@ -127521,7 +128045,7 @@ lXw vJO vJO vZE -qeL +nxj mKG mKG vlX @@ -127778,7 +128302,7 @@ lXw nhC vJO eTS -qeL +jal cgt mKG pzw @@ -128160,7 +128684,7 @@ iCs lXw lXw hxP -lXw +euv nhC nhC nhC @@ -128417,17 +128941,17 @@ iYl alq alq lXw -nhC -nhC -nhC -nhC -nhC -nhC -nhC -nhC -nhC -nhC -nhC +euv +lXw +lXw +lXw +lXw +euv +lXw +euv +euv +euv +hxP nhC nhC nhC @@ -128675,8 +129199,6 @@ hDd alq lXw lXw -lXw -lXw nhC nhC nhC @@ -128686,6 +129208,8 @@ nhC nhC nhC nhC +lXw +nhC nhC nhC nhC @@ -128933,15 +129457,15 @@ wAk wAk wAk wAk -lXw -nhC -nhC -nhC -nhC -nhC -nhC -nhC +alq +alq +alq +alq +alq +alq +alq nhC +euv nhC nhC nhC @@ -129190,15 +129714,15 @@ hhN qmo jWd wAk -lXw -lXw -lXw -lXw -lXw -nhC -nhC -nhC +xAp +gEK +gEK +iEh +fJa +fJa +alq nhC +euv nhC nhC nhC @@ -129447,15 +129971,15 @@ gSV qVq nCi wAk +pKw +gEK +caE +hhH +sBz +sBz alq -alq -alq -alq -lXw -lXw -hxP -nhC nhC +euv nhC nhC nhC @@ -129704,15 +130228,15 @@ bIx brr tXq wAk -eMt -hhH +dcm +dcm iKh +dcm +oam +cHA alq nhC -nhC -lXw -nhC -nhC +euv nhC nhC nhC @@ -129964,12 +130488,12 @@ wAk udZ csd rWs -alq +dcm +eVr +fJa +gOG nhC lXw -lXw -nhC -nhC nhC nhC nhC @@ -130221,10 +130745,10 @@ wAk cTE duw sHW -alq -nhC -lXw -lXw +dcV +tyc +jOI +gOG lXw lXw lXw @@ -130476,15 +131000,15 @@ wAk dZW wAk alq -jeO -alq +iry alq -gAA alq +gwH +tXI alq nhC nhC -lXw +euv nhC nhC nhC @@ -130736,12 +131260,12 @@ eZh uGw jRC alq -kAa +alq alq alq nhC nhC -lXw +euv nhC nhC nhC @@ -130992,13 +131516,13 @@ dcm bfy dcm bcj -alq +dcm cZL ptw gAA gAA nhC -lXw +euv nhC nhC nhC @@ -131505,9 +132029,9 @@ sBz dcV qyx oul -alq -alq -rCU +dcm +dcm +wyf mwX pbI hJT @@ -131656,7 +132180,7 @@ cTJ mKG hqn wbm -qeL +lex vJO lXw lXw @@ -131761,8 +132285,8 @@ dcm udm dcm tvD -oki -alq +ksE +dcm vSf vPh jYF @@ -131918,7 +132442,7 @@ vJO lXw lXw nhC -rAG +nhC nhC nhC nhC @@ -132019,7 +132543,7 @@ sBz xap cBA oki -alq +dcm twT bqt cic @@ -132157,8 +132681,8 @@ eix mKG mKG dSQ -qeL mKG +ivD mKG iGH mKG @@ -132175,7 +132699,7 @@ lXw lXw nhC nhC -rAG +nhC nhC nhC nhC @@ -132276,7 +132800,7 @@ wyf kaQ bFz vbS -alq +dcm sBz fJa ozc @@ -132527,15 +133051,15 @@ aba nGA fss iLi -alq -alq -alq -alq -alq +dcm +dcm +dcm +dcm +dcm viw -alq -alq -gAA +dcm +dcm +udm alq alq nhC @@ -132786,14 +133310,14 @@ fss kaQ fDc lCz -alq +dcm ihZ -alq +dcm sAh riB +dcm +sBz alq -nhC -lXw lXw lXw lXw @@ -132930,11 +133454,11 @@ vJO kfW cZC uBx -mKG -mKG +jal +jal mKG iJv -uoA +qeL awy aLF nhC @@ -133043,14 +133567,14 @@ fss ofS wyf rVb -alq +dcm dqS vOG tUe rXe +dcm +fJa alq -nhC -lXw lXw nhC nhC @@ -133188,10 +133712,10 @@ vJO vJO vJO vJO +tIw vJO vJO -vJO -vJO +tIw vJO vJO lXw @@ -133299,15 +133823,15 @@ wct fss alq vBs -alq -alq -alq +dcm +dcm +dcm bxV -alq -alq -alq -nhC -nhC +dcm +dcm +dcm +sBz +gAA lXw nhC nhC @@ -133441,15 +133965,15 @@ lXw lXw nhC nhC -nhC -nhC -nhC -lXw -lXw -lXw -lXw -nhC -nhC +vJO +mRp +jal +wGD +dZd +eMt +lVH +nKU +vJO nhC nhC lXw @@ -133557,14 +134081,14 @@ alq hjF wyf mqv -alq -alq -alq -alq -alq -alq -lXw -lXw +eQv +dcm +dcm +dcm +rFm +tvW +fJa +gAA hxP nhC nhC @@ -133698,15 +134222,15 @@ nhC cAC lXw lXw -lXw -lXw -lXw -lXw -lXw -lXw -lXw -lXw -lXw +eTS +jal +oae +mKG +atl +mKG +mKG +uZd +vJO lXw lXw cAC @@ -133813,16 +134337,16 @@ lXw alq oNy skS -caE +sBz +sBz +udm +sBz +fJa +fJa +fJa +sBz alq lXw -lXw -lXw -lXw -lXw -lXw -nhC -nhC nhC nhC nhC @@ -133953,19 +134477,19 @@ nhC nhC nhC nhC +lXw nhC +eTS +jal +mKG +mKG +mKG +mKG +atl +bYP +vJO nhC -nhC -nhC -nhC -nhC -nhC -nhC -nhC -nhC -nhC -nhC -nhC +lXw nhC nhC nhC @@ -134047,8 +134571,8 @@ pSY xPi lXw lXw -lXw -nhC +ipC +qRo qRo dQS gKo @@ -134073,6 +134597,12 @@ sRi alq alq alq +alq +alq +gAA +gAA +alq +alq lXw nhC nhC @@ -134137,12 +134667,6 @@ nhC nhC nhC nhC -nhC -nhC -nhC -nhC -nhC -nhC "} (204,1,1) = {" nhC @@ -134210,19 +134734,19 @@ nhC nhC nhC nhC +lXw nhC +vJO +vjG +jal +bYP +bYP +kum +jal +iQS +vJO nhC -nhC -nhC -nhC -nhC -nhC -nhC -nhC -nhC -nhC -nhC -nhC +lXw nhC nhC nhC @@ -134331,12 +134855,12 @@ lXw lXw lXw lXw +lXw +lXw +lXw nhC nhC -nhC -nhC -nhC -nhC +euv nhC nhC nhC @@ -134467,19 +134991,19 @@ nhC nhC nhC nhC +lXw nhC +vJO +vJO +sGb +qeL +lVH +nIm +xbz +vJO +vJO nhC -nhC -nhC -nhC -nhC -nhC -nhC -nhC -nhC -nhC -nhC -nhC +lXw nhC nhC nhC @@ -134590,10 +135114,10 @@ nhC nhC nhC nhC -nhC -nhC -nhC -nhC +lXw +euv +euv +euv nhC nhC nhC @@ -134724,19 +135248,19 @@ nhC nhC nhC nhC +lXw nhC nhC +vJO +vJO +dlQ +iAT +pIE +vJO +vJO nhC nhC -nhC -nhC -nhC -nhC -nhC -nhC -nhC -nhC -nhC +lXw nhC nhC nhC @@ -134981,19 +135505,19 @@ nhC nhC nhC nhC -nhC -nhC -nhC -nhC -nhC -nhC -nhC -nhC -nhC -nhC -nhC -nhC -nhC +lXw +lXw +lXw +lXw +vJO +eTS +eTS +eTS +vJO +lXw +lXw +lXw +lXw nhC nhC nhC diff --git a/_maps/map_files/Voidraptor/VoidRaptor.dmm b/_maps/map_files/Voidraptor/VoidRaptor.dmm index 38e488dff5ac..dbae07341eae 100644 --- a/_maps/map_files/Voidraptor/VoidRaptor.dmm +++ b/_maps/map_files/Voidraptor/VoidRaptor.dmm @@ -473,6 +473,11 @@ "agH" = ( /turf/closed/wall/r_wall, /area/station/hallway/secondary/exit/departure_lounge) +"agP" = ( +/obj/effect/decal/cleanable/glass, +/obj/structure/closet/secure_closet/barber, +/turf/open/floor/plating, +/area/station/maintenance/aft/lesser) "agQ" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 8 @@ -1514,6 +1519,10 @@ "avA" = ( /turf/closed/wall, /area/station/science/robotics/mechbay) +"avB" = ( +/obj/machinery/light/cold/directional/south, +/turf/open/floor/wood/large, +/area/station/service/forge) "avD" = ( /obj/effect/turf_decal/trimline/red/filled/line, /obj/machinery/modular_computer/preset/id{ @@ -3314,6 +3323,12 @@ dir = 4 }, /area/station/engineering/storage) +"aWf" = ( +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ + dir = 4 + }, +/turf/open/floor/wood/large, +/area/station/service/forge) "aWh" = ( /obj/effect/mapping_helpers/broken_floor, /turf/open/floor/plating, @@ -5003,7 +5018,8 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/effect/mapping_helpers/airlock/access/all/admin/general, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, /turf/open/floor/iron/dark/textured_large, /area/station/command/heads_quarters/blueshield) "bvI" = ( @@ -7162,12 +7178,6 @@ dir = 4 }, /area/station/command/gateway) -"cgx" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/turf/open/floor/wood/large, -/area/station/service/barber) "cgA" = ( /obj/machinery/status_display/ai, /turf/closed/wall, @@ -7568,7 +7578,7 @@ /area/station/science/ordnance/testlab) "cnc" = ( /obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/security/brig, +/obj/effect/mapping_helpers/airlock/access/any/security/permabrig, /obj/effect/turf_decal/stripes/line{ dir = 4 }, @@ -9059,6 +9069,11 @@ dir = 1 }, /area/station/medical/pathology) +"cJh" = ( +/obj/machinery/arc_forge, +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/stone, +/area/station/service/forge) "cJm" = ( /obj/effect/decal/cleanable/dirt, /obj/item/stack/sheet/cardboard, @@ -10787,12 +10802,6 @@ /obj/effect/turf_decal/trimline/blue/mid_joiner, /turf/open/floor/iron/white/textured_large, /area/station/medical/medbay/lobby) -"diV" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ - dir = 8 - }, -/turf/open/floor/wood/large, -/area/station/service/barber) "diX" = ( /obj/effect/turf_decal/trimline/green/filled/line, /obj/effect/turf_decal/trimline/green/corner{ @@ -11663,7 +11672,7 @@ /obj/machinery/door/airlock/public/glass{ name = "Aft Central Primary Hallway" }, -/obj/effect/mapping_helpers/airlock/access/all/security/brig, +/obj/effect/mapping_helpers/airlock/access/any/security/permabrig, /turf/open/floor/iron/dark/textured_large, /area/station/security/execution/transfer) "dwb" = ( @@ -11907,10 +11916,6 @@ /obj/effect/turf_decal/bot, /turf/open/floor/iron/textured, /area/station/hallway/primary/aft) -"dzC" = ( -/obj/effect/decal/cleanable/glass, -/turf/open/floor/plating, -/area/station/maintenance/aft/lesser) "dzE" = ( /obj/structure/chair/comfy/beige{ dir = 1 @@ -12474,7 +12479,6 @@ /obj/machinery/door/airlock/corporate{ name = "Consultant's Quarters" }, -/obj/effect/mapping_helpers/airlock/access/all/command/captain, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/siding/wood/end, /obj/effect/turf_decal/siding/wood{ @@ -12493,6 +12497,8 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, /turf/open/floor/wood/large, /area/station/command/heads_quarters/nt_rep) "dHa" = ( @@ -13586,6 +13592,10 @@ dir = 8 }, /area/station/engineering/atmos) +"dVJ" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/turf/open/floor/wood/large, +/area/station/service/forge) "dVS" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -15273,6 +15283,10 @@ }, /turf/open/floor/iron/textured, /area/station/engineering/storage) +"esF" = ( +/obj/machinery/airalarm/directional/south, +/turf/open/floor/wood/large, +/area/station/service/forge) "esH" = ( /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 @@ -17508,15 +17522,6 @@ /obj/machinery/computer/security/telescreen/entertainment/directional/south, /turf/open/floor/iron, /area/station/commons/vacant_room) -"faf" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/railing/wood{ - dir = 8 - }, -/obj/structure/railing/wood, -/obj/machinery/electroplater, -/turf/open/floor/wood/large, -/area/station/service/barber) "fal" = ( /obj/effect/decal/cleanable/cobweb, /turf/open/floor/iron/textured, @@ -17782,6 +17787,10 @@ "fey" = ( /turf/open/floor/plating, /area/station/engineering/supermatter/room) +"fez" = ( +/obj/effect/turf_decal/siding/wood, +/turf/open/floor/stone, +/area/station/service/forge) "feC" = ( /obj/machinery/navbeacon{ codes_txt = "patrol;next_patrol=hall11"; @@ -19750,6 +19759,14 @@ /obj/effect/turf_decal/tile/dark_blue/fourcorners, /turf/open/floor/iron/dark/textured, /area/station/medical/medbay/central) +"fKS" = ( +/obj/structure/railing/wood{ + dir = 8 + }, +/obj/structure/anvil, +/obj/machinery/light_switch/directional/north, +/turf/open/floor/wood/large, +/area/station/service/forge) "fKU" = ( /obj/effect/turf_decal/trimline/brown/filled/warning{ dir = 4 @@ -20501,6 +20518,13 @@ dir = 6 }, /area/station/service/chapel) +"fXi" = ( +/obj/structure/railing/wood{ + dir = 8 + }, +/obj/structure/machine/assembly_bench, +/turf/open/floor/wood/large, +/area/station/service/forge) "fXl" = ( /obj/docking_port/stationary/random{ name = "lavaland"; @@ -21896,7 +21920,8 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/effect/mapping_helpers/airlock/access/all/admin/general, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, /turf/open/floor/iron/dark/textured_large, /area/station/command/heads_quarters/blueshield) "gqN" = ( @@ -22816,14 +22841,6 @@ /obj/effect/turf_decal/bot_red, /turf/open/floor/iron/dark/textured_large, /area/station/security/execution/education) -"gDL" = ( -/obj/structure/railing/wood{ - dir = 8 - }, -/obj/structure/anvil, -/obj/machinery/light_switch/directional/north, -/turf/open/floor/wood/large, -/area/station/service/barber) "gDP" = ( /obj/structure/sign/gym{ pixel_y = 32 @@ -23501,10 +23518,6 @@ "gNe" = ( /turf/open/floor/iron/textured_large, /area/station/hallway/secondary/entry) -"gNh" = ( -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/stone, -/area/station/service/barber) "gNi" = ( /obj/item/flashlight/lantern, /obj/effect/turf_decal/stripes/line{ @@ -24738,7 +24751,7 @@ /turf/open/floor/iron/textured_large, /area/station/hallway/primary/aft) "hdK" = ( -/obj/effect/mapping_helpers/airlock/access/all/security/brig, +/obj/effect/mapping_helpers/airlock/access/any/security/permabrig, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/security/old/glass{ name = "Prison Wing" @@ -26356,6 +26369,9 @@ /obj/item/clothing/gloves/latex, /obj/item/clothing/neck/stethoscope, /obj/machinery/firealarm/directional/south, +/obj/effect/spawner/random/food_or_drink/donkpockets{ + pixel_y = 5 + }, /turf/open/floor/iron/white, /area/station/medical/pathology) "hBZ" = ( @@ -27148,6 +27164,15 @@ dir = 1 }, /area/station/security/checkpoint/engineering) +"hOT" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/railing/wood{ + dir = 8 + }, +/obj/structure/railing/wood, +/obj/machinery/electroplater, +/turf/open/floor/wood/large, +/area/station/service/forge) "hPg" = ( /obj/structure/table/reinforced, /obj/item/clothing/suit/hooded/ablative{ @@ -28451,6 +28476,7 @@ /obj/effect/turf_decal/bot, /obj/effect/spawner/random/armory/riot_shield, /obj/machinery/light/cold/directional/south, +/obj/item/clothing/suit/armor/riot, /turf/open/floor/iron/dark/textured_edge, /area/station/ai_monitored/security/armory) "iiB" = ( @@ -29990,10 +30016,10 @@ /turf/open/floor/wood/large, /area/station/commons/fitness/recreation/entertainment) "iAE" = ( -/obj/machinery/suit_storage_unit/security, /obj/machinery/firealarm/directional/north, /obj/effect/turf_decal/bot, /obj/effect/turf_decal/tile/red/diagonal_centre, +/obj/structure/tank_dispenser/oxygen, /turf/open/floor/iron/dark/diagonal, /area/station/security/office) "iAF" = ( @@ -30079,10 +30105,6 @@ pixel_x = 4; pixel_y = 4 }, -/obj/item/stamp/centcom{ - pixel_x = 4; - pixel_y = 4 - }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/carpet/green, @@ -30299,7 +30321,6 @@ /area/station/engineering/atmos/pumproom) "iGu" = ( /obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/command/captain, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -30316,6 +30337,8 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, /turf/open/floor/iron/dark/textured_large, /area/station/command/heads_quarters/nt_rep) "iGy" = ( @@ -30422,14 +30445,11 @@ /turf/open/floor/carpet/green, /area/station/commons/dorms) "iHU" = ( -/obj/structure/table/glass, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/trimline/dark_green/filled/line{ dir = 9 }, -/obj/effect/spawner/random/food_or_drink/donkpockets{ - pixel_y = 5 - }, +/obj/machinery/smartfridge/chemistry/virology/preloaded, /turf/open/floor/iron/white, /area/station/medical/pathology) "iHX" = ( @@ -31308,12 +31328,6 @@ }, /turf/open/floor/iron/dark/telecomms, /area/station/tcommsat/server) -"iVy" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 6 - }, -/turf/open/floor/stone, -/area/station/service/barber) "iVz" = ( /obj/effect/turf_decal/trimline/yellow/filled/warning{ dir = 8 @@ -32726,7 +32740,8 @@ dir = 1 }, /obj/effect/turf_decal/stripes/line, -/obj/effect/mapping_helpers/airlock/access/all/admin/general, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, /turf/open/floor/wood/large, /area/station/command/heads_quarters/blueshield) "jos" = ( @@ -34118,13 +34133,6 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/kitchen, /area/station/service/kitchen/abandoned) -"jFt" = ( -/obj/structure/railing/wood{ - dir = 8 - }, -/obj/structure/machine/assembly_bench, -/turf/open/floor/wood/large, -/area/station/service/barber) "jFA" = ( /obj/effect/turf_decal/stripes/line{ dir = 9 @@ -34378,7 +34386,6 @@ /turf/open/floor/plating, /area/station/engineering/storage/tech) "jJr" = ( -/obj/machinery/suit_storage_unit/security, /obj/effect/turf_decal/bot, /obj/effect/turf_decal/tile/red/diagonal_centre, /obj/machinery/light/cold/directional/north, @@ -34722,9 +34729,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark/telecomms, /area/station/tcommsat/server) -"jOd" = ( -/turf/open/floor/stone, -/area/station/service/barber) "jOe" = ( /obj/effect/turf_decal/stripes/line{ dir = 5 @@ -34890,10 +34894,6 @@ /obj/machinery/light/cold/directional/south, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"jQM" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/wood/large, -/area/station/service/barber) "jQR" = ( /obj/machinery/door/window/left/directional/south{ name = "Research Test Chamber"; @@ -37486,6 +37486,13 @@ dir = 1 }, /area/station/security/medical) +"kDz" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/structure/fake_stairs/wood/directional/east, +/obj/effect/landmark/start/gary/uncommon, +/turf/open/floor/wood/large, +/area/station/service/forge) "kDA" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 1 @@ -39671,7 +39678,7 @@ /obj/machinery/door/airlock/security{ name = "Isolation Cell" }, -/obj/effect/mapping_helpers/airlock/access/all/security/brig, +/obj/effect/mapping_helpers/airlock/access/any/security/permabrig, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/plating, /area/station/security/execution/transfer) @@ -40214,11 +40221,6 @@ /obj/effect/landmark/start/hangover, /turf/open/floor/iron/large, /area/station/commons/fitness/recreation) -"lov" = ( -/obj/machinery/arc_forge, -/obj/effect/turf_decal/siding/wood, -/turf/open/floor/stone, -/area/station/service/barber) "loF" = ( /obj/structure/disposalpipe/segment, /turf/open/floor/iron/textured_large, @@ -40516,7 +40518,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/airlock/mining{ - name = "Mining Lobby" + name = "Quatermaster's Office" }, /obj/structure/disposalpipe/segment{ dir = 4 @@ -41541,7 +41543,7 @@ /obj/machinery/door/airlock/maintenance_hatch{ name = "Prison Satellite Maintenance" }, -/obj/effect/mapping_helpers/airlock/access/all/security/brig, +/obj/effect/mapping_helpers/airlock/access/any/security/permabrig, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/department/security/greater) @@ -43150,7 +43152,7 @@ /turf/open/floor/wood, /area/station/commons/vacant_room/office) "mep" = ( -/obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/effect/mapping_helpers/airlock/access/all/security/brig, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -44068,7 +44070,7 @@ /obj/machinery/door/airlock/maintenance_hatch{ name = "Prison Satellite Maintenance" }, -/obj/effect/mapping_helpers/airlock/access/all/security/brig, +/obj/effect/mapping_helpers/airlock/access/any/security/permabrig, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/security/execution/transfer) "msv" = ( @@ -44224,7 +44226,8 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/effect/mapping_helpers/airlock/access/all/admin/general, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, /turf/open/floor/iron/dark/textured_large, /area/station/command/heads_quarters/blueshield) "mvz" = ( @@ -44858,10 +44861,6 @@ }, /turf/open/floor/iron/textured_large, /area/station/maintenance/disposal) -"mFh" = ( -/obj/machinery/light/cold/directional/north, -/turf/open/floor/wood/large, -/area/station/service/barber) "mFl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -45113,7 +45112,7 @@ /obj/machinery/door/airlock/public/glass{ name = "Aft Central Primary Hallway" }, -/obj/effect/mapping_helpers/airlock/access/all/security/brig, +/obj/effect/mapping_helpers/airlock/access/any/security/permabrig, /turf/open/floor/iron/dark/textured_large, /area/station/security/office) "mJs" = ( @@ -46309,7 +46308,6 @@ req_access = list("captain") }, /obj/item/radio/intercom/directional/south, -/obj/item/clothing/gloves/military, /obj/effect/turf_decal/bot, /obj/effect/turf_decal/stripes/line{ dir = 1 @@ -46373,7 +46371,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/door/firedoor, /obj/machinery/door/airlock/mining{ - name = "Mining Lobby" + name = "Quatermaster's Ouarters" }, /obj/effect/mapping_helpers/airlock/access/all/supply/qm, /obj/effect/turf_decal/siding/wood/end, @@ -46670,7 +46668,7 @@ /turf/open/floor/plating/airless, /area/station/engineering/power_room) "ndR" = ( -/obj/effect/mapping_helpers/airlock/access/all/security/brig, +/obj/effect/mapping_helpers/airlock/access/any/security/permabrig, /obj/machinery/door/airlock/maintenance_hatch{ name = "Security Maintenance" }, @@ -47339,7 +47337,7 @@ /area/station/maintenance/port/upper) "nnj" = ( /obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/security/general, +/obj/effect/mapping_helpers/airlock/access/any/security/permabrig, /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, @@ -48217,7 +48215,6 @@ }, /area/station/hallway/primary/fore) "nzM" = ( -/obj/structure/table/reinforced, /obj/structure/window/reinforced/spawner/directional/south, /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -48229,7 +48226,7 @@ pixel_x = 32 }, /obj/effect/turf_decal/delivery, -/obj/item/clothing/suit/armor/riot, +/obj/machinery/suit_storage_unit/security, /turf/open/floor/iron/dark/textured_edge{ dir = 4 }, @@ -48387,6 +48384,11 @@ }, /turf/open/floor/iron/textured_large, /area/station/engineering/lobby) +"nDp" = ( +/obj/effect/turf_decal/delivery, +/obj/machinery/space_heater, +/turf/open/floor/iron/textured, +/area/station/maintenance/aft/lesser) "nDx" = ( /obj/effect/turf_decal/trimline/dark_red/filled/line{ dir = 9 @@ -49896,12 +49898,6 @@ }, /turf/open/floor/iron/freezer, /area/station/medical/pharmacy) -"nYc" = ( -/obj/machinery/power/apc/auto_name/directional/south, -/obj/structure/cable, -/obj/machinery/light/cold/directional/south, -/turf/open/floor/wood/large, -/area/station/service/barber) "nYj" = ( /obj/structure/flora/grass/jungle, /obj/structure/window/fulltile, @@ -51078,12 +51074,6 @@ dir = 8 }, /area/station/science/robotics/lab) -"oqn" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 4 - }, -/turf/open/floor/stone, -/area/station/service/barber) "oqu" = ( /obj/effect/turf_decal/tile/blue/full, /obj/structure/window/spawner/directional/west, @@ -51447,14 +51437,12 @@ /turf/open/floor/iron/textured, /area/station/security/checkpoint/supply) "ovo" = ( -/obj/structure/closet/secure_closet/nanotrasen_consultant, -/obj/item/clothing/accessory/medal/gold/ordom, -/obj/item/storage/briefcase/secure, -/obj/item/clothing/gloves/combat, /obj/effect/turf_decal/bot, /obj/effect/turf_decal/stripes/line{ dir = 9 }, +/obj/structure/closet/secure_closet/nanotrasen_representative, +/obj/item/clothing/accessory/medal/gold/ordom, /turf/open/floor/iron/dark/textured_large, /area/station/command/heads_quarters/nt_rep) "ovT" = ( @@ -52818,9 +52806,9 @@ /turf/open/floor/catwalk_floor, /area/station/maintenance/solars/starboard/aft) "oPQ" = ( -/obj/structure/tank_dispenser/oxygen, /obj/effect/turf_decal/bot, /obj/effect/turf_decal/tile/red/diagonal_centre, +/obj/vehicle/ridden/secway, /turf/open/floor/iron/dark/diagonal, /area/station/security/office) "oPU" = ( @@ -58961,7 +58949,7 @@ /area/station/medical/morgue) "qtc" = ( /obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/security/brig, +/obj/effect/mapping_helpers/airlock/access/any/security/permabrig, /obj/effect/turf_decal/stripes/line{ dir = 4 }, @@ -62771,6 +62759,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/carpet, /area/station/security/courtroom) +"rxT" = ( +/obj/structure/fake_stairs/wood/directional/east, +/turf/open/floor/wood/large, +/area/station/service/forge) "rxV" = ( /obj/structure/disposalpipe/segment{ dir = 4 @@ -63483,10 +63475,6 @@ /obj/machinery/smartfridge/organ, /turf/open/floor/iron/dark/textured_large, /area/station/medical/morgue) -"rIQ" = ( -/obj/machinery/airalarm/directional/south, -/turf/open/floor/wood/large, -/area/station/service/barber) "rIU" = ( /obj/effect/turf_decal/stripes/end{ dir = 4 @@ -64271,12 +64259,6 @@ dir = 1 }, /area/station/hallway/primary/fore) -"rUo" = ( -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ - dir = 4 - }, -/turf/open/floor/wood/large, -/area/station/service/barber) "rUr" = ( /obj/machinery/door/airlock/security/glass{ name = "Brig Control" @@ -64639,6 +64621,12 @@ dir = 8 }, /area/station/engineering/main) +"sab" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/turf/open/floor/stone, +/area/station/service/forge) "sah" = ( /obj/effect/turf_decal/siding/wood{ dir = 8 @@ -67788,6 +67776,12 @@ }, /turf/open/floor/wood/large, /area/station/service/library) +"sQT" = ( +/obj/machinery/power/apc/auto_name/directional/south, +/obj/structure/cable, +/obj/machinery/light/cold/directional/south, +/turf/open/floor/wood/large, +/area/station/service/forge) "sRa" = ( /obj/machinery/atmospherics/components/trinary/filter/flipped/critical{ dir = 8; @@ -69432,10 +69426,6 @@ /obj/machinery/atm/directional/south, /turf/open/floor/wood/large, /area/station/service/theater) -"tnp" = ( -/obj/effect/decal/cleanable/greenglow, -/turf/open/floor/iron/textured, -/area/station/maintenance/aft/lesser) "tnv" = ( /obj/effect/turf_decal/trimline/red/filled/line{ dir = 4 @@ -69795,6 +69785,12 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron/grimy, /area/station/service/chapel) +"try" = ( +/obj/structure/cable, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/turf/open/floor/wood/large, +/area/station/service/forge) "trA" = ( /obj/machinery/door/airlock/engineering/glass{ name = "Engineering Storage" @@ -71118,10 +71114,6 @@ dir = 8 }, /area/station/security/brig) -"tJJ" = ( -/obj/structure/fake_stairs/wood/directional/east, -/turf/open/floor/wood/large, -/area/station/service/barber) "tJM" = ( /obj/machinery/power/shuttle_engine/heater{ dir = 8 @@ -71324,13 +71316,6 @@ }, /turf/open/floor/iron/textured_large, /area/station/cargo/storage) -"tMp" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/fake_stairs/wood/directional/east, -/obj/effect/landmark/start/gary/uncommon, -/turf/open/floor/wood/large, -/area/station/service/barber) "tMq" = ( /obj/structure/cable, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -72818,6 +72803,12 @@ "ukh" = ( /turf/open/floor/plating, /area/station/maintenance/port) +"ukt" = ( +/obj/effect/decal/cleanable/cobweb, +/obj/effect/decal/cleanable/greenglow, +/obj/machinery/vending/barbervend, +/turf/open/floor/iron/textured, +/area/station/maintenance/aft/lesser) "ukB" = ( /obj/structure/table/reinforced, /obj/item/pipe_dispenser, @@ -72877,6 +72868,10 @@ /obj/effect/mapping_helpers/airlock/abandoned, /turf/open/floor/catwalk_floor/iron_smooth, /area/station/maintenance/port/greater) +"ulb" = ( +/obj/machinery/light/cold/directional/north, +/turf/open/floor/wood/large, +/area/station/service/forge) "ull" = ( /obj/structure/showcase/cyborg/old{ dir = 4; @@ -73912,6 +73907,10 @@ dir = 8 }, /area/station/security/office) +"uxA" = ( +/obj/machinery/material_analyzer, +/turf/open/floor/wood/large, +/area/station/service/forge) "uxG" = ( /obj/effect/spawner/structure/window/reinforced/plasma, /turf/open/floor/plating/airless, @@ -73981,6 +73980,12 @@ dir = 8 }, /area/station/medical/storage) +"uxZ" = ( +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ + dir = 8 + }, +/turf/open/floor/wood/large, +/area/station/service/forge) "uyc" = ( /obj/machinery/camera/directional/west{ c_tag = "Cargo - Mining" @@ -74967,12 +74972,6 @@ /obj/structure/window/reinforced/plasma/spawner/directional/south, /turf/open/floor/iron/textured, /area/station/maintenance/aft/lesser) -"uLH" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/space_heater, -/obj/effect/decal/cleanable/cobweb, -/turf/open/floor/iron/textured, -/area/station/maintenance/aft/lesser) "uLI" = ( /obj/machinery/disposal/bin, /obj/structure/disposalpipe/trunk{ @@ -75452,6 +75451,7 @@ }, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/landmark/start/nanotrasen_representative, /turf/open/floor/carpet/green, /area/station/command/heads_quarters/nt_rep) "uTD" = ( @@ -75601,6 +75601,12 @@ /obj/machinery/atmospherics/pipe/smart/simple/dark/visible, /turf/open/floor/engine, /area/station/science/xenobiology) +"uVF" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/stone, +/area/station/service/forge) "uVG" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -75610,7 +75616,7 @@ /area/station/command/cc_dock) "uVM" = ( /obj/machinery/door/firedoor, -/obj/effect/mapping_helpers/airlock/access/all/security/brig, +/obj/effect/mapping_helpers/airlock/access/any/security/permabrig, /obj/machinery/door/airlock/security/glass{ name = "Prison Wing" }, @@ -76286,6 +76292,9 @@ }, /turf/open/floor/iron/grimy, /area/station/commons/vacant_room/office) +"vgt" = ( +/turf/open/floor/wood/large, +/area/station/service/forge) "vgy" = ( /obj/effect/turf_decal/trimline/yellow/filled/corner, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -77769,10 +77778,6 @@ }, /turf/open/floor/iron/textured_large, /area/station/cargo/warehouse) -"vDd" = ( -/obj/machinery/material_analyzer, -/turf/open/floor/wood/large, -/area/station/service/barber) "vDe" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -79032,8 +79037,8 @@ /obj/effect/turf_decal/tile/dark_red/half{ dir = 4 }, -/obj/vehicle/ridden/secway, /obj/effect/turf_decal/bot, +/obj/machinery/suit_storage_unit/security, /turf/open/floor/iron/dark/textured_edge{ dir = 4 }, @@ -81493,6 +81498,9 @@ }, /turf/open/floor/grass, /area/station/science/research) +"wCO" = ( +/turf/open/floor/stone, +/area/station/service/forge) "wCT" = ( /obj/structure/chair/sofa/bench, /obj/effect/turf_decal/siding/wood{ @@ -82485,10 +82493,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/textured_large, /area/station/cargo/sorting) -"wQg" = ( -/obj/machinery/light/cold/directional/south, -/turf/open/floor/wood/large, -/area/station/service/barber) "wQo" = ( /obj/structure/cable, /obj/effect/turf_decal/trimline/green/filled/warning{ @@ -86691,9 +86695,6 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/commons/lounge) -"ydK" = ( -/turf/open/floor/wood/large, -/area/station/service/barber) "yea" = ( /obj/machinery/atmospherics/components/binary/pump, /obj/effect/turf_decal/trimline/dark_red/filled/line{ @@ -114270,11 +114271,11 @@ mJy twz gDd bsI -jOd -jOd -lov -ydK -ydK +wCO +wCO +cJh +vgt +vgt wjI lGy eWu @@ -114527,11 +114528,11 @@ tzk vSd wue bsI -jOd -jOd -gNh -rUo -wQg +wCO +wCO +fez +aWf +avB wjI lGy lQf @@ -114784,11 +114785,11 @@ dje dje dje dje -oqn -oqn -iVy -jQM -ydK +uVF +uVF +sab +dVJ +vgt wjI lGy mlv @@ -115041,11 +115042,11 @@ wuT izJ bJt dje -gDL -jFt -faf -tMp -tJJ +fKS +fXi +hOT +kDz +rxT wjI vWf hpp @@ -115298,11 +115299,11 @@ grA bYs pKo dje -mFh -ydK -diV -cgx -nYc +ulb +vgt +uxZ +try +sQT wjI vWf eWu @@ -115555,11 +115556,11 @@ iTJ wpv lBP dje -ydK -vDd -ydK -cgx -rIQ +vgt +uxA +vgt +try +esF wjI vWf mlv @@ -130058,7 +130059,7 @@ pSJ vty rgH iay -uLH +ukt ufe ntn gLb @@ -130315,7 +130316,7 @@ dNh kLl cQb iay -dzC +agP iXX uVV xRx @@ -130572,7 +130573,7 @@ pSJ kLl eQi iay -tnp +nDp uVV uVV shE diff --git a/_maps/map_files/generic/CentCom.dmm b/_maps/map_files/generic/CentCom.dmm index 5e908132206a..7fdf744f2a36 100644 --- a/_maps/map_files/generic/CentCom.dmm +++ b/_maps/map_files/generic/CentCom.dmm @@ -19335,6 +19335,15 @@ /obj/structure/flora/bush/sparsegrass/style_2, /turf/open/misc/dirt/jungle/dark/arena, /area/centcom/central_command_areas/admin) +"biX" = ( +/obj/effect/turf_decal/siding/dark_green{ + dir = 8 + }, +/obj/structure/chair/office/tactical{ + dir = 4 + }, +/turf/open/floor/iron/dark/small, +/area/centcom/central_command_areas/admin) "bjH" = ( /obj/effect/turf_decal/siding/white{ dir = 4 @@ -19398,6 +19407,9 @@ /obj/machinery/light/floor/has_bulb, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/evacuation) +"bnI" = ( +/turf/open/floor/carpet/blue, +/area/centcom/central_command_areas/admin) "bnQ" = ( /obj/structure/table, /obj/item/pizzabox/pineapple, @@ -19447,6 +19459,13 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/adminroom) +"bwQ" = ( +/obj/structure/railing/wrestling{ + pixel_x = 6 + }, +/obj/structure/railing/wrestling, +/turf/open/floor/carpet/neon/simple/green/nodots, +/area/centcom/central_command_areas/admin) "bwZ" = ( /turf/closed/indestructible/opsglass, /area/centcom/central_command_areas/admin) @@ -19694,17 +19713,31 @@ }, /turf/open/floor/iron/white/textured, /area/centcom/central_command_areas/admin) -"cvB" = ( -/obj/structure/signboard{ - locked = 1; - sign_text = "Your armament points is effectively your uplink, use it in-hand!" +"cuW" = ( +/obj/machinery/photocopier/gratis{ + pixel_y = -3 }, -/turf/open/floor/iron/smooth_large, -/area/cruiser_dock) +/obj/effect/turf_decal/tile/bar/anticorner/contrasted{ + dir = 4 + }, +/turf/open/floor/plastic, +/area/centcom/central_command_areas/admin) "cvJ" = ( /obj/effect/turf_decal/siding/wood/corner, /turf/open/floor/wood/large, /area/centcom/central_command_areas/evacuation) +"cvN" = ( +/obj/structure/table, +/obj/item/storage/box/drinkingglasses{ + pixel_x = 4; + pixel_y = 5 + }, +/obj/item/reagent_containers/cup/glass/shaker{ + pixel_x = -2; + pixel_y = 3 + }, +/turf/open/floor/wood, +/area/centcom/central_command_areas/admin) "cxr" = ( /turf/open/misc/dirt/station, /area/centcom/central_command_areas/retirement_yard) @@ -19794,6 +19827,12 @@ }, /turf/open/floor/glass/reinforced, /area/centcom/central_command_areas/hall) +"cHD" = ( +/obj/machinery/door/window{ + dir = 2 + }, +/turf/open/floor/mineral/titanium/purple, +/area/centcom/central_command_areas/admin) "cIh" = ( /obj/effect/turf_decal/siding/thinplating_new/dark/corner{ dir = 4 @@ -19852,6 +19891,13 @@ }, /turf/open/floor/grass, /area/centcom/central_command_areas/admin) +"cQB" = ( +/obj/machinery/computer/camera_advanced/syndie{ + dir = 8 + }, +/obj/structure/sign/poster/official/nanotrasen_logo/directional/east, +/turf/open/floor/iron/dark/herringbone, +/area/centcom/central_command_areas/admin) "cQL" = ( /obj/machinery/computer/communications/syndicate, /turf/open/floor/carpet/donk, @@ -19939,6 +19985,16 @@ dir = 1 }, /area/centcom/central_command_areas/evacuation) +"dky" = ( +/obj/structure/table, +/obj/item/toy/plush/admin/fortune, +/obj/item/toy/plush/admin/lavender{ + pixel_y = 12; + pixel_x = 9 + }, +/obj/effect/turf_decal/tile/dark_purple/fourcorners, +/turf/open/floor/iron/textured, +/area/centcom/central_command_areas/admin) "dld" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 1 @@ -19963,6 +20019,13 @@ dir = 4 }, /area/centcom/central_command_areas/evacuation) +"dro" = ( +/obj/machinery/computer/communications{ + dir = 8 + }, +/obj/machinery/light/directional/east, +/turf/open/floor/iron/dark/herringbone, +/area/centcom/central_command_areas/admin) "drE" = ( /obj/structure/table/reinforced/plastitaniumglass, /obj/item/storage/fancy/cigarettes/cigars/havana{ @@ -19976,6 +20039,9 @@ dir = 8 }, /area/cruiser_dock) +"dsU" = ( +/turf/open/floor/mineral/titanium/purple, +/area/centcom/central_command_areas/admin) "dtm" = ( /obj/structure/bed/double{ dir = 1 @@ -20025,6 +20091,18 @@ /obj/effect/turf_decal/bot_white, /turf/open/floor/iron/dark/textured_large, /area/cruiser_dock) +"dAJ" = ( +/obj/machinery/photocopier/gratis, +/obj/effect/turf_decal/tile/brown/anticorner/contrasted, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/plastic, +/area/centcom/central_command_areas/admin) +"dBD" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/south, +/obj/structure/window/reinforced/survival_pod/spawner/directional/north, +/obj/structure/window/reinforced/survival_pod/spawner/directional/west, +/turf/open/water/arena, +/area/centcom/central_command_areas/admin) "dCz" = ( /obj/structure/statue/sandstone/venus{ name = "Justice" @@ -20083,6 +20161,22 @@ }, /turf/open/floor/wood/tile, /area/centcom/central_command_areas/admin) +"dKR" = ( +/obj/effect/turf_decal/weather/dirt{ + pixel_y = -1; + dir = 4 + }, +/obj/effect/turf_decal/weather/dirt, +/turf/open/water/arena, +/area/centcom/central_command_areas/admin) +"dNQ" = ( +/obj/structure/table/greyscale, +/obj/machinery/fax/messageadmins{ + fax_name = "Central Command Intern Office"; + pixel_y = 4 + }, +/turf/open/floor/iron/dark/herringbone, +/area/centcom/central_command_areas/admin) "dPS" = ( /obj/structure/stone_tile/surrounding_tile{ dir = 8 @@ -20102,6 +20196,17 @@ }, /turf/open/floor/carpet/donk, /area/centcom/central_command_areas/adminroom) +"dQy" = ( +/obj/machinery/light/directional/west, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 8 + }, +/turf/open/floor/plastic, +/area/centcom/central_command_areas/admin) +"dRe" = ( +/obj/structure/chair/sofa/middle/maroon, +/turf/open/floor/carpet/neon/simple/green/nodots, +/area/centcom/central_command_areas/admin) "dRD" = ( /obj/structure/chair/plastic, /obj/effect/landmark/start/assaultop, @@ -20118,8 +20223,19 @@ /obj/machinery/light/directional/east, /turf/open/floor/carpet/red, /area/centcom/central_command_areas/adminroom) +"dTu" = ( +/obj/structure/table, +/obj/machinery/reagentgrinder{ + pixel_x = 18; + pixel_y = 4 + }, +/obj/machinery/coffeemaker/impressa, +/obj/machinery/newscaster/directional/south, +/turf/open/floor/wood, +/area/centcom/central_command_areas/admin) "dUc" = ( -/obj/machinery/light/directional/west, +/obj/structure/window/reinforced/survival_pod/spawner/directional/south, +/obj/structure/window/reinforced/survival_pod/spawner/directional/west, /turf/open/water/arena, /area/centcom/central_command_areas/admin) "dUR" = ( @@ -20175,6 +20291,10 @@ /obj/machinery/light/cold/directional/north, /turf/open/floor/iron/smooth_large, /area/cruiser_dock) +"eiY" = ( +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/carpet/neon/simple/green/nodots, +/area/centcom/central_command_areas/admin) "eka" = ( /obj/structure/bed, /turf/open/floor/carpet, @@ -20253,6 +20373,16 @@ }, /turf/open/floor/iron/dark/small, /area/centcom) +"ezX" = ( +/obj/structure/table/greyscale, +/obj/machinery/computer/pod/old/syndicate{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 4 + }, +/turf/open/floor/plastic, +/area/centcom/central_command_areas/admin) "eAb" = ( /turf/open/floor/iron/stairs/medium{ dir = 1 @@ -20381,6 +20511,12 @@ /obj/effect/spawner/structure/window/reinforced, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/evacuation) +"eXc" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 4 + }, +/turf/open/floor/plastic, +/area/centcom/central_command_areas/admin) "eZi" = ( /obj/item/kirbyplants/random, /turf/open/floor/grass, @@ -20518,6 +20654,25 @@ }, /turf/open/floor/iron/dark/textured_edge, /area/centcom/central_command_areas/evacuation) +"fyA" = ( +/obj/structure/table/greyscale, +/obj/item/melee/baton{ + name = "intern baton"; + pixel_y = 1; + pixel_x = -5 + }, +/obj/item/toy/plush/carpplushie/dehy_carp{ + name = "intern space carp plushie"; + pixel_y = 13; + pixel_x = -7 + }, +/obj/machinery/button/door/directional{ + pixel_x = 2; + id = 5; + name = "Intern office door" + }, +/turf/open/floor/glass/reinforced, +/area/centcom/central_command_areas/admin) "fAH" = ( /obj/structure/sink/directional/south, /obj/structure/mop_bucket/janitorialcart{ @@ -20587,11 +20742,22 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood, /area/centcom/central_command_areas/adminroom) +"fLg" = ( +/obj/machinery/photocopier/gratis, +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 8 + }, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/plastic, +/area/centcom/central_command_areas/admin) "fOu" = ( /turf/closed/indestructible/fakedoor{ name = "Base Access" }, /area/cruiser_dock) +"fOv" = ( +/turf/open/floor/carpet/neon/simple/green/nodots, +/area/centcom/central_command_areas/admin) "fQS" = ( /obj/effect/turf_decal/trimline/yellow/filled/corner{ dir = 4 @@ -20628,6 +20794,21 @@ /obj/machinery/light/directional/east, /turf/open/floor/mineral/titanium/tiled/white, /area/centcom/central_command_areas/adminroom) +"gcx" = ( +/obj/structure/table, +/obj/item/toy/plush/admin/brad, +/obj/item/toy/plush/admin/jace{ + pixel_y = 12; + pixel_x = -10 + }, +/obj/item/toy/plush/admin/tendsthefire{ + pixel_x = 7; + pixel_y = 20 + }, +/obj/item/toy/plush/admin/veth, +/obj/effect/turf_decal/tile/dark_purple/fourcorners, +/turf/open/floor/iron/textured, +/area/centcom/central_command_areas/admin) "gdv" = ( /obj/structure/table/reinforced/plasmarglass, /obj/item/clothing/head/utility/chefhat, @@ -20680,6 +20861,10 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/evacuation) +"gkT" = ( +/obj/machinery/light/directional/west, +/turf/open/floor/carpet/neon/simple/green/nodots, +/area/centcom/central_command_areas/admin) "glv" = ( /obj/effect/turf_decal/trimline/yellow/filled/corner{ dir = 8 @@ -20711,6 +20896,22 @@ /obj/structure/table/reinforced/plastitaniumglass, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/evacuation) +"gnB" = ( +/obj/structure/table/greyscale, +/obj/item/paper_bin{ + pixel_y = 2 + }, +/obj/item/pen, +/obj/item/paper/monitorkey, +/obj/effect/turf_decal/tile/bar/anticorner/contrasted{ + dir = 8 + }, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/west{ + pixel_x = -4 + }, +/turf/open/floor/plastic, +/area/centcom/central_command_areas/admin) "gqw" = ( /obj/effect/turf_decal/siding/wideplating_new/dark{ dir = 1 @@ -20726,6 +20927,39 @@ }, /turf/open/floor/iron/dark/small, /area/centcom) +"gsj" = ( +/obj/machinery/computer/crew{ + dir = 1 + }, +/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ + dir = 8 + }, +/obj/structure/sign/poster/official/report_crimes/directional/west, +/turf/open/floor/plastic, +/area/centcom/central_command_areas/admin) +"guG" = ( +/obj/structure/closet, +/obj/item/toy/plush/greek_cucumber, +/obj/item/stack/tile/carpet/black/fifty, +/obj/item/stack/tile/carpet/green/fifty, +/obj/item/stack/tile/carpet/neon/simple/black/nodots/sixty, +/obj/item/stack/tile/carpet/neon/simple/blue/nodots/sixty, +/obj/item/stack/tile/carpet/neon/simple/cyan/nodots/sixty, +/obj/item/stack/tile/carpet/neon/simple/green/nodots/sixty, +/obj/item/stack/tile/carpet/neon/simple/lime/nodots/sixty, +/obj/item/stack/tile/carpet/neon/simple/nodots/sixty, +/obj/item/stack/tile/carpet/neon/simple/orange/nodots/sixty, +/obj/item/stack/tile/carpet/neon/simple/pink/nodots/sixty, +/obj/item/stack/tile/carpet/neon/simple/purple/nodots/sixty, +/obj/item/stack/tile/carpet/neon/simple/red/nodots/sixty, +/obj/item/stack/tile/carpet/neon/simple/teal/nodots/sixty, +/obj/item/stack/tile/carpet/neon/simple/violet/nodots/sixty, +/obj/item/stack/tile/carpet/neon/simple/white/nodots/sixty, +/obj/item/stack/tile/carpet/royalblack/fifty, +/obj/item/stack/tile/glass/sixty, +/obj/item/crowbar, +/turf/open/floor/carpet/neon/simple/green/nodots, +/area/centcom/central_command_areas/admin) "guM" = ( /obj/structure/railing/wooden_fencing{ pixel_y = 16 @@ -20736,13 +20970,6 @@ /obj/item/kirbyplants/random/dead, /turf/open/misc/sandy_dirt, /area/centcom/central_command_areas/adminroom) -"gwo" = ( -/obj/structure/closet/cardboard, -/mob/living/basic/bot/medbot/nukie/assop{ - name = "Kahn" - }, -/turf/open/floor/iron/dark/textured_large, -/area/cruiser_dock) "gyJ" = ( /obj/effect/turf_decal/plaque{ icon_state = "L5" @@ -20864,6 +21091,16 @@ dir = 1 }, /area/centcom/central_command_areas/evacuation) +"gMT" = ( +/obj/structure/table/greyscale, +/obj/machinery/computer/records/medical/laptop{ + dir = 1; + pixel_y = 4 + }, +/obj/effect/turf_decal/tile/blue/half/contrasted, +/obj/structure/sign/poster/official/obey/directional/south, +/turf/open/floor/plastic, +/area/centcom/central_command_areas/admin) "gNc" = ( /obj/structure/railing/wooden_fencing{ pixel_y = 16 @@ -20877,6 +21114,10 @@ }, /turf/open/floor/sandy_dirt, /area/centcom/central_command_areas/admin) +"gNy" = ( +/obj/structure/chair/sofa/left/maroon, +/turf/open/floor/carpet/neon/simple/green/nodots, +/area/centcom/central_command_areas/admin) "gOu" = ( /obj/item/storage/toolbox/fishing, /turf/open/floor/sandy_dirt, @@ -21198,6 +21439,10 @@ dir = 8 }, /area/centcom/central_command_areas/evacuation) +"hBT" = ( +/obj/machinery/light/floor/has_bulb, +/turf/open/floor/carpet/neon/simple/green/nodots, +/area/centcom/central_command_areas/admin) "hCn" = ( /turf/open/floor/iron/smooth_edge{ dir = 4 @@ -21297,6 +21542,12 @@ dir = 8 }, /area/cruiser_dock) +"hNa" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 4 + }, +/turf/open/floor/carpet/blue, +/area/centcom/central_command_areas/admin) "hNX" = ( /obj/effect/turf_decal/weather/dirt{ dir = 8 @@ -21315,6 +21566,26 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/evacuation) +"hRs" = ( +/obj/effect/turf_decal/siding/wood, +/obj/structure/chair/plastic, +/turf/open/floor/carpet/blue, +/area/centcom/central_command_areas/admin) +"hUE" = ( +/obj/structure/table, +/obj/item/toy/plush/admin/amunsethep, +/obj/item/toy/plush/admin/raziel{ + pixel_x = 9 + }, +/obj/item/toy/plush/admin/richard_deckard{ + pixel_y = 10; + pixel_x = -6 + }, +/obj/item/toy/plush/admin/waffles, +/obj/effect/turf_decal/tile/dark_purple/fourcorners, +/obj/machinery/light/directional/north, +/turf/open/floor/iron/textured, +/area/centcom/central_command_areas/admin) "hUX" = ( /obj/structure/curtain/cloth, /obj/machinery/door/poddoor/shutters/indestructible/preopen{ @@ -21325,6 +21596,39 @@ "hVj" = ( /turf/open/floor/iron/stairs/right, /area/cruiser_dock) +"hXg" = ( +/obj/structure/table, +/obj/item/storage/box/coffeepack/robusta{ + pixel_x = -6; + pixel_y = 16 + }, +/obj/item/storage/box/coffeepack/robusta{ + pixel_x = -6; + pixel_y = 12 + }, +/obj/item/storage/box/coffeepack{ + pixel_x = 8; + pixel_y = 18 + }, +/obj/item/storage/box/coffeepack{ + pixel_x = 8; + pixel_y = 14 + }, +/obj/item/reagent_containers/cup/glass/mug{ + pixel_x = 9; + pixel_y = -1 + }, +/obj/item/reagent_containers/cup/glass/mug{ + pixel_x = 1; + pixel_y = -1 + }, +/obj/item/reagent_containers/cup/glass/mug{ + pixel_x = -7; + pixel_y = -1 + }, +/obj/machinery/duct, +/turf/open/floor/wood, +/area/centcom/central_command_areas/admin) "iad" = ( /obj/machinery/light/floor/has_bulb, /turf/open/floor/iron/dark/herringbone, @@ -21447,6 +21751,10 @@ "iug" = ( /turf/open/floor/wood/tile, /area/centcom/central_command_areas/adminroom) +"iuZ" = ( +/obj/effect/turf_decal/tile/brown/half/contrasted, +/turf/open/floor/plastic, +/area/centcom/central_command_areas/admin) "iwc" = ( /obj/effect/turf_decal/siding/wood{ dir = 4 @@ -21488,6 +21796,13 @@ "iDX" = ( /turf/open/floor/catwalk_floor/iron_smooth, /area/cruiser_dock) +"iGL" = ( +/obj/machinery/computer/cargo/express, +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ + dir = 4 + }, +/turf/open/floor/plastic, +/area/centcom/central_command_areas/admin) "iIV" = ( /obj/structure/chair/sofa/right, /obj/machinery/light/directional/east{ @@ -21689,6 +22004,13 @@ /obj/machinery/light/directional/east, /turf/open/floor/carpet/donk, /area/centcom/central_command_areas/adminroom) +"jui" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/west, +/obj/effect/turf_decal/weather/dirt{ + dir = 1 + }, +/turf/open/water/arena, +/area/centcom/central_command_areas/admin) "juk" = ( /obj/item/flashlight/flare/candle/amber, /obj/structure/closet/crate/coffin/meatcoffin, @@ -21718,6 +22040,20 @@ /obj/effect/turf_decal/siding/wood, /turf/open/floor/wood/parquet, /area/centcom/central_command_areas/admin) +"jyl" = ( +/obj/structure/table, +/obj/item/toy/plush/admin/ben_mothman, +/obj/item/toy/plush/admin/haileyspire{ + pixel_x = -8; + pixel_y = 12 + }, +/obj/item/toy/plush/admin/syndi_kate{ + pixel_y = 12; + pixel_x = 9 + }, +/obj/effect/turf_decal/tile/dark_purple/fourcorners, +/turf/open/floor/iron/textured, +/area/centcom/central_command_areas/admin) "jzr" = ( /obj/structure/table/reinforced, /obj/item/paper_bin{ @@ -21750,13 +22086,14 @@ }, /turf/open/floor/iron/dark, /area/centcom/central_command_areas/admin) -"jEO" = ( -/obj/structure/fence/door{ - name = "coven corner" +"jFm" = ( +/obj/structure/table, +/obj/item/toy/plush/admin/andrea, +/obj/item/toy/plush/admin/pippi{ + pixel_y = 11 }, -/obj/effect/decal/cleanable/blood/tracks, -/obj/effect/mapping_helpers/airlock/access/any/admin/captain, -/turf/open/floor/grass, +/obj/effect/turf_decal/tile/dark_purple/fourcorners, +/turf/open/floor/iron/textured, /area/centcom/central_command_areas/admin) "jFt" = ( /obj/structure/table/glass/plasmaglass, @@ -21940,15 +22277,47 @@ /obj/item/grown/bananapeel, /turf/open/floor/mineral/bananium, /area/centcom/central_command_areas/admin) +"klo" = ( +/obj/machinery/light/directional/west, +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 8 + }, +/turf/open/floor/plastic, +/area/centcom/central_command_areas/admin) +"klF" = ( +/obj/effect/turf_decal/stripes/line, +/obj/structure/window/reinforced/unanchored/spawner/directional/north{ + pixel_y = 5 + }, +/obj/machinery/prize_vendor/plushies, +/turf/open/floor/iron/textured, +/area/centcom/central_command_areas/admin) "kmd" = ( /obj/machinery/door/airlock/centcom, /turf/open/floor/wood/large, /area/centcom/central_command_areas/evacuation) +"kmv" = ( +/obj/structure/wrestling_corner{ + dir = 1; + pixel_x = 6 + }, +/turf/open/floor/carpet/neon/simple/green/nodots, +/area/centcom/central_command_areas/admin) "kmP" = ( /obj/effect/turf_decal/stripes/line, /obj/structure/flora/grass/jungle/a/style_5, /turf/open/misc/dirt/station, /area/centcom/central_command_areas/admin) +"kne" = ( +/obj/machinery/light/directional/south, +/turf/open/floor/carpet/neon/simple/green/nodots, +/area/centcom/central_command_areas/admin) +"kow" = ( +/obj/effect/turf_decal/tile/blue/half/contrasted{ + dir = 1 + }, +/turf/open/floor/plastic, +/area/centcom/central_command_areas/admin) "kpH" = ( /turf/closed/indestructible/riveted, /area/centcom/central_command_areas/adminroom) @@ -21986,6 +22355,16 @@ /obj/machinery/vending/tool, /turf/open/floor/iron/dark/textured_large, /area/cruiser_dock) +"kAJ" = ( +/obj/structure/window/reinforced/survival_pod/spawner/directional/north, +/turf/open/water/arena, +/area/centcom/central_command_areas/admin) +"kBS" = ( +/obj/effect/turf_decal/siding/dark_green{ + dir = 10 + }, +/turf/open/floor/iron/dark/small, +/area/centcom/central_command_areas/admin) "kCo" = ( /obj/effect/turf_decal/trimline/red/real_red/filled/line{ dir = 1 @@ -22034,6 +22413,27 @@ /obj/structure/flora/grass/jungle/b/style_4, /turf/open/misc/dirt/jungle/dark/arena, /area/centcom/central_command_areas/admin) +"kPU" = ( +/obj/item/reagent_containers/condiment/soymilk, +/obj/item/reagent_containers/condiment/soymilk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/condiment/milk, +/obj/item/reagent_containers/cup/glass/bottle/juice/cream, +/obj/item/reagent_containers/cup/glass/bottle/juice/cream, +/obj/item/reagent_containers/cup/glass/ice, +/obj/item/reagent_containers/cup/glass/ice, +/obj/item/reagent_containers/condiment/sugar, +/obj/item/reagent_containers/condiment/sugar, +/obj/effect/turf_decal/bot_white, +/obj/machinery/chem_dispenser/drinks{ + dir = 1; + pixel_y = -21 + }, +/obj/structure/closet/secure_closet/freezer/fridge{ + req_access = null + }, +/turf/open/floor/wood, +/area/centcom/central_command_areas/admin) "kPZ" = ( /obj/structure/fake_stairs/wood/directional/north, /turf/open/floor/sandy_dirt, @@ -22151,12 +22551,44 @@ /obj/item/storage/cans/sixbeer, /turf/open/floor/wood/tile, /area/centcom/central_command_areas/adminroom) +"lmO" = ( +/obj/structure/table/greyscale, +/obj/item/paper_bin{ + pixel_y = 5 + }, +/obj/item/pen{ + pixel_y = 8 + }, +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 4 + }, +/turf/open/floor/plastic, +/area/centcom/central_command_areas/admin) "lpd" = ( /obj/machinery/modular_computer/preset/id/centcom{ dir = 1 }, /turf/open/floor/wood/parquet, /area/centcom/central_command_areas/admin) +"lrx" = ( +/obj/structure/chair/sofa/right/maroon, +/turf/open/floor/carpet/neon/simple/green/nodots, +/area/centcom/central_command_areas/admin) +"lsb" = ( +/obj/structure/table, +/obj/item/toy/plush/admin, +/obj/item/toy/plush/admin/abraxis, +/obj/item/toy/plush/admin/gabbie{ + pixel_y = 9; + pixel_x = -6 + }, +/obj/item/toy/plush/admin/sydneysahrin{ + pixel_y = 9; + pixel_x = 8 + }, +/obj/effect/turf_decal/tile/dark_purple/fourcorners, +/turf/open/floor/iron/textured, +/area/centcom/central_command_areas/admin) "lwC" = ( /obj/effect/turf_decal/siding/thinplating_new/dark/corner{ dir = 1 @@ -22226,6 +22658,13 @@ /obj/machinery/chem_dispenser/fullupgrade, /turf/open/floor/iron/dark/textured_large, /area/cruiser_dock) +"lNO" = ( +/obj/structure/signboard{ + locked = 1; + sign_text = "Your armament points is effectively your uplink, use it in-hand!" + }, +/turf/open/floor/iron/smooth_large, +/area/cruiser_dock) "lQf" = ( /obj/effect/turf_decal/siding/wideplating_new/dark{ dir = 1 @@ -22251,11 +22690,28 @@ dir = 1 }, /area/cruiser_dock) +"lXp" = ( +/obj/machinery/computer/monitor{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/plastic, +/area/centcom/central_command_areas/admin) "mbG" = ( /obj/structure/sink/kitchen/directional/west, /obj/machinery/light/cold/directional/east, /turf/open/floor/iron/dark/textured_large, /area/cruiser_dock) +"mcg" = ( +/obj/machinery/photocopier/gratis{ + pixel_y = -3 + }, +/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ + dir = 1 + }, +/turf/open/floor/plastic, +/area/centcom/central_command_areas/admin) "mcC" = ( /obj/effect/turf_decal/siding/wood{ dir = 8; @@ -22398,6 +22854,13 @@ }, /turf/open/floor/grass, /area/centcom/central_command_areas/admin) +"mKS" = ( +/obj/machinery/light/floor/has_bulb, +/obj/structure/chair/plastic{ + dir = 4 + }, +/turf/open/floor/glass/reinforced, +/area/centcom/central_command_areas/admin) "mLx" = ( /obj/machinery/light/directional/east{ dir = 8 @@ -22425,6 +22888,23 @@ }, /turf/open/floor/wood/large, /area/centcom/central_command_areas/adminroom) +"mPh" = ( +/obj/machinery/computer/records/pathology{ + dir = 8 + }, +/obj/effect/turf_decal/tile/blue/anticorner/contrasted{ + dir = 4 + }, +/turf/open/floor/plastic, +/area/centcom/central_command_areas/admin) +"mQI" = ( +/obj/structure/table/greyscale, +/obj/machinery/light/directional/north, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 1 + }, +/turf/open/floor/plastic, +/area/centcom/central_command_areas/admin) "mUj" = ( /obj/structure/flora/bush/stalky, /turf/open/floor/sandy_dirt, @@ -22666,6 +23146,23 @@ dir = 4 }, /area/cruiser_dock) +"nXr" = ( +/obj/structure/table/greyscale, +/obj/item/paper_bin{ + pixel_y = 5 + }, +/obj/item/pen{ + pixel_y = 8 + }, +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ + dir = 1 + }, +/obj/structure/sign/flag/nanotrasen/directional/north, +/obj/structure/window/reinforced/spawner/directional/west{ + pixel_x = -4 + }, +/turf/open/floor/plastic, +/area/centcom/central_command_areas/admin) "nYA" = ( /obj/structure/decorative/shelf/alcohol, /obj/effect/turf_decal/siding/wood{ @@ -23058,6 +23555,21 @@ /obj/structure/mop_bucket, /turf/open/floor/iron/dark/textured_large, /area/cruiser_dock) +"pvs" = ( +/obj/structure/table/greyscale, +/obj/machinery/computer/pod/old/syndicate{ + dir = 4; + pixel_y = 6; + pixel_x = -1 + }, +/obj/effect/turf_decal/tile/brown/half/contrasted{ + dir = 8 + }, +/obj/structure/window/reinforced/spawner/directional/west{ + pixel_x = -4 + }, +/turf/open/floor/plastic, +/area/centcom/central_command_areas/admin) "pwv" = ( /obj/structure/closet/crate/cardboard/tiziran, /obj/item/storage/box/tiziran_meats, @@ -23468,6 +23980,17 @@ /obj/structure/flora/grass/jungle/b/style_4, /turf/open/misc/dirt/station, /area/centcom/central_command_areas/admin) +"qYc" = ( +/obj/structure/table/greyscale, +/obj/machinery/computer/records/security/laptop/syndie{ + dir = 1; + pixel_y = 5 + }, +/obj/effect/turf_decal/tile/bar/half/contrasted, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/plastic, +/area/centcom/central_command_areas/admin) "qYP" = ( /obj/structure/railing/wooden_fencing{ pixel_y = 16 @@ -23627,6 +24150,10 @@ }, /turf/open/floor/catwalk_floor/iron_smooth, /area/centcom/syndicate_mothership/control) +"rEM" = ( +/obj/effect/turf_decal/siding/wood/corner, +/turf/open/floor/carpet/blue, +/area/centcom/central_command_areas/admin) "rGd" = ( /obj/structure/railing/wood, /obj/structure/railing/wood{ @@ -23736,6 +24263,20 @@ /obj/item/bait_can/worm/premium, /turf/open/floor/sandy_dirt, /area/centcom/central_command_areas/admin) +"rTr" = ( +/obj/structure/closet, +/obj/item/crowbar, +/obj/item/stack/tile/carpet/executive/thirty, +/obj/item/stack/tile/carpet/donk/thirty, +/obj/item/stack/tile/carpet/cyan/fifty, +/obj/item/stack/tile/carpet/blue/fifty, +/obj/item/stack/tile/carpet/neon/simple/yellow/nodots/sixty, +/obj/item/stack/tile/carpet/neon/thirty, +/obj/item/stack/tile/carpet/purple/fifty, +/obj/item/stack/tile/carpet/royalblue/fifty, +/obj/item/stack/tile/carpet/stellar/thirty, +/turf/open/floor/carpet/neon/simple/green/nodots, +/area/centcom/central_command_areas/admin) "rUo" = ( /obj/structure/table, /obj/machinery/microwave{ @@ -23801,6 +24342,18 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/evacuation) +"sbW" = ( +/obj/machinery/door/poddoor/shutters/indestructible/preopen{ + dir = 8; + id = 5 + }, +/obj/machinery/door/airlock/centcom{ + dir = 4; + name = "Interns' Office" + }, +/obj/effect/mapping_helpers/airlock/access/any/admin/general, +/turf/open/floor/iron/textured, +/area/centcom/central_command_areas/admin) "sco" = ( /obj/structure/table/reinforced, /obj/item/storage/toolbox/syndicate, @@ -23812,6 +24365,9 @@ }, /turf/open/floor/wood/tile, /area/centcom/central_command_areas/adminroom) +"sgZ" = ( +/turf/open/ballpit, +/area/centcom/central_command_areas/admin) "sho" = ( /obj/machinery/light/floor/has_bulb, /obj/effect/landmark/prisonwarp, @@ -23899,6 +24455,19 @@ /obj/machinery/light/directional/east, /turf/open/floor/carpet/orange, /area/centcom/central_command_areas/admin) +"sGh" = ( +/obj/structure/wrestling_corner{ + dir = 2 + }, +/turf/open/floor/carpet/neon/simple/green/nodots, +/area/centcom/central_command_areas/admin) +"sIk" = ( +/obj/machinery/light/floor/has_bulb, +/obj/structure/window/reinforced/spawner/directional/west{ + pixel_x = -4 + }, +/turf/open/floor/carpet/neon/simple/green/nodots, +/area/centcom/central_command_areas/admin) "sJe" = ( /obj/structure/chair/office/light, /turf/open/floor/carpet/red, @@ -23910,6 +24479,12 @@ }, /turf/open/floor/iron/white/textured, /area/centcom/central_command_areas/admin) +"sKy" = ( +/obj/machinery/computer/arcade{ + dir = 1 + }, +/turf/open/floor/carpet/neon/simple/green/nodots, +/area/centcom/central_command_areas/admin) "sMc" = ( /obj/machinery/coffeemaker/impressa, /obj/structure/table/reinforced, @@ -24072,6 +24647,18 @@ }, /turf/open/floor/wood/tile, /area/centcom/central_command_areas/adminroom) +"trJ" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 6 + }, +/obj/structure/window/reinforced/unanchored/spawner/directional/north{ + pixel_y = 5 + }, +/obj/structure/table/glass, +/obj/item/toy/plush/lizard_plushie/green, +/obj/item/storage/box/hug/plushes, +/turf/open/floor/iron/textured, +/area/centcom/central_command_areas/admin) "tse" = ( /obj/structure/hedge, /obj/structure/railing/wood, @@ -24220,6 +24807,21 @@ dir = 4 }, /area/centcom/central_command_areas/evacuation) +"tNj" = ( +/obj/structure/table/greyscale, +/obj/machinery/computer/pod/old/syndicate{ + dir = 4; + pixel_y = 6; + pixel_x = -1 + }, +/obj/effect/turf_decal/tile/bar/half/contrasted{ + dir = 8 + }, +/obj/structure/window/reinforced/spawner/directional/west{ + pixel_x = -4 + }, +/turf/open/floor/plastic, +/area/centcom/central_command_areas/admin) "tOn" = ( /obj/machinery/light/directional/east{ dir = 2 @@ -24295,11 +24897,28 @@ }, /turf/open/floor/sandy_dirt, /area/centcom/central_command_areas/admin) +"ueR" = ( +/obj/effect/turf_decal/tile/bar/half/contrasted{ + dir = 1 + }, +/turf/open/floor/plastic, +/area/centcom/central_command_areas/admin) +"uhK" = ( +/obj/structure/window/reinforced/spawner/directional/west{ + pixel_x = -4 + }, +/turf/open/floor/carpet/neon/simple/green/nodots, +/area/centcom/central_command_areas/admin) "uhR" = ( /obj/structure/table/reinforced, /obj/item/trash/popcorn, /turf/open/floor/carpet/orange, /area/centcom/central_command_areas/admin) +"uiV" = ( +/obj/structure/table/greyscale, +/obj/effect/turf_decal/tile/yellow/half/contrasted, +/turf/open/floor/plastic, +/area/centcom/central_command_areas/admin) "ulw" = ( /obj/structure/flora/bush/sparsegrass, /turf/open/floor/sandy_dirt, @@ -24343,11 +24962,32 @@ /obj/item/bait_can/worm/premium, /turf/open/misc/dirt/jungle/dark/arena, /area/centcom/central_command_areas/admin) +"uzf" = ( +/obj/structure/table/greyscale, +/obj/item/paper_bin{ + pixel_y = 2 + }, +/obj/item/pen, +/obj/effect/turf_decal/tile/blue/anticorner/contrasted, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/plastic, +/area/centcom/central_command_areas/admin) "uAz" = ( /turf/open/floor/iron/smooth_corner{ dir = 4 }, /area/cruiser_dock) +"uAX" = ( +/obj/effect/turf_decal/siding/dark_green, +/turf/open/floor/iron/dark/small, +/area/centcom/central_command_areas/admin) +"uBm" = ( +/obj/effect/turf_decal/stripes/line, +/obj/effect/turf_decal/caution{ + pixel_y = 5 + }, +/turf/open/floor/iron/textured, +/area/centcom/central_command_areas/admin) "uDr" = ( /obj/effect/turf_decal/plaque{ icon_state = "L9" @@ -24400,6 +25040,13 @@ /obj/effect/mapping_helpers/airlock/access/any/admin/captain, /turf/open/floor/iron/dark/smooth_large, /area/centcom/central_command_areas/admin) +"uPS" = ( +/obj/effect/turf_decal/siding/dark_green{ + dir = 8 + }, +/obj/machinery/newscaster/directional/north, +/turf/open/floor/iron/dark/small, +/area/centcom/central_command_areas/admin) "uSs" = ( /obj/structure/statue/sandstone/venus{ dir = 1; @@ -24582,6 +25229,14 @@ /obj/structure/flora/bush/pale/style_4, /turf/open/misc/dirt/jungle/dark/arena, /area/centcom/central_command_areas/admin) +"vuu" = ( +/obj/machinery/computer/warrant{ + dir = 1 + }, +/obj/effect/turf_decal/tile/bar/anticorner/contrasted, +/obj/structure/window/reinforced/spawner/directional/south, +/turf/open/floor/plastic, +/area/centcom/central_command_areas/admin) "vvk" = ( /obj/machinery/door/airlock/centcom{ name = "IS Containment Cell"; @@ -24620,6 +25275,14 @@ }, /turf/open/floor/wood/parquet, /area/centcom/central_command_areas/admin) +"vCe" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 6 + }, +/obj/machinery/light/floor/has_bulb, +/obj/structure/chair/plastic, +/turf/open/floor/carpet/blue, +/area/centcom/central_command_areas/admin) "vDH" = ( /turf/closed/indestructible/fakedoor/glass_airlock{ name = "SuperJail Cell" @@ -24653,6 +25316,19 @@ /obj/structure/flora/bush/stalky, /turf/open/misc/dirt/station, /area/centcom/central_command_areas/admin) +"vLc" = ( +/obj/machinery/computer/message_monitor{ + dir = 4; + pixel_y = 1 + }, +/obj/effect/turf_decal/tile/bar/anticorner/contrasted{ + dir = 1 + }, +/obj/structure/window/reinforced/spawner/directional/west{ + pixel_x = -4 + }, +/turf/open/floor/plastic, +/area/centcom/central_command_areas/admin) "vMB" = ( /obj/effect/turf_decal/sand/plating, /obj/effect/turf_decal/weather/dirt{ @@ -24711,6 +25387,18 @@ }, /turf/open/water/arena, /area/centcom/central_command_areas/admin) +"vYm" = ( +/obj/machinery/door/airlock/centcom{ + dir = 4; + name = "Interns' Office" + }, +/obj/machinery/door/poddoor/shutters/indestructible/preopen{ + dir = 8; + id = 5 + }, +/obj/effect/mapping_helpers/airlock/access/any/admin/general, +/turf/open/floor/iron/textured, +/area/centcom/central_command_areas/admin) "vZN" = ( /obj/effect/turf_decal/trimline/yellow/warning{ dir = 4 @@ -24789,6 +25477,13 @@ }, /turf/open/floor/iron/dark/herringbone, /area/centcom/central_command_areas/evacuation) +"wnj" = ( +/obj/machinery/computer/apc_control, +/obj/effect/turf_decal/tile/yellow/anticorner/contrasted{ + dir = 1 + }, +/turf/open/floor/plastic, +/area/centcom/central_command_areas/admin) "wnH" = ( /obj/effect/decal/cleanable/blood, /obj/effect/turf_decal/sand/plating, @@ -24810,6 +25505,10 @@ }, /turf/open/floor/carpet/red, /area/centcom/central_command_areas/adminroom) +"woD" = ( +/obj/machinery/light/floor/has_bulb/warm, +/turf/open/ballpit, +/area/centcom/central_command_areas/admin) "wpD" = ( /turf/open/floor/iron, /area/centcom/central_command_areas/adminroom) @@ -24818,6 +25517,12 @@ /obj/effect/decal/cleanable/greenglow, /turf/open/floor/grass, /area/centcom/central_command_areas/admin) +"wqY" = ( +/obj/effect/turf_decal/tile/bar/half/contrasted{ + dir = 4 + }, +/turf/open/floor/plastic, +/area/centcom/central_command_areas/admin) "wrH" = ( /obj/effect/turf_decal/siding/wood{ dir = 4; @@ -24838,6 +25543,13 @@ /obj/effect/turf_decal/weather, /turf/open/floor/sandy_dirt, /area/centcom/central_command_areas/admin) +"wtA" = ( +/obj/structure/railing/wrestling{ + dir = 4; + pixel_x = 6 + }, +/turf/open/ballpit, +/area/centcom/central_command_areas/admin) "wul" = ( /obj/item/storage/toolbox/syndicate, /obj/effect/decal/cleanable/oil/slippery, @@ -24945,6 +25657,16 @@ }, /turf/open/floor/wood/parquet, /area/centcom/central_command_areas/admin) +"wKc" = ( +/obj/structure/table/greyscale, +/obj/machinery/computer/pod/old/syndicate{ + dir = 8 + }, +/obj/effect/turf_decal/tile/yellow/half/contrasted{ + dir = 4 + }, +/turf/open/floor/plastic, +/area/centcom/central_command_areas/admin) "wLm" = ( /obj/effect/turf_decal/weather/dirt{ pixel_y = -1 @@ -24971,6 +25693,22 @@ /obj/effect/turf_decal/bot_white, /turf/open/floor/iron/dark/textured_large, /area/cruiser_dock) +"wXc" = ( +/obj/machinery/computer/accounting{ + dir = 4 + }, +/obj/effect/turf_decal/tile/brown/anticorner/contrasted{ + dir = 8 + }, +/obj/structure/window/reinforced/spawner/directional/south, +/obj/structure/window/reinforced/spawner/directional/west{ + pixel_x = -4 + }, +/turf/open/floor/plastic, +/area/centcom/central_command_areas/admin) +"wXS" = ( +/turf/open/floor/glass/reinforced, +/area/centcom/central_command_areas/admin) "xbt" = ( /obj/machinery/door/airlock/centcom{ name = "Checkpoint Office" @@ -25057,6 +25795,17 @@ /obj/structure/window/reinforced/tinted/frosted, /turf/open/floor/iron/dark/small, /area/centcom/central_command_areas/adminroom) +"xnN" = ( +/obj/structure/table, +/obj/item/toy/plush/admin/cassielpip, +/obj/item/toy/plush/admin/marisa{ + pixel_y = 12; + pixel_x = -8 + }, +/obj/item/toy/plush/admin/vicky, +/obj/effect/turf_decal/tile/dark_purple/fourcorners, +/turf/open/floor/iron/textured, +/area/centcom/central_command_areas/admin) "xqY" = ( /obj/effect/turf_decal/trimline/yellow/filled/line{ dir = 4 @@ -25090,6 +25839,10 @@ dir = 4 }, /area/centcom/central_command_areas/evacuation) +"xwy" = ( +/obj/effect/turf_decal/tile/yellow/half/contrasted, +/turf/open/floor/plastic, +/area/centcom/central_command_areas/admin) "xxA" = ( /obj/structure/chair/sofa/corp/left{ dir = 1 @@ -25142,6 +25895,13 @@ /obj/effect/decal/cleanable/piss_stain, /turf/open/misc/sandy_dirt, /area/centcom/central_command_areas/admin) +"xJC" = ( +/obj/structure/closet/cardboard, +/mob/living/basic/bot/medbot/nukie/assop{ + name = "Kahn" + }, +/turf/open/floor/iron/dark/textured_large, +/area/cruiser_dock) "xKq" = ( /obj/structure/railing/wooden_fencing{ pixel_y = 16 @@ -25182,6 +25942,12 @@ /obj/effect/turf_decal/bot_white, /turf/open/floor/iron/dark/textured_large, /area/cruiser_dock) +"xRr" = ( +/obj/structure/chair/office/light{ + dir = 1 + }, +/turf/open/floor/plastic, +/area/centcom/central_command_areas/admin) "xSw" = ( /obj/machinery/door/poddoor/shutters/indestructible, /turf/open/floor/plating, @@ -25206,6 +25972,33 @@ /obj/item/clothing/suit/armor/vest, /turf/open/floor/iron/dark/textured_large, /area/cruiser_dock) +"xTk" = ( +/obj/effect/turf_decal/siding/dark_green{ + dir = 8 + }, +/obj/structure/table/greyscale, +/obj/item/toy/plush/slimeplushie{ + name = "L-Ooze"; + pixel_x = 12; + desc = "An adorable stuffed toy that resembles a slime. The Intern that placed it here thought it would be enough to claim the chair." + }, +/obj/item/paper_bin{ + pixel_y = 5 + }, +/obj/item/pen{ + pixel_y = 8 + }, +/obj/item/stamp/centcom{ + pixel_x = -7; + pixel_y = 5 + }, +/obj/item/stamp/denied{ + pixel_x = 3; + pixel_y = 3 + }, +/obj/item/stamp/granted, +/turf/open/floor/iron/dark/small, +/area/centcom/central_command_areas/admin) "xUt" = ( /obj/machinery/light/floor/has_bulb, /obj/machinery/door/poddoor/shutters/indestructible/preopen{ @@ -25219,6 +26012,17 @@ /obj/item/storage/box/mothic_rations, /turf/open/floor/iron/dark/textured_large, /area/cruiser_dock) +"xWQ" = ( +/obj/structure/chair/office/light, +/turf/open/floor/plastic, +/area/centcom/central_command_areas/admin) +"xXt" = ( +/obj/structure/fence/door{ + name = "coven corner" + }, +/obj/effect/decal/cleanable/blood/tracks, +/turf/open/floor/grass, +/area/centcom/central_command_areas/admin) "xZW" = ( /obj/structure/table/wood, /obj/item/knife/ritual, @@ -25308,6 +26112,10 @@ }, /turf/open/floor/mineral/titanium/purple, /area/centcom/central_command_areas/adminroom) +"ylB" = ( +/obj/structure/extinguisher_cabinet/directional/north, +/turf/open/floor/carpet/neon/simple/green/nodots, +/area/centcom/central_command_areas/admin) (1,1,1) = {" afX @@ -51036,14 +51844,14 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aOn +aOn +aOn +aOn +aOn +aOn +aOn +aOn aaa aaa aaa @@ -51293,14 +52101,14 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aOn +lsb +jyl +gcx +klF +gkT +sKy +aOn aaa aaa aaa @@ -51550,14 +52358,14 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aOn +hUE +dsU +cHD +uBm +fOv +guG +aOn aaa aaa aaa @@ -51807,14 +52615,14 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aOn +jFm +xnN +dky +trJ +fOv +rTr +aOn aaa aaa aaa @@ -52064,16 +52872,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aOn +aOn +aOn +aOn +ylB +fOv +aOn +aOn +aOn +aOn aaa aaa aaa @@ -52321,16 +53129,16 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aOn +wnj +dQy +fLg +fOv +eiY +mcg +klo +gsj +aOn aaa aaa aaa @@ -52578,21 +53386,21 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aOn +uiV +xRr +xwy +fOv +fOv +kow +xWQ +gMT +aOn +aZf +aZf +aZf +aZf +aZf aaa aaa aaa @@ -52835,21 +53643,21 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aOn +lmO +wKc +lXp +fOv +eiY +mPh +ezX +uzf +lrx +sGh +sgZ +sgZ +sgZ +aZf aaa aaa aaa @@ -53092,21 +53900,21 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aOn +nXr +pvs +wXc +fOv +eiY +vLc +tNj +gnB +dRe +bwQ +sgZ +woD +sgZ +aZf aaa aaa aaa @@ -53349,21 +54157,21 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aOn +mQI +xRr +iuZ +fOv +fOv +ueR +xWQ +qYc +gNy +kmv +wtA +wtA +sgZ +aZf aaa aaa aaa @@ -53606,21 +54414,21 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aOn +iGL +eXc +dAJ +fOv +eiY +cuW +wqY +vuu +hBT +fOv +fOv +fOv +aOn +aOn aaa aaa aaa @@ -53863,20 +54671,20 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aOn +uhK +uhK +uhK +fOv +fOv +sIk +uhK +uhK +fOv +fOv +fOv +kne +aOn aaa aaa aaa @@ -54120,20 +54928,20 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aOn +fOv +fOv +fOv +fOv +fOv +fOv +fOv +fOv +fOv +bnI +rEM +hNa +aOn aaa aaa aaa @@ -54377,20 +55185,20 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa +aOn +uPS +biX +xTk +kBS +fOv +fOv +wXS +dBD +fOv +bnI +hRs +kPU +aOn aaa aaa aaa @@ -54634,20 +55442,20 @@ aaa aaa aaa aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -aaa -kpH +aOn +cQB +dro +dNQ +uAX +fOv +fOv +mKS +kAJ +dUc +rEM +vCe +dTu +aOn kpH kpH kpH @@ -54896,15 +55704,15 @@ aOn aOn aOn aOn +vYm +sbW +fyA +kAJ +jZA aOn +cvN +hXg aOn -aOn -aOn -aOn -aOn -aOn -kpH -kpH kti kti kpH @@ -55152,14 +55960,14 @@ jZA jZA jZA myi -jZA -jZA -jZA -jZA -dUc +fXH +dHV +dHV +jui jZA jZA aOn +aOn kpH cEh ojY @@ -55409,10 +56217,10 @@ hsX jZA jZA jZA -jZA -jZA -jZA -jZA +fXH +dHV +dHV +ssC jZA jZA jZA @@ -55666,10 +56474,10 @@ bwZ ssC jZA jZA -jZA -jZA -jZA -jZA +wco +dHV +dHV +ssC jZA jZA jZA @@ -55922,10 +56730,10 @@ eZi bwZ ssC jZA -jZA -jZA -jZA -jZA +fXH +dHV +dHV +lAc jZA jZA jZA @@ -56179,9 +56987,9 @@ eZi bwZ ssC jZA -jZA -jZA -jZA +fXH +dHV +lAc jZA jZA jZA @@ -56436,9 +57244,9 @@ tHH bwZ pnO fme -fme -fme -jZA +dKR +dHV +ssC jZA jZA jZA @@ -56978,7 +57786,7 @@ fDz mvd vHF xGe -jEO +xXt btE btE kjO @@ -78280,7 +79088,7 @@ iDX lWT xWM hrx -gwo +xJC axV nvZ fEL @@ -81617,7 +82425,7 @@ axV vJI xPB sAG -cvB +lNO lWT xPB vJI diff --git a/_maps/map_files/tramstation/tramstation.dmm b/_maps/map_files/tramstation/tramstation.dmm index 5d8e91a53c79..d41326a620d7 100644 --- a/_maps/map_files/tramstation/tramstation.dmm +++ b/_maps/map_files/tramstation/tramstation.dmm @@ -2359,26 +2359,6 @@ /obj/structure/mirror/directional/west, /turf/open/floor/iron/showroomfloor, /area/ruin/powered/clownplanet) -"aiL" = ( -/obj/structure/table, -/obj/item/razor{ - pixel_x = 9; - pixel_y = 5 - }, -/obj/item/reagent_containers/cup/rag{ - pixel_x = -6; - pixel_y = 2 - }, -/obj/item/reagent_containers/cup/bottle{ - desc = "A small bottle of Barber's Aid."; - list_reagents = list(/datum/reagent/barbers_aid=30); - name = "Barber's Aid bottle"; - pixel_x = -2; - pixel_y = 10 - }, -/obj/machinery/computer/security/telescreen/entertainment/directional/east, -/turf/open/floor/wood/large, -/area/station/service/barber) "aiT" = ( /obj/machinery/atmospherics/pipe/smart/manifold/yellow/visible{ dir = 4 @@ -7661,6 +7641,30 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/security/prison) +"brQ" = ( +/obj/structure/table, +/obj/item/razor{ + pixel_x = 9; + pixel_y = 1 + }, +/obj/item/reagent_containers/cup/bottle{ + desc = "A small bottle of Barber's Aid."; + list_reagents = list(/datum/reagent/barbers_aid=30); + name = "Barber's Aid bottle"; + pixel_x = -7; + pixel_y = 11 + }, +/obj/item/reagent_containers/cup/rag{ + pixel_x = -7; + pixel_y = 6 + }, +/obj/machinery/computer/security/telescreen/entertainment/directional/east, +/obj/item/scissors{ + pixel_x = 1; + pixel_y = 2 + }, +/turf/open/floor/wood/large, +/area/station/service/barber) "brZ" = ( /obj/structure/chair/office/light{ dir = 1 @@ -9912,6 +9916,49 @@ /obj/effect/turf_decal/tile/red/half/contrasted, /turf/open/floor/iron, /area/station/command/bridge) +"caC" = ( +/obj/structure/rack/wooden, +/obj/item/perfume/amber{ + pixel_x = -8; + pixel_y = 10 + }, +/obj/item/perfume/cologne{ + pixel_x = -4; + pixel_y = 10 + }, +/obj/item/perfume/wood{ + pixel_y = 10 + }, +/obj/item/perfume/mint{ + pixel_x = 4; + pixel_y = 10 + }, +/obj/item/perfume/cherry{ + pixel_x = -8; + pixel_y = -5 + }, +/obj/item/perfume/jasmine{ + pixel_x = -4; + pixel_y = -5 + }, +/obj/item/perfume/pear{ + pixel_y = -5 + }, +/obj/item/perfume/rose{ + pixel_x = 4; + pixel_y = -5 + }, +/obj/item/perfume/vanilla{ + pixel_x = 8; + pixel_y = 10 + }, +/obj/item/perfume/strawberry{ + pixel_x = 8; + pixel_y = -5 + }, +/obj/machinery/airalarm/directional/north, +/turf/open/floor/wood, +/area/station/service/barber) "caD" = ( /obj/effect/turf_decal/trimline/purple/filled/line, /obj/structure/chair{ @@ -12944,29 +12991,6 @@ dir = 8 }, /area/station/command/teleporter) -"dau" = ( -/obj/structure/table, -/obj/item/clothing/head/wig, -/obj/item/clothing/head/wig{ - pixel_x = -4; - pixel_y = -5 - }, -/obj/item/clothing/head/wig{ - pixel_x = 4; - pixel_y = -5 - }, -/obj/item/clothing/mask/fakemoustache, -/obj/item/clothing/mask/fakemoustache{ - pixel_x = -4; - pixel_y = -5 - }, -/obj/item/clothing/mask/fakemoustache, -/obj/item/clothing/mask/fakemoustache{ - pixel_x = 8; - pixel_y = -5 - }, -/turf/open/floor/plating, -/area/station/service/barber) "daQ" = ( /obj/machinery/power/apc/auto_name/directional/north, /obj/structure/cable, @@ -13882,6 +13906,13 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron, /area/station/security/prison) +"dpb" = ( +/obj/machinery/door/airlock{ + id_tag = "commissarydoor"; + name = "Barber Storage" + }, +/turf/open/floor/iron/checker, +/area/station/service/barber) "dpd" = ( /turf/open/misc/grass/jungle, /area/station/science/lower) @@ -16384,9 +16415,6 @@ /obj/structure/industrial_lift/public, /turf/open/floor/plating/elevatorshaft, /area/station/cargo/miningdock) -"eep" = ( -/turf/open/floor/plating, -/area/station/service/barber) "eer" = ( /obj/structure/chair/pew, /obj/effect/landmark/start/hangover, @@ -18547,6 +18575,10 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /turf/closed/wall/r_wall, /area/station/science/ordnance/burnchamber) +"ePd" = ( +/obj/machinery/vending/barbervend, +/turf/open/floor/iron/checker, +/area/station/service/barber) "ePj" = ( /obj/machinery/atmospherics/components/unary/outlet_injector/monitored/incinerator_input{ dir = 1 @@ -20837,16 +20869,6 @@ /obj/structure/cable, /turf/open/floor/iron/dark, /area/station/command/bridge) -"fzO" = ( -/obj/effect/turf_decal/siding/wood{ - dir = 8 - }, -/obj/machinery/door/airlock/wood{ - name = "Representative Bedroom" - }, -/obj/effect/mapping_helpers/airlock/access/all/admin/general, -/turf/open/floor/wood, -/area/station/command/heads_quarters/nt_rep) "fzZ" = ( /obj/effect/turf_decal/stripes{ dir = 1 @@ -23505,6 +23527,14 @@ /obj/effect/decal/cleanable/dirt, /turf/open/floor/iron/smooth, /area/station/maintenance/department/science) +"gwq" = ( +/obj/machinery/camera/motion/directional/north{ + c_tag = "Secure - Nuclear Storage"; + network = list("ss13","secure") + }, +/obj/structure/closet/secure_closet/nanotrasen_representative, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/nt_rep) "gwy" = ( /obj/structure/sign/warning/no_smoking{ pixel_x = -28 @@ -24732,6 +24762,9 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron/dark, /area/station/science/ordnance/storage) +"gPu" = ( +/turf/open/floor/iron/checker, +/area/station/service/barber) "gPw" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ @@ -24975,6 +25008,14 @@ /obj/machinery/firealarm/directional/west, /turf/open/floor/iron/white, /area/station/science/research) +"gST" = ( +/obj/machinery/door/airlock/corporate{ + name = "Blueshield's Quarters" + }, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, +/turf/open/floor/carpet/neon/simple/blue/nodots, +/area/station/command/heads_quarters/blueshield) "gTl" = ( /obj/structure/lattice/catwalk, /obj/effect/mapping_helpers/airlock/cyclelink_helper, @@ -29843,6 +29884,16 @@ /obj/machinery/newscaster/directional/east, /turf/open/floor/carpet, /area/station/security/detectives_office) +"ixV" = ( +/obj/structure/chair/comfy/brown{ + color = "#c45c57"; + desc = "Remarkably soft, with plush cozy cushions, premium memory-foam and covered in stain-resistant fabric. Made by Kat-Kea???!"; + dir = 4; + name = "Premium Cozy Chair" + }, +/obj/effect/landmark/start/nanotrasen_representative, +/turf/open/floor/wood, +/area/station/command/heads_quarters/nt_rep) "iyc" = ( /turf/closed/wall, /area/station/commons/vacant_room/office) @@ -30224,6 +30275,10 @@ /obj/effect/spawner/random/trash/food_packaging, /turf/open/floor/iron/smooth, /area/station/maintenance/starboard/lesser) +"iFC" = ( +/obj/machinery/smartfridge/chemistry/virology/preloaded, +/turf/closed/wall/r_wall, +/area/station/medical/pathology) "iFN" = ( /obj/structure/cable, /turf/open/floor/plating, @@ -30305,6 +30360,19 @@ }, /turf/open/floor/carpet, /area/station/command/meeting_room) +"iGV" = ( +/obj/machinery/door/airlock/corporate{ + id_tag = "Repdoor"; + name = "Representative's Office" + }, +/obj/structure/cable, +/obj/effect/landmark/navigate_destination, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, +/turf/open/floor/wood, +/area/station/command/heads_quarters/nt_rep) "iHr" = ( /obj/structure/sink{ dir = 4; @@ -34322,6 +34390,17 @@ /obj/structure/disposalpipe/segment, /turf/open/floor/iron/grimy, /area/station/hallway/secondary/entry) +"jTg" = ( +/obj/structure/closet, +/obj/item/clothing/head/soft/red, +/obj/item/clothing/head/soft/green{ + pixel_x = 4; + pixel_y = -1 + }, +/obj/item/clothing/suit/apron/overalls, +/obj/item/clothing/suit/apron/overalls, +/turf/open/floor/iron/checker, +/area/station/service/barber) "jTj" = ( /obj/structure/railing, /obj/effect/turf_decal/trimline/dark_blue/arrow_cw, @@ -38025,6 +38104,20 @@ /obj/machinery/light/directional/north, /turf/open/floor/iron/smooth, /area/station/hallway/primary/tram/right) +"kYn" = ( +/obj/item/modular_computer/laptop/preset/civilian{ + pixel_y = 7 + }, +/obj/structure/table/wood, +/obj/machinery/computer/security/telescreen/entertainment/directional/north, +/obj/item/clothing/accessory/medal/silver/bureaucracy, +/obj/item/clothing/accessory/medal/gold/ordom, +/obj/item/flashlight/lamp/green{ + pixel_x = 5; + pixel_y = 16 + }, +/turf/open/floor/wood/parquet, +/area/station/command/heads_quarters/nt_rep) "kYp" = ( /obj/structure/industrial_lift/tram, /obj/structure/window/reinforced/tram/directional/south, @@ -40029,18 +40122,6 @@ /obj/item/wrench, /turf/open/floor/iron/white, /area/station/maintenance/department/science) -"lFC" = ( -/obj/machinery/door/airlock/corporate{ - id_tag = "Repdoor"; - name = "Representative's Office" - }, -/obj/effect/mapping_helpers/airlock/access/all/admin/general, -/obj/structure/cable, -/obj/effect/landmark/navigate_destination, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/turf/open/floor/wood, -/area/station/command/heads_quarters/nt_rep) "lFH" = ( /obj/effect/spawner/structure/window/reinforced/shuttle, /turf/open/floor/plating, @@ -40791,13 +40872,6 @@ /obj/effect/landmark/start/paramedic, /turf/open/floor/iron/white, /area/station/medical/treatment_center) -"lTf" = ( -/obj/machinery/door/airlock{ - id_tag = "commissarydoor"; - name = "Barber Storage" - }, -/turf/open/floor/plating, -/area/station/service/barber) "lTx" = ( /obj/effect/turf_decal/stripes/white/line, /obj/effect/turf_decal/siding/wideplating/dark{ @@ -49140,14 +49214,6 @@ /obj/machinery/door/firedoor, /turf/open/floor/iron/white, /area/station/science/lower) -"oCT" = ( -/obj/item/modular_computer/laptop/preset/civilian{ - pixel_y = 7 - }, -/obj/structure/table/wood, -/obj/machinery/computer/security/telescreen/entertainment/directional/north, -/turf/open/floor/wood/parquet, -/area/station/command/heads_quarters/nt_rep) "oCX" = ( /obj/effect/decal/cleanable/dirt, /obj/structure/disposalpipe/segment{ @@ -52095,6 +52161,30 @@ /obj/structure/cable, /turf/open/floor/iron, /area/station/commons/fitness/recreation) +"pBl" = ( +/obj/machinery/light/small/directional/south, +/obj/structure/table, +/obj/item/clothing/head/wig, +/obj/item/clothing/head/wig{ + pixel_x = 4; + pixel_y = -5 + }, +/obj/item/clothing/head/wig{ + pixel_x = -4; + pixel_y = -5 + }, +/obj/item/clothing/mask/fakemoustache, +/obj/item/clothing/mask/fakemoustache, +/obj/item/clothing/mask/fakemoustache{ + pixel_x = -4; + pixel_y = -5 + }, +/obj/item/clothing/mask/fakemoustache{ + pixel_x = 8; + pixel_y = -5 + }, +/turf/open/floor/iron/checker, +/area/station/service/barber) "pBx" = ( /obj/effect/turf_decal/sand/plating, /obj/effect/turf_decal/stripes/asteroid/full, @@ -54558,13 +54648,6 @@ /obj/effect/turf_decal/tile/neutral/fourcorners, /turf/open/floor/iron/dark, /area/station/science/robotics/mechbay) -"qoq" = ( -/obj/machinery/door/airlock/corporate{ - name = "Blueshield's Quarters" - }, -/obj/effect/mapping_helpers/airlock/access/all/admin/general, -/turf/open/floor/carpet/neon/simple/blue/nodots, -/area/station/command/heads_quarters/blueshield) "qos" = ( /obj/machinery/exodrone_launcher, /obj/effect/decal/cleanable/dirt, @@ -55865,20 +55948,6 @@ /obj/machinery/computer/crew, /turf/open/floor/iron/white, /area/station/medical/medbay/central) -"qIq" = ( -/obj/item/flashlight/lamp/green{ - pixel_x = 5; - pixel_y = 16 - }, -/obj/item/clothing/accessory/medal/gold/ordom, -/obj/item/clothing/accessory/medal/silver/bureaucracy, -/obj/structure/table/wood, -/obj/machinery/camera/motion/directional/north{ - c_tag = "Secure - Nuclear Storage"; - network = list("ss13","secure") - }, -/turf/open/floor/wood/parquet, -/area/station/command/heads_quarters/nt_rep) "qIs" = ( /obj/structure/closet/secure_closet/security, /obj/effect/turf_decal/trimline/red/filled/line, @@ -56742,6 +56811,19 @@ /obj/item/radio/intercom/directional/east, /turf/open/floor/iron/white, /area/station/science/ordnance) +"qWx" = ( +/obj/machinery/door/airlock/corporate{ + id_tag = "BSdoor"; + name = "Blueshield's Office" + }, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/structure/cable, +/obj/effect/landmark/navigate_destination, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, +/turf/open/floor/carpet/neon/simple/blue/nodots, +/area/station/command/heads_quarters/blueshield) "qWy" = ( /obj/item/kirbyplants/random, /obj/machinery/newscaster/directional/south, @@ -58946,28 +59028,6 @@ }, /turf/open/floor/iron/dark, /area/station/service/hydroponics) -"rHs" = ( -/obj/structure/table/wood, -/obj/item/paper_bin/carbon{ - pixel_x = 4; - pixel_y = 3 - }, -/obj/item/paper/fluff/gateway, -/obj/item/pen/fountain{ - pixel_y = 10 - }, -/obj/item/stamp/centcom{ - pixel_x = 6 - }, -/obj/item/stamp/denied{ - pixel_x = -6; - pixel_y = 4 - }, -/obj/item/stamp{ - pixel_x = -6 - }, -/turf/open/floor/wood, -/area/station/command/heads_quarters/nt_rep) "rHu" = ( /obj/machinery/door/airlock/maintenance_hatch{ name = "Science Maintenance Hatch" @@ -61003,18 +61063,6 @@ }, /turf/open/floor/iron/white, /area/station/science/lower) -"sqP" = ( -/obj/machinery/door/airlock/corporate{ - id_tag = "BSdoor"; - name = "Blueshield's Office" - }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/structure/cable, -/obj/effect/mapping_helpers/airlock/access/all/admin/general, -/obj/effect/landmark/navigate_destination, -/turf/open/floor/carpet/neon/simple/blue/nodots, -/area/station/command/heads_quarters/blueshield) "sqQ" = ( /obj/machinery/door/airlock/medical{ name = "Surgery B" @@ -62089,23 +62137,6 @@ /obj/effect/mapping_helpers/airlock/access/all/security/entrance, /turf/open/floor/iron, /area/station/security/brig) -"sHA" = ( -/obj/structure/table, -/obj/item/razor, -/obj/item/reagent_containers/cup/rag{ - pixel_x = 8; - pixel_y = 15 - }, -/obj/item/reagent_containers/cup/bottle{ - desc = "A small bottle of Barber's Aid."; - list_reagents = list(/datum/reagent/barbers_aid=30); - name = "Barber's Aid bottle"; - pixel_x = 10; - pixel_y = 3 - }, -/obj/machinery/computer/security/telescreen/entertainment/directional/east, -/turf/open/floor/wood/large, -/area/station/service/barber) "sHH" = ( /turf/closed/wall/r_wall, /area/station/command/heads_quarters/ce) @@ -68232,6 +68263,25 @@ /obj/effect/turf_decal/siding/thinplating, /turf/open/floor/iron, /area/station/hallway/primary/tram/center) +"uCs" = ( +/obj/structure/table/wood, +/obj/item/paper_bin/carbon{ + pixel_x = 4; + pixel_y = 3 + }, +/obj/item/paper/fluff/gateway, +/obj/item/pen/fountain{ + pixel_y = 10 + }, +/obj/item/stamp/denied{ + pixel_x = -6; + pixel_y = 4 + }, +/obj/item/stamp{ + pixel_x = -6 + }, +/turf/open/floor/wood, +/area/station/command/heads_quarters/nt_rep) "uCv" = ( /obj/effect/turf_decal/siding/wood, /turf/open/floor/iron/grimy, @@ -72753,6 +72803,17 @@ }, /turf/open/floor/circuit/telecomms/server, /area/station/science/server) +"vSo" = ( +/obj/effect/turf_decal/siding/wood{ + dir = 8 + }, +/obj/machinery/door/airlock/wood{ + name = "Representative Bedroom" + }, +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep, +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield, +/turf/open/floor/wood, +/area/station/command/heads_quarters/nt_rep) "vSt" = ( /obj/effect/decal/cleanable/dirt, /obj/machinery/power/apc/auto_name/directional/south, @@ -73121,10 +73182,6 @@ }, /turf/open/floor/iron, /area/station/engineering/atmos) -"vZB" = ( -/obj/machinery/airalarm/directional/north, -/turf/open/floor/wood/large, -/area/station/service/barber) "vZD" = ( /obj/item/kirbyplants/random/dead, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -73947,10 +74004,6 @@ }, /turf/open/floor/iron, /area/station/security/checkpoint/supply) -"wna" = ( -/obj/machinery/light/small/directional/south, -/turf/open/floor/plating, -/area/station/service/barber) "wng" = ( /obj/structure/cable, /obj/structure/table, @@ -74617,17 +74670,6 @@ }, /turf/open/floor/iron, /area/station/hallway/secondary/construction/engineering) -"wxa" = ( -/obj/structure/closet, -/obj/item/clothing/head/soft/red, -/obj/item/clothing/head/soft/green{ - pixel_x = 4; - pixel_y = -1 - }, -/obj/item/clothing/suit/apron/overalls, -/obj/item/clothing/suit/apron/overalls, -/turf/open/floor/plating, -/area/station/service/barber) "wxb" = ( /obj/structure/cable, /obj/structure/disposalpipe/junction/yjunction{ @@ -77761,15 +77803,6 @@ }, /turf/open/floor/iron, /area/station/cargo/storage) -"xAQ" = ( -/obj/structure/chair/comfy/brown{ - color = "#c45c57"; - desc = "Remarkably soft, with plush cozy cushions, premium memory-foam and covered in stain-resistant fabric. Made by Kat-Kea???!"; - dir = 4; - name = "Premium Cozy Chair" - }, -/turf/open/floor/wood, -/area/station/command/heads_quarters/nt_rep) "xAR" = ( /obj/machinery/door/airlock/security{ name = "Prison Workshop" @@ -95289,7 +95322,7 @@ jWs oVM oVM lRi -qIq +gwq dUv ozL aAa @@ -95546,7 +95579,7 @@ lqD oYr nkB lRi -oCT +kYn wXp svE qLy @@ -95805,7 +95838,7 @@ kCj lRi bYI bYI -fzO +vSo lQM pZW pZW @@ -96061,7 +96094,7 @@ mgS kCj lRi nhN -xAQ +ixV igP lQM unC @@ -96318,7 +96351,7 @@ mgS bLk lRi hjX -rHs +uCs qLG lQM wOa @@ -97605,7 +97638,7 @@ rUR rUR rUR gnH -lFC +iGV bEz tpc lQM @@ -99147,7 +99180,7 @@ rUR rUR rUR uzS -sqP +qWx pnp bJM lQM @@ -99915,7 +99948,7 @@ kLz kLz lRF gfH -qoq +gST bML lyI iUN @@ -114577,8 +114610,8 @@ rcU rcU qWy mGw -dau -wxa +jTg +ePd mGw nvU nag @@ -114834,8 +114867,8 @@ eTW eTW izQ mGw -eep -wna +gPu +pBl mGw mjf iaA @@ -115090,9 +115123,9 @@ tqd nzC lML fFl -lTf -eep -eep +dpb +gPu +gPu mGw coX fJo @@ -115342,7 +115375,7 @@ iRL iRL ykX mGw -vZB +caC bja nar ahj @@ -115599,11 +115632,11 @@ iRL cXm ykX mGw -sHA +brQ sYl unD sYl -aiL +brQ mGw aaa aaa @@ -181432,7 +181465,7 @@ bFq ugt ugt nIr -ugt +iFC ugt ugt qSP diff --git a/_maps/~monkestation/RandomEngines/BoxStation/empty.dmm b/_maps/~monkestation/RandomEngines/BoxStation/empty.dmm index 70ab6bba77b0..c11aa7dd26f6 100644 --- a/_maps/~monkestation/RandomEngines/BoxStation/empty.dmm +++ b/_maps/~monkestation/RandomEngines/BoxStation/empty.dmm @@ -47,7 +47,7 @@ }, /obj/effect/mapping_helpers/airlock/access/all/engineering/general, /turf/open/floor/plating, -/area/station/maintenance/department/engineering/central) +/area/station/engineering/main) "m" = ( /obj/structure/lattice/catwalk, /turf/open/space/basic, @@ -73,7 +73,7 @@ /turf/open/floor/iron, /area/station/engineering/main) "z" = ( -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ dir = 4 }, /obj/effect/spawner/structure/window/reinforced/plasma, diff --git a/_maps/~monkestation/RandomEngines/BoxStation/particle_accelerator.dmm b/_maps/~monkestation/RandomEngines/BoxStation/particle_accelerator.dmm index 32de13887c45..aaca9b27c89f 100644 --- a/_maps/~monkestation/RandomEngines/BoxStation/particle_accelerator.dmm +++ b/_maps/~monkestation/RandomEngines/BoxStation/particle_accelerator.dmm @@ -244,7 +244,7 @@ /turf/open/floor/plating, /area/station/engineering/main) "nN" = ( -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ dir = 4 }, /obj/effect/spawner/structure/window/reinforced/plasma, @@ -446,7 +446,7 @@ }, /obj/effect/mapping_helpers/airlock/access/all/engineering/general, /turf/open/floor/plating, -/area/station/maintenance/department/engineering/central) +/area/station/engineering/main) "zF" = ( /obj/machinery/door/airlock/engineering/glass{ name = "Engine SMES Room" diff --git a/_maps/~monkestation/RandomEngines/BoxStation/sm_teg.dmm b/_maps/~monkestation/RandomEngines/BoxStation/sm_teg.dmm index 67298b8c7ad4..431736541f74 100644 --- a/_maps/~monkestation/RandomEngines/BoxStation/sm_teg.dmm +++ b/_maps/~monkestation/RandomEngines/BoxStation/sm_teg.dmm @@ -16,7 +16,7 @@ }, /obj/effect/mapping_helpers/airlock/access/all/engineering/general, /obj/effect/mapping_helpers/airlock/cyclelink_helper, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible, +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible, /turf/open/floor/iron/dark/textured_large, /area/station/engineering/main) "bi" = ( @@ -59,7 +59,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/simple/pink/visible, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) "cV" = ( @@ -129,7 +129,7 @@ /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) "eT" = ( -/obj/machinery/atmospherics/pipe/smart/simple/pink/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ dir = 5 }, /turf/open/floor/iron/dark, @@ -196,7 +196,7 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible, +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible, /turf/open/floor/iron/dark/textured_large, /area/station/engineering/main) "gu" = ( @@ -243,9 +243,14 @@ /turf/open/floor/plating, /area/station/engineering/main) "hG" = ( -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ - dir = 10 +/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/turf/open/floor/iron/dark, +/area/station/engineering/supermatter/room) +"hK" = ( +/obj/machinery/atmospherics/pipe/bridge_pipe/cyan/visible{ + dir = 4 }, +/obj/machinery/atmospherics/pipe/bridge_pipe/brown/visible, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) "hQ" = ( @@ -296,7 +301,7 @@ /area/station/engineering/supermatter) "ix" = ( /obj/machinery/atmospherics/components/binary/pump{ - name = "Gas Director" + name = "Director" }, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) @@ -322,7 +327,7 @@ /turf/open/floor/plating, /area/station/engineering/supermatter) "iV" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/pink/visible{ +/obj/machinery/atmospherics/pipe/smart/manifold/green/visible{ dir = 1 }, /turf/open/floor/iron/dark, @@ -425,6 +430,7 @@ /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) "li" = ( +/obj/machinery/light/small/directional/south, /obj/machinery/airalarm/directional/south, /obj/effect/mapping_helpers/airalarm/engine_access, /turf/open/floor/engine, @@ -456,7 +462,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/simple/pink/visible/layer4{ +/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer4{ dir = 4 }, /obj/machinery/atmospherics/components/unary/portables_connector/visible/layer2{ @@ -466,7 +472,7 @@ /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) "lQ" = ( -/obj/machinery/atmospherics/pipe/bridge_pipe/pink/visible, +/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible, /obj/machinery/atmospherics/pipe/bridge_pipe/orange/visible{ dir = 4 }, @@ -480,8 +486,8 @@ /turf/open/space/basic, /area/space/nearstation) "mg" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/pink/visible{ - dir = 1 +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ + dir = 10 }, /obj/machinery/meter, /turf/open/floor/iron/dark, @@ -507,7 +513,7 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 8 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/pink/visible, +/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, /turf/open/floor/engine, /area/station/engineering/supermatter) "mF" = ( @@ -536,7 +542,9 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible, +/obj/machinery/atmospherics/components/binary/pump{ + name = "Mix to TEG Hot Loop" + }, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) "mO" = ( @@ -554,7 +562,7 @@ /area/station/engineering/supermatter/room) "mR" = ( /obj/effect/turf_decal/tile/yellow/fourcorners, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ dir = 6 }, /turf/open/floor/iron, @@ -569,7 +577,7 @@ /obj/effect/turf_decal/stripes/corner{ dir = 4 }, -/obj/machinery/atmospherics/pipe/bridge_pipe/pink/visible, +/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible, /obj/effect/turf_decal/stripes/corner{ dir = 8 }, @@ -600,9 +608,7 @@ /area/station/engineering/supermatter/room) "ot" = ( /obj/effect/spawner/structure/window/reinforced/plasma, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ - dir = 6 - }, +/obj/machinery/atmospherics/pipe/smart/simple/pink/visible, /obj/machinery/door/poddoor/shutters/radiation/preopen{ id = "eng_burn"; name = "Burn Chamber Radiation Shutters" @@ -634,7 +640,7 @@ }, /obj/machinery/light/directional/north, /obj/machinery/status_display/ai/directional/north, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ dir = 4 }, /turf/open/floor/iron/dark, @@ -743,7 +749,7 @@ /area/station/engineering/main) "sm" = ( /obj/effect/spawner/structure/window/reinforced/plasma, -/obj/machinery/atmospherics/pipe/smart/simple/pink/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ dir = 9 }, /obj/machinery/door/poddoor/shutters/radiation/preopen{ @@ -786,7 +792,7 @@ /obj/machinery/firealarm/directional/south{ pixel_x = 5 }, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ dir = 4 }, /turf/open/floor/iron, @@ -810,7 +816,7 @@ /obj/effect/mapping_helpers/airlock/cyclelink_helper{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/simple/pink/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ dir = 4 }, /obj/machinery/door/airlock/engineering/glass/critical{ @@ -923,7 +929,7 @@ /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) "vp" = ( -/obj/machinery/atmospherics/pipe/smart/simple/pink/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ dir = 4 }, /turf/open/floor/iron/dark, @@ -936,12 +942,12 @@ /obj/effect/turf_decal/stripes/corner{ dir = 8 }, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible, +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) "vR" = ( /obj/effect/turf_decal/delivery/red, -/obj/machinery/atmospherics/pipe/layer_manifold/pink/visible{ +/obj/machinery/atmospherics/pipe/layer_manifold/green/visible{ dir = 4 }, /turf/open/floor/iron/dark/smooth_large, @@ -1017,7 +1023,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible, +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) "xQ" = ( @@ -1028,7 +1034,7 @@ /turf/open/space/basic, /area/space/nearstation) "xR" = ( -/obj/machinery/atmospherics/pipe/smart/simple/pink/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ dir = 5 }, /turf/closed/wall/r_wall, @@ -1079,7 +1085,7 @@ /turf/open/space/basic, /area/space/nearstation) "zd" = ( -/obj/machinery/atmospherics/pipe/smart/simple/pink/visible, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible, /obj/machinery/meter, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) @@ -1099,6 +1105,12 @@ /obj/structure/cable, /turf/open/floor/plating, /area/station/engineering/main) +"zh" = ( +/obj/machinery/atmospherics/components/binary/pump{ + name = "Mix to TEG Cold Loop" + }, +/turf/open/floor/iron/dark, +/area/station/engineering/supermatter/room) "zj" = ( /obj/machinery/atmospherics/pipe/smart/manifold/scrubbers/visible{ dir = 1 @@ -1181,7 +1193,7 @@ /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) "Bs" = ( -/obj/machinery/atmospherics/pipe/smart/simple/pink/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ dir = 4 }, /obj/machinery/meter, @@ -1284,7 +1296,10 @@ /turf/open/floor/iron/dark, /area/station/engineering/main) "DQ" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/orange/visible, +/obj/machinery/atmospherics/pipe/smart/manifold/brown/visible{ + dir = 4 + }, +/obj/machinery/meter, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) "DV" = ( @@ -1336,7 +1351,7 @@ }, /obj/effect/mapping_helpers/airlock/access/all/engineering/general, /turf/open/floor/plating, -/area/station/maintenance/department/engineering/central) +/area/station/engineering/main) "Ew" = ( /obj/effect/turf_decal/stripes/line{ dir = 8 @@ -1365,7 +1380,7 @@ /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) "Fr" = ( -/obj/machinery/atmospherics/pipe/bridge_pipe/pink/visible, +/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible, /obj/machinery/atmospherics/pipe/bridge_pipe/violet/visible{ dir = 4 }, @@ -1411,7 +1426,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/machinery/atmospherics/pipe/smart/manifold/pink/visible, +/obj/machinery/atmospherics/pipe/smart/manifold/green/visible, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) "FZ" = ( @@ -1444,7 +1459,7 @@ /turf/open/floor/iron/dark, /area/station/engineering/main) "Gk" = ( -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible, +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible, /turf/open/floor/iron/dark/smooth_large, /area/station/engineering/main) "Gm" = ( @@ -1462,7 +1477,7 @@ /turf/open/floor/engine, /area/station/engineering/supermatter) "Go" = ( -/obj/machinery/atmospherics/pipe/bridge_pipe/pink/visible, +/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible, /obj/machinery/atmospherics/pipe/bridge_pipe/purple/visible{ dir = 4 }, @@ -1487,10 +1502,10 @@ /obj/effect/turf_decal/stripes/line{ dir = 5 }, -/obj/machinery/atmospherics/pipe/smart/simple/pink/visible/layer2{ +/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer2{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/simple/pink/visible/layer4{ +/obj/machinery/atmospherics/pipe/smart/simple/green/visible/layer4{ dir = 4 }, /obj/machinery/atmospherics/components/unary/portables_connector/visible{ @@ -1531,7 +1546,7 @@ /turf/open/floor/plating, /area/station/engineering/main) "HY" = ( -/obj/machinery/atmospherics/pipe/smart/simple/pink/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ dir = 6 }, /turf/closed/wall/r_wall, @@ -1592,8 +1607,9 @@ /obj/effect/turf_decal/stripes/corner{ dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/manifold/orange/visible, -/obj/machinery/meter, +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ + dir = 4 + }, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) "Jc" = ( @@ -1621,13 +1637,11 @@ /turf/open/floor/iron/dark, /area/station/engineering/main) "Ju" = ( -/obj/machinery/atmospherics/components/binary/pump{ - name = "Mix to TEG Hot Loop" - }, +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) "Kb" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/pink/visible{ +/obj/machinery/atmospherics/pipe/smart/manifold/green/visible{ dir = 4 }, /turf/open/floor/iron/dark, @@ -1662,7 +1676,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/components/binary/pump{ - name = "Gas Director" + name = "Director" }, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) @@ -1714,7 +1728,7 @@ /turf/open/floor/plating/airless, /area/space/nearstation) "ML" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/high_volume/on{ +/obj/machinery/atmospherics/components/unary/outlet_injector/on{ dir = 1 }, /turf/open/floor/engine/vacuum, @@ -1750,7 +1764,7 @@ /turf/open/space/basic, /area/space/nearstation) "NQ" = ( -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ dir = 4 }, /obj/effect/spawner/structure/window/reinforced/plasma, @@ -1771,8 +1785,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/airalarm/directional/east, -/obj/effect/mapping_helpers/airalarm/unlocked, /obj/structure/table/reinforced, /obj/item/storage/toolbox/mechanical{ pixel_y = 6 @@ -1852,7 +1864,7 @@ /obj/effect/turf_decal/stripes/corner{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/simple/pink/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ dir = 4 }, /turf/open/floor/iron/dark, @@ -1879,7 +1891,7 @@ "QM" = ( /obj/effect/spawner/structure/window/reinforced/plasma, /obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ - dir = 9 + dir = 5 }, /obj/machinery/door/poddoor/shutters/radiation/preopen{ id = "eng_burn"; @@ -1901,11 +1913,11 @@ /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) "Rx" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/pink/visible, +/obj/machinery/atmospherics/pipe/smart/manifold4w/green/visible, /turf/closed/wall/r_wall, /area/station/engineering/supermatter) "Rz" = ( -/obj/machinery/atmospherics/pipe/smart/simple/pink/visible, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible, /obj/effect/turf_decal/stripes/line{ dir = 8 }, @@ -1926,7 +1938,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 9 }, -/obj/machinery/atmospherics/pipe/smart/manifold/pink/visible{ +/obj/machinery/atmospherics/pipe/smart/manifold/green/visible{ dir = 1 }, /turf/open/floor/iron/dark, @@ -1942,7 +1954,7 @@ /turf/open/space/basic, /area/space/nearstation) "Sb" = ( -/obj/machinery/atmospherics/pipe/smart/simple/pink/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ dir = 10 }, /turf/closed/wall/r_wall, @@ -1969,7 +1981,7 @@ /turf/open/space/basic, /area/space/nearstation) "Tm" = ( -/obj/machinery/atmospherics/pipe/bridge_pipe/pink/visible, +/obj/machinery/atmospherics/pipe/bridge_pipe/green/visible, /obj/machinery/atmospherics/pipe/bridge_pipe/scrubbers/visible{ dir = 4 }, @@ -2013,8 +2025,8 @@ /turf/closed/wall/r_wall, /area/station/engineering/main) "TS" = ( -/obj/machinery/atmospherics/components/unary/heat_exchanger{ - dir = 8 +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ + dir = 10 }, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) @@ -2025,7 +2037,7 @@ /turf/open/floor/iron/dark, /area/station/engineering/main) "Ud" = ( -/obj/machinery/atmospherics/pipe/smart/simple/pink/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ dir = 9 }, /turf/closed/wall/r_wall, @@ -2046,9 +2058,8 @@ /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) "Ur" = ( -/obj/structure/cable, -/obj/machinery/atmospherics/components/unary/heat_exchanger{ - dir = 4 +/obj/machinery/atmospherics/pipe/smart/manifold/brown/visible{ + dir = 8 }, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) @@ -2072,6 +2083,14 @@ /obj/machinery/atmospherics/pipe/smart/simple/dark/visible/layer4, /turf/open/space/basic, /area/space/nearstation) +"UD" = ( +/obj/effect/turf_decal/stripes/line, +/obj/machinery/atmospherics/components/binary/pump{ + name = "Burn to Byproducts"; + dir = 1 + }, +/turf/open/floor/iron/dark, +/area/station/engineering/supermatter/room) "US" = ( /obj/effect/turf_decal/stripes/corner{ dir = 4 @@ -2128,7 +2147,7 @@ /area/station/engineering/main) "Vy" = ( /obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible{ - dir = 1 + dir = 8 }, /obj/machinery/meter, /turf/open/floor/iron/dark, @@ -2165,7 +2184,7 @@ dir = 9 }, /obj/structure/extinguisher_cabinet/directional/north, -/obj/machinery/atmospherics/components/unary/portables_connector/visible, +/obj/machinery/space_heater, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) "Wn" = ( @@ -2258,7 +2277,7 @@ /turf/open/floor/iron/dark, /area/station/engineering/main) "Yr" = ( -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ dir = 4 }, /turf/open/floor/iron/dark, @@ -2270,7 +2289,7 @@ /area/station/engineering/supermatter/room) "Yy" = ( /obj/effect/turf_decal/delivery/red, -/obj/machinery/atmospherics/pipe/smart/simple/pink/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/green/visible{ dir = 4 }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, @@ -2287,7 +2306,7 @@ /turf/open/floor/iron/dark/smooth_large, /area/station/engineering/supermatter/room) "YV" = ( -/obj/machinery/atmospherics/pipe/smart/simple/pink/visible, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) "YW" = ( @@ -2332,6 +2351,17 @@ }, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) +"Zv" = ( +/obj/effect/spawner/structure/window/reinforced/plasma, +/obj/machinery/door/poddoor/shutters/radiation/preopen{ + id = "eng_burn"; + name = "Burn Chamber Radiation Shutters" + }, +/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ + dir = 10 + }, +/turf/open/floor/plating, +/area/station/engineering/supermatter/room) "ZK" = ( /obj/machinery/atmospherics/pipe/smart/manifold/orange/visible{ dir = 1 @@ -2342,7 +2372,8 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/machinery/atmospherics/pipe/smart/simple/pink/visible, +/obj/machinery/atmospherics/pipe/smart/simple/green/visible, +/obj/machinery/meter, /turf/open/floor/iron/dark, /area/station/engineering/supermatter/room) "ZX" = ( @@ -2956,7 +2987,7 @@ Wc IW UX gK -TS +UX VQ kg xs @@ -2984,7 +3015,7 @@ UW Yr KS SE -Ur +xu VM Eu fX @@ -3010,8 +3041,8 @@ Gk gm xD DQ -UX -UX +Ur +zh Vy Yt TM @@ -3020,8 +3051,8 @@ WR WB WB rB -UX -kn +hG +UD ot nr oZ @@ -3037,16 +3068,16 @@ TQ ky TQ TI -hG -Ga +UX +TS Ju -WT +hK vG mN bi +Fc Ga Ga -Fc WT Uf Gd @@ -3078,8 +3109,8 @@ Tv Ij yo FJ -IB -io +Zv +nr oZ Xb tU diff --git a/_maps/~monkestation/RandomEngines/BoxStation/supermatter.dmm b/_maps/~monkestation/RandomEngines/BoxStation/supermatter.dmm index 828e93827900..6ec1d38b9ecb 100644 --- a/_maps/~monkestation/RandomEngines/BoxStation/supermatter.dmm +++ b/_maps/~monkestation/RandomEngines/BoxStation/supermatter.dmm @@ -80,12 +80,13 @@ /turf/open/floor/iron/dark, /area/station/engineering/main) "co" = ( +/obj/machinery/light/small/directional/west, +/obj/machinery/airalarm/directional/west, +/obj/effect/mapping_helpers/airalarm/engine_access, /obj/machinery/atmospherics/components/binary/pump{ dir = 1; name = "Gas to Filter" }, -/obj/machinery/airalarm/directional/west, -/obj/effect/mapping_helpers/airalarm/engine_access, /turf/open/floor/engine, /area/station/engineering/supermatter) "cs" = ( @@ -124,6 +125,7 @@ /turf/open/floor/engine, /area/station/engineering/supermatter/room) "dy" = ( +/obj/machinery/light/small/directional/east, /obj/machinery/atmospherics/components/binary/pump{ name = "Gas to Chamber" }, @@ -159,7 +161,7 @@ }, /obj/effect/mapping_helpers/airlock/access/all/engineering/general, /turf/open/floor/plating, -/area/station/maintenance/department/engineering/central) +/area/station/engineering/supermatter/room) "ez" = ( /obj/structure/reflector/box/anchored{ dir = 1 @@ -760,7 +762,7 @@ }, /obj/effect/mapping_helpers/airlock/access/all/engineering/general, /turf/open/floor/plating, -/area/station/maintenance/department/engineering/central) +/area/station/engineering/supermatter/room) "AT" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/effect/turf_decal/stripes/line, @@ -1061,10 +1063,6 @@ /obj/effect/turf_decal/stripes/line, /turf/open/floor/engine, /area/station/engineering/supermatter/room) -"IK" = ( -/obj/machinery/light/floor/has_bulb, -/turf/open/floor/engine, -/area/station/engineering/supermatter) "IV" = ( /obj/structure/extinguisher_cabinet/directional/west, /obj/structure/table, @@ -1314,7 +1312,7 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ dir = 4 }, /turf/open/floor/engine, @@ -1497,7 +1495,7 @@ /turf/open/floor/engine, /area/station/engineering/supermatter/room) "WL" = ( -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ dir = 4 }, /obj/effect/spawner/structure/window/reinforced/plasma, @@ -2061,7 +2059,7 @@ Su TL Pd pv -IK +YV PZ cZ oS diff --git a/_maps/~monkestation/RandomEngines/BoxStation/teg.dmm b/_maps/~monkestation/RandomEngines/BoxStation/teg.dmm index 29a94d0a1a0c..e9df1f5b187e 100644 --- a/_maps/~monkestation/RandomEngines/BoxStation/teg.dmm +++ b/_maps/~monkestation/RandomEngines/BoxStation/teg.dmm @@ -25,13 +25,13 @@ /area/space/nearstation) "aD" = ( /obj/machinery/atmospherics/components/binary/pump{ - name = "Hot"; - dir = 1 + name = "Mix to Cold Loop" }, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) "bc" = ( /obj/machinery/light/small/directional/east, +/obj/machinery/status_display/evac/directional/east, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 8 }, @@ -45,9 +45,12 @@ /turf/open/space/basic, /area/space/nearstation) "bl" = ( -/obj/machinery/atmospherics/pipe/smart/simple/pink/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/pink/hidden{ dir = 4 }, +/obj/machinery/igniter{ + id = "teg_igniter" + }, /turf/open/floor/engine/vacuum, /area/station/engineering/atmospherics_engine) "bp" = ( @@ -91,7 +94,6 @@ }, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, /obj/structure/cable/layer1, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) @@ -109,7 +111,7 @@ /turf/open/space/basic, /area/space/nearstation) "dU" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ dir = 4 }, /turf/open/floor/iron/dark, @@ -226,7 +228,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 8 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) @@ -243,7 +244,9 @@ /area/station/engineering/atmospherics_engine) "ig" = ( /obj/machinery/light/directional/north, -/obj/structure/sign/warning/engine_safety/directional/north, +/obj/machinery/power/apc/auto_name/directional/north, +/obj/structure/cable, +/obj/effect/mapping_helpers/apc/cell_10k, /obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 }, @@ -271,7 +274,6 @@ /obj/effect/turf_decal/bot, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, /obj/machinery/door/window/left/directional/south{ name = "Gas Canister Storage"; req_access = list("engineering") @@ -281,19 +283,20 @@ /turf/open/floor/iron/dark/smooth_large, /area/station/engineering/atmospherics_engine) "km" = ( -/obj/structure/cable, -/obj/machinery/power/apc/auto_name/directional/north, -/obj/effect/mapping_helpers/apc/cell_10k, +/obj/machinery/firealarm/directional/north, +/obj/machinery/light_switch/directional/north{ + pixel_x = 8 + }, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) "ku" = ( -/obj/machinery/sparker/directional/east{ - id = "teg_igniter" - }, -/obj/machinery/atmospherics/pipe/heat_exchanging/simple{ - dir = 9 +/obj/effect/spawner/structure/window/reinforced/plasma, +/obj/machinery/atmospherics/pipe/heat_exchanging/junction, +/obj/machinery/door/poddoor/shutters/radiation/preopen{ + id = "eng_burn"; + name = "Burn Chamber Radiation Shutters" }, -/turf/open/floor/engine/vacuum, +/turf/open/floor/plating, /area/station/engineering/atmospherics_engine) "kV" = ( /obj/machinery/atmospherics/components/binary/pump{ @@ -313,7 +316,6 @@ /obj/effect/turf_decal/bot, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, /obj/machinery/portable_atmospherics/canister/plasma, /obj/structure/window/reinforced/spawner/directional/south, /obj/structure/cable/layer1, @@ -341,10 +343,10 @@ /turf/open/space/basic, /area/space/nearstation) "lY" = ( -/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ +/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) "md" = ( @@ -361,7 +363,10 @@ /area/template_noop) "mm" = ( /obj/machinery/camera/autoname/directional/east, -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible, +/obj/machinery/atmospherics/components/binary/pump{ + name = "Hot"; + dir = 1 + }, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) "mx" = ( @@ -370,10 +375,15 @@ /turf/open/floor/iron/dark/smooth_large, /area/station/engineering/atmospherics_engine) "mG" = ( -/obj/machinery/atmospherics/pipe/smart/simple/pink/visible{ +/obj/effect/spawner/structure/window/reinforced/plasma, +/obj/machinery/atmospherics/pipe/layer_manifold/pink/hidden{ dir = 4 }, -/turf/closed/wall/r_wall, +/obj/machinery/door/poddoor/shutters/radiation/preopen{ + id = "eng_burn"; + name = "Burn Chamber Radiation Shutters" + }, +/turf/open/floor/plating, /area/station/engineering/atmospherics_engine) "mH" = ( /obj/machinery/atmospherics/components/binary/pump{ @@ -384,7 +394,6 @@ /area/station/engineering/atmospherics_engine) "mJ" = ( /obj/effect/turf_decal/bot, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/portable_atmospherics/canister/nitrogen, /obj/structure/window/reinforced/spawner/directional/south, @@ -413,13 +422,13 @@ /obj/effect/turf_decal/stripes/line{ dir = 1 }, -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ dir = 6 }, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) "os" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ dir = 9 }, /turf/open/floor/iron/dark, @@ -428,7 +437,6 @@ /obj/effect/turf_decal/stripes/line{ dir = 4 }, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) @@ -447,9 +455,15 @@ /obj/machinery/atmospherics/pipe/smart/simple/orange/visible, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) +"oT" = ( +/obj/effect/turf_decal/stripes/line{ + dir = 1 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "pg" = ( /obj/effect/turf_decal/bot, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/portable_atmospherics/canister/nitrous_oxide, /obj/structure/window/reinforced/spawner/directional/south, @@ -457,18 +471,18 @@ /turf/open/floor/iron/dark/smooth_large, /area/station/engineering/atmospherics_engine) "pt" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible, /obj/machinery/meter, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) "qj" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/dark/visible{ +/obj/machinery/atmospherics/pipe/smart/manifold/brown/visible{ dir = 1 }, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) "qJ" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ dir = 9 }, /obj/machinery/meter, @@ -481,7 +495,6 @@ "re" = ( /obj/machinery/light/directional/west, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/firealarm/directional/west, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) "rh" = ( @@ -497,8 +510,8 @@ /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) "rA" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 8 }, @@ -511,14 +524,16 @@ /area/station/engineering/main) "rZ" = ( /obj/machinery/atmospherics/pipe/heat_exchanging/simple, -/obj/machinery/atmospherics/pipe/smart/simple/pink/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/pink/hidden{ dir = 4 }, /turf/open/floor/engine/vacuum, /area/station/engineering/atmospherics_engine) "so" = ( -/obj/machinery/atmospherics/pipe/smart/manifold/cyan/visible{ - dir = 1 +/obj/machinery/atmospherics/pipe/bridge_pipe/brown/visible, +/obj/machinery/atmospherics/components/binary/valve/digital{ + name = "Burn Bypass"; + dir = 4 }, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) @@ -555,7 +570,7 @@ /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) "tI" = ( -/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ dir = 4 }, /obj/effect/spawner/structure/window/reinforced/plasma, @@ -622,7 +637,6 @@ /area/station/engineering/atmospherics_engine) "vr" = ( /obj/effect/turf_decal/bot, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/door/window/right/directional/south{ name = "Gas Canister Storage"; @@ -654,6 +668,7 @@ /area/station/engineering/atmospherics_engine) "vW" = ( /obj/machinery/light/small/directional/west, +/obj/machinery/status_display/ai/directional/west, /obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 4 }, @@ -682,7 +697,6 @@ "wu" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, /obj/structure/cable/layer1, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) @@ -693,7 +707,7 @@ /area/station/engineering/atmospherics_engine) "wD" = ( /obj/machinery/atmospherics/components/binary/valve/digital{ - name = "Space Loop Bypass"; + name = "Space Bypass"; dir = 4 }, /turf/open/floor/iron/dark, @@ -720,6 +734,9 @@ /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) "wU" = ( +/obj/machinery/igniter{ + id = "teg_igniter" + }, /turf/open/floor/engine/vacuum, /area/station/engineering/atmospherics_engine) "xr" = ( @@ -751,11 +768,14 @@ /area/station/engineering/atmospherics_engine) "yO" = ( /obj/machinery/camera/autoname/directional/west, -/obj/machinery/atmospherics/pipe/smart/simple/cyan/visible, +/obj/machinery/atmospherics/components/binary/pump{ + name = "Cold" + }, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) "yS" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible, +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible, +/obj/structure/cable, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) "zy" = ( @@ -771,9 +791,6 @@ /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) "zR" = ( -/obj/machinery/sparker/directional/west{ - id = "teg_igniter" - }, /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ dir = 6 }, @@ -805,8 +822,8 @@ /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) "AM" = ( -/obj/effect/turf_decal/delivery, -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, +/obj/effect/turf_decal/bot, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/components/unary/portables_connector/visible{ dir = 4 }, @@ -834,7 +851,6 @@ /area/station/engineering/atmospherics_engine) "CH" = ( /obj/effect/turf_decal/bot, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/portable_atmospherics/canister/oxygen, /obj/structure/window/reinforced/spawner/directional/south, @@ -843,7 +859,6 @@ "CY" = ( /obj/machinery/light/directional/east, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/light_switch/directional/east, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) "Df" = ( @@ -887,7 +902,7 @@ /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/structure/cable/layer1, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ dir = 4 }, /turf/open/floor/iron/dark, @@ -933,10 +948,11 @@ dir = 4 }, /obj/machinery/meter, +/obj/structure/cable, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) "Gr" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ dir = 6 }, /turf/open/floor/iron/dark, @@ -1028,7 +1044,7 @@ /area/station/engineering/atmospherics_engine) "Kd" = ( /obj/machinery/atmospherics/components/binary/pump{ - name = "Cold" + name = "Mix to Hot Loop" }, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) @@ -1107,10 +1123,11 @@ }, /obj/effect/mapping_helpers/airlock/access/all/engineering/general, /turf/open/floor/plating, -/area/station/maintenance/department/engineering/central) +/area/station/engineering/atmospherics_engine) "Mu" = ( -/obj/machinery/atmospherics/components/binary/valve/digital{ - name = "Space to Cold Loop" +/obj/machinery/atmospherics/components/binary/pump{ + name = "Space to Cold Loop"; + dir = 1 }, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) @@ -1143,11 +1160,22 @@ pixel_y = -24 }, /obj/machinery/light/directional/south, +/obj/machinery/button/door/directional/south{ + id = "eng_burn"; + name = "Burn Chamber Radiation Shutters Control"; + req_access = list("engineering"); + pixel_x = 6; + pixel_y = -35 + }, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) "No" = ( /obj/effect/spawner/structure/window/reinforced/plasma, /obj/machinery/atmospherics/pipe/smart/simple/dark/visible, +/obj/machinery/door/poddoor/shutters/radiation/preopen{ + id = "eng_burn"; + name = "Burn Chamber Radiation Shutters" + }, /turf/open/floor/plating, /area/station/engineering/atmospherics_engine) "Ot" = ( @@ -1162,7 +1190,8 @@ /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) "OH" = ( -/obj/machinery/atmospherics/pipe/bridge_pipe/dark/visible, +/obj/machinery/atmospherics/pipe/bridge_pipe/brown/visible, +/obj/structure/cable, /obj/machinery/atmospherics/pipe/bridge_pipe/orange/visible{ dir = 4 }, @@ -1175,10 +1204,10 @@ /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) "Pq" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/light/directional/south, +/obj/structure/sign/poster/official/random/directional/south, +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/status_display/evac/directional/south, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) "Pv" = ( @@ -1215,18 +1244,23 @@ }, /turf/open/space/basic, /area/space/nearstation) +"Rb" = ( +/obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ + dir = 4 + }, +/obj/structure/cable, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "Rl" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, -/obj/machinery/atmospherics/components/binary/valve/digital{ - name = "Cold Loop" - }, +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible, +/obj/machinery/meter, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) "Rr" = ( /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/components/binary/valve/digital{ - name = "Cold Loop" - }, +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible, +/obj/machinery/meter, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) "RA" = ( @@ -1237,7 +1271,6 @@ /obj/effect/turf_decal/bot, /obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/structure/cable, /obj/machinery/portable_atmospherics/canister/plasma, /obj/structure/window/reinforced/spawner/directional/south, /obj/structure/window/reinforced/spawner/directional/east, @@ -1246,6 +1279,7 @@ /area/station/engineering/atmospherics_engine) "So" = ( /obj/structure/table/reinforced, +/obj/effect/spawner/random/engineering/toolbox, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) "SB" = ( @@ -1303,15 +1337,14 @@ /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) "Uf" = ( -/obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, -/obj/machinery/atmospherics/components/unary/vent_scrubber/on/layer2{ +/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, +/obj/machinery/atmospherics/components/unary/vent_pump/on/layer4{ dir = 8 }, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) "Ui" = ( /obj/effect/turf_decal/bot, -/obj/machinery/atmospherics/pipe/smart/manifold4w/scrubbers/hidden/layer2, /obj/machinery/atmospherics/pipe/smart/manifold4w/supply/hidden/layer4, /obj/machinery/portable_atmospherics/canister/oxygen, /obj/structure/window/reinforced/spawner/directional/south, @@ -1323,7 +1356,7 @@ /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) "Ut" = ( -/obj/machinery/atmospherics/components/binary/valve/digital{ +/obj/machinery/atmospherics/components/binary/pump{ name = "Cold Loop to Space" }, /turf/open/floor/iron/dark, @@ -1382,10 +1415,11 @@ /turf/open/floor/iron/dark/textured, /area/station/engineering/atmospherics_engine) "WP" = ( -/obj/machinery/atmospherics/pipe/smart/simple/dark/visible{ +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible{ dir = 6 }, /obj/machinery/meter, +/obj/structure/cable, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) "Xz" = ( @@ -1407,7 +1441,7 @@ /obj/machinery/atmospherics/components/unary/thermomachine/heater{ dir = 4 }, -/obj/machinery/status_display/ai/directional/west, +/obj/machinery/status_display/evac/directional/west, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) "Yl" = ( @@ -1423,6 +1457,10 @@ "YM" = ( /obj/effect/spawner/structure/window/reinforced/plasma, /obj/machinery/atmospherics/pipe/smart/simple/brown/visible, +/obj/machinery/door/poddoor/shutters/radiation/preopen{ + id = "eng_burn"; + name = "Burn Chamber Radiation Shutters" + }, /turf/open/floor/plating, /area/station/engineering/atmospherics_engine) "YS" = ( @@ -1431,6 +1469,10 @@ /obj/item/stock_parts/cell/high/empty, /turf/open/floor/iron/dark, /area/station/engineering/atmospherics_engine) +"Zb" = ( +/obj/machinery/atmospherics/pipe/smart/manifold4w/orange/visible, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "Zc" = ( /obj/structure/lattice/catwalk, /obj/machinery/atmospherics/pipe/heat_exchanging/simple{ @@ -1438,6 +1480,10 @@ }, /turf/open/space/basic, /area/space/nearstation) +"Zi" = ( +/obj/machinery/atmospherics/pipe/smart/simple/brown/visible, +/turf/open/floor/iron/dark, +/area/station/engineering/atmospherics_engine) "Zv" = ( /obj/machinery/atmospherics/pipe/smart/simple/orange/visible{ dir = 9 @@ -1688,11 +1734,11 @@ EY aw Kk Kk -Kk +Zb HO No lH -bU +ku lA bl mh @@ -1716,7 +1762,7 @@ ig Go Gr pt -yS +so Pv YM gd @@ -1741,14 +1787,14 @@ re ug Lj RA -wb +Rb dU aw -lv +Kk kV No lH -bU +ku Wj wU mh @@ -1764,7 +1810,7 @@ dh Vv Df Gh -bp +oT WP yS yS @@ -1779,7 +1825,7 @@ dh Vv UF SO -ku +lA Vv dh ml @@ -1886,12 +1932,12 @@ CB Jo ja lY -RA -RA +up +up rA rA -RA -iI +up +ly wb Vv ml @@ -1906,16 +1952,16 @@ QA ds TT qj -yS +Zi Rr -lv +Kd zY BG fT oK GY mm -aD +lv lv lv lv @@ -1962,16 +2008,16 @@ Jo ot ja qj -yS +Zi Rl -lm +aD MD ry cx OD gG yO -Kd +lm lm lm lm @@ -1998,12 +2044,12 @@ GJ QA TT Uf -up -up +RA +RA AM AM -up -ly +RA +iI OO Vv ml @@ -2133,9 +2179,9 @@ CY SB sJ up -so -lm -HM +OO +lb +xr Dk Ut bU diff --git a/auxlua.dll b/auxlua.dll deleted file mode 100755 index 4f712c26d82e..000000000000 Binary files a/auxlua.dll and /dev/null differ diff --git a/code/__DEFINES/access.dm b/code/__DEFINES/access.dm index e670e05f4ce8..02faa4f529df 100644 --- a/code/__DEFINES/access.dm +++ b/code/__DEFINES/access.dm @@ -34,6 +34,10 @@ #define ACCESS_CAPTAIN "captain" /// Access used for the Head of Personnel's personal quarters in mapping, as well as the security console and other HoP-related things. #define ACCESS_HOP "hop" +/// Access for Blueshield to their office and locker, as well as access to the NT Representitive Office +#define ACCESS_BLUESHIELD "blueshield" ///monkestation edit +/// Access for NT Rep to their office and locker, as well as access to the Blueshield Office +#define ACCESS_NT_REPRESENTATVE "nt_rep" ///monkestation edit /// Security's General Access. In mapping, grants access to spaces such as to the "meeting room" or firing range, as well as being the general access that Tablet/Computer Programs check for "heads". Also unlocks other types of security equipment. #define ACCESS_SECURITY "security" @@ -51,7 +55,7 @@ #define ACCESS_HOS "hos" /// Access for the detective to get into their office, the medical data console, and some other detective-related stuff. #define ACCESS_DETECTIVE "detective" -/// Access for the brig physician to get basic access to medical tools, but not all encompassing access to medical under normal manning. MONKESTATION EDIT +/// Access for the brig physician to get basic access to medical tools, but not all encompassing access to medical under normal manning. #define ACCESS_BRIG_PHYSICIAN "brig_physician" /// MONKESTATION EDIT /// Engineering General Access, grants access to the standard parts of engineering (as well as the Supermatter and related equipment). diff --git a/code/__DEFINES/atmospherics/atmos_piping.dm b/code/__DEFINES/atmospherics/atmos_piping.dm index bdbf845a02f0..077c07b38db3 100644 --- a/code/__DEFINES/atmospherics/atmos_piping.dm +++ b/code/__DEFINES/atmospherics/atmos_piping.dm @@ -41,6 +41,8 @@ #define TANK_DEFAULT_RELEASE_PRESSURE 16 /// The default initial value gas plasmamen tanks releases valves are set to. #define TANK_PLASMAMAN_RELEASE_PRESSURE 4 +/// The default initial value gas flown tanks releases valves are set to. +#define TANK_CLOWN_RELEASE_PRESSURE 20 /// The internal temperature in kelvins at which a handheld gas tank begins to take damage. #define TANK_MELT_TEMPERATURE 1000000 /// The internal pressure in kPa at which a handheld gas tank begins to take damage. diff --git a/code/__DEFINES/clothing_paths.dm b/code/__DEFINES/clothing_paths.dm index 9c7ef699a3ec..3425ccf23174 100644 --- a/code/__DEFINES/clothing_paths.dm +++ b/code/__DEFINES/clothing_paths.dm @@ -1,14 +1,3 @@ -#define SIMIAN_UNIFORM_ICON 'monkestation/icons/mob/clothing/species/simian/uniform.dmi' -#define SIMIAN_SUIT_ICON 'monkestation/icons/mob/clothing/species/simian/suit.dmi' -#define SIMIAN_BACK_ICON 'monkestation/icons/mob/clothing/species/simian/back.dmi' -#define SIMIAN_BELT_ICON 'monkestation/icons/mob/clothing/species/simian/belts.dmi' -#define SIMIAN_GLASSES_ICON 'monkestation/icons/mob/clothing/species/simian/glasses.dmi' -#define SIMIAN_GLOVES_ICON 'monkestation/icons/mob/clothing/species/simian/gloves.dmi' -#define SIMIAN_NECK_ICON 'monkestation/icons/mob/clothing/species/simian/neck.dmi' -#define SIMIAN_SHOES_ICON 'monkestation/icons/mob/clothing/species/simian/shoes.dmi' - - - #define LOADOUT_ITEM_BELT "belt" #define LOADOUT_ITEM_EARS "ears" #define LOADOUT_ITEM_GLASSES "glasses" @@ -23,6 +12,7 @@ #define LOADOUT_ITEM_INHAND "inhand_items" #define LOADOUT_ITEM_MISC "pocket_items" #define LOADOUT_ITEM_TOYS "toys" +#define LOADOUT_ITEM_PLUSHIES "plushies" #define INFO_GREYSCALE "greyscale" #define INFO_NAMED "name" diff --git a/code/__DEFINES/color_matrix/simian_matrix.dm b/code/__DEFINES/color_matrix/lizard_matrix.dm similarity index 91% rename from code/__DEFINES/color_matrix/simian_matrix.dm rename to code/__DEFINES/color_matrix/lizard_matrix.dm index cd3580993e05..050519d55df9 100644 --- a/code/__DEFINES/color_matrix/simian_matrix.dm +++ b/code/__DEFINES/color_matrix/lizard_matrix.dm @@ -1,4 +1,6 @@ // These COLORPIXEL defines indicate the pixel position on the base sprite of a clothing piece from which the color will be taken. +// Only 4 of these are used, for digi lizards. Rest have been removed once Simians were changed to use filters instead. +/* #define GLASSES_COLORPIXEL_X_1 10 #define GLASSES_COLORPIXEL_Y_1 16 #define GLASSES_COLORPIXEL_X_2 18 @@ -40,12 +42,15 @@ #define CLOAK_COLORPIXEL_X_2 12 #define CLOAK_COLORPIXEL_Y_2 22 +*/ #define UNDER_COLORPIXEL_X_1 15 #define UNDER_COLORPIXEL_Y_1 17 #define UNDER_COLORPIXEL_X_2 10 #define UNDER_COLORPIXEL_Y_2 19 +/* #define UNDER_COLORPIXEL_X_3 15 #define UNDER_COLORPIXEL_Y_3 10 #define BACK_COLORPIXEL_X_1 13 #define BACK_COLORPIXEL_Y_1 18 +*/ diff --git a/code/__DEFINES/colors.dm b/code/__DEFINES/colors.dm index 6d73b04a78e6..8fa72b137e64 100644 --- a/code/__DEFINES/colors.dm +++ b/code/__DEFINES/colors.dm @@ -352,3 +352,6 @@ GLOBAL_LIST_INIT(cable_colors, list( CABLE_COLOR_YELLOW = CABLE_HEX_COLOR_YELLOW, CABLE_COLOR_BROWN = CABLE_HEX_COLOR_BROWN )) + +//Monkestation non-modular change: This has to be here because we use it in setup_consistent_human_dna +#define COLOR_MONKEY_BROWN "#cd8765" diff --git a/code/__DEFINES/communications.dm b/code/__DEFINES/communications.dm index 6035992fb006..fe38dfa5e8b9 100644 --- a/code/__DEFINES/communications.dm +++ b/code/__DEFINES/communications.dm @@ -6,14 +6,22 @@ //Security levels affect the escape shuttle timer /// Security level is green. (no threats) -#define SEC_LEVEL_GREEN 0 +#define SEC_LEVEL_GREEN 0 /// Security level is blue. (caution advised) -#define SEC_LEVEL_BLUE 1 +#define SEC_LEVEL_BLUE 1 +// monkestation start: additional alert levels +/// Security level is yellow. (Engineering issue) +#define SEC_LEVEL_YELLOW 2 +/// Security level is amber. (biological issue, so blob or bloodlings) +#define SEC_LEVEL_AMBER 3 /// Security level is red. (hostile threats) -#define SEC_LEVEL_RED 2 +#define SEC_LEVEL_RED 4 +/// Security level is gamma. (Its like red alert, but CC flavored) +#define SEC_LEVEL_GAMMA 5 /// Security level is delta. (station destruction immiment) -#define SEC_LEVEL_DELTA 3 -//MONKESTATION EDIT START +#define SEC_LEVEL_DELTA 6 +/// Security level is lambda. (oh god eldtrich beings won the video game) +#define SEC_LEVEL_LAMBDA 7 // Security level is epsilon. (yall fucked up) -#define SEC_LEVEL_EPSILON 4 -//MONKESTATION EDIT STOP +#define SEC_LEVEL_EPSILON 8 +// monkestation end diff --git a/code/__DEFINES/dcs/signals/signals_datum.dm b/code/__DEFINES/dcs/signals/signals_datum.dm index 624273c874bf..d07e992bd960 100644 --- a/code/__DEFINES/dcs/signals/signals_datum.dm +++ b/code/__DEFINES/dcs/signals/signals_datum.dm @@ -13,6 +13,8 @@ #define COMSIG_PREQDELETED "parent_preqdeleted" /// just before a datum's Destroy() is called: (force), at this point none of the other components chose to interrupt qdel and Destroy will be called #define COMSIG_QDELETING "parent_qdeleting" +/// Called whenever an admin manually deletes an object, via the "Delete" verb, before qdel() is called: (client/deleting_admin) +#define COMSIG_ADMIN_DELETING "parent_admin_deleting" /// generic topic handler (usr, href_list) #define COMSIG_TOPIC "handle_topic" /// handler for vv_do_topic (usr, href_list) diff --git a/code/__DEFINES/inventory.dm b/code/__DEFINES/inventory.dm index c1cc99efbc57..a552b7a7d446 100644 --- a/code/__DEFINES/inventory.dm +++ b/code/__DEFINES/inventory.dm @@ -128,6 +128,20 @@ #define ALT_STYLE 1 #define DIGITIGRADE_STYLE 2 +///Inventory slots that can be blacklisted by a species from being equipped into +DEFINE_BITFIELD(no_equip_flags, list( + "EXOSUIT" = ITEM_SLOT_OCLOTHING, + "JUMPSUIT" = ITEM_SLOT_ICLOTHING, + "GLOVES" = ITEM_SLOT_GLOVES, + "GLASSES" = ITEM_SLOT_EYES, + "EARPIECES" = ITEM_SLOT_EARS, + "MASKS" = ITEM_SLOT_MASK, + "HATS" = ITEM_SLOT_HEAD, + "SHOES" = ITEM_SLOT_FEET, + "BACKPACKS" = ITEM_SLOT_BACK, + "TIES" = ITEM_SLOT_NECK, +)) + //Flags (actual flags, fucker ^) for /obj/item/var/supports_variations_flags ///No alternative sprites based on bodytype #define CLOTHING_NO_VARIATION (1<<0) @@ -135,10 +149,8 @@ #define CLOTHING_DIGITIGRADE_VARIATION (1<<1) ///The sprite works fine for digitigrade legs as-is. #define CLOTHING_DIGITIGRADE_VARIATION_NO_NEW_ICON (1<<2) -///has a sprite for monkeys -#define CLOTHING_MONKEY_VARIATION (1<<3) ///Has a sprite for snouted heads specifically. -#define CLOTHING_SNOUTED_VARIATION (1<<4) +#define CLOTHING_SNOUTED_VARIATION (1<<3) //flags for covering body parts #define GLASSESCOVERSEYES (1<<0) diff --git a/code/__DEFINES/is_helpers.dm b/code/__DEFINES/is_helpers.dm index e5f0e432f708..6018a55967c6 100644 --- a/code/__DEFINES/is_helpers.dm +++ b/code/__DEFINES/is_helpers.dm @@ -83,7 +83,6 @@ GLOBAL_LIST_INIT(turfs_openspace, typecacheof(list( #define islizard(A) (is_species(A, /datum/species/lizard)) #define isashwalker(A) (is_species(A, /datum/species/lizard/ashwalker)) #define isplasmaman(A) (is_species(A, /datum/species/plasmaman)) -#define issimian(A) (is_species(A, /datum/species/simian)) //Monkestation Addition #define ispodperson(A) (is_species(A, /datum/species/pod)) #define isflyperson(A) (is_species(A, /datum/species/fly)) #define isjellyperson(A) (is_species(A, /datum/species/jelly)) diff --git a/code/__DEFINES/jobs.dm b/code/__DEFINES/jobs.dm index a183d79b9150..e4df3157fdfd 100644 --- a/code/__DEFINES/jobs.dm +++ b/code/__DEFINES/jobs.dm @@ -190,6 +190,9 @@ #define DEPARTMENT_BITFLAG_CENTRAL_COMMAND (1<<11) #define DEPARTMENT_CENTRAL_COMMAND "Central Command" +#define DEPARTMENT_BITFLAG_LATE (1<<12) +#define DEPARTMENT_LATE "Late Join" + /* Job datum job_flags */ /// Whether the mob is announced on arrival. #define JOB_ANNOUNCE_ARRIVAL (1<<0) diff --git a/code/__DEFINES/lighting.dm b/code/__DEFINES/lighting.dm index 23972b842607..67b4327043f9 100644 --- a/code/__DEFINES/lighting.dm +++ b/code/__DEFINES/lighting.dm @@ -96,10 +96,17 @@ GLOBAL_LIST_INIT(em_mask_matrix, EM_MASK_MATRIX) #define PARSE_LIGHT_COLOR(source) \ do { \ if (source.light_color != COLOR_WHITE) { \ - var/list/color_map = rgb2num(source.light_color); \ - source.lum_r = color_map[1] / 255; \ - source.lum_g = color_map[2] / 255; \ - source.lum_b = color_map[3] / 255; \ + try { \ + var/list/color_map = rgb2num(source.light_color); \ + source.lum_r = color_map[1] / 255; \ + source.lum_g = color_map[2] / 255; \ + source.lum_b = color_map[3] / 255; \ + } catch() { \ + stack_trace("[source.source_atom] ([source.source_atom?.type]) had invalid light color [source.light_color || "null"]"); \ + source.lum_r = 1; \ + source.lum_g = 1; \ + source.lum_b = 1; \ + }; \ } else { \ source.lum_r = 1; \ source.lum_g = 1; \ diff --git a/code/__DEFINES/mobs.dm b/code/__DEFINES/mobs.dm index a0d08b7644e5..90598bebdfd7 100644 --- a/code/__DEFINES/mobs.dm +++ b/code/__DEFINES/mobs.dm @@ -113,9 +113,8 @@ #define SPECIES_LIZARD_SILVER "silverscale" #define SPECIES_NIGHTMARE "nightmare" #define SPECIES_MONKEY "monkey" -#define SPECIES_MONKEY_FREAK "monkey_freak" -#define SPECIES_MONKEY_HUMAN_LEGGED "monkey_human_legged" #define SPECIES_MOTH "moth" +#define SPECIES_TUNDRA "tundra_moth" //Monkestation Addition #define SPECIES_MUSHROOM "mush" #define SPECIES_PLASMAMAN "plasmaman" #define SPECIES_PODPERSON "pod" @@ -126,6 +125,10 @@ #define SPECIES_VAMPIRE "vampire" #define SPECIES_ZOMBIE "zombie" #define SPECIES_ZOMBIE_INFECTIOUS "memezombie" +#define SPECIES_ZOMBIE_INFECTIOUS_RUNNER "runnerzombie" //Monkestation Addition +#define SPECIES_ZOMBIE_INFECTIOUS_TANK "tankzombie" //monkestation edit +#define SPECIES_ZOMBIE_INFECTIOUS_SPITTER "spitterzombie" //monkestation edit +#define SPECIES_ZOMBIE_INFECTIOUS_BLOATER "bloaterzombie" //monkestation edit #define SPECIES_ZOMBIE_KROKODIL "krokodil_zombie" #define SPECIES_OOZELING "oozeling" #define SPECIES_IPC "ipc" @@ -440,7 +443,7 @@ #define OFFSET_HANDS "hands" //MINOR TWEAKS/MISC -#define AGE_MIN 17 //youngest a character can be +#define AGE_MIN 18 //youngest a character can be #define AGE_MAX 85 //oldest a character can be #define AGE_MINOR 20 //legal age of space drinking and smoking #define WIZARD_AGE_MIN 30 //youngest a wizard can be @@ -649,17 +652,22 @@ // - They do not start at 0 for futureproofing // - They skip numbers for futureproofing as well // Otherwise they are completely arbitrary -#define HUMAN_HEIGHT_DWARF 2 -#define HUMAN_HEIGHT_SHORTEST 4 -#define HUMAN_HEIGHT_SHORT 6 -#define HUMAN_HEIGHT_MEDIUM 8 -#define HUMAN_HEIGHT_TALL 10 -#define HUMAN_HEIGHT_TALLEST 12 +#define MONKEY_HEIGHT_DWARF 2 +#define MONKEY_HEIGHT_MEDIUM 4 +#define HUMAN_HEIGHT_DWARF 6 +#define HUMAN_HEIGHT_SHORTEST 8 +#define HUMAN_HEIGHT_SHORT 10 +#define HUMAN_HEIGHT_MEDIUM 12 +#define HUMAN_HEIGHT_TALL 14 +#define HUMAN_HEIGHT_TALLER 16 +#define HUMAN_HEIGHT_TALLEST 18 /// Assoc list of all heights, cast to strings, to """"tuples""""" /// The first """tuple""" index is the upper body offset /// The second """tuple""" index is the lower body offset GLOBAL_LIST_INIT(human_heights_to_offsets, list( + "[MONKEY_HEIGHT_DWARF]" = list(-9, -3), + "[MONKEY_HEIGHT_MEDIUM]" = list(-7, -4), "[HUMAN_HEIGHT_DWARF]" = list(-5, -4), "[HUMAN_HEIGHT_SHORTEST]" = list(-2, -1), "[HUMAN_HEIGHT_SHORT]" = list(-1, -1), @@ -672,21 +680,19 @@ GLOBAL_LIST_INIT(human_heights_to_offsets, list( /// Total number of layers for mob overlays /// KEEP THIS UP-TO-DATE OR SHIT WILL BREAK /// Also consider updating layers_to_offset -#define TOTAL_LAYERS 35 +#define TOTAL_LAYERS 34 /// Mutant race multiparts - Lbelly -#define ACCESSORIES_LAYER 35 +#define ACCESSORIES_LAYER 34 /// Mutations layer - Tk headglows, cold resistance glow, etc -#define MUTATIONS_LAYER 34 +#define MUTATIONS_LAYER 33 /// Mutantrace features (tail when looking south) that must appear behind the body parts -#define BODY_BEHIND_LAYER 33 +#define BODY_BEHIND_LAYER 32 /// Layer for bodyparts that should appear behind every other bodypart - Mostly, legs when facing WEST or EAST -#define BODYPARTS_LOW_LAYER 32 +#define BODYPARTS_LOW_LAYER 31 /// Layer for most bodyparts, appears above BODYPARTS_LOW_LAYER and below BODYPARTS_HIGH_LAYER -#define BODYPARTS_LAYER 31 +#define BODYPARTS_LAYER 30 /// Mutantrace features (snout, body markings) that must appear above the body parts -#define BODY_ADJ_LAYER 30 -// Eyes, lips(makeup) -#define FACE_LAYER 29 +#define BODY_ADJ_LAYER 29 /// Underwear, undershirts, socks #define BODY_LAYER 28 /// Mutations that should appear above body, body_adj and bodyparts layer (e.g. laser eyes) @@ -773,7 +779,6 @@ GLOBAL_LIST_INIT(layers_to_offset, list( "[ID_LAYER]" = UPPER_BODY, "[FACEMASK_LAYER]" = UPPER_BODY, monkestation end */ - "[FACE_LAYER]" = UPPER_BODY, // These two are cached, and have their appearance shared(?), so it's safer to just not touch it "[MUTATIONS_LAYER]" = NO_MODIFY, "[FRONT_MUTATIONS_LAYER]" = NO_MODIFY, diff --git a/code/__DEFINES/projectiles.dm b/code/__DEFINES/projectiles.dm index e5026d440b1c..cbaca102d731 100644 --- a/code/__DEFINES/projectiles.dm +++ b/code/__DEFINES/projectiles.dm @@ -24,8 +24,6 @@ #define CALIBER_38 ".38" /// The caliber used by the chaplain's revolver. #define CALIBER_77 ".77" -/// The caliber used by long revolver and long rifle -#define CALIBER_45L ".45l" /// The caliber used by the C-20r SMG, the tommygun, and the M1911 pistol. #define CALIBER_45 ".45" /// The caliber used by sniper rifles and the desert eagle. diff --git a/code/__DEFINES/research/anomalies.dm b/code/__DEFINES/research/anomalies.dm index faf1163efd8a..a051fb2ff8be 100644 --- a/code/__DEFINES/research/anomalies.dm +++ b/code/__DEFINES/research/anomalies.dm @@ -20,18 +20,11 @@ GLOBAL_LIST_INIT(bioscrambler_parts_blacklist, typecacheof(list( /obj/item/bodypart/chest/larva, /obj/item/bodypart/head/larva, - // Re-add the ones below this line when the bug with offset is fixed - /obj/item/bodypart/leg/left/monkey, - /obj/item/bodypart/leg/right/monkey, - /obj/item/bodypart/leg/left/tallboy, - /obj/item/bodypart/leg/right/tallboy, ))) /// Blacklist of limb IDs which should not appear when bioscrambled, mostly because they looks awful and buggy. GLOBAL_LIST_INIT(bioscrambler_limb_id_blacklist, list( BODYPART_ID_PSYKER, - SPECIES_SIMIAN, - SPECIES_MONKEY, SPECIES_GOBLIN, SPECIES_TERATOMA, )) diff --git a/code/__DEFINES/role_preferences.dm b/code/__DEFINES/role_preferences.dm index 90a4d75dc872..1fd9219f8382 100644 --- a/code/__DEFINES/role_preferences.dm +++ b/code/__DEFINES/role_preferences.dm @@ -89,6 +89,7 @@ //Spawner roles #define ROLE_ANCIENT_CREW "Ancient Crew" #define ROLE_ASHWALKER "Ash Walker" +#define ROLE_BAR_DRONE "Bardrone" // monkestation addition #define ROLE_BATTLECRUISER_CAPTAIN "Battlecruiser Captain" #define ROLE_BATTLECRUISER_CREW "Battlecruiser Crew" #define ROLE_BEACH_BUM "Beach Bum" diff --git a/code/__DEFINES/species_clothing_paths.dm b/code/__DEFINES/species_clothing_paths.dm index 745d6e51a0ab..c9863360558c 100644 --- a/code/__DEFINES/species_clothing_paths.dm +++ b/code/__DEFINES/species_clothing_paths.dm @@ -6,10 +6,6 @@ ///The dmi for humanoid oversuits #define DEFAULT_SUIT_FILE 'icons/mob/clothing/suits/default.dmi' -//MONKEY PATHS -///The dmi for monkey uniforms -#define MONKEY_UNIFORM_FILE 'icons/mob/species/monkey/uniform.dmi' - //DIGITIGRADE PATHS ///The dmi containing digitigrade uniforms #define DIGITIGRADE_UNIFORM_FILE 'monkestation/icons/mob/species/misc/uniform_digi.dmi' diff --git a/code/__DEFINES/traits/monkestation/declarations.dm b/code/__DEFINES/traits/monkestation/declarations.dm index 36cf8daf818a..8a07f00fb954 100644 --- a/code/__DEFINES/traits/monkestation/declarations.dm +++ b/code/__DEFINES/traits/monkestation/declarations.dm @@ -22,7 +22,7 @@ /// The mob's nanites are sending a monitoring signal visible on diag HUD. #define TRAIT_NANITE_MONITORING "nanite_monitoring" /// This mob can vault over climable structures. -#define TRAIT_VAULTING "vaulting" //simian trait +#define TRAIT_VAULTING "vaulting" /// Ethereals with this trait will not suffer negative effects from overcharge. #define TRAIT_ETHEREAL_NO_OVERCHARGE "ethereal_no_overcharge" /// Oozelings with this trait will not lose limbs from low blood/nutrition. @@ -55,6 +55,8 @@ #define TRAIT_GHOST_CRITTER "ghost_critter" /// This mob is *currently* being flashed by someone with CAN_BYPASS_INNATE_FLASH_RESISTANCE returning TRUE. Used to make IPCs not immune to rev and bb conversions. #define TRAIT_CONVERSION_FLASHED "conversion_flashed" +/// For when a mob has been consumed by a zombie +#define TRAIT_ZOMBIE_CONSUMED "zombie_consumed" // /datum/mind + /mob/living /// Prevents the user from casting spells using sign language. Works on both /datum/mind and /mob/living. @@ -84,10 +86,10 @@ #define TRAIT_HIDDEN_CLOWN "clown_disbelief" #define TRAIT_HIDDEN_IMAGE "generic-hidden-image" #define TRAIT_JAILBIRD "jailbird" -#define TRAIT_KLEPTOMANIAC "kleptomaniac" #define TRAIT_LOUD_ASS "loud_ass" #define TRAIT_MINING_CALLOUTS "miner_callouts" #define TRAIT_PARANOIA "paranoia" +#define TRAIT_PRIDE_PIN "pride_pin" #define TRAIT_STABLE_ASS "stable_ass" #define TRAIT_STOWAWAY "stowaway" #define TRAIT_UNSTABLE_ASS "unstable_ass" diff --git a/code/__DEFINES/traits/monkestation/sources.dm b/code/__DEFINES/traits/monkestation/sources.dm index 057086421db2..8bd486c45502 100644 --- a/code/__DEFINES/traits/monkestation/sources.dm +++ b/code/__DEFINES/traits/monkestation/sources.dm @@ -32,3 +32,5 @@ #define FRENZY_TRAIT "frenzy_trait" /// Source trait for slashers. #define TRAIT_SLASHER "slasher_trait" +/// Source trait for zombies +#define ZOMBIE_TRAIT "zombie_trait" diff --git a/code/__DEFINES/vv.dm b/code/__DEFINES/vv.dm index 560ca0bb45d3..b274baeaf41f 100644 --- a/code/__DEFINES/vv.dm +++ b/code/__DEFINES/vv.dm @@ -89,6 +89,7 @@ #define VV_HK_MODIFY_TRANSFORM "atom_transform" #define VV_HK_SPIN_ANIMATION "atom_spin" #define VV_HK_STOP_ALL_ANIMATIONS "stop_animations" +#define VV_HK_SHAKE "shake" //Monkestation EDIT forced shaking #define VV_HK_MODIFY_GREYSCALE "modify_greyscale" #define VV_HK_ADD_REAGENT "addreagent" #define VV_HK_SHOW_HIDDENPRINTS "show_hiddenprints" diff --git a/code/__DEFINES/wounds.dm b/code/__DEFINES/wounds.dm index 6a108858bb1f..ca71eacd6d41 100644 --- a/code/__DEFINES/wounds.dm +++ b/code/__DEFINES/wounds.dm @@ -123,6 +123,14 @@ GLOBAL_LIST_INIT(bio_state_anatomy, list( /// Generic loss wounds. See loss.dm #define WOUND_SERIES_LOSS_BASIC "wound_series_loss_basic" +// MONKESTATION ADDITION START +//Have to put it here so it can be used in the global list of wound series wounding_types_to_series +/// muscle wounds applied at a low chance from blunt, slash, or pierce attacks +#define WOUND_MUSCLE "wound_muscle" +/// T1-T2 Muscle wounds. Both flesh and robotic variants. See muscle.dm and robotic_blunt.dm +#define WOUND_SERIES_MUSCLE_DAMAGE "nova_wound_series_muscle_damage" +// MONKESTATION ADDITION END + /// A assoc list of (wound typepath -> wound_pregen_data instance). Every wound should have a pregen data. GLOBAL_LIST_INIT_TYPED(all_wound_pregen_data, /datum/wound_pregen_data, generate_wound_static_data()) @@ -202,9 +210,13 @@ GLOBAL_LIST_INIT(wounding_types_to_series, list( WOUND_BURN = list( WOUND_SERIES_FLESH_BURN_BASIC, ), - WOUND_PUNCTURE = list( + WOUND_PIERCE = list( WOUND_SERIES_FLESH_PUNCTURE_BLEED ), + //MONKESTATION ADDITION + WOUND_MUSCLE = list( + WOUND_SERIES_MUSCLE_DAMAGE + ), )) /// Used in get_corresponding_wound_type(): Will pick the highest severity wound out of severity_min and severity_max diff --git a/code/__DEFINES/~monkestation/atom_hud.dm b/code/__DEFINES/~monkestation/atom_hud.dm index b6b498fecdd4..c650af394cfc 100644 --- a/code/__DEFINES/~monkestation/atom_hud.dm +++ b/code/__DEFINES/~monkestation/atom_hud.dm @@ -1,2 +1,3 @@ #define SECHUD_SECURITY_ASSISTANT "hudsecass" #define SECHUD_BLUESHIELD "hudblueshield" +#define SECHUD_BARBER "hudbarber" diff --git a/code/__DEFINES/~monkestation/blueshift.dm b/code/__DEFINES/~monkestation/blueshift.dm index a52313a85ad5..1b7e23091551 100644 --- a/code/__DEFINES/~monkestation/blueshift.dm +++ b/code/__DEFINES/~monkestation/blueshift.dm @@ -273,10 +273,6 @@ See the examinemore module for information. /// Trait that changes the ending effects of twitch leaving your system #define TRAIT_TWITCH_ADAPTED "twitch_adapted" -// Have to put it here so I can use it in the global list of wound series -/// See muscle.dm and robotic_blunt.dm -#define WOUND_SERIES_MUSCLE_DAMAGE "nova_wound_series_muscle_damage" - //defines for antag opt in objective checking //objectives check for all players with a value equal or greater than the 'threat' level of an objective then pick from that list //command + sec roles are always opted in regardless of opt in status diff --git a/code/__DEFINES/~monkestation/dcs/signals/signals_item.dm b/code/__DEFINES/~monkestation/dcs/signals/signals_item.dm index b913dd94bfe1..99615d4ef0fd 100644 --- a/code/__DEFINES/~monkestation/dcs/signals/signals_item.dm +++ b/code/__DEFINES/~monkestation/dcs/signals/signals_item.dm @@ -18,3 +18,6 @@ #define COMSIG_CHECK_TURF_CLOCKWORK "check_turf_clockwork" #define COMSIG_ITEM_DAMAGE_MULTIPLIER "damage_multi_item" + +///Sent by a tumor when its removed +#define COMSIG_ZOMBIE_TUMOR_REMOVED "zombie_tumor_removed" diff --git a/code/__DEFINES/~monkestation/dcs/signals/signals_mob/signals_mob_main.dm b/code/__DEFINES/~monkestation/dcs/signals/signals_mob/signals_mob_main.dm index a31bed15e891..e0745d27fd0b 100644 --- a/code/__DEFINES/~monkestation/dcs/signals/signals_mob/signals_mob_main.dm +++ b/code/__DEFINES/~monkestation/dcs/signals/signals_mob/signals_mob_main.dm @@ -47,3 +47,6 @@ /// Initiates a nightmare snuff check (eats dim lights on everything within 2 tiles) with the given args. (turf/start_turf) #define COMSIG_NIGHTMARE_SNUFF_CHECK "nightmare_snuff_check" + +/// From base of /datum/species/zombie/infectious/proc/set_consumed_flesh(): (new_amount, old_amount) +#define COMSIG_ZOMBIE_FLESH_ADJUSTED "zombie_flesh_adjusted" diff --git a/code/__DEFINES/~monkestation/jobs.dm b/code/__DEFINES/~monkestation/jobs.dm index c7862b04e7c8..1ae92eb6c322 100644 --- a/code/__DEFINES/~monkestation/jobs.dm +++ b/code/__DEFINES/~monkestation/jobs.dm @@ -5,3 +5,5 @@ #define JOB_NANOTRASEN_REPRESENTATIVE "Nanotrasen Representative" /// Whether this job is enabled/disabled by the spooktober config #define JOB_SPOOKTOBER (1<<16) + +#define JOB_LATEJOIN_BARBER "Barber" diff --git a/code/__DEFINES/~monkestation/logging.dm b/code/__DEFINES/~monkestation/logging.dm index 7862616789ad..11cf5192d0c3 100644 --- a/code/__DEFINES/~monkestation/logging.dm +++ b/code/__DEFINES/~monkestation/logging.dm @@ -1,3 +1,3 @@ #define LOG_CATEGORY_GAME_LOOC "game-looc" #define LOG_CATEGORY_STORYTELLER "storyteller" -#define LOG_CATEGORY_ENQUEUE "enqueue" +/* #define LOG_CATEGORY_ENQUEUE "enqueue" */ diff --git a/code/__DEFINES/~monkestation/projectiles.dm b/code/__DEFINES/~monkestation/projectiles.dm index 44d6c84c6c18..dd91878043b2 100644 --- a/code/__DEFINES/~monkestation/projectiles.dm +++ b/code/__DEFINES/~monkestation/projectiles.dm @@ -26,6 +26,9 @@ /// Caliber used by the pepperball gun #define CALIBER_PEPPERBALL "pepperball" +/// The caliber used by long revolver and long rifle +#define CALIBER_45L ".45l" + // open to suggestions on where to put these overrides // hugely not a fan of this but we do what we gotta diff --git a/code/__HELPERS/_auxtools_api.dm b/code/__HELPERS/_auxtools_api.dm index 0117ded4c519..a907be8ecf8f 100644 --- a/code/__HELPERS/_auxtools_api.dm +++ b/code/__HELPERS/_auxtools_api.dm @@ -1,38 +1,3 @@ -#define AUXTOOLS_FULL_INIT 2 -#define AUXTOOLS_PARTIAL_INIT 1 - -GLOBAL_LIST_EMPTY(auxtools_initialized) -GLOBAL_PROTECT(auxtools_initialized) - -#define AUXTOOLS_CHECK(LIB)\ - if (!CONFIG_GET(flag/auxtools_enabled)) {\ - CRASH("Auxtools is not enabled in config!");\ - }\ - if (GLOB.auxtools_initialized[LIB] != AUXTOOLS_FULL_INIT) {\ - if (fexists(LIB)) {\ - var/string = call_ext(LIB,"auxtools_init")();\ - if(findtext(string, "SUCCESS")) {\ - GLOB.auxtools_initialized[LIB] = AUXTOOLS_FULL_INIT;\ - } else {\ - CRASH(string);\ - }\ - } else {\ - CRASH("No file named [LIB] found!")\ - }\ - }\ - -#define AUXTOOLS_SHUTDOWN(LIB)\ - if (GLOB.auxtools_initialized[LIB] == AUXTOOLS_FULL_INIT && fexists(LIB)){\ - call_ext(LIB,"auxtools_shutdown")();\ - GLOB.auxtools_initialized[LIB] = AUXTOOLS_PARTIAL_INIT;\ - }\ - -#define AUXTOOLS_FULL_SHUTDOWN(LIB)\ - if (GLOB.auxtools_initialized[LIB] && fexists(LIB)){\ - call_ext(LIB,"auxtools_full_shutdown")();\ - GLOB.auxtools_initialized[LIB] = FALSE;\ - } - /proc/auxtools_stack_trace(msg) CRASH(msg) diff --git a/code/__HELPERS/_dreamluau.dm b/code/__HELPERS/_dreamluau.dm new file mode 100644 index 000000000000..d8bb784c217a --- /dev/null +++ b/code/__HELPERS/_dreamluau.dm @@ -0,0 +1,301 @@ +/* This comment bypasses grep checks */ /var/__dreamluau + +/* This comment also bypasses grep checks */ /var/__dreamluau_exists + +#define DREAMLUAU_EXISTS (__dreamluau_exists ||= fexists(DREAMLUAU)) + +#define DREAMLUAU (world.system_type == MS_WINDOWS ? "dreamluau.dll" : (__dreamluau ||= __detect_auxtools("dreamluau"))) + +#define DREAMLUAU_CALL(func) (!DREAMLUAU_EXISTS) ? null : call_ext(DREAMLUAU, "byond:" + #func) + +/** + * All of the following functions will return a string if the underlying rust code returns an error or a wrapped panic. + * The return values specified for each function are what they will return if successful. + */ + +/** + * As of 515.1631, byondapi does not provide direct access to `usr`. + * Use this function to pass `usr` into the dreamluau binary so that luau scripts can retrieve it. + * + * @return null on success + */ +#define DREAMLUAU_SET_USR DREAMLUAU_CALL(set_usr)(usr) + + +/** + * Sets the execution limit, in milliseconds. + * + * @param limit the new execution limit + * + * @return null on success + */ +#define DREAMLUAU_SET_EXECUTION_LIMIT_MILLIS(limit) DREAMLUAU_CALL(set_execution_limit_millis)((limit)) + +/** + * Sets the execution limit, in seconds. + * + * @param limit the new execution limit + * + * @return null on success + */ +#define DREAMLUAU_SET_EXECUTION_LIMIT_SECS(limit) DREAMLUAU_CALL(set_execution_limit_secs)((limit)) + +/** + * Clears the execution limit, allowing scripts to run as long as they need to. + * + * WARNING: This allows infinite loops to block Dream Daemon indefinitely, with no safety checks. + * Do not use this if you have no reason for scripts to run arbitrarily long. + * + * @return null on success + */ +#define DREAMLUAU_CLEAR_EXECUTION_LIMIT DREAMLUAU_CALL(clear_execution_limit) + +//Wrapper setters/clearers + +/** + * Set the wrapper for instancing new datums with `dm.new`. + * Clears it if the argument is null. + * If unset, the object will be instantiated using the default `new` instruction. + * + * The wrapper must be a proc with the signature `(type as path, list/arguments)`. + * + * @param wrapper the path to the proc to use as the new wrapper + * + * @return null on success + */ +#define DREAMLUAU_SET_NEW_WRAPPER(wrapper) DREAMLUAU_CALL(set_new_wrapper)((wrapper)) + +/** + * Set the wrapper for reading the vars of an object. + * Clears it if the argument is null. + * If unset, the var will be read directly, without any safety checks. + * + * The wrapper must be a proc with the signature `(target, var)`. + * + * @param wrapper the path to the proc to use as the new wrapper + * + * @return null on success + */ +#define DREAMLUAU_SET_VAR_GET_WRAPPER(wrapper) DREAMLUAU_CALL(set_var_get_wrapper)((wrapper)) + +/** + * Set the wrapper for writing the vars of an object. + * Clears it if the argument is null. + * If unset, the var will be modified directly, without any safety checks. + * + * The wrapper must be a proc with the signature `(target, var, value)`. + * + * @param wrapper the path to the proc to use as the new wrapper + * + * @return null on success + */ +#define DREAMLUAU_SET_VAR_SET_WRAPPER(wrapper) DREAMLUAU_CALL(set_var_set_wrapper)((wrapper)) + +/** + * Set the wrapper for calling a proc on an object. + * Clears it if the argument is null. + * If unset, the proc will be called directly, without any safety checks. + * + * The wrapper must be a proc with the signature `(target, procname as text, list/arguments)`. + * + * @param wrapper the path to the proc to use as the new wrapper + * + * @return null on success + */ +#define DREAMLUAU_SET_OBJECT_CALL_WRAPPER(wrapper) DREAMLUAU_CALL(set_object_call_wrapper)((wrapper)) + +/** + * Set the wrapper for calling a global proc. + * Clears it if the argument is null. + * If unset, the proc will be called directly, without any safety checks. + * + * The wrapper must be a proc with the signature `(procname as text, list/arguments)`. + * + * @param wrapper the path to the proc to use as the new wrapper + * + * @return null on success + */ +#define DREAMLUAU_SET_GLOBAL_CALL_WRAPPER(wrapper) DREAMLUAU_CALL(set_global_call_wrapper)((wrapper)) + +/** + * Set the wrapper for printing with the `print` function. + * Clears it if the argument is null. + * If unset, `print` will raise an error. + * + * The wrapper must be a proc with the signature `(list/arguments)`. + * + * @param wrapper the path to the proc to use as the new wrapper + * + * @return null on success + */ +#define DREAMLUAU_SET_PRINT_WRAPPER(wrapper) DREAMLUAU_CALL(set_print_wrapper)((wrapper)) + + + +/** + * Create a new luau state. + * + * @return a handle to the created state. + */ +#define DREAMLUAU_NEW_STATE DREAMLUAU_CALL(new_state) + +/** + * Some of the following functions return values that cannot be cleanly converted from luau to DM. + * To account for this, these functions also return a list of variant specifiers, equivalent to + * an array of objects of the type described beloe: + * ``` + * type Variants = { + * key?: "error"|Array + * value?: "error"|Array + * } + * ``` + */ + +/** + * The following 4 functions execute luau code and return + * an associative list containing information about the result. + * This list has the following params. + * + * - "status": either "finished", "sleep", "yield", or "error" + * - "return_values": if "status" is "finished" or "yield", contains a list of the return values + * - "variants": a list of variant specifiers for the "return_values" param + * - "message": if "status" is "error", contains the error message + * - "name": the name of the executed code, according to the `what` field of `debug.getinfo` + */ + +/** + * Load and execute a luau script. + * + * @param state the handle to the state + * @param code the source code of the script to run + * @param name an optional name to give to the script, for debugging purposes + * + * @return an associative list containing result information as specified above + */ +#define DREAMLUAU_LOAD DREAMLUAU_CALL(load) + +/** + * Awaken the thread at the front of the specified state's sleeping thread queue. + * + * @param state the handle to the state + * + * @return an associative list containing result information as specified above + */ +#define DREAMLUAU_AWAKEN(state) DREAMLUAU_CALL(awaken)((state)) + +/** + * Resume one of the state's yielded threads. + * + * @param state the handle to the state + * @param index the index of the thread in the state's yielded threads list + * @param ...arguments arguments that will be returned by the `coroutine.yield` that yielded the thread + * + * @return an associative list containing result information as specified above + */ +#define DREAMLUAU_RESUME DREAMLUAU_CALL(resume) + +/** + * Call a function accessible from the global table. + * + * @param state the handle to the state + * @param function a list of nested indices from the global table to the specified function + * @param ...arguments arguments to pass to the function + * + * @return an associative list containing result information as specified above + */ +#define DREAMLUAU_CALL_FUNCTION DREAMLUAU_CALL(call_function) + +// State information collection functions + +/** + * Obtain a copy of the state's global table, converted to DM. + * + * @param state the handle to the state + * + * @return an associative list with the follwing entries: + * - "values": The actual values of the global table + * - "variants": Variant specifiers for "values" + */ +#define DREAMLUAU_GET_GLOBALS(state) DREAMLUAU_CALL(get_globals)((state)) + +/** + * List the names of all sleeping or yielded threads for the state. + * + * @param state the handle to the state + * + * @return an associative list with the following entries: + * - "sleeps": A list of sleeping threads + * - "yields": A list of yielded threads + */ +#define DREAMLUAU_LIST_THREADS(state) DREAMLUAU_CALL(list_threads)((state)) + +// Cleanup functions + +/** + * Run garbage collection on the state. + * + * This may be necessary to prevent hanging references, as some + * hard references may persist in unreachable luau objects that + * would be collected after a garbage collection cycle or two. + * + * @param state the handle to the state + * + * @return null on success + */ +#define DREAMLUAU_COLLECT_GARBAGE(state) DREAMLUAU_CALL(collect_garbage)((state)) + +/** + * Remove a sleeping thread from the sleep queue, without executing it. + * + * @param state the handle to the state + * @param thread the index in the sleep queue to the target thread + * + * @return null on success + */ +#define DREAMLUAU_KILL_SLEEPING_THREAD(state, thread) DREAMLUAU_CALL(kill_sleeping_thread)((state), (thread)) + +/** + * Remove a yielded thread from the yield table, without executing it. + * + * @param state the handle to the state + * @param thread the index in the yield table to the target thread + * + * @return null on success + */ +#define DREAMLUAU_KILL_YIELDED_THREAD(state, thread) DREAMLUAU_CALL(kill_yielded_thread)((state), (thread)) + +/** + * Delete a state. The state's handle will be freed for any new states created afterwards. + * + * @param state the handle to the state + * + * @return null on success + */ +#define DREAMLUAU_KILL_STATE(state) DREAMLUAU_CALL(kill_state)((state)) + +/** + * Retrieve lua traceback info, containing every lua stack frame between the lua entrypoint and the re-entry to dm code. + * + * @param level the level of lua execution to get the traceback for, + * with 1 being the lua code that executed the dm code that called this function, + * 2 being the lua code that executed the dm code that executed the lua code + * that executed the dm code that called this function, etc. + * + * @return the callstack of the specified lua level if valid, null if invalid + */ +#define DREAMLUAU_GET_TRACEBACK(index) DREAMLUAU_CALL(get_traceback)((index)) + +/** + * Luau userdata corresponding to a ref-counted DM type counts as a hard reference for BYOND's garbage collector. + * If you need to delete a DM object, and you cannot be certain that there are no references to it in any luau state, + * call this function before deleting that object to disassociate it from any userdata in any luau state. + * + * Hard deleting an object without clearing userdata corresponding to it leaves the userdata to become associated with + * the next DM object to receive the old object's reference ID, which may be undesirable behavior. + * + * @param object the object to disassociate from userdata. + * + * @return null on success + */ +#define DREAMLUAU_CLEAR_REF_USERDATA(object) DREAMLUAU_CALL(clear_ref_userdata)((object)) + diff --git a/code/__HELPERS/_lists.dm b/code/__HELPERS/_lists.dm index 16c6c5ae2364..5eb92dd15cf3 100644 --- a/code/__HELPERS/_lists.dm +++ b/code/__HELPERS/_lists.dm @@ -989,53 +989,57 @@ else return element -/// Returns a copy of the list where any element that is a datum or the world is converted into a ref -/proc/refify_list(list/target_list, list/visited, path_accumulator = "list") +/** + * Intermediate step for preparing lists to be passed into the lua editor tgui. + * Resolves weakrefs, converts some values without a standard textual representation to text, + * and can handle self-referential lists and potential duplicate output keys. + */ +/proc/prepare_lua_editor_list(list/target_list, list/visited) if(!visited) visited = list() var/list/ret = list() - visited[target_list] = path_accumulator + visited[target_list] = ret + var/list/duplicate_keys = list() for(var/i in 1 to target_list.len) var/key = target_list[i] var/new_key = key if(isweakref(key)) var/datum/weakref/ref = key - var/resolved = ref.resolve() - if(resolved) - new_key = "[resolved] [REF(resolved)]" - else - new_key = "null weakref [REF(key)]" - else if(isdatum(key)) - new_key = "[key] [REF(key)]" + new_key = ref.resolve() || "null weakref" else if(key == world) - new_key = "world [REF(world)]" + new_key = world.name + else if(ref(key) == "\[0xe000001\]") + new_key = "global" else if(islist(key)) - if(visited.Find(key)) + if(visited[key]) new_key = visited[key] else - new_key = refify_list(key, visited, path_accumulator + "\[[i]\]") + new_key = prepare_lua_editor_list(key, visited) var/value - if(istext(key) || islist(key) || ispath(key) || isdatum(key) || key == world) + if(!isnull(key) && !isnum(key)) value = target_list[key] if(isweakref(value)) var/datum/weakref/ref = value - var/resolved = ref.resolve() - if(resolved) - value = "[resolved] [REF(resolved)]" - else - value = "null weakref [REF(key)]" - else if(isdatum(value)) - value = "[value] [REF(value)]" - else if(value == world) - value = "world [REF(world)]" + value = ref.resolve() || "null weakref" + if(value == world) + value = "world" + else if(ref(value) == "\[0xe000001\]") + value = "global" else if(islist(value)) - if(visited.Find(value)) + if(visited[value]) value = visited[value] else - value = refify_list(value, visited, path_accumulator + "\[[key]\]") - var/list/to_add = list(new_key) - if(value) - to_add[new_key] = value + value = prepare_lua_editor_list(value, visited) + var/list/to_add = list() + if(!isnull(value)) + var/final_key = new_key + while(duplicate_keys[final_key]) + duplicate_keys[new_key]++ + final_key = "[new_key] ([duplicate_keys[new_key]])" + duplicate_keys[final_key] = 1 + to_add[final_key] = value + else + to_add += list(new_key) ret += to_add if(i < target_list.len) CHECK_TICK @@ -1044,29 +1048,31 @@ /** * Converts a list into a list of assoc lists of the form ("key" = key, "value" = value) * so that list keys that are themselves lists can be fully json-encoded + * and that unique objects with the same string representation do not + * produce duplicate keys that are clobbered by the standard JavaScript JSON.parse function */ -/proc/kvpify_list(list/target_list, depth = INFINITY, list/visited, path_accumulator = "list") +/proc/kvpify_list(list/target_list, depth = INFINITY, list/visited) if(!visited) visited = list() var/list/ret = list() - visited[target_list] = path_accumulator + visited[target_list] = ret for(var/i in 1 to target_list.len) var/key = target_list[i] var/new_key = key if(islist(key) && depth) - if(visited.Find(key)) + if(visited[key]) new_key = visited[key] else - new_key = kvpify_list(key, depth-1, visited, path_accumulator + "\[[i]\]") + new_key = kvpify_list(key, depth-1, visited) var/value - if(istext(key) || islist(key) || ispath(key) || isdatum(key) || key == world) + if(!isnull(key) && !isnum(key)) value = target_list[key] if(islist(value) && depth) - if(visited.Find(value)) + if(visited[value]) value = visited[value] else - value = kvpify_list(value, depth-1, visited, path_accumulator + "\[[key]\]") - if(value) + value = kvpify_list(value, depth-1, visited) + if(!isnull(value)) ret += list(list("key" = new_key, "value" = value)) else ret += list(list("key" = i, "value" = new_key)) @@ -1076,12 +1082,12 @@ /// Compares 2 lists, returns TRUE if they are the same /proc/deep_compare_list(list/list_1, list/list_2) - if(!islist(list_1) || !islist(list_2)) - return FALSE - if(list_1 == list_2) return TRUE + if(!islist(list_1) || !islist(list_2)) + return FALSE + if(list_1.len != list_2.len) return FALSE @@ -1104,11 +1110,11 @@ return TRUE /// Returns a copy of the list where any element that is a datum is converted into a weakref -/proc/weakrefify_list(list/target_list, list/visited, path_accumulator = "list") +/proc/weakrefify_list(list/target_list, list/visited) if(!visited) visited = list() var/list/ret = list() - visited[target_list] = path_accumulator + visited[target_list] = ret for(var/i in 1 to target_list.len) var/key = target_list[i] var/new_key = key @@ -1118,62 +1124,19 @@ if(visited.Find(key)) new_key = visited[key] else - new_key = weakrefify_list(key, visited, path_accumulator + "\[[i]\]") + new_key = weakrefify_list(key, visited) var/value - if(istext(key) || islist(key) || ispath(key) || isdatum(key) || key == world) + if(!isnull(key) && !isnum(key)) value = target_list[key] if(isdatum(value)) value = WEAKREF(value) else if(islist(value)) - if(visited.Find(value)) + if(visited[value]) value = visited[value] else - value = weakrefify_list(value, visited, path_accumulator + "\[[key]\]") - var/list/to_add = list(new_key) - if(value) - to_add[new_key] = value - ret += to_add - if(i < target_list.len) - CHECK_TICK - return ret - -/// Returns a copy of a list where text values (except assoc-keys and string representations of lua-only values) are -/// wrapped in quotes and existing quote marks are escaped, -/// and nulls are replaced with the string "null" -/proc/encode_text_and_nulls(list/target_list, list/visited) - var/static/regex/lua_reference_regex - if(!lua_reference_regex) - lua_reference_regex = regex(@"^((function)|(table)|(thread)|(userdata)): 0x[0-9a-fA-F]+$") - if(!visited) - visited = list() - var/list/ret = list() - visited[target_list] = TRUE - for(var/i in 1 to target_list.len) - var/key = target_list[i] - var/new_key = key - if(istext(key) && !target_list[key] && !lua_reference_regex.Find(key)) - new_key = "\"[replacetext(key, "\"", "\\\"")]\"" - else if(islist(key)) - var/found_index = visited.Find(key) - if(found_index) - new_key = visited[found_index] - else - new_key = encode_text_and_nulls(key, visited) - else if(isnull(key)) - new_key = "null" - var/value - if(istext(key) || islist(key) || ispath(key) || isdatum(key) || key == world) - value = target_list[key] - if(istext(value) && !lua_reference_regex.Find(value)) - value = "\"[replacetext(value, "\"", "\\\"")]\"" - else if(islist(value)) - var/found_index = visited.Find(value) - if(found_index) - value = visited[found_index] - else - value = encode_text_and_nulls(value, visited) + value = weakrefify_list(value, visited) var/list/to_add = list(new_key) - if(value) + if(!isnull(value)) to_add[new_key] = value ret += to_add if(i < target_list.len) @@ -1200,15 +1163,154 @@ return locate(coords["x"], coords["y"], coords["z"]) return locate(coords[1], coords[2], coords[3]) -//monkestation edit start -//Scales a range (i.e 1,100) and picks an item from the list based on your passed value -//i.e in a list with length 4, a 25 in the 1-100 range will give you the 2nd item -//This assumes your ranges start with 1, I am not good at math and can't do linear scaling -/proc/scale_range_pick(min,max,value,list/L) - if(!length(L)) - return null - var/index = 1 + (value * (length(L) - 1)) / (max - min) - if(length(L) < index) - index = length(L) - return L[index] -//monkestation edit end +/** + * Given a list and a list of its variant hints, appends variants that aren't explicitly required by dreamluau, + * but are required by the lua editor tgui. + */ +/proc/add_lua_editor_variants(list/values, list/variants, list/visited, path = "") + if(!islist(visited)) + visited = list() + visited[values] = "\[\]" + if(!islist(values) || !islist(variants)) + return + if(values.len != variants.len) + CRASH("values and variants must be the same length") + for(var/i in 1 to variants.len) + var/pair = variants[i] + var/pair_modified = FALSE + if(isnull(pair)) + pair = list("key", "value") + var/key = values[i] + if(islist(key)) + if(visited[key]) + pair["key"] = list("cycle", visited[key]) + else + var/list/key_variants = pair["key"] + var/new_path = path + "\[[i], \"key\"\]," + visited[key] = new_path + add_lua_editor_variants(key, key_variants, visited, new_path) + visited -= key + pair["key"] = list("list", key_variants) + pair_modified = TRUE + else if(isdatum(key) || key == world || ref(key) == "\[0xe000001\]") + pair["key"] = list("ref", ref(key)) + pair_modified = TRUE + var/value + if(!isnull(key) && !isnum(key)) + value = values[key] + if(islist(value)) + if(visited[value]) + pair["value"] = list("cycle", visited[value]) + else + var/list/value_variants = pair["value"] + var/new_path = path + "\[[i], \"value\"\]," + visited[value] = new_path + add_lua_editor_variants(value, value_variants, visited, new_path) + visited -= value + pair["value"] = list("list", value_variants) + pair_modified = TRUE + else if(isdatum(value) || value == world || ref(value) == "\[0xe000001\]") + pair["value"] = list("ref", ref(value)) + pair_modified = TRUE + if(pair_modified && pair != variants[i]) + variants[i] = pair + if(i < variants.len) + CHECK_TICK + +/proc/add_lua_return_value_variants(list/values, list/variants) + if(!islist(values) || !islist(variants)) + return + if(values.len != variants.len) + CRASH("values and variants must be the same length") + for(var/i in 1 to values.len) + var/value = values[i] + if(islist(value)) + add_lua_editor_variants(value, variants[i]) + else if(isdatum(value) || value == world || ref(value) == "\[0xe000001\]") + variants[i] = list("ref", ref(value)) + +/proc/deep_copy_without_cycles(list/values, list/visited) + if(!islist(visited)) + visited = list() + if(!islist(values)) + return values + var/list/ret = list() + var/cycle_count = 0 + visited[values] = TRUE + for(var/i in 1 to values.len) + var/key = values[i] + var/out_key = key + if(islist(key)) + if(visited[key]) + do + out_key = "\[cyclical reference[cycle_count ? " (i)" : ""]\]" + cycle_count++ + while(values.Find(out_key)) + else + visited[key] = TRUE + out_key = deep_copy_without_cycles(key, visited) + visited -= key + var/value + if(!isnull(key) && !isnum(key)) + value = values[key] + var/out_value = value + if(islist(value)) + if(visited[value]) + out_value = "\[cyclical reference\]" + else + visited[value] = TRUE + out_value = deep_copy_without_cycles(value, visited) + visited -= value + var/list/to_add = list(out_key) + if(!isnull(out_value)) + to_add[out_key] = out_value + ret += to_add + if(i < values.len) + CHECK_TICK + return ret + +/** + * Given a list and a list of its variant hints, removes any list key/values that are represent lua values that could not be directly converted to DM. + */ +/proc/remove_non_dm_variants(list/return_values, list/variants, list/visited) + if(!islist(visited)) + visited = list() + if(!islist(return_values) || !islist(variants) || visited[return_values]) + return + visited[return_values] = TRUE + if(return_values.len != variants.len) + CRASH("return_values and variants must be the same length") + for(var/i in 1 to variants.len) + var/pair = variants[i] + if(!islist(variants)) + continue + var/key = return_values[i] + if(pair["key"]) + if(!islist(pair["key"])) + return_values[i] = null + continue + remove_non_dm_variants(key, pair["key"], visited) + if(pair["value"]) + if(!islist(pair["value"])) + return_values[key] = null + continue + remove_non_dm_variants(return_values[key], pair["value"], visited) + +/proc/compare_lua_logs(list/log_1, list/log_2) + if(log_1 == log_2) + return TRUE + for(var/field in list("status", "name", "message", "chunk")) + if(log_1[field] != log_2[field]) + return FALSE + switch(log_1["status"]) + if("finished", "yield") + return deep_compare_list( + recursive_list_resolve(log_1["return_values"]), + recursive_list_resolve(log_2["return_values"]) + ) && deep_compare_list(log_1["variants"], log_2["variants"]) + if("runtime") + return log_1["file"] == log_2["file"]\ + && log_1["line"] == log_2["line"]\ + && deep_compare_list(log_1["stack"], log_2["stack"]) + else + return TRUE diff --git a/code/__HELPERS/areas.dm b/code/__HELPERS/areas.dm index 066b0d212ac4..fc0a041cd111 100644 --- a/code/__HELPERS/areas.dm +++ b/code/__HELPERS/areas.dm @@ -147,7 +147,7 @@ GLOBAL_LIST_INIT(typecache_powerfailure_safe_areas, typecacheof(list( * A list of all machinery tied to an area along with the area itself. key=area name,value=list(area,list of machinery) * we use this to keep track of what areas are affected by the blueprints & what machinery of these areas needs to be reconfigured accordingly */ - var/area/affected_areas = list() + var/list/area/affected_areas = list() for(var/turf/the_turf as anything in turfs) var/area/old_area = the_turf.loc diff --git a/code/__HELPERS/global_lists.dm b/code/__HELPERS/global_lists.dm index b9241abe78a7..5762d3d7d1ca 100644 --- a/code/__HELPERS/global_lists.dm +++ b/code/__HELPERS/global_lists.dm @@ -40,7 +40,7 @@ init_sprite_accessory_subtypes(/datum/sprite_accessory/ipc_antennas, GLOB.ipc_antennas_list) //Monkestation Addition init_sprite_accessory_subtypes(/datum/sprite_accessory/ipc_chassis, GLOB.ipc_chassis_list) //Monkestation Addition init_sprite_accessory_subtypes(/datum/sprite_accessory/pod_hair, GLOB.pod_hair_list) //Monkestation Addition - init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/monkey, GLOB.tails_list_monkey) //Monkestation Addition + init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/monkey, GLOB.tails_list_monkey) init_sprite_accessory_subtypes(/datum/sprite_accessory/anime_head, GLOB.anime_top_list) //Monkestation Addition init_sprite_accessory_subtypes(/datum/sprite_accessory/anime_middle, GLOB.anime_middle_list) //Monkestation Addition init_sprite_accessory_subtypes(/datum/sprite_accessory/anime_bottom, GLOB.anime_bottom_list) //Monkestation Addition diff --git a/code/__HELPERS/icons.dm b/code/__HELPERS/icons.dm index f202a8f4ca51..9e6d777088dc 100644 --- a/code/__HELPERS/icons.dm +++ b/code/__HELPERS/icons.dm @@ -1507,6 +1507,8 @@ GLOBAL_LIST_EMPTY(icon_dimensions) /proc/strip_appearance_underlays(mutable_appearance/appearance) var/base_plane = PLANE_TO_TRUE(appearance.plane) for(var/mutable_appearance/underlay as anything in appearance.underlays) + if(isnull(underlay)) + continue if(PLANE_TO_TRUE(underlay.plane) != base_plane) appearance.underlays -= underlay return appearance diff --git a/code/__HELPERS/levels.dm b/code/__HELPERS/levels.dm index 218c1013bed8..a7fb562e1467 100644 --- a/code/__HELPERS/levels.dm +++ b/code/__HELPERS/levels.dm @@ -11,6 +11,9 @@ * returns TRUE if connection is valid, FALSE otherwise. */ /proc/is_valid_z_level(turf/source_loc, turf/checking_loc) + // if either locs are null, then well, it's not valid, is it? + if(isnull(source_loc) || isnull(checking_loc)) + return FALSE // if we're both on "station", regardless of multi-z, we'll pass by. if(is_station_level(source_loc.z) && is_station_level(checking_loc.z)) return TRUE diff --git a/code/__HELPERS/logging/debug.dm b/code/__HELPERS/logging/debug.dm index de0900a23912..9bdd86236465 100644 --- a/code/__HELPERS/logging/debug.dm +++ b/code/__HELPERS/logging/debug.dm @@ -60,5 +60,7 @@ #endif SEND_TEXT(world.log, text) +/* /proc/log_enqueue(text, list/data) logger.Log(LOG_CATEGORY_ENQUEUE, text, data) +*/ diff --git a/code/__HELPERS/mobs.dm b/code/__HELPERS/mobs.dm index 19feb2cb2c0e..f878f37d9235 100644 --- a/code/__HELPERS/mobs.dm +++ b/code/__HELPERS/mobs.dm @@ -69,6 +69,8 @@ init_sprite_accessory_subtypes(/datum/sprite_accessory/snouts, GLOB.snouts_list) if(!length(GLOB.horns_list)) init_sprite_accessory_subtypes(/datum/sprite_accessory/horns, GLOB.horns_list) + if(!length(GLOB.tails_list_monkey)) + init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/monkey, GLOB.tails_list_monkey) if(!length(GLOB.ears_list)) init_sprite_accessory_subtypes(/datum/sprite_accessory/ears, GLOB.horns_list) if(!length(GLOB.frills_list)) @@ -108,8 +110,6 @@ init_sprite_accessory_subtypes(/datum/sprite_accessory/ipc_antennas, GLOB.ipc_antennas_list) if(!length(GLOB.ipc_chassis_list)) init_sprite_accessory_subtypes(/datum/sprite_accessory/ipc_chassis, GLOB.ipc_chassis_list) - if(!length(GLOB.tails_list_monkey)) - init_sprite_accessory_subtypes(/datum/sprite_accessory/tails/monkey, GLOB.tails_list_monkey) if(!length(GLOB.anime_top_list)) init_sprite_accessory_subtypes(/datum/sprite_accessory/anime_head, GLOB.anime_top_list) if(!length(GLOB.anime_middle_list)) @@ -163,7 +163,7 @@ "ipc_screen" = pick(GLOB.ipc_screens_list), //Monkestation Addition "ipc_antenna" = pick(GLOB.ipc_antennas_list), //Monkestation Addition "ipc_chassis" = pick(GLOB.ipc_chassis_list), //Monkestation Addition - "tail_monkey" = "Chimp", //Monkestation Addition + "tail_monkey" = "Monkey", //Monkestation change: Default to monkey tail. "pod_hair" = pick(GLOB.pod_hair_list), "anime_top" = pick(GLOB.anime_top_list), //Monkestation Addition "anime_middle" = pick(GLOB.anime_middle_list), //Monkestation Addition diff --git a/code/__HELPERS/paths/path.dm b/code/__HELPERS/paths/path.dm index 01db1ee108e7..9e49188ae35d 100644 --- a/code/__HELPERS/paths/path.dm +++ b/code/__HELPERS/paths/path.dm @@ -382,7 +382,7 @@ GLOBAL_LIST_INIT(can_pass_info_vars, GLOBAL_PROC_REF(can_pass_check_vars)) /datum/can_pass_info/proc/compare_against(datum/can_pass_info/check_against) for(var/comparable_var in GLOB.can_pass_info_vars) - if(!(vars[comparable_var] ~= check_against[comparable_var])) + if(!(vars[comparable_var] ~= check_against.vars[comparable_var])) return FALSE if(!pulling_info != !check_against.pulling_info) return FALSE diff --git a/code/__HELPERS/priority_announce.dm b/code/__HELPERS/priority_announce.dm index 32bdc78e2210..d9b4dfe900cd 100644 --- a/code/__HELPERS/priority_announce.dm +++ b/code/__HELPERS/priority_announce.dm @@ -13,7 +13,7 @@ #define CHAT_ALERT_DEFAULT_SPAN(string) ("
" + string + "
") #define CHAT_ALERT_COLORED_SPAN(color, string) ("
" + string + "
") -#define ANNOUNCEMENT_COLORS list("default", "green", "blue", "pink", "yellow", "orange", "red", "purple", "grey") //monkestation edit +#define ANNOUNCEMENT_COLORS list("default", "green", "blue", "pink", "yellow", "orange", "red", "purple", "grey", "amber", "crimson") // monkestation edit /** * Make a big red text announcement to @@ -164,10 +164,10 @@ if(current_level_number > previous_level_number) title = "Attention! Security level elevated to [current_level_name]:" - message = selected_level.elevating_to_announcement + message = replacetext_char(selected_level.elevating_to_announcement, "%STATION_NAME%", station_name()) // monkestation edit: add %STATION_NAME% replacement else title = "Attention! Security level lowered to [current_level_name]:" - message = selected_level.lowering_to_announcement + message = replacetext_char(selected_level.lowering_to_announcement, "%STATION_NAME%", station_name()) // monkestation edit: add %STATION_NAME% replacement var/list/level_announcement_strings = list() level_announcement_strings += ANNOUNCEMENT_HEADER(MINOR_ANNOUNCEMENT_TITLE(title)) diff --git a/code/__HELPERS/records.dm b/code/__HELPERS/records.dm deleted file mode 100644 index 288ef5284d21..000000000000 --- a/code/__HELPERS/records.dm +++ /dev/null @@ -1,6 +0,0 @@ - -/proc/overwrite_field_if_available(datum/record/base, datum/record/other, field_name) - if(other[field_name]) - base[field_name] = other[field_name] - - diff --git a/code/__HELPERS/roundend.dm b/code/__HELPERS/roundend.dm index d2d05ccb8177..3be4855a5aa1 100644 --- a/code/__HELPERS/roundend.dm +++ b/code/__HELPERS/roundend.dm @@ -369,8 +369,8 @@ GLOBAL_LIST_INIT(round_end_images, world.file2list("data/image_urls.txt")) // MO /datum/controller/subsystem/ticker/proc/build_roundend_report() var/list/parts = list() - //might want to make this a full section - parts += "
[("Storyteller: [SSgamemode.storyteller ? SSgamemode.storyteller.name : "N/A"]")]
" //monkestation edit + //might want to make this a full section, monkestation edit + parts += "
[("Storyteller: [SSgamemode.current_storyteller ? SSgamemode.current_storyteller.name : "N/A"]")]
" //AI laws parts += law_report() diff --git a/code/__HELPERS/text.dm b/code/__HELPERS/text.dm index 08b69b5e3cd5..3b9100aa68f0 100644 --- a/code/__HELPERS/text.dm +++ b/code/__HELPERS/text.dm @@ -1193,3 +1193,10 @@ GLOBAL_LIST_INIT(binary, list("0","1")) text2num(semver_regex.group[2]), text2num(semver_regex.group[3]), ) + +/// Returns TRUE if the input_text starts with any of the beginnings +/proc/starts_with_any(input_text, list/beginnings) + for(var/beginning in beginnings) + if(!!findtext(input_text, beginning, 1, LAZYLEN(beginning)+1)) + return TRUE + return FALSE diff --git a/code/__HELPERS/~monkestation-helpers/records.dm b/code/__HELPERS/~monkestation-helpers/records.dm new file mode 100644 index 000000000000..1c4ca3980716 --- /dev/null +++ b/code/__HELPERS/~monkestation-helpers/records.dm @@ -0,0 +1,6 @@ +// eww +/proc/overwrite_field_if_available(datum/record/base, datum/record/other, field_name) + if(!istype(base) || !istype(other)) + return + if(other.vars[field_name]) + base.vars[field_name] = other.vars[field_name] diff --git a/code/_globalvars/lists/flavor_misc.dm b/code/_globalvars/lists/flavor_misc.dm index 014d8400dba9..a8e30c317474 100644 --- a/code/_globalvars/lists/flavor_misc.dm +++ b/code/_globalvars/lists/flavor_misc.dm @@ -47,7 +47,7 @@ GLOBAL_LIST_EMPTY(caps_list) GLOBAL_LIST_EMPTY(pod_hair_list) GLOBAL_LIST_EMPTY(ethereal_horns_list) //Monkestation Addition GLOBAL_LIST_EMPTY(ethereal_tail_list) //Monkestation Addition -GLOBAL_LIST_EMPTY(tails_list_monkey) //Monkestation Addition +GLOBAL_LIST_EMPTY(tails_list_monkey) GLOBAL_LIST_EMPTY(anime_top_list) //Monkestation Addition GLOBAL_LIST_EMPTY(anime_middle_list) //Monkestation Addition GLOBAL_LIST_EMPTY(anime_bottom_list) //Monkestation Addition @@ -66,7 +66,6 @@ GLOBAL_LIST_INIT(color_list_ethereal, list( "Cyan Blue" = "#00ffff", "Dark Blue" = "#6666ff", "Dark Fuschia" = "#C70064", //Monkestation Edit: #CC0066 TO #C70064 - "Dark Green" = "#37835b", "Dark Red" = "#9c3030", "Dull Yellow" = "#fbdf56", diff --git a/code/_globalvars/lists/quirks.dm b/code/_globalvars/lists/quirks.dm index 78ed8b336aa1..29b3a26ee7b1 100644 --- a/code/_globalvars/lists/quirks.dm +++ b/code/_globalvars/lists/quirks.dm @@ -2,8 +2,16 @@ ///Types of glasses that can be selected at character selection with the Nearsighted quirk GLOBAL_LIST_INIT(nearsighted_glasses, list( - "Circle", - "Hipster", - "Regular", - "Thin", + "Regular" = /obj/item/clothing/glasses/regular, + "Circle" = /obj/item/clothing/glasses/regular/circle, + "Hipster" = /obj/item/clothing/glasses/regular/hipster, + "Thin" = /obj/item/clothing/glasses/regular/thin, +)) + +///Options for the prothetic limb quirk to choose from +GLOBAL_LIST_INIT(limb_choice, list( + "Left Arm" = /obj/item/bodypart/arm/left/robot/surplus, + "Right Arm" = /obj/item/bodypart/arm/right/robot/surplus, + "Left Leg" = /obj/item/bodypart/leg/left/robot/surplus, + "Right Leg" = /obj/item/bodypart/leg/right/robot/surplus, )) diff --git a/code/_globalvars/traits/_traits.dm b/code/_globalvars/traits/_traits.dm index 1a42f5915f77..42ce3dbd17bb 100644 --- a/code/_globalvars/traits/_traits.dm +++ b/code/_globalvars/traits/_traits.dm @@ -291,7 +291,6 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_JAILBIRD" = TRAIT_JAILBIRD, "TRAIT_JOLLY" = TRAIT_JOLLY, "TRAIT_KISS_OF_DEATH" = TRAIT_KISS_OF_DEATH, - "TRAIT_KLEPTOMANIAC" = TRAIT_KLEPTOMANIAC, "TRAIT_KNOCKEDOUT" = TRAIT_KNOCKEDOUT, "TRAIT_KNOW_ENGI_WIRES" = TRAIT_KNOW_ENGI_WIRES, "TRAIT_KNOW_ROBO_WIRES" = TRAIT_KNOW_ROBO_WIRES, @@ -401,6 +400,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_PRESENT_VISION" = TRAIT_PRESENT_VISION, "TRAIT_PRESERVE_UI_WITHOUT_CLIENT" = TRAIT_PRESERVE_UI_WITHOUT_CLIENT, "TRAIT_PREVENT_IMPLANT_AUTO_EXPLOSION" = TRAIT_PREVENT_IMPLANT_AUTO_EXPLOSION, + "TRAIT_PRIDE_PIN" = TRAIT_PRIDE_PIN, "TRAIT_PRIMITIVE" = TRAIT_PRIMITIVE, //unable to use mechs. Given to Ash Walkers "TRAIT_PROSOPAGNOSIA" = TRAIT_PROSOPAGNOSIA, "TRAIT_PULL_BLOCKED" = TRAIT_PULL_BLOCKED, @@ -515,6 +515,7 @@ GLOBAL_LIST_INIT(traits_by_type, list( "TRAIT_XENO_IMMUNE" = TRAIT_XENO_IMMUNE, "TRAIT_XRAY_VISION" = TRAIT_XRAY_VISION, "TRAIT_COLD_BLOODED" = TRAIT_COLD_BLOODED, + "TRAIT_ZOMBIE_CONSUMED" = TRAIT_ZOMBIE_CONSUMED, /* "TRAIT_ADAMANTINE_EXTRACT_ARMOR" = TRAIT_ADAMANTINE_EXTRACT_ARMOR, */ /* "TRAIT_ALWAYS_WANTED" = TRAIT_ALWAYS_WANTED, */ /* "TRAIT_ANOSMIA" = TRAIT_ANOSMIA, */ diff --git a/code/_globalvars/~monkestation/lists/flavor_misc.dm b/code/_globalvars/~monkestation/lists/flavor_misc.dm index e21ea95bc5b2..7752c312a5b9 100644 --- a/code/_globalvars/~monkestation/lists/flavor_misc.dm +++ b/code/_globalvars/~monkestation/lists/flavor_misc.dm @@ -4,5 +4,5 @@ GLOBAL_LIST_INIT(body_heights, list( "Short" = HUMAN_HEIGHT_SHORT, "Normal" = HUMAN_HEIGHT_MEDIUM, "Tall" = HUMAN_HEIGHT_TALL, - "Tallest" = HUMAN_HEIGHT_TALLEST + "Tallest" = HUMAN_HEIGHT_TALLEST, )) diff --git a/code/_onclick/click.dm b/code/_onclick/click.dm index f5b2a314a961..bcbed5ef38d7 100644 --- a/code/_onclick/click.dm +++ b/code/_onclick/click.dm @@ -91,6 +91,10 @@ var/list/modifiers = params2list(params) + if(!client?.holder && (isobserver(A) || isaicamera(A)) && A.invisibility > see_invisible) + message_admins("[ADMIN_LOOKUPFLW(src)] clicked on [key_name_admin(A)] ([A?.type]) [ADMIN_FLW(A)], which they should not be able to see!") + log_admin_private("[key_name(src)] clicked on [key_name(A)] ([A?.type]), which they should not be able to see!") + if(client) client.imode.update_istate(src, modifiers) diff --git a/code/_onclick/hud/hud.dm b/code/_onclick/hud/hud.dm index 1ee09a05f3fb..4dfbaf5c10d5 100644 --- a/code/_onclick/hud/hud.dm +++ b/code/_onclick/hud/hud.dm @@ -146,8 +146,16 @@ GLOBAL_LIST_INIT(available_ui_styles, list( /datum/hud/proc/client_refresh(datum/source) SIGNAL_HANDLER - RegisterSignal(mymob.client, COMSIG_CLIENT_SET_EYE, PROC_REF(on_eye_change)) - on_eye_change(null, null, mymob.client.eye) + var/client/client = mymob.client + if(client.rebuild_plane_masters) + var/new_relay_loc = (client.byond_version > 515) ? "1,1" : "CENTER" + for(var/group_key as anything in master_groups) + var/datum/plane_master_group/group = master_groups[group_key] + group.relay_loc = new_relay_loc + group.rebuild_plane_masters() + client.rebuild_plane_masters = FALSE + RegisterSignal(client, COMSIG_CLIENT_SET_EYE, PROC_REF(on_eye_change)) + on_eye_change(null, null, client.eye) /datum/hud/proc/clear_client(datum/source) SIGNAL_HANDLER diff --git a/code/_onclick/hud/new_player.dm b/code/_onclick/hud/new_player.dm index a6e139dad084..fc26ea4460ce 100644 --- a/code/_onclick/hud/new_player.dm +++ b/code/_onclick/hud/new_player.dm @@ -23,6 +23,8 @@ plane = SPLASHSCREEN_PLANE layer = LOBBY_BUTTON_LAYER screen_loc = "TOP,CENTER" + var/here + /// Run sleeping actions after initialize /atom/movable/screen/lobby/proc/SlowInit() @@ -41,6 +43,11 @@ var/highlighted = FALSE /// The ref of the mob that owns this button. Only the owner can click on it. var/owner + var/area/misc/start/lobbyarea + +/atom/movable/screen/lobby/button/Initialize(mapload) + . = ..() + lobbyarea = GLOB.areas_by_type[/area/misc/start] /atom/movable/screen/lobby/button/Click(location, control, params) if(owner != REF(usr)) @@ -153,10 +160,11 @@ if(ready) new_player.ready = PLAYER_READY_TO_PLAY base_icon_state = "ready" - if(!new_player.client.readied_store) - new_player.client.readied_store = new(new_player) - else - new_player.client.readied_store.ui_interact(new_player) + var/client/new_client = new_player.client + if(new_client) + if(!new_client.readied_store) + new_client.readied_store = new(new_player) + new_client.readied_store.ui_interact(new_player) else new_player.ready = PLAYER_NOT_READY base_icon_state = "not_ready" @@ -437,3 +445,97 @@ return var/mob/dead/new_player/new_player = hud.mymob new_player.handle_player_polling() + +//This is the changing You are here Button +/atom/movable/screen/lobby/youarehere + var/vanderlin = 0 + screen_loc = "TOP:-81,CENTER:+177" + icon = 'icons/hud/lobby/location_indicator.dmi' + icon_state = "you_are_here" + screen_loc = "TOP,CENTER:-61" + +//Explanation: It gets the port then sets the "here" var in /movable/screen/lobby to the port number +// and if the port number matches it makes clicking the button do nothing so you dont spam reconnect to the server your in +/atom/movable/screen/lobby/youarehere/Initialize(mapload) + . = ..() + var/port = world.port + switch(port) + if(1337) + screen_loc = "TOP:-87,CENTER:+190" + if(2102) + screen_loc = "TOP:-100,CENTER:+190" + if(1342) + screen_loc = "TOP:-34,CENTER:+190" + else + screen_loc = "TOP:0,CENTER:0" + + +//HRP MONKE +/atom/movable/screen/lobby/button/hrp + screen_loc = "TOP:-44,CENTER:+173" + icon = 'icons/hud/lobby/sister_server_buttons.dmi' + icon_state = "hrp" + base_icon_state = "hrp" + +/atom/movable/screen/lobby/button/hrp/Click(location, control, params) + . = ..() + if(!.) + return + if(!(world.port == 1342)) + if(time2text(world.realtime, "DDD") == "Sat") + hud.mymob.client << link("byond://198.37.111.92:1342") + +//MAIN MONKE +/atom/movable/screen/lobby/button/mrp + screen_loc = "TOP:-77,CENTER:+173" + icon = 'icons/hud/lobby/sister_server_buttons.dmi' + icon_state = "mrp" + base_icon_state = "mrp" + +/atom/movable/screen/lobby/button/mrp/Click(location, control, params) + . = ..() + if(!.) + return + if(!(world.port == 0)) + hud.mymob.client << link("byond://play.monkestation.com:1337") + +//NRP MONKE +/atom/movable/screen/lobby/button/nrp + screen_loc = "TOP:-110,CENTER:+173" + icon = 'icons/hud/lobby/sister_server_buttons.dmi' + icon_state = "nrp" + base_icon_state = "nrp" + +/atom/movable/screen/lobby/button/nrp/Click(location, control, params) + . = ..() + if(!.) + return + if(!(world.port == 2102)) + hud.mymob.client << link("byond://198.37.111.92:2102") + +//The Vanderlin Project +/atom/movable/screen/lobby/background/vanderlin + screen_loc = "TOP:-140,CENTER:+177" + icon = 'icons/hud/lobby/vanderlin_button.dmi' + icon_state = "vanderlin_WIP" + base_icon_state = "vanderlin_WIP" + +/* +/atom/movable/screen/lobby/button/vanderlin/Click(location, control, params) + . = ..() + if(!.) + return + hud.mymob.client << link("byond://play.monkestation.com:1337") +*/ + +/atom/movable/screen/lobby/button/ook + screen_loc = "TOP:-126,CENTER:110" + icon = 'icons/hud/lobby/bottom_buttons.dmi' + icon_state = "monke" + base_icon_state = "monke" + +/atom/movable/screen/lobby/button/ook/Click(location, control, params) + . = ..() + if(!.) + return +// playsound(get_turf(usr), 'monkestation/sound/misc/menumonkey.ogg', 50, TRUE) diff --git a/code/_onclick/hud/rendering/plane_master_group.dm b/code/_onclick/hud/rendering/plane_master_group.dm index 4a402f28205e..c3c7d5bca7a7 100644 --- a/code/_onclick/hud/rendering/plane_master_group.dm +++ b/code/_onclick/hud/rendering/plane_master_group.dm @@ -34,6 +34,14 @@ stack_trace("Hey brother, our key [key] is already in use by a plane master group on the passed in hud, belonging to [viewing_hud.mymob]. Ya fucked up, why are there dupes") return +#if MIN_COMPILER_VERSION > 516 + #warn Fully change default relay_loc to "1,1", rather than changing it based on client version +#endif + + if(viewing_hud.mymob?.client?.byond_version > 515) + relay_loc = "1,1" + rebuild_plane_masters() + our_hud = viewing_hud our_hud.master_groups[key] = src show_hud() diff --git a/code/_onclick/hud/rendering/render_plate.dm b/code/_onclick/hud/rendering/render_plate.dm index 42839b16b982..5a739b2dcfa8 100644 --- a/code/_onclick/hud/rendering/render_plate.dm +++ b/code/_onclick/hud/rendering/render_plate.dm @@ -297,7 +297,7 @@ render_relay_planes = list(RENDER_PLANE_MASTER) /** - * Plane master proc called in Initialize() that creates relay objects, and sets them uo as needed + * Plane master proc called in Initialize() that creates relay objects, and sets them up as needed * Sets: * * layer from plane to avoid z-fighting * * planes to relay the render to @@ -307,6 +307,9 @@ * Other vars such as alpha will automatically be applied with the render source */ /atom/movable/screen/plane_master/proc/generate_render_relays() +#if MIN_COMPILER_VERSION > 516 + #warn Fully change default relay_loc to "1,1" +#endif var/relay_loc = home?.relay_loc || "CENTER" // If we're using a submap (say for a popup window) make sure we draw onto it if(home?.map) @@ -341,7 +344,7 @@ if(!length(relays) && !initial(render_target)) render_target = OFFSET_RENDER_TARGET(get_plane_master_render_base(name), offset) if(!relay_loc) - relay_loc = "CENTER" + relay_loc = (show_to?.byond_version > 515) ? "1,1" : "CENTER" // If we're using a submap (say for a popup window) make sure we draw onto it if(home?.map) relay_loc = "[home.map]:[relay_loc]" diff --git a/code/controllers/configuration/entries/game_options.dm b/code/controllers/configuration/entries/game_options.dm index 37c82167a707..9a5336d16528 100644 --- a/code/controllers/configuration/entries/game_options.dm +++ b/code/controllers/configuration/entries/game_options.dm @@ -174,10 +174,22 @@ /datum/config_entry/string/alert_delta default = "Destruction of the station is imminent. All crew are instructed to obey all instructions given by heads of staff. Any violations of these orders can be punished by death. This is not a drill." -//MONKESTATION EDIT START +// monkestation start: additional alert levels /datum/config_entry/string/alert_epsilon default = "Central Command has ordered the Epsilon security level on the station. Consider all contracts terminated." -//MONKESTATION EDIT STOP + +/datum/config_entry/string/alert_yellow + default = "The security alert level has been changed to yellow. There is currently a critical engineering issue on board %STATION_NAME%. Crewmembers are advised to avoid damaged areas, and report them as needed." + +/datum/config_entry/string/alert_amber + default = "The security alert level has been changed to amber. There is an ongoing C-B-R-N threat to the station. Crewmembers are advised to don protective gear, and personal oxygen systems until the alert is lifted. Report any symptoms to medical personnel immediately." + +/datum/config_entry/string/alert_gamma + default = "Central Command has issued an elevated security alert. There is an elevated threat designated by Central Command on board the station. All security forces are to stay armed and on high alert, remaining staff are advised to seek shelter in their departments." + +/datum/config_entry/string/alert_lambda + default = "Central Command has detected a large spike of dimensional energy, consistent with the summoning of \[REDACTED\] entities. You are advised to make what little time you have left worthwhile; as no additional assets will be dispatched to %STATION_NAME% at this time." +// monkestation end /datum/config_entry/flag/revival_pod_plants diff --git a/code/controllers/subsystem.dm b/code/controllers/subsystem.dm index f4b628fe1f14..155f1d393aca 100644 --- a/code/controllers/subsystem.dm +++ b/code/controllers/subsystem.dm @@ -108,7 +108,7 @@ var/avg_iter_count = 0 var/avg_drift = 0 - var/list/enqueue_log = list() + /* var/list/enqueue_log = list() */ //Do not blindly add vars here to the bottom, put it where it goes above //If your var only has two values, put it in as a flag. @@ -197,7 +197,7 @@ var/iter_count = 0 - enqueue_log.Cut() + /* enqueue_log.Cut() */ for (queue_node = Master.queue_head; queue_node; queue_node = queue_node.queue_next) iter_count++ if(iter_count >= ENQUEUE_SANITY) @@ -207,12 +207,10 @@ examine_block(span_userdanger("ERROR: [msg]")), type = MESSAGE_TYPE_DEBUG ) - log_enqueue(msg, list("enqueue_log" = enqueue_log.Copy())) -#if defined(INIT_ORDER_PLEXORA) && !defined(UNIT_TESTS) + /* log_enqueue(msg, list("enqueue_log" = enqueue_log.Copy())) */ SSplexora.mc_alert("[src] has likely entered an infinite loop in enqueue(), we're restarting the MC immediately!") -#endif stack_trace("enqueue() entered an infinite loop, we're restarting the MC!") - enqueue_log.Cut() + /* enqueue_log.Cut() */ Recreate_MC() return @@ -220,12 +218,12 @@ queue_node_priority = queue_node.queued_priority queue_node_flags = queue_node.flags - enqueue_log["[iter_count]"] = list( + /* enqueue_log["[iter_count]"] = list( "node" = "[queue_node]", "next" = "[queue_node.queue_next || "(none)"]", "priority" = queue_node_priority, "flags" = queue_node_flags, - ) + ) */ if (queue_node_flags & (SS_TICKER|SS_BACKGROUND) == SS_TICKER) if ((SS_flags & (SS_TICKER|SS_BACKGROUND)) != SS_TICKER) diff --git a/code/controllers/subsystem/blackbox.dm b/code/controllers/subsystem/blackbox.dm index 1b77a8555554..287effcc6492 100644 --- a/code/controllers/subsystem/blackbox.dm +++ b/code/controllers/subsystem/blackbox.dm @@ -87,7 +87,7 @@ SUBSYSTEM_DEF(blackbox) for(var/player_key in GLOB.player_details) var/datum/player_details/PD = GLOB.player_details[player_key] - record_feedback("tally", "client_byond_version", 1, PD.byond_version) + record_feedback("tally", "client_byond_version", 1, PD.full_byond_version()) /datum/controller/subsystem/blackbox/Shutdown() sealed = FALSE @@ -114,7 +114,7 @@ SUBSYSTEM_DEF(blackbox) if (!length(sqlrowlist)) return - SSdbcore.MassInsert(format_table_name("feedback"), sqlrowlist, ignore_errors = TRUE, delayed = TRUE, special_columns = special_columns) + SSdbcore.MassInsert(format_table_name("feedback"), sqlrowlist, ignore_errors = TRUE, special_columns = special_columns) /datum/controller/subsystem/blackbox/proc/Seal() if(sealed) diff --git a/code/controllers/subsystem/dbcore.dm b/code/controllers/subsystem/dbcore.dm index b16a6903b482..6ff0edc066a6 100644 --- a/code/controllers/subsystem/dbcore.dm +++ b/code/controllers/subsystem/dbcore.dm @@ -1,3 +1,4 @@ +#define SHUTDOWN_QUERY_TIMELIMIT (1 MINUTES) SUBSYSTEM_DEF(dbcore) name = "Database" flags = SS_TICKER @@ -6,12 +7,17 @@ SUBSYSTEM_DEF(dbcore) init_order = INIT_ORDER_DBCORE priority = FIRE_PRIORITY_DATABASE - var/failed_connection_timeout = 0 - var/schema_mismatch = 0 var/db_minor = 0 var/db_major = 0 + /// Number of failed connection attempts this try. Resets after the timeout or successful connection var/failed_connections = 0 + /// Max number of consecutive failures before a timeout (here and not a define so it can be vv'ed mid round if needed) + var/max_connection_failures = 5 + /// world.time that connection attempts can resume + var/failed_connection_timeout = 0 + /// Total number of times connections have had to be timed out. + var/failed_connection_timeout_count = 0 var/last_error @@ -34,6 +40,9 @@ SUBSYSTEM_DEF(dbcore) /// Queries pending execution, mapped to complete arguments var/list/datum/db_query/queries_standby = list() + /// We are in the process of shutting down and should not allow more DB connections + var/shutting_down = FALSE + var/connection // Arbitrary handle returned from rust_g. @@ -170,17 +179,39 @@ SUBSYSTEM_DEF(dbcore) connection = SSdbcore.connection /datum/controller/subsystem/dbcore/Shutdown() + shutting_down = TRUE + var/msg = "Clearing DB queries standby:[length(queries_standby)] active: [length(queries_active)] all: [length(all_queries)]" + to_chat(world, span_boldannounce(msg)) + log_world(msg) //This is as close as we can get to the true round end before Disconnect() without changing where it's called, defeating the reason this is a subsystem + var/endtime = REALTIMEOFDAY + SHUTDOWN_QUERY_TIMELIMIT if(SSdbcore.Connect()) + //Take over control of all active queries + var/queries_to_check = queries_active.Copy() + queries_active.Cut() + + //Start all waiting queries for(var/datum/db_query/query in queries_standby) run_query(query) - + queries_to_check += query + queries_standby -= query + + //wait for them all to finish + for(var/datum/db_query/query in queries_to_check) + UNTIL(query.process() || REALTIMEOFDAY > endtime) + + //log shutdown to the db var/datum/db_query/query_round_shutdown = SSdbcore.NewQuery( "UPDATE [format_table_name("round")] SET shutdown_datetime = Now(), end_state = :end_state WHERE id = :round_id", - list("end_state" = SSticker.end_state, "round_id" = GLOB.round_id) + list("end_state" = SSticker.end_state, "round_id" = GLOB.round_id), + TRUE ) - query_round_shutdown.Execute() + query_round_shutdown.Execute(FALSE) qdel(query_round_shutdown) + + msg = "Done clearing DB queries standby:[length(queries_standby)] active: [length(queries_active)] all: [length(all_queries)]" + to_chat(world, span_boldannounce(msg)) + log_world(msg) if(IsConnected()) Disconnect() stop_db_daemon() @@ -216,12 +247,16 @@ SUBSYSTEM_DEF(dbcore) /datum/controller/subsystem/dbcore/proc/Connect() if(IsConnected()) return TRUE + + if(connection) + Disconnect() //clear the current connection handle so isconnected() calls stop invoking rustg + connection = null //make sure its cleared even if runtimes happened - if(failed_connection_timeout <= world.time) //it's been more than 5 seconds since we failed to connect, reset the counter + if(failed_connection_timeout <= world.time) //it's been long enough since we failed to connect, reset the counter failed_connections = 0 + failed_connection_timeout = 0 - if(failed_connections > 5) //If it failed to establish a connection more than 5 times in a row, don't bother attempting to connect for 5 seconds. - failed_connection_timeout = world.time + 50 + if(failed_connection_timeout > 0) return FALSE if(!CONFIG_GET(flag/sql_enabled)) @@ -257,6 +292,11 @@ SUBSYSTEM_DEF(dbcore) last_error = result["data"] log_sql("Connect() failed | [last_error]") ++failed_connections + //If it failed to establish a connection more than 5 times in a row, don't bother attempting to connect for a time. + if(failed_connections > max_connection_failures) + failed_connection_timeout_count++ + //basic exponential backoff algorithm + failed_connection_timeout = world.time + ((2 ** failed_connection_timeout_count) SECONDS) /datum/controller/subsystem/dbcore/proc/CheckSchemaVersion() if(CONFIG_GET(flag/sql_enabled)) @@ -333,7 +373,11 @@ SUBSYSTEM_DEF(dbcore) /datum/controller/subsystem/dbcore/proc/ReportError(error) last_error = error -/datum/controller/subsystem/dbcore/proc/NewQuery(sql_query, arguments) +/datum/controller/subsystem/dbcore/proc/NewQuery(sql_query, arguments, allow_during_shutdown=FALSE) + //If the subsystem is shutting down, disallow new queries + if(!allow_during_shutdown && shutting_down) + CRASH("Attempting to create a new db query during the world shutdown") + if(IsAdminAdvancedProcCall()) log_admin_private("ERROR: Advanced admin proc call led to sql query: [sql_query]. Query has been blocked") message_admins("ERROR: Advanced admin proc call led to sql query. Query has been blocked") @@ -381,11 +425,8 @@ The duplicate_key arg can be true to automatically generate this part of the que or set to a string that is appended to the end of the query Ignore_errors instructes mysql to continue inserting rows if some of them have errors. the erroneous row(s) aren't inserted and there isn't really any way to know why or why errored -Delayed insert mode was removed in mysql 7 and only works with MyISAM type tables, - It was included because it is still supported in mariadb. - It does not work with duplicate_key and the mysql server ignores it in those cases */ -/datum/controller/subsystem/dbcore/proc/MassInsert(table, list/rows, duplicate_key = FALSE, ignore_errors = FALSE, delayed = FALSE, warn = FALSE, async = TRUE, special_columns = null) +/datum/controller/subsystem/dbcore/proc/MassInsert(table, list/rows, duplicate_key = FALSE, ignore_errors = FALSE, warn = FALSE, async = TRUE, special_columns = null) if (!table || !rows || !istype(rows)) return @@ -402,8 +443,6 @@ Delayed insert mode was removed in mysql 7 and only works with MyISAM type table // Prepare SQL query full of placeholders var/list/query_parts = list("INSERT") - if (delayed) - query_parts += " DELAYED" if (ignore_errors) query_parts += " IGNORE" query_parts += " INTO " @@ -460,11 +499,11 @@ Delayed insert mode was removed in mysql 7 and only works with MyISAM type table ASSERT(fexists(daemon), "Configured db_daemon doesn't exist") var/list/result = world.shelleo("echo \"Starting ezdb daemon, do not close this window\" && [daemon]") - var/error_code = result[1] - if (!error_code) + var/result_code = result[1] + if (!result_code || result_code == 1) return - stack_trace("Failed to start DB daemon: [error_code]\n[result[3]]") + stack_trace("Failed to start DB daemon: [result_code]\n[result[3]]") /datum/controller/subsystem/dbcore/proc/stop_db_daemon() set waitfor = FALSE @@ -590,12 +629,12 @@ Delayed insert mode was removed in mysql 7 and only works with MyISAM type table /datum/db_query/process(seconds_per_tick) if(status >= DB_QUERY_FINISHED) - return + return TRUE // we are done processing after all status = DB_QUERY_STARTED var/job_result = rustg_sql_check_query(job_id) if(job_result == RUSTG_JOB_NO_RESULTS_YET) - return + return FALSE //no results yet store_data(json_decode(job_result)) return TRUE @@ -637,3 +676,4 @@ Delayed insert mode was removed in mysql 7 and only works with MyISAM type table /datum/db_query/proc/Close() rows = null item = null +#undef SHUTDOWN_QUERY_TIMELIMIT diff --git a/code/controllers/subsystem/events.dm b/code/controllers/subsystem/events.dm index 53181e24e844..c41cd405df31 100644 --- a/code/controllers/subsystem/events.dm +++ b/code/controllers/subsystem/events.dm @@ -19,7 +19,7 @@ SUBSYSTEM_DEF(events) continue var/datum/round_event_control/event = new event_type if(!event.valid_for_map()) - qdel(event) + qdel(event) //highly iffy on this as it does cause issues for admins sometimes continue control += event //add it to the list of all events (controls) reschedule() diff --git a/code/controllers/subsystem/garbage.dm b/code/controllers/subsystem/garbage.dm index c371f7847b23..c60c32edb743 100644 --- a/code/controllers/subsystem/garbage.dm +++ b/code/controllers/subsystem/garbage.dm @@ -360,7 +360,7 @@ SUBSYSTEM_DEF(garbage) /// Datums passed to this will be given a chance to clean up references to allow the GC to collect them. /proc/qdel(datum/to_delete, force = FALSE) if(!istype(to_delete)) - //DREAMLUAU_CLEAR_REF_USERDATA(to_delete) + DREAMLUAU_CLEAR_REF_USERDATA(to_delete) del(to_delete) return diff --git a/code/controllers/subsystem/lua.dm b/code/controllers/subsystem/lua.dm index 37d7dd63d3c2..99df8cf33549 100644 --- a/code/controllers/subsystem/lua.dm +++ b/code/controllers/subsystem/lua.dm @@ -2,7 +2,6 @@ SUBSYSTEM_DEF(lua) name = "Lua Scripting" runlevels = RUNLEVEL_LOBBY | RUNLEVELS_DEFAULT wait = 0.1 SECONDS - flags = SS_OK_TO_FAIL_INIT /// A list of all lua states var/list/datum/lua_state/states = list() @@ -18,29 +17,19 @@ SUBSYSTEM_DEF(lua) var/list/current_run = list() var/list/current_states_run = list() - /// Protects return values from getting GCed before getting converted to lua values - /// Gets cleared every tick. - var/list/gc_guard = list() + var/list/needs_gc_cycle = list() /datum/controller/subsystem/lua/Initialize() - if(!CONFIG_GET(flag/auxtools_enabled)) - warning("SSlua requires auxtools to be enabled to run.") - return SS_INIT_NO_NEED - - try - // Initialize the auxtools library - AUXTOOLS_CHECK(AUXLUA) - - // Set the wrappers for setting vars and calling procs - __lua_set_set_var_wrapper("/proc/wrap_lua_set_var") - __lua_set_datum_proc_call_wrapper("/proc/wrap_lua_datum_proc_call") - __lua_set_global_proc_call_wrapper("/proc/wrap_lua_global_proc_call") - __lua_set_print_wrapper("/proc/wrap_lua_print") - return SS_INIT_SUCCESS - catch(var/exception/e) - // Something went wrong, best not allow the subsystem to run - warning("Error initializing SSlua: [e.name]") - return SS_INIT_FAILURE + DREAMLUAU_SET_EXECUTION_LIMIT_SECS(5) + // Set wrappers to ensure that lua scripts are subject to the same safety restrictions as other admin tooling + DREAMLUAU_SET_NEW_WRAPPER("/proc/_new") + DREAMLUAU_SET_VAR_GET_WRAPPER("/proc/wrap_lua_get_var") + DREAMLUAU_SET_VAR_SET_WRAPPER("/proc/wrap_lua_set_var") + DREAMLUAU_SET_OBJECT_CALL_WRAPPER("/proc/wrap_lua_datum_proc_call") + DREAMLUAU_SET_GLOBAL_CALL_WRAPPER("/proc/wrap_lua_global_proc_call") + // Set the print wrapper, as otherwise, the print function is meaningless + DREAMLUAU_SET_PRINT_WRAPPER("/proc/wrap_lua_print") + return SS_INIT_SUCCESS /datum/controller/subsystem/lua/OnConfigLoad() // Read the paths from the config file @@ -50,9 +39,6 @@ SUBSYSTEM_DEF(lua) lua_path += path world.SetConfig("env", "LUAU_PATH", jointext(lua_path, ";")) -/datum/controller/subsystem/lua/Shutdown() - AUXTOOLS_FULL_SHUTDOWN(AUXLUA) - /datum/controller/subsystem/lua/proc/queue_resume(datum/lua_state/state, index, arguments) if(!initialized) return @@ -62,36 +48,33 @@ SUBSYSTEM_DEF(lua) arguments = list() else if(!islist(arguments)) arguments = list(arguments) + else + var/list/args_list = arguments + arguments = args_list.Copy() resumes += list(list("state" = state, "index" = index, "arguments" = arguments)) -/datum/controller/subsystem/lua/proc/kill_task(datum/lua_state/state, list/task_info) +/datum/controller/subsystem/lua/proc/kill_task(datum/lua_state/state, is_sleep, index) if(!istype(state)) return - if(!islist(task_info)) - return - if(!(istext(task_info["name"]) && istext(task_info["status"]) && isnum(task_info["index"]))) - return - switch(task_info["status"]) - if("sleep") - var/task_index = task_info["index"] - var/state_index = 1 - - // Get the nth sleep in the sleep list corresponding to the target state - for(var/i in 1 to length(sleeps)) - var/datum/lua_state/sleeping_state = sleeps[i] - if(sleeping_state == state) - if(state_index == task_index) - sleeps.Cut(i, i+1) - break - state_index++ - if("yield") - // Remove the resumt from the resumt list - for(var/i in 1 to length(resumes)) - var/resume = resumes[i] - if(resume["state"] == state && resume["index"] == task_info["index"]) - resumes.Cut(i, i+1) + if(is_sleep) + var/state_index = 1 + + // Get the nth sleep in the sleep list corresponding to the target state + for(var/i in 1 to length(sleeps)) + var/datum/lua_state/sleeping_state = sleeps[i] + if(sleeping_state == state) + if(state_index == index) + sleeps.Cut(i, i+1) break - state.kill_task(task_info) + state_index++ + else + // Remove the resumt from the resumt list + for(var/i in 1 to length(resumes)) + var/resume = resumes[i] + if(resume["state"] == state && resume["index"] == index) + resumes.Cut(i, i+1) + break + state.kill_task(is_sleep, index) /datum/controller/subsystem/lua/fire(resumed) // Each fire of SSlua awakens every sleeping task in the order they slept, @@ -102,7 +85,6 @@ SUBSYSTEM_DEF(lua) sleeps.Cut() resumes.Cut() - gc_guard.Cut() var/list/current_sleeps = current_run["sleeps"] var/list/affected_states = list() while(length(current_sleeps)) @@ -145,6 +127,32 @@ SUBSYSTEM_DEF(lua) if(MC_TICK_CHECK) break + while(length(needs_gc_cycle)) + var/datum/lua_state/state = needs_gc_cycle[needs_gc_cycle.len] + needs_gc_cycle.len-- + state.collect_garbage() + // Update every lua editor TGUI open for each state that had a task awakened or resumed for(var/datum/lua_state/state in affected_states) INVOKE_ASYNC(state, TYPE_PROC_REF(/datum/lua_state, update_editors)) + +/datum/controller/subsystem/lua/proc/log_involved_runtime(exception/runtime, list/desclines, list/lua_stacks) + var/list/json_data = list("status" = "runtime", "file" = runtime.file, "line" = runtime.line, "message" = runtime.name, "stack" = list()) + var/level = 1 + for(var/line in desclines) + line = copytext(line, 3) + if(starts_with_any(line, list( + "/datum/lua_state (/datum/lua_state): load script", + "/datum/lua_state (/datum/lua_state): call function", + "/datum/lua_state (/datum/lua_state): awaken", + "/datum/lua_state (/datum/lua_state): resume" + ))) + json_data["stack"] += lua_stacks[level] + level++ + json_data["stack"] += line + for(var/datum/weakref/state_ref as anything in GLOB.lua_state_stack) + var/datum/lua_state/state = state_ref.resolve() + if(!state) + continue + state.log_result(json_data) + return diff --git a/code/controllers/subsystem/persistence/engravings.dm b/code/controllers/subsystem/persistence/engravings.dm index f47fc7fbba12..bcc3fef9fd1f 100644 --- a/code/controllers/subsystem/persistence/engravings.dm +++ b/code/controllers/subsystem/persistence/engravings.dm @@ -27,7 +27,7 @@ var/successfully_loaded_engravings = 0 - for(var/iteration in 1 to rand(MIN_PERSISTENT_ENGRAVINGS, MAX_PERSISTENT_ENGRAVINGS)) + for(var/iteration in 1 to min(rand(MIN_PERSISTENT_ENGRAVINGS, MAX_PERSISTENT_ENGRAVINGS), length(saved_engravings))) var/engraving = pick_n_take(saved_engravings) if(!islist(engraving)) stack_trace("something's wrong with the engraving data! one of the saved engravings wasn't a list!") diff --git a/code/controllers/subsystem/persistence/scars.dm b/code/controllers/subsystem/persistence/scars.dm index fa378f24dd43..5c6a76f4e134 100644 --- a/code/controllers/subsystem/persistence/scars.dm +++ b/code/controllers/subsystem/persistence/scars.dm @@ -5,7 +5,7 @@ if(!istype(ending_human) || !ending_human.mind?.original_character_slot_index || !ending_human.client?.prefs.read_preference(/datum/preference/toggle/persistent_scars)) continue - var/mob/living/carbon/human/original_human = ending_human.mind.original_character.resolve() + var/mob/living/carbon/human/original_human = ending_human.mind.original_character?.resolve() if(!original_human) continue diff --git a/code/controllers/subsystem/processing/quirks.dm b/code/controllers/subsystem/processing/quirks.dm index e11de9b0d63a..8ad71a285a61 100644 --- a/code/controllers/subsystem/processing/quirks.dm +++ b/code/controllers/subsystem/processing/quirks.dm @@ -71,11 +71,26 @@ PROCESSING_SUBSYSTEM_DEF(quirks) continue hardcore_quirks[quirk_type] += hardcore_value -/datum/controller/subsystem/processing/quirks/proc/AssignQuirks(mob/living/user, client/applied_client) +// Monkestation edit - original: /datum/controller/subsystem/processing/quirks/proc/AssignQuirks(mob/living/user, client/applied_client) +/datum/controller/subsystem/processing/quirks/proc/AssignQuirks(mob/living/user, client/applied_client, omit_negatives = FALSE, omit_positives = FALSE, omit_neutrals = FALSE) var/badquirk = FALSE for(var/quirk_name in applied_client?.prefs?.all_quirks) var/datum/quirk/quirk_type = quirks[quirk_name] if(ispath(quirk_type)) + // Monkestation edit start + if (omit_negatives) + var/q_val = initial(quirk_type.value) + if (q_val < 0 && q_val != 0) + continue + if (omit_positives) + var/q_val = initial(quirk_type.value) + if (q_val > 0 && q_val != 0) + continue + if (omit_neutrals) + var/q_val = initial(quirk_type.value) + if (q_val == 0) + continue + // monkestation end if(user.add_quirk(quirk_type, override_client = applied_client)) SSblackbox.record_feedback("nested tally", "quirks_taken", 1, list("[quirk_name]")) else diff --git a/code/controllers/subsystem/spatial_gridmap.dm b/code/controllers/subsystem/spatial_gridmap.dm index 81ae29f6bad4..76aa484bf92c 100644 --- a/code/controllers/subsystem/spatial_gridmap.dm +++ b/code/controllers/subsystem/spatial_gridmap.dm @@ -234,7 +234,7 @@ SUBSYSTEM_DEF(spatial_grid) . = list() //technically THIS list only contains lists, but inside those lists are grid cell datums and we can go without a SINGLE var init if we do this - var/list/datum/spatial_grid_cell/grid_level = grids_by_z_level[center_turf.z] + var/list/list/datum/spatial_grid_cell/grid_level = grids_by_z_level[center_turf.z] switch(type) if(SPATIAL_GRID_CONTENTS_TYPE_CLIENTS) diff --git a/code/controllers/subsystem/statpanel.dm b/code/controllers/subsystem/statpanel.dm index 22cbf7824c3d..d5aabfaefef2 100644 --- a/code/controllers/subsystem/statpanel.dm +++ b/code/controllers/subsystem/statpanel.dm @@ -26,7 +26,7 @@ SUBSYSTEM_DEF(statpanels) global_data = list( "Map: [SSmapping.config?.map_name || "Loading..."]", cached ? "Next Map: [cached.map_name]" : null, - "Storyteller: [!SSgamemode.secret_storyteller && SSgamemode.storyteller ? SSgamemode.storyteller.name : "Secret"]", //monkestation addition + "Storyteller: [!SSgamemode.secret_storyteller && SSgamemode.current_storyteller ? SSgamemode.current_storyteller.name : "Secret"]", //monkestation addition "Round ID: [GLOB.round_id ? GLOB.round_id : "NULL"]", "Server Time: [time2text(world.timeofday, "YYYY-MM-DD hh:mm:ss")]", "Round Time: [ROUND_TIME()]", diff --git a/code/controllers/subsystem/ticker.dm b/code/controllers/subsystem/ticker.dm index 9d87403d3f7e..2bb519f79477 100755 --- a/code/controllers/subsystem/ticker.dm +++ b/code/controllers/subsystem/ticker.dm @@ -334,8 +334,8 @@ SUBSYSTEM_DEF(ticker) /datum/controller/subsystem/ticker/proc/PostSetup() set waitfor = FALSE - SSgamemode.storyteller.process(STORYTELLER_WAIT_TIME * 0.1) // we want this asap - SSgamemode.storyteller.round_started = TRUE + SSgamemode.current_storyteller.process(STORYTELLER_WAIT_TIME * 0.1) // we want this asap + SSgamemode.current_storyteller.round_started = TRUE mode.post_setup() GLOB.start_state = new /datum/station_state() GLOB.start_state.count() @@ -473,9 +473,8 @@ SUBSYSTEM_DEF(ticker) continue item.post_equip_item(new_player_mob.client?.prefs, new_player_living) - if(new_player_mob.client.readied_store) - if(new_player_mob.client.readied_store.bought_item) - new_player_mob.client.readied_store.finalize_purchase_spawn(new_player_mob, new_player_living) + if(new_player_mob.client?.readied_store?.bought_item) + new_player_mob.client.readied_store.finalize_purchase_spawn(new_player_mob, new_player_living) CHECK_TICK diff --git a/code/controllers/subsystem/vote.dm b/code/controllers/subsystem/vote.dm index df0bbeedcec4..8698fcdbdc65 100644 --- a/code/controllers/subsystem/vote.dm +++ b/code/controllers/subsystem/vote.dm @@ -247,7 +247,7 @@ SUBSYSTEM_DEF(vote) generated_actions += voting_action if(current_vote.vote_sound && (new_voter.prefs.read_preference(/datum/preference/toggle/sound_announcements))) - SEND_SOUND(new_voter, sound(current_vote.vote_sound)) + SEND_SOUND(new_voter, sound(current_vote.vote_sound, volume = current_vote.vote_sound_volume)) // monkestation edit return TRUE diff --git a/code/datums/ai/basic_mobs/basic_subtrees/stare_at_thing.dm b/code/datums/ai/basic_mobs/basic_subtrees/stare_at_thing.dm index 1beb70f710c6..fcfe3cbe8ad0 100644 --- a/code/datums/ai/basic_mobs/basic_subtrees/stare_at_thing.dm +++ b/code/datums/ai/basic_mobs/basic_subtrees/stare_at_thing.dm @@ -2,8 +2,7 @@ /datum/ai_planning_subtree/stare_at_thing /datum/ai_planning_subtree/stare_at_thing/SelectBehaviors(datum/ai_controller/controller, seconds_per_tick) - var/datum/weakref/weak_target = controller.blackboard[BB_STATIONARY_CAUSE] - var/atom/target = weak_target?.resolve() + var/atom/target = controller.blackboard[BB_STATIONARY_CAUSE] if(isnull(target)) // No target? Time to locate one using the list we set in this mob's blackboard. var/list/potential_scares = controller.blackboard[BB_STATIONARY_TARGETS] diff --git a/code/datums/ai/hunting_behavior/hunting_behaviors.dm b/code/datums/ai/hunting_behavior/hunting_behaviors.dm index f5e5c209a181..9bd8c60f28a4 100644 --- a/code/datums/ai/hunting_behavior/hunting_behaviors.dm +++ b/code/datums/ai/hunting_behavior/hunting_behaviors.dm @@ -95,8 +95,6 @@ var/atom/hunted = controller.blackboard[hunting_target_key] if(QDELETED(hunted)) - //Target is gone for some reason. forget about this task! - controller[hunting_target_key] = null finish_action(controller, FALSE, hunting_target_key) else target_caught(hunter, hunted) diff --git a/code/datums/ai/monkey/monkey_controller.dm b/code/datums/ai/monkey/monkey_controller.dm index fc7e7a02a7d5..5571118e9990 100644 --- a/code/datums/ai/monkey/monkey_controller.dm +++ b/code/datums/ai/monkey/monkey_controller.dm @@ -161,8 +161,10 @@ have ways of interacting with a specific mob and control it. var/obj/item/clothing/suit/costume/monkeysuit/S var/obj/item/clothing/mask/gas/monkeymask/M var/list/equipped = user.get_equipped_items(FALSE) - if(issimian(user)) - ADD_TRAIT(user, TRAIT_MONKEYFRIEND, SPECIES_TRAIT) + if(iscarbon(user)) + var/mob/living/carbon/carbon_user = user + if(TRAIT_MONKEYFRIEND in carbon_user?.dna?.species.inherent_traits) + ADD_TRAIT(user, TRAIT_MONKEYFRIEND, SPECIES_TRAIT) if(((M in equipped) && (S in equipped))) ADD_TRAIT(user, TRAIT_MONKEYFRIEND, CLOTHING_TRAIT) diff --git a/code/datums/brain_damage/severe.dm b/code/datums/brain_damage/severe.dm index e517742bd217..1eaf393c09be 100644 --- a/code/datums/brain_damage/severe.dm +++ b/code/datums/brain_damage/severe.dm @@ -113,6 +113,27 @@ for(var/X in paralysis_traits) REMOVE_TRAIT(owner, X, TRAUMA_TRAIT) +/datum/brain_trauma/severe/paralysis/crushed + random_gain = FALSE + resilience = TRAUMA_RESILIENCE_LOBOTOMY + +/datum/brain_trauma/severe/paralysis/crushed/New(specific_type) + if(specific_type) + paralysis_type = specific_type + if(!paralysis_type) + paralysis_type = pick("full","left","right","arms","legs") + switch(paralysis_type) + if("full") + paralysis_traits = list(TRAIT_PARALYSIS_L_ARM, TRAIT_PARALYSIS_R_ARM, TRAIT_PARALYSIS_L_LEG, TRAIT_PARALYSIS_R_LEG) + if("left") + paralysis_traits = list(TRAIT_PARALYSIS_L_ARM, TRAIT_PARALYSIS_L_LEG) + if("right") + paralysis_traits = list(TRAIT_PARALYSIS_R_ARM, TRAIT_PARALYSIS_R_LEG) + if("arms") + paralysis_traits = list(TRAIT_PARALYSIS_L_ARM, TRAIT_PARALYSIS_R_ARM) + if("legs") + paralysis_traits = list(TRAIT_PARALYSIS_L_LEG, TRAIT_PARALYSIS_R_LEG) + // this is not the best way to do this, but uh /datum/brain_trauma/severe/paralysis/paraplegic random_gain = FALSE diff --git a/code/datums/callback.dm b/code/datums/callback.dm index 2b48a85be395..af73954080f7 100644 --- a/code/datums/callback.dm +++ b/code/datums/callback.dm @@ -111,7 +111,7 @@ else calling_arguments = args if(datum_flags & DF_VAR_EDITED) - if(usr != GLOB.AdminProcCallHandler && !usr?.client?.ckey) //This happens when a timer or the MC invokes a callback + if(usr != GLOB.AdminProcCallHandler && !(usr && usr?.client?.ckey)) //This happens when a timer or the MC invokes a callback return HandleUserlessProcCall(usr, object, delegate, calling_arguments) return WrapAdminProcCall(object, delegate, calling_arguments) if (object == GLOBAL_PROC) diff --git a/code/datums/chatmessage.dm b/code/datums/chatmessage.dm index 05261c3ea74d..d170ab9b7004 100644 --- a/code/datums/chatmessage.dm +++ b/code/datums/chatmessage.dm @@ -164,6 +164,11 @@ var/image/r_icon = image('icons/ui_icons/chat/chat_icons.dmi', icon_state = "emote") LAZYADD(prefixes, "\icon[r_icon]") chat_color_name_to_use = target.get_visible_name(add_id_name = FALSE) // use face name for nonverbal messages + // monkestation start: looc + else if (extra_classes.Find("looc")) + var/image/r_icon = image('icons/ui_icons/chat/chat_icons.dmi', icon_state = "looc") + LAZYADD(prefixes, "\icon[r_icon]") + // monkestation end if(isnull(chat_color_name_to_use)) if(HAS_TRAIT(target, TRAIT_SIGN_LANG)) @@ -346,8 +351,10 @@ // Display visual above source if(runechat_flags & EMOTE_MESSAGE) new /datum/chatmessage(raw_message, speaker, src, message_language, list("emote", "italics")) - else if(CHECK_BITFIELD(runechat_flags, LOOC_MESSAGE)) + // monkestation start: looc + else if(runechat_flags & LOOC_MESSAGE) new /datum/chatmessage(raw_message, speaker, src, message_language, list("looc", "italics")) + // monkestation end else new /datum/chatmessage(raw_message, speaker, src, message_language, spans) diff --git a/code/datums/cinematics/_cinematic.dm b/code/datums/cinematics/_cinematic.dm index 628e7b60e353..1ea32a362d73 100644 --- a/code/datums/cinematics/_cinematic.dm +++ b/code/datums/cinematics/_cinematic.dm @@ -155,7 +155,7 @@ /// Unlocks a previously locked weakref /datum/cinematic/proc/unlock_mob(datum/weakref/mob_ref) - var/mob/locked_mob = mob_ref.resolve() + var/mob/locked_mob = mob_ref?.resolve() if(isnull(locked_mob)) return REMOVE_TRAIT(locked_mob, TRAIT_NO_TRANSFORM, CINEMATIC_SOURCE) diff --git a/code/datums/components/_component.dm b/code/datums/components/_component.dm index 407f7338c202..f891bf4ba77f 100644 --- a/code/datums/components/_component.dm +++ b/code/datums/components/_component.dm @@ -274,17 +274,17 @@ */ /datum/proc/GetExactComponent(datum/component/c_type) RETURN_TYPE(c_type) - if(initial(c_type.dupe_mode) == COMPONENT_DUPE_ALLOWED || initial(c_type.dupe_mode) == COMPONENT_DUPE_SELECTIVE) + var/initial_type_mode = c_type::dupe_mode + if(initial_type_mode == COMPONENT_DUPE_ALLOWED || initial_type_mode == COMPONENT_DUPE_SELECTIVE) stack_trace("GetComponent was called to get a component of which multiple copies could be on an object. This can easily break and should be changed. Type: \[[c_type]\]") - var/list/dc = _datum_components - if(!dc) + var/list/all_components = _datum_components + if(!all_components) return null - var/datum/component/C = dc[c_type] - if(C) - if(length(C)) - C = C[1] - if(C.type == c_type) - return C + var/datum/component/potential_component + if(length(all_components)) + potential_component = all_components[c_type] + if(potential_component?.type == c_type) + return potential_component return null /** diff --git a/code/datums/components/crafting/crafting.dm b/code/datums/components/crafting/crafting.dm index 3fe52bfa8d4f..766ee555a166 100644 --- a/code/datums/components/crafting/crafting.dm +++ b/code/datums/components/crafting/crafting.dm @@ -181,7 +181,7 @@ return TRUE -/datum/component/personal_crafting/proc/construct_item(atom/a, datum/crafting_recipe/R) +/datum/component/personal_crafting/proc/construct_item(atom/a, datum/crafting_recipe/R, time_override = null) var/list/contents = get_surroundings(a,R.blacklist) var/send_feedback = 1 if(check_contents(a, R, contents)) @@ -191,8 +191,8 @@ if(istype(content, R.result)) return ", object already present." //If we're a mob we'll try a do_after; non mobs will instead instantly construct the item - if(ismob(a) && !do_after(a, R.time, target = a)) - return "." + if(ismob(a) && !do_after(a, time_override ? time_override : R.time, target = a)) + return ", interrupted." contents = get_surroundings(a,R.blacklist) if(!check_contents(a, R, contents)) return ", missing component." diff --git a/code/datums/components/food/edible.dm b/code/datums/components/food/edible.dm index a1726ca00b4e..3d8a8f36f8f4 100644 --- a/code/datums/components/food/edible.dm +++ b/code/datums/components/food/edible.dm @@ -92,6 +92,7 @@ Behavior that's still missing from this component that original food items had t RegisterSignal(parent, COMSIG_FOOD_INGREDIENT_ADDED, PROC_REF(edible_ingredient_added)) RegisterSignal(parent, COMSIG_OOZE_EAT_ATOM, PROC_REF(on_ooze_eat)) RegisterSignal(parent, COMSIG_TRY_EAT_TRAIT, PROC_REF(try_eat_trait)) + RegisterSignal(parent, COMSIG_ATOM_ATTACK_HAND_SECONDARY, PROC_REF(show_radial_recipes)) //Monkestation edit: CHEWIN COOKING if(isturf(parent)) RegisterSignal(parent, COMSIG_ATOM_ENTERED, PROC_REF(on_entered)) @@ -558,6 +559,11 @@ Behavior that's still missing from this component that original food items had t consumer.applied_food_buffs ++ else if(food_buffs in consumer.status_effects) eater.apply_status_effect(food_buffs) + var/datum/status_effect/food/effect = locate(food_buffs) in consumer.status_effects + if(effect) + var/obj/item/food = parent + if(food.food_quality != 1) //if we are not the default value + effect.apply_quality(food.food_quality) to_chat(feeder, span_warning("There is nothing left of [parent], oh no!")) if(isturf(parent)) @@ -587,7 +593,7 @@ Behavior that's still missing from this component that original food items had t if(desired_mask != current_mask) current_mask = desired_mask - src.add_filter("bite", 0, alpha_mask_filter(icon=icon('goon/icons/obj/food.dmi', "eating[desired_mask]"))) + parent.add_filter("bite", 0, alpha_mask_filter(icon=icon('goon/icons/obj/food.dmi', "eating[desired_mask]"))) . = COMPONENT_CANCEL_ATTACK_CHAIN L.taste(owner.reagents) // why should carbons get all the fun? @@ -625,3 +631,32 @@ Behavior that's still missing from this component that original food items had t playsound(get_turf(eater),'sound/items/eatfood.ogg', rand(30,50), TRUE) qdel(eaten_food) return COMPONENT_ATOM_EATEN +//MONKESTATION EDIT START +/datum/component/edible/proc/UseByMouse(datum/source, mob/user) + + SIGNAL_HANDLER + + var/atom/owner = parent + var/mob/living/L = user + bitecount++ + var/desired_mask = (total_bites / bitecount) + desired_mask = round(desired_mask) + desired_mask = max(1,desired_mask) + desired_mask = min(desired_mask, 4) + + if(desired_mask != current_mask) + current_mask = desired_mask + parent.add_filter("bite", 0, alpha_mask_filter(icon=icon('goon/icons/obj/food.dmi', "eating[desired_mask]"))) + + . = COMPONENT_CANCEL_ATTACK_CHAIN + L.taste(owner.reagents) // why should carbons get all the fun? + playsound(user.loc,'sound/items/eatfood.ogg', rand(5,20), TRUE) + if(bitecount >= 5) + var/satisfaction_text = pick("burps from enjoyment.", "squeaks for more!", "squeaks twice.", "looks at the area where \the [parent] was.") + L.manual_emote(satisfaction_text) + SEND_SIGNAL(parent, COMSIG_FOOD_CONSUMED) + qdel(parent) + else + if(prob(50)) + L.manual_emote("nibbles away at \the [parent].") +//MONKESTATION EDIT STOP diff --git a/code/datums/components/omen.dm b/code/datums/components/omen.dm index e0bc45cded17..a24d9c3ea7ad 100644 --- a/code/datums/components/omen.dm +++ b/code/datums/components/omen.dm @@ -91,7 +91,7 @@ var/has_watchers = FALSE for(var/mob/viewer in viewers(our_guy, world.view)) - if(viewer.client) + if(viewer.client && !viewer.client.is_afk()) has_watchers = TRUE break if(!has_watchers) @@ -99,7 +99,10 @@ if(!prob(15 * effective_luck)) return - var/our_guy_pos = get_turf(living_guy) + + var/turf/open/our_guy_pos = living_guy.loc + if(!isopenturf(our_guy_pos)) + return for(var/obj/machinery/door/airlock/darth_airlock in our_guy_pos) if(darth_airlock.locked || !darth_airlock.hasPower()) continue diff --git a/code/datums/components/regenerator.dm b/code/datums/components/regenerator.dm index bfc1ad399c43..ab0dca757386 100644 --- a/code/datums/components/regenerator.dm +++ b/code/datums/components/regenerator.dm @@ -88,6 +88,12 @@ if (living_parent.health == living_parent.maxHealth) stop_regenerating() return - living_parent.heal_overall_damage(health_per_second * seconds_per_tick) + do_heal(health_per_second * seconds_per_tick) // monkestation edit: minor refactor + +// monkestation start: minor refactor +/datum/component/regenerator/proc/do_heal(amt) + var/mob/living/living_parent = parent + living_parent.heal_overall_damage(amt) +// monkestation end #undef REGENERATION_FILTER diff --git a/code/datums/components/riding/riding.dm b/code/datums/components/riding/riding.dm index 5a043ef6f069..f37c9169b4d7 100644 --- a/code/datums/components/riding/riding.dm +++ b/code/datums/components/riding/riding.dm @@ -251,7 +251,7 @@ /datum/component/riding/proc/driver_move(atom/movable/movable_parent, mob/living/user, direction) SIGNAL_HANDLER SHOULD_CALL_PARENT(TRUE) - movable_parent.set_glide_size(DELAY_TO_GLIDE_SIZE(vehicle_move_delay)) + movable_parent.set_glide_size(DELAY_TO_GLIDE_SIZE(move_delay())) // monkestation edit: use move_delay() proc instead of raw vehicle_move_delay var /// So we can check all occupants when we bump a door to see if anyone has access /datum/component/riding/proc/vehicle_bump(atom/movable/movable_parent, obj/machinery/door/possible_bumped_door) diff --git a/code/datums/components/riding/riding_mob.dm b/code/datums/components/riding/riding_mob.dm index 83fb4d5be8d3..00e7175bbd0d 100644 --- a/code/datums/components/riding/riding_mob.dm +++ b/code/datums/components/riding/riding_mob.dm @@ -103,7 +103,7 @@ var/turf/next = get_step(living_parent, direction) step(living_parent, direction) last_move_diagonal = ((direction & (direction - 1)) && (living_parent.loc == next)) - COOLDOWN_START(src, vehicle_move_cooldown, (last_move_diagonal? 2 : 1) * vehicle_move_delay) + COOLDOWN_START(src, vehicle_move_cooldown, (last_move_diagonal ? 2 : 1) * move_delay()) // monkestation edit: use move_delay() proc instead of raw vehicle_move_delay var return ..() /datum/component/riding/creature/keycheck(mob/user) diff --git a/code/datums/components/riding/riding_structure.dm b/code/datums/components/riding/riding_structure.dm index ca1f0b854304..462816e1d55f 100644 --- a/code/datums/components/riding/riding_structure.dm +++ b/code/datums/components/riding/riding_structure.dm @@ -28,7 +28,7 @@ step(movable_parent, direction) last_move_diagonal = ((direction & (direction - 1)) && (movable_parent.loc == next)) - COOLDOWN_START(src, vehicle_move_cooldown, (last_move_diagonal? 2 : 1) * vehicle_move_delay) + COOLDOWN_START(src, vehicle_move_cooldown, (last_move_diagonal? 2 : 1) * move_delay()) // monkestation edit: use move_delay() proc instead of raw vehicle_move_delay var if(QDELETED(src)) return diff --git a/code/datums/components/riding/riding_vehicle.dm b/code/datums/components/riding/riding_vehicle.dm index 5954b5c7ca7a..a1c884434101 100644 --- a/code/datums/components/riding/riding_vehicle.dm +++ b/code/datums/components/riding/riding_vehicle.dm @@ -98,7 +98,7 @@ step(movable_parent, direction) last_move_diagonal = ((direction & (direction - 1)) && (movable_parent.loc == next)) - COOLDOWN_START(src, vehicle_move_cooldown, (last_move_diagonal? 2 : 1) * vehicle_move_delay) + COOLDOWN_START(src, vehicle_move_cooldown, (last_move_diagonal ? 2 : 1) * move_delay()) // monkestation edit: use move_delay() proc instead of raw vehicle_move_delay var if(QDELETED(src)) return diff --git a/code/datums/components/seethrough.dm b/code/datums/components/seethrough.dm index ba674f67471d..092c754fe7a5 100644 --- a/code/datums/components/seethrough.dm +++ b/code/datums/components/seethrough.dm @@ -15,9 +15,11 @@ var/perimeter_reset_timer ///Does this object let clicks from players its transparent to pass through it var/clickthrough + /// Whether to always use the final turf of the parent as the "effective" parent for calculating coords. + var/use_parent_turf ///see_through_map is a define pointing to a specific map. It's basically defining the area which is considered behind. See see_through_maps.dm for a list of maps -/datum/component/seethrough/Initialize(see_through_map = SEE_THROUGH_MAP_DEFAULT, target_alpha = 100, animation_time = 0.5 SECONDS, perimeter_reset_timer = 2 SECONDS, clickthrough = TRUE) +/datum/component/seethrough/Initialize(see_through_map = SEE_THROUGH_MAP_DEFAULT, target_alpha = 100, animation_time = 0.5 SECONDS, perimeter_reset_timer = 2 SECONDS, clickthrough = TRUE, use_parent_turf = FALSE) . = ..() relative_turf_coords = GLOB.see_through_maps[see_through_map] @@ -31,6 +33,7 @@ src.animation_time = animation_time src.perimeter_reset_timer = perimeter_reset_timer src.clickthrough = clickthrough + src.use_parent_turf = use_parent_turf RegisterSignal(parent, COMSIG_MOVABLE_MOVED, PROC_REF(dismantle_perimeter)) @@ -40,8 +43,9 @@ /datum/component/seethrough/proc/setup_perimeter(atom/parent) watched_turfs = list() + var/atom/effective_parent = use_parent_turf ? get_turf(parent) : parent for(var/list/coordinates as anything in relative_turf_coords) - var/turf/target = TURF_FROM_COORDS_LIST(list(parent.x + coordinates[1], parent.y + coordinates[2], parent.z + coordinates[3])) + var/turf/target = TURF_FROM_COORDS_LIST(list(effective_parent.x + coordinates[1], effective_parent.y + coordinates[2], effective_parent.z + coordinates[3])) if(isnull(target)) continue diff --git a/code/datums/datum.dm b/code/datums/datum.dm index 68b894b1e6a9..8e02f9c19181 100644 --- a/code/datums/datum.dm +++ b/code/datums/datum.dm @@ -314,6 +314,16 @@ filter_data[name] = copied_parameters update_filters() +///A version of add_filter that takes a list of filters to add rather than being individual, to limit calls to update_filters(). +/datum/proc/add_filters(list/list/filters) + LAZYINITLIST(filter_data) + for(var/list/individual_filter as anything in filters) + var/list/params = individual_filter["params"] + var/list/copied_parameters = params.Copy() + copied_parameters["priority"] = individual_filter["priority"] + filter_data[individual_filter["name"]] = copied_parameters + update_filters() + /// Reapplies all the filters. /datum/proc/update_filters() ASSERT(isatom(src) || isimage(src)) diff --git a/code/datums/dna.dm b/code/datums/dna.dm index e6c7a51a3e39..faffa66a0b99 100644 --- a/code/datums/dna.dm +++ b/code/datums/dna.dm @@ -650,9 +650,7 @@ GLOBAL_LIST_INIT(total_uf_len_by_block, populate_total_uf_len_by_block()) if(icon_update) dna.species.handle_body(src) // We want 'update_body_parts(update_limb_data = TRUE)' to be called only if mutcolor_update is TRUE, so no 'update_body()' here. - update_body_parts() //We can call this because it doesnt refresh limb data, and it handles hair and such. - if(mutcolor_update) - update_body_parts(update_limb_data = TRUE) + update_body_parts(update_limb_data = mutcolor_update) //We can call this because it doesnt refresh limb data, and it handles hair and such. if(mutations_overlay_update) update_mutations_overlay() diff --git a/code/datums/greyscale/_greyscale_config.dm b/code/datums/greyscale/_greyscale_config.dm index 4f64f8e1f2ae..81eec727764f 100644 --- a/code/datums/greyscale/_greyscale_config.dm +++ b/code/datums/greyscale/_greyscale_config.dm @@ -276,8 +276,9 @@ for(var/datum/greyscale_layer/layer as anything in group) var/icon/layer_icon if(islist(layer)) + var/list/layer_list = layer layer_icon = GenerateLayerGroup(colors, layer, render_steps, new_icon || last_external_icon) - layer = layer[1] // When there are multiple layers in a group like this we use the first one's blend mode + layer = layer_list[1] // When there are multiple layers in a group like this we use the first one's blend mode else layer_icon = layer.Generate(colors, render_steps, new_icon || last_external_icon) diff --git a/code/datums/greyscale/config_types/greyscale_configs.dm b/code/datums/greyscale/config_types/greyscale_configs.dm index 037030fece55..fd57570b1b6b 100644 --- a/code/datums/greyscale/config_types/greyscale_configs.dm +++ b/code/datums/greyscale/config_types/greyscale_configs.dm @@ -1046,67 +1046,6 @@ icon_file = 'icons/mob/clothing/head/costume.dmi' json_config = 'code/datums/greyscale/json_configs/party_hat.json' -/datum/greyscale_config/simian - name = "simian Clothing" - icon_file = 'monkestation/icons/mob/gags/clothing/simian_fallbacks.dmi' - json_config = 'code/datums/greyscale/json_configs/simian_fallbacks/under.json' - -/datum/greyscale_config/simian/under - name = "simian Under" - json_config = 'code/datums/greyscale/json_configs/simian_fallbacks/under.json' - -/datum/greyscale_config/simian/under_skirt - name = "simian Skirt" - json_config = 'code/datums/greyscale/json_configs/simian_fallbacks/under_skirt.json' - -/datum/greyscale_config/simian/shoes - name = "simian Shoes" - json_config = 'code/datums/greyscale/json_configs/simian_fallbacks/shoes.json' - -/datum/greyscale_config/simian/gloves - name = "simian Gloves" - json_config = 'code/datums/greyscale/json_configs/simian_fallbacks/gloves.json' - -/datum/greyscale_config/simian/glasses - name = "simian Glasses" - json_config = 'code/datums/greyscale/json_configs/simian_fallbacks/glasses.json' - -/datum/greyscale_config/simian/coat - name = "simian Coat" - json_config = 'code/datums/greyscale/json_configs/simian_fallbacks/coat.json' - -/datum/greyscale_config/simian/armor - name = "simian Armor" - json_config = 'code/datums/greyscale/json_configs/simian_fallbacks/armor.json' - -/datum/greyscale_config/simian/backpack - name = "simian Backpack" - json_config = 'code/datums/greyscale/json_configs/simian_fallbacks/backpack.json' - -/datum/greyscale_config/simian/spacesuit - name = "simian Spacesuit" - json_config = 'code/datums/greyscale/json_configs/simian_fallbacks/spacesuit.json' - -/datum/greyscale_config/simian/cloak - name = "simian Cloak" - json_config = 'code/datums/greyscale/json_configs/simian_fallbacks/cloak.json' - -/datum/greyscale_config/simian/tie - name = "simian Tie" - json_config = 'code/datums/greyscale/json_configs/simian_fallbacks/tie.json' - -/datum/greyscale_config/simian/scarf - name = "simian Scarf" - json_config = 'code/datums/greyscale/json_configs/simian_fallbacks/scarf.json' - -/datum/greyscale_config/simian/modcontrol - name = "simian Modsuit" - json_config = 'code/datums/greyscale/json_configs/simian_fallbacks/modcontrol.json' - -/datum/greyscale_config/simian/hardsuit - name = "simian Hardsuit" - json_config = 'code/datums/greyscale/json_configs/simian_fallbacks/hardsuit.json' - /datum/greyscale_config/lizard name = "lizard Clothing" icon_file = 'monkestation/icons/mob/gags/clothing/lizard_fallbacks.dmi' diff --git a/code/datums/greyscale/json_configs/simian_fallbacks/armor.json b/code/datums/greyscale/json_configs/simian_fallbacks/armor.json deleted file mode 100644 index 1c3a4fa510a6..000000000000 --- a/code/datums/greyscale/json_configs/simian_fallbacks/armor.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "": [ - { - "type": "icon_state", - "icon_state": "armor", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] -} diff --git a/code/datums/greyscale/json_configs/simian_fallbacks/backpack.json b/code/datums/greyscale/json_configs/simian_fallbacks/backpack.json deleted file mode 100644 index 5297e1991de3..000000000000 --- a/code/datums/greyscale/json_configs/simian_fallbacks/backpack.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "": [ - { - "type": "icon_state", - "icon_state": "backpack", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] -} diff --git a/code/datums/greyscale/json_configs/simian_fallbacks/cloak.json b/code/datums/greyscale/json_configs/simian_fallbacks/cloak.json deleted file mode 100644 index eca4ce58b99d..000000000000 --- a/code/datums/greyscale/json_configs/simian_fallbacks/cloak.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "": [ - { - "type": "icon_state", - "icon_state": "cloak0", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "cloak1", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ] -} diff --git a/code/datums/greyscale/json_configs/simian_fallbacks/coat.json b/code/datums/greyscale/json_configs/simian_fallbacks/coat.json deleted file mode 100644 index 3894f89c1533..000000000000 --- a/code/datums/greyscale/json_configs/simian_fallbacks/coat.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "": [ - { - "type": "icon_state", - "icon_state": "coat", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] -} diff --git a/code/datums/greyscale/json_configs/simian_fallbacks/glasses.json b/code/datums/greyscale/json_configs/simian_fallbacks/glasses.json deleted file mode 100644 index 42ffcabca5ca..000000000000 --- a/code/datums/greyscale/json_configs/simian_fallbacks/glasses.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "": [ - { - "type": "icon_state", - "icon_state": "glasses0", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "glasses1", - "blend_mode": "overlay", - "color_ids": [ 2 ] - } - ] -} diff --git a/code/datums/greyscale/json_configs/simian_fallbacks/gloves.json b/code/datums/greyscale/json_configs/simian_fallbacks/gloves.json deleted file mode 100644 index b122076b2c83..000000000000 --- a/code/datums/greyscale/json_configs/simian_fallbacks/gloves.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "": [ - { - "type": "icon_state", - "icon_state": "gloves", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] -} diff --git a/code/datums/greyscale/json_configs/simian_fallbacks/hardsuit.json b/code/datums/greyscale/json_configs/simian_fallbacks/hardsuit.json deleted file mode 100644 index 5d436cef4c91..000000000000 --- a/code/datums/greyscale/json_configs/simian_fallbacks/hardsuit.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "": [ - { - "type": "icon_state", - "icon_state": "hardsuit0", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "hardsuit1", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "hardsuit2", - "blend_mode": "overlay", - "color_ids": [ 3 ] - } - ] -} diff --git a/code/datums/greyscale/json_configs/simian_fallbacks/modcontrol.json b/code/datums/greyscale/json_configs/simian_fallbacks/modcontrol.json deleted file mode 100644 index 34d155eb00e0..000000000000 --- a/code/datums/greyscale/json_configs/simian_fallbacks/modcontrol.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "": [ - { - "type": "icon_state", - "icon_state": "mod-control", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] -} diff --git a/code/datums/greyscale/json_configs/simian_fallbacks/scarf.json b/code/datums/greyscale/json_configs/simian_fallbacks/scarf.json deleted file mode 100644 index d8ab8ed78899..000000000000 --- a/code/datums/greyscale/json_configs/simian_fallbacks/scarf.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "": [ - { - "type": "icon_state", - "icon_state": "scarf", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] -} diff --git a/code/datums/greyscale/json_configs/simian_fallbacks/shoes.json b/code/datums/greyscale/json_configs/simian_fallbacks/shoes.json deleted file mode 100644 index ea9dec28fc94..000000000000 --- a/code/datums/greyscale/json_configs/simian_fallbacks/shoes.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "": [ - { - "type": "icon_state", - "icon_state": "shoes", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] -} diff --git a/code/datums/greyscale/json_configs/simian_fallbacks/spacesuit.json b/code/datums/greyscale/json_configs/simian_fallbacks/spacesuit.json deleted file mode 100644 index d69504a46528..000000000000 --- a/code/datums/greyscale/json_configs/simian_fallbacks/spacesuit.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "": [ - { - "type": "icon_state", - "icon_state": "spacesuit", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] -} diff --git a/code/datums/greyscale/json_configs/simian_fallbacks/tie.json b/code/datums/greyscale/json_configs/simian_fallbacks/tie.json deleted file mode 100644 index 7ca3e6ba8423..000000000000 --- a/code/datums/greyscale/json_configs/simian_fallbacks/tie.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "": [ - { - "type": "icon_state", - "icon_state": "tie", - "blend_mode": "overlay", - "color_ids": [ 1 ] - } - ] -} diff --git a/code/datums/greyscale/json_configs/simian_fallbacks/under.json b/code/datums/greyscale/json_configs/simian_fallbacks/under.json deleted file mode 100644 index b0fb85d4e9fb..000000000000 --- a/code/datums/greyscale/json_configs/simian_fallbacks/under.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "": [ - { - "type": "icon_state", - "icon_state": "under0", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "under1", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "under2", - "blend_mode": "overlay", - "color_ids": [ 3 ] - } - ] -} diff --git a/code/datums/greyscale/json_configs/simian_fallbacks/under_skirt.json b/code/datums/greyscale/json_configs/simian_fallbacks/under_skirt.json deleted file mode 100644 index e840e2f014b1..000000000000 --- a/code/datums/greyscale/json_configs/simian_fallbacks/under_skirt.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "": [ - { - "type": "icon_state", - "icon_state": "under_skirt0", - "blend_mode": "overlay", - "color_ids": [ 1 ] - }, - { - "type": "icon_state", - "icon_state": "under_skirt1", - "blend_mode": "overlay", - "color_ids": [ 2 ] - }, - { - "type": "icon_state", - "icon_state": "under_skirt2", - "blend_mode": "overlay", - "color_ids": [ 3 ] - } - ] -} diff --git a/code/datums/id_trim/jobs.dm b/code/datums/id_trim/jobs.dm index 77c61c01dc8d..e8227001977e 100644 --- a/code/datums/id_trim/jobs.dm +++ b/code/datums/id_trim/jobs.dm @@ -544,6 +544,13 @@ ACCESS_TELEPORTER, ACCESS_THEATRE, ACCESS_WEAPONS, + //monkestation addition start: If the QM isn't a head, then these are part of HoP's responsibility + ACCESS_VAULT, + ACCESS_MINING, + ACCESS_MINING_STATION, + ACCESS_MECH_MINING, + ACCESS_QM, + //monkestation addition end ) minimal_wildcard_access = list( ACCESS_HOP, @@ -1126,6 +1133,7 @@ ACCESS_MEDICAL, ACCESS_MINERAL_STOREROOM, ACCESS_VIROLOGY, + ACCESS_PHARMACY, // MONKESTATION EDIT: Pathologists now have access to pharmacy due to their need for chems. Hopefully doesn't get abused too much and MDs have this too. ) extra_access = list( ACCESS_PLUMBING, diff --git a/code/datums/mind/_mind.dm b/code/datums/mind/_mind.dm index 9a78ba24b233..c45ff7b5e744 100644 --- a/code/datums/mind/_mind.dm +++ b/code/datums/mind/_mind.dm @@ -105,6 +105,8 @@ var/list/failed_special_equipment /// A list to keep track of which books a person has read (to prevent people from reading the same book again and again for positive mood events) var/list/book_titles_read + /// Variable that lets the event picker see if someones getting chosen or not + var/picking = FALSE /datum/mind/New(_key) key = _key diff --git a/code/datums/mind/antag.dm b/code/datums/mind/antag.dm index b864bde8bd5d..c252f275836d 100644 --- a/code/datums/mind/antag.dm +++ b/code/datums/mind/antag.dm @@ -25,6 +25,8 @@ antag_team.add_member(src) INVOKE_ASYNC(A, TYPE_PROC_REF(/datum/antagonist, on_gain)) log_game("[key_name(src)] has gained antag datum [A.name]([A.type]).") + var/client/picked_client = get_player_client(src) + picked_client?.mob?.mind.picking = FALSE return A /datum/mind/proc/remove_antag_datum(datum_type) diff --git a/code/datums/mind/initialization.dm b/code/datums/mind/initialization.dm index eb622cc5af54..f7de3065ec26 100644 --- a/code/datums/mind/initialization.dm +++ b/code/datums/mind/initialization.dm @@ -11,8 +11,10 @@ mind.set_current(src) // There's nowhere else to set this up, mind code makes me depressed mind.antag_hud = add_alt_appearance(/datum/atom_hud/alternate_appearance/basic/antagonist_hud, "combo_hud", mind) + RegisterSignal(src, COMSIG_ADMIN_DELETING, PROC_REF(ghost_before_admin_delete), override = TRUE) SEND_SIGNAL(src, COMSIG_MOB_MIND_INITIALIZED, mind) + /mob/living/carbon/mind_initialize() ..() last_mind = mind @@ -35,3 +37,8 @@ . = ..() mind.set_assigned_role(SSjob.GetJobType(/datum/job/personal_ai)) mind.special_role = "" + +/// Signal proc for [COMSIG_ADMIN_DELETING], to ghostize a mob beforehand if an admin is manually deleting it. +/mob/proc/ghost_before_admin_delete(datum/source) + SIGNAL_HANDLER + ghostize(can_reenter_corpse = FALSE) diff --git a/code/datums/mutations/body.dm b/code/datums/mutations/body.dm index 1b2c137c6b29..c2d97cb828d4 100644 --- a/code/datums/mutations/body.dm +++ b/code/datums/mutations/body.dm @@ -376,24 +376,24 @@ quality = MINOR_NEGATIVE difficulty = 12 conflicts = list(/datum/mutation/human/dwarfism) - locked = TRUE /datum/mutation/human/gigantism/on_acquiring(mob/living/carbon/human/owner) if(..()) return ADD_TRAIT(owner, TRAIT_GIANT, GENETIC_MUTATION) +/* handled in init_signals.dm owner.update_transform(1.25) owner.visible_message(span_danger("[owner] suddenly grows!"), span_notice("Everything around you seems to shrink..")) +*/ /datum/mutation/human/gigantism/on_losing(mob/living/carbon/human/owner) if(..()) return - //We're leaving the size traits permanent until someone wants to separate the mutation from customization aspects - //REMOVE_TRAIT(owner, TRAIT_GIANT, GENETIC_MUTATION) - //handled in init_signals.dm - //REMOVE_TRAIT(owner, TRAIT_GIANT, GENETIC_MUTATION) + REMOVE_TRAIT(owner, TRAIT_GIANT, GENETIC_MUTATION) +/* handled in init_signals.dm owner.update_transform(0.8) owner.visible_message(span_danger("[owner] suddenly shrinks!"), span_notice("Everything around you seems to grow..")) +*/ /datum/mutation/human/spastic name = "Spastic" diff --git a/code/datums/quirks/negative_quirks.dm b/code/datums/quirks/negative_quirks.dm deleted file mode 100644 index f10307b0fae2..000000000000 --- a/code/datums/quirks/negative_quirks.dm +++ /dev/null @@ -1,1249 +0,0 @@ -//predominantly negative traits - -/datum/quirk/badback - name = "Bad Back" - desc = "Thanks to your poor posture, backpacks and other bags never sit right on your back. More evenly weighted objects are fine, though." - icon = FA_ICON_HIKING - value = -8 - quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_MOODLET_BASED - gain_text = span_danger("Your back REALLY hurts!") - lose_text = span_notice("Your back feels better.") - medical_record_text = "Patient scans indicate severe and chronic back pain." - hardcore_value = 4 - mail_goodies = list(/obj/item/cane) - var/datum/weakref/backpack - -/datum/quirk/badback/add(client/client_source) - var/mob/living/carbon/human/human_holder = quirk_holder - var/obj/item/storage/backpack/equipped_backpack = human_holder.back - if(istype(equipped_backpack)) - quirk_holder.add_mood_event("back_pain", /datum/mood_event/back_pain) - RegisterSignal(human_holder.back, COMSIG_ITEM_POST_UNEQUIP, PROC_REF(on_unequipped_backpack)) - else - RegisterSignal(quirk_holder, COMSIG_MOB_EQUIPPED_ITEM, PROC_REF(on_equipped_item)) - -/datum/quirk/badback/remove() - UnregisterSignal(quirk_holder, COMSIG_MOB_EQUIPPED_ITEM) - - var/obj/item/storage/equipped_backpack = backpack?.resolve() - if(equipped_backpack) - UnregisterSignal(equipped_backpack, COMSIG_ITEM_POST_UNEQUIP) - quirk_holder.clear_mood_event("back_pain") - -/// Signal handler for when the quirk_holder equips an item. If it's a backpack, adds the back_pain mood event. -/datum/quirk/badback/proc/on_equipped_item(mob/living/source, obj/item/equipped_item, slot) - SIGNAL_HANDLER - - if(!(slot & ITEM_SLOT_BACK) || !istype(equipped_item, /obj/item/storage/backpack)) - return - var/obj/item/storage/backpack/equipped_backpack = equipped_item - if(equipped_backpack.shoulder_carry) - return - - quirk_holder.add_mood_event("back_pain", /datum/mood_event/back_pain) - RegisterSignal(equipped_item, COMSIG_ITEM_POST_UNEQUIP, PROC_REF(on_unequipped_backpack)) - UnregisterSignal(quirk_holder, COMSIG_MOB_EQUIPPED_ITEM) - backpack = WEAKREF(equipped_item) - -/// Signal handler for when the quirk_holder unequips an equipped backpack. Removes the back_pain mood event. -/datum/quirk/badback/proc/on_unequipped_backpack(obj/item/source, force, atom/newloc, no_move, invdrop, silent) - SIGNAL_HANDLER - - UnregisterSignal(source, COMSIG_ITEM_POST_UNEQUIP) - quirk_holder.clear_mood_event("back_pain") - backpack = null - RegisterSignal(quirk_holder, COMSIG_MOB_EQUIPPED_ITEM, PROC_REF(on_equipped_item)) - -/datum/quirk/blooddeficiency - name = "Blood Deficiency" - desc = "Your body can't produce enough blood to sustain itself." - icon = FA_ICON_TINT - value = -8 - mob_trait = TRAIT_BLOOD_DEFICIENCY - gain_text = span_danger("You feel your vigor slowly fading away.") - lose_text = span_notice("You feel vigorous again.") - medical_record_text = "Patient requires regular treatment for blood loss due to low production of blood." - hardcore_value = 8 - quirk_flags = QUIRK_HUMAN_ONLY - mail_goodies = list(/obj/item/reagent_containers/blood/o_minus) // universal blood type that is safe for all - var/min_blood = BLOOD_VOLUME_SAFE - 25 // just barely survivable without treatment - -/datum/quirk/blooddeficiency/post_add() - update_mail() - -/datum/quirk/blooddeficiency/add(client/client_source) - . = ..() - RegisterSignal(quirk_holder, COMSIG_HUMAN_ON_HANDLE_BLOOD, PROC_REF(lose_blood)) - RegisterSignal(quirk_holder, COMSIG_SPECIES_GAIN, PROC_REF(update_mail)) - -/datum/quirk/blooddeficiency/remove() - . = ..() - UnregisterSignal(quirk_holder, COMSIG_HUMAN_ON_HANDLE_BLOOD) - UnregisterSignal(quirk_holder, COMSIG_SPECIES_GAIN) - -/datum/quirk/blooddeficiency/proc/lose_blood(mob/living/carbon/human/draining, seconds_per_tick, times_fired) - SIGNAL_HANDLER - if(quirk_holder.stat == DEAD || quirk_holder.blood_volume <= min_blood) - return - - // Ensures that we don't reduce total blood volume below min_blood. - draining.blood_volume = max(min_blood, draining.blood_volume - draining.dna.species.blood_deficiency_drain_rate * seconds_per_tick) - -/datum/quirk/blooddeficiency/proc/update_mail(datum/source, datum/species/new_species, datum/species/old_species) - SIGNAL_HANDLER - - mail_goodies.Cut() - - var/datum/blood_type/new_type = quirk_holder.get_blood_type() - if(isnull(new_type)) - return - - if(istype(new_type, /datum/blood_type/crew/human)) - mail_goodies += /obj/item/reagent_containers/blood/o_minus - return - - for(var/obj/item/reagent_containers/blood/blood_bag as anything in typesof(/obj/item/reagent_containers/blood)) - if(initial(blood_bag.blood_type) == new_type.type) - mail_goodies += blood_bag - break - -/datum/quirk/item_quirk/blindness - name = "Blind" - desc = "You are completely blind, nothing can counteract this." - icon = FA_ICON_EYE_SLASH - value = -16 - gain_text = span_danger("You can't see anything.") - lose_text = span_notice("You miraculously gain back your vision.") - medical_record_text = "Patient has permanent blindness." - hardcore_value = 15 - quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_CHANGES_APPEARANCE - mail_goodies = list(/obj/item/clothing/glasses/sunglasses, /obj/item/cane/white) - -/datum/quirk/item_quirk/blindness/add_unique(client/client_source) - give_item_to_holder(/obj/item/clothing/glasses/blindfold/white, list(LOCATION_EYES = ITEM_SLOT_EYES, LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, LOCATION_HANDS = ITEM_SLOT_HANDS)) - -/datum/quirk/item_quirk/blindness/add(client/client_source) - quirk_holder.become_blind(QUIRK_TRAIT) - -/datum/quirk/item_quirk/blindness/remove() - quirk_holder.cure_blind(QUIRK_TRAIT) - - /* A couple of brain tumor stats for anyone curious / looking at this quirk for balancing: - * - It takes less 16 minute 40 seconds to die from brain death due to a brain tumor. - * - It takes 1 minutes 40 seconds to take 10% (20 organ damage) brain damage. - * - 5u mannitol will heal 12.5% (25 organ damage) brain damage - */ -/datum/quirk/item_quirk/brainproblems - name = "Brain Tumor" - desc = "You have a little friend in your brain that is slowly destroying it. Better bring some mannitol!" - icon = FA_ICON_BRAIN - value = -12 - gain_text = span_danger("You feel smooth.") - lose_text = span_notice("You feel wrinkled again.") - medical_record_text = "Patient has a tumor in their brain that is slowly driving them to brain death." - hardcore_value = 12 - quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_PROCESSES - mail_goodies = list(/obj/item/storage/pill_bottle/mannitol/braintumor) - -/datum/quirk/item_quirk/brainproblems/add_unique(client/client_source) - give_item_to_holder( - /obj/item/storage/pill_bottle/mannitol/braintumor, - list( - LOCATION_LPOCKET = ITEM_SLOT_LPOCKET, - LOCATION_RPOCKET = ITEM_SLOT_RPOCKET, - LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, - LOCATION_HANDS = ITEM_SLOT_HANDS, - ), - flavour_text = "These will keep you alive until you can secure a supply of medication. Don't rely on them too much!", - ) - -/datum/quirk/item_quirk/brainproblems/process(seconds_per_tick) - if(quirk_holder.stat == DEAD) - return - - if(HAS_TRAIT(quirk_holder, TRAIT_TUMOR_SUPPRESSED)) - return - - quirk_holder.adjustOrganLoss(ORGAN_SLOT_BRAIN, 0.2 * seconds_per_tick) - -/datum/quirk/item_quirk/deafness - name = "Deaf" - desc = "You are incurably deaf." - icon = FA_ICON_DEAF - value = -8 - mob_trait = TRAIT_DEAF - gain_text = span_danger("You can't hear anything.") - lose_text = span_notice("You're able to hear again!") - medical_record_text = "Patient's cochlear nerve is incurably damaged." - hardcore_value = 12 - mail_goodies = list(/obj/item/clothing/mask/whistle) - -/datum/quirk/item_quirk/deafness/add_unique(client/client_source) - give_item_to_holder(/obj/item/clothing/accessory/deaf_pin, list(LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, LOCATION_HANDS = ITEM_SLOT_HANDS)) - -/datum/quirk/depression - name = "Depression" - desc = "You sometimes just hate life." - icon = FA_ICON_FROWN - mob_trait = TRAIT_DEPRESSION - value = -3 - gain_text = span_danger("You start feeling depressed.") - lose_text = span_notice("You no longer feel depressed.") //if only it were that easy! - medical_record_text = "Patient has a mild mood disorder causing them to experience acute episodes of depression." - quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_MOODLET_BASED - hardcore_value = 2 - mail_goodies = list(/obj/item/storage/pill_bottle/happinesspsych) - -/datum/quirk/item_quirk/family_heirloom - name = "Family Heirloom" - desc = "You are the current owner of an heirloom, passed down for generations. You have to keep it safe!" - icon = FA_ICON_TOOLBOX - value = -2 - medical_record_text = "Patient demonstrates an unnatural attachment to a family heirloom." - hardcore_value = 1 - quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_PROCESSES|QUIRK_MOODLET_BASED - /// A weak reference to our heirloom. - var/datum/weakref/heirloom - mail_goodies = list(/obj/item/storage/secure/briefcase) - -/datum/quirk/item_quirk/family_heirloom/add_unique(client/client_source) - var/mob/living/carbon/human/human_holder = quirk_holder - var/obj/item/heirloom_type - - // The quirk holder's species - we have a 50% chance, if we have a species with a set heirloom, to choose a species heirloom. - var/datum/species/holder_species = human_holder.dna?.species - if(holder_species && LAZYLEN(holder_species.family_heirlooms) && prob(50)) - heirloom_type = pick(holder_species.family_heirlooms) - else - // Our quirk holder's job - var/datum/job/holder_job = human_holder.last_mind?.assigned_role - if(holder_job && LAZYLEN(holder_job.family_heirlooms)) - heirloom_type = pick(holder_job.family_heirlooms) - - // If we didn't find an heirloom somehow, throw them a generic one - if(!heirloom_type) - heirloom_type = pick(/obj/item/toy/cards/deck, /obj/item/lighter, /obj/item/dice/d20) - - var/obj/new_heirloom = new heirloom_type(get_turf(human_holder)) - heirloom = WEAKREF(new_heirloom) - - give_item_to_holder( - new_heirloom, - list( - LOCATION_LPOCKET = ITEM_SLOT_LPOCKET, - LOCATION_RPOCKET = ITEM_SLOT_RPOCKET, - LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, - LOCATION_HANDS = ITEM_SLOT_HANDS, - ), - flavour_text = "This is a precious family heirloom, passed down from generation to generation. Keep it safe!", - ) - -/datum/quirk/item_quirk/family_heirloom/post_add() - var/list/names = splittext(quirk_holder.real_name, " ") - var/family_name = names[names.len] - - var/obj/family_heirloom = heirloom?.resolve() - if(!family_heirloom) - to_chat(quirk_holder, span_boldnotice("A wave of existential dread runs over you as you realize your precious family heirloom is missing. Perhaps the Gods will show mercy on your cursed soul?")) - return - family_heirloom.AddComponent(/datum/component/heirloom, quirk_holder.mind, family_name) - - return ..() - -/datum/quirk/item_quirk/family_heirloom/process() - if(quirk_holder.stat == DEAD) - return - - var/obj/family_heirloom = heirloom?.resolve() - - if(family_heirloom && (family_heirloom in quirk_holder.get_all_contents())) - quirk_holder.clear_mood_event("family_heirloom_missing") - quirk_holder.add_mood_event("family_heirloom", /datum/mood_event/family_heirloom) - else - quirk_holder.clear_mood_event("family_heirloom") - quirk_holder.add_mood_event("family_heirloom_missing", /datum/mood_event/family_heirloom_missing) - -/datum/quirk/item_quirk/family_heirloom/remove() - quirk_holder.clear_mood_event("family_heirloom_missing") - quirk_holder.clear_mood_event("family_heirloom") - -/datum/quirk/item_quirk/family_heirloom/clone_data() - return heirloom - -/datum/quirk/item_quirk/family_heirloom/on_clone(data) - heirloom = data - -/datum/quirk/glass_jaw - name = "Glass Jaw" - desc = "You have a very fragile jaw. Any sufficiently hard blow to your head might knock you out." - icon = FA_ICON_HAND_FIST - value = -4 - gain_text = span_danger("Your jaw feels loose.") - lose_text = span_notice("Your jaw feels fitting again.") - medical_record_text = "Patient is absurdly easy to knock out. Do not allow them near a boxing ring." - hardcore_value = 4 - mail_goodies = list( - /obj/item/clothing/gloves/boxing, - /obj/item/clothing/mask/luchador/rudos, - ) - -/datum/quirk/glass_jaw/New() - . = ..() - //randomly picks between blue or red equipment for goodies - if(prob(50)) - mail_goodies = list( - /obj/item/clothing/gloves/boxing, - /obj/item/clothing/mask/luchador/rudos, - ) - else - mail_goodies = list( - /obj/item/clothing/gloves/boxing/blue, - /obj/item/clothing/mask/luchador/tecnicos, - ) - -/datum/quirk/glass_jaw/add(client/client_source) - RegisterSignal(quirk_holder, COMSIG_MOB_APPLY_DAMAGE, PROC_REF(punch_out)) - -/datum/quirk/glass_jaw/remove() - UnregisterSignal(quirk_holder, COMSIG_MOB_APPLY_DAMAGE) - -/datum/quirk/glass_jaw/proc/punch_out(mob/living/carbon/source, damage, damagetype, def_zone, blocked, wound_bonus, bare_wound_bonus, sharpness, attack_direction) - SIGNAL_HANDLER - if((damagetype != BRUTE) || (def_zone != BODY_ZONE_HEAD)) - return - var/actual_damage = damage - (damage * blocked/100) - //only roll for knockouts at 5 damage or more - if(actual_damage < 5) - return - //blunt items are more likely to knock out, but sharp ones are still capable of doing it - if(prob(CEILING(actual_damage * (sharpness & (SHARP_EDGED|SHARP_POINTY) ? 0.65 : 1), 1))) - source.visible_message( - span_warning("[source] gets knocked out!"), - span_userdanger("You are knocked out!"), - vision_distance = COMBAT_MESSAGE_RANGE, - ) - source.Unconscious(3 SECONDS) - -/datum/quirk/frail - name = "Frail" - desc = "You have skin of paper and bones of glass! You suffer wounds much more easily than most." - icon = FA_ICON_SKULL - value = -6 - mob_trait = TRAIT_EASILY_WOUNDED - gain_text = span_danger("You feel frail.") - lose_text = span_notice("You feel sturdy again.") - medical_record_text = "Patient is absurdly easy to injure. Please take all due diligence to avoid possible malpractice suits." - hardcore_value = 4 - mail_goodies = list(/obj/effect/spawner/random/medical/minor_healing) - -/datum/quirk/heavy_sleeper - name = "Heavy Sleeper" - desc = "You sleep like a rock! Whenever you're put to sleep or knocked unconscious, you take a little bit longer to wake up." - icon = FA_ICON_BED - value = -2 - mob_trait = TRAIT_HEAVY_SLEEPER - gain_text = span_danger("You feel sleepy.") - lose_text = span_notice("You feel awake again.") - medical_record_text = "Patient has abnormal sleep study results and is difficult to wake up." - hardcore_value = 2 - mail_goodies = list( - /obj/item/clothing/glasses/blindfold, - /obj/item/bedsheet/random, - /obj/item/clothing/under/misc/pj/red, - /obj/item/clothing/head/costume/nightcap/red, - /obj/item/clothing/under/misc/pj/blue, - /obj/item/clothing/head/costume/nightcap/blue, - /obj/item/pillow/random, - ) - -/datum/quirk/hypersensitive - name = "Hypersensitive" - desc = "For better or worse, everything seems to affect your mood more than it should." - icon = FA_ICON_FLUSHED - value = -2 - gain_text = span_danger("You seem to make a big deal out of everything.") - lose_text = span_notice("You don't seem to make a big deal out of everything anymore.") - medical_record_text = "Patient demonstrates a high level of emotional volatility." - hardcore_value = 3 - mail_goodies = list(/obj/effect/spawner/random/entertainment/plushie_delux) - -/datum/quirk/hypersensitive/add(client/client_source) - if (quirk_holder.mob_mood) - quirk_holder.mob_mood.mood_modifier += 0.5 - -/datum/quirk/hypersensitive/remove() - if (quirk_holder.mob_mood) - quirk_holder.mob_mood.mood_modifier -= 0.5 - -/datum/quirk/light_drinker - name = "Light Drinker" - desc = "You just can't handle your drinks and get drunk very quickly." - icon = FA_ICON_COCKTAIL - value = -2 - mob_trait = TRAIT_LIGHT_DRINKER - gain_text = span_notice("Just the thought of drinking alcohol makes your head spin.") - lose_text = span_danger("You're no longer severely affected by alcohol.") - medical_record_text = "Patient demonstrates a low tolerance for alcohol. (Wimp)" - hardcore_value = 3 - mail_goodies = list(/obj/item/reagent_containers/cup/glass/waterbottle) - -/datum/quirk/item_quirk/nearsighted - name = "Nearsighted" - desc = "You are nearsighted without prescription glasses, but spawn with a pair." - icon = FA_ICON_GLASSES - value = -4 - gain_text = span_danger("Things far away from you start looking blurry.") - lose_text = span_notice("You start seeing faraway things normally again.") - medical_record_text = "Patient requires prescription glasses in order to counteract nearsightedness." - hardcore_value = 5 - quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_CHANGES_APPEARANCE - mail_goodies = list(/obj/item/clothing/glasses/regular) // extra pair if orginal one gets broken by somebody mean - -/datum/quirk/item_quirk/nearsighted/add_unique(client/client_source) - var/glasses_name = client_source?.prefs.read_preference(/datum/preference/choiced/glasses) || "Regular" - var/obj/item/clothing/glasses/glasses_type - switch(glasses_name) - if ("Thin") - glasses_type = /obj/item/clothing/glasses/regular/thin - if ("Circle") - glasses_type = /obj/item/clothing/glasses/regular/circle - if ("Hipster") - glasses_type = /obj/item/clothing/glasses/regular/hipster - else - glasses_type = /obj/item/clothing/glasses/regular - - give_item_to_holder(glasses_type, list( - LOCATION_EYES = ITEM_SLOT_EYES, - LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, - LOCATION_HANDS = ITEM_SLOT_HANDS, - )) - -/datum/quirk/item_quirk/nearsighted/add(client/client_source) - quirk_holder.become_nearsighted(QUIRK_TRAIT) - -/datum/quirk/item_quirk/nearsighted/remove() - quirk_holder.cure_nearsighted(QUIRK_TRAIT) - -/datum/quirk/nyctophobia - name = "Nyctophobia" - desc = "As far as you can remember, you've always been afraid of the dark. While in the dark without a light source, you instinctively act careful, and constantly feel a sense of dread." - icon = FA_ICON_LIGHTBULB - value = -3 - medical_record_text = "Patient demonstrates a fear of the dark. (Seriously?)" - hardcore_value = 5 - mail_goodies = list(/obj/effect/spawner/random/engineering/flashlight) - -/datum/quirk/nyctophobia/add(client/client_source) - RegisterSignal(quirk_holder, COMSIG_MOVABLE_MOVED, PROC_REF(on_holder_moved)) - -/datum/quirk/nyctophobia/remove() - UnregisterSignal(quirk_holder, COMSIG_MOVABLE_MOVED) - quirk_holder.clear_mood_event("nyctophobia") - -/// Called when the quirk holder moves. Updates the quirk holder's mood. -/datum/quirk/nyctophobia/proc/on_holder_moved(mob/living/source, atom/old_loc, dir, forced) - SIGNAL_HANDLER - - if(quirk_holder.stat != CONSCIOUS || quirk_holder.IsSleeping() || quirk_holder.IsUnconscious()) - return - - if(HAS_TRAIT(quirk_holder, TRAIT_FEARLESS)) - return - - var/mob/living/carbon/human/human_holder = quirk_holder - - if(human_holder.dna?.species.id in list(SPECIES_SHADOW, SPECIES_NIGHTMARE)) - return - - if((human_holder.sight & SEE_TURFS) == SEE_TURFS) - return - - var/turf/holder_turf = get_turf(quirk_holder) - - var/lums = holder_turf.get_lumcount() - - if(lums > LIGHTING_TILE_IS_DARK) - quirk_holder.clear_mood_event("nyctophobia") - return - - if(quirk_holder.m_intent == MOVE_INTENT_RUN) - to_chat(quirk_holder, span_warning("Easy, easy, take it slow... you're in the dark...")) - quirk_holder.set_move_intent(MOVE_INTENT_WALK) - quirk_holder.add_mood_event("nyctophobia", /datum/mood_event/nyctophobia) - -/datum/quirk/softspoken - name = "Soft-Spoken" - desc = "You are soft-spoken, and your voice is hard to hear." - icon = FA_ICON_COMMENT - value = -2 - mob_trait = TRAIT_SOFTSPOKEN - gain_text = span_danger("You feel like you're speaking more quietly.") - lose_text = span_notice("You feel like you're speaking louder.") - medical_record_text = "Patient is soft-spoken and difficult to hear." - -/datum/quirk/clumsy - name = "Clumsy" - desc = "You're clumsy, a goofball, a silly dude. You big loveable himbo/bimbo you! Hope you weren't planning on using your hands for anything that takes even a LICK of dexterity." - icon = FA_ICON_FACE_DIZZY - value = -8 - mob_trait = TRAIT_CLUMSY - gain_text = span_danger("You feel your IQ sink like your brain is liquid.") - lose_text = span_notice("You feel like your IQ went up to at least average.") - medical_record_text = "Patient has demonstrated an extreme difficulty with high motor skill paired with an inability to demonstrate critical thinking." - -/datum/quirk/nonviolent - name = "Pacifist" - desc = "The thought of violence makes you sick. So much so, in fact, that you can't hurt anyone." - icon = FA_ICON_PEACE - value = -8 - mob_trait = TRAIT_PACIFISM - gain_text = span_danger("You feel repulsed by the thought of violence!") - lose_text = span_notice("You think you can defend yourself again.") - medical_record_text = "Patient is unusually pacifistic and cannot bring themselves to cause physical harm." - hardcore_value = 6 - mail_goodies = list(/obj/effect/spawner/random/decoration/flower, /obj/effect/spawner/random/contraband/cannabis) // flower power - -/datum/quirk/bighands - name = "Big Hands" - desc = "You have big hands, it sure does make it hard to use a lot of things." - icon = FA_ICON_HAND_DOTS - value = -6 - mob_trait = TRAIT_CHUNKYFINGERS - gain_text = span_danger("Your hands are huge! You can't use small things anymore!") - lose_text = span_notice("Your hands are back to normal.") - medical_record_text = "Patient has unusually large hands. Made me question my masculinity..." - hardcore_value = 5 - -/datum/quirk/paraplegic - name = "Paraplegic" - desc = "Your legs do not function. Nothing will ever fix this. But hey, free wheelchair!" - icon = FA_ICON_WHEELCHAIR - value = -12 - gain_text = null // Handled by trauma. - lose_text = null - medical_record_text = "Patient has an untreatable impairment in motor function in the lower extremities." - hardcore_value = 15 - mail_goodies = list(/obj/vehicle/ridden/wheelchair/motorized) //yes a fullsized unfolded motorized wheelchair does fit - -/datum/quirk/paraplegic/add_unique(client/client_source) - if(quirk_holder.buckled) // Handle late joins being buckled to arrival shuttle chairs. - quirk_holder.buckled.unbuckle_mob(quirk_holder) - - var/turf/holder_turf = get_turf(quirk_holder) - var/obj/structure/chair/spawn_chair = locate() in holder_turf - - var/obj/vehicle/ridden/wheelchair/wheels - if(client_source?.get_award_status(/datum/award/score/hardcore_random) >= 5000) //More than 5k score? you unlock the gamer wheelchair. - wheels = new /obj/vehicle/ridden/wheelchair/gold(holder_turf) - else - wheels = new(holder_turf) - if(spawn_chair) // Makes spawning on the arrivals shuttle more consistent looking - wheels.setDir(spawn_chair.dir) - - wheels.buckle_mob(quirk_holder) - - // During the spawning process, they may have dropped what they were holding, due to the paralysis - // So put the things back in their hands. - for(var/obj/item/dropped_item in holder_turf) - if(dropped_item.fingerprintslast == quirk_holder.ckey) - quirk_holder.put_in_hands(dropped_item) - -/datum/quirk/paraplegic/add(client/client_source) - var/mob/living/carbon/human/human_holder = quirk_holder - human_holder.gain_trauma(/datum/brain_trauma/severe/paralysis/paraplegic, TRAUMA_RESILIENCE_ABSOLUTE) - -/datum/quirk/paraplegic/remove() - var/mob/living/carbon/human/human_holder = quirk_holder - human_holder.cure_trauma_type(/datum/brain_trauma/severe/paralysis/paraplegic, TRAUMA_RESILIENCE_ABSOLUTE) - -/datum/quirk/poor_aim - name = "Stormtrooper Aim" - desc = "You've never hit anything you were aiming for in your life." - icon = FA_ICON_BULLSEYE - value = -4 - mob_trait = TRAIT_POOR_AIM - medical_record_text = "Patient possesses a strong tremor in both hands." - hardcore_value = 3 - mail_goodies = list(/obj/item/cardboard_cutout) // for target practice - -/datum/quirk/prosopagnosia - name = "Prosopagnosia" - desc = "You have a mental disorder that prevents you from being able to recognize faces at all." - icon = FA_ICON_USER_SECRET - value = -4 - mob_trait = TRAIT_PROSOPAGNOSIA - medical_record_text = "Patient suffers from prosopagnosia and cannot recognize faces." - hardcore_value = 5 - mail_goodies = list(/obj/item/skillchip/appraiser) // bad at recognizing faces but good at recognizing IDs - -/datum/quirk/prosthetic_limb - name = "Prosthetic Limb" - desc = "An accident caused you to lose one of your limbs. Because of this, you now have a random prosthetic!" - icon = "tg-prosthetic-leg" - value = -3 - var/slot_string = "limb" - medical_record_text = "During physical examination, patient was found to have a prosthetic limb." - hardcore_value = 3 - quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_CHANGES_APPEARANCE - mail_goodies = list(/obj/item/weldingtool/mini, /obj/item/stack/cable_coil/five) - -/datum/quirk/prosthetic_limb/add_unique(client/client_source) - var/limb_slot = pick(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) - var/mob/living/carbon/human/human_holder = quirk_holder - var/obj/item/bodypart/prosthetic - switch(limb_slot) - if(BODY_ZONE_L_ARM) - prosthetic = new /obj/item/bodypart/arm/left/robot/surplus - slot_string = "left arm" - if(BODY_ZONE_R_ARM) - prosthetic = new /obj/item/bodypart/arm/right/robot/surplus - slot_string = "right arm" - if(BODY_ZONE_L_LEG) - prosthetic = new /obj/item/bodypart/leg/left/robot/surplus - slot_string = "left leg" - if(BODY_ZONE_R_LEG) - prosthetic = new /obj/item/bodypart/leg/right/robot/surplus - slot_string = "right leg" - human_holder.del_and_replace_bodypart(prosthetic, TRUE) - -/datum/quirk/prosthetic_limb/post_add() - to_chat(quirk_holder, span_boldannounce("Your [slot_string] has been replaced with a surplus prosthetic. It is fragile and will easily come apart under duress. Additionally, \ - you need to use a welding tool and cables to repair it, instead of bruise packs and ointment.")) - -/datum/quirk/quadruple_amputee - name = "Quadruple Amputee" - desc = "Oops! All Prosthetics! Due to some truly cruel cosmic punishment, all your limbs have been taken from you." - icon = "tg-prosthetic-full" - value = -6 - medical_record_text = "During physical examination, patient was found to have all prosthetic limbs." - hardcore_value = 6 - quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_CHANGES_APPEARANCE - -/datum/quirk/quadruple_amputee/add_unique(client/client_source) - var/mob/living/carbon/human/human_holder = quirk_holder - human_holder.del_and_replace_bodypart(new /obj/item/bodypart/arm/left/robot/surplus, TRUE) - human_holder.del_and_replace_bodypart(new /obj/item/bodypart/arm/right/robot/surplus, TRUE) - human_holder.del_and_replace_bodypart(new /obj/item/bodypart/leg/left/robot/surplus, TRUE) - human_holder.del_and_replace_bodypart(new /obj/item/bodypart/leg/right/robot/surplus, TRUE) - -/datum/quirk/quadruple_amputee/post_add() - to_chat(quirk_holder, span_boldannounce("All your limbs have been replaced with surplus prosthetics. They are fragile and will easily come apart under duress. Additionally, \ - you need to use a welding tool and cables to repair them, instead of bruise packs and ointment.")) - -/datum/quirk/pushover - name = "Pushover" - desc = "Your first instinct is always to let people push you around. Resisting out of grabs will take conscious effort." - icon = FA_ICON_HANDSHAKE - value = -8 - mob_trait = TRAIT_GRABWEAKNESS - gain_text = span_danger("You feel like a pushover.") - lose_text = span_notice("You feel like standing up for yourself.") - medical_record_text = "Patient presents a notably unassertive personality and is easy to manipulate." - hardcore_value = 4 - mail_goodies = list(/obj/item/clothing/gloves/cargo_gauntlet) - -/datum/quirk/insanity - name = "Reality Dissociation Syndrome" - desc = "You suffer from a severe disorder that causes very vivid hallucinations. \ - Mindbreaker toxin can suppress its effects, and you are immune to mindbreaker's hallucinogenic properties. \ - THIS IS NOT A LICENSE TO GRIEF." - icon = FA_ICON_GRIN_TONGUE_WINK - value = -8 - gain_text = span_userdanger("...") - lose_text = span_notice("You feel in tune with the world again.") - medical_record_text = "Patient suffers from acute Reality Dissociation Syndrome and experiences vivid hallucinations." - hardcore_value = 6 - mail_goodies = list(/obj/item/storage/pill_bottle/lsdpsych) - /// Weakref to the trauma we give out - var/datum/weakref/added_trama_ref - -/datum/quirk/insanity/add(client/client_source) - if(!iscarbon(quirk_holder)) - return - var/mob/living/carbon/carbon_quirk_holder = quirk_holder - - // Setup our special RDS mild hallucination. - // Not a unique subtype so not to plague subtypesof, - // also as we inherit the names and values from our quirk. - var/datum/brain_trauma/mild/hallucinations/added_trauma = new() - added_trauma.resilience = TRAUMA_RESILIENCE_ABSOLUTE - added_trauma.name = name - added_trauma.desc = medical_record_text - added_trauma.scan_desc = lowertext(name) - added_trauma.gain_text = null - added_trauma.lose_text = null - - carbon_quirk_holder.gain_trauma(added_trauma) - added_trama_ref = WEAKREF(added_trauma) - -/datum/quirk/insanity/post_add() - var/rds_policy = get_policy("[type]") || "Please note that your [lowertext(name)] does NOT give you any additional right to attack people or cause chaos." - // I don't /think/ we'll need this, but for newbies who think "roleplay as insane" = "license to kill", it's probably a good thing to have. - to_chat(quirk_holder, span_big(span_info(rds_policy))) - -/datum/quirk/insanity/remove() - QDEL_NULL(added_trama_ref) - -/datum/quirk/social_anxiety - name = "Social Anxiety" - desc = "Talking to people is very difficult for you, and you often stutter or even lock up." - icon = FA_ICON_COMMENT_SLASH - value = -3 - gain_text = span_danger("You start worrying about what you're saying.") - lose_text = span_notice("You feel easier about talking again.") //if only it were that easy! - medical_record_text = "Patient is usually anxious in social encounters and prefers to avoid them." - hardcore_value = 4 - mob_trait = TRAIT_ANXIOUS - mail_goodies = list(/obj/item/storage/pill_bottle/psicodine) - var/dumb_thing = TRUE - -/datum/quirk/social_anxiety/add(client/client_source) - RegisterSignal(quirk_holder, COMSIG_MOB_EYECONTACT, PROC_REF(eye_contact)) - RegisterSignal(quirk_holder, COMSIG_MOB_EXAMINATE, PROC_REF(looks_at_floor)) - RegisterSignal(quirk_holder, COMSIG_MOB_SAY, PROC_REF(handle_speech)) - -/datum/quirk/social_anxiety/remove() - UnregisterSignal(quirk_holder, list(COMSIG_MOB_EYECONTACT, COMSIG_MOB_EXAMINATE, COMSIG_MOB_SAY)) - -/datum/quirk/social_anxiety/proc/handle_speech(datum/source, list/speech_args) - SIGNAL_HANDLER - - if(HAS_TRAIT(quirk_holder, TRAIT_FEARLESS)) - return - if(HAS_TRAIT(source, TRAIT_SIGN_LANG)) // No modifiers for signers, so you're less anxious when you go non-verbal - return - - var/moodmod - if(quirk_holder.mob_mood) - moodmod = (1+0.02*(50-(max(50, quirk_holder.mob_mood.mood_level*(7-quirk_holder.mob_mood.sanity_level))))) //low sanity levels are better, they max at 6 - else - moodmod = (1+0.02*(50-(max(50, 0.1*quirk_holder.nutrition)))) - var/nearby_people = 0 - for(var/mob/living/carbon/human/H in oview(3, quirk_holder)) - if(H.client) - nearby_people++ - var/message = speech_args[SPEECH_MESSAGE] - if(message) - var/list/message_split = splittext(message, " ") - var/list/new_message = list() - var/mob/living/carbon/human/quirker = quirk_holder - for(var/word in message_split) - if(prob(max(5,(nearby_people*12.5*moodmod))) && word != message_split[1]) //Minimum 1/20 chance of filler - new_message += pick("uh,","erm,","um,") - if(prob(min(5,(0.05*(nearby_people*12.5)*moodmod)))) //Max 1 in 20 chance of cutoff after a successful filler roll, for 50% odds in a 15 word sentence - quirker.set_silence_if_lower(6 SECONDS) - to_chat(quirker, span_danger("You feel self-conscious and stop talking. You need a moment to recover!")) - break - if(prob(max(5,(nearby_people*12.5*moodmod)))) //Minimum 1/20 chance of stutter - // Add a short stutter, THEN treat our word - quirker.adjust_stutter(0.5 SECONDS) - new_message += quirker.treat_message(word, capitalize_message = FALSE) - - else - new_message += word - - message = jointext(new_message, " ") - var/mob/living/carbon/human/quirker = quirk_holder - if(prob(min(50,(0.50*(nearby_people*12.5)*moodmod)))) //Max 50% chance of not talking - if(dumb_thing) - to_chat(quirker, span_userdanger("You think of a dumb thing you said a long time ago and scream internally.")) - dumb_thing = FALSE //only once per life - if(prob(1)) - new/obj/item/food/spaghetti/pastatomato(get_turf(quirker)) //now that's what I call spaghetti code - else - to_chat(quirk_holder, span_warning("You think that wouldn't add much to the conversation and decide not to say it.")) - if(prob(min(25,(0.25*(nearby_people*12.75)*moodmod)))) //Max 25% chance of silence stacks after successful not talking roll - to_chat(quirker, span_danger("You retreat into yourself. You really don't feel up to talking.")) - quirker.set_silence_if_lower(10 SECONDS) - - speech_args[SPEECH_MESSAGE] = pick("Uh.","Erm.","Um.") - else - speech_args[SPEECH_MESSAGE] = message - -// small chance to make eye contact with inanimate objects/mindless mobs because of nerves -/datum/quirk/social_anxiety/proc/looks_at_floor(datum/source, atom/A) - SIGNAL_HANDLER - - var/mob/living/mind_check = A - if(prob(85) || (istype(mind_check) && mind_check.mind)) - return - - addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), quirk_holder, span_smallnotice("You make eye contact with [A].")), 3) - -/datum/quirk/social_anxiety/proc/eye_contact(datum/source, mob/living/other_mob, triggering_examiner) - SIGNAL_HANDLER - - if(prob(75)) - return - var/msg - if(triggering_examiner) - msg = "You make eye contact with [other_mob], " - else - msg = "[other_mob] makes eye contact with you, " - - switch(rand(1,3)) - if(1) - quirk_holder.set_jitter_if_lower(20 SECONDS) - msg += "causing you to start fidgeting!" - if(2) - quirk_holder.set_stutter_if_lower(6 SECONDS) - msg += "causing you to start stuttering!" - if(3) - quirk_holder.Stun(2 SECONDS) - msg += "causing you to freeze up!" - - quirk_holder.add_mood_event("anxiety_eyecontact", /datum/mood_event/anxiety_eyecontact) - addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), quirk_holder, span_userdanger("[msg]")), 3) // so the examine signal has time to fire and this will print after - return COMSIG_BLOCK_EYECONTACT - -/datum/mood_event/anxiety_eyecontact - description = "Sometimes eye contact makes me so nervous..." - mood_change = -5 - timeout = 3 MINUTES - -/datum/quirk/item_quirk/junkie - name = "Junkie" - desc = "You can't get enough of hard drugs." - icon = FA_ICON_PILLS - value = -6 - gain_text = span_danger("You suddenly feel the craving for drugs.") - medical_record_text = "Patient has a history of hard drugs." - hardcore_value = 4 - quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_PROCESSES - mail_goodies = list(/obj/effect/spawner/random/contraband/narcotics) - var/drug_list = list(/datum/reagent/drug/blastoff, /datum/reagent/drug/krokodil, /datum/reagent/medicine/painkiller/morphine, /datum/reagent/drug/happiness, /datum/reagent/drug/methamphetamine) //List of possible IDs - var/datum/reagent/reagent_type //!If this is defined, reagent_id will be unused and the defined reagent type will be instead. - var/datum/reagent/reagent_instance //! actual instanced version of the reagent - var/where_drug //! Where the drug spawned - var/obj/item/drug_container_type //! If this is defined before pill generation, pill generation will be skipped. This is the type of the pill bottle. - var/where_accessory //! where the accessory spawned - var/obj/item/accessory_type //! If this is null, an accessory won't be spawned. - var/process_interval = 30 SECONDS //! how frequently the quirk processes - var/next_process = 0 //! ticker for processing - var/drug_flavour_text = "Better hope you don't run out..." - -/datum/quirk/item_quirk/junkie/add_unique(client/client_source) - var/mob/living/carbon/human/human_holder = quirk_holder - - if(!reagent_type) - reagent_type = pick(drug_list) - - reagent_instance = new reagent_type() - - for(var/addiction in reagent_instance.addiction_types) - human_holder.last_mind?.add_addiction_points(addiction, 1000) - - var/current_turf = get_turf(quirk_holder) - - if(!drug_container_type) - drug_container_type = /obj/item/storage/pill_bottle - - var/obj/item/drug_instance = new drug_container_type(current_turf) - if(istype(drug_instance, /obj/item/storage/pill_bottle)) - var/pill_state = "pill[rand(1,20)]" - for(var/i in 1 to 7) - var/obj/item/reagent_containers/pill/pill = new(drug_instance) - pill.icon_state = pill_state - pill.reagents.add_reagent(reagent_type, 3) - - give_item_to_holder( - drug_instance, - list( - LOCATION_LPOCKET = ITEM_SLOT_LPOCKET, - LOCATION_RPOCKET = ITEM_SLOT_RPOCKET, - LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, - LOCATION_HANDS = ITEM_SLOT_HANDS, - ), - flavour_text = drug_flavour_text, - ) - - if(accessory_type) - give_item_to_holder( - accessory_type, - list( - LOCATION_LPOCKET = ITEM_SLOT_LPOCKET, - LOCATION_RPOCKET = ITEM_SLOT_RPOCKET, - LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, - LOCATION_HANDS = ITEM_SLOT_HANDS, - ) - ) - -/datum/quirk/item_quirk/junkie/remove() - if(quirk_holder && reagent_instance) - for(var/addiction_type in subtypesof(/datum/addiction)) - quirk_holder.mind.remove_addiction_points(addiction_type, MAX_ADDICTION_POINTS) - -/datum/quirk/item_quirk/junkie/process(seconds_per_tick) - if(HAS_TRAIT(quirk_holder, TRAIT_LIVERLESS_METABOLISM)) - return - var/mob/living/carbon/human/human_holder = quirk_holder - if(world.time > next_process) - next_process = world.time + process_interval - var/deleted = QDELETED(reagent_instance) - var/missing_addiction = FALSE - for(var/addiction_type in reagent_instance.addiction_types) - if(!LAZYACCESS(human_holder.last_mind?.active_addictions, addiction_type)) - missing_addiction = TRUE - if(deleted || missing_addiction) - if(deleted) - reagent_instance = new reagent_type() - to_chat(quirk_holder, span_danger("You thought you kicked it, but you feel like you're falling back onto bad habits..")) - for(var/addiction in reagent_instance.addiction_types) - human_holder.last_mind?.add_addiction_points(addiction, 1000) ///Max that shit out - -/datum/quirk/item_quirk/junkie/smoker - name = "Smoker" - desc = "Sometimes you just really want a smoke. Probably not great for your lungs." - icon = FA_ICON_SMOKING - value = -4 - gain_text = span_danger("You could really go for a smoke right about now.") - medical_record_text = "Patient is a current smoker." - reagent_type = /datum/reagent/drug/nicotine - accessory_type = /obj/item/lighter/greyscale - mob_trait = TRAIT_SMOKER - hardcore_value = 1 - drug_flavour_text = "Make sure you get your favorite brand when you run out." - mail_goodies = list( - /obj/effect/spawner/random/entertainment/cigarette_pack, - /obj/effect/spawner/random/entertainment/cigar, - /obj/effect/spawner/random/entertainment/lighter, - /obj/item/clothing/mask/cigarette/pipe, - ) - -/datum/quirk/item_quirk/junkie/smoker/New() - drug_container_type = pick(/obj/item/storage/fancy/cigarettes, - /obj/item/storage/fancy/cigarettes/cigpack_midori, - /obj/item/storage/fancy/cigarettes/cigpack_uplift, - /obj/item/storage/fancy/cigarettes/cigpack_robust, - /obj/item/storage/fancy/cigarettes/cigpack_robustgold, - /obj/item/storage/fancy/cigarettes/cigpack_carp) - - return ..() - -/datum/quirk/item_quirk/junkie/smoker/post_add() - . = ..() - quirk_holder.add_mob_memory(/datum/memory/key/quirk_smoker, protagonist = quirk_holder, preferred_brand = initial(drug_container_type.name)) - // smoker lungs have 25% less health and healing - var/obj/item/organ/internal/lungs/smoker_lungs = quirk_holder.get_organ_slot(ORGAN_SLOT_LUNGS) - if (smoker_lungs && !(smoker_lungs.organ_flags & ORGAN_SYNTHETIC)) // robotic lungs aren't affected - smoker_lungs.maxHealth = smoker_lungs.maxHealth * 0.75 - smoker_lungs.healing_factor = smoker_lungs.healing_factor * 0.75 - -/datum/quirk/item_quirk/junkie/smoker/process(seconds_per_tick) - . = ..() - var/mob/living/carbon/human/human_holder = quirk_holder - var/obj/item/mask_item = human_holder.get_item_by_slot(ITEM_SLOT_MASK) - if (istype(mask_item, /obj/item/clothing/mask/cigarette)) - var/obj/item/storage/fancy/cigarettes/cigarettes = drug_container_type - if(istype(mask_item, initial(cigarettes.spawn_type))) - quirk_holder.clear_mood_event("wrong_cigs") - return - quirk_holder.add_mood_event("wrong_cigs", /datum/mood_event/wrong_brand) - -/datum/quirk/unstable - name = "Unstable" - desc = "Due to past troubles, you are unable to recover your sanity if you lose it. Be very careful managing your mood!" - icon = FA_ICON_ANGRY - value = -10 - mob_trait = TRAIT_UNSTABLE - gain_text = span_danger("There's a lot on your mind right now.") - lose_text = span_notice("Your mind finally feels calm.") - medical_record_text = "Patient's mind is in a vulnerable state, and cannot recover from traumatic events." - hardcore_value = 9 - mail_goodies = list(/obj/effect/spawner/random/entertainment/plushie) - -/datum/quirk/item_quirk/allergic - name = "Extreme Medicine Allergy" - desc = "Ever since you were a kid, you've been allergic to certain chemicals..." - icon = FA_ICON_PRESCRIPTION_BOTTLE - value = -6 - gain_text = span_danger("You feel your immune system shift.") - lose_text = span_notice("You feel your immune system phase back into perfect shape.") - medical_record_text = "Patient's immune system responds violently to certain chemicals." - hardcore_value = 3 - quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_PROCESSES - mail_goodies = list(/obj/item/reagent_containers/hypospray/medipen) // epinephrine medipen stops allergic reactions - var/list/allergies = list() - var/list/blacklist = list(/datum/reagent/medicine/c2,/datum/reagent/medicine/epinephrine,/datum/reagent/medicine/adminordrazine,/datum/reagent/medicine/omnizine/godblood,/datum/reagent/medicine/cordiolis_hepatico,/datum/reagent/medicine/synaphydramine,/datum/reagent/medicine/diphenhydramine) - var/allergy_string - -/datum/quirk/item_quirk/allergic/add_unique(client/client_source) - var/list/chem_list = subtypesof(/datum/reagent/medicine) - blacklist - var/list/allergy_chem_names = list() - for(var/i in 0 to 5) - var/datum/reagent/medicine/chem_type = pick_n_take(chem_list) - allergies += chem_type - allergy_chem_names += initial(chem_type.name) - - allergy_string = allergy_chem_names.Join(", ") - name = "Extreme [allergy_string] Allergies" - medical_record_text = "Patient's immune system responds violently to [allergy_string]" - - var/mob/living/carbon/human/human_holder = quirk_holder - var/obj/item/clothing/accessory/dogtag/allergy/dogtag = new(get_turf(human_holder), allergy_string) - - give_item_to_holder(dogtag, list(LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, LOCATION_HANDS = ITEM_SLOT_HANDS), flavour_text = "Make sure medical staff can see this...") - -/datum/quirk/item_quirk/allergic/post_add() - quirk_holder.add_mob_memory(/datum/memory/key/quirk_allergy, allergy_string = allergy_string) - to_chat(quirk_holder, span_boldnotice("You are allergic to [allergy_string], make sure not to consume any of these!")) - -/datum/quirk/item_quirk/allergic/process(seconds_per_tick) - if(!iscarbon(quirk_holder)) - return - - if(HAS_TRAIT(quirk_holder, TRAIT_STASIS)) - return - - if(quirk_holder.stat == DEAD) - return - - var/mob/living/carbon/carbon_quirk_holder = quirk_holder - for(var/allergy in allergies) - var/datum/reagent/instantiated_med = carbon_quirk_holder.reagents.has_reagent(allergy) - if(!instantiated_med) - continue - //Just halts the progression, I'd suggest you run to medbay asap to get it fixed - if(carbon_quirk_holder.reagents.has_reagent(/datum/reagent/medicine/epinephrine)) - instantiated_med.reagent_removal_skip_list |= ALLERGIC_REMOVAL_SKIP - return //intentionally stops the entire proc so we avoid the organ damage after the loop - instantiated_med.reagent_removal_skip_list -= ALLERGIC_REMOVAL_SKIP - carbon_quirk_holder.adjustToxLoss(3 * seconds_per_tick) - carbon_quirk_holder.reagents.add_reagent(/datum/reagent/toxin/histamine, 3 * seconds_per_tick) - if(SPT_PROB(10, seconds_per_tick)) - carbon_quirk_holder.vomit() - carbon_quirk_holder.adjustOrganLoss(pick(ORGAN_SLOT_BRAIN,ORGAN_SLOT_APPENDIX,ORGAN_SLOT_LUNGS,ORGAN_SLOT_HEART,ORGAN_SLOT_LIVER,ORGAN_SLOT_STOMACH),10) - -/datum/quirk/bad_touch - name = "Bad Touch" - desc = "You don't like hugs. You'd really prefer if people just left you alone." - icon = "tg-bad-touch" - mob_trait = TRAIT_BADTOUCH - value = -1 - gain_text = span_danger("You just want people to leave you alone.") - lose_text = span_notice("You could use a big hug.") - medical_record_text = "Patient has disdain for being touched. Potentially has undiagnosed haphephobia." - quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_MOODLET_BASED - hardcore_value = 1 - mail_goodies = list(/obj/item/reagent_containers/spray/pepper) // show me on the doll where the bad man touched you - -/datum/quirk/bad_touch/add(client/client_source) - RegisterSignals(quirk_holder, list(COMSIG_LIVING_GET_PULLED, COMSIG_CARBON_HELP_ACT), PROC_REF(uncomfortable_touch)) - -/datum/quirk/bad_touch/remove() - UnregisterSignal(quirk_holder, list(COMSIG_LIVING_GET_PULLED, COMSIG_CARBON_HELP_ACT)) - -/// Causes a negative moodlet to our quirk holder on signal -/datum/quirk/bad_touch/proc/uncomfortable_touch(datum/source) - SIGNAL_HANDLER - - if(quirk_holder.stat == DEAD) - return - - new /obj/effect/temp_visual/annoyed(quirk_holder.loc) - if(quirk_holder.mob_mood.sanity <= SANITY_NEUTRAL) - quirk_holder.add_mood_event("bad_touch", /datum/mood_event/very_bad_touch) - else - quirk_holder.add_mood_event("bad_touch", /datum/mood_event/bad_touch) - -/datum/quirk/claustrophobia - name = "Claustrophobia" - desc = "You are terrified of small spaces and certain jolly figures. If you are placed inside any container, locker, or machinery, a panic attack sets in and you struggle to breathe." - icon = FA_ICON_BOX_OPEN - value = -4 - medical_record_text = "Patient demonstrates a fear of tight spaces." - hardcore_value = 5 - quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_PROCESSES - mail_goodies = list(/obj/item/reagent_containers/syringe/convermol) // to help breathing - -/datum/quirk/claustrophobia/remove() - quirk_holder.clear_mood_event("claustrophobia") - -/datum/quirk/claustrophobia/process(seconds_per_tick) - if(quirk_holder.stat != CONSCIOUS || quirk_holder.IsSleeping() || quirk_holder.IsUnconscious()) - return - - if(HAS_TRAIT(quirk_holder, TRAIT_FEARLESS)) - return - - var/nick_spotted = FALSE - - for(var/mob/living/carbon/human/possible_claus in view(5, quirk_holder)) - if(evaluate_jolly_levels(possible_claus)) - nick_spotted = TRUE - break - - if(!nick_spotted && isturf(quirk_holder.loc)) - quirk_holder.clear_mood_event("claustrophobia") - return - - quirk_holder.add_mood_event("claustrophobia", /datum/mood_event/claustrophobia) - quirk_holder.losebreath += 0.25 // miss a breath one in four times - if(SPT_PROB(25, seconds_per_tick)) - if(nick_spotted) - to_chat(quirk_holder, span_warning("Santa Claus is here! I gotta get out of here!")) - else - to_chat(quirk_holder, span_warning("You feel trapped! Must escape... can't breathe...")) - -///investigates whether possible_saint_nick possesses a high level of christmas cheer -/datum/quirk/claustrophobia/proc/evaluate_jolly_levels(mob/living/carbon/human/possible_saint_nick) - if(!istype(possible_saint_nick)) - return FALSE - - if(istype(possible_saint_nick.back, /obj/item/storage/backpack/santabag)) - return TRUE - - if(istype(possible_saint_nick.head, /obj/item/clothing/head/costume/santa) || istype(possible_saint_nick.head, /obj/item/clothing/head/helmet/space/santahat)) - return TRUE - - if(istype(possible_saint_nick.wear_suit, /obj/item/clothing/suit/space/santa)) - return TRUE - - return FALSE - -/datum/quirk/illiterate - name = "Illiterate" - desc = "You dropped out of school and are unable to read or write. This affects reading, writing, using computers and other electronics." - icon = FA_ICON_GRADUATION_CAP - value = -8 - mob_trait = TRAIT_ILLITERATE - medical_record_text = "Patient is not literate." - hardcore_value = 8 - mail_goodies = list(/obj/item/pai_card) // can read things for you - - -/datum/quirk/mute - name = "Mute" - desc = "For some reason you are completely unable to speak." - icon = FA_ICON_VOLUME_XMARK - value = -6 //monkestation change 4->6 - mob_trait = TRAIT_MUTE - gain_text = span_danger("You find yourself unable to speak!") - lose_text = span_notice("You feel a growing strength in your vocal chords.") - medical_record_text = "The patient is unable to use their voice in any capacity." - hardcore_value = 6 //monkestation change 4->6 - -/datum/quirk/body_purist - name = "Body Purist" - desc = "You believe your body is a temple and its natural form is an embodiment of perfection. Accordingly, you despise the idea of ever augmenting it with unnatural parts, cybernetic, prosthetic, or anything like it." - icon = FA_ICON_PERSON_RAYS - value = -2 - quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_MOODLET_BASED - gain_text = span_danger("You now begin to hate the idea of having cybernetic implants.") - lose_text = span_notice("Maybe cybernetics aren't so bad. You now feel okay with augmentations and prosthetics.") - medical_record_text = "This patient has disclosed an extreme hatred for unnatural bodyparts and augmentations." - hardcore_value = 3 - mail_goodies = list(/obj/item/paper/pamphlet/cybernetics) - var/cybernetics_level = 0 - -/datum/quirk/body_purist/add(client/client_source) - check_cybernetics() - RegisterSignal(quirk_holder, COMSIG_CARBON_GAIN_ORGAN, PROC_REF(on_organ_gain)) - RegisterSignal(quirk_holder, COMSIG_CARBON_LOSE_ORGAN, PROC_REF(on_organ_lose)) - RegisterSignal(quirk_holder, COMSIG_CARBON_ATTACH_LIMB, PROC_REF(on_limb_gain)) - RegisterSignal(quirk_holder, COMSIG_CARBON_REMOVE_LIMB, PROC_REF(on_limb_lose)) - -/datum/quirk/body_purist/remove() - UnregisterSignal(quirk_holder, list( - COMSIG_CARBON_GAIN_ORGAN, - COMSIG_CARBON_LOSE_ORGAN, - COMSIG_CARBON_ATTACH_LIMB, - COMSIG_CARBON_REMOVE_LIMB, - )) - quirk_holder.clear_mood_event("body_purist") - -/datum/quirk/body_purist/proc/check_cybernetics() - var/mob/living/carbon/owner = quirk_holder - if(!istype(owner)) - return - for(var/obj/item/bodypart/limb as anything in owner.bodyparts) - if(!IS_ORGANIC_LIMB(limb)) - cybernetics_level++ - for(var/obj/item/organ/organ as anything in owner.organs) - if((organ.organ_flags & ORGAN_SYNTHETIC || organ.status == ORGAN_ROBOTIC) && !(organ.organ_flags & ORGAN_HIDDEN)) - cybernetics_level++ - update_mood() - -/datum/quirk/body_purist/proc/update_mood() - quirk_holder.clear_mood_event("body_purist") - if(cybernetics_level) - quirk_holder.add_mood_event("body_purist", /datum/mood_event/body_purist, -cybernetics_level * 10) - -/datum/quirk/body_purist/proc/on_organ_gain(datum/source, obj/item/organ/new_organ, special) - SIGNAL_HANDLER - if((new_organ.organ_flags & ORGAN_SYNTHETIC || new_organ.status == ORGAN_ROBOTIC) && !(new_organ.organ_flags & ORGAN_HIDDEN)) //why the fuck are there 2 of them - cybernetics_level++ - update_mood() - -/datum/quirk/body_purist/proc/on_organ_lose(datum/source, obj/item/organ/old_organ, special) - SIGNAL_HANDLER - if((old_organ.organ_flags & ORGAN_SYNTHETIC || old_organ.status == ORGAN_ROBOTIC) && !(old_organ.organ_flags & ORGAN_HIDDEN)) - cybernetics_level-- - update_mood() - -/datum/quirk/body_purist/proc/on_limb_gain(datum/source, obj/item/bodypart/new_limb, special) - SIGNAL_HANDLER - if(!IS_ORGANIC_LIMB(new_limb)) - cybernetics_level++ - update_mood() - -/datum/quirk/body_purist/proc/on_limb_lose(datum/source, obj/item/bodypart/old_limb, special) - SIGNAL_HANDLER - if(!IS_ORGANIC_LIMB(old_limb)) - cybernetics_level-- - update_mood() - -/datum/quirk/cursed - name = "Cursed" - desc = "You are cursed with bad luck. You are much more likely to suffer from accidents and mishaps. When it rains, it pours." - icon = FA_ICON_CLOUD_SHOWERS_HEAVY - value = -8 - mob_trait = TRAIT_CURSED - gain_text = span_danger("You feel like you're going to have a bad day.") - lose_text = span_notice("You feel like you're going to have a good day.") - medical_record_text = "Patient is cursed with bad luck." - hardcore_value = 8 - -/datum/quirk/cursed/add(client/client_source) - quirk_holder.AddComponent(/datum/component/omen/quirk) - -/datum/quirk/indebted - name = "Indebted" - desc = "Bad life decisions, medical bills, student loans, whatever it may be, you've incurred quite the debt. A portion of all you receive will go towards extinguishing it." - icon = FA_ICON_DOLLAR - quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_HIDE_FROM_SCAN - value = -2 - medical_record_text = "Alas, the patient struggled to scrape together enough money to pay the checkup bill." - hardcore_value = 2 - -/datum/quirk/indebted/add_unique(client/client_source) - var/mob/living/carbon/human/human_holder = quirk_holder - if(!human_holder.account_id) - return - var/datum/bank_account/account = SSeconomy.bank_accounts_by_id["[human_holder.account_id]"] - var/debt = PAYCHECK_CREW * rand(275, 325) - account.account_debt += debt - RegisterSignal(account, COMSIG_BANK_ACCOUNT_DEBT_PAID, PROC_REF(on_debt_paid)) - to_chat(client_source.mob, span_warning("You remember, you've a hefty, [debt] credits debt to pay...")) - -///Once the debt is extinguished, award an achievement and a pin for actually taking care of it. -/datum/quirk/indebted/proc/on_debt_paid(datum/bank_account/source) - SIGNAL_HANDLER - if(source.account_debt) - return - UnregisterSignal(source, COMSIG_BANK_ACCOUNT_DEBT_PAID) - ///The debt was extinguished while the quirk holder was logged out, so let's kindly award it once they come back. - if(!quirk_holder.client) - RegisterSignal(quirk_holder, COMSIG_MOB_LOGIN, PROC_REF(award_on_login)) - else - quirk_holder.client.give_award(/datum/award/achievement/misc/debt_extinguished, quirk_holder) - podspawn(list( - "target" = get_turf(quirk_holder), - "style" = STYLE_BLUESPACE, - "spawn" = /obj/item/clothing/accessory/debt_payer_pin, - )) - -/datum/quirk/indebted/proc/award_on_login(mob/source) - SIGNAL_HANDLER - quirk_holder.client.give_award(/datum/award/achievement/misc/debt_extinguished, quirk_holder) - UnregisterSignal(source, COMSIG_MOB_LOGIN) diff --git a/code/datums/quirks/negative_quirks/allergic.dm b/code/datums/quirks/negative_quirks/allergic.dm new file mode 100644 index 000000000000..2c6af0ba91b4 --- /dev/null +++ b/code/datums/quirks/negative_quirks/allergic.dm @@ -0,0 +1,71 @@ +/datum/quirk/item_quirk/allergic + name = "Extreme Medicine Allergy" + desc = "Ever since you were a kid, you've been allergic to certain chemicals..." + icon = FA_ICON_PRESCRIPTION_BOTTLE + value = -6 + gain_text = span_danger("You feel your immune system shift.") + lose_text = span_notice("You feel your immune system phase back into perfect shape.") + medical_record_text = "Patient's immune system responds violently to certain chemicals." + hardcore_value = 3 + quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_PROCESSES + mail_goodies = list(/obj/item/reagent_containers/hypospray/medipen) // epinephrine medipen stops allergic reactions + var/list/allergies = list() + var/list/blacklist = list( + /datum/reagent/medicine/c2, + /datum/reagent/medicine/epinephrine, + /datum/reagent/medicine/adminordrazine, + /datum/reagent/medicine/omnizine/godblood, + /datum/reagent/medicine/cordiolis_hepatico, + /datum/reagent/medicine/synaphydramine, + /datum/reagent/medicine/diphenhydramine, + /datum/reagent/medicine/changelingadrenaline, + /datum/reagent/medicine/spaceacillin + ) + var/allergy_string + +/datum/quirk/item_quirk/allergic/add_unique(client/client_source) + var/list/chem_list = subtypesof(/datum/reagent/medicine) - blacklist + var/list/allergy_chem_names = list() + for(var/i in 0 to 5) + var/datum/reagent/medicine/chem_type = pick_n_take(chem_list) + allergies += chem_type + allergy_chem_names += initial(chem_type.name) + + allergy_string = allergy_chem_names.Join(", ") + name = "Extreme [allergy_string] Allergies" + medical_record_text = "Patient's immune system responds violently to [allergy_string]" + + var/mob/living/carbon/human/human_holder = quirk_holder + var/obj/item/clothing/accessory/dogtag/allergy/dogtag = new(get_turf(human_holder), allergy_string) + + give_item_to_holder(dogtag, list(LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, LOCATION_HANDS = ITEM_SLOT_HANDS), flavour_text = "Make sure medical staff can see this...") + +/datum/quirk/item_quirk/allergic/post_add() + quirk_holder.add_mob_memory(/datum/memory/key/quirk_allergy, allergy_string = allergy_string) + to_chat(quirk_holder, span_boldnotice("You are allergic to [allergy_string], make sure not to consume any of these!")) + +/datum/quirk/item_quirk/allergic/process(seconds_per_tick) + if(!iscarbon(quirk_holder)) + return + + if(HAS_TRAIT(quirk_holder, TRAIT_STASIS)) + return + + if(quirk_holder.stat == DEAD) + return + + var/mob/living/carbon/carbon_quirk_holder = quirk_holder + for(var/allergy in allergies) + var/datum/reagent/instantiated_med = carbon_quirk_holder.reagents.has_reagent(allergy) + if(!instantiated_med) + continue + //Just halts the progression, I'd suggest you run to medbay asap to get it fixed + if(carbon_quirk_holder.reagents.has_reagent(/datum/reagent/medicine/epinephrine)) + instantiated_med.reagent_removal_skip_list |= ALLERGIC_REMOVAL_SKIP + return //intentionally stops the entire proc so we avoid the organ damage after the loop + instantiated_med.reagent_removal_skip_list -= ALLERGIC_REMOVAL_SKIP + carbon_quirk_holder.adjustToxLoss(3 * seconds_per_tick) + carbon_quirk_holder.reagents.add_reagent(/datum/reagent/toxin/histamine, 3 * seconds_per_tick) + if(SPT_PROB(10, seconds_per_tick)) + carbon_quirk_holder.vomit() + carbon_quirk_holder.adjustOrganLoss(pick(ORGAN_SLOT_BRAIN,ORGAN_SLOT_APPENDIX,ORGAN_SLOT_LUNGS,ORGAN_SLOT_HEART,ORGAN_SLOT_LIVER,ORGAN_SLOT_STOMACH),10) diff --git a/code/datums/quirks/negative_quirks/bad_back.dm b/code/datums/quirks/negative_quirks/bad_back.dm new file mode 100644 index 000000000000..e2b286cbfd11 --- /dev/null +++ b/code/datums/quirks/negative_quirks/bad_back.dm @@ -0,0 +1,53 @@ +/datum/quirk/badback + name = "Bad Back" + desc = "Thanks to your poor posture, backpacks and other bags never sit right on your back. More evenly weighted objects are fine, though." + icon = FA_ICON_HIKING + value = -8 + quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_MOODLET_BASED + gain_text = span_danger("Your back REALLY hurts!") + lose_text = span_notice("Your back feels better.") + medical_record_text = "Patient scans indicate severe and chronic back pain." + hardcore_value = 4 + mail_goodies = list(/obj/item/cane) + var/datum/weakref/backpack + +/datum/quirk/badback/add(client/client_source) + var/mob/living/carbon/human/human_holder = quirk_holder + var/obj/item/storage/backpack/equipped_backpack = human_holder.back + if(istype(equipped_backpack)) + quirk_holder.add_mood_event("back_pain", /datum/mood_event/back_pain) + RegisterSignal(human_holder.back, COMSIG_ITEM_POST_UNEQUIP, PROC_REF(on_unequipped_backpack)) + else + RegisterSignal(quirk_holder, COMSIG_MOB_EQUIPPED_ITEM, PROC_REF(on_equipped_item)) + +/datum/quirk/badback/remove() + UnregisterSignal(quirk_holder, COMSIG_MOB_EQUIPPED_ITEM) + + var/obj/item/storage/equipped_backpack = backpack?.resolve() + if(equipped_backpack) + UnregisterSignal(equipped_backpack, COMSIG_ITEM_POST_UNEQUIP) + quirk_holder.clear_mood_event("back_pain") + +/// Signal handler for when the quirk_holder equips an item. If it's a backpack, adds the back_pain mood event. +/datum/quirk/badback/proc/on_equipped_item(mob/living/source, obj/item/equipped_item, slot) + SIGNAL_HANDLER + + if(!(slot & ITEM_SLOT_BACK) || !istype(equipped_item, /obj/item/storage/backpack)) + return + var/obj/item/storage/backpack/equipped_backpack = equipped_item + if(equipped_backpack.shoulder_carry) + return + + quirk_holder.add_mood_event("back_pain", /datum/mood_event/back_pain) + RegisterSignal(equipped_item, COMSIG_ITEM_POST_UNEQUIP, PROC_REF(on_unequipped_backpack)) + UnregisterSignal(quirk_holder, COMSIG_MOB_EQUIPPED_ITEM) + backpack = WEAKREF(equipped_item) + +/// Signal handler for when the quirk_holder unequips an equipped backpack. Removes the back_pain mood event. +/datum/quirk/badback/proc/on_unequipped_backpack(obj/item/source, force, atom/newloc, no_move, invdrop, silent) + SIGNAL_HANDLER + + UnregisterSignal(source, COMSIG_ITEM_POST_UNEQUIP) + quirk_holder.clear_mood_event("back_pain") + backpack = null + RegisterSignal(quirk_holder, COMSIG_MOB_EQUIPPED_ITEM, PROC_REF(on_equipped_item)) diff --git a/code/datums/quirks/negative_quirks/bad_touch.dm b/code/datums/quirks/negative_quirks/bad_touch.dm new file mode 100644 index 000000000000..f3a5d967a019 --- /dev/null +++ b/code/datums/quirks/negative_quirks/bad_touch.dm @@ -0,0 +1,31 @@ +/datum/quirk/bad_touch + name = "Bad Touch" + desc = "You don't like hugs. You'd really prefer if people just left you alone." + icon = "tg-bad-touch" + mob_trait = TRAIT_BADTOUCH + value = -1 + gain_text = span_danger("You just want people to leave you alone.") + lose_text = span_notice("You could use a big hug.") + medical_record_text = "Patient has disdain for being touched. Potentially has undiagnosed haphephobia." + quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_MOODLET_BASED + hardcore_value = 1 + mail_goodies = list(/obj/item/reagent_containers/spray/pepper) // show me on the doll where the bad man touched you + +/datum/quirk/bad_touch/add(client/client_source) + RegisterSignals(quirk_holder, list(COMSIG_LIVING_GET_PULLED, COMSIG_CARBON_HELP_ACT), PROC_REF(uncomfortable_touch)) + +/datum/quirk/bad_touch/remove() + UnregisterSignal(quirk_holder, list(COMSIG_LIVING_GET_PULLED, COMSIG_CARBON_HELP_ACT)) + +/// Causes a negative moodlet to our quirk holder on signal +/datum/quirk/bad_touch/proc/uncomfortable_touch(datum/source) + SIGNAL_HANDLER + + if(quirk_holder.stat == DEAD) + return + + new /obj/effect/temp_visual/annoyed(quirk_holder.loc) + if(quirk_holder.mob_mood.sanity <= SANITY_NEUTRAL) + quirk_holder.add_mood_event("bad_touch", /datum/mood_event/very_bad_touch) + else + quirk_holder.add_mood_event("bad_touch", /datum/mood_event/bad_touch) diff --git a/code/datums/quirks/negative_quirks/big_hands.dm b/code/datums/quirks/negative_quirks/big_hands.dm new file mode 100644 index 000000000000..778ea6af8c37 --- /dev/null +++ b/code/datums/quirks/negative_quirks/big_hands.dm @@ -0,0 +1,10 @@ +/datum/quirk/bighands + name = "Big Hands" + desc = "You have big hands, it sure does make it hard to use a lot of things." + icon = FA_ICON_HAND_DOTS + value = -6 + mob_trait = TRAIT_CHUNKYFINGERS + gain_text = span_danger("Your hands are huge! You can't use small things anymore!") + lose_text = span_notice("Your hands are back to normal.") + medical_record_text = "Patient has unusually large hands. Made me question my masculinity..." + hardcore_value = 5 diff --git a/code/datums/quirks/negative_quirks/blindness.dm b/code/datums/quirks/negative_quirks/blindness.dm new file mode 100644 index 000000000000..ce57e946fe92 --- /dev/null +++ b/code/datums/quirks/negative_quirks/blindness.dm @@ -0,0 +1,20 @@ +/datum/quirk/item_quirk/blindness + name = "Blind" + desc = "You are completely blind, nothing can counteract this." + icon = FA_ICON_EYE_SLASH + value = -16 + gain_text = span_danger("You can't see anything.") + lose_text = span_notice("You miraculously gain back your vision.") + medical_record_text = "Patient has permanent blindness." + hardcore_value = 15 + quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_CHANGES_APPEARANCE + mail_goodies = list(/obj/item/clothing/glasses/sunglasses, /obj/item/cane/white) + +/datum/quirk/item_quirk/blindness/add_unique(client/client_source) + give_item_to_holder(/obj/item/clothing/glasses/blindfold/white, list(LOCATION_EYES = ITEM_SLOT_EYES, LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, LOCATION_HANDS = ITEM_SLOT_HANDS)) + +/datum/quirk/item_quirk/blindness/add(client/client_source) + quirk_holder.become_blind(QUIRK_TRAIT) + +/datum/quirk/item_quirk/blindness/remove() + quirk_holder.cure_blind(QUIRK_TRAIT) diff --git a/code/datums/quirks/negative_quirks/blood_deficiency.dm b/code/datums/quirks/negative_quirks/blood_deficiency.dm new file mode 100644 index 000000000000..a2b0553f8cc6 --- /dev/null +++ b/code/datums/quirks/negative_quirks/blood_deficiency.dm @@ -0,0 +1,52 @@ +/datum/quirk/blooddeficiency + name = "Blood Deficiency" + desc = "Your body can't produce enough blood to sustain itself." + icon = FA_ICON_TINT + value = -8 + mob_trait = TRAIT_BLOOD_DEFICIENCY + gain_text = span_danger("You feel your vigor slowly fading away.") + lose_text = span_notice("You feel vigorous again.") + medical_record_text = "Patient requires regular treatment for blood loss due to low production of blood." + hardcore_value = 8 + quirk_flags = QUIRK_HUMAN_ONLY + mail_goodies = list(/obj/item/reagent_containers/blood/o_minus) // universal blood type that is safe for all + var/min_blood = BLOOD_VOLUME_SAFE - 25 // just barely survivable without treatment + +/datum/quirk/blooddeficiency/post_add() + update_mail() + +/datum/quirk/blooddeficiency/add(client/client_source) + . = ..() + RegisterSignal(quirk_holder, COMSIG_HUMAN_ON_HANDLE_BLOOD, PROC_REF(lose_blood)) + RegisterSignal(quirk_holder, COMSIG_SPECIES_GAIN, PROC_REF(update_mail)) + +/datum/quirk/blooddeficiency/remove() + . = ..() + UnregisterSignal(quirk_holder, COMSIG_HUMAN_ON_HANDLE_BLOOD) + UnregisterSignal(quirk_holder, COMSIG_SPECIES_GAIN) + +/datum/quirk/blooddeficiency/proc/lose_blood(mob/living/carbon/human/draining, seconds_per_tick, times_fired) + SIGNAL_HANDLER + if(quirk_holder.stat == DEAD || quirk_holder.blood_volume <= min_blood) + return + + // Ensures that we don't reduce total blood volume below min_blood. + draining.blood_volume = max(min_blood, draining.blood_volume - draining.dna.species.blood_deficiency_drain_rate * seconds_per_tick) + +/datum/quirk/blooddeficiency/proc/update_mail(datum/source, datum/species/new_species, datum/species/old_species) + SIGNAL_HANDLER + + mail_goodies.Cut() + + var/datum/blood_type/new_type = quirk_holder.get_blood_type() + if(isnull(new_type)) + return + + if(istype(new_type, /datum/blood_type/crew/human)) + mail_goodies += /obj/item/reagent_containers/blood/o_minus + return + + for(var/obj/item/reagent_containers/blood/blood_bag as anything in typesof(/obj/item/reagent_containers/blood)) + if(initial(blood_bag.blood_type) == new_type.type) + mail_goodies += blood_bag + break diff --git a/code/datums/quirks/negative_quirks/body_purist.dm b/code/datums/quirks/negative_quirks/body_purist.dm new file mode 100644 index 000000000000..9b1731b4fd87 --- /dev/null +++ b/code/datums/quirks/negative_quirks/body_purist.dm @@ -0,0 +1,69 @@ +/datum/quirk/body_purist + name = "Body Purist" + desc = "You believe your body is a temple and its natural form is an embodiment of perfection. Accordingly, you despise the idea of ever augmenting it with unnatural parts, cybernetic, prosthetic, or anything like it." + icon = FA_ICON_PERSON_RAYS + value = -2 + quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_MOODLET_BASED + gain_text = span_danger("You now begin to hate the idea of having cybernetic implants.") + lose_text = span_notice("Maybe cybernetics aren't so bad. You now feel okay with augmentations and prosthetics.") + medical_record_text = "This patient has disclosed an extreme hatred for unnatural bodyparts and augmentations." + hardcore_value = 3 + mail_goodies = list(/obj/item/paper/pamphlet/cybernetics) + var/cybernetics_level = 0 + +/datum/quirk/body_purist/add(client/client_source) + check_cybernetics() + RegisterSignal(quirk_holder, COMSIG_CARBON_GAIN_ORGAN, PROC_REF(on_organ_gain)) + RegisterSignal(quirk_holder, COMSIG_CARBON_LOSE_ORGAN, PROC_REF(on_organ_lose)) + RegisterSignal(quirk_holder, COMSIG_CARBON_ATTACH_LIMB, PROC_REF(on_limb_gain)) + RegisterSignal(quirk_holder, COMSIG_CARBON_REMOVE_LIMB, PROC_REF(on_limb_lose)) + +/datum/quirk/body_purist/remove() + UnregisterSignal(quirk_holder, list( + COMSIG_CARBON_GAIN_ORGAN, + COMSIG_CARBON_LOSE_ORGAN, + COMSIG_CARBON_ATTACH_LIMB, + COMSIG_CARBON_REMOVE_LIMB, + )) + quirk_holder.clear_mood_event("body_purist") + +/datum/quirk/body_purist/proc/check_cybernetics() + var/mob/living/carbon/owner = quirk_holder + if(!istype(owner)) + return + for(var/obj/item/bodypart/limb as anything in owner.bodyparts) + if(!IS_ORGANIC_LIMB(limb)) + cybernetics_level++ + for(var/obj/item/organ/organ as anything in owner.organs) + if((organ.organ_flags & ORGAN_SYNTHETIC || organ.status == ORGAN_ROBOTIC) && !(organ.organ_flags & ORGAN_HIDDEN)) + cybernetics_level++ + update_mood() + +/datum/quirk/body_purist/proc/update_mood() + quirk_holder.clear_mood_event("body_purist") + if(cybernetics_level) + quirk_holder.add_mood_event("body_purist", /datum/mood_event/body_purist, -cybernetics_level * 10) + +/datum/quirk/body_purist/proc/on_organ_gain(datum/source, obj/item/organ/new_organ, special) + SIGNAL_HANDLER + if((new_organ.organ_flags & ORGAN_SYNTHETIC || new_organ.status == ORGAN_ROBOTIC) && !(new_organ.organ_flags & ORGAN_HIDDEN)) //why the fuck are there 2 of them + cybernetics_level++ + update_mood() + +/datum/quirk/body_purist/proc/on_organ_lose(datum/source, obj/item/organ/old_organ, special) + SIGNAL_HANDLER + if((old_organ.organ_flags & ORGAN_SYNTHETIC || old_organ.status == ORGAN_ROBOTIC) && !(old_organ.organ_flags & ORGAN_HIDDEN)) + cybernetics_level-- + update_mood() + +/datum/quirk/body_purist/proc/on_limb_gain(datum/source, obj/item/bodypart/new_limb, special) + SIGNAL_HANDLER + if(!IS_ORGANIC_LIMB(new_limb)) + cybernetics_level++ + update_mood() + +/datum/quirk/body_purist/proc/on_limb_lose(datum/source, obj/item/bodypart/old_limb, special) + SIGNAL_HANDLER + if(!IS_ORGANIC_LIMB(old_limb)) + cybernetics_level-- + update_mood() diff --git a/code/datums/quirks/negative_quirks/brain_problems.dm b/code/datums/quirks/negative_quirks/brain_problems.dm new file mode 100644 index 000000000000..15cc0128020c --- /dev/null +++ b/code/datums/quirks/negative_quirks/brain_problems.dm @@ -0,0 +1,37 @@ + /* A couple of brain tumor stats for anyone curious / looking at this quirk for balancing: + * - It takes less 16 minute 40 seconds to die from brain death due to a brain tumor. + * - It takes 1 minutes 40 seconds to take 10% (20 organ damage) brain damage. + * - 5u mannitol will heal 12.5% (25 organ damage) brain damage + */ +/datum/quirk/item_quirk/brainproblems + name = "Brain Tumor" + desc = "You have a little friend in your brain that is slowly destroying it. Better bring some mannitol!" + icon = FA_ICON_BRAIN + value = -12 + gain_text = span_danger("You feel smooth.") + lose_text = span_notice("You feel wrinkled again.") + medical_record_text = "Patient has a tumor in their brain that is slowly driving them to brain death." + hardcore_value = 12 + quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_PROCESSES + mail_goodies = list(/obj/item/storage/pill_bottle/mannitol/braintumor) + +/datum/quirk/item_quirk/brainproblems/add_unique(client/client_source) + give_item_to_holder( + /obj/item/storage/pill_bottle/mannitol/braintumor, + list( + LOCATION_LPOCKET = ITEM_SLOT_LPOCKET, + LOCATION_RPOCKET = ITEM_SLOT_RPOCKET, + LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, + LOCATION_HANDS = ITEM_SLOT_HANDS, + ), + flavour_text = "These will keep you alive until you can secure a supply of medication. Don't rely on them too much!", + ) + +/datum/quirk/item_quirk/brainproblems/process(seconds_per_tick) + if(quirk_holder.stat == DEAD) + return + + if(HAS_TRAIT(quirk_holder, TRAIT_TUMOR_SUPPRESSED)) + return + + quirk_holder.adjustOrganLoss(ORGAN_SLOT_BRAIN, 0.2 * seconds_per_tick) diff --git a/code/datums/quirks/negative_quirks/chronic_illness.dm b/code/datums/quirks/negative_quirks/chronic_illness.dm new file mode 100644 index 000000000000..2419f1b89909 --- /dev/null +++ b/code/datums/quirks/negative_quirks/chronic_illness.dm @@ -0,0 +1,17 @@ +/* /datum/quirk/item_quirk/chronic_illness - monkestation disabled for now + name = "Chronic Illness" + desc = "You have a chronic illness that requires constant medication to keep under control." + icon = FA_ICON_DISEASE + value = -12 + gain_text = span_danger("You feel a bit off today.") + lose_text = span_notice("You feel a bit better today.") + medical_record_text = "Patient has a chronic illness that requires constant medication to keep under control." + hardcore_value = 12 + mail_goodies = list(/obj/item/storage/pill_bottle/sansufentanyl) + +/datum/quirk/item_quirk/chronic_illness/add_unique(client/client_source) + var/datum/disease/chronic_illness/hms = new /datum/disease/chronic_illness() + quirk_holder.ForceContractDisease(hms) + give_item_to_holder(/obj/item/storage/pill_bottle/sansufentanyl, list(LOCATION_BACKPACK = ITEM_SLOT_BACKPACK),flavour_text = "You've been provided with medication to help manage your condition. Take it regularly to avoid complications.") + give_item_to_holder(/obj/item/healthanalyzer/simple/disease, list(LOCATION_BACKPACK = ITEM_SLOT_BACKPACK)) + */ diff --git a/code/datums/quirks/negative_quirks/claustrophobia.dm b/code/datums/quirks/negative_quirks/claustrophobia.dm new file mode 100644 index 000000000000..e0207d227dd3 --- /dev/null +++ b/code/datums/quirks/negative_quirks/claustrophobia.dm @@ -0,0 +1,54 @@ +/datum/quirk/claustrophobia + name = "Claustrophobia" + desc = "You are terrified of small spaces and certain jolly figures. If you are placed inside any container, locker, or machinery, a panic attack sets in and you struggle to breathe." + icon = FA_ICON_BOX_OPEN + value = -4 + medical_record_text = "Patient demonstrates a fear of tight spaces." + hardcore_value = 5 + quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_PROCESSES + mail_goodies = list(/obj/item/reagent_containers/syringe/convermol) // to help breathing + +/datum/quirk/claustrophobia/remove() + quirk_holder.clear_mood_event("claustrophobia") + +/datum/quirk/claustrophobia/process(seconds_per_tick) + if(quirk_holder.stat != CONSCIOUS || quirk_holder.IsSleeping() || quirk_holder.IsUnconscious()) + return + + if(HAS_TRAIT(quirk_holder, TRAIT_FEARLESS)) + return + + var/nick_spotted = FALSE + + for(var/mob/living/carbon/human/possible_claus in view(5, quirk_holder)) + if(evaluate_jolly_levels(possible_claus)) + nick_spotted = TRUE + break + + if(!nick_spotted && isturf(quirk_holder.loc)) + quirk_holder.clear_mood_event("claustrophobia") + return + + quirk_holder.add_mood_event("claustrophobia", /datum/mood_event/claustrophobia) + quirk_holder.losebreath += 0.25 // miss a breath one in four times + if(SPT_PROB(25, seconds_per_tick)) + if(nick_spotted) + to_chat(quirk_holder, span_warning("Santa Claus is here! I gotta get out of here!")) + else + to_chat(quirk_holder, span_warning("You feel trapped! Must escape... can't breathe...")) + +///investigates whether possible_saint_nick possesses a high level of christmas cheer +/datum/quirk/claustrophobia/proc/evaluate_jolly_levels(mob/living/carbon/human/possible_saint_nick) + if(!istype(possible_saint_nick)) + return FALSE + + if(istype(possible_saint_nick.back, /obj/item/storage/backpack/santabag)) + return TRUE + + if(istype(possible_saint_nick.head, /obj/item/clothing/head/costume/santa) || istype(possible_saint_nick.head, /obj/item/clothing/head/helmet/space/santahat)) + return TRUE + + if(istype(possible_saint_nick.wear_suit, /obj/item/clothing/suit/space/santa)) + return TRUE + + return FALSE diff --git a/code/datums/quirks/negative_quirks/clumsy.dm b/code/datums/quirks/negative_quirks/clumsy.dm new file mode 100644 index 000000000000..8cf363753d4b --- /dev/null +++ b/code/datums/quirks/negative_quirks/clumsy.dm @@ -0,0 +1,9 @@ +/datum/quirk/clumsy + name = "Clumsy" + desc = "You're clumsy, a goofball, a silly dude. You big loveable himbo/bimbo you! Hope you weren't planning on using your hands for anything that takes even a LICK of dexterity." + icon = FA_ICON_FACE_DIZZY + value = -8 + mob_trait = TRAIT_CLUMSY + gain_text = span_danger("You feel your IQ sink like your brain is liquid.") + lose_text = span_notice("You feel like your IQ went up to at least average.") + medical_record_text = "Patient has demonstrated an extreme difficulty with high motor skill paired with an inability to demonstrate critical thinking." diff --git a/code/datums/quirks/negative_quirks/cursed.dm b/code/datums/quirks/negative_quirks/cursed.dm new file mode 100644 index 000000000000..f58d31be28e4 --- /dev/null +++ b/code/datums/quirks/negative_quirks/cursed.dm @@ -0,0 +1,13 @@ +/datum/quirk/cursed + name = "Cursed" + desc = "You are cursed with bad luck. You are much more likely to suffer from accidents and mishaps. When it rains, it pours." + icon = FA_ICON_CLOUD_SHOWERS_HEAVY + value = -8 + mob_trait = TRAIT_CURSED + gain_text = span_danger("You feel like you're going to have a bad day.") + lose_text = span_notice("You feel like you're going to have a good day.") + medical_record_text = "Patient is cursed with bad luck." + hardcore_value = 8 + +/datum/quirk/cursed/add(client/client_source) + quirk_holder.AddComponent(/datum/component/omen/quirk) diff --git a/code/datums/quirks/negative_quirks/deafness.dm b/code/datums/quirks/negative_quirks/deafness.dm new file mode 100644 index 000000000000..077bbe72aa5c --- /dev/null +++ b/code/datums/quirks/negative_quirks/deafness.dm @@ -0,0 +1,14 @@ +/datum/quirk/item_quirk/deafness + name = "Deaf" + desc = "You are incurably deaf." + icon = FA_ICON_DEAF + value = -8 + mob_trait = TRAIT_DEAF + gain_text = span_danger("You can't hear anything.") + lose_text = span_notice("You're able to hear again!") + medical_record_text = "Patient's cochlear nerve is incurably damaged." + hardcore_value = 12 + mail_goodies = list(/obj/item/clothing/mask/whistle) + +/datum/quirk/item_quirk/deafness/add_unique(client/client_source) + give_item_to_holder(/obj/item/clothing/accessory/deaf_pin, list(LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, LOCATION_HANDS = ITEM_SLOT_HANDS)) diff --git a/code/datums/quirks/negative_quirks/depression.dm b/code/datums/quirks/negative_quirks/depression.dm new file mode 100644 index 000000000000..0bf155161058 --- /dev/null +++ b/code/datums/quirks/negative_quirks/depression.dm @@ -0,0 +1,12 @@ +/datum/quirk/depression + name = "Depression" + desc = "You sometimes just hate life." + icon = FA_ICON_FROWN + mob_trait = TRAIT_DEPRESSION + value = -3 + gain_text = span_danger("You start feeling depressed.") + lose_text = span_notice("You no longer feel depressed.") //if only it were that easy! + medical_record_text = "Patient has a mild mood disorder causing them to experience acute episodes of depression." + quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_MOODLET_BASED + hardcore_value = 2 + mail_goodies = list(/obj/item/storage/pill_bottle/happinesspsych) diff --git a/code/datums/quirks/negative_quirks/family_heirloom.dm b/code/datums/quirks/negative_quirks/family_heirloom.dm new file mode 100644 index 000000000000..6fa960f357ef --- /dev/null +++ b/code/datums/quirks/negative_quirks/family_heirloom.dm @@ -0,0 +1,78 @@ +/datum/quirk/item_quirk/family_heirloom + name = "Family Heirloom" + desc = "You are the current owner of an heirloom, passed down for generations. You have to keep it safe!" + icon = FA_ICON_TOOLBOX + value = -2 + medical_record_text = "Patient demonstrates an unnatural attachment to a family heirloom." + hardcore_value = 1 + quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_PROCESSES|QUIRK_MOODLET_BASED + /// A weak reference to our heirloom. + var/datum/weakref/heirloom + mail_goodies = list(/obj/item/storage/secure/briefcase) + +/datum/quirk/item_quirk/family_heirloom/add_unique(client/client_source) + var/mob/living/carbon/human/human_holder = quirk_holder + var/obj/item/heirloom_type + + // The quirk holder's species - we have a 50% chance, if we have a species with a set heirloom, to choose a species heirloom. + var/datum/species/holder_species = human_holder.dna?.species + if(holder_species && LAZYLEN(holder_species.family_heirlooms) && prob(50)) + heirloom_type = pick(holder_species.family_heirlooms) + else + // Our quirk holder's job + var/datum/job/holder_job = human_holder.last_mind?.assigned_role + if(holder_job && LAZYLEN(holder_job.family_heirlooms)) + heirloom_type = pick(holder_job.family_heirlooms) + + // If we didn't find an heirloom somehow, throw them a generic one + if(!heirloom_type) + heirloom_type = pick(/obj/item/toy/cards/deck, /obj/item/lighter, /obj/item/dice/d20) + + var/obj/new_heirloom = new heirloom_type(get_turf(human_holder)) + heirloom = WEAKREF(new_heirloom) + + give_item_to_holder( + new_heirloom, + list( + LOCATION_LPOCKET = ITEM_SLOT_LPOCKET, + LOCATION_RPOCKET = ITEM_SLOT_RPOCKET, + LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, + LOCATION_HANDS = ITEM_SLOT_HANDS, + ), + flavour_text = "This is a precious family heirloom, passed down from generation to generation. Keep it safe!", + ) + +/datum/quirk/item_quirk/family_heirloom/post_add() + var/list/names = splittext(quirk_holder.real_name, " ") + var/family_name = names[names.len] + + var/obj/family_heirloom = heirloom?.resolve() + if(!family_heirloom) + to_chat(quirk_holder, span_boldnotice("A wave of existential dread runs over you as you realize your precious family heirloom is missing. Perhaps the Gods will show mercy on your cursed soul?")) + return + family_heirloom.AddComponent(/datum/component/heirloom, quirk_holder.mind, family_name) + + return ..() + +/datum/quirk/item_quirk/family_heirloom/process() + if(quirk_holder.stat == DEAD) + return + + var/obj/family_heirloom = heirloom?.resolve() + + if(family_heirloom && (family_heirloom in quirk_holder.get_all_contents())) + quirk_holder.clear_mood_event("family_heirloom_missing") + quirk_holder.add_mood_event("family_heirloom", /datum/mood_event/family_heirloom) + else + quirk_holder.clear_mood_event("family_heirloom") + quirk_holder.add_mood_event("family_heirloom_missing", /datum/mood_event/family_heirloom_missing) + +/datum/quirk/item_quirk/family_heirloom/remove() + quirk_holder.clear_mood_event("family_heirloom_missing") + quirk_holder.clear_mood_event("family_heirloom") + +/datum/quirk/item_quirk/family_heirloom/clone_data() + return heirloom + +/datum/quirk/item_quirk/family_heirloom/on_clone(data) + heirloom = data diff --git a/code/datums/quirks/negative_quirks/frail.dm b/code/datums/quirks/negative_quirks/frail.dm new file mode 100644 index 000000000000..6b806875ea24 --- /dev/null +++ b/code/datums/quirks/negative_quirks/frail.dm @@ -0,0 +1,11 @@ +/datum/quirk/frail + name = "Frail" + desc = "You have skin of paper and bones of glass! You suffer wounds much more easily than most." + icon = FA_ICON_SKULL + value = -6 + mob_trait = TRAIT_EASILY_WOUNDED + gain_text = span_danger("You feel frail.") + lose_text = span_notice("You feel sturdy again.") + medical_record_text = "Patient is absurdly easy to injure. Please take all due diligence to avoid possible malpractice suits." + hardcore_value = 4 + mail_goodies = list(/obj/effect/spawner/random/medical/minor_healing) diff --git a/code/datums/quirks/negative_quirks/glass_jaw.dm b/code/datums/quirks/negative_quirks/glass_jaw.dm new file mode 100644 index 000000000000..34738cdac1bd --- /dev/null +++ b/code/datums/quirks/negative_quirks/glass_jaw.dm @@ -0,0 +1,52 @@ +/datum/quirk/glass_jaw + name = "Glass Jaw" + desc = "You have a very fragile jaw. Any sufficiently hard blow to your head might knock you out." + icon = FA_ICON_HAND_FIST + value = -4 + gain_text = span_danger("Your jaw feels loose.") + lose_text = span_notice("Your jaw feels fitting again.") + medical_record_text = "Patient is absurdly easy to knock out. Do not allow them near a boxing ring." + hardcore_value = 4 + mail_goodies = list( + /obj/item/clothing/gloves/boxing, + /obj/item/clothing/mask/luchador/rudos, + ) + +/datum/quirk/glass_jaw/New() + . = ..() + //randomly picks between blue or red equipment for goodies + if(prob(50)) + mail_goodies = list( + /obj/item/clothing/gloves/boxing, + /obj/item/clothing/mask/luchador/rudos, + ) + else + mail_goodies = list( + /obj/item/clothing/gloves/boxing/blue, + /obj/item/clothing/mask/luchador/tecnicos, + ) + +/datum/quirk/glass_jaw/add(client/client_source) + RegisterSignal(quirk_holder, COMSIG_MOB_APPLY_DAMAGE, PROC_REF(punch_out)) + +/datum/quirk/glass_jaw/remove() + UnregisterSignal(quirk_holder, COMSIG_MOB_APPLY_DAMAGE) + +/datum/quirk/glass_jaw/proc/punch_out(mob/living/carbon/source, damage, damagetype, def_zone, blocked, wound_bonus, bare_wound_bonus, sharpness, attack_direction) + SIGNAL_HANDLER + if((damagetype != BRUTE) || (def_zone != BODY_ZONE_HEAD)) + return + var/actual_damage = damage - (damage * blocked/100) + //only roll for knockouts at 5 damage or more + if(actual_damage < 5) + return + //blunt items are more likely to knock out, but sharp ones are still capable of doing it + if(prob(CEILING(actual_damage * (sharpness & (SHARP_EDGED|SHARP_POINTY) ? 0.65 : 1), 1))) + //don't display the message if little mac is already KO'd + if(!source.IsUnconscious()) + source.visible_message( + span_warning("[source] gets knocked out!"), + span_userdanger("You get knocked out!"), + vision_distance = COMBAT_MESSAGE_RANGE, + ) + source.Unconscious(3 SECONDS) diff --git a/code/datums/quirks/negative_quirks/heavy_sleeper.dm b/code/datums/quirks/negative_quirks/heavy_sleeper.dm new file mode 100644 index 000000000000..dea79683915b --- /dev/null +++ b/code/datums/quirks/negative_quirks/heavy_sleeper.dm @@ -0,0 +1,19 @@ +/datum/quirk/heavy_sleeper + name = "Heavy Sleeper" + desc = "You sleep like a rock! Whenever you're put to sleep or knocked unconscious, you take a little bit longer to wake up." + icon = FA_ICON_BED + value = -2 + mob_trait = TRAIT_HEAVY_SLEEPER + gain_text = span_danger("You feel sleepy.") + lose_text = span_notice("You feel awake again.") + medical_record_text = "Patient has abnormal sleep study results and is difficult to wake up." + hardcore_value = 2 + mail_goodies = list( + /obj/item/clothing/glasses/blindfold, + /obj/item/bedsheet/random, + /obj/item/clothing/under/misc/pj/red, + /obj/item/clothing/head/costume/nightcap/red, + /obj/item/clothing/under/misc/pj/blue, + /obj/item/clothing/head/costume/nightcap/blue, + /obj/item/pillow/random, + ) diff --git a/code/datums/quirks/negative_quirks/hemiplegic.dm b/code/datums/quirks/negative_quirks/hemiplegic.dm new file mode 100644 index 000000000000..ee01c00d53e6 --- /dev/null +++ b/code/datums/quirks/negative_quirks/hemiplegic.dm @@ -0,0 +1,23 @@ +/* /datum/quirk/hemiplegic - monkestation disabled for now + name = "Hemiplegic" + desc = "Half of your body doesn't work. Nothing will ever fix this." + icon = FA_ICON_CIRCLE_HALF_STROKE + value = -10 // slightly more bearable than paraplegic but not by much + gain_text = null // Handled by trauma. + lose_text = null + medical_record_text = "Patient has an untreatable impairment in motor function on half of their body." + hardcore_value = 10 + mail_goodies = list( + /obj/item/stack/sheet/mineral/uranium/half, //half a stack of a material that has a half life + /obj/item/reagent_containers/cup/glass/drinkingglass/filled/half_full, + ) + +/datum/quirk/hemiplegic/add(client/client_source) + var/mob/living/carbon/human/human_holder = quirk_holder + var/trauma_type = pick(/datum/brain_trauma/severe/paralysis/hemiplegic/left, /datum/brain_trauma/severe/paralysis/hemiplegic/right) + human_holder.gain_trauma(trauma_type, TRAUMA_RESILIENCE_ABSOLUTE) + +/datum/quirk/hemiplegic/remove() + var/mob/living/carbon/human/human_holder = quirk_holder + human_holder.cure_trauma_type(/datum/brain_trauma/severe/paralysis/hemiplegic, TRAUMA_RESILIENCE_ABSOLUTE) + */ diff --git a/code/datums/quirks/negative_quirks/hypersensitive.dm b/code/datums/quirks/negative_quirks/hypersensitive.dm new file mode 100644 index 000000000000..f51e72fc2560 --- /dev/null +++ b/code/datums/quirks/negative_quirks/hypersensitive.dm @@ -0,0 +1,18 @@ +/datum/quirk/hypersensitive + name = "Hypersensitive" + desc = "For better or worse, everything seems to affect your mood more than it should." + icon = FA_ICON_FLUSHED + value = -2 + gain_text = span_danger("You seem to make a big deal out of everything.") + lose_text = span_notice("You don't seem to make a big deal out of everything anymore.") + medical_record_text = "Patient demonstrates a high level of emotional volatility." + hardcore_value = 3 + mail_goodies = list(/obj/effect/spawner/random/entertainment/plushie_delux) + +/datum/quirk/hypersensitive/add(client/client_source) + if (quirk_holder.mob_mood) + quirk_holder.mob_mood.mood_modifier += 0.5 + +/datum/quirk/hypersensitive/remove() + if (quirk_holder.mob_mood) + quirk_holder.mob_mood.mood_modifier -= 0.5 diff --git a/code/datums/quirks/negative_quirks/illiterate.dm b/code/datums/quirks/negative_quirks/illiterate.dm new file mode 100644 index 000000000000..8101985f8f7e --- /dev/null +++ b/code/datums/quirks/negative_quirks/illiterate.dm @@ -0,0 +1,9 @@ +/datum/quirk/illiterate + name = "Illiterate" + desc = "You dropped out of school and are unable to read or write. This affects reading, writing, using computers and other electronics." + icon = FA_ICON_GRADUATION_CAP + value = -8 + mob_trait = TRAIT_ILLITERATE + medical_record_text = "Patient is not literate." + hardcore_value = 8 + mail_goodies = list(/obj/item/pai_card) // can read things for you diff --git a/code/datums/quirks/negative_quirks/indebted.dm b/code/datums/quirks/negative_quirks/indebted.dm new file mode 100644 index 000000000000..1e30e7800d6d --- /dev/null +++ b/code/datums/quirks/negative_quirks/indebted.dm @@ -0,0 +1,40 @@ +/datum/quirk/indebted + name = "Indebted" + desc = "Bad life decisions, medical bills, student loans, whatever it may be, you've incurred quite the debt. A portion of all you receive will go towards extinguishing it." + icon = FA_ICON_DOLLAR + quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_HIDE_FROM_SCAN + value = -2 + medical_record_text = "Alas, the patient struggled to scrape together enough money to pay the checkup bill." + hardcore_value = 2 + +/datum/quirk/indebted/add_unique(client/client_source) + var/mob/living/carbon/human/human_holder = quirk_holder + if(!human_holder.account_id) + return + var/datum/bank_account/account = SSeconomy.bank_accounts_by_id["[human_holder.account_id]"] + var/debt = PAYCHECK_CREW * rand(275, 325) + account.account_debt += debt + RegisterSignal(account, COMSIG_BANK_ACCOUNT_DEBT_PAID, PROC_REF(on_debt_paid)) + to_chat(client_source.mob, span_warning("You remember, you've a hefty, [debt] credits debt to pay...")) + +///Once the debt is extinguished, award an achievement and a pin for actually taking care of it. +/datum/quirk/indebted/proc/on_debt_paid(datum/bank_account/source) + SIGNAL_HANDLER + if(source.account_debt) + return + UnregisterSignal(source, COMSIG_BANK_ACCOUNT_DEBT_PAID) + ///The debt was extinguished while the quirk holder was logged out, so let's kindly award it once they come back. + if(!quirk_holder.client) + RegisterSignal(quirk_holder, COMSIG_MOB_LOGIN, PROC_REF(award_on_login)) + else + quirk_holder.client.give_award(/datum/award/achievement/misc/debt_extinguished, quirk_holder) + podspawn(list( + "target" = get_turf(quirk_holder), + "style" = STYLE_BLUESPACE, + "spawn" = /obj/item/clothing/accessory/debt_payer_pin, + )) + +/datum/quirk/indebted/proc/award_on_login(mob/source) + SIGNAL_HANDLER + quirk_holder.client.give_award(/datum/award/achievement/misc/debt_extinguished, quirk_holder) + UnregisterSignal(source, COMSIG_MOB_LOGIN) diff --git a/code/datums/quirks/negative_quirks/insanity.dm b/code/datums/quirks/negative_quirks/insanity.dm new file mode 100644 index 000000000000..56b56a538121 --- /dev/null +++ b/code/datums/quirks/negative_quirks/insanity.dm @@ -0,0 +1,41 @@ +/datum/quirk/insanity + name = "Reality Dissociation Syndrome" + desc = "You suffer from a severe disorder that causes very vivid hallucinations. \ + Mindbreaker toxin can suppress its effects, and you are immune to mindbreaker's hallucinogenic properties. \ + THIS IS NOT A LICENSE TO GRIEF." + icon = FA_ICON_GRIN_TONGUE_WINK + value = -8 + gain_text = span_userdanger("...") + lose_text = span_notice("You feel in tune with the world again.") + medical_record_text = "Patient suffers from acute Reality Dissociation Syndrome and experiences vivid hallucinations." + hardcore_value = 6 + mail_goodies = list(/obj/item/storage/pill_bottle/lsdpsych) + /// Weakref to the trauma we give out + var/datum/weakref/added_trama_ref + +/datum/quirk/insanity/add(client/client_source) + if(!iscarbon(quirk_holder)) + return + var/mob/living/carbon/carbon_quirk_holder = quirk_holder + + // Setup our special RDS mild hallucination. + // Not a unique subtype so not to plague subtypesof, + // also as we inherit the names and values from our quirk. + var/datum/brain_trauma/mild/hallucinations/added_trauma = new() + added_trauma.resilience = TRAUMA_RESILIENCE_ABSOLUTE + added_trauma.name = name + added_trauma.desc = medical_record_text + added_trauma.scan_desc = lowertext(name) + added_trauma.gain_text = null + added_trauma.lose_text = null + + carbon_quirk_holder.gain_trauma(added_trauma) + added_trama_ref = WEAKREF(added_trauma) + +/datum/quirk/insanity/post_add() + var/rds_policy = get_policy("[type]") || "Please note that your [lowertext(name)] does NOT give you any additional right to attack people or cause chaos." + // I don't /think/ we'll need this, but for newbies who think "roleplay as insane" = "license to kill", it's probably a good thing to have. + to_chat(quirk_holder, span_big(span_info(rds_policy))) + +/datum/quirk/insanity/remove() + QDEL_NULL(added_trama_ref) diff --git a/code/datums/quirks/negative_quirks/junkie.dm b/code/datums/quirks/negative_quirks/junkie.dm new file mode 100644 index 000000000000..879b37154260 --- /dev/null +++ b/code/datums/quirks/negative_quirks/junkie.dm @@ -0,0 +1,217 @@ +/datum/quirk/item_quirk/junkie + name = "Junkie" + desc = "You can't get enough of hard drugs." + icon = FA_ICON_PILLS + value = -6 + gain_text = span_danger("You suddenly feel the craving for drugs.") + medical_record_text = "Patient has a history of hard drugs." + hardcore_value = 4 + quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_PROCESSES + mail_goodies = list(/obj/effect/spawner/random/contraband/narcotics) + var/drug_list = list(/datum/reagent/drug/blastoff, /datum/reagent/drug/krokodil, /datum/reagent/medicine/painkiller/morphine, /datum/reagent/drug/happiness, /datum/reagent/drug/methamphetamine) //List of possible IDs + var/datum/reagent/reagent_type //!If this is defined, reagent_id will be unused and the defined reagent type will be instead. + var/datum/reagent/reagent_instance //! actual instanced version of the reagent + var/where_drug //! Where the drug spawned + var/obj/item/drug_container_type //! If this is defined before pill generation, pill generation will be skipped. This is the type of the pill bottle. + var/where_accessory //! where the accessory spawned + var/obj/item/accessory_type //! If this is null, an accessory won't be spawned. + var/process_interval = 30 SECONDS //! how frequently the quirk processes + var/next_process = 0 //! ticker for processing + var/drug_flavour_text = "Better hope you don't run out..." + +/datum/quirk/item_quirk/junkie/add_unique(client/client_source) + var/mob/living/carbon/human/human_holder = quirk_holder + + if(!reagent_type) + reagent_type = pick(drug_list) + + reagent_instance = new reagent_type() + + for(var/addiction in reagent_instance.addiction_types) + human_holder.last_mind?.add_addiction_points(addiction, 1000) + + var/current_turf = get_turf(quirk_holder) + + if(!drug_container_type) + drug_container_type = /obj/item/storage/pill_bottle + + var/obj/item/drug_instance = new drug_container_type(current_turf) + if(istype(drug_instance, /obj/item/storage/pill_bottle)) + var/pill_state = "pill[rand(1,20)]" + for(var/i in 1 to 7) + var/obj/item/reagent_containers/pill/pill = new(drug_instance) + pill.icon_state = pill_state + pill.reagents.add_reagent(reagent_type, 3) + + give_item_to_holder( + drug_instance, + list( + LOCATION_LPOCKET = ITEM_SLOT_LPOCKET, + LOCATION_RPOCKET = ITEM_SLOT_RPOCKET, + LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, + LOCATION_HANDS = ITEM_SLOT_HANDS, + ), + flavour_text = drug_flavour_text, + ) + + if(accessory_type) + give_item_to_holder( + accessory_type, + list( + LOCATION_LPOCKET = ITEM_SLOT_LPOCKET, + LOCATION_RPOCKET = ITEM_SLOT_RPOCKET, + LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, + LOCATION_HANDS = ITEM_SLOT_HANDS, + ) + ) + +/datum/quirk/item_quirk/junkie/remove() + if(quirk_holder && reagent_instance) + for(var/addiction_type in subtypesof(/datum/addiction)) + quirk_holder.mind.remove_addiction_points(addiction_type, MAX_ADDICTION_POINTS) + +/datum/quirk/item_quirk/junkie/process(seconds_per_tick) + if(HAS_TRAIT(quirk_holder, TRAIT_LIVERLESS_METABOLISM)) + return + var/mob/living/carbon/human/human_holder = quirk_holder + if(world.time > next_process) + next_process = world.time + process_interval + var/deleted = QDELETED(reagent_instance) + var/missing_addiction = FALSE + for(var/addiction_type in reagent_instance.addiction_types) + if(!LAZYACCESS(human_holder.last_mind?.active_addictions, addiction_type)) + missing_addiction = TRUE + if(deleted || missing_addiction) + if(deleted) + reagent_instance = new reagent_type() + to_chat(quirk_holder, span_danger("You thought you kicked it, but you feel like you're falling back onto bad habits..")) + for(var/addiction in reagent_instance.addiction_types) + human_holder.last_mind?.add_addiction_points(addiction, 1000) ///Max that shit out + +/datum/quirk/item_quirk/junkie/smoker + name = "Smoker" + desc = "Sometimes you just really want a smoke. Probably not great for your lungs." + icon = FA_ICON_SMOKING + value = -4 + gain_text = span_danger("You could really go for a smoke right about now.") + lose_text = span_notice("You don't feel nearly as hooked to nicotine anymore.") + medical_record_text = "Patient is a current smoker." + reagent_type = /datum/reagent/drug/nicotine + accessory_type = /obj/item/lighter/greyscale + mob_trait = TRAIT_SMOKER + hardcore_value = 1 + drug_flavour_text = "Make sure you get your favorite brand when you run out." + mail_goodies = list( + /obj/effect/spawner/random/entertainment/cigarette_pack, + /obj/effect/spawner/random/entertainment/cigar, + /obj/effect/spawner/random/entertainment/lighter, + /obj/item/clothing/mask/cigarette/pipe, + ) + +/datum/quirk/item_quirk/junkie/smoker/New() + drug_container_type = pick(/obj/item/storage/fancy/cigarettes, + /obj/item/storage/fancy/cigarettes/cigpack_midori, + /obj/item/storage/fancy/cigarettes/cigpack_uplift, + /obj/item/storage/fancy/cigarettes/cigpack_robust, + /obj/item/storage/fancy/cigarettes/cigpack_robustgold, + /obj/item/storage/fancy/cigarettes/cigpack_carp) + + return ..() + +/datum/quirk/item_quirk/junkie/smoker/post_add() + . = ..() + quirk_holder.add_mob_memory(/datum/memory/key/quirk_smoker, protagonist = quirk_holder, preferred_brand = initial(drug_container_type.name)) + // smoker lungs have 25% less health and healing + var/mob/living/carbon/carbon_holder = quirk_holder + var/obj/item/organ/internal/lungs/smoker_lungs = null + var/obj/item/organ/internal/lungs/old_lungs = carbon_holder.get_organ_slot(ORGAN_SLOT_LUNGS) + if(old_lungs && !(old_lungs.organ_flags & ORGAN_SYNTHETIC)) + if(isplasmaman(carbon_holder)) + smoker_lungs = /obj/item/organ/internal/lungs/plasmaman/plasmaman_smoker + else if(isethereal(carbon_holder)) + smoker_lungs = /obj/item/organ/internal/lungs/ethereal/ethereal_smoker + else + smoker_lungs = /obj/item/organ/internal/lungs/smoker_lungs + if(!isnull(smoker_lungs)) + smoker_lungs = new smoker_lungs + smoker_lungs.Insert(carbon_holder, special = TRUE, drop_if_replaced = FALSE) + +/datum/quirk/item_quirk/junkie/smoker/process(seconds_per_tick) + . = ..() + var/mob/living/carbon/human/human_holder = quirk_holder + var/obj/item/mask_item = human_holder.get_item_by_slot(ITEM_SLOT_MASK) + if(istype(mask_item, /obj/item/clothing/mask/cigarette)) + var/obj/item/storage/fancy/cigarettes/cigarettes = drug_container_type + if(istype(mask_item, initial(cigarettes.spawn_type))) + quirk_holder.clear_mood_event("wrong_cigs") + else + quirk_holder.add_mood_event("wrong_cigs", /datum/mood_event/wrong_brand) + +/* /datum/quirk/item_quirk/junkie/alcoholic - monkestation disabled for now + name = "Alcoholic" + desc = "You just can't live without alcohol. Your liver is a machine that turns ethanol into acetaldehyde." + icon = FA_ICON_WINE_GLASS + value = -4 + gain_text = span_danger("You really need a drink.") + lose_text = span_notice("Alcohol doesn't seem nearly as enticing anymore.") + medical_record_text = "Patient is an alcoholic." + reagent_type = /datum/reagent/consumable/ethanol + drug_container_type = /obj/item/reagent_containers/cup/glass/bottle/whiskey + mob_trait = TRAIT_HEAVY_DRINKER + hardcore_value = 1 + drug_flavour_text = "Make sure you get your favorite type of drink when you run out." + mail_goodies = list( + /obj/effect/spawner/random/food_or_drink/booze, + /obj/item/book/bible/booze, + ) + /// Cached typepath of the owner's favorite alcohol reagent + var/datum/reagent/consumable/ethanol/favorite_alcohol + +/datum/quirk/item_quirk/junkie/alcoholic/New() + drug_container_type = pick( + /obj/item/reagent_containers/cup/glass/bottle/whiskey, + /obj/item/reagent_containers/cup/glass/bottle/vodka, + /obj/item/reagent_containers/cup/glass/bottle/ale, + /obj/item/reagent_containers/cup/glass/bottle/beer, + /obj/item/reagent_containers/cup/glass/bottle/hcider, + /obj/item/reagent_containers/cup/glass/bottle/wine, + /obj/item/reagent_containers/cup/glass/bottle/sake, + ) + + return ..() + +/datum/quirk/item_quirk/junkie/alcoholic/post_add() + . = ..() + RegisterSignal(quirk_holder, COMSIG_MOB_REAGENT_CHECK, PROC_REF(check_brandy)) + + var/obj/item/reagent_containers/brandy_container = GLOB.alcohol_containers[drug_container_type] + if(isnull(brandy_container)) + stack_trace("Alcoholic quirk added while the GLOB.alcohol_containers is (somehow) not initialized!") + brandy_container = new drug_container_type + favorite_alcohol = brandy_container.list_reagents[1] + qdel(brandy_container) + else + favorite_alcohol = brandy_container.list_reagents[1] + + quirk_holder.add_mob_memory(/datum/memory/key/quirk_alcoholic, protagonist = quirk_holder, preferred_brandy = initial(favorite_alcohol.name)) + // alcoholic livers have 25% less health and healing + var/obj/item/organ/internal/liver/alcohol_liver = quirk_holder.get_organ_slot(ORGAN_SLOT_LIVER) + if(alcohol_liver && IS_ORGANIC_ORGAN(alcohol_liver)) // robotic livers aren't affected + alcohol_liver.maxHealth = alcohol_liver.maxHealth * 0.75 + alcohol_liver.healing_factor = alcohol_liver.healing_factor * 0.75 + +/datum/quirk/item_quirk/junkie/alcoholic/remove() + UnregisterSignal(quirk_holder, COMSIG_MOB_REAGENT_CHECK) + +/datum/quirk/item_quirk/junkie/alcoholic/proc/check_brandy(mob/source, datum/reagent/booze) + SIGNAL_HANDLER + + //we don't care if it is not alcohol + if(!istype(booze, /datum/reagent/consumable/ethanol)) + return + + if(istype(booze, favorite_alcohol)) + quirk_holder.clear_mood_event("wrong_alcohol") + else + quirk_holder.add_mood_event("wrong_alcohol", /datum/mood_event/wrong_brandy) + */ diff --git a/code/datums/quirks/negative_quirks/light_drinker.dm b/code/datums/quirks/negative_quirks/light_drinker.dm new file mode 100644 index 000000000000..5f82e2b9cd70 --- /dev/null +++ b/code/datums/quirks/negative_quirks/light_drinker.dm @@ -0,0 +1,11 @@ +/datum/quirk/light_drinker + name = "Light Drinker" + desc = "You just can't handle your drinks and get drunk very quickly." + icon = FA_ICON_COCKTAIL + value = -2 + mob_trait = TRAIT_LIGHT_DRINKER + gain_text = span_notice("Just the thought of drinking alcohol makes your head spin.") + lose_text = span_danger("You're no longer severely affected by alcohol.") + medical_record_text = "Patient demonstrates a low tolerance for alcohol. (Wimp)" + hardcore_value = 3 + mail_goodies = list(/obj/item/reagent_containers/cup/glass/waterbottle) diff --git a/code/datums/quirks/negative_quirks/mute.dm b/code/datums/quirks/negative_quirks/mute.dm new file mode 100644 index 000000000000..5015612963b0 --- /dev/null +++ b/code/datums/quirks/negative_quirks/mute.dm @@ -0,0 +1,10 @@ +/datum/quirk/mute + name = "Mute" + desc = "For some reason you are completely unable to speak." + icon = FA_ICON_VOLUME_XMARK + value = -6 //monkestation change 4->6 + mob_trait = TRAIT_MUTE + gain_text = span_danger("You find yourself unable to speak!") + lose_text = span_notice("You feel a growing strength in your vocal chords.") + medical_record_text = "The patient is unable to use their voice in any capacity." + hardcore_value = 6 //monkestation change 4->6 diff --git a/code/datums/quirks/negative_quirks/nearsighted.dm b/code/datums/quirks/negative_quirks/nearsighted.dm new file mode 100644 index 000000000000..6a5397b65045 --- /dev/null +++ b/code/datums/quirks/negative_quirks/nearsighted.dm @@ -0,0 +1,30 @@ +/datum/quirk/item_quirk/nearsighted + name = "Nearsighted" + desc = "You are nearsighted without prescription glasses, but spawn with a pair." + icon = FA_ICON_GLASSES + value = -4 + gain_text = span_danger("Things far away from you start looking blurry.") + lose_text = span_notice("You start seeing faraway things normally again.") + medical_record_text = "Patient requires prescription glasses in order to counteract nearsightedness." + hardcore_value = 5 + quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_CHANGES_APPEARANCE + mail_goodies = list(/obj/item/clothing/glasses/regular) // extra pair if orginal one gets broken by somebody mean + +/datum/quirk/item_quirk/nearsighted/add_unique(client/client_source) + var/glasses_name = client_source?.prefs.read_preference(/datum/preference/choiced/glasses) || "Regular" + var/obj/item/clothing/glasses/glasses_type + + glasses_name = glasses_name == "Random" ? pick(GLOB.nearsighted_glasses) : glasses_name + glasses_type = GLOB.nearsighted_glasses[glasses_name] + + give_item_to_holder(glasses_type, list( + LOCATION_EYES = ITEM_SLOT_EYES, + LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, + LOCATION_HANDS = ITEM_SLOT_HANDS, + )) + +/datum/quirk/item_quirk/nearsighted/add(client/client_source) + quirk_holder.become_nearsighted(QUIRK_TRAIT) + +/datum/quirk/item_quirk/nearsighted/remove() + quirk_holder.cure_nearsighted(QUIRK_TRAIT) diff --git a/code/datums/quirks/negative_quirks/non_violent.dm b/code/datums/quirks/negative_quirks/non_violent.dm new file mode 100644 index 000000000000..e1dbb0e64802 --- /dev/null +++ b/code/datums/quirks/negative_quirks/non_violent.dm @@ -0,0 +1,11 @@ +/datum/quirk/nonviolent + name = "Pacifist" + desc = "The thought of violence makes you sick. So much so, in fact, that you can't hurt anyone." + icon = FA_ICON_PEACE + value = -8 + mob_trait = TRAIT_PACIFISM + gain_text = span_danger("You feel repulsed by the thought of violence!") + lose_text = span_notice("You think you can defend yourself again.") + medical_record_text = "Patient is unusually pacifistic and cannot bring themselves to cause physical harm." + hardcore_value = 6 + mail_goodies = list(/obj/effect/spawner/random/decoration/flower, /obj/effect/spawner/random/contraband/cannabis) // flower power diff --git a/code/datums/quirks/negative_quirks/numb.dm b/code/datums/quirks/negative_quirks/numb.dm new file mode 100644 index 000000000000..5882595b3c6a --- /dev/null +++ b/code/datums/quirks/negative_quirks/numb.dm @@ -0,0 +1,16 @@ +/* /datum/quirk/numb - monkestation disabled for now + name = "Numb" + desc = "You can't feel pain at all." + icon = FA_ICON_STAR_OF_LIFE + value = -4 + gain_text = "You feel your body becoming numb." + lose_text = "The numbness subsides." + medical_record_text = "The patient exhibits congenital hypoesthesia, making them insensitive to pain stimuli." + hardcore_value = 4 + +/datum/quirk/numb/add(client/client_source) + quirk_holder.apply_status_effect(/datum/status_effect/grouped/screwy_hud/fake_healthy, type) + +/datum/quirk/numb/remove(client/client_source) + quirk_holder.remove_status_effect(/datum/status_effect/grouped/screwy_hud/fake_healthy, type) + */ diff --git a/code/datums/quirks/negative_quirks/nyctophobia.dm b/code/datums/quirks/negative_quirks/nyctophobia.dm new file mode 100644 index 000000000000..0bc61080672f --- /dev/null +++ b/code/datums/quirks/negative_quirks/nyctophobia.dm @@ -0,0 +1,46 @@ +/datum/quirk/nyctophobia + name = "Nyctophobia" + desc = "As far as you can remember, you've always been afraid of the dark. While in the dark without a light source, you instinctively act careful, and constantly feel a sense of dread." + icon = FA_ICON_LIGHTBULB + value = -3 + medical_record_text = "Patient demonstrates a fear of the dark. (Seriously?)" + hardcore_value = 5 + mail_goodies = list(/obj/effect/spawner/random/engineering/flashlight) + +/datum/quirk/nyctophobia/add(client/client_source) + RegisterSignal(quirk_holder, COMSIG_MOVABLE_MOVED, PROC_REF(on_holder_moved)) + +/datum/quirk/nyctophobia/remove() + UnregisterSignal(quirk_holder, COMSIG_MOVABLE_MOVED) + quirk_holder.clear_mood_event("nyctophobia") + +/// Called when the quirk holder moves. Updates the quirk holder's mood. +/datum/quirk/nyctophobia/proc/on_holder_moved(mob/living/source, atom/old_loc, dir, forced) + SIGNAL_HANDLER + + if(quirk_holder.stat != CONSCIOUS || quirk_holder.IsSleeping() || quirk_holder.IsUnconscious()) + return + + if(HAS_TRAIT(quirk_holder, TRAIT_FEARLESS)) + return + + var/mob/living/carbon/human/human_holder = quirk_holder + + if(human_holder.dna?.species.id in list(SPECIES_SHADOW, SPECIES_NIGHTMARE)) + return + + if((human_holder.sight & SEE_TURFS) == SEE_TURFS) + return + + var/turf/holder_turf = get_turf(quirk_holder) + + var/lums = holder_turf.get_lumcount() + + if(lums > LIGHTING_TILE_IS_DARK) + quirk_holder.clear_mood_event("nyctophobia") + return + + if(quirk_holder.m_intent == MOVE_INTENT_RUN) + to_chat(quirk_holder, span_warning("Easy, easy, take it slow... you're in the dark...")) + quirk_holder.set_move_intent(MOVE_INTENT_WALK) + quirk_holder.add_mood_event("nyctophobia", /datum/mood_event/nyctophobia) diff --git a/code/datums/quirks/negative_quirks/paraplegic.dm b/code/datums/quirks/negative_quirks/paraplegic.dm new file mode 100644 index 000000000000..58e1c4ba31e8 --- /dev/null +++ b/code/datums/quirks/negative_quirks/paraplegic.dm @@ -0,0 +1,41 @@ +/datum/quirk/paraplegic + name = "Paraplegic" + desc = "Your legs do not function. Nothing will ever fix this. But hey, free wheelchair!" + icon = FA_ICON_WHEELCHAIR + value = -12 + gain_text = null // Handled by trauma. + lose_text = null + medical_record_text = "Patient has an untreatable impairment in motor function in the lower extremities." + hardcore_value = 15 + mail_goodies = list(/obj/vehicle/ridden/wheelchair/motorized) //yes a fullsized unfolded motorized wheelchair does fit + +/datum/quirk/paraplegic/add_unique(client/client_source) + if(quirk_holder.buckled) // Handle late joins being buckled to arrival shuttle chairs. + quirk_holder.buckled.unbuckle_mob(quirk_holder) + + var/turf/holder_turf = get_turf(quirk_holder) + var/obj/structure/chair/spawn_chair = locate() in holder_turf + + var/obj/vehicle/ridden/wheelchair/wheels + if(client_source?.get_award_status(/datum/award/score/hardcore_random) >= 5000) //More than 5k score? you unlock the gamer wheelchair. + wheels = new /obj/vehicle/ridden/wheelchair/gold(holder_turf) + else + wheels = new(holder_turf) + if(spawn_chair) // Makes spawning on the arrivals shuttle more consistent looking + wheels.setDir(spawn_chair.dir) + + wheels.buckle_mob(quirk_holder) + + // During the spawning process, they may have dropped what they were holding, due to the paralysis + // So put the things back in their hands. + for(var/obj/item/dropped_item in holder_turf) + if(dropped_item.fingerprintslast == quirk_holder.ckey) + quirk_holder.put_in_hands(dropped_item) + +/datum/quirk/paraplegic/add(client/client_source) + var/mob/living/carbon/human/human_holder = quirk_holder + human_holder.gain_trauma(/datum/brain_trauma/severe/paralysis/paraplegic, TRAUMA_RESILIENCE_ABSOLUTE) + +/datum/quirk/paraplegic/remove() + var/mob/living/carbon/human/human_holder = quirk_holder + human_holder.cure_trauma_type(/datum/brain_trauma/severe/paralysis/paraplegic, TRAUMA_RESILIENCE_ABSOLUTE) diff --git a/code/datums/quirks/negative_quirks/photophobia.dm b/code/datums/quirks/negative_quirks/photophobia.dm new file mode 100644 index 000000000000..6b80fb4db764 --- /dev/null +++ b/code/datums/quirks/negative_quirks/photophobia.dm @@ -0,0 +1,76 @@ +/* #define MOOD_CATEGORY_PHOTOPHOBIA "photophobia" - monkestation disabled for now + +/datum/quirk/photophobia + name = "Photophobia" + desc = "Bright lights seem to bother you more than others. Maybe it's a medical condition." + icon = FA_ICON_ARROWS_TO_EYE + value = -4 + gain_text = span_danger("The safety of light feels off...") + lose_text = span_notice("Enlightening.") + medical_record_text = "Patient has acute phobia of light, and insists it is physically harmful." + hardcore_value = 4 + mail_goodies = list( + /obj/item/flashlight/flashdark, + /obj/item/food/grown/mushroom/glowshroom/shadowshroom, + /obj/item/skillchip/light_remover, + ) + +/datum/quirk/photophobia/add(client/client_source) + RegisterSignal(quirk_holder, COMSIG_CARBON_GAIN_ORGAN, PROC_REF(check_eyes)) + RegisterSignal(quirk_holder, COMSIG_CARBON_LOSE_ORGAN, PROC_REF(restore_eyes)) + RegisterSignal(quirk_holder, COMSIG_MOVABLE_MOVED, PROC_REF(on_holder_moved)) + update_eyes(quirk_holder.get_organ_slot(ORGAN_SLOT_EYES)) + +/datum/quirk/photophobia/remove() + UnregisterSignal(quirk_holder, list( + COMSIG_CARBON_GAIN_ORGAN, + COMSIG_CARBON_LOSE_ORGAN, + COMSIG_MOVABLE_MOVED,)) + quirk_holder.clear_mood_event(MOOD_CATEGORY_PHOTOPHOBIA) + var/obj/item/organ/internal/eyes/normal_eyes = quirk_holder.get_organ_slot(ORGAN_SLOT_EYES) + if(istype(normal_eyes)) + normal_eyes.flash_protect = initial(normal_eyes.flash_protect) + +/datum/quirk/photophobia/proc/check_eyes(obj/item/organ/internal/eyes/sensitive_eyes) + SIGNAL_HANDLER + if(!istype(sensitive_eyes)) + return + update_eyes(sensitive_eyes) + +/datum/quirk/photophobia/proc/update_eyes(obj/item/organ/internal/eyes/target_eyes) + if(!istype(target_eyes)) + return + target_eyes.flash_protect = max(target_eyes.flash_protect - 1, FLASH_PROTECTION_HYPER_SENSITIVE) + +/datum/quirk/photophobia/proc/restore_eyes(obj/item/organ/internal/eyes/normal_eyes) + SIGNAL_HANDLER + if(!istype(normal_eyes)) + return + normal_eyes.flash_protect = initial(normal_eyes.flash_protect) + +/datum/quirk/photophobia/proc/on_holder_moved(mob/living/source, atom/old_loc, dir, forced) + SIGNAL_HANDLER + + if(quirk_holder.stat != CONSCIOUS || quirk_holder.IsSleeping() || quirk_holder.IsUnconscious()) + return + + if(HAS_TRAIT(quirk_holder, TRAIT_FEARLESS)) + return + + var/mob/living/carbon/human/human_holder = quirk_holder + + if(human_holder.sight & SEE_TURFS) + return + + var/turf/holder_turf = get_turf(quirk_holder) + + var/lums = holder_turf.get_lumcount() + + var/eye_protection = quirk_holder.get_eye_protection() + if(lums < LIGHTING_TILE_IS_DARK || eye_protection >= FLASH_PROTECTION_NONE) + quirk_holder.clear_mood_event(MOOD_CATEGORY_PHOTOPHOBIA) + return + quirk_holder.add_mood_event(MOOD_CATEGORY_PHOTOPHOBIA, /datum/mood_event/photophobia) + + #undef MOOD_CATEGORY_PHOTOPHOBIA + */ diff --git a/code/datums/quirks/negative_quirks/poor_aim.dm b/code/datums/quirks/negative_quirks/poor_aim.dm new file mode 100644 index 000000000000..9115008292a1 --- /dev/null +++ b/code/datums/quirks/negative_quirks/poor_aim.dm @@ -0,0 +1,10 @@ +/datum/quirk/poor_aim + name = "Stormtrooper Aim" + desc = "You've never hit anything you were aiming for in your life." + icon = FA_ICON_BULLSEYE + value = -4 + mob_trait = TRAIT_POOR_AIM + medical_record_text = "Patient possesses a strong tremor in both hands." + hardcore_value = 3 + mail_goodies = list(/obj/item/cardboard_cutout) // for target practice + diff --git a/code/datums/quirks/negative_quirks/prosopagnosia.dm b/code/datums/quirks/negative_quirks/prosopagnosia.dm new file mode 100644 index 000000000000..8634e13bf638 --- /dev/null +++ b/code/datums/quirks/negative_quirks/prosopagnosia.dm @@ -0,0 +1,9 @@ +/datum/quirk/prosopagnosia + name = "Prosopagnosia" + desc = "You have a mental disorder that prevents you from being able to recognize faces at all." + icon = FA_ICON_USER_SECRET + value = -4 + mob_trait = TRAIT_PROSOPAGNOSIA + medical_record_text = "Patient suffers from prosopagnosia and cannot recognize faces." + hardcore_value = 5 + mail_goodies = list(/obj/item/skillchip/appraiser) // bad at recognizing faces but good at recognizing IDs diff --git a/code/datums/quirks/negative_quirks/prosthetic_limb.dm b/code/datums/quirks/negative_quirks/prosthetic_limb.dm new file mode 100644 index 000000000000..e7ea4d75788f --- /dev/null +++ b/code/datums/quirks/negative_quirks/prosthetic_limb.dm @@ -0,0 +1,33 @@ +/datum/quirk/prosthetic_limb + name = "Prosthetic Limb" + desc = "An accident caused you to lose one of your limbs. Because of this, you now have a surplus prosthetic!" + icon = "tg-prosthetic-leg" + value = -3 + hardcore_value = 3 + quirk_flags = QUIRK_HUMAN_ONLY | QUIRK_CHANGES_APPEARANCE + mail_goodies = list(/obj/item/weldingtool/mini, /obj/item/stack/cable_coil/five) + /// The slot to replace, in string form + var/slot_string = "limb" + /// the original limb from before the prosthetic was applied + var/obj/item/bodypart/old_limb + +/datum/quirk/prosthetic_limb/add_unique(client/client_source) + var/limb_type = GLOB.limb_choice[client_source?.prefs?.read_preference(/datum/preference/choiced/prosthetic)] + if(isnull(limb_type)) //Client gone or they chose a random prosthetic + limb_type = GLOB.limb_choice[pick(GLOB.limb_choice)] + + var/mob/living/carbon/human/human_holder = quirk_holder + var/obj/item/bodypart/surplus = new limb_type() + slot_string = "[surplus.plaintext_zone]" + + medical_record_text = "Patient uses a low-budget prosthetic on the [slot_string]." + old_limb = human_holder.return_and_replace_bodypart(surplus, special = TRUE) + +/datum/quirk/prosthetic_limb/post_add() + to_chat(quirk_holder, span_boldannounce("Your [slot_string] has been replaced with a surplus prosthetic. It is fragile and will easily come apart under duress. Additionally, \ + you need to use a welding tool and cables to repair it, instead of sutures and regenerative meshes.")) + +/datum/quirk/prosthetic_limb/remove() + var/mob/living/carbon/human/human_holder = quirk_holder + human_holder.del_and_replace_bodypart(old_limb, special = TRUE) + old_limb = null diff --git a/code/datums/quirks/negative_quirks/prosthetic_organ.dm b/code/datums/quirks/negative_quirks/prosthetic_organ.dm new file mode 100644 index 000000000000..987900ad3dd9 --- /dev/null +++ b/code/datums/quirks/negative_quirks/prosthetic_organ.dm @@ -0,0 +1,64 @@ +/* /datum/quirk/prosthetic_organ - monkestation disabled for now + name = "Prosthetic Organ" + desc = "An accident caused you to lose one of your organs. Because of this, you now have a surplus prosthetic!" + icon = FA_ICON_LUNGS + value = -3 + medical_record_text = "During physical examination, patient was found to have a low-budget prosthetic organ. \ + Removal of these organs is known to be dangerous to the patient as well as the practitioner." + hardcore_value = 3 + mail_goodies = list(/obj/item/storage/organbox) + /// The slot to replace, in string form + var/slot_string = "organ" + /// The original organ from before the prosthetic was applied + var/obj/item/organ/old_organ + +/datum/quirk/prosthetic_organ/add_unique(client/client_source) + var/mob/living/carbon/human/human_holder = quirk_holder + var/static/list/organ_slots = list( + ORGAN_SLOT_HEART, + ORGAN_SLOT_LUNGS, + ORGAN_SLOT_LIVER, + ORGAN_SLOT_STOMACH, + ) + var/list/possible_organ_slots = organ_slots.Copy() + if(HAS_TRAIT(human_holder, TRAIT_NOBLOOD)) + possible_organ_slots -= ORGAN_SLOT_HEART + if(HAS_TRAIT(human_holder, TRAIT_NOBREATH)) + possible_organ_slots -= ORGAN_SLOT_LUNGS + if(HAS_TRAIT(human_holder, TRAIT_LIVERLESS_METABOLISM)) + possible_organ_slots -= ORGAN_SLOT_LIVER + if(HAS_TRAIT(human_holder, TRAIT_NOHUNGER)) + possible_organ_slots -= ORGAN_SLOT_STOMACH + if(!length(organ_slots)) //what the hell + return + var/organ_slot = pick(possible_organ_slots) + var/obj/item/organ/prosthetic + switch(organ_slot) + if(ORGAN_SLOT_HEART) + prosthetic = new /obj/item/organ/internal/heart/cybernetic/surplus + slot_string = "heart" + if(ORGAN_SLOT_LUNGS) + prosthetic = new /obj/item/organ/internal/lungs/cybernetic/surplus + slot_string = "lungs" + if(ORGAN_SLOT_LIVER) + prosthetic = new /obj/item/organ/internal/liver/cybernetic/surplus + slot_string = "liver" + if(ORGAN_SLOT_STOMACH) + prosthetic = new /obj/item/organ/internal/stomach/cybernetic/surplus + slot_string = "stomach" + medical_record_text = "During physical examination, patient was found to have a low-budget prosthetic [slot_string]. \ + Removal of these organs is known to be dangerous to the patient as well as the practitioner." + old_organ = human_holder.get_organ_slot(organ_slot) + if(prosthetic.Insert(human_holder, special = TRUE, drop_if_replaced = TRUE)) + old_organ.moveToNullspace() + STOP_PROCESSING(SSobj, old_organ) + +/datum/quirk/prosthetic_organ/post_add() + to_chat(quirk_holder, span_boldannounce("Your [slot_string] has been replaced with a surplus organ. It is fragile and will easily come apart under duress. \ + Additionally, any EMP will make it stop working entirely.")) + +/datum/quirk/prosthetic_organ/remove() + if(old_organ) + old_organ.Insert(quirk_holder, special = TRUE) + old_organ = null + */ diff --git a/code/datums/quirks/negative_quirks/pushover.dm b/code/datums/quirks/negative_quirks/pushover.dm new file mode 100644 index 000000000000..663d81737593 --- /dev/null +++ b/code/datums/quirks/negative_quirks/pushover.dm @@ -0,0 +1,11 @@ +/datum/quirk/pushover + name = "Pushover" + desc = "Your first instinct is always to let people push you around. Resisting out of grabs will take conscious effort." + icon = FA_ICON_HANDSHAKE + value = -8 + mob_trait = TRAIT_GRABWEAKNESS + gain_text = span_danger("You feel like a pushover.") + lose_text = span_notice("You feel like standing up for yourself.") + medical_record_text = "Patient presents a notably unassertive personality and is easy to manipulate." + hardcore_value = 4 + mail_goodies = list(/obj/item/clothing/gloves/cargo_gauntlet) diff --git a/code/datums/quirks/negative_quirks/quadruple_amputee.dm b/code/datums/quirks/negative_quirks/quadruple_amputee.dm new file mode 100644 index 000000000000..493cdf0b71cd --- /dev/null +++ b/code/datums/quirks/negative_quirks/quadruple_amputee.dm @@ -0,0 +1,20 @@ +/datum/quirk/quadruple_amputee + name = "Quadruple Amputee" + desc = "Oops! All Prosthetics! Due to some truly cruel cosmic punishment, all your limbs have been replaced with surplus prosthetics." + icon = "tg-prosthetic-full" + value = -6 + medical_record_text = "During physical examination, patient was found to have all low-budget prosthetic limbs." + hardcore_value = 6 + quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_CHANGES_APPEARANCE + mail_goodies = list(/obj/item/weldingtool/mini, /obj/item/stack/cable_coil/five) + +/datum/quirk/quadruple_amputee/add_unique(client/client_source) + var/mob/living/carbon/human/human_holder = quirk_holder + human_holder.del_and_replace_bodypart(new /obj/item/bodypart/arm/left/robot/surplus, special = TRUE) + human_holder.del_and_replace_bodypart(new /obj/item/bodypart/arm/right/robot/surplus, special = TRUE) + human_holder.del_and_replace_bodypart(new /obj/item/bodypart/leg/left/robot/surplus, special = TRUE) + human_holder.del_and_replace_bodypart(new /obj/item/bodypart/leg/right/robot/surplus, special = TRUE) + +/datum/quirk/quadruple_amputee/post_add() + to_chat(quirk_holder, span_boldannounce("All your limbs have been replaced with surplus prosthetics. They are fragile and will easily come apart under duress. \ + Additionally, you need to use a welding tool and cables to repair them, instead of bruise packs and ointment.")) diff --git a/code/datums/quirks/negative_quirks/social_anxiety.dm b/code/datums/quirks/negative_quirks/social_anxiety.dm new file mode 100644 index 000000000000..3faa49b0836b --- /dev/null +++ b/code/datums/quirks/negative_quirks/social_anxiety.dm @@ -0,0 +1,115 @@ +/datum/quirk/social_anxiety + name = "Social Anxiety" + desc = "Talking to people is very difficult for you, and you often stutter or even lock up." + icon = FA_ICON_COMMENT_SLASH + value = -3 + gain_text = span_danger("You start worrying about what you're saying.") + lose_text = span_notice("You feel easier about talking again.") //if only it were that easy! + medical_record_text = "Patient is usually anxious in social encounters and prefers to avoid them." + hardcore_value = 4 + mob_trait = TRAIT_ANXIOUS + mail_goodies = list(/obj/item/storage/pill_bottle/psicodine) + var/dumb_thing = TRUE + +/datum/quirk/social_anxiety/add(client/client_source) + RegisterSignal(quirk_holder, COMSIG_MOB_EYECONTACT, PROC_REF(eye_contact)) + RegisterSignal(quirk_holder, COMSIG_MOB_EXAMINATE, PROC_REF(looks_at_floor)) + RegisterSignal(quirk_holder, COMSIG_MOB_SAY, PROC_REF(handle_speech)) + +/datum/quirk/social_anxiety/remove() + UnregisterSignal(quirk_holder, list(COMSIG_MOB_EYECONTACT, COMSIG_MOB_EXAMINATE, COMSIG_MOB_SAY)) + +/datum/quirk/social_anxiety/proc/handle_speech(datum/source, list/speech_args) + SIGNAL_HANDLER + + if(HAS_TRAIT(quirk_holder, TRAIT_FEARLESS)) + return + if(HAS_TRAIT(source, TRAIT_SIGN_LANG)) // No modifiers for signers, so you're less anxious when you go non-verbal + return + + var/moodmod + if(quirk_holder.mob_mood) + moodmod = (1+0.02*(50-(max(50, quirk_holder.mob_mood.mood_level*(7-quirk_holder.mob_mood.sanity_level))))) //low sanity levels are better, they max at 6 + else + moodmod = (1+0.02*(50-(max(50, 0.1*quirk_holder.nutrition)))) + var/nearby_people = 0 + for(var/mob/living/carbon/human/H in oview(3, quirk_holder)) + if(H.client) + nearby_people++ + var/message = speech_args[SPEECH_MESSAGE] + if(message) + var/list/message_split = splittext(message, " ") + var/list/new_message = list() + var/mob/living/carbon/human/quirker = quirk_holder + for(var/word in message_split) + if(prob(max(5,(nearby_people*12.5*moodmod))) && word != message_split[1]) //Minimum 1/20 chance of filler + new_message += pick("uh,","erm,","um,") + if(prob(min(5,(0.05*(nearby_people*12.5)*moodmod)))) //Max 1 in 20 chance of cutoff after a successful filler roll, for 50% odds in a 15 word sentence + quirker.set_silence_if_lower(6 SECONDS) + to_chat(quirker, span_danger("You feel self-conscious and stop talking. You need a moment to recover!")) + break + if(prob(max(5,(nearby_people*12.5*moodmod)))) //Minimum 1/20 chance of stutter + // Add a short stutter, THEN treat our word + quirker.adjust_stutter(0.5 SECONDS) + new_message += quirker.treat_message(word, capitalize_message = FALSE) + else + new_message += word + + message = jointext(new_message, " ") + var/mob/living/carbon/human/quirker = quirk_holder + if(prob(min(50,(0.50*(nearby_people*12.5)*moodmod)))) //Max 50% chance of not talking + if(dumb_thing) + to_chat(quirker, span_userdanger("You think of a dumb thing you said a long time ago and scream internally.")) + dumb_thing = FALSE //only once per life + if(prob(1)) + new/obj/item/food/spaghetti/pastatomato(get_turf(quirker)) //now that's what I call spaghetti code + else + to_chat(quirk_holder, span_warning("You think that wouldn't add much to the conversation and decide not to say it.")) + if(prob(min(25,(0.25*(nearby_people*12.75)*moodmod)))) //Max 25% chance of silence stacks after successful not talking roll + to_chat(quirker, span_danger("You retreat into yourself. You really don't feel up to talking.")) + quirker.set_silence_if_lower(10 SECONDS) + + speech_args[SPEECH_MESSAGE] = pick("Uh.","Erm.","Um.") + else + speech_args[SPEECH_MESSAGE] = message + +// small chance to make eye contact with inanimate objects/mindless mobs because of nerves +/datum/quirk/social_anxiety/proc/looks_at_floor(datum/source, atom/A) + SIGNAL_HANDLER + + var/mob/living/mind_check = A + if(prob(85) || (istype(mind_check) && mind_check.mind)) + return + + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), quirk_holder, span_smallnotice("You make eye contact with [A].")), 3) + +/datum/quirk/social_anxiety/proc/eye_contact(datum/source, mob/living/other_mob, triggering_examiner) + SIGNAL_HANDLER + + if(prob(75)) + return + var/msg + if(triggering_examiner) + msg = "You make eye contact with [other_mob], " + else + msg = "[other_mob] makes eye contact with you, " + + switch(rand(1,3)) + if(1) + quirk_holder.set_jitter_if_lower(20 SECONDS) + msg += "causing you to start fidgeting!" + if(2) + quirk_holder.set_stutter_if_lower(6 SECONDS) + msg += "causing you to start stuttering!" + if(3) + quirk_holder.Stun(2 SECONDS) + msg += "causing you to freeze up!" + + quirk_holder.add_mood_event("anxiety_eyecontact", /datum/mood_event/anxiety_eyecontact) + addtimer(CALLBACK(GLOBAL_PROC, GLOBAL_PROC_REF(to_chat), quirk_holder, span_userdanger("[msg]")), 3) // so the examine signal has time to fire and this will print after + return COMSIG_BLOCK_EYECONTACT + +/datum/mood_event/anxiety_eyecontact + description = "Sometimes eye contact makes me so nervous..." + mood_change = -5 + timeout = 3 MINUTES diff --git a/code/datums/quirks/negative_quirks/softspoken.dm b/code/datums/quirks/negative_quirks/softspoken.dm new file mode 100644 index 000000000000..41be5f1aca00 --- /dev/null +++ b/code/datums/quirks/negative_quirks/softspoken.dm @@ -0,0 +1,9 @@ +/datum/quirk/softspoken + name = "Soft-Spoken" + desc = "You are soft-spoken, and your voice is hard to hear." + icon = FA_ICON_COMMENT + value = -2 + mob_trait = TRAIT_SOFTSPOKEN + gain_text = span_danger("You feel like you're speaking more quietly.") + lose_text = span_notice("You feel like you're speaking louder.") + medical_record_text = "Patient is soft-spoken and difficult to hear." diff --git a/code/datums/quirks/negative_quirks/tin_man.dm b/code/datums/quirks/negative_quirks/tin_man.dm new file mode 100644 index 000000000000..a71ea2a098b8 --- /dev/null +++ b/code/datums/quirks/negative_quirks/tin_man.dm @@ -0,0 +1,38 @@ +/* /datum/quirk/tin_man - monkestation disabled for now + name = "Tin Man" + desc = "Oops! All Prosthetics! Due to some truly cruel cosmic punishment, most of your internal organs have been replaced with surplus prosthetics." + icon = FA_ICON_ROBOT + value = -6 + medical_record_text = "During physical examination, patient was found to have numerous low-budget prosthetic internal organs. \ + Removal of these organs is known to be dangerous to the patient as well as the practitioner." + hardcore_value = 6 + mail_goodies = list(/obj/item/storage/organbox) + +/datum/quirk/tin_man/add_unique(client/client_source) + var/mob/living/carbon/human/human_holder = quirk_holder + var/static/list/organ_slots = list( + ORGAN_SLOT_HEART = /obj/item/organ/internal/heart/cybernetic/surplus, + ORGAN_SLOT_LUNGS = /obj/item/organ/internal/lungs/cybernetic/surplus, + ORGAN_SLOT_LIVER = /obj/item/organ/internal/liver/cybernetic/surplus, + ORGAN_SLOT_STOMACH = /obj/item/organ/internal/stomach/cybernetic/surplus, + ) + var/list/possible_organ_slots = organ_slots.Copy() + if(HAS_TRAIT(human_holder, TRAIT_NOBLOOD)) + possible_organ_slots -= ORGAN_SLOT_HEART + if(HAS_TRAIT(human_holder, TRAIT_NOBREATH)) + possible_organ_slots -= ORGAN_SLOT_LUNGS + if(HAS_TRAIT(human_holder, TRAIT_LIVERLESS_METABOLISM)) + possible_organ_slots -= ORGAN_SLOT_LIVER + if(HAS_TRAIT(human_holder, TRAIT_NOHUNGER)) + possible_organ_slots -= ORGAN_SLOT_STOMACH + if(!length(organ_slots)) //what the hell + return + for(var/organ_slot in possible_organ_slots) + var/organ_path = possible_organ_slots[organ_slot] + var/obj/item/organ/new_organ = new organ_path() + new_organ.Insert(human_holder, special = TRUE, drop_if_replaced = FALSE) + +/datum/quirk/tin_man/post_add() + to_chat(quirk_holder, span_boldannounce("Most of your internal organs have been replaced with surplus prosthetics. They are fragile and will easily come apart under duress. \ + Additionally, any EMP will make them stop working entirely.")) + */ diff --git a/code/datums/quirks/negative_quirks/unstable.dm b/code/datums/quirks/negative_quirks/unstable.dm new file mode 100644 index 000000000000..5d39776eeba2 --- /dev/null +++ b/code/datums/quirks/negative_quirks/unstable.dm @@ -0,0 +1,11 @@ +/datum/quirk/unstable + name = "Unstable" + desc = "Due to past troubles, you are unable to recover your sanity if you lose it. Be very careful managing your mood!" + icon = FA_ICON_ANGRY + value = -10 + mob_trait = TRAIT_UNSTABLE + gain_text = span_danger("There's a lot on your mind right now.") + lose_text = span_notice("Your mind finally feels calm.") + medical_record_text = "Patient's mind is in a vulnerable state, and cannot recover from traumatic events." + hardcore_value = 9 + mail_goodies = list(/obj/effect/spawner/random/entertainment/plushie) diff --git a/code/datums/quirks/neutral_quirks.dm b/code/datums/quirks/neutral_quirks.dm deleted file mode 100644 index 4146e9aed25e..000000000000 --- a/code/datums/quirks/neutral_quirks.dm +++ /dev/null @@ -1,466 +0,0 @@ -//traits with no real impact that can be taken freely -//MAKE SURE THESE DO NOT MAJORLY IMPACT GAMEPLAY. those should be positive or negative traits. - -/datum/quirk/extrovert - name = "Extrovert" - desc = "You are energized by talking to others, and enjoy spending your free time in the bar." - icon = FA_ICON_USERS - value = 0 - mob_trait = TRAIT_EXTROVERT - gain_text = span_notice("You feel like hanging out with other people.") - lose_text = span_danger("You feel like you're over the bar scene.") - medical_record_text = "Patient will not shut the hell up." - mail_goodies = list(/obj/item/reagent_containers/cup/glass/flask) - -/datum/quirk/introvert - name = "Introvert" - desc = "You are energized by having time to yourself, and enjoy spending your free time in the library." - icon = FA_ICON_BOOK_READER - value = 0 - mob_trait = TRAIT_INTROVERT - gain_text = span_notice("You feel like reading a good book quietly.") - lose_text = span_danger("You feel like libraries are boring.") - medical_record_text = "Patient doesn't seem to say much." - mail_goodies = list(/obj/item/book/random) - -/datum/quirk/no_taste - name = "Ageusia" - desc = "You can't taste anything! Toxic food will still poison you." - icon = FA_ICON_FACE_MEH_BLANK - value = 0 - mob_trait = TRAIT_AGEUSIA - gain_text = span_notice("You can't taste anything!") - lose_text = span_notice("You can taste again!") - medical_record_text = "Patient suffers from ageusia and is incapable of tasting food or reagents." - mail_goodies = list(/obj/effect/spawner/random/food_or_drink/condiment) // but can you taste the salt? CAN YOU?! - - -/datum/quirk/foreigner - name = "Foreigner" - desc = "You're not from around here. You don't know Galactic Common!" - icon = FA_ICON_LANGUAGE - value = -2 //Monkestation change 0->-2 - gain_text = span_notice("The words being spoken around you don't make any sense.") - lose_text = span_notice("You've developed fluency in Galactic Common.") - medical_record_text = "Patient does not speak Galactic Common and may require an interpreter." - mail_goodies = list(/obj/item/taperecorder) // for translation - -/datum/quirk/foreigner/add(client/client_source) - var/mob/living/carbon/human/human_holder = quirk_holder - human_holder.add_blocked_language(/datum/language/common) - if(ishumanbasic(human_holder)) - human_holder.grant_language(/datum/language/uncommon, understood = TRUE, spoken = TRUE, source = LANGUAGE_QUIRK) - -/datum/quirk/foreigner/remove() - var/mob/living/carbon/human/human_holder = quirk_holder - human_holder.remove_blocked_language(/datum/language/common) - if(ishumanbasic(human_holder)) - human_holder.remove_language(/datum/language/uncommon) - -/datum/quirk/vegetarian - name = "Vegetarian" - desc = "You find the idea of eating meat morally and physically repulsive." - icon = FA_ICON_CARROT - value = 0 - gain_text = span_notice("You feel repulsion at the idea of eating meat.") - lose_text = span_notice("You feel like eating meat isn't that bad.") - medical_record_text = "Patient reports a vegetarian diet." - mail_goodies = list(/obj/effect/spawner/random/food_or_drink/salad) - -/datum/quirk/vegetarian/add(client/client_source) - var/obj/item/organ/internal/tongue/tongue = quirk_holder.get_organ_slot(ORGAN_SLOT_TONGUE) - if(!tongue) - return - tongue.liked_foodtypes &= ~MEAT - tongue.disliked_foodtypes |= MEAT - -/datum/quirk/vegetarian/remove() - var/obj/item/organ/internal/tongue/tongue = quirk_holder.get_organ_slot(ORGAN_SLOT_TONGUE) - if(!tongue) - return - tongue.liked_foodtypes = initial(tongue.liked_foodtypes) - tongue.disliked_foodtypes = initial(tongue.disliked_foodtypes) - -/datum/quirk/snob - name = "Snob" - desc = "You care about the finer things, if a room doesn't look nice its just not really worth it, is it?" - icon = FA_ICON_USER_TIE - value = 0 - gain_text = span_notice("You feel like you understand what things should look like.") - lose_text = span_notice("Well who cares about deco anyways?") - medical_record_text = "Patient seems to be rather stuck up." - mob_trait = TRAIT_SNOB - mail_goodies = list(/obj/item/chisel, /obj/item/paint_palette) - -/datum/quirk/pineapple_liker - name = "Ananas Affinity" - desc = "You find yourself greatly enjoying fruits of the ananas genus. You can't seem to ever get enough of their sweet goodness!" - icon = FA_ICON_THUMBS_UP - value = 0 - gain_text = span_notice("You feel an intense craving for pineapple.") - lose_text = span_notice("Your feelings towards pineapples seem to return to a lukewarm state.") - medical_record_text = "Patient demonstrates a pathological love of pineapple." - mail_goodies = list(/obj/item/food/pizzaslice/pineapple) - -/datum/quirk/pineapple_liker/add(client/client_source) - var/obj/item/organ/internal/tongue/tongue = quirk_holder.get_organ_slot(ORGAN_SLOT_TONGUE) - if(!tongue) - return - tongue.liked_foodtypes |= PINEAPPLE - -/datum/quirk/pineapple_liker/remove() - var/obj/item/organ/internal/tongue/tongue = quirk_holder.get_organ_slot(ORGAN_SLOT_TONGUE) - if(!tongue) - return - tongue.liked_foodtypes = initial(tongue.liked_foodtypes) - -/datum/quirk/pineapple_hater - name = "Ananas Aversion" - desc = "You find yourself greatly detesting fruits of the ananas genus. Serious, how the hell can anyone say these things are good? And what kind of madman would even dare putting it on a pizza!?" - icon = FA_ICON_THUMBS_DOWN - value = 0 - gain_text = span_notice("You find yourself pondering what kind of idiot actually enjoys pineapples...") - lose_text = span_notice("Your feelings towards pineapples seem to return to a lukewarm state.") - medical_record_text = "Patient is correct to think that pineapple is disgusting." - mail_goodies = list( // basic pizza slices - /obj/item/food/pizzaslice/margherita, - /obj/item/food/pizzaslice/meat, - /obj/item/food/pizzaslice/mushroom, - /obj/item/food/pizzaslice/vegetable, - /obj/item/food/pizzaslice/sassysage, - ) - -/datum/quirk/pineapple_hater/add(client/client_source) - var/obj/item/organ/internal/tongue/tongue = quirk_holder.get_organ_slot(ORGAN_SLOT_TONGUE) - if(!tongue) - return - tongue.disliked_foodtypes |= PINEAPPLE - -/datum/quirk/pineapple_hater/remove() - var/obj/item/organ/internal/tongue/tongue = quirk_holder.get_organ_slot(ORGAN_SLOT_TONGUE) - if(!tongue) - return - tongue.disliked_foodtypes = initial(tongue.disliked_foodtypes) - -/datum/quirk/deviant_tastes - name = "Deviant Tastes" - desc = "You dislike food that most people enjoy, and find delicious what they don't." - icon = FA_ICON_FACE_GRIN_TONGUE_SQUINT - value = 0 - gain_text = span_notice("You start craving something that tastes strange.") - lose_text = span_notice("You feel like eating normal food again.") - medical_record_text = "Patient demonstrates irregular nutrition preferences." - mail_goodies = list(/obj/item/food/urinalcake, /obj/item/food/badrecipe) // Mhhhmmm yummy - -/datum/quirk/deviant_tastes/add(client/client_source) - var/obj/item/organ/internal/tongue/tongue = quirk_holder.get_organ_slot(ORGAN_SLOT_TONGUE) - if(!tongue) - return - var/liked_foodtypes = tongue.liked_foodtypes - tongue.liked_foodtypes = tongue.disliked_foodtypes - tongue.disliked_foodtypes = liked_foodtypes - -/datum/quirk/deviant_tastes/remove() - var/obj/item/organ/internal/tongue/tongue = quirk_holder.get_organ_slot(ORGAN_SLOT_TONGUE) - if(!tongue) - return - tongue.liked_foodtypes = initial(tongue.liked_foodtypes) - tongue.disliked_foodtypes = initial(tongue.disliked_foodtypes) - -/datum/quirk/heterochromatic - name = "Heterochromatic" - desc = "One of your eyes is a different color than the other!" - icon = FA_ICON_LOW_VISION // Ignore the icon name, its actually a fairly good representation of different color eyes - quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_CHANGES_APPEARANCE - value = 0 - mail_goodies = list(/obj/item/clothing/glasses/eyepatch) - -// Only your first eyes are heterochromatic -// If someone comes and says "well mr coder you can have DNA bound heterochromia so it's not unrealistic -// to allow all inserted replacement eyes to become heterochromatic or for it to transfer between mobs" -// Then just change this to [proc/add] I really don't care -/datum/quirk/heterochromatic/add_unique(client/client_source) - var/color = client_source?.prefs?.read_preference(/datum/preference/color/heterochromatic) - if(!color) - return - - apply_heterochromatic_eyes(color) - -/// Applies the passed color to this mob's eyes -/datum/quirk/heterochromatic/proc/apply_heterochromatic_eyes(color) - var/mob/living/carbon/human/human_holder = quirk_holder - var/was_not_hetero = !human_holder.eye_color_heterochromatic - human_holder.eye_color_heterochromatic = TRUE - human_holder.eye_color_right = color - - var/obj/item/organ/internal/eyes/eyes_of_the_holder = quirk_holder.get_organ_by_type(/obj/item/organ/internal/eyes) - if(!eyes_of_the_holder) - return - - eyes_of_the_holder.eye_color_right = color - eyes_of_the_holder.old_eye_color_right = color - eyes_of_the_holder.refresh() - - if(was_not_hetero) - RegisterSignal(human_holder, COMSIG_CARBON_LOSE_ORGAN, PROC_REF(check_eye_removal)) - -/datum/quirk/heterochromatic/remove() - var/mob/living/carbon/human/human_holder = quirk_holder - human_holder.eye_color_heterochromatic = FALSE - human_holder.eye_color_right = human_holder.eye_color_left - UnregisterSignal(human_holder, COMSIG_CARBON_LOSE_ORGAN) - -/datum/quirk/heterochromatic/proc/check_eye_removal(datum/source, obj/item/organ/internal/eyes/removed) - SIGNAL_HANDLER - - if(!istype(removed)) - return - - // Eyes were removed, remove heterochromia from the human holder and bid them adieu - var/mob/living/carbon/human/human_holder = quirk_holder - human_holder.eye_color_heterochromatic = FALSE - human_holder.eye_color_right = human_holder.eye_color_left - UnregisterSignal(human_holder, COMSIG_CARBON_LOSE_ORGAN) - -/datum/quirk/monochromatic - name = "Monochromacy" - desc = "You suffer from full colorblindness, and perceive nearly the entire world in blacks and whites." - icon = FA_ICON_ADJUST - value = 0 - medical_record_text = "Patient is afflicted with almost complete color blindness." - mail_goodies = list( // Noir detective wannabe - /obj/item/clothing/suit/jacket/det_suit/noir, - /obj/item/clothing/suit/jacket/det_suit/dark, - /obj/item/clothing/head/fedora/beige, - /obj/item/clothing/head/fedora/white, - ) - -/datum/quirk/monochromatic/add(client/client_source) - quirk_holder.add_client_colour(/datum/client_colour/monochrome) - -/datum/quirk/monochromatic/post_add() - if(is_detective_job(quirk_holder.mind.assigned_role)) - to_chat(quirk_holder, span_boldannounce("Mmm. Nothing's ever clear on this station. It's all shades of gray...")) - quirk_holder.playsound_local(quirk_holder, 'sound/ambience/ambidet1.ogg', 50, FALSE) - -/datum/quirk/monochromatic/remove() - quirk_holder.remove_client_colour(/datum/client_colour/monochrome) - -/datum/quirk/phobia - name = "Phobia" - desc = "You are irrationally afraid of something." - icon = FA_ICON_SPIDER - value = 0 - medical_record_text = "Patient has an irrational fear of something." - mail_goodies = list(/obj/item/clothing/glasses/blindfold, /obj/item/storage/pill_bottle/psicodine) - -// Phobia will follow you between transfers -/datum/quirk/phobia/add(client/client_source) - var/phobia = client_source?.prefs?.read_preference(/datum/preference/choiced/phobia) - if(!phobia) - return - - var/mob/living/carbon/human/human_holder = quirk_holder - human_holder.gain_trauma(new /datum/brain_trauma/mild/phobia(phobia), TRAUMA_RESILIENCE_ABSOLUTE) - -/datum/quirk/phobia/remove() - var/mob/living/carbon/human/human_holder = quirk_holder - human_holder.cure_trauma_type(/datum/brain_trauma/mild/phobia, TRAUMA_RESILIENCE_ABSOLUTE) - -/datum/quirk/shifty_eyes - name = "Shifty Eyes" - desc = "Your eyes tend to wander all over the place, whether you mean to or not, causing people to sometimes think you're looking directly at them when you aren't." - icon = FA_ICON_EYE - value = 0 - medical_record_text = "Fucking creep kept staring at me the whole damn checkup. I'm only diagnosing this because it's less awkward than thinking it was on purpose." - mob_trait = TRAIT_SHIFTY_EYES - mail_goodies = list(/obj/item/clothing/head/costume/papersack, /obj/item/clothing/head/costume/papersack/smiley) - -/datum/quirk/item_quirk/bald - name = "Smooth-Headed" - desc = "You have no hair and are quite insecure about it! Keep your wig on, or at least your head covered up." - icon = FA_ICON_EGG - value = 0 - mob_trait = TRAIT_BALD - gain_text = span_notice("Your head is as smooth as can be, it's terrible.") - lose_text = span_notice("Your head itches, could it be... growing hair?!") - medical_record_text = "Patient starkly refused to take off headwear during examination." - mail_goodies = list(/obj/item/clothing/head/wig/random) - /// The user's starting hairstyle - var/old_hair - -/datum/quirk/item_quirk/bald/add(client/client_source) - var/mob/living/carbon/human/human_holder = quirk_holder - old_hair = human_holder.hairstyle - human_holder.hairstyle = "Bald" - human_holder.update_body_parts() - RegisterSignal(human_holder, COMSIG_CARBON_EQUIP_HAT, PROC_REF(equip_hat)) - RegisterSignal(human_holder, COMSIG_CARBON_UNEQUIP_HAT, PROC_REF(unequip_hat)) - -/datum/quirk/item_quirk/bald/add_unique(client/client_source) - var/obj/item/clothing/head/wig/natural/baldie_wig = new(get_turf(quirk_holder)) - - if (old_hair == "Bald") - baldie_wig.hairstyle = pick(GLOB.hairstyles_list - "Bald") - else - baldie_wig.hairstyle = old_hair - - baldie_wig.update_appearance() - - give_item_to_holder(baldie_wig, list(LOCATION_HEAD = ITEM_SLOT_HEAD, LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, LOCATION_HANDS = ITEM_SLOT_HANDS)) - -/datum/quirk/item_quirk/bald/remove() - . = ..() - var/mob/living/carbon/human/human_holder = quirk_holder - human_holder.hairstyle = old_hair - human_holder.update_body_parts() - UnregisterSignal(human_holder, list(COMSIG_CARBON_EQUIP_HAT, COMSIG_CARBON_UNEQUIP_HAT)) - human_holder.clear_mood_event("bad_hair_day") - -///Checks if the headgear equipped is a wig and sets the mood event accordingly -/datum/quirk/item_quirk/bald/proc/equip_hat(mob/user, obj/item/hat) - SIGNAL_HANDLER - - if(istype(hat, /obj/item/clothing/head/wig)) - quirk_holder.add_mood_event("bad_hair_day", /datum/mood_event/confident_mane) //Our head is covered, but also by a wig so we're happy. - else - quirk_holder.clear_mood_event("bad_hair_day") //Our head is covered - -///Applies a bad moodlet for having an uncovered head -/datum/quirk/item_quirk/bald/proc/unequip_hat(mob/user, obj/item/clothing, force, newloc, no_move, invdrop, silent) - SIGNAL_HANDLER - - quirk_holder.add_mood_event("bad_hair_day", /datum/mood_event/bald) - -/datum/quirk/item_quirk/photographer - name = "Photographer" - desc = "You carry your camera and personal photo album everywhere you go, and your scrapbooks are legendary among your coworkers." - icon = FA_ICON_CAMERA - value = 0 - mob_trait = TRAIT_PHOTOGRAPHER - gain_text = span_notice("You know everything about photography.") - lose_text = span_danger("You forget how photo cameras work.") - medical_record_text = "Patient mentions photography as a stress-relieving hobby." - mail_goodies = list(/obj/item/camera_film) - -/datum/quirk/item_quirk/photographer/add_unique(client/client_source) - var/mob/living/carbon/human/human_holder = quirk_holder - var/obj/item/storage/photo_album/personal/photo_album = new(get_turf(human_holder)) - photo_album.persistence_id = "personal_[human_holder.last_mind?.key]" // this is a persistent album, the ID is tied to the account's key to avoid tampering - photo_album.persistence_load() - photo_album.name = "[human_holder.real_name]'s photo album" - - give_item_to_holder(photo_album, list(LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, LOCATION_HANDS = ITEM_SLOT_HANDS)) - give_item_to_holder( - /obj/item/camera, - list( - LOCATION_NECK = ITEM_SLOT_NECK, - LOCATION_LPOCKET = ITEM_SLOT_LPOCKET, - LOCATION_RPOCKET = ITEM_SLOT_RPOCKET, - LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, - LOCATION_HANDS = ITEM_SLOT_HANDS - ) - ) - -/datum/quirk/item_quirk/colorist - name = "Colorist" - desc = "You like carrying around a hair dye spray to quickly apply color patterns to your hair." - icon = FA_ICON_FILL_DRIP - value = 0 - medical_record_text = "Patient enjoys dyeing their hair with pretty colors." - mail_goodies = list(/obj/item/dyespray) - -/datum/quirk/item_quirk/colorist/add_unique(client/client_source) - give_item_to_holder(/obj/item/dyespray, list(LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, LOCATION_HANDS = ITEM_SLOT_HANDS)) - -#define GAMING_WITHDRAWAL_TIME (15 MINUTES) -/datum/quirk/gamer - name = "Gamer" - desc = "You are a hardcore gamer, and you have a need to game. You love winning and hate losing. You only like gamer food." - icon = FA_ICON_GAMEPAD - value = 0 - gain_text = span_notice("You feel the sudden urge to game.") - lose_text = span_notice("You've lost all interest in gaming.") - medical_record_text = "Patient has a severe video game addiction." - mob_trait = TRAIT_GAMER - mail_goodies = list(/obj/item/toy/intento, /obj/item/clothing/head/fedora) - /// Timer for gaming withdrawal to kick in - var/gaming_withdrawal_timer = TIMER_ID_NULL - -/datum/quirk/gamer/add(client/client_source) - var/obj/item/organ/internal/tongue/tongue = quirk_holder.get_organ_slot(ORGAN_SLOT_TONGUE) - if(tongue) - // Gamer diet - tongue.liked_foodtypes = JUNKFOOD - RegisterSignal(quirk_holder, COMSIG_MOB_WON_VIDEOGAME, PROC_REF(won_game)) - RegisterSignal(quirk_holder, COMSIG_MOB_LOST_VIDEOGAME, PROC_REF(lost_game)) - RegisterSignal(quirk_holder, COMSIG_MOB_PLAYED_VIDEOGAME, PROC_REF(gamed)) - -/datum/quirk/gamer/remove() - var/obj/item/organ/internal/tongue/tongue = quirk_holder.get_organ_slot(ORGAN_SLOT_TONGUE) - if(tongue) - tongue.liked_foodtypes = initial(tongue.liked_foodtypes) - UnregisterSignal(quirk_holder, COMSIG_MOB_WON_VIDEOGAME) - UnregisterSignal(quirk_holder, COMSIG_MOB_LOST_VIDEOGAME) - UnregisterSignal(quirk_holder, COMSIG_MOB_PLAYED_VIDEOGAME) - - -/datum/quirk/gamer/add_unique(client/client_source) - // The gamer starts off quelled - gaming_withdrawal_timer = addtimer(CALLBACK(src, PROC_REF(enter_withdrawal)), GAMING_WITHDRAWAL_TIME, TIMER_STOPPABLE) - -/** - * Gamer won a game - * - * Executed on the COMSIG_MOB_WON_VIDEOGAME signal - * This signal should be called whenever a player has won a video game. - * (E.g. Orion Trail) - */ -/datum/quirk/gamer/proc/won_game() - SIGNAL_HANDLER - // Epic gamer victory - var/mob/living/carbon/human/human_holder = quirk_holder - human_holder.add_mood_event("gamer_won", /datum/mood_event/gamer_won) - -/** - * Gamer lost a game - * - * Executed on the COMSIG_MOB_LOST_VIDEOGAME signal - * This signal should be called whenever a player has lost a video game. - * (E.g. Orion Trail) - */ -/datum/quirk/gamer/proc/lost_game() - SIGNAL_HANDLER - // Executed when a gamer has lost - var/mob/living/carbon/human/human_holder = quirk_holder - human_holder.add_mood_event("gamer_lost", /datum/mood_event/gamer_lost) - // Executed asynchronously due to say() - INVOKE_ASYNC(src, PROC_REF(gamer_moment)) -/** - * Gamer is playing a game - * - * Executed on the COMSIG_MOB_PLAYED_VIDEOGAME signal - * This signal should be called whenever a player interacts with a video game. - */ -/datum/quirk/gamer/proc/gamed() - SIGNAL_HANDLER - - var/mob/living/carbon/human/human_holder = quirk_holder - // Remove withdrawal malus - human_holder.clear_mood_event("gamer_withdrawal") - // Reset withdrawal timer - if (gaming_withdrawal_timer) - deltimer(gaming_withdrawal_timer) - gaming_withdrawal_timer = addtimer(CALLBACK(src, PROC_REF(enter_withdrawal)), GAMING_WITHDRAWAL_TIME, TIMER_STOPPABLE) - - -/datum/quirk/gamer/proc/gamer_moment() - // It was a heated gamer moment... - var/mob/living/carbon/human/human_holder = quirk_holder - human_holder.say(";[pick("SHIT", "PISS", "FUCK")]!!", forced = name) - -/datum/quirk/gamer/proc/enter_withdrawal() - var/mob/living/carbon/human/human_holder = quirk_holder - human_holder.add_mood_event("gamer_withdrawal", /datum/mood_event/gamer_withdrawal) - -#undef GAMING_WITHDRAWAL_TIME diff --git a/code/datums/quirks/neutral_quirks/bald.dm b/code/datums/quirks/neutral_quirks/bald.dm new file mode 100644 index 000000000000..f4ec1a27b760 --- /dev/null +++ b/code/datums/quirks/neutral_quirks/bald.dm @@ -0,0 +1,54 @@ +/datum/quirk/item_quirk/bald + name = "Smooth-Headed" + desc = "You have no hair and are quite insecure about it! Keep your wig on, or at least your head covered up." + icon = FA_ICON_EGG + value = 0 + mob_trait = TRAIT_BALD + gain_text = span_notice("Your head is as smooth as can be, it's terrible.") + lose_text = span_notice("Your head itches, could it be... growing hair?!") + medical_record_text = "Patient starkly refused to take off headwear during examination." + mail_goodies = list(/obj/item/clothing/head/wig/random) + /// The user's starting hairstyle + var/old_hair + +/datum/quirk/item_quirk/bald/add(client/client_source) + var/mob/living/carbon/human/human_holder = quirk_holder + old_hair = human_holder.hairstyle + human_holder.hairstyle = "Bald" + human_holder.update_body_parts() + RegisterSignal(human_holder, COMSIG_CARBON_EQUIP_HAT, PROC_REF(equip_hat)) + RegisterSignal(human_holder, COMSIG_CARBON_UNEQUIP_HAT, PROC_REF(unequip_hat)) + +/datum/quirk/item_quirk/bald/add_unique(client/client_source) + var/obj/item/clothing/head/wig/natural/baldie_wig = new(get_turf(quirk_holder)) + if(old_hair == "Bald") + baldie_wig.hairstyle = pick(GLOB.hairstyles_list - "Bald") + else + baldie_wig.hairstyle = old_hair + + baldie_wig.update_appearance() + + give_item_to_holder(baldie_wig, list(LOCATION_HEAD = ITEM_SLOT_HEAD, LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, LOCATION_HANDS = ITEM_SLOT_HANDS)) + +/datum/quirk/item_quirk/bald/remove() + . = ..() + var/mob/living/carbon/human/human_holder = quirk_holder + human_holder.hairstyle = old_hair + human_holder.update_body_parts() + UnregisterSignal(human_holder, list(COMSIG_CARBON_EQUIP_HAT, COMSIG_CARBON_UNEQUIP_HAT)) + human_holder.clear_mood_event("bad_hair_day") + +///Checks if the headgear equipped is a wig and sets the mood event accordingly +/datum/quirk/item_quirk/bald/proc/equip_hat(mob/user, obj/item/hat) + SIGNAL_HANDLER + + if(istype(hat, /obj/item/clothing/head/wig)) + quirk_holder.add_mood_event("bad_hair_day", /datum/mood_event/confident_mane) //Our head is covered, but also by a wig so we're happy. + else + quirk_holder.clear_mood_event("bad_hair_day") //Our head is covered + +///Applies a bad moodlet for having an uncovered head +/datum/quirk/item_quirk/bald/proc/unequip_hat(mob/user, obj/item/clothing, force, newloc, no_move, invdrop, silent) + SIGNAL_HANDLER + + quirk_holder.add_mood_event("bad_hair_day", /datum/mood_event/bald) diff --git a/code/datums/quirks/neutral_quirks/colorist.dm b/code/datums/quirks/neutral_quirks/colorist.dm new file mode 100644 index 000000000000..cad9c0a742e1 --- /dev/null +++ b/code/datums/quirks/neutral_quirks/colorist.dm @@ -0,0 +1,10 @@ +/datum/quirk/item_quirk/colorist + name = "Colorist" + desc = "You like carrying around a hair dye spray to quickly apply color patterns to your hair." + icon = FA_ICON_FILL_DRIP + value = 0 + medical_record_text = "Patient enjoys dyeing their hair with pretty colors." + mail_goodies = list(/obj/item/dyespray) + +/datum/quirk/item_quirk/colorist/add_unique(client/client_source) + give_item_to_holder(/obj/item/dyespray, list(LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, LOCATION_HANDS = ITEM_SLOT_HANDS)) diff --git a/code/datums/quirks/neutral_quirks/deviant_tastes.dm b/code/datums/quirks/neutral_quirks/deviant_tastes.dm new file mode 100644 index 000000000000..dc8096b71008 --- /dev/null +++ b/code/datums/quirks/neutral_quirks/deviant_tastes.dm @@ -0,0 +1,24 @@ +/datum/quirk/deviant_tastes + name = "Deviant Tastes" + desc = "You dislike food that most people enjoy, and find delicious what they don't." + icon = FA_ICON_FACE_GRIN_TONGUE_SQUINT + value = 0 + gain_text = span_notice("You start craving something that tastes strange.") + lose_text = span_notice("You feel like eating normal food again.") + medical_record_text = "Patient demonstrates irregular nutrition preferences." + mail_goodies = list(/obj/item/food/urinalcake, /obj/item/food/badrecipe) // Mhhhmmm yummy + +/datum/quirk/deviant_tastes/add(client/client_source) + var/obj/item/organ/internal/tongue/tongue = quirk_holder.get_organ_slot(ORGAN_SLOT_TONGUE) + if(!tongue) + return + var/liked_foodtypes = tongue.liked_foodtypes + tongue.liked_foodtypes = tongue.disliked_foodtypes + tongue.disliked_foodtypes = liked_foodtypes + +/datum/quirk/deviant_tastes/remove() + var/obj/item/organ/internal/tongue/tongue = quirk_holder.get_organ_slot(ORGAN_SLOT_TONGUE) + if(!tongue) + return + tongue.liked_foodtypes = initial(tongue.liked_foodtypes) + tongue.disliked_foodtypes = initial(tongue.disliked_foodtypes) diff --git a/code/datums/quirks/neutral_quirks/extrovert.dm b/code/datums/quirks/neutral_quirks/extrovert.dm new file mode 100644 index 000000000000..5622956ba5b5 --- /dev/null +++ b/code/datums/quirks/neutral_quirks/extrovert.dm @@ -0,0 +1,10 @@ +/datum/quirk/extrovert + name = "Extrovert" + desc = "You are energized by talking to others, and enjoy spending your free time in the bar." + icon = FA_ICON_USERS + value = 0 + mob_trait = TRAIT_EXTROVERT + gain_text = span_notice("You feel like hanging out with other people.") + lose_text = span_danger("You feel like you're over the bar scene.") + medical_record_text = "Patient will not shut the hell up." + mail_goodies = list(/obj/item/reagent_containers/cup/glass/flask) diff --git a/code/datums/quirks/neutral_quirks/foreigner.dm b/code/datums/quirks/neutral_quirks/foreigner.dm new file mode 100644 index 000000000000..e6298faa6649 --- /dev/null +++ b/code/datums/quirks/neutral_quirks/foreigner.dm @@ -0,0 +1,21 @@ +/datum/quirk/foreigner + name = "Foreigner" + desc = "You're not from around here. You don't know Galactic Common!" + icon = FA_ICON_LANGUAGE + value = -2 //Monkestation change 0->-2 + gain_text = span_notice("The words being spoken around you don't make any sense.") + lose_text = span_notice("You've developed fluency in Galactic Common.") + medical_record_text = "Patient does not speak Galactic Common and may require an interpreter." + mail_goodies = list(/obj/item/taperecorder) // for translation + +/datum/quirk/foreigner/add(client/client_source) + var/mob/living/carbon/human/human_holder = quirk_holder + human_holder.add_blocked_language(/datum/language/common) + if(ishumanbasic(human_holder)) + human_holder.grant_language(/datum/language/uncommon, understood = TRUE, spoken = TRUE, source = LANGUAGE_QUIRK) + +/datum/quirk/foreigner/remove() + var/mob/living/carbon/human/human_holder = quirk_holder + human_holder.remove_blocked_language(/datum/language/common) + if(ishumanbasic(human_holder)) + human_holder.remove_language(/datum/language/uncommon) diff --git a/code/datums/quirks/neutral_quirks/gamer.dm b/code/datums/quirks/neutral_quirks/gamer.dm new file mode 100644 index 000000000000..70b0267dab0f --- /dev/null +++ b/code/datums/quirks/neutral_quirks/gamer.dm @@ -0,0 +1,90 @@ +#define GAMING_WITHDRAWAL_TIME (15 MINUTES) +/datum/quirk/gamer + name = "Gamer" + desc = "You are a hardcore gamer, and you have a need to game. You love winning and hate losing. You only like gamer food." + icon = FA_ICON_GAMEPAD + value = 0 + gain_text = span_notice("You feel the sudden urge to game.") + lose_text = span_notice("You've lost all interest in gaming.") + medical_record_text = "Patient has a severe video game addiction." + mob_trait = TRAIT_GAMER + mail_goodies = list(/obj/item/toy/intento, /obj/item/clothing/head/fedora) + /// Timer for gaming withdrawal to kick in + var/gaming_withdrawal_timer = TIMER_ID_NULL + +/datum/quirk/gamer/add(client/client_source) + var/obj/item/organ/internal/tongue/tongue = quirk_holder.get_organ_slot(ORGAN_SLOT_TONGUE) + if(tongue) + // Gamer diet + tongue.liked_foodtypes = JUNKFOOD + RegisterSignal(quirk_holder, COMSIG_MOB_WON_VIDEOGAME, PROC_REF(won_game)) + RegisterSignal(quirk_holder, COMSIG_MOB_LOST_VIDEOGAME, PROC_REF(lost_game)) + RegisterSignal(quirk_holder, COMSIG_MOB_PLAYED_VIDEOGAME, PROC_REF(gamed)) + +/datum/quirk/gamer/add_unique(client/client_source) + // The gamer starts off quelled + gaming_withdrawal_timer = addtimer(CALLBACK(src, PROC_REF(enter_withdrawal)), GAMING_WITHDRAWAL_TIME, TIMER_STOPPABLE) + +/datum/quirk/gamer/remove() + var/obj/item/organ/internal/tongue/tongue = quirk_holder.get_organ_slot(ORGAN_SLOT_TONGUE) + if(tongue) + tongue.liked_foodtypes = initial(tongue.liked_foodtypes) + UnregisterSignal(quirk_holder, COMSIG_MOB_WON_VIDEOGAME) + UnregisterSignal(quirk_holder, COMSIG_MOB_LOST_VIDEOGAME) + UnregisterSignal(quirk_holder, COMSIG_MOB_PLAYED_VIDEOGAME) + +/** + * Gamer won a game + * + * Executed on the COMSIG_MOB_WON_VIDEOGAME signal + * This signal should be called whenever a player has won a video game. + * (E.g. Orion Trail) + */ +/datum/quirk/gamer/proc/won_game() + SIGNAL_HANDLER + // Epic gamer victory + var/mob/living/carbon/human/human_holder = quirk_holder + human_holder.add_mood_event("gamer_won", /datum/mood_event/gamer_won) + +/** + * Gamer lost a game + * + * Executed on the COMSIG_MOB_LOST_VIDEOGAME signal + * This signal should be called whenever a player has lost a video game. + * (E.g. Orion Trail) + */ +/datum/quirk/gamer/proc/lost_game() + SIGNAL_HANDLER + // Executed when a gamer has lost + var/mob/living/carbon/human/human_holder = quirk_holder + human_holder.add_mood_event("gamer_lost", /datum/mood_event/gamer_lost) + // Executed asynchronously due to say() + INVOKE_ASYNC(src, PROC_REF(gamer_moment)) +/** + * Gamer is playing a game + * + * Executed on the COMSIG_MOB_PLAYED_VIDEOGAME signal + * This signal should be called whenever a player interacts with a video game. + */ +/datum/quirk/gamer/proc/gamed() + SIGNAL_HANDLER + + var/mob/living/carbon/human/human_holder = quirk_holder + // Remove withdrawal malus + human_holder.clear_mood_event("gamer_withdrawal") + // Reset withdrawal timer + if (gaming_withdrawal_timer) + deltimer(gaming_withdrawal_timer) + gaming_withdrawal_timer = addtimer(CALLBACK(src, PROC_REF(enter_withdrawal)), GAMING_WITHDRAWAL_TIME, TIMER_STOPPABLE) + + +/datum/quirk/gamer/proc/gamer_moment() + // It was a heated gamer moment... + var/mob/living/carbon/human/human_holder = quirk_holder + human_holder.say(";[pick("SHIT", "PISS", "FUCK")]!!", forced = name) + +/datum/quirk/gamer/proc/enter_withdrawal() + var/mob/living/carbon/human/human_holder = quirk_holder + human_holder.add_mood_event("gamer_withdrawal", /datum/mood_event/gamer_withdrawal) + +#undef GAMING_WITHDRAWAL_TIME diff --git a/code/datums/quirks/neutral_quirks/heterochromatic.dm b/code/datums/quirks/neutral_quirks/heterochromatic.dm new file mode 100644 index 000000000000..a3024304bdd8 --- /dev/null +++ b/code/datums/quirks/neutral_quirks/heterochromatic.dm @@ -0,0 +1,54 @@ +/datum/quirk/heterochromatic + name = "Heterochromatic" + desc = "One of your eyes is a different color than the other!" + icon = FA_ICON_LOW_VISION // Ignore the icon name, its actually a fairly good representation of different color eyes + quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_CHANGES_APPEARANCE + value = 0 + mail_goodies = list(/obj/item/clothing/glasses/eyepatch) + +// Only your first eyes are heterochromatic +// If someone comes and says "well mr coder you can have DNA bound heterochromia so it's not unrealistic +// to allow all inserted replacement eyes to become heterochromatic or for it to transfer between mobs" +// Then just change this to [proc/add] I really don't care +/datum/quirk/heterochromatic/add_unique(client/client_source) + var/color = client_source?.prefs.read_preference(/datum/preference/color/heterochromatic) + if(!color) + return + + apply_heterochromatic_eyes(color) + +/// Applies the passed color to this mob's eyes +/datum/quirk/heterochromatic/proc/apply_heterochromatic_eyes(color) + var/mob/living/carbon/human/human_holder = quirk_holder + var/was_not_hetero = !human_holder.eye_color_heterochromatic + human_holder.eye_color_heterochromatic = TRUE + human_holder.eye_color_right = color + + var/obj/item/organ/internal/eyes/eyes_of_the_holder = quirk_holder.get_organ_by_type(/obj/item/organ/internal/eyes) + if(!eyes_of_the_holder) + return + + eyes_of_the_holder.eye_color_right = color + eyes_of_the_holder.old_eye_color_right = color + eyes_of_the_holder.refresh() + + if(was_not_hetero) + RegisterSignal(human_holder, COMSIG_CARBON_LOSE_ORGAN, PROC_REF(check_eye_removal)) + +/datum/quirk/heterochromatic/remove() + var/mob/living/carbon/human/human_holder = quirk_holder + human_holder.eye_color_heterochromatic = FALSE + human_holder.eye_color_right = human_holder.eye_color_left + UnregisterSignal(human_holder, COMSIG_CARBON_LOSE_ORGAN) + +/datum/quirk/heterochromatic/proc/check_eye_removal(datum/source, obj/item/organ/internal/eyes/removed) + SIGNAL_HANDLER + + if(!istype(removed)) + return + + // Eyes were removed, remove heterochromia from the human holder and bid them adieu + var/mob/living/carbon/human/human_holder = quirk_holder + human_holder.eye_color_heterochromatic = FALSE + human_holder.eye_color_right = human_holder.eye_color_left + UnregisterSignal(human_holder, COMSIG_CARBON_LOSE_ORGAN) diff --git a/code/datums/quirks/neutral_quirks/introvert.dm b/code/datums/quirks/neutral_quirks/introvert.dm new file mode 100644 index 000000000000..51f6f3e785e4 --- /dev/null +++ b/code/datums/quirks/neutral_quirks/introvert.dm @@ -0,0 +1,10 @@ +/datum/quirk/introvert + name = "Introvert" + desc = "You are energized by having time to yourself, and enjoy spending your free time in the library." + icon = FA_ICON_BOOK_READER + value = 0 + mob_trait = TRAIT_INTROVERT + gain_text = span_notice("You feel like reading a good book quietly.") + lose_text = span_danger("You feel like libraries are boring.") + medical_record_text = "Patient doesn't seem to say much." + mail_goodies = list(/obj/item/book/random) diff --git a/code/datums/quirks/neutral_quirks/monochromatic.dm b/code/datums/quirks/neutral_quirks/monochromatic.dm new file mode 100644 index 000000000000..dd66220cb56a --- /dev/null +++ b/code/datums/quirks/neutral_quirks/monochromatic.dm @@ -0,0 +1,23 @@ +/datum/quirk/monochromatic + name = "Monochromacy" + desc = "You suffer from full colorblindness, and perceive nearly the entire world in blacks and whites." + icon = FA_ICON_ADJUST + value = 0 + medical_record_text = "Patient is afflicted with almost complete color blindness." + mail_goodies = list( // Noir detective wannabe + /obj/item/clothing/suit/jacket/det_suit/noir, + /obj/item/clothing/suit/jacket/det_suit/dark, + /obj/item/clothing/head/fedora/beige, + /obj/item/clothing/head/fedora/white, + ) + +/datum/quirk/monochromatic/add(client/client_source) + quirk_holder.add_client_colour(/datum/client_colour/monochrome) + +/datum/quirk/monochromatic/post_add() + if(is_detective_job(quirk_holder.mind.assigned_role)) + to_chat(quirk_holder, span_boldannounce("Mmm. Nothing's ever clear on this station. It's all shades of gray...")) + quirk_holder.playsound_local(quirk_holder, 'sound/ambience/ambidet1.ogg', 50, FALSE) + +/datum/quirk/monochromatic/remove() + quirk_holder.remove_client_colour(/datum/client_colour/monochrome) diff --git a/code/datums/quirks/neutral_quirks/no_taste.dm b/code/datums/quirks/neutral_quirks/no_taste.dm new file mode 100644 index 000000000000..1f0b7b0150bb --- /dev/null +++ b/code/datums/quirks/neutral_quirks/no_taste.dm @@ -0,0 +1,10 @@ +/datum/quirk/no_taste + name = "Ageusia" + desc = "You can't taste anything! Toxic food will still poison you." + icon = FA_ICON_FACE_MEH_BLANK + value = 0 + mob_trait = TRAIT_AGEUSIA + gain_text = span_notice("You can't taste anything!") + lose_text = span_notice("You can taste again!") + medical_record_text = "Patient suffers from ageusia and is incapable of tasting food or reagents." + mail_goodies = list(/obj/effect/spawner/random/food_or_drink/condiment) // but can you taste the salt? CAN YOU?! diff --git a/code/datums/quirks/neutral_quirks/phobia.dm b/code/datums/quirks/neutral_quirks/phobia.dm new file mode 100644 index 000000000000..224401f0670c --- /dev/null +++ b/code/datums/quirks/neutral_quirks/phobia.dm @@ -0,0 +1,20 @@ +/datum/quirk/phobia + name = "Phobia" + desc = "You are irrationally afraid of something." + icon = FA_ICON_SPIDER + value = 0 + medical_record_text = "Patient has an irrational fear of something." + mail_goodies = list(/obj/item/clothing/glasses/blindfold, /obj/item/storage/pill_bottle/psicodine) + +// Phobia will follow you between transfers +/datum/quirk/phobia/add(client/client_source) + var/phobia = client_source?.prefs.read_preference(/datum/preference/choiced/phobia) + if(!phobia) + return + + var/mob/living/carbon/human/human_holder = quirk_holder + human_holder.gain_trauma(new /datum/brain_trauma/mild/phobia(phobia), TRAUMA_RESILIENCE_ABSOLUTE) + +/datum/quirk/phobia/remove() + var/mob/living/carbon/human/human_holder = quirk_holder + human_holder.cure_trauma_type(/datum/brain_trauma/mild/phobia, TRAUMA_RESILIENCE_ABSOLUTE) diff --git a/code/datums/quirks/neutral_quirks/photographer.dm b/code/datums/quirks/neutral_quirks/photographer.dm new file mode 100644 index 000000000000..d2284df240ca --- /dev/null +++ b/code/datums/quirks/neutral_quirks/photographer.dm @@ -0,0 +1,29 @@ +/datum/quirk/item_quirk/photographer + name = "Photographer" + desc = "You carry your camera and personal photo album everywhere you go, and your scrapbooks are legendary among your coworkers." + icon = FA_ICON_CAMERA + value = 0 + mob_trait = TRAIT_PHOTOGRAPHER + gain_text = span_notice("You know everything about photography.") + lose_text = span_danger("You forget how photo cameras work.") + medical_record_text = "Patient mentions photography as a stress-relieving hobby." + mail_goodies = list(/obj/item/camera_film) + +/datum/quirk/item_quirk/photographer/add_unique(client/client_source) + var/mob/living/carbon/human/human_holder = quirk_holder + var/obj/item/storage/photo_album/personal/photo_album = new(get_turf(human_holder)) + photo_album.persistence_id = "personal_[human_holder.last_mind?.key]" // this is a persistent album, the ID is tied to the account's key to avoid tampering + photo_album.persistence_load() + photo_album.name = "[human_holder.real_name]'s photo album" + + give_item_to_holder(photo_album, list(LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, LOCATION_HANDS = ITEM_SLOT_HANDS)) + give_item_to_holder( + /obj/item/camera, + list( + LOCATION_NECK = ITEM_SLOT_NECK, + LOCATION_LPOCKET = ITEM_SLOT_LPOCKET, + LOCATION_RPOCKET = ITEM_SLOT_RPOCKET, + LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, + LOCATION_HANDS = ITEM_SLOT_HANDS + ) + ) diff --git a/code/datums/quirks/neutral_quirks/pineapple_hater.dm b/code/datums/quirks/neutral_quirks/pineapple_hater.dm new file mode 100644 index 000000000000..f17eb4224ec4 --- /dev/null +++ b/code/datums/quirks/neutral_quirks/pineapple_hater.dm @@ -0,0 +1,27 @@ +/datum/quirk/pineapple_hater + name = "Ananas Aversion" + desc = "You find yourself greatly detesting fruits of the ananas genus. Serious, how the hell can anyone say these things are good? And what kind of madman would even dare putting it on a pizza!?" + icon = FA_ICON_THUMBS_DOWN + value = 0 + gain_text = span_notice("You find yourself pondering what kind of idiot actually enjoys pineapples...") + lose_text = span_notice("Your feelings towards pineapples seem to return to a lukewarm state.") + medical_record_text = "Patient is correct to think that pineapple is disgusting." + mail_goodies = list( // basic pizza slices + /obj/item/food/pizzaslice/margherita, + /obj/item/food/pizzaslice/meat, + /obj/item/food/pizzaslice/mushroom, + /obj/item/food/pizzaslice/vegetable, + /obj/item/food/pizzaslice/sassysage, + ) + +/datum/quirk/pineapple_hater/add(client/client_source) + var/obj/item/organ/internal/tongue/tongue = quirk_holder.get_organ_slot(ORGAN_SLOT_TONGUE) + if(!tongue) + return + tongue.disliked_foodtypes |= PINEAPPLE + +/datum/quirk/pineapple_hater/remove() + var/obj/item/organ/internal/tongue/tongue = quirk_holder.get_organ_slot(ORGAN_SLOT_TONGUE) + if(!tongue) + return + tongue.disliked_foodtypes = initial(tongue.disliked_foodtypes) diff --git a/code/datums/quirks/neutral_quirks/pineapple_liker.dm b/code/datums/quirks/neutral_quirks/pineapple_liker.dm new file mode 100644 index 000000000000..c342e14769cf --- /dev/null +++ b/code/datums/quirks/neutral_quirks/pineapple_liker.dm @@ -0,0 +1,21 @@ +/datum/quirk/pineapple_liker + name = "Ananas Affinity" + desc = "You find yourself greatly enjoying fruits of the ananas genus. You can't seem to ever get enough of their sweet goodness!" + icon = FA_ICON_THUMBS_UP + value = 0 + gain_text = span_notice("You feel an intense craving for pineapple.") + lose_text = span_notice("Your feelings towards pineapples seem to return to a lukewarm state.") + medical_record_text = "Patient demonstrates a pathological love of pineapple." + mail_goodies = list(/obj/item/food/pizzaslice/pineapple) + +/datum/quirk/pineapple_liker/add(client/client_source) + var/obj/item/organ/internal/tongue/tongue = quirk_holder.get_organ_slot(ORGAN_SLOT_TONGUE) + if(!tongue) + return + tongue.liked_foodtypes |= PINEAPPLE + +/datum/quirk/pineapple_liker/remove() + var/obj/item/organ/internal/tongue/tongue = quirk_holder.get_organ_slot(ORGAN_SLOT_TONGUE) + if(!tongue) + return + tongue.liked_foodtypes = initial(tongue.liked_foodtypes) diff --git a/code/datums/quirks/neutral_quirks/pride_pin.dm b/code/datums/quirks/neutral_quirks/pride_pin.dm new file mode 100644 index 000000000000..0bdb26260109 --- /dev/null +++ b/code/datums/quirks/neutral_quirks/pride_pin.dm @@ -0,0 +1,28 @@ +/datum/quirk/item_quirk/pride_pin + name = "Pride Pin" + desc = "Show off your pride with this changing pride pin!" + icon = FA_ICON_RAINBOW + value = 0 + //MONKESTATION EDIT START + mob_trait = TRAIT_PRIDE_PIN + quirk_flags = QUIRK_CHANGES_APPEARANCE + gain_text = span_notice("You feel proud to be queer.") + lose_text = span_danger("You decide to repress your feelings.") + //MONKESTATION EDIT END + +/datum/quirk/item_quirk/pride_pin/add_unique(client/client_source) + var/obj/item/clothing/accessory/pride/pin = new(get_turf(quirk_holder)) + + var/pride_choice = client_source?.prefs?.read_preference(/datum/preference/choiced/pride_pin) || assoc_to_keys(GLOB.pride_pin_reskins)[1] + var/pride_reskin = GLOB.pride_pin_reskins[pride_choice] + + pin.current_skin = pride_choice + pin.icon_state = pride_reskin + //MONKESTATION EDIT START + var/mob/living/carbon/human/H = quirk_holder + if (istype(H)) + var/obj/item/clothing/under/U = H.w_uniform + if(U && U.attach_accessory(pin)) + return + //MONKESTATION EDIT END + give_item_to_holder(pin, list(LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, LOCATION_HANDS = ITEM_SLOT_HANDS)) diff --git a/code/datums/quirks/neutral_quirks/shifty_eyes.dm b/code/datums/quirks/neutral_quirks/shifty_eyes.dm new file mode 100644 index 000000000000..29f1def37615 --- /dev/null +++ b/code/datums/quirks/neutral_quirks/shifty_eyes.dm @@ -0,0 +1,8 @@ +/datum/quirk/shifty_eyes + name = "Shifty Eyes" + desc = "Your eyes tend to wander all over the place, whether you mean to or not, causing people to sometimes think you're looking directly at them when you aren't." + icon = FA_ICON_EYE + value = 0 + medical_record_text = "Fucking creep kept staring at me the whole damn checkup. I'm only diagnosing this because it's less awkward than thinking it was on purpose." + mob_trait = TRAIT_SHIFTY_EYES + mail_goodies = list(/obj/item/clothing/head/costume/papersack, /obj/item/clothing/head/costume/papersack/smiley) diff --git a/code/datums/quirks/neutral_quirks/snob.dm b/code/datums/quirks/neutral_quirks/snob.dm new file mode 100644 index 000000000000..ab273f1ae530 --- /dev/null +++ b/code/datums/quirks/neutral_quirks/snob.dm @@ -0,0 +1,10 @@ +/datum/quirk/snob + name = "Snob" + desc = "You care about the finer things, if a room doesn't look nice its just not really worth it, is it?" + icon = FA_ICON_USER_TIE + value = 0 + gain_text = span_notice("You feel like you understand what things should look like.") + lose_text = span_notice("Well who cares about deco anyways?") + medical_record_text = "Patient seems to be rather stuck up." + mob_trait = TRAIT_SNOB + mail_goodies = list(/obj/item/chisel, /obj/item/paint_palette) diff --git a/code/datums/quirks/neutral_quirks/vegetarian.dm b/code/datums/quirks/neutral_quirks/vegetarian.dm new file mode 100644 index 000000000000..0ade72acafe5 --- /dev/null +++ b/code/datums/quirks/neutral_quirks/vegetarian.dm @@ -0,0 +1,23 @@ +/datum/quirk/vegetarian + name = "Vegetarian" + desc = "You find the idea of eating meat morally and physically repulsive." + icon = FA_ICON_CARROT + value = 0 + gain_text = span_notice("You feel repulsion at the idea of eating meat.") + lose_text = span_notice("You feel like eating meat isn't that bad.") + medical_record_text = "Patient reports a vegetarian diet." + mail_goodies = list(/obj/effect/spawner/random/food_or_drink/salad) + +/datum/quirk/vegetarian/add(client/client_source) + var/obj/item/organ/internal/tongue/tongue = quirk_holder.get_organ_slot(ORGAN_SLOT_TONGUE) + if(!tongue) + return + tongue.liked_foodtypes &= ~MEAT + tongue.disliked_foodtypes |= MEAT + +/datum/quirk/vegetarian/remove() + var/obj/item/organ/internal/tongue/tongue = quirk_holder.get_organ_slot(ORGAN_SLOT_TONGUE) + if(!tongue) + return + tongue.liked_foodtypes = initial(tongue.liked_foodtypes) + tongue.disliked_foodtypes = initial(tongue.disliked_foodtypes) diff --git a/code/datums/quirks/positive_quirks.dm b/code/datums/quirks/positive_quirks.dm deleted file mode 100644 index 6f3db54bac8a..000000000000 --- a/code/datums/quirks/positive_quirks.dm +++ /dev/null @@ -1,354 +0,0 @@ -//predominantly positive traits -//this file is named weirdly so that positive traits are listed above negative ones - -/datum/quirk/alcohol_tolerance - name = "Alcohol Tolerance" - desc = "You become drunk more slowly and suffer fewer drawbacks from alcohol." - icon = FA_ICON_BEER - value = 4 - mob_trait = TRAIT_ALCOHOL_TOLERANCE - gain_text = span_notice("You feel like you could drink a whole keg!") - lose_text = span_danger("You don't feel as resistant to alcohol anymore. Somehow.") - medical_record_text = "Patient demonstrates a high tolerance for alcohol." - mail_goodies = list(/obj/item/skillchip/wine_taster) - -/datum/quirk/apathetic - name = "Apathetic" - desc = "You just don't care as much as other people. That's nice to have in a place like this, I guess." - icon = FA_ICON_FACE_MEH - value = 4 - quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_MOODLET_BASED - medical_record_text = "Patient was administered the Apathy Evaluation Scale but did not bother to complete it." - mail_goodies = list(/obj/item/hourglass) - -/datum/quirk/apathetic/add(client/client_source) - quirk_holder.mob_mood?.mood_modifier -= 0.2 - -/datum/quirk/apathetic/remove() - quirk_holder.mob_mood?.mood_modifier += 0.2 - -/datum/quirk/drunkhealing - name = "Drunken Resilience" - desc = "Nothing like a good drink to make you feel on top of the world. Whenever you're drunk, you slowly recover from injuries." - icon = FA_ICON_WINE_BOTTLE - value = 8 - gain_text = span_notice("You feel like a drink would do you good.") - lose_text = span_danger("You no longer feel like drinking would ease your pain.") - medical_record_text = "Patient has unusually efficient liver metabolism and can slowly regenerate wounds by drinking alcoholic beverages." - quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_PROCESSES - mail_goodies = list(/obj/effect/spawner/random/food_or_drink/booze) - -/datum/quirk/drunkhealing/process(seconds_per_tick) - switch(quirk_holder.get_drunk_amount()) - if (6 to 40) - quirk_holder.adjustBruteLoss(-0.1 * seconds_per_tick, FALSE, required_bodytype = BODYTYPE_ORGANIC) - quirk_holder.adjustFireLoss(-0.05 * seconds_per_tick, required_bodytype = BODYTYPE_ORGANIC) - if (41 to 60) - quirk_holder.adjustBruteLoss(-0.4 * seconds_per_tick, FALSE, required_bodytype = BODYTYPE_ORGANIC) - quirk_holder.adjustFireLoss(-0.2 * seconds_per_tick, required_bodytype = BODYTYPE_ORGANIC) - if (61 to INFINITY) - quirk_holder.adjustBruteLoss(-0.8 * seconds_per_tick, FALSE, required_bodytype = BODYTYPE_ORGANIC) - quirk_holder.adjustFireLoss(-0.4 * seconds_per_tick, required_bodytype = BODYTYPE_ORGANIC) - -/datum/quirk/empath - name = "Empath" - desc = "Whether it's a sixth sense or careful study of body language, it only takes you a quick glance at someone to understand how they feel." - icon = FA_ICON_FACE_SMILE_BEAM - value = 2 //monkestation change 8->2 - mob_trait = TRAIT_EMPATH - gain_text = span_notice("You feel in tune with those around you.") - lose_text = span_danger("You feel isolated from others.") - medical_record_text = "Patient is highly perceptive of and sensitive to social cues, or may possibly have ESP. Further testing needed." - mail_goodies = list(/obj/item/toy/foamfinger) - -/datum/quirk/item_quirk/clown_enjoyer - name = "Clown Enjoyer" - desc = "You enjoy clown antics and get a mood boost from wearing your clown pin." - icon = FA_ICON_MAP_PIN - value = 2 - mob_trait = TRAIT_CLOWN_ENJOYER - gain_text = span_notice("You are a big enjoyer of clowns.") - lose_text = span_danger("The clown doesn't seem so great.") - medical_record_text = "Patient reports being a big enjoyer of clowns." - mail_goodies = list( - /obj/item/bikehorn, - /obj/item/stamp/clown, - /obj/item/megaphone/clown, - /obj/item/clothing/shoes/clown_shoes, - /obj/item/bedsheet/clown, - /obj/item/clothing/mask/gas/clown_hat, - /obj/item/storage/backpack/clown, - /obj/item/storage/backpack/duffelbag/clown, - /obj/item/toy/crayon/rainbow, - /obj/item/toy/figure/clown, - ) - -/datum/quirk/item_quirk/clown_enjoyer/add_unique(client/client_source) - give_item_to_holder(/obj/item/clothing/accessory/clown_enjoyer_pin, list(LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, LOCATION_HANDS = ITEM_SLOT_HANDS)) - -/datum/quirk/item_quirk/clown_enjoyer/add(client/client_source) - var/datum/atom_hud/fan = GLOB.huds[DATA_HUD_FAN] - fan.show_to(quirk_holder) - -/datum/quirk/item_quirk/mime_fan - name = "Mime Fan" - desc = "You're a fan of mime antics and get a mood boost from wearing your mime pin." - icon = FA_ICON_THUMBTACK - value = 2 - mob_trait = TRAIT_MIME_FAN - gain_text = span_notice("You are a big fan of the Mime.") - lose_text = span_danger("The mime doesn't seem so great.") - medical_record_text = "Patient reports being a big fan of mimes." - mail_goodies = list( - /obj/item/toy/crayon/mime, - /obj/item/clothing/mask/gas/mime, - /obj/item/storage/backpack/mime, - /obj/item/clothing/under/rank/civilian/mime, - /obj/item/reagent_containers/cup/glass/bottle/bottleofnothing, - /obj/item/stamp/mime, - /obj/item/storage/box/survival/hug/black, - /obj/item/bedsheet/mime, - /obj/item/clothing/shoes/sneakers/mime, - /obj/item/toy/figure/mime, - /obj/item/toy/crayon/spraycan/mimecan, - ) - -/datum/quirk/item_quirk/mime_fan/add_unique(client/client_source) - give_item_to_holder(/obj/item/clothing/accessory/mime_fan_pin, list(LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, LOCATION_HANDS = ITEM_SLOT_HANDS)) - -/datum/quirk/item_quirk/mime_fan/add(client/client_source) - var/datum/atom_hud/fan = GLOB.huds[DATA_HUD_FAN] - fan.show_to(quirk_holder) - -/datum/quirk/freerunning - name = "Freerunning" - desc = "You're great at quick moves! You can climb tables more quickly, can sprint longer distances, and take no damage from short falls." //monkestation change added ", can sprint longer distances," - icon = FA_ICON_RUNNING - value = 6 //monkestation change 8->6 - mob_trait = TRAIT_FREERUNNING - gain_text = span_notice("You feel lithe on your feet!") - lose_text = span_danger("You feel clumsy again.") - medical_record_text = "Patient scored highly on cardio tests." - mail_goodies = list(/obj/item/melee/skateboard, /obj/item/clothing/shoes/wheelys/rollerskates) - -/datum/quirk/friendly - name = "Friendly" - desc = "You give the best hugs, especially when you're in the right mood." - icon = FA_ICON_HANDS_HELPING - value = 2 - mob_trait = TRAIT_FRIENDLY - gain_text = span_notice("You want to hug someone.") - lose_text = span_danger("You no longer feel compelled to hug others.") - quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_MOODLET_BASED - medical_record_text = "Patient demonstrates low-inhibitions for physical contact and well-developed arms. Requesting another doctor take over this case." - mail_goodies = list(/obj/item/storage/box/hug) - -/datum/quirk/jolly - name = "Jolly" - desc = "You sometimes just feel happy, for no reason at all." - icon = FA_ICON_FACE_GRIN - value = 4 - mob_trait = TRAIT_JOLLY - quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_MOODLET_BASED - medical_record_text = "Patient demonstrates constant euthymia irregular for environment. It's a bit much, to be honest." - mail_goodies = list(/obj/item/clothing/mask/joy) - -/datum/quirk/light_step - name = "Light Step" - desc = "You walk with a gentle step; footsteps and stepping on sharp objects is quieter and less painful. Also, your hands and clothes will not get messed in case of stepping in blood." - icon = FA_ICON_SHOE_PRINTS - value = 2 //MONKESTATION EDIT: changed 4 to 2 (on pair with hardned soles, the difference is less bloody clothes vs no knockdown when stepping on glass) - mob_trait = TRAIT_LIGHT_STEP - gain_text = span_notice("You walk with a little more litheness.") - lose_text = span_danger("You start tromping around like a barbarian.") - medical_record_text = "Patient's dexterity belies a strong capacity for stealth." - mail_goodies = list(/obj/item/clothing/shoes/sandal) - -/datum/quirk/item_quirk/musician - name = "Musician" - desc = "You can tune handheld musical instruments to play melodies that clear certain negative effects and soothe the soul." - icon = FA_ICON_GUITAR - value = 2 - mob_trait = TRAIT_MUSICIAN - gain_text = span_notice("You know everything about musical instruments.") - lose_text = span_danger("You forget how musical instruments work.") - medical_record_text = "Patient brain scans show a highly-developed auditory pathway." - mail_goodies = list(/obj/effect/spawner/random/entertainment/musical_instrument, /obj/item/instrument/piano_synth/headphones) - -/datum/quirk/item_quirk/musician/add_unique(client/client_source) - give_item_to_holder(/obj/item/choice_beacon/music, list(LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, LOCATION_HANDS = ITEM_SLOT_HANDS)) - -/datum/quirk/night_vision - name = "Night Vision" - desc = "You can see slightly more clearly in full darkness than most people." - icon = FA_ICON_MOON - value = 4 - mob_trait = TRAIT_NIGHT_VISION - gain_text = span_notice("The shadows seem a little less dark.") - lose_text = span_danger("Everything seems a little darker.") - medical_record_text = "Patient's eyes show above-average acclimation to darkness." - mail_goodies = list( - /obj/item/flashlight/flashdark, - /obj/item/food/grown/mushroom/glowshroom/shadowshroom, - /obj/item/skillchip/light_remover, - ) - -/datum/quirk/night_vision/add(client/client_source) - refresh_quirk_holder_eyes() - -/datum/quirk/night_vision/remove() - refresh_quirk_holder_eyes() - -/datum/quirk/night_vision/proc/refresh_quirk_holder_eyes() - var/mob/living/carbon/human/human_quirk_holder = quirk_holder - var/obj/item/organ/internal/eyes/eyes = human_quirk_holder.get_organ_by_type(/obj/item/organ/internal/eyes) - if(!eyes || eyes.lighting_cutoff) - return - // We've either added or removed TRAIT_NIGHT_VISION before calling this proc. Just refresh the eyes. - eyes.refresh() - -/datum/quirk/bilingual - name = "Bilingual" - desc = "Over the years you've picked up an extra language!" - icon = FA_ICON_GLOBE - value = 4 - gain_text = span_notice("Some of the words of the people around you certainly aren't common. Good thing you studied for this.") - lose_text = span_notice("You seem to have forgotten your second language.") - medical_record_text = "Patient speaks multiple languages." - mail_goodies = list(/obj/item/taperecorder, /obj/item/clothing/head/frenchberet, /obj/item/clothing/mask/fakemoustache/italian) - -/datum/quirk/bilingual/add_unique(client/client_source) - var/wanted_language = client_source?.prefs.read_preference(/datum/preference/choiced/language) - var/datum/language/language_type - if(wanted_language == "Random") - language_type = pick(GLOB.roundstart_languages) - else - language_type = GLOB.language_types_by_name[wanted_language] - if(quirk_holder.has_language(language_type)) - language_type = /datum/language/uncommon - if(quirk_holder.has_language(language_type)) - to_chat(quirk_holder, span_boldnotice("You are already familiar with the quirk in your preferences, so you did not learn one.")) - return - to_chat(quirk_holder, span_boldnotice("You are already familiar with the quirk in your preferences, so you learned Galactic Uncommon instead.")) - quirk_holder.grant_language(language_type, source = LANGUAGE_QUIRK) - -/datum/quirk/item_quirk/poster_boy - name = "Poster Boy" - desc = "You have some great posters! Hang them up and make everyone have a great time." - icon = FA_ICON_TAPE - value = 4 - mob_trait = TRAIT_POSTERBOY - medical_record_text = "Patient reports a desire to cover walls with homemade objects." - mail_goodies = list(/obj/item/poster/random_official) - -/datum/quirk/item_quirk/poster_boy/add_unique() - var/mob/living/carbon/human/posterboy = quirk_holder - var/obj/item/storage/box/posterbox/newbox = new() - newbox.add_quirk_posters(posterboy.mind) - give_item_to_holder(newbox, list(LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, LOCATION_HANDS = ITEM_SLOT_HANDS)) - -/obj/item/storage/box/posterbox - name = "Box of Posters" - desc = "You made them yourself!" - -/// fills box of posters based on job, one neutral poster and 2 department posters -/obj/item/storage/box/posterbox/proc/add_quirk_posters(datum/mind/posterboy) - new /obj/item/poster/quirk/crew/random(src) - var/department = posterboy.assigned_role.paycheck_department - if(department == ACCOUNT_CIV) //if you are not part of a department you instead get 3 neutral posters - for(var/i in 1 to 2) - new /obj/item/poster/quirk/crew/random(src) - return - for(var/obj/item/poster/quirk/potential_poster as anything in subtypesof(/obj/item/poster/quirk)) - if(initial(potential_poster.quirk_poster_department) != department) - continue - new potential_poster(src) - -/datum/quirk/selfaware - name = "Self-Aware" - desc = "You know your body well, and can accurately assess the extent of your wounds." - icon = FA_ICON_BONE - value = 6 //monkestation change 8->6 - mob_trait = TRAIT_SELF_AWARE - medical_record_text = "Patient demonstrates an uncanny knack for self-diagnosis." - mail_goodies = list(/obj/item/clothing/neck/stethoscope, /obj/item/skillchip/entrails_reader) - -/datum/quirk/skittish - name = "Skittish" - desc = "You're easy to startle, and hide frequently. Run into a closed locker to jump into it, as long as you have access. You can walk to avoid this." - icon = FA_ICON_TRASH - value = 2 //monkestation change 8->2 - mob_trait = TRAIT_SKITTISH - medical_record_text = "Patient demonstrates a high aversion to danger and has described hiding in containers out of fear." - mail_goodies = list(/obj/structure/closet/cardboard) - -/datum/quirk/item_quirk/spiritual - name = "Spiritual" - desc = "You hold a spiritual belief, whether in God, nature or the arcane rules of the universe. You gain comfort from the presence of holy people, and believe that your prayers are more special than others. Being in the chapel makes you happy." - icon = FA_ICON_BIBLE - value = 4 - mob_trait = TRAIT_SPIRITUAL - gain_text = span_notice("You have faith in a higher power.") - lose_text = span_danger("You lose faith!") - medical_record_text = "Patient reports a belief in a higher power." - mail_goodies = list( - /obj/item/book/bible/booze, - /obj/item/reagent_containers/cup/glass/bottle/holywater, - /obj/item/bedsheet/chaplain, - /obj/item/toy/cards/deck/tarot, - /obj/item/storage/fancy/candle_box, - ) - -/datum/quirk/item_quirk/spiritual/add_unique(client/client_source) - give_item_to_holder(/obj/item/storage/fancy/candle_box, list(LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, LOCATION_HANDS = ITEM_SLOT_HANDS)) - give_item_to_holder(/obj/item/storage/box/matches, list(LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, LOCATION_HANDS = ITEM_SLOT_HANDS)) - -/datum/quirk/item_quirk/tagger - name = "Tagger" - desc = "You're an experienced artist. People will actually be impressed by your graffiti, and you can get twice as many uses out of drawing supplies." - icon = FA_ICON_SPRAY_CAN - value = 4 - mob_trait = TRAIT_TAGGER - gain_text = span_notice("You know how to tag walls efficiently.") - lose_text = span_danger("You forget how to tag walls properly.") - medical_record_text = "Patient was recently seen for possible paint huffing incident." - mail_goodies = list( - /obj/item/toy/crayon/spraycan, - /obj/item/canvas/nineteen_nineteen, - /obj/item/canvas/twentythree_nineteen, - /obj/item/canvas/twentythree_twentythree - ) - -/datum/quirk/item_quirk/tagger/add_unique(client/client_source) - var/obj/item/toy/crayon/spraycan/can = new - can.set_painting_tool_color(client_source?.prefs.read_preference(/datum/preference/color/paint_color)) - give_item_to_holder(can, list(LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, LOCATION_HANDS = ITEM_SLOT_HANDS)) - -/datum/quirk/throwingarm - name = "Throwing Arm" - desc = "Your arms have a lot of heft to them! Objects that you throw just always seem to fly further than everyone elses, and you never miss a toss." - icon = FA_ICON_BASEBALL - value = 7 - mob_trait = TRAIT_THROWINGARM - gain_text = span_notice("Your arms are full of energy!") - lose_text = span_danger("Your arms ache a bit.") - medical_record_text = "Patient displays mastery over throwing balls." - mail_goodies = list(/obj/item/toy/beach_ball/baseball, /obj/item/toy/basketball, /obj/item/toy/dodgeball) - -/datum/quirk/item_quirk/signer - name = "Signer" - desc = "You possess excellent communication skills in sign language." - icon = FA_ICON_HANDS - value = 4 - quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_CHANGES_APPEARANCE - mail_goodies = list(/obj/item/clothing/gloves/radio) - -/datum/quirk/item_quirk/signer/add_unique(client/client_source) - quirk_holder.AddComponent(/datum/component/sign_language) - var/obj/item/clothing/gloves/gloves_type = /obj/item/clothing/gloves/radio - if(isplasmaman(quirk_holder)) - gloves_type = /obj/item/clothing/gloves/color/plasmaman/radio - give_item_to_holder(gloves_type, list(LOCATION_GLOVES = ITEM_SLOT_GLOVES, LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, LOCATION_HANDS = ITEM_SLOT_HANDS)) - -/datum/quirk/item_quirk/signer/remove() - qdel(quirk_holder.GetComponent(/datum/component/sign_language)) diff --git a/code/datums/quirks/positive_quirks/alcohol_tolerance.dm b/code/datums/quirks/positive_quirks/alcohol_tolerance.dm new file mode 100644 index 000000000000..6458513007df --- /dev/null +++ b/code/datums/quirks/positive_quirks/alcohol_tolerance.dm @@ -0,0 +1,10 @@ +/datum/quirk/alcohol_tolerance + name = "Alcohol Tolerance" + desc = "You become drunk more slowly and suffer fewer drawbacks from alcohol." + icon = FA_ICON_BEER + value = 4 + mob_trait = TRAIT_ALCOHOL_TOLERANCE + gain_text = span_notice("You feel like you could drink a whole keg!") + lose_text = span_danger("You don't feel as resistant to alcohol anymore. Somehow.") + medical_record_text = "Patient demonstrates a high tolerance for alcohol." + mail_goodies = list(/obj/item/skillchip/wine_taster) diff --git a/code/datums/quirks/positive_quirks/apathetic.dm b/code/datums/quirks/positive_quirks/apathetic.dm new file mode 100644 index 000000000000..f57a5a818857 --- /dev/null +++ b/code/datums/quirks/positive_quirks/apathetic.dm @@ -0,0 +1,14 @@ +/datum/quirk/apathetic + name = "Apathetic" + desc = "You just don't care as much as other people. That's nice to have in a place like this, I guess." + icon = FA_ICON_FACE_MEH + value = 4 + quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_MOODLET_BASED + medical_record_text = "Patient was administered the Apathy Evaluation Scale but did not bother to complete it." + mail_goodies = list(/obj/item/hourglass) + +/datum/quirk/apathetic/add(client/client_source) + quirk_holder.mob_mood?.mood_modifier -= 0.2 + +/datum/quirk/apathetic/remove() + quirk_holder.mob_mood?.mood_modifier += 0.2 diff --git a/code/datums/quirks/positive_quirks/bilingual.dm b/code/datums/quirks/positive_quirks/bilingual.dm new file mode 100644 index 000000000000..293dd6ab60c4 --- /dev/null +++ b/code/datums/quirks/positive_quirks/bilingual.dm @@ -0,0 +1,24 @@ +/datum/quirk/bilingual + name = "Bilingual" + desc = "Over the years you've picked up an extra language!" + icon = FA_ICON_GLOBE + value = 4 + gain_text = span_notice("Some of the words of the people around you certainly aren't common. Good thing you studied for this.") + lose_text = span_notice("You seem to have forgotten your second language.") + medical_record_text = "Patient speaks multiple languages." + mail_goodies = list(/obj/item/taperecorder, /obj/item/clothing/head/frenchberet, /obj/item/clothing/mask/fakemoustache/italian) + +/datum/quirk/bilingual/add_unique(client/client_source) + var/wanted_language = client_source?.prefs.read_preference(/datum/preference/choiced/language) + var/datum/language/language_type + if(wanted_language == "Random") + language_type = pick(GLOB.roundstart_languages) + else + language_type = GLOB.language_types_by_name[wanted_language] + if(quirk_holder.has_language(language_type)) + language_type = /datum/language/uncommon + if(quirk_holder.has_language(language_type)) + to_chat(quirk_holder, span_boldnotice("You are already familiar with the quirk in your preferences, so you did not learn one.")) + return + to_chat(quirk_holder, span_boldnotice("You are already familiar with the quirk in your preferences, so you learned Galactic Uncommon instead.")) + quirk_holder.grant_language(language_type, source = LANGUAGE_QUIRK) diff --git a/code/datums/quirks/positive_quirks/clown_enjoyer.dm b/code/datums/quirks/positive_quirks/clown_enjoyer.dm new file mode 100644 index 000000000000..984b0f7a6e47 --- /dev/null +++ b/code/datums/quirks/positive_quirks/clown_enjoyer.dm @@ -0,0 +1,31 @@ +/datum/quirk/item_quirk/clown_enjoyer + name = "Clown Enjoyer" + desc = "You enjoy clown antics and get a mood boost from wearing your clown pin." + icon = FA_ICON_MAP_PIN + value = 2 + mob_trait = TRAIT_CLOWN_ENJOYER + gain_text = span_notice("You are a big enjoyer of clowns.") + lose_text = span_danger("The clown doesn't seem so great.") + medical_record_text = "Patient reports being a big enjoyer of clowns." + mail_goodies = list( + /obj/item/bikehorn, + /obj/item/stamp/clown, + /obj/item/megaphone/clown, + /obj/item/clothing/shoes/clown_shoes, + /obj/item/bedsheet/clown, + /obj/item/clothing/mask/gas/clown_hat, + /obj/item/storage/backpack/clown, + /obj/item/storage/backpack/duffelbag/clown, + /obj/item/toy/crayon/rainbow, + /obj/item/toy/figure/clown, + /obj/item/tank/internals/emergency_oxygen/engi/clown/n2o, + /obj/item/tank/internals/emergency_oxygen/engi/clown/bz, + /obj/item/tank/internals/emergency_oxygen/engi/clown/helium, + ) + +/datum/quirk/item_quirk/clown_enjoyer/add_unique(client/client_source) + give_item_to_holder(/obj/item/clothing/accessory/clown_enjoyer_pin, list(LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, LOCATION_HANDS = ITEM_SLOT_HANDS)) + +/datum/quirk/item_quirk/clown_enjoyer/add(client/client_source) + var/datum/atom_hud/fan = GLOB.huds[DATA_HUD_FAN] + fan.show_to(quirk_holder) diff --git a/code/datums/quirks/positive_quirks/drunk_healing.dm b/code/datums/quirks/positive_quirks/drunk_healing.dm new file mode 100644 index 000000000000..fbab2503b4e9 --- /dev/null +++ b/code/datums/quirks/positive_quirks/drunk_healing.dm @@ -0,0 +1,22 @@ +/datum/quirk/drunkhealing + name = "Drunken Resilience" + desc = "Nothing like a good drink to make you feel on top of the world. Whenever you're drunk, you slowly recover from injuries." + icon = FA_ICON_WINE_BOTTLE + value = 8 + gain_text = span_notice("You feel like a drink would do you good.") + lose_text = span_danger("You no longer feel like drinking would ease your pain.") + medical_record_text = "Patient has unusually efficient liver metabolism and can slowly regenerate wounds by drinking alcoholic beverages." + quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_PROCESSES + mail_goodies = list(/obj/effect/spawner/random/food_or_drink/booze) + +/datum/quirk/drunkhealing/process(seconds_per_tick) + switch(quirk_holder.get_drunk_amount()) + if (6 to 40) + quirk_holder.adjustBruteLoss(-0.1 * seconds_per_tick, FALSE, required_bodytype = BODYTYPE_ORGANIC) + quirk_holder.adjustFireLoss(-0.05 * seconds_per_tick, required_bodytype = BODYTYPE_ORGANIC) + if (41 to 60) + quirk_holder.adjustBruteLoss(-0.4 * seconds_per_tick, FALSE, required_bodytype = BODYTYPE_ORGANIC) + quirk_holder.adjustFireLoss(-0.2 * seconds_per_tick, required_bodytype = BODYTYPE_ORGANIC) + if (61 to INFINITY) + quirk_holder.adjustBruteLoss(-0.8 * seconds_per_tick, FALSE, required_bodytype = BODYTYPE_ORGANIC) + quirk_holder.adjustFireLoss(-0.4 * seconds_per_tick, required_bodytype = BODYTYPE_ORGANIC) diff --git a/code/datums/quirks/positive_quirks/empath.dm b/code/datums/quirks/positive_quirks/empath.dm new file mode 100644 index 000000000000..2c9161d9cdc0 --- /dev/null +++ b/code/datums/quirks/positive_quirks/empath.dm @@ -0,0 +1,10 @@ +/datum/quirk/empath + name = "Empath" + desc = "Whether it's a sixth sense or careful study of body language, it only takes you a quick glance at someone to understand how they feel." + icon = FA_ICON_FACE_SMILE_BEAM + value = 2 //monkestation change 8->2 + mob_trait = TRAIT_EMPATH + gain_text = span_notice("You feel in tune with those around you.") + lose_text = span_danger("You feel isolated from others.") + medical_record_text = "Patient is highly perceptive of and sensitive to social cues, or may possibly have ESP. Further testing needed." + mail_goodies = list(/obj/item/toy/foamfinger) diff --git a/code/datums/quirks/positive_quirks/freerunning.dm b/code/datums/quirks/positive_quirks/freerunning.dm new file mode 100644 index 000000000000..eaa1e0588e94 --- /dev/null +++ b/code/datums/quirks/positive_quirks/freerunning.dm @@ -0,0 +1,10 @@ +/datum/quirk/freerunning + name = "Freerunning" + desc = "You're great at quick moves! You can climb tables more quickly, can sprint longer distances, and take no damage from short falls." //monkestation change added ", can sprint longer distances," + icon = FA_ICON_RUNNING + value = 6 //monkestation change 8->6 + mob_trait = TRAIT_FREERUNNING + gain_text = span_notice("You feel lithe on your feet!") + lose_text = span_danger("You feel clumsy again.") + medical_record_text = "Patient scored highly on cardio tests." + mail_goodies = list(/obj/item/melee/skateboard, /obj/item/clothing/shoes/wheelys/rollerskates) diff --git a/code/datums/quirks/positive_quirks/friendly.dm b/code/datums/quirks/positive_quirks/friendly.dm new file mode 100644 index 000000000000..8ab0003639bc --- /dev/null +++ b/code/datums/quirks/positive_quirks/friendly.dm @@ -0,0 +1,11 @@ +/datum/quirk/friendly + name = "Friendly" + desc = "You give the best hugs, especially when you're in the right mood." + icon = FA_ICON_HANDS_HELPING + value = 2 + mob_trait = TRAIT_FRIENDLY + gain_text = span_notice("You want to hug someone.") + lose_text = span_danger("You no longer feel compelled to hug others.") + quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_MOODLET_BASED + medical_record_text = "Patient demonstrates low-inhibitions for physical contact and well-developed arms. Requesting another doctor take over this case." + mail_goodies = list(/obj/item/storage/box/hug) diff --git a/code/datums/quirks/positive_quirks/jolly.dm b/code/datums/quirks/positive_quirks/jolly.dm new file mode 100644 index 000000000000..acd89de52f29 --- /dev/null +++ b/code/datums/quirks/positive_quirks/jolly.dm @@ -0,0 +1,9 @@ +/datum/quirk/jolly + name = "Jolly" + desc = "You sometimes just feel happy, for no reason at all." + icon = FA_ICON_FACE_GRIN + value = 4 + mob_trait = TRAIT_JOLLY + quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_MOODLET_BASED + medical_record_text = "Patient demonstrates constant euthymia irregular for environment. It's a bit much, to be honest." + mail_goodies = list(/obj/item/clothing/mask/joy) diff --git a/code/datums/quirks/positive_quirks/light_step.dm b/code/datums/quirks/positive_quirks/light_step.dm new file mode 100644 index 000000000000..36f55e183fbd --- /dev/null +++ b/code/datums/quirks/positive_quirks/light_step.dm @@ -0,0 +1,10 @@ +/datum/quirk/light_step + name = "Light Step" + desc = "You walk with a gentle step; footsteps and stepping on sharp objects is quieter and less painful. Also, your hands and clothes will not get messed in case of stepping in blood." + icon = FA_ICON_SHOE_PRINTS + value = 2 //MONKESTATION EDIT: changed 4 to 2 (on pair with hardned soles, the difference is less bloody clothes vs no knockdown when stepping on glass) + mob_trait = TRAIT_LIGHT_STEP + gain_text = span_notice("You walk with a little more litheness.") + lose_text = span_danger("You start tromping around like a barbarian.") + medical_record_text = "Patient's dexterity belies a strong capacity for stealth." + mail_goodies = list(/obj/item/clothing/shoes/sandal) diff --git a/code/datums/quirks/positive_quirks/mime_fan.dm b/code/datums/quirks/positive_quirks/mime_fan.dm new file mode 100644 index 000000000000..5145b4a2240e --- /dev/null +++ b/code/datums/quirks/positive_quirks/mime_fan.dm @@ -0,0 +1,29 @@ +/datum/quirk/item_quirk/mime_fan + name = "Mime Fan" + desc = "You're a fan of mime antics and get a mood boost from wearing your mime pin." + icon = FA_ICON_THUMBTACK + value = 2 + mob_trait = TRAIT_MIME_FAN + gain_text = span_notice("You are a big fan of the Mime.") + lose_text = span_danger("The mime doesn't seem so great.") + medical_record_text = "Patient reports being a big fan of mimes." + mail_goodies = list( + /obj/item/toy/crayon/mime, + /obj/item/clothing/mask/gas/mime, + /obj/item/storage/backpack/mime, + /obj/item/clothing/under/rank/civilian/mime, + /obj/item/reagent_containers/cup/glass/bottle/bottleofnothing, + /obj/item/stamp/mime, + /obj/item/storage/box/survival/hug/black, + /obj/item/bedsheet/mime, + /obj/item/clothing/shoes/sneakers/mime, + /obj/item/toy/figure/mime, + /obj/item/toy/crayon/spraycan/mimecan, + ) + +/datum/quirk/item_quirk/mime_fan/add_unique(client/client_source) + give_item_to_holder(/obj/item/clothing/accessory/mime_fan_pin, list(LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, LOCATION_HANDS = ITEM_SLOT_HANDS)) + +/datum/quirk/item_quirk/mime_fan/add(client/client_source) + var/datum/atom_hud/fan = GLOB.huds[DATA_HUD_FAN] + fan.show_to(quirk_holder) diff --git a/code/datums/quirks/positive_quirks/musician.dm b/code/datums/quirks/positive_quirks/musician.dm new file mode 100644 index 000000000000..9d5e10f5f827 --- /dev/null +++ b/code/datums/quirks/positive_quirks/musician.dm @@ -0,0 +1,13 @@ +/datum/quirk/item_quirk/musician + name = "Musician" + desc = "You can tune handheld musical instruments to play melodies that clear certain negative effects and soothe the soul." + icon = FA_ICON_GUITAR + value = 2 + mob_trait = TRAIT_MUSICIAN + gain_text = span_notice("You know everything about musical instruments.") + lose_text = span_danger("You forget how musical instruments work.") + medical_record_text = "Patient brain scans show a highly-developed auditory pathway." + mail_goodies = list(/obj/effect/spawner/random/entertainment/musical_instrument, /obj/item/instrument/piano_synth/headphones) + +/datum/quirk/item_quirk/musician/add_unique(client/client_source) + give_item_to_holder(/obj/item/choice_beacon/music, list(LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, LOCATION_HANDS = ITEM_SLOT_HANDS)) diff --git a/code/datums/quirks/positive_quirks/night_vision.dm b/code/datums/quirks/positive_quirks/night_vision.dm new file mode 100644 index 000000000000..808a213db514 --- /dev/null +++ b/code/datums/quirks/positive_quirks/night_vision.dm @@ -0,0 +1,28 @@ +/datum/quirk/night_vision + name = "Night Vision" + desc = "You can see slightly more clearly in full darkness than most people." + icon = FA_ICON_MOON + value = 4 + mob_trait = TRAIT_NIGHT_VISION + gain_text = span_notice("The shadows seem a little less dark.") + lose_text = span_danger("Everything seems a little darker.") + medical_record_text = "Patient's eyes show above-average acclimation to darkness." + mail_goodies = list( + /obj/item/flashlight/flashdark, + /obj/item/food/grown/mushroom/glowshroom/shadowshroom, + /obj/item/skillchip/light_remover, + ) + +/datum/quirk/night_vision/add(client/client_source) + refresh_quirk_holder_eyes() + +/datum/quirk/night_vision/remove() + refresh_quirk_holder_eyes() + +/datum/quirk/night_vision/proc/refresh_quirk_holder_eyes() + var/mob/living/carbon/human/human_quirk_holder = quirk_holder + var/obj/item/organ/internal/eyes/eyes = human_quirk_holder.get_organ_by_type(/obj/item/organ/internal/eyes) + if(!eyes || eyes.lighting_cutoff) + return + // We've either added or removed TRAIT_NIGHT_VISION before calling this proc. Just refresh the eyes. + eyes.refresh() diff --git a/code/datums/quirks/positive_quirks/poster_boy.dm b/code/datums/quirks/positive_quirks/poster_boy.dm new file mode 100644 index 000000000000..4991ebc540b4 --- /dev/null +++ b/code/datums/quirks/positive_quirks/poster_boy.dm @@ -0,0 +1,31 @@ +/datum/quirk/item_quirk/poster_boy + name = "Poster Boy" + desc = "You have some great posters! Hang them up and make everyone have a great time." + icon = FA_ICON_TAPE + value = 4 + mob_trait = TRAIT_POSTERBOY + medical_record_text = "Patient reports a desire to cover walls with homemade objects." + mail_goodies = list(/obj/item/poster/random_official) + +/datum/quirk/item_quirk/poster_boy/add_unique() + var/mob/living/carbon/human/posterboy = quirk_holder + var/obj/item/storage/box/posterbox/newbox = new() + newbox.add_quirk_posters(posterboy.mind) + give_item_to_holder(newbox, list(LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, LOCATION_HANDS = ITEM_SLOT_HANDS)) + +/obj/item/storage/box/posterbox + name = "Box of Posters" + desc = "You made them yourself!" + +/// fills box of posters based on job, one neutral poster and 2 department posters +/obj/item/storage/box/posterbox/proc/add_quirk_posters(datum/mind/posterboy) + new /obj/item/poster/quirk/crew/random(src) + var/department = posterboy.assigned_role.paycheck_department + if(department == ACCOUNT_CIV) //if you are not part of a department you instead get 3 neutral posters + for(var/i in 1 to 2) + new /obj/item/poster/quirk/crew/random(src) + return + for(var/obj/item/poster/quirk/potential_poster as anything in subtypesof(/obj/item/poster/quirk)) + if(initial(potential_poster.quirk_poster_department) != department) + continue + new potential_poster(src) diff --git a/code/datums/quirks/positive_quirks/self_aware.dm b/code/datums/quirks/positive_quirks/self_aware.dm new file mode 100644 index 000000000000..f23fafb4c6c3 --- /dev/null +++ b/code/datums/quirks/positive_quirks/self_aware.dm @@ -0,0 +1,8 @@ +/datum/quirk/selfaware + name = "Self-Aware" + desc = "You know your body well, and can accurately assess the extent of your wounds." + icon = FA_ICON_BONE + value = 6 //monkestation change 8->6 + mob_trait = TRAIT_SELF_AWARE + medical_record_text = "Patient demonstrates an uncanny knack for self-diagnosis." + mail_goodies = list(/obj/item/clothing/neck/stethoscope, /obj/item/skillchip/entrails_reader) diff --git a/code/datums/quirks/positive_quirks/settler.dm b/code/datums/quirks/positive_quirks/settler.dm new file mode 100644 index 000000000000..c1380c1da696 --- /dev/null +++ b/code/datums/quirks/positive_quirks/settler.dm @@ -0,0 +1,33 @@ +/* /datum/quirk/item_quirk/settler - monkestation disabled for now + name = "Settler" + desc = "You are from a lineage of the earliest space settlers! While your family's generational exposure to varying gravity \ + has resulted in a ... smaller height than is typical for your species, you make up for it by being much better at outdoorsmanship and \ + carrying heavy equipment. You also get along great with animals. However, you are a bit on the slow side due to your small legs." + gain_text = span_bold("You feel like the world is your oyster!") + lose_text = span_danger("You think you might stay home today.") + icon = FA_ICON_HOUSE + value = 4 + mob_trait = TRAIT_SETTLER + quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_CHANGES_APPEARANCE + medical_record_text = "Patient appears to be abnormally stout." + mail_goodies = list( + /obj/item/clothing/shoes/workboots/mining, + /obj/item/gps, + ) + +/datum/quirk/item_quirk/settler/add_unique(client/client_source) + give_item_to_holder(/obj/item/storage/box/papersack/wheat, list(LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, LOCATION_HANDS = ITEM_SLOT_HANDS)) + give_item_to_holder(/obj/item/storage/toolbox/fishing/small, list(LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, LOCATION_HANDS = ITEM_SLOT_HANDS)) + var/mob/living/carbon/human/human_quirkholder = quirk_holder + human_quirkholder.set_mob_height(HUMAN_HEIGHT_SHORTEST) + human_quirkholder.add_movespeed_modifier(/datum/movespeed_modifier/settler) + human_quirkholder.physiology.hunger_mod *= 0.5 //good for you, shortass, you don't get hungry nearly as often + +/datum/quirk/item_quirk/settler/remove() + if(QDELING(quirk_holder)) + return + var/mob/living/carbon/human/human_quirkholder = quirk_holder + human_quirkholder.set_mob_height(HUMAN_HEIGHT_MEDIUM) + human_quirkholder.remove_movespeed_modifier(/datum/movespeed_modifier/settler) + human_quirkholder.physiology.hunger_mod *= 2 + */ diff --git a/code/datums/quirks/positive_quirks/signer.dm b/code/datums/quirks/positive_quirks/signer.dm new file mode 100644 index 000000000000..df0a2f34c5dd --- /dev/null +++ b/code/datums/quirks/positive_quirks/signer.dm @@ -0,0 +1,17 @@ +/datum/quirk/item_quirk/signer + name = "Signer" + desc = "You possess excellent communication skills in sign language." + icon = FA_ICON_HANDS + value = 4 + quirk_flags = QUIRK_HUMAN_ONLY|QUIRK_CHANGES_APPEARANCE + mail_goodies = list(/obj/item/clothing/gloves/radio) + +/datum/quirk/item_quirk/signer/add_unique(client/client_source) + quirk_holder.AddComponent(/datum/component/sign_language) + var/obj/item/clothing/gloves/gloves_type = /obj/item/clothing/gloves/radio + if(isplasmaman(quirk_holder)) + gloves_type = /obj/item/clothing/gloves/color/plasmaman/radio + give_item_to_holder(gloves_type, list(LOCATION_GLOVES = ITEM_SLOT_GLOVES, LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, LOCATION_HANDS = ITEM_SLOT_HANDS)) + +/datum/quirk/item_quirk/signer/remove() + qdel(quirk_holder.GetComponent(/datum/component/sign_language)) diff --git a/code/datums/quirks/positive_quirks/skittish.dm b/code/datums/quirks/positive_quirks/skittish.dm new file mode 100644 index 000000000000..47489196a203 --- /dev/null +++ b/code/datums/quirks/positive_quirks/skittish.dm @@ -0,0 +1,8 @@ +/datum/quirk/skittish + name = "Skittish" + desc = "You're easy to startle, and hide frequently. Run into a closed locker to jump into it, as long as you have access. You can walk to avoid this." + icon = FA_ICON_TRASH + value = 2 //monkestation change 8->2 + mob_trait = TRAIT_SKITTISH + medical_record_text = "Patient demonstrates a high aversion to danger and has described hiding in containers out of fear." + mail_goodies = list(/obj/structure/closet/cardboard) diff --git a/code/datums/quirks/positive_quirks/spiritual.dm b/code/datums/quirks/positive_quirks/spiritual.dm new file mode 100644 index 000000000000..15f98bfc21ee --- /dev/null +++ b/code/datums/quirks/positive_quirks/spiritual.dm @@ -0,0 +1,20 @@ +/datum/quirk/item_quirk/spiritual + name = "Spiritual" + desc = "You hold a spiritual belief, whether in God, nature or the arcane rules of the universe. You gain comfort from the presence of holy people, and believe that your prayers are more special than others. Being in the chapel makes you happy." + icon = FA_ICON_BIBLE + value = 4 + mob_trait = TRAIT_SPIRITUAL + gain_text = span_notice("You have faith in a higher power.") + lose_text = span_danger("You lose faith!") + medical_record_text = "Patient reports a belief in a higher power." + mail_goodies = list( + /obj/item/book/bible/booze, + /obj/item/reagent_containers/cup/glass/bottle/holywater, + /obj/item/bedsheet/chaplain, + /obj/item/toy/cards/deck/tarot, + /obj/item/storage/fancy/candle_box, + ) + +/datum/quirk/item_quirk/spiritual/add_unique(client/client_source) + give_item_to_holder(/obj/item/storage/fancy/candle_box, list(LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, LOCATION_HANDS = ITEM_SLOT_HANDS)) + give_item_to_holder(/obj/item/storage/box/matches, list(LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, LOCATION_HANDS = ITEM_SLOT_HANDS)) diff --git a/code/datums/quirks/positive_quirks/tagger.dm b/code/datums/quirks/positive_quirks/tagger.dm new file mode 100644 index 000000000000..5aba24d850a4 --- /dev/null +++ b/code/datums/quirks/positive_quirks/tagger.dm @@ -0,0 +1,20 @@ +/datum/quirk/item_quirk/tagger + name = "Tagger" + desc = "You're an experienced artist. People will actually be impressed by your graffiti, and you can get twice as many uses out of drawing supplies." + icon = FA_ICON_SPRAY_CAN + value = 4 + mob_trait = TRAIT_TAGGER + gain_text = span_notice("You know how to tag walls efficiently.") + lose_text = span_danger("You forget how to tag walls properly.") + medical_record_text = "Patient was recently seen for possible paint huffing incident." + mail_goodies = list( + /obj/item/toy/crayon/spraycan, + /obj/item/canvas/nineteen_nineteen, + /obj/item/canvas/twentythree_nineteen, + /obj/item/canvas/twentythree_twentythree + ) + +/datum/quirk/item_quirk/tagger/add_unique(client/client_source) + var/obj/item/toy/crayon/spraycan/can = new + can.set_painting_tool_color(client_source?.prefs.read_preference(/datum/preference/color/paint_color)) + give_item_to_holder(can, list(LOCATION_BACKPACK = ITEM_SLOT_BACKPACK, LOCATION_HANDS = ITEM_SLOT_HANDS)) diff --git a/code/datums/quirks/positive_quirks/throwing_arm.dm b/code/datums/quirks/positive_quirks/throwing_arm.dm new file mode 100644 index 000000000000..5157b3990095 --- /dev/null +++ b/code/datums/quirks/positive_quirks/throwing_arm.dm @@ -0,0 +1,10 @@ +/datum/quirk/throwingarm + name = "Throwing Arm" + desc = "Your arms have a lot of heft to them! Objects that you throw just always seem to fly further than everyone elses, and you never miss a toss." + icon = FA_ICON_BASEBALL + value = 7 + mob_trait = TRAIT_THROWINGARM + gain_text = span_notice("Your arms are full of energy!") + lose_text = span_danger("Your arms ache a bit.") + medical_record_text = "Patient displays mastery over throwing balls." + mail_goodies = list(/obj/item/toy/beach_ball/baseball, /obj/item/toy/basketball, /obj/item/toy/dodgeball) diff --git a/code/datums/quirks/positive_quirks/voracious.dm b/code/datums/quirks/positive_quirks/voracious.dm new file mode 100644 index 000000000000..7142d5dddba2 --- /dev/null +++ b/code/datums/quirks/positive_quirks/voracious.dm @@ -0,0 +1,20 @@ +/datum/quirk/voracious + name = "Voracious" + // desc = "Nothing gets between you and your food. You eat faster and can binge on junk food! Being fat suits you just fine." monkestation edit original + desc = "Nothing gets between you and your food. You eat faster and can binge on junk food! Being fat suits you just fine. Also allows you to have an additional food buff." + icon = FA_ICON_DRUMSTICK_BITE + value = 6 // Monkestation change 4 -> 6 + mob_trait = TRAIT_VORACIOUS + gain_text = span_notice("You feel HONGRY.") + lose_text = span_danger("You no longer feel HONGRY.") + mail_goodies = list(/obj/effect/spawner/random/food_or_drink/dinner) + +// MONKESTATION EDIT START +/datum/quirk/voracious/add() + var/mob/living/carbon/human/holder = quirk_holder + holder.max_food_buffs ++ + +/datum/quirk/voracious/remove() + var/mob/living/carbon/human/holder = quirk_holder + holder.max_food_buffs -- +// MONKESTATION EDIT END diff --git a/code/datums/station_traits/positive_traits.dm b/code/datums/station_traits/positive_traits.dm index 08aa46dd2833..5a176bd81cf8 100644 --- a/code/datums/station_traits/positive_traits.dm +++ b/code/datums/station_traits/positive_traits.dm @@ -207,29 +207,34 @@ trait_to_give = STATION_TRAIT_CYBERNETIC_REVOLUTION /// List of all job types with the cybernetics they should receive. var/static/list/job_to_cybernetic = list( - /datum/job/assistant = /obj/item/organ/internal/heart/cybernetic, //real cardiac + /datum/job/assistant = /obj/item/organ/internal/cyberimp/leg/table_glider, /obj/item/organ/internal/cyberimp/leg/table_glider/l,// monkestation edit: The greytide begins... /datum/job/atmospheric_technician = /obj/item/organ/internal/cyberimp/arm/item_set/atmospherics, // monkestation edit: cybernetics overhaul (useful job stuff) /datum/job/bartender = /obj/item/organ/internal/liver/cybernetic/tier3, /datum/job/bitrunner = /obj/item/organ/internal/eyes/robotic/thermals, /datum/job/blueshield = /obj/item/organ/internal/cyberimp/arm/ammo_counter, // monkestation edit: cybernetics for recently added job + /datum/job/brig_physician = /obj/item/organ/internal/cyberimp/arm/item_set/surgery, // monkestation edit: Same as med docs. /datum/job/botanist = /obj/item/organ/internal/cyberimp/arm/item_set/botany, // monkestation edit: cybernetics overhaul (useful job stuff) + /datum/job/candysalesman = /obj/item/organ/internal/cyberimp/chest/nutriment/plus, // monkestation edit: /datum/job/captain = /obj/item/organ/internal/heart/cybernetic/tier3, - /datum/job/cargo_technician = /obj/item/organ/internal/stomach/cybernetic/tier2, + /datum/job/cargo_technician = /obj/item/organ/internal/cyberimp/leg/sprinter, /obj/item/organ/internal/cyberimp/leg/sprinter/l, //monkestation edit: For all the running they do /datum/job/chaplain = /obj/item/organ/internal/cyberimp/brain/anti_drop, /datum/job/chemist = /obj/item/organ/internal/liver/cybernetic/tier3, /datum/job/chief_engineer = /obj/item/organ/internal/cyberimp/chest/thrusters, /datum/job/chief_medical_officer = /obj/item/organ/internal/cyberimp/brain/linked_surgery/perfect/nt, // monkestation edit: cybernetics overhaul (couldn't think of anything else that was good for cmo) /datum/job/clown = /obj/item/organ/internal/cyberimp/chest/knockout, // monkestation edit: cybernetics overhaul (honk!!! it's the clown mech fist shrunken down after all) - /datum/job/cook = /obj/item/organ/internal/cyberimp/chest/nutriment/plus, + /datum/job/cook = /obj/item/organ/internal/cyberimp/arm/item_set/cook, // monkestatoin edit: Give the toolarm some use, plus they should be cooking evenways! /datum/job/curator = /obj/item/organ/internal/eyes/robotic/glow, /datum/job/detective = /obj/item/organ/internal/lungs/cybernetic/tier3, + /datum/job/godzilla = /obj/item/organ/internal/cyberimp/brain/anti_stun, //monkestation edit: Hard to keep gozilla down. /datum/job/doctor = /obj/item/organ/internal/cyberimp/arm/item_set/surgery, /datum/job/geneticist = /obj/item/organ/internal/fly, //we don't care about implants, we have cancer. - /datum/job/head_of_personnel = /obj/item/organ/internal/eyes/robotic, + /datum/job/gorilla = /obj/item/organ/internal/cyberimp/arm/muscle, // monkestation edit: monke strong + /datum/job/head_of_personnel = /obj/item/organ/internal/cyberimp/eyes/hud/security, // monkestation edit: /datum/job/head_of_security = /obj/item/organ/internal/cyberimp/arm/item_set/combat, // monkestation edit: cybernetics overhaul (no more validhunt eyes, instead you get a shoddy stunprod in your arm) /datum/job/janitor = /obj/item/organ/internal/cyberimp/arm/item_set/janitor, // monkestation edit: cybernetics overhaul (useful job stuff) /datum/job/lawyer = /obj/item/organ/internal/heart/cybernetic/tier2, /datum/job/mime = /obj/item/organ/internal/tongue/robot, //... + /datum/job/nanotrasen_representative = /obj/item/organ/internal/cyberimp/leg/shove_resist, /obj/item/organ/internal/cyberimp/leg/shove_resist/l, // monkestation edit: NT kneels to noone. /datum/job/paramedic = /obj/item/organ/internal/cyberimp/arm/item_set/paramedic, // monkestation edit: cybernetics overhaul (on-site healing / assistance) /datum/job/prisoner = /obj/item/organ/internal/eyes/robotic/shield, /datum/job/psychologist = /obj/item/organ/internal/ears/cybernetic/upgraded, @@ -237,12 +242,14 @@ /datum/job/research_director = /obj/item/organ/internal/cyberimp/bci, /datum/job/roboticist = /obj/item/organ/internal/cyberimp/arm/item_set/connector, // monkestation edit: cybernetics overhaul (useful job stuff) /datum/job/scientist = /obj/item/organ/internal/ears/cybernetic, - /datum/job/security_assistant = /obj/item/organ/internal/cyberimp/leg/accelerator, // monkestation edit: cybernetics for recently added job + /datum/job/security_assistant = /obj/item/organ/internal/cyberimp/leg/accelerator, /obj/item/organ/internal/cyberimp/leg/accelerator/l, // monkestation edit: cybernetics for recently added job /datum/job/security_officer = /obj/item/organ/internal/cyberimp/arm/item_set/flash, /datum/job/shaft_miner = /obj/item/organ/internal/cyberimp/arm/item_set/mining_drill/diamond, // monkestation edit: cybernetics overhaul (useful job stuff) + /datum/job/signal_technician = /obj/item/organ/internal/cyberimp/arm/heater, // monkestation edit: Tcomms is cold /datum/job/station_engineer = /obj/item/organ/internal/cyberimp/arm/item_set/toolset, /datum/job/virologist = /obj/item/organ/internal/lungs/cybernetic/tier2, /datum/job/warden = /obj/item/organ/internal/cyberimp/eyes/hud/security, + /datum/job/yellowclown = /obj/item/organ/internal/cyberimp/chest/knockout, // monkestation edit: double trouble ) /datum/station_trait/cybernetic_revolution/New() diff --git a/code/datums/status_effects/neutral.dm b/code/datums/status_effects/neutral.dm index aef77f3c0aa5..a92823293182 100644 --- a/code/datums/status_effects/neutral.dm +++ b/code/datums/status_effects/neutral.dm @@ -489,7 +489,7 @@ if(QDELETED(human_mob)) return if(prob(1))//low chance of the alternative reality returning to monkey - var/obj/item/organ/external/tail/simian/monkey_tail = new () + var/obj/item/organ/external/tail/monkey/monkey_tail = new() monkey_tail.Insert(human_mob, drop_if_replaced = FALSE) var/datum/species/human_species = human_mob.dna?.species if(human_species) diff --git a/code/game/atoms.dm b/code/game/atoms.dm index d95c5ad012af..9c9a808e7131 100644 --- a/code/game/atoms.dm +++ b/code/game/atoms.dm @@ -334,6 +334,12 @@ if(smoothing_flags & SMOOTH_QUEUED) SSicon_smooth.remove_from_queues(src) + // These lists cease existing when src does, so we need to clear any lua refs to them that exist. + DREAMLUAU_CLEAR_REF_USERDATA(contents) + DREAMLUAU_CLEAR_REF_USERDATA(filters) + DREAMLUAU_CLEAR_REF_USERDATA(overlays) + DREAMLUAU_CLEAR_REF_USERDATA(underlays) + if(material_stats) QDEL_NULL(material_stats) @@ -1374,6 +1380,7 @@ VV_DROPDOWN_OPTION(VV_HK_MODIFY_TRANSFORM, "Modify Transform") VV_DROPDOWN_OPTION(VV_HK_SPIN_ANIMATION, "SpinAnimation") VV_DROPDOWN_OPTION(VV_HK_STOP_ALL_ANIMATIONS, "Stop All Animations") + VV_DROPDOWN_OPTION(VV_HK_SHAKE, "Shake") VV_DROPDOWN_OPTION(VV_HK_SHOW_HIDDENPRINTS, "Show Hiddenprint log") VV_DROPDOWN_OPTION(VV_HK_ADD_REAGENT, "Add Reagent") VV_DROPDOWN_OPTION(VV_HK_TRIGGER_EMP, "EMP Pulse") @@ -1516,6 +1523,20 @@ animate(src, transform = null, flags = ANIMATION_END_NOW) // Literally just fucking stop animating entirely because admin said so return + // monkestation edit start: forced shake + if(href_list[VV_HK_SHAKE] && check_rights(R_FUN)) + var/pixelshiftx = input(usr, "Choose amount of pixels to shift on X axis","Shake Atom") as null|num + var/pixelshifty = input(usr, "Choose amount of pixels to shift on Y axis","Shake Atom") as null|num + if(isnull(pixelshiftx) || isnull(pixelshifty)) + return + + var/duration = input(usr, "Duration? (In seconds)","Shake Atom") as null|num + var/shake_interval = input(usr, "Shake interval (In seconds) - Default: 0.02", "Shake Atom", 0.02) as null|num + if(isnull(shake_interval) || isnull(duration)) + return + + src.Shake(pixelshiftx, pixelshifty, duration * 10, shake_interval * 10) + // monkestation edit end if(href_list[VV_HK_AUTO_RENAME] && check_rights(R_VAREDIT)) var/newname = input(usr, "What do you want to rename this to?", "Automatic Rename") as null|text // Check the new name against the chat filter. If it triggers the IC chat filter, give an option to confirm. diff --git a/code/game/atoms_movable.dm b/code/game/atoms_movable.dm index de83c8ae9741..552827a98acf 100644 --- a/code/game/atoms_movable.dm +++ b/code/game/atoms_movable.dm @@ -217,6 +217,10 @@ LAZYNULL(client_mobs_in_contents) + // These lists cease existing when src does, so we need to clear any lua refs to them that exist. + DREAMLUAU_CLEAR_REF_USERDATA(vis_contents) + DREAMLUAU_CLEAR_REF_USERDATA(vis_locs) + . = ..() for(var/movable_content in contents) diff --git a/code/game/gamemodes/dynamic/dynamic.dm b/code/game/gamemodes/dynamic/dynamic.dm index f5fc0a516da8..b39a4667dab7 100644 --- a/code/game/gamemodes/dynamic/dynamic.dm +++ b/code/game/gamemodes/dynamic/dynamic.dm @@ -301,40 +301,53 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1) return . = "Nanotrasen Department of Intelligence Threat Advisory, Spinward Sector, TCD [time2text(world.realtime, "DDD, MMM DD")], [CURRENT_STATION_YEAR]:
" - switch(round(shown_threat)) - if(0 to 19) - var/show_core_territory = (GLOB.current_living_antags.len > 0) - if (prob(FAKE_GREENSHIFT_FORM_CHANCE)) - show_core_territory = !show_core_territory - - if (show_core_territory) - . += "Advisory Level: Blue Star
" - . += "Your sector's advisory level is Blue Star. At this threat advisory, the risk of attacks on Nanotrasen assets within the sector is minor, but cannot be ruled out entirely. Remain vigilant." - else - . += "Advisory Level: Green Star
" - . += "Your sector's advisory level is Green Star. Surveillance information shows no credible threats to Nanotrasen assets within the Spinward Sector at this time. As always, the Department advises maintaining vigilance against potential threats, regardless of a lack of known threats." - if(20 to 39) - . += "Advisory Level: Yellow Star
" - . += "Your sector's advisory level is Yellow Star. Surveillance shows a credible risk of enemy attack against our assets in the Spinward Sector. We advise a heightened level of security, alongside maintaining vigilance against potential threats." - if(40 to 65) - . += "Advisory Level: Orange Star
" - . += "Your sector's advisory level is Orange Star. Upon reviewing your sector's intelligence, the Department has determined that the risk of enemy activity is moderate to severe. At this advisory, we recommend maintaining a higher degree of security and alertness, and vigilance against threats that may (or will) arise." - if(66 to 79) - . += "Advisory Level: Red Star
" - . += "Your sector's advisory level is Red Star. The Department of Intelligence has decrypted Cybersun communications suggesting a high likelihood of attacks on Nanotrasen assets within the Spinward Sector. Stations in the region are advised to remain highly vigilant for signs of enemy activity and to be on high alert." - if(80 to 99) - . += "Advisory Level: Black Orbit
" - . += "Your sector's advisory level is Black Orbit. Your sector's local comms network is currently undergoing a blackout, and we are therefore unable to accurately judge enemy movements within the region. However, information passed to us by GDI suggests a high amount of enemy activity in the sector, indicative of an impending attack. Remain on high alert, and as always, we advise remaining vigilant against any other potential threats." - if(100) - . += "Advisory Level: Midnight Sun
" - . += "Your sector's advisory level is Midnight Sun. Credible information passed to us by GDI suggests that the Syndicate is preparing to mount a major concerted offensive on Nanotrasen assets in the Spinward Sector to cripple our foothold there. All stations should remain on high alert and prepared to defend themselves." - - var/min_threat = 100 + //monkestation edit start: + //switch(round(shown_threat)) + var/list/green_star_storytellers = list(/datum/storyteller/ghost, /datum/storyteller/sleeper) //list for calmer storytellers for a greenshift + var/list/midnight_sun_storytellers = list(/datum/storyteller/jester, /datum/storyteller/warrior, /datum/storyteller/brute) //list for the more chaotic storytellers for black sun + var/greenshift = FALSE + if((SSgamemode.selected_storyteller in green_star_storytellers) || (SSgamemode.current_storyteller.disable_distribution)) + greenshift = TRUE + /*if(0 to 19) + var/show_core_territory = (GLOB.current_living_antags.len > 0) + if (prob(FAKE_GREENSHIFT_FORM_CHANCE)) + show_core_territory = !show_core_territory + + if (show_core_territory) + . += "Advisory Level: Blue Star
" + . += "Your sector's advisory level is Blue Star. At this threat advisory, the risk of attacks on Nanotrasen assets within the sector is minor, but cannot be ruled out entirely. Remain vigilant." + else + */ + . += "Advisory Level: Green Star
" + . += "Your sector's advisory level is Green Star. Surveillance information shows no credible threats to Nanotrasen assets within the Spinward Sector at this time. As always, the Department advises maintaining vigilance against potential threats, regardless of a lack of known threats." + /*if(20 to 39) + . += "Advisory Level: Yellow Star
" + . += "Your sector's advisory level is Yellow Star. Surveillance shows a credible risk of enemy attack against our assets in the Spinward Sector. We advise a heightened level of security, alongside maintaining vigilance against potential threats." + if(40 to 65) + . += "Advisory Level: Orange Star
" + . += "Your sector's advisory level is Orange Star. Upon reviewing your sector's intelligence, the Department has determined that the risk of enemy activity is moderate to severe. At this advisory, we recommend maintaining a higher degree of security and alertness, and vigilance against threats that may (or will) arise." + if(66 to 79) + . += "Advisory Level: Red Star
" + . += "Your sector's advisory level is Red Star. The Department of Intelligence has decrypted Cybersun communications suggesting a high likelihood of attacks on Nanotrasen assets within the Spinward Sector. Stations in the region are advised to remain highly vigilant for signs of enemy activity and to be on high alert." + if(80 to 99) + . += "Advisory Level: Black Orbit
" + . += "Your sector's advisory level is Black Orbit. Your sector's local comms network is currently undergoing a blackout, and we are therefore unable to accurately judge enemy movements within the region. However, information passed to us by GDI suggests a high amount of enemy activity in the sector, indicative of an impending attack. Remain on high alert, and as always, we advise remaining vigilant against any other potential threats." + if(100) + */ + else if(SSgamemode.selected_storyteller in midnight_sun_storytellers) + . += "Advisory Level: Midnight Sun
" + . += "Your sector's advisory level is Midnight Sun. Credible information passed to us by GDI suggests that the Syndicate is preparing to mount a major concerted offensive on Nanotrasen assets in the Spinward Sector to cripple our foothold there. All stations should remain on high alert and prepared to defend themselves." + else + . += "Advisory Level: Orange Star
" + . += "Your sector's advisory level is Orange Star. Upon reviewing your sector's intelligence, the Department has determined that the risk of enemy activity is moderate to severe. At this advisory, we recommend maintaining a higher degree of security and alertness, and vigilance against threats that may (or will) arise." + + /*var/min_threat = 100 for(var/datum/dynamic_ruleset/ruleset as anything in init_rulesets(/datum/dynamic_ruleset)) if(ruleset.weight <= 0 || ruleset.cost <= 0) continue min_threat = min(ruleset.cost, min_threat) - var/greenshift = SSgamemode.storyteller.disable_distribution //|| (threat_level < min_threat && shown_threat < min_threat) //if both shown and real threat are below any ruleset, its extended time //monkestation edit: Makes it so greenshift is based on the storyteller + var/greenshift = GLOB.dynamic_forced_extended || (threat_level < min_threat && shown_threat < min_threat) //if both shown and real threat are below any ruleset, its extended time + monkestation edit end*/ generate_station_goals(greenshift) . += generate_station_goal_report() @@ -348,7 +361,7 @@ GLOBAL_VAR_INIT(dynamic_forced_threat_level, -1) else if(SSsecurity_level.get_current_level_as_number() < SEC_LEVEL_BLUE) SSsecurity_level.set_level(SEC_LEVEL_BLUE, announce = FALSE) - priority_announce("[SSsecurity_level.current_security_level.elevating_to_announcement]\n\nA summary has been copied and printed to all communications consoles.", "Security level elevated.", ANNOUNCER_INTERCEPT, color_override = SSsecurity_level.current_security_level.announcement_color) + priority_announce("[replacetext_char(SSsecurity_level.current_security_level.elevating_to_announcement, "%STATION_NAME%", station_name())]\n\nA summary has been copied and printed to all communications consoles.", "Security level elevated.", ANNOUNCER_INTERCEPT, color_override = SSsecurity_level.current_security_level.announcement_color) /datum/game_mode/dynamic/proc/show_threatlog(mob/admin) if(!SSticker.HasRoundStarted()) diff --git a/code/game/machinery/camera/camera.dm b/code/game/machinery/camera/camera.dm index 63b453f9bc01..b3655b4c2d20 100644 --- a/code/game/machinery/camera/camera.dm +++ b/code/game/machinery/camera/camera.dm @@ -145,7 +145,7 @@ MAPPING_DIRECTIONAL_HELPERS(/obj/machinery/camera/xray, 0) if(isXRay(TRUE)) //don't reveal it's upgraded if was done via MALF AI Upgrade Camera Network ability . += span_info("It has an X-ray photodiode installed.") else - . += span_info("It can be upgraded with an X-ray photodiode with an analyzer.") + . += span_info("It can be upgraded with an X-ray photodiode with an gas analyzer.") //monkestation edit : Clarity if(isMotion()) . += span_info("It has a proximity sensor installed.") else diff --git a/code/game/machinery/computer/communications.dm b/code/game/machinery/computer/communications.dm index 0818418aea07..7b77ebc17348 100644 --- a/code/game/machinery/computer/communications.dm +++ b/code/game/machinery/computer/communications.dm @@ -200,13 +200,22 @@ playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, FALSE) return - var/new_sec_level = SSsecurity_level.text_level_to_number(params["newSecurityLevel"]) - if (new_sec_level != SEC_LEVEL_GREEN && new_sec_level != SEC_LEVEL_BLUE) + // monkestation start: prevent lowering alert level from delta + var/datum/security_level/new_sec_level = SSsecurity_level.available_levels[params["newSecurityLevel"]] + if(!new_sec_level) return - if (SSsecurity_level.get_current_level_as_number() == new_sec_level) + var/datum/security_level/current_sec_level = SSsecurity_level.current_security_level + if(!current_sec_level.can_crew_change_alert) + to_chat(usr, span_warning("Alert cannot be manually lowered from the current security level!")) + playsound(src, 'sound/machines/terminal_prompt_deny.ogg', 50, FALSE) return + if(!new_sec_level.can_set_via_comms_console) + return + if(current_sec_level == new_sec_level) + return + // monkestation end - SSsecurity_level.set_level(new_sec_level) + SSsecurity_level.set_level(new_sec_level.name) to_chat(usr, span_notice("Authorization confirmed. Modifying security level.")) playsound(src, 'sound/machines/terminal_prompt_confirm.ogg', 50, FALSE) @@ -577,7 +586,8 @@ data["alertLevelTick"] = alert_level_tick data["canMakeAnnouncement"] = TRUE - data["canSetAlertLevel"] = issilicon(user) ? "NO_SWIPE_NEEDED" : "SWIPE_NEEDED" + if(SSsecurity_level.current_security_level?.can_crew_change_alert) + data["canSetAlertLevel"] = issilicon(user) ? "NO_SWIPE_NEEDED" : "SWIPE_NEEDED" else if(syndicate) data["canMakeAnnouncement"] = TRUE @@ -641,11 +651,17 @@ ui.open() /obj/machinery/computer/communications/ui_static_data(mob/user) - return list( + . = list( "callShuttleReasonMinLength" = CALL_SHUTTLE_REASON_LENGTH, "maxStatusLineLength" = MAX_STATUS_LINE_LENGTH, "maxMessageLength" = MAX_MESSAGE_LEN, + "settableLevels" = list(), ) + for(var/level_name in SSsecurity_level.available_levels) + var/datum/security_level/level = SSsecurity_level.available_levels[level_name] + if(!level.can_set_via_comms_console) + continue + .["settableLevels"] += level_name /obj/machinery/computer/communications/Topic(href, href_list) if (href_list["reject_cross_comms_message"]) diff --git a/code/game/machinery/computer/crew.dm b/code/game/machinery/computer/crew.dm index 5ddc9179c543..df4fb99502f8 100644 --- a/code/game/machinery/computer/crew.dm +++ b/code/game/machinery/computer/crew.dm @@ -138,7 +138,8 @@ GLOBAL_DATUM_INIT(crewmonitor, /datum/crewmonitor, new) JOB_JANITOR = 68, JOB_LAWYER = 69, JOB_PSYCHOLOGIST = 71, - // 200-239: Centcom + JOB_LATEJOIN_BARBER = 72, //monkestation edit: barber + // 200-239: Centcom JOB_CENTCOM_ADMIRAL = 200, JOB_CENTCOM = 201, JOB_CENTCOM_OFFICIAL = 210, diff --git a/code/game/machinery/computer/orders/order_computer/order_computer.dm b/code/game/machinery/computer/orders/order_computer/order_computer.dm index 9a9d56decf22..4ea2d90bbafb 100644 --- a/code/game/machinery/computer/orders/order_computer/order_computer.dm +++ b/code/game/machinery/computer/orders/order_computer/order_computer.dm @@ -120,7 +120,8 @@ GLOBAL_LIST_EMPTY(order_console_products) "cat" = item.category_index, "ref" = REF(item), "cost" = FLOOR(item.cost_per_order * cargo_cost_multiplier, 1), - "product_icon" = icon2base64(getFlatIcon(image(icon = initial(item.item_path.icon), icon_state = initial(item.item_path.icon_state)), no_anim=TRUE)) + "icon" = item.item_path::icon, + "icon_state" = item.item_path::icon_state, )) return data diff --git a/code/game/machinery/dance_machine.dm b/code/game/machinery/dance_machine.dm index d9353cb55cba..35b02bb6ff6e 100644 --- a/code/game/machinery/dance_machine.dm +++ b/code/game/machinery/dance_machine.dm @@ -434,8 +434,11 @@ M.lying_fix() /mob/living/proc/lying_fix() - animate(src, transform = null, time = 1, loop = 0) - lying_prev = 0 +//MONKESTATION EDIT START : Fixes this breaking the mob's size + // animate(src, transform = null, time = 1, loop = 0) - original + // lying_prev = 0 - original + rebuild_transform() +//MONKESTATION EDIT END /obj/machinery/jukebox/proc/dance_over() for(var/mob/living/L in rangers) diff --git a/code/game/machinery/telecomms/broadcasting.dm b/code/game/machinery/telecomms/broadcasting.dm index fdeb76d7fa58..ccf7fa6c20df 100644 --- a/code/game/machinery/telecomms/broadcasting.dm +++ b/code/game/machinery/telecomms/broadcasting.dm @@ -182,9 +182,8 @@ radios += independent_radio for(var/obj/item/radio/called_radio as anything in radios) - if(QDELETED(called_radio)) - return - called_radio.on_recieve_message() + if(!QDELETED(called_radio)) + called_radio.on_recieve_message() // From the list of radios, find all mobs who can hear those. var/list/receive = get_hearers_in_radio_ranges(radios) @@ -205,9 +204,11 @@ var/rendered = virt.compose_message(virt, language, message, frequency, spans) for(var/atom/movable/hearer as anything in receive) - if(QDELETED(hearer)) + if(isnull(hearer)) stack_trace("null found in the hearers list returned by the spatial grid. this is bad") continue + else if(QDELING(hearer)) + continue spans -= blacklisted_spans hearer.Hear(rendered, virt, language, message, frequency, spans, message_mods, message_range = INFINITY) diff --git a/code/game/objects/effects/decals/cleanable/humans.dm b/code/game/objects/effects/decals/cleanable/humans.dm index 0d8f4e26bb9d..1277cbee7ba6 100644 --- a/code/game/objects/effects/decals/cleanable/humans.dm +++ b/code/game/objects/effects/decals/cleanable/humans.dm @@ -423,7 +423,7 @@ GLOBAL_LIST_EMPTY(bloody_footprints_cache) else if(species == SPECIES_MONKEY) . += "[icon2html('icons/mob/species/human/human.dmi', user, "monkey")] Some monkey paws." else if(species == SPECIES_SIMIAN) - . += "[icon2html('monkestation/icons/mob/species/simian/bodyparts.dmi', user, "simian_l_leg")] Some simian paws." + . += "[icon2html('monkestation/icons/mob/species/monkey/bodyparts.dmi', user, "monkey_l_leg")] Some simian paws." else if(species == SPECIES_LIZARD) . += "[icon2html('icons/mob/species/lizard/bodyparts.dmi', user, "digitigrade_l_leg")] Some lizard claws." else if(species == SPECIES_HUMAN) diff --git a/code/game/objects/effects/phased_mob.dm b/code/game/objects/effects/phased_mob.dm index db444e33ff94..07ee94d8a390 100644 --- a/code/game/objects/effects/phased_mob.dm +++ b/code/game/objects/effects/phased_mob.dm @@ -38,7 +38,7 @@ return var/area/destination_area = get_area(eject_spot) - if(destination_area.area_flags & NOTELEPORT) + if((destination_area.area_flags & NOTELEPORT) && (SSticker.current_state < GAME_STATE_FINISHED)) // monkestation edit: allow jaunts to work after roundend // this ONLY happens if someone uses a phasing effect // to try to land in a NOTELEPORT zone after it is created, AKA trying to exploit. if(isliving(jaunter)) diff --git a/code/game/objects/items.dm b/code/game/objects/items.dm index cd2ee2766e41..daecdd230583 100644 --- a/code/game/objects/items.dm +++ b/code/game/objects/items.dm @@ -689,7 +689,7 @@ if(user && iscarbon(user)) SEND_SIGNAL(user, COMSIG_CARBON_ITEM_DROPPED, src) if(!silent) - playsound(src, drop_sound, DROP_SOUND_VOLUME, ignore_walls = FALSE) + playsound(src, drop_sound, DROP_SOUND_VOLUME, ignore_walls = FALSE, mixer_channel = drop_mixer_channel) // monkestation edit: sound mixer user?.update_equipment_speed_mods() /// called just as an item is picked up (loc is not yet changed) @@ -755,9 +755,9 @@ item_flags |= IN_INVENTORY if(!initial) if(equip_sound && (slot_flags & slot)) - playsound(src, equip_sound, EQUIP_SOUND_VOLUME, TRUE, ignore_walls = FALSE) + playsound(src, equip_sound, EQUIP_SOUND_VOLUME, TRUE, ignore_walls = FALSE, mixer_channel = equip_mixer_channel) // monkestation: sound mixer else if(slot & ITEM_SLOT_HANDS) - playsound(src, pickup_sound, PICKUP_SOUND_VOLUME, ignore_walls = FALSE) + playsound(src, pickup_sound, PICKUP_SOUND_VOLUME, ignore_walls = FALSE, mixer_channel = pickup_mixer_channel) // monkestation: sound mixer user.update_equipment_speed_mods() /// Gives one of our item actions to a mob, when equipped to a certain slot @@ -862,7 +862,7 @@ playsound(hit_atom, 'sound/weapons/throwtap.ogg', 1, volume, -1) else - playsound(src, drop_sound, YEET_SOUND_VOLUME, ignore_walls = FALSE) + playsound(src, drop_sound, YEET_SOUND_VOLUME, ignore_walls = FALSE, mixer_channel = drop_mixer_channel) // monkestation edit: sound mixer return hit_atom.hitby(src, 0, itempush, throwingdatum=throwingdatum) /obj/item/throw_at(atom/target, range, speed, mob/thrower, spin=1, diagonals_first = 0, datum/callback/callback, force, gentle = FALSE, quickstart = TRUE) diff --git a/code/game/objects/items/chainsaw.dm b/code/game/objects/items/chainsaw.dm index e15f25977f58..eae130f80bdb 100644 --- a/code/game/objects/items/chainsaw.dm +++ b/code/game/objects/items/chainsaw.dm @@ -14,7 +14,7 @@ throwforce = 13 throw_speed = 2 throw_range = 4 - demolition_mod = 1.5 + demolition_mod = 1.4 custom_materials = list(/datum/material/iron= SHEET_MATERIAL_AMOUNT * 6.5) attack_verb_continuous = list("saws", "tears", "lacerates", "cuts", "chops", "dices") attack_verb_simple = list("saw", "tear", "lacerate", "cut", "chop", "dice") diff --git a/code/game/objects/items/control_wand.dm b/code/game/objects/items/control_wand.dm index 2e3750cda473..21e13d86cad4 100644 --- a/code/game/objects/items/control_wand.dm +++ b/code/game/objects/items/control_wand.dm @@ -121,9 +121,9 @@ region_access = REGION_MEDBAY /obj/item/door_remote/civilian - name = "civilian door remote" + name = "civilian+supply door remote" icon_state = "gangtool-white" - region_access = REGION_GENERAL + region_access = (REGION_GENERAL && REGION_SUPPLY) //monkestation addition #undef WAND_OPEN #undef WAND_BOLT diff --git a/code/game/objects/items/devices/scanners/health_analyzer.dm b/code/game/objects/items/devices/scanners/health_analyzer.dm index 0113ff4d393b..05cce7242047 100644 --- a/code/game/objects/items/devices/scanners/health_analyzer.dm +++ b/code/game/objects/items/devices/scanners/health_analyzer.dm @@ -169,6 +169,11 @@ render_list += "Subject cannot be healed by any known methods.\n" // monkestation end + // monkestation edit: heavy bleeder challenge + if(HAS_TRAIT(target, TRAIT_HEAVY_BLEEDER)) + render_list += "Subject will suffer highly abnormal hemorrhaging from laceration or surgical incension.\n" + // monkestation end + if(target.stamina.loss) if(advanced) render_list += "Fatigue level: [target.stamina.loss]%.\n" diff --git a/code/game/objects/items/food/egg.dm b/code/game/objects/items/food/egg.dm index dee71be9accb..b5921949760e 100644 --- a/code/game/objects/items/food/egg.dm +++ b/code/game/objects/items/food/egg.dm @@ -77,7 +77,7 @@ GLOBAL_VAR_INIT(chicks_from_eggs, 0) pre_hatch() GLOB.chicks_from_eggs++ - reagents.expose(hit_atom, TOUCH) + reagents?.expose(hit_atom, TOUCH) /obj/item/food/egg/attackby(obj/item/item, mob/user, params) if(istype(item, /obj/item/toy/crayon)) diff --git a/code/game/objects/items/stacks/wrap.dm b/code/game/objects/items/stacks/wrap.dm index 4fa379a9796d..35f0a61be401 100644 --- a/code/game/objects/items/stacks/wrap.dm +++ b/code/game/objects/items/stacks/wrap.dm @@ -183,6 +183,28 @@ balloon_alert(user, "not enough paper!") return + // MONKESTATION EDIT START + else if(istype(target, /obj/structure/fermentation_keg)) + var/obj/structure/fermentation_keg/keg = target + if(!keg.ready_to_bottle) + balloon_alert(user, "can't wrap without anything in it!") + return + if(!keg.delivery_icon) //no delivery icon means unwrappable keg. As of 10/14/2024, these do not exist. + balloon_alert(user, "can't wrap!") + return + if(use(3)) + var/obj/item/delivery/big/parcel = new(get_turf(keg.loc)) + parcel.base_icon_state = keg.delivery_icon + parcel.update_icon() + parcel.drag_slowdown = keg.drag_slowdown + keg.forceMove(parcel) + parcel.add_fingerprint(user) + keg.add_fingerprint(user) + else + balloon_alert(user, "not enough paper!") + return + // MONKESTATION EDIT END + else balloon_alert(user, "can't wrap!") return diff --git a/code/game/objects/items/storage/boxes/job_boxes.dm b/code/game/objects/items/storage/boxes/job_boxes.dm index 9db611b3f316..a5a62c5f3135 100644 --- a/code/game/objects/items/storage/boxes/job_boxes.dm +++ b/code/game/objects/items/storage/boxes/job_boxes.dm @@ -225,11 +225,23 @@ illustration = "heart" foldable_result = null mask_type = null + var/random_funny_internals = TRUE + +/obj/item/storage/box/survival/hug/PopulateContents() + if(!random_funny_internals) + return ..() + internal_type = pick( + /obj/item/tank/internals/emergency_oxygen/engi/clown/n2o, + /obj/item/tank/internals/emergency_oxygen/engi/clown/bz, + /obj/item/tank/internals/emergency_oxygen/engi/clown/helium, + ) + return ..() //Mime survival box /obj/item/storage/box/survival/hug/black icon_state = "hugbox_black" illustration = "heart_black" + random_funny_internals = FALSE //Duplicated suicide/attack self procs, since the survival boxes are a subtype of box/survival /obj/item/storage/box/survival/hug/suicide_act(mob/living/user) diff --git a/code/game/objects/items/tanks/tank_types.dm b/code/game/objects/items/tanks/tank_types.dm index 6241aa6d2b3f..07e736a9a387 100644 --- a/code/game/objects/items/tanks/tank_types.dm +++ b/code/game/objects/items/tanks/tank_types.dm @@ -215,3 +215,41 @@ /obj/item/tank/internals/generic/populate_gas() return + +/* + * Funny internals + */ +/obj/item/tank/internals/emergency_oxygen/engi/clown + //MONKESTATION EDIT START + // name = "funny emergency oxygen tank" + // desc = "Used for emergencies. Contains very little oxygen with an extra of a funny gas, so try to conserve it until you actually need it." + name = "'enhanced' emergency oxygen tank" + desc = "Used for emergencies. Contains very little oxygen, so try to conserve it until you actually need it. This one has been topped up with a free bonus gas!" + //MONKESTATION EDIT END + icon_state = "emergency_clown" + inhand_icon_state = "emergency_clown" + worn_icon_state = "emergency_clown" + tank_holder_icon_state = "holder_emergency_clown" + distribute_pressure = TANK_CLOWN_RELEASE_PRESSURE + +/obj/item/tank/internals/emergency_oxygen/engi/clown/n2o + +/obj/item/tank/internals/emergency_oxygen/engi/clown/n2o/populate_gas() + air_contents.assert_gases(/datum/gas/oxygen, /datum/gas/nitrous_oxide) + air_contents.gases[/datum/gas/oxygen][MOLES] = (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * 0.95 + air_contents.gases[/datum/gas/nitrous_oxide][MOLES] = (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * 0.05 + +/obj/item/tank/internals/emergency_oxygen/engi/clown/bz + +/obj/item/tank/internals/emergency_oxygen/engi/clown/bz/populate_gas() + air_contents.assert_gases(/datum/gas/oxygen, /datum/gas/bz) + air_contents.gases[/datum/gas/oxygen][MOLES] = (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * 0.9 + air_contents.gases[/datum/gas/bz][MOLES] = (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * 0.1 + +/obj/item/tank/internals/emergency_oxygen/engi/clown/helium + distribute_pressure = TANK_CLOWN_RELEASE_PRESSURE + 2 + +/obj/item/tank/internals/emergency_oxygen/engi/clown/helium/populate_gas() + air_contents.assert_gases(/datum/gas/oxygen, /datum/gas/helium) + air_contents.gases[/datum/gas/oxygen][MOLES] = (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * 0.75 + air_contents.gases[/datum/gas/helium][MOLES] = (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * 0.25 diff --git a/code/game/objects/structures/crates_lockers/closets/secure/security.dm b/code/game/objects/structures/crates_lockers/closets/secure/security.dm index f6a29fe676ce..25b860ea9364 100755 --- a/code/game/objects/structures/crates_lockers/closets/secure/security.dm +++ b/code/game/objects/structures/crates_lockers/closets/secure/security.dm @@ -44,6 +44,7 @@ new /obj/item/circuitboard/machine/techfab/department/service(src) new /obj/item/storage/photo_album/hop(src) new /obj/item/storage/lockbox/medal/hop(src) + new /obj/item/clothing/suit/space/hardsuit/hop(src) //monkestation addition /obj/structure/closet/secure_closet/hos name = "head of security's locker" diff --git a/code/game/objects/structures/crates_lockers/crates/secure.dm b/code/game/objects/structures/crates_lockers/crates/secure.dm index 25989b2bdbc9..93e5302fea25 100644 --- a/code/game/objects/structures/crates_lockers/crates/secure.dm +++ b/code/game/objects/structures/crates_lockers/crates/secure.dm @@ -7,7 +7,7 @@ max_integrity = 500 armor_type = /datum/armor/crate_secure var/tamperproof = 0 - damage_deflection = 25 + damage_deflection = 35 /datum/armor/crate_secure melee = 30 diff --git a/code/game/objects/structures/ore_containers.dm b/code/game/objects/structures/ore_containers.dm index af96c3e4a014..2996bd65e607 100644 --- a/code/game/objects/structures/ore_containers.dm +++ b/code/game/objects/structures/ore_containers.dm @@ -23,25 +23,16 @@ ui.open() /obj/structure/ore_container/ui_data(mob/user) - var/list/data = list() - data["ores"] = list() + var/list/ores = list() for(var/obj/item/stack/ore/ore_item in contents) - data["ores"] += list(list( + ores += list(list( "id" = REF(ore_item), "name" = ore_item.name, "amount" = ore_item.amount, + "icon" = ore_item::icon, + "icon_state" = ore_item::icon_state, )) - return data - -/obj/structure/ore_container/ui_static_data(mob/user) - var/list/data = list() - data["ore_images"] = list() - for(var/obj/item/stack/ore_item as anything in subtypesof(/obj/item/stack/ore)) - data["ore_images"] += list(list( - "name" = initial(ore_item.name), - "icon" = icon2base64(getFlatIcon(image(icon = initial(ore_item.icon), icon_state = initial(ore_item.icon_state)), no_anim=TRUE)) - )) - return data + return list("ores" = ores) /obj/structure/ore_container/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() diff --git a/code/game/say.dm b/code/game/say.dm index abf2511ca159..8eb2b780228d 100644 --- a/code/game/say.dm +++ b/code/game/say.dm @@ -37,14 +37,6 @@ GLOBAL_LIST_INIT(freqtospan, list( /atom/movable/proc/Hear(message, atom/movable/speaker, message_language, raw_message, radio_freq, list/spans, list/message_mods = list(), message_range=0) SEND_SIGNAL(src, COMSIG_MOVABLE_HEAR, args) -//MONKESTATION EDIT -/mob/Hear(message, atom/movable/speaker, message_language, raw_message, radio_freq, list/spans, list/message_mods = list(), message_range) - . = ..() - if(client && radio_freq) - var/atom/movable/virtualspeaker/V = speaker - if(isAI(V.source)) - playsound_local(get_turf(src), 'goon/sounds/radio_ai.ogg', 170, 1, 0, 0, pressure_affected = FALSE, use_reverb = FALSE, mixer_channel = CHANNEL_MOB_SOUNDS) -//MONKESTATION EDIT END /** * Checks if our movable can speak the provided message, passing it through filters * and spam detection. Does not call can_speak. CAN include feedback messages about diff --git a/code/game/world.dm b/code/game/world.dm index 5c4a8962b6d6..cc5204b6b6a5 100644 --- a/code/game/world.dm +++ b/code/game/world.dm @@ -350,7 +350,6 @@ GLOBAL_VAR(tracy_log) ..() /world/proc/auxcleanup() - AUXTOOLS_FULL_SHUTDOWN(AUXLUA) var/debug_server = world.GetConfig("env", "AUXTOOLS_DEBUG_DLL") if (debug_server) call_ext(debug_server, "auxtools_shutdown")() @@ -475,6 +474,7 @@ GLOBAL_VAR(tracy_log) /world/proc/on_tickrate_change() SStimer?.reset_buckets() + DREAMLUAU_SET_EXECUTION_LIMIT_MILLIS(tick_lag * 100) /world/proc/init_byond_tracy() var/library diff --git a/code/modules/admin/admin_verbs.dm b/code/modules/admin/admin_verbs.dm index cd51aa76179d..0427de674555 100644 --- a/code/modules/admin/admin_verbs.dm +++ b/code/modules/admin/admin_verbs.dm @@ -102,6 +102,8 @@ GLOBAL_PROTECT(admin_verbs_admin) /client/proc/log_viewer_new, /client/proc/request_more_opfor, /client/proc/view_opfors, + /client/proc/check_players, + /client/proc/AdminVOX, ) GLOBAL_LIST_INIT(admin_verbs_ban, list(/client/proc/unban_panel, /client/proc/ban_panel, /client/proc/stickybanpanel, /client/proc/library_control)) GLOBAL_PROTECT(admin_verbs_ban) diff --git a/code/modules/admin/player_panel.dm b/code/modules/admin/player_panel.dm index 419733503d9a..b80e433ff9c3 100644 --- a/code/modules/admin/player_panel.dm +++ b/code/modules/admin/player_panel.dm @@ -231,10 +231,10 @@ if(isliving(M)) if(iscarbon(M)) //Carbon stuff - if(ismonkey(M)) - M_job = "Monkey" - else if(ishuman(M)) + if(ishuman(M) && M.job) M_job = M.job + else if(ismonkey(M)) + M_job = "Monkey" else if(isalien(M)) //aliens if(islarva(M)) M_job = "Alien larva" diff --git a/code/modules/admin/smites/boneless.dm b/code/modules/admin/smites/boneless.dm index 31c29aa24727..a6bec3fe8a87 100644 --- a/code/modules/admin/smites/boneless.dm +++ b/code/modules/admin/smites/boneless.dm @@ -9,11 +9,12 @@ to_chat(user, span_warning("This must be used on a carbon mob."), confidential = TRUE) return var/mob/living/carbon/carbon_target = target - for(var/_limb in carbon_target.bodyparts) - var/obj/item/bodypart/limb = _limb // fine to use this raw, its a meme smite - var/type_wound = pick(list(/datum/wound/blunt/bone/critical, /datum/wound/blunt/bone/severe)) - limb.force_wound_upwards(type_wound, smited = TRUE) - type_wound = pick(list(/datum/wound/blunt/bone/critical, /datum/wound/blunt/bone/severe, /datum/wound/blunt/bone/moderate)) - limb.force_wound_upwards(type_wound, smited = TRUE) - type_wound = pick(list(/datum/wound/blunt/bone/critical, /datum/wound/blunt/bone/severe)) - limb.force_wound_upwards(type_wound, smited = TRUE) + for(var/obj/item/bodypart/limb as anything in carbon_target.bodyparts) + var/severity = pick(list( + WOUND_SEVERITY_MODERATE, + WOUND_SEVERITY_SEVERE, + WOUND_SEVERITY_SEVERE, + WOUND_SEVERITY_CRITICAL, + WOUND_SEVERITY_CRITICAL, + )) + carbon_target.cause_wound_of_type_and_severity(WOUND_BLUNT, limb, severity, smited = TRUE) diff --git a/code/modules/admin/topic.dm b/code/modules/admin/topic.dm index 7a40f7a03d80..e957f3c89fef 100644 --- a/code/modules/admin/topic.dm +++ b/code/modules/admin/topic.dm @@ -1451,7 +1451,7 @@ if(response.body == "[]") dat += "
0 bans detected for [ckey]
" else - bans = json_decode(response["body"]) + bans = json_decode(response.body) //Ignore bans from non-whitelisted sources, if a whitelist exists var/list/valid_sources diff --git a/code/modules/admin/verbs/SDQL2/SDQL_2_wrappers.dm b/code/modules/admin/verbs/SDQL2/SDQL_2_wrappers.dm index 6e7352446c34..c0d0bc4784fd 100644 --- a/code/modules/admin/verbs/SDQL2/SDQL_2_wrappers.dm +++ b/code/modules/admin/verbs/SDQL2/SDQL_2_wrappers.dm @@ -51,6 +51,9 @@ /proc/_get_step(Ref, Dir) return get_step(Ref, Dir) +/proc/_hascall(object, procname) + return hascall(object, procname) + /proc/_hearers(Depth = world.view, Center = usr) return hearers(Depth, Center) diff --git a/code/modules/admin/verbs/lua/README.md b/code/modules/admin/verbs/lua/README.md index 707184d4d772..9b9bfbe05f93 100644 --- a/code/modules/admin/verbs/lua/README.md +++ b/code/modules/admin/verbs/lua/README.md @@ -1,150 +1,225 @@ -# Auxlua +# Objects ---- +Datums, lists, typepaths, static appearances, and some other objects are represented in Luau as userdata. Certain operations can be performed on these types of objects. -## Datums +## Common metamethods -DM datums are treated as lua userdata, and can be stored in fields. Due to fundamental limitations in lua, userdata is inherently truthy. Since datum userdata can correspond to a deleted datum, which would evaluate to `null` in DM, the function [`datum:is_null()`](#datumisnull) is provided to offer a truthiness test consistent with DM. +The following metamethods are defined for all objects. -Keep in mind that BYOND can't see that a datum is referenced in a lua field, and will garbage collect it if it is not referenced anywhere in DM. +### \_\_tostring(): string -### datum:get_var(var) +Returns the string representation of the object. This uses BYOND's internal string conversion function. -Equivalent to DM's `datum.var` +### \_\_eq(other: any): boolean -### datum:set_var(var, value) +Compare the equality of two objects. While passing the same object into luau twice will return two references to the same userdata, some DM projects may override the equality operator using an `__operator==` proc definition. -Equivalent to DM's `datum.var = value` +## Datum-like Objects -### datum:call_proc(procName, ...) +Datum-like objects include datums themselves, clients (if they have not been redefined to be children of `/datum`), static appearances, and the world. -Equivalent to DM's `datum.procName(...)` +### \_\_index(index: string): any -### datum:is_null() +Access the member specified by `index`. -This function is used to evaluate the truthiness of a DM var. The lua statement `if datum:is_null() then` is equivalent to the DM statement `if(datum)`. +If `index` is a valid var for the object, the index operation will return that var's value. +If the var getting wrapper proc is set, the operation will instead call that proc with the arguments `(object, index)`. -### datum.vars +For objects other than static appearances, if `index` is a valid proc for the object, the operation will return a wrapper for that proc that can be invoked using call syntax (e.g. `object:proc(...arguments)`). If the object proc calling wrapper is set, calling the returned function will instead call the wrapper proc with the arguments `(object, proc, {...arguments})`. Note that vars will be shadowed by procs with the same name. To work around this, use the `dm.get_var` function. -Returns a userdatum that allows you to access and modifiy the vars of a DM datum by index. `datum.vars.foo` is equivalent to `datum:get_var("foo")`, while `datum.vars.foo = bar` is equivalent to `datum:set_var("foo", bar)` +### \_\_newindex(index: string, value: any): () ---- +Set the var specified by `index` to `value`, if that var exists on the object. + +If the var setting wrapper proc is set, the operation will instead call that proc with the arguments `(object, index, value)`. ## Lists -In order to allow lists to be modified in-place across the DM-to-lua language barrier, lists are treated as userdata. Whenever running code that expects a DM value, auxlua will attempt to convert tables into lists. +Lists are syntactically similar to tables, with one crucial difference. +Unlike tables, numeric indices must be non-zero integers within the bounds of the list. + +### \_\_index(index: any): any + +Read the list at `index`. This works both for numeric indices and assoc keys. +Vars lists cannot be directly read this way if the var getting wrapper proc is set. + +### \_\_newindex(index: any, value: any): any + +Write `value` to the list at `index`. This works both for writing numeric indices and assoc keys. +Vars lists cannot be directly written this way if the var setting wrapper proc is set. + +### \_\_len(): integer + +Returns the length of the list, similarly to the `length` builtin in DM. + +### Iteration + +Lists support Luau's generalized iteration. Iteration this way returns pairs of numeric indices and list values. +For example, the statement `for _, v in L do` is logically equivalent to the DM statement `for(var/v in L)`. + +# Global Fields and Modules + +In addition to the full extent of Luau's standard library modules, some extra functions and modules have been added. + +## Global-Level Fields + +### sleep(): () + +Yields the active thread, without worrying about passing data into or out of the state. + +Threads yielded this way are placed at the end of a queue. Call the `awaken` hook function from DM to execute the thread at the front of the queue. + +### loadstring(code: string): function + +Luau does not inherently include the `loadstring` function common to a number of other versions of lua. This is an effective reimplementation of `loadstring`. + +### print(...any): () + +Calls the print wrapper with the passed in arguments. +Raises an error if no print wrapper is set, as that means there is nothing to print with. + +### \_state_id: integer + +The handle to the underlying luau state in the dreamluau binary. + +## \_exec + +The `_exec` module includes volatile fields related to the current execution context. + +### \_next_yield_index: integer + +When yielding a thread with `coroutine.yield`, it will be inserted into an internal table at the first open integer index. +This field corresponds to that first open integer index. + +### \_limit: integer? + +If set, the execution limit, rounded to the nearest millisecond. + +### \_time: integer + +The length of successive time luau code has been executed, including recursive calls to DM and back into luau, rounded to the nearest millisecond. + +## dm -List references are subject to the same limitations as datum userdata, but you are less likely to encounter these limitations for regular lists. +The `dm` module includes fields and functions for basic interaction with DM. -Some lists (`vars`, `contents`, `overlays`, `underlays`, `vis_contents`, and `vis_locs`) are inherently attached to datums, and as such, their corresponding userdata contains a weak reference to the containing datum. Use [`list:is_null`](#listisnull) to validate these types of lists. +### world: userdata -### list.len +A static reference to the DM `world`. -Equivalent to DM's `list.len` +### global_vars: userdata -### list:get(index) +A static reference that functions like the DM keyword `global`. This can be indexed to read/write global vars. -Equivalent to DM's `list[index]` +### global_procs: table -### list:set(index, value) +A table that can be indexed by string for functions that wrap global procs. -Equivalent to DM's `list[index] = value` +Due to BYOND limitations, attempting to index an invalid proc returns a function logically equivalent to a no-op. -### list:add(value) +### get_var(object: userdata, var: string): function -Equivalent to DM's `list.Add(value)` +Reads the var `var` on `object`. This function can be used to get vars that are shadowed by procs declared with the same name. -### list:remove(value) +### new(path: string, ...any): userdata -Equivalent to DM's `list.Remove(value)` +Creates an instance of the object specified by `path`, with `...` as its arguments. +If the "new" wrapper is set, that proc will be called instead, with the arguments `(path, {...})`. -### list:to_table() +### is_valid_ref(ref: any): boolean -Converts a DM list into a lua table. +Returns true if the value passed in corresponds to a valid reference-counted DM object. -### list:of_type(type_path) +### usr: userdata? -Will extract only values of type `type_path`. +Corresponds to the DM var `usr`. -### list:is_null() +## list -A similar truthiness test to [`datum:is_null()`](#datumisnull). This function only has the possibility of returning `false` for lists that are inherently attached to a datum (`vars`, `contents`, `overlays`, `underlays`, `vis_contents`, and `vis_locs`). +The `list` module contains wrappers for the builtin list procs, along with several other utility functions for working with lists. -### list.entries +### add(list: userdata, ...any): () -Returns a userdatum that allows you to access and modifiy the entries of the list by index. `list.entries.foo` is equivalent to `list:get("foo")`, while `list.entries.foo = bar` is equivalent to `list:set("foo", bar)` +Logically equivalent to the DM statement `list.Add(...)`. ---- +### copy(list: userdata, start?: integer, end?: integer): userdata -## The dm table +Logically equivalent to the DM statement `list.Copy(start, end)`. -The `dm` table consists of the basic hooks into the DM language. +### cut(list: userdata, start?: integer, end?: integer): userdata -### dm.state_id +Logically equivalent to the DM statement `list.Cut(start, end)`. -The address of the lua state in memory. This is a copy of the internal value used by auxlua to locate the lua state in a global hash map. `state_id` is a registry value that is indirectly obtained using the `dm` table's `__index` metamethod. +### find(list: userdata, item: any, start?: integer, end?: integer): integer -### dm.global_proc(proc, ...) -Calls the global proc `/proc/[proc]` with `...` as its arguments. +Logically equivalent to the DM statement `list.Find(item, start, end)`. -### dm.world -A reference to DM's `world`, in the form of datum userdata. This reference is always valid, since `world` always exists. +### insert(list: userdata, index: integer, ...any): integer -Due to limitations inherent in the wrapper functions used on tgstation, `world:set_var` and `world:call_proc` will raise an error. +Logically equivalent to the DM statement `list.Insert(item, ...)`. -### dm.global_vars -A reference to DM's `global`, in the form of datum userdata. Subject to the same limitations as `dm.world` +### join(list: userdata, glue: string, start?: integer, end?: integer): string -### dm.usr -A weak reference to DM's `usr`. As a rule of thumb, this is a reference to the mob of the client who triggered the chain of procs leading to the execution of Lua code. The following is a list of what `usr` is for the most common ways of executing Lua code: -- For resumes and awakens, which are generally executed by the MC, `usr` is (most likely) null. -- `SS13.wait` queues a resume, which gets executed by the MC. Therefore, `usr` is null after `SS13.wait` finishes. -- For chunk loads, `usr` is generally the current mob of the admin that loaded that chunk. -- For function calls done from the Lua editor, `usr` is the current mob of the admin calling the function. -- `SS13.register_signal` creates a `/datum/callback` that gets executed by the `SEND_SIGNAL` macro for the corresponding signal. As such, `usr` is the mob that triggered the chain of procs leading to the invocation of `SEND_SIGNAL`. +Logically equivalent to the statement `list.Join(glue, start, end)`. ---- +### remove(list: userdata, ...any): integer -## Execution Limit +Logically equivalent to the DM statement `list.Remove(...)`. -In order to prevent freezing the server with infinite loops, auxlua enforces an execution limit, defaulting to 100ms. When a single lua state has been executing for longer than this limit, it will eventually stop and produce an error. +### remove_all(list: userdata, ...any): integer -To avoid exceeding the execution limit, call `sleep()` or `coroutine.yield()` before the execution limit is reached. +Logically equivalent to the DM statement `list.RemoveAll(...)`. -### over_exec_usage(fraction = 0.95) +### splice(list: userdata, start?: integer, end?: integer, ...any): () -This function returns whether the current run of the Lua VM has executed for longer than the specified fraction of the execution limit. You can use this function to branch to a call to `sleep()` or `coroutine.yield()` to maximize the amount of work done in a single run of the Lua VM. If nil, `fraction` will default to 0.95, otherwise, it will be clamped to the range \[0, 1\]. +Logically equivalent to the DM statement `list.Splice(start, end, ...)`. ---- +### swap(list: userdata, index_1: integer, index_2: integer): () -## Task management -The Lua Scripting subsystem manages the execution of tasks for each Lua state. A single fire of the subsystem behaves as follows: -- All tasks that slept since the last fire are resumed in the order they slept. -- For each queued resume, the corresponding task is resumed. +Logically equivalent to the DM statement `list.Swap(index_1, index_2)`. -### sleep() -Yields the current thread, scheduling it to be resumed during the next fire of SSlua. Use this function to prevent your Lua code from exceeding its allowed execution duration. Under the hood, `sleep` performs the following: +### to_table(list: userdata, deep?: boolean): table -- Sets the [`sleep_flag`](#sleep_flag) -- Calls `coroutine.yield()` -- Clears the sleep flag when determining whether the task slept or yielded -- Ignores the return values of `coroutine.yield()` once resumed +Creates a table that is a copy of `list`. If `deep` is true, `to_table` will be called on any lists inside that list. ---- +### from_table(table: table): userdata -## The SS13 package +Creates a list that is a copy of `table`. This is not strictly necessary, as tables are automatically converted to lists when passed back into DM, using the same internal logic as `from_table`. + +### filter(list: userdata, path: string): userdata + +Returns a copy of `list`, containing only elements that are objects descended from `path`. + +## pointer + +The `pointer` module contains utility functions for interacting with pointers. +Keep in mind that passing DM pointers into luau and manipulating them in this way can bypass wrapper procs. + +### read(pointer: userdata): any + +Gets the underlying data the pointer references. + +### write(pointer: userdata, value: any): () + +Writes `value` to the underlying data the pointer references. + +### unwrap(possible_pointer: any): any + +If `possible_pointer` is a pointer, reads it. Otherwise, it is returned as-is. + +# The SS13 package The `SS13` package contains various helper functions that use code specific to tgstation. -### SS13.state +## SS13.state A reference to the state datum (`/datum/lua_state`) handling this Lua state. -### SS13.get_runner_ckey() +## SS13.get_runner_ckey() The ckey of the user who ran the lua script in the current context. Can be unreliable if accessed after sleeping. -### SS13.get_runner_client() +## SS13.get_runner_client() Returns the client of the user who ran the lua script in the current context. Can be unreliable if accessed after sleeping. -### SS13.global_proc +## SS13.global_proc A wrapper for the magic string used to tell `WrapAdminProcCall` to call a global proc. For instance, `/datum/callback` must be instantiated with `SS13.global_proc` as its first argument to specify that it will be invoking a global proc. The following example declares a callback which will execute the global proc `to_chat`: @@ -152,25 +227,18 @@ The following example declares a callback which will execute the global proc `to local callback = SS13.new("/datum/callback", SS13.global_proc, "to_chat", dm.world, "Hello World") ``` -### SS13.istype(thing, type) +## SS13.istype(thing, type) Equivalent to the DM statement `istype(thing, text2path(type))`. -### SS13.new(type, ...) -Instantiates a datum of type `type` with `...` as the arguments passed to `/proc/_new` -The following example spawns a singularity at the caller's current turf: -```lua -SS13.new("/obj/singularity", dm.global_proc("_get_step", dm.usr, 0)) -``` - -### SS13.new_untracked(type, ...) -Works exactly like SS13.new but it does not store the value to the lua state's `references` list variable. This means that the variable could end up deleted if nothing holds a reference to it. +## SS13.new(type, ...) +An alias for `dm.new` -### SS13.is_valid(datum) +## SS13.is_valid(datum) Can be used to determine if the datum passed is not nil, not undefined and not qdel'd all in one. A helper function that allows you to check the validity from only one function. Example usage: ```lua local datum = SS13.new("/datum") -dm.global_proc("qdel", datum) +dm.global_procs.qdel(datum) print(SS13.is_valid(datum)) -- false local null = nil @@ -180,13 +248,13 @@ local datum = SS13.new("/datum") print(SS13.is_valid(datum)) -- true ``` -### SS13.type(string) -Converts a string into a type. Equivalent to doing `dm.global_proc("_text2path", "/path/to/type")` +## SS13.type(string) +Converts a string into a typepath. Equivalent to doing `dm.global_proc("_text2path", "/path/to/type")` -### SS13.qdel(datum) +## SS13.qdel(datum) Deletes a datum. You shouldn't try to reference it after calling this function. Equivalent to doing `dm.global_proc("qdel", datum)` -### SS13.await(thing_to_call, proc_to_call, ...) +## SS13.await(thing_to_call, proc_to_call, ...) Calls `proc_to_call` on `thing_to_call`, with `...` as its arguments, and sleeps until that proc returns. Returns two return values - the first is the return value of the proc, and the second is the message of any runtime exception thrown by the called proc. The following example calls and awaits the return of `poll_ghost_candidates`: @@ -194,59 +262,59 @@ The following example calls and awaits the return of `poll_ghost_candidates`: local ghosts, runtime = SS13.await(SS13.global_proc, "poll_ghost_candidates", "Would you like to be considered for something?") ``` -### SS13.wait(time, timer) +## SS13.wait(time, timer) Waits for a number of **seconds** specified with the `time` argument. You can optionally specify a timer subsystem using the `timer` argument. Internally, this function creates a timer that will resume the current task after `time` seconds, then yields the current task by calling `coroutine.yield` with no arguments and ignores the return values. If the task is prematurely resumed, the timer will be safely deleted. -### SS13.register_signal(datum, signal, func, make_easy_clear_function) +## SS13.register_signal(datum, signal, func) Registers the Lua function `func` as a handler for `signal` on `datum`. Like with signal handlers written in DM, Lua signal handlers should not sleep (either by calling `sleep` or `coroutine.yield`). -If `make_easy_clear_function` is truthy, a member function taking no arguments will be created in the `SS13` table to easily unregister the signal handler. - -This function returns the `/datum/callback` created to call `func` from DM. +This function returns whether the signal registration was successful. The following example defines a function which will register a signal that makes `target` make a honking sound any time it moves: ```lua function honk(target) SS13.register_signal(target, "movable_moved", function(source) - dm.global_proc("playsound", target, "sound/items/bikehorn.ogg", 100, true) + dm.global_procs.playsound(target, "sound/items/bikehorn.ogg", 100, true) end) end ``` -### SS13.unregister_signal(datum, signal, callback) -Unregister a signal previously registered using `SS13.register_signal`. `callback` should be a `datum/callback` previously returned by `SS13.register_signal`. If `callback` is not specified, **ALL** signal handlers registered on `datum` for `signal` will be unregistered. +NOTE: if `func` is an anonymous function declared inside the call to `SS13.register_signal`, it cannot be referenced in order to unregister that signal with `SS13.unregister_signal` -### SS13.set_timeout(time, func) +## SS13.unregister_signal(datum, signal, func) +Unregister a signal previously registered using `SS13.register_signal`. `func` must be a function for which a handler for the specified signal has already been registered. If `func` is `nil`, all handlers for that signal will be unregistered. + +## SS13.set_timeout(time, func) Creates a timer which will execute `func` after `time` **seconds**. `func` should not expect to be passed any arguments, as it will not be passed any. Unlike `SS13.wait`, `SS13.set_timeout` does not yield or sleep the current task, making it suitable for use in signal handlers for `SS13.register_signal` The following example will output a message to chat after 5 seconds: ```lua SS13.set_timeout(5, function() - dm.global_proc("to_chat", dm.world, "Hello World!") + dm.global_procs.to_chat(dm.world, "Hello World!") end) ``` -### SS13.start_loop(time, amount, func) +## SS13.start_loop(time, amount, func) Creates a timer which will execute `func` after `time` **seconds**. `func` should not expect to be passed any arguments, as it will not be passed any. Works exactly the same as `SS13.set_timeout` except it will loop the timer `amount` times. If `amount` is set to -1, it will loop indefinitely. Returns a number value, which represents the timer's id. Can be stopped with `SS13.end_loop` Returns a number, the timer id, which is needed to stop indefinite timers. The following example will output a message to chat every 5 seconds, repeating 10 times: ```lua SS13.start_loop(5, 10, function() - dm.global_proc("to_chat", dm.world, "Hello World!") + dm.global_procs.to_chat(dm.world, "Hello World!") end) ``` The following example will output a message to chat every 5 seconds, until `SS13.end_loop(timerid)` is called: ```lua local timerid = SS13.start_loop(5, -1, function() - dm.global_proc("to_chat", dm.world, "Hello World!") + dm.global_proc.to_chat(dm.world, "Hello World!") end) ``` -### SS13.end_loop(id) +## SS13.end_loop(id) Prematurely ends a loop that hasn't ended yet, created with `SS13.start_loop`. Silently fails if there is no started loop with the specified id. The following example will output a message to chat every 5 seconds and delete it after it has repeated 20 times: ```lua @@ -254,7 +322,7 @@ local repeated_amount = 0 -- timerid won't be in the looping function's scope if declared before the function is declared. local timerid timerid = SS13.start_loop(5, -1, function() - dm.global_proc("to_chat", dm.world, "Hello World!") + dm.global_procs.to_chat(dm.world, "Hello World!") repeated_amount += 1 if repeated_amount >= 20 then SS13.end_loop(timerid) @@ -262,35 +330,6 @@ timerid = SS13.start_loop(5, -1, function() end) ``` -### SS13.stop_all_loops() +## SS13.stop_all_loops() Stops all current running loops that haven't ended yet. Useful in case you accidentally left a indefinite loop running without storing the id anywhere. - -### SS13.stop_tracking(datum) -Stops tracking a datum that was created via `SS13.new` so that it can be garbage collected and deleted without having to qdel. Should be used for things like callbacks and other such datums where the reference to the variable is no longer needed. - ---- - -## Internal globals - -Auxlua defines several registry values for each state. Note that there is no way to access registry values from lua code. - -### sleep_flag - -This flag is used to designate that a yielding task should be put in the sleep queue instead of the yield table. Once auxlua determines that a task should sleep, `sleep_flag` is cleared. - -### sleep_queue - -A sequence of threads, each corresponding to a task that has slept. When calling `/proc/__lua_awaken`, auxlua will dequeue the first thread from the sequence and resume it. - -### yield_table - -A table of threads, each corresponding to a coroutine that has yielded. When calling `/proc/__lua_resume`, auxlua will look for a thread at the index specified in the `index` argument, and resume it with the arguments specified in the `arguments` argument. - -### task_info - -A table of key-value-pairs, where the keys are threads, and the values are tables consisting of the following fields: - -- name: A string containing the name of the task -- status: A string, either "sleep" or "yield" -- index: The task's index in `sleep_queue` or `yield_table` diff --git a/code/modules/admin/verbs/lua/_hooks.dm b/code/modules/admin/verbs/lua/_hooks.dm deleted file mode 100644 index a092947e06ec..000000000000 --- a/code/modules/admin/verbs/lua/_hooks.dm +++ /dev/null @@ -1,239 +0,0 @@ -/datum - var/__auxtools_weakref_id //used by auxtools for weak references - -/** - * Sets a global proc to call in place of just outright setting a datum's var to a given value - * - * The proc will be called with the arguments (datum/datum_to_modify, var_name, value) - * - * required wrapper text the name of the proc to use as the wrapper - */ -/proc/__lua_set_set_var_wrapper(wrapper) - CRASH("auxlua not loaded") - -/** - * Sets a global proc to call in place of just outright calling a given proc on a datum - * - * The proc will be called with the arguments (datum/thing_to_call, proc_to_call, list/arguments) - * - * required wrapper text the name of the proc to use as the wrapper - */ -/proc/__lua_set_datum_proc_call_wrapper(wrapper) - CRASH("auxlua not loaded") - -/** - * Sets a global proc to call in place of just outright calling a given global proc - * - * The proc will be called with the arguments (proc_to_call, list/arguments) - * - * required wrapper text the name of the proc to use as the wrapper - */ -/proc/__lua_set_global_proc_call_wrapper(wrapper) - CRASH("auxlua not loaded") - -/** - * Sets a global proc as a wrapper for lua's print function - * - * The proc will be called with the arguments (state_id, list/arguments) - * - * required wrapper text the name of the proc to use as the wrapper - */ -/proc/__lua_set_print_wrapper(wrapper) - CRASH("auxlua not loaded") - -/** - * Sets the maximum amount of time a lua chunk or function can execute without sleeping or yielding. - * Chunks/functions that exceed this duration will produce an error. - * - * required limit number the execution limit, in milliseconds - */ -/proc/__lua_set_execution_limit(limit) - CRASH("auxlua not loaded") - -/** - * Creates a new lua state. - * - * return text a pointer to the created state. - */ -/proc/__lua_new_state() - CRASH("auxlua not loaded") - -/** - * Loads a chunk of lua source code and executes it - * - * required state text a pointer to the state - * in which to execute the code - * required script text the lua source code to execute - * optional name text a name to give to the chunk - * - * return list|text a list of lua return information - * or an error message if the state was corrupted - * - * Lua return information is formatted as followed: - * - ["status"]: How the chunk or function stopped code execution - * - "sleeping": The chunk or function called dm.sleep, - * placing it in the sleep queue. Items in the sleep - * queue can be resumed using /proc/__lua_awaken - * - "yielded": The chunk or function called coroutine.yield, - * placing it in the yield table. Items in the yield - * table can can be resumed by passing their index - * to /proc/__lua_resume - * - "finished": The chunk or function finished - * - "errored": The chunk or function produced an error - * - "bad return": The chunk or function yielded or finished, - * but its return value could not be converted to DM values - * - ["param"]: Depends on status. - * - "sleeping": null - * - "yielded" or "finished": The return/yield value(s) - * - "errored" or "bad return": The error message - * - ["yield_index"]: The index in the yield table where the - * chunk or function is located, for calls to __lua_resume - * - ["name"]: The name of the chunk or function, for logging - */ -/proc/__lua_load(state, script, name) - CRASH("auxlua not loaded") - -/** - * Calls a lua function - * - * required state text a pointer to the state - * in which to call the function - * required function text the name of the function to call - * optional arguments list arguments to pass to the function - * - * return list|text a list of lua return information - * or an error message if the state was corrupted - * - * Lua return information is formatted as followed: - * - ["status"]: How the chunk or function stopped code execution - * - "sleeping": The chunk or function called dm.sleep, - * placing it in the sleep queue. Items in the sleep - * queue can be resumed using /proc/__lua_awaken - * - "yielded": The chunk or function called coroutine.yield, - * placing it in the yield table. Items in the yield - * table can can be resumed by passing their index - * to /proc/__lua_resume - * - "finished": The chunk or function finished - * - "errored": The chunk or function produced an error - * - "bad return": The chunk or function yielded or finished, - * but its return value could not be converted to DM values - * - ["param"]: Depends on status. - * - "sleeping": null - * - "yielded" or "finished": The return/yield value(s) - * - "errored" or "bad return": The error message - * - ["yield_index"]: The index in the yield table where the - * chunk or function is located, for calls to __lua_resume - * - ["name"]: The name of the chunk or function, for logging - */ -/proc/__lua_call(state, function, arguments) - CRASH("auxlua not loaded") - -/** - * Dequeues the task at the front of the sleep queue and resumes it - * - * required state text a pointer to the state in which - * to resume a task - * - * return list|text|null a list of lua return information, - * an error message if the state is corrupted, - * or null if the sleep queue is empty - * - * Lua return information is formatted as followed: - * - ["status"]: How the chunk or function stopped code execution - * - "sleeping": The chunk or function called dm.sleep, - * placing it in the sleep queue. Items in the sleep - * queue can be resumed using /proc/__lua_awaken - * - "yielded": The chunk or function called coroutine.yield, - * placing it in the yield table. Items in the yield - * table can can be resumed by passing their index - * to /proc/__lua_resume - * - "finished": The chunk or function finished - * - "errored": The chunk or function produced an error - * - "bad return": The chunk or function yielded or finished, - * but its return value could not be converted to DM values - * - ["param"]: Depends on status. - * - "sleeping": null - * - "yielded" or "finished": The return/yield value(s) - * - "errored" or "bad return": The error message - * - ["yield_index"]: The index in the yield table where the - * chunk or function is located, for calls to __lua_resume - * - ["name"]: The name of the chunk or function, for logging - */ -/proc/__lua_awaken(state) - CRASH("auxlua not loaded") - -/** - * Removes the task at the specified index from the yield table - * and resumes it - * - * required state text a pointer to the state in which to - * resume a task - * required index number the index in the yield table of the - * task to resume - * optional arguments list the arguments to resume the task with - * - * return list|text|null a list of lua return information, - * an error message if the state is corrupted, - * or null if there is no task at the specified index - * - * Lua return information is formatted as followed: - * - ["status"]: How the chunk or function stopped code execution - * - "sleeping": The chunk or function called dm.sleep, - * placing it in the sleep queue. Items in the sleep - * queue can be resumed using /proc/__lua_awaken - * - "yielded": The chunk or function called coroutine.yield, - * placing it in the yield table. Items in the yield - * table can can be resumed by passing their index - * to /proc/__lua_resume - * - "finished": The chunk or function finished - * - "errored": The chunk or function produced an error - * - "bad return": The chunk or function yielded or finished, - * but its return value could not be converted to DM values - * - ["param"]: Depends on status. - * - "sleeping": null - * - "yielded" or "finished": The return/yield value(s) - * - "errored" or "bad return": The error message - * - ["yield_index"]: The index in the yield table where the - * chunk or function is located, for calls to __lua_resume - * - ["name"]: The name of the chunk or function, for logging - */ -/proc/__lua_resume(state, index, arguments) - CRASH("auxlua not loaded") - -/** - * Get the variables within a state's environment. - * Values not convertible to DM values are substituted - * for their types as text - * - * required state text a pointer to the state - * to get the variables from - * - * return list the variables of the state's environment - */ -/proc/__lua_get_globals(state) - CRASH("auxlua not loaded") - -/** - * Get a list of all tasks currently in progress within a state - * - * required state text a pointer to the state - * to get the tasks from - * - * return list a list of the state's tasks, formatted as follows: - * - name: The name of the task - * - status: Whether the task is sleeping or yielding - * - index: The index of the task in the sleep queue - * or yield table, whichever is applicable - */ -/proc/__lua_get_tasks(state) - CRASH("auxlua not loaded") - -/** - * Kills a task in progress - * - * required state text a pointer to the state - * in which to kill a task - * required info list the task info - */ -/proc/__lua_kill_task(state, info) - CRASH("auxlua not loaded") diff --git a/code/modules/admin/verbs/lua/_wrappers.dm b/code/modules/admin/verbs/lua/_wrappers.dm index 8e05453d29d5..d516f064f847 100644 --- a/code/modules/admin/verbs/lua/_wrappers.dm +++ b/code/modules/admin/verbs/lua/_wrappers.dm @@ -1,3 +1,12 @@ +/proc/wrap_lua_get_var(datum/thing, var_name) + SHOULD_NOT_SLEEP(TRUE) + if(thing == world) + return world.vars[var_name] + if(ref(thing) == "\[0xe000001\]") //This weird fucking thing is like global.vars, but it's not a list and vars is not a valid index for it and I really don't fucking know. + return global.vars[var_name] + if(thing.can_vv_get(var_name)) + return thing.vars[var_name] + /proc/wrap_lua_set_var(datum/thing_to_set, var_name, value) SHOULD_NOT_SLEEP(TRUE) thing_to_set.vv_edit_var(var_name, value) @@ -11,8 +20,6 @@ ret = WrapAdminProcCall(thing_to_call, proc_name, arguments) else ret = HandleUserlessProcCall("lua", thing_to_call, proc_name, arguments) - if(isdatum(ret)) - SSlua.gc_guard += ret return ret /proc/wrap_lua_global_proc_call(proc_name, list/arguments) @@ -24,8 +31,6 @@ ret = WrapAdminProcCall(GLOBAL_PROC, proc_name, arguments) else ret = HandleUserlessProcCall("lua", GLOBAL_PROC, proc_name, arguments) - if(isdatum(ret)) - SSlua.gc_guard += ret return ret /proc/wrap_lua_print(state_id, list/arguments) @@ -38,6 +43,6 @@ if(!target_state) return var/print_message = jointext(arguments, "\t") - var/result = list("status" = "print", "param" = print_message) + var/result = list("status" = "print", "message" = print_message) INVOKE_ASYNC(target_state, TYPE_PROC_REF(/datum/lua_state, log_result), result, TRUE) log_lua("[target_state]: [print_message]") diff --git a/code/modules/admin/verbs/lua/helpers.dm b/code/modules/admin/verbs/lua/helpers.dm index 66b7c835e9ab..c3072f15e74c 100644 --- a/code/modules/admin/verbs/lua/helpers.dm +++ b/code/modules/admin/verbs/lua/helpers.dm @@ -3,27 +3,27 @@ #define PROMISE_REJECTED 2 /** - * Auxtools hooks act as "set waitfor = 0" procs. This means that whenever - * a proc directly called from auxtools sleeps, the hook returns with whatever + * Byondapi hooks act as "set waitfor = 0" procs. This means that whenever + * a proc directly called from an external library sleeps, the hook returns with whatever * the called proc had as its return value at the moment it slept. This may not * be desired behavior, so this datum exists to wrap these procs. * * Some procs that don't sleep could take longer than the execution limit would * allow for. We can wrap these in a promise as well. */ -/datum/auxtools_promise +/datum/promise var/datum/callback/callback var/return_value var/runtime_message var/status = PROMISE_PENDING -/datum/auxtools_promise/New(...) +/datum/promise/New(...) + if(!usr) + usr = GLOB.lua_usr callback = CALLBACK(arglist(args)) - perform() + INVOKE_ASYNC(src, PROC_REF(perform)) -/datum/auxtools_promise/proc/perform() - set waitfor = 0 - sleep() //In case we have to call a super-expensive non-sleeping proc (like getFlatIcon) +/datum/promise/proc/perform() try return_value = callback.Invoke() status = PROMISE_RESOLVED diff --git a/code/modules/admin/verbs/lua/lua_editor.dm b/code/modules/admin/verbs/lua/lua_editor.dm index b39050ed3c1d..1ff55b3fffb7 100644 --- a/code/modules/admin/verbs/lua/lua_editor.dm +++ b/code/modules/admin/verbs/lua/lua_editor.dm @@ -16,6 +16,12 @@ /// If set, we will force the editor to look at this chunk var/force_view_chunk + /// If set, we will force the script input to be this + var/force_input + + /// If set, the latest code execution performed from the editor raised an error, and this is the message from that error + var/last_error + /datum/lua_editor/New(state, _quick_log_index) . = ..() if(state) @@ -37,37 +43,52 @@ /datum/lua_editor/ui_state(mob/user) return GLOB.debug_state -/datum/lua_editor/ui_static_data(mob/user) - var/list/data = list() - data["documentation"] = file2text('code/modules/admin/verbs/lua/README.md') - data["auxtools_enabled"] = CONFIG_GET(flag/auxtools_enabled) - data["ss_lua_init"] = SSlua.initialized - return data - /datum/lua_editor/ui_data(mob/user) var/list/data = list() - if(!CONFIG_GET(flag/auxtools_enabled) || !SSlua.initialized) + data["ss_lua_init"] = SSlua.initialized + if(!SSlua.initialized) return data data["noStateYet"] = !current_state data["showGlobalTable"] = show_global_table if(current_state) if(current_state.log) - data["stateLog"] = kvpify_list(refify_list(current_state.log.Copy((page*50)+1, min((page+1)*50+1, current_state.log.len+1)))) + var/list/logs = current_state.log.Copy((page*50)+1, min((page+1)*50+1, current_state.log.len+1)) + for(var/i in 1 to logs.len) + var/list/log = logs[i] + log = log.Copy() + if(log["return_values"]) + log["return_values"] = kvpify_list(prepare_lua_editor_list(deep_copy_without_cycles(log["return_values"]))) + logs[i] = log + data["stateLog"] = logs data["page"] = page data["pageCount"] = CEILING(current_state.log.len/50, 1) data["tasks"] = current_state.get_tasks() if(show_global_table) current_state.get_globals() - data["globals"] = kvpify_list(refify_list(current_state.globals)) - data["states"] = SSlua.states - data["callArguments"] = kvpify_list(refify_list(arguments)) + var/list/values = current_state.globals["values"] + values = deep_copy_without_cycles(values) + values = prepare_lua_editor_list(values) + values = kvpify_list(values) + var/list/variants = current_state.globals["variants"] + data["globals"] = list("values" = values, "variants" = variants) + if(last_error) + data["lastError"] = last_error + last_error = null + data["supressRuntimes"] = current_state.supress_runtimes + data["states"] = list() + for(var/datum/lua_state/state as anything in SSlua.states) + data["states"] += state.display_name + data["callArguments"] = kvpify_list(prepare_lua_editor_list(deep_copy_without_cycles(arguments))) if(force_modal) data["forceModal"] = force_modal force_modal = null if(force_view_chunk) data["forceViewChunk"] = force_view_chunk force_view_chunk = null + if(force_input) + data["force_input"] = force_input + force_input = null return data /datum/lua_editor/proc/traverse_list(list/path, list/root, traversal_depth_offset = 0) @@ -99,14 +120,24 @@ else return root -/datum/lua_editor/ui_act(action, list/params) +/datum/lua_editor/proc/run_code(code) + var/ckey = usr.ckey + current_state.ckey_last_runner = ckey + var/result = current_state.load_script(code) + var/index_with_result = current_state.log_result(result) + if(result["status"] == "error") + last_error = result["message"] + message_admins("[key_name(usr)] executed [length(code)] bytes of lua code. [ADMIN_LUAVIEW_CHUNK(current_state, index_with_result)]") + +/datum/lua_editor/ui_act(action, list/params, datum/tgui/ui, datum/ui_state/state) . = ..() if(.) return - if(!check_rights_for(usr.client, R_ADMIN)) + var/mob/user = ui.user + if(!check_rights_for(user.client, R_DEBUG)) return if(action == "runCodeFile") - params["code"] = file2text(input(usr, "Input File") as null|file) + params["code"] = file2text(input(user, "Input File") as null|file) if(isnull(params["code"])) return action = "runCode" @@ -116,6 +147,8 @@ if(!length(state_name)) return TRUE var/datum/lua_state/new_state = new(state_name) + if(QDELETED(new_state)) + return SSlua.states += new_state LAZYREMOVEASSOC(SSlua.editors, text_ref(current_state), src) current_state = new_state @@ -130,11 +163,14 @@ page = 0 return TRUE if("runCode") - var/code = params["code"] - current_state.ckey_last_runner = usr.ckey - var/result = current_state.load_script(code) - var/index_with_result = current_state.log_result(result) - message_admins("[key_name(usr)] executed [length(code)] bytes of lua code. [ADMIN_LUAVIEW_CHUNK(current_state, index_with_result)]") + run_code(params["code"]) + return TRUE + if("runFile") + var/code_file = input(user, "Select a script to run.", "Lua") as file|null + if(!code_file) + return TRUE + var/code = file2text(code_file) + run_code(code) return TRUE if("moveArgUp") var/list/path = params["path"] @@ -158,9 +194,9 @@ var/list/path = params["path"] var/list/target_list = traverse_list(path, arguments) if(target_list != arguments) - usr?.client?.mod_list_add(target_list, null, "a lua editor", "arguments") + user?.client?.mod_list_add(target_list, null, "a lua editor", "arguments") else - var/list/vv_val = usr?.client?.vv_get_value(restricted_classes = list(VV_RESTORE_DEFAULT)) + var/list/vv_val = user?.client?.vv_get_value(restricted_classes = list(VV_RESTORE_DEFAULT)) var/class = vv_val["class"] if(!class) return @@ -168,53 +204,58 @@ return TRUE if("callFunction") var/list/recursive_indices = params["indices"] - var/list/current_list = kvpify_list(current_state.globals) + var/list/current_list = kvpify_list(current_state.globals["values"]) + var/list/current_variants = current_state.globals["variants"] var/function = list() while(LAZYLEN(recursive_indices)) var/index = popleft(recursive_indices) var/list/element = current_list[index] var/key = element["key"] var/value = element["value"] - if(!(istext(key) || isnum(key))) - to_chat(usr, span_warning("invalid key \[[key]] for function call (expected text or num)")) + var/list/variant_pair = current_variants[index] + var/key_variant = variant_pair["key"] + if(key_variant == "function" || key_variant == "thread" || key_variant == "userdata" || key_variant == "error_as_value") + to_chat(user, span_warning("invalid table key \[[key]] for function call (expected text, num, path, list, or ref, got [key_variant])")) return function += key if(islist(value)) current_list = value + current_variants = variant_pair["value"] else - var/regex/function_regex = regex("^function: 0x\[0-9a-fA-F]+$") - if(function_regex.Find(value)) - break - to_chat(usr, span_warning("invalid path element \[[value]] for function call (expected list or text matching [function_regex])")) - return + if(variant_pair["value"] != "function") + to_chat(user, span_warning("invalid value \[[value]] for function call (expected list or function)")) + return var/result = current_state.call_function(arglist(list(function) + arguments)) current_state.log_result(result) + if(result["status"] == "error") + last_error = result["message"] arguments.Cut() - return TRUE + return if("resumeTask") var/task_index = params["index"] SSlua.queue_resume(current_state, task_index, arguments) arguments.Cut() return TRUE if("killTask") - var/task_info = params["info"] - SSlua.kill_task(current_state, task_info) + var/is_sleep = params["is_sleep"] + var/index = params["index"] + SSlua.kill_task(current_state, is_sleep, index) return TRUE if("vvReturnValue") var/log_entry_index = params["entryIndex"] var/list/log_entry = current_state.log[log_entry_index] - var/thing_to_debug = traverse_list(params["tableIndices"], log_entry["param"]) + var/thing_to_debug = traverse_list(params["indices"], log_entry["return_values"]) if(isweakref(thing_to_debug)) var/datum/weakref/ref = thing_to_debug thing_to_debug = ref.resolve() - INVOKE_ASYNC(usr.client, TYPE_PROC_REF(/client, debug_variables), thing_to_debug) + INVOKE_ASYNC(user.client, TYPE_PROC_REF(/client, debug_variables), thing_to_debug) return FALSE if("vvGlobal") - var/thing_to_debug = traverse_list(params["indices"], current_state.globals) + var/thing_to_debug = traverse_list(params["indices"], current_state.globals["values"]) if(isweakref(thing_to_debug)) var/datum/weakref/ref = thing_to_debug thing_to_debug = ref.resolve() - INVOKE_ASYNC(usr.client, TYPE_PROC_REF(/client, debug_variables), thing_to_debug) + INVOKE_ASYNC(user.client, TYPE_PROC_REF(/client, debug_variables), thing_to_debug) return FALSE if("clearArgs") arguments.Cut() @@ -222,12 +263,18 @@ if("toggleShowGlobalTable") show_global_table = !show_global_table return TRUE + if("toggleSupressRuntimes") + current_state.supress_runtimes = !current_state.supress_runtimes + return TRUE if("nextPage") page = min(page+1, CEILING(current_state.log.len/50, 1)-1) return TRUE if("previousPage") page = max(page-1, 0) return TRUE + if("nukeLog") + current_state.log.Cut() + return TRUE /datum/lua_editor/ui_close(mob/user) . = ..() @@ -235,8 +282,9 @@ /client/proc/open_lua_editor() set name = "Open Lua Editor" + set desc = "Its codin' time." set category = "Debug" - if(!check_rights_for(src, R_ADMIN)) + if(!check_rights_for(src, R_DEBUG)) return - var/datum/lua_editor/editor = new() - editor.ui_interact(usr) + var/datum/lua_editor/editor = new + editor.ui_interact(mob) diff --git a/code/modules/admin/verbs/lua/lua_state.dm b/code/modules/admin/verbs/lua/lua_state.dm index bf2bcbd5a900..30bc21c83b2b 100644 --- a/code/modules/admin/verbs/lua/lua_state.dm +++ b/code/modules/admin/verbs/lua/lua_state.dm @@ -1,15 +1,15 @@ #define MAX_LOG_REPEAT_LOOKBACK 5 -GLOBAL_VAR_INIT(IsLuaCall, FALSE) -GLOBAL_PROTECT(IsLuaCall) - GLOBAL_DATUM(lua_usr, /mob) GLOBAL_PROTECT(lua_usr) +GLOBAL_LIST_EMPTY_TYPED(lua_state_stack, /datum/weakref) +GLOBAL_PROTECT(lua_state_stack) + /datum/lua_state - var/name + var/display_name - /// The internal ID of the lua state stored in auxlua's global map + /// The internal ID of the lua state stored in dreamluau's state list var/internal_id /// A log of every return, yield, and error for each chunk execution and function call @@ -18,15 +18,15 @@ GLOBAL_PROTECT(lua_usr) /// A list of all the variables in the state's environment var/list/globals = list() - /// A list in which to store datums and lists instantiated in lua, ensuring that they don't get garbage collected - var/list/references = list() - /// Ckey of the last user who ran a script on this lua state. var/ckey_last_runner = "" /// Whether the timer.lua script has been included into this lua context state. var/timer_enabled = FALSE + /// Whether to supress logging BYOND runtimes for this state. + var/supress_runtimes = FALSE + /// Callbacks that need to be ran on next tick var/list/functions_to_execute = list() @@ -39,55 +39,70 @@ GLOBAL_PROTECT(lua_usr) if(SSlua.initialized != TRUE) qdel(src) return - name = _name - internal_id = __lua_new_state() + display_name = _name + internal_id = DREAMLUAU_NEW_STATE() + if(isnull(internal_id)) + stack_trace("dreamluau is not loaded") + qdel(src) + else if(!isnum(internal_id)) + stack_trace(internal_id) + qdel(src) /datum/lua_state/proc/check_if_slept(result) - if(result["status"] == "sleeping") + if(result["status"] == "sleep") SSlua.sleeps += src /datum/lua_state/proc/log_result(result, verbose = TRUE) if(!islist(result)) return - if(!verbose && result["status"] != "errored" && result["status"] != "bad return" \ - && !(result["name"] == "input" && (result["status"] == "finished" || length(result["param"])))) + var/status = result["status"] + if(!verbose && status != "error" && status != "panic" && status != "runtime" && !(result["name"] == "input" && (status == "finished" || length(result["return_values"])))) + return + if(status == "runtime" && supress_runtimes) return var/append_to_log = TRUE var/index_of_log if(log.len) for(var/index in log.len to max(log.len - MAX_LOG_REPEAT_LOOKBACK, 1) step -1) var/list/entry = log[index] - if(entry["status"] == result["status"] \ - && entry["chunk"] == result["chunk"] \ - && entry["name"] == result["name"] \ - && ((entry["param"] == result["param"]) || deep_compare_list(entry["param"], result["param"]))) - if(!entry["repeats"]) - entry["repeats"] = 0 - index_of_log = index - entry["repeats"]++ - append_to_log = FALSE - break + if(!compare_lua_logs(entry, result)) + continue + if(!entry["repeats"]) + entry["repeats"] = 0 + index_of_log = index + entry["repeats"]++ + append_to_log = FALSE + break if(append_to_log) - if(islist(result["param"])) - result["param"] = weakrefify_list(encode_text_and_nulls(result["param"])) + if(islist(result["return_values"])) + add_lua_return_value_variants(result["return_values"], result["variants"]) + result["return_values"] = weakrefify_list(result["return_values"]) log += list(result) index_of_log = log.len INVOKE_ASYNC(src, TYPE_PROC_REF(/datum/lua_state, update_editors)) return index_of_log +/datum/lua_state/proc/parse_error(message, name) + if(copytext(message, 1, 7) == "PANIC:") + return list("status" = "panic", "message" = copytext(message, 7), "name" = name) + else + return list("status" = "error", "message" = message, "name" = name) + /datum/lua_state/proc/load_script(script) - GLOB.IsLuaCall = TRUE var/tmp_usr = GLOB.lua_usr GLOB.lua_usr = usr - var/result = __lua_load(internal_id, script) - GLOB.IsLuaCall = FALSE + DREAMLUAU_SET_USR + GLOB.lua_state_stack += WEAKREF(src) + var/result = DREAMLUAU_LOAD(internal_id, script, "input") + SSlua.needs_gc_cycle |= src + pop(GLOB.lua_state_stack) GLOB.lua_usr = tmp_usr // Internal errors unrelated to the code being executed are returned as text rather than lists if(isnull(result)) - result = list("status" = "errored", "param" = "__lua_load returned null (it may have runtimed - check the runtime logs)", "name" = "input") + result = list("status" = "error", "message" = "load returned null (it may have runtimed - check the runtime logs)", "name" = "input") if(istext(result)) - result = list("status" = "errored", "param" = result, "name" = "input") + result = parse_error(result, "input") result["chunk"] = script check_if_slept(result) @@ -109,67 +124,106 @@ GLOBAL_PROTECT(lua_usr) if(islist(function)) var/list/new_function_path = list() for(var/path_element in function) - new_function_path += path_element + if(isweakref(path_element)) + var/datum/weakref/weak_ref = path_element + var/resolved = weak_ref.hard_resolve() + if(!resolved) + return list("status" = "error", "message" = "Weakref in function path ([weak_ref] [text_ref(weak_ref)]) resolved to null.", "name" = jointext(function, ".")) + new_function_path += resolved + else + new_function_path += path_element function = new_function_path + else + function = list(function) var/tmp_usr = GLOB.lua_usr GLOB.lua_usr = usr - GLOB.IsLuaCall = TRUE - var/result = __lua_call(internal_id, function, call_args) - GLOB.IsLuaCall = FALSE + DREAMLUAU_SET_USR + GLOB.lua_state_stack += WEAKREF(src) + var/result = DREAMLUAU_CALL_FUNCTION(internal_id, function, call_args) + SSlua.needs_gc_cycle |= src + pop(GLOB.lua_state_stack) GLOB.lua_usr = tmp_usr if(isnull(result)) - result = list("status" = "errored", "param" = "__lua_call returned null (it may have runtimed - check the runtime logs)", "name" = islist(function) ? jointext(function, ".") : function) + result = list("status" = "error", "message" = "call_function returned null (it may have runtimed - check the runtime logs)", "name" = jointext(function, ".")) if(istext(result)) - result = list("status" = "errored", "param" = result, "name" = islist(function) ? jointext(function, ".") : function) + result = parse_error(result, jointext(function, ".")) check_if_slept(result) return result /datum/lua_state/proc/call_function_return_first(function, ...) + SHOULD_NOT_SLEEP(TRUE) // This function is meant to be used for signal handlers. var/list/result = call_function(arglist(args)) - log_result(result, verbose = FALSE) + INVOKE_ASYNC(src, PROC_REF(log_result), deep_copy_list(result), /*verbose = */FALSE) if(length(result)) - if(islist(result["param"]) && length(result["param"])) - return result["param"][1] + if(islist(result["return_values"]) && length(result["return_values"])) + var/return_value = result["return_values"][1] + var/variant = (islist(result["variants"]) && length(result["variants"])) && result["variants"][1] + if(islist(return_value) && islist(variant)) + remove_non_dm_variants(return_value, variant) + return return_value /datum/lua_state/proc/awaken() - GLOB.IsLuaCall = TRUE - var/result = __lua_awaken(internal_id) - GLOB.IsLuaCall = FALSE + DREAMLUAU_SET_USR + GLOB.lua_state_stack += WEAKREF(src) + var/result = DREAMLUAU_AWAKEN(internal_id) + SSlua.needs_gc_cycle |= src + pop(GLOB.lua_state_stack) if(isnull(result)) - result = list("status" = "errored", "param" = "__lua_awaken returned null (it may have runtimed - check the runtime logs)", "name" = "An attempted awaken") + result = list("status" = "error", "message" = "awaken returned null (it may have runtimed - check the runtime logs)", "name" = "An attempted awaken") if(istext(result)) - result = list("status" = "errored", "param" = result, "name" = "An attempted awaken") + result = parse_error(result, "An attempted awaken") check_if_slept(result) return result /// Prefer calling SSlua.queue_resume over directly calling this /datum/lua_state/proc/resume(index, ...) var/call_args = length(args) > 1 ? args.Copy(2) : list() - var/msg = "[key_name(usr)] resumed a lua coroutine with arguments: [english_list(call_args)]" - log_lua(msg) - GLOB.IsLuaCall = TRUE - var/result = __lua_resume(internal_id, index, call_args) - GLOB.IsLuaCall = FALSE + DREAMLUAU_SET_USR + GLOB.lua_state_stack += WEAKREF(src) + var/result = DREAMLUAU_RESUME(internal_id, index, call_args) + SSlua.needs_gc_cycle |= src + pop(GLOB.lua_state_stack) if(isnull(result)) - result = list("status" = "errored", "param" = "__lua_resume returned null (it may have runtimed - check the runtime logs)", "name" = "An attempted resume") + result = list("status" = "error", "param" = "resume returned null (it may have runtimed - check the runtime logs)", "name" = "An attempted resume") if(istext(result)) - result = list("status" = "errored", "param" = result, "name" = "An attempted resume") + result = parse_error(result, "An attempted resumt") check_if_slept(result) return result /datum/lua_state/proc/get_globals() - globals = weakrefify_list(encode_text_and_nulls(__lua_get_globals(internal_id))) + var/result = DREAMLUAU_GET_GLOBALS(internal_id) + if(isnull(result)) + CRASH("get_globals returned null") + if(istext(result)) + CRASH(result) + var/list/new_globals = result + var/list/values = new_globals["values"] + var/list/variants = new_globals["variants"] + add_lua_editor_variants(values, variants) + globals = list("values" = weakrefify_list(values), "variants" = variants) /datum/lua_state/proc/get_tasks() - return __lua_get_tasks(internal_id) + var/result = DREAMLUAU_LIST_THREADS(internal_id) + if(isnull(result)) + CRASH("list_threads returned null") + if(istext(result)) + CRASH(result) + return result -/datum/lua_state/proc/kill_task(task_info) - __lua_kill_task(internal_id, task_info) +/datum/lua_state/proc/kill_task(is_sleep, index) + var/result = is_sleep ? DREAMLUAU_KILL_SLEEPING_THREAD(internal_id, index) : DREAMLUAU_KILL_YIELDED_THREAD(internal_id, index) + SSlua.needs_gc_cycle |= src + return result + +/datum/lua_state/proc/collect_garbage() + var/result = DREAMLUAU_COLLECT_GARBAGE(internal_id) + if(!isnull(result)) + CRASH(result) /datum/lua_state/proc/update_editors() var/list/editor_list = LAZYACCESS(SSlua.editors, text_ref(src)) @@ -177,18 +231,4 @@ GLOBAL_PROTECT(lua_usr) for(var/datum/lua_editor/editor as anything in editor_list) SStgui.update_uis(editor) -/// Called by lua scripts when they add an atom to var/list/references so that it gets cleared up on delete. -/datum/lua_state/proc/clear_on_delete(datum/to_clear) - RegisterSignal(to_clear, COMSIG_QDELETING, PROC_REF(on_delete)) - -/// Called by lua scripts when an atom they've added should soft delete and this state should stop tracking it. -/// Needs to unregister all signals. -/datum/lua_state/proc/let_soft_delete(datum/to_clear) - UnregisterSignal(to_clear, COMSIG_QDELETING, PROC_REF(on_delete)) - references -= to_clear - -/datum/lua_state/proc/on_delete(datum/to_clear) - SIGNAL_HANDLER - references -= to_clear - #undef MAX_LOG_REPEAT_LOOKBACK diff --git a/code/modules/admin/view_variables/admin_delete.dm b/code/modules/admin/view_variables/admin_delete.dm index c28b366f9263..df2f18d39022 100644 --- a/code/modules/admin/view_variables/admin_delete.dm +++ b/code/modules/admin/view_variables/admin_delete.dm @@ -16,6 +16,7 @@ log_admin("[key_name(usr)] deleted [D] [coords]") message_admins("[key_name_admin(usr)] deleted [D] [jmp_coords]") SSblackbox.record_feedback("tally", "admin_verb", 1, "Delete") //If you are copy-pasting this, ensure the 2nd parameter is unique to the new proc! + SEND_SIGNAL(D, COMSIG_ADMIN_DELETING, src) if(isturf(D)) var/turf/T = D T.ScrapeAway() diff --git a/code/modules/admin/view_variables/debug_variables.dm b/code/modules/admin/view_variables/debug_variables.dm index f92d5de53650..395baae34790 100644 --- a/code/modules/admin/view_variables/debug_variables.dm +++ b/code/modules/admin/view_variables/debug_variables.dm @@ -5,10 +5,11 @@ if(D) if(islist(D)) var/index = name + var/list/L = D if (value) - name = D[name] //name is really the index until this line + name = L[name] //name is really the index until this line else - value = D[name] + value = L[name] header = "
  • ([VV_HREF_TARGET_1V(D, VV_HK_LIST_EDIT, "E", index)]) ([VV_HREF_TARGET_1V(D, VV_HK_LIST_CHANGE, "C", index)]) ([VV_HREF_TARGET_1V(D, VV_HK_LIST_REMOVE, "-", index)]) " else header = "
  • ([VV_HREF_TARGET_1V(D, VV_HK_BASIC_EDIT, "E", name)]) ([VV_HREF_TARGET_1V(D, VV_HK_BASIC_CHANGE, "C", name)]) ([VV_HREF_TARGET_1V(D, VV_HK_BASIC_MASSEDIT, "M", name)]) " diff --git a/code/modules/antagonists/_common/antag_spawner.dm b/code/modules/antagonists/_common/antag_spawner.dm index 954d2ede66b7..12d22bb25d72 100644 --- a/code/modules/antagonists/_common/antag_spawner.dm +++ b/code/modules/antagonists/_common/antag_spawner.dm @@ -133,7 +133,7 @@ return to_chat(user, span_notice("You activate [src] and wait for confirmation.")) - var/mob/chosen_one = SSpolling.poll_ghost_candidates("Do you want to play as a reinforcement [special_role_name]?", check_jobban = ROLE_OPERATIVE, role = ROLE_OPERATIVE, poll_time = 15 SECONDS, ignore_category = POLL_IGNORE_SYNDICATE, alert_pic = src, role_name_text = special_role_name, amount_to_pick = 1) + var/mob/chosen_one = SSpolling.poll_ghost_candidates("Do you want to play as a reinforcement [special_role_name]?", check_jobban = ROLE_OPERATIVE, role = ROLE_OPERATIVE_MIDROUND, poll_time = 15 SECONDS, ignore_category = POLL_IGNORE_SYNDICATE, alert_pic = src, role_name_text = special_role_name, amount_to_pick = 1) if(chosen_one) if(QDELETED(src) || !check_usability(user)) return diff --git a/code/modules/antagonists/changeling/changeling_power.dm b/code/modules/antagonists/changeling/changeling_power.dm index 18461a8e5182..19b45ea51cf3 100644 --- a/code/modules/antagonists/changeling/changeling_power.dm +++ b/code/modules/antagonists/changeling/changeling_power.dm @@ -46,7 +46,9 @@ the same goes for Remove(). if you override Remove(), call parent or else your p /datum/action/changeling/Trigger(trigger_flags) var/mob/user = owner - if(!user || !user.mind || !user.mind.has_antag_datum(/datum/antagonist/changeling)) + if(!user?.mind?.has_antag_datum(/datum/antagonist/changeling)) + return + if(SEND_SIGNAL(src, COMSIG_ACTION_TRIGGER, src) & COMPONENT_ACTION_BLOCK_TRIGGER) return try_to_sting(user) diff --git a/code/modules/antagonists/changeling/powers/tiny_prick.dm b/code/modules/antagonists/changeling/powers/tiny_prick.dm index 29c91a02e989..837a5b83cade 100644 --- a/code/modules/antagonists/changeling/powers/tiny_prick.dm +++ b/code/modules/antagonists/changeling/powers/tiny_prick.dm @@ -3,10 +3,10 @@ desc = "Stabby stabby" /datum/action/changeling/sting/Trigger(trigger_flags) + if(SEND_SIGNAL(src, COMSIG_ACTION_TRIGGER, src) & COMPONENT_ACTION_BLOCK_TRIGGER) + return FALSE var/mob/user = owner - if(!user || !user.mind) - return - var/datum/antagonist/changeling/changeling = user.mind.has_antag_datum(/datum/antagonist/changeling) + var/datum/antagonist/changeling/changeling = user?.mind?.has_antag_datum(/datum/antagonist/changeling) if(!changeling) return if(!changeling.chosen_sting) diff --git a/code/modules/antagonists/heretic/knowledge/moon_lore.dm b/code/modules/antagonists/heretic/knowledge/moon_lore.dm index b8eb5849076e..b3392810bf0e 100644 --- a/code/modules/antagonists/heretic/knowledge/moon_lore.dm +++ b/code/modules/antagonists/heretic/knowledge/moon_lore.dm @@ -215,19 +215,23 @@ RegisterSignal(user, COMSIG_LIVING_LIFE, PROC_REF(on_life)) - // Roughly 1/5th of the station will rise up as lunatics to the heretic - for (var/mob/living/carbon/human/crewmate as anything in GLOB.human_list) - // How many lunatics we have - var/amount_of_lunatics = 0 - // Where the crewmate is, used to check their z-level + var/amount_of_lunatics = 0 + var/list/lunatic_candidates = list() + for(var/mob/living/carbon/human/crewmate as anything in shuffle(GLOB.human_list)) + if(QDELETED(crewmate) || isnull(crewmate.client) || isnull(crewmate.mind) || crewmate.stat != CONSCIOUS) + continue var/turf/crewmate_turf = get_turf(crewmate) var/crewmate_z = crewmate_turf?.z - if(isnull(crewmate.mind)) - continue - if(crewmate.stat != CONSCIOUS) - continue if(!is_station_level(crewmate_z)) continue + lunatic_candidates += crewmate + + // Roughly 1/5th of the station will rise up as lunatics to the heretic. + // We use either the (locked) manifest for the maximum, or the amount of candidates, whichever is larger. + // If there's more eligible humans than crew, more power to them I guess. + var/max_lunatics = ceil(max(length(GLOB.manifest.locked), length(lunatic_candidates)) * 0.2) + + for(var/mob/living/carbon/human/crewmate as anything in lunatic_candidates) // Heretics, lunatics and monsters shouldn't become lunatics because they either have a master or have a mansus grasp if(IS_HERETIC_OR_MONSTER(crewmate)) to_chat(crewmate, span_boldwarning("[user]'s rise is influencing those who are weak willed. Their minds shall rend." )) @@ -236,12 +240,12 @@ if(HAS_TRAIT(crewmate, TRAIT_MINDSHIELD) || crewmate.can_block_magic(MAGIC_RESISTANCE) || HAS_MIND_TRAIT(crewmate, TRAIT_UNCONVERTABLE)) // monkestation edit: TRAIT_UNCONVERTABLE to_chat(crewmate, span_boldwarning("You feel shielded from something." )) continue - if(amount_of_lunatics > length(GLOB.human_list) * 0.2) - to_chat(crewmate, span_boldwarning("You feel uneasy, as if for a brief moment something was gazing at you." )) + if(amount_of_lunatics > max_lunatics) + to_chat(crewmate, span_boldwarning("You feel uneasy, as if for a brief moment something was gazing at you.")) continue var/datum/antagonist/lunatic/lunatic = crewmate.mind.add_antag_datum(/datum/antagonist/lunatic) lunatic.set_master(user.mind, user) - var/obj/item/clothing/neck/heretic_focus/moon_amulette/amulet = new(crewmate_turf) + var/obj/item/clothing/neck/heretic_focus/moon_amulette/amulet = new(crewmate.drop_location()) var/static/list/slots = list( "neck" = ITEM_SLOT_NECK, "hands" = ITEM_SLOT_HANDS, @@ -251,7 +255,7 @@ ) crewmate.equip_in_one_of_slots(amulet, slots, qdel_on_fail = FALSE) crewmate.emote("laugh") - amount_of_lunatics += 1 + amount_of_lunatics++ /datum/heretic_knowledge/ultimate/moon_final/proc/on_life(mob/living/source, seconds_per_tick, times_fired) var/obj/effect/moon_effect = /obj/effect/temp_visual/moon_ringleader diff --git a/code/modules/antagonists/nukeop/equipment/nuclear_authentication_disk.dm b/code/modules/antagonists/nukeop/equipment/nuclear_authentication_disk.dm index 965eda0784f4..960ab849041f 100644 --- a/code/modules/antagonists/nukeop/equipment/nuclear_authentication_disk.dm +++ b/code/modules/antagonists/nukeop/equipment/nuclear_authentication_disk.dm @@ -40,6 +40,7 @@ var/datum/round_event_control/operative/loneop = locate(/datum/round_event_control/operative) in SSevents.control if(istype(loneop) && loneop.occurrences < loneop.max_occurrences && prob(loneop.weight)) loneop.weight = max(loneop.weight - 1, 0) + loneop.checks_antag_cap = (loneop.weight < 3) if(loneop.weight % 5 == 0 && SSticker.totalPlayers > 1) message_admins("[src] is secured (currently in [ADMIN_VERBOSEJMP(new_turf)]). The weight of Lone Operative is now [loneop.weight].") log_game("[src] being secured has reduced the weight of the Lone Operative event to [loneop.weight].") @@ -57,6 +58,7 @@ if(last_move < world.time - 500 SECONDS && prob((world.time - 500 SECONDS - last_move)*0.0001)) var/datum/round_event_control/operative/loneop = locate(/datum/round_event_control/operative) in SSevents.control if(istype(loneop) && loneop.occurrences < loneop.max_occurrences) + loneop.checks_antag_cap = (loneop.weight < 3) loneop.weight += 1 if(loneop.weight % 5 == 0 && SSticker.totalPlayers > 1) if(disk_comfort_level >= 2) @@ -64,6 +66,7 @@ message_admins("[src] is unsecured in [ADMIN_VERBOSEJMP(new_turf)]. The weight of Lone Operative is now [loneop.weight].") log_game("[src] was left unsecured in [loc_name(new_turf)]. Weight of the Lone Operative event increased to [loneop.weight].") + /obj/item/disk/nuclear/examine(mob/user) . = ..() if(!fake) diff --git a/code/modules/antagonists/wizard/grand_ritual/finales/clown.dm b/code/modules/antagonists/wizard/grand_ritual/finales/clown.dm index c4f33543878c..f289ed952dcc 100644 --- a/code/modules/antagonists/wizard/grand_ritual/finales/clown.dm +++ b/code/modules/antagonists/wizard/grand_ritual/finales/clown.dm @@ -35,9 +35,8 @@ var/datum/action/cooldown/spell/pointed/untie_shoes/newer_spell = new(victim) newer_spell.Grant(victim) continue - if (!ismonkey(victim)) // Monkeys cannot yet wear clothes - dress_as_magic_clown(victim) - ADD_TRAIT(victim, TRAIT_CLUMSY, MAGIC_TRAIT) //monkestation edit: HONK HONK! + dress_as_magic_clown(victim) + ADD_TRAIT(victim, TRAIT_CLUMSY, MAGIC_TRAIT) //monkestation edit: HONK HONK! if (prob(15)) create_vendetta(victim.mind, invoker.mind) diff --git a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm index e51cfa4e94e6..d436e4361949 100644 --- a/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm +++ b/code/modules/atmospherics/machinery/components/unary_devices/vent_scrubber.dm @@ -86,21 +86,6 @@ . = ..() disconnect_from_area(area_to_unregister) -///adds a gas or list of gases to our filter_types. used so that the scrubber can check if its supposed to be processing after each change -/obj/machinery/atmospherics/components/unary/vent_scrubber/proc/add_filters(filter_or_filters) - if(!islist(filter_or_filters)) - filter_or_filters = list(filter_or_filters) - - for(var/gas_to_filter in filter_or_filters) - var/translated_gas = istext(gas_to_filter) ? gas_id2path(gas_to_filter) : gas_to_filter - - if(ispath(translated_gas, /datum/gas)) - filter_types |= translated_gas - continue - - atmos_conditions_changed() - return TRUE - ///remove a gas or list of gases from our filter_types.used so that the scrubber can check if its supposed to be processing after each change /obj/machinery/atmospherics/components/unary/vent_scrubber/proc/remove_filters(filter_or_filters) if(!islist(filter_or_filters)) diff --git a/code/modules/bitrunning/event.dm b/code/modules/bitrunning/event.dm index 8a199952aefd..0018117255f2 100644 --- a/code/modules/bitrunning/event.dm +++ b/code/modules/bitrunning/event.dm @@ -21,14 +21,11 @@ /datum/round_event_control/bitrunning_glitch/can_spawn_event(players_amt, allow_magic = FALSE, fake_check = FALSE) . = ..() if(!.) - return . - + return active_servers.Cut() - get_active_servers() - - if(length(active_servers)) - return TRUE + if(!length(active_servers)) + return FALSE /// All servers currently running, has players in it, and map has valid mobs /datum/round_event_control/bitrunning_glitch/proc/get_active_servers() diff --git a/code/modules/bitrunning/server/map_handling.dm b/code/modules/bitrunning/server/map_handling.dm index 061a60b858bc..23c0eb1982f8 100644 --- a/code/modules/bitrunning/server/map_handling.dm +++ b/code/modules/bitrunning/server/map_handling.dm @@ -128,7 +128,7 @@ /// Loads the safehouse /obj/machinery/quantum_server/proc/initialize_safehouse() - var/turf/safehouse_load_turf = list() + var/list/turf/safehouse_load_turf = list() for(var/obj/effect/landmark/bitrunning/safehouse_spawn/spawner in GLOB.landmarks_list) safehouse_load_turf += get_turf(spawner) qdel(spawner) diff --git a/code/modules/cargo/packs/costumes_toys.dm b/code/modules/cargo/packs/costumes_toys.dm index 298c3c3c1f41..6ac7ee5095d4 100644 --- a/code/modules/cargo/packs/costumes_toys.dm +++ b/code/modules/cargo/packs/costumes_toys.dm @@ -158,6 +158,12 @@ crate_name = "standard costume crate" crate_type = /obj/structure/closet/crate/wooden +/datum/supply_pack/costumes_toys/costume/fill(obj/structure/closet/crate/C) + ..() + var/funny_gas_internals + funny_gas_internals = pick(subtypesof(/obj/item/tank/internals/emergency_oxygen/engi/clown) - /obj/item/tank/internals/emergency_oxygen/engi/clown) + new funny_gas_internals(C) + /datum/supply_pack/costumes_toys/randomised/toys name = "Toy Crate" desc = "Who cares about pride and accomplishment? Skip the gaming and get straight \ diff --git a/code/modules/client/client_defines.dm b/code/modules/client/client_defines.dm index 99471bc7ddd6..7aafe5bfe988 100644 --- a/code/modules/client/client_defines.dm +++ b/code/modules/client/client_defines.dm @@ -274,3 +274,7 @@ /// used for rewarding players monkecoins at round end var/reward_this_person = 0 + + /// Does this client's mob need to rebuild its plane masters after login? + /// This is currently only used so a client can switch between 515 and 516 without breaking their rendering. + var/rebuild_plane_masters = FALSE diff --git a/code/modules/client/client_procs.dm b/code/modules/client/client_procs.dm index 42d1e5e67ad1..8595f23aa727 100644 --- a/code/modules/client/client_procs.dm +++ b/code/modules/client/client_procs.dm @@ -335,10 +335,20 @@ GLOBAL_LIST_INIT(blacklisted_builds, list( if(GLOB.player_details[ckey]) reconnecting = TRUE player_details = GLOB.player_details[ckey] - player_details.byond_version = full_version + var/old_version = player_details.byond_version + player_details.byond_version = byond_version + player_details.byond_build = byond_build + +#if MIN_COMPILER_VERSION > 516 + #warn Fully change default relay_loc to "1,1", rather than changing it based on client version +#endif + if(old_version != byond_version) + rebuild_plane_masters = TRUE + else player_details = new(ckey) - player_details.byond_version = full_version + player_details.byond_version = byond_version + player_details.byond_build = byond_build GLOB.player_details[ckey] = player_details diff --git a/code/modules/client/player_details.dm b/code/modules/client/player_details.dm index 7358cc9cee30..d83ef344aae3 100644 --- a/code/modules/client/player_details.dm +++ b/code/modules/client/player_details.dm @@ -1,19 +1,35 @@ ///assoc list of ckey -> /datum/player_details -GLOBAL_LIST_EMPTY(player_details) +GLOBAL_LIST_EMPTY_TYPED(player_details, /datum/player_details) /datum/player_details - var/list/player_actions = list() + /// Action datums assigned to this player + var/list/datum/action/player_actions = list() + /// Tracks client action logging var/list/logging = list() + /// Callbacks invoked when this client logs in again var/list/post_login_callbacks = list() + /// Callbacks invoked when this client logs out var/list/post_logout_callbacks = list() - var/list/played_names = list() //List of names this key played under this round - var/byond_version = "Unknown" + /// List of names this key played under this round + /// assoc list of name -> mob tag + var/list/played_names = list() + /// Major version of BYOND this client is using. + var/byond_version + /// Build number of BYOND this client is using. + var/byond_build + /// Tracks achievements they have earned var/datum/achievement_data/achievements /datum/player_details/New(key) achievements = new(key) +/// Returns the full version string (i.e 515.1642) of the BYOND version and build. +/datum/player_details/proc/full_byond_version() + if(!byond_version) + return "Unknown" + return "[byond_version].[byond_build || "xxx"]" + /proc/log_played_names(ckey, ...) if(!ckey) return diff --git a/code/modules/client/preferences/middleware/antags.dm b/code/modules/client/preferences/middleware/antags.dm index 5239fa9a9953..bb3e1a607bf9 100644 --- a/code/modules/client/preferences/middleware/antags.dm +++ b/code/modules/client/preferences/middleware/antags.dm @@ -17,11 +17,11 @@ data["selected_antags"] = selected_antags var/list/antag_bans = get_antag_bans() - if (antag_bans.len) + if (length(antag_bans)) data["antag_bans"] = antag_bans var/list/antag_days_left = get_antag_days_left() - if (antag_days_left?.len) + if (length(antag_days_left)) data["antag_days_left"] = antag_days_left return data @@ -66,7 +66,7 @@ if (isnull(antag_flag)) continue - if (is_banned_from(preferences.parent.ckey, list(antag_flag_override || antag_flag, ROLE_SYNDICATE))) + if (is_banned_from(preferences.parent?.ckey, list(antag_flag_override || antag_flag, ROLE_SYNDICATE))) antag_bans += serialize_antag_name(antag_flag) return antag_bans diff --git a/code/modules/client/preferences/pride_pin.dm b/code/modules/client/preferences/pride_pin.dm new file mode 100644 index 000000000000..326dad69979b --- /dev/null +++ b/code/modules/client/preferences/pride_pin.dm @@ -0,0 +1,16 @@ +/datum/preference/choiced/pride_pin + category = PREFERENCE_CATEGORY_SECONDARY_FEATURES + savefile_key = "pride_pin" + savefile_identifier = PREFERENCE_CHARACTER + +/datum/preference/choiced/pride_pin/init_possible_values() + return assoc_to_keys(GLOB.pride_pin_reskins) + +/datum/preference/choiced/pride_pin/is_accessible(datum/preferences/preferences) + if (!..(preferences)) + return FALSE + + return "Pride Pin" in preferences.all_quirks + +/datum/preference/choiced/pride_pin/apply_to_human(mob/living/carbon/human/target, value) + return diff --git a/code/modules/client/preferences/prosthetic.dm b/code/modules/client/preferences/prosthetic.dm new file mode 100644 index 000000000000..f66f1278c48a --- /dev/null +++ b/code/modules/client/preferences/prosthetic.dm @@ -0,0 +1,17 @@ +/datum/preference/choiced/prosthetic + category = PREFERENCE_CATEGORY_SECONDARY_FEATURES + savefile_key = "prosthetic" + savefile_identifier = PREFERENCE_CHARACTER + +/datum/preference/choiced/prosthetic/init_possible_values() + return list("Random") + GLOB.limb_choice + +/datum/preference/choiced/prosthetic/is_accessible(datum/preferences/preferences) + . = ..() + if (!.) + return FALSE + + return "Prosthetic Limb" in preferences.all_quirks + +/datum/preference/choiced/prosthetic/apply_to_human(mob/living/carbon/human/target, value) + return diff --git a/code/modules/client/preferences/species_features/basic.dm b/code/modules/client/preferences/species_features/basic.dm index 06a207899e43..5852bd73f934 100644 --- a/code/modules/client/preferences/species_features/basic.dm +++ b/code/modules/client/preferences/species_features/basic.dm @@ -66,7 +66,6 @@ /datum/preference/choiced/facial_hairstyle/apply_to_human(mob/living/carbon/human/target, value) target.facial_hairstyle = value - target.update_body_parts() /datum/preference/choiced/facial_hairstyle/compile_constant_data() var/list/data = ..() @@ -83,7 +82,6 @@ /datum/preference/color/facial_hair_color/apply_to_human(mob/living/carbon/human/target, value) target.facial_hair_color = value - target.update_body_parts() /datum/preference/choiced/facial_hair_gradient category = PREFERENCE_CATEGORY_FEATURES @@ -132,7 +130,6 @@ /datum/preference/choiced/facial_hair_gradient/apply_to_human(mob/living/carbon/human/target, value) LAZYSETLEN(target.grad_style, GRADIENTS_LEN) target.grad_style[GRADIENT_FACIAL_HAIR_KEY] = value - target.update_body_parts() /datum/preference/choiced/facial_hair_gradient/create_default_value() return "None" @@ -146,7 +143,6 @@ /datum/preference/color/facial_hair_gradient/apply_to_human(mob/living/carbon/human/target, value) LAZYSETLEN(target.grad_color, GRADIENTS_LEN) target.grad_color[GRADIENT_FACIAL_HAIR_KEY] = value - target.update_body_parts() /datum/preference/color/facial_hair_gradient/is_accessible(datum/preferences/preferences) if (!..(preferences)) @@ -241,7 +237,6 @@ /datum/preference/choiced/hair_gradient/apply_to_human(mob/living/carbon/human/target, value) LAZYSETLEN(target.grad_style, GRADIENTS_LEN) target.grad_style[GRADIENT_HAIR_KEY] = value - target.update_body_parts() /datum/preference/choiced/hair_gradient/create_default_value() return "None" @@ -255,7 +250,6 @@ /datum/preference/color/hair_gradient/apply_to_human(mob/living/carbon/human/target, value) LAZYSETLEN(target.grad_color, GRADIENTS_LEN) target.grad_color[GRADIENT_HAIR_KEY] = value - target.update_body_parts() /datum/preference/color/hair_gradient/is_accessible(datum/preferences/preferences) if (!..(preferences)) diff --git a/code/modules/client/preferences/species_features/lizard.dm b/code/modules/client/preferences/species_features/lizard.dm index 9069bb1fdbfd..a67a23339e2d 100644 --- a/code/modules/client/preferences/species_features/lizard.dm +++ b/code/modules/client/preferences/species_features/lizard.dm @@ -70,6 +70,7 @@ category = PREFERENCE_CATEGORY_FEATURES main_feature_name = "Frills" should_generate_icons = TRUE + relevant_external_organ = /obj/item/organ/external/frills /datum/preference/choiced/lizard_frills/init_possible_values() return generate_lizard_side_shots(GLOB.frills_list, "frills") @@ -83,6 +84,7 @@ category = PREFERENCE_CATEGORY_FEATURES main_feature_name = "Horns" should_generate_icons = TRUE + relevant_external_organ = /obj/item/organ/external/horns /datum/preference/choiced/lizard_horns/init_possible_values() return generate_lizard_side_shots(GLOB.horns_list, "horns") @@ -113,6 +115,7 @@ category = PREFERENCE_CATEGORY_FEATURES main_feature_name = "Snout" should_generate_icons = TRUE + relevant_external_organ = /obj/item/organ/external/snout /datum/preference/choiced/lizard_snout/init_possible_values() return generate_lizard_side_shots(GLOB.snouts_list, "snout", include_snout = FALSE) diff --git a/code/modules/client/preferences/species_features/moth.dm b/code/modules/client/preferences/species_features/moth.dm index 87823a12d375..cb62261b08b7 100644 --- a/code/modules/client/preferences/species_features/moth.dm +++ b/code/modules/client/preferences/species_features/moth.dm @@ -4,6 +4,7 @@ category = PREFERENCE_CATEGORY_FEATURES main_feature_name = "Antennae" should_generate_icons = TRUE + relevant_external_organ = /obj/item/organ/external/antennae /datum/preference/choiced/moth_antennae/init_possible_values() var/list/values = list() @@ -88,6 +89,7 @@ category = PREFERENCE_CATEGORY_FEATURES main_feature_name = "Moth wings" should_generate_icons = TRUE + relevant_external_organ = /obj/item/organ/external/wings/moth /datum/preference/choiced/moth_wings/init_possible_values() return possible_values_for_sprite_accessory_list_for_body_part( diff --git a/code/modules/client/preferences/species_features/pod.dm b/code/modules/client/preferences/species_features/pod.dm index f2534ac71059..e543fb3b5948 100644 --- a/code/modules/client/preferences/species_features/pod.dm +++ b/code/modules/client/preferences/species_features/pod.dm @@ -4,6 +4,7 @@ category = PREFERENCE_CATEGORY_FEATURES main_feature_name = "Hairstyle" should_generate_icons = TRUE + relevant_external_organ = /obj/item/organ/external/pod_hair /datum/preference/choiced/pod_hair/init_possible_values() var/list/values = list() diff --git a/code/modules/clothing/neck/_neck.dm b/code/modules/clothing/neck/_neck.dm index 8431673288a6..055d107d5f5b 100644 --- a/code/modules/clothing/neck/_neck.dm +++ b/code/modules/clothing/neck/_neck.dm @@ -66,7 +66,7 @@ if(clip_on) return update_appearance(UPDATE_ICON) - register_context() + // register_context() monkestation: register_context() is already called in ..() /obj/item/clothing/neck/tie/examine(mob/user) . = ..() diff --git a/code/modules/clothing/under/_under.dm b/code/modules/clothing/under/_under.dm index 2da2a6e3956c..f124618ad81c 100644 --- a/code/modules/clothing/under/_under.dm +++ b/code/modules/clothing/under/_under.dm @@ -54,7 +54,10 @@ //make the sensor mode favor higher levels, except coords. sensor_mode = pick(SENSOR_VITALS, SENSOR_VITALS, SENSOR_VITALS, SENSOR_LIVING, SENSOR_LIVING, SENSOR_COORDS, SENSOR_COORDS, SENSOR_OFF) register_context() - AddElement(/datum/element/update_icon_updates_onmob, flags = ITEM_SLOT_ICLOTHING|ITEM_SLOT_OCLOTHING, body = TRUE) + // MONKESTATION EDIT START + // AddElement(/datum/element/update_icon_updates_onmob, flags = ITEM_SLOT_ICLOTHING|ITEM_SLOT_OCLOTHING, body = TRUE) - original + AddElement(/datum/element/update_icon_updates_onmob, flags = ITEM_SLOT_ICLOTHING|ITEM_SLOT_OCLOTHING|ITEM_SLOT_NECK, body = TRUE) + // MONKESTATION EDIT END /obj/item/clothing/under/add_context(atom/source, list/context, obj/item/held_item, mob/living/user) . = NONE diff --git a/code/modules/clothing/under/accessories/_accessories.dm b/code/modules/clothing/under/accessories/_accessories.dm index 1792bff82bb2..f818c14e4d8c 100644 --- a/code/modules/clothing/under/accessories/_accessories.dm +++ b/code/modules/clothing/under/accessories/_accessories.dm @@ -141,7 +141,10 @@ SIGNAL_HANDLER accessory_dropped(source, user) - user.update_clothing(ITEM_SLOT_ICLOTHING|ITEM_SLOT_OCLOTHING) + // MONKESTATION EDIT START + // user.update_clothing(ITEM_SLOT_ICLOTHING|ITEM_SLOT_OCLOTHING) - original + user.update_clothing(ITEM_SLOT_ICLOTHING|ITEM_SLOT_OCLOTHING|ITEM_SLOT_NECK) + // MONKESTATION EDIT END /// Called when the uniform this accessory is pinned to is equipped in a valid slot /obj/item/clothing/accessory/proc/accessory_equipped(obj/item/clothing/under/clothes, mob/living/user) diff --git a/code/modules/clothing/under/suits.dm b/code/modules/clothing/under/suits.dm index 730cb4a50f61..c8078d0fd1dc 100644 --- a/code/modules/clothing/under/suits.dm +++ b/code/modules/clothing/under/suits.dm @@ -30,7 +30,7 @@ desc = "It's a very smart uniform with a special pocket for tip." icon_state = "waiter" inhand_icon_state = "waiter" - supports_variations_flags = CLOTHING_MONKEY_VARIATION|CLOTHING_DIGITIGRADE_VARIATION + supports_variations_flags = CLOTHING_DIGITIGRADE_VARIATION /obj/item/clothing/under/suit/blacktwopiece name = "black two piece suit" diff --git a/code/modules/error_handler/error_handler.dm b/code/modules/error_handler/error_handler.dm index 84254ef615b7..3ca75809c5ec 100644 --- a/code/modules/error_handler/error_handler.dm +++ b/code/modules/error_handler/error_handler.dm @@ -104,6 +104,12 @@ GLOBAL_VAR_INIT(total_runtimes_skipped, 0) // The proceeding mess will almost definitely break if error messages are ever changed var/list/splitlines = splittext(E.desc, "\n") var/list/desclines = list() + var/list/state_stack = GLOB.lua_state_stack + var/is_lua_call = length(state_stack) + var/list/lua_stacks = list() + if(is_lua_call) + for(var/level in 1 to state_stack.len) + lua_stacks += list(splittext(DREAMLUAU_GET_TRACEBACK(level), "\n")) if(LAZYLEN(splitlines) > ERROR_USEFUL_LEN) // If there aren't at least three lines, there's no info for(var/line in splitlines) if(LAZYLEN(line) < 3 || findtext(line, "source file:") || findtext(line, "usr.loc:")) @@ -120,6 +126,8 @@ GLOBAL_VAR_INIT(total_runtimes_skipped, 0) desclines += line if(usrinfo) //If this info isn't null, it hasn't been added yet desclines.Add(usrinfo) + if(is_lua_call) + SSlua.log_involved_runtime(E, desclines, lua_stacks) if(silencing) desclines += " (This error will now be silenced for [DisplayTimeText(configured_error_silence_time)])" if(GLOB.error_cache) diff --git a/code/modules/events/_event.dm b/code/modules/events/_event.dm index 274665a4a93c..57a7cd430330 100644 --- a/code/modules/events/_event.dm +++ b/code/modules/events/_event.dm @@ -98,9 +98,11 @@ /datum/round_event_control/proc/can_spawn_event(players_amt, allow_magic = FALSE, fake_check = FALSE) SHOULD_CALL_PARENT(TRUE) // monkestation start: event groups and storyteller stuff + if(SSgamemode.current_storyteller?.disable_distribution || SSgamemode.halted_storyteller) + return FALSE if(event_group && !GLOB.event_groups[event_group].can_run()) return FALSE - if(roundstart && ((SSticker.round_start_time && (world.time - SSticker.round_start_time) >= 2 MINUTES) || (SSgamemode.ran_roundstart && !fake_check))) + if(roundstart && (!SSgamemode.can_run_roundstart || (SSgamemode.ran_roundstart && !fake_check && !SSgamemode.current_storyteller?.ignores_roundstart))) return FALSE // monkestation end if(occurrences >= max_occurrences) @@ -123,9 +125,8 @@ return FALSE if(!check_enemies()) return FALSE - if(allowed_storytellers && ((islist(allowed_storytellers) && !is_type_in_list(SSgamemode.storyteller, allowed_storytellers)) || SSgamemode.storyteller.type != allowed_storytellers)) - return FALSE - if(SSgamemode.storyteller.disable_distribution || SSgamemode.halted_storyteller) + if(allowed_storytellers && SSgamemode.current_storyteller && ((islist(allowed_storytellers) && \ + !is_type_in_list(SSgamemode.current_storyteller, allowed_storytellers)) || SSgamemode.current_storyteller.type != allowed_storytellers)) return FALSE // monkestation end @@ -149,12 +150,13 @@ message_admins("Random Event triggering in [DisplayTimeText(RANDOM_EVENT_ADMIN_INTERVENTION_TIME)]: [name]. (CANCEL)") if(!roundstart) sleep(RANDOM_EVENT_ADMIN_INTERVENTION_TIME) - var/players_amt = get_active_player_count(alive_check = TRUE, afk_check = TRUE, human_check = TRUE) - if(!can_spawn_event(players_amt, fake_check = TRUE) && !forced) - message_admins("Second pre-condition check for [name] failed, skipping...") - return EVENT_INTERRUPTED - if(!can_spawn_event(players_amt, fake_check = TRUE) && forced) - message_admins("Second pre-condition check for [name] failed, but event forced, running event regardless this may have issues...") + + if(!can_spawn_event(get_active_player_count(alive_check = TRUE, afk_check = TRUE, human_check = TRUE), fake_check = TRUE) && !forced) + if(!forced) + message_admins("Second pre-condition check for [name] failed, skipping...") + return EVENT_INTERRUPTED + else if(forced) + message_admins("Second pre-condition check for [name] failed, but event forced, running event regardless this may have issues...") if(!triggering) return EVENT_CANCELLED //admin cancelled @@ -346,7 +348,7 @@ Runs the event if("schedule") message_admins("[key_name_admin(usr)] scheduled event [src.name].") log_admin_private("[key_name(usr)] scheduled [src.name].") - SSgamemode.storyteller.buy_event(src, src.track) + SSgamemode.current_storyteller.buy_event(src, src.track) if("force_next") if(length(src.admin_setup)) for(var/datum/event_admin_setup/admin_setup_datum in src.admin_setup) diff --git a/code/modules/events/supermatter_surge.dm b/code/modules/events/supermatter_surge.dm index a10e60dad2d5..b94009859564 100644 --- a/code/modules/events/supermatter_surge.dm +++ b/code/modules/events/supermatter_surge.dm @@ -46,7 +46,7 @@ announce_when = 4 end_when = SURGE_DURATION_MIN /// How powerful is the supermatter surge going to be? - var/surge_class = SURGE_SEVERITY_MIN + var/surge_class = null //monkestation edit /// Typecasted reference to the supermatter chosen at event start var/obj/machinery/power/supermatter_crystal/engine /// Typecasted reference to the nitrogen properies in the SM chamber diff --git a/code/modules/events/wizard/rpgtitles.dm b/code/modules/events/wizard/rpgtitles.dm index 37eae2459f62..9bb69a90f2cf 100644 --- a/code/modules/events/wizard/rpgtitles.dm +++ b/code/modules/events/wizard/rpgtitles.dm @@ -43,7 +43,7 @@ GLOBAL_DATUM(rpgtitle_controller, /datum/rpgtitle_controller) //we must prepare for the mother of all strings new_crewmember.maptext_height = max(new_crewmember.maptext_height, 32) new_crewmember.maptext_width = max(new_crewmember.maptext_width, 112) - new_crewmember.maptext_x = -24 - new_crewmember.base_pixel_x + new_crewmember.maptext_x = -38 - new_crewmember.base_pixel_x new_crewmember.maptext_y = -32 //list of lists involving strings related to a biotype flag, their position in the list equal to the position they were defined as bitflags. diff --git a/code/modules/hydroponics/plant_genes.dm b/code/modules/hydroponics/plant_genes.dm index 875de6a3a7b1..00ccc0a79397 100644 --- a/code/modules/hydroponics/plant_genes.dm +++ b/code/modules/hydroponics/plant_genes.dm @@ -943,7 +943,7 @@ else our_plant.embedding = EMBED_HARMLESS our_plant.updateEmbedding() - our_plant.throwforce = qp_sigmoid(1000, 100, our_seed.potency) + our_plant.throwforce = qp_sigmoid(1000, 50, our_seed.potency) /** * This trait automatically heats up the plant's chemical contents when harvested. diff --git a/code/modules/jobs/job_types/_job.dm b/code/modules/jobs/job_types/_job.dm index 7db9fd4f7990..8fa5c7b0ad0e 100644 --- a/code/modules/jobs/job_types/_job.dm +++ b/code/modules/jobs/job_types/_job.dm @@ -545,7 +545,6 @@ var/gender = player_client.prefs.read_preference(/datum/preference/choiced/gender) real_name = species.random_name(gender, TRUE) dna.update_dna_identity() - dna.species.after_equip_job(job, src, FALSE, player_client.prefs) /mob/living/silicon/ai/apply_prefs_job(client/player_client, datum/job/job) if(GLOB.current_anonymous_theme) diff --git a/code/modules/jobs/job_types/head_of_personnel.dm b/code/modules/jobs/job_types/head_of_personnel.dm index 2ad677fc97c1..bffad261e685 100644 --- a/code/modules/jobs/job_types/head_of_personnel.dm +++ b/code/modules/jobs/job_types/head_of_personnel.dm @@ -1,7 +1,7 @@ /datum/job/head_of_personnel title = JOB_HEAD_OF_PERSONNEL - description = "Alter access on ID cards, manage the service department, \ - protect Ian, run the station when the captain dies." + description = "Alter access on ID cards, manage the service and supply departments, \ + protect Ian, run the station when the captain dies." //monkestation addition: clarifies the HoP is the supply head auto_deadmin_role_flags = DEADMIN_POSITION_HEAD department_head = list(JOB_CAPTAIN) head_announce = list(RADIO_CHANNEL_SERVICE, RADIO_CHANNEL_SUPPLY) diff --git a/code/modules/jobs/jobs.dm b/code/modules/jobs/jobs.dm index 5eea0d7fc469..5699815b4d8a 100644 --- a/code/modules/jobs/jobs.dm +++ b/code/modules/jobs/jobs.dm @@ -5,6 +5,7 @@ GLOBAL_LIST_INIT(exp_specialmap, list( EXP_TYPE_SPECIAL = list( ROLE_LIFEBRINGER, ROLE_ASHWALKER, + ROLE_BAR_DRONE, // monkestation addition ROLE_EXILE, ROLE_SERVANT_GOLEM, ROLE_FREE_GOLEM, diff --git a/code/modules/mapping/access_helpers.dm b/code/modules/mapping/access_helpers.dm index e0fc2a15b426..25ffbab8dd85 100644 --- a/code/modules/mapping/access_helpers.dm +++ b/code/modules/mapping/access_helpers.dm @@ -51,7 +51,6 @@ access_list += ACCESS_MINISAT return access_list - /obj/effect/mapping_helpers/airlock/access/any/command/gateway/get_access() var/list/access_list = ..() access_list += ACCESS_GATEWAY @@ -278,13 +277,6 @@ access_list += list(ACCESS_SECURITY, ACCESS_MAINT_TUNNELS) return access_list -/// MONKESTATION EDIT BEGIN -/obj/effect/mapping_helpers/airlock/access/any/security/brig_physician/get_access() - var/list/access_list = ..() - access_list += ACCESS_BRIG_PHYSICIAN - return access_list -/// MONKESTATION EDIT END - // -------------------- Service access helpers /obj/effect/mapping_helpers/airlock/access/any/service icon_state = "access_helper_serv" @@ -746,12 +738,7 @@ access_list += ACCESS_HOS return access_list -/// MONKESTATION EDIT BEGIN -/obj/effect/mapping_helpers/airlock/access/all/security/brig_physician/get_access() - var/list/access_list = ..() - access_list += ACCESS_BRIG_PHYSICIAN - return access_list -/// MONKESTATION EDIT END + // -------------------- Service access helpers /obj/effect/mapping_helpers/airlock/access/all/service icon_state = "access_helper_serv" diff --git a/code/modules/mapping/mapping_helpers.dm b/code/modules/mapping/mapping_helpers.dm index 47294797643f..13ffc5b3ff76 100644 --- a/code/modules/mapping/mapping_helpers.dm +++ b/code/modules/mapping/mapping_helpers.dm @@ -1149,7 +1149,7 @@ INITIALIZE_IMMEDIATE(/obj/effect/mapping_helpers/no_lava) if(response.errored || response.status_code != 200) query_in_progress = FALSE CRASH("Failed to fetch mapped custom json from url [json_url], code: [response.status_code], error: [response.error]") - var/json_data = response["body"] + var/json_data = response.body json_cache[json_url] = json_data query_in_progress = FALSE return json_data diff --git a/code/modules/mining/machine_redemption.dm b/code/modules/mining/machine_redemption.dm index 2002f51e62bb..15c3585e4c44 100644 --- a/code/modules/mining/machine_redemption.dm +++ b/code/modules/mining/machine_redemption.dm @@ -236,21 +236,27 @@ for(var/datum/material/material as anything in mat_container.materials) var/amount = mat_container.materials[material] var/sheet_amount = amount / SHEET_MATERIAL_AMOUNT + var/obj/sheet_type = material.sheet_type data["materials"] += list(list( "name" = material.name, "id" = REF(material), "amount" = sheet_amount, "category" = "material", "value" = ore_values[material.type], + "icon" = sheet_type::icon, + "icon_state" = sheet_type::icon_state, )) for(var/research in stored_research.researched_designs) var/datum/design/alloy = SSresearch.techweb_design_by_id(research) + var/obj/alloy_type = alloy.build_path data["materials"] += list(list( "name" = alloy.name, "id" = alloy.id, "category" = "alloy", "amount" = can_smelt_alloy(alloy), + "icon" = alloy_type::icon, + "icon_state" = alloy_type::icon_state, )) if (!mat_container) @@ -278,29 +284,6 @@ ) return data -/obj/machinery/mineral/ore_redemption/ui_static_data(mob/user) - var/list/data = list() - - var/datum/component/material_container/mat_container = materials.mat_container - if (mat_container) - for(var/datum/material/material as anything in mat_container.materials) - var/obj/material_display = initial(material.sheet_type) - data["material_icons"] += list(list( - "id" = REF(material), - "product_icon" = icon2base64(getFlatIcon(image(icon = initial(material_display.icon), icon_state = initial(material_display.icon_state)), no_anim=TRUE)), - )) - - for(var/research in stored_research.researched_designs) - var/datum/design/alloy = SSresearch.techweb_design_by_id(research) - var/obj/alloy_display = initial(alloy.build_path) - data["material_icons"] += list(list( - "id" = alloy.id, - "product_icon" = icon2base64(getFlatIcon(image(icon = initial(alloy_display.icon), icon_state = initial(alloy_display.icon_state)), no_anim=TRUE)), - )) - - return data - - /obj/machinery/mineral/ore_redemption/ui_act(action, params) . = ..() if(.) diff --git a/code/modules/mob/dead/new_player/sprite_accessories.dm b/code/modules/mob/dead/new_player/sprite_accessories.dm index 1426e4648449..3c24f9001c0a 100644 --- a/code/modules/mob/dead/new_player/sprite_accessories.dm +++ b/code/modules/mob/dead/new_player/sprite_accessories.dm @@ -1789,8 +1789,17 @@ MONKESTATION EDIT palette_key = MUTANT_COLOR /datum/sprite_accessory/tails/monkey + +//Non-Modular change - Removes monkey tails, adds Simian tails instead. +/datum/sprite_accessory/tails/monkey/default name = "Monkey" - icon_state = "monkey" + icon = 'monkestation/icons/mob/species/monkey/monkey_tail.dmi' //Original: 'icons/mob/species/monkey/monkey_tail.dmi' + icon_state = "default" + color_src = MUTANT_COLOR //Original: FALSE + +/datum/sprite_accessory/tails/monkey/none + name = "None" + icon_state = "none" color_src = FALSE /datum/sprite_accessory/pod_hair diff --git a/code/modules/mob/living/basic/basic.dm b/code/modules/mob/living/basic/basic.dm index 8fb48c98e3f5..e5092601c294 100644 --- a/code/modules/mob/living/basic/basic.dm +++ b/code/modules/mob/living/basic/basic.dm @@ -328,3 +328,11 @@ SET_PLANE(held, ABOVE_HUD_PLANE, our_turf) held.screen_loc = ui_hand_position(index) client.screen |= held + +//MONKESTATION EDIT START +/mob/living/basic/proc/get_scream_sound() + return +/mob/living/basic/proc/get_laugh_sound() + return +//MONKESTATION EDIT STOP + diff --git a/code/modules/mob/living/basic/drone/_drone.dm b/code/modules/mob/living/basic/drone/_drone.dm index 061ca478bc42..f42a439f1e15 100644 --- a/code/modules/mob/living/basic/drone/_drone.dm +++ b/code/modules/mob/living/basic/drone/_drone.dm @@ -100,7 +100,8 @@ " - Interacting with non-living beings (dragging bodies, looting bodies, etc.)\n"+\ "These rules are at admin discretion and will be heavily enforced.\n"+\ "If you do not have the regular drone laws, follow your laws to the best of your ability.\n"+\ - "Prefix your message with :b to speak in Drone Chat.\n" + "Prefix your message with :b to speak in Drone Chat.\n"+\ + "Drone Rules and info can be found at our wiki HERE\n" /// blacklisted drone areas, direct var/list/drone_area_blacklist_flat = list(/area/station/engineering/atmos, /area/station/engineering/atmospherics_engine) /// blacklisted drone areas, recursive/includes descendants diff --git a/code/modules/mob/living/basic/farm_animals/goat/_goat.dm b/code/modules/mob/living/basic/farm_animals/goat/_goat.dm index ea4e0f21c836..742187d29e3f 100644 --- a/code/modules/mob/living/basic/farm_animals/goat/_goat.dm +++ b/code/modules/mob/living/basic/farm_animals/goat/_goat.dm @@ -125,6 +125,8 @@ /// Proc that handles dealing with the various types of plants we might eat. Assumes that a valid list of type(s) will be passed in. /mob/living/basic/goat/proc/eat_plant(list/plants) + if(health == 0) //monkestation edit + return var/eaten = FALSE for(var/atom/target as anything in plants) diff --git a/code/modules/mob/living/basic/vermin/mouse.dm b/code/modules/mob/living/basic/vermin/mouse.dm index 880f27750dd5..758d8586dd71 100644 --- a/code/modules/mob/living/basic/vermin/mouse.dm +++ b/code/modules/mob/living/basic/vermin/mouse.dm @@ -27,6 +27,10 @@ response_harm_simple = "splat" ai_controller = /datum/ai_controller/basic_controller/mouse + //MONKESTATION EDIT START + death_sound = 'sound/effects/mousesqueek.ogg' + death_message = "falls limp and lifeless..." + //MONKESTATION EDIT STOP /// Whether this rat is friendly to players var/tame = FALSE @@ -39,6 +43,13 @@ var/chooses_bodycolor = TRUE +//MONKESTATION EDIT START +/mob/living/basic/mouse/get_scream_sound() + return 'sound/effects/mousesqueek.ogg' +/mob/living/basic/mouse/get_laugh_sound() + return 'sound/effects/mousesqueek.ogg' +//MONKESTATION EDIT STOP + /mob/living/basic/mouse/Initialize(mapload, tame = FALSE, new_body_color) . = ..() if(contributes_to_ratcap) @@ -147,6 +158,24 @@ if(istype(attack_target, /obj/item/food/cheese)) try_consume_cheese(attack_target) return TRUE + //MONKESTATION EDIT START + if(istype(attack_target, /obj/item)) + if(!attack_target.GetComponent(/datum/component/edible)) + return + if(istype(attack_target, /obj/item/food/cheese)) + return //mice savour cheese differently + var/datum/component/edible/edible = attack_target.GetComponent(/datum/component/edible) + edible.UseByMouse(edible, src) + + for(var/datum/reagent/target_reagent in attack_target.reagents.reagent_list) + if(istype(target_reagent, /datum/reagent/toxin)) + visible_message( + span_warning("[src] devours [attack_target]! They pause for a moment..."), + span_warning("You devour [attack_target], something tastes off..."), + ) + if(health != 0) + adjust_health(4) + //MONKESTATION EDIT STOP if(istype(attack_target, /obj/structure/cable)) try_bite_cable(attack_target) diff --git a/code/modules/mob/living/carbon/alien/adult/alien_powers.dm b/code/modules/mob/living/carbon/alien/adult/alien_powers.dm index ec6efde78d56..51f65f9531e2 100644 --- a/code/modules/mob/living/carbon/alien/adult/alien_powers.dm +++ b/code/modules/mob/living/carbon/alien/adult/alien_powers.dm @@ -224,6 +224,9 @@ Doesn't work on other aliens/AI.*/ if(ismob(target)) //If it could corrode mobs, it would one-shot them. owner.balloon_alert(owner, "doesn't work on mobs!") return FALSE + if(isfloorturf(target)) // MONKESTATION ADDITION Turns floors into landmines + owner.balloon_alert(owner, "doesn't work on floors!") + return FALSE return ..() diff --git a/code/modules/mob/living/carbon/carbon_update_icons.dm b/code/modules/mob/living/carbon/carbon_update_icons.dm index 38422a58979b..9559ce3f08fe 100644 --- a/code/modules/mob/living/carbon/carbon_update_icons.dm +++ b/code/modules/mob/living/carbon/carbon_update_icons.dm @@ -298,7 +298,7 @@ if(!LAZYLEN(part_overlays)) continue - damage_overlay ||= mutable_appearance(layer = -DAMAGE_LAYER) + damage_overlay = mutable_appearance(layer = -DAMAGE_LAYER, appearance_flags = KEEP_TOGETHER) damage_overlay.overlays += part_overlays if(isnull(damage_overlay)) @@ -452,7 +452,7 @@ var/old_key = icon_render_keys?[limb.body_zone] //Checks the mob's icon render key list for the bodypart icon_render_keys[limb.body_zone] = (limb.is_husked) ? limb.generate_husk_key().Join() : limb.generate_icon_key().Join() //Generates a key for the current bodypart - if(icon_render_keys[limb.body_zone] != old_key || get_top_offset() != last_top_offset) //If the keys match, that means the limb doesn't need to be redrawn + if(icon_render_keys[limb.body_zone] != old_key) //If the keys match, that means the limb doesn't need to be redrawn needs_update += limb var/list/missing_bodyparts = get_missing_limbs() @@ -469,15 +469,10 @@ for(var/obj/item/bodypart/limb as anything in bodyparts) if(limb in needs_update) var/bodypart_icon = limb.get_limb_icon() - if(!istype(limb, /obj/item/bodypart/leg)) - var/top_offset = get_top_offset() - for(var/image/image as anything in bodypart_icon) - image.pixel_y += top_offset new_limbs += bodypart_icon limb_icon_cache[icon_render_keys[limb.body_zone]] = bodypart_icon //Caches the icon with the bodypart key, as it is new else new_limbs += limb_icon_cache[icon_render_keys[limb.body_zone]] //Pulls existing sprites from the cache - last_top_offset = get_top_offset() remove_overlay(BODYPARTS_LAYER) @@ -491,19 +486,6 @@ apply_overlay(BODYPARTS_LAYER) -/// This looks at the chest and legs of the mob and decides how much our chest, arms, and head should be adjusted. This is useful for limbs that are larger or smaller than the scope of normal human height while keeping the feet anchored to the bottom of the tile -/mob/living/carbon/proc/get_top_offset() - var/from_chest - var/from_leg - for(var/obj/item/bodypart/leg/leg_checked in bodyparts) - if(leg_checked.top_offset > from_leg || isnull(from_leg)) // We find the tallest leg available - from_leg = leg_checked.top_offset - if(isnull(from_leg)) - from_leg = 0 // If we have no legs, we set this to zero to avoid any math issues that might stem from it being NULL - for(var/obj/item/bodypart/chest/chest_checked in bodyparts) // Take the height from the chest - from_chest = chest_checked.top_offset - return (from_chest + from_leg) // The total hight of the chest and legs together - ///////////////////////// // Limb Icon Cache 2.0 // ///////////////////////// diff --git a/code/modules/mob/living/carbon/human/_species.dm b/code/modules/mob/living/carbon/human/_species.dm index 9adfdde9ee1d..3e5fd3cbec32 100644 --- a/code/modules/mob/living/carbon/human/_species.dm +++ b/code/modules/mob/living/carbon/human/_species.dm @@ -238,7 +238,7 @@ GLOBAL_LIST_EMPTY(features_by_species) var/maxhealthmod = 1 ///Path to BODYTYPE_CUSTOM species worn icons. An assoc list of ITEM_SLOT_X => /icon var/list/custom_worn_icons = list() - ///Override of the eyes icon file, used for Vox and maybe more in the future - The future is now, with Teshari using it too + ///Override of the eyes icon file, used for Monkeys. var/eyes_icon ///our color palette var/datum/color_palette/color_palette @@ -522,6 +522,7 @@ GLOBAL_LIST_EMPTY(features_by_species) C.bodytemp_cold_damage_limit = src.bodytemp_cold_damage_limit C.temperature_normalization_speed = src.temperature_normalization_speed C.temperature_homeostasis_speed = src.temperature_homeostasis_speed + C.butcher_results = knife_butcher_results?.Copy() C.physiology?.cold_mod *= coldmod C.physiology?.heat_mod *= heatmod @@ -621,12 +622,9 @@ GLOBAL_LIST_EMPTY(features_by_species) */ /datum/species/proc/handle_body(mob/living/carbon/human/species_human) species_human.remove_overlay(BODY_LAYER) - species_human.remove_overlay(FACE_LAYER) - var/height_offset = species_human.get_top_offset() // From high changed by varying limb height if(HAS_TRAIT(species_human, TRAIT_INVISIBLE_MAN)) return handle_mutant_bodyparts(species_human) var/list/standing = list() - var/list/standing_face = list() if(!HAS_TRAIT(species_human, TRAIT_HUSK)) var/obj/item/bodypart/head/noggin = species_human.get_bodypart(BODY_ZONE_HEAD) @@ -635,9 +633,7 @@ GLOBAL_LIST_EMPTY(features_by_species) var/obj/item/organ/internal/eyes/eye_organ = species_human.get_organ_slot(ORGAN_SLOT_EYES) if(eye_organ) eye_organ.refresh(call_update = FALSE) - for(var/mutable_appearance/eye_overlay in eye_organ.generate_body_overlay(species_human)) - eye_overlay.pixel_y += height_offset - standing += eye_overlay + standing += eye_organ.generate_body_overlay(species_human) // organic body markings if(HAS_TRAIT(species_human, TRAIT_HAS_MARKINGS)) @@ -651,22 +647,18 @@ GLOBAL_LIST_EMPTY(features_by_species) if(!HAS_TRAIT(species_human, TRAIT_HUSK)) if(noggin && (IS_ORGANIC_LIMB(noggin))) var/mutable_appearance/markings_head_overlay = mutable_appearance(markings.icon, "[markings.icon_state]_head", -BODY_LAYER) - markings_head_overlay.pixel_y += height_offset standing += markings_head_overlay if(chest && (IS_ORGANIC_LIMB(chest))) var/mutable_appearance/markings_chest_overlay = mutable_appearance(markings.icon, "[markings.icon_state]_chest", -BODY_LAYER) - markings_chest_overlay.pixel_y += height_offset standing += markings_chest_overlay if(right_arm && (IS_ORGANIC_LIMB(right_arm))) var/mutable_appearance/markings_r_arm_overlay = mutable_appearance(markings.icon, "[markings.icon_state]_r_arm", -BODY_LAYER) - markings_r_arm_overlay.pixel_y += height_offset standing += markings_r_arm_overlay if(left_arm && (IS_ORGANIC_LIMB(left_arm))) var/mutable_appearance/markings_l_arm_overlay = mutable_appearance(markings.icon, "[markings.icon_state]_l_arm", -BODY_LAYER) - markings_l_arm_overlay.pixel_y += height_offset standing += markings_l_arm_overlay if(right_leg && (IS_ORGANIC_LIMB(right_leg))) @@ -689,7 +681,6 @@ GLOBAL_LIST_EMPTY(features_by_species) underwear_overlay = mutable_appearance(underwear.icon, underwear.icon_state, -BODY_LAYER) if(!underwear.use_static) underwear_overlay.color = species_human.underwear_color - underwear_overlay.pixel_y += height_offset standing += underwear_overlay if(species_human.undershirt) @@ -700,7 +691,6 @@ GLOBAL_LIST_EMPTY(features_by_species) working_shirt = wear_female_version(undershirt.icon_state, undershirt.icon, BODY_LAYER) else working_shirt = mutable_appearance(undershirt.icon, undershirt.icon_state, -BODY_LAYER) - working_shirt.pixel_y += height_offset standing += working_shirt if(species_human.socks && species_human.num_legs >= 2 && !(src.bodytype & BODYTYPE_DIGITIGRADE)) @@ -714,17 +704,13 @@ GLOBAL_LIST_EMPTY(features_by_species) socks_overlay = mutable_appearance(socks.icon, socks.icon_state, -BODY_LAYER) if(!socks.use_static) socks_overlay.color = species_human.socks_color - socks_overlay.pixel_y += height_offset standing += socks_overlay //MONKESTATION EDITS END if(standing.len) species_human.overlays_standing[BODY_LAYER] = standing - if(standing_face.len) - species_human.overlays_standing[FACE_LAYER] = standing_face species_human.apply_overlay(BODY_LAYER) - species_human.apply_overlay(FACE_LAYER) handle_mutant_bodyparts(species_human) /** @@ -784,7 +770,7 @@ GLOBAL_LIST_EMPTY(features_by_species) if(!accessory || accessory.icon_state == "none") continue - var/mutable_appearance/accessory_overlay = mutable_appearance(accessory.icon, layer = -layer) + var/mutable_appearance/accessory_overlay = mutable_appearance(accessory.icon, layer = -layer, appearance_flags = KEEP_TOGETHER) if(accessory.gender_specific) accessory_overlay.icon_state = "[g]_[bodypart]_[accessory.icon_state]_[layertext]" @@ -879,13 +865,17 @@ GLOBAL_LIST_EMPTY(features_by_species) ///Proc that will randomize all the external organs (i.e. horns, frills, tails etc.) of a species' associated mob /datum/species/proc/randomize_external_organs(mob/living/carbon/human/human_mob) + var/static/list/organs_to_randomize = list() for(var/obj/item/organ/external/organ_path as anything in external_organs) - var/obj/item/organ/external/randomized_organ = human_mob.get_organ_by_type(organ_path) - if(randomized_organ) - var/datum/bodypart_overlay/mutant/overlay = randomized_organ.bodypart_overlay - var/new_look = pick(overlay.get_global_feature_list()) - human_mob.dna.features["[overlay.feature_key]"] = new_look - mutant_bodyparts["[overlay.feature_key]"] = new_look + var/overlay_path = initial(organ_path.bodypart_overlay) + var/datum/bodypart_overlay/mutant/sample_overlay = organs_to_randomize[overlay_path] + if(isnull(sample_overlay)) + sample_overlay = new overlay_path() + organs_to_randomize[overlay_path] = sample_overlay + + var/new_look = pick(sample_overlay.get_global_feature_list()) + human_mob.dna.features["[sample_overlay.feature_key]"] = new_look + mutant_bodyparts["[sample_overlay.feature_key]"] = new_look ///Proc that randomizes all the appearance elements (external organs, markings, hair etc.) of a species' associated mob. Function set by child procs /datum/species/proc/randomize_features(mob/living/carbon/human/human_mob) @@ -980,12 +970,6 @@ GLOBAL_LIST_EMPTY(features_by_species) return FALSE return equip_delay_self_check(I, H, bypass_equip_delay_self) if(ITEM_SLOT_ICLOTHING) - var/obj/item/bodypart/chest = H.get_bodypart(BODY_ZONE_CHEST) - if(chest && (chest.bodytype & BODYTYPE_MONKEY)) - if(!(I.supports_variations_flags & CLOTHING_MONKEY_VARIATION)) - if(!disable_warning) - to_chat(H, span_warning("[I] doesn't fit your [chest.name]!")) - return FALSE return equip_delay_self_check(I, H, bypass_equip_delay_self) if(ITEM_SLOT_ID) var/obj/item/bodypart/O = H.get_bodypart(BODY_ZONE_CHEST) @@ -1062,10 +1046,6 @@ GLOBAL_LIST_EMPTY(features_by_species) H.visible_message(span_notice("[H] start putting on [I]..."), span_notice("You start putting on [I]...")) return do_after(H, I.equip_delay_self, target = H) - -/datum/species/proc/after_equip_job(datum/job/J, mob/living/carbon/human/human_host, client/preference_source = null) - human_host.update_mutant_bodyparts() - /// Equips the necessary species-relevant gear before putting on the rest of the uniform. /datum/species/proc/pre_equip_species_outfit(datum/job/job, mob/living/carbon/human/equipping, visuals_only = FALSE) return diff --git a/code/modules/mob/living/carbon/human/dummy.dm b/code/modules/mob/living/carbon/human/dummy.dm index dbf438919b50..36f49914018c 100644 --- a/code/modules/mob/living/carbon/human/dummy.dm +++ b/code/modules/mob/living/carbon/human/dummy.dm @@ -22,6 +22,25 @@ INITIALIZE_IMMEDIATE(/mob/living/carbon/human/dummy) harvest_organs() return ..() +/* + MONKESTATION EDIT START + This causes a problem with tall players as some of their overlays will go outside of the 32x32 range which the mob's icon is restricted to +// To speed up the preference menu, we apply 1 filter to the entire mob +/mob/living/carbon/human/dummy/regenerate_icons() + . = ..() + apply_height_filters(src, only_apply_in_prefs = TRUE) + +/mob/living/carbon/human/dummy/apply_height_filters(image/appearance, only_apply_in_prefs = FALSE) + if(only_apply_in_prefs) + return ..() + +// Not necessary with above +/mob/living/carbon/human/dummy/apply_height_offsets(image/appearance, upper_torso) + return + + MONKESTATION EDIT END + */ + ///Let's extract our dummies organs and limbs for storage, to reduce the cache missed that spamming a dummy cause /mob/living/carbon/human/dummy/proc/harvest_organs() for(var/slot in list(ORGAN_SLOT_BRAIN, ORGAN_SLOT_HEART, ORGAN_SLOT_LUNGS, ORGAN_SLOT_APPENDIX, \ @@ -82,17 +101,6 @@ INITIALIZE_IMMEDIATE(/mob/living/carbon/human/dummy) /mob/living/carbon/human/dummy/log_mob_tag(text) return - -/mob/living/carbon/human/dummy/apply_height_filters(image/appearance, only_apply_in_prefs = FALSE) - if(QDELETED(src)) - return - if(only_apply_in_prefs) - return ..() - -// Not necessary with above -/mob/living/carbon/human/dummy/apply_height_offsets(image/appearance, upper_torso) - return - /proc/create_consistent_human_dna(mob/living/carbon/human/target) target.dna.initialize_dna(/datum/blood_type/crew/human/o_plus, skip_index = TRUE) target.dna.features["body_markings"] = "None" @@ -106,8 +114,9 @@ INITIALIZE_IMMEDIATE(/mob/living/carbon/human/dummy) target.dna.features["spines"] = "None" target.dna.features["tail_cat"] = "None" target.dna.features["tail_lizard"] = "Smooth" - target.dna.features["tail_monkey"] = "Chimp" //Monkestation Addition + target.dna.features["tail_monkey"] = "Monkey" target.dna.features["pod_hair"] = "Ivy" + target.dna.features["fur"] = COLOR_MONKEY_BROWN //Monkestation Addition target.dna.features["ethereal_horns"] = "None" //Monkestation Addition target.dna.features["ethereal_tail"] = "None" //Monkestation Addition target.dna.features["ipc_screen"] = "BSOD" //Monkestation Addition diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index fba7f888a17f..9755634c3422 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -367,7 +367,7 @@ else if(brain.temporary_sleep) msg += "[span_deadsay("[t_He] [t_is] temporarly disconnected from their mind. Recovery is likely.")]\n" else if(!client) - if(round(((world.time - lastclienttime) / (1 MINUTES)),1) >= 15) + if(round(((world.time - lastclienttime) / (1 MINUTES)),1) >= 30) // monkestation edit: Our cyropod time is 30 minutes msg += "[t_He] [t_has] a blank, absent-minded stare and [t_has] been completely unresponsive to anything for [round(((world.time - lastclienttime) / (1 MINUTES)),1)] minutes. [t_He] may snap out of it soon. They are able to be put into a cryopod by you.\n" else msg += "[t_He] [t_has] a blank, absent-minded stare and [t_has] been completely unresponsive to anything for [round(((world.time - lastclienttime) / (1 MINUTES)),1)] minutes. [t_He] may snap out of it soon.\n" diff --git a/code/modules/mob/living/carbon/human/human.dm b/code/modules/mob/living/carbon/human/human.dm index 423d1b817c38..2545c3591066 100644 --- a/code/modules/mob/living/carbon/human/human.dm +++ b/code/modules/mob/living/carbon/human/human.dm @@ -729,6 +729,10 @@ /mob/living/carbon/human/vv_edit_var(var_name, var_value) if(var_name == NAMEOF(src, mob_height)) + var/static/list/monkey_heights = list( + MONKEY_HEIGHT_DWARF, + MONKEY_HEIGHT_MEDIUM, + ) var/static/list/heights = list( HUMAN_HEIGHT_SHORTEST, HUMAN_HEIGHT_SHORT, @@ -736,7 +740,10 @@ HUMAN_HEIGHT_TALL, HUMAN_HEIGHT_TALLEST ) - if(!(var_value in heights)) + if(ismonkey(src)) + if(!(var_value in monkey_heights)) + return + else if(!(var_value in heights)) return . = set_mob_height(var_value) diff --git a/code/modules/mob/living/carbon/human/human_helpers.dm b/code/modules/mob/living/carbon/human/human_helpers.dm index df3f8a716b7e..9bb8f9404999 100644 --- a/code/modules/mob/living/carbon/human/human_helpers.dm +++ b/code/modules/mob/living/carbon/human/human_helpers.dm @@ -263,13 +263,13 @@ /mob/living/carbon/human/proc/set_mob_height(new_height) if(mob_height == new_height) return FALSE - if(new_height == HUMAN_HEIGHT_DWARF) - CRASH("Don't set height to dwarf height directly, use dwarf trait") + if(new_height == HUMAN_HEIGHT_DWARF || new_height == MONKEY_HEIGHT_DWARF) + CRASH("Don't set height to dwarf height directly, use dwarf trait instead.") + if(new_height == MONKEY_HEIGHT_MEDIUM) + CRASH("Don't set height to monkey height directly, use monkified gene/species instead.") mob_height = new_height regenerate_icons() - if(isdummy(src)) - apply_height_filters(src, TRUE) return TRUE /** @@ -281,6 +281,12 @@ */ /mob/living/carbon/human/proc/get_mob_height() if(HAS_TRAIT(src, TRAIT_DWARF)) - return HUMAN_HEIGHT_DWARF + if(ismonkey(src)) + return MONKEY_HEIGHT_DWARF + else + return HUMAN_HEIGHT_DWARF + + else if(ismonkey(src)) + return MONKEY_HEIGHT_MEDIUM return mob_height diff --git a/code/modules/mob/living/carbon/human/human_update_icons.dm b/code/modules/mob/living/carbon/human/human_update_icons.dm index c3ee8c1eda32..45f3faeb3d3c 100644 --- a/code/modules/mob/living/carbon/human/human_update_icons.dm +++ b/code/modules/mob/living/carbon/human/human_update_icons.dm @@ -102,18 +102,13 @@ There are several things that need to be remembered: var/icon_file var/woman //BEGIN SPECIES HANDLING - if((dna?.species.bodytype & BODYTYPE_MONKEY) && (uniform.supports_variations_flags & CLOTHING_MONKEY_VARIATION)) - icon_file = MONKEY_UNIFORM_FILE - else if((dna?.species.bodytype & BODYTYPE_DIGITIGRADE) && (uniform.supports_variations_flags & CLOTHING_DIGITIGRADE_VARIATION)) + if((dna?.species.bodytype & BODYTYPE_DIGITIGRADE) && (uniform.supports_variations_flags & CLOTHING_DIGITIGRADE_VARIATION)) icon_file = uniform.worn_icon_digitigrade || DIGITIGRADE_UNIFORM_FILE if(!(icon_exists(icon_file, RESOLVE_ICON_STATE(uniform)))) //if the digitigrade icon doesn't exist var/species_icon_file = dna.species.generate_custom_worn_icon(LOADOUT_ITEM_UNIFORM, uniform) if(species_icon_file) icon_file = species_icon_file //Female sprites have lower priority than digitigrade sprites - else if(dna.species.bodytype & BODYTYPE_CUSTOM) - icon_file = dna.species.generate_custom_worn_icon(LOADOUT_ITEM_UNIFORM, w_uniform) - else if(dna.species.visual_gender & dna.species.sexes && (dna.species.bodytype & BODYTYPE_HUMANOID) && physique == FEMALE && !(uniform.female_sprite_flags & NO_FEMALE_UNIFORM)) //Agggggggghhhhh woman = TRUE @@ -801,9 +796,6 @@ generate/load female uniform sprites matching all previously decided variables .[2] = offsets["y"] else .[2] = worn_y_offset - if(ishuman(loc) && slot_flags != ITEM_SLOT_FEET) /// we adjust the human body for high given by body parts, execpt shoes, because they are always on the bottom - var/mob/living/carbon/human/human_holder = loc - .[2] += human_holder.get_top_offset() //Can't think of a better way to do this, sadly /mob/proc/get_item_offsets_for_index(i) @@ -835,7 +827,7 @@ generate/load female uniform sprites matching all previously decided variables if(!dna?.species) return - var/obj/item/bodypart/HD = get_bodypart("head") + var/obj/item/bodypart/HD = get_bodypart(BODY_ZONE_HEAD) if(!istype(HD)) return @@ -850,7 +842,7 @@ generate/load female uniform sprites matching all previously decided variables if(HD && !(HAS_TRAIT(src, TRAIT_HUSK))) // lipstick if(lip_style && (LIPS in dna.species.species_traits)) - var/mutable_appearance/lip_overlay = mutable_appearance('icons/mob/species/human/human_face.dmi', "lips_[lip_style]", -FACE_LAYER) + var/mutable_appearance/lip_overlay = mutable_appearance('icons/mob/species/human/human_face.dmi', "lips_[lip_style]", -BODY_LAYER) lip_overlay.color = lip_color if(OFFSET_FACE in dna.species.offset_features) lip_overlay.pixel_x += dna.species.offset_features[OFFSET_FACE][1] @@ -863,7 +855,7 @@ generate/load female uniform sprites matching all previously decided variables if(parent_eyes) add_overlay(parent_eyes.generate_body_overlay(src)) else - var/mutable_appearance/missing_eyes = mutable_appearance('icons/mob/species/human/human_face.dmi', "eyes_missing", -FACE_LAYER) + var/mutable_appearance/missing_eyes = mutable_appearance('icons/mob/species/human/human_face.dmi', "eyes_missing", -BODY_LAYER) if(OFFSET_FACE in dna.species.offset_features) missing_eyes.pixel_x += dna.species.offset_features[OFFSET_FACE][1] missing_eyes.pixel_y += dna.species.offset_features[OFFSET_FACE][2] @@ -921,11 +913,26 @@ generate/load female uniform sprites matching all previously decided variables /** * Applies a filter to an appearance according to mob height */ -/mob/living/carbon/human/proc/apply_height_filters(image/appearance) - var/static/icon/cut_torso_mask = icon('icons/effects/cut.dmi', "Cut1") - var/static/icon/cut_legs_mask = icon('icons/effects/cut.dmi', "Cut2") - var/static/icon/lenghten_torso_mask = icon('icons/effects/cut.dmi', "Cut3") - var/static/icon/lenghten_legs_mask = icon('icons/effects/cut.dmi', "Cut4") +/mob/living/carbon/human/proc/apply_height_filters(image/appearance, only_apply_in_prefs = FALSE) +//MONKESTATION EDIT START : Pick a displacement mask depending on the height of the icon, 32x48 icons are used for features which would otherwise get clipped when tall players use them + var/dims = get_icon_dimensions(appearance.icon) + var/icon_width = dims["width"] + var/icon_height = dims["height"] + + var/mask_icon = 'icons/effects/cut.dmi' + if(icon_width != 0 && icon_height != 0) + if(icon_width != 32) + throw EXCEPTION("Bad dimensions ([icon_width]x[icon_height]) for icon '[appearance.icon]'") + if(icon_height == 48) + mask_icon = 'monkestation/icons/effects/cut_32x48.dmi' + else if(icon_height != 32) + throw EXCEPTION("Bad dimensions ([icon_width]x[icon_height]) for icon '[appearance.icon]'") + + var/icon/cut_torso_mask = icon(mask_icon, "Cut1") + var/icon/cut_legs_mask = icon(mask_icon, "Cut2") + var/icon/lenghten_torso_mask = icon(mask_icon, "Cut3") + var/icon/lenghten_legs_mask = icon(mask_icon, "Cut4") +//MONKESTATION EDIT END appearance.remove_filter(list( "Cut_Torso", @@ -934,23 +941,97 @@ generate/load female uniform sprites matching all previously decided variables "Lenghten_Torso", "Gnome_Cut_Torso", "Gnome_Cut_Legs", + "Monkey_Torso", + "Monkey_Legs", + "Monkey_Gnome_Cut_Torso", + "Monkey_Gnome_Cut_Legs", )) switch(get_mob_height()) // Don't set this one directly, use TRAIT_DWARF + if(MONKEY_HEIGHT_DWARF) + appearance.add_filters(list( + list( + "name" = "Monkey_Gnome_Cut_Torso", + "priority" = 1, + "params" = displacement_map_filter(cut_torso_mask, x = 0, y = 0, size = 3), + ), + list( + "name" = "Monkey_Gnome_Cut_Legs", + "priority" = 1, + "params" = displacement_map_filter(cut_legs_mask, x = 0, y = 0, size = 4), + ), + )) + if(MONKEY_HEIGHT_MEDIUM) + appearance.add_filters(list( + list( + "name" = "Monkey_Torso", + "priority" = 1, + "params" = displacement_map_filter(cut_torso_mask, x = 0, y = 0, size = 2), + ), + list( + "name" = "Monkey_Legs", + "priority" = 1, + "params" = displacement_map_filter(cut_legs_mask, x = 0, y = 0, size = 4), + ), + )) + // Don't set this one directly, use TRAIT_DWARF if(HUMAN_HEIGHT_DWARF) - appearance.add_filter("Gnome_Cut_Torso", 1, displacement_map_filter(cut_torso_mask, x = 0, y = 0, size = 2)) - appearance.add_filter("Gnome_Cut_Legs", 1, displacement_map_filter(cut_legs_mask, x = 0, y = 0, size = 3)) + appearance.add_filters(list( + list( + "name" = "Gnome_Cut_Torso", + "priority" = 1, + "params" = displacement_map_filter(cut_torso_mask, x = 0, y = 0, size = 2), + ), + list( + "name" = "Gnome_Cut_Legs", + "priority" = 1, + "params" = displacement_map_filter(cut_legs_mask, x = 0, y = 0, size = 3), + ), + )) if(HUMAN_HEIGHT_SHORTEST) - appearance.add_filter("Cut_Torso", 1, displacement_map_filter(cut_torso_mask, x = 0, y = 0, size = 1)) - appearance.add_filter("Cut_Legs", 1, displacement_map_filter(cut_legs_mask, x = 0, y = 0, size = 1)) + appearance.add_filters(list( + list( + "name" = "Cut_Torso", + "priority" = 1, + "params" = displacement_map_filter(cut_torso_mask, x = 0, y = 0, size = 1), + ), + list( + "name" = "Cut_Legs", + "priority" = 1, + "params" = displacement_map_filter(cut_legs_mask, x = 0, y = 0, size = 1), + ), + )) if(HUMAN_HEIGHT_SHORT) appearance.add_filter("Cut_Legs", 1, displacement_map_filter(cut_legs_mask, x = 0, y = 0, size = 1)) if(HUMAN_HEIGHT_TALL) appearance.add_filter("Lenghten_Legs", 1, displacement_map_filter(lenghten_legs_mask, x = 0, y = 0, size = 1)) + if(HUMAN_HEIGHT_TALLER) + appearance.add_filters(list( + list( + "name" = "Lenghten_Torso", + "priority" = 1, + "params" = displacement_map_filter(lenghten_torso_mask, x = 0, y = 0, size = 1), + ), + list( + "name" = "Lenghten_Legs", + "priority" = 1, + "params" = displacement_map_filter(lenghten_legs_mask, x = 0, y = 0, size = 1), + ), + )) if(HUMAN_HEIGHT_TALLEST) - appearance.add_filter("Lenghten_Torso", 1, displacement_map_filter(lenghten_torso_mask, x = 0, y = 0, size = 1)) - appearance.add_filter("Lenghten_Legs", 1, displacement_map_filter(lenghten_legs_mask, x = 0, y = 0, size = 1)) + appearance.add_filters(list( + list( + "name" = "Lenghten_Torso", + "priority" = 1, + "params" = displacement_map_filter(lenghten_torso_mask, x = 0, y = 0, size = 1), + ), + list( + "name" = "Lenghten_Legs", + "priority" = 1, + "params" = displacement_map_filter(lenghten_legs_mask, x = 0, y = 0, size = 2), + ), + )) // Kinda gross but because many humans overlays do not use KEEP_TOGETHER we need to manually propogate the filter // Otherwise overlays, such as worn overlays on icons, won't have the filter "applied", and the effect kinda breaks diff --git a/code/modules/mob/living/carbon/human/init_signals.dm b/code/modules/mob/living/carbon/human/init_signals.dm index 50a9748c778d..6fa430037329 100644 --- a/code/modules/mob/living/carbon/human/init_signals.dm +++ b/code/modules/mob/living/carbon/human/init_signals.dm @@ -19,9 +19,12 @@ // We need to regenerate everything for height regenerate_icons() - if(isdummy(src)) - apply_height_filters(src, TRUE) - // No more passtable for you, bub +/* //Non-Modular change - Remove passtable from dwarves. + if(HAS_TRAIT(src, TRAIT_DWARF)) + passtable_on(src, TRAIT_DWARF) + else + passtable_off(src, TRAIT_DWARF) +*/ /mob/living/carbon/human/proc/on_gain_giant_trait(datum/source) SIGNAL_HANDLER @@ -31,6 +34,8 @@ /mob/living/carbon/human/proc/on_lose_giant_trait(datum/source) SIGNAL_HANDLER - //We're leaving the size traits permanent until someone wants to separate the mutation from customization aspects - //src.update_transform(0.8) - //src.visible_message(span_danger("[src] suddenly shrinks!"), span_notice("Everything around you seems to grow..")) + + if(HAS_TRAIT(src, TRAIT_GIANT)) //They have the trait through another source, cancel out. + return + src.update_transform(0.8) + src.visible_message(span_danger("[src] suddenly shrinks!"), span_notice("Everything around you seems to grow..")) diff --git a/code/modules/mob/living/carbon/human/species_types/abominations.dm b/code/modules/mob/living/carbon/human/species_types/abominations.dm deleted file mode 100644 index a308f5c962e8..000000000000 --- a/code/modules/mob/living/carbon/human/species_types/abominations.dm +++ /dev/null @@ -1,43 +0,0 @@ -/// These won't appear normally in games, they are meant to for debuging the adjustment of limbs based on the height of a humans bodyparts. -/datum/species/human/tallboy - name = "\improper Tall Boy" - id = SPECIES_TALLBOY - bodypart_overrides = list( - BODY_ZONE_L_ARM = /obj/item/bodypart/arm/left, - BODY_ZONE_R_ARM = /obj/item/bodypart/arm/right, - BODY_ZONE_HEAD = /obj/item/bodypart/head, - BODY_ZONE_L_LEG = /obj/item/bodypart/leg/left/tallboy, - BODY_ZONE_R_LEG = /obj/item/bodypart/leg/right/tallboy, - BODY_ZONE_CHEST = /obj/item/bodypart/chest, - ) - -/datum/species/monkey/human_legged - id = SPECIES_MONKEY_HUMAN_LEGGED - bodypart_overrides = list( - BODY_ZONE_L_ARM = /obj/item/bodypart/arm/left/monkey, - BODY_ZONE_R_ARM = /obj/item/bodypart/arm/right/monkey, - BODY_ZONE_HEAD = /obj/item/bodypart/head/monkey, - BODY_ZONE_L_LEG = /obj/item/bodypart/leg/left, - BODY_ZONE_R_LEG = /obj/item/bodypart/leg/right, - BODY_ZONE_CHEST = /obj/item/bodypart/chest/monkey, - ) - -/datum/species/monkey/monkey_freak - id = SPECIES_MONKEY_FREAK - bodypart_overrides = list( - BODY_ZONE_L_ARM = /obj/item/bodypart/arm/left, - BODY_ZONE_R_ARM = /obj/item/bodypart/arm/right, - BODY_ZONE_HEAD = /obj/item/bodypart/head/monkey, - BODY_ZONE_L_LEG = /obj/item/bodypart/leg/left/monkey, - BODY_ZONE_R_LEG = /obj/item/bodypart/leg/right/monkey, - BODY_ZONE_CHEST = /obj/item/bodypart/chest, - ) - -/mob/living/carbon/human/species/monkey/humand_legged - race = /datum/species/monkey/human_legged - -/mob/living/carbon/human/species/monkey/monkey_freak - race = /datum/species/monkey/monkey_freak - -/mob/living/carbon/human/species/tallboy - race = /datum/species/human/tallboy diff --git a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm index 9140e6d16d87..310ab1749b11 100644 --- a/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm +++ b/code/modules/mob/living/carbon/human/species_types/lizardpeople.dm @@ -69,7 +69,6 @@ return randname - /datum/species/lizard/randomize_features(mob/living/carbon/human/human_mob) human_mob.dna.features["body_markings"] = pick(GLOB.body_markings_list) randomize_external_organs(human_mob) diff --git a/code/modules/mob/living/carbon/human/species_types/monkeys.dm b/code/modules/mob/living/carbon/human/species_types/monkeys.dm index 4cf01b8a4d79..06a09aadf3d9 100644 --- a/code/modules/mob/living/carbon/human/species_types/monkeys.dm +++ b/code/modules/mob/living/carbon/human/species_types/monkeys.dm @@ -5,7 +5,7 @@ id = SPECIES_MONKEY bodytype = BODYTYPE_ORGANIC | BODYTYPE_MONKEY external_organs = list( - /obj/item/organ/external/tail/simian = "Chimp" + /obj/item/organ/external/tail/monkey = "Monkey", ) mutanttongue = /obj/item/organ/internal/tongue/monkey mutantbrain = /obj/item/organ/internal/brain/primate @@ -20,6 +20,9 @@ TRAIT_GUN_NATURAL, TRAIT_VENTCRAWLER_NUDE, TRAIT_WEAK_SOUL, + //Non-Modular change: Gives Monkeys fur colors. + TRAIT_MUTANT_COLORS, + TRAIT_FUR_COLORS, ) no_equip_flags = ITEM_SLOT_OCLOTHING | ITEM_SLOT_GLOVES | ITEM_SLOT_FEET | ITEM_SLOT_SUITSTORE changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_PRIDE | MIRROR_MAGIC | ERT_SPAWN | SLIME_EXTRACT @@ -41,26 +44,38 @@ payday_modifier = 1.5 ai_controlled_species = TRUE + // NON-MODULAR CHANGES BELOW + //Makes hats appear 1 pixel above so the eyes are still visible, and brings belt items down 1 pixel so they fit on the chest. + offset_features = list( + OFFSET_HEAD = list(0,1), + OFFSET_BELT = list(0,-1), + ) + //Default eyes have the side portrait icons on the wrong side, this fixes that. + eyes_icon = 'monkestation/icons/mob/species/monkey/bodyparts.dmi' + ///Whether or not this monkey gets the innate effects of running over tables and the gene activated, used to exclude subtypes from getting it. + ///The reason we block the gene's activation is so you can't "deconvert" from being a monkey subtype. + var/give_monkey_species_effects = TRUE /datum/species/monkey/random_name(gender,unique,lastname) var/randname = "monkey ([rand(1,999)])" - return randname -/datum/species/monkey/on_species_gain(mob/living/carbon/human/H, datum/species/old_species) +/datum/species/monkey/on_species_gain(mob/living/carbon/human/human_who_gained_species, datum/species/old_species, pref_load) . = ..() - H.pass_flags |= PASSTABLE - H.butcher_results = knife_butcher_results - H.dna.add_mutation(/datum/mutation/human/race, MUT_NORMAL) - H.dna.activate_mutation(/datum/mutation/human/race) - + if(give_monkey_species_effects) + passtable_on(human_who_gained_species, SPECIES_TRAIT) + human_who_gained_species.dna.add_mutation(/datum/mutation/human/race, MUT_NORMAL) + human_who_gained_species.dna.activate_mutation(/datum/mutation/human/race) -/datum/species/monkey/on_species_loss(mob/living/carbon/C) +/datum/species/monkey/on_species_loss(mob/living/carbon/human/C) . = ..() - C.pass_flags = initial(C.pass_flags) - C.butcher_results = null - C.dna.remove_mutation(/datum/mutation/human/race) + if(give_monkey_species_effects) + passtable_off(C, SPECIES_TRAIT) + C.dna.remove_mutation(/datum/mutation/human/race) + +/datum/species/monkey/randomize_features(mob/living/carbon/human/human_mob) + randomize_external_organs(human_mob) /datum/species/monkey/spec_unarmedattack(mob/living/carbon/human/user, atom/target, modifiers) // If our hands are not blocked, dont try to bite them @@ -71,10 +86,9 @@ return TRUE return ..() - // this shouldn't even be possible, but I'm sure the check was here for a reason - if(!iscarbon(target)) - stack_trace("HEY LISTEN! We are performing a species spec_unarmed attack with a non-carbon user. How did you fuck this up?") - return TRUE + // calls parent if it's not attacking a mob, used for places like opening inventory while in crit. + if(!isliving(target)) + return ..() var/mob/living/carbon/victim = target if(user.is_muzzled()) return TRUE // cannot bite them if we're muzzled @@ -122,7 +136,8 @@ return TRUE /datum/species/monkey/check_roundstart_eligible() - if(check_holidays(MONKEYDAY)) + // Check ID specifically so all subtypes aren't eligible on Monkey day. + if(check_holidays(MONKEYDAY) && id == SPECIES_MONKEY) return TRUE return ..() diff --git a/code/modules/mob/living/carbon/human/species_types/zombies.dm b/code/modules/mob/living/carbon/human/species_types/zombies.dm index 26b7f81597ec..9b0fe7b38226 100644 --- a/code/modules/mob/living/carbon/human/species_types/zombies.dm +++ b/code/modules/mob/living/carbon/human/species_types/zombies.dm @@ -120,11 +120,23 @@ /datum/species/zombie/infectious/on_species_gain(mob/living/carbon/C, datum/species/old_species) . = ..() - C.AddComponent(/datum/component/mutant_hands, mutant_hand_path = /obj/item/mutant_hand/zombie) + C.AddComponent(/datum/component/mutant_hands, mutant_hand_path = hand_path) //monkestation edit: replaces the original mutant_hand_path with hand_path +//monkestation edit start + for(var/datum/action/granted_action as anything in granted_action_types) + granted_action = new granted_action + granted_action.Grant(C) + granted_actions += granted_action +//monkestation edit end /datum/species/zombie/infectious/on_species_loss(mob/living/carbon/human/C, datum/species/new_species, pref_load) . = ..() qdel(C.GetComponent(/datum/component/mutant_hands)) +//monkestation edit start + for(var/datum/action/removed_action in granted_actions) + granted_actions -= removed_action + removed_action.Remove(C) + qdel(removed_action) +//monkestation edit end /datum/species/zombie/infectious/check_roundstart_eligible() return FALSE diff --git a/code/modules/mob/living/carbon/life.dm b/code/modules/mob/living/carbon/life.dm index e5f43d825981..bc6d946ca869 100644 --- a/code/modules/mob/living/carbon/life.dm +++ b/code/modules/mob/living/carbon/life.dm @@ -54,6 +54,8 @@ // Start of a breath chain, calls [carbon/proc/breathe()] /mob/living/carbon/handle_breathing(seconds_per_tick, times_fired) if(HAS_TRAIT(src, TRAIT_NOBREATH)) + setOxyLoss(0) //idk how because spec life should cover this + losebreath = 0 return var/next_breath = 4 diff --git a/code/modules/mob/living/damage_procs.dm b/code/modules/mob/living/damage_procs.dm index 5e08fc7c9ba3..67821b54b701 100644 --- a/code/modules/mob/living/damage_procs.dm +++ b/code/modules/mob/living/damage_procs.dm @@ -268,8 +268,8 @@ if(immobilize) apply_effect(immobilize, EFFECT_IMMOBILIZE, blocked) - if(stamina) - apply_damage(stamina, STAMINA, null, blocked) + //if(stamina) //monkestation removal + // apply_damage(stamina, STAMINA, null, blocked) //IF THIS ISN'T AN EFFECT AND IS A DAMAGE TYPE WHY IS IT HERE? if(drowsy) adjust_drowsiness(drowsy) diff --git a/code/modules/mob/living/emote.dm b/code/modules/mob/living/emote.dm index 8b9a22f40a28..2debc27d52f5 100644 --- a/code/modules/mob/living/emote.dm +++ b/code/modules/mob/living/emote.dm @@ -280,16 +280,18 @@ return ..() && user.can_speak(allow_mimes = TRUE) // MonkeStation Edit Start -/datum/emote/living/laugh/get_sound(mob/living/carbon/human/user) - if(!istype(user)) - return - - // Alternative Laugh Hook - if(user.alternative_laughs.len) - return pick(user.alternative_laughs) +/datum/emote/living/laugh/get_sound(mob/living/user) + if(isbasicmob(user)) + var/mob/living/basic/mob = user + . = mob.get_laugh_sound() + if(ishuman(user)) + var/mob/living/carbon/human/human_user = user + // Alternative Laugh Hook + if(human_user.alternative_laughs.len) + return pick(human_user.alternative_laughs) - var/obj/item/organ/internal/tongue/tongue = user.get_organ_slot(ORGAN_SLOT_TONGUE) - return tongue?.get_laugh_sound(user) + var/obj/item/organ/internal/tongue/tongue = human_user.get_organ_slot(ORGAN_SLOT_TONGUE) + return tongue?.get_laugh_sound(human_user) // MonkeStation Edit End /datum/emote/living/look diff --git a/code/modules/mob/living/silicon/ai/vox_sounds.dm b/code/modules/mob/living/silicon/ai/vox_sounds.dm index ebf74f1a8fb2..2fad1fbadde1 100644 --- a/code/modules/mob/living/silicon/ai/vox_sounds.dm +++ b/code/modules/mob/living/silicon/ai/vox_sounds.dm @@ -7,971 +7,1299 @@ // For vim // :%s/\(\(.*\)\.ogg\)/"\2" = 'sound\/vox_fem\/\1',/g -GLOBAL_LIST_INIT(vox_sounds, list("abduction" = 'sound/vox_fem/abduction.ogg', -"abortions" = 'sound/vox_fem/abortions.ogg', -"above" = 'sound/vox_fem/above.ogg', -"abstain" = 'sound/vox_fem/abstain.ogg', -"accelerating" = 'sound/vox_fem/accelerating.ogg', -"accelerator" = 'sound/vox_fem/accelerator.ogg', -"accepted" = 'sound/vox_fem/accepted.ogg', -"access" = 'sound/vox_fem/access.ogg', -"acknowledged" = 'sound/vox_fem/acknowledged.ogg', -"acknowledge" = 'sound/vox_fem/acknowledge.ogg', -"acquired" = 'sound/vox_fem/acquired.ogg', -"acquisition" = 'sound/vox_fem/acquisition.ogg', -"across" = 'sound/vox_fem/across.ogg', -"activated" = 'sound/vox_fem/activated.ogg', -"activate" = 'sound/vox_fem/activate.ogg', -"activity" = 'sound/vox_fem/activity.ogg', -"adios" = 'sound/vox_fem/adios.ogg', -"administration" = 'sound/vox_fem/administration.ogg', -"advanced" = 'sound/vox_fem/advanced.ogg', -"advised" = 'sound/vox_fem/advised.ogg', -"after" = 'sound/vox_fem/after.ogg', -"aft" = 'sound/vox_fem/aft.ogg', -"agent" = 'sound/vox_fem/agent.ogg', -"ai" = 'sound/vox_fem/ai.ogg', -"airlock" = 'sound/vox_fem/airlock.ogg', -"air" = 'sound/vox_fem/air.ogg', -"alarm" = 'sound/vox_fem/alarm.ogg', -"alert" = 'sound/vox_fem/alert.ogg', -"alien" = 'sound/vox_fem/alien.ogg', -"aligned" = 'sound/vox_fem/aligned.ogg', -"all" = 'sound/vox_fem/all.ogg', -"alpha" = 'sound/vox_fem/alpha.ogg', -"also" = 'sound/vox_fem/also.ogg', -"amigo" = 'sound/vox_fem/amigo.ogg', -"ammunition" = 'sound/vox_fem/ammunition.ogg', -"am" = 'sound/vox_fem/am.ogg', -"and" = 'sound/vox_fem/and.ogg', -"animal" = 'sound/vox_fem/animal.ogg', -"announcement" = 'sound/vox_fem/announcement.ogg', -"an" = 'sound/vox_fem/an.ogg', -"anomalous" = 'sound/vox_fem/anomalous.ogg', -"answer" = 'sound/vox_fem/answer.ogg', -"antenna" = 'sound/vox_fem/antenna.ogg', -"any" = 'sound/vox_fem/any.ogg', -"a" = 'sound/vox_fem/a.ogg', -"apc" = 'sound/vox_fem/apc.ogg', -"apprehend" = 'sound/vox_fem/apprehend.ogg', -"approach" = 'sound/vox_fem/approach.ogg', -"area" = 'sound/vox_fem/area.ogg', -"are" = 'sound/vox_fem/are.ogg', -"armed" = 'sound/vox_fem/armed.ogg', -"arm" = 'sound/vox_fem/arm.ogg', -"armor" = 'sound/vox_fem/armor.ogg', -"armory" = 'sound/vox_fem/armory.ogg', -"array" = 'sound/vox_fem/array.ogg', -"arrest" = 'sound/vox_fem/arrest.ogg', -"asimov" = 'sound/vox_fem/asimov.ogg', -"asshole" = 'sound/vox_fem/asshole.ogg', -"assholes" = 'sound/vox_fem/assholes.ogg', -"assistance" = 'sound/vox_fem/assistance.ogg', -"assistant" = 'sound/vox_fem/assistant.ogg', -"ass" = 'sound/vox_fem/ass.ogg', -"atmosphere" = 'sound/vox_fem/atmosphere.ogg', -"atmospheric" = 'sound/vox_fem/atmospheric.ogg', -"atmospherics" = 'sound/vox_fem/atmospherics.ogg', -"at" = 'sound/vox_fem/at.ogg', -"atomic" = 'sound/vox_fem/atomic.ogg', -"attention" = 'sound/vox_fem/attention.ogg', -"authentication" = 'sound/vox_fem/authentication.ogg', -"authorized" = 'sound/vox_fem/authorized.ogg', -"authorize" = 'sound/vox_fem/authorize.ogg', -"automatic" = 'sound/vox_fem/automatic.ogg', -"away" = 'sound/vox_fem/away.ogg', -"awful" = 'sound/vox_fem/awful.ogg', -"backman" = 'sound/vox_fem/backman.ogg', -"back" = 'sound/vox_fem/back.ogg', -"bad" = 'sound/vox_fem/bad.ogg', -"bag" = 'sound/vox_fem/bag.ogg', -"bailey" = 'sound/vox_fem/bailey.ogg', -"bar" = 'sound/vox_fem/bar.ogg', -"barracks" = 'sound/vox_fem/barracks.ogg', -"bartender" = 'sound/vox_fem/bartender.ogg', -"base" = 'sound/vox_fem/base.ogg', -"bay" = 'sound/vox_fem/bay.ogg', -"beam" = 'sound/vox_fem/beam.ogg', -"been" = 'sound/vox_fem/been.ogg', -"beep" = 'sound/vox_fem/beep.ogg', -"before" = 'sound/vox_fem/before.ogg', -"below" = 'sound/vox_fem/below.ogg', -"be" = 'sound/vox_fem/be.ogg', -"beside" = 'sound/vox_fem/beside.ogg', -"beware" = 'sound/vox_fem/beware.ogg', -"beyond" = 'sound/vox_fem/beyond.ogg', -"biohazard" = 'sound/vox_fem/biohazard.ogg', -"biological" = 'sound/vox_fem/biological.ogg', -"birdwell" = 'sound/vox_fem/birdwell.ogg', -"bitches" = 'sound/vox_fem/bitches.ogg', -"bitch" = 'sound/vox_fem/bitch.ogg', -"bitcoin" = 'sound/vox_fem/bitcoin.ogg', -"black" = 'sound/vox_fem/black.ogg', -"blast" = 'sound/vox_fem/blast.ogg', -"bleed" = 'sound/vox_fem/bleed.ogg', -"blob" = 'sound/vox_fem/blob.ogg', -"blocked" = 'sound/vox_fem/blocked.ogg', -"blood" = 'sound/vox_fem/blood.ogg', -"bloop" = 'sound/vox_fem/bloop.ogg', -"blue" = 'sound/vox_fem/blue.ogg', -"b" = 'sound/vox_fem/b.ogg', -"bomb" = 'sound/vox_fem/bomb.ogg', -"bone" = 'sound/vox_fem/bone.ogg', -"botanist" = 'sound/vox_fem/botanist.ogg', -"botany" = 'sound/vox_fem/botany.ogg', -"bottom" = 'sound/vox_fem/bottom.ogg', -"bravo" = 'sound/vox_fem/bravo.ogg', -"breached" = 'sound/vox_fem/breached.ogg', -"breach" = 'sound/vox_fem/breach.ogg', -"break" = 'sound/vox_fem/break.ogg', -"bridge" = 'sound/vox_fem/bridge.ogg', -"brig" = 'sound/vox_fem/brig.ogg', -"bust" = 'sound/vox_fem/bust.ogg', -"but" = 'sound/vox_fem/but.ogg', -"button" = 'sound/vox_fem/button.ogg', -"bypass" = 'sound/vox_fem/bypass.ogg', -"cable" = 'sound/vox_fem/cable.ogg', -"called" = 'sound/vox_fem/called.ogg', -"call" = 'sound/vox_fem/call.ogg', -"canal" = 'sound/vox_fem/canal.ogg', -"canister" = 'sound/vox_fem/canister.ogg', -"cap" = 'sound/vox_fem/cap.ogg', -"captain" = 'sound/vox_fem/captain.ogg', -"capture" = 'sound/vox_fem/capture.ogg', -"carbon" = 'sound/vox_fem/carbon.ogg', -"cargo" = 'sound/vox_fem/cargo.ogg', -"cat" = 'sound/vox_fem/cat.ogg', -"cease" = 'sound/vox_fem/cease.ogg', -"ceiling" = 'sound/vox_fem/ceiling.ogg', -"celsius" = 'sound/vox_fem/celsius.ogg', -"centcom" = 'sound/vox_fem/centcom.ogg', -"center" = 'sound/vox_fem/center.ogg', -"centi" = 'sound/vox_fem/centi.ogg', -"central" = 'sound/vox_fem/central.ogg', -"ce" = 'sound/vox_fem/ce.ogg', -"challenge" = 'sound/vox_fem/challenge.ogg', -"chamber" = 'sound/vox_fem/chamber.ogg', -"changed" = 'sound/vox_fem/changed.ogg', -"changeling" = 'sound/vox_fem/changeling.ogg', -"change" = 'sound/vox_fem/change.ogg', -"chapel" = 'sound/vox_fem/chapel.ogg', -"chaplain" = 'sound/vox_fem/chaplain.ogg', -"charlie" = 'sound/vox_fem/charlie.ogg', -"check" = 'sound/vox_fem/check.ogg', -"checkpoint" = 'sound/vox_fem/checkpoint.ogg', -"chemical" = 'sound/vox_fem/chemical.ogg', -"chemist" = 'sound/vox_fem/chemist.ogg', -"chief" = 'sound/vox_fem/chief.ogg', -"christ" = 'sound/vox_fem/christ.ogg', -"chuckle" = 'sound/vox_fem/chuckle.ogg', -"circuit" = 'sound/vox_fem/circuit.ogg', -"cleanup" = 'sound/vox_fem/cleanup.ogg', -"clearance" = 'sound/vox_fem/clearance.ogg', -"clear" = 'sound/vox_fem/clear.ogg', -"clockwork" = 'sound/vox_fem/clockwork.ogg', -"close" = 'sound/vox_fem/close.ogg', -"clowning" = 'sound/vox_fem/clowning.ogg', -"clown" = 'sound/vox_fem/clown.ogg', -"cmo" = 'sound/vox_fem/cmo.ogg', -"coded" = 'sound/vox_fem/coded.ogg', -"code" = 'sound/vox_fem/code.ogg', -"c" = 'sound/vox_fem/c.ogg', -"cold" = 'sound/vox_fem/cold.ogg', -"collider" = 'sound/vox_fem/collider.ogg', -"come" = 'sound/vox_fem/come.ogg', -"command" = 'sound/vox_fem/command.ogg', -"communication" = 'sound/vox_fem/communication.ogg', -"complex" = 'sound/vox_fem/complex.ogg', -"comply" = 'sound/vox_fem/comply.ogg', -"computer" = 'sound/vox_fem/computer.ogg', -"condition" = 'sound/vox_fem/condition.ogg', -"condom" = 'sound/vox_fem/condom.ogg', -"confirmed" = 'sound/vox_fem/confirmed.ogg', -"connor" = 'sound/vox_fem/connor.ogg', -"console2" = 'sound/vox_fem/console2.ogg', -"console" = 'sound/vox_fem/console.ogg', -"construct" = 'sound/vox_fem/construct.ogg', -"containment" = 'sound/vox_fem/containment.ogg', -"contamination" = 'sound/vox_fem/contamination.ogg', -"contraband" = 'sound/vox_fem/contraband.ogg', -"control" = 'sound/vox_fem/control.ogg', -"cook" = 'sound/vox_fem/cook.ogg', -"coolant" = 'sound/vox_fem/coolant.ogg', -"coomer" = 'sound/vox_fem/coomer.ogg', -"core" = 'sound/vox_fem/core.ogg', -"corgi" = 'sound/vox_fem/corgi.ogg', -"corporation" = 'sound/vox_fem/corporation.ogg', -"correct" = 'sound/vox_fem/correct.ogg', -"corridor" = 'sound/vox_fem/corridor.ogg', -"corridors" = 'sound/vox_fem/corridors.ogg', -"coward" = 'sound/vox_fem/coward.ogg', -"cowards" = 'sound/vox_fem/cowards.ogg', -"crate" = 'sound/vox_fem/crate.ogg', -"created" = 'sound/vox_fem/created.ogg', -"creature" = 'sound/vox_fem/creature.ogg', -"crew" = 'sound/vox_fem/crew.ogg', -"critical" = 'sound/vox_fem/critical.ogg', -"cross" = 'sound/vox_fem/cross.ogg', -"cryogenic" = 'sound/vox_fem/cryogenic.ogg', -"crystal" = 'sound/vox_fem/crystal.ogg', -"cultist" = 'sound/vox_fem/cultist.ogg', -"cult" = 'sound/vox_fem/cult.ogg', -"curator" = 'sound/vox_fem/curator.ogg', -"cyborg" = 'sound/vox_fem/cyborg.ogg', -"cyborgs" = 'sound/vox_fem/cyborgs.ogg', -"damaged" = 'sound/vox_fem/damaged.ogg', -"damage" = 'sound/vox_fem/damage.ogg', -"danger" = 'sound/vox_fem/danger.ogg', -"dangerous" = 'sound/vox_fem/dangerous.ogg', -"day" = 'sound/vox_fem/day.ogg', -"deactivated" = 'sound/vox_fem/deactivated.ogg', -"dead" = 'sound/vox_fem/dead.ogg', -"death" = 'sound/vox_fem/death.ogg', -"decompression" = 'sound/vox_fem/decompression.ogg', -"decontamination" = 'sound/vox_fem/decontamination.ogg', -"deeoo" = 'sound/vox_fem/deeoo.ogg', -"defense" = 'sound/vox_fem/defense.ogg', -"degrees" = 'sound/vox_fem/degrees.ogg', -"delta" = 'sound/vox_fem/delta.ogg', -"demon" = 'sound/vox_fem/demon.ogg', -"denied" = 'sound/vox_fem/denied.ogg', -"departures" = 'sound/vox_fem/departures.ogg', -"deployed" = 'sound/vox_fem/deployed.ogg', -"deploy" = 'sound/vox_fem/deploy.ogg', -"desire" = 'sound/vox_fem/desire.ogg', -"desist" = 'sound/vox_fem/desist.ogg', -"destroyed" = 'sound/vox_fem/destroyed.ogg', -"destroy" = 'sound/vox_fem/destroy.ogg', -"destruction" = 'sound/vox_fem/destruction.ogg', -"detain" = 'sound/vox_fem/detain.ogg', -"detected" = 'sound/vox_fem/detected.ogg', -"detective" = 'sound/vox_fem/detective.ogg', -"detonation" = 'sound/vox_fem/detonation.ogg', -"device" = 'sound/vox_fem/device.ogg', -"devil" = 'sound/vox_fem/devil.ogg', -"did" = 'sound/vox_fem/did.ogg', -"die" = 'sound/vox_fem/die.ogg', -"dimensional" = 'sound/vox_fem/dimensional.ogg', -"dioxide" = 'sound/vox_fem/dioxide.ogg', -"director" = 'sound/vox_fem/director.ogg', -"dirt" = 'sound/vox_fem/dirt.ogg', -"disabled" = 'sound/vox_fem/disabled.ogg', -"disease" = 'sound/vox_fem/disease.ogg', -"disengaged" = 'sound/vox_fem/disengaged.ogg', -"dish" = 'sound/vox_fem/dish.ogg', -"disk" = 'sound/vox_fem/disk.ogg', -"disposal" = 'sound/vox_fem/disposal.ogg', -"distance" = 'sound/vox_fem/distance.ogg', -"distortion" = 'sound/vox_fem/distortion.ogg', -"doctor" = 'sound/vox_fem/doctor.ogg', -"d" = 'sound/vox_fem/d.ogg', -"dog" = 'sound/vox_fem/dog.ogg', -"do" = 'sound/vox_fem/do.ogg', -"doomsday" = 'sound/vox_fem/doomsday.ogg', -"doop" = 'sound/vox_fem/doop.ogg', -"door" = 'sound/vox_fem/door.ogg', -"dormitory" = 'sound/vox_fem/dormitory.ogg', -"dot" = 'sound/vox_fem/dot.ogg', -"down" = 'sound/vox_fem/down.ogg', -"drone" = 'sound/vox_fem/drone.ogg', -"dual" = 'sound/vox_fem/dual.ogg', -"duct" = 'sound/vox_fem/duct.ogg', -"east" = 'sound/vox_fem/east.ogg', -"echo" = 'sound/vox_fem/echo.ogg', -"ed" = 'sound/vox_fem/ed.ogg', -"effect" = 'sound/vox_fem/effect.ogg', -"egress" = 'sound/vox_fem/egress.ogg', -"eighteen" = 'sound/vox_fem/eighteen.ogg', -"eight" = 'sound/vox_fem/eight.ogg', -"eighty" = 'sound/vox_fem/eighty.ogg', -"electric" = 'sound/vox_fem/electric.ogg', -"electromagnetic" = 'sound/vox_fem/electromagnetic.ogg', -"elevator" = 'sound/vox_fem/elevator.ogg', -"eleven" = 'sound/vox_fem/eleven.ogg', -"eliminate" = 'sound/vox_fem/eliminate.ogg', -"emergency" = 'sound/vox_fem/emergency.ogg', -"enabled" = 'sound/vox_fem/enabled.ogg', -"energy" = 'sound/vox_fem/energy.ogg', -"engaged" = 'sound/vox_fem/engaged.ogg', -"engage" = 'sound/vox_fem/engage.ogg', -"engineering" = 'sound/vox_fem/engineering.ogg', -"engineer" = 'sound/vox_fem/engineer.ogg', -"engine" = 'sound/vox_fem/engine.ogg', -"enter" = 'sound/vox_fem/enter.ogg', -"entity" = 'sound/vox_fem/entity.ogg', -"entry" = 'sound/vox_fem/entry.ogg', -"environment" = 'sound/vox_fem/environment.ogg', -"e" = 'sound/vox_fem/e.ogg', -"epic" = 'sound/vox_fem/epic.ogg', -"equipment" = 'sound/vox_fem/equipment.ogg', -"error" = 'sound/vox_fem/error.ogg', -"escape" = 'sound/vox_fem/escape.ogg', -"evacuate" = 'sound/vox_fem/evacuate.ogg', -"eva" = 'sound/vox_fem/eva.ogg', -"exchange" = 'sound/vox_fem/exchange.ogg', -"exit" = 'sound/vox_fem/exit.ogg', -"expect" = 'sound/vox_fem/expect.ogg', -"experimental" = 'sound/vox_fem/experimental.ogg', -"experiment" = 'sound/vox_fem/experiment.ogg', -"explode" = 'sound/vox_fem/explode.ogg', -"explosion" = 'sound/vox_fem/explosion.ogg', -"explosive" = 'sound/vox_fem/explosive.ogg', -"exposure" = 'sound/vox_fem/exposure.ogg', -"exterminate" = 'sound/vox_fem/exterminate.ogg', -"extinguisher" = 'sound/vox_fem/extinguisher.ogg', -"extinguish" = 'sound/vox_fem/extinguish.ogg', -"extreme" = 'sound/vox_fem/extreme.ogg', -"facility" = 'sound/vox_fem/facility.ogg', -"factory" = 'sound/vox_fem/factory.ogg', -"fahrenheit" = 'sound/vox_fem/fahrenheit.ogg', -"failed" = 'sound/vox_fem/failed.ogg', -"failure" = 'sound/vox_fem/failure.ogg', -"false" = 'sound/vox_fem/false.ogg', -"farthest" = 'sound/vox_fem/farthest.ogg', -"fast" = 'sound/vox_fem/fast.ogg', -"fauna" = 'sound/vox_fem/fauna.ogg', -"feet" = 'sound/vox_fem/feet.ogg', -"field" = 'sound/vox_fem/field.ogg', -"fifteen" = 'sound/vox_fem/fifteen.ogg', -"fifth" = 'sound/vox_fem/fifth.ogg', -"fifty" = 'sound/vox_fem/fifty.ogg', -"final" = 'sound/vox_fem/final.ogg', -"fine" = 'sound/vox_fem/fine.ogg', -"fire" = 'sound/vox_fem/fire.ogg', -"first" = 'sound/vox_fem/first.ogg', -"five" = 'sound/vox_fem/five.ogg', -"fix" = 'sound/vox_fem/fix.ogg', -"flooding" = 'sound/vox_fem/flooding.ogg', -"floor" = 'sound/vox_fem/floor.ogg', -"flyman" = 'sound/vox_fem/flyman.ogg', -"f" = 'sound/vox_fem/f.ogg', -"fool" = 'sound/vox_fem/fool.ogg', -"forbidden" = 'sound/vox_fem/forbidden.ogg', -"force" = 'sound/vox_fem/force.ogg', -"fore" = 'sound/vox_fem/fore.ogg', -"formed" = 'sound/vox_fem/formed.ogg', -"form" = 'sound/vox_fem/form.ogg', -"forms" = 'sound/vox_fem/forms.ogg', -"for" = 'sound/vox_fem/for.ogg', -"found" = 'sound/vox_fem/found.ogg', -"four" = 'sound/vox_fem/four.ogg', -"fourteen" = 'sound/vox_fem/fourteen.ogg', -"fourth" = 'sound/vox_fem/fourth.ogg', -"fourty" = 'sound/vox_fem/fourty.ogg', -"foxtrot" = 'sound/vox_fem/foxtrot.ogg', -"freeman" = 'sound/vox_fem/freeman.ogg', -"free" = 'sound/vox_fem/free.ogg', -"freezer" = 'sound/vox_fem/freezer.ogg', -"freezing" = 'sound/vox_fem/freezing.ogg', -"from" = 'sound/vox_fem/from.ogg', -"front" = 'sound/vox_fem/front.ogg', -"fucking" = 'sound/vox_fem/fucking.ogg', -"fuck" = 'sound/vox_fem/fuck.ogg', -"fucks" = 'sound/vox_fem/fucks.ogg', -"fuel" = 'sound/vox_fem/fuel.ogg', -"gas" = 'sound/vox_fem/gas.ogg', -"generator" = 'sound/vox_fem/generator.ogg', -"geneticist" = 'sound/vox_fem/geneticist.ogg', -"get" = 'sound/vox_fem/get.ogg', -"glory" = 'sound/vox_fem/glory.ogg', -"god" = 'sound/vox_fem/god.ogg', -"g" = 'sound/vox_fem/g.ogg', -"going" = 'sound/vox_fem/going.ogg', -"golem" = 'sound/vox_fem/golem.ogg', -"goodbye" = 'sound/vox_fem/goodbye.ogg', -"good" = 'sound/vox_fem/good.ogg', -"go" = 'sound/vox_fem/go.ogg', -"gordon" = 'sound/vox_fem/gordon.ogg', -"got" = 'sound/vox_fem/got.ogg', -"government" = 'sound/vox_fem/government.ogg', -"granted" = 'sound/vox_fem/granted.ogg', -"gravity" = 'sound/vox_fem/gravity.ogg', -"gray" = 'sound/vox_fem/gray.ogg', -"great" = 'sound/vox_fem/great.ogg', -"green" = 'sound/vox_fem/green.ogg', -"grenade" = 'sound/vox_fem/grenade.ogg', -"guard" = 'sound/vox_fem/guard.ogg', -"gulf" = 'sound/vox_fem/gulf.ogg', -"gun" = 'sound/vox_fem/gun.ogg', -"guthrie" = 'sound/vox_fem/guthrie.ogg', -"hacker" = 'sound/vox_fem/hacker.ogg', -"hackers" = 'sound/vox_fem/hackers.ogg', -"hall" = 'sound/vox_fem/hall.ogg', -"hallway" = 'sound/vox_fem/hallway.ogg', -"handling" = 'sound/vox_fem/handling.ogg', -"hangar" = 'sound/vox_fem/hangar.ogg', -"harmful" = 'sound/vox_fem/harmful.ogg', -"harm" = 'sound/vox_fem/harm.ogg', -"has" = 'sound/vox_fem/has.ogg', -"have" = 'sound/vox_fem/have.ogg', -"hazard" = 'sound/vox_fem/hazard.ogg', -"head" = 'sound/vox_fem/head.ogg', -"health" = 'sound/vox_fem/health.ogg', -"heat" = 'sound/vox_fem/heat.ogg', -"helicopter" = 'sound/vox_fem/helicopter.ogg', -"helium" = 'sound/vox_fem/helium.ogg', -"hello" = 'sound/vox_fem/hello.ogg', -"help" = 'sound/vox_fem/help.ogg', -"he" = 'sound/vox_fem/he.ogg', -"here" = 'sound/vox_fem/here.ogg', -"hide" = 'sound/vox_fem/hide.ogg', -"highest" = 'sound/vox_fem/highest.ogg', -"high" = 'sound/vox_fem/high.ogg', -"hit" = 'sound/vox_fem/hit.ogg', -"h" = 'sound/vox_fem/h.ogg', -"hole" = 'sound/vox_fem/hole.ogg', -"honk" = 'sound/vox_fem/honk.ogg', -"hop" = 'sound/vox_fem/hop.ogg', -"hos" = 'sound/vox_fem/hos.ogg', -"hostile" = 'sound/vox_fem/hostile.ogg', -"hotel" = 'sound/vox_fem/hotel.ogg', -"hot" = 'sound/vox_fem/hot.ogg', -"hour" = 'sound/vox_fem/hour.ogg', -"hours" = 'sound/vox_fem/hours.ogg', -"how" = 'sound/vox_fem/how.ogg', -"human" = 'sound/vox_fem/human.ogg', -"humanoid" = 'sound/vox_fem/humanoid.ogg', -"humans" = 'sound/vox_fem/humans.ogg', -"hundred" = 'sound/vox_fem/hundred.ogg', -"hunger" = 'sound/vox_fem/hunger.ogg', -"hurt" = 'sound/vox_fem/hurt.ogg', -"hydro" = 'sound/vox_fem/hydro.ogg', -"hydroponics" = 'sound/vox_fem/hydroponics.ogg', -"ian" = 'sound/vox_fem/ian.ogg', -"idiot" = 'sound/vox_fem/idiot.ogg', -"if2" = 'sound/vox_fem/if2.ogg', -"if" = 'sound/vox_fem/if.ogg', -"illegal" = 'sound/vox_fem/illegal.ogg', -"immediately" = 'sound/vox_fem/immediately.ogg', -"immediate" = 'sound/vox_fem/immediate.ogg', -"immortal" = 'sound/vox_fem/immortal.ogg', -"impossible" = 'sound/vox_fem/impossible.ogg', -"inches" = 'sound/vox_fem/inches.ogg', -"india" = 'sound/vox_fem/india.ogg', -"ing" = 'sound/vox_fem/ing.ogg', -"in" = 'sound/vox_fem/in.ogg', -"inoperative" = 'sound/vox_fem/inoperative.ogg', -"inside" = 'sound/vox_fem/inside.ogg', -"inspection" = 'sound/vox_fem/inspection.ogg', -"inspector" = 'sound/vox_fem/inspector.ogg', -"interchange" = 'sound/vox_fem/interchange.ogg', -"internals" = 'sound/vox_fem/internals.ogg', -"intruder" = 'sound/vox_fem/intruder.ogg', -"invalid" = 'sound/vox_fem/invalid.ogg', -"invasion" = 'sound/vox_fem/invasion.ogg', -"i" = 'sound/vox_fem/i.ogg', -"is" = 'sound/vox_fem/is.ogg', -"it" = 'sound/vox_fem/it.ogg', -"janitor" = 'sound/vox_fem/janitor.ogg', -"jesus" = 'sound/vox_fem/jesus.ogg', -"j" = 'sound/vox_fem/j.ogg', -"johnson" = 'sound/vox_fem/johnson.ogg', -"juliet" = 'sound/vox_fem/juliet.ogg', -"key" = 'sound/vox_fem/key.ogg', -"kidnapped" = 'sound/vox_fem/kidnapped.ogg', -"kidnapping" = 'sound/vox_fem/kidnapping.ogg', -"killed" = 'sound/vox_fem/killed.ogg', -"kill" = 'sound/vox_fem/kill.ogg', -"kilo" = 'sound/vox_fem/kilo.ogg', -"kitchen" = 'sound/vox_fem/kitchen.ogg', -"kit" = 'sound/vox_fem/kit.ogg', -"k" = 'sound/vox_fem/k.ogg', -"lab" = 'sound/vox_fem/lab.ogg', -"lambda" = 'sound/vox_fem/lambda.ogg', -"laser" = 'sound/vox_fem/laser.ogg', -"last" = 'sound/vox_fem/last.ogg', -"launch" = 'sound/vox_fem/launch.ogg', -"lavaland" = 'sound/vox_fem/lavaland.ogg', -"law" = 'sound/vox_fem/law.ogg', -"laws" = 'sound/vox_fem/laws.ogg', -"lawyer" = 'sound/vox_fem/lawyer.ogg', -"leak" = 'sound/vox_fem/leak.ogg', -"leave" = 'sound/vox_fem/leave.ogg', -"left" = 'sound/vox_fem/left.ogg', -"legal" = 'sound/vox_fem/legal.ogg', -"level" = 'sound/vox_fem/level.ogg', -"lever" = 'sound/vox_fem/lever.ogg', -"library" = 'sound/vox_fem/library.ogg', -"lie" = 'sound/vox_fem/lie.ogg', -"lieutenant" = 'sound/vox_fem/lieutenant.ogg', -"lifeform" = 'sound/vox_fem/lifeform.ogg', -"life" = 'sound/vox_fem/life.ogg', -"light" = 'sound/vox_fem/light.ogg', -"lima" = 'sound/vox_fem/lima.ogg', -"liquid" = 'sound/vox_fem/liquid.ogg', -"live2" = 'sound/vox_fem/live2.ogg', -"live" = 'sound/vox_fem/live.ogg', -"lizard" = 'sound/vox_fem/lizard.ogg', -"loading" = 'sound/vox_fem/loading.ogg', -"located" = 'sound/vox_fem/located.ogg', -"locate" = 'sound/vox_fem/locate.ogg', -"location" = 'sound/vox_fem/location.ogg', -"locked" = 'sound/vox_fem/locked.ogg', -"locker" = 'sound/vox_fem/locker.ogg', -"lock" = 'sound/vox_fem/lock.ogg', -"lockout" = 'sound/vox_fem/lockout.ogg', -"l" = 'sound/vox_fem/l.ogg', -"long" = 'sound/vox_fem/long.ogg', -"look" = 'sound/vox_fem/look.ogg', -"loop" = 'sound/vox_fem/loop.ogg', -"loose" = 'sound/vox_fem/loose.ogg', -"lot" = 'sound/vox_fem/lot.ogg', -"lower" = 'sound/vox_fem/lower.ogg', -"lowest" = 'sound/vox_fem/lowest.ogg', -"lusty" = 'sound/vox_fem/lusty.ogg', -"machine" = 'sound/vox_fem/machine.ogg', -"magic" = 'sound/vox_fem/magic.ogg', -"magnetic" = 'sound/vox_fem/magnetic.ogg', -"main" = 'sound/vox_fem/main.ogg', -"maintenance" = 'sound/vox_fem/maintenance.ogg', -"malfunction" = 'sound/vox_fem/malfunction.ogg', -"man" = 'sound/vox_fem/man.ogg', -"many" = 'sound/vox_fem/many.ogg', -"mass" = 'sound/vox_fem/mass.ogg', -"materials" = 'sound/vox_fem/materials.ogg', -"maximum" = 'sound/vox_fem/maximum.ogg', -"may" = 'sound/vox_fem/may.ogg', -"meat" = 'sound/vox_fem/meat.ogg', -"medbay" = 'sound/vox_fem/medbay.ogg', -"medical" = 'sound/vox_fem/medical.ogg', -"megafauna" = 'sound/vox_fem/megafauna.ogg', -"men" = 'sound/vox_fem/men.ogg', -"me" = 'sound/vox_fem/me.ogg', -"mercy" = 'sound/vox_fem/mercy.ogg', -"mesa" = 'sound/vox_fem/mesa.ogg', -"message" = 'sound/vox_fem/message.ogg', -"meter" = 'sound/vox_fem/meter.ogg', -"micro" = 'sound/vox_fem/micro.ogg', -"middle" = 'sound/vox_fem/middle.ogg', -"mike" = 'sound/vox_fem/mike.ogg', -"miles" = 'sound/vox_fem/miles.ogg', -"military" = 'sound/vox_fem/military.ogg', -"milli" = 'sound/vox_fem/milli.ogg', -"million" = 'sound/vox_fem/million.ogg', -"mime" = 'sound/vox_fem/mime.ogg', -"minefield" = 'sound/vox_fem/minefield.ogg', -"miner" = 'sound/vox_fem/miner.ogg', -"minimum" = 'sound/vox_fem/minimum.ogg', -"minutes" = 'sound/vox_fem/minutes.ogg', -"mister" = 'sound/vox_fem/mister.ogg', -"mode" = 'sound/vox_fem/mode.ogg', -"modification" = 'sound/vox_fem/modification.ogg', -"m" = 'sound/vox_fem/m.ogg', -"money" = 'sound/vox_fem/money.ogg', -"monkey" = 'sound/vox_fem/monkey.ogg', -"moth" = 'sound/vox_fem/moth.ogg', -"motor" = 'sound/vox_fem/motor.ogg', -"motorpool" = 'sound/vox_fem/motorpool.ogg', -"move" = 'sound/vox_fem/move.ogg', -"multitude" = 'sound/vox_fem/multitude.ogg', -"murder" = 'sound/vox_fem/murder.ogg', -"must" = 'sound/vox_fem/must.ogg', -"my" = 'sound/vox_fem/my.ogg', -"mythic" = 'sound/vox_fem/mythic.ogg', -"nanotrasen" = 'sound/vox_fem/nanotrasen.ogg', -"nearest" = 'sound/vox_fem/nearest.ogg', -"need" = 'sound/vox_fem/need.ogg', -"nice" = 'sound/vox_fem/nice.ogg', -"nine" = 'sound/vox_fem/nine.ogg', -"nineteen" = 'sound/vox_fem/nineteen.ogg', -"ninety" = 'sound/vox_fem/ninety.ogg', -"nitrogen" = 'sound/vox_fem/nitrogen.ogg', -"n" = 'sound/vox_fem/n.ogg', -"nominal" = 'sound/vox_fem/nominal.ogg', -"no" = 'sound/vox_fem/no.ogg', -"north" = 'sound/vox_fem/north.ogg', -"not" = 'sound/vox_fem/not.ogg', -"november" = 'sound/vox_fem/november.ogg', -"now" = 'sound/vox_fem/now.ogg', -"nuclear" = 'sound/vox_fem/nuclear.ogg', -"nuke" = 'sound/vox_fem/nuke.ogg', -"number" = 'sound/vox_fem/number.ogg', -"objective" = 'sound/vox_fem/objective.ogg', -"observation" = 'sound/vox_fem/observation.ogg', -"obtain" = 'sound/vox_fem/obtain.ogg', -"office" = 'sound/vox_fem/office.ogg', -"officer" = 'sound/vox_fem/officer.ogg', -"off" = 'sound/vox_fem/off.ogg', -"of" = 'sound/vox_fem/of.ogg', -"," = 'sound/vox_fem/,.ogg', -"." = 'sound/vox_fem/..ogg', -"oh" = 'sound/vox_fem/oh.ogg', -"ok" = 'sound/vox_fem/ok.ogg', -"one" = 'sound/vox_fem/one.ogg', -"on" = 'sound/vox_fem/on.ogg', -"oof" = 'sound/vox_fem/oof.ogg', -"o" = 'sound/vox_fem/o.ogg', -"open" = 'sound/vox_fem/open.ogg', -"operating" = 'sound/vox_fem/operating.ogg', -"operations" = 'sound/vox_fem/operations.ogg', -"operative" = 'sound/vox_fem/operative.ogg', -"option" = 'sound/vox_fem/option.ogg', -"order" = 'sound/vox_fem/order.ogg', -"organic" = 'sound/vox_fem/organic.ogg', -"or" = 'sound/vox_fem/or.ogg', -"oscar" = 'sound/vox_fem/oscar.ogg', -"out" = 'sound/vox_fem/out.ogg', -"outside" = 'sound/vox_fem/outside.ogg', -"overload" = 'sound/vox_fem/overload.ogg', -"over" = 'sound/vox_fem/over.ogg', -"override" = 'sound/vox_fem/override.ogg', -"oxygen" = 'sound/vox_fem/oxygen.ogg', -"pacification" = 'sound/vox_fem/pacification.ogg', -"pacify" = 'sound/vox_fem/pacify.ogg', -"pain" = 'sound/vox_fem/pain.ogg', -"pal" = 'sound/vox_fem/pal.ogg', -"panel" = 'sound/vox_fem/panel.ogg', -"panting" = 'sound/vox_fem/panting.ogg', -"pathetic" = 'sound/vox_fem/pathetic.ogg', -"percent" = 'sound/vox_fem/percent.ogg', -"perfect" = 'sound/vox_fem/perfect.ogg', -"perimeter" = 'sound/vox_fem/perimeter.ogg', -"permitted" = 'sound/vox_fem/permitted.ogg', -"personal" = 'sound/vox_fem/personal.ogg', -"personnel" = 'sound/vox_fem/personnel.ogg', -"pipe" = 'sound/vox_fem/pipe.ogg', -"piping" = 'sound/vox_fem/piping.ogg', -"piss" = 'sound/vox_fem/piss.ogg', -"plant" = 'sound/vox_fem/plant.ogg', -"plasmaman" = 'sound/vox_fem/plasmaman.ogg', -"plasma" = 'sound/vox_fem/plasma.ogg', -"platform" = 'sound/vox_fem/platform.ogg', -"plausible" = 'sound/vox_fem/plausible.ogg', -"please" = 'sound/vox_fem/please.ogg', -"p" = 'sound/vox_fem/p.ogg', -"point" = 'sound/vox_fem/point.ogg', -"portal" = 'sound/vox_fem/portal.ogg', -"port" = 'sound/vox_fem/port.ogg', -"possible" = 'sound/vox_fem/possible.ogg', -"power" = 'sound/vox_fem/power.ogg', -"presence" = 'sound/vox_fem/presence.ogg', -"press" = 'sound/vox_fem/press.ogg', -"pressure" = 'sound/vox_fem/pressure.ogg', -"primary" = 'sound/vox_fem/primary.ogg', -"prisoner" = 'sound/vox_fem/prisoner.ogg', -"prison" = 'sound/vox_fem/prison.ogg', -"proceed" = 'sound/vox_fem/proceed.ogg', -"processing" = 'sound/vox_fem/processing.ogg', -"progress" = 'sound/vox_fem/progress.ogg', -"proper" = 'sound/vox_fem/proper.ogg', -"propulsion" = 'sound/vox_fem/propulsion.ogg', -"prosecute" = 'sound/vox_fem/prosecute.ogg', -"protective" = 'sound/vox_fem/protective.ogg', -"push" = 'sound/vox_fem/push.ogg', -"put" = 'sound/vox_fem/put.ogg', -"q" = 'sound/vox_fem/q.ogg', -"quantum" = 'sound/vox_fem/quantum.ogg', -"quarantine" = 'sound/vox_fem/quarantine.ogg', -"quartermaster" = 'sound/vox_fem/quartermaster.ogg', -"quebec" = 'sound/vox_fem/quebec.ogg', -"queen" = 'sound/vox_fem/queen.ogg', -"questionable" = 'sound/vox_fem/questionable.ogg', -"questioning" = 'sound/vox_fem/questioning.ogg', -"question" = 'sound/vox_fem/question.ogg', -"quick" = 'sound/vox_fem/quick.ogg', -"quit" = 'sound/vox_fem/quit.ogg', -"radiation" = 'sound/vox_fem/radiation.ogg', -"radioactive" = 'sound/vox_fem/radioactive.ogg', -"rads" = 'sound/vox_fem/rads.ogg', -"raider" = 'sound/vox_fem/raider.ogg', -"raiders" = 'sound/vox_fem/raiders.ogg', -"rapid" = 'sound/vox_fem/rapid.ogg', -"reached" = 'sound/vox_fem/reached.ogg', -"reach" = 'sound/vox_fem/reach.ogg', -"reactor" = 'sound/vox_fem/reactor.ogg', -"red" = 'sound/vox_fem/red.ogg', -"relay" = 'sound/vox_fem/relay.ogg', -"released" = 'sound/vox_fem/released.ogg', -"remaining" = 'sound/vox_fem/remaining.ogg', -"removal" = 'sound/vox_fem/removal.ogg', -"renegade" = 'sound/vox_fem/renegade.ogg', -"repair" = 'sound/vox_fem/repair.ogg', -"report" = 'sound/vox_fem/report.ogg', -"reports" = 'sound/vox_fem/reports.ogg', -"required" = 'sound/vox_fem/required.ogg', -"require" = 'sound/vox_fem/require.ogg', -"research" = 'sound/vox_fem/research.ogg', -"resevoir" = 'sound/vox_fem/resevoir.ogg', -"resistance" = 'sound/vox_fem/resistance.ogg', -"rest" = 'sound/vox_fem/rest.ogg', -"restoration" = 'sound/vox_fem/restoration.ogg', -"revolutionary" = 'sound/vox_fem/revolutionary.ogg', -"revolution" = 'sound/vox_fem/revolution.ogg', -"right" = 'sound/vox_fem/right.ogg', -"riot" = 'sound/vox_fem/riot.ogg', -"roboticist" = 'sound/vox_fem/roboticist.ogg', -"rocket" = 'sound/vox_fem/rocket.ogg', -"roger" = 'sound/vox_fem/roger.ogg', -"r" = 'sound/vox_fem/r.ogg', -"rogue" = 'sound/vox_fem/rogue.ogg', -"romeo" = 'sound/vox_fem/romeo.ogg', -"room" = 'sound/vox_fem/room.ogg', -"round" = 'sound/vox_fem/round.ogg', -"rune" = 'sound/vox_fem/rune.ogg', -"run" = 'sound/vox_fem/run.ogg', -"runtime" = 'sound/vox_fem/runtime.ogg', -"sabotage" = 'sound/vox_fem/sabotage.ogg', -"safe" = 'sound/vox_fem/safe.ogg', -"safety" = 'sound/vox_fem/safety.ogg', -"sairhorn" = 'sound/vox_fem/sairhorn.ogg', -"sarah" = 'sound/vox_fem/sarah.ogg', -"sargeant" = 'sound/vox_fem/sargeant.ogg', -"satellite" = 'sound/vox_fem/satellite.ogg', -"save" = 'sound/vox_fem/save.ogg', -"scensor" = 'sound/vox_fem/scensor.ogg', -"science" = 'sound/vox_fem/science.ogg', -"scientist" = 'sound/vox_fem/scientist.ogg', -"scream" = 'sound/vox_fem/scream.ogg', -"screen" = 'sound/vox_fem/screen.ogg', -"search" = 'sound/vox_fem/search.ogg', -"secondary" = 'sound/vox_fem/secondary.ogg', -"second" = 'sound/vox_fem/second.ogg', -"seconds" = 'sound/vox_fem/seconds.ogg', -"section" = 'sound/vox_fem/section.ogg', -"sector" = 'sound/vox_fem/sector.ogg', -"secured" = 'sound/vox_fem/secured.ogg', -"secure" = 'sound/vox_fem/secure.ogg', -"security" = 'sound/vox_fem/security.ogg', -"selected" = 'sound/vox_fem/selected.ogg', -"select" = 'sound/vox_fem/select.ogg', -"self" = 'sound/vox_fem/self.ogg', -"sensors" = 'sound/vox_fem/sensors.ogg', -"server" = 'sound/vox_fem/server.ogg', -"service" = 'sound/vox_fem/service.ogg', -"seven" = 'sound/vox_fem/seven.ogg', -"seventeen" = 'sound/vox_fem/seventeen.ogg', -"seventy" = 'sound/vox_fem/seventy.ogg', -"severe" = 'sound/vox_fem/severe.ogg', -"sewage" = 'sound/vox_fem/sewage.ogg', -"sewer" = 'sound/vox_fem/sewer.ogg', -"shaft" = 'sound/vox_fem/shaft.ogg', -"she" = 'sound/vox_fem/she.ogg', -"shield" = 'sound/vox_fem/shield.ogg', -"shipment" = 'sound/vox_fem/shipment.ogg', -"shirt" = 'sound/vox_fem/shirt.ogg', -"shitlord" = 'sound/vox_fem/shitlord.ogg', -"shit" = 'sound/vox_fem/shit.ogg', -"shits" = 'sound/vox_fem/shits.ogg', -"shitting" = 'sound/vox_fem/shitting.ogg', -"shock" = 'sound/vox_fem/shock.ogg', -"shonk" = 'sound/vox_fem/shonk.ogg', -"shoot" = 'sound/vox_fem/shoot.ogg', -"shower" = 'sound/vox_fem/shower.ogg', -"shut" = 'sound/vox_fem/shut.ogg', -"shuttle" = 'sound/vox_fem/shuttle.ogg', -"sick" = 'sound/vox_fem/sick.ogg', -"side" = 'sound/vox_fem/side.ogg', -"sierra" = 'sound/vox_fem/sierra.ogg', -"sight" = 'sound/vox_fem/sight.ogg', -"silicon" = 'sound/vox_fem/silicon.ogg', -"silo" = 'sound/vox_fem/silo.ogg', -"singularity" = 'sound/vox_fem/singularity.ogg', -"six" = 'sound/vox_fem/six.ogg', -"sixteen" = 'sound/vox_fem/sixteen.ogg', -"sixty" = 'sound/vox_fem/sixty.ogg', -"skeleton" = 'sound/vox_fem/skeleton.ogg', -"slaughter" = 'sound/vox_fem/slaughter.ogg', -"slime" = 'sound/vox_fem/slime.ogg', -"slip" = 'sound/vox_fem/slip.ogg', -"slippery" = 'sound/vox_fem/slippery.ogg', -"slow" = 'sound/vox_fem/slow.ogg', -"sm" = 'sound/vox_fem/sm.ogg', -"s" = 'sound/vox_fem/s.ogg', -"solar" = 'sound/vox_fem/solar.ogg', -"solars" = 'sound/vox_fem/solars.ogg', -"soldier" = 'sound/vox_fem/soldier.ogg', -"some" = 'sound/vox_fem/some.ogg', -"someone" = 'sound/vox_fem/someone.ogg', -"something" = 'sound/vox_fem/something.ogg', -"son" = 'sound/vox_fem/son.ogg', -"sorry" = 'sound/vox_fem/sorry.ogg', -"south" = 'sound/vox_fem/south.ogg', -"space" = 'sound/vox_fem/space.ogg', -"squad" = 'sound/vox_fem/squad.ogg', -"square" = 'sound/vox_fem/square.ogg', -"ss13" = 'sound/vox_fem/ss13.ogg', -"stairway" = 'sound/vox_fem/stairway.ogg', -"starboard" = 'sound/vox_fem/starboard.ogg', -"station" = 'sound/vox_fem/station.ogg', -"status" = 'sound/vox_fem/status.ogg', -"stay" = 'sound/vox_fem/stay.ogg', -"sterile" = 'sound/vox_fem/sterile.ogg', -"sterilization" = 'sound/vox_fem/sterilization.ogg', -"stop" = 'sound/vox_fem/stop.ogg', -"storage" = 'sound/vox_fem/storage.ogg', -"strong" = 'sound/vox_fem/strong.ogg', -"stuck" = 'sound/vox_fem/stuck.ogg', -"sub" = 'sound/vox_fem/sub.ogg', -"subsurface" = 'sound/vox_fem/subsurface.ogg', -"sudden" = 'sound/vox_fem/sudden.ogg', -"suffer" = 'sound/vox_fem/suffer.ogg', -"suit" = 'sound/vox_fem/suit.ogg', -"superconducting" = 'sound/vox_fem/superconducting.ogg', -"supercooled" = 'sound/vox_fem/supercooled.ogg', -"supermatter" = 'sound/vox_fem/supermatter.ogg', -"supply" = 'sound/vox_fem/supply.ogg', -"surface" = 'sound/vox_fem/surface.ogg', -"surrender" = 'sound/vox_fem/surrender.ogg', -"surrounded" = 'sound/vox_fem/surrounded.ogg', -"surround" = 'sound/vox_fem/surround.ogg', -"sweating" = 'sound/vox_fem/sweating.ogg', -"swhitenoise" = 'sound/vox_fem/swhitenoise.ogg', -"switch" = 'sound/vox_fem/switch.ogg', -"syndicate" = 'sound/vox_fem/syndicate.ogg', -"system" = 'sound/vox_fem/system.ogg', -"systems" = 'sound/vox_fem/systems.ogg', -"table" = 'sound/vox_fem/table.ogg', -"tactical" = 'sound/vox_fem/tactical.ogg', -"take" = 'sound/vox_fem/take.ogg', -"talk" = 'sound/vox_fem/talk.ogg', -"tampered" = 'sound/vox_fem/tampered.ogg', -"tango" = 'sound/vox_fem/tango.ogg', -"tank" = 'sound/vox_fem/tank.ogg', -"target" = 'sound/vox_fem/target.ogg', -"team" = 'sound/vox_fem/team.ogg', -"technician" = 'sound/vox_fem/technician.ogg', -"technology" = 'sound/vox_fem/technology.ogg', -"tech" = 'sound/vox_fem/tech.ogg', -"temperature" = 'sound/vox_fem/temperature.ogg', -"temporal" = 'sound/vox_fem/temporal.ogg', -"ten" = 'sound/vox_fem/ten.ogg', -"terminal" = 'sound/vox_fem/terminal.ogg', -"terminated" = 'sound/vox_fem/terminated.ogg', -"termination" = 'sound/vox_fem/termination.ogg', -"test" = 'sound/vox_fem/test.ogg', -"text" = 'sound/vox_fem/text.ogg', -"that" = 'sound/vox_fem/that.ogg', -"theater" = 'sound/vox_fem/theater.ogg', -"them" = 'sound/vox_fem/them.ogg', -"then" = 'sound/vox_fem/then.ogg', -"the" = 'sound/vox_fem/the.ogg', -"there" = 'sound/vox_fem/there.ogg', -"they" = 'sound/vox_fem/they.ogg', -"third" = 'sound/vox_fem/third.ogg', -"thirteen" = 'sound/vox_fem/thirteen.ogg', -"thirty" = 'sound/vox_fem/thirty.ogg', -"this" = 'sound/vox_fem/this.ogg', -"those" = 'sound/vox_fem/those.ogg', -"thousand" = 'sound/vox_fem/thousand.ogg', -"threat" = 'sound/vox_fem/threat.ogg', -"three" = 'sound/vox_fem/three.ogg', -"through" = 'sound/vox_fem/through.ogg', -"tide" = 'sound/vox_fem/tide.ogg', -"time" = 'sound/vox_fem/time.ogg', -"t" = 'sound/vox_fem/t.ogg', -"to" = 'sound/vox_fem/to.ogg', -"top" = 'sound/vox_fem/top.ogg', -"topside" = 'sound/vox_fem/topside.ogg', -"touch" = 'sound/vox_fem/touch.ogg', -"towards" = 'sound/vox_fem/towards.ogg', -"toxins" = 'sound/vox_fem/toxins.ogg', -"track" = 'sound/vox_fem/track.ogg', -"train" = 'sound/vox_fem/train.ogg', -"traitor" = 'sound/vox_fem/traitor.ogg', -"transportation" = 'sound/vox_fem/transportation.ogg', -"truck" = 'sound/vox_fem/truck.ogg', -"true" = 'sound/vox_fem/true.ogg', -"tunnel" = 'sound/vox_fem/tunnel.ogg', -"turn" = 'sound/vox_fem/turn.ogg', -"turret" = 'sound/vox_fem/turret.ogg', -"twelve" = 'sound/vox_fem/twelve.ogg', -"twenty" = 'sound/vox_fem/twenty.ogg', -"two" = 'sound/vox_fem/two.ogg', -"ughh" = 'sound/vox_fem/ughh.ogg', -"ugh" = 'sound/vox_fem/ugh.ogg', -"unable" = 'sound/vox_fem/unable.ogg', -"unauthorized" = 'sound/vox_fem/unauthorized.ogg', -"under" = 'sound/vox_fem/under.ogg', -"uniform" = 'sound/vox_fem/uniform.ogg', -"unknown" = 'sound/vox_fem/unknown.ogg', -"unlocked" = 'sound/vox_fem/unlocked.ogg', -"unsafe" = 'sound/vox_fem/unsafe.ogg', -"until" = 'sound/vox_fem/until.ogg', -"u" = 'sound/vox_fem/u.ogg', -"updated" = 'sound/vox_fem/updated.ogg', -"update" = 'sound/vox_fem/update.ogg', -"updating" = 'sound/vox_fem/updating.ogg', -"upload" = 'sound/vox_fem/upload.ogg', -"up" = 'sound/vox_fem/up.ogg', -"upper" = 'sound/vox_fem/upper.ogg', -"uranium" = 'sound/vox_fem/uranium.ogg', -"usa" = 'sound/vox_fem/usa.ogg', -"used" = 'sound/vox_fem/used.ogg', -"use" = 'sound/vox_fem/use.ogg', -"user" = 'sound/vox_fem/user.ogg', -"us" = 'sound/vox_fem/us.ogg', -"vacate" = 'sound/vox_fem/vacate.ogg', -"vacuum" = 'sound/vox_fem/vacuum.ogg', -"valid" = 'sound/vox_fem/valid.ogg', -"vapor" = 'sound/vox_fem/vapor.ogg', -"vendor" = 'sound/vox_fem/vendor.ogg', -"ventilation" = 'sound/vox_fem/ventilation.ogg', -"vent" = 'sound/vox_fem/vent.ogg', -"very" = 'sound/vox_fem/very.ogg', -"victor" = 'sound/vox_fem/victor.ogg', -"violated" = 'sound/vox_fem/violated.ogg', -"violation" = 'sound/vox_fem/violation.ogg', -"pathologist" = 'sound/vox_fem/virologist.ogg', -"pathology" = 'sound/vox_fem/virology.ogg', -"virus" = 'sound/vox_fem/virus.ogg', -"vitals" = 'sound/vox_fem/vitals.ogg', -"v" = 'sound/vox_fem/v.ogg', -"voltage" = 'sound/vox_fem/voltage.ogg', -"vox_login" = 'sound/vox_fem/vox_login.ogg', -"vox" = 'sound/vox_fem/vox.ogg', -"voxtest" = 'sound/vox_fem/voxtest.ogg', -"walk" = 'sound/vox_fem/walk.ogg', -"wall" = 'sound/vox_fem/wall.ogg', -"wanker" = 'sound/vox_fem/wanker.ogg', -"wanted" = 'sound/vox_fem/wanted.ogg', -"want" = 'sound/vox_fem/want.ogg', -"warden" = 'sound/vox_fem/warden.ogg', -"warm" = 'sound/vox_fem/warm.ogg', -"warning" = 'sound/vox_fem/warning.ogg', -"warn" = 'sound/vox_fem/warn.ogg', -"waste" = 'sound/vox_fem/waste.ogg', -"water" = 'sound/vox_fem/water.ogg', -"weak" = 'sound/vox_fem/weak.ogg', -"weapon" = 'sound/vox_fem/weapon.ogg', -"welcome" = 'sound/vox_fem/welcome.ogg', -"we" = 'sound/vox_fem/we.ogg', -"west" = 'sound/vox_fem/west.ogg', -"wew" = 'sound/vox_fem/wew.ogg', -"what" = 'sound/vox_fem/what.ogg', -"when" = 'sound/vox_fem/when.ogg', -"where" = 'sound/vox_fem/where.ogg', -"whiskey" = 'sound/vox_fem/whiskey.ogg', -"white" = 'sound/vox_fem/white.ogg', -"why" = 'sound/vox_fem/why.ogg', -"wilco" = 'sound/vox_fem/wilco.ogg', -"will" = 'sound/vox_fem/will.ogg', -"wing" = 'sound/vox_fem/wing.ogg', -"wire" = 'sound/vox_fem/wire.ogg', -"with" = 'sound/vox_fem/with.ogg', -"without" = 'sound/vox_fem/without.ogg', -"wizard" = 'sound/vox_fem/wizard.ogg', -"w" = 'sound/vox_fem/w.ogg', -"wood" = 'sound/vox_fem/wood.ogg', -"woody" = 'sound/vox_fem/woody.ogg', -"woop" = 'sound/vox_fem/woop.ogg', -"wow" = 'sound/vox_fem/wow.ogg', -"xenobiology" = 'sound/vox_fem/xenobiology.ogg', -"xenomorph" = 'sound/vox_fem/xenomorph.ogg', -"xenomorphs" = 'sound/vox_fem/xenomorphs.ogg', -"xeno" = 'sound/vox_fem/xeno.ogg', -"x" = 'sound/vox_fem/x.ogg', -"yankee" = 'sound/vox_fem/yankee.ogg', -"yards" = 'sound/vox_fem/yards.ogg', -"year" = 'sound/vox_fem/year.ogg', -"yellow" = 'sound/vox_fem/yellow.ogg', -"yes" = 'sound/vox_fem/yes.ogg', -"y" = 'sound/vox_fem/y.ogg', -"you" = 'sound/vox_fem/you.ogg', -"your" = 'sound/vox_fem/your.ogg', -"yourself" = 'sound/vox_fem/yourself.ogg', -"zero" = 'sound/vox_fem/zero.ogg', -"z" = 'sound/vox_fem/z.ogg', -"zombie" = 'sound/vox_fem/zombie.ogg', -"zone" = 'sound/vox_fem/zone.ogg', -"zulu" = 'sound/vox_fem/zulu.ogg')) +GLOBAL_LIST_INIT(vox_sounds, list( + "," = 'sound/vox_fem/,.ogg', + "." = 'sound/vox_fem/..ogg', + "a" = 'sound/vox_fem/a.ogg', + "abduction" = 'sound/vox_fem/abduction.ogg', + "abortions" = 'sound/vox_fem/abortions.ogg', + "above" = 'sound/vox_fem/above.ogg', + "absorb" = 'sound/vox_fem/absorb.ogg', + "absorbed" = 'sound/vox_fem/absorbed.ogg', + "absorbing" = 'sound/vox_fem/absorbing.ogg', + "abstain" = 'sound/vox_fem/abstain.ogg', + "accelerating" = 'sound/vox_fem/accelerating.ogg', + "accelerator" = 'sound/vox_fem/accelerator.ogg', + "accepted" = 'sound/vox_fem/accepted.ogg', + "access" = 'sound/vox_fem/access.ogg', + "acknowledge" = 'sound/vox_fem/acknowledge.ogg', + "acknowledged" = 'sound/vox_fem/acknowledged.ogg', + "acquired" = 'sound/vox_fem/acquired.ogg', + "acquisition" = 'sound/vox_fem/acquisition.ogg', + "across" = 'sound/vox_fem/across.ogg', + "activate" = 'sound/vox_fem/activate.ogg', + "activated" = 'sound/vox_fem/activated.ogg', + "activating" = 'sound/vox_fem/activating.ogg', + "activation" = 'sound/vox_fem/activation.ogg', + "active" = 'sound/vox_fem/active.ogg', + "activity" = 'sound/vox_fem/activity.ogg', + "adios" = 'sound/vox_fem/adios.ogg', + "administration" = 'sound/vox_fem/administration.ogg', + "advanced" = 'sound/vox_fem/advanced.ogg', + "advised" = 'sound/vox_fem/advised.ogg', + "affect" = 'sound/vox_fem/affect.ogg', + "affected" = 'sound/vox_fem/affected.ogg', + "affecting" = 'sound/vox_fem/affecting.ogg', + "aft" = 'sound/vox_fem/aft.ogg', + "after" = 'sound/vox_fem/after.ogg', + "agent" = 'sound/vox_fem/agent.ogg', + "ai" = 'sound/vox_fem/ai.ogg', + "air" = 'sound/vox_fem/air.ogg', + "airlock" = 'sound/vox_fem/airlock.ogg', + "alarm" = 'sound/vox_fem/alarm.ogg', + "alarmed" = 'sound/vox_fem/alarmed.ogg', + "alarming" = 'sound/vox_fem/alarming.ogg', + "alcohol" = 'sound/vox_fem/alcohol.ogg', + "alert" = 'sound/vox_fem/alert.ogg', + "alerted" = 'sound/vox_fem/alerted.ogg', + "alerting" = 'sound/vox_fem/alerting.ogg', + "alien" = 'sound/vox_fem/alien.ogg', + "align" = 'sound/vox_fem/align.ogg', + "aligned" = 'sound/vox_fem/aligned.ogg', + "all" = 'sound/vox_fem/all.ogg', + "allow" = 'sound/vox_fem/allow.ogg', + "alongside" = 'sound/vox_fem/alongside.ogg', + "alpha" = 'sound/vox_fem/alpha.ogg', + "also" = 'sound/vox_fem/also.ogg', + "am" = 'sound/vox_fem/am.ogg', + "amigo" = 'sound/vox_fem/amigo.ogg', + "ammunition" = 'sound/vox_fem/ammunition.ogg', + "amount" = 'sound/vox_fem/amount.ogg', + "an" = 'sound/vox_fem/an.ogg', + "and" = 'sound/vox_fem/and.ogg', + "animal" = 'sound/vox_fem/animal.ogg', + "annihilate" = 'sound/vox_fem/annihilate.ogg', + "annihilated" = 'sound/vox_fem/annihilated.ogg', + "annihilating" = 'sound/vox_fem/annihilating.ogg', + "annihilation" = 'sound/vox_fem/annihilation.ogg', + "announcement" = 'sound/vox_fem/announcement.ogg', + "anomalous" = 'sound/vox_fem/anomalous.ogg', + "answer" = 'sound/vox_fem/answer.ogg', + "antenna" = 'sound/vox_fem/antenna.ogg', + "anti-noblium" = 'sound/vox_fem/anti-noblium.ogg', + "any" = 'sound/vox_fem/any.ogg', + "apc" = 'sound/vox_fem/apc.ogg', + "apprehend" = 'sound/vox_fem/apprehend.ogg', + "approach" = 'sound/vox_fem/approach.ogg', + "arc" = 'sound/vox_fem/arc.ogg', + "arcs" = 'sound/vox_fem/arcs.ogg', + "are" = 'sound/vox_fem/are.ogg', + "area" = 'sound/vox_fem/area.ogg', + "arm" = 'sound/vox_fem/arm.ogg', + "armed" = 'sound/vox_fem/armed.ogg', + "armor" = 'sound/vox_fem/armor.ogg', + "armory" = 'sound/vox_fem/armory.ogg', + "around" = 'sound/vox_fem/around.ogg', + "array" = 'sound/vox_fem/array.ogg', + "arrest" = 'sound/vox_fem/arrest.ogg', + "artillery" = 'sound/vox_fem/artillery.ogg', + "asimov" = 'sound/vox_fem/asimov.ogg', + "ask" = 'sound/vox_fem/ask.ogg', + "ass" = 'sound/vox_fem/ass.ogg', + "asshole" = 'sound/vox_fem/asshole.ogg', + "assholes" = 'sound/vox_fem/assholes.ogg', + "assistance" = 'sound/vox_fem/assistance.ogg', + "assistant" = 'sound/vox_fem/assistant.ogg', + "at" = 'sound/vox_fem/at.ogg', + "ate" = 'sound/vox_fem/ate.ogg', + "atmosphere" = 'sound/vox_fem/atmosphere.ogg', + "atmospheric" = 'sound/vox_fem/atmospheric.ogg', + "atmospherics" = 'sound/vox_fem/atmospherics.ogg', + "atomic" = 'sound/vox_fem/atomic.ogg', + "attention" = 'sound/vox_fem/attention.ogg', + "authentication" = 'sound/vox_fem/authentication.ogg', + "authorize" = 'sound/vox_fem/authorize.ogg', + "authorized" = 'sound/vox_fem/authorized.ogg', + "automatic" = 'sound/vox_fem/automatic.ogg', + "away" = 'sound/vox_fem/away.ogg', + "awful" = 'sound/vox_fem/awful.ogg', + "b" = 'sound/vox_fem/b.ogg', + "back" = 'sound/vox_fem/back.ogg', + "backman" = 'sound/vox_fem/backman.ogg', + "bad" = 'sound/vox_fem/bad.ogg', + "bag" = 'sound/vox_fem/bag.ogg', + "bailey" = 'sound/vox_fem/bailey.ogg', + "bar" = 'sound/vox_fem/bar.ogg', + "barracks" = 'sound/vox_fem/barracks.ogg', + "bartender" = 'sound/vox_fem/bartender.ogg', + "base" = 'sound/vox_fem/base.ogg', + "bay" = 'sound/vox_fem/bay.ogg', + "be" = 'sound/vox_fem/be.ogg', + "beaker" = 'sound/vox_fem/beaker.ogg', + "beam" = 'sound/vox_fem/beam.ogg', + "been" = 'sound/vox_fem/been.ogg', + "beep" = 'sound/vox_fem/beep.ogg', + "before" = 'sound/vox_fem/before.ogg', + "began" = 'sound/vox_fem/began.ogg', + "begin" = 'sound/vox_fem/begin.ogg', + "begins" = 'sound/vox_fem/begins.ogg', + "below" = 'sound/vox_fem/below.ogg', + "beside" = 'sound/vox_fem/beside.ogg', + "beware" = 'sound/vox_fem/beware.ogg', + "beyond" = 'sound/vox_fem/beyond.ogg', + "big" = 'sound/vox_fem/big.ogg', + "billion" = 'sound/vox_fem/billion.ogg', + "biohazard" = 'sound/vox_fem/biohazard.ogg', + "biological" = 'sound/vox_fem/biological.ogg', + "birdwell" = 'sound/vox_fem/birdwell.ogg', + "bitch" = 'sound/vox_fem/bitch.ogg', + "bitches" = 'sound/vox_fem/bitches.ogg', + "bitcoin" = 'sound/vox_fem/bitcoin.ogg', + "bitrun" = 'sound/vox_fem/bitrun.ogg', + "bitrunner" = 'sound/vox_fem/bitrunner.ogg', + "bitrunning" = 'sound/vox_fem/bitrunning.ogg', + "black" = 'sound/vox_fem/black.ogg', + "blast" = 'sound/vox_fem/blast.ogg', + "bleed" = 'sound/vox_fem/bleed.ogg', + "blob" = 'sound/vox_fem/blob.ogg', + "blocked" = 'sound/vox_fem/blocked.ogg', + "blood" = 'sound/vox_fem/blood.ogg', + "bloop" = 'sound/vox_fem/bloop.ogg', + "blue" = 'sound/vox_fem/blue.ogg', + "bluespace" = 'sound/vox_fem/bluespace.ogg', + "bomb" = 'sound/vox_fem/bomb.ogg', + "bone" = 'sound/vox_fem/bone.ogg', + "botanist" = 'sound/vox_fem/botanist.ogg', + "botany" = 'sound/vox_fem/botany.ogg', + "bottle" = 'sound/vox_fem/bottle.ogg', + "bottom" = 'sound/vox_fem/bottom.ogg', + "bravo" = 'sound/vox_fem/bravo.ogg', + "breach" = 'sound/vox_fem/breach.ogg', + "breached" = 'sound/vox_fem/breached.ogg', + "break" = 'sound/vox_fem/break.ogg', + "bridge" = 'sound/vox_fem/bridge.ogg', + "brig" = 'sound/vox_fem/brig.ogg', + "broke" = 'sound/vox_fem/broke.ogg', + "broken" = 'sound/vox_fem/broken.ogg', + "bump" = 'sound/vox_fem/bump.ogg', + "bumped" = 'sound/vox_fem/bumped.ogg', + "bumps" = 'sound/vox_fem/bumps.ogg', + "bust" = 'sound/vox_fem/bust.ogg', + "but" = 'sound/vox_fem/but.ogg', + "button" = 'sound/vox_fem/button.ogg', + "bypass" = 'sound/vox_fem/bypass.ogg', + "c" = 'sound/vox_fem/c.ogg', + "cable" = 'sound/vox_fem/cable.ogg', + "call" = 'sound/vox_fem/call.ogg', + "called" = 'sound/vox_fem/called.ogg', + "can" = 'sound/vox_fem/can.ogg', + "canal" = 'sound/vox_fem/canal.ogg', + "canister" = 'sound/vox_fem/canister.ogg', + "cap" = 'sound/vox_fem/cap.ogg', + "captain" = 'sound/vox_fem/captain.ogg', + "capture" = 'sound/vox_fem/capture.ogg', + "carbon" = 'sound/vox_fem/carbon.ogg', + "cargo" = 'sound/vox_fem/cargo.ogg', + "cascade" = 'sound/vox_fem/cascade.ogg', + "cat" = 'sound/vox_fem/cat.ogg', + "cause" = 'sound/vox_fem/cause.ogg', + "caused" = 'sound/vox_fem/caused.ogg', + "causes" = 'sound/vox_fem/causes.ogg', + "causing" = 'sound/vox_fem/causing.ogg', + "ce" = 'sound/vox_fem/ce.ogg', + "cease" = 'sound/vox_fem/cease.ogg', + "ceiling" = 'sound/vox_fem/ceiling.ogg', + "celsius" = 'sound/vox_fem/celsius.ogg', + "centcom" = 'sound/vox_fem/centcom.ogg', + "center" = 'sound/vox_fem/center.ogg', + "centi" = 'sound/vox_fem/centi.ogg', + "central" = 'sound/vox_fem/central.ogg', + "challenge" = 'sound/vox_fem/challenge.ogg', + "chamber" = 'sound/vox_fem/chamber.ogg', + "change" = 'sound/vox_fem/change.ogg', + "changed" = 'sound/vox_fem/changed.ogg', + "changeling" = 'sound/vox_fem/changeling.ogg', + "chapel" = 'sound/vox_fem/chapel.ogg', + "chaplain" = 'sound/vox_fem/chaplain.ogg', + "charge" = 'sound/vox_fem/charge.ogg', + "charlie" = 'sound/vox_fem/charlie.ogg', + "check" = 'sound/vox_fem/check.ogg', + "checkpoint" = 'sound/vox_fem/checkpoint.ogg', + "chemical" = 'sound/vox_fem/chemical.ogg', + "chemist" = 'sound/vox_fem/chemist.ogg', + "chief" = 'sound/vox_fem/chief.ogg', + "christ" = 'sound/vox_fem/christ.ogg', + "christmas" = 'sound/vox_fem/christmas.ogg', + "chuckle" = 'sound/vox_fem/chuckle.ogg', + "circuit" = 'sound/vox_fem/circuit.ogg', + "cleanup" = 'sound/vox_fem/cleanup.ogg', + "clear" = 'sound/vox_fem/clear.ogg', + "clearance" = 'sound/vox_fem/clearance.ogg', + "clockwork" = 'sound/vox_fem/clockwork.ogg', + "clog" = 'sound/vox_fem/clog.ogg', + "close" = 'sound/vox_fem/close.ogg', + "closed" = 'sound/vox_fem/closed.ogg', + "closing" = 'sound/vox_fem/closing.ogg', + "clothing" = 'sound/vox_fem/clothing.ogg', + "clown" = 'sound/vox_fem/clown.ogg', + "clowning" = 'sound/vox_fem/clowning.ogg', + "cmo" = 'sound/vox_fem/cmo.ogg', + "code" = 'sound/vox_fem/code.ogg', + "coded" = 'sound/vox_fem/coded.ogg', + "coil" = 'sound/vox_fem/coil.ogg', + "coils" = 'sound/vox_fem/coils.ogg', + "cold" = 'sound/vox_fem/cold.ogg', + "collider" = 'sound/vox_fem/collider.ogg', + "combat" = 'sound/vox_fem/combat.ogg', + "combatant" = 'sound/vox_fem/combatant.ogg', + "come" = 'sound/vox_fem/come.ogg', + "command" = 'sound/vox_fem/command.ogg', + "communication" = 'sound/vox_fem/communication.ogg', + "complete" = 'sound/vox_fem/complete.ogg', + "completed" = 'sound/vox_fem/completed.ogg', + "completion" = 'sound/vox_fem/completion.ogg', + "complex" = 'sound/vox_fem/complex.ogg', + "comply" = 'sound/vox_fem/comply.ogg', + "computer" = 'sound/vox_fem/computer.ogg', + "condition" = 'sound/vox_fem/condition.ogg', + "conditions" = 'sound/vox_fem/conditions.ogg', + "condom" = 'sound/vox_fem/condom.ogg', + "configure" = 'sound/vox_fem/configure.ogg', + "configured" = 'sound/vox_fem/configured.ogg', + "configuring" = 'sound/vox_fem/configuring.ogg', + "confirmed" = 'sound/vox_fem/confirmed.ogg', + "connor" = 'sound/vox_fem/connor.ogg', + "console" = 'sound/vox_fem/console.ogg', + "console2" = 'sound/vox_fem/console2.ogg', + "construct" = 'sound/vox_fem/construct.ogg', + "container" = 'sound/vox_fem/container.ogg', + "containment" = 'sound/vox_fem/containment.ogg', + "contamination" = 'sound/vox_fem/contamination.ogg', + "contraband" = 'sound/vox_fem/contraband.ogg', + "control" = 'sound/vox_fem/control.ogg', + "cook" = 'sound/vox_fem/cook.ogg', + "cool" = 'sound/vox_fem/cool.ogg', + "coolant" = 'sound/vox_fem/coolant.ogg', + "cooling" = 'sound/vox_fem/cooling.ogg', + "coomer" = 'sound/vox_fem/coomer.ogg', + "core" = 'sound/vox_fem/core.ogg', + "corgi" = 'sound/vox_fem/corgi.ogg', + "corporation" = 'sound/vox_fem/corporation.ogg', + "correct" = 'sound/vox_fem/correct.ogg', + "corridor" = 'sound/vox_fem/corridor.ogg', + "corridors" = 'sound/vox_fem/corridors.ogg', + "could" = 'sound/vox_fem/could.ogg', + "couldnt" = 'sound/vox_fem/couldnt.ogg', + "countdown" = 'sound/vox_fem/countdown.ogg', + "coward" = 'sound/vox_fem/coward.ogg', + "cowards" = 'sound/vox_fem/cowards.ogg', + "crate" = 'sound/vox_fem/crate.ogg', + "create" = 'sound/vox_fem/create.ogg', + "created" = 'sound/vox_fem/created.ogg', + "creating" = 'sound/vox_fem/creating.ogg', + "creature" = 'sound/vox_fem/creature.ogg', + "crew" = 'sound/vox_fem/crew.ogg', + "critical" = 'sound/vox_fem/critical.ogg', + "cross" = 'sound/vox_fem/cross.ogg', + "cryogenic" = 'sound/vox_fem/cryogenic.ogg', + "crystal" = 'sound/vox_fem/crystal.ogg', + "cult" = 'sound/vox_fem/cult.ogg', + "cultist" = 'sound/vox_fem/cultist.ogg', + "cunt" = 'sound/vox_fem/cunt.ogg', + "curator" = 'sound/vox_fem/curator.ogg', + "cyborg" = 'sound/vox_fem/cyborg.ogg', + "cyborgs" = 'sound/vox_fem/cyborgs.ogg', + "d" = 'sound/vox_fem/d.ogg', + "damage" = 'sound/vox_fem/damage.ogg', + "damaged" = 'sound/vox_fem/damaged.ogg', + "danger" = 'sound/vox_fem/danger.ogg', + "dangerous" = 'sound/vox_fem/dangerous.ogg', + "day" = 'sound/vox_fem/day.ogg', + "deactivated" = 'sound/vox_fem/deactivated.ogg', + "dead" = 'sound/vox_fem/dead.ogg', + "death" = 'sound/vox_fem/death.ogg', + "decompression" = 'sound/vox_fem/decompression.ogg', + "decontamination" = 'sound/vox_fem/decontamination.ogg', + "deeoo" = 'sound/vox_fem/deeoo.ogg', + "defense" = 'sound/vox_fem/defense.ogg', + "degrees" = 'sound/vox_fem/degrees.ogg', + "delaminating" = 'sound/vox_fem/delaminating.ogg', + "delamination" = 'sound/vox_fem/delamination.ogg', + "delta" = 'sound/vox_fem/delta.ogg', + "demon" = 'sound/vox_fem/demon.ogg', + "denied" = 'sound/vox_fem/denied.ogg', + "deny" = 'sound/vox_fem/deny.ogg', + "departures" = 'sound/vox_fem/departures.ogg', + "deploy" = 'sound/vox_fem/deploy.ogg', + "deployed" = 'sound/vox_fem/deployed.ogg', + "desire" = 'sound/vox_fem/desire.ogg', + "desist" = 'sound/vox_fem/desist.ogg', + "destroy" = 'sound/vox_fem/destroy.ogg', + "destroyed" = 'sound/vox_fem/destroyed.ogg', + "destruction" = 'sound/vox_fem/destruction.ogg', + "detain" = 'sound/vox_fem/detain.ogg', + "detect" = 'sound/vox_fem/detect.ogg', + "detected" = 'sound/vox_fem/detected.ogg', + "detecting" = 'sound/vox_fem/detecting.ogg', + "detective" = 'sound/vox_fem/detective.ogg', + "detonation" = 'sound/vox_fem/detonation.ogg', + "device" = 'sound/vox_fem/device.ogg', + "devil" = 'sound/vox_fem/devil.ogg', + "did" = 'sound/vox_fem/did.ogg', + "die" = 'sound/vox_fem/die.ogg', + "died" = 'sound/vox_fem/died.ogg', + "different" = 'sound/vox_fem/different.ogg', + "dimensional" = 'sound/vox_fem/dimensional.ogg', + "dioxide" = 'sound/vox_fem/dioxide.ogg', + "direct" = 'sound/vox_fem/direct.ogg', + "director" = 'sound/vox_fem/director.ogg', + "dirt" = 'sound/vox_fem/dirt.ogg', + "disabled" = 'sound/vox_fem/disabled.ogg', + "disease" = 'sound/vox_fem/disease.ogg', + "disengaged" = 'sound/vox_fem/disengaged.ogg', + "dish" = 'sound/vox_fem/dish.ogg', + "disk" = 'sound/vox_fem/disk.ogg', + "disposal" = 'sound/vox_fem/disposal.ogg', + "distance" = 'sound/vox_fem/distance.ogg', + "distortion" = 'sound/vox_fem/distortion.ogg', + "do" = 'sound/vox_fem/do.ogg', + "doctor" = 'sound/vox_fem/doctor.ogg', + "dog" = 'sound/vox_fem/dog.ogg', + "dont" = 'sound/vox_fem/dont.ogg', + "doomsday" = 'sound/vox_fem/doomsday.ogg', + "doop" = 'sound/vox_fem/doop.ogg', + "door" = 'sound/vox_fem/door.ogg', + "dormitory" = 'sound/vox_fem/dormitory.ogg', + "dot" = 'sound/vox_fem/dot.ogg', + "double" = 'sound/vox_fem/double.ogg', + "down" = 'sound/vox_fem/down.ogg', + "dress" = 'sound/vox_fem/dress.ogg', + "dressed" = 'sound/vox_fem/dressed.ogg', + "dressing" = 'sound/vox_fem/dressing.ogg', + "drone" = 'sound/vox_fem/drone.ogg', + "dual" = 'sound/vox_fem/dual.ogg', + "duct" = 'sound/vox_fem/duct.ogg', + "e" = 'sound/vox_fem/e.ogg', + "easily" = 'sound/vox_fem/easily.ogg', + "east" = 'sound/vox_fem/east.ogg', + "eat" = 'sound/vox_fem/eat.ogg', + "eaten" = 'sound/vox_fem/eaten.ogg', + "echo" = 'sound/vox_fem/echo.ogg', + "ed" = 'sound/vox_fem/ed.ogg', + "education" = 'sound/vox_fem/education.ogg', + "effect" = 'sound/vox_fem/effect.ogg', + "effects" = 'sound/vox_fem/effects.ogg', + "egress" = 'sound/vox_fem/egress.ogg', + "eight" = 'sound/vox_fem/eight.ogg', + "eighteen" = 'sound/vox_fem/eighteen.ogg', + "eighty" = 'sound/vox_fem/eighty.ogg', + "electric" = 'sound/vox_fem/electric.ogg', + "electrical" = 'sound/vox_fem/electrical.ogg', + "electromagnetic" = 'sound/vox_fem/electromagnetic.ogg', + "elevator" = 'sound/vox_fem/elevator.ogg', + "eleven" = 'sound/vox_fem/eleven.ogg', + "eliminate" = 'sound/vox_fem/eliminate.ogg', + "emergency" = 'sound/vox_fem/emergency.ogg', + "emitted" = 'sound/vox_fem/emitted.ogg', + "emitter" = 'sound/vox_fem/emitter.ogg', + "emitting" = 'sound/vox_fem/emitting.ogg', + "enabled" = 'sound/vox_fem/enabled.ogg', + "end" = 'sound/vox_fem/end.ogg', + "ends" = 'sound/vox_fem/ends.ogg', + "energy" = 'sound/vox_fem/energy.ogg', + "engage" = 'sound/vox_fem/engage.ogg', + "engaged" = 'sound/vox_fem/engaged.ogg', + "engine" = 'sound/vox_fem/engine.ogg', + "engineer" = 'sound/vox_fem/engineer.ogg', + "engineering" = 'sound/vox_fem/engineering.ogg', + "enormous" = 'sound/vox_fem/enormous.ogg', + "enough" = 'sound/vox_fem/enough.ogg', + "enter" = 'sound/vox_fem/enter.ogg', + "entity" = 'sound/vox_fem/entity.ogg', + "entry" = 'sound/vox_fem/entry.ogg', + "environment" = 'sound/vox_fem/environment.ogg', + "epic" = 'sound/vox_fem/epic.ogg', + "equipment" = 'sound/vox_fem/equipment.ogg', + "error" = 'sound/vox_fem/error.ogg', + "escape" = 'sound/vox_fem/escape.ogg', + "ethereal" = 'sound/vox_fem/ethereal.ogg', + "eva" = 'sound/vox_fem/eva.ogg', + "evacuate" = 'sound/vox_fem/evacuate.ogg', + "even" = 'sound/vox_fem/even.ogg', + "ever" = 'sound/vox_fem/ever.ogg', + "every" = 'sound/vox_fem/every.ogg', + "everybody" = 'sound/vox_fem/everybody.ogg', + "everyone" = 'sound/vox_fem/everyone.ogg', + "exchange" = 'sound/vox_fem/exchange.ogg', + "execute" = 'sound/vox_fem/execute.ogg', + "exit" = 'sound/vox_fem/exit.ogg', + "expect" = 'sound/vox_fem/expect.ogg', + "experiment" = 'sound/vox_fem/experiment.ogg', + "experimental" = 'sound/vox_fem/experimental.ogg', + "explode" = 'sound/vox_fem/explode.ogg', + "exploded" = 'sound/vox_fem/exploded.ogg', + "exploding" = 'sound/vox_fem/exploding.ogg', + "explosion" = 'sound/vox_fem/explosion.ogg', + "explosive" = 'sound/vox_fem/explosive.ogg', + "exposure" = 'sound/vox_fem/exposure.ogg', + "exterminate" = 'sound/vox_fem/exterminate.ogg', + "external" = 'sound/vox_fem/external.ogg', + "extinguish" = 'sound/vox_fem/extinguish.ogg', + "extinguisher" = 'sound/vox_fem/extinguisher.ogg', + "extra" = 'sound/vox_fem/extra.ogg', + "extreme" = 'sound/vox_fem/extreme.ogg', + "f" = 'sound/vox_fem/f.ogg', + "facility" = 'sound/vox_fem/facility.ogg', + "factory" = 'sound/vox_fem/factory.ogg', + "fahrenheit" = 'sound/vox_fem/fahrenheit.ogg', + "failed" = 'sound/vox_fem/failed.ogg', + "failure" = 'sound/vox_fem/failure.ogg', + "false" = 'sound/vox_fem/false.ogg', + "farthest" = 'sound/vox_fem/farthest.ogg', + "fast" = 'sound/vox_fem/fast.ogg', + "fauna" = 'sound/vox_fem/fauna.ogg', + "feature" = 'sound/vox_fem/feature.ogg', + "featured" = 'sound/vox_fem/featured.ogg', + "features" = 'sound/vox_fem/features.ogg', + "featuring" = 'sound/vox_fem/featuring.ogg', + "feet" = 'sound/vox_fem/feet.ogg', + "felinid" = 'sound/vox_fem/felinid.ogg', + "few" = 'sound/vox_fem/few.ogg', + "field" = 'sound/vox_fem/field.ogg', + "fifteen" = 'sound/vox_fem/fifteen.ogg', + "fifth" = 'sound/vox_fem/fifth.ogg', + "fifty" = 'sound/vox_fem/fifty.ogg', + "filter" = 'sound/vox_fem/filter.ogg', + "filters" = 'sound/vox_fem/filters.ogg', + "final" = 'sound/vox_fem/final.ogg', + "fine" = 'sound/vox_fem/fine.ogg', + "fire" = 'sound/vox_fem/fire.ogg', + "first" = 'sound/vox_fem/first.ogg', + "five" = 'sound/vox_fem/five.ogg', + "fix" = 'sound/vox_fem/fix.ogg', + "flooding" = 'sound/vox_fem/flooding.ogg', + "floor" = 'sound/vox_fem/floor.ogg', + "flyman" = 'sound/vox_fem/flyman.ogg', + "fool" = 'sound/vox_fem/fool.ogg', + "foolish" = 'sound/vox_fem/foolish.ogg', + "for" = 'sound/vox_fem/for.ogg', + "forbidden" = 'sound/vox_fem/forbidden.ogg', + "force" = 'sound/vox_fem/force.ogg', + "fore" = 'sound/vox_fem/fore.ogg', + "form" = 'sound/vox_fem/form.ogg', + "formed" = 'sound/vox_fem/formed.ogg', + "forms" = 'sound/vox_fem/forms.ogg', + "forty" = 'sound/vox_fem/forty.ogg', + "found" = 'sound/vox_fem/found.ogg', + "four" = 'sound/vox_fem/four.ogg', + "fourteen" = 'sound/vox_fem/fourteen.ogg', + "fourth" = 'sound/vox_fem/fourth.ogg', + "fourty" = 'sound/vox_fem/fourty.ogg', + "foxtrot" = 'sound/vox_fem/foxtrot.ogg', + "free" = 'sound/vox_fem/free.ogg', + "freeman" = 'sound/vox_fem/freeman.ogg', + "freeze" = 'sound/vox_fem/freeze.ogg', + "freezer" = 'sound/vox_fem/freezer.ogg', + "freezing" = 'sound/vox_fem/freezing.ogg', + "freon" = 'sound/vox_fem/freon.ogg', + "from" = 'sound/vox_fem/from.ogg', + "front" = 'sound/vox_fem/front.ogg', + "froze" = 'sound/vox_fem/froze.ogg', + "frozen" = 'sound/vox_fem/frozen.ogg', + "fuck" = 'sound/vox_fem/fuck.ogg', + "fucking" = 'sound/vox_fem/fucking.ogg', + "fucks" = 'sound/vox_fem/fucks.ogg', + "fuel" = 'sound/vox_fem/fuel.ogg', + "g" = 'sound/vox_fem/g.ogg', + "gas" = 'sound/vox_fem/gas.ogg', + "gases" = 'sound/vox_fem/gases.ogg', + "gave" = 'sound/vox_fem/gave.ogg', + "gear" = 'sound/vox_fem/gear.ogg', + "geared" = 'sound/vox_fem/geared.ogg', + "gearing" = 'sound/vox_fem/gearing.ogg', + "generate" = 'sound/vox_fem/generate.ogg', + "generated" = 'sound/vox_fem/generated.ogg', + "generating" = 'sound/vox_fem/generating.ogg', + "generator" = 'sound/vox_fem/generator.ogg', + "geneticist" = 'sound/vox_fem/geneticist.ogg', + "get" = 'sound/vox_fem/get.ogg', + "give" = 'sound/vox_fem/give.ogg', + "given" = 'sound/vox_fem/given.ogg', + "glory" = 'sound/vox_fem/glory.ogg', + "go" = 'sound/vox_fem/go.ogg', + "god" = 'sound/vox_fem/god.ogg', + "going" = 'sound/vox_fem/going.ogg', + "golem" = 'sound/vox_fem/golem.ogg', + "good" = 'sound/vox_fem/good.ogg', + "goodbye" = 'sound/vox_fem/goodbye.ogg', + "gordon" = 'sound/vox_fem/gordon.ogg', + "got" = 'sound/vox_fem/got.ogg', + "government" = 'sound/vox_fem/government.ogg', + "granted" = 'sound/vox_fem/granted.ogg', + "gravity" = 'sound/vox_fem/gravity.ogg', + "gray" = 'sound/vox_fem/gray.ogg', + "great" = 'sound/vox_fem/great.ogg', + "green" = 'sound/vox_fem/green.ogg', + "grenade" = 'sound/vox_fem/grenade.ogg', + "guard" = 'sound/vox_fem/guard.ogg', + "gulf" = 'sound/vox_fem/gulf.ogg', + "gun" = 'sound/vox_fem/gun.ogg', + "guthrie" = 'sound/vox_fem/guthrie.ogg', + "gyatt" = 'sound/vox_fem/gyatt.ogg', + "h" = 'sound/vox_fem/h.ogg', + "hacker" = 'sound/vox_fem/hacker.ogg', + "hackers" = 'sound/vox_fem/hackers.ogg', + "had" = 'sound/vox_fem/had.ogg', + "hall" = 'sound/vox_fem/hall.ogg', + "hallway" = 'sound/vox_fem/hallway.ogg', + "halon" = 'sound/vox_fem/halon.ogg', + "handling" = 'sound/vox_fem/handling.ogg', + "hangar" = 'sound/vox_fem/hangar.ogg', + "hard" = 'sound/vox_fem/hard.ogg', + "hardly" = 'sound/vox_fem/hardly.ogg', + "harm" = 'sound/vox_fem/harm.ogg', + "harmful" = 'sound/vox_fem/harmful.ogg', + "harness" = 'sound/vox_fem/harness.ogg', + "harnessed" = 'sound/vox_fem/harnessed.ogg', + "harnessing" = 'sound/vox_fem/harnessing.ogg', + "has" = 'sound/vox_fem/has.ogg', + "have" = 'sound/vox_fem/have.ogg', + "hazard" = 'sound/vox_fem/hazard.ogg', + "he" = 'sound/vox_fem/he.ogg', + "head" = 'sound/vox_fem/head.ogg', + "heal" = 'sound/vox_fem/heal.ogg', + "healed" = 'sound/vox_fem/healed.ogg', + "healing" = 'sound/vox_fem/healing.ogg', + "healium" = 'sound/vox_fem/healium.ogg', + "health" = 'sound/vox_fem/health.ogg', + "heat" = 'sound/vox_fem/heat.ogg', + "heated" = 'sound/vox_fem/heated.ogg', + "heating" = 'sound/vox_fem/heating.ogg', + "helicopter" = 'sound/vox_fem/helicopter.ogg', + "helium" = 'sound/vox_fem/helium.ogg', + "hello" = 'sound/vox_fem/hello.ogg', + "help" = 'sound/vox_fem/help.ogg', + "her" = 'sound/vox_fem/her.ogg', + "here" = 'sound/vox_fem/here.ogg', + "heretic" = 'sound/vox_fem/heretic.ogg', + "hide" = 'sound/vox_fem/hide.ogg', + "high" = 'sound/vox_fem/high.ogg', + "highest" = 'sound/vox_fem/highest.ogg', + "him" = 'sound/vox_fem/him.ogg', + "hit" = 'sound/vox_fem/hit.ogg', + "hole" = 'sound/vox_fem/hole.ogg', + "honk" = 'sound/vox_fem/honk.ogg', + "hop" = 'sound/vox_fem/hop.ogg', + "hos" = 'sound/vox_fem/hos.ogg', + "hostile" = 'sound/vox_fem/hostile.ogg', + "hot" = 'sound/vox_fem/hot.ogg', + "hotel" = 'sound/vox_fem/hotel.ogg', + "hour" = 'sound/vox_fem/hour.ogg', + "hours" = 'sound/vox_fem/hours.ogg', + "how" = 'sound/vox_fem/how.ogg', + "human" = 'sound/vox_fem/human.ogg', + "humanoid" = 'sound/vox_fem/humanoid.ogg', + "humans" = 'sound/vox_fem/humans.ogg', + "hundred" = 'sound/vox_fem/hundred.ogg', + "hunger" = 'sound/vox_fem/hunger.ogg', + "hurt" = 'sound/vox_fem/hurt.ogg', + "hydro" = 'sound/vox_fem/hydro.ogg', + "hydrogen" = 'sound/vox_fem/hydrogen.ogg', + "hydroponics" = 'sound/vox_fem/hydroponics.ogg', + "hyper-noblium" = 'sound/vox_fem/hyper-noblium.ogg', + "i" = 'sound/vox_fem/i.ogg', + "ian" = 'sound/vox_fem/ian.ogg', + "idiot" = 'sound/vox_fem/idiot.ogg', + "if" = 'sound/vox_fem/if.ogg', + "if2" = 'sound/vox_fem/if2.ogg', + "illegal" = 'sound/vox_fem/illegal.ogg', + "immediate" = 'sound/vox_fem/immediate.ogg', + "immediately" = 'sound/vox_fem/immediately.ogg', + "immortal" = 'sound/vox_fem/immortal.ogg', + "impossible" = 'sound/vox_fem/impossible.ogg', + "in" = 'sound/vox_fem/in.ogg', + "inches" = 'sound/vox_fem/inches.ogg', + "india" = 'sound/vox_fem/india.ogg', + "inert" = 'sound/vox_fem/inert.ogg', + "ing" = 'sound/vox_fem/ing.ogg', + "inoperative" = 'sound/vox_fem/inoperative.ogg', + "inside" = 'sound/vox_fem/inside.ogg', + "inspection" = 'sound/vox_fem/inspection.ogg', + "inspector" = 'sound/vox_fem/inspector.ogg', + "interchange" = 'sound/vox_fem/interchange.ogg', + "internal" = 'sound/vox_fem/internal.ogg', + "internals" = 'sound/vox_fem/internals.ogg', + "intruder" = 'sound/vox_fem/intruder.ogg', + "invalid" = 'sound/vox_fem/invalid.ogg', + "invalidate" = 'sound/vox_fem/invalidate.ogg', + "invasion" = 'sound/vox_fem/invasion.ogg', + "irradiate" = 'sound/vox_fem/irradiate.ogg', + "is" = 'sound/vox_fem/is.ogg', + "it" = 'sound/vox_fem/it.ogg', + "its" = 'sound/vox_fem/its.ogg', + "j" = 'sound/vox_fem/j.ogg', + "janitor" = 'sound/vox_fem/janitor.ogg', + "jesus" = 'sound/vox_fem/jesus.ogg', + "job" = 'sound/vox_fem/job.ogg', + "jobs" = 'sound/vox_fem/jobs.ogg', + "johnson" = 'sound/vox_fem/johnson.ogg', + "jolly" = 'sound/vox_fem/jolly.ogg', + "juliet" = 'sound/vox_fem/juliet.ogg', + "k" = 'sound/vox_fem/k.ogg', + "kelvin" = 'sound/vox_fem/kelvin.ogg', + "key" = 'sound/vox_fem/key.ogg', + "kidnapped" = 'sound/vox_fem/kidnapped.ogg', + "kidnapping" = 'sound/vox_fem/kidnapping.ogg', + "kill" = 'sound/vox_fem/kill.ogg', + "killed" = 'sound/vox_fem/killed.ogg', + "killer" = 'sound/vox_fem/killer.ogg', + "kilo" = 'sound/vox_fem/kilo.ogg', + "kit" = 'sound/vox_fem/kit.ogg', + "kitchen" = 'sound/vox_fem/kitchen.ogg', + "l" = 'sound/vox_fem/l.ogg', + "lab" = 'sound/vox_fem/lab.ogg', + "lambda" = 'sound/vox_fem/lambda.ogg', + "large" = 'sound/vox_fem/large.ogg', + "laser" = 'sound/vox_fem/laser.ogg', + "last" = 'sound/vox_fem/last.ogg', + "launch" = 'sound/vox_fem/launch.ogg', + "lavaland" = 'sound/vox_fem/lavaland.ogg', + "law" = 'sound/vox_fem/law.ogg', + "laws" = 'sound/vox_fem/laws.ogg', + "lawyer" = 'sound/vox_fem/lawyer.ogg', + "leak" = 'sound/vox_fem/leak.ogg', + "leave" = 'sound/vox_fem/leave.ogg', + "left" = 'sound/vox_fem/left.ogg', + "legal" = 'sound/vox_fem/legal.ogg', + "level" = 'sound/vox_fem/level.ogg', + "lever" = 'sound/vox_fem/lever.ogg', + "library" = 'sound/vox_fem/library.ogg', + "lie" = 'sound/vox_fem/lie.ogg', + "lieutenant" = 'sound/vox_fem/lieutenant.ogg', + "life" = 'sound/vox_fem/life.ogg', + "lifeform" = 'sound/vox_fem/lifeform.ogg', + "light" = 'sound/vox_fem/light.ogg', + "lightbulb" = 'sound/vox_fem/lightbulb.ogg', + "lima" = 'sound/vox_fem/lima.ogg', + "limit" = 'sound/vox_fem/limit.ogg', + "limited" = 'sound/vox_fem/limited.ogg', + "liquid" = 'sound/vox_fem/liquid.ogg', + "list" = 'sound/vox_fem/list.ogg', + "live" = 'sound/vox_fem/live.ogg', + "live2" = 'sound/vox_fem/live2.ogg', + "lizard" = 'sound/vox_fem/lizard.ogg', + "lizardperson" = 'sound/vox_fem/lizardperson.ogg', + "loading" = 'sound/vox_fem/loading.ogg', + "locate" = 'sound/vox_fem/locate.ogg', + "located" = 'sound/vox_fem/located.ogg', + "location" = 'sound/vox_fem/location.ogg', + "lock" = 'sound/vox_fem/lock.ogg', + "locked" = 'sound/vox_fem/locked.ogg', + "locker" = 'sound/vox_fem/locker.ogg', + "lockout" = 'sound/vox_fem/lockout.ogg', + "long" = 'sound/vox_fem/long.ogg', + "look" = 'sound/vox_fem/look.ogg', + "loop" = 'sound/vox_fem/loop.ogg', + "loose" = 'sound/vox_fem/loose.ogg', + "lot" = 'sound/vox_fem/lot.ogg', + "lower" = 'sound/vox_fem/lower.ogg', + "lowest" = 'sound/vox_fem/lowest.ogg', + "lusty" = 'sound/vox_fem/lusty.ogg', + "m" = 'sound/vox_fem/m.ogg', + "machine" = 'sound/vox_fem/machine.ogg', + "made" = 'sound/vox_fem/made.ogg', + "magic" = 'sound/vox_fem/magic.ogg', + "magnetic" = 'sound/vox_fem/magnetic.ogg', + "main" = 'sound/vox_fem/main.ogg', + "maintainer" = 'sound/vox_fem/maintainer.ogg', + "maintenance" = 'sound/vox_fem/maintenance.ogg', + "major" = 'sound/vox_fem/major.ogg', + "making" = 'sound/vox_fem/making.ogg', + "malfunction" = 'sound/vox_fem/malfunction.ogg', + "man" = 'sound/vox_fem/man.ogg', + "many" = 'sound/vox_fem/many.ogg', + "mass" = 'sound/vox_fem/mass.ogg', + "materials" = 'sound/vox_fem/materials.ogg', + "maximum" = 'sound/vox_fem/maximum.ogg', + "may" = 'sound/vox_fem/may.ogg', + "me" = 'sound/vox_fem/me.ogg', + "mean" = 'sound/vox_fem/mean.ogg', + "means" = 'sound/vox_fem/means.ogg', + "meat" = 'sound/vox_fem/meat.ogg', + "medbay" = 'sound/vox_fem/medbay.ogg', + "medical" = 'sound/vox_fem/medical.ogg', + "medium" = 'sound/vox_fem/medium.ogg', + "megafauna" = 'sound/vox_fem/megafauna.ogg', + "men" = 'sound/vox_fem/men.ogg', + "mercy" = 'sound/vox_fem/mercy.ogg', + "mesa" = 'sound/vox_fem/mesa.ogg', + "meson" = 'sound/vox_fem/meson.ogg', + "message" = 'sound/vox_fem/message.ogg', + "meter" = 'sound/vox_fem/meter.ogg', + "method" = 'sound/vox_fem/method.ogg', + "miasma" = 'sound/vox_fem/miasma.ogg', + "micro" = 'sound/vox_fem/micro.ogg', + "middle" = 'sound/vox_fem/middle.ogg', + "mike" = 'sound/vox_fem/mike.ogg', + "miles" = 'sound/vox_fem/miles.ogg', + "military" = 'sound/vox_fem/military.ogg', + "milli" = 'sound/vox_fem/milli.ogg', + "million" = 'sound/vox_fem/million.ogg', + "mime" = 'sound/vox_fem/mime.ogg', + "minefield" = 'sound/vox_fem/minefield.ogg', + "miner" = 'sound/vox_fem/miner.ogg', + "minimum" = 'sound/vox_fem/minimum.ogg', + "minor" = 'sound/vox_fem/minor.ogg', + "minute" = 'sound/vox_fem/minute.ogg', + "minutes" = 'sound/vox_fem/minutes.ogg', + "mister" = 'sound/vox_fem/mister.ogg', + "mixture" = 'sound/vox_fem/mixture.ogg', + "mode" = 'sound/vox_fem/mode.ogg', + "modification" = 'sound/vox_fem/modification.ogg', + "money" = 'sound/vox_fem/money.ogg', + "monkey" = 'sound/vox_fem/monkey.ogg', + "most" = 'sound/vox_fem/most.ogg', + "moth" = 'sound/vox_fem/moth.ogg', + "mothperson" = 'sound/vox_fem/mothperson.ogg', + "motor" = 'sound/vox_fem/motor.ogg', + "motorpool" = 'sound/vox_fem/motorpool.ogg', + "move" = 'sound/vox_fem/move.ogg', + "moved" = 'sound/vox_fem/moved.ogg', + "moving" = 'sound/vox_fem/moving.ogg', + "multitude" = 'sound/vox_fem/multitude.ogg', + "murder" = 'sound/vox_fem/murder.ogg', + "murderer" = 'sound/vox_fem/murderer.ogg', + "must" = 'sound/vox_fem/must.ogg', + "my" = 'sound/vox_fem/my.ogg', + "mythic" = 'sound/vox_fem/mythic.ogg', + "n" = 'sound/vox_fem/n.ogg', + "nanotrasen" = 'sound/vox_fem/nanotrasen.ogg', + "near" = 'sound/vox_fem/near.ogg', + "nearest" = 'sound/vox_fem/nearest.ogg', + "nearly" = 'sound/vox_fem/nearly.ogg', + "need" = 'sound/vox_fem/need.ogg', + "never" = 'sound/vox_fem/never.ogg', + "nice" = 'sound/vox_fem/nice.ogg', + "night" = 'sound/vox_fem/night.ogg', + "nine" = 'sound/vox_fem/nine.ogg', + "nineteen" = 'sound/vox_fem/nineteen.ogg', + "ninety" = 'sound/vox_fem/ninety.ogg', + "nitrogen" = 'sound/vox_fem/nitrogen.ogg', + "no" = 'sound/vox_fem/no.ogg', + "nominal" = 'sound/vox_fem/nominal.ogg', + "none" = 'sound/vox_fem/none.ogg', + "normal" = 'sound/vox_fem/normal.ogg', + "normally" = 'sound/vox_fem/normally.ogg', + "north" = 'sound/vox_fem/north.ogg', + "northeast" = 'sound/vox_fem/northeast.ogg', + "northwest" = 'sound/vox_fem/northwest.ogg', + "not" = 'sound/vox_fem/not.ogg', + "notably" = 'sound/vox_fem/notably.ogg', + "november" = 'sound/vox_fem/november.ogg', + "now" = 'sound/vox_fem/now.ogg', + "nuclear" = 'sound/vox_fem/nuclear.ogg', + "nuke" = 'sound/vox_fem/nuke.ogg', + "number" = 'sound/vox_fem/number.ogg', + "o" = 'sound/vox_fem/o.ogg', + "object" = 'sound/vox_fem/object.ogg', + "objective" = 'sound/vox_fem/objective.ogg', + "obliterate" = 'sound/vox_fem/obliterate.ogg', + "obliterated" = 'sound/vox_fem/obliterated.ogg', + "obliterating" = 'sound/vox_fem/obliterating.ogg', + "observation" = 'sound/vox_fem/observation.ogg', + "obtain" = 'sound/vox_fem/obtain.ogg', + "of" = 'sound/vox_fem/of.ogg', + "off" = 'sound/vox_fem/off.ogg', + "office" = 'sound/vox_fem/office.ogg', + "officer" = 'sound/vox_fem/officer.ogg', + "oh" = 'sound/vox_fem/oh.ogg', + "ok" = 'sound/vox_fem/ok.ogg', + "okay" = 'sound/vox_fem/okay.ogg', + "on" = 'sound/vox_fem/on.ogg', + "once" = 'sound/vox_fem/once.ogg', + "one" = 'sound/vox_fem/one.ogg', + "oof" = 'sound/vox_fem/oof.ogg', + "open" = 'sound/vox_fem/open.ogg', + "opened" = 'sound/vox_fem/opened.ogg', + "opening" = 'sound/vox_fem/opening.ogg', + "operating" = 'sound/vox_fem/operating.ogg', + "operations" = 'sound/vox_fem/operations.ogg', + "operative" = 'sound/vox_fem/operative.ogg', + "option" = 'sound/vox_fem/option.ogg', + "or" = 'sound/vox_fem/or.ogg', + "order" = 'sound/vox_fem/order.ogg', + "ordered" = 'sound/vox_fem/ordered.ogg', + "ordering" = 'sound/vox_fem/ordering.ogg', + "organic" = 'sound/vox_fem/organic.ogg', + "oscar" = 'sound/vox_fem/oscar.ogg', + "out" = 'sound/vox_fem/out.ogg', + "output" = 'sound/vox_fem/output.ogg', + "outside" = 'sound/vox_fem/outside.ogg', + "over" = 'sound/vox_fem/over.ogg', + "overload" = 'sound/vox_fem/overload.ogg', + "override" = 'sound/vox_fem/override.ogg', + "own" = 'sound/vox_fem/own.ogg', + "oxygen" = 'sound/vox_fem/oxygen.ogg', + "p" = 'sound/vox_fem/p.ogg', + "pacification" = 'sound/vox_fem/pacification.ogg', + "pacify" = 'sound/vox_fem/pacify.ogg', + "pain" = 'sound/vox_fem/pain.ogg', + "pal" = 'sound/vox_fem/pal.ogg', + "panel" = 'sound/vox_fem/panel.ogg', + "panting" = 'sound/vox_fem/panting.ogg', + "pathetic" = 'sound/vox_fem/pathetic.ogg', + "pda" = 'sound/vox_fem/pda.ogg', + "percent" = 'sound/vox_fem/percent.ogg', + "perfect" = 'sound/vox_fem/perfect.ogg', + "perhaps" = 'sound/vox_fem/perhaps.ogg', + "perimeter" = 'sound/vox_fem/perimeter.ogg', + "permitted" = 'sound/vox_fem/permitted.ogg', + "personal" = 'sound/vox_fem/personal.ogg', + "personnel" = 'sound/vox_fem/personnel.ogg', + "pipe" = 'sound/vox_fem/pipe.ogg', + "piping" = 'sound/vox_fem/piping.ogg', + "piss" = 'sound/vox_fem/piss.ogg', + "plant" = 'sound/vox_fem/plant.ogg', + "plasma" = 'sound/vox_fem/plasma.ogg', + "plasmaman" = 'sound/vox_fem/plasmaman.ogg', + "platform" = 'sound/vox_fem/platform.ogg', + "plating" = 'sound/vox_fem/plating.ogg', + "plausible" = 'sound/vox_fem/plausible.ogg', + "please" = 'sound/vox_fem/please.ogg', + "pluoxium" = 'sound/vox_fem/pluoxium.ogg', + "point" = 'sound/vox_fem/point.ogg', + "port" = 'sound/vox_fem/port.ogg', + "portal" = 'sound/vox_fem/portal.ogg', + "portion" = 'sound/vox_fem/portion.ogg', + "possible" = 'sound/vox_fem/possible.ogg', + "power" = 'sound/vox_fem/power.ogg', + "powered" = 'sound/vox_fem/powered.ogg', + "powering" = 'sound/vox_fem/powering.ogg', + "premature" = 'sound/vox_fem/premature.ogg', + "prematurely" = 'sound/vox_fem/prematurely.ogg', + "presence" = 'sound/vox_fem/presence.ogg', + "present" = 'sound/vox_fem/present.ogg', + "presents" = 'sound/vox_fem/presents.ogg', + "press" = 'sound/vox_fem/press.ogg', + "pressure" = 'sound/vox_fem/pressure.ogg', + "primary" = 'sound/vox_fem/primary.ogg', + "priority" = 'sound/vox_fem/priority.ogg', + "prison" = 'sound/vox_fem/prison.ogg', + "prisoner" = 'sound/vox_fem/prisoner.ogg', + "proceed" = 'sound/vox_fem/proceed.ogg', + "processing" = 'sound/vox_fem/processing.ogg', + "progress" = 'sound/vox_fem/progress.ogg', + "projectile" = 'sound/vox_fem/projectile.ogg', + "proper" = 'sound/vox_fem/proper.ogg', + "propulsion" = 'sound/vox_fem/propulsion.ogg', + "prosecute" = 'sound/vox_fem/prosecute.ogg', + "protect" = 'sound/vox_fem/protect.ogg', + "protected" = 'sound/vox_fem/protected.ogg', + "protection" = 'sound/vox_fem/protection.ogg', + "protective" = 'sound/vox_fem/protective.ogg', + "proto-nitrate" = 'sound/vox_fem/proto-nitrate.ogg', + "pull" = 'sound/vox_fem/pull.ogg', + "pulled" = 'sound/vox_fem/pulled.ogg', + "pulling" = 'sound/vox_fem/pulling.ogg', + "pump" = 'sound/vox_fem/pump.ogg', + "pumps" = 'sound/vox_fem/pumps.ogg', + "push" = 'sound/vox_fem/push.ogg', + "put" = 'sound/vox_fem/put.ogg', + "q" = 'sound/vox_fem/q.ogg', + "quantum" = 'sound/vox_fem/quantum.ogg', + "quarantine" = 'sound/vox_fem/quarantine.ogg', + "quartermaster" = 'sound/vox_fem/quartermaster.ogg', + "quebec" = 'sound/vox_fem/quebec.ogg', + "queen" = 'sound/vox_fem/queen.ogg', + "question" = 'sound/vox_fem/question.ogg', + "questionable" = 'sound/vox_fem/questionable.ogg', + "questioning" = 'sound/vox_fem/questioning.ogg', + "quick" = 'sound/vox_fem/quick.ogg', + "quit" = 'sound/vox_fem/quit.ogg', + "r" = 'sound/vox_fem/r.ogg', + "radiation" = 'sound/vox_fem/radiation.ogg', + "radioactive" = 'sound/vox_fem/radioactive.ogg', + "rads" = 'sound/vox_fem/rads.ogg', + "raider" = 'sound/vox_fem/raider.ogg', + "raiders" = 'sound/vox_fem/raiders.ogg', + "rapid" = 'sound/vox_fem/rapid.ogg', + "reach" = 'sound/vox_fem/reach.ogg', + "reached" = 'sound/vox_fem/reached.ogg', + "reactor" = 'sound/vox_fem/reactor.ogg', + "red" = 'sound/vox_fem/red.ogg', + "relay" = 'sound/vox_fem/relay.ogg', + "release" = 'sound/vox_fem/release.ogg', + "released" = 'sound/vox_fem/released.ogg', + "releasing" = 'sound/vox_fem/releasing.ogg', + "remaining" = 'sound/vox_fem/remaining.ogg', + "removal" = 'sound/vox_fem/removal.ogg', + "remove" = 'sound/vox_fem/remove.ogg', + "removed" = 'sound/vox_fem/removed.ogg', + "removing" = 'sound/vox_fem/removing.ogg', + "renegade" = 'sound/vox_fem/renegade.ogg', + "repair" = 'sound/vox_fem/repair.ogg', + "report" = 'sound/vox_fem/report.ogg', + "reports" = 'sound/vox_fem/reports.ogg', + "request" = 'sound/vox_fem/request.ogg', + "requested" = 'sound/vox_fem/requested.ogg', + "requesting" = 'sound/vox_fem/requesting.ogg', + "require" = 'sound/vox_fem/require.ogg', + "required" = 'sound/vox_fem/required.ogg', + "research" = 'sound/vox_fem/research.ogg', + "resevoir" = 'sound/vox_fem/resevoir.ogg', + "resistance" = 'sound/vox_fem/resistance.ogg', + "resistant" = 'sound/vox_fem/resistant.ogg', + "resisting" = 'sound/vox_fem/resisting.ogg', + "resonance" = 'sound/vox_fem/resonance.ogg', + "rest" = 'sound/vox_fem/rest.ogg', + "restoration" = 'sound/vox_fem/restoration.ogg', + "revolution" = 'sound/vox_fem/revolution.ogg', + "revolutionary" = 'sound/vox_fem/revolutionary.ogg', + "right" = 'sound/vox_fem/right.ogg', + "riot" = 'sound/vox_fem/riot.ogg', + "rizz" = 'sound/vox_fem/rizz.ogg', + "roboticist" = 'sound/vox_fem/roboticist.ogg', + "rocket" = 'sound/vox_fem/rocket.ogg', + "roger" = 'sound/vox_fem/roger.ogg', + "rogue" = 'sound/vox_fem/rogue.ogg', + "romeo" = 'sound/vox_fem/romeo.ogg', + "room" = 'sound/vox_fem/room.ogg', + "round" = 'sound/vox_fem/round.ogg', + "run" = 'sound/vox_fem/run.ogg', + "rune" = 'sound/vox_fem/rune.ogg', + "runtime" = 'sound/vox_fem/runtime.ogg', + "s" = 'sound/vox_fem/s.ogg', + "sabotage" = 'sound/vox_fem/sabotage.ogg', + "sabotaged" = 'sound/vox_fem/sabotaged.ogg', + "sabotaging" = 'sound/vox_fem/sabotaging.ogg', + "safe" = 'sound/vox_fem/safe.ogg', + "safety" = 'sound/vox_fem/safety.ogg', + "sairhorn" = 'sound/vox_fem/sairhorn.ogg', + "same" = 'sound/vox_fem/same.ogg', + "sarah" = 'sound/vox_fem/sarah.ogg', + "sargeant" = 'sound/vox_fem/sargeant.ogg', + "satellite" = 'sound/vox_fem/satellite.ogg', + "save" = 'sound/vox_fem/save.ogg', + "saw" = 'sound/vox_fem/saw.ogg', + "scan" = 'sound/vox_fem/scan.ogg', + "scanned" = 'sound/vox_fem/scanned.ogg', + "scanner" = 'sound/vox_fem/scanner.ogg', + "scanners" = 'sound/vox_fem/scanners.ogg', + "scanning" = 'sound/vox_fem/scanning.ogg', + "scensor" = 'sound/vox_fem/scensor.ogg', + "science" = 'sound/vox_fem/science.ogg', + "scientist" = 'sound/vox_fem/scientist.ogg', + "scream" = 'sound/vox_fem/scream.ogg', + "screen" = 'sound/vox_fem/screen.ogg', + "screw" = 'sound/vox_fem/screw.ogg', + "search" = 'sound/vox_fem/search.ogg', + "second" = 'sound/vox_fem/second.ogg', + "secondary" = 'sound/vox_fem/secondary.ogg', + "seconds" = 'sound/vox_fem/seconds.ogg', + "section" = 'sound/vox_fem/section.ogg', + "sector" = 'sound/vox_fem/sector.ogg', + "secure" = 'sound/vox_fem/secure.ogg', + "secured" = 'sound/vox_fem/secured.ogg', + "security" = 'sound/vox_fem/security.ogg', + "seen" = 'sound/vox_fem/seen.ogg', + "select" = 'sound/vox_fem/select.ogg', + "selected" = 'sound/vox_fem/selected.ogg', + "self" = 'sound/vox_fem/self.ogg', + "sensors" = 'sound/vox_fem/sensors.ogg', + "server" = 'sound/vox_fem/server.ogg', + "service" = 'sound/vox_fem/service.ogg', + "set" = 'sound/vox_fem/set.ogg', + "seven" = 'sound/vox_fem/seven.ogg', + "seventeen" = 'sound/vox_fem/seventeen.ogg', + "seventy" = 'sound/vox_fem/seventy.ogg', + "sever" = 'sound/vox_fem/sever.ogg', + "severe" = 'sound/vox_fem/severe.ogg', + "severed" = 'sound/vox_fem/severed.ogg', + "severing" = 'sound/vox_fem/severing.ogg', + "sewage" = 'sound/vox_fem/sewage.ogg', + "sewer" = 'sound/vox_fem/sewer.ogg', + "shaft" = 'sound/vox_fem/shaft.ogg', + "shame" = 'sound/vox_fem/shame.ogg', + "shameful" = 'sound/vox_fem/shameful.ogg', + "shameless" = 'sound/vox_fem/shameless.ogg', + "shard" = 'sound/vox_fem/shard.ogg', + "she" = 'sound/vox_fem/she.ogg', + "shield" = 'sound/vox_fem/shield.ogg', + "shift" = 'sound/vox_fem/shift.ogg', + "shifts" = 'sound/vox_fem/shifts.ogg', + "shipment" = 'sound/vox_fem/shipment.ogg', + "shirt" = 'sound/vox_fem/shirt.ogg', + "shit" = 'sound/vox_fem/shit.ogg', + "shitlord" = 'sound/vox_fem/shitlord.ogg', + "shits" = 'sound/vox_fem/shits.ogg', + "shitting" = 'sound/vox_fem/shitting.ogg', + "shock" = 'sound/vox_fem/shock.ogg', + "shonk" = 'sound/vox_fem/shonk.ogg', + "shoot" = 'sound/vox_fem/shoot.ogg', + "shower" = 'sound/vox_fem/shower.ogg', + "shut" = 'sound/vox_fem/shut.ogg', + "shuttle" = 'sound/vox_fem/shuttle.ogg', + "sick" = 'sound/vox_fem/sick.ogg', + "side" = 'sound/vox_fem/side.ogg', + "sides" = 'sound/vox_fem/sides.ogg', + "sierra" = 'sound/vox_fem/sierra.ogg', + "sight" = 'sound/vox_fem/sight.ogg', + "silicon" = 'sound/vox_fem/silicon.ogg', + "silo" = 'sound/vox_fem/silo.ogg', + "single" = 'sound/vox_fem/single.ogg', + "singularity" = 'sound/vox_fem/singularity.ogg', + "siphon" = 'sound/vox_fem/siphon.ogg', + "siphoning" = 'sound/vox_fem/siphoning.ogg', + "six" = 'sound/vox_fem/six.ogg', + "sixteen" = 'sound/vox_fem/sixteen.ogg', + "sixty" = 'sound/vox_fem/sixty.ogg', + "skeleton" = 'sound/vox_fem/skeleton.ogg', + "slaughter" = 'sound/vox_fem/slaughter.ogg', + "slime" = 'sound/vox_fem/slime.ogg', + "slip" = 'sound/vox_fem/slip.ogg', + "slippery" = 'sound/vox_fem/slippery.ogg', + "slow" = 'sound/vox_fem/slow.ogg', + "sm" = 'sound/vox_fem/sm.ogg', + "small" = 'sound/vox_fem/small.ogg', + "sockmuncher" = 'sound/vox_fem/sockmuncher.ogg', + "soft" = 'sound/vox_fem/soft.ogg', + "solar" = 'sound/vox_fem/solar.ogg', + "solars" = 'sound/vox_fem/solars.ogg', + "soldier" = 'sound/vox_fem/soldier.ogg', + "some" = 'sound/vox_fem/some.ogg', + "someone" = 'sound/vox_fem/someone.ogg', + "something" = 'sound/vox_fem/something.ogg', + "son" = 'sound/vox_fem/son.ogg', + "sorry" = 'sound/vox_fem/sorry.ogg', + "source" = 'sound/vox_fem/source.ogg', + "south" = 'sound/vox_fem/south.ogg', + "southeast" = 'sound/vox_fem/southeast.ogg', + "southwest" = 'sound/vox_fem/southwest.ogg', + "space" = 'sound/vox_fem/space.ogg', + "special" = 'sound/vox_fem/special.ogg', + "spew" = 'sound/vox_fem/spew.ogg', + "squad" = 'sound/vox_fem/squad.ogg', + "square" = 'sound/vox_fem/square.ogg', + "ss13" = 'sound/vox_fem/ss13.ogg', + "stairway" = 'sound/vox_fem/stairway.ogg', + "starboard" = 'sound/vox_fem/starboard.ogg', + "start" = 'sound/vox_fem/start.ogg', + "starts" = 'sound/vox_fem/starts.ogg', + "station" = 'sound/vox_fem/station.ogg', + "stations" = 'sound/vox_fem/stations.ogg', + "stationwide" = 'sound/vox_fem/stationwide.ogg', + "status" = 'sound/vox_fem/status.ogg', + "stay" = 'sound/vox_fem/stay.ogg', + "sterile" = 'sound/vox_fem/sterile.ogg', + "sterilization" = 'sound/vox_fem/sterilization.ogg', + "stop" = 'sound/vox_fem/stop.ogg', + "storage" = 'sound/vox_fem/storage.ogg', + "strong" = 'sound/vox_fem/strong.ogg', + "stuck" = 'sound/vox_fem/stuck.ogg', + "sub" = 'sound/vox_fem/sub.ogg', + "subsurface" = 'sound/vox_fem/subsurface.ogg', + "such" = 'sound/vox_fem/such.ogg', + "sudden" = 'sound/vox_fem/sudden.ogg', + "suffer" = 'sound/vox_fem/suffer.ogg', + "suit" = 'sound/vox_fem/suit.ogg', + "suited" = 'sound/vox_fem/suited.ogg', + "super" = 'sound/vox_fem/super.ogg', + "superconducting" = 'sound/vox_fem/superconducting.ogg', + "supercooled" = 'sound/vox_fem/supercooled.ogg', + "supermatter" = 'sound/vox_fem/supermatter.ogg', + "supply" = 'sound/vox_fem/supply.ogg', + "surface" = 'sound/vox_fem/surface.ogg', + "surrender" = 'sound/vox_fem/surrender.ogg', + "surround" = 'sound/vox_fem/surround.ogg', + "surrounded" = 'sound/vox_fem/surrounded.ogg', + "sweating" = 'sound/vox_fem/sweating.ogg', + "swhitenoise" = 'sound/vox_fem/swhitenoise.ogg', + "switch" = 'sound/vox_fem/switch.ogg', + "syndicate" = 'sound/vox_fem/syndicate.ogg', + "system" = 'sound/vox_fem/system.ogg', + "systems" = 'sound/vox_fem/systems.ogg', + "t" = 'sound/vox_fem/t.ogg', + "table" = 'sound/vox_fem/table.ogg', + "tactical" = 'sound/vox_fem/tactical.ogg', + "taildragger" = 'sound/vox_fem/taildragger.ogg', + "take" = 'sound/vox_fem/take.ogg', + "talk" = 'sound/vox_fem/talk.ogg', + "tampered" = 'sound/vox_fem/tampered.ogg', + "tango" = 'sound/vox_fem/tango.ogg', + "tank" = 'sound/vox_fem/tank.ogg', + "target" = 'sound/vox_fem/target.ogg', + "team" = 'sound/vox_fem/team.ogg', + "tech" = 'sound/vox_fem/tech.ogg', + "technician" = 'sound/vox_fem/technician.ogg', + "technology" = 'sound/vox_fem/technology.ogg', + "teleporter" = 'sound/vox_fem/teleporter.ogg', + "temperature" = 'sound/vox_fem/temperature.ogg', + "temporal" = 'sound/vox_fem/temporal.ogg', + "ten" = 'sound/vox_fem/ten.ogg', + "terminal" = 'sound/vox_fem/terminal.ogg', + "terminate" = 'sound/vox_fem/terminate.ogg', + "terminated" = 'sound/vox_fem/terminated.ogg', + "termination" = 'sound/vox_fem/termination.ogg', + "tesla" = 'sound/vox_fem/tesla.ogg', + "test" = 'sound/vox_fem/test.ogg', + "text" = 'sound/vox_fem/text.ogg', + "thank" = 'sound/vox_fem/thank.ogg', + "thanks" = 'sound/vox_fem/thanks.ogg', + "that" = 'sound/vox_fem/that.ogg', + "the" = 'sound/vox_fem/the.ogg', + "theater" = 'sound/vox_fem/theater.ogg', + "them" = 'sound/vox_fem/them.ogg', + "then" = 'sound/vox_fem/then.ogg', + "there" = 'sound/vox_fem/there.ogg', + "they" = 'sound/vox_fem/they.ogg', + "third" = 'sound/vox_fem/third.ogg', + "thirteen" = 'sound/vox_fem/thirteen.ogg', + "thirty" = 'sound/vox_fem/thirty.ogg', + "this" = 'sound/vox_fem/this.ogg', + "those" = 'sound/vox_fem/those.ogg', + "thousand" = 'sound/vox_fem/thousand.ogg', + "threat" = 'sound/vox_fem/threat.ogg', + "three" = 'sound/vox_fem/three.ogg', + "through" = 'sound/vox_fem/through.ogg', + "tick" = 'sound/vox_fem/tick.ogg', + "tide" = 'sound/vox_fem/tide.ogg', + "tile" = 'sound/vox_fem/tile.ogg', + "time" = 'sound/vox_fem/time.ogg', + "tiny" = 'sound/vox_fem/tiny.ogg', + "to" = 'sound/vox_fem/to.ogg', + "top" = 'sound/vox_fem/top.ogg', + "topside" = 'sound/vox_fem/topside.ogg', + "touch" = 'sound/vox_fem/touch.ogg', + "touched" = 'sound/vox_fem/touched.ogg', + "touching" = 'sound/vox_fem/touching.ogg', + "towards" = 'sound/vox_fem/towards.ogg', + "toxins" = 'sound/vox_fem/toxins.ogg', + "track" = 'sound/vox_fem/track.ogg', + "train" = 'sound/vox_fem/train.ogg', + "traitor" = 'sound/vox_fem/traitor.ogg', + "transportation" = 'sound/vox_fem/transportation.ogg', + "trigger" = 'sound/vox_fem/trigger.ogg', + "triggered" = 'sound/vox_fem/triggered.ogg', + "triggering" = 'sound/vox_fem/triggering.ogg', + "triple" = 'sound/vox_fem/triple.ogg', + "tritium" = 'sound/vox_fem/tritium.ogg', + "truck" = 'sound/vox_fem/truck.ogg', + "true" = 'sound/vox_fem/true.ogg', + "tunnel" = 'sound/vox_fem/tunnel.ogg', + "turn" = 'sound/vox_fem/turn.ogg', + "turned" = 'sound/vox_fem/turned.ogg', + "turret" = 'sound/vox_fem/turret.ogg', + "twelve" = 'sound/vox_fem/twelve.ogg', + "twenty" = 'sound/vox_fem/twenty.ogg', + "two" = 'sound/vox_fem/two.ogg', + "u" = 'sound/vox_fem/u.ogg', + "ugh" = 'sound/vox_fem/ugh.ogg', + "ughh" = 'sound/vox_fem/ughh.ogg', + "unable" = 'sound/vox_fem/unable.ogg', + "unauthorized" = 'sound/vox_fem/unauthorized.ogg', + "under" = 'sound/vox_fem/under.ogg', + "uniform" = 'sound/vox_fem/uniform.ogg', + "unique" = 'sound/vox_fem/unique.ogg', + "unknown" = 'sound/vox_fem/unknown.ogg', + "unlocked" = 'sound/vox_fem/unlocked.ogg', + "unsafe" = 'sound/vox_fem/unsafe.ogg', + "until" = 'sound/vox_fem/until.ogg', + "unwrench" = 'sound/vox_fem/unwrench.ogg', + "unwrenching" = 'sound/vox_fem/unwrenching.ogg', + "up" = 'sound/vox_fem/up.ogg', + "update" = 'sound/vox_fem/update.ogg', + "updated" = 'sound/vox_fem/updated.ogg', + "updating" = 'sound/vox_fem/updating.ogg', + "upload" = 'sound/vox_fem/upload.ogg', + "upper" = 'sound/vox_fem/upper.ogg', + "uranium" = 'sound/vox_fem/uranium.ogg', + "us" = 'sound/vox_fem/us.ogg', + "usa" = 'sound/vox_fem/usa.ogg', + "use" = 'sound/vox_fem/use.ogg', + "used" = 'sound/vox_fem/used.ogg', + "useful" = 'sound/vox_fem/useful.ogg', + "useless" = 'sound/vox_fem/useless.ogg', + "user" = 'sound/vox_fem/user.ogg', + "v" = 'sound/vox_fem/v.ogg', + "vacate" = 'sound/vox_fem/vacate.ogg', + "vacuum" = 'sound/vox_fem/vacuum.ogg', + "valid" = 'sound/vox_fem/valid.ogg', + "validate" = 'sound/vox_fem/validate.ogg', + "vapor" = 'sound/vox_fem/vapor.ogg', + "vendor" = 'sound/vox_fem/vendor.ogg', + "vent" = 'sound/vox_fem/vent.ogg', + "ventilation" = 'sound/vox_fem/ventilation.ogg', + "very" = 'sound/vox_fem/very.ogg', + "victor" = 'sound/vox_fem/victor.ogg', + "violated" = 'sound/vox_fem/violated.ogg', + "violation" = 'sound/vox_fem/violation.ogg', + "virologist" = 'sound/vox_fem/virologist.ogg', + "virology" = 'sound/vox_fem/virology.ogg', + "virus" = 'sound/vox_fem/virus.ogg', + "vitals" = 'sound/vox_fem/vitals.ogg', + "voltage" = 'sound/vox_fem/voltage.ogg', + "vox" = 'sound/vox_fem/vox.ogg', + "voxtest" = 'sound/vox_fem/voxtest.ogg', + "vox_login" = 'sound/vox_fem/vox_login.ogg', + "w" = 'sound/vox_fem/w.ogg', + "walk" = 'sound/vox_fem/walk.ogg', + "wall" = 'sound/vox_fem/wall.ogg', + "wanker" = 'sound/vox_fem/wanker.ogg', + "want" = 'sound/vox_fem/want.ogg', + "wanted" = 'sound/vox_fem/wanted.ogg', + "warden" = 'sound/vox_fem/warden.ogg', + "warm" = 'sound/vox_fem/warm.ogg', + "warn" = 'sound/vox_fem/warn.ogg', + "warning" = 'sound/vox_fem/warning.ogg', + "was" = 'sound/vox_fem/was.ogg', + "waste" = 'sound/vox_fem/waste.ogg', + "water" = 'sound/vox_fem/water.ogg', + "way" = 'sound/vox_fem/way.ogg', + "ways" = 'sound/vox_fem/ways.ogg', + "we" = 'sound/vox_fem/we.ogg', + "weak" = 'sound/vox_fem/weak.ogg', + "weapon" = 'sound/vox_fem/weapon.ogg', + "welcome" = 'sound/vox_fem/welcome.ogg', + "weld" = 'sound/vox_fem/weld.ogg', + "west" = 'sound/vox_fem/west.ogg', + "wew" = 'sound/vox_fem/wew.ogg', + "what" = 'sound/vox_fem/what.ogg', + "when" = 'sound/vox_fem/when.ogg', + "where" = 'sound/vox_fem/where.ogg', + "which" = 'sound/vox_fem/which.ogg', + "while" = 'sound/vox_fem/while.ogg', + "whiskey" = 'sound/vox_fem/whiskey.ogg', + "white" = 'sound/vox_fem/white.ogg', + "why" = 'sound/vox_fem/why.ogg', + "wilco" = 'sound/vox_fem/wilco.ogg', + "will" = 'sound/vox_fem/will.ogg', + "wing" = 'sound/vox_fem/wing.ogg', + "wire" = 'sound/vox_fem/wire.ogg', + "with" = 'sound/vox_fem/with.ogg', + "without" = 'sound/vox_fem/without.ogg', + "wizard" = 'sound/vox_fem/wizard.ogg', + "wood" = 'sound/vox_fem/wood.ogg', + "woody" = 'sound/vox_fem/woody.ogg', + "woop" = 'sound/vox_fem/woop.ogg', + "work" = 'sound/vox_fem/work.ogg', + "worked" = 'sound/vox_fem/worked.ogg', + "working" = 'sound/vox_fem/working.ogg', + "works" = 'sound/vox_fem/works.ogg', + "would" = 'sound/vox_fem/would.ogg', + "wouldnt" = 'sound/vox_fem/wouldnt.ogg', + "wow" = 'sound/vox_fem/wow.ogg', + "wrench" = 'sound/vox_fem/wrench.ogg', + "wrenching" = 'sound/vox_fem/wrenching.ogg', + "x" = 'sound/vox_fem/x.ogg', + "xeno" = 'sound/vox_fem/xeno.ogg', + "xenobiology" = 'sound/vox_fem/xenobiology.ogg', + "xenomorph" = 'sound/vox_fem/xenomorph.ogg', + "xenomorphs" = 'sound/vox_fem/xenomorphs.ogg', + "y" = 'sound/vox_fem/y.ogg', + "yankee" = 'sound/vox_fem/yankee.ogg', + "yards" = 'sound/vox_fem/yards.ogg', + "year" = 'sound/vox_fem/year.ogg', + "yellow" = 'sound/vox_fem/yellow.ogg', + "yes" = 'sound/vox_fem/yes.ogg', + "you" = 'sound/vox_fem/you.ogg', + "your" = 'sound/vox_fem/your.ogg', + "yourself" = 'sound/vox_fem/yourself.ogg', + "z" = 'sound/vox_fem/z.ogg', + "zap" = 'sound/vox_fem/zap.ogg', + "zauker" = 'sound/vox_fem/zauker.ogg', + "zero" = 'sound/vox_fem/zero.ogg', + "zombie" = 'sound/vox_fem/zombie.ogg', + "zone" = 'sound/vox_fem/zone.ogg', + "zulu" = 'sound/vox_fem/zulu.ogg', +)) #endif diff --git a/code/modules/mob/living/silicon/robot/robot_model.dm b/code/modules/mob/living/silicon/robot/robot_model.dm index e6f71314e762..68bc4710d0cb 100644 --- a/code/modules/mob/living/silicon/robot/robot_model.dm +++ b/code/modules/mob/living/silicon/robot/robot_model.dm @@ -811,6 +811,11 @@ /obj/item/extinguisher/mini, /obj/item/hand_labeler/borg, /obj/item/razor, + // Monkestation edit start: Barbering + /obj/item/scissors, + /obj/item/hairbrush/comb, + /obj/item/dyespray, + // Monestation edit end /obj/item/rsf, /obj/item/instrument/guitar, /obj/item/instrument/piano_synth/robot, diff --git a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm index 38d1e2b09d6b..7bd60ef4f5c3 100644 --- a/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm +++ b/code/modules/mob/living/simple_animal/hostile/mining_mobs/elites/elite.dm @@ -379,7 +379,7 @@ While using this makes the system rely on OnFire, it still gives options for tim . = ..() if(istype(target, /mob/living/simple_animal/hostile/asteroid/elite) && proximity_flag) var/mob/living/simple_animal/hostile/asteroid/elite/E = target - if(E.stat != DEAD || E.sentience_type != SENTIENCE_BOSS || !E.key) + if(E.stat != DEAD || E.sentience_type != SENTIENCE_BOSS) //MONKESTATION EDIT: removed || !E.key user.visible_message(span_notice("It appears [E] is unable to be revived right now. Perhaps try again later.")) return E.faction = list("[REF(user)]") @@ -391,6 +391,7 @@ While using this makes the system rely on OnFire, it still gives options for tim E.maxHealth = E.maxHealth * 0.4 E.health = E.maxHealth E.desc = "[E.desc] However, this one appears appears less wild in nature, and calmer around people." + E.grab_ghost() // MONKESTATION ADDITION E.sentience_type = SENTIENCE_ORGANIC qdel(src) else diff --git a/code/modules/mob/login.dm b/code/modules/mob/login.dm index 67539f876b98..48de22c8a762 100644 --- a/code/modules/mob/login.dm +++ b/code/modules/mob/login.dm @@ -46,9 +46,9 @@ if(hud_used) if (forced_interaction_mode) - client.imode.replace(forced_interaction_mode) + client.imode?.replace(forced_interaction_mode) else - client.imode.reload_hud(src) + client.imode?.reload_hud(src) hud_used.show_hud(hud_used.hud_version) // see above, this can process a disconnect if(!client) return FALSE diff --git a/code/modules/mob/mob.dm b/code/modules/mob/mob.dm index ea0fee8f9dfb..d01c158dcd9c 100644 --- a/code/modules/mob/mob.dm +++ b/code/modules/mob/mob.dm @@ -1488,9 +1488,8 @@ if(!canon_client) return - for(var/foo in canon_client.player_details.post_logout_callbacks) - var/datum/callback/CB = foo - CB.Invoke() + for(var/datum/callback/callback as anything in canon_client.player_details?.post_logout_callbacks) + callback.Invoke() if(canon_client?.movingmob) LAZYREMOVE(canon_client.movingmob.client_mobs_in_contents, src) diff --git a/code/modules/mob/transform_procs.dm b/code/modules/mob/transform_procs.dm index 37360e77d7a4..a518870258e1 100644 --- a/code/modules/mob/transform_procs.dm +++ b/code/modules/mob/transform_procs.dm @@ -33,10 +33,10 @@ invisibility = 0 set_species(/datum/species/monkey) name = "monkey" + regenerate_icons() set_name() SEND_SIGNAL(src, COMSIG_HUMAN_MONKEYIZE) uncuff() - regenerate_icons() return src ////////////////////////// Humanize ////////////////////////////// diff --git a/code/modules/mod/mod_construction.dm b/code/modules/mod/mod_construction.dm index c144c03b356e..3b292dfda8fa 100644 --- a/code/modules/mod/mod_construction.dm +++ b/code/modules/mod/mod_construction.dm @@ -231,7 +231,7 @@ if(!user.transferItemToLoc(part, src)) return playsound(src, 'sound/machines/click.ogg', 30, TRUE) - balloon_alert(user, "suit finished") + loc.balloon_alert(user, "suit finished") var/obj/item/mod = new /obj/item/mod/control(drop_location(), external_plating.theme, null, core) core = null qdel(src) diff --git a/code/modules/modular_computers/computers/item/pda.dm b/code/modules/modular_computers/computers/item/pda.dm index 711ec369f9ce..9560738ecafd 100644 --- a/code/modules/modular_computers/computers/item/pda.dm +++ b/code/modules/modular_computers/computers/item/pda.dm @@ -303,6 +303,9 @@ starting_programs = list( /datum/computer_file/program/filemanager, /datum/computer_file/program/robotact, + /datum/computer_file/program/borg_monitor, + /datum/computer_file/program/atmosscan, + /datum/computer_file/program/crew_manifest, ) /obj/item/modular_computer/pda/silicon/Initialize(mapload) diff --git a/code/modules/paperwork/fax.dm b/code/modules/paperwork/fax.dm index eb8db0fbd289..e8fef1972b86 100644 --- a/code/modules/paperwork/fax.dm +++ b/code/modules/paperwork/fax.dm @@ -30,6 +30,8 @@ GLOBAL_VAR_INIT(nt_fax_department, pick("NT HR Department", "NT Legal Department var/allow_exotic_faxes = FALSE /// This is where the dispatch and reception history for each fax is stored. var/list/fax_history = list() + /// MONKESTATION EDIT: If true admins get messaged when it recieves a fax, for CC offices or other schnanigans. + var/recieve_notifies_admins = FALSE /// List of types which should always be allowed to be faxed var/static/list/allowed_types = list( /obj/item/paper, @@ -48,6 +50,15 @@ GLOBAL_VAR_INIT(nt_fax_department, pick("NT HR Department", "NT Legal Department /obj/item/holochip, /obj/item/card, /obj/item/folder/biscuit, + //MONKESTATION EDIT START, also edits icons/obj/fax.dmi + /obj/item/gun, // remote robbery, https://www.youtube.com/watch?v=xtHaplmap7I + /obj/item/restraints/handcuffs, + /obj/item/grown/bananapeel, //remote slippage + /obj/item/food/butterslice, //the only thing on the edit list that "realistically" could be faxxed, as long as your fax is a teleporter. which thankfully these are. + /obj/item/grenade, // :3 (mails you a pipebomb) (people on the discord wanted this) + /obj/item/food/griddle_toast, + /obj/item/food/cakeslice + //MONKESTATION EDIT END ) /// List with a fake-networks(not a fax actually), for request manager. var/list/special_networks = list( @@ -278,7 +289,7 @@ GLOBAL_VAR_INIT(nt_fax_department, pick("NT HR Department", "NT Legal Department if("send_special") var/obj/item/paper/fax_paper = loaded_item_ref?.resolve() if(!istype(fax_paper)) - to_chat(usr, icon2html(src.icon, usr) + span_warning("Fax cannot send all above paper on this protected network, sorry.")) + to_chat(usr, icon2html(src.icon, usr) + span_warning("Fax can only send paper on this protected network, sorry.")) // MONKESTATION EDIT: cannot send all above > can only send return fax_paper.request_state = TRUE @@ -355,6 +366,10 @@ GLOBAL_VAR_INIT(nt_fax_department, pick("NT HR Department", "NT Legal Department INVOKE_ASYNC(src, PROC_REF(animate_object_travel), loaded, "fax_receive", find_overlay_state(loaded, "receive")) say("Received correspondence from [sender_name].") history_add("Receive", sender_name) + //MONKESTATION EDIT Admin Faxes + if (recieve_notifies_admins == TRUE) + message_admins("FAX REQUEST: [ADMIN_FULLMONTY(usr)]: sent a fax message from Fax Machine [sender_name] to Fax Machine [src] (AKA [fax_name]) [ADMIN_FLW(src)].") + //MONKESTATION EDIT END addtimer(CALLBACK(src, PROC_REF(vend_item), loaded), 1.9 SECONDS) /** @@ -402,6 +417,14 @@ GLOBAL_VAR_INIT(nt_fax_department, pick("NT HR Department", "NT Legal Department return "[state_prefix]_tcg" if (istype(item, /obj/item/folder/biscuit)) return "[state_prefix]_pbiscuit" + if (istype(item, /obj/item/gun))//MONKESTATION EDIT START + return "[state_prefix]_gun" + if (istype(item, /obj/item/restraints/handcuffs)) + return "[state_prefix]_handcuffs" + if (istype(item, /obj/item/grown/bananapeel)) + return "[state_prefix]_peel" + if (istype(item, /obj/item/grenade)) + return ("[state_prefix]_grenade") //MONKESTATION EDIT END return "[state_prefix]_paper" /** @@ -417,7 +440,7 @@ GLOBAL_VAR_INIT(nt_fax_department, pick("NT HR Department", "NT Legal Department vend.throw_at(get_edge_target_turf(drop_location(), pick(GLOB.alldirs)), rand(1, 4), EMBED_THROWSPEED_THRESHOLD) if (is_type_in_list(vend, exotic_types) && prob(20)) do_sparks(5, TRUE, src) - jammed = TRUE + // jammed = TRUE MONKESTATION EDIT: NO JAMMING /** * A procedure that makes entries in the history of fax transactions. @@ -519,3 +542,10 @@ GLOBAL_VAR_INIT(nt_fax_department, pick("NT HR Department", "NT Legal Department return . +//Monkestation edit start +/// Admin Fax subtype +/obj/machinery/fax/messageadmins + allow_exotic_faxes = TRUE + recieve_notifies_admins = TRUE + +//Monkestation edit end diff --git a/code/modules/projectiles/ammunition/ballistic/revolver.dm b/code/modules/projectiles/ammunition/ballistic/revolver.dm index c27d3557647b..8784bdeece3c 100644 --- a/code/modules/projectiles/ammunition/ballistic/revolver.dm +++ b/code/modules/projectiles/ammunition/ballistic/revolver.dm @@ -56,17 +56,3 @@ name = ".38 Iceblox bullet casing" desc = "A .38 Iceblox bullet casing." projectile_type = /obj/projectile/bullet/c38/iceblox - -// .45 (Lever Rifle and Long Revolver) - -/obj/item/ammo_casing/g45l - name = ".45 Long bullet casing " - desc = "A .45 Long bullet casing." - caliber = CALIBER_45L - projectile_type = /obj/projectile/bullet/g45l - -/obj/item/ammo_casing/g45l/rubber - name = ".45 Long rubber bullet casing" - desc = "A .45 Long rubber bullet casing." - caliber = CALIBER_45L - projectile_type = /obj/projectile/bullet/g45l/rubber diff --git a/code/modules/projectiles/ammunition/ballistic/shotgun.dm b/code/modules/projectiles/ammunition/ballistic/shotgun.dm index 6ee9512e83f8..b04b669197a2 100644 --- a/code/modules/projectiles/ammunition/ballistic/shotgun.dm +++ b/code/modules/projectiles/ammunition/ballistic/shotgun.dm @@ -79,7 +79,7 @@ desc = "A 12 gauge buckshot shell." icon_state = "gshell" projectile_type = /obj/projectile/bullet/pellet/shotgun_buckshot - pellets = 6 + pellets = 8 //monkestation edit was 6 variance = 25 /obj/item/ammo_casing/shotgun/rubbershot @@ -87,8 +87,8 @@ desc = "A shotgun casing filled with densely-packed rubber balls, used to incapacitate crowds from a distance." icon_state = "rshell" projectile_type = /obj/projectile/bullet/pellet/shotgun_rubbershot - pellets = 6 - variance = 20 + pellets = 5 //monkestation edit + variance = 25 // 5 pellets for 15 stam and 3 damage each custom_materials = list(/datum/material/iron=SHEET_MATERIAL_AMOUNT*2) /obj/item/ammo_casing/shotgun/incapacitate @@ -96,8 +96,8 @@ desc = "A shotgun casing filled with... something. used to incapacitate targets." icon_state = "bountyshell" projectile_type = /obj/projectile/bullet/pellet/shotgun_incapacitate - pellets = 12//double the pellets, but half the stun power of each, which makes this best for just dumping right in someone's face. - variance = 25 + pellets = 20//monkestation edit 12 to 20 + variance = 30 //monkestation edit custom_materials = list(/datum/material/iron=SHEET_MATERIAL_AMOUNT*2) /obj/item/ammo_casing/shotgun/improvised diff --git a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm index 1d345cca5d44..2ff028e19909 100644 --- a/code/modules/projectiles/boxes_magazines/ammo_boxes.dm +++ b/code/modules/projectiles/boxes_magazines/ammo_boxes.dm @@ -55,20 +55,6 @@ desc = "Designed to quickly reload revolvers. Iceblox bullets contain a cryogenic payload." ammo_type = /obj/item/ammo_casing/c38/iceblox -/obj/item/ammo_box/g45l - name = "ammo box (.45 Long Lethal)" - desc = "This box contains .45 Long lethal cartridges." - ammo_type = /obj/item/ammo_casing/g45l - icon_state = "45box" - max_ammo = 24 - -/obj/item/ammo_box/g45l/rubber - name = "ammo box (.45 Long Rubber)" - desc = "Brought to you at great expense,this box contains .45 Long rubber cartridges." - icon_state = "45box" - ammo_type = /obj/item/ammo_casing/g45l/rubber - max_ammo = 24 - /obj/item/ammo_box/c9mm name = "ammo box (9mm)" icon_state = "9mmbox" diff --git a/code/modules/projectiles/boxes_magazines/internal/_cylinder.dm b/code/modules/projectiles/boxes_magazines/internal/_cylinder.dm index c4509b917c70..f1d08dddcd5b 100644 --- a/code/modules/projectiles/boxes_magazines/internal/_cylinder.dm +++ b/code/modules/projectiles/boxes_magazines/internal/_cylinder.dm @@ -16,7 +16,7 @@ /obj/item/ammo_box/magazine/internal/cylinder/proc/rotate() var/b = stored_ammo[1] stored_ammo.Cut(1,2) - stored_ammo.Insert(0, b) + stored_ammo.Add(b) /obj/item/ammo_box/magazine/internal/cylinder/proc/spin() for(var/i in 1 to rand(0, max_ammo*2)) diff --git a/code/modules/projectiles/boxes_magazines/internal/revolver.dm b/code/modules/projectiles/boxes_magazines/internal/revolver.dm index c742117ccbaf..7d881a11c4dc 100644 --- a/code/modules/projectiles/boxes_magazines/internal/revolver.dm +++ b/code/modules/projectiles/boxes_magazines/internal/revolver.dm @@ -20,9 +20,3 @@ /obj/item/ammo_box/magazine/internal/rus357/Initialize(mapload) stored_ammo += new ammo_type(src) . = ..() - -/obj/item/ammo_box/magazine/internal/cylinder/rev45l - name = ".45 Long revolver cylinder" - ammo_type = /obj/item/ammo_casing/g45l - caliber = CALIBER_45L - max_ammo = 6 diff --git a/code/modules/projectiles/guns/ballistic/revolver.dm b/code/modules/projectiles/guns/ballistic/revolver.dm index d7777ff0b13a..b05d5e7cdfe3 100644 --- a/code/modules/projectiles/guns/ballistic/revolver.dm +++ b/code/modules/projectiles/guns/ballistic/revolver.dm @@ -162,18 +162,6 @@ accepted_magazine_type = /obj/item/ammo_box/magazine/internal/cylinder/rev762 -/obj/item/gun/ballistic/revolver/r45l - name = "\improper .45 Long Revolver" - desc = "A cheap .45 Long Revolver. Pray the timing keeps." - icon_state = "45revolver" - accepted_magazine_type = /obj/item/ammo_box/magazine/internal/cylinder/rev45l - obj_flags = UNIQUE_RENAME - - unique_reskin = list("Default" = "45revolver", - "Cowboy" = "357colt", - "Lucky" = "lucky" //Well do ya? - ) - // A gun to play Russian Roulette! // You can spin the chamber to randomize the position of the bullet. diff --git a/code/modules/projectiles/guns/ballistic/shotgun.dm b/code/modules/projectiles/guns/ballistic/shotgun.dm index f0081220b413..b23e85b958fe 100644 --- a/code/modules/projectiles/guns/ballistic/shotgun.dm +++ b/code/modules/projectiles/guns/ballistic/shotgun.dm @@ -98,7 +98,7 @@ /obj/item/gun/ballistic/shotgun/automatic/dual_tube/bounty name = "bounty cycler shotgun" desc = "An advanced shotgun with two separate magazine tubes. This one shows signs of bounty hunting customization, meaning it likely has a dual rubber shot/fire slug load." - alt_accepted_magazine_type = /obj/item/ammo_box/magazine/internal/shot/tube/fire + //alt_accepted_magazine_type = /obj/item/ammo_box/magazine/internal/shot/tube/fire monkestation edit /obj/item/gun/ballistic/shotgun/automatic/dual_tube/examine(mob/user) . = ..() @@ -344,22 +344,3 @@ hook.afterattack(target, user, proximity_flag, click_parameters) return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN -// Lever gun -/obj/item/gun/ballistic/shotgun/leveraction - name = "brush gun" - desc = "While lever-actions have been horribly out of date for hundreds of years now, \ - putting a nicely sized hole in a man-sized target with a .45 Long round has stayed relatively timeless." - icon_state = "brushgun" - bolt_wording = "Lever" - cartridge_wording = "bullet" - accepted_magazine_type = /obj/item/ammo_box/magazine/internal/shot/levergun - projectile_wound_bonus = 10 - projectile_damage_multiplier = 1.1 - w_class = WEIGHT_CLASS_BULKY - force = 10 - flags_1 = CONDUCT_1 - semi_auto = FALSE - internal_magazine = TRUE - casing_ejector = FALSE - weapon_weight = WEAPON_HEAVY - diff --git a/code/modules/projectiles/projectile.dm b/code/modules/projectiles/projectile.dm index c3f0a45e2aa4..cbf47d7cdba7 100644 --- a/code/modules/projectiles/projectile.dm +++ b/code/modules/projectiles/projectile.dm @@ -256,7 +256,7 @@ // i know that this is probably more with wands and gun mods in mind, but it's a bit silly that the projectile on_hit signal doesn't ping the projectile itself. // maybe we care what the projectile thinks! See about combining these via args some time when it's not 5AM - if(stamina >= 10 && isliving(target)) + if(stamina >= 15 && isliving(target)) var/mob/living/living = target var/datum/status_effect/stacking/debilitated/effect = living.has_status_effect(/datum/status_effect/stacking/debilitated) if(effect) diff --git a/code/modules/projectiles/projectile/bullets/revolver.dm b/code/modules/projectiles/projectile/bullets/revolver.dm index ace9489fdcbd..e85bfed8af18 100644 --- a/code/modules/projectiles/projectile/bullets/revolver.dm +++ b/code/modules/projectiles/projectile/bullets/revolver.dm @@ -45,12 +45,12 @@ /obj/projectile/bullet/c38/match/bouncy name = ".38 Rubber bullet" damage = 10 - stamina = 30 + stamina = 40 //30 to 40 monkestation edit weak_against_armour = TRUE ricochets_max = 6 ricochet_incidence_leeway = 0 ricochet_chance = 130 - ricochet_decay_damage = 0.8 + ricochet_decay_damage = 1 //0.8 to 1 monkestation edit let them have fun shrapnel_type = null sharpness = NONE embedding = null @@ -128,20 +128,3 @@ ricochet_auto_aim_range = 6 ricochet_incidence_leeway = 80 ricochet_decay_chance = 1 - -// .45 (Lever Rifle and Long Revolver) - -/obj/projectile/bullet/g45l/rubber - name = ".45 Long rubber bullet" - damage = 5 - stamina = 35 - weak_against_armour = TRUE - sharpness = NONE - embedding = null - -/obj/projectile/bullet/g45l - name = ".45 Long bullet" - damage = 35 - wound_bonus = -5 - sharpness = SHARP_EDGED - embedding = list(embed_chance=25, fall_chance=2, jostle_chance=2, ignore_throwspeed_threshold=TRUE, pain_stam_pct=0.4, pain_mult=3, jostle_pain_mult=5, rip_time=1 SECONDS) diff --git a/code/modules/projectiles/projectile/bullets/shotgun.dm b/code/modules/projectiles/projectile/bullets/shotgun.dm index b0461de71609..50d127d61a50 100644 --- a/code/modules/projectiles/projectile/bullets/shotgun.dm +++ b/code/modules/projectiles/projectile/bullets/shotgun.dm @@ -18,8 +18,8 @@ /obj/projectile/bullet/shotgun_beanbag name = "beanbag slug" icon_state = "pellet" - damage = 10 - stamina = 65 //monkestation edit + damage = 5 //10 to 5 monkestation edit + stamina = 75 //monkestation edit wound_bonus = 20 sharpness = NONE embedding = null @@ -84,9 +84,10 @@ /obj/projectile/bullet/pellet/shotgun_rubbershot name = "rubber shot pellet" damage = 3 - stamina = 30 //monkestation edit + stamina = 15 //monkestation edit sharpness = NONE embedding = null + tile_dropoff_s = 0 //monkestation edit speed = 1.2 ricochets_max = 4 ricochet_chance = 120 @@ -106,7 +107,8 @@ /obj/projectile/bullet/pellet/shotgun_incapacitate name = "incapacitating pellet" damage = 1 - stamina = 6 + stamina = 12 //monkestation edit + tile_dropoff_s = 3 //monkestation edit spitting distance embedding = null /obj/projectile/bullet/pellet/shotgun_improvised diff --git a/code/modules/reagents/chemistry/machinery/chem_recipe_debug.dm b/code/modules/reagents/chemistry/machinery/chem_recipe_debug.dm index 4605f01406bb..5a7b838e0dd0 100644 --- a/code/modules/reagents/chemistry/machinery/chem_recipe_debug.dm +++ b/code/modules/reagents/chemistry/machinery/chem_recipe_debug.dm @@ -330,7 +330,7 @@ if(!reagent) say("Could not find [name]") continue - var/datum/chemical_reaction/reaction = GLOB.chemical_reactions_list_product_index[reagent.type] + var/list/datum/chemical_reaction/reaction = GLOB.chemical_reactions_list_product_index[reagent.type] if(!reaction) say("Could not find [name] reaction!") continue @@ -364,7 +364,7 @@ if(!reagent) say("Could not find [name]") return - var/datum/chemical_reaction/reaction = GLOB.chemical_reactions_list_product_index[reagent.type] + var/list/datum/chemical_reaction/reaction = GLOB.chemical_reactions_list_product_index[reagent.type] if(!reaction) say("Could not find [name] reaction!") return diff --git a/code/modules/reagents/reagent_containers/condiment.dm b/code/modules/reagents/reagent_containers/condiment.dm index 2c5cd137facc..8ea414e8d8b6 100644 --- a/code/modules/reagents/reagent_containers/condiment.dm +++ b/code/modules/reagents/reagent_containers/condiment.dm @@ -9,7 +9,7 @@ name = "condiment bottle" desc = "Just your average condiment bottle." icon = 'icons/obj/food/containers.dmi' - icon_state = "bottle" + icon_state = "generic_condiment" // monkestation edit: ew should just be a generic bottle. inhand_icon_state = "beer" //Generic held-item sprite until unique ones are made. lefthand_file = 'icons/mob/inhands/items/drinks_lefthand.dmi' righthand_file = 'icons/mob/inhands/items/drinks_righthand.dmi' @@ -66,7 +66,7 @@ playsound(M.loc,'sound/items/drink.ogg', rand(10,50), TRUE) return TRUE -/obj/item/reagent_containers/condiment/afterattack(obj/target, mob/user , proximity) +/obj/item/reagent_containers/condiment/afterattack(obj/target, mob/user, proximity, params) . = ..() if(!proximity) return @@ -95,6 +95,18 @@ var/trans = src.reagents.trans_to(target, amount_per_transfer_from_this, transfered_by = user) to_chat(user, span_notice("You transfer [trans] units of the condiment to [target].")) + var/datum/reagent/main_reagent = reagents.get_master_reagent_id() + var/condiment_overlay = initial(main_reagent.condiment_overlay) + var/overlay_colored = initial(main_reagent.overlay_colored) + if(condiment_overlay && istype (target, /obj/item/food)) + var/list/params_list = params2list(params) + var/image/I = image('monkestation/code/modules/brewin_and_chewin/icons/condiment_overlays.dmi', target, condiment_overlay) + I.pixel_x = clamp(text2num(params_list["icon-x"]) - world.icon_size/2 - pixel_x,-world.icon_size/2,world.icon_size/2) + I.pixel_y = clamp(text2num(params_list["icon-y"]) - world.icon_size/2 - pixel_y,-world.icon_size/2,world.icon_size/2) + if (overlay_colored) + I.color = mix_color_from_reagents(reagents.reagent_list) + target.overlays += I + /obj/item/reagent_containers/condiment/enzyme name = "universal enzyme" desc = "Used in cooking various dishes." @@ -445,7 +457,7 @@ /obj/item/reagent_containers/condiment/pack/attack(mob/M, mob/user, def_zone) //Can't feed these to people directly. return -/obj/item/reagent_containers/condiment/pack/afterattack(obj/target, mob/user , proximity) +/obj/item/reagent_containers/condiment/pack/afterattack(obj/target, mob/user , proximity, params) if(!proximity) return . |= AFTERATTACK_PROCESSED_ITEM @@ -461,6 +473,17 @@ return else to_chat(user, span_notice("You tear open [src] above [target] and the condiments drip onto it.")) + var/datum/reagent/main_reagent = reagents.get_master_reagent_id() + var/condiment_overlay = initial(main_reagent.condiment_overlay) + var/overlay_colored = initial(main_reagent.overlay_colored) + if(condiment_overlay && istype (target, /obj/item/food)) + var/list/params_list = params2list(params) + var/image/I = image('monkestation/code/modules/brewin_and_chewin/icons/condiment_overlays.dmi', target, condiment_overlay) + I.pixel_x = clamp(text2num(params_list["icon-x"]) - world.icon_size/2 - pixel_x,-world.icon_size/2,world.icon_size/2) + I.pixel_y = clamp(text2num(params_list["icon-y"]) - world.icon_size/2 - pixel_y,-world.icon_size/2,world.icon_size/2) + if (overlay_colored) + I.color = mix_color_from_reagents(reagents.reagent_list) + target.overlays += I src.reagents.trans_to(target, amount_per_transfer_from_this, transfered_by = user) qdel(src) return diff --git a/code/modules/research/designs/limbgrower_designs.dm b/code/modules/research/designs/limbgrower_designs.dm index 916e8bf0467b..ef1b850f3a52 100644 --- a/code/modules/research/designs/limbgrower_designs.dm +++ b/code/modules/research/designs/limbgrower_designs.dm @@ -122,7 +122,7 @@ id = "monkeytail" build_type = LIMBGROWER reagents_list = list(/datum/reagent/medicine/c2/synthflesh = 20) - build_path = /obj/item/organ/external/tail/simian + build_path = /obj/item/organ/external/tail/monkey category = list(RND_CATEGORY_LIMBS_OTHER, RND_CATEGORY_INITIAL) /datum/design/cat_tail diff --git a/code/modules/research/techweb/all_nodes.dm b/code/modules/research/techweb/all_nodes.dm index 423a7232a98e..abf150085817 100644 --- a/code/modules/research/techweb/all_nodes.dm +++ b/code/modules/research/techweb/all_nodes.dm @@ -39,6 +39,7 @@ "coffee_cartridge", "coffeemaker", "coffeepot", + "comb", //monkestation edit "condenser", "conveyor_belt", "conveyor_switch", @@ -48,6 +49,7 @@ "desttagger", "doppler_array", "drinking_glass", + "dyespray", //monkestation edit "earmuffs", "electropack", "experi_scanner", @@ -59,7 +61,9 @@ "fluid_ducts", "foam_dart", "fork", + "fur_dyer", //monkestation edit "gas_filter", + "hairbrush", //monkestation edit "handcuffs_s", "handlabel", "health_sensor", @@ -101,6 +105,7 @@ "rglass", "roll", "rollerbed", + "scissors", //monkestation edit "sec_38", "sec_beanbag_slug", "sec_dart", @@ -1421,6 +1426,7 @@ "ci-reviver", "ci-surgery", "ci-toolset", + "ci-sprinter", //monkestation edit: ) research_costs = list(TECHWEB_POINT_TYPE_GENERIC = 2500) diff --git a/code/modules/research/xenobiology/vatgrowing/samples/_micro_organism.dm b/code/modules/research/xenobiology/vatgrowing/samples/_micro_organism.dm index 140983d7b7de..05c03fdee634 100644 --- a/code/modules/research/xenobiology/vatgrowing/samples/_micro_organism.dm +++ b/code/modules/research/xenobiology/vatgrowing/samples/_micro_organism.dm @@ -73,7 +73,7 @@ /datum/micro_organism/cell_line/proc/finish_growing(obj/machinery/plumbing/growing_vat/vat) var/risk = 0 //Penalty for failure, goes up based on how much growth the other cell_lines have - for(var/datum/micro_organism/cell_line/cell_line in vat.biological_sample.micro_organisms) + for(var/datum/micro_organism/cell_line/cell_line in vat.biological_sample?.micro_organisms) if(cell_line == src) //well duh continue if(cell_line.growth >= VATGROWING_DANGER_MINIMUM) diff --git a/code/modules/security_levels/security_level_datums.dm b/code/modules/security_levels/security_level_datums.dm index 945739c2b7ef..629aa64f27c2 100644 --- a/code/modules/security_levels/security_level_datums.dm +++ b/code/modules/security_levels/security_level_datums.dm @@ -29,6 +29,10 @@ var/lowering_to_configuration_key /// Our configuration key for elevating to text, if set, will override the default elevating to announcement. var/elevating_to_configuration_key + /// If TRUE, then a comms console can directly set this alert. + var/can_set_via_comms_console = FALSE + /// If FALSE, then the crew cannot change the alert during this alert. + var/can_crew_change_alert = TRUE /datum/security_level/New() . = ..() @@ -49,6 +53,7 @@ number_level = SEC_LEVEL_GREEN lowering_to_configuration_key = /datum/config_entry/string/alert_green shuttle_call_time_mod = 2 + can_set_via_comms_console = TRUE /** * BLUE @@ -63,6 +68,7 @@ lowering_to_configuration_key = /datum/config_entry/string/alert_blue_downto elevating_to_configuration_key = /datum/config_entry/string/alert_blue_upto shuttle_call_time_mod = 1 + can_set_via_comms_console = TRUE /** * RED @@ -90,18 +96,79 @@ number_level = SEC_LEVEL_DELTA elevating_to_configuration_key = /datum/config_entry/string/alert_delta shuttle_call_time_mod = 0.25 + can_crew_change_alert = FALSE -//MONKESTATION EDIT START +// monkestation start /** * EPSILON * * Central Command is fed up with the station */ /datum/security_level/epsilon - name = "Epsilon" + name = "epsilon" announcement_color = "grey" //this was painful number_level = SEC_LEVEL_EPSILON sound = 'monkestation/sound/misc/epsilon.ogg' elevating_to_configuration_key = /datum/config_entry/string/alert_epsilon shuttle_call_time_mod = 10 //nobody escapes the station -//MONKESTATION EDIT STOP + can_crew_change_alert = FALSE + +/** + * YELLOW + * + * There's a Giant hole somewhere, ENGINEERING FIX IT!!! + */ +/datum/security_level/yellow + name = "yellow" + announcement_color = "yellow" + number_level = SEC_LEVEL_YELLOW + sound = 'sound/misc/notice1.ogg' // Its just a more spesific blue alert + lowering_to_configuration_key = /datum/config_entry/string/alert_yellow + elevating_to_configuration_key = /datum/config_entry/string/alert_yellow + shuttle_call_time_mod = 1.5 //Again, just a more spesific blue alert, but not as threatening + can_set_via_comms_console = TRUE + +/** + * AMBER + * + * Biological issues. Zombies, blobs, and bloodlings oh my! + */ +/datum/security_level/amber + name = "amber" + announcement_color = "amber" //I see now why adding grey was painful. WATER IN THE FIRE, WHY?! (Thank you Absolucy for helping add more colors) + number_level = SEC_LEVEL_AMBER + sound = 'sound/misc/notice1.ogg' // Its just a more spesific blue alert v2 + lowering_to_configuration_key = /datum/config_entry/string/alert_amber + elevating_to_configuration_key = /datum/config_entry/string/alert_amber + shuttle_call_time_mod = 1.5 //Just a more spesific blue alert, the sequal to yellow + can_set_via_comms_console = TRUE + +/** + * GAMMA + * + * The CentCom Flavor of Red Alert. Usually used for events. + */ +/datum/security_level/gamma + name = "gamma" + announcement_color = "pink" //Its like red, but diffrent. + number_level = SEC_LEVEL_GAMMA + sound = 'monkestation/sound/misc/gamma.ogg' // Its just the star wars death star alert, but pitched lower and slowed down ever so slightly. + lowering_to_configuration_key = /datum/config_entry/string/alert_gamma + elevating_to_configuration_key = /datum/config_entry/string/alert_gamma + shuttle_call_time_mod = 0.5 //Oh god oh fuck things aint looking good. + can_crew_change_alert = FALSE + +/** + * LAMBDA + * + * Pants are gonna be turning brown if this activates. + */ +/datum/security_level/lambda + name = "lambda" + announcement_color = "crimson" //Thanking Absolucy for having a bigger brain than me in figuring out colors. + number_level = SEC_LEVEL_LAMBDA + sound = 'monkestation/sound/misc/lambda.ogg' // Ported over the current (as of this codes time) ss14 gamma alert, renamed because it fits better. Old gamma was better :( + elevating_to_configuration_key = /datum/config_entry/string/alert_lambda + shuttle_call_time_mod = 0.25 //This is as bad as the nuke going off. Everyone is fucked. + can_crew_change_alert = FALSE +// monkestation end diff --git a/code/modules/shuttle/navigation_computer.dm b/code/modules/shuttle/navigation_computer.dm index c93bd1bfa152..9e0a9e31bd6a 100644 --- a/code/modules/shuttle/navigation_computer.dm +++ b/code/modules/shuttle/navigation_computer.dm @@ -60,6 +60,20 @@ else QDEL_NULL(my_port) +/obj/machinery/computer/camera_advanced/shuttle_docker/vv_edit_var(vname, vval) + . = ..() + if(vname in list(NAMEOF(src, view_range), NAMEOF(src, x_offset), NAMEOF(src, y_offset), NAMEOF(src, see_hidden))) + refresh_eye() + +/// Destroys the eyeobj of this console, safely refreshing it if the console is currently being used. +/obj/machinery/computer/camera_advanced/shuttle_docker/proc/refresh_eye() + var/mob/living/user = current_user + if(user) + remove_eye_control(user) + QDEL_NULL(eyeobj) + if(user) + attack_hand(user) + /// "Initializes" any default port ids we have, done so add_jumpable_port can be a proper setter /obj/machinery/computer/camera_advanced/shuttle_docker/proc/set_init_ports() var/list/init_ports = jump_to_ports.Copy() diff --git a/code/modules/shuttle/special.dm b/code/modules/shuttle/special.dm index ae4dd19fc820..11080aaad1b7 100644 --- a/code/modules/shuttle/special.dm +++ b/code/modules/shuttle/special.dm @@ -150,18 +150,51 @@ // Bar staff, GODMODE mobs(as long as they stay in the shuttle) that just want to make sure people have drinks // and a good time. +/obj/item/storage/backpack/duffelbag/bardrone + name = "Bardrones Duffelbag" + desc = "A funny little bag for funny little drones" + icon_state = "duffel" + inhand_icon_state = "duffel" + +/obj/item/storage/backpack/duffelbag/bardrone/PopulateContents() + new /obj/item/reagent_containers/cup/glass/shaker(src) + new /obj/item/storage/box/drinkingglasses(src) + new /obj/item/reagent_containers/cup/rag(src) + new /obj/item/storage/fancy/cigarettes/cigars/havana(src) + /mob/living/basic/drone/snowflake/bardrone name = "Bardrone" - desc = "A barkeeping drone, a robot built to tend bars." + desc = "A barkeeping drone, a robot built to tend and maintain bars." + default_storage = /obj/item/storage/backpack/duffelbag/bardrone hacked = TRUE shy = FALSE laws = "1. Serve drinks.\n\ 2. Talk to patrons.\n\ - 3. Don't get messed up in their affairs." + 3. Maintain the integrity of the bar.\n\ + 4. Do NOT involve yourself in the affairs of others outside of the above laws\n\ + 5. If given permission by relevant owners, you may improve the bar you have chosen to operate at." + unique_name = FALSE // disables the (123) number suffix initial_language_holder = /datum/language_holder/universal default_storage = null + flavortext = \ + "\nLAW EXPLANATION FOR BAR DRONES\n"+\ + "As a bar drone your goal is to provide a fun interactive experience for other players visiting the bar*. \n"+\ + "BARDRONE GUIDELINES\n"+\ + " -Do not harm sapient creatures \n"+\ + " -Do not interact with non-concious people, including dead, passed out, or SSD. Call medical instead.\n"+\ + " -Do not get into altercations with other players, remove yourself from the situation. \n"+\ + " -Do not protect the bar from agressors. \n"+\ + " -You may decide what bar you wish to operate at as long as the users/owners of that bar also agree.\n"+\ + " -You may create your own bar with permission from a relevant head of staff. Do not monopolize station resources. \n"+\ + "These rules are at admin discretion and will be heavily enforced. If you have questions about these rules AHELP it.\n"+\ + "\n"+\ + "Prefix your message with :b to speak in Drone Chat.\n" + var/static/list/actions_to_add = list( + /datum/action/drone/bar/information, + ) + /mob/living/basic/drone/snowflake/bardrone/Initialize(mapload) . = ..() diff --git a/code/modules/shuttle/supply.dm b/code/modules/shuttle/supply.dm index cb5e3cfc2b46..f8e06e25d980 100644 --- a/code/modules/shuttle/supply.dm +++ b/code/modules/shuttle/supply.dm @@ -34,6 +34,7 @@ GLOBAL_LIST_INIT(blacklisted_cargo_types, typecacheof(list( /obj/structure/extraction_point, /obj/structure/guardian_beacon, /obj/tear_in_reality, + /obj/item/mcobject/flusher, ))) /// How many goody orders we can fit in a lockbox before we upgrade to a crate diff --git a/code/modules/surgery/bodyparts/_bodyparts.dm b/code/modules/surgery/bodyparts/_bodyparts.dm index 8a283eb66f03..91cf1def26f4 100644 --- a/code/modules/surgery/bodyparts/_bodyparts.dm +++ b/code/modules/surgery/bodyparts/_bodyparts.dm @@ -178,8 +178,6 @@ var/unarmed_damage_high = 1 ///Damage at which attacks from this bodypart will stun var/unarmed_stun_threshold = 2 - /// How many pixels this bodypart will offset the top half of the mob, used for abnormally sized torsos and legs - var/top_offset = 0 /// Traits that are given to the holder of the part. If you want an effect that changes this, don't add directly to this. Use the add_bodypart_trait() proc var/list/bodypart_traits = list() diff --git a/code/modules/surgery/bodyparts/head.dm b/code/modules/surgery/bodyparts/head.dm index 211c3f0369d5..82acff89d84c 100644 --- a/code/modules/surgery/bodyparts/head.dm +++ b/code/modules/surgery/bodyparts/head.dm @@ -215,7 +215,7 @@ // lipstick if(lip_style && (head_flags & HEAD_LIPS)) - var/image/lips_overlay = image('icons/mob/species/human/human_face.dmi', "lips_[lip_style]", -FACE_LAYER, SOUTH) + var/image/lips_overlay = image('icons/mob/species/human/human_face.dmi', "lips_[lip_style]", -BODY_LAYER, SOUTH) lips_overlay.color = lip_color . += lips_overlay @@ -244,8 +244,9 @@ // eyes // This is a bit of copy/paste code from eyes.dm:generate_body_overlay if(eyes?.eye_icon_state && (head_flags & HEAD_EYESPRITES)) - var/image/eye_left = image('icons/mob/species/human/human_face.dmi', "[eyes.eye_icon_state]_l", -FACE_LAYER, SOUTH) - var/image/eye_right = image('icons/mob/species/human/human_face.dmi', "[eyes.eye_icon_state]_r", -FACE_LAYER, SOUTH) + var/eye_icon = owner?.dna?.species.eyes_icon || 'icons/mob/species/human/human_face.dmi' //Non-Modular change - Gives modular eye icons for certain species. + var/image/eye_left = image(eye_icon, "[eyes.eye_icon_state]_l", -BODY_LAYER, SOUTH) + var/image/eye_right = image(eye_icon, "[eyes.eye_icon_state]_r", -BODY_LAYER, SOUTH) if(head_flags & HEAD_EYECOLOR) if(eyes.eye_color_left) eye_left.color = eyes.eye_color_left @@ -340,6 +341,7 @@ /obj/item/bodypart/head/GetVoice() return "The head of [real_name]" +/* //Non-Modular change: Removes Monkey bodyparts, moved to monkestation\code\modules\surgery\bodyparts\monkey_bodyparts.dm /obj/item/bodypart/head/monkey icon = 'icons/mob/species/monkey/bodyparts.dmi' icon_static = 'icons/mob/species/monkey/bodyparts.dmi' @@ -352,6 +354,7 @@ dmg_overlay_type = SPECIES_MONKEY is_dimorphic = FALSE head_flags = HEAD_LIPS|HEAD_DEBRAIN +*/ /obj/item/bodypart/head/alien icon = 'icons/mob/species/alien/bodyparts.dmi' diff --git a/code/modules/surgery/bodyparts/head_hair_and_lips.dm b/code/modules/surgery/bodyparts/head_hair_and_lips.dm index 1e3f2078ca46..670462bdac8c 100644 --- a/code/modules/surgery/bodyparts/head_hair_and_lips.dm +++ b/code/modules/surgery/bodyparts/head_hair_and_lips.dm @@ -8,16 +8,6 @@ var/mob/living/carbon/human/human_head_owner = owner var/datum/species/owner_species = human_head_owner.dna.species - var/offset = 0 - if(!istype(owner, /mob/living/carbon/human/dummy)) - switch(human_head_owner.get_mob_height()) - if(HUMAN_HEIGHT_DWARF) - offset = -2 - if(HUMAN_HEIGHT_SHORTEST) - offset = -1 - if(HUMAN_HEIGHT_SHORT) - offset = 0 - //HIDDEN CHECKS START hair_hidden = FALSE facial_hair_hidden = FALSE @@ -85,7 +75,6 @@ //Overlay facial_overlay = mutable_appearance(sprite_accessory.icon, sprite_accessory.icon_state, -HAIR_LAYER) facial_overlay.alpha = facial_hair_alpha - facial_overlay.pixel_y = offset //Gradients facial_hair_gradient_style = LAZYACCESS(human_head_owner.grad_style, GRADIENT_FACIAL_HAIR_KEY) if(facial_hair_gradient_style) @@ -100,7 +89,6 @@ //Overlay hair_overlay = mutable_appearance(sprite_accessory.icon, sprite_accessory.icon_state, -HAIR_LAYER) hair_overlay.alpha = hair_alpha - //hair_overlay.pixel_y = offset //Gradients hair_gradient_style = LAZYACCESS(human_head_owner.grad_style, GRADIENT_HAIR_KEY) if(hair_gradient_style) diff --git a/code/modules/surgery/bodyparts/helpers.dm b/code/modules/surgery/bodyparts/helpers.dm index 2b9d1bd5c96e..cae2bbe3e953 100644 --- a/code/modules/surgery/bodyparts/helpers.dm +++ b/code/modules/surgery/bodyparts/helpers.dm @@ -18,6 +18,16 @@ qdel(old_limb) new_limb.try_attach_limb(src, special = special) +/// Replaces a single limb and returns the old one if there was one +/mob/living/carbon/proc/return_and_replace_bodypart(obj/item/bodypart/new_limb, special) + var/obj/item/bodypart/old_limb = get_bodypart(new_limb.body_zone) + if(!isnull(old_limb)) + old_limb.drop_limb(special = special) + old_limb.moveToNullspace() + + new_limb.try_attach_limb(src, special = special) + return old_limb // can be null + /mob/living/carbon/has_hand_for_held_index(i) if(!i || length(hand_bodyparts) < i) return FALSE @@ -188,19 +198,3 @@ . = "#fff4e6" if("orange") . = "#ffc905" - - ///simian tones - if("ffffff") - . = "#ffffff" - if("ffb089") - . = "#ffb089" - if("aeafb3") - . = "#aeafb3" - if("bfd0ca") - . = "#bfd0ca" - if("ce7d54") - . = "#ce7d54" - if("c47373") - . = "#c47373" - if("f4e2d5") - . = "#f4e2d5" diff --git a/code/modules/surgery/bodyparts/parts.dm b/code/modules/surgery/bodyparts/parts.dm index bfcbb0b7062a..8be15308a23e 100644 --- a/code/modules/surgery/bodyparts/parts.dm +++ b/code/modules/surgery/bodyparts/parts.dm @@ -35,12 +35,12 @@ cavity_item = null return ..() +/* //Non-Modular change: Removes Monkey bodyparts, moved to monkestation\code\modules\surgery\bodyparts\monkey_bodyparts.dm /obj/item/bodypart/chest/monkey icon = 'icons/mob/species/monkey/bodyparts.dmi' icon_static = 'icons/mob/species/monkey/bodyparts.dmi' icon_husk = 'icons/mob/species/monkey/bodyparts.dmi' husk_type = "monkey" - top_offset = -5 icon_state = "default_monkey_chest" limb_id = SPECIES_MONKEY should_draw_greyscale = FALSE @@ -49,6 +49,7 @@ bodytype = BODYTYPE_MONKEY | BODYTYPE_ORGANIC acceptable_bodytype = BODYTYPE_MONKEY dmg_overlay_type = SPECIES_MONKEY +*/ /obj/item/bodypart/chest/alien icon = 'icons/mob/species/alien/bodyparts.dmi' @@ -74,6 +75,7 @@ bodytype = BODYTYPE_LARVA_PLACEHOLDER | BODYTYPE_ORGANIC acceptable_bodytype = BODYTYPE_LARVA_PLACEHOLDER +/* //Non-Modular change: Removes Monkey bodyparts, moved to monkestation\code\modules\surgery\bodyparts\monkey_bodyparts.dm /obj/item/bodypart/arm/left/monkey icon = 'icons/mob/species/monkey/bodyparts.dmi' icon_static = 'icons/mob/species/monkey/bodyparts.dmi' @@ -90,6 +92,7 @@ unarmed_damage_low = 2 /// monkey punches must be really weak, considering they bite people instead and their bites are weak as hell. unarmed_damage_high = 2 unarmed_stun_threshold = 3 +*/ /obj/item/bodypart/arm/left/alien icon = 'icons/mob/species/alien/bodyparts.dmi' @@ -104,7 +107,7 @@ max_damage = 100 should_draw_greyscale = FALSE - +/* //Non-Modular change: Removes Monkey bodyparts, moved to monkestation\code\modules\surgery\bodyparts\monkey_bodyparts.dm /obj/item/bodypart/arm/right/monkey icon = 'icons/mob/species/monkey/bodyparts.dmi' icon_static = 'icons/mob/species/monkey/bodyparts.dmi' @@ -121,6 +124,7 @@ unarmed_damage_low = 2 unarmed_damage_high = 2 unarmed_stun_threshold = 3 +*/ /obj/item/bodypart/arm/right/alien icon = 'icons/mob/species/alien/bodyparts.dmi' @@ -230,12 +234,12 @@ else if(!bodypart_disabled) owner.set_usable_legs(owner.usable_legs + 1) +/* //Non-Modular change: Removes Monkey bodyparts, moved to monkestation\code\modules\surgery\bodyparts\monkey_bodyparts.dm /obj/item/bodypart/leg/left/monkey icon = 'icons/mob/species/monkey/bodyparts.dmi' icon_static = 'icons/mob/species/monkey/bodyparts.dmi' icon_husk = 'icons/mob/species/monkey/bodyparts.dmi' husk_type = "monkey" - top_offset = -3 icon_state = "default_monkey_l_leg" limb_id = SPECIES_MONKEY should_draw_greyscale = FALSE @@ -247,6 +251,7 @@ unarmed_damage_high = 3 unarmed_stun_threshold = 4 footprint_sprite = FOOTPRINT_SPRITE_PAWS +*/ /obj/item/bodypart/leg/left/alien icon = 'icons/mob/species/alien/bodyparts.dmi' @@ -325,12 +330,12 @@ else if(!bodypart_disabled) owner.set_usable_legs(owner.usable_legs + 1) +/* //Non-Modular change: Removes Monkey bodyparts, moved to monkestation\code\modules\surgery\bodyparts\monkey_bodyparts.dm /obj/item/bodypart/leg/right/monkey icon = 'icons/mob/species/monkey/bodyparts.dmi' icon_static = 'icons/mob/species/monkey/bodyparts.dmi' icon_husk = 'icons/mob/species/monkey/bodyparts.dmi' husk_type = "monkey" - top_offset = -3 icon_state = "default_monkey_r_leg" limb_id = SPECIES_MONKEY should_draw_greyscale = FALSE @@ -342,6 +347,7 @@ unarmed_damage_high = 3 unarmed_stun_threshold = 4 footprint_sprite = FOOTPRINT_SPRITE_PAWS +*/ /obj/item/bodypart/leg/right/alien icon = 'icons/mob/species/alien/bodyparts.dmi' @@ -355,15 +361,3 @@ can_be_disabled = FALSE max_damage = 100 should_draw_greyscale = FALSE - -/obj/item/bodypart/leg/right/tallboy - limb_id = SPECIES_TALLBOY - top_offset = 23 - unarmed_damage_low = 40 - unarmed_damage_low = 40 - -/obj/item/bodypart/leg/left/tallboy - limb_id = SPECIES_TALLBOY - top_offset = 23 - unarmed_damage_low = 40 - unarmed_damage_low = 40 diff --git a/code/modules/surgery/bodyparts/wounds.dm b/code/modules/surgery/bodyparts/wounds.dm index 2583fb659bae..9e87acfa6f62 100644 --- a/code/modules/surgery/bodyparts/wounds.dm +++ b/code/modules/surgery/bodyparts/wounds.dm @@ -174,13 +174,14 @@ * * max_severity: The maximum severity that will be considered. * * severity_pick_mode: The "pick mode" to be used. See get_corresponding_wound_type's documentation * * wound_source: The source of the wound to be applied. Nullable. + * * smited: If the wound is to be applied from a smite. * * For the rest of the args, refer to get_corresponding_wound_type(). * * Returns: * A new wound instance if the application was successful, null otherwise. */ -/mob/living/carbon/proc/cause_wound_of_type_and_severity(wounding_type, obj/item/bodypart/limb, min_severity, max_severity = min_severity, severity_pick_mode = WOUND_PICK_HIGHEST_SEVERITY, wound_source) +/mob/living/carbon/proc/cause_wound_of_type_and_severity(wounding_type, obj/item/bodypart/limb, min_severity, max_severity = min_severity, severity_pick_mode = WOUND_PICK_HIGHEST_SEVERITY, wound_source, smited = FALSE) if (isnull(limb)) limb = pick(bodyparts) @@ -190,7 +191,7 @@ var/datum/wound/corresponding_typepath = get_corresponding_wound_type(type_list, limb, min_severity, max_severity, severity_pick_mode) if (corresponding_typepath) - return limb.force_wound_upwards(corresponding_typepath, wound_source = wound_source) + return limb.force_wound_upwards(corresponding_typepath, smited = smited, wound_source = wound_source) /// Limb is nullable, but picks a random one. Defers to limb.get_wound_threshold_of_wound_type, see it for documentation. /mob/living/carbon/proc/get_wound_threshold_of_wound_type(wounding_type, severity, default, obj/item/bodypart/limb, wound_source) diff --git a/code/modules/surgery/organs/external/_external_organs.dm b/code/modules/surgery/organs/external/_external_organs.dm index d3d3e6333e6f..d3a6e26f87b2 100644 --- a/code/modules/surgery/organs/external/_external_organs.dm +++ b/code/modules/surgery/organs/external/_external_organs.dm @@ -346,7 +346,8 @@ ///Podperson bodypart overlay, with special coloring functionality to render the flowers in the inverse color /datum/bodypart_overlay/mutant/pod_hair - layers = EXTERNAL_FRONT|EXTERNAL_ADJACENT + // layers = EXTERNAL_FRONT|EXTERNAL_ADJACENT monkestation edit - original + layers = EXTERNAL_FRONT feature_key = "pod_hair" ///This layer will be colored differently than the rest of the organ. So we can get differently colored flowers or something diff --git a/code/modules/surgery/organs/external/tails.dm b/code/modules/surgery/organs/external/tails.dm index 187c2f90d82a..b6b10b0447c5 100644 --- a/code/modules/surgery/organs/external/tails.dm +++ b/code/modules/surgery/organs/external/tails.dm @@ -81,10 +81,10 @@ var/wagging = FALSE /datum/bodypart_overlay/mutant/tail/get_base_icon_state() - return (wagging ? "wagging_" : "") + sprite_datum.icon_state //add the wagging tag if we be wagging + return "[wagging ? "wagging_" : ""][sprite_datum.icon_state]" //add the wagging tag if we be wagging /datum/bodypart_overlay/mutant/tail/get_global_feature_list() - return GLOB.tails_list + return GLOB.tails_list_human /datum/bodypart_overlay/mutant/tail/can_draw_on_bodypart(mob/living/carbon/human/human) if(human.wear_suit && (human.wear_suit.flags_inv & HIDEJUMPSUIT)) @@ -108,13 +108,19 @@ return GLOB.tails_list_human /obj/item/organ/external/tail/monkey + name = "monkey tail" + preference = "feature_monkey_tail" bodypart_overlay = /datum/bodypart_overlay/mutant/tail/monkey + dna_block = null + ///Monkey tail bodypart overlay /datum/bodypart_overlay/mutant/tail/monkey - color_source = NONE feature_key = "tail_monkey" +/datum/bodypart_overlay/mutant/tail/monkey/get_global_feature_list() + return GLOB.tails_list_monkey + /obj/item/organ/external/tail/lizard name = "lizard tail" desc = "A severed lizard tail. Somewhere, no doubt, a lizard hater is very pleased with themselves." diff --git a/code/modules/surgery/organs/eyes.dm b/code/modules/surgery/organs/eyes.dm index 016e76320210..589f3d0051da 100644 --- a/code/modules/surgery/organs/eyes.dm +++ b/code/modules/surgery/organs/eyes.dm @@ -146,10 +146,10 @@ if(!istype(parent) || parent.get_organ_by_type(/obj/item/organ/internal/eyes) != src) CRASH("Generating a body overlay for [src] targeting an invalid parent '[parent]'.") - var/eye_icon = parent.dna?.species.eyes_icon || 'icons/mob/species/human/human_face.dmi' + var/eye_icon = parent.dna?.species.eyes_icon || 'icons/mob/species/human/human_face.dmi' //Non-Modular change - Gives modular eye icons for certain species. - var/mutable_appearance/eye_left = mutable_appearance(eye_icon, "[eye_icon_state]_l", -FACE_LAYER) - var/mutable_appearance/eye_right = mutable_appearance(eye_icon, "[eye_icon_state]_r", -FACE_LAYER) + var/mutable_appearance/eye_left = mutable_appearance(eye_icon, "[eye_icon_state]_l", -BODY_LAYER) + var/mutable_appearance/eye_right = mutable_appearance(eye_icon, "[eye_icon_state]_r", -BODY_LAYER) var/list/overlays = list(eye_left, eye_right) var/obj/item/bodypart/head/my_head = parent.get_bodypart(BODY_ZONE_HEAD) @@ -688,7 +688,6 @@ flash_protect = FLASH_PROTECTION_SENSITIVE overlay_ignore_lighting = TRUE - /obj/item/organ/internal/eyes/lizard name = "lizard eyes" desc = "These eyes seem to glow." diff --git a/code/modules/surgery/organs/lungs.dm b/code/modules/surgery/organs/lungs.dm index ebe938e69eaf..a40c7e2f8642 100644 --- a/code/modules/surgery/organs/lungs.dm +++ b/code/modules/surgery/organs/lungs.dm @@ -21,7 +21,6 @@ var/failed = FALSE var/operated = FALSE //whether we can still have our damages fixed through surgery - food_reagents = list(/datum/reagent/consumable/nutriment = 5, /datum/reagent/medicine/salbutamol = 5) /// Our previous breath's partial pressures, in the form gas id -> partial pressure @@ -934,6 +933,9 @@ /obj/item/organ/internal/lungs/get_availability(datum/species/owner_species, mob/living/owner_mob) return owner_species.mutantlungs +#define SMOKER_ORGAN_HEALTH (STANDARD_ORGAN_THRESHOLD * 0.75) +#define SMOKER_LUNG_HEALING (STANDARD_ORGAN_HEALING * 0.75) + /obj/item/organ/internal/lungs/plasmaman name = "plasma filter" desc = "A spongy rib-shaped mass for filtering plasma from the air." @@ -944,6 +946,14 @@ safe_plasma_min = 4 //We breathe THIS! safe_plasma_max = 0 +/obj/item/organ/internal/lungs/plasmaman/plasmaman_smoker + name = "smoker plasma filter" + desc = "A plasma filter that look discolored, a result from smoking a lot." + icon_state = "lungs_plasma_smoker" + + maxHealth = SMOKER_ORGAN_HEALTH + healing_factor = SMOKER_LUNG_HEALING + /obj/item/organ/internal/lungs/slime name = "vacuole" desc = "A large organelle designed to store oxygen and other important gasses." @@ -956,6 +966,14 @@ var/plasma_pp = breath.get_breath_partial_pressure(breath.gases[/datum/gas/plasma][MOLES]) breather_slime.blood_volume += (0.2 * plasma_pp) // 10/s when breathing literally nothing but plasma, which will suffocate you. +/obj/item/organ/internal/lungs/smoker_lungs + name = "smoker lungs" + desc = "A pair of lungs that look sickly, a result from smoking a lot." + icon_state = "lungs_smoker" + + maxHealth = SMOKER_ORGAN_HEALTH + healing_factor = SMOKER_LUNG_HEALING + /obj/item/organ/internal/lungs/cybernetic name = "basic cybernetic lungs" desc = "A basic cybernetic version of the lungs found in traditional humanoid entities." @@ -1067,6 +1085,14 @@ heat_level_hazard_threshold = CELCIUS_TO_KELVIN(200 CELCIUS) heat_level_danger_threshold = CELCIUS_TO_KELVIN(800 CELCIUS) +/obj/item/organ/internal/lungs/ethereal/ethereal_smoker + name = "smoker aeration reticulum" + desc = "A pair of exotic lungs that look pale and sickly, a result from smoking a lot." + icon_state = "lungs_ethereal_smoker" + + maxHealth = SMOKER_ORGAN_HEALTH + healing_factor = SMOKER_LUNG_HEALING + /obj/item/organ/internal/lungs/ethereal/Initialize(mapload) . = ..() add_gas_reaction(/datum/gas/water_vapor, while_present = PROC_REF(consume_water)) @@ -1082,3 +1108,5 @@ #undef BREATH_RELATIONSHIP_INITIAL_GAS #undef BREATH_RELATIONSHIP_CONVERT #undef BREATH_RELATIONSHIP_MULTIPLIER +#undef SMOKER_ORGAN_HEALTH +#undef SMOKER_LUNG_HEALING diff --git a/code/modules/surgery/organs/organ_internal.dm b/code/modules/surgery/organs/organ_internal.dm index 69e102a1ac13..4f808aab8fa0 100644 --- a/code/modules/surgery/organs/organ_internal.dm +++ b/code/modules/surgery/organs/organ_internal.dm @@ -45,7 +45,18 @@ return if(HAS_TRAIT(src, TRAIT_NO_ORGAN_DECAY) || (owner && HAS_TRAIT(owner, TRAIT_NO_ORGAN_DECAY))) return - apply_organ_damage(decay_factor * maxHealth * seconds_per_tick) + var/air_temperature_factor = 1 + if(owner) + if(owner.bodytemperature <= T0C) + return + air_temperature_factor = min((owner.bodytemperature - T0C) / 20, 1) + else + var/datum/gas_mixture/exposed_air = return_air() + if(exposed_air) + if(exposed_air.temperature <= T0C) + return + air_temperature_factor = min((exposed_air.temperature - T0C) / 20, 1) + apply_organ_damage(decay_factor * maxHealth * seconds_per_tick * air_temperature_factor) /// Called once every life tick on every organ in a carbon's body /// NOTE: THIS IS VERY HOT. Be careful what you put in here diff --git a/code/modules/unit_tests/limbsanity.dm b/code/modules/unit_tests/limbsanity.dm index a92d481f556a..6efec37ab76d 100644 --- a/code/modules/unit_tests/limbsanity.dm +++ b/code/modules/unit_tests/limbsanity.dm @@ -10,29 +10,3 @@ TEST_FAIL("[path] does not have a valid icon for female variants") else if(!icon_exists(UNLINT(part::should_draw_greyscale ? part::icon_greyscale : part::icon_static), "[part::limb_id]_[part::body_zone]")) TEST_FAIL("[path] does not have a valid icon") - -/// Tests the height adjustment system which dynamically changes how much the chest, head, and arms of a carbon are adjusted upwards or downwards based on the length of their legs and chest. -/datum/unit_test/limb_height_adjustment - -/datum/unit_test/limb_height_adjustment/Run() - var/mob/living/carbon/human/john_doe = allocate(/mob/living/carbon/human/consistent) - var/mob/living/carbon/human/species/monkey/monkey = allocate(/mob/living/carbon/human/species/monkey) - var/mob/living/carbon/human/tallboy = allocate(/mob/living/carbon/human/consistent) - - tallboy.set_species(/datum/species/human/tallboy) - TEST_ASSERT_EQUAL(john_doe.get_top_offset(), 0, "John Doe found to have a top offset other than zero.") - TEST_ASSERT_EQUAL(monkey.get_top_offset(), -8, "Monkey found to have a top offset other than -8.") - TEST_ASSERT_EQUAL(tallboy.get_top_offset(), 23, "Tallboy human varient found to have a top offset other than 23.") - - - var/obj/item/bodypart/leg/left/monkey/left_monky_leg = allocate(/obj/item/bodypart/leg/left/monkey) - var/obj/item/bodypart/leg/right/monkey/right_monky_leg = allocate(/obj/item/bodypart/leg/right/monkey) - - left_monky_leg.replace_limb(john_doe, TRUE) - - TEST_ASSERT_EQUAL(john_doe.get_top_offset(), 0, "John Doe has a top offset other than 0 with one human leg and one monkey leg.") - - right_monky_leg.replace_limb(john_doe, TRUE) - - TEST_ASSERT_EQUAL(john_doe.get_top_offset(), -3, "John Doe has a top offset other than -3 with two monkey legs.") - diff --git a/code/modules/unit_tests/screenshot_humanoids.dm b/code/modules/unit_tests/screenshot_humanoids.dm index cab447f9ea3f..42fe040cbe98 100644 --- a/code/modules/unit_tests/screenshot_humanoids.dm +++ b/code/modules/unit_tests/screenshot_humanoids.dm @@ -25,6 +25,14 @@ test_screenshot("[/datum/species/moth]", get_flat_icon_for_all_directions(moth)) //MONKESTATION ADDITION START + var/mob/living/carbon/human/tundramoth = allocate(/mob/living/carbon/human/dummy/consistent) + tundramoth.dna.features["moth_antennae"] = "Tundra" + tundramoth.dna.features["moth_markings"] = "Tundra" + tundramoth.dna.features["moth_wings"] = "Tundra" + tundramoth.set_species(/datum/species/moth/tundra) + tundramoth.equipOutfit(/datum/outfit/job/doctor, visualsOnly = TRUE) + test_screenshot("[/datum/species/moth/tundra]", get_flat_icon_for_all_directions(tundramoth)) + var/mob/living/carbon/human/apid = allocate(/mob/living/carbon/human/dummy/consistent) apid.dna.features["apid_antenna"] = "Horns" apid.dna.features["apid_wings"] = "Normal" // Just in case someone ever adds more @@ -34,7 +42,7 @@ //MONKESTATION ADDITION END // The rest of the species - for (var/datum/species/species_type as anything in subtypesof(/datum/species) - /datum/species/moth - /datum/species/lizard - /datum/species/apid) + for (var/datum/species/species_type as anything in subtypesof(/datum/species) - typesof(/datum/species/moth) - /datum/species/lizard - /datum/species/apid) test_screenshot("[species_type]", get_flat_icon_for_all_directions(make_dummy(species_type, /datum/outfit/job/assistant/consistent))) /datum/unit_test/screenshot_humanoids/proc/make_dummy(species, job_outfit) diff --git a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_floran.png b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_floran.png index ca4cd88f2295..dad072cce744 100644 Binary files a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_floran.png and b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_floran.png differ diff --git a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_human_tallboy.png b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_human_tallboy.png deleted file mode 100644 index 262353dc0a95..000000000000 Binary files a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_human_tallboy.png and /dev/null differ diff --git a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_monkey.png b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_monkey.png index 727cfe107cf2..0c168ccb8d63 100644 Binary files a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_monkey.png and b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_monkey.png differ diff --git a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_monkey_human_legged.png b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_monkey_human_legged.png deleted file mode 100644 index 31a708af7192..000000000000 Binary files a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_monkey_human_legged.png and /dev/null differ diff --git a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_monkey_monkey_freak.png b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_monkey_monkey_freak.png deleted file mode 100644 index 48bd755a6d01..000000000000 Binary files a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_monkey_monkey_freak.png and /dev/null differ diff --git a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_monkey_simian.png b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_monkey_simian.png new file mode 100644 index 000000000000..732f52a59db9 Binary files /dev/null and b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_monkey_simian.png differ diff --git a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_moth_tundra.png b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_moth_tundra.png new file mode 100644 index 000000000000..5a1d9adac6b4 Binary files /dev/null and b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_moth_tundra.png differ diff --git a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_pod.png b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_pod.png index abdb8e82734c..4974f988eac7 100644 Binary files a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_pod.png and b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_pod.png differ diff --git a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_simian.png b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_simian.png deleted file mode 100644 index 8d1cdfd9c396..000000000000 Binary files a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_simian.png and /dev/null differ diff --git a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_zombie_infectious_bloater.png b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_zombie_infectious_bloater.png new file mode 100644 index 000000000000..315426c418c2 Binary files /dev/null and b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_zombie_infectious_bloater.png differ diff --git a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_zombie_infectious_runner.png b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_zombie_infectious_runner.png new file mode 100644 index 000000000000..0e35d0ae6a57 Binary files /dev/null and b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_zombie_infectious_runner.png differ diff --git a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_zombie_infectious_spitter.png b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_zombie_infectious_spitter.png new file mode 100644 index 000000000000..a74b9528a23e Binary files /dev/null and b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_zombie_infectious_spitter.png differ diff --git a/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_zombie_infectious_tank.png b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_zombie_infectious_tank.png new file mode 100644 index 000000000000..d037b53f245e Binary files /dev/null and b/code/modules/unit_tests/screenshots/screenshot_humanoids__datum_species_zombie_infectious_tank.png differ diff --git a/code/modules/vehicles/_vehicle.dm b/code/modules/vehicles/_vehicle.dm index ca666292a3f5..dcf96b5d0b00 100644 --- a/code/modules/vehicles/_vehicle.dm +++ b/code/modules/vehicles/_vehicle.dm @@ -31,7 +31,7 @@ var/canmove = TRUE var/list/autogrant_actions_passenger //plain list of typepaths var/list/autogrant_actions_controller //assoc list "[bitflag]" = list(typepaths) - var/list/mob/occupant_actions //assoc list mob = list(type = action datum assigned to mob) + var/list/list/datum/action/occupant_actions //assoc list mob = list(type = action datum assigned to mob) ///This vehicle will follow us when we move (like atrailer duh) var/obj/vehicle/trailer var/are_legs_exposed = FALSE diff --git a/code/modules/vehicles/mecha/mech_fabricator.dm b/code/modules/vehicles/mecha/mech_fabricator.dm index d38b1909ad36..8b1db2e88e27 100644 --- a/code/modules/vehicles/mecha/mech_fabricator.dm +++ b/code/modules/vehicles/mecha/mech_fabricator.dm @@ -380,7 +380,7 @@ var/size32x32 = "[spritesheet.name]32x32" for(var/datum/design/design in cached_designs) - var/cost = list() + var/list/cost = list() for(var/datum/material/material in design.materials) cost[material.name] = get_resource_cost_w_coeff(design, material) diff --git a/code/modules/vending/_vending.dm b/code/modules/vending/_vending.dm index 8f55627077a4..b09c78887836 100644 --- a/code/modules/vending/_vending.dm +++ b/code/modules/vending/_vending.dm @@ -888,7 +888,7 @@ weighted_crits[CRUSH_CRIT_SHATTER_LEGS] = 100 weighted_crits[CRUSH_CRIT_PARAPALEGIC] = 80 - weighted_crits[CRUSH_CRIT_HEADGIB] = 20 + weighted_crits[CRUSH_CRIT_HEADGIB] = 30 weighted_crits[CRUSH_CRIT_SQUISH_LIMB] = 100 return weighted_crits @@ -931,8 +931,8 @@ if (!iscarbon(atom_target)) return FALSE var/mob/living/carbon/carbon_target = atom_target - visible_message(span_danger("[carbon_target]'s spinal cord is obliterated with a sickening crunch!"), ignored_mobs = list(carbon_target)) - carbon_target.gain_trauma(/datum/brain_trauma/severe/paralysis/paraplegic) + visible_message(span_danger("[carbon_target]'s spinal cord is wrecked with a sickening crunch!"), ignored_mobs = list(carbon_target)) + carbon_target.gain_trauma(/datum/brain_trauma/severe/paralysis/crushed) return TRUE if(CRUSH_CRIT_SQUISH_LIMB) // limb squish! if (!iscarbon(atom_target)) diff --git a/code/modules/vending/clothesmate.dm b/code/modules/vending/clothesmate.dm index 490fdfbbd7bf..d8b5561910ab 100644 --- a/code/modules/vending/clothesmate.dm +++ b/code/modules/vending/clothesmate.dm @@ -39,6 +39,7 @@ "name" = "Accessories", "icon" = "glasses", "products" = list( + /obj/item/clothing/accessory/pride = 15, /obj/item/clothing/accessory/waistcoat = 4, /obj/item/clothing/suit/toggle/suspenders = 4, /obj/item/clothing/neck/tie/horrible = 3, diff --git a/code/modules/vending/wardrobes.dm b/code/modules/vending/wardrobes.dm index 89efc62f8f57..f1c8838ef3de 100644 --- a/code/modules/vending/wardrobes.dm +++ b/code/modules/vending/wardrobes.dm @@ -554,6 +554,7 @@ /obj/item/storage/backpack/virology = 2, /obj/item/storage/backpack/satchel/vir = 2, /obj/item/storage/backpack/duffelbag/virology = 2, + /obj/item/clothing/gloves/latex/nitrile = 2, // Monkestation addition ) refill_canister = /obj/item/vending_refill/wardrobe/viro_wardrobe payment_department = ACCOUNT_MED diff --git a/code/modules/zombie/items.dm b/code/modules/zombie/items.dm index f933f14854a7..a7ae8b89b3db 100644 --- a/code/modules/zombie/items.dm +++ b/code/modules/zombie/items.dm @@ -16,11 +16,14 @@ if(!proximity_flag) return else if(isliving(target)) + var/mob/living/living_target = target + if(!highly_infecious && living_target.stat != DEAD) + return if(ishuman(target)) try_to_zombie_infect(target, user, user.zone_selected) - else + /*else monkestation temp removal . |= AFTERATTACK_PROCESSED_ITEM - check_feast(target, user) + check_feast(target, user)*/ /proc/try_to_zombie_infect(mob/living/carbon/human/target, mob/living/user, def_zone = BODY_ZONE_CHEST) CHECK_DNA_AND_SPECIES(target) @@ -84,3 +87,10 @@ user.updatehealth() user.adjustOrganLoss(ORGAN_SLOT_BRAIN, -hp_gained) // Zom Bee gibbers "BRAAAAISNSs!1!" user.set_nutrition(min(user.nutrition + hp_gained, NUTRITION_LEVEL_FULL)) +//monkestation edit start + if(iszombie(user)) + var/mob/living/carbon/carbon_user = user + var/datum/species/zombie/infectious/zombie_datum = carbon_user.dna.species + zombie_datum.consumed_flesh += hp_gained +//monkestation edit end + diff --git a/config/auxtools.txt b/config/auxtools.txt deleted file mode 100644 index 369480c0b867..000000000000 --- a/config/auxtools.txt +++ /dev/null @@ -1,6 +0,0 @@ -## -## Master config flag for enabling/disabling auxtools. -## Currently, this will disable Lua scripting. -## - -#AUXTOOLS_ENABLED diff --git a/config/game_options.txt b/config/game_options.txt index 6d24745d76f5..d25048ef41ac 100644 --- a/config/game_options.txt +++ b/config/game_options.txt @@ -349,6 +349,7 @@ ROUNDSTART_RACES human ROUNDSTART_RACES lizard #ROUNDSTART_RACES fly ROUNDSTART_RACES moth +ROUNDSTART_RACES tundra_moth ROUNDSTART_RACES plasmaman #ROUNDSTART_RACES shadow ROUNDSTART_RACES oozeling diff --git a/dependencies.sh b/dependencies.sh index e6ad5bf85cad..1c6130c6cd1d 100644 --- a/dependencies.sh +++ b/dependencies.sh @@ -21,8 +21,8 @@ export SPACEMAN_DMM_VERSION=suite-1.8 # Python version for mapmerge and other tools export PYTHON_VERSION=3.9.0 -#auxlua repo -export AUXLUA_REPO=tgstation/auxlua +#dreamluau repo +export DREAMLUAU_REPO="tgstation/dreamluau" -#auxlua git tag -export AUXLUA_VERSION=1.4.4 +#dreamluau git tag +export DREAMLUAU_VERSION=0.1.3 diff --git a/dreamluau.dll b/dreamluau.dll new file mode 100644 index 000000000000..0ca6b363df9f Binary files /dev/null and b/dreamluau.dll differ diff --git a/html/changelogs/archive/2024-10.yml b/html/changelogs/archive/2024-10.yml index c9da7a171611..64a946c911c0 100644 --- a/html/changelogs/archive/2024-10.yml +++ b/html/changelogs/archive/2024-10.yml @@ -580,3 +580,19 @@ was supposed to (indicated by its own code) - bugfix: Heart Worms now no longer instantly kills you if you have CE_STABLEHEART or for some reason are immune to heart attacks WITH stableheart. +2024-10-30: + Absolucy: + - bugfix: Fixed a hard delete related to wumpas. + - sound: The sound from picking up / dropping a wumpa now respects the "squeak" + mixer channel, as stepping on it and such already does. + - bugfix: You can no longer lower the alert from delta/epsilon from a comms console + (it wouldn't actually do anything to whatever was CAUSING said alert anyways) + Gboster-0: + - rscadd: Signal technicians now have wintercoats + - qol: The signal technician's traffic console no longer saves your code on ENTER, + letting you comfortably make new-lines with enter instead + Gw0sty: + - bugfix: Makes Nuclear reinforcements call upon Midround nukie preferences rather + than round start. + MomoBerri: + - bugfix: fixed quartermasters doors. diff --git a/html/changelogs/archive/2024-11.yml b/html/changelogs/archive/2024-11.yml new file mode 100644 index 000000000000..45bd861b0bf8 --- /dev/null +++ b/html/changelogs/archive/2024-11.yml @@ -0,0 +1,328 @@ +2024-11-01: + DexeeXI: + - bugfix: 'Kilo: asteroid magnet resized, now working once more without (for now) + showing SHIT IS FUCK.' + - rscadd: Blueshield and NT Rep specific permissions. + - rscdel: Removed Centcom perms from Blueshield and NT Rep (this is admin only, + dont give this to players) + - bugfix: 'All Maps except Box: NT Rep and Blueshield doors now accessible by BS + and Rep.' + - bugfix: 'Icebox: Teleporter doors tweaked to allow Blueshield and NT Rep to go + through to the weirdly placed office.' + - bugfix: 'All Maps except Box: NT Rep closets and lockers replaced with standardized + NT Rep Locker, with perms. Some maps will have medals that were included from + previous authors.' + - rscadd: NT Rep now has a singular spawn point on all maps, except Box. This singular + point is in a comfy chair in the office. + JohnFulpWillard: + - rscadd: Monkeys can now wear any outfit rather than just the waiter outfit. + - rscadd: Simians now use the same height filter system as Monkeys to wear outfits + instead of having their own icon for each individual piece of clothing. + - rscadd: Monkeys now use the same prefs as Simians, having Fur and eye colors. + By default monkeys are all brown, and simians can choose to be brown as well. + - rscadd: Simians and monkeys are now at the bottom of the tile they are on, rather + than the middle. + - rscdel: Big legged species and monkey abominations. + - bugfix: Gigantism no longer doubles your size twice. + KnigTheThrasher: + - bugfix: Fixed security maintenance on kilostation + Meowosers: + - rscadd: Finished Fermentation Kegs can now be wrapped into parcels + RafRoq: + - balance: Prickly Adhesion damage halved + ThePooba: + - bugfix: window sill grills now break instantly instead of becoming glitchy messes + - bugfix: windowsills can now be built on once again. + - bugfix: Eland can now be reloaded and wont drop its spent caseless ammunition + dwasint: + - bugfix: some species not healing oxyloss when giving the NOBREATH trait + - rscadd: right clicking food items will bring up a radial wheel of foods you can + craft, this allows bulk crafting. + - balance: Hand crafted foods (using the new system) increases the quality of food + buffs. + lemonycake: + - rscadd: add the alt title "Princess" to captain +2024-11-02: + Gw0sty: + - rscadd: Added a new 'Late Join' Category and role, the 'Barber'. + - rscadd: Added scissors, hairbrush, combs, dye sprays, and fur dyers from the code + into service lathe roundstart! + - rscadd: Gave service cyborgs new tools of scissors, hairbrush, and dye sprays. + - rscadd: Added barber lockers and vendings to all stations. + - code_imp: Changed the voidraptor forge area type from a barber area to a forge + area. + - qol: Health analyzers now alert if the subject has taken the heavy bleeder trait. + - rscadd: Added more cybernetics into the cybernetic revolution station trait. + - rscadd: Added new leg cybernetic for research "Vacuole ligament system" + Shoddd: + - rscadd: Tundra moths, a new species of moth + - rscadd: 3 New wings, 2 new antennae, and 1 new marking for moths +2024-11-03: + Absolucy: + - bugfix: Fixed a door in the Blueshift aux base requiring construction access instead + of aux base access. + - bugfix: Moon heretic ascension now properly turns 20% of the crew into lunatics, + rather than ALL ELIGIBLE CREW. + - admin: Changed the Lua scripting backend from auxlua to dreamluau. Lua scripts + will need to be adjusted accordingly. + - bugfix: Fixed some code related to artifacts. + - bugfix: Clown artifact faults should now actually work. + Absolucy, LT3: + - bugfix: Fixed alignment of RPG titles. + Gboster-0: + - bugfix: the signal technician's winter hood no longer flickers in the dark + Gw0sty: + - rscadd: 'Added three programs to cyborg PDAs: SiliConnect, AtmoZphere, and Crew + Manifest' + Wisemonster: + - bugfix: The security airlocks leading to perma from inner security on voidraptor + now use perma access +2024-11-05: + Absolucy: + - qol: The AI radio speech sound effect now only plays from over "normal" frequencies + - AI private and non-departmental frequencies will not play the speech sound. + - bugfix: Jaunts now ACTUALLY work at centcom after roundend, for realsies. + - balance: Teratomas now have minor regeneration (1 brute/burn, 0.5 tox per second). + This is linked to their liver. + - balance: Teratomas no longer need to breathe. + - refactor: Moved teratoma misfortune to be linked to their brain, rather than species. + - refactor: Moved teratoma unconvertability to their mind/antag datum, rather than + species. + SirNightKnight: + - rscadd: Mice/rats have figured out how to eat a larger variety of food. + Wisemonster: + - balance: Blueshift's security modsuits now require armory access for their room + - balance: Blueshift's security locker room now requires brig access to enter + - balance: Blueshifts's gulag teleporter room now requires brig access to enter + - bugfix: The security escape pod on blueshift uses general security access instead + of external access + - balance: Moved the security modsuits on voidraptor into the armory, moved the + secway and riot suit to the previous modsuit location and onto a nearby rack, + respectively + - balance: Theseus now has security modsuits in security + - balance: The room containing security modsuits on Theseus now requires armory + access to enter + - balance: Theseus' security techfab has been moved to the security office proper + - balance: The security locker room on theseus now requires brig access + - balance: The Theseus brig cells now require brig access to use + - balance: The gulag is now more secure using more lava tiles +2024-11-06: + BanementI: + - rscadd: Adds 326 new vox lines for you to annoy the crew with. + Gw0sty: + - rscadd: replaced all stations bardrone mob with a new ghostrole spawner "Bardrone". + Shoddd: + - bugfix: Satyr tail and fur is no longer in their head + - bugfix: Satyr tail, fur, and horns have proper descriptions + - bugfix: Tundra moth limb descriptions and names fixed + - bugfix: Tundra moths use moth wings with flight potion + Wisemonster: + - balance: The advisory level is now based on the selected storyteller, rather than + arbitrary. (green = ghost, sleeper. midnight= jester, warrior. orange = others) +2024-11-07: + RikuTheKiller: + - rscadd: Transfer votes now have an announcement and default to continuing the + round for any non-voters. + Sorenon: + - bugfix: fixed dwarfish people not having eyes + - bugfix: fixed giant people shrinking when they break-dance + - bugfix: fixed floran / pod people hair being drawn bellow clothing + Sylphily: + - balance: changed how getting paralyzed by the vendors works, it now can take a + selection of any 2 limbs, or your entire body, but a lobo from medical can fix + it, also raises the weight of the head gib crit + The-Black-Screen: + - rscadd: added the nanotrasen representative's office area, the shipbreaking area, + miscellaneous things. + - rscdel: removed the vacant office, miscellaneous things. + - balance: changed the numbers of specific roles via boxstation.json. + - bugfix: fixed the air alarm in the kitchen coldroom, fixed the tachyon-doppler + array direction, fixed tank compressor direction, miscellaneous things. + Tractor Mann: + - rscadd: You can fax more things now! hack a fax machines input servo to send banana + peels, commit remote armed robbery and more! + - rscdel: Fax machines can no longer jam. + - spellcheck: the paper only message for NT faxes has been changed. + - admin: fax machines can now have recieve_notifies_admins set so you dont have + to always keep a eye on your fax machine. + flleeppyy: + - bugfix: you must *assinhale to *superfart. you may *fart to disarm your ass. + - rscadd: added emotes vomit, nodnods, and squint + - admin: you can now choose to add quirks in the "Select Equipment" menu + - admin: new VV dropdown option "Shake" +2024-11-08: + Absolucy: + - rscadd: Organs no longer decay when below freezing temperatures, and decay slower + in colder (but not below freezing) temperatures. + - bugfix: The Wonderland Manifestation status effect actually properly works for + most abilities now. + - rscadd: The Wonderland Manifestation recoil effect now interacts with the pain + system. + - bugfix: The Malkavian clan objective to kill masquerade breakers is now properly + marked as completed when the target succumbs to the Final Death. + - bugfix: Fixed some... interesting code in the Gamemode subsystem (unsure how this + didn't error, ngl) + Gw0sty: + - rscadd: Added the robotic versions of brainwashing, lobotomy, pacification, amputation, + and brain surgery + - rscadd: Added a 'Brig Physician's Toolbox' to the Brig docs locker + - rscadd: Added Surgery computer and table to ouroboros sec med. + - rscdel: Removed the ability for wound tending on robotic chest's. + - rscdel: Removed doorhelper that wasnt doing anything in Centcom + - qol: Clarified gas analyzers are needed for xray cameras in the tooltips. + RandomDudeFromTheRim: + - bugfix: fixed a few things, really. + Veth-s: + - rscadd: Added AdminVOX to the game, to allow admins to do AI-like Vox announcements. +2024-11-09: + Wisemonster: + - spellcheck: Added mention of the supply department in the HoP's description +2024-11-11: + Absolucy: + - qol: Signboard text now appears more transparent for players when they are standing + behind the text. + - qol: Decreased line height for signboard text, so the text takes up less vertical + space. + - qol: Restored the original alpha for signboard text. + - rscadd: Tamed carps now go much faster when ridden without gravity. + - qol: Tamed carps now have better pathfinding. + Absolucy, Spaghetti-bit: + - bugfix: Tweaked how combinable messages work in an attempt to reduce lag from + chat spam. + Gw0sty: + - rscadd: Added new traitor uplink item. "License to Plasmaflood". You can guess + the rest. + Shoddd: + - rscadd: Tumor Shard now works on elites not in their body + - bugfix: you can no longer unflip tables as ghost and from a distance + - code_imp: modularized long guns + SirNightKnight: + - qol: The cyborg cargo module now has a tray for collecting mail tokens. + - bugfix: Fixed reloading for the bounty cycler shotgun. + ThePooba: + - rscdel: changed the continue vote to not default to continue without votes + - bugfix: Allows loneops to spawn if the antag cap is reached but disk is unsecured + and gaining weight. + - bugfix: Omnitraitors should no longer occur roundstart (no more Changeling vampyres) + - balance: Stardust shells do half the stamina damage now and have more spread + - balance: Rainbow slimes no do not Regen limbs anymore, healing is 300 over 30 + seconds, Causes pain, can only be used every 3 minutes. + Wisemonster: + - rscadd: The HoP's hardsuit is now available on all maps + - balance: Pathologist now have pharmacy access + - balance: The HoP's door remote has been given supply access, in addition to it's + civilian access. + - balance: The HoP now has access to mining, the QM office, and the vault. + - balance: Boxstation's security locker room now requires brig access to enter + - balance: The security side of Boxstation's labor camp shuttle transfer area now + requires brig access. + - balance: The interior of Boxstation's justice chamber now requires brig access, + and the execution chamber itself requires armory access. +2024-11-12: + t-toasted: + - rscadd: adds some more materials throughout maint, alongside other goodies + - rscadd: adds some solars crates near solars + - rscadd: gives NT Rep a computer and fax machine + - rscadd: adds in request consoles to almost every room + - rscdel: removed stray button in QM office + - rscdel: removed stray shutters outside chapel + - balance: removed a few windows at public garden + - qol: 'expands maints a little, hopefully gives antags more open spaces (three + large spaces added: one above science, one below cargo, one east of botany)' + - qol: engineering now has more tools in their lockers, adds two additional lockers + - bugfix: captain office shutters now work +2024-11-13: + Absolucy: + - qol: Artifacts with the Talkative Fault now have an actual cooldown between forcing + people to speak, preventing client-side lag whenever someone decides to be annoying + and activate it 500 times in a populated area. + - bugfix: Bloodsucker lunge can no longer grab the victim from several rooms away + after it starts. + Absolucy, OliverOtter: + - rscadd: 4 new alert levels! Yellow, Amber, Gamma, and Lambda. + - rscadd: Yellow alert is for engineering issues, and Amber is for biological issues + (like zombies, blob, super virus, etc) + - sound: Added a special sound effect for Both Gamma and Lambda. + - admin: Added Gamma, a CC flavored Red alert, and Lambda, which should ONLY be + used for when a cult wins, or potentially a very angry ascended heretic. + Gw0sty: + - bugfix: Fix ssd examine text to show the correct cyro time. (30 minutes) + PotatoTomahto: + - rscadd: Adds microwave smite to toast people. + - bugfix: 'Fixes pierce wounds and admin smites. + + :cl:' + Sorenon: + - rscadd: Added the pride pin quirk + - image: adds special sprites for lungs when you use the smoker quirk + - rscadd: Added the ability to adjust neck clothing items to reveal accessories + - rscadd: 'New funny internals for the clowns to spawn with. They come with O2 and + a secondary gas between 3 options: BZ, Helium and N2O. Talk with a "different + tone" with Helium, giggle and laugh "uncontrollably" while under the minor effects + of N2O or have "fun" hallucinations while under the minor effects of BZ.' + - balance: To not cut on how long the clown's O2 internals last due to the mixed + gases, the funny internals have 50% more gas volume, same as engineers' internals. + - rscadd: You can now choose the prosthetic you want with the Prosthetic Limb quirk. + - refactor: split the three tg quirk files into separate files for each quirk + Veth-s: + - rscadd: Added a tgui panel/button to access drone laws at any time. + steelphoenix4: + - code_imp: Split Toys loadout category into Plushies and Toys + - code_imp: Split Toys store category into Plushies and Toys + - code_imp: Move plushies from toys to Plushies + - rscadd: Add Big And Will Be Bad Wolf and Scorched Girl to the store +2024-11-14: + Gw0sty: + - rscadd: Pathologists are given science goggles and a syringe in their roundstart + equipment. + - rscadd: Added virology chemical fridges to several maps + - qol: Added Gloves to the Virology vendor. + - bugfix: Adjusted vox to reflect what is said for two virology related lines. + - balance: Removed advanced parts from holomaps so they will stop being harvested + by said virologists. + ThePooba: + - rscadd: Adds buttons to switch between servers. The buttons will also indicate + which server you are currently on. + Veth-s: + - image: added a new icon for the bardrone law panel + - admin: Added Check Players verb + - admin: Fixed Adjust Event Tokens to work off of ckey instead of Character Name + - admin: Fixed Adjust Antag Tokens to work off of ckey instead of Character Name + Wisemonster: + - bugfix: Fixed the supermatter power surge event only ever being class 1 + - balance: Chainsaw's structure damage multiplier reduced from 1.5 to 1.4 (36 damage + to 33.6) + - balance: Secure crate's minimum damage required increased from 25 to 35 +2024-11-16: + Absolucy: + - image: LOOC runechat now has an icon next to it, making it more obviously LOOC. + Whoops, I kinda forgot to add this, then completely forgot about it. + - bugfix: You can no longer crush random unsuspecting people with vendors by ventcrawling + while cursed. Teratomas rejoice, doors won't stun you while inside the vents + anymore. + - qol: AFK players don't count as "watchers" for cursed stuff. + KnigTheThrasher: + - rscadd: Updated some maintenance areas on kilostation. + Shoddd: + - rscadd: Add two types of elf ears to anime quirk + - code_imp: Removed a second color check from anime overlays + - bugfix: Cooldowns for spitter and bloater now trigger + - bugfix: Bloaters and xenos can no longer instant husk, and gib + - bugfix: Fixes lucky skin for .45 Long + SirNightKnight: + - bugfix: Fixed stamina projectiles dealing DOUBLE STAMINA DAMAGE. Rebalanced the + debilitated status effect accordingly. + - balance: Rebalanced shotgun ammo. + - balance: C38 rubber rounds do not lose kinetic force on ricochet and deal slightly + more stamina damage. + - bugfix: Dismissed goats from service in death against vines. + - bugfix: Covert mod can be used as internals + Veth-s: + - bugfix: fixed allergens from the Allergies perk sometimes being blank. + Wisemonster: + - balance: Each blueshield gun (minus the Hellfire) now comes with lethal ammo and + non-lethal ammo + flleeppyy: + - rscadd: jazz artifact effects + tired-wired: + - rscadd: adds an intern (trialmin) office to centcom. diff --git a/icons/hud/lobby/background_monke.dmi b/icons/hud/lobby/background_monke.dmi index d69662aba72d..716e5cd03de8 100644 Binary files a/icons/hud/lobby/background_monke.dmi and b/icons/hud/lobby/background_monke.dmi differ diff --git a/icons/hud/lobby/location_indicator.dmi b/icons/hud/lobby/location_indicator.dmi new file mode 100644 index 000000000000..e39ffe60c4ab Binary files /dev/null and b/icons/hud/lobby/location_indicator.dmi differ diff --git a/icons/hud/lobby/redirect.dmi b/icons/hud/lobby/redirect.dmi new file mode 100644 index 000000000000..4f36154ccf23 Binary files /dev/null and b/icons/hud/lobby/redirect.dmi differ diff --git a/icons/hud/lobby/sister_server_buttons.dmi b/icons/hud/lobby/sister_server_buttons.dmi new file mode 100644 index 000000000000..4e1b53940590 Binary files /dev/null and b/icons/hud/lobby/sister_server_buttons.dmi differ diff --git a/icons/hud/lobby/vanderlin_button.dmi b/icons/hud/lobby/vanderlin_button.dmi new file mode 100644 index 000000000000..e94accb55d58 Binary files /dev/null and b/icons/hud/lobby/vanderlin_button.dmi differ diff --git a/icons/mob/actions/backgrounds.dmi b/icons/mob/actions/backgrounds.dmi index c9aa15345388..8c99a80fa1fe 100644 Binary files a/icons/mob/actions/backgrounds.dmi and b/icons/mob/actions/backgrounds.dmi differ diff --git a/icons/mob/clothing/belt.dmi b/icons/mob/clothing/belt.dmi index 91587ca799c3..ab3f62f36f3b 100644 Binary files a/icons/mob/clothing/belt.dmi and b/icons/mob/clothing/belt.dmi differ diff --git a/icons/mob/clothing/belt_mirror.dmi b/icons/mob/clothing/belt_mirror.dmi index 0820d18679ee..e4feec31ca20 100644 Binary files a/icons/mob/clothing/belt_mirror.dmi and b/icons/mob/clothing/belt_mirror.dmi differ diff --git a/icons/mob/huds/hud.dmi b/icons/mob/huds/hud.dmi index 80331ddc1845..ffefc65073f0 100644 Binary files a/icons/mob/huds/hud.dmi and b/icons/mob/huds/hud.dmi differ diff --git a/icons/mob/inhands/equipment/tanks_lefthand.dmi b/icons/mob/inhands/equipment/tanks_lefthand.dmi index 300d3c4740d1..dc32e285237a 100644 Binary files a/icons/mob/inhands/equipment/tanks_lefthand.dmi and b/icons/mob/inhands/equipment/tanks_lefthand.dmi differ diff --git a/icons/mob/inhands/equipment/tanks_righthand.dmi b/icons/mob/inhands/equipment/tanks_righthand.dmi index 3b19be625980..30f2233c5ace 100644 Binary files a/icons/mob/inhands/equipment/tanks_righthand.dmi and b/icons/mob/inhands/equipment/tanks_righthand.dmi differ diff --git a/icons/mob/species/human/human_face.dmi b/icons/mob/species/human/human_face.dmi index a65ab1a0e4ee..e44a43bead7e 100644 Binary files a/icons/mob/species/human/human_face.dmi and b/icons/mob/species/human/human_face.dmi differ diff --git a/icons/mob/species/monkey/bodyparts.dmi b/icons/mob/species/monkey/bodyparts.dmi index 689ef5e63d7e..9e95cbd0c72f 100644 Binary files a/icons/mob/species/monkey/bodyparts.dmi and b/icons/mob/species/monkey/bodyparts.dmi differ diff --git a/icons/mob/species/monkey/monkey_tail.dmi b/icons/mob/species/monkey/monkey_tail.dmi index 2a06af25b797..ffebf714f9aa 100644 Binary files a/icons/mob/species/monkey/monkey_tail.dmi and b/icons/mob/species/monkey/monkey_tail.dmi differ diff --git a/icons/mob/species/monkey/uniform.dmi b/icons/mob/species/monkey/uniform.dmi deleted file mode 100644 index 21d70e5694f2..000000000000 Binary files a/icons/mob/species/monkey/uniform.dmi and /dev/null differ diff --git a/icons/mob/species/moth/bodyparts.dmi b/icons/mob/species/moth/bodyparts.dmi index 6324ad386e4c..eede92e58b62 100644 Binary files a/icons/mob/species/moth/bodyparts.dmi and b/icons/mob/species/moth/bodyparts.dmi differ diff --git a/icons/mob/species/moth/moth_antennae.dmi b/icons/mob/species/moth/moth_antennae.dmi index 1085746ac1de..1a078a448579 100644 Binary files a/icons/mob/species/moth/moth_antennae.dmi and b/icons/mob/species/moth/moth_antennae.dmi differ diff --git a/icons/mob/species/moth/moth_markings.dmi b/icons/mob/species/moth/moth_markings.dmi index 2429b0aa12df..e603a8ed4783 100644 Binary files a/icons/mob/species/moth/moth_markings.dmi and b/icons/mob/species/moth/moth_markings.dmi differ diff --git a/icons/obj/atmospherics/tank.dmi b/icons/obj/atmospherics/tank.dmi index b8bdeed9d98c..9075204d7640 100644 Binary files a/icons/obj/atmospherics/tank.dmi and b/icons/obj/atmospherics/tank.dmi differ diff --git a/icons/obj/card.dmi b/icons/obj/card.dmi index a4a87613070c..a1e432761f6f 100644 Binary files a/icons/obj/card.dmi and b/icons/obj/card.dmi differ diff --git a/icons/obj/clothing/masks.dmi b/icons/obj/clothing/masks.dmi index 485bc22a2d65..052449ee3b5b 100644 Binary files a/icons/obj/clothing/masks.dmi and b/icons/obj/clothing/masks.dmi differ diff --git a/icons/obj/fax.dmi b/icons/obj/fax.dmi index de9b6122864b..7815c553a919 100644 Binary files a/icons/obj/fax.dmi and b/icons/obj/fax.dmi differ diff --git a/icons/obj/food/containers.dmi b/icons/obj/food/containers.dmi index aea93b956fc3..e4ac800e6bb3 100644 Binary files a/icons/obj/food/containers.dmi and b/icons/obj/food/containers.dmi differ diff --git a/icons/obj/food/piecake.dmi b/icons/obj/food/piecake.dmi index 1fc5c954bb51..9fc4da69c2ba 100644 Binary files a/icons/obj/food/piecake.dmi and b/icons/obj/food/piecake.dmi differ diff --git a/icons/obj/medical/organs/organs.dmi b/icons/obj/medical/organs/organs.dmi index e0373b74ea58..3112af5f8a0a 100644 Binary files a/icons/obj/medical/organs/organs.dmi and b/icons/obj/medical/organs/organs.dmi differ diff --git a/icons/obj/pda.dmi b/icons/obj/pda.dmi index a26fb0f7d58b..04c9377c730b 100644 Binary files a/icons/obj/pda.dmi and b/icons/obj/pda.dmi differ diff --git a/icons/obj/storage/toolbox.dmi b/icons/obj/storage/toolbox.dmi index 9ca99565f317..68381e99dbc6 100644 Binary files a/icons/obj/storage/toolbox.dmi and b/icons/obj/storage/toolbox.dmi differ diff --git a/icons/obj/storage/wrapping.dmi b/icons/obj/storage/wrapping.dmi index 23725f2a0c6d..7c95ab090138 100644 Binary files a/icons/obj/storage/wrapping.dmi and b/icons/obj/storage/wrapping.dmi differ diff --git a/icons/obj/weapons/guns/ballistic.dmi b/icons/obj/weapons/guns/ballistic.dmi index eef39df6dcca..bdc1c596aee2 100644 Binary files a/icons/obj/weapons/guns/ballistic.dmi and b/icons/obj/weapons/guns/ballistic.dmi differ diff --git a/icons/ui_icons/chat/chat_icons.dmi b/icons/ui_icons/chat/chat_icons.dmi index 8cc4b2c5598f..d1b4713a7097 100644 Binary files a/icons/ui_icons/chat/chat_icons.dmi and b/icons/ui_icons/chat/chat_icons.dmi differ diff --git a/lua/SS13_base.lua b/lua/SS13_base.lua index ea04c8c6503d..23f464bf328a 100644 --- a/lua/SS13_base.lua +++ b/lua/SS13_base.lua @@ -5,59 +5,38 @@ local SS13 = {} __SS13_signal_handlers = __SS13_signal_handlers or {} -SS13.SSlua = dm.global_vars.vars.SSlua +SS13.SSlua = dm.global_vars.SSlua SS13.global_proc = "some_magic_bullshit" SS13.state = state.state function SS13.get_runner_ckey() - return SS13.state:get_var("ckey_last_runner") + return SS13.state.ckey_last_runner end function SS13.get_runner_client() - return dm.global_vars:get_var("GLOB"):get_var("directory"):get(SS13.get_runner_ckey()) + return dm.global_vars.GLOB.directory[SS13.get_runner_ckey()] end -function SS13.istype(thing, type) - return dm.global_proc("_istype", thing, dm.global_proc("_text2path", type)) == 1 -end - -function SS13.start_tracking(datum) - local references = SS13.state.vars.references - references:add(datum) - SS13.state:call_proc("clear_on_delete", datum) -end +SS13.type = dm.global_procs._text2path -function SS13.new(type, ...) - local datum = SS13.new_untracked(type, ...) - if datum then - SS13.start_tracking(datum) - return datum - end +function SS13.istype(thing, type) + return dm.global_procs._istype(thing, SS13.type(type)) == 1 end -function SS13.type(string_type) - return dm.global_proc("_text2path", string_type) -end +SS13.new = dm.new function SS13.qdel(datum) if SS13.is_valid(datum) then - dm.global_proc("qdel", datum) + dm.global_procs.qdel(datum) return true end return false end -function SS13.new_untracked(type, ...) - return dm.global_proc("_new", type, { ... }) -end - function SS13.is_valid(datum) - if datum and not datum:is_null() and not datum:get_var("gc_destroyed") then - return true - end - return false + return dm.is_valid_ref(datum) and not datum.gc_destroyed end function SS13.await(thing_to_call, proc_to_call, ...) @@ -67,123 +46,110 @@ function SS13.await(thing_to_call, proc_to_call, ...) if thing_to_call == SS13.global_proc then proc_to_call = "/proc/" .. proc_to_call end - local promise = SS13.new("/datum/auxtools_promise", thing_to_call, proc_to_call, ...) - local promise_vars = promise.vars - while promise_vars.status == 0 do + local promise = SS13.new("/datum/promise", thing_to_call, proc_to_call, ...) + while promise.status == 0 do sleep() end - local return_value, runtime_message = promise_vars.return_value, promise_vars.runtime_message - SS13.stop_tracking(promise) - return return_value, runtime_message + return promise.return_value, promise.runtime_message end -function SS13.register_signal(datum, signal, func) - if not SS13.istype(datum, "/datum") then - return +local function signal_handler(data, ...) + local output = 0 + for func, _ in data.functions do + local result = func(...) + if type(result) == "number" then + output = bit32.bor(output, math.floor(result)) + end end - if not SS13.is_valid(datum) then - error("Tried to register a signal on a deleted datum!", 2) - return + return output +end + +local function create_qdeleting_callback(datum) + local callback = SS13.new("/datum/callback", SS13.state, "call_function_return_first") + callback:RegisterSignal(datum, "parent_qdeleting", "Invoke") + local path = { + "__SS13_signal_handlers", + dm.global_procs.WEAKREF(datum), + "parent_qdeleting", + "handler", + } + callback.arguments = { path } + local handler_data = { callback = callback, functions = {} } + handler_data.handler = function(source, ...) + local result = signal_handler(handler_data, source, ...) + for signal, signal_data in __SS13_signal_handlers[source] do + signal_data.callback:UnregisterSignal(source, signal) + end + __SS13_signal_handlers[source] = nil + return result end - local datumWeakRef = dm.global_proc("WEAKREF", datum) - if not __SS13_signal_handlers[datumWeakRef] then - __SS13_signal_handlers[datumWeakRef] = {} + __SS13_signal_handlers[datum]["parent_qdeleting"] = handler_data +end + +function SS13.register_signal(datum, signal, func) + if not type(func) == "function" then + return end - if signal == "_cleanup" then + if not SS13.istype(datum, "/datum") then return end - if not __SS13_signal_handlers[datumWeakRef][signal] then - __SS13_signal_handlers[datumWeakRef][signal] = {} + if not SS13.is_valid(datum) then + error("Tried to register a signal on a deleted datum", 2) end - local callback = SS13.new("/datum/callback", SS13.state, "call_function_return_first") - local callbackWeakRef = dm.global_proc("WEAKREF", callback) - callback:call_proc("RegisterSignal", datum, signal, "Invoke") - local path = { "__SS13_signal_handlers", datumWeakRef, signal, callbackWeakRef, "func" } - callback.vars.arguments = { path } - -- Turfs don't remove their signals on deletion. - if not __SS13_signal_handlers[datumWeakRef]._cleanup and not SS13.istype(datum, "/turf") then - local cleanupCallback = SS13.new("/datum/callback", SS13.state, "call_function_return_first") - local cleanupPath = { "__SS13_signal_handlers", datumWeakRef, "_cleanup"} - cleanupCallback.vars.arguments = { cleanupPath } - cleanupCallback:call_proc("RegisterSignal", datum, "parent_qdeleting", "Invoke") - __SS13_signal_handlers[datumWeakRef]._cleanup = function(datum) - SS13.start_tracking(datumWeakRef) - timer.set_timeout(0, function() - SS13.signal_handler_cleanup(datumWeakRef) - SS13.stop_tracking(cleanupCallback) - SS13.stop_tracking(datumWeakRef) - end) + if not __SS13_signal_handlers[datum] then + __SS13_signal_handlers[datum] = {} + -- Turfs don't remove their signals on deletion. + if not SS13.istype(datum, "/turf") then + create_qdeleting_callback(datum) end end - __SS13_signal_handlers[datumWeakRef][signal][callbackWeakRef] = { func = func, callback = callback } - return callback -end - -function SS13.stop_tracking(datum) - SS13.state:call_proc("let_soft_delete", datum) -end - -function SS13.unregister_signal(datum, signal, callback) - local function clear_handler(handler_info) - if not handler_info then - return - end - if not handler_info.callback then - return - end - local handler_callback = handler_info.callback - local callbackWeakRef = dm.global_proc("WEAKREF", handler_callback) - if not SS13.istype(datum, "/datum/weakref") then - handler_callback:call_proc("UnregisterSignal", datum, signal) - else - local actualDatum = datum:call_proc("hard_resolve") - if SS13.is_valid(actualDatum) then - handler_callback:call_proc("UnregisterSignal", actualDatum, signal) - end + local handler_data = __SS13_signal_handlers[datum][signal] + if not handler_data then + handler_data = { callback = nil, functions = {} } + local callback = SS13.new("/datum/callback", SS13.state, "call_function_return_first") + callback:RegisterSignal(datum, signal, "Invoke") + local path = { + "__SS13_signal_handlers", + dm.global_procs.WEAKREF(datum), + signal, + "handler", + } + callback.arguments = { path } + handler_data.callback = callback + handler_data.handler = function(...) + return signal_handler(handler_data, ...) end - SS13.stop_tracking(handler_callback) + __SS13_signal_handlers[datum][signal] = handler_data end + handler_data.functions[func] = true + return true +end - local datumWeakRef = datum - if not SS13.istype(datum, "/datum/weakref") then - datumWeakRef = dm.global_proc("WEAKREF", datum) - end - if not __SS13_signal_handlers[datumWeakRef] then +function SS13.unregister_signal(datum, signal, func) + if not (func == nil or type(func) == "function") then return end - - if signal == "_cleanup" then + if not __SS13_signal_handlers[datum] then return end - - if not __SS13_signal_handlers[datumWeakRef][signal] then + local handler_data = __SS13_signal_handlers[datum][signal] + if not handler_data then return end - - if not callback then - for handler_key, handler_info in __SS13_signal_handlers[datumWeakRef][signal] do - clear_handler(handler_info) + if func == nil then + if signal == "parent_qdeleting" then + handler_data.functions = {} + else + handler_data.callback:UnregisterSignal(datum, signal) + __SS13_signal_handlers[datum][signal] = nil end - __SS13_signal_handlers[datumWeakRef][signal] = nil else - if not SS13.istype(callback, "/datum/callback") then - return + handler_data.functions[func] = nil + if not (#handler_data.functions or (signal == "parent_qdeleting")) then + handler_data.callback:UnregisterSignal(datum, signal) + __SS13_signal_handlers[datum][signal] = nil end - local callbackWeakRef = dm.global_proc("WEAKREF", callback) - clear_handler(__SS13_signal_handlers[datumWeakRef][signal][callbackWeakRef]) - __SS13_signal_handlers[datumWeakRef][signal][callbackWeakRef] = nil - end -end - -function SS13.signal_handler_cleanup(datumWeakRef) - if not __SS13_signal_handlers[datumWeakRef] then - return - end - - for signal, _ in __SS13_signal_handlers[datumWeakRef] do - SS13.unregister_signal(datumWeakRef, signal) end - __SS13_signal_handlers[datumWeakRef] = nil end return SS13 diff --git a/lua/handler_group.lua b/lua/handler_group.lua index 0246d33c7448..050551b85296 100644 --- a/lua/handler_group.lua +++ b/lua/handler_group.lua @@ -1,29 +1,29 @@ -local SS13 = require('SS13') +local SS13 = require("SS13") local HandlerGroup = {} HandlerGroup.__index = HandlerGroup function HandlerGroup.new() return setmetatable({ - registered = {} + registered = {}, }, HandlerGroup) end -- Registers a signal on a datum for this handler group instance. function HandlerGroup:register_signal(datum, signal, func) - local callback = SS13.register_signal(datum, signal, func) - if not callback then + local registered_successfully = SS13.register_signal(datum, signal, func) + if not registered_successfully then return end - table.insert(self.registered, { datum = dm.global_proc("WEAKREF", datum), signal = signal, callback = callback }) + table.insert(self.registered, { datum = datum, signal = signal, func = func }) end -- Clears all the signals that have been registered on this HandlerGroup function HandlerGroup:clear() for _, data in self.registered do - if not data.callback or not data.datum then + if not data.func or not SS13.is_valid(data.datum) then continue end - SS13.unregister_signal(data.datum, data.signal, data.callback) + SS13.unregister_signal(data.datum, data.signal, data.func) end table.clear(self.registered) end @@ -45,5 +45,4 @@ function HandlerGroup.register_once(datum, signal, func) return callback end - return HandlerGroup diff --git a/lua/state.lua b/lua/state.lua index 080ee9f7eb32..cba24d643561 100644 --- a/lua/state.lua +++ b/lua/state.lua @@ -1,7 +1,7 @@ -local SSlua = dm.global_vars:get_var("SSlua") +local SSlua = dm.global_vars.SSlua -for _, state in SSlua:get_var("states") do - if state:get_var("internal_id") == dm.state_id then +for _, state in SSlua.states do + if state.internal_id == _state_id then return { state = state } end end diff --git a/lua/timer.lua b/lua/timer.lua index 8619bbb54a29..e79cc8cdca54 100644 --- a/lua/timer.lua +++ b/lua/timer.lua @@ -2,19 +2,19 @@ local state = require("state") local Timer = {} -local SSlua = dm.global_vars:get_var("SSlua") +local SSlua = dm.global_vars.SSlua __Timer_timers = __Timer_timers or {} __Timer_callbacks = __Timer_callbacks or {} function __add_internal_timer(func, time, loop) local timer = { loop = loop, - executeTime = time + dm.world:get_var("time") + executeTime = time + dm.world.time, } __Timer_callbacks[tostring(func)] = function() timer.executing = false if loop and timer.terminate ~= true then - timer.executeTime = dm.world:get_var("time") + time + timer.executeTime = dm.world.time + time else __stop_internal_timer(tostring(func)) end @@ -37,22 +37,21 @@ function __stop_internal_timer(func) end __Timer_timer_processing = __Timer_timer_processing or false -state.state:set_var("timer_enabled", 1) +state.state.timer_enabled = 1 __Timer_timer_process = function(seconds_per_tick) if __Timer_timer_processing then return 0 end __Timer_timer_processing = true - local time = dm.world:get_var("time") for func, timeData in __Timer_timers do if timeData.executing == true then continue end - if over_exec_usage(0.85) then + if _exec.time / (dm.world.tick_lag * 100) > 0.85 then sleep() end - if time >= timeData.executeTime then - state.state:get_var("functions_to_execute"):add(func) + if dm.world.time >= timeData.executeTime then + list.add(state.state.functions_to_execute, func) timeData.executing = true end end @@ -61,9 +60,9 @@ __Timer_timer_process = function(seconds_per_tick) end function Timer.wait(time) - local next_yield_index = __next_yield_index + local yieldIndex = _exec.next_yield_index __add_internal_timer(function() - SSlua:call_proc("queue_resume", state.state, next_yield_index) + SSlua:queue_resume(state.state, yieldIndex) end, time * 10, false) coroutine.yield() end diff --git a/monkestation/code/__HELPERS/_lists.dm b/monkestation/code/__HELPERS/_lists.dm index 1b997b61f862..9ffbeb78d13e 100644 --- a/monkestation/code/__HELPERS/_lists.dm +++ b/monkestation/code/__HELPERS/_lists.dm @@ -12,3 +12,14 @@ for(var/datum/thingy as anything in things) if(is_type_in_typecache(thingy, typecache)) return TRUE + +/** Scales a range (i.e 1, 100) and picks an item from the list based on your passed value + * i.e in a list with length 4, a 25 in the 1-100 range will give you the 2nd item + * This assumes your ranges start with 1, I am not good at math and can't do linear scaling + */ +/proc/scale_range_pick(min, max, value, list/pick_from) + var/len = length(pick_from) + if(!len) + return null + var/index = min(1 + (value * (len - 1)) / (max - min), len) + return pick_from[index] diff --git a/monkestation/code/datums/components/riding/riding_mob.dm b/monkestation/code/datums/components/riding/riding_mob.dm index 80596de34e8e..7037e54eecb7 100644 --- a/monkestation/code/datums/components/riding/riding_mob.dm +++ b/monkestation/code/datums/components/riding/riding_mob.dm @@ -1,3 +1,10 @@ +// Carps move 4x faster when ridden in space +/datum/component/riding/creature/carp/move_delay() + . = ..() + var/mob/living/living_parent = parent + if(!living_parent.has_gravity()) + . *= 0.25 + /datum/component/riding/creature/human/Initialize(mob/living/riding_mob, force = FALSE, ride_check_flags = NONE, potion_boost = FALSE) . = ..() var/mob/living/carbon/human/human_parent = parent diff --git a/monkestation/code/datums/components/riding/riding_vehicle.dm b/monkestation/code/datums/components/riding/riding_vehicle.dm new file mode 100644 index 000000000000..21188f33e474 --- /dev/null +++ b/monkestation/code/datums/components/riding/riding_vehicle.dm @@ -0,0 +1,3 @@ +/// Returns the move delay of this vehicle. +/datum/component/riding/proc/move_delay() + return vehicle_move_delay diff --git a/monkestation/code/datums/id_trim/jobs.dm b/monkestation/code/datums/id_trim/jobs.dm index d9ef7b302f02..9cd32100f22a 100644 --- a/monkestation/code/datums/id_trim/jobs.dm +++ b/monkestation/code/datums/id_trim/jobs.dm @@ -27,3 +27,21 @@ ACCESS_HOS, ) job = /datum/job/brig_physician + +/datum/id_trim/job/barber + assignment = "Barber" + trim_state = "trim_barber" + department_color = COLOR_SERVICE_LIME + subdepartment_color = COLOR_SERVICE_LIME + sechud_icon_state = SECHUD_BARBER + minimal_access = list( + ACCESS_SERVICE, + ACCESS_THEATRE, + ) + extra_access = list() + template_access = list( + ACCESS_CAPTAIN, + ACCESS_CHANGE_IDS, + ACCESS_HOP, + ) + job = /datum/job/barber diff --git a/monkestation/code/datums/quirks/negative_quirks.dm b/monkestation/code/datums/quirks/negative_quirks.dm index 765d352622c7..1e6c580ea53c 100644 --- a/monkestation/code/datums/quirks/negative_quirks.dm +++ b/monkestation/code/datums/quirks/negative_quirks.dm @@ -128,7 +128,6 @@ /datum/quirk/kleptomaniac name = "Kleptomaniac" desc = "The station's just full of free stuff! Nobody would notice if you just... took it, right?" - mob_trait = TRAIT_KLEPTOMANIAC value = -2 icon = FA_ICON_BAG_SHOPPING diff --git a/monkestation/code/datums/quirks/positive_quirks.dm b/monkestation/code/datums/quirks/positive_quirks.dm index 455b7234d3e9..8a7d3890fa25 100644 --- a/monkestation/code/datums/quirks/positive_quirks.dm +++ b/monkestation/code/datums/quirks/positive_quirks.dm @@ -108,26 +108,6 @@ if(godzuki.dna) godzuki.dna.remove_mutation(/datum/mutation/human/dwarfism) -/datum/quirk/voracious - name = "Voracious" - desc = "Nothing gets between you and your food. You eat faster and can binge on junk food! Being fat suits you just fine. Also allows you to have an additional food buff." - icon = FA_ICON_DRUMSTICK_BITE - value = 6 - mob_trait = TRAIT_VORACIOUS - gain_text = span_notice("You feel HONGRY.") - lose_text = span_danger("You no longer feel HONGRY.") - mail_goodies = list(/obj/effect/spawner/random/food_or_drink/dinner) - - -/datum/quirk/voracious/add() - var/mob/living/carbon/human/holder = quirk_holder - holder.max_food_buffs ++ - -/datum/quirk/voracious/remove() - var/mob/living/carbon/human/holder = quirk_holder - holder.max_food_buffs -- - - /datum/quirk/bright_eyes name = "Bright Eyes" desc = "You've got bright, cybernetic eyes!" diff --git a/monkestation/code/datums/status_effects/food_buffs.dm b/monkestation/code/datums/status_effects/food_buffs.dm index 45f79a5edf3f..44ae8e55d659 100644 --- a/monkestation/code/datums/status_effects/food_buffs.dm +++ b/monkestation/code/datums/status_effects/food_buffs.dm @@ -2,7 +2,10 @@ duration = 10 MINUTES status_type = STATUS_EFFECT_REPLACE show_duration = TRUE - var/quality_modifier = 1 + + +/datum/status_effect/food/proc/apply_quality(quality) + return /datum/status_effect/food/on_apply() if(HAS_TRAIT(owner, TRAIT_GOURMAND)) @@ -19,6 +22,9 @@ alert_type = /atom/movable/screen/alert/status_effect/food/stamina_increase_t1 var/stam_increase = 10 +/datum/status_effect/food/stamina_increase/apply_quality(quality) + stam_increase = stam_increase * (1 + (quality / 50)) + /atom/movable/screen/alert/status_effect/food/stamina_increase_t1 name = "Tiny Stamina Increase" desc = "Increases your stamina by a tiny amount" @@ -87,6 +93,9 @@ var/range = RANGE var/duration_loss = DURATION_LOSS +/datum/status_effect/food/fire_burps/apply_quality(quality) + range = range + round((quality / 40)) + /atom/movable/screen/alert/status_effect/food/fire_burps name = "Firey Burps" desc = "Lets you burp out a line of fire" @@ -191,6 +200,9 @@ alert_type = /atom/movable/screen/alert/status_effect/food/health_increase_t1 var/health_increase = 10 +/datum/status_effect/food/health_increase/apply_quality(quality) + health_increase = health_increase * (1 + (quality / 50)) + /atom/movable/screen/alert/status_effect/food/health_increase_t1 name = "Small Health Increase" desc = "You feel slightly heartier" @@ -258,6 +270,9 @@ alert_type = /atom/movable/screen/alert/status_effect/food/stam_regen_t1 var/regen_increase = 0.5 +/datum/status_effect/food/stam_regen/apply_quality(quality) + regen_increase = regen_increase * (1 + (quality / 20)) + /atom/movable/screen/alert/status_effect/food/stam_regen_t1 name = "Small Stamina Regeneration Increase" desc = "You feel slightly more energetic" diff --git a/monkestation/code/datums/votes/_vote_datum.dm b/monkestation/code/datums/votes/_vote_datum.dm index e19428a64d16..aec83c699900 100644 --- a/monkestation/code/datums/votes/_vote_datum.dm +++ b/monkestation/code/datums/votes/_vote_datum.dm @@ -1,2 +1,6 @@ +/datum/vote + /// The volume of the vote sound, from 0 to 100 or above. + var/vote_sound_volume = 100 + /datum/vote/proc/can_vote(mob/voter) return TRUE diff --git a/monkestation/code/datums/votes/transfer_vote.dm b/monkestation/code/datums/votes/transfer_vote.dm index 5baa6218e1a5..ca4cea326a11 100644 --- a/monkestation/code/datums/votes/transfer_vote.dm +++ b/monkestation/code/datums/votes/transfer_vote.dm @@ -10,6 +10,7 @@ CHOICE_CONTINUE, ) player_startable = FALSE + vote_sound_volume = 150 // Make it loud so people don't miss it. /datum/vote/shuttle_call/reset() . = ..() @@ -29,6 +30,12 @@ /datum/vote/shuttle_call/initiate_vote(initiator, duration) . = ..() SSautotransfer.doing_transfer_vote = TRUE + priority_announce( + text = "The shift has eclipsed its standard duration. If the crew wish to leave, a scheduled shuttle will be sent to the station from Central Command.", + title = "Crew Transfer Vote", + has_important_message = TRUE, + color_override = "green", + ) /datum/vote/shuttle_call/finalize_vote(winning_option) switch(winning_option) @@ -46,5 +53,18 @@ if(isobserver(voter) || voter.stat == DEAD || !(voter.ckey in GLOB.joined_player_list)) // only living crew gets to vote return FALSE +/datum/vote/shuttle_call/tiebreaker(list/winners) + return CHOICE_CONTINUE // Generally, this is less likely to make people mad. It still can, don't get me wrong, but it's safer. + +/* +/datum/vote/shuttle_call/get_vote_result(list/non_voters) + for(var/ckey in non_voters) + var/client/client = non_voters[ckey] + if(client?.mob && can_vote(client.mob)) + choices[CHOICE_CONTINUE]++ // Everyone defaults to continue, since they may be in the middle of something when the vote starts. + if(choices[CHOICE_CALL] + choices[CHOICE_CONTINUE] <= 0) // No-one is alive. Call it. + return CHOICE_CALL + return ..() +*/ #undef CHOICE_CONTINUE #undef CHOICE_CALL diff --git a/monkestation/code/game/objects/items.dm b/monkestation/code/game/objects/items.dm index 3203d5df3dea..165b8c3fcfb0 100644 --- a/monkestation/code/game/objects/items.dm +++ b/monkestation/code/game/objects/items.dm @@ -1,3 +1,11 @@ +/obj/item + /// If specified, the pickup sound will use this mixer channel. + var/pickup_mixer_channel = CHANNEL_SOUND_EFFECTS + /// If specified, the drop sound will use this mixer channel. + var/drop_mixer_channel = CHANNEL_SOUND_EFFECTS + /// If specified, the equip sound will use this mixer channel. + var/equip_mixer_channel = CHANNEL_SOUND_EFFECTS + /obj/item/proc/adjust_weight_class(amt, min_weight = WEIGHT_CLASS_TINY, max_weight = WEIGHT_CLASS_GIGANTIC) if(!amt || !isnum(amt)) stack_trace("Attempted to adjust weight class by an invalid value ([amt])") diff --git a/monkestation/code/game/objects/items/admin_plushies.dm b/monkestation/code/game/objects/items/admin_plushies.dm index 61155eeb5b7d..66282ab00300 100644 --- a/monkestation/code/game/objects/items/admin_plushies.dm +++ b/monkestation/code/game/objects/items/admin_plushies.dm @@ -20,10 +20,10 @@ name = "ben mothman" desc = "HAH this guy is short! Laugh at him.. this is an order!" icon_state = "ben" -/datum/loadout_item/toys/ben_mothman +/datum/loadout_item/plushies/ben_mothman name = "Ben Mothman plush" item_path = /obj/item/toy/plush/admin/ben_mothman -/datum/store_item/toys/ben_mothman +/datum/store_item/plushies/ben_mothman name = "Ben Mothman Plush" item_path = /obj/item/toy/plush/admin/ben_mothman item_cost = 7500 @@ -32,10 +32,10 @@ name = "abraxis" desc = "This feller is always up to something.. he's even got that huge company I forgot the name of..." icon_state = "abraxis" -/datum/loadout_item/toys/abraxis +/datum/loadout_item/plushies/abraxis name = "Abraxis Plush" item_path = /obj/item/toy/plush/admin/abraxis -/datum/store_item/toys/abraxis +/datum/store_item/plushies/abraxis name = "Abraxis Plush" item_path = /obj/item/toy/plush/admin/abraxis item_cost = 7500 @@ -44,10 +44,10 @@ name = "brad" desc = "Woah.. they're BLUE, and they've also got a cane! How fancy dancy." icon_state = "brad" -/datum/loadout_item/toys/brad +/datum/loadout_item/plushies/brad name = "Brad Plush" item_path = /obj/item/toy/plush/admin/brad -/datum/store_item/toys/brad +/datum/store_item/plushies/brad name = "Brad Plush" item_path = /obj/item/toy/plush/admin/brad item_cost = 7500 @@ -56,10 +56,10 @@ name = "andrea" desc = "Best combat medic around.. if your legs are blown off and you see this fellah comming around- you're lucky." icon_state = "andrea" -/datum/loadout_item/toys/andrea +/datum/loadout_item/plushies/andrea name = "Andrea Plush" item_path = /obj/item/toy/plush/admin/andrea -/datum/store_item/toys/andrea +/datum/store_item/plushies/andrea name = "Andrea Plush" item_path = /obj/item/toy/plush/admin/andrea item_cost = 7500 @@ -68,10 +68,10 @@ name = "pippi" desc = "..." icon_state = "pippi" -/datum/loadout_item/toys/pippi +/datum/loadout_item/plushies/pippi name = "Pippi Plush" item_path = /obj/item/toy/plush/admin/pippi -/datum/store_item/toys/pippi +/datum/store_item/plushies/pippi name = "Pippi Plush" item_path = /obj/item/toy/plush/admin/pippi item_cost = 7500 @@ -80,10 +80,10 @@ name = "syndi-kate" desc = "''GLORY TO THE SYNDICATE!''" icon_state = "syndi_kate" -/datum/loadout_item/toys/syndi_kate +/datum/loadout_item/plushies/syndi_kate name = "Syndi-Kate Plush" item_path = /obj/item/toy/plush/admin/syndi_kate -/datum/store_item/toys/syndi_kate +/datum/store_item/plushies/syndi_kate name = "Syndi-Kate Plush" item_path = /obj/item/toy/plush/admin/syndi_kate item_cost = 7500 @@ -92,10 +92,10 @@ name = "jace" desc = "It's Jace!" icon_state = "jace" -/datum/loadout_item/toys/jace +/datum/loadout_item/plushies/jace name = "Jace Plush" item_path = /obj/item/toy/plush/admin/jace -/datum/store_item/toys/jace +/datum/store_item/plushies/jace name = "Jace Plush" item_path = /obj/item/toy/plush/admin/jace item_cost = 7500 @@ -104,10 +104,10 @@ name = "lavender" desc = "It's Lavender!" icon_state = "lavender" -/datum/loadout_item/toys/lavender +/datum/loadout_item/plushies/lavender name = "Lavender Plush" item_path = /obj/item/toy/plush/admin/lavender -/datum/store_item/toys/lavender +/datum/store_item/plushies/lavender name = "Lavender Plush" item_path = /obj/item/toy/plush/admin/lavender item_cost = 7500 @@ -116,10 +116,10 @@ name = "waffles" desc = "It's Waffles! What a wierdo!" icon_state = "waffles" -/datum/loadout_item/toys/waffles +/datum/loadout_item/plushies/waffles name = "Waffles Plush" item_path = /obj/item/toy/plush/admin/waffles -/datum/store_item/toys/waffles +/datum/store_item/plushies/waffles name = "Waffles Plush" item_path = /obj/item/toy/plush/admin/waffles item_cost = 7500 @@ -128,10 +128,10 @@ name = "vicky" desc = "It's Vicky!" icon_state = "vicky" -/datum/loadout_item/toys/vicky +/datum/loadout_item/plushies/vicky name = "Vicky Plush" item_path = /obj/item/toy/plush/admin/vicky -/datum/store_item/toys/vicky +/datum/store_item/plushies/vicky name = "Vicky Plush" item_path = /obj/item/toy/plush/admin/vicky item_cost = 7500 @@ -140,10 +140,10 @@ name = "richard deckard" desc = "It's Richard Deckard!" icon_state = "richard_deckard" -/datum/loadout_item/toys/richard_deckard +/datum/loadout_item/plushies/richard_deckard name = "Richard Deckard Plush" item_path = /obj/item/toy/plush/admin/richard_deckard -/datum/store_item/toys/richard_deckard +/datum/store_item/plushies/richard_deckard name = "Richard Deckard Plush" item_path = /obj/item/toy/plush/admin/richard_deckard item_cost = 7500 @@ -152,10 +152,10 @@ name = "marisa" desc = "It's Marisa! THE GOOBER- LOOK AT HER!" icon_state = "marisa" -/datum/loadout_item/toys/marisa +/datum/loadout_item/plushies/marisa name = "Marisa Plush" item_path = /obj/item/toy/plush/admin/marisa -/datum/store_item/toys/marisa +/datum/store_item/plushies/marisa name = "Marisa Plush" item_path = /obj/item/toy/plush/admin/marisa item_cost = 7500 @@ -164,10 +164,10 @@ name = "raziel" desc = "It's Raziel! He smells of bubblegum, and looks like he'll commit arson if you dont watch em." icon_state = "raziel" -/datum/loadout_item/toys/raziel +/datum/loadout_item/plushies/raziel name = "Raziel Plush" item_path = /obj/item/toy/plush/admin/raziel -/datum/store_item/toys/raziel +/datum/store_item/plushies/raziel name = "Raziel Plush" item_path = /obj/item/toy/plush/admin/raziel item_cost = 7500 @@ -176,10 +176,10 @@ name = "gabbie" desc = "It's Gabbie!" icon_state = "gabbie" -/datum/loadout_item/toys/gabbie +/datum/loadout_item/plushies/gabbie name = "Gabbie Plush" item_path = /obj/item/toy/plush/admin/gabbie -/datum/store_item/toys/gabbie +/datum/store_item/plushies/gabbie name = "Gabbie Plush" item_path = /obj/item/toy/plush/admin/gabbie item_cost = 7500 @@ -188,10 +188,10 @@ name = "amun set hep" desc = "CURSE OF THE SANDS BE UPON YOU!!!" icon_state = "amunsethep" -/datum/loadout_item/toys/amunsethep +/datum/loadout_item/plushies/amunsethep name = "Amun Set Hep Plush" item_path = /obj/item/toy/plush/admin/amunsethep -/datum/store_item/toys/gabbie +/datum/store_item/plushies/gabbie name = "Amun Set Hep Plush" item_path = /obj/item/toy/plush/admin/amunsethep item_cost = 7500 @@ -200,10 +200,10 @@ name = "tends-the-fire" desc = "It's Tends-The-Fire!, what a lovable little lizard!" icon_state = "tendsthefire" -/datum/loadout_item/toys/tendsthefire +/datum/loadout_item/plushies/tendsthefire name = "Tends-The-Fire Plush" item_path = /obj/item/toy/plush/admin/tendsthefire -/datum/store_item/toys/tendsthefire +/datum/store_item/plushies/tendsthefire name = "Tends-The-Fire Plush" item_path = /obj/item/toy/plush/admin/tendsthefire item_cost = 7500 @@ -212,10 +212,10 @@ name = "hailey spire" desc = "It's Hailey Spire! They've got a BIG WRENCH- WATCH OUT!!!" icon_state = "haileyspire" -/datum/loadout_item/toys/haileyspire +/datum/loadout_item/plushies/haileyspire name = "Hailey Spire Plush" item_path = /obj/item/toy/plush/admin/haileyspire -/datum/store_item/toys/haileyspire +/datum/store_item/plushies/haileyspire name = "Hailey Spire Plush" item_path = /obj/item/toy/plush/admin/haileyspire item_cost = 7500 @@ -224,10 +224,10 @@ name = "hailey spire" desc = "It's Hailey Spire! They've got a BIG WRENCH- WATCH OUT!!!" icon_state = "haileyspire" -/datum/loadout_item/toys/haileyspire +/datum/loadout_item/plushies/haileyspire name = "Hailey Spire Plush" item_path = /obj/item/toy/plush/admin/haileyspire -/datum/store_item/toys/haileyspire +/datum/store_item/plushies/haileyspire name = "Hailey Spire Plush" item_path = /obj/item/toy/plush/admin/haileyspire item_cost = 7500 @@ -236,10 +236,10 @@ name = "sydney sahrin" desc = "It's Sydney Sahrin! Shortest plantmin!" icon_state = "sydneysahrin" -/datum/loadout_item/toys/sydneysahrin +/datum/loadout_item/plushies/sydneysahrin name = "Sydney Sahrin Plush" item_path = /obj/item/toy/plush/admin/sydneysahrin -/datum/store_item/toys/sydneysahrin +/datum/store_item/plushies/sydneysahrin name = "Sydney Sahrin Plush" item_path = /obj/item/toy/plush/admin/sydneysahrin item_cost = 7500 @@ -248,10 +248,10 @@ name = "veth" desc = "It's Veth! Suprisingly not upside down!" icon_state = "veth" -/datum/loadout_item/toys/veth +/datum/loadout_item/plushies/veth name = "Veth Plush" item_path = /obj/item/toy/plush/admin/veth -/datum/store_item/toys/veth +/datum/store_item/plushies/veth name = "Veth Plush" item_path = /obj/item/toy/plush/admin/veth item_cost = 7500 @@ -260,10 +260,10 @@ name = "cassiel pip" desc = "Smelly Rat." icon_state = "cassielpip" -/datum/loadout_item/toys/cassielpip +/datum/loadout_item/plushies/cassielpip name = "Cassiel Pip Plush" item_path = /obj/item/toy/plush/admin/cassielpip -/datum/store_item/toys/cassielpip +/datum/store_item/plushies/cassielpip name = "Cassiel Pip Plush" item_path = /obj/item/toy/plush/admin/cassielpip item_cost = 7500 @@ -272,10 +272,10 @@ name = "fortune" desc = "It's Fortune- the Felinid!" icon_state = "fortune" -/datum/loadout_item/toys/fortune +/datum/loadout_item/plushies/fortune name = "Fortune Plush" item_path = /obj/item/toy/plush/admin/fortune -/datum/store_item/toys/fortune +/datum/store_item/plushies/fortune name = "Fortune Plush" item_path = /obj/item/toy/plush/admin/fortune item_cost = 7500 diff --git a/monkestation/code/game/objects/items/effects/amogus.dm b/monkestation/code/game/objects/items/effects/amogus.dm index 06ded844bc40..9359f9170ff4 100644 --- a/monkestation/code/game/objects/items/effects/amogus.dm +++ b/monkestation/code/game/objects/items/effects/amogus.dm @@ -3,7 +3,7 @@ icon_state = "nugget" /obj/item/effect_granter/amogus/grant_effect(mob/living/carbon/granter) - if(issimian(granter)) + if(ismonkey(granter)) to_chat(granter, span_notice("Sorry but simians are to small to be turned into amogus you have not been charged.")) return FALSE if(isgoblin(granter)) diff --git a/monkestation/code/game/objects/items/guns/long_guns.dm b/monkestation/code/game/objects/items/guns/long_guns.dm new file mode 100644 index 000000000000..0581aa8b078a --- /dev/null +++ b/monkestation/code/game/objects/items/guns/long_guns.dm @@ -0,0 +1,85 @@ +// Lever gun +/obj/item/gun/ballistic/shotgun/leveraction + name = "brush gun" + desc = "While lever-actions have been horribly out of date for hundreds of years now, \ + putting a nicely sized hole in a man-sized target with a .45 Long round has stayed relatively timeless." + icon_state = "brushgun" + icon = 'monkestation/icons/obj/guns/guns.dmi' + bolt_wording = "Lever" + cartridge_wording = "bullet" + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/shot/levergun + projectile_wound_bonus = 10 + projectile_damage_multiplier = 1.1 + w_class = WEIGHT_CLASS_BULKY + force = 10 + flags_1 = CONDUCT_1 + semi_auto = FALSE + internal_magazine = TRUE + casing_ejector = FALSE + weapon_weight = WEAPON_HEAVY + pb_knockback = 0 + +// Revolver +/obj/item/gun/ballistic/revolver/r45l + name = "\improper .45 Long Revolver" + desc = "A cheap .45 Long Revolver. Pray the timing keeps." + icon_state = "45revolver" + icon = 'monkestation/icons/obj/guns/guns.dmi' + accepted_magazine_type = /obj/item/ammo_box/magazine/internal/cylinder/rev45l + obj_flags = UNIQUE_RENAME + + unique_reskin = list("Default" = "45revolver", + "Cowboy" = "357colt", + "Lucky" = "lucky" //Well do ya? + ) + +// .45 (Lever Rifle and Long Revolver) + +/obj/projectile/bullet/g45l/rubber + name = ".45 Long rubber bullet" + damage = 5 + stamina = 35 + weak_against_armour = TRUE + sharpness = NONE + embedding = null + +/obj/projectile/bullet/g45l + name = ".45 Long bullet" + damage = 35 + wound_bonus = -5 + sharpness = SHARP_EDGED + embedding = list(embed_chance=25, fall_chance=2, jostle_chance=2, ignore_throwspeed_threshold=TRUE, pain_stam_pct=0.4, pain_mult=3, jostle_pain_mult=5, rip_time=1 SECONDS) + +// .45 (Lever Rifle and Long Revolver) + +/obj/item/ammo_casing/g45l + name = ".45 Long bullet casing " + desc = "A .45 Long bullet casing." + caliber = CALIBER_45L + projectile_type = /obj/projectile/bullet/g45l + +/obj/item/ammo_casing/g45l/rubber + name = ".45 Long rubber bullet casing" + desc = "A .45 Long rubber bullet casing." + caliber = CALIBER_45L + projectile_type = /obj/projectile/bullet/g45l/rubber + +/obj/item/ammo_box/g45l + name = "ammo box (.45 Long Lethal)" + desc = "This box contains .45 Long lethal cartridges." + ammo_type = /obj/item/ammo_casing/g45l + icon_state = "45box" + max_ammo = 24 + +/obj/item/ammo_box/g45l/rubber + name = "ammo box (.45 Long Rubber)" + desc = "Brought to you at great expense,this box contains .45 Long rubber cartridges." + icon_state = "45box" + ammo_type = /obj/item/ammo_casing/g45l/rubber + max_ammo = 24 + +/obj/item/ammo_box/magazine/internal/cylinder/rev45l + name = ".45 Long revolver cylinder" + ammo_type = /obj/item/ammo_casing/g45l + caliber = CALIBER_45L + max_ammo = 6 diff --git a/monkestation/code/game/objects/items/plasma_license.dm b/monkestation/code/game/objects/items/plasma_license.dm new file mode 100644 index 000000000000..179ad23bfd6c --- /dev/null +++ b/monkestation/code/game/objects/items/plasma_license.dm @@ -0,0 +1,40 @@ +/obj/item/card/plasma_license + name = "License to Plasmaflood" + desc = "A charred contract letting the holder plasmaflood the halls. Not offically recognized by Nanotrasen." + icon = 'monkestation/icons/obj/items/plasmalicense.dmi' + icon_state = "plasmalicense" + resistance_flags = FIRE_PROOF + //For the person who signers the contract + var/datum/mind/owner + +/obj/item/card/plasma_license/attack_self(mob/user) + if(Adjacent(user)) + user.visible_message(span_notice("[user] shows you: [icon2html(src, viewers(user))] [src.name]."), span_notice("You show \the [src.name].")) + add_fingerprint(user) + +/obj/item/card/plasma_license/Initialize(mapload) + . = ..() + message_admins("A plasmaflood license has been created.") + +/obj/item/card/plasma_license/examine(mob/user) + . = ..() + if(owner) + . += "There is a small signature on the bottom of the contract: \"[owner]\"." + else + . += "It appears to be unsigned." + +/obj/item/card/plasma_license/attack_self(mob/user) + if(!owner) + if(!user.mind) + return + to_chat(user, span_notice("You sign your name at the bottom of the [src].")) + owner = user.mind + message_admins("A License to Plasmaflood has been signed by [owner].") + investigate_log("A License to Plasmaflood by [key_name(user)]", INVESTIGATE_ATMOS) + return + + if(user.mind != owner) + to_chat(user, span_warning("[src] has already been signed!")) + return + + return ..() diff --git a/monkestation/code/game/objects/items/storage/toolbox.dm b/monkestation/code/game/objects/items/storage/toolbox.dm new file mode 100644 index 000000000000..98eb3f2d17dc --- /dev/null +++ b/monkestation/code/game/objects/items/storage/toolbox.dm @@ -0,0 +1,16 @@ +/obj/item/storage/toolbox/brig_physician + name = "Brig Phyiscan's Toolbox" + desc = "Capable of robusting and repairing any troublesome robots after the fact." + icon_state = "toolbox-brigphys" + inhand_icon_state = "toolbox-brigphys" + lefthand_file = 'monkestation/icons/mob/inhands/equipment/brigphys_lefthand.dmi' + righthand_file = 'monkestation/icons/mob/inhands/equipment/brigphys_righthand.dmi' + +/obj/item/storage/toolbox/brig_physician/PopulateContents() + new /obj/item/screwdriver(src) + new /obj/item/wrench(src) + new /obj/item/weldingtool(src) + new /obj/item/crowbar(src) + new /obj/item/analyzer(src) + new /obj/item/wirecutters(src) + new /obj/item/multitool(src) diff --git a/monkestation/code/game/objects/items/translation_hat.dm b/monkestation/code/game/objects/items/translation_hat.dm new file mode 100644 index 000000000000..c29ce4dd3524 --- /dev/null +++ b/monkestation/code/game/objects/items/translation_hat.dm @@ -0,0 +1,58 @@ +/obj/item/clothing/mask/translator + name = "MonkeTech AutoTranslator" + desc = "A small device that will translate speech." + icon = 'monkestation/icons/obj/clothing/masks.dmi' + icon_state = "translator" + worn_icon = 'monkestation/icons/mob/clothing/mask.dmi' + worn_icon_state = "translator" + slot_flags = ITEM_SLOT_MASK | ITEM_SLOT_NECK + modifies_speech = TRUE + var/current_language = /datum/language/common + +/obj/item/clothing/mask/translator/proc/generate_language_names(mob/user) + var/static/list/language_name_list + if(!language_name_list) + language_name_list = list() + for(var/language in user.mind.language_holder.understood_languages) + if(language in user.mind.language_holder.blocked_languages) + continue + var/atom/A = language + language_name_list[initial(A.name)] = A + return language_name_list + +/obj/item/clothing/mask/translator/attack_self(mob/user) + . = ..() + if(ishuman(user)) + var/list/display_names = generate_language_names(user) + if(!display_names.len > 1) + return + var/choice = input(user,"Please select a language","Select a language:") as null|anything in sort_list(display_names) + if(!choice) + return + current_language = display_names[choice] + +/obj/item/clothing/mask/translator/equipped(mob/M, slot) + . = ..() + if ((slot == ITEM_SLOT_MASK || slot == ITEM_SLOT_NECK) && modifies_speech) + RegisterSignal(M, COMSIG_MOB_SAY, PROC_REF(handle_speech)) + else + UnregisterSignal(M, COMSIG_MOB_SAY) + +/obj/item/clothing/mask/translator/handle_speech(datum/source, list/speech_args) + . = ..() + if(!(clothing_flags * (VOICEBOX_DISABLED))) + if(obj_flags & EMAGGED) + speech_args[SPEECH_LANGUAGE] = pick(GLOB.all_languages) + else + speech_args[SPEECH_LANGUAGE] = current_language + +/obj/item/clothing/mask/translator/examine(mob/user) + . = ..() + . += span_notice("Click while in hand to select output language.") + +/obj/item/clothing/mask/translator/emag_act() + if(obj_flags & EMAGGED) + return + obj_flags |= EMAGGED + icon_state = "translator_emag" + playsound(src, "sparks", 100, 1) diff --git a/monkestation/code/game/objects/structures/crates_lockers/closets/secure/brig_physician.dm b/monkestation/code/game/objects/structures/crates_lockers/closets/secure/brig_physician.dm index 7c513a1e155e..63854eead4a4 100644 --- a/monkestation/code/game/objects/structures/crates_lockers/closets/secure/brig_physician.dm +++ b/monkestation/code/game/objects/structures/crates_lockers/closets/secure/brig_physician.dm @@ -15,3 +15,4 @@ new /obj/item/clothing/glasses/hud/health(src) new /obj/item/healthanalyzer(src) new /obj/item/defibrillator/loaded(src) + new /obj/item/storage/toolbox/brig_physician (src) diff --git a/monkestation/code/game/say.dm b/monkestation/code/game/say.dm new file mode 100644 index 000000000000..a121ab589420 --- /dev/null +++ b/monkestation/code/game/say.dm @@ -0,0 +1,14 @@ +/mob/Hear(message, atom/movable/speaker, message_language, raw_message, radio_freq, list/spans, list/message_mods = list(), message_range) + . = ..() + if(client && (radio_freq && (radio_freq == FREQ_COMMON || radio_freq < MIN_FREQ))) + var/atom/movable/virtualspeaker/vspeaker = speaker + if(isAI(vspeaker.source)) + playsound_local( + get_turf(src), + 'goon/sounds/radio_ai.ogg', + vol = 170, + vary = TRUE, + pressure_affected = FALSE, + use_reverb = FALSE, + mixer_channel = CHANNEL_MOB_SOUNDS + ) diff --git a/monkestation/code/modules/NTSL/code/coding_language/implementations/telecomms_translator.dm b/monkestation/code/modules/NTSL/code/coding_language/implementations/telecomms_translator.dm index 48b5587eaae2..a81f37a97751 100644 --- a/monkestation/code/modules/NTSL/code/coding_language/implementations/telecomms_translator.dm +++ b/monkestation/code/modules/NTSL/code/coding_language/implementations/telecomms_translator.dm @@ -424,8 +424,7 @@ GLOBAL_LIST_INIT(allowed_translations, list( var/obj/item/radio/server/hradio = S.server_radio if(!hradio) - throw EXCEPTION("tcombroadcast(): signal has no radio") - return + CRASH("tcombroadcast(): signal has no radio") //First lets do some checks for bad input if(isnum(message)) // Allows for setting $content to a number value message = "[message]" diff --git a/monkestation/code/modules/NTSL/code/readme.md b/monkestation/code/modules/NTSL/code/readme.md index 8d22e49c8716..f72a717d3835 100644 --- a/monkestation/code/modules/NTSL/code/readme.md +++ b/monkestation/code/modules/NTSL/code/readme.md @@ -28,10 +28,17 @@ for example, adding in their job after their name - monkestation\code\modules\jobs\job_types\signal_technician.dm - monkestation\code\modules\clothing\under\jobs\engineering.dm +- monkestation\code\modules\clothing\suits\coats.dm - monkestation\code\modules\clothing\spacesuits\plasmamen.dm - monkestation\icons\obj\clothing\uniforms.dmi - monkestation\icons\mob\clothing\uniform.dmi + +- monkestation\icons\obj\clothing\suits.dmi +- monkestation\icons\mob\clothing\suit.dmi +- monkestation\icons\obj\clothing\hats.dmi +- monkestation\icons\mob\clothing\head.dmi + - monkestation\icons\obj\clothing\plasmaman.dmi - monkestation\icons\mob\clothing\plasmaman.dmi - monkestation\icons\obj\clothing\plasmaman_head.dmi diff --git a/monkestation/code/modules/NTrep/NTrep.dm b/monkestation/code/modules/NTrep/NTrep.dm index c7861efe3974..bbf3f5c8e4c4 100644 --- a/monkestation/code/modules/NTrep/NTrep.dm +++ b/monkestation/code/modules/NTrep/NTrep.dm @@ -102,8 +102,7 @@ ACCESS_COMMAND, ACCESS_MAINT_TUNNELS, ACCESS_WEAPONS, - ACCESS_CENT_GENERAL, - ACCESS_CENT_LIVING, + ACCESS_NT_REPRESENTATVE, ) extra_access = list( ACCESS_BAR, diff --git a/monkestation/code/modules/NTrep/NTrep_locker.dm b/monkestation/code/modules/NTrep/NTrep_locker.dm index c6eef48a86a7..187ec3b2d40b 100644 --- a/monkestation/code/modules/NTrep/NTrep_locker.dm +++ b/monkestation/code/modules/NTrep/NTrep_locker.dm @@ -1,6 +1,6 @@ /obj/structure/closet/secure_closet/nanotrasen_representative name = "Nanotrasen representative's locker" - req_access = list(ACCESS_CENT_GENERAL) + req_access = list(ACCESS_NT_REPRESENTATVE) icon_state = "cc" icon = 'monkestation/code/modules/blueshift/icons/obj/closet.dmi' diff --git a/monkestation/code/modules/admin/antag_tokens.dm b/monkestation/code/modules/admin/antag_tokens.dm index 67754d61f5a4..79122178194f 100644 --- a/monkestation/code/modules/admin/antag_tokens.dm +++ b/monkestation/code/modules/admin/antag_tokens.dm @@ -4,11 +4,10 @@ set name = "Adjust Antag Tokens" set desc = "You can modifiy a targets metacoin balance by adding or subtracting." - var/mob/chosen_player = tgui_input_list(src, "Choose a Player", "Player List", GLOB.player_list) - if(!chosen_player) + var/client/chosen_client = tgui_input_list(src, "Choose a Player", "Player List", GLOB.clients) + if(!chosen_client) return - var/client/chosen_client = chosen_player.client var/adjustment_amount = tgui_input_number(src, "How much should we adjust this users antag tokens by?", "Input Value", TRUE, 10, -10) if(!adjustment_amount || !chosen_client) return diff --git a/monkestation/code/modules/admin/event_tokens.dm b/monkestation/code/modules/admin/event_tokens.dm index 8e89c4960cbd..f61f7b559dc2 100644 --- a/monkestation/code/modules/admin/event_tokens.dm +++ b/monkestation/code/modules/admin/event_tokens.dm @@ -4,11 +4,10 @@ set name = "Adjust Event Tokens" set desc = "Adjust how many event tokens someone has." - var/mob/chosen_player = tgui_input_list(src, "Choose a Player", "Player List", GLOB.player_list) - if(!chosen_player) + var/client/chosen_client = tgui_input_list(src, "Choose a Player", "Player List", GLOB.clients) + if(!chosen_client) return - var/client/chosen_client = chosen_player.client var/adjustment_amount = tgui_input_number(src, "How much should we adjust this users tokens by?", "Input Value", TRUE) if(!adjustment_amount || !chosen_client) return diff --git a/monkestation/code/modules/admin/smites/microwaved.dm b/monkestation/code/modules/admin/smites/microwaved.dm new file mode 100644 index 000000000000..e2de37254499 --- /dev/null +++ b/monkestation/code/modules/admin/smites/microwaved.dm @@ -0,0 +1,20 @@ +/// Gives the target critically bad burns +/datum/smite/microwaved + name = "Microwaved" + +/datum/smite/microwaved/effect(client/user, mob/living/target) + . = ..() + + if (!iscarbon(target)) + to_chat(user, span_warning("This must be used on a carbon mob."), confidential = TRUE) + return + var/mob/living/carbon/carbon_target = target + for(var/obj/item/bodypart/limb as anything in carbon_target.bodyparts) + var/severity = pick(list( + WOUND_SEVERITY_MODERATE, + WOUND_SEVERITY_SEVERE, + WOUND_SEVERITY_SEVERE, + WOUND_SEVERITY_CRITICAL, + WOUND_SEVERITY_CRITICAL, + )) + carbon_target.cause_wound_of_type_and_severity(WOUND_BURN, limb, severity, smited = TRUE) diff --git a/monkestation/code/modules/admin/smites/rip_and_tear.dm b/monkestation/code/modules/admin/smites/rip_and_tear.dm index a71b9f821470..4a52c4c5cf22 100644 --- a/monkestation/code/modules/admin/smites/rip_and_tear.dm +++ b/monkestation/code/modules/admin/smites/rip_and_tear.dm @@ -1,17 +1,17 @@ /datum/smite/rip_and_tear - name = "rip and tear those tendons" + name = "Rip and tear those tendons" /datum/smite/rip_and_tear/effect(client/user, mob/living/target) . = ..() + if (!iscarbon(target)) to_chat(user, span_warning("This must be used on a carbon mob."), confidential = TRUE) return var/mob/living/carbon/carbon_target = target - for(var/_limb in carbon_target.bodyparts) - var/obj/item/bodypart/limb = _limb // fine to use this raw, its a meme smite - var/type_wound = pick(list(/datum/wound/muscle/severe, /datum/wound/muscle/moderate)) - limb.force_wound_upwards(type_wound, smited = TRUE) - type_wound = pick(list( /datum/wound/muscle/severe, /datum/wound/muscle/moderate)) - limb.force_wound_upwards(type_wound, smited = TRUE) - type_wound = pick(list(/datum/wound/muscle/moderate, /datum/wound/muscle/severe)) - limb.force_wound_upwards(type_wound, smited = TRUE) + for(var/obj/item/bodypart/limb as anything in carbon_target.bodyparts) + var/severity = pick(list( + WOUND_SEVERITY_MODERATE, + WOUND_SEVERITY_SEVERE, + WOUND_SEVERITY_SEVERE, + )) + carbon_target.cause_wound_of_type_and_severity(WOUND_MUSCLE, limb, severity, smited = TRUE) diff --git a/monkestation/code/modules/admin/smites/small_bit_of_everything.dm b/monkestation/code/modules/admin/smites/small_bit_of_everything.dm index 59db6926f7ab..f5ed6fb7d8c9 100644 --- a/monkestation/code/modules/admin/smites/small_bit_of_everything.dm +++ b/monkestation/code/modules/admin/smites/small_bit_of_everything.dm @@ -1,6 +1,6 @@ -/// Gives the target critically bad wounds +/// Gives the target a mix of pretty bad wounds /datum/smite/small_bit_of_everything - name = "light wound mix bag" + name = "Light wound mix bag" /datum/smite/small_bit_of_everything/effect(client/user, mob/living/target) . = ..() @@ -9,12 +9,17 @@ to_chat(user, span_warning("This must be used on a carbon mob."), confidential = TRUE) return var/mob/living/carbon/carbon_target = target - for(var/_limb in carbon_target.bodyparts) - var/obj/item/bodypart/limb = _limb // fine to use this raw, its a meme smite - var/type_wound = pick(list(/datum/wound/burn/flesh/severe/cursed_brand,/datum/wound/burn/flesh/moderate)) - limb.force_wound_upwards(type_wound, smited = TRUE) - type_wound = pick(list(/datum/wound/blunt/bone/moderate, /datum/wound/pierce/bleed/moderate, /datum/wound/slash/flesh/moderate/many_cuts)) - limb.force_wound_upwards(type_wound, smited = TRUE) - type_wound = pick(list(/datum/wound/muscle/moderate, /datum/wound/muscle/severe)) - limb.force_wound_upwards(type_wound, smited = TRUE) - + for(var/obj/item/bodypart/limb as anything in carbon_target.bodyparts) + var/severity = pick(list( + WOUND_SEVERITY_MODERATE, + WOUND_SEVERITY_MODERATE, + WOUND_SEVERITY_SEVERE, + )) + var/wound_type = pick(list( + "[WOUND_BLUNT]", + "[WOUND_SLASH]", + "[WOUND_PIERCE]", + "[WOUND_BURN]", + "[WOUND_MUSCLE]", + )) + carbon_target.cause_wound_of_type_and_severity(wound_type, limb, severity, smited = TRUE) diff --git a/monkestation/code/modules/admin/smites/swisscheese.dm b/monkestation/code/modules/admin/smites/swisscheese.dm index e14e922234d2..3245e24c14ae 100644 --- a/monkestation/code/modules/admin/smites/swisscheese.dm +++ b/monkestation/code/modules/admin/smites/swisscheese.dm @@ -1,6 +1,6 @@ /// Gives the target critically bad wounds /datum/smite/swisscheese - name = "swisscheese without the cheese" + name = "Swisscheese without the cheese" /datum/smite/swisscheese/effect(client/user, mob/living/target) . = ..() @@ -9,11 +9,12 @@ to_chat(user, span_warning("This must be used on a carbon mob."), confidential = TRUE) return var/mob/living/carbon/carbon_target = target - for(var/_limb in carbon_target.bodyparts) - var/obj/item/bodypart/limb = _limb // fine to use this raw, its a meme smite - var/type_wound = pick(list(/datum/wound/pierce/bleed/severe, /datum/wound/pierce/bleed/critical)) - limb.force_wound_upwards(type_wound, smited = TRUE) - type_wound = pick(list(/datum/wound/pierce/bleed/moderate, /datum/wound/pierce/bleed/severe, /datum/wound/pierce/bleed/moderate)) - limb.force_wound_upwards(type_wound, smited = TRUE) - type_wound = pick(list(/datum/wound/pierce/bleed/moderate, /datum/wound/pierce/bleed/severe)) - limb.force_wound_upwards(type_wound, smited = TRUE) + for(var/obj/item/bodypart/limb as anything in carbon_target.bodyparts) + var/severity = pick(list( + WOUND_SEVERITY_MODERATE, + WOUND_SEVERITY_SEVERE, + WOUND_SEVERITY_SEVERE, + WOUND_SEVERITY_CRITICAL, + WOUND_SEVERITY_CRITICAL, + )) + carbon_target.cause_wound_of_type_and_severity(WOUND_PIERCE, limb, severity, smited = TRUE) diff --git a/monkestation/code/modules/admin/verbs/selectequipment.dm b/monkestation/code/modules/admin/verbs/selectequipment.dm index 437185f71443..7c3760062f9f 100644 --- a/monkestation/code/modules/admin/verbs/selectequipment.dm +++ b/monkestation/code/modules/admin/verbs/selectequipment.dm @@ -1,7 +1,23 @@ /datum/select_equipment/ui_act(action, params) . = ..() - if (.) - switch(action) - if("applyoutfit") - if(params["holyEffect"]) - new /obj/effect/holy(target_mob.loc) + if (!.) + return + if (action != "applyoutfit") + return + + var/mob/living/target_mob_living = user.mob + + for(var/datum/quirk/quirk as anything in target_mob_living.quirks) + target_mob_living.remove_quirk(quirk.type) + switch(params["applyQuirks"]) + if("All Quirks") + SSquirks.AssignQuirks(target_mob_living, user) + if("Positive Quirks Only") + SSquirks.AssignQuirks(target_mob_living, user, omit_negatives = TRUE) + if("Negative Quirks Only") + SSquirks.AssignQuirks(target_mob_living, user, omit_positives = TRUE) + if("Neutral Quirks Only") + SSquirks.AssignQuirks(target_mob_living, user, omit_positives = TRUE, omit_negatives = TRUE) + + if(params["holyEffect"]) + new /obj/effect/holy(target_mob_living.loc) diff --git a/monkestation/code/modules/aesthetics/objects/window_sill.dm b/monkestation/code/modules/aesthetics/objects/window_sill.dm index 657e83faa042..b65abfe192a6 100644 --- a/monkestation/code/modules/aesthetics/objects/window_sill.dm +++ b/monkestation/code/modules/aesthetics/objects/window_sill.dm @@ -53,8 +53,8 @@ /obj/structure/window_sill/attackby(obj/item/attacking_item, mob/user, params) . = ..() - if(!. || !isstack(attacking_item)) - return + if(!isstack(attacking_item)) + return FALSE var/obj/item/stack/stack_item = attacking_item if(istype(attacking_item, /obj/item/stack/sheet/glass)) if(stack_item.amount < 2) diff --git a/monkestation/code/modules/aesthetics/objects/windows.dm b/monkestation/code/modules/aesthetics/objects/windows.dm index d5f0962a68c6..8f4a8148e424 100644 --- a/monkestation/code/modules/aesthetics/objects/windows.dm +++ b/monkestation/code/modules/aesthetics/objects/windows.dm @@ -55,6 +55,10 @@ smoothing_flags = SMOOTH_BITMASK smoothing_groups = SMOOTH_GROUP_GRILLE +/obj/structure/grille/window_sill/atom_break() + . = ..() + Destroy() + /obj/structure/grille/update_overlays(updates=ALL) . = ..() if((updates & UPDATE_SMOOTHING) && (smoothing_flags & (SMOOTH_CORNERS|SMOOTH_BITMASK))) diff --git a/monkestation/code/modules/antagonists/teratoma/teratoma.dm b/monkestation/code/modules/antagonists/teratoma/teratoma.dm index 653b291c8461..be05d16492f3 100644 --- a/monkestation/code/modules/antagonists/teratoma/teratoma.dm +++ b/monkestation/code/modules/antagonists/teratoma/teratoma.dm @@ -9,6 +9,14 @@ show_to_ghosts = TRUE var/datum/team/teratoma/team +/datum/antagonist/teratoma/on_gain() + . = ..() + ADD_TRAIT(owner, TRAIT_UNCONVERTABLE, REF(src)) + +/datum/antagonist/teratoma/on_removal() + REMOVE_TRAIT(owner, TRAIT_UNCONVERTABLE, REF(src)) + return ..() + /datum/antagonist/teratoma/greet() var/list/parts = list() parts += span_big("You are a living teratoma!") diff --git a/monkestation/code/modules/antagonists/zombies/items.dm b/monkestation/code/modules/antagonists/zombies/items.dm new file mode 100644 index 000000000000..ef024f61fcb0 --- /dev/null +++ b/monkestation/code/modules/antagonists/zombies/items.dm @@ -0,0 +1,9 @@ +/obj/item/mutant_hand/zombie + ///can we infect living people or not + var/highly_infecious = TRUE + +/obj/item/mutant_hand/zombie/low_infection + highly_infecious = FALSE + +/obj/item/mutant_hand/zombie/low_infection/weak + force = 17 diff --git a/monkestation/code/modules/antagonists/zombies/zombie_meteor_storm.dm b/monkestation/code/modules/antagonists/zombies/zombie_meteor_storm.dm new file mode 100644 index 000000000000..829ade47f8f1 --- /dev/null +++ b/monkestation/code/modules/antagonists/zombies/zombie_meteor_storm.dm @@ -0,0 +1,109 @@ +//this is its own event type due to having a bunch of unique logic +/datum/round_event_control/zombie_meteor_wave + name = "Meteor Wave: Zombies" + typepath = /datum/round_event/zombie_meteor_wave + weight = 0 + max_occurrences = 0 + category = EVENT_CATEGORY_SPACE + description = "Spawn a wave of meteors containing zombies." + admin_setup = list(/datum/event_admin_setup/input_number/zombie_meteor_count) + +/datum/round_event/zombie_meteor_wave + start_when = 1 + end_when = 3 + var/meteor_count = 3 + +/datum/round_event/zombie_meteor_wave/start() + . = ..() + generate_meteors(meteor_count) + +/datum/round_event/zombie_meteor_wave/proc/generate_meteors(count = 1) + if(!count) + return + + var/list/candidates = SSpolling.poll_ghost_candidates("Would you like to be considered for a zombie meteor?", poll_time = 30 SECONDS) + if(!length(candidates)) + return + + for(var/i in 1 to count) + var/mob/dead/selected = pick_n_take(candidates) + var/datum/mind/player_mind = new(selected.key) + player_mind.active = TRUE + + var/turf/picked_start + if (SSmapping.is_planetary()) + var/list/possible_start = list() + for(var/obj/effect/landmark/carpspawn/spawn_point in GLOB.landmarks_list) + possible_start += get_turf(spawn_point) + picked_start = pick(possible_start) + else + var/start_z = pick(SSmapping.levels_by_trait(ZTRAIT_STATION)) + var/start_side = pick(GLOB.cardinals) + picked_start = spaceDebrisStartLoc(start_side, start_z) + + if (!picked_start) + stack_trace("No valid spawn location for zombie meteor") + + var/mob/living/carbon/human/new_mob = new + var/obj/effect/meteor/meaty/zombie/zombie_meteor = new(picked_start, get_random_station_turf()) + new_mob.set_species(/datum/species/zombie/infectious) + new_mob.forceMove(zombie_meteor) + player_mind.transfer_to(new_mob, TRUE) + SEND_SOUND(new_mob, 'sound/magic/mutate.ogg') + message_admins("[ADMIN_LOOKUPFLW(new_mob)] has been made into a zombie by an event.") + new_mob.log_message("was spawned as a zombie by an event.", LOG_GAME) + if(!length(candidates)) + break + +/datum/event_admin_setup/input_number/zombie_meteor_count + input_text = "How many meteors would you like?" + default_value = 3 + +/datum/event_admin_setup/input_number/zombie_meteor_count/apply_to_event(datum/round_event/zombie_meteor_wave/event) + event.meteor_count = chosen_value + +/obj/effect/meteor/meaty/zombie + name = "rotting meaty meteor" + desc = "A loosely packed knit of flesh and skin, pulsating with unlife." + color = "#5EFF00" + heavy = FALSE + hits = 1 //Instantly splatters apart when it hits anything. + hitpwr = EXPLODE_LIGHT + threat = 100 + signature = "rotting lifesign" //In the extremely unlikely one-in-a-million chance that one of these gets reported by the stray meteor event + ///Where we want our zombie to, by whatever means, end up at. + var/atom/landing_target + +/obj/effect/meteor/meaty/zombie/Initialize(mapload, turf/target) + . = ..() + landing_target = target + +/obj/effect/meteor/meaty/zombie/meteor_effect() + ..() + for(var/atom/movable/child in contents) + child.forceMove(get_turf(src)) + +/obj/effect/meteor/meaty/zombie/ram_turf() + return //So we don't instantly smash into our occupant upon unloading them. + +/obj/effect/meteor/meaty/zombie/shield_defense(obj/machinery/satellite/meteor_shield/defender) + landing_target = defender + return TRUE + +//If the meteor misses the station and deletes itself, we make absolutely sure the changeling reaches the station. +/obj/effect/meteor/meaty/zombie/handle_stopping() + if(!landing_target) + //If our destination turf is gone for some reason, we chuck them at the observer_start landmark (usually at the center of the station) as a last resort. + landing_target = locate(/obj/effect/landmark/observer_start) in GLOB.landmarks_list + + for(var/atom/movable/zombie in contents) + zombie.forceMove(get_turf(src)) + zombie.throw_at(landing_target, 2, 2) + zombie.visible_message(span_warning("[zombie] is launched out from inside of the [name]"), \ + span_warning("Sensing that something is terribly wrong, we forcibly eject ourselves from the [name]!")) + playsound(zombie, 'sound/effects/splat.ogg', 50, pressure_affected = FALSE) + + return ..() + +/obj/effect/meteor/meaty/zombie/check_examine_award(mob/user) //We don't want this to be a free achievement that comes with the role. + return diff --git a/monkestation/code/modules/antagonists/zombies/zombie_types/base_zombie.dm b/monkestation/code/modules/antagonists/zombies/zombie_types/base_zombie.dm new file mode 100644 index 000000000000..b277ddfd28e1 --- /dev/null +++ b/monkestation/code/modules/antagonists/zombies/zombie_types/base_zombie.dm @@ -0,0 +1,194 @@ +#define FLESH_REQUIRED_TO_EVOLVE 200 + +// I would like to convert these to their own datum type but I have like 2 hours so this is what we are getting. +/datum/species/zombie/infectious + /// The path of mutant hands to give this zombie. + var/obj/item/mutant_hand/zombie/hand_path = /obj/item/mutant_hand/zombie + + /// The list of action types to give on gain. + var/list/granted_action_types = list( + /datum/action/cooldown/zombie/feast, + /datum/action/cooldown/zombie/evolve, + ) + + /// The list of action instances we have actually granted. + var/list/granted_actions = list() + + /// File that bodypart_overlay_icon_states pulls from. + var/list/bodypart_overlay_icon = 'monkestation/icons/mob/species/zombie/special_zombie_overlays.dmi' + + /// Associative list of bodypart overlays by body zone. + var/list/bodypart_overlay_icon_states = list() + + /// How much flesh we've consumed. Used for evolving. + var/consumed_flesh = 0 + +/datum/species/zombie/infectious/on_species_gain(mob/living/carbon/C, datum/species/old_species) + . = ..() + for(var/zone as anything in bodypart_overlay_icon_states) + var/obj/item/bodypart/bodypart = C.get_bodypart(zone) + if(!bodypart) + continue + + var/overlay_state = bodypart_overlay_icon_states[zone] + var/datum/bodypart_overlay/simple/overlay = new + overlay.icon = bodypart_overlay_icon + overlay.icon_state = overlay_state + overlay.layers = EXTERNAL_ADJACENT | EXTERNAL_FRONT + + bodypart.add_bodypart_overlay(overlay) + +/datum/species/zombie/infectious/proc/set_consumed_flesh(mob/living/carbon/user, amount) + var/old_amount = consumed_flesh + consumed_flesh = max(0, amount) + + if(old_amount == consumed_flesh) + return + + SEND_SIGNAL(user, COMSIG_ZOMBIE_FLESH_ADJUSTED, consumed_flesh, old_amount) + +/datum/species/zombie/infectious/proc/adjust_consumed_flesh(mob/living/carbon/user, amount) + set_consumed_flesh(consumed_flesh + amount) + +/datum/action/cooldown/zombie + name = "Zombie Action" + desc = "You should not be seeing this." + background_icon = 'monkestation/icons/mob/actions/actions_zombie.dmi' + button_icon = 'monkestation/icons/mob/actions/actions_zombie.dmi' + background_icon_state = "bg_zombie" + check_flags = AB_CHECK_IMMOBILE|AB_CHECK_CONSCIOUS + +/datum/action/cooldown/zombie/IsAvailable(feedback) + if(!iszombie(owner)) + CRASH("A non-zombie tried to use a zombie action, it seems the game has taken too much LSD today. (report this shit)") + return ..() + +/datum/action/cooldown/zombie/PreActivate(atom/target) + // Parent calls Activate(), so if parent returns TRUE, + // it means the activation happened successfuly by this point + . = ..() + if(!.) + return FALSE + // Xeno actions like "evolve" may result in our action (or our alien) being deleted + // In that case, we can just exit now as a "success" + if(QDELETED(src) || QDELETED(owner)) + return TRUE + + +/datum/action/cooldown/zombie/proc/update_button() + SIGNAL_HANDLER + build_all_button_icons(UPDATE_BUTTON_STATUS) + +/datum/action/cooldown/zombie/feast + name = "Feast" + desc = "Consume the flesh of the fallen ones." + button_icon_state = "feast" + ranged_mousepointer = 'monkestation/icons/effects/mouse_pointers/feast.dmi' + click_to_activate = TRUE + cooldown_time = 5 SECONDS + +/datum/action/cooldown/zombie/feast/Activate(mob/living/target) + if(target == owner) // Don't eat yourself, dumbass. + return TRUE + + if(!istype(target)) + return TRUE + + if(!owner.Adjacent(target)) + owner.balloon_alert(owner, "get closer!") + return TRUE + + if(target.stat != DEAD) + owner.balloon_alert(owner, "[target.p_they()] [target.p_are()] alive!") + return TRUE + + if(HAS_TRAIT(target, TRAIT_ZOMBIE_CONSUMED)) + owner.balloon_alert(owner, "already consumed!") + return TRUE + + for(var/i in 1 to 4) + if(!do_after(owner, 0.5 SECONDS, target, timed_action_flags = IGNORE_HELD_ITEM | IGNORE_SLOWDOWNS)) + owner.balloon_alert(owner, "interrupted!") + return TRUE + playsound(owner, 'sound/items/eatfood.ogg', vol = 80, vary = TRUE) // Om nom nom, good flesh. + + if(iscarbon(target)) + var/mob/living/carbon/carbon_target = target + carbon_target.apply_damage(25, BRUTE, pick(carbon_target.bodyparts), forced = TRUE, wound_bonus = 10, sharpness = SHARP_EDGED, attack_direction = get_dir(owner, target)) + else + playsound(target, 'sound/effects/wounds/blood2.ogg', vol = 50, vary = TRUE) + target.adjustBruteLoss(25) + + ADD_TRAIT(target, TRAIT_ZOMBIE_CONSUMED, ZOMBIE_TRAIT) + + var/mob/living/carbon/user = owner + + var/healing = target.maxHealth // Bigger kills give more health, most simple mobs will be worth far less than a carbon. + var/needs_update = FALSE // Optimization, if nothing changes then don't update our owner's health. + needs_update += user.adjustBruteLoss(-healing, updating_health = FALSE) + needs_update += user.adjustFireLoss(-healing, updating_health = FALSE) + needs_update += user.adjustToxLoss(-healing, updating_health = FALSE) + needs_update += user.adjustOxyLoss(-healing, updating_health = FALSE) + + if(needs_update) + user.updatehealth() + + user.adjustOrganLoss(ORGAN_SLOT_BRAIN, -healing) + user.set_nutrition(min(user.nutrition + healing, NUTRITION_LEVEL_FULL)) // Doesn't use adjust_nutrition since that would make the zombies fat. + + var/datum/species/zombie/infectious/zombie_datum = user.dna.species + zombie_datum.consumed_flesh += healing + + ..() + + return TRUE + +/// Evolve into a special zombie, needs at least FLESH_REQUIRED_TO_EVOLVE consumed flesh. +/datum/action/cooldown/zombie/evolve + name = "Evolve" + desc = "Mutate into something even more grotesque and powerful. You must consume the flesh of the dead beforehand." + button_icon_state = "evolve" + +/datum/action/cooldown/zombie/evolve/Grant(mob/granted_to) + . = ..() + RegisterSignal(granted_to, COMSIG_ZOMBIE_FLESH_ADJUSTED, PROC_REF(update_button)) + +/datum/action/cooldown/zombie/evolve/Remove(mob/removed_from) + . = ..() + UnregisterSignal(removed_from, COMSIG_ZOMBIE_FLESH_ADJUSTED) + +/datum/action/cooldown/zombie/evolve/IsAvailable(feedback) + if(!..()) + return FALSE + + var/mob/living/carbon/user = owner + var/datum/species/zombie/infectious/zombie_datum = user.dna.species + + if(zombie_datum.consumed_flesh < FLESH_REQUIRED_TO_EVOLVE) + if(feedback) + user.balloon_alert(user, "needs [ceil(FLESH_REQUIRED_TO_EVOLVE - zombie_datum.consumed_flesh)] more flesh!") + return FALSE + + return TRUE + +/datum/action/cooldown/zombie/evolve/Activate(atom/target) + . = ..() + + var/mob/living/carbon/user = owner + + var/datum/species/picked = show_radial_menu(user, user, subtypesof(/datum/species/zombie/infectious)) + + if(!picked) + return + + user.set_species(picked) + + user.visible_message( + message = span_danger("[user]'s flesh shifts, tears and changes, giving way to something even more dangerous!"), + self_message = span_alien("Your flesh shifts, tears and changes as you transform into a [lowertext(initial(picked.name))]!"), + blind_message = span_hear("You hear a grotesque cacophony of flesh shifting and tearing!"), + ) + + playsound(user, 'sound/effects/blobattack.ogg', vol = 80, vary = TRUE) + +#undef FLESH_REQUIRED_TO_EVOLVE diff --git a/monkestation/code/modules/antagonists/zombies/zombie_types/bloater.dm b/monkestation/code/modules/antagonists/zombies/zombie_types/bloater.dm new file mode 100644 index 000000000000..c2b2f05bf765 --- /dev/null +++ b/monkestation/code/modules/antagonists/zombies/zombie_types/bloater.dm @@ -0,0 +1,122 @@ +//UNIMPLEMENTED +//explodes on death, blinding(and damaging?) nearby non zombies +/datum/species/zombie/infectious/bloater + name = "Bloater Zombie" + id = SPECIES_ZOMBIE_INFECTIOUS_BLOATER + bodypart_overlay_icon_states = list(BODY_ZONE_CHEST = "bloater-chest", BODY_ZONE_R_ARM = "generic-right-hand", BODY_ZONE_L_ARM = "generic-left-hand") + granted_action_types = list( + /datum/action/cooldown/zombie/melt_wall, + /datum/action/cooldown/zombie/explode, + ) + +/datum/species/zombie/infectious/bloater/on_species_gain(mob/living/carbon/C, datum/species/old_species) + . = ..() + RegisterSignal(C, COMSIG_LIVING_DEATH, PROC_REF(on_death)) + +/datum/species/zombie/infectious/bloater/on_species_loss(mob/living/carbon/human/C, datum/species/new_species, pref_load) + . = ..() + UnregisterSignal(C, COMSIG_LIVING_DEATH) + +/datum/species/zombie/infectious/bloater/proc/on_death(mob/living/carbon/user, gibbed) + SIGNAL_HANDLER + + if(gibbed || QDELETED(user)) // Congratulations, you've defused the bomb. + return + + user.visible_message( + message = span_danger("[user] bursts apart into a violent shower of infectious gibs!"), + self_message = span_userdanger("You burst apart!"), + blind_message = span_hear("You hear squelching and tearing as your eardrums are assaulted by noise!"), + ) + + var/infects = 0 + + for(var/mob/living/target in oview(4, user)) //need to make this not go through glass + to_chat(target, span_userdanger("Some of the gibs flew onto you!")) + + var/datum/client_colour/colour = target.add_client_colour(/datum/client_colour/bloodlust) + QDEL_IN(colour, 1.1 SECONDS) + + var/dist = max(1, get_dist(user, target)) + + target.adjustBruteLoss(50 / dist) + target.adjustFireLoss(50 / dist) + + target.throw_at(get_edge_target_turf(user, get_dir(user, target)), range = 4 / dist, speed = 2, spin = FALSE) + + if(!iscarbon(target) || !prob(80 / max(1, dist))) // A minimum of a 20% chance to infect. + continue + + var/mob/living/carbon/infectee = target + var/obj/item/organ/internal/zombie_infection/infection + infection = infectee.get_organ_slot(ORGAN_SLOT_ZOMBIE) + if(!infection) + infection = new() + infection.Insert(infectee) + + infects++ + + if(infects > 0) + to_chat(user, span_alien("In your final moments, you managed to infect [infects] [infects == 1 ? "person" : "people"].")) + + user.gib(no_brain = TRUE, no_organs = TRUE, no_bodyparts = TRUE, safe_gib = FALSE) + +/datum/action/cooldown/zombie/melt_wall + name = "Stomach Acid" + desc = "Drench an object in stomach acid, destroying it over time." + button_icon_state = "zombie_vomit" + background_icon_state = "bg_zombie" + cooldown_time = 30 SECONDS + click_to_activate = TRUE + +/datum/action/cooldown/zombie/melt_wall/set_click_ability(mob/on_who) + . = ..() + if(!.) + return + + to_chat(on_who, span_notice("You prepare to vomit. Click a target to puke on it!")) + on_who.update_icons() + +/datum/action/cooldown/zombie/melt_wall/unset_click_ability(mob/on_who, refund_cooldown = TRUE) + . = ..() + if(!.) + return + + if(refund_cooldown) + to_chat(on_who, span_notice("You empty your mouth.")) + on_who.update_icons() + +/datum/action/cooldown/zombie/melt_wall/PreActivate(atom/target) + if(get_dist(owner, target) > 1) + return FALSE + if(ismob(target)) //If it could corrode mobs, it would one-shot them. + owner.balloon_alert(owner, "doesn't work on mobs!") + return FALSE + if(isfloorturf(target)) // Turns floors into landmines which do the same as above + owner.balloon_alert(owner, "doesn't work on floors!") + return FALSE + + return ..() + +/datum/action/cooldown/zombie/melt_wall/Activate(atom/target) + if(!target.acid_act(200, 1000)) + to_chat(owner, span_notice("You cannot dissolve this object.")) + return FALSE + + owner.visible_message( + span_alert("[owner] vomits globs of vile stuff all over [target]. It begins to sizzle and melt under the bubbling mess of acid!"), + span_notice("You vomit globs of acid over [target]. It begins to sizzle and melt."), + ) + StartCooldown() + return TRUE + +/datum/action/cooldown/zombie/explode + name = "Explode" + button_icon_state = "explode" + desc = "Trigger the explosive cocktail residing in your body, causing a devastating explosion that infects nearby targets. Triggers automatically on death." + check_flags = NONE + +/datum/action/cooldown/zombie/explode/Activate(atom/target) + . = ..() + var/mob/living/user = owner + user.death() // lol diff --git a/monkestation/code/modules/antagonists/zombies/zombie_types/runner.dm b/monkestation/code/modules/antagonists/zombies/zombie_types/runner.dm new file mode 100644 index 000000000000..5425eb24f6a2 --- /dev/null +++ b/monkestation/code/modules/antagonists/zombies/zombie_types/runner.dm @@ -0,0 +1,23 @@ +//NEEDS TO BE MADE FAST +/datum/species/zombie/infectious/runner + name = "Runner Zombie" + id = SPECIES_ZOMBIE_INFECTIOUS_RUNNER + maxhealthmod = 0.7 + armor = 0 + hand_path = /obj/item/mutant_hand/zombie/low_infection/weak + granted_action_types = list() + bodypart_overlay_icon_states = list(BODY_ZONE_CHEST = "runner-chest", BODY_ZONE_HEAD = "runner-head") + bodypart_overrides = list( + BODY_ZONE_HEAD = /obj/item/bodypart/head/zombie, + BODY_ZONE_CHEST = /obj/item/bodypart/chest/zombie, + BODY_ZONE_L_ARM = /obj/item/bodypart/arm/left/zombie, + BODY_ZONE_R_ARM = /obj/item/bodypart/arm/right/zombie, + BODY_ZONE_L_LEG = /obj/item/bodypart/leg/left/zombie/runner, + BODY_ZONE_R_LEG = /obj/item/bodypart/leg/right/zombie/runner, + ) + +/obj/item/bodypart/leg/left/zombie/runner + speed_modifier = -0.2 + +/obj/item/bodypart/leg/right/zombie/runner + speed_modifier = -0.2 diff --git a/monkestation/code/modules/antagonists/zombies/zombie_types/spitter.dm b/monkestation/code/modules/antagonists/zombies/zombie_types/spitter.dm new file mode 100644 index 000000000000..6507804dcf99 --- /dev/null +++ b/monkestation/code/modules/antagonists/zombies/zombie_types/spitter.dm @@ -0,0 +1,82 @@ +//UNIMPLEMENTED +//spits weak knockdown projectiles +/datum/species/zombie/infectious/spitter + name = "Spitter Zombie" + id = SPECIES_ZOMBIE_INFECTIOUS_SPITTER + bodypart_overlay_icon_states = list(BODY_ZONE_CHEST = "spitter-chest", BODY_ZONE_HEAD = "spitter_head", BODY_ZONE_R_ARM = "spitter-right-hand", BODY_ZONE_L_ARM = "spitter-left-hand") + granted_action_types = list( + /datum/action/cooldown/zombie/spit, + ) + + +//Just stole aliens stuff, needs some rewording +/datum/action/cooldown/zombie/spit + name = "Spit" + desc = "Spit at someone, causing them to fall down and get burnt." + background_icon_state = "bg_zombie" + button_icon_state = "spit_off" + cooldown_time = 8 SECONDS + click_to_activate = TRUE + +/datum/action/cooldown/zombie/spit/IsAvailable(feedback = FALSE) + if(owner.is_muzzled()) + return FALSE + + if(!isturf(owner.loc)) + return FALSE + return ..() + +/datum/action/cooldown/zombie/spit/set_click_ability(mob/on_who) + . = ..() + if(!.) + return + + to_chat(on_who, span_notice("You prepare to spit. Left-click to fire at a target!")) + + button_icon_state = "spit_on" + build_all_button_icons() + on_who.update_icons() + +/datum/action/cooldown/zombie/spit/unset_click_ability(mob/on_who, refund_cooldown = TRUE) + . = ..() + if(!.) + return + + if(refund_cooldown) + to_chat(on_who, span_notice("You empty your mouth.")) + + button_icon_state = "spit_off" + build_all_button_icons() + on_who.update_icons() + +// We do this in InterceptClickOn() instead of Activate() +// because we use the click parameters for aiming the projectile +// (or something like that) +/datum/action/cooldown/zombie/spit/InterceptClickOn(mob/living/user, params, atom/target) + . = ..() + if(!.) + unset_click_ability(user, refund_cooldown = FALSE) + return FALSE + + var/modifiers = params2list(params) + user.visible_message( + span_danger("[user] spits!"), + span_alert("You spit."), + ) + var/obj/projectile/neurotoxin/zombie/spit = new(user.loc) + spit.preparePixelProjectile(target, user, modifiers) + spit.firer = user + spit.fire() + user.newtonian_move(get_dir(target, user)) + return TRUE + +// Has to return TRUE, otherwise is skipped. +/datum/action/cooldown/zombie/spit/Activate(atom/target) + StartCooldown() + return TRUE + +/obj/projectile/neurotoxin/zombie + name = "spit" + icon_state = "glob_projectile" + damage = 20 + damage_type = BURN diff --git a/monkestation/code/modules/antagonists/zombies/zombie_types/tank.dm b/monkestation/code/modules/antagonists/zombies/zombie_types/tank.dm new file mode 100644 index 000000000000..d271059f67d4 --- /dev/null +++ b/monkestation/code/modules/antagonists/zombies/zombie_types/tank.dm @@ -0,0 +1,23 @@ +/datum/species/zombie/infectious/tank + name = "Tank Zombie" + id = SPECIES_ZOMBIE_INFECTIOUS_TANK + armor = 40 + maxhealthmod = 1.5 + heal_rate = 1 // Slightly higher regeneration rate. + hand_path = /obj/item/mutant_hand/zombie/low_infection + granted_action_types = list() + bodypart_overlay_icon_states = list(BODY_ZONE_CHEST = "tank-chest", BODY_ZONE_HEAD = "tank_head", BODY_ZONE_R_ARM = "generic-right-hand", BODY_ZONE_L_ARM = "generic-left-hand") + bodypart_overrides = list( + BODY_ZONE_HEAD = /obj/item/bodypart/head/zombie, + BODY_ZONE_CHEST = /obj/item/bodypart/chest/zombie, + BODY_ZONE_L_ARM = /obj/item/bodypart/arm/left/zombie, + BODY_ZONE_R_ARM = /obj/item/bodypart/arm/right/zombie, + BODY_ZONE_L_LEG = /obj/item/bodypart/leg/left/zombie/tank, + BODY_ZONE_R_LEG = /obj/item/bodypart/leg/right/zombie/tank, + ) + +/obj/item/bodypart/leg/left/zombie/tank + speed_modifier = 1.2 + +/obj/item/bodypart/leg/right/zombie/tank + speed_modifier = 1.2 diff --git a/monkestation/code/modules/antagonists/zombies/zombification_component.dm b/monkestation/code/modules/antagonists/zombies/zombification_component.dm new file mode 100644 index 000000000000..a6ad9b247c23 --- /dev/null +++ b/monkestation/code/modules/antagonists/zombies/zombification_component.dm @@ -0,0 +1,40 @@ +/datum/component/zombified + var/obj/item/organ/internal/zombie_infection/tumor + +///The component given to zombified mobs +/datum/component/zombified/Initialize(obj/item/organ/internal/zombie_infection/_tumor) + if(!ismob(parent)) + return COMPONENT_INCOMPATIBLE + + tumor = _tumor + +/datum/component/zombified/RegisterWithParent() + +/datum/component/zombified/UnregisterFromParent() + + +/datum/component/zombified/proc/signalproc(datum/source) + SIGNAL_HANDLER + send_to_playing_players("[source] signaled [src]!") + +/* +/datum/component/zombified/InheritComponent(datum/component/zombified/old, i_am_original, list/arguments) + myvar = old.myvar + + if(i_am_original) + send_to_playing_players("No parent should have to bury their child") +*/ + +/* +/datum/component/zombified/PreTransfer() + send_to_playing_players("Goodbye [parent], I'm getting adopted") + +/datum/component/zombified/PostTransfer() + send_to_playing_players("Hello my new parent, [parent]! It's nice to meet you!") +*/ + +/* +/datum/component/zombified/CheckDupeComponent(datum/zombified/new, myargone, myargtwo) + if(myargone == myvar) + return TRUE +*/ diff --git a/monkestation/code/modules/art_sci_overrides/artifact_effects/orchestral.dm b/monkestation/code/modules/art_sci_overrides/artifact_effects/orchestral.dm new file mode 100644 index 000000000000..56dab9c85f06 --- /dev/null +++ b/monkestation/code/modules/art_sci_overrides/artifact_effects/orchestral.dm @@ -0,0 +1,66 @@ +/datum/artifact_effect/orchestral + weight = ARTIFACT_VERYUNCOMMON + type_name = "Audible Jazzy Effect" + activation_message = "starts playing unanticipated jazz!" + deactivation_message = "falls silent, its jazzy aura dissipating!" + valid_activators = list( + /datum/artifact_activator/touch, + /datum/artifact_activator/range + ) + + research_value = 400 + + examine_discovered = span_warning("It appears to play smooth jazz, but suddenly.") + var/sound_hit_list = list( + 'monkestation/sound/effects/artifacts/orchestral/hit01.ogg', + 'monkestation/sound/effects/artifacts/orchestral/hit02.ogg', + 'monkestation/sound/effects/artifacts/orchestral/hit03.ogg', + 'monkestation/sound/effects/artifacts/orchestral/hit04.ogg', + 'monkestation/sound/effects/artifacts/orchestral/hit05.ogg', + 'monkestation/sound/effects/artifacts/orchestral/hit06.ogg', + 'monkestation/sound/effects/artifacts/orchestral/hit07.ogg', + 'monkestation/sound/effects/artifacts/orchestral/hit08.ogg', + 'monkestation/sound/effects/artifacts/orchestral/hit09.ogg', + 'monkestation/sound/effects/artifacts/orchestral/hit10.ogg', + 'monkestation/sound/effects/artifacts/orchestral/hit11.ogg', + 'monkestation/sound/effects/artifacts/orchestral/hit12.ogg', + 'monkestation/sound/effects/artifacts/orchestral/hit13.ogg', + 'monkestation/sound/effects/artifacts/orchestral/hit14.ogg', + 'monkestation/sound/effects/artifacts/orchestral/hit15.ogg', + 'monkestation/sound/effects/artifacts/orchestral/hit16.ogg', + 'monkestation/sound/effects/artifacts/orchestral/hit17.ogg', + 'monkestation/sound/effects/artifacts/orchestral/hit18.ogg' + ) + + var/reactions = list( + "The sudden jazz makes you feel jazzy.", + "Smooth jazz has been deployed to your eardrums.", + "Your soul feels... jazzified.", + "Your auditory senses are being serenaded by jazz.", + "A gentle jazz washes over you.", + "Your mind drifts away on a cloud of jazz.", + "The world slows down to a jazzy rhythm.", + "Jazz attack!", + ) + + var/reaction_radius = 9 + + COOLDOWN_DECLARE(jazz_cooldown) + +/datum/artifact_effect/orchestral/setup() + return + +/datum/artifact_effect/orchestral/effect_touched(mob/living/user) + if(!COOLDOWN_FINISHED(src, jazz_cooldown)) + return + + playsound(our_artifact.holder, pick(sound_hit_list), channel = CHANNEL_MACHINERY, vol = 80) + + var/turf/our_turf = get_turf(our_artifact.holder) + for(var/turf/open/floor in range(reaction_radius,our_artifact.holder)) + if(floor == our_turf) + continue + for(var/mob/living/living in floor) + to_chat(living, span_notice(pick(reactions))) + living.add_mood_event("orchestral_artifact", /datum/mood_event/jazzy) + COOLDOWN_START(src, jazz_cooldown, 3 SECONDS) diff --git a/monkestation/code/modules/art_sci_overrides/faults/clowning.dm b/monkestation/code/modules/art_sci_overrides/faults/clowning.dm index 891e99e825ab..2e0cfb6c9323 100644 --- a/monkestation/code/modules/art_sci_overrides/faults/clowning.dm +++ b/monkestation/code/modules/art_sci_overrides/faults/clowning.dm @@ -1,7 +1,11 @@ /datum/artifact_fault/clown name = "Funny Fault" trigger_chance = 5 - inspect_warning = list("Smells faintly of bananas","Looks Funny.","Hates mimes.") + inspect_warning = list( + "Smells faintly of bananas", + "Looks funny.", + "Hates mimes.", + ) visible_message = "summons a portal to the HONK DIMENSION!" discovered_credits = -500 research_value = 250 @@ -14,6 +18,5 @@ if(!center_turf) CRASH("[src] had attempted to trigger, but failed to find the center turf!") - var/obj/structure/spawner/clown/hehe = new(src) - - addtimer(CALLBACK(hehe,PROC_REF(Destroy)),3 MINUTE) + var/obj/structure/spawner/clown/hehe = new(center_turf) + QDEL_IN(hehe, 3 MINUTES) diff --git a/monkestation/code/modules/art_sci_overrides/faults/just_death.dm b/monkestation/code/modules/art_sci_overrides/faults/just_death.dm index c2585b17aef3..d3d5f24c80ce 100644 --- a/monkestation/code/modules/art_sci_overrides/faults/just_death.dm +++ b/monkestation/code/modules/art_sci_overrides/faults/just_death.dm @@ -2,9 +2,11 @@ name = "Instant Death Fault" trigger_chance = 50 //God forbid this actually rolls on a touch artifact,like it did during my testing. visible_message = "blows someone up with mind." - inspect_warning = list(span_danger("The grim reapers scythe seems to be reflected in its surface!"), - span_danger("An Aura of death surrounds this object!"), - span_danger("I'd bet 50/50 someone dies if this turns on!")) + inspect_warning = list( + span_danger("The grim reapers scythe seems to be reflected in its surface!"), + span_danger("An aura of death surrounds this object!"), + span_danger("I'd bet 50/50 someone dies if this turns on!") + ) research_value = 10000 //Wow, this would make a fucking amazing weapon diff --git a/monkestation/code/modules/art_sci_overrides/faults/monkey_mode.dm b/monkestation/code/modules/art_sci_overrides/faults/monkey_mode.dm index 753de53424a5..6fd1c80c4279 100644 --- a/monkestation/code/modules/art_sci_overrides/faults/monkey_mode.dm +++ b/monkestation/code/modules/art_sci_overrides/faults/monkey_mode.dm @@ -8,27 +8,22 @@ weight = ARTIFACT_VERYUNCOMMON /datum/artifact_fault/monkey_mode/on_trigger() - var/monkey = rand(1,4) + var/monkeys_to_spawn = rand(1,4) var/center_turf = get_turf(our_artifact.parent) var/list/turf/valid_turfs = list() if(!center_turf) CRASH("[src] had attempted to trigger, but failed to find the center turf!") - for(var/turf/boi in range(rand(3,6),center_turf)) - if(boi.density) + for(var/turf/boi in range(rand(3, 6), center_turf)) + if(boi.is_blocked_turf(source_atom = our_artifact.parent)) continue valid_turfs += boi - for(var/i in 1 to monkey) - var/turf/spawnon = pick(valid_turfs) - valid_turfs -= spawnon - var/pain = roll(1,100) - var/mob/living/M //For monkey - switch(pain) + for(var/i in 1 to min(monkeys_to_spawn, length(valid_turfs))) + var/turf/spawnon = pick_n_take(valid_turfs) + switch(rand(1, 100)) if(1 to 75) - M = new /mob/living/carbon/human/species/monkey/angry(spawnon) + new /mob/living/carbon/human/species/monkey/angry(spawnon) if(75 to 95) - M = new /mob/living/basic/gorilla(spawnon) + new /mob/living/basic/gorilla(spawnon) if(95 to 100) - M = new /mob/living/basic/gorilla/lesser(spawnon)//OH GOD ITS TINY - if(M) //Just in case. - M.forceMove(spawnon) + new /mob/living/basic/gorilla/lesser(spawnon)//OH GOD ITS TINY diff --git a/monkestation/code/modules/art_sci_overrides/faults/say.dm b/monkestation/code/modules/art_sci_overrides/faults/say.dm index 5a84e49eee8b..a205b52ead0e 100644 --- a/monkestation/code/modules/art_sci_overrides/faults/say.dm +++ b/monkestation/code/modules/art_sci_overrides/faults/say.dm @@ -1,17 +1,31 @@ +#define SPEECH_ARTIFACT_COOLDOWN_MIN (10 SECONDS) +#define SPEECH_ARTIFACT_COOLDOWN_MAX (25 SECONDS) + /datum/artifact_fault/speech name = "Talkative Fault" trigger_chance = 25 research_value = 50 + /// Cooldown to prevent constant chat spam. + COOLDOWN_DECLARE(spam_cooldown) /datum/artifact_fault/speech/on_trigger() + if(!COOLDOWN_FINISHED(src, spam_cooldown)) + return var/center_turf = get_turf(our_artifact.parent) if(!center_turf) CRASH("[src] had attempted to trigger, but failed to find the center turf!") + var/did_anything = FALSE for(var/mob/living/living in viewers(rand(7, 10), center_turf)) - if(living.stat != CONSCIOUS || !living.can_speak()) + if(living.stat != CONSCIOUS || !living.can_speak() || prob(30)) continue var/speak_over_radio = prob(10) ? "; " : "" var/forced_message = pick_list_replacements(ARTIFACT_FILE, "speech_artifact") - living.say(speak_over_radio + forced_message, forced = "artifact ([src])") + INVOKE_ASYNC(living, TYPE_PROC_REF(/atom/movable, say), speak_over_radio + forced_message, forced = "artifact ([src])") + did_anything = TRUE + if(did_anything) + COOLDOWN_START(src, spam_cooldown, rand(SPEECH_ARTIFACT_COOLDOWN_MIN, SPEECH_ARTIFACT_COOLDOWN_MAX)) + +#undef SPEECH_ARTIFACT_COOLDOWN_MAX +#undef SPEECH_ARTIFACT_COOLDOWN_MIN diff --git a/monkestation/code/modules/art_sci_overrides/faults/whispers.dm b/monkestation/code/modules/art_sci_overrides/faults/whispers.dm index 727c88a3f55c..ecc1366e538b 100644 --- a/monkestation/code/modules/art_sci_overrides/faults/whispers.dm +++ b/monkestation/code/modules/art_sci_overrides/faults/whispers.dm @@ -1,5 +1,5 @@ /datum/artifact_fault/whisper - name = "Wispering Fault" + name = "Whispering Fault" trigger_chance = 75 var/list/whispers = list("Help me!","I've seen your sins","Egg.") diff --git a/monkestation/code/modules/art_sci_overrides/generic_artifact_objects.dm b/monkestation/code/modules/art_sci_overrides/generic_artifact_objects.dm index 3192c5dd3e98..2edbd7e70d17 100644 --- a/monkestation/code/modules/art_sci_overrides/generic_artifact_objects.dm +++ b/monkestation/code/modules/art_sci_overrides/generic_artifact_objects.dm @@ -54,6 +54,9 @@ ARTIFACT_SETUP(/obj/structure/artifact, SSobj, null, forced_effect, null) /obj/structure/artifact/vomit forced_effect = /datum/artifact_effect/vomit +/obj/structure/artifact/orchestral + forced_effect = /datum/artifact_effect/orchestral + /obj/structure/artifact/borger forced_effect = /datum/artifact_effect/borger diff --git a/monkestation/code/modules/assault_ops/code/covert_modsuit.dm b/monkestation/code/modules/assault_ops/code/covert_modsuit.dm index fd2cd5ed872c..8ed3210ddd23 100644 --- a/monkestation/code/modules/assault_ops/code/covert_modsuit.dm +++ b/monkestation/code/modules/assault_ops/code/covert_modsuit.dm @@ -43,7 +43,7 @@ HELMET_LAYER = NECK_LAYER, HELMET_FLAGS = list( UNSEALED_CLOTHING = SNUG_FIT, - SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE, + SEALED_CLOTHING = THICKMATERIAL|STOPSPRESSUREDAMAGE|HEADINTERNALS, UNSEALED_INVISIBILITY = HIDEFACIALHAIR, SEALED_INVISIBILITY = HIDEMASK|HIDEEARS|HIDEEYES|HIDEFACE|HIDEHAIR|HIDESNOUT, SEALED_COVER = HEADCOVERSMOUTH|HEADCOVERSEYES|PEPPERPROOF, diff --git a/monkestation/code/modules/blood_datum/debilitated.dm b/monkestation/code/modules/blood_datum/debilitated.dm index 410f8a531206..15cf739f383f 100644 --- a/monkestation/code/modules/blood_datum/debilitated.dm +++ b/monkestation/code/modules/blood_datum/debilitated.dm @@ -5,9 +5,9 @@ /datum/status_effect/stacking/debilitated id = "debilitated" stacks = 0 - max_stacks = 10 + max_stacks = 5 tick_interval = 10 SECONDS - delay_before_decay = 3 MINUTES + delay_before_decay = 1 MINUTES consumed_on_threshold = FALSE alert_type = /atom/movable/screen/alert/status_effect/debilitated status_type = STATUS_EFFECT_REFRESH @@ -15,15 +15,13 @@ ///our base stamina loss multiplier var/loss_multiplier = 1 ///our per stack increase to stamina loss - var/per_stack_multiplier_increase = 0.1 - ///our cached stamina_mod - var/cached_stamina + var/per_stack_multiplier_increase = 0.2 /datum/status_effect/stacking/debilitated/on_apply() . = ..() if(ishuman(owner)) var/mob/living/carbon/human/human = owner - cached_stamina = human.physiology.temp_stamina_mod + human.physiology.temp_stamina_mod = loss_multiplier + (stacks * per_stack_multiplier_increase) /datum/status_effect/stacking/debilitated/add_stacks(stacks_added) . = ..() diff --git a/monkestation/code/modules/bloodsuckers/clans/malkavian.dm b/monkestation/code/modules/bloodsuckers/clans/malkavian.dm index 3d37ef119fe8..f5e3eede948f 100644 --- a/monkestation/code/modules/bloodsuckers/clans/malkavian.dm +++ b/monkestation/code/modules/bloodsuckers/clans/malkavian.dm @@ -64,13 +64,47 @@ SIGNAL_HANDLER if(masquerade_breaker == bloodsuckerdatum) return - to_chat(bloodsuckerdatum.owner.current, span_userdanger("[masquerade_breaker.owner.current] has broken the Masquerade! Ensure [masquerade_breaker.owner.current.p_they()] [masquerade_breaker.owner.current.p_are()] eliminated at all costs!")) - var/datum/objective/assassinate/masquerade_objective = new() - masquerade_objective.target = masquerade_breaker.owner.current - masquerade_objective.objective_name = "Clan Objective" - masquerade_objective.explanation_text = "Ensure [masquerade_breaker.owner.current], who has broken the Masquerade, succumbs to Final Death." + var/mob/living/target_body = masquerade_breaker.owner.current + var/vampiric_name = masquerade_breaker.return_full_name() + var/mortal_name = masquerade_breaker.owner.name || target_body.real_name || target_body.name + to_chat(bloodsuckerdatum.owner.current, span_userdanger("[vampiric_name], also known as [mortal_name], has broken the Masquerade! Ensure [target_body.p_they()] [target_body.p_are()] eliminated at all costs!")) + var/datum/objective/enforce_masquerade/masquerade_objective = new(null, masquerade_breaker) + masquerade_objective.owner = bloodsuckerdatum.owner bloodsuckerdatum.objectives += masquerade_objective bloodsuckerdatum.owner.announce_objectives() +/datum/objective/enforce_masquerade + name = "kill masquerade breaker" + objective_name = "Clan Objective" + var/datum/antagonist/bloodsucker/masquerade_breaker + +/datum/objective/enforce_masquerade/New(text, datum/antagonist/bloodsucker/masquerade_breaker) + . = ..() + if(!istype(masquerade_breaker) || !masquerade_breaker.owner) + CRASH("Attempted to create [type] objective without a valid target bloodsucker datum!") + RegisterSignal(masquerade_breaker, BLOODSUCKER_FINAL_DEATH, PROC_REF(on_target_final_death)) + src.target = masquerade_breaker.owner + src.masquerade_breaker = masquerade_breaker + update_explanation_text() + +/datum/objective/enforce_masquerade/Destroy() + if(masquerade_breaker) + UnregisterSignal(masquerade_breaker, BLOODSUCKER_FINAL_DEATH) + masquerade_breaker = null + return ..() + +/datum/objective/enforce_masquerade/update_explanation_text() + var/target_name = target.name || target.current?.real_name || target.current?.name + explanation_text = "Ensure that [target_name], who has broken the Masquerade, succumbs to Final Death." + +// Simple signal handler to mark the objective as completed when the target succumbs to the final death. +/datum/objective/enforce_masquerade/proc/on_target_final_death(datum/source) + SIGNAL_HANDLER + completed = TRUE + +/datum/objective/enforce_masquerade/check_completion() + return ..() || QDELETED(target?.current) + + #undef REVELATION_MAX_COOLDOWN #undef REVELATION_MIN_COOLDOWN diff --git a/monkestation/code/modules/bloodsuckers/monster_hunters/events/wonderland_apocalypse.dm b/monkestation/code/modules/bloodsuckers/monster_hunters/events/wonderland_apocalypse.dm index 2d2efeb4a8bf..def42a7b2b9b 100644 --- a/monkestation/code/modules/bloodsuckers/monster_hunters/events/wonderland_apocalypse.dm +++ b/monkestation/code/modules/bloodsuckers/monster_hunters/events/wonderland_apocalypse.dm @@ -122,10 +122,29 @@ /datum/status_effect/wonderland_district id = "wonderland_district" - alert_type = null + alert_type = /atom/movable/screen/alert/status_effect/wonderland_district tick_interval = -1 + /// List of /datum/action instance that we've registered `COMSIG_ACTION_TRIGGER` on. + var/list/datum/action/registered_actions + /// Typecache of spells to NOT trigger the effect on. var/static/list/spell_whitelist_typecache - var/static/list/trigger_recoil_typecache + /// Typecache of non-spell actions to trigger the effect on. + var/static/list/register_action_typecache + +/datum/status_effect/wonderland_district/New(list/arguments) + . = ..() + spell_whitelist_typecache ||= typecacheof(list( + /datum/action/cooldown/spell/florida_regeneration, + /datum/action/cooldown/spell/florida_cuff_break, + /datum/action/cooldown/spell/florida_doorbuster, + )) + register_action_typecache ||= zebra_typecacheof(list( + /datum/action/innate/cult = TRUE, + /datum/action/innate/cult/comm = FALSE, + /datum/action/innate/clockcult/quick_bind = TRUE, + /datum/action/cooldown/bloodsucker = TRUE, + /datum/action/changeling = TRUE, + )) /datum/status_effect/wonderland_district/on_apply() . = ..() @@ -134,62 +153,62 @@ to_chat(owner, span_warning("You feel an ominous pressure fill the air around you...")) RegisterSignal(owner, COMSIG_ENTER_AREA, PROC_REF(on_enter_area)) RegisterSignal(owner, COMSIG_MOB_AFTER_SPELL_CAST, PROC_REF(after_spell_cast)) - RegisterSignal(owner, COMSIG_ACTION_TRIGGER, PROC_REF(on_action_triggered)) + RegisterSignal(owner, COMSIG_MOB_GRANTED_ACTION, PROC_REF(owner_granted_action)) + RegisterSignal(owner, COMSIG_MOB_REMOVED_ACTION, PROC_REF(owner_removed_action)) + for(var/datum/action/action as anything in owner.actions) + owner_granted_action(owner, action) /datum/status_effect/wonderland_district/on_remove() . = ..() - UnregisterSignal(owner, list(COMSIG_ENTER_AREA, COMSIG_MOB_AFTER_SPELL_CAST, COMSIG_ACTION_TRIGGER)) + UnregisterSignal(owner, list(COMSIG_ENTER_AREA, COMSIG_MOB_AFTER_SPELL_CAST, COMSIG_MOB_GRANTED_ACTION, COMSIG_MOB_REMOVED_ACTION)) + for(var/datum/action/action as anything in registered_actions) + UnregisterSignal(action, COMSIG_ACTION_TRIGGER) + LAZYNULL(registered_actions) /datum/status_effect/wonderland_district/proc/on_enter_area(datum/source, area/centcom/new_area) SIGNAL_HANDLER if(istype(new_area) && new_area.grace) qdel(src) +/datum/status_effect/wonderland_district/proc/owner_granted_action(datum/source, datum/action/action) + SIGNAL_HANDLER + if(!(action in registered_actions) && is_type_in_typecache(action, register_action_typecache)) + RegisterSignal(action, COMSIG_ACTION_TRIGGER, PROC_REF(on_action_triggered)) + LAZYADD(registered_actions, action) + +/datum/status_effect/wonderland_district/proc/owner_removed_action(datum/source, datum/action/action) + SIGNAL_HANDLER + UnregisterSignal(action, COMSIG_ACTION_TRIGGER) + LAZYREMOVE(registered_actions, action) + /datum/status_effect/wonderland_district/proc/after_spell_cast(datum/source, datum/action/cooldown/spell/spell, atom/cast_on) SIGNAL_HANDLER - if(!spell_whitelist_typecache) - spell_whitelist_typecache = typecacheof(list( - /datum/action/cooldown/spell/florida_regeneration, - /datum/action/cooldown/spell/florida_cuff_break, - /datum/action/cooldown/spell/florida_doorbuster - )) if(!istype(spell) || QDELING(spell) || !spell.antimagic_flags || is_type_in_typecache(spell, spell_whitelist_typecache)) // don't affect non-magic spells. return - recoil(span_warning("[owner] doubles over in pain, violently coughing up blood!"), span_userdanger("An overwhelming pressure fills your body as you cast [spell.name || "magic"], filling you with excruciating pain down to the very core of your being!")) + recoil( + span_warning("[owner] doubles over in pain, violently coughing up blood!"), + span_userdanger("An overwhelming pressure fills your body as you cast [spell.name || "magic"], filling you with excruciating pain down to the very core of your being!") + ) /datum/status_effect/wonderland_district/proc/on_action_triggered(datum/source, datum/action/action) SIGNAL_HANDLER - if(!trigger_recoil_typecache) - trigger_recoil_typecache = typecacheof(list( - /datum/action/innate/cult/blood_spell, - /datum/action/innate/cult/blood_magic, - /datum/action/innate/cult/master, - /datum/action/innate/clockcult/quick_bind, - /datum/action/cooldown/bloodsucker - )) - if(!is_type_in_typecache(action, trigger_recoil_typecache)) - return - recoil(span_warning("[owner] doubles over in pain, violently coughing up blood!"), span_userdanger("An overwhelming pressure fills your body as you use [action.name || "your ability"], filling you with excruciating pain down to the very core of your being!")) + recoil( + span_warning("[owner] doubles over in pain, violently coughing up blood!"), + span_userdanger("An overwhelming pressure fills your body as you use [action.name || "your ability"], filling you with excruciating pain down to the very core of your being!") + ) /datum/status_effect/wonderland_district/proc/recoil(vis_msg, self_msg) - make_visible() INVOKE_ASYNC(owner, TYPE_PROC_REF(/mob/living, emote), "scream") if(vis_msg) owner.visible_message(vis_msg, self_msg) owner.take_overall_damage(brute = rand(5, 15)) + owner.sharp_pain(BODY_ZONES_ALL, rand(5, 15), BRUTE, 10 SECONDS) if(iscarbon(owner)) var/mob/living/carbon/carbon_owner = owner carbon_owner.vomit(lost_nutrition = 0, blood = TRUE, stun = FALSE, distance = prob(20) + 1, message = FALSE) -/datum/status_effect/wonderland_district/proc/make_visible() - if(alert_type && !QDELETED(linked_alert)) - return - alert_type = /atom/movable/screen/alert/status_effect/wonderland_district - linked_alert = owner.throw_alert(id, alert_type) - linked_alert.attached_effect = src - /atom/movable/screen/alert/status_effect/wonderland_district name = "Wonderland Manifestation" - desc = "An omnipresent pressure surrounds you, causing any use of magic to overload your body!" + desc = "The veil between fantasy and reality has been shattered!" icon = 'monkestation/icons/hud/screen_alert.dmi' icon_state = "wonderland" diff --git a/monkestation/code/modules/bloodsuckers/powers/_base_power.dm b/monkestation/code/modules/bloodsuckers/powers/_base_power.dm index 0128330427e5..6559cea57832 100644 --- a/monkestation/code/modules/bloodsuckers/powers/_base_power.dm +++ b/monkestation/code/modules/bloodsuckers/powers/_base_power.dm @@ -76,6 +76,8 @@ return FALSE if(!can_pay_cost() || !can_use(owner, trigger_flags)) return FALSE + if(SEND_SIGNAL(src, COMSIG_ACTION_TRIGGER, src) & COMPONENT_ACTION_BLOCK_TRIGGER) + return FALSE pay_cost() ActivatePower(trigger_flags) if(!(power_flags & BP_AM_TOGGLE) || !active) diff --git a/monkestation/code/modules/bloodsuckers/powers/targeted/lunge.dm b/monkestation/code/modules/bloodsuckers/powers/targeted/lunge.dm index bdac413c5203..18b1a05852d4 100644 --- a/monkestation/code/modules/bloodsuckers/powers/targeted/lunge.dm +++ b/monkestation/code/modules/bloodsuckers/powers/targeted/lunge.dm @@ -113,13 +113,17 @@ /datum/action/cooldown/bloodsucker/targeted/lunge/proc/do_lunge(atom/hit_atom) var/turf/targeted_turf = get_turf(hit_atom) - var/safety = get_dist(owner, targeted_turf) * 3 + 1 - var/consequetive_failures = 0 - while(--safety && !hit_atom.Adjacent(owner)) - if(!step_to(owner, targeted_turf)) - consequetive_failures++ - if(consequetive_failures >= 3) // If 3 steps don't work, just stop. - break + var/dist = get_dist(owner, targeted_turf) + if(dist <= target_range) + var/safety = dist * 3 + 1 + var/consequetive_failures = 0 + while(--safety && !hit_atom.Adjacent(owner)) + if(!step_to(owner, targeted_turf)) + consequetive_failures++ + if(consequetive_failures >= 3) // If 3 steps don't work, just stop. + break + else + owner.balloon_alert(owner, "too far away!") lunge_end(hit_atom, targeted_turf) diff --git a/monkestation/code/modules/bloodsuckers/structures/bloodsucker_crypt.dm b/monkestation/code/modules/bloodsuckers/structures/bloodsucker_crypt.dm index 7fb28c95b639..1115d9e469d9 100644 --- a/monkestation/code/modules/bloodsuckers/structures/bloodsucker_crypt.dm +++ b/monkestation/code/modules/bloodsuckers/structures/bloodsucker_crypt.dm @@ -605,7 +605,7 @@ target.pixel_y -= 2 // The speech itself -/obj/structure/bloodsucker/bloodthrone/proc/handle_speech(datum/source, mob/speech_args) +/obj/structure/bloodsucker/bloodthrone/proc/handle_speech(datum/source, list/speech_args) SIGNAL_HANDLER var/message = speech_args[SPEECH_MESSAGE] @@ -614,9 +614,9 @@ user.log_talk(message, LOG_SAY, tag=ROLE_BLOODSUCKER) var/datum/antagonist/bloodsucker/bloodsuckerdatum = user.mind.has_antag_datum(/datum/antagonist/bloodsucker) for(var/datum/antagonist/vassal/receiver as anything in bloodsuckerdatum.vassals) - if(!receiver.owner.current) + var/mob/receiver_mob = receiver?.owner?.current + if(QDELETED(receiver_mob)) continue - var/mob/receiver_mob = receiver.owner.current to_chat(receiver_mob, rendered, type = MESSAGE_TYPE_RADIO) to_chat(user, rendered, type = MESSAGE_TYPE_RADIO, avoid_highlighting = TRUE) // tell yourself, too. diff --git a/monkestation/code/modules/blueshield/closet.dm b/monkestation/code/modules/blueshield/closet.dm index 7dde3112058d..f80a8e9b8961 100644 --- a/monkestation/code/modules/blueshield/closet.dm +++ b/monkestation/code/modules/blueshield/closet.dm @@ -24,7 +24,7 @@ name = "blueshield's locker" icon_state = "bs" icon = 'monkestation/code/modules/blueshift/icons/obj/closet.dmi' - req_access = list(ACCESS_CENT_GENERAL) + req_access = list(ACCESS_BLUESHIELD) /obj/structure/closet/secure_closet/blueshield/New() ..() diff --git a/monkestation/code/modules/blueshield/gun.dm b/monkestation/code/modules/blueshield/gun.dm index 5c66d550757d..2dcd2c541388 100644 --- a/monkestation/code/modules/blueshield/gun.dm +++ b/monkestation/code/modules/blueshield/gun.dm @@ -48,6 +48,14 @@ weapon_to_spawn = /obj/item/gun/ballistic/revolver/takbok/blueshield +/obj/item/storage/toolbox/guncase/skyrat/pistol/trappiste_small_case/takbok/blueshield/PopulateContents() + new weapon_to_spawn (src) + + generate_items_inside(list( + /obj/item/ammo_box/c585trappiste/incapacitator = 1, + /obj/item/ammo_box/c585trappiste = 1, + ), src) + //Weapon beacon /obj/item/choice_beacon/blueshield name = "gunset beacon" @@ -78,6 +86,15 @@ weapon_to_spawn = /obj/item/gun/ballistic/automatic/pistol/tech_9/no_mag extra_to_spawn = /obj/item/ammo_box/magazine/m35/rubber +/obj/item/storage/toolbox/guncase/skyrat/pistol/tech_9/PopulateContents() + new weapon_to_spawn (src) + + generate_items_inside(list( + /obj/item/ammo_box/magazine/m35/rubber = 2, + /obj/item/ammo_box/magazine/m35 = 1, + ), src) + + /obj/item/gun/ballistic/automatic/pistol/tech_9 name = "\improper Glock-O" desc = "The standard issue service pistol of blueshield agents." diff --git a/monkestation/code/modules/blueshield/trim.dm b/monkestation/code/modules/blueshield/trim.dm index c1f35f30a688..53d908c90fa7 100644 --- a/monkestation/code/modules/blueshield/trim.dm +++ b/monkestation/code/modules/blueshield/trim.dm @@ -14,7 +14,7 @@ ACCESS_SECURITY, ACCESS_ALL_PERSONAL_LOCKERS, ACCESS_BRIG_ENTRANCE, - ACCESS_CENT_GENERAL, + ACCESS_BLUESHIELD, ACCESS_COMMAND, ACCESS_CONSTRUCTION, ACCESS_ENGINEERING, diff --git a/monkestation/code/modules/blueshift/components/soulcatcher_base.dm b/monkestation/code/modules/blueshift/components/soulcatcher_base.dm index 4a10e7832efa..05089d5ef820 100644 --- a/monkestation/code/modules/blueshift/components/soulcatcher_base.dm +++ b/monkestation/code/modules/blueshift/components/soulcatcher_base.dm @@ -77,7 +77,8 @@ GLOBAL_LIST_EMPTY(soulcatchers) * * target_name - The name that we want to assign to the created room. * * target_desc - The description that we want to assign to the created room. */ -/datum/component/soulcatcher/proc/create_room(target_name = "Default Room", target_desc = "An orange platform suspended in space orbited by reflective cubes of various sizes. There really isn't much here at the moment.") +/datum/component/soulcatcher/proc/create_room(target_name = "Default Room", \ + target_desc = "An orange platform suspended in space orbited by reflective cubes of various sizes. There really isn't much here at the moment.") var/datum/soulcatcher_room/created_room = new(src) created_room.name = target_name created_room.room_description = target_desc diff --git a/monkestation/code/modules/blueshift/elements/caseless.dm b/monkestation/code/modules/blueshift/elements/caseless.dm index 587a32f2b304..e6b2c7a6c8c3 100644 --- a/monkestation/code/modules/blueshift/elements/caseless.dm +++ b/monkestation/code/modules/blueshift/elements/caseless.dm @@ -34,4 +34,8 @@ var/obj/item/gun/shot_from = fired_from if(shot_from.chambered == shell) shot_from.chambered = null //Nuke it. Nuke it now. + if(istype(shot_from, /obj/item/gun/ballistic/revolver/sol)) + var/obj/item/ammo_box/magazine/internal/cylinder/c35sol/cylinder1 = shot_from.contents[2] + cylinder1.stored_ammo[1] = null + return QDEL_NULL(shell) diff --git a/monkestation/code/modules/blueshift/elements/gun_launches_little_guy.dm b/monkestation/code/modules/blueshift/elements/gun_launches_little_guy.dm index 8174d3ce26b4..322ea68902a1 100644 --- a/monkestation/code/modules/blueshift/elements/gun_launches_little_guy.dm +++ b/monkestation/code/modules/blueshift/elements/gun_launches_little_guy.dm @@ -34,7 +34,7 @@ /datum/element/gun_launches_little_guys/proc/throw_it_back(obj/item/gun/weapon, mob/living/carbon/user, atom/target, params, zone_override) SIGNAL_HANDLER - if(!issimian(user) && !HAS_TRAIT(user, TRAIT_DWARF) && !(user.dna.features["body_size"] <= 0.9)) + if(!ismonkey(user) && !HAS_TRAIT(user, TRAIT_DWARF) && !(user.dna.features["body_size"] <= 0.9)) return var/fling_direction = REVERSE_DIR(user.dir) diff --git a/monkestation/code/modules/blueshift/items/ammo.dm b/monkestation/code/modules/blueshift/items/ammo.dm index d06142daabe2..17895682d3ac 100644 --- a/monkestation/code/modules/blueshift/items/ammo.dm +++ b/monkestation/code/modules/blueshift/items/ammo.dm @@ -266,28 +266,24 @@ // .35 Sol Short // Pistol caliber caseless round used almost exclusively by SolFed weapons +//CASELESS VAR IS ADDED SO THAT REVOLVER CHAMBERS KNOW WHAT TO DO WITH IT /obj/item/ammo_casing/c35sol name = ".35 Sol Short lethal bullet casing" desc = "A SolFed standard caseless lethal pistol round." - icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/carwo_defense_systems/ammo.dmi' icon_state = "35sol" - caliber = CALIBER_SOL35SHORT projectile_type = /obj/projectile/bullet/c35sol - /obj/item/ammo_casing/c35sol/Initialize(mapload) . = ..() - AddElement(/datum/element/caseless) /obj/projectile/bullet/c35sol name = ".35 Sol Short bullet" damage = 15 - wound_bonus = -5 // Normal bullets are 20 bare_wound_bonus = 5 embed_falloff_tile = -4 @@ -296,14 +292,10 @@ /obj/item/ammo_box/c35sol name = "ammo box (.35 Sol Short lethal)" desc = "A box of .35 Sol Short pistol rounds, holds twenty-four rounds." - icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/carwo_defense_systems/ammo.dmi' icon_state = "35box" - multiple_sprites = AMMO_BOX_FULL_EMPTY - w_class = WEIGHT_CLASS_NORMAL - caliber = CALIBER_SOL35SHORT ammo_type = /obj/item/ammo_casing/c35sol max_ammo = 24 @@ -314,9 +306,7 @@ /obj/item/ammo_casing/c35sol/incapacitator name = ".35 Sol Short incapacitator bullet casing" desc = "A SolFed standard caseless less-lethal pistol round. Exhausts targets on hit, has a tendency to bounce off walls at shallow angles." - icon_state = "35sol_disabler" - projectile_type = /obj/projectile/bullet/c35sol/incapacitator harmful = FALSE @@ -325,10 +315,8 @@ name = ".35 Sol Short incapacitator bullet" damage = 5 stamina = 30 - wound_bonus = -40 bare_wound_bonus = -20 - weak_against_armour = TRUE // The stats of the ricochet are a nerfed version of detective revolver rubber ammo @@ -339,7 +327,6 @@ ricochet_incidence_leeway = 50 ricochet_chance = 130 ricochet_decay_damage = 0.8 - shrapnel_type = null sharpness = NONE embedding = null @@ -348,9 +335,7 @@ /obj/item/ammo_box/c35sol/incapacitator name = "ammo box (.35 Sol Short incapacitator)" desc = "A box of .35 Sol Short pistol rounds, holds twenty-four rounds. The blue stripe indicates this should hold less-lethal ammunition." - icon_state = "35box_disabler" - ammo_type = /obj/item/ammo_casing/c35sol/incapacitator @@ -359,10 +344,8 @@ /obj/item/ammo_casing/c35sol/ripper name = ".35 Sol Short ripper bullet casing" desc = "A SolFed standard caseless ripper pistol round. Causes slashing wounds on targets, but is weak to armor." - icon_state = "35sol_shrapnel" projectile_type = /obj/projectile/bullet/c35sol/ripper - custom_materials = AMMO_MATS_RIPPER advanced_print_req = TRUE @@ -370,14 +353,10 @@ /obj/projectile/bullet/c35sol/ripper name = ".35 Sol ripper bullet" damage = 12 - weak_against_armour = TRUE - sharpness = SHARP_EDGED - wound_bonus = 20 bare_wound_bonus = 20 - embedding = list( embed_chance = 75, fall_chance = 3, @@ -395,9 +374,7 @@ /obj/item/ammo_box/c35sol/ripper name = "ammo box (.35 Sol Short ripper)" desc = "A box of .35 Sol Short pistol rounds, holds twenty-four rounds. The purple stripe indicates this should hold hollowpoint-like ammunition." - icon_state = "35box_shrapnel" - ammo_type = /obj/item/ammo_casing/c35sol/ripper // .40 Sol Long @@ -406,24 +383,20 @@ /obj/item/ammo_casing/c40sol name = ".40 Sol Long lethal bullet casing" desc = "A SolFed standard caseless lethal rifle round." - icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/carwo_defense_systems/ammo.dmi' icon_state = "40sol" - caliber = CALIBER_SOL40LONG projectile_type = /obj/projectile/bullet/c40sol /obj/item/ammo_casing/c40sol/Initialize(mapload) . = ..() - AddElement(/datum/element/caseless) /obj/projectile/bullet/c40sol name = ".40 Sol Long bullet" damage = 20 - wound_bonus = 10 bare_wound_bonus = 20 @@ -1180,30 +1153,6 @@ HORNET'S NEST: Fire an overwhelming amount of projectiles in a single shot." can_be_printed = FALSE -/obj/item/ammo_casing/shotgun/buckshot - name = "buckshot shell" - desc = "A 12 gauge buckshot shell." - icon_state = "gshell" - projectile_type = /obj/projectile/bullet/pellet/shotgun_buckshot - pellets = 8 // 8 * 6 for 48 damage if every pellet hits, we want to keep lethal shells ~50 damage - variance = 25 - -/obj/projectile/bullet/pellet/shotgun_buckshot - name = "buckshot pellet" - damage = 6 - -/obj/item/ammo_casing/shotgun/rubbershot - name = "rubber shot" - desc = "A shotgun casing filled with densely-packed rubber balls, used to incapacitate crowds from a distance." - icon_state = "rshell" - projectile_type = /obj/projectile/bullet/pellet/shotgun_rubbershot - pellets = 6 // 6 * 10 for 60 stamina damage, + some small amount of brute, we want to keep less lethal shells ~60 - variance = 20 - harmful = FALSE - -/obj/projectile/bullet/pellet/shotgun_rubbershot - stamina = 10 - /obj/item/ammo_casing/shotgun/magnum name = "magnum blockshot shell" desc = "A 12 gauge shell that fires fewer, larger pellets than buckshot. A favorite of SolFed anti-piracy enforcers, \ @@ -1301,7 +1250,7 @@ icon_state = "lasershell" projectile_type = /obj/projectile/bullet/pellet/shotgun_buckshot/antitide pellets = 8 // 8 * 7 for 56 stamina damage, plus whatever the embedded shells do - variance = 30 + variance = 50 harmful = FALSE fire_sound = 'sound/weapons/taser.ogg' custom_materials = AMMO_MATS_SHOTGUN_TIDE @@ -1312,15 +1261,15 @@ icon = 'monkestation/code/modules/blueshift/icons/projectiles.dmi' icon_state = "stardust" damage = 2 - stamina = 16 + stamina = 7 wound_bonus = 0 bare_wound_bonus = 0 stutter = 3 SECONDS jitter = 5 SECONDS eyeblur = 1 SECONDS sharpness = NONE - range = 8 - embedding = list(embed_chance=70, pain_chance=25, fall_chance=15, jostle_chance=80, ignore_throwspeed_threshold=TRUE, pain_stam_pct=0.9, pain_mult=2, rip_time=10) + range = 7 + embedding = list(embed_chance=75, pain_chance=50, fall_chance=15, jostle_chance=80, ignore_throwspeed_threshold=TRUE, pain_stam_pct=0.9, pain_mult=2, rip_time=10) /obj/projectile/bullet/pellet/shotgun_buckshot/antitide/on_range() do_sparks(1, TRUE, src) @@ -1359,9 +1308,6 @@ . = ..() AddElement(/datum/element/bane, mob_biotypes = MOB_BEAST, damage_multiplier = 5) -/obj/projectile/bullet/pellet/shotgun_improvised - weak_against_armour = TRUE // We will not have Improvised are Better 2.0 - /obj/item/ammo_casing/shotgun/honkshot name = "confetti shell" desc = "A 12 gauge buckshot shell thats been filled to the brim with confetti, yippie!" diff --git a/monkestation/code/modules/blueshift/items/barber.dm b/monkestation/code/modules/blueshift/items/barber.dm index 293f0dd70a58..c30a3d4d928a 100644 --- a/monkestation/code/modules/blueshift/items/barber.dm +++ b/monkestation/code/modules/blueshift/items/barber.dm @@ -311,6 +311,7 @@ /obj/item/lipstick/quantum = 1, /obj/item/razor = 1, /obj/item/storage/box/perfume = 1, + /obj/item/secateurs = 1, //monkestation edit: plant ) refill_canister = /obj/item/vending_refill/barbervend default_price = PAYCHECK_CREW diff --git a/monkestation/code/modules/blueshift/items/company_guns.dm b/monkestation/code/modules/blueshift/items/company_guns.dm index 98dc570b10ce..f99c598cfaaf 100644 --- a/monkestation/code/modules/blueshift/items/company_guns.dm +++ b/monkestation/code/modules/blueshift/items/company_guns.dm @@ -462,16 +462,11 @@ /obj/item/gun/ballistic/revolver/sol name = "\improper Eland Revolver" desc = "A small revolver with a comically short barrel and cylinder space for eight .35 Sol Short rounds." - icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/trappiste_fabriek/guns32x.dmi' icon_state = "eland" - accepted_magazine_type = /obj/item/ammo_box/magazine/internal/cylinder/c35sol - suppressor_x_offset = 3 - w_class = WEIGHT_CLASS_SMALL - can_suppress = TRUE /obj/item/gun/ballistic/revolver/sol/give_manufacturer_examine() @@ -504,19 +499,13 @@ /obj/item/gun/ballistic/revolver/takbok name = "\improper Takbok Revolver" desc = "A hefty revolver with an equally large cylinder capable of holding five .585 Trappiste rounds." - icon = 'monkestation/code/modules/blueshift/icons/obj/company_and_or_faction_based/trappiste_fabriek/guns32x.dmi' icon_state = "takbok" - fire_sound = 'monkestation/code/modules/blueshift/sounds/revolver_heavy.ogg' suppressed_sound = 'monkestation/code/modules/blueshift/sounds/suppressed_heavy.ogg' - accepted_magazine_type = /obj/item/ammo_box/magazine/internal/cylinder/c585trappiste - suppressor_x_offset = 5 - can_suppress = TRUE - fire_delay = 1 SECONDS recoil = 3 wield_recoil = 1 diff --git a/monkestation/code/modules/blueshift/items/handheld_soulcatcher.dm b/monkestation/code/modules/blueshift/items/handheld_soulcatcher.dm index 518ab620408f..77809bf9de64 100644 --- a/monkestation/code/modules/blueshift/items/handheld_soulcatcher.dm +++ b/monkestation/code/modules/blueshift/items/handheld_soulcatcher.dm @@ -2,7 +2,11 @@ /obj/item/handheld_soulcatcher name = "\improper Evoker-type RSD" - desc = "The Evoker-Type Resonance Simulation Device is a sort of 'Soulcatcher' instrument that's been designated for handheld usage. These RSDs were designed with the Medical field in mind, a tool meant to offer comfort to the temporarily-departed while their bodies are being repaired, healed, or produced. The Evoker is essentially a very specialized handheld NIF, still using the same nanomachinery for the software and hardware. This careful instrument is able to host a virtual space for a great number of Engrams for an essentially indefinite amount of time in an unlimited variety of simulations, even able to transfer them to and from a NIF. However, it's best Medical practice to not lollygag." + desc = "The Evoker-Type Resonance Simulation Device is a sort of 'Soulcatcher' instrument that's been designated for handheld usage. \ + These RSDs were designed with the Medical field in mind, a tool meant to offer comfort to the temporarily-departed while their bodies are being repaired, \ + healed, or produced. The Evoker is essentially a very specialized handheld NIF, still using the same nanomachinery for the software and hardware. \ + This careful instrument is able to host a virtual space for a great number of Engrams for an essentially indefinite amount of time in an \ + unlimited variety of simulations, even able to transfer them to and from a NIF. However, it's best Medical practice to not lollygag." icon = 'monkestation/code/modules/blueshift/icons/obj/devices.dmi' icon_state = "soulcatcher-device" inhand_icon_state = "electronic" @@ -24,7 +28,7 @@ /obj/item/handheld_soulcatcher/attack_self(mob/user, modifiers) linked_soulcatcher.ui_interact(user) -/obj/item/handheld_soulcatcher/New(loc, ...) +/obj/item/handheld_soulcatcher/Initialize(mapload) . = ..() linked_soulcatcher = AddComponent(/datum/component/soulcatcher) linked_soulcatcher.name = name @@ -120,7 +124,7 @@ to_chat(user, span_warning("[target_mob] lacks a brain!")) return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN - if(target_mob.mind || target_mob.ckey || GetComponent(/datum/component/previous_body)) + if(target_mob.mind || target_mob.ckey || target_mob.GetComponent(/datum/component/previous_body)) to_chat(user, span_warning("[target_mob] is not able to receive a soul")) return SECONDARY_ATTACK_CANCEL_ATTACK_CHAIN diff --git a/monkestation/code/modules/blueshift/structures/flipped_table.dm b/monkestation/code/modules/blueshift/structures/flipped_table.dm index 177074d45933..b0a0a87543b5 100644 --- a/monkestation/code/modules/blueshift/structures/flipped_table.dm +++ b/monkestation/code/modules/blueshift/structures/flipped_table.dm @@ -49,7 +49,11 @@ /obj/structure/flippedtable/CtrlShiftClick(mob/user) if(!istype(user) || iscorticalborer(user)) - return FALSE + return + if(isobserver(user) && !is_admin(user.client)) //prevent ghosts from unflipping tables but still allows admins to fuck around + return + if(!user.CanReach(src)) + return user.balloon_alert_to_viewers("flipping table upright...") if(do_after(user, max_integrity * 0.25)) var/obj/structure/table/unflipped_table = new table_type(src.loc) diff --git a/monkestation/code/modules/blueshift/wounds/muscle_wounds.dm b/monkestation/code/modules/blueshift/wounds/muscle_wounds.dm index 7397ce9eada9..ae6d854ffcd9 100644 --- a/monkestation/code/modules/blueshift/wounds/muscle_wounds.dm +++ b/monkestation/code/modules/blueshift/wounds/muscle_wounds.dm @@ -18,7 +18,7 @@ viable_zones = list(BODY_ZONE_L_ARM, BODY_ZONE_R_ARM, BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) required_limb_biostate = BIO_FLESH - required_wounding_types = list(WOUND_BLUNT, WOUND_SLASH, WOUND_PIERCE) + required_wounding_types = list(WOUND_BLUNT, WOUND_SLASH, WOUND_PIERCE, WOUND_MUSCLE) match_all_wounding_types = FALSE wound_series = WOUND_SERIES_MUSCLE_DAMAGE diff --git a/monkestation/code/modules/brewin_and_chewin/brewing/fermintation_keg.dm b/monkestation/code/modules/brewin_and_chewin/brewing/fermintation_keg.dm index ba4f66a5f3da..0f95b71205b6 100644 --- a/monkestation/code/modules/brewin_and_chewin/brewing/fermintation_keg.dm +++ b/monkestation/code/modules/brewin_and_chewin/brewing/fermintation_keg.dm @@ -28,6 +28,9 @@ GLOBAL_LIST_EMPTY(custom_fermentation_recipes) ///our made item which we clear once its no longer ready to bottle var/made_item + ///icon used for wrapping the keg. set to NULL for any intentionally unwrappable subtypes. + var/delivery_icon = "deliverykeg" + /obj/structure/fermentation_keg/Initialize() diff --git a/monkestation/code/modules/brewin_and_chewin/chewing/recipes/crafting_component_additions.dm b/monkestation/code/modules/brewin_and_chewin/chewing/recipes/crafting_component_additions.dm new file mode 100644 index 000000000000..cb6ce37fc979 --- /dev/null +++ b/monkestation/code/modules/brewin_and_chewin/chewing/recipes/crafting_component_additions.dm @@ -0,0 +1,31 @@ + +/datum/component/personal_crafting/proc/craft_until_cant(datum/crafting_recipe/recipe_to_use, mob/chef, turf/craft_location, craft_time) + if(!craft_time) + craft_time = recipe_to_use.time + while(TRUE) + // attempt_craft_loop sleeps, so this won't freeze the server while we craft + if(!attempt_craft_loop(recipe_to_use, chef, craft_location, craft_time)) + break + craft_time = max(5, craft_time * 0.75) // speed up the more you craft in a batch + +/// Attempts a crafting loop. Returns true if it succeeds, false otherwise +/datum/component/personal_crafting/proc/attempt_craft_loop(datum/crafting_recipe/recipe_to_use, mob/chef, turf/craft_location, craft_time) + var/list/surroundings = get_surroundings(chef) + if(!check_contents(chef, recipe_to_use, surroundings)) + chef.balloon_alert_to_viewers("failed to craft, missing ingredients!") + return FALSE + + var/atom/movable/result = construct_item(chef, recipe_to_use, craft_time) + if(istext(result)) + chef.balloon_alert_to_viewers("failed to craft[result]") + return FALSE + //We made an item and didn't get a fail message + result.forceMove(craft_location) + result.pixel_x = rand(-10, 10) + result.pixel_y = rand(-10, 10) + if(isitem(result)) + var/obj/item/item_result = result + item_result.do_drop_animation(chef) + chef.investigate_log("[key_name(chef)] crafted [recipe_to_use]", INVESTIGATE_CRAFTING) + recipe_to_use.on_craft_completion(chef, result) + return TRUE diff --git a/monkestation/code/modules/brewin_and_chewin/chewing/recipes/edible_component_additions.dm b/monkestation/code/modules/brewin_and_chewin/chewing/recipes/edible_component_additions.dm new file mode 100644 index 000000000000..ace344530a29 --- /dev/null +++ b/monkestation/code/modules/brewin_and_chewin/chewing/recipes/edible_component_additions.dm @@ -0,0 +1,39 @@ +/datum/component/edible/proc/check_menu(mob/user) + if(!istype(user)) + return FALSE + if(user.incapacitated() || !user.Adjacent(parent)) + return FALSE + return TRUE + +/datum/component/edible/proc/show_radial_recipes(atom/parent_atom, mob/user) + SIGNAL_HANDLER + if(!ishuman(user)) + return + var/mob/living/carbon/human/chef = user + var/datum/component/personal_crafting/crafting_menu = user.GetComponent(/datum/component/personal_crafting) // we turned crafting into a component so now I have to do this shit to avoid copypaste + if(!crafting_menu) + CRASH("This really needs to be looked into this is not suppose to happen like ever. A human tried to show radial recipes without a crafting component") + var/list/available_recipes = list() + var/list/surroundings = crafting_menu.get_surroundings(chef) + var/list/recipes_radial = list() + var/list/recipes_craft = list() + for(var/recipe in GLOB.cooking_recipes) + var/datum/crafting_recipe/potential_recipe = recipe + if(parent.type in potential_recipe.reqs) // dont show recipes that don't involve this item + if(crafting_menu.check_contents(chef, potential_recipe, surroundings)) // don't show recipes we can't actually make + available_recipes.Add(potential_recipe) + for(var/available_recipe in available_recipes) + var/datum/crafting_recipe/available_recipe_datum = available_recipe + var/atom/craftable_atom = available_recipe_datum.result + recipes_radial.Add(list(initial(craftable_atom.name) = image(icon = initial(craftable_atom.icon), icon_state = initial(craftable_atom.icon_state)))) + recipes_craft.Add(list(initial(craftable_atom.name) = available_recipe_datum)) + INVOKE_ASYNC(src, PROC_REF(hate_signals_holy_shit), recipes_radial, recipes_craft, chef, crafting_menu) + return COMPONENT_SECONDARY_CANCEL_ATTACK_CHAIN + +/datum/component/edible/proc/hate_signals_holy_shit(list/recipes_radial, list/recipes_craft, mob/chef, datum/component/personal_crafting/crafting_menu) + var/recipe_chosen = show_radial_menu(chef, chef, recipes_radial, custom_check = CALLBACK(src, PROC_REF(check_menu), chef), require_near = TRUE, tooltips = TRUE) + if(!recipe_chosen) + return + var/datum/crafting_recipe/chosen_recipe = recipes_craft[recipe_chosen] + chef.balloon_alert_to_viewers("crafting [chosen_recipe.name]") + crafting_menu.craft_until_cant(chosen_recipe, chef, get_turf(parent)) diff --git a/monkestation/code/modules/brewin_and_chewin/chewing/recipes/fried_rice.dm b/monkestation/code/modules/brewin_and_chewin/chewing/recipes/fried_rice.dm deleted file mode 100644 index f21996d94c5e..000000000000 --- a/monkestation/code/modules/brewin_and_chewin/chewing/recipes/fried_rice.dm +++ /dev/null @@ -1,35 +0,0 @@ -/datum/chewin_cooking/recipe/hurricane_rice - cooking_container = PAN - food_category = CAT_STOVETOP - product_type = /obj/item/food/salad/hurricane_rice - recipe_guide = "Add boiled rice to pan, crack an egg, add vegetables, cook for 15 seconds on high, add soysauce, cook for 5 seconds on high." - step_builder = list( - list(CHEWIN_ADD_ITEM, /obj/item/food/boiledrice, qmod=0.5), - list(CHEWIN_ADD_ITEM, /obj/item/food/egg, qmod=0.5), - list(CHEWIN_ADD_PRODUCE, /obj/item/food/grown/chili, qmod=0.5), - - list(CHEWIN_ADD_ITEM_OPTIONAL, /obj/item/food/onion_slice, qmod=0.5), - list(CHEWIN_ADD_ITEM_OPTIONAL, /obj/item/food/pineappleslice, qmod=0.5), - - list(CHEWIN_USE_STOVE, J_HI, 15 SECONDS , finish_text = "You can smell almost finished fried rice, just needs some seasoning!"), - list(CHEWIN_ADD_REAGENT, /datum/reagent/consumable/soysauce, 3, base=3), - list(CHEWIN_USE_STOVE, J_HI, 5 SECONDS , finish_text = "You can smell fried rice!"), - ) - -/datum/chewin_cooking/recipe/ikareis - cooking_container = PAN - food_category = CAT_STOVETOP - product_type = /obj/item/food/salad/ikareis - recipe_guide = "Add boiled rice to pan, some squid ink, add vegetables and sausage, cook for 20 seconds on high." - step_builder = list( - list(CHEWIN_ADD_ITEM, /obj/item/food/boiledrice, qmod=0.5), - list(CHEWIN_ADD_ITEM, /obj/item/food/canned/squid_ink, qmod=0.5), - list(CHEWIN_ADD_PRODUCE, /obj/item/food/grown/bell_pepper, qmod=0.5), - list(CHEWIN_ADD_ITEM, /obj/item/food/sausage, qmod=0.5), - - list(CHEWIN_ADD_ITEM_OPTIONAL, /obj/item/food/onion_slice, qmod=0.5), - list(CHEWIN_ADD_ITEM_OPTIONAL, /obj/item/food/pineappleslice, qmod=0.5, prod_desc = "Extra sweet!"), - list(CHEWIN_ADD_ITEM_OPTIONAL, /obj/item/food/grown/chili, qmod=0.5, prod_desc = "Extra spicy!"), - - list(CHEWIN_USE_STOVE, J_HI, 20 SECONDS , finish_text = "You can smell ikareis!"), - ) diff --git a/monkestation/code/modules/brewin_and_chewin/chewing/recipes/french_fries.dm b/monkestation/code/modules/brewin_and_chewin/chewing/recipes/generic/french_fries.dm similarity index 100% rename from monkestation/code/modules/brewin_and_chewin/chewing/recipes/french_fries.dm rename to monkestation/code/modules/brewin_and_chewin/chewing/recipes/generic/french_fries.dm diff --git a/monkestation/code/modules/brewin_and_chewin/chewing/recipes/oven_bread.dm b/monkestation/code/modules/brewin_and_chewin/chewing/recipes/generic/oven_bread.dm similarity index 100% rename from monkestation/code/modules/brewin_and_chewin/chewing/recipes/oven_bread.dm rename to monkestation/code/modules/brewin_and_chewin/chewing/recipes/generic/oven_bread.dm diff --git a/monkestation/code/modules/brewin_and_chewin/chewing/recipes/black_eggs.dm b/monkestation/code/modules/brewin_and_chewin/chewing/recipes/lizard/black_eggs.dm similarity index 100% rename from monkestation/code/modules/brewin_and_chewin/chewing/recipes/black_eggs.dm rename to monkestation/code/modules/brewin_and_chewin/chewing/recipes/lizard/black_eggs.dm diff --git a/monkestation/code/modules/brewin_and_chewin/chewing/recipes/fried_blood_sausage.dm b/monkestation/code/modules/brewin_and_chewin/chewing/recipes/lizard/fried_blood_sausage.dm similarity index 100% rename from monkestation/code/modules/brewin_and_chewin/chewing/recipes/fried_blood_sausage.dm rename to monkestation/code/modules/brewin_and_chewin/chewing/recipes/lizard/fried_blood_sausage.dm diff --git a/monkestation/code/modules/brewin_and_chewin/chewing/recipes/lizard_dumplings.dm b/monkestation/code/modules/brewin_and_chewin/chewing/recipes/lizard/lizard_dumplings.dm similarity index 100% rename from monkestation/code/modules/brewin_and_chewin/chewing/recipes/lizard_dumplings.dm rename to monkestation/code/modules/brewin_and_chewin/chewing/recipes/lizard/lizard_dumplings.dm diff --git a/monkestation/code/modules/brewin_and_chewin/chewing/recipes/martian/epok_epok.dm b/monkestation/code/modules/brewin_and_chewin/chewing/recipes/martian/epok_epok.dm new file mode 100644 index 000000000000..747b49083d49 --- /dev/null +++ b/monkestation/code/modules/brewin_and_chewin/chewing/recipes/martian/epok_epok.dm @@ -0,0 +1,13 @@ +/datum/chewin_cooking/recipe/ti_hoeh_koe + cooking_container = PAN + food_category = CAT_STOVETOP + product_type = /obj/item/food/epok_epok + step_builder = list( + list(CHEWIN_ADD_ITEM, /obj/item/food/doughslice, qmod=0.5), + list(CHEWIN_ADD_ITEM, /obj/item/food/meat/cutlet/chicken, qmod=0.5), + list(CHEWIN_USE_STOVE, J_MED, 10 SECONDS, finish_text="The chicken starts to cook."), + list(CHEWIN_ADD_ITEM, /obj/item/food/grown/potato/wedges, qmod=0.5), + list(CHEWIN_ADD_ITEM, /obj/item/food/boiledegg, qmod=0.5), + list(CHEWIN_ADD_REAGENT, /datum/reagent/consumable/curry_powder, 3, base=3), + list(CHEWIN_USE_STOVE, J_LO, 10 SECONDS), + ) diff --git a/monkestation/code/modules/brewin_and_chewin/chewing/recipes/martian/fried_rice.dm b/monkestation/code/modules/brewin_and_chewin/chewing/recipes/martian/fried_rice.dm new file mode 100644 index 000000000000..b72240bbaf1d --- /dev/null +++ b/monkestation/code/modules/brewin_and_chewin/chewing/recipes/martian/fried_rice.dm @@ -0,0 +1,100 @@ +/datum/chewin_cooking/recipe/hurricane_rice + cooking_container = PAN + food_category = CAT_STOVETOP + product_type = /obj/item/food/salad/hurricane_rice + recipe_guide = "Add boiled rice to pan, crack an egg, add vegetables, cook for 15 seconds on high, add soysauce, cook for 5 seconds on high." + step_builder = list( + list(CHEWIN_ADD_ITEM, /obj/item/food/boiledrice, qmod=0.5), + list(CHEWIN_ADD_ITEM, /obj/item/food/egg, qmod=0.5), + list(CHEWIN_ADD_PRODUCE, /obj/item/food/grown/chili, qmod=0.5), + + list(CHEWIN_ADD_ITEM_OPTIONAL, /obj/item/food/onion_slice, qmod=0.5), + list(CHEWIN_ADD_ITEM_OPTIONAL, /obj/item/food/pineappleslice, qmod=0.5), + + list(CHEWIN_USE_STOVE, J_HI, 15 SECONDS , finish_text = "You can smell almost finished fried rice, just needs some seasoning!"), + list(CHEWIN_ADD_REAGENT, /datum/reagent/consumable/soysauce, 3, base=3), + list(CHEWIN_USE_STOVE, J_HI, 5 SECONDS , finish_text = "You can smell fried rice!"), + ) + +/datum/chewin_cooking/recipe/ikareis + cooking_container = PAN + food_category = CAT_STOVETOP + product_type = /obj/item/food/salad/ikareis + recipe_guide = "Add boiled rice to pan, some squid ink, add vegetables and sausage, cook for 20 seconds on high." + step_builder = list( + list(CHEWIN_ADD_ITEM, /obj/item/food/boiledrice, qmod=0.5), + list(CHEWIN_ADD_ITEM, /obj/item/food/canned/squid_ink, qmod=0.5), + list(CHEWIN_ADD_PRODUCE, /obj/item/food/grown/bell_pepper, qmod=0.5), + list(CHEWIN_ADD_ITEM, /obj/item/food/sausage, qmod=0.5), + + list(CHEWIN_ADD_ITEM_OPTIONAL, /obj/item/food/onion_slice, qmod=0.5), + list(CHEWIN_ADD_ITEM_OPTIONAL, /obj/item/food/pineappleslice, qmod=0.5, prod_desc = "Extra sweet!"), + list(CHEWIN_ADD_ITEM_OPTIONAL, /obj/item/food/grown/chili, qmod=0.5, prod_desc = "Extra spicy!"), + + list(CHEWIN_USE_STOVE, J_HI, 20 SECONDS , finish_text = "You can smell ikareis!"), + ) + +/datum/chewin_cooking/recipe/ketchup_fried_rice + name = "Ketchup Fried Rice" + cooking_container = PAN + food_category = CAT_STOVETOP + product_type = /obj/item/food/salad/ketchup_fried_rice + recipe_guide = "Cook ingredients in a pan." + step_builder = list( + list(CHEWIN_ADD_ITEM, /obj/item/food/boiledrice), + list(CHEWIN_ADD_ITEM, /obj/item/food/onion_slice), + list(CHEWIN_ADD_ITEM, /obj/item/food/sausage/american), + list(CHEWIN_ADD_PRODUCE, /obj/item/food/grown/carrot), + list(CHEWIN_ADD_PRODUCE, /obj/item/food/grown/peas), + list(CHEWIN_ADD_REAGENT, /datum/reagent/consumable/ketchup, 5), + list(CHEWIN_ADD_REAGENT, /datum/reagent/consumable/worcestershire, 2), + list(CHEWIN_USE_STOVE, J_MED, 20 SECONDS) // Cook on medium for 20 seconds + ) + + +/datum/chewin_cooking/recipe/mediterranean_fried_rice + name = "Mediterranean Fried Rice" + cooking_container = PAN + food_category = CAT_STOVETOP + product_type = /obj/item/food/salad/mediterranean_fried_rice + recipe_guide = "Cook ingredients in a pan." + step_builder = list( + list(CHEWIN_ADD_ITEM, /obj/item/food/boiledrice), + list(CHEWIN_ADD_ITEM, /obj/item/food/onion_slice), + list(CHEWIN_ADD_PRODUCE, /obj/item/food/grown/herbs), + list(CHEWIN_ADD_ITEM, /obj/item/food/cheese/firm_cheese_slice), + list(CHEWIN_ADD_PRODUCE, /obj/item/food/grown/olive), + list(CHEWIN_ADD_ITEM, /obj/item/food/meatball), + list(CHEWIN_USE_STOVE, J_MED, 20 SECONDS) // Cook on medium for 20 seconds + ) + + +/datum/chewin_cooking/recipe/egg_fried_rice + name = "Egg Fried Rice" + cooking_container = PAN + food_category = CAT_STOVETOP + product_type = /obj/item/food/salad/egg_fried_rice + recipe_guide = "Cook ingredients in a pan." + step_builder = list( + list(CHEWIN_ADD_ITEM, /obj/item/food/boiledrice), + list(CHEWIN_ADD_ITEM, /obj/item/food/egg), + list(CHEWIN_ADD_REAGENT, /datum/reagent/consumable/soysauce, 3), + list(CHEWIN_USE_STOVE, J_MED, 20 SECONDS) // Cook on medium for 20 seconds + ) + + +/datum/chewin_cooking/recipe/bibimbap + name = "Bibimbap" + cooking_container = PAN + food_category = CAT_STOVETOP + product_type = /obj/item/food/salad/bibimbap + recipe_guide = "Cook ingredients in a pan." + step_builder = list( + list(CHEWIN_ADD_ITEM, /obj/item/food/boiledrice), + list(CHEWIN_ADD_PRODUCE, /obj/item/food/grown/cucumber), + list(CHEWIN_ADD_PRODUCE, /obj/item/food/grown/mushroom/chanterelle), + list(CHEWIN_ADD_ITEM, /obj/item/food/meat/cutlet), + list(CHEWIN_ADD_ITEM, /obj/item/food/kimchi), + list(CHEWIN_ADD_ITEM, /obj/item/food/egg), + list(CHEWIN_USE_STOVE, J_MED, 20 SECONDS) // Cook on medium for 20 seconds + ) diff --git a/monkestation/code/modules/brewin_and_chewin/chewing/recipes/katsu_curry.dm b/monkestation/code/modules/brewin_and_chewin/chewing/recipes/martian/katsu_curry.dm similarity index 69% rename from monkestation/code/modules/brewin_and_chewin/chewing/recipes/katsu_curry.dm rename to monkestation/code/modules/brewin_and_chewin/chewing/recipes/martian/katsu_curry.dm index 3f69d1af3f4a..f06b634153da 100644 --- a/monkestation/code/modules/brewin_and_chewin/chewing/recipes/katsu_curry.dm +++ b/monkestation/code/modules/brewin_and_chewin/chewing/recipes/martian/katsu_curry.dm @@ -59,3 +59,29 @@ list(CHEWIN_USE_STOVE, J_LO, 1 MINUTES), ) + +/datum/chewin_cooking/recipe/yakisoba_katsu + name = "Yakisoba Curry" + cooking_container = PAN + food_category = CAT_STOVETOP + product_type = /obj/item/food/salad/yakisoba_katsu + recipe_guide = "Melt some butter in a pan, add some noodles, vegetables, worcestershire and katsu." + step_builder = list( + list(CHEWIN_ADD_ITEM, /obj/item/food/butter, qmod=0.5), + list(CHEWIN_USE_STOVE, J_LO, 10 SECONDS, finish_text = "The butter melts in the bowl!"), + + list(CHEWIN_ADD_ITEM, /obj/item/food/spaghetti/boilednoodles, qmod=0.5), + list(CHEWIN_ADD_REAGENT, /datum/reagent/consumable/worcestershire, 5, base=3), + + list(CHEWIN_ADD_ITEM, /obj/item/food/katsu_fillet, qmod=0.5), + list(CHEWIN_ADD_ITEM, /obj/item/food/onion_slice, qmod=0.5), + list(CHEWIN_ADD_PRODUCE, /obj/item/food/grown/carrot , qmod=0.5), + list(CHEWIN_ADD_PRODUCE, /obj/item/food/grown/cabbage , qmod=0.5), + + CHEWIN_BEGIN_EXCLUSIVE_OPTIONS, + list(CHEWIN_ADD_PRODUCE_OPTIONAL, /obj/item/food/grown/chili, qmod=0.2, reagent_skip=TRUE, prod_desc = "Extra spicy!", food_buff = /datum/status_effect/food/sweaty), + list(CHEWIN_ADD_PRODUCE_OPTIONAL, /obj/item/food/grown/pineapple, qmod=0.2, reagent_skip=TRUE, prod_desc = "Mild and Sweet."), + CHEWIN_END_EXCLUSIVE_OPTIONS, + + list(CHEWIN_USE_STOVE, J_LO, 20 SECONDS), + ) diff --git a/monkestation/code/modules/brewin_and_chewin/chewing/recipes/kimchi.dm b/monkestation/code/modules/brewin_and_chewin/chewing/recipes/martian/kimchi.dm similarity index 97% rename from monkestation/code/modules/brewin_and_chewin/chewing/recipes/kimchi.dm rename to monkestation/code/modules/brewin_and_chewin/chewing/recipes/martian/kimchi.dm index fbe196f189c1..d090ae296f2d 100644 --- a/monkestation/code/modules/brewin_and_chewin/chewing/recipes/kimchi.dm +++ b/monkestation/code/modules/brewin_and_chewin/chewing/recipes/martian/kimchi.dm @@ -1,5 +1,6 @@ /datum/chewin_cooking/recipe/kimchi cooking_container = BOWL + food_category = CAT_STOVETOP product_type = /obj/item/food/kimchi recipe_guide = "Mix Cabbage, Chili, and Salt in a bowl." step_builder = list( @@ -10,6 +11,7 @@ /datum/chewin_cooking/recipe/kimchi_inferno cooking_container = BOWL + food_category = CAT_STOVETOP product_type = /obj/item/food/inferno_kimchi recipe_guide = "Mix Cabbage, Ghost Chili, and Salt in a bowl." step_builder = list( @@ -20,6 +22,7 @@ /datum/chewin_cooking/recipe/garlic_kimchi cooking_container = BOWL + food_category = CAT_STOVETOP product_type = /obj/item/food/garlic_kimchi recipe_guide = "Mix Cabbage, Garlic, Chili, and Salt in a bowl." step_builder = list( diff --git a/monkestation/code/modules/brewin_and_chewin/chewing/recipes/martian/noodles.dm b/monkestation/code/modules/brewin_and_chewin/chewing/recipes/martian/noodles.dm new file mode 100644 index 000000000000..f696e430c344 --- /dev/null +++ b/monkestation/code/modules/brewin_and_chewin/chewing/recipes/martian/noodles.dm @@ -0,0 +1,85 @@ +/datum/chewin_cooking/recipe/bulgogi_noodles + name = "Bulgogi Noodles" + cooking_container = PAN + food_category = CAT_STOVETOP + product_type = /obj/item/food/salad/bulgogi_noodles + recipe_guide = "Cook ingredients in a pan." + step_builder = list( + + CHEWIN_BEGIN_OPTION_CHAIN, + list(CHEWIN_ADD_ITEM_OPTIONAL, /obj/item/food/butter, base=10, reagent_skip=TRUE), + list(CHEWIN_USE_STOVE_OPTIONAL, J_LO, 10 SECONDS, finish_text = "The butter melts in the pan!"), + CHEWIN_END_OPTION_CHAIN, + + list(CHEWIN_ADD_ITEM, /obj/item/food/spaghetti/boilednoodles), + list(CHEWIN_ADD_ITEM, /obj/item/food/meat/cutlet), + list(CHEWIN_ADD_PRODUCE, /obj/item/food/grown/apple), + list(CHEWIN_ADD_PRODUCE, /obj/item/food/grown/garlic), + list(CHEWIN_ADD_ITEM, /obj/item/food/onion_slice), + list(CHEWIN_ADD_REAGENT, /datum/reagent/consumable/nutriment/soup/teriyaki, 4), + list(CHEWIN_USE_STOVE, J_MED, 20 SECONDS) // Cook on medium for 20 seconds + ) + +/datum/chewin_cooking/recipe/martian_fried_noodles + name = "Martian Fried Noodles" + cooking_container = PAN + food_category = CAT_STOVETOP + product_type = /obj/item/food/salad/martian_fried_noodles + recipe_guide = "Cook ingredients in a pan." + step_builder = list( + + CHEWIN_BEGIN_OPTION_CHAIN, + list(CHEWIN_ADD_ITEM_OPTIONAL, /obj/item/food/butter, base=10, reagent_skip=TRUE), + list(CHEWIN_USE_STOVE_OPTIONAL, J_LO, 10 SECONDS, finish_text = "The butter melts in the pan!"), + CHEWIN_END_OPTION_CHAIN, + + list(CHEWIN_ADD_ITEM, /obj/item/food/spaghetti/boilednoodles), + list(CHEWIN_ADD_ITEM, /obj/item/food/meat/cutlet), + list(CHEWIN_ADD_PRODUCE, /obj/item/food/grown/peanut), + list(CHEWIN_ADD_ITEM, /obj/item/food/onion_slice), + + list(CHEWIN_ADD_REAGENT, /datum/reagent/consumable/soysauce, 3), + list(CHEWIN_USE_STOVE, J_MED, 10 SECONDS), + list(CHEWIN_ADD_REAGENT, /datum/reagent/consumable/red_bay, 3), + + list(CHEWIN_USE_STOVE, J_LO, 10 SECONDS) + ) + + +/datum/chewin_cooking/recipe/simple_fried_noodles + name = "Fried Noodles" + cooking_container = PAN + food_category = CAT_STOVETOP + product_type = /obj/item/food/salad/simple_fried_noodles + recipe_guide = "Cook ingredients in a pan." + step_builder = list( + + CHEWIN_BEGIN_OPTION_CHAIN, + list(CHEWIN_ADD_ITEM_OPTIONAL, /obj/item/food/butter, base=10, reagent_skip=TRUE), + list(CHEWIN_USE_STOVE_OPTIONAL, J_LO, 10 SECONDS, finish_text = "The butter melts in the pan!"), + CHEWIN_END_OPTION_CHAIN, + + list(CHEWIN_ADD_ITEM, /obj/item/food/spaghetti/boilednoodles), + list(CHEWIN_ADD_REAGENT, /datum/reagent/consumable/soysauce, 3), + + CHEWIN_BEGIN_OPTION_CHAIN, + list(CHEWIN_ADD_ITEM_OPTIONAL, /obj/item/food/egg, prod_desc = "With a hint of egg!"), + list(CHEWIN_USE_STOVE_OPTIONAL, J_LO, 10 SECONDS), + CHEWIN_END_OPTION_CHAIN, + + CHEWIN_BEGIN_OPTION_CHAIN, + list(CHEWIN_ADD_ITEM_OPTIONAL, /obj/item/food/onion_slice, prod_desc = "With some onion."), + list(CHEWIN_USE_STOVE_OPTIONAL, J_LO, 5 SECONDS), + CHEWIN_END_OPTION_CHAIN, + + list(CHEWIN_ADD_REAGENT_OPTIONAL, /datum/reagent/consumable/salt, 2, prod_desc = "A dash of salt was added."), + list(CHEWIN_ADD_REAGENT_OPTIONAL, /datum/reagent/consumable/sugar, 4, prod_desc = "A bit of sweetness was added."), + + + CHEWIN_BEGIN_EXCLUSIVE_OPTIONS, + list(CHEWIN_ADD_PRODUCE_OPTIONAL, /obj/item/food/grown/chili, qmod=0.2, reagent_skip=TRUE, prod_desc = "Extra spicy!", food_buff = /datum/status_effect/food/sweaty), + list(CHEWIN_ADD_PRODUCE_OPTIONAL, /obj/item/food/grown/pineapple, qmod=0.2, reagent_skip=TRUE, prod_desc = "Mild and Sweet."), + CHEWIN_END_EXCLUSIVE_OPTIONS, + + list(CHEWIN_USE_STOVE, J_MED, 10 SECONDS), + ) diff --git a/monkestation/code/modules/brewin_and_chewin/chewing/recipes/martian/sambal.dm b/monkestation/code/modules/brewin_and_chewin/chewing/recipes/martian/sambal.dm new file mode 100644 index 000000000000..8028bd25bcd8 --- /dev/null +++ b/monkestation/code/modules/brewin_and_chewin/chewing/recipes/martian/sambal.dm @@ -0,0 +1,12 @@ +/datum/chewin_cooking/recipe/sambal + name = "Sambal" + cooking_container = BOWL + product_type = /obj/item/food/sambal + recipe_guide = "Mix all ingredients in a bowl." + step_builder = list( + list(CHEWIN_ADD_PRODUCE, /obj/item/food/grown/chili), + list(CHEWIN_ADD_PRODUCE, /obj/item/food/grown/garlic), + list(CHEWIN_ADD_PRODUCE, /obj/item/food/grown/onion), + list(CHEWIN_ADD_REAGENT, /datum/reagent/consumable/sugar, 3), + list(CHEWIN_ADD_REAGENT, /datum/reagent/consumable/limejuice, 3) + ) diff --git a/monkestation/code/modules/brewin_and_chewin/chewing/recipes/martian/setagaya_curry.dm b/monkestation/code/modules/brewin_and_chewin/chewing/recipes/martian/setagaya_curry.dm new file mode 100644 index 000000000000..593c316a24f7 --- /dev/null +++ b/monkestation/code/modules/brewin_and_chewin/chewing/recipes/martian/setagaya_curry.dm @@ -0,0 +1,39 @@ +/datum/chewin_cooking/recipe/setagaya_curry + name = "Setagaya curry" + cooking_container = BOWL + product_type = /obj/item/food/salad/setagaya_curry + recipe_guide = "Melt some butter in a bowl, add some rice, vegetables, curry powder and cook." + step_builder = list( + + CHEWIN_BEGIN_OPTION_CHAIN, + list(CHEWIN_ADD_ITEM_OPTIONAL, /obj/item/food/butter, base=10, reagent_skip=TRUE), + list(CHEWIN_USE_STOVE_OPTIONAL, J_LO, 10 SECONDS, finish_text = "The butter melts in the bowl!"), + CHEWIN_END_OPTION_CHAIN, + + list(CHEWIN_ADD_PRODUCE, /obj/item/food/grown/potato, qmod=0.5), + list(CHEWIN_USE_STOVE, J_LO, 5 SECONDS, finish_text = "The potatoes soften."), + + list(CHEWIN_ADD_PRODUCE, /obj/item/food/grown/carrot, qmod=0.5), + list(CHEWIN_ADD_PRODUCE, /obj/item/food/grown/onion, qmod=0.5), + list(CHEWIN_USE_STOVE, J_LO, 5 SECONDS, finish_text = "The vegetables soften."), + + list(CHEWIN_ADD_ITEM, /obj/item/food/boiledrice, qmod=0.5), + list(CHEWIN_ADD_PRODUCE, /obj/item/food/grown/apple, qmod=0.5), + list(CHEWIN_ADD_REAGENT_CHOICE, list(/datum/reagent/consumable/honey = 3, /datum/reagent/consumable/sugar = 1), 3, base=4), + list(CHEWIN_ADD_REAGENT, /datum/reagent/consumable/ketchup, 3, base=3), + + list(CHEWIN_ADD_ITEM_OPTIONAL, /obj/item/food/chocolatebar, qmod=2), + list(CHEWIN_ADD_REAGENT_OPTIONAL, /datum/reagent/consumable/coffee, 3, base=3), + list(CHEWIN_ADD_REAGENT_OPTIONAL, /datum/reagent/consumable/ethanol/wine, 3, base=3), + + list(CHEWIN_ADD_REAGENT, /datum/reagent/consumable/curry_powder, 3, base=3), + + + CHEWIN_BEGIN_EXCLUSIVE_OPTIONS, + list(CHEWIN_ADD_PRODUCE_OPTIONAL, /obj/item/food/grown/chili, qmod=0.2, reagent_skip=TRUE, prod_desc = "Extra spicy!", food_buff = /datum/status_effect/food/sweaty), + list(CHEWIN_ADD_PRODUCE_OPTIONAL, /obj/item/food/grown/pineapple, qmod=0.2, reagent_skip=TRUE, prod_desc = "Mild and Sweet."), + CHEWIN_END_EXCLUSIVE_OPTIONS, + + list(CHEWIN_ADD_ITEM, /obj/item/food/meat/slab, qmod=0.5), + list(CHEWIN_USE_STOVE, J_LO, 10 SECONDS), + ) diff --git a/monkestation/code/modules/brewin_and_chewin/chewing/recipes/martian/surimi.dm b/monkestation/code/modules/brewin_and_chewin/chewing/recipes/martian/surimi.dm new file mode 100644 index 000000000000..6271eab85dd1 --- /dev/null +++ b/monkestation/code/modules/brewin_and_chewin/chewing/recipes/martian/surimi.dm @@ -0,0 +1,23 @@ +/datum/chewin_cooking/recipe/surimi + cooking_container = CUTTING_BOARD + product_type = /obj/item/food/surimi + recipe_guide = "Put raw fish onto a cutting board and slice." + step_builder = list( + list(CHEWIN_ADD_ITEM, /obj/item/food/fishmeat, qmod=0.5), + list(CHEWIN_USE_TOOL, TOOL_KNIFE, 5) + ) + +/datum/chewin_cooking/recipe/surimi_bulk + name = "Surimi (5 Servings)" + cooking_container = CUTTING_BOARD + product_type = /obj/item/food/surimi + recipe_guide = "Put raw fish onto a cutting board and slice." + product_count = 5 + step_builder = list( + list(CHEWIN_ADD_ITEM, /obj/item/food/fishmeat, qmod=0.5), + list(CHEWIN_ADD_ITEM, /obj/item/food/fishmeat, qmod=0.5), + list(CHEWIN_ADD_ITEM, /obj/item/food/fishmeat, qmod=0.5), + list(CHEWIN_ADD_ITEM, /obj/item/food/fishmeat, qmod=0.5), + list(CHEWIN_ADD_ITEM, /obj/item/food/fishmeat, qmod=0.5), + list(CHEWIN_USE_TOOL, TOOL_KNIFE, 5) + ) diff --git a/monkestation/code/modules/brewin_and_chewin/chewing/recipes/martian/ti_hoeh_hoe.dm b/monkestation/code/modules/brewin_and_chewin/chewing/recipes/martian/ti_hoeh_hoe.dm new file mode 100644 index 000000000000..7d06ebf43b69 --- /dev/null +++ b/monkestation/code/modules/brewin_and_chewin/chewing/recipes/martian/ti_hoeh_hoe.dm @@ -0,0 +1,17 @@ +/datum/chewin_cooking/recipe/ti_hoeh_koe + cooking_container = BOWL + product_type = /obj/item/food/kebab/ti_hoeh_koe + recipe_guide = "Mix Rice, salted peanuts, herbs and optionally blood in a bowl." + step_builder = list( + list(CHEWIN_ADD_ITEM, /obj/item/food/boiledrice, qmod=0.5), + + CHEWIN_BEGIN_EXCLUSIVE_OPTIONS, + list(CHEWIN_ADD_PRODUCE_OPTIONAL, /obj/item/food/grown/chili, qmod=0.2, reagent_skip=TRUE, prod_desc = "Extra spicy!", food_buff = /datum/status_effect/food/sweaty), + list(CHEWIN_ADD_PRODUCE_OPTIONAL, /obj/item/food/grown/pineapple, qmod=0.2, reagent_skip=TRUE, prod_desc = "Mild and Sweet."), + CHEWIN_END_EXCLUSIVE_OPTIONS, + + list(CHEWIN_ADD_REAGENT_OPTIONAL, /datum/reagent/blood, 5, base=3), + + list(CHEWIN_ADD_PRODUCE, /obj/item/food/grown/herbs, qmod=0.5), + list(CHEWIN_ADD_ITEM, /obj/item/food/peanuts/salted, qmod=0.5), + ) diff --git a/monkestation/code/modules/brewin_and_chewin/condiment_reagents.dm b/monkestation/code/modules/brewin_and_chewin/condiment_reagents.dm new file mode 100644 index 000000000000..41c238162187 --- /dev/null +++ b/monkestation/code/modules/brewin_and_chewin/condiment_reagents.dm @@ -0,0 +1,53 @@ +/datum/reagent + var/condiment_overlay = null + var/overlay_colored = FALSE + +/datum/reagent/consumable/flour + condiment_overlay = "flour" + +/datum/reagent/consumable/mayonnaise + condiment_overlay = "mayo" + +/datum/reagent/consumable/salt + condiment_overlay = "salt" + +/datum/reagent/consumable/blackpepper + condiment_overlay = "pepper" + +/datum/reagent/consumable/soysauce + condiment_overlay = "soysauce" + +/datum/reagent/consumable/ketchup + condiment_overlay = "ketchup" + +/datum/reagent/consumable/capsaicin + condiment_overlay = "hotsauce" + +/datum/reagent/consumable/bbqsauce + condiment_overlay = "caramel" + +/datum/reagent/consumable/caramel + condiment_overlay = "caramel" + +/datum/reagent/consumable/whipped_cream + condiment_overlay = "cream" + +/datum/reagent/consumable/sprinkles + condiment_overlay = "sprinkles" + +/datum/reagent/consumable/sugar + condiment_overlay = "sugar" + +/datum/reagent/consumable/vinegar + condiment_overlay = "vinegar" + +/datum/reagent/consumable/honey + condiment_overlay = "honey" + overlay_colored = TRUE + +/datum/reagent/blood + condiment_overlay = "honey" + overlay_colored = TRUE + +/datum/reagent/consumable/gravy + condiment_overlay = "gravy" diff --git a/monkestation/code/modules/brewin_and_chewin/icons/condiment_overlays.dmi b/monkestation/code/modules/brewin_and_chewin/icons/condiment_overlays.dmi new file mode 100644 index 000000000000..5aa85a476d8c Binary files /dev/null and b/monkestation/code/modules/brewin_and_chewin/icons/condiment_overlays.dmi differ diff --git a/monkestation/code/modules/can_spessmen_feel_pain/pain/_base.dm b/monkestation/code/modules/can_spessmen_feel_pain/pain/_base.dm index 43f917a3340d..3f6d2d8cb8bd 100644 --- a/monkestation/code/modules/can_spessmen_feel_pain/pain/_base.dm +++ b/monkestation/code/modules/can_spessmen_feel_pain/pain/_base.dm @@ -558,14 +558,14 @@ shock_mod *= 2 // stacks with above var/curr_pain = get_total_pain() if(curr_pain < PAIN_LIMB_MAX * 0.5) - parent.adjust_pain_shock(-3 * seconds_per_tick) // staying out of pain for a while gives you a small resiliency to shock (~1 minute) + parent.adjust_pain_shock(-24 * seconds_per_tick) // staying out of pain for a while gives you a small resiliency to shock (~1 minute) else if(curr_pain < PAIN_LIMB_MAX) - parent.adjust_pain_shock(-1 * seconds_per_tick) + parent.adjust_pain_shock(-6 * seconds_per_tick) else if(curr_pain < PAIN_LIMB_MAX * 2) - if(shock_buildup <= 30) + if(shock_buildup <= 120) parent.adjust_pain_shock(0.5 * shock_mod * seconds_per_tick) else if(curr_pain < PAIN_LIMB_MAX * 4) - if(shock_buildup <= 65) + if(shock_buildup <= 195) parent.adjust_pain_shock(1 * shock_mod * seconds_per_tick) if(SPT_PROB(2, seconds_per_tick)) do_pain_message(span_userdanger(pick("It hurts."))) @@ -574,7 +574,7 @@ if(SPT_PROB(2, seconds_per_tick)) do_pain_message(span_userdanger(pick("Stop the pain!", "It hurts!"))) - switch(shock_buildup) + switch(shock_buildup * 0.25) if(10 to 60) parent.adjust_bodytemperature(-5 * seconds_per_tick, min_temp = parent.bodytemp_cold_damage_limit + 5) if(60 to 120) @@ -592,7 +592,7 @@ parent.pain_emote("shiver", 3 SECONDS) parent.adjust_bodytemperature(-20 * seconds_per_tick, min_temp = parent.bodytemp_cold_damage_limit - 20) - if((shock_buildup >= 20 || curr_pain >= PAIN_LIMB_MAX) && !just_cant_feel_anything) + if((shock_buildup >= 60 || curr_pain >= PAIN_LIMB_MAX) && !just_cant_feel_anything) if(SPT_PROB(min(curr_pain / 5, 24), seconds_per_tick)) parent.adjust_jitter_up_to(5 SECONDS * pain_modifier, 30 SECONDS) if(SPT_PROB(min(curr_pain / 10, 12), seconds_per_tick)) @@ -600,22 +600,22 @@ if(SPT_PROB(min(curr_pain / 20, 6), seconds_per_tick)) // pain applies its own stutter parent.adjust_stutter_up_to(5 SECONDS * pain_modifier, 30 SECONDS) - if(shock_buildup >= 40 && parent.stat != HARD_CRIT) + if(shock_buildup >= 120 && parent.stat != HARD_CRIT) if(SPT_PROB(shock_buildup / 60, seconds_per_tick)) //parent.vomit(VOMIT_CATEGORY_KNOCKDOWN, lost_nutrition = 7.5) parent.Knockdown(rand(3 SECONDS, 6 SECONDS)) - if(shock_buildup >= 60 || curr_pain >= PAIN_CHEST_MAX) + if(shock_buildup >= 180 || curr_pain >= PAIN_CHEST_MAX) if(SPT_PROB(shock_buildup / 20, seconds_per_tick) && !parent.IsParalyzed() && parent.Paralyze(rand(2 SECONDS, 8 SECONDS))) parent.visible_message( span_warning("[parent]'s body falls limp!"), span_warning("Your body [just_cant_feel_anything ? "goes" : "falls"] limp!"), ) - if(SPT_PROB(shock_buildup / 20, seconds_per_tick)) + if(SPT_PROB(shock_buildup / 60, seconds_per_tick)) parent.adjust_confusion_up_to(8 SECONDS * pain_modifier, 24 SECONDS) - if((shock_buildup >= 120 || curr_pain >= PAIN_CHEST_MAX * 2) && SPT_PROB(shock_buildup / 40, seconds_per_tick) && parent.stat != HARD_CRIT) + if((shock_buildup >= 360 || curr_pain >= PAIN_CHEST_MAX * 2) && SPT_PROB(shock_buildup / 120, seconds_per_tick) && parent.stat != HARD_CRIT) if(!parent.IsUnconscious() && parent.Unconscious(rand(4 SECONDS, 16 SECONDS))) parent.visible_message( span_warning("[parent] falls unconscious!"), @@ -624,12 +624,12 @@ ) // This is death - if(shock_buildup >= 120 && !parent.undergoing_cardiac_arrest()) + if(shock_buildup >= 360 && !parent.undergoing_cardiac_arrest()) var/heart_attack_prob = 0 if(parent.health <= parent.maxHealth * -1) heart_attack_prob += abs(parent.health + parent.maxHealth) * 0.1 - if(shock_buildup >= 180) - heart_attack_prob += (shock_buildup * 0.1) + if(shock_buildup >= 540) + heart_attack_prob += (shock_buildup * 0.1 * 0.25) if(SPT_PROB(min(20, heart_attack_prob), seconds_per_tick)) if(!COOLDOWN_FINISHED(src, time_since_last_heart_attack_counter)) parent.losebreath += 1 @@ -658,7 +658,7 @@ heart_attack_counter = 0 // This is where "soft crit" is now - if(shock_buildup >= 90) + if(shock_buildup >= 270) if(!HAS_TRAIT_FROM(parent, TRAIT_LABOURED_BREATHING, PAINSHOCK)) ADD_TRAIT(parent, TRAIT_LABOURED_BREATHING, PAINSHOCK) set_pain_modifier(PAINSHOCK, 1.2) @@ -672,7 +672,7 @@ parent.remove_traits(list(TRAIT_LABOURED_BREATHING), PAINSHOCK) // This is "pain crit", it's where stamcrit has moved and is also applied by extreme shock - if(curr_pain >= PAIN_LIMB_MAX * 3 || shock_buildup >= 150) + if(curr_pain >= PAIN_LIMB_MAX * 3 || shock_buildup >= 450) parent.adjust_jitter_up_to(5 SECONDS * pain_modifier, 60 SECONDS) if(!HAS_TRAIT_FROM(parent, TRAIT_LABOURED_BREATHING, PAINCRIT)) var/is_standing = parent.body_position == STANDING_UP diff --git a/monkestation/code/modules/cargo/crates/imports.dm b/monkestation/code/modules/cargo/crates/imports.dm index 54f566fb29bc..e7ccc7360763 100644 --- a/monkestation/code/modules/cargo/crates/imports.dm +++ b/monkestation/code/modules/cargo/crates/imports.dm @@ -55,7 +55,7 @@ access_view = ACCESS_ARMORY crate_type = /obj/structure/closet/crate/secure/weapon - +// MONKESTATION ADDITION START /datum/supply_pack/imports/Lrevolvercrate name = "Long Revolver Crate" desc = "We got these old revolvers from a unnamed man, enjoy them" @@ -83,3 +83,4 @@ access = ACCESS_ARMORY access_view = ACCESS_ARMORY crate_type = /obj/structure/closet/crate/secure/weapon +// MONKESTATION ADDITION END diff --git a/monkestation/code/modules/cargo/mail/mail_token.dm b/monkestation/code/modules/cargo/mail/mail_token.dm index 21a24ebbbe6d..bdf0ac0ee6b0 100644 --- a/monkestation/code/modules/cargo/mail/mail_token.dm +++ b/monkestation/code/modules/cargo/mail/mail_token.dm @@ -1,7 +1,6 @@ /obj/item/cargo/mail_token name = "mail token" - desc = "A plastic mail token. Part of a new program to get Nanotrasen cargo employees to deliver mail.\ - Can be exported to Central Command for an increase to the budget. The back of the token seems to have barcode on it for handling tips." + desc = "A plastic mail token. Part of a new program to get Nanotrasen cargo employees to deliver mail. It can be exported to Central Command for an increase to the budget. The back of the token seems to have barcode on it for handling tips." icon = 'monkestation/code/modules/cargo/mail/mail.dmi' w_class = WEIGHT_CLASS_TINY icon_state = "mailtoken-1" @@ -19,3 +18,18 @@ unit_name = "mail token" k_elasticity = 0 export_types = list(/obj/item/cargo/mail_token) + +/obj/item/storage/bag/mail_token_catcher + name = "mail token tray" + desc = "A tray for holding mail tokens." + icon = 'icons/obj/bureaucracy.dmi' + icon_state = "paper_bin0" + +/obj/item/storage/bag/mail_token_catcher/Initialize(mapload) + . = ..() + atom_storage.max_total_storage = 200 + atom_storage.max_slots = 7 + atom_storage.numerical_stacking = FALSE + atom_storage.set_holdable(list( + /obj/item/cargo/mail_token, + )) diff --git a/monkestation/code/modules/cargoborg/code/cargo_module.dm b/monkestation/code/modules/cargoborg/code/cargo_module.dm index c49e04213b15..2e1d17382621 100644 --- a/monkestation/code/modules/cargoborg/code/cargo_module.dm +++ b/monkestation/code/modules/cargoborg/code/cargo_module.dm @@ -14,6 +14,7 @@ /obj/item/assembly/flash/cyborg, /obj/item/borg/hydraulic_clamp, /obj/item/borg/hydraulic_clamp/mail, + /obj/item/storage/bag/mail_token_catcher, //monkestation edit /obj/item/hand_labeler/cyborg, /obj/item/dest_tagger, /obj/item/crowbar/cyborg, diff --git a/monkestation/code/modules/client/preferences/alt_jobs/titles.dm b/monkestation/code/modules/client/preferences/alt_jobs/titles.dm index 8cbc34b90559..f55ee412442d 100644 --- a/monkestation/code/modules/client/preferences/alt_jobs/titles.dm +++ b/monkestation/code/modules/client/preferences/alt_jobs/titles.dm @@ -86,6 +86,7 @@ "Commanding Officer", "Site Manager", "Criminally Underpaid Babysitter", + "Princess", ) /datum/job/cargo_technician diff --git a/monkestation/code/modules/client/preferences/body.dm b/monkestation/code/modules/client/preferences/body.dm index cc58626e7b5c..fa46983e55c7 100644 --- a/monkestation/code/modules/client/preferences/body.dm +++ b/monkestation/code/modules/client/preferences/body.dm @@ -2,6 +2,7 @@ savefile_key = "body_height" savefile_identifier = PREFERENCE_CHARACTER category = PREFERENCE_CATEGORY_SECONDARY_FEATURES + priority = PREFERENCE_PRIORITY_BODY_TYPE //done after species /datum/preference/choiced/body_height/init_possible_values() return assoc_to_keys(GLOB.body_heights) diff --git a/monkestation/code/modules/client/preferences/species_features/monkey.dm b/monkestation/code/modules/client/preferences/species_features/monkey.dm new file mode 100644 index 000000000000..38722a410c4d --- /dev/null +++ b/monkestation/code/modules/client/preferences/species_features/monkey.dm @@ -0,0 +1,44 @@ +/datum/preference/color/fur_color + category = PREFERENCE_CATEGORY_SECONDARY_FEATURES + savefile_identifier = PREFERENCE_CHARACTER + savefile_key = "fur" + relevant_inherent_trait = TRAIT_FUR_COLORS + +/datum/preference/color/fur_color/create_default_value() + return COLOR_MONKEY_BROWN + +/datum/preference/choiced/monkey_tail + main_feature_name = "Monkey Tail" + savefile_key = "feature_monkey_tail" + savefile_identifier = PREFERENCE_CHARACTER + category = PREFERENCE_CATEGORY_FEATURES + relevant_external_organ = /obj/item/organ/external/tail/monkey + should_generate_icons = TRUE + +/datum/preference/choiced/monkey_tail/init_possible_values() + var/list/values = list() + + var/icon/monkey_chest = icon('monkestation/icons/mob/species/monkey/bodyparts.dmi', "monkey_chest") + + for (var/tail_name in GLOB.tails_list_monkey) + var/datum/sprite_accessory/tails/monkey/tail = GLOB.tails_list_monkey[tail_name] + if(tail.locked) + continue + + var/icon/final_icon = icon(monkey_chest) + if(tail.icon_state != "none") + var/icon/tail_icon = icon(tail.icon, "m_tail_monkey_[tail.icon_state]_FRONT", NORTH) + final_icon.Blend(tail_icon, ICON_OVERLAY) + final_icon.Crop(8, 8, 30, 30) + final_icon.Scale(32, 32) + values[tail.name] = final_icon + + return values + +/datum/preference/choiced/monkey_tail/apply_to_human(mob/living/carbon/human/target, value) + target.dna.features["tail_monkey"] = value + +/datum/preference/choiced/monkey_tail/create_default_value() + var/datum/sprite_accessory/tails/monkey/tail = /datum/sprite_accessory/tails/monkey/default + return initial(tail.name) + diff --git a/monkestation/code/modules/client/preferences/species_features/simians.dm b/monkestation/code/modules/client/preferences/species_features/simians.dm deleted file mode 100644 index 39f63cf97aec..000000000000 --- a/monkestation/code/modules/client/preferences/species_features/simians.dm +++ /dev/null @@ -1,35 +0,0 @@ -/datum/preference/color/fur_color - category = PREFERENCE_CATEGORY_SECONDARY_FEATURES - savefile_identifier = PREFERENCE_CHARACTER - savefile_key = "fur" - relevant_inherent_trait = TRAIT_FUR_COLORS - -/datum/preference/choiced/simian_tail - savefile_key = "feature_tail_monkey" - savefile_identifier = PREFERENCE_CHARACTER - category = PREFERENCE_CATEGORY_FEATURES - main_feature_name = "Simian Tail" - should_generate_icons = TRUE - -/datum/preference/choiced/simian_tail/init_possible_values() - var/list/values = list() - - var/icon/simian_chest = icon('monkestation/icons/mob/species/simian/bodyparts.dmi', "simian_chest") - - for (var/tail_name in GLOB.tails_list_monkey) - var/datum/sprite_accessory/tail = GLOB.tails_list_monkey[tail_name] - if(tail.locked) - continue - - var/icon/final_icon = new(simian_chest) - final_icon.Blend(icon(tail.icon, "m_tail_[tail.icon_state]_FRONT"), ICON_OVERLAY) - final_icon.Crop(10, 8, 22, 23) - final_icon.Scale(26, 32) - final_icon.Crop(-2, 1, 29, 32) - - values[tail.name] = final_icon - - return values - -/datum/preference/choiced/simian_tail/apply_to_human(mob/living/carbon/human/target, value) - target.dna.features["tail_monkey"] = value diff --git a/monkestation/code/modules/clothing/masks/gas_filter.dm b/monkestation/code/modules/clothing/masks/gas_filter.dm new file mode 100644 index 000000000000..b029569f9c3c --- /dev/null +++ b/monkestation/code/modules/clothing/masks/gas_filter.dm @@ -0,0 +1,41 @@ +/obj/item/gas_filter/clown + name = "'enhanced' gas filter" + desc = "A piece of filtering cloth to be used with atmospheric gas masks and emergency gas masks. This one uses a highly guarded formula to let small amounts of certain gasses through." + icon_state = "gas_atmos_filter_clown" + + ///List of gases with high filter priority + high_filtering_gases = list( + /datum/gas/plasma, + /datum/gas/carbon_dioxide + ) + ///List of gases with medium filter priority + mid_filtering_gases = list( + /datum/gas/nitrium, + /datum/gas/freon, + /datum/gas/hypernoblium + ) + + +/obj/item/gas_filter/clown/reduce_filter_status(datum/gas_mixture/breath) + breath = ..() + var/danger_points = 0 + var/const/HIGH_FILTERING_RATIO = 0.001 + if (/datum/gas/nitrous_oxide in breath.gases) + var/gas_id = /datum/gas/nitrous_oxide + if(breath.get_breath_partial_pressure(breath.gases[gas_id][MOLES]) >= 1) + breath.gases[gas_id][MOLES] = max( + breath.gases[gas_id][MOLES] - filter_strength_high * filter_efficiency * HIGH_FILTERING_RATIO, + (1 * BREATH_VOLUME) / (R_IDEAL_GAS_EQUATION * breath.temperature) + ) + danger_points += 0.5 + if (/datum/gas/bz in breath.gases) + var/gas_id = /datum/gas/bz + if(breath.get_breath_partial_pressure(breath.gases[gas_id][MOLES]) >= 2) + breath.gases[gas_id][MOLES] = max( + breath.gases[gas_id][MOLES] - filter_strength_mid * filter_efficiency * HIGH_FILTERING_RATIO, + (2 * BREATH_VOLUME) / (R_IDEAL_GAS_EQUATION * breath.temperature) + ) + danger_points += 0.75 + + filter_status = max(filter_status - danger_points, 0) + return breath diff --git a/monkestation/code/modules/clothing/masks/gasmask.dm b/monkestation/code/modules/clothing/masks/gasmask.dm index 651ffb2d6454..31b8b65054f8 100644 --- a/monkestation/code/modules/clothing/masks/gasmask.dm +++ b/monkestation/code/modules/clothing/masks/gasmask.dm @@ -1,3 +1,6 @@ +/obj/item/clothing/mask/gas/clown_hat + starting_filter_type = /obj/item/gas_filter/clown + /obj/item/clothing/mask/gas/clown_hat/yellow name = "yellow clown wig and mask" desc = "A true prankster's facial attire. But yellow! A clown is incomplete without his wig and mask." diff --git a/monkestation/code/modules/clothing/neck/_neck.dm b/monkestation/code/modules/clothing/neck/_neck.dm new file mode 100644 index 000000000000..4363ca12eee5 --- /dev/null +++ b/monkestation/code/modules/clothing/neck/_neck.dm @@ -0,0 +1,43 @@ +/obj/item/clothing/neck + var/cover_accessories = TRUE + +/obj/item/clothing/neck/Initialize(mapload) + . = ..() + register_context() + +/obj/item/clothing/neck/alt_click_secondary(mob/user) + . = ..() + if(.) + return + if(!can_use(user)) + return + cover_accessories = !cover_accessories + if(cover_accessories) + to_chat(usr, span_notice("You adjust [src] to cover accessories.")) + else + to_chat(usr, span_notice("You adjust [src] to show accessories.")) + + user.update_clothing(ITEM_SLOT_NECK) + update_appearance() + +/obj/item/clothing/neck/add_context(atom/source, list/context, obj/item/held_item, mob/living/user) + . = ..() + context[SCREENTIP_CONTEXT_ALT_RMB] = "[cover_accessories ? "Uncover" : "Cover"] accessories" + return CONTEXTUAL_SCREENTIP_SET + +/obj/item/clothing/neck/worn_overlays(mutable_appearance/standing, isinhands = FALSE) + . = ..() + if(isinhands) + return + if(cover_accessories) + return + var/mob/living/carbon/human/wearer = loc + if(!ishuman(wearer) || !wearer.w_uniform) + return + var/obj/item/clothing/under/undershirt = wearer.w_uniform + if(!istype(undershirt) || !LAZYLEN(undershirt.attached_accessories)) + return + + var/obj/item/clothing/accessory/displayed = undershirt.attached_accessories[1] + if(displayed.above_suit) + . += undershirt.accessory_overlay diff --git a/monkestation/code/modules/clothing/suits/coats.dm b/monkestation/code/modules/clothing/suits/coats.dm index b5101c8e9d85..9c8179dd9033 100644 --- a/monkestation/code/modules/clothing/suits/coats.dm +++ b/monkestation/code/modules/clothing/suits/coats.dm @@ -48,6 +48,20 @@ worn_icon = 'monkestation/icons/mob/clothing/head.dmi' icon_state = "winterhood_narsie" +/obj/item/clothing/suit/hooded/wintercoat/engineering/signal_tech + name = "engineering winter coat" + desc = "A surprisingly heavy yellow winter coat with reflective green stripes. It has a small antennae for its zipper tab, and the inside layer is covered with a radiation-resistant silver-nylon blend. Because heat insulation is clearly not a priority." + icon = 'monkestation/icons/obj/clothing/suits.dmi' + worn_icon = 'monkestation/icons/mob/clothing/suit.dmi' + icon_state = "coat_signal_tech" + hoodtype = /obj/item/clothing/head/hooded/winterhood/engineering/signal_tech + +/obj/item/clothing/head/hooded/winterhood/engineering/signal_tech + desc = "A yellow winter coat hood. Definitely not enough to keep you warm near the telecommunications servers." + icon = 'monkestation/icons/obj/clothing/hats.dmi' + worn_icon = 'monkestation/icons/mob/clothing/head.dmi' + icon_state = "winterhood_signal_tech" + // End Of Winter Coat Varients // Costumes diff --git a/monkestation/code/modules/clothing/under/accessories/badges.dm b/monkestation/code/modules/clothing/under/accessories/badges.dm new file mode 100644 index 000000000000..a486e4b3b9d8 --- /dev/null +++ b/monkestation/code/modules/clothing/under/accessories/badges.dm @@ -0,0 +1,6 @@ +/obj/item/clothing/accessory/pride/accessory_equipped(obj/item/clothing/under/clothes, mob/living/user) + if(HAS_TRAIT(user, TRAIT_PRIDE_PIN)) + user.add_mood_event("pride_pin", /datum/mood_event/pride_pin) + +/obj/item/clothing/accessory/pride/accessory_dropped(obj/item/clothing/under/clothes, mob/living/user) + user.clear_mood_event("pride_pin") diff --git a/monkestation/code/modules/clothing/under/jobs/engineering.dm b/monkestation/code/modules/clothing/under/jobs/engineering.dm index cd557499961d..62e85a4a886e 100644 --- a/monkestation/code/modules/clothing/under/jobs/engineering.dm +++ b/monkestation/code/modules/clothing/under/jobs/engineering.dm @@ -1,6 +1,6 @@ /obj/item/clothing/under/rank/engineering/signal_tech name = "signal technician's jumpsuit" - desc = "It's an orange high visibility jumpsuit with green strips worn by signal technicians. Made from fire resistant materials." + desc = "It's an orange high visibility jumpsuit with green stripes worn by signal technicians. Made from fire resistant materials." icon = 'monkestation/icons/obj/clothing/uniforms.dmi' worn_icon = 'monkestation/icons/mob/clothing/uniform.dmi' icon_state = "signal_tech" diff --git a/monkestation/code/modules/cybernetics/augments/leg_augments/traits.dm b/monkestation/code/modules/cybernetics/augments/leg_augments/traits.dm index 267fb48e5aab..14a713961bd0 100644 --- a/monkestation/code/modules/cybernetics/augments/leg_augments/traits.dm +++ b/monkestation/code/modules/cybernetics/augments/leg_augments/traits.dm @@ -4,6 +4,9 @@ encode_info = AUGMENT_NT_LOWLEVEL double_legged = TRUE +/obj/item/organ/internal/cyberimp/leg/table_glider/l + zone = BODY_ZONE_L_LEG + /obj/item/organ/internal/cyberimp/leg/table_glider/update_implants() if(!check_compatibility()) REMOVE_TRAIT(owner,TRAIT_FAST_CLIMBER,type) @@ -42,6 +45,9 @@ REMOVE_TRAIT(owner,TRAIT_SHOVE_RESIST,type) return ..() +/obj/item/organ/internal/cyberimp/leg/shove_resist/l + zone = BODY_ZONE_L_LEG + /obj/item/organ/internal/cyberimp/leg/accelerator name = "P.R.Y.Z.H.O.K. accelerator system" desc = "Russian implant that allows you to tackle people. You need to implant this in both of your legs to make it work." @@ -57,3 +63,35 @@ if(tackler) qdel(tackler) return ..() + +/obj/item/organ/internal/cyberimp/leg/accelerator/l + zone = BODY_ZONE_L_LEG + +/obj/item/organ/internal/cyberimp/leg/sprinter + name = "Vacuole ligament system" + desc = "Mechicanical servos in ones leg that increases their natural stride. Popular amongst parkour enthusiasts. You need to implant this in both of your legs to make it work." + encode_info = AUGMENT_NT_LOWLEVEL + double_legged = TRUE + +/obj/item/organ/internal/cyberimp/leg/sprinter/update_implants() + if(!check_compatibility()) + REMOVE_TRAIT(owner,TRAIT_FREERUNNING,type) + REMOVE_TRAIT(owner,TRAIT_LIGHT_STEP,type) + return + ADD_TRAIT(owner,TRAIT_FREERUNNING,type) + ADD_TRAIT(owner,TRAIT_LIGHT_STEP,type) + +/obj/item/organ/internal/cyberimp/leg/sprinter/on_full_insert(mob/living/carbon/M, special, drop_if_replaced) + . = ..() + if(!check_compatibility()) + return + ADD_TRAIT(owner,TRAIT_FREERUNNING,type) + ADD_TRAIT(owner,TRAIT_LIGHT_STEP,type) + +/obj/item/organ/internal/cyberimp/leg/sprinter/Remove(mob/living/carbon/M, special) + REMOVE_TRAIT(owner,TRAIT_FREERUNNING,type) + REMOVE_TRAIT(owner,TRAIT_LIGHT_STEP,type) + return ..() + +/obj/item/organ/internal/cyberimp/leg/sprinter/l + zone = BODY_ZONE_L_LEG diff --git a/monkestation/code/modules/cybernetics/elements/dancing.dm b/monkestation/code/modules/cybernetics/elements/dancing.dm index b6244612c3b0..52859d8b1ea1 100644 --- a/monkestation/code/modules/cybernetics/elements/dancing.dm +++ b/monkestation/code/modules/cybernetics/elements/dancing.dm @@ -135,10 +135,11 @@ final_pixel_y += living_target.body_position_pixel_y_offset animate(target, pixel_y = final_pixel_y, time = 0.5 SECONDS) -/datum/dance/head_spin/trigger_dance(mob/living/target) +/datum/dance/head_spin/trigger_dance(mob/living/target, start=TRUE) ADD_TRAIT(target, TRAIT_IMMOBILIZED, type) - animate(target, transform = matrix(180, MATRIX_ROTATE), time = 1, loop = 0) var/matrix/initial_matrix = matrix(target.transform) + if(start) + animate(target, transform = initial_matrix * matrix(180, MATRIX_ROTATE), time = 1, loop = 0) for (var/i in 1 to 60) if (!target) return @@ -177,7 +178,7 @@ target.lying_fix() /datum/dance/head_spin/proc/restart_dance(mob/target) - INVOKE_ASYNC(src, PROC_REF(trigger_dance), target) + INVOKE_ASYNC(src, PROC_REF(trigger_dance), target, FALSE) /datum/dance/head_spin/end_dance(mob/target) continues = FALSE diff --git a/monkestation/code/modules/datums/mood_events/generic_negative_events.dm b/monkestation/code/modules/datums/mood_events/generic_negative_events.dm index 2179f4d7283f..b540eee8c212 100644 --- a/monkestation/code/modules/datums/mood_events/generic_negative_events.dm +++ b/monkestation/code/modules/datums/mood_events/generic_negative_events.dm @@ -4,3 +4,7 @@ /datum/mood_event/nanite_sadness/add_effects(message) description = "+++++++[message]+++++++" + +/datum/mood_event/superfart_armed + description = "MUST... FART..." + mood_change = -20 diff --git a/monkestation/code/modules/datums/mood_events/generic_positive_events.dm b/monkestation/code/modules/datums/mood_events/generic_positive_events.dm index 37f39c486364..ffacccbb800e 100644 --- a/monkestation/code/modules/datums/mood_events/generic_positive_events.dm +++ b/monkestation/code/modules/datums/mood_events/generic_positive_events.dm @@ -9,3 +9,12 @@ description = "Glory to the hunt." mood_change = 10 hidden = TRUE + +/datum/mood_event/pride_pin + description = "I love showing off my pride pin!" + mood_change = 1 + +/datum/mood_event/jazzy + description = "Oooh, jazzy!" + mood_change = 2 + timeout = 1 MINUTE diff --git a/monkestation/code/modules/donator/code/datum/loadout.dm b/monkestation/code/modules/donator/code/datum/loadout.dm index 4a8816bd2ccd..e17aa81da34d 100644 --- a/monkestation/code/modules/donator/code/datum/loadout.dm +++ b/monkestation/code/modules/donator/code/datum/loadout.dm @@ -1,23 +1,23 @@ //assorted plushes -/datum/loadout_item/toys/pim +/datum/loadout_item/plushies/pim name = "Pim Plush" item_path = /obj/item/toy/plush/pim donator_only = TRUE requires_purchase = FALSE -/datum/loadout_item/toys/charlie +/datum/loadout_item/plushies/charlie name = "Charlie Plush" item_path = /obj/item/toy/plush/charlie donator_only = TRUE requires_purchase = FALSE -/datum/loadout_item/toys/glep +/datum/loadout_item/plushies/glep name = "Glep Plush" item_path = /obj/item/toy/plush/glep donator_only = TRUE requires_purchase = FALSE -/datum/loadout_item/toys/mr_frog +/datum/loadout_item/plushies/mr_frog name = "Mr. Frog Plush" item_path = /obj/item/toy/plush/mr_frog donator_only = TRUE @@ -103,7 +103,7 @@ donator_only = TRUE requires_purchase = FALSE -/datum/loadout_item/toys/hotdog_plush +/datum/loadout_item/plushies/hotdog_plush name = "Hotdog Plush" item_path = /obj/item/toy/plush/hotdog donator_only = TRUE @@ -163,7 +163,7 @@ donator_only = TRUE requires_purchase = FALSE -/datum/loadout_item/toys/seam_plush +/datum/loadout_item/plushies/seam_plush name = "Seam Plush" item_path = /obj/item/toy/plush/seam donator_only = TRUE @@ -184,7 +184,7 @@ requires_purchase = FALSE //sammi -/datum/loadout_item/toys/puck_plush +/datum/loadout_item/plushies/puck_plush name = "Puck Plush" item_path = /obj/item/toy/plush/puck donator_only = TRUE @@ -201,7 +201,7 @@ //Random -/datum/loadout_item/toys/spider_plush +/datum/loadout_item/plushies/spider_plush name = "Spider Plush" item_path = /obj/item/toy/plush/spider donator_only = TRUE @@ -246,7 +246,7 @@ donator_only = TRUE requires_purchase = FALSE -/datum/loadout_item/toys/puppycat +/datum/loadout_item/plushies/puppycat name = "Puppycat Plush" item_path = /obj/item/toy/plush/puppycat donator_only = TRUE @@ -291,7 +291,7 @@ item_path = /obj/item/effect_granter/donator/plant_crab requires_purchase = FALSE -/datum/loadout_item/toys/liefflos +/datum/loadout_item/plushies/liefflos name = "Lief Flos Plush" item_path = /obj/item/toy/plush/liefflos donator_only = TRUE @@ -325,7 +325,7 @@ donator_only = TRUE requires_purchase = FALSE -/datum/loadout_item/toys/jackfrost +/datum/loadout_item/plushies/jackfrost name = "Jack Frost Plush" item_path = /obj/item/toy/plush/jackfrost donator_only = TRUE @@ -444,13 +444,13 @@ item_path = /obj/item/effect_granter/donator/gumball_goblin requires_purchase = FALSE -/datum/loadout_item/toys/gumball_goblin +/datum/loadout_item/plushies/gumball_goblin name = "Gumball Goblin Plush" item_path = /obj/item/toy/plush/gumball_goblin donator_only = TRUE requires_purchase = FALSE -/datum/loadout_item/toys/elliethedarksunplush +/datum/loadout_item/plushies/elliethedarksunplush name = "Ellie plush" item_path = /obj/item/toy/plush/elliethedarksun donator_only = TRUE @@ -463,7 +463,7 @@ donator_only = TRUE requires_purchase = FALSE -/datum/loadout_item/toys/pooba_bee_plush +/datum/loadout_item/plushies/pooba_bee_plush name = "Bumbliest Bee Plushie" item_path = /obj/item/toy/plush/pooba_bee_plush donator_only = TRUE @@ -509,7 +509,7 @@ item_path = /obj/item/effect_granter/donator/orangutan requires_purchase = FALSE -/datum/loadout_item/toys/cowlophant +/datum/loadout_item/plushies/cowlophant name = "Cowlephant Plush" item_path = /obj/item/toy/plush/cowlephant donator_only = TRUE @@ -528,7 +528,7 @@ requires_purchase = FALSE //av4l0n -/datum/loadout_item/toys/sheep_plush_av4l0n +/datum/loadout_item/plushies/sheep_plush_av4l0n name = "Sheep Plush" item_path = /obj/item/clothing/head/sheep_plush_av4l0n donator_only = TRUE @@ -547,7 +547,7 @@ donator_only = TRUE requires_purchase = FALSE -/datum/loadout_item/toys/bluedragon66plush +/datum/loadout_item/plushies/bluedragon66plush name = "Sees Plushie" item_path = /obj/item/toy/plush/bluedragon66 donator_only = TRUE @@ -607,7 +607,7 @@ donator_only = TRUE requires_purchase = FALSE -/datum/loadout_item/toys/toadie_wan_kenfrogi +/datum/loadout_item/plushies/toadie_wan_kenfrogi name = "Toadie Wan Kenfrogi" item_path = /obj/item/toy/plush/toadie_wan_kenfrogi donator_only = TRUE @@ -654,7 +654,7 @@ donator_only = TRUE requires_purchase = FALSE -/datum/loadout_item/toys/trax_the_coward +/datum/loadout_item/plushies/trax_the_coward name = "Trax The Coward Plush" item_path = /obj/item/toy/plush/trax_the_coward donator_only = TRUE diff --git a/monkestation/code/modules/donator/code/item/misc.dm b/monkestation/code/modules/donator/code/item/misc.dm index 79b96fa13291..def034a8333d 100644 --- a/monkestation/code/modules/donator/code/item/misc.dm +++ b/monkestation/code/modules/donator/code/item/misc.dm @@ -3,27 +3,37 @@ desc = span_bold("What in the god-dam?...") icon = 'monkestation/code/modules/donator/icons/obj/misc.dmi' icon_state = "wumpa" - var/datum/looping_sound/wumpa/sounds - var/shutup = FALSE pickup_sound = 'monkestation/code/modules/donator/sounds/woah_3.ogg' drop_sound = 'monkestation/code/modules/donator/sounds/woah_1.ogg' - var/squeak_override = list('monkestation/code/modules/donator/sounds/woah_1.ogg' = 33, - 'monkestation/code/modules/donator/sounds/woah_2.ogg'=33, - 'monkestation/code/modules/donator/sounds/woah_3.ogg'=33, - 'monkestation/code/modules/donator/sounds/woahwoah.ogg' = 1) + pickup_mixer_channel = CHANNEL_SQUEAK + drop_mixer_channel = CHANNEL_SQUEAK + var/datum/looping_sound/wumpa/sound_loop + var/shutup = FALSE + var/static/list/squeak_override = list( + 'monkestation/code/modules/donator/sounds/woah_1.ogg' = 33, + 'monkestation/code/modules/donator/sounds/woah_2.ogg' = 33, + 'monkestation/code/modules/donator/sounds/woah_3.ogg' = 33, + 'monkestation/code/modules/donator/sounds/woahwoah.ogg' = 1, + ) + /obj/item/donator/wumpa/Initialize(mapload) . = ..() - sounds = new /datum/looping_sound/wumpa(src,TRUE,FALSE,FALSE,CHANNEL_JUKEBOX) - AddComponent(/datum/component/squeak,squeak_override) + sound_loop = new /datum/looping_sound/wumpa(src, TRUE, FALSE, FALSE, CHANNEL_JUKEBOX) + AddComponent(/datum/component/squeak, squeak_override) + +/obj/item/donator/wumpa/Destroy(force) + QDEL_NULL(sound_loop) + return ..() + /obj/item/donator/wumpa/attack_self(mob/user, modifiers) . = ..() - shutup=!shutup + shutup = !shutup if(shutup) - user.visible_message("[src] shuts up.") - sounds.stop() + user.visible_message(span_notice("[src] shuts up.")) + sound_loop.stop() else - user.visible_message("[src] continues its jolly melody.") - sounds.start(src) + user.visible_message(span_notice("[src] continues its jolly melody.")) + sound_loop.start(src) /datum/looping_sound/wumpa diff --git a/monkestation/code/modules/emotes/code/emote.dm b/monkestation/code/modules/emotes/code/emote.dm index 2cbc12d7b813..a1ce73574ea1 100644 --- a/monkestation/code/modules/emotes/code/emote.dm +++ b/monkestation/code/modules/emotes/code/emote.dm @@ -167,6 +167,9 @@ return pick(human_user.alternative_screams) var/obj/item/organ/internal/tongue/tongue = human_user.get_organ_slot(ORGAN_SLOT_TONGUE) . = tongue?.get_scream_sound() + if(isbasicmob(user)) + var/mob/living/basic/mob = user + . = mob.get_scream_sound() /datum/emote/living/scream/should_vary(mob/living/user) if(ishuman(user) && !is_cat_enough(user)) @@ -317,6 +320,18 @@ return FALSE +/datum/emote/squint + key = "squint" + key_third_person = "squints" + message = "squints." + message_param = "squints at %t." + +/datum/emote/living/nodnod + key = "nodnod" + key_third_person = "nodnods" + message = "nodnods." + message_param = "nodnods at %t." + //The code from 'Start' to 'End' was ported from Russ-station, with permission. //All credit to 'bitch fish' //Start diff --git a/monkestation/code/modules/holomaps/machinery.dm b/monkestation/code/modules/holomaps/machinery.dm index 31eaa8a599d6..8b3722f333be 100644 --- a/monkestation/code/modules/holomaps/machinery.dm +++ b/monkestation/code/modules/holomaps/machinery.dm @@ -323,13 +323,13 @@ /obj/item/circuitboard/machine/station_map name = "Station Map" build_path = /obj/machinery/station_map/directional/north - req_components = list(/obj/item/stock_parts/scanning_module/triphasic = 3, /obj/item/stock_parts/micro_laser/ultra = 4) + req_components = list(/obj/item/stock_parts/scanning_module = 3, /obj/item/stock_parts/micro_laser = 4) /obj/item/circuitboard/machine/station_map/engineering name = "Engineering Station Map" desc = "A virtual map of the surrounding station. Also shows any active fire and atmos alarms." build_path = /obj/machinery/station_map/engineering/directional/north - req_components = list(/obj/item/stock_parts/scanning_module/triphasic = 3, /obj/item/stock_parts/micro_laser/ultra = 4, /obj/item/stock_parts/subspace/analyzer = 1) + req_components = list(/obj/item/stock_parts/scanning_module = 3, /obj/item/stock_parts/micro_laser = 4, /obj/item/stock_parts/subspace/analyzer = 1) // Directional Ones for Mapping // /obj/machinery/station_map/directional/north diff --git a/monkestation/code/modules/jobs/job_types/barber.dm b/monkestation/code/modules/jobs/job_types/barber.dm new file mode 100644 index 000000000000..b10e1e17248e --- /dev/null +++ b/monkestation/code/modules/jobs/job_types/barber.dm @@ -0,0 +1,56 @@ +/datum/job/barber + title = JOB_LATEJOIN_BARBER + description = "Cut hair, spread gossip, judge folks poor fashion taste." + department_head = list(JOB_HEAD_OF_PERSONNEL) + faction = FACTION_STATION + total_positions = 1 + spawn_positions = 1 + supervisors = SUPERVISOR_HOP + config_tag = "BARBER" + exp_granted_type = EXP_TYPE_SERVICE + + outfit = /datum/outfit/job/barber + plasmaman_outfit = /datum/outfit/plasmaman/bar + + paycheck = PAYCHECK_CREW + paycheck_department = ACCOUNT_SRV + + display_order = JOB_DISPLAY_ORDER_ASSISTANT + departments_list = list( + /datum/job_department/late, + ) + + mail_goodies = list( + /obj/item/reagent_containers/spray/barbers_aid = 100, + /obj/item/clothing/head/hair_tie = 50, + /obj/item/reagent_containers/spray/baldium = 10, //good way to get valid'd + /obj/item/dyespray = 20, + /obj/item/lipstick/quantum = 1, + /obj/item/reagent_containers/spray/super_barbers_aid = 1, + ) + + family_heirlooms = list(/obj/item/hairbrush/comb) + rpg_title = "Scissorhands" + job_flags = JOB_ANNOUNCE_ARRIVAL | JOB_CREW_MANIFEST | JOB_EQUIP_RANK | JOB_CREW_MEMBER | JOB_NEW_PLAYER_JOINABLE | JOB_REOPEN_ON_ROUNDSTART_LOSS | JOB_ASSIGN_QUIRKS | JOB_CAN_BE_INTERN + +/datum/outfit/job/barber + name = "Barber" + jobtype = /datum/job/barber + + id = /obj/item/card/id/advanced + id_trim = /datum/id_trim/job/barber + uniform = /obj/item/clothing/under/rank/civilian/lawyer/purpsuit + suit = /obj/item/clothing/suit/toggle/lawyer/purple + backpack_contents = list( + /obj/item/razor = 1, + /obj/item/reagent_containers/spray/quantum_hair_dye = 1, + /obj/item/reagent_containers/cup/rag = 1, + ) + belt = /obj/item/modular_computer/pda/barber + ears = /obj/item/radio/headset/headset_srv + shoes = /obj/item/clothing/shoes/laceup + l_pocket =/obj/item/scissors + + box = /obj/item/storage/box/survival + + diff --git a/monkestation/code/modules/jobs/job_types/departments/departments.dm b/monkestation/code/modules/jobs/job_types/departments/departments.dm new file mode 100644 index 000000000000..6b2e4b6a896f --- /dev/null +++ b/monkestation/code/modules/jobs/job_types/departments/departments.dm @@ -0,0 +1,6 @@ +/datum/job_department/late + department_name = DEPARTMENT_LATE + department_bitflags = DEPARTMENT_BITFLAG_LATE + display_order = 10 + label_class = "latejoin" + ui_color = "#0b6b2b" diff --git a/monkestation/code/modules/jobs/job_types/signal_technician.dm b/monkestation/code/modules/jobs/job_types/signal_technician.dm index e1deca8e5eeb..93d054ee0333 100644 --- a/monkestation/code/modules/jobs/job_types/signal_technician.dm +++ b/monkestation/code/modules/jobs/job_types/signal_technician.dm @@ -58,6 +58,7 @@ id_trim = /datum/id_trim/job/signal_technician uniform = /obj/item/clothing/under/rank/engineering/signal_tech + suit = /obj/item/clothing/suit/hooded/wintercoat/engineering/signal_tech belt = /obj/item/storage/belt/utility/full/engi ears = /obj/item/radio/headset/headset_eng gloves = /obj/item/clothing/gloves/color/black diff --git a/monkestation/code/modules/jobs/job_types/spawner/bar_drone.dm b/monkestation/code/modules/jobs/job_types/spawner/bar_drone.dm new file mode 100644 index 000000000000..b28b7cf6f7ec --- /dev/null +++ b/monkestation/code/modules/jobs/job_types/spawner/bar_drone.dm @@ -0,0 +1,3 @@ +/datum/job/bar_drone + title = ROLE_BAR_DRONE + policy_index = ROLE_BAR_DRONE diff --git a/monkestation/code/modules/jobs/job_types/virologist.dm b/monkestation/code/modules/jobs/job_types/virologist.dm new file mode 100644 index 000000000000..7d2143f2540c --- /dev/null +++ b/monkestation/code/modules/jobs/job_types/virologist.dm @@ -0,0 +1,7 @@ +/datum/outfit/job/virologist + glasses = /obj/item/clothing/glasses/science + backpack_contents = list( + /obj/item/extrapolator = 1, + /obj/item/storage/box/tube = 1, + /obj/item/reagent_containers/syringe =1, + ) diff --git a/monkestation/code/modules/loadouts/items/plushies.dm b/monkestation/code/modules/loadouts/items/plushies.dm new file mode 100644 index 000000000000..c6a0420b393e --- /dev/null +++ b/monkestation/code/modules/loadouts/items/plushies.dm @@ -0,0 +1,122 @@ +GLOBAL_LIST_INIT(loadout_plushies, generate_loadout_items(/datum/loadout_item/plushies)) + +/datum/loadout_item/plushies + category = LOADOUT_ITEM_PLUSHIES + can_be_named = TRUE +/datum/loadout_item/plushies/pre_equip_item(datum/outfit/outfit, datum/outfit/outfit_important_for_life, mob/living/carbon/human/equipper, visuals_only = FALSE) // these go in the backpack + return FALSE +/datum/loadout_item/plushies/bee + name = "Bee Plushie" + item_path = /obj/item/toy/plush/beeplushie + +/datum/loadout_item/plushies/carp + name = "Carp Plushie" + item_path = /obj/item/toy/plush/carpplushie + +/datum/loadout_item/plushies/lizard_greyscale + name = "Greyscale Lizard Plushie" + item_path = /obj/item/toy/plush/lizard_plushie + +/datum/loadout_item/plushies/moth + name = "Moth Plushie" + item_path = /obj/item/toy/plush/moth + +/datum/loadout_item/plushies/narsie + name = "Nar'sie Plushie" + item_path = /obj/item/toy/plush/narplush + restricted_roles = list(JOB_CHAPLAIN) + +/datum/loadout_item/plushies/nukie + name = "Nukie Plushie" + item_path = /obj/item/toy/plush/nukeplushie + +/datum/loadout_item/plushies/peacekeeper + name = "Peacekeeper Plushie" + item_path = /obj/item/toy/plush/pkplush + +/datum/loadout_item/plushies/plasmaman + name = "Plasmaman Plushie" + item_path = /obj/item/toy/plush/plasmamanplushie + +/datum/loadout_item/plushies/ratvar + name = "Ratvar Plushie" + item_path = /obj/item/toy/plush/ratplush + restricted_roles = list(JOB_CHAPLAIN) + +/datum/loadout_item/plushies/rouny + name = "Rouny Plushie" + item_path = /obj/item/toy/plush/rouny + +/datum/loadout_item/plushies/snake + name = "Snake Plushie" + item_path = /obj/item/toy/plush/snakeplushie + +/datum/loadout_item/plushies/slime + name = "Slime Plushie" + item_path = /obj/item/toy/plush/slimeplushie + +/datum/loadout_item/plushies/bubble + name = "Bubblegum Plushie" + item_path = /obj/item/toy/plush/bubbleplush + +/datum/loadout_item/plushies/goat + name = "Strange Goat Plushie" + item_path = /obj/item/toy/plush/goatplushie + +/datum/loadout_item/plushies/knight + name = "Knight Plushie" + item_path = /obj/item/toy/plush/knightplush + +/datum/loadout_item/plushies/turnip + name = "Turnip Plushie" + item_path = /obj/item/toy/plush/turnipplush + +/datum/loadout_item/plushies/tinywitch + name = "Tiny Witch Plush" + item_path = /obj/item/toy/plush/tinywitchplush + +/datum/loadout_item/plushies/chefomancer + name = "Chef-o-Mancer Plush" + item_path = /obj/item/toy/plush/chefomancer + +/datum/loadout_item/plushies/tyria + name = "Tyria Plush" + item_path = /obj/item/toy/plush/moth/tyriaplush + +/datum/loadout_item/plushies/ook + name = "Ook Plush" + item_path = /obj/item/toy/plush/moth/ookplush + +/datum/loadout_item/plushies/ducky_plush + name = "Ducky Plush" + item_path = /obj/item/toy/plush/duckyplush + +/datum/loadout_item/plushies/sammi_plush + name = "Sammi Plush" + item_path = /obj/item/toy/plush/sammiplush + +/datum/loadout_item/plushies/cirno_plush + name = "Cirno Plush" + item_path = /obj/item/toy/plush/cirno_plush + +/datum/loadout_item/plushies/cirno_ballin + name = "Cirno Ballin" + item_path = /obj/item/toy/plush/cirno_plush/ballin + requires_purchase = FALSE + ckeywhitelist = list("dwasint") + +/datum/loadout_item/plushies/durrcell + name = "Durrcell Plush" + item_path = /obj/item/toy/plush/durrcell + +/datum/loadout_item/plushies/Eeble + name = "Eeble Plushie" + item_path = /obj/item/toy/plush/Eeble + +/datum/loadout_item/plushies/big_bad_wolf + name = "Big And Will Be Bad Wolf Plushie" + item_path = /obj/item/toy/plush/lobotomy/big_bad_wolf + +/datum/loadout_item/plushies/scorched_girl + name = "Scorched Girl Plushie" + item_path = /obj/item/toy/plush/lobotomy/scorched diff --git a/monkestation/code/modules/loadouts/items/toys.dm b/monkestation/code/modules/loadouts/items/toys.dm index 61984f523ab6..8ea42a08cf7b 100644 --- a/monkestation/code/modules/loadouts/items/toys.dm +++ b/monkestation/code/modules/loadouts/items/toys.dm @@ -11,80 +11,6 @@ GLOBAL_LIST_INIT(loadout_toys, generate_loadout_items(/datum/loadout_item/toys)) /datum/loadout_item/toys/pre_equip_item(datum/outfit/outfit, datum/outfit/outfit_important_for_life, mob/living/carbon/human/equipper, visuals_only = FALSE) // these go in the backpack return FALSE -/datum/loadout_item/toys/bee - name = "Bee Plushie" - item_path = /obj/item/toy/plush/beeplushie - -/datum/loadout_item/toys/carp - name = "Carp Plushie" - item_path = /obj/item/toy/plush/carpplushie - -/datum/loadout_item/toys/lizard_greyscale - name = "Greyscale Lizard Plushie" - item_path = /obj/item/toy/plush/lizard_plushie - -/datum/loadout_item/toys/moth - name = "Moth Plushie" - item_path = /obj/item/toy/plush/moth - -/datum/loadout_item/toys/narsie - name = "Nar'sie Plushie" - item_path = /obj/item/toy/plush/narplush - restricted_roles = list(JOB_CHAPLAIN) - -/datum/loadout_item/toys/nukie - name = "Nukie Plushie" - item_path = /obj/item/toy/plush/nukeplushie - -/datum/loadout_item/toys/peacekeeper - name = "Peacekeeper Plushie" - item_path = /obj/item/toy/plush/pkplush - -/datum/loadout_item/toys/plasmaman - name = "Plasmaman Plushie" - item_path = /obj/item/toy/plush/plasmamanplushie - -/datum/loadout_item/toys/ratvar - name = "Ratvar Plushie" - item_path = /obj/item/toy/plush/ratplush - restricted_roles = list(JOB_CHAPLAIN) - -/datum/loadout_item/toys/rouny - name = "Rouny Plushie" - item_path = /obj/item/toy/plush/rouny - -/datum/loadout_item/toys/snake - name = "Snake Plushie" - item_path = /obj/item/toy/plush/snakeplushie - -/datum/loadout_item/toys/slime - name = "Slime Plushie" - item_path = /obj/item/toy/plush/slimeplushie - -/datum/loadout_item/toys/bubble - name = "Bubblegum Plushie" - item_path = /obj/item/toy/plush/bubbleplush - -/datum/loadout_item/toys/goat - name = "Strange Goat Plushie" - item_path = /obj/item/toy/plush/goatplushie - -/datum/loadout_item/toys/knight - name = "Knight Plushie" - item_path = /obj/item/toy/plush/knightplush - -/datum/loadout_item/toys/turnip - name = "Turnip Plushie" - item_path = /obj/item/toy/plush/turnipplush - -/datum/loadout_item/toys/tinywitch - name = "Tiny Witch Plush" - item_path = /obj/item/toy/plush/tinywitchplush - -/datum/loadout_item/toys/chefomancer - name = "Chef-o-Mancer Plush" - item_path = /obj/item/toy/plush/chefomancer - /* * CARDS */ @@ -191,37 +117,3 @@ GLOBAL_LIST_INIT(loadout_toys, generate_loadout_items(/datum/loadout_item/toys)) /datum/loadout_item/toys/foam_sword name = "Foam Sword" item_path = /obj/item/toy/sword - -/datum/loadout_item/toys/tyria - name = "Tyria Plush" - item_path = /obj/item/toy/plush/moth/tyriaplush - -/datum/loadout_item/toys/ook - name = "Ook Plush" - item_path = /obj/item/toy/plush/moth/ookplush - -/datum/loadout_item/toys/ducky_plush - name = "Ducky Plush" - item_path = /obj/item/toy/plush/duckyplush - -/datum/loadout_item/toys/sammi_plush - name = "Sammi Plush" - item_path = /obj/item/toy/plush/sammiplush - -/datum/loadout_item/toys/cirno_plush - name = "Cirno Plush" - item_path = /obj/item/toy/plush/cirno_plush - -/datum/loadout_item/toys/cirno_ballin - name = "Cirno Ballin" - item_path = /obj/item/toy/plush/cirno_plush/ballin - requires_purchase = FALSE - ckeywhitelist = list("dwasint") - -/datum/loadout_item/toys/durrcell - name = "Durrcell Plush" - item_path = /obj/item/toy/plush/durrcell - -/datum/loadout_item/toys/Eeble - name = "Eeble Plushie" - item_path = /obj/item/toy/plush/Eeble diff --git a/monkestation/code/modules/loadouts/loadout_middleware.dm b/monkestation/code/modules/loadouts/loadout_middleware.dm index b1f4bd5a18eb..10816e827232 100644 --- a/monkestation/code/modules/loadouts/loadout_middleware.dm +++ b/monkestation/code/modules/loadouts/loadout_middleware.dm @@ -37,6 +37,7 @@ loadout_tabs += list(list("name" = "Accessory", "title" = "Uniform Accessory Slot Items", "contents" = list_to_data(GLOB.loadout_accessory))) loadout_tabs += list(list("name" = "Inhand", "title" = "In-hand Items", "contents" = list_to_data(GLOB.loadout_inhand_items))) loadout_tabs += list(list("name" = "Toys", "title" = "Toys! ([MAX_ALLOWED_MISC_ITEMS] max)", "contents" = list_to_data(GLOB.loadout_toys))) + loadout_tabs += list(list("name" = "Plushies", "title" = "Adorable little plushies! ([MAX_ALLOWED_MISC_ITEMS] max)", "contents" = list_to_data(GLOB.loadout_plushies))) loadout_tabs += list(list("name" = "Other", "title" = "Backpack Items ([MAX_ALLOWED_MISC_ITEMS] max)", "contents" = list_to_data(GLOB.loadout_pocket_items))) loadout_tabs += list(list("name" = "Effects", "title" = "Unique Effects", "contents" = list_to_data(GLOB.loadout_effects))) loadout_tabs += list(list("name" = "Unusuals", "title" = "Unusual Hats", "contents" = convert_stored_unusuals_to_data())) diff --git a/monkestation/code/modules/logging/categories/log_category_debug.dm b/monkestation/code/modules/logging/categories/log_category_debug.dm index dd98fa011d25..b93f1ae561f3 100644 --- a/monkestation/code/modules/logging/categories/log_category_debug.dm +++ b/monkestation/code/modules/logging/categories/log_category_debug.dm @@ -1,3 +1,5 @@ +/* /datum/log_category/debug_enqueue category = LOG_CATEGORY_ENQUEUE debugger_visible = TRUE +*/ diff --git a/monkestation/code/modules/map_gen_expansions/mushroom/extraction/structures/extraction_pipe.dm b/monkestation/code/modules/map_gen_expansions/mushroom/extraction/structures/extraction_pipe.dm index b17257a454c8..3cfd54b255c6 100644 --- a/monkestation/code/modules/map_gen_expansions/mushroom/extraction/structures/extraction_pipe.dm +++ b/monkestation/code/modules/map_gen_expansions/mushroom/extraction/structures/extraction_pipe.dm @@ -265,4 +265,5 @@ living_particles |= spawned + RegisterSignal(spawned, COMSIG_QDELETING, PROC_REF(particle_qdeleting)) animate_particle(spawned) diff --git a/monkestation/code/modules/mapping/access_helpers.dm b/monkestation/code/modules/mapping/access_helpers.dm index d7ca77d18035..0d4c7d15c545 100644 --- a/monkestation/code/modules/mapping/access_helpers.dm +++ b/monkestation/code/modules/mapping/access_helpers.dm @@ -35,3 +35,18 @@ /obj/effect/mapping_helpers/airlock/access/any/away/bounty_hunter/get_access() . = ..() . += list(ACCESS_BOUNTY_HUNTER) + +/obj/effect/mapping_helpers/airlock/access/any/security/brig_physician/get_access() + var/list/access_list = ..() + access_list += ACCESS_BRIG_PHYSICIAN + return access_list + +/obj/effect/mapping_helpers/airlock/access/any/command/blueshield/get_access() + var/list/access_list = ..() + access_list += ACCESS_BLUESHIELD + return access_list + +/obj/effect/mapping_helpers/airlock/access/any/command/nt_rep/get_access() + var/list/access_list = ..() + access_list += ACCESS_NT_REPRESENTATVE + return access_list diff --git a/monkestation/code/modules/mentor/mentor_datum.dm b/monkestation/code/modules/mentor/mentor_datum.dm index 9566b8750560..edf7db11c4c6 100644 --- a/monkestation/code/modules/mentor/mentor_datum.dm +++ b/monkestation/code/modules/mentor/mentor_datum.dm @@ -20,8 +20,7 @@ GLOBAL_PROTECT(mentor_href_token) /datum/mentors/New(ckey) if(!ckey) QDEL_IN(src, 0) - throw EXCEPTION("Mentor datum created without a ckey") - return + CRASH("Mentor datum created without a ckey") target = ckey(ckey) name = "[ckey]'s mentor datum" href_token = GenerateToken() diff --git a/monkestation/code/modules/mob/dead/new_player/sprite_accessories/anime.dm b/monkestation/code/modules/mob/dead/new_player/sprite_accessories/anime.dm index 19657a190df7..c5579872de5f 100644 --- a/monkestation/code/modules/mob/dead/new_player/sprite_accessories/anime.dm +++ b/monkestation/code/modules/mob/dead/new_player/sprite_accessories/anime.dm @@ -7,6 +7,16 @@ name = "None" icon_state = "none" +/datum/sprite_accessory/anime_head/elf1 + name = "Short Elf Ears" + icon_state = "elf1" + color_src = SKIN_COLOR + +/datum/sprite_accessory/anime_head/elf2 + name = "Long Elf Ears" + icon_state = "elf2" + color_src = SKIN_COLOR + /datum/sprite_accessory/anime_head/pony name = "Pony Ears" icon_state = "pony" diff --git a/monkestation/code/modules/mob/dead/new_player/sprite_accessories/tails.dm b/monkestation/code/modules/mob/dead/new_player/sprite_accessories/tails.dm deleted file mode 100644 index 55ec414d53cb..000000000000 --- a/monkestation/code/modules/mob/dead/new_player/sprite_accessories/tails.dm +++ /dev/null @@ -1,11 +0,0 @@ -/datum/sprite_accessory/tails/monkey - icon = 'monkestation/icons/mob/species/simian/tails.dmi' - color_src = SKIN_COLOR - -/datum/sprite_accessory/tails/monkey/none - name = "None" - icon_state = "none" - -/datum/sprite_accessory/tails/monkey/chimp - name = "Chimp" - icon_state = "chimp" diff --git a/monkestation/code/modules/mob/living/basic/drone/bardrone.dm b/monkestation/code/modules/mob/living/basic/drone/bardrone.dm new file mode 100644 index 000000000000..aa29685734c3 --- /dev/null +++ b/monkestation/code/modules/mob/living/basic/drone/bardrone.dm @@ -0,0 +1,82 @@ +/obj/effect/mob_spawn/ghost_role/drone/bar + name = "bardrone shell" + desc = "A modified shell of a maintenance drone, an nonexpendable robot built to serve drinks and chat." + icon = 'icons/mob/silicon/drone.dmi' + icon_state = "drone_maint_hat" + mob_name = "Bardrone" + mob_type = /mob/living/basic/drone/snowflake/bardrone + anchored = TRUE + prompt_name = "bardrone" + you_are_text = "You are a Bardrone." + flavour_text = "Born out of drunk science, your purpose is to keep the drinks flowing on the station and comfort the patrons with their issues, not solve them." + important_text = "You MUST read and follow your laws carefully." + spawner_job_path = /datum/job/bar_drone + +/obj/effect/mob_spawn/ghost_role/drone/bar/Initialize(mapload) + . = ..() + var/area/area = get_area(src) + if(area) + notify_ghosts( + "A bardrone shell has been created in \the [area.name].", + source = src, + action = NOTIFY_PLAY, + notify_flags = (GHOST_NOTIFY_IGNORE_MAPLOAD), + ignore_key = POLL_IGNORE_DRONE, + ) + +/obj/effect/mob_spawn/ghost_role/drone/bar/allow_spawn(mob/user, silent = FALSE) + var/client/user_client = user.client + var/mob/living/basic/drone/drone_type = mob_type + if(!initial(drone_type.shy) || isnull(user_client) || !CONFIG_GET(flag/use_exp_restrictions_other)) + return ..() + var/required_role = CONFIG_GET(string/drone_required_role) + var/required_playtime = CONFIG_GET(number/drone_role_playtime) * 60 + if(CONFIG_GET(flag/use_exp_restrictions_admin_bypass) && check_rights_for(user.client, R_ADMIN)) + return ..() + if(user?.client?.prefs.db_flags & DB_FLAG_EXEMPT) + return ..() + if(required_playtime <= 0) + return ..() + var/current_playtime = user_client?.calc_exp_type(required_role) + if (current_playtime < required_playtime) + var/minutes_left = required_playtime - current_playtime + var/playtime_left = DisplayTimeText(minutes_left * (1 MINUTES)) + if(!silent) + to_chat(user, span_danger("You need to play [playtime_left] more as [required_role] to spawn as a Bardrone!")) + return FALSE + return ..() + +/datum/action/drone/bar/information //sets up action button datum for the button itself + name = "Bar Drone Information" + desc = "Shows information and laws for the Bar Drone." + button_icon = 'monkestation/code/modules/veth_misc_items/bardrone/sillybardrone.dmi' + button_icon_state = "silly_bardrone" + +/datum/action/drone/bar/information/Trigger(trigger_flags) //what happens when the button is pressed + var/datum/drone/bar/information/tgui = new(usr) + tgui.ui_interact(usr) + +/datum/drone/bar/information //datum required for the tgui component + +/datum/drone/bar/information/ui_close() + qdel(src) + +/datum/drone/bar/information/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "BarDrone") + ui.open() + +/datum/drone/bar/information/ui_state(mob/user) //should always be accessible, only inherited by bardrone anyway + return GLOB.always_state + +/mob/living/basic/drone/snowflake/bardrone/Initialize(mapload) //initialization of the action button onto the linked mob (only bardrones) + . = ..() + for (var/action_type in actions_to_add) + var/datum/action/new_action = new action_type(src) + new_action.Grant(src) + +/mob/living/basic/drone/snowflake/bardrone/Login() //force open the tgui window with laws on login to the bardrone mob. + ..() + var/datum/drone/bar/information/tgui = new(usr) + tgui.ui_interact(usr) diff --git a/monkestation/code/modules/mob/living/basic/space_fauna/carp/carp.dm b/monkestation/code/modules/mob/living/basic/space_fauna/carp/carp.dm new file mode 100644 index 000000000000..0661e5b43565 --- /dev/null +++ b/monkestation/code/modules/mob/living/basic/space_fauna/carp/carp.dm @@ -0,0 +1,3 @@ +/mob/living/basic/carp/on_tamed(mob/tamer, feedback = TRUE) + . = ..() + ai_controller?.change_ai_movement_type(/datum/ai_movement/jps) diff --git a/monkestation/code/modules/mob/living/carbon/carbon_update_icons.dm b/monkestation/code/modules/mob/living/carbon/carbon_update_icons.dm index a99ca5f650b2..40a0b4e813e7 100644 --- a/monkestation/code/modules/mob/living/carbon/carbon_update_icons.dm +++ b/monkestation/code/modules/mob/living/carbon/carbon_update_icons.dm @@ -1,3 +1,4 @@ /mob/living/carbon/update_body(is_creating = FALSE) . = ..() - dna?.update_body_height() + if(is_creating) + dna?.update_body_height() diff --git a/monkestation/code/modules/mob/living/carbon/emote.dm b/monkestation/code/modules/mob/living/carbon/emote.dm index 922607389cad..87d873cea9ed 100644 --- a/monkestation/code/modules/mob/living/carbon/emote.dm +++ b/monkestation/code/modules/mob/living/carbon/emote.dm @@ -1,3 +1,15 @@ +/datum/emote/living/carbon/vomit + key = "vomit" + key_third_person = "vomits" + +/datum/emote/living/carbon/vomit/run_emote(mob/user, params, type_override, intentional) + . = ..() + if(!.) + return + + var/mob/living/carbon/carbon_owner = user + carbon_owner.vomit(harm = FALSE, force = TRUE) + //Finger Guns *blows smoke off his finger tips* /datum/emote/living/carbon/fingergun key = "fingergun" diff --git a/monkestation/code/modules/mob/living/carbon/human/emotes.dm b/monkestation/code/modules/mob/living/carbon/human/emotes.dm index 4edc0f25db10..9ae2599c80cf 100644 --- a/monkestation/code/modules/mob/living/carbon/human/emotes.dm +++ b/monkestation/code/modules/mob/living/carbon/human/emotes.dm @@ -1,5 +1,42 @@ +/datum/emote/living/carbon/human/assinhale + key = "assinhale" + key_third_person = "inhales through their ass" + + var/sounds = list( + 'monkestation/sound/effects/fart_reverse1.ogg', + 'monkestation/sound/effects/fart_reverse2.ogg', + 'monkestation/sound/effects/fart_reverse3.ogg', + 'monkestation/sound/effects/fart_reverse4.ogg' + ) + emote_type = EMOTE_AUDIBLE + +/datum/emote/living/carbon/human/assinhale/run_emote(mob/user, params, type_override, intentional) + . = ..() + if (!.) + return + + if(!user.get_organ_slot(ORGAN_SLOT_BUTT) || !ishuman(user)) + to_chat(user, "You don't have a butt!") + return + var/mob/living/carbon/human/ass_holder = user + var/obj/item/organ/internal/butt/booty = user.get_organ_slot(ORGAN_SLOT_BUTT) + + if (booty.superfart_armed) + to_chat(user, "Your ass is already armed!") + return + + var/volume = 50 + if(ass_holder.has_quirk(/datum/quirk/loud_ass)) + volume = volume * 2 + + user.visible_message(span_warning("[ass_holder] inhales through their ass. What the fuck?"), span_warning("You inhale through your ass, ready to super fart at any moment!")) + playsound(ass_holder, pick(sounds), volume, TRUE, pressure_affected = FALSE, mixer_channel = CHANNEL_PRUDE) + booty.superfart_armed = TRUE + ass_holder.add_mood_event("superfart_armed", /datum/mood_event/superfart_armed) + /datum/emote/living/carbon/human/superfart key = "superfart" + emote_type = EMOTE_VISIBLE | EMOTE_AUDIBLE /datum/emote/living/carbon/human/superfart/run_emote(mob/user, params, type_override, intentional) . = ..() @@ -15,6 +52,8 @@ booty.cooling_down = TRUE var/turf/Location = get_turf(ass_holder) + ass_holder.clear_mood_event("superfart_armed") + //BIBLEFART/ //This goes above all else because it's an instagib. for(var/obj/item/book/bible/Holy in Location) diff --git a/monkestation/code/modules/mob/living/carbon/human/human.dm b/monkestation/code/modules/mob/living/carbon/human/human.dm index b04c84fb7637..61edf747deb6 100644 --- a/monkestation/code/modules/mob/living/carbon/human/human.dm +++ b/monkestation/code/modules/mob/living/carbon/human/human.dm @@ -9,3 +9,6 @@ /mob/living/carbon/human/species/ornithid race = /datum/species/ornithid + +/mob/living/carbon/human/species/moth/tundra + race = /datum/species/moth/tundra diff --git a/monkestation/code/modules/mob/living/carbon/human/simian_gags.dm b/monkestation/code/modules/mob/living/carbon/human/simian_gags.dm deleted file mode 100644 index 4e41662ab551..000000000000 --- a/monkestation/code/modules/mob/living/carbon/human/simian_gags.dm +++ /dev/null @@ -1,163 +0,0 @@ -/obj/item - /// Icon file for mob worn overlays, if the user is a teshari. - var/icon/worn_icon_simian - /// The config type to use for greyscaled worn sprites for Simian characters. Both this and greyscale_colors must be assigned to work. - var/greyscale_config_worn_simian - - var/datum/greyscale_config/greyscale_config_worn_simian_fallback - var/datum/greyscale_config/greyscale_config_worn_simian_fallback_skirt - -/obj/item/storage/backpack - species_clothing_color_coords = list(list(BACK_COLORPIXEL_X_1, BACK_COLORPIXEL_Y_1)) - greyscale_config_worn_simian_fallback = /datum/greyscale_config/simian/backpack - -/obj/item/clothing/glasses - species_clothing_color_coords = list(list(GLASSES_COLORPIXEL_X_1, GLASSES_COLORPIXEL_Y_1), list(GLASSES_COLORPIXEL_X_2, GLASSES_COLORPIXEL_Y_2)) - greyscale_config_worn_simian_fallback = /datum/greyscale_config/simian/glasses - -/obj/item/clothing/gloves - species_clothing_color_coords = list(list(GLOVES_COLORPIXEL_X_1, GLOVES_COLORPIXEL_Y_1)) - greyscale_config_worn_simian_fallback = /datum/greyscale_config/simian/gloves - -/obj/item/clothing/neck - species_clothing_color_coords = list(list(SCARF_COLORPIXEL_X_1, SCARF_COLORPIXEL_Y_1)) - greyscale_config_worn_simian_fallback = /datum/greyscale_config/simian/scarf - -/obj/item/clothing/neck/cloak - species_clothing_color_coords = list(list(CLOAK_COLORPIXEL_X_1, CLOAK_COLORPIXEL_Y_1), list(CLOAK_COLORPIXEL_X_2, CLOAK_COLORPIXEL_Y_2)) - greyscale_config_worn_simian_fallback = /datum/greyscale_config/simian/cloak - -/obj/item/clothing/neck/tie - species_clothing_color_coords = list(list(TIE_COLORPIXEL_X_1, TIE_COLORPIXEL_Y_1)) - greyscale_config_worn_simian_fallback = /datum/greyscale_config/simian/tie - -/obj/item/clothing/shoes - species_clothing_color_coords = list(list(SHOES_COLORPIXEL_X_1, SHOES_COLORPIXEL_Y_1)) - greyscale_config_worn_simian_fallback = /datum/greyscale_config/simian/shoes - -/obj/item/clothing/suit - species_clothing_color_coords = list(list(COAT_COLORPIXEL_X_1, COAT_COLORPIXEL_Y_1)) - greyscale_config_worn_simian_fallback = /datum/greyscale_config/simian/coat - -/obj/item/clothing/suit/armor - species_clothing_color_coords = list(list(ARMOR_COLORPIXEL_X_1, ARMOR_COLORPIXEL_Y_1)) - greyscale_config_worn_simian_fallback = /datum/greyscale_config/simian/armor - -/obj/item/clothing/suit/space - species_clothing_color_coords = list(list(SPACESUIT_COLORPIXEL_X_1, SPACESUIT_COLORPIXEL_Y_1)) - greyscale_config_worn_simian_fallback = /datum/greyscale_config/simian/spacesuit - -/obj/item/clothing/suit/mod - species_clothing_color_coords = list(list(MODSUIT_COLORPIXEL_X_1, MODSUIT_COLORPIXEL_Y_1), list(MODSUIT_COLORPIXEL_X_2, MODSUIT_COLORPIXEL_Y_2), list(MODSUIT_COLORPIXEL_X_3, MODSUIT_COLORPIXEL_Y_3)) - greyscale_config_worn_simian_fallback = /datum/greyscale_config/simian/hardsuit - -/obj/item/clothing/under - species_clothing_color_coords = list(list(UNDER_COLORPIXEL_X_1, UNDER_COLORPIXEL_Y_1), list(UNDER_COLORPIXEL_X_2, UNDER_COLORPIXEL_Y_2), list(UNDER_COLORPIXEL_X_3, UNDER_COLORPIXEL_Y_3)) - greyscale_config_worn_simian_fallback = /datum/greyscale_config/simian/under - greyscale_config_worn_simian_fallback_skirt = /datum/greyscale_config/simian/under_skirt - -/obj/item/mod/control - species_clothing_color_coords = list(list(MODCONTROL_COLORPIXEL_X_1, MODCONTROL_COLORPIXEL_Y_1)) - greyscale_config_worn_simian_fallback = /datum/greyscale_config/simian/modcontrol - -///GAGS below here -/* -/obj/item/clothing/under/color - greyscale_config_worn_simian = /datum/greyscale_config/jumpsuit_worn/simian - -/obj/item/clothing/under/color/jumpskirt - greyscale_config_worn_simian = /datum/greyscale_config/jumpsuit_worn/simian - -/obj/item/clothing/shoes/sneakers - greyscale_config_worn_simian = /datum/greyscale_config/sneakers_worn/simian - -/obj/item/clothing/shoes/sneakers/orange - greyscale_config_worn_simian = /datum/greyscale_config/sneakers_orange_worn/simian - -/obj/item/clothing/head/collectable/beret - greyscale_config_worn_simian = /datum/greyscale_config/beret/worn/simian - -/obj/item/clothing/head/collectable/flatcap - greyscale_config_worn_simian = /datum/greyscale_config/beret/worn/simian - -/obj/item/clothing/head/frenchberet - greyscale_config_worn_simian = /datum/greyscale_config/beret/worn/simian - -/obj/item/clothing/head/flatcap - greyscale_config_worn_simian = /datum/greyscale_config/beret/worn/simian - -/obj/item/clothing/head/caphat/beret - greyscale_config_worn_simian = /datum/greyscale_config/beret_badge/worn/simian - -/obj/item/clothing/head/beret - greyscale_config_worn_simian = /datum/greyscale_config/beret/worn/simian - -/obj/item/clothing/head/beret/badge - greyscale_config_worn_simian = /datum/greyscale_config/beret_badge/worn/simian - -/obj/item/clothing/head/hats/hos/beret - greyscale_config_worn_simian = /datum/greyscale_config/beret_badge/worn/simian - -/obj/item/clothing/head/beret/sec - greyscale_config_worn_simian = /datum/greyscale_config/beret_badge/worn/simian - -/obj/item/clothing/head/beret/science/fancy - greyscale_config_worn_simian = /datum/greyscale_config/beret_badge/worn/simian - -/obj/item/clothing/head/beret/science/rd - greyscale_config_worn_simian = /datum/greyscale_config/beret_badge/worn/simian - -/obj/item/clothing/head/beret/durathread - greyscale_config_worn_simian = /datum/greyscale_config/beret_badge/worn/simian - -/obj/item/clothing/head/beret/centcom_formal - greyscale_config_worn_simian = /datum/greyscale_config/beret_badge/worn/simian - -/obj/item/clothing/head/beret/sec/navywarden - greyscale_config_worn_simian = /datum/greyscale_config/beret_badge_fancy/worn/simian - -/obj/item/clothing/head/beret/medical - greyscale_config_worn_simian = /datum/greyscale_config/beret_badge/worn/simian - -/obj/item/clothing/head/beret/engi - greyscale_config_worn_simian = /datum/greyscale_config/beret_badge/worn/simian - -/obj/item/clothing/head/beret/atmos - greyscale_config_worn_simian = /datum/greyscale_config/beret_badge/worn/simian - -/obj/item/clothing/head/beret/cargo/qm - greyscale_config_worn_simian = /datum/greyscale_config/beret_badge/worn/simian - -/obj/item/clothing/head/hopcap/beret - greyscale_config_worn_simian = /datum/greyscale_config/beret_badge/worn/simian - -/obj/item/clothing/head/beret/blueshield - greyscale_config_worn_simian = /datum/greyscale_config/beret_badge/worn/simian - -/obj/item/clothing/head/flatcap - greyscale_config_worn_simian = /datum/greyscale_config/beret/worn/simian - -/obj/item/clothing/head/frenchberet - greyscale_config_worn_simian = /datum/greyscale_config/beret/worn/simian - -/obj/item/clothing/head/beret/sec/navywarden/syndicate - greyscale_config_worn_simian = /datum/greyscale_config/beret_badge/worn/simian - -/obj/item/clothing/head/nanotrasen_consultant/beret - greyscale_config_worn_simian = /datum/greyscale_config/beret_badge/worn/simian - -/obj/item/clothing/head/beret/sec/peacekeeper/armadyne - greyscale_config_worn_simian = /datum/greyscale_config/beret_badge_fancy/worn/simian - -/obj/item/clothing/head/beret/sec/peacekeeper - greyscale_config_worn_simian = /datum/greyscale_config/beret_badge/worn/simian - -/obj/item/clothing/neck/ranger_poncho - greyscale_config_worn_simian = /datum/greyscale_config/ranger_poncho/worn/simian - -/obj/item/clothing/under/dress/skirt/plaid - greyscale_config_worn_simian = /datum/greyscale_config/plaidskirt_worn/simian - -/obj/item/clothing/under/dress/sundress - greyscale_config_worn_simian = /datum/greyscale_config/sundress_worn/simian -*/ diff --git a/monkestation/code/modules/mob/living/carbon/human/species_type/simian.dm b/monkestation/code/modules/mob/living/carbon/human/species_type/simian.dm index 32539976f775..1b1a3f114075 100644 --- a/monkestation/code/modules/mob/living/carbon/human/species_type/simian.dm +++ b/monkestation/code/modules/mob/living/carbon/human/species_type/simian.dm @@ -1,61 +1,38 @@ -/datum/species/simian - // Highly intelligent, genetically modified chimps +/datum/species/monkey/simian name = "Simian" id = SPECIES_SIMIAN - - bodytype = BODYTYPE_CUSTOM - inherent_traits = list( - TRAIT_FUR_COLORS, - TRAIT_MUTANT_COLORS, TRAIT_NO_UNDERWEAR, + TRAIT_NO_AUGMENTS, //Their bodytype doesn't allow augments, this prevents the futile effort. + TRAIT_MUTANT_COLORS, + TRAIT_FUR_COLORS, + //Simian unique traits TRAIT_VAULTING, - TRAIT_KLEPTOMANIAC, - TRAIT_MONKEYFRIEND - ) - - inherent_biotypes = MOB_ORGANIC | MOB_HUMANOID + TRAIT_MONKEYFRIEND, + /*Monkey traits that Simians don't have, and why. + TRAIT_NO_BLOOD_OVERLAY, //let's them have a blood overlay, why not? + TRAIT_NO_TRANSFORMATION_STING, //Simians are a roundstart species and can equip all, unlike monkeys. + TRAIT_GUN_NATURAL, //Simians are Advanced tool users, this lets monkeys use guns without being smart. + TRAIT_VENTCRAWLER_NUDE, //We don't want a roundstart species that can ventcrawl. + TRAIT_WEAK_SOUL, //Crew innately giving less to Revenants for no real reason sucks for the rev. + */ + ) - mutanttongue = /obj/item/organ/internal/tongue/monkey - changesource_flags = MIRROR_BADMIN | MIRROR_PRIDE | MIRROR_MAGIC | RACE_SWAP | ERT_SPAWN - meat = /obj/item/food/meat/slab/monkey - skinned_type = /obj/item/stack/sheet/animalhide/monkey - //deathsound = 'monkestation/sound/voice/simian/deathsound.ogg' - species_language_holder = /datum/language_holder/monkey + //they get a normal brain instead of a monkey one, + //which removes the tripping stuff and gives them literacy/advancedtooluser and removes primitive (unable to use mechs) + mutantbrain = /obj/item/organ/internal/brain + no_equip_flags = NONE + changesource_flags = parent_type::changesource_flags & ~(WABBAJACK | SLIME_EXTRACT) maxhealthmod = 0.85 //small = weak stunmod = 1.3 + payday_modifier = 1 - custom_worn_icons = list( - LOADOUT_ITEM_SUIT = SIMIAN_SUIT_ICON, - LOADOUT_ITEM_UNIFORM = SIMIAN_UNIFORM_ICON, - LOADOUT_ITEM_GLASSES = SIMIAN_GLASSES_ICON, - LOADOUT_ITEM_GLOVES = SIMIAN_GLOVES_ICON, - LOADOUT_ITEM_NECK = SIMIAN_NECK_ICON, - LOADOUT_ITEM_SHOES = SIMIAN_SHOES_ICON, - LOADOUT_ITEM_BELT = SIMIAN_BELT_ICON, - LOADOUT_ITEM_MISC = SIMIAN_BACK_ICON, - ) - offset_features = list( - OFFSET_HANDS = list(0,3), - ) - - bodypart_overrides = list( - BODY_ZONE_HEAD = /obj/item/bodypart/head/simian, - BODY_ZONE_CHEST = /obj/item/bodypart/chest/simian, - BODY_ZONE_L_ARM = /obj/item/bodypart/arm/left/simian, - BODY_ZONE_R_ARM = /obj/item/bodypart/arm/right/simian, - BODY_ZONE_L_LEG = /obj/item/bodypart/leg/left/simian, - BODY_ZONE_R_LEG = /obj/item/bodypart/leg/right/simian, - ) + give_monkey_species_effects = FALSE - external_organs = list( - /obj/item/organ/external/tail/simian = "Chimp" - ) - -/datum/species/simian/get_species_description() +/datum/species/monkey/simian/get_species_description() return "Monke." -/datum/species/simian/create_pref_unique_perks() +/datum/species/monkey/simian/create_pref_unique_perks() var/list/to_add = list() to_add += list( @@ -99,98 +76,19 @@ return to_add -/datum/species/simian/on_species_gain(mob/living/carbon/C, datum/species/old_species, pref_load) +/datum/species/monkey/simian/on_species_gain(mob/living/carbon/human/human_who_gained_species, datum/species/old_species, pref_load) . = ..() - C.gain_trauma(/datum/brain_trauma/mild/kleptomania, TRAUMA_RESILIENCE_ABSOLUTE) + human_who_gained_species.gain_trauma(/datum/brain_trauma/mild/kleptomania, TRAUMA_RESILIENCE_ABSOLUTE) -/datum/species/simian/random_name(gender,unique,lastname) +/datum/species/monkey/simian/random_name(gender,unique,lastname) if(unique) return random_unique_simian_name(gender) var/randname = simian_name(gender) - if(lastname) randname += " [lastname]" - return randname -/datum/species/simian/after_equip_job(datum/job/J, mob/living/carbon/human/H, visualsOnly = FALSE, client/preference_source = null) - qdel(H.wear_neck) - var/obj/item/clothing/mask/translator/T = new /obj/item/clothing/mask/translator - H.equip_to_slot(T, ITEM_SLOT_NECK) - -/obj/item/clothing/mask/translator - name = "MonkeTech AutoTranslator" - desc = "A small device that will translate speech." - icon = 'monkestation/icons/obj/clothing/masks.dmi' - icon_state = "translator" - worn_icon = 'monkestation/icons/mob/clothing/mask.dmi' - worn_icon_state = "translator" - slot_flags = ITEM_SLOT_MASK | ITEM_SLOT_NECK - modifies_speech = TRUE - var/current_language = /datum/language/common - -/obj/item/clothing/mask/translator/proc/generate_language_names(mob/user) - var/static/list/language_name_list - if(!language_name_list) - language_name_list = list() - for(var/language in user.mind.language_holder.understood_languages) - if(language in user.mind.language_holder.blocked_languages) - continue - var/atom/A = language - language_name_list[initial(A.name)] = A - return language_name_list - -/obj/item/clothing/mask/translator/attack_self(mob/user) - . = ..() - if(ishuman(user)) - var/list/display_names = generate_language_names(user) - if(!display_names.len > 1) - return - var/choice = input(user,"Please select a language","Select a language:") as null|anything in sort_list(display_names) - if(!choice) - return - current_language = display_names[choice] - -/obj/item/clothing/mask/translator/equipped(mob/M, slot) - . = ..() - if ((slot == ITEM_SLOT_MASK || slot == ITEM_SLOT_NECK) && modifies_speech) - RegisterSignal(M, COMSIG_MOB_SAY, PROC_REF(handle_speech)) - else - UnregisterSignal(M, COMSIG_MOB_SAY) - -/obj/item/clothing/mask/translator/handle_speech(datum/source, list/speech_args) - . = ..() - if(!(clothing_flags * (VOICEBOX_DISABLED))) - if(obj_flags & EMAGGED) - speech_args[SPEECH_LANGUAGE] = pick(GLOB.all_languages) - else - speech_args[SPEECH_LANGUAGE] = current_language - -/obj/item/clothing/mask/translator/examine(mob/user) - . = ..() - . += "Click while in hand to select output language." - -/obj/item/clothing/mask/translator/emag_act() - if(obj_flags & EMAGGED) - return - obj_flags |= EMAGGED - icon_state = "translator_emag" - playsound(src, "sparks", 100, 1) - -/datum/species/simian/get_custom_worn_config_fallback(item_slot, obj/item/item) - // skirt support - if(istype(item, /obj/item/clothing/under) && !(item.body_parts_covered & LEGS)) - return item.greyscale_config_worn_simian_fallback_skirt - - return item.greyscale_config_worn_simian_fallback - -/datum/species/simian/generate_custom_worn_icon(item_slot, obj/item/item) - . = ..() - if(.) - return - - // Use the fancy fallback sprites. - . = generate_custom_worn_icon_fallback(item_slot, item) - if(.) - return +/datum/species/monkey/simian/pre_equip_species_outfit(datum/job/job, mob/living/carbon/human/equipping, visuals_only = FALSE) + var/obj/item/clothing/mask/translator/simian_translator = new /obj/item/clothing/mask/translator(equipping.loc) + equipping.equip_to_slot(simian_translator, ITEM_SLOT_NECK) diff --git a/monkestation/code/modules/mob/living/carbon/human/species_type/teratoma.dm b/monkestation/code/modules/mob/living/carbon/human/species_type/teratoma.dm index ea3b7679f50d..0c7101f90962 100644 --- a/monkestation/code/modules/mob/living/carbon/human/species_type/teratoma.dm +++ b/monkestation/code/modules/mob/living/carbon/human/species_type/teratoma.dm @@ -1,25 +1,19 @@ /datum/species/teratoma name = "Teratoma" id = SPECIES_TERATOMA - bodytype = BODYTYPE_ORGANIC | BODYTYPE_MONKEY - mutantbrain = /obj/item/organ/internal/brain/primate + bodytype = BODYTYPE_ORGANIC | BODYTYPE_CUSTOM inherent_traits = list( - TRAIT_NO_TRANSFORMATION_STING, - TRAIT_NO_BLOOD_OVERLAY, - TRAIT_NO_DNA_COPY, - TRAIT_NO_UNDERWEAR, TRAIT_BADDNA, - TRAIT_CAN_STRIP, TRAIT_EASILY_WOUNDED, TRAIT_GENELESS, - TRAIT_ILLITERATE, - TRAIT_KLEPTOMANIAC, + TRAIT_NOBREATH, + TRAIT_NO_BLOOD_OVERLAY, TRAIT_NO_DNA_COPY, TRAIT_NO_JUMPSUIT, + TRAIT_NO_TRANSFORMATION_STING, + TRAIT_NO_UNDERWEAR, TRAIT_NO_ZOMBIFY, - TRAIT_PRIMITIVE, - TRAIT_UNCONVERTABLE, // DEAR GOD NO TRAIT_WEAK_SOUL, ) @@ -31,7 +25,11 @@ BODY_ZONE_R_ARM = /obj/item/bodypart/arm/right/teratoma, BODY_ZONE_R_LEG = /obj/item/bodypart/leg/right/teratoma, ) + mutantbrain = /obj/item/organ/internal/brain/teratoma mutanttongue = /obj/item/organ/internal/tongue/teratoma + mutantliver = /obj/item/organ/internal/liver/teratoma + mutantlungs = null + mutantappendix = null maxhealthmod = 0.75 stunmod = 1.4 @@ -45,29 +43,76 @@ dust_anim = "dust-m" gib_anim = "gibbed-m" +/datum/species/teratoma/random_name(gender, unique, lastname) + return "teratoma ([rand(1, 999)])" + +/mob/living/carbon/human/species/teratoma + race = /datum/species/teratoma + +/obj/item/organ/internal/tongue/teratoma + liked_foodtypes = MEAT | BUGS | GORE | GROSS | RAW + disliked_foodtypes = CLOTH + +/obj/item/organ/internal/tongue/teratoma/get_scream_sound() + return pick( + 'sound/creatures/monkey/monkey_screech_1.ogg', + 'sound/creatures/monkey/monkey_screech_2.ogg', + 'sound/creatures/monkey/monkey_screech_3.ogg', + 'sound/creatures/monkey/monkey_screech_4.ogg', + 'sound/creatures/monkey/monkey_screech_5.ogg', + 'sound/creatures/monkey/monkey_screech_6.ogg', + 'sound/creatures/monkey/monkey_screech_7.ogg', + ) + +/obj/item/organ/internal/tongue/teratoma/get_laugh_sound() + return 'monkestation/sound/voice/laugh/simian/monkey_laugh_1.ogg' + +/obj/item/organ/internal/brain/teratoma + name = "vaguely brain-shaped mass" + desc = "How the hell can this thing even think?!" + organ_traits = list(TRAIT_CAN_STRIP, TRAIT_ILLITERATE) var/datum/component/omen/teratoma/misfortune -/datum/species/teratoma/on_species_gain(mob/living/carbon/human/idiot, datum/species/old_species, pref_load) +/obj/item/organ/internal/brain/teratoma/Initialize(mapload) . = ..() - misfortune = idiot.AddComponent(/datum/component/omen/teratoma) - RegisterSignal(idiot, COMSIG_ATOM_EXPOSE_REAGENTS, PROC_REF(prevent_banned_reagent_exposure)) + gain_trauma(/datum/brain_trauma/mild/kleptomania, TRAUMA_RESILIENCE_ABSOLUTE) -/datum/species/teratoma/on_species_loss(mob/living/carbon/human/idiot, datum/species/new_species, pref_load) +/obj/item/organ/internal/brain/teratoma/on_insert(mob/living/carbon/organ_owner, special) + . = ..() + misfortune = organ_owner.AddComponent(/datum/component/omen/teratoma) + +/obj/item/organ/internal/brain/teratoma/on_remove(mob/living/carbon/organ_owner, special) . = ..() QDEL_NULL(misfortune) - UnregisterSignal(idiot, COMSIG_ATOM_EXPOSE_REAGENTS) -/datum/species/teratoma/random_name(gender, unique, lastname) - return "teratoma ([rand(1, 999)])" +/obj/item/organ/internal/liver/teratoma + name = "horribly malformed liver" + desc = "It seems to pulse as if existed out of spite of nature itself." + var/datum/component/regenerator/teratoma/oh_god_why -// removes banned reagents from the list of reagents that'll be exposed -/datum/species/teratoma/proc/prevent_banned_reagent_exposure(datum/source, list/reagents, datum/reagents/holder, methods, volume_modifier, show_message) - SIGNAL_HANDLER - for(var/datum/reagent/reagent as anything in reagents) - if(is_banned_chem(reagent)) - reagents -= reagent +/obj/item/organ/internal/liver/teratoma/on_insert(mob/living/carbon/organ_owner, special) + . = ..() + oh_god_why = organ_owner.AddComponent(/datum/component/regenerator/teratoma, health_per_second = 1, ignore_damage_types = list(OXY, STAMINA), outline_colour = COLOR_RED_LIGHT) // ignore oxy damage so they can regen while in crit if you just leave them there + RegisterSignal(organ_owner, COMSIG_ATOM_EXPOSE_REAGENTS, PROC_REF(prevent_banned_reagent_exposure)) + if(ishuman(organ_owner)) + var/mob/living/carbon/human/human_owner = organ_owner + human_owner.physiology?.tox_mod *= 0.25 + +/obj/item/organ/internal/liver/teratoma/on_remove(mob/living/carbon/organ_owner, special) + . = ..() + QDEL_NULL(oh_god_why) + UnregisterSignal(organ_owner, COMSIG_ATOM_EXPOSE_REAGENTS) + if(ishuman(organ_owner)) + var/mob/living/carbon/human/human_owner = organ_owner + human_owner.physiology?.tox_mod /= 0.25 + +/obj/item/organ/internal/liver/teratoma/handle_chemical(mob/living/carbon/organ_owner, datum/reagent/chem, seconds_per_tick, times_fired) + . = ..() + if(is_banned_chem(chem)) + chem.holder?.remove_reagent(chem.type, chem.volume) + return COMSIG_MOB_STOP_REAGENT_CHECK -/datum/species/teratoma/proc/is_banned_chem(reagent) +/obj/item/organ/internal/liver/teratoma/proc/is_banned_chem(reagent) var/static/list/disallowed_chems_typecache if(!disallowed_chems_typecache) disallowed_chems_typecache = typecacheof(list( @@ -81,28 +126,19 @@ )) return is_type_in_typecache(reagent, disallowed_chems_typecache) +// removes banned reagents from the list of reagents that'll be exposed +/obj/item/organ/internal/liver/teratoma/proc/prevent_banned_reagent_exposure(datum/source, list/reagents, datum/reagents/holder, methods, volume_modifier, show_message) + SIGNAL_HANDLER + for(var/datum/reagent/reagent as anything in reagents) + if(is_banned_chem(reagent)) + reagents -= reagent + /datum/component/omen/teratoma incidents_left = INFINITY luck_mod = 0.75 damage_mod = 0.2 -/mob/living/carbon/human/species/teratoma - race = /datum/species/teratoma - -/obj/item/organ/internal/tongue/teratoma - liked_foodtypes = MEAT | BUGS | GORE | GROSS | RAW - disliked_foodtypes = CLOTH - -/obj/item/organ/internal/tongue/teratoma/get_scream_sound() - return pick( - 'sound/creatures/monkey/monkey_screech_1.ogg', - 'sound/creatures/monkey/monkey_screech_2.ogg', - 'sound/creatures/monkey/monkey_screech_3.ogg', - 'sound/creatures/monkey/monkey_screech_4.ogg', - 'sound/creatures/monkey/monkey_screech_5.ogg', - 'sound/creatures/monkey/monkey_screech_6.ogg', - 'sound/creatures/monkey/monkey_screech_7.ogg', - ) - -/obj/item/organ/internal/tongue/teratoma/get_laugh_sound() - return 'monkestation/sound/voice/laugh/simian/monkey_laugh_1.ogg' +/datum/component/regenerator/teratoma/do_heal(amt) + var/mob/living/living_parent = parent + living_parent.heal_overall_damage(brute = amt, burn = amt, updating_health = FALSE) + living_parent.adjustToxLoss(-(amt * 0.5), updating_health = TRUE) diff --git a/monkestation/code/modules/mob/living/carbon/human/species_type/tundra_moths/mothaccessories.dm b/monkestation/code/modules/mob/living/carbon/human/species_type/tundra_moths/mothaccessories.dm new file mode 100644 index 000000000000..c56a2448d396 --- /dev/null +++ b/monkestation/code/modules/mob/living/carbon/human/species_type/tundra_moths/mothaccessories.dm @@ -0,0 +1,34 @@ +// These can be accessed by all types of moths, just modular + +// Tundra +/datum/sprite_accessory/moth_wings/tundra + name = "Tundra" + icon = 'monkestation/icons/mob/species/tundramoths/moth_wings.dmi' + icon_state = "tundra" + +/datum/sprite_accessory/moth_antennae/tundra + name = "Tundra" + icon = 'monkestation/icons/mob/species/tundramoths/moth_antennae.dmi' + icon_state = "tundra" + +/datum/sprite_accessory/moth_markings/tundra + name = "Tundra" + icon = 'monkestation/icons/mob/species/tundramoths/moth_markings.dmi' + icon_state = "tundra" + +// Bluespace +/datum/sprite_accessory/moth_wings/bluespace + icon = 'monkestation/icons/mob/species/tundramoths/moth_wings.dmi' + name = "Bluespace" + icon_state = "bluespace" + +/datum/sprite_accessory/moth_antennae/bluespace + name = "Bluespace" + icon = 'monkestation/icons/mob/species/tundramoths/moth_antennae.dmi' + icon_state = "bluespace" + +// Twilight +/datum/sprite_accessory/moth_antennae/twilight + name = "Twilight" + icon = 'monkestation/icons/mob/species/tundramoths/moth_antennae.dmi' + icon_state = "twilight" diff --git a/monkestation/code/modules/mob/living/carbon/human/species_type/tundra_moths/tundramoths.dm b/monkestation/code/modules/mob/living/carbon/human/species_type/tundra_moths/tundramoths.dm new file mode 100644 index 000000000000..20486f6f44f6 --- /dev/null +++ b/monkestation/code/modules/mob/living/carbon/human/species_type/tundra_moths/tundramoths.dm @@ -0,0 +1,86 @@ +/datum/species/moth/tundra + name = "\improper Tundra Moth" + plural_form = "Tundra Moths" + id = SPECIES_TUNDRA + mutanteyes = /obj/item/organ/internal/eyes/moth/tundra + external_organs = list(/obj/item/organ/external/wings/moth = "Tundra", /obj/item/organ/external/antennae = "Tundra") + + bodypart_overrides = list( + BODY_ZONE_HEAD = /obj/item/bodypart/head/tundramoth, + BODY_ZONE_CHEST = /obj/item/bodypart/chest/tundramoth, + BODY_ZONE_L_ARM = /obj/item/bodypart/arm/left/tundramoth, + BODY_ZONE_R_ARM = /obj/item/bodypart/arm/right/tundramoth, + BODY_ZONE_L_LEG = /obj/item/bodypart/leg/left/tundramoth, + BODY_ZONE_R_LEG = /obj/item/bodypart/leg/right/tundramoth, + ) + + coldmod = 0.67 + heatmod = 1.5 + + +//Body parts +/obj/item/bodypart/head/tundramoth + name = "Tundra Head" + desc = "It looks just like a moths, but its covered in black fur. Is that a bald sp-" + icon = 'monkestation/icons/mob/species/tundramoths/bodyparts.dmi' + icon_state = "tundra_moth_head" + icon_static = 'monkestation/icons/mob/species/tundramoths/bodyparts.dmi' + limb_id = SPECIES_TUNDRA + is_dimorphic = FALSE + should_draw_greyscale = FALSE + head_flags = /obj/item/bodypart/head/moth::head_flags + +/obj/item/bodypart/chest/tundramoth + name = "Tundra chest" + desc = "It looks just like a moths, but its covered in black fur." + icon = 'monkestation/icons/mob/species/tundramoths/bodyparts.dmi' + icon_state = "tundra_moth_chest_m" + icon_static = 'monkestation/icons/mob/species/tundramoths/bodyparts.dmi' + limb_id = SPECIES_TUNDRA + is_dimorphic = TRUE + should_draw_greyscale = FALSE + wing_types = list(/obj/item/organ/external/wings/functional/moth/megamoth, /obj/item/organ/external/wings/functional/moth/mothra) + +/obj/item/bodypart/arm/left/tundramoth + name = "Tundra left arm" + desc = "It looks just like a moths, but its covered in black fur." + icon = 'monkestation/icons/mob/species/tundramoths/bodyparts.dmi' + icon_state = "tundra_moth_l_arm" + icon_static = 'monkestation/icons/mob/species/tundramoths/bodyparts.dmi' + limb_id = SPECIES_TUNDRA + should_draw_greyscale = FALSE + unarmed_attack_verb = "slash" + unarmed_attack_effect = ATTACK_EFFECT_CLAW + unarmed_attack_sound = 'sound/weapons/slash.ogg' + unarmed_miss_sound = 'sound/weapons/slashmiss.ogg' + +/obj/item/bodypart/arm/right/tundramoth + name = "Tundra right arm" + desc = "It looks just like a moths, but its covered in black fur." + icon = 'monkestation/icons/mob/species/tundramoths/bodyparts.dmi' + icon_state = "tundra_moth_r_arm" + icon_static = 'monkestation/icons/mob/species/tundramoths/bodyparts.dmi' + limb_id = SPECIES_TUNDRA + should_draw_greyscale = FALSE + unarmed_attack_verb = "slash" + unarmed_attack_effect = ATTACK_EFFECT_CLAW + unarmed_attack_sound = 'sound/weapons/slash.ogg' + unarmed_miss_sound = 'sound/weapons/slashmiss.ogg' + +/obj/item/bodypart/leg/left/tundramoth + name = "Tundra left leg" + desc = "It looks just like a moths, but its covered in black fur." + icon = 'monkestation/icons/mob/species/tundramoths/bodyparts.dmi' + icon_state = "tundra_moth_l_leg" + icon_static = 'monkestation/icons/mob/species/tundramoths/bodyparts.dmi' + limb_id = SPECIES_TUNDRA + should_draw_greyscale = FALSE + +/obj/item/bodypart/leg/right/tundramoth + name = "Tundra right leg" + desc = "It looks just like a moths, but its covered in black fur." + icon = 'monkestation/icons/mob/species/tundramoths/bodyparts.dmi' + icon_state = "tundra_moth_r_leg" + icon_static = 'monkestation/icons/mob/species/tundramoths/bodyparts.dmi' + limb_id = SPECIES_TUNDRA + should_draw_greyscale = FALSE diff --git a/monkestation/code/modules/mob/living/living_update_icons.dm b/monkestation/code/modules/mob/living/living_update_icons.dm new file mode 100644 index 000000000000..2a2e69697078 --- /dev/null +++ b/monkestation/code/modules/mob/living/living_update_icons.dm @@ -0,0 +1,41 @@ +/** + * Used to restore the mob's transform when it is in an undefined state + * If the mob's transform is not messed up just use update_transform() + */ +/mob/living/proc/rebuild_transform() + var/matrix/ntransform = matrix() + + /** + * pixel x/y/w/z all discard values after the decimal separator. + * That, coupled with the rendered interpolation, may make the + * icons look awfuller than they already are, or not, whatever. + * The solution to this nit is translating the missing decimals. + * also flooring increases the distance from 0 for negative numbers. + */ + var/abs_pixel_y_offset = 0 + + if(lying_angle && rotate_on_lying) + ntransform.Turn(lying_angle) + + if(current_size != RESIZE_DEFAULT_SIZE) + ntransform.Scale(current_size) + + //Update final_pixel_y so our mob doesn't go out of the southern bounds of the tile when standing + if(!lying_angle || !rotate_on_lying) //But not if the mob has been rotated. + //Make sure the body position y offset is also updated + body_position_pixel_y_offset = get_pixel_y_offset_standing(current_size) + abs_pixel_y_offset = abs(body_position_pixel_y_offset) + var/new_translate = (abs_pixel_y_offset - round(abs_pixel_y_offset)) * SIGN(body_position_pixel_y_offset) + if(new_translate) + ntransform.Translate(0, new_translate) + + //Update the height of the maptext according to the size of the mob so they don't overlap. + var/old_maptext_offset = body_maptext_height_offset + body_maptext_height_offset = initial(maptext_height) * (current_size - 1) * 0.5 + maptext_height += body_maptext_height_offset - old_maptext_offset + + var/pixel_y = base_pixel_y + body_position_pixel_y_offset + + SEND_SIGNAL(src, COMSIG_PAUSE_FLOATING_ANIM, 0.3 SECONDS) + animate(src, transform = ntransform, time = 0, pixel_y = pixel_y, dir = dir, easing = NONE) + SEND_SIGNAL(src, COMSIG_LIVING_POST_UPDATE_TRANSFORM, TRUE, lying_angle, TRUE) diff --git a/monkestation/code/modules/modular_computers/computers/item/role_tablet_presets.dm b/monkestation/code/modules/modular_computers/computers/item/role_tablet_presets.dm index fda8d82d90c6..b3910fab9d6c 100644 --- a/monkestation/code/modules/modular_computers/computers/item/role_tablet_presets.dm +++ b/monkestation/code/modules/modular_computers/computers/item/role_tablet_presets.dm @@ -51,3 +51,8 @@ greyscale_config = /datum/greyscale_config/tablet/stripe_thick greyscale_colors = "#D99A2E#0EC220#727272" starting_programs = list() + +/obj/item/modular_computer/pda/barber + name = "barber PDA" + greyscale_colors = "#933ea8#235AB2" + starting_programs = list() diff --git a/monkestation/code/modules/overwatch/subsystem.dm b/monkestation/code/modules/overwatch/subsystem.dm index 84e12a75c876..77d7759dde04 100644 --- a/monkestation/code/modules/overwatch/subsystem.dm +++ b/monkestation/code/modules/overwatch/subsystem.dm @@ -414,7 +414,7 @@ SUBSYSTEM_DEF(overwatch) if(response.body == "[]") return var/active_ban_count = 0 - bans = json_decode(response["body"]) + bans = json_decode(response.body) for(var/list/ban in bans) if(ban["type"] != "Server") continue diff --git a/monkestation/code/modules/ranching/satyr/abilities.dm b/monkestation/code/modules/ranching/satyr/abilities.dm index ceaa5a15a55e..9f3de529d58d 100644 --- a/monkestation/code/modules/ranching/satyr/abilities.dm +++ b/monkestation/code/modules/ranching/satyr/abilities.dm @@ -17,7 +17,7 @@ if(iscarbon(mob)) var/mob/living/carbon/carbon = mob carbon.stamina.adjust(-55) - log_combat(owner, mob, "headbutted (10 brute damage)") + log_combat(owner, mob, "headbutted (15 brute damage)") if(!knocked) var/mob/living/owner_mob = owner owner_mob.AdjustKnockdown(0.2 SECONDS) diff --git a/monkestation/code/modules/ranching/satyr/external_organs.dm b/monkestation/code/modules/ranching/satyr/external_organs.dm index 3eb5b24eaeea..39c370397c0a 100644 --- a/monkestation/code/modules/ranching/satyr/external_organs.dm +++ b/monkestation/code/modules/ranching/satyr/external_organs.dm @@ -1,11 +1,11 @@ /obj/item/organ/external/satyr_fluff name = "satyr fluff" - desc = "You shouldn't see this" + desc = "A goat's fur" icon_state = "" icon = 'monkestation/icons/obj/medical/organs/organs.dmi' preference = "feature_satyr_fluff" - zone = BODY_ZONE_HEAD + zone = BODY_ZONE_PRECISE_GROIN slot = ORGAN_SLOT_EXTERNAL_FLUFF use_mob_sprite_as_obj_sprite = TRUE @@ -38,15 +38,13 @@ return TRUE -/obj/item/organ/external/satyr_horns +/obj/item/organ/external/horns/satyr_horns name = "satyr horns" - desc = "You shouldn't see this" + desc = "A goat's horns" icon_state = "" icon = 'monkestation/icons/obj/medical/organs/organs.dmi' preference = "feature_satyr_horns" - zone = BODY_ZONE_HEAD - slot = ORGAN_SLOT_EXTERNAL_HORNS use_mob_sprite_as_obj_sprite = TRUE bodypart_overlay = /datum/bodypart_overlay/mutant/satyr_horns @@ -65,15 +63,13 @@ return TRUE -/obj/item/organ/external/satyr_tail +/obj/item/organ/external/tail/satyr_tail name = "satyr tail" - desc = "You shouldn't see this" + desc = "A goat's tail" icon_state = "" icon = 'monkestation/icons/obj/medical/organs/organs.dmi' preference = "feature_satyr_tail" - zone = BODY_ZONE_HEAD - slot = ORGAN_SLOT_EXTERNAL_TAIL use_mob_sprite_as_obj_sprite = TRUE bodypart_overlay = /datum/bodypart_overlay/mutant/satyr_tail diff --git a/monkestation/code/modules/ranching/satyr/species.dm b/monkestation/code/modules/ranching/satyr/species.dm index 27da3c9bf694..7240062b40c4 100644 --- a/monkestation/code/modules/ranching/satyr/species.dm +++ b/monkestation/code/modules/ranching/satyr/species.dm @@ -11,8 +11,8 @@ inherent_biotypes = MOB_ORGANIC | MOB_HUMANOID external_organs = list( /obj/item/organ/external/satyr_fluff = "normal", - /obj/item/organ/external/satyr_tail = "short", - /obj/item/organ/external/satyr_horns = "back", + /obj/item/organ/external/tail/satyr_tail = "short", + /obj/item/organ/external/horns/satyr_horns = "back", ) meat = /obj/item/food/meat/steak mutanttongue = /obj/item/organ/internal/tongue/satyr diff --git a/monkestation/code/modules/research/designs/autolathe/service_designs.dm b/monkestation/code/modules/research/designs/autolathe/service_designs.dm new file mode 100644 index 000000000000..2cc116719b28 --- /dev/null +++ b/monkestation/code/modules/research/designs/autolathe/service_designs.dm @@ -0,0 +1,60 @@ + +/datum/design/scissors + name = "Barber's Scissors" + id = "scissors" + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE + materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT*0.5) + build_path = /obj/item/scissors + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_SERVICE, + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE + +/datum/design/hairbrush + name = "Hairbrush" + id = "hairbrush" + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE + materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT*0.5) + build_path = /obj/item/hairbrush + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_SERVICE, + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE + +/datum/design/hairbrush/comb + name = "Comb" + id = "comb" + build_type = AUTOLATHE | PROTOLATHE | AWAY_LATHE + materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT*0.5) + build_path = /obj/item/hairbrush/comb + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_SERVICE, + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE + +/datum/design/dyespray + name = "Hair Dye Spray" + id = "dyespray" + build_type = PROTOLATHE | AWAY_LATHE + materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT*0.5, /datum/material/plastic = SMALL_MATERIAL_AMOUNT*0.5) + build_path = /obj/item/dyespray + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_SERVICE, + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE + +/datum/design/fur_dyer + name = "Electric Fur Dyer" + id = "fur_dyer" + build_type = PROTOLATHE | AWAY_LATHE + materials = list(/datum/material/iron = SMALL_MATERIAL_AMOUNT*2, /datum/material/glass = SMALL_MATERIAL_AMOUNT*1, /datum/material/plastic = SMALL_MATERIAL_AMOUNT*0.5) + build_path = /obj/item/fur_dyer + category = list( + RND_CATEGORY_INITIAL, + RND_CATEGORY_TOOLS + RND_SUBCATEGORY_TOOLS_SERVICE, + ) + departmental_flags = DEPARTMENT_BITFLAG_SERVICE diff --git a/monkestation/code/modules/research/designs/medical_designs.dm b/monkestation/code/modules/research/designs/medical_designs.dm index 533b1a0629ca..94fb3386dc9d 100644 --- a/monkestation/code/modules/research/designs/medical_designs.dm +++ b/monkestation/code/modules/research/designs/medical_designs.dm @@ -23,7 +23,6 @@ ) departmental_flags = DEPARTMENT_BITFLAG_MEDICAL - /datum/design/surgery/healing/filter_upgrade name = "Filter Blood Upgrade" desc = "Newfound knowledge allows us to remove the effect of toxins on the body whenever filtering someone's blood." @@ -53,7 +52,7 @@ surgery = /datum/surgery/robot_healing id = "surgery_heal_robot_base" research_icon_state = "surgery_chest" - + /datum/design/surgery/robot_healing/upgraded name = "Repair Robotic Limbs (Physical) Upgrade" desc = "A surgical procedure that provides highly effective repairs and maintenance to robotic limbs. Is somewhat more efficient when the patient is severely damaged." @@ -67,3 +66,16 @@ surgery = /datum/surgery/robot_healing/experimental id = "surgery_heal_robot_upgrade_femto" research_icon_state = "surgery_chest" + +/datum/design/cyberimp_sprinter + name = "Vacuole ligament system" + desc = "Mechicanical servos in ones leg that increases their natural stride. Popular amongst parkour enthusiasts. You need to implant this in both of your legs to make it work." + id = "ci-sprinter" + build_type = PROTOLATHE | AWAY_LATHE | MECHFAB + construction_time = 50 + materials = list(/datum/material/iron = 1500, /datum/material/glass = 1000, /datum/material/silver =SMALL_MATERIAL_AMOUNT*5, /datum/material/gold =SMALL_MATERIAL_AMOUNT*5) + build_path = /obj/item/organ/internal/cyberimp/leg/sprinter + category = list( + RND_CATEGORY_CYBERNETICS + RND_SUBCATEGORY_CYBERNETICS_IMPLANTS_UTILITY + ) + departmental_flags = DEPARTMENT_BITFLAG_MEDICAL diff --git a/monkestation/code/modules/research/nanites/nanite_programs/sensor.dm b/monkestation/code/modules/research/nanites/nanite_programs/sensor.dm index a83cf47d76a5..1d925f85a228 100644 --- a/monkestation/code/modules/research/nanites/nanite_programs/sensor.dm +++ b/monkestation/code/modules/research/nanites/nanite_programs/sensor.dm @@ -312,7 +312,6 @@ "Oozeling" = /datum/species/oozeling, "IPC" = /datum/species/ipc, "Monkey" = /datum/species/monkey, - "Simian" = /datum/species/simian, "Zombie" = /datum/species/zombie, "Shadow" = /datum/species/shadow, ) diff --git a/monkestation/code/modules/signboards/_signboard.dm b/monkestation/code/modules/signboards/_signboard.dm index 910b372d09cf..32fe5d783896 100644 --- a/monkestation/code/modules/signboards/_signboard.dm +++ b/monkestation/code/modules/signboards/_signboard.dm @@ -175,10 +175,10 @@ return var/bwidth = src.bound_width || world.icon_size var/bheight = src.bound_height || world.icon_size - var/text_html = MAPTEXT_GRAND9K("[html_encode(sign_text)]") + var/text_html = MAPTEXT_GRAND9K("[html_encode(sign_text)]") SET_PLANE_EXPLICIT(text_holder, GAME_PLANE_UPPER_FOV_HIDDEN, src) text_holder.layer = ABOVE_ALL_MOB_LAYER - text_holder.alpha = 140 + text_holder.alpha = 192 text_holder.maptext = text_html text_holder.maptext_x = (SIGNBOARD_WIDTH - bwidth) * -0.5 text_holder.maptext_y = bheight @@ -206,6 +206,7 @@ . = ..() if(!istype(loc, /obj/structure/signboard) || QDELING(loc)) return INITIALIZE_HINT_QDEL + AddComponent(/datum/component/seethrough, SEE_THROUGH_MAP_THREE_X_TWO, 112, use_parent_turf = TRUE) /obj/effect/abstract/signboard_holder/Destroy(force) if(!force && istype(loc, /obj/structure/signboard) && !QDELING(loc)) diff --git a/monkestation/code/modules/slimecore/crossbreeding/regenerative/colors.dm b/monkestation/code/modules/slimecore/crossbreeding/regenerative/colors.dm index 7c279e461d55..67a0fcbb9773 100644 --- a/monkestation/code/modules/slimecore/crossbreeding/regenerative/colors.dm +++ b/monkestation/code/modules/slimecore/crossbreeding/regenerative/colors.dm @@ -25,20 +25,12 @@ /datum/status_effect/regenerative_extract/adamantine extra_traits = list(TRAIT_FEARLESS, TRAIT_HARDLY_WOUNDED) -// rainbow extracts are similar to old regen extract effects, albeit it won't replace your organs, and won't heal limbs (unless you're an oozeling) -#define RAINBOW_HEAL_FLAGS ~(HEAL_ADMIN | HEAL_RESTRAINTS | HEAL_LIMBS | HEAL_REFRESH_ORGANS) - +// rainbow extracts are similar to old regen extract effects, albeit it won't replace your organs, and won't heal limbs /datum/status_effect/regenerative_extract/rainbow - alert_type = null - diminishing_multiplier = 0 // you can't use other extracts at all during this time - tick_interval = -1 - -/datum/status_effect/regenerative_extract/rainbow/on_apply() - var/heal_flags = RAINBOW_HEAL_FLAGS - if(isoozeling(owner)) // have some mercy on oozelings - heal_flags |= HEAL_LIMBS - owner.revive(heal_flags) - return FALSE // return false so we immediately clear the effect and start the cooldown - + duration = 30 SECONDS + base_healing_amt = 15 + diminishing_multiplier = 1 + diminish_time = 1.5 MINUTES + extra_traits = list(TRAIT_NOCRITOVERLAY, TRAIT_NOSOFTCRIT, TRAIT_NOHARDCRIT) + pain_amount = 80 //wow having my wounds closed up in seconds really fucking HURTS -#undef RAINBOW_HEAL_FLAGS diff --git a/monkestation/code/modules/slimecore/crossbreeding/regenerative/effect.dm b/monkestation/code/modules/slimecore/crossbreeding/regenerative/effect.dm index 763b98a02068..f1f4878fd76b 100644 --- a/monkestation/code/modules/slimecore/crossbreeding/regenerative/effect.dm +++ b/monkestation/code/modules/slimecore/crossbreeding/regenerative/effect.dm @@ -14,13 +14,15 @@ /// The multiplier that the cooldown applied after the effect ends will use. var/diminishing_multiplier = 0.75 /// How long the subsequent cooldown effect will last. - var/diminish_time = 45 SECONDS + var/diminish_time = 90 SECONDS /// The maximum nutrition level this regenerative extract can heal up to. var/nutrition_heal_cap = NUTRITION_LEVEL_FED - 50 /// Base traits given to the owner. var/static/list/given_traits = list(TRAIT_ANALGESIA, TRAIT_NOCRITDAMAGE) /// Extra traits given to the owner, added to the base traits. var/list/extra_traits + //Slime healing cause pain, oof ouch + var/pain_amount = 20 /datum/status_effect/regenerative_extract/on_apply() // So this seems weird, but this allows us to have multiple things affect the regen multiplier, @@ -35,6 +37,7 @@ /datum/status_effect/regenerative_extract/on_remove() owner.remove_traits(islist(extra_traits) ? (given_traits + extra_traits) : given_traits, id) owner.apply_status_effect(/datum/status_effect/slime_regen_cooldown, diminishing_multiplier, diminish_time) + owner.cause_pain(BODY_ZONE_CHEST, pain_amount, BRUTE) /datum/status_effect/regenerative_extract/tick(seconds_per_tick, times_fired) var/heal_amt = base_healing_amt * seconds_per_tick * multiplier @@ -58,11 +61,12 @@ owner.adjustCloneLoss(-heal_amt, updating_health = FALSE) /datum/status_effect/regenerative_extract/proc/heal_misc(heal_amt) - owner.adjust_disgust(-heal_amt) + var/blood_restore = (heal_amt * 0.25) + owner.adjust_disgust(-blood_restore) if(owner.blood_volume < BLOOD_VOLUME_NORMAL) - owner.blood_volume = min(owner.blood_volume + heal_amt, BLOOD_VOLUME_NORMAL) + owner.blood_volume = min(owner.blood_volume + blood_restore, BLOOD_VOLUME_NORMAL) if((owner.nutrition < nutrition_heal_cap) && !HAS_TRAIT(owner, TRAIT_NOHUNGER)) - owner.nutrition = min(owner.nutrition + heal_amt, nutrition_heal_cap) + owner.nutrition = min(owner.nutrition + blood_restore, nutrition_heal_cap) /datum/status_effect/regenerative_extract/proc/heal_organs(heal_amt) var/static/list/ignored_traumas @@ -93,5 +97,5 @@ /atom/movable/screen/alert/status_effect/regen_extract name = "Slime Regeneration" - desc = "A milky slime covers your skin, soothing and regenerating your injuries!" + desc = "A milky slime covers your skin, regenerating your injuries!" icon_state = "regenerative_core" diff --git a/monkestation/code/modules/store/pre_round/_pre_round_store.dm b/monkestation/code/modules/store/pre_round/_pre_round_store.dm index 30b5b849104c..697c5a4bc0f5 100644 --- a/monkestation/code/modules/store/pre_round/_pre_round_store.dm +++ b/monkestation/code/modules/store/pre_round/_pre_round_store.dm @@ -6,13 +6,10 @@ GLOBAL_LIST_EMPTY(cached_preround_items) /datum/pre_round_store var/datum/store_item/bought_item -/datum/pre_round_store/New(mob/user) - . = ..() - ui_interact(user) - /datum/pre_round_store/Destroy(force) - . = ..() + SStgui.close_uis(src) bought_item = null + return ..() /datum/pre_round_store/ui_interact(mob/user, datum/tgui/ui) . = ..() @@ -95,8 +92,7 @@ GLOBAL_LIST_EMPTY(cached_preround_items) if(!granting_time.grant_effect(new_player_mob_living)) return else - ui_close() - qdel(new_player_mob.client.readied_store) + QDEL_NULL(new_player_mob.client.readied_store) return else if(!new_player_mob.put_in_hands(created_item, FALSE)) var/obj/item/storage/backpack/backpack = new_player_mob_living.get_item_by_slot(ITEM_SLOT_BACK) @@ -107,5 +103,4 @@ GLOBAL_LIST_EMPTY(cached_preround_items) owners_prefs.adjust_metacoins(new_player_mob.client.ckey, (-initial(bought_item.item_cost)), donator_multipler = FALSE) logger.Log(LOG_CATEGORY_META, "[new_player_mob.client] bought a [created_item] for [initial(bought_item.item_cost)] (Pre-round Store)", list("currency_left" = new_player_mob.client.prefs.metacoins)) - ui_close() - qdel(new_player_mob.client.readied_store) + QDEL_NULL(new_player_mob.client.readied_store) diff --git a/monkestation/code/modules/store/store_items/__store.dm b/monkestation/code/modules/store/store_items/__store.dm index 819043b6d3b0..2cbf4b60d8e8 100644 --- a/monkestation/code/modules/store/store_items/__store.dm +++ b/monkestation/code/modules/store/store_items/__store.dm @@ -159,6 +159,7 @@ GLOBAL_LIST_EMPTY(all_store_datums) loadout_tabs += list(list("name" = "Accessory", "title" = "Uniform Accessory Slot Items", "contents" = list_to_data(GLOB.store_accessory))) loadout_tabs += list(list("name" = "Inhand", "title" = "In-hand Items", "contents" = list_to_data(GLOB.store_inhand_items))) loadout_tabs += list(list("name" = "Toys", "title" = "Toys!", "contents" = list_to_data(GLOB.store_toys))) + loadout_tabs += list(list("name" = "Plushies", "title" = "Adorable little plushies!", "contents" = list_to_data(GLOB.store_plushies))) loadout_tabs += list(list("name" = "Other", "title" = "Backpack Items", "contents" = list_to_data(GLOB.store_pockets))) data["loadout_tabs"] = loadout_tabs diff --git a/monkestation/code/modules/store/store_items/plushies.dm b/monkestation/code/modules/store/store_items/plushies.dm new file mode 100644 index 000000000000..367ce381d32a --- /dev/null +++ b/monkestation/code/modules/store/store_items/plushies.dm @@ -0,0 +1,144 @@ +GLOBAL_LIST_INIT(store_plushies, generate_store_items(/datum/store_item/plushies)) + +/datum/store_item/plushies + category = LOADOUT_ITEM_TOYS + +/datum/store_item/plushies/bee + item_cost = 7500 + name = "Bee Plushie" + item_path = /obj/item/toy/plush/beeplushie + +/datum/store_item/plushies/carpplushie + item_cost = 7500 + name = "Carp Plushie" + item_path = /obj/item/toy/plush/carpplushie + +/datum/store_item/plushies/lizard_greyscale + item_cost = 7500 + name = "Lizard Plushie" + item_path = /obj/item/toy/plush/lizard_plushie + +/datum/store_item/plushies/moth + item_cost = 7500 + name = "Moth Plushie" + item_path = /obj/item/toy/plush/moth + +/datum/store_item/plushies/narsie + item_cost = 7500 + name = "Nar'sie Plushie" + item_path = /obj/item/toy/plush/narplush + +/datum/store_item/plushies/nukie + item_cost = 7500 + name = "Nukie Plushie" + item_path = /obj/item/toy/plush/nukeplushie + +/datum/store_item/plushies/peacekeeper + item_cost = 7500 + name = "Peacekeeper Plushie" + item_path = /obj/item/toy/plush/pkplush + +/datum/store_item/plushies/ratvar + item_cost = 7500 + name = "Ratvar Plushie" + item_path = /obj/item/toy/plush/ratplush + +/datum/store_item/plushies/plasmaman + item_cost = 7500 + name = "Plasmaman Plushie" + item_path = /obj/item/toy/plush/plasmamanplushie + +/datum/store_item/plushies/rouny + item_cost = 7500 + name = "Rouny Plushie" + item_path = /obj/item/toy/plush/rouny + +/datum/store_item/plushies/snake + item_cost = 7500 + name = "Snake Plushie" + item_path = /obj/item/toy/plush/snakeplushie + +/datum/store_item/plushies/slime + item_cost = 7500 + name = "Slime Plushie" + item_path = /obj/item/toy/plush/slimeplushie + +/datum/store_item/plushies/bubble + item_cost = 7500 + name = "Bubblegum Plushie" + item_path = /obj/item/toy/plush/bubbleplush + +/datum/store_item/plushies/goat + item_cost = 7500 + name = "Strange Goat Plushie" + item_path = /obj/item/toy/plush/goatplushie + +/datum/store_item/plushies/tyria + name = "Tyria Plush" + item_path = /obj/item/toy/plush/moth/tyriaplush + item_cost = 10000 + +/datum/store_item/plushies/ook + name = "Ook Plush" + item_path = /obj/item/toy/plush/moth/ookplush + item_cost = 2500 + +/datum/store_item/plushies/ducky_plush + name = "Ducky Plush" + item_path = /obj/item/toy/plush/duckyplush + item_cost = 5000 + +/datum/store_item/plushies/sammi_plush + name = "Sammi Plush" + item_path = /obj/item/toy/plush/sammiplush + item_cost = 5000 + +/datum/store_item/plushies/cirno_plush + name = "Cirno Plush" + item_path = /obj/item/toy/plush/cirno_plush + item_cost = 10000 + +/datum/store_item/plushies/knight_plush + name = "Knight Plush" + item_path = /obj/item/toy/plush/knightplush + item_cost = 10000 + +/datum/store_item/plushies/turnip_plush + name = "Turnip Plush" + item_path = /obj/item/toy/plush/turnipplush + item_cost = 10000 + +/datum/store_item/plushies/tiny_witch_plush + name = "Tiny Witch Plush" + item_path = /obj/item/toy/plush/tinywitchplush + item_cost = 10000 + +/datum/store_item/plushies/chefomancer + name = "Chef-o-Mancer Plush" + item_path = /obj/item/toy/plush/chefomancer + item_cost = 10000 + +/datum/store_item/plushies/durrcell + name = "Durrcell Plush" + store_desc = "''Behold, Man''" + item_path = /obj/item/toy/plush/durrcell + item_cost = 6969 + +/datum/store_item/plushies/Eeble + name = "Eeble Plush" + store_desc = "Eeble is Eeble" + item_path = /obj/item/toy/plush/Eeble + item_cost = 5000 + +/datum/store_item/plushies/big_bad_wolf + name = "Big And Will Be Bad Wolf Plush" + store_desc = "" + item_path = /obj/item/toy/plush/lobotomy/big_bad_wolf + item_cost = 10000 + +/datum/store_item/plushies/scorched_girl + name = "Scorched Girl Plush" + store_desc = "" + item_path = /obj/item/toy/plush/lobotomy/scorched + item_cost = 10000 + diff --git a/monkestation/code/modules/store/store_items/toys.dm b/monkestation/code/modules/store/store_items/toys.dm index 3f4f2df80112..9aa2547eca96 100644 --- a/monkestation/code/modules/store/store_items/toys.dm +++ b/monkestation/code/modules/store/store_items/toys.dm @@ -9,76 +9,6 @@ GLOBAL_LIST_INIT(store_toys, generate_store_items(/datum/store_item/toys)) name = "Toy Foam Sword" item_path = /obj/item/toy/sword -/datum/store_item/toys/bee - item_cost = 7500 - name = "Bee Plushie" - item_path = /obj/item/toy/plush/beeplushie - -/datum/store_item/toys/carpplushie - item_cost = 7500 - name = "Carp Plushie" - item_path = /obj/item/toy/plush/carpplushie - -/datum/store_item/toys/lizard_greyscale - item_cost = 7500 - name = "Lizard Plushie" - item_path = /obj/item/toy/plush/lizard_plushie - -/datum/store_item/toys/moth - item_cost = 7500 - name = "Moth Plushie" - item_path = /obj/item/toy/plush/moth - -/datum/store_item/toys/narsie - item_cost = 7500 - name = "Nar'sie Plushie" - item_path = /obj/item/toy/plush/narplush - -/datum/store_item/toys/nukie - item_cost = 7500 - name = "Nukie Plushie" - item_path = /obj/item/toy/plush/nukeplushie - -/datum/store_item/toys/peacekeeper - item_cost = 7500 - name = "Peacekeeper Plushie" - item_path = /obj/item/toy/plush/pkplush - -/datum/store_item/toys/ratvar - item_cost = 7500 - name = "Ratvar Plushie" - item_path = /obj/item/toy/plush/ratplush - -/datum/store_item/toys/plasmaman - item_cost = 7500 - name = "Plasmaman Plushie" - item_path = /obj/item/toy/plush/plasmamanplushie - -/datum/store_item/toys/rouny - item_cost = 7500 - name = "Rouny Plushie" - item_path = /obj/item/toy/plush/rouny - -/datum/store_item/toys/snake - item_cost = 7500 - name = "Snake Plushie" - item_path = /obj/item/toy/plush/snakeplushie - -/datum/store_item/toys/slime - item_cost = 7500 - name = "Slime Plushie" - item_path = /obj/item/toy/plush/slimeplushie - -/datum/store_item/toys/bubble - item_cost = 7500 - name = "Bubblegum Plushie" - item_path = /obj/item/toy/plush/bubbleplush - -/datum/store_item/toys/goat - item_cost = 7500 - name = "Strange Goat Plushie" - item_path = /obj/item/toy/plush/goatplushie - /datum/store_item/toys/card_deck item_cost = 2500 name = "Playing Card Deck" @@ -173,58 +103,3 @@ GLOBAL_LIST_INIT(store_toys, generate_store_items(/datum/store_item/toys)) item_path = /obj/item/toy/katana item_cost = 8000 -/datum/store_item/toys/tyria - name = "Tyria Plush" - item_path = /obj/item/toy/plush/moth/tyriaplush - item_cost = 10000 - -/datum/store_item/toys/ook - name = "Ook Plush" - item_path = /obj/item/toy/plush/moth/ookplush - item_cost = 2500 - -/datum/store_item/toys/ducky_plush - name = "Ducky Plush" - item_path = /obj/item/toy/plush/duckyplush - item_cost = 5000 - -/datum/store_item/toys/sammi_plush - name = "Sammi Plush" - item_path = /obj/item/toy/plush/sammiplush - item_cost = 5000 - -/datum/store_item/toys/cirno_plush - name = "Cirno Plush" - item_path = /obj/item/toy/plush/cirno_plush - item_cost = 10000 - -/datum/store_item/toys/knight_plush - name = "Knight Plush" - item_path = /obj/item/toy/plush/knightplush - item_cost = 10000 - -/datum/store_item/toys/turnip_plush - name = "Turnip Plush" - item_path = /obj/item/toy/plush/turnipplush - item_cost = 10000 - -/datum/store_item/toys/tiny_witch_plush - name = "Tiny Witch Plush" - item_path = /obj/item/toy/plush/tinywitchplush - item_cost = 10000 - -/datum/store_item/toys/chefomancer - name = "Chef-o-Mancer Plush" - item_path = /obj/item/toy/plush/chefomancer - item_cost = 10000 - -/datum/store_item/toys/durrcell - name = "Durrcell Plush" - store_desc = "''Behold, Man''" - item_path = /obj/item/toy/plush/durrcell - item_cost = 6969 -/datum/store_item/toys/Eeble - name = "Eeble Plush" - store_desc = "Eeble is Eeble" - item_path = /obj/item/toy/plush/Eeble - item_cost = 5000 diff --git a/monkestation/code/modules/storytellers/converted_events/_base_event.dm b/monkestation/code/modules/storytellers/converted_events/_base_event.dm index 4335c4386191..f8c8d5629cbf 100644 --- a/monkestation/code/modules/storytellers/converted_events/_base_event.dm +++ b/monkestation/code/modules/storytellers/converted_events/_base_event.dm @@ -145,6 +145,8 @@ /// A list of extra events to force whenever this one is chosen by the storyteller. /// Can either be normal list or a weighted list. var/list/extra_spawned_events + /// Similar to extra_spawned_events however these are only used by roundstart events and will only try and run if we have the points to do so + var/list/preferred_events /datum/round_event_control/antagonist/solo/from_ghosts/get_candidates() var/round_started = SSticker.HasRoundStarted() @@ -210,13 +212,18 @@ var/prompted_picking = FALSE //TODO: Implement this /// DO NOT SET THIS MANUALLY, THIS IS INHERITED FROM THE EVENT CONTROLLER ON NEW var/list/extra_spawned_events + // Same as above + var/list/preferred_events /datum/round_event/antagonist/solo/New(my_processing, datum/round_event_control/event_controller) . = ..() if(istype(event_controller, /datum/round_event_control/antagonist/solo)) var/datum/round_event_control/antagonist/solo/antag_event_controller = event_controller - if(antag_event_controller?.extra_spawned_events) - extra_spawned_events = fill_with_ones(antag_event_controller.extra_spawned_events) + if(antag_event_controller) + if(antag_event_controller.extra_spawned_events) + extra_spawned_events = fill_with_ones(antag_event_controller.extra_spawned_events) + if(antag_event_controller.preferred_events) + preferred_events = fill_with_ones(antag_event_controller.preferred_events) /datum/round_event/antagonist/solo/setup() var/datum/round_event_control/antagonist/solo/cast_control = control @@ -241,6 +248,7 @@ var/list/cliented_list = list() for(var/mob/living/mob as anything in possible_candidates) cliented_list += mob.client + if(length(cliented_list)) mass_adjust_antag_rep(cliented_list, 1) @@ -272,6 +280,7 @@ if(QDELETED(picked_client)) continue var/mob/picked_mob = picked_client.mob + picked_mob?.mind?.picking = TRUE log_storyteller("Picked antag event mob: [picked_mob], special role: [picked_mob.mind?.special_role ? picked_mob.mind.special_role : "none"]") candidates |= picked_mob diff --git a/monkestation/code/modules/storytellers/converted_events/solo/bloodcult.dm b/monkestation/code/modules/storytellers/converted_events/solo/bloodcult.dm index 6537de94516e..378199bb53d4 100644 --- a/monkestation/code/modules/storytellers/converted_events/solo/bloodcult.dm +++ b/monkestation/code/modules/storytellers/converted_events/solo/bloodcult.dm @@ -40,6 +40,7 @@ weight = 4 max_occurrences = 1 event_icon_state = "cult" + preferred_events = list(/datum/round_event_control/antagonist/solo/clockcult = 1) /datum/round_event/antagonist/solo/bloodcult excute_round_end_reports = TRUE diff --git a/monkestation/code/modules/storytellers/converted_events/solo/clockwork_cult.dm b/monkestation/code/modules/storytellers/converted_events/solo/clockwork_cult.dm index 90c8a533750d..98f2a7adbbf8 100644 --- a/monkestation/code/modules/storytellers/converted_events/solo/clockwork_cult.dm +++ b/monkestation/code/modules/storytellers/converted_events/solo/clockwork_cult.dm @@ -39,6 +39,7 @@ weight = 0 max_occurrences = 1 event_icon_state = "clockcult" + preferred_events = list(/datum/round_event_control/antagonist/solo/bloodcult = 1) /datum/round_event/antagonist/solo/clockcult end_when = 60000 diff --git a/monkestation/code/modules/storytellers/gamemode_subsystem.dm b/monkestation/code/modules/storytellers/gamemode_subsystem.dm index b8a1179eb9b7..2a9653e90a39 100644 --- a/monkestation/code/modules/storytellers/gamemode_subsystem.dm +++ b/monkestation/code/modules/storytellers/gamemode_subsystem.dm @@ -3,6 +3,8 @@ #define DEFAULT_STORYTELLER_VOTE_OPTIONS 4 ///amount of players we can have before no longer running votes for storyteller #define MAX_POP_FOR_STORYTELLER_VOTE 25 +///the duration into the round for which roundstart events are still valid to run +#define ROUNDSTART_VALID_TIMEFRAME 3 MINUTES SUBSYSTEM_DEF(gamemode) name = "Gamemode" @@ -15,7 +17,7 @@ SUBSYSTEM_DEF(gamemode) /// List of our event tracks for fast access during for loops. var/list/event_tracks = EVENT_TRACKS /// Our storyteller. They progresses our trackboards and picks out events - var/datum/storyteller/storyteller + var/datum/storyteller/current_storyteller /// Result of the storyteller vote/pick. Defaults to the guide. var/selected_storyteller = /datum/storyteller/guide /// List of all the storytellers. Populated at init. Associative from type @@ -116,13 +118,10 @@ SUBSYSTEM_DEF(gamemode) var/list/control = list() //list of all datum/round_event_control. Used for selecting events based on weight and occurrences. var/list/running = list() //list of all existing /datum/round_event var/list/round_end_data = list() //list of all reports that need to add round end reports - var/list/currentrun = list() /// List of all uncategorized events, because they were wizard or holiday events var/list/uncategorized = list() - var/list/holidays //List of all holidays occuring today or null if no holidays - /// Event frequency multiplier, it exists because wizard, eugh. var/event_frequency_multiplier = 1 @@ -155,7 +154,10 @@ SUBSYSTEM_DEF(gamemode) /// What is our currently desired/selected roundstart event var/datum/round_event_control/antagonist/solo/current_roundstart_event var/list/last_round_events = list() + /// Has a roundstart event been run var/ran_roundstart = FALSE + /// Are we able to run roundstart events + var/can_run_roundstart = TRUE var/list/triggered_round_events = list() /datum/controller/subsystem/gamemode/Initialize(time, zlevel) @@ -170,12 +172,12 @@ SUBSYSTEM_DEF(gamemode) for(var/datum/round_event_control/event_type as anything in typesof(/datum/round_event_control)) if(!event_type::typepath || !event_type::name) continue + var/datum/round_event_control/event = new event_type if(!event.valid_for_map()) qdel(event) continue // event isn't good for this map no point in trying to add it to the list control += event //add it to the list of all events (controls) - getHoliday() load_config_vars() load_event_config_vars() @@ -193,10 +195,33 @@ SUBSYSTEM_DEF(gamemode) return SS_INIT_NO_NEED return SS_INIT_SUCCESS - /datum/controller/subsystem/gamemode/fire(resumed = FALSE) - if(!resumed) - src.currentrun = running.Copy() + if(SSticker.round_start_time && (world.time - SSticker.round_start_time) >= ROUNDSTART_VALID_TIMEFRAME) + can_run_roundstart = FALSE + else if(current_roundstart_event && length(current_roundstart_event.preferred_events)) //note that this implementation is made for preferred_events being other roundstart events + var/list/preferred_copy = current_roundstart_event.preferred_events.Copy() + var/datum/round_event_control/selected_event = pick_weight(preferred_copy) + var/player_count = get_active_player_count(alive_check = TRUE, afk_check = TRUE, human_check = TRUE) + if(ispath(selected_event)) //get the instances if we dont have them + current_roundstart_event.preferred_events = list() + for(var/datum/round_event_control/e_control as anything in preferred_copy) + current_roundstart_event.preferred_events[new e_control] = preferred_copy[e_control] + preferred_copy = current_roundstart_event.preferred_events.Copy() + selected_event = null + else if(!selected_event.can_spawn_event(player_count)) + preferred_copy -= selected_event + selected_event = null + + var/sanity = 0 + while(!selected_event && length(preferred_copy) && sanity < 100) + sanity++ + selected_event = pick_weight(preferred_copy) + if(!selected_event.can_spawn_event(player_count)) + preferred_copy -= selected_event + selected_event = null + + if(selected_event) + current_storyteller.try_buy_event(selected_event) ///Handle scheduled events for(var/datum/scheduled_event/sch_event in scheduled_events) @@ -207,24 +232,11 @@ SUBSYSTEM_DEF(gamemode) sch_event.alerted_admins = TRUE message_admins("Scheduled Event: [sch_event.event] will run in [(sch_event.start_time - world.time) / 10] seconds. (CANCEL) (REFUND)") - if(!halted_storyteller && next_storyteller_process <= world.time && storyteller) + if(!halted_storyteller && next_storyteller_process <= world.time && current_storyteller) // We update crew information here to adjust population scalling and event thresholds for the storyteller. update_crew_infos() next_storyteller_process = world.time + STORYTELLER_WAIT_TIME - storyteller.process(STORYTELLER_WAIT_TIME * 0.1) - - //cache for sanic speed (lists are references anyways) - var/list/currentrun = src.currentrun - - while(currentrun.len) - var/datum/thing = currentrun[currentrun.len] - currentrun.len-- - if(thing) - thing.process(wait * 0.1) - else - running.Remove(thing) - if (MC_TICK_CHECK) - return + current_storyteller.process(STORYTELLER_WAIT_TIME * 0.1) /// Gets the number of antagonists the antagonist injection events will stop rolling after. /datum/controller/subsystem/gamemode/proc/get_antag_cap() @@ -262,6 +274,8 @@ SUBSYSTEM_DEF(gamemode) var/list/candidate_candidates = list() //lol for(var/mob/player as anything in GLOB.player_list) + if(QDELETED(player) || player.mind?.picking) + continue if(ready_newplayers && isnewplayer(player)) var/mob/dead/new_player/new_player = player if(new_player.ready == PLAYER_READY_TO_PLAY && new_player.mind && new_player.check_preferences()) @@ -347,7 +361,7 @@ SUBSYSTEM_DEF(gamemode) /// We roll points to be spent for roundstart events, including antagonists. /datum/controller/subsystem/gamemode/proc/roll_pre_setup_points() - if(storyteller.disable_distribution || halted_storyteller) + if(current_storyteller.disable_distribution || halted_storyteller) return /// Distribute points for(var/track in event_track_points) @@ -371,12 +385,12 @@ SUBSYSTEM_DEF(gamemode) gain_amt = ROUNDSTART_OBJECTIVES_GAIN var/calc_value = base_amt + (gain_amt * ready_players) calc_value *= roundstart_point_multipliers[track] - calc_value *= storyteller.starting_point_multipliers[track] - calc_value *= (rand(100 - storyteller.roundstart_points_variance,100 + storyteller.roundstart_points_variance)/100) + calc_value *= current_storyteller.starting_point_multipliers[track] + calc_value *= (rand(100 - current_storyteller.roundstart_points_variance,100 + current_storyteller.roundstart_points_variance)/100) event_track_points[track] = round(calc_value) /// If the storyteller guarantees an antagonist roll, add points to make it so. - if(storyteller.guarantees_roundstart_roleset && event_track_points[EVENT_TRACK_ROLESET] < point_thresholds[EVENT_TRACK_ROLESET]) + if(current_storyteller.guarantees_roundstart_roleset && event_track_points[EVENT_TRACK_ROLESET] < point_thresholds[EVENT_TRACK_ROLESET]) event_track_points[EVENT_TRACK_ROLESET] = point_thresholds[EVENT_TRACK_ROLESET] /// If we have any forced events, ensure we get enough points for them @@ -392,13 +406,13 @@ SUBSYSTEM_DEF(gamemode) /// Because roundstart events need 2 steps of firing for purposes of antags, here is the first step handled, happening before occupation division. /datum/controller/subsystem/gamemode/proc/handle_pre_setup_roundstart_events() - if(storyteller.disable_distribution) + if(current_storyteller.disable_distribution) return if(halted_storyteller) message_admins("WARNING: Didn't roll roundstart events (including antagonists) due to the storyteller being halted.") return while(TRUE) - if(!storyteller.handle_tracks()) + if(!current_storyteller.handle_tracks()) break /// Second step of handlind roundstart events, happening after people spawn. @@ -503,56 +517,6 @@ SUBSYSTEM_DEF(gamemode) /datum/admins/proc/forceGamemode(mob/user) SSgamemode.admin_panel(user) - -////////////// -// HOLIDAYS // -////////////// -//Uncommenting ALLOW_HOLIDAYS in config.txt will enable holidays - -//It's easy to add stuff. Just add a holiday datum in code/modules/holiday/holidays.dm -//You can then check if it's a special day in any code in the game by doing if(SSgamemode.holidays["Groundhog Day"]) - -//You can also make holiday random events easily thanks to Pete/Gia's system. -//simply make a random event normally, then assign it a holidayID string which matches the holiday's name. -//Anything with a holidayID, which isn't in the holidays list, will never occur. - -//Please, Don't spam stuff up with stupid stuff (key example being april-fools Pooh/ERP/etc), -//And don't forget: CHECK YOUR CODE!!!! We don't want any zero-day bugs which happen only on holidays and never get found/fixed! - -////////////////////////////////////////////////////////////////////////////////////////////////////////// -//ALSO, MOST IMPORTANTLY: Don't add stupid stuff! Discuss bonus content with Project-Heads first please!// -////////////////////////////////////////////////////////////////////////////////////////////////////////// - - -//sets up the holidays and holidays list -/datum/controller/subsystem/gamemode/proc/getHoliday() - if(!CONFIG_GET(flag/allow_holidays)) - return // Holiday stuff was not enabled in the config! - for(var/H in subtypesof(/datum/holiday)) - var/datum/holiday/holiday = new H() - var/delete_holiday = TRUE - for(var/timezone in holiday.timezones) - var/time_in_timezone = world.realtime + timezone HOURS - - var/YYYY = text2num(time2text(time_in_timezone, "YYYY")) // get the current year - var/MM = text2num(time2text(time_in_timezone, "MM")) // get the current month - var/DD = text2num(time2text(time_in_timezone, "DD")) // get the current day - var/DDD = time2text(time_in_timezone, "DDD") // get the current weekday - - if(holiday.shouldCelebrate(DD, MM, YYYY, DDD)) - holiday.celebrate() - LAZYSET(holidays, holiday.name, holiday) - delete_holiday = FALSE - break - if(delete_holiday) - qdel(holiday) - - if(holidays) - holidays = shuffle(holidays) - // regenerate station name because holiday prefixes. - set_station_name(new_station_name()) - world.update_status() - /datum/controller/subsystem/gamemode/proc/toggleWizardmode() wizardmode = !wizardmode //TODO: decide what to do with wiz events message_admins("Summon Events has been [wizardmode ? "enabled, events will occur [SSgamemode.event_frequency_multiplier] times as fast" : "disabled"]!") @@ -582,9 +546,9 @@ SUBSYSTEM_DEF(gamemode) if(SSdbcore.Connect()) var/list/to_set = list() var/arguments = list() - if(storyteller) + if(current_storyteller) to_set += "game_mode = :game_mode" - arguments["game_mode"] = storyteller.name + arguments["game_mode"] = current_storyteller.name if(GLOB.revdata.originmastercommit) to_set += "commit_hash = :commit_hash" arguments["commit_hash"] = GLOB.revdata.originmastercommit @@ -865,21 +829,21 @@ SUBSYSTEM_DEF(gamemode) /datum/controller/subsystem/gamemode/proc/set_storyteller(passed_type) if(!storytellers[passed_type]) message_admins("Attempted to set an invalid storyteller type: [passed_type], force setting to guide instead.") - storyteller = storytellers[/datum/storyteller/guide] //if we dont have any then we brick, lets not do that + current_storyteller = storytellers[/datum/storyteller/guide] //if we dont have any then we brick, lets not do that CRASH("Attempted to set an invalid storyteller type: [passed_type].") - storyteller = storytellers[passed_type] + current_storyteller = storytellers[passed_type] if(!secret_storyteller) - send_to_playing_players(span_notice("Storyteller is [storyteller.name]!")) - send_to_playing_players(span_notice("[storyteller.welcome_text]")) + send_to_playing_players(span_notice("Storyteller is [current_storyteller.name]!")) + send_to_playing_players(span_notice("[current_storyteller.welcome_text]")) else - send_to_observers(span_boldbig("Storyteller is [storyteller.name]!")) //observers still get to know + send_to_observers(span_boldbig("Storyteller is [current_storyteller.name]!")) //observers still get to know /// Panel containing information, variables and controls about the gamemode and scheduled event /datum/controller/subsystem/gamemode/proc/admin_panel(mob/user) update_crew_infos() var/round_started = SSticker.HasRoundStarted() var/list/dat = list() - dat += "Storyteller: [storyteller ? "[storyteller.name]" : "None"] " + dat += "Storyteller: [current_storyteller ? "[current_storyteller.name]" : "None"] " dat += " HALT Storyteller Event Panel Set Storyteller Refresh" dat += "
    Storyteller determines points gained, event chances, and is the entity responsible for rolling events." dat += "
    Active Players: [active_players] (Head: [head_crew], Sec: [sec_crew], Eng: [eng_crew], Med: [med_crew])" @@ -995,15 +959,15 @@ SUBSYSTEM_DEF(gamemode) /// Panel containing information and actions regarding events /datum/controller/subsystem/gamemode/proc/event_panel(mob/user) var/list/dat = list() - if(storyteller) - dat += "Storyteller: [storyteller.name]" - dat += "
    Repetition penalty multiplier: [storyteller.event_repetition_multiplier]" - dat += "
    Cost variance: [storyteller.cost_variance]" - if(storyteller.tag_multipliers) + if(current_storyteller) + dat += "Storyteller: [current_storyteller.name]" + dat += "
    Repetition penalty multiplier: [current_storyteller.event_repetition_multiplier]" + dat += "
    Cost variance: [current_storyteller.cost_variance]" + if(current_storyteller.tag_multipliers) dat += "
    Tag multipliers:" - for(var/tag in storyteller.tag_multipliers) - dat += "[tag]:[storyteller.tag_multipliers[tag]] | " - storyteller.calculate_weights(statistics_track_page) + for(var/tag in current_storyteller.tag_multipliers) + dat += "[tag]:[current_storyteller.tag_multipliers[tag]] | " + current_storyteller.calculate_weights(statistics_track_page) else dat += "Storyteller: None
    Weight and chance statistics will be inaccurate due to the present lack of a storyteller." dat += "
    Roundstart Events Forced Roundstart events will use rolled points, and are guaranteed to trigger (even if the used points are not enough)" @@ -1163,8 +1127,8 @@ SUBSYSTEM_DEF(gamemode) message_admins("[key_name_admin(usr)] invoked next event for [track] track.") log_admin_private("[key_name(usr)] invoked next event for [track] track.") event_track_points[track] = point_thresholds[track] - if(storyteller) - storyteller.handle_tracks() + if(current_storyteller) + current_storyteller.handle_tracks() admin_panel(user) if("stats") switch(href_list["action"]) @@ -1211,3 +1175,4 @@ SUBSYSTEM_DEF(gamemode) #undef DEFAULT_STORYTELLER_VOTE_OPTIONS #undef MAX_POP_FOR_STORYTELLER_VOTE +#undef ROUNDSTART_VALID_TIMEFRAME diff --git a/monkestation/code/modules/storytellers/storytellers/_storyteller.dm b/monkestation/code/modules/storytellers/storytellers/_storyteller.dm index bd6486890c67..cbb8955f593f 100644 --- a/monkestation/code/modules/storytellers/storytellers/_storyteller.dm +++ b/monkestation/code/modules/storytellers/storytellers/_storyteller.dm @@ -59,7 +59,7 @@ ///weight this has of being picked for random storyteller/showing up in the vote if not always_votable var/weight = 0 -/datum/storyteller/process(delta_time) +/datum/storyteller/process(seconds_per_tick) if(!round_started || disable_distribution) // we are differing roundstarted ones until base roundstart so we can get cooler stuff return @@ -73,17 +73,15 @@ SSgamemode.forced_next_events -= EVENT_TRACK_ROLESET log_storyteller("Running SSgamemode.current_roundstart_event\[[SSgamemode.current_roundstart_event]\]") - SSgamemode.current_roundstart_event = null - if(!ignores_roundstart) - SSgamemode.ran_roundstart = TRUE + SSgamemode.ran_roundstart = TRUE - add_points(delta_time) + add_points(seconds_per_tick) handle_tracks() /// Add points to all tracks while respecting the multipliers. -/datum/storyteller/proc/add_points(delta_time) +/datum/storyteller/proc/add_points(seconds_per_tick) var/datum/controller/subsystem/gamemode/mode = SSgamemode - var/base_point = EVENT_POINT_GAINED_PER_SECOND * delta_time * mode.event_frequency_multiplier + var/base_point = EVENT_POINT_GAINED_PER_SECOND * seconds_per_tick * mode.event_frequency_multiplier for(var/track in mode.event_track_points) var/point_gain = base_point * point_gains_multipliers[track] * mode.point_gain_multipliers[track] if(mode.allow_pop_scaling) @@ -150,8 +148,26 @@ buy_event(picked_event, track, are_forced) . = TRUE +///Attempt to buy a specific event if we can afford it, otherwise returns FALSE, note this does NOT take cost variance into account +/datum/storyteller/proc/try_buy_event(datum/round_event_control/bought_event) + if(ispath(bought_event)) + bought_event = locate(bought_event) in SSevents.control //might be able to make this slightly cheaper by searching in the track sorted list + var/track = bought_event.track + if(!track || (bought_event in SSgamemode.uncategorized)) + return FALSE //trackless events cant be bought + + var/datum/controller/subsystem/gamemode/mode = SSgamemode + if(mode.event_track_points[track] - (bought_event.cost * mode.point_thresholds[track]) < 0) + return FALSE + + buy_event(bought_event, track) + return TRUE + /// Find and buy a valid event from a track. /datum/storyteller/proc/buy_event(datum/round_event_control/bought_event, track, forced = FALSE) + if(!track) + track = bought_event.track + var/datum/controller/subsystem/gamemode/mode = SSgamemode // Perhaps use some bell curve instead of a flat variance? var/total_cost = bought_event.cost * mode.point_thresholds[track] @@ -160,8 +176,7 @@ mode.event_track_points[track] = max(mode.event_track_points[track] - total_cost, 0) message_admins("Storyteller purchased and triggered [bought_event] event, on [track] track, for [total_cost] cost.") if(bought_event.roundstart) - if(!ignores_roundstart) - SSgamemode.ran_roundstart = TRUE + SSgamemode.ran_roundstart = TRUE mode.TriggerEvent(bought_event, forced) else mode.schedule_event(bought_event, 3 MINUTES, total_cost, _forced = forced) diff --git a/monkestation/code/modules/storytellers/storytellers/brute.dm b/monkestation/code/modules/storytellers/storytellers/brute.dm new file mode 100644 index 000000000000..838e2ea0f7ff --- /dev/null +++ b/monkestation/code/modules/storytellers/storytellers/brute.dm @@ -0,0 +1,18 @@ +/datum/storyteller/brute + name = "The Brute" + desc = "While the brute will hit hard, it tires quickly." + starting_point_multipliers = list( + EVENT_TRACK_MUNDANE = 1, + EVENT_TRACK_MODERATE = 1, + EVENT_TRACK_MAJOR = 1, + EVENT_TRACK_ROLESET = 1.2, + EVENT_TRACK_OBJECTIVES = 1, + ) + point_gains_multipliers = list( + EVENT_TRACK_MUNDANE = 0.8, + EVENT_TRACK_MODERATE = 0.8, + EVENT_TRACK_MAJOR = 0.8, + EVENT_TRACK_ROLESET = 0.3, + EVENT_TRACK_OBJECTIVES = 1, + ) + weight = 0 diff --git a/monkestation/code/modules/surgery/advanced/brainwashing.dm b/monkestation/code/modules/surgery/advanced/brainwashing.dm index 44c8cbace87b..2c1a49e47fb1 100644 --- a/monkestation/code/modules/surgery/advanced/brainwashing.dm +++ b/monkestation/code/modules/surgery/advanced/brainwashing.dm @@ -3,3 +3,18 @@ to_chat(user, span_warning("[target] doesn't respond to the brainwashing, as if [target.p_their()] mind was completely hardened against any form of influence.")) return FALSE return ..() + +/datum/surgery/advanced/brainwashing + requires_bodypart_type = BODYTYPE_ORGANIC + +/datum/surgery/advanced/brainwashing/mechanic + requires_bodypart_type = BODYTYPE_ROBOTIC // monke edit: IPC law 2 download BonziBuddy + steps = list( + /datum/surgery_step/mechanic_open, + /datum/surgery_step/open_hatch, + /datum/surgery_step/mechanic_unwrench, + /datum/surgery_step/prepare_electronics, + /datum/surgery_step/brainwash, + /datum/surgery_step/mechanic_wrench, + /datum/surgery_step/mechanic_close, + ) diff --git a/monkestation/code/modules/surgery/advanced/lobotomy.dm b/monkestation/code/modules/surgery/advanced/lobotomy.dm new file mode 100644 index 000000000000..e8f07f3071e8 --- /dev/null +++ b/monkestation/code/modules/surgery/advanced/lobotomy.dm @@ -0,0 +1,14 @@ +/datum/surgery/advanced/lobotomy + requires_bodypart_type = BODYTYPE_ORGANIC + +/datum/surgery/advanced/lobotomy/mechanic + requires_bodypart_type = BODYTYPE_ROBOTIC + steps = list( + /datum/surgery_step/mechanic_open, + /datum/surgery_step/open_hatch, + /datum/surgery_step/mechanic_unwrench, + /datum/surgery_step/prepare_electronics, + /datum/surgery_step/lobotomize, + /datum/surgery_step/mechanic_wrench, + /datum/surgery_step/mechanic_close, + ) diff --git a/monkestation/code/modules/surgery/advanced/pacification.dm b/monkestation/code/modules/surgery/advanced/pacification.dm new file mode 100644 index 000000000000..733d3683f21e --- /dev/null +++ b/monkestation/code/modules/surgery/advanced/pacification.dm @@ -0,0 +1,14 @@ +/datum/surgery/advanced/pacify + requires_bodypart_type = BODYTYPE_ORGANIC + +/datum/surgery/advanced/pacify/mechanic + requires_bodypart_type = BODYTYPE_ROBOTIC + steps = list( + /datum/surgery_step/mechanic_open, + /datum/surgery_step/open_hatch, + /datum/surgery_step/mechanic_unwrench, + /datum/surgery_step/prepare_electronics, + /datum/surgery_step/pacify, + /datum/surgery_step/mechanic_wrench, + /datum/surgery_step/mechanic_close, + ) diff --git a/monkestation/code/modules/surgery/amputation.dm b/monkestation/code/modules/surgery/amputation.dm new file mode 100644 index 000000000000..16646847e158 --- /dev/null +++ b/monkestation/code/modules/surgery/amputation.dm @@ -0,0 +1,13 @@ +/datum/surgery/amputation + requires_bodypart_type = BODYTYPE_ORGANIC + +/datum/surgery/amputation/mechanic + requires_bodypart_type = BODYTYPE_ROBOTIC + steps = list( + /datum/surgery_step/mechanic_open, + /datum/surgery_step/open_hatch, + /datum/surgery_step/prepare_electronics, + /datum/surgery_step/saw, //Circular saws are apparently good for cutting metal. Huh. Still Scapels arent though. + /datum/surgery_step/prepare_electronics, + /datum/surgery_step/sever_limb, + ) diff --git a/monkestation/code/modules/surgery/bodyparts/monkey_bodyparts.dm b/monkestation/code/modules/surgery/bodyparts/monkey_bodyparts.dm new file mode 100644 index 000000000000..a36a5aba0a69 --- /dev/null +++ b/monkestation/code/modules/surgery/bodyparts/monkey_bodyparts.dm @@ -0,0 +1,114 @@ +/obj/item/bodypart/head/monkey + icon = 'monkestation/icons/mob/species/monkey/bodyparts.dmi' + icon_greyscale = 'monkestation/icons/mob/species/monkey/bodyparts.dmi' + icon_static = 'icons/mob/species/monkey/bodyparts.dmi' + icon_husk = 'monkestation/icons/mob/species/monkey/bodyparts.dmi' + husk_type = "monkey" + icon_state = "default_monkey_head" + limb_id = SPECIES_MONKEY + bodytype = BODYTYPE_MONKEY | BODYTYPE_ORGANIC + dmg_overlay_type = SPECIES_MONKEY + is_dimorphic = FALSE + should_draw_greyscale = TRUE + head_flags = HEAD_EYESPRITES | HEAD_EYEHOLES | HEAD_DEBRAIN | HEAD_EYECOLOR + palette = /datum/color_palette/generic_colors + palette_key = "fur_color" + +/obj/item/bodypart/chest/monkey + icon = 'monkestation/icons/mob/species/monkey/bodyparts.dmi' + icon_greyscale = 'monkestation/icons/mob/species/monkey/bodyparts.dmi' + icon_static = 'icons/mob/species/monkey/bodyparts.dmi' + icon_husk = 'monkestation/icons/mob/species/monkey/bodyparts.dmi' + husk_type = "monkey" + icon_state = "default_monkey_chest" + limb_id = SPECIES_MONKEY + should_draw_greyscale = TRUE + is_dimorphic = FALSE + wound_resistance = -10 + bodytype = BODYTYPE_MONKEY | BODYTYPE_ORGANIC + acceptable_bodytype = BODYTYPE_MONKEY + dmg_overlay_type = SPECIES_MONKEY + palette = /datum/color_palette/generic_colors + palette_key = "fur_color" + +/obj/item/bodypart/arm/left/monkey + icon = 'monkestation/icons/mob/species/monkey/bodyparts.dmi' + icon_greyscale = 'monkestation/icons/mob/species/monkey/bodyparts.dmi' + icon_static = 'icons/mob/species/monkey/bodyparts.dmi' + icon_husk = 'monkestation/icons/mob/species/monkey/bodyparts.dmi' + husk_type = "monkey" + icon_state = "default_monkey_l_arm" + limb_id = SPECIES_MONKEY + should_draw_greyscale = TRUE + bodytype = BODYTYPE_MONKEY | BODYTYPE_ORGANIC + wound_resistance = -10 + px_x = -5 + px_y = -3 + dmg_overlay_type = SPECIES_MONKEY + unarmed_damage_low = 2 // monkey punches must be really weak, considering they bite people instead and their bites are weak as hell. + unarmed_damage_high = 2 + unarmed_stun_threshold = 3 + palette = /datum/color_palette/generic_colors + palette_key = "fur_color" + +/obj/item/bodypart/arm/right/monkey + icon = 'monkestation/icons/mob/species/monkey/bodyparts.dmi' + icon_greyscale = 'monkestation/icons/mob/species/monkey/bodyparts.dmi' + icon_static = 'icons/mob/species/monkey/bodyparts.dmi' + icon_husk = 'monkestation/icons/mob/species/monkey/bodyparts.dmi' + husk_type = "monkey" + icon_state = "default_monkey_r_arm" + limb_id = SPECIES_MONKEY + bodytype = BODYTYPE_MONKEY | BODYTYPE_ORGANIC + should_draw_greyscale = TRUE + wound_resistance = -10 + px_x = 5 + px_y = -3 + dmg_overlay_type = SPECIES_MONKEY + unarmed_damage_low = 2 + unarmed_damage_high = 2 + unarmed_stun_threshold = 3 + palette = /datum/color_palette/generic_colors + palette_key = "fur_color" + +/obj/item/bodypart/leg/left/monkey + icon = 'monkestation/icons/mob/species/monkey/bodyparts.dmi' + icon_greyscale = 'monkestation/icons/mob/species/monkey/bodyparts.dmi' + icon_static = 'icons/mob/species/monkey/bodyparts.dmi' + icon_husk = 'monkestation/icons/mob/species/monkey/bodyparts.dmi' + husk_type = "monkey" + icon_state = "default_monkey_l_leg" + limb_id = SPECIES_MONKEY + should_draw_greyscale = TRUE + bodytype = BODYTYPE_MONKEY | BODYTYPE_ORGANIC + wound_resistance = -10 + px_y = 4 + dmg_overlay_type = SPECIES_MONKEY + unarmed_damage_low = 3 + unarmed_damage_high = 3 + unarmed_stun_threshold = 4 + footprint_sprite = FOOTPRINT_SPRITE_PAWS + speed_modifier = -0.05 + palette = /datum/color_palette/generic_colors + palette_key = "fur_color" + +/obj/item/bodypart/leg/right/monkey + icon = 'monkestation/icons/mob/species/monkey/bodyparts.dmi' + icon_greyscale = 'monkestation/icons/mob/species/monkey/bodyparts.dmi' + icon_static = 'icons/mob/species/monkey/bodyparts.dmi' + icon_husk = 'monkestation/icons/mob/species/monkey/bodyparts.dmi' + husk_type = "monkey" + icon_state = "default_monkey_r_leg" + limb_id = SPECIES_MONKEY + should_draw_greyscale = TRUE + bodytype = BODYTYPE_MONKEY | BODYTYPE_ORGANIC + wound_resistance = -10 + px_y = 4 + dmg_overlay_type = SPECIES_MONKEY + unarmed_damage_low = 3 + unarmed_damage_high = 3 + unarmed_stun_threshold = 4 + footprint_sprite = FOOTPRINT_SPRITE_PAWS + speed_modifier = -0.05 + palette = /datum/color_palette/generic_colors + palette_key = "fur_color" diff --git a/monkestation/code/modules/surgery/bodyparts/simian_bodyparts.dm b/monkestation/code/modules/surgery/bodyparts/simian_bodyparts.dm deleted file mode 100644 index 23da5d9671bb..000000000000 --- a/monkestation/code/modules/surgery/bodyparts/simian_bodyparts.dm +++ /dev/null @@ -1,65 +0,0 @@ -/obj/item/bodypart/head/simian - icon_greyscale = 'monkestation/icons/mob/species/simian/bodyparts.dmi' - icon_husk = 'monkestation/icons/mob/species/simian/bodyparts.dmi' - husk_type = "simian" - limb_id = SPECIES_SIMIAN - is_dimorphic = FALSE - bodytype = BODYTYPE_HUMANOID | BODYTYPE_ORGANIC | BODYTYPE_CUSTOM - head_flags = HEAD_EYESPRITES | HEAD_EYEHOLES | HEAD_DEBRAIN | HEAD_EYECOLOR - dmg_overlay_type = "monkey" - palette = /datum/color_palette/generic_colors - palette_key = "fur_color" - -/obj/item/bodypart/chest/simian - icon_greyscale = 'monkestation/icons/mob/species/simian/bodyparts.dmi' - icon_husk = 'monkestation/icons/mob/species/simian/bodyparts.dmi' - husk_type = "simian" - limb_id = SPECIES_SIMIAN - is_dimorphic = FALSE - bodytype = BODYTYPE_HUMANOID | BODYTYPE_ORGANIC | BODYTYPE_CUSTOM - dmg_overlay_type = "monkey" - palette = /datum/color_palette/generic_colors - palette_key = "fur_color" - -/obj/item/bodypart/arm/left/simian - icon_greyscale = 'monkestation/icons/mob/species/simian/bodyparts.dmi' - icon_husk = 'monkestation/icons/mob/species/simian/bodyparts.dmi' - husk_type = "simian" - limb_id = SPECIES_SIMIAN - bodytype = BODYTYPE_HUMANOID | BODYTYPE_ORGANIC | BODYTYPE_CUSTOM - dmg_overlay_type = "monkey" - palette = /datum/color_palette/generic_colors - palette_key = "fur_color" - -/obj/item/bodypart/arm/right/simian - icon_greyscale = 'monkestation/icons/mob/species/simian/bodyparts.dmi' - icon_husk = 'monkestation/icons/mob/species/simian/bodyparts.dmi' - husk_type = "simian" - limb_id = SPECIES_SIMIAN - bodytype = BODYTYPE_HUMANOID | BODYTYPE_ORGANIC | BODYTYPE_CUSTOM - dmg_overlay_type = "monkey" - palette = /datum/color_palette/generic_colors - palette_key = "fur_color" - -/obj/item/bodypart/leg/left/simian - icon_greyscale = 'monkestation/icons/mob/species/simian/bodyparts.dmi' - icon_husk = 'monkestation/icons/mob/species/simian/bodyparts.dmi' - husk_type = "simian" - limb_id = SPECIES_SIMIAN - bodytype = BODYTYPE_HUMANOID | BODYTYPE_ORGANIC | BODYTYPE_CUSTOM - footprint_sprite = FOOTPRINT_SPRITE_PAWS - speed_modifier = -0.05 - palette = /datum/color_palette/generic_colors - palette_key = "fur_color" - -/obj/item/bodypart/leg/right/simian - icon_greyscale = 'monkestation/icons/mob/species/simian/bodyparts.dmi' - icon_husk = 'monkestation/icons/mob/species/simian/bodyparts.dmi' - husk_type = "simian" - limb_id = SPECIES_SIMIAN - bodytype = BODYTYPE_HUMANOID | BODYTYPE_ORGANIC | BODYTYPE_CUSTOM - footprint_sprite = FOOTPRINT_SPRITE_PAWS - dmg_overlay_type = "monkey" - speed_modifier = -0.05 - palette = /datum/color_palette/generic_colors - palette_key = "fur_color" diff --git a/monkestation/code/modules/surgery/bodyparts/teratoma_bodyparts.dm b/monkestation/code/modules/surgery/bodyparts/teratoma_bodyparts.dm index 96e67800e663..cd45074e1f51 100644 --- a/monkestation/code/modules/surgery/bodyparts/teratoma_bodyparts.dm +++ b/monkestation/code/modules/surgery/bodyparts/teratoma_bodyparts.dm @@ -18,6 +18,7 @@ limb_id = SPECIES_TERATOMA is_dimorphic = FALSE bodytype = BODYTYPE_HUMANOID | BODYTYPE_ORGANIC | BODYTYPE_CUSTOM + acceptable_bodytype = BODYTYPE_CUSTOM should_draw_greyscale = FALSE composition_effects = list(TRAIT_PASSTABLE = 0.5, TRAIT_VENTCRAWLER_ALWAYS = 0.8) diff --git a/monkestation/code/modules/surgery/brain_surgery.dm b/monkestation/code/modules/surgery/brain_surgery.dm new file mode 100644 index 000000000000..09e5a69ba2f2 --- /dev/null +++ b/monkestation/code/modules/surgery/brain_surgery.dm @@ -0,0 +1,14 @@ +/datum/surgery/brain_surgery + requires_bodypart_type = BODYTYPE_ORGANIC + +/datum/surgery/brain_surgery/mechanic //we need to keep brain surgery despite reboot surgery for the edgecase of stuff like you have a human chest and a robo head + requires_bodypart_type = BODYTYPE_ROBOTIC + steps = list( + /datum/surgery_step/mechanic_open, + /datum/surgery_step/open_hatch, + /datum/surgery_step/mechanic_unwrench, + /datum/surgery_step/prepare_electronics, + /datum/surgery_step/fix_brain, + /datum/surgery_step/mechanic_wrench, + /datum/surgery_step/mechanic_close, + ) diff --git a/monkestation/code/modules/surgery/healing.dm b/monkestation/code/modules/surgery/healing.dm index 1801bb4edf8b..4d0168b60fc9 100644 --- a/monkestation/code/modules/surgery/healing.dm +++ b/monkestation/code/modules/surgery/healing.dm @@ -1,3 +1,6 @@ +/datum/surgery/healing + requires_bodypart_type = BODYTYPE_ORGANIC //IPCs have robotic repair and their welders/coil + /datum/surgery/healing/can_start(mob/user, mob/living/patient) if(HAS_TRAIT(patient, TRAIT_NO_HEALS)) return FALSE diff --git a/monkestation/code/modules/surgery/organs/external/_external_organs.dm b/monkestation/code/modules/surgery/organs/external/_external_organs.dm new file mode 100644 index 000000000000..7cee7bbd5986 --- /dev/null +++ b/monkestation/code/modules/surgery/organs/external/_external_organs.dm @@ -0,0 +1,32 @@ +/datum/bodypart_overlay/mutant/pod_hair/get_overlay(layer, obj/item/bodypart/limb) + layer = -HAIR_LAYER + var/mutable_appearance/MA = mutable_appearance(layer = layer) + for(var/image_layer in list(-BODY_ADJ_LAYER, -BODY_FRONT_LAYER)) + var/mutable_appearance/returned = get_image(image_layer, limb) + color_image(returned, image_layer, limb) + MA.overlays += returned + return MA + +/datum/bodypart_overlay/mutant/pod_hair/get_image(image_layer, obj/item/bodypart/limb) + if(!sprite_datum) + CRASH("Trying to call get_image() on [type] while it didn't have a sprite_datum. This shouldn't happen, report it as soon as possible.") + + var/list/icon_state_builder = list() + icon_state_builder += "m" //Male is default because sprite accessories are so ancient they predate the concept of not hardcoding gender + icon_state_builder += feature_key + icon_state_builder += get_base_icon_state() + icon_state_builder += mutant_bodyparts_layertext(image_layer) + + var/icon = sprite_datum.icon + var/finished_icon_state = icon_state_builder.Join("_") + + if(image_layer == -BODY_ADJ_LAYER && istype(limb, /obj/item/bodypart/head/floran)) + icon = 'monkestation/icons/mob/species/floran/floran_hair.dmi' + finished_icon_state = get_base_icon_state() + + var/mutable_appearance/appearance = mutable_appearance(icon, finished_icon_state, layer = -HAIR_LAYER) + + if(sprite_datum.center) + center_image(appearance, sprite_datum.dimension_x, sprite_datum.dimension_y) + + return appearance diff --git a/monkestation/code/modules/surgery/organs/external/simian.dm b/monkestation/code/modules/surgery/organs/external/simian.dm deleted file mode 100644 index 504bc604d037..000000000000 --- a/monkestation/code/modules/surgery/organs/external/simian.dm +++ /dev/null @@ -1,16 +0,0 @@ -/obj/item/organ/external/tail/simian - name = "monkey tail" - desc = "A severed monkey tail. Somewhere, no doubt, a simian hater is very pleased with themselves." - preference = "feature_tail_monkey" - - bodypart_overlay = /datum/bodypart_overlay/mutant/tail/simian - -/datum/bodypart_overlay/mutant/tail/simian - layers = EXTERNAL_FRONT | EXTERNAL_BEHIND - feature_key = "tail_monkey" - -/datum/bodypart_overlay/mutant/tail/simian/get_global_feature_list() - return GLOB.tails_list_monkey - -/datum/bodypart_overlay/mutant/tail/simian/get_base_icon_state() - return sprite_datum.icon_state diff --git a/monkestation/code/modules/surgery/organs/internal/butts.dm b/monkestation/code/modules/surgery/organs/internal/butts.dm index e8fe995bc3cb..48b57ef7637e 100644 --- a/monkestation/code/modules/surgery/organs/internal/butts.dm +++ b/monkestation/code/modules/surgery/organs/internal/butts.dm @@ -16,6 +16,7 @@ var/atmos_gas = "miasma=0.25;TEMP=310.15" //310.15 is body temperature var/fart_instability = 1 //Percent chance to lose your rear each fart. var/cooling_down = FALSE + var/superfart_armed = FALSE //ADMIN ONLY ATOMIC ASS /obj/item/organ/internal/butt/atomic @@ -203,6 +204,10 @@ if(!hit_target) user.audible_message("[pick(world.file2list("strings/farts.txt"))]", audible_message_flags = list(CHATMESSAGE_EMOTE = TRUE)) + if(superfart_armed) + to_chat(user, span_notice("You decide to disarm your ass by farting slowly. Thank god.")) + Person.clear_mood_event("superfart_armed") + superfart_armed = FALSE //SOUND HANDLING playsound(user, pick(sound_effect), volume , use_reverb = TRUE, pressure_affected = FALSE, mixer_channel = CHANNEL_PRUDE) diff --git a/monkestation/code/modules/surgery/organs/internal/eyes.dm b/monkestation/code/modules/surgery/organs/internal/eyes.dm index 076ebd4e1457..a70dba2e3f8f 100644 --- a/monkestation/code/modules/surgery/organs/internal/eyes.dm +++ b/monkestation/code/modules/surgery/organs/internal/eyes.dm @@ -45,3 +45,8 @@ /obj/item/organ/internal/eyes/ethereal eye_icon_state = "etherealeyes" + +/obj/item/organ/internal/eyes/moth/tundra + name = "tundra moth eyes" + eye_icon_state = "tundramotheyes" + icon_state = "eyeballs-tundramoth" diff --git a/monkestation/code/modules/the_fabled_dna_changes/species_color_pallettes/generic_palette.dm b/monkestation/code/modules/the_fabled_dna_changes/species_color_pallettes/generic_palette.dm index eb948ad9fbc4..b7464c622c78 100644 --- a/monkestation/code/modules/the_fabled_dna_changes/species_color_pallettes/generic_palette.dm +++ b/monkestation/code/modules/the_fabled_dna_changes/species_color_pallettes/generic_palette.dm @@ -2,7 +2,8 @@ var/hair_color var/mutant_color var/mutant_color_secondary - var/fur_color + ///Color of Monkey and Simian's fur, defaulted to Monkey-Brown. + var/fur_color = COLOR_MONKEY_BROWN var/ethereal_color /datum/color_palette/generic_colors/apply_prefs(datum/preferences/incoming) diff --git a/monkestation/code/modules/trading/unusual_effects/animation_housing/__spawning_component.dm b/monkestation/code/modules/trading/unusual_effects/animation_housing/__spawning_component.dm index a7d1df45c69a..14190df6eddf 100644 --- a/monkestation/code/modules/trading/unusual_effects/animation_housing/__spawning_component.dm +++ b/monkestation/code/modules/trading/unusual_effects/animation_housing/__spawning_component.dm @@ -87,7 +87,7 @@ RegisterSignal(source_object, COMSIG_ITEM_POST_UNEQUIP, PROC_REF(reset_offsets)) if(lifetime) - addtimer(CALLBACK(src, PROC_REF(kill_it_with_fire)), lifetime) + QDEL_IN(src, lifetime) /datum/component/particle_spewer/Destroy(force) . = ..() @@ -97,10 +97,8 @@ )) STOP_PROCESSING(SSactualfastprocess, src) - for(var/atom/listed_atom as anything in living_particles + dead_particles) - qdel(listed_atom) - living_particles = null - dead_particles = null + QDEL_LIST(living_particles) + QDEL_LIST(dead_particles) source_object = null QDEL_NULL(animate_holder) @@ -130,25 +128,22 @@ living_particles |= spawned + RegisterSignal(spawned, COMSIG_QDELETING, PROC_REF(particle_qdeleting)) animate_particle(spawned) ///this is the proc that gets overridden when we create new particle spewers that control its movements //example is animating upwards over duration and deleting /datum/component/particle_spewer/proc/animate_particle(obj/effect/abstract/particle/spawned) - if(animate_holder) - animate_holder.animate_object(spawned) - addtimer(CALLBACK(src, PROC_REF(delete_particle), spawned), duration) + animate_holder?.animate_object(spawned) + QDEL_IN(spawned, duration) /datum/component/particle_spewer/proc/adjust_animate_steps() animate_holder.add_animation_step(list(alpha = 75, time = duration)) animate_holder.add_animation_step(list(pixel_y = offset_y + 64, time = duration)) -/datum/component/particle_spewer/proc/delete_particle(obj/effect/abstract/particle/spawned) +/datum/component/particle_spewer/proc/particle_qdeleting(obj/effect/abstract/particle/spawned) living_particles -= spawned - qdel(spawned) - -/datum/component/particle_spewer/proc/kill_it_with_fire() - qdel(src) + UnregisterSignal(spawned, COMSIG_QDELETING) /datum/component/particle_spewer/proc/handle_equip_offsets(datum/source, mob/equipper, slot) SIGNAL_HANDLER @@ -188,7 +183,5 @@ /datum/component/particle_spewer/vv_do_topic(list/href_list) . = ..() - //monke edit start: CYBERNETIC if(href_list[VV_HK_ADJUST_ANIMATIONS] && check_rights(R_VAREDIT)) animate_holder.ui_interact(usr) - //monke edit end: CYBERNETIC diff --git a/monkestation/code/modules/trading/unusual_effects/animation_housing/galaxies.dm b/monkestation/code/modules/trading/unusual_effects/animation_housing/galaxies.dm index fb6403485f70..984c2278b91d 100644 --- a/monkestation/code/modules/trading/unusual_effects/animation_housing/galaxies.dm +++ b/monkestation/code/modules/trading/unusual_effects/animation_housing/galaxies.dm @@ -25,4 +25,4 @@ animate(spawned, alpha = 0, time = duration) if(prob(33) && can_be_shooting) animate(spawned, pixel_y = spawned.pixel_y + rand(-6, 6), pixel_x = spawned.pixel_x + rand(-16, 16), time = 1 SECONDS) - addtimer(CALLBACK(src, PROC_REF(delete_particle), spawned), duration) + QDEL_IN(spawned, duration) diff --git a/monkestation/code/modules/trading/unusual_effects/animation_housing/shooting_stars.dm b/monkestation/code/modules/trading/unusual_effects/animation_housing/shooting_stars.dm index 44f2a241a8af..2c717e9fa738 100644 --- a/monkestation/code/modules/trading/unusual_effects/animation_housing/shooting_stars.dm +++ b/monkestation/code/modules/trading/unusual_effects/animation_housing/shooting_stars.dm @@ -34,4 +34,4 @@ animate(spawned, time = rand(0.5 SECONDS, duration), pixel_x = spawned.pixel_x + 160, alpha = 25) if(WEST) animate(spawned, time = rand(0.5 SECONDS, duration), pixel_x = spawned.pixel_x - 160, alpha = 25) - addtimer(CALLBACK(src, PROC_REF(delete_particle), spawned), duration) + QDEL_IN(spawned, duration) diff --git a/monkestation/code/modules/trading/unusual_effects/animation_housing/sparkle.dm b/monkestation/code/modules/trading/unusual_effects/animation_housing/sparkle.dm index 625e0d172b3e..932e3b7fa8c0 100644 --- a/monkestation/code/modules/trading/unusual_effects/animation_housing/sparkle.dm +++ b/monkestation/code/modules/trading/unusual_effects/animation_housing/sparkle.dm @@ -23,4 +23,4 @@ first.Turn(rand(-90, 90)) animate(transform = first, time = 0.3 SECONDS) - addtimer(CALLBACK(src, PROC_REF(delete_particle), spawned), duration) + QDEL_IN(spawned, duration) diff --git a/monkestation/code/modules/trading/unusual_effects/animation_housing/weh.dm b/monkestation/code/modules/trading/unusual_effects/animation_housing/weh.dm index 68856f587825..be532a07c5e8 100644 --- a/monkestation/code/modules/trading/unusual_effects/animation_housing/weh.dm +++ b/monkestation/code/modules/trading/unusual_effects/animation_housing/weh.dm @@ -22,4 +22,4 @@ animate(spawned, transform = first, time = 0.4 SECONDS, pixel_y = rand(-1, 12) + spawned.pixel_y, pixel_x = rand(-32, 32) + spawned.pixel_x, easing = JUMP_EASING) animate(transform = second, time = 0.5 SECONDS, pixel_y = spawned.pixel_y - 32) animate(spawned, alpha = 0, time = duration) - addtimer(CALLBACK(src, PROC_REF(delete_particle), spawned), duration) + QDEL_IN(spawned, duration) diff --git a/monkestation/code/modules/uplink/uplink_items/misc.dm b/monkestation/code/modules/uplink/uplink_items/misc.dm index 362c3b4b5ba6..1d1d40966179 100644 --- a/monkestation/code/modules/uplink/uplink_items/misc.dm +++ b/monkestation/code/modules/uplink/uplink_items/misc.dm @@ -27,3 +27,12 @@ purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) item = /obj/item/radio/headset/chameleon/advanced cost = 2 + +/datum/uplink_item/device_tools/plasma_license + name = "License to Plasmaflood" + desc = "A contract abusing a loophole founud by plasmamen to invade halls with harmful gases \ + without repricution or warning, garnering no attention from any higher powers. \ + Has to be signed by purchaser to be consider valid." + purchasable_from = ~(UPLINK_NUKE_OPS | UPLINK_CLOWN_OPS) + item = /obj/item/card/plasma_license + cost = 20 diff --git a/monkestation/code/modules/uplink/uplink_items/species.dm b/monkestation/code/modules/uplink/uplink_items/species.dm index 5c11850bfd05..3655c256a556 100644 --- a/monkestation/code/modules/uplink/uplink_items/species.dm +++ b/monkestation/code/modules/uplink/uplink_items/species.dm @@ -14,14 +14,14 @@ desc = "Expert Syndicate Scientists put pissed a couple monkeys off and put them in a barrel. It isn't that complicated, but it's very effective" cost = 7 item = /obj/item/grenade/monkey_barrel - restricted_species = list(SPECIES_SIMIAN) + restricted_species = list(SPECIES_MONKEY, SPECIES_SIMIAN) /datum/uplink_item/species_restricted/monkey_ball name = "Monkey Ball" desc = "Stolen experimental MonkeTech designed to bring a monkey's speed to dangerous levels." cost = 12 item = /obj/vehicle/ridden/monkey_ball - restricted_species = list(SPECIES_SIMIAN) + restricted_species = list(SPECIES_MONKEY, SPECIES_SIMIAN) /datum/uplink_item/species_restricted/tribal_claw_scroll name = "Silver-Scale Scroll" diff --git a/monkestation/code/modules/veth_misc_items/admin_fixes/check_players.dm b/monkestation/code/modules/veth_misc_items/admin_fixes/check_players.dm new file mode 100644 index 000000000000..049d319453bb --- /dev/null +++ b/monkestation/code/modules/veth_misc_items/admin_fixes/check_players.dm @@ -0,0 +1,34 @@ +/client/proc/check_players() + set name = "Check Players" + set category = "Admin.Game" + if(!check_rights(NONE)) // Rights check for admin access + message_admins("[key_name(src)] attempted to use CheckPlayers without sufficient rights.") //messages admins if rights check fails + return + var/datum/check_players/tgui = new + tgui.ui_interact(mob) + to_chat(src, span_interface("Player statistics displayed."), confidential = TRUE) + SSblackbox.record_feedback("tally", "admin_verb", 1, "Check Players") //Logging + message_admins("[key_name(src)] checked players.") //Logging + +/datum/check_players/ui_data(mob/user) //Data required for the frontend + return list( + "total_clients" = length(GLOB.player_list), + "living_players" = length(GLOB.alive_player_list), + "dead_players" = length(GLOB.dead_player_list), + "observers" = length(GLOB.current_observers_list), + "living_antags" = length(GLOB.current_living_antags), + ) + +/datum/check_players //datum required for the tgui window + +/datum/check_players/ui_close() + qdel(src) + +/datum/check_players/ui_interact(mob/user, datum/tgui/ui) + ui = SStgui.try_update_ui(user, src, ui) + if(!ui) + ui = new(user, src, "PlayerStatistics") + ui.open() + +/datum/check_players/ui_state(mob/user) + return GLOB.admin_state diff --git a/monkestation/code/modules/veth_misc_items/admin_fixes/readme.md b/monkestation/code/modules/veth_misc_items/admin_fixes/readme.md new file mode 100644 index 000000000000..89fed5f892b0 --- /dev/null +++ b/monkestation/code/modules/veth_misc_items/admin_fixes/readme.md @@ -0,0 +1,27 @@ +## Title: + + +MODULE ID: CHECKPLAYERS + +### Description: +Changes admin verbs - Adjust Event/Antag/Monkecoin tokens from character name to ckey. +Adds Adminverb - Check Players for a quick and easy method to check currently connected clients of several categories - All clients, alive, dead, ghosts, living antags. + +### Master file additions + +- N/A + + +### Included files that are not contained in this module: + +- N/A + +#NEW tgui/packages/tgui/interfaces/PlayerStatisticsUI.tsx +#CHANGE monkestation/code/modules/admin/antag_tokens.dm +#CHANGE monkestation/code/modules/admin/event_tokens.dm +#CHANGE monkestation/code/modules/store/admin/admin_coin_modification.dm +### Credits: + + + +Made by Veth diff --git a/monkestation/code/modules/veth_misc_items/admin_vox/admin_vox.dm b/monkestation/code/modules/veth_misc_items/admin_vox/admin_vox.dm new file mode 100644 index 000000000000..e00c9b7d7c4e --- /dev/null +++ b/monkestation/code/modules/veth_misc_items/admin_vox/admin_vox.dm @@ -0,0 +1,52 @@ +/client/proc/AdminVOX() + set name = "VOX" + set category = "Admin" + set desc = "Allows unrestricted use of the AI VOX announcement system." + + if(!check_rights(NONE)) + message_admins("[key_name(usr)] attempted to use AdminVOX without sufficient rights.") + return + + // Prompt message via TGUI + var/message = tgui_input_text(usr, "Enter your VOX announcement message:", "AdminVOX", encode = FALSE) + + // Check for valid message input + if(!message || message == "") + return + + // Process the message for VOX + var/list/words = splittext(trim(message), " ") + var/list/incorrect_words + + words.len = min(30, length(words)) + + for(var/word in words) + word = lowertext(trim(word)) + if(!word) + words -= word + continue + if(!GLOB.vox_sounds[word]) + LAZYADD(incorrect_words, word) + + if(LAZYLEN(incorrect_words)) + to_chat(usr, span_notice("These words are not available on the announcement system: [english_list(incorrect_words)].")) + return + + // Announce to players on the same Z-level + var/list/players = list() + var/turf/ai_turf = get_turf(usr) + for(var/mob/player_mob in GLOB.player_list) + var/turf/player_turf = get_turf(player_mob) + if(is_valid_z_level(ai_turf, player_turf)) + players += player_mob + + minor_announce(capitalize(message), "[usr] announces:", players = players, should_play_sound = FALSE) + + // Play each VOX word for the announcement + for(var/word in words) + play_vox_word(word, ai_turf, null) + + // Log the successful announcement + message_admins("[key_name(usr)] made a VOX announcement: \"[message]\".") + log_admin("[key_name(usr)] made a VOX announcement: \"[message]\".") + SSblackbox.record_feedback("tally", "admin_verb", 1, "Show VOX Announcement") diff --git a/monkestation/code/modules/veth_misc_items/admin_vox/readme.md b/monkestation/code/modules/veth_misc_items/admin_vox/readme.md new file mode 100644 index 000000000000..6a044582944e --- /dev/null +++ b/monkestation/code/modules/veth_misc_items/admin_vox/readme.md @@ -0,0 +1,25 @@ +## Title: + + +MODULE ID: ADMINVOX + +### Description: +This PR adds AdminVOX to the game. Piggybacking off the AI vox announcement system, allows admins to make Vox announcements. + + +### Master file additions + +- N/A + + +### Included files that are not contained in this module: + +- N/A + + +### Credits: + + + +Made by Veth + diff --git a/monkestation/code/modules/veth_misc_items/bardrone/sillybardrone.dmi b/monkestation/code/modules/veth_misc_items/bardrone/sillybardrone.dmi new file mode 100644 index 000000000000..27462b47fc7f Binary files /dev/null and b/monkestation/code/modules/veth_misc_items/bardrone/sillybardrone.dmi differ diff --git a/monkestation/code/modules/virology/disease/symtoms/deadly/asphyxiation.dm b/monkestation/code/modules/virology/disease/symtoms/deadly/asphyxiation.dm index 447249364c99..b6acd459c542 100644 --- a/monkestation/code/modules/virology/disease/symtoms/deadly/asphyxiation.dm +++ b/monkestation/code/modules/virology/disease/symtoms/deadly/asphyxiation.dm @@ -7,6 +7,8 @@ stage = 3 /datum/symptom/asphyxiation/activate(mob/living/carbon/mob) + if(HAS_TRAIT(mob, TRAIT_NOBREATH)) + return mob.emote("gasp") if(prob(20) && multiplier >= 4 && iscarbon(mob)) mob.reagents.add_reagent_list(list(/datum/reagent/toxin/pancuronium = 3, /datum/reagent/toxin/sodium_thiopental = 3)) diff --git a/monkestation/icons/effects/cut_32x48.dmi b/monkestation/icons/effects/cut_32x48.dmi new file mode 100644 index 000000000000..8cb3bd714e13 Binary files /dev/null and b/monkestation/icons/effects/cut_32x48.dmi differ diff --git a/monkestation/icons/effects/mouse_pointers/feast.dmi b/monkestation/icons/effects/mouse_pointers/feast.dmi new file mode 100644 index 000000000000..10d3dc2cba0b Binary files /dev/null and b/monkestation/icons/effects/mouse_pointers/feast.dmi differ diff --git a/monkestation/icons/mob/actions/actions_zombie.dmi b/monkestation/icons/mob/actions/actions_zombie.dmi new file mode 100644 index 000000000000..77a63c3fd71d Binary files /dev/null and b/monkestation/icons/mob/actions/actions_zombie.dmi differ diff --git a/monkestation/icons/mob/anime/anime_head.dmi b/monkestation/icons/mob/anime/anime_head.dmi index 80e3ecb4feeb..49c9a98bdace 100644 Binary files a/monkestation/icons/mob/anime/anime_head.dmi and b/monkestation/icons/mob/anime/anime_head.dmi differ diff --git a/monkestation/icons/mob/clothing/head.dmi b/monkestation/icons/mob/clothing/head.dmi index a677b3cb2e8a..df141a951c03 100644 Binary files a/monkestation/icons/mob/clothing/head.dmi and b/monkestation/icons/mob/clothing/head.dmi differ diff --git a/monkestation/icons/mob/clothing/species/simian/back.dmi b/monkestation/icons/mob/clothing/species/simian/back.dmi deleted file mode 100644 index 8a4522cd235f..000000000000 Binary files a/monkestation/icons/mob/clothing/species/simian/back.dmi and /dev/null differ diff --git a/monkestation/icons/mob/clothing/species/simian/belts.dmi b/monkestation/icons/mob/clothing/species/simian/belts.dmi deleted file mode 100644 index 4fcc9f8f4b16..000000000000 Binary files a/monkestation/icons/mob/clothing/species/simian/belts.dmi and /dev/null differ diff --git a/monkestation/icons/mob/clothing/species/simian/glasses.dmi b/monkestation/icons/mob/clothing/species/simian/glasses.dmi deleted file mode 100644 index d5e2964d6300..000000000000 Binary files a/monkestation/icons/mob/clothing/species/simian/glasses.dmi and /dev/null differ diff --git a/monkestation/icons/mob/clothing/species/simian/gloves.dmi b/monkestation/icons/mob/clothing/species/simian/gloves.dmi deleted file mode 100644 index 19d15d42f57f..000000000000 Binary files a/monkestation/icons/mob/clothing/species/simian/gloves.dmi and /dev/null differ diff --git a/monkestation/icons/mob/clothing/species/simian/neck.dmi b/monkestation/icons/mob/clothing/species/simian/neck.dmi deleted file mode 100644 index 677c46c9832f..000000000000 Binary files a/monkestation/icons/mob/clothing/species/simian/neck.dmi and /dev/null differ diff --git a/monkestation/icons/mob/clothing/species/simian/shoes.dmi b/monkestation/icons/mob/clothing/species/simian/shoes.dmi deleted file mode 100644 index 90066cc8d52c..000000000000 Binary files a/monkestation/icons/mob/clothing/species/simian/shoes.dmi and /dev/null differ diff --git a/monkestation/icons/mob/clothing/species/simian/suit.dmi b/monkestation/icons/mob/clothing/species/simian/suit.dmi deleted file mode 100644 index 92d02218f37f..000000000000 Binary files a/monkestation/icons/mob/clothing/species/simian/suit.dmi and /dev/null differ diff --git a/monkestation/icons/mob/clothing/species/simian/uniform.dmi b/monkestation/icons/mob/clothing/species/simian/uniform.dmi deleted file mode 100644 index 398bc9d3dfb8..000000000000 Binary files a/monkestation/icons/mob/clothing/species/simian/uniform.dmi and /dev/null differ diff --git a/monkestation/icons/mob/clothing/suit.dmi b/monkestation/icons/mob/clothing/suit.dmi index 87eecacac872..15f60259f65c 100644 Binary files a/monkestation/icons/mob/clothing/suit.dmi and b/monkestation/icons/mob/clothing/suit.dmi differ diff --git a/monkestation/icons/mob/gags/clothing/simian_fallbacks.dmi b/monkestation/icons/mob/gags/clothing/simian_fallbacks.dmi deleted file mode 100644 index 77fcbb396d06..000000000000 Binary files a/monkestation/icons/mob/gags/clothing/simian_fallbacks.dmi and /dev/null differ diff --git a/monkestation/icons/mob/inhands/equipment/brigphys_lefthand.dmi b/monkestation/icons/mob/inhands/equipment/brigphys_lefthand.dmi index 2d51c710748f..4fcf26c11765 100644 Binary files a/monkestation/icons/mob/inhands/equipment/brigphys_lefthand.dmi and b/monkestation/icons/mob/inhands/equipment/brigphys_lefthand.dmi differ diff --git a/monkestation/icons/mob/inhands/equipment/brigphys_righthand.dmi b/monkestation/icons/mob/inhands/equipment/brigphys_righthand.dmi index 7b4f607810b1..b5f427b828b0 100644 Binary files a/monkestation/icons/mob/inhands/equipment/brigphys_righthand.dmi and b/monkestation/icons/mob/inhands/equipment/brigphys_righthand.dmi differ diff --git a/monkestation/icons/mob/species/floran/floran_hair.dmi b/monkestation/icons/mob/species/floran/floran_hair.dmi new file mode 100644 index 000000000000..b11515535c48 Binary files /dev/null and b/monkestation/icons/mob/species/floran/floran_hair.dmi differ diff --git a/monkestation/icons/mob/species/monkey/bodyparts.dmi b/monkestation/icons/mob/species/monkey/bodyparts.dmi new file mode 100644 index 000000000000..345e527599d1 Binary files /dev/null and b/monkestation/icons/mob/species/monkey/bodyparts.dmi differ diff --git a/monkestation/icons/mob/species/monkey/monkey_tail.dmi b/monkestation/icons/mob/species/monkey/monkey_tail.dmi new file mode 100644 index 000000000000..06fffefcaf03 Binary files /dev/null and b/monkestation/icons/mob/species/monkey/monkey_tail.dmi differ diff --git a/monkestation/icons/mob/species/simian/bodyparts.dmi b/monkestation/icons/mob/species/simian/bodyparts.dmi deleted file mode 100644 index 205f9ed83d3e..000000000000 Binary files a/monkestation/icons/mob/species/simian/bodyparts.dmi and /dev/null differ diff --git a/monkestation/icons/mob/species/simian/tails.dmi b/monkestation/icons/mob/species/simian/tails.dmi deleted file mode 100644 index 67fa393fd1a7..000000000000 Binary files a/monkestation/icons/mob/species/simian/tails.dmi and /dev/null differ diff --git a/monkestation/icons/mob/species/tundramoths/bodyparts.dmi b/monkestation/icons/mob/species/tundramoths/bodyparts.dmi new file mode 100644 index 000000000000..d97a4b3b1021 Binary files /dev/null and b/monkestation/icons/mob/species/tundramoths/bodyparts.dmi differ diff --git a/monkestation/icons/mob/species/tundramoths/moth_antennae.dmi b/monkestation/icons/mob/species/tundramoths/moth_antennae.dmi new file mode 100644 index 000000000000..d6646379ec14 Binary files /dev/null and b/monkestation/icons/mob/species/tundramoths/moth_antennae.dmi differ diff --git a/monkestation/icons/mob/species/tundramoths/moth_markings.dmi b/monkestation/icons/mob/species/tundramoths/moth_markings.dmi new file mode 100644 index 000000000000..3d5f9a94b81e Binary files /dev/null and b/monkestation/icons/mob/species/tundramoths/moth_markings.dmi differ diff --git a/monkestation/icons/mob/species/tundramoths/moth_wings.dmi b/monkestation/icons/mob/species/tundramoths/moth_wings.dmi new file mode 100644 index 000000000000..146856328449 Binary files /dev/null and b/monkestation/icons/mob/species/tundramoths/moth_wings.dmi differ diff --git a/monkestation/icons/mob/species/zombie/special_zombie_overlays.dmi b/monkestation/icons/mob/species/zombie/special_zombie_overlays.dmi new file mode 100644 index 000000000000..502eec04f4ea Binary files /dev/null and b/monkestation/icons/mob/species/zombie/special_zombie_overlays.dmi differ diff --git a/monkestation/icons/obj/clothing/hats.dmi b/monkestation/icons/obj/clothing/hats.dmi index e6506e7f72c0..c1b065ef864c 100644 Binary files a/monkestation/icons/obj/clothing/hats.dmi and b/monkestation/icons/obj/clothing/hats.dmi differ diff --git a/monkestation/icons/obj/clothing/suits.dmi b/monkestation/icons/obj/clothing/suits.dmi index 1df346b4f296..d1612e0097a7 100644 Binary files a/monkestation/icons/obj/clothing/suits.dmi and b/monkestation/icons/obj/clothing/suits.dmi differ diff --git a/monkestation/icons/obj/guns/guns.dmi b/monkestation/icons/obj/guns/guns.dmi index ca04ed4c2439..4f7366237dee 100644 Binary files a/monkestation/icons/obj/guns/guns.dmi and b/monkestation/icons/obj/guns/guns.dmi differ diff --git a/monkestation/icons/obj/items/plasmalicense.dmi b/monkestation/icons/obj/items/plasmalicense.dmi new file mode 100644 index 000000000000..6f987c181436 Binary files /dev/null and b/monkestation/icons/obj/items/plasmalicense.dmi differ diff --git a/monkestation/sound/effects/artifacts/orchestral/hit01.ogg b/monkestation/sound/effects/artifacts/orchestral/hit01.ogg new file mode 100644 index 000000000000..26ae529aae20 Binary files /dev/null and b/monkestation/sound/effects/artifacts/orchestral/hit01.ogg differ diff --git a/monkestation/sound/effects/artifacts/orchestral/hit02.ogg b/monkestation/sound/effects/artifacts/orchestral/hit02.ogg new file mode 100644 index 000000000000..2b4aa3a93de9 Binary files /dev/null and b/monkestation/sound/effects/artifacts/orchestral/hit02.ogg differ diff --git a/monkestation/sound/effects/artifacts/orchestral/hit03.ogg b/monkestation/sound/effects/artifacts/orchestral/hit03.ogg new file mode 100644 index 000000000000..84d80b5a68f8 Binary files /dev/null and b/monkestation/sound/effects/artifacts/orchestral/hit03.ogg differ diff --git a/monkestation/sound/effects/artifacts/orchestral/hit04.ogg b/monkestation/sound/effects/artifacts/orchestral/hit04.ogg new file mode 100644 index 000000000000..d3498f2e48b2 Binary files /dev/null and b/monkestation/sound/effects/artifacts/orchestral/hit04.ogg differ diff --git a/monkestation/sound/effects/artifacts/orchestral/hit05.ogg b/monkestation/sound/effects/artifacts/orchestral/hit05.ogg new file mode 100644 index 000000000000..bf28e0d5042b Binary files /dev/null and b/monkestation/sound/effects/artifacts/orchestral/hit05.ogg differ diff --git a/monkestation/sound/effects/artifacts/orchestral/hit06.ogg b/monkestation/sound/effects/artifacts/orchestral/hit06.ogg new file mode 100644 index 000000000000..b29eb6b39100 Binary files /dev/null and b/monkestation/sound/effects/artifacts/orchestral/hit06.ogg differ diff --git a/monkestation/sound/effects/artifacts/orchestral/hit07.ogg b/monkestation/sound/effects/artifacts/orchestral/hit07.ogg new file mode 100644 index 000000000000..fa092e7dbd5f Binary files /dev/null and b/monkestation/sound/effects/artifacts/orchestral/hit07.ogg differ diff --git a/monkestation/sound/effects/artifacts/orchestral/hit08.ogg b/monkestation/sound/effects/artifacts/orchestral/hit08.ogg new file mode 100644 index 000000000000..9103be00ba35 Binary files /dev/null and b/monkestation/sound/effects/artifacts/orchestral/hit08.ogg differ diff --git a/monkestation/sound/effects/artifacts/orchestral/hit09.ogg b/monkestation/sound/effects/artifacts/orchestral/hit09.ogg new file mode 100644 index 000000000000..1169c21e1a89 Binary files /dev/null and b/monkestation/sound/effects/artifacts/orchestral/hit09.ogg differ diff --git a/monkestation/sound/effects/artifacts/orchestral/hit10.ogg b/monkestation/sound/effects/artifacts/orchestral/hit10.ogg new file mode 100644 index 000000000000..aaf711191615 Binary files /dev/null and b/monkestation/sound/effects/artifacts/orchestral/hit10.ogg differ diff --git a/monkestation/sound/effects/artifacts/orchestral/hit11.ogg b/monkestation/sound/effects/artifacts/orchestral/hit11.ogg new file mode 100644 index 000000000000..e7683e0a16aa Binary files /dev/null and b/monkestation/sound/effects/artifacts/orchestral/hit11.ogg differ diff --git a/monkestation/sound/effects/artifacts/orchestral/hit12.ogg b/monkestation/sound/effects/artifacts/orchestral/hit12.ogg new file mode 100644 index 000000000000..3651fcb953dc Binary files /dev/null and b/monkestation/sound/effects/artifacts/orchestral/hit12.ogg differ diff --git a/monkestation/sound/effects/artifacts/orchestral/hit13.ogg b/monkestation/sound/effects/artifacts/orchestral/hit13.ogg new file mode 100644 index 000000000000..563c507817da Binary files /dev/null and b/monkestation/sound/effects/artifacts/orchestral/hit13.ogg differ diff --git a/monkestation/sound/effects/artifacts/orchestral/hit14.ogg b/monkestation/sound/effects/artifacts/orchestral/hit14.ogg new file mode 100644 index 000000000000..73c5fd333952 Binary files /dev/null and b/monkestation/sound/effects/artifacts/orchestral/hit14.ogg differ diff --git a/monkestation/sound/effects/artifacts/orchestral/hit15.ogg b/monkestation/sound/effects/artifacts/orchestral/hit15.ogg new file mode 100644 index 000000000000..6d6505f562f2 Binary files /dev/null and b/monkestation/sound/effects/artifacts/orchestral/hit15.ogg differ diff --git a/monkestation/sound/effects/artifacts/orchestral/hit16.ogg b/monkestation/sound/effects/artifacts/orchestral/hit16.ogg new file mode 100644 index 000000000000..10486f09f45d Binary files /dev/null and b/monkestation/sound/effects/artifacts/orchestral/hit16.ogg differ diff --git a/monkestation/sound/effects/artifacts/orchestral/hit17.ogg b/monkestation/sound/effects/artifacts/orchestral/hit17.ogg new file mode 100644 index 000000000000..46cb310c95a8 Binary files /dev/null and b/monkestation/sound/effects/artifacts/orchestral/hit17.ogg differ diff --git a/monkestation/sound/effects/artifacts/orchestral/hit18.ogg b/monkestation/sound/effects/artifacts/orchestral/hit18.ogg new file mode 100644 index 000000000000..030307f8f1a5 Binary files /dev/null and b/monkestation/sound/effects/artifacts/orchestral/hit18.ogg differ diff --git a/monkestation/sound/effects/fart_reverse1.ogg b/monkestation/sound/effects/fart_reverse1.ogg new file mode 100644 index 000000000000..918c28efe3c5 Binary files /dev/null and b/monkestation/sound/effects/fart_reverse1.ogg differ diff --git a/monkestation/sound/effects/fart_reverse2.ogg b/monkestation/sound/effects/fart_reverse2.ogg new file mode 100644 index 000000000000..0f6b6f706865 Binary files /dev/null and b/monkestation/sound/effects/fart_reverse2.ogg differ diff --git a/monkestation/sound/effects/fart_reverse3.ogg b/monkestation/sound/effects/fart_reverse3.ogg new file mode 100644 index 000000000000..367daa34a8a8 Binary files /dev/null and b/monkestation/sound/effects/fart_reverse3.ogg differ diff --git a/monkestation/sound/effects/fart_reverse4.ogg b/monkestation/sound/effects/fart_reverse4.ogg new file mode 100644 index 000000000000..8c69137342f8 Binary files /dev/null and b/monkestation/sound/effects/fart_reverse4.ogg differ diff --git a/monkestation/sound/misc/gamma.ogg b/monkestation/sound/misc/gamma.ogg new file mode 100644 index 000000000000..091d5909bb5d Binary files /dev/null and b/monkestation/sound/misc/gamma.ogg differ diff --git a/monkestation/sound/misc/lambda.ogg b/monkestation/sound/misc/lambda.ogg new file mode 100644 index 000000000000..dad08b5dc31b Binary files /dev/null and b/monkestation/sound/misc/lambda.ogg differ diff --git a/monkestation/sound/misc/menumonkey.ogg b/monkestation/sound/misc/menumonkey.ogg new file mode 100644 index 000000000000..f25f6e8d5c17 Binary files /dev/null and b/monkestation/sound/misc/menumonkey.ogg differ diff --git a/sound/vox_fem/absorb.ogg b/sound/vox_fem/absorb.ogg new file mode 100644 index 000000000000..e05b4aa46457 Binary files /dev/null and b/sound/vox_fem/absorb.ogg differ diff --git a/sound/vox_fem/absorbed.ogg b/sound/vox_fem/absorbed.ogg new file mode 100644 index 000000000000..726f1aa8c6ff Binary files /dev/null and b/sound/vox_fem/absorbed.ogg differ diff --git a/sound/vox_fem/absorbing.ogg b/sound/vox_fem/absorbing.ogg new file mode 100644 index 000000000000..8b8c1f575c74 Binary files /dev/null and b/sound/vox_fem/absorbing.ogg differ diff --git a/sound/vox_fem/activating.ogg b/sound/vox_fem/activating.ogg new file mode 100644 index 000000000000..8082efb69114 Binary files /dev/null and b/sound/vox_fem/activating.ogg differ diff --git a/sound/vox_fem/activation.ogg b/sound/vox_fem/activation.ogg new file mode 100644 index 000000000000..f06d33245df5 Binary files /dev/null and b/sound/vox_fem/activation.ogg differ diff --git a/sound/vox_fem/active.ogg b/sound/vox_fem/active.ogg new file mode 100644 index 000000000000..54d0c1eb45f5 Binary files /dev/null and b/sound/vox_fem/active.ogg differ diff --git a/sound/vox_fem/affect.ogg b/sound/vox_fem/affect.ogg new file mode 100644 index 000000000000..4c9b7aaeaad6 Binary files /dev/null and b/sound/vox_fem/affect.ogg differ diff --git a/sound/vox_fem/affected.ogg b/sound/vox_fem/affected.ogg new file mode 100644 index 000000000000..c634e08f7342 Binary files /dev/null and b/sound/vox_fem/affected.ogg differ diff --git a/sound/vox_fem/affecting.ogg b/sound/vox_fem/affecting.ogg new file mode 100644 index 000000000000..18f2e3c0c7a6 Binary files /dev/null and b/sound/vox_fem/affecting.ogg differ diff --git a/sound/vox_fem/alarmed.ogg b/sound/vox_fem/alarmed.ogg new file mode 100644 index 000000000000..a24b7caf99a2 Binary files /dev/null and b/sound/vox_fem/alarmed.ogg differ diff --git a/sound/vox_fem/alarming.ogg b/sound/vox_fem/alarming.ogg new file mode 100644 index 000000000000..35d51efd921d Binary files /dev/null and b/sound/vox_fem/alarming.ogg differ diff --git a/sound/vox_fem/alcohol.ogg b/sound/vox_fem/alcohol.ogg new file mode 100644 index 000000000000..a304167a27f8 Binary files /dev/null and b/sound/vox_fem/alcohol.ogg differ diff --git a/sound/vox_fem/alerted.ogg b/sound/vox_fem/alerted.ogg new file mode 100644 index 000000000000..2365c103108b Binary files /dev/null and b/sound/vox_fem/alerted.ogg differ diff --git a/sound/vox_fem/alerting.ogg b/sound/vox_fem/alerting.ogg new file mode 100644 index 000000000000..444e484665e9 Binary files /dev/null and b/sound/vox_fem/alerting.ogg differ diff --git a/sound/vox_fem/align.ogg b/sound/vox_fem/align.ogg new file mode 100644 index 000000000000..bcf4b6465a89 Binary files /dev/null and b/sound/vox_fem/align.ogg differ diff --git a/sound/vox_fem/allow.ogg b/sound/vox_fem/allow.ogg new file mode 100644 index 000000000000..ea0b8098fd75 Binary files /dev/null and b/sound/vox_fem/allow.ogg differ diff --git a/sound/vox_fem/alongside.ogg b/sound/vox_fem/alongside.ogg new file mode 100644 index 000000000000..a96b9e7ba25d Binary files /dev/null and b/sound/vox_fem/alongside.ogg differ diff --git a/sound/vox_fem/amount.ogg b/sound/vox_fem/amount.ogg new file mode 100644 index 000000000000..19b59e8263cf Binary files /dev/null and b/sound/vox_fem/amount.ogg differ diff --git a/sound/vox_fem/annihilate.ogg b/sound/vox_fem/annihilate.ogg new file mode 100644 index 000000000000..375dfda691fd Binary files /dev/null and b/sound/vox_fem/annihilate.ogg differ diff --git a/sound/vox_fem/annihilated.ogg b/sound/vox_fem/annihilated.ogg new file mode 100644 index 000000000000..823cc93dc6a6 Binary files /dev/null and b/sound/vox_fem/annihilated.ogg differ diff --git a/sound/vox_fem/annihilating.ogg b/sound/vox_fem/annihilating.ogg new file mode 100644 index 000000000000..95a507df8503 Binary files /dev/null and b/sound/vox_fem/annihilating.ogg differ diff --git a/sound/vox_fem/annihilation.ogg b/sound/vox_fem/annihilation.ogg new file mode 100644 index 000000000000..6acb85503388 Binary files /dev/null and b/sound/vox_fem/annihilation.ogg differ diff --git a/sound/vox_fem/anti-noblium.ogg b/sound/vox_fem/anti-noblium.ogg new file mode 100644 index 000000000000..70f89e82229a Binary files /dev/null and b/sound/vox_fem/anti-noblium.ogg differ diff --git a/sound/vox_fem/arc.ogg b/sound/vox_fem/arc.ogg new file mode 100644 index 000000000000..3ebed29740dd Binary files /dev/null and b/sound/vox_fem/arc.ogg differ diff --git a/sound/vox_fem/arcs.ogg b/sound/vox_fem/arcs.ogg new file mode 100644 index 000000000000..cb32908d5b84 Binary files /dev/null and b/sound/vox_fem/arcs.ogg differ diff --git a/sound/vox_fem/around.ogg b/sound/vox_fem/around.ogg new file mode 100644 index 000000000000..76183f92cda0 Binary files /dev/null and b/sound/vox_fem/around.ogg differ diff --git a/sound/vox_fem/artillery.ogg b/sound/vox_fem/artillery.ogg new file mode 100644 index 000000000000..ab072d72584c Binary files /dev/null and b/sound/vox_fem/artillery.ogg differ diff --git a/sound/vox_fem/ask.ogg b/sound/vox_fem/ask.ogg new file mode 100644 index 000000000000..c8d00b003999 Binary files /dev/null and b/sound/vox_fem/ask.ogg differ diff --git a/sound/vox_fem/ate.ogg b/sound/vox_fem/ate.ogg new file mode 100644 index 000000000000..8dcdd461d11c Binary files /dev/null and b/sound/vox_fem/ate.ogg differ diff --git a/sound/vox_fem/beaker.ogg b/sound/vox_fem/beaker.ogg new file mode 100644 index 000000000000..6863afc5c79a Binary files /dev/null and b/sound/vox_fem/beaker.ogg differ diff --git a/sound/vox_fem/began.ogg b/sound/vox_fem/began.ogg new file mode 100644 index 000000000000..548143aff53c Binary files /dev/null and b/sound/vox_fem/began.ogg differ diff --git a/sound/vox_fem/begin.ogg b/sound/vox_fem/begin.ogg new file mode 100644 index 000000000000..5c70cebbb096 Binary files /dev/null and b/sound/vox_fem/begin.ogg differ diff --git a/sound/vox_fem/begins.ogg b/sound/vox_fem/begins.ogg new file mode 100644 index 000000000000..5fedd2ef4b59 Binary files /dev/null and b/sound/vox_fem/begins.ogg differ diff --git a/sound/vox_fem/big.ogg b/sound/vox_fem/big.ogg new file mode 100644 index 000000000000..662e3a54f7a1 Binary files /dev/null and b/sound/vox_fem/big.ogg differ diff --git a/sound/vox_fem/billion.ogg b/sound/vox_fem/billion.ogg new file mode 100644 index 000000000000..126cc1d8049b Binary files /dev/null and b/sound/vox_fem/billion.ogg differ diff --git a/sound/vox_fem/bitrun.ogg b/sound/vox_fem/bitrun.ogg new file mode 100644 index 000000000000..159cc01bfb40 Binary files /dev/null and b/sound/vox_fem/bitrun.ogg differ diff --git a/sound/vox_fem/bitrunner.ogg b/sound/vox_fem/bitrunner.ogg new file mode 100644 index 000000000000..32b2220ba67b Binary files /dev/null and b/sound/vox_fem/bitrunner.ogg differ diff --git a/sound/vox_fem/bitrunning.ogg b/sound/vox_fem/bitrunning.ogg new file mode 100644 index 000000000000..106757e00773 Binary files /dev/null and b/sound/vox_fem/bitrunning.ogg differ diff --git a/sound/vox_fem/bluespace.ogg b/sound/vox_fem/bluespace.ogg new file mode 100644 index 000000000000..eef607da7491 Binary files /dev/null and b/sound/vox_fem/bluespace.ogg differ diff --git a/sound/vox_fem/bottle.ogg b/sound/vox_fem/bottle.ogg new file mode 100644 index 000000000000..b5bd1f34e761 Binary files /dev/null and b/sound/vox_fem/bottle.ogg differ diff --git a/sound/vox_fem/broke.ogg b/sound/vox_fem/broke.ogg new file mode 100644 index 000000000000..a1a075d6769c Binary files /dev/null and b/sound/vox_fem/broke.ogg differ diff --git a/sound/vox_fem/broken.ogg b/sound/vox_fem/broken.ogg new file mode 100644 index 000000000000..589dabc0a392 Binary files /dev/null and b/sound/vox_fem/broken.ogg differ diff --git a/sound/vox_fem/bump.ogg b/sound/vox_fem/bump.ogg new file mode 100644 index 000000000000..c6892a3412fa Binary files /dev/null and b/sound/vox_fem/bump.ogg differ diff --git a/sound/vox_fem/bumped.ogg b/sound/vox_fem/bumped.ogg new file mode 100644 index 000000000000..6d111a8731d1 Binary files /dev/null and b/sound/vox_fem/bumped.ogg differ diff --git a/sound/vox_fem/bumps.ogg b/sound/vox_fem/bumps.ogg new file mode 100644 index 000000000000..a7fff16f0480 Binary files /dev/null and b/sound/vox_fem/bumps.ogg differ diff --git a/sound/vox_fem/can.ogg b/sound/vox_fem/can.ogg new file mode 100644 index 000000000000..0d77353ad99e Binary files /dev/null and b/sound/vox_fem/can.ogg differ diff --git a/sound/vox_fem/cascade.ogg b/sound/vox_fem/cascade.ogg new file mode 100644 index 000000000000..cc7e70ed00d2 Binary files /dev/null and b/sound/vox_fem/cascade.ogg differ diff --git a/sound/vox_fem/cause.ogg b/sound/vox_fem/cause.ogg new file mode 100644 index 000000000000..2294d0405d03 Binary files /dev/null and b/sound/vox_fem/cause.ogg differ diff --git a/sound/vox_fem/caused.ogg b/sound/vox_fem/caused.ogg new file mode 100644 index 000000000000..c91eecaa90db Binary files /dev/null and b/sound/vox_fem/caused.ogg differ diff --git a/sound/vox_fem/causes.ogg b/sound/vox_fem/causes.ogg new file mode 100644 index 000000000000..019430ccb4a0 Binary files /dev/null and b/sound/vox_fem/causes.ogg differ diff --git a/sound/vox_fem/causing.ogg b/sound/vox_fem/causing.ogg new file mode 100644 index 000000000000..e41ab06c2b4a Binary files /dev/null and b/sound/vox_fem/causing.ogg differ diff --git a/sound/vox_fem/charge.ogg b/sound/vox_fem/charge.ogg new file mode 100644 index 000000000000..b5adb81d83b5 Binary files /dev/null and b/sound/vox_fem/charge.ogg differ diff --git a/sound/vox_fem/christmas.ogg b/sound/vox_fem/christmas.ogg new file mode 100644 index 000000000000..c1bfc707b79a Binary files /dev/null and b/sound/vox_fem/christmas.ogg differ diff --git a/sound/vox_fem/clog.ogg b/sound/vox_fem/clog.ogg new file mode 100644 index 000000000000..31e6bf604ec4 Binary files /dev/null and b/sound/vox_fem/clog.ogg differ diff --git a/sound/vox_fem/closed.ogg b/sound/vox_fem/closed.ogg new file mode 100644 index 000000000000..a20be2a50af5 Binary files /dev/null and b/sound/vox_fem/closed.ogg differ diff --git a/sound/vox_fem/closing.ogg b/sound/vox_fem/closing.ogg new file mode 100644 index 000000000000..0d5d99667fde Binary files /dev/null and b/sound/vox_fem/closing.ogg differ diff --git a/sound/vox_fem/clothing.ogg b/sound/vox_fem/clothing.ogg new file mode 100644 index 000000000000..912a7532fe3a Binary files /dev/null and b/sound/vox_fem/clothing.ogg differ diff --git a/sound/vox_fem/coil.ogg b/sound/vox_fem/coil.ogg new file mode 100644 index 000000000000..d9a76618eb4f Binary files /dev/null and b/sound/vox_fem/coil.ogg differ diff --git a/sound/vox_fem/coils.ogg b/sound/vox_fem/coils.ogg new file mode 100644 index 000000000000..12d0d54fd3e8 Binary files /dev/null and b/sound/vox_fem/coils.ogg differ diff --git a/sound/vox_fem/combat.ogg b/sound/vox_fem/combat.ogg new file mode 100644 index 000000000000..51a438ea9532 Binary files /dev/null and b/sound/vox_fem/combat.ogg differ diff --git a/sound/vox_fem/combatant.ogg b/sound/vox_fem/combatant.ogg new file mode 100644 index 000000000000..d82f5dddd009 Binary files /dev/null and b/sound/vox_fem/combatant.ogg differ diff --git a/sound/vox_fem/complete.ogg b/sound/vox_fem/complete.ogg new file mode 100644 index 000000000000..134d280d068f Binary files /dev/null and b/sound/vox_fem/complete.ogg differ diff --git a/sound/vox_fem/completed.ogg b/sound/vox_fem/completed.ogg new file mode 100644 index 000000000000..bdeca3b4fe34 Binary files /dev/null and b/sound/vox_fem/completed.ogg differ diff --git a/sound/vox_fem/completion.ogg b/sound/vox_fem/completion.ogg new file mode 100644 index 000000000000..c4d65fbdad0c Binary files /dev/null and b/sound/vox_fem/completion.ogg differ diff --git a/sound/vox_fem/conditions.ogg b/sound/vox_fem/conditions.ogg new file mode 100644 index 000000000000..79e0a6bfe8f3 Binary files /dev/null and b/sound/vox_fem/conditions.ogg differ diff --git a/sound/vox_fem/configure.ogg b/sound/vox_fem/configure.ogg new file mode 100644 index 000000000000..753339e761e8 Binary files /dev/null and b/sound/vox_fem/configure.ogg differ diff --git a/sound/vox_fem/configured.ogg b/sound/vox_fem/configured.ogg new file mode 100644 index 000000000000..544ed189add4 Binary files /dev/null and b/sound/vox_fem/configured.ogg differ diff --git a/sound/vox_fem/configuring.ogg b/sound/vox_fem/configuring.ogg new file mode 100644 index 000000000000..eb81a1bb1df1 Binary files /dev/null and b/sound/vox_fem/configuring.ogg differ diff --git a/sound/vox_fem/container.ogg b/sound/vox_fem/container.ogg new file mode 100644 index 000000000000..59fe11b5f48c Binary files /dev/null and b/sound/vox_fem/container.ogg differ diff --git a/sound/vox_fem/cool.ogg b/sound/vox_fem/cool.ogg new file mode 100644 index 000000000000..0e8c39a92608 Binary files /dev/null and b/sound/vox_fem/cool.ogg differ diff --git a/sound/vox_fem/cooling.ogg b/sound/vox_fem/cooling.ogg new file mode 100644 index 000000000000..eef866ca1b16 Binary files /dev/null and b/sound/vox_fem/cooling.ogg differ diff --git a/sound/vox_fem/could.ogg b/sound/vox_fem/could.ogg new file mode 100644 index 000000000000..fdbd14f696c2 Binary files /dev/null and b/sound/vox_fem/could.ogg differ diff --git a/sound/vox_fem/couldnt.ogg b/sound/vox_fem/couldnt.ogg new file mode 100644 index 000000000000..80550544ee49 Binary files /dev/null and b/sound/vox_fem/couldnt.ogg differ diff --git a/sound/vox_fem/countdown.ogg b/sound/vox_fem/countdown.ogg new file mode 100644 index 000000000000..93b0f6496157 Binary files /dev/null and b/sound/vox_fem/countdown.ogg differ diff --git a/sound/vox_fem/create.ogg b/sound/vox_fem/create.ogg new file mode 100644 index 000000000000..f4f1797202af Binary files /dev/null and b/sound/vox_fem/create.ogg differ diff --git a/sound/vox_fem/creating.ogg b/sound/vox_fem/creating.ogg new file mode 100644 index 000000000000..ca2a92d5d726 Binary files /dev/null and b/sound/vox_fem/creating.ogg differ diff --git a/sound/vox_fem/cunt.ogg b/sound/vox_fem/cunt.ogg new file mode 100644 index 000000000000..1aafad77f805 Binary files /dev/null and b/sound/vox_fem/cunt.ogg differ diff --git a/sound/vox_fem/delaminating.ogg b/sound/vox_fem/delaminating.ogg new file mode 100644 index 000000000000..3c023387abf4 Binary files /dev/null and b/sound/vox_fem/delaminating.ogg differ diff --git a/sound/vox_fem/delamination.ogg b/sound/vox_fem/delamination.ogg new file mode 100644 index 000000000000..993c06fd4eae Binary files /dev/null and b/sound/vox_fem/delamination.ogg differ diff --git a/sound/vox_fem/deny.ogg b/sound/vox_fem/deny.ogg new file mode 100644 index 000000000000..df6b5cb40fb6 Binary files /dev/null and b/sound/vox_fem/deny.ogg differ diff --git a/sound/vox_fem/detect.ogg b/sound/vox_fem/detect.ogg new file mode 100644 index 000000000000..e5ea9092f0af Binary files /dev/null and b/sound/vox_fem/detect.ogg differ diff --git a/sound/vox_fem/detecting.ogg b/sound/vox_fem/detecting.ogg new file mode 100644 index 000000000000..1b849cd836dd Binary files /dev/null and b/sound/vox_fem/detecting.ogg differ diff --git a/sound/vox_fem/died.ogg b/sound/vox_fem/died.ogg new file mode 100644 index 000000000000..bf11460779fd Binary files /dev/null and b/sound/vox_fem/died.ogg differ diff --git a/sound/vox_fem/different.ogg b/sound/vox_fem/different.ogg new file mode 100644 index 000000000000..dfce0903818d Binary files /dev/null and b/sound/vox_fem/different.ogg differ diff --git a/sound/vox_fem/direct.ogg b/sound/vox_fem/direct.ogg new file mode 100644 index 000000000000..f1268e34a096 Binary files /dev/null and b/sound/vox_fem/direct.ogg differ diff --git a/sound/vox_fem/dont.ogg b/sound/vox_fem/dont.ogg new file mode 100644 index 000000000000..20723c8687ca Binary files /dev/null and b/sound/vox_fem/dont.ogg differ diff --git a/sound/vox_fem/double.ogg b/sound/vox_fem/double.ogg new file mode 100644 index 000000000000..3c3eb3157bc3 Binary files /dev/null and b/sound/vox_fem/double.ogg differ diff --git a/sound/vox_fem/dress.ogg b/sound/vox_fem/dress.ogg new file mode 100644 index 000000000000..84cc7fe79b99 Binary files /dev/null and b/sound/vox_fem/dress.ogg differ diff --git a/sound/vox_fem/dressed.ogg b/sound/vox_fem/dressed.ogg new file mode 100644 index 000000000000..4a9ef3515a63 Binary files /dev/null and b/sound/vox_fem/dressed.ogg differ diff --git a/sound/vox_fem/dressing.ogg b/sound/vox_fem/dressing.ogg new file mode 100644 index 000000000000..dded3edabb3b Binary files /dev/null and b/sound/vox_fem/dressing.ogg differ diff --git a/sound/vox_fem/easily.ogg b/sound/vox_fem/easily.ogg new file mode 100644 index 000000000000..cadf6f9291fb Binary files /dev/null and b/sound/vox_fem/easily.ogg differ diff --git a/sound/vox_fem/eat.ogg b/sound/vox_fem/eat.ogg new file mode 100644 index 000000000000..b33c5a350345 Binary files /dev/null and b/sound/vox_fem/eat.ogg differ diff --git a/sound/vox_fem/eaten.ogg b/sound/vox_fem/eaten.ogg new file mode 100644 index 000000000000..9005930d0f6a Binary files /dev/null and b/sound/vox_fem/eaten.ogg differ diff --git a/sound/vox_fem/education.ogg b/sound/vox_fem/education.ogg new file mode 100644 index 000000000000..9a7ed1d17d12 Binary files /dev/null and b/sound/vox_fem/education.ogg differ diff --git a/sound/vox_fem/effects.ogg b/sound/vox_fem/effects.ogg new file mode 100644 index 000000000000..59eb22c67fe4 Binary files /dev/null and b/sound/vox_fem/effects.ogg differ diff --git a/sound/vox_fem/electrical.ogg b/sound/vox_fem/electrical.ogg new file mode 100644 index 000000000000..08e40b2367c5 Binary files /dev/null and b/sound/vox_fem/electrical.ogg differ diff --git a/sound/vox_fem/emitted.ogg b/sound/vox_fem/emitted.ogg new file mode 100644 index 000000000000..d31b6307a3d1 Binary files /dev/null and b/sound/vox_fem/emitted.ogg differ diff --git a/sound/vox_fem/emitter.ogg b/sound/vox_fem/emitter.ogg new file mode 100644 index 000000000000..6662ece8be40 Binary files /dev/null and b/sound/vox_fem/emitter.ogg differ diff --git a/sound/vox_fem/emitting.ogg b/sound/vox_fem/emitting.ogg new file mode 100644 index 000000000000..377f792c0801 Binary files /dev/null and b/sound/vox_fem/emitting.ogg differ diff --git a/sound/vox_fem/end.ogg b/sound/vox_fem/end.ogg new file mode 100644 index 000000000000..95b430e8b643 Binary files /dev/null and b/sound/vox_fem/end.ogg differ diff --git a/sound/vox_fem/ends.ogg b/sound/vox_fem/ends.ogg new file mode 100644 index 000000000000..34e06feb39ef Binary files /dev/null and b/sound/vox_fem/ends.ogg differ diff --git a/sound/vox_fem/enormous.ogg b/sound/vox_fem/enormous.ogg new file mode 100644 index 000000000000..040b31b5d688 Binary files /dev/null and b/sound/vox_fem/enormous.ogg differ diff --git a/sound/vox_fem/enough.ogg b/sound/vox_fem/enough.ogg new file mode 100644 index 000000000000..b7056903b955 Binary files /dev/null and b/sound/vox_fem/enough.ogg differ diff --git a/sound/vox_fem/ethereal.ogg b/sound/vox_fem/ethereal.ogg new file mode 100644 index 000000000000..ec27cdefb5ae Binary files /dev/null and b/sound/vox_fem/ethereal.ogg differ diff --git a/sound/vox_fem/even.ogg b/sound/vox_fem/even.ogg new file mode 100644 index 000000000000..75294ef40251 Binary files /dev/null and b/sound/vox_fem/even.ogg differ diff --git a/sound/vox_fem/ever.ogg b/sound/vox_fem/ever.ogg new file mode 100644 index 000000000000..54cf407148e6 Binary files /dev/null and b/sound/vox_fem/ever.ogg differ diff --git a/sound/vox_fem/every.ogg b/sound/vox_fem/every.ogg new file mode 100644 index 000000000000..6468158bd7dc Binary files /dev/null and b/sound/vox_fem/every.ogg differ diff --git a/sound/vox_fem/everybody.ogg b/sound/vox_fem/everybody.ogg new file mode 100644 index 000000000000..8d8cc9748948 Binary files /dev/null and b/sound/vox_fem/everybody.ogg differ diff --git a/sound/vox_fem/everyone.ogg b/sound/vox_fem/everyone.ogg new file mode 100644 index 000000000000..19e137b9a0cb Binary files /dev/null and b/sound/vox_fem/everyone.ogg differ diff --git a/sound/vox_fem/execute.ogg b/sound/vox_fem/execute.ogg new file mode 100644 index 000000000000..f77c035d9773 Binary files /dev/null and b/sound/vox_fem/execute.ogg differ diff --git a/sound/vox_fem/exploded.ogg b/sound/vox_fem/exploded.ogg new file mode 100644 index 000000000000..1534b362892c Binary files /dev/null and b/sound/vox_fem/exploded.ogg differ diff --git a/sound/vox_fem/exploding.ogg b/sound/vox_fem/exploding.ogg new file mode 100644 index 000000000000..a6980e6b53b7 Binary files /dev/null and b/sound/vox_fem/exploding.ogg differ diff --git a/sound/vox_fem/external.ogg b/sound/vox_fem/external.ogg new file mode 100644 index 000000000000..d6f39b2651e0 Binary files /dev/null and b/sound/vox_fem/external.ogg differ diff --git a/sound/vox_fem/extra.ogg b/sound/vox_fem/extra.ogg new file mode 100644 index 000000000000..0b5b16c6957b Binary files /dev/null and b/sound/vox_fem/extra.ogg differ diff --git a/sound/vox_fem/feature.ogg b/sound/vox_fem/feature.ogg new file mode 100644 index 000000000000..59a3f68d456a Binary files /dev/null and b/sound/vox_fem/feature.ogg differ diff --git a/sound/vox_fem/featured.ogg b/sound/vox_fem/featured.ogg new file mode 100644 index 000000000000..e087b0d7cc66 Binary files /dev/null and b/sound/vox_fem/featured.ogg differ diff --git a/sound/vox_fem/features.ogg b/sound/vox_fem/features.ogg new file mode 100644 index 000000000000..745992b760a7 Binary files /dev/null and b/sound/vox_fem/features.ogg differ diff --git a/sound/vox_fem/featuring.ogg b/sound/vox_fem/featuring.ogg new file mode 100644 index 000000000000..72578f2bb19d Binary files /dev/null and b/sound/vox_fem/featuring.ogg differ diff --git a/sound/vox_fem/felinid.ogg b/sound/vox_fem/felinid.ogg new file mode 100644 index 000000000000..b40747fb1178 Binary files /dev/null and b/sound/vox_fem/felinid.ogg differ diff --git a/sound/vox_fem/few.ogg b/sound/vox_fem/few.ogg new file mode 100644 index 000000000000..5ba76619c0f4 Binary files /dev/null and b/sound/vox_fem/few.ogg differ diff --git a/sound/vox_fem/filter.ogg b/sound/vox_fem/filter.ogg new file mode 100644 index 000000000000..3b2ae95e37ff Binary files /dev/null and b/sound/vox_fem/filter.ogg differ diff --git a/sound/vox_fem/filters.ogg b/sound/vox_fem/filters.ogg new file mode 100644 index 000000000000..204b82da198e Binary files /dev/null and b/sound/vox_fem/filters.ogg differ diff --git a/sound/vox_fem/foolish.ogg b/sound/vox_fem/foolish.ogg new file mode 100644 index 000000000000..214ed30f2c43 Binary files /dev/null and b/sound/vox_fem/foolish.ogg differ diff --git a/sound/vox_fem/forty.ogg b/sound/vox_fem/forty.ogg new file mode 100644 index 000000000000..45bae51678a1 Binary files /dev/null and b/sound/vox_fem/forty.ogg differ diff --git a/sound/vox_fem/freeze.ogg b/sound/vox_fem/freeze.ogg new file mode 100644 index 000000000000..fce7515b196d Binary files /dev/null and b/sound/vox_fem/freeze.ogg differ diff --git a/sound/vox_fem/freon.ogg b/sound/vox_fem/freon.ogg new file mode 100644 index 000000000000..82128fee2410 Binary files /dev/null and b/sound/vox_fem/freon.ogg differ diff --git a/sound/vox_fem/froze.ogg b/sound/vox_fem/froze.ogg new file mode 100644 index 000000000000..512cc6c8169c Binary files /dev/null and b/sound/vox_fem/froze.ogg differ diff --git a/sound/vox_fem/frozen.ogg b/sound/vox_fem/frozen.ogg new file mode 100644 index 000000000000..2a21298cb456 Binary files /dev/null and b/sound/vox_fem/frozen.ogg differ diff --git a/sound/vox_fem/gases.ogg b/sound/vox_fem/gases.ogg new file mode 100644 index 000000000000..0605a2605566 Binary files /dev/null and b/sound/vox_fem/gases.ogg differ diff --git a/sound/vox_fem/gave.ogg b/sound/vox_fem/gave.ogg new file mode 100644 index 000000000000..beb35f1f4215 Binary files /dev/null and b/sound/vox_fem/gave.ogg differ diff --git a/sound/vox_fem/gear.ogg b/sound/vox_fem/gear.ogg new file mode 100644 index 000000000000..629667e5df41 Binary files /dev/null and b/sound/vox_fem/gear.ogg differ diff --git a/sound/vox_fem/geared.ogg b/sound/vox_fem/geared.ogg new file mode 100644 index 000000000000..7188c657589d Binary files /dev/null and b/sound/vox_fem/geared.ogg differ diff --git a/sound/vox_fem/gearing.ogg b/sound/vox_fem/gearing.ogg new file mode 100644 index 000000000000..9e27a7956943 Binary files /dev/null and b/sound/vox_fem/gearing.ogg differ diff --git a/sound/vox_fem/generate.ogg b/sound/vox_fem/generate.ogg new file mode 100644 index 000000000000..ceb09ec3b436 Binary files /dev/null and b/sound/vox_fem/generate.ogg differ diff --git a/sound/vox_fem/generated.ogg b/sound/vox_fem/generated.ogg new file mode 100644 index 000000000000..42a49e7d43e5 Binary files /dev/null and b/sound/vox_fem/generated.ogg differ diff --git a/sound/vox_fem/generating.ogg b/sound/vox_fem/generating.ogg new file mode 100644 index 000000000000..a90e62d9dd76 Binary files /dev/null and b/sound/vox_fem/generating.ogg differ diff --git a/sound/vox_fem/give.ogg b/sound/vox_fem/give.ogg new file mode 100644 index 000000000000..8144ba82ccce Binary files /dev/null and b/sound/vox_fem/give.ogg differ diff --git a/sound/vox_fem/given.ogg b/sound/vox_fem/given.ogg new file mode 100644 index 000000000000..63f86c4878f8 Binary files /dev/null and b/sound/vox_fem/given.ogg differ diff --git a/sound/vox_fem/gyatt.ogg b/sound/vox_fem/gyatt.ogg new file mode 100644 index 000000000000..64849df2bd7f Binary files /dev/null and b/sound/vox_fem/gyatt.ogg differ diff --git a/sound/vox_fem/had.ogg b/sound/vox_fem/had.ogg new file mode 100644 index 000000000000..c04a0fd2cbcf Binary files /dev/null and b/sound/vox_fem/had.ogg differ diff --git a/sound/vox_fem/halon.ogg b/sound/vox_fem/halon.ogg new file mode 100644 index 000000000000..0cab7dee9a5c Binary files /dev/null and b/sound/vox_fem/halon.ogg differ diff --git a/sound/vox_fem/hard.ogg b/sound/vox_fem/hard.ogg new file mode 100644 index 000000000000..be1a80c3f091 Binary files /dev/null and b/sound/vox_fem/hard.ogg differ diff --git a/sound/vox_fem/hardly.ogg b/sound/vox_fem/hardly.ogg new file mode 100644 index 000000000000..bb4de217a176 Binary files /dev/null and b/sound/vox_fem/hardly.ogg differ diff --git a/sound/vox_fem/harness.ogg b/sound/vox_fem/harness.ogg new file mode 100644 index 000000000000..a81840955f4b Binary files /dev/null and b/sound/vox_fem/harness.ogg differ diff --git a/sound/vox_fem/harnessed.ogg b/sound/vox_fem/harnessed.ogg new file mode 100644 index 000000000000..d1f259c7bdfd Binary files /dev/null and b/sound/vox_fem/harnessed.ogg differ diff --git a/sound/vox_fem/harnessing.ogg b/sound/vox_fem/harnessing.ogg new file mode 100644 index 000000000000..3dbdd03af886 Binary files /dev/null and b/sound/vox_fem/harnessing.ogg differ diff --git a/sound/vox_fem/heal.ogg b/sound/vox_fem/heal.ogg new file mode 100644 index 000000000000..f31b53c1cba5 Binary files /dev/null and b/sound/vox_fem/heal.ogg differ diff --git a/sound/vox_fem/healed.ogg b/sound/vox_fem/healed.ogg new file mode 100644 index 000000000000..80eea8068a5b Binary files /dev/null and b/sound/vox_fem/healed.ogg differ diff --git a/sound/vox_fem/healing.ogg b/sound/vox_fem/healing.ogg new file mode 100644 index 000000000000..6ebcc588294f Binary files /dev/null and b/sound/vox_fem/healing.ogg differ diff --git a/sound/vox_fem/healium.ogg b/sound/vox_fem/healium.ogg new file mode 100644 index 000000000000..79b4fd19de32 Binary files /dev/null and b/sound/vox_fem/healium.ogg differ diff --git a/sound/vox_fem/heated.ogg b/sound/vox_fem/heated.ogg new file mode 100644 index 000000000000..e3db67adee43 Binary files /dev/null and b/sound/vox_fem/heated.ogg differ diff --git a/sound/vox_fem/heating.ogg b/sound/vox_fem/heating.ogg new file mode 100644 index 000000000000..553b4d557660 Binary files /dev/null and b/sound/vox_fem/heating.ogg differ diff --git a/sound/vox_fem/her.ogg b/sound/vox_fem/her.ogg new file mode 100644 index 000000000000..ea7788787545 Binary files /dev/null and b/sound/vox_fem/her.ogg differ diff --git a/sound/vox_fem/heretic.ogg b/sound/vox_fem/heretic.ogg new file mode 100644 index 000000000000..ef8a3b2bbbfc Binary files /dev/null and b/sound/vox_fem/heretic.ogg differ diff --git a/sound/vox_fem/him.ogg b/sound/vox_fem/him.ogg new file mode 100644 index 000000000000..fa5658df4a2c Binary files /dev/null and b/sound/vox_fem/him.ogg differ diff --git a/sound/vox_fem/hydrogen.ogg b/sound/vox_fem/hydrogen.ogg new file mode 100644 index 000000000000..050a3bc028cc Binary files /dev/null and b/sound/vox_fem/hydrogen.ogg differ diff --git a/sound/vox_fem/hyper-noblium.ogg b/sound/vox_fem/hyper-noblium.ogg new file mode 100644 index 000000000000..4fda6b404689 Binary files /dev/null and b/sound/vox_fem/hyper-noblium.ogg differ diff --git a/sound/vox_fem/inert.ogg b/sound/vox_fem/inert.ogg new file mode 100644 index 000000000000..00826c23b2af Binary files /dev/null and b/sound/vox_fem/inert.ogg differ diff --git a/sound/vox_fem/internal.ogg b/sound/vox_fem/internal.ogg new file mode 100644 index 000000000000..0cc275bd471c Binary files /dev/null and b/sound/vox_fem/internal.ogg differ diff --git a/sound/vox_fem/invalidate.ogg b/sound/vox_fem/invalidate.ogg new file mode 100644 index 000000000000..77259d6034f3 Binary files /dev/null and b/sound/vox_fem/invalidate.ogg differ diff --git a/sound/vox_fem/irradiate.ogg b/sound/vox_fem/irradiate.ogg new file mode 100644 index 000000000000..d14b29617982 Binary files /dev/null and b/sound/vox_fem/irradiate.ogg differ diff --git a/sound/vox_fem/its.ogg b/sound/vox_fem/its.ogg new file mode 100644 index 000000000000..b5c2c22dd572 Binary files /dev/null and b/sound/vox_fem/its.ogg differ diff --git a/sound/vox_fem/job.ogg b/sound/vox_fem/job.ogg new file mode 100644 index 000000000000..5b8186d0f726 Binary files /dev/null and b/sound/vox_fem/job.ogg differ diff --git a/sound/vox_fem/jobs.ogg b/sound/vox_fem/jobs.ogg new file mode 100644 index 000000000000..3fd3529e06c3 Binary files /dev/null and b/sound/vox_fem/jobs.ogg differ diff --git a/sound/vox_fem/jolly.ogg b/sound/vox_fem/jolly.ogg new file mode 100644 index 000000000000..6989b7db318e Binary files /dev/null and b/sound/vox_fem/jolly.ogg differ diff --git a/sound/vox_fem/kelvin.ogg b/sound/vox_fem/kelvin.ogg new file mode 100644 index 000000000000..dd759e02214f Binary files /dev/null and b/sound/vox_fem/kelvin.ogg differ diff --git a/sound/vox_fem/killer.ogg b/sound/vox_fem/killer.ogg new file mode 100644 index 000000000000..2abe351ecf26 Binary files /dev/null and b/sound/vox_fem/killer.ogg differ diff --git a/sound/vox_fem/large.ogg b/sound/vox_fem/large.ogg new file mode 100644 index 000000000000..54892873434f Binary files /dev/null and b/sound/vox_fem/large.ogg differ diff --git a/sound/vox_fem/lightbulb.ogg b/sound/vox_fem/lightbulb.ogg new file mode 100644 index 000000000000..9fbbe76fd595 Binary files /dev/null and b/sound/vox_fem/lightbulb.ogg differ diff --git a/sound/vox_fem/limit.ogg b/sound/vox_fem/limit.ogg new file mode 100644 index 000000000000..d88bd43e01d9 Binary files /dev/null and b/sound/vox_fem/limit.ogg differ diff --git a/sound/vox_fem/limited.ogg b/sound/vox_fem/limited.ogg new file mode 100644 index 000000000000..df3d3b3ebe4c Binary files /dev/null and b/sound/vox_fem/limited.ogg differ diff --git a/sound/vox_fem/list.ogg b/sound/vox_fem/list.ogg new file mode 100644 index 000000000000..1c3d64398330 Binary files /dev/null and b/sound/vox_fem/list.ogg differ diff --git a/sound/vox_fem/lizardperson.ogg b/sound/vox_fem/lizardperson.ogg new file mode 100644 index 000000000000..c812f28b31a9 Binary files /dev/null and b/sound/vox_fem/lizardperson.ogg differ diff --git a/sound/vox_fem/made.ogg b/sound/vox_fem/made.ogg new file mode 100644 index 000000000000..3540661b5c1c Binary files /dev/null and b/sound/vox_fem/made.ogg differ diff --git a/sound/vox_fem/maintainer.ogg b/sound/vox_fem/maintainer.ogg new file mode 100644 index 000000000000..5a1438028fd0 Binary files /dev/null and b/sound/vox_fem/maintainer.ogg differ diff --git a/sound/vox_fem/major.ogg b/sound/vox_fem/major.ogg new file mode 100644 index 000000000000..f5de35ef3126 Binary files /dev/null and b/sound/vox_fem/major.ogg differ diff --git a/sound/vox_fem/making.ogg b/sound/vox_fem/making.ogg new file mode 100644 index 000000000000..d2ee9ab93e3d Binary files /dev/null and b/sound/vox_fem/making.ogg differ diff --git a/sound/vox_fem/mean.ogg b/sound/vox_fem/mean.ogg new file mode 100644 index 000000000000..d53391b033fd Binary files /dev/null and b/sound/vox_fem/mean.ogg differ diff --git a/sound/vox_fem/means.ogg b/sound/vox_fem/means.ogg new file mode 100644 index 000000000000..068cb7bfd1a7 Binary files /dev/null and b/sound/vox_fem/means.ogg differ diff --git a/sound/vox_fem/medium.ogg b/sound/vox_fem/medium.ogg new file mode 100644 index 000000000000..0bd964ffe35b Binary files /dev/null and b/sound/vox_fem/medium.ogg differ diff --git a/sound/vox_fem/meson.ogg b/sound/vox_fem/meson.ogg new file mode 100644 index 000000000000..5bd85d329200 Binary files /dev/null and b/sound/vox_fem/meson.ogg differ diff --git a/sound/vox_fem/method.ogg b/sound/vox_fem/method.ogg new file mode 100644 index 000000000000..4da8e60475f3 Binary files /dev/null and b/sound/vox_fem/method.ogg differ diff --git a/sound/vox_fem/miasma.ogg b/sound/vox_fem/miasma.ogg new file mode 100644 index 000000000000..5956b203f87a Binary files /dev/null and b/sound/vox_fem/miasma.ogg differ diff --git a/sound/vox_fem/minor.ogg b/sound/vox_fem/minor.ogg new file mode 100644 index 000000000000..067f4a5d3df8 Binary files /dev/null and b/sound/vox_fem/minor.ogg differ diff --git a/sound/vox_fem/minute.ogg b/sound/vox_fem/minute.ogg new file mode 100644 index 000000000000..fe29d747120d Binary files /dev/null and b/sound/vox_fem/minute.ogg differ diff --git a/sound/vox_fem/mixture.ogg b/sound/vox_fem/mixture.ogg new file mode 100644 index 000000000000..63525110a7a7 Binary files /dev/null and b/sound/vox_fem/mixture.ogg differ diff --git a/sound/vox_fem/most.ogg b/sound/vox_fem/most.ogg new file mode 100644 index 000000000000..472837fced88 Binary files /dev/null and b/sound/vox_fem/most.ogg differ diff --git a/sound/vox_fem/mothperson.ogg b/sound/vox_fem/mothperson.ogg new file mode 100644 index 000000000000..52c0a645428d Binary files /dev/null and b/sound/vox_fem/mothperson.ogg differ diff --git a/sound/vox_fem/moved.ogg b/sound/vox_fem/moved.ogg new file mode 100644 index 000000000000..e8eb17787ef4 Binary files /dev/null and b/sound/vox_fem/moved.ogg differ diff --git a/sound/vox_fem/moving.ogg b/sound/vox_fem/moving.ogg new file mode 100644 index 000000000000..258c38a71166 Binary files /dev/null and b/sound/vox_fem/moving.ogg differ diff --git a/sound/vox_fem/murderer.ogg b/sound/vox_fem/murderer.ogg new file mode 100644 index 000000000000..8dbab2157edf Binary files /dev/null and b/sound/vox_fem/murderer.ogg differ diff --git a/sound/vox_fem/near.ogg b/sound/vox_fem/near.ogg new file mode 100644 index 000000000000..0c48f322133a Binary files /dev/null and b/sound/vox_fem/near.ogg differ diff --git a/sound/vox_fem/nearly.ogg b/sound/vox_fem/nearly.ogg new file mode 100644 index 000000000000..2b76f6323f83 Binary files /dev/null and b/sound/vox_fem/nearly.ogg differ diff --git a/sound/vox_fem/never.ogg b/sound/vox_fem/never.ogg new file mode 100644 index 000000000000..fc1135af2c89 Binary files /dev/null and b/sound/vox_fem/never.ogg differ diff --git a/sound/vox_fem/night.ogg b/sound/vox_fem/night.ogg new file mode 100644 index 000000000000..e412daf5ed29 Binary files /dev/null and b/sound/vox_fem/night.ogg differ diff --git a/sound/vox_fem/none.ogg b/sound/vox_fem/none.ogg new file mode 100644 index 000000000000..6c16899ce926 Binary files /dev/null and b/sound/vox_fem/none.ogg differ diff --git a/sound/vox_fem/normal.ogg b/sound/vox_fem/normal.ogg new file mode 100644 index 000000000000..cf68ed5ec5e2 Binary files /dev/null and b/sound/vox_fem/normal.ogg differ diff --git a/sound/vox_fem/normally.ogg b/sound/vox_fem/normally.ogg new file mode 100644 index 000000000000..81d7c16d366d Binary files /dev/null and b/sound/vox_fem/normally.ogg differ diff --git a/sound/vox_fem/northeast.ogg b/sound/vox_fem/northeast.ogg new file mode 100644 index 000000000000..4f4206c4e185 Binary files /dev/null and b/sound/vox_fem/northeast.ogg differ diff --git a/sound/vox_fem/northwest.ogg b/sound/vox_fem/northwest.ogg new file mode 100644 index 000000000000..96110fc28147 Binary files /dev/null and b/sound/vox_fem/northwest.ogg differ diff --git a/sound/vox_fem/notably.ogg b/sound/vox_fem/notably.ogg new file mode 100644 index 000000000000..d6f604390502 Binary files /dev/null and b/sound/vox_fem/notably.ogg differ diff --git a/sound/vox_fem/object.ogg b/sound/vox_fem/object.ogg new file mode 100644 index 000000000000..091c4b6b190e Binary files /dev/null and b/sound/vox_fem/object.ogg differ diff --git a/sound/vox_fem/obliterate.ogg b/sound/vox_fem/obliterate.ogg new file mode 100644 index 000000000000..b13dcbc686d9 Binary files /dev/null and b/sound/vox_fem/obliterate.ogg differ diff --git a/sound/vox_fem/obliterated.ogg b/sound/vox_fem/obliterated.ogg new file mode 100644 index 000000000000..884e4bcb9799 Binary files /dev/null and b/sound/vox_fem/obliterated.ogg differ diff --git a/sound/vox_fem/obliterating.ogg b/sound/vox_fem/obliterating.ogg new file mode 100644 index 000000000000..034d3252cc3b Binary files /dev/null and b/sound/vox_fem/obliterating.ogg differ diff --git a/sound/vox_fem/okay.ogg b/sound/vox_fem/okay.ogg new file mode 100644 index 000000000000..47d061fb060f Binary files /dev/null and b/sound/vox_fem/okay.ogg differ diff --git a/sound/vox_fem/once.ogg b/sound/vox_fem/once.ogg new file mode 100644 index 000000000000..d7e95b5f6bd4 Binary files /dev/null and b/sound/vox_fem/once.ogg differ diff --git a/sound/vox_fem/opened.ogg b/sound/vox_fem/opened.ogg new file mode 100644 index 000000000000..6327c3991ae6 Binary files /dev/null and b/sound/vox_fem/opened.ogg differ diff --git a/sound/vox_fem/opening.ogg b/sound/vox_fem/opening.ogg new file mode 100644 index 000000000000..d4371904cdef Binary files /dev/null and b/sound/vox_fem/opening.ogg differ diff --git a/sound/vox_fem/ordered.ogg b/sound/vox_fem/ordered.ogg new file mode 100644 index 000000000000..a483e355544f Binary files /dev/null and b/sound/vox_fem/ordered.ogg differ diff --git a/sound/vox_fem/ordering.ogg b/sound/vox_fem/ordering.ogg new file mode 100644 index 000000000000..e05a1534d3c5 Binary files /dev/null and b/sound/vox_fem/ordering.ogg differ diff --git a/sound/vox_fem/output.ogg b/sound/vox_fem/output.ogg new file mode 100644 index 000000000000..fc3e5312c4ea Binary files /dev/null and b/sound/vox_fem/output.ogg differ diff --git a/sound/vox_fem/own.ogg b/sound/vox_fem/own.ogg new file mode 100644 index 000000000000..e978ba4a8da1 Binary files /dev/null and b/sound/vox_fem/own.ogg differ diff --git a/sound/vox_fem/pda.ogg b/sound/vox_fem/pda.ogg new file mode 100644 index 000000000000..72407e2b0e32 Binary files /dev/null and b/sound/vox_fem/pda.ogg differ diff --git a/sound/vox_fem/perhaps.ogg b/sound/vox_fem/perhaps.ogg new file mode 100644 index 000000000000..191587d27a99 Binary files /dev/null and b/sound/vox_fem/perhaps.ogg differ diff --git a/sound/vox_fem/plating.ogg b/sound/vox_fem/plating.ogg new file mode 100644 index 000000000000..d0783ca5e351 Binary files /dev/null and b/sound/vox_fem/plating.ogg differ diff --git a/sound/vox_fem/pluoxium.ogg b/sound/vox_fem/pluoxium.ogg new file mode 100644 index 000000000000..cb52c5ac2985 Binary files /dev/null and b/sound/vox_fem/pluoxium.ogg differ diff --git a/sound/vox_fem/portion.ogg b/sound/vox_fem/portion.ogg new file mode 100644 index 000000000000..7f2f699da190 Binary files /dev/null and b/sound/vox_fem/portion.ogg differ diff --git a/sound/vox_fem/powered.ogg b/sound/vox_fem/powered.ogg new file mode 100644 index 000000000000..d03eb08d5645 Binary files /dev/null and b/sound/vox_fem/powered.ogg differ diff --git a/sound/vox_fem/powering.ogg b/sound/vox_fem/powering.ogg new file mode 100644 index 000000000000..7c13b590846c Binary files /dev/null and b/sound/vox_fem/powering.ogg differ diff --git a/sound/vox_fem/premature.ogg b/sound/vox_fem/premature.ogg new file mode 100644 index 000000000000..19fb67b8f3b8 Binary files /dev/null and b/sound/vox_fem/premature.ogg differ diff --git a/sound/vox_fem/prematurely.ogg b/sound/vox_fem/prematurely.ogg new file mode 100644 index 000000000000..b3422a535f6a Binary files /dev/null and b/sound/vox_fem/prematurely.ogg differ diff --git a/sound/vox_fem/present.ogg b/sound/vox_fem/present.ogg new file mode 100644 index 000000000000..7e4bf2a650c7 Binary files /dev/null and b/sound/vox_fem/present.ogg differ diff --git a/sound/vox_fem/presents.ogg b/sound/vox_fem/presents.ogg new file mode 100644 index 000000000000..368c5b554f3d Binary files /dev/null and b/sound/vox_fem/presents.ogg differ diff --git a/sound/vox_fem/priority.ogg b/sound/vox_fem/priority.ogg new file mode 100644 index 000000000000..5084584a44e1 Binary files /dev/null and b/sound/vox_fem/priority.ogg differ diff --git a/sound/vox_fem/projectile.ogg b/sound/vox_fem/projectile.ogg new file mode 100644 index 000000000000..ec6d297926ac Binary files /dev/null and b/sound/vox_fem/projectile.ogg differ diff --git a/sound/vox_fem/protect.ogg b/sound/vox_fem/protect.ogg new file mode 100644 index 000000000000..512d7e30e27d Binary files /dev/null and b/sound/vox_fem/protect.ogg differ diff --git a/sound/vox_fem/protected.ogg b/sound/vox_fem/protected.ogg new file mode 100644 index 000000000000..7f6c8c0f6efd Binary files /dev/null and b/sound/vox_fem/protected.ogg differ diff --git a/sound/vox_fem/protection.ogg b/sound/vox_fem/protection.ogg new file mode 100644 index 000000000000..90b6a508e2aa Binary files /dev/null and b/sound/vox_fem/protection.ogg differ diff --git a/sound/vox_fem/proto-nitrate.ogg b/sound/vox_fem/proto-nitrate.ogg new file mode 100644 index 000000000000..13f3aed7b450 Binary files /dev/null and b/sound/vox_fem/proto-nitrate.ogg differ diff --git a/sound/vox_fem/pull.ogg b/sound/vox_fem/pull.ogg new file mode 100644 index 000000000000..9ac8e2c399ad Binary files /dev/null and b/sound/vox_fem/pull.ogg differ diff --git a/sound/vox_fem/pulled.ogg b/sound/vox_fem/pulled.ogg new file mode 100644 index 000000000000..ef3388a25c9a Binary files /dev/null and b/sound/vox_fem/pulled.ogg differ diff --git a/sound/vox_fem/pulling.ogg b/sound/vox_fem/pulling.ogg new file mode 100644 index 000000000000..5a2b5532e5ac Binary files /dev/null and b/sound/vox_fem/pulling.ogg differ diff --git a/sound/vox_fem/pump.ogg b/sound/vox_fem/pump.ogg new file mode 100644 index 000000000000..07400cb2b8c2 Binary files /dev/null and b/sound/vox_fem/pump.ogg differ diff --git a/sound/vox_fem/pumps.ogg b/sound/vox_fem/pumps.ogg new file mode 100644 index 000000000000..eba663d3963c Binary files /dev/null and b/sound/vox_fem/pumps.ogg differ diff --git a/sound/vox_fem/release.ogg b/sound/vox_fem/release.ogg new file mode 100644 index 000000000000..4a9350168483 Binary files /dev/null and b/sound/vox_fem/release.ogg differ diff --git a/sound/vox_fem/releasing.ogg b/sound/vox_fem/releasing.ogg new file mode 100644 index 000000000000..3d2a5d0ed70b Binary files /dev/null and b/sound/vox_fem/releasing.ogg differ diff --git a/sound/vox_fem/remove.ogg b/sound/vox_fem/remove.ogg new file mode 100644 index 000000000000..e9b2cb3bc120 Binary files /dev/null and b/sound/vox_fem/remove.ogg differ diff --git a/sound/vox_fem/removed.ogg b/sound/vox_fem/removed.ogg new file mode 100644 index 000000000000..2a7d78e9280b Binary files /dev/null and b/sound/vox_fem/removed.ogg differ diff --git a/sound/vox_fem/removing.ogg b/sound/vox_fem/removing.ogg new file mode 100644 index 000000000000..638d20b0c354 Binary files /dev/null and b/sound/vox_fem/removing.ogg differ diff --git a/sound/vox_fem/request.ogg b/sound/vox_fem/request.ogg new file mode 100644 index 000000000000..487b0f6772d6 Binary files /dev/null and b/sound/vox_fem/request.ogg differ diff --git a/sound/vox_fem/requested.ogg b/sound/vox_fem/requested.ogg new file mode 100644 index 000000000000..d204bd91edcf Binary files /dev/null and b/sound/vox_fem/requested.ogg differ diff --git a/sound/vox_fem/requesting.ogg b/sound/vox_fem/requesting.ogg new file mode 100644 index 000000000000..bea1e652e4ba Binary files /dev/null and b/sound/vox_fem/requesting.ogg differ diff --git a/sound/vox_fem/resistant.ogg b/sound/vox_fem/resistant.ogg new file mode 100644 index 000000000000..440151997917 Binary files /dev/null and b/sound/vox_fem/resistant.ogg differ diff --git a/sound/vox_fem/resisting.ogg b/sound/vox_fem/resisting.ogg new file mode 100644 index 000000000000..c3c23d267fd9 Binary files /dev/null and b/sound/vox_fem/resisting.ogg differ diff --git a/sound/vox_fem/resonance.ogg b/sound/vox_fem/resonance.ogg new file mode 100644 index 000000000000..0d569574c836 Binary files /dev/null and b/sound/vox_fem/resonance.ogg differ diff --git a/sound/vox_fem/rizz.ogg b/sound/vox_fem/rizz.ogg new file mode 100644 index 000000000000..de2069b3b572 Binary files /dev/null and b/sound/vox_fem/rizz.ogg differ diff --git a/sound/vox_fem/sabotaged.ogg b/sound/vox_fem/sabotaged.ogg new file mode 100644 index 000000000000..9d883d12218c Binary files /dev/null and b/sound/vox_fem/sabotaged.ogg differ diff --git a/sound/vox_fem/sabotaging.ogg b/sound/vox_fem/sabotaging.ogg new file mode 100644 index 000000000000..a8b5d6680c32 Binary files /dev/null and b/sound/vox_fem/sabotaging.ogg differ diff --git a/sound/vox_fem/same.ogg b/sound/vox_fem/same.ogg new file mode 100644 index 000000000000..38adb22168bc Binary files /dev/null and b/sound/vox_fem/same.ogg differ diff --git a/sound/vox_fem/saw.ogg b/sound/vox_fem/saw.ogg new file mode 100644 index 000000000000..fa3c7b1994d1 Binary files /dev/null and b/sound/vox_fem/saw.ogg differ diff --git a/sound/vox_fem/scan.ogg b/sound/vox_fem/scan.ogg new file mode 100644 index 000000000000..36026e8f8c47 Binary files /dev/null and b/sound/vox_fem/scan.ogg differ diff --git a/sound/vox_fem/scanned.ogg b/sound/vox_fem/scanned.ogg new file mode 100644 index 000000000000..bc9bb80ac4c9 Binary files /dev/null and b/sound/vox_fem/scanned.ogg differ diff --git a/sound/vox_fem/scanner.ogg b/sound/vox_fem/scanner.ogg new file mode 100644 index 000000000000..2098a81a34c8 Binary files /dev/null and b/sound/vox_fem/scanner.ogg differ diff --git a/sound/vox_fem/scanners.ogg b/sound/vox_fem/scanners.ogg new file mode 100644 index 000000000000..74bbdae300aa Binary files /dev/null and b/sound/vox_fem/scanners.ogg differ diff --git a/sound/vox_fem/scanning.ogg b/sound/vox_fem/scanning.ogg new file mode 100644 index 000000000000..84701910e997 Binary files /dev/null and b/sound/vox_fem/scanning.ogg differ diff --git a/sound/vox_fem/screw.ogg b/sound/vox_fem/screw.ogg new file mode 100644 index 000000000000..ae9325f69a65 Binary files /dev/null and b/sound/vox_fem/screw.ogg differ diff --git a/sound/vox_fem/seen.ogg b/sound/vox_fem/seen.ogg new file mode 100644 index 000000000000..7ad89a173ab5 Binary files /dev/null and b/sound/vox_fem/seen.ogg differ diff --git a/sound/vox_fem/set.ogg b/sound/vox_fem/set.ogg new file mode 100644 index 000000000000..f2f8c19c2784 Binary files /dev/null and b/sound/vox_fem/set.ogg differ diff --git a/sound/vox_fem/sever.ogg b/sound/vox_fem/sever.ogg new file mode 100644 index 000000000000..3bc2e2102f72 Binary files /dev/null and b/sound/vox_fem/sever.ogg differ diff --git a/sound/vox_fem/severed.ogg b/sound/vox_fem/severed.ogg new file mode 100644 index 000000000000..4f6f7e47bf0a Binary files /dev/null and b/sound/vox_fem/severed.ogg differ diff --git a/sound/vox_fem/severing.ogg b/sound/vox_fem/severing.ogg new file mode 100644 index 000000000000..1ddad6209efb Binary files /dev/null and b/sound/vox_fem/severing.ogg differ diff --git a/sound/vox_fem/shame.ogg b/sound/vox_fem/shame.ogg new file mode 100644 index 000000000000..f90b1306da05 Binary files /dev/null and b/sound/vox_fem/shame.ogg differ diff --git a/sound/vox_fem/shameful.ogg b/sound/vox_fem/shameful.ogg new file mode 100644 index 000000000000..526b70909f66 Binary files /dev/null and b/sound/vox_fem/shameful.ogg differ diff --git a/sound/vox_fem/shameless.ogg b/sound/vox_fem/shameless.ogg new file mode 100644 index 000000000000..804a92e29615 Binary files /dev/null and b/sound/vox_fem/shameless.ogg differ diff --git a/sound/vox_fem/shard.ogg b/sound/vox_fem/shard.ogg new file mode 100644 index 000000000000..2a6b0c195804 Binary files /dev/null and b/sound/vox_fem/shard.ogg differ diff --git a/sound/vox_fem/shift.ogg b/sound/vox_fem/shift.ogg new file mode 100644 index 000000000000..70e7d3ca6d17 Binary files /dev/null and b/sound/vox_fem/shift.ogg differ diff --git a/sound/vox_fem/shifts.ogg b/sound/vox_fem/shifts.ogg new file mode 100644 index 000000000000..f2caa538efc6 Binary files /dev/null and b/sound/vox_fem/shifts.ogg differ diff --git a/sound/vox_fem/sides.ogg b/sound/vox_fem/sides.ogg new file mode 100644 index 000000000000..cef8d153207b Binary files /dev/null and b/sound/vox_fem/sides.ogg differ diff --git a/sound/vox_fem/single.ogg b/sound/vox_fem/single.ogg new file mode 100644 index 000000000000..1d5912ecc57e Binary files /dev/null and b/sound/vox_fem/single.ogg differ diff --git a/sound/vox_fem/siphon.ogg b/sound/vox_fem/siphon.ogg new file mode 100644 index 000000000000..789653f5cbb6 Binary files /dev/null and b/sound/vox_fem/siphon.ogg differ diff --git a/sound/vox_fem/siphoning.ogg b/sound/vox_fem/siphoning.ogg new file mode 100644 index 000000000000..163f2ed4734b Binary files /dev/null and b/sound/vox_fem/siphoning.ogg differ diff --git a/sound/vox_fem/small.ogg b/sound/vox_fem/small.ogg new file mode 100644 index 000000000000..8a104996b8ec Binary files /dev/null and b/sound/vox_fem/small.ogg differ diff --git a/sound/vox_fem/sockmuncher.ogg b/sound/vox_fem/sockmuncher.ogg new file mode 100644 index 000000000000..7c40fdc79e7b Binary files /dev/null and b/sound/vox_fem/sockmuncher.ogg differ diff --git a/sound/vox_fem/soft.ogg b/sound/vox_fem/soft.ogg new file mode 100644 index 000000000000..ea9361ea8c98 Binary files /dev/null and b/sound/vox_fem/soft.ogg differ diff --git a/sound/vox_fem/source.ogg b/sound/vox_fem/source.ogg new file mode 100644 index 000000000000..824dd3f0a8c1 Binary files /dev/null and b/sound/vox_fem/source.ogg differ diff --git a/sound/vox_fem/southeast.ogg b/sound/vox_fem/southeast.ogg new file mode 100644 index 000000000000..bdf2c8026bfa Binary files /dev/null and b/sound/vox_fem/southeast.ogg differ diff --git a/sound/vox_fem/southwest.ogg b/sound/vox_fem/southwest.ogg new file mode 100644 index 000000000000..a1ea2766bb50 Binary files /dev/null and b/sound/vox_fem/southwest.ogg differ diff --git a/sound/vox_fem/special.ogg b/sound/vox_fem/special.ogg new file mode 100644 index 000000000000..f0f219c13974 Binary files /dev/null and b/sound/vox_fem/special.ogg differ diff --git a/sound/vox_fem/spew.ogg b/sound/vox_fem/spew.ogg new file mode 100644 index 000000000000..b9d20048d265 Binary files /dev/null and b/sound/vox_fem/spew.ogg differ diff --git a/sound/vox_fem/start.ogg b/sound/vox_fem/start.ogg new file mode 100644 index 000000000000..b07dc5faf259 Binary files /dev/null and b/sound/vox_fem/start.ogg differ diff --git a/sound/vox_fem/starts.ogg b/sound/vox_fem/starts.ogg new file mode 100644 index 000000000000..fca5914927f2 Binary files /dev/null and b/sound/vox_fem/starts.ogg differ diff --git a/sound/vox_fem/stations.ogg b/sound/vox_fem/stations.ogg new file mode 100644 index 000000000000..c0a495263698 Binary files /dev/null and b/sound/vox_fem/stations.ogg differ diff --git a/sound/vox_fem/stationwide.ogg b/sound/vox_fem/stationwide.ogg new file mode 100644 index 000000000000..b7b000b3b9f8 Binary files /dev/null and b/sound/vox_fem/stationwide.ogg differ diff --git a/sound/vox_fem/such.ogg b/sound/vox_fem/such.ogg new file mode 100644 index 000000000000..a85d0642e6ed Binary files /dev/null and b/sound/vox_fem/such.ogg differ diff --git a/sound/vox_fem/suited.ogg b/sound/vox_fem/suited.ogg new file mode 100644 index 000000000000..36b2b45c5275 Binary files /dev/null and b/sound/vox_fem/suited.ogg differ diff --git a/sound/vox_fem/super.ogg b/sound/vox_fem/super.ogg new file mode 100644 index 000000000000..6d110152fdc2 Binary files /dev/null and b/sound/vox_fem/super.ogg differ diff --git a/sound/vox_fem/taildragger.ogg b/sound/vox_fem/taildragger.ogg new file mode 100644 index 000000000000..e6211e368f79 Binary files /dev/null and b/sound/vox_fem/taildragger.ogg differ diff --git a/sound/vox_fem/teleporter.ogg b/sound/vox_fem/teleporter.ogg new file mode 100644 index 000000000000..8b237573af19 Binary files /dev/null and b/sound/vox_fem/teleporter.ogg differ diff --git a/sound/vox_fem/terminate.ogg b/sound/vox_fem/terminate.ogg new file mode 100644 index 000000000000..fa6d03a5f356 Binary files /dev/null and b/sound/vox_fem/terminate.ogg differ diff --git a/sound/vox_fem/tesla.ogg b/sound/vox_fem/tesla.ogg new file mode 100644 index 000000000000..70cb9e4ca82b Binary files /dev/null and b/sound/vox_fem/tesla.ogg differ diff --git a/sound/vox_fem/thank.ogg b/sound/vox_fem/thank.ogg new file mode 100644 index 000000000000..2eee00fba4c4 Binary files /dev/null and b/sound/vox_fem/thank.ogg differ diff --git a/sound/vox_fem/thanks.ogg b/sound/vox_fem/thanks.ogg new file mode 100644 index 000000000000..d1fb4ffbaca2 Binary files /dev/null and b/sound/vox_fem/thanks.ogg differ diff --git a/sound/vox_fem/tick.ogg b/sound/vox_fem/tick.ogg new file mode 100644 index 000000000000..bb986534a5bb Binary files /dev/null and b/sound/vox_fem/tick.ogg differ diff --git a/sound/vox_fem/tile.ogg b/sound/vox_fem/tile.ogg new file mode 100644 index 000000000000..2d794c26a129 Binary files /dev/null and b/sound/vox_fem/tile.ogg differ diff --git a/sound/vox_fem/tiny.ogg b/sound/vox_fem/tiny.ogg new file mode 100644 index 000000000000..69c348cafea1 Binary files /dev/null and b/sound/vox_fem/tiny.ogg differ diff --git a/sound/vox_fem/touched.ogg b/sound/vox_fem/touched.ogg new file mode 100644 index 000000000000..e4cb940d71fc Binary files /dev/null and b/sound/vox_fem/touched.ogg differ diff --git a/sound/vox_fem/touching.ogg b/sound/vox_fem/touching.ogg new file mode 100644 index 000000000000..b1ef04d443a6 Binary files /dev/null and b/sound/vox_fem/touching.ogg differ diff --git a/sound/vox_fem/trigger.ogg b/sound/vox_fem/trigger.ogg new file mode 100644 index 000000000000..22ed22d48903 Binary files /dev/null and b/sound/vox_fem/trigger.ogg differ diff --git a/sound/vox_fem/triggered.ogg b/sound/vox_fem/triggered.ogg new file mode 100644 index 000000000000..7fe30ad80460 Binary files /dev/null and b/sound/vox_fem/triggered.ogg differ diff --git a/sound/vox_fem/triggering.ogg b/sound/vox_fem/triggering.ogg new file mode 100644 index 000000000000..8cb478815561 Binary files /dev/null and b/sound/vox_fem/triggering.ogg differ diff --git a/sound/vox_fem/triple.ogg b/sound/vox_fem/triple.ogg new file mode 100644 index 000000000000..6b6679258100 Binary files /dev/null and b/sound/vox_fem/triple.ogg differ diff --git a/sound/vox_fem/tritium.ogg b/sound/vox_fem/tritium.ogg new file mode 100644 index 000000000000..7e62eddb9c50 Binary files /dev/null and b/sound/vox_fem/tritium.ogg differ diff --git a/sound/vox_fem/turned.ogg b/sound/vox_fem/turned.ogg new file mode 100644 index 000000000000..2d9c59edfac3 Binary files /dev/null and b/sound/vox_fem/turned.ogg differ diff --git a/sound/vox_fem/unique.ogg b/sound/vox_fem/unique.ogg new file mode 100644 index 000000000000..cb773507fcbb Binary files /dev/null and b/sound/vox_fem/unique.ogg differ diff --git a/sound/vox_fem/unwrench.ogg b/sound/vox_fem/unwrench.ogg new file mode 100644 index 000000000000..bd31681fe317 Binary files /dev/null and b/sound/vox_fem/unwrench.ogg differ diff --git a/sound/vox_fem/unwrenching.ogg b/sound/vox_fem/unwrenching.ogg new file mode 100644 index 000000000000..6f4d8b7de7ef Binary files /dev/null and b/sound/vox_fem/unwrenching.ogg differ diff --git a/sound/vox_fem/useful.ogg b/sound/vox_fem/useful.ogg new file mode 100644 index 000000000000..dfd8e6952a59 Binary files /dev/null and b/sound/vox_fem/useful.ogg differ diff --git a/sound/vox_fem/useless.ogg b/sound/vox_fem/useless.ogg new file mode 100644 index 000000000000..5b9bb7aa2941 Binary files /dev/null and b/sound/vox_fem/useless.ogg differ diff --git a/sound/vox_fem/validate.ogg b/sound/vox_fem/validate.ogg new file mode 100644 index 000000000000..1c17c6dd9421 Binary files /dev/null and b/sound/vox_fem/validate.ogg differ diff --git a/sound/vox_fem/was.ogg b/sound/vox_fem/was.ogg new file mode 100644 index 000000000000..3d092bece9fb Binary files /dev/null and b/sound/vox_fem/was.ogg differ diff --git a/sound/vox_fem/way.ogg b/sound/vox_fem/way.ogg new file mode 100644 index 000000000000..fdc121629c9c Binary files /dev/null and b/sound/vox_fem/way.ogg differ diff --git a/sound/vox_fem/ways.ogg b/sound/vox_fem/ways.ogg new file mode 100644 index 000000000000..8fa99a1c4b74 Binary files /dev/null and b/sound/vox_fem/ways.ogg differ diff --git a/sound/vox_fem/weld.ogg b/sound/vox_fem/weld.ogg new file mode 100644 index 000000000000..6273ba147a6d Binary files /dev/null and b/sound/vox_fem/weld.ogg differ diff --git a/sound/vox_fem/which.ogg b/sound/vox_fem/which.ogg new file mode 100644 index 000000000000..ae1486f816af Binary files /dev/null and b/sound/vox_fem/which.ogg differ diff --git a/sound/vox_fem/while.ogg b/sound/vox_fem/while.ogg new file mode 100644 index 000000000000..0f696b6247ab Binary files /dev/null and b/sound/vox_fem/while.ogg differ diff --git a/sound/vox_fem/work.ogg b/sound/vox_fem/work.ogg new file mode 100644 index 000000000000..8ddb06ef1d52 Binary files /dev/null and b/sound/vox_fem/work.ogg differ diff --git a/sound/vox_fem/worked.ogg b/sound/vox_fem/worked.ogg new file mode 100644 index 000000000000..7ea59ff0b2b9 Binary files /dev/null and b/sound/vox_fem/worked.ogg differ diff --git a/sound/vox_fem/working.ogg b/sound/vox_fem/working.ogg new file mode 100644 index 000000000000..8e49779ee5c5 Binary files /dev/null and b/sound/vox_fem/working.ogg differ diff --git a/sound/vox_fem/works.ogg b/sound/vox_fem/works.ogg new file mode 100644 index 000000000000..c35984171ab3 Binary files /dev/null and b/sound/vox_fem/works.ogg differ diff --git a/sound/vox_fem/would.ogg b/sound/vox_fem/would.ogg new file mode 100644 index 000000000000..2df534769afe Binary files /dev/null and b/sound/vox_fem/would.ogg differ diff --git a/sound/vox_fem/wouldnt.ogg b/sound/vox_fem/wouldnt.ogg new file mode 100644 index 000000000000..0c3b01facee7 Binary files /dev/null and b/sound/vox_fem/wouldnt.ogg differ diff --git a/sound/vox_fem/wrench.ogg b/sound/vox_fem/wrench.ogg new file mode 100644 index 000000000000..98cf94db09a5 Binary files /dev/null and b/sound/vox_fem/wrench.ogg differ diff --git a/sound/vox_fem/wrenching.ogg b/sound/vox_fem/wrenching.ogg new file mode 100644 index 000000000000..b61b70fd363c Binary files /dev/null and b/sound/vox_fem/wrenching.ogg differ diff --git a/sound/vox_fem/zap.ogg b/sound/vox_fem/zap.ogg new file mode 100644 index 000000000000..233653de9131 Binary files /dev/null and b/sound/vox_fem/zap.ogg differ diff --git a/sound/vox_fem/zauker.ogg b/sound/vox_fem/zauker.ogg new file mode 100644 index 000000000000..ed586c6c3f0f Binary files /dev/null and b/sound/vox_fem/zauker.ogg differ diff --git a/tgstation.dme b/tgstation.dme index d11278aac9ff..db1c65a933bf 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -289,7 +289,7 @@ #include "code\__DEFINES\atmospherics\atmos_mapping_helpers.dm" #include "code\__DEFINES\atmospherics\atmos_mob_interaction.dm" #include "code\__DEFINES\atmospherics\atmos_piping.dm" -#include "code\__DEFINES\color_matrix\simian_matrix.dm" +#include "code\__DEFINES\color_matrix\lizard_matrix.dm" #include "code\__DEFINES\dcs\flags.dm" #include "code\__DEFINES\dcs\helpers.dm" #include "code\__DEFINES\dcs\signals\mapping.dm" @@ -482,6 +482,7 @@ #include "code\__DEFINES\~monkestation\dcs\signals\signals_traitor.dm" #include "code\__DEFINES\~monkestation\dcs\signals\signals_mob\signals_mob_main.dm" #include "code\__HELPERS\_auxtools_api.dm" +#include "code\__HELPERS\_dreamluau.dm" #include "code\__HELPERS\_lists.dm" #include "code\__HELPERS\_planes.dm" #include "code\__HELPERS\_string_lists.dm" @@ -542,7 +543,6 @@ #include "code\__HELPERS\radio.dm" #include "code\__HELPERS\randoms.dm" #include "code\__HELPERS\reagents.dm" -#include "code\__HELPERS\records.dm" #include "code\__HELPERS\ref.dm" #include "code\__HELPERS\roundend.dm" #include "code\__HELPERS\sanitize_values.dm" @@ -606,6 +606,7 @@ #include "code\__HELPERS\~monkestation-helpers\icons.dm" #include "code\__HELPERS\~monkestation-helpers\mapping.dm" #include "code\__HELPERS\~monkestation-helpers\mobs.dm" +#include "code\__HELPERS\~monkestation-helpers\records.dm" #include "code\__HELPERS\~monkestation-helpers\roundend.dm" #include "code\__HELPERS\~monkestation-helpers\time.dm" #include "code\__HELPERS\~monkestation-helpers\virology.dm" @@ -1625,9 +1626,88 @@ #include "code\datums\proximity_monitor\fields\projectile_dampener.dm" #include "code\datums\proximity_monitor\fields\timestop.dm" #include "code\datums\quirks\_quirk.dm" -#include "code\datums\quirks\negative_quirks.dm" -#include "code\datums\quirks\neutral_quirks.dm" -#include "code\datums\quirks\positive_quirks.dm" +#include "code\datums\quirks\negative_quirks\allergic.dm" +#include "code\datums\quirks\negative_quirks\bad_back.dm" +#include "code\datums\quirks\negative_quirks\bad_touch.dm" +#include "code\datums\quirks\negative_quirks\big_hands.dm" +#include "code\datums\quirks\negative_quirks\blindness.dm" +#include "code\datums\quirks\negative_quirks\blood_deficiency.dm" +#include "code\datums\quirks\negative_quirks\body_purist.dm" +#include "code\datums\quirks\negative_quirks\brain_problems.dm" +#include "code\datums\quirks\negative_quirks\chronic_illness.dm" +#include "code\datums\quirks\negative_quirks\claustrophobia.dm" +#include "code\datums\quirks\negative_quirks\clumsy.dm" +#include "code\datums\quirks\negative_quirks\cursed.dm" +#include "code\datums\quirks\negative_quirks\deafness.dm" +#include "code\datums\quirks\negative_quirks\depression.dm" +#include "code\datums\quirks\negative_quirks\family_heirloom.dm" +#include "code\datums\quirks\negative_quirks\frail.dm" +#include "code\datums\quirks\negative_quirks\glass_jaw.dm" +#include "code\datums\quirks\negative_quirks\heavy_sleeper.dm" +#include "code\datums\quirks\negative_quirks\hemiplegic.dm" +#include "code\datums\quirks\negative_quirks\hypersensitive.dm" +#include "code\datums\quirks\negative_quirks\illiterate.dm" +#include "code\datums\quirks\negative_quirks\indebted.dm" +#include "code\datums\quirks\negative_quirks\insanity.dm" +#include "code\datums\quirks\negative_quirks\junkie.dm" +#include "code\datums\quirks\negative_quirks\light_drinker.dm" +#include "code\datums\quirks\negative_quirks\mute.dm" +#include "code\datums\quirks\negative_quirks\nearsighted.dm" +#include "code\datums\quirks\negative_quirks\non_violent.dm" +#include "code\datums\quirks\negative_quirks\numb.dm" +#include "code\datums\quirks\negative_quirks\nyctophobia.dm" +#include "code\datums\quirks\negative_quirks\paraplegic.dm" +#include "code\datums\quirks\negative_quirks\photophobia.dm" +#include "code\datums\quirks\negative_quirks\poor_aim.dm" +#include "code\datums\quirks\negative_quirks\prosopagnosia.dm" +#include "code\datums\quirks\negative_quirks\prosthetic_limb.dm" +#include "code\datums\quirks\negative_quirks\prosthetic_organ.dm" +#include "code\datums\quirks\negative_quirks\pushover.dm" +#include "code\datums\quirks\negative_quirks\quadruple_amputee.dm" +#include "code\datums\quirks\negative_quirks\social_anxiety.dm" +#include "code\datums\quirks\negative_quirks\softspoken.dm" +#include "code\datums\quirks\negative_quirks\tin_man.dm" +#include "code\datums\quirks\negative_quirks\unstable.dm" +#include "code\datums\quirks\neutral_quirks\bald.dm" +#include "code\datums\quirks\neutral_quirks\colorist.dm" +#include "code\datums\quirks\neutral_quirks\deviant_tastes.dm" +#include "code\datums\quirks\neutral_quirks\extrovert.dm" +#include "code\datums\quirks\neutral_quirks\foreigner.dm" +#include "code\datums\quirks\neutral_quirks\gamer.dm" +#include "code\datums\quirks\neutral_quirks\heterochromatic.dm" +#include "code\datums\quirks\neutral_quirks\introvert.dm" +#include "code\datums\quirks\neutral_quirks\monochromatic.dm" +#include "code\datums\quirks\neutral_quirks\no_taste.dm" +#include "code\datums\quirks\neutral_quirks\phobia.dm" +#include "code\datums\quirks\neutral_quirks\photographer.dm" +#include "code\datums\quirks\neutral_quirks\pineapple_hater.dm" +#include "code\datums\quirks\neutral_quirks\pineapple_liker.dm" +#include "code\datums\quirks\neutral_quirks\pride_pin.dm" +#include "code\datums\quirks\neutral_quirks\shifty_eyes.dm" +#include "code\datums\quirks\neutral_quirks\snob.dm" +#include "code\datums\quirks\neutral_quirks\vegetarian.dm" +#include "code\datums\quirks\positive_quirks\alcohol_tolerance.dm" +#include "code\datums\quirks\positive_quirks\apathetic.dm" +#include "code\datums\quirks\positive_quirks\bilingual.dm" +#include "code\datums\quirks\positive_quirks\clown_enjoyer.dm" +#include "code\datums\quirks\positive_quirks\drunk_healing.dm" +#include "code\datums\quirks\positive_quirks\empath.dm" +#include "code\datums\quirks\positive_quirks\freerunning.dm" +#include "code\datums\quirks\positive_quirks\friendly.dm" +#include "code\datums\quirks\positive_quirks\jolly.dm" +#include "code\datums\quirks\positive_quirks\light_step.dm" +#include "code\datums\quirks\positive_quirks\mime_fan.dm" +#include "code\datums\quirks\positive_quirks\musician.dm" +#include "code\datums\quirks\positive_quirks\night_vision.dm" +#include "code\datums\quirks\positive_quirks\poster_boy.dm" +#include "code\datums\quirks\positive_quirks\self_aware.dm" +#include "code\datums\quirks\positive_quirks\settler.dm" +#include "code\datums\quirks\positive_quirks\signer.dm" +#include "code\datums\quirks\positive_quirks\skittish.dm" +#include "code\datums\quirks\positive_quirks\spiritual.dm" +#include "code\datums\quirks\positive_quirks\tagger.dm" +#include "code\datums\quirks\positive_quirks\throwing_arm.dm" +#include "code\datums\quirks\positive_quirks\voracious.dm" #include "code\datums\records\crime.dm" #include "code\datums\records\data.dm" #include "code\datums\records\manifest.dm" @@ -2702,7 +2782,6 @@ #include "code\modules\admin\verbs\server.dm" #include "code\modules\admin\verbs\shuttlepanel.dm" #include "code\modules\admin\verbs\spawnobjasmob.dm" -#include "code\modules\admin\verbs\lua\_hooks.dm" #include "code\modules\admin\verbs\lua\_wrappers.dm" #include "code\modules\admin\verbs\lua\helpers.dm" #include "code\modules\admin\verbs\lua\lua_editor.dm" @@ -3433,7 +3512,9 @@ #include "code\modules\client\preferences\pixel_size.dm" #include "code\modules\client\preferences\playtime_reward_cloak.dm" #include "code\modules\client\preferences\preferred_map.dm" +#include "code\modules\client\preferences\pride_pin.dm" #include "code\modules\client\preferences\prisoner_crime.dm" +#include "code\modules\client\preferences\prosthetic.dm" #include "code\modules\client\preferences\random.dm" #include "code\modules\client\preferences\runechat.dm" #include "code\modules\client\preferences\scaling_method.dm" @@ -4661,7 +4742,6 @@ #include "code\modules\mob\living\carbon\human\suicides.dm" #include "code\modules\mob\living\carbon\human\monkey\monkey.dm" #include "code\modules\mob\living\carbon\human\species_types\abductors.dm" -#include "code\modules\mob\living\carbon\human\species_types\abominations.dm" #include "code\modules\mob\living\carbon\human\species_types\android.dm" #include "code\modules\mob\living\carbon\human\species_types\dullahan.dm" #include "code\modules\mob\living\carbon\human\species_types\ethereal.dm" @@ -5867,6 +5947,7 @@ #include "monkestation\code\datums\components\uplink.dm" #include "monkestation\code\datums\components\wound_converter.dm" #include "monkestation\code\datums\components\riding\riding_mob.dm" +#include "monkestation\code\datums\components\riding\riding_vehicle.dm" #include "monkestation\code\datums\diseases\advance\symptoms\clockwork.dm" #include "monkestation\code\datums\elements\area_locked.dm" #include "monkestation\code\datums\elements\basic_eating.dm" @@ -5901,6 +5982,7 @@ #include "monkestation\code\datums\weather\weather_types\radiation_storm.dm" #include "monkestation\code\datums\wires\particle_accelerator.dm" #include "monkestation\code\game\atom.dm" +#include "monkestation\code\game\say.dm" #include "monkestation\code\game\sound.dm" #include "monkestation\code\game\world.dm" #include "monkestation\code\game\area\areas.dm" @@ -5948,11 +6030,13 @@ #include "monkestation\code\game\objects\items\miningweapons.dm" #include "monkestation\code\game\objects\items\mop.dm" #include "monkestation\code\game\objects\items\mothlet_grenade.dm" +#include "monkestation\code\game\objects\items\plasma_license.dm" #include "monkestation\code\game\objects\items\plushies.dm" #include "monkestation\code\game\objects\items\recursive_gift.dm" #include "monkestation\code\game\objects\items\spraycan_gun.dm" #include "monkestation\code\game\objects\items\stickers.dm" #include "monkestation\code\game\objects\items\superglue.dm" +#include "monkestation\code\game\objects\items\translation_hat.dm" #include "monkestation\code\game\objects\items\trash.dm" #include "monkestation\code\game\objects\items\turf_demolisher.dm" #include "monkestation\code\game\objects\items\venom_knife.dm" @@ -5983,6 +6067,7 @@ #include "monkestation\code\game\objects\items\granters\maintenanceencyclopedia.dm" #include "monkestation\code\game\objects\items\grenades\monkey_barrel.dm" #include "monkestation\code\game\objects\items\guns\crank_guns.dm" +#include "monkestation\code\game\objects\items\guns\long_guns.dm" #include "monkestation\code\game\objects\items\guns\shotguns.dm" #include "monkestation\code\game\objects\items\guns\SRN.dm" #include "monkestation\code\game\objects\items\guns\wt_ammo.dm" @@ -5995,6 +6080,7 @@ #include "monkestation\code\game\objects\items\storage\crate.dm" #include "monkestation\code\game\objects\items\storage\fancy.dm" #include "monkestation\code\game\objects\items\storage\garment.dm" +#include "monkestation\code\game\objects\items\storage\toolbox.dm" #include "monkestation\code\game\objects\items\storage\uplink_kits.dm" #include "monkestation\code\game\objects\items\storage\boxes\security_boxes.dm" #include "monkestation\code\game\objects\structures\elevation.dm" @@ -6038,9 +6124,13 @@ #include "monkestation\code\modules\admin\smites\choke_on_this.dm" #include "monkestation\code\modules\admin\smites\dagothkillsmite.dm" #include "monkestation\code\modules\admin\smites\dagothstripsmite.dm" +#include "monkestation\code\modules\admin\smites\microwaved.dm" #include "monkestation\code\modules\admin\smites\phobia_christian_minecraft.dm" #include "monkestation\code\modules\admin\smites\rattle_he_bones.dm" +#include "monkestation\code\modules\admin\smites\rip_and_tear.dm" +#include "monkestation\code\modules\admin\smites\small_bit_of_everything.dm" #include "monkestation\code\modules\admin\smites\smite.dm" +#include "monkestation\code\modules\admin\smites\swisscheese.dm" #include "monkestation\code\modules\admin\smites\where_are_your_fingers.dm" #include "monkestation\code\modules\admin\verbs\getlogs.dm" #include "monkestation\code\modules\admin\verbs\kick_player_by_ckey.dm" @@ -6274,6 +6364,14 @@ #include "monkestation\code\modules\antagonists\wizard\equipment\spellbook_entries\offensive.dm" #include "monkestation\code\modules\antagonists\wizard\equipment\spellbook_entries\summons.dm" #include "monkestation\code\modules\antagonists\wizard\grand_ritual\grand_rune.dm" +#include "monkestation\code\modules\antagonists\zombies\items.dm" +#include "monkestation\code\modules\antagonists\zombies\zombie_meteor_storm.dm" +#include "monkestation\code\modules\antagonists\zombies\zombification_component.dm" +#include "monkestation\code\modules\antagonists\zombies\zombie_types\base_zombie.dm" +#include "monkestation\code\modules\antagonists\zombies\zombie_types\bloater.dm" +#include "monkestation\code\modules\antagonists\zombies\zombie_types\runner.dm" +#include "monkestation\code\modules\antagonists\zombies\zombie_types\spitter.dm" +#include "monkestation\code\modules\antagonists\zombies\zombie_types\tank.dm" #include "monkestation\code\modules\antimatter\code\containment_jar.dm" #include "monkestation\code\modules\antimatter\code\control.dm" #include "monkestation\code\modules\antimatter\code\shielding.dm" @@ -6309,6 +6407,7 @@ #include "monkestation\code\modules\art_sci_overrides\artifact_effects\melee.dm" #include "monkestation\code\modules\art_sci_overrides\artifact_effects\money.dm" #include "monkestation\code\modules\art_sci_overrides\artifact_effects\narsieoffering.dm" +#include "monkestation\code\modules\art_sci_overrides\artifact_effects\orchestral.dm" #include "monkestation\code\modules\art_sci_overrides\artifact_effects\plushie_vendor.dm" #include "monkestation\code\modules\art_sci_overrides\artifact_effects\repulsor.dm" #include "monkestation\code\modules\art_sci_overrides\artifact_effects\smoke_artifacts.dm" @@ -6767,6 +6866,7 @@ #include "monkestation\code\modules\botany\species\apid\hive\hive_object.dm" #include "monkestation\code\modules\botany\species\apid\hive\hive_turfs.dm" #include "monkestation\code\modules\brewin_and_chewin\cargo_exports.dm" +#include "monkestation\code\modules\brewin_and_chewin\condiment_reagents.dm" #include "monkestation\code\modules\brewin_and_chewin\uniqueness.dm" #include "monkestation\code\modules\brewin_and_chewin\brewing\bottler.dm" #include "monkestation\code\modules\brewin_and_chewin\brewing\bottles.dm" @@ -6805,17 +6905,25 @@ #include "monkestation\code\modules\brewin_and_chewin\chewing\recipe_steps\use_oven.dm" #include "monkestation\code\modules\brewin_and_chewin\chewing\recipe_steps\use_stove.dm" #include "monkestation\code\modules\brewin_and_chewin\chewing\recipe_steps\use_tool.dm" -#include "monkestation\code\modules\brewin_and_chewin\chewing\recipes\black_eggs.dm" +#include "monkestation\code\modules\brewin_and_chewin\chewing\recipes\crafting_component_additions.dm" +#include "monkestation\code\modules\brewin_and_chewin\chewing\recipes\edible_component_additions.dm" #include "monkestation\code\modules\brewin_and_chewin\chewing\recipes\example_recipe.dm" -#include "monkestation\code\modules\brewin_and_chewin\chewing\recipes\french_fries.dm" -#include "monkestation\code\modules\brewin_and_chewin\chewing\recipes\fried_blood_sausage.dm" -#include "monkestation\code\modules\brewin_and_chewin\chewing\recipes\fried_rice.dm" -#include "monkestation\code\modules\brewin_and_chewin\chewing\recipes\katsu_curry.dm" -#include "monkestation\code\modules\brewin_and_chewin\chewing\recipes\kimchi.dm" -#include "monkestation\code\modules\brewin_and_chewin\chewing\recipes\lizard_dumplings.dm" -#include "monkestation\code\modules\brewin_and_chewin\chewing\recipes\oven_bread.dm" #include "monkestation\code\modules\brewin_and_chewin\chewing\recipes\recipe_crafting_helper_generator.dm" #include "monkestation\code\modules\brewin_and_chewin\chewing\recipes\sandwhich_test.dm" +#include "monkestation\code\modules\brewin_and_chewin\chewing\recipes\generic\french_fries.dm" +#include "monkestation\code\modules\brewin_and_chewin\chewing\recipes\generic\oven_bread.dm" +#include "monkestation\code\modules\brewin_and_chewin\chewing\recipes\lizard\black_eggs.dm" +#include "monkestation\code\modules\brewin_and_chewin\chewing\recipes\lizard\fried_blood_sausage.dm" +#include "monkestation\code\modules\brewin_and_chewin\chewing\recipes\lizard\lizard_dumplings.dm" +#include "monkestation\code\modules\brewin_and_chewin\chewing\recipes\martian\epok_epok.dm" +#include "monkestation\code\modules\brewin_and_chewin\chewing\recipes\martian\fried_rice.dm" +#include "monkestation\code\modules\brewin_and_chewin\chewing\recipes\martian\katsu_curry.dm" +#include "monkestation\code\modules\brewin_and_chewin\chewing\recipes\martian\kimchi.dm" +#include "monkestation\code\modules\brewin_and_chewin\chewing\recipes\martian\noodles.dm" +#include "monkestation\code\modules\brewin_and_chewin\chewing\recipes\martian\sambal.dm" +#include "monkestation\code\modules\brewin_and_chewin\chewing\recipes\martian\setagaya_curry.dm" +#include "monkestation\code\modules\brewin_and_chewin\chewing\recipes\martian\surimi.dm" +#include "monkestation\code\modules\brewin_and_chewin\chewing\recipes\martian\ti_hoeh_hoe.dm" #include "monkestation\code\modules\buckshotroulette\projectiles\ammunition\ballistic\shotgun.dm" #include "monkestation\code\modules\buckshotroulette\projectiles\boxes_magazines\internal\shotgun.dm" #include "monkestation\code\modules\buckshotroulette\projectiles\guns\ballistic\shotgun.dm" @@ -6921,8 +7029,8 @@ #include "monkestation\code\modules\client\preferences\species_features\goblin.dm" #include "monkestation\code\modules\client\preferences\species_features\ipc.dm" #include "monkestation\code\modules\client\preferences\species_features\lizard.dm" +#include "monkestation\code\modules\client\preferences\species_features\monkey.dm" #include "monkestation\code\modules\client\preferences\species_features\secondary_mut_color.dm" -#include "monkestation\code\modules\client\preferences\species_features\simians.dm" #include "monkestation\code\modules\client\verbs\deadchat.dm" #include "monkestation\code\modules\client\verbs\looc.dm" #include "monkestation\code\modules\clothing\durathread_weave.dm" @@ -6937,8 +7045,10 @@ #include "monkestation\code\modules\clothing\head\misc.dm" #include "monkestation\code\modules\clothing\head\wig.dm" #include "monkestation\code\modules\clothing\jobs\brig_physician.dm" +#include "monkestation\code\modules\clothing\masks\gas_filter.dm" #include "monkestation\code\modules\clothing\masks\gasmask.dm" #include "monkestation\code\modules\clothing\masks\misc.dm" +#include "monkestation\code\modules\clothing\neck\_neck.dm" #include "monkestation\code\modules\clothing\neck\cloaks.dm" #include "monkestation\code\modules\clothing\neck\neckties.dm" #include "monkestation\code\modules\clothing\outfits\bunny.dm" @@ -6964,6 +7074,7 @@ #include "monkestation\code\modules\clothing\under\color.dm" #include "monkestation\code\modules\clothing\under\costume.dm" #include "monkestation\code\modules\clothing\under\undersuit.dm" +#include "monkestation\code\modules\clothing\under\accessories\badges.dm" #include "monkestation\code\modules\clothing\under\accessories\medals.dm" #include "monkestation\code\modules\clothing\under\accessories\tribal.dm" #include "monkestation\code\modules\clothing\under\civilian\clown_mime.dm" @@ -7158,6 +7269,7 @@ #include "monkestation\code\modules\job_xp\preferences\base_preferences.dm" #include "monkestation\code\modules\job_xp\preferences\xp_handlers.dm" #include "monkestation\code\modules\jobs\job_types\_job.dm" +#include "monkestation\code\modules\jobs\job_types\barber.dm" #include "monkestation\code\modules\jobs\job_types\brig_physician.dm" #include "monkestation\code\modules\jobs\job_types\candysalesman.dm" #include "monkestation\code\modules\jobs\job_types\chaplain.dm" @@ -7173,7 +7285,10 @@ #include "monkestation\code\modules\jobs\job_types\shaft_miner.dm" #include "monkestation\code\modules\jobs\job_types\signal_technician.dm" #include "monkestation\code\modules\jobs\job_types\skeleton.dm" +#include "monkestation\code\modules\jobs\job_types\virologist.dm" #include "monkestation\code\modules\jobs\job_types\yellowclown.dm" +#include "monkestation\code\modules\jobs\job_types\departments\departments.dm" +#include "monkestation\code\modules\jobs\job_types\spawner\bar_drone.dm" #include "monkestation\code\modules\library\bookcase.dm" #include "monkestation\code\modules\library\skill_learning\job_skillchips\shaft_miner.dm" #include "monkestation\code\modules\liquids\drains.dm" @@ -7208,6 +7323,7 @@ #include "monkestation\code\modules\loadouts\items\inhand.dm" #include "monkestation\code\modules\loadouts\items\masks.dm" #include "monkestation\code\modules\loadouts\items\neck.dm" +#include "monkestation\code\modules\loadouts\items\plushies.dm" #include "monkestation\code\modules\loadouts\items\pocket.dm" #include "monkestation\code\modules\loadouts\items\shoes.dm" #include "monkestation\code\modules\loadouts\items\suits.dm" @@ -7357,16 +7473,17 @@ #include "monkestation\code\modules\mob\dead\new_player\sprite_accessories\ipc_screens.dm" #include "monkestation\code\modules\mob\dead\new_player\sprite_accessories\multi_part.dm" #include "monkestation\code\modules\mob\dead\new_player\sprite_accessories\sock_color.dm" -#include "monkestation\code\modules\mob\dead\new_player\sprite_accessories\tails.dm" #include "monkestation\code\modules\mob\dead\new_player\sprite_accessories\underwear.dm" #include "monkestation\code\modules\mob\living\emote.dm" #include "monkestation\code\modules\mob\living\init_signals.dm" #include "monkestation\code\modules\mob\living\living.dm" #include "monkestation\code\modules\mob\living\living_defines.dm" #include "monkestation\code\modules\mob\living\living_movement.dm" +#include "monkestation\code\modules\mob\living\living_update_icons.dm" #include "monkestation\code\modules\mob\living\status_procs.dm" #include "monkestation\code\modules\mob\living\basic\animatronic.dm" #include "monkestation\code\modules\mob\living\basic\bots\medbot\medbot.dm" +#include "monkestation\code\modules\mob\living\basic\drone\bardrone.dm" #include "monkestation\code\modules\mob\living\basic\ggg\glerm.dm" #include "monkestation\code\modules\mob\living\basic\ggg\susflash.dm" #include "monkestation\code\modules\mob\living\basic\pets\cat.dm" @@ -7379,6 +7496,7 @@ #include "monkestation\code\modules\mob\living\basic\pets\snake.dm" #include "monkestation\code\modules\mob\living\basic\pets\parrot\_parrot.dm" #include "monkestation\code\modules\mob\living\basic\pets\parrot\parrot_ai\parroting_action.dm" +#include "monkestation\code\modules\mob\living\basic\space_fauna\carp\carp.dm" #include "monkestation\code\modules\mob\living\basic\space_fauna\slugcat\slugcat.dm" #include "monkestation\code\modules\mob\living\basic\trooper\syndicate.dm" #include "monkestation\code\modules\mob\living\basic\vermin\frog.dm" @@ -7399,7 +7517,6 @@ #include "monkestation\code\modules\mob\living\carbon\human\human_defines.dm" #include "monkestation\code\modules\mob\living\carbon\human\init_signals.dm" #include "monkestation\code\modules\mob\living\carbon\human\lizard_gags.dm" -#include "monkestation\code\modules\mob\living\carbon\human\simian_gags.dm" #include "monkestation\code\modules\mob\living\carbon\human\worn_overlays.dm" #include "monkestation\code\modules\mob\living\carbon\human\monkey\dukeman.dm" #include "monkestation\code\modules\mob\living\carbon\human\species_type\abductors.dm" @@ -7414,6 +7531,8 @@ #include "monkestation\code\modules\mob\living\carbon\human\species_type\simian.dm" #include "monkestation\code\modules\mob\living\carbon\human\species_type\skeletons.dm" #include "monkestation\code\modules\mob\living\carbon\human\species_type\teratoma.dm" +#include "monkestation\code\modules\mob\living\carbon\human\species_type\tundra_moths\mothaccessories.dm" +#include "monkestation\code\modules\mob\living\carbon\human\species_type\tundra_moths\tundramoths.dm" #include "monkestation\code\modules\mob\living\silicon\death.dm" #include "monkestation\code\modules\mob\living\simple_animal\megafauna\wendigo.dm" #include "monkestation\code\modules\mob\living\simple_animal\pets\bees.dm" @@ -7734,6 +7853,7 @@ #include "monkestation\code\modules\research\designs\multi-department_designs.dm" #include "monkestation\code\modules\research\designs\nanite_designs.dm" #include "monkestation\code\modules\research\designs\security_designs.dm" +#include "monkestation\code\modules\research\designs\autolathe\service_designs.dm" #include "monkestation\code\modules\research\nanites\nanite_chamber.dm" #include "monkestation\code\modules\research\nanites\nanite_chamber_computer.dm" #include "monkestation\code\modules\research\nanites\nanite_cloud_controller.dm" @@ -7949,6 +8069,7 @@ #include "monkestation\code\modules\store\store_items\in_hand.dm" #include "monkestation\code\modules\store\store_items\masks.dm" #include "monkestation\code\modules\store\store_items\neck.dm" +#include "monkestation\code\modules\store\store_items\plushies.dm" #include "monkestation\code\modules\store\store_items\pocket.dm" #include "monkestation\code\modules\store\store_items\shoes.dm" #include "monkestation\code\modules\store\store_items\suits.dm" @@ -7980,6 +8101,7 @@ #include "monkestation\code\modules\storytellers\event_groups\_event_group.dm" #include "monkestation\code\modules\storytellers\event_groups\groups.dm" #include "monkestation\code\modules\storytellers\storytellers\_storyteller.dm" +#include "monkestation\code\modules\storytellers\storytellers\brute.dm" #include "monkestation\code\modules\storytellers\storytellers\clown.dm" #include "monkestation\code\modules\storytellers\storytellers\ghost.dm" #include "monkestation\code\modules\storytellers\storytellers\hermit.dm" @@ -7990,7 +8112,9 @@ #include "monkestation\code\modules\storytellers\storytellers\sleeper.dm" #include "monkestation\code\modules\storytellers\storytellers\vote.dm" #include "monkestation\code\modules\storytellers\storytellers\warrior.dm" +#include "monkestation\code\modules\surgery\amputation.dm" #include "monkestation\code\modules\surgery\blood_filter.dm" +#include "monkestation\code\modules\surgery\brain_surgery.dm" #include "monkestation\code\modules\surgery\coronary_bypass.dm" #include "monkestation\code\modules\surgery\ear_surgery.dm" #include "monkestation\code\modules\surgery\eye_surgery.dm" @@ -8000,20 +8124,22 @@ #include "monkestation\code\modules\surgery\lobectomy.dm" #include "monkestation\code\modules\surgery\nif_debonding.dm" #include "monkestation\code\modules\surgery\advanced\brainwashing.dm" +#include "monkestation\code\modules\surgery\advanced\lobotomy.dm" +#include "monkestation\code\modules\surgery\advanced\pacification.dm" #include "monkestation\code\modules\surgery\bodyparts\arachnid_bodyparts.dm" #include "monkestation\code\modules\surgery\bodyparts\clockwork_bodyparts.dm" #include "monkestation\code\modules\surgery\bodyparts\ethereal_bodyparts.dm" #include "monkestation\code\modules\surgery\bodyparts\floran_bodyparts.dm" -#include "monkestation\code\modules\surgery\bodyparts\simian_bodyparts.dm" +#include "monkestation\code\modules\surgery\bodyparts\monkey_bodyparts.dm" #include "monkestation\code\modules\surgery\bodyparts\teratoma_bodyparts.dm" #include "monkestation\code\modules\surgery\organs\augments.dm" #include "monkestation\code\modules\surgery\organs\autosurgeon.dm" +#include "monkestation\code\modules\surgery\organs\external\_external_organs.dm" #include "monkestation\code\modules\surgery\organs\external\anime.dm" #include "monkestation\code\modules\surgery\organs\external\ethereal_accessories.dm" #include "monkestation\code\modules\surgery\organs\external\floran_accessories.dm" #include "monkestation\code\modules\surgery\organs\external\goblin_accessories.dm" #include "monkestation\code\modules\surgery\organs\external\ipc.dm" -#include "monkestation\code\modules\surgery\organs\external\simian.dm" #include "monkestation\code\modules\surgery\organs\external\appendages\appendages.dm" #include "monkestation\code\modules\surgery\organs\external\chelicerae\chelicerae.dm" #include "monkestation\code\modules\surgery\organs\external\tail\clockworktail.dm" @@ -8097,6 +8223,8 @@ #include "monkestation\code\modules\vehicles\mecha\mecha_actions.dm" #include "monkestation\code\modules\vehicles\mecha\equipment\tools\other_tools.dm" #include "monkestation\code\modules\vending\megaseed.dm" +#include "monkestation\code\modules\veth_misc_items\admin_fixes\check_players.dm" +#include "monkestation\code\modules\veth_misc_items\admin_vox\admin_vox.dm" #include "monkestation\code\modules\veth_misc_items\canopics\canopics.dm" #include "monkestation\code\modules\viking\viking_armour.dm" #include "monkestation\code\modules\viking\viking_axes.dm" diff --git a/tgui/package.json b/tgui/package.json index 109c8b208ea4..0bc409157214 100644 --- a/tgui/package.json +++ b/tgui/package.json @@ -46,6 +46,7 @@ "eslint-plugin-unused-imports": "^1.1.4", "file-loader": "^6.2.0", "inferno": "^8.2.1", + "inferno-compat": "^8.2.1", "jest": "^27.0.6", "jest-circus": "^27.0.6", "jsdom": "^16.7.0", diff --git a/tgui/packages/tgui-panel/chat/renderer.jsx b/tgui/packages/tgui-panel/chat/renderer.jsx index 958fd4c7c461..8a9fea109eb4 100644 --- a/tgui/packages/tgui-panel/chat/renderer.jsx +++ b/tgui/packages/tgui-panel/chat/renderer.jsx @@ -5,7 +5,6 @@ */ import { EventEmitter } from 'common/events'; -import { classes } from 'common/react'; import { createLogger } from 'tgui/logging'; import { COMBINE_MAX_MESSAGES, @@ -106,10 +105,7 @@ const updateMessageBadge = (message) => { const foundBadge = node.querySelector('.Chat__badge'); const badge = foundBadge || document.createElement('div'); badge.textContent = times; - badge.className = classes(['Chat__badge', 'Chat__badge--animate']); - requestAnimationFrame(() => { - badge.className = 'Chat__badge'; - }); + badge.className = 'Chat__badge'; if (!foundBadge) { node.appendChild(badge); } @@ -301,11 +297,7 @@ class ChatRenderer { } } - getCombinableMessage(predicate) { - const now = Date.now(); - const len = this.visibleMessages.length; - const from = len - 1; - const to = Math.max(0, len - COMBINE_MAX_MESSAGES); + getCombinableMessage(predicate, now, from, to) { for (let i = from; i >= to; i--) { const message = this.visibleMessages[i]; // prettier-ignore @@ -340,10 +332,14 @@ class ChatRenderer { const fragment = document.createDocumentFragment(); const countByType = {}; let node; + + const len = this.visibleMessages.length; + const from = len - 1; + const to = Math.max(0, len - COMBINE_MAX_MESSAGES); for (let payload of batch) { const message = createMessage(payload); // Combine messages - const combinable = this.getCombinableMessage(message); + const combinable = this.getCombinableMessage(message, now, from, to); if (combinable) { combinable.times = (combinable.times || 1) + 1; updateMessageBadge(combinable); diff --git a/tgui/packages/tgui-panel/styles/tgchat/chat-dark.scss b/tgui/packages/tgui-panel/styles/tgchat/chat-dark.scss index 1743fa509111..eaadc6a6103e 100644 --- a/tgui/packages/tgui-panel/styles/tgchat/chat-dark.scss +++ b/tgui/packages/tgui-panel/styles/tgchat/chat-dark.scss @@ -971,6 +971,8 @@ $alert-stripe-colors: ( 'red': #420000, 'purple': #2c0030, 'grey': #252525, + 'amber': #b26800, + 'crimson': #750b20, ); $alert-stripe-alternate-colors: ( @@ -983,6 +985,8 @@ $alert-stripe-alternate-colors: ( 'red': #520000, 'purple': #38003d, 'grey': #292929, + 'amber': #945a09, + 'crimson': #4b121e, ); $alert-major-header-colors: ( @@ -995,6 +999,8 @@ $alert-major-header-colors: ( 'red': #ff5297, 'purple': #c7a1f7, 'grey': #ff5297, + 'amber': #e1bd89, + 'crimson': #d48585, ); $alert-subheader-header-colors: ( @@ -1007,6 +1013,8 @@ $alert-subheader-header-colors: ( 'red': #33d5ff, 'purple': #33d5ff, 'grey': #33d5ff, + 'amber': #33d5ff, + 'crimson': #33d5ff, ); $border-width: 4; diff --git a/tgui/packages/tgui/backend.ts b/tgui/packages/tgui/backend.ts index 4ff6bd494617..6c1fdd335e4d 100644 --- a/tgui/packages/tgui/backend.ts +++ b/tgui/packages/tgui/backend.ts @@ -313,7 +313,6 @@ type StateWithSetter = [T, (nextState: T) => void]; * * It is a lot more performant than `setSharedState`. * - * @param context React context. * @param key Key which uniquely identifies this state in Redux store. * @param initialState Initializes your global variable with this value. */ diff --git a/tgui/packages/tgui/interfaces/AntagInfoChangeling.tsx b/tgui/packages/tgui/interfaces/AntagInfoChangeling.tsx index 1b4d2d6f8bbc..f4855f47cfc6 100644 --- a/tgui/packages/tgui/interfaces/AntagInfoChangeling.tsx +++ b/tgui/packages/tgui/interfaces/AntagInfoChangeling.tsx @@ -119,8 +119,12 @@ const HivemindSection = (props) => { you. Changelings grow in power greatly by absorbing their kind, and getting absorbed by another Changeling will leave you as a{' '} Fallen Changeling. There is no - greater humiliation. + greater humiliation.{'\n'} + Additionally changeling rules can be found under{' '} + + Antagonist Guidance. + diff --git a/tgui/packages/tgui/interfaces/BarDrone.tsx b/tgui/packages/tgui/interfaces/BarDrone.tsx new file mode 100644 index 000000000000..6e01200ed2ea --- /dev/null +++ b/tgui/packages/tgui/interfaces/BarDrone.tsx @@ -0,0 +1,68 @@ +import { Section, Box, LabeledList } from '../components'; +import { Window } from '../layouts'; + +export const BarDrone = () => { + return ( + +
    + + + DO NOT INTERFERE WITH THE ROUND AS A DRONE OR YOU WILL BE DRONE + BANNED + + + + Drones are a ghost role that are allowed to fix the station and build + things. Interfering with the round as a drone is against the rules. + + + Actions that constitute interference include, but are not limited to: + + + + + - Interacting with round-critical objects (IDs, weapons, + contraband, powersinks, bombs, etc.) + + + + + - Interacting with living beings (communication, attacking, + healing, etc.) + + + + + - Interacting with non-living beings (dragging bodies, looting + bodies, etc.) + + + + + These rules are at admin discretion and will be heavily enforced. + + + + If you do not have the regular drone laws, follow your laws to the + best of your ability. + + + + Prefix your message with :b to speak in Drone Chat. + + + Drone Rules and more info can be found at our wiki{' '} + + HERE + + . + +
    +
    + ); +}; diff --git a/tgui/packages/tgui/interfaces/CommunicationsConsole.jsx b/tgui/packages/tgui/interfaces/CommunicationsConsole.jsx index 9529f575e548..b0b25f72d199 100644 --- a/tgui/packages/tgui/interfaces/CommunicationsConsole.jsx +++ b/tgui/packages/tgui/interfaces/CommunicationsConsole.jsx @@ -257,6 +257,7 @@ const PageMain = (props) => { emergencyAccess, importantActionReady, sectors, + settableLevels, shuttleCalled, shuttleCalledPreviously, shuttleCanEvacOrFailReason, @@ -341,17 +342,14 @@ const PageMain = (props) => { - - - + {settableLevels.map((level) => ( + + ))} diff --git a/tgui/packages/tgui/interfaces/LuaEditor/CallModal.jsx b/tgui/packages/tgui/interfaces/LuaEditor/CallModal.jsx deleted file mode 100644 index 73c505fba1c7..000000000000 --- a/tgui/packages/tgui/interfaces/LuaEditor/CallModal.jsx +++ /dev/null @@ -1,48 +0,0 @@ -import { useBackend, useLocalState } from '../../backend'; -import { Button, Modal, Section } from '../../components'; -import { ListMapper } from './ListMapper'; - -export const CallModal = (props) => { - const { act, data } = useBackend(); - const { callArguments } = data; - const [, setModal] = useLocalState('modal'); - const [toCall, setToCall] = useLocalState('toCallTaskInfo'); - const { type, params } = toCall; - return ( - -
    { - setModal(null); - setToCall(null); - act('clearArgs'); - }} - > - Cancel - - } - > - - -
    -
    - ); -}; diff --git a/tgui/packages/tgui/interfaces/LuaEditor/CallModal.tsx b/tgui/packages/tgui/interfaces/LuaEditor/CallModal.tsx new file mode 100644 index 000000000000..d9809b682a80 --- /dev/null +++ b/tgui/packages/tgui/interfaces/LuaEditor/CallModal.tsx @@ -0,0 +1,109 @@ +import { useBackend } from '../../backend'; +import { Button, Modal, Section } from '../../components'; +import { ListMapper } from './ListMapper'; +import { CallInfo, LuaEditorData, LuaEditorModal } from './types'; + +type CallModalProps = { + setModal: (modal: LuaEditorModal) => void; + toCall: CallInfo; + setToCall: (toCall: CallInfo | undefined) => void; +}; + +export const CallModal = (props: CallModalProps) => { + const { act, data } = useBackend(); + const { callArguments } = data; + const { setModal, toCall, setToCall } = props; + const { type, params } = toCall || {}; + + return ( + +
    { + setModal(undefined); + setToCall(undefined); + act('clearArgs'); + }} + > + Cancel + + } + > + + +
    +
    + ); +}; + +/* +export class CallModal extends Component { + static defaultProps = { + toCall: undefined, + setToCall: () => {}, + }; + + render() { + const { act, data } = useBackend(); + const { callArguments } = data; + const { setModal, toCall, setToCall } = this.props; + const { type, params } = toCall || {}; + + return ( + +
    { + setModal(undefined); + setToCall(undefined); + act('clearArgs'); + }} + > + Cancel + + } + > + + +
    +
    + ); + } +} +*/ diff --git a/tgui/packages/tgui/interfaces/LuaEditor/ChunkViewModal.jsx b/tgui/packages/tgui/interfaces/LuaEditor/ChunkViewModal.tsx similarity index 54% rename from tgui/packages/tgui/interfaces/LuaEditor/ChunkViewModal.jsx rename to tgui/packages/tgui/interfaces/LuaEditor/ChunkViewModal.tsx index d452e272d8f8..33d5fa47a35b 100644 --- a/tgui/packages/tgui/interfaces/LuaEditor/ChunkViewModal.jsx +++ b/tgui/packages/tgui/interfaces/LuaEditor/ChunkViewModal.tsx @@ -1,16 +1,19 @@ -import { useLocalState } from '../../backend'; -import { Button, Modal, Section, Box } from '../../components'; -import { sanitizeText } from '../../sanitize'; import hljs from 'highlight.js/lib/core'; +import { Box, Button, Modal, Section } from '../../components'; +import { sanitizeText } from '../../sanitize'; +import { LuaEditorModal } from './types'; + +type ChunkViewModalProps = { + setModal: (modal: LuaEditorModal) => void; + viewedChunk: string; + setViewedChunk: (chunk: string | undefined) => void; +}; + +export const ChunkViewModal = (props: ChunkViewModalProps) => { + const { setModal, viewedChunk, setViewedChunk } = props; -export const ChunkViewModal = (props) => { - const [, setModal] = useLocalState('modal'); - const [viewedChunk, setViewedChunk] = useLocalState('viewedChunk'); return ( - +
    { color="red" icon="window-close" onClick={() => { - setModal(null); - setViewedChunk(null); + setModal(undefined); + setViewedChunk(undefined); }} > Close diff --git a/tgui/packages/tgui/interfaces/LuaEditor/ListMapper.jsx b/tgui/packages/tgui/interfaces/LuaEditor/ListMapper.jsx deleted file mode 100644 index 13dde7022feb..000000000000 --- a/tgui/packages/tgui/interfaces/LuaEditor/ListMapper.jsx +++ /dev/null @@ -1,171 +0,0 @@ -import { useBackend, useLocalState } from '../../backend'; -import { - Box, - Button, - Collapsible, - LabeledList, - Section, -} from '../../components'; - -const RefRegex = RegExp('^.+ \\[0x[0-9a-fA-F]+]$'); -const FunctionRegex = RegExp('^function: 0x[0-9a-fA-F]+$'); -const UnconvertibleLuaValueRegex = RegExp( - '^(table|function|thread): 0x[0-9a-fA-F]+$', -); - -export const ListMapper = (props) => { - const { act } = useBackend(); - - const { - list, - path, - editable, - name, - callType, - vvAct, - skipNulls, - collapsible, - ...rest - } = props; - - const [, setToCall] = useLocalState('toCallTaskInfo'); - const [, setModal] = useLocalState('modal'); - - const ThingNode = (thing, path, overrideProps) => { - if (Array.isArray(thing)) { - return ( - - ); - } else if (typeof thing === 'string') { - if (FunctionRegex.test(thing) && callType) { - return ( - - ); - } else if (UnconvertibleLuaValueRegex.test(thing)) { - return {thing.charAt(0).toUpperCase() + thing.substring(1)}; - } else if (RefRegex.test(thing)) { - return ( - - ); - } else if (thing === null) { - return Nil; - } else { - return thing; - } - } else { - return {thing}; - } - }; - - const ListMapperInner = (element, i) => { - const { key, value } = element; - const basePath = path ? path : []; - let keyPath = [...basePath, { index: i + 1, type: 'key' }]; - let valuePath = [...basePath, { index: i + 1, type: 'value' }]; - let entryPath = [...basePath, { index: i + 1, type: 'entry' }]; - - if (key === null && skipNulls) { - return; - } - - /* - * Finding a function only accessible as a table's key is too awkward to - * deal with for now - */ - let keyNode = ThingNode(key, keyPath, { callType: null }); - - /* - * Likewise, since table, thread, and userdata equality is tested by - * reference rather than value, we can't find functions whose keys - * within the table are tables, threads, or userdata - */ - const uniquelyIndexable = - (typeof key === 'string' && - !(UnconvertibleLuaValueRegex.test(key) || RefRegex.test(key))) || - typeof key === 'number'; - let valueNode = ThingNode(value, valuePath, { - callType: uniquelyIndexable && callType, - }); - return ( - - - - ); - } - return ( - <> - {i > 0 && } - - {message} - - {repeats && ( - - x{repeats + 1} - - )} - - ); - }); -}; diff --git a/tgui/packages/tgui/interfaces/LuaEditor/Log.tsx b/tgui/packages/tgui/interfaces/LuaEditor/Log.tsx new file mode 100644 index 000000000000..63faedbc49b7 --- /dev/null +++ b/tgui/packages/tgui/interfaces/LuaEditor/Log.tsx @@ -0,0 +1,222 @@ +import { useBackend } from '../../backend'; +import { + Box, + Button, + Collapsible, + Divider, + LabeledList, + Stack, +} from '../../components'; +import { logger } from '../../logging'; +import { ListMapper } from './ListMapper'; +import { LuaEditorData, LuaEditorModal } from './types'; + +const parsePanic = (name, panic_json) => { + const panic_info = JSON.parse(panic_json); + const { + message, + location: { file, line }, + backtrace, + } = panic_info; + return ( + <> + + {name} panicked at {file}:{line}: {message} + + + + {backtrace + ?.filter( + (frame) => frame.file !== undefined && frame.line !== undefined, + ) + ?.map(({ name, file, line }, i) => ( + <> + {i > 0 && } + + + {name} + + {file}:{line} + + + + + ))} + + + + ); +}; + +type LogProps = { + setViewedChunk: (newValue: string | undefined) => void; + setModal: (newValue: LuaEditorModal) => void; +}; + +export const Log = (props: LogProps) => { + const { act, data } = useBackend(); + const { stateLog } = data; + const { setViewedChunk, setModal } = props; + return stateLog.map((element, i) => { + const { status, repeats } = element; + let output; + let messageColor; + switch (status) { + case 'sleep': { + const { chunk, name } = element; + if (chunk) { + messageColor = 'blue'; + output = ( + <> + {name} slept. + + ); + } + break; + } + case 'yield': { + const { name, return_values, variants } = element; + output = ( + <> + {name} yielded + {return_values.length + ? ` ${return_values.length} value${ + return_values.length > 1 ? 's' : '' + }` + : ''} + . + {return_values.length ? ( + + act('vvReturnValue', { + entryIndex: i + 1, + indices: path, + }) + } + /> + ) : ( +
    + )} + + ); + messageColor = 'yellow'; + break; + } + case 'finished': { + const { name, return_values, variants } = element; + output = ( + <> + {name} returned + {return_values.length + ? ` ${return_values.length} value${ + return_values.length > 1 ? 's' : '' + }` + : ''} + . + {return_values.length ? ( + + + act('vvReturnValue', { + entryIndex: i + 1, + tableIndices: path, + }) + } + /> + + ) : ( +
    + )} + + ); + messageColor = 'green'; + break; + } + case 'error': { + const { message } = element; + output = message; + messageColor = 'red'; + break; + } + case 'panic': { + const { name, message } = element; + output = parsePanic(name, message); + break; + } + case 'runtime': { + const { file, line, message, stack } = element; + output = ( + <> + Runtime at {file}:{line}: {message} + { + return { key: null, value: frame }; + })} + name="Stack Trace" + collapsible + /> + + ); + messageColor = 'red'; + break; + } + case 'print': { + const { message } = element; + output = message; + break; + } + default: + logger.warn(`unknown log status ${status}`); + } + if (output === undefined) { + return; + } + const { chunk } = element; + if (chunk) { + output = ( + <> + {output} + + + ); + } + return ( + <> + {i > 0 && } + + {output} + + {repeats && ( + + x{repeats + 1} + + )} + + ); + }); +}; diff --git a/tgui/packages/tgui/interfaces/LuaEditor/StateSelectModal.jsx b/tgui/packages/tgui/interfaces/LuaEditor/StateSelectModal.tsx similarity index 63% rename from tgui/packages/tgui/interfaces/LuaEditor/StateSelectModal.jsx rename to tgui/packages/tgui/interfaces/LuaEditor/StateSelectModal.tsx index 3be610e019d1..d1b72c61f949 100644 --- a/tgui/packages/tgui/interfaces/LuaEditor/StateSelectModal.jsx +++ b/tgui/packages/tgui/interfaces/LuaEditor/StateSelectModal.tsx @@ -1,16 +1,18 @@ import { useBackend, useLocalState } from '../../backend'; -import { Button, Modal, Input, Section, Stack } from '../../components'; +import { Button, Input, Modal, Section, Stack } from '../../components'; +import { LuaEditorData, LuaEditorModal } from './types'; -export const StateSelectModal = (props) => { - const { act, data } = useBackend(); - const [, setModal] = useLocalState('modal', 'states'); - const [input, setInput] = useLocalState('newStateName', ''); +type StateSelectModalProps = { + setModal: (modal: LuaEditorModal) => void; +}; + +export const StateSelectModal = (props: StateSelectModalProps) => { + const { act, data } = useBackend(); + const { setModal } = props; + const [input, setInput] = useLocalState('input', ''); const { states } = data; return ( - +
    { color="red" icon="window-close" onClick={() => { - setModal(null); + setModal(undefined); }} > Cancel @@ -30,7 +32,7 @@ export const StateSelectModal = (props) => { ))} - + { @@ -36,16 +33,16 @@ export const TaskManager = (props) => {
    - +
    - {yields.map((info, i) => ( - + {yields.map(({ index, name }, i) => ( + - {noStateYet ? ( - -

    Please select or create a lua state to get started.

    -
    - ) : ( - - -
    - - - - } - > -